JP6992750B2 - メモリコントローラ、メモリシステムおよび情報処理システム - Google Patents
メモリコントローラ、メモリシステムおよび情報処理システム Download PDFInfo
- Publication number
- JP6992750B2 JP6992750B2 JP2018524909A JP2018524909A JP6992750B2 JP 6992750 B2 JP6992750 B2 JP 6992750B2 JP 2018524909 A JP2018524909 A JP 2018524909A JP 2018524909 A JP2018524909 A JP 2018524909A JP 6992750 B2 JP6992750 B2 JP 6992750B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- write
- control unit
- read
- request
- 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
- 230000015654 memory Effects 0.000 title claims description 437
- 230000010365 information processing Effects 0.000 title claims description 10
- 230000005540 biological transmission Effects 0.000 claims description 16
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 claims description 13
- 230000000694 effects Effects 0.000 claims description 9
- 238000000034 method Methods 0.000 description 29
- 238000010586 diagram Methods 0.000 description 10
- 230000000052 comparative effect Effects 0.000 description 8
- 238000001514 detection method Methods 0.000 description 5
- 230000003111 delayed effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001151 other effect 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- 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
-
- 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/0604—Improving or facilitating administration, e.g. storage management
-
- 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/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)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Description
1.第1の実施の形態(ライトデータ準備中のメモリダイに対するリードコマンドに高い優先度を付与する例)
2.第2の実施の形態(ライトデータ準備完了のメモリダイに対するリードコマンドに低い優先度を付与する例)
[情報処理システムの構成]
図1は、本技術の実施の形態における情報処理システムの一構成例を示す図である。この情報処理システムは、ホストコンピュータ100と、メモリコントローラ200と、メモリ300とから構成される。メモリコントローラ200およびメモリ300はメモリシステム400を構成する。
図2は、本技術の実施の形態におけるメモリコントローラ200の一構成例を示す図である。このメモリコントローラ200は、ストレージインターフェース制御部210と、プロセッサ230と、RAM240と、メモリ制御エンジン201とを備え、これらの間はI/Oバス220によって相互に接続される。
図6は、本技術の第1の実施の形態のリードコマンド選択部254-1によるリードコマンドに対する優先度の付与規則例を示す図である。
図8は、本技術の第1の実施の形態におけるメモリコントローラ200の動作タイミングを説明するための比較例である。この例では、ホストコンピュータ100から、メモリダイ#1に対するライトコマンドC1、メモリダイ#2に対するリードコマンドC2、メモリダイ#1に対するリードコマンドC3の順に、各コマンドが発行された例を示している。
上述の第1の実施の形態では、ライトデータが準備中のメモリダイにおける後続のリードアクセスを優先して行うことを想定した。この第2の実施の形態では、これに加えて、ライトデータの準備が完了している状態であれば、逆に後続のリードアクセスの優先度を低く設定することを想定する。なお、情報処理システムとしての全体構成は上述の第1の実施の形態と同様であるため、詳細な説明は省略する。
図10は、本技術の第2の実施の形態におけるメモリ制御エンジン202の信号線の一例を示す図である。この第2の実施の形態のメモリ制御エンジン202では、メモリ制御部250-2からメモリ制御部250-1に対して、信号「data_ready1」および信号「data_ready2」を供給する点において、上述の第1の実施の形態と異なる。その他の点については、図3により説明したメモリ制御エンジン201と同様である。
図13は、本技術の第2の実施の形態のリードコマンド選択部254-1によるリードコマンドに対する優先度の付与規則例を示す図である。
図14は、本技術の第2の実施の形態におけるメモリコントローラ200の動作タイミングを説明するための比較例である。この例では、ホストコンピュータ100から、メモリダイ#1に対するライトコマンドC4、メモリダイ#1に対するリードコマンドC5、メモリダイ#2に対するリードコマンドC6の順に、各コマンドが発行された例を示している。また、ライトコマンドC4の前には、メモリダイ#1および#2は他のリクエストによって既にビジー状態になっていることを想定する。
(1)コンピュータからのライトコマンドに基づいて複数のメモリのいずれかに対するライトリクエストを生成するメモリライト制御部と、
前記ライトリクエストに係るライトデータの前記メモリライト制御部におけるデータ処理状態に応じた優先度によって前記複数のメモリのいずれかに対するリードリクエストを前記コンピュータからのリードコマンドに基づいて生成するメモリリード制御部と
を具備するメモリコントローラ。
(2)前記メモリライト制御部は、
前記ライトデータについてエラー訂正コードを生成するエラー訂正コード生成部と、
前記複数のメモリのそれぞれに対する前記ライトデータについて前記エラー訂正コードが生成中であるか否かを示すビジー信号を前記データ処理状態として生成するビジー信号生成部とを備え、
前記メモリリード制御部は、前記複数のメモリのうち前記ビジー信号が前記エラー訂正コードの生成中である旨を示しているものの前記優先度を高く設定する
前記(1)に記載のメモリコントローラ。
(3)前記メモリライト制御部は、前記エラー訂正コードが生成された前記ライトデータを保持するデータバッファと、
前記複数のメモリのそれぞれに対する前記ライトデータについて前記エラー訂正コードの生成が完了して前記データバッファに準備されているか否かを示すレディ信号を前記データ処理状態として生成するレディ信号生成部とをさらに備え、
前記メモリリード制御部は、前記複数のメモリのうち前記エラー訂正コードが生成完了している旨を前記レディ信号が示しているものの前記優先度を低く設定する
前記(2)に記載のメモリコントローラ。
(4)前記メモリリード制御部は、
前記コンピュータからのリードコマンドを保持するコマンドキューと、
前記複数のメモリのそれぞれについて前記ライトリクエストに係るライトデータの前記メモリライト制御部における前記データ処理状態に応じた前記優先度を設定してその優先度に従って前記コマンドキューから前記複数のメモリのいずれかに対するリードコマンドを選択するリードコマンド選択部と、
前記選択されたリードコマンドに基づいて前記複数のメモリのいずれかに対してリードリクエストおよびアドレスを生成して送信するメモリリクエストアドレス送信部とを備える
前記(1)から(3)のいずれかに記載のメモリコントローラ。
(5)複数のメモリと、
コンピュータからのライトコマンドに基づいて前記複数のメモリのいずれかに対するライトリクエストを生成するメモリライト制御部と、
前記ライトリクエストに係るライトデータの前記メモリライト制御部におけるデータ処理状態に応じた優先度によって前記複数のメモリのいずれかに対するリードリクエストを前記コンピュータからのリードコマンドに基づいて生成するメモリリード制御部と
を具備するメモリシステム。
(6)複数のメモリと、
コンピュータと、
前記コンピュータからのライトコマンドに基づいて前記複数のメモリのいずれかに対するライトリクエストを生成するメモリライト制御部と、
前記ライトリクエストに係るライトデータの前記メモリライト制御部におけるデータ処理状態に応じた優先度によって前記複数のメモリのいずれかに対するリードリクエストを前記コンピュータからのリードコマンドに基づいて生成するメモリリード制御部と
を具備する情報処理システム。
200 メモリコントローラ
201、202 メモリ制御エンジン
210 ストレージインターフェース制御部
220 I/Oバス
230 プロセッサ
240 RAM
250-1 メモリ制御部(メモリリード制御部)
250-2 メモリ制御部(メモリライト制御部)
251-1 コマンドキュー
252-1、252-2 デコーダ
253-1、253-2 メモリリクエストアドレス送信部
254-1 リードコマンド選択部
254-2 バスデータ受信部
255-2 エラー訂正コード生成部
256-1 メモリデータ受信部
256-2 データバッファ
257-1 エラー検出訂正部
257-2 メモリデータ送信部
258-1 バスデータ送信部
258-2 ビジー信号生成部
259-2 レディ信号生成部
260 接続切換部
270 メモリインターフェース制御部
300 メモリ
301、302 メモリダイ
400 メモリシステム
Claims (6)
- コンピュータからのライトコマンドに基づいて複数のメモリのいずれかに対するライトリクエストを生成するメモリライト制御部と、
前記ライトリクエストに係るライトデータの前記メモリライト制御部におけるデータ処理状態に応じて前記複数のメモリ毎に生成された優先度によって前記複数のメモリのいずれかに対するリードリクエストを前記コンピュータからのリードコマンドに基づいて生成するメモリリード制御部と
を具備するメモリコントローラ。 - 前記メモリライト制御部は、
前記ライトデータについてエラー訂正コードを生成するエラー訂正コード生成部と、
前記複数のメモリのそれぞれに対する前記ライトデータについて前記エラー訂正コードが生成中であるか否かを示すビジー信号を前記データ処理状態として生成するビジー信号生成部とを備え、
前記メモリリード制御部は、前記複数のメモリのうち前記ビジー信号が前記エラー訂正コードの生成中である旨を示しているメモリの前記優先度を高く設定する
請求項1記載のメモリコントローラ。 - 前記メモリライト制御部は、
前記エラー訂正コードが生成された前記ライトデータを保持するデータバッファと、
前記複数のメモリのそれぞれに対する前記ライトデータについて前記エラー訂正コードの生成が完了して前記データバッファに準備されているか否かを示すレディ信号を前記データ処理状態として生成するレディ信号生成部とをさらに備え、
前記メモリリード制御部は、前記複数のメモリのうち前記エラー訂正コードが生成完了している旨を前記レディ信号が示しているメモリの前記優先度を低く設定する
請求項2記載のメモリコントローラ。 - 前記メモリリード制御部は、
前記コンピュータからのリードコマンドを保持するコマンドキューと、
前記複数のメモリのそれぞれについて、それぞれのメモリに対する前記ライトリクエストに係るライトデータの前記メモリライト制御部における前記データ処理状態に応じた前記優先度を設定して、その優先度に従って前記コマンドキューから前記複数のメモリのいずれかに対するリードコマンドを選択するリードコマンド選択部と、
前記選択されたリードコマンドに基づいて前記複数のメモリのいずれかに対してリードリクエストおよびアドレスを生成して送信するメモリリクエストアドレス送信部とを備える
請求項1記載のメモリコントローラ。 - 複数のメモリと、
コンピュータからのライトコマンドに基づいて前記複数のメモリのいずれかに対するライトリクエストを生成するメモリライト制御部と、
前記ライトリクエストに係るライトデータの前記メモリライト制御部におけるデータ処理状態に応じて前記複数のメモリ毎に生成された優先度によって前記複数のメモリのいずれかに対するリードリクエストを前記コンピュータからのリードコマンドに基づいて生成するメモリリード制御部と
を具備するメモリシステム。 - 複数のメモリと、
コンピュータと、
前記コンピュータからのライトコマンドに基づいて前記複数のメモリのいずれかに対するライトリクエストを生成するメモリライト制御部と、
前記ライトリクエストに係るライトデータの前記メモリライト制御部におけるデータ処理状態に応じて前記複数のメモリ毎に生成された優先度によって前記複数のメモリのいずれかに対するリードリクエストを前記コンピュータからのリードコマンドに基づいて生成するメモリリード制御部と
を具備する情報処理システム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016129012 | 2016-06-29 | ||
JP2016129012 | 2016-06-29 | ||
PCT/JP2017/015412 WO2018003244A1 (ja) | 2016-06-29 | 2017-04-17 | メモリコントローラ、メモリシステムおよび情報処理システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2018003244A1 JPWO2018003244A1 (ja) | 2019-04-18 |
JP6992750B2 true JP6992750B2 (ja) | 2022-01-13 |
Family
ID=60785333
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018524909A Active JP6992750B2 (ja) | 2016-06-29 | 2017-04-17 | メモリコントローラ、メモリシステムおよび情報処理システム |
Country Status (3)
Country | Link |
---|---|
US (1) | US11029881B2 (ja) |
JP (1) | JP6992750B2 (ja) |
WO (1) | WO2018003244A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11556420B2 (en) * | 2021-04-06 | 2023-01-17 | Macronix International Co., Ltd. | Managing error correction coding in memory systems |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000067574A (ja) | 1998-08-21 | 2000-03-03 | Mitsubishi Electric Corp | 半導体記憶装置 |
US20030217239A1 (en) | 2002-05-14 | 2003-11-20 | Jeddeloh Joseph M. | Out of order DRAM sequencer |
WO2013014841A1 (ja) | 2011-07-22 | 2013-01-31 | パナソニック株式会社 | データ処理装置およびデータ処理方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014154119A (ja) | 2013-02-14 | 2014-08-25 | Ricoh Co Ltd | メモリ制御装置及び半導体記憶装置 |
US9442662B2 (en) * | 2013-10-18 | 2016-09-13 | Sandisk Technologies Llc | Device and method for managing die groups |
-
2017
- 2017-04-17 WO PCT/JP2017/015412 patent/WO2018003244A1/ja active Application Filing
- 2017-04-17 JP JP2018524909A patent/JP6992750B2/ja active Active
- 2017-04-17 US US16/311,100 patent/US11029881B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000067574A (ja) | 1998-08-21 | 2000-03-03 | Mitsubishi Electric Corp | 半導体記憶装置 |
US20030217239A1 (en) | 2002-05-14 | 2003-11-20 | Jeddeloh Joseph M. | Out of order DRAM sequencer |
WO2003098392A3 (en) | 2002-05-14 | 2005-04-21 | Micron Technology Inc | Out of order dram sequencer |
JP2005525652A (ja) | 2002-05-14 | 2005-08-25 | マイクロン テクノロジー インコーポレイテッド | アウトオブオーダdramシーケンサ |
WO2013014841A1 (ja) | 2011-07-22 | 2013-01-31 | パナソニック株式会社 | データ処理装置およびデータ処理方法 |
US20140136743A1 (en) | 2011-07-22 | 2014-05-15 | Panasonic Corporation | Data processing device and data processing method |
Also Published As
Publication number | Publication date |
---|---|
JPWO2018003244A1 (ja) | 2019-04-18 |
WO2018003244A1 (ja) | 2018-01-04 |
US11029881B2 (en) | 2021-06-08 |
US20200310681A1 (en) | 2020-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10949091B2 (en) | Memory controllers, memory systems, solid state drives and methods for processing a number of commands | |
US9304691B2 (en) | Memory system and bank interleaving method | |
US20210133096A1 (en) | Memory system and operating method thereof | |
KR20160013351A (ko) | 데이터 저장 장치 및 그것의 데이터 처리 방법 | |
US10725902B2 (en) | Methods for scheduling read commands and apparatuses using the same | |
US9304952B2 (en) | Memory control device, storage device, and memory control method | |
US20150253992A1 (en) | Memory system and control method | |
US9753655B2 (en) | Computing system with write buffer including speculative storage write and method of operation thereof | |
US20170160952A1 (en) | Memory controller, memory system, and information processing system | |
US20100169550A1 (en) | Semiconductor memory device, data transfer device, and method of controlling semiconductor memory device | |
CN110716691A (zh) | 调度方法、装置、闪存设备和系统 | |
US11307798B2 (en) | Storage device and method for performing macro command | |
US11455186B2 (en) | Controller and memory system having the same | |
CN114296656B (zh) | 平面编程方法及其闪存设备 | |
CN113485643B (zh) | 用于数据存取的方法及数据写入的控制器 | |
JP6992750B2 (ja) | メモリコントローラ、メモリシステムおよび情報処理システム | |
JP2013137624A (ja) | データ記憶装置、メモリ制御装置及び方法 | |
JP4936088B2 (ja) | ディスクアレイ装置、ディスクアレイシステム、及びキャッシュ制御方法 | |
JP4978373B2 (ja) | プログラマブルコントローラ、そのcpuモジュール | |
CN108536475B (zh) | 完整编程命令处理方法与装置 | |
CN110568991B (zh) | 降低锁引起的io命令冲突的方法与存储设备 | |
CN109144907B (zh) | 实现快速读取的方法及介质接口控制器 | |
CN111736779B (zh) | Nvm接口命令的优化执行方法与装置 | |
US10628322B2 (en) | Memory system and operating method thereof | |
US9189173B2 (en) | Memory system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200313 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210601 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210630 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210928 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20211026 |
|
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: 20211109 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20211122 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 6992750 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |