WO2023171474A1 - メモリコントローラおよびメモリ制御方法 - Google Patents

メモリコントローラおよびメモリ制御方法 Download PDF

Info

Publication number
WO2023171474A1
WO2023171474A1 PCT/JP2023/007482 JP2023007482W WO2023171474A1 WO 2023171474 A1 WO2023171474 A1 WO 2023171474A1 JP 2023007482 W JP2023007482 W JP 2023007482W WO 2023171474 A1 WO2023171474 A1 WO 2023171474A1
Authority
WO
WIPO (PCT)
Prior art keywords
raa
command
value
memory
act
Prior art date
Application number
PCT/JP2023/007482
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 ソニーセミコンダクタソリューションズ株式会社
Publication of WO2023171474A1 publication Critical patent/WO2023171474A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles

Definitions

  • the present disclosure relates to a memory controller and a memory control method.
  • row hammer row hammer
  • data at addresses physically adjacent to a specific address changes when accesses to a specific address occur consecutively. It is known that a phenomenon called "hammer" occurs. Rowhammer is recognized as a serious security risk because it is possible to intentionally generate this rowhammer and rewrite an address that should not otherwise be accessible.
  • Patent Document 1 A measure for dealing with this row hammer is disclosed in Patent Document 1, for example.
  • RFM Refresh Management
  • an RAA (Rolling Accumulated ACT) counter is set for each bank, and each time an ACT command is issued, +1 is added to the RAA counter, and the value of the RAA counter (RAA count value) exceeds the RFMTH. and issuance of the ACT command is prohibited.
  • REFab refresh command
  • RFM command newly introduced in this new standard, the RAA count value is subtracted by a predetermined value, making it possible to issue an ACT command. .
  • a memory controller If a memory controller is designed according to this new standard, it will be necessary to add an RAA counter and a circuit that issues RFM commands. However, since the row hammer itself only occurs when an attempt is made to cause it intentionally, it is desirable to prevent the row hammer by minimizing the introduction of new circuits and making use of existing functions. Therefore, it is desirable to provide a memory controller and a memory control method that can take measures against row hammer by also utilizing existing functions.
  • a memory controller is capable of controlling access to DRAM.
  • This memory controller includes an RAA (Rolling Accumulated ACT) counter that can count the number of times an ACT command is issued, and a command scheduler.
  • RAA Rolling Accumulated ACT
  • the command scheduler changes one of the following three parameters to a longer value, and changes the count value of the RAA counter to a second value smaller than the first threshold.
  • the value falls below the threshold, the changed value can be returned to the original value.
  • a memory control method is a method for controlling access to DRAM.
  • This memory control method includes the following two.
  • B1 When the count value of the RAA counter exceeds the first threshold, change one of the following three parameters to a longer value.
  • B2 The count value of the RAA counter is smaller than the first threshold. When the value falls below the second threshold, return the changed value to the original value.
  • Parameters to be changed (A1) ACT command issuance interval tRRD (A2) Period tFAW during which four ACT commands may exist (A3) Period t32AW during which 32 ACT commands may exist in the GDDR6 (graphics double data rate type six synchronous dynamic random-access memory) standard
  • the count value of the RAA counter exceeds the first threshold, one of the three parameters described above is changed to a longer value, and the RAA counter When the count value falls below a second threshold that is smaller than the first threshold, the changed value is returned to the original value. In this way, the increase in the count value is suppressed by changing the existing parameters.
  • FIG. 1 is a diagram showing an example of functional blocks of a conventional memory controller.
  • FIG. 2 is a diagram showing an example of how the RAA count value changes.
  • FIG. 3 is a diagram illustrating an example of functional blocks of a memory controller according to an embodiment of the present disclosure.
  • FIG. 4 is a diagram showing an example of how the RAA count value changes.
  • FIG. 5 is a diagram for explaining the extension of tRRD.
  • FIG. 6 is a diagram for explaining the extension of tFAW.
  • FIG. 7 is a diagram for explaining the extension of t32AW.
  • SDRAM synchronous DRAM
  • This SDRAM is a DRAM that operates in synchronization with a clock signal, and is often composed of a plurality of banks.
  • a refresh command (FEFab) is periodically input from the memory controller to perform a refresh operation, making it possible to retain data in memory cells.
  • FFab refresh command
  • data retention time depends on temperature.
  • row hammer a phenomenon called row hammer has been discovered in which when accesses to a specific address in SDRAM occur consecutively, data at an address physically adjacent to that address changes. Rowhammer has come to be recognized as a serious security risk because it is possible to intentionally generate this rowhammer and rewrite an address that should not otherwise be accessible.
  • the LPDDR4 standard is a DRAM standard defined by JEDEC (Join Electron Device Engineering Council). This new standard requires memory controllers to issue triggers to protect memory cells when the cumulative number of ACT commands issued to the ROW address of a particular bank exceeds a threshold determined for each DRAM. . However, it has not been easy to incorporate the above-described function of detecting the cumulative number of issuances into the memory controller.
  • the LPDDR5 standard and the LPDDR5X standard are DRAM standards defined by JEDEC.
  • an RAA counter is set for each bank, and each time an ACT command is issued, +1 is added to the RAA counter, and when the value of the RAA counter (RAA count value) exceeds RFMTH, an ACT command is issued. is prohibited.
  • REFab refresh command
  • RFM RAA count value
  • FIG. 1 shows an example of a schematic configuration of an information processing system including a memory controller 120 designed in accordance with this new standard.
  • the information processing system includes, for example, a plurality of initiators 10, a memory controller 120, and a DRAM 30, as shown in FIG.
  • the DRAM 30 is a DRAM compliant with LPDDR5 or LPDDR5X.
  • a plurality of bank groups are defined in the DRAM 30.
  • a plurality of banks are defined in each bank group.
  • the plurality of initiators 10 are able to write data to or read data from the DRAM 30 via the memory controller 120.
  • Each initiator 10 is, for example, a central processing unit (CPU) or a functional block.
  • Each initiator 10 is capable of issuing a memory access request for writing or reading data to or from the DRAM 30 and outputting it to the memory controller 120.
  • This memory access request includes, for example, a logical address in a virtual storage area given to each initiator 10, a BL length that is the length of data to be accessed, identification information for identifying the initiator 10, and a transfer direction. included. The transfer direction here indicates whether it is a write request for writing data or a read request for reading data.
  • Each initiator 10 is capable of outputting write data to be written to the DRAM 30 to the memory controller 120 in accordance with a data output instruction from the memory controller 120.
  • Each initiator 10 is able to communicate with the memory controller 120 using, for example, a protocol defined by AMBA (Advanced Microcontroller Bus Architecture) (for example, AXI (Advanced eXtensible Interface) protocol). ing.
  • AMBA Advanced Microcontroller Bus Architecture
  • AXI Advanced eXtensible Interface
  • the memory controller 120 includes, for example, command arbitration units 121 and 122 and a sequencer 123, as shown in FIG.
  • Sequencer 123 is a circuit provided according to the RFM standard.
  • the memory controller 120 is capable of communicating with each initiator 10 and receiving memory access requests from each initiator 10.
  • the memory access request is, for example, a write request or a read request.
  • the memory controller 120 is capable of controlling write operations to or read operations from the DRAM 30 based on the received memory access request.
  • the memory controller 120 When the memory controller 120 receives a write request from the initiator 10, it can further receive write data from the initiator 10.
  • the memory controller 120 is capable of issuing a write command to the DRAM 30 and transmitting data received from the initiator 10 to the DRAM 30.
  • the DRAM 30 is capable of writing data received from the memory controller 120 into an internal memory cell array.
  • the memory controller 120 When the memory controller 120 receives a read request from the initiator 10, it can issue a read command and transmit it to the DRAM 30.
  • the DRAM 30 is capable of reading data from the memory cell array in response to a read command and transmitting the read data to the memory controller 120.
  • the memory controller 120 is capable of transmitting data received from the DRAM 30 to the initiator 10.
  • the memory controller 120 is capable of converting the logical address included in the memory access request output from the initiator 10 into a physical address corresponding to the DRAM 30.
  • the physical address referred to herein is an address that indicates a bank, row, and column that constitute the DRAM 30, and refers to a bank address, a row address, and a column address.
  • the command arbitration unit 121 is able to perform arbitration based on the physical addresses indicated in the plurality of memory access requests obtained from the plurality of initiators 10.
  • the command arbitration unit 121 is capable of outputting a plurality of memory access requests to the command arbitration unit 122 based on the arbitration result.
  • the sequencer 123 issues an RFM request based on the notification from the command scheduler 124.
  • the sequencer 123 is capable of outputting the issued RFM request to the command arbitration unit 122.
  • the command arbitration unit 122 is capable of performing arbitration based on memory access requests obtained from the command arbitration unit 121 and the sequencer 123.
  • the command arbitration unit 122 is capable of outputting a plurality of memory access requests to the command scheduler 124 based on the arbitration result.
  • the command arbitration unit 121 receives memory access requests from each initiator 10 at the same time, it is possible to suppress the output of a memory access request whose bank address is the same as the memory access request output immediately before. ing. That is, when the command arbitration unit 121 receives a plurality of memory access requests, it is possible to output a memory access request having a different bank address from the memory access request output immediately before.
  • the command arbitration unit 121 instructs the initiator 10 identified by the identification information indicated in the memory access request to output write data corresponding to the memory access request. It is now possible to do so.
  • the memory controller 120 further includes a command scheduler 124, an RAA counter 125, and an LPDDR-PHY (hereinafter simply referred to as "physical layer") 126.
  • RAA counter 125 is a circuit provided according to the RFM standard.
  • the command scheduler 124 is capable of issuing commands to the DRAM 30 based on the memory access request output from the command arbitration unit 122.
  • the memory controller 120 is capable of outputting write data stored in an internal buffer to the DRAM 3 in synchronization with the issuance of a write command.
  • the memory controller 120 is capable of reading read data from the DRAM 30 and storing it in an internal buffer in synchronization with the issuance of a read command.
  • the physical layer 126 is capable of outputting commands supplied in synchronization with the operating clock of the memory controller 120 and write data stored in an internal buffer based on the memory clock of the DRAM 30. . Further, the physical layer 126 is capable of storing data read out in synchronization with the memory clock in the DRAM 30 in an internal buffer in synchronization with the operation clock of the memory controller 120.
  • the RAA counter 125 is capable of counting the number of times an ACT command is issued by the command scheduler 124.
  • the memory controller 120 is capable of outputting a count signal to the RAA counter 125 every time an ACT command is issued.
  • the RAA counter 125 is capable of adding +1 to the count value (RAA count value) of the RAA counter 125 every time a count signal is input from the memory controller 120.
  • FIG. 2 shows an example of how the RAA count value changes.
  • the command scheduler 124 is capable of periodically issuing a refresh command (REFab).
  • the command scheduler 124 is capable of outputting a notification for issuing an RFM request to the sequencer 123 based on the RAA count value.
  • the command scheduler 124 can output a notification for issuing an RFM request to the sequencer 123 when the RAA count value exceeds a predetermined threshold (threshold RFMTH).
  • the sequencer 123 is capable of issuing RFM requests based on notifications from the command scheduler 124.
  • the command scheduler 124 is capable of issuing an RFM command (RFMab) to the DRAM 30 based on the RFM request output from the command arbitration unit 122.
  • RFMab RFM command
  • the command scheduler 124 is capable of outputting a first discount signal to the RAA counter 125 every time it issues a refresh command (REFab).
  • the RAA counter 125 is capable of subtracting a predetermined value (subtraction value RAAIMT) from the RAA count value each time the first discount signal is input from the memory controller 120 (see FIG. 2).
  • the command scheduler 124 is capable of outputting a second discount signal to the RAA counter 125 every time it issues an RFM command (RFMab).
  • the RAA counter 125 is capable of subtracting a predetermined value (subtraction value RAAMMT) from the RAA count value each time the second discount signal is input from the memory controller 120 (see FIG. 2).
  • the RAA count value can be made equal to or less than the predetermined threshold value (threshold value RFMTH). This suppresses the occurrence of row hammer.
  • FIG. 3 shows an example of a schematic configuration of an information processing system including a memory controller 20 according to an embodiment of the present disclosure.
  • the information processing system includes, for example, a plurality of initiators 10, a memory controller 20, and a DRAM 30, as shown in FIG.
  • the initiator 10 and DRAM 30 have the configurations described above.
  • the memory controller 20 is capable of controlling access to the DRAM 30.
  • the memory controller 20 includes a command arbitration unit 21, a command scheduler 22, an RAA counter 23, and an LPDDR-PHY (hereinafter simply referred to as "physical layer") 24. are doing.
  • the memory controller 20 is capable of communicating with each initiator 10 and receiving memory access requests from each initiator 10.
  • the memory access request is, for example, a write request or a read request.
  • the memory controller 20 is capable of controlling write operations to or read operations from the DRAM 30 based on the received memory access request.
  • the memory controller 20 When the memory controller 20 receives a write request from the initiator 10, it can further receive write data from the initiator 10.
  • the memory controller 20 is capable of issuing a write command to the DRAM 30 and transmitting data received from the initiator 10 to the DRAM 30.
  • the DRAM 30 is capable of writing data received from the memory controller 120 into an internal memory cell array.
  • the memory controller 20 When the memory controller 20 receives a read request from the initiator 10, it is possible to issue a read command and transmit it to the DRAM 30.
  • the DRAM 30 is capable of reading data from the memory cell array in response to a read command, and transmitting the read data to the memory controller 20.
  • the memory controller 20 is capable of transmitting data received from the DRAM 30 to the initiator 10.
  • the memory controller 20 is capable of converting the logical address included in the memory access request output from the initiator 10 into a physical address corresponding to the DRAM 30.
  • the physical address referred to herein is an address that indicates a bank, row, and column that constitute the DRAM 30, and refers to a bank address, a row address, and a column address.
  • the command arbitration unit 21 is able to perform arbitration based on the physical addresses indicated in the plurality of memory access requests obtained from the plurality of initiators 10.
  • the command arbitration unit 21 is capable of outputting a plurality of memory access requests to the command scheduler 22 based on the arbitration result.
  • the command arbitration unit 21 receives memory access requests from each initiator 10 at the same time, it is possible to suppress the output of a memory access request whose bank address is the same as the memory access request output immediately before. ing. That is, when the command arbitration unit 21 receives a plurality of memory access requests, it is possible to output a memory access request having a different bank address from the memory access request output immediately before.
  • the command arbitration unit 21 instructs the initiator 10 identified by the identification information indicated in the memory access request to output write data corresponding to the memory access request. It is now possible to do so.
  • the command scheduler 22 is capable of issuing commands to the DRAM 30 based on the memory access request output from the command arbitration unit 21.
  • the memory controller 20 is capable of outputting write data stored in an internal buffer to the DRAM 3 in synchronization with the issuance of a write command.
  • the memory controller 20 is capable of reading read data from the DRAM 30 and storing it in an internal buffer in synchronization with the issuance of a read command.
  • the physical layer 24 is capable of outputting commands supplied in synchronization with the operating clock of the memory controller 20 and write data stored in an internal buffer based on the memory clock of the DRAM 30. Further, the physical layer 24 is capable of storing data read out in synchronization with the memory clock in the DRAM 30 in an internal buffer in synchronization with the operation clock of the memory controller 20.
  • the RAA counter 23 is capable of counting the number of times an ACT command is issued by the command scheduler 22.
  • the command scheduler 22 is capable of outputting a count signal to the RAA counter 23 every time it issues an ACT command.
  • the RAA counter 23 is capable of adding +1 to the count value (RAA count value) of the RAA counter 23 every time a count signal is input from the command scheduler 22.
  • FIG. 4 shows an example of how the RAA count value changes.
  • the command scheduler 22 is capable of periodically issuing a refresh command (REFab).
  • the command scheduler 22 is capable of changing the ACT command issuance interval tRRD based on the RAA count value.
  • the command scheduler 22 is capable of changing the ACT command issuance interval tRRD to a longer value when the RAA count value exceeds a threshold TH1 (first threshold).
  • the command scheduler 22 is capable of returning the changed value to the original value when the RAA count value falls below a threshold TH2 (second threshold) that is smaller than the threshold TH1.
  • the command scheduler 22 is capable of outputting a first discount signal to the RAA counter 23 every time it issues a refresh command (REFab).
  • the RAA counter 23 is capable of subtracting a predetermined value (subtraction value RAAIMT) from the RAA count value each time the first discount signal is input from the command scheduler 22 (see FIG. 4).
  • the command scheduler 22 sets the value of the ACT command issuance interval tRRD to a value longer than the initial value until the RAA count value falls below the threshold TH2 (ACT period suppression period Tact). It is now possible to maintain the current state (see Figure 4). In this manner, in this embodiment, the increase in the RAA count value is suppressed by changing the existing parameters.
  • FIG. 5 is a diagram for explaining the extension of the ACT command issuance interval tRRD.
  • the command scheduler 124 leaves the issuance interval tRRD at its original setting value.
  • the command scheduler 22 can change the issuance interval tRRD to, for example, a value (tRRD_new) determined by the following formula.
  • tRRD_new tREFle-tRAS-tRPpb-tRFCab)/RAAIMT tRRD_new: ACT command issuance interval after change tREFle: Refresh cycle
  • tRAS Waiting time from opening to closing the bank tRPpb: Waiting time from closing to opening the bank tRFCab: Refresh cycle period
  • the issuance interval tRRD is changed to a longer value, and when the RAA count value falls below the threshold TH2, the changed value is returned to the original value. In this way, the increase in the count value is suppressed by changing the existing parameters. Therefore, countermeasures against row hammer can be taken without using a circuit that issues an RFM request.
  • a refresh command is issued periodically, and thereby the RAA count value is subtracted by a predetermined value (subtraction value RAAIMT).
  • RAAIMT extraction value
  • the increase in the RAA count value is periodically suppressed. Therefore, countermeasures against row hammer can be taken without using a circuit that issues an RFM request.
  • the command scheduler 22 sets the period tFAW in which four ACT commands may exist, as shown in FIG. 6, for example. It may be possible to change to a longer value (tFAW_new). Furthermore, when the RAA count value exceeds the threshold TH1, the command scheduler 22 sets the value of the period tFAW to a value longer than the initial value (tFAW_new) until the RAA count value falls below the threshold TH2 (ACT period suppression period Tact). ) may be maintained as is. At this time, when the RAA count value falls below a threshold TH2 (second threshold) smaller than the threshold TH1, the command scheduler 22 can return the changed value to the original value.
  • the command scheduler 22 executes GDDR6 (graphics double data rate type six synchronous dynamic random-access) as shown in FIG. 7, for example. It may be possible to change the period t32AW in which 32 ACT commands may exist in the (memory) standard to a longer value (t32AW_new). Furthermore, when the RAA count value exceeds the threshold TH1, the command scheduler 22 sets the value of the period t32AW to a value longer than the initial value (t32AW_new) until the RAA count value falls below the threshold TH2 (ACT period suppression period Tact). ) may be maintained as is. At this time, when the RAA count value falls below a threshold TH2 (second threshold) smaller than the threshold TH1, the command scheduler 22 can return the changed value to the original value.
  • GDDR6 graphics double data rate type six synchronous dynamic random-access
  • the command scheduler 124 may be able to assign priority to each initiator 10 when acquiring memory access requests from a plurality of initiators 10. At this time, the command scheduler 124 has threshold values TH1 and TH2 according to the priority, and can control the RAA count value using the threshold values TH1 and TH2 according to the assigned priority. It's okay. In this case, countermeasures against row hammer can be taken according to the characteristics of the initiator 10.
  • the command scheduler 124 can control the RAA count value using the threshold values TH1 and TH2 assigned to each initiator 10 when acquiring a memory access request from the initiator 10. It may be . In this case, countermeasures against row hammer can be taken according to the characteristics of the initiator 10.
  • a memory controller capable of controlling access to DRAM (Dynamic Random Access Memory), an RAA (Rolling Accumulated ACT) counter that can count the number of times an ACT command is issued;
  • the ACT command issuance interval tRRD When the count value of the RAA counter exceeds the first threshold, the ACT command issuance interval tRRD, the period tFAW in which four ACT commands may exist, or GDDR6 (graphics double data rate type six synchronous dynamic random-access
  • the period t32AW during which 32 ACT commands may exist in the memory) standard is changed to a longer value, and when the count value of the RAA counter falls below a second threshold smaller than the first threshold, the period t32AW is changed to a longer value.
  • a memory control method comprising: returning the changed value to the original value when the count value of the RAA counter falls below a second threshold smaller than the first threshold.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Dram (AREA)
  • Memory System (AREA)

