US20070162654A1 - Memory controller and memory control method - Google Patents
Memory controller and memory control method Download PDFInfo
- Publication number
- US20070162654A1 US20070162654A1 US11/634,120 US63412006A US2007162654A1 US 20070162654 A1 US20070162654 A1 US 20070162654A1 US 63412006 A US63412006 A US 63412006A US 2007162654 A1 US2007162654 A1 US 2007162654A1
- Authority
- US
- United States
- Prior art keywords
- data
- burst
- transfer
- length
- split
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
Definitions
- the present invention relates to a memory controller and a memory control method.
- the present invention relates to a memory controller supporting a burst transfer and a memory control method based on a burst transfer.
- an SDRAM Synchronous DRAM
- the SDRAM has a burst mode in which data are input/output successively and is configured to enable the data input/output at a high-speed.
- an interface circuit is necessary for connection with the SDRAM.
- Japanese Laid Open Patent Application JP-P2005-141682 discloses a high-speed memory access control device which controls access to a high-speed memory supporting a burst access. Described in the patent document is a case where a designated number of words are successively input/output by the burst access and there exists a page boundary of the memory during the burst access.
- the high-speed memory access control device has an exceptional access information determining means, an address generating means, a switch control means and a timing control means. Based on the number of burst words and an access start address supplied from the outside, the exceptional access information determining means judges that the burst access is an exceptional access extending over successive two pages. In addition, the exceptional access information determining means determines the number of access words to be burst accessed with respect to each of the two pages. The address generating means generates a start address of the high-speed memory from which the burst access is started for each page. In addition, the address generating means changes the start address for switching the page to be accessed from the initial page to the next page.
- the switch control means controls the timing of changing the start address by the address generating means, based on the determined number of access words.
- the timing control means controls the access timing such that the burst access to the high-speed memory is started after the exceptional access information determining means judges the exceptional access and determines the number of access words.
- FIG. 1 is a block diagram schematically showing a typical microprocessor system. A data writing operation in the microprocessor system based on a burst transfer will be described with reference to FIG. 1 .
- the microprocessor system is provided with a CPU (Central Processing Unit) 11 , a DMAC (Direct Memory Access Controller) 12 , an input/output unit (I/O) 18 , an SDRAM controller 17 and an SDRAM 20 .
- the CPU 11 , the DMAC 12 , the SDRAM controller 17 and the input/output unit 18 are often integrated on one chip due to improvement in the integration degree of integrated circuits.
- the microprocessor system is composed of two chips of a chip 10 and the SDRAM 20 .
- the CPU 11 , the DMAC 12 , the SDRAM controller 17 and the input/output unit 18 are connected with each other through a bus 15 .
- the CPU 11 accesses the SDRAM 20 that is the main memory, executes a program, receives data from the input/output unit 18 , and outputs data to the input/output unit 18 .
- the DMAC 12 controls data transfer between memories and between memory input/output units without through the CPU 11 .
- the SDRAM controller 17 controls the access to the SDRAM 20 by the CPU 11 or the DMAC 12 .
- the SDRAM controller 17 includes a command buffer 91 , a data write counter 97 , a burst length judgment circuit 95 , a burst timing control circuit 96 , a data buffer 98 and a data read counter 99 .
- a case of data writing to the SDRAM 20 will be mainly explained hereafter.
- the command buffer 91 receives a command PCMD from the CPU 11 or the DMAC 12 through the bus 15 . Also, the command buffer 91 receives a burst length PBL of a data to be transferred and an address PADR of a memory indicating the transfer destination, together with the command PCMD. The received command PCMD, the received burst length PBL and the received address PADR are output to the burst timing control circuit 96 . At the same time, the received burst length PBL is output also to the burst length judgment circuit 95 .
- the data write counter 97 makes a count of the number of write data PDATA received by the data buffer 98 , based on a data valid signal DVALD.
- the count value WCNT is output to the burst length judgment circuit 95 .
- the burst length judgment circuit 95 makes a comparison between the count value WCNT from the data write counter 97 and the above-mentioned burst length PBL from the command buffer 91 . If the count value WCNT becomes equal to the burst length PBL, the burst length judgment circuit 95 instructs the burst timing control circuit 96 to initiate a burst transfer.
- the burst timing control circuit 96 controls a timing of the data transfer to the SDRAM 20 .
- the burst timing control circuit 96 issues to the SDRAM 20 a command SCMD in accordance with a protocol for the data transfer, specifies a transfer destination address SADR, and instructs the data buffer 98 to output the data.
- the burst timing control circuit 96 can detect completion of the data transfer by referring to a count value RCNT obtained by the data read counter 99 .
- the number of data that can be burst transferred at a time is previously set in a mode register of the SDRAM 20 .
- the burst timing control circuit 96 issues the command every number of data that can be burst transferred at a time.
- the data buffer 98 Based on the data valid signal DVALD, the data buffer 98 receives the write data (transfer data) PDATA which are supplied through the bus 15 and are to be written to the SDRAM 20 .
- the received write data PDATA are once stored in the data buffer 98 .
- the write data PDATA are output as data DQ to the SDRAM 20 in response to the instruction of the burst timing control circuit 96 .
- the data read counter 99 makes a count of the number of data output by the data buffer 98 , and outputs the count value RCNT to the burst timing control circuit 96 . Further, the data read counter 99 may output a read address to the data buffer 98 .
- FIG. 3 is a timing chart showing an example of the data writing operation. Referring to FIG. 3 , an operation of the SDRAM controller 17 will be explained. It should be noted that the SDRAM controller 17 , the bus 15 and the SDRAM 20 operate in synchronization with a clock CLK. A data width of the data supplied to the SDRAM controller 17 through the bus 15 is equal to a data width of the data transferred from the SDRAM controller 17 to the SDRAM 20 .
- Each of reference numerals t 0 to t 21 denotes a cycle of the clock CLK and is used for explaining timing. Further, a case is considered where the burst length that the SDRAM 20 can receive at a time is set to “4”.
- a command PCMD: WR which is an instruction to write data to the SDRAM 20 , is output to the bus 15 together with a burst length PBL: 8 and an address PADR (see (b) and (c) in FIG. 3 ).
- the command buffer 91 receives the command PCMD: WR, the burst length PBL: 8 and the address PADR.
- the data valid signal DVALD indicates that the write data PDATA on the bus 15 is valid (see (e) in FIG. 3 ).
- the data buffer 98 receives the write data PDATA: DO to D 7 (see (d) in FIG. 3 ).
- the data write counter 97 makes a count of the number of the received write data PDATA by counting the number of risings of the clock CLK during the period from t 1 to t 8 when the data valid signal DVALD is activated (see (f) in FIG. 3 ).
- the specified burst length is “8”.
- the burst length judgment circuit 95 instructs the burst timing control circuit 96 to initiate the data transfer to the SDRAM 20 .
- the burst timing control circuit 96 outputs to the SDRAM 20 a command SCMD: ACT which instructs the SDRAM 20 to start operation.
- the burst timing control circuit 96 outputs the command SCMD: ACT such that the SDRAM 20 can receive it at the cycle t 10 (see (f) and (h) in FIG. 3 ).
- the burst timing control circuit 96 stands by until the operation of the SDRAM 20 becomes ready.
- the burst timing control circuit 96 outputs a command SCMD: WR instructing the data writing such that the SDRAM 20 can receive the command SCMD: WR at the cycle t 13 (see (h) in FIG. 3 ).
- the data buffer 98 starts outputting of the stored write data (DQ: DO to D 7 ) from the cycle t 13 .
- the SDRAM 20 receives the command SCMD: WR at the clock rising in the cycle t 13 . From the clock rising in the next cycle t 14 , the SDRAM 20 receives the write data (DQ: DO to D 7 ) in synchronization with the clock CLK (see (h) and (i) in FIG. 3 ).
- the data read counter 99 makes a count of the number of data output from the data buffer 98 (see (g) in FIG. 3 ).
- the burst timing control circuit 96 outputs to the SDRAM 20 another command SCMD: WR instructing the data writing of the next four words. Since the second command SCMD: WR is output at this timing, the SDRAM 20 is able to receive data successively without receiving a new address.
- the output of the second command SCMD: WR means that all commands necessary for the data transfer of the burst length “8” instructed to the SDRAM controller 17 are completely output. Therefore, the command buffer 91 can receive the next command PCMD. In the present example, the command buffer 91 can receive the next command PCMD at the cycle t 18 .
- the count value RCNT obtained by the data read counter 99 becomes “8” at the cycle t 21 . Therefore, the data read counter 99 notifies the burst timing control circuit 96 that the last data DQ: D 7 is output. Thus, the data transfer is completed at this point of time.
- the present invention has recognized the following points. According to the above-described data transfer instructed by the CPU 11 or the DMAC 12 , the SDRAM controller 17 initiates the data writing with respect to the SDRAM 20 after receiving all the transfer data PDATA (D 0 to D 7 ) of the specified burst length (“8”). Therefore, a significant time lag occurs between the instruction by the CPU 11 or the DMAC 12 and the initiation of the data writing with respect to the SDRAM 20 .
- a memory controller has a control unit and a data buffer configured to store a transfer data.
- the control unit receives the transfer data from a transmission circuit and executes a burst transfer of the transfer data to a reception circuit.
- the transmission circuit transmits a first data of a first bit length for a first burst times by a burst transmission.
- An amount of the transfer data from the transmission circuit is equal to a product of the first bit length and the first burst times.
- the reception circuit receives a second data of a second bit length for a second burst times by a burst reception.
- control unit transfers the received first data as the second data to the reception circuit, regardless of a number of the first data received by the control unit.
- a memory controller is provided.
- the memory controller is provided with a data buffer, a command split circuit, a burst length table and a burst timing control circuit.
- the data buffer is configured to store a transfer data of a first burst length.
- the first burst length is specified for every burst transfer.
- the command split circuit is configured to split a command indicating a burst transfer with the first burst length into commands each indicating a burst transfer with a split burst length, in accordance with a predetermined second burst length supported by a memory and burst transferred in response to one command issuance.
- the burst length table is configured to store the split burst length.
- the burst timing control circuit is configured to control a timing of a burst transfer of the transfer data such that the transfer data stored in the data buffer is burst transferred to the memory by the split burst length stored in the burst length table.
- a memory control method includes: (A) storing a transfer data of a first burst length in a data buffer, wherein the first burst length is specified for every burst transfer; (B) splitting a command indicating a burst transfer with the first burst length into commands each indicating a burst transfer with a split burst length, in accordance with a predetermined second burst length supported by a memory and burst transferred in response to one command issuance; (C) storing the split burst length in a burst length table; and (D) controlling a timing of a burst transfer of the transfer data such that the transfer data stored in the data buffer is burst transferred to the memory by the split burst length stored in the burst length table.
- the above-mentioned time lag in the burst data transfer is reduced.
- the time necessary for the burst data transfer can be reduced as a whole.
- FIG. 1 is a block diagram schematically showing an example of a microprocessor system using an SDRAM as a main memory;
- FIG. 2 is a block diagram showing a configuration of a conventional SDRAM controller
- FIG. 3 is a timing chart showing an example of an operation of the conventional SDRAM controller
- FIG. 4 is a block diagram showing a configuration of an SDRAM controller (memory controller) according to an embodiment of the present invention
- FIG. 5 is a schematic view showing a burst length table according to the embodiment of the present invention.
- FIG. 6 is a timing chart showing an example of an operation of the SDRAM controller according to the embodiment of the present invention.
- FIG. 7 is a timing chart showing another example of an operation of the SDRAM controller according to the embodiment of the present invention.
- FIG. 1 is a block diagram schematically showing a microprocessor system according an embodiment of the present invention.
- the microprocessor system uses an SDRAM as a main memory. More specifically, the microprocessor system is provided with a CPU (Central Processing Unit) 11 , a DMAC (Direct Memory Access Controller) 12 , an input/output unit (I/O) 18 , an SDRAM controller 17 and an SDRAM 20 .
- a CPU Central Processing Unit
- DMAC Direct Memory Access Controller
- I/O input/output unit
- the CPU 11 , the DMAC 12 , the SDRAM controller 17 and the input/output unit 18 are often integrated on one chip due to improvement in the integration degree of integrated circuits.
- the microprocessor system is composed of two chips of a chip 10 and the SDRAM 20 .
- the CPU 11 , the DMAC 12 , the SDRAM controller 17 and the input/output unit 18 are connected with each other through a bus 15 .
- the SDRAM 20 is connected to the SDRAM controller 17 .
- the CPU 11 accesses the SDRAM 20 that is the main memory, executes a program, receives data from the input/output unit 18 , and outputs data to the input/output unit 18 .
- the DMAC 12 controls data transfer between memories and between memory input/output units without through the CPU 11 .
- the SDRAM controller 17 controls the access to the SDRAM 20 by the CPU 11 or the DMAC 12 . That is, the SDRAM controller 17 is a memory controller for controlling the access to the SDRAM 20 .
- the CPU 11 or the DMAC 12 transmission circuit
- the SDRAM controller 17 can retrieve data (transfer data) from the SDRAM 20 (transmission circuit) and transfer the transfer data to the CPU 11 or the DMAC 12 (reception circuit) through the bus 15 .
- the SDRAM 20 and the SDRAM controller 17 support the burst access (burst transfer).
- FIG. 4 is a block diagram showing a configuration of the SDRAM controller 17 according to the present embodiment.
- the SDRAM controller (memory controller) 17 has a command buffer 31 , a preceding command split circuit 32 , a burst length table 33 , a burst length judgment circuit 35 , a burst timing control circuit 36 , a data write counter 37 , a data buffer 38 , and a data read counter 39 .
- the SDRAM controller 17 is of course provided with a readout side circuit for reading data from the SDRAM 20 , explanation thereof is omitted here.
- a write side circuit for transferring data to the SDRAM 20 will be explained hereafter.
- the command buffer 31 receives a command PCMD from the CPU 11 or the DMAC 12 through the bus 15 . Also, the command buffer 31 receives a burst length PBL of a data to be transferred and an address PADR of a memory indicating the transfer destination, together with the command PCMD. The command buffer 31 holds the command PCMD, the burst length PBL and the address PADR. The command PCMD, the burst length PBL and the address PADR are output to the burst timing control circuit 36 . At the same time, the command PCMD, the burst length PBL and the address PADR are output also to the preceding command split circuit 32 .
- the data buffer 38 receives write data (transfer data) PDATA supplied from the CPU 11 or the DMAC 12 through the bus 15 , and stores the received write data PDATA.
- the write data PDATA input to the data buffer 38 is loaded to the bus 15 together with a data valid signal DVALD indicating validity of the write data PDATA, in synchronization with a clock. That is, the data buffer 38 receives the write data PDATA based on the data valid signal PVALD.
- the data write counter 37 can make a count of the number of write data PDATA received by the data buffer 38 , based on the data valid signal DVALD. More specifically, the data write counter 37 counts the number of clocks in a period during which the data valid signal DVALD is activated. The count value WCNT is output to the burst length judgment circuit 35 . Moreover, in response to an instruction from the burst timing control circuit 36 , the data buffer 38 transfers the stored data PDATA as data DQ to the SDRAM 20 . It should be noted that the data buffer 38 according to the present embodiment can be realized in various forms. For example, the data buffer 38 is realized in a form of the FIFO (First-In First-Out).
- FIFO First-In First-Out
- the preceding command split circuit 32 splits the command PCMD into a plurality of split commands.
- the command PCMD indicates a burst transfer with the burst length PBL (first burst length), while the split command indicates a burst transfer with a split burst length.
- the burst length PBL is a burst length of the transfer data to be transferred to the SDRAM 20 and is specified for every burst transfer.
- the SDRAM 20 supports a burst transfer with a predetermined SDRAM burst length (second burst length) and can receive data of the SDRAM burst length in response to every one command.
- the SDRAM burst length is predetermined and stored in a mode register of the SDRAM 20 .
- the preceding command split circuit 32 splits the command PCMD into the split commands.
- the preceding command split circuit 32 splits the burst length PBL (first burst length) into split burst lengths, in accordance with the SDRAM burst length (second burst length).
- the burst length PBL which indicates the number of data that the transfer source outputs in accordance with one command, is split into the split burst lengths each indicating the number of data that the SDRAM controller 17 transfers to the SDRAM 20 in response to one command issued for the SDRAM 20 .
- the preceding command split circuit 32 determines the split burst length based on a first data width with which the transfer data PDATA is transmitted to the data buffer 38 and a second data width with which the transfer data DQ is transferred from the data buffer 38 to the SDRAM 20 .
- the preceding command split circuit 32 stores the split burst lengths in the burst length table 33 .
- the burst transfer with respect to the SDRAM 20 generally starts from a burst boundary such as an address 0 , an address 8 , an address 16 or the like in the SDRAM 20 .
- the preceding command split circuit 32 specifies the data length from the start address to the burst boundary as the first split burst length. In other words, the preceding command split circuit 32 determines the first split burst length such that the data from the start address to the burst boundary is transferred in one burst transfer.
- the data after the burst boundary are split in accordance with the above-mentioned SDRAM burst length.
- the split burst lengths are determined based on not only the SDRAM burst length but also the above-mentioned address PADR (start address). Therefore, the split burst lengths are not necessarily equal to each other.
- the preceding command split circuit 32 splits the command PCMD by referring to the burst length PBL, the address PADR and the SDRAM burst length.
- the burst length table 33 receives the split burst lengths from the preceding command split circuit 32 and stores them.
- FIG. 5 schematically shows an example of the burst length table 33 according to the present embodiment. Shown in FIG. 5 is a case where the burst length PBL is split into n split burst lengths.
- the split burst length group includes the first split burst length, the second split burst length, . . . , the n-th split burst length that are stored in the order of use.
- the burst length table 33 has a pointer which indicates a split burst length to be used, and the position indicated by the pointer is changed.
- the burst length judgment circuit 35 makes a comparison between the count value WCNT obtained by the data write counter 37 and each split burst length stored in the burst length table 33 . If the count value WCNT becomes equal to or more than the split burst length, the burst length judgment circuit 35 instructs the burst timing control circuit 36 to initiate a burst transfer. In other words, when as much data as can be burst transferred to the SDRAM by one command are stored in the data buffer 38 , the burst transfer is initiated.
- the burst timing control circuit 36 controls a timing of the data transfer to the SDRAM 20 . More specifically, the burst timing control circuit 36 controls the data transfer such that the transfer data DQ stored in the data buffer 38 is burst transferred to the SDRAM 20 by every split burst lengths stored in the burst length table 33 .
- the burst timing control circuit 36 issues to the SDRAM 20 a command SCMD in accordance with a protocol for the data transfer, specifies a transfer destination address SADR, and instructs the data buffer 38 to output the data.
- the burst timing control circuit 36 can detect completion of the data transfer by referring to a count value RCNT obtained by the data read counter 33 .
- the SDRAM burst length namely, the number of data that can be burst transferred at a time is previously set in the mode register of the SDRAM 20 .
- the burst timing control circuit 36 issues the command every number of data that can be burst transferred at a time.
- the data read counter 39 makes a count of the number of data output by the data buffer 38 , and outputs the count value RCNT to the burst timing control circuit 36 . Further, the data read counter 39 may output a read address to the data buffer 38 .
- FIG. 6 is a timing chart showing an example of the data writing operation. Referring to FIG. 6 , an operation of the SDRAM controller 17 will be explained. It should be noted that the SDRAM controller 17 , the bus 15 and the SDRAM 20 operate in synchronization with a clock CLK. The data width of the data supplied to the SDRAM controller 17 through the bus 15 is equal to the data width of the data transferred from the SDRAM controller 17 to the SDRAM 20 .
- Each of reference numerals t 0 to t 21 denotes a cycle of the clock CLK and is used for explaining timing. Further, a case is considered where the SDRAM burst length that the SDRAM 20 can receive at a time is set to “4”.
- the SDRAM controller 17 which controls the access to the SDRAM 20 outputs to the SDRAM 20 a RAS (Row Address Strobe) signal, a CAS (Column Address Strobe) signal, a CS (Chip Select) signal, a WES (Write Enable) signal, an address signal and the like.
- a command for the SDRAM 20 and its parameter are determined.
- the SDRAM controller 17 outputs a row address and instructs the SDRAM 20 to take in the row address.
- the SDRAM controller 17 outputs the column address.
- the SDRAM controller 17 outputs a command: ACT indicating the initiation of the access to the SDRAM 20 , and at the same time, gives a row address (a part of the address signal) to the SDRAM 20 .
- the SDRAM controller 17 outputs a command: WR indicating the initiation of the data writing operation, and at the same time, gives a column address (a part of the address signal) to the SDRAM 20 .
- the write data are transferred to the SDRAM 20 .
- the write data are transferred in synchronization with the clock CLK.
- another strobe signal may be used in order to transfer at a further high speed.
- the data transfer of a simple type will be described.
- the instruction of the address from the SDRAM controller 17 to the SDRAM 20 is not necessary while the write data is being transferred, which contributes to improvement of the transfer speed.
- the number of data (the SDRAM burst length) transferred in response to one write command SCMD: WR is set in the mode register of the SDRAM 20 previously. Explanation for procedures of setting the number of data in the mode register is omitted here.
- a command PCMD: WR which is an instruction to write the data to the SDRAM 20 , is output to the bus 15 by the CPU 11 or the DMAC 12 .
- the command PCMD: WR is output together with a burst length PBL: 8 and a write destination address (start address) PADR.
- the command buffer 31 receives the command PCMD: WR, the burst length PBL: 8 and the write destination address PADR (see (b) and (c) in FIG. 6 ).
- the command, the burst length and the address taken in the command buffer 31 are output to the preceding command split circuit 32 .
- the preceding command split circuit 32 splits the input command, namely, splits the burst length PBL into appropriate split burst lengths.
- the preceding command split circuit 32 stores the split burst lengths in the burst length table 33 , as shown in FIG. 5 .
- the write destination address (start address) PBL is consistent with a burst boundary.
- the burst length PBL is “8” and the SDRAM burst length is “4”. Therefore, the first split burst length of “4” and the second split burst length of “4” are stored in the burst length table 33 .
- the transfer data of the burst length of “8” will be divided into two data of the burst length of “4”, and respective of the two data will be separately burst transferred to the SDRAM 20 , as described later.
- the first split burst length of “4” is first output to the burst length judgment circuit 35 . After the data of the first split burst length is burst transferred to the SDRAM 20 , the second split burst length of “4” is output to the burst length judgment circuit 35 .
- the data buffer 38 takes in the transfer data (write data) supplied from the CPU 11 or the DMAC 12 . More specifically, during a period from the cycle t 1 to the cycle t 8 , the data valid signal DVALD indicates that the write data PDATA on the bus 15 is valid (see (e) in FIG. 6 ). Respective of the write data PDATA (D 0 to D 7 ) of the burst length PBL (8) are successively transmitted to the SDRAM controller 17 by a burst transmission. During the period from t 1 to t 8 , the data buffer 38 receives the write data PDATA: D 0 to D 7 (see (d) in FIG. 6 ). The amount of the data supplied to the data buffer 38 is equal to a product of the bit length of each write data and the number of transmission times (8).
- the data write counter 37 makes a count of the number of the received write data PDATA by counting the number of risings of the clock CLK during the period from t 1 to t 8 when the data valid signal DVALD is activated (see (f) in FIG. 6 ).
- the burst length judgment circuit 35 compares the count value WCNT output from the data write counter 37 and the first split burst length stored in the burst length table 33 .
- the first split burst length is “4”.
- the burst length judgment circuit 35 instructs the burst timing control circuit 36 to initiate the data transfer to the SDRAM 20 .
- the burst length judgment circuit 35 instructs the burst length table 33 to output the next split burst length, i.e., the second split burst length.
- the burst length judgment circuit 35 instructs the data write counter 37 to reset the count value WCNT (see (f) in FIG. 6 ).
- the data write counter 37 instructed by the burst timing control circuit 36 resets the count value WCNT. Then, the data write counter 37 continues counting from the write data PDATA: D 4 in the similar way.
- the burst timing control circuit 36 In response to the first instruction at the cycle t 4 to initiate the data transfer, the burst timing control circuit 36 outputs to the SDRAM 20 a command SCMD: ACT which instructs the SDRAM 20 to start operation.
- the burst timing control circuit 36 outputs the command SCMD: ACT such that the SDRAM 20 can receive it at the cycle t 6 (see (f) and (h) in FIG. 6 ).
- the burst timing control circuit 36 initiates the burst transfer of the transfer data at the time when the amount of the transfer data stored in the data buffer 38 becomes equal to that corresponding to the first split burst length.
- the burst timing control circuit 36 stands by until the operation of the SDRAM 20 becomes ready. Then, at the cycle t 9 when the SDRAM 20 becomes ready, the burst timing control circuit 36 outputs a command SCMD: WR instructing the data writing (see (h) in FIG. 6 ). At the same time, the burst timing control circuit 36 instructs the data buffer 38 to output the stored write data from the cycle t 9 . In response to the instruction by the burst timing control circuit 36 , the data buffer 38 starts outputting of the stored write data DQ: D 0 to D 7 . The SDRAM 20 receives the command SCMD: WR at the clock rising in the cycle t 9 .
- the SDRAM 20 receives the data output from the data buffer 38 in synchronization with the clock CLK (see (h) and (i) in FIG. 6 ).
- the data read counter 39 makes a count of the number of data output from the data buffer 38 (see (g) in FIG. 6 ).
- the burst length judgment circuit 35 instructs the burst timing control circuit 36 to initiate the second data transfer to the SDRAM 20 .
- the burst timing control circuit 36 has not yet instructed the foregoing first data transfer (see (f) and (h) in FIG. 6 ).
- the second data transfer initiation instruction from the burst length judgment circuit 35 is put into a hold state.
- the burst timing control circuit 36 outputs the second data transfer initiation instruction immediately before the completion of the first data transfer to the SDRAM 20 . Namely, the burst timing control circuit 36 outputs to the SDRAM 20 another command SCMD: WR instructing the next burst data writing simultaneously with the output of the data DQ: D 3 , i.e., at the cycle t 13 (see (h) and (i) in FIG. 6 ). Furthermore, the count value RCNT by the data read counter 39 is reset in order to be ready for the next burst data transfer (see (g) in FIG. 6 ). Therefore, the burst transfer to the SDRAM 20 is continued without interruption and thus the SDRAM 20 is able to receive the write data successively.
- SCMD WR instructing the next burst data writing simultaneously with the output of the data DQ: D 3 , i.e., at the cycle t 13 (see (h) and (i) in FIG. 6 ).
- the count value RCNT by the data read counter 39 is reset in
- the data DQ: D 4 to D 7 are transferred from the data buffer 38 to the SDRAM 20 .
- the count value RCNT by the data read counter 39 becomes “4” again, which means the completion of the burst data transfer corresponding to all of the split burst lengths stored in the burst length table 33 .
- the burst data transfer is completed at this point of time (cycle t 17 ).
- the data writing operation of the SDRAM 20 is initiated at the time when the amount of write data taken in the data buffer 38 satisfies the split burst length, even though all of the write data (D 0 to D 7 ) is not yet supplied to the data buffer 38 . Therefore, the time lag between the instruction by the CPU 11 or the DMAC 12 and the initiation of the data writing with respect to the SDRAM 20 is reduced as compared with the conventional technique.
- the burst transfer of the whole transfer data is completed at the cycle t 21 , as shown in FIG. 3 .
- the burst transfer of the whole transfer data is completed at the cycle t 17 , as shown in FIG. 6 . In this manner, the time necessary for the burst data transfer can be reduced as a whole.
- the output of the second command SCMD: WR at the cycle t 13 means that all commands necessary for the data transfer of the burst length “8” instructed to the SDRAM controller 17 are completely output. Therefore, the command buffer 31 can receive the next command PCMD. In the present example, the command buffer 31 can receive the next command PCMD at the cycle t 14 , which is earlier than the timing (t 18 ) in the conventional technique.
- FIG. 7 is a timing chart showing another example of the data writing operation of the SDRAM controller 17 .
- the write start address is not present at the burst boundary and is different from the burst boundary.
- the write start address is shifted by 2-words from the burst boundary. Referring to FIG. 7 , an example of the data writing operation based on the burst transfer will be explained.
- a command PCMD: WR which is an instruction to write the data to the SDRAM 20 , is output to the bus 15 by the CPU 11 or the DMAC 12 .
- the command PCMD: WR is output together with a burst length PBL: 8 and a write destination address (start address) PADR.
- the command buffer 31 receives the command PCMD: WR, the burst length PBL: 8 and the write destination address PADR (see (b) and (c) in FIG. 7 ).
- the command, the burst length and the address taken in the command buffer 31 are output to the preceding command split circuit 32 .
- the preceding command split circuit 32 splits the input command, namely, splits the burst length PBL into appropriate split burst lengths.
- the preceding command split circuit 32 stores the split burst lengths in the burst length table 33 .
- the write start address is different from the burst boundary. Therefore, the data length (2-words) from the write start address to the burst boundary is set to the first split burst length. In the present example, the first split burst length is set to “2”.
- the address reaches the burst boundary. Therefore, the remaining burst length is split in accordance with the SDRAM burst length (“4”) that is set in the mode register of the SDRAM 20 .
- the second split burst length is set to “4”.
- 2-words are still remaining and thus the third split burst length is set to “2”.
- the first split burst length of “2”, the second split burst length of “4” and the third split burst length of “2” are stored in the burst length table 33 .
- the first split burst length of “2” is first output to the burst length judgment circuit 35 .
- the data valid signal DVALD indicates that the write data PDATA on the bus 15 is valid.
- the data buffer 38 receives the write data PDATA: D 0 to D 7 (see (d) and (e) in FIG. 7 ).
- the data write counter 37 makes a count of the number of the received write data PDATA by counting the number of risings of the clock CLK during the period from t 1 to t 8 when the data valid signal DVALD is activated (see (f) in FIG. 7 ).
- the burst length judgment circuit 35 compares the count value WCNT output from the data write counter 37 and the first split burst length stored in the burst length table 33 .
- the first split burst length is “2”.
- the burst length judgment circuit 35 instructs the burst timing control circuit 36 to initiate the data transfer to the SDRAM 20 .
- the burst length judgment circuit 35 instructs the burst length table 33 to output the next split burst length, i.e., the second split burst length.
- the burst length judgment circuit 35 instructs the data write counter 37 to reset the count value WCNT (see (f) in FIG. 7 ).
- the data write counter 37 instructed by the burst timing control circuit 36 resets the count value WCNT. Then, the data write counter 37 continues counting from the write data PDATA: D 2 in the similar way.
- the burst timing control circuit 36 In response to the first instruction at the cycle t 2 to initiate the data transfer, the burst timing control circuit 36 outputs to the SDRAM 20 a command SCMD: ACT which instructs the SDRAM 20 to start operation.
- the burst timing control circuit 36 outputs the command SCMD: ACT such that the SDRAM 20 can receive it at the cycle t 4 (see (f) and (h) in FIG. 7 ).
- the burst timing control circuit 36 stands by until the operation of the SDRAM 20 becomes ready. Then, at the cycle t 7 when the SDRAM 20 becomes ready, the burst timing control circuit 36 outputs a command SCMD: WR instructing the data writing (see (h) in FIG. 7 ). At the same time, the burst timing control circuit 36 instructs the data buffer 38 to output the stored write data from the cycle t 10 after two dummy data (dm) as much as 2-words from the write start address to the burst boundary are output (see (i) in FIG. 7 ). The SDRAM 20 receives the command SCMD: WR at the clock rising in the cycle t 7 .
- the SDRAM 20 receives the two dummy data (dm) and the data output from the data buffer 38 in synchronization with the clock CLK (see (h) and (i) in FIG. 7 ). It should be noted that the dummy data (dm) from the write start address to the burst boundary are not actually written into the SDRAM 20 . The data from D 0 are written into the SDRAM 20 .
- the data read counter 39 makes a count of the number of data output from the data buffer 38 (see (g) in FIG. 7 ).
- the count value RCNT becomes “1”.
- the count value RCNT becomes “2”.
- the data read counter 39 is reset when a command SCMD: WR for the SDRAM 20 is issued.
- the burst length judgment circuit 35 instructs the burst timing control circuit 36 to initiate the second data transfer to the SDRAM 20 .
- the burst timing control circuit 36 has not yet instructed the foregoing first data transfer (see (f) and (h) in FIG. 7 ).
- the second data transfer initiation instruction from the burst length judgment circuit 35 is put into a hold state.
- the burst timing control circuit 36 outputs the second data transfer initiation instruction immediately before the completion of the first data transfer to the SDRAM 20 . Namely, the burst timing control circuit 36 outputs to the SDRAM 20 another command SCMD: WR instructing the next burst data writing simultaneously with the output of the data DQ: D 1 , i.e., at the cycle t 11 (see (h) and (i) in FIG. 7 ). Furthermore, the count value RCNT by the data read counter 39 is reset in order to be ready for the next burst data transfer (see (g) in FIG. 7 ). Therefore, the burst transfer to the SDRAM 20 is continued without interruption and thus the SDRAM 20 is able to receive the write data successively.
- SCMD WR instructing the next burst data writing simultaneously with the output of the data DQ: D 1 , i.e., at the cycle t 11 (see (h) and (i) in FIG. 7 ).
- the count value RCNT by the data read counter 39 is reset in
- the data DQ: D 2 to D 5 are transferred from the data buffer 38 to the SDRAM 20 .
- the count value RCNT by the data read counter 39 becomes “4”.
- the burst timing control circuit 36 outputs the third data transfer initiation instruction immediately before the completion of the second data transfer to the SDRAM 20 .
- the burst timing control circuit 36 outputs to the SDRAM 20 still another command SCMD: WR simultaneously with the output of the data DQ: D 5 , i.e., at the cycle t 15 (see (h) and (i) in FIG. 7 ).
- the count value RCNT by the data read counter 39 is reset in order to be ready for the next burst data transfer (see (g) in FIG. 7 ). Therefore, the burst transfer to the SDRAM 20 is continued without interruption and thus the SDRAM 20 is able to receive the write data successively.
- the data DQ: D 6 to D 7 are transferred from the data buffer 38 to the SDRAM 20 , followed by the dummy data transfer.
- the count value RCNT by the data read counter 39 becomes “2 38 which is equal to the third split burst length.
- the burst data transfer corresponding to all of the split burst lengths stored in the burst length table 33 is completed.
- the transfer of the dummy data is executed till the burst boundary and is finished at the cycle t 19 .
- the time necessary for the burst data transfer can be reduced as a whole according to the present example. A great time reduction can be attained by the circuit according to the present embodiment.
- the data write counter 37 is reset after the split burst length is counted.
- split position of the burst data may be used instead of the split burst length.
- the data write counter 37 executes the counting continuously without being reset.
- the configuration of the burst length judgment circuit 35 is simplified.
- the data write counter 37 is designed to count the number of the data transfer times.
- the data write counter 37 may be designed to detect the amount of the data transfer.
- the data width of the bus 15 (the data width of the data PDATA) is equal to the data width of the SDRAM 20 (the data width of the data DQ).
- the data buffer 38 is designed based on the data width of the bus 15 .
- the data width of the data transferred through the bus 15 is 2 m bytes.
- the number of the data transfers is given by “B”
- the amount of the write data supplied to the data buffer 38 are given by “B ⁇ 2 m bytes”.
- the data width of the SDRAM 20 (the data DQ) is 2 n bytes.
- the data DQ is read out from the data buffer 38 every data width “2 n bytes”.
- the SDRAM burst length is 2 j
- the SDRAM 20 receives data of “2 n+j bytes” by one burst writing. Therefore, if the write start address in the transfer destination is present on the burst boundary, the number of the write commands SCMD: WR issued with respect to the SDRAM 20 is given by “the burst length ⁇ 2 m /2 n+j (the burst length ⁇ 2 m ⁇ n ⁇ j ).
- the number of write bytes can be counted if the data write counter 37 of the data buffer 38 includes a counter for counting the burst length and a m-bit counter. It also means that the number of read bytes can be counter if the data read counter 39 includes a j-bit counter for counting the SDRAM burst length and an n-bit counter. Therefore, if 2 n+j is set to the burst length table 33 and the number of bytes (2 m ⁇ B) of the stored data is compared, the burst length judgment circuit 35 can judge whether or not the data transfer to the SDRAM 20 can be initiated.
- the data stored in the data buffer 38 is up to 2 m ⁇ B bytes, and when the amount of the stored data becomes equal to or more than 2 n+j bytes, the data transfer to the SDRAM 20 can be initiated.
- the burst transfer to the SDRAM 20 is not possible.
- the data width of the bus 15 is sufficiently large.
- the burst transfer to the SDRAM 20 as many as 2 m ⁇ n ⁇ j times is possible for one-time data transfer through the bus 15 .
- the data buffer 38 Since the data transfer speed of the bus 15 is high, the data buffer 38 is designed based on the data width of the bus 15 . Therefore, conversion of the data width is executed when the data read out from the data buffer 38 is transferred to the SDRAM 20 .
- the data width of the SDRAM 20 is narrower than the data width of the data buffer 38 , the data readout from the data buffer 38 are transferred to the SDRAM 20 in plural times. Such an operation can be realized by providing a multiplexer having a data width corresponding to the data width of the SDRAM 20 .
- a plurality of data readout from the data buffer 38 are combined and then transferred to the SDRAM 20 .
- Such an operation can be realized by providing a register for holding the read data till the next readout. Furthermore, if the transfer destination address is different from the burst boundary, the dummy data transfer can be realized by providing a counter for counting the offset value of the address with respect to the burst boundary. The timing of reading out the transfer data from the data buffer 38 is determined by this counter. That is, the counter starts counting from the initiation of the burst transfer to the SDRAM 20 , and when the count value reaches the offset value, the data transfer from the data buffer 38 is initiated. Thus, the data stored in the data buffer 38 is transferred to the SDRAM 20 after the dummy data transfer.
- information indicating the respective data widths is set as necessary in the preceding command split circuit 32 and the burst timing control circuit 36 .
- An external terminal may be provided for specifying the information indicating the respective data widths.
- a register may be provided for storing the information indicating the respective data widths.
- a register for storing setting conditions of the data widths may be provided so as to allow setting by commands from high-level devices.
- the command buffer 31 , the preceding command split circuit 32 , the burst length table 33 , the burst length judgment circuit 35 , the burst timing control circuit 36 , the data write counter 37 , the data buffer 38 , and the data read counter 39 function as a “control unit”.
- the control unit receives the transfer data from a transmission circuit and executes a burst transfer of the transfer data to a reception circuit.
- the transmission circuit such as the CPU 11 or the DMAC 12 transmits a first data of a first bit length for a first burst times by a burst transmission.
- the amount of the transfer data from the transmission circuit is equal to a product of the first bit length and the first burst times.
- the reception circuit receives a second data of a second bit length for a second burst times by a burst reception.
- the control unit transfers the received first data as the second data to the reception circuit, regardless of a number of the first data received by the control unit.
- the burst transfer to the SDRAM 20 can be initiated at a timing when the data amount that can be burst transferred to the SDRAM 20 is taken in the data buffer 38 . Therefore, the above-described “time-lag” is reduced as compared with the conventional circuit which initiates the burst transfer after all the transfer data are taken in the data buffer. Furthermore, since the data on the CPU 11 side are taken while writing the stored data into the SDRAM 20 , the capacity of the data buffer 38 can be designed to be smaller.
Abstract
A memory controller has a control unit receiving a transfer data from a transmission circuit and executing a burst transfer of the transfer data to a reception circuit. The transmission circuit transmits a first data of a first bit length for a first burst times by a burst transmission. The amount of the transfer data is equal to a product of the first bit length and the first burst times. The reception circuit receives a second data of a second bit length for a second burst times by a burst reception. When the amount of the first data received by the control unit becomes equal to or more than a product of the second bit length and the second burst times, the control unit transfers the received first data as the second data to the reception circuit, regardless of the number of the first data received by the control unit.
Description
- 1. Field of the Invention
- The present invention relates to a memory controller and a memory control method. In particular, the present invention relates to a memory controller supporting a burst transfer and a memory control method based on a burst transfer.
- 2. Description of the Related Art
- In recent years, a DRAM (Dynamic Random Access Memory) capable of data inputting/outputting in synchronization with a clock signal, so-called an SDRAM (Synchronous DRAM) has become a mainstream of the RAM, since it allows for incorporation of a high-speed large-capacity memory into the system. The SDRAM has a burst mode in which data are input/output successively and is configured to enable the data input/output at a high-speed. In order to fully utilize such a high-speed access performance of the SDRAM, an interface circuit is necessary for connection with the SDRAM.
- For example, Japanese Laid Open Patent Application JP-P2005-141682 discloses a high-speed memory access control device which controls access to a high-speed memory supporting a burst access. Described in the patent document is a case where a designated number of words are successively input/output by the burst access and there exists a page boundary of the memory during the burst access.
- The high-speed memory access control device has an exceptional access information determining means, an address generating means, a switch control means and a timing control means. Based on the number of burst words and an access start address supplied from the outside, the exceptional access information determining means judges that the burst access is an exceptional access extending over successive two pages. In addition, the exceptional access information determining means determines the number of access words to be burst accessed with respect to each of the two pages. The address generating means generates a start address of the high-speed memory from which the burst access is started for each page. In addition, the address generating means changes the start address for switching the page to be accessed from the initial page to the next page. When it is judged that the burst access extends over the successive two pages, the switch control means controls the timing of changing the start address by the address generating means, based on the determined number of access words. The timing control means controls the access timing such that the burst access to the high-speed memory is started after the exceptional access information determining means judges the exceptional access and determines the number of access words.
- An SDRAM is used as, for example, a main memory of a microprocessor system.
FIG. 1 is a block diagram schematically showing a typical microprocessor system. A data writing operation in the microprocessor system based on a burst transfer will be described with reference toFIG. 1 . - As shown in
FIG. 1 , the microprocessor system is provided with a CPU (Central Processing Unit) 11, a DMAC (Direct Memory Access Controller) 12, an input/output unit (I/O) 18, anSDRAM controller 17 and anSDRAM 20. The CPU 11, theDMAC 12, theSDRAM controller 17 and the input/output unit 18 are often integrated on one chip due to improvement in the integration degree of integrated circuits. In many cases, the microprocessor system is composed of two chips of achip 10 and theSDRAM 20. - The CPU 11, the
DMAC 12, theSDRAM controller 17 and the input/output unit 18 are connected with each other through abus 15. The CPU 11 accesses theSDRAM 20 that is the main memory, executes a program, receives data from the input/output unit 18, and outputs data to the input/output unit 18. The DMAC 12 controls data transfer between memories and between memory input/output units without through the CPU 11. TheSDRAM controller 17 controls the access to theSDRAM 20 by the CPU 11 or theDMAC 12. - As shown in
FIG. 2 , theSDRAM controller 17 includes acommand buffer 91, a data writecounter 97, a burstlength judgment circuit 95, a bursttiming control circuit 96, adata buffer 98 and a data readcounter 99. A case of data writing to theSDRAM 20 will be mainly explained hereafter. - The
command buffer 91 receives a command PCMD from the CPU 11 or the DMAC 12 through thebus 15. Also, thecommand buffer 91 receives a burst length PBL of a data to be transferred and an address PADR of a memory indicating the transfer destination, together with the command PCMD. The received command PCMD, the received burst length PBL and the received address PADR are output to the bursttiming control circuit 96. At the same time, the received burst length PBL is output also to the burstlength judgment circuit 95. - The data write
counter 97 makes a count of the number of write data PDATA received by thedata buffer 98, based on a data valid signal DVALD. The count value WCNT is output to the burstlength judgment circuit 95. The burstlength judgment circuit 95 makes a comparison between the count value WCNT from the data writecounter 97 and the above-mentioned burst length PBL from thecommand buffer 91. If the count value WCNT becomes equal to the burst length PBL, the burstlength judgment circuit 95 instructs the bursttiming control circuit 96 to initiate a burst transfer. - In response to the instruction to initiate the burst transfer, the burst
timing control circuit 96 controls a timing of the data transfer to theSDRAM 20. The bursttiming control circuit 96 issues to the SDRAM 20 a command SCMD in accordance with a protocol for the data transfer, specifies a transfer destination address SADR, and instructs thedata buffer 98 to output the data. Here, the bursttiming control circuit 96 can detect completion of the data transfer by referring to a count value RCNT obtained by the data readcounter 99. The number of data that can be burst transferred at a time is previously set in a mode register of theSDRAM 20. When the burst transfer continues, the bursttiming control circuit 96 issues the command every number of data that can be burst transferred at a time. - Based on the data valid signal DVALD, the
data buffer 98 receives the write data (transfer data) PDATA which are supplied through thebus 15 and are to be written to theSDRAM 20. The received write data PDATA are once stored in thedata buffer 98. Then, the write data PDATA are output as data DQ to theSDRAM 20 in response to the instruction of the bursttiming control circuit 96. - The data read
counter 99 makes a count of the number of data output by thedata buffer 98, and outputs the count value RCNT to the bursttiming control circuit 96. Further, the data readcounter 99 may output a read address to thedata buffer 98. -
FIG. 3 is a timing chart showing an example of the data writing operation. Referring toFIG. 3 , an operation of theSDRAM controller 17 will be explained. It should be noted that theSDRAM controller 17, thebus 15 and the SDRAM 20 operate in synchronization with a clock CLK. A data width of the data supplied to theSDRAM controller 17 through thebus 15 is equal to a data width of the data transferred from theSDRAM controller 17 to theSDRAM 20. Each of reference numerals t0 to t21 (see (a) inFIG. 3 ) denotes a cycle of the clock CLK and is used for explaining timing. Further, a case is considered where the burst length that theSDRAM 20 can receive at a time is set to “4”. - A command PCMD: WR, which is an instruction to write data to the
SDRAM 20, is output to thebus 15 together with a burst length PBL: 8 and an address PADR (see (b) and (c) inFIG. 3 ). At the clock rising in the cycle t0, thecommand buffer 91 receives the command PCMD: WR, the burst length PBL: 8 and the address PADR. - During a period from the cycle t1 to the cycle t8, the data valid signal DVALD indicates that the write data PDATA on the
bus 15 is valid (see (e) inFIG. 3 ). During the period from t1 to t8, thedata buffer 98 receives the write data PDATA: DO to D7 (see (d) inFIG. 3 ). Here, the data writecounter 97 makes a count of the number of the received write data PDATA by counting the number of risings of the clock CLK during the period from t1 to t8 when the data valid signal DVALD is activated (see (f) inFIG. 3 ). - In the present example, the specified burst length is “8”. When the count value WCNT obtained by the data write
counter 97 becomes equal to “8”, namely, at the cycle t8, the burstlength judgment circuit 95 instructs the bursttiming control circuit 96 to initiate the data transfer to theSDRAM 20. In response to the instruction to initiate the data transfer, the bursttiming control circuit 96 outputs to the SDRAM 20 a command SCMD: ACT which instructs theSDRAM 20 to start operation. Here, the bursttiming control circuit 96 outputs the command SCMD: ACT such that theSDRAM 20 can receive it at the cycle t10 (see (f) and (h) inFIG. 3 ). - The burst
timing control circuit 96 stands by until the operation of theSDRAM 20 becomes ready. - Then, the burst
timing control circuit 96 outputs a command SCMD: WR instructing the data writing such that theSDRAM 20 can receive the command SCMD: WR at the cycle t13 (see (h) inFIG. 3 ). In response to the instruction by the bursttiming control circuit 96, thedata buffer 98 starts outputting of the stored write data (DQ: DO to D7) from the cycle t13. TheSDRAM 20 receives the command SCMD: WR at the clock rising in the cycle t13. From the clock rising in the next cycle t14, theSDRAM 20 receives the write data (DQ: DO to D7) in synchronization with the clock CLK (see (h) and (i) inFIG. 3 ). In synchronization with the data output instruction for thedata buffer 98, the data readcounter 99 makes a count of the number of data output from the data buffer 98 (see (g) inFIG. 3 ). - When the data DQ: D3 that is the fourth word is output at the cycle t17, the count value RCNT obtained by the data read
counter 99 becomes equal to the burst length “4” set in the mode register of theSDRAM 20. At the same time (cycle t17), the bursttiming control circuit 96 outputs to theSDRAM 20 another command SCMD: WR instructing the data writing of the next four words. Since the second command SCMD: WR is output at this timing, theSDRAM 20 is able to receive data successively without receiving a new address. - The output of the second command SCMD: WR means that all commands necessary for the data transfer of the burst length “8” instructed to the
SDRAM controller 17 are completely output. Therefore, thecommand buffer 91 can receive the next command PCMD. In the present example, thecommand buffer 91 can receive the next command PCMD at the cycle t18. - As for the former data transfer, the count value RCNT obtained by the data read
counter 99 becomes “8” at the cycle t21. Therefore, the data readcounter 99 notifies the bursttiming control circuit 96 that the last data DQ: D7 is output. Thus, the data transfer is completed at this point of time. - The present invention has recognized the following points. According to the above-described data transfer instructed by the CPU 11 or the
DMAC 12, theSDRAM controller 17 initiates the data writing with respect to theSDRAM 20 after receiving all the transfer data PDATA (D0 to D7) of the specified burst length (“8”). Therefore, a significant time lag occurs between the instruction by the CPU 11 or theDMAC 12 and the initiation of the data writing with respect to theSDRAM 20. - In a first aspect of the present invention, a memory controller is provided. The memory controller has a control unit and a data buffer configured to store a transfer data. The control unit receives the transfer data from a transmission circuit and executes a burst transfer of the transfer data to a reception circuit. The transmission circuit transmits a first data of a first bit length for a first burst times by a burst transmission. An amount of the transfer data from the transmission circuit is equal to a product of the first bit length and the first burst times. The reception circuit receives a second data of a second bit length for a second burst times by a burst reception. When an amount of the first data received by the control unit becomes equal to or more than a product of the second bit length and the second burst times, the control unit transfers the received first data as the second data to the reception circuit, regardless of a number of the first data received by the control unit.
- In a second aspect of the present invention, a memory controller is provided. The memory controller is provided with a data buffer, a command split circuit, a burst length table and a burst timing control circuit. The data buffer is configured to store a transfer data of a first burst length. The first burst length is specified for every burst transfer. The command split circuit is configured to split a command indicating a burst transfer with the first burst length into commands each indicating a burst transfer with a split burst length, in accordance with a predetermined second burst length supported by a memory and burst transferred in response to one command issuance. The burst length table is configured to store the split burst length. The burst timing control circuit is configured to control a timing of a burst transfer of the transfer data such that the transfer data stored in the data buffer is burst transferred to the memory by the split burst length stored in the burst length table.
- In a third aspect of the present invention, a memory control method is provided. The memory control method includes: (A) storing a transfer data of a first burst length in a data buffer, wherein the first burst length is specified for every burst transfer; (B) splitting a command indicating a burst transfer with the first burst length into commands each indicating a burst transfer with a split burst length, in accordance with a predetermined second burst length supported by a memory and burst transferred in response to one command issuance; (C) storing the split burst length in a burst length table; and (D) controlling a timing of a burst transfer of the transfer data such that the transfer data stored in the data buffer is burst transferred to the memory by the split burst length stored in the burst length table.
- According to the present invention, the above-mentioned time lag in the burst data transfer is reduced. As a result, the time necessary for the burst data transfer can be reduced as a whole.
- The above and other objects, advantages and features of the present invention will be more apparent from the following description taken in conjunction with the accompanying drawings, in which:
-
FIG. 1 is a block diagram schematically showing an example of a microprocessor system using an SDRAM as a main memory; -
FIG. 2 is a block diagram showing a configuration of a conventional SDRAM controller; -
FIG. 3 is a timing chart showing an example of an operation of the conventional SDRAM controller; -
FIG. 4 is a block diagram showing a configuration of an SDRAM controller (memory controller) according to an embodiment of the present invention; -
FIG. 5 is a schematic view showing a burst length table according to the embodiment of the present invention; -
FIG. 6 is a timing chart showing an example of an operation of the SDRAM controller according to the embodiment of the present invention; and -
FIG. 7 is a timing chart showing another example of an operation of the SDRAM controller according to the embodiment of the present invention. - The invention will be now described herein with reference to illustrative embodiments. Those skilled in the art will recognize that many alternative embodiments can be accomplished using the teachings of the present invention and that the invention is not limited to the embodiments illustrated for explanatory purposed.
-
FIG. 1 is a block diagram schematically showing a microprocessor system according an embodiment of the present invention. The microprocessor system uses an SDRAM as a main memory. More specifically, the microprocessor system is provided with a CPU (Central Processing Unit) 11, a DMAC (Direct Memory Access Controller) 12, an input/output unit (I/O) 18, anSDRAM controller 17 and anSDRAM 20. - The CPU 11, the
DMAC 12, theSDRAM controller 17 and the input/output unit 18 are often integrated on one chip due to improvement in the integration degree of integrated circuits. In many cases, the microprocessor system is composed of two chips of achip 10 and theSDRAM 20. The CPU 11, theDMAC 12, theSDRAM controller 17 and the input/output unit 18 are connected with each other through abus 15. TheSDRAM 20 is connected to theSDRAM controller 17. - The CPU 11 accesses the
SDRAM 20 that is the main memory, executes a program, receives data from the input/output unit 18, and outputs data to the input/output unit 18. TheDMAC 12 controls data transfer between memories and between memory input/output units without through the CPU 11. TheSDRAM controller 17 controls the access to theSDRAM 20 by the CPU 11 or theDMAC 12. That is, theSDRAM controller 17 is a memory controller for controlling the access to theSDRAM 20. The CPU 11 or the DMAC 12 (transmission circuit) can transmit data (transfer data) to theSDRAM controller 17 through thebus 15, and theSDRAM controller 17 can write the transfer data to the SDRAM 20 (reception circuit). Further, theSDRAM controller 17 can retrieve data (transfer data) from the SDRAM 20 (transmission circuit) and transfer the transfer data to the CPU 11 or the DMAC 12 (reception circuit) through thebus 15. In the present embodiment, theSDRAM 20 and theSDRAM controller 17 support the burst access (burst transfer). -
FIG. 4 is a block diagram showing a configuration of theSDRAM controller 17 according to the present embodiment. As shown inFIG. 4 , the SDRAM controller (memory controller) 17 has acommand buffer 31, a preceding command splitcircuit 32, a burst length table 33, a burstlength judgment circuit 35, a bursttiming control circuit 36, adata write counter 37, adata buffer 38, and a data readcounter 39. For simplicity reason, the explanation is made herein considering that a data width of thebus 15 is identical with a data width of theSDRAM 20. Further, theSDRAM controller 17 is of course provided with a readout side circuit for reading data from theSDRAM 20, explanation thereof is omitted here. A write side circuit for transferring data to theSDRAM 20 will be explained hereafter. - The
command buffer 31 receives a command PCMD from the CPU 11 or theDMAC 12 through thebus 15. Also, thecommand buffer 31 receives a burst length PBL of a data to be transferred and an address PADR of a memory indicating the transfer destination, together with the command PCMD. Thecommand buffer 31 holds the command PCMD, the burst length PBL and the address PADR. The command PCMD, the burst length PBL and the address PADR are output to the bursttiming control circuit 36. At the same time, the command PCMD, the burst length PBL and the address PADR are output also to the preceding command splitcircuit 32. - The
data buffer 38 receives write data (transfer data) PDATA supplied from the CPU 11 or theDMAC 12 through thebus 15, and stores the received write data PDATA. The write data PDATA input to thedata buffer 38 is loaded to thebus 15 together with a data valid signal DVALD indicating validity of the write data PDATA, in synchronization with a clock. That is, thedata buffer 38 receives the write data PDATA based on the data valid signal PVALD. - Therefore, the data write counter 37 can make a count of the number of write data PDATA received by the
data buffer 38, based on the data valid signal DVALD. More specifically, the data write counter 37 counts the number of clocks in a period during which the data valid signal DVALD is activated. The count value WCNT is output to the burstlength judgment circuit 35. Moreover, in response to an instruction from the bursttiming control circuit 36, thedata buffer 38 transfers the stored data PDATA as data DQ to theSDRAM 20. It should be noted that thedata buffer 38 according to the present embodiment can be realized in various forms. For example, thedata buffer 38 is realized in a form of the FIFO (First-In First-Out). - The preceding command split
circuit 32 splits the command PCMD into a plurality of split commands. The command PCMD indicates a burst transfer with the burst length PBL (first burst length), while the split command indicates a burst transfer with a split burst length. The burst length PBL is a burst length of the transfer data to be transferred to theSDRAM 20 and is specified for every burst transfer. Here, theSDRAM 20 supports a burst transfer with a predetermined SDRAM burst length (second burst length) and can receive data of the SDRAM burst length in response to every one command. The SDRAM burst length is predetermined and stored in a mode register of theSDRAM 20. Based on the SDRAM burst length, the preceding command splitcircuit 32 splits the command PCMD into the split commands. In other words, the preceding command splitcircuit 32 splits the burst length PBL (first burst length) into split burst lengths, in accordance with the SDRAM burst length (second burst length). The burst length PBL, which indicates the number of data that the transfer source outputs in accordance with one command, is split into the split burst lengths each indicating the number of data that theSDRAM controller 17 transfers to theSDRAM 20 in response to one command issued for theSDRAM 20. As described above, the preceding command splitcircuit 32 determines the split burst length based on a first data width with which the transfer data PDATA is transmitted to thedata buffer 38 and a second data width with which the transfer data DQ is transferred from thedata buffer 38 to theSDRAM 20. The preceding command splitcircuit 32 stores the split burst lengths in the burst length table 33. - It should be noted here that the burst transfer with respect to the
SDRAM 20 generally starts from a burst boundary such as anaddress 0, anaddress 8, an address 16 or the like in theSDRAM 20. However, when the start address of the burst transfer of the transfer data is different from the burst boundary, the preceding command splitcircuit 32 specifies the data length from the start address to the burst boundary as the first split burst length. In other words, the preceding command splitcircuit 32 determines the first split burst length such that the data from the start address to the burst boundary is transferred in one burst transfer. The data after the burst boundary are split in accordance with the above-mentioned SDRAM burst length. In this manner, the split burst lengths are determined based on not only the SDRAM burst length but also the above-mentioned address PADR (start address). Therefore, the split burst lengths are not necessarily equal to each other. The preceding command splitcircuit 32 splits the command PCMD by referring to the burst length PBL, the address PADR and the SDRAM burst length. - The burst length table 33 receives the split burst lengths from the preceding command split
circuit 32 and stores them.FIG. 5 schematically shows an example of the burst length table 33 according to the present embodiment. Shown inFIG. 5 is a case where the burst length PBL is split into n split burst lengths. In this case, the split burst length group includes the first split burst length, the second split burst length, . . . , the n-th split burst length that are stored in the order of use. When a data transfer of a split burst length is completed, the next split burst length is moved up. Alternatively, the burst length table 33 has a pointer which indicates a split burst length to be used, and the position indicated by the pointer is changed. - The burst
length judgment circuit 35 makes a comparison between the count value WCNT obtained by the data writecounter 37 and each split burst length stored in the burst length table 33. If the count value WCNT becomes equal to or more than the split burst length, the burstlength judgment circuit 35 instructs the bursttiming control circuit 36 to initiate a burst transfer. In other words, when as much data as can be burst transferred to the SDRAM by one command are stored in thedata buffer 38, the burst transfer is initiated. - In response to the instruction to initiate the burst transfer, the burst
timing control circuit 36 controls a timing of the data transfer to theSDRAM 20. More specifically, the bursttiming control circuit 36 controls the data transfer such that the transfer data DQ stored in thedata buffer 38 is burst transferred to theSDRAM 20 by every split burst lengths stored in the burst length table 33. The bursttiming control circuit 36 issues to the SDRAM 20 a command SCMD in accordance with a protocol for the data transfer, specifies a transfer destination address SADR, and instructs thedata buffer 38 to output the data. Here, the bursttiming control circuit 36 can detect completion of the data transfer by referring to a count value RCNT obtained by the data readcounter 33. The SDRAM burst length, namely, the number of data that can be burst transferred at a time is previously set in the mode register of theSDRAM 20. When the burst transfer continues, the bursttiming control circuit 36 issues the command every number of data that can be burst transferred at a time. - The data read
counter 39 makes a count of the number of data output by thedata buffer 38, and outputs the count value RCNT to the bursttiming control circuit 36. Further, the data read counter 39 may output a read address to thedata buffer 38. -
FIG. 6 is a timing chart showing an example of the data writing operation. Referring toFIG. 6 , an operation of theSDRAM controller 17 will be explained. It should be noted that theSDRAM controller 17, thebus 15 and theSDRAM 20 operate in synchronization with a clock CLK. The data width of the data supplied to theSDRAM controller 17 through thebus 15 is equal to the data width of the data transferred from theSDRAM controller 17 to theSDRAM 20. Each of reference numerals t0 to t21 (see (a) inFIG. 6 ) denotes a cycle of the clock CLK and is used for explaining timing. Further, a case is considered where the SDRAM burst length that theSDRAM 20 can receive at a time is set to “4”. - First, a protocol of the data writing to the
SDRAM 20 will be explained briefly. TheSDRAM controller 17 which controls the access to theSDRAM 20 outputs to the SDRAM 20 a RAS (Row Address Strobe) signal, a CAS (Column Address Strobe) signal, a CS (Chip Select) signal, a WES (Write Enable) signal, an address signal and the like. By a combination of these signals, a command for theSDRAM 20 and its parameter are determined. Each of these signals is not shown inFIG. 6 , and only a timing of the command is shown. For example, a command corresponding to CS=“L”, RAS=“L”, CAS=“H”, and WE=“H” is a command: ACT which instructs to initiate the memory operation. In this case, theSDRAM controller 17 outputs a row address and instructs theSDRAM 20 to take in the row address. A command corresponding to CS=“L”, RAS=“H”, CAS=“L”, WE=“L” is a command: WR which instructs to take in a column address and write data. In this case, theSDRAM controller 17 outputs the column address. - Next, a procedure of the data writing to the
SDRAM 20 in accordance with the burst transfer will be explained. TheSDRAM controller 17 outputs a command: ACT indicating the initiation of the access to theSDRAM 20, and at the same time, gives a row address (a part of the address signal) to theSDRAM 20. Next, theSDRAM controller 17 outputs a command: WR indicating the initiation of the data writing operation, and at the same time, gives a column address (a part of the address signal) to theSDRAM 20. After a stand-by time set by a CAS latency, the write data are transferred to theSDRAM 20. The write data are transferred in synchronization with the clock CLK. In a DDR type or the like, another strobe signal may be used in order to transfer at a further high speed. In the present example, the data transfer of a simple type will be described. - The instruction of the address from the
SDRAM controller 17 to theSDRAM 20 is not necessary while the write data is being transferred, which contributes to improvement of the transfer speed. The number of data (the SDRAM burst length) transferred in response to one write command SCMD: WR is set in the mode register of theSDRAM 20 previously. Explanation for procedures of setting the number of data in the mode register is omitted here. - Next, referring to
FIG. 6 , an example of the data write operation based on the burst transfer with respect to theSDRAM 20 by theSDRAM controller 17 will be explained. - A command PCMD: WR, which is an instruction to write the data to the
SDRAM 20, is output to thebus 15 by the CPU 11 or theDMAC 12. Here, the command PCMD: WR is output together with a burst length PBL: 8 and a write destination address (start address) PADR. At the clock rising in the cycle t0, thecommand buffer 31 receives the command PCMD: WR, the burst length PBL: 8 and the write destination address PADR (see (b) and (c) inFIG. 6 ). - The command, the burst length and the address taken in the
command buffer 31 are output to the preceding command splitcircuit 32. The preceding command splitcircuit 32 splits the input command, namely, splits the burst length PBL into appropriate split burst lengths. The preceding command splitcircuit 32 stores the split burst lengths in the burst length table 33, as shown inFIG. 5 . - Considered in the present example is a case where the write destination address (start address) PBL is consistent with a burst boundary. Moreover, the burst length PBL is “8” and the SDRAM burst length is “4”. Therefore, the first split burst length of “4” and the second split burst length of “4” are stored in the burst length table 33. In this case, the transfer data of the burst length of “8” will be divided into two data of the burst length of “4”, and respective of the two data will be separately burst transferred to the
SDRAM 20, as described later. The first split burst length of “4” is first output to the burstlength judgment circuit 35. After the data of the first split burst length is burst transferred to theSDRAM 20, the second split burst length of “4” is output to the burstlength judgment circuit 35. - Meanwhile, the
data buffer 38 takes in the transfer data (write data) supplied from the CPU 11 or theDMAC 12. More specifically, during a period from the cycle t1 to the cycle t8, the data valid signal DVALD indicates that the write data PDATA on thebus 15 is valid (see (e) inFIG. 6 ). Respective of the write data PDATA (D0 to D7) of the burst length PBL (8) are successively transmitted to theSDRAM controller 17 by a burst transmission. During the period from t1 to t8, thedata buffer 38 receives the write data PDATA: D0 to D7 (see (d) inFIG. 6 ). The amount of the data supplied to thedata buffer 38 is equal to a product of the bit length of each write data and the number of transmission times (8). - While the
data buffer 38 receives the write data PDATA: D0 to D7, the data writecounter 37 makes a count of the number of the received write data PDATA by counting the number of risings of the clock CLK during the period from t1 to t8 when the data valid signal DVALD is activated (see (f) inFIG. 6 ). The burstlength judgment circuit 35 compares the count value WCNT output from the data writecounter 37 and the first split burst length stored in the burst length table 33. - In the present example, the first split burst length is “4”. When the count value WCNT obtained by the data write
counter 37 becomes equal to “4”, namely, at the cycle t4, the burstlength judgment circuit 35 instructs the bursttiming control circuit 36 to initiate the data transfer to theSDRAM 20. In addition, the burstlength judgment circuit 35 instructs the burst length table 33 to output the next split burst length, i.e., the second split burst length. Furthermore, the burstlength judgment circuit 35 instructs the data write counter 37 to reset the count value WCNT (see (f) inFIG. 6 ). The data write counter 37 instructed by the bursttiming control circuit 36 resets the count value WCNT. Then, the data writecounter 37 continues counting from the write data PDATA: D4 in the similar way. - In response to the first instruction at the cycle t4 to initiate the data transfer, the burst
timing control circuit 36 outputs to the SDRAM 20 a command SCMD: ACT which instructs theSDRAM 20 to start operation. In the present example, the bursttiming control circuit 36 outputs the command SCMD: ACT such that theSDRAM 20 can receive it at the cycle t6 (see (f) and (h) inFIG. 6 ). According to the present embodiment, as described above, the bursttiming control circuit 36 initiates the burst transfer of the transfer data at the time when the amount of the transfer data stored in thedata buffer 38 becomes equal to that corresponding to the first split burst length. - The burst
timing control circuit 36 stands by until the operation of theSDRAM 20 becomes ready. Then, at the cycle t9 when theSDRAM 20 becomes ready, the bursttiming control circuit 36 outputs a command SCMD: WR instructing the data writing (see (h) inFIG. 6 ). At the same time, the bursttiming control circuit 36 instructs thedata buffer 38 to output the stored write data from the cycle t9. In response to the instruction by the bursttiming control circuit 36, thedata buffer 38 starts outputting of the stored write data DQ: D0 to D7. TheSDRAM 20 receives the command SCMD: WR at the clock rising in the cycle t9. From the clock rising in the next cycle t10, theSDRAM 20 receives the data output from thedata buffer 38 in synchronization with the clock CLK (see (h) and (i) inFIG. 6 ). The data readcounter 39 makes a count of the number of data output from the data buffer 38 (see (g) inFIG. 6 ). - While in the data write
counter 37, the count value WCNT becomes equal to “4” again at the cycle t8. The count value WCNT of “4” is equal to the above-mentioned second split burst length. Therefore, at the cycle t8, the burstlength judgment circuit 35 instructs the bursttiming control circuit 36 to initiate the second data transfer to theSDRAM 20. However, at this timing, the bursttiming control circuit 36 has not yet instructed the foregoing first data transfer (see (f) and (h) inFIG. 6 ). Thus, the second data transfer initiation instruction from the burstlength judgment circuit 35 is put into a hold state. - The burst
timing control circuit 36 outputs the second data transfer initiation instruction immediately before the completion of the first data transfer to theSDRAM 20. Namely, the bursttiming control circuit 36 outputs to theSDRAM 20 another command SCMD: WR instructing the next burst data writing simultaneously with the output of the data DQ: D3, i.e., at the cycle t13 (see (h) and (i) inFIG. 6 ). Furthermore, the count value RCNT by the data readcounter 39 is reset in order to be ready for the next burst data transfer (see (g) inFIG. 6 ). Therefore, the burst transfer to theSDRAM 20 is continued without interruption and thus theSDRAM 20 is able to receive the write data successively. During a period from the cycle t14 to t17, the data DQ: D4 to D7 are transferred from thedata buffer 38 to theSDRAM 20. At the cycle t17, the count value RCNT by the data readcounter 39 becomes “4” again, which means the completion of the burst data transfer corresponding to all of the split burst lengths stored in the burst length table 33. Thus, the burst data transfer is completed at this point of time (cycle t17). - According to the present embodiment, as described above, the data writing operation of the
SDRAM 20 is initiated at the time when the amount of write data taken in thedata buffer 38 satisfies the split burst length, even though all of the write data (D0 to D7) is not yet supplied to thedata buffer 38. Therefore, the time lag between the instruction by the CPU 11 or theDMAC 12 and the initiation of the data writing with respect to theSDRAM 20 is reduced as compared with the conventional technique. In the conventional technique, the burst transfer of the whole transfer data is completed at the cycle t21, as shown inFIG. 3 . On the other hand, in the present example, the burst transfer of the whole transfer data is completed at the cycle t17, as shown inFIG. 6 . In this manner, the time necessary for the burst data transfer can be reduced as a whole. - Moreover, the output of the second command SCMD: WR at the cycle t13 means that all commands necessary for the data transfer of the burst length “8” instructed to the
SDRAM controller 17 are completely output. Therefore, thecommand buffer 31 can receive the next command PCMD. In the present example, thecommand buffer 31 can receive the next command PCMD at the cycle t14, which is earlier than the timing (t18) in the conventional technique. -
FIG. 7 is a timing chart showing another example of the data writing operation of theSDRAM controller 17. In the present example, the write start address is not present at the burst boundary and is different from the burst boundary. For example, the write start address is shifted by 2-words from the burst boundary. Referring toFIG. 7 , an example of the data writing operation based on the burst transfer will be explained. - A command PCMD: WR, which is an instruction to write the data to the
SDRAM 20, is output to thebus 15 by the CPU 11 or theDMAC 12. Here, the command PCMD: WR is output together with a burst length PBL: 8 and a write destination address (start address) PADR. At the clock rising in the cycle t0, thecommand buffer 31 receives the command PCMD: WR, the burst length PBL: 8 and the write destination address PADR (see (b) and (c) inFIG. 7 ). - The command, the burst length and the address taken in the
command buffer 31 are output to the preceding command splitcircuit 32. The preceding command splitcircuit 32 splits the input command, namely, splits the burst length PBL into appropriate split burst lengths. The preceding command splitcircuit 32 stores the split burst lengths in the burst length table 33. In the present example, the write start address is different from the burst boundary. Therefore, the data length (2-words) from the write start address to the burst boundary is set to the first split burst length. In the present example, the first split burst length is set to “2”. - With the first split burst length of “2”, the address reaches the burst boundary. Therefore, the remaining burst length is split in accordance with the SDRAM burst length (“4”) that is set in the mode register of the
SDRAM 20. In the present example, the second split burst length is set to “4”. Here, 2-words are still remaining and thus the third split burst length is set to “2”. Thus, the data transfer is executed over three times. The first split burst length of “2”, the second split burst length of “4” and the third split burst length of “2” are stored in the burst length table 33. The first split burst length of “2” is first output to the burstlength judgment circuit 35. - Meanwhile, during a period from the cycle t1 to the cycle t8, the data valid signal DVALD indicates that the write data PDATA on the
bus 15 is valid. During the period from t1 to t8, thedata buffer 38 receives the write data PDATA: D0 to D7 (see (d) and (e) inFIG. 7 ). The data writecounter 37 makes a count of the number of the received write data PDATA by counting the number of risings of the clock CLK during the period from t1 to t8 when the data valid signal DVALD is activated (see (f) inFIG. 7 ). The burstlength judgment circuit 35 compares the count value WCNT output from the data writecounter 37 and the first split burst length stored in the burst length table 33. - In the present example, the first split burst length is “2”. When the count value WCNT obtained by the data write
counter 37 becomes equal to “2”, namely, at the cycle t2, the burstlength judgment circuit 35 instructs the bursttiming control circuit 36 to initiate the data transfer to theSDRAM 20. In addition, the burstlength judgment circuit 35 instructs the burst length table 33 to output the next split burst length, i.e., the second split burst length. Furthermore, the burstlength judgment circuit 35 instructs the data write counter 37 to reset the count value WCNT (see (f) inFIG. 7 ). The data write counter 37 instructed by the bursttiming control circuit 36 resets the count value WCNT. Then, the data writecounter 37 continues counting from the write data PDATA: D2 in the similar way. - In response to the first instruction at the cycle t2 to initiate the data transfer, the burst
timing control circuit 36 outputs to the SDRAM 20 a command SCMD: ACT which instructs theSDRAM 20 to start operation. In the present example, the bursttiming control circuit 36 outputs the command SCMD: ACT such that theSDRAM 20 can receive it at the cycle t4 (see (f) and (h) inFIG. 7 ). - After that, the burst
timing control circuit 36 stands by until the operation of theSDRAM 20 becomes ready. Then, at the cycle t7 when theSDRAM 20 becomes ready, the bursttiming control circuit 36 outputs a command SCMD: WR instructing the data writing (see (h) inFIG. 7 ). At the same time, the bursttiming control circuit 36 instructs thedata buffer 38 to output the stored write data from the cycle t10 after two dummy data (dm) as much as 2-words from the write start address to the burst boundary are output (see (i) inFIG. 7 ). TheSDRAM 20 receives the command SCMD: WR at the clock rising in the cycle t7. From the clock rising in the next cycle t8, theSDRAM 20 receives the two dummy data (dm) and the data output from thedata buffer 38 in synchronization with the clock CLK (see (h) and (i) inFIG. 7 ). It should be noted that the dummy data (dm) from the write start address to the burst boundary are not actually written into theSDRAM 20. The data from D0 are written into theSDRAM 20. - The data read
counter 39 makes a count of the number of data output from the data buffer 38 (see (g) inFIG. 7 ). When the write data DQ: D0 is output, the count value RCNT becomes “1”. When the data DQ: D1 is output, the count value RCNT becomes “2”. The data readcounter 39 is reset when a command SCMD: WR for theSDRAM 20 is issued. - While in the data write
counter 37, the count value WCNT becomes equal to “4” at the cycle t6. The count value WCNT of “4” is equal to the above-mentioned second split burst length. Therefore, at the cycle t6, the burstlength judgment circuit 35 instructs the bursttiming control circuit 36 to initiate the second data transfer to theSDRAM 20. However, at this timing, the bursttiming control circuit 36 has not yet instructed the foregoing first data transfer (see (f) and (h) inFIG. 7 ). Thus, the second data transfer initiation instruction from the burstlength judgment circuit 35 is put into a hold state. - The burst
timing control circuit 36 outputs the second data transfer initiation instruction immediately before the completion of the first data transfer to theSDRAM 20. Namely, the bursttiming control circuit 36 outputs to theSDRAM 20 another command SCMD: WR instructing the next burst data writing simultaneously with the output of the data DQ: D1, i.e., at the cycle t11 (see (h) and (i) inFIG. 7 ). Furthermore, the count value RCNT by the data readcounter 39 is reset in order to be ready for the next burst data transfer (see (g) inFIG. 7 ). Therefore, the burst transfer to theSDRAM 20 is continued without interruption and thus theSDRAM 20 is able to receive the write data successively. During a period from the cycle t12 to t15, the data DQ: D2 to D5 are transferred from thedata buffer 38 to theSDRAM 20. At the cycle t15, the count value RCNT by the data readcounter 39 becomes “4”. - Similarly, the burst
timing control circuit 36 outputs the third data transfer initiation instruction immediately before the completion of the second data transfer to theSDRAM 20. Namely, the bursttiming control circuit 36 outputs to theSDRAM 20 still another command SCMD: WR simultaneously with the output of the data DQ: D5, i.e., at the cycle t15 (see (h) and (i) inFIG. 7 ). Furthermore, the count value RCNT by the data readcounter 39 is reset in order to be ready for the next burst data transfer (see (g) inFIG. 7 ). Therefore, the burst transfer to theSDRAM 20 is continued without interruption and thus theSDRAM 20 is able to receive the write data successively. - During a period from the cycle t16 to t17, the data DQ: D6 to D7 are transferred from the
data buffer 38 to theSDRAM 20, followed by the dummy data transfer. At the cycle t17, the count value RCNT by the data readcounter 39 becomes “238 which is equal to the third split burst length. Thus, the burst data transfer corresponding to all of the split burst lengths stored in the burst length table 33 is completed. The transfer of the dummy data is executed till the burst boundary and is finished at the cycle t19. As compared with the conventional technique, the time necessary for the burst data transfer can be reduced as a whole according to the present example. A great time reduction can be attained by the circuit according to the present embodiment. - In the present embodiment, it is considered that the data write
counter 37 is reset after the split burst length is counted. As the data to be stored in the burst length table 33, split position of the burst data may be used instead of the split burst length. In this case, the data writecounter 37 executes the counting continuously without being reset. When the number indicating the position of the split burst data is set as the burst length in the burst length table 33, the configuration of the burstlength judgment circuit 35 is simplified. Also, in the foregoing example, the data writecounter 37 is designed to count the number of the data transfer times. Alternatively, the data write counter 37 may be designed to detect the amount of the data transfer. - Explained in the present embodiment is the case where the data width of the bus 15 (the data width of the data PDATA) is equal to the data width of the SDRAM 20 (the data width of the data DQ). However, the two data widths can be different from each other. For example, let us consider a case where that data width on the CPU 11 side is 64 bits (8=23 bytes) and the data width on the
SDRAM 20 side is 32 bits (4=22 bytes). Further, on theSDRAM 20 side, 4-words (32 bits/word) are burst transferred in response to one command SCMD: WR. When the burst length on the CPU 11 side is 8-words (64 bits/word), the transferred bytes are 64 bytes. - On the
SDRAM 20 side, 4-words (=16 bytes) are burst transferred in response to one command SCMD: WR. Therefore, the command SCMD: WR is issued for four times with respect theSDRAM 20, and a total of 16-words (32 bits/word) are burst transferred to theSDRAM 20. - Normally, the data width is designed to be 21 bytes (i=0, 1, . . . ). The SDRAM burst length is also 2j (j=0, 1, . . . ) such as 2, 4 or the like. Since the data transfer speed on the
bus 15 is high, thedata buffer 38 is designed based on the data width of thebus 15. The data width of the data transferred through thebus 15 is 2m bytes. When the number of the data transfers is given by “B”, the amount of the write data supplied to thedata buffer 38 are given by “B×2m bytes”. On the other hand, the data width of the SDRAM 20 (the data DQ) is 2n bytes. In this case, the data DQ is read out from thedata buffer 38 every data width “2n bytes”. When the SDRAM burst length is 2j, theSDRAM 20 receives data of “2n+j bytes” by one burst writing. Therefore, if the write start address in the transfer destination is present on the burst boundary, the number of the write commands SCMD: WR issued with respect to theSDRAM 20 is given by “the burst length×2m/2n+j (the burst length×2m−n−j). - This means that the number of write bytes can be counted if the data write counter 37 of the
data buffer 38 includes a counter for counting the burst length and a m-bit counter. It also means that the number of read bytes can be counter if the data readcounter 39 includes a j-bit counter for counting the SDRAM burst length and an n-bit counter. Therefore, if 2n+j is set to the burst length table 33 and the number of bytes (2m×B) of the stored data is compared, the burstlength judgment circuit 35 can judge whether or not the data transfer to theSDRAM 20 can be initiated. In other words, the data stored in thedata buffer 38 is up to 2m×B bytes, and when the amount of the stored data becomes equal to or more than 2n+j bytes, the data transfer to theSDRAM 20 can be initiated. The number of transfers “B” in this case can be given by “B≧2n+j/2m=2n+j−m”, and the following cases are considered:
n+j>m: (1) - In one-time data transfer through the
bus 15, the burst transfer to theSDRAM 20 is not possible. When the data transfer to thedata buffer 38 through thebus 15 is executed for B=2n+j−m times and the data is store, it is instructed to initiate the burst transfer to theSDRAM 20. For example, in the foregoing embodiment where the data width of thebus 15 and the data width of theSDRAM 20 are identical, the command SCMD: WR with respect to theSDRAM 20 is initiated when the count value WCNT obtained by the data writecounter 37 becomes B=2j. Since j=2 in the foregoing example, it is understood that the initiation takes place every B=4.
n+J≦m: (2) - The data width of the
bus 15 is sufficiently large. The burst transfer to theSDRAM 20 as many as 2m−n−j times is possible for one-time data transfer through thebus 15. - Since the data transfer speed of the
bus 15 is high, thedata buffer 38 is designed based on the data width of thebus 15. Therefore, conversion of the data width is executed when the data read out from thedata buffer 38 is transferred to theSDRAM 20. In a case where the data width of theSDRAM 20 is narrower than the data width of thedata buffer 38, the data readout from thedata buffer 38 are transferred to theSDRAM 20 in plural times. Such an operation can be realized by providing a multiplexer having a data width corresponding to the data width of theSDRAM 20. On the other hand, in a case where the data width of theSDRAM 20 is wider than the data width of thedata buffer 38, a plurality of data readout from thedata buffer 38 are combined and then transferred to theSDRAM 20. Such an operation can be realized by providing a register for holding the read data till the next readout. Furthermore, if the transfer destination address is different from the burst boundary, the dummy data transfer can be realized by providing a counter for counting the offset value of the address with respect to the burst boundary. The timing of reading out the transfer data from thedata buffer 38 is determined by this counter. That is, the counter starts counting from the initiation of the burst transfer to theSDRAM 20, and when the count value reaches the offset value, the data transfer from thedata buffer 38 is initiated. Thus, the data stored in thedata buffer 38 is transferred to theSDRAM 20 after the dummy data transfer. - It is preferable that information indicating the respective data widths is set as necessary in the preceding command split
circuit 32 and the bursttiming control circuit 36. An external terminal may be provided for specifying the information indicating the respective data widths. A register may be provided for storing the information indicating the respective data widths. A register for storing setting conditions of the data widths may be provided so as to allow setting by commands from high-level devices. - In the present embodiment, the
command buffer 31, the preceding command splitcircuit 32, the burst length table 33, the burstlength judgment circuit 35, the bursttiming control circuit 36, the data writecounter 37, thedata buffer 38, and the data read counter 39 function as a “control unit”. The control unit receives the transfer data from a transmission circuit and executes a burst transfer of the transfer data to a reception circuit. The transmission circuit such as the CPU 11 or theDMAC 12 transmits a first data of a first bit length for a first burst times by a burst transmission. The amount of the transfer data from the transmission circuit is equal to a product of the first bit length and the first burst times. The reception circuit receives a second data of a second bit length for a second burst times by a burst reception. When the amount of the first data received by the control unit becomes equal to or more than a product of the second bit length and the second burst times, the control unit transfers the received first data as the second data to the reception circuit, regardless of a number of the first data received by the control unit. - As described above, according to the present embodiment, the burst transfer to the
SDRAM 20 can be initiated at a timing when the data amount that can be burst transferred to theSDRAM 20 is taken in thedata buffer 38. Therefore, the above-described “time-lag” is reduced as compared with the conventional circuit which initiates the burst transfer after all the transfer data are taken in the data buffer. Furthermore, since the data on the CPU 11 side are taken while writing the stored data into theSDRAM 20, the capacity of thedata buffer 38 can be designed to be smaller. - It is apparent that the present invention is not limited to the above embodiment and may be modified and changed without departing from the scope and spirit of the invention.
Claims (14)
1. A memory controller comprising:
a control unit configured to receive a transfer data from a transmission circuit and execute a burst transfer of said transfer data to a reception circuit, wherein said transmission circuit transmits a first data of a first bit length for a first burst times by a burst transmission, an amount of said transfer data from said transmission circuit is equal to a product of said first bit length and said first burst times, and said reception circuit receives a second data of a second bit length for a second burst times by a burst reception; and
a data buffer configured to store said transfer data,
wherein when an amount of said first data received by said control unit becomes equal to or more than a product of said second bit length and said second burst times, said control unit transfers said received first data as said second data to said reception circuit, regardless of a number of said first data received by said control unit.
2. The memory controller according to claim 1 , further comprising a register configured to store information indicating said first bit length and said second bit length.
3. The memory controller according to claim 1 , further comprising an external terminal through which said first bit length and said second bit length are specified.
4. A memory controller comprising:
a data buffer configured to store a transfer data of a first burst length, wherein said first burst length is specified for every burst transfer;
a command split circuit configured to split a command indicating a burst transfer with said first burst length into commands each indicating a burst transfer with a split burst length, in accordance with a predetermined second burst length supported by a memory and burst transferred in response to one command issuance;
a burst length table configured to store said split burst length; and
a burst timing control circuit configured to control a timing of a burst transfer of said transfer data such that said transfer data stored in said data buffer is burst transferred to said memory by said split burst length stored in said burst length table.
5. The memory controller according to claim 4 ,
wherein when an amount of said transfer data stored in said data buffer becomes equal to or more than that corresponding to said split burst length, said burst timing control circuit initiates said burst transfer of said transfer data.
6. The memory controller according to claim 4 ,
wherein when a start address of a destination of said transfer data is different from a burst boundary, said command split circuit specifies a data length from said start address to said burst boundary as said split burst length.
7. The memory controller according to claim 4 ,
wherein said command split circuit determines said split burst length based on a first data width with which said transfer data is transmitted to said data buffer and a second data width with which said transfer data is transferred from said data buffer to said memory.
8. The memory controller according to claim 7 , further comprising a register configured to store information indicating said first data width and said second data width.
9. The memory controller according to claim 7 , further comprising an external terminal through which said first data width and said second data width are specified.
10. A memory control method comprising:
(A) storing a transfer data of a first burst length in a data buffer, wherein said first burst length is specified for every burst transfer;
(B) splitting a command indicating a burst transfer with said first burst length into commands each indicating a burst transfer with a split burst length, in accordance with a predetermined second burst length supported by a memory and burst transferred in response to one command issuance;
(C) storing said split burst length in a burst length table; and
(D) controlling a timing of a burst transfer of said transfer data such that said transfer data stored in said data buffer is burst transferred to said memory by said split burst length stored in said burst length table.
11. The memory control method according to claim 10 ,
wherein when an amount of said transfer data stored in said data buffer during said (A) step becomes equal to or more than that corresponding to said split burst length, said burst transfer of said transfer data is initiated in accordance with said (D) step.
12. The memory control method according to claim 10 ,
wherein in said (B) step, when a start address of a destination of said transfer data is different from a burst boundary, a data length from said start address to said burst boundary is specified as said split burst length.
13. The memory control method according to claim 10 ,
wherein in said (B) step, said split burst length is determined based on a first data width with which said transfer data is transmitted to said data buffer and a second data width with which said transfer data is transferred from said data buffer to said memory.
14. The memory control method according to claim 13 , further comprising: (E) externally specifying said first data width and said second data width.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/614,845 US7962669B2 (en) | 2005-12-08 | 2009-11-09 | Memory controller and memory control method |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005354512A JP4936506B2 (en) | 2005-12-08 | 2005-12-08 | Memory control circuit and memory control method |
JP2005-354512 | 2005-12-08 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/614,845 Division US7962669B2 (en) | 2005-12-08 | 2009-11-09 | Memory controller and memory control method |
Publications (1)
Publication Number | Publication Date |
---|---|
US20070162654A1 true US20070162654A1 (en) | 2007-07-12 |
Family
ID=38234055
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/634,120 Abandoned US20070162654A1 (en) | 2005-12-08 | 2006-12-06 | Memory controller and memory control method |
US12/614,845 Active US7962669B2 (en) | 2005-12-08 | 2009-11-09 | Memory controller and memory control method |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/614,845 Active US7962669B2 (en) | 2005-12-08 | 2009-11-09 | Memory controller and memory control method |
Country Status (2)
Country | Link |
---|---|
US (2) | US20070162654A1 (en) |
JP (1) | JP4936506B2 (en) |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080244132A1 (en) * | 2007-03-30 | 2008-10-02 | Via Technologies, Inc. | Data transmission methods |
US20090063731A1 (en) * | 2007-09-05 | 2009-03-05 | Gower Kevin C | Method for Supporting Partial Cache Line Read and Write Operations to a Memory Module to Reduce Read and Write Data Traffic on a Memory Channel |
US20090063730A1 (en) * | 2007-08-31 | 2009-03-05 | Gower Kevin C | System for Supporting Partial Cache Line Write Operations to a Memory Module to Reduce Write Data Traffic on a Memory Channel |
US20090063761A1 (en) * | 2007-08-31 | 2009-03-05 | Gower Kevin C | Buffered Memory Module Supporting Two Independent Memory Channels |
US20090063787A1 (en) * | 2007-08-31 | 2009-03-05 | Gower Kevin C | Buffered Memory Module with Multiple Memory Device Data Interface Ports Supporting Double the Memory Capacity |
US20090063729A1 (en) * | 2007-08-31 | 2009-03-05 | Gower Kevin C | System for Supporting Partial Cache Line Read Operations to a Memory Module to Reduce Read Data Traffic on a Memory Channel |
US20090063785A1 (en) * | 2007-08-31 | 2009-03-05 | Gower Kevin C | Buffered Memory Module Supporting Double the Memory Device Data Width in the Same Physical Space as a Conventional Memory Module |
US20090063922A1 (en) * | 2007-08-31 | 2009-03-05 | Gower Kevin C | System for Performing Error Correction Operations in a Memory Hub Device of a Memory Module |
US20090063784A1 (en) * | 2007-08-31 | 2009-03-05 | Gower Kevin C | System for Enhancing the Memory Bandwidth Available Through a Memory Module |
US20090193315A1 (en) * | 2008-01-24 | 2009-07-30 | Gower Kevin C | System for a Combined Error Correction Code and Cyclic Redundancy Check Code for a Memory Channel |
US20090193290A1 (en) * | 2008-01-24 | 2009-07-30 | Arimilli Ravi K | System and Method to Use Cache that is Embedded in a Memory Hub to Replace Failed Memory Cells in a Memory Subsystem |
US20090190429A1 (en) * | 2008-01-24 | 2009-07-30 | Brittain Mark A | System to Provide Memory System Power Reduction Without Reducing Overall Memory System Performance |
US20090190427A1 (en) * | 2008-01-24 | 2009-07-30 | Brittain Mark A | System to Enable a Memory Hub Device to Manage Thermal Conditions at a Memory Device Level Transparent to a Memory Controller |
US20090193201A1 (en) * | 2008-01-24 | 2009-07-30 | Brittain Mark A | System to Increase the Overall Bandwidth of a Memory Channel By Allowing the Memory Channel to Operate at a Frequency Independent from a Memory Device Frequency |
US20090193200A1 (en) * | 2008-01-24 | 2009-07-30 | Brittain Mark A | System to Support a Full Asynchronous Interface within a Memory Hub Device |
US20090193203A1 (en) * | 2008-01-24 | 2009-07-30 | Brittain Mark A | System to Reduce Latency by Running a Memory Channel Frequency Fully Asynchronous from a Memory Device Frequency |
US7730244B1 (en) * | 2008-03-27 | 2010-06-01 | Xilinx, Inc. | Translation of commands in an interconnection of an embedded processor block core in an integrated circuit |
US20110004709A1 (en) * | 2007-09-05 | 2011-01-06 | Gower Kevin C | Method for Enhancing the Memory Bandwidth Available Through a Memory Module |
US8086936B2 (en) | 2007-08-31 | 2011-12-27 | International Business Machines Corporation | Performing error correction at a memory device level that is transparent to a memory channel |
US20140059359A1 (en) * | 2012-08-21 | 2014-02-27 | Micron Technology, Inc. | Power management |
CN109508305A (en) * | 2017-09-15 | 2019-03-22 | 三星电子株式会社 | Memory device and storage system including memory device |
US10268629B1 (en) * | 2018-03-23 | 2019-04-23 | Hongfujin Precision Electronics (Tianjin) Co., Ltd. | I2C data communication system and method |
WO2023115319A1 (en) * | 2021-12-21 | 2023-06-29 | 华为技术有限公司 | Data storage method, storage device, and equipment |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5365336B2 (en) * | 2009-05-01 | 2013-12-11 | ソニー株式会社 | Memory control device and memory control method |
JP5446464B2 (en) * | 2009-05-26 | 2014-03-19 | 富士通セミコンダクター株式会社 | Information processing system and data transfer method |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020194441A1 (en) * | 1998-04-29 | 2002-12-19 | Gerard Chauvel | Traffic controller using priority and burst control for reducing access latency |
US20060080477A1 (en) * | 2004-10-11 | 2006-04-13 | Franck Seigneret | Multi-channel DMA with shared FIFO |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0877097A (en) * | 1994-09-08 | 1996-03-22 | Ricoh Co Ltd | Memory system |
JPH11345165A (en) * | 1997-12-05 | 1999-12-14 | Texas Instr Inc <Ti> | Traffic controller using priority and burst control for reducing access times |
JP4108237B2 (en) * | 1999-11-04 | 2008-06-25 | 株式会社リコー | Memory control device |
JP4651206B2 (en) * | 2001-02-21 | 2011-03-16 | 富士通セミコンダクター株式会社 | Semiconductor memory device and information processing apparatus |
JP2002328837A (en) * | 2001-04-27 | 2002-11-15 | Fujitsu Ltd | Memory controller |
JP4606725B2 (en) | 2003-11-10 | 2011-01-05 | 株式会社デジタル | High speed memory access controller |
JP4631278B2 (en) * | 2004-01-08 | 2011-02-16 | セイコーエプソン株式会社 | Printing apparatus and printing method |
-
2005
- 2005-12-08 JP JP2005354512A patent/JP4936506B2/en active Active
-
2006
- 2006-12-06 US US11/634,120 patent/US20070162654A1/en not_active Abandoned
-
2009
- 2009-11-09 US US12/614,845 patent/US7962669B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020194441A1 (en) * | 1998-04-29 | 2002-12-19 | Gerard Chauvel | Traffic controller using priority and burst control for reducing access latency |
US20060080477A1 (en) * | 2004-10-11 | 2006-04-13 | Franck Seigneret | Multi-channel DMA with shared FIFO |
Cited By (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7743179B2 (en) * | 2007-03-30 | 2010-06-22 | Via Technologies, Inc. | Data transmission methods |
US20080244132A1 (en) * | 2007-03-30 | 2008-10-02 | Via Technologies, Inc. | Data transmission methods |
US8086936B2 (en) | 2007-08-31 | 2011-12-27 | International Business Machines Corporation | Performing error correction at a memory device level that is transparent to a memory channel |
US8082482B2 (en) | 2007-08-31 | 2011-12-20 | International Business Machines Corporation | System for performing error correction operations in a memory hub device of a memory module |
US20090063787A1 (en) * | 2007-08-31 | 2009-03-05 | Gower Kevin C | Buffered Memory Module with Multiple Memory Device Data Interface Ports Supporting Double the Memory Capacity |
US20090063729A1 (en) * | 2007-08-31 | 2009-03-05 | Gower Kevin C | System for Supporting Partial Cache Line Read Operations to a Memory Module to Reduce Read Data Traffic on a Memory Channel |
US20090063785A1 (en) * | 2007-08-31 | 2009-03-05 | Gower Kevin C | Buffered Memory Module Supporting Double the Memory Device Data Width in the Same Physical Space as a Conventional Memory Module |
US20090063922A1 (en) * | 2007-08-31 | 2009-03-05 | Gower Kevin C | System for Performing Error Correction Operations in a Memory Hub Device of a Memory Module |
US20090063784A1 (en) * | 2007-08-31 | 2009-03-05 | Gower Kevin C | System for Enhancing the Memory Bandwidth Available Through a Memory Module |
US20090063730A1 (en) * | 2007-08-31 | 2009-03-05 | Gower Kevin C | System for Supporting Partial Cache Line Write Operations to a Memory Module to Reduce Write Data Traffic on a Memory Channel |
US7818497B2 (en) | 2007-08-31 | 2010-10-19 | International Business Machines Corporation | Buffered memory module supporting two independent memory channels |
US20090063761A1 (en) * | 2007-08-31 | 2009-03-05 | Gower Kevin C | Buffered Memory Module Supporting Two Independent Memory Channels |
US7840748B2 (en) | 2007-08-31 | 2010-11-23 | International Business Machines Corporation | Buffered memory module with multiple memory device data interface ports supporting double the memory capacity |
US7899983B2 (en) | 2007-08-31 | 2011-03-01 | International Business Machines Corporation | Buffered memory module supporting double the memory device data width in the same physical space as a conventional memory module |
US7584308B2 (en) * | 2007-08-31 | 2009-09-01 | International Business Machines Corporation | System for supporting partial cache line write operations to a memory module to reduce write data traffic on a memory channel |
US7865674B2 (en) | 2007-08-31 | 2011-01-04 | International Business Machines Corporation | System for enhancing the memory bandwidth available through a memory module |
US7861014B2 (en) | 2007-08-31 | 2010-12-28 | International Business Machines Corporation | System for supporting partial cache line read operations to a memory module to reduce read data traffic on a memory channel |
US20110004709A1 (en) * | 2007-09-05 | 2011-01-06 | Gower Kevin C | Method for Enhancing the Memory Bandwidth Available Through a Memory Module |
US8019919B2 (en) | 2007-09-05 | 2011-09-13 | International Business Machines Corporation | Method for enhancing the memory bandwidth available through a memory module |
US7558887B2 (en) | 2007-09-05 | 2009-07-07 | International Business Machines Corporation | Method for supporting partial cache line read and write operations to a memory module to reduce read and write data traffic on a memory channel |
US20090063731A1 (en) * | 2007-09-05 | 2009-03-05 | Gower Kevin C | Method for Supporting Partial Cache Line Read and Write Operations to a Memory Module to Reduce Read and Write Data Traffic on a Memory Channel |
US7770077B2 (en) | 2008-01-24 | 2010-08-03 | International Business Machines Corporation | Using cache that is embedded in a memory hub to replace failed memory cells in a memory subsystem |
US7930469B2 (en) | 2008-01-24 | 2011-04-19 | International Business Machines Corporation | System to provide memory system power reduction without reducing overall memory system performance |
US20090193203A1 (en) * | 2008-01-24 | 2009-07-30 | Brittain Mark A | System to Reduce Latency by Running a Memory Channel Frequency Fully Asynchronous from a Memory Device Frequency |
US20090193200A1 (en) * | 2008-01-24 | 2009-07-30 | Brittain Mark A | System to Support a Full Asynchronous Interface within a Memory Hub Device |
US20090193201A1 (en) * | 2008-01-24 | 2009-07-30 | Brittain Mark A | System to Increase the Overall Bandwidth of a Memory Channel By Allowing the Memory Channel to Operate at a Frequency Independent from a Memory Device Frequency |
US20090190427A1 (en) * | 2008-01-24 | 2009-07-30 | Brittain Mark A | System to Enable a Memory Hub Device to Manage Thermal Conditions at a Memory Device Level Transparent to a Memory Controller |
US7925824B2 (en) | 2008-01-24 | 2011-04-12 | International Business Machines Corporation | System to reduce latency by running a memory channel frequency fully asynchronous from a memory device frequency |
US7925826B2 (en) | 2008-01-24 | 2011-04-12 | International Business Machines Corporation | System to increase the overall bandwidth of a memory channel by allowing the memory channel to operate at a frequency independent from a memory device frequency |
US7925825B2 (en) | 2008-01-24 | 2011-04-12 | International Business Machines Corporation | System to support a full asynchronous interface within a memory hub device |
US20090193315A1 (en) * | 2008-01-24 | 2009-07-30 | Gower Kevin C | System for a Combined Error Correction Code and Cyclic Redundancy Check Code for a Memory Channel |
US7930470B2 (en) | 2008-01-24 | 2011-04-19 | International Business Machines Corporation | System to enable a memory hub device to manage thermal conditions at a memory device level transparent to a memory controller |
US20090190429A1 (en) * | 2008-01-24 | 2009-07-30 | Brittain Mark A | System to Provide Memory System Power Reduction Without Reducing Overall Memory System Performance |
US20090193290A1 (en) * | 2008-01-24 | 2009-07-30 | Arimilli Ravi K | System and Method to Use Cache that is Embedded in a Memory Hub to Replace Failed Memory Cells in a Memory Subsystem |
US7730244B1 (en) * | 2008-03-27 | 2010-06-01 | Xilinx, Inc. | Translation of commands in an interconnection of an embedded processor block core in an integrated circuit |
US20140059359A1 (en) * | 2012-08-21 | 2014-02-27 | Micron Technology, Inc. | Power management |
US9405355B2 (en) * | 2012-08-21 | 2016-08-02 | Micron Technology, Inc. | Memory operation power management by data transfer time adjustment |
US10146292B2 (en) | 2012-08-21 | 2018-12-04 | Micron Technology, Inc. | Power management |
CN109508305A (en) * | 2017-09-15 | 2019-03-22 | 三星电子株式会社 | Memory device and storage system including memory device |
US10268629B1 (en) * | 2018-03-23 | 2019-04-23 | Hongfujin Precision Electronics (Tianjin) Co., Ltd. | I2C data communication system and method |
WO2023115319A1 (en) * | 2021-12-21 | 2023-06-29 | 华为技术有限公司 | Data storage method, storage device, and equipment |
Also Published As
Publication number | Publication date |
---|---|
US20100057952A1 (en) | 2010-03-04 |
JP4936506B2 (en) | 2012-05-23 |
JP2007157029A (en) | 2007-06-21 |
US7962669B2 (en) | 2011-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7962669B2 (en) | Memory controller and memory control method | |
KR100633828B1 (en) | Memory system with burst length shorter than prefetch length | |
US6795906B2 (en) | Memory controller, interface device and method using a mode selection signal to support different types of memories | |
JP4077874B2 (en) | Dynamic random access memory system | |
KR100295046B1 (en) | Semiconductor memory device in which a synchronous memory device in merged with a logic device | |
WO2002073619A9 (en) | System latency levelization for read data | |
JP4998519B2 (en) | Asynchronous interface circuit and asynchronous data transfer method | |
CN109313918B (en) | Memory component with input/output data rate alignment | |
JP2006127653A (en) | Memory element | |
US20070070788A1 (en) | Apparatus and method for dynamically controlling data transfer in memory device | |
US6295620B1 (en) | Memory test facilitation circuit using stored test data repeatedly | |
US20170062026A1 (en) | Semiconductor memory and memory system | |
US8180990B2 (en) | Integrated circuit including a plurality of master circuits transmitting access requests to an external device and integrated circuit system including first and second interated circuits each including a plurality of master circuits transmitting access requests | |
KR100438736B1 (en) | Memory control apparatus of performing data writing on address line | |
US7103707B2 (en) | Access control unit and method for use with synchronous dynamic random access memory device | |
US7230858B2 (en) | Dual frequency first-in-first-out structure | |
JP2007018161A (en) | Memory controller | |
JP4940894B2 (en) | Synchronous memory circuit | |
JP4646932B2 (en) | Memory element | |
WO2024050265A1 (en) | Memory device with extended write data window | |
EP1067555B1 (en) | Memory controller and an information processing apparatus having such a memory controller | |
US20070073961A1 (en) | Memory controller | |
JP3563340B2 (en) | Memory controller | |
JP4529474B2 (en) | Memory device provided with SDRAM | |
JP2001092715A (en) | Data storage device and data transferring method used for the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: NEC ELECTRONICS CORPORATION, JAPAN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MIWA, HIDEYUKI;REEL/FRAME:018681/0281 Effective date: 20061124 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |
|
AS | Assignment |
Owner name: RENESAS ELECTRONICS CORPORATION, JAPAN Free format text: CHANGE OF NAME;ASSIGNOR:NEC ELECTRONICS CORPORATION;REEL/FRAME:025315/0201 Effective date: 20100401 |