説明

記憶制御装置、記憶装置、情報処理システム、および、記憶制御方法

【課題】不揮発性メモリの記憶容量を圧迫することなく、アクセスサイズに適したエラー訂正コードを用いてエラー検出訂正処理を行う。
【解決手段】第1のエラー検出部は、メモリから読み出された第1のデータ単位および当該第1のデータ単位に対応する第1のエラー検出符号に従ってエラー検出を行う。第2のエラー検出部は、第1のデータ単位よりも小さい第2のデータ単位に対応する第2のエラー検出符号がメモリとは異なるエラー検出符号保持部に保持されている場合に、メモリから読み出された第2のデータ単位およびエラー検出符号保持部に保持されている第2のエラー検出符号に従ってエラー検出を行う。

【発明の詳細な説明】
【技術分野】
【0001】
本技術は、記憶制御装置に関する。詳しくは、エラー検出符号をデータとともに記憶するメモリに対して記憶制御を行う記憶制御装置、記憶装置、および、これらにおける処理方法に関する。
【背景技術】
【0002】
従来、プロセッサとそのワークメモリ(主記憶装置)からなる情報処理システムにおいて、さらにストレージ(補助記憶装置)を備えることにより記憶容量を増やす技術が開発されている。このような情報処理システムにおいては、ワークメモリとしてDRAM(Dynamic Random Access Memory)等が用いられる。一方、ストレージとして不揮発性メモリ(NVM:Non-Volatile Memory)が用いられることがある。この不揮発性メモリとしては、大きなサイズを単位としたデータアクセスに対応したフラッシュメモリと、小さな単位での高速なランダムアクセスが可能な不揮発性ランダムアクセスメモリ(NVRAM:Non-Volatile RAM)とに大別される。ここで、フラッシュメモリの代表例としては、NAND型フラッシュメモリが挙げられる。一方、不揮発性ランダムアクセスメモリの例としては、PCRAM(Phase-Change RAM)、MRAM(Magnetoresistive RAM)、ReRAM(Resistance RAM)などが挙げられる。
【0003】
このような不揮発性メモリでは、データ保持特性を改善するために、エラー訂正コード(ECC:Error Correcting Code)によるエラー検出訂正処理を行うことが一般的となっている。すなわち、書込み時にエラー訂正コードを計算してそのエラー訂正コードをデータとともに不揮発性メモリ上に記録しておいて、読出し時にはデータとエラー訂正コードとを同時に読み出してビットエラーの検出および訂正処理が行われる。このようなエラー検出訂正処理を想定すると、エラー訂正コードの単位と不揮発性メモリへのアクセス単位とを一致させることが、性能上有利であることがわかる。両者が一致していない場合には、エラー訂正コードによるエラー検出訂正処理を行うために、アクセス要求のあったデータ以外の部分も不揮発性メモリから読み出す必要があり、アクセス処理のオーバーヘッドが増大する結果となる。
【0004】
この点、サイズの大きいセクタ単位のアクセスを行うためのバンクとサイズの小さいデータ長のアクセスを行うためのバンクの2つの領域を設けて、それぞれのサイズでエラー検出訂正処理を行う半導体記憶装置が提案されている(例えば、特許文献1参照。)。この半導体記憶装置では、NAND型フラッシュメモリにおいて、セクタ単位のシーケンシャルアクセス用バンクと、データ単位のランダムアクセス用バンクとが設けられている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2008−084499号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
上述の従来技術では、アクセス可能な単位のサイズを2種類設けて、それぞれのサイズによってエラー検出訂正処理を行っている。しかしながら、この従来の技術では、ランダムアクセス用バンクではシーケンシャルアクセス用バンクよりも小さなデータ単位でエラー訂正コードを生成するため、エラー訂正コードが占める容量が相対的に大きくなり、容量効率も悪化するという問題がある。この場合、ランダムアクセス用バンクにおける記憶容量が不足した際には、一部のデータをシーケンシャルアクセス用バンクに移行する必要が生じ、システムのパフォーマンスを低下させる要因となってしまう。一般に、ランダムアクセス用バンクはシーケンシャルアクセス用バンクよりも数倍のビットコストとなるため、ランダムアクセス用バンクの容量を大きくしてしまうとシステムコストに直接大きく影響してしまう。
【0007】
本技術はこのような状況に鑑みて生み出されたものであり、不揮発性メモリの記憶容量を圧迫することなく、アクセスサイズに適したエラー訂正コードを用いてエラー検出訂正処理を行うことを目的とする。
【課題を解決するための手段】
【0008】
本技術は、上述の問題点を解消するためになされたものであり、その第1の側面は、メモリから読み出された第1のデータ単位および当該第1のデータ単位に対応する第1のエラー検出符号に従ってエラー検出を行う第1のエラー検出部と、上記第1のデータ単位よりも小さい第2のデータ単位に対応する第2のエラー検出符号が上記メモリとは異なるエラー検出符号保持部に保持されている場合に、上記メモリから読み出された上記第2のデータ単位および上記エラー検出符号保持部に保持されている上記第2のエラー検出符号に従ってエラー検出を行う第2のエラー検出部とを具備する記憶制御装置およびその記憶制御方法である。これにより、第1のデータ単位よりも小さい第2のデータ単位に対応する第2のエラー検出符号を用いてエラー検出処理を行わせるという作用をもたらす。
【0009】
また、本技術の第2の側面は、ライト対象となるデータを含む第1のデータ単位に対応して第1のエラー検出符号を生成して上記第1のデータ単位および上記第1のエラー検出符号をメモリに対してライトさせる第1のエラー検出符号生成部と、上記第1のデータ単位よりも小さい第2のデータ単位に対応する第2のエラー検出符号を保持するエラー検出符号保持部と、リード対象となるデータを含む上記第2のデータ単位に対応する上記第2のエラー検出符号が上記エラー検出符号保持部に保持されていない場合に、上記メモリから読み出された上記リード対象となるデータを含む上記第1のデータ単位および当該第1のデータ単位に対応する上記第1のエラー検出符号に従ってエラー検出を行う第1のエラー検出部と、上記リード対象となるデータを含む上記第2のデータ単位に対応する上記第2のエラー検出符号が上記エラー検出符号保持部に保持されていない場合に、上記メモリから読み出された上記リード対象となるデータを含む上記第2のデータ単位に対応する上記第2のエラー検出符号を生成して上記エラー検出符号保持部に保持させる第2のエラー検出符号生成部と、上記リード対象となるデータを含む上記第2のデータ単位に対応する第2のエラー検出符号が上記エラー検出符号保持部に保持されている場合に、上記メモリから読み出された上記リード対象となるデータを含む上記第2のデータ単位および上記エラー検出符号保持部に保持されている上記第2のエラー検出符号に従ってエラー検出を行う第2のエラー検出部とを具備する記憶制御装置およびその記憶制御方法である。これにより、第1のデータ単位よりも小さい第2のデータ単位に対応する第2のエラー検出符号がエラー検出符号保持部に保持されている場合に、これを用いてエラー検出処理を行わせるという作用をもたらす。
【0010】
また、この第2の側面において、上記第2のエラー検出符号生成部は、上記ライト対象となるデータを含む上記第2のデータ単位に対応する第2のエラー検出符号が上記エラー検出符号保持部に保持されている場合に、上記ライト対象となるデータを含む上記第2のデータ単位に対応する上記第2のエラー検出符号を生成して上記エラー検出符号保持部に保持させるようにしてもよい。これにより、ライト時にエラー検出符号保持部を更新させるという作用をもたらす。
【0011】
また、この第2の側面において、上記第1または第2のエラー検出符号はエラー訂正機能を備え、上記第1または第2のエラー検出部においてエラーが検出された場合に上記第1または第2のエラー検出符号に従ってエラー訂正を行うエラー訂正部をさらに具備してもよい。これにより、第1のデータ単位よりも小さい第2のデータ単位に対応する第2のエラー検出符号を用いてエラー訂正処理を行わせるという作用をもたらす。
【0012】
また、本技術の第3の側面は、第1のデータ単位に対応する第1のエラー検出符号を上記第1のデータ単位と対応付けて記憶するメモリと、ライト対象となるデータを含む上記第1のデータ単位に対応して上記第1のエラー検出符号を生成して上記第1のデータ単位および上記第1のエラー検出符号を上記メモリに対してライトさせる第1のエラー検出符号生成部と、上記第1のデータ単位よりも小さい第2のデータ単位に対応する第2のエラー検出符号を保持するエラー検出符号保持部と、リード対象となるデータを含む上記第2のデータ単位に対応する上記第2のエラー検出符号が上記エラー検出符号保持部に保持されていない場合に、上記メモリから読み出された上記リード対象となるデータを含む上記第1のデータ単位および当該第1のデータ単位に対応する上記第1のエラー検出符号に従ってエラー検出を行う第1のエラー検出部と、上記リード対象となるデータを含む上記第2のデータ単位に対応する上記第2のエラー検出符号が上記エラー検出符号保持部に保持されていない場合に、上記メモリから読み出された上記リード対象となるデータを含む上記第2のデータ単位に対応する上記第2のエラー検出符号を生成して上記エラー検出符号保持部に保持させる第2のエラー検出符号生成部と、上記リード対象となるデータを含む上記第2のデータ単位に対応する第2のエラー検出符号が上記エラー検出符号保持部に保持されている場合に、上記メモリから読み出された上記リード対象となるデータを含む上記第2のデータ単位および上記エラー検出符号保持部に保持されている上記第2のエラー検出符号に従ってエラー検出を行う第2のエラー検出部とを具備する記憶装置である。これにより、第1のデータ単位よりも小さい第2のデータ単位に対応する第2のエラー検出符号がエラー検出符号保持部に保持されている場合に、これを用いてメモリのエラー検出処理を行わせるという作用をもたらす。なお、この第3の側面において、上記メモリは、不揮発性メモリを採用することができる。
【0013】
また、本技術の第4の側面は、第1のデータ単位に対応する第1のエラー検出符号を上記第1のデータ単位と対応付けて記憶するメモリと、ライト対象となるデータを含む上記第1のデータ単位に対応して上記第1のエラー検出符号を生成して上記第1のデータ単位および上記第1のエラー検出符号を上記メモリに対してライトさせる第1のエラー検出符号生成部と、上記第1のデータ単位よりも小さい第2のデータ単位に対応する第2のエラー検出符号を保持するエラー検出符号保持部と、リード対象となるデータを含む上記第2のデータ単位に対応する上記第2のエラー検出符号が上記エラー検出符号保持部に保持されていない場合に、上記メモリから読み出された上記リード対象となるデータを含む上記第1のデータ単位および当該第1のデータ単位に対応する上記第1のエラー検出符号に従ってエラー検出を行う第1のエラー検出部と、上記リード対象となるデータを含む上記第2のデータ単位に対応する上記第2のエラー検出符号が上記エラー検出符号保持部に保持されていない場合に、上記メモリから読み出された上記リード対象となるデータを含む上記第2のデータ単位に対応する上記第2のエラー検出符号を生成して上記エラー検出符号保持部に保持させる第2のエラー検出符号生成部と、上記リード対象となるデータを含む上記第2のデータ単位に対応する第2のエラー検出符号が上記エラー検出符号保持部に保持されている場合に、上記メモリから読み出された上記リード対象となるデータを含む上記第2のデータ単位および上記エラー検出符号保持部に保持されている上記第2のエラー検出符号に従ってエラー検出を行う第2のエラー検出部と、上記メモリに対してデータのリードまたはライトを要求するリクエストを発行するプロセッサとを具備する情報処理システムである。これにより、プロセッサからのアクセスに対し、第1のデータ単位よりも小さい第2のデータ単位に対応する第2のエラー検出符号がエラー検出符号保持部に保持されている場合に、これを用いてメモリのエラー検出処理を行わせるという作用をもたらす。なお、この第4の側面において、上記メモリは、不揮発性メモリを採用することができる。
【発明の効果】
【0014】
本技術によれば、不揮発性メモリの記憶容量を圧迫することなく、アクセスサイズに適したエラー訂正コードを用いてエラー検出訂正処理を行うことができるという優れた効果を奏し得る。
【図面の簡単な説明】
【0015】
【図1】本技術の実施の形態における情報処理システムの全体構成例を示す図である。
【図2】本技術の実施の形態におけるNVM制御部200の構成例を示す図である。
【図3】本技術の実施の形態におけるNVM300の構成例を示す図である。
【図4】本技術の実施の形態におけるメモリアドレスフィールドの一例を示す図である。
【図5】本技術の実施の形態における第2ECCバッファ250の項目例を示す図である。
【図6】本技術の実施の形態における第2ECCバッファ250の構成例を示す図である。
【図7】本技術の実施の形態における情報処理システムのリード動作手順の一例を示す流れ図である。
【図8】本技術の実施の形態における情報処理システムのライト動作手順の一例を示す流れ図である。
【図9】本技術の実施の形態の情報処理システムによる処理速度向上例を示す図である。
【図10】本技術の実施の形態の情報処理システムにおける1回目のリード動作のデータフロー例を示す図である。
【図11】本技術の実施の形態の情報処理システムにおける2回目以降のリード動作のデータフロー例を示す図である。
【図12】本技術の実施の形態の情報処理システムにおいて第2ECCバッファ250に対応する第2ECCが存在する場合のライト動作のデータフロー例を示す図である。
【図13】本技術の実施の形態の情報処理システムにおいて第2ECCバッファ250に対応する第2ECCが存在しない場合のライト動作のデータフロー例を示す図である。
【発明を実施するための形態】
【0016】
以下、本技術を実施するための形態(以下、実施の形態と称する)について説明する。説明は以下の順序により行う。
1.実施の形態の構成
2.実施の形態の動作
【0017】
<1.実施の形態の構成>
[情報処理システムの構成例]
図1は、本技術の実施の形態における情報処理システムの全体構成例を示す図である。この情報処理システムは、プロセッサ110と、DRAM120と、不揮発性メモリ(NVM)300と、NVM制御部200とを備えている。
【0018】
プロセッサ110は、各種プログラムを実行することにより情報処理を遂行する処理装置である。このプロセッサ110は、DRAM120における記憶領域をワーク領域として、データのロードまたはストアを繰り返すことによりプログラムを実行する。また、このプロセッサ110は、NVM制御部200を介してNVM300に記憶されている各データに対してアクセスを行う。
【0019】
DRAM120は、プロセッサ110の主記憶装置として機能する揮発性のメモリである。このDRAM120は、プロセッサ110におけるプログラムの実行に必要なデータを記憶する。
【0020】
NVM300は、プロセッサ110の補助記憶装置として機能する不揮発性のメモリである。このNVM300は、NVM制御部200の制御によりアクセスされる。このNVM300は、フラッシュメモリにより構成されてもよく、不揮発性ランダムアクセスメモリ(NVRAM)により構成されてもよい。このNVM300は、SnD(Store and Download)モデルおよびXIP(eXecute In Plane)モデルの何れにも適用することができる。SnDモデルでは、NVM300上のデータはDRAM120を介してプロセッサ110からアクセスされる。したがって、NVM300上のデータは一旦DRAM120に転送されることによりメモリ空間としてアクセス可能となる。一方、XIPモデルでは、NVM300に記憶されているデータはそのままプロセッサ110のメモリ空間としてアクセス可能である。このXIPモデルの場合、DRAM120の役割をNVM300に持たせ、DRAM120自体を省いて構成してもよい。なお、NVM300は、特許請求の範囲に記載のメモリの一例である。
【0021】
NVM制御部200は、NVM300を制御するものであり、プロセッサ110とNVM300とを接続する。このNVM制御部200はNVM300との間でデータ転送するためのデータバッファを備える。このデータバッファはNVM制御部200の外付けメモリデバイスとして実現してもよく、また、内蔵メモリとして実現してもよい。なお、NVM制御部200は、特許請求の範囲に記載の記憶制御装置の一例である。また、NVM制御部200およびNVM300は、特許請求の範囲に記載の記憶装置の一例である。
【0022】
図2は、本技術の実施の形態におけるNVM制御部200の構成例を示す図である。このNVM制御部200は、プロセッサインターフェース201と、NVMインターフェース203と、データバッファ210とを備えている。また、第1ECC生成部220と、第1ECC誤り検出部230と、第2ECC生成部240と、第2ECCバッファ250と、第2ECCバッファ制御部260と、第2ECC誤り検出部270と、誤り訂正部280と、アクセス制御部290とを備えている。
【0023】
プロセッサインターフェース201は、プロセッサ110との間のやりとりを行うためのインターフェースである。また、NVMインターフェース203は、NVM300との間のやりとりを行うためのインターフェースである。
【0024】
データバッファ210は、プロセッサ110とNVM300との間で転送されるデータのバッファである。プロセッサ110からNVM300に対するライト(ストア)動作であれば、プロセッサ110から受け付けられたデータが保持される。NVM300からプロセッサ110に対するリード(ロード)動作であれば、NVM300から読み出されたデータが保持される。
【0025】
第1ECC生成部220は、ライト動作の際、データバッファ210に保持されたデータについて第1のエラー訂正コード(第1ECC)を生成するものである。この第1ECC生成部220によって生成された第1ECCは、NVM300においてデータと対応付けて記憶される。したがって、この第1ECCは、NVM300におけるアクセス単位を符号化対象とするエラー訂正コードであることが好ましい。また、第1ECCとしては、BCH符号を採用することができる。なお、エラー訂正コードはエラー(誤り)検出の機能も包含しているため、誤り検出符号、エラー検出符号、エラー検出コードなどと呼称する場合もある。なお、第1ECC生成部220は、特許請求の範囲に記載の第1のエラー検出符号生成部の一例である。
【0026】
第1ECC誤り検出部230は、リード動作の際、NVM300から読み出されたデータおよび第1ECCに基づいて、データにおける誤り(エラー)を検出するものである。なお、第1ECC誤り検出部230は、特許請求の範囲に記載の第1のエラー検出部の一例である。
【0027】
第2ECC生成部240は、データバッファ210に保持されたデータについて第2のエラー訂正コード(第2ECC)を生成するものである。この第2ECC生成部240によって生成された第2ECCは、NVM300におけるデータと対応付けて、第2ECCバッファ250に保持される。この第2ECCの符号化対象の単位は、第1ECCよりも小さく設定される。例えば、NVM300におけるページアクセスの単位で第1ECCを生成し、NVM300におけるランダムアクセスの単位で第2ECCを生成することが考えられる。第1ECCの符号化対象の単位は、第2ECCの符号化対象の単位の整数倍であることが好ましい。以下の例では、第1ECCの符号化対象の単位を256バイト、第2ECCの符号化対象の単位を32バイトと想定するが、これに限定されるものではない。また、第2ECCとしては、ハミング符号を採用することができる。なお、第2ECC生成部240は、特許請求の範囲に記載の第2のエラー検出符号生成部の一例である。また、ページアクセス単位は特許請求の範囲に記載の第1のデータ単位の一例であり、ランダムアクセス単位は特許請求の範囲に記載の第2のデータ単位の一例である。
【0028】
第2ECCバッファ250は、第2ECC生成部240において生成された第2ECCを保持するバッファである。第2ECCはNVM300には記憶されず、この第2ECCバッファ250に一時的に保持される。NVM300には第1ECCが記憶されているため、基本的なデータ保持特性は第1ECCにより担保される。したがって、第2ECCは補助的に利用されるものであり、第2ECCバッファ250に容量上の制約がある場合には第2ECCを保持しないこともあり得る。この第2ECCバッファ250は同図のようにNVM制御部200の内部に存在してもよく、また、NVM制御部200の外部に設けてもよい。なお、第2ECCバッファ250は、特許請求の範囲に記載のエラー検出符号保持部の一例である。この第2ECCバッファ250の構成例については図面を参照して後述する。
【0029】
第2ECCバッファ制御部260は、第2ECCバッファ250の動作を制御するものである。この第2ECCバッファ制御部260は、第2ECCバッファ250に対するリードおよびライトの制御や、第2ECCバッファ250に保持された第2ECCとそのアドレスの管理などを行う。
【0030】
第2ECC誤り検出部270は、リード動作の際、NVM300から読み出されたデータおよび第2ECCバッファ250に保持されている第2ECCに基づいて、データにおける誤り(エラー)を検出するものである。なお、第2ECC誤り検出部270は、特許請求の範囲に記載の第2のエラー検出部の一例である。
【0031】
誤り訂正部280は、第1ECC誤り検出部230または第2ECC誤り検出部270において誤り(エラー)が検出された際に、その誤りを訂正するものである。この誤り訂正部280は、それぞれの誤りを検出したエラー訂正コードによって誤り訂正を行う。すなわち、第1ECC誤り検出部230において誤りが検出された場合には第1ECCにより誤り訂正を行い、第2ECC誤り検出部270において誤りが検出された場合には第2ECCにより誤り訂正を行う。なお、誤り訂正部280は、特許請求の範囲に記載のエラー訂正部の一例である。
【0032】
アクセス制御部290は、プロセッサ110からNVM300に対するアクセスを制御するものである。すなわち、このアクセス制御部290は、プロセッサ110からのコマンドおよびデータに基づいてNVM300に対するアクセス制御を行い、その結果をステータスとしてプロセッサ110に返す役割を有する。
【0033】
なお、ここでは、第1ECCによる訂正処理を前提としているため、第2ECCの訂正能力は第1ECCよりも低いもので構わない。例えば、第1ECCの符号化単位が256バイト、第2ECCの符号化単位が32バイトとしたとき、第1ECCにおいて8ビット訂正の訂正能力を有するのであれば、第2ECCにおいては2ビット訂正の訂正能力でも構わない。この場合、2ビット訂正の訂正能力であれば、NVM300のデータに対して約10%以下の容量で実現することができ、少ない容量で多くのデータ領域を高速化することができる。
【0034】
図3は、本技術の実施の形態におけるNVM300の構成例を示す図である。NVM300は、上述のように、フラッシュメモリにより構成されてもよく、不揮発性ランダムアクセスメモリ(NVRAM)により構成されてもよい。同図(a)はNVM300をNAND型フラッシュメモリにより構成した場合の例であり、同図(b)はNVM300をNVRAMにより構成した場合の例である。
【0035】
NAND型フラッシュメモリの場合は、ページ毎にまとめてアクセスされるため、第1ECC312を符号化対象となるデータ311に続いて記憶することが好ましい。一方、NVRAMの場合は、ランダムアクセスが可能であることから、第1ECC322をデータ321とは異なる領域に記憶することが好ましい。
【0036】
[第2ECCバッファの構成例]
図4は、本技術の実施の形態におけるメモリアドレスフィールドの一例を示す図である。この例では、第1ECCの符号化対象の単位を256バイト、第2ECCの符号化対象の単位を32バイトと想定している。したがって、32ビットアドレス空間とした場合、256バイトの第1ECC対象データ空間は下位8ビットのアドレスフィールドNVM−ADRL620に割り当てられる。残りの上位24ビットアドレスフィールドNVM−ADRU610は、タグアドレスとして第2ECCバッファ250における比較対象となる。
【0037】
下位8ビットアドレスNVM−ADRL620において、32バイトの第2ECC対象データ空間は下位5ビットのアドレスフィールドNVM−ADRLb622に割り当てられる。残りのアドレスフィールドNVM−ADRLa621は、第2ECCバッファ250において、ページアクセス単位の256バイトの中から目的のランダムアクセス単位の32ビットを特定するために利用される。
【0038】
図5は、本技術の実施の形態における第2ECCバッファ250の項目例を示す図である。この第2ECCバッファ250はn+1個のエントリ(nは1以上の整数)からなるテーブル構成を有しており、各エントリはタグアドレス251と第2ECC252との組合せを保持する。各エントリには、第2ECCバッファ250のバッファ内アドレスEBADRが付与されている。このテーブル構成の記憶素子としては、NVM300と異なり、揮発性メモリを用いることができる。
【0039】
なお、この例ではフルアソシアティブ方式のキャッシュメモリと同等の構成を想定しており、メモリアドレスとバッファ内アドレスとの間に制約は設けられていないため、各エントリにはメモリアドレスとは無関係に第2ECCを保持することができる。第2ECCバッファ250に空き領域がなくなった場合も通常のキャッシュメモリと同様のエントリ選択方式を採用することができる。例えば、LRU(Least Recently Used)方式により、最近最も使われていないエントリを利用することが考えられる。また、利用頻度が最も低いエントリを利用するようにしてもよい。
【0040】
タグアドレス251はアドレスフィールドの上位部分であり、上述の例では上位24ビットアドレスフィールドNVM−ADRUに相当する。この例では、それぞれのタグアドレスをEBADRi−ADRUと表す。ここで、iはバッファ内アドレスEBADRを意味する。
【0041】
第2ECC252は、上述のようにランダムアクセス単位のデータを符号化対象とするエラー訂正コードである。ここでは、ページアクセス単位の256バイトに対してランダムアクセス単位の32バイトのデータを符号化対象とするため、各エントリには8つずつの第2ECCが保持される。この例では、それぞれの第2ECCをEBADRi−ECC#jと表す。ここで、iはバッファ内アドレスEBADRを意味し、jはページアクセス単位の256バイトにおけるランダムアクセス単位の32ビットの順序(0乃至7の整数)を意味する。
【0042】
図6は、本技術の実施の形態における第2ECCバッファ250の構成例を示す図である。この第2ECCバッファ250は、上述のタグアドレス251と第2ECC252との組合せを保持するテーブルと、比較器253と、第1の選択器254と、第2の選択器255とを備える。
【0043】
比較器253は、上位アドレスNVM−ADRU610とタグアドレスEBADRi−ADRU251とを比較するn+1個の比較器である。この比較結果は第1の選択器254に供給される。
【0044】
第1の選択器254は、比較器253による比較結果に従って、8個の第2ECC252からなるn+1個のエントリの中から何れかのエントリを選択するものである。比較器253による比較の結果、n+1個のエントリの何れかに上位アドレスNVM−ADRU610と合致するタグアドレスが存在する場合には、対応するエントリに含まれる8個の第2ECC252が第1の選択器254において選択される。
【0045】
第2の選択器255は、第1の選択器254において選択された8個の第2ECC252の中から、アドレスフィールドNVM−ADRLa621によって特定された第2ECCを選択するものである。このようにして選択された第2ECCは、誤り検出のために第2ECC誤り検出部270に供給される。
【0046】
なお、ここでは読出しの際に必要な回路構成例を示したが、書込みの際にも同様の要領でメモリアドレスと第2ECCとの対応関係を特定することになる。
【0047】
<2.実施の形態の動作>
[情報処理システムの動作例]
図7は、本技術の実施の形態における情報処理システムのリード動作手順の一例を示す流れ図である。
【0048】
第2ECCバッファ250にリード対象となるデータの第2ECCが存在しなかった場合(ステップS911)、NVM300からページアクセス単位によるリードアクセスが行われる(ステップS921)。これにより、データおよび対応する第1ECCがNVM300から読み出される。
【0049】
NVM300から読み出されたデータおよび第1ECCに基づいて、第1ECC誤り検出部230がデータにおける誤りを検出し、誤り訂正部280が誤りを訂正する(ステップS922)。誤り訂正されたデータはデータバッファ210に保持される。これと並行して、NVM300から読み出されたデータについて、第2ECC生成部240において第2ECCの生成処理が行われる(ステップS923)。このようにして生成された第2ECCは第2ECCバッファ250に保持される(ステップS924)。ページアクセスの単位は、第2ECCの符号化対象であるランダムアクセスの単位よりも大きいため、複数の第2ECCを生成するために第2ECCの生成処理が繰り返される(ステップS925)。想定している例では、ページアクセスにより256バイトのデータが読み出されるため、32バイトを単位として8つの第2ECCが生成される。
【0050】
データバッファ210に保持されたページアクセス単位のデータのうち、リード対象となるデータがプロセッサインターフェース201を介してプロセッサ110に出力される(ステップS926)。
【0051】
一方、第2ECCバッファ250にリード対象となるデータの第2ECCが存在した場合(ステップS911)、その第2ECCが第2ECCバッファ250から読み出される(ステップS912)。これと並行して、そのリード対象となるデータのNVM300からの読出しが行われて、データバッファ210に保持される(ステップS913)。
【0052】
NVM300から読み出されたデータおよび第2ECCバッファ250から読み出された第2ECCに基づいて、第2ECC誤り検出部270がデータにおける誤りを検出し、誤り訂正部280が誤りを訂正する(ステップS914)。誤りの訂正が発生した場合にはデータバッファ210上で訂正個所が修正され、リード対象となるデータがプロセッサインターフェース201を介してプロセッサ110に出力される(ステップS915)。リード対象となるデータが完了していない場合にはデータが終了するまでNVM300からの読出しが繰り返される(ステップS916)。
【0053】
なお、ステップS922は、特許請求の範囲に記載の第1のエラー検出手順の一例である。また、ステップS923は、特許請求の範囲に記載の第2のエラー検出符号生成手順の一例である。また、ステップS914は、特許請求の範囲に記載の第2のエラー検出手順の一例である。
【0054】
図8は、本技術の実施の形態における情報処理システムのライト動作手順の一例を示す流れ図である。
【0055】
NVM300上では第1ECCによるデータ保護が行われるため、ライト動作の単位はページアクセス単位となる。そのため、まずライト対象データを含むページ全体のデータ(256バイト分)をNVM300からデータバッファ210に読み出す(ステップS931)。そして、プロセッサ110からのライトデータ(32バイト分)を、データバッファ210上のページアクセス単位のデータに埋め込むことにより反映させる(ステップS932)。
【0056】
このようにしてライトデータが反映されたデータバッファ210上のデータを対象として、第1ECC生成部220が第1ECCを生成する(ステップS933)。これと並行して、第2ECCバッファ250上の第2ECCが更新される。すなわち、ライト対象データに対応する第2ECCが第2ECCバッファ250上に存在する場合(ステップS934)、第2ECC生成部240がランダムアクセス単位で第2ECCを生成する(ステップS935)。生成された第2ECCは第2ECCバッファ250に保持されることにより更新される(ステップS936)。ライト対象となるデータの全てについて第2ECCが生成されていない場合には全ての第2ECCが生成されるまで第2ECC生成処理が繰り返される(ステップS937)。
【0057】
ライトデータが反映されたデータバッファ210上のページ全体のデータ(256バイト分)および第1ECC生成部220によって生成された第1ECCは、NVM300に書き込まれる(ステップS938)。
【0058】
なお、ステップS933は、特許請求の範囲に記載の第1のエラー検出符号生成手順の一例である。
【0059】
[処理速度の向上例]
図9は、本技術の実施の形態の情報処理システムによる処理速度向上例を示す図である。
【0060】
同図(a)は1回目のリード動作タイミングを示している。この場合、第2ECCバッファ250に第2ECCが保持されていないため、NVM300からページアクセス単位のデータを全て読み出した上で第1ECCによる誤り検出訂正処理を行う必要がある。したがって、リードビジー期間経過後、ページアクセス単位(256バイト分)のデータをNVM300からデータバッファ210に転送した後に、第1ECC誤り検出部230および誤り訂正部280において誤り検出訂正処理が行われる。その後、データバッファ210に保持されたページアクセス単位のデータの中からランダムアクセス単位(32バイト分)のデータがプロセッサ110に転送される。
【0061】
この1回目のリード動作では、データバッファ210への転送と並行して、第2ECC生成部240において第2ECCの生成が行われる。想定している例では、ページアクセスにより256バイトのデータが読み出されるため、32バイトを単位として8つの第2ECCが生成される。
【0062】
同図(b)は2回目以降のリード動作タイミングを示している。この場合、第2ECCバッファ250に第2ECCが保持されており、第1ECCによる誤り検出訂正処理を行う必要がないため、リード対象となるデータのみをNVM300からランダムアクセスすることができる。すなわち、リードビジー期間経過後、ランダムアクセス単位(32バイト分)のデータをNVM300からデータバッファ210に転送した後に、第2ECC誤り検出部270および誤り訂正部280において誤り検出訂正処理が行われる。その後、データバッファ210に保持されたランダムアクセス単位のデータ(32バイト分)がプロセッサ110に転送される。
【0063】
このように、2回目以降のリード動作では、第2ECCバッファ250に保持されている第2ECCを利用することができるため、リード対象となるデータのみをNVM300からリードすればよく、パフォーマンスを向上させることができる。
【0064】
[状態別動作まとめ]
図10は、本技術の実施の形態の情報処理システムにおける1回目のリード動作のデータフロー例を示す図である。この場合、第2ECCバッファ250に第2ECCが保持されていないため、NVM300からページアクセス単位のデータを全て読み出した上で第1ECCによる誤り検出訂正処理が行われる。誤り検出訂正処理結果は、データバッファ210および第2ECC生成部240へ出力される。生成された第2ECCは第2ECCバッファ250上に保持される。
【0065】
NVM300から読み出されるデータサイズはページサイズ単位であるため、第2ECC生成部240はランダムアクセス単位に分割して、それぞれについて第2ECCを生成し、第2ECCバッファ250へ出力する。データバッファ210に保持されたページアクセス単位のデータの中からリード対象のランダムアクセス単位のデータがプロセッサ110に転送される。
【0066】
図11は、本技術の実施の形態の情報処理システムにおける2回目以降のリード動作のデータフロー例を示す図である。この場合、第2ECCバッファ250に第2ECCが保持されており、第1ECCによる誤り検出訂正処理を行う必要がなく、第2ECCによって誤り検出訂正処理が行わる。その結果のデータはデータバッファ210を経由してプロセッサインターフェース201からプロセッサ110に出力される。NVM300からはランダムアクセス単位で読み出され、リード対象となるデータのみを読み出すことができる。
【0067】
図12は、本技術の実施の形態の情報処理システムにおいて第2ECCバッファ250に対応する第2ECCが存在する場合のライト動作のデータフロー例を示す図である。この場合、ライト対象データを含むページ全体のデータをNVM300からデータバッファ210に読み出す必要がある。そして、プロセッサ110からのライトデータを、データバッファ210上のページアクセス単位のデータに埋め込むことにより反映させる。その後、ページ全体のデータを第1ECC生成部220へ供給して第1ECCを生成し、生成された第1ECCとライトデータをNVM300へ出力する。それと同時に、ページ全体のデータを第2ECC生成部240へ供給して、ランダムアクセス単位の第2ECCを生成して、第2ECCバッファ250上の第2ECCの更新も行う。
【0068】
図13は、本技術の実施の形態の情報処理システムにおいて第2ECCバッファ250に対応する第2ECCが存在しない場合のライト動作のデータフロー例を示す図である。この場合も、ライト対象データを含むページ全体のデータをNVM300からデータバッファ210に読み出す必要がある。そして、プロセッサ110からのライトデータを、データバッファ210上のページアクセス単位のデータに埋め込むことにより反映させる。その後、ページ全体のデータを第1ECC生成部220へ供給して第1ECCを生成し、生成された第1ECCとライトデータをNVM300へ出力する。ただし、第2ECCバッファ250の更新は必要ないため、第2ECCの生成も行われない。
【0069】
このように、本技術の実施の形態によれば、第2ECCバッファ250を設けることにより、NVM300における記憶容量を圧迫することなく、アクセスサイズに応じて第1ECCまたは第2ECCを用いてエラー検出訂正処理を行うことができる。第2ECCバッファ250は、キャッシュメモリと同様の構造を有し、必要な容量の第2ECCのみが保持される。NVM300上のデータを書き換えることや、頻繁にアクセスすることなく、ランダムアクセス性能を向上させることができる。第2ECCはランダムアクセス単位に対する相対的な容量が大きいため、仮に第2ECCをNVM300に記憶してしまうとアクセス帯域へ影響を与えるおそれがあるが、この実施の形態によればNVM300における記憶容量を圧迫することはない。第2ECCバッファ250は不揮発性メモリによって構成することができるため、ビットコストを抑えることができる。
【0070】
なお、上述の実施の形態は本技術を具現化するための一例を示したものであり、実施の形態における事項と、特許請求の範囲における発明特定事項とはそれぞれ対応関係を有する。同様に、特許請求の範囲における発明特定事項と、これと同一名称を付した本技術の実施の形態における事項とはそれぞれ対応関係を有する。ただし、本技術は実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において実施の形態に種々の変形を施すことにより具現化することができる。
【0071】
また、上述の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。この記録媒体として、例えば、CD(Compact Disc)、MD(MiniDisc)、DVD(Digital Versatile Disk)、メモリカード、ブルーレイディスク(Blu-ray Disc(登録商標))等を用いることができる。
【0072】
なお、本技術は以下のような構成もとることができる。
(1)メモリから読み出された第1のデータ単位および当該第1のデータ単位に対応する第1のエラー検出符号に従ってエラー検出を行う第1のエラー検出部と、
前記第1のデータ単位よりも小さい第2のデータ単位に対応する第2のエラー検出符号が前記メモリとは異なるエラー検出符号保持部に保持されている場合に、前記メモリから読み出された前記第2のデータ単位および前記エラー検出符号保持部に保持されている前記第2のエラー検出符号に従ってエラー検出を行う第2のエラー検出部と
を具備する記憶制御装置。
(2)ライト対象となるデータを含む第1のデータ単位に対応して第1のエラー検出符号を生成して前記第1のデータ単位および前記第1のエラー検出符号をメモリに対してライトさせる第1のエラー検出符号生成部と、
前記第1のデータ単位よりも小さい第2のデータ単位に対応する第2のエラー検出符号を保持するエラー検出符号保持部と、
リード対象となるデータを含む前記第2のデータ単位に対応する前記第2のエラー検出符号が前記エラー検出符号保持部に保持されていない場合に、前記メモリから読み出された前記リード対象となるデータを含む前記第1のデータ単位および当該第1のデータ単位に対応する前記第1のエラー検出符号に従ってエラー検出を行う第1のエラー検出部と、
前記リード対象となるデータを含む前記第2のデータ単位に対応する前記第2のエラー検出符号が前記エラー検出符号保持部に保持されていない場合に、前記メモリから読み出された前記リード対象となるデータを含む前記第2のデータ単位に対応する前記第2のエラー検出符号を生成して前記エラー検出符号保持部に保持させる第2のエラー検出符号生成部と、
前記リード対象となるデータを含む前記第2のデータ単位に対応する第2のエラー検出符号が前記エラー検出符号保持部に保持されている場合に、前記メモリから読み出された前記リード対象となるデータを含む前記第2のデータ単位および前記エラー検出符号保持部に保持されている前記第2のエラー検出符号に従ってエラー検出を行う第2のエラー検出部と
を具備する記憶制御装置。
(3)前記第2のエラー検出符号生成部は、前記ライト対象となるデータを含む前記第2のデータ単位に対応する第2のエラー検出符号が前記エラー検出符号保持部に保持されている場合に、前記ライト対象となるデータを含む前記第2のデータ単位に対応する前記第2のエラー検出符号を生成して前記エラー検出符号保持部に保持させる
前記(2)に記載の記憶制御装置。
(4)前記第1または第2のエラー検出符号はエラー訂正機能を備え、
前記第1または第2のエラー検出部においてエラーが検出された場合に前記第1または第2のエラー検出符号に従ってエラー訂正を行うエラー訂正部をさらに具備する
前記(2)または(3)に記載の記憶制御装置。
(5)第1のデータ単位に対応する第1のエラー検出符号を前記第1のデータ単位と対応付けて記憶するメモリと、
ライト対象となるデータを含む前記第1のデータ単位に対応して前記第1のエラー検出符号を生成して前記第1のデータ単位および前記第1のエラー検出符号を前記メモリに対してライトさせる第1のエラー検出符号生成部と、
前記第1のデータ単位よりも小さい第2のデータ単位に対応する第2のエラー検出符号を保持するエラー検出符号保持部と、
リード対象となるデータを含む前記第2のデータ単位に対応する前記第2のエラー検出符号が前記エラー検出符号保持部に保持されていない場合に、前記メモリから読み出された前記リード対象となるデータを含む前記第1のデータ単位および当該第1のデータ単位に対応する前記第1のエラー検出符号に従ってエラー検出を行う第1のエラー検出部と、
前記リード対象となるデータを含む前記第2のデータ単位に対応する前記第2のエラー検出符号が前記エラー検出符号保持部に保持されていない場合に、前記メモリから読み出された前記リード対象となるデータを含む前記第2のデータ単位に対応する前記第2のエラー検出符号を生成して前記エラー検出符号保持部に保持させる第2のエラー検出符号生成部と、
前記リード対象となるデータを含む前記第2のデータ単位に対応する第2のエラー検出符号が前記エラー検出符号保持部に保持されている場合に、前記メモリから読み出された前記リード対象となるデータを含む前記第2のデータ単位および前記エラー検出符号保持部に保持されている前記第2のエラー検出符号に従ってエラー検出を行う第2のエラー検出部と
を具備する記憶装置。
(6)前記メモリは、不揮発性メモリである前記(5)に記載の記憶装置。
(7)第1のデータ単位に対応する第1のエラー検出符号を前記第1のデータ単位と対応付けて記憶するメモリと、
ライト対象となるデータを含む前記第1のデータ単位に対応して前記第1のエラー検出符号を生成して前記第1のデータ単位および前記第1のエラー検出符号を前記メモリに対してライトさせる第1のエラー検出符号生成部と、
前記第1のデータ単位よりも小さい第2のデータ単位に対応する第2のエラー検出符号を保持するエラー検出符号保持部と、
リード対象となるデータを含む前記第2のデータ単位に対応する前記第2のエラー検出符号が前記エラー検出符号保持部に保持されていない場合に、前記メモリから読み出された前記リード対象となるデータを含む前記第1のデータ単位および当該第1のデータ単位に対応する前記第1のエラー検出符号に従ってエラー検出を行う第1のエラー検出部と、
前記リード対象となるデータを含む前記第2のデータ単位に対応する前記第2のエラー検出符号が前記エラー検出符号保持部に保持されていない場合に、前記メモリから読み出された前記リード対象となるデータを含む前記第2のデータ単位に対応する前記第2のエラー検出符号を生成して前記エラー検出符号保持部に保持させる第2のエラー検出符号生成部と、
前記リード対象となるデータを含む前記第2のデータ単位に対応する第2のエラー検出符号が前記エラー検出符号保持部に保持されている場合に、前記メモリから読み出された前記リード対象となるデータを含む前記第2のデータ単位および前記エラー検出符号保持部に保持されている前記第2のエラー検出符号に従ってエラー検出を行う第2のエラー検出部と、
前記メモリに対してデータのリードまたはライトを要求するリクエストを発行するプロセッサと
を具備する情報処理システム。
(8)ライト対象となるデータを含む第1のデータ単位に対応して第1のエラー検出符号を生成して前記第1のデータ単位および前記第1のエラー検出符号をメモリに対してライトさせる第1のエラー検出符号生成手順と、
前記第1のデータ単位よりも小さい第2のデータ単位に対応する第2のエラー検出符号であってリード対象となるデータを含む前記第2のデータ単位に対応する前記第2のエラー検出符号が前記メモリとは異なるエラー検出符号保持部に保持されていない場合に、前記メモリから読み出された前記リード対象となるデータを含む前記第1のデータ単位および当該第1のデータ単位に対応する前記第1のエラー検出符号に従ってエラー検出を行う第1のエラー検出手順と、
前記リード対象となるデータを含む前記第2のデータ単位に対応する前記第2のエラー検出符号が前記エラー検出符号保持部に保持されていない場合に、前記メモリから読み出された前記リード対象となるデータを含む前記第2のデータ単位に対応する前記第2のエラー検出符号を生成して前記エラー検出符号保持部に保持させる第2のエラー検出符号生成手順と、
前記リード対象となるデータを含む前記第2のデータ単位に対応する第2のエラー検出符号が前記エラー検出符号保持部に保持されている場合に、前記メモリから読み出された前記リード対象となるデータを含む前記第2のデータ単位および前記エラー検出符号保持部に保持されている前記第2のエラー検出符号に従ってエラー検出を行う第2のエラー検出手順と
を具備する記憶制御方法。
【符号の説明】
【0073】
110 プロセッサ
120 DRAM
200 不揮発性メモリ(NVM)制御部
201 プロセッサインターフェース
203 不揮発性メモリ(NVM)インターフェース
210 データバッファ
220 第1ECC生成部
230 第1ECC誤り検出部
240 第2ECC生成部
250 第2ECCバッファ
251 タグアドレス
253 比較器
254 第1の選択器
255 第2の選択器
260 第2ECCバッファ制御部
270 第2ECC誤り検出部
280 誤り訂正部
290 アクセス制御部
300 不揮発性メモリ(NVM)