Abstract

本開示の一実施形態にメモリコントローラは、DRAMへのアクセスを制御することが可能となっている。このメモリコントローラは、ACTコマンドの発行回数をカウントすることの可能なRAAカウンタと、コマンドスケジューラとを備えている。コマンドスケジューラは、RAAカウンタのカウント値が第1閾値を超えたときには、tRRD、tFAWもしくはt32AWをより長い値に変更し、RAAカウンタのカウント値が第1閾値よりも小さな第2閾値を下回ったときには、変更した値を元の値に戻すことが可能となっている。

Description

メモリコントローラおよびメモリ制御方法
 本開示は、メモリコントローラおよびメモリ制御方法に関する。
 近年、DRAM(Dynamic Random Access Memory)の製造プロセスの微細化に伴い、特定のアドレスへのアクセスが連続した発生したときに、そのアドレスと物理的に隣接するアドレスのデータが変化するロウハンマー(row hammer)という現象が生じることが知られている。このロウハンマーを意図的に発生させ、本来アクセスできないはずのアドレスに対して故意に書き換えを行うことができることから、ロウハンマーは、重大なセキュリティリスクとして認識されている。このロウハンマーに対処するための方策が、例えば、特許文献1に開示されている。
特開2020-166832号公報
 LPDDR(Low Power Double Data Rate)5もしくはLPDDR5Xといった最新世代のDRAM規格では、ロウハンマーに対処するために、RFM(Refresh Management)という新たな規格が導入された。この新たな規格では、バンクごとにRAA(Rolling Accumulated ACT)カウンタが設定され、ACTコマンドが発行されるたびに、RAAカウンタに+1が加えられ、RAAカウンタの値(RAAカウント値)がRFMTHを超えるとACTコマンドの発行が禁止される。この新たな規格では、リフレッシュコマンド(REFab)または、この新たな規格で新規に導入されたRFMコマンドを発行することで、RAAカウント値が所定の値だけ減算され、ACTコマンドの発行が可能となる。
 この新たな規格の通りにメモリコントローラを設計した場合、RAAカウンタと、RFMコマンドを発行する回路を追加することが必要となる。しかし、ロウハンマー自体は、意図的に起こそうとしたときのみ生じることから、新規な回路の導入をできるだけ抑え、既存の機能も利用することで、ロウハンマー対策を行うことが望ましい。従って、既存の機能も利用することでロウハンマー対策を行うことの可能なメモリコントローラおよびメモリ制御方法を提供することが望ましい。
 本開示の一実施形態にメモリコントローラは、DRAMへのアクセスを制御することが可能となっている。このメモリコントローラは、ACTコマンドの発行回数をカウントすることの可能なRAA(Rolling Accumulated ACT)カウンタと、コマンドスケジューラとを備えている。コマンドスケジューラは、RAAカウンタのカウント値が第1閾値を超えたときには、以下の3つのパラメータのうちのいずれかをより長い値に変更し、RAAカウンタのカウント値が第1閾値よりも小さな第2閾値を下回ったときには、変更した値を元の値に戻すことが可能となっている。
