(57)【要約】【課題】並列して情報処理されてシステムメモリに書き込まれる複数のデータを、ＣＰＵの負荷を増加させることなく、且つ、効率的に、さらに情報処理することができる情報処理装置を提供する。【解決手段】情報処理装置１に、情報処理に用いるディスクリプタを生成してシステムメモリ２に格納するシステム制御用ＣＰＵ６と、前記ディスクリプタに基づき読み出した処理前データを情報処理する複数のハードウェアロジック処理部４と、予約起動制御部５を備え、後段のハードウェアロジック処理部４ｂに対応する複数のディスクリプタ３の先頭ディスクリプタアドレスが設定されるディスクリプタアドレス格納部５０と、前段のハードウェアロジック処理部４ａの終了信号が入力されると、対応するディスクリプタアドレスと起動信号を前記後段のハードウェアロジック処理部４ｂに出力するハードウェアロジック制御部５１を前記予約起動制御部５に備える。【選択図】図３
2010102582.tif 000002
【特許請求の範囲】
【請求項１】
システムメモリに記憶されたディスクリプタの情報に基づいて、入力部から入力された処理前データまたは前記システムメモリから読み出した処理前データに対して所定の情報処理を実行し、処理後データを前記システムメモリに書き込む複数のハードウェアロジック処理部と、
処理前データの読出し先頭アドレス、処理前データの容量、処理後データの書込み先頭アドレス、及び、次のディスクリプタアドレスを含み、各ハードウェアロジック処理部に対応付けられる複数のディスクリプタと、前記ディスクリプタで規定される処理対象データとが格納されるシステムメモリと、
後段のハードウェアロジック処理部に対応付けられる複数のディスクリプタの先頭ディスクリプタアドレスが設定されるディスクリプタアドレス格納部と、前段のハードウェアロジック処理部の終了信号が入力されると、当該前段のハードウェアロジック処理部に対応するディスクリプタアドレスを前記ディスクリプタアドレス格納部から読み出して、後段のハードウェアロジック処理部に当該ディスクリプタアドレス及び起動信号を出力するハードウェアロジック制御部を備えた予約起動制御部と、
前記システムメモリに前記ディスクリプタを生成するとともに前記ディスクリプタアドレス格納部に前記先頭ディスクリプタアドレスを設定し、各ハードウェアロジック制御部を起動するシステム制御用ＣＰＵと、
を備えている情報処理装置。
【請求項２】
前記ハードウェアロジック制御部は、複数の前段のハードウェアロジック処理部から同時に終了信号が入力されると、何れかを選択して後段のハードウェアロジック処理部に対応するディスクリプタアドレス及び起動信号を出力する調停回路を備えている請求項１記載の情報処理装置。
【請求項３】
前記ハードウェアロジック制御部は、前段のハードウェアロジック処理部毎に、終了信号でカウントアップし、後段のハードウェアロジック処理部の処理開始信号でカウントダウンするカウンタを備え、前記カウンタの値がゼロでないときに、後段のハードウェアロジック処理部に起動信号を出力する請求項１または２記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システム制御用ＣＰＵにより生成されたディスクリプタに基づいて、処理前データに所定の情報処理を実行して処理後データをシステムメモリに書き込む複数のハードウェアロジック処理部を備えている情報処理装置に関する。
【背景技術】
【０００２】
従来、ハードウェアモジュールでなる複数のハードウェアロジック処理部を備え、当該複数のハードウェアロジック処理部の一または複数により所望の情報処理を実行する情報処理用ＩＣがある。当該情報処理用ＩＣと、所望の情報処理を実行するハードウェアロジック処理部を選択するシステム制御用ＣＰＵと、作業領域となるシステムメモリ（例えばＲＡＭ）により情報処理装置が構成される。
【０００３】
特許文献１には、このような情報処理装置となる情報処理回路が開示されている。当該情報処理回路は、システムメモリと、前記システムメモリからデータを取得し、取得されたデータに基づいて情報処理を行ない出力データを前記システムメモリへ書き込む第一および第二の機能ブロックと、前記システムメモリ上の入力領域および出力領域を指定する領域指定データを前記各機能ブロックへそれぞれ供給して、供給する当該領域指定データの前記入力領域から前記データの取得を、前記出力領域へ前記データの書き込みを前記各機能ブロックにそれぞれさせて前記各機能ブロックを動作させ、前記第一の機能ブロックに供給する前記領域指定データの前記出力領域を、前記第二の機能ブロックに供給する前記領域指定データの前記入力領域とさせる制御コンピュータと、前記第二の機能ブロックに設けられ、前記制御コンピュータから当該第二の機能ブロックに供給される前記領域指定データをダブルバッファリングして、バッファリングする一の領域指定データに係る当該第二の機能ブロックの処理が完了するたびに、予め前記制御コンピュータから取得してバッファリングした次の領域指定データに基づいて当該第二の機能ブロックが次に行なうべき処理を実行開始させるダブルバッファ回路と、前記第一の機能ブロックから、当該第一の機能ブロックより前記システムメモリへの前記結果の出力データの書き込みを示す信号を取得して、カウントアップすると共に、前記第二の機能ブロックから、前記システムメモリから当該第二の機能ブロックへの、前記第一の機能ブロックの前記出力データの取得を示す信号を取得して、カウントダウンを行なうカウンタ回路と、前記カウントアップが前記カウントダウンの回数よりも少なくとも一回多いことを前記カウンタ回路のカウント値が示す間のみ、前記第二の機能ブロックに前記領域指定データに基づく前記処理をさせる実行制御回路とを備えている。
【０００４】
なお、特許文献１の第一及び第二の機能ブロックは、ハードウェアロジック処理部に該当し、制御コンピュータはシステム制御用ＣＰＵに該当する。
【０００５】
特許文献１に開示された情報処理回路では、カウンタ回路の働きにより、第一の機能ブロックにより出力データがシステムメモリに書き込まれた後に、第二の機能ブロックで当該出力データの処理が実行されるため、出力データが書き込まれていない状態で第二の機能ブロックによる処理が開始されるという問題（所謂オーバラン）が生じることはない。
【特許文献１】特開２００８−１１２２８３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
システムメモリには、ハードウェアロジック処理部で情報処理を実行する前の処理前データと、ハードウェアロジック処理部で情報処理を実行した後の出力データである処理後データを格納する領域が区画されている。各ハードウェアロジック処理部は、システム制御用ＣＰＵにより生成されてシステムメモリに書き込まれたディスクリプタに指定された領域から処理前データを読み出し、当該ディスクリプタに指定された領域に処理後データを書き込むように構成されている。
【０００７】
以下に、所定の情報処理を複数のハードウェアロジック処理部の協働で実行する際の当該複数のハードウェアロジック処理部の動作について説明する。
【０００８】
図１は、ディスクリプタの構成を示す図である。ディスクリプタには、処理前データが格納された領域の先頭アドレスである「読出し先頭アドレス」と、処理後データを格納する領域の先頭アドレスである「書込み先頭アドレス」と、「処理前データ容量」と、次のディスクリプタが格納されている領域の先頭アドレスである「次のディスクリプタアドレス」と、処理後データの書き込み終了時に割り込みを発生させるか否かを設定する「ＩＲＱビット」と、処理後データの書込み終了後、次のディスクリプタに対応する処理前データの処理を自動的に開始するか否かを設定する「ＬＩＮＫビット」が規定されている。
【０００９】
図２（ａ）は、複数のハードウェアロジック処理部を備えている情報処理装置を示す図である。情報処理装置９は、前段のハードウェアロジック処理部９０と、予約起動制御部９１と、後段のハードウェアロジック処理部９２と、システムメモリ９３と、不図示のシステム制御用ＣＰＵを備えている。
【００１０】
システム制御用ＣＰＵは、情報処理を開始する際に、ハードウェアロジック処理部９０、９２に対するディスクリプタを生成し、システムメモリ９３に格納する。
【００１１】
前段のハードウェアロジック処理部９０は、対応するディスクリプタ（不図示）に規定された「読出し先頭アドレス」から「処理前データ容量」の処理前データを読み込み、情報処理を実行した後、当該ディスクリプタに規定された「書込み先頭アドレス」に基づいて領域（領域１、領域２、領域３）に処理後データを書き込む。処理後データの書き込みを完了すると、情報処理が終了したことを示す終了信号を出力する。当該終了信号は予約起動制御部９１に入力される。
【００１２】
予約起動制御部９１は、特許文献１に開示されたカウンタ回路（不図示）を備えている。カウンタ回路のカウンタ値が「１」以上であれば、後段のハードウェアロジック処理部９２に情報処理の開始を指示する起動信号を入力する。カウンタ回路のカウンタ値は、前段のハードウェアロジック処理部９０から終了信号が入力されるとインクリメントされ、後段のハードウェアロジック処理部９２から後述する処理開始信号が入力されるとデクリメントされる。
【００１３】
後段のハードウェアロジック処理部９２は、情報処理を開始する際に処理開始信号を予約起動制御部９１に入力し、対応するディスクリプタ９４に規定された「読出し先頭アドレス」に基づいて領域（領域１、領域２、領域３）から処理前データ（前段のハードウェアロジック処理部９０が当該領域に書き込んだ処理後データ）を読み出し、ディスクリプタ９４に規定された「書込み先頭アドレス」に基づいて対象となる領域（不図示）に処理後データを書き込む。
【００１４】
ここで、各ディスクリプタの「ＬＩＮＫビット」には、次のディスクリプタに対応する処理前データの処理を開始することを示すビットが設定されている。例えば、当該ビットに「１」が設定されていると、前段のハードウェアロジック処理部９０と後段のハードウェアロジック処理部９２は、対応するディスクリプタに基づいて、処理前データに対応する処理後データを規定された領域に書き込んだ後、システム制御用ＣＰＵの指令を得ることなく、当該ディスクリプタの次のディスクリプタに基づいて処理前データの情報処理を開始する。
【００１５】
例えば、後段のハードウェアロジック処理部９２はディスクリプタ９４（１）に基づいて、領域１に書き込まれた処理前データに対応する処理後データを規定された領域に書き込んだ後、「次のディスクリプタアドレス」に基づいてディスクリプタ９４（２）を読み出し、ディスクリプタ９４（２）に基づいて領域２に書き込まれた処理前データの情報処理を自動的に開始する。
【００１６】
このように、前段のハードウェアロジック処理部９０と後段のハードウェアロジック処理部９２は、システム制御用ＣＰＵ（不図示）の指令を得ることなく、各ディスクリプタに対応する情報処理を連続して実行することができる。
【００１７】
ここで、複数の前段のハードウェアロジック処理部９０による処理後データを共通の後段のハードウェアロジック処理部９２で処理する際の情報処理装置の動作について説明する。
【００１８】
上述のように、前段のハードウェアロジック処理部９０（９０Ａ、９０Ｂ）は、対応するディスクリプタに基づいて、処理前データに対応する処理後データを規定された領域に書き込んだ後、当該ディスクリプタの次のディスクリプタに基づいて処理前データの情報処理を開始するため、システム制御用ＣＰＵの指令を得ることなく、各ディスクリプタに対応する情報処理を連続して実行する。
【００１９】
ところが、後段のハードウェアロジック処理部９２は、システム制御用ＣＰＵの指令を得なければ、各ディスクリプタに対応する情報処理を連続して実行することができない。
【００２０】
例えば、図２（ｂ）に示すように、前段のハードウェアロジック処理部９０Ａと前段のハードウェアロジック処理部９０Ｂの処理後データを一つの後段のハードウェアロジック処理部９２で情報処理する場合、前段のハードウェアロジック処理部９０Ａと前段のハードウェアロジック処理部９０Ｂの何れが夫々の処理後データを対応する領域（領域Ａ、領域Ｂ）に先に書き込み終えることができるかを予測することができないためである。
【００２１】
従って、このような情報処理を実行する場合の後段のハードウェアロジック処理部９２に対応するディスクリプタ９４の「ＬＩＮＫビット」には、次のディスクリプタに対応する処理前データの処理を開始することを示すビットが設定されていない。後段のハードウェアロジック処理部９４は、あるディスクリプタ９４に対応する情報処理を完了すると待機し、システム制御用ＣＰＵからの指令を得てから次のディスクリプタ９４を読み出して情報処理を実行する。
【００２２】
つまり、複数の前段のハードウェアロジック処理部９０がシステムメモリ９３に書き込んだ複数の処理後データを処理前データとして共通の後段のハードウェアロジック処理部９２で情報処理を実行する際には、システム制御用ＣＰＵの介在が必要である。
【００２３】
システム制御用ＣＰＵは、前段のハードウェアロジック処理部９０から終了信号が割込み入力端子に入力されると、実行中の処理を中断して、対応するディスクリプタ９４を選択し、選択したディスクリプタ９４のディスクリプタアドレスと起動信号を後段のハードウェアロジック処理部９２に入力する処理を実行しなければならないのである。
【００２４】
本発明の目的は、上述の問題に鑑み、並列して情報処理されてシステムメモリに書き込まれる複数のデータを、ＣＰＵの負荷を増加させることなく、且つ、効率的に、さらに情報処理することができる情報処理装置を提供する点にある。
【課題を解決するための手段】
【００２５】
上述の目的を達成するため、本発明による情報処理装置の第一の特徴構成は、特許請求の範囲の書類の請求項１に記載したとおり、システムメモリに記憶されたディスクリプタの情報に基づいて、入力部から入力された処理前データまたは前記システムメモリから読み出した処理前データに対して所定の情報処理を実行し、処理後データを前記システムメモリに書き込む複数のハードウェアロジック処理部と、処理前データの読出し先頭アドレス、処理前データの容量、処理後データの書込み先頭アドレス、及び、次のディスクリプタアドレスを含み、各ハードウェアロジック処理部に対応付けられる複数のディスクリプタと、前記ディスクリプタで規定される処理対象データとが格納されるシステムメモリと、後段のハードウェアロジック処理部に対応付けられる複数のディスクリプタの先頭ディスクリプタアドレスが設定されるディスクリプタアドレス格納部と、前段のハードウェアロジック処理部の終了信号が入力されると、当該前段のハードウェアロジック処理部に対応するディスクリプタアドレスを前記ディスクリプタアドレス格納部から読み出して、後段のハードウェアロジック処理部に当該ディスクリプタアドレス及び起動信号を出力するハードウェアロジック制御部を備えた予約起動制御部と、前記システムメモリに前記ディスクリプタを生成するとともに前記ディスクリプタアドレス格納部に前記先頭ディスクリプタアドレスを設定し、各ハードウェアロジック制御部を起動するシステム制御用ＣＰＵと、を備えている点にある。
【００２６】
ディスクリプタアドレス格納部には、後段のハードウェアロジック処理部が実行する情報処理に関する複数のディスクリプタの先頭ディスクリプタアドレスが格納されているため、ハードウェアロジック制御部は、時間を要することなく効率的に、後段のハードウェアロジック処理部に起動信号と、対象となる先頭ディスクリプタアドレスを入力することができる。
【００２７】
また、後段のハードウェアロジック処理部は、ハードウェアロジック制御部から入力されるディスクリプタアドレスに基づいて対応するディスクリプタをシステムメモリから読み出して情報処理を実行する。従って、システム制御用ＣＰＵは当該情報処理に関与する必要はなく、当該情報処理に関するシステム制御用ＣＰＵの負荷の増加を防止することができる。
【００２８】
同第二の特徴構成は、同請求項２に記載したとおり、上述の第一の特徴構成に加えて、前記ハードウェアロジック制御部は、複数の前段のハードウェアロジック処理部から同時に終了信号が入力されると、何れかを選択して後段のハードウェアロジック処理部に対応するディスクリプタアドレス及び起動信号を出力する調停回路を備えている点にある。
【００２９】
処理すべき処理前データに対応付けられたディスクリプタの選択及び、当該選択したディスクリプタのディスクリプタアドレスと起動信号の入力は調停回路により実行されるため、当該選択や当該入力に関する処理をシステム制御用ＣＰＵで実行する必要はない。
【００３０】
同第三の特徴構成は、同請求項３に記載したとおり、上述の第一または第二の特徴構成に加えて、前記ハードウェアロジック制御部は、前段のハードウェアロジック処理部毎に、終了信号でカウントアップし、後段のハードウェアロジック処理部の処理開始信号でカウントダウンするカウンタを備え、前記カウンタの値がゼロでないときに、後段のハードウェアロジック処理部に起動信号を出力する点にある。
【００３１】
上述の構成によれば、前段のハードウェアロジック処理部による処理後データがシステムメモリに書き込まれた後に、後段のハードウェアロジック処理部は情報処理を開始するため、後段のハードウェアロジック処理部よる情報処理は確実に実行される。
【発明の効果】
【００３２】
以上説明したとおり、本発明によれば、並列して情報処理されてシステムメモリに書き込まれる複数のデータを、ＣＰＵの負荷を増加させることなく、且つ、効率的に、さらに情報処理することができる情報処理装置を提供することができるようになった。
【発明を実施するための最良の形態】
【００３３】
以下、本発明を採用した情報処理装置について説明する。
【００３４】
図３に示すように、情報処理装置１は、システムメモリ２に記憶されたディスクリプタの情報に基づいて、システムメモリ２から読み出した処理前データに対して所定の情報処理を実行し、処理後データをシステムメモリ２に書き込む複数のハードウェアロジック処理部４（４ａ、４ｂ）と、処理前データの読出し先頭アドレス、処理前データの容量、処理後データの書込み先頭アドレス、及び、次のディスクリプタアドレスを含み、各ハードウェアロジック処理部４に対応付けられる複数のディスクリプタと、ディスクリプタで規定される処理対象データとが格納されるシステムメモリ２と、後段のハードウェアロジック処理部４ｂに対応付けられる複数のディスクリプタ３の先頭ディスクリプタアドレスが設定されるディスクリプタアドレス格納部５０と、前段のハードウェアロジック処理部４ａの終了信号が入力されると、前段のハードウェアロジック処理部４ａに対応するディスクリプタアドレスをディスクリプタアドレス格納部５０から読み出して、後段のハードウェアロジック処理部４ｂに当該ディスクリプタアドレス及び起動信号を出力するハードウェアロジック制御部５１を備えた予約起動制御部５と、システムメモリ２にディスクリプタを生成するとともにディスクリプタアドレス格納部５０に先頭ディスクリプタアドレスを設定し、各ハードウェアロジック制御部４を起動するシステム制御用ＣＰＵ６とを備えている。
【００３５】
ハードウェアロジック処理部４と予約起動制御部５は情報処理用ＩＣに備えられた機能ブロックである。各ハードウェアロジック処理部４は、対応付けられたディスクリプタに基づいて予め設定された情報処理を実行する。当該情報処理用ＩＣとシステム制御用ＣＰＵ６とシステムメモリ２は、データバス及びコマンドバスを介して接続されている。
【００３６】
システム制御用ＣＰＵ６は、動作プログラムに規定されたアルゴリズムに基づいて動作し、情報処理装置１を制御する。ハードウェアロジック処理部４及び予約起動制御部５に起動信号を出力して情報処理を開始し、終了信号を出力して情報処理を停止する。
【００３７】
予約起動制御部５は、自身の動作を設定するレジスタを備えている。図４に示すように、当該レジスタは、「稼動制御レジスタ」及び「ハードウェアロジック処理部選択レジスタ」を備えている。システム制御用ＣＰＵ６は、「稼動制御レジスタ」に「１」または「０」のビットを設定することで、予約起動制御部５を起動して自身の負荷を軽減する予約起動制御の有効無効を設定する。
【００３８】
「稼動制御レジスタ」に「１」が設定されているとき、後段のハードウェアロジック処理部４ｂの起動制御を予約起動制御部５が実行する。つまり、予約起動制御部５が起動され、予約起動制御が有効となる。「０」が設定されているときにはシステム制御用ＣＰＵ６が実行する。つまり、予約起動制御部５は起動されず、予約起動制御が無効となる。
【００３９】
「ハードウェアロジック処理部選択レジスタ」は、情報処理用ＩＣに備えられたハードウェアロジック処理部４の個数と同数桁のビットを有している。システム制御用ＣＰＵ６は、「ハードウェアロジック処理部選択レジスタ」を構成する各ビットに「１」または「０」のビットを設定して、各ハードウェアロジック処理部４が情報処理の終了時に出力する終了信号の予約起動制御部５１への入力可否を設定する。「１」が設定されると入力が許容され、「０」が設定されると入力が拒否される。
【００４０】
当該終了信号は、予約起動制御に用いられる。従って、予約起動制御を有効にする際、ハードウェアロジック処理部４が出力する終了信号が予約起動制御部５に入力されるように、システム制御用ＣＰＵ６は、選択したハードウェアロジック処理部４に関するビットを「１」に設定する。
【００４１】
システム制御用ＣＰＵ６は、所望の情報処理の実行に関わるハードウェアロジック処理部４を情報処理装置１に備えられた複数のハードウェアロジック処理部４から選択し、当該選択したハードウェアロジック処理部４に関するディスクリプタを生成しシステムメモリ２に格納する。
【００４２】
当該ディスクリプタは、各ハードウェアロジック処理部４の情報処理単位毎に生成される。例えば、データ容量で規定される情報処理単位が「α」であるハードウェアロジック処理部４で「α」の五倍のデータ容量の処理前データを情報処理する場合には、五個のディスクリプタが生成される。
【００４３】
ハードウェアロジック処理部４は、システム制御用ＣＰＵ６から起動信号が入力されると、対応付けられた複数のディスクリプタのうち、一番目のディスクリプタのディスクリプタアドレス（先頭ディスクリプタアドレス）に基づいて、システムメモリ２から当該ディスクリプタを読み出す。当該ディスクリプタに基づいて処理前データをシステムメモリ２から読み出し、情報処理を実行して処理後データをシステムメモリ２に書き込む。
【００４４】
そして、当該ディスクリプタに規定された次のディスクリプタである二番目のディスクリプタのディスクリプタアドレスに基づいて、二番目のディスクリプタを読み出し、上述と同様にして処理前データを情報処理する。三番目以降のディスクリプタに関しても同様に読み出し、各ディスクリプタに関する情報処理を実行する。全てのディスクリプタに関する情報処理が完了し、システム制御用ＣＰＵ６から終了信号が入力されると停止する。
【００４５】
ハードウェアロジック処理部４は、各ディスクリプタに規定された「ＬＩＮＫビット」には「１」が設定されていると、システム制御用ＣＰＵ６の指令を得ることなく、当該各ディスクリプタに規定された次のディスクリプタアドレスに基づいて次のディスクリプタを読み出し、情報処理を実行する。
【００４６】
ところが、複数の前段のハードウェアロジック処理部４ａがシステムメモリ２に書き込んだ各処理後データを共通の後段のハードウェアロジック処理部４ｂで情報処理する場合、前段のハードウェアロジック処理部４ａの何れが先に処理後データの書き込みを終了するかは不明である。従って、システム制御用ＣＰＵ６は、各前段のハードウェアロジック処理部４ａに対応するディスクリプタ３を後段のハードウェアロジック処理部４ｂで読み出すべき順序を予測することはできない。
【００４７】
そこで、上述の場合には、システム制御用ＣＰＵ６は、各前段のハードウェアロジック処理部４ａに対応するディスクリプタ３を夫々に生成してシステムメモリ２に格納する。当該ディスクリプタ３には、「次のディスクリプタアドレス」が規定されているが、「ＬＩＮＫビット」には「０」が設定されている。
【００４８】
従って、後段のハードウェアロジック処理部４ｂは、あるディスクリプタ３に関する情報処理を終了すると処理を中断する。システム制御用ＣＰＵ６または予約起動制御部５から起動信号と次に読み出すべきディスクリプタ３のディスクリプタアドレスとが入力されると、当該ディスクリプタアドレスに基づいてシステムメモリ２から対応するディスクリプタ３を読み出し、情報処理を実行する。
【００４９】
予約起動制御が無効であるとき、後段のハードウェアロジック処理部４ｂに対する起動信号と次のディスクリプタアドレスの入力はシステム制御用ＣＰＵ６が実行する。
【００５０】
詳述すると、システム制御用ＣＰＵ６は、各ディスクリプタに関する情報処理が終了した際に前段のハードウェアロジック処理部４ａから出力された終了信号が割り込み入力端子に入力されると、起動信号と対応するディスクリプタアドレスを後段のハードウェアロジック処理部４ｂに入力する。
【００５１】
また、複数の終了信号が同時に割込み入力端子に入力されたときには、起動信号とラウンドロビンで選択した何れかの終了信号に対応するディスクリプタアドレスとを後段のハードウェアロジック処理部４ｂに入力する。
【００５２】
そして、後段のハードウェアロジック処理部４ｂは、入力されたディスクリプタアドレスに対応するディスクリプタ３をシステムメモリ２から読み出し、当該ディスクリプタ３に基づいて情報処理を実行する。
【００５３】
一方、予約起動制御が有効であるとき、後段のハードウェアロジック処理部４ｂに対する起動信号と次のディスクリプタアドレスの入力は予約起動制御部５が実行する。
【００５４】
予約起動制御が有効であるとき、システム制御用ＣＰＵ６は、各前段のハードウェアロジック処理部４ａによりシステムメモリ２に書き込まれる処理後データ毎に対応する後段のハードウェアロジック処理部４用のディスクリプタ３を夫々生成し、システムメモリ２に格納する。そして、予約起動制御部５に備えられたディスクリプタアドレス格納部５０に、当該各ディスクリプタ３の先頭ディスクリプタアドレス（一番目のディスクリプタ３のディスクリプタアドレス）を設定する。
【００５５】
ハードウェアロジック制御部５１は、何れかの前段のハードウェアロジック処理部４ａから終了信号が入力されると、当該前段のハードウェアロジック処理部４ａに対応するディスクリプタアドレスをディスクリプタアドレス格納部５０から読み出す。
【００５６】
ここで、ディスクリプタアドレス格納部５０は、上述のように、後段のハードウェアロジック処理部４ｂで情報処理を開始する前に、各前段のハードウェアロジック処理部４ａに対応する先頭ディスクリプタアドレスを格納する。また、後述のように、後段のハードウェアロジック処理部４ｂがディスクリプタ３をシステムメモリ２から読み出す際に、当該ディスクリプタ３に規定された次のディスクリプタアドレスを参照し、当該ディスクリプタアドレスを格納する。
【００５７】
このように、ディスクリプタアドレス格納部５０は、後段のハードウェアロジック回路４ｂが次に実行する可能性のある情報処理に関する各ディスクリプタ３のディスクリプタアドレスを格納している。従って、ハードウェアロジック制御部５１は、前段のハードウェアロジック処理部４ａの何れから終了信号が入力されても、当該入力に対応して即座に対応するディスクリプタアドレスと起動信号を後段のハードウェアロジック処理部４ｂに出力することができる。
【００５８】
また、ハードウェアロジック制御部５１は、複数の前段のハードウェアロジック処理部４ａから同時に終了信号が入力されると、何れかを選択して後段のハードウェアロジック処理部４ｂに対応するディスクリプタアドレス及び起動信号を出力する調停回路５２を備えている。
【００５９】
調停回路５２は、ラウンドロビンで何れかに対応するディスクリプタアドレスを選択し、当該選択後即座に、選択したディスクリプタアドレスを起動信号とともに後段のハードウェアロジック処理部４ｂに出力することができる。なお、選択したディスクリプタアドレスのディスクリプタ３に関する情報処理が後段のハードウェアロジック処理部４ｂで完了した後、後段のハードウェアロジック処理部４ｂから終了信号が予約起動制御部５に入力されると、選択されなかった側のディスクリプタアドレスが、起動信号とともに後段のハードウェアロジック処理部４ｂに出力される。
【００６０】
さらに、ハードウェアロジック制御部５１は、前段のハードウェアロジック処理部４ａ毎に、終了信号でカウントアップし、後段のハードウェアロジック処理部４ｂの処理開始信号でカウントダウンするカウンタ５３を備えている。
【００６１】
ハードウェアロジック制御部５１（調停回路５２）は、カウンタ５３の値がゼロでないときに、後段のハードウェアロジック処理部４ｂに起動信号を出力するように構成されている。従って、前段のハードウェアロジック処理部４ａによりシステムメモリ２に処理後データが書き込まれておらず、情報処理すべき処理前データの準備が整っていないにもかかわらず、後段のハードウェアロジック処理部４ｂで情報処理が開始されることはない。
【００６２】
以下に、複数の前段のハードウェアロジック処理部４ａがシステムメモリ２に書き込んだ各処理後データを処理前データとして、共通の後段のハードウェアロジック処理部４ｂで情報処理する際の情報処理装置１の動作について、図５、図６に示すフローチャートを用いて説明する。
【００６３】
システム制御用ＣＰＵ６は、情報処理を開始するとき（Ｓ１）、当該情報処理に用いるハードウェアロジック処理部４を選択し、夫々に対応するディスクリプタを生成して（Ｓ２）、各ディスクリプタをシステムメモリ２に格納する（Ｓ３）。
【００６４】
また、各前段のハードウェアロジック処理部４ａに対応する後段のハードウェアロジック処理部４ｂ用のディスクリプタ３の先頭ディスクリプタアドレスをディスクリプタアドレス格納部５０に格納する（Ｓ４）。その後、ハードウェアロジック処理部４と予約起動制御部５に起動信号を出力し（Ｓ５）、夫々は起動し、前段のハードウェアロジック処理部４ａは自身に対応するディスクリプタをシステムメモリ２から読み出して情報処理を実行する。
【００６５】
前段のハードウェアロジック処理部４ａから終了信号が入力されると（Ｓ８）、カウンタ５３は当該終了信号に対応するカウンタ値をインクリメントする（Ｓ９）。また、調停回路５２は、当該終了信号と同時に他の前段のハードウェアロジック処理部４ａから終了信号が入力されていないかを判断する。
【００６６】
そして、調停回路５２は、終了信号が同時入力であるときには（Ｓ１０）、ラウンドロビンによる調停で選択した何れかの終了信号に対応するディスクリプタアドレスを選択し（Ｓ１１）、単一での入力であるときには（Ｓ１０）、入力された終了信号に対応するディスクリプタアドレスを選択する。
【００６７】
そして、カウンタ５３のカウント値が「０」でないときに（Ｓ１２）、起動信号と選択したディスクリプタアドレスとを後段のハードウェアロジック処理部４ｂに出力する（Ｓ１３）。
【００６８】
後段のハードウェアロジック処理部４ｂは、起動信号とディスクリプタアドレスが入力されると（Ｓ１７）、処理開始信号を予約起動制御部５に出力し（Ｓ１８）、カウンタ５３は対応するカウンタ値をデクリメントする（Ｓ１４）。
【００６９】
後段のハードウェアロジック処理部４ｂが、システムメモリ２から対応するディスクリプタ３を読み出すと（Ｓ１９）、ディスクリプタアドレス格納部５０は当該ディスクリプタ３に規定された次のディスクリプタアドレスを格納する（Ｓ１５）。
【００７０】
後段のハードウェアロジック処理部４ｂは、読み出したディスクリプタ３に基づいて情報処理を実行し（Ｓ２０）、当該情報処理を終了すると（Ｓ２１）、終了信号を出力する（Ｓ２２）。
【００７１】
システム制御用ＣＰＵ６は、後段のハードウェアロジック処理部４ｂから終了信号が入力されると、全データの情報処理が完了したかを判断する。全データの情報処理が完了したとき（Ｓ６）、ハードウェアロジック処理部４と予約起動制御部５に停止信号を出力する。
【００７２】
ハードウェアロジック処理部４と予約起動制御部５は、後段のハードウェアロジック処理部４ｂが終了信号を出力した後、システム制御用ＣＰＵ６から停止信号が入力されなければ、ステップＳ８、ステップＳ１７からの動作を繰り返し（Ｓ１６、Ｓ２３）、当該停止信号が入力されると（Ｓ１６、Ｓ２３）、停止する。
【００７３】
以下に、本発明の情報処理装置を搭載した画像形成装置について説明する。
【００７４】
図７に示すように、本発明の情報処理装置を搭載した画像形成装置の一例であり、電子写真方式を採用した複写機８は、マンマシンインタフェースである操作部８０と、原稿画像を読み取り画像データを生成する第一スキャナ８１及び第二スキャナ８２と、第一スキャナ８１及び第二スキャナ８２で生成された画像データを操作部８０で設定されたコピー条件に基づいて画像処理して出力用画像データを生成する画像処理部８４と、画像処理部８４が生成した出力用画像データに基づいてトナー画像を用紙に転写し、当該トナー画像を熱定着した当該用紙を排紙するプリンタエンジン８５を備えている。
【００７５】
操作部８０は、拡縮条件やコピー濃度条件などのコピー条件を設定するソフトウェアキーが配置された操作画面を表示する表示部８０ａと、コピー枚数などを入力する数値キーやコピー開始を指示する際に操作するコピーキーなどのハードウェアキー８０ｂを備えている。
【００７６】
操作部８０を制御する操作制御部８００と、第一スキャナ８１を制御する第一スキャナ制御部８１０と、第二スキャナ８２を制御する第二スキャナ制御部８２０と、画像処理部８４と、プリンタエンジン８５を制御するエンジン制御部８５０と、複写機８を統括制御するシステム制御部８６とが、コマンドバス（図７中、細線で示すバス）及び画像バス（図７中、太線で示すバス）を介して接続されている。
【００７７】
システム制御部８６は、バスインタフェースユニット８６０を介してこれらのバスに接続され、当該バスには、ハードディスク制御部８３０を介して、画像データを格納するハードディスク８３が接続されている。
【００７８】
操作制御部８００と、第一スキャナ制御部８１０と、第二スキャナ制御部８２０と、エンジン制御部８５０と、システム制御部８６と、ハードディスク制御部８３０は、ＣＰＵと、ＣＰＵの動作プログラムを格納したＲＯＭと、ＣＰＵの作業領域であるシステムメモリと、周辺回路を備えている。各ＣＰＵは、ＲＯＭから読み出した動作プログラムを実行して、夫々に規定されたアルゴリズムに基づいて動作する。画像処理部８４は画像処理用ＡＳＩＣで構成されている。
【００７９】
複写機８は、本発明を採用した情報処理装置である画像処理装置７を備えている。図８に示すように、画像処理装置７は、システム制御部８６と、画像処理部８４とを備えている。画像処理部８４は、予約起動制御部８４０と、コピー条件に基づいて画像処理を実行する画像処理実行部８４１を備えている。
【００８０】
予約起動制御部８４０は、ディスクリプタアドレス格納部８４２とハードウェアロジック制御部８４３を備えている。
【００８１】
画像処理実行部８４１は、後段のハードウェアロジック処理部であり、シェーディング補正部と、ライン補正部と、ライン補正後の画像データを圧縮してハードディスクに書き込む符号化部と、ハードディスクに格納された画像データを読み出して伸張する復号化部と、回転／変倍処理部と、色空間変換部と、フィルタ処理部と、二値化処理部などの所定の画像処理を実行する複数の機能ブロックを備えている。
【００８２】
操作部８０のコピーキーが操作されると、表示部８０ａに表示された操作画面などを介して設定されたコピー条件が操作制御部８００を介してシステム制御部８６に入力される。
【００８３】
システム制御部８６は、画像処理部８４に操作部８０で設定されたコピー条件に基づいて、画像処理実行部８４１と、本発明の入力部であり且つ前段のハードウェアロジック処理部である第一スキャナ８１及び第二スキャナ８２の夫々に対するディスクリプタ７０を生成し、システムメモリ８６１に格納する。
【００８４】
また、第一スキャナ８１及び第二スキャナ８２に対応する画像処理実行部８４１用のディスクリプタ７３の各先頭ディスクリプタアドレスをディスクリプタアドレス格納部８４２に設定する。
【００８５】
さらに、画像処理実行部８４１に対して、当該コピー条件に関する画像処理を実行する機能ブロックを選択し、選択した各機能ブロックにより画像処理を実行するように設定し、第一スキャナ８１と第二スキャナ８２と画像処理部８４（画像処理実行部８４１）に起動信号を出力する。
【００８６】
ここで、システム制御部８７は、予め設定された処理単位である所定のデータ容量毎に、且つ、原稿一枚毎にディスクリプタ７０を生成する。例えば、あるサイズの原稿を二枚コピーするとき、処理単位のデータ容量が１０ＫＢであり、当該原稿一枚の画像データに対するデータ容量が１００ＫＢであれば、まず、一枚目の原稿に対応するディスクリプタ７０を１０個生成する。
【００８７】
そして、１０個のディスクリプタ７３の先頭ディスクリプタアドレスをディスクリプタアドレス格納部８４２に設定し、起動信号を出力する。当該原稿の画像データの画像処理の完了後、第一スキャナ８１と第二スキャナ８２と画像処理部８４に終了信号を出力してこれらを停止し、二枚目の原稿に対応するディスクリプタ７０を１０個生成する。そして、１０個のディスクリプタ７３の先頭ディスクリプタアドレスをディスクリプタアドレス格納部８４２に設定し、起動信号を出力する。
【００８８】
第一スキャナ８１は原稿表面の画像を、第二スキャナ８２は原稿裏面の画像を略同じタイミングで読み取る。そして、第一スキャナ８１と第二スキャナ８２は生成した各画像データを、夫々のディスクリプタ７１、７２に基づいてシステムメモリ８６１に書き込む。ディスクリプタ７１、７２に規定されたデータ容量（画像処理単位の容量）の画像データの画像処理を完了するたびに終了信号を予約起動制御部８４０に入力する。
【００８９】
ハードウェアロジック制御部８４３は、カウンタ（不図示）で当該終了信号に対応するカウント値をインクリメントする。また、後述するように画像処理実行部８４１から処理開始信号が入力されると対応するカウント値をデクリメントする。カウント値が「０」でなければ、ディスクリプタアドレス格納部８４２から対応するディスクリプタアドレスを読み出し、起動信号とともに当該ディスクリプタアドレスを画像処理実行部８４１に入力する。
【００９０】
画像処理実行部８４１は、処理開始信号を予約起動制御部８４０に入力し、当該ディスクリプタアドレスに基づいてシステムメモリ８６１から対応するディスクリプタ７３を読み出す。このとき、ディスクリプタアドレス格納部８４２は、当該ディスクリプタ７３に規定された次のディスクリプタアドレスを読み出して格納する。
【００９１】
画像処理実行部８４１は、読み出したディスクリプタ７３に基づいて画像データをシステムメモリ８６１から読み出し、設定されたコピー条件に関する画像処理を、選択された機能ブロックを協働して当該画像データに対して実行して出力用画像データを生成する。
【００９２】
システム制御部８７は、生成したディスクリプタ７０に対応する全ての画像データの画像処理が完了すると、第一スキャナ８１と第二スキャナ８２と画像処理部８４（画像処理実行部８４１）に終了信号を出力し、第一スキャナ８１と第二スキャナ８２と画像処理部８４を停止する。
【００９３】
以下に、別実施形態について説明する。
【００９４】
上述の実施形態では、本発明の情報処理装置を搭載した複写機８に、前段のハードウェアロジック処理部として第一スキャナ８１及び第二スキャナ８２を採用し、後段のハードウェアロジック処理部として画像処理用ＡＳＩＣでなる画像処理部８４を採用するものとしたが、これに限定するものではない。
【００９５】
例えば、前段のハードウェアロジック処理部及び後段のハードウェアロジック処理部としてともに画像処理用ＡＳＩＣを採用するものであってもよい。
【００９６】
例えば、シェーディング補正部とライン補正部を前段のハードウェアロジック処理部として採用し、復号化部でなる前段のハードウェアロジック処理部として採用し、回転／変倍処理部と色空間変換部とフィルタ処理部と二値化処理部をハードウェアロジック処理部として採用してもよい。
【００９７】
この場合、例えば、本発明の入力部となる第一スキャナ８１または第二スキャナ８２で読み取った原稿画像に、本発明のシステムメモリとなるハードディスク８３に格納した画像データの画像を合成してコピーする合成コピーなどを複写機８で行なう場合に当該構成を採用することができる。
【００９８】
上述の実施形態では、システム制御部８７は、予め設定された処理単位である所定のデータ容量毎に、且つ、原稿一枚毎にディスクリプタ７０を生成するものとしたが、予め設定された処理単位である所定のデータ容量毎に、且つ、予め設定された所定枚数の原稿毎にディスクリプタ７０を生成するものであってもよい。これにより、ディスクリプタ７０を生成する間に生じる画像処理の待機時間が減少する。
【００９９】
上述の実施形態では、ハードウェアロジック制御部５１が調停回路５２を備えるものとしたが、終了信号が同時入力されることがないように前段のハードウェアロジック処理部４ａが構成されているのであれば、調停回路５２を備える必要はない。また、調停回路５２が行なう調停処理をシステム制御用ＣＰＵ６が行なうように構成してもよい。
【０１００】
上述の実施形態では、ハードウェアロジック制御部５１がカウンタ５３を備えるものとしたが、前段のハードウェアロジック処理部４ａの情報処理速度が後段のハードウェアロジック処理部４ｂの情報処理速度よりも速いなどの場合は、カウンタ５３を備えなくてもよい。
【０１０１】
上述の実施形態は何れも本発明の一実施例に過ぎず、当該記載により本発明の範囲が限定されるものではなく、各部の具体的構成は本発明による作用効果を奏する範囲において適宜変更することができることは言うまでもない。
【図面の簡単な説明】
【０１０２】
【図１】ディスクリプタの説明図
【図２】（ａ）は従来の情報処理装置の機能ブロック図、（ｂ）は従来の情報処理装置の機能ブロック図
【図３】情報処理装置の機能ブロック図
【図４】予約起動制御部の動作を設定するレジスタの説明図
【図５】情報処理装置の動作を説明するフローチャート
【図６】情報処理装置の動作を説明するフローチャート
【図７】画像形成装置の機能ブロック図
【図８】画像形成装置に備えられた情報処理装置の機能ブロック図
【符号の説明】
【０１０３】
１：情報処理装置
２：システムメモリ
３：ディスクリプタ
４ａ：前段のハードウェアロジック処理部
４ｂ：後段のハードウェアロジック処理部
５：予約起動制御部
６：システム制御用ＣＰＵ
５０：ディスクリプタアドレス格納部
５１：ハードウェアロジック制御部
５２：調停回路
５３：カウンタ
【図１】
2010102582.tif 000003
【図２】
2010102582.tif 000004
【図３】
2010102582.tif 000005
【図４】
2010102582.tif 000006
【図５】
2010102582.tif 000007
【図６】
2010102582.tif 000008
【図７】
2010102582.tif 000009
【図８】
2010102582.tif 000010