(57)【要約】【課題】書き込みデータからキーを算出するというキー特定処理を行うことなく、イネーブルライト処理を効率よく実行することが可能なメモリ制御装置を実現する。【解決手段】最初に、メモリコントローラ１２は、特定の第１の値（例えばffh）を示すキーを指定するライトマスクコマンドをメモリデバイス１３に送信する処理と、書き込みデータに含まれる各無効バイト部の値をffhに置き換えた後に書き込みデータをメモリデバイス１３に送信する処理とを実行する。次に、メモリコントローラ１２は、特定の第２の値（例えば01h）を示すキーを指定するライトマスクコマンドをメモリデバイス１３に送信する処理と、書き込みデータの中で、値がffhの有効バイト部を除く他の各バイト部の値を、01hに置き換えた後に当該書き込みデータをメモリデバイス１３に送信する処理とを実行する。【選択図】      図４
2008033657.tif 000002
【特許請求の範囲】
【請求項１】
ライトマスクコマンドによって指定されるキーの値と書き込みデータ内の個々のバイト部の値とを比較することによって前記キーの値に一致するバイト部の書き込みを禁止するライトマスク機能を有するメモリデバイスを制御するメモリ制御装置であって、
特定の第１の値を有するキーを指定するライトマスクコマンドを前記メモリデバイスに送信する処理と、書き込みデータを構成する複数バイト部の中で書き込みを禁止すべき無効バイト部の値を前記特定の第１の値に置き換えた後に前記書き込みデータを前記メモリデバイスに送信する処理とを含む第１のライトマスク書き込みサイクルを実行する手段と、
特定の第２の値を有するキーを指定するライトマスクコマンドを前記メモリデバイスに送信する処理と、前記書き込みデータを構成する複数バイト部の中で、書き込みを行うべき有効バイト部であって且つ前記特定の第１の値を有する有効バイト部を除く他の各バイト部の値を前記特定の第２の値に置き換えた後に前記書き込みデータを前記メモリデバイスに送信する処理とを含む第２のライトマスク書き込みサイクルを実行する手段とを具備することを特徴とするメモリ制御装置。
【請求項２】
前記書き込みデータに前記特定の第１の値を有する有効バイト部が存在するか否かを判別し、前記特定の第１の値を有する有効バイト部が存在しない場合、前記第２のライトマスク書き込みサイクルの実行を省略する手段をさらに具備することを特徴とする請求項１記載のメモリ制御装置。
【請求項３】
前記メモリ制御装置は、バイトイネーブル信号線が定義されていないバスを介して前記メモリデバイスに接続されていることを特徴とする請求項１記載のメモリ制御装置。
【請求項４】
ライトマスクコマンドによって指定されるキーの値と書き込みデータ内の個々のバイト部の値とを比較することによって前記キーの値に一致するバイト部の書き込みを禁止するライトマスク機能を有するメモリデバイスを制御するメモリ制御装置であって、
特定の第１の値を有するキーを指定するライトマスクコマンドを前記メモリデバイスに送信する処理と、書き込みデータを構成する複数バイト部の中で書き込みを禁止すべき無効バイト部の値を前記特定の第１の値に置き換えた後に前記書き込みデータを前記メモリデバイスに送信する処理とを含む第１のライトマスク書き込みサイクルを実行する手段と、
前記書き込みデータに前記特定の第１の値を有する有効バイト部が存在するか否かを判別する手段と、
前記特定の第１の値を有する有効バイト部が存在する場合、特定の第２の値を有するキーを指定するライトマスクコマンドを前記メモリデバイスに送信する処理と、前記書き込みデータに含まれる、前記特定の第１の値を有する有効バイト部以外の他の各バイト部を前記特定の第２の値に置き換えた後に前記書き込みデータを前記メモリデバイスに送信する処理とを含む第２のライトマスク書き込みサイクルを実行する手段とを具備することを特徴とするメモリ制御装置。
【請求項５】
プロセッサと、
ライトマスクコマンドによって指定されるキーの値と書き込みデータ内の個々のバイト部の値とを比較することによって前記キーの値に一致するバイト部の書き込みを禁止するライトマスク機能を有するメモリデバイスと、
前記プロセッサからの要求に応じて前記メモリデバイスを制御するメモリ制御手段であって、特定の第１の値を有するキーを指定するライトマスクコマンドを前記メモリデバイスに送信する処理と、書き込みデータを構成する複数バイト部の中で書き込みを禁止すべき無効バイト部の値を前記特定の第１の値に置き換えた後に前記書き込みデータを前記メモリデバイスに送信する処理とを含む第１のライトマスク書き込みサイクルを実行する手段と、特定の第２の値を有するキーを指定するライトマスクコマンドを前記メモリデバイスに送信する処理と、前記書き込みデータを構成する複数バイト部の中で、書き込みを行うべき有効バイト部であって且つ前記特定の第１の値を有する有効バイト部を除く他の各バイト部の値を前記特定の第２の値に置き換えた後に前記書き込みデータを前記メモリデバイスに送信する処理とを含む第２のライトマスク書き込みサイクルを実行する手段とを含むメモリ制御手段とを具備することを特徴とする情報処理装置。
【請求項６】
前記書き込みデータに前記特定の第１の値を有する有効バイト部が存在するか否かを判別し、前記特定の第１の値を有する有効バイト部が存在しない場合、前記第２のライトマスク書き込みサイクルの実行を省略する手段をさらに具備することを特徴とする請求項５記載の情報処理装置。
【請求項７】
プロセッサと、
ライトマスクコマンドによって指定されるキーの値と書き込みデータ内の個々のバイト部の値とを比較することによって前記キーの値に一致するバイト部の書き込みを禁止するライトマスク機能を有するメモリデバイスと、
前記プロセッサからの要求に応じて前記メモリデバイスを制御するメモリ制御手段であって、特定の第１の値を有するキーを指定するライトマスクコマンドを前記メモリデバイスに送信する処理と、書き込みデータを構成する複数バイト部の中で書き込みを禁止すべき無効バイト部の値を前記特定の第１の値に置き換えた後に前記書き込みデータを前記メモリデバイスに送信する処理とを含む第１のライトマスク書き込みサイクルを実行する手段と、前記書き込みデータに前記特定の第１の値を有する有効バイト部が存在するか否かを判別する手段と、前記特定の第１の値を有する有効バイト部が存在する場合、特定の第２の値を有するキーを指定するライトマスクコマンドを前記メモリデバイスに送信する処理と、前記書き込みデータに含まれる、前記特定の第１の値を有する有効バイト部以外の他の各バイト部を前記特定の第２の値に置き換えた後に前記書き込みデータを前記メモリデバイスに送信する処理とを含む第２のライトマスク書き込みサイクルを実行する手段とを含むメモリ制御手段とを具備することを特徴とする情報処理装置。
【請求項８】
ライトマスクコマンドによって指定されるキーの値と書き込みデータ内の個々のバイト部の値とを比較することによって前記キーの値に一致するバイト部の書き込みを禁止するライトマスク機能を有するメモリデバイスを制御するメモリ制御方法であって、
特定の第１の値を有するキーを指定するライトマスクコマンドを前記メモリデバイスに送信する処理と、書き込みデータを構成する複数バイト部の中で書き込みを禁止すべき無効バイト部の値を前記特定の第１の値に置き換えた後に前記書き込みデータを前記メモリデバイスに送信する処理とを含む第１のライトマスク書き込みサイクルを実行するステップと、
特定の第２の値を有するキーを指定するライトマスクコマンドを前記メモリデバイスに送信する処理と、前記書き込みデータを構成する複数バイト部の中で、書き込みを行うべき有効バイト部であって且つ前記特定の第１の値を有する有効バイト部を除く他の各バイト部の値を前記特定の第２の値に置き換えた後に前記書き込みデータを前記メモリデバイスに送信する処理とを含む第２のライトマスク書き込みサイクルを実行するステップとを具備することを特徴とするメモリ制御方法。
【請求項９】
前記書き込みデータに前記特定の第１の値を有する有効バイト部が存在するか否かを判別し、前記特定の第１の値を有する有効バイト部が存在しない場合、前記第２のライトマスク書き込みサイクルの実行を省略するステップをさらに具備することを特徴とする請求項８記載のメモリ制御方法。
【請求項１０】
ライトマスクコマンドによって指定されるキーの値と書き込みデータ内の個々のバイト部の値とを比較することによって前記キーの値に一致するバイト部の書き込みを禁止するライトマスク機能を有するメモリデバイスを制御するメモリ制御方法であって、
特定の第１の値を有するキーを指定するライトマスクコマンドを前記メモリデバイスに送信する処理と、書き込みデータを構成する複数バイト部の中で書き込みを禁止すべき無効バイト部の値を前記特定の第１の値に置き換えた後に前記書き込みデータを前記メモリデバイスに送信する処理とを含む第１のライトマスク書き込みサイクルを実行するステップと、
前記書き込みデータに前記特定の第１の値を有する有効バイト部が存在するか否かを判別するステップと、
前記特定の第１の値を有する有効バイト部が存在する場合、特定の第２の値を有するキーを指定するライトマスクコマンドを前記メモリデバイスに送信する処理と、前記書き込みデータに含まれる、前記特定の第１の値を有する有効バイト部以外の他の各バイト部を前記特定の第２の値に置き換えた後に前記書き込みデータを前記メモリデバイスに送信する処理とを含む第２のライトマスク書き込みサイクルを実行するステップとを具備することを特徴とするメモリ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はライトマスク書き込み処理を実行するためのメモリ制御装置および同メモリ制御装置を含む情報処理装置並びにメモリ制御方法に関する。
【背景技術】
【０００２】
従来、バイトイネーブル定義の無いバスを介してメモリを制御する場合には、例えば、次のような方法で、特定のバイト部のみを書き換えるためのイネーブルライトが実行されている。
【０００３】
(1)リードモディファイライト
リードモディファイライトは、一度処理ビット幅のデータをすべてメモリデバイスからリードしてからライトすべきバイト部のみの値を書き換え、そして再びライトを行う方法である。この方法では一度データをリードする必要があり、データバスが半二重の場合方向切り替えのためのターンアラウンド時間が必要になり、アクセスタイムが大きくなる。
【０００４】
(2)ライトマスク
ライトマスクは、ライトマスクキーと呼ばれるキーを含むライトマスクコマンドを用いてイネーブルライトを実行する方法である。メモリデバイス内のライト回路には、バイト毎に比較器が付いており、キーの値と書き込みデータ内の個々のバイト部の値とが比較され、キーの値に一致するバイト部の書き込みが禁止される。リードモディファイライトを用いた場合よりも、効率よくイネーブルライトを実行することができる。非特許文献１には、上述のライトマスクをサポートするメモリが開示されている。
【非特許文献１】“512Mbit XDRTMDRAM(C-die) 4M x 16(/8/4/2)bit x 8s Bank”、［online］、［平成１８年７月２１日検索］、インターネット＜URL：http://WWW.samsung.com/Products/Semiconductor/XDR_RDRAM/XDRDRAM/Component/512Mbit/K4Y50044UC/ds_k4y50xx4uc_rev03.pdf＞
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、上述のライトマスクを使用してイネーブルライトを実行する場合においては、コントローラ側では、書き込みデータ内のどの有効バイト部とも一致しない値をキーとして使用するために、キーの値を書き込みデータから算出するというキー特定処理を行うことが必要となる。
【０００６】
例えば、キーが８ビットから構成される場合においては、キーによって表現可能な値は２５６パターンあるので、キー特定処理では、各有効バイト部のライトデータをデコードして有効バイト部のライトデータ毎にパターンを調べ、２５６パターンの中からどの有効バイト部においても使用されていないパターンを検出することが必要となる。したがって、キー特定処理のためにコントローラ内の回路が肥大化するという問題が発生する。
【０００７】
本発明は上述の事情を考慮してなされたものであり、書き込みデータからキーを算出するというキー特定処理を行うことなく、イネーブルライト処理を効率よく実行することが可能なメモリ制御装置および情報処理装置並びにメモリ制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述の課題を解決するため、本発明は、ライトマスクコマンドによって指定されるキーの値と書き込みデータ内の個々のバイト部の値とを比較することによって前記キーの値に一致するバイト部の書き込みを禁止するライトマスク機能を有するメモリデバイスを制御するメモリ制御装置であって、特定の第１の値を有するキーを指定するライトマスクコマンドを前記メモリデバイスに送信する処理と、書き込みデータを構成する複数バイト部の中で書き込みを禁止すべき無効バイト部の値を前記特定の第１の値に置き換えた後に前記書き込みデータを前記メモリデバイスに送信する処理とを含む第１のライトマスク書き込みサイクルを実行する手段と、特定の第２の値を有するキーを指定するライトマスクコマンドを前記メモリデバイスに送信する処理と、前記書き込みデータを構成する複数バイト部の中で、書き込みを行うべき有効バイト部であって且つ前記特定の第１の値を有する有効バイト部を除く他の各バイト部の値を前記特定の第２の値に置き換えた後に前記書き込みデータを前記メモリデバイスに送信する処理とを含む第２のライトマスク書き込みサイクルを実行する手段とを具備することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、書き込みデータからキーを算出するというキー特定処理を行うことなく、イネーブルライト処理を効率よく実行することが可能となる。
【発明を実施するための最良の形態】
【００１０】
以下、図面を参照して、本発明の実施形態を説明する。  
図１には、本発明の一実施形態に係るメモリ制御装置を用いた情報処理装置の構成例が示されている。この情報処理装置は、例えば、パーソナルコンピュータ、ワークステーション、サーバコンピュータのような各種コンピュータ、またはＡＶ機器のような電子機器に組み込まれる組み込みシステムとして実現されており、プロセッサ１１、メモリコントローラ１２、メモリデバイス１３、および図示しない他の各種Ｉ／Ｏデバイス等から構成されている。
【００１１】
プロセッサ１１は情報処理装置の動作を制御する中央処理装置（ＣＰＵ）であり、主記憶として機能するメモリデバイス１３を用いて各種データ処理を実行する。メモリコントローラ１２は本実施形態に係るメモリ制御装置であり、プロセッサ１１からの要求に応じてメモリデバイス１３を制御して、メモリデバイス１３からデータを読み出すためのリードアクセス、およびメモリデバイス１３にデータを書き込むためのライトアクセス等を実行する。
【００１２】
メモリコントローラ１２は、バイトイネーブル信号線が定義されていない、シリアルバスのようなバスを介してメモリデバイス１３に接続されている。図１においては、ＲＱバスと称されるコマンド送信用のバスと、ＤＱバスと称されるデータ送受信用のバスとを介して、メモリコントローラ１２とメモリデバイス１３との間が接続されている場合が示されている。これらＲＱバスおよびＤＱバスの各々はシリアルバスである。ＲＱバスおよびＤＱバスの各々は、複数組例えば１６組の差動信号線ペアから構成されている。
【００１３】
メモリデバイス１３はライトマスクコマンドをサポートするメモリデバイスであり、ライトマスクコマンドによって指定されるキーの値と書き込みデータ内の個々のバイト部の値とを比較することによって前記キーの値に一致するバイト部の書き込みを禁止するというライトマスク機能を有している。
【００１４】
特定のバイト部のみを書き換えるためのイネーブルライトを実行する場合、メモリコントローラ１２は、連続する２つのライトマスクコマンドを利用して、２回のライトマスク書き込みサイクルを連続して実行するように構成されている。この場合、各ライトマスク書き込みサイクルにおいては、書き込みデータから算出したキーではなく、予め決められた特定値を示すキーが用いられる。以下では、書き込みデータが例えば３２バイト長のブロックデータから構成され、キーが例えば８ビットから構成されている場合を想定する。
【００１５】
１回目のライトマスク書き込みサイクルにおいては、メモリコントローラ１２は、特定の第１の値（例えばffh）を示すキーを指定するライトマスクコマンドをＲＱバスを介してメモリデバイス１３に送信する処理と、３２バイトから構成される書き込みデータに含まれる各無効バイト部の値を特定の第１の値（例えばffh）に置き換えた後に当該３２バイトの書き込みデータをバースト転送によってＤＱバスを介してメモリデバイス１３に送信する処理とを実行する。メモリデバイス１３においては、ffhの値を有する各バイト部の書き込みは禁止され、他の値を有するバイト部の書き込みのみが実行される。各バイト部の書き込み位置は、ライトマスクコマンドに含まれるアドレスによって指定される。
【００１６】
１回目のライトマスク書き込みサイクルでは、無効バイト部のみならず、特定の第１の値を有する有効バイト部の書き込みもマスクされてしまう。このため、特定の第１の値を有する有効バイト部の書き込みを実行するために、２回目のライトマスク書き込みサイクルが実行される。
【００１７】
２回目のライトマスク書き込みサイクルにおいては、メモリコントローラ１２は、上述の第１の値とは異なる特定の第２の値（例えば01h）を示すキーを指定するライトマスクコマンドをＲＱバスを介してメモリデバイス１３に送信する処理と、書き込みデータを構成する３２バイトの中で、特定の第１の値を有する有効バイト部を除く他の各バイト部の値を、特定の第１の値（例えば01h）に置き換えた後に当該３２バイトの書き込みデータをバースト転送によってＤＱバスを介してメモリデバイス１３に送信する処理とを実行する。この２回目のライトマスク書き込みサイクルによって、１回目のライトマスク書き込みサイクルにおいてマスクされた特定の第１の値を有する有効バイト部の書き込みを実行することができる。
【００１８】
このように、本実施形態では、書き込みデータから算出したキーではなく、予め決められた特定値を示すキーを用いているので、回路規模の増大を招くキー特定処理を行うことなく、マスクライトコマンドを利用したイネーブルライトを実行することができる。
【００１９】
なお、２回目のライトマスク書き込みサイクルは、書き込みデータ内に特定の第１の値を有する有効バイト部が存在する場合にのみ実行すれば良く、特定の第１の値を有する有効バイト部が存在しない場合には、２回目のライトマスク書き込みサイクルの実行を省略することができる。
【００２０】
図２は、本実施形態に係るメモリ制御装置を用いた情報処理装置の他の構成例が示されている。
【００２１】
図２においては、メモリコントローラ１２はプロセッサ１１内にメモリインタフェースとして内蔵されており、プロセッサ１１内のコアからの要求に応じてメモリデバイス１３をアクセス制御する。他の点は図１と同じである。
【００２２】
図３には、メモリデバイス１３内に設けられた書き込み回路部の構成例が示されている。
【００２３】
上述のライトマスク機能を実行するために、メモリデバイス１３内には、１バイト分のメモリセル群単位で、比較回路２１とＡＮＤゲート回路２２とが設けられている。
【００２４】
各比較回路２１は、８ビットのキーの値と対応するバイト部の８ビットのデータとを比較する。不一致の場合にのみ、ライトイネーブル信号が対応するメモリセル群に送られる。これにより、キーの値に一致するデータを含むバイト部の書き込みは禁止され、一致しないバイト部の書き込みのみが実行される。
【００２５】
図４は、本実施形態のイネーブルライト処理のタイミングチャートである。
【００２６】
最初に、メモリコントローラ１２は、一回目のライトマスクコマンド（Write Mask）を発行する。このライトマスクコマンド（Write Mask）には、例えば、値がffhの８ビットのキーが含まれている。このライトマスクコマンドは、当該ライトマスクコマンドに含まれるキーの値に一致するバイト部以外の書き込みを指示するコマンドである。ライトマスクコマンドには、書き込みデータの書き込み位置を指定するアドレスデータも含まれている。
【００２７】
この後、メモリコントローラ１２は、３２バイトの書き込みデータ（WData）を送信する。この３２バイトの書き込みデータにおいては、書き込みを禁止すべき無効バイト部の値はffhに置き換えられている。メモリデバイス１３においては、３２バイトの書き込みデータ内の個々のバイト部毎にffhとの比較が行われ、ffh以外の値を持つバイト部のみの書き込みが実行される。
【００２８】
この後、メモリコントローラ１２は、２回目のライトマスクコマンド（Write Mask）を発行する。このライトマスクコマンド（Write Mask）には、例えば、値が01hの８ビットのキーが含まれている。そして、メモリコントローラ１２は、３２バイトの書き込みデータ（WData）を送信する。この３２バイトの書き込みデータにおいては、値がffhの有効バイト部以外の他の各バイト部の値は01hに置き換えられている。メモリデバイス１３においては、３２バイトの書き込みデータ内の個々のバイト部毎にffhとの比較が行われ、01h以外の値を持つバイト部、つまりffhのバイト部の書き込みが実行される。
【００２９】
２回目のライトマスク書き込みサイクルつまり２回目のライトマスクコマンド（Write Mask）の発行およびそれに後続する書き込みデータの送信は、書き込みデータにffhの値を有する有効バイト部が存在することが検出された場合のみ実行される。書き込みデータにffhの値を有する有効バイト部が存在しない場合には２回目のライトマスク書き込みサイクルは実行されない。なお、書き込みデータにffhの値を有する有効バイト部が存在しない場合であっても、例えば、全てのバイト部が01hに置換された書き込みデータを用いて、２回目のライトマスク書き込みサイクルを実行することも可能である。
【００３０】
図５には、１回目のライトマスク書き込みサイクルで用いられるキー値と書き込みデータの例が示されている。
【００３１】
書き込みデータ(WData)は１バイト目のバイト部Ｂ１から３２バイト目のバイト部Ｂ３２までの３２バイト長のブロックデータから構成されている。今、バイト部Ｂ１０が書き込みを禁止すべき無効バイト部であり、他の各バイト部は書き込みを行うべき有効バイト部である場合を想定する。
【００３２】
書き込みデータの各バイト部の有効／無効は、プロセッサ１１によって指定される。無効バイト部であるバイト部Ｂ１０の値（８ビットのデータ）は、メモリコントローラ１２によってffhに置き換えられる。
【００３３】
もし、有効バイト部Ｂ２の値がffhであるならば、無効バイト部Ｂ１０の書き込みがマスクされるのみならず、有効バイト部Ｂ２の書き込みもマスクされることになる。
【００３４】
図６には、２回目のライトマスク書き込みサイクルで用いられるキー値と書き込みデータの例が示されている。値がffhである有効バイト部Ｂ２以外の他の各バイト部Ｂ１，Ｂ３〜Ｂ３２の値は、メモリコントローラ１２によって01hに置き換えられる。よって、有効バイト部Ｂ２の書き込みのみが実行され、他の各バイト部Ｂ１，Ｂ３〜Ｂ３２の書き込みはマスクされる。
【００３５】
次に、図７を参照して、メモリコントローラ１２の機能構成の例を説明する。
【００３６】
図７においては、プロセッサ１１からの書き込みデータがUWDATとして表記され、メモリコントローラ１２からメモリデバイス１３に送信される書き込みデータがWDATAとして表記されている。
【００３７】
メモリコントローラ１２は、第１サイクル実行部２１と、第２サイクル実行部２２と、判定部２３とを備えている。
【００３８】
第１サイクル実行部２１は、固定値ffhを示すキーを含むライトマスクコマンドを用いて、上述の１回目のライトマスク書き込みサイクル（第１のライトマスク書き込みサイクル）を実行する。この場合、書き込みデータUWDATに含まれる各無効バイト部の値はffhに置き換えられ、この置き換え後の書き込みデータUWDATが書き込みデータWDATAとしてメモリデバイス１３に送信される。
【００３９】
判定部２３は、書き込みデータUWDAT内に、値がffhの有効バイト部が存在するか否かを判定する。書き込みデータUWDAT内にffhの有効バイト部が存在することが判別された場合、第２サイクル実行部２２は、固定値01hを示すキーを含むライトマスクコマンドを用いて、上述の２回目のライトマスク書き込みサイクル（第２のライトマスク書き込みサイクル）を実行する。この場合、書き込みデータUWDATに含まれる、値がffhの有効バイト部以外の各バイト部の値は01hに置き換えられ、この置き換え後の書き込みデータUWDATが書き込みデータWDATAとしてメモリデバイス１３に送信される。
【００４０】
次に、図８および図９のタイミングチャートを参照して、本実施形態のイネーブルライト処理と従来のイネーブルライト処理との違いを説明する。
【００４１】
図８はリードモディファイライトのタイミングチャートを示している。上述したように、リードモディファイライトにおいては、リードサイクルを実行した後にそのリードデータの一部を書き換え、その後にライトサイクルを実行することが必要となり、さらにターンアラウンドのための待ち時間も必要となるので、図８に示すように、イネーブルライト処理が完了するまでに多くの時間を要する。
【００４２】
図９は従来のライトマスクのタイミングチャートを示している。従来のライトマスクでは、常に一回のライトサイクルのみでイネーブルライト処理を完了することができるのでイネーブルライト処理をリードモディファイライトよりも効率よく実行することができるものの、書き込みデータからキーを算出するというキー特定処理のための回路を設けることが必要となり、これによってメモリコントローラの回路規模の大幅な増大を招くことになる。
【００４３】
これに対し、本実施形態では、リードモディファイライトよりも高速にイネーブルライト処理を実行することができ、また従来のライトマスクとは異なりキー特定処理は不要であるので、回路規模の増大を招くことなく、ライトマスクコマンドを用いたイネーブルライト処理を実行することができる。
【００４４】
次に、図１０を参照して、メモリコントローラ１２内に設けられる具体的な回路構成の例について説明する。
【００４５】
メモリコントローラ１２は、イネーブルライト処理を実行するために、ライトデータ＃１出力回路３１、ライトデータ＃１出力回路３２、セレクタ（ＳＥＬ）３３、および３２ビットＮＡＮＤゲート３４等を備えている。
【００４６】
ライトデータ＃１出力回路３１は１回目のライトマスク書き込みサイクルで出力すべき書き込みデータを出力する回路であり、プロセッサ１１からのバイトイネーブル信号BE[31:0]に基づいて、３２バイトの書き込みデータUDATA[255:0]内の無効バイト部を検出し、その無効バイト部の値をffhに置換する。
【００４７】
ライトデータ＃２出力回路３２は、２回目のライトマスク書き込みサイクルで出力すべき書き込みデータを出力する回路である。ライトデータ＃２出力回路３２においては、図示のように、書き込みデータの各バイト部毎に、セレクタ（ＳＥＬ）４１と９ビットＮＡＮＤゲート４２とが設けられている。
【００４８】
各９ビットＮＡＮＤゲート４２は、対応するバイト部が有効（BE=1）で且つ対応するバイト部の値がffhである場合は、論理“０”の出力信号を出力し、それ以外の場合は論理“１”の出力信号を出力する。各セレクタ（ＳＥＬ）４１は、対応する９ビットＮＡＮＤゲート４２の出力信号が論理“０”である場合は、01hを選択し、対応する９ビットＮＡＮＤゲート４２の出力信号が論理“１”である場合は、書き込みデータUWDATA[255:0]内の対応するバイト部のデータを選択する。
【００４９】
セレクタ（ＳＥＬ）３３は、タイミング信号SecWriteに従って、１回目のライトマスク書き込みサイクルにおいては、ライトデータ＃１出力回路３１によって得られる書き込みデータを書き込みデータWDATA[255:0]として選択してメモリデバイス１３に送信し、２回目のライトマスク書き込みサイクルにおいては、ライトデータ＃２出力回路３２によって得られる書き込みデータMWDATA[255:0]を書き込みデータWDATA[255:0]として選択してメモリデバイス１３に送信する。
【００５０】
３２ビットＮＡＮＤゲート３４は、３２個の９ビットＮＡＮＤゲート４２のいずれか１つからの出力信号が“０”である場合、つまり書き込みデータWDATA[255:0]内にffhの有効バイト部が１つ以上含まれている場合に、２回目のライトマスク書き込みサイクルの実行が必要であることを示す論理“１”の信号(WriteFFhneed)を出力する。３２個の９ビットＮＡＮＤゲート４２の全ての出力信号が“１”である場合には、WriteFFhneed信号は論理“０”となり、２回目のライトマスク書き込みサイクルの実行は省略される。
【００５１】
次に、図１１のフローチャートを参照して、メモリコントローラ１２によって実行されるライト制御処理の手順を説明する。
【００５２】
このライト制御処理は、イネーブルライトが必要な場合、例えば、メモリコントローラ１２がプロセッサ１１から無効バイト部を含む書き込みデータを受信した場合等に実行される。書き込みデータが無効バイト部を含むか否かは、プロセッサ１１からのバイトイネーブル信号BE[31:0]によって判別することができる。
【００５３】
メモリコントローラ１２は、まず、ffhをキーとして含むライトマスクコマンドをＲＱバスを介してメモリデバイス１３に送信すると共に（ステップＳ１０１）、プロセッサ１１からの書き込みデータを構成する３２バイトの中で無効バイト部の値をffhに置き換え、その置き換えが実行された書き込みデータをＤＱバスを介してメモリデバイス１３に送信する（ステップＳ１０２）。
【００５４】
次いで、メモリコントローラ１２は、プロセッサ１１からの書き込みデータに、値がffhの有効バイト部が含まれているか否かを判別する（ステップＳ１０３）。
【００５５】
もし書き込みデータに値がffhの有効バイト部が含まれているならば（ステップＳ１０３のＮＯ）、メモリコントローラ１２は、ffhの有効バイト部の書き込みを実行するために、O1hをキーとして含むライトマスクコマンドをＲＱバスを介してメモリデバイス１３に送信すると共に（ステップＳ１０４）、プロセッサ１１からの書き込みデータを構成する３２バイトの中でffhの有効バイト部以外の各バイト部の値を01hに置き換え、その置き換えが実行された書き込みデータをＤＱバスを介してメモリデバイス１３に送信する（ステップＳ１０５）。
【００５６】
一方、もし書き込みデータに値がffhの有効バイト部が含まれていないならば（ステップＳ１０３のＮＯ）、ステップＳ１０４，Ｓ１０５の実行は省略され、この時点でイネーブルライトのためのライト制御処理は終了する。
【００５７】
以上のように、本実施形態によれば、２回の連続するライトマスク書き込みサイクルを利用してイネーブルライトが実行されるので、各ライトマスク書き込みサイクルでは、書き込みデータから算出された値ではなく、予め決められた特定の値をキーとして使用することが可能となり、キー特定処理が必要な従来のライトマスク方式に比べ、回路規模を大幅に削減することが可能となる。
【００５８】
また、２回目のライトマスク書き込みサイクルの実行を省略するための機能が設けられているので、１回目のライトマスク書き込みサイクルで使用されるキーと同一の値を有するバイト部が書き込みデータに存在しない場合には、１回のライトマスク書き込みサイクルのみでイネーブルライト処理を完了することができる。
【００５９】
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００６０】
【図１】本発明の一実施形態に係る情報処理装置の構成例を示すブロック図。
【図２】同実施形態の情報処理装置の他の構成例を示すブロック図。
【図３】同実施形態の情報処理装置で用いられるメモリデバイス内の書き込み回路の例を示す回路図。
【図４】同実施形態の情報処理装置に設けられたメモリ制御装置によって実行されるイネーブルライト処理を示すタイミングチャート。
【図５】同実施形態の情報処理装置に設けられたメモリ制御装置によって実行される１回目のライトサイクルを説明するための図。
【図６】同実施形態の情報処理装置に設けられたメモリ制御装置によって実行される２回目のライトサイクルを説明するための図。
【図７】同実施形態の情報処理装置に設けられたメモリ制御装置の機能構成を説明するためのブロック図。
【図８】通常のリードモディファイライト処理を示すタイミングチャート。
【図９】通常のマスクライト処理を示すタイミングチャート。
【図１０】同実施形態の情報処理装置に設けられたメモリ制御装置の構成例を示す回路図。
【図１１】同実施形態の情報処理装置に設けられたメモリ制御装置によって実行されるライト制御処理の手順を示すフローチャート。
【符号の説明】
【００６１】
１１…プロセッサ、１２…メモリコントローラ、１３…メモリデバイス、２１…第１サイクル実行部、２２…第２サイクル実行部、２３…判定部、３１…ライトデータ＃１出力回路、３２…ライトデータ＃２出力回路、３３…セレクタ、３４…３２ｂｉｔＮＡＮＤゲート。
【図１】
2008033657.tif 000003
【図２】
2008033657.tif 000004
【図３】
2008033657.tif 000005
【図４】
2008033657.tif 000006
【図５】
2008033657.tif 000007
【図６】
2008033657.tif 000008
【図７】
2008033657.tif 000009
【図８】
2008033657.tif 000010
【図９】
2008033657.tif 000011
【図１０】
2008033657.tif 000012
【図１１】
2008033657.tif 000013