(A1)ACTコマンドの発行間隔tRRD
(A2)4つのACTコマンドが存在してもよい期間tFAW
(A3)GDDR6(graphics double data rate type six synchronous dynamic random-access memory)規格において32個のACTコマンドが存在していてもよい期間t32AW
 本開示の一実施形態にメモリ制御方法は、DRAMへのアクセスを制御する方法である。このメモリ制御方法は、以下の2つを含む。
(B1)RAAカウンタのカウント値が第1閾値を超えたときには、以下の3つのパラメータのうちのいずれかをより長い値に変更すること
(B2)RAAカウンタのカウント値が第1閾値よりも小さな第2閾値を下回ったときには、変更した値を元の値に戻すこと
変更対象のパラメータ
(A1)ACTコマンドの発行間隔tRRD
(A2)4つのACTコマンドが存在してもよい期間tFAW
(A3)GDDR6(graphics double data rate type six synchronous dynamic random-access memory)規格において32個のACTコマンドが存在していてもよい期間t32AW
 本開示の一実施形態に係るメモリコントローラおよびメモリ制御方法では、RAAカウンタのカウント値が第1閾値を超えたときには、上記の3つのパラメータのうちのいずれかがより長い値に変更され、RAAカウンタのカウント値が第1閾値よりも小さな第2閾値を下回ったときには、変更した値が元の値に戻される。このように、既存のパラメータの変更により、カウント値の増加が抑制される。
