Memory controller, memory and memory system

文档序号:50859 发布日期:2021-09-28 浏览:32次 中文

阅读说明:本技术 存储控制器、存储器和存储系统 (Memory controller, memory and memory system ) 是由 夏浚 于 2021-03-26 设计创作,主要内容包括:本发明公开了一种存储控制器、存储器和存储系统。所述存储控制器包含命令处理器。当所述存储控制器执行一访问命令时,所述命令处理器在产生一激活命令至所述存储器以及产生一读取或写入命令至所述存储器之间产生一列地址信息至所述存储器。所述命令处理器基于所述访问命令产生所述列地址信息和所述激活命令。因此,相较于现有技术,所述存储器可利用所述列地址信息快速地开启对应的位开关。(The invention discloses a storage controller, a storage and a storage system. The memory controller includes a command processor. When the memory controller executes an access command, the command processor generates a row address information to the memory between generating an activate command to the memory and generating a read or write command to the memory. The command processor generates the column address information and the activate command based on the access command. Therefore, compared with the prior art, the memory can utilize the column address information to quickly turn on the corresponding bit switch.)

1. A memory controller for memory is composed of a memory controller

A command processor;

wherein when the memory controller executes an access command, the command processor generates a row of address information to the memory before generating a read or write command to the memory;

wherein the column address information and the read or write command are generated based on the access command.

2. The memory controller of claim 1, wherein the command processor generates the column address information to the memory between generating an activate command and generating the read or write command, wherein the activate command is generated based on the access command.

3. The memory controller of claim 2, wherein the command processor is further configured to generate a precharge command based on the access command prior to generating the activate command.

4. The memory controller of claim 1, wherein the command processor is further configured to generate a pre-row address command to the memory before the memory receives the read or write command, the command processor generates the pre-row address command based on the access command, and a predetermined time exists between the pre-row address command and the read or write command.

5. The memory controller of claim 4, wherein the column address information and the pre-column address command are generated to the memory in one clock cycle or simultaneously.

6. The memory controller of claim 4, wherein the preliminary column address command and the column address information corresponding to another access command are generated after the another read or write command corresponding to the another access command is generated, wherein the memory controller executes the another access command before the access command.

7. The storage controller of claim 1, further comprising

A sequencing engine coupled to the command processor, wherein the access command is stored in the sequencing engine, and the sequencing engine controls the command processor to sequentially generate the column address information and the read or write command according to the access command.

8. A memory capable of receiving access commands from a memory controller, comprising

A first decoder for decoding a read or write command corresponding to the access command;

wherein the memory receives a column of address information corresponding to the access command prior to receiving the read or write command.

9. The memory of claim 8, further comprising

A second decoder for decoding an activate command corresponding to the access command;

wherein the memory receives the column address information on a clock falling edge or a clock rising edge after receiving the activate command.

10. The memory of claim 8, further comprising

A third decoder for decoding a predetermined address command corresponding to the access command;

wherein the pre-column address command is received by the memory before the memory receives the read or write command.

11. The memory of claim 10, wherein the column address information and the pre-column address command are received in one clock cycle or simultaneously.

12. The memory of claim 11, further comprising

A column address latch, wherein the third decoder decodes the pre-column address command and generates a latch signal to the column address latch to latch the column address information before the memory receives the read or write command.

13. The memory of claim 9, further comprising

A fourth decoder for decoding a precharge command corresponding to the access command;

wherein the memory receives a row address information after receiving the precharge command and before receiving the activate command.

14. The memory of claim 13, wherein the row address information and a pre-row address command are received in one clock cycle or simultaneously.

15. The memory of claim 14, further comprising

A fifth decoder for decoding said pre-look ahead address command corresponding to said access command;

wherein the pre-row address command is received by the memory before the memory receives the activate command.

16. The memory of claim 15, further comprising

A row address latch, wherein the fifth decoder decodes the preliminary row address command and generates a latch signal to the row address latch to latch the row address information before the memory receives the activate command.

17. A storage system is characterized by comprising

A memory controller including a command processor; and

a memory coupled to the memory controller;

wherein when the memory controller executes an access command, the command processor generates a row of address information to the memory before generating a read or write command to the memory;

wherein the command processor generates the column address information and the read or write command based on the access command.

18. The memory system of claim 17 wherein the command processor is further configured to generate a pre-column address command to the memory to latch the column address information before the memory receives the read or write command.

19. The memory system of claim 18, wherein the column address information and the pre-column address command are generated to the memory in one clock cycle or simultaneously.

20. The memory system of claim 18, wherein the preliminary column address command and the column address information corresponding to another access command are generated after the another read or write command corresponding to the another access command is generated, wherein the memory controller executes the another access command before the access command.

Technical Field

The present invention relates to a memory controller, a memory (memory), and a memory system (memory system), and more particularly, to a memory controller, a memory, and a memory system that can reduce a time interval between when a memory receives a read command (or a write command) and turns on a corresponding bit switch.

Background

Referring to fig. 1, fig. 1 is a schematic diagram of a Dynamic Random Access Memory (DRAM) controller 10 disclosed in the prior art. As shown in FIG. 1, one side of the DRAM controller 10 may be coupled to a plurality of hosts H1-Hn through an advanced eXtensible interface (AXI) bus 102 of the DRAM controller 10, and the other side of the DRAM controller 10 may be coupled to a plurality of memories M1-Mm through a physical layer interface (PHY) 112 of the DRAM controller 10, wherein the plurality of memories M1-Mm may be Double Data Rate (DDR-4 or higher) memories, low Power (low Power) Double Data Rate (LPDDR-LPDDR 4 or higher) memories, etc. further, n and M are integers greater than 1.

