(57)【要約】【課題】  コレクタブルエラーを考慮したメモリ管理方法及びメモリ管理システムを提供すること。【解決手段】  複数のブロックから記憶領域を構成するメモリ１０のブロック単位に予め優先順位を設けると共に当該メモリ内に格納するデータ種及び優先順位を格納したメモリ内データ管理テーブルを設け、あるブロック「＃２」にコレクタブルエラー１１が発生した場合、前記メモリ内データ管理テーブルを参照して該コレクタブルエラーが発生したブロック「＃２」と、コレクタブルエラーが発生していない優先順位が相対的に低いブロック「＃８」との間でデータ及び優先順位を交換するもの。【選択図】図１
2007011839.tif 000002
【特許請求の範囲】
【請求項１】
複数のブロックから記憶領域を構成するメモリのメモリ管理方法であって、メモリのブロック単位に予め優先順位を設けると共に当該メモリ内に格納するデータ種及び優先順位を格納したメモリ内データ管理テーブルを設け、あるブロックにコレクタブルエラーが発生した場合、前記メモリ内データ管理テーブルを参照して該コレクタブルエラーが発生したブロックと、コレクタブルエラーが発生していない優先順位が相対的に低いブロックとの間でデータ及び優先順位を交換することを特徴とするメモリ管理方法。
【請求項２】
複数のブロックから記憶領域を構成するメモリのメモリ管理システムであって、メモリのブロック単位に予め優先順位を設けると共に当該メモリ内に格納するデータ種及び優先順位を格納したメモリ内データ管理テーブルを備え、あるブロックにコレクタブルエラーが発生した場合、前記メモリ内データ管理テーブルを参照して該コレクタブルエラーが発生したブロックと、コレクタブルエラーが発生していない優先順位が相対的に低いブロックとの間でデータ及び優先順位を交換することを特徴とするメモリ管理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの保全を行うことができるメモリ管理方法及びメモリ管理システムに係り、特にコレクタブルエラーが発生したメモリに格納するデータの保全を行うことができるメモリ管理方法及びメモリ管理システムに関する。
【背景技術】
【０００２】
一般に、半導体メモリは、複数の半導体記憶素子から構成され、この半導体記憶素子に記憶したデータ等のデータ化け等のエラーを検出して修復するためのＥＣＣ（Ｅｒｒｏｒ  ｃｏｒｒｅｃｔｉｏｎ  Ｃｏｄｅ）等のエラー修正コードが採用されている。
【０００３】
このＥＣＣ等のエラー修正コードは、ある程度の誤りを修正することができるものであり、この修正可能な範囲の誤りは、コレクタブルエラーと呼ばれている。
前記コレクタブルエラーは、その状態においては修復可能なエラーであるが、半導体記録素子自体に何等かの障害要因があり、これを放置した場合は、当該エラーがやがて修復不能なエラーにつながる可能性があった。この問題点を解決するため、従来技術においては、例えば下記特許文献記載の如く、コレクタブルエラーの発生した半導体記憶素子を含む（メモリ）ページに対しての書き込みを禁止することが提案されている。
【特許文献１】特開平９−１２８３０３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
前述した従来技術は、コレクタブルエラーの発生したページに対する書き込みを禁止するために当該ページによる致命的なエラーが発生する可能性が低減するものの、一度でもコレクタブルエラーが発生したページ書き込みを禁止するため、当該半導体メモリの使用形態によっては書き込みエリアが減少し、ソフトウェアから要求される書き込み領域を確保できずにシステムが停止したり、磁気ディスク装置等への仮想メモリ領域が増加してシステム性能が低下する可能性があると言う不具合があった。
【０００５】
本発明の目的は、前述の従来技術による不具合を除去することであり。コレクタブルエラーが発生してもシステムの停止等の不具合が発生することを低減することができるメモリ管理方法及びメモリ管理システムを提供することである。
【課題を解決するための手段】
【０００６】
前記目的を達成するため本発明は、複数のブロックから記憶領域を構成するメモリのメモリ管理方法において、メモリのブロック単位に予め優先順位を設けると共に当該メモリ内に格納するデータ種及び優先順位を格納したメモリ内データ管理テーブルを設け、あるブロックにコレクタブルエラーが発生した場合、前記メモリ内データ管理テーブルを参照して該コレクタブルエラーが発生したブロックと、コレクタブルエラーが発生していない優先順位が相対的に低いブロックとの間でデータ及び優先順位を交換することを第１の特徴とする。
【０００７】
また本発明は、複数のブロックから記憶領域を構成するメモリのメモリ管理システムにおいて、メモリのブロック単位に予め優先順位を設けると共に当該メモリ内に格納するデータ種及び優先順位を格納したメモリ内データ管理テーブルを備え、あるブロックにコレクタブルエラーが発生した場合、前記メモリ内データ管理テーブルを参照して該コレクタブルエラーが発生したブロックと、コレクタブルエラーが発生していない優先順位が相対的に低いブロックとの間でデータ及び優先順位を交換することを第２の特徴とする。
【発明の効果】
【０００８】
本発明は、メモリ内のあるブロックにコレクタブルエラーが発生した場合、前記メモリ内データ管理テーブルを参照して該コレクタブルエラーが発生したブロックと、コレクタブルエラーが発生していない優先順位が相対的に低いブロックとの間でデータ及び優先順位を交換することによって、コレクタブルエラーが発生してもシステムの停止等の不具合が発生することを低減することができる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明によるメモリ管理方法及びメモリ管理システムの一実施形態を図面を参照して詳細に説明する。図１は本実施形態によるメモリ制御方法の概要を説明するための図、図２は本実施形態によるメモリ管理方法及びメモリ管理システムを実現するための処理フローチャート、図３は本実施形態に使用されメモリ内データ管理テーブルを示す図である。
【００１０】
本実施形態によるメモリ管理方法は、図１（ａ）に示す複数のページ毎にブロック番号（＃１〜）が付与され、該各ページにデータ等の書き込みを行う優先順位（１〜）が付されたＤＭＭメモリ１０において、優先順位「２」のブロック「＃２」にコレクタブルエラー１１が発生したことを想定する。
【００１１】
また本実施形態によるメモリ管理方法及びメモリ管理システムは、システム側で図３に示したメモリ内管理テーブルを用意する。このメモリ内管理テーブルは、前記ＤＭＭメモリ１０内の各ブロック番号（＃１〜）毎に、記憶しているデータ種（診断エリア／トレースデータ１〜／構成情報１〜／マイマロプログラム等〜）と、該データ種に対応するその内容（メモリ診断領域／マイクロ実行手順のトレース１〜／ハード実装構造１〜／マイクロオプション設定情報／マイクロバージョン情報／マイクロプログラム１〜）と、該データ種及びその内容に対応した優先順位と、データブロックベースのアドレス／データブロックの終了アドレス／コレクタブルエラーの発生フラグの各領域から成り、システムが、前記ブロック毎にソフトウェアにより書き込まれたデータ種及びデータ内容毎に優先順位並びに優先順位を書き込むと共に、コレクタブルエラーが発生したときには前記コレクタブルエラーの発生フラグに「１」が立てられる様に構成されている。
【００１２】
このメモリ管理方法及びメモリ管理システムは、前述の図１（ａ）に示した優先順位「２」のブロック番号「＃２」においてコレクタブルエラーが発生した場合、図１（ｂ）に示す如く、ブロック番号「＃２」に記憶したデータをブロック番号「＃８」に記憶したデータと書き換える、即ちスワップ１２を実行すると共に、該ブロック番号「＃２」とブロック番号「＃８」の優先順位も同様にスワップ１２を実行する。
【００１３】
これによって本メモリ管理方法及びメモリ管理システムは、続いてコレクタブルエラーが発生する可能性があるブロック（＃２）内のデータをコレクタブルエラーが発生していないブロック（＃８）内に移動すると共に、両ブロックの優先順位を交換する様にメモリ管理領域の再配置を行うことによって、続いて書込が発生した場合、既にコレクタブルエラーが発生した領域（ブロック番号「＃２」）への書込の優先順位を低く設定することによって、システム動作を維持しつつ、致命的なエラーが発生する可能性を低減することができる。
【００１４】
本実施形態によるメモリ管理方法及びメモリ管理システムは、前述のメモリ管理領域の再配置を行うため、次に説明する処理フローチャートをプログラムが実行する。この処理は、図２に示す如く、メモリアクセスでエラーが発生した場合（ステップ９００）、メモリ状態情報等のハードレジスタからコレクタブルエラーが発生した素子情報を取得（ステップ９０１）し、該コレクタブルエラー発生素子情報からエラーが発生したデータを記憶したブロック番号（＃Ｎ）を得（ステップ９０２）、次いで前記メモリ内データ管理テーブルから当該ブロック番号「＃Ｎ」の優先順位並びに該コレクタブルエラー発生フラグを取得する（ステップ９０３〜９０４）。
【００１５】
次いで本処理は、前記コレクタブルエラー発生フラグが「１」か否か、即ち既にコレクタブルエラーが発生したブロックか否かを判定（ステップ９０５）し、発生済みの場合は処理を終了し、未発生の場合は、ブロック＃Ｎの優先順位より低く且つコレクタブルエラー発生フラグが「０（正常）」のブロック番号の検索と、この検索の結果、該当するブロックが複数の場合に優先順位の最も低いブロック番号「＃Ｍ」を取得（ステップ９０６）し、次いで、該当するブロック番号「＃Ｍ」が存在するか否かを判定（ステップ９０７）し、この判定の結果、該当するブロック番号「＃Ｍ」がない場合は処理を終了する。
【００１６】
前記ステップ９０７により該当するブロック番号「＃Ｍ」が存在すると判定した場合、本処理は、前記エラーの発生したブロック番号「＃Ｎ」とブロック番号「＃Ｍ」のデータを交換（ステップ９０８）し、次いで（１）ブロック＃Ｎのデータブロックベースアドレスと終了アドレスにブロック＃Ｍのデータブロックベースアドレスと終了アドレスを設定する処理と、（２）ブロック＃Ｍのデータブロックベースアドレスと終了アドレスにブロック＃Ｎのデータブロックベースアドレスと終了アドレスを設定する処理と、（３）ブロック＃Ｍのコレクタブルエラー発生フラグを「０（正常）」」から「１（コレクタブルエラー発生済み）」に変更する処理を実行（ステップ９０９）し、更に、ブロック番号「＃Ｎ」（優先順位「２」）のデータが元々のブロック番号「＃Ｍ」で定義されていた領域で管理し、ブロック番号「＃Ｍ」（優先順位２５５）のデータがコレクタブルエラーが発生した元々ブロック番号「＃Ｎ」で定義されていた領域で管理する様に設定（ステップ９１０）して処理を終了する。
【００１７】
この様に本実施形態によるメモリ管理方法及びメモリ管理システムは、メモリのブロック単位に予め優先順位を設けると共に当該メモリ内に格納するデータ種や優先順位を格納したメモリ内データ管理テーブルを設け、あるブロックにコレクタブルエラーが発生した場合、前記メモリ内データ管理テーブルを参照して該コレクタブルエラーが発生したブロックと、コレクタブルエラーが発生していない優先順位の相対的に低いブロック間においてデータ及び優先順位を交換することによって、システム動作を維持しつつ、致命的なエラーが発生する可能性を低減することができる。
尚、本実施形態によるメモリ管理システムは、前記メモリ内データ管理テーブルに加え、メモリ及びメモリ内データ管理テーブル等を制御するコンピュータシステムを含むものであるが本明細書においては説明を省略した。
【図面の簡単な説明】
【００１８】
【図１】本発明によるメモリ制御方法の概要を説明するための図。
【図２】本実施形態によるメモリ管理方法による処理フローチャート。
【図３】本実施形態に使用されメモリ内データ管理テーブルを示す図。
【符号の説明】
【００１９】
１０：メモリ、１１：コレクタブルエラー、１２：スワップ。
【図１】
2007011839.tif 000003
【図２】
2007011839.tif 000004
【図３】
2007011839.tif 000005