【特許請求の範囲】
【請求項1】
メモリから読み出された第1のデータ単位および当該第1のデータ単位に対応する第1のエラー検出符号に従ってエラー検出を行う第1のエラー検出部と、
前記第1のデータ単位よりも小さい第2のデータ単位に対応する第2のエラー検出符号が前記メモリとは異なるエラー検出符号保持部に保持されている場合に、前記メモリから読み出された前記第2のデータ単位および前記エラー検出符号保持部に保持されている前記第2のエラー検出符号に従ってエラー検出を行う第2のエラー検出部と
を具備する記憶制御装置。
【請求項2】
ライト対象となるデータを含む第1のデータ単位に対応して第1のエラー検出符号を生成して前記第1のデータ単位および前記第1のエラー検出符号をメモリに対してライトさせる第1のエラー検出符号生成部と、
前記第1のデータ単位よりも小さい第2のデータ単位に対応する第2のエラー検出符号を保持するエラー検出符号保持部と、
リード対象となるデータを含む前記第2のデータ単位に対応する前記第2のエラー検出符号が前記エラー検出符号保持部に保持されていない場合に、前記メモリから読み出された前記リード対象となるデータを含む前記第1のデータ単位および当該第1のデータ単位に対応する前記第1のエラー検出符号に従ってエラー検出を行う第1のエラー検出部と、
前記リード対象となるデータを含む前記第2のデータ単位に対応する前記第2のエラー検出符号が前記エラー検出符号保持部に保持されていない場合に、前記メモリから読み出された前記リード対象となるデータを含む前記第2のデータ単位に対応する前記第2のエラー検出符号を生成して前記エラー検出符号保持部に保持させる第2のエラー検出符号生成部と、
前記リード対象となるデータを含む前記第2のデータ単位に対応する第2のエラー検出符号が前記エラー検出符号保持部に保持されている場合に、前記メモリから読み出された前記リード対象となるデータを含む前記第2のデータ単位および前記エラー検出符号保持部に保持されている前記第2のエラー検出符号に従ってエラー検出を行う第2のエラー検出部と
を具備する記憶制御装置。
【請求項3】
前記第2のエラー検出符号生成部は、前記ライト対象となるデータを含む前記第2のデータ単位に対応する第2のエラー検出符号が前記エラー検出符号保持部に保持されている場合に、前記ライト対象となるデータを含む前記第2のデータ単位に対応する前記第2のエラー検出符号を生成して前記エラー検出符号保持部に保持させる
請求項2記載の記憶制御装置。
【請求項4】
前記第1または第2のエラー検出符号はエラー訂正機能を備え、
前記第1または第2のエラー検出部においてエラーが検出された場合に前記第1または第2のエラー検出符号に従ってエラー訂正を行うエラー訂正部をさらに具備する
請求項2記載の記憶制御装置。
【請求項5】
第1のデータ単位に対応する第1のエラー検出符号を前記第1のデータ単位と対応付けて記憶するメモリと、
ライト対象となるデータを含む前記第1のデータ単位に対応して前記第1のエラー検出符号を生成して前記第1のデータ単位および前記第1のエラー検出符号を前記メモリに対してライトさせる第1のエラー検出符号生成部と、
前記第1のデータ単位よりも小さい第2のデータ単位に対応する第2のエラー検出符号を保持するエラー検出符号保持部と、
リード対象となるデータを含む前記第2のデータ単位に対応する前記第2のエラー検出符号が前記エラー検出符号保持部に保持されていない場合に、前記メモリから読み出された前記リード対象となるデータを含む前記第1のデータ単位および当該第1のデータ単位に対応する前記第1のエラー検出符号に従ってエラー検出を行う第1のエラー検出部と、
前記リード対象となるデータを含む前記第2のデータ単位に対応する前記第2のエラー検出符号が前記エラー検出符号保持部に保持されていない場合に、前記メモリから読み出された前記リード対象となるデータを含む前記第2のデータ単位に対応する前記第2のエラー検出符号を生成して前記エラー検出符号保持部に保持させる第2のエラー検出符号生成部と、
前記リード対象となるデータを含む前記第2のデータ単位に対応する第2のエラー検出符号が前記エラー検出符号保持部に保持されている場合に、前記メモリから読み出された前記リード対象となるデータを含む前記第2のデータ単位および前記エラー検出符号保持部に保持されている前記第2のエラー検出符号に従ってエラー検出を行う第2のエラー検出部と
を具備する記憶装置。
【請求項6】
前記メモリは、不揮発性メモリである請求項5記載の記憶装置。
【請求項7】
第1のデータ単位に対応する第1のエラー検出符号を前記第1のデータ単位と対応付けて記憶するメモリと、
ライト対象となるデータを含む前記第1のデータ単位に対応して前記第1のエラー検出符号を生成して前記第1のデータ単位および前記第1のエラー検出符号を前記メモリに対してライトさせる第1のエラー検出符号生成部と、
前記第1のデータ単位よりも小さい第2のデータ単位に対応する第2のエラー検出符号を保持するエラー検出符号保持部と、
リード対象となるデータを含む前記第2のデータ単位に対応する前記第2のエラー検出符号が前記エラー検出符号保持部に保持されていない場合に、前記メモリから読み出された前記リード対象となるデータを含む前記第1のデータ単位および当該第1のデータ単位に対応する前記第1のエラー検出符号に従ってエラー検出を行う第1のエラー検出部と、
前記リード対象となるデータを含む前記第2のデータ単位に対応する前記第2のエラー検出符号が前記エラー検出符号保持部に保持されていない場合に、前記メモリから読み出された前記リード対象となるデータを含む前記第2のデータ単位に対応する前記第2のエラー検出符号を生成して前記エラー検出符号保持部に保持させる第2のエラー検出符号生成部と、
前記リード対象となるデータを含む前記第2のデータ単位に対応する第2のエラー検出符号が前記エラー検出符号保持部に保持されている場合に、前記メモリから読み出された前記リード対象となるデータを含む前記第2のデータ単位および前記エラー検出符号保持部に保持されている前記第2のエラー検出符号に従ってエラー検出を行う第2のエラー検出部と、
前記メモリに対してデータのリードまたはライトを要求するリクエストを発行するプロセッサと
を具備する情報処理システム。
【請求項8】
ライト対象となるデータを含む第1のデータ単位に対応して第1のエラー検出符号を生成して前記第1のデータ単位および前記第1のエラー検出符号をメモリに対してライトさせる第1のエラー検出符号生成手順と、
前記第1のデータ単位よりも小さい第2のデータ単位に対応する第2のエラー検出符号であってリード対象となるデータを含む前記第2のデータ単位に対応する前記第2のエラー検出符号が前記メモリとは異なるエラー検出符号保持部に保持されていない場合に、前記メモリから読み出された前記リード対象となるデータを含む前記第1のデータ単位および当該第1のデータ単位に対応する前記第1のエラー検出符号に従ってエラー検出を行う第1のエラー検出手順と、
前記リード対象となるデータを含む前記第2のデータ単位に対応する前記第2のエラー検出符号が前記エラー検出符号保持部に保持されていない場合に、前記メモリから読み出された前記リード対象となるデータを含む前記第2のデータ単位に対応する前記第2のエラー検出符号を生成して前記エラー検出符号保持部に保持させる第2のエラー検出符号生成手順と、
前記リード対象となるデータを含む前記第2のデータ単位に対応する第2のエラー検出符号が前記エラー検出符号保持部に保持されている場合に、前記メモリから読み出された前記リード対象となるデータを含む前記第2のデータ単位および前記エラー検出符号保持部に保持されている前記第2のエラー検出符号に従ってエラー検出を行う第2のエラー検出手順と
を具備する記憶制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate


【公開番号】特開2013−92854(P2013−92854A)
【公開日】平成25年5月16日(2013.5.16)
【国際特許分類】
【出願番号】特願2011−233602(P2011−233602)
【出願日】平成23年10月25日(2011.10.25)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】