As shown in fig. 1, the dram controller 10 further includes an arbitration and mapping unit (arbitration and mapping unit)104, a physical queue (physical queue)106, a sequence engine (sequence engine)108, a command processor 110, and a double data rate (DFI) bus 111. The arbitration and mapping unit 104 may prioritize a plurality of access commands (or commands) generated from a plurality of hosts H1-Hn and map the plurality of commands from an advanced extensible interface (AXI) address to a memory address. The physical queue 106 may then store the plurality of commands as a command queue 202 (shown in FIG. 2) according to the priority order of the mapped memory addresses (corresponding to the priority order of the plurality of commands). For example, as shown in FIG. 2, command queue 202 has 16 pairs of columns 0-15 (corresponding to commands C0-C15, respectively), where each column has 36 bits (bit), and the 36 bits include command bits, block (bank) address data, row address data, and column address data. Additionally, each of the commands C0-C15 may correspond to an 8-bit (8-bits) length read (read) or write (write) command from dynamic random access memory. The physical queue 106 may then transmit the plurality of commands C0-C15 to the sort engine 108 in sequence. For example, the physical queue 106 may sequentially transfer commands C0-C2 to the registers FIFOO0-FIFOO2 (shown in FIG. 3) within the sort engine 108. That is, the commands C0-C2 are sequentially stored in the registers FIFOO0-FIFOO2, respectively. In addition, as shown in FIG. 3, a finite state machine (finite state machine)1082 included in the sort engine 108 may execute the commands C0-C2 stored in the registers FIFOO0-FIFOO2 in accordance with the order of the corresponding registers FIFOO0-FIFOO 2. For example, the finite state machine 1082 first executes the command C0 (having order 1) stored in the register FIFOO0, and then sequentially executes the command C1 (having order 2) stored in the register FIFOO1 and the command C2 (having order 3) stored in the register FIFOO 2. The command processor 110 then also processes the command C0, the command C1, and the command C2 in sequence, wherein the timing of the operations of the command processor 110 to process the command C0, the command C1, and the command C2 can refer to fig. 4. As shown in fig. 4, taking memory M1 as an example, command C0 is a read command corresponding to the row11 and column 11 addresses (K0_ row11/col11) of bank 0 of memory M1, command C1 is a read command corresponding to the row22 and column 22 addresses (K7_ row22/col22) of bank 7 of memory M1, and command C2 is a read command corresponding to the row33 and column 33 addresses (K5_ row33/col33) of bank 5 of memory M1. When the finite state machine 1082 executes command C0, the finite state machine 1082 first checks whether row11 of bank 0 is activated. If row11 of bank 0 is not activated and the other rows of bank 0 are activated, then the finite state machine 1082 enters a precharge state and the control command processor 110 generates (at time t1 shown in FIG. 4) a precharge command PRECH _ K0. As shown in FIG. 4, after a time interval tRP (defined by the double data Rate memory Specification of Joint Electron Engineering Council (JEDEC)) after command processor 110 generates precharge command PRECH _ K0, command processor 110 may generate an activate command ACT _ K0_ R11 (time t4 shown in FIG. 4) to select row11 of block 0, where the address of row11 will be received by memory M1 along with activate command ACT _ K0_ R11. After a time interval tRCD (defined by the Joint Electrical engineering Committee double data Rate memory Specification) after the command processor 110 generates the activate command ACT _ K0_ R11, the command processor 110 may generate a read command RD _ K0_ C11 to select rank 11 of bank 0 (time t6 as shown in FIG. 4), wherein the address of rank 11 will also be received by memory M1 along with the read command RD _ K0_ C11. After the memory M1 receives the read command RD _ K0_ C11, the data stored in the memory cells coupled to row11 and column 11 of block 0 of the memory M1 are read. However, if the command C0 is to write data into the memory cells coupled to row11 and column 11 of bank 0 of the memory M1, then the command processor 110 generates a write command (not shown in FIG. 4) corresponding to row11 and column 11 of bank 0 to the memory M1. Memory M1 will then write the data according to the write command into the memory cells coupled to row11 and column 11 of bank 0 of memory M1.

During time interval tRP and time interval tRCD, command processor 110 may first process portions of command C1 and/or command C2 based on some pre-emptive rule (look ahead rules). For example, before the active command ACT _ K0_ R11 corresponding to command C0 is generated, the finite state machine 1082 may control the command processor 110 to generate the precharge command PRECH _ K7 corresponding to command C1 (time t2 shown in FIG. 4) and then generate the active command ACT _ K5_ R33 corresponding to command C2 (time t3 shown in FIG. 4). In addition, during the time interval tRCD, the finite state machine 1082 may control the command processor 110 to generate the active command ACT _ K7_ R22 corresponding to command C1 (at time t5 shown in FIG. 4). In addition, it is noted that in the operation timing of fig. 4, unlike command C0 and command C1, command processor 110 does not generate a precharge command corresponding to command C2 between times T1-T3 because block 5 to be read or written according to command C2 may have been precharged before time T1 (or has been subjected to an auto-refresh command or a precharge all command). In addition, when the read command RD _ K0_ C11 corresponding to command C0 is issued, command C1 stored in register FIFOO1 is transferred to and stored in register FIFOO0, command C2 stored in register FIFOO2 is transferred to and stored in register FIFOO1, and register FIFOO2 is stored with a new command (e.g., command C3) from the command queue 202 in the physical queue 106.

Referring to fig. 5, fig. 5 is a diagram illustrating operation timings of a command processor (command processor)110 issuing active commands ACT _ K0_ R11, ACT _ K5_ R33, ACT _ K7_ R22 and read commands RD _ K0_ C11, RD _ K7_ C22, RD _ K5_ C33 in the prior art. As shown in fig. 5, a time interval tRCD must exist between active command ACT _ K0_ R11 and read command RD _ K0_ C11 (i.e., the time interval between active command ACT _ K0_ R11 and read command RD _ K0_ C11 is not less than time interval tRCD), and a time interval tCCD (defined by the double data rate memory Specification of the Joint Committee of electronics engineering) must exist between read command RD _ K0_ C11 and read command RD _ K7_ C22 (i.e., the time interval between read command RD _ K0_ C11 and read command RD _ K7_ C22 is not less than time interval tCCD), wherein in the double data rate memory specification of the joint committee of electronics engineering, when one clock period of the internal clock applied to the memory M1-Mm is equal to 1 nanosecond (1ns), the time interval tCCD is not less than 4 nanoseconds (4 ns). In addition, a time interval tCCD must also exist between the read command RD _ K7_ C22 and the read command RD _ K5_ C33. In addition, when the command processor 110 sequentially processes the command C3, the command processor 110 may issue a read command RD _ K6_ C44 according to the command C3, wherein a time interval tCCD (11 ns) between the read command RD _ K6_ C44 and the read command RD _ K5_ C33 is greater than 4ns, as shown in FIG. 5.

Referring next to fig. 6, fig. 6 is a schematic diagram of a command data structure and a read or write command generating circuit 1101 in the command processor 110 according to the prior art. As shown in FIG. 6(a), for example, the command C0 has 36 bits B0-B35 of the command C0, wherein the bits B0-B10 store the column address data CAD, the bits B11-B26 store the row address data RAD, the bits B27-B29 store the block address data BAD, the bits B32-B34 store the command code CC, and the bits B30, B31, and B35 are reserved bits R. For example, column address data CAD indicates column 11, row address data RAD indicates row11, bank address data BAD indicates bank 0 of memory M1, and command code CC indicates command C0 corresponding to a read command (i.e., read command RD _ K0_ C11). In addition, the data structure of each of the commands C1 and C2 is the same as that of the command C0, and therefore, the description thereof is omitted. As shown in fig. 6(b), the read or write command generating circuit 1101 may generate the read command RD _ K0_ C11 according to the block address data BAD, the column address data CAD and/or a read or write command confirmation signal RWSS, wherein the block address data BAD and the column address data CAD are transmitted by the sorting engine 108. In addition, the command processor 110 may transmit a read command RD _ K0_ C11 to the memory M1 through the double data rate physical layer interface bus 111 and the physical layer interface 112.

Referring next to fig. 7, fig. 7 is a schematic diagram illustrating the timing of the operation of the fsm 1082 controlling the command processor 110 according to the prior art. As shown in FIG. 7, with respect to read commands RD _ K0_ C11, RD _ K7_ C22, and a write command WR _ K5_ C33, when a first finite state machine controller 10822 included in a finite state machine 1082 controls a command processor 110 to generate read commands RD _ K0_ C11, RD _ K7_ C22, and write command WR _ K5_ C33, a time interval tRCD should be satisfied between the command processor 110 generating an activate command ACT _ K0_ R11 and the read command RD _ K0_ C11, a time interval tCCD should be satisfied between the command processor 110 generating the read command RD _ K0_ C11 and the read command tRD _ K7_ C22, and a time interval tCCD should be satisfied between the command processor 110 generating the read command RD _ K7_ C22 and the write command WR _ K5_ C33 (defined by the Committee-Committee for data rates of electronic engineering). In addition, as shown in FIG. 7, with respect to the active commands ACT _ K5_ R33, ACT _ K0_ R11, ACT _ K7_ R22 and a precharge command PRECH _ K5, when a second FSM 10824 included in the FSM 1082 controls the command processor 110 to generate the ACTIVE commands ACT _ K5_ R33, ACT _ K0_ R11, ACT _ K7_ R22 and PRECH _ K5, a time interval tRRD (defined by the joint committee on electronic device engineering) should be met between the generation of two different activate commands by command processor 110, and a time interval tWR (defined by the joint committee for electronics engineering) should be met before the command processor 110 generates the precharge command PRECH _ K5, wherein the time interval tWR exists between the precharge command PRECH _ K5 and the turn-on time LBSTON of a last bit switch corresponding to the write command WR _ K5_ C33, as shown in FIG. 7.

As shown in FIG. 8, for the example of the command C0, after the memory M1 receives the read command RD _ K0_ C11, a time interval T1 is given to a decoder 802 in the memory M1 for receiving and decoding the read command RD _ K0_ C11, wherein the decoder 802 operates according to a clock signal CLK (RD or WR) applied to the memory M1. Thereafter, a time interval T2 (i.e., a delay chain) is a time when a column address latch (column address latch)806 latches/outputs an address of the column 11, and is also a time when a column redundancy comparator (column redundancy compare) 808 and a column address pre-decoder 810 are ready according to the address of the column 11 and a one-bit switch ENABLE signal BS _ ENABLE _ PLS generated from the decoder 802. Then, a time interval T3 is a time for column bit-switch decoder 812 to decode a corresponding bit switch according to the address of column 11. In addition, as shown in FIG. 8, an address XADD [0: N ] includes the address of block 0, the address of row11, and the address of column 11, and an address latch 804 is used for latching the address of block 0, the address of row11, and the address of column 11, wherein the address latch 804 also operates according to the clock signal CLK (RD or WR).

However, as shown in FIG. 4, in command processor 110, command C0 has contained address information for row11 and column 11 of bank 0, command C1 has also contained address information for row22 and column 22 of bank 7, and command C2 has also contained address information for row33 and column 33 of bank 5. In addition, as shown in FIG. 4, since the unoccupied time still exists between the read command RD _ K0_ C11 and the active command ACT _ K0_ R11 corresponding to the command C0, and the address of the column 11 stored in the register FIFOO0 is known, how to remove the time interval T2 (i.e., the delay chain) by using the unoccupied time and the known address of the column 11 has become an important issue for the designer of the DRAM controller 10.

Disclosure of Invention

The invention discloses a memory controller, a memory and a memory system. Because the memory controller can generate a pre-row address command to the memory between generating a read command (or write command) and generating an activate command, the memory can rapidly turn on a corresponding bit switch using the pre-row address command, as compared to the prior art.

One embodiment of the invention discloses a memory controller applied to a memory. The memory controller includes a command processor. When the memory controller executes an access command, the command processor generates a column address information to the memory before generating a read or write command to the memory, wherein the column address information and the read or write command are generated based on the access command.

According to another embodiment of the present invention, the command processor generates the column address information to the memory between generating an activate command and generating the read or write command, wherein the activate command is generated based on the access command.

According to another embodiment of the present invention, the command processor is further configured to generate a precharge command based on the access command prior to generating the activate command.

According to another embodiment of the present invention, the command processor is further configured to generate a pre-column address command to the memory before the memory receives the read or write command, the command processor generates the pre-column address command based on the access command, and a predetermined time exists between the pre-column address command and the read or write command.

According to another embodiment of the present invention, the column address information and the pre-column address command are generated to the memory within one clock cycle or simultaneously.

According to another embodiment of the present invention, the pre-column address command and the column address information corresponding to another access command are generated after the another read or write command corresponding to the another access command is generated, wherein the memory controller executes the another access command before the access command

According to another embodiment of the present invention, the memory controller further comprises a sorting engine, wherein the sorting engine is coupled to the command processor, wherein the access command is stored in the sorting engine, and the sorting engine controls the command processor to sequentially generate the column address information and the read or write command according to the access command.

Another embodiment of the invention discloses a memory that can receive an access command from a memory controller. The memory includes a first decoder. The first decoder is for decoding a read or write command corresponding to the access command; the memory receives a column of address information corresponding to the access command before receiving the read or write command.

According to another embodiment of the present invention, the memory further comprises a second decoder, wherein the second decoder is used for decoding an activate command corresponding to the access command, and the memory receives the column address information at a clock falling edge or a clock rising edge after receiving the activate command.

According to another embodiment of the present invention, the memory further comprises a third decoder, wherein the third decoder is for decoding a pre-column address command corresponding to the access command, and the pre-column address command is received by the memory before the memory receives the read or write command.

According to another embodiment of the present invention, the memory receives the column address information and the pre-column address command in one clock cycle or simultaneously.

According to another embodiment of the present invention, the memory further comprises a column address latch, wherein the third decoder decodes the pre-column address command and generates a latch signal to the column address latch to latch the column address information before the memory receives the read or write command.

According to another embodiment of the present invention, the memory further comprises a fourth decoder, wherein the fourth decoder is for decoding a precharge command corresponding to the access command, and the memory receives a row address information after receiving the precharge command and before receiving the activate command.

According to another embodiment of the present invention, the memory receives the row address information and a pre-row address command in one clock cycle or simultaneously.

According to another embodiment of the present invention, the memory further comprises a fifth decoder, wherein the fifth decoder is for decoding the pre-row address command corresponding to the access command, and the pre-row address command is received by the memory before the memory receives the activate command.

According to another embodiment of the present invention, the memory further comprises a row address latch, wherein the fifth decoder decodes the preliminary row address command and generates a latch signal to the row address latch to latch the row address information before the memory receives the activate command.

Another embodiment of the invention discloses a storage system. The memory system includes a memory controller and a memory. The memory controller includes a command processor. The memory is coupled to the memory controller. When the memory controller executes an access command, the command processor generates a row of address information to the memory before generating a read or write command to the memory; wherein the command processor generates the column address information and the read or write command based on the access command.

According to another embodiment of the present invention, the command processor is further configured to generate a pre-column address command to the memory to latch the column address information before the memory receives the read or write command.

According to another embodiment of the present invention, the column address information and the pre-column address command are generated to the memory within one clock cycle or simultaneously.

According to another embodiment of the present invention, after another read or write command corresponding to another access command is generated, the pre-column address command and the column address information corresponding to the access command are generated, wherein the memory controller executes the another access command before the access command.

Drawings

Fig. 1 is a schematic diagram of a dram controller disclosed in the prior art.

FIG. 2 is a schematic diagram illustrating a command queue.

FIG. 3 is a schematic diagram illustrating a ranking engine.

FIG. 4 is a diagram illustrating the timing of operation of a command processor within a DRAM controller based on the prior art.

FIG. 5 is a schematic diagram illustrating the operational timing of a command processor issuing an activate command and a read command in the prior art.

FIG. 6 is a schematic diagram of a data structure of a command and a read or write command generation circuit within a command processor as disclosed in the prior art.

Fig. 7 is a schematic diagram of the operation timing of a finite state machine control command processor disclosed in the prior art.

Fig. 8 is a schematic diagram illustrating the operation of the memory after the memory receives a read command.

FIG. 9 is a diagram of a memory controller according to an embodiment of the present invention.

Fig. 7 is a diagram illustrating a data structure of a command.

Fig. 8 is a schematic diagram illustrating a command processor.

Fig. 9 is a diagram illustrating the operation timing of the command processor.

Fig. 10A and 10B are schematic diagrams illustrating a command processor.

11-14 are schematic diagrams illustrating the timing of operations for a command processor to generate an activate command and a corresponding read command.

FIG. 15 is a diagram illustrating the timing of the operation of the FSM command processor according to an embodiment of the present invention.

Fig. 16 is a schematic diagram illustrating the operation of the memory after the memory receives a read command.

