(57)【要約】  パーシャルライトが同じアドレスに連続して行われない場合に、制御回路２がリードリクエストに対応するリードデータを受信するまで、ライトデータはデータＲＡＭ３に保持され、マスクデータはマスクＲＡＭ４に保持される。これにより、制御回路２がメモリリードの待ち時間の間に他のリクエストを処理することができる。また、データ書き込みのスループットを向上することができる。
2012098655.tif 000002
【特許請求の範囲】
【請求項１】
要求装置からの要求がデータの部分書き込みの要求であり、且つ前記部分書き込みが同じアドレスに連続して行われるか否かを判定する判定手段と、
前記要求装置からの要求がデータの部分書き込みの要求であり、且つ前記部分書き込みが前回の部分書き込みと異なるアドレスに行われる場合に、データの読み出し要求を前記要求装置に送信する送信手段と、
前記データの読み出し要求に対応する読み出しデータを受信するまで、前記部分書き込みの要求に含まれる書き込みデータ及び当該書き込みデータの書き換え場所を示すデータを保持する保持手段と
を備えるデータ書き込み制御装置。
【請求項２】
前記読み出しデータを前記書き込みデータに統合した統合データ、前記読み出しデータ、及び前記要求装置からの書き込み要求の順番に従って、前記統合データ、前記読み出しデータ及び前記書き込み要求の処理順番を調停する調停手段を備える請求項１のデータ書き込み制御装置。
【請求項３】
前記要求装置からの要求がデータの部分書き込みの要求であり、且つ前記部分書き込みが同じアドレスに連続して行われる場合に、前記書き込みデータの書き換え場所を示すデータに基づいて、前記部分書き込みの要求に含まれる書き込みデータを、前記保持手段に保持されている前回の部分書き込みに対応する書き込みデータに統合する統合手段を備える請求項１又は２に記載のデータ書き込み制御装置。
【請求項４】
要求装置からの要求がデータの部分書き込みの要求であり、且つ前記部分書き込みが同じアドレスに連続して行われるか否かを判定し、
前記要求装置からの要求がデータの部分書き込みの要求であり、且つ前記部分書き込みが前回の部分書き込みと異なるアドレスに行われる場合に、データの読み出し要求を前記要求装置に送信し、
前記データの読み出し要求に対応する読み出しデータを受信するまで、前記部分書き込みの要求に含まれる書き込みデータ及び当該書き込みデータの書き換え場所を示すデータを保持するデータ書き込み制御方法。
【請求項５】
請求項１乃至３のいずれか１項に記載のデータ書き込み制御装置と、
前記データ書き込み制御装置に要求を発信する要求装置と
を備える情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ書き込み制御装置、データ書き込み制御方法及び情報処理装置に関する。
【背景技術】
【０００２】
一般に、メモリ制御回路がメモリにデータを書き込む方式として、全バイト（フルライン）のデータをライトするフルライト方式と、メモリよりデータを読み出して、ＣＰＵからの書き込みデータで当該読み出したデータの一部を書き換えるパーシャルライト方式が知られている。【０００３】
メモリ制御回路の動作例を図１に示す。まず、メモリ制御回路がＣＰＵからリクエストを受信すると（ステップＳ１）、メモリ制御回路は受信したリクエストがリードリクエストであるか否かを判別する（ステップＳ２）。受信したリクエストがリードリクエストである場合（ステップＳ２でＹＥＳ）、メモリ制御回路は、メモリ内のリクエストされたアドレスに対してリード動作を行う（ステップＳ３）。一方、受信したリクエストがリードリクエストでない場合（ステップＳ２でＮＯ）、メモリ制御回路は受信したリクエストがパーシャルライトのリクエストであるか否かを判別する（ステップＳ４）。受信したリクエストがパーシャルライトのリクエストである場合には（ステップＳ４でＹＥＳ）、メモリ制御回路は、一旦、メモリ内のリクエストされたアドレスに対してリード動作を行い（ステップＳ３）、その読み出されたデータとＣＰＵからの書き込みデータをマージし（ステップＳ５）、メモリ内のリクエストされたアドレスに対してライト動作を行う（ステップＳ６）。一方、受信したリクエストがパーシャルライトのリクエストでない、即ちフルライトのリクエストである場合には（ステップＳ４でＮＯ）、メモリ制御回路は、メモリ内のリクエストされたアドレスに対してライト動作を行う（ステップＳ６）。【０００４】
また、従来より、パーシャルライト専用アドレスレジスタ及びメモリデータレジスタを備えるメモリ制御回路が知られている（例えば、特許文献１参照）。【０００５】
ここで、特許文献１のメモリ制御回路の動作を図２に示す。ここでは、メモリ制御回路のライト動作に限定して説明する。【０００６】
まず、メモリ制御回路は、ＣＰＵからの情報に基づいてメモリライトモードがパーシャルライトであるか否かを判別する（ステップＳ１０）。メモリライトモードがパーシャルライトでない場合、つまりフルライトである場合（ステップＳ１０でＮＯ）、ライトデータのアドレスがパーシャルライト専用アドレスレジスタに格納されている前回のパーシャルライトで使用されたアドレスと一致するか否かを判別する（ステップＳ１１）。【０００７】
ライトデータのアドレスが前回のパーシャルライトで使用されたアドレスと一致する場合には（ステップＳ１１でＹＥＳ）、メモリ制御回路は、ライトデータをメモリデータレジスタに保持し（ステップＳ１２）、メモリに対しライト動作を行う（ステップＳ１３）。ライトデータのアドレスが前回のパーシャルライトで使用されたアドレスと一致しない場合には（ステップＳ１１でＮＯ）、ステップＳ１３の手順を実行する。【０００８】
一方、メモリライトモードがパーシャルライトである場合（ステップＳ１０でＹＥＳ）、メモリ制御回路は、パーシャルライトのリクエストを受信し（ステップＳ１４）、パーシャルライトのリクエストに含まれるライトデータのアドレスがパーシャルライト専用アドレスレジスタに格納されている前回のパーシャルライトで使用されたアドレスと一致するか否かを判別する（ステップＳ１５）。ライトデータのアドレスが前回のパーシャルライトで使用されたアドレスと一致する場合には（ステップＳ１５でＹＥＳ）、メモリ制御回路は、メモリデータレジスタに保持されているデータとライトデータとをマージする（ステップＳ１６）。メモリデータレジスタには、パーシャルライトを行うアドレスに対応するメモリ内のデータと同一のデータが既に格納されているので、ステップＳ１６では、メモリリード動作が行われない。さらに、メモリ制御回路は、マージされたデータをメモリデータレジスタに保持し、メモリに対しライト動作を行う（ステップＳ１７）。【０００９】
一方、ライトデータのアドレスが前回のパーシャルライトで使用されたアドレスと一致しない場合には（ステップＳ１５でＮＯ）、メモリ制御回路は、ＣＰＵに対してリードリクエストを出力する（ステップＳ１８）。メモリ制御回路は、リードデータを受信したか否かを判別する（ステップＳ１９）。メモリ制御回路がリードデータを受信していない場合には（ステップＳ１９でＮＯ）、ステップＳ１９の判別が繰り返される。一方、メモリ制御回路がリードデータを受信した場合に（ステップＳ１９でＹＥＳ）、メモリ制御回路はリードデータをメモリデータレジスタに保持し（ステップＳ２０）、ステップＳ１６の手順に進む。【００１０】
このように、特許文献１のメモリ制御回路では、パーシャルライトアクセス時に、パーシャルライト専用アドレスレジスタ及びメモリデータレジスタにそれぞれアドレス及びデータを格納する。次のパーシャルライトアドレスがパーシャルライト専用アドレスレジスタの保持するアドレスと同一であるときに、メモリ制御回路は、メモリの代わりにメモリデータレジスタからデータを読み出して、そのデータとライトデータをマージする（ステップＳ１５及びＳ１６参照）。従って、パーシャルライトが同じアドレスに連続して行われる場合に、メモリリード動作を行う必要がなくなり、パーシャルライトアクセスの高速化が可能になる。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開平６−１１９２３８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかしながら、上記特許文献１のメモリ制御回路では、パーシャルライトが同じアドレスに連続して行われない場合には、従来と同様に、メモリリード動作を行う必要がある。特に、ライトやリードのリクエストを発行するＣＰＵなどのリクエスターが複数搭載されている装置では、パーシャルライトのリクエストが増加し、パーシャルライトが同じアドレスに連続して行われない場合が増加する。この場合、メモリ制御回路では、アクセスタイムの長いメモリリード動作により高速動作ができなくなり、データ書き込みのスループットが低下するという問題がある。【００１３】
上記課題に鑑み、明細書に開示されたデータ書き込み制御装置、データ書き込み制御方法及び情報処理装置は、データ書き込みのスループットを向上させることを目的とする。
【課題を解決するための手段】
【００１４】
上記目的を達成するため、明細書に開示されたデータ書き込み制御装置は、要求装置からの要求がデータの部分書き込みの要求であり、且つ前記部分書き込みが同じアドレスに連続して行われるか否かを判定する判定手段と、前記要求装置からの要求がデータの部分書き込みの要求であり、且つ前記部分書き込みが前回の部分書き込みと異なるアドレスに行われる場合に、データの読み出し要求を前記要求装置に送信する送信手段と、前記データの読み出し要求に対応する読み出しデータを受信するまで、前記部分書き込みの要求に含まれる書き込みデータ及び当該書き込みデータの書き換え場所を示すデータを保持する保持手段とを備える。【００１５】
明細書に開示されたデータ書き込み制御方法は、要求装置からの要求がデータの部分書き込みの要求であり、且つ前記部分書き込みが同じアドレスに連続して行われるか否かを判定し、前記要求装置からの要求がデータの部分書き込みの要求であり、且つ前記部分書き込みが前回の部分書き込みと異なるアドレスに行われる場合に、データの読み出し要求を前記要求装置に送信し、前記データの読み出し要求に対応する読み出しデータを受信するまで、前記部分書き込みの要求に含まれる書き込みデータ及び当該書き込みデータの書き換え場所を示すデータを保持する。
【発明の効果】
【００１６】
明細書に開示されたデータ書き込み制御装置、データ書き込み制御方法及び情報処理装置は、データ書き込みのスループットを向上することができる。
【図面の簡単な説明】
【００１７】
【図１】メモリ制御回路の動作を示すフローチャートである。
【図２】メモリ制御回路のライト動作を示すフローチャートである。
【図３】本実施の形態に係る情報処理装置の概略構成の一例を示すブロック図である。
【図４】制御回路２の概略構成を示すブロック図である。
【図５】データ書き込み制御装置１で実行される処理を示すフローチャートである。
【図６】（Ａ）は従来のパーシャルライト動作を示す模式図である。（Ｂ）は本実施の形態のパーシャルライト動作を示す模式図である。
【発明を実施するための形態】
【００１８】
以下、図面を参照しながら本発明の実施の形態を説明する。
【００１９】
図３は、本実施の形態に係る情報処理装置の概略構成の一例を示すブロック図である。
【００２０】
図３において、情報処理装置１００は、ＣＰＵ１１、データ書き込み制御装置１、及びメモリ１２を備えている。情報処理装置は、例えば、サーバ又はパーソナルコンピュータなどである。データ書き込み制御装置１は、制御回路２、データ用のＲＡＭ（Random Access Memory）３（以下、データＲＡＭという）、マスクデータ用のＲＡＭ４（以下、マスクＲＡＭという）、マージ回路５及び６、並びにセレクタ７及び８を備えている。制御回路２は、判定手段及び送信手段として機能する。データＲＡＭ３及びマスクＲＡＭ４は保持手段として機能する。マージ回路５及び６は統合手段として機能する。
【００２１】
制御回路２は、ＣＰＵ１１からライトリクエストを受信する。ライトリクエストは、フルラインのデータをメモリに書き込むフルライトのリクエストと、ＣＰＵからの書き込みデータ（ライトデータ）で保持していたデータの一部を書き換えて、書き換えられたデータをメモリに書き込むパーシャルライトのリクエストとがある。また、制御回路２は、パーシャルライトのリクエストをＣＰＵ１１から受信したときに、リードリクエストをＣＰＵ１１に送信し、リードリクエストに対応するリードデータをＣＰＵ１１から受信する。制御装置２の構成の詳細は後述する。図１では、データ書き込み制御装置１にリクエストを発信するリクエスタ（要求装置）は、ＣＰＵ１１であるが、複数のＣＰＵであってもよい。また、リクエスタは、ＣＰＵに限定されず、例えばＩ／Ｏ（input/output）装置でもよい。
【００２２】
データＲＡＭ３は、セレクタ８で選択されたライトデータ又はマージデータを保持する。尚、マージデータとは、後述するマージ回路５又は６で複数のデータがマージ（統合）されて、生成されたデータである。マスクＲＡＭ４は、マスクデータを保持する。マスクデータとは、パーシャルライトのリクエストでＣＰＵ１１から受信するデータであり、部分的に書き換えるデータの場所を示すデータである。
【００２３】
マージ回路５は、マスクデータに基づいて、ライトデータ及びデータＲＡＭ３に保持されたデータをマージする。マージ回路６は、マスクデータに基づいて、データＲＡＭ３に保持されたデータ及びリードデータをマージする。セレクタ７は、マージ回路５及び６のいずれか一方のマージデータを選択し、制御回路２及びセレクタ８に出力する。セレクタ７は、パーシャルライトが同じアドレスに連続して行われる場合には、マージ回路５のマージデータを選択し、パーシャルライトが同じアドレスに連続して行われない場合には、マージ回路６のマージデータを選択する。セレクタ８は、ライトデータ及びマージデータのいずれか一方を選択し、選択したデータをデータＲＡＭ３及びメモリ１２に出力する。
【００２４】
次に、データ書き込み制御装置１の動作について説明する。
【００２５】
制御回路２がＣＰＵ１１からフルライトのリクエストを受信すると、制御回路２はライトデータを選択するデータセレクト信号をセレクタ８に出力する。セレクタ８は、そのデータセレクト信号に基づいて、ライトデータを選択し、データＲＡＭ３及びメモリ１２に出力する。データＲＡＭ３内に同一アドレスのデータがある場合には、その同一アドレスのデータはライトデータにより更新される。
【００２６】
制御回路２はＣＰＵ１１から前回のパーシャルライトと同じアドレスに連続して行われるパーシャルライトのリクエストを受信した場合には、データＲＡＭ３内からそのアドレスに対応するデータが読み出され、マージ回路５が読み出されたデータ及びライトデータをマージする。マージ回路５から出力されるマージデータは、セレクタ７及び８を介してデータＲＡＭ３及びメモリ１２に出力される。データＲＡＭ３に保持されていたデータは、マージ回路５から出力されるマージデータにより更新される。
【００２７】
制御回路２は、ＣＰＵ１１から前回のパーシャルライトと異なるアドレスに行われるパーシャルライトのリクエストを受信した場合には、リードリクエストをＣＰＵ１１に出力する。また、制御回路２は、今回のパーシャルライトのリクエストで受信したライトデータ及びマスクデータをそれぞれデータＲＡＭ３及びマスクＲＡＭ４に保持する。これにより、データ書き込み制御装置１は、ＣＰＵ１１からリードリクエストに対応するリードデータを受信するまで、他の動作を行うことができる。即ち、制御回路２、データＲＡＭ３、マスクＲＡＭ４、マージ回路５及び６、並びにセレクタ７及び８は、制御回路２がＣＰＵ１１からリードリクエストに対応するリードデータを受信するまで、他のリクエストの処理を実行することができる。
【００２８】
制御回路２がＣＰＵ１１からリードリクエストに対応するリードデータを受信すると、制御回路２では、リードデータの処理が優先される。即ち、データＲＡＭ３に保持されたライトデータ、マスクＲＡＭ４に保持されたマスクデータ及びリードデータがマージ回路６に出力され、マスクデータに基づいてライトデータ及びリードデータがマージされる。マージ回路６から出力されるマージデータは、セレクタ７及び８を介してデータＲＡＭ３及びメモリ１２に出力される。データＲＡＭ３に保持されていたデータは、マージ回路６から出力されるマージデータにより更新される。
【００２９】
図４は、制御回路２の概略構成を示すブロック図である。
【００３０】
図４において、制御回路２は、リクエスト調停部２１、及びリクエスト判定／アドレス比較部２２を備えている。リクエスト調停部２１は、調停手段として機能する。リクエスト調停部２１は、ＣＰＵ１１からのライトリクエスト、パーシャルライトにおけるリードリクエストに対応するリードデータ、及びパーシャルライトにおけるマージデータの処理順番に関する調停を行う。処理の優先順位は、マージデータ、リードデータ、ライトリクエストの順番である。これにより、ＣＰＵ１１からのライトリクエストよりも、リードデータを使うマージ処理を優先的に実行することができる。      
【００３１】
リクエスト判定／アドレス比較部２２は、リクエスト調停部２１で選択されたデータ又はリクエスト毎に、データＲＡＭ３に保持されているデータに対応するアドレスを保持している。このアドレスは、例えば、フリップフロップ（ＦＦ）回路２３に保持される。リクエスト判定／アドレス比較部２２は、この保持されているアドレスとリクエスト調停部２１で選択されたデータ又はリクエスト調停部２１で選択されたリクエストに含まれるデータのアドレスとを比較し、所定の信号やデータを出力する。
【００３２】
例えば、マージデータがリクエスト調停部２１に入力された場合は、リクエスト調停部２１は、マージデータの入力をリクエスト判定／アドレス比較部２２に通知し、リクエスト判定／アドレス比較部２２は、データセレクタ信号をセレクタ８に出力すると共にマージデータを書き込むためのデータＲＡＭ  ＷＥ（Write Enable）信号をデータＲＡＭ３に出力する。これにより、マージデータは、セレクタ８を介してデータＲＡＭ３に書き込まれる。
【００３３】
リードデータがリクエスト調停部２１に入力された場合は、リクエスト調停部２１は、リードデータの入力をリクエスト判定／アドレス比較部２２に通知する。リクエスト判定／アドレス比較部２２は、リードデータにマージされるデータを読み出すためのデータＲＡＭ  ＲＥ（Read Enable）信号をデータＲＡＭ３に出力する。さらに、リクエスト判定／アドレス比較部２２は、マスクデータを読み出すためのマスクＲＡＭ  ＲＥ信号をマスクＲＡＭ４に出力し、リードデータをマージ回路６に出力する。これにより、データＲＡＭ３に保持されているデータ、マスクＲＡＭ４に保持されているマスクデータ、及びリードデータがマージ回路６に出力される。そして、データＲＡＭ３に保持されているデータの書き換え部分がマスクデータにより特定され、データＲＡＭ３に保持されているデータとリードデータがマージされる。
【００３４】
フルライトのリクエストがリクエスト調停部２１に入力された場合は、リクエスト調停部２１は、フルライトのリクエストの入力をリクエスト判定／アドレス比較部２２に通知する。リクエスト判定／アドレス比較部２２は、フルライトのリクエストに含まれるライトデータのアドレスとフリップフロップ回路２３に保持された前回のフルライトのリクエストに含まれるライトデータのアドレスとを比較する。フルライトのリクエストに含まれるライトデータのアドレスとフリップフロップ回路２３に保持された前回のフルライトのリクエストに含まれるライトデータのアドレスとが一致する場合は、リクエスト判定／アドレス比較部２２は、データセレクト信号及びライトデータをセレクタ８に、データＲＡＭ  ＷＥ（Write Enable）信号をデータＲＡＭ３にそれぞれ出力する。これにより、ライトデータはセレクタ８を介してデータＲＡＭ３に上書きされると共にメモリ１２に出力される。一方、フルライトのリクエストに含まれるライトデータのアドレスとフリップフロップ回路２３に保持された前回のフルライトのリクエストに含まれるライトデータのアドレスとが一致しない場合は、リクエスト判定／アドレス比較部２２は、データセレクト信号及びライトデータをセレクタ８に出力する。これにより、ライトデータはメモリ１２に出力される。
【００３５】
パーシャルライトのリクエストがリクエスト調停部２１に入力された場合は、リクエスト調停部２１は、パーシャルライトのリクエストの入力をリクエスト判定／アドレス比較部２２に通知する。リクエスト判定／アドレス比較部２２は、パーシャルライトのリクエストに含まれるライトデータのアドレスとフリップフロップ回路２３に保持された前回のパーシャルライトのリクエストに含まれるライトデータのアドレスとを比較する。パーシャルライトのリクエストに含まれるライトデータのアドレスとフリップフロップ回路２３に保持された前回のパーシャルライトのリクエストに含まれるライトデータのアドレスとが一致する場合は、リクエスト判定／アドレス比較部２２は、ライトデータ及びマスクデータをマージ回路５に、データＲＡＭ  ＲＥ信号をデータＲＡＭ３にそれぞれ出力する。これにより、データＲＡＭ３に保持されているデータの書き換え部分がマスクデータにより特定され、データＲＡＭ３に保持されているデータとライトデータがマージされる。この場合、パーシャルライトにおいてメモリリード動作を行う必要がないので、メモリライトのスループットを向上することができる。
【００３６】
一方、パーシャルライトのリクエストに含まれるライトデータのアドレスとフリップフロップ回路２３に保持された前回のパーシャルライトのリクエストに含まれるライトデータのアドレスとが一致しない場合は、リクエスト判定／アドレス比較部２２は、リードリクエストをＣＰＵ１１に、データセレクト信号及びライトデータをセレクタ８に、データＲＡＭ  ＷＥ信号をデータＲＡＭ３に、マスクデータ及びマスクＲＡＭ  ＷＥ信号をマスクＲＡＭ４にそれぞれ出力する。これにより、制御回路２がリードリクエストに対応するリードデータを受信するまで、ライトデータはデータＲＡＭ３に保持され、マスクデータはマスクＲＡＭ４に保持される。この場合、制御回路２がリードデータの待ち時間の間に他のリクエストを処理することができ、データ書き込みのスループットを向上することができる。
【００３７】
図５は、データ書き込み制御装置１で実行される処理を示すフローチャートである。
【００３８】
まず、制御回路２がマージデータを受信したか否かを判別する（ステップＳ２１）。制御回路２がマージデータを受信した場合には（ステップＳ２１でＹＥＳ）、制御回路２は、マージデータを選択するためのデータセレクタ信号をセレクタ８に出力すると共にデータＲＡＭ  ＷＥ（Write Enable）信号をデータＲＡＭ３に出力し、マージデータをデータＲＡＭ３及びメモリ１２に書き込む（ステップＳ２２）。
【００３９】
一方、制御回路２がマージデータを受信していない場合には（ステップＳ２１でＮＯ）、制御回路２がリードデータを受信したか否かを判別する（ステップＳ２３）。制御回路２がリードデータを受信した場合には（ステップＳ２３でＹＥＳ）、制御回路２がリードデータにマージされるライトデータを読み出すためのデータＲＡＭ  ＲＥ（Read Enable）信号をデータＲＡＭ３に出力し、マスクデータを読み出すためのマスクＲＡＭ  ＲＥ信号をマスクＲＡＭ４に出力し、リードデータをマージ回路６に出力する。これにより、データＲＡＭ３に保持されているライトデータ、マスクＲＡＭ４に保持されているマスクデータ、及びリードデータがマージ回路６に出力される。そして、データＲＡＭ３に保持されているデータの書き換え部分がマスクデータにより特定され、データＲＡＭ３に保持されているデータとリードデータがマージされる（ステップＳ２４）。その後、手順はステップＳ２１に戻る。
【００４０】
制御回路２がリードデータを受信していない場合には（ステップＳ２３でＮＯ）、制御回路２は、リクエストの処理を行う（ステップＳ２５）。具体的には、リクエスト調停部２１が、処理するリクエストを選択する。次に、制御回路２は、処理するリクエストがパーシャルライトのリクエストであるか否かを判別する（ステップＳ２６）。処理するリクエストがパーシャルライトのリクエストである場合には（ステップＳ２６でＹＥＳ）、制御回路２のリクエスト判定／アドレス比較部２２がパーシャルライトのリクエストを受信する（ステップＳ２７）。その後、制御回路２のリクエスト判定／アドレス比較部２２がパーシャルライトのリクエストに含まれるライトデータのアドレスをフリップフロップ回路２３に保持された前回のパーシャルライトのリクエストに含まれるライトデータのアドレスと比較する（ステップＳ２８）。
【００４１】
パーシャルライトのリクエストに含まれるライトデータのアドレスがフリップフロップ回路２３に保持された前回のパーシャルライトのリクエストに含まれるライトデータのアドレスと一致する場合には（ステップＳ２８でＹＥＳ）、リクエスト判定／アドレス比較部２２が、ライトデータ及びマスクデータをマージ回路５に、データＲＡＭ  ＲＥ信号をデータＲＡＭ３にそれぞれ出力する。マージ回路５は、データＲＡＭ３に保持されているデータの書き換え部分をマスクデータにより特定し、データＲＡＭ３に保持されているデータとライトデータをマージする（ステップＳ２９）。その後、手順はステップＳ２１に戻る。
【００４２】
一方、パーシャルライトのリクエストに含まれるライトデータのアドレスがフリップフロップ回路２３に保持された前回のパーシャルライトのリクエストに含まれるライトデータのアドレスと一致しない場合には（ステップＳ２８でＮＯ）、リクエスト判定／アドレス比較部２２は、データセレクト信号及びライトデータをセレクタ８に、データＲＡＭ  ＷＥ信号をデータＲＡＭ３に、マスクデータ及びマスクＲＡＭ  ＷＥ信号をマスクＲＡＭ４にそれぞれ出力する。その結果、データＲＡＭ３がライトデータを保持し、マスクＲＡＭ４がマスクデータを保持する（ステップＳ３０）。リクエスト判定／アドレス比較部２２は、リードリクエストをＣＰＵ１１に出力する（ステップＳ３１）。その後、手順はステップＳ２１に戻る。
【００４３】
上記ステップＳ２６で、処理するリクエストがパーシャルライトのリクエストでない場合、つまり、処理するリクエストがフルライトのリクエストである場合には（ステップＳ２６でＮＯ）、リクエスト判定／アドレス比較部２２は、フルライトのリクエストに含まれるライトデータのアドレスをフリップフロップ回路２３に保持された前回のフルライトのリクエストに含まれるライトデータのアドレスと比較する（ステップＳ３２）。
【００４４】
フルライトのリクエストに含まれるライトデータのアドレスがフリップフロップ回路２３に保持された前回のフルライトのリクエストに含まれるライトデータのアドレスと一致する場合は（ステップＳ３２でＹＥＳ）、リクエスト判定／アドレス比較部２２は、データセレクト信号及びライトデータをセレクタ８に、データＲＡＭ  ＷＥ（Write Enable）信号をデータＲＡＭ３にそれぞれ出力する。これにより、データＲＡＭ３はライトデータを上書きする（ステップＳ３３）。メモリ１２はライトデータを書き込む（ステップＳ３４）。一方、フルライトのリクエストに含まれるライトデータのアドレスがフリップフロップ回路２３に保持された前回のフルライトのリクエストに含まれるライトデータのアドレスと一致しない場合は（ステップＳ３２でＮＯ）、リクエスト判定／アドレス比較部２２は、データセレクト信号及びライトデータをセレクタ８に出力する。これにより、メモリ１２はライトデータを書き込む（ステップＳ３４）。
【００４５】
以上説明したように、本実施の形態によれば、パーシャルライトが同じアドレスに連続して行われない場合に（ステップＳ２８でＮＯ、ステップＳ３０）、制御回路２がリードリクエストに対応するリードデータを受信するまで、ライトデータはデータＲＡＭ３に保持され、マスクデータはマスクＲＡＭ４に保持される。よって、図６（Ａ）の従来のパーシャルライトでは、メモリリードの待ち時間にリクエストを処理できなかったが、図６（Ｂ）の本実施の形態のパーシャルライトでは、制御回路２がメモリリードの待ち時間の間に他のリクエストを処理することができる。従って、データ書き込みのスループットを向上することができる。
【符号の説明】
【００４６】
１  データ書き込み制御装置
２  制御回路
３  データＲＡＭ
４  マスクＲＡＭ
５，６  マージ回路、
７，８  セレクタ
１１  ＣＰＵ
２１  リクエスト調停部
２２  リクエスト判定／アドレス比較部
２３  フリップフロップ回路
【図１】
2012098655.tif 000003
【図２】
2012098655.tif 000004
【図３】
2012098655.tif 000005
【図４】
2012098655.tif 000006
【図５】
2012098655.tif 000007
【図６】
2012098655.tif 000008
【手続補正書】
【提出日】平成25年12月25日(2013.12.25)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
要求装置からの要求が記憶装置に対するデータの部分書き込みの要求であり、且つ前記部分書き込みが同じアドレスに連続して行われるか否かを判定する判定手段と、
前記要求装置からの要求がデータの部分書き込みの要求であり、且つ前記部分書き込みが前回の部分書き込みと異なるアドレスに行われる場合に、データの読み出し要求を前記記憶装置に送信する送信手段と、
前記データの読み出し要求に対応する読み出しデータを受信するまで、前記部分書き込みの要求に含まれる書き込みデータ及び当該書き込みデータの書き換え場所を示すデータを保持する保持手段と、
前記データの読み出し要求に対応する読み出しデータを受信するまで、前記データの読み出し要求とは異なる他の要求の処理を行う制御手段と
を備えるデータ書き込み制御装置。
【請求項２】
要求装置からの要求が記憶装置に対するデータの部分書き込みの要求であり、且つ前記部分書き込みが同じアドレスに連続して行われるか否かを判定する判定手段と、
前記要求装置からの要求がデータの部分書き込みの要求であり、且つ前記部分書き込みが前回の部分書き込みと異なるアドレスに行われる場合に、データの読み出し要求を前記記憶装置に送信する送信手段と、
前記データの読み出し要求に対応する読み出しデータを受信するまで、前記部分書き込みの要求に含まれる書き込みデータ及び当該書き込みデータの書き換え場所を示すデータを保持する保持手段と、
前記読み出しデータを前記書き込みデータに統合した統合データ、前記読み出しデータ、及び前記要求装置からの書き込み要求の順番に従って、前記統合データ、前記読み出しデータ及び前記書き込み要求の処理順番を調停する調停手段とを備えるデータ書き込み制御装置。
【請求項３】
前記要求装置からの要求がデータの部分書き込みの要求であり、且つ前記部分書き込みが同じアドレスに連続して行われる場合に、前記書き込みデータの書き換え場所を示すデータに基づいて、前記部分書き込みの要求に含まれる書き込みデータを、前記保持手段に保持されている前回の部分書き込みに対応する書き込みデータに統合する統合手段を備える請求項１又は２に記載のデータ書き込み制御装置。
【請求項４】
要求装置からの要求が記憶装置に対するデータの部分書き込みの要求であり、且つ前記部分書き込みが同じアドレスに連続して行われるか否かを判定し、
前記要求装置からの要求がデータの部分書き込みの要求であり、且つ前記部分書き込みが前回の部分書き込みと異なるアドレスに行われる場合に、データの読み出し要求を前記記憶装置に送信し、
前記データの読み出し要求に対応する読み出しデータを受信するまで、前記部分書き込みの要求に含まれる書き込みデータ及び当該書き込みデータの書き換え場所を示すデータを保持し、
前記データの読み出し要求に対応する読み出しデータを受信するまで、前記データの読み出し要求とは異なる他の要求の処理を行うデータ書き込み制御方法。
【請求項５】
要求装置からの要求が記憶装置に対するデータの部分書き込みの要求であり、且つ前記部分書き込みが同じアドレスに連続して行われるか否かを判定し、
前記要求装置からの要求がデータの部分書き込みの要求であり、且つ前記部分書き込みが前回の部分書き込みと異なるアドレスに行われる場合に、データの読み出し要求を前記記憶装置に送信し、
前記データの読み出し要求に対応する読み出しデータを受信するまで、前記部分書き込みの要求に含まれる書き込みデータ及び当該書き込みデータの書き換え場所を示すデータを保持し、
前記読み出しデータを前記書き込みデータに統合した統合データ、前記読み出しデータ、及び前記要求装置からの書き込み要求の順番に従って、前記統合データ、前記読み出しデータ及び前記書き込み要求の処理順番を調停するデータ書き込み制御方法。
【請求項６】
請求項１乃至３のいずれか１項に記載のデータ書き込み制御装置と、
前記データ書き込み制御装置に要求を発信する要求装置と
を備える情報処理装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１４
【補正方法】変更
【補正の内容】
【００１４】
上記目的を達成するため、明細書に開示されたデータ書き込み制御装置は、要求装置からの要求が記憶装置に対するデータの部分書き込みの要求であり、且つ前記部分書き込みが同じアドレスに連続して行われるか否かを判定する判定手段と、前記要求装置からの要求がデータの部分書き込みの要求であり、且つ前記部分書き込みが前回の部分書き込みと異なるアドレスに行われる場合に、データの読み出し要求を前記記憶装置に送信する送信手段と、前記データの読み出し要求に対応する読み出しデータを受信するまで、前記部分書き込みの要求に含まれる書き込みデータ及び当該書き込みデータの書き換え場所を示すデータを保持する保持手段と、前記データの読み出し要求に対応する読み出しデータを受信するまで、前記データの読み出し要求とは異なる他の要求の処理を行う制御手段とを備える。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１５
【補正方法】変更
【補正の内容】
【００１５】
明細書に開示されたデータ書き込み制御方法は、要求装置からの要求が記憶装置に対するデータの部分書き込みの要求であり、且つ前記部分書き込みが同じアドレスに連続して行われるか否かを判定し、前記要求装置からの要求がデータの部分書き込みの要求であり、且つ前記部分書き込みが前回の部分書き込みと異なるアドレスに行われる場合に、データの読み出し要求を前記記憶装置に送信し、前記データの読み出し要求に対応する読み出しデータを受信するまで、前記部分書き込みの要求に含まれる書き込みデータ及び当該書き込みデータの書き換え場所を示すデータを保持し、前記データの読み出し要求に対応する読み出しデータを受信するまで、前記データの読み出し要求とは異なる他の要求の処理を行う。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００２１
【補正方法】変更
【補正の内容】
【００２１】
制御回路２は、ＣＰＵ１１からライトリクエストを受信する。ライトリクエストは、フルラインのデータをメモリに書き込むフルライトのリクエストと、ＣＰＵからの書き込みデータ（ライトデータ）で保持していたデータの一部を書き換えて、書き換えられたデータをメモリに書き込むパーシャルライトのリクエストとがある。また、制御回路２は、パーシャルライトのリクエストをＣＰＵ１１から受信したときに、リードリクエストをメモリ１２に送信し、リードリクエストに対応するリードデータをメモリ１２から受信する。制御装置２の構成の詳細は後述する。図１では、データ書き込み制御装置１にリクエストを発信するリクエスタ（要求装置）は、ＣＰＵ１１であるが、複数のＣＰＵであってもよい。また、リクエスタは、ＣＰＵに限定されず、例えばＩ／Ｏ（input/output）装置でもよい。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００２７
【補正方法】変更
【補正の内容】
【００２７】
制御回路２は、ＣＰＵ１１から前回のパーシャルライトと異なるアドレスに行われるパーシャルライトのリクエストを受信した場合には、リードリクエストをメモリ１２に出力する。また、制御回路２は、今回のパーシャルライトのリクエストで受信したライトデータ及びマスクデータをそれぞれデータＲＡＭ３及びマスクＲＡＭ４に保持する。これにより、データ書き込み制御装置１は、メモリ１２からリードリクエストに対応するリードデータを受信するまで、他の動作を行うことができる。即ち、制御回路２、データＲＡＭ３、マスクＲＡＭ４、マージ回路５及び６、並びにセレクタ７及び８は、制御回路２がメモリ１２からリードリクエストに対応するリードデータを受信するまで、他のリクエストの処理を実行することができる。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００２８
【補正方法】変更
【補正の内容】
【００２８】
制御回路２がメモリ１２からリードリクエストに対応するリードデータを受信すると、制御回路２では、リードデータの処理が優先される。即ち、データＲＡＭ３に保持されたライトデータ、マスクＲＡＭ４に保持されたマスクデータ及びリードデータがマージ回路６に出力され、マスクデータに基づいてライトデータ及びリードデータがマージされる。マージ回路６から出力されるマージデータは、セレクタ７及び８を介してデータＲＡＭ３及びメモリ１２に出力される。データＲＡＭ３に保持されていたデータは、マージ回路６から出力されるマージデータにより更新される。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００３６
【補正方法】変更
【補正の内容】
【００３６】
一方、パーシャルライトのリクエストに含まれるライトデータのアドレスとフリップフロップ回路２３に保持された前回のパーシャルライトのリクエストに含まれるライトデータのアドレスとが一致しない場合は、リクエスト判定／アドレス比較部２２は、リードリクエストをメモリ１２に、データセレクト信号及びライトデータをセレクタ８に、データＲＡＭ  ＷＥ信号をデータＲＡＭ３に、マスクデータ及びマスクＲＡＭ  ＷＥ信号をマスクＲＡＭ４にそれぞれ出力する。これにより、制御回路２がリードリクエストに対応するリードデータを受信するまで、ライトデータはデータＲＡＭ３に保持され、マスクデータはマスクＲＡＭ４に保持される。この場合、制御回路２がリードデータの待ち時間の間に他のリクエストを処理することができ、データ書き込みのスループットを向上することができる。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００４２
【補正方法】変更
【補正の内容】
【００４２】
一方、パーシャルライトのリクエストに含まれるライトデータのアドレスがフリップフロップ回路２３に保持された前回のパーシャルライトのリクエストに含まれるライトデータのアドレスと一致しない場合には（ステップＳ２８でＮＯ）、リクエスト判定／アドレス比較部２２は、データセレクト信号及びライトデータをセレクタ８に、データＲＡＭ  ＷＥ信号をデータＲＡＭ３に、マスクデータ及びマスクＲＡＭ  ＷＥ信号をマスクＲＡＭ４にそれぞれ出力する。その結果、データＲＡＭ３がライトデータを保持し、マスクＲＡＭ４がマスクデータを保持する（ステップＳ３０）。リクエスト判定／アドレス比較部２２は、リードリクエストをメモリ１２に出力する（ステップＳ３１）。その後、手順はステップＳ２１に戻る。
【手続補正書】
【提出日】平成26年4月15日(2014.4.15)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
要求装置からの要求が記憶装置に対するデータの部分書き込みの要求であり、且つ前記部分書き込みが同じアドレスに連続して行われるか否かを判定する判定手段と、
前記要求装置からの要求がデータの部分書き込みの要求であり、且つ前記部分書き込みが前回の部分書き込みと異なるアドレスに行われる場合に、データの読み出し要求を前記記憶装置に送信する送信手段と、
前記データの読み出し要求に対応する読み出しデータを受信するまで、前記部分書き込みの要求に含まれる書き込みデータ及び当該書き込みデータの書き換え場所を示すデータを保持する保持手段と、
前記読み出しデータを前記書き込みデータに統合した統合データ、前記読み出しデータ、及び前記要求装置からの書き込み要求の順番に従って、前記統合データ、前記読み出しデータ及び前記書き込み要求の処理順番を調停する調停手段とを備えるデータ書き込み制御装置。
【請求項２】
前記要求装置からの要求がデータの部分書き込みの要求であり、且つ前記部分書き込みが同じアドレスに連続して行われる場合に、前記書き込みデータの書き換え場所を示すデータに基づいて、前記部分書き込みの要求に含まれる書き込みデータを、前記保持手段に保持されている前回の部分書き込みに対応する書き込みデータに統合する統合手段を備える請求項１に記載のデータ書き込み制御装置。
【請求項３】
要求装置からの要求が記憶装置に対するデータの部分書き込みの要求であり、且つ前記部分書き込みが同じアドレスに連続して行われるか否かを判定し、
前記要求装置からの要求がデータの部分書き込みの要求であり、且つ前記部分書き込みが前回の部分書き込みと異なるアドレスに行われる場合に、データの読み出し要求を前記記憶装置に送信し、
前記データの読み出し要求に対応する読み出しデータを受信するまで、前記部分書き込みの要求に含まれる書き込みデータ及び当該書き込みデータの書き換え場所を示すデータを保持し、
前記読み出しデータを前記書き込みデータに統合した統合データ、前記読み出しデータ、及び前記要求装置からの書き込み要求の順番に従って、前記統合データ、前記読み出しデータ及び前記書き込み要求の処理順番を調停するデータ書き込み制御方法。
【請求項４】
請求項１又は２に記載のデータ書き込み制御装置と、
前記データ書き込み制御装置に要求を発信する要求装置と
を備える情報処理装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１４
【補正方法】変更
【補正の内容】
【００１４】
上記目的を達成するため、明細書に開示されたデータ書き込み制御装置は、要求装置からの要求が記憶装置に対するデータの部分書き込みの要求であり、且つ前記部分書き込みが同じアドレスに連続して行われるか否かを判定する判定手段と、前記要求装置からの要求がデータの部分書き込みの要求であり、且つ前記部分書き込みが前回の部分書き込みと異なるアドレスに行われる場合に、データの読み出し要求を前記記憶装置に送信する送信手段と、前記データの読み出し要求に対応する読み出しデータを受信するまで、前記部分書き込みの要求に含まれる書き込みデータ及び当該書き込みデータの書き換え場所を示すデータを保持する保持手段と、前記読み出しデータを前記書き込みデータに統合した統合データ、前記読み出しデータ、及び前記要求装置からの書き込み要求の順番に従って、前記統合データ、前記読み出しデータ及び前記書き込み要求の処理順番を調停する調停手段とを備える。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１５
【補正方法】変更
【補正の内容】
【００１５】
明細書に開示されたデータ書き込み制御方法は、要求装置からの要求が記憶装置に対するデータの部分書き込みの要求であり、且つ前記部分書き込みが同じアドレスに連続して行われるか否かを判定し、前記要求装置からの要求がデータの部分書き込みの要求であり、且つ前記部分書き込みが前回の部分書き込みと異なるアドレスに行われる場合に、データの読み出し要求を前記記憶装置に送信し、前記データの読み出し要求に対応する読み出しデータを受信するまで、前記部分書き込みの要求に含まれる書き込みデータ及び当該書き込みデータの書き換え場所を示すデータを保持し、前記読み出しデータを前記書き込みデータに統合した統合データ、前記読み出しデータ、及び前記要求装置からの書き込み要求の順番に従って、前記統合データ、前記読み出しデータ及び前記書き込み要求の処理順番を調停する。
【国際調査報告】
2012098655.tif 000009
2012098655.tif 000010
2012098655.tif 000011
2012098655.tif 000012