WO2016185879A1 - メモリ制御回路およびメモリ制御方法 - Google Patents

メモリ制御回路およびメモリ制御方法 Download PDF

Info

Publication number
WO2016185879A1
WO2016185879A1 PCT/JP2016/062997 JP2016062997W WO2016185879A1 WO 2016185879 A1 WO2016185879 A1 WO 2016185879A1 JP 2016062997 W JP2016062997 W JP 2016062997W WO 2016185879 A1 WO2016185879 A1 WO 2016185879A1
Authority
WO
WIPO (PCT)
Prior art keywords
command
read
write
memory
issued
Prior art date
Application number
PCT/JP2016/062997
Other languages
English (en)
French (fr)
Inventor
孝博 五十嵐
Original Assignee
ソニー株式会社
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ソニー株式会社 filed Critical ソニー株式会社
Priority to US15/570,905 priority Critical patent/US10430113B2/en
Publication of WO2016185879A1 publication Critical patent/WO2016185879A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0607Interleaved addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1647Handling requests for interconnection or transfer for access to memory bus based on arbitration with interleaved bank access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1015Read-write modes for single port memories, i.e. having either a random port or a serial port
    • G11C7/1042Read-write modes for single port memories, i.e. having either a random port or a serial port using interleaving techniques, i.e. read-write of one part of the memory while preparing another part
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement

