US 11,914,860 B2
Data storage for artificial intelligence-based applications
Chun-Hung Lai, Hsinchu (TW); and Hung-Sheng Chang, Taipei (TW)
Assigned to Macronix International Co., Ltd., Hsinchu (TW)
Filed by Macronix International Co., Ltd., Hsinchu (TW)
Filed on Aug. 20, 2018, as Appl. No. 15/999,604.
Prior Publication US 2020/0057561 A1, Feb. 20, 2020
Int. Cl. G06F 3/06 (2006.01); G06N 3/063 (2023.01)
CPC G06F 3/0604 (2013.01) [G06F 3/0655 (2013.01); G06F 3/0679 (2013.01); G06N 3/063 (2013.01)] 27 Claims
OG exemplary drawing
 
1. An apparatus comprising:
one or more processors;
non-transitory media storing instructions that, when executed by the one or more processors, are configured to cause the one or more processors to perform operations comprising:
receiving, from an input device, input data for processing; and
conditioned on determining that the input data corresponds to an artificial intelligence (AI) application:
generating an AI command for performing one or more read or write operations for a memory device that is configured to (i) store data for AI applications processed by the one or more processors in a first storage partition of the memory device and (ii) store data for non-AI applications in a second storage partition of the memory device that is different from the first storage partition,
the AI command including information specifying (i) one or more neurons of an artificial neural network corresponding to the AI application, the one or more neurons associated with the input data, wherein the input data includes weights corresponding to one or more of input connections or output connections of each of the one or more neurons, and (ii) an operational code indicating operations to be performed on the one or more neurons, wherein the operational code corresponds to one of (a) an individual read or write of a particular neuron in the artificial neural network, (b) multiple individual reads or writes of a plurality of neurons in the artificial neural network, or (c) a batch read or write of a batch of neurons in the artificial neural network,
sending the AI command and the input data to a storage controller managing the memory device, wherein the one or more read or write operations for the memory device is performed by the storage controller using the operational code and the information included in the AI command, and
receiving, from the storage controller, a result of the one or more read or write operations performed on the memory device; and
the storage controller, wherein the storage controller is configured to perform operations comprising:
upon receiving the AI command from the one or more processors, obtaining, from the information included in the AI command, a first set of weights of one or more of input connections or output connections of a first neuron of the one or more neurons, and a second set of weights of one or more of input connections or output connections of a second neuron of the one or more neurons;
determining that the first neuron is accessed more frequently than the second neuron, and that the second neuron is accessed at a same rate as other neurons of the one or more neurons; and
in response to the determination:
storing the first set of weights in a first area of the memory device that is used for logging, and
storing the second set of weights in a second area of the memory device that is used for long-term storage different from logging.