Fig. 17 is a diagram illustrating the timing of operation of a memory based on a pre-column address command and the timing of operation of a memory based on the prior art.

Wherein the reference numerals are as follows:

10 dynamic random access memory controller

100 memory controller

102 advanced extensible interface bus

104 arbitration and mapping unit

106 physical queue

108 sorting engine

110. 150, 160 command processor

111 double data rate physical layer interface bus

112 physical layer interface

1082 finite state machine

10822 first finite state machine controller

10824 second finite state machine controller

10826 third finite state machine controller

1101. 1110 read or write command generating circuit

1102 activate command generating circuit

1104 precharge command generating circuit

1106 preRow Address Command generating Circuit

1108 pre-column address command generating circuit

802. 1602 decoder

804 address latch

806 column address latch

808 column redundancy comparator

810 column address predecoder

812 column bit switch decoder

ACT _ K0_ R11, ACT _ K5_ R33, ACTIVE COMMAND

ACT_K7_R22

ASS activation confirmation signal

A13 pin

BS _ ENABLE _ PLS bit switch ENABLE signal

BAD Block Address data

C0-C15 Command

col11, col22, col33 column addresses

CLK (RD or WR), CLK (PCA) clock signals

CC command code

CAD column address data

delay chain

FIFOO0-FIFOO2 register

H1-Hn host

K0, K7, K5 Block Address

LBS TON on time

M1-Mm memory

PRECH _ K0, PRECH _ K7, PRECH _ K5 precharge commands

PCSS precharge confirm signal

PRASS advanced Address validation Signal

PCASS advanced rank Address Acknowledge Signal

PRA0 preline address command

PCA _ K0_ C11, PCA _ K7_ C22, Pre-column Address Command

PCA_K5_C33、PCA_K6_C44

PRE _ COL _ ADD _ EN PRE-COL ADD _ EN ENABLE SIGNAL

Q data

R reserved bit

RD _ K0_ C11, RD _ K7_ C22, read command

RD_K5_C33、RD_K6_C44

Rd read

row11, row22, row33 line addresses

RAD row address data

RWSS read or write command acknowledge signal

tRCD, tRP, T1-T3, tRD, tPCA2C, time interval

tCCD、tRTW、tWR

t1-t6 time

WR _ K5_ C33, WR _ K66_ C44 write commands

XADD [0: N ] address

Detailed Description

Referring to fig. 9, fig. 9 is a schematic diagram of a memory controller 100 according to an embodiment of the disclosure. As shown in fig. 9, the memory controller 100 at least includes an advanced eXtensible interface (AXI) bus 102, an arbitration and mapping unit 104, a physical queue 106, a sequencing engine 108, a command processor 150, a double data rate physical layer interface bus 111, and a physical layer interface 112, where the advanced eXtensible interface bus 102, the arbitration and mapping unit 104, the physical queue 106, the sequencing engine 108, the double data rate physical layer interface bus 111, and the physical layer interface 112 shown in fig. 9 are the same as the advanced eXtensible interface bus 102, the arbitration and mapping unit 104, the physical queue 106, the sequencing engine 108, the double data rate physical layer interface bus 111, and the physical layer interface 112 shown in fig. 1, and thus are not described herein again. In addition, the difference between the memory controller 100 and the dynamic random access memory controller 10 is that the command processor 150 in fig. 9 is different from the command processor 110 in fig. 1. In addition, the coupling relationship among the advanced extensible interface bus 102, the arbitration and mapping unit 104, the physical queue 106, the sequencing engine 108, the command processor 150, the double data rate physical layer interface bus 111, and the physical layer interface 112 can refer to fig. 1, and therefore, the detailed description thereof is omitted here. In addition, since other circuits in the memory controller 100 besides the above-mentioned components are not the technical features of the present invention, they are not described herein again.

In addition, the data structure of each of the commands C0-C2 stored in the registers (e.g., registers FIFOO0-FIFOO2) of the sort engine 108 can be referred to FIG. 6(a), and therefore, the description thereof is omitted here. Thus, when the command processor 150 starts executing the command C0, all address information (including the row address data RAD and the column address data CAD) is already stored ready in the sequencing engine 108 and can be transferred to the command processor 150.

Referring to fig. 10A and 10B, fig. 10A is a schematic diagram illustrating a command processor 150 and fig. 10B is a schematic diagram illustrating a command processor 160. As shown in fig. 10A, the command processor 150 includes an active command generating circuit (active command generating circuit)1102, a precharge command generating circuit (pre-charge command generating circuit)1104, a pre-column address command generating circuit (pre-column address command generating circuit)1108, and a read or write command generating circuit (read or write command generating circuit) 1110. Now, taking the command C0 as an example, the activate command generating circuit 1102 may generate the activate command ACT _ K0_ R11 according to the block address data BAD of the block 0, the row address data RAD of the block 0, and an activate acknowledge signal ASS of the memory M1, wherein the block address data BAD and the row address data RAD may be transmitted by the sort engine 108; the precharge command generation circuit 1104 generates a precharge command PRECH _ K0 according to the block address data BAD transmitted from the sorting engine 108 and a precharge acknowledge signal PCSS; the pre-column address command generating circuit 1108 may generate a pre-column address command PCA _ K0_ C11 according to the block address data BAD, the column address data CAD, and a pre-column address acknowledge signal PCASS, wherein the block address data BAD and the column address data CAD may be transmitted from the sorting engine 108; the read or write command generating circuit 1110 may generate the read command RD _ K0_ C11 according to the block address data BAD, which may be transmitted from the sorting engine 108, and the read or write command acknowledge signal RWSS. In addition, the command processor 150 may transmit the precharge command PRECH _ K0, the pre-rank address command PCA _ K0_ C11, the read command RD _ K0_ C11, and the activate command ACT _ K0_ R11 to the memory M1 through the double data rate physical layer interface bus 111 and the physical layer interface 112, wherein a fourth decoder within the memory M1 is used to decode the precharge command PRECH _ K0 corresponding to the command C0. In another embodiment of the present invention (as shown in FIG. 10B), the difference between the command processor 160 and the command processor 150 is that the command processor 160 further comprises a pre-row address command generating circuit 1106, wherein the pre-row address command generating circuit 1106 generates a pre-row address command PRA0 according to the block address data BAD, the row address data RAD and a pre-row address acknowledge signal PRASS, the block address data BAD and the row address data RAD are transmitted from the sorting engine 108, and a fifth decoder in the memory M1 is used for decoding a pre-row address command PRA0 corresponding to the command C0. In addition, the command processor 160 may transmit the pre-row address command PRA0, the precharge command PRECH _ K0, the pre-column address command PCA _ K0_ C11, the read command RD _ K0_ C11, and the activate command ACT _ K0_ R11 to the memory M1 through the double data rate physical layer interface bus 111 and the physical layer interface 112, wherein the command processor 160 generates the pre-row address command PRA0 before generating the activate command ACT _ K0_ R11.

