JP2020102087A - 半導体装置、メモリコントローラ、及びメモリアクセス方法 - Google Patents
半導体装置、メモリコントローラ、及びメモリアクセス方法 Download PDFInfo
- Publication number
- JP2020102087A JP2020102087A JP2018240740A JP2018240740A JP2020102087A JP 2020102087 A JP2020102087 A JP 2020102087A JP 2018240740 A JP2018240740 A JP 2018240740A JP 2018240740 A JP2018240740 A JP 2018240740A JP 2020102087 A JP2020102087 A JP 2020102087A
- Authority
- JP
- Japan
- Prior art keywords
- data
- write
- memory
- write data
- sub
- 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.)
- Granted
Links
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/0653—Monitoring storage devices or systems
-
- 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/1044—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 with specific ECC/EDC distribution
-
- 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
- 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
-
- 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/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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
- 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
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)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Detection And Correction Of Errors (AREA)
- Memory System (AREA)
Abstract
Description
図1は、実施形態1に係る半導体装置を示す。半導体装置10は、マスタ11及びメモリコントローラ20を含む。マスタ11は、メインメモリ30に対してアクセス要求を発行する。マスタ11は、バスマスタであり、例えばCPUやGPU(Graphics Processing Unit)などのプロセッサとして構成される。メインメモリ30は、例えばDDR−SDRAM(Synchronous Dynamic Random Access Memory)などのメモリデバイスとして構成される。メインメモリ30に対するアクセス要求は、例えば、リード又はライトを示すアクセス種別、及びアクセス先のアドレス情報を示す情報などを含む。以下では、アクセス種別がライトのアクセス要求をライトリクエストと呼び、アクセス種別がリードのアクセス要求をリードリクエストと呼ぶことがある。
図2は、ECCコントローラ21の構成例を示す。ECCコントローラ21は、サブメモリ211、ECC生成部212、サブメモリ213、サブメモリコントローラ214、ECC検査部215、及びECC生成部216を含む。ECCコントローラ21において、例えばECC生成部212、ECC検査部215、及びECC生成部216は、ハードウェア回路として構成され得る。サブメモリコントローラ214は、プロセッサを含んだ回路で構成され得る。
図3は、マスタがライトリクエストを出力した場合の動作手順を示す。メモリコントローラ20は、マスタ11から、バスを介してライトリクエストを受け付ける。メモリコントローラ20のサブメモリ211は、ライトデータを一時的に記憶する。ECC生成部212は、ライトデータに基づいてECCを生成し、生成したECCをサブメモリ213に記憶する。
以下、動作例を説明する。図4は、2つのライトデータとマージされたデータとを模式的に示す。ここでは、マスタ11が、ライトデータ500をメインメモリ30のアドレスXへ書き込むためのライトリクエストを出力した後に、ライトデータ510をメインメモリ30のアドレスXに書き込むためのライトリクエストを出力した場合を考える。ライトデータ500は、有効データ(DATA_A)501と、無効データ502とを含む。一方、ライトデータ510は、無効データ511と、有効データ(DATA_B)512とを含む。
本実施形態では、サブメモリ211はライトリクエストのライトデータを記憶し、サブメモリ213はライトデータのECCを記憶する。サブメモリコントローラ214は、ライトデータの有効データをマージした場合に、メインメモリ30に記憶されるECCを生成するために必要なデータが揃うか否かを判断する。サブメモリコントローラ214は、ECCを生成するために必要なデータが揃うと判断した場合、サブメモリ211からマージ対象のライトデータを読み出し、サブメモリ213からマージ対象のライトデータのECCを読み出す。ECC検査部215は、サブメモリ213から読み出されたECCを用いてサブメモリ211に記憶されるライトデータを検証する。サブメモリコントローラ214は、ライトデータにエラーが含まれない場合、読み出したライトデータの有効データをマージする。ECC生成部216は、マージされたデータに対してECCを生成し、コマンド発行部23は、マージされたデータとECCとをメインメモリ30に書き込むためのコマンドを生成する。
次いで、実施形態2を説明する。本実施形態に係る半導体装置の構成は、図1に示される実施形態1に係る半導体装置10の構成と同様でよい。また、本実施形態におけるECCコントローラの構成は、図2に示されるECCコントローラ21の構成と同様でよい。本実施形態において、ライトデータは複数のブロックを含み、ライトリクエストはライトデータの各ブロックに対して有効データであることを示す情報、及び無効データであることを示す情報を含む。本実施形態では、ECC生成部212は、ライトデータのうち、有効データに対応するブロックに対して、ブロックごとにECCを生成する。
以下、具体例を用いて説明する。図5は、ライトデータの一例を示す。ライトデータ500は、例えば計8つのブロックを含む。各ブロックのデータ長は、8ビットであるとする。各ブロックには、データの有効又は無効を示すフラグが設定されている。ライトデータ500では、ブロック0〜ブロック5の5つのブロックのフラグが「有効」に設定されており、ブロック6及び7のブロックのフラグが「無効」に設定されている。この場合、ライトデータ500の各ブロックのデータA0〜A7のうち、データA0〜A6が有効データであるDATA_Aを構成し、データA6及びA7は無効データを構成する。
図9は、動作手順を示す。メモリコントローラ20は、マスタ11から、バスを介してライトリクエストを受け付ける。メモリコントローラ20のサブメモリ211に、ライトリクエストの書込み先のアドレスに対応するライトデータを記憶するエントリが存在しない場合、ライトデータがサブメモリ211に一時的に記憶される。サブメモリ211に、書込み先のアドレスに対応するライトデータを記憶するエントリが既に存在する場合は、サブメモリ211に記憶されるデータのうち、ライトデータの有効データに対応するブロックのデータが、ライトデータの有効データで上書きされる。ECC生成部212は、ライトデータの有効データ部分に基づいてECCを生成し、生成したECCをサブメモリ213に記憶する。
本実施形態では、ライトデータは複数のブロックから成り、複数のライトデータの有効データに対応するブロックは、サブメモリ211上でマージされる。また、ECC生成部212は、ライトデータの有効データに対応した各ブロックのECCを生成し、サブメモリ213に記憶する。ECC生成部212が生成するECCの生成単位を、ライトデータのブロックに対応させることで、サブメモリ213に記憶されるECCを新たに生成したECCで上書きした場合でも、サブメモリ211上のライトデータの各ブロックのデータを、サブメモリ213に記憶されるECCを用いて検証することができる。実施形態1では、同じ書込み先のアドレスが同じ複数のライトデータが、エントリを分けてサブメモリ211に記憶された。本実施形態では、1つの書込み先のアドレスに対して、ライトデータを記憶するエントリは1つでよく、実施形態1に比べて、サブメモリ211に要求されるエントリ数(メモリ容量)を低減できる。
続いて、実施形態3を説明する。実施形態1及び実施形態2では、サブメモリ211において、メインメモリ30に記憶されるECCを生成するために必要なデータが揃った場合に、ECC生成部216がECCを生成した。この場合、マスタ11(図1を参照)が書込み先のアドレスが同じ複数のライトリクエストを出力しない場合、メインメモリ30に記憶されるECCを生成するために必要なデータが揃わず、ライトデータがメインメモリ30に記憶されるまでに要する時間が長くなる。本実施形態では、メモリコントローラ20は、所定の条件が成立した場合は、書込み先のアドレスが同じライトリクエストを待たずに、リードモディファイライトを行って、メインメモリ30に記憶されるECCを生成する。その他の点は、実施形態1又は実施形態2と同様でよい。
図11は、動作手順を示す。メモリコントローラ20は、マスタ11から、バスを介してライトリクエストを受け付ける。メモリコントローラ20のサブメモリ211は、ライトデータを一時的に記憶する。ECC生成部212は、ライトデータに基づいてECCを生成し、生成したECCをサブメモリ213に記憶する。
本実施形態では、サブメモリコントローラ214は、RMWタイマ217がタイムアウトすると、通常のリードモディファイライトと同様な動作を行い、メインメモリ30から読み出したデータと無効データを含むライトデータとをマージする。本実施形態では、ライトデータがサブメモリ211に記憶されてから所定時間の経過後に、ライトデータを含むデータをメインメモリ30に書き込むことができ、ライトデータがサブメモリ211に滞留し続けることを抑制できる。このため、本実施形態では、サブメモリ211に要求されるメモリ容量を削減することができる。また、本実施形態では、所定時間の経過後にライトデータがメインメモリ30に書き込まれることが期待できるため、性能の定量見積もりが可能である。
引き続き、実施形態4を説明する。図12は、本実施形態に係る半導体装置を示す。本実施形態に係る半導体装置10bは、マスタ11、マスタ12、メモリコントローラ20b、メインメモリ30、及びインターコネクトロジック回路40を有する。マスタ11及び12は、バスマスタであり、メインメモリ30に対するアクセス要求を出力する。インターコネクトロジック回路40は、対応するバスを介して、マスタ11及び12が発行したアクセス要求を受け取る。インターコネクトロジック回路40は、マスタ11及び12が出力するアクセス要求を選択的にメモリコントローラ20bへ出力する。
図13は、インターコネクトロジック回路40の構成例を示す。インターコネクトロジック回路40は、アービタ41、及びリクエストモニタ(リクエスト監視部)42を有する。アービタ41は、マスタ11及び12が出力するアクセス要求を選択的にメモリコントローラ20bへ出力する。リクエストモニタ42は、マスタ11及び12が出力するアクセス要求を監視する。リクエストモニタ42は、マスタ11及び12のメモリアクセス要求の発行状況を示すインターコネクトステータスをメモリコントローラに出力する。なお、リクエストモニタ42は、必ずしもインターコネクトロジック回路40に含まれている必要はなく、インターコネクトロジック回路40の外部に配置されていてもよい。
図14は、メモリコントローラ20bの構成例を示す。メモリコントローラ20bは、ECCコントローラ21b、及びコマンド発行部23bを有する。ECCコントローラ21bは、図2に示されるECCコントローラ21の構成に加えて、バス状況コントローラ218を有する。ECCコントローラ21bは、更にRMWタイマ217(図10を参照)を有していてもよい。本実施形態において、サブメモリコントローラ214は、実施形態3と同様に、所定の条件が成立した場合は、書込み先のアドレスが同じライトリクエストを待たずに、リードモディファイライトを行って、メインメモリ30に記憶されるECCを生成する。
本実施形態では、サブメモリコントローラ214は、マスタのアクセス要求の発行状況に応じて、リードモディファイライトを実施する条件が成立したか否かを判断する。例えば、マスタがアクセス要求を発行していない場合、インターコネクトロジック回路40側からメモリコントローラ20に次のライトリクエストが出力されない予想される。その場合、サブメモリコントローラ214は、書込み先のアドレスが同じライトリクエストを待たずに、リードモディファイライトを行って、メインメモリ30に記憶されるECCを生成するために必要なデータを取得する。マスタがアクセス要求を出力していない場合、リードモディファイライトを行った方が、ライトデータをマージする場合より短時間で処理を完了できる場合がある。そのような場合に、リードモディファイライトを行うことで、長時間にわたってライトデータがサブメモリ211に滞留することを抑制できる。
引き続いて、実施形態5を説明する。図16は、本実施形態において用いられるECCコントローラの構成例を示す。本実施形態において用いられるECCコントローラ21cは、図2に示されるECCコントローラ21の構成に加えて、ライトデータチェック部219、及びアービタ220を有する。本実施形態において、ECCコントローラ21cは、更にRMWタイマ217(図10を参照)を有していてもよい。また、ECCコントローラ21bは、更にバス状況コントローラ218(図14を参照)を有していてもよい。
本実施形態では、ライトデータチェック部219は、ライトデータが、ECC生成部216においてECCを生成できるデータであるか否かを判断する。本実施形態では、ライトデータが無効データを含まず、従って他のライトデータとマージしなくてもメインメモリ30に書き込まれるECCを作成できる場合、ライトデータはサブメモリ211に格納されずに、ECC生成部216に出力される。このようにすることで、ECC生成部216は、サブメモリ211を介さずにライトデータを受け取ることができ、ライトリクエストが受け付けられてから、ECCが生成され、ライトコマンドが発行されるまでに要する時間を短縮できる。
11、12:マスタ
20:メモリコントローラ
21:ECCコントローラ
23:コマンド発行部
30:メインメモリ
40:インターコネクトロジック回路
41:アービタ
42:リクエストモニタ
211:サブメモリ
212:ECC生成部
213:サブメモリ
214:サブメモリコントローラ
215:ECC検査部
216:ECC生成部
217:RMWタイマ
218:バス状況コントローラ
219:ライトデータチェック部
220:アービタ
231:コマンドヒストリ記憶部
500、510、520:ライトデータ
501、512:有効データ
502、511:無効データ
Claims (18)
- ライトリクエストを含むメモリアクセス要求を発行するマスタと、
前記メモリアクセス要求に従ってメインメモリにアクセスするメモリコントローラとを備え、
前記メモリコントローラは、
有効データを含むライトデータを記憶する第1のサブメモリと、
前記第1のサブメモリに記憶されるライトデータに基づいて、データの誤り検出が可能な第1のコードを生成する第1の符号生成部と、
前記第1のコードを記憶する第2のサブメモリと、
前記第2のサブメモリに記憶される前記第1のコードに基づいて、前記第1のサブメモリに記憶されるライトデータに誤りが含まれるか否かを検証するライトデータ検証部と、
前記第1のサブメモリに記憶されるライトデータの前記メインメモリでの書込み先のアドレスを管理するサブメモリコントローラと、
所定データ幅の単位で、前記メインメモリに書き込まれるデータに基づいて、データの誤り検出が可能な第2のコードを生成する第2の符号生成部と、
前記第2のコードが付加されたデータを前記メインメモリに書き込むためのコマンドを発行するコマンド発行部とを含み、
前記サブメモリコントローラは、同じアドレスに対するライトリクエストが複数ある場合、前記複数のライトリクエストのライトデータの有効データをマージすることで、前記所定データ幅のデータが得られるか否かを判断し、得られると判断した場合、前記第1のサブメモリからマージ対象の複数のライトデータを読み出し、前記ライトデータ検証部に前記読み出した複数のライトデータのそれぞれに対応する前記第1のコードを用いて当該複数のライトデータのそれぞれに誤りが含まれるか否かを検証させ、誤りが含まれない場合、前記第1のサブメモリから読み出した複数のライトデータの有効データをマージし、前記第2の符号生成部に前記第2のコードを生成させ、
前記コマンド発行部は、前記マージされたライトデータに前記第2のコードを付加したデータを前記メインメモリに書き込むためのコマンドを発行する、半導体装置。 - 前記第1のコードは、更に前記ライトデータにおける所定ビット数誤りを訂正することが可能なコードであり、
前記ライトデータ検証部は、前記ライトデータに誤りが含まれると判断した場合、前記第1のコードを用いて前記ライトデータを訂正する請求項1に記載の半導体装置。 - 前記ライトデータ検証部は、前記ライトデータが訂正できない場合、前記ライトデータに誤りが含まれる旨を前記サブメモリコントローラに返却する請求項2に記載の半導体装置。
- 前記サブメモリコントローラは、前記ライトデータ検証部で前記ライトデータに誤りが含まれると判断された場合、エラー処理を行う請求項1に記載の半導体装置。
- 前記第1のサブメモリは、前記ライトリクエストごとに、前記ライトデータをエントリを分けて記憶し、前記サブメモリコントローラは、前記第1のサブメモリに、前記書込み先のアドレスが同じ複数の前記ライトデータが記憶されている場合、該複数のライトデータの有効データをマージすることで、前記所定データ幅のデータが得られるか否かを判断する請求項1に記載の半導体装置。
- 前記ライトデータは複数のブロックを含み、前記ライトリクエストは、前記ライトデータの各ブロックに対して前記有効データであることを示す情報、及び前記有効データではない無効データであることを示す情報を含んでおり、
前記第1の符号生成部は、前記有効データに対応するブロックに対して、前記ブロックごとに前記第1のコードを生成する請求項1に記載の半導体装置。 - 前記第1のサブメモリは、前記書込み先のアドレスごとに前記ライトデータをエントリを分けて記憶し、前記サブメモリコントローラは、前記ライトリクエストが受け付けられた場合、前記第1のサブメモリに、前記受け付けられたライトリクエストの書込み先のアドレスのライトデータを記憶するエントリがあるか否かを調べ、エントリがある場合、当該エントリに記憶されるライトデータのうち、前記受け付けられたライトリクエストの前記ライトデータの前記有効データに対応するブロックのデータを、該有効データで上書きする請求項6に記載の半導体装置。
- 前記サブメモリコントローラは、所定の条件が成立した場合は、前記メインメモリから、前記ライトデータの書込み先のアドレスのデータを読み出し、該読み出したデータと前記ライトデータの前記有効データとをマージし、前記第2の符号生成部に前記第2のコードを生成させる請求項1に記載の半導体装置。
- タイマを更に有し、
前記サブメモリコントローラは、前記タイマがタイムアウト発生した場合、前記所定の条件が成立したと判断する請求項8に記載の半導体装置。 - 前記マスタが発行するメモリアクセス要求を監視するリクエスト監視部を更に有し、
前記サブメモリコントローラは、前記マスタのメモリアクセス要求の発行状況に応じて前記所定の条件が成立したか否かを判断する請求項8に記載の半導体装置。 - 前記サブメモリコントローラは、前記ライトリクエストが受け付けられたとき、前記書込み先のアドレスが、前記受け付けられたライトリクエストの書込み先のアドレスと同じライトデータが前記第1のサブメモリに記憶されていない場合、前記所定の条件が成立したと判断する請求項8に記載の半導体装置。
- 前記メモリコントローラは、前記コマンド発行部が発行したコマンドのヒストリを記憶するコマンドヒストリ記憶部を更に有し、
前記サブメモリコントローラは、前記コマンドヒストリ記憶部に記憶されるヒストリに基づいて、前記メインメモリに書き込まれるライトデータを決定する請求項1に記載の半導体装置。 - 前記メモリコントローラは、前記ライトデータの前記有効データが前記所定データ幅のデータであるか否かを判断するライトデータチェック部を更に有し、
前記ライトデータチェック部が前記ライトデータの前記有効データが前記所定データ幅のデータであると判断した場合、当該ライトデータは前記第1のサブメモリに格納されず、前記第2の符号生成部は、当該ライトデータに基づいて前記第2のコードを生成し、前記コマンド発行部は、当該ライトデータに前記第2のコードを付加したデータを前記メインメモリに書き込むためのコマンドを発行する請求項1に記載の半導体装置。 - 前記ライトデータチェック部は、前記ライトデータの前記有効データが前記所定データ幅のデータであると判断した場合、更に、前記書込み先のアドレスが、当該ライトデータの書込み先のアドレスと同じライトデータが前記第1のサブメモリに記憶されているか否かを判断し、記憶されていると判断した場合、前記サブメモリコントローラに、前記第1のサブメモリに記憶されるライトデータの削除を依頼する請求項13に記載の半導体装置。
- 前記マスタは第1のマスタであり、
前記メモリアクセス要求を発行する第2のマスタと、
前記第1のマスタが発行する前記メモリアクセス要求と前記第2のマスタが発行する前記メモリアクセス要求とを選択的に前記メモリコントローラへ出力するインターコネクトロジック回路とを更に有する請求項1に記載の半導体装置。 - 前記第1のマスタ及び第2のマスタが発行するメモリアクセス要求を監視するリクエスト監視部を更に有し、
前記サブメモリコントローラは、前記リクエスト監視部で監視されるメモリアクセス要求の発行状況に応じて、前記第1のサブメモリから読み出した複数のライトデータの有効データをマージする動作を実施するか否かを決定し、実施しないと決定した場合、前記メインメモリから、前記ライトデータの書込み先のアドレスのデータを読み出し、該読み出したデータと前記ライトデータの前記有効データとをマージし、前記第2の符号生成部に第2のコードを生成させる請求項15に記載の半導体装置。 - ライトリクエストを含むメモリアクセス要求を発行するマスタが発行したライトリクエストに含まれる、有効データを含むライトデータを記憶する第1のサブメモリと、
前記第1のサブメモリに記憶されるライトデータに基づいて、データの誤り検出が可能な第1のコードを生成する第1の符号生成部と、
前記第1のコードを記憶する第2のサブメモリと、
前記第2のサブメモリに記憶される前記第1のコードに基づいて、前記第1のサブメモリに記憶されるライトデータに誤りが含まれるか否かを検証するライトデータ検証部と、
前記第1のサブメモリに記憶されるライトデータのメインメモリでの書込み先のアドレスを管理するサブメモリコントローラと、
所定データ幅の単位で、前記メインメモリに書き込まれるデータに基づいて、データの誤り検出が可能な第2のコードを生成する第2の符号生成部と、
前記第2のコードが付加されたデータを前記メインメモリに書き込むためのコマンドを発行するコマンド発行部とを備え、
前記サブメモリコントローラは、同じアドレスに対するライトリクエストが複数ある場合、前記複数のライトリクエストのライトデータの有効データをマージすることで、前記所定データ幅のデータが得られるか否かを判断し、得られると判断した場合、前記第1のサブメモリからマージ対象の複数のライトデータを読み出し、前記ライトデータ検証部に前記読み出した複数のライトデータのそれぞれに対応する前記第1のコードを用いて当該複数のライトデータのそれぞれに誤りが含まれるか否かを検証させ、誤りが含まれない場合、前記第1のサブメモリから読み出した複数のライトデータの有効データをマージし、前記第2の符号生成部に前記第2のコードを生成させ、
前記コマンド発行部は、前記マージされたライトデータに前記第2のコードを付加したデータを前記メインメモリに書き込むためのコマンドを発行する、メモリコントローラ。 - ライトリクエストを含むメモリアクセス要求を発行するマスタが発行したライトリクエストに含まれる、有効データを含むライトデータを第1のサブメモリに記憶し、
前記第1のサブメモリに記憶されるライトデータに基づいて、データの誤り検出が可能な第1のコードを生成し、
前記第1のコードを第2のサブメモリに記憶し、
同じアドレスに対するライトリクエストが複数ある場合、前記複数のライトリクエストのライトデータの有効データをマージすることで、データの誤り検出が可能な第2のコードを生成する単位である所定データ幅のデータが得られるか否かを判断し、
得られると判断した場合、前記第1のサブメモリからマージ対象の複数のライトデータを読み出し、
前記第2のサブメモリに記憶される、前記読み出されたマージ対象の複数のライトデータのそれぞれに対応する前記第1のコードに基づいて、当該複数のライトデータのそれぞれに誤りが含まれるか否かを検証し、
誤りが含まれない場合、前記第1のサブメモリから読み出された複数のライトデータの有効データをマージし、
前記マージされたライトに基づいて前記第2のコードを生成し、
前記マージされたライトデータに前記第2のコードを付加したデータをメインメモリに書き込むためのコマンドを発行する、メモリアクセス方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018240740A JP7184632B2 (ja) | 2018-12-25 | 2018-12-25 | 半導体装置 |
US16/685,178 US11221789B2 (en) | 2018-12-25 | 2019-11-15 | Semiconductor device, memory controller, and memory accessing method |
CN201911300691.6A CN111382000B (zh) | 2018-12-25 | 2019-12-17 | 半导体装置、存储器控制器与存储器访问方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018240740A JP7184632B2 (ja) | 2018-12-25 | 2018-12-25 | 半導体装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020102087A true JP2020102087A (ja) | 2020-07-02 |
JP7184632B2 JP7184632B2 (ja) | 2022-12-06 |
Family
ID=71096848
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018240740A Active JP7184632B2 (ja) | 2018-12-25 | 2018-12-25 | 半導体装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11221789B2 (ja) |
JP (1) | JP7184632B2 (ja) |
CN (1) | CN111382000B (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022144469A (ja) * | 2021-03-19 | 2022-10-03 | キオクシア株式会社 | メモリシステム |
CN117296033A (zh) * | 2021-05-20 | 2023-12-26 | 美光科技公司 | 用于半导体装置的可调定时器组件 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5182752A (en) * | 1990-06-29 | 1993-01-26 | Digital Equipment Corporation | Method and apparatus for transferring data between a data bus and a data storage device |
JPH08190512A (ja) * | 1995-01-12 | 1996-07-23 | Hitachi Ltd | データ記憶制御装置 |
JPH10232789A (ja) * | 1997-02-19 | 1998-09-02 | Hitachi Ltd | Eccパーシャルライト制御ユニット |
JP2012038168A (ja) * | 2010-08-09 | 2012-02-23 | Toshiba Corp | 記録ユニット及び故障チップ特定方法 |
US20160378595A1 (en) * | 2015-06-25 | 2016-12-29 | SK Hynix Inc. | Controller, semiconductor memory system and operating method thereof |
US20170063401A1 (en) * | 2015-09-01 | 2017-03-02 | International Business Machines Corporation | Partial ecc mechanism for a byte-write capable register |
US20180253354A1 (en) * | 2017-03-03 | 2018-09-06 | Fujitsu Limited | Processor and control method of processor |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3962853B2 (ja) * | 2001-02-28 | 2007-08-22 | 株式会社日立製作所 | メモリデータ誤り訂正方法 |
JP4799027B2 (ja) * | 2005-03-31 | 2011-10-19 | 富士通株式会社 | 記憶制御回路、記憶制御回路におけるアドレスエラーチェック方法 |
JP2007133986A (ja) * | 2005-11-11 | 2007-05-31 | Nec Electronics Corp | 半導体記憶装置 |
JP2008077783A (ja) | 2006-09-22 | 2008-04-03 | Fujitsu Ltd | 記憶データ処理装置、記憶装置、記憶データ処理プログラム |
JP5010271B2 (ja) * | 2006-12-27 | 2012-08-29 | 富士通株式会社 | エラー訂正コード生成方法、およびメモリ制御装置 |
JP5070137B2 (ja) * | 2008-06-05 | 2012-11-07 | ローム株式会社 | 記憶装置及びデータ書込装置 |
US8756486B2 (en) * | 2008-07-02 | 2014-06-17 | Micron Technology, Inc. | Method and apparatus for repairing high capacity/high bandwidth memory devices |
JP5446931B2 (ja) | 2010-01-27 | 2014-03-19 | 横河電機株式会社 | 誤り検出訂正装置及びメモリ装置 |
TW201201008A (en) * | 2010-03-22 | 2012-01-01 | Mosaid Technologies Inc | Composite semiconductor memory device with error correction |
US9842068B2 (en) * | 2010-04-14 | 2017-12-12 | Qualcomm Incorporated | Methods of bus arbitration for low power memory access |
JP5364807B2 (ja) * | 2011-06-08 | 2013-12-11 | パナソニック株式会社 | メモリコントローラ及び不揮発性記憶装置 |
US8898541B2 (en) * | 2011-11-30 | 2014-11-25 | Sony Corporation | Storage controller, storage device, information processing system, and storage controlling method |
JP5453500B2 (ja) | 2012-09-06 | 2014-03-26 | エヌイーシーコンピュータテクノ株式会社 | ストア制御装置、情報処理装置、および、ストア制御方法 |
JP2014086062A (ja) * | 2012-10-29 | 2014-05-12 | Sony Corp | 記憶制御装置、記憶装置、情報処理システム、および、記憶制御方法 |
US9110809B2 (en) * | 2013-07-03 | 2015-08-18 | Nvidia Corporation | Reducing memory traffic in DRAM ECC mode |
JP6605359B2 (ja) * | 2016-03-02 | 2019-11-13 | ルネサスエレクトロニクス株式会社 | 半導体装置及びメモリアクセス制御方法 |
KR20180063475A (ko) * | 2016-12-02 | 2018-06-12 | 삼성전자주식회사 | 반도체 장치의 오류 검출 코드 생성 회로, 이를 포함하는 메모리 컨트롤러 및 반도체 메모리 장치 |
TWI668704B (zh) * | 2018-10-01 | 2019-08-11 | 大陸商深圳大心電子科技有限公司 | 資料處理方法及使用所述方法的儲存控制器 |
-
2018
- 2018-12-25 JP JP2018240740A patent/JP7184632B2/ja active Active
-
2019
- 2019-11-15 US US16/685,178 patent/US11221789B2/en active Active
- 2019-12-17 CN CN201911300691.6A patent/CN111382000B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5182752A (en) * | 1990-06-29 | 1993-01-26 | Digital Equipment Corporation | Method and apparatus for transferring data between a data bus and a data storage device |
JPH08190512A (ja) * | 1995-01-12 | 1996-07-23 | Hitachi Ltd | データ記憶制御装置 |
JPH10232789A (ja) * | 1997-02-19 | 1998-09-02 | Hitachi Ltd | Eccパーシャルライト制御ユニット |
JP2012038168A (ja) * | 2010-08-09 | 2012-02-23 | Toshiba Corp | 記録ユニット及び故障チップ特定方法 |
US20160378595A1 (en) * | 2015-06-25 | 2016-12-29 | SK Hynix Inc. | Controller, semiconductor memory system and operating method thereof |
US20170063401A1 (en) * | 2015-09-01 | 2017-03-02 | International Business Machines Corporation | Partial ecc mechanism for a byte-write capable register |
US20180253354A1 (en) * | 2017-03-03 | 2018-09-06 | Fujitsu Limited | Processor and control method of processor |
JP2018147166A (ja) * | 2017-03-03 | 2018-09-20 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111382000B (zh) | 2024-01-12 |
US20200201559A1 (en) | 2020-06-25 |
JP7184632B2 (ja) | 2022-12-06 |
CN111382000A (zh) | 2020-07-07 |
US11221789B2 (en) | 2022-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8732551B2 (en) | Memory controller with automatic error detection and correction | |
US8281218B1 (en) | Data manipulation engine | |
CN104246898B (zh) | 局部错误检测和全局错误纠正 | |
KR101322064B1 (ko) | 의사 에러 발생 장치 | |
US9003260B2 (en) | Partial-writes to ECC (error check code) enabled memories | |
US9189329B1 (en) | Generating error correcting code (ECC) data using an ECC corresponding to an identified ECC protection level | |
CN103137215B (zh) | 向存储器提供低延时错误纠正码能力 | |
CN113853652B (zh) | 高速缓冲存储器中的管线化读取-修改-写入操作 | |
TWI655574B (zh) | Memory system and processor system | |
JP2007133986A (ja) | 半導体記憶装置 | |
US20130304970A1 (en) | Systems and methods for providing high performance redundant array of independent disks in a solid-state device | |
US20220276924A1 (en) | Techniques for storing data to enhance recovery and detection of data corruption errors | |
JP7184632B2 (ja) | 半導体装置 | |
JP4339914B2 (ja) | エラー訂正コード生成方法及びメモリ管理装置 | |
CN108665939B (zh) | 为存储器提供ecc的方法与装置 | |
US9329926B1 (en) | Overlapping data integrity for semiconductor devices | |
JPH09146836A (ja) | キャッシュ索引の障害訂正装置 | |
KR101999288B1 (ko) | 메모리 데이터의 에러 보정 장치 및 방법 | |
US10379944B2 (en) | Bit error protection in cache memories | |
KR20060085172A (ko) | 오류 검출 및 보정에 관련된 지연시간을 완화하기 위한시스템 및 방법 | |
JP5213061B2 (ja) | ミラーリング制御装置、ミラーリング制御回路、ミラーリング制御方法およびそのプログラム | |
JP6438763B2 (ja) | エラー訂正装置 | |
US20110314211A1 (en) | Recover store data merging | |
JP2011054221A (ja) | 記憶装置及び電子機器 | |
JP7350488B2 (ja) | 周辺装置制御システム、および周辺装置制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210611 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20220428 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20220517 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220715 |
|
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: 20221108 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20221124 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7184632 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |