Fetching data between thread execution in a flash/DRAM/embedded DRAM-equipped system
First Claim
1. An apparatus, comprising:
- NAND flash memory;
random access memory;
additional memory;
a first circuit for receiving DDR signals and outputting SATA signals, the first circuit communicatively coupled to the additional memory, and further capable of being communicatively coupled to a first bus associated with a DDR protocol including at least one of a DDR2 protocol, a DDR3 protocol, or a DDR4 protocol; and
a second circuit for receiving the SATA signals and outputting NAND flash signals, the second circuit communicatively coupled to the first circuit via a second bus associated with a SATA protocol, the second circuit further communicatively coupled to the NAND flash memory via a third bus associated with a NAND flash protocol, the second circuit further communicatively coupled to the random access memory;
said apparatus configured such that;
said first circuit;
receives a first command including first data via the first bus for causing at least a portion of a random access data read,stores at least a portion of the first command in the additional memory,generates, in response to the first command, a second command including second data that is based on at least a portion of the first data, andsends the second command to the second circuit via the second bus;
said second circuit;
receives the second command from the first circuit via the second bus,generates, in response to the second command, a third command including third data that is based on at least a portion of the second data, andsends the third command to the NAND flash memory via the third bus for causing first information in the NAND flash memory to be written to the random access memory;
said first circuit;
receives a status query via the first bus for checking a status in connection with the first information, andallows, in response to the status query, the status to be checked in connection with the first information;
said first circuit;
receives a fourth command including fourth data via the first bus for causing the first information to be read from the random access memory, andsends, in response to the fourth command, the first information from the random access memory to a processor via the first bus.
0 Assignments
0 Petitions
Accused Products
Abstract
An apparatus and associated method/processing unit are provided for utilizing a memory subsystem including NAND flash memory and dynamic random access memory. Further included is a first circuit for receiving DDR signals and converting the DDR signals to SATA signals. The first circuit includes embedded dynamic random access memory. Also provided is a second circuit for receiving the SATA signals and converting the SATA signals to NAND flash signals. The second circuit is communicatively coupled to the first circuit via a first memory bus associated with a SATA protocol, the NAND flash memory via a second memory bus associated with a NAND flash protocol, and the dynamic random access memory. In operation, data is fetched using a time between an execution of a plurality of threads.
474 Citations
67 Claims
-
1. An apparatus, comprising:
-
NAND flash memory; random access memory; additional memory; a first circuit for receiving DDR signals and outputting SATA signals, the first circuit communicatively coupled to the additional memory, and further capable of being communicatively coupled to a first bus associated with a DDR protocol including at least one of a DDR2 protocol, a DDR3 protocol, or a DDR4 protocol; and a second circuit for receiving the SATA signals and outputting NAND flash signals, the second circuit communicatively coupled to the first circuit via a second bus associated with a SATA protocol, the second circuit further communicatively coupled to the NAND flash memory via a third bus associated with a NAND flash protocol, the second circuit further communicatively coupled to the random access memory; said apparatus configured such that; said first circuit; receives a first command including first data via the first bus for causing at least a portion of a random access data read, stores at least a portion of the first command in the additional memory, generates, in response to the first command, a second command including second data that is based on at least a portion of the first data, and sends the second command to the second circuit via the second bus; said second circuit; receives the second command from the first circuit via the second bus, generates, in response to the second command, a third command including third data that is based on at least a portion of the second data, and sends the third command to the NAND flash memory via the third bus for causing first information in the NAND flash memory to be written to the random access memory; said first circuit; receives a status query via the first bus for checking a status in connection with the first information, and allows, in response to the status query, the status to be checked in connection with the first information; said first circuit; receives a fourth command including fourth data via the first bus for causing the first information to be read from the random access memory, and sends, in response to the fourth command, the first information from the random access memory to a processor via the first bus. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39)
-
-
40. An apparatus, comprising:
-
NAND flash memory; random access memory; additional memory; first circuitry configured to receive DDR signals and output SATA signals, the first circuitry communicatively coupled to the additional memory, and further configured for use with a first bus operable with a DDR protocol; and second circuitry configured to receive the SATA signals and output NAND flash signals, the second circuitry communicatively coupled to the first circuitry via a second bus, the second circuitry further communicatively coupled to the NAND flash memory via a third bus; said first circuitry configured to; receive a first command and associated first data via the first bus for causing at least a portion of a random access data write, store at least a portion of the first command in the additional memory, generate, in response to the first command, a second command and associated second data where the second data is based on at least a portion of the first data, and send the second command to the second circuitry via the second bus; said second circuitry configured to; receive the second command from the first circuitry via the second bus, generate, in response to the second command, a third command and associated third data where the third data is based on at least a portion of the second data, and send the third command to the NAND flash memory via the third bus for causing information to be written to the NAND flash memory.
-
-
41. An apparatus, comprising:
-
NAND flash memory; random access memory; additional memory; first circuitry configured to receive DDR signals and output SATA signals, the first circuitry communicatively coupled to the additional memory, and further configured for use with a first bus and a DDR protocol; and second circuitry configured to receive the SATA signals and output NAND flash signals, the second circuitry communicatively coupled to the first circuitry via a second bus, the second circuitry further communicatively coupled to the NAND flash memory via a third bus, the second circuitry further communicatively coupled to the random access memory; said apparatus configured such that; said first circuitry; receives a first command and associated first data via the first bus for causing at least a portion of a random access data read, stores at least a portion of the first command in the additional memory, generates, in response to the first command, a second command and associated second data that is based on at least a portion of the first data, and sends the second command to the second circuitry via the second bus; said second circuitry; receives the second command from the first circuitry via the second bus, generates, in response to the second command, a third command and associated third data that is based on at least a portion of the second data, and sends the third command to the NAND flash memory via the third bus for causing first information in the NAND flash memory to be written to the random access memory; said first circuitry; receives a status query via the first bus for checking a status on the first information, and allows, in response to the status query, the status to be checked on the first information; said first circuitry; receives a fourth command and associated fourth data via the first bus for causing the first information to be read from the random access memory, and sends, in response to the fourth command, the first information from the random access memory to the processor via the first bus; said first circuitry; receives a fifth command and associated fifth data via the first bus for causing at least a portion of a random access data write, stores at least a portion of the fifth command in the additional memory, generates, in response to the fifth command, a sixth command and associated sixth data that is based on at least a portion of the fifth data, and sends the sixth command to the second circuitry via the second bus; and said second circuitry; receives the sixth command from the first circuitry via the second bus, generates, in response to the sixth command, a seventh command and associated seventh data that is based on at least a portion of the sixth data, and sends the seventh command to the NAND flash memory via the third bus for causing second information to be written to the NAND flash memory. - View Dependent Claims (42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61)
-
-
62. A system, comprising:
-
a memory sub-system, including; NAND flash memory, random access memory, additional memory, first circuitry configured to receive DDR signals and output SATA signals, the first circuitry communicatively coupled to the additional memory, and further configured for being communicatively coupled to a first bus for use with a DDR protocol, and second circuitry configured to receive the SATA signals and output NAND flash signals, the second circuitry communicatively coupled to the first circuitry via a second bus, the second circuitry further communicatively coupled to the NAND flash memory via a third bus, the second circuitry further communicatively coupled to the random access memory; and a driver for cooperating with a processor to control the memory sub-system; said system configured such that; said driver causes a first command and associated first data to be sent from the processor to the first circuitry via the first bus for causing at least a portion of a random access data read; said first circuitry; receives the first command from the processor via the first bus, stores at least a portion of the first command in the additional memory, generates, in response to the first command, a second command and associated second data that is based on at least a portion of the first data, and sends the second command to the second circuitry via the second bus; said second circuitry; receives the second command from the first circuitry via the second bus, generates, in response to the second command, a third command and associated third data that is based on at least a portion of the second data, and sends the third command to the NAND flash memory via the third bus for causing first information in the NAND flash memory to be written to the random access memory; said driver causes a status query to be sent from the processor to the first circuitry via the first bus for checking a status on the first information; said first circuitry; receives the status query from the processor via the first bus, and allows, in response to the status query, the status to be checked on the first information; said driver causes a fourth command and associated fourth data to be sent from the processor to the first circuitry via the first bus for causing the first information to be read from the random access memory; said first circuitry; receives the fourth command from the processor via the first bus, and sends, in response to the fourth command, the first information from the random access memory to the processor via the first bus; said driver causes a fifth command and associated fifth data to be sent from the processor to the first circuitry via the first bus for causing at least a portion of a random access data write; said first circuitry; receives the fifth command from the processor via the first bus, stores at least a portion of the fifth command in the additional memory, generates, in response to the fifth command, a sixth command and associated sixth data that is based on at least a portion of the fifth data, and sends the sixth command to the second circuitry via the second bus; said second circuitry; receives the sixth command from the first circuitry via the second bus, generates, in response to the sixth command, a seventh command and associated seventh data that is based on at least a portion of the sixth data, and sends the seventh command to the NAND flash memory via the third bus for causing second information to be written to the NAND flash memory. - View Dependent Claims (63)
-
-
64. An apparatus, comprising:
-
NAND flash memory; random access memory; additional memory; first circuitry configured for receiving DDR signals and outputting SATA signals, the first circuitry communicatively coupled to the additional memory, and further configured for being communicatively coupled to a first bus for use with a DDR protocol; and second circuitry configured for receiving the SATA signals and outputting NAND flash signals, the second circuitry communicatively coupled to the first circuitry via a second bus, the second circuitry further communicatively coupled to the NAND flash memory via a third bus, the second circuitry further communicatively coupled to the random access memory; said first circuitry configured for receiving, from a processor via the first bus, a read-related command including read-related data for causing at least a portion of a random access data read; said first circuitry configured for storing at least a portion of the read-related command in the additional memory; said first circuitry configured for, as a result of the read-related command being stored in the additional memory, generating a read-related corresponding command including at least a portion of the read-related data; said first circuitry configured for sending, to the second circuitry via the second bus, the read-related corresponding command; said second circuitry configured for, as a result of the receipt of the read-related corresponding command, generating an additional read-related corresponding command including at least a portion of the read-related data; said second circuitry configured for sending, to the NAND flash memory via the third bus, the additional read-related corresponding command for causing particular data in the NAND flash memory to be written to the random access memory; said first circuitry configured for, after a read-related status check on the apparatus to determine whether the particular data has been written to the random access memory, receiving, from the processor via the first bus, a read command to read the particular data written to the random access memory. - View Dependent Claims (65, 66)
-
-
67. An apparatus, comprising:
-
NAND flash memory; random access memory; additional memory; first means for receiving DDR signals via a first bus for use with a DDR protocol; and second means for receiving SATA signals via a second bus, and outputting NAND flash signals via a third bus; said first means for; receiving a first command and associated first data via the first bus for causing at least a portion of a random access data read, storing at least a portion of the first command in the additional memory, generating, in response to the first command, a second command and associated second data that is based on at least a portion of the first data, and sending the second command via the second bus; said second means for; receiving the second command via the second bus, generating, in response to the second command, a third command and associated third data that is based on at least a portion of the second data, and sending the third command to the NAND flash memory via the third bus for causing first information in the NAND flash memory to be written to the random access memory; said first means for; receiving a status query via the first bus for checking a status on the first information, and allowing, in response to the status query, the status to be checked on the first information; said first means for; receiving a fourth command and associated fourth data via the first bus for causing the first information to be read from the random access memory, and sending, in response to the fourth command, the first information from the random access memory to a processor via the first bus.
-
Specification