In one embodiment of the present invention, command C0 stored in register FIFOO0 corresponds to sequence 1, command C1 stored in register FIFOO1 corresponds to sequence 2, and command C2 stored in register FIFOO2 corresponds to sequence 3. The finite state machine 1082 within the sequencing engine 108 may control the command processor 150 to execute the command C0, at which point the finite state machine 1082 may pre-execute the command C1 and portions of the command C2 to effectively send the available address information to the command processor 150 to cause the command processor 150 to generate the pre-column address command PCA _ K0_ C11 and/or the pre-row address command PRA0 at the appropriate time.

In addition, each command (e.g., command C0, command C1, or command C2) corresponds to a read command or a write command in the present invention, and only read commands are used in the following to illustrate examples of the present invention. As shown in FIG. 11, the memory cells coupled to row11 and column 11 of block 0 of memory M1 are read by command C0, the memory cells coupled to row22 and column 22 of block 7 of memory M1 are read by command C1, and command C2 corresponds to reading memory cells coupled to row33 and column 33 of block 5 of memory M1, the difference between figure 11 and figure 5 is that because command C0 contains column address information (i.e. column 11), the finite state machine 1082 may also control the command processor 150 to generate the pre-column address command PCA _ K0_ C11 between generating the activate command ACT _ K0_ R11 and the read command RD _ K0_ C11, wherein the command processor 150 may generate the pre-column address command PCA _ K0_ C11 to the memory M1 on a clock falling edge or a clock rising edge of an internal clock applied to the memories M1-Mm, and a second decoder within the memory M1 may be used to decode the activate command ACT _ K0_ R11 corresponding to command C0. For example, the command processor 150 may generate the pre-column address command PCA _ K0_ C11 to the memory M1 before generating the read command RD _ K0_ C11 to the memory M1, wherein a predetermined time (i.e., a time interval tPCA2C) exists between the pre-column address command PCA _ K0_ C11 and the read command RD _ K0_ C11, and in an embodiment of the present invention, the time interval tPCA2C is not less than 4 clock cycles (4clks) of the internal clock applied to the memory M1-Mm. Thus, according to the operational timing illustrated in FIG. 11, because the command processor 150 may generate the pre-column address command PCA _ K0_ C11 with the column 11 address information before generating the read command RD _ K0_ C11, the memory M1 may decode the column 11 address information according to the pre-column address command PCA _ K0_ C11 before receiving the read command RD _ K0_ C11, resulting in a saving of about 2 nanoseconds (ns) in a read access time (e.g., CAS latency defined by the Joint Electron engineering Committee's double data Rate memory Specification) or in a write recovery time (e.g., the TWR tWR defined by the Joint Electron engineering Committee's double data Rate memory Specification). Similarly, as shown in FIG. 11, the command processor 150 may generate a pre-column address command PCA _ K7_ C22 with column 22 address information before generating the read command RD _ K7_ C22 to the memory M1, wherein a time interval tPCA2C exists between the pre-column address command PCA _ K7_ C22 and the read command RD _ K7_ C22; the command processor 150 may generate a pre-column address command PCA _ K5_ C33 with column 33 address information before generating the read command RD _ K5_ C33 to the memory M1, wherein a time interval tPCA2C exists between the pre-column address command PCA _ K5_ C33 and the read command RD _ K5_ C33; the command processor 150 may generate a pre-column address command PCA _ K6_ C44 with column 44 address information before generating the read command RD _ K6_ C44 to the memory M1, wherein a time interval tPCA2C exists between the pre-column address command PCA _ K6_ C44 and the read command RD _ K6_ C44.

In addition, in the double data rate memory specification of the joint committee of electronic device engineering, the pins a0-a13 of the memory M1 can be used to decode the address information, but the pins a13, a11 are not used to decode the column address information, so in the present invention, the pins a13, a 13-a 13 (or the pins a13, a 13-a 13, or the pins a13, a 13-a 13) of the memory M1 can be used to decode the column address information contained in the pre-column address commands PCA _ K13 _ C13, wherein in an embodiment of the present invention, the column address information contained in the pre-column address commands PCA _ K13 _ C13, PCA _ K13 _ C13 corresponds to the pins a 13-a 13 of the memory M13. However, the present invention is not limited to the memory M1 decoding the column address information contained in the pre-column address commands PCA _ K0_ C11, PCA _ K7_ C22, and PCA _ K5_ C33 using the above pin configuration.

