JP2011150486A - データ処理装置 - Google Patents
データ処理装置 Download PDFInfo
- Publication number
- JP2011150486A JP2011150486A JP2010010400A JP2010010400A JP2011150486A JP 2011150486 A JP2011150486 A JP 2011150486A JP 2010010400 A JP2010010400 A JP 2010010400A JP 2010010400 A JP2010010400 A JP 2010010400A JP 2011150486 A JP2011150486 A JP 2011150486A
- Authority
- JP
- Japan
- Prior art keywords
- data
- area
- address
- cache
- code
- 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.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
【課題】データとECCデータが同じメモリに配置されている場合に、パーシャルアクセスにおけるメモリアクセスの高速化を図る。
【解決手段】領域管理部11は、メモリ2をキャッシュ領域とキャッシュ不可領域に分け、キャッシュ不可領域はECCデータが対象とする制御対象データサイズをパーシャルアクセスに対応させて1バイト等とし、制御対象データサイズ分のデータに対してECCデータを設ける。CPU1からのアクセス要求がキャッシュ不可領域の場合、キャッシュ不可領域における制御対象データサイズに従ってデータの読み出し、書き込みが行われ、読み出し時の誤り訂正及び書き込み時のECCデータの生成もキャッシュ不可領域における制御対象データサイズ分のデータに対して行われ、リードデータ又はライトデータ以外のデータに対する処理を待つ必要がなく、パーシャルアクセスにおけるメモリアクセスを高速化できる。
【選択図】図1
【解決手段】領域管理部11は、メモリ2をキャッシュ領域とキャッシュ不可領域に分け、キャッシュ不可領域はECCデータが対象とする制御対象データサイズをパーシャルアクセスに対応させて1バイト等とし、制御対象データサイズ分のデータに対してECCデータを設ける。CPU1からのアクセス要求がキャッシュ不可領域の場合、キャッシュ不可領域における制御対象データサイズに従ってデータの読み出し、書き込みが行われ、読み出し時の誤り訂正及び書き込み時のECCデータの生成もキャッシュ不可領域における制御対象データサイズ分のデータに対して行われ、リードデータ又はライトデータ以外のデータに対する処理を待つ必要がなく、パーシャルアクセスにおけるメモリアクセスを高速化できる。
【選択図】図1
Description
本発明は、メモリアクセスを高速化する技術に関し、例えば、高性能、高信頼化、小型化の要求される組込み情報処理装置におけるメモリアクセスを高速化する技術に関する。
パソコン、サーバなどの高性能、高信頼化が要求される情報処理装置においては、メモリとして、データを格納するデータメモリと、ECC(Error Checking and Correcting)チェックコードを格納するECCメモリが実装され、データとECCチェックコード(以下、ECCチェックデータともいう)を同時にアクセスし、ECCの誤り訂正を行うことで、高性能、高信頼化を両立している(例えば、特許文献1)。
例えば、組み込み情報処理装置は、基板への実装部品の制約や、小型基板による配線エリアの制約から、ECCチェックコードを格納する専用のECCメモリを実装することが困難にもかかわらず、組み込み情報処理装置が提供するサービスの多様化から、高性能、高信頼化が求められている。
ECCチェックコード専用のECCメモリを実装することなく、高信頼化を実現するには、データメモリにECCチェックコードも配置し、データの読み出し後、ECCチェックコードを読み出す必要がある。
しかし、このようなメモリアクセス方法では、ECCチェックコードの対象となるデータを全て読み出さなければならず、メモリアクセスの高性能化の課題となっている。
ECCチェックコード専用のECCメモリを実装することなく、高信頼化を実現するには、データメモリにECCチェックコードも配置し、データの読み出し後、ECCチェックコードを読み出す必要がある。
しかし、このようなメモリアクセス方法では、ECCチェックコードの対象となるデータを全て読み出さなければならず、メモリアクセスの高性能化の課題となっている。
つまり、例えば、図7に示す構成のように、ECCチェックコード専用のECCメモリを設けず、データメモリにECCチェックコードも配置している構成では、メモリ制御装置110は、複数個所のデータ読み出しを行い、ECC誤り訂正部180が、読み出したデータ群とECCチェックコードにより、データの正当性を保障している。
この場合、パーシャルアクセスであっても、ブロックアクセスと同様に、複数個所のデータをすべて読み出さなければならず、パーシャルアクセスのレイテンシ増加を引き起こしている。
以下にて、具体例を用いて説明する。
この場合、パーシャルアクセスであっても、ブロックアクセスと同様に、複数個所のデータをすべて読み出さなければならず、パーシャルアクセスのレイテンシ増加を引き起こしている。
以下にて、具体例を用いて説明する。
図8は、ECCチェックコード専用のECCメモリを設けず、データメモリにECCチェックコードも配置している構成におけるデータメモリ上のデータの配置例を示している。
図8の例では、4バイトのデータに対して1バイトのECCチェックコードを設けている例を示している。
図8の例では、4バイトのデータについて1バイトごとの読み出しを4回行い、更に、1バイトのECCチェックデータの読み出しを1回行って、データの保障を実現している。
ブロックリードでは、4バイトのデータについて1バイトごとの読み出しを4回行い、更に、1バイトのECCチェックデータの読み出しを1回行って、全データ(4バイト)を返答する。
パーシャルリードでも、4バイトのデータについて1バイトごとの読み出しを4回行い、更に、1バイトのECCチェックデータの読み出しを1回行い、データの確認後に、必要データ(一部のデータ)のみを返答する。
ブロックライトでは、4バイトのデータについて1バイトごとの書き込みを4回行い、更に、1バイトのECCチェックデータの書き込みを1回行って、全データの更新を行う。
パーシャルライトでは、4バイトのデータについて1バイトごとの読み出しを4回行い、更に、1バイトのECCチェックデータの読み出しを1回行って、データの確認後に、ライトデータをマージして、チェックデータを再生成し、書き込む。
このように、図8の構成では、4バイトのデータをすべて読み出さないとECCチェックコードによる誤り制御又はECCチェックデータの生成ができないため、例えば、1バイトのデータのみを対象とするパーシャルリード又はパーシャルライトであっても、4バイトのデータを読み出す必要がある。
このため、リード対象のデータ、ライト対象のデータ以外のデータの読み出しが完了するのを待たなければならず、パーシャルアクセスにおいてレイテンシが発生するという課題がある。
図8の例では、4バイトのデータに対して1バイトのECCチェックコードを設けている例を示している。
図8の例では、4バイトのデータについて1バイトごとの読み出しを4回行い、更に、1バイトのECCチェックデータの読み出しを1回行って、データの保障を実現している。
ブロックリードでは、4バイトのデータについて1バイトごとの読み出しを4回行い、更に、1バイトのECCチェックデータの読み出しを1回行って、全データ(4バイト)を返答する。
パーシャルリードでも、4バイトのデータについて1バイトごとの読み出しを4回行い、更に、1バイトのECCチェックデータの読み出しを1回行い、データの確認後に、必要データ(一部のデータ)のみを返答する。
ブロックライトでは、4バイトのデータについて1バイトごとの書き込みを4回行い、更に、1バイトのECCチェックデータの書き込みを1回行って、全データの更新を行う。
パーシャルライトでは、4バイトのデータについて1バイトごとの読み出しを4回行い、更に、1バイトのECCチェックデータの読み出しを1回行って、データの確認後に、ライトデータをマージして、チェックデータを再生成し、書き込む。
このように、図8の構成では、4バイトのデータをすべて読み出さないとECCチェックコードによる誤り制御又はECCチェックデータの生成ができないため、例えば、1バイトのデータのみを対象とするパーシャルリード又はパーシャルライトであっても、4バイトのデータを読み出す必要がある。
このため、リード対象のデータ、ライト対象のデータ以外のデータの読み出しが完了するのを待たなければならず、パーシャルアクセスにおいてレイテンシが発生するという課題がある。
本発明は、上述の課題を解決することを主な目的としており、ECCチェックデータの配置を工夫することで、メモリアクセスの高性能化を図ることを主な目的としている。
本発明に係るデータ処理装置は、
データとデータに対する誤り制御用コードが格納される記憶装置と、前記記憶装置からのデータ読み出しを要求するデータ要求装置に接続されたデータ処理装置であって、
前記記憶装置を複数の領域に区分して管理し、誤り制御用コードが誤り制御の対象とするデータサイズである制御対象データサイズを領域ごとに変えて定義し、制御対象データサイズ分のデータごとに誤り制御用コードが領域内の所定位置に配置されるように各領域を管理し、読み出しアドレスが示されるデータ読み出し要求を前記データ要求装置から入力した際に、前記読み出しアドレスに基づいてデータ読み出しの対象となる領域を前記複数の領域の中から読み出し領域として判別するとともに、前記読み出し領域における前記読み出しアドレスに相当するアドレスを導出し導出したアドレスをデータアドレスとして前記記憶装置に出力し、前記読み出し領域における誤り制御用コードの配置に基づき読み出しの対象となる誤り制御用コードのアドレスを導出し導出したアドレスをコードアドレスとして前記記憶装置に出力する領域管理部と、
前記記憶装置から、前記データアドレスに対応するデータを制御対象データサイズ分取得するとともに、当該制御対象データサイズ分のデータに対する誤り制御用コードを取得するデータ読み出し部と、
前記データ読み出し部により取得された誤り制御用コードを用いて、前記データ読み出し部により取得された制御対象データサイズ分のデータの誤り制御を行う誤り制御実施部を有することを特徴とする。
データとデータに対する誤り制御用コードが格納される記憶装置と、前記記憶装置からのデータ読み出しを要求するデータ要求装置に接続されたデータ処理装置であって、
前記記憶装置を複数の領域に区分して管理し、誤り制御用コードが誤り制御の対象とするデータサイズである制御対象データサイズを領域ごとに変えて定義し、制御対象データサイズ分のデータごとに誤り制御用コードが領域内の所定位置に配置されるように各領域を管理し、読み出しアドレスが示されるデータ読み出し要求を前記データ要求装置から入力した際に、前記読み出しアドレスに基づいてデータ読み出しの対象となる領域を前記複数の領域の中から読み出し領域として判別するとともに、前記読み出し領域における前記読み出しアドレスに相当するアドレスを導出し導出したアドレスをデータアドレスとして前記記憶装置に出力し、前記読み出し領域における誤り制御用コードの配置に基づき読み出しの対象となる誤り制御用コードのアドレスを導出し導出したアドレスをコードアドレスとして前記記憶装置に出力する領域管理部と、
前記記憶装置から、前記データアドレスに対応するデータを制御対象データサイズ分取得するとともに、当該制御対象データサイズ分のデータに対する誤り制御用コードを取得するデータ読み出し部と、
前記データ読み出し部により取得された誤り制御用コードを用いて、前記データ読み出し部により取得された制御対象データサイズ分のデータの誤り制御を行う誤り制御実施部を有することを特徴とする。
本発明によれば、記憶装置を複数の領域に区分して管理し、制御対象データサイズを領域ごとに変えて定義し、制御対象データサイズ分のデータごとに誤り制御用コードが配置されるようにしているので、いずれかの領域の制御対象データサイズをパーシャルアクセスのデータサイズに合わせることにより、パーシャルアクセスにおいて、誤り制御のため又は誤り制御用コードの生成のためにアクセス対象データ以外のデータに対する処理の完了を待つ必要がなく、パーシャルアクセスにおけるメモリアクセスを高速化することができる。
実施の形態1.
本実施の形態及び以降の実施の形態では、上述の課題を解決すべく、データメモリをアクセスするサイズ(例えば、キャッシュ領域であればキャッシュメモリの1ラインがアクセスサイズとなる)に応じて、領域を分割し、アクセスサイズにあったECCチェックデータの配置を行うことで、メモリアクセスの高性能化を図っている。
以下にて、詳細を説明する。
本実施の形態及び以降の実施の形態では、上述の課題を解決すべく、データメモリをアクセスするサイズ(例えば、キャッシュ領域であればキャッシュメモリの1ラインがアクセスサイズとなる)に応じて、領域を分割し、アクセスサイズにあったECCチェックデータの配置を行うことで、メモリアクセスの高性能化を図っている。
以下にて、詳細を説明する。
図1は、本実施の形態に係るメモリ制御装置10を含む全体構成例を示すブロック図である。
本実施の形態に係るメモリ制御装置10は、CPU(Central Processing Unit)1及びメモリ2に接続されている。
なお、CPU1は、メモリ制御装置10に対して、メモリ2からのデータ読み出し、及びメモリ2へのデータ書き込みを要求し、データ要求装置の例である。
また、メモリ2は、データとECCチェックコード(誤り制御用コード)を記憶しており、記憶装置の例である。
また、メモリ制御装置10は、データ処理装置の例である。
なお、CPU1は、メモリ制御装置10に対して、メモリ2からのデータ読み出し、及びメモリ2へのデータ書き込みを要求し、データ要求装置の例である。
また、メモリ2は、データとECCチェックコード(誤り制御用コード)を記憶しており、記憶装置の例である。
また、メモリ制御装置10は、データ処理装置の例である。
次に、メモリ制御装置10の内部構成について説明する。
領域判定部11はCPU1がアクセスしたアドレスがキャッシュ領域か、キャッシュ不可領域かを判定する。
キャッシュ領域は、プロセッサのキャッシュメモリに格納され得るメモリ領域であり、制御対象データサイズがキャッシュメモリにおけるキャッシュラインサイズに基づいて定められている。
キャッシュ不可領域は、プロセッサのキャッシュメモリに格納できないメモリ領域であり、制御対象データサイズがキャッシュメモリにおけるキャッシュラインサイズから独立して定められている。
キャッシュ不可領域は、例えば、複数のプロセッサなどで共有されるメモリエリアなどである(高価なプロセッサでは、キャッシュメモリにデータの一貫性を維持する機能を持っているが、廉価なプロセッサでは、キャッシュメモリにデータの一貫性を維持する機能を持っておらず、複数のプロセッサで共有されるデータをキャッシュメモリに格納しないことで共有を実現している)。
なお、制御対象データサイズとは、ECCチェックコードが誤り制御の対象とするデータサイズ(ECCチェックコードに対応するデータのデータサイズ)である。
キャッシュ不可領域は、プロセッサのキャッシュメモリに格納できないメモリ領域であり、制御対象データサイズがキャッシュメモリにおけるキャッシュラインサイズから独立して定められている。
キャッシュ不可領域は、例えば、複数のプロセッサなどで共有されるメモリエリアなどである(高価なプロセッサでは、キャッシュメモリにデータの一貫性を維持する機能を持っているが、廉価なプロセッサでは、キャッシュメモリにデータの一貫性を維持する機能を持っておらず、複数のプロセッサで共有されるデータをキャッシュメモリに格納しないことで共有を実現している)。
なお、制御対象データサイズとは、ECCチェックコードが誤り制御の対象とするデータサイズ(ECCチェックコードに対応するデータのデータサイズ)である。
詳細は後述するが、領域判定部11は、メモリ2をキャッシュ領域とキャッシュ不可領域に分け、キャッシュ不可領域は制御対象データサイズをパーシャルアクセスに対応させて1バイト等の小さいデータサイズとし、制御対象データサイズ分のデータに対してECCチェックデータを設けるよう管理する。
CPU1からのアクセス要求がキャッシュ不可領域の場合は、キャッシュ不可領域における制御対象データサイズに従ってデータの読み出し、書き込みが行われ、読み出しの際のECCチェックデータによる誤り訂正及び書き込みの際のECCチェックデータの生成もキャッシュ不可領域における制御対象データサイズ分のデータサイズに対して行われるため、リードデータ又はライトデータ以外のデータに対する処理を待つ必要がなく、パーシャルアクセスにおけるメモリアクセスを高速化できる。
CPU1からのアクセス要求がキャッシュ不可領域の場合は、キャッシュ不可領域における制御対象データサイズに従ってデータの読み出し、書き込みが行われ、読み出しの際のECCチェックデータによる誤り訂正及び書き込みの際のECCチェックデータの生成もキャッシュ不可領域における制御対象データサイズ分のデータサイズに対して行われるため、リードデータ又はライトデータ以外のデータに対する処理を待つ必要がなく、パーシャルアクセスにおけるメモリアクセスを高速化できる。
キャッシュ領域アクセス制御部12は、CPU1のアクセスがキャッシュ領域であると想定し、メモリ2に対してデータのアドレスとしてキャッシュ領域内の物理アドレスを生成し、また、ECCチェックデータのアドレスとしてキャッシュ領域内の物理アドレスを生成する。
キャッシュ不可領域アクセス制御部13は、CPU1のアクセスがキャッシュ不可領域であると想定し、メモリ2に対してデータのアドレスとしてキャッシュ不可領域内の物理アドレスを生成し、また、ECCチェックデータのアドレスとしてキャッシュ不可領域内の物理アドレスを生成する。
セレクタ16は、領域判定部11による判定結果によりキャッシュ領域アクセス制御部12のアドレス出力又はキャッシュ不可領域アクセス制御部13のアドレス出力を選択する。
前述のように、領域判定部11は、CPU1からのアクセスアドレスの領域がキャッシュ領域であるか、キャッシュ不可領域であるかを判定するため、セレクタ16は領域判定部11の判定結果に基づきキャッシュ領域アクセス制御部12のアドレス出力又はキャッシュ不可領域アクセス制御部13のアドレス出力を選択する。
なお、データ読み出しの場合は、領域判定部11により選択され、セレクタ16によりメモリ2に出力されるデータのアドレスはデータアドレスに相当し、ECCチェックデータのアドレスはコードアドレスに相当する。
また、データ書き込み場合は、領域判定部11により選択され、ECC生成部14に出力されるデータのアドレスはデータアドレスに相当し、ECCチェックデータのアドレスはコードアドレスに相当する。
前述のように、領域判定部11は、CPU1からのアクセスアドレスの領域がキャッシュ領域であるか、キャッシュ不可領域であるかを判定するため、セレクタ16は領域判定部11の判定結果に基づきキャッシュ領域アクセス制御部12のアドレス出力又はキャッシュ不可領域アクセス制御部13のアドレス出力を選択する。
なお、データ読み出しの場合は、領域判定部11により選択され、セレクタ16によりメモリ2に出力されるデータのアドレスはデータアドレスに相当し、ECCチェックデータのアドレスはコードアドレスに相当する。
また、データ書き込み場合は、領域判定部11により選択され、ECC生成部14に出力されるデータのアドレスはデータアドレスに相当し、ECCチェックデータのアドレスはコードアドレスに相当する。
ECC生成部14は、CPU1からの書き込み要求に従い、領域判定部11で判定された書き込みアドレスに対応する領域がキャッシュ領域及びキャッシュ不可領域のどちらであるかという領域情報と、ライトデータからECCチェックデータを生成する。
つまり、ECC生成部14は、書き込み領域がキャッシュ領域である場合は、キャッシュ領域における制御対象データサイズ分のデータ(例えば、4バイトのデータ)に対するECCチェックデータを書き込みデータの内容を反映させて生成する。一方、書き込み領域がキャッシュ不可領域である場合は、キャッシュ不可領域における制御対象データサイズ分のデータ(例えば、1バイトのデータ)に対するECCチェックデータを書き込みデータの内容を反映させて生成する。
また、ECC生成部14は、キャッシュ領域アクセス制御部12又はキャッシュ不可領域アクセス制御部13から書き込みデータ及びECCチェックデータの書き込み先の物理アドレスを入力し、入力した物理アドレスに書き込みデータ及びECCチェックデータを書き込み。
ECC生成部14は、誤り制御用コード生成部及びデータ書き込み部の例である。
つまり、ECC生成部14は、書き込み領域がキャッシュ領域である場合は、キャッシュ領域における制御対象データサイズ分のデータ(例えば、4バイトのデータ)に対するECCチェックデータを書き込みデータの内容を反映させて生成する。一方、書き込み領域がキャッシュ不可領域である場合は、キャッシュ不可領域における制御対象データサイズ分のデータ(例えば、1バイトのデータ)に対するECCチェックデータを書き込みデータの内容を反映させて生成する。
また、ECC生成部14は、キャッシュ領域アクセス制御部12又はキャッシュ不可領域アクセス制御部13から書き込みデータ及びECCチェックデータの書き込み先の物理アドレスを入力し、入力した物理アドレスに書き込みデータ及びECCチェックデータを書き込み。
ECC生成部14は、誤り制御用コード生成部及びデータ書き込み部の例である。
ECC誤り訂正部15は、CPU1からの読み出し要求に従い、領域判定部11で判定された読み出しアドレスに対応する領域がキャッシュ領域及びキャッシュ不可領域のどちらであるかという領域情報と、メモリ2から読み出したデータとECCチェックデータからECC誤り訂正を行う。
つまり、メモリ2から、データアドレスに対応する制御対象データサイズ分のデータを取得するとともに、当該制御対象データサイズ分のデータに対するECCチェックデータを取得し、取得したECCチェックデータを用いて、取得した制御対象データサイズ分のデータの誤り訂正を行う。
ECC誤り訂正部15は、データ読み出し部及び誤り制御実施部の例である。
つまり、メモリ2から、データアドレスに対応する制御対象データサイズ分のデータを取得するとともに、当該制御対象データサイズ分のデータに対するECCチェックデータを取得し、取得したECCチェックデータを用いて、取得した制御対象データサイズ分のデータの誤り訂正を行う。
ECC誤り訂正部15は、データ読み出し部及び誤り制御実施部の例である。
なお、領域判定部11、キャッシュ領域アクセス制御部12、キャッシュ不可領域アクセス制御部13、ECC生成部14、ECC誤り訂正部15は、それぞれ、回路等のハードウェアであってもよいし、ソフトウェアであってもよい。ソフトウェアである場合は、メモリ制御装置10内の所定の記憶領域に格納され、メモリ制御装置10内の所定の演算装置により読み出されて、各部が実行される。
図2は、データ幅32bitのメモリに配置されたデータとECCチェックデータの配置例である。
キャッシュ領域において、データ000からデータ003の4バイトに対応するECCチェックデータがECC000(1バイト分)であり、データ004からデータ007の4バイトに対応するECCチェックデータがECC004(1バイト分)である。
また、データ000からデータ00Fの16バイトがキャッシュメモリの1ライン分であり、ECC000からECC00Cの4バイトが1ラインに対応するECCチェックデータである。
キャッシュ不可領域において、データ100の1バイトに対応するECCチェックデータがECC100(1バイト)であり、データ101の1バイトに対応するECCチェックデータがECC101(1バイト)である。
キャッシュ領域において、データ000からデータ003の4バイトに対応するECCチェックデータがECC000(1バイト分)であり、データ004からデータ007の4バイトに対応するECCチェックデータがECC004(1バイト分)である。
また、データ000からデータ00Fの16バイトがキャッシュメモリの1ライン分であり、ECC000からECC00Cの4バイトが1ラインに対応するECCチェックデータである。
キャッシュ不可領域において、データ100の1バイトに対応するECCチェックデータがECC100(1バイト)であり、データ101の1バイトに対応するECCチェックデータがECC101(1バイト)である。
このように、本実施の形態では、領域判定部11が、メモリ2の領域をキャッシュ領域とキャッシュ不可領域という複数の領域に区分して管理し、誤り制御用コードが誤り制御の対象とする制御対象データサイズを領域ごとに変えて定義し、また、制御対象データサイズ分のデータごとにECCチェックコードが領域内の所定位置に配置されるように各領域を管理している。
具体的には、キャッシュ領域では制御対象データサイズが4バイトであり、4バイト分のデータごとにECCチェックコードがキャッシュ領域内に配置されている。また、キャッシュ不可領域では制御対象データサイズが1バイトであり、1バイト分のデータごとにECCチェックコードがキャッシュ領域内に配置されている。
キャッシュ領域では、制御対象データサイズは、キャッシュラインサイズに基づいて定められている。一方、キャッシュ不可領域では、制御対象データサイズはキャッシュラインサイズから独立して定めることができ、例えば、パーシャルアクセスで頻繁に用いられるデータサイズを制御対象データとすることができる。
キャッシュ領域では、データの配置領域とECCチェックコードの配置領域が分けられ、キャッシュ1ライン分のデータ(16バイト)に対する4つのECCチェックコード(4バイト)がデータの順序に従って連続して配置されている。
一方、キャッシュ不可領域では、1バイトのデータに後続して対応するECCチェックコードが配置されている。
また、領域判定部11は、CPU1からアクセスアドレス(読み出しアドレス又は書き込みアドレス)が示されるアクセス要求(データ読み出し要求又はデータ書き込み要求)を入力した際に、アクセスアドレスに基づいて読み出し又は書き込みの対象となる領域としてキャッシュ領域又はキャッシュ不可領域を選択する。
なお、読み出しの対象の領域として選択した領域を読み出し領域とも呼ぶ。
また、書き込みの対象の領域として選択した領域を書き込み領域とも呼ぶ。
具体的には、キャッシュ領域では制御対象データサイズが4バイトであり、4バイト分のデータごとにECCチェックコードがキャッシュ領域内に配置されている。また、キャッシュ不可領域では制御対象データサイズが1バイトであり、1バイト分のデータごとにECCチェックコードがキャッシュ領域内に配置されている。
キャッシュ領域では、制御対象データサイズは、キャッシュラインサイズに基づいて定められている。一方、キャッシュ不可領域では、制御対象データサイズはキャッシュラインサイズから独立して定めることができ、例えば、パーシャルアクセスで頻繁に用いられるデータサイズを制御対象データとすることができる。
キャッシュ領域では、データの配置領域とECCチェックコードの配置領域が分けられ、キャッシュ1ライン分のデータ(16バイト)に対する4つのECCチェックコード(4バイト)がデータの順序に従って連続して配置されている。
一方、キャッシュ不可領域では、1バイトのデータに後続して対応するECCチェックコードが配置されている。
また、領域判定部11は、CPU1からアクセスアドレス(読み出しアドレス又は書き込みアドレス)が示されるアクセス要求(データ読み出し要求又はデータ書き込み要求)を入力した際に、アクセスアドレスに基づいて読み出し又は書き込みの対象となる領域としてキャッシュ領域又はキャッシュ不可領域を選択する。
なお、読み出しの対象の領域として選択した領域を読み出し領域とも呼ぶ。
また、書き込みの対象の領域として選択した領域を書き込み領域とも呼ぶ。
CPU1からのアクセスアドレスは、データの論理アドレスを示している。
領域判定部11は、アクセスアドレス(論理アドレス)から、アクセス対象となる領域がキャッシュ領域又はキャッシュ不可領域でいずれであるかを判別し、セレクタ16を操作する。
また、キャッシュ領域アクセス制御部12は、アクセスアドレス(論理アドレス)から、キャッシュ領域におけるデータの物理アドレスとECCチェックデータの物理アドレスを導出し、また、キャッシュ不可領域アクセス制御部13も、アクセスアドレス(論理アドレス)から、キャッシュ不可領域におけるデータの物理アドレスとECCチェックデータの物理アドレスを導出する。
メモリ2にデータとECCチェックデータを混在して配置するため、このようなアドレス変換が発生する。
そして、キャッシュ領域アクセス制御部12で導出されたデータの物理アドレスとECCチェックコードの物理アドレス又はキャッシュ不可領域アクセス制御部13で導出されたデータの物理アドレスとECCチェックコードの物理アドレスが領域判定部11による判断に従ってセレクタ16により選択され、メモリ2に出力される。
領域判定部11は、アクセスアドレス(論理アドレス)から、アクセス対象となる領域がキャッシュ領域又はキャッシュ不可領域でいずれであるかを判別し、セレクタ16を操作する。
また、キャッシュ領域アクセス制御部12は、アクセスアドレス(論理アドレス)から、キャッシュ領域におけるデータの物理アドレスとECCチェックデータの物理アドレスを導出し、また、キャッシュ不可領域アクセス制御部13も、アクセスアドレス(論理アドレス)から、キャッシュ不可領域におけるデータの物理アドレスとECCチェックデータの物理アドレスを導出する。
メモリ2にデータとECCチェックデータを混在して配置するため、このようなアドレス変換が発生する。
そして、キャッシュ領域アクセス制御部12で導出されたデータの物理アドレスとECCチェックコードの物理アドレス又はキャッシュ不可領域アクセス制御部13で導出されたデータの物理アドレスとECCチェックコードの物理アドレスが領域判定部11による判断に従ってセレクタ16により選択され、メモリ2に出力される。
本実施の形態に係る領域判定部11、キャッシュ領域アクセス制御部12、キャッシュ不可領域アクセス制御部13及びセレクタ16は、このように動作し、それぞれ、領域管理部に相当する。
ここで、領域判定部11における領域判定手順、キャッシュ領域アクセス制御部12とキャッシュ不可領域アクセス制御部13におけるデータアドレスとECCチェックデータアドレス(ECCアドレスとも表記する)の生成手順を例を用いて説明する。
例えば、キャッシュ領域はメモリ2の先頭(0番地)から配置されているものとする。
また、キャッシュ領域は、データαバイトに対してECCチェックデータが1バイト設けられているとする。また、データ用の領域がβMバイトであり、ECCチェックデータ用の領域がβ/αMバイトであるとする。
キャッシュ不可領域では、データγバイトに対してECCチェックデータが1バイト設けられているとする。また、データ用の領域がδMバイトであり、ECCチェックデータ用の領域がδ/γMバイトであるとする。
なお、このような情報は予め、領域判定部11、キャッシュ領域アクセス制御部12とキャッシュ不可領域アクセス制御部13に設定されている。
また、キャッシュ領域は、データαバイトに対してECCチェックデータが1バイト設けられているとする。また、データ用の領域がβMバイトであり、ECCチェックデータ用の領域がβ/αMバイトであるとする。
キャッシュ不可領域では、データγバイトに対してECCチェックデータが1バイト設けられているとする。また、データ用の領域がδMバイトであり、ECCチェックデータ用の領域がδ/γMバイトであるとする。
なお、このような情報は予め、領域判定部11、キャッシュ領域アクセス制御部12とキャッシュ不可領域アクセス制御部13に設定されている。
上記のメモリ構成では、データ用の領域は、キャッシュ領域βMバイト、キャッシュ不可領域δMバイトであるため、これに合わせて領域判定部11は、以下の情報を持ち、アクセスアドレスXの値によりいずれの領域が対象となっているかを判定することができる。
0〜(βM−1)番地:キャッシュ領域
βM〜(βM+δM−1)番地:キャッシュ不可領域
0〜(βM−1)番地:キャッシュ領域
βM〜(βM+δM−1)番地:キャッシュ不可領域
また、キャッシュ領域アクセス制御部12は、アクセスアドレスXに対して以下の計算を行って、データアドレスとECCチェックコードアドレスを生成する。
データアドレス=X(番地)
ECCアドレス=X/α+βM(番地)
また、キャッシュ不可領域アクセス制御部13は、アクセスアドレスXに対して以下の計算を行って、データアドレスとECCチェックコードアドレスを生成する。
データアドレス=X+β/αM(番地)
ECCアドレス=(X−βM)/γ+βM+β/αM+δM(番地)
データアドレス=X(番地)
ECCアドレス=X/α+βM(番地)
また、キャッシュ不可領域アクセス制御部13は、アクセスアドレスXに対して以下の計算を行って、データアドレスとECCチェックコードアドレスを生成する。
データアドレス=X+β/αM(番地)
ECCアドレス=(X−βM)/γ+βM+β/αM+δM(番地)
次に、本実施の形態に係るメモリ制御装置10の動作例を説明する。
以下では、キャッシュ領域からの読み出し、キャッシュ領域への書き込み、キャッシュ不可領域からの読み出し、キャッシュ不可領域への書き込みの順に説明する。
以下では、キャッシュ領域からの読み出し、キャッシュ領域への書き込み、キャッシュ不可領域からの読み出し、キャッシュ不可領域への書き込みの順に説明する。
CPU1から、キャッシュ領域(データ000からデータ00F)に対して読み出し要求が発行されると、キャッシュ領域アクセス制御部12にて、メモリ2を読み出すためのデータアドレスとECCアドレスが生成される。
同時に、キャッシュ不可領域アクセス制御部13にて、メモリ2を読み出すためのデータアドレスとECCアドレスが生成される。
領域判定部11では、キャッシュ領域への読み出しと判断し、セレクタ16にキャッシュ領域アクセス制御部12からのアドレス出力を選択する選択信号を出力する。
キャッシュ領域アクセス制御部12からの読み出しアドレスに従い、メモリ2からデータ(1バイトを4回)及びECCチェックデータの読み出しを行う。
読み出されたデータ及びECCチェックデータは、ECC誤り訂正部15において、ビット誤りのチェックを行う。
その際、領域判定部11からの領域情報(キャッシュ領域)を元に、データ、ECCチェックデータの配置が解析される。
1ビット誤りの場合は、誤り訂正を行い、CPU1に読み出しデータを送出する。
図示していないが、誤り訂正を行ったデータは、メモリ2に書き戻される。
同時に、キャッシュ不可領域アクセス制御部13にて、メモリ2を読み出すためのデータアドレスとECCアドレスが生成される。
領域判定部11では、キャッシュ領域への読み出しと判断し、セレクタ16にキャッシュ領域アクセス制御部12からのアドレス出力を選択する選択信号を出力する。
キャッシュ領域アクセス制御部12からの読み出しアドレスに従い、メモリ2からデータ(1バイトを4回)及びECCチェックデータの読み出しを行う。
読み出されたデータ及びECCチェックデータは、ECC誤り訂正部15において、ビット誤りのチェックを行う。
その際、領域判定部11からの領域情報(キャッシュ領域)を元に、データ、ECCチェックデータの配置が解析される。
1ビット誤りの場合は、誤り訂正を行い、CPU1に読み出しデータを送出する。
図示していないが、誤り訂正を行ったデータは、メモリ2に書き戻される。
CPU1から、キャッシュ領域(データ010からデータ01F)に対して書き込み要求(書き込み要求には、書き込みデータが含まれている)が発行されると、キャッシュ領域アクセス制御部12にて、メモリ2に書き込むためのデータアドレスとECCアドレスが生成される。
同時に、キャッシュ不可領域アクセス制御部13にて、メモリ2に書き込むためのデータアドレスとECCアドレスが生成される。
領域判定部11では、キャッシュ領域への書き込みと判断し、セレクタ16にキャッシュ領域アクセス制御部12からのアドレス出力を選択する選択信号を出力する。
また、ECC生成部14は、CPU1からの書き込みデータの内容を反映させて、4バイトのデータを対象とするECCチェックデータの生成を行う。
その際、領域判定部11からの領域情報(キャッシュ領域)を元に、データ、ECCチェックデータの配置が決められる。
また、ECC生成部14は、キャッシュ領域アクセス制御部12からの書き込みアドレスに従い、メモリ2にデータ及びECCチェックデータの書き込みを行う。
同時に、キャッシュ不可領域アクセス制御部13にて、メモリ2に書き込むためのデータアドレスとECCアドレスが生成される。
領域判定部11では、キャッシュ領域への書き込みと判断し、セレクタ16にキャッシュ領域アクセス制御部12からのアドレス出力を選択する選択信号を出力する。
また、ECC生成部14は、CPU1からの書き込みデータの内容を反映させて、4バイトのデータを対象とするECCチェックデータの生成を行う。
その際、領域判定部11からの領域情報(キャッシュ領域)を元に、データ、ECCチェックデータの配置が決められる。
また、ECC生成部14は、キャッシュ領域アクセス制御部12からの書き込みアドレスに従い、メモリ2にデータ及びECCチェックデータの書き込みを行う。
CPU1から、キャッシュ不可領域(データ100)に対して読み出し要求が発行されると、キャッシュ不可領域アクセス制御部13にて、メモリ2を読み出すためのデータアドレスとECCアドレスが生成される。
同時に、キャッシュ領域アクセス制御部12にて、メモリ2を読み出すためのデータアドレスとECCアドレスが生成される。
領域判定部11では、キャッシュ不可領域への読み出しと判断し、セレクタ16にキャッシュ不可領域アクセス制御部13からのアドレス出力を選択する選択信号を出力する。
キャッシュ不可領域アクセス制御部13からの読み出しアドレスに従い、メモリ2からデータ(1バイトを1回)及びECCチェックデータの読み出しを行う。
読み出されたデータ及びECCチェックデータは、ECC誤り訂正部15において、ビット誤りのチェックを行う。
その際、領域判定部11からの領域情報(キャッシュ不可領域)を元に、データ、ECCチェックデータの配置が解析される。
1ビット誤りの場合は、誤り訂正を行い、CPU1に読み出しデータを送出する。
図示していないが、誤り訂正を行ったデータは、メモリ2に書き戻される。
同時に、キャッシュ領域アクセス制御部12にて、メモリ2を読み出すためのデータアドレスとECCアドレスが生成される。
領域判定部11では、キャッシュ不可領域への読み出しと判断し、セレクタ16にキャッシュ不可領域アクセス制御部13からのアドレス出力を選択する選択信号を出力する。
キャッシュ不可領域アクセス制御部13からの読み出しアドレスに従い、メモリ2からデータ(1バイトを1回)及びECCチェックデータの読み出しを行う。
読み出されたデータ及びECCチェックデータは、ECC誤り訂正部15において、ビット誤りのチェックを行う。
その際、領域判定部11からの領域情報(キャッシュ不可領域)を元に、データ、ECCチェックデータの配置が解析される。
1ビット誤りの場合は、誤り訂正を行い、CPU1に読み出しデータを送出する。
図示していないが、誤り訂正を行ったデータは、メモリ2に書き戻される。
CPU1から、キャッシュ不可領域(データ104)に対して書き込み要求(書き込み要求には、書き込みデータが含まれている)が発行されると、キャッシュ不可領域アクセス制御部13にて、メモリ2に書き込むためのデータアドレスとECCアドレスが生成される。
同時に、キャッシュ領域アクセス制御部12にて、メモリ2に書き込むためのデータアドレスとECCアドレスが生成される。
領域判定部11では、キャッシュ不可領域への書き込みと判断し、セレクタ16にキャッシュ不可領域アクセス制御部13からのアドレス出力を選択する選択信号を出力する。
また、ECC生成部14は、CPU1からの書き込みデータの内容を反映させて、1バイトのデータを対象とするECCの生成を行う。
その際、領域判定部11からの領域情報(キャッシュ不可領域)を元に、データ、ECCチェックデータの配置が決められる。
また、ECC生成部14は、キャッシュ不可領域アクセス制御部13からの書き込みアドレスに従い、メモリ2にデータ及びECCチェックデータの書き込みを行う。
同時に、キャッシュ領域アクセス制御部12にて、メモリ2に書き込むためのデータアドレスとECCアドレスが生成される。
領域判定部11では、キャッシュ不可領域への書き込みと判断し、セレクタ16にキャッシュ不可領域アクセス制御部13からのアドレス出力を選択する選択信号を出力する。
また、ECC生成部14は、CPU1からの書き込みデータの内容を反映させて、1バイトのデータを対象とするECCの生成を行う。
その際、領域判定部11からの領域情報(キャッシュ不可領域)を元に、データ、ECCチェックデータの配置が決められる。
また、ECC生成部14は、キャッシュ不可領域アクセス制御部13からの書き込みアドレスに従い、メモリ2にデータ及びECCチェックデータの書き込みを行う。
なお、上記では、両アクセス制御部12、13がデータの物理アドレスとECCチェックコードの物理アドレスを生成することとしているが、各アクセス制御部12、13にアドレス情報を持たせれば、両者でアドレスを生成する必要はない。
つまり、キャッシュ領域アクセス制御部12とキャッシュ不可領域アクセス制御部13のそれぞれが、アクセスアドレスが自制御部で処理すべきエリアに属しているかを判別できるようにすればよい。
自身の対象領域が読み出し領域又は書き込み領域である場合は、各アクセス制御部は、アクセスアドレスに基づいて対象領域におけるデータの物理アドレスを導出するとともに、導出した物理アドレスに対応するECCチェックコードの物理アドレスを導出する。
そして、導出したデータアドレス及びECCチェックデータアドレスをメモリ2に出力し、また、書き込み要求であればECC生成部14に書き込み領域を通知し、読み出し領域であればECC誤り訂正部15に読み出し領域を通知する。
更に、ECC生成部14又はECC誤り訂正部15にデータアドレス及びECCチェックデータアドレスを出力する。
このとき、他方の制御部は、物理アドレスの導出及び出力は行わない。
また、この場合、領域判定部11で領域を判定する必要はない。
つまり、キャッシュ領域アクセス制御部12とキャッシュ不可領域アクセス制御部13のそれぞれが、アクセスアドレスが自制御部で処理すべきエリアに属しているかを判別できるようにすればよい。
自身の対象領域が読み出し領域又は書き込み領域である場合は、各アクセス制御部は、アクセスアドレスに基づいて対象領域におけるデータの物理アドレスを導出するとともに、導出した物理アドレスに対応するECCチェックコードの物理アドレスを導出する。
そして、導出したデータアドレス及びECCチェックデータアドレスをメモリ2に出力し、また、書き込み要求であればECC生成部14に書き込み領域を通知し、読み出し領域であればECC誤り訂正部15に読み出し領域を通知する。
更に、ECC生成部14又はECC誤り訂正部15にデータアドレス及びECCチェックデータアドレスを出力する。
このとき、他方の制御部は、物理アドレスの導出及び出力は行わない。
また、この場合、領域判定部11で領域を判定する必要はない。
また、上記では、キャッシュ不可領域の制御対象データサイズを1バイトとしたが、キャッシュ不可領域全体で同じデータ構成であれば、制御対象データサイズを他のサイズ、例えば、2バイト、4バイト、8バイトとしてもよい。
1バイトデータに対するECCは5bit、2バイトデータに対するECCは6bit、4バイトデータに対するECCは7bit、8バイトデータに対するECCは8bitとなる。
1バイトデータに対するECCは5bit、2バイトデータに対するECCは6bit、4バイトデータに対するECCは7bit、8バイトデータに対するECCは8bitとなる。
以上のように、本実施の形態によれば、キャッシュ領域、キャッシュ不可領域と領域を分割し、アクセスサイズにあったECCチェックデータの配置を行うことで、余分なメモリアクセスを行うことなく、メモリアクセスを行い、メモリアクセスの高性能化を図ることが可能となる。
つまり、本実施の形態では、パーシャルアクセスが行われるデータサイズに合わせてキャッシュ不可領域の制御対象データサイズを定め、また、制御対象データサイズ分のデータごとにECCチェックデータを設けている。
このため、パーシャルアクセスにおいて、誤り訂正のため又はECCチェックデータの生成のためにアクセス対象データ以外のデータに対する処理の完了を待つ必要がなく、パーシャルアクセスにおけるメモリアクセスを高速化することができる。
つまり、本実施の形態では、パーシャルアクセスが行われるデータサイズに合わせてキャッシュ不可領域の制御対象データサイズを定め、また、制御対象データサイズ分のデータごとにECCチェックデータを設けている。
このため、パーシャルアクセスにおいて、誤り訂正のため又はECCチェックデータの生成のためにアクセス対象データ以外のデータに対する処理の完了を待つ必要がなく、パーシャルアクセスにおけるメモリアクセスを高速化することができる。
以上、本実施の形態では、
プロセッサとメモリと前記メモリを制御するメモリ制御装置で構成される組込み情報処理装置において、
アクセスアドレスから、キャッシュ領域またはキャッシュ不可領域へのアクセスを判定する領域判定部と、
キャッシュ領域へのアクセスとしてメモリを制御するキャッシュ領域アクセス制御部と、
キャッシュ不可領域へのアクセスとしてメモリを制御するキャッシュ不可領域アクセス制御部と、
アクセス領域により、キャッシュ領域への書き込み用のECCまたはキャッシュ不可領域への書き込み用ECCを生成するECC生成部と、
アクセス領域により、キャッシュ領域からの読み出し用ECC誤り訂正またはキャッシュ不可領域からの読み出し用ECC誤り訂正を行うECC誤り訂正部と
で構成され、
領域により、ECCのチェックコード配置場所を変更する組込み情報処理装置について説明した。
プロセッサとメモリと前記メモリを制御するメモリ制御装置で構成される組込み情報処理装置において、
アクセスアドレスから、キャッシュ領域またはキャッシュ不可領域へのアクセスを判定する領域判定部と、
キャッシュ領域へのアクセスとしてメモリを制御するキャッシュ領域アクセス制御部と、
キャッシュ不可領域へのアクセスとしてメモリを制御するキャッシュ不可領域アクセス制御部と、
アクセス領域により、キャッシュ領域への書き込み用のECCまたはキャッシュ不可領域への書き込み用ECCを生成するECC生成部と、
アクセス領域により、キャッシュ領域からの読み出し用ECC誤り訂正またはキャッシュ不可領域からの読み出し用ECC誤り訂正を行うECC誤り訂正部と
で構成され、
領域により、ECCのチェックコード配置場所を変更する組込み情報処理装置について説明した。
実施の形態2.
図3は、キャッシュ不可領域のアクセスサイズ毎に領域分割した場合のブロック図である。
図3は、キャッシュ不可領域のアクセスサイズ毎に領域分割した場合のブロック図である。
図3において、領域判定部11aはCPU1がアクセスしたアドレスが、キャッシュ領域か、または、キャッシュ不可領域のうちの1バイトアクセス領域か、2バイトアクセス領域か、4バイトアクセス領域かを判定する。
キャッシュ不可領域アクセス制御部(1バイト)13aは、CPU1のアクセスがキャッシュ不可の1バイトアクセス領域であると想定し、メモリ2に対してデータアドレスとECCアドレスを生成する1バイト領域用のキャッシュ不可領域アクセス制御部である。
キャッシュ不可領域アクセス制御部(2バイト)13bは同じく2バイト領域用、キャッシュ不可領域アクセス制御部(4バイト)13cは同じく4バイト領域用のキャッシュ不可領域アクセス制御部である。
ECC生成部14aは、CPU1からの書き込み要求に従い、領域判定部11からの書き込みアドレスの対象領域がキャッシュ領域か何バイト用のキャッシュ不可領域かという領域情報と、ライトデータからECCチェックデータを生成する。
ECC誤り訂正部15aは、CPU1からの読み出し要求に従い、領域判定部11からの読み出しアドレスの対象領域がキャッシュ領域か何バイト用のキャッシュ不可領域かという領域情報と、メモリから読み出したデータとECCチェックデータからECC誤り訂正を行う。
セレクタ16aは、領域判定部11aによる判定結果によりキャッシュ領域アクセス制御部12のアドレス出力又はキャッシュ不可領域アクセス制御部13a〜13cのいずれかのアドレス出力を選択する。
キャッシュ不可領域アクセス制御部(1バイト)13aは、CPU1のアクセスがキャッシュ不可の1バイトアクセス領域であると想定し、メモリ2に対してデータアドレスとECCアドレスを生成する1バイト領域用のキャッシュ不可領域アクセス制御部である。
キャッシュ不可領域アクセス制御部(2バイト)13bは同じく2バイト領域用、キャッシュ不可領域アクセス制御部(4バイト)13cは同じく4バイト領域用のキャッシュ不可領域アクセス制御部である。
ECC生成部14aは、CPU1からの書き込み要求に従い、領域判定部11からの書き込みアドレスの対象領域がキャッシュ領域か何バイト用のキャッシュ不可領域かという領域情報と、ライトデータからECCチェックデータを生成する。
ECC誤り訂正部15aは、CPU1からの読み出し要求に従い、領域判定部11からの読み出しアドレスの対象領域がキャッシュ領域か何バイト用のキャッシュ不可領域かという領域情報と、メモリから読み出したデータとECCチェックデータからECC誤り訂正を行う。
セレクタ16aは、領域判定部11aによる判定結果によりキャッシュ領域アクセス制御部12のアドレス出力又はキャッシュ不可領域アクセス制御部13a〜13cのいずれかのアドレス出力を選択する。
図4は、データ幅32bitのメモリに配置されたデータとECCチェックデータの配置例である。
なお、キャッシュ領域は、図2と同様であるため、図示を省略している。
なお、キャッシュ領域は、図2と同様であるため、図示を省略している。
キャッシュ不可領域において、データ100の1バイトに対応するECCチェックデータがECC100(1バイト)であり、データ101の1バイトに対応するECCチェックデータがECC101(1バイト)である。
キャッシュ不可領域において、データ200〜201の2バイトに対するECCチェックデータがECC200(1バイト)であり、データ202〜203の2バイトに対するECCチェックデータがECC202(1バイト)である。
キャッシュ不可領域において、データ300〜303の4バイトに対するECCチェックデータがECC300(1バイト)であり、データ304〜307の2バイトに対するECCチェックデータがECC304(1バイト)である。
キャッシュ不可領域において、データ200〜201の2バイトに対するECCチェックデータがECC200(1バイト)であり、データ202〜203の2バイトに対するECCチェックデータがECC202(1バイト)である。
キャッシュ不可領域において、データ300〜303の4バイトに対するECCチェックデータがECC300(1バイト)であり、データ304〜307の2バイトに対するECCチェックデータがECC304(1バイト)である。
次に、本実施の形態に係るメモリ制御装置10の動作例を説明する。
キャッシュ領域への読み出し、書き込み要求は、実施の形態1と同じため、記載を省略する。
また、以下では、1バイト領域からの読み出し、1バイト領域への書き込み、2バイト領域からの読み出し、2バイト領域への書き込み、4バイト領域からの読み出し、4バイト領域への書き込みの順に説明する。
キャッシュ領域への読み出し、書き込み要求は、実施の形態1と同じため、記載を省略する。
また、以下では、1バイト領域からの読み出し、1バイト領域への書き込み、2バイト領域からの読み出し、2バイト領域への書き込み、4バイト領域からの読み出し、4バイト領域への書き込みの順に説明する。
CPU1から、キャッシュ不可領域(データ100)に対して1バイトの読み出し要求が発行されると、キャッシュ不可領域アクセス制御部(1バイト)13aにて、メモリ2を読み出すためのデータアドレスとECCアドレスが生成される。
同時に、キャッシュ領域アクセス制御部12及びキャッシュ不可領域アクセス制御部(2バイト)13b、キャッシュ不可領域アクセス制御部(4バイト)13cにて、メモリ2を読み出すためのデータアドレスとECCアドレスが生成される。
領域判定部11aでは、キャッシュ不可領域(1バイト)への読み出しと判断し、セレクタ16aにキャッシュ不可領域アクセス制御部(1バイト)13aからのアドレス出力を選択する選択信号を出力する。
キャッシュ不可領域アクセス制御部(1バイト)13aからの読み出しアドレスに従い、メモリ2からデータ及びECCチェックデータの読み出しを行う。
読み出されたデータ及びECCチェックデータは、ECC誤り訂正部15aにおいて、ビット誤りのチェックを行う。
その際、領域判定部11aからの領域情報(キャッシュ不可領域、1バイト)を元に、データ、ECCチェックデータの配置が解析される。
1ビット誤りの場合は、誤り訂正を行い、CPU1に読み出しデータを送出する。
図示していないが、誤り訂正を行ったデータは、メモリ2に書き戻される。
同時に、キャッシュ領域アクセス制御部12及びキャッシュ不可領域アクセス制御部(2バイト)13b、キャッシュ不可領域アクセス制御部(4バイト)13cにて、メモリ2を読み出すためのデータアドレスとECCアドレスが生成される。
領域判定部11aでは、キャッシュ不可領域(1バイト)への読み出しと判断し、セレクタ16aにキャッシュ不可領域アクセス制御部(1バイト)13aからのアドレス出力を選択する選択信号を出力する。
キャッシュ不可領域アクセス制御部(1バイト)13aからの読み出しアドレスに従い、メモリ2からデータ及びECCチェックデータの読み出しを行う。
読み出されたデータ及びECCチェックデータは、ECC誤り訂正部15aにおいて、ビット誤りのチェックを行う。
その際、領域判定部11aからの領域情報(キャッシュ不可領域、1バイト)を元に、データ、ECCチェックデータの配置が解析される。
1ビット誤りの場合は、誤り訂正を行い、CPU1に読み出しデータを送出する。
図示していないが、誤り訂正を行ったデータは、メモリ2に書き戻される。
CPU1から、キャッシュ不可領域(データ104)に対して1バイトの書き込み要求が発行されると、キャッシュ不可領域アクセス制御部(1バイト)13aにて、メモリ2に書き込むためのデータアドレスとECCアドレスが生成される。
同時に、キャッシュ領域アクセス制御部12及びキャッシュ不可領域アクセス制御部(2バイト)13b、キャッシュ不可領域アクセス制御部(4バイト)13cにて、メモリ2に書き込むためのデータアドレスとECCアドレスが生成される。
領域判定部11では、キャッシュ不可領域(1バイト)への書き込みと判断し、セレクタ16にキャッシュ不可領域アクセス制御部(1バイト)13aからのアドレス出力を選択する選択信号を出力する。
また、ECC生成部14は、CPU1からの書き込みデータの内容を反映させてECCの生成を行う。
その際、領域判定部11aからの領域情報(キャッシュ不可領域、1バイト)を元に、データ、ECCチェックデータの配置が決められる。
また、ECC生成部14は、キャッシュ不可領域アクセス制御部(1バイト)13aからの書き込みアドレスに従い、メモリ2にデータ及びECCチェックデータの書き込みを行う。
同時に、キャッシュ領域アクセス制御部12及びキャッシュ不可領域アクセス制御部(2バイト)13b、キャッシュ不可領域アクセス制御部(4バイト)13cにて、メモリ2に書き込むためのデータアドレスとECCアドレスが生成される。
領域判定部11では、キャッシュ不可領域(1バイト)への書き込みと判断し、セレクタ16にキャッシュ不可領域アクセス制御部(1バイト)13aからのアドレス出力を選択する選択信号を出力する。
また、ECC生成部14は、CPU1からの書き込みデータの内容を反映させてECCの生成を行う。
その際、領域判定部11aからの領域情報(キャッシュ不可領域、1バイト)を元に、データ、ECCチェックデータの配置が決められる。
また、ECC生成部14は、キャッシュ不可領域アクセス制御部(1バイト)13aからの書き込みアドレスに従い、メモリ2にデータ及びECCチェックデータの書き込みを行う。
CPU1から、キャッシュ不可領域(データ200)に対して2バイトの読み出し要求が発行されると、キャッシュ不可領域アクセス制御部(2バイト)13bにて、メモリ2を読み出すためのデータアドレスとECCアドレスが生成される。
同時に、キャッシュ領域アクセス制御部12及びキャッシュ不可領域アクセス制御部(1バイト)13a、キャッシュ不可領域アクセス制御部(4バイト)13cにて、メモリ2を読み出すためのデータアドレスとECCアドレスが生成される。
領域判定部11aでは、キャッシュ不可領域(2バイト)への読み出しと判断し、セレクタ16aにキャッシュ不可領域アクセス制御部(2バイト)13bからのアドレス出力を選択する選択信号を出力する。
キャッシュ不可領域アクセス制御部(2バイト)13bからの読み出しアドレスに従い、メモリからデータ及びECCチェックデータの読み出しを行う。
読み出されたデータ及びECCチェックデータは、ECC誤り訂正部15aにおいて、ビット誤りのチェックを行う。その際、領域判定部11aからの領域情報(キャッシュ不可領域、2バイト)を元に、データ、ECCチェックデータの配置が解析される。1ビット誤りの場合は、誤り訂正を行い、CPU1に読み出しデータを送出する。
図示していないが、誤り訂正を行ったデータは、メモリ2に書き戻される。
同時に、キャッシュ領域アクセス制御部12及びキャッシュ不可領域アクセス制御部(1バイト)13a、キャッシュ不可領域アクセス制御部(4バイト)13cにて、メモリ2を読み出すためのデータアドレスとECCアドレスが生成される。
領域判定部11aでは、キャッシュ不可領域(2バイト)への読み出しと判断し、セレクタ16aにキャッシュ不可領域アクセス制御部(2バイト)13bからのアドレス出力を選択する選択信号を出力する。
キャッシュ不可領域アクセス制御部(2バイト)13bからの読み出しアドレスに従い、メモリからデータ及びECCチェックデータの読み出しを行う。
読み出されたデータ及びECCチェックデータは、ECC誤り訂正部15aにおいて、ビット誤りのチェックを行う。その際、領域判定部11aからの領域情報(キャッシュ不可領域、2バイト)を元に、データ、ECCチェックデータの配置が解析される。1ビット誤りの場合は、誤り訂正を行い、CPU1に読み出しデータを送出する。
図示していないが、誤り訂正を行ったデータは、メモリ2に書き戻される。
CPU1から、キャッシュ不可領域(データ204)に対して2バイトの書き込み要求が発行されると、キャッシュ不可領域アクセス制御部(2バイト)13bにて、メモリ2に書き込むためのデータアドレスとECCアドレスが生成される。
同時に、キャッシュ領域アクセス制御部12及びキャッシュ不可領域アクセス制御部(1バイト)13a、キャッシュ不可領域アクセス制御部(4バイト)13cにて、メモリ2に書き込むためのデータアドレスとECCアドレスが生成される。
領域判定部11aでは、キャッシュ不可領域(2バイト)への書き込みと判断し、セレクタ16aにキャッシュ不可領域アクセス制御部(2バイト)13bからのアドレス出力を選択する選択信号を出力する。
また、ECC生成部14は、CPU1からの書き込みデータの内容を反映させてECCチェックデータの生成を行う。
その際、領域判定部11aからの領域情報(キャッシュ不可領域、2バイト)を元に、データ、ECCチェックデータの配置が決められる。
また、ECC生成部14は、キャッシュ不可領域アクセス制御部(2バイト)13bからの書き込みアドレスに従い、メモリ2にデータ及びECCチェックデータの書き込みを行う。
同時に、キャッシュ領域アクセス制御部12及びキャッシュ不可領域アクセス制御部(1バイト)13a、キャッシュ不可領域アクセス制御部(4バイト)13cにて、メモリ2に書き込むためのデータアドレスとECCアドレスが生成される。
領域判定部11aでは、キャッシュ不可領域(2バイト)への書き込みと判断し、セレクタ16aにキャッシュ不可領域アクセス制御部(2バイト)13bからのアドレス出力を選択する選択信号を出力する。
また、ECC生成部14は、CPU1からの書き込みデータの内容を反映させてECCチェックデータの生成を行う。
その際、領域判定部11aからの領域情報(キャッシュ不可領域、2バイト)を元に、データ、ECCチェックデータの配置が決められる。
また、ECC生成部14は、キャッシュ不可領域アクセス制御部(2バイト)13bからの書き込みアドレスに従い、メモリ2にデータ及びECCチェックデータの書き込みを行う。
CPU1から、キャッシュ不可領域(データ300)に対して4バイトの読み出し要求が発行されると、キャッシュ不可領域アクセス制御部(4バイト)13cにて、メモリ2を読み出すためのデータアドレスとECCアドレスが生成される。
同時に、キャッシュ領域アクセス制御部12及びキャッシュ不可領域アクセス制御部(1バイト)13a、キャッシュ不可領域アクセス制御部(2バイト)13bにて、メモリ2を読み出すためのデータアドレスとECCアドレスが生成される。
領域判定部11aでは、キャッシュ不可領域(4バイト)への読み出しと判断し、セレクタ16aにキャッシュ不可領域アクセス制御部(4バイト)13cからのアドレス出力を選択する選択信号を出力する。
キャッシュ不可領域アクセス制御部(4バイト)13cからの読み出しアドレスに従い、メモリ2からデータ及びECCチェックデータの読み出しを行う。
読み出されたデータ及びECCチェックデータは、ECC誤り訂正部15aにおいて、ビット誤りのチェックを行う。
その際、領域判定部11aからの領域情報(キャッシュ不可領域、4バイト)を元に、データ、ECCチェックデータの配置が解析される。
1ビット誤りの場合は、誤り訂正を行い、CPU1に読み出しデータを送出する。
図示していないが、誤り訂正を行ったデータは、メモリ2に書き戻される。
同時に、キャッシュ領域アクセス制御部12及びキャッシュ不可領域アクセス制御部(1バイト)13a、キャッシュ不可領域アクセス制御部(2バイト)13bにて、メモリ2を読み出すためのデータアドレスとECCアドレスが生成される。
領域判定部11aでは、キャッシュ不可領域(4バイト)への読み出しと判断し、セレクタ16aにキャッシュ不可領域アクセス制御部(4バイト)13cからのアドレス出力を選択する選択信号を出力する。
キャッシュ不可領域アクセス制御部(4バイト)13cからの読み出しアドレスに従い、メモリ2からデータ及びECCチェックデータの読み出しを行う。
読み出されたデータ及びECCチェックデータは、ECC誤り訂正部15aにおいて、ビット誤りのチェックを行う。
その際、領域判定部11aからの領域情報(キャッシュ不可領域、4バイト)を元に、データ、ECCチェックデータの配置が解析される。
1ビット誤りの場合は、誤り訂正を行い、CPU1に読み出しデータを送出する。
図示していないが、誤り訂正を行ったデータは、メモリ2に書き戻される。
CPU1から、キャッシュ不可領域(データ404)に対して4バイトの書き込み要求が発行されると、キャッシュ不可領域アクセス制御部(4バイト)13cにて、メモリ2に書き込むためのデータアドレスとECCアドレスが生成される。
同時に、キャッシュ領域アクセス制御部12及びキャッシュ不可領域アクセス制御部(1バイト)13a、キャッシュ不可領域アクセス制御部(2バイト)13bにて、メモリ2に書き込むためのデータアドレスとECCアドレスが生成される。
領域判定部11aでは、キャッシュ不可領域(2バイト)への書き込みと判断し、セレクタ16aにキャッシュ不可領域アクセス制御部(4バイト)13cからのアドレス出力を選択する選択信号を出力する。
また、ECC生成部14は、CPU1からの書き込みデータの内容を反映させてECCの生成を行う。
その際、領域判定部11aからの領域情報(キャッシュ不可領域、4バイト)を元に、データ、ECCチェックデータの配置が決められる。
また、ECC生成部14は、キャッシュ不可領域アクセス制御部(4バイト)13cからの書き込みアドレスに従い、メモリ2にデータ及びECCチェックデータの書き込みを行う。
同時に、キャッシュ領域アクセス制御部12及びキャッシュ不可領域アクセス制御部(1バイト)13a、キャッシュ不可領域アクセス制御部(2バイト)13bにて、メモリ2に書き込むためのデータアドレスとECCアドレスが生成される。
領域判定部11aでは、キャッシュ不可領域(2バイト)への書き込みと判断し、セレクタ16aにキャッシュ不可領域アクセス制御部(4バイト)13cからのアドレス出力を選択する選択信号を出力する。
また、ECC生成部14は、CPU1からの書き込みデータの内容を反映させてECCの生成を行う。
その際、領域判定部11aからの領域情報(キャッシュ不可領域、4バイト)を元に、データ、ECCチェックデータの配置が決められる。
また、ECC生成部14は、キャッシュ不可領域アクセス制御部(4バイト)13cからの書き込みアドレスに従い、メモリ2にデータ及びECCチェックデータの書き込みを行う。
以上のように、キャッシュ領域、キャッシュ不可領域と領域を分割し、更にキャッシュ不可領域もアクセス単位に領域を分割し、アクセスサイズにあったECCチェックデータの配置を行うことで、余分なメモリアクセスを行うことなく、メモリアクセスを行い、メモリアクセスの高性能化を図ることが可能となる。
以上、本実施の形態では、
アクセスアドレスから、キャッシュ領域またはNバイトアクセスのキャッシュ不可領域へのアクセスを判定する領域判定部と、
キャッシュ不可領域のNバイトのアクセスとしてメモリ制御を行うNバイトキャッシュ不可領域アクセス制御部と、
アクセス領域により、キャッシュ領域への書き込み用のECCまたはキャッシュ不可領域へのNバイト書き込み用ECCを生成するECC生成部と、
アクセス領域により、キャッシュ領域からの読み出し用ECC誤り訂正またはキャッシュ不可領域からのNバイト読み出用ECC誤り訂正を行うECC誤り訂正部と
で構成され、
キャッシュ不可領域へのアクセスサイズに応じて、ECCのチェックコード配置場所を変更する組込み情報処理装置を説明した。
アクセスアドレスから、キャッシュ領域またはNバイトアクセスのキャッシュ不可領域へのアクセスを判定する領域判定部と、
キャッシュ不可領域のNバイトのアクセスとしてメモリ制御を行うNバイトキャッシュ不可領域アクセス制御部と、
アクセス領域により、キャッシュ領域への書き込み用のECCまたはキャッシュ不可領域へのNバイト書き込み用ECCを生成するECC生成部と、
アクセス領域により、キャッシュ領域からの読み出し用ECC誤り訂正またはキャッシュ不可領域からのNバイト読み出用ECC誤り訂正を行うECC誤り訂正部と
で構成され、
キャッシュ不可領域へのアクセスサイズに応じて、ECCのチェックコード配置場所を変更する組込み情報処理装置を説明した。
実施の形態3.
図5は、キャッシュ不可領域のアクセスサイズ毎に領域分割し、ECCキャッシュを搭載した場合のブロック図である。
図5は、キャッシュ不可領域のアクセスサイズ毎に領域分割し、ECCキャッシュを搭載した場合のブロック図である。
図5で、ECCキャッシュ20は、格納されているECCチェックデータのアドレスを保持するキャッシュタグ21とECCチェックデータを保持するキャッシュECC22で構成されている。
ECCキャッシュ20は、コードキャッシュ部の例である。
セレクタ23は、セレクタ16aで選択されたデータアドレスと、ECCキャッシュ20を参照し、キャッシュミスとなったECCチェックデータアドレスを選択する。
なお、本実施の形態においても、メモリ2のデータ配置は、図4と同様である。
ECCキャッシュ20は、コードキャッシュ部の例である。
セレクタ23は、セレクタ16aで選択されたデータアドレスと、ECCキャッシュ20を参照し、キャッシュミスとなったECCチェックデータアドレスを選択する。
なお、本実施の形態においても、メモリ2のデータ配置は、図4と同様である。
図6は、CPU1からメモリリード要求が発行された場合の処理フローとメモリライト要求が発行された場合の処理フローを示している。
図6(a)は、メモリリード要求が発行された場合の処理フローであり、図6(b)は、メモリライト要求が発行された場合の処理フローである。
図6に従い、処理フローを説明する。
図6(a)は、メモリリード要求が発行された場合の処理フローであり、図6(b)は、メモリライト要求が発行された場合の処理フローである。
図6に従い、処理フローを説明する。
図6(a)において、CPU1からメモリリード要求が発行(S100)されると、メモリ2からデータのみがリード(S101)される。
同時に、ECCチェックデータアドレスでECCキャッシュ20内のキャッシュタグ21を参照(S102)する。
ECCキャッシュ20にヒット(キャッシュタグ21に該当アドレスが格納済)した場合は、キャッシュECC22から、ECCチェックデータの読み出し(S103)を行う。
ECCキャッシュ20にミス(キャッシュタグ21に該当アドレスが未格納)した場合は、メモリ2からECCチェックデータの読み出し(S104)を行い、ECCキャッシュ20の更新(S105)を行う。
ECCキャッシュ20の更新は、キャッシュタグ21への該当アドレスの格納と、キャッシュECC22へのECCチェックデータの格納である。
ECC誤り訂正部15aにメモリ2から読み出したデータと、ECCキャッシュ20から読み出したECCチェックデータを入力し、ビット誤りのチェック(S106)を行う。
1ビット誤りの場合は、誤り訂正(S107)を行い、ECCキャッシュ20の更新を行う(データに誤りがある場合には、図示していないが、S107に代わり、メモリ2への書き込み処理を行う)。
ビット誤りがない場合は、CPU1に読み出しデータを送出(S108)する。
同時に、ECCチェックデータアドレスでECCキャッシュ20内のキャッシュタグ21を参照(S102)する。
ECCキャッシュ20にヒット(キャッシュタグ21に該当アドレスが格納済)した場合は、キャッシュECC22から、ECCチェックデータの読み出し(S103)を行う。
ECCキャッシュ20にミス(キャッシュタグ21に該当アドレスが未格納)した場合は、メモリ2からECCチェックデータの読み出し(S104)を行い、ECCキャッシュ20の更新(S105)を行う。
ECCキャッシュ20の更新は、キャッシュタグ21への該当アドレスの格納と、キャッシュECC22へのECCチェックデータの格納である。
ECC誤り訂正部15aにメモリ2から読み出したデータと、ECCキャッシュ20から読み出したECCチェックデータを入力し、ビット誤りのチェック(S106)を行う。
1ビット誤りの場合は、誤り訂正(S107)を行い、ECCキャッシュ20の更新を行う(データに誤りがある場合には、図示していないが、S107に代わり、メモリ2への書き込み処理を行う)。
ビット誤りがない場合は、CPU1に読み出しデータを送出(S108)する。
図6(b)において、CPU1からメモリライト要求が発行(S110)されると、ECC生成部14aにて、ECCチェックデータの生成(S112)を行い、メモリ2にデータの書き込み(S112)を行う。
同時に、ECCチェックデータアドレスでECCキャッシュ20内のキャッシュタグ21を参照(S102)する。
ECCキャッシュ20にヒット(キャッシュタグ21に該当アドレスが格納済)した場合は、キャッシュECC22へのECCチェックデータの格納(S114)を行う。
ECCキャッシュ20にミス(キャッシュタグ21に該当アドレスが未格納)した場合は、ECCキャッシュ20の更新(S115)を行う。
ECCキャッシュ20の更新は、キャッシュタグ21への該当アドレスの格納と、キャッシュECC22へのECCチェックデータの格納である。ECCキャッシュ20へのライトで、メモリ書き込み処理が完了(S117)する。
同時に、ECCチェックデータアドレスでECCキャッシュ20内のキャッシュタグ21を参照(S102)する。
ECCキャッシュ20にヒット(キャッシュタグ21に該当アドレスが格納済)した場合は、キャッシュECC22へのECCチェックデータの格納(S114)を行う。
ECCキャッシュ20にミス(キャッシュタグ21に該当アドレスが未格納)した場合は、ECCキャッシュ20の更新(S115)を行う。
ECCキャッシュ20の更新は、キャッシュタグ21への該当アドレスの格納と、キャッシュECC22へのECCチェックデータの格納である。ECCキャッシュ20へのライトで、メモリ書き込み処理が完了(S117)する。
ECCキャッシュ20のリプレースは、通常のキャッシュメモリと同様の動作を行うため、記述は省略する。
このように、本実施の形態では、データ読み出しの場合は、ECC誤り訂正部15aは、CPU1からのアクセスアドレスに対応する制御対象データサイズ分のデータをメモリ2から取得するとともに、当該制御対象データサイズ分のデータに対するECCチェックデータがECCキャッシュ20にキャッシュされている場合にECCキャッシュ20からECCチェックデータを取得する。
対象のECCチェックデータがECCキャッシュ20にキャッシュされていない場合はメモリ2からECCチェックデータを取得する。
そして、ECC誤り訂正部15aは、ECCキャッシュ20からECCチェックデータを取得した場合は、ECCキャッシュ20からのECCチェックデータを用いて誤り訂正を行う。
対象のECCチェックデータがECCキャッシュ20にキャッシュされていない場合はメモリ2からECCチェックデータを取得する。
そして、ECC誤り訂正部15aは、ECCキャッシュ20からECCチェックデータを取得した場合は、ECCキャッシュ20からのECCチェックデータを用いて誤り訂正を行う。
更に、本実施の形態では、データ書き込みの場合は、ECC生成部14aは、生成したECCチェックデータをメモリ2の書き込み領域に書き込むとともに、ECCキャッシュ20にも書き込む。
以上のように、ECCチェックデータのみをECCキャッシュに保持することで、データの読み出しと並行して、ECCチェックデータを読み出すことで、メモリアクセスの高速化を図ることが可能になる。
以上、本実施の形態では、
ECCチェックコードをECCキャッシュメモリに蓄え、アクセスアドレスに対応するECCチェックコードがECCキャッシュメモリに存在する場合には、ECCキャッシュメモリからECCチェックコードを参照し、アクセスアドレスに対するECCチェックコードがECCキャッシュメモリに存在しない場合には、前記メモリからECCチェックコードを読み出す組込み情報処理装置を説明した。
ECCチェックコードをECCキャッシュメモリに蓄え、アクセスアドレスに対応するECCチェックコードがECCキャッシュメモリに存在する場合には、ECCキャッシュメモリからECCチェックコードを参照し、アクセスアドレスに対するECCチェックコードがECCキャッシュメモリに存在しない場合には、前記メモリからECCチェックコードを読み出す組込み情報処理装置を説明した。
なお、以上では、データ処理装置の例としてのメモリ制御装置10について説明したが、実施の形態1〜3に示した手順によりメモリ制御方法を実現することもできる。
1 CPU、2 メモリ、10 メモリ制御装置、11 領域判定部、12 キャッシュ領域アクセス制御部、13 キャッシュ不可領域アクセス制御部 14 ECC生成部、15 ECC誤り訂正部、16 セレクタ、20 ECCキャッシュ、21 キャッシュタグ、22 キャッシュECC、23 セレクタ。
Claims (12)
- データとデータに対する誤り制御用コードが格納される記憶装置と、前記記憶装置からのデータ読み出しを要求するデータ要求装置に接続されたデータ処理装置であって、
前記記憶装置を複数の領域に区分して管理し、誤り制御用コードが誤り制御の対象とするデータサイズである制御対象データサイズを領域ごとに変えて定義し、制御対象データサイズ分のデータごとに誤り制御用コードが領域内の所定位置に配置されるように各領域を管理し、読み出しアドレスが示されるデータ読み出し要求を前記データ要求装置から入力した際に、前記読み出しアドレスに基づいてデータ読み出しの対象となる領域を前記複数の領域の中から読み出し領域として判別するとともに、前記読み出し領域における前記読み出しアドレスに相当するアドレスを導出し導出したアドレスをデータアドレスとして前記記憶装置に出力し、前記読み出し領域における誤り制御用コードの配置に基づき読み出しの対象となる誤り制御用コードのアドレスを導出し導出したアドレスをコードアドレスとして前記記憶装置に出力する領域管理部と、
前記記憶装置から、前記データアドレスに対応するデータを制御対象データサイズ分取得するとともに、当該制御対象データサイズ分のデータに対する誤り制御用コードを取得するデータ読み出し部と、
前記データ読み出し部により取得された誤り制御用コードを用いて、前記データ読み出し部により取得された制御対象データサイズ分のデータの誤り制御を行う誤り制御実施部を有することを特徴とするデータ処理装置。 - 前記領域管理部は、
キャッシュメモリに格納され得るデータが格納され、制御対象データサイズが前記キャッシュメモリにおけるキャッシュラインサイズに基づいて定められているキャッシュ領域と、
前記キャッシュメモリに格納されないデータが格納され、制御対象データサイズが前記キャッシュメモリにおけるキャッシュラインサイズから独立して定められているキャッシュ不可領域に区分して前記記憶装置を管理することを特徴とする請求項1に記載のデータ処理装置。 - 前記領域管理部は、
前記キャッシュ領域と、制御対象データサイズが各キャッシュ不可領域で異なる複数のキャッシュ不可領域に区分して前記記憶装置を管理することを特徴とする請求項2に記載のデータ処理装置。 - 前記領域管理部は、
論理アドレスである読み出しアドレスが示されているデータ読み出し要求を前記データ要求装置から入力し、論理アドレスである読み出しアドレスに基づき読み出し領域を前記複数の領域の中から判別する領域判定部と、
各々が前記複数の領域のうちのいずれかの領域を対象領域とし、自身の対象領域において前記読み出しアドレスに相当する物理アドレスを導出するとともに、導出した前記物理アドレスに対応する制御対象データサイズ分のデータに対する誤り制御用コードの物理アドレスを導出する複数の領域アクセス制御部と、
前記領域判定部により前記読み出し領域として判別された領域を対象領域とする領域アクセス制御部により導出されたデータの物理アドレスを前記データアドレスとして前記記憶装置に出力し、前記誤り制御用コードの物理アドレスを前記コードアドレスとして前記記憶装置に出力するセレクタを有することを特徴とする請求項1〜3のいずれかに記載のデータ処理装置。 - 前記領域管理部は、
各々が前記複数の領域のうちのいずれかの領域を対象領域とし、
論理アドレスである読み出しアドレスが示されているデータ読み出し要求を前記データ要求装置から入力し、論理アドレスである読み出しアドレスに基づき、自身の対象領域が前記読み出し領域であるか否かを判断し、
自身の対象領域が前記読み出し領域である場合に、自身の対象領域において前記読み出しアドレスに相当する物理アドレスを導出するとともに、導出した前記物理アドレスに対応する制御対象データサイズ分のデータに対する誤り制御用コードの物理アドレスを導出し、導出したデータの物理アドレスを前記データアドレスとして前記記憶装置に出力し、導出した前記誤り制御用コードの物理アドレスを前記コードアドレスとして前記記憶装置に出力する複数の領域アクセス制御部を有することを特徴とする請求項1〜3のいずれかに記載のデータ処理装置。 - 前記データ処理装置は、更に、
誤り制御用コードをキャッシュするコードキャッシュ部を有し、
前記データ読み出し部は、
前記読み出しアドレスに対応する制御対象データサイズ分のデータを前記記憶装置から取得するとともに、当該制御対象データサイズ分のデータに対する誤り制御用コードが前記コードキャッシュ部にキャッシュされている場合に前記コードキャッシュ部から誤り制御用コードを取得し、対象の誤り制御用コードが前記コードキャッシュ部にキャッシュされていない場合に前記記憶装置から誤り制御用コードを取得し、
前記誤り制御実施部は、
前記コードキャッシュ部から誤り制御用コードが取得された場合に、前記コードキャッシュ部から取得された誤り制御用コードを用いて、前記記憶装置から取得された制御対象データサイズ分のデータの誤り制御を行うことを特徴とする請求項1〜5のいずれかに記載のデータ処理装置。 - 前記領域管理部は、
書き込みアドレスが示され書き込みデータが含まれるデータ書き込み要求を前記データ要求装置から入力した際に、前記書き込みアドレスに基づき書き込みの対象となる領域を前記複数の領域の中から書き込み領域として判別するとともに、前記書き込み領域における前記書き込みアドレスに相当するアドレスを導出し導出したアドレスをデータアドレスとして前記記憶装置に出力し、前記書き込み領域における誤り制御用コードの配置に基づき書き込みの対象となる誤り制御用コードのアドレスを導出し導出したアドレスをコードアドレスとして前記記憶装置に出力し、
前記データ処理装置は、更に、
前記書き込みデータの内容を反映させて、前記データアドレスに対応する制御対象データサイズ分のデータを誤り制御の対象とする誤り制御用コードを生成する誤り制御用コード生成部と、
前記書き込み領域の制御対象データサイズ単位で前記データアドレスに前記書き込みデータの書き込みを行うとともに、前記コードアドレスに前記誤り制御用コード生成部により生成された誤り制御用コードの書き込みを行うデータ書き込み部を有することを特徴とする請求項1〜6のいずれかに記載のデータ処理装置。 - 前記領域管理部は、
キャッシュメモリに格納され得るデータが格納され、制御対象データサイズが前記キャッシュメモリにおけるキャッシュラインサイズに基づいて定められているキャッシュ領域と、
前記キャッシュメモリに格納されないデータが格納され、制御対象データサイズが前記キャッシュメモリにおけるキャッシュラインサイズから独立して定められているキャッシュ不可領域に区分して前記記憶装置を管理することを特徴とする請求項7に記載のデータ処理装置。 - 前記領域管理部は、
前記キャッシュ領域と、制御対象データサイズが各キャッシュ不可領域で異なる複数のキャッシュ不可領域に区分して前記記憶装置を管理することを特徴とする請求項8に記載のデータ処理装置。 - 前記領域管理部は、
論理アドレスである書き込みアドレスが示されているデータ書き込み要求を前記データ要求装置から入力し、論理アドレスである書き込みアドレスに基づき書き込み領域を前記複数の領域の中から判別する領域判定部と、
各々が前記複数の領域のうちのいずれかの領域を対象領域とし、自身の対象領域において前記書き込みアドレスに相当する物理アドレスを導出するとともに、導出した前記物理アドレスに対応する制御対象データサイズ分のデータに対する誤り制御用コードの物理アドレスを導出する複数の領域アクセス制御部とを有し、
前記領域判定部は、
判別した前記書き込み領域を前記誤り制御用コード生成部に通知し、前記書き込み領域として判別した領域を対象領域とする領域アクセス制御部に、導出されたデータの物理アドレスを前記データアドレスとして前記データ書き込み部に出力させ、前記誤り制御用コードの物理アドレスを前記コードアドレスとして前記データ書き込み部に出力させることを特徴とする請求項7〜9のいずれかに記載のデータ処理装置。 - 前記領域管理部は、
各々が前記複数の領域のうちのいずれかの領域を対象領域とし、
論理アドレスである書き込みアドレスが示されているデータ書き込み要求を前記データ要求装置から入力し、論理アドレスである書き込みアドレスに基づき、自身の対象領域が前記書き込み領域であるか否かを判断し、自身の対象領域が前記書き込み領域である場合に、前記書き込み領域として自身の対象領域を前記誤り制御用コード生成部に通知し、
自身の対象領域が前記書き込み領域である場合に、自身の対象領域において前記書き込みアドレスに相当する物理アドレスを導出し、導出した前記物理アドレスに対応する制御対象データサイズ分のデータに対する誤り制御用コードの物理アドレスを導出し、導出したデータの物理アドレスを前記データアドレスとして前記データ書き込み部に出力し、導出した前記誤り制御用コードの物理アドレスを前記コードアドレスとして前記データ書き込み部に出力する複数の領域アクセス制御部を有することを特徴とする請求項7〜9のいずれかに記載のデータ処理装置。 - 前記データ処理装置は、更に、
誤り制御用コードをキャッシュするコードキャッシュ部を有し、
前記データ書き込み部は、
前記誤り制御用コード生成部により生成された誤り制御用コードを前記書き込み領域に書き込むとともに、前記コードキャッシュ部にも書き込むことを特徴とする請求項7〜11のいずれかに記載のデータ処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010010400A JP2011150486A (ja) | 2010-01-20 | 2010-01-20 | データ処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010010400A JP2011150486A (ja) | 2010-01-20 | 2010-01-20 | データ処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011150486A true JP2011150486A (ja) | 2011-08-04 |
Family
ID=44537408
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010010400A Pending JP2011150486A (ja) | 2010-01-20 | 2010-01-20 | データ処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2011150486A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2544456A2 (en) | 2011-07-06 | 2013-01-09 | Sony Corporation | Display control apparatus, display control method, and program |
-
2010
- 2010-01-20 JP JP2010010400A patent/JP2011150486A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2544456A2 (en) | 2011-07-06 | 2013-01-09 | Sony Corporation | Display control apparatus, display control method, and program |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4085389B2 (ja) | マルチプロセッサシステム、マルチプロセッサシステムにおける一貫性制御装置及び一貫性制御方法 | |
US8566607B2 (en) | Cryptography methods and apparatus used with a processor | |
US8185692B2 (en) | Unified cache structure that facilitates accessing translation table entries | |
US8868844B2 (en) | System and method for a software managed cache in a multiprocessing environment | |
US8296518B2 (en) | Arithmetic processing apparatus and method | |
US9595075B2 (en) | Load/store operations in texture hardware | |
US20070288694A1 (en) | Data processing system, processor and method of data processing having controllable store gather windows | |
JP2006120163A (ja) | キャッシュメモリの電力を削減する方法、システム、ソフトウエア及び装置 | |
US8868835B2 (en) | Cache control apparatus, and cache control method | |
EP3757860B1 (en) | Providing improved efficiency for metadata usages | |
JP2008234490A (ja) | 情報処理装置および情報処理方法 | |
JP5843801B2 (ja) | 情報処理装置およびデバッグ方法 | |
JP2009528612A (ja) | データ処理システム並びにデータ及び/又は命令のプリフェッチ方法 | |
JP2014115851A (ja) | データ処理装置及びその制御方法 | |
JP4294059B2 (ja) | 情報処理装置および情報処理方法 | |
CN114238167B (zh) | 信息预取方法、处理器、电子设备 | |
JP2004199677A (ja) | キャッシュを動作させるためのシステム及び方法 | |
US7069384B2 (en) | System and method for cache external writing and write shadowing | |
JPH09223069A (ja) | キャッシュ衝突が発生しにくいマイクロプロセッサ・システムおよびキャッシュ・メモリのキャッシュ索引を計算する方法 | |
US7900019B2 (en) | Data access target predictions in a data processing system | |
JP2011150486A (ja) | データ処理装置 | |
JP2008009857A (ja) | キャッシュ制御回路およびプロセッサシステム | |
US8127082B2 (en) | Method and apparatus for allowing uninterrupted address translations while performing address translation cache invalidates and other cache operations | |
CN114218132B (zh) | 信息预取方法、处理器、电子设备 | |
US6922767B2 (en) | System for allowing only a partial value prediction field/cache size |