(57)【要約】【課題】バスコントローラは最大のサイクル数で設計を行なうと、周波数が高く、設計困難度が高く、コストアップとなる【解決手段】共有メモリ２１に対してアクセス要求を行う、各リクエスタ２３，２４、あるいは６３，６４，６５毎に、サイクル数の異なる処理レベルの処理手段を備えて、現サイクル数に従って限界サイクル数を越えることが予測される場合に、サイクル数の少ない処理レベルを選択し、あるいは、非リアルタイム系のバスアクセス要求を許可しない制御をして、全リクエスタの最大アクセスサイクル数と、その最大アクセス回数分の総和よりも小さいサイクル数で、設計することを可能とした。【選択図】      図１
2004287576.tif 000002
【特許請求の範囲】
【請求項１】
共有メモリを使用する複数のリクエスタの処理レベルを制御するバスコントローラであって、
上記共有メモリをアクセスするアクセルサイクル数をカウントするアクセスサイクル数カウンタと、
上記各リクエスタ毎に異なる処理レベルの処理を行う処理手段と、
上記各リクエスタ毎に異なる処理レベルの処理と上記アクセスサイクル数との対応を記述した対応表と、
アクセスが許可される各リクエスタの処理手段による処理レベルを指定する処理レベル判定手段と、を備え、
上記処理レベル判定手段は、上記アクセスサイクル数カウンタによりカウントされる現サイクル数と、予め定められた限界サイクル数に対する残サイクル数と、上記各リクエスタ毎に異なる処理レベルの処理と上記アクセスサイクル数との対応表とに従い、アクセスが許可される各リクエスタの処理レベルを指定する、ことを特徴とするバスコントローラ。
【請求項２】
共有メモリに対してアクセスする複数のリクエスタからのアクセス要求に対応して調停するバスコントローラであって、
上記共有メモリをアクセスするアクセスサイクル数をカウントするアクセスサイクル数カウンタと、
上記複数のリクエスタとアクセスサイクル数との対応表と、
上記複数のリクエスタからのアクセス要求に対してアクセスの許可を調停するアービタと、を備え、
上記アクセスサイクル数カウンタにより上記共有メモリをアクセスする現サイクル数をカウントし、
上記アービタは、上記アクセスサイクル数カウンタによりカウントされる現サイクル数と、予め定められた限界サイクル数に対する残サイクル数と、上記複数のリクエスタとアクセスサイクル数との対応表とに従い、全リクエスタのサイクル数の合計が、限界サイクル数を越えることが予測される場合には、非リアルタイム系のバスアクセス要求を許可しない制御をする、
ことを特徴とするバスコントローラ。
【請求項３】
共有メモリを使用する複数のリクエスタの処理レベルを制御し、複数のリクエスタからのアクセス要求に対応して調停するバスコントローラであって、
上記共有メモリをアクセスするアクセスサイクル数をカウントするアクセスサイクル数カウンタと、
上記各リクエスタ毎に異なる処理レベルの処理を行う処理手段と、
上記各リクエスタ毎に異なる処理レベルの処理とアクセスサイクル数との対応を記述した対応表と、
アクセスが許可される各リクエスタの処理手段による処理レベルを指定する処理レベル判定手段と、
上記複数のリクエスタからのアクセス要求に対応してアクセスの許可を調停するアービタと、を備え、
上記処理レベル判定手段、および上記アービタは、上記アクセスサイクル数カウンタによりカウントされる現サイクル数と、予め定められた限界サイクル数に対する残サイクル数と、上記対応表とに従い、アクセスが許可されるリクエスタの処理手段による処理レベルを指定するとともに、全リクエスタのサイクル数の合計が、限界サイクル数を越えることが予測される場合には、非リアルタイム系のバスアクセス要求を許可しない制御をする、
ことを特徴とするバスコントローラ。
【請求項４】
請求項１記載のバスコントローラにおいて、
上記処理レベル判定手段は、リクエスタの２個後の処理から基準時間の最後の処理までの処理を、最大のサイクル数が最も小さい処理レベルで行うときのアクセスサイクル数の総和を計算し、
限界サイクル数から現在のアクセスサイクル数を減算して残サイクル数を計算し、
上記残サイクル数から上記総和を減算したサイクル数までの範囲で次のリクエスタの処理のレベルを選択する、
ことを特徴とするバスコントローラ。
【請求項５】
請求項２記載のバスコントローラにおいて、
上記アービタは、次のリクエスタである非リアルタイム系リクエスタの次の処理から基準時間の最後の処理までの処理を、最大のサイクル数が最も小さい処理レベルで行うときのアクセスサイクル数の総和を計算し、
限界サイクル数から現在のアクセスサイクル数を減算して残サイクル数を計算し、
上記残サイクル数から上記総和を減算したサイクル数までの範囲で処理を完了できない場合は次の非リアルタイム系のリクエスタを許可しない、
ことを特徴とするバスコントローラ。
【請求項６】
請求項３記載のバスコントローラにおいて、
上記処理レベル判定手段、および上記アービタは、次のリクエスタである非リアルタイム系リクエスタの次の処理から基準時間の最後の処理までの処理を、最大のサイクル数が最も小さい処理レベルで行うときのアクセスサイクル数の総和を計算し、
限界サイクル数から現在のアクセスサイクル数を減算して残サイクル数を計算し、
上記残サイクル数から上記総和を減算したサイクル数までの範囲で処理を完了できない場合は、次の非リアルタイム系のリクエスタを許可しない、
ことを特徴とするバスコントローラ。
【請求項７】
請求項６記載のバスコントローラにおいて、
上記非リアルタイム系リクエスタは、複数の異なる処理レベルを有するものである、
ことを特徴とするバスコントローラ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、バスコントローラに関し、特に、ＡＶデータ、及び通信情報を処理するシステムにおける共有メモリのバスコントローラに関する。
【０００２】
【従来の技術】
ＡＶデータを、通信または記録再生するＡＶ処理システムにおいて、通信手段の帯域幅や、記録媒体の容量を削減するために、画像や音声を符号化し、再生時には復号化する、ことが行われている。国際標準の動画像の符号化方式として、ＭＰＥＧ１／２／４などがある。これらの符号化方式は、動きベクトル検出、及び動き補償、ＤＣＴ（Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ）、量子化、ＶＬＣ（Ｖａｒｉａｂｌｅ  Ｌｅｎｇｔｈ  Ｃｏｄｉｎｇ）などを組合せた方法である。また、高画質化や、画像の縮小、拡大時には、フィルタリング、さらに、文字データ処理や、グラフィックス処理、通信経路からのデータ転送、などの処理を行なう必要がある。このようなＡＶ処理システムでは、各処理を行なうリクエスタが、共有メモリを用いて各々の処理を行なっている。
【０００３】
従来のバスコントローラとしては、例えば、アービタの優先順位変更を行なう特許文献のようなものがある。この従来例を簡単化して示した図６により、従来技術の説明を行なう。図６において、６１は共有メモリ、６２はバスコントローラ、６３は第１のリクエスタ、６４は第２のリクエスタ、６５は第３のリクエスタである。
【０００４】
ＡＶ処理システムの例として、画像符号化システムを考え、第１のリクエスタ６３として、画像のフィルタリング処理を、第２のリクエスタ６４として、画像符号化処理を、第３のリクエスタ６５として、情報通信インタフェースによるデータ転送処理を、考えるものとする。
【０００５】
第１のリクエスタ６３と、第２のリクエスタ６４は、リアルタイム系の処理であり、画像１フレームの時間に定まった量の共有メモリへのアクセス、及び、データ処理を必要とする。これに対して、第３のリクエスタ６５は、非リアルタイム系の処理であり、画像の処理に比較して、非定期的な共有メモリへのアクセス、及び、データ処理を行なう。
【０００６】
バスコントローラ６２の構成例を、図５に示す。図５において、５１はアービタ、５２はプロトコル変換手段である。各リクエスタからの要求信号に従い、アービタ５１が優先順位に従って、上記リクエスタのうちの一個に許可信号（共有メモリアクセス信号（ＣＭＡ））を与える。また、プロトコル変換手段５２は、リクエスタのアクセスに用いられるアドレス、データ、及び、ＲＥＡＤかＷＲＩＴＥを示すリクエスタアクセス信号（ＲＡ）を、共有メモリアクセス信号（ＣＭＡ）にプロトコル変換する機能を持つとともに、該プロトコル変換や、アクセス速度の変換のためのバッファ機能を持つ。共有メモリアクセス信号（ＣＭＡ）としては、ＳＤＲＡＭアクセスのためのＲｏｗアドレス、Ｃｏｌｕｍｎアドレス出力、及び、コマンド発行、などがある。
【０００７】
第１リクエスタ６３、第２リクエスタ６４、第３のリクエスタ６５は、各リクエスタ内の処理に従い、バスコントローラ６２に共有メモリ６１へのアクセス要求を出し、バスコントローラ６２の許可に従って、バスコントローラ６２のプロトコル変換を通して、共有メモリ６１にアクセスを行なう、すなわち、共有メモリアクセス信号（ＣＭＡ）により、アクセスする。
【０００８】
図７に、サイクル数の例を示す。図７（ａ）に、各リクエスタのサイクル数の例を示し、簡単のため、第１のリクエスタ（ＲＥＱ１）、第２のリクエスタ（ＲＥＱ２）は、１フレーム時間内に、２回ずつのアクセスを必要とし、第３のリクエスタ（ＲＥＱ３）は、１フレーム時間内に、０回または１回のアクセスを必要とし、各リクエスタは、定まったワード数のデータのアクセスを必要としている。サイクル数は、共有メモリ側のクロック数とする。各リクエスタのサイクル数でアクセスするアドレスによって、共有メモリ側のクロック数が変化することがある。
【０００９】
ＳＤＲＡＭの場合、同じワード数のデータをアクセスする場合でも、ローアドレスが変更、連続アドレスかどうかに従い、最も少ないサイクル数でアクセスするためには、ＳＤＲＡＭへ必要なアドレス情報や、コマンド、シーケンスに変更することが必要となる。
【００１０】
第１のリクエスタ（ＲＥＱ１）で、最大のサイクル数を、Ｎ１（ｍａｘ）、最も少ないサイクル数を、Ｎ１（ｍｉｎ）とし、平均的なサイクル数を、Ｎ１（ａｖｅ．）として示し、Ｎ１（ｍａｘ）−Ｎ１（ａｖｅ．）を黒色で示し、Ｎ１（ａｖｅ．）−Ｎ１（ｍｉｎ）を白色で示している。第２のリクエスタ（ＲＥＱ２）についても、同様である。
【００１１】
図７（ｂ）で、１フレーム内の時間での全サイクル数と、そのサイクル数の設計について示している。１フレーム時間内の共有メモリアクセスのサイクル数は、
Ｎ１（ｍａｘ）×２＋Ｎ２（ｍａｘ）×２＋Ｎ３（ｍａｘ）×１
の場合が最大となる。この場合がありうるので、設計上システムが破綻しないように、このサイクル数を１フレーム時間に確保することが必要となる。ただし、これはすべてのアクセスが最大サイクル数になる場合であるので、頻度としては少ないものとなることが予想される。
【００１２】
典型的な場合として、すでに示したように、１フレーム時間内に第３のリクエスタがなく、Ｎ１（ａｖｅ．）×２＋Ｎ２（ａｖｅ．）×２の場合、Ｎ１（ｍｉｎ）＋Ｎ２（ｍａｘ）＋Ｎ１（ｍａｘ）＋Ｎ２（ｍｉｎ）の場合などがあり、このような場合が、比較的頻度が多くなると考えられる。また、最小は１フレーム時間内に、Ｎ１（ｍｉｎ）×２＋Ｎ２（ｍｉｎ）×２で済む。
【００１３】
【特許文献１】
特開２００１−１８４３００号（第５頁００２６〜第６頁００４７、第１図）
【００１４】
【発明が解決しようとする課題】
上記の従来例では、頻度は少なくても起こりうる最大のサイクル数で設計するため、１フレーム時間当たりのサイクル数が多く、共有メモリの動作周波数が高くなり、共有メモリや、回路のコストアップや、設計難易度が高くなる、ということがおこりうる。
【００１５】
また、システム設計後にアプリケーションの改変、増加により、共有メモリアクセスのサイクル数が増加した場合には、動作周波数を上げた新しいバスシステムが必要となり、設計の難易度と、再設計による設計、製造のコストアップに繋がることとなる。
【００１６】
本発明は上記従来の問題点を解決するためになされたもので、頻度が少ないような最大サイクル数に対応する高い周波数によるバスシステム設計によるコストアップを抑え、最大サイクル数が増加した場合でも、バスシステムの再設計を抑えるために最大サイクル数よりも小さいサイクル数、すなわち低い周波数で設計することのできるバスコントローラを提供することを目的としている。
【００１７】
【課題を解決するための手段】
上記課題を解決するために、本発明の請求項１にかかるバスコントローラは、共有メモリを使用する複数のリクエスタの処理レベルを制御するバスコントローラであって、上記共有メモリをアクセスするアクセルサイクル数をカウントするアクセスサイクル数カウンタと、上記リクエスタ毎に異なる処理レベルの処理を行う処理手段と、上記複数のリクエスタの異なる処理レベルの処理と、上記アクセスサイクル数との対応を記述した対応表と、上記処理手段による処理レベルを指定する処理レベル判定手段と、を備え、上記アクセスサイクル数カウンタにより上記共有メモリをアクセスする現サイクル数をカウントし、上記処理レベル判定手段により上記現サイクル数と、予め定められた限界サイクル数に対する残サイクル数と、上記対応表とに従い、各々のリクエスタの処理レベルを指定するものである。
【００１８】
また、本発明の請求項２にかかるバスコントローラは、  共有メモリを使用する複数のリクエスタからのアクセス要求に対応して調停するバスコントローラであって、上記共有メモリをアクセスするアクセスサイクル数をカウントするアクセスサイクル数カウンタと、上記複数のリクエスタの処理と、アクセスサイクル数との対応表と、上記複数のリクエスタからのアクセス要求に対応してアクセスの許可を調停するアービタと、を備え、上記アクセスサイクル数カウンタにより上記共有メモリをアクセスする現サイクル数をカウントし、上記アービタにより上記現サイクル数と、予め定められた限界サイクル数に対する残サイクル数と、上記対応表とに従い、限界サイクル数を越えることが予測される場合には非リアルタイム系のバスアクセス要求を許可しない制御をするものである。
【００１９】
また、本発明の請求項３にかかるバスコントローラは、共有メモリを使用する複数のリクエスタの処理レベルを制御し、複数のリクエスタからのアクセス要求に対応して調停するバスコントローラであって、上記共有メモリをアクセスするアクセスサイクル数をカウントするアクセスサイクル数カウンタと、上記リクエスタ毎に異なる処理レベルの処理を行う処理手段と、上記複数のリクエスタの異なる処理レベルの処理と、アクセスサイクル数との対応を記述した対応表と、上記処理手段による処理レベルを判定する処理レベル判定手段と、上記複数のリクエスタからのアクセス要求に対応してアクセスの許可を調停するアービタと、を備え、上記アクセスサイクル数カウンタにより上記共有メモリをアクセスする現サイクル数をカウントし、上記処理レベル判定手段、および上記アービタにより上記現サイクル数と、予め定められた限界サイクル数に対する残サイクル数と、上記対応表とに従い、各々のリクエスタの処理レベルを指定するとともに、限界サイクル数を越えることが予測される場合には非リアルタイム系のバスアクセス要求を許可しない制御をするものである。
【００２０】
また、本発明の請求項４にかかるバスコントローラは、請求項１記載のバスコントローラにおいて、上記処理レベル判定手段は、２個後の、上記リクエスタに対する処理から基準時間の最後の処理までの処理を、最大のサイクル数が最も小さい処理レベルで行うときのアクセスサイクル数の総和を計算し、限界サイクル数から現在のアクセスサイクル数を減算して残サイクル数を計算し、上記残サイクル数から上記総和を減算したサイクル数までの範囲で次のリクエスタの処理のレベルを選択するものである。
【００２１】
また、本発明の請求項５にかかるバスコントローラは、請求項２記載のバスコントローラにおいて、上記アービタは、非リアルタイム系リクエスタの次の処理から基準時間の最後の処理までの処理を、最大のサイクル数が最も小さい処理レベルで行うときのアクセスサイクル数の総和を計算し、限界サイクル数から現在のアクセスサイクル数を減算して残サイクル数を計算し、上記残サイクル数から上記総和を減算したサイクル数までの範囲で処理を完了できない場合は次の非リアルタイム系のリクエスタを許可しないものである。
【００２２】
また、本発明の請求項６にかかるバスコントローラは、請求項３記載のバスコントローラにおいて、上記処理レベル判定手段は、次の処理から基準時間の最後の処理までの処理を、最大のサイクル数が最も小さい処理レベルで行うときのアクセスサイクル数の総和を計算し、限界サイクル数から現在のアクセスサイクル数を減算して残サイクル数を計算し、上記残サイクル数から上記総和を減算したサイクル数までの範囲で処理を完了できない場合は次の非リアルタイム系のリクエスタを許可しないものである。
【００２３】
また、本発明の請求項７にかかるバスコントローラは、請求項６記載のバスコントローラにおいて、上記非リアルタイム系リクエスタは、複数の、異なるレベルの処理レベルを有するものである。
【００２４】
これらの手段により、全リクエスタについての最大アクセスサイクル数と最大アクセス回数の総和よりも小さいサイクル数で、設計することが可能となる。
【００２５】
【発明の実施の形態】
（実施の形態１）
図１は本発明の実施の形態１によるバスコントローラの構成図、図２は本実施の形態１におけるバスシステムの構成例を示す図、図３は本実施の形態１における第１の処理サイクルの説明図、図４は本実施の形態１における第２の処理サイクルの説明図である。
【００２６】
図２において、２１は共有メモリ、２２はバスコントローラ、２３は第１のリクエスタ、２４は第２のリクエスタである。
ＡＶ処理システムの例として、画像符号化システムを考え、第１のリクエスタ２３として、画像のフィルタリング処理をするもの、第２のリクエスタ２４として、画像符号化処理をするもの、を考える。第１のリクエスタ２３と、第２のリクエスタ２４は、リアルタイム系の処理であり、画像１フレームの時間にそれぞれ２種類の処理レベルを持ち、それぞれの処理レベルに従った定まった量の共有メモリへのアクセス、及びデータ処理、を必要とする。２種類の処理レベルで、共有メモリのアクセスサイクル数が多い方をＡレベル、少ない方をＢレベルとする。第１のリクエスタ３３は、画像のフィルタリング処理であり、Ａレベルとして、現フレームと前フレームのデータを用いたフィルタリング処理を、Ｂレベルとして、現フレームのデータを用いたフィルタリング処理を、行うものとする。第２のリクエスタ２４は、画像符号化処理であり、Ａレベルとして、広い動きベクトル検出範囲用の参照画像を用いた画像符号化処理を、Ｂレベルとして、狭い動きベクトル検出範囲用の参照画像を用いた画像符号化処理を、行うものとする。両方のリクエスタとも、Ａレベルの方が、画質は良くなるが、メモリサイクル数は多くなるものとする。
【００２７】
バスコントローラ２２の構成例を、図１に示す。図１において、１１はアービタ、１２はサイクルカウンタ、１３はリクエスタ処理レベル−メモリサイクル対応表、１４はプロトコル変換手段である。各リクエスタからの要求信号に従い、アービタ１１が、優先順位に従ってリクエスタのうちの一個に許可信号と、処理レベル制御信号とを与える。第１のリクエスタ、第２のリクエスタの順の繰り返しでアクセス要求が入力され、これらに対して順に許可を与える。
【００２８】
サイクルカウンタ１２は、メモリプロトコル変換手段１４からの情報に従い、共有メモリのアクセスサイクル数をカウントし、アクセス毎に現時点のサイクル数を出力する。
【００２９】
アービタ１１は、現時点のサイクル数と、予め定められた限界サイクル数から残りサイクル数を計算し、リクエスタ処理レベル−サイクル数対応表１３の情報を用いて、共有メモリ２１へのアクセスを次にどのリクエスタに許可するかを決定し、調停信号であるアービタ制御信号ＡＣを、出力するとともに、該アクセスを許可したリクエスタの処理レベルを決定して、処理レベル制御信号ＰＬとして出力する。
【００３０】
メモリプロトコル変換手段１４は、リクエスタのアクセスに用いられるアドレス、データ、ＲＥＡＤかＷＲＩＴＥを示すリクエスタアクセス信号ＲＡを、共有メモリアクセス信号ＣＭＡにプロトコル変換するとともに、プロトコル変換やアクセス速度の変換のためのバッファ機能を持つものである。共有メモリアクセス信号ＣＭＡとしては、ＳＤＲＡＭアクセスのためのＲｏｗアドレス、Ｃｏｌｕｍｎアドレス、コマンド発行などがある。
【００３１】
第１リクエスタ２３、第２リクエスタ２４は、各リクエスタ内の処理に従い、バスコントローラ２２に共有メモリ２１へのアクセス要求を出し、バスコントローラ２２の許可と、処理レベル制御信号とに従って、バスコントローラ２２のプロトコル変換を通して、共有メモリ２１にアクセスを行なう。
【００３２】
図３のサイクル数の例で動作を詳しく説明する。図３（ａ）に各リクエスタのサイクル数の例を示し、簡単のため、第１のリクエスタ（ＲＥＱ１）、第２のリクエスタ（ＲＥＱ２）は、１フレーム時間内に３回ずつのアクセスを必要とし、各リクエスタは、定まったワード数のデータのアクセスを必要としている。サイクル数は、共有メモリ側のクロック数とする。各リクエスタのサイクル数でアクセスするアドレスによって共有メモリ側のクロック数が変化することがある。ＳＤＲＡＭの場合、同じワード数のデータをアクセスする場合でも、ローアドレスが変更、連続アドレスかどうかに従い、最も少ないサイクル数でアクセスするためには、ＳＤＲＡＭへ必要なアドレス情報や、コマンド、シーケンスに変更が必要となる。第１のリクエスタ（ＲＥＱ１）のＡレベルの処理で最大のサイクル数をＮ１Ａ（ｍａｘ）、最も少ないサイクル数をＮ１Ａ（ｍｉｎ）とし、平均的なサイクル数をＮ１Ａ（ａｖｅ．）として示し、Ｂレベルの処理で最大のサイクル数をＮ１Ｂ（ｍａｘ）、最も少ないサイクル数をＮ１Ｂ（ｍｉｎ）とし、平均的なサイクル数をＮ１Ｂ（ａｖｅ．）として示し、Ｎ１Ａ（ｍａｘ）−Ｎ１Ａ（ａｖｅ．）、Ｎ１Ｂ（ｍａｘ）−Ｎ１Ｂ（ａｖｅ．）を黒色で示し、Ｎ１Ａ（ａｖｅ．）−Ｎ１Ａ（ｍｉｎ）、Ｎ１Ｂ（ａｖｅ．）−Ｎ１Ｂ（ｍｉｎ）を白色で示している。第２のリクエスタ（ＲＥＱ２）についても同様である。
【００３３】
図３（ｂ）に、１フレーム内の時間での全サイクル数と、そのサイクル数設計について示している。１フレーム時間内の共有メモリアクセスのサイクル数は、Ｎ１Ａ（ｍａｘ）×３＋Ｎ２Ａ（ｍａｘ）×３の場合が最大となる。設計上限界サイクルを図のように設定すると、システムが破綻しないようにリクエスタに対して各処理レベルを判定することにより、最終アクセスが終わった時点で限界サイクルを越えないように制御することになる。
【００３４】
図３（ｂ）の処理レベル制御の例１において、限界サイクル数Ｌ１は、最大サイクル数Ｎ１Ａ（ｍａｘ）×３＋Ｎ２Ａ（ｍａｘ）×３よりも、Ｎ２Ａ（ｍａｘ）−Ｎ２Ｂ（ｍａｘ）サイクル分少ない、
Ｎ１Ａ（ｍａｘ）×３＋Ｎ２Ａ（ｍａｘ）×３−（Ｎ２Ａ（ｍａｘ）−Ｎ２Ｂ（ｍａｘ））＝Ｎ１Ａ（ｍａｘ）×３＋Ｎ２Ａ（ｍａｘ）×２＋Ｎ２Ｂ（ｍａｘ）サイクル、
とする。これは、最後のアクセス開始前の矢印Ｘで示したタイミングで、処理レベルを判定する場合である。残サイクル数が、Ａレベルの処理の最大サイクル数Ｎ１Ａ（ｍａｘ）以上であれば、Ａレベルの処理を選択し、残サイクル数がＡレベルの処理の最大サイクル数Ｎ１Ａ（ｍａｘ）未満であれば、Ｂレベルの処理を選択する。これにより、最後のアクセス開始前に、消費サイクル数が最大Ｎ１Ａ（ｍａｘ）×３＋Ｎ２Ａ（ｍａｘ）×２サイクルになった場合、最後の処理ではＢレベルの処理を選ぶこととなり、このＢレベルの処理が最大処理サイクル数となった場合であっても、合計サイクル数は、Ｎ１Ａ（ｍａｘ）×３＋Ｎ２Ａ（ｍａｘ）×２＋Ｎ２Ｂ（ｍａｘ）サイクル、となり、限界サイクル数Ｌ１を越えることはなく、破綻を防ぐことができる。
【００３５】
以下、本実施の形態１における、処理レベルの判定方法を一般化する。単位時間で必要な処理を記号で表現し、ｎ番目（ｎ＝１，２，…，Ｎ）の処理のｑ（ｎ）レベルの処理を、ｐｒ（ｎ，ｑ（ｎ））、そのサイクル数を、Ｃ（ｐｒ（ｎ，ｑ（ｎ）））とする。ここで、サイクル数Ｃ（ｐｒ（ｎ，ｑ（ｎ）））の最大サイクル数を、Ｃ（ｐｒ（ｎ，ｑ（ｎ）ｍｉｎ））ｍａｘとする。また、ｎ番目の処理の直前の残りサイクル数を、Ｒ（ｎ）とする。
【００３６】
処理レベルの判定時、ｎ０番目の処理ｐｒ（ｎ０，ｑ（ｎ））の直前の、残りサイクル数Ｒ（ｎ０）が、残りの必要な処理をすべて最低レベル（最大のサイクル数が最も小さい処理レベルｑ（ｎ）ｍｉｎ）で行うときのアクセスサイクル数の合計，Σｎ＝ｎ０ＮＣ（ｐｒ（ｎ，ｑｍｉｎ））ｍａｘ、以上であれば、この最低レベルｑｍｉｎを選択することにより破綻は生じない。また、ｎ０番目の次アクセス処理が、ｑレベルの最大サイクル数Ｃ（ｐｒ（ｎ０，ｑ））ｍａｘ、を消費しても、その結果の残りサイクル数、Ｒ（ｎ０＋１）＝Ｒ（ｎ０）−Ｃ（ｐｒ（ｎ０，ｑ））ｍａｘ、が、次アクセス後の残りの必要な処理をすべて最低レベル（最大のアクセスサイクルが最小の処理レベル）で行うときのアクセスサイクル数の合計，  Σｎ＝ｎ０＋１ＮＣ（ｐｒ（ｎ，ｑｍｉｎ））ｍａｘ、以上であれば、この最低レベルを選択することにより破綻は生じない。処理レベルｑは、この条件を満たすレベルを選択できる。
【００３７】
すなわち、
Ｒ（ｎ０）−Ｃ（ｐｒ（ｎ０，ｑ（ｎ０）））ｍａｘ
≧  Σｎ＝ｎ０＋１ＮＣ（ｐｒ（ｎ，ｑ（ｎ）ｍｉｎ））ｍａｘ
となる処理レベルｑを、選ぶことができる。
【００３８】
尚、初期状態で、Ｒ（１）＝Ｌ（限界サイクル数）、かつ、
Ｒ（１）−Ｃ（ｐｒ（１，ｑ（１）））ｍａｘ
≧  Σｎ＝２ＮＣ（ｐｒ（ｎ，ｑ（ｎ）ｍｉｎ））ｍａｘ
となって、破綻しない処理レベルが存在するためには、
Ｒ（１）＝Ｌ
≧Ｃ（ｐｒ（１，ｑ（１）））ｍａｘ＋Σｎ＝２ＮＣ（ｐｒ（ｎ，ｑ（ｎ）ｍｉｎ））ｍａｘ
≧Ｃ（ｐｒ（１，ｑ（１）ｍｉｎ））ｍａｘ＋Σｎ＝２ＮＣ（ｐｒ（ｎ，ｑ（ｎ）ｍｉｎ））ｍａｘ
＝Σｎ＝１ＮＣ（ｐｒ（ｎ，ｑ（ｎ）ｍｉｎ））ｍａｘ
すなわち、
Ｌ≧Σｎ＝１ＮＣ（ｐｒ（ｎ，ｑ（ｎ）ｍｉｎ））ｍａｘ
である、ことが必要である。
【００３９】
図３（ｂ）の限界サイクルＬ２の場合の例を示す。
Ｒ（ｎ０）−Ｃ（ｐｒ（ｎ０，ｑ（ｎ０）））ｍａｘ
≧  Σｎ＝ｎ０＋１ＮＣ（ｐｒ（ｎ，ｑ（ｎ）ｍｉｎ））ｍａｘ
で、ｎ０＝１、２、３では、ｑ（ｎ０）としてＡレベルを選択できるが、ｎ０＝４では、
Ｒ（４）−Ｃ（ｐｒ（４，ｑ（４）））ｍａｘ
≧  Σｎ＝５６Ｃ（ｐｒ（ｎ，ｑ（ｎ）ｍｉｎ））ｍａｘ
となるｑ（４）として、Ｂレベルしか選べない。これは４番目（ｎ０＝４）のアクセスでＡレベルを指示した場合、結果がＡレベルのｍａｘであると、５番目、６番目のアクセスでＢレベルを指示しても、それぞれがｍａｘであると破綻するので、４番目のアクセスについてＢレベルを指示することに相当する。５番目のアクセス、６番目のアクセス、についても同様である。
【００４０】
このように、本実施の形態１によるバスコントローラにおいては、アクセスサイクル数カウンタ１２と、リクエスタ毎に異なる処理レベルの処理を行う処理手段であるアービタ１１と、各リクエスタの異なる処理レベルの処理とアクセスサイクル数との対応を記述した対応表１３とを備え、上記アービタ１１は、複数のリクエスタからのアクセス要求に対応してアクセスの許可を調停するとともに、その処理レベルを指定する処理レベル判定手段としても機能するものとしたので、アービタ１１により、現サイクル数と、予め定められた限界サイクル数に対する残サイクル数と、対応表とに従い、共有メモリ２１へのアクセスをどのリクエスタに許可するかを決定するとともに、該アクセスを許可したリクエスタの処理レベルを指定するようにし、該処理レベルを指定するにおいて限界サイクル数を越えることが予測される場合には、サイクル数の少ない処理レベルを選択するようにすることにより、全リクエスタについての、最大アクセスサイクル数×最大アクセス回数の総和よりも小さいサイクル数で設計することが可能となる。たとえば、リクエスタの２個後の処理、すなわち、現在アクセスが完了したリクエスタの次のリクエスタのさらに次のリクエスタのアクセス処理、から基準時間の最後の処理までの処理を、最大のサイクル数が最も小さい処理レベルで行うときの、アクセスサイクル数の総和を計算し、限界サイクル数から現在のアクセスサイクル数を減算して残サイクル数を計算し、上記残サイクル数から上記総和を減算したサイクル数までの範囲で次のリクエスタの処理のレベルを選択する、ようにすることにより、適切な設計を行うことが可能となる。
【００４１】
したがって、高い周波数によるバスシステム設計によるコストアップを抑えることができ、かつ、最大サイクル数が増加した場合でも、最大サイクル数よりも小さいサイクル数、すなわち低い周波数でバスコントローラの設計を行うことができ、再設計を抑えることができる効果がある。
【００４２】
（実施の形態２）
次に、本発明の実施の形態２について、説明する。
従来例と同様、図６のバスシステムの例を用いて説明する。
第１のリクエスタ６３と、第２のリクエスタ６４は、リアルタイム系の処理であり、画像１フレームの時間にそれぞれ２種類の処理レベルを持ち、それぞれの処理レベルに従った定まった量の共有メモリへのアクセス、及びデータ処理を必要とする。２種類の処理レベルで共有メモリのアクセスサイクル数が多い方をＡレベル、少ない方をＢレベルとする。第１のリクエスタ６３は、画像のフィルタリング処理であり、Ａレベルとして現フレームと前フレームのデータを用いたフィルタリング処理、Ｂレベルとして現フレームのデータを用いたフィルタリング処理を、行うものとする。第２のリクエスタ６４は、画像符号化処理であり、Ａレベルとして広い動きベクトル検出範囲用の参照画像を用いた画像符号化処理を、Ｂレベルとして、狭い動きベクトル検出範囲用の参照画像を用いた画像符号化処理を、行うものとする。両方のリクエスタとも、Ａレベルの方が画質は良くなるが、メモリサイクル数は多くなるものとする。第３のリクエスタ６５は、非リアルタイム系の処理であり、画像の処理に比較して非定期的な共有メモリへのアクセス、及びデータ処理を行なう。
【００４３】
バスコントローラ６２の構成は、図１と同様である。
サイクルカウンタ１２は、メモリプロトコル変換手段１４からの情報に従い、共有メモリのアクセスサイクル数をカウントし、アクセス毎に現時点のサイクル数を出力する。
【００４４】
アービタ１１は、現時点のサイクル数と、予め定められた限界サイクル数とから残りサイクル数を計算し、リクエスタ処理レベル−サイクル数対応表１３の情報を用いて、優先順位に従ってリクエスタの内の一個に許可信号と処理レベル制御信号を与える。第１のリクエスタ、第２のリクエスタの順の繰り返しでアクセス要求が入力され、これらを順に許可し、第３のリクエスタの非定期の要求に対して、残サイクル数と、リクエスタ処理レベル−サイクル数対応情報に従って、許可の挿入を行なう。
【００４５】
メモリプロトコル変換手段１４は、リクエスタのアクセスに用いられるアドレス、データ、ＲＥＡＤかＷＲＩＴＥを示すリクエスタアクセス信号を、共有メモリアクセス信号にプロトコル変換するとともに、プロトコル変換やアクセス速度の変換のためのバッファ機能を持つ。共有メモリアクセス信号としては、ＳＤＲＡＭアクセスのためのＲｏｗアドレス、Ｃｏｌｕｍｎアドレス、コマンド発行などがある。
【００４６】
第１リクエスタ６３、第２リクエスタ６４、第３リクエスタ６５は、各リクエスタ内の処理に従い、バスコントローラ６２に共有メモリ６１へのアクセス要求を出し、バスコントローラ６２の許可と、処理レベル制御信号に従って、バスコントローラ６２のプロトコル変換を通して、共有メモリ６１にアクセスを行なう。
【００４７】
図４のサイクル数の例で動作を詳しく説明する。図４（ａ）に各リクエスタのサイクル数の例を示し、簡単のため、第１のリクエスタ（ＲＥＱ１）、第２のリクエスタ（ＲＥＱ２）は、１フレーム時間内に２回ずつのアクセスを必要とし、第３のリクエスタ（ＲＥＱ３）は、１フレーム時間内に０回または１回のアクセスを必要とする。各リクエスタは、定まったワード数のデータのアクセスを必要としている。サイクル数は、共有メモリ側のクロック数とする。各リクエスタのサイクル数でアクセスするアドレスによって、共有メモリ側のクロック数が変化することがある。ＳＤＲＡＭの場合、同じワード数のデータをアクセスする場合でも、ローアドレスが変更、連続アドレスかどうかに従い、最も少ないサイクル数でアクセスするためには、ＳＤＲＡＭへ必要なアドレス情報や、コマンド、シーケンスに変更が必要となる。第１のリクエスタ（ＲＥＱ１）のＡレベルの処理で最大のサイクル数をＮ１Ａ（ｍａｘ）、最も少ないサイクル数をＮ１Ａ（ｍｉｎ）とし、平均的なサイクル数をＮ１Ａ（ａｖｅ．）として示し、Ｂレベルの処理で最大のサイクル数をＮ１Ｂ（ｍａｘ）、最も少ないサイクル数をＮ１Ｂ（ｍｉｎ）とし、平均的なサイクル数をＮ１Ｂ（ａｖｅ．）として示し、Ｎ１Ａ（ｍａｘ）−Ｎ１Ａ（ａｖｅ．）、Ｎ１Ｂ（ｍａｘ）−Ｎ１Ｂ（ａｖｅ．）を黒色で示し、Ｎ１Ａ（ａｖｅ．）−Ｎ１Ａ（ｍｉｎ）、Ｎ１Ｂ（ａｖｅ．）−Ｎ１Ｂ（ｍｉｎ）を白色で示している。第２のリクエスタ（ＲＥＱ２）についても同様である。第３のリクエスタ（ＲＥＱ３）については、処理レベルは１種類で，最大のサイクル数をＮ３（ｍａｘ）、最も少ないサイクル数をＮ３（ｍｉｎ）とし、平均的なサイクル数をＮ３（ａｖｅ．）として示し、Ｎ３（ｍａｘ）−Ｎ３（ａｖｅ．）、Ｎ３（ｍａｘ）−Ｎ３（ａｖｅ．）を黒色で示し、Ｎ３（ａｖｅ．）−Ｎ３（ｍｉｎ）、Ｎ３（ａｖｅ．）−Ｎ３（ｍｉｎ）を白色で示している。
【００４８】
図４（ｂ）で１フレーム内の時間での全サイクル数と、そのサイクル数設計について示している。１フレーム時間内の共有メモリアクセスのサイクル数は、Ｎ１Ａ（ｍａｘ）×２＋Ｎ２Ａ（ｍａｘ）×２＋Ｎ３（ｍａｘ）の場合が最大となる。設計上限界サイクルを図のように設定すると、システムが破綻しないようにリクエスタに対して各処理レベルを判定することにより、最終アクセスが終わった時点で限界サイクルを越えないように制御することになる。
【００４９】
図４（ｂ）の限界サイクル数Ｌ１の動作例において、限界サイクル数Ｌ１が最大サイクル数Ｎ１Ａ（ｍａｘ）＋Ｎ２Ａ（ｍａｘ）＋Ｎ３（ｍａｘ）＋Ｎ１Ｂ（ｍａｘ）＋Ｎ１Ｂ（ｍａｘ）サイクルとする。２番目のアクセス後の矢印Ｘで示したタイミングまでに第３リクエスタからの要求があり、処理レベルを判定する場合の動作を考える。
【００５０】
残サイクル数が、Ｎ３（ｍａｘ）＋Ｎ１Ｂ（ｍａｘ）＋Ｎ１Ｂ（ｍａｘ）サイクル以上、であれば、第３のリクエスタの要求に許可を与える。この例では、第３のリクエスタの３番目のアクセスが最大サイクル数の場合でも、１フレーム内の残りのアクセスである、１回の第１リクエスタのアクセス、１回の第２リクエスタのアクセス、をＢレベルとすることにより、破綻せずにアクセスを完了することができる。
【００５１】
図４（ｂ）の限界サイクル数Ｌ２の動作例において、限界サイクル数Ｌ２が最大サイクル数Ｎ１Ａ（ｍａｘ）＋Ｎ２Ａ（ｍａｘ）＋Ｎ３（ｍａｘ）＋Ｎ１Ｂ（ｍａｘ）＋Ｎ１Ｂ（ｍａｘ）サイクルよりも少ないとする。２番目のアクセス後の矢印Ｘで示したタイミングまでに、第３リクエスタからの要求があり、処理レベルを判定する場合の動作を考える。
【００５２】
残サイクル数が、Ｎ３（ｍａｘ）＋Ｎ１Ｂ（ｍａｘ）＋Ｎ１Ｂ（ｍａｘ）サイクル以上、であれば、第３のリクエスタの要求に許可を与える。この例では第３のリクエスタのアクセスを許可してしまうと、１フレーム内の残りのアクセスである、１回の第１リクエスタのアクセス、１回の第２リクエスタのアクセス、をＢレベルとしても、最大のサイクル数であれば破綻してしまう。したがって、ここでは破綻をさけるために、第３リクエスタのアクセス要求に対しては許可を与えない。代わりに第２フレームの最初に第３のリクエスタによるアクセスを許可することなどにより、待たされるサイクル数を有効に抑えることもできる。
【００５３】
処理レベル判定を一般化する。単位時間で必要な処理を実施の形態１と同様に記号で表現し、非リアルタイムの処理をＳとする。この処理の最大サイクル数Ｃ（Ｓ）ｍａｘを消費しても、その結果の残りサイクル数Ｒ（ｎ０）−Ｃ（Ｓ）ｍａｘが、次アクセス後の残りの必要な処理をすべて最低レベル（最大のアクセスサイクルが最小の処理レベル）で行うときのアクセスサイクル数の合計，Σｎ＝ｎ０ＮＣ（ｐｒ（ｎ，ｑｍ（ｎ）ｉｎ））ｍａｘ以上、であれば、最低レベルを選択することにより破綻は生じない。従って、処理Ｓを許可することができる。
【００５４】
すなわち、
Ｒ（ｎ０）−Ｃ（Ｓ）ｍａｘ
≧  Σｎ＝ｎ０ＮＣ（ｐｒ（ｎ，ｑ（ｎ）ｍｉｎ））ｍａｘ
となる処理Ｓを許可することができる。
【００５５】
リアルタイム処理と同様に、非リアルタイム処理についても処理レベルを設定できる場合には、ｑレベルの非リアルタイム処理をＳ（ｑ）として、
Ｒ（ｎ０）−Ｃ（Ｓ（ｑ））ｍａｘ
≧  Σｎ＝ｎ０ＮＣ（ｐｒ（ｎ，ｑ（ｎ）ｍｉｎ））ｍａｘ
となるｑレベルの処理Ｓ（ｑ）を、許可することができる。
【００５６】
このように、本実施の形態２によるバスコントローラにおいては、アクセスサイクル数カウンタ１２と、リクエスタ毎に異なる処理レベルの処理を行う処理手段であるアービタ１１と、各リクエスタの異なる処理レベルの処理とアクセスサイクル数との対応を記述した対応表１３とを備え、上記アービタ１１は、複数のリクエスタからのアクセス要求に対応してアクセスの許可を調停するとともに、その処理レベルを指定する処理レベル判定手段としても機能するものとしたので、アービタ１１により、現サイクル数と、予め定められた限界サイクル数に対する残サイクル数と、対応表とに従い、限界サイクル数を越えることが予測される場合には、非リアルタイム系のバスアクセス要求を許可しない制御をするようにすることにより、全リクエスタについての、最大アクセスサイクル数×最大アクセス回数の総和よりも小さいサイクル数で設計することが可能となる。たとえば、次のリクエスタである非リアルタイム系リクエスタの次の処理から基準時間の最後の処理までの処理を、最大のサイクル数が最も小さい処理レベルで行うときのアクセスサイクル数の総和を計算し、限界サイクル数から現在のアクセスサイクル数を減算して残サイクル数を計算し、上記残サイクル数から上記総和を減算したサイクル数までの範囲で処理を完了できない場合は、次の非リアルタイム系のリクエスタを許可しない、ようにすることにより、非リアルタイム系の処理サイクル数を含めない総処理サイクル数で設計を行うことが可能となる。
【００５７】
したがって、高い周波数によるバスシステム設計によるコストアップを抑えることができ、かつ、最大サイクル数が増加した場合でも、最大サイクル数よりも小さいサイクル数、すなわち低い周波数でバスコントローラの設計を行うことができ、再設計を抑えることができる効果がある。
【００５８】
【発明の効果】
以上のように、本発明の請求項１の発明にかかるバスコントローラによれば、共有メモリに対しアクセスする複数のリクエスタの処理レベルを制御するバスコントローラであって、上記共有メモリをアクセスするアクセルサイクル数をカウントするアクセスサイクル数カウンタと、上記各リクエスタ毎に異なる処理レベルの処理を行う処理手段と、上記各リクエスタ毎に異なる処理レベルの処理と上記アクセスサイクル数との対応を記述した対応表と、アクセスが許可される各リクエスタの処理手段による処理レベルを指定する処理レベル判定手段と、を備え、上記処理レベル判定手段は、上記アクセスサイクル数カウンタによりカウントされる現サイクル数と、予め定められた限界サイクル数に対する残サイクル数と、上記各リクエスタ毎に異なる処理レベルの処理と上記アクセスサイクル数との対応表とに従い、アクセスが許可される各リクエスタの処理レベルを指定する、ものとしたので、全リクエスタのサイクル数の合計が、限界サイクル数を越えることが予測される場合には、サイクル数の少ない処理レベルを選択するようにすることにより、全リクエスタの最大アクセスサイクル数と、その最大アクセス回数分の総和よりも小さいサイクル数とを用いて設計することを可能とし、サイクル上の破綻を生じさせずに、設計コスト、設計の困難さを抑えることができる効果が得られる。
【００５９】
本発明の請求項２の発明によれば、共有メモリに対しアクセスする複数のリクエスタからのアクセス要求に対応して調停するバスコントローラであって、上記共有メモリをアクセスするアクセスサイクル数をカウントするアクセスサイクル数カウンタと、上記複数のリクエスタとアクセスサイクル数との対応表と、上記複数のリクエスタからのアクセス要求に対してアクセスの許可を調停するアービタと、を備え、上記アービタは、上記アクセスサイクル数カウンタによりカウントされる現サイクル数と、予め定められた限界サイクル数に対する残サイクル数と、上記複数のリクエスタとアクセスサイクル数との対応表とに従い、全リクエスタのサイクル数の合計が、限界サイクル数を越えることが予測される場合には、非リアルタイム系のバスアクセス要求を許可しない制御をする、ものとしたので、全リクエスタの最大アクセスサイクル数と、その最大アクセス回数分の総和よりも小さいサイクル数とを用いて設計することを可能とし、サイクル上の破綻を生じさせずに、設計コスト、設計の困難さを抑えることができる効果が得られる。
【００６０】
本発明の請求項３の発明によれば、共有メモリに対しアクセスする複数のリクエスタの処理レベルを制御し、複数のリクエスタからのアクセス要求に対して調停するバスコントローラであって、上記共有メモリをアクセスするアクセスサイクル数をカウントするアクセスサイクル数カウンタと、上記各リクエスタ毎に異なる処理レベルの処理を行う処理手段と、上記各リクエスタ毎に異なる処理レベルの処理とアクセスサイクル数との対応を記述した対応表と、アクセスが許可される各リクエスタの処理手段による処理レベルを指定する処理レベル判定手段と、上記複数のリクエスタからのアクセス要求に対応しアクセスの許可を調停するアービタと、を備え、上記処理レベル判定手段、および上記アービタは、上記アクセスサイクル数カウンタによりカウントされる現サイクル数と、予め定められた限界サイクル数に対する残サイクル数と、上記対応表とに従い、アクセスが許可されるリクエスタの処理手段による処理レベルを指定するとともに、全リクエスタのサイクル数の合計が、限界サイクル数を越えることが予測される場合には、非リアルタイム系のバスアクセス要求を許可しない制御をする、ものとしたので、全リクエスタの最大アクセスサイクル数と、その最大アクセス回数分の総和よりも小さいサイクル数を用いて設計することが可能となり、サイクル上の破綻を生じさせずに、設計コスト、設計の困難さを抑えることができる効果が得られる。
【００６１】
本発明の請求項４の発明によれば、請求項１記載のバスコントローラにおいて、上記処理レベル判定手段は、リクエスタの２個後の処理から基準時間の最後の処理までの処理を、最大のサイクル数が最も小さい処理レベルで行うときのアクセスサイクル数の総和を計算し、限界サイクル数から現在のアクセスサイクル数を減算して残サイクル数を計算し、上記残サイクル数から上記総和を減算したサイクル数までの範囲で次のリクエスタの処理のレベルを選択するものとしたので、全リクエスタの最大アクセスサイクル数と、その最大アクセス回数分の総和よりも小さいサイクル数とを用いて設計することを可能となり、サイクル上の破綻を生じさせずに、設計コスト、設計の困難さを抑えることができ、しかも、ほとんど全期間にわたって最適な処理を行うことができる効果がある。
【００６２】
本発明の請求項５の発明によれば、請求項２記載のバスコントローラにおいて、上記アービタは、次のリクエスタである非リアルタイム系リクエスタの次の処理から基準時間の最後の処理までの処理を、最大のサイクル数が最も小さい処理レベルで行うときのアクセスサイクル数の総和を計算し、限界サイクル数から現在のアクセスサイクル数を減算して残サイクル数を計算し、上記残サイクル数から上記総和を減算したサイクル数までの範囲で処理を完了できない場合は次の非リアルタイム系のリクエスタを許可しない、ようにすることとしたので、全リクエスタの最大アクセスサイクル数と、その最大アクセス回数分の総和よりも小さいサイクル数とを用いて設計することを可能とし、サイクル上の破綻を生じさせずに、設計コスト、設計の困難さを抑えることができ、しかも、ほとんど全期間にわたって最適な処理を行うことができる効果がある。
【００６３】
本発明の請求項６の発明によれば、請求項３記載のバスコントローラにおいて、上記処理レベル判定手段、および上記アービタは、次のリクエスタである非リアルタイム系リクエスタの次の処理から基準時間の最後の処理までの処理を、最大のサイクル数が最も小さい処理レベルで行うときのアクセスサイクル数の総和を計算し、限界サイクル数から現在のアクセスサイクル数を減算して残サイクル数を計算し、上記残サイクル数から上記総和を減算したサイクル数までの範囲で処理を完了できない場合は、次の非リアルタイム系のリクエスタを許可しない、ものとしたので、全リクエスタの最大アクセスサイクル数と、その最大アクセス回数分の総和よりも小さいサイクル数とを用いて設計することが可能となり、サイクル上の破綻を生じさせずに、設計コスト、設計の困難さを抑えることができ、しかも、ほとんど全期間にわたって最適な処理を行うことができる効果がある。
【００６４】
本発明の請求項７の発明によれば、請求項６記載のバスコントローラにおいて、上記非リアルタイム系リクエスタは、複数の異なる処理レベルを有するもの、としたので、全リクエスタの最大アクセスサイクル数と、その最大アクセス回数分の総和よりも小さいサイクル数とを用いて設計することが可能となり、サイクル上の破綻を生じさせずに、設計コスト、設計の困難さを抑えることができ、しかも、より一層、ほとんど全期間にわたって最適な処理を行うことができる効果がある。
【図面の簡単な説明】
【図１】本発明の実施の形態１によるバスコントローラの構成図
【図２】上記実施の形態１における、バスシステムの構成例を示す図
【図３】上記実施の形態１における、第１の処理サイクルを説明する図
【図４】上記実施の形態１における、第２の処理サイクルを説明する図
【図５】従来のバスコントローラの構成図
【図６】従来の、バスシステムの構成例を示す図
【図７】従来の処理サイクルを示す図
【符号の説明】
１１    アービタ
１２    サイクルカウンタ
１３    リクエスタ処理レベル−メモリサイクル数対応表
１４    プロトコル変換手段
２１    共有メモリ
２２    バスコントローラ
２３，２４  リクエスタ
ＡＣ    アービタ制御信号
ＰＬ    処理レベル制御信号
ＲＡ    リクエスタアクセス信号
ＣＭＡ  共有メモリアクセス信号
【図１】
2004287576.tif 000003
【図２】
2004287576.tif 000004
【図３】
2004287576.tif 000005
【図４】
2004287576.tif 000006
【図５】
2004287576.tif 000007
【図６】
2004287576.tif 000008
【図７】
2004287576.tif 000009