図1は、従来のメモリコントローラの機能ブロック例を表す図である。 図2は、RAAカウント値の変化の様子の一例を表す図である。 図3は、本開示の一実施の形態に係るメモリコントローラの機能ブロック例を表す図である。 図4は、RAAカウント値の変化の様子の一例を表す図である。 図5は、tRRDの延長について説明するための図である。 図6は、tFAWの延長について説明するための図である。 図7は、t32AWの延長について説明するための図である。
 以下、本開示を実施するための形態について、図面を参照して詳細に説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図はない。本技術は、その趣旨を逸脱しない範囲で種々変形(例えば各実施形態を組み合わせる等)して実施することができる。また、以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付して表している。図面は模式的なものであり、必ずしも実際の寸法や比率等とは一致しない。図面相互間においても互いの寸法の関係や比率が異なる部分が含まれていることがある。
<1.最新世代の規格における課題について>
 従来、メモリシステムとして、価格、バス帯域および容量の点において有利である同期DRAM(SDRAM:Synchronous Dynamic Random Access Memory)が広く用いられている。このSDRAMは、クロック信号に同期して動作するDRAMであり、多くの場合、複数のバンクにより構成される。
 このような構成のSDRAMでは、メモリコントローラからリフレッシュコマンド(FEFab)が定期的に入力されることで、リフレッシュ動作が行われ、メモリセルのデータを保持することが可能となる。従来から、データ保持時間が温度に依存することが知られている。近年、SDRAMの製造プロセスの微細化に伴い、データ保持時間を短くする新たな要因が問題視されている。具体的には、SDRAMの特定のアドレスへのアクセスが連続した発生したときに、そのアドレスと物理的に隣接するアドレスのデータが変化するロウハンマー(row hammer)という現象が発見された。このロウハンマーを意図的に発生させ、本来アクセスできないはずのアドレスに対して故意に書き換えを行うことができることから、ロウハンマーは、重大なセキュリティリスクとして認識されるようになった。
 LPDDR4規格では、TRR(Target Row Refresh)という新たな規格が導入された。LPDDR4規格は、JEDEC(Join Electron Device Engineering Council)で規定されたDRAM規格である。この新たな規格では、特定のバンクのROWアドレスに対するACTコマンドの累積発行回数がDRAMごとに定められた閾値を超えると、メモリセルを保護するためのトリガを発行することがメモリコントローラに要求される。しかし、上述の累積発行回数を検出する機能をメモリコントローラに組み込むことが容易ではなかった。
 LPDDR5もしくはLPDDR5Xといった最新世代のDRAM規格では、ロウハンマーに対処するために、RFMという新たな規格が導入された。LPDDR5規格およびLPDDR5X規格は、JEDECで規定されたDRAM規格である。この新たな規格では、バンクごとにRAAカウンタが設定され、ACTコマンドが発行されるたびに、RAAカウンタに+1が加えられ、RAAカウンタの値(RAAカウント値)がRFMTHを超えるとACTコマンドの発行が禁止される。この新たな規格では、リフレッシュコマンド(REFab)または、この新たな規格で新規に導入されたRFMコマンドを発行することで、RAAカウント値が所定の値だけ減算され、ACTコマンドの発行が可能となる。
 この新たな規格の通りにメモリコントローラを設計した場合、RAAカウンタと、RFMコマンドを発行する回路をメモリコントローラに追加することが必要となる。図1は、この新たな規格の通りに設計されたメモリコントローラ120を備えた情報処理システムの概略構成の一例を表したものである。情報処理システムは、例えば、図1に示したように、複数のイニシエータ10と、メモリコントローラ120と、DRAM30とを備えている。
 DRAM30は、LPDDR5もしくはLPDDR5Xに準拠するDRAMである。DRAM30には、例えば、複数のバンクグループが規定されている。各バンクグループには、例えば、複数のバンクが規定されている。
 複数のイニシエータ10は、メモリコントローラ120を介して、DRAM30に対するデータの書き込みもしくは読み出しを行うことが可能となっている。各イニシエータ10は、例えば、中央演算処理装置(CPU:Central Processing Unit)または機能ブロックなどである。
 各イニシエータ10は、DRAM30に対するデータの書き込みもしくは読み出しを行うためのメモリアクセス要求を発行し、メモリコントローラ120に出力することが可能となっている。このメモリアクセス要求には、例えば、イニシエータ10ごとに与えられた仮想的な記憶領域における論理アドレス、アクセスすべきデータの長さであるBL長、イニシエータ10を識別するための識別情報および転送方向が含まれる。ここにいう転送方向とは、データを書き込むためのライト要求、および、データを読み出すためのリード要求のいずれであるかを指し示すものである。各イニシエータ10は、メモリコントローラ120からのデータ出力指示に従って、DRAM30に書き込むべき書き込みデータをメモリコントローラ120に出力することが可能となっている。各イニシエータ10は、例えば、例えば、AMBA(Advanced Microcontroller Bus Architecture)で定義されているプロトコル(例えば、AXI(Advanced eXtensible Interface)プロトコル)を利用して、メモリコントローラ120と通信を行うことが可能となっている。
 メモリコントローラ120は、例えば、図1に示したように、コマンド調停部121,122およびシーケンサ123を備えている。シーケンサ123は、RFM規格に従って設けられた回路である。
 メモリコントローラ120は、各イニシエータ10と通信し、各イニシエータ10からメモリアクセス要求を受信することが可能となっている。メモリアクセス要求は、例えば、ライト要求、又はリード要求である。メモリコントローラ120は、受信したメモリアクセス要求に基づき、DRAM30へのライト動作、又はDRAM30からのリード動作を制御することが可能となっている。
 メモリコントローラ120は、イニシエータ10からライト要求を受信した場合、イニシエータ10からさらに、ライト用のデータを受信することが可能となっている。メモリコントローラ120は、DRAM30にライトコマンドを発行して、イニシエータ10から受信したデータをDRAM30に送信することが可能となっている。DRAM30は、メモリコントローラ120から受信したデータを内部のメモリセルアレイに書き込むことが可能となっている。
 メモリコントローラ120は、イニシエータ10からリード要求を受信した場合、リードコマンドを発行して、DRAM30に送信することが可能となっている。DRAM30は、リードコマンドに応じてメモリセルアレイからデータを読み出し、読み出したデータをメモリコントローラ120に送信することが可能となっている。メモリコントローラ120は、DRAM30から受信したデータをイニシエータ10に送信することが可能となっている。
 メモリコントローラ120は、イニシエータ10から出力されたメモリアクセス要求に含まれる論理アドレスを、DRAM30に対応する物理アドレスに変換することが可能となっている。ここにいう物理アドレスとは、DRAM30を構成するバンク、ロウおよびカラムを指し示すアドレスであり、バンクアドレス、ロウアドレスおよびカラムアドレスのことをいう。このように、論理アドレスから物理アドレスに変換することによって、変換後のメモリアクセス要求には、DRAM30におけるバンクアドレス、ロウアドレスおよびカラムアドレスが示される。
 コマンド調停部121は、複数のイニシエータ10から得られた複数のメモリアクセス要求に示される物理アドレスに基づいて調停(アービトレーション)を行うことが可能となっている。コマンド調停部121は、調停結果に基づいて複数のメモリアクセス要求をコマンド調停部122に出力することが可能となっている。シーケンサ123は、コマンドスケジューラ124からの通知に基づいて、RFM要求を発行する。シーケンサ123は、発行したRFM要求をコマンド調停部122に出力することが可能となっている。コマンド調停部122は、コマンド調停部121およびシーケンサ123から得られたメモリアクセス要求に基づいて調停(アービトレーション)を行うことが可能となっている。コマンド調停部122は、調停結果に基づいて複数のメモリアクセス要求をコマンドスケジューラ124に出力することが可能となっている。
 コマンド調停部121は、例えば、各イニシエータ10から同時にメモリアクセス要求を受け付けた場合には、直前に出力したメモリアクセス要求とバンクアドレスが同一であるメモリアクセス要求の出力を抑制することが可能となっている。すなわち、コマンド調停部121は、複数のメモリアクセス要求を受け付けた場合には、直前に出力したメモリアクセス要求とバンクアドレスが異なるメモリアクセス要求を出力することが可能となっている。コマンド調停部121は、メモリアクセス要求として、ライト要求を出力する際に、メモリアクセス要求に示される識別情報によって識別されるイニシエータ10に対して、そのメモリアクセス要求に対応する書き込みデータの出力を指示することが可能となっている。
 メモリコントローラ120は、さらに、コマンドスケジューラ124、RAAカウンタ125およびLPDDR-PHY(以下、単に「物理層」と称する。)126を有している。RAAカウンタ125は、RFM規格に従って設けられた回路である。
 コマンドスケジューラ124は、コマンド調停部122から出力されたメモリアクセス要求に基づいて、DRAM30に対するコマンドを発行することが可能となっている。メモリコントローラ120は、内部バッファに格納しておいた書き込みデータを、ライトコマンド発行と同期してDRAM3に出力することが可能となっている。メモリコントローラ120は、リードコマンド発行と同期して、DRAM30から読み出しデータを読み出し、内部バッファに格納することが可能となっている。
 物理層126は、メモリコントローラ120の動作クロックと同期して供給されるコマンドと、内部バッファに格納しておいた書き込みデータとを、DRAM30のメモリクロックに基づいて出力することが可能となっている。また、物理層126は、DRAM30におけるメモリクロックに同期して読み出されたデータを、メモリコントローラ120の動作クロックに同期させて内部バッファに格納することが可能となっている。
 RAAカウンタ125は、コマンドスケジューラ124におけるACTコマンドの発行回数をカウントすることが可能となっている。メモリコントローラ120は、例えば、ACTコマンドを発行するたびに、カウント信号をRAAカウンタ125に出力することが可能となっている。RAAカウンタ125は、例えば、モリコントローラ120からカウント信号が入力されるたびに、RAAカウンタ125のカウント値(RAAカウント値)に+1を加えることが可能となっている。
 図2は、RAAカウント値の変化の様子の一例を表したものである。コマンドスケジューラ124は、周期的にリフレッシュコマンド(REFab)を発行することが可能となっている。コマンドスケジューラ124は、RAAカウント値に基づいて、RFM要求を発行するための通知をシーケンサ123に出力することが可能となっている。コマンドスケジューラ124は、例えば、RAAカウント値が所定の閾値(閾値RFMTH)を超えたとき、RFM要求を発行するための通知をシーケンサ123に出力することが可能となっている。シーケンサ123は、コマンドスケジューラ124からの通知に基づいて、RFM要求を発行することが可能となっている。コマンドスケジューラ124は、コマンド調停部122から出力されたRFM要求に基づいて、DRAM30に対するRFMコマンド(RFMab)を発行することが可能となっている。
 コマンドスケジューラ124は、リフレッシュコマンド(REFab)を発行するたびに、第1ディスカウント信号をRAAカウンタ125に出力することが可能となっている。RAAカウンタ125は、例えば、モリコントローラ120から第1ディスカウント信号が入力されるたびに、RAAカウント値を所定の値(減算値RAAIMT)だけ減算することが可能となっている(図2参照)。コマンドスケジューラ124は、RFMコマンド(RFMab)を発行するたびに、第2ディスカウント信号をRAAカウンタ125に出力することが可能となっている。RAAカウンタ125は、例えば、モリコントローラ120から第2ディスカウント信号が入力されるたびに、RAAカウント値を所定の値(減算値RAAMMT)だけ減算することが可能となっている(図2参照)。
 比較例では、上述したように、リフレッシュコマンド(REFab)と、RFMコマンド(RFMab)とを用いることで、RAAカウント値を所定の閾値(閾値RFMTH)以下とすることができる。これにより、ロウハンマーの発生が抑制される。
 ところで、ロウハンマー自体は、意図的に起こそうとしたときのみ生じる。そのため、新規な回路の導入をできるだけ抑え、既存の機能も利用することで、ロウハンマー対策を行うことが望ましい。そこで、本願発明者は、既存の機能も利用することでロウハンマー対策を行うことの可能な方策について以下に説明する。