Taking pins A13, A0-A9 as an example, as shown in FIG. 12, when pin A13 in the column address information has a high level, the command processor 150 may generate the pre-column address commands PCA _ K0_ C11, PCA _ K7_ C22, PCA _ K5_ C33, or PCA _ K6_ C44, wherein the generated pre-column address commands PCA _ K0_ C11, PCA _ K7_ C22, and/or PCA _ K5_ C33 correspond to the read commands RD _ K0_ C11, RD _ K7_ C22, RD _ K5_ C33, and the pre-column address commands PCA _ K6_ C44 correspond to the read commands RD _ K6_ C44 (or the write commands RD _ K6_ C44). In addition, the time interval existing between one pre-column address command and one corresponding read command (or one corresponding write command) is not less than the time interval tPCA2C, and the time interval existing between two adjacent read commands is not less than the time interval tCCD.

In addition, the present invention is not limited to the pre-column address command generation circuit 1108 of the command processor 150 generating the pre-column address command PCA _ K0_ C11 on the clock falling edge or clock rising edge between the active command ACT _ K0_ R11 and the read command RD _ K0_ C11. That is, it is within the scope of the present invention that the pre-column address command generation circuit 1108 may generate the pre-column address command PCA _ K0_ C11 before the read command RD _ K0_ C11.

In addition, taking the command processor 150 generating the pre-column address command PCA _ K6_ C44 as an example, as shown in FIG. 13, in one embodiment of the present invention, the command processor 150 generates the pre-column address command PCA _ K6_ C44 in a time period not exceeding the time period of the previous read command (i.e. the read command RD _ K5_ C33) in the operation timing sequence shown in FIG. 13, the maximum value tPCA2CMAX of the time interval tPCA2C between the pre-column address command PCA _ K6_ C44 and the read command RD _ K6_ C44 is equal to the time interval tCCD (e.g., as shown in fig. 13, the time interval tCCD between the pre-column address command PCA _ K6_ C44 and the read command RD _ K6_ C44 is equal to 11 clock cycles (11clks) or 11 nanoseconds (ns)), and a minimum value tPCA2CMIN of a time interval tPCA2C between the pre-column address command PCA _ K6_ C44 and the read command RD _ K6_ C44 is equal to 4 clock cycles (4clks) of the internal clock. Additionally, as shown in FIG. 13, for example, with the pre-column address command PCA _ K0_ C11, with the pre-column address command PCA _ K0_ C11, the memory M1 may improve the read access time by approximately 2 nanoseconds (ns) (e.g., the CAS latency "CL" set by the mode register may change from 12 to 10). Of course, when the pre-column address command PCA _ K0_ C11 corresponds to a write command, the memory M1 may also improve the write recovery time by about 2 nanoseconds (ns) (e.g., the "WR" set by the mode register may also change from 12 to 10). In addition, symbol Q shown in fig. 13 represents data.

In addition, in another embodiment of the present invention, taking the command processor 150 to generate the pre-column address command PCA _ K6_ C44 as an example, as shown in FIG. 14, the command processor 150 may generate the pre-column address command PCA _ K6_ C44 in time exceeding the previous read command (i.e. the read command RD _ K5_ C33) in the operation timing sequence shown in FIG. 14, but cannot exceed the activate command (not shown in FIG. 14) corresponding to the pre-column address command PCA _ K6_ C44, or cannot exceed the precharge command corresponding to the pre-column address command PCA _ K6_ C44 if possible. In addition, the pre-column address command PCA _ K5_ C33 may exceed the previous read command in the operation timing sequence shown in FIG. 14 (i.e., the read command RD _ K7_ C22), but may not exceed the activate command of the corresponding pre-column address command PCA _ K5_ C33, or the precharge command of the corresponding pre-column address command PCA _ K5_ C33, if possible.

Referring next to FIG. 15, FIG. 15 is a block diagram illustrating the timing of the operation of the FSM 1082 controlling the command processor 150 according to an embodiment of the present invention, wherein two read commands and a subsequent write command are generated. As shown in fig. 15, to generate the pre-column address command between generating the corresponding activate command and the corresponding read command (or corresponding write command), and the pre-column address command cannot exceed the previous read command (or the previous write command) for example, because the command processor 150 may generate the pre-rank address commands PCA _ K0_ C11, PCA _ K7_ C22, PCA _ K5_ C33, when the second finite state machine controller 10824 included in the finite state machine 1082 controls the command processor 150 to generate the precharge command PRECH K5, before the command processor 150 issues the precharge command PRECH K5, the time interval tWR will be reduced to a time interval tWR-2clks, wherein a time interval tWR-2clks exists between the precharge command PRECH _ K5 and the on time lbs ton of the last bit switch corresponding to the write command WR _ K5_ C33, as shown in fig. 15. In addition, as shown in fig. 15, in the embodiment of fig. 15, the maximum value tPCA2CMAX of the time interval tPCA2C is equal to the time interval tCCD (between two read commands) or the time interval tRTW (between the previous read command and the next write command). When a third FSM 10826 included in the FSM 1082 controls the command processor 150 to generate the PRE _ COLUMN Address command PCA _ K0_ C11, there is a time interval tRCD-4clks between the PRE _ COLUMN Address command PCA _ K0_ C11 and the ACTIVE command ACT _ K0_ R11, where the time interval tPCA2C is equal to the minimum value tPCA2CMIN (i.e., 4 clks); when the third finite state machine controller 10826 controls the command processor 150 to generate the pre-column address command PCA _ K7_ C22, there is a time interval tCCD between the pre-column address command PCA _ K7_ C22 and the read command RD _ K7_ C22; when the third finite state machine controller 10826 controls the command processor 150 to generate the pre-column address command PCA _ K5_ C33, there is a time interval tRTW between the pre-column address command PCA _ K5_ C33 and the write command WR _ K5_ C33. In addition, the operation principle of the first finite state machine controller 10822 can refer to fig. 7, and therefore, the detailed description thereof is omitted. In addition, the operation timing shown in FIG. 15 is only for illustrating (not limiting) one embodiment of the present invention.

