(57)【特許請求の範囲】
【請求項１】
データ転送レートを保証する必要がある複数のクライアントからのメモリアクセス要求が競合した場合には、所定期間毎に、各クライアントによって生成されかつ各クライアントに設けられているデータバッファへのデータの蓄積状況を示すバッファ残量に基づいて、次に処理すべきトランザクションを仮決定するステップ、
仮決定したトランザクションが次の所定期間において処理可能か否かを、仮決定したトランザクション処理内容、先行トランザクションの処理内容、及び、先行するトランザクション処理開始からの経過時間に基づいてチェックするステップ、ならびに
仮決定したトランザクションが次の所定期間で処理可能であると判定した場合には、その仮決定したトランザクションの処理を次の所定期間から開始し、仮決定したトランザクションが次の所定期間で処理可能ではないと判定した場合には、次の所定期間において、各クライアントによって生成されたバッファ残量に基づいて次に処理すべきトランザクションを仮決定するステップ、
を備えているメモリアクセス調停方法。
【請求項２】
各クライアントによるメモリアクセスがバーストアクセスによって行なわれる場合には、次に処理すべきトランザクションの仮決定は、各クライアントによって生成されたバッファ残量をバースト内転送量によって補正した後のバッファ残量に基づいて行なわれる請求項１に記載のメモリアクセス調停方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
この発明は、デジタル複写機等におけるメモリアクセス調停方法に関する。
【０００２】
【従来の技術】
複数のメモリアクセス要求元（以下、クライアントという）からのメモリアクセス要求に対する調停方法として、▲１▼固定優先順位による調停方法と、▲２▼ラウンドロビン方式による調停方法とがある。
【０００３】
固定優先順位方式による調停方法およびラウンドロビン方式による調停方法は、共に、メモリアクセス要求が競合した場合に、優先順位の高いクライアントからのメモリアクセス要求を優先させるものであるが、固定優先順位方式による調停方法では優先順位が固定されているのに対し、ラウンドロビン方式による調停方法では調停によってクライアントが選択されると、そのクライアントの優先順位が最下位に回り、それにともなって、当該クライアントの調停時の優先順位より低かった他のクライアントの優先順位が繰り上げられる点で両者は異なっている。
【０００４】
クライアントが多数存在し、かつその中のクライアントに対して、スキャナからの画像入力、ＬＳＵ（レーザスキャンユニット）に対する画像出力等のようにデータ転送レートを保証する必要があるようなシステムの場合、上記固定優先順位方式やラウンドロビン方式による調停方法では、特定のクライアントに対してデータ転送レートを保証できなくなる危険性が高い。
【０００５】
つまり、固定優先順位方式による調停方法では、データ転送レートを保証すべき複数のクライアントに対する優先順位を上位に設定しても、データ転送レートを保証すべきクライアントの中の１つが内部にＦＩＦＯ等のバッファを有する場合には、そのバッファにデータが充填されるまでの間は、データ転送レートを保証すべき他のライアントのメモリアクセスを阻害することがある。
【０００６】
また、ラウンドロビン方式による調停方法では、データ転送レートを保証すべきクライアントが要求するデータ転送レートの総和に対してメモリのバンド幅（メモリが有する転送レートのキャパシティ）にあまり余裕がないと、データ転送レートを保証する必要のないクライアントの優先順位が上位に繰り上げられたときにメモリのバンド幅を消費し、データ転送レートを保証すべきクライアントに対して充分なメモリバンド幅を確保できなくなることがある。
【０００７】
【発明が解決しようとする課題】
この発明は、データ転送レートを保証する必要がある特定のクライアントに対して、データ転送レートを保証することができるメモリアクセス調停方法を提供することを目的とする。
【０００８】
【課題を解決するための手段】
この発明によるメモリアクセス調停方法は、データ転送レートを保証する必要がある複数のクライアントからのメモリアクセス要求が競合した場合には、所定期間毎に、各クライアントによって生成されかつ各クライアントに設けられているデータバッファへのデータの蓄積状況を示すバッファ残量に基づいて、次に処理すべきトランザクションを仮決定するステップ、仮決定したトランザクションが次の所定期間において処理可能か否かを、仮決定したトランザクション処理内容、先行トランザクションの処理内容、及び、先行するトランザクション処理開始からの経過時間に基づいてチェックするステップ、ならびに仮決定したトランザクションが次の所定期間で処理可能であると判定した場合には、その仮決定したトランザクションの処理を次の所定期間から開始し、仮決定したトランザクションが次の所定期間で処理可能ではないと判定した場合には、次の所定期間において、各クライアントによって生成されたバッファ残量に基づいて次に処理すべきトランザクションを仮決定するステップを備えていることを特徴とする。
【００１１】
各クライアントによるメモリアクセスがバーストアクセスによって行なわれる場合には、次に処理すべきトランザクションの仮決定は、各クライアントによって生成されたバッファ残量をバースト内転送量によって補正した後のバッファ残量に基づいて行なわれる。
【００１２】
【発明の実施の形態】
以下、図面を参照して、この発明の実施の形態について説明する。
【００１３】
〔１〕デジタル複写機のメモリ制御回路の周辺回路の構成の説明
【００１４】
図１は、デジタル複写機のメモリ制御回路およびその周辺回路の構成を示している。
【００１５】
メモリ制御回路１には、画像入出力Ｉ／Ｆ２、ＨＤＤＩ／Ｆ３、ＳＤＲＡＭ４、ＣＰＵ５および画像圧縮伸長回路６が接続されている。
【００１６】
〔２〕デジタル複写機のメモリ制御回路の構成の説明
【００１７】
図２は、メモリ制御回路１の構成を示している。
【００１８】
メモリ制御回路１は、複数のインターフェース（Ｉ／Ｆ）１１〜１８、画像処理回路（ＲＢＵＦ）１９、内部ＣＯＤＥＣ回路（ＭＸＸ  ）２０および複数のＤＭＡコントローラ（ＤＭＡＣ）２１〜３３を備えている。
【００１９】
この実施の形態では、図示しないスキャナから画像入力Ｉ／Ｆ（ＩＤＩＮ０  ）１５に入力される画像データを、ＤＭＡコントローラ（ＤＭＡＣ１０）２１およびＳＤＲＡＭ    Ｉ／Ｆ（ＳＤＲＡＭＩＦ）１４によってＳＤＲＡＭ４に格納するためのメモリアクセス要求と、ＳＤＲＡＭ４に格納された画像データをＤＭＡコントローラ（ＤＭＡＣ２０）２３およびＳＤＲＡＭ    Ｉ／Ｆ（ＳＤＲＡＭＩＦ）１４によって画像出力Ｉ／Ｆ（ＶＤＯＵＴ０）  １７に出力して印字処理を行なうためのメモリアクセス要求とが競合した場合を例にとって、メモリ制御回路１の調停動作について説明する。
【００２０】
〔３〕画像入力Ｉ／Ｆ（ＩＤＩＮ０）１５に内蔵されているデータバッファおよびその周辺回路の構成の説明
【００２１】
図３は、画像入力Ｉ／Ｆ（ＩＤＩＮ０）  １５に内蔵されているデータバッファおよびその周辺回路の構成を示している。
【００２２】
画像入力Ｉ／Ｆ（ＩＤＩＮ０）  １５は、データバッファ４０と、セレクタ５６と、ストア制御信号生成部５７と、ロード制御信号および選択制御信号生成部５８と、エンコーダ５９とを備えている。
【００２３】
データバッファ４０は、画像入力Ｉ／Ｆ（ＩＤＩＮ０）  １５の動作クロックＷＣＫ  に同期して入力画像データＩＤＩＮ［３１：０］を取込み、システムクロックＳＣＫ  に同期して、画像データｉｄＤａｔａ［３１：０］を出力する。なお、ＳＤＲＡＭ  Ｉ／Ｆ（ＳＤＲＡＭＩＦ）１４もシステムクロックＳＣＫ  に同期して動作するものとする。データバッファ４０は、１５段のワードバッファフラグ生成部４１〜５５を内蔵しており、１５段×３２ｂｉｔのＦＩＦＯとして動作し、データがラッチされたワードバッファフラグ生成部の数（データバッファ４０に蓄積されているデータ量）をバッファ残量ｉｄＦｌａｇ［３：０］  として出力する。
【００２４】
データバッファ４０は、画像入力Ｉ／Ｆ（ＩＤＩＮ０）  １５内部で生成されるデータバッファへの画像データ書き込み制御信号ＩＤＡＣＫ  がアサート（”Ｈ”レベル）  されている期間、動作クロックＷＣＫ  に同期して、画像データＩＤＩＮを取り込む。画像データＩＤＩＮをいずれのワードバッファフラグ生成部４１〜５５に格納するかは、ストア制御信号生成部５７によって生成されるストア制御信号ｓｔ［１４：０］によって制御される。
【００２５】
ストア制御信号生成部５７は、第１カウンタ５７ａと第１デコーダ５７ｂを備えている。第１カウンタ５７ａは、画像データ書き込み制御信号ＩＤＡＣＫ  がアサートされる毎にアップカウント動作を行なう。第１カウンタ５７ａのカウント値は、最大１４であり、１４を越えると０に戻る。
【００２６】
第１デコーダ５７ｂは、第１カウンタ５７ａのカウント値をデコードし、１５本のデコード信号を生成する。ストア制御信号生成部５７は、画像データ書き込み制御信号ＩＤＡＣＫ  とこれらのテコード信号との論理積を演算して、ストア制御信号ｓｔ［１４：０］を生成する。
【００２７】
各ワードバッファフラグ生成部４１〜５５は、それに入力されるストア制御信号ｓｔ０  〜ｓｔ１４が”Ｈ”  のときに、入力画像データＩＤＩＮをラッチする。各ワードバッファフラグ生成部４１〜５５は、データをラッチすると、データ格納フラグｏｆｌａｇ０〜ｏｆｌａｇ１４  をアサートする。そして、各ワードバッファフラグ生成部４１〜５５は、ラッチされたデータを読み出すと、データ格納フラグｏｆｌａｇ０〜ｏｆｌａｇ１４  をネゲートする。
【００２８】
エンコーダ５９は、データ格納フラグｏｆｌａｇ０〜ｏｆｌａｇ１４  のうち、アサート状態にあるフラグの数をエンコードして、バッファ残量フラグｉｄＦｌａｇ［３：０］  を生成する。
【００２９】
データバッファ４０は、ＳＤＲＡＭ  Ｉ／Ｆ（ＳＤＲＡＭＩＦ）１４から送られてくるデータ転送アクノリッジ信号ｓｄＡｃｋ１０  がアサート（”Ｈ”）  されている期間、システムクロックＳＣＫ  に同期して、画像データを出力する。いずれのワードバッファフラグ生成部４１〜５５に格納されている画像データを出力するかは、選択制御信号生成部５８によって生成されるロード制御信号ｌｄ［１４：０］および選択制御信号Ｓｅｌｅｃｔによって制御される。
【００３０】
ロード制御信号および選択制御信号生成部５８は、第２カウンタ５８ａと第２デコーダ５８ｂを備えている。第２カウンタ５８ａは、データ転送アクノリッジ信号ｓｄＡｃｋ１０  がアサートされる毎にアップカウント動作を行なう。第２カウンタ５８ａのカウント値は、最大１４であり、１４を越えると０に戻る。
【００３１】
第２デコーダ５８ｂは、第２カウンタ５８ａのカウント値をデコードし、１５本のデコード信号を生成する。ロード制御信号および選択制御信号生成部５８は、データ転送アクノリッジ信号ｓｄＡｃｋ１０  とこれらのテコード信号との論理積を演算して、ロード制御信号ｌｄを生成する。
【００３２】
各ワードバッファフラグ生成部４１〜５５は、それに入力されるロード制御信号ｌｄ０  〜ｌｄ１４が”Ｈ”  のときに、画像データを読み出すとともに、データ格納フラグｏｆｌａｇ０〜ｏｆｌａｇ１４  をネゲートする。
【００３３】
ロード制御信号および選択制御信号生成部５８は、第２カウンタ５８ａのカウント値を選択制御信号Ｓｅｌｅｃｔとしてセレクタ５６に出力する。セレクタ５６は、選択制御信号Ｓｅｌｅｃｔに対応するワードバッファフラグ生成部４１〜５５から読み出された画像データＤｏ０  〜Ｄｏ１４を選択して、データバッファ出力信号ｉｄＤａｔａ［３１：０］として出力する。
【００３４】
〔４〕画像出力Ｉ／Ｆ（ＶＤＯＵＴ０）１７に内蔵されているデータバッファおよびその周辺回路の構成の説明
【００３５】
図４は、画像出力Ｉ／Ｆ（ＶＤＯＵＴ０）１７に内蔵されているデータバッファおよびその周辺回路の構成を示している。
【００３６】
画像出力Ｉ／Ｆ（ＶＤＯＵＴ０）１７は、データバッファ６０と、セレクタ７６と、ストア制御信号生成部７７と、エンコーダ７８と、ロード制御信号および選択制御信号生成部７９を備えている。
【００３７】
データバッファ６０は、システムクロックＳＣＫ  に同期して、ＳＤＲＡＭ    Ｉ／Ｆ（ＳＤＲＡＭＩＦ）１４の出力データｓｄＤａｔａ［３１：０］を取込み、画像出力Ｉ／Ｆ（ＶＤＯＵＴ０）１７の動作クロックＲＣＫ  に同期して、画像データＯＤＯＵＴ［３１：０］  を出力する。なお、ＳＤＲＡＭ    Ｉ／Ｆ（ＳＤＲＡＭＩＦ）１４もシステムクロックＳＣＫ  に同期して動作するものとする。データバッファ６０は、１５段のワードバッファフラグ生成部６１〜７５を内蔵しており、１５段×３２ｂｉｔのＦＩＦＯとして動作し、データがラッチされていないワードバッファフラグ生成部の数（データバッファ６０の空き容量）をバッファ残量ｏｄＦｌａｇ［３：０］  として出力する。
【００３８】
データバッファ６０は、ＳＤＲＡＭ    Ｉ／Ｆ（ＳＤＲＡＭＩＦ）１４から送られてくるデータ転送アクノリッジ信号ｓｄＡｃｋ２０  がアサート（”Ｈ”レベル）  されている期間、システムクロックＳＣＫ  に同期して、ＳＤＲＡＭＩＦ１４の出力データｓｄＤａｔａを取り込む。入力画像データｓｄＤａｔａをいずれのワードバッファフラグ生成部６１〜７５に格納するかは、ストア制御信号生成部７７によって生成されるストア制御信号ｓｔ［１４：０］によって制御される。
【００３９】
ストア制御信号生成部７７は、第１カウンタ７７ａと第１デコーダ７７ｂを備えている。第１カウンタ７７ａは、データ転送アクノリッジ信号ｓｄＡｃｋ２０  がアサートされる毎にアップカウント動作を行なう。第１カウンタ７７ａのカウント値は、最大１４であり、１４を越えると０に戻る。
【００４０】
第１デコーダ７７ｂは、第１カウンタ７７ａのカウント値をデコードし、１５本のデコード信号を生成する。ストア制御信号生成部７７は、データ転送アクノリッジ信号ｓｄＡｃｋ２０  とこれらのデコード信号との論理積を演算して、ストア制御信号ｓｔ［１４：０］を生成する。
【００４１】
各ワードバッファフラグ生成部６１〜７５は、それに入力されるストア制御信号ｓｔ０  〜ｓｔ１４が”Ｈ”  のときに、ＳＤＲＡＭＩＦ１４の出力データｓｄＤａｔａをラッチする。各ワードバッファフラグ生成部６１〜７５は、データをラッチすると、データ格納フラグｉｆｌａｇ０〜ｉｆｌａｇ１４  をアサートする。そして、各ワードバッファフラグ生成部６１〜７５は、ラッチされたデータを読み出すと、データ格納フラグｉｆｌａｇ０〜ｉｆｌａｇ１４  をネゲートする。
【００４２】
エンコーダ７８は、データ格納フラグｉｆｌａｇ０〜ｉｆｌａｇ１４  のうち、ネゲート状態にあるフラグの数をエンコードして、バッファ残量フラグｏｄＦｌａｇ［３：０］  を生成する。
【００４３】
データバッファ６０は、画像出力ＩＦ１７内部で生成されるデータバッファへの画像データ読み出し制御信号ＯＤＡＣＫ  がアサート（”Ｈ”）  されている期間、画像出力ＩＦ１７の動作クロックＲＣＫ  に同期して、画像データを出力する。いずれのワードバッファフラグ生成部６１〜７５に格納されている画像データを出力するかは、ロード制御信号および選択制御信号生成部７９によって生成されるロード制御信号ｌｄ［１４：０］および選択制御信号Ｓｅｌｅｃｔによって制御される。
【００４４】
ロード制御信号および選択制御信号生成部７９は、第２カウンタ７９ａと第２デコーダ７９ｂを備えている。第２カウンタ７９ａは、画像データ読み出し制御信号ＯＤＡＣＫ  がアサートされる毎にアップカウント動作を行なう。第２カウンタ７９ａのカウント値は、最大１４であり、１４を越えると０に戻る。
【００４５】
第２デコーダ７９ｂは、第２カウンタ７９ａのカウント値をデコードし、１５本のデコード信号を生成する。ロード制御信号および選択制御信号生成部７９は、画像データ読み出し制御信号ＯＤＡＣＫ  とこれらのテコード信号との論理積を演算して、ロード制御信号ｌｄを生成する。
【００４６】
各ワードバッファフラグ生成部６１〜７５は、それに入力されるロード制御信号ｌｄ０  〜ｌｄ１４が”Ｈ”  のときに、画像データを読み出すとともに、データ格納フラグｉｆｌａｇ０〜ｉｆｌａｇ１４  をネゲートする。
【００４７】
ロード制御信号および選択制御信号生成部７９は、第２カウンタ７９ａのカウント値を選択制御信号Ｓｅｌｅｃｔとしてセレクタ７６に出力する。セレクタ７６は、選択制御信号Ｓｅｌｅｃｔに対応するワードバッファフラグ生成部６１〜７５から読み出された画像データＤｏ０  〜Ｄｏ１４を選択して、データバッファ出力信号ＯＤＯＵＴ［３１：０］  として出力する。
【００４８】
〔５〕ＳＤＲＡＭ    Ｉ／Ｆ（ＳＤＲＡＭＩＦ）  １４の構成の説明
【００４９】
図５は、ＳＤＲＡＭ  Ｉ／Ｆ（ＳＤＲＡＭＩＦ）  １４の構成を示している。
【００５０】
ＳＤＲＡＭ  Ｉ／Ｆ（ＳＤＲＡＭＩＦ）  １４は、図２の各ＤＭＡコントローラ２１〜３３および各Ｉ／Ｆ１１〜１３、１５〜１８とのＩ／Ｆを有しているが、ここでは、代表的に、ＤＭＡコントローラ（ＤＭＡＣ１０）２１、ＤＭＡコントローラ（ＤＭＡＣ２０）２３、画像入力Ｉ／Ｆ（ＩＤＩＮ０  ）１５、画像出力Ｉ／Ｆ（ＶＤＯＵＴ０）１７およびＣＰＵ  Ｉ／Ｆ（ＣＰＵＩＦ）１３とのＩ／Ｆのみを図示している。
【００５１】
図５において、ＤＭＡＣ１０  Ｉ／Ｆ８１は、ＤＭＡコントローラ（ＤＭＡＣ１０）  ２１および画像入力Ｉ／Ｆ（ＩＤＩＮ０）１５とのＩ／Ｆを示し、ＤＭＡＣ２０  Ｉ／Ｆ８２は、ＤＭＡコントローラ（ＤＭＡＣ２０）２３および画像出力Ｉ／Ｆ（ＶＤＯＵＴ０）１７とのＩ／Ｆを示し、ＣＰＵＩＦ  Ｉ／Ｆ  ８３は、ＣＰＵ    Ｉ／Ｆ（ＣＰＵＩＦ）  １３とのＩ／Ｆを示している。
【００５２】
ＳＤＲＡＭ    Ｉ／Ｆ（ＳＤＲＡＭＩＦ）  １４は、上記Ｉ／Ｆ８１、８２、８３の他に、調停回路８４、トランザクションファイル８５、コマンド発生回路８６、ストローブ発生回路８７等を備えている。
【００５３】
ＤＭＡＣ１０  Ｉ／Ｆ８１は、画像入力Ｉ／Ｆ（ＩＤＩＮ０）１５からのバッファ残量フラグｉｄＦｌａｇから、バッファ残量補正値（内部信号ＦｌａｇＡｄｊ１０）を減じたものを、Ｆｌａｇ１０として調停回路８４に送る。また、ＤＭＡＣ１０  Ｉ／Ｆ８１は、ストローブ発生回路８７から送られてくるデータ転送アクノリッジ信号ｓｄＡｃｋ１０  に基づいて入力データｉｄＤａｔａをマスク（  各ビットごとの論理積）  して、Ｄａｔａ１０を生成する。そして、Ｄａｔａ１０と、ＣＰＵＩＦ  Ｉ／Ｆ  ８３の出力データＤａｔａＣｐｕ  のビットごとの論理和をとってＳＤＲＡＭ  書き込みデータＷｒｉｔｅＤａｔａ  を生成する。
【００５４】
ＤＭＡＣ２０  Ｉ／Ｆ８２は、画像出力Ｉ／Ｆ（ＶＤＯＵＴ０）１７からのバッファ残量フラグｏｄＦｌａｇから、バッファ残量補正値（内部信号ＦｌａｇＡｄｊ２０）を減じたものを、Ｆｌａｇ２０としてとして調停回路８４に送る。
【００５５】
ＣＰＵＩＦ  Ｉ／Ｆ  ８３は、ＣＰＵ５からのＳＤＲＡＭアクセスに対応する。調停回路８４は、各クライアントからのトランザクション処理要求を調停する。トランザクションファイル８５は、調停回路８４によってＳＤＲＡＭアクセスを割り当てられたトランザクション処理内容を保持し、調停後のサイクル数をカウントする。
【００５６】
コマンド発生回路８６は、トランザクションファイル８５の内容、調停後のサイクル数に基づいて、ＳＤＲＡＭ４に対してコマンドを発行する。ストローブ発生回路８７は、データ転送アクノリッジ信号ｓｄＡｃｋ１０，２０の生成と、ＳＤＲＡＭ４のデータバス制御を行なう。
【００５７】
以下に、各部の主要な入出力信号について説明しておく。
【００５８】
（１）ＤＭＡＣ１０  Ｉ／Ｆ８１、ＤＭＡＣ２０  Ｉ／Ｆ８２、ＣＰＵＩＦ  Ｉ／Ｆ  ８３の入出力信号。
・ｄｍ１０Ｒｅｑ，  ｄｍ２０Ｒｅｑ，  ｃｐｕＳｄｒａｍＲｅｑ  ：  ＳＤＲＡＭ４へのトランザクション処理要求。
・ｉｄＦｌａｇ：画像入力Ｉ／Ｆ（ＩＤＩＮ０）のバッファ残量を示すフラグ。
・ｏｄＦｌａｇ：画像出力Ｉ／Ｆ（ＶＤＯＵＴ０）  のバッファ残量を示すフラグ。
・ｃｐｕＤｉｒ：データ転送の方向（ｒｅａｄ／ｗｒｉｔｅ）を指示する信号。
・ｄｍ１０Ａｄｄｒｅｓｓ，  ｄｍ２０Ａｄｄｒｅｓｓ：ＤＭＡアドレス。
【００５９】
・ｓｄＤｉｓｐａｔｃｈ１０，  ｓｄＤｉｓｐａｔｃｈ２０：ＳＤＲＡＭ    Ｉ／Ｆ（ＳＤＲＡＭＩＦ）１４によりトランザクション処理が受け付けられたことを示す信号。ＤＭＡＣ１０  Ｉ／Ｆ８１、ＤＭＡＣ２０  Ｉ／Ｆ８２は、調停回路８４で生成されたこれらの信号ｓｄＤｉｓｐａｔｃｈ１０，  ｓｄＤｉｓｐａｔｃｈ２０をそのままクライアントに転送する。
【００６０】
・ｓｄＡｃｋ１０，  ｓｄＡｃｋ２０：ＳＤＲＡＭ    Ｉ／Ｆ（ＳＤＲＡＭＩＦ）１４からのデータ転送アクノリッジ信号。ＤＭＡＣ１０  Ｉ／Ｆ８１、ＤＭＡＣ２０  Ｉ／Ｆ８２は、ストローブ信号発生回路８７から送られてくるこれらの信号ｓｄＡｃｋ１０，  ｓｄＡｃｋ２０を、そのまま各クライアントに転送する。
【００６１】
（２）調停回路８４の出力信号
・Ｒｅｇｉｓｔｅｒ：調停回路８４が割り当てたトランザクション処理を、トランザクションファイル８５に登録させるための制御信号。
・Ｃｌｉｅｎｔ：調停回路８４によって現時点で最も優先順位が高いと仮決定されたクライアント（  ＤＭＡコントローラ（ＤＭＡＣ１０）２１、ＤＭＡコントローラ（ＤＭＡＣ２０）２３、…ＣＰＵ    ＩＦ（ＣＰＵＩＦ）  １３）を示すコード。
【００６２】
・Ｂａｎｋ，  Ｒｏｗ  ，  Ｃｏｌ  ：上記最優先クライアントから送られてくるアドレスを、バンク番号、ロウアドレスおよびカラムアドレスに分解したアドレス。
・ＴｒａｎｓＴｙｐｅ  ：上記最優先クライアントのトランザクション処理内容を示すコード（ＲＥＡＤ，ＷＲＩＴＥ）。
・ｓｄＤｉｓｐａｔｃｈ１０，  ｓｄＤｉｓｐａｔｃｈ２０，  ｓｄＤｉｓｐａｔｃｈＣｐｕ  ：調停回路８４によって対応するクライアントによるトランザクション処理要求が受け付けられたことを示す信号。
【００６３】
（３）トランザクションファイル８５の出力信号
【００６４】
・ＦｉｌｅＳｔａｔｅ  ：トランザクションファイル８５の内容が有効（ＶＡＬＩＤ）  なものか、無効（ＩＮＶＡＬＩＤ）  なものかを示す信号。
・ＣＴｒａｎｓＴｙｐｅ：現在登録されているトランザクション処理内容を示すコード（ＲＥＡＤ，ＷＲＩＴＥ）。
・ＣＣｌｉｅｎｔ  ：現在登録されているトランザクション処理の要求元を表すコード。
【００６５】
・ＣＢａｎｋ，  ＣＲｏｗ  ，  ＣＣｏｌ：現在登録されているトランザクション処理の対象アドレスを、バンク番号、ロウアドレスおよびカラムアドレスに分解したアドレス。
・ＣｙｃｌｅＣｏｕｎｔ：トランザクションファイル８５にトランザクション処理が登録されてからのサイクル数をカウントするカウンタのカウンタ値を示す信号。
【００６６】
（４）コマンド発生回路８６の出力信号
・ＲｅａｄＴｒｉｇｇｅｒ  ：ストローブ発生回路８７に対してリードデータのタイミングを指定するトリガ信号。
・ＷｒｉｔｅＴｒｉｇｇｅｒ：ストローブ発生回路８７に対してライトデータのタイミングを指定するトリガ信号。
・／ＣＳ，  ／ＲＡＳ，  ／ＣＡＳ，  ／ＷＥ，  ＢＡ，  ＭＡ：ＳＤＲＡＭ制御信号。
【００６７】
（５）ストローブ発生回路８７の出力信号。
・ｓｄＡｃｋ１０，２０：データ転送アクノリッジ信号。
・ｓｄＤａｔａ：ＳＤＲＡＭ４からのリードデータ。
・ＭＤ：ＳＤＲＡＭＩＦデータバス。
【００６８】
〔６〕アクセス調停方法の説明
【００６９】
ＳＤＲＡＭ４にアクセスするものとして、次のようなものが挙げられる。
（１）各ＤＭＡコントローラ２１〜３３からのトランザクション処理要求
（２）ＣＰＵ    Ｉ／Ｆ（ＣＰＵＩＦ）  １３からのトランザクション処理要求（ＣＰＵアクセス）
【００７０】
ＳＤＲＡＭ    Ｉ／Ｆ（ＳＤＲＡＭＩＦ）１４は、これらのアクセス要求を、優先順位に従って調停し、もっとも優先順位の高いものにアクセス権を与える。優先順位は、各クライアント毎に固定されている。優先順位は、次のように予め定められている。
【００７１】
ＤＭＡＣ１０，ＤＭＡＣ１１，ＤＭＡＣ２０，ＤＭＡＣ２１  ＞ＣＰＵ  アクセス＞ＤＭＡＣ７  ＞ＤＭＡＣ３０，ＤＭＡＣ６＞ＤＭＡＣ４０，ＤＭＡＣ５＞ＤＭＡＣ３１＞ＤＭＡＣ４１＞ＤＭＡＣ８  ＞ＤＭＡＣ９
【００７２】
カンマで区切ったものは同一優先順位である。
【００７３】
同一優先順位のアクセス要求が競合した場合には、ＳＤＲＡＭ    Ｉ／Ｆ（ＳＤＲＡＭＩＦ）１４は、クライアントのバッファの残量フラグをもとに調停を行なう。ただし、バッファを持たないクライアントに対しては、バッファ残量を特定値と見做す。
【００７４】
現在処理中のトランザクション処理要求元クライアントから引き続いてトランザクション処理要求が発生している場合には、バッファ残量からバースト長（  この例では４）を差し引いたものを基に調停する。また、ＳＤＲＡＭ    Ｉ／Ｆ（ＳＤＲＡＭＩＦ）１４は、アクセス要求を受けた場合でも、その要求元クライアントのバッファ残量がバースト長に達していない場合には、そのアクセス要求を調停の対象から除外する。
【００７５】
ＳＤＲＡＭ    Ｉ／Ｆ（ＳＤＲＡＭＩＦ）１４は、毎サイクル毎に次に処理するトランザクションの候補を上記の手順で仮決定する。さらに、仮決定したトランザクションが次のサイクルで処理可能かどうかをチェックし、処理可能であれば、その仮決定したトランザクションの処理を次のサイクルから実際に開始する（ＳＤＲＡＭ４に対するコマンド発行）。
【００７６】
仮決定したトランザクションが次のサイクルで処理可能であるかどうかは、先行するトランザクションの処理内容、仮決定したトランザクションの処理内容および先行するトランザクション処理開始からの経過時間に基づいて判定する。
【００７７】
〔７〕アクセス調停方法の具体例の説明
【００７８】
以下、図６に基づいて、ＤＭＡコントローラ（ＤＭＡＣ１０）２１と、ＤＭＡコントローラ（ＤＭＡＣ２０）２３との２つのクライアントの間でアクセス要求が競合した場合についての調停方法について具体的に説明する。
【００７９】
〔７−１〕ブロック内部信号についての説明
【００８０】
まず、図６に示されているブロック内部信号について説明する。
【００８１】
・ＦｌａｇＡｄｊ２０  ：  バッファ残量フラグｏｄＦｌａｇを補正するためのバッファ残量フラグ補正値。補正値の初期値は０  、ＤＭＡコントローラ（ＤＭＡＣ２０）２３からのトランザクョン処理要求が受付られたことを示す信号ｓｄＤｉｓｐａｔｃｈ２０がアサートされる度にバースト長（この例では４）が加算され、データ転送アクノリッジ信号ｓｄＡｃｋ２０  がアサートされている期間、１ずつ減算されていく。ただし、ＦｌａｇＡｄｊ２０  の最小値は０である。
【００８２】
・ＦｌａｇＡｄｊ１０  ：  バッファ残量フラグｉｄＦｌａｇを補正するためのバッファ残量フラグ補正値。補正値の初期値は０  、ＤＭＡコントローラ（ＤＭＡＣ１０）２１からのトランザクョン処理要求が受付られたことを示す信号ｓｄＤｉｓｐａｔｃｈ１０がアサートされる度にバースト長（この例では”４”）が加算され、データ転送アクノリッジ信号ｓｄＡｃｋ１０  がアサートされている期間、１ずつ減算されていく。ただし、ＦｌａｇＡｄｊ１０  の最小値は０である。
【００８３】
・ＲＣｌｉｅｎｔ  ：  現在登録されているトランザクション処理の要求元を示すコードＣＣｌｉｅｎｔ  を、リードデータのタイミングを示す信号ＲｅａｄＴｒｉｇｇｅｒ  のアサートを条件にラッチした信号。
・ＲｅａｄＴｒｉｇｇｅｒ  ＿ｓｓｓｓ  ：  ＲｅａｄＴｒｉｇｇｅｒ    をシステムクロックＳＣＫ  の４クロック分遅延してラッチした信号。
【００８４】
・ＲｅａｄＡｃｋ  ：  ＲｅａｄＴｒｉｇｇｅｒ  ＿ｓｓｓｓをトリガとして動作する４クロックサイクル幅のワンショット信号。
・ＷｒｉｔｅＡｃｋ  ：  ＷｒｉｔｅＴｒｉｇｇｅｒ  をトリガとして動作する４クロックサイクル幅のワンショット信号。
【００８５】
・ＲＲＣｌｉｅｎｔ  ：  ＲＣｌｉｅｎｔをＲｅａｄＴｒｉｇｇｅｒ  ＿ｓｓｓｓアサートを条件にラッチした信号。
・ＷＣｌｉｅｎｔ  ：  ＣＣｌｉｅｎｔ  をＷｒｉｔｅＴｒｉｇｇｅｒアサートを条件にラッチした信号。
【００８６】
〔７−２〕図６の具体例の前提条件についての説明
【００８７】
図６の具体例の前提条件は、以下の通りである。
【００８８】
（１）ＳＤＲＡＭ４にアクセスするクライアントは、ＤＭＡコントローラ（ＤＭＡＣ１０）２１およびＤＭＡコントローラ（ＤＭＡＣ２０）２３のみであると仮定する。
【００８９】
（２）画像入力Ｉ／Ｆ（ＩＤＩＮ０  ）１５の動作クロック（ＷＣＫ）  、画像出力Ｉ／Ｆ（ＶＤＯＵＴ０）  １７の動作クロックおよびシステムクロック（ＳＣＫ）は、全て同一クロック（  同一周波数）  であるとする。
【００９０】
（３）画像入力Ｉ／Ｆ（ＩＤＩＮ０  ）１５は、３クロックに１回の割合で、データバッファ４０にデータを書き込み（ＩＤＡＣＫ  アサート）  、画像出力Ｉ／Ｆ（ＶＯＵＴ０）１７は、２  クロックに１回の割合で、データバッファ６０からデータを読み出す（ＯＤＡＣＫ  アサート）  ものとする。
【００９１】
（４）ＤＭＡコントローラ（ＤＭＡＣ１０）２１に設定された転送開始アドレスをＡｍ、ＤＭＡコントローラ（ＤＭＡＣ２０）２３に設定された転送開始アドレスをＡｎとする。Ａｍ、Ａｎはともに、バースト境界かつバンク＃０から開始するように、下位４ビットは”０”とする。
【００９２】
（５）ＤＭＡアドレス（ｄｍ１０Ａｄｄｒｅｓｓ，ｄｍ２０Ａｄｄｒｅｓｓ）は、ワード単位のアドレスを示している。したがって、ＤＭＡアドレスは、調停が１回行なわれる毎に、バースト長（４）ずつ増加するものとする。
【００９３】
〔７−３〕図６のタイミングチャートの説明
【００９４】
時点Ｔ１で、ＤＭＡコントローラ（ＤＭＡＣ１０）２１およびＤＭＡコントローラ（ＤＭＡＣ２０）２３が起動される（ｄｍ１０Ｒｅｑ，ｄｍ２０Ｒｅｑアサート）  。また、時点Ｔ１で、画像入力Ｉ／Ｆ（ＩＤＩＮ０  ）１５が起動され、時点Ｔ４で画像出力Ｉ／Ｆ（ＶＯＵＴ０）１７が起動される。
【００９５】
画像入力Ｉ／Ｆ（ＩＤＩＮ０）１５の起動時点Ｔ１においては、データバッファ４０は空なので、バッファ残量フラグｉｄＦｌａｇは”０”となる。また、画像出力Ｉ／Ｆ（ＶＤＯＵＴ０  ）１７の起動時点Ｔ４においては、データバッファ６０は空なので、バッファ残量フラグｏｄＦｌａｇは”１５”となる。
【００９６】
バッファ残量補正値ＦｌａｇＡｄｊ１０  は、画像入力Ｉ／Ｆ（ＩＤＩＮ０  ）１５の起動時点Ｔ１で０であり、バッファ残量補正値ＦｌａｇＡｄｊ２０  は、画像出力Ｉ／Ｆ（ＶＤＯＵＴ０）１７の起動時点Ｔ４においては０である。したがって、ＤＭＡＣ１０  Ｉ／Ｆ８１から出力されるＦｌａｇ１０（ｉｄＦｌａｇ  −ＦｌａｇＡｄｊ１０  ）は、画像入力Ｉ／Ｆ（ＩＤＩＮ０）１５の起動時点Ｔ１で０となり、ＤＭＡＣ２０  Ｉ／Ｆ８２から出力されるＦｌａｇ２０（ｏｄＦｌａｇ  −ＦｌａｇＡｄｊ２０  ）は、画像出力Ｉ／Ｆ（ＶＤＯＵＴ０  ）１７の起動時点Ｔ４においては１５となる。
【００９７】
調停回路８４は、リクエスト信号（ｄｍ１０Ｒｅｑ  、ｄｍ２０Ｒｅｑ）をアサートしているクライアントの中から、データバッファの残量を示すフラグＦｌａｇ１０、Ｆｌａｇ２０を参照して、最優先のクライアントを仮決定する。
【００９８】
画像入力Ｉ／Ｆ（ＩＤＩＮ０  ）１５および画像出力Ｉ／Ｆ（ＶＤＯＵＴ０）１７の起動直後においては、Ｆｌａｇ１０：Ｆｌａｇ２０＝０：１５であるので、ＤＭＡコントローラ（ＤＭＡＣ２０）２３が最優先のクライアントとして仮決定される。つまり、時点Ｔ４において、調停回路８４から出力される信号Ｃｌｉｅｎｔは、ＤＭＡＣ２０を表す信号（  図６では”２０”と表記）  となる。
【００９９】
時点Ｔ４において、トランザクションファイル８５から出力される信号ＦｉｌｅＳｔａｔｅ  は、”ＩＮＶＡＬＩＤ”  状態であるため、調停回路８４は、ＳＤＲＡＭ４にコマンド発行可能であると判定し、Ｒｅｇｉｓｔｅｒをアサートして、調停されたトランザクション内容をトランザクションファイル８５に登録する。
【０１００】
トランザクション内容をトランザクションファイル８５に登録するときには、ＤＭＡアドレス（この場合にはｄｍ２０Ａｄｄｒｅｓｓ  ＝Ａｎ）  は、バンクアドレス（Ｂａｎｋ）、ロウアドレス（Ｒｏｗ）  およびカラムアドレス（Ｃｏｌ）  に分解される。バンクアドレス（Ｂａｎｋ）は、ＤＭＡアドレス（この場合にはｄｍ２０Ａｄｄｒｅｓｓ）を用いてバンクインターリーブをかけることによって得られる。
【０１０１】
以下の説明において、ｄｍ１０Ａｄｄｒｅｓｓ  およびｄｍ２０Ａｄｄｒｅｓｓ  を総称する際には、ｄｍ＃Ａｄｄｒｅｓｓと表記することにする。ロウアドレス（Ｒｏｗ）  は、ＦＣ（ｄｍ＃Ａｄｄｒｅｓｓ）＝｛  ｄｍ＃Ａｄｄｒｅｓｓ［１２：６］，ｄｍ＃Ａｄｄｒｅｓｓ［３：２］  ｝の関数によって、ｄｍ＃Ａｄｄｒｅｓｓから分解・生成される。カラムアドレス（Ｃｏｌ）  は、ＦＲ（ｄｍ＃Ａｄｄｒｅｓｓ）＝ｄｍ＃Ａｄｄｒｅｓｓ［２４：１３］  の関数によって、ｄｍ＃Ａｄｄｒｅｓｓから分解・生成される。
【０１０２】
時点Ｔ４において、調停回路８４は、ＤＭＡコントローラ（ＤＭＡＣ２０）２３からのトランザクション処理要求を受け付けたことを示す信号ｓｄＤｉｓｐａｔｃｈ２０をアサートする。この信号ｓｄＤｉｓｐａｔｃｈ２０は、信号Ｒｅｇｉｓｔｅｒを１クロックディレイしたものと、信号ＣＣｌｉｅｎｔ  の内容をデコードした信号との論理積により生成される。ｓｄＤｉｓｐａｔｃｈ２０がアサートされている期間は、調停回路８４は、調停を禁止する。
【０１０３】
時点Ｔ５において、調停回路８４は、ｓｄＤｉｓｐａｔｃｈ２０のアサートに基づいて、バッファ残量補正値ＦｌａｇＡｄｊ２０  に４を加算する。
【０１０４】
ｓｄＤｉｓｐａｔｃｈ２０がネゲートされると（  時点Ｔ６）  、調停回路８４は、調停を再開する。時点Ｔ６においては、Ｆｌａｇ１０：Ｆｌａｇ２０＝１：１１であるので、ＤＭＡコントローラ（ＤＭＡＣ２０）２３が再び最優先のクライアントとして仮決定される。
【０１０５】
時点Ｔ６においては、トランザクションファイル８５から出力される信号ＦｉｌｅＳｔａｔｅ  が”ＶＡＬＩＤ”  状態となっているため、調停回路８４は、先行トランザクション内容との関係で、ＳＤＲＡＭ４へのコマンド発行が可能か否かを判定する。先行トランザクション内容は”Ｒｅａｄ”なので、図７のリード動作先行動作パターンに基づいて、ＳＤＲＡＭ４へのコマンド発行が可能か否かを判定する。
【０１０６】
この例では、追従トランザクション内容も”Ｒｅａｄ”でバンクが非競合なので、図７の（１）のパターンに該当し、新たに仮決定されたトランザクション内容を登録するためには、先行トランザクションが登録されてから、バースト長ＢＬ（この例では４クロック）分待機する必要がある。
【０１０７】
なお、先行トランザクション内容が”Ｗｒｉｔｅ”  である場合には、図８のライト動作先行動作パターンに基づいて、ＳＤＲＡＭ４へのコマンド発行が可能か否かを判定する。
【０１０８】
図７および図８において、ＢＬはバースト長（この例では４）を、Ｔａｒｂは調停−コマンド発行レイテンシ（この例では２）を、Ｔｒｃｄは／ＲＡＳまたは／ＣＡＳディレイ（この例では２）を、ＣＬは／ＣＡＳレイテイシ（この例では２）を、Ｔｒｅｃはバスリカバリ時間（この例では１）を、Ｔｄａｌは［ＷＲＩＴＡ］  時データ入力−［ＡＣＴ］  発行間隔（この例では３）を、それぞれ示している。
【０１０９】
時点Ｔ６において、最優先のクライアントを仮決定しても、上述したように、先行トランザクションが登録されてから、バースト長ＢＬ（この例では４クロック）分待機する必要があるので、ＣｙｃｌｅＣｏｕｎｔがＢＬとなる時点Ｔ８まで待って、新たに仮決定されたトランザクション内容がトランザクションファイル８５に登録される。
【０１１０】
以下、同様な動作が繰り返し行なわれる。
【０１１１】
時点Ｔ１４  〜時点Ｔ１９  についての動作について説明する。
【０１１２】
時点Ｔ１４  において調停回路８４は調停を再開するが、時点Ｔ１４  ではＦｌａｇ１０およびＦｌａｇ２０はともに３であり、バースト長（４）より小さいため、調停は行なわれない。時点Ｔ１５  では、Ｆｌａｇ１０：Ｆｌａｇ２０＝４：３であるので、ＤＭＡコントローラ（ＤＭＡＣ１０）２１が最優先のクライアントとして仮決定される。
【０１１３】
時点Ｔ１５  においては、トランザクションファイル８５から出力される信号ＦｉｌｅＳｔａｔｅ  は、”ＶＡＬＩＤ”  状態であるため、調停回路８４は、先行トランザクション内容との関係で、ＳＤＲＡＭ４へのコマンド発行が可能か否かを判定する。先行トランザクション内容は”Ｒｅａｄ”なので、図７のリード動作先行動作パターンに基づいて、ＳＤＲＡＭ４へのコマンド発行が可能か否かを判定する。
【０１１４】
この例では、追従トランザクション内容は”Ｗｒｉｔｅ”  でバンクが非競合なので、図７の（２）のパターンに該当し、新たなトランザクションを登録するためには、先行トランザクションが登録されてから、ＣＬ＋ＢＬ＋Ｔｒｅｃ（この例では７クロック）分待機する必要がある。時点Ｔ１２  から７  クロック先の時点は、Ｔ１９  となる。したがって、時点Ｔ１５  で仮決定されたトランザクション内容は、次の時点Ｔ１６  において登録されない。
【０１１５】
最優先クライアントの仮決定は、トランザクションファイルに登録されるまで、毎サイクル毎に行なわれる。
【０１１６】
時点Ｔ１６  、Ｔ１７  においても、Ｆｌａｇ１０：Ｆｌａｇ２０＝４：３であるので、ＤＭＡコントローラ（ＤＭＡＣ１０）２１が最優先のクライアントとして仮決定されるが、上記と同じ理由で、仮決定されたトランザクション内容は、登録されない。時点Ｔ１８  においては、Ｆｌａｇ１０：Ｆｌａｇ２０＝５：４であるので、ＤＭＡコントローラ（ＤＭＡＣ１０）２１が最優先のクライアントとして仮決定される。そして、次の時点時点Ｔ１９  において、時点Ｔ１８  で仮決定されたトランザクション内容が登録される。
【０１１７】
時点Ｔ２５  〜時点Ｔ２９  についての動作について説明する。
【０１１８】
時点Ｔ２５  においては調停回路８４は調停を再開するが、時点Ｔ２５  ではＦｌａｇ１０およびＦｌａｇ２０はともに３であり、バースト長（４）より小さいため、調停は行なわれない。時点Ｔ２６  では、Ｆｌａｇ１０：Ｆｌａｇ２０＝３：４であるため、ＤＭＡコントローラ（ＤＭＡＣ２０）２３が最優先のクライアントとして仮決定される。この場合、図８の（１）のパターンに該当し、新たなトランザクションを登録するためには、先行トランザクションが登録されてから、ＢＬ（この例では４クロック）待機する必要があるので、次の時点Ｔ２７  において新たなトランザクションは登録されない。
【０１１９】
時点Ｔ２７  では、Ｆｌａｇ１０：Ｆｌａｇ２０＝４：４で共に等しいので、予め定められたクライアント、この例ではＤＭＡコントローラ（ＤＭＡＣ１０）２１が最優先のクライアントとして仮決定される。この場合、図８の（２）のパターンに該当し、新たなトランザクションを登録するためには、先行トランザクションが登録されてから、ＢＬ（この例では４）クロック待つ必要があるので、次の時点Ｔ２８  においては新たなトランザクションは登録されない。
【０１２０】
時点Ｔ２８  では、Ｆｌａｇ１０：Ｆｌａｇ２０＝４：５であるので、ＤＭＡコントローラ（ＤＭＡＣ２０）２３が最優先のクライアントとして、仮決定される。この場合、図７の（１）のパターンに該当し、次の時点Ｔ２９  で、新たなトランザクションが登録される。
【０１２１】
バッファ残量フラグｉｄＦｌａｇは、ｓｄＡｃｋ１０  によりレイテンシ１をもって１ずつ減少していき、ＩＤＡＣＫ  によりレイテンシ４をもって１ずつ増加していく。ただし、両信号が同時にアサートされた場合には、バッファ残量フラグｉｄＦｌａｇは変化しない。同様に、バッファ残量フラグｏｄＦｌａｇは、ｓｄＡｃｋ２０  によりレイテンシ１をもって１ずつ減少していき、ＯＤＡＣＫ  によりレイテンシ４をもって１ずつ増加していく。ただし、両信号が同時にアサートされた場合には、バッファ残量フラグｏｄＦｌａｇは変化しない。
【０１２２】
ｄｍ１０Ａｄｄｒｅｓｓ  は、ｓｄＤｉｓｐａｔｈ１０  がアサートされる毎に４ずつ増加していく。同様に、ｄｍ２０Ａｄｄｒｅｓｓ  は、ｓｄＤｉｓｐａｔｈ２０  がアサートされる毎に４ずつ増加していく。
【０１２３】
Ｃｙｃｌｅｃｏｕｎｔ＝３  でかつＣＴｒａｎｃｅＴｙｐｅ  ＝”ＲＥＡＤ”において、ＲｅａｄＴｒｉｇｇｅｒ  がアサートされる。Ｃｙｃｌｅｃｏｕｎｔ＝３  でかつＣＴｒａｎｃｅＴｙｐｅ  ＝”ＷＲＩＴＥ”  において、ＷｒｉｔｅＴｒｉｇｇｅｒがアサートされる。
【０１２４】
ストローブ発生回路８７は、ＲｅａｄＡｃｋ  のアサート時に、ＲＲＣｌｉｅｎｔに保持されているクライアントに対して、データ転送アクノリッジ信号ｓｄＡｃｋ２０  をアサートする。また、ストローブ発生回路８７は、ＷｒｉｔｅＡｃｋアサート時に、ＷＣｌｉｅｎｔ  に保持されているクライアントに対して、データ転送アクノリッジ信号ｓｄＡｃｋ１０  をアサートする。
【０１２５】
画像入力Ｉ／Ｆ（ＩＤＩＮ０）１５のデータバッファ４０は、ｓｄＡｃｋ１０  のアサート時に、ＳＤＲＡＭ  Ｉ／Ｆ（ＳＤＲＡＭＩＦ）１４に対してデータを出力する。画像出力Ｉ／Ｆ（ＶＤＯＵＴ）１７のデータバッファ６０は、ｓｄＡｃｋ２０  のアサート時に、ＳＤＲＡＭ  Ｉ／Ｆ（ＳＤＲＡＭＩＦ）１４の出力データｓｄＤａｔａを取り込む。
【０１２６】
コマンド発生回路８６は、Ｃｙｃｌｅｃｏｕｎｔ＝１の次のサイクルで、ＳＤＲＡＭ４に対して、［ＡＣＴ］  コマンドおよびロウアドレスとしてのＣＲｏｗを発行する。また、コマンド発生回路８６は、Ｃｙｃｌｅｃｏｕｎｔ＝３の次のサイクルで、ＳＤＲＡＭ４に対して、［ＲＥＡＤＡ］／［ＥＲＩＲＡ］  コマンド（  これらのコマンドはＣＴｒａｎｓＴｙｐｅによって切り替えられる）  およびカラムアドレスとしてのＣＣｏｌを発行する。
【０１２７】
上記実施の形態によれば、データ転送レートを保証する必要があるクライアントからのメモリアクセス要求が競合した場合に、データバッファ４０、６０のバッファ残量に基づいて調停を行なっているため、データ転送レートを保証する必要があるクライアントに対してもデータを途切れなく転送することが可能となる。
【０１２８】
また、上記実施の形態のように、固定優先順位方式による調停方法とバッファ残量に基づく調停とを組み合わせることにより、クラスタに分けられたクライアント群ごとに優先順位付けを行うことができるとともに、同一クラスタ内の複数のクライアント間では、各クライアントの要求するデータ転送レートに応じてアクセス権を振り分けることができる。
【０１２９】
また、各クライアントによるメモリアクセスがバーストアクセスによって行なわれる場合には、各クライアントによって生成されたバッファ残量をバースト内転送量によって補正した後のバッファ残量に基づいて、アクセス権の調停を行なっているため、ＳＤＲＡＭ等のメモリに見られるメモリアクセスレイテンシを隠蔽し、連続してデータ転送を行なうことが可能となる。
【０１３０】
さらに、次に処理すべきトランザクションを仮決定し、仮決定したトランザクションが次のサイクルにおいて処理可能か否かを、調停後のサイクル数、仮決定したトランザクション処理内容および先行トランザクションの処理内容とに基づいて判定しているので、メモリアクセスの効率化を図ることができる。
【０１３１】
【発明の効果】
この発明によれば、データ転送レートを保証する必要がある特定のクライアントに対して、データ転送レートを保証することができるメモリアクセス調停方法が実現する。
【図面の簡単な説明】
【図１】デジタル複写機のメモリ制御回路１およびその周辺回路の構成を示すブロック図である。
【図２】メモリ制御回路１の構成を示すブロック図である。
【図３】画像入力Ｉ／Ｆ（ＩＤＩＮ０  ）１５に内蔵されているデータバッファおよびその周辺回路の構成を示すブロック図である。
【図４】画像出力Ｉ／Ｆ（ＶＤＯＵＴ０）１７に内蔵されているデータバッファおよびその周辺回路の構成を示すブロック図である。
【図５】ＳＤＲＡＭ    Ｉ／  Ｆ（ＳＤＲＡＭＩＦ）  １４の構成を示すブロック図である。
【図６】ＤＭＡコントローラ（ＤＭＡＣ１０）２１と、ＤＭＡコントローラ（ＤＭＡＣ２０）２３との２つのクライアントの間でアクセス要求が競合した場合の調停方法を説明するためのタイムチャートである。
【図７】リード動作先行動作パターンを示すタイムチャートである。
【図８】ライト動作先行動作パターンを示すタイムチャートである。
【符号の説明】
１  メモリ制御回路
４  ＳＤＲＡＭ
５  ＣＰＵ
１４  ＳＤＲＡＭ    Ｉ／  Ｆ（ＳＤＲＡＭＩＦ）
１５  画像入力Ｉ／Ｆ（ＩＤＩＮ０  ）
１７  画像出力Ｉ／Ｆ（ＶＤＯＵＴ０）
２１  ＤＭＡコントローラ（ＤＭＡＣ１０）
２３  ＤＭＡコントローラ（ＤＭＡＣ２０）
４０、６０  データバッファ
【図１】
0003615478.tif 000002
【図２】
0003615478.tif 000003
【図３】
0003615478.tif 000004
【図４】
0003615478.tif 000005
【図５】
0003615478.tif 000006
【図６】
0003615478.tif 000007
【図７】
0003615478.tif 000008
【図８】
0003615478.tif 000009