<2.実施の形態>
[構成]
 図3は、本開示の一実施の形態に係るメモリコントローラ20を備えた情報処理システムの概略構成の一例を表したものである。情報処理システムは、例えば、図3に示したように、複数のイニシエータ10と、メモリコントローラ20と、DRAM30とを備えている。イニシエータ10およびDRAM30については、上述した構成となっている。
 メモリコントローラ20は、DRAM30へのアクセスを制御することが可能となっている。メモリコントローラ20は、例えば、図3に示したように、コマンド調停部21と、コマンドスケジューラ22と、RAAカウンタ23と、LPDDR-PHY(以下、単に「物理層」と称する。)24とを有している。
 メモリコントローラ20は、各イニシエータ10と通信し、各イニシエータ10からメモリアクセス要求を受信することが可能となっている。メモリアクセス要求は、例えば、ライト要求、又はリード要求である。メモリコントローラ20は、受信したメモリアクセス要求に基づき、DRAM30へのライト動作、又はDRAM30からのリード動作を制御することが可能となっている。
 メモリコントローラ20は、イニシエータ10からライト要求を受信した場合、イニシエータ10からさらに、ライト用のデータを受信することが可能となっている。メモリコントローラ20は、DRAM30にライトコマンドを発行して、イニシエータ10から受信したデータをDRAM30に送信することが可能となっている。DRAM30は、メモリコントローラ120から受信したデータを内部のメモリセルアレイに書き込むことが可能となっている。
 メモリコントローラ20は、イニシエータ10からリード要求を受信した場合、リードコマンドを発行して、DRAM30に送信することが可能となっている。DRAM30は、リードコマンドに応じてメモリセルアレイからデータを読み出し、読み出したデータをメモリコントローラ20に送信することが可能となっている。メモリコントローラ20は、DRAM30から受信したデータをイニシエータ10に送信することが可能となっている。
 メモリコントローラ20は、イニシエータ10から出力されたメモリアクセス要求に含まれる論理アドレスを、DRAM30に対応する物理アドレスに変換することが可能となっている。ここにいう物理アドレスとは、DRAM30を構成するバンク、ロウおよびカラムを指し示すアドレスであり、バンクアドレス、ロウアドレスおよびカラムアドレスのことをいう。このように、論理アドレスから物理アドレスに変換することによって、変換後のメモリアクセス要求には、DRAM30におけるバンクアドレス、ロウアドレスおよびカラムアドレスが示される。
 コマンド調停部21は、複数のイニシエータ10から得られた複数のメモリアクセス要求に示される物理アドレスに基づいて調停(アービトレーション)を行うことが可能となっている。コマンド調停部21は、調停結果に基づいて複数のメモリアクセス要求をコマンドスケジューラ22に出力することが可能となっている。
 コマンド調停部21は、例えば、各イニシエータ10から同時にメモリアクセス要求を受け付けた場合には、直前に出力したメモリアクセス要求とバンクアドレスが同一であるメモリアクセス要求の出力を抑制することが可能となっている。すなわち、コマンド調停部21は、複数のメモリアクセス要求を受け付けた場合には、直前に出力したメモリアクセス要求とバンクアドレスが異なるメモリアクセス要求を出力することが可能となっている。コマンド調停部21は、メモリアクセス要求として、ライト要求を出力する際に、メモリアクセス要求に示される識別情報によって識別されるイニシエータ10に対して、そのメモリアクセス要求に対応する書き込みデータの出力を指示することが可能となっている。
 コマンドスケジューラ22は、コマンド調停部21から出力されたメモリアクセス要求に基づいて、DRAM30に対するコマンドを発行することが可能となっている。メモリコントローラ20は、内部バッファに格納しておいた書き込みデータを、ライトコマンド発行と同期してDRAM3に出力することが可能となっている。メモリコントローラ20は、リードコマンド発行と同期して、DRAM30から読み出しデータを読み出し、内部バッファに格納することが可能となっている。
 物理層24は、メモリコントローラ20の動作クロックと同期して供給されるコマンドと、内部バッファに格納しておいた書き込みデータとを、DRAM30のメモリクロックに基づいて出力することが可能となっている。また、物理層24は、DRAM30におけるメモリクロックに同期して読み出されたデータを、メモリコントローラ20の動作クロックに同期させて内部バッファに格納することが可能となっている。
 RAAカウンタ23は、コマンドスケジューラ22におけるACTコマンドの発行回数をカウントすることが可能となっている。コマンドスケジューラ22は、例えば、ACTコマンドを発行するたびに、カウント信号をRAAカウンタ23に出力することが可能となっている。RAAカウンタ23は、例えば、コマンドスケジューラ22からカウント信号が入力されるたびに、RAAカウンタ23のカウント値(RAAカウント値)に+1を加えることが可能となっている。
 図4は、RAAカウント値の変化の様子の一例を表したものである。コマンドスケジューラ22は、周期的にリフレッシュコマンド(REFab)を発行することが可能となっている。コマンドスケジューラ22は、RAAカウント値に基づいて、ACTコマンドの発行間隔tRRDを変更することが可能となっている。コマンドスケジューラ22は、RAAカウント値が閾値TH1(第1閾値)を超えたときには、ACTコマンドの発行間隔tRRDをより長い値に変更することが可能となっている。コマンドスケジューラ22は、RAAカウント値が閾値TH1よりも小さな閾値TH2(第2閾値)を下回ったときには、変更した値を元の値に戻すことが可能となっている。
 コマンドスケジューラ22は、リフレッシュコマンド(REFab)を発行するたびに、第1ディスカウント信号をRAAカウンタ23に出力することが可能となっている。RAAカウンタ23は、例えば、コマンドスケジューラ22から第1ディスカウント信号が入力されるたびに、RAAカウント値を所定の値(減算値RAAIMT)だけ減算することが可能となっている(図4参照)。コマンドスケジューラ22は、RAAカウント値が閾値TH1を超えると、RAAカウント値が閾値TH2を下回るまでの間(ACT期間抑制期間Tact)、ACTコマンドの発行間隔tRRDの値を当初の値よりも長い値のまま維持することが可能となっている(図4参照)。このように、本実施の形態では、既存のパラメータの変更により、RAAカウント値の増加が抑制される。
 図5は、ACTコマンドの発行間隔tRRDの延長について説明するための図である。比較例では、コマンドスケジューラ124は、発行間隔tRRDを当初の設定値のままとしている。一方で、実施例では、コマンドスケジューラ22は、発行間隔tRRDを、例えば、以下の式で求められる値(tRRD_new)に変更することが可能となっている。
