JP7414477B2 - メモリコントローラ、メモリコントローラで実施される方法および装置 - Google Patents
メモリコントローラ、メモリコントローラで実施される方法および装置 Download PDFInfo
- Publication number
- JP7414477B2 JP7414477B2 JP2019203509A JP2019203509A JP7414477B2 JP 7414477 B2 JP7414477 B2 JP 7414477B2 JP 2019203509 A JP2019203509 A JP 2019203509A JP 2019203509 A JP2019203509 A JP 2019203509A JP 7414477 B2 JP7414477 B2 JP 7414477B2
- Authority
- JP
- Japan
- Prior art keywords
- memory access
- access request
- dram
- issuing
- command
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 8
- 230000006870 function Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 10
- 238000010926 purge Methods 0.000 description 9
- 238000003384 imaging method Methods 0.000 description 8
- 230000008859 change Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 239000000872 buffer Substances 0.000 description 2
- 230000008707 rearrangement Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- COCAUCFPFHUGAA-MGNBDDOMSA-N n-[3-[(1s,7s)-5-amino-4-thia-6-azabicyclo[5.1.0]oct-5-en-7-yl]-4-fluorophenyl]-5-chloropyridine-2-carboxamide Chemical compound C=1C=C(F)C([C@@]23N=C(SCC[C@@H]2C3)N)=CC=1NC(=O)C1=CC=C(Cl)C=N1 COCAUCFPFHUGAA-MGNBDDOMSA-N 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1642—Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
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)
- Memory System (AREA)
- Dram (AREA)
Description
(a)リクエスト種別フィールド
当該エントリに格納したメモリアクセス要求の種別を示す。
WRITE メモリアクセス要求がライト(データの書込み)
READ メモリアクセス要求がリード(データの読込み)
(b)対象バンクフィールド
当該エントリに格納したメモリアクセス要求がアクセスするバンク番号
(c)対象ページフィールド
当該エントリに格納したメモリアクセス要求がアクセスするページ番号
(d)DRAMコマンド数フィールド
当該エントリに格納したメモリアクセス要求により実行されるDRAMコマンドの数
(e)インデックスフィールド
当該エントリに格納したメモリアクセス要求により実行されるDRAMコマンドのうち、次に発行するDRAMコマンドの番号(0、…、DRAMコマンド数-1)を示す
(a)エントリ番号フィールド
制御対象とするメモリアクセス要求格納部101のエントリを示す。
(b)パージフィールド
エントリ番号フィールドが示すメモリアクセス要求格納部101のエントリをパージすることを示す
1’b1:パージ、1’b0:バージ動作無し
(c)更新フィールド
エントリ番号フィールドが示すメモリアクセス要求格納部101のエントリを更新することを示す
1’b1:インデックスフィールドの値を+1、1’b0:更新動作無し
(a)cmd 発行したDRAMコマンド
(b)bank 発行したDRAMコマンドの対象バンク
(c)page 発行したDRAMコマンドの対象ページ
(a)ref(k)
バンクkが、リフレッシュ動作中であるか否かを示す
1’b1:リフレッシュ動作中
1’b0:非リフレッシュ動作中
(b)pcmd
直前に発行したDRAMコマンドのリクエスト種別
WRITE DRAMコマンドはデータの書込み
READ DRAMコマンドはデータの読込み
(c)padd(k)
バンクkがオープンしているページアドレス
(d)bst(k)
バンクkの状態を示す
1’b1:バンクkはページをオープンしている状態
1’b0:バンクkはページをクローズしている状態
(cmd,bank,page)==(REF,0,-)
に変化する。ここで、「-」はdon’t careを表すものとする。この変化に基づき、DRAM状態管理部1022は、バンク0に対するリフレッシュ動作の開始を認識する。リフレッシュ動作の開始を認識したことでref(0)に1’b1を設定する。
(cmd,bank,page)==(WR,0,0)
に変化する。この変化に依り、DRAM状態管理部1022はWRコマンドの発行を認識し、pcmdに、WRコマンドのリクエスト種別であるWRITEを設定する。
(a)padd(k)にpを設定
(b)bst(k)に1’b1(有効)を設定
(a)bst(k)に1’b0を設定
なお、padd(k)の値は変化しない。
(cmd,bank,page)==(ACT,0,5)
に変化する。この変化に基づき、DRAM状態管理部1022は、次の動作を実施する。
(a)padd(0)に5を設定
(b)bst(0)に1’b1を設定
(cmd,bank,page)==(PRE,0,5)
に変化する。この変化に基づき、DRAM状態管理部1022は、次の動作を実施する。
(a)bst(0)に1’b0を設定
(A)決定対象の格納済メモリアクセス要求に対応するDRAMコマンドの種別と、直前に発行されたDRAMコマンドの種別と、の異同、
(B)決定対象の格納済メモリアクセス要求が対象とするバンクがリフレッシュ動作中であるか否か、
(C)決定対象の格納済メモリアクセス要求が対象とするページがオープンか否か、
[条件A]
・メモリアクセス要求発行順決定部102の選択基準は以下の通りとする。
(A)対象バンクはリフレッシュ動作中ではない
(B)直前に発行したDRAMリクエストと同一種別のDRAMリクエスト
(C)対象ページはオープン状態
・基準間の優先度は(A)>(B)>(C)とする。
・メモリアクセス要求格納部101の状態は表2の状態とする。
・DRAM状態は以下の通りとする。
(a)
ref(0)==1’b1 バンク0はリフレッシュ動作中
ref(1)==1’b0 バンク1は非リフレッシュ動作中
ref(2)==1’b0 バンク2は非リフレッシュ動作中
(b)
pcmd==WRITE 直前に発行したDRAMコマンドはWRITE
(c)
padd(1)==0 バンク1はページ0が対象
padd(2)==1 バンク2はページ1が対象
(d)
bst(1)==1 バンク1はページをオープンしている状態
bst(2)==1 バンク2はページをオープンしている状態
(a)
ref(0)==1’b1 バンク0はリフレッシュ動作中
ref(1)==1’b0 バンク1は非リフレッシュ動作中
ref(2)==1’b0 バンク2は非リフレッシュ動作中
(b)
pcmd==WRITE 直前に発行したDRAMコマンドはWRITE
(c)
padd(1)==0 バンク1はページ0が対象
padd(2)==1 バンク2はページ1が対象
(d)
bst(1)==1 バンク1はページをオープンしている状態
bst(2)==1 バンク2はページをオープンしている状態
・メモリアクセス要求発行順決定部102の選択基準は以下の通りとする。
(A)対象バンクはリフレッシュ動作中ではない
(B)直前に発行したDRAMリクエストと同一種別のDRAMリクエスト
(C)対象ページはオープン状態
・基準間の優先度は(A)>(B)>(C)とする。
・メモリアクセス要求格納部101の状態は表2の状態とする。
・DRAM状態は以下の通りとする。
(a)
ref(0)==1’b1 バンク0はリフレッシュ動作中
ref(1)==1’b0 バンク1は非リフレッシュ動作中
ref(2)==1’b0 バンク2は非リフレッシュ動作中
(b)
pcmd==WRITE 直前に発行したDRAMコマンドはWRITE
(c)
padd(1)==1 バンク1はページ1が対象
padd(2)==1 バンク2はページ1が対象
(d)
bst(1)==1 バンク1はページをオープンしている状態
bst(2)==1 バンク2はページをオープンしている状態
(a)
ref(0)==1’b1 バンク0はリフレッシュ動作中
ref(1)==1’b0 バンク1は非リフレッシュ動作中
ref(2)==1’b0 バンク2は非リフレッシュ動作中
(b)
pcmd==WRITE 直前に発行したDRAMコマンドはWRITE
(c)
padd(1)==1 バンク1はページ1が対象
padd(2)==1 バンク2はページ1が対象
(d)
bst(1)==1 バンク1はページをオープンしている状態
bst(2)==1 バンク2はページをオープンしている状態
Claims (11)
- DRAMに接続されたメモリコントローラであって、
前記DRAMに対するメモリアクセス要求を格納する格納手段と、
前記格納手段に格納されているメモリアクセス要求の発行順を所定の基準に基づいて決定する決定手段と、
前記決定手段により決定された発行順に基づき前記DRAMへコマンドを発行する発行手段と、
前記発行手段が第一メモリアクセス要求のコマンドを前記DRAMへ発行する際に、前記第一メモリアクセス要求の次に同じバンクにコマンドを発行する第二メモリアクセス要求を、前記所定の基準に基づき決定された発行順にしたがって選択し、前記第一メモリアクセス要求と前記第二メモリアクセス要求とが同じページを対象とするか否かを判定し、前記第一メモリアクセス要求の次に同じバンクにコマンドを発行するメモリアクセス要求がなかった場合、予め決められているページ制御に基づいて比較結果を出力する判定手段と、を備え、
前記発行手段は、前記判定手段が同じページを対象とすると判定した場合、オートプリチャージなしで前記第一メモリアクセス要求のコマンドを発行するメモリコントローラ。 - 前記所定の基準は、メモリアクセス要求の優先順位および前記DRAMの状態のうちの少なくともひとつを含む請求項1に記載のメモリコントローラ。
- 前記決定手段は、少なくとも前記DRAMの状態に基づいて発行順を決定し、
前記DRAMの状態は、
(1)決定対象のメモリアクセス要求に対応するコマンドの種別と、直前に発行されたコマンドの種別と、の異同、
(2)決定対象のメモリアクセス要求が対象とするバンクがリフレッシュ動作中であるか否か、
(3)決定対象のメモリアクセス要求が対象とするページがオープンか否か、
のうちの少なくともひとつを含む請求項2に記載のメモリコントローラ。 - 前記判定手段は、前記第一メモリアクセス要求が対象とするバンクと同じバンクを対象とする複数のメモリアクセス要求が前記格納手段に格納されている場合、当該格納されている複数のメモリアクセス要求のなかから、前記第二メモリアクセス要求を前記所定の基準に基づき決定された発行順にしたがって選択する請求項1から3のいずれか一項に記載のメモリコントローラ。
- 前記発行手段は、前記判定手段が同じページを対象としないと判定した場合、オートプリチャージ付きで前記第一メモリアクセス要求のコマンドを発行する請求項1から4のいずれか一項に記載のメモリコントローラ。
- オートプリチャージ付きのコマンドは、リードオートプリチャージまたはライトオートプリチャージである請求項5に記載のメモリコントローラ。
- 前記決定手段は、前記判定手段における判定とは独立して発行順を決定する請求項1から6のいずれか一項に記載のメモリコントローラ。
- 前記格納手段は、それぞれがメモリアクセス要求を格納するよう構成された複数のエントリを含み、
前記格納手段は、任意のエントリからメモリアクセス要求を読み出し可能に構成される請求項1から7のいずれか一項に記載のメモリコントローラ。 - 前記決定手段により決定された発行順は、前記格納手段へのメモリアクセス要求の登録順とは異なる請求項1から8のいずれか一項に記載のメモリコントローラ。
- DRAMに接続されたメモリコントローラで実施される方法であって、前記メモリコントローラは前記DRAMに対するメモリアクセス要求を格納する格納手段を備え、前記方法は、
前記格納手段に格納されているメモリアクセス要求の発行順を所定の基準に基づいて決定することと、
決定された発行順に基づき前記DRAMへコマンドを発行することと、
第一メモリアクセス要求のコマンドを前記DRAMへ発行する際に、前記第一メモリアクセス要求の次に同じバンクにコマンドを発行する第二メモリアクセス要求を、前記所定の基準に基づき決定された発行順にしたがって選択し、前記第一メモリアクセス要求と前記第二メモリアクセス要求とが同じページを対象とするか否かを判定し、前記第一メモリアクセス要求の次に同じバンクにコマンドを発行するメモリアクセス要求がなかった場合、予め決められているページ制御に基づいて比較結果を出力することと、を含み、
前記発行することは、同じページを対象とすると判定された場合、オートプリチャージなしで前記第一メモリアクセス要求のコマンドを発行することを含む方法。 - DRAMと、
前記DRAMに接続されたメモリコントローラと、を備え、
前記メモリコントローラは、
前記DRAMに対するメモリアクセス要求を格納する格納手段と、
前記格納手段に格納されているメモリアクセス要求の発行順を所定の基準に基づいて決定する決定手段と、
前記決定手段により決定された発行順に基づき前記DRAMへコマンドを発行する発行手段と、
前記発行手段が第一メモリアクセス要求のコマンドを前記DRAMへ発行する際に、前記第一メモリアクセス要求の次に同じバンクにコマンドを発行する第二メモリアクセス要求を、前記所定の基準に基づき決定された発行順にしたがって選択し、前記第一メモリアクセス要求と前記第二メモリアクセス要求とが同じページを対象とするか否かを判定し、前記第一メモリアクセス要求の次に同じバンクにコマンドを発行するメモリアクセス要求がなかった場合、予め決められているページ制御に基づいて比較結果を出力する判定手段と、を備え、
前記発行手段は、前記判定手段が同じページを対象とすると判定した場合、オートプリチャージなしで前記第一メモリアクセス要求のコマンドを発行する装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019203509A JP7414477B2 (ja) | 2019-11-08 | 2019-11-08 | メモリコントローラ、メモリコントローラで実施される方法および装置 |
US17/072,400 US20210141567A1 (en) | 2019-11-08 | 2020-10-16 | Memory controller, method executed by memory controller, and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019203509A JP7414477B2 (ja) | 2019-11-08 | 2019-11-08 | メモリコントローラ、メモリコントローラで実施される方法および装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2021077121A JP2021077121A (ja) | 2021-05-20 |
JP7414477B2 true JP7414477B2 (ja) | 2024-01-16 |
Family
ID=75846570
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019203509A Active JP7414477B2 (ja) | 2019-11-08 | 2019-11-08 | メモリコントローラ、メモリコントローラで実施される方法および装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20210141567A1 (ja) |
JP (1) | JP7414477B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022118548A (ja) * | 2021-02-02 | 2022-08-15 | キヤノン株式会社 | メモリコントローラ及びその制御方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010003067A (ja) | 2008-06-19 | 2010-01-07 | Sony Corp | メモリシステムおよびそのアクセス制御方法、並びにプログラム |
JP2014154119A (ja) | 2013-02-14 | 2014-08-25 | Ricoh Co Ltd | メモリ制御装置及び半導体記憶装置 |
-
2019
- 2019-11-08 JP JP2019203509A patent/JP7414477B2/ja active Active
-
2020
- 2020-10-16 US US17/072,400 patent/US20210141567A1/en active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010003067A (ja) | 2008-06-19 | 2010-01-07 | Sony Corp | メモリシステムおよびそのアクセス制御方法、並びにプログラム |
JP2014154119A (ja) | 2013-02-14 | 2014-08-25 | Ricoh Co Ltd | メモリ制御装置及び半導体記憶装置 |
Also Published As
Publication number | Publication date |
---|---|
JP2021077121A (ja) | 2021-05-20 |
US20210141567A1 (en) | 2021-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7209405B2 (en) | Memory device and method having multiple internal data buses and memory bank interleaving | |
US8510480B2 (en) | Memory system and method having uni-directional data buses | |
US7707328B2 (en) | Memory access control circuit | |
US6820142B2 (en) | Token based DMA | |
US7370161B2 (en) | Bank arbiter system which grants access based on the count of access requests | |
JP2002342159A (ja) | メモリコントローラ | |
JPH02223091A (ja) | コンピュータメモリシステム | |
US20060059320A1 (en) | Memory control device | |
JP2024038365A (ja) | メモリコントローラおよびメモリコントローラで実施される方法 | |
JP7414477B2 (ja) | メモリコントローラ、メモリコントローラで実施される方法および装置 | |
US9620215B2 (en) | Efficiently accessing shared memory by scheduling multiple access requests transferable in bank interleave mode and continuous mode | |
KR20080079187A (ko) | 메모리 컨트롤러, 반도체 메모리의 액세스 제어 방법 및시스템 | |
US10423548B2 (en) | Memory controller, control method for the memory controller, and control method for memory | |
US6374244B1 (en) | Data transfer device | |
TW491970B (en) | Page collector for improving performance of a memory | |
JP2007018222A (ja) | メモリアクセス制御回路 | |
US11694735B2 (en) | Memory controller and method of controlling the memory controller | |
US7376803B1 (en) | Page stream sorter for DRAM systems | |
KR100607987B1 (ko) | 명령어 스케줄링을 수행하는 메모리 제어장치 및 방법 | |
EP4323877A1 (en) | Adaptive memory access management | |
JP2010061498A (ja) | メモリ制御装置、半導体試験装置およびメモリ制御方法 | |
JP2000029777A (ja) | デ―タ転送装置 | |
JP3314395B2 (ja) | メモリ制御装置 | |
JP2021190002A (ja) | 情報処理装置及びプログラム | |
US20050140799A1 (en) | Memory access control unit and network camera apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20210103 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210113 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20221108 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20230913 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230919 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20231117 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20231201 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20231228 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 7414477 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |