(57)【要約】  特定のデバイスが、抵抗性メモリデバイス、タグランダムアクセスメモリ(RAM)、およびビット復元(BR)メモリを含む。抵抗性メモリデバイスは、データ値およびデータ値に関連付けられた誤り訂正コード(ECC)データを記憶するように構成される。タグRAMは、メインメモリのメモリアドレスをキャッシュメモリのワード線にマップする情報を記憶するように構成され、キャッシュメモリは抵抗性メモリデバイスを含む。BRメモリは、データ値に関連付けられた追加誤り訂正データを記憶するように構成され、BRメモリは揮発性メモリデバイスに対応する。
2017504096.tif 000002
【特許請求の範囲】
【請求項１】
データ値および前記データ値に関連付けられた誤り訂正コード(ECC)データを記憶するように構成された抵抗性メモリデバイスと、
メインメモリのメモリアドレスをキャッシュメモリのワード線にマップする情報を記憶するように構成されたタグランダムアクセスメモリ(RAM)であって、前記キャッシュメモリが前記抵抗性メモリデバイスを含む、タグランダムアクセスメモリ(RAM)と、
前記データ値に関連付けられた追加誤り訂正データを記憶するように構成されたビット復元(BR)メモリであって、前記BRメモリが揮発性メモリデバイスに対応する、BRメモリとを備える装置。
【請求項２】
前記BRメモリおよび前記タグRAMを備えるトータルタグメモリをさらに備える、請求項1に記載の装置。
【請求項３】
前記タグRAMが、前記メインメモリのメモリアドレスを受信したことに応答して、前記メインメモリの前記メモリアドレスに対応する、前記キャッシュメモリのメモリアドレスを提供するように、または前記キャッシュメモリが、前記メインメモリの前記メモリアドレスに対応するデータを記憶しないことを示すように構成される、請求項1に記載の装置。
【請求項４】
前記抵抗性メモリデバイスがレベル3(L3)キャッシュを含む、請求項1に記載の装置。
【請求項５】
前記BRメモリが、前記データ値に関連付けられたマッピングについての要求を前記タグRAMが受信したことに応答して、前記追加誤り訂正データを提供するように構成される、請求項1に記載の装置。
【請求項６】
前記抵抗性メモリデバイスが複数のワード線を備え、前記データ値および前記ECCデータが、前記複数のワード線のうちの第1のワード線において記憶され、前記BRメモリが、前記抵抗性メモリデバイス中に含まれる前記複数のワード線の各々についての追加誤り訂正データを記憶する、請求項1に記載の装置。
【請求項７】
前記データ値が複数のワードを含み、前記ECCデータが、前記複数のワードの各々の中の第1の誤りビットの訂正を可能にし、前記追加誤り訂正データが、前記複数のワードの各々の中の第2の誤りビットの訂正を可能にする、請求項6に記載の装置。
【請求項８】
第2のBRメモリをさらに備え、前記第2のBRメモリが不揮発性メモリデバイスに対応し、前記追加誤り訂正データが前記BRメモリと前記第2のBRメモリとの間でミラーリングされ、前記第2のBRメモリに記憶された前記追加誤り訂正データが、前記BRメモリおよび前記第2のBRメモリを備える電子デバイスの電源投入に応答して、前記BRメモリを初期化するのに使われる、請求項1に記載の装置。
【請求項９】
前記データ値に関連付けられた前記追加誤り訂正データを生成するため、ならびに前記追加誤り訂正データを前記BRメモリおよび前記第2のBRメモリに記憶するためのコントローラをさらに備える、請求項8に記載の装置。
【請求項１０】
前記BRメモリが静的ランダムアクセスメモリ(SRAM)デバイスを含み、前記第2のBRメモリが磁気抵抗ランダムアクセスメモリ(MRAM)デバイスを含む、請求項9に記載の装置。
【請求項１１】
前記抵抗性メモリデバイスが磁気抵抗ランダムアクセスメモリ(MRAM)デバイスを含む、請求項1に記載の装置。
【請求項１２】
前記MRAMデバイスが磁気トンネル接合(MTJ)デバイスを含む、請求項11に記載の装置。
【請求項１３】
前記データ値を前記抵抗性メモリデバイスに書き込むエラーが発生したかどうか判断するために前記抵抗性メモリデバイスが調べられると、前記追加誤り訂正データを削除させるように構成されたコントローラをさらに備える、請求項1に記載の装置。
【請求項１４】
少なくとも1つのダイに集積された、請求項1に記載の装置。
【請求項１５】
前記抵抗性メモリデバイス、前記タグRAM、および前記BRメモリが集積されているモバイルフォン、タブレット、コンピュータ、通信デバイス、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテイメントユニット、ナビゲーションデバイス、携帯情報端末(PDA)、および定位置データユニットから選択される電子デバイスをさらに備える、請求項1に記載の装置。
【請求項１６】
データ値に対応するメインメモリアドレスを不揮発性メモリデバイスのワード線にマップするタグ情報を受信するステップと、
前記データ値に関連付けられたビット復元(BR)データをBRメモリから受信するステップであって、前記BRメモリが揮発性メモリデバイスに対応する、ステップと、
前記タグ情報を受信した後、前記不揮発性メモリデバイスに対して前記データ値を要求するステップと、
前記データ値および前記データ値に関連付けられた誤り訂正コード(ECC)データを前記不揮発性メモリデバイスから受信するステップであって、前記BRデータが前記ECCデータとは別個である、ステップと、
前記BRデータに基づいて前記データ値の第1の誤りビットを訂正するための第1の誤り訂正動作を実施するステップとを含む方法。
【請求項１７】
前記ECCデータに基づいて前記データ値の第2の誤りビットを訂正するための第2の誤り訂正動作を実施するステップをさらに含み、前記第2の誤り訂正動作が、前記第1の誤り訂正動作に引き続いて実施される、請求項16に記載の方法。
【請求項１８】
前記タグ情報が前記揮発性メモリデバイスから受信される、請求項16に記載の方法。
【請求項１９】
前記BRメモリが、前記揮発性メモリデバイスが前記タグ情報についての要求を受信したことに応答して、前記BRデータを提供するように構成される、請求項18に記載の方法。
【請求項２０】
前記データ値に関連付けられたリフレッシュ動作を実施したことに応答して、前記BRデータを生成するステップをさらに含み、前記BRデータが、前記不揮発性メモリデバイスの特定のワード線中に含まれるメモリ要素における再発性データエラーを示し、前記データ値が前記不揮発性メモリデバイスの前記特定のワード線において記憶される、請求項16に記載の方法。
【請求項２１】
前記メモリ要素が、故障したメモリ要素である、請求項20に記載の方法。
【請求項２２】
前記BRメモリおよび前記第2のBRメモリを備える電子デバイスの電源投入に応答して、第2のBRメモリから前記BRメモリに前記BRデータを書き込むステップをさらに含み、前記第2のBRメモリが第2の不揮発性メモリデバイスに対応する、請求項16に記載の方法。
【請求項２３】
前記不揮発性メモリデバイスの特定のワード線に書き込まれるべき新規データを受信したことに応答して、前記不揮発性メモリデバイスの前記特定のワード線に関連付けられたリフレッシュデータを生成するステップと、
前記リフレッシュデータが、前記不揮発性メモリデバイスの前記特定のワード線中に含まれるメモリ要素における再発性データエラーの存在を示すかどうか判断するステップと、
前記リフレッシュデータが前記再発性データエラーの前記存在を示すとき、前記BRメモリにおける前記BRデータを、前記メモリ要素に書き込まれるべきビット値を含むように更新するステップと、
前記新規データを、前記不揮発性メモリデバイスの前記特定のワード線に書き込むステップとをさらに含む、請求項16に記載の方法。
【請求項２４】
前記特定のワード線に関連付けられた前記リフレッシュデータが前記再発性データエラーの前記存在を示すとき、第2のBRメモリにおける前記BRデータを、前記メモリ要素に書き込まれるべきビット値を含むように更新するステップをさらに含み、前記第2のBRメモリが第2の不揮発性メモリデバイスに対応する、請求項23に記載の方法。
【請求項２５】
前記データ値を要求するステップ、および前記第1の誤り訂正動作を実施するステップが、電子デバイスに集積されたプロセッサによって開始される、請求項16に記載の方法。
【請求項２６】
データ値および前記データ値に関連付けられた誤り訂正コード(ECC)データを記憶するための手段と、
主データを記憶するための手段のメモリアドレスを、キャッシュデータを記憶するための手段のワード線にマップするマッピング情報を記憶するための手段であって、キャッシュデータを記憶するための前記手段が、前記データ値および前記ECCデータを記憶するための前記手段を備える、手段と、
前記データ値に関連付けられた追加誤り訂正データを記憶する復元ビットを記憶するための手段であって、復元ビットを記憶するための前記手段が揮発性メモリデバイスを含む、手段とを備える装置。
【請求項２７】
少なくとも1つのダイに集積された、請求項26に記載の装置。
【請求項２８】
前記データ値および前記ECCデータを記憶するための前記手段、マッピング情報を記憶するための前記手段、および復元ビットを記憶するための前記手段が集積されている、モバイルフォン、タブレット、コンピュータ、通信デバイス、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテイメントユニット、ナビゲーションデバイス、携帯情報端末(PDA)、および定位置データユニットから選択される電子デバイスをさらに備える、請求項26に記載の装置。
【請求項２９】
命令を記憶する非一時的コンピュータ可読記録媒体であって、前記命令が、プロセッサによって実行されると、前記プロセッサに、
データ値に対応するメインメモリアドレスを不揮発性メモリデバイスのワード線にマップするタグ情報を受信させ、
前記データ値に関連付けられたビット復元(BR)データをBRメモリから受信させ、前記BRメモリが揮発性メモリデバイスに対応し、
前記タグ情報を受信した後、前記不揮発性メモリデバイスに対して前記データ値を要求させ、
前記データ値および前記データ値に関連付けられた誤り訂正コード(ECC)データを前記不揮発性メモリデバイスから受信させ、前記BRデータが前記ECCデータとは別個であり、
前記BRデータに基づいて前記データ値の第1の誤りビットを訂正するための第1の誤り訂正動作を実施させる、非一時的コンピュータ可読記録媒体。
【請求項３０】
前記非一時的コンピュータ可読記録媒体が集積された、定位置データユニットおよびコンピュータから選択されたデバイスをさらに備える、請求項29に記載の非一時的コンピュータ可読記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、その内容全体が参照によって本明細書に明示的に組み込まれる、2013年11月25日に出願された共同所有の米国非仮特許出願第14/088,867号からの優先権を主張する。
【０００２】
本開示は概して、ビット復元システムに関する。
【背景技術】
【０００３】
技術の進歩の結果、コンピューティングデバイスはより小型でより強力になっている。たとえば、小型、軽量であり、ユーザによる持ち運びが容易な、ポータブルワイヤレス電話、携帯情報端末(PDA)、およびページングデバイスなどのワイヤレスコンピューティングデバイスを含む様々なポータブルパーソナルコンピューティングデバイスが現在存在している。より具体的には、セルラー電話、およびインターネットプロトコル(IP)電話などのポータブルワイヤレス電話は、ワイヤレスネットワークを介して音声およびデータパケットを通信し得る。さらに、多くのそのようなワイヤレス電話機は、それらに組み込まれた他のタイプのデバイスを含む。たとえば、ワイヤレス電話機は、また、デジタルスチルカメラ、デジタルビデオカメラ、デジタルレコーダ、およびオーディオファイルプレーヤを含むことができる。また、そのようなワイヤレス電話機は、インターネットにアクセスするために使用され得るウェブブラウザアプリケーションなどのソフトウェアアプリケーションを含む実行可能命令を処理することができる。そのように、これらのワイヤレス電話機は、かなりのコンピューティング能力を含むことができる。
【０００４】
コンピューティングデバイスは、データを記憶するのに使われるメモリ(たとえば、磁気抵抗ランダムアクセスメモリ(MRAM))を含むことができる。MRAMデバイスは、磁気トンネル接合(MTJ)デバイスを記憶要素として含み得る。MTJデバイスは、自由レイヤおよび固定レイヤを含み、固定レイヤに相対して、自由レイヤの配向に基づきデータを記憶することができる。たとえば、MTJデバイスは、MTJデバイスの自由レイヤおよび固定レイヤが同じ方向に磁化される(たとえば、並列状態)と、論理ゼロを記憶することができる。論理ゼロは、MTJデバイスの抵抗が一定の範囲内にあると判断することによって、読取り動作中に検出され得る。MTJデバイスは、自由レイヤが固定レイヤの磁化とは反対の方向に磁化される(たとえば、反並列状態)と、論理1を記憶することができる。論理1は、MTJデバイスの抵抗が、第2の、より高い範囲内にあると判断することによって、読取り動作中に検出され得る(反並列状態にあるMTJデバイスは、並列状態にあるMTJデバイスよりも高い抵抗を有するため)。MTJデバイスは、自由レイヤと固定レイヤとの間に配置された絶縁レイヤをさらに含む。たとえば、絶縁レイヤは、酸化マグネシウム(MgO)から形成され得る。
【０００５】
メモリにおいてデータエラーが発生し、メモリから読み取られたデータが、メモリに書き込まれるデータとは異なってしまう場合がある。データエラーは一時的なものである場合もあり(たとえば、メモリにデータを書込みし直すことによって訂正することができるデータエラー)、またはデータエラーは再発性である場合もある(たとえば、メモリにデータを書込みし直すことによって訂正することができないデータエラー)。たとえば、再発性データエラーは、絶縁レイヤの破壊によって引き起こされ得る(たとえば、MTJに、書込み電圧によって過度に圧力が加えられたとき)。絶縁レイヤが破壊すると、MTJデバイス内の自由レイヤと固定レイヤとの間に形成された経路が短絡する場合があり、MTJデバイスの抵抗が、非常に低い値においてスタックする。MTJデバイスの抵抗が、非常に低い値においてスタックすると、読取り動作は、MTJデバイスにおいて常に論理ゼロを検出し得る。
【０００６】
メモリは、メモリにおけるエラーを訂正するように構成された誤り訂正コード(ECC)モジュールを含み得る。ただし、ECCモジュールは、特定の数のエラー(たとえば、32ビットワード中の単一誤りビット)を訂正することができるだけである。メモリにおけるデータエラーの数が、ECCモジュールが訂正することができるエラーの数を超えると、ハード障害が発生し得る。ハード障害を扱う1つの方法は、冗長またはミラーメモリデバイス(redundant or mirrored memory devices)(たとえば、冗長またはミラーMTJデバイス)を使うことを含み得る。
【発明の概要】
【課題を解決するための手段】
【０００７】
本開示は、ビット復元システムの実施形態を提示する。ビット復元システムは、抵抗性メモリデバイス(たとえば、キャッシュメモリ)、タグランダムアクセスメモリ(RAM)、およびビット復元(BR)メモリを含み得る。抵抗性メモリデバイスは、メモリ要素(たとえば、磁気トンネル接合(MTJ)メモリ要素)の抵抗に基づきデータ値を記憶するデバイスであり得る。抵抗性メモリデバイスは、データ値およびデータ値に関連付けられた誤り訂正コード(ECC)データを記憶することができる。タグRAMは、メインメモリのメモリアドレスを抵抗性メモリデバイスのワード線にマップする情報を記憶することができる。BRメモリは、データ値に関連付けられた追加誤り訂正データを記憶することができる。揮発性メモリデバイス(たとえば、静的ランダムアクセスメモリ(SRAM))が、タグRAMおよびBRメモリを含んでよく、特定のワード線に関連付けられた追加誤り訂正データとともに、特定のワード線へのマッピングを提供し得る。ビット復元システムを含む電子デバイスは、冗長メモリデバイスもミラーメモリデバイスも使わずに、ハードフェイルから回復することが可能であり得る。電子デバイスは、ECCデータのみを使ってデータエラーを訂正する電子デバイスと比較して、BRメモリをさらに使って、より素早くデータエラーを訂正することができる。
【０００８】
特定の実施形態では、装置は、データ値およびデータ値に関連付けられた誤り訂正コード(ECC)データを記憶するように構成された抵抗性メモリデバイスを含む。装置は、メインメモリのメモリアドレスをキャッシュメモリのワード線にマップする情報を記憶するように構成されたタグランダムアクセスメモリ(RAM)をさらに含み、ここでキャッシュメモリは抵抗性メモリデバイスを含む。装置は、データ値に関連付けられた追加誤り訂正データを記憶するように構成されたビット復元(BR)メモリをさらに含み、ここでBRメモリは揮発性メモリデバイスに対応する。
【０００９】
別の特定の実施形態では、方法は、データ値に対応するメインメモリアドレスを不揮発性メモリデバイスのワード線にマップするタグ情報を受信するステップを含む。方法は、データ値に関連付けられたビット復元(BR)データをBRメモリから受信するステップをさらに含み、ここでBRメモリは揮発性メモリデバイスに対応する。方法は、タグ情報を受信した後、不揮発性メモリデバイスに対してデータ値を要求するステップをさらに含む。方法は、データ値およびデータ値に関連付けられた誤り訂正コード(ECC)データを不揮発性メモリデバイスから受信するステップをさらに含み、ここでBRデータはECCデータとは別個である。方法は、BRデータに基づいてデータ値の第1の誤りビットを訂正するための第1の誤り訂正動作を実施するステップをさらに含む。
【００１０】
別の特定の実施形態では、装置は、データ値およびデータ値に関連付けられた誤り訂正コード(ECC)データを記憶するための手段を含む。装置は、主データを記憶するための手段のメモリアドレスを、キャッシュデータを記憶するための手段のワード線にマップするマッピング情報を記憶するための手段をさらに含み、ここで、キャッシュデータを記憶するための手段は、データ値およびECCデータを記憶するための手段を含む。装置は、データ値に関連付けられた追加誤り訂正データを記憶する復元ビットを記憶するための手段をさらに含み、ここで復元ビットを記憶するための手段は揮発性メモリデバイスを含む。
【００１１】
別の特定の実施形態では、方法は、データ値に対応するメインメモリアドレスを不揮発性メモリデバイスのワード線にマップするタグ情報を受信するためのステップを含む。方法は、データ値に関連付けられたビット復元(BR)データをBRメモリから受信するためのステップをさらに含み、ここでBRメモリは揮発性メモリデバイスに対応する。方法は、タグ情報を受信した後、不揮発性メモリデバイスに対してデータ値を要求するためのステップをさらに含む。方法は、データ値およびデータ値に関連付けられた誤り訂正コード(ECC)データを不揮発性メモリデバイスから受信するためのステップをさらに含み、ここでBRデータはECCデータとは別個である。方法は、BRデータに基づいてデータ値の第1の誤りビットを訂正するための第1の誤り訂正動作を実施するためのステップをさらに含む。
【００１２】
別の特定の実施形態では、非一時的コンピュータ可読媒体は、プロセッサによって実行されると、プロセッサに、データ値に対応するメインメモリアドレスを不揮発性メモリデバイスのワード線にマップするタグ情報を受信させる命令を記憶する。非一時的コンピュータ可読媒体は、プロセッサによって実行されると、プロセッサに、データ値に関連付けられたビット復元(BR)データをBRメモリから受信させる命令をさらに記憶し、ここでBRメモリは揮発性メモリデバイスに対応する。非一時的コンピュータ可読媒体は、プロセッサによって実行されると、プロセッサに、タグ情報を受信した後、不揮発性メモリデバイスに対してデータ値を要求させる命令をさらに記憶する。非一時的コンピュータ可読媒体は、プロセッサによって実行されると、プロセッサに、データ値およびデータ値に関連付けられた誤り訂正コード(ECC)データを不揮発性メモリデバイスから受信させる命令をさらに記憶し、ここでBRデータはECCデータとは別個である。非一時的コンピュータ可読媒体は、プロセッサによって実行されると、プロセッサに、BRデータに基づいてデータ値の第1の誤りビットを訂正するための第1の誤り訂正動作を実施させる命令をさらに記憶する。
【００１３】
別の特定の実施形態では、方法は、電子デバイスに対応する設計情報を含むデータファイルを受信するステップを含む。この方法は、設計情報に従って電子デバイスを製造するステップをさらに含む。電子デバイスは、データ値およびデータ値に関連付けられた誤り訂正コード(ECC)データを記憶するように構成された抵抗性メモリデバイスを含む。電子デバイスは、メインメモリのメモリアドレスをキャッシュメモリのワード線にマップする情報を記憶するように構成されたタグランダムアクセスメモリ(RAM)をさらに含み、ここでキャッシュメモリは抵抗性メモリデバイスを含む。電子デバイスは、データ値に関連付けられた追加誤り訂正データを記憶するように構成されたビット復元(BR)メモリデバイスをさらに含み、ここでBRメモリは揮発性メモリデバイスに対応する。
【００１４】
開示する実施形態のうちの少なくとも1つによって提供される1つの特定の利点は、ビット復元システムを含む電子デバイスが、データエラーを訂正するのにBRメモリを、および別のデータエラーを訂正するのに誤り訂正コード(ECC)モジュールを使うことができることである。したがって、電子デバイスは、電子デバイスが動作している間に、および冗長メモリデバイスもミラーメモリデバイスも使わずに、ハードフェイルから回復することができる。電子デバイスは、ECCデータのみを使ってデータエラーを訂正する電子デバイスと比較して、BRメモリをさらに使って、より素早くデータエラーを訂正することができる。
【００１５】
本開示の他の態様、利点、および特徴は、以下の節、図面の簡単な説明、発明を実施するための形態、および特許請求の範囲を含め、本明細書全体の検討後に明らかになるであろう。
【図面の簡単な説明】
【００１６】
【図１】メモリ、タグメモリ、およびビット復元メモリを含むシステムの特定の実施形態を示す図である。
【図２】メモリ、タグメモリ、第1のビット復元メモリ、および第2のビット復元メモリを含むシステムの特定の実施形態を示す図である。
【図３】ビットを復元する方法を示すフローチャートである。
【図４】メモリ、タグメモリ、およびビット復元メモリを含む通信デバイスを示すブロック図である。
【図５】メモリ、タグメモリ、およびビット復元メモリを含む電子デバイスを製造するための製造プロセスの特定の例示的な実施形態を示すデータフロー図である。
【発明を実施するための形態】
【００１７】
図1を参照すると、コントローラ120と、抵抗性メモリデバイス110(たとえば、キャッシュメモリ)と、ビット復元(BR)メモリデバイス150およびタグランダムアクセスメモリ(RAM)160を含むトータルタグメモリ162とを含むシステム100の特定の例示的な実施形態が示されている。抵抗性メモリデバイス110は、代表的行130など、1つまたは複数の行を含み得る。抵抗性メモリデバイス110は、データ部分112および誤り訂正符号(ECC)部分114をさらに含み得る。抵抗性メモリデバイス110の各行のデータ部分は、データ部分112に対応し得る。抵抗性メモリデバイス110の各行のECC部分は、ECC部分114に対応し得る。行のECC部分に記憶されたデータは、行のデータ部分に記憶されたデータに対応し得る。図1に示す例において、行130は、第1のワード132、第2のワード134、第3のワード136、および第4のワード138を含むデータ部分を含む。この例では、行130は、データ部分に記憶されたデータに対応するECCデータ140を含むECC部分をさらに含む。
【００１８】
ECCデータ140は、コントローラ120によって、ワードごとに特定の数の誤りビット(たとえば、読取りまたは書込み失敗によって引き起こされた1ビットエラー)を訂正するのに使うことができる。たとえば、ワード132〜138の各々が、32ビットワードのデータを含み得る。この例では、ECCデータ140の第1の6ビットが、コントローラ120によって、第1のワード132中に含まれる1つの誤りビットを訂正するのに使うことができ、ECCデータ140の第2の6ビットが、コントローラ120によって、第2のワード134中に含まれる1つの誤りビットを訂正するのに使うことができる、などのようになる。したがって、この例では、抵抗性メモリデバイス110向けの読取りまたは書込み動作は、合計152ビット(たとえば、128ビットのデータおよび24ビットのECCデータ)を必要とする。
【００１９】
特定の実施形態では、抵抗性メモリデバイス110は、4つの32ビットワードのデータに分割された128ビットのデータと24ビットのECCデータを各々が含む4k(4096)行を有する64キロバイト(kb)磁気抵抗ランダムアクセスメモリ(MRAM)デバイスである。代替として、抵抗性メモリデバイス110は、より多くの行またはより少ない行を含んでもよく、各行は、より多くのビットまたはより少ないビットを含んでもよい。抵抗性メモリデバイス110の各行に記憶されたデータは、他のサイズに分割することができる(たとえば、データは、16ビットの半語または64ビットの倍長語に分割することができる)。別の特定の実施形態では、抵抗性メモリデバイス110は、レベル3(L3)キャッシュメモリである。1つの抵抗性メモリデバイスが図1に示されているが、他の実施形態では、システム100は、複数の抵抗性メモリデバイス110を含んでよい。
【００２０】
トータルタグメモリ162は、BRメモリデバイス150およびタグRAM160を含む。トータルタグメモリ162は、揮発性メモリデバイス(たとえば、静的ランダムアクセスメモリ(SRAM))であってよい。タグRAM160は、第2のメモリの部分(たとえば、キャッシュメモリのワード線)に記憶されている、第1のメモリ(たとえば、メインメモリ)からのデータを識別するメモリデバイスであってよい。したがって、タグRAM160は、第1のメモリ(たとえば、メインメモリ)のメモリアドレスを、第2のメモリのメモリアドレス(たとえば、キャッシュメモリのワード線)にマップする情報を記憶するように構成されてよい。タグRAM160には、第2のメモリ(たとえば、抵抗性メモリデバイス110)が、第1のメモリのメモリアドレスに対応するデータ値を記憶しているかどうか判断するために、(たとえば、コントローラ120によって)アクセスすることができる。特定の実施形態では、抵抗性メモリデバイス110が、メインメモリアドレスに対応するデータ値を記憶しているとき、タグRAM160は、メインメモリアドレスを受信したことに応答して、抵抗性メモリデバイス110のメモリアドレス(たとえば、行130に対応するアドレス)を与えることができる。特定の実施形態では、抵抗性メモリデバイス110が、メインメモリアドレスに対応するデータ値を記憶していないとき、タグRAM160は、メインメモリアドレスが抵抗性メモリデバイス110に記憶されていないことを示す信号を与えることができる。
【００２１】
BRメモリデバイス150は、複数のBR行を含む揮発性メモリデバイスであってよい。BRメモリデバイス150の各行(たとえば、BR行152)は、メモリデバイスの行(たとえば、抵抗性メモリデバイス110の行130)に対応し得る。BRメモリデバイス150のBR行の各々は、抵抗性メモリデバイス110の対応する行の特定のメモリ要素(たとえば、MTJデバイス)がデータエラー(たとえば、絶縁レイヤ破壊)に遭遇したかどうかを示す情報を記憶することができる。BRメモリデバイス150に記憶された情報は、抵抗性メモリデバイス110における対応するデータ値に関連付けられたデータエラーを訂正するのに使われる誤り訂正データであってよい。図1は、データ値を記憶する単一のメモリデバイス(たとえば、抵抗性メモリデバイス110)を示しているが、BRメモリデバイス150は、データ値を記憶する複数のメモリデバイス(たとえば、4つの64kb MRAMであって、各MRAMは4kの128ビット行を含む)の行に対応するBR行を含んでもよい。BRメモリデバイス150は、不揮発性BRメモリデバイスよりも素早く誤り訂正データを与えるように構成することができ、というのは、揮発性メモリデバイス(たとえば、SRAMデバイス)は、対応するサイズの不揮発性メモリデバイス(たとえば、MRAMデバイスまたは相変化ランダムアクセスメモリ(PCRAM)デバイス)(たとえば、同様の数の利用可能記憶ロケーションを含むデバイス)よりも素早くデータ要求に応答するように構成され得るからである。
【００２２】
図1に示す例において、BRメモリデバイス150は、BR行152を含む。BR行152は、抵抗性メモリデバイス110の行130の特定のメモリ要素がデータエラーに遭遇したかどうかを示す情報を記憶することができる。BR行152に記憶された情報は、行130の特定のメモリ要素が故障したかどうかを示す第1の情報154(たとえば、マスタビット)と、データエラーに遭遇した、行130中のアドレスを識別する第2の情報156とを含み得る。たとえば、第1の情報154は、行130中でメモリ要素故障が発生したときに2進の1にセットされるとともに、行130中でメモリ要素故障が検出されなかったときに2進の0にセットされるマスタビットであってよい。第2の情報156は、故障したメモリ要素に対応するビット位置を識別し得る。特定の実施形態では、BRメモリデバイス150は、故障したメモリ要素に記憶されているべき正しいデータ値を第3の情報158として記憶することができる。たとえば、コントローラ120によって、故障したメモリ要素に2進の1が書き込まれるべきである場合、コントローラ120は、第3の情報158(単一ビットでよい)を1の値にセットすればよい。代替的に、コントローラ120によって、故障したメモリ要素に2進の0が書き込まれるべきである場合、コントローラ120は、第3の情報158を0の値にセットすればよい。
【００２３】
動作中、コントローラ120は、入力データ(DIN)を受信し得る。入力データ(DIN)は、抵抗性メモリデバイス110の行に書き込まれるべきデータ値に対応し得る。たとえば、図1に示すように、コントローラ120は、行130のデータ部分112にデータ値122(たとえば、16進の「aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa」)を書き込むための書込み動作を実施することができる。図1に示すように、書込み動作が完了した後、第1のワード132は16進の「aaaaaaaa」値を記憶することができ、第2のワード134は16進の「aaaaaaaa」値を記憶することができ、第3のワード136は16進の「aaaaaaaa」値を記憶することができる。第4のワード138は、16進の「aaaaaaaa」値ではなく16進の「aaaaaaa8」値を記憶することができる(たとえば、2進の1ではなく2進の0が、第4のワード138のビット位置1に記憶される)。データ値122が行130に書き込まれると、コントローラ120は、BRメモリデバイス150のBR行152に記憶された情報を削除してよい。
【００２４】
抵抗性メモリデバイス110において書込み動作が完了した時点で、データエラー(たとえば、第4のワード138に記憶された値の中の16進の「8」)が、一時的データエラーまたは再発性データエラー(たとえば、MTJデバイスの絶縁体レイヤ故障)によって引き起こされたかわからない場合がある。コントローラ120は、外部コントローラからリフレッシュコマンドを受信し得る。リフレッシュコマンドに応答して、コントローラ120は、抵抗性メモリデバイス110の行(たとえば、行130)からデータ値およびECCデータを取り出すための第1の読取り動作を実施し、ECCデータを使ってデータ値に対して誤り訂正を実施し、訂正されたデータ値を抵抗性メモリデバイス110の行に書き込むことができる。訂正されたデータを抵抗性メモリデバイス110の行に書き込んだ後、コントローラ120は、抵抗性メモリデバイス110の行からデータ値およびECCデータを再度取り出すための第2の読取り動作を実施することができる。コントローラ120は、訂正されたデータ値を、第2の読取り動作を使って取り出されたデータ値と比較すればよい。データ値が一致せず、第1の読取り動作のエラービットロケーションが第2の読取り動作のエラービットロケーションに対応する場合、コントローラ120は、再発性データエラー(たとえば、メモリ要素故障)が発生したと判断してよい。
【００２５】
説明のために、リフレッシュコマンドに応答して、コントローラ120は、抵抗性メモリデバイス110の行130を読み取って、データ部分112に記憶されたデータ値(たとえば、データ値124)を取り出し、行130からECCデータ140を取り出すことができる。図1に示すように、データ値124は、データ値122(たとえば、16進の「aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa」)よりもむしろ16進の「aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa8」に対応する。コントローラ120は、ECCデータ140を使ってデータ値124に対して誤り訂正を実施し、正しいデータ値(たとえば、16進の「aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa」値)を行130のデータ部分112に戻して書き込むことができる。コントローラ120は、行130を再度読み取るための第2の読取りを実施して、行130のデータ部分112に記憶されたデータ値を取り出し、第2の読取りによって取り出されたデータ値を、訂正されたデータ値と比較して、リフレッシュデータを生成することができる。
【００２６】
第2の読取りによって取り出されたデータ値が、訂正されたデータ値と一致する場合、コントローラ120は、リフレッシュデータが一時的データエラーを示すと判断してよい。コントローラ120は、行130に対応する、抵抗性メモリデバイス110のメモリ要素(たとえば、MTJ要素)が故障していない(たとえば、絶縁体レイヤ破壊が発生していない)とさらに判断してよく、BRメモリデバイス150のBR行152に記憶された情報を更新してよい。たとえば、コントローラ120は、行130においてメモリ要素故障が検出されなかったことを示すように、第1の情報154を2進の0値に更新すればよい。
【００２７】
第2の読取りによって取り出されたデータ値が、訂正されたデータ値と一致せず、第1の読取り動作のエラービットロケーションが、第2の読取り動作のエラービットロケーションに対応する場合、コントローラ120は、リフレッシュデータが再発性データエラーを示すと判断してよい。特定の実施形態では、再発性データエラーは、故障したメモリ要素により発生する。たとえば、行130のMTJ要素は、故障した可能性がある(たとえば、絶縁体レイヤ破壊が発生した可能性がある)。リフレッシュデータが再発性データエラーを示すと判断したことに応答して、コントローラ120は、行130内の再発性データエラーのロケーションを識別することができる。たとえば、訂正されたデータ値と取り出されたデータ値は、第4のワード138を除いて一致する。コントローラ120は、故障したメモリ要素が、第4のワード138のビット位置1に対応すると判断してよい(たとえば、16進の「a」の値が2進数では1010として表され、16進の「8」の値が、2進数では1000として表される)。コントローラ120は、BRメモリデバイス150のBR行152に記憶された情報を、行130から取り出されたデータ値が、BRメモリデバイス150のBR行152に記憶された情報に基づいて訂正されるべきであることを示すように更新すればよい。たとえば、BRメモリデバイス150は、「100000001」のデータ値をBR行152に記憶することができ、ここで第1の情報154は「1」の値に対応し(「1」は、故障したメモリ要素を示す)、第2の情報156は、「00000001」の値(たとえば、故障したメモリ要素のビット位置)に対応する。BRメモリデバイス150は、第2の情報156の後に、「1」のデータ値を第3の情報158としてさらに記憶することができ、ここで第3の情報158は、第2の情報156によって示されるビット位置に現れるべき値を示す。
【００２８】
BRメモリデバイス150のBR行152にデータが記憶された後、タグRAM160にメモリアドレスが与えられてよい。メモリアドレスは、BRメモリデバイス150のBR行152に対応する行(たとえば、抵抗性メモリデバイス110の行130)に対応し得る。BRメモリデバイス150は、タグRAM160におけるメモリアドレスを受信したことに応答して、誤り訂正データ(たとえば、第2の情報156に対応するロケーションにあるデータ値が反転されるべきであるという指示、または第2の情報156に対応するロケーションにあるデータ値が第3の情報158に対応するべきであるという指示)をコントローラ120に与えるように構成されてよい。第1の実施形態では、コントローラ120は、抵抗性メモリデバイス110からデータ値を受信した後、第2の情報156によって識別されたメモリ要素に対応するビットの値を反転させることによって、第1の誤りビットを訂正することができる。本実施形態では、いかなる第3の情報158も、トータルタグRAM160中に記憶されない。たとえば、コントローラ120は、第4のワード138中のビット位置1にある「0」を反転させればよい。第2の実施形態では、コントローラ120は、第3の情報158でビットを置き換えることによって、第1の誤りビットを訂正することができる。たとえば、BRメモリデバイス150は、第3の情報158にある「1」のデータ値を記憶することができ、コントローラ120は、第4のワード138のビット位置1にある「0」を第3の情報158の「1」で置き換えればよい。
【００２９】
さらに、コントローラ120は、リフレッシュ動作に引き続いて起こる読取り動作中に、ECCデータ140を使ってデータ値の第2の誤りビットを訂正することができる。第2の誤り訂正動作は、BRメモリデバイス150を使って第1の誤りビットを訂正したことに引き続いて実施されてよい。説明のための例として、リフレッシュ動作の一部として、コントローラ120は、抵抗性メモリデバイス110の行130が再発性データエラーを含む(たとえば、データ値124が、データ値122(たとえば、16進の「aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa」)よりもむしろ16進の「aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa8」に対応する)と判断してよい。コントローラ120は、BRメモリデバイス150に、メモリ要素が行130のビット位置1において故障したことを示すデータ値をBR行152に記憶するよう命令してよい。行130の後続読取り中、コントローラ120は、16進の「aaaaaaaaaaaaaaaaaaaaaaaa2aaaaaa8」に対応するデータ値を行130から受信し得る(たとえば、第4のワード138は、ビット位置1における再発性データエラーおよびビット位置31における一時的データエラー(「1」ではなく「0」)を含む)。ECCデータ140単独では、再発性データエラーと一時的データエラーの両方を訂正することができるわけではない場合がある(たとえば、説明のための例において、ECCデータ140は、ワードごとに1ビットエラーを訂正することができるだけである)。コントローラ120は、BR行152に記憶されたデータを使って再発性データエラーを訂正することができる。引き続き、コントローラ120は、ECCデータ140と、訂正されたデータ値(たとえば、再発性データエラーが訂正されている16進の「aaaaaaaaaaaaaaaaaaaaaaaa2aaaaaaa」)とを使って一時的データエラーを、データ値122(たとえば、16進の「aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa」)を生じるように訂正することができる。したがって、BRメモリデバイス150のBR行152は、ECCデータ140のみを使って、そうしなければ訂正されないであろう追加誤りビットの訂正を可能にする。
【００３０】
システム100を含む電子デバイスは、データエラーを訂正するのにBRメモリデバイス150を、および別のデータエラーを訂正するのにECCデータ140を使うことができる。したがって、電子デバイスは、電子デバイスが動作している間に、および冗長メモリデバイスもミラーメモリデバイスも使わずに、ハードフェイルから回復することができる。電子デバイスは、ECCデータのみを使ってデータエラーを訂正する電子デバイスと比較して、BRメモリデバイス150をさらに使って、より素早くデータエラーを訂正することができる。
【００３１】
図2を参照すると、図1のコントローラ120、抵抗性メモリデバイス110、トータルタグメモリ162、および第2のビット復元(BR)メモリデバイス202を含むシステム200の特定の例示的な実施形態が示されている。コントローラ120、抵抗性メモリデバイス110、およびトータルタグメモリ162は、図1を参照して上述したように機能し得る。
【００３２】
図2に示す実施形態では、第2のBRメモリデバイス202は不揮発性メモリ(たとえば、磁気抵抗ランダムアクセスメモリ(MRAM)または相変化ランダムアクセスメモリ(PCRAM))であり、BRメモリデバイス150は揮発性メモリ(たとえば、静的ランダムアクセスメモリ(SRAM))である。BRメモリデバイス150からデータを読み取るのは、不揮発性メモリからデータを読み取るよりも高速であり得る。第2のBRメモリデバイス202は、代表的BR行210など、複数のBR行を含み得る。第2のBRメモリデバイス202の各行は、メモリデバイスの行に対応し得る。たとえば、BR行210は、抵抗性メモリデバイス110の行130に対応し得る。さらに、第2のBRメモリデバイス202の各行は、別のBRメモリデバイスの行に対応し(たとえば、その行をミラーリングし)得る。この例では、BR行210は、BRメモリデバイス150のBR行152に対応し得る。したがって、この例では、BR行210はBR行152に対応し、BR行210とBR行152の両方が行130に対応する。説明のための例として、BRメモリデバイス150の各行は、抵抗性メモリデバイス110の異なる行に対応する。説明のための例において、BRメモリデバイス150の各行に記憶されたデータは、第2のBRメモリデバイス202の対応する行においてミラーされる。
【００３３】
第2のBRメモリデバイス202のBR行の各々は、抵抗性メモリデバイス110の対応する行の特定のメモリ要素(たとえば、MTJデバイス)がデータエラー(たとえば、絶縁レイヤ破壊)に遭遇したかどうかを示す情報を記憶することができる。第2のBRメモリデバイス202に記憶された情報は、抵抗性メモリデバイス110における対応するデータ値に関連付けられたデータエラーを訂正するのに使われる誤り訂正データを含み得る。図2は、データ値を記憶する単一のメモリデバイス(たとえば、抵抗性メモリデバイス110)および単一の他のBRメモリ(たとえば、BRメモリデバイス150)を示しているが、第2のBRメモリデバイス202は、データ値を記憶する複数のメモリデバイス(たとえば、4つの64kb MRAMであって、各MRAMは4kの128ビット行を含む)および複数の他のBRメモリデバイスの行に対応するBR行を含んでもよい。
【００３４】
第2のBRメモリデバイス202は、BRメモリデバイス150の対応する行に情報が記憶されたことに応答して、BR行に情報を記憶するように構成することができる。たとえば、第2のBRメモリデバイス202は、BR行152に情報が記憶されたことに応答して、第1の情報154に対応する第1の情報204、第2の情報156に対応する第2の情報206、および第3の情報158に対応する第3の情報208をBR行210に記憶するように構成することができる。図1を参照して上で説明したように、BRメモリデバイス150は情報を揮発性メモリに記憶するので、情報を不揮発性メモリから取り出すのと比較して、情報がより素早く取り出され得る。ただし、システム200が電源切断された場合、揮発性メモリ(たとえば、BRメモリデバイス150)に記憶された情報は失われ得るが、不揮発性メモリに記憶されたデータおよび情報(たとえば、抵抗性メモリデバイス110に記憶されたデータ、第2のBRメモリデバイス202に記憶された情報、または両方)は保持され得る。BRメモリデバイス150に記憶された情報が失われると、システム200が電源切断される前に検出された、抵抗性メモリデバイス110における再発性データエラーを検出する(たとえば、再検出する)ために、追加エラー検出処理(たとえば、リフレッシュ動作)が実施されてよい。第2のBRメモリデバイス202は、システム200の電源投入に応答して、コントローラ120を介してBRメモリデバイス150を初期化するのに使うことができる。したがって、抵抗性メモリデバイス110におけるデータエラーに関する情報(たとえば、第2のBRメモリデバイス210に記憶された情報)は、システム200が電源切断される前に検出された再発性データエラーを検出する(たとえば、再検出する)ための追加リフレッシュ動作を実施することなく、BRメモリデバイス150において利用可能であり得る。
【００３５】
図2に示す例において、BRメモリデバイス150は、BR行152を含む。特定の実施形態では、BR行152は、抵抗性メモリデバイス110の行130に対応する誤り訂正情報を含む。特定の実施形態では、第2のBRメモリデバイス202は、BR行152に対応するBR行210を含む。システム200が電力を失うと、BR行152における誤り訂正情報が失われ得る。システム200が電力を回復すると、BRメモリデバイス150は、BR行210に記憶された情報をBR行152に転送することによって(たとえば、コントローラ120によって)初期化され得る。したがって、BRメモリデバイス150にある情報は、抵抗性メモリデバイス110においてリフレッシュ動作を実施せずに復元することができる。次いで、システム200は、タグRAM160における、行130に対応するメモリアドレスを受信したことに応答して、誤りビットを訂正するのに、誤り訂正情報を使えばよい。コントローラ120は、第2の情報156によって識別されたメモリ要素に対応するビットの値を反転させることによって、またはビットを第3の情報158で置き換えることによって、第1の誤りビットを訂正することができる。さらに、図1を参照して上述したように、コントローラ120は、ECCデータ140を使って、データ値の第2の誤りビットを訂正することができる。図1を参照して上述したように、BR行152の誤り訂正情報は、リフレッシュコマンドに続いて、または行130に情報が記憶されたことに応答して更新することができる。誤り訂正情報はさらに、リフレッシュコマンドに続いて、または行130に情報が記憶されたことに応答して、BR行210に記憶することができる。
【００３６】
図3は、ビットを復元する方法300の特定の実施形態を示すフローチャートである。方法は、302において、データ値に対応するメインメモリアドレスを不揮発性メモリデバイスのワード線にマップするタグ情報を受信することを含む。たとえば、図1のコントローラ120は、タグランダムアクセスメモリ(RAM)160からタグ情報を受信し得る。タグ情報は、データ値に対応するメインメモリアドレスを抵抗性メモリデバイス110の行130にマップし得る。方法は、304において、データ値に関連付けられたビット復元(BR)データをBRメモリから受信することをさらに含み、ここでBRメモリは揮発性メモリデバイスに対応する。たとえば、図1のコントローラ120は、データ値に関連付けられたBRデータをBRメモリデバイス150から受信することができ、ここでBRメモリデバイス150は揮発性メモリデバイス(たとえば、静的ランダムアクセスメモリ(SRAM))に対応する。タグ情報はBRデータの前に受信することができ、BRデータはタグ情報の前に受信することができ、またはタグ情報およびBRデータは同時もしくは一斉に受信することができる。
【００３７】
方法は、306において、タグ情報を受信した後、不揮発性メモリデバイスに対してデータ値を要求することをさらに含む。たとえば、図1のコントローラ120は、タグ情報を受信した後、抵抗性メモリデバイス110の行130のデータ値を要求し得る。方法は、308において、データ値およびデータ値に関連付けられた誤り訂正符号(ECC)データを不揮発性メモリデバイスから受信することをさらに含む。たとえば、図1のコントローラ120は、データ値122、およびデータ値122に関連付けられたECCデータ140を、抵抗性メモリデバイス110から受信することができる。BRデータは、ECCデータとは別個であり得る。たとえば、図1のBR行152のデータは、ECCデータ140とは別個である。
【００３８】
方法は、310において、BRデータに基づいてデータ値の第1の誤りビットを訂正するための第1の誤り訂正動作を実施することをさらに含む。たとえば、図1のコントローラ120は、データ値124のビット位置1を訂正するための誤り訂正動作を実施することができる。説明のために、データ値124は、16進の「aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa8」よりもむしろ、16進の「aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa」という出力DOUTを与えるように訂正することができる。訂正されたデータ値は、コントローラ120において、または別のデバイスにおいて、ECCデータ140を使ってさらに訂正することができる。説明のために、16進の「aaaaaaaaaaaaaaaaaaaaaaaa2aaaaaa8」というデータ値は、16進の「aaaaaaaaaaaaaaaaaaaaaaaa2aaaaaaa」という訂正されたデータ値を与えるように、BRデータを使って訂正することができ、ECCデータ140は、16進の「aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa」という出力DOUTを与えるように、訂正されたデータ値をさらに訂正するのに使うことができる。
【００３９】
図3の方法300は、中央処理ユニット(CPU)、フィールドプログラマブルゲートアレイ(FPGA)デバイス、特定用途向け集積回路(ASIC)、コントローラ、別のハードウェアデバイス、ファームウェアデバイス、またはそれらの任意の組合せなどの処理ユニットによって開始され得る。一例として、図3の方法300は、図4を参照してさらに説明するように、命令を実行する1つまたは複数のプロセッサによって実施され得る。
【００４０】
方法300に従って動作する電子デバイスは、第1のデータエラーを訂正するのにBRメモリデバイスを、および第2のデータエラーを訂正するのにECCデータを使うことができる。したがって、電子デバイスは、電子デバイスが動作している間に、および冗長メモリデバイスもミラーメモリデバイスも使わずに、ハードフェイルから回復することができる。電子デバイスは、ECCデータのみを使ってデータエラーを訂正する電子デバイスと比較して、BRメモリデバイスをさらに使って、より素早くデータエラーを訂正することができる。
【００４１】
図4を参照すると、ブロック図は、メモリ402(たとえば、キャッシュメモリ)と、コントローラ404と、タグランダムアクセスメモリ(RAM)408およびビット復元(BR)メモリ410を含むトータルタグメモリ406とを含むモバイルデバイスの特定の例示的な実施形態を示し、モバイルデバイスは全体が400と指定される。モバイルデバイス400、またはその構成要素は、通信デバイス、携帯電話、セルラー電話、コンピュータ、ポータブルコンピュータ、タブレット、アクセスポイント、セットトップボックス、エンターテイメントユニット、ナビゲーションデバイス、携帯情報端末(PDA)、定位置データユニット、移動体位置データユニット、デスクトップコンピュータ、モニタ、コンピュータモニタ、テレビジョン、チューナ、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、ビデオプレーヤ、デジタルビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、またはポータブルデジタルビデオプレーヤなどのデバイスを含み、デバイスを実装し、またはデバイス内に含まれ得る。
【００４２】
モバイルデバイス400は、デジタル信号プロセッサ(DSP)などのプロセッサ412を含んでよい。プロセッサ412は、メモリ432(たとえば、非一時的コンピュータ可読媒体)に結合されてよい。プロセッサ412は、コントローラ404にさらに結合され得る。コントローラ404は、メモリ402およびトータルタグメモリ406にさらに結合され得る。メモリ402は、データ値およびデータ値に関連付けられた誤り訂正コード(ECC)データを記憶するように構成することができる。タグRAM408は、メインメモリ(たとえば、メモリ432)のメモリアドレスをキャッシュメモリのワード線にマップする情報を記憶するように構成することができる。キャッシュメモリは、メモリ402を含むか、またはそれに対応し得る。BRメモリ410は、データ値に関連付けられた追加誤り訂正データを記憶するように構成することができる。BRメモリ410は、揮発性メモリデバイスに対応し得る。たとえば、メモリ402は、図1または図2の抵抗性メモリデバイス110に対応し得る。コントローラ404は、図1または図2のコントローラ120に対応し得る。トータルタグメモリ406は、トータルタグメモリ162に対応し得る。タグRAM408は、図1または図2のタグRAM160に対応し得る。BRメモリ410は、図1または図2のBRメモリデバイス150に対応し得る。
【００４３】
図4はまた、プロセッサ412とディスプレイ428とに結合されるディスプレイコントローラ426を示す。コーダ/デコーダ(コーデック)434も、プロセッサ412に結合することができる。スピーカ436およびマイクロフォン438が、コーデック434に結合され得る。ワイヤレスコントローラ440が、プロセッサ412に結合されてよく、アンテナ442にさらに結合されてよい。
【００４４】
特定の実施形態では、プロセッサ412、ディスプレイコントローラ426、メモリ432、コーデック434、ワイヤレスコントローラ440、メモリ402、コントローラ404、およびトータルタグメモリ406が、システムインパッケージまたはシステムオンチップデバイス422内に含まれる。入力デバイス430および電源444は、システムオンチップデバイス422に結合され得る。その上、特定の実施形態では、図4に示されるように、ディスプレイ428、入力デバイス430、スピーカ436、マイクロフォン438、アンテナ442および電源444は、システムオンチップデバイス422の外部に存在している。しかしながら、ディスプレイ428、入力デバイス430、スピーカ436、マイクロフォン438、アンテナ442、および電源444の各々は、インターフェースまたはコントローラなどのシステムオンチップデバイス422の構成要素に結合されてよい。メモリ402、コントローラ404、および/またはトータルタグメモリ406は、図4に示すように、システムオンチップデバイス422に含まれてよく、または1つもしくは複数の別々の構成要素に含まれてよい。
【００４５】
記載する実施形態に伴って、装置(モバイルデバイス400など)は、データ値およびデータ値に関連付けられたECCデータを記憶するための手段(たとえば、図1もしくは図2の抵抗性メモリデバイス110または図4のメモリ402)を含み得る。装置は、主データを記憶するための手段のメモリアドレスを、キャッシュデータを記憶するための手段のワード線にマップするマッピング情報を記憶するための手段(たとえば、図1もしくは図2のタグRAM160または図4のタグRAM408)をさらに含み得る。たとえば、主データを記憶するための手段は、図4のメモリ432を含むか、またはそれに対応し得る。キャッシュデータを記憶するための手段は、データ値およびECCデータを記憶するための手段を含み得る。装置は、データ値に関連付けられた追加誤り訂正データを記憶する復元ビットを記憶するための手段(たとえば、図1もしくは図2のBRメモリデバイス150または図4のBRメモリ410)をさらに含み得る。復元ビットを記憶するための手段は、揮発性メモリデバイスを含み得る。
【００４６】
説明のための例として、コントローラ404、プロセッサ412、または両方は、データ値に対応するメインメモリアドレスを不揮発性メモリデバイスのワード線にマップするタグ情報を受信するためのステップを開始することができる。たとえば、プロセッサ412は、(たとえば、メモリ432に対応する)メモリアドレスをコントローラ404に送信することができ、コントローラ404は、そのメモリアドレスをタグRAM408に送信することができる。コントローラ404は、タグRAM408からタグ情報を受信することができる。タグ情報は、メインメモリアドレス(たとえば、メモリ432のアドレス)をキャッシュメモリのワード線(たとえば、メモリ402のワード線)にマップし得る。
【００４７】
コントローラ404、プロセッサ412、または両方は、データ値に関連付けられたBRデータをBRメモリから受信するステップも開始することができる。BRメモリは、揮発性メモリデバイスに対応し得る。たとえば、コントローラ404は、データ値に関連付けられたBRデータをBRメモリ410から受信することができる。コントローラ404、プロセッサ412、または両方は、タグ情報を受信した後、不揮発性メモリデバイスに対してデータ値を要求するためのステップも開始することができる。たとえば、コントローラ404は、タグ情報を受信した後、メモリ402に対してデータ値を要求することができる。
【００４８】
コントローラ404、プロセッサ412、または両方は、データ値およびデータ値に関連付けられたECCデータを不揮発性メモリデバイスから受信するためのステップも開始することができる。BRデータは、ECCデータとは別個であり得る。たとえば、コントローラ404は、データ値およびECCデータをメモリ402から受信することができる。コントローラ404、プロセッサ412、または両方は、BRデータに基づいてデータ値の第1の誤りビットを訂正するための第1の誤り訂正動作を実施するためのステップも開始することができる。たとえば、コントローラ404は、BRデータに基づいて、データ値に対して誤り訂正動作を実施することができる。
【００４９】
上記の開示したデバイスおよび機能性は、コンピュータ可読媒体上に記憶されるコンピュータファイル(たとえばRTL、GDSII、GERBERなど)へ設計および構成してよい。一部のまたはすべてのそのようなファイルは、そのようなファイルに基づいてデバイスを製造するように製造ハンドラに供給されてよい。得られる製品は、ウエハを含み、ウエハは、次いで、ダイに切断され、チップにパッケージされる。チップは、次いで、上記で説明したデバイスにおいて使用される。図5は、電子デバイス製造プロセス500の特定の例示的な実施形態を示す。
【００５０】
物理デバイス情報502が、製造プロセス500において、たとえば研究コンピュータ506において受信される。物理デバイス情報502は、抵抗性メモリデバイス(たとえば、図1または図2の抵抗性メモリデバイス110に対応する)、タグランダムアクセスメモリ(RAM)(たとえば、図1または図2のタグRAM160に対応する)、および/またはビット復元(BR)メモリ(たとえば、図1または図2のBRメモリデバイス150に対応する)など、1つまたは複数のメモリを含む電子デバイスの少なくとも1つの物理的特性を表す設計情報を含み得る。たとえば、物理デバイス情報502は、研究コンピュータ506に結合されたユーザインターフェース504を介して入力される物理パラメータ、材料特性、および構造情報を含み得る。研究コンピュータ506は、メモリ510などのコンピュータ可読媒体に結合された、1つまたは複数の処理コアなどのプロセッサ508を含む。メモリ510は、プロセッサ508に、物理デバイス情報502をファイルフォーマットに従うように変換させるとともにライブラリファイル512を生成させるために実行可能な、コンピュータ可読命令を記憶することができる。
【００５１】
特定の実施形態では、ライブラリファイル512は、変換された設計情報を含む少なくとも1つのデータファイルを含む。たとえば、ライブラリファイル512は、電子機器設計自動化(EDA)ツール520とともに使用するために与えられる、抵抗性メモリデバイス(たとえば、図1または図2の抵抗性メモリデバイス110に対応する)、タグRAM(たとえば、図1または図2のタグRAM160に対応する)、および/またはBRメモリ(たとえば、図1または図2のBRメモリデバイス150に対応する)など、1つまたは複数のメモリを含む電子デバイス(たとえば、半導体デバイス)のライブラリを含み得る。
【００５２】
ライブラリファイル512は、メモリ518に結合された1つまたは複数の処理コアなどのプロセッサ516を含む設計コンピュータ514において、EDAツール520とともに使用され得る。EDAツール520は、設計コンピュータ514のユーザが、抵抗性メモリデバイス(たとえば、図1または図2の抵抗性メモリデバイス110に対応する)、タグRAM(たとえば、図1または図2のタグRAM160に対応する)、および/またはBRメモリ(たとえば、図1または図2のBRメモリデバイス150に対応する)など、1つまたは複数のメモリを含む回路を、ライブラリファイル512を使って設計することを可能にするために、プロセッサ実行可能命令としてメモリ518に記憶することができる。たとえば、設計コンピュータ514のユーザは、設計コンピュータ514に結合されたユーザインターフェース524を介して回路設計情報522を入力し得る。回路設計情報522は、抵抗性メモリデバイス(たとえば、図1または図2の抵抗性メモリデバイス110に対応する)、タグRAM(たとえば、図1または図2のタグRAM160に対応する)、および/またはBRメモリ(たとえば、図1または図2のBRメモリデバイス150に対応する)など、1つまたは複数のメモリを含む電子デバイスの少なくとも1つの物理的特性を表す設計情報を含み得る。例示するために、回路設計特性は、特定の回路の識別情報および回路設計内の他の要素との関係、位置決め情報、フィーチャサイズ情報、配線情報、または電子デバイスの物理的特性を表す他の情報を含むことができる。
【００５３】
設計コンピュータ514は、回路設計情報522を含む設計情報をファイルフォーマットに準拠するように変換するように構成することができる。例示のために、ファイル形成は、回路レイアウトについての平面幾何形状、テキストラベル、および他の情報をグラフィックデータシステム(GDSII)ファイルフォーマットなどの階層フォーマットで表すデータベースバイナリファイルフォーマットを含み得る。設計コンピュータ514は、他の回路または情報に加え、抵抗性メモリデバイス(たとえば、図1または図2の抵抗性メモリデバイス110に対応する)、タグRAM(たとえば、図1または図2のタグRAM160に対応する)、および/またはBRメモリ(たとえば、図1または図2のBRメモリデバイス150に対応する)など、1つまたは複数のメモリを記述する情報を含むGDSIIファイル526など、変換された設計情報を含むデータファイルを生成するように構成することができる。説明のために、データファイルは、抵抗性メモリデバイス(たとえば、図1または図2の抵抗性メモリデバイス110に対応する)、タグRAM(たとえば、図1または図2のタグRAM160に対応する)、および/またはBRメモリ(たとえば、図1または図2のBRメモリデバイス150に対応する)など、1つまたは複数のメモリを含み、システムオンチップ(SOC)内の追加電子回路および構成要素も含むSOCまたはチップインターポーザ構成要素に対応する情報を含み得る。
【００５４】
GDSIIファイル526は、GDSIIファイル526中の変換された情報に従って、抵抗性メモリデバイス(たとえば、図1または図2の抵抗性メモリデバイス110に対応する)、タグRAM(たとえば、図1または図2のタグRAM160に対応する)、および/またはBRメモリ(たとえば、図1または図2のBRメモリデバイス150に対応する)など、1つまたは複数のメモリを製造するための製造プロセス528において受信され得る。たとえばデバイス製造プロセスは、GDSIIファイル526を、代表的なマスク532として図5に例示するフォトリソグラフィ処理で使用されるマスクなどの、1つまたは複数のマスクを作成するマスク製造元530に提供することを含んでよい。マスク532は、試験されて代表的なダイ536などのダイに分離されてよい1つまたは複数のウエハ533を生成するために製造プロセスの間に使用されてよい。ダイ536は、抵抗性メモリデバイス(たとえば、図1または図2の抵抗性メモリデバイス110に対応する)、タグRAM(たとえば、図1または図2のタグRAM160に対応する)、および/またはBRメモリ(たとえば、図1または図2のBRメモリデバイス150に対応する)など、1つまたは複数のメモリを含む回路を含む。
【００５５】
特定の実施形態では、製造プロセス528は、プロセッサ534によって開始され得、またはプロセッサ534によって制御され得る。プロセッサ534は、コンピュータ可読命令またはプロセッサ可読命令などの実行可能命令を含むメモリ535にアクセスすることができる。実行可能命令は、プロセッサ534などのコンピュータによって実行可能な1つまたは複数の命令を含むことができる。
【００５６】
製造プロセス528は、完全に自動化された、または部分的に自動化された製造システムによって実装され得る。たとえば、製造プロセス528は、自動化されてよく、スケジュールに従って処理ステップを実施することができる。製造システムは、電子デバイスを形成するために1つまたは複数の動作を実施するための製造機器(たとえば、処理ツール)を含むことができる。たとえば、製造機器は、集積回路製造プロセス(たとえば、ウェットエッチング、ドライエッチング、堆積、平坦化、リソグラフィ、またはそれらの組合せ)を使って集積回路要素を形成するように構成することができる。
【００５７】
製造システムは、分散型アーキテクチャ(たとえば、階層)を有することができる。たとえば、製造システムは、分散型アーキテクチャに従って分散された、プロセッサ534などの1つもしくは複数のプロセッサ、メモリ535などの1つもしくは複数のメモリ、および/またはコントローラを含むことができる。分散型アーキテクチャは、1つまたは複数の低レベルシステムの動作を制御または開始する高レベルプロセッサを含むことができる。たとえば、製造プロセス528の高レベル部分は、プロセッサ534などの1つまたは複数のプロセッサを含むことができ、低レベルシステムは、各々、1つもしくは複数の対応するコントローラを含むことができ、または、1つもしくは複数の対応するコントローラによって制御され得る。特定の低レベルシステムの特定のコントローラは、高レベルシステムから1つまたは複数の命令(たとえば、コマンド)を受信することができ、サブコマンドを下位のモジュールまたはプロセスツールに発行することができ、高レベルシステムに状態データを通信し戻すことができる。1つまたは複数の低レベルシステムの各々は、製造機器の1つまたは複数の対応する部分(たとえば、処理ツール)に関連付けられ得る。特定の実施形態では、製造システムは、製造システム内に分散された複数のプロセッサを含むことができる。たとえば、製造システムの低レベルシステム構成要素のコントローラは、プロセッサ534などのプロセッサを含むことができる。
【００５８】
代替的には、プロセッサ534は、製造システムの高レベルシステム、サブシステム、または構成要素の一部であり得る。別の実施形態では、プロセッサ534は、製造システムの様々なレベルおよび構成要素での分散処理を含む。
【００５９】
したがって、メモリ535は、プロセッサ534によって実行されると、プロセッサ534に、抵抗性メモリデバイス(たとえば、図1または図2の抵抗性メモリデバイス110に対応する)、タグRAM(たとえば、図1または図2のタグRAM160に対応する)、および/またはBRメモリ(たとえば、図1または図2のBRメモリデバイス150に対応する)など、1つまたは複数のメモリの形成を開始または制御させるプロセッサ実行可能命令を含み得る。
【００６０】
ダイ536は、ダイ536が代表的なパッケージ540に組み込まれるパッケージ化プロセス538に提供され得る。たとえば、パッケージ540は、システムインパッケージ(SiP)配置のような、単一のダイ536または複数のダイを含むことができる。パッケージ540は、電子デバイスエンジニアリング連合評議会(JEDEC)規格などの1つまたは複数の規格または仕様に準拠するように構成され得る。
【００６１】
パッケージ540に関連する情報は、コンピュータ546に記憶された構成要素ライブラリを介すなどして、様々な製品設計者に配布され得る。コンピュータ546は、メモリ550に結合された、1つまたは複数の処理コアなどのプロセッサ548を含み得る。プリント回路基板(PCB)ツールは、ユーザインターフェース544を介してコンピュータ546のユーザから受信されたPCB設計情報542を処理するために、メモリ550にプロセッサ実行可能命令として記憶され得る。PCB設計情報542は、回路基板上のパッケージ化電子デバイスの物理的位置決め情報を含むことができ、パッケージ化電子デバイスは、抵抗性メモリデバイス(たとえば、図1または図2の抵抗性メモリデバイス110に対応する)、タグRAM(たとえば、図1または図2のタグRAM160に対応する)、および/またはBRメモリ(たとえば、図1または図2のBRメモリデバイス150に対応する)など、1つまたは複数のメモリを含むパッケージ540に対応する。
【００６２】
コンピュータ546は、回路基板上のパッケージ化電子デバイスの物理的位置決め情報ならびにトレースおよびビアなどの電気的接続のレイアウトを含むデータを有するGERBERファイル552などのデータファイルを生成するために、PCB設計情報542を変換するように構成されてよく、ここでパッケージ化電子デバイスは、抵抗性メモリデバイス(たとえば、図1または図2の抵抗性メモリデバイス110に対応する)、タグRAM(たとえば、図1または図2のタグRAM160に対応する)、および/またはBRメモリ(たとえば、図1または図2のBRメモリデバイス150に対応する)など、1つまたは複数のメモリを含むパッケージ540に対応する。別の実施形態では、変換されたPCB設計情報によって生成されるデータファイルは、GERBERフォーマット以外のフォーマットを有し得る。
【００６３】
GERBERファイル552は、基板アセンブリプロセス554で受信されてよく、GERBERファイル552内に記憶された設計情報に従って製造された代表的なPCB556などのPCBを作成するために使用され得る。たとえば、GERBERファイル552は、PCB製造プロセスの様々なステップを実施するために1つまたは複数のマシンにアップロードされ得る。PCB556は、代表的なプリント回路アセンブリ(PCA)558を形成するために、パッケージ540を含む電子構成要素が装着されてよい。
【００６４】
PCA558は、製品製造元560において受け取られ、第1の代表的な電子デバイス562および第2の代表的な電子デバイス564のような、1つまたは複数の電子デバイスとして集積され得る。例示的な非限定的例として、第1の代表的な電子デバイス562、第2の代表的な電子デバイス564、または両方は、抵抗性メモリデバイス(たとえば、図1または図2の抵抗性メモリデバイス110に対応する)、タグRAM(たとえば、図1または図2のタグRAM160に対応する)、および/またはBRメモリ(たとえば、図1または図2のBRメモリデバイス150に対応する)など、1つまたは複数のメモリが集積される、モバイルフォン、タブレット、コンピュータ、通信デバイス、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテイメントユニット、ナビゲーションデバイス、携帯情報端末(PDA)、および定位置データユニットから選択することができる。別の例示的な非限定的な例として、電子デバイス562および564のうちの1つまたは複数は、携帯電話、ハンドヘルドパーソナル通信システム(PCS)ユニットなどのリモートユニット、携帯情報端末、全地球測位システム(GPS)対応デバイス、ナビゲーションデバイスなどのポータブルデータユニット、メーター検針機器などの定位置データユニット、またはデータまたはコンピュータ命令を記憶しもしくは取り出す任意の他のデバイス、あるいはその任意の組合せとされ得る。図5は、本開示の教示によるリモートユニットを示すが、本開示は、これらの図示のユニットに限定されない。本開示の実施形態は、好ましくは、メモリとオンチップ回路とを含む能動集積回路を含む任意のデバイスで使用され得る。
【００６５】
抵抗性メモリデバイス(たとえば、図1または図2の抵抗性メモリデバイス110に対応する)、タグRAM(たとえば、図1または図2のタグRAM160に対応する)、および/またはBRメモリ(たとえば、図1または図2のBRメモリデバイス150に対応する)など、1つまたは複数のメモリを含むデバイスは、例示的製造プロセス500において記載したように、製造し、処理し、電子デバイスに組み込むことができる。図1〜図4に関して開示した実施形態の1つまたは複数の態様が、ライブラリファイル512、GDSIIファイル526、およびGERBERファイル552内など様々な処理段階で含まれてよいのと同様に、研究コンピュータ506のメモリ510、設計コンピュータ514のメモリ518、コンピュータ546のメモリ550、基板アセンブリプロセス554でなど様々な段階で使用される1つまたは複数の他のコンピュータまたはプロセッサ(図示せず)のメモリに記憶され、さらにマスク532、ダイ536、パッケージ540、PCA558、プロトタイプ回路またはデバイス(図示せず)などの他の製品、またはそれらの任意の組合せなどの、1つまたは複数の他の物理的な実施形態に組み込まれてよい。図1〜図4に関して様々な代表的な段階が描写されたが、他の実施形態では、より少ない段階が使用されるか、またはさらなる段階が含まれる場合がある。同様に、図5のプロセス500は、製造プロセス500の様々な段階を実施する、単一のエンティティによって、または1つもしくは複数のエンティティによって実施され得る。
【００６６】
記載した実施形態に伴って、非一時的コンピュータ可読媒体は、プロセッサによって実行されると、プロセッサに、データ値に対応するメインメモリアドレスを不揮発性メモリデバイスのワード線にマップするタグ情報を受信させる命令を記憶する。非一時的コンピュータ可読媒体は、プロセッサによって実行されると、プロセッサに、データ値に関連付けられたビット復元(BR)データをBRメモリから受信させる命令をさらに記憶し得る。BRメモリは、揮発性メモリデバイスに対応し得る。非一時的コンピュータ可読媒体は、プロセッサによって実行されると、プロセッサに、タグ情報を受信した後、不揮発性メモリデバイスに対してデータ値を要求させる命令をさらに記憶し得る。非一時的コンピュータ可読媒体は、プロセッサによって実行されると、プロセッサに、データ値およびデータ値に関連付けられた誤り訂正コード(ECC)データを不揮発性メモリデバイスから受信させる命令をさらに記憶し得る。BRデータは、ECCデータとは別個であり得る。非一時的コンピュータ可読媒体は、プロセッサによって実行されると、プロセッサに、BRデータに基づいてデータ値の第1の誤りビットを訂正するための第1の誤り訂正動作を実施させる命令をさらに記憶し得る。
【００６７】
非一時的コンピュータ可読媒体は、図4のメモリ402もしくはメモリ432に、または、図5のメモリ510、メモリ518、もしくはメモリ550に対応することができる。プロセッサは、図4のプロセッサ412に、または、図5のプロセッサ508、プロセッサ516、もしくはプロセッサ548に対応することができる。不揮発性メモリデバイスは、図1もしくは図2の抵抗性メモリデバイス110に、または図4のメモリ402に対応し得る。BRメモリは、図1もしくは図2のBRメモリデバイス150または図4のBRメモリ410に対応し得る。
【００６８】
当業者は、本明細書で開示する実施形態に関して説明する様々な例示的な論理ブロック、構成、モジュール、回路、およびアルゴリズムステップが、電子ハードウェアとして、プロセッサによって実行されるコンピュータソフトウェアとして、または両方の組合せとして実装され得ることをさらに諒解するであろう。様々な例示的な構成要素、ブロック、構成、モジュール、回路、およびステップは、それらの機能性の観点から一般的に上記で説明されている。そのような機能性がハードウェアまたはプロセッサ実行可能命令として実装されるかはシステム全体に課される特定の用途および設計制約に依存する。当業者は、説明された機能性を各特定の用途に対して様々な方法で実装し得るが、そのような実装の決定は、本開示の範囲からの逸脱を生じるものと解釈されるべきではない。
【００６９】
本明細書で開示された実施形態に関して記載された方法またはアルゴリズムのステップは、直接ハードウェアで具現化されるか、プロセッサによって実行されるソフトウェアモジュールで具現化されるか、またはその2つの組合せで具現化され得る。ソフトウェアモジュールは、ランダムアクセスメモリ(RAM)、フラッシュメモリ、読取り専用メモリ(ROM)、プログラマブル読取り専用メモリ(PROM)、消去可能プログラマブル読取り専用メモリ(EPROM)、電気的消去可能プログラマブル読取り専用メモリ(EEPROM)、レジスタ、ハードディスク、リムーバブルディスク、コンパクトディスク読取り専用メモリ(CD-ROM)などのメモリに存在し得る。メモリは、当業者に知られている任意の形態の非一時的記憶媒体を含んでよい。例示的な記憶媒体(たとえば、メモリ)は、プロセッサが記憶媒体から情報を読み取り、かつそこに情報を書き込めるようにプロセッサに結合される。代替として、記憶媒体はプロセッサと一体化されてよい。プロセッサおよび記憶媒体は、特定用途向け集積回路(ASIC)の中に存在し得る。ASICは、コンピューティングデバイスまたはユーザ端末内に存在することができる。代替として、プロセッサおよび記憶媒体は、コンピューティングデバイスまたはユーザ端末内に個別構成要素として存在し得る。
【００７０】
開示される実施形態の前の説明は、開示される実施形態を当業者が作成または使用することを可能にするために提供される。これらの実施形態に対する様々な修正は、当業者には容易に明らかであり、本明細書で定義された原理は、本開示の範囲から逸脱することなく、他の実施形態に適用され得る。したがって、本開示は、本明細書に示す実施形態に限定するように意図されるものではなく、以下の特許請求の範囲によって定義される原理および新規な特徴と一致する可能な最も広い範囲を与えられるべきである。
【符号の説明】
【００７１】
100  システム
110  抵抗性メモリデバイス
112  データ部分
114  誤り訂正符号(ECC)部分
120  コントローラ
122  データ値
124  データ値
130  行
132  第1のワード、ワード
134  第2のワード、ワード
136  第3のワード、ワード
138  第4のワード、ワード
140  ECCデータ
150  ビット復元(BR)メモリデバイス
152  BR行
154  第1の情報
156  第2の情報
158  第3の情報
160  タグランダムアクセスメモリ(RAM)
162  トータルタグメモリ
200  システム
202  第2のビット復元(BR)メモリデバイス
204  第1の情報
206  第2の情報
208  第3の情報
210  BR行
400  モバイルデバイス
402  メモリ
404  コントローラ
408  タグランダムアクセスメモリ(RAM)
410  ビット復元(BR)メモリ
412  プロセッサ
422  システムインパッケージまたはシステムオンチップデバイス
426  ディスプレイコントローラ
428  ディスプレイ
430  入力デバイス
432  メモリ
434  コーダ/デコーダ(コーデック)
436  スピーカ
438  マイクロフォン
440  ワイヤレスコントローラ
442  アンテナ
444  電源
502  物理デバイス情報
504  ユーザインターフェース
506  研究コンピュータ
508  プロセッサ
510  メモリ
512  ライブラリファイル
514  設計コンピュータ
516  プロセッサ
518  メモリ
520  電子機器設計自動化(EDA)ツール
522  回路設計情報
524  ユーザインターフェース
526  GDSIIファイル
528  製造プロセス
530  マスク製造元
532  マスク
533  ウエハ
534  プロセッサ
535  メモリ
536  ダイ
538  パッケージ化プロセス
540  パッケージ
542  PCB設計情報
544  ユーザインターフェース
546  コンピュータ
548  プロセッサ
550  メモリ
552  GERBERファイル
554  基板アセンブリプロセス
556  PCB
558  プリント回路アセンブリ(PCA)
560  製品製造元
562  第1の代表的な電子デバイス、電子デバイス
564  第2の代表的な電子デバイス、電子デバイス
【図１】
2017504096.tif 000003
【図２】
2017504096.tif 000004
【図３】
2017504096.tif 000005
【図４】
2017504096.tif 000006
【図５】
2017504096.tif 000007
【手続補正書】
【提出日】平成28年5月23日(2016.5.23)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データ値および前記データ値に関連付けられた誤り訂正コード(ECC)データを記憶するように構成された抵抗性メモリデバイスと、
メインメモリのメモリアドレスをキャッシュメモリのワード線にマップする情報を記憶するように構成されたタグランダムアクセスメモリ(RAM)であって、前記キャッシュメモリが前記抵抗性メモリデバイスを含む、タグランダムアクセスメモリ(RAM)と、
前記データ値に関連付けられた追加誤り訂正データを別のメモリから受信するように、および前記追加誤り訂正データを記憶するように構成されたビット復元(BR)メモリであって、前記BRメモリが揮発性メモリデバイスに対応する、BRメモリとを備える装置。
【請求項２】
前記BRメモリおよび前記タグRAMを備えるトータルタグメモリをさらに備える、請求項1に記載の装置。
【請求項３】
前記タグRAMが、前記メインメモリのメモリアドレスを受信したことに応答して、前記メインメモリの前記メモリアドレスに対応する、前記キャッシュメモリのメモリアドレスを提供するように、または前記キャッシュメモリが、前記メインメモリの前記メモリアドレスに対応するデータを記憶しないことを示すように構成される、請求項1に記載の装置。
【請求項４】
前記抵抗性メモリデバイスがレベル3(L3)キャッシュを含む、請求項1に記載の装置。
【請求項５】
前記BRメモリが、前記データ値に関連付けられたマッピングについての要求を前記タグRAMが受信したことに応答して、前記追加誤り訂正データを提供するように構成される、請求項1に記載の装置。
【請求項６】
前記抵抗性メモリデバイスが複数のワード線を備え、前記データ値および前記ECCデータが、前記複数のワード線のうちの第1のワード線において記憶され、前記BRメモリが、前記抵抗性メモリデバイス中に含まれる前記複数のワード線の各々についての追加誤り訂正データを記憶する、請求項1に記載の装置。
【請求項７】
前記データ値が複数のワードを含み、前記ECCデータが、前記複数のワードの各々の中の第1の誤りビットの訂正を可能にし、前記追加誤り訂正データが、前記複数のワードの各々の中の第2の誤りビットの訂正を可能にする、請求項6に記載の装置。
【請求項８】
第2のBRメモリをさらに備え、前記第2のBRメモリが前記別のメモリであり、不揮発性メモリデバイスに対応し、前記追加誤り訂正データが前記BRメモリと前記第2のBRメモリとの間でミラーリングされ、前記第2のBRメモリに記憶された前記追加誤り訂正データが、前記BRメモリおよび前記第2のBRメモリを備える電子デバイスの電源投入に応答して、前記BRメモリを初期化するのに使われる、請求項1に記載の装置。
【請求項９】
前記データ値に関連付けられた前記追加誤り訂正データを生成するため、ならびに前記追加誤り訂正データを前記BRメモリに、および前記第2のBRメモリに記憶するためのコントローラをさらに備える、請求項8に記載の装置。
【請求項１０】
前記BRメモリが静的ランダムアクセスメモリ(SRAM)デバイスを含み、前記第2のBRメモリが磁気抵抗ランダムアクセスメモリ(MRAM)デバイスを含む、請求項9に記載の装置。
【請求項１１】
前記抵抗性メモリデバイスが磁気抵抗ランダムアクセスメモリ(MRAM)デバイスを含む、請求項1に記載の装置。
【請求項１２】
前記MRAMデバイスが磁気トンネル接合(MTJ)デバイスを含む、請求項11に記載の装置。
【請求項１３】
前記データ値を前記抵抗性メモリデバイスに書き込むエラーが発生したという、前記抵抗性メモリデバイスによる判断に基づいて、前記追加誤り訂正データを削除させるように構成されたコントローラをさらに備える、請求項1に記載の装置。
【請求項１４】
少なくとも1つのダイに集積された、請求項1に記載の装置。
【請求項１５】
前記抵抗性メモリデバイス、前記タグRAM、および前記BRメモリが集積されているモバイルフォン、タブレット、コンピュータ、通信デバイス、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテイメントユニット、ナビゲーションデバイス、携帯情報端末(PDA)、および定位置データユニットから選択される電子デバイスをさらに備える、請求項1に記載の装置。
【請求項１６】
第1のメモリから受信されたビット復元(BR)データをBRメモリに記憶するステップであって、前記BRメモリが揮発性メモリデバイスに対応する、ステップと、
データ値に対応するメインメモリアドレスを不揮発性メモリデバイスのワード線にマップするタグ情報を受信するステップと、
前記データ値に関連付けられた前記BRデータを前記BRメモリから受信するステップと、
前記タグ情報を受信した後、前記不揮発性メモリデバイスに対して前記データ値を要求するステップと、
前記データ値および前記データ値に関連付けられた誤り訂正コード(ECC)データを前記不揮発性メモリデバイスから受信するステップであって、前記BRデータが前記ECCデータとは別個である、ステップと、
前記BRデータに基づいて前記データ値の第1の誤りビットを訂正するための第1の誤り訂正動作を実施するステップとを含む方法。
【請求項１７】
前記ECCデータに基づいて前記データ値の第2の誤りビットを訂正するための第2の誤り訂正動作を実施するステップをさらに含み、前記第2の誤り訂正動作が、前記第1の誤り訂正動作に引き続いて実施される、請求項16に記載の方法。
【請求項１８】
前記タグ情報が前記揮発性メモリデバイスから受信される、請求項16に記載の方法。
【請求項１９】
前記BRメモリが、前記揮発性メモリデバイスが前記タグ情報についての要求を受信したことに応答して、前記BRデータを提供するように構成される、請求項18に記載の方法。
【請求項２０】
前記データ値に関連付けられたリフレッシュ動作を実施したことに応答して、前記BRデータを生成するステップをさらに含み、前記BRデータが、前記不揮発性メモリデバイスの特定のワード線中に含まれるメモリ要素における再発性データエラーを示し、前記データ値が前記不揮発性メモリデバイスの前記特定のワード線において記憶される、請求項16に記載の方法。
【請求項２１】
前記メモリ要素が、故障したメモリ要素である、請求項20に記載の方法。
【請求項２２】
前記BRメモリにおける前記BRデータを前記記憶するステップが、前記BRメモリおよび前記第1のメモリを備える電子デバイスの電源投入に応答して、前記第1のメモリから前記BRメモリに前記BRデータを書き込むステップをさらに含み、前記第1のメモリが第2の不揮発性メモリデバイスに対応する第2のBRメモリである、請求項16に記載の方法。
【請求項２３】
前記不揮発性メモリデバイスの特定のワード線に書き込まれるべき新規データを受信したことに応答して、前記不揮発性メモリデバイスの前記特定のワード線に関連付けられたリフレッシュデータを生成するステップと、
前記リフレッシュデータが、前記不揮発性メモリデバイスの前記特定のワード線中に含まれるメモリ要素における再発性データエラーの存在を示すかどうか判断するステップと、
前記リフレッシュデータが前記再発性データエラーの前記存在を示すとき、前記BRメモリにおける前記BRデータを、前記メモリ要素に書き込まれるべきビット値を含むように更新するステップと、
前記新規データを、前記不揮発性メモリデバイスの前記特定のワード線に書き込むステップとをさらに含む、請求項16に記載の方法。
【請求項２４】
前記第1のメモリが、第2の不揮発性メモリデバイスに対応する第2のBRメモリであり、前記特定のワード線に関連付けられた前記リフレッシュデータが前記再発性データエラーの前記存在を示すとき、前記第2のBRメモリにおける前記BRデータを、前記メモリ要素に書き込まれるべきビット値を含むように更新するステップをさらに含む、請求項23に記載の方法。
【請求項２５】
前記データ値を要求するステップ、および前記第1の誤り訂正動作を実施するステップが、電子デバイスに集積されたプロセッサによって開始される、請求項16に記載の方法。
【請求項２６】
データ値および前記データ値に関連付けられた誤り訂正コード(ECC)データを記憶するための手段と、
主データを記憶するための手段のメモリアドレスを、キャッシュデータを記憶するための手段のワード線にマップするマッピング情報を記憶するための手段であって、キャッシュデータを記憶するための前記手段が、前記データ値および前記ECCデータを記憶するための前記手段を備える、手段と、
第1のメモリから受信された復元ビットを記憶するための手段であって、前記復元ビットが、前記データ値に関連付けられた追加誤り訂正データを含み、復元ビットを記憶するための前記手段が揮発性メモリデバイスを含む、手段とを備える装置。
【請求項２７】
少なくとも1つのダイに集積された、請求項26に記載の装置。
【請求項２８】
前記データ値および前記ECCデータを記憶するための前記手段、マッピング情報を記憶するための前記手段、および復元ビットを記憶するための前記手段が集積されている、モバイルフォン、タブレット、コンピュータ、通信デバイス、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテイメントユニット、ナビゲーションデバイス、携帯情報端末(PDA)、および定位置データユニットから選択される電子デバイスをさらに備える、請求項26に記載の装置。
【請求項２９】
命令を記憶する非一時的コンピュータ可読記録媒体であって、前記命令が、プロセッサによって実行されると、前記プロセッサに、
第1のメモリから受信されたビット復元(BR)データをBRメモリに記憶させ、前記BRメモリが揮発性メモリデバイスに対応し、
データ値に対応するメインメモリアドレスを不揮発性メモリデバイスのワード線にマップするタグ情報を受信させ、
前記データ値に関連付けられた前記BRデータを前記BRメモリから受信させ、
前記タグ情報を受信した後、前記不揮発性メモリデバイスに対して前記データ値を要求させ、
前記データ値および前記データ値に関連付けられた誤り訂正コード(ECC)データを前記不揮発性メモリデバイスから受信させ、前記BRデータが前記ECCデータとは別個であり、
前記BRデータに基づいて前記データ値の第1の誤りビットを訂正するための第1の誤り訂正動作を実施させる、非一時的コンピュータ可読記録媒体。
【請求項３０】
前記非一時的コンピュータ可読記録媒体が集積された、定位置データユニットおよびコンピュータから選択されたデバイスをさらに備える、請求項29に記載の非一時的コンピュータ可読記録媒体。
【国際調査報告】
2017504096.tif 000008
2017504096.tif 000009