tRRD_new
 =tREFle-tRAS-tRPpb-tRFCab)/RAAIMT
tRRD_new:変更後のACTコマンドの発行間隔
tREFle:リフレッシュ周期
tRAS:バンクを開いてから閉じるまでの待ち時間
tRPpb:バンクを閉じてから開くまでの待ち時間
tRFCab:リフレッシュサイクル期間
[効果]
 次に、本実施の形態にかかるメモリコントローラ20の効果について説明する。
 本実施の形態では、RAAカウント値が閾値TH1を超えたときには、発行間隔tRRDがより長い値に変更され、RAAカウント値が閾値TH2を下回ったときには、変更した値が元の値に戻される。このように、既存のパラメータの変更により、カウント値の増加が抑制される。従って、RFM要求を発行する回路を用いなくても、ロウハンマー対策を行うことができる。
 本実施の形態では、周期的にリフレッシュコマンドが発行され、それにより、RAAカウント値が所定の値(減算値RAAIMT)だけ減算される。これにより、RAAカウント値の増加が定期的に抑制される。従って、RFM要求を発行する回路を用いなくても、ロウハンマー対策を行うことができる。
<3.変形例>
 以下、上記実施の形態に係るメモリコントローラ20の変形例について説明する。以下の変形例では、上記実施の形態と共通の構成に同一の符号を付して説明する。
