(57)【要約】      （修正有）【課題】複数リクエストの同時発行時におけるレイテンシを改善すると共に、メモリアクセス時のハンドシェイクによるオーバーヘッドを軽減する。【解決手段】リクエスト制御部は、画像処理部からのリードリクエストを全て受け付けた上でリクエスト管理テーブルにその情報を登録し、受付時に、テーブルに同じバンクアドレス宛の先行するライトリクエストが登録されていたらそのリードリクエストの待合せを行い、未登録であったらＳＤＲＡＭコントローラに発行する。これにより、バンクアドレスの異なる後続するリードリクエストがメモリアクセス制御部にて受付けを拒否されて画像処理部内に滞留してしまうことを防ぐことが可能となる。リクエスト制御部は、複数のライトリクエストについて、ライトデータをライトデータバッファに溜め込み、それらを１つのライトリクエストに取りまとめてＳＤＲＡＭコントローラに発行する。これにより、バス占有率を低減できる。【選択図】図１
2010079536.tif 000002
【特許請求の範囲】
【請求項１】
データ処理部とメモリアクセス制御部とを含む少なくとも１つのデータ処理装置と、メモリ素子と前記メモリアクセス制御部から発行されるリードリクエスト情報又はライトリクエスト情報を調停して該メモリ素子へのアクセスを制御するメモリコントローラとを含むメモリ装置とを含むデータ処理システムにおいて、
前記メモリアクセス制御部内に、
前記データ処理部から要求された前記リードリクエスト情報又は前記ライトリクエスト情報を格納するリクエスト管理テーブル部と、
前記データ処理部から前記リードリクエスト情報を要求されたときに、該リードリクエスト情報が指示する宛先メモリ領域と同じ宛先メモリ領域が指示されている有効なライトリクエスト情報が前記リクエスト管理テーブル部に登録されている場合に、該リードリクエスト情報を受け付けて未発行状態で前記リクエスト管理テーブル部に登録し、該リードリクエスト情報が指示する宛先メモリ領域と同じ宛先メモリ領域が指示されている有効なライトリクエスト情報が前記リクエスト管理テーブル部に登録されていない場合に、該リードリクエスト情報を前記メモリ装置内のメモリコントローラに対して発行すると共に、該リードリクエスト情報を前記リクエスト管理テーブル部に登録するリードリクエスト出力判定＆ラッチ部と、
前記データ処理部から前記ライトリクエスト情報を要求されたときに、該ライトリクエスト情報が指示する宛先メモリ領域と同じ宛先メモリ領域が指示されている有効なリードリクエスト情報が前記リクエスト管理テーブル部に登録されていない場合に、該ライトリクエスト情報を前記リクエスト管理テーブル部に登録するライトリクエスト受付判定＆ラッチ部と、
前記メモリ装置内のメモリコントローラから前記ライトリクエスト情報による前記メモリ装置へのライトアクセスの完了を示すメモリライト完了信号又は前記リードリクエスト情報による前記メモリ装置へのリードアクセスの完了を示すリードデータ受信信号を受信し、該リードデータ受信信号に対応する前記リクエスト管理テーブル部に登録されている前記リードリクエスト情報又は前記ライトリクエスト情報を無効化又は削除し、該無効化又は削除されたテーブルエントリがライトリクエスト情報である場合に、該ライトリクエスト情報と同じ宛先メモリ領域を有する未発行のリードリクエスト情報のテーブルエントリを前記リクエスト管理テーブル部から検索し、検索されたテーブルエントリに対応するリードリクエスト情報の発行指示を前記リードリクエスト出力判定＆ラッチ部に対して行うテーブルエントリ無効化部と、
を含むことを特徴とするメモリアクセス制御回路。
【請求項２】
前記ライトリクエスト情報に対応するライトデータをバッファリングするライトデータバッファと、
前記ライトリクエスト受付判定＆ラッチ部から引き渡される前記ライトリクエスト情報を保持し、前記ライトデータバッファに保持された前記ライトデータが所定量以上になったときに、前記保持していた１つ以上のライトリクエスト情報を取りまとめて１つのライトリクエスト情報として前記メモリ装置内のメモリコントローラに対して発行すると共に、前記ライトデータバッファに保持されていた前記ライトデータを前記メモリコントローラに対して出力するライトリクエスト出力判定部と、
を更に含み、
前記ライトリクエスト受付判定＆ラッチ部は、前記データ処理部から前記ライトリクエスト情報を要求されたときに、該ライトリクエスト情報を前記ライトリクエスト出力判定部に保持させ、前記ライトリクエスト情報に対応して前記データ処理部から出力されるライトデータを前記ライトデータバッファに保持させる、
ことを特徴とする請求項１に記載のメモリアクセス制御回路。
【請求項３】
前記ライトリクエスト出力判定部は更に、前記リクエスト管理テーブルに登録されている有効なテーブルエントリが所定量以上になったときに、前記保持していた１つ以上のライトリクエスト情報を取りまとめて１つのライトリクエスト情報として前記メモリ装置内のメモリコントローラに対して発行すると共に、前記ライトデータバッファに保持されていた前記ライトデータを前記メモリコントローラに対して出力する、
ことを特徴とする請求項１又は２の何れか１項に記載のメモリアクセス制御回路。
【請求項４】
前記データ処理部は、画像処理を実行する、
ことを特徴とする請求項１乃至３の何れか１項に記載のメモリアクセス制御回路。
【請求項５】
データ処理部とメモリアクセス制御部とを含む少なくとも１つのデータ処理装置と、メモリ素子と前記メモリアクセス制御部から発行されるリードリクエスト情報又はライトリクエスト情報を調停して該メモリ素子へのアクセスを制御するメモリコントローラとを含むメモリ装置とを含むデータ処理システムにおけるメモリアクセス制御方法であって、
前記データ処理部から前記リードリクエスト情報を要求されたときに、該リードリクエスト情報が指示する宛先メモリ領域と同じ宛先メモリ領域が指示されている有効なライトリクエスト情報がリクエスト管理テーブル部に登録されている場合に、該リードリクエスト情報を受け付けて未発行状態で前記リクエスト管理テーブル部に登録し、該リードリクエスト情報が指示する宛先メモリ領域と同じ宛先メモリ領域が指示されている有効なライトリクエスト情報が前記リクエスト管理テーブル部に登録されていない場合に、該リードリクエスト情報を前記メモリ装置内のメモリコントローラに対して発行すると共に、該リードリクエスト情報を前記リクエスト管理テーブル部に登録するリードリクエスト出力判定＆ラッチステップと、
前記データ処理部から前記ライトリクエスト情報を要求されたときに、該ライトリクエスト情報が指示する宛先メモリ領域と同じ宛先メモリ領域が指示されている有効なリードリクエスト情報が前記リクエスト管理テーブル部に登録されていない場合に、該ライトリクエスト情報を前記リクエスト管理テーブル部に登録するライトリクエスト受付判定＆ラッチステップと、
前記メモリ装置内のメモリコントローラから前記ライトリクエスト情報による前記メモリ装置へのライトアクセスの完了を示すメモリライト完了信号又は前記リードリクエスト情報による前記メモリ装置へのリードアクセスの完了を示すリードデータ受信信号を受信し、該リードデータ受信信号に対応する前記リクエスト管理テーブル部に登録されている前記リードリクエスト情報又は前記ライトリクエスト情報を無効化又は削除し、該無効化又は削除されたテーブルエントリがライトリクエスト情報である場合に、該ライトリクエスト情報と同じ宛先メモリ領域を有する未発行のリードリクエスト情報のテーブルエントリを前記リクエスト管理テーブル部から検索し、検索されたテーブルエントリに対応するリードリクエスト情報の発行指示を行うテーブルエントリ無効化ステップと、
該発行指示されたリードリクエスト情報を発行するリードリクエスト情報発行ステップと、
を含むことを特徴とするメモリアクセス制御方法。
【請求項６】
前記ライトリクエスト受付判定＆ラッチステップは、前記データ処理部から前記ライトリクエスト情報を要求されたときに、該ライトリクエスト情報が指示する宛先メモリ領域と同じ宛先メモリ領域が指示されている有効なリードリクエスト情報が前記リクエスト管理テーブル部に登録されていない場合に、該ライトリクエスト情報を保持し、前記ライトリクエスト情報に対応して前記データ処理部から出力されるライトデータをライトデータバッファに保持させ、
前記ライトデータバッファに保持された前記ライトデータが所定量以上になったときに、前記ライトリクエスト受付判定＆ラッチステップが保持していた１つ以上のライトリクエスト情報を取りまとめて１つのライトリクエスト情報として前記メモリ装置内のメモリ
コントローラに対して発行すると共に、前記ライトデータバッファに保持されていた前記ライトデータを前記メモリコントローラに対して出力するライトリクエスト出力判定ステップを更に含む、
ことを特徴とする請求項５に記載のメモリアクセス制御方法。
【請求項７】
前記ライトリクエスト出力判定ステップは更に、前記リクエスト管理テーブルに登録されている有効なテーブルエントリが所定量以上になったときに、前記ライトリクエスト受付判定＆ラッチステップが保持していた１つ以上のライトリクエスト情報を取りまとめて１つのライトリクエスト情報として前記メモリ装置内のメモリコントローラに対して発行すると共に、前記ライトデータバッファに保持されていた前記ライトデータを前記メモリコントローラに対して出力する、
ことを特徴とする請求項５又は６の何れか１項に記載のメモリアクセス制御回路。
【発明の詳細な説明】
【技術分野】
【０００１】
画像処理等を行うブロックのメモリアクセス制御技術に関する。
【背景技術】
【０００２】
画像処理等を行う機能ブロック（画像処理マクロ）を搭載したシステムでは、複数の画像処理マクロが、ＳＤＲＡＭコントローラ１１０５を介して１つのＳＤＲＡＭ（Ｓｙｎｃｈｒｏｎｏｕｓ  Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１１０４を共有する構成が、よく採用される。
【０００３】
図１１は、画像処理マクロを搭載したシステムの構成例を示した図である。
画像処理マクロ１１０１は、画像処理を実行するコア部分である画像処理部１１０２と、ＳＤＲＡＭ１１０４上に記憶された画像データへのメモリアクセスを制御するメモリアクセス制御部１１０３を含み、同時の＃Ａ，＃Ｂ，・・・，＃Ｘというように、複数の画像処理マクロ１１０１が搭載され得る。
【０００４】
各画像処理マクロ１１０１のメモリアクセス制御部１１０３が接続される画像バス１１０９には、ＳＤＲＡＭコントローラ１１０５を介してＳＤＲＡＭ１１０４が接続される。
ＳＤＲＡＭコントローラ１１０５は、複数の画像処理マクロ１１０１からのリクエストに対して、該当する画像処理マクロ１１０１とハンドシェイク制御を実行し、各リクエストを調停しながら、ＳＤＲＡＭ１１０４に対して各リクエストに基づくメモリアクセスを実行する。
【０００５】
ＳＤＲＡＭコントローラ１１０５はまた、ＣＰＵマクロ１１０６、カードインタフェースマクロ１１０７、周辺マクロ１１０８等の各機能部が接続されるシステムバス７１０にも接続され、これらの部分とＳＤＲＡＭ１１０４との間で通信される制御プログラムや制御データに対する調停も行う。
【０００６】
ここで、画像処理マクロ１１０１において、複数の画素データに対する並列処理等を実現するために、画像処理部１１０２からＳＤＲＡＭ１１０４に対して複数のライトリクエスト又はリードリクエストが同様のタイミングで発行される場合が多い。
【０００７】
この場合、ＳＤＲＡＭ１１０４上の同一のアドレスに対する複数のリクエストは、データの整合性を保つためにリクエスト順序を変えることができない。このため、リクエストは、それに先行するリクエストのＲＡＭアクセスの完了を待たないといけない。
【０００８】
一方、先行リクエストと異なるアドレスにアクセスするリクエストは、データの整合性を崩すことはないため、当該リクエストは、それに先行するリクエストのＲＡＭアクセスの完了を待つ必要がない。
【０００９】
従来、例えば下記特許文献１に示されるように、上述の特性を利用したリクエストの追越し制御を行う技術が知られており、この従来技術によりＲＡＭアクセスのレイテンシ（リクエストの発行から応答までの処理遅延）を改善できる。
【特許文献１】特開平５−１２０１１３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
図１１に示されるような画像処理マクロ１１０１を搭載したシステムにおける従来のメ
モリアクセス制御方式では、画像処理マクロ１１０１内のメモリアクセス制御部１１０３が、画像処理部１１０２にて発行されるライトリクエストとリードリクエストのアクセス先アドレスを比較し、一致ならば当該リードリクエストを待たせ、不一致ならば先行して実行中のライトリクエストを追い越して当該リードリクエストをＳＤＲＡＭ１１０４に対して発行している。
【００１１】
今、一例として、図１２に示されるように、画像処理部１１０２からＳＤＲＡＭ１１０４上のＡ〜Ｄで示される各宛先ＲＡＭ領域に対して、複数のリクエストが下記の順序で発行された場合を考える。
1)Ａ領域にライトリクエストが発行される。
2)Ａ領域にリードリクエストが発行される。
3)Ｄ領域にリードリクエストが発行される。
4)Ｂ領域にライトリクエストが発行される。
5)Ｂ領域にリードリクエストが発行される。
【００１２】
メモリアクセス制御部１１０３は、上記1)で示されるＡ領域へのライトリクエストが未完了である情報を保持していることにより、上記2)で示される同一アクセス先であるＡ領域へのリードリクエストを受け付けない。
【００１３】
その結果、後続の異なるアクセス先であるＢ領域やＤ領域への待つ必要のないリードリクエスト等も、ＳＤＲＡＭ１１０４に発行できなくなる。
このように従来技術では、メモリアクセス制御部１１０３は、画像処理部１１０２にて発行されたライトリクエストとリードリクエストのアドレスの比較結果が一致を示した場合、現リードリクエストは、先行ライトリクエストによるＳＤＲＡＭ１１０４に対するライト動作が終了するまで待つ必要があり、更に画像処理部１１０２から発行される後続のリクエストは、上記一致アドレスと同一アドレスへのアクセスでなくても先行リクエストの処理完了を待たなければならず、ＲＡＭアクセスのレイテンシの改善に限界があるという問題点を有していた。
【００１４】
また、従来、たとえリクエストの順序の入替えができた場合であっても、リクエストの発行の都度メモリアクセス制御部１１０３とＳＤＲＡＭコントローラ１１０５との間でハンドシェイク制御が発生するため、ＲＡＭアクセス時のオーバーヘッドを軽減することが難しいという問題点を有していた。
【課題を解決するための手段】
【００１５】
第１の課題は、複数リクエストの同時発行時におけるレイテンシを改善することにある。また、第２の課題は、メモリアクセス時のハンドシェイクによるオーバーヘッドを軽減することにある。
【００１６】
以下の態様は、例えば画像処理を行うデータ処理部（画像処理部１１０２）とメモリアクセス制御部（１０１）とを含む少なくとも１つのデータ処理装置（画像処理マクロ１１０１）と、メモリ素子（ＳＤＲＡＭ１１０４）とメモリアクセス制御部から発行されるリードリクエスト情報（１１０）又はライトリクエスト情報（１０９）を調停してそのメモリ素子へのアクセスを制御するメモリコントローラ（ＳＤＲＡＭコントローラ１１０５）とを含むメモリ装置とを含むデータ処理システムを前提とする。
【００１７】
そして、メモリアクセス制御部内に、以下に示されるリクエスト管理テーブル部（１０３）、リードリクエスト出力判定＆ラッチ部（２０２）、ライトリクエスト受付判定＆ラッチ部（２０１）、及びテーブルエントリ無効化部（２０４）を含む。
【００１８】
リクエスト管理テーブル部は、データ処理部から要求されたリードリクエスト情報又はライトリクエスト情報を格納する。
リードリクエスト出力判定＆ラッチ部は、データ処理部からリードリクエスト情報を要求されたときに、そのリードリクエスト情報が指示する宛先メモリ領域と同じ宛先メモリ領域が指示されている有効なライトリクエスト情報がリクエスト管理テーブル部に登録されている場合に、そのリードリクエスト情報を受け付けて未発行状態でリクエスト管理テーブル部に登録し、そのリードリクエスト情報が指示する宛先メモリ領域と同じ宛先メモリ領域が指示されている有効なライトリクエスト情報がリクエスト管理テーブル部に登録されていない場合に、そのリードリクエスト情報をメモリ装置内のメモリコントローラに対して発行すると共に、そのリードリクエスト情報をリクエスト管理テーブル部に登録する。
【００１９】
ライトリクエスト受付判定＆ラッチ部は、データ処理部からライトリクエスト情報を要求されたときに、そのライトリクエスト情報が指示する宛先メモリ領域と同じ宛先メモリ領域が指示されている有効なリードリクエスト情報がリクエスト管理テーブル部に登録されていない場合に、そのライトリクエスト情報をリクエスト管理テーブル部に登録する。
【００２０】
テーブルエントリ無効化部は、メモリ装置内のメモリコントローラからライトリクエスト情報によるメモリ装置へのライトアクセスの完了を示すメモリライト完了信号（ＲＡＭライト完了信号１１１）又はリードリクエスト情報によるメモリ装置へのリードアクセスの完了を示すリードデータ受信信号（１１２）を受信し、そのリードデータ受信信号に対応するリクエスト管理テーブル部に登録されているリードリクエスト情報又はライトリクエスト情報を無効化又は削除し、その無効化又は削除されたテーブルエントリがライトリクエスト情報である場合に、そのライトリクエスト情報と同じ宛先メモリ領域を有する未発行のリードリクエスト情報のテーブルエントリをリクエスト管理テーブル部から検索し、検索されたテーブルエントリに対応するリードリクエスト情報の発行指示をリードリクエスト出力判定＆ラッチ部に対して行う。
【００２１】
上述の態様の構成において、ライトリクエスト情報に対応するライトデータをバッファリングするライトデータバッファ（１０４）と、ライトリクエスト受付判定＆ラッチ部から引き渡されるライトリクエスト情報を保持し、ライトデータバッファに保持されたライトデータが所定量以上になったときに、保持していた１つ以上のライトリクエスト情報を取りまとめて１つのライトリクエスト情報としてメモリ装置内のメモリコントローラに対して発行すると共に、ライトデータバッファに保持されていたライトデータをメモリコントローラに対して出力するライトリクエスト出力判定部とを更に含み、ライトリクエスト受付判定＆ラッチ部は、データ処理部からライトリクエスト情報を要求されたときに、そのライトリクエスト情報をライトリクエスト出力判定部に保持させ、ライトリクエスト情報に対応してデータ処理部から出力されるライトデータをライトデータバッファに保持させるように構成することができる。
【００２２】
このとき、ライトリクエスト出力判定部は更に、リクエスト管理テーブルに登録されている有効なテーブルエントリが所定量以上になったときに、保持していた１つ以上のライトリクエスト情報を取りまとめて１つのライトリクエスト情報としてメモリ装置内のメモリコントローラに対して発行すると共に、ライトデータバッファに保持されていたライトデータをメモリコントローラに対して出力するように構成することができる。
【発明の効果】
【００２３】
リクエスト順序の入れ替え制御によりリクエストのメモリへのアクセス待ち時間を低減させ、メモリアクセスの効率を向上させることができる。
また、ライトリクエストのメモリへの実行数を減らすことで、メモリハンドシェイクによるバス占有率を低減させることができる。よってメモリアクセス時の性能向上に寄与するところが大きい。
【発明を実施するための最良の形態】
【００２４】
以下、図面を参照しながら、最良の実施形態について詳細に説明する。
図１及び図２は、本実施形態のシステム構成図である。このシステムは、前述した図１１のシステム構成を前提としている。図１において、図１１の場合と同じ番号が付された部分は、図１１の場合と同じ動作を実現する。なお、図１において、図１１に示される画像バス１１０９は省略されている。図１に示されるメモリアクセス制御部１０１は、図１１に示されるメモリアクセス制御部１１０３に対応している。
【００２５】
図１において、メモリアクセス制御部１１０３は、画像処理部１１０２からのリクエストを処理するリクエスト制御部１０２、待合せを必要とするリクエストを管理するリクエスト管理テーブル１０３、ライトデータ１０７を保持するライトデータバッファ１０４を有する。
【００２６】
図２は、図１の更に詳細な構成図である。図２のリクエスト制御部１０２は、画像処理部１１０２からのライトリクエスト１０９を受け付けるか否かの判定を行ってラッチするライトリクエスト受付判定＆ラッチ部２０１と、画像処理部１１０２からのライトリクエスト１０９を受け付けるか否かの判定を行ってラッチするリードリクエスト出力判定＆ラッチ部２０２と、画像処理部１１０２からのライトリクエスト１０９を取りまとめてＳＤＲＡＭ１１０４（実際にはＳＤＲＡＭコントローラ１１０５）に対して発行する判断処理を行うライトリクエスト出力判定部２０３と、ＳＤＲＡＭコントローラ１１０５からＲＡＭライト完了信号１１１又はリードデータ受信信号１１２を受信してリクエスト管理テーブル１０３内の対応するテーブルエントリを無効化するテーブルエントリ無効化部２０４とを有する。
【００２７】
図３は、従来技術の問題点の説明における図１２の場合のケースと同じケースにおける本実施形態の動作概要を示す図である。即ち、画像処理部１１０２からＳＤＲＡＭ１１０４上のＡ〜Ｄで示される各宛先ＲＡＭ領域に対して、複数のリクエストが下記の順序で発行された場合を考える。
1)Ａ領域にライトリクエストが発行される。
2)Ａ領域にリードリクエストが発行される。
3)Ｄ領域にリードリクエストが発行される。
4)Ｂ領域にライトリクエストが発行される。
5)Ｂ領域にリードリクエストが発行される。
【００２８】
本実施形態では、ＳＤＲＡＭ１１０４に対して、上記1)で示されるＡ領域へのライトリクエスト１０９が発行されているときに、まず、そのアクセス状態がリクエスト管理テーブル１０３に保持される。そして、同じＡ領域に対して上記2)で示されるリードリクエスト１１０が発行された場合に、リクエスト制御部１０２内のリードリクエスト出力判定＆ラッチ部２０２が、そのリードリクエスト１１０を画像処理部１１０２から一旦受け付けた後、リクエスト管理テーブル１０３にライトリクエスト１０９のＡ領域へのアクセス情報が保持されていることを検出することにより、上記2)で示されるリードリクエスト１１０をリクエスト管理テーブル１０３に登録して未発行状態で待合せをさせる。そして、リードリクエスト出力判定＆ラッチ部２０２やライトリクエスト受付判定＆ラッチ部２０１が、画像処理部１１０２からの後続する異なる宛先ＲＡＭ領域ＤやＢに対する上記3)〜5)で示されるリードリクエスト１１０又はライトリクエスト１０９等を受け付けて、上記2)で示されるリードリクエスト１１０を追い越して、ＳＤＲＡＭ１１０４に対して発行する。
【００２９】
このようにして、本実施形態では、メモリアクセス制御部１０１が、画像処理部１１０２からのリードリクエスト１１０を全て受け付けた上で必要に応じて待合せを行わせることにより、待合せを行うべきリードリクエスト１１０に続いて画像処理部１１０２から発行を要求される他の宛先ＲＡＭ領域宛のリードリクエスト１１０については、それを受け付けた上で追越し発行がなされるため、それらの後続リードリクエスト１１０がメモリアクセス制御部１０１にて受付けを拒否されて画像処理部１１０２内に滞留してしまうことを防ぐことが可能となる。そして、先行ライトリクエスト１０９と同じ宛先ＲＡＭ領域宛の後続リードリクエスト１１０については、データの整合性を保つためにリクエストの順序通りにＳＤＲＡＭ１１０４に発行する制御を行うことができる。
【００３０】
図４は、上述の動作を実現するためのリクエスト管理テーブル１０３のデータ構成例を示す図である。
バリッドフィールド４０１には、それが含まれるテーブルエントリの管理データが有効であるか否かを判別する値が登録される。
【００３１】
通し番号フィールド４０２には、それが含まれるテーブルエントリに対応するリクエストの発行順序を示す通し番号が登録される。
宛先ＲＡＭ領域フィールド４０３には、それが含まれるテーブルエントリに対応するリクエストのＳＤＲＡＭ１１０４上でのアクセスバンクを示すバンクアドレス情報が登録される。
【００３２】
リード／ライト区別フィールド４０４には、それが含まれるテーブルエントリに対応するリクエストが、リードリクエスト１１０であるかライトリクエスト１０９であるかの区別を示す値が登録される。
【００３３】
リクエスト管理テーブル１０３には、上述の構成を有するテーブルエントリを複数エントリ分登録することができる。
上記データ構成例を有するリクエスト管理テーブル１０３を使った、本実施形態の詳細な動作について、以下に順次説明する。
【００３４】
まず、図５は、図２のリードリクエスト出力判定＆ラッチ部２０２が実行する制御を動作を示す動作フローチャートである。
まず、画像処理部１１０２からリードリクエスト１１０が受信されたか否かが判定され待機される（ステップＳ５０１の繰返し処理）。
【００３５】
ここで、リードリクエスト１１０が受信されると、ステップＳ５０１の判定がＹＥＳとなって次に、受信されたリードリクエスト１１０に対応するリードリクエストアドレス１０６と、リクエスト管理テーブル１０３をアクセスして得られる各バンクのＲＡＭライト完了信号待ちリクエスト有無信号２０５とに基づいて、宛先ＲＡＭ領域フィールド４０３の内容が受信されたリードリクエスト１１０がアクセスするバンクアドレスと同じでバリッドフィールド４０１の値が１（＝有効）でリード／ライト区別フィールド４０４の値がライトを示しているテーブルエントリがリクエスト管理テーブル１０３に登録されているか否か、即ち、未完了でＲＡＭライト完了信号１１１を待っている同じバンクアドレス宛のライトリクエスト１０９が登録されているか否かが判定される（ステップＳ５０２）。
【００３６】
未完了で同じバンクアドレス宛のライトリクエスト１０９が登録されていない（ステップＳ５０２の判定がＮＯである）場合には、受信されたリードリクエスト１１０がＳＤＲＡＭ１１０４に対して発行される（ステップＳ５０３）。
【００３７】
そして、発行されたリードリクエスト１１０が、リクエスト管理テーブル１０３の空きエントリ又はバリッドフィールド４０１の値が０（＝無効）であるエントリに登録される。この場合、バリッドフィールド４０１には値１が、通し番号には最新を示すテーブル内の最大値が、宛先ＲＡＭ領域フィールド４０３にはリードリクエストアドレス１０６が示すバンクアドレスが、リード／ライト区別フィールド４０４にはリードを示す値が、それぞれ登録される（以上、ステップＳ５０４）。
【００３８】
未完了で同じバンクアドレス宛のライトリクエスト１０９が登録されている（ステップＳ５０２の判定がＮＯである）場合には、リードリクエスト出力判定＆ラッチ部２０２にて、受信されたリードリクエスト１１０がひとまず受け付けられ、未発行状態として保持される（ステップＳ５０５）。
【００３９】
そして、受け付けられたリードリクエスト１１０が、リクエスト管理テーブル１０３の空きエントリ又はバリッドフィールド４０１の値が０（＝無効）であるエントリに登録される。この場合、バリッドフィールド４０１には値１が、通し番号には最新を示すテーブル内の最大値が、宛先ＲＡＭ領域フィールド４０３にはリードリクエストアドレス１０６が示すバンクアドレスが、リード／ライト区別フィールド４０４にはリードを示す値が、それぞれ登録される（以上、ステップＳ５０６）。
【００４０】
上記ステップＳ５０４又はＳ５０６の処理の後は、他のリードリクエスト１１０の受信待ちの状態に戻る（ステップＳ５０４又はＳ５０６→ステップＳ５０１）。
次に、図６は、図２のライトリクエスト受付判定＆ラッチ部２０１が実行する制御を動作を示す動作フローチャートである。
【００４１】
まず、画像処理部１１０２からライトリクエスト１０９が受信されたか否かが判定され待機される（ステップＳ６０１の繰返し処理）。
ここで、ライトリクエスト１０９が受信されると、ステップＳ６０１判定がＹＥＳとなって次に、受信されたライトリクエスト１０９に対応するライトリクエストアドレス１０５と、リクエスト管理テーブル１０３をアクセスして得られる各バンクのリードデータ受信待ちリクエスト有無信号２０４とに基づいて、宛先ＲＡＭ領域フィールド４０３の内容が受信されたライトリクエスト１０９がアクセスするバンクアドレスと同じでバリッドフィールド４０１の値が１（＝有効）でリード／ライト区別フィールド４０４の値がリードを示しているテーブルエントリがリクエスト管理テーブル１０３に登録されているか否か、即ち、未完了でリードデータ受信信号１１２を待っている同じバンクアドレス宛のリードリクエスト１１０が登録されているか否かが判定される（ステップＳ６０２）。
【００４２】
未完了で同じバンクアドレス宛のリードリクエスト１１０が登録されていない（ステップＳ６０２の判定がＮＯである）場合には、受信されたライトリクエスト１０９がライトリクエスト出力判定部２０３にひとまず保存される（ステップＳ６０３）。
【００４３】
同時に、受信されたライトリクエスト１０９と共に受信されるライトデータ１０７がラバにバッファリングされる（ステップＳ６０４）。
そして、受信されたライトリクエスト１０９が、リクエスト管理テーブル１０３の空きエントリ又はバリッドフィールド４０１の値が０（＝無効）であるエントリに登録される。この場合、バリッドフィールド４０１には値１が、通し番号には最新を示すテーブル内の最大値が、宛先ＲＡＭ領域フィールド４０３にはライトリクエストアドレス１０５が示すバンクアドレスが、リード／ライト区別フィールド４０４にはライトを示す値が、それぞれ登録される（以上、ステップＳ６０５）。
【００４４】
未完了で同じバンクアドレス宛のリードリクエスト１１０が登録されている（ステップＳ６０２の判定がＮＯである）場合には、ライトリクエスト受付判定＆ラッチ部２０１は、画像処理部１１０２に対して、受信したライトリクエスト１０９を待たせる（ステップＳ６０６）。
【００４５】
上記ステップＳ６０５又はＳ６０６の処理の後は、他のライトリクエスト１０９の受信待ちの状態に戻る（ステップＳ６０５又はＳ６０６→ステップＳ６０１）。
続いて、図７は、メモリアクセス制御部１０１内のテーブルエントリ無効化部２０４が、ＳＤＲＡＭコントローラ１１０５（図１参照）から、ＳＤＲＡＭ１１０４に対して発行されたライトリクエスト１０９に対応するライトアクセス動作の完了を示すＲＡＭライト完了信号１１１、又はＳＤＲＡＭ１１０４に対して発行されたリードリクエスト１１０に対応に対応するリードアクセス動作の完了を示すリードデータ受信信号１１２を受信した場合の制御動作を示す動作フローチャートである。
【００４６】
まず、ＲＡＭライト完了信号１１１が受信されたか否かが判定される（ステップＳ７０１）。ＲＡＭライト完了信号１１１が受信されておらずステップＳ７０１の判定がＮＯならば、次に、リードデータ受信信号１１２が受信されたか否かが判定される（ステップＳ７０２）。リードデータ受信信号１１２が受信されておらずステップＳ７０２の判定もＮＯならば、再びステップＳ７０１の処理に戻る。
【００４７】
上記受信待機状態において、ＲＡＭライト完了信号１１１が受信されステップＳ７０１の判定がＹＥＳとなると、当該ＲＡＭライト完了信号１１１が示す１つ以上の宛先ＲＡＭ領域に対するライトアクセスに対応するリクエスト管理テーブル１０３上の１つ以上の削除対象テーブルエントリが検索される（ステップＳ７０３）。具体的には、バリッドフィールド４０１の値が１（＝有効）であり、宛先ＲＡＭ領域フィールド４０３に当該ＲＡＭライト完了信号１１１が示す１つのバンクアドレスが登録され、リード／ライト区別フィールド４０４にライトを示す値が登録されているテーブルエントリが検索される。
【００４８】
後述するように、ライトリクエスト出力判定部２０３は、画像処理部１１０２からの複数のライトリクエスト１０９に対応する複数のライトデータ１０７をライトデータバッファ１０４に所定量まで蓄積し、当該複数のライトリクエスト１０９を１つのライトリクエスト１０９に取りまとめた上で、ＳＤＲＡＭ１１０４に発行する。このため、ＲＡＭライト完了信号１１１は、当該複数のライトリクエスト１０９に対応する複数の宛先ＲＡＭ領域に対するライトアクセスの完了を示している可能性がある。そこで、ステップＳ７０３では、これら１つ以上のライトアクセスに対応してリクエスト管理テーブル１０３に登録されている１つ以上の削除対象テーブルエントリが検索され、そのうちの１つが選択される。
【００４９】
次に、検索された１つのテーブルエントリのバリッドフィールド４０１の値が０（＝無効）にされる（ステップＳ７０４）。これにより、当該テーブルエントリは解放され、他のリクエストを登録可能となる。
【００５０】
続いて、バリッドフィールド４０１の値が１で、宛先ＲＡＭ領域フィールド４０３の値
が上記削除されたテーブルエントリの宛先ＲＡＭ領域フィールド４０３の値と同じで、リード／ライト区別フィールド４０４の値がリードを示しており、通し番号フィールド４０２の値が最も小さい（＝最も古い）、上記対象ライトリクエスト１０９を待ち合わせていたリードリクエスト１１０のテーブルエントリがリクエスト管理テーブル１０３に登録されているか否かが検索される（ステップＳ７０５）。
【００５１】
該当するテーブルエントリが存在しステップＳ７０５の判定がＹＥＳの場合には、テーブルエントリ無効化部２０４は、そのテーブルエントリに対応する未発行のリードリクエスト１１０の発行指示を、リードリクエスト出力判定＆ラッチ部２０２に出す（ステップＳ７０６）。これにより、リードリクエスト出力判定＆ラッチ部２０２から、当該リードリクエスト１１０が、ＳＤＲＡＭ１１０４に対して発行される。
【００５２】
ステップＳ７０６の処理の後又はステップＳ７０５の判定がＮＯの場合には、ステップＳ７０３の処理に戻り、受信されたＲＡＭライト完了信号１１１が示す１つ以上の宛先ＲＡＭ領域に対するライトアクセスに対応する他の削除対象テーブルエントリがリクエスト管理テーブル１０３から検索される。
【００５３】
ステップＳ７０３からＳ７０６までの繰返し処理により、受信されたＲＡＭライト完了信号１１１に対応する削除対象テーブルエントリがリクエスト管理テーブル１０３から検索されなくなり、ステップＳ７０３の判定がＮＯとなったら、ステップＳ７０１の処理に戻り、他のＲＡＭライト完了信号１１１又はリードデータ受信信号１１２の受信待ちの状態に戻る。
【００５４】
一方、ステップＳ７０１とステップＳ７０２の繰返し処理による待機状態において、リードデータ受信信号１１２が受信されステップＳ７０２の判定がＹＥＳとなると、当該リードデータ受信信号１１２が示す宛先ＲＡＭ領域に対するリードアクセスに対応するリクエスト管理テーブル１０３上の削除対象テーブルエントリが検索される。具体的には、バリッドフィールド４０１の値が１（＝有効）であり、宛先ＲＡＭ領域フィールド４０３に当該リードデータ受信信号１１２が示すバンクアドレスが登録され、リード／ライト区別フィールド４０４にリードを示す値が登録されているテーブルエントリが検索される。そして、検索されたテーブルエントリのバリッドフィールド４０１の値が０（＝無効）にされる（以上、ステップＳ７０７）。これにより、当該テーブルエントリは解放され、他のリクエストを登録可能となる。
【００５５】
図８は、上記図５〜図７の動作フローチャートに基づくリクエスト管理テーブル１０３の状態遷移例を示す図である。
今、ＳＤＲＡＭ１１０４上の宛先ＲＡＭ領域であるＡ領域に対してライトリクエスト１０９が発行されているとする。この場合、リクエスト管理テーブル１０３には、図８（ａ）に示されるように、バリッドフィールド４０１の値が１、通し番号フィールド４０２の値が１、宛先ＲＡＭ領域フィールド４０３の値がＡ領域、リード／ライト区別フィールド４０４の値がライト（Ｗ）であるテーブルエントリが登録されている。このエントリの状態は、リクエストが発行済みであるが未完了の状態である。
【００５６】
この状態で、Ａ領域宛のリードリクエスト１１０が受信されると、リクエスト管理テーブル１０３に同じＡ領域宛の未完了のライトリクエスト１０９が登録されているため、図５のステップＳ５０２の判定がＹＥＳとなって、当該リードリクエスト１１０が未発行状態で受け付けられた後（図５のステップＳ５０５）、リクエスト管理テーブル１０３に、図８（ｃ）に示されるように、バリッドフィールド４０１の値が１、通し番号フィールド４０２の値が２、宛先ＲＡＭ領域フィールド４０３の値がＡ領域、リード／ライト区別フィールド４０４の値がリード（Ｒ）であるテーブルエントリが登録される（図５のステップＳ５０６）。
【００５７】
続いて、Ｂ領域宛のリードリクエスト１１０が受信されると、図８（ａ）に示されるように、リクエスト管理テーブル１０３には同じＢ領域宛のリクエストは登録されていないため、図５のステップＳ５０２の判定がＮＯとなって、当該リードリクエスト１１０がＳＤＲＡＭ１１０４に対して先行する未発行状態のＡ領域宛のリードリクエスト１１０を追い越して発行され（図５のステップＳ５０３）、リクエスト管理テーブル１０３に、図８（ｂ）に示されるように、バリッドフィールド４０１の値が１、通し番号フィールド４０２の値が３、宛先ＲＡＭ領域フィールド４０３の値がＢ領域、リード／ライト区別フィールド４０４の値がリード（Ｒ）であるテーブルエントリが登録される（図５のステップＳ５０４）。
【００５８】
その後、Ａ領域宛の発行済みのライトリクエスト１０９のライトアクセスが完了しメモリアクセス制御部１０１にてＳＤＲＡＭコントローラ１１０５からＲＡＭライト完了信号１１１が受信されると、図８（ｂ）の状態のリクエスト管理テーブル１０３上で宛先ＲＡＭ領域がＡ領域となっているテーブルエントリのバリッドフィールド４０１の値が０に落とされてそのエントリが無効化される（図７のステップＳ７０４）。続いて、図８（ｂ）の状態のリクエスト管理テーブル１０３上で同じＡ領域宛のリードリクエスト１１０のテーブルエントリが検索され、そのエントリに対応するリードリクエスト１１０がＳＤＲＡＭ１１０４に対して発行される（図７のステップＳ７０６）。この結果、リクエスト管理テーブル１０３は、図８（ｃ）の状態に遷移する。
【００５９】
以上のようにして、先行する未完了のライトリクエスト１０９が存在するＡ領域宛の後続するリードリクエスト１１０に対しては待合せが行われ、一方、Ｂ領域宛の後続するリードリクエスト１１０は上記リードリクエスト１１０を追い越してＳＤＲＡＭ１１０４に対して発行される。
【００６０】
次に、本実施形態では、リードリクエスト１１０のレイテンシが長いことから、リードリクエスト１１０がＳＤＲＡＭ１１０４のアクセス権を取りやすくするために、ライトリクエスト出力判定部２０３が、複数のライトリクエスト１０９に対応する複数組のライトデータ１０７をライトデータバッファ１０４へバッファリングし、データ量が規定分たまってから、ＳＤＲＡＭ１１０４に対して１個に取りまとめライトリクエスト１０９を発行し、ライトアクセス回数を減らす制御を行う。
【００６１】
従来は、図９（ａ）に示されるように、画像処理部（画像コア）１１０２から発行されるライトリクエスト１０９（図中、ライト１、ライト２、ライト３）毎に、ＳＤＲＡＭ１１０４への発行が行われていた。この結果、同図に示されるように、ライトリクエスト１０９毎に、メモリアクセス制御部１１０３（図１１参照）とＳＤＲＡＭコントローラ１１０５との間で、調停の上での通信を確立するためのハンドシェイク制御が行われた上で、各リクエストが発行されていた。このため、画像処理部１１０２から発行されるライトリクエスト１０９毎にハンドシェイク制御が必要となり、その都度画像バス１１０９（図１１参照）が専有され、他の画像処理マクロ１１０１がＳＤＲＡＭコントローラ１１０５と通信できない期間が長くなっていた。
【００６２】
本実施形態では、図９（ｂ）に示されるように、ライトリクエスト出力判定部２０３が、画像処理部（画像コア）１１０２から発行される複数のライトリクエスト１０９（図中、ライト１、ライト２、ライト３）に対応する複数組のライトデータ１０７をライトデータバッファ１０４に溜め込み、そのバッファ量が規定量に達した場合又はリクエスト管理テーブル１０３における有効な（バリッドフィールド４０１の値が１である）リクエストの保持数が限度数に達した場合の何れかの場合に、それらのライトリクエスト１０９を取りまとめて１つのライトリクエスト１０９とし、それをＳＤＲＡＭ１１０４に対して発行し、ライトデータバッファ１０４に溜め込まれていたライトデータ１０７を画像バス１１０９（図１１参照）に出力する。この結果、ライトリクエスト出力判定部２０３とＳＤＲＡＭコントローラ１１０５との間で交わされるハンドシェイク処理は、図９（ｂ）に示されるように、１回のみで済むため、画像バス１１０９が専有され期間が短くなり、ライトリクエスト１０９のレイテンシが向上する。
【００６３】
図１０は、上述のライトリクエスト１０９の取りまとめ制御を実現するための図２のライトリクエスト出力判定部２０３の制御処理を示す動作フローチャートである。
まず、ライトデータバッファ１０４のバッファ量が規定量に達したか否かが判定される（ステップＳ１００１）。
【００６４】
この判定がＮＯの場合には、更に、リクエスト管理テーブル１０３からのテーブルフル検出信号２０６に基づいて、リクエスト管理テーブル１０３におけるバリッドフィールド４０１の値が１（＝有効）であるリクエストの保持数が限度数に達したか否かが判定される（ステップＳ１００２）。
【００６５】
この判定もＮＯの場合には、ステップＳ１００１の処理に戻り、上記と同様の処理が繰り返される。
ライトデータバッファ１０４のバッファ量が規定量に達してステップＳ１００１の判定がＹＥＳとなった場合、又はリクエスト管理テーブル１０３における有効リクエストの保持数が限度数に達してステップＳ１００２の判定がＹＥＳとなった場合には、ライトリクエスト出力判定部２０３は、保存していたライトリクエスト１０９を１つのライトリクエスト１０９に取りまとめてＳＤＲＡＭ１１０４に対して発行する（ステップＳ１００３）。
【００６６】
そして、ライトリクエスト出力判定部２０３は、ライトデータバッファ１０４に、データ出力指示２０７を出し、そこに滞留していたライトデータ１０７を画像バス１１０９（図１１参照）に出力する。
【００６７】
その後、ステップＳ１００１の処理に戻り、バッファ量とリクエスト量の監視状態に戻る。
以上説明した実施形態では、リクエストの待ち受け又は追越し発行の判定において、リードリクエストアドレス１０６又はライトリクエストアドレス１０５によって指定されるＳＤＲＡＭ１１０４上でのバンクアドレス同士が比較されたが、バンクアドレス以外のアドレス単位で比較が行われてもよい。
【００６８】
また、ライトデータバッファ１０４に或る宛先ＲＡＭ領域宛のライトリクエスト１０９が滞留しているときに、同じ宛先ＲＡＭ領域宛の後続するリードリクエスト１１０が画像処理部１１０２からメモリアクセス制御部１０１に要求された場合には、メモリアクセス制御部１０１は、当該リードリクエスト１１０の待合せを行わずに、メモリアクセス制御部１０１内のライトデータバッファ１０４に滞留しているライトデータ１０７をそのまま画像処理部１１０２に返すような制御が実施されてもよい。
【００６９】
更に、ライトリクエスト出力判定部２０３において取りまとめられるライトリクエスト１０９は、一般的には異なる宛先ＲＡＭ領域に対するリクエストであるが、同じ宛先ＲＡＭ領域（バンクアドレス）に対してライトリクエスト１０９が連続して発行され、それらがバッファリングされるような構成が採用されてもよい。
【００７０】
加えて、ライトリクエスト受付判定＆ラッチ部２０１は、画像処理部１１０２からライ
トリクエスト１０９が要求されたときに、それが指定する宛先ＲＡＭ領域と同じ宛先ＲＡＭ領域宛の先行する未完了のリードリクエストがリクエスト管理テーブル１０３に存在した場合には、画像処理部１１０２に対してそのライトリクエスト１０９を待たせる制御を行ったが（図６のステップＳ６０６）、当該ライトリクエスト１０９を未発行状態でひとまず受け付けてそれに対応するライトデータ１０７をライトデータバッファ１０４にバッファリングするような制御が実施されてもよい。この場合には例えば、ライトリクエスト出力判定部２０３は、ライトリクエスト１０９を１つのリクエストに取りまとめて発行する際に、発行指示が出ているライトデータ１０７のみをライトデータバッファ１０４から出力する制御を実施する。
【００７１】
画像処理を行う画像処理マクロ１１０１以外のデータ処理装置がＳＤＲＡＭ１１０４に対してアクセスを行うシステムの実施形態が適用されてもよい。
【図面の簡単な説明】
【００７２】
【図１】本実施形態のシステム構成図である。
【図２】本実施形態の更に詳細なシステム構成図である。
【図３】本実施形態の動作概要を示す図である。
【図４】リクエスト管理テーブル１０３のデータ構成例を示す図である。
【図５】リードリクエスト出力判定＆ラッチ部２０２が実行する制御を動作を示す動作フローチャートである。
【図６】ライトリクエスト受付判定＆ラッチ部２０１が実行する制御を動作を示す動作フローチャートである。
【図７】ＲＡＭライト完了信号１１１又はリードデータ受信信号１１２の受信時の制御動作を示す動作フローチャートである。
【図８】本実施形態におけるリクエスト管理テーブル１０３の状態遷移例を示す図である。
【図９】ライトデータ１０７のバッファリング制御の説明図である。
【図１０】ライトリクエスト出力判定部２０３の制御処理を示す動作フローチャートである。
【図１１】画像処理マクロを搭載したシステムの構成例を示した図である。
【図１２】従来技術の問題点の説明図である。
【符号の説明】
【００７３】
１０１      メモリアクセス制御部
１０２      リクエスト制御部
１０３      リクエスト管理テーブル
１０４      ライトデータバッファ
１０５      ライトリクエストアドレス
１０６      リードリクエストアドレス
１０７      ライトデータ
１０８      リードデータ
１０９      ライトリクエスト
１１０      リードリクエスト
１１１      ＲＡＭライト完了信号
１１２      リードデータ受信信号
２０１      ライトリクエスト受付判定＆ラッチ部
２０２      リードリクエスト出力判定＆ラッチ部
２０３      ライトリクエスト出力判定部
２０４      各バンクのリードデータ受信待ちリクエスト有無信号
２０５      各バンクのＲＡＭライト完了信号待ちリクエスト有無信号
２０６      テーブルフル検出信号
２０７      データ出力指示
２０８      テーブルエントリ無効化部
４０１      バリッドフィールド
４０２      通し番号フィールド
４０３      宛先ＲＡＭ領域フィールド
４０４      リード／ライト区別フィールド
１１０１      画像処理マクロ
１１０２      画像処理部
１１０３      メモリアクセス制御部
１１０４      ＳＤＲＡＭ１１０４
１１０５      ＳＤＲＡＭコントローラ
１１０６      ＣＰＵマクロ
１１０７      カードインタフェースマクロ
１１０８      周辺マクロ
１１０９      画像バス
１１１０      システムバス
【図１】
2010079536.tif 000003
【図２】
2010079536.tif 000004
【図３】
2010079536.tif 000005
【図４】
2010079536.tif 000006
【図５】
2010079536.tif 000007
【図６】
2010079536.tif 000008
【図７】
2010079536.tif 000009
【図８】
2010079536.tif 000010
【図９】
2010079536.tif 000011
【図１０】
2010079536.tif 000012
【図１１】
2010079536.tif 000013
【図１２】
2010079536.tif 000014