(57)【要約】【課題】メモリへのライト処理の抜けを回避することができるメモリ制御装置、情報処理装置およびメモリ制御方法の提供を図る。【解決手段】演算装置１からライトコマンドＣｍｄおよびライトデータＷｄを受け取って、メモリ２に対する書き込みを制御するメモリアクセス制御回路３と、前記ライトコマンドおよび前記ライトデータに基づいて、前記メモリに対する書き込みを複数回行うように制御するライト回数制御回路４と、を有する。【選択図】図３
2018156188.tif 000002
【特許請求の範囲】
【請求項１】
演算装置からライトコマンドおよびライトデータを受け取って、メモリに対する書き込みを制御するメモリアクセス制御回路と、
前記ライトコマンドおよび前記ライトデータに基づいて、前記メモリに対する書き込みを複数回行うように制御するライト回数制御回路と、を有する、
ことを特徴とするメモリ制御装置。
【請求項２】
前記ライト回数制御回路は、
前記メモリに対する書き込み回数を設定するライト回数設定回路を含み、
１回の前記ライトコマンドに対して、前記ライト回数設定回路に設定された回数だけ、前記メモリに対する書き込み処理を繰り返し行う、
ことを特徴とする請求項１に記載のメモリ制御装置。
【請求項３】
前記ライト回数設定回路は、
ＢＩＯＳによる初期設定に基づいて、前記メモリに対する書き込み回数を設定するレジスタと、
前記メモリに対する書き込み回数をカウントするカウンタと、
前記レジスタの出力と前記カウンタの出力を比較する比較器と、を含み、
前記メモリアクセス制御回路は、前記比較器の出力に基づいて次の処理を実行する、
ことを特徴とする請求項２に記載のメモリ制御装置。
【請求項４】
前記ライト回数制御回路は、
前記メモリに書き込むための書き込みデータと、複数回書き込みを行った前記メモリから読み出した読み出しデータを比較し、前記演算装置に対して一致信号を出力する一致判定回路を含む、
ことを特徴とする請求項２または請求項３に記載のメモリ制御装置。
【請求項５】
前記ライト回数制御回路は、
前記メモリに対する複数回の書き込みにおける最初の書き込み処理に基づいて、アクノリッジを前記演算装置に返すか、或いは、
前記メモリに対する複数回の書き込みにおける最後の書き込み処理に基づいて、前記アクノリッジを前記演算装置に返すかを選択する、
ことを特徴とする請求項１乃至請求項４のいずれか１項に記載のメモリ制御装置。
【請求項６】
前記ライト回数制御回路は、
前記ライトデータを複数の部分ライトデータに分割し、分割された複数の前記部分ライトデータに基づいて、前記メモリに対する複数回の書き込みを行うように制御する分割書き込み制御回路を含む、
ことを特徴とする請求項１乃至請求項５のいずれか１項に記載のメモリ制御装置。
【請求項７】
前記メモリアクセス制御回路は、
前記ライトコマンドを格納するコマンドキューと、
前記ライトデータを格納するライトデータキューと、
前記コマンドキューのバリッドフラグを格納するバリッドキューと、
前記コマンドキュー，前記ライトデータキューおよび前記バリッドキューの先頭を示すトップオブキューと、
前記メモリから読み出されたデータを格納するリードデータキューと、を含む、
ことを特徴とする請求項１乃至請求項６のいずれか１項に記載のメモリ制御装置。
【請求項８】
前記ライト回数制御回路は、
予め設定された所定のコマンドに対して、前記メモリに対して複数回書き込みを行うように制御する対象コマンド設定回路を含む、
ことを特徴とする請求項１乃至請求項７のいずれか１項に記載のメモリ制御装置。
【請求項９】
前記所定のコマンドは、リードモディファイライトコマンドであり、
前記メモリは、ハイブリッドメモリキューブ等の積層化されたメモリである、
ことを特徴とする請求項８に記載のメモリ制御装置。
【請求項１０】
請求項１乃至請求項９のいずれか１項に記載のメモリ制御装置と、
前記演算装置と、
前記メモリと、を有する、
ことを特徴とする情報処理装置。
【請求項１１】
演算装置からライトコマンドおよびライトデータを受け取って、メモリに対する書き込みを制御するメモリ制御方法であって、
前記ライトコマンドおよび前記ライトデータに基づいて、前記メモリに対する書き込みを複数回行う、
ことを特徴とするメモリ制御方法。
【請求項１２】
前記メモリに対する書き込み回数は、ＢＩＯＳによる初期設定に基づいて設定される、
ことを特徴とする請求項１１に記載のメモリ制御方法。
【請求項１３】
前記演算装置に対して、
前記メモリに対する複数回の書き込みにおける最初の書き込み処理に基づいてアクノリッジを返すか、或いは、
前記メモリに対する複数回の書き込みにおける最後の書き込み処理に基づいて前記アクノリッジを返すかを選択可能になっている、
ことを特徴とする請求項１１または請求項１２に記載のメモリ制御方法。
【請求項１４】
前記ライトデータを複数の部分ライトデータに分割し、分割された複数の前記部分ライトデータに基づいて、前記メモリに対する複数回の書き込みを行う、
ことを特徴とする請求項１１乃至請求項１３のいずれか１項に記載のメモリ制御方法。
【請求項１５】
前記メモリに対する複数回の書き込み処理は、評価時に行い、実際の使用時には行わない、
ことを特徴とする請求項１１乃至請求項１４のいずれか１項に記載のメモリ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この出願で言及する実施例は、メモリ制御装置、情報処理装置およびメモリ制御方法に関する。
【背景技術】
【０００２】
近年、システムの開発計画時に想定したメモリトレンドに基づいて製品開発を行う場合、実際にシステムの詳細設計する時には、未だ採用するメモリの仕様が確定せず、特定のケースや特定のタイミングでのメモリ動作が分からないといったリスクがある。
【０００３】
具体的に、最近のＨＭＣ(Hybrid Memory Cube)などでは、メモリチップとメモリインタフェース変換部を統合したメモリが開発されているが、例えば、メモリインタフェース変換部は、複雑な論理回路で構成されるため、仕様の確定が遅延することがある。そのため、特定のケースや特定のタイミングにおけるメモリの動作が分からず、或いは、設計時には気づかなくても、製造後の評価段階で仕様が不明確な部分が発覚することもある。
【０００４】
さらに、例えば、メモリの開発遅延により、メモリメーカーでの評価が十分とはいえない場合もある。例えば、ＨＭＣなどのメモリチップを積層化して高密度実装するメモリでは、積層化によるクロストークノイズの発生といった新たな障害要因が内在するといった虞もある。
【０００５】
そのような場合に備え、例えば、メモリ制御装置に対して、メモリにおける仕様の不明確部分や出荷前に取り除かれていない障害等に関する様々なリスク回避機能を設け、実際のメモリの挙動に追従できるようにしておくことが求められている。
【０００６】
ところで、従来、演算装置(例えば、ＭＰＵ(Micro Processing Unit))からのライトコマンド(書き込み命令)およびライトデータ(書き込みデータ)を受け取って、メモリに対する書き込みを制御するメモリ制御装置としては、様々なものが提案されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平１０−１４９３１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上述したように、例えば、ＨＭＣ等のメモリにおいて、メモリインタフェース変換部の仕様、メモリチップの積層化によるクロストークノイズ、或いは、タイミング問題といった様々な要因により、メモリに対するライト処理が確実に行えない場合が生じ得る。
【０００９】
例えば、リードモディファイライトコマンドは、メモリからデータをリードし、そのデータの一部を置き換えて、再びメモリにライトするためのコマンドであるが、そのリードモディファイライト処理を実行する場合に問題が生じる虞がある。すなわち、リードモディファイライト処理における仕様が不明確、或いは、メモリチップ内，メモリインタフェース変換部またはメモリアクセス制御回路側に起因して、特定のタイミングで置き換える(メモリに書き戻す)データが抜けるといった問題があった。
【００１０】
このようなメモリに対するライトデータの抜けの問題は、ＨＭＣ等のメモリ、或いは、リードモディファイライトコマンドの実行時に限定されるものではなく、様々なメモリに対するデータライト時にも生じる虞がある。
【００１１】
ところで、従来、ライト処理自体の再実行を行うことはあるが、その場合、演算装置で実現するための特別な回路を設け、或いは、ソフトに処理を追加することになる。また、メモリに対して正しくライトされているかどうかは、例えば、ソフトにより設定されたチェックポイントまでに、ライトしたデータがリードされたときにデータ異常として検出された場合のみ確認可能である。すなわち、メモリにライトしたデータを、直ぐにリードするとは限らないため、ライトが正しく行われなかった場合、いつ、どのライトデータが異常だったのか調べることは、再現性が悪い場合は特に困難であった。
【課題を解決するための手段】
【００１２】
一実施形態によれば、演算装置からライトコマンドおよびライトデータを受け取って、メモリに対する書き込みを制御するメモリアクセス制御回路と、ライト回数制御回路と、を有するメモリ制御装置が提供される。
【００１３】
前記ライト回数制御回路は、前記ライトコマンドおよび前記ライトデータに基づいて、前記メモリに対する書き込みを複数回行うように制御する。
【発明の効果】
【００１４】
開示のメモリ制御装置、情報処理装置およびメモリ制御方法は、メモリへのライト処理の抜けを回避することができるという効果を奏する。
【図面の簡単な説明】
【００１５】
【図１】図１は、情報処理装置の一例を模式的に示すブロック図である。
【図２】図２は、図１に示す情報処理装置におけるメモリ制御装置の動作の一例を説明するための図である。
【図３】図３は、情報処理装置の第１実施例を模式的に示すブロック図である。
【図４】図４は、図３に示すメモリ制御装置の動作の一例を説明するための図である。
【図５】図５は、情報処理装置の第２実施例を模式的に示すブロック図である。
【図６】図６は、図５に示すメモリ制御装置の動作の一例を説明するための図である。
【図７】図７は、情報処理装置の第３実施例を模式的に示すブロック図である。
【図８】図８は、図７に示すメモリ制御装置の動作の一例を説明するための図である。
【図９】図９は、情報処理装置の第４実施例を模式的に示すブロック図である。
【図１０】図１０は、図９に示すメモリ制御装置の動作の一例を説明するための図である。
【図１１】図１１は、情報処理装置の第５実施例を模式的に示すブロック図である。
【発明を実施するための形態】
【００１６】
まず、メモリ制御装置、情報処理装置およびメモリ制御方法の実施例を詳述する前に、メモリ制御装置の一例およびその課題を、図１および図２を参照して説明する。図１は、情報処理装置の一例を模式的に示すブロック図であり、図２は、図１に示す情報処理装置におけるメモリ制御装置の動作の一例を説明するための図である。
【００１７】
図１に示されるように、情報処理装置は、演算装置(ＭＰＵ)１，メモリ２およびメモリ制御装置５０を含む。ここで、情報処理装置は、他に様々な機能を実現するための内部回路を含む。
【００１８】
メモリ制御装置５０は、例えば、演算装置１からのライトコマンド(書き込み命令)Ｃｍｄおよびライトデータ(書き込みデータ)Ｗｄを受け取って、メモリ２に対する書き込みを制御する。ここで、メモリ制御装置５０は、演算装置１からメモリ２に対する書き込み処理だけでなく、メモリ２からの読み出し処理等も行うが、本明細書では、主として、ライト処理およびリードモディファイライト処理に関して説明する。
【００１９】
メモリ制御装置５０は、演算装置１からのコマンドＣｍｄを格納するコマンドキュー(Ｃｍｄ−Ｑ)５４、および、コマンドの有効または無効を示すバリッド信号を格納するバリッドキュー(Ｖａｌｉｄ−Ｑ)５３を含む。また、メモリ制御装置５０は、コマンドキュー５４に格納されたコマンドを選択するコマンド用マルチプレクサ５４ａ、および、バリッドキュー５３に格納されたバリッド信号を選択するバリッド信号用マルチプレクサ５３ａを含む。
【００２０】
さらに、メモリ制御装置５０は、演算装置１からのライトデータＷｄを格納するライトデータキュー(Ｄａｔａ−Ｑ)５５、メモリ２から読み出したリードデータ(読み出しデータ)Ｒｄを格納するリードデータキュー５６、および、アンドゲート５７を含む。また、メモリ制御装置５０は、ライトデータキュー５５に格納されたライトデータを選択するライトデータ用マルチプレクサ５５ａ、および、各マルチプレクサ５３ａ，５４ａおよび５５ａにおける先頭のキューを指定するトップオブキュー(ＴＯＱ：Top Of Queue)５１を含む。
【００２１】
ここで、トップオブキュー５１は、例えば、＋１ずつインクリメント(５２)して、各マルチプレクサ５３ａ，５４ａおよび５５ａを制御する。なお、アンドゲート５７は、マルチプレクサ５３ａおよび５４ａの出力の論理積(アンド)を取ってアクノリッジ(応答信号)Ａｃｋを生成し、演算装置１に出力する。また、アクノリッジＡｃｋは、トップオブキュー５１にも入力される。なお、トップオブキュー５１は、アクノリッジＡｃｋを受け取って、例えば、インクリメントした信号により各マルチプレクサ５３ａ，５４ａおよび５５ａを制御して次の処理を実行する。
【００２２】
図１に示す情報処理装置において、演算装置１からメモリ２に対して書き込み処理(ライト処理)を行う場合、演算装置１からメモリ制御装置５０に対して、ライトコマンドＣｍｄおよびライトデータＷｄが出力される。ここで、図２に示されるように、それぞれキュー５４および５５に格納(セット)されたライトコマンド(Ｃｍｄ)およびライトデータ(Ｗｄ)は、トップオブキュー５１からの信号に基づいてマルチプレクサ５４ａおよび５５ａにより選択され、メモリ２に出力される。これにより、メモリ２に対するライト処理が実行され、また、演算装置１に対してアクノリッジ(応答信号)Ａｃｋが返され、メモリライト処理が完了する。
【００２３】
なお、前述したように、メモリ２の仕様やノイズ、或いは、タイミング問題といった様々な要因により、メモリ２に対するライト処理を確実に行えない場合が生じ得る。これは、特に、メモリ２がＨＭＣなどの場合、メモリチップの積層化によるクロストークノイズの発生やメモリインタフェース変換部によるタイミング問題が考えられ、また、リードモディファイライトコマンドの実行時に生じ易い。ただし、このようなメモリに対するライトデータの抜けの問題は、ＨＭＣ等のメモリ、或いは、リードモディファイライトコマンドの実行時に限定されず、様々なメモリに対するデータライト時にも生じる虞があるのは、前述した通りである。
【００２４】
以下、メモリ制御装置、情報処理装置およびメモリ制御方法の実施例を、添付図面を参照して詳述する。図３は、情報処理装置の第１実施例を模式的に示すブロック図であり、図４は、図３に示すメモリ制御装置の動作の一例を説明するための図である。
【００２５】
図３に示されるように、第１実施例の情報処理装置は、演算装置(ＭＰＵ)１、メモリ２、メモリ制御装置５およびＢＩＯＳ(Basic Input/Output System：初期設定部)６を含む。メモリ制御装置５は、例えば、演算装置１からのライトコマンドＣｍｄおよびライトデータＷｄを受け取って、メモリ２に対する書き込みを制御し、メモリアクセス制御回路３およびライト回数制御回路(書き込み回数制御回路)４を含む。なお、情報処理装置は、他に様々な機能を実現するための内部回路を含み、また、メモリ制御装置５は、演算装置１からメモリ２に対する書き込み処理だけでなく、メモリ２からの読み出し処理等も行うのはいうまでもない。
【００２６】
メモリ２は、ＨＭＣ等を示すもので、メモリインタフェース変換部２１、および、積層された複数のメモリチップ(ダイ：ＤＲＡＭチップ)で形成されたメモリチップ２２を含む。なお、前述したように、本実施例の適用は、ＨＭＣに限定されるものではなく、様々なメモリに対して幅広く適用することができるのはいうまでもない。これは、後述する他の実施例でも同様である。
【００２７】
メモリアクセス制御回路３は、演算装置１からのライトコマンドＣｍｄを格納するコマンドキュー(Ｃｍｄ−Ｑ)３４、および、コマンドの有効または無効を示すバリッド信号を格納するバリッドキュー(Ｖａｌｉｄ−Ｑ)３３を含む。また、メモリアクセス制御回路３は、コマンドキュー３４に格納されたコマンドを選択するコマンド用マルチプレクサ３４ａ、および、バリッドキュー３３に格納されたバリッド信号を選択するバリッド信号用マルチプレクサ３３ａを含む。
【００２８】
さらに、メモリアクセス制御回路３は、演算装置１からのライトデータＷｄを格納するライトデータキュー(Ｄａｔａ−Ｑ)３５、および、メモリ２から読み出したリードデータＲｄを格納するリードデータキュー３６を含む。また、メモリアクセス制御回路３は、ライトデータキュー３５に格納されたライトデータを選択するライトデータ用マルチプレクサ３５ａ、および、各マルチプレクサ３３ａ，３４ａおよび３５ａにおける先頭のキューを指定するトップオブキュー(ＴＯＱ：Top Of Queue)３１を含む。ここで、トップオブキュー３１は、例えば、＋１ずつインクリメント(３２)して、各マルチプレクサ３３ａ，３４ａおよび３５ａを制御する。
【００２９】
ライト回数制御回路４は、メモリ２に対する書き込み回数を設定するライト回数設定回路４１、および、アンドゲート４２を含む。ここで、アンドゲート４２は、図１に示すメモリ制御装置５０におけるアンドゲート５７に対応する。アンドゲート４２は、マルチプレクサ３３ａおよび３４ａの出力のアンドを取ってアクノリッジ(応答信号)Ａｃｋを生成し、演算装置１に出力する。
【００３０】
ライト回数設定回路４１は、例えば、ＢＩＯＳ６による初期設定に基づいて、１回のメモリライトコマンドに対して、メモリ２に対する複数回の書き込み回数(ライト回数)を設定する。ライト回数設定回路４１は、ＢＩＯＳ６により指定された書き込み回数を設定するレジスタ(ｎｕｍ)４１１、メモリ２に対する書き込み回数をカウントするカウンタ(ｃｎｔ)４１４、および、比較器４１３を含む。ここで、カウンタ４１４は、メモリ２に対する書き込み処理を実行する毎に、例えば、＋１ずつインクリメント(４１２)する。
【００３１】
比較器４１３は、カウンタ４１４の出力(カウント値)がレジスタ４１１に設定された値に一致したら、トップオブキュー３１に対して、指定された回数の書き込み処理を行ったことを示す終了信号Ｓｅを出力する。なお、トップオブキュー３１は、終了信号Ｓｅを受け取って、例えば、インクリメントした信号により各マルチプレクサ３３ａ，３４ａおよび３５ａを制御して次の処理を実行する。
【００３２】
図３に示す情報処理装置において、演算装置１からメモリ２に対して書き込み処理をｎ回行う場合、例えば、ＢＩＯＳ６から書き込み回数ｎがレジスタ４１１に設定(ｎｕｍ＝ｎ)される。すなわち、レジスタ４１１は、１回のメモリライトコマンドに対して何回メモリライトを行うかを設定するレジスタである。このレジスタ４１１は、例えば、出荷前の評価時に、評価者により設定されるもので、ＢＩＯＳ６等から設定することができる。ただし、書き込み回数ｎの設定は、ＢＩＯＳ６に限定されず、例えば、他の回路による初期設定として行うこともできる。
【００３３】
演算装置１は、メモリ制御装置５(メモリアクセス制御回路３)に対して、ライトコマンドＣｍｄおよびライトデータＷｄを出力する。それぞれキュー３４および３５に格納されたライトコマンドＣｍｄおよびライトデータＷｄは、トップオブキュー３１からの信号に基づいてマルチプレクサ３４ａおよび３５ａにより選択され、メモリ２に出力される。ここで、マルチプレクサ３４ａおよび３５ａの出力は、継続的に出力されてｎ回の書き込み処理に使用される。
【００３４】
トップオブキュー３１によりメモリライト指示が選択されると、例えば、メモリインタフェース変換部２１に対してメモリライト指示を行うことで、メモリチップ２２にライトが行われる。その場合、メモリインタフェース変換部２１に対してメモリライト指示される度に、カウンタ４１４のカウント値(ｃｎｔ)が＋１インクリメントされる。そして、カウント値がレジスタ４１１の設定値(ｎｕｍ)になるまでの回数分、メモリインタフェース変換部２１の内蔵メモリに対して同じメモリライト指示が行われる。
【００３５】
すなわち、図４に示されるように、１回目の書き込み処理(ライト実行１)が行われると、カウンタ４１４の出力は＋１インクリメントされて『１』になり、２回目の書き込み処理(ライト実行２)が行われると、さらに、＋１インクリメントされて『２』になる。そして、ｎ回目の書き込み処理(ライト実行ｎ)が行われると、カウンタ４１４の出力(ｃｎｔ＝ｎ)はレジスタ４１１に設定された値(ｎｕｍ＝ｎ)に一致し、比較器４１３は、終了信号Ｓｅを出力する。
【００３６】
ここで、図４に示されるように、第１実施例の情報処理装置(メモリ制御装置５)において、アンドゲート４２の出力であるアクノリッジＡｃｋは、１回目(最初)の書き込み処理が行われるタイミングで生成され、演算装置１およびメモリ２に出力される。
【００３７】
具体的に、例えば、ＢＩＯＳ６により初期設定としてｎｕｍ＝４が設定されていると、４回メモリライト指示が行われる。なお、メモリライト処理は、突き放し処理ができるため、演算装置１への応答(Ａｃｋ)は、１回目のメモリライト指示で行うことができる。
【００３８】
このように、第１実施例の情報処理装置(メモリ制御装置５)によれば、メモリへのライト処理の抜けを回避することができ、例えば、障害時の早期切り分けやシステムの信頼性を向上させることが可能になる。なお、上記障害時の早期切り分けやシステムの信頼性向上は、演算装置の回路変更やソフト処理を追加することなく、実現することができる。この効果は、第１実施例だけではなく、後述する第２〜第５実施例でも同様である。
【００３９】
図５は、情報処理装置の第２実施例を模式的に示すブロック図であり、図６は、図５に示すメモリ制御装置の動作の一例を説明するための図である。図５と、上述した図３の比較から明らかなように、第２実施例の情報処理装置では、アンドゲート４３が追加されている。そして、演算装置１に対するアクノリッジ(応答信号)Ａｃｋを、アンドゲート４２の出力ではなく、バリッド信号用マルチプレクサ３３ａの出力と比較器４１３の出力のアンドを取るアンドゲート４３の出力としている。
【００４０】
すなわち、図６に示されるように、アンドゲート４３の出力であるアクノリッジＡｃｋは、最初(１回目)の書き込み処理が行われるタイミングではなく、最後(ｎ回目)の書き込み処理が行われるタイミングで生成され、演算装置１に出力される。換言すると、演算装置１に対するアクノリッジＡｃｋは、メモリインタフェース変換部２１への最後のライト指示が行われた時に行うようになっている。なお、メモリライト処理は、突き放し処理ができるが、より安全な動作を行わせるために、演算装置１への応答(Ａｃｋ)を、ｎ回目(最後)のメモリライト指示で行うようになっている。
【００４１】
図７は、情報処理装置の第３実施例を模式的に示すブロック図であり、図８は、図７に示すメモリ制御装置の動作の一例を説明するための図である。図７と、上述した図５の比較から明らかなように、第３実施例の情報処理装置では、マルチプレクサ４４、アンドゲート４５、比較器４６およびタイミング調整部４７が追加されている。ここで、アンドゲート４５、比較器４６およびタイミング調整部４７は、一致判定回路を形成している。
【００４２】
マルチプレクサ４４は、メモリ２に対して、コマンドキュー３４(コマンド用マルチプレクサ３４ａ)からのライトコマンドとリードコマンド(Read Cmd)を選択して出力するもので、比較器４１３の出力により制御される。比較器４６は、メモリ２に対するライトデータＭwdとメモリ２からのリードデータＭrdを比較し、一致したら高レベル『Ｈ』を出力する。アンドゲート４５は、比較器４６の出力と、比較器４１３の出力を遅延するタイミング調整部４７の出力を受け取り、両方とも『Ｈ』の時に、『Ｈ』の一致信号(match)を演算装置１に出力する。
【００４３】
図８に示されるように、第３実施例の情報処理装置は、メモリ２に対するライトデータＭwdと、ｎ回書き込み処理を行ってメモリ２から読み出したリードデータＭrdを比較し、その比較結果(match)を演算装置１に出力するようになっている。これにより、演算装置１は、例えば、ライトが正しく行われなかった場合はその時点で異常を検知することが可能になる。
【００４４】
図９は、情報処理装置の第４実施例を模式的に示すブロック図であり、図１０は、図９に示すメモリ制御装置の動作の一例を説明するための図である。図９と、前述した図５の比較から明らかなように、第４実施例の情報処理装置は、分割書き込み制御回路４８が追加されている。この分割書き込み制御回路４８は、例えば、ライトデータＷｄを上位半分ライトデータＷｄ１および下位半分ライトデータＷｄ２に分割し、その分割されたライトデータＷｄ１，Ｗｄ２に基づいて、メモリ２に対する複数回の書き込みを行う。ここで、複数回書き込む回数ｎは偶数とされ、例えば、ライトデータＷｄを２つの部分ライトデータＷｄ１，Ｗｄ２に分割した場合、ライトデータＷｄとしては、ｎ／２回だけ書き込みが行われることになる。
【００４５】
分割書き込み制御回路４８は、最下位ビット検出部４８１、分割ライト処理部４８２、および、マルチプレクサ(選択回路)４８３，４８４を含む。最下位ビット検出部４８１は、カウンタ４１４の最下位ビットに基づいて、上位半分ライトデータＷｄ１および下位半分ライトデータＷｄ２を判定してマルチプレクサ４８３を制御する。分割ライト処理部４８２は、マルチプレクサ４８３の出力とアンドゲート４２の出力を切り替えるマルチプレクサ４８４を制御して、メモリ２に出力する。
【００４６】
図１０に示されるように、第４実施例の情報処理装置において、ライトデータＷｄ(例えば、３２バイト)は、上位１６バイトの上位半分ライトデータＷｄ１と、下位１６バイトの下位半分ライトデータＷｄ２に分割される。そして、メモリ２に対して、上位半分および下位半分のライトデータＷｄ１，Ｗｄ２が、交互に複数回書き込まれることになる。なお、ライトデータＷｄを分割する数は、２に限定されるものではなく、複数であってもよいのはもちろんである。
【００４７】
図１１は、情報処理装置の第５実施例を模式的に示すブロック図である。図１１と、前述した図５の比較から明らかなように、第５実施例の情報処理装置は、１回のライトコマンドに対して複数回の書き込み処理を実行するコマンドを設定する対象コマンド設定回路４９が追加されている。対象コマンド設定回路４９は、比較器４９１、アンドゲート４９２，４９３、オアゲート４９４および対象設定部４９５を含む。なお、比較器４９１の出力を受け取るアンドゲート４９３の一方の入力は、反転入力とされている。
【００４８】
対象設定部４９５は、例えば、ＢＩＯＳ６の初期設定により、上述した１回のライトコマンドで複数回の書き込み処理を行う対象となるコマンドが設定される。比較器４９１は、対象設定部４９５の出力とコマンド用マルチプレクサ３４ａの出力を比較し、処理を行う対象となるコマンドの場合は、ライト回数設定回路４１等を用いた複数回の書き込み処理を行うようにする。なお、対象設定部４９５の出力とコマンド用マルチプレクサ３４ａの出力が一致しない場合には、通常の書き込み処理(１回の書き込み処理)を行う。なお、図１１に示す対象コマンド設定回路４９は、単なる例であり、様々な変形および変更が可能なのはいうまでもない。
【００４９】
このように、第５実施例の情報処理装置(メモリ制御装置５)は、全てのコマンドに対してではなく、例えば、ＢＩＯＳによる初期設定として対象設定部４９５に予め設定された所定のコマンドに対してのみ処理を行うようになっている。例えば、１回のライトコマンドに対して複数回のメモリライトを行うことは、性能への影響があるため、通常は出荷前の評価時に、メモリライトが正しく行われない問題により評価が進まない場合等に限定して行うことができる。或いは、全てのライトコマンドに対して行うのではなく、最小限のコマンドに対してだけ行うことができる。これにより、性能への影響を最小限に留めつつ、正しくライト処理を行うことが可能になる。
【００５０】
上述したように、各実施例によれば、メモリ制御装置５に対してメモリ２に対する書き込み(ライト)指示が行われた場合、１回のライト指示に対して、メモリへの書き込み処理を複数回行うことができる。ここで、メモリへのライトは、同じアドレスおよびデータで何回実行しても問題になることはない。また、複数回同じライトを実行することで、仮に、何らかの理由でライトが抜けた場合においても、１回でもライトできていれば、ライト処理としては正常になる。
【００５１】
しかしながら、１回のライト指示に対して、メモリ２へは複数回ライトを行うことになるため、メモリライトは突き放し処理を行うとはいえ、データキューが枯渇した場合には、性能に影響が発生する。そのため、例えば、出荷前の評価時に、何らかの理由でライトが抜けたことにより評価が進まないことがあった場合等において、ＢＩＯＳ等からの初期設定により機能を有効にできるようにするのが好ましい。また、メモリ制御装置５(ライト回数制御回路４)に対して、ライトデータとリードデータの比較を行う手段を設けることにより、ライトデータが正常かどうかをメモリライト直後に判断することもでき、ライトデータが異常だった場合の調査が容易になる。さらに、評価完了後に問題が発覚して、出荷までに対処できないような問題が発生した場合には、例えば、最小限のコマンドに対してのみ上記対策を行うことも可能である。
【００５２】
以上、実施形態を説明したが、ここに記載したすべての例や条件は、発明および技術に適用する発明の概念の理解を助ける目的で記載されたものであり、特に記載された例や条件は発明の範囲を制限することを意図するものではない。また、明細書のそのような記載は、発明の利点および欠点を示すものでもない。発明の実施形態を詳細に記載したが、各種の変更、置き換え、変形が発明の精神および範囲を逸脱することなく行えることが理解されるべきである。
【符号の説明】
【００５３】
１    演算装置
２    メモリ
３    メモリアクセス制御回路
４    ライト回数制御回路
５，５０    メモリ制御装置
２１    メモリインタフェー変換部
２２    メモリチップ
４１    ライト回数設定回路
４８    分割書き込み制御回路
【図１】
2018156188.tif 000003
【図２】
2018156188.tif 000004
【図３】
2018156188.tif 000005
【図４】
2018156188.tif 000006
【図５】
2018156188.tif 000007
【図６】
2018156188.tif 000008
【図７】
2018156188.tif 000009
【図８】
2018156188.tif 000010
【図９】
2018156188.tif 000011
【図１０】
2018156188.tif 000012
【図１１】
2018156188.tif 000013