Definitions

  • This disclosure relates to a memory control circuit and a memory control method applied to a memory having a bank group function.
  • the recent DDR4 standard employs a bank group that divides banks into two or four groups, without increasing the number of data read in parallel from the memory cell array (without increasing the number of data to prefetch).
  • the data transfer bandwidth of (Input / Output) is doubled compared to the old standard DDR3.
  • interleaving bank groups does not always increase the data transfer bandwidth, but may decrease it. Therefore, it is necessary to appropriately determine whether or not to perform bank group interleaving. It may be possible to obtain a higher data transfer band by determining whether or not to perform interleaving of the bank group according to the WRITE / READ access pattern to the memory and the memory specification, particularly, the command interval.
  • Patent Documents 1 to 3 do not propose a technique for improving data transfer efficiency in consideration of bank groups.
  • a memory control circuit includes: a first issue mode that issues a plurality of control commands without performing bank group interleaving; and a second that issues a plurality of control commands by performing bank group interleaving. And a memory control unit for issuing a control command to a plurality of bank groups in a memory having a bank group function.
  • a memory control method includes: a first issue mode that issues a plurality of control commands without performing bank group interleaving; and a second issue mode that issues a plurality of control commands by performing bank group interleaving.
  • the issuance mode is selectively used to issue a control command to a plurality of bank groups in a memory having a bank group function.
  • the plurality of control commands when issuing a control command to a plurality of bank groups in a memory having a bank group function, the plurality of control commands are performed without performing bank group interleaving. And a second issue mode in which a plurality of control commands are issued by performing bank group interleaving are selectively used.
  • the memory control circuit or the memory control method when issuing a control command to a plurality of bank groups, whether or not to perform bank group interleaving is appropriately selected. Therefore, the data transfer efficiency can be improved. Note that the effects described here are not necessarily limited, and may be any of the effects described in the present disclosure.
  • FIG. 10 is a timing diagram illustrating a first example of control command issuance timing when bank group interleaving is performed and only READ is performed.
  • FIG. 10 is a timing diagram illustrating a second example of control command issuance timing when bank group interleaving is performed and only READ is performed.
  • FIG. 10 is a timing diagram illustrating an example of control command issuance timing when bank group interleaving is not performed and only READ is performed. It is a timing chart showing an example of the issue timing of a control command when performing bank group interleaving and performing only WRITE.
  • FIG. 10 is a timing diagram illustrating a first example of control command issuance timing when bank group interleaving is performed and only READ is performed.
  • FIG. 10 is a timing diagram illustrating a second example of control command issuance timing when bank group interleaving is performed and only READ is performed.
  • FIG. 10 is a timing diagram illustrating an example of control command issuance timing when bank group interleaving is not performed and only READ
  • FIG. 10 is a timing diagram illustrating an example of a control command issuance timing when bank group interleaving is not performed and only WRITE is performed.
  • FIG. 6 is a timing chart showing a first example of switching from WRITE to READ.
  • FIG. 10 is a timing diagram illustrating a second example of switching from WRITE to READ.
  • FIG. 10 is a timing diagram illustrating a third example of switching from WRITE to READ.
  • FIG. 10 is a timing diagram illustrating a fourth example of switching from WRITE to READ. It is a timing chart showing an example of the issue timing of a control command when performing bank group interleaving and performing only READ.
  • FIG. 6 is a timing chart showing a first example of switching from WRITE to READ.
  • FIG. 10 is a timing diagram illustrating a second example of switching from WRITE to READ.
  • FIG. 10 is a timing diagram illustrating a third example of switching from WRITE to READ.
  • FIG. 10 is a timing diagram illustrating an example of a control command issuance timing when bank group interleaving is not performed and only WRITE is performed. It is the figure which simplified and showed the timing diagram of FIG. 11 and FIG.
  • FIG. 6 is a timing diagram showing a comparison between a case where bank group interleaving is performed and a case where bank group interleaving is not performed when READ is performed between WRITE and WRITE.
  • FIG. 5 is a timing diagram showing a comparison of command issue patterns when bank group interleaving is performed and when bank group interleaving is not performed when READ is performed. It is explanatory drawing which shows an example of the data array of READ in the case where it does not perform with the bank group interleaving. It is explanatory drawing which shows the operation example in the case of switching the mode of bank group interleaving with an arbiter.
  • Memory bus system including memory control circuit 1.1 Configuration (FIG. 1) 1.2 Operation 1.2.1 Control operation for READ only (Figs. 2 to 4) 1.2.2 Control operation for WRITE only (Figs. 5-6) 1.2.3 Control operation including WRITE and READ (FIGS. 7 to 17) 1.3 Effects Other embodiments
  • FIG. 1 illustrates a configuration example of a memory bus system including a memory control circuit according to an embodiment of the present disclosure.
  • the memory bus system 1 includes one or more bus masters, a memory control unit 30, and a DDR-PHY (physical interface) 40.
  • the bus master includes, for example, a plurality of READ masters 11 and 12 and a plurality of WRITE masters 21 and 22.
  • the memory control unit 30 includes an arbiter 31 and a memory controller 32.
  • the memory control unit 30 also has a buffer (not shown).
  • the memory 50 is a memory having a bank group function, for example, DDR4 or GDDR5 (Graphics Double Data Rate 5) memory.
  • FIG. 1 shows an example in which the memory 50 includes two DRAMs 51 and 52 corresponding to the two bank groups BG0 and BG1, but the number of bank groups and the number of DRAMs are not limited to this example.
  • Each of the DRAMs 51 and 52 has a plurality of banks Bank0, Bank1, Bank2, and Bank3.
  • Each of the READ masters 11 and 12 makes a READ (read) request to the memory 50.
  • Each of the READ masters 11 and 12 supplies a read address to the memory 50 via the memory control unit 30 and the DDR-PHY 40. Also, each of the READ masters 11 and 12 receives read data read from the memory 50 via the DDR-PHY 40 and the memory control unit 30.
  • FIG. 1 shows an example in which two READ masters are configured, the number of READ masters is not limited to this example.
  • Each of the WRITE masters 21 and 22 makes a WRITE (write) request to the memory 50.
  • Each of the WRITE masters 21 and 22 supplies a write (WRITE) address to the memory 50 via the memory control unit 30 and the DDR-PHY 40.
  • the WRITE masters 21 and 22 supply write data to the memory 50 to the memory control unit 30 via the memory control unit 30 and the DDR-PHY 40, respectively.
  • FIG. 1 shows an example in which there are two WRITE masters, the number of WRITE masters is not limited to this example.
  • the memory control unit 30 generates a control command in response to requests from the READ masters 11 and 12 and the WRITE masters 21 and 22, and supplies the control command to the memory 50 via the DDR-PHY 40.
  • Control commands include a READ command, a WRITE command, an ACT command, and a PRE command.
  • the arbiter 31 arbitrates requests from the READ masters 11 and 12 and the WRITE masters 21 and 22, and determines the order of the requests.
  • the input / output of a request to the arbiter 31 is generally defined by a protocol for accessing the memory 50, such as AHB (Advanced High-performance Bus), AXI (Advanced eXtensible Interface), or OCP (Open Core Protocol).
  • AHB Advanced High-performance Bus
  • AXI Advanced eXtensible Interface
  • OCP Open Core Protocol
  • the memory controller 32 controls the operation of the memory 50 based on an instruction from the arbiter 31.
  • the memory controller 32 converts an output from the arbiter 31 into a DRAM access protocol and generates a control command.
  • the DDR-PHY 40 is a physical layer interface that connects the memory controller 32 and the DRAMs 51 and 52 of the memory 50.
  • the DDR-PHY 40 may be connected to each of the DRAMs 51 and 52 via an I / O terminal (not shown).
  • the memory control unit 30 issues a first issue mode in which a plurality of control commands are issued without performing bank group interleaving, and a second issue mode in which a plurality of control commands are issued by performing bank group interleaving.
  • a control command is issued to a plurality of bank groups BGO and BG1 in the memory 50 by selectively using the issue mode.
  • the memory control unit 30 issues at least one of a WRITE command and a READ command a plurality of times as a control command to a plurality of bank groups.
  • the data transfer efficiency is higher when a plurality of control commands are continuously issued to the same bank group based on the command interval of the control command defined in the specification. If it is determined, the first issue mode is selected. In addition, when it is determined that the data transfer efficiency is higher when the plurality of control commands are alternately issued between two or more different bank groups, the second issue mode is selected.
  • Bank Group Interleave may be abbreviated as BGI.
  • BGI-off the first issue mode for issuing a plurality of control commands without performing bank group interleaving
  • BGI-on the second issue mode for issuing a plurality of control commands by performing bank group interleaving
  • the two modes of BGI-off and BGI-on are collectively referred to as a BGI mode, an issue mode, or a bank group interleave mode.
  • the bank group interleaving mode is determined as follows, for example.
  • RAS Row Address Strobe, ACT command.
  • the DRAMs 51 and 52 receive the Row address.
  • CAS Column Address Strobe, WRITE command or READ command.
  • the DRAMs 51 and 52 receive the column address.
  • BL ... Burst Length CL Time from when the CAS Latency, READ command is validated until the start of READ data output. Also written as RL.
  • CWL Time from when the CAS Write Latency and WRITE commands are validated until the start of WRITE data input. Also written as WL. BC ...
  • DRAMs 51 and 52 of the memory 50 are DDR4-2400 standards.
  • BL 8 and 16 bits / I / O
  • This access pattern can be considered as the minimum unit of random access because the data transfer efficiency can be kept constant even if a row address that is opened every 4096 bits is freely selected.
  • this is referred to as a “basic access pattern”.
  • FIG. 2 shows a first example of control command issuance timing when bank group interleaving is performed and only READ is performed.
  • FIG. 3 shows a second example of control command issuance timing when bank group interleaving is performed and only READ is performed.
  • FIG. 4 shows an example of control command issuance timing when bank group interleaving is not performed and only READ is performed.
  • FIG. 2 is an example in which the pattern of Bank 0 is shifted by 8 clocks to form the pattern of Bank 1, but in the example of FIG. 2, the ACT command and the READ command collide with each other.
  • FIG. 3 is an example in which the requests of Bank 1 and Bank 3 are shifted by one clock to eliminate the collision. Note that since the PRE command can be concealed by the READ / WRITE command with AutoPrecharge, there is no need to perform a shift to avoid a collision.
  • FIG. 5 shows an example of control command issuance timing when bank group interleaving is performed and only WRITE is performed.
  • FIG. 6 shows an example of control command issuance timing when bank group interleaving is not performed and only WRITE is performed.
  • the memory control unit 30 measures the number of commands of the WRITE command and the READ command until the switching from the WRITE command to the READ command and from the READ command to the WRITE command, and issues a command of the READ command sandwiched between the WRITE commands. If the number is equal to or greater than a predetermined value, the second issue mode is selected and a READ command is issued. If it is less than the predetermined value, the same issue mode as the WRITE command immediately before issuing the READ command is selected to issue the READ command.
  • the memory control unit 30 measures the number of commands of the WRITE command and the READ command until the change from the READ command to the WRITE command and from the WRITE command to the READ command, and continues the WRITE between the READ commands.
  • the number of commands issued is greater than or equal to a predetermined value
  • the first issue mode is selected and a WRITE command is issued. If the value is less than the predetermined value, the same issue mode as the READ command immediately before issuing the WRITE command is selected and the WRITE command is issued.
  • FIG. 7 shows a first example of the timing of switching from WRITE to READ.
  • the upper part of FIG. 7 shows a first example in which WRITE is performed with BGI-on and then READ is performed with BGI-on.
  • the lower part of FIG. 7 shows a first example in which WRITE is performed with BGI-off and then READ is performed with BGI-on.
  • FIG. 7 shows an example in which the ACT command and the PRE command are not issued in switching from WRITE to READ.
  • FIG. 8 shows a second example of the switching timing from WRITE to READ.
  • the upper part of FIG. 8 shows a second example in which WRITE is performed with BGI-on and then READ is performed with BGI-on.
  • the lower part of FIG. 8 shows a second example in which WRITE is performed using BGI-on and then READ is performed using BGI-off.
  • FIG. 9 shows a third example of the timing of switching from WRITE to READ.
  • FIG. 9 shows an example in which WRITE is performed with BGI-off and then READ is performed with BGI-on.
  • FIG. 10 shows a fourth example of the switching timing from WRITE to READ.
  • FIG. 10 shows an example in which WRITE is performed using BGI-on and then READ is performed using BGI-on.
  • DRAMs 51 and 52 transfer data in half duplex with bidirectional I / O. For this reason, in order to achieve the above-described data transfer efficiency in the case of only READ or WRITE, it is premised that READ and WRITE are performed as continuously as possible. This is because, when switching from READ to WRITE or from WRITE to READ, the drive direction of the data pin is switched, and therefore an invalid time (data transfer cannot be performed) occurs. However, depending on the system request for the memory bus, the number of WRITE requests is significantly smaller than that of READ, but it may be necessary to perform a short WRITE in the middle of successive READs, such as when the WRITE request cannot be waited.
  • FIG. 11 shows an example of control command issuance timing when bank group interleaving is performed and only READ is performed.
  • FIG. 12 shows an example of control command issuance timing when bank group interleaving is not performed and only WRITE is performed.
  • FIG. 13 shows a simplified timing diagram of FIG. 11 and FIG. As described above, when only READ is performed, data transfer efficiency is better when BGI-on is used and READ commands are issued alternately between a plurality of bank groups. When only WRITE is performed, data transfer efficiency is better when BGI-off is issued and WRITE commands are issued alternately between a plurality of bank groups.
  • FIG. 14 shows a case in which READ is performed between BGI-off WRITE and BGI-off WRITE when READ is set to BGI-on (upper stage of FIG. 14) and BGI-off (FIG. 14). (Lower)).
  • BGI-on the period of only READ is shorter.
  • the switching timing from READ to WRITE is earlier, and the WRITE command after READ can be issued earlier.
  • FIG. 15 shows a comparison of command issuance patterns when performing bank group interleaving and when performing bank group interleaving.
  • FIG. 16 shows an example of the data read order between the DRAMs 51 and 52 and the memory controller 32 corresponding to the command issue pattern of FIG. 15 and the data transfer order between the memory controller 32 and the READ masters 11 and 12.
  • the upper stage shows the case of BGI-on
  • the lower stage shows the case of BGI-off.
  • data is alternately read from DRAMs 51 and 52 (bank groups BG0 and BG1).
  • the memory controller 32 adjusts the data arrangement so that the respective data from the bank groups BG0 and BG1 are continuous, and transfers them to the READ masters 11 and 12.
  • FIG. 17 shows an operation example when the arbiter 31 switches the BGI mode.
  • FIG. 17 shows, in order from the top, the request timing of the READ master 11 (READ master # 1), the request timing of the READ master 12 (READ master # 2), and the request of the WRITE master 21 (WRITE master # 1). And the request timing of the WRITE master 22 (WRITE master # 2).
  • FIG. 17 further shows the timing of the request output from the arbiter 31 based on the requests from the READ masters 11 and 12 and the WRITE masters 21 and 22.
  • a READ request is written as R #
  • a WRITE request is written as W #.
  • the type of BGI mode selected by the arbiter 31 is indicated by on and off.
  • the arbiter 31 does not change after the access arbitration order between a plurality of bus masters is determined. In other words, functions such as “perform READ and WRITE as continuously as possible” are usually realized by the arbiter 31.
  • the arbiter 31 holds a timer that counts the time with the READ or WRITE switching time as a trigger. Alternatively, the arbiter 31 holds a counter that counts the number of requests.
  • the arbiter 31 selects the BGI mode with the highest data transfer efficiency. For example, in the example of DDR4-2400, READ selects BGI-on and WRITE selects BGI-off.
  • the arbiter 31 selects a BGI mode in which READ has good data transfer efficiency. For example, in the example of DDR4-2400, BGI-on is selected.
  • the arbiter 31 selects a BGI mode in which WRITE has high data transfer efficiency. For example, in the example of DDR4-2400, BGI-off is selected.
  • the BGI mode may be used because efficiency is not increased because there is little valid data in the first place.
  • FIG. 17 shows an example in which a fixed request is buffered until the BGI mode is determined and the determination of the BGI mode is reserved.
  • the present technology can take the following configurations. (1) Selectively using a first issue mode for issuing a plurality of control commands without performing bank group interleaving and a second issue mode for issuing a plurality of control commands by performing bank group interleaving; A memory control circuit comprising a memory control unit that issues the control command to a plurality of bank groups in a memory having a function. (2) The memory is When the plurality of control commands are continuously issued to the same bank group and when the plurality of control commands are alternately issued to the two or more different bank groups, The memory control circuit according to (1), wherein the minimum number of cycles is different.
  • the memory control unit The memory control circuit according to (1) or (2), wherein at least one of a WRITE command and a READ command is issued a plurality of times as the control command to a plurality of the bank groups.
  • the memory control unit When issuing the control command, Based on the command interval of the control command defined in the specification, When it is determined that data transfer efficiency is higher when the plurality of control commands are continuously issued to the same bank group, the first issue mode is selected, When it is determined that the data transfer efficiency is higher when the plurality of control commands are alternately issued between the two or more different bank groups, the second issue mode is selected. (1) to (3) The memory control circuit according to any one of the above.
  • the memory control unit Measures the number of commands of the WRITE command and the READ command from the WRITE command to the READ command and from the READ command to the WRITE command. If the number of READ commands issued between the WRITE commands is greater than or equal to a predetermined value, select the second issue mode and issue the READ command; The memory according to any one of (1) to (4), wherein when the value is less than the predetermined value, the same issue mode as the WRITE command immediately before issuing the READ command is selected and the READ command is issued Control circuit. (6) The memory control unit Measure the number of commands of the WRITE command and the READ command from the READ command to the WRITE command and from the WRITE command to the READ command.
  • the first issue mode is selected and the WRITE command is issued,
  • the memory according to any one of (1) to (5), wherein when the value is less than the predetermined value, the same issue mode as the READ command immediately before issuing the WRITE command is selected and the WRITE command is issued Control circuit.
  • (7) Selectively using a first issue mode for issuing a plurality of control commands without performing bank group interleaving and a second issue mode for issuing a plurality of control commands by performing bank group interleaving;

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Dram (AREA)
  • Memory System (AREA)

Abstract

本開示のメモリ制御回路は、バンクグループインターリーブを行わずに複数の制御コマンドを発行する第1の発行モードと、バンクグループインターリーブを行って複数の制御コマンドを発行する第2の発行モードとを選択的に用いて、バンクグループ機能を持つメモリにおける複数のバンクグループに対して制御コマンドを発行するメモリ制御部を備える。

Description

メモリ制御回路およびメモリ制御方法
 本開示は、バンクグループ機能を持つメモリに適用されるメモリ制御回路およびメモリ制御方法に関する。
 DRAM(Dynamic Random Access Memory)の高速化に伴い、DDR(Double Data Rate)規格やDDR2規格が登場し、バンク数は2,4,8と増加してきた。これにより、DRAMメモリセルの欠点であるページオープン・クローズのオーバーヘッドを隠蔽しWRITE/READを連続して行うことができるようになった。この手法はバンクインターリーブと呼ばれ広く知られている。また、DRAMメモリにおけるデータ転送効率を向上させる技術として、特許文献1ないし3には、メモリアドレスやデータの並び替えを行う技術が提案されている。
米国特許出願公開第2015/0046642号明細書 特開2004-164641号公報 特開2010-277216号公報
 さらに、最近のDDR4規格では、バンクを2つないし4つのグループに分けるバンクグループが採用され、メモリセルアレイから並列で読み出すデータ数を増やすことなく(prefetchするデータ数を増やすことなく)、I/O(Input/Output)のデータ転送帯域を旧規格DDR3に比べて倍増させている。ただしバンクグループのインターリーブを行うことは、常にデータ転送帯域を増やすわけではなく、減ることもあり得る。このため、バンクグループのインターリーブを行うか行わないかの判断を適切に行う必要がある。メモリへのWRITE/READのアクセスパターンや、メモリ仕様、特にコマンド間隔の規定によってバンクグループのインターリーブを行うか否かを判定することで、より高いデータ転送帯域を得ることができる可能性がある。上記特許文献1ないし3には、バンクグループを考慮してデータ転送効率を向上させる技術は提案されていない。
 データ転送効率を向上させることができるようにしたメモリ制御回路およびメモリ制御方法を提供することが望ましい。
 本開示の一実施の形態に係るメモリ制御回路は、バンクグループインターリーブを行わずに複数の制御コマンドを発行する第1の発行モードと、バンクグループインターリーブを行って複数の制御コマンドを発行する第2の発行モードとを選択的に用いて、バンクグループ機能を持つメモリにおける複数のバンクグループに対して制御コマンドを発行するメモリ制御部を備えたものである。
 本開示の一実施の形態に係るメモリ制御方法は、バンクグループインターリーブを行わずに複数の制御コマンドを発行する第1の発行モードと、バンクグループインターリーブを行って複数の制御コマンドを発行する第2の発行モードとを選択的に用いて、バンクグループ機能を持つメモリにおける複数のバンクグループに対して制御コマンドを発行するものである。
 本開示の一実施の形態に係るメモリ制御回路またはメモリ制御方法では、バンクグループ機能を持つメモリにおける複数のバンクグループに対して制御コマンドを発行する際、バンクグループインターリーブを行わずに複数の制御コマンドを発行する第1の発行モードと、バンクグループインターリーブを行って複数の制御コマンドを発行する第2の発行モードとを選択的に用いる。
 本開示の一実施の形態に係るメモリ制御回路またはメモリ制御方法によれば、複数のバンクグループに対して制御コマンドを発行する際、バンクグループインターリーブを行うか否かを適切に選択するようにしたので、データ転送効率を向上させることができる。
 なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
本開示の一実施の形態に係るメモリ制御回路を含むメモリバスシステムの一構成例を示すブロック図である。 バンクグループインターリーブを行い、かつREADのみを行う場合の制御コマンドの発行タイミングの第1の例を示すタイミング図である。 バンクグループインターリーブを行い、かつREADのみを行う場合の制御コマンドの発行タイミングの第2の例を示すタイミング図である。 バンクグループインターリーブを行わず、かつREADのみを行う場合の制御コマンドの発行タイミングの一例を示すタイミング図である。 バンクグループインターリーブを行い、かつWRITEのみを行う場合の制御コマンドの発行タイミングの一例を示すタイミング図である。 バンクグループインターリーブを行わず、かつWRITEのみを行う場合の制御コマンドの発行タイミングの一例を示すタイミング図である。 WRITEからREADへの切り替わりの第1の例を示すタイミング図である。 WRITEからREADへの切り替わりの第2の例を示すタイミング図である。 WRITEからREADへの切り替わりの第3の例を示すタイミング図である。 WRITEからREADへの切り替わりの第4の例を示すタイミング図である。 バンクグループインターリーブを行い、かつREADのみを行う場合の制御コマンドの発行タイミングの一例を示すタイミング図である。 バンクグループインターリーブを行わず、かつWRITEのみを行う場合の制御コマンドの発行タイミングの一例を示すタイミング図である。 図11および図12のタイミング図を簡略化して示した図である。 WRITEとWRITEの間にREADを行う際に、バンクグループインターリーブを行う場合と行わない場合とを比較して示したタイミング図である。 READを行う際に、バンクグループインターリーブを行う場合と行わない場合とのコマンド発行パターンを比較して示したタイミング図である。 バンクグループインターリーブを行う場合と行わない場合とにおけるREADのデータ配列の一例を示す説明図である。 アービターでバンクグループインターリーブのモードの切り替えを行う場合の動作例を示す説明図である。
 以下、本開示の実施の形態について図面を参照して詳細に説明する。なお、説明は以下の順序で行う。
 1.メモリ制御回路を含むメモリバスシステム
  1.1 構成(図1)
  1.2 動作
   1.2.1 READのみの場合の制御動作(図2~図4)
   1.2.2 WRITEのみの場合の制御動作(図5~図6)
   1.2.3 WRITEおよびREADを含む場合の制御動作(図7~図17)
  1.3 効果
 2.その他の実施の形態
<1.メモリ制御回路を含むメモリバスシステム>
[1.1 構成]
 図1は、本開示の一実施の形態に係るメモリ制御回路を含むメモリバスシステムの一構成例を示している。
 メモリバスシステム1は、1以上のバスマスターと、メモリ制御部30と、DDR-PHY(physical interface)40とを備えている。バスマスターは例えば、複数のREADマスター11,12と、複数のWRITEマスター21,22とで構成される。メモリ制御部30は、アービター31と、メモリコントローラ32とを有している。メモリ制御部30はまた、図示しないバッファを有している。
 メモリ50は、バンクグループ機能を持つメモリ、例えばDDR4またはGDDR5(Graphics Double Data Rate 5) 規格のメモリである。図1では、メモリ50が、2つのバンクグループBG0,BG1に対応する2つのDRAM51,52で構成されている例を示しているが、バンクグループの数およびDRAMの数はこの例には限定されない。DRAM51,52はそれぞれ、複数のバンクBank0,Bank1,Bank2,Bank3を有している。
 READマスター11,12はそれぞれ、メモリ50に対するREAD(読み出し)要求を行うものである。READマスター11,12はそれぞれ、メモリ制御部30およびDDR-PHY40を介して、メモリ50に対する読み出しアドレスを供給するようになっている。また、READマスター11,12はそれぞれ、メモリ50から読み出された読み出しデータを、DDR-PHY40およびメモリ制御部30を介して受け取るようになっている。なお、図1では、READマスターが2つで構成されている例を示しているが、READマスターの数はこの例には限定されない。
 WRITEマスター21,22はそれぞれ、メモリ50に対するWRITE(書き込み)要求を行うものである。WRITEマスター21,22はそれぞれ、メモリ制御部30およびDDR-PHY40を介して、メモリ50に対する書き込み(WRITE)アドレスを供給するようになっている。また、WRITEマスター21,22はそれぞれ、メモリ制御部30およびDDR-PHY40を介して、メモリ50に対する書き込みデータをメモリ制御部30に供給するようになっている。なお、図1では、WRITEマスターが2つで構成されている例を示しているが、WRITEマスターの数はこの例には限定されない。
 メモリ制御部30は、READマスター11,12およびWRITEマスター21,22からの要求に応じて、制御コマンドを生成し、DDR-PHY40を介して、制御コマンドをメモリ50に供給するものである。なお、制御コマンドとしては、READコマンド、WRITEコマンド、ACTコマンド、およびPREコマンドなどがある。
 アービター31は、READマスター11,12およびWRITEマスター21,22からの要求を調停し、要求の順序を決定するものである。アービター31に対する要求の入出力は、一般にメモリ50へのアクセスを行うプロトコル、例えばAHB(Advanced High-performance Bus)、AXI(Advanced eXtensible Interface)、またはOCP(Open Core Protocol)などで規定される。
 メモリコントローラ32は、アービター31からの指示に基づいてメモリ50の動作を制御するものである。メモリコントローラ32は、アービター31からの出力をDRAMアクセスプロトコルに変換し、制御コマンドを生成するようになっている。
 DDR-PHY40は、メモリコントローラ32とメモリ50の各DRAM51,52との間を接続する物理層のインタフェースである。DDR-PHY40は図示しないI/O端子を介して各DRAM51,52に接続されてもよい。
[1.2 動作]
 このメモリバスシステム1では、メモリ制御部30が、バンクグループインターリーブを行わずに複数の制御コマンドを発行する第1の発行モードと、バンクグループインターリーブを行って複数の制御コマンドを発行する第2の発行モードとを選択的に用いて、メモリ50における複数のバンクグループBGO,BG1に対して制御コマンドを発行する。
 メモリ制御部30は、複数のバンクグループに対して、制御コマンドとして、WRITEコマンドおよびREADコマンドのうち少なくとも一方を複数回、発行する。
 メモリ50は、複数の制御コマンドが同じバンクグループに対して連続的に発行された場合(バンクグループインターリーブを行わずに発行された場合)と、複数の制御コマンドが異なる2以上のバンクグループに対して交互に発行された場合(バンクグループインターリーブを行って発行された場合)とで、コマンド間隔の最小サイクル数が異なっている。
 メモリ制御部30は、制御コマンドを発行する際、仕様で規定される制御コマンドのコマンド間隔に基づいて、同じバンクグループに対して複数の制御コマンドを連続的に発行する方がデータ転送効率が高いと判断される場合、第1の発行モードを選択する。また、異なる2以上のバンクグループ間で交互に複数の制御コマンドを発行する方がデータ転送効率が高いと判断される場合、第2の発行モードを選択する。
 以下、図2~図17を参照して、本実施の形態に係るメモリバスシステム1によるメモリ50に対する制御動作の具体例を説明する。
 以下では、バンクグループインターリーブ(Bank Group Interleave)をBGIと略す場合がある。また、以下では、バンクグループインターリーブを行わずに複数の制御コマンドを発行する第1の発行モードをBGI-offと記す場合がある。また、以下では、バンクグループインターリーブを行って複数の制御コマンドを発行する第2の発行モードをBGI-onと記す場合がある。また、本実施の形態では、BGI-offとBGI-onとの2つのモードを総称してBGIモード、発行モード、またはバンクグループインターリーブのモードと呼ぶ。
 バンクグループインターリーブのモードは、例えば以下のように決まる。
・条件1:最も先にバッファに入力されたリクエスト
・条件2:直前に発行したコマンドと異なるバンクグループ
 例えば、ある時点でメモリ制御部30にバッファリングされている制御コマンドのうち、上記条件1を優先して選択する発行モードをBGI-off、上記条件2→条件1の順で優先して選択する発行モードをBGI-onとする。
 なお、図2等において用いられている用語の意味は以下の通りである。
 RAS・・・Row Address Strobe,ACTコマンドのこと。DRAM51,52はRowアドレスを受信する。
 CAS・・・Column Address Strobe,WRITEコマンドまたはREADコマンドのこと。DRAM51,52はカラムアドレスを受信する。
 BL・・・Burst Length
 CL・・・CAS Latency,READコマンドが有効化されてからREADデータの出力開始までの時間。RLとも書く。
 CWL・・・CAS Write Latency,WRITEコマンドが有効化されてからWRITEデータの入力開始までの時間。WLとも書く。
 BC・・・Burst Chop
 tRCD・・・RAS# to CAS# Delay
 tRP・・・RAS# Precharge time
 tCCD・・・CAS# to CAS# Delay
 tWR・・・Write Recovery time
 tWTR・・・Write To Read delay
 tRRD・・・RAS# to RAS# Delay
 tFAW・・・Four Activate Window delay
 _S・・・Short
 _L・・・Long
 ここでは、メモリ50のDRAM51,52がDDR4-2400の規格である場合を例に説明する。BL=8、16bit I/Oであるものとすると、WRITEコマンド1回あたり、8×16=128bitのデータをDRAM51,52にWRITEする。また、DRAM51,52の同一バンクに2コマンド、8バンクを順にアクセスするアクセスパターンを想定する。この場合、128bit×2×8=4096bit単位のアクセスとなる。このアクセスパターンは4096bitごとにOpenするRowアドレスを自由に選択してもデータ転送効率は一定に維持することができるので、ランダム・アクセスの最小単位と考えることができる。以下、これを「基本アクセスパターン」と呼称する。
 DDR4-2400のコマンド間隔の制約をDDR4の規格書から読み取ると、CL=16,tRCD=16,tRP=16,tFAW=36,tRRD_S=7,tRRD_L=8,tCCD_S=4,tCCD_L=6,tWTR_S=3,tWTR_L=9,tWR=18,CWL=16,tRTP=9となる。単位は特に書かない限りクロック数である。
(1.2.1 READのみの場合の制御動作)
 まず、図2~図4を参照して、READのみを行う場合の制御動作の具体例を説明する。
 図2は、バンクグループインターリーブを行い、かつREADのみを行う場合の制御コマンドの発行タイミングの第1の例を示している。図3は、バンクグループインターリーブを行い、かつREADのみを行う場合の制御コマンドの発行タイミングの第2の例を示している。図4は、バンクグループインターリーブを行わず、かつREADのみを行う場合の制御コマンドの発行タイミングの一例を示している。
 BGI-onのとき、基本アクセスパターンにおいて、72クロックに16回のREADコマンドを発行できる。これは、tFAW=36の間にACTを4回、各バンクにREADコマンド2回なので、READコマンドを計8回発行できることによる。このため、最高で32/36=88.9%のデータ転送効率を出すことができる。
 図4に示したように、BGI-offのとき、tCCD_L+tCCD_S=10クロック間にREADコマンドを2回発行できるので、最高で8/10=80%のデータ転送効率を出すことができる。このため、READを行うときはBGI-onを選択する方が高いデータ転送効率を得ることができる。
 なお、図2はBank0のパターンを8クロックずらしてBank1のパターンとした例であるが、図2の例では、ACTコマンドとREADコマンドとが衝突している。このため、Bank1とBank3のリクエストを1クロックずらして衝突をなくした例が図3の例である。なお、PREコマンドはAutoPrecharge付きREAD/WRITEコマンドで隠蔽できるので、衝突を回避するためのずらしは行わなくてよい。
(1.2.2 WRITEのみの場合の制御動作)
 次に、図5、および図6を参照して、WRITEのみを行う場合の制御動作の具体例を説明する。
 図5は、バンクグループインターリーブを行い、かつWRITEのみを行う場合の制御コマンドの発行タイミングの一例を示している。図6は、バンクグループインターリーブを行わず、かつWRITEのみを行う場合の制御コマンドの発行タイミングの一例を示している。
 BGI-onのとき、基本アクセスパターンにおいて、81クロックに16回のWRITEコマンドを発行できるので、最高で64/81=79.0%のデータ転送効率を出すことができる。BGI-offのとき、tCCD_L+tCCD_S=10クロック間にWRITEコマンドを2回発行できるので、最高で8/10=80%のデータ転送効率を出すことができる。このため、WRITEを行うときはBGI-offを選択する方が高いデータ転送効率を得ることができる。
(1.2.3 WRITEおよびREADを含む場合の制御動作)
 メモリ制御部30は、WRITEコマンドからREADコマンドへの切り替わりまでと、READコマンドからWRITEコマンドへの切り替わりまでのWRITEコマンドおよびREADコマンドのコマンド数を計測し、WRITEコマンドに挟まれたREADコマンドのコマンド発行数が、所定の値以上の場合は第2の発行モードを選択してREADコマンドを発行する。また、所定の値未満の場合はREADコマンドを発行する直前のWRITEコマンドと同じ発行モードを選択してREADコマンドを発行する。
 また、メモリ制御部30は、READコマンドからWRITEコマンドへの切り替わりまでと、WRITEコマンドからREADコマンドへの切り替わりまでのWRITEコマンドおよびREADコマンドのコマンド数を計測し、READコマンドに挟まれた連続するWRITEコマンドのコマンド発行数が、所定の値以上の場合は第1の発行モードを選択してWRITEコマンドを発行する。また、所定の値未満の場合はWRITEコマンドを発行する直前のREADコマンドと同じ発行モードを選択してWRITEコマンドを発行する。
 以下、図7~図17を参照して、WRITEおよびREADの双方を行う場合の制御動作の具体例を説明する。
 図7は、WRITEからREADへの切り替わりのタイミングの第1の例を示している。図7の上段には、BGI-onでWRITEを行い、続いて、BGI-onでREADを行う第1の例を示す。図7の下段には、BGI-offでWRITEを行い、続いて、BGI-onでREADを行う第1の例を示す。なお、図7では、WRITEからREADへの切り替わりにおいて、ACTコマンドとPREコマンドとを発行しない場合の例を示している。
 図8は、WRITEからREADへの切り替わりのタイミングの第2の例を示している。図8の上段には、BGI-onでWRITEを行い、続いて、BGI-onでREADを行う第2の例を示す。図8の下段には、BGI-onでWRITEを行い、続いて、BGI-offでREADを行う第2の例を示す。
 図9は、WRITEからREADへの切り替わりのタイミングの第3の例を示している。図9には、BGI-offでWRITEを行い、続いて、BGI-onでREADを行う例を示す。図10は、WRITEからREADへの切り替わりのタイミングの第4の例を示している。図10には、BGI-onでWRITEを行い、続いて、BGI-onでREADを行う例を示す。
 DRAM51,52は双方向I/Oでデータを半二重で転送する。このため、上述したREADまたはWRITEのみの場合のデータ転送効率を達成するためには、READやWRITEを可能な限り連続して行うことが前提となる。READからWRITEまたはWRITEからREADに切り替わる際にはデータピンのドライブ方向を切り替えるため、無効な(データ転送が行えない)時間が発生するためである。しかしメモリバスに対するシステム要求によっては、READに比べてWRITE要求が著しく少ないが、WRITE要求を待たせることができない場合など、連続するREADの途中に短いWRITEを行う必要が生じる場合がある。逆に、連続するWRITEの途中に短いREADを行う必要が生じる場合もある。これらの場合において、BGI-offで比較的長いWRITEが続いた後、短いREADでBGI-onへとBGIモードを切り替えるとデータ転送効率が悪化することがある。また、BGI-onで比較的長いREADが続いた後、短いWRITEでBGI-offへとBGIモードを切り替える場合などでもデータ転送効率が悪化することがある。
 WRITEからREADに切り替わる際には、最後のWRITEコマンドから次のREADコマンドまでの間隔がDRAM規格により規定されている。このため、WRITEからREADへ切り替わる際、最後のWRITEコマンドが遅れた分だけREADコマンド発行を遅らせる必要がある。WRITEの開始から終了までを比較すると、BGI-onの方がBGI-offよりもより早くWRITEコマンド発行が終了する。このため、連続するBGI-onのREADの途中に短いWRITEを行う場合は、WRITEのときもBGI-onを選択した方がデータ転送効率がよい。また、連続するBGI-offのWRITEの途中に短いREADを行う場合は、READのときもBGI-offを選択した方がデータ転送効率がよい。
 ここで、図11~図14を参照して、連続するBGI-offのWRITEの途中において短いREADを行う場合のデータ転送効率について説明する。
 図11は、バンクグループインターリーブを行い、かつREADのみを行う場合の制御コマンドの発行タイミングの一例を示している。図12は、バンクグループインターリーブを行わず、かつWRITEのみを行う場合の制御コマンドの発行タイミングの一例を示している。図13は、図11および図12のタイミング図を簡略化して示している。上述したように、READのみを行う場合、BGI-onとし複数のバンクグループ間で交互にREADコマンドを発行する方がデータ転送効率がよい。また、WRITEのみを行う場合、BGI-offとし複数のバンクグループ間で交互にWRITEコマンドを発行する方がデータ転送効率がよい。
 図14には、BGI-offのWRITEとBGI-offのWRITEの間においてREADを行う際に、READをBGI-onとした場合(図14の上段)とBGI-offとした場合(図14の下段)とを比較して示している。BGI-onとした方が、READだけの期間は短い。しかしながら、WRITEとの切り替えに要する時間を考慮すると、結果として、BGI-offとした方が、READからWRITEへの切り替えタイミングが早くなり、READの後のWRITEコマンドを早く発行できる。
 なお、READまたはWRITEを行う際に、BGIモードを切り替える場合、DRAM51,52とメモリコントローラ32との間のデータの読み出し順序または書き込み順序と、メモリコントローラ32とバスマスターとの間のデータの転送順序とを調整する必要があり得る。
 図15は、READを行う際に、バンクグループインターリーブを行う場合と行わない場合とのコマンド発行パターンを比較して示している。図16は、図15のコマンド発行パターンに対応したDRAM51,52とメモリコントローラ32との間のデータの読み出し順序と、メモリコントローラ32とREADマスター11,12との間のデータの転送順序との一例を示す。図15および図16において、上段はBGI-onの場合、下段はBGI-offの場合を示す。例えば図15および図16の上段に示したように、BGI-onの場合、DRAM51,52(バンクグループBG0,BG1)からデータが交互に読み出される。メモリコントローラ32は、バンクグループBG0,BG1からのそれぞれのデータが連続するようにデータの配列を調整してREADマスター11,12に転送する。
 以上で説明したようなBGIモードの切り替えを行う場合、BGI-offとBGI-onとのいずれを選択するかは、アービター31またはメモリコントローラ32で決定する。
 図17に、アービター31でBGIモードの切り替えを行う場合の動作例を示す。図17には、上段から順に、READマスター11(READマスター#1)の要求のタイミングと、READマスター12(READマスター#2)の要求のタイミングと、WRITEマスター21(WRITEマスター#1)の要求のタイミングと、WRITEマスター22(WRITEマスター#2)の要求のタイミングとを示す。図17には、さらに、READマスター11,12とWRITEマスター21,22とからの要求に基づく、アービター31から出力される要求のタイミングを示す。READの要求はR#、WRITEの要求はW#と記す。図17の最下段には、アービター31によって選択されるBGIモードの種類をon,offで示す。
 メモリバスシステム1において、通常、アービター31で複数のバスマスター間のアクセス調停順序が決定された後は変更されることがない。すなわち、通常、「READやWRITEを可能な限り連続して行う」などの機能はアービター31で実現する。アービター31は、READまたはWRITEの切り替わり時刻をトリガーとして時刻をカウントするタイマーを保持する。または、アービター31は、リクエスト数をカウントするカウンタを保持する。
 READ要求、WRITE要求ともに多い場合(コマンド発行数が所定の値以上となる場合)、アービター31は、それぞれもっともデータ転送効率のよいBGIモードを選択する。例えばDDR4-2400の例では、READはBGI-on、WRITEはBGI-offを選択する。
 READ要求は多いが、WRITE要求が少ない場合(WRITEコマンド発行数が所定の値未満となる場合)、アービター31は、READがデータ転送効率のよいBGIモードを選択する。例えばDDR4-2400の例では、BGI-onを選択する。
 WRITE要求は多いが、READ要求が少ない場合(READコマンド発行数が所定の値未満となる場合)、アービター31は、WRITEがデータ転送効率のよいBGIモードを選択する。例えばDDR4-2400の例では、BGI-offを選択する。
 READ要求もWRITE要求も少ない場合(コマンド発行数が所定の値未満となる場合)は、そもそも有効データが少ないため効率が高くならないのでBGIモードはどちらでもよい。
 READ要求やWRITE要求がどれだけ連続したときBGIモードのon/offを切り替えるか判定するとき、損益分岐点(所定の値)が存在するが、READ要求やWRITE要求がどれだけ連続するか未来を予測することは難しい。図17には、BGIモード決定まで一定リクエストをバッファリングしてBGIモードの決定を留保する例を示す。
 図17のT0において、アービター31は、WRITEマスター#1の要求を出力するとき、READマスター#1の要求がgrant(許可)されているので、WRITE要求はBGI-onとする。T1において、アービター31は、READマスター#1の要求を出力するとき、READマスター#1の要求がgrantされているので、READ要求はBGI-onとする。T2において、アービター31は、WRITEマスター#1の要求を出力するとき、どの要求もgrantされていないので、WRITE要求はBGI-offとする。
[1.3 効果]
 以上のように、本実施の形態によれば、複数のバンクグループに対して制御コマンドを発行する際、バンクグループインターリーブを行うか否かを適切に選択し、制御コマンドの発行スケジュールを最適化するようにしたので、データ転送効率を向上させることができる。
 なお、本明細書に記載された効果はあくまでも例示であって限定されるものではなく、また他の効果があってもよい。
<2.その他の実施の形態>
 本開示による技術は、上記実施の形態の説明に限定されず種々の変形実施が可能である。
 例えば、本技術は以下のような構成を取ることができる。
(1)
 バンクグループインターリーブを行わずに複数の制御コマンドを発行する第1の発行モードと、バンクグループインターリーブを行って複数の前記制御コマンドを発行する第2の発行モードとを選択的に用いて、バンクグループ機能を持つメモリにおける複数のバンクグループに対して前記制御コマンドを発行するメモリ制御部
 を備えるメモリ制御回路。
(2)
 前記メモリは、
 複数の前記制御コマンドが前記同じバンクグループに対して連続的に発行された場合と、複数の前記制御コマンドが前記異なる2以上のバンクグループに対して交互に発行された場合とで、コマンド間隔の最小サイクル数が異なる
 上記(1)に記載のメモリ制御回路。
(3)
 前記メモリ制御部は、
 複数の前記バンクグループに対して、前記制御コマンドとして、WRITEコマンドおよびREADコマンドのうち少なくとも一方を複数回、発行する
 上記(1)または(2)に記載のメモリ制御回路。
(4)
 前記メモリ制御部は、
 前記制御コマンドを発行する際、
 仕様で規定される前記制御コマンドのコマンド間隔に基づいて、
 前記同じバンクグループに対して複数の前記制御コマンドを連続的に発行する方がデータ転送効率が高いと判断される場合、前記第1の発行モードを選択し、
 前記異なる2以上のバンクグループ間で交互に複数の前記制御コマンドを発行する方がデータ転送効率が高いと判断される場合、前記第2の発行モードを選択する
 上記(1)ないし(3)のいずれか1つに記載のメモリ制御回路。
(5)
 前記メモリ制御部は、
 前記WRITEコマンドから前記READコマンドへの切り替わりまでと、前記READコマンドから前記WRITEコマンドへの切り替わりまでの前記WRITEコマンドおよび前記READコマンドのコマンド数を計測し、
 前記WRITEコマンドに挟まれた前記READコマンドのコマンド発行数が、所定の値以上の場合は前記第2の発行モードを選択して前記READコマンドを発行し、
 前記所定の値未満の場合は前記READコマンドを発行する直前の前記WRITEコマンドと同じ発行モードを選択して前記READコマンドを発行する
 上記(1)ないし(4)のいずれか1つに記載のメモリ制御回路。
(6)
 前記メモリ制御部は、
 前記READコマンドから前記WRITEコマンドへの切り替わりまでと、前記WRITEコマンドから前記READコマンドへの切り替わりまでの前記WRITEコマンドおよび前記READコマンドのコマンド数を計測し、
 前記READコマンドに挟まれた連続する前記WRITEコマンドのコマンド発行数が、所定の値以上の場合は前記第1の発行モードを選択して前記WRITEコマンドを発行し、
 前記所定の値未満の場合は前記WRITEコマンドを発行する直前の前記READコマンドと同じ発行モードを選択して前記WRITEコマンドを発行する
 上記(1)ないし(5)のいずれか1つに記載のメモリ制御回路。
(7)
 バンクグループインターリーブを行わずに複数の制御コマンドを発行する第1の発行モードと、バンクグループインターリーブを行って複数の前記制御コマンドを発行する第2の発行モードとを選択的に用いて、バンクグループ機能を持つメモリにおける複数のバンクグループに対して前記制御コマンドを発行する
 メモリ制御方法。
 本出願は、日本国特許庁において2015年5月20日に出願された日本特許出願番号第2015-102625号を基礎として優先権を主張するものであり、この出願のすべての内容を参照によって本出願に援用する。
 当業者であれば、設計上の要件や他の要因に応じて、種々の修正、コンビネーション、サブコンビネーション、および変更を想到し得るが、それらは添付の請求の範囲やその均等物の範囲に含まれるものであることが理解される。

Claims (7)

  1.  バンクグループインターリーブを行わずに複数の制御コマンドを発行する第1の発行モードと、バンクグループインターリーブを行って複数の前記制御コマンドを発行する第2の発行モードとを選択的に用いて、バンクグループ機能を持つメモリにおける複数のバンクグループに対して前記制御コマンドを発行するメモリ制御部
     を備えるメモリ制御回路。
  2.  前記メモリは、
     複数の前記制御コマンドが前記同じバンクグループに対して連続的に発行された場合と、複数の前記制御コマンドが前記異なる2以上のバンクグループに対して交互に発行された場合とで、コマンド間隔の最小サイクル数が異なる
     請求項1に記載のメモリ制御回路。
  3.  前記メモリ制御部は、
     複数の前記バンクグループに対して、前記制御コマンドとして、WRITEコマンドおよびREADコマンドのうち少なくとも一方を複数回、発行する
     請求項1に記載のメモリ制御回路。
  4.  前記メモリ制御部は、
     前記制御コマンドを発行する際、
     仕様で規定される前記制御コマンドのコマンド間隔に基づいて、
     前記同じバンクグループに対して複数の前記制御コマンドを連続的に発行する方がデータ転送効率が高いと判断される場合、前記第1の発行モードを選択し、
     前記異なる2以上のバンクグループ間で交互に複数の前記制御コマンドを発行する方がデータ転送効率が高いと判断される場合、前記第2の発行モードを選択する
     請求項1に記載のメモリ制御回路。
  5.  前記メモリ制御部は、
     前記WRITEコマンドから前記READコマンドへの切り替わりまでと、前記READコマンドから前記WRITEコマンドへの切り替わりまでの前記WRITEコマンドおよび前記READコマンドのコマンド数を計測し、
     前記WRITEコマンドに挟まれた前記READコマンドのコマンド発行数が、所定の値以上の場合は前記第2の発行モードを選択して前記READコマンドを発行し、
     前記所定の値未満の場合は前記READコマンドを発行する直前の前記WRITEコマンドと同じ発行モードを選択して前記READコマンドを発行する
     請求項1に記載のメモリ制御回路。
  6.  前記メモリ制御部は、
     前記READコマンドから前記WRITEコマンドへの切り替わりまでと、前記WRITEコマンドから前記READコマンドへの切り替わりまでの前記WRITEコマンドおよび前記READコマンドのコマンド数を計測し、
     前記READコマンドに挟まれた連続する前記WRITEコマンドのコマンド発行数が、所定の値以上の場合は前記第1の発行モードを選択して前記WRITEコマンドを発行し、
     前記所定の値未満の場合は前記WRITEコマンドを発行する直前の前記READコマンドと同じ発行モードを選択して前記WRITEコマンドを発行する
     請求項1に記載のメモリ制御回路。
  7.  バンクグループインターリーブを行わずに複数の制御コマンドを発行する第1の発行モードと、バンクグループインターリーブを行って複数の前記制御コマンドを発行する第2の発行モードとを選択的に用いて、バンクグループ機能を持つメモリにおける複数のバンクグループに対して前記制御コマンドを発行する
     メモリ制御方法。
PCT/JP2016/062997 2015-05-20 2016-04-26 メモリ制御回路およびメモリ制御方法 WO2016185879A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US15/570,905 US10430113B2 (en) 2015-05-20 2016-04-26 Memory control circuit and memory control method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2015-102625 2015-05-20
JP2015102625A JP2016218721A (ja) 2015-05-20 2015-05-20 メモリ制御回路およびメモリ制御方法

Publications (1)

Publication Number Publication Date
WO2016185879A1 true WO2016185879A1 (ja) 2016-11-24

Family

ID=57320268

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/062997 WO2016185879A1 (ja) 2015-05-20 2016-04-26 メモリ制御回路およびメモリ制御方法

Country Status (3)

Country Link
US (1) US10430113B2 (ja)
JP (1) JP2016218721A (ja)
WO (1) WO2016185879A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018216081A1 (ja) * 2017-05-22 2018-11-29 ゼンテルジャパン株式会社 半導体記憶システム
WO2023189358A1 (ja) * 2022-03-31 2023-10-05 ソニーセミコンダクタソリューションズ株式会社 メモリ制御装置

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6883764B2 (ja) * 2018-09-28 2021-06-09 パナソニックIpマネジメント株式会社 コマンド制御システム、車両、コマンド制御方法及びプログラム
CN110209597B (zh) * 2019-05-24 2021-10-15 北京百度网讯科技有限公司 处理访问请求的方法、装置、设备和存储介质
KR20240009812A (ko) * 2022-07-14 2024-01-23 삼성전자주식회사 프리페치 기능을 지원하는 스토리지 모듈 및 그것의 동작 방법
KR20240009813A (ko) * 2022-07-14 2024-01-23 삼성전자주식회사 단일 직렬 쓰기 인터페이싱 방식을 지원하는 스토리지 모듈 및 그것의 동작 방법
US11983164B1 (en) 2022-11-17 2024-05-14 Bank Of America Corporation System and method for data community detection via data network telemetry

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05134923A (ja) * 1991-10-11 1993-06-01 Internatl Business Mach Corp <Ibm> メモリ・コントローラ、及びデータ処理システム
JP2008152687A (ja) * 2006-12-20 2008-07-03 Matsushita Electric Ind Co Ltd メモリコントローラ

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999046775A2 (en) * 1998-03-10 1999-09-16 Rambus, Inc. Performing concurrent refresh and current control operations in a memory subsystem
US6912616B2 (en) 2002-11-12 2005-06-28 Hewlett-Packard Development Company, L.P. Mapping addresses to memory banks based on at least one mathematical relationship
JP3950831B2 (ja) * 2003-09-16 2007-08-01 エヌイーシーコンピュータテクノ株式会社 メモリインタリーブ方式
US7535383B2 (en) 2006-07-10 2009-05-19 Sharp Laboratories Of America Inc. Methods and systems for signaling multi-layer bitstream data
JP5391833B2 (ja) 2009-05-27 2014-01-15 富士通セミコンダクター株式会社 メモリコントローラ、システムおよび半導体メモリのアクセス制御方法
US9432298B1 (en) * 2011-12-09 2016-08-30 P4tents1, LLC System, method, and computer program product for improving memory systems
US9338465B2 (en) 2011-06-30 2016-05-10 Sharp Kabushiki Kaisha Context initialization based on decoder picture buffer
US9484952B2 (en) 2011-11-03 2016-11-01 Qualcomm Incorporated Context state and probability initialization for context adaptive entropy coding
US8762607B2 (en) * 2012-06-29 2014-06-24 Intel Corporation Mechanism for facilitating dynamic multi-mode memory packages in memory systems
KR20150017526A (ko) 2013-08-07 2015-02-17 삼성전자주식회사 메모리 명령 스케줄러 및 메모리 명령 스케줄링 방법
US9720825B2 (en) * 2014-12-19 2017-08-01 Dell Products, Lp System and method for performance optimal partial rank/bank interleaving for non-symmetrically populated DIMMs across DDR channels
US10192608B2 (en) * 2017-05-23 2019-01-29 Micron Technology, Inc. Apparatuses and methods for detection refresh starvation of a memory

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05134923A (ja) * 1991-10-11 1993-06-01 Internatl Business Mach Corp <Ibm> メモリ・コントローラ、及びデータ処理システム
JP2008152687A (ja) * 2006-12-20 2008-07-03 Matsushita Electric Ind Co Ltd メモリコントローラ

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JEDEC STANDARD DDR 4 SDRAM: "JEDEC SOLID STATE TECHNOLOGY ASSOCIATION", November 2013 (2013-11-01), pages 77,78, Retrieved from the Internet <URL:http://www.jedec.org/sites/default/files/docs/JESD79.4A.pdf> [retrieved on 20160516] *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018216081A1 (ja) * 2017-05-22 2018-11-29 ゼンテルジャパン株式会社 半導体記憶システム
JPWO2018216081A1 (ja) * 2017-05-22 2020-03-26 ゼンテルジャパン株式会社 半導体記憶システム
JP7130634B2 (ja) 2017-05-22 2022-09-05 ゼンテルジャパン株式会社 半導体記憶システム
WO2023189358A1 (ja) * 2022-03-31 2023-10-05 ソニーセミコンダクタソリューションズ株式会社 メモリ制御装置

Also Published As

Publication number Publication date
JP2016218721A (ja) 2016-12-22
US20180357009A1 (en) 2018-12-13
US10430113B2 (en) 2019-10-01

Similar Documents

Publication Publication Date Title
WO2016185879A1 (ja) メモリ制御回路およびメモリ制御方法
US6675269B2 (en) Semiconductor device with memory controller that controls page mode access
EP1488323B1 (en) Memory system with burst length shorter than prefetch length
JP5430484B2 (ja) 半導体記憶装置、及びその制御方法
US20120079180A1 (en) DRAM Controller and a method for command controlling
US7405992B2 (en) Method and apparatus for communicating command and address signals
US8661180B2 (en) Memory controlling device and memory controlling method
WO2013015893A1 (en) Memory with deferred fractional row activation
CN101788963A (zh) Dram存储控制方法及装置
JP5391833B2 (ja) メモリコントローラ、システムおよび半導体メモリのアクセス制御方法
US7373453B2 (en) Method and apparatus of interleaving memory bank in multi-layer bus system
KR20240024197A (ko) 다중-랭크 메모리 제어기에서의 효율적인 랭크 스위칭
WO2009125572A1 (ja) メモリ制御回路及びメモリ制御方法
KR20080069298A (ko) 반도체 메모리 장치 및 그의 동작 제어방법
CN102708059A (zh) 提高sdram数据传输效率的方法
WO2016185878A1 (ja) メモリ制御回路およびメモリ制御方法
JP5204777B2 (ja) メモリ装置及びその制御方法
US20070121398A1 (en) Memory controller capable of handling precharge-to-precharge restrictions
US7941594B2 (en) SDRAM sharing using a control surrogate
JP3563340B2 (ja) メモリコントローラ
JP2011159341A (ja) メモリ制御回路
NAYAK SDR Synchronous Dynamic Random Access Memory Controller Using Adaptive Bank Management

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16796273

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16796273

Country of ref document: EP

Kind code of ref document: A1