(57)【要約】  ダイナミックランダムアクセスメモリ(DRAM)欠陥をカーネルマスキングするためのシステム、方法、およびコンピュータプログラムを開示する。1つのそのような方法は、ダイナミックランダムアクセスメモリ(DRAM)内の物理アドレスに関連するシングルビットエラーを検出して、訂正するステップと、DRAMから物理アドレスに関連するエラーデータを受信するステップと、不揮発性メモリ内に位置する失敗アドレステーブル内に受信されたエラーデータを記憶するステップと、物理アドレスに関連するエラーの数がエラーカウントしきい値を超える場合、物理アドレスに対応するカーネルページを破棄するステップとを含む。
2017506391.tif 000002
【特許請求の範囲】
【請求項１】
ダイナミックランダムアクセスメモリ(DRAM)欠陥をカーネルマスキングするための方法であって、
ダイナミックランダムアクセスメモリ(DRAM)内の物理アドレスに関連するシングルビットエラーを検出して、訂正するステップと、
前記DRAMから前記物理アドレスに関連するエラーデータを受信するステップと、
不揮発性メモリ内に位置する失敗アドレステーブル内に前記受信されたエラーデータを記憶するステップと、
前記物理アドレスに関連するエラーの数がエラーカウントしきい値を超える場合、前記物理アドレスに対応するカーネルページを破棄するステップと
を含む、方法。
【請求項２】
前記シングルビットエラーは前記DRAMによって検出されて、訂正される、請求項1に記載の方法。
【請求項３】
前記DRAMから前記エラーデータを前記受信するステップは、オペレーティングシステムがエラーデータに関して前記DRAMに問い合わせるステップを含む、請求項1に記載の方法。
【請求項４】
前記受信されたエラーデータは、失敗コードワードアドレスに対応するDRAMバンク、列、および行アドレスを識別する、請求項1に記載の方法。
【請求項５】
前記失敗アドレステーブル内に前記受信されたエラーデータを前記記憶するステップは、前記失敗コードワードアドレスに関連するエラーの数を更新するステップを含む、請求項4に記載の方法。
【請求項６】
前記物理アドレスに対応する前記カーネルページを前記破棄するステップは、
不良ページリストを生成して、前記不揮発性メモリ内に記憶するステップであって、前記不良ページリストはメモリ割振りから除外されるべき前記物理アドレスを保持するカーネルページを識別する、記憶するステップを含む、請求項1に記載の方法。
【請求項７】
前記カーネルページのコンテンツを新しい空のカーネルページに転送するステップと、
前記カーネルページを将来の使用から除去するステップと
をさらに含む、請求項6に記載の方法。
【請求項８】
デバイスブートアップにおいて、前記不揮発性メモリ内に記憶された前記不良ページリストを読み取るステップと、
前記不良ページリスト内で識別された前記カーネルページをオペレーティングシステムのフリーページブロックリストから除外するステップと
をさらに含む、請求項6に記載の方法。
【請求項９】
デバイスブートアップにおいて、前記DRAMおよび前記不揮発性メモリ以外のメモリから一次ブートローダを実行するステップと、
前記不揮発性メモリから前記不良ページリストを読み取るステップと、
前記不良ページリスト内で識別された前記カーネルページを除外することによって、エラーのないDRAMの連続ブロックを決定するステップと
をさらに含む、請求項6に記載の方法。
【請求項１０】
前記エラーのないDRAMから二次ブートローダを実行するステップと、
前記エラーのないDRAMからオペレーティングシステムをロードするステップと、
前記不良ページリスト内で識別された前記カーネルページを除外するオペレーティングシステムのフリーブロックリストを構成するステップと
をさらに含む、請求項9に記載の方法。
【請求項１１】
前記物理アドレスに対応する前記カーネルページを前記破棄するステップは、割り振られたDRAMから前記カーネルページを除外するステップを含む、請求項1に記載の方法。
【請求項１２】
ダイナミックランダムアクセスメモリ(DRAM)欠陥をカーネルマスキングするためのシステムであって、
ダイナミックランダムアクセスメモリ(DRAM)内の物理アドレスに関連するシングルビットエラーを検出して、訂正するための手段と、
前記DRAMから前記物理アドレスに関連するエラーデータを受信するための手段と、
不揮発性メモリ内に位置する失敗アドレステーブル内に前記受信されたエラーデータを記憶するための手段と、
前記物理アドレスに関連するエラーの数がエラーカウントしきい値を超える場合、前記物理アドレスに対応するカーネルページを破棄するための手段と
を備える、システム。
【請求項１３】
前記DRAMから前記エラーデータを前記受信するための手段は、エラーデータに関して前記DRAMに問い合わせるための手段を備える、請求項12に記載のシステム。
【請求項１４】
前記受信されたエラーデータは、失敗コードワードアドレスに対応するDRAMバンク、列、および行アドレスを識別する、請求項12に記載のシステム。
【請求項１５】
前記失敗アドレステーブル内に前記受信されたエラーデータを前記記憶するための手段は、前記失敗コードワードアドレスに関連するエラーの数を更新するための手段を備える、請求項14に記載のシステム。
【請求項１６】
前記物理アドレスに対応する前記カーネルページを前記破棄するための手段は、
不良ページリストを生成して、前記不揮発性メモリ内に記憶するための手段であって、前記不良ページリストはメモリ割振りから除外されるべき前記物理アドレスを保持するカーネルページを識別する、記憶するための手段を備える、請求項12に記載のシステム。
【請求項１７】
デバイスブートアップにおいて、前記不揮発性メモリ内に記憶された前記不良ページリストを読み取るための手段と、
前記不良ページリスト内で識別された前記カーネルページをオペレーティングシステムのフリーページブロックリストから除外するための手段と
をさらに備える、請求項16に記載のシステム。
【請求項１８】
デバイスブートアップにおいて、前記DRAMおよび前記不揮発性メモリ以外のメモリから一次ブートローダを実行するための手段と、
前記不揮発性メモリから前記不良ページリストを読み取るための手段と、
前記不良ページリスト内で識別された前記カーネルページを除外することによって、エラーのないDRAMの連続ブロックを決定するための手段と
をさらに備える、請求項16に記載のシステム。
【請求項１９】
前記エラーのないDRAMから二次ブートローダを実行するための手段と、
前記エラーのないDRAMからオペレーティングシステムをロードするための手段と、
前記不良ページリスト内で識別された前記カーネルページを除外するオペレーティングシステムのフリーブロックリストを構成するための手段と
をさらに備える、請求項18に記載のシステム。
【請求項２０】
前記物理アドレスに対応する前記カーネルページを前記破棄するステップは、割り振られたDRAMから前記カーネルページを除外するステップを含む、請求項12に記載のシステム。
【請求項２１】
メモリ内で実施され、ダイナミックランダムアクセスメモリ(DRAM)欠陥をカーネルマスキングするためにプロセッサによって実行可能なコンピュータプログラムであって、
ダイナミックランダムアクセスメモリ(DRAM)内の物理アドレスに関連するシングルビットエラーを検出して、訂正して、
前記DRAMから前記物理アドレスに関連するエラーデータを受信して、
不揮発性メモリ内に位置する失敗アドレステーブル内に前記受信されたエラーデータを記憶して、
前記物理アドレスに関連するエラーの数がエラーカウントしきい値を超える場合、前記物理アドレスに対応するカーネルページを破棄する
ように構成されたコードを備える、コンピュータプログラム。
【請求項２２】
前記シングルビットエラーは前記DRAMによって検出されて、訂正される、請求項21に記載のコンピュータプログラム。
【請求項２３】
前記DRAMから前記エラーデータを受信するように構成された前記コードは、エラーデータに関して前記DRAMに問い合わせるように構成されたコードを備える、請求項21に記載のコンピュータプログラム。
【請求項２４】
前記受信されたエラーデータは、失敗コードワードアドレスに対応するDRAMバンク、列、および行アドレスを識別する、請求項21に記載のコンピュータプログラム。
【請求項２５】
前記失敗アドレステーブル内に前記受信されたエラーデータを記憶するように構成された前記コードは、前記失敗コードワードアドレスに関連するエラーの数を更新するように構成されたコードを備える、請求項24に記載のコンピュータプログラム。
【請求項２６】
前記物理アドレスに対応する前記カーネルページを破棄するように構成された前記コードは、
不良ページリストを生成して、前記不揮発性メモリ内に記憶するように構成されたコードであって、前記不良ページリストはメモリ割振りから除外されるべき前記物理アドレスを保持するカーネルページを識別する、コード
を備える、請求項21に記載のコンピュータプログラム。
【請求項２７】
デバイスブートアップにおいて、前記不揮発性メモリ内に記憶された前記不良ページリストを読み取るように構成されたコードと、
前記不良ページリスト内で識別された前記カーネルページをオペレーティングシステムのフリーページブロックリストから除外するように構成されたコードと
をさらに備える、請求項26に記載のコンピュータプログラム。
【請求項２８】
デバイスブートアップにおいて、前記DRAMおよび前記不揮発性メモリ以外のメモリから一次ブートローダを実行するように構成されたコードと、
前記不揮発性メモリから前記不良ページリストを読み取るように構成されたコードと、
前記不良ページリスト内で識別された前記カーネルページを除外することによって、エラーのないDRAMの連続ブロックを識別するように構成されたコードと
をさらに備える、請求項26に記載のコンピュータプログラム。
【請求項２９】
前記エラーのないDRAMから二次ブートローダを実行するように構成されたコードと、
前記エラーのないDRAMからオペレーティングシステムをロードするように構成されたコードと、
前記不良ページリスト内で識別された前記カーネルページを除外するフリーブロックリストを生成するように構成されたコードと
をさらに備える、請求項28に記載のコンピュータプログラム。
【請求項３０】
前記物理アドレスに対応する前記カーネルページを破棄するように構成された前記コードは、割り振られたDRAMから前記カーネルページを除外するように構成されたコードを備える、請求項21に記載のコンピュータプログラム。
【請求項３１】
ダイナミックランダムアクセスメモリ(DRAM)欠陥をマスキングするためのシステムであって、
ダイナミックランダムアクセスメモリ(DRAM)システムと、
前記DRAM内の失敗コードワードアドレスに関連するビットエラーを検出して、訂正するための誤り訂正コード(ECC)モジュールと、
不良ページマスキングモジュールを備えるオペレーティングシステムを実行する中央処理装置(CPU)とを備え、前記不良ページマスキングモジュールは、
前記DRAMシステムおよび前記ECCモジュールのうちの1つまたは複数を介して、前記不良コードワードアドレスに関連するエラーデータを受信して、
不揮発性メモリ内に位置する失敗コードワードアドレステーブル内に前記受信されたエラーデータを記憶して、
それぞれの前記失敗コードワードアドレスに関連するエラーの数がエラーカウントしきい値を超える場合、前記失敗コードワードアドレスに対応するカーネルページを破棄する
ように構成された論理手段を備える、システム。
【請求項３２】
前記ECCモジュールは前記DRAMシステム内に存在し、前記CPUは前記DRAMシステムに電気的に結合されたシステムオンチップ(SoC)上に存在する、請求項31に記載のシステム。
【請求項３３】
前記エラーデータを受信するように構成された前記論理手段は、エラーデータに関して前記DRAMシステムに問い合わせるように構成された論理手段を備える、請求項31に記載のシステム。
【請求項３４】
前記失敗コードワードアドレステーブル内に前記受信されたエラーデータを記憶するように構成された前記論理手段は、前記失敗コードワードアドレスに関連するエラーの数を更新するように構成された論理手段を備える、請求項31に記載のシステム。
【請求項３５】
前記失敗コードワードアドレスに対応する前記カーネルページを破棄するように構成された前記論理手段は、
不良ページリストを生成して、前記不揮発性メモリ内に記憶するように構成された論理手段であって、前記不良ページリストは前記失敗コードワードアドレスを保持するカーネルページを識別する、論理手段
を備える、請求項31に記載のシステム。
【請求項３６】
デバイスブートアップにおいて、前記不揮発性メモリ内に記憶された前記不良ページリストを読み取るように構成された論理手段と、
前記不良ページリスト内で識別された前記カーネルページをオペレーティングシステムのフリーページブロックリストから除外するように構成された論理手段と
をさらに備える、請求項35に記載のシステム。
【請求項３７】
デバイスブートアップにおいて、読取り専用メモリ(ROM)およびスタティックランダムアクセスメモリ(SRAM)のうちの1つから一次ブートローダを実行するように構成された論理手段と、
前記不揮発性メモリから前記不良ページリストを読み取るように構成された論理手段と、
前記不良ページリスト内で識別された前記カーネルページを除外することによって、エラーのないDRAMの連続ブロックを識別するように構成された論理手段と
をさらに備える、請求項35に記載のシステム。
【請求項３８】
前記エラーのないDRAMから二次ブートローダを実行するように構成された論理手段と、
前記エラーのないDRAMからオペレーティングシステムをロードするように構成された論理手段と、
前記不良ページリスト内で識別された前記カーネルページを除外するフリーブロックリストを生成するように構成された論理手段と
をさらに備える、請求項37に記載のシステム。
【請求項３９】
それぞれの前記失敗コードワードアドレスに対応する前記カーネルページを破棄するように構成された前記論理手段は、割り振られたDRAMから前記不良ページリスト内で識別された前記カーネルページを除外するように構成された論理手段を備える、請求項31に記載のシステム。
【請求項４０】
ポータブルコンピューティングデバイス内で実施される、請求項31に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＤＲＡＭ欠陥のカーネルマスキングに関する。
【背景技術】
【０００２】
ダイナミックランダムアクセスメモリ(DRAM)製造プロセス技術は、より小型のチップ内のより大きいメモリ容量に対して高まりつつある需要に対応するためにスケールダウンし続けている。DRAMプロセス技術の一般的な測度は、DRAMチップ内のセル間の距離の半分を指すハーフピッチである。現在のDRAMプロセス技術は、20〜30ナノメートル(nm)の範囲内にハーフピッチを有するDRAMチップを生産するが、プロセス技術の改善は、近い将来、20nm未満にスケールダウンすることが予想されている。
【０００３】
密度がより高いDRAMチップは、望ましい性能および設計利点を実現するが、ジオメトリの縮小は多くの課題を生み出す。たとえば、DRAMプロセス技術がスケールダウンし続けるにつれて、セル容量の比例減少が存在することになり、これはセルトランジスタリークを高める。DRAMダイにわたるセルリテンション(cell retention)の通常の分布は狭まらず、全体的に、平均と比べて、いくつかのセルがセルリテンションにおいてかなりの分散を有する「テール(tails)」を示し続けることになる。これらの「テール」内にデータを確実に維持することは、リフレッシュ頻度のかなりの増大、または代替で、ブロック誤り訂正など、誤り回復方式のいずれかを必要とし得る。リフレッシュとともに、DRAM内に記憶されたデータを読取り/訂正/書込みする(read-correct-write)ためにブロック誤り訂正が必要とされ得る。後者の場合、デバイスの存続期間にわたる消耗はエラーを蓄積させ得る。DRAM上の複数の同時エラーを訂正することはかなりのシリコンエリアを必要とする。さらに、リフレッシュの頻度の増大は、利用可能なメモリ帯域幅に悪影響を及ぼし、予備電力消費も高める。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
したがって、特に、DRAMプロセス技術がスケールダウンし続けるにつれて、欠陥DRAMセルの問題に対処するためのコスト効果が高く、効率的な方法を提供する改善されたシステムおよび方法の必要性が存在する。
【課題を解決するための手段】
【０００５】
ダイナミックランダムアクセスメモリ(DRAM)欠陥をカーネルマスキングするためのシステム、方法、およびコンピュータプログラムを開示する。1つのそのような方法は、ダイナミックランダムアクセスメモリ(DRAM)内の物理アドレスに関連するシングルビットエラーを検出して、訂正するステップと、DRAMから物理アドレスに関連するエラーデータを受信するステップと、不揮発性メモリ内に位置する失敗アドレステーブル(failed address table)内に受信されたエラーデータを記憶するステップと、物理アドレスに関連するエラーの数がエラーカウントしきい値を超える場合、物理アドレスに対応するカーネルページを破棄するステップとを含む。
【０００６】
別の実施形態は、ダイナミックランダムアクセスメモリ(DRAM)欠陥をマスキングするためのシステムである。1つのそのようなシステムは、ダイナミックランダムアクセスメモリ(DRAM)システムと、誤り訂正コード(ECC)モジュールと、中央処理装置(CPU)とを備える。ECCモジュールは、DRAM内の失敗コードワードアドレス(failed codeword addresses)に関連するビットエラーを検出して、訂正する。CPUは、不良ページマスキングモジュールを備えるオペレーティングシステムを実行する。不良ページマスキングモジュールは、DRAMシステムおよびECCモジュールのうちの1つまたは複数を介して、失敗コードワードアドレスに関連するエラーデータを受信して、不揮発性メモリ内に位置する失敗コードワードアドレステーブル内に受信されたエラーデータを記憶して、それぞれの失敗コードワードアドレスに関連するエラーの数がエラーカウントしきい値を超える場合、失敗コードワードアドレスに対応するカーネルページを破棄するように構成された論理を備える。
【０００７】
図の中では、別段に示されない限り、様々な図の全体を通して、同様の参照番号は同様の部分を指す。「102A」または「102B」などの文字指定を伴う参照番号について、文字指定は、同じ図に存在する2つの同様の部分または要素を区別する場合がある。参照番号がすべての図において同じ参照番号を有するすべての部分を包含することを意図するとき、参照番号に対する文字指定は省略される場合がある。
【図面の簡単な説明】
【０００８】
【図１】DRAM欠陥のカーネルマスキングを提供するためのシステムの一実施形態のブロック図である。
【図２】図1のDRAMシステムの一実施形態の物理的アーキテクチャのより詳細なビューを示すブロック図である。
【図３】図1のシステム内でDRAM欠陥をカーネルマスキングするための方法のいくつかの態様を実装するための失敗コードワードアドレステーブルの一実施形態を示すデータ図である。
【図４】図1のシステム内でDRAM欠陥をカーネルマスキングするための方法のいくつかの態様を実装するための不良ページリストの一実施形態を示すデータ図である。
【図５】DRAM欠陥をカーネルマスキングするための、図1のシステム内で実装される方法の一実施形態を示すフローチャートである。
【図６】DRAM欠陥をカーネルマスキングするためのシステムの別の実施形態を示すブロック図である。
【図７】DRAM欠陥をカーネルマスキングするための、図1のシステム内で実装されるデバイスブートアップ方法の一実施形態を示すフローチャートである。
【図８】図1のシステムを備えるポータブルコンピュータデバイスの一実施形態のブロック図である。
【図９】図5のフローチャート内でカーネルページを破棄するための方法の一実施形態を示すフローチャートである。
【発明を実施するための形態】
【０００９】
「例示的」という言葉は、「例、事例、または例示として役立つ」ことを意味するように本明細書において使用される。「例示的」として本明細書で説明するいずれの態様も、必ずしも他の態様よりも好ましいか、または有利であると解釈されるとは限らない。
【００１０】
本明細書において、「アプリケーション」という用語はまた、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチなどの、実行可能なコンテンツを有するファイルを含む場合がある。加えて、本明細書で参照される「アプリケーション」はまた、開封されることが必要な場合があるドキュメント、またはアクセスされる必要がある他のデータファイルなどの、本質的に実行可能ではないファイルも含む場合がある。
【００１１】
「コンテンツ」という用語は、また、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチなど、実行可能なコンテンツを有するファイルを含む場合がある。加えて、本明細書で参照される「内容物」は、また、開封されることが必要な場合があるドキュメント、またはアクセスされる必要がある他のデータファイルなどの、本質的に実行可能でないファイルを含む場合がある。
【００１２】
本説明において使用する、「構成要素」、「データベース」、「モジュール」、「システム」などの用語は、ハードウェア、ファームウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアのいずれかである、コンピュータに関するエンティティを指すことが意図される。たとえば、構成要素は、限定はされないが、プロセッサ上で実行されているプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行のスレッド、プログラム、および/またはコンピュータであってもよい。実例として、コンピューティングデバイスにおいて実行されているアプリケーションと、コンピューティングデバイスの両方は、構成要素であり得る。1つまたは複数の構成要素は、プロセスおよび/または実行スレッド内に存在してもよく、構成要素は、1つのコンピュータに局在していてもよく、および/または、2つ以上のコンピュータに分散されていてもよい。加えて、これらの構成要素は、様々なデータ構造を記憶した様々なコンピュータ可読媒体から実行してもよい。構成要素は、1つまたは複数のデータパケット(たとえば、ローカルシステム、分散システム内の別の構成要素と対話する、および/または、信号によってインターネットなどのネットワークにわたって他のシステムと対話する、1つの構成要素からのデータ)を有する信号に従ってなど、ローカルプロセスおよび/またはリモートプロセスによって通信してもよい。
【００１３】
本明細書では、「通信デバイス」、「ワイヤレスデバイス」、「ワイヤレス電話」、「ワイヤレス通信デバイス」、および「ワイヤレスハンドセット」という用語は、互換的に使用される。第3世代(「3G」)ワイヤレス技術および第4世代(「4G」)の出現により、利用可能な帯域幅が拡大されたので、より多様なワイヤレス機能を備える、より携帯が容易なコンピューティングデバイスが利用可能になっている。したがって、ポータブルコンピューティングデバイスは、セルラー電話、ページャ、PDA、スマートフォン、ナビゲーションデバイス、またはワイヤレス接続もしくはワイヤレスリンクを有するハンドヘルドコンピュータを含む場合がある。
【００１４】
図1は、DRAM欠陥のカーネルマスキングを提供するシステム100を示す。システム100は、パーソナルコンピュータと、ワークステーションと、サーバと、セルラー電話、携帯情報端末(PDA)、ポータブルゲームコンソール、パームトップコンピュータ、またはタブレットコンピュータなどのポータブルコンピューティングデバイス(PCD)とを含む、任意のコンピューティングデバイスにおいて実装され得る。図1の実施形態に示すように、システム100は、DRAMメモリシステム104と不揮発性メモリ132とに電気的に結合されたシステムオンチップ(SoC)102を備える。不揮発性メモリ132は、たとえば、フラッシュメモリ、フラッシュドライブ、セキュアデジタル(SD)カード、ソリッドステートドライブ(SSD)、または他のタイプなど、任意の不揮発性メモリを備え得る。
【００１５】
SoC102は、SoCバス116を介して相互接続された中央処理装置(CPU)106と、DRAMコントローラ108と、スタティックランダムアクセスメモリ(SRAM)110と、読取り専用メモリ(ROM)112と、ストレージコントローラ114とを含む様々なオンチップ構成要素を備える。SoC102は、DRAM104からのメモリリソースを要求する1つまたは複数のメモリクライアントを含み得る。メモリクライアントは、1つまたは複数の処理装置(たとえば、中央処理装置(CPU)106、グラフィックス処理装置(GPU)、デジタル信号プロセッサ(DSP)など)、ビデオエンコーダ、またはDRAMメモリシステム104への読取り/書込みアクセスを要求する他のクライアントを備える場合がある。
【００１６】
SoC102上のストレージコントローラ114は、不揮発性メモリ132に電気的に結合される。ストレージコントローラ114は、不揮発性メモリ132上に記憶されたデータを管理する。DRAMコントローラ108は、たとえば、RAMバスを経由してDRAM104に電気的に結合される。DRAMコントローラ108は、DRAM104との間を行き来するデータのフローを管理する。DRAMコントローラ108は、一般に、DRAM104から読み取り、DRAM104に書き込むための論理を備える。
【００１７】
システム100は、オペレーティングシステム(O/S)120が、DRAMセルアレイ126内の欠陥またはエラーをマスクアウトする(mask out)のを可能にし、それによって、SoC102内のメモリクライアントにエラーのない仮想メモリを提供する。システム100は、誤り訂正コード(ECC)モジュール124と不良ページマスキングモジュール122とを使用して、DRAM欠陥のカーネルマスキングを実現する。ECCモジュール124は、DRAM動作(たとえば、読取りおよび/または書込み動作)の間、ダブルビットエラーを検出して、シングルビットエラーを訂正する。たとえば、DRAM書込み動作の間、ECCモジュール124は、書込みデータを入力として使用し、次いで、冗長パリティチェックビットを生成することができる。組合された書込みデータおよびパリティチェックビットはともに、コードワードとして知られているユニットを形成し、DRAMセルアレイ126内に別々にまたは一緒に記憶され得る。読取り動作の間、ECCモジュール124は、コードワードの検索されたデータ部分を使用して、パリティチェックを再計算し、次いで、それらを書込み動作の間に記憶されたコードワードのパリティチェックビット部分に対して比較することができる。読み取られた、再計算されたパリティと記憶されたパリティとの間の不整合は、検出されたエラーを示す。加えて、パリティチェックビットは、コードワード内に単一の誤り訂正を提供するために十分であり得る。
【００１８】
ECCモジュール124は、(図1に示す)DRAM104内またはSoC102内に構成要素として統合され得ることを諒解されたい。不良ページマスキングモジュール122は、一般に、失敗コードワードアドレスに関連する不良物理ページをマスキングするための論理を備える。不良ページマスキングモジュール122は、失敗コードワードアドレスに関連するエラーデータを受信するためにECCモジュール124とインターフェースを取る。DRAMビットエラーは、たとえば、それらのいずれもコードワードエラーをもたらし得る、潜在的なシリコン欠陥(latent silicon defect)、電荷の粒子または電磁波中断、または弱いキャパシタリテンションなど、いくつかの基本的な原因を有し得ることを当業者は諒解されよう。
【００１９】
図2を参照すると、エラーデータは、たとえば、DRAMチップ207と、DRAMチップ207内のバンク209と、バンク209のうちの1つの中のDRAMページ211と、コードワード213に対応するコードワードアドレスとを識別するための情報を備え得る。図2は、1つまたは複数のDRAMチップ207を備えるDRAMシステム104の1つの例示的な実施形態を示す。当技術分野で知られているように、各DRAMチップ207は、複数のバンク209を備えることが可能であり、各バンク209は複数のDRAMページ211を画定する。DRAMページ211は複数のコードワード213を備える。コードワード213はDRAMセルアレイ126内に複数のビット215を備える。図2は、物理アドレス(0x00000DAD0)に対応する256ビットのデータを備えるコードワード213を示す。
【００２０】
当技術分野で知られているように、動作中、ECCモジュール124は、失敗ビットを検出して、訂正することができ、それによって、失敗ビットにもかかわらず、成功裏のDRAM動作を可能にする。ECCモジュール124は、たとえば、DRAM104内の揮発性レジスタ/RAM内にエラーデータを一時的に記憶することができる。エラーデータは、たとえば、最近の失敗コードワードの開始アドレス、およびエラーが成功裏に訂正されたか否かなど、ECC失敗に関する情報を含み得る。エラーデータは、SoCソフトウェアによって直接的にアドレス可能でない場合があるが、エラーデータに関してDRAM104に問い合わせるために、DRAMコントローラ108を介して利用可能にされ得る。不良ページマスキングモジュール122、O/S120、またはCPU106上で実行する他のソフトウェア(たとえば、仮想メモリマネージャ)は、ECCモジュール124から、失敗コードワードアドレス301をあらわにするエラーデータを読み取り、このエラーデータを不揮発性メモリ132内に位置する失敗コードワードアドレステーブル130内に記憶する。エラーカウント303は、この失敗コードワードアドレス301がエラーに遭遇した回数を追跡することができる。新しいロケーションがエラーを有すると、失敗コードワードアドレステーブル130内のエントリーの数は増加する。同じコードワードアドレス301に関するエラーが繰り返すと、エラーカウント303は増分する。
【００２１】
図3は失敗コードワードアドレステーブル130の1つの例示的な実施形態を示す。テーブル130は、失敗コードワード213(図2)に対応するアドレスを記載するためのデータフィールド301を含み得る。データフィールド303は、失敗コードワードアドレスに関して累積されたエラーのエラーカウントを含む。不良ページマスキングモジュール122は、ECCモジュール124からエラーデータを受信して、エラーカウントを増分することを含めて、失敗コードワードアドレステーブル130を更新するように構成され得る。エラーカウントデータフィールド303は不良ページマスキングモジュール122が不良物理ページを決定するのを可能にすることを諒解されたい。たとえば、コードワードアドレス213に関するエラーカウントが所定のしきい値を超える場合、DRAM104内の物理的ロケーションはO/S120によって不良物理ページとして定義され得る。しきい値を超える場合、不良ページマスキングモジュール122は、失敗コードワードアドレスに対応するカーネルページを破棄することができる。ページが現在使用中である場合、仮想ページを新しい物理ページに再度割り当て、コンテンツを新しい物理ページに移動させることができる。
【００２２】
不揮発性メモリ132内に記憶された不良ページリスト134の生成および管理によってカーネルページが破棄され得る。図4は、エラーカウントしきい値を超えた失敗コードワードアドレス(フィールド307)を含むカーネルページ開始アドレス(データフィールド305)を識別する例示的な不良ページリスト134を示す。図3および図4の例では、エラーカウントしきい値=2個のエラーであり、この場合、コードワードアドレス0x00000DAD0は失敗コードワードアドレスとして識別される。不良ページリスト134は、失敗コードワードアドレス(0x00000DAD0)を保持するデータフィールド305内にカーネルページ開始アドレス(0x00000D800)を記載するように更新され得る。
【００２３】
下でより詳細に説明するように、物理ページを仮想メモリに割り当てるとき、システム100は不良ページリスト134にアクセスして、どのページが不良であるか決定し、割り振りからそれらを除外することができる。たとえば、230バイトを備える1ギガバイトDRAMチップ207内には、218ページ211が存在し、各々のページはサイズ212バイト(4096バイト)を有する。これらの218ページ211のうち、不良を有するか、または不良になる、将来の使用から除去されなければならない部分(たとえば、およそ0.01%)が存在し得る。物理ページに対するアクセスは、通常の仮想-物理マッピングに関して使用されるのと同じフリーページブロックリストと、ページテーブルと、MMU118とを使用して、オペレーティングシステム120および不良ページマスキングモジュール122から制御され得る。不良であることが見出されたカーネルページ開始アドレス305はオペレーティングシステムのフリーページブロックリストから除去される。このようにして、不良ページリスト134内に定義された不良物理ページを使用して、仮想メモリは決して割り振られない。
【００２４】
図5は、DRAM欠陥をカーネルマスキングするための、システム100内で実装される方法の一実施形態を示す。ブロック502で、ECCモジュール124は、DRAM動作に関連するコードワード213内のシングルビットエラーを検出して、訂正する。ブロック504で、O/S120、不良ページマスキングモジュール122、または他のソフトウェアによって失敗コードワード213に関連するエラーデータを受信することができる。エラーデータは、不揮発性メモリ132内に位置する失敗コードワードアドレステーブル130(図3)内に記憶され得る(ブロック506)か、またはエラーカウント(データフィールド303)を増分するために更新され得る。上で説明したように、エラーカウントがエラーカウントしきい値を超える場合、失敗コードワードアドレス307に対応するカーネルページが破棄され(ブロック508)、物理DRAMロケーションをメモリ割振りから除外することができる。
【００２５】
図9は、カーネルページを破棄するための、図5のブロック508を実装するための方法の一実施形態を示す。カーネルページが破棄されるべきであると決定されたとき、そのカーネルページは使用中であっても、使用中でなくてもよいことを諒解されたい。ブロック902で、物理メモリに対するマッピングのすべてのディレクトリを含むソフトウェア構造を備えたオペレーティングシステム120ページテーブルを検査することによって、使用中であろうと、使用中でなかろうと、カーネルページをチェックすることができる。カーネルページが使用中である場合、ブロック904で、フリーページブロックリスト122から新しい空のページを割り振る。フリーページブロックリスト122は、すべての未使用の、したがって、利用可能な物理メモリのディレクトリを含むソフトウェア構造を備える。前の例を使用すると、218ページを含む1ギガバイトDRAMチップ207は230バイトからなる。メモリの半分が自由に使用できる(すなわち、利用可能である)場合、フリーページブロックリストは、217フリーページのディレクトリを含む。オペレーティングシステム120は、メモリを割り振るときはいつでも、フリーページブロックリスト122を調べる。ブロック906で、失敗カーネルページのコンテンツを新しい空のページに複写することができる。ブロック908で、ページテーブルを更新して、前の失敗カーネルページに対する参照を新しい空のページに切り替えることができる。ブロック910で、失敗カーネルページがフリーページブロックリスト122上に存在することはもはや許可されない。
【００２６】
図6および図7は、不良ページリスト134に基づいてカーネルページを破棄するための1つの例示的な実装形態を示す。図6に示すように、O/S120は、一次ブートローダ602と、二次ブートローダ604と、仮想メモリマネージャ606とをさらに備え得る。仮想メモリマネージャ606は、エラーのないDRAMメモリを識別するためのフリーページブロックリスト122を生成して、管理するためのメモリ割振り構成要素を備え得る。
【００２７】
一次ブートローダ602は任意のDRAMから実行せず、または任意のDRAMを使用しない。むしろ、一次ブートローダ602はSRAM110および/またはROM112から実行する。二次ブートローダ604は、不良ページリスト134にアクセスして、不揮発性メモリ132から不良物理ページのリストを検索する。不良物理ページのリストを使用して、二次ブートローダ604は、(不良ページを含まない)DRAMアドレスの連続セクションを位置特定して、たとえば、ソフトウェアイメージをロードするなど、二次ブート動作用のエラーのないメインメモリ127(図6)として、このセクションを使用するようにMMU118を構成する。エラーのないセクション127は、任意のサイズのものであってよく、単一のまたは複数のより小さな連続セクションを使用して形成され得る。エラーのないセクション127は、DRAMセルアレイ126内のいずれの場所にも位置し得る。代替として、DRAM104の所定のエリアは、高速リフレッシュを用いてこの部分を動作せることによって、エラーがないことを保証することができる。
【００２８】
二次ブートローダ604は、O/S120をエラーのないセクションにロードするうえに、不良物理ページ情報を一緒に他のシステム構成要素に渡す。O/S120は、メモリスペース全体にアクセスするために、不良物理ページデータを使用することができる仮想メモリマネージャ606を開始する。この時点で、すべての不良物理ページは「使用禁止」として標示され、使用のために決して割り振られない。必要な場合、カーネルを別の物理ロケーションに再配置することができる。すべてのメモリクライアントは、エラーのないDRAMを取得するために、O/S120と通信することができる。
【００２９】
図7は、DRAM欠陥をカーネルマスキングするための、システム100(図6)によって実装される方法の一実施形態を示す。ブロック702で、システム100を組み込んだデバイス(たとえば、PCD800)の電源が投入され、ブートシーケンスが開始される。当技術分野で知られているように、基本入出力システム(BIOS)、O/S120、またはCPU106によってブートシーケンスを開始することができる。ブロック704で、たとえば、ROM112および/またはSRAM110からCPU106によって一次ブートローダ602を実行する。不揮発性メモリ132を初期化して(ブロック706)、不良ページリスト134を読み取る(ブロック708)。ブロック710で、不良ページリスト134内のアドレスデータに基づいて、エラーのないDRAMの連続ブロックを識別する。MMU118は、エラーのないセクション127から二次ブートローダ604をロードして、実行するように構成される(ブロック712)。ブロック714で、O/S120をエラーのないセクション127内にロードすることができる。ブロック716で、O/S120は、フリーページブロックリスト122を開始して、不良ページリスト134内で識別された不良物理ページを除外するように構成する。
【００３０】
上述のように、システム100は任意の望ましいコンピューティングシステムに組み込まれてよい。図8は、例示的なポータブルコンピューティングデバイス(PCD)800に組み込まれたシステム100を示す。システム100のいくつかの構成要素はSoC322(図8)に含まれるが、他の構成要素(たとえば、DRAM104)はSoC322に結合された外部構成要素であることが容易に理解されるだろう。SoC322は、マルチコアCPU802を含み得る。マルチコアCPU802は、第0のコア810と、第1のコア812と、第Nのコア814とを含み得る。コアの1つは、たとえば、グラフィックス処理装置(GPU)を備えてよく、他のコアの1つまたは複数はCPUを備える。
【００３１】
ディスプレイコントローラ328およびタッチスクリーンコントローラ330は、CPU802に結合され得る。一方、オンチップシステム322の外部にあるタッチスクリーンディスプレイ806は、ディスプレイコントローラ328とタッチスクリーンコントローラ330とに結合され得る。
【００３２】
図8は、ビデオエンコーダ334、たとえば、位相反転線(PAL)エンコーダ、順次式カラーメモリ(SECAM)エンコーダ、または全米テレビジョン方式委員会(NTSC)エンコーダがマルチコアCPU802に結合されることをさらに示す。さらに、ビデオ増幅器336がビデオエンコーダ334とタッチスクリーンディスプレイ806とに結合される。また、ビデオポート338がビデオ増幅器336に結合される。図8に示すように、ユニバーサルシリアルバス(USB)コントローラ340は、マルチコアCPU802に結合される。また、USBポート342がUSBコントローラ340に結合される。メモリ104および加入者識別モジュール(SIM)カード346も、マルチコアCPU802に結合され得る。メモリ104は、SoC322に存在するか、または(図1に示すように)SoC322に結合され得る。メモリ104は、上で説明したように、DRAMメモリシステム(図1)を備えてよい。
【００３３】
さらに、図8に示すように、デジタルカメラ348は、マルチコアCPU802に結合され得る。例示的な態様では、デジタルカメラ348は、電荷結合デバイス(CCD)カメラまたは相補型金属酸化物半導体(CMOS)カメラである。
【００３４】
図8にさらに示すように、ステレオオーディオコーダ-デコーダ(コーデック)350が、マルチコアCPU802に結合され得る。その上、オーディオ増幅器352が、ステレオオーディオコーデック350に結合され得る。例示的な態様では、第1のステレオスピーカ354と第2のステレオスピーカ356とがオーディオ増幅器352に結合される。図8は、マイクロフォン増幅器358もステレオオーディオコーデック350に結合され得ることを示す。加えて、マイクロフォン360が、マイクロフォン増幅器358に結合され得る。特定の態様では、周波数変調(FM)ラジオチューナ362が、ステレオオーディオコーデック350に結合され得る。同様に、FMアンテナ364が、FMラジオチューナ362に結合される。さらに、ステレオヘッドフォン366が、ステレオオーディオコーデック350に結合され得る。
【００３５】
図8は、無線周波数(RF)トランシーバ368がマルチコアCPU802に結合され得ることをさらに示す。RFスイッチ370が、RFトランシーバ368とRFアンテナ372とに結合され得る。キーパッド204が、マルチコアCPU802に結合され得る。また、マイクロフォンを備えたモノヘッドセット376が、マルチコアCPU802に結合され得る。さらに、バイブレータデバイス378がマルチコアCPU802に結合され得る。
【００３６】
図8はまた、電源380がオンチップシステム322に結合され得ることを示す。特定の態様では、電源380は、電力を必要とするPCD800の様々な構成要素に電力を供給する直流(DC)電源である。さらに、特定の態様では、電源は、充電式DCバッテリ、または交流(AC)電源に接続されたAC-DC変換器から導出されるDC電源である。
【００３７】
図8はさらに、PCD800がデータネットワーク、たとえば、ローカルエリアネットワーク、パーソナルエリアネットワーク、または任意の他のネットワークにアクセスするために使用され得る、ネットワークカード388を含む場合もあることを示す。ネットワークカード388は、Bluetooth(登録商標)ネットワークカード、WiFiネットワークカード、パーソナルエリアネットワーク(PAN)カード、パーソナルエリアネットワーク超低電力技術(PeANUT)ネットワークカード、テレビジョン/ケーブル/衛星チューナ、または当技術分野でよく知られている任意の他のネットワークカードであってよい。さらに、ネットワークカード388は、チップに組み込まれることがあり、すなわち、ネットワークカード388は、チップ内のフルソリューションであってもよく、別個のネットワークカード388でなくてもよい。
【００３８】
図8に示したように、タッチスクリーンディスプレイ806、ビデオポート338、USBポート342、カメラ348、第1のステレオスピーカ354、第2のステレオスピーカ356、マイクロフォン360、FMアンテナ364、ステレオヘッドフォン366、RFスイッチ370、RFアンテナ372、キーパッド374、モノヘッドセット376、バイブレータ378、および電源380は、オンチップシステム322の外部にある場合がある。
【００３９】
本明細書で説明した方法ステップの1つまたは複数は、上で説明したモジュールなどのコンピュータプログラム命令としてメモリに記憶されてよいことを理解されたい。これらの命令は、本明細で説明した方法を実行するために、対応するモジュールと組合せて、またはそれと協働して、任意の適切なプロセッサによって実行されてよい。
【００４０】
本発明が説明した通りに機能するように、本明細書で説明したプロセスまたはプロセスフロー内の特定のステップが他のステップよりも先行するのは当然である。しかしながら、そのような順序またはシーケンスが本発明の機能を変えない場合、本発明は、説明したステップの順序に限定されない。すなわち、本発明の範囲および趣旨から逸脱することなく、いくつかのステップは、他のステップの前に実行されてよく、後に実行されてよく、または他のステップと並行して(実質的に同時に)実行されてよいことを認識されたい。いくつかの例では、本発明から逸脱することなく、いくつかのステップが省略されてもよく、または実行されなくてもよい。さらに、「その後」、「次いで」、「次に」などの語は、ステップの順番を限定することを意図していない。これらの語は単に、例示的な方法の説明を通じて読者を導くために使用される。
【００４１】
さらに、プログラミングに関する当業者は、たとえば、本明細書におけるフローチャートおよび関連する説明に基づいて、難なく、開示した発明を実施するコンピュータのコードを書くことができるか、または実施するのに適したハードウェアおよび/もしくは回路を特定することができる。
【００４２】
したがって、プログラムコード命令または詳細なハードウェアデバイスの特定のセットの開示は、本発明をどのように製作および使用するのかを十分に理解するために必要であるとは見なされない。特許請求されるコンピュータ実施プロセスの発明性のある機能は、上記の説明において、かつ様々なプロセスフローを示す場合がある図面とともに、より詳細に説明される。
【００４３】
1つまたは複数の例示的な態様では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装されてもよい。ソフトウェアにおいて実施される場合、機能は、1つもしくは複数の命令またはコードとして、コンピュータ可読媒体上に記憶されてもよく、またはコンピュータ可読媒体上で送信されてもよい。コンピュータ可読媒体は、コンピュータ記憶媒体と、コンピュータプログラムの1つの場所から別の場所への転送を容易にする任意の媒体を含む通信媒体との両方を含む。記憶媒体は、コンピュータによってアクセスされる場合がある任意の利用可能な媒体であってもよい。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、NANDフラッシュ、NORフラッシュ、M-RAM、P-RAM、R-RAM、CD-ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気記憶デバイス、または命令もしくはデータ構造の形態で所望のプログラムコードを搬送もしくは記憶するために使用され、コンピュータによってアクセスされてよい任意の他の媒体を備えてよい。
【００４４】
同様に、任意の接続が、適切にコンピュータ可読媒体と呼ばれる。たとえば、ソフトウェアが、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者線(「DSL」)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用してウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。
【００４５】
ディスク(disk)およびディスク(disc)は、本明細書において使用されるときに、コンパクトディスク(disc)(「CD」)、レーザディスク(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(「DVD」)、フロッピー(登録商標)ディスク(disk)およびブルーレイディスク(disc)を含み、ディスク(disk)は通常、データを磁気的に再生し、一方、ディスク(disc)は、レーザを用いてデータを光学的に再生する。上記のものの組合せも、コンピュータ可読媒体の範囲内に含まれるべきである。
【００４６】
本発明の趣旨および範囲から逸脱することなく、本発明が関係する代替的な実施形態が、当業者には明らかになるであろう。したがって、選択された態様が図示され詳細に説明されてきたが、以下の特許請求の範囲によって定義されるように、本発明の趣旨および範囲から逸脱することなく、各態様において様々な置換および改変が行われてよいことが理解されよう。
【符号の説明】
【００４７】
100  システム
102  システムオンチップ(SoC)
104  DRAMメモリシステム、DRAM、DRAMシステム
106  中央処理装置(CPU)
108  DRAMコントローラ
110  スタティックランダムアクセスメモリ(SRAM)
112  読取り専用メモリ(ROM)
114  ストレージコントローラ
116  SoCバス
118  MMU
120  オペレーティングシステム(O/S)
122  不良ページマスキングモジュール、フリーページブロックリスト、
124  誤り訂正コード(ECC)モジュール
126  DRAMセルアレイ
127  メインメモリ、エラーのないセクション
130  失敗コードワードアドレステーブル
132  不揮発性メモリ
134  不良ページリスト
204  キーパッド
207  DRAMチップ
209  バンク
211  DRAMページ
213  コードワード、失敗コードワード
215  ビット
301  失敗コードワードアドレス、コードワードアドレス、データフィールド
303  エラーカウント、データフィールド
305  データフィールド、カーネルページ開始アドレス
307  失敗コードワードアドレス、フィールド
322  SoC、オンチップシステム
328  ディスプレイコントローラ
330  タッチスクリーンコントローラ
334  ビデオエンコーダ
336  ビデオ増幅器
338  ビデオポート
340  ユニバーサルシリアルバス(USB)コントローラ
342  USBポート
346  加入者識別モジュール(SIM)カード
348  デジタルカメラ、カメラ
350  ステレオオーディオコーダ-デコーダ(コーデック)
352  オーディオ増幅器
354  第1のステレオスピーカ
356  第2のステレオスピーカ
358  マイクロフォン増幅器
360  マイクロフォン
362  周波数変調(「FM」)ラジオチューナ
364  FMアンテナ
366  ステレオヘッドフォン
368  高周波(RF)トランシーバ
370  RFスイッチ
372  RFアンテナ
374  キーパッド
376  モノヘッドセット
378  バイブレータデバイス、バイブレータ
380  電源
388  ネットワークカード
602  一次ブートローダ
604  二次ブートローダ
606  仮想メモリマネージャ
800  ポータブルコンピューティングデバイス(PCD)
802  マルチコアCPU
806  タッチスクリーンディスプレイ
810  第0のコア
812  第1のコア812
814  第Nのコア
【図１】
2017506391.tif 000003
【図２】
2017506391.tif 000004
【図３】
2017506391.tif 000005
【図４】
2017506391.tif 000006
【図５】
2017506391.tif 000007
【図６】
2017506391.tif 000008
【図７】
2017506391.tif 000009
【図８】
2017506391.tif 000010
【図９】
2017506391.tif 000011
【手続補正書】
【提出日】平成28年8月24日(2016.8.24)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ダイナミックランダムアクセスメモリ(DRAM)欠陥をカーネルマスキングするための方法であって、
誤り訂正コード(ECC)モジュールによって、ダイナミックランダムアクセスメモリ(DRAM)動作の間、DRAM内の物理アドレスに関連するシングルビットエラーを検出して、訂正するステップと、
中央処理装置(CPU)によって実行されるオペレーティングシステム内の不良ページマスキングモジュールによって、前記ECCモジュールから前記物理アドレスに関連するエラーデータを受信するステップと、
前記不良ページマスキングモジュールによって、不揮発性メモリ内に位置する失敗アドレステーブル内に前記ECCモジュールから前記受信されたエラーデータを記憶するステップと、
前記物理アドレスに関連するエラーの数がエラーカウントしきい値を超える場合、前記不良ページマスキングモジュールによって、前記物理アドレスに対応するカーネルページを破棄するステップとを含み、前記物理アドレスに対応する前記カーネルページを前記破棄するステップは、不良ページリストを生成して、前記不揮発性メモリ内に記憶するステップを含み、前記不良ページリストはメモリ割振りから除外されるべき前記物理アドレスを保持するカーネルページを識別する、方法。
【請求項２】
前記シングルビットエラーは前記DRAMによって検出されて、訂正される、請求項1に記載の方法。
【請求項３】
前記DRAMから前記エラーデータを前記受信するステップは、オペレーティングシステムがエラーデータに関して前記DRAMに問い合わせるステップを含む、請求項1に記載の方法。
【請求項４】
前記受信されたエラーデータは、失敗コードワードアドレスに対応するDRAMバンク、列、および行アドレスを識別する、請求項1に記載の方法。
【請求項５】
前記失敗アドレステーブル内に前記受信されたエラーデータを前記記憶するステップは、前記失敗コードワードアドレスに関連するエラーの数を更新するステップを含む、請求項4に記載の方法。
【請求項６】
前記カーネルページのコンテンツを新しい空のカーネルページに転送するステップと、
前記カーネルページを将来の使用から除去するステップと
をさらに含む、請求項1に記載の方法。
【請求項７】
デバイスブートアップにおいて、前記不揮発性メモリ内に記憶された前記不良ページリストを読み取るステップと、
前記不良ページリスト内で識別された前記カーネルページをオペレーティングシステムのフリーページブロックリストから除外するステップと
をさらに含む、請求項1に記載の方法。
【請求項８】
デバイスブートアップにおいて、前記DRAMおよび前記不揮発性メモリ以外のメモリから一次ブートローダを実行するステップと、
前記不揮発性メモリから前記不良ページリストを読み取るステップと、
前記不良ページリスト内で識別された前記カーネルページを除外することによって、エラーのないDRAMの連続ブロックを決定するステップと
をさらに含む、請求項1に記載の方法。
【請求項９】
前記エラーのないDRAMから二次ブートローダを実行するステップと、
前記エラーのないDRAMからオペレーティングシステムをロードするステップと、
前記不良ページリスト内で識別された前記カーネルページを除外するオペレーティングシステムのフリーブロックリストを構成するステップと
をさらに含む、請求項8に記載の方法。
【請求項１０】
前記物理アドレスに対応する前記カーネルページを前記破棄するステップは、割り振られたDRAMから前記カーネルページを除外するステップを含む、請求項1に記載の方法。
【請求項１１】
ダイナミックランダムアクセスメモリ(DRAM)欠陥をカーネルマスキングするためのシステムであって、
ダイナミックランダムアクセスメモリ(DRAM)動作の間、DRAM内の物理アドレスに関連するシングルビットエラーを検出して、訂正するための誤り訂正コード(ECC)モジュール手段と、
前記ECCモジュール手段から前記物理アドレスに関連するエラーデータを受信するための不良ページマスキングモジュール手段であって、前記不良ページマスキングモジュールは中央処理装置(CPU)によって実行されるオペレーティングシステムの一部である、不良ページマスキングモジュール手段と、
不揮発性メモリ内に位置する失敗アドレステーブル内に前記ECCモジュール手段から前記受信されたエラーデータを記憶するための不良ページマスキングモジュール手段と、
前記物理アドレスに関連するエラーの数がエラーカウントしきい値を超える場合、前記物理アドレスに対応するカーネルページを破棄するための不良ページマスキングモジュール手段とを備え、前記物理アドレスに対応する前記カーネルページを破棄することは、不良ページリストを生成して、前記不揮発性メモリ内に記憶することを含み、前記不良ページリストはメモリ割振りから除外されるべき前記物理アドレスを保持するカーネルページを識別する、システム。
【請求項１２】
前記DRAMから前記エラーデータを前記受信するための手段は、エラーデータに関して前記DRAMに問い合わせるための手段を備える、請求項11に記載のシステム。
【請求項１３】
前記受信されたエラーデータは、失敗コードワードアドレスに対応するDRAMバンク、列、および行アドレスを識別する、請求項11に記載のシステム。
【請求項１４】
前記失敗アドレステーブル内に前記受信されたエラーデータを前記記憶するための手段は、前記失敗コードワードアドレスに関連するエラーの数を更新するための手段を備える、請求項13に記載のシステム。
【請求項１５】
デバイスブートアップにおいて、前記不揮発性メモリ内に記憶された前記不良ページリストを読み取るための手段と、
前記不良ページリスト内で識別された前記カーネルページをオペレーティングシステムのフリーページブロックリストから除外するための手段と
をさらに備える、請求項11に記載のシステム。
【請求項１６】
デバイスブートアップにおいて、前記DRAMおよび前記不揮発性メモリ以外のメモリから一次ブートローダを実行するための手段と、
前記不揮発性メモリから前記不良ページリストを読み取るための手段と、
前記不良ページリスト内で識別された前記カーネルページを除外することによって、エラーのないDRAMの連続ブロックを決定するための手段と
をさらに備える、請求項11に記載のシステム。
【請求項１７】
前記エラーのないDRAMから二次ブートローダを実行するための手段と、
前記エラーのないDRAMからオペレーティングシステムをロードするための手段と、
前記不良ページリスト内で識別された前記カーネルページを除外するオペレーティングシステムのフリーブロックリストを構成するための手段と
をさらに備える、請求項16に記載のシステム。
【請求項１８】
前記物理アドレスに対応する前記カーネルページを前記破棄するステップは、割り振られたDRAMから前記カーネルページを除外するステップを含む、請求項11に記載のシステム。
【請求項１９】
メモリ内で実施され、ダイナミックランダムアクセスメモリ(DRAM)欠陥をカーネルマスキングするためにプロセッサによって実行可能なコンピュータプログラムであって、
誤り訂正コード(ECC)モジュールによって、ダイナミックランダムアクセスメモリ(DRAM)動作の間、DRAM内の物理アドレスに関連するシングルビットエラーを検出して、訂正して、
中央処理装置(CPU)によって実行されるオペレーティングシステム内の不良ページマスキングモジュールによって、前記ECCモジュールから前記物理アドレスに関連するエラーデータを受信して、
前記不良ページマスキングモジュールによって、不揮発性メモリ内に位置する失敗アドレステーブル内に前記ECCモジュールから前記受信されたエラーデータを記憶して、
前記物理アドレスに関連するエラーの数がエラーカウントしきい値を超える場合、前記不良ページマスキングモジュールによって、前記物理アドレスに対応するカーネルページを破棄するように構成された論理を備え、前記物理アドレスに対応する前記カーネルページを破棄することは、不良ページリストを生成して、前記不揮発性メモリ内に記憶するように構成されたコードを含み、前記不良ページリストはメモリ割振りから除外されるべき前記物理アドレスを保持するカーネルページを識別する、コンピュータプログラム。
【請求項２０】
前記シングルビットエラーは前記DRAMによって検出されて、訂正される、請求項19に記載のコンピュータプログラム。
【請求項２１】
前記DRAMから前記エラーデータを受信するように構成された前記コードは、エラーデータに関して前記DRAMに問い合わせるように構成されたコードを備える、請求項19に記載のコンピュータプログラム。
【請求項２２】
前記受信されたエラーデータは、失敗コードワードアドレスに対応するDRAMバンク、列、および行アドレスを識別する、請求項19に記載のコンピュータプログラム。
【請求項２３】
前記失敗アドレステーブル内に前記受信されたエラーデータを記憶するように構成された前記コードは、前記失敗コードワードアドレスに関連するエラーの数を更新するように構成されたコードを備える、請求項22に記載のコンピュータプログラム。
【請求項２４】
デバイスブートアップにおいて、前記不揮発性メモリ内に記憶された前記不良ページリストを読み取るように構成されたコードと、
前記不良ページリスト内で識別された前記カーネルページをオペレーティングシステムのフリーページブロックリストから除外するように構成されたコードと
をさらに備える、請求項19に記載のコンピュータプログラム。
【請求項２５】
デバイスブートアップにおいて、前記DRAMおよび前記不揮発性メモリ以外のメモリから一次ブートローダを実行するように構成されたコードと、
前記不揮発性メモリから前記不良ページリストを読み取るように構成されたコードと、
前記不良ページリスト内で識別された前記カーネルページを除外することによって、エラーのないDRAMの連続ブロックを識別するように構成されたコードと
をさらに備える、請求項19に記載のコンピュータプログラム。
【請求項２６】
前記エラーのないDRAMから二次ブートローダを実行するように構成されたコードと、
前記エラーのないDRAMからオペレーティングシステムをロードするように構成されたコードと、
前記不良ページリスト内で識別された前記カーネルページを除外するフリーブロックリストを生成するように構成されたコードと
をさらに備える、請求項25に記載のコンピュータプログラム。
【請求項２７】
前記物理アドレスに対応する前記カーネルページを破棄するように構成された前記コードは、割り振られたDRAMから前記カーネルページを除外するように構成されたコードを備える、請求項19に記載のコンピュータプログラム。
【請求項２８】
ダイナミックランダムアクセスメモリ(DRAM)欠陥をマスキングするためのシステムであって、
ダイナミックランダムアクセスメモリ(DRAM)システムと、
DRAM動作の間、前記DRAM内の失敗コードワードアドレスに関連するビットエラーを検出して、訂正するための誤り訂正コード(ECC)モジュールと、
不良ページマスキングモジュールを備えるオペレーティングシステムを実行する中央処理装置(CPU)とを備え、前記不良ページマスキングモジュールは、
前記DRAMシステムおよび前記ECCモジュールのうちの1つまたは複数を介して、前記不良コードワードアドレスに関連するエラーデータを受信して、
不揮発性メモリ内に位置する失敗コードワードアドレステーブル内に前記受信されたエラーデータを記憶して、
それぞれの前記失敗コードワードアドレスに関連するエラーの数がエラーカウントしきい値を超える場合、前記失敗コードワードアドレスに対応するカーネルページを破棄するように構成された論理手段を備え、前記物理アドレスに対応する前記カーネルページを破棄することは、不良ページリストを生成して、前記不揮発性メモリ内に記憶することを含み、前記不良ページリストは前記失敗コードワードアドレスを保持するカーネルページを識別する、システム。
【請求項２９】
前記ECCモジュールは前記DRAMシステム内に存在し、前記CPUは前記DRAMシステムに電気的に結合されたシステムオンチップ(SoC)上に存在する、請求項28に記載のシステム。
【請求項３０】
前記エラーデータを受信するように構成された前記論理手段は、エラーデータに関して前記DRAMシステムに問い合わせるように構成された論理手段を備える、請求項28に記載のシステム。
【請求項３１】
前記失敗コードワードアドレステーブル内に前記受信されたエラーデータを記憶するように構成された前記論理手段は、前記失敗コードワードアドレスに関連するエラーの数を更新するように構成された論理手段を備える、請求項28に記載のシステム。
【請求項３２】
デバイスブートアップにおいて、前記不揮発性メモリ内に記憶された前記不良ページリストを読み取るように構成された論理手段と、
前記不良ページリスト内で識別された前記カーネルページをオペレーティングシステムのフリーページブロックリストから除外するように構成された論理手段と
をさらに備える、請求項28に記載のシステム。
【請求項３３】
デバイスブートアップにおいて、読取り専用メモリ(ROM)およびスタティックランダムアクセスメモリ(SRAM)のうちの1つから一次ブートローダを実行するように構成された論理手段と、
前記不揮発性メモリから前記不良ページリストを読み取るように構成された論理手段と、
前記不良ページリスト内で識別された前記カーネルページを除外することによって、エラーのないDRAMの連続ブロックを識別するように構成された論理手段と
をさらに備える、請求項28に記載のシステム。
【請求項３４】
前記エラーのないDRAMから二次ブートローダを実行するように構成された論理手段と、
前記エラーのないDRAMからオペレーティングシステムをロードするように構成された論理手段と、
前記不良ページリスト内で識別された前記カーネルページを除外するフリーブロックリストを生成するように構成された論理手段と
をさらに備える、請求項33に記載のシステム。
【請求項３５】
それぞれの前記失敗コードワードアドレスに対応する前記カーネルページを破棄するように構成された前記論理手段は、割り振られたDRAMから前記不良ページリスト内で識別された前記カーネルページを除外するように構成された論理手段を備える、請求項28に記載のシステム。
【請求項３６】
ポータブルコンピューティングデバイス内で実施される、請求項28に記載のシステム。
【国際調査報告】
2017506391.tif 000012
2017506391.tif 000013
2017506391.tif 000014