[変形例A]
 上記実施の形態において、コマンドスケジューラ22は、RAAカウント値が閾値TH1(第1閾値)を超えたときには、例えば、図6に示したように、4つのACTコマンドが存在してもよい期間tFAWをより長い値(tFAW_new)に変更することが可能となっていてもよい。コマンドスケジューラ22は、さらに、RAAカウント値が閾値TH1を超えると、RAAカウント値が閾値TH2を下回るまでの間(ACT期間抑制期間Tact)、期間tFAWの値を当初の値よりも長い値(tFAW_new)のまま維持することが可能となっていてもよい。このとき、コマンドスケジューラ22は、RAAカウント値が閾値TH1よりも小さな閾値TH2(第2閾値)を下回ったときには、変更した値を元の値に戻すことが可能となっている。
 このように、本変形例では、上記実施の形態と同様、既存のパラメータの変更により、カウント値の増加が抑制される。従って、RFM要求を発行する回路を用いなくても、ロウハンマー対策を行うことができる。
[変形例B]
 上記実施の形態において、コマンドスケジューラ22は、RAAカウント値が閾値TH1(第1閾値)を超えたときには、例えば、図7に示したように、GDDR6(graphics double data rate type six synchronous dynamic random-access memory)規格において32個のACTコマンドが存在していてもよい期間t32AWをより長い値(t32AW_new)に変更することが可能となっていてもよい。コマンドスケジューラ22は、さらに、RAAカウント値が閾値TH1を超えると、RAAカウント値が閾値TH2を下回るまでの間(ACT期間抑制期間Tact)、期間t32AWの値を当初の値よりも長い値(t32AW_new)のまま維持することが可能となっていてもよい。このとき、コマンドスケジューラ22は、RAAカウント値が閾値TH1よりも小さな閾値TH2(第2閾値)を下回ったときには、変更した値を元の値に戻すことが可能となっている。
 このように、本変形例では、上記実施の形態と同様、既存のパラメータの変更により、カウント値の増加が抑制される。従って、RFM要求を発行する回路を用いなくても、ロウハンマー対策を行うことができる。
[変形例C]
 上記実施の形態およびその変形例において、コマンドスケジューラ124は、複数のイニシエータ10からメモリアクセス要求を取得したときに、イニシエータ10ごとに優先度を付与することが可能となっていてもよい。このとき、コマンドスケジューラ124は、優先度に応じた閾値TH1,TH2を有しており、付与した優先度に応じた閾値TH1,TH2を用いて、RAAカウント値を制御することが可能となっていてもよい。このようにした場合には、イニシエータ10の特徴に応じたロウハンマー対策を行うことができる。
[変形例D]
 上記実施の形態およびその変形例において、コマンドスケジューラ124は、イニシエータ10からメモリアクセス要求を取得したときに、イニシエータ10ごとに付与した閾値TH1,TH2を用いて、RAAカウント値を制御することが可能となっていてもよい。このようにした場合には、イニシエータ10の特徴に応じたロウハンマー対策を行うことができる。
 以上、複数の実施の形態およびそれらの変形例を挙げて本技術を説明したが、本開示は上記実施の形態等に限定されるものではなく、種々変形が可能である。なお、本明細書中に記載された効果は、あくまで例示である。本開示の効果は、本明細書中に記載された効果に限定されるものではない。本開示が、本明細書中に記載された効果以外の効果を持っていてもよい。
 また、例えば、本開示は以下のような構成を取ることができる。
(1)
 DRAM(Dynamic Random Access Memory)へのアクセスを制御することの可能なメモリコントローラであって、
 ACTコマンドの発行回数をカウントすることの可能なRAA(Rolling Accumulated ACT)カウンタと、
 前記RAAカウンタのカウント値が第1閾値を超えたときには、ACTコマンドの発行間隔tRRD、4つのACTコマンドが存在してもよい期間tFAW、もしくは、GDDR6(graphics double data rate type six synchronous dynamic random-access memory)規格において32個のACTコマンドが存在していてもよい期間t32AWをより長い値に変更し、前記RAAカウンタのカウント値が前記第1閾値よりも小さな第2閾値を下回ったときには、変更した値を元の値に戻すことの可能なコマンドスケジューラと
 を備えた
 メモリコントローラ。
(2)
 前記コマンドスケジューラは、周期的にリフレッシュコマンドを発行し、それにより、前記カウント値を所定の値だけ減算することが可能となっている
 (1)に記載のメモリコントローラ。
(3)
 DRAM(Dynamic Random Access Memory)へのアクセスを制御するメモリ制御方法であって、
 ACTコマンドの発行回数をカウントするRAA(Rolling Accumulated ACT)カウンタのカウント値が第1閾値を超えたときには、ACTコマンドの発行間隔tRRD、4つのACTコマンドが存在してもよい期間tFAW、もしくは、GDDR6(graphics double data rate type six synchronous dynamic random-access memory)規格において32個のACTコマンドが存在していてもよい期間t32AWをより長い値に変更することと、
 前記RAAカウンタのカウント値が前記第1閾値よりも小さな第2閾値を下回ったときには、変更した値を元の値に戻すことと
 を含む
 メモリ制御方法。