Next, as shown in fig. 16, taking command C0 as an example, when the command processor 150 generates the PRE-column address command PCA _ K0_ C11, based on pin a13 (or other pins not used in conventional column addresses) and/or the PRE-column address command PCA _ K0_ C11, a decoder 1602 (i.e., a third decoder and operating according to a clock signal clk (PCA)) in the memory M1 may generate a PRE-column address enable signal PRE _ COL _ ADD _ EN to the column address latch 806 in the memory M1, and the address latch 804 in the memory M1 latches the addresses XADD [0: N ] (e.g., the address of block 0, the address of row11, and the address of column 11, wherein the address latch 804 also operates according to the clock signal clk (PCA)), so that the column address latch 806 may latch the address of column 11 and the address of output column 11 to the column redundancy comparator 808 and the column address PRE-decoder 810 early, the column redundancy comparator 808 and the column address pre-decoder 810 are caused to be ready in advance before the memory M1 receives the read command RD _ K0_ C11 (or during the memory M1 receives the read command RD _ K0_ C11), or before the decoder 802 of the memory M1 (i.e., a first decoder) decodes the read command RD _ K0_ C11 (or during the decoder 802 of the memory M1 decodes the read command RD _ K0_ C11).

As shown in fig. 16, the delay chain shown in fig. 8, which is the time to latch the address of column 11 to column address latch 806 and the time to prepare the column redundancy comparator 808 and the column address pre-decoder 810, may be removed in fig. 16 because the column redundancy comparator 808 and the column address pre-decoder 810 may be ready before the memory M1 receives the read command RD _ K0_ C11 (or before the decoder 802 of the memory M1 decodes the read command RD _ K0_ C11). That is, fig. 16 does not have the time interval T2 shown in fig. 8.

Referring to FIG. 17, FIG. 17 is a diagram illustrating the operation timing of the memory M1 based on the PCA _ K0_ C11 and the operation timing of the memory M1 based on the prior art. As shown in fig. 17(a), in the related art, after the memory M1 receives the read command RD _ K0_ C11, if the pre-column address command PCA _ K0_ C11 is not applied to the memory M1, after the memory M1 receives the read command RD _ K0_ C11, a time interval T1-T3 must exist before the memory M1 turns on the corresponding bit switch according to the column address data CAD, wherein the time interval T1 is a time for the memory M1 to receive the read command RD _ K0_ C11 and decode the read command RD _ K0_ C11, the time interval T2 is a time for the memory M1 to latch the column address data CAD, pre-decode the column address data CAD, and execute the column redundancy comparator 808, and the time interval T3 is a time for the memory M1 to decode the corresponding bit switch according to the column address data CAD to turn on the corresponding bit switch.

However, as shown in fig. 17(b), after the memory M1 receives the read command RD _ K0_ C11, if the pre-column address command PCA _ K0_ C11 is applied to the memory M1, since the memory M1 has decoded the pre-column address command PCA _ K0_ C11 to get the column address data CAD, latched the column address data CAD, pre-decoded the column address data CAD, and executed the column redundancy comparator 808 before the memory M1 receives the read command RD _ K0_ C11, only the time intervals T1, T3 exist between the memory M1 receiving the read command RD _ K0_ C11 and the memory M1 turning on the corresponding bit switches. That is, when the memory M1 receives the read command RD _ K0_ C11, the memory M1 may rapidly turn on the corresponding bit switches according to the rank 11.

In addition, the arbitration and mapping unit 104, the sorting engine 108, and the command processor 150 may be Field Programmable Gate Arrays (FPGAs) having the functions of the arbitration and mapping unit 104, the sorting engine 108, and the command processor 150, or Application-specific integrated circuits (ASICs) having the functions of the arbitration and mapping unit 104, the sorting engine 108, and the command processor 150, or software modules having the functions of the arbitration and mapping unit 104, the sorting engine 108, and the command processor 150, or analog integrated circuits having the functions of the arbitration and mapping unit 104, the sorting engine 108, and the command processor 150.

In addition, since a person skilled in the art may input codes of the above-described functions of the arbitration and mapping unit 104, the sequencing engine 108 and the command processor 150 into a Field Programmable Gate Array (FPGA), or implement an Application Specific Integrated Circuit (ASIC) of the above-described functions of the arbitration circuit 104, the sequencing engine 108 and the command processor 110 using an intellectual property core (IP) of the above-described functions of the arbitration and mapping unit 104, the sequencing engine 108 and the command processor 150, and the Field Programmable Gate Array (FPGA) and the Application Specific Integrated Circuit (ASIC) are readily available to a person skilled in the art, the circuit architectures of the arbitration and mapping unit 104, the sequencing engine 108 and the command processor 150 need not be disclosed.

In summary, since the unoccupied time exists between the read command (or the write command) and the activate command, the present invention can utilize a pre-column address command generating circuit in the command processor to generate the pre-column address command between the read command (or the write command) and the activate command to the memory. Therefore, the memory may utilize the pre-column address command to reduce a time interval between the memory receiving the read command (or the write command) and turning on the corresponding bit switch, compared to the related art.

The above description is only a preferred embodiment of the present invention and is not intended to limit the present invention, and various modifications and changes may be made by those skilled in the art. Any modification, equivalent replacement, or improvement made within the spirit and principle of the present invention should be included in the protection scope of the present invention.

32页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:多电平单元(MLC)交叉点存储器

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类