IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インフィネオン テクノロジーズ アクチエンゲゼルシャフトの特許一覧

特開2024-110414データ処理デバイスおよびデータ格納方法
<>
  • 特開-データ処理デバイスおよびデータ格納方法 図1
  • 特開-データ処理デバイスおよびデータ格納方法 図2
  • 特開-データ処理デバイスおよびデータ格納方法 図3
  • 特開-データ処理デバイスおよびデータ格納方法 図4
  • 特開-データ処理デバイスおよびデータ格納方法 図5
  • 特開-データ処理デバイスおよびデータ格納方法 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024110414
(43)【公開日】2024-08-15
(54)【発明の名称】データ処理デバイスおよびデータ格納方法
(51)【国際特許分類】
   G06F 11/10 20060101AFI20240807BHJP
   G06F 12/0875 20160101ALI20240807BHJP
   G06F 12/02 20060101ALI20240807BHJP
【FI】
G06F11/10 644
G06F12/0875 100
G06F12/02 580J
【審査請求】未請求
【請求項の数】21
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024014174
(22)【出願日】2024-02-01
(31)【優先権主張番号】10 2023 102 579.1
(32)【優先日】2023-02-02
(33)【優先権主張国・地域又は機関】DE
(71)【出願人】
【識別番号】599158797
【氏名又は名称】インフィニオン テクノロジーズ アクチエンゲゼルシャフト
【氏名又は名称原語表記】Infineon Technologies AG
【住所又は居所原語表記】Am Campeon 1-15, 85579 Neubiberg, Germany
(74)【代理人】
【識別番号】100114890
【弁理士】
【氏名又は名称】アインゼル・フェリックス=ラインハルト
(74)【代理人】
【識別番号】100098501
【弁理士】
【氏名又は名称】森田 拓
(74)【代理人】
【識別番号】100116403
【弁理士】
【氏名又は名称】前川 純一
(74)【代理人】
【識別番号】100134315
【弁理士】
【氏名又は名称】永島 秀郎
(74)【代理人】
【識別番号】100162880
【弁理士】
【氏名又は名称】上島 類
(72)【発明者】
【氏名】イェンス ローゼンブッシュ
(72)【発明者】
【氏名】ティヤグ ロガナタン
(72)【発明者】
【氏名】ライナー メネス
(72)【発明者】
【氏名】ドミニク ランゲン
【テーマコード(参考)】
5B160
5B205
【Fターム(参考)】
5B160AA12
5B205MM03
5B205VV13
(57)【要約】
【課題】データ処理デバイスおよびデータ格納方法
【解決手段】さまざまな実施形態によれば、データ処理デバイスが記載され、データ処理デバイスは、データ処理回路と、データを複数のページの形で格納するように構成されるメモリであって、各ページは、複数のデータワードを備えるメモリと、メモリコントローラと、各ページのために、ユーザデータをページの複数のデータワード内に格納するとともに、複数のデータワードのための誤りチェックコードビットをページの1つまたは複数の追加のデータワード内に格納するように構成されるメモリインタフェース回路と、を備え、複数の追加のデータワードの少なくとも一部のために、誤りチェックコードビットは、同じ追加のデータワード内に含まれる。
【選択図】図3
【特許請求の範囲】
【請求項1】
データ処理デバイスであって、前記データ処理デバイスは、
データ処理回路と、
データを複数のページの形で格納するように構成されるメモリであって、各ページは、複数のデータワードを備えるメモリと、
メモリコントローラと、
各ページのために、ユーザデータを前記ページの複数のデータワード内に格納するとともに、前記複数のデータワードのための誤りチェックコードビットを前記ページの1つまたは複数の追加のデータワード内に格納するように構成されるメモリインタフェース回路と、
を備え、
前記複数の追加のデータワードの少なくとも一部のために、前記誤りチェックコードビットは、同じ追加のデータワード内に含まれる、
データ処理デバイス。
【請求項2】
前記メモリインタフェース回路は、前記複数のデータワードのための追加の冗長ビットを前記1つまたは複数の追加のデータワード内に格納するようにさらに構成される、
請求項1に記載のデータ処理デバイス。
【請求項3】
前記1つまたは複数の追加のデータワードは、前記複数のデータワードのための前記誤りチェックコードビットおよび前記複数のデータワードのための前記追加の冗長ビットで完全に満たされる、
請求項2に記載のデータ処理デバイス。
【請求項4】
前記複数の追加のデータワードは、ユーザデータビットがない、
請求項1から3のいずれかに記載のデータ処理デバイス。
【請求項5】
前記メモリインタフェース回路は、さらなる冗長ビットを前記ページの少なくとも1つのさらなるデータワード内に格納するようにさらに構成される、
請求項1から4のいずれかに記載のデータ処理デバイス。
【請求項6】
前記少なくとも1つのさらなるデータワードは、ユーザデータがない、
請求項5に記載のデータ処理デバイス。
【請求項7】
各ページは、すべてが同一サイズを有する同数のデータワードから成る、
請求項1から6のいずれかに記載のデータ処理デバイス。
【請求項8】
前記データワードのサイズは、前記メモリによってサポートされるメモリバーストアクセスのバーストサイズに等しい、
請求項7に記載のデータ処理デバイス。
【請求項9】
前記メモリインタフェース回路は、各ページおよび前記ページの複数のデータワードの複数のセットの各セットのために、ユーザデータを前記セットの前記複数のデータワード内に格納するとともに、前記複数のデータワードのための誤りチェックコードビットを前記セットに関連付けられた1つまたは複数の追加のデータワード内に格納するように構成され、
前記複数の追加のデータワードの少なくとも一部のために、前記誤りチェックコードビットは、同じ追加のデータワード内に含まれる、
請求項1から8のいずれかに記載のデータ処理デバイス。
【請求項10】
前記メモリインタフェース回路は、前記複数のセットの各セットのために、前記複数のデータワードのための追加の冗長ビットを前記セットに関連付けられた前記1つまたは複数の追加のデータワード内に格納するようにさらに構成される、
請求項9に記載のデータ処理デバイス。
【請求項11】
前記1つまたは複数の追加のデータワードは、前記セットのための単一の追加のデータワードであり、前記複数のデータワード内に格納されるすべての前記ユーザデータのための前記誤りチェックコードビットは、前記追加のデータワード内に含まれる、
請求項9または10に記載のデータ処理デバイス。
【請求項12】
追加のデータワードの数は、各セットのために同一である、
請求項9から11のいずれかに記載のデータ処理デバイス。
【請求項13】
各セットの前記複数のデータワードおよび前記セットに関連付けられた前記1つまたは複数の追加のデータワードが前記ページにフィットするように、セットの数は、最大数である。
請求項9から12のいずれかに記載のデータ処理デバイス。
【請求項14】
誤りチェックコードビットの数および追加のデータワードの数は、各ページのために、前記ページのいずれかのセットの前記複数のデータワードの部分および前記ページのセットのいずれかの前記1つまたは複数の追加のデータワードではないビットの数が、データワードのビットの数に等しいかまたは整数倍であるようなものである、
請求項9から13のいずれかに記載のデータ処理デバイス。
【請求項15】
前記データ処理デバイスは、書き込み誤りチェックコードビットキャッシュを備え、
前記メモリインタフェース回路は、前記複数のデータワードを前記メモリに書き込むとき、少なくとも誤りチェックコードビットが前記複数のデータワードのすべてのために生成されるまで、前記複数のデータワードのための誤りチェックコードビットを前記書き込み誤りチェックコードビットキャッシュ内にキャッシュし、次に、前記誤りチェックコードビットを前記1つまたは複数の追加のデータワード内に書き込むように構成される、
請求項1から14のいずれかに記載のデータ処理デバイス。
【請求項16】
前記メモリインタフェース回路は、前記複数のデータワードを前記メモリに書き込むとき、少なくとも追加の冗長ビットが前記複数のデータワードのすべてのために生成されるまで、前記複数のデータワードのための追加の冗長ビットを前記書き込み誤りチェックコードビットキャッシュ内にキャッシュし、次に、前記追加の冗長ビットを前記1つまたは複数の追加のデータワード内に書き込むようにさらに構成される、
請求項15に記載のデータ処理デバイス。
【請求項17】
前記データ処理デバイスは、書き込み冗長ビットキャッシュを備え、
前記メモリインタフェース回路は、前記複数のデータワードを前記メモリに書き込むとき、少なくともさらなる冗長ビットが前記複数のデータワードのすべてのために生成されるまで、前記複数のデータワードのためのさらなる冗長ビットを前記書き込み冗長ビットキャッシュ内にキャッシュし、次に、前記さらなる冗長ビットを前記メモリに書き込むように構成される、
請求項1から16のいずれかに記載のデータ処理デバイス。
【請求項18】
前記データ処理デバイスは、読み出し誤りチェックコードビットキャッシュを備え、
前記メモリインタフェース回路は、前記メモリから前記複数のデータワードを読み出すとき、少なくとも誤り訂正が前記複数のデータワードのすべてのために実行されるまで、前記1つまたは複数の追加のデータワードを読み出し、前記誤りチェックコードビットを前記読み出し誤りチェックコードビットキャッシュ内にキャッシュするように構成される、
請求項1から17のいずれかに記載のデータ処理デバイス。
【請求項19】
前記メモリインタフェース回路は、前記メモリから前記複数のデータワードを読み出すとき、前記1つまたは複数の追加のデータワードを読み出し、前記1つまたは複数の追加のデータワードからの追加の冗長ビットを前記読み出し誤りチェックコードビットキャッシュ内にキャッシュするようにさらに構成される、
請求項18に記載のデータ処理デバイス。
【請求項20】
前記データ処理デバイスは、読み出し冗長ビットキャッシュを備え、
前記メモリインタフェース回路は、前記メモリから前記複数のデータワードを読み出すとき、さらなる冗長ビットを前記読み出し冗長ビットキャッシュ内にキャッシュするようにさらに構成される、
請求項1から19のいずれかに記載のデータ処理デバイス。
【請求項21】
データをメモリ内に格納するための方法であって、
前記メモリは、データを複数のページの形で格納し、各ページは、複数のデータワードを備え、
前記方法は、各ページのために、ユーザデータを前記ページの複数のデータワード内に格納するとともに、前記複数のデータワードのための誤りチェックコードビットを前記ページの1つまたは複数の追加のデータワード内に格納するステップを含み、
前記複数の追加のデータワードの少なくとも一部のために、前記誤りチェックコードビットは、同じ追加のデータワード内に含まれる、
方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、データ処理デバイスおよびデータ格納方法に関する。
【背景技術】
【0002】
セーフティおよび/またはセキュリティ関連のタスクを実行するデータ処理デバイス、例えば、車両のためのコントロールユニットにおいて、セーフティおよびセキュリティは、データをメモリ内に格納するとき、特に確実にされる必要がある。これのための1つのアプローチは、ユーザデータに加えて、冗長ビット、例えば、誤りチェックコードビットならびにセーフティおよび/またはセキュリティメカニズムのための他の冗長ビットを格納することである。しかしながら、これは、メモリへの格納およびアクセスのためのオーバヘッドを作成する。それゆえ、誤りチェックコードビットおよびおそらくさらなる冗長ビットを備えたデータを格納するための効率的なアプローチが望ましい。
【発明の概要】
【課題を解決するための手段】
【0003】
さまざまな実施形態によれば、データ処理デバイスが提供され、データ処理デバイスは、データ処理回路と、データを複数のページの形で格納するように構成されるメモリであって、各ページは、複数のデータワードを備えるメモリと、メモリコントローラと、各ページのために、ユーザデータをページの複数のデータワード内に格納するとともに、複数のデータワードのための誤りチェックコードビットをページの1つまたは複数の追加のデータワード内に格納するように構成されるメモリインタフェース回路と、を備え、複数の追加のデータワードの少なくとも一部のために、誤りチェックコードビットは、同じ追加のデータワード内に含まれる。
【0004】
さらなる実施形態によれば、上述したデータ処理デバイスに従ってデータを格納するための方法が提供される。
【0005】
図面において、類似の参照符号は、概して、複数の図面全体にわたって同一部分を参照する。図面は必ずしも縮尺どおりではなく、その代わりに、本発明の原則を示すため強調される。以下、さまざまな態様が、以下の図面を参照して記載されている。
【図面の簡単な説明】
【0006】
図1】データ処理デバイスを示す。
図2】一実施形態に従うデータ処理デバイスを示す。
図3】一実施形態に従う、1つのメモリページのビットの割り当ておよび構造を示す。
図4】他の実施形態に従う、1つのメモリページのビットの割り当ておよび構造を示す。
図5】一実施形態に従うメモリからのデータの読み出しを示す。
図6】一実施形態に従うブリッジの動作原理を示す。
【発明を実施するための形態】
【0007】
以下の詳細な説明は、添付の図面を参照し、図面は、本発明が実行されてもよいこの開示の具体的な詳細および態様を例示として示す。他の態様が利用されてもよく、構造的、論理的および電気的変更が本発明の範囲内において行われてもよい。この開示のさまざまな態様は、この開示のいくつかの態様を、この開示の1つまたは複数の他の態様と組み合わせて、新しい態様を形成することができるとき、必ずしも相互排他的というわけではない。
【0008】
データ処理デバイスにおける典型的状況は、データ処理回路またはデータ処理ユニット、典型的には、中央演算処理装置(CPU)のようなプロセッサが、メモリのコントローラによって制御されるメモリにアクセスするということである。この種のシナリオは、図1に示される。
【0009】
図1は、データ処理デバイス100を示し、データ処理デバイス100は、例えば、車両、システム・オン・チップ(SoC)、(任意のフォームファクタの)スマートカード、埋め込みシステムなどにおける例えば、コンピュータ、コントロールユニットである。
【0010】
データ処理デバイス100は、CPUのようなデータ処理回路101を備える。データ処理デバイス100は、メモリコントローラ103によって制御されるメモリ102およびおそらくさらなる構成要素、例えば、1つまたは複数のI/Oインタフェース105、1つまたは複数のコプロセッサ106などをさらに備える。メモリ102およびコントローラ103は、メモリ装置104を形成する。このことは、必ずしも、メモリ102およびコントローラ103が同一チップ上にあることを意味するというわけではない点に留意されたい。
【0011】
メモリ102は、揮発性メモリ、例えば、DRAM(ダイナミックランダムアクセスメモリ)または不揮発性メモリ、例えば、(NANDまたはNOR)フラッシュメモリでもよい。以下では、メモリ102は、ページ化ベースである、すなわち、メモリ102がデータを複数のページの形で格納するように構成され、各ページが複数のデータワードを備え、1つのメモリページ内に位置するデータから他のメモリページ内に位置するデータへのアクセスを変えることが、同じメモリページ内に位置するデータへのアクセスを変えることより長くかかると仮定される。
【0012】
データ処理回路101およびメモリ装置104およびおそらくさらなる構成要素105、106は、相互接続107、例えば、ネットワーク・オン・チップまたはバスによって接続される。データ処理回路101およびメモリ装置104は、アクセスに対応するインタフェースを備え、相互接続107を介して通信してもよい。
【0013】
メモリ装置104は、データ処理回路101と同一チップ上に実施されてもよい、すなわち、(SRAM(スタティックランダムアクセスメモリ)および埋め込みNVM(不揮発性メモリ)のためのように)メモリコントローラ103およびメモリ102は、オンチップでもよい。その場合、相互接続107は、チップ内部の相互接続でもよい。代替的には、バスコントローラはオンチップであり、メモリ装置104はオフチップである。他の使用事例によれば、(例えば、DRAM)コントローラ103はオンチップであり、(例えば、DRAM)メモリ102はオフチップである。その場合、相互接続107は内部にあり、メモリとコントローラとの間には他の接続/バスが存在する。この接続は、オフチップで行われる。
【0014】
セキュリティ関連用途では、例えば、データ処理デバイス100が車両のコントロールユニットであるとき、メモリアクセス、例えば、CPU101によるメモリ102に対するアクセスが、(例えば、ASIL C/Dにより)セーフ(安全)でありかつセキュアである(すなわち、サイバーセキュリティ特性、例えば、機密性、完全性および有効性を有する)ことが重要である。インラインECC(誤り訂正コード)の解決法は、例えば、ASIL Bセーフティまでを有するがサイバーセキュリティを有さない標準化されたインタフェースを提供してもよいので、追加のメカニズムが必要である。しかしながら、セーフティおよびセキュリティを達成するために実施されるメカニズムが効率的であること、すなわち、(例えば、メモリ重複を含むアプローチおよび余分のデバイスを提供して冗長性を提供するアプローチとは対照的に)余分のメモリおよび回路をほとんど必要とせず、ほとんど遅延につながらない(例えば、検証のためにメモリの長い起動時間を必要としない)ことも望ましい。
【0015】
上記からみて、さまざまな実施形態によれば、ブリッジ(メモリインタフェース回路とも称される)は、セーフティ、セキュリティおよび有効性のためにメモリにアクセスするエンティティ(例えば、メモリ102にアクセスするCPU101)の間に配置される。ブリッジの機能はまた、メモリコントローラ内に統合されてもよい点に留意されたい。
【0016】
図2は、一実施形態に従うデータ処理デバイス200を示す。データ処理デバイス200は、例えば、データ処理デバイス100に対応してもよいが、CPU201(コプロセッサ106のような他のデータ処理回路またはデバイスでもよい)とメモリコントローラ203およびメモリ202を備えるメモリ装置204との間のブリッジ205を備える。メモリ202は、CPU201(およびおそらくブリッジ205)を実装するチップに対して外部のメモリでもよい。メモリコントローラ203は、メモリ202のための任意のタイプのメモリコントローラでもよい。
【0017】
ブリッジ205は、インタフェース208によってメモリコントローラ203に接続され、すなわち、ブリッジ205は、特に、メモリコントローラ203から分離されてもよい。代替的には、ブリッジ205は、メモリコントローラ203内に統合されてもよい。
【0018】
上述したように、メモリ102、202がページベースのメモリである、すなわち、データを複数のページ206内に格納すると仮定される。各ページ206は、複数のデータワード207を格納し、各データワードは、データビット(すなわち、ユーザデータビットも意味する有用なデータのビット)を格納してもよいが、セーフティおよびセキュリティのための冗長ビット(さまざまな実施形態によれば、特にECCビット、さらなるセーフティおよびセキュリティ関連のビット)も格納してもよい。
【0019】
メモリ202へのアクセスは、バーストで生ずる(すなわち、ある数のサブアクセスまたは「ビート」、各サブアクセスはあるサイズ(データ幅)を有する)。バースト内のサブアクセスの数およびサブアクセスのサイズは、特に、ブリッジ205とメモリコントローラ203との間のインタフェース208に関する。サブアクセスのサイズによって乗算されるバースト内のサブアクセスの数は、各データワード207のサイズ(すなわちビットの数)であると仮定されるアクセスサイズ(またはバーストサイズ)を与える。これは、(例えば、相互接続107上の)バーストサイズがメモリのデータワードサイズ(すなわちメモリによってサポートされる)に等しいことを意味する。しかしながら、ブリッジ205とメモリコントローラ203との間のバーストはまた、より大きくなることもできるし(否定的な性能の影響なし)、より小さくなることもできる(その場合、読み出し-修正-書き込みを行う必要がある)点に留意されたい。バーストのデータは、インタフェース208の幅に応じて、メモリに/から順次送信されてもよいし、または、並列でもよい。
【0020】
以下の例のために、以下のサイズが仮定される。
●メモリデータ幅(すなわちサブアクセスサイズ):16ビット
●バースト長(すなわちバースト当たりのサブアクセスの数):16
●ページサイズ:2048バイト=16384ビット=16キロビット
●アクセスサイズ(バーストサイズ、データワードサイズ):16×16ビット=256ビット=32バイト(すなわち16ビート16ビットバースト)
【0021】
バーストがバーストサイズに合わせられ(すなわち32バイトに合わせられ)、マスクされた書き込みがないとさらに仮定される。
【0022】
さまざまな実施形態によれば、1ページのデータは、以下の通りに構築される。
【0023】
図3は、一実施形態に従う、1つのメモリページのビットの割り当ておよび構造を示す。
【0024】
したがって、1ページは、以下を保持する。
●56×256=14336のデータビット(すなわちユーザデータのためのビット)。これは、56のバースト301に対応する。
●56×(22+10)=56×32=1792のECC(セーフティ)およびセキュリティビット(すなわち、56×22のECC(セーフティ)ビットおよび56×10のセキュリティビット)。これは、7つのバースト302に対応する。
●セキュリティのための256の残りのビット。これは、1つのバースト303に対応する。
【0025】
「セーフティ」ビットおよび「セキュリティ」ビットとしてのビットの指定が、参照を簡単かつ容易にするために用いられる単なる一例である点に留意されたい。一般的に、ECCセーフティビットおよびセキュリティビットのすべてを「冗長」ビットとみなすことができ、ECC(セーフティ)ビットのない冗長ビット(すなわち56×10+256ビット)は、以下では、余分の冗長ビットを意味する。
【0026】
余分の冗長ビット、すなわち56×10のセキュリティビットおよび256のセキュリティビットは、56×22のECCビットに加えて、他のコードを用いて、パリティビットなどとして、セーフティおよびセキュリティのために用いられてもよい。
【0027】
256の(ユーザ)データビット当たり、22+10=32のECCビット+10のセキュリティビットが存在するため、256ビットが、8×256の(ユーザ)データビットのためのECCビット+10のセキュリティビットを保持することができることが分かる。それゆえ、さまざまな実施形態によれば、ユーザデータビットの各256ビットは、データワード207内に格納され、この種の「ユーザデータワード」(すなわち、ユーザデータワードのみを格納するデータワード)の8つごとに、データワード(「ECC+セキュリティデータワード」を意味する)は、8つのユーザデータワードのためのECC+セキュリティビットを格納するように用いられる。
【0028】
したがって、8つのユーザデータワードのためのECCビットセキュリティ+10ビットは、単一のメモリアクセスにおいて読み出されてもよい。
【0029】
図4は、他の実施形態に従う、1つのメモリページのビットの割り当ておよび構造を示す。
【0030】
図4の例において、以下のサイズが仮定される。
●メモリデータ幅(すなわちサブアクセスサイズ):8ビット
●バースト長(すなわちバースト当たりのサブアクセスの数):8ビット
●ページサイズ:2048ビット
●アクセスサイズ(バーストサイズ、データワードサイズ):8×8ビット=64ビット(すなわち8ビート8ビットバースト)
【0031】
図4によれば、1ページは、以下を保持する。
●8×3×64=1536のデータビット(すなわちユーザデータのためのビット)。これは、24のバースト401に対応する。
●8×3×20+8×4=512のECC(セーフティ)およびセキュリティビット(すなわち、8×3×20のECC(セーフティ)ビットおよび8×4のセキュリティビット)。これは、8つのバースト402に対応する。
【0032】
上述したように、「セーフティ」ビットおよび「セキュリティ」ビットとしてのビットの指定が、参照を簡単かつ容易にするために用いられる単なる一例である点に留意されたい。
【0033】
図5は、一実施形態に従うメモリからのデータの読み出しを示す。
【0034】
図5の例は、上述した例に対応する、すなわち、データワード(ECC+セキュリティデータワード)は、8つの(ユーザ)データワードのためのECCビット+10のセキュリティビットを格納する。
【0035】
図3に関して上述したように、ページ501は、56のユーザデータワード(ワード0から55)と、56/8=7のECC+セキュリティまたは(「冗長」)データワード(ワード56から62)と、残りの256ビット(ワード63)を保持する「(グローバル)セキュリティデータワード」と、を含む。
【0036】
図5の例において、ページのユーザデータワードが読み出されるとき(例えば、読み出される前)、そのユーザデータワードのためのECCビット+セキュリティビットを保持するECC+セキュリティデータワード(および以下の7つのユーザデータワード)が読み出され、そのページのセキュリティデータワードが読み出される。以下の7つのユーザデータワードも読み出されるまで、ECC+セキュリティデータワードは、キャッシュされる(図5の「Cac」によって示される)。図示する本例において、全部のページが読み出されるまで、セキュリティデータワードは、キャッシュされる。一般的な場合、ページへ/からのより少ないワードの書き込みまたは読み出しが存在してもよい(例えば、単一のワードのみがページから読み出されてもよい)。
【0037】
例えば、(ユーザ)データワード0を読み出すとき、(ユーザ)データワード8が読み出されるまで、(ECC+セキュリティ)データワード56は、読み出され、キャッシュされる。次に、(ECC+セキュリティ)データワード57が読み出されるなどである。さらに、(ユーザ)データワード0を読み出すとき、全部のページ(すなわちデータワード55)が読み出されるまで、セキュリティデータワード63は、読み出され、キャッシュされる。
【0038】
データをメモリに書き込む(すなわち格納する)ことは、類似して実行される。
【0039】
さまざまな実施形態によれば、ブリッジ205は、キャッシング、セーフティおよびセキュリティビットの生成(メモリ202に書き込むとき)ならびにセーフティおよびセキュリティビットのチェック(メモリ202から読み出すとき)を処理する。これの例は、図6に関してさらに詳細に記載されている。
【0040】
図6は、一実施形態に従う(例えば、図2のブリッジ205に対応する)ブリッジ600を示す。
【0041】
読み出しデータパスにおいて、上述したように、ページから読み出しを開始するとき、セキュリティデータワード602およびECC+セキュリティデータワード603は、読み出され、ユーザデータワード604(次のECC+セキュリティデータワードが読み出されるまで8つ)が続く。セキュリティデータワード602は、読み出しセキュリティデータキャッシュ605にキャッシュされ(かつ全部のページのために保たれ)、ECC+セキュリティデータワード603は、矢印607によって示されるように、読み出しECCおよびセキュリティデータキャッシュ606にキャッシュされる(かつ(少なくとも)8つのデータワードのために保たれる)。用いられるキャッシュ(特に、読み出しECCおよびセキュリティデータキャッシュ606)はまた、より大きくてもよく、すなわち、(読み出しECCおよびセキュリティデータキャッシュ606の場合、複数のECC+セキュリティデータワードのために)複数のエントリを有してもよい。これは、読み出しECCおよびセキュリティデータキャッシュ606がまた、将来再び必要な場合に備えて、以前のECC+セキュリティデータワードのデータをキャッシュすることができることを意味する。
【0042】
キャッシュデータは、(矢印608によって示されるように)読み出しデータのためのセーフティおよびセキュリティのデータチェック(例えば、余分の冗長ビットの使用に応じたECCチェックおよびさらなるチェック)を実行するECC、セーフティおよびセキュリティデータチェッカ609によってアクセスされる。それゆえ、読み出すとき、読み出しキャッシュ605、606は、ECC、セーフティおよびセキュリティ情報で満たされて、ECC、セーフティおよびセキュリティデータチェッカ609は、チェックペイロードのためのこの情報を用いる。
【0043】
類似して、書き込むとき、ECC、セーフティおよびセキュリティ情報生成器610は、セキュリティおよびセーフティ情報(すなわち冗長ビット)を生成し、(矢印613によって示されるように)8つのユーザデータワードのページまたはセットのためにそれぞれ完全に生成されるまで、それを書き込みセキュリティキャッシュ611および書き込みECC+セキュリティキャッシュ612にそれぞれ格納する。その後、それは書き込まれる(すなわち、矢印614によって示されるように、書き込みパス上に置かれる)。冗長ビットは、ある時点で書き込まれるが、必ずしも、書き込みセキュリティキャッシュ611および書き込みECC+セキュリティキャッシュ612が、それぞれ完全に満たされた直後ではない点に留意されたい。キャッシュが用いられるとき、キャッシュは、後でメモリに書き込まれてもよい、すなわち、冗長ビットは、冗長ビットのために用いられるキャッシュラインが置換されるとき、書き込まれてもよい。これは、ペイロードデータが入っている間、ECC、セーフティおよびセキュリティ情報生成器610は、書き込みキャッシュ611、612を更新することを意味する。図6の例では、ユーザデータワード615が書き込まれ、(前の8つのユーザデータワード615のためのECC+セキュリティ情報を含む)ECC+セキュリティデータワード616が書き込まれ、ページのためのセキュリティ情報を含むセキュリティデータワード617が書き込まれる。セキュリティデータワード617は、キャッシュ置換ポリシーに従って書き込まれる。ページの端に到達するとき、それは書き込まれてもよいが、一般的に、セキュリティデータワード617およびECC+セキュリティデータワード616は、後の時点でメモリに書き込み可能である。これにより、後の時点で、同じセキュリティデータワード617および/またはECC+セキュリティデータワード616が再び書き込まれるという場合、中間書き込みを回避することができる。
【0044】
ブリッジ600は、アドレス生成器601をさらに備え、アドレス生成器601は、読み出されるかまたは書き込まれる各データワードのために、メモリ内のデータワードの正しいアドレスを生成する。特に、アドレス生成器601は、セキュリティデータワードを読み出すべきまたは書き込むべきとき、ECC+セキュリティデータワードのメモリアドレスを生成する。ペイロードデータのアドレスは、保護スキームに従って再計算される。
【0045】
上記において、ページの完全な読み出しおよび書き込みを記載してきた。しかしながら、ページは、部分的にのみ読み出されるかまたは書き込まれてもよい。ユーザデータワードおよび必要ではないECC+セキュリティデータワードの読み出しおよび書き込みは、単に省略されてもよい。アドレス生成器601によって生成されるアドレスを用いて、特に、キャッシュヒットまたはミスが存在するか(例えば、読み出しECC+セキュリティキャッシュが読み出されるべきデータワードのためのECCおよびセキュリティ情報を含むか)を決定してもよい。
【0046】
セーフティおよび/またはセキュリティ情報が読み出されるまでデータワードをバッファし、次に、チェックを実行することによって、データワードに関するセーフティおよび/またはセキュリティ情報の前に、データワードはまた読み出されてもよい点に留意されたい(書き込むとき、逆もまた同じである)。
【0047】
上述した例では、誤り訂正コードが用いられたが(それゆえ、対応ビットは、誤り訂正コード(ECC)ビットと称されたが)、(その代わりに誤り訂正コードビットが誤り検出コードビットであるように)誤り検出コードを用いてもよい点に留意されたい。「誤りチェックコード」および「誤りチェックコードビット」という用語は、これらの可能性の両方を含むために用いられる。
【0048】
要約すると、さまざまな実施形態によれば、データ処理デバイスが提供され、データ処理デバイスは、データ処理回路(例えば、CPU201に対応する)と、データを複数のページの形で格納するように構成されるメモリ(例えば、メモリ202に対応する)であって、各ページは、複数のデータワードを備えるメモリと、メモリコントローラ(例えば、メモリコントローラ203に対応する)と、各ページのために、ユーザデータをページの複数のデータワード内に格納するとともに、複数のデータワードのための誤りチェックコードビットをページの1つまたは複数の追加のデータワード内に格納するように構成されるメモリインタフェース回路(例えば、ブリッジ205に対応する)と、を備え、複数の追加のデータワードの少なくとも一部のために、誤りチェックコードビットは、同じ追加のデータワード内に含まれる。
【0049】
メモリコントローラおよびメモリインタフェース回路(すなわち上述した例のブリッジ)は、1つの回路または機能単位内に統合可能である点に留意されたい(この機能単位は、実際には、次に、統合されたメモリインタフェース回路を有するメモリコントローラとみなされてもよい)。換言すれば、メモリコントローラおよびメモリインタフェース回路は、必ずしも2つの別々の回路である必要があるというわけではない。しかしながら、それらは、例えば、図2に示されるような相互接続を介して接続される別々の機能素子として実施されてもよい。
【0050】
換言すれば、さまざまな実施形態によれば、メモリインタフェース回路は、データ処理回路とメモリとの間に提供され、メモリ、ユーザデータを保持する複数のデータワードの誤りチェックコードビットを集め、それらを1つまたは複数の追加のデータワードにまとめる。これは、特にセーフティおよびセキュリティを確実にするための冗長情報を有することに関して、効果的なメモリアクセスおよびメモリ使用を可能にする。
【0051】
さまざまな例が以下に記載されている。
【0052】
例1は、データ処理デバイスであり、データ処理デバイスは、データ処理回路と、データを複数のページの形で格納するように構成されるメモリであって、各ページは、複数のデータワードを備えるメモリと、メモリコントローラと、各ページのために、ユーザデータをページの複数のデータワード内に格納するとともに、複数のデータワードのための誤りチェックコードビットをページの1つまたは複数の追加のデータワード内に格納するように構成されるメモリインタフェース回路と、を備え、複数の追加のデータワードの少なくとも一部のために、誤りチェックコードビットは、同じ追加のデータワード内に含まれる。
【0053】
例2は、例1のデータ処理デバイスであり、メモリインタフェース回路は、複数のデータワードのための追加の冗長ビットを1つまたは複数の追加のデータワード内に格納するようにさらに構成される。
【0054】
例3は、例2のデータ処理デバイスであり、1つまたは複数の追加のデータワードは、複数のデータワードのための誤りチェックコードビットおよび複数のデータワードのための追加の冗長ビットで完全に満たされる。
【0055】
例4は、例1から3のいずれかのデータ処理デバイスであり、複数の追加のデータワードは、ユーザデータビットがない。
【0056】
例5は、例1から4のいずれかのデータ処理デバイスであり、メモリインタフェース回路は、さらなる冗長ビットをページの少なくとも1つのさらなるデータワード内に格納するようにさらに構成される。
【0057】
例6は、例5のデータ処理デバイスであり、少なくとも1つのさらなるデータワードは、ユーザデータがない。
【0058】
例7は、例1から6のいずれかのデータ処理デバイスであり、各ページは、すべてが同一サイズを有する同数のデータワードから成る。
【0059】
例8は、例7のデータ処理デバイスであり、データワードのサイズは、メモリによってサポートされるメモリバーストアクセスのバーストサイズに等しい。
【0060】
例9は、例1から8のいずれかのデータ処理デバイスであり、メモリインタフェース回路は、各ページおよびページの複数のデータワードの複数のセットの各セットのために、ユーザデータをセットの複数のデータワード内に格納するとともに、複数のデータワードのための誤りチェックコードビットをセットに関連付けられた1つまたは複数の追加のデータワード内に格納するように構成され、複数の追加のデータワードの少なくとも一部のために、誤りチェックコードビットは、同じ追加のデータワード内に含まれる。
【0061】
例10は、例9のデータ処理デバイスであり、メモリインタフェース回路は、複数のセットの各セットのために、複数のデータワードのための追加の冗長ビットをセットに関連付けられた1つまたは複数の追加のデータワード内に格納するようにさらに構成される。
【0062】
例11は、例9または10のデータ処理デバイスであり、1つまたは複数の追加のデータワードは、セットのための単一の追加のデータワードであり、複数のデータワード内に格納されるすべてのユーザデータのための誤りチェックコードビットは、追加のデータワード内に含まれる。
【0063】
例12は、例9から11のいずれかのデータ処理デバイスであり、追加のデータワードの数は、各セットのために同一である。
【0064】
例13は、例9から12のいずれかのデータ処理デバイスであり、各セットの複数のデータワードおよびセットに関連付けられた1つまたは複数の追加のデータワードがページにフィットするように、セットの数は、最大数である。
【0065】
例14は、例9から13のいずれかのデータ処理デバイスであり、誤りチェックコードビットの数および追加のデータワードの数は、各ページのために、ページのいずれかのセットの複数のデータワードの部分およびページのセットのいずれかの1つまたは複数の追加のデータワードではないビットの数が、データワードのビットの数に等しいかまたは整数倍であるようなものである。
【0066】
例15は、例1から14のいずれかのデータ処理デバイスであり、データ処理デバイスは、書き込み誤りチェックコードビットキャッシュを備え、メモリインタフェース回路は、複数のデータワードをメモリに書き込むとき、少なくとも誤りチェックコードビットが複数のデータワードのすべてのために生成されるまで、複数のデータワードのための誤りチェックコードビットを書き込み誤りチェックコードビットキャッシュ内にキャッシュし、次に、誤りチェックコードビットを1つまたは複数の追加のデータワード内に書き込むように構成される。
【0067】
例16は、例15のデータ処理デバイスであり、メモリインタフェース回路は、複数のデータワードをメモリに書き込むとき、少なくとも追加の冗長ビットが複数のデータワードのすべてのために生成されるまで、複数のデータワードのための追加の冗長ビットを書き込み誤りチェックコードビットキャッシュ内にキャッシュし、追加の冗長ビットを1つまたは複数の追加のデータワード内に書き込むようにさらに構成される。
【0068】
例17は、例1から16のいずれかのデータ処理デバイスであり、データ処理デバイスは、書き込み冗長ビットキャッシュを備え、メモリインタフェース回路は、複数のデータワードをメモリに書き込むとき、少なくともさらなる冗長ビットが複数のデータワードのすべてのために生成されるまで、複数のデータワードのためのさらなる冗長ビットを書き込み冗長ビットキャッシュ内にキャッシュし、次に、さらなる冗長ビットをメモリに書き込むように構成される。
【0069】
例18は、例1から17のいずれかのデータ処理デバイスであり、データ処理デバイスは、読み出し誤りチェックコードビットキャッシュを備え、メモリインタフェース回路は、メモリから複数のデータワードを読み出すとき、少なくとも誤り訂正が複数のデータワードのすべてのために実行されるまで、1つまたは複数の追加のデータワードを読み出し、誤りチェックコードビットを読み出し誤りチェックコードビットキャッシュ内にキャッシュするように構成される。
【0070】
例19は、例18のデータ処理デバイスであり、メモリインタフェース回路は、メモリから複数のデータワードを読み出すとき、1つまたは複数の追加のデータワードを読み出し、1つまたは複数の追加のデータワードからの追加の冗長ビットを誤りチェックコードビットキャッシュ内にキャッシュするようにさらに構成される。
【0071】
例20は、例1から19のいずれかのデータ処理デバイスであり、データ処理デバイスは、読み出し冗長ビットキャッシュを備え、メモリインタフェース回路は、メモリから複数のデータワードを読み出すとき、さらなる冗長ビットを読み出し冗長ビットキャッシュ内にキャッシュするようにさらに構成される。
【0072】
例21は、データをメモリ内に格納するための方法であり、メモリは、データを複数のページの形で格納し、各ページは、複数のデータワードを備え、方法は、各ページのために、ユーザデータをページの複数のデータワード内に格納するとともに、複数のデータワードのための誤りチェックコードビットをページの1つまたは複数の追加のデータワード内に格納するステップを含み、複数の追加のデータワードの少なくとも一部のために、誤りチェックコードビットは、同じ追加のデータワード内に含まれる。
【0073】
本願明細書において、特定の実施形態が図示および記載されてきたが、当業者によって、さまざまな代替および/または均等な実施態様が、本発明の範囲を逸脱しない範囲で、図示および記載される特定の実施形態と置換されてもよいことを認識されたい。この出願は、本願明細書において議論される特定の実施形態のあらゆる適合または変更をカバーすることを意図する。それゆえ、本発明は、請求項およびその均等物のみによって限定されることを意図する。
【符号の説明】
【0074】
100 データ処理デバイス
101 データ処理回路
102 メモリ
103 メモリコントローラ
104 メモリ装置
105 入出力装置
106 コプロセッサ
107 相互接続
200 データ処理デバイス
201 CPU
202 メモリ
203 メモリコントローラ
204 メモリ装置
205 ブリッジ
206 ページ
207 データワード
208 インタフェース
301 ユーザデータビットワード
302 ECC+セキュリティビットワード
303 セキュリティビットワード
401 ユーザデータビットワード
402 ECC+セキュリティビットワード
501 ページ
600 ブリッジ
601 アドレス生成器
602 セキュリティデータワード
603 ECC+セキュリティデータワード
604 ユーザデータワード
605 読み出しセキュリティデータキャッシュ
606 読み出しECC+セキュリティキャッシュ
607、608 矢印
609 ECC、セーフティおよびセキュリティ(データ)チェッカ
610 ECC、セーフティおよびセキュリティ(データ)生成器
611 書き込みセキュリティキャッシュ
612 書き込みECC+セキュリティキャッシュ
613、614 矢印
615 ユーザデータワード
616 ECC+セキュリティデータワード
617 セキュリティデータワード
図1
図2
図3
図4
図5
図6
【外国語明細書】