(4)
 周期的にリフレッシュコマンドを発行し、それにより、前記カウント値を所定の値だけ減算することを更に含む
 (3)に記載のメモリ制御方法。
 本開示の一実施形態に係るメモリコントローラおよびメモリ制御方法では、RAAカウンタのカウント値が第1閾値を超えたときには、上記の3つのパラメータのうちのいずれかがより長い値に変更され、RAAカウンタのカウント値が第1閾値よりも小さな第2閾値を下回ったときには、変更した値が元の値に戻される。このように、既存のパラメータの変更により、カウント値の増加が抑制される。従って、RFMコマンドを発行する回路を用いなくても、ロウハンマー対策を行うことができる。なお、本開示の効果は、ここに記載された効果に必ずしも限定されず、本明細書中に記載されたいずれの効果であってもよい。
 本出願は、日本国特許庁において2022年3月8日に出願された日本特許出願番号第2022-035099号を基礎として優先権を主張するものであり、この出願のすべての内容を参照によって本出願に援用する。
 当業者であれば、設計上の要件や他の要因に応じて、種々の修正、コンビネーション、サブコンビネーション、および変更を想到し得るが、それらは添付の請求の範囲やその均等物の範囲に含まれるものであることが理解される。

Claims (4)

  1.  DRAM(Dynamic Random Access Memory)へのアクセスを制御することの可能なメモリコントローラであって、
     ACTコマンドの発行回数をカウントすることの可能なRAA(Rolling Accumulated ACT)カウンタと、
     前記RAAカウンタのカウント値が第1閾値を超えたときには、ACTコマンドの発行間隔tRRD、4つのACTコマンドが存在してもよい期間tFAW、もしくは、GDDR6(graphics double data rate type six synchronous dynamic random-access memory)規格において32個のACTコマンドが存在していてもよい期間t32AWをより長い値に変更し、前記RAAカウンタのカウント値が前記第1閾値よりも小さな第2閾値を下回ったときには、変更した値を元の値に戻すことの可能なコマンドスケジューラと
     を備えた
     メモリコントローラ。
  2.  前記コマンドスケジューラは、周期的にリフレッシュコマンドを発行し、それにより、前記カウント値を所定の値だけ減算することが可能となっている
     請求項1に記載のメモリコントローラ。
  3.  DRAM(Dynamic Random Access Memory)へのアクセスを制御するメモリ制御方法であって、
     ACTコマンドの発行回数をカウントするRAA(Rolling Accumulated ACT)カウンタのカウント値が第1閾値を超えたときには、ACTコマンドの発行間隔tRRD、4つのACTコマンドが存在してもよい期間tFAW、もしくは、GDDR6(graphics double data rate type six synchronous dynamic random-access memory)規格において32個のACTコマンドが存在していてもよい期間t32AWをより長い値に変更することと、
     前記RAAカウンタのカウント値が前記第1閾値よりも小さな第2閾値を下回ったときには、変更した値を元の値に戻すことと
     を含む
     メモリ制御方法。
  4.  周期的にリフレッシュコマンドを発行し、それにより、前記カウント値を所定の値だけ減算することを更に含む
     請求項3に記載のメモリ制御方法。
PCT/JP2023/007482 2022-03-08 2023-03-01 メモリコントローラおよびメモリ制御方法 WO2023171474A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2022035099A JP2023130672A (ja) 2022-03-08 2022-03-08 メモリコントローラおよびメモリ制御方法
JP2022-035099 2022-03-08

Publications (1)

Publication Number Publication Date
WO2023171474A1 true WO2023171474A1 (ja) 2023-09-14

Family

ID=87935189

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2023/007482 WO2023171474A1 (ja) 2022-03-08 2023-03-01 メモリコントローラおよびメモリ制御方法

Country Status (2)

Country Link
JP (1) JP2023130672A (ja)
WO (1) WO2023171474A1 (ja)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0319052A (ja) * 1989-06-16 1991-01-28 Hitachi Ltd 記憶装置の動作制御方式
JP2002189628A (ja) * 2000-09-29 2002-07-05 Intel Corp メモリー素子の電力管理方法および装置
JP2007199841A (ja) * 2006-01-24 2007-08-09 Seiko Epson Corp 電子機器のコントローラ、バス制御装置
JP2015133119A (ja) * 2014-01-15 2015-07-23 三星電子株式会社Samsung Electronics Co.,Ltd. メモリローに対するアクティベーションをトラッキングする方法及びそのためのメモリコントローラ
JP2018081642A (ja) * 2016-11-18 2018-05-24 キヤノン株式会社 メモリコントローラおよび方法
US20220068361A1 (en) * 2020-08-27 2022-03-03 Micron Technology, Inc. Apparatuses and methods for control of refresh operations

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0319052A (ja) * 1989-06-16 1991-01-28 Hitachi Ltd 記憶装置の動作制御方式
JP2002189628A (ja) * 2000-09-29 2002-07-05 Intel Corp メモリー素子の電力管理方法および装置
JP2007199841A (ja) * 2006-01-24 2007-08-09 Seiko Epson Corp 電子機器のコントローラ、バス制御装置
JP2015133119A (ja) * 2014-01-15 2015-07-23 三星電子株式会社Samsung Electronics Co.,Ltd. メモリローに対するアクティベーションをトラッキングする方法及びそのためのメモリコントローラ
JP2018081642A (ja) * 2016-11-18 2018-05-24 キヤノン株式会社 メモリコントローラおよび方法
US20220068361A1 (en) * 2020-08-27 2022-03-03 Micron Technology, Inc. Apparatuses and methods for control of refresh operations

Also Published As

Publication number Publication date
JP2023130672A (ja) 2023-09-21

Similar Documents

Publication Publication Date Title
US9293188B2 (en) Memory and memory controller for high reliability operation and method
US9281046B2 (en) Data processor with memory controller for high reliability operation and method
CN1822224B (zh) 能利用缓冲器刷新数据的存储器装置及其刷新方法
CN106856098B (zh) 一种用于DRAM或eDRAM刷新的装置及其方法
CN107257964B (zh) Dram电路、计算机系统和访问dram电路的方法
US6859407B1 (en) Memory with auto refresh to designated banks
JP2021530808A (ja) メモリの複数のランクを有するシステムのダイナミックランダムアクセスメモリリフレッシュの構成
CN113900818A (zh) Ddr存储器数据读写调度方法和装置
WO2023171474A1 (ja) メモリコントローラおよびメモリ制御方法
US20230410875A1 (en) Memory device and defense method thereof
JP4108237B2 (ja) メモリ制御装置
JP7420472B2 (ja) ページサイズ認識スケジューリング方法及び非一時的なコンピュータ読取可能記録媒体
CN113946435A (zh) 内存管理技术及计算机系统
CN112965816B (zh) 内存管理技术及计算机系统
US20240055037A1 (en) Pseudo-static random access memory
KR102343550B1 (ko) 스몰 액티브 커맨드를 이용한 메모리 시스템
CN112259141B (zh) 动态随机存取存储器的刷新方法及内存控制器、电子装置
KR102381193B1 (ko) 메모리 버퍼 기반 메모리 신뢰성 개선 방법 및 장치
US20240071461A1 (en) Adaptive Memory Registers
TW202407702A (zh) 虛擬靜態隨機存取記憶體
JPS63229694A (ja) リフレツシユコントロ−ラ
KR20230082529A (ko) 리프레쉬 동작에서 파워 노이즈를 감소시킨 메모리 장치 및 그 동작방법
JP4463019B2 (ja) メモリ制御装置
JP3867034B2 (ja) メモリ制御装置
JP2023068341A (ja) メモリコントローラ、メモリコントローラの制御方法およびプログラム

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: 23766652

Country of ref document: EP

Kind code of ref document: A1