This application claims priority under 35 U.S.C. §119 from Korean Patent Application No. 10-2012-0006615, filed on Jan. 20, 2012, the disclosure of which is hereby incorporated herein by reference in its entirety.
This invention relates to methods for operating a memory controllers and systems including the same, and more particularly, to methods for preventing a data bottleneck phenomenon in memory controllers and systems including the same.
A semiconductor memory device is mostly used as a memory medium of a main memory device. The semiconductor memory device has two kinds, a read only memory (ROM) and a random access memory (RAM). The ROM is a memory device which is only able to read, and recorded data are not erased even though a power supply is stopped. The ROM has various kinds such as a mask ROM, a programmable ROM (PROM), and an erasable programmable ROM (EPROM). Data recorded in the RAM may be changed by a user and the RAM may store a program or data. When a power supply is stopped, data recorded in the RAM are all erased. RAM has two kinds, a static RAM (SRAM) and a dynamic RAM(DRAM). The SRAM retains recorded data while a power is supplied, and the DRAM retains data only when the data are refreshed periodically. DRAM is generally used as a main memory device. Recently, as operations for performing several functions are processed in a system, demands for bandwidth of the system are growing. According to such a demand, the DRAM is used as a multi-channel and an interleaving method is used to utilize effectively a multi-channel DRAM system. The interleaving method is a method, by designating a successive address to a plurality of memories (e.g., a plurality of DRAMs) having the plurality of DRAMs recognized logically as a region. The interleaving method may increase bandwidth even without speeding up a processing speed of a memory.
An embodiment of the present invention is directed to an operation method of a memory controller for controlling a plurality of memories, including determining whether to read access each of at least two memories among the plurality of memories based on an in-order read request and generating a first indication signal according to a determination result, reading read-requested data from each of a plurality of read accessed memories in response to the in-order read request, and transmitting each read data and the first indication signal to a system bus.
According to an example embodiment, the memory controller may control the plurality of memories in an interleaving mode. According to an example embodiment, generating a second indication signal indicating an order of the read-requested data based on the in-order read request is further included, and the transmitting may transmit the each read data, the first indication signal and the second indication signal to the system bus.
According to an example embodiment, generating a third indication signal indicating whether reordering of the each read data is necessary based on the first indication signal and the second indication signal is further included, and the transmitting may transmit the each read data and the third indication signal to the system bus. According to an example embodiment, each of the plurality of memories may be a dynamic random access memory.
An example embodiment of the present inventive concepts is directed to an operation method of a system, which includes a memory controller for controlling a plurality of memories and a plurality of master IPs, including determining whether to read access each of at least two memories among the plurality of memories based on an in-order read request and generating a first indication signal according to a determination result, reading read requested data from each of a plurality of read accessed memories in response to the in-order read request, generating a second indication signal including information for an order of the read requested data based on the in-order read request, and determining whether reordering of the each read data is necessary based on the first indication signal and the second indication signal and reordering the each read data according to a determination result. The reordering may be performed in at least one of the plurality of master IPs.
According to an example embodiment, the memory controller may control the plurality of memories in an interleaving mode. According to an example embodiment, the generating the second indication signal may be performed in at least one of the plurality of master IPs. According to an example embodiment, the reordering may perform reordering by using a first-in first-out (FIFO) memory buffer. According to an example embodiment, each of the plurality of memories may be a dynamic random access memory.
The above and other features and advantages of the inventive subject matter will become more apparent by describing in detail exemplary embodiments thereof with reference to the attached drawings in which:
The inventive subject matter now will be described more fully hereinafter with reference to the accompanying drawings, in which embodiments of the invention are shown. This invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. In the drawings, the size and relative sizes of layers and regions may be exaggerated for clarity. Like numbers refer to like elements throughout.
It will be understood that when an element is referred to as being “connected” or “coupled” to another element, it can be directly connected or coupled to the other element or intervening elements may be present. In contrast, when an element is referred to as being “directly connected” or “directly coupled” to another element, there are no intervening elements present. As used herein, the term “and/or” includes any and all combinations of one or more of the associated listed items and may be abbreviated as “/”.
It will be understood that, although the terms first, second, etc. may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. For example, a first signal could be termed a second signal, and, similarly, a second signal could be termed a first signal without departing from the teachings of the disclosure.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” or “includes” and/or “including” when used in this specification, specify the presence of stated features, regions, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, regions, integers, steps, operations, elements, components, and/or groups thereof.
Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. It will be further understood that terms, such as those defined in commonly used dictionaries, should be interpreted as having a meaning that is consistent with their meaning in the context of the relevant art and/or the present application, and will not be interpreted in an idealized or overly formal sense unless expressly so defined herein.
‘Module’ of the present inventive concepts may mean a functional or a structural combination of hardware for performing an method according to an example embodiment of the present inventive concepts or software which may drive the hardware. Accordingly, the module may mean a logical unit or set of a program code and hardware resource which may perform the program code.
A desirable example embodiment of the present inventive concepts is explained referring to attached drawings to explain the present inventive concepts in detail.
According to an example embodiment, each of the plurality of master IPs 20-1 to 20-4 may generate an in-order read request for reading data stored in each of the plurality of memories 40-1 and 40-2 according to an order. The in-order read request may include information regarding a read command, an address, a size of data to read and/or an order of data to read.
The plurality of master IPs 20-1 to 20-4 and a memory controller 30 may communicate with each other through a system bus 25. The memory controller 30 may read data stored in each of the plurality of memories 40-1 and 40-2 based on a read request (e.g., an in-order read request) transmitted from each of the plurality of master IPs 20-1 to 20-4. According to an example embodiment, the memory controller 30 may control the plurality of memories 40-1 and 40-2 in an interleaving mode. Each of the plurality of memories 40-1 and 40-2 may store data which are necessary for each operation of the plurality of master IPs 20-1 to 20-4. According to an example embodiment, each of the plurality of memories 40-1 and 40-2 may be embodied in a volatile memory such as a dynamic random access memory (DRAM), a static random access memory (SRAM), a thyristor RAM (TRAM), a zero capacitor RAM (Z-RAM) or a twin transistor RAM (TTRAM). According to another example embodiment, each of the plurality of memories 40-1 and 40-2 may be embodied in a non-volatile memory such as an electrically erasable programmable read-only memory (EEPROM), a flash memory, a magnetic RAM (MRAM), a spin-transfer torque MRAM, a conductive bridging RAM (CBRAM), a ferroelectric RAM (FeRAM), a phase change RAM (PRAM), a resistive RAM (RRAM), a nanotube RRAM, a polymer RAM (PoRAM), a nano floating gate memory (NFGM), a holographic memory, a molecular electronics memory device or an insulator resistance change memory.
According to an example embodiment, the transaction queue 32 may determine whether to access more than two memories based on an in-order read request received from each of the plurality of master IPs 20-1 to 20-4 and generate a first indication signal according to a determination result. According to an example embodiment, the transaction queue 32 may generate a second indication signal indicating an order of data which are read-requested based on an in-order read request received from each of the plurality of master IPs 20-1 to 20-4. According to an example embodiment, the transaction queue 32 may transmit the first indication signal and/or the second indication signal to a read data queue 38.
The first sub memory controller 34 may access (e.g., read access) a first memory 40-1 according to a control of the transaction queue 32. In this case, the first sub memory controller 34 may transmit data read from the first memory 40-1 to the read data queue 38. The second sub memory controller 36 may access (e.g., read access) a second memory 40-2 according to a control of the transaction queue 32. In this case, the second sub memory controller 36 may transmit data read from the second memory 40-2 to the read data queue 38. The read data queue 38 may receive and buffer data, which are read from each of the plurality of memories 40-1 and 40-2, from the first sub memory controller 34 and/or the second sub memory controller 36, and output buffered data to the system bus 25.
According to an example embodiment, the read data queue 38 may output data read from each of the plurality of memories 40-1 and 40-2 and a first indication signal and/or a second indication signal transmitted from the transaction queue 32 to the system bus 25. According to an example embodiment, the read data queue 38 may generate a third indication signal indicating whether reordering of data which are read from each of the plurality of memories 40-1 is necessary based on the first indication signal and the second indication signal which are transmitted from the transaction queue 32. In this case, the read data queue 38 may output data, which are read from each of the plurality of memories 40-1 and 40-2, and the third indication signal to the system bus 25.
According to an example embodiment, the indication signal generating module 50 may generate additionally a second indication signal indicating an order of data read requested based on a read request (e.g., an in-order read request). According to an example embodiment, the indication signal generating module 50 may transmit a read request (e.g., an in-order read request) and the first indication signal and/or the second indication signal to the transaction internal queue 52.
The transaction internal queue 52 may transmit a first indication signal and/or a second indication signal transmitted from the indication signal generating module 50 to the read data queue 38. The transaction internal queue 52 may determine which memory to access based on a read request (e.g., an in-order read request) transmitted from the indication signal generating module 50, and get the first sub memory controller 34 and/or the second sub memory controller 36 to access each of the plurality of memories 40-1 and 40-2 according to a determination result. For convenience of explanation, it is illustrated that the transaction internal queue 52 receives a read request (e.g. ,an in-order read request) from the indication signal generation module 50; however, the transaction internal queue 52 may receive a read request, e.g., an in-order read request, from the system bus 25 directly.
According to an example embodiment, the master IP internal queue 62 may receive the second indication signal from the indication signal generating module 50′, buffer a received second indication signal and transmit a buffered second indication signal to a reordering module 64. The reordering module 64 may receive a first indication signal and data, which are read from each of the plurality of memories 40-1 and 40-2, from the system bus 25 and receive a second indication signal from the master IP internal queue 62. In this case, the reordering module 64 may determine whether reordering of data read from each of the memories 40-1 and 40-2 is necessary based on the first indication signal and the second indication signal, and perform a reordering operation according to a determination result.
According to an example embodiment, the reordering operation may be performed by using data first in first out (FIFO). According to an example embodiment, the reordering module 64 may receive the first indication signal, the second indication signal and data, which are read from each of the plurality of memories 40-1 and 40-2, from the system bus 25. In this case, the master IP 20-1 may not include the indication signal generating module 50′ and the master IP internal queue 62. According to another example embodiment, the reordering module 64 may receive a third indication signal and data, which are read from each of the plurality of memories 40-1 and 40-2, from the system bus 25. In this case, the master IP 20-1 may not include the indication signal generating module 50′ and the master IP internal queue 62. Additionally, the reordering module 64 may determine whether to perform a reordering operation according to the third indication signal.
Referring to
The memory controller 30 does not perform reordering of data A to F and data 1 to 3 in the method for processing an in-order read request according to an example embodiment of the present inventive concepts. For example, the memory controller 30 may not store data D to F and data 1 to 3 in the read data queue 38 until data A to C are read. In this case, the data D to F may be transmitted first to a master IP 20-1 through the system bus 25 along with a first indication signal and/or a second indication signal generated in the transaction queue 32, and the data A to C read later may be transmitted to the master IP 20-1 through the system bus 25.
The data 1 to 3 along with a first indication signal and/or a second indication signal may be transmitted to a master IP 20-2 through the system bus 25. According to an example embodiment, the data D to F may be first transmitted to the master IP 20-1 through the system bus 25, and a first indication signal and/or a second indication signal generated in the transaction queue 32 may be transmitted to the master IP 20-1 through the system bus 25 along with data A to C read later. According to another example embodiment, the data D to F may be transmitted to the master IP 20-1 through the system bus 25 along with a first indication signal and/or a second indication signal generated in the transaction queue 32, and the data A to C read later may be transmitted to the master IP 20-1 along with the first indication signal and/or the second indication signal through the system bus 25.
The reordering module 64 included in a master IP 20-1 may perform a reordering operation of each read data when reordering is necessary according to a determination result (S46). The reordering module 64 included in the master IP 20-1 may bypass each read data to a processor 60 without performing a reordering operation of each read data when reordering is unnecessary according to the determination result (S48).
According to an example embodiment, a second indication signal may be generated in the indication signal generating module 50′ included in a master IP (e.g., 20-1). According to an example embodiment, the master IP (e.g., 20-1) may receive a third indication signal, which indicates whether reordering of read data is necessary, and each read data from the memory controller 30, and the reordering module 64 may perform a reordering operation according to the third indication signal. For example, when a logic level of the third indication signal is high, the reordering module 64 performs a reordering operation, and the reordering module 64 may not perform the reordering operation when a logic level of the third indication signal is low. According to an example embodiment, the reordering operation may be performed by using a first-in first-out (FIFO) memory device.
For convenience of explanation, it is illustrated that the plurality of master IPs 20-1 to 20-4 and the memory controller 30 are mounted together on the interposer 130; however, each of the plurality of master IPs 20-1 to 20-4 and the memory controller 30 may be mounted separately on the interposer 130 according to an example embodiment. For convenience of explanation, it is illustrated that four master IPs 20-1 to 20-4 are mounted on the interposer 130, respectively; however, the number of master IPs may be changed. Each of the plurality of master IPs 20-1 to 20-4 and the memory controller 30 may be connected to the interposer 130 through the plurality of micro bumps 141.
According to an example embodiment, each of the plurality of master IPs 20-1 to 20-4 may be a central processing unit (CPU) performing commands of a program. According to an example embodiment, each of the plurality of master IPs 20-1 to 20-4 may be a graphic processing unit (GPU) accelerating image data for outputting a display(not shown). Each of the first die 150 and the second die 160 may be connected to the interposer 130 through each of the first micro bumps 151 and the second micro bumps 161. The second die 160 may be connected between the package substrate 120 and the interposer 130. The first die 150 and the second die 160 may be embodied in-line. Each of the first die 150 and the second die 160 may be also called a chip or an integrated circuit (IC). According to an example embodiment, each of the first die 150 and the second die 160 may be the first memory 40-1 or the second memory 40-2. Each of the plurality of master IPs 20-1 to 20-4 may perform other commands, e.g., an arithmetic command, by reading data output from the first die 150 or the second die 160. According to an example embodiment, a die package 100 may not include the plurality of master IPs 20-1 to 20-4, but include only the memory controller 30.
According to an example embodiment, each of the first die 150 and the second die 160 may be a volatile memory device such as a dynamic random access memory (DRAM), a static random access memory (SRAM), a thyristor RAM (TRAM), a zero capacitor RAM (Z-RAM) or a Twin Transistor RAM (TTRAM). According to another example embodiment, each of the first die 150 and the second die 160 may be a non-volatile memory device such as an electrically erasable programmable read-only memory (EEPROM), a flash memory, a magnetic RAM (MRAM), a spin-transfer torque MRAM, a conductive bridging RAM (CBRAM), a ferroelectric RAM (FeRAM), a phase change RAM (PRAM), a resistive RAM (RRAM), a nanotube RRAM, a polymer RAM (PoRAM), a nano floating gate memory (NFGM), a holographic memory, a molecular electronics memory device or an insulator resistance change memory.
Methods according to an example embodiment of the present inventive concepts may prevent a data bottleneck phenomenon of a memory controller by reordering each data read according to an in-order read request in a master IP.
While the inventive subject matter has been particularly shown and described with reference to exemplary embodiments thereof, it will be understood by those of ordinary skill in the art that various changes in forms and details may be made therein without departing from the spirit and scope of the inventive subject matter as defined by the following claims.
Number | Date | Country | Kind |
---|---|---|---|
10-2012-0006615 | Jan 2012 | KR | national |