(57)【要約】  【課題】  ＲＡＭとペリフェラルとの間のデータ転送を制御するＤＭＡ機能を有する半導体集積回路において、ＲＡＭに対する複数のペリフェラルからのアクセス要求をスムーズに調停することができる半導体集積回路を提供する。  【解決手段】  この半導体集積回路は、周辺回路に接続されてメモリへのアクセスを要求するアクセス要求信号を発生するメモリアクセス制御手段２２ａ等と、メモリアクセス制御手段に対して設定された優先順位に基づいて、アクセス要求信号を発生するいずれか１つのメモリアクセス制御手段に該アクセスを許可するバス調停手段７０と、メモリアクセス制御手段のメモリへのアクセス状態に関するカウント値を得るカウンタ３３ａ等と、カウンタによって得られたカウント値に基づいて、メモリアクセス制御手段に対して設定された優先順位を変更する優先順位変更手段４０とを具備する。【選択図】  図２
2005056239.tif 000002
【特許請求の範囲】
【請求項１】
中央演算装置を介さずに複数の周辺回路からメモリへのアクセスを制御するダイレクトメモリアクセス機能を有する半導体集積回路であって、
それぞれの周辺回路に接続されて前記メモリへのアクセスを要求するアクセス要求信号を発生し、前記メモリへのアクセスが許可された場合に、その周辺回路と前記メモリとの間のデータ転送を制御する複数のメモリアクセス制御手段と、
前記複数のメモリアクセス制御手段に対して設定された優先順位に基づいて、アクセス要求信号を発生するいずれか１つのメモリアクセス制御手段に前記メモリへのアクセスを許可し、前記メモリへのアクセスが許可されたメモリアクセス制御手段と前記メモリとの間のバス調停を行うバス調停手段と、
前記複数のメモリアクセス制御手段の前記メモリへのアクセス状態に関する複数のカウント値を得る複数のカウンタと、
前記複数のカウンタによって得られた複数のカウント値に基づいて、前記複数のメモリアクセス制御手段に対して設定された優先順位を変更する優先順位変更手段と、
を具備する半導体集積回路。
【請求項２】
前記優先順位変更手段が、複数の所定の値を保持するレジスタを含み、前記複数のカウンタによって得られた複数のカウント値と前記レジスタが保持する複数の所定の値とのそれぞれの比較結果に基づいて、前記複数のメモリアクセス制御手段に対して設定された優先順位を変更する、請求項１記載の半導体集積回路。
【請求項３】
前記複数のメモリアクセス制御手段の前記メモリへのアクセス要求に関する複数のカウント値を得る複数の第２のカウンタをさらに具備し、
前記優先順位変更手段が、前記複数のカウンタによって得られた複数のカウント値と前記複数の第２のカウンタによって得られた複数のカウント値とに基づいて、前記複数のメモリアクセス制御手段に対して設定された優先順位を変更する、
請求項１又は２記載の半導体集積回路。
【請求項４】
前記メモリへのアクセスが最後に許可されたメモリアクセス制御手段に関する情報を記憶する記憶手段と、
前記記憶手段に記憶されている情報に基づいて、前記メモリへのアクセスが最後に許可されたメモリアクセス制御手段から出力されるアクセス要求信号を所定の期間マスクすることにより前記バス調停手段に入力させないアクセス要求信号マスク手段と、
をさらに具備する請求項１〜３のいずれか１項記載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＲＡＭ（random access memory：ランダムアクセスメモリ）とペリフェラル(ＲＡＭの周辺機器又は周辺回路)との間のデータ転送を、ＣＰＵ（central processing unit：中央演算装置）を介さずに制御するＤＭＡ（direct memory access：ダイレクトメモリアクセス）機能を有する半導体集積回路に関する。
【背景技術】
【０００２】
従来より、ＣＰＵにおける処理の負荷を軽減するために、ＣＰＵが転送処理を行うことなく、ＲＡＭとペリフェラルとの間のデータ転送を直接的に行うＤＭＡデータ転送方式が知られている。ＤＭＡデータ転送方式においては、ペリフェラルから出力されるデータをＲＡＭに書き込んだり、ＲＡＭから読み出されるデータをペリフェラルに出力したりするデータ転送が、内部に独立したバッファを有するＤＭＡＣ（ＤＭＡコントローラ）の制御の下で行われる。
【０００３】
複数のペリフェラルが用いられるシステムにおいては、それらのペリフェラルにそれぞれ対応して複数のＤＭＡＣが設けられる。そのような場合には、複数のＤＭＡＣの制御によるデータ転送が競合しないように、ＤＭＡアービタが、ＤＭＡＣに設定された優先順位に基づいて、ＲＡＭと複数のペリフェラルとの間のバスを調停することにより、複数のＤＭＡＣの内のいずれか１つに対して、ＲＡＭへのアクセスを許可する。
【０００４】
しかしながら、ＤＭＡアービタが、予め製造時に設定された固定の優先順位に基づいてＲＡＭへのアクセスを許可する場合には、優先順位が低いＤＭＡＣに対応するペリフェラルにとっては、必要なデータ転送能力が得られないおそれがあるという問題があった。即ち、固定の優先順位を用いる場合には、最上位の優先順位が与えられたＤＭＡＣからアクセス要求が連続して発生したときに、そのアクセス要求が常に受付けられるので、それ以外のＤＭＡＣからのアクセス要求が長い間受付けられず、タイムアウトやオーバーラン等の不具合が発生することもあった。一方、ファームウェアによって擬似固定の優先順位とする場合には、その分のＣＰＵのリソースを使用するので、ＣＰＵのパフォーマンスが低下してしまうという問題があった。
【０００５】
一方、複数のペリフェラルのアクセス順によって回帰的に優先順位を変更する場合には、ある一定のアクセス数において優先順位が平均化されるため、高速動作を行うペリフェラルと低速動作を行うペリフェラルとが混在するシステムにおいては、設計者が意図した最大システム性能が得られないおそれがあるという問題があった。
【０００６】
関連する技術として、下記の特許文献１には、一定時間内にデータを転送する必要のあるデバイス若しくはＤＭＡチャンネルへのデータ転送を確実に保証する調停システム及び調停方法について述べられている。この調停システムは、調停の対象となる複数のデバイスの中で一定時間内にデータを転送する必要がある特定のデバイスのメモリアクセス開始から次のメモリアクセス開始までの時間を計測して、その特定のデバイスが一定時間選択されていないことを検知したら、その特定デバイスのプライオリティが最も高く、又は少なくとも２番目に高くなるように調停手段のプライオリティを変更するようにして、その特定デバイスのメモリアクセス要求を一定時間ごとに許可できるようにしたものである。
【０００７】
しかしながら、この調停システムにおいては、プライオリティを高くする対象となる全ての特定デバイスに対して、メモリアクセス間隔に関する一定時間を設定する必要がある。例えば、外付けハードディスクドライブに記録されているデータをＲＡＭに書き込む場合には、単位時間内に転送しなければならない転送量を定める必要がないので、メモリアクセス間隔に関する一定時間を設定する必要がないが、外付けハードディスクドライブのプライオリティを高くしたい場合には、外付けハードディスクドライブに対して、メモリアクセス間隔に関する一定時間を設定する必要があるので、設定が煩雑となってしまう。
【特許文献１】特開平９−９１１９４号公報（第１，７頁、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００８】
そこで、上記の点に鑑み、本発明は、ＲＡＭとペリフェラルとの間のデータ転送をＣＰＵを介さずに制御するＤＭＡ機能を有する半導体集積回路において、多数のペリフェラルを使用するシステムにおいても、少数のペリフェラルを使用するシステムにおいても、ＲＡＭに対する複数のペリフェラルからのアクセス要求をスムーズに調停することができる半導体集積回路を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するため、本発明に係る半導体集積回路は、中央演算装置を介さずに複数の周辺回路からメモリへのアクセスを制御するダイレクトメモリアクセス機能を有する半導体集積回路であって、それぞれの周辺回路に接続されてメモリへのアクセスを要求するアクセス要求信号を発生し、メモリへのアクセスが許可された場合に、その周辺回路とメモリとの間のデータ転送を制御する複数のメモリアクセス制御手段と、複数のメモリアクセス制御手段に対して設定された優先順位に基づいて、アクセス要求信号を発生するいずれか１つのメモリアクセス制御手段にメモリへのアクセスを許可し、メモリへのアクセスが許可されたメモリアクセス制御手段とメモリとの間のバス調停を行うバス調停手段と、複数のメモリアクセス制御手段のメモリへのアクセス状態に関する複数のカウント値を得る複数のカウンタと、複数のカウンタによって得られた複数のカウント値に基づいて、複数のメモリアクセス制御手段に対して設定された優先順位を変更する優先順位変更手段とを具備する。
【００１０】
ここで、優先順位変更手段が、複数の所定の値を保持するレジスタを含み、複数のカウンタによって得られた複数のカウント値とレジスタが保持する複数の所定の値とのそれぞれの比較結果に基づいて、複数のメモリアクセス制御手段に対して設定された優先順位を変更するようにしても良い。
【００１１】
また、この半導体集積回路が、複数のメモリアクセス制御手段のメモリへのアクセス要求に関する複数のカウント値を得る複数の第２のカウンタをさらに具備し、優先順位変更手段が、複数のカウンタによって得られた複数のカウント値と複数の第２のカウンタによって得られた複数のカウント値とに基づいて、複数のメモリアクセス制御手段に対して設定された優先順位を変更するようにしても良い。
【００１２】
また、この半導体集積回路は、メモリへのアクセスが最後に許可されたメモリアクセス制御手段に関する情報を記憶する記憶手段と、記憶手段に記憶されている情報に基づいて、メモリへのアクセスが最後に許可されたメモリアクセス制御手段から出力されるアクセス要求信号を所定の期間マスクすることによりバス調停手段に入力させないアクセス要求信号マスク手段とをさらに具備するようにしても良い。
【発明の効果】
【００１３】
本発明によれば、複数のメモリアクセス制御手段のメモリへのアクセス状態に関する複数のカウント値に基づいて、複数のメモリアクセス制御手段に対して設定された優先順位を変更するので、多数のペリフェラルを使用するシステムにおいても、少数のペリフェラルを使用するシステムにおいても、ＲＡＭに対する複数のペリフェラルからのアクセス要求をスムーズに調停することができる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明を実施するための最良の形態について、図面を参照しながら詳しく説明する。なお、同一の構成要素には同一の参照番号を付して、説明を省略する。
図１は、本発明の第１の実施形態に係る半導体集積回路を含むシステムの構成を示すブロック図である。このシステムは、プリンタにおいて印字データを処理するためのシステムである。図１に示すように、このシステムは、データを記憶するＲＡＭ１０と、ＲＡＭ１０へのデータの書込み及びＲＡＭ１０からのデータの読出しをＤＭＡデータ転送方式によって行う半導体集積回路２０と、システム全体を制御するＣＰＵ９０とを含んでいる。
【００１５】
半導体集積回路２０は、複数のペリフェラル２１ａ、２１ｂ、・・・と、これらのペリフェラルに対応して設けられ、これらのペリフェラルとＲＡＭ１０との間のデータ転送を制御する複数のＤＭＡＣ２２ａ、２２ｂ、・・・と、ＲＡＭ１０との間でデータの受渡しを行うメモリインタフェース２３と、複数のＤＭＡＣとメモリインタフェース２３との間のバス調停を行うＤＭＡアービタ３０とを含んでいる。
【００１６】
ここで、ペリフェラル２１ａ、２１ｂ、・・・としては、プリンタ内部の印字部との間でデータ転送を行うためのプリントデータインタフェースや、プリンタに付属するスキャナとの間でデータ転送を行うためのスキャナインタフェースや、パーソナルコンピュータやデジカメ等の外部装置との間でデータ転送を行うためのシリアルインタフェースであるＩＥＥＥ１３９４又はＵＳＢ（universal serial bus）等や、パラレルインタフェースであるＩＥＥＥ１２８４や、ネットワークに接続された装置との間でデータ転送を行うためのネットワークインタフェース等が該当する。
【００１７】
ＤＭＡＣ２２ａ、２２ｂ、・・・は、それぞれ独立したバッファを有しており、それぞれのペリフェラルから出力されるデータをＲＡＭ１０に書き込んだり、ＲＡＭ１０から読み出されるデータをそれぞれのペリフェラルに出力したりする。また、ＤＭＡＣ２２ａ、２２ｂ、・・・の各々は、ＲＡＭ１０へのアクセスを要求するリクエスト信号を発生し、アクセスが許可された場合にはアクノリッジ信号を受信する。
【００１８】
ＤＭＡアービタ３０は、ＤＭＡＣ２２ａ、２２ｂ、・・・から入力されるリクエスト信号、及び、ＲＡＭ１０へのアクセスに関するそれらのＤＭＡＣの優先順位に基づいて、それらのＤＭＡＣとメモリインタフェース２３との間でバス調停を行う。本実施形態においては、ＤＭＡアービタ３０が、各々のＤＭＡＣからバスの使用を要求するために出力されるリクエスト信号と、各々のＤＭＡＣにバスの使用を許可するために入力されるアクノリッジ信号とを、所定の期間においてサンプリングすることにより、リクエスト信号が出力されている時間とアクノリッジ信号が入力されている時間とに基づいて、ＤＭＡＣ２２ａ、２２ｂ、・・・の優先順位を変更する。
【００１９】
図２は、図１に示すＤＭＡアービタの詳細な構成を示すブロック図である。なお、図２には、３つのＤＭＡＣを用いる例が示されている。図２に示すように、ＤＭＡアービタ３０は、２つのタイマ３１及び３２と、それぞれのＤＭＡＣからリクエスト信号が出力されている時間を累積するカウンタ３３ａ〜３３ｃと、それぞれのＤＭＡＣにアクノリッジ信号が入力されている時間を累積するカウンタ３４ａ〜３４ｃと、複数のＤＭＡＣの優先順位を変更するプライオリティジェネレータ部４０と、いずれかのＤＭＡＣにＲＡＭ１０へのアクセスを許可するアービタ部７０と、マルチプレクサ３５とを含んでいる。
【００２０】
タイマ３１は、サンプリングを継続して行う期間を規定するタイミング信号を出力する。タイマ３２は、リクエスト信号及びアクノリッジ信号をサンプリングするために用いられるサンプリングクロック信号を出力する。
【００２１】
カウンタ３３ａは、タイミング信号によってリセットされ、ＤＭＡＣ２２ａからリクエスト信号が出力されているときにサンプリングクロック信号のパルスをカウントすることにより、ＤＭＡＣ２２ａからリクエスト信号が出力されている時間に相当するカウント値Ｃａ１を出力する。同様に、カウンタ３３ｂは、ＤＭＡＣ２２ｂからリクエスト信号が出力されているときにサンプリングクロック信号のパルスをカウントすることにより、ＤＭＡＣ２２ｂからリクエスト信号が出力されている時間に相当するカウント値Ｃｂ１を出力し、カウンタ３３ｃは、ＤＭＡＣ２２ｃからリクエスト信号が出力されているときにサンプリングクロック信号のパルスをカウントすることにより、ＤＭＡＣ２２ｃからリクエスト信号が出力されている時間に相当するカウント値Ｃｃ１を出力する。
【００２２】
カウンタ３４ａは、タイミング信号によってリセットされ、ＤＭＡＣ２２ａにＲＡＭ１０へのバスアクセス権を示すアクノリッジ信号が入力されているときにサンプリングクロック信号のパルスをカウントすることにより、ＤＭＡＣ２２ａにアクノリッジ信号が入力されている時間に相当するカウント値Ｃａ２を出力する。同様に、カウンタ３４ｂは、ＤＭＡＣ２２ｂにアクノリッジ信号が入力されているときにサンプリングクロック信号のパルスをカウントすることにより、ＤＭＡＣ２２ｂにアクノリッジ信号が入力されている時間に相当するカウント値Ｃｂ２を出力し、カウンタ３４ｃは、ＤＭＡＣ２２ｃにアクノリッジ信号が入力されているときにサンプリングクロック信号のパルスをカウントすることにより、ＤＭＡＣ２２ｃにアクノリッジ信号が入力されている時間に相当するカウント値Ｃｃ２を出力する。
【００２３】
プライオリティジェネレータ部４０は、カウンタ３３ａ〜３３ｃ及び３４ａ〜３４ｃにおいて得られたカウンタ値に基づいて、既に設定されているＤＭＡＣの優先順位を変更する。アービタ部７０は、複数のＤＭＡＣから出力されるリクエスト信号と複数のＤＭＡＣの優先順位とに基づいて、いずれかのＤＭＡＣにアクノリッジ信号を出力すると共に、バス調停信号を出力する。マルチプレクサ３５は、バス調停信号に基づいて、いずれかのＤＭＡＣとメモリインタフェース２３との間のバスを接続する。
【００２４】
本実施形態においては、タイマ３１から出力されるタイミング信号のパルスの周期Ｔ１によってサンプリング継続期間を規定し、タイマ３２から出力されるサンプリングクロック信号のパルスの周期Ｔ２（＜Ｔ１）によってサンプリング期間を規定する。
【００２５】
即ち、図３に示すように、ＤＭＡＣ２２ａからリクエスト信号Ｒａが出力されているときに、サンプリング期間Ｔ２毎にカウンタ３３ａにおけるカウント値Ｃａ１が１ずつインクリメントされ、サンプリング期間Ｔ１の間にカウント値Ｃａ１がＮＲまで増加する。その場合には、ＮＲ×Ｔ２の期間においてリクエスト信号が出力されていたことになる。
【００２６】
また、ＤＭＡＣ２２ａにアクノリッジ信号が入力されているときに、サンプリング期間Ｔ２毎にカウンタ３４ａにおけるカウント値Ｃａ２が１ずつインクリメントされ、サンプリング期間Ｔ１の間にカウント値Ｃａ２がＮＡまで増加する。その場合には、ＮＡ×Ｔ２の期間においてアクノリッジ信号が出力されていたことになる。このように、タイマ３２から出力されるサンプリングクロック信号に同期してカウントを行うことにより、高ビットのカウンタを用いる必要はない。
【００２７】
再び図２を参照すると、プライオリティジェネレータ部４０は、カウンタ３３ａ〜３３ｃ及び３４ａ〜３４ｃからそれぞれ出力されるカウント値Ｃａ１〜Ｃｃ１及びＣａ２〜Ｃｃ２に基づいて、タイマ３１から出力されるタイミング信号に同期して、複数の異なる変更方法を用いてＤＭＡＣ２２ａ〜２２ｃの優先順位を変更し、変更された優先順位を表す信号Ｐ１及びＰ２を出力する。
【００２８】
また、アービタ部７０は、プライオリティジェネレータ部４０から出力された優先順位を表す信号Ｐ１及びＰ２、及び、ＤＭＡＣ２２ａ〜２２ｃから出力されたリクエスト信号Ｒａ〜Ｒｃに基づいて、アクノリッジ信号Ａａ〜Ａｃのいずれかを対応するＤＭＡＣに出力すると共に、アクノリッジ信号を出力したＤＭＡＣとメモリインタフェース２３とを接続するためのバス調停信号ＢＡを出力する。
【００２９】
図４は、図２に示すプライオリティジェネレータ部の詳細な構成を示すブロック図である。図４に示すように、プライオリティジェネレータ部４０は、第１のアービタにおいて用いる優先順位を変更するプライオリティジェネレータ５０と、第２のアービタにおいて用いる優先順位を変更するプライオリティジェネレータ６０とを含んでいる。
【００３０】
プライオリティジェネレータ５０は、カウント値Ｃａ２〜Ｃｃ２に基づいて、タイマ３１から出力されるタイミング信号に同期して、ＤＭＡＣ２２ａ〜２２ｃの優先順位を与える信号Ｐ１を変更する。また、プライオリティジェネレータ６０は、カウント値Ｃａ１〜Ｃｃ１及びＣａ２〜Ｃｃ２に基づいて、タイマ３１から出力されるタイミング信号に同期して、ＤＭＡＣ２２ａ〜２２ｃの優先順位を与える信号Ｐ２を変更する。プライオリティジェネレータ５０及び６０で変更された優先順位を表す信号Ｐ１及びＰ２は、それぞれアービタ部７０に出力される。
【００３１】
図５は、図４に示すプライオリティジェネレータ５０の詳細な構成を示すブロック図である。プライオリティジェネレータ５０は、一定の時間内に所定の量のデータを転送しなければならない印字部やスキャナ等のインタフェースのような最優先ペリフェラルの優先順位を変更し、そのペリフェラルに対して所望の転送能力を保証するための機能ブロックである。
【００３２】
図５に示すように、プライオリティジェネレータ５０は、ＤＭＡＣ２２ａ〜２２ｃにそれぞれ対応して設定された所望の転送能力を表すデータを保持するレジスタ５１ａ〜５１ｃと、タイミング信号が入力されたときのカウント値Ｃａ２に基づいて、サンプリング継続期間においてＤＭＡＣ２２ａが実際に転送を行ったデータの単位時間当りの量を算出する実転送能力算出部５２ａと、カウント値Ｃｂ２に基づいて、ＤＭＡＣ２２ｂが実際に転送を行ったデータの単位時間当りの量を算出する実転送能力算出部５２ｂと、カウント値Ｃｃ２に基づいて、ＤＭＡＣ２２ｃが実際に転送を行ったデータの単位時間当りの量を算出する実転送能力算出部５２ｃとを含んでいる。
【００３３】
各転送量算出部は、次式（１）を用いて、それぞれのＤＭＡＣの実転送能力ＱＲ（Ｍｂｐｓ）を算出する。
ＱＲ＝ＱＡ×ＮＡ×Ｔ２／Ｔ１  ・・・（１）
但し、ＱＡは、単位時間当たりのデータ転送可能量（Ｍｂｐｓ）であり、ＮＡは、タイミング信号が入力されたときにカウンタ３４ａ〜３４ｃの各々から出力されていたカウント値である。
【００３４】
また、プライオリティジェネレータ５０は、レジスタ５１ａ〜５１ｃにおいて保持されている所望の転送能力を表すデータと実転送能力算出部５２ａ〜５２ｃによって算出された実転送能力とをそれぞれ比較する比較部５３ａ〜５３ｃと、比較部５３ａ〜５３ｃにおいて比較された結果に基づいて優先順位を変更する優先順位変更部５４とを含んでいる。
【００３５】
ここで、優先順位変更部５４は、比較部５３ａ〜５３ｃにおける比較結果に基づいて、実転送能力ＱＲが所望の転送能力未満であるＤＭＡＣの優先順位を、上位の優先順位に変更し、変更された優先順位を表す信号Ｐ１をアービタ部７０に出力する。ここで、優先順位変更部５４は、実転送能力ＱＲが所望の転送能力未満であるＤＭＡＣの優先順位が１つずつ高くなるように優先順位を変更しても良いし、所望の転送能力に対する実転送能力ＱＲの割合が最も小さいＤＭＡＣほど優先順位が高くなるように優先順位を変更しても良い。なお、優先順位の初期値は、起動時においてＣＰＵ９０が設定する。
【００３６】
図６は、図４に示すプライオリティジェネレータ６０の詳細な構成を示すブロック図である。プライオリティジェネレータ６０は、外付けのハードディスクドライブのように、一定の時間内に転送すべきデータ量は規定されないが、バスを使用する許可を与えられるのが大幅に遅れることなくスムーズにデータ転送することが望まれるような準優先ペリフェラルの優先順位を変更し、そのペリフェラルに対してスムーズにデータ転送することを保証するための機能ブロックである。
【００３７】
図６に示すように、プライオリティジェネレータ６０は、タイミング信号が入力されたときのカウント値Ｃａ１及びＣａ２に基づいて、ＤＭＡＣ２２ａの待機時間を算出する待機時間算出部６１ａと、カウント値Ｃｂ１及びＣｂ２に基づいて、ＤＭＡＣ２２ｂの待機時間を算出する待機時間算出部６１ｂと、カウント値Ｃｃ１及びＣｃ２に基づいて、ＤＭＡＣ２２ｃの待機時間を算出する待機時間算出部６１ｃとを含んでいる。
【００３８】
待機時間算出部６１ａ〜６１ｃは、次式（２）を用いて、ＤＭＡＣ２２ａ〜２２ｃのバス使用リクエストの待機時間Ｔをそれぞれ算出する。
Ｔ＝（ＮＲ−ＮＡ）×Ｔ２  ・・・（２）
但し、ＮＲは、図２に示すタイマ３１から各待機時間算出部にタイミング信号が入力された時に各カウンタから入力されているカウント値である。
【００３９】
また、プライオリティジェネレータ６０は、待機時間算出部６１ａ〜６１ｃにおいて算出された待機時間Ｔを比較する比較部６２と、比較部６２における比較結果に基づいて優先順位を変更する優先順位変更部６３とを含んでいる。
【００４０】
ここで、優先順位変更部６３は、各ＤＭＡＣに対応する待機時間Ｔを比較し、待機時間Ｔが大きいものほど優先順位が高くなるように優先順位を変更し、変更された優先順位を表す信号Ｐ２をアービタ部７０に出力する。なお、優先順位の初期値は、起動時においてＣＰＵ９０が設定する。
【００４１】
図７は、図２に示すアービタ部の詳細な構成を示すブロック図である。図７に示すように、アービタ部７０は、優先順位を変更する方法を選択するためにＣＰＵ９０によって設定されたデータを保持するレジスタ７１ａ〜７１ｃ及び７２ａ〜７２ｃと、３入力ＡＮＤ回路７３ａ〜７３ｃ、７４ａ〜７４ｃ、７５ａ〜７５ｃと、アービタ７６ａ〜７６ｃ及び７７とを含んでいる。アービタ７６ａ〜７６ｃの各々は、それぞれの優先順位に基づいてリクエスト信号Ｒａ〜Ｒｃの内の１つを選択し（それが存在する場合に）、選択したリクエスト信号を出力したＤＭＡＣを表す信号を出力する。
【００４２】
ここで、アービタ７６ａは、優先順位を表す信号Ｐ１に基づいて、いずれかのＤＭＡＣからＡＮＤ回路７３ａ〜７５ａを介して入力されたリクエスト信号を選択し、選択したリクエスト信号を出力したＤＭＡＣを表す信号Ｓ１を出力する。アービタ７６ｂは、優先順位を表す信号Ｐ２に基づいて、いずれかのＤＭＡＣからＡＮＤ回路７３ｂ〜７５ｂを介して入力されたリクエスト信号を選択し、選択したリクエスト信号を出力したＤＭＡＣを表す信号Ｓ２を出力する。アービタ７６ｃは、予め定められている優先順位に基づいて、いずれかのＤＭＡＣからＡＮＤ回路７３ｃ〜７５ｃを介して入力されたリクエスト信号を選択し、選択したリクエスト信号を出力したＤＭＡＣを表す信号Ｓ３を出力する。
【００４３】
ここで、各アービタ７６ａ〜７６ｃの各々は、それぞれの優先順位に基づいて、入力されたリクエスト信号を出力したＤＭＡＣの中で、最も優先順位の高いＤＭＡＣのリクエスト信号を選択し、選択したリクエスト信号を出力したＤＭＡＣを表す信号をアービタ７７に出力する。
【００４４】
また、アービタ部７７は、予め定められている優先順位に基づいて、アービタ７６ａ〜７６ｃから入力された信号Ｓ１〜Ｓ３の内のいずれか１つを選択し、選択した信号が表すＤＭＡＣにアクノリッジ信号を出力すると共に、選択した信号をバス調停信号ＢＡとしてマルチプレクサ３５に出力する。
【００４５】
本実施形態においては、アービタ７７が、所望の転送能力を保証するために変更された優先順位に基づいてアービタ７６ａから出力された信号Ｓ１を最も高い優先順位で選択し、アービタ７６ｂから出力された信号Ｓ２を次に高い優先順位で選択し、固定された優先順位に基づいてアービタ７６ｃから出力された信号Ｓ３を最も低い優先順位で選択する。
【００４６】
即ち、アービタ７６ａに、いずれかのＤＭＡＣからリクエスト信号が入力された場合には、アービタ７６ａから最も高い優先順位の信号Ｓ１が出力されるので、アービタ７７は、アービタ７６ａから出力された信号Ｓ１を選択する。
【００４７】
また、アービタ７６ａに、いずれのＤＭＡＣからもリクエスト信号が入力されず、アービタ７６ｂに、いずれかのＤＭＡＣからリクエスト信号が入力された場合には、アービタ７６ａから信号Ｓ１が出力されず、アービタ７６ｂから信号Ｓ２が出力されるので、アービタ７７は、アービタ７６ｂから出力された信号Ｓ２を選択する。
【００４８】
さらに、アービタ７６ａ及び７６ｂに、いずれのＤＭＡＣからもリクエスト信号が入力されず、アービタ７６ｃに、いずれかのＤＭＡＣからリクエスト信号が入力された場合には、アービタ７６ａ及び７６ｂから信号Ｓ１及びＳ２が出力されず、アービタ７６ｃから信号Ｓ３が出力されるので、アービタ７７は、アービタ７６ｃから出力された信号Ｓ３を選択する。
【００４９】
アービタ７７は、いずれかのアービタから入力された信号に基づいて、その信号が表すＤＭＡＣにアクノリッジ信号を出力し、その信号をバス調停信号ＢＡとしてマルチプレクサ３５に出力する。マルチプレクサ３５は、バス調停信号ＢＡに基づいて、そのＤＭＡＣとメモリインタフェース２３との間のバス調停を行う。
【００５０】
なお、複数のＤＭＡＣがＲＡＭにアクセスする優先順位の変更方法は、レジスタ７１及び７２に保持させるデータによって設定される。即ち、各ＤＭＡＣに対応するペリフェラルが最優先ペリフェラル、準優先ペリフェラル、低優先ペリフェラルのいずれかであるかは、レジスタ７１及び７２に保持させるデータによって設定される。
【００５１】
例えば、優先順位を表す信号Ｐ１に基づいてＤＭＡＣ２２ａとメモリインタフェース２３との間のバスを調停する場合には、レジスタ７１ａ及び７２ａにハイレベルの信号「１」を保持させることにより、ＤＭＡＣ２２ａから出力されるリクエスト信号が、ＡＮＤ回路７３ａを介してアービタ７６ａに入力され、ＡＮＤ回路７４ａ及び７５ａの出力信号は常にローレベルであるので、アービタ７６ｂ及び７６ｃには入力されない。したがって、ＤＭＡＣ２２ａとメモリインタフェース２３との間のバスは、優先順位を表す信号Ｐ１に基づいて、アービタ７６ａによって調停される。
【００５２】
同様に、優先順位を表す信号Ｐ２に基づいてＤＭＡＣ２２ａとメモリインタフェース２３との間のバスを調停する場合には、レジスタ７１ａにハイレベルの信号「１」及びレジスタ７２ａにローレベルの信号「０」を保持させることにより、ＤＭＡＣ２２ａから出力されるリクエスト信号が、ＡＮＤ回路７４ａを介してアービタ７６ｂに入力される。したがって、ＤＭＡＣ２２ａとメモリインタフェース２３との間のバスは、優先順位を表す信号Ｐ２に基づいて、アービタ７６ｂによって調停される。
【００５３】
予め設定された優先順位に基づいてＤＭＡＣ２２ａとメモリインタフェース２３との間のバスを調停する場合には、レジスタ７１ａにローレベルの信号「０」及びレジスタ７２ａにハイレベルの信号「１」を保持させることにより、ＤＭＡＣ２２ａから出力されるリクエスト信号が、ＡＮＤ回路７５ａを介してアービタ７６ｃに入力される。したがって、ＤＭＡＣ２２ａとメモリインタフェース２３との間のバスは、予め設定された優先順位に基づいて、アービタ７６ｃによって調停される。
【００５４】
次に、本発明の第２の実施形態に係る半導体集積回路について説明する。図８は、本発明の第２の実施形態に係る半導体集積回路を含むシステムの構成を示すブロック図である。なお、この半導体集積回路においては、ＤＭＡアービタ３０の替わりに、ＤＭＡアービタ８０が、複数のＤＭＡＣとメモリインタフェース２３との間のバス調停を行う。その他の構成については、図１に示す半導体集積回路と同様である。
【００５５】
図９は、図８に示すＤＭＡアービタの詳細な構成を示すブロック図である。図９に示すように、ＤＭＡアービタ８０は、バス調停信号ＢＡを記憶することにより、最後にバスを使用したＤＭＡＣの情報を格納するパストレコーダ８１と、パストレコーダ８１の記憶するバス調停信号ＢＡに基づいて、最後にバスを使用したＤＭＡＣから出力されるリクエスト信号を１クロック信号の間出力しないことにより、アービタ部７０に出力されるリクエスト信号をマスクするリクエストマスカ８２ａ〜８２ｃとを含んでいる。その他の構成については、図２に示すＤＭＡアービタ３０と同様である。
【００５６】
次に、パストレコーダ８１及びリクエストマスカ８２ａ〜８２ｃの動作について説明する。パストレコーダ８１は、アービタ部７０から最後に出力されたバス調停信号ＢＡを格納する。バス調停信号ＢＡは、マルチプレクサ３５がメモリインタフェース２３とＤＭＡＣのいずれかのバスを接続するための信号であるので、最後に出力されたバス調停信号ＢＡは、最後にＲＡＭ１０にアクセスしたＤＭＡＣの情報に相当する。
【００５７】
ここで、例えば、最優先ペリフェラルに対応するＤＭＡＣからリクエスト信号が連続して出力された場合には、そのリクエスト信号が出力されている期間において、準優先ペリフェラルに対応するＤＭＡＣからリクエスト信号が出力されても、最優先ペリフェラルに対応するＤＭＡＣによるＲＡＭの制御が連続して行われる可能性がある。
【００５８】
そこで、本実施形態においては、パストレコーダ８１が、バス調停信号ＢＡの表すＤＭＡＣに対応するリクエストマスカにリクエスト信号をマスクするためのマスク制御信号を出力し、マスク制御信号を入力されたリクエストマスカが、マスク制御信号に同期して１クロック間だけバス調停信号ＢＡの表すＤＭＡＣから出力されるリクエスト信号をマスクする。
【００５９】
その結果、最優先ペリフェラルに対応するＤＭＡＣからリクエスト信号が連続して出力されている期間内において、準優先ペリフェラルに対応するＤＭＡＣからリクエスト信号が出力されても、最優先ペリフェラルに対応するＤＭＡＣから出力されるリクエスト信号がマスクされている期間に、準優先ペリフェラルに対応するＤＭＡＣが、ＲＡＭの制御を開始することができる。
【００６０】
これにより、本実施形態においては、優先順位の高いＤＭＡＣから連続してリクエスト信号が出力された場合においても、バスが、優先順位の高いＤＭＡＣに独占されることなく、他のＤＭＡＣがバスを使用することが可能となる。
【産業上の利用可能性】
【００６１】
以上説明したように、本発明は、ビデオインタフェースやネットワークインタフェース等の異なる種類のペリフェラルを有するプリンタ等において印字データを処理するためのシステムに利用可能である。
【図面の簡単な説明】
【００６２】
【図１】本発明の第１の実施形態に係る半導体集積回路を含むシステムの構成を示すブロック図。
【図２】図１に示すＤＭＡアービタの詳細な構成を示すブロック図。
【図３】ＤＭＡアービタの各部における動作を示すタイミングチャート。
【図４】図２に示すプライオリティジェネレータ部の詳細な構成を示すブロック図。
【図５】図４に示すプライオリティジェネレータ５０の詳細な構成を示すブロック図。
【図６】図４に示すプライオリティジェネレータ６０の詳細な構成を示すブロック図。
【図７】図２に示すアービタ部の詳細な構成を示すブロック図。
【図８】本発明の第２の実施形態に係る半導体集積回路を含むシステムの構成を示すブロック図。
【図９】図８に示すＤＭＡアービタの詳細な構成を示すブロック図。
【符号の説明】
【００６３】
１０  ＲＡＭ、  ２０  半導体集積回路、  ２１ａ〜２１ｃ  ペリフェラル、  ２２ａ〜２２ｃ  ＤＭＡＣ、  ２３  メモリインタフェース、  ３０、８０  ＤＭＡアービタ、  ３１、３２  タイマ、  ３３ａ〜３３ｃ、３４ａ〜３４ｃ  カウンタ、  ３５  マルチプレクサ、  ４０  プライオリティジェネレータ部、  ５０、６０  プライオリティジェネレータ、  ５１ａ〜５１ｃ、７１ａ〜７１ｃ、７２ａ〜７２ｃ  レジスタ、  ５２ａ〜５２ｃ  実転送能力算出部、  ５３ａ〜５３ｃ、６２  比較部、  ５４、６３  優先順位変更部  ６１ａ〜６１ｃ  待機時間算出部、  ７３ａ〜７３ｃ、７４ａ〜７４ｃ、７５ａ〜７５ｃ  ＡＮＤ回路、  ７６ａ〜７６ｃ、７７  アービタ、  ８１  パストレジスタ、  ８２ａ〜８２ｃ  リクエストマスカ、  ９０  ＣＰＵ（中央演算装置）
【図１】
2005056239.tif 000003
【図２】
2005056239.tif 000004
【図３】
2005056239.tif 000005
【図４】
2005056239.tif 000006
【図５】
2005056239.tif 000007
【図６】
2005056239.tif 000008
【図７】
2005056239.tif 000009
【図８】
2005056239.tif 000010
【図９】
2005056239.tif 000011