(57)【要約】タイム・スロットリソースアクセス方式のために設計されたモジュール（ＰＲＯＣ）と要求調整に基いて共通リソースにアクセスするために設計されたモジュール（ＰＲＯＣ’）とを統合するシステムにおいて、共通リソースへのアクセスを管理する要求調整方式が使用される。タイム・スロットリソースアクセス方式のために設計されたモジュール（ＰＲＯＣ）は先行要求発生器（ＡＲＧ）と結合され、この先行要求発生器（ＡＲＧ）は、結合モジュールがアクセスを要求するように設計されている時刻に先立って生成された先行要求を発生して、アービタ（Ｐ  ＡＲＢ）へ発送するように構成されている。データ・バッファ（ＤＡＴＡ  ＢＵＦ）もまたタイム・スロットリソースアクセス方式のために設計されたモジュールのそれぞれと結合され、先行要求の結果として得られたデータを、このデータに関連する要求をモジュールが発生する時刻まで保持する。
2004517413.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータ処理エージェントを含み、且つ一度に１つのエージェントによりアクセス可能な外部リソースと協力するように構成したデータ処理装置であって、前記データ処理装置は：
前記リソースヘのアクセスを管理するように構成したインターフェイスを含み、このインターフェイスは、共通リソースへのアクセスのために、複数のデータ処理エージェントにより発行される各要求の間で調整して、これによりどの要求が受け入れられるかを選択するように構成した調整手段を含み；
前記データ処理エージェントの少なくとも１つが、既知の持続期間のそれぞれの期間の間、所定時間にアクセスするように構成されており；
コントローラが前記データ処理エージェントの少なくとも１つと結合されており、前記コントローラは少なくとも一つのデータ処理エージェントが共通リソースへのアクセス要求を出力する所定時間を示す制御データを発生するように構成されており；
各バッファが少なくとも一つのデータ処理エージェントと結合されており；
前記コントローラから制御データを受け取るように配置され、且つ前記所定時間よりも早い時間に、前記の少なくとも一つのデータ処理エージェントのための先行アクセス要求を発生して前記インターフェイスに供給するように構成された先行要求発生器が設けられ；
前記インターフェイスは、前記の少なくとも１つのデータ処理エージェントのために前記先行要求発生器により発生された先行アクセス要求の結果として前記リソースから得られるデータが、前記データ処理エージェントと結合するバッファに書き込まれるように構成されており；
少なくとも１つのデータ処理エージェントが、これと結合された前記バッファへ前記所定時間にアクセスするように配置されていることを特徴とする、データ処理装置。
【請求項２】
前記先行要求発生器が、前記コントローラによるアドレス・データ出力に基いて先行アクセス要求を発生するように構成されている、請求項１に記載のデータ処理装置。
【請求項３】
異なるアクセス要求が異なる優先順位を有し、時間制約要求または周期的アクセス要求が高い優先順位に割当てられた調停方式を、前記調停手段が実施する、請求項１または請求項２に記載のデータ処理装置。
【請求項４】
前記の少なくとも一つのデータ処理エージェントのいくつかにより要求される前記アクセスの性質が予測不可能であり、前記の幾つかのデータ処理エージェントを例外として、前記の少なくとも一つのデータ処理エージェントのほぼ全てについて先行アクセス要求を発生するように、前記先行要求発生器が構成され、且つ前記調停手段により実施される調停方式が、前記の幾つかのデータ処理エージェントからアクセス要求への高い優先順位に一致する、請求項３に記載のデータ処理装置。
【請求項５】
異なるアクセス要求に固定優先順位が割当てられている複数の状態を有する一つ以上の状態機構を前記調停手段が含み、且つ少なくとも一つの前記状態機構が、アクセス要求が最も高い優先度を有する予定のない空き状態を含む、請求項３または請求項４に記載のデータ処理装置。
【請求項６】
前記リソースがメモリである、請求項１ないし請求項５のいずれかに記載のデータ処理装置。
【請求項７】
集積回路として実施される、請求項１ないし請求項６のいずれかに記載のデータ処理装置。
【請求項８】
請求項１ないし請求項７のいずれかに記載の前記データ処理装置および前記リソースを含むデータ処理システム。
【請求項９】
前記リソースがメモリであり、且つ前記システムがＭＰＥＧコーダ・デコーダを構成する、請求項８に記載のデータ処理システム。
【請求項１０】
複数のデータ処理エージェントにより共用リソースへのアクセスを管理する方法であって、このリソースは一度に一つのデータ処理エージェントによりアクセス可能であり、前記リソースへのアクセスを管理するインターフェイスが供給され、前記インターフェイスは前記共用リソースへのアクセスのために複数のデータ処理エージェントにより発行される各要求の間で調停するように構成した調停手段を含み、これによりどの要求が受け入れられるかを選択し、且つ少なくとも一つの前記データ処理エージェントが、既知の継続期間のそれぞれの期間の間、所定時間にアクセスするように構成されており、前記方法は：
前記の少なくとも一つのデータ処理エージェントに結合されたコントローラを設けるステップと、ここで前記コントローラは、少なくとも一つのデータ処理エージェント出力が前記共用リソースへのアクセスを要求する所定時間を示す制御データを発生するように構成されており；
少なくとも一つのデータ処理エージェントに結合される各バッファを設けるステップと；
前記コントローラから制御データを受け取るように配置され、前記所定時間よりも早い時期に、前記の少なくとも一つのデータ処理エージェントのために先行アクセス要求を発生し、前記インターフェイスに供給するするように構成した先行要求発生器を設けるステップと；
前記の少なくとも一つのデータ処理エージェントの一つために、前記先行要求発生器により発生された先行アクセス要求の結果として前記リソースから得られるデータを、前記一つのデータ処理エージェントに結合されたバッファに書き込ませるように前記インターフェイスを構成するステップと；
前記所定時間に、少なくとも一つのデータ処理エージェントがこれに結合したバッファへアクセスするように配置するステップと、を含んでなる方法。
【発明の詳細な説明】
【０００１】
発明の背景
本発明は、共有リソースへのアクセスを管理する異なる方式を有するエージェントを収容するシステムに関する。通常、本発明は共通メモリへのアクセスを管理する異なる技法を有する複数のデータ・プロセッサを単一のシステムが使用できるように構成されている。そのようなシステムの非限定的な一例は、ＭＰＥＧコーデック（Ｍｏｔｉｏｎ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔ  Ｇｒｏｕｐにより定義された規格を実施するコーダ・デコーダ）である。
【０００２】
複数のエージェントの間で共通のリソースを共用する必要があり、且つ一度に一つのエージェントのみがこの共用されるリソースにアクセス可能である各種のシステムが存在する。例えば幾つかのプロセッサが一つの共通メモリを共用するデータ処理装置が、この場合である。本明細書において、「エージェント」という用語は、モジュールおよびモジュールにより実施される処理の両方を指示するために使用される（与えられた一つのモジュールが複数の処理を実施すると、理解される）。
【０００３】
個別のエージェントによる共用リソースへのアクセスを管理するために異なる方式が採用されてきた。幾つかのシステムは、タイムスロット・アクセス方式を採用し、これは所定期間の間、所定の時刻に各エージェントが共用リソースにアクセスし、エージェントが所定の順序で共用リソースに繰返しアクセスする。他のシステムが採用する方式では、エージェントがアクセスを必要とする時にアクセス要求をし、同時に複数の要求が発行された場合には、アービタがどちらのアクセス要求が受入れられるかを決定する。このアービタは、各エージェントがその必要に充分な時間共用リソースへアクセスできることを確実にするように設計された調整方式を実施する。これは通常各エージェントにより要求される「帯域幅」という用語で認められている。
【０００４】
ＷＯ９８／１２６４５は、マイクロプロセッサ・チップ上に集積された幾つかの装置（中央処理装置（ＣＰＵ）、データおよび命令のキャッシュ、画像コプロセッサなど）が共用バスを使用して、チップの外に位置する共通メモリ（同期ＤＲＡＭ）へアクセスするシステムにおけるバス調整の方法および装置について述べている。このシステムにおいては、バス・アクセスを要求する異なるエージェントへの帯域幅の重み付け割当てがあり、各装置がその必要とする帯域幅割当てを受けるのを確実にする調整方式を、アービタが実施する。
【０００５】
図１は、タイムスロット・アクセス方式を使用するように設計されたモジュールの典型的な環境を図示し、この例においてモジュールはプロセッサＰＲＯＣであり、また共用リソースはメモリＭＥＭである。モジュールＰＲＯＣは、インターフェイスＩＮＴを介して、メモリＭＥＭにアクセスするようにされている。図１には一つのモジュールＰＲＯＣのみ示されているが、一般に単一チップのＩＣ１へ幾つかのそのようなモジュールが集積されることが理解される。さらにこの図ではチップ上にメモリ・インターフェイスが供給されているが、本発明はオフチップのメモリ・インターフェイスに関連して設計されるモジュールの再利用の場合にも適用できることが理解される。このインターフェイスＩＮＴは、モジュールＰＲＯＣがメモリＭＥＭへ、メモリ・アクセス方式に基いてアクセスできるようにしており、このメモリ・アクセス方式によればモジュールＰＲＯＣのために所定のタイム・スロットが予約されていて、これによりデータをメモリＭＥＭへ転送したり、そこからデータを受け取ったりする。
【０００６】
インターフェイスＩＮＴは、構成可能であってすなわち特定のタイム・スロットへのモジュールへの割当てを変更できる。コントローラＣＯＮＴが、制御データをインターフェイスＩＮＴに与えて、チップ上のそれぞれ異なるモジュールのためにメモリへアクセスするのにどのタイム・スロットを使用すべきかを規定する。コントローラＣＯＮＴはまたモジュールＰＲＯＣへ制御データを与えて、（インターフェイスＩＮＴの内部のバッファを介して）メモリＭＥＭからデータを取り出したり、そこへデータを書き込んだりするための所定のタイム・スロットをそれに知らせるようにする。タイム・スロットへの処理モジュールの割当てが変更されることは比較的に頻度が少なく、従って構成の変更が要求された時にのみ制御データがインターフェイスと処理モジュールへ送られる。
【０００７】
一般にチップ上の各処理モジュールは、同一の処理機能を繰り返し実施するが、しかし新しいデータに応用される。例えば図１のＩＣ１がＭＰＥＧエンコーダのコアである場合、幾つかのプリセット機能が連続的なマクロ・ブロック上で繰り返し遂行されて、処理モジュールのグループにより一つの画像信号のフレームを作りあげる。ＩＣ１の内部のコントローラＣＯＮＴが処理モジュールとインターフェイスへ、各種の所定のタイム・スロットがいつ起こるかを決定する基準として、同期信号（この例ではフレーム監視信号とマクロ・ブロック開始信号）を出力する。このコントローラはまたこのインターフェイスへアドレス・データを出力するが、このアドレス・データは、特定期間の間に与えられたモジュールにより処理されるべきマクロブロックまたはピクセルの行に関するデータが、メモリＭＥＭのどこに記憶されるかを指示する。このアドレス・データは、一般に開始アドレス、およびアクセスすべき連続アドレス位置の数に関して定義される。ある場合には、モジュールによりなされる所与の要求に適用されるアドレス・データは、他のモジュールによりなされるある計算（同一物理装置の他の処理であり得る）の結果によって左右される。そのような場合にはコントローラが、計算を遂行するモジュールから結果に関するデータを受け取って、それに従ってアドレス・データを発生する。
【０００８】
モジュールＰＲＯＣに使用されるのと異なる速度でインターフェイスＩＮＴがデータを読み書きする場合は、モジュールＰＲＯＣに専用のバッファＢＵＦがインターフェイスとモジュールＰＲＯＣの間に置かれて、このモジュールへ向けられたデータをメモリＭＥＭから読み出して記憶する。この場合、所定の時間間隔でバッファとの間でデータを読み書きするように、モジュールＰＲＯＣが配置されている。この場合読取動作の間に、該当データがバッファ内に存在することを示す確認信号をモジュールＰＲＯＣがバッファから受信しないならば、後続の要求が確認される時までこのモジュールが機能停止される。
【０００９】
図１のタイム・スロット・メモリ・アクセス方式では、前記所定期間内にメモリ・インターフェイス（またはある場合バッファへ）なされた要求を介して、所定のセット持続期間の間にデータを受信または出力するように、モジュールＰＲＯＣが設計されている。
【００１０】
図２は、複数のエージェントから発行される異なった要求の間を調整するアービタを含む典型的なシステムを図示する。再びこの例においても、これらのエージェントは、一つの共通メモリＭＥＭを共有する処理モジュールＰＲＯＣ’であり、単一チップＩＣ２上の単一エージェントのみが図２に図示されている。この場合インターフェイスＩＮＴが、アービタＡＲＢを組み込んでいて、これが与えられた時刻に有効な複数のアクセス要求のどちらが受入れられるを決定する調整方式を与える。この調整方式は、ラウンド・ロビン方式、または異なったモジュールへ割当てられる優先順位（恐らくは可変優先順位）に基いた、または他の公知の調整方式であり得る。受入れられたアクセス要求は、メモリ・インターフェイスＭＩＦへ渡され、これがメモリＭＥＭへの物理アクセスを処理してＭＥＭとＰＲＯＣ’の間でデータの経路選択を処理する。
【００１１】
このシステムでは、所与のモジュールによる要求の作成とこの要求に応えるアービタによるアクセス許可の間に、どれだけの時間が介在するかがあらかじめ知られている。従って各モジュールについて、このモジュールとインターフェイスの間にバッファＢＵＦ’が備えられている。この中間バッファは、異なるモジュールに専用の独立部を有する単一のメモリ（ＳＲＡＭ）を使用して実施される。
【００１２】
図２の調整メモリ・アクセス方式において、このモジュールは、可変の時間と可変の持続期間でアクセス要求を発行し、また可変持続期間の不規則なインターバルでデータを受信および／または出力する。
【００１３】
ある状況においては、異なるリソースアクセス方式のために設計された単一のシステム・モジュールを採用することが望ましい。例えばＭＰＥＧコーデックの状況においては、エンコーダ・チップとデコーダ・チップ（これらは集積回路）が別々に設計され、デコーダの異なる処理によりなされるアクセス要求の間を選択するアービタをデコーダ・チップが使用する一方で、エンコーダは、その構成要素の処理がメイン・メモリへ必要なアクセスを確実に得るために、タイム・スロット・アクセス管理方式を使用する。エンコーダ・チップとデコーダ・チップのために別々のメモリを使用できるが、これは明らかにコーデックのコストと複雑性を増加させる。両方のチップに共通の一つのメモリを使用することが好ましく、従ってこの共通メモリへのアクセスを管理する単一の方式を使用する必要がある。
【００１４】
コストを削減するためには、異なる集積回路のアーキテクチャをできるだけ変更しないでおくことが望ましい。アプリオリ（ａ ｐｒｉｏｒｉ）にこれはタイム・スロット・メモリ・アクセス方式の使用に対して不利であるが、その理由は要求調整方式のために設計されたモジュールによりなされるアクセス要求のタイミングと持続に関してデータがすぐに利用可能になっていないからである。
【００１５】
要求調整メモリ・アクセス方式は、メモリ・アクセスを要求する異なるモジュールの間でそれが効率的な帯域幅分割を供給するという利点を有する。しかしながら、タイム・スロット方式のために設計されたモジュールＰＲＯＣへ要求調整方式を使用することには問題があり、その理由はモジュールＰＲＯＣがそのためにプログラムされている周期的な間隔において、ＰＲＯＣのためのデータが使用可能であることを保証するのが困難だからである。
【００１６】
より詳しくは、モジュールＰＲＯＣが共通メモリとデータの読み書きを「期待する」インターバルの間、それは高い帯域幅のアクセスを必要とする。ある場合には、メモリがそのような高い帯域幅のアクセスのために単に設計され得ない（バスの属性が不適当である）。しかしながら、高い帯域幅アクセスが可能な場合でも、モジュールＰＲＯＣからの要求が発行される時刻にすでに他のモジュールがこのメモリへアクセスしていて、このアクセスを割り込みできないかもしれない。この問題への一つの解決は、仲裁方式の設計をＰＲＯＣからの要求に高い優先順位を与えるように変更することである。しかしながら、この解決法は、読取アクセスの間にモジュールＰＲＯＣへデータがアンダーフローする危険を除去するのに充分でない。
【００１７】
発明の概要
本発明の一つの目的は、共通の（共用）リソースへアクセスする異なったエージェントの要求の間を調整するアービタを採用するシステムに使用される、タイム・スロットリソースアクセス方式のため設計されたエージェントを可能にすることである。
【００１８】
本発明のもう一つの目的は、共通リソースへアクセスするために異なったエージェントの要求の間を調整するアービタと、タイム・スロットリソースアクセス方式のために設計された少なくとも一つのエージェントを採用するシステムにおいて、コストを減少できるようにすることである。
【００１９】
本発明は次の諸側面を考慮に入れる。先行要求発生器が、タイム・スロットリソースアクセス方式のために設計されたエージェントに結合されている。共通リソースからデータを受信するようにエージェントがプログラムされている期間に先立って、先行要求発生器がアクセス要求を発生して、共通リソースへのアクセスを管理するインターフェイスへこれらを発送する。この先行要求は、インターフェイスにより実施される調整方式に従って、エージェントがデータを要求する時期が到来する以前に、共通リソースへのアクセスを立ち上がらせる。先行要求の結果として、受信されるデータを一時的に記憶するために、インターフェイスとエージェントの間にバッファが配置される。データを取り込むようにエージェントがプログラムされている時期の間に、エージェントはバッファからデータを取りこむ。事前プログラムされた時点にエージェントによりなされる書込アクセス要求が、（オプションとしてバッファを介して）アービタへ単に転送される。
【００２０】
タイム・スロット・リソース・アクセス方式にされたエージェントが、先行要求発生器とバッファが存在するおかげにより、要求・調整に基くシステム内に組込まれる。このエージェントは複数のエージェントの一つであり、それらのエージェントは全て、一つの集積回路上に供給されたタイム・スロット・アクセス方式に適合するこの場合に、ＩＣアーキテクチャの変更への要求が最小限になる。このインターフェイスがオン・チップで供給されれば、必要なのはエージェントに関連する既存のインターフェイスの修正だけである。
【００２１】
先行要求発生器は、好ましくはタイム・スロットリソースアクセス方式を構成および／または制御するために設計されたコントローラにより供給される、制御データおよび同期信号に基いて諸要求を発生するように配置される。制御データは少なくとも、タイム・スロットと共通リソース得のアクセスを要求するエージェントの間の関係を指示するデータを含む。単一の集積回路（ＩＣ）は、このタイプのコア・コントローラを備えた１セットのモジュールから成るコアを含むことがある。
【００２２】
ある場合には、タイム・スロット・アクセス方式のために設計されたエージェントのアクセス要件のいくつかは予測できない。言い換えれば、アクセス要求のためにエージェントがプログラムされるタイム・スロットの直前にのみ、必要なアクセスの性質が（典型的には、読み取るべきアドレスに関して）知られるようになる。そのような場合に、予測可能なアクセス要求の実質上全てについて先行要求を発生するように先行要求発生器をプログラムし、予測不可能なアクセス要求を優先化するように調整方式を修正することが望ましい。
【００２３】
本発明は、共通メモリへのアクセスが必要な処理モジュールを有するシステムへ応用される場合に特に重要である。この場合、タイム・スロット・メモリ・アクセス方式へされたモジュールに関連するコントローラが、各モジュールの読み書き動作に関するアドレス・データを供給するようにされることが多い。先行要求を発生するために、先行要求発生器は、コントローラから受信したアドレス・データを使用できる。他の場合には、処理モジュール自体がアドレス・データを発生できる。そのような場合には、アドレス・データが充分に早く発生されれば、先行要求発生器が他の処理モジュールから必要なアドレス・データを集める（予測可能な要求）。一般に、コア・コントローラまたは処理モジュールは、外部メモリの物理アドレスよりもむしろ論理アドレスに関するデータを発生する。それから論理アドレスと物理アドレスの間を変換する関連ユニットがコア・コントローラ／モジュールに結合される。
【００２４】
本発明によるシステムと方法においては、全てのエージェントのアクセス要求が適確に満たされるために、異なるエージェントのアクセス要求が異なる優先順位を有する調整方式を採用することが好ましい。これを達成するために、好ましくは複数のレベルを含む階層的調整方式を使用し、時間制限された周期的なアクセス要求が階層内の上位レベルまで割当てられている。そのような階層的方式は、状態機械のカスケード・セットを使用して実施でき、階層内の下の状態機械からの出力が階層内の最高レベルに次ぐ状態マシーンへの入力として働く。階層内の各レベルでアクセス要求が競合して勝利した要求が、状態機械からの出力として働く。階層内の最高の状態機械からの出力は、調整で受入れられたエージェントのアクセス要求に対応する。こうしてこのアクセス要求が処理される（または処理待ちの受入れ要求の待ち行列内に配置される）。この調整方式はＷＯ９８／１２６４５に記述された階層的調整方式上でモデル化できる。
【００２５】
状態機械を使用する階層的方式をアービタが実施する本発明の実施例では、好ましくは状態機械の状態の過半数について固定優先順位が異なるアクセス要求へ割当てられる。しかしながら階層内の高いレベルに対応する状態機械が、そのレベルで競合する諸要求の間で事前に割当てられる優先順位が何も無い空き状態を確実に有するのが有利である。
【００２６】
発明の好適な実施の形態の説明
最初に参照記号の使用について少し論評する。複数の図面を通じて類似の構成要素が同一の参照記号で記される。単一の図面内に異なる類似の構成要素が示される。その場合類似の構成要素を互いに他から識別するために参照記号へ番号が追加される。類似の構成要素の番号が連続変数である場合は、番号が括弧に入れられる。発明の説明と特許請求の範囲において適当ならば参照記号内の数字が省略される。
【００２７】
タイム・スロット・メモリ・アクセス方式を採用するように設計されたエンコーダ、およびメモリ・アクセス要求の間を調整するアービタを採用するように設計されたデコーダからなる、ＭＰＥＧコーデックの状況において、下記に本発明を説明する。しかしながら他の広く多様な状況において、本発明が適用できることを理解すべきである。一般的な形式の集積回路に対応するエンコーダを図１に図示し、また一般的な形式の集積回路に対応するデコーダを図２に示す。これらのエンコーダＩＣとデコーダＩＣは、もともと共通システム内でそれらを利用する目的なしに設計されたものと仮定している。共通システムへこれらのＩＣを集積するには、構成要素のＩＣの構成にいくらか変更が必要であるが、本発明はこれらＩＣアーキテクチャへの変更を最小化できる。
【００２８】
コーデックの構造と動作を説明する前に、個別のエンコーダＩＣとデコーダＩＣが元来設計・構成された特性に関して、いくらか注釈するのが有用である。
【００２９】
この例では元来設計されたままのデコーダＩＣが、メモリ・インターフェイスを介して外部のＳＤＲＡＭへアクセスの要求をするようにされた一定数の処理を含むが、これらの要求のタイミングと持続はアプリオリに知られていない。これらの処理は、ＤＩＳＰＬＡＹ、ＯＳＤ（オン・スクリーン・ディスプレイ）ＰＩＰ（ピクチャー・イン・ピクチャー）ＩＮＴＥＲＰ、ＭＣ（動き補償）、ＶＦＷ（ビデオＦＩＦＯライト）、ＶＦＲ（ビデオＦＩＦＯリード）、ＡＦＷ（オーディオＦＩＦＯライト）、ＩＦＲ（オーディオＦＩＦＯリード）、ＡＷＲＢＷ（オーディオ・ライト・バック・ライト）およびＡＷＲＢＲ（オーディオ・ライト・バック・リード）を含む。
【００３０】
処理ＤＩＳＰＬＡＹは、デコードされた画像の表示に関する。処理ＯＳＤは、表示されたデコード済み画像上に重ね合わせたグラフィック・データの表示に関する。処理ＰＩＰは、背景またはデコードされ処理された画像で示す静止画像の表示に関する。処理ＩＮＴＥＲＰは、ＭＰＥＧデコーディングの最後の部分に関し、画像の表示または参考画像としての使用または両方のために、ＳＤＲＡＭの中へロードされるデコード済み画像の供給に関する。処理ＭＣは、動き補償に関し、ＭＰＥＧビデオ・デコーディングの中の一ステップである。処理ＶＦＷ、ＶＦＲ、ＡＦＷ、ＡＦＲは、デスクランブリング／デマルチプレクシング回路によりＭＰＥＧデータのストリームから抽出された、エンコード済みのオーディオ・データおよびビデオ・データの読取と書込に関する。処理ＡＷＲＢＷとＡＷＲＢＲは、オーディオ・プロセッサからの中間結果の読取と書込に関する。これらの処理は、本出願人の先行のヨーロッパ特許出願第００２０３００７号に議論されている。これらの処理の詳細は、モーション・ピクチャー・エキスパート・グループにより定義された異なる比較の中に与えられているが、全てこれらの詳細についての知識は、本発明の理解のために重要でないので、本書には更に説明はしない。
【００３１】
デコーダＩＣのメモリ・インターフェイスは、デコーダ処理要求をＭＭＩ対応の形式で、ＭＭＩへ送信するための要求ラッパー（ｗｒａｐｐｅｒ）を含む。メモリ・インターフェイスはまた中間バッファＢＵＦとして働くＳＲＡＭを含み、ＢＦＵは、問題の要求が調整で受入れられる時間まで、主メモリとＭＭＩを介するデコーダ処理の間の途中で、要求にかかわるデータを記憶する。ＳＲＡＭは幾つかのバッファ（ＦＩＦＯ）に分割され、これらのバッファはそれぞれの処理の各々について外部ＳＤＲＡＭからデータを受信する。中間バッファ内の適当なＦＩＦＯへデータを正確に経路選択させるために、デコーダＤＭＡインターフェイス内にも各要求を対応するデータへ結合する装置（図示なし）が備えられる。この装置は、ＳＲＡＭ内の各処理のＦＩＦＯについて、ポインタとデータ・ストリームを管理する。
【００３２】
エンコーダＩＣは、タイム・スロット法ではたらくように構成可能なメモリ・アクセス・インターフェイスを含むように設計される。ＣＰＵはＩＣのコントローラとして働き、エンコーダ内の種々な処理の間のメモリ帯域幅の分布を含むテーブルを、メモリ・インターフェイスへダウンロードする。この処理には、下記のものが含まれる：マクロブロック・プロセッサ（ＭＢＰカレント）により処理されるカレント・マクロブロック、オーディオ・エレメンタリ・ストリーム・イン（ＡＥＳｉｎ）、ビデオ・エレメンタリ・ストリーム・イン（ＶＥＳｉｎ）、オーディオ・エレメンタリ・ストリーム・アウト（ＡＥＳｏｕｔ）、ビデオ・エレメンタリ・ストリーム・アウト（ＶＥＳｏｕｔ）、マルチプレクサ・コマンド・イン（Ｍｕｘｃｏｍ＿ｉｎ）、マルチプレクサ・コマンド・アウト（Ｍｕｘｃｏｍ＿ｏｕｔ）、マクロブロック・プロセッサ・キャンディット（ＭＢＰｃａｎｄ、詳しくは、ＭＢＰｃａｎｄ１ないしＭＢＰｃａｎｄ５）、マクロブロック・プロセッサ・ウイナー・カラー（ＭＢＰｗｉｎｃｏｌｏｒ）、マクロブロック・プロセッサ・ライト・バック（ＭＢＰ  ＷＲ  ＢＫ）、およびビデオ・フロント・エンド（ＶＥＦＥ）である。再びここでもこれら全ての詳細の知識は本発明の理解のために重要でないので、本書では更に説明しない。
【００３３】
ダウンロード・テーブルは、エンコーダ内の異なる処理による異なる要求の開始時間に対応する。そのようなテーブルの一例を下記の図１に示す。理解すべきは、表１にリストされた異なる処理が必ずしも同一のマクロ・ブロックを含まないことである。（言い換えればＭＢＰｃａｎｄデータは、ここで記述されるＭＢｋ＋１、現在処理中のマクロブロックに関するが、ＭＢＰ＿Ｗｉｎｃｏｌｏｒデータは、４つのマクロブロックだけ以前のマクロブロック（すなわちＭＢｋ−３）に関する。そのうえ一般に処理ＶＥＳ＿ｉｎ、ＶＥＳ＿ｏｕｔ、ＡＥＳ＿ｉｎ、ＡＥＳ＿ｏｕｔ、Ｍｕｘ＿Ｃｏｍ＿ｉｎ、ＭＵＸ＿Ｃｏｍ＿ＯｕｔおよびＶＥＦは、マクロブロックに関してデータを処理せず、ピクセルの行のような他の単位に関してデータを処理する。
【表１】
2004517413.tif 000003
【００３４】
表１の開始時間が図３ａ）に、それぞれの要求が開始するサイクル番号を参照して図示されている。図３ａ）において、異なる高さの棒（ｂａｒ）は異なる処理から発生する要求の間の差を示すために使用される。また、同一タイプの入力および出力と出力情報との間の相違を示すために、図３ａ）に実線と点線の棒が使用されている。
【００３５】
主要なエンコーダ処理およびデコーダ処理は、下記の表２にリストされているが、個別のエンコーダＩＣとデコーダＩＣがスタンド・アローンとして動作するとき（すなわちそれらがコーデック内に結合されていないとき）使用される帯域幅も同時に示されている。
【表２】
2004517413.tif 000004
【００３６】
エンコーダＩＣとデコーダＩＣが一つの共通システムへ一体化されると、そこではメモリ・アクセスが要求調整により処理され、高い優先順位のエンコーダの要求を遅延することはできず、所与の処理のためのデータは所与の時刻に保証される。しかしながらそれでもデコーダ処理のために必要な帯域幅を保証する必要がある。
【００３７】
図４は、本発明の好ましい実施例によるコーデックの主要な構成要素を図示し、上述のエンコーダＩＣとデコーダＩＣを一体化している。エンコーダ・チップおよびデコーダ・チップに加えて、コーデックには、ＳＤＲＡＭタイプのメモリ、システム全体を制御するシステムＣＰＵ、バス制御ユニット（ＢＣＵ）、関連の周辺機器インターフェイス・バス（ＰＩ＿ｂｕｓ）が含まれ、またエンコーダ処理とデコーダ処理のための諸要求とシステムＣＰＵによる諸要求の間を調整するアービタＰ＿ＡＲＢを含む主メモリインターフェイス（ＭＭＩ）が含まれる。システムＣＰＵ、ＢＣＵ、および関連のバスは、「システム領域」として知られるものを構成する。エンコーダ・チップとデコーダ・チップおよびＭＭＩインターフェイスは、「信号領域」として知られるものを構成する。
【００３８】
システムＣＰＵは、エンコーダとデコーダを駆動して、アプリケーションを実行するために使用される。システムＣＰＵは、ＳＤＲＡＭへの周期的なアクセスを遂行するが、ＳＤＲＡＭの周波数は、使用されるＳＤＲＡＭのタイプによって異なるシステム・クロック周波数に基づいている。システム領域ＣＰＵからのメモリ・アクセス要求には、小さな待ち時間がある（つまり、要求の作成と要求の充足の間にほんの短い遅延が許容される）。こうして、システムＣＰＵの要求は、最高の優先順位を持つべきであり、一層詳しくは、それは全ての信号領域の要求に取って代わるべきである。本発明の好ましい実施例において、信号領域処理アービタＰ＿ＡＲＢは、システム領域ＣＰＵからのアクセス要求のために、信号領域の処理のためになされるＳＤＲＡＭへのアクセスに割り込むようにされている。システムＣＰＵ要求が確認済みになると、割り込みの時点から信号領域処理要求を継続することができる。
【００３９】
エンコーダ・チップおよびデコーダ・チップのダイレクト・メモリ・アクセス（ＤＭＡ）が、信号領域アービタＰ＿ＡＲＢへ接続される。ＤＭＡインターフェイスと信号領域インターフェイス（ＭＭＩ）の間のデータ交換は、１６メモリ・ワードのバーストを使用する（この例では、各メモリが３２ビットを有する）。これに対して、異なるエンコーダ読み書き処理とエンコーダＤＭＡインターフェイスの間のデータ交換は、要求ごとに８メモリ・ワードのバーストを伴う。
【００４０】
アクセス要求は、例えばエンコーダまたはデコーダのＤＭＡインターフェイスと信号領域アービタＰ＿ＡＲＢの間、およびエンコーダまたはデコーダのインターフェイスと要求をするエンコーダ／デコーダ処理の間の要求信号と確認信号の交換を含む。一層詳しくは、エンコーダＤＭＡインターフェイスの先行要求発生器が、先行読取要求（ａｎｔ＿ｒｅａｄ＿ｒｅｑ）をＰ＿ＡＲＢへ送り、先行読取確認（ａｎｔ＿ｒｅａｄ＿ａｃｋ）を逆に受け取る。エンコーダＤＭＡインターフェイス内の書込要求バッファが書込要求（ｗｒ＿ｒｅｑ）をＰ＿ＡＲＢへ送信して、そこから書込確認（ｗｒ＿ａｃｋ）を逆に受け取る。デコーダＤＭＡインターフェイスは、読取と書込の両方のタイプの要求（ｒｅｑ）をＰ＿ＡＲＢへ送り、認可（ａｃｋ）を逆に受け取る。任意の便利な要求／確認プロトコルを使用できるし、信号領域内の種々な装置のペアの間で異なるプロトコルを使用できる。
【００４１】
信号領域アービタＰ＿ＥＲＢは、調整アルゴリズムに関して非常にフレキシブルであるが、その理由は異なる優先順位を有するように構成できる複数の状態機械を含むからである。上述のように最高の優先順位は、システム領域のＣＰＵからの要求へ割当てられる。各状態機械は、固定の優先順位選択方式を実施するように構成されている。この方式はそれぞれの状態機械が特定の順序で状態を通過し、各状態内で最高の優先順位の要求を有する処理は、各処理へ充分な帯域幅が確実に割当てられるようにセットされる。
【００４２】
図４を調べると、デコーダＩＣのアーキテクチャが、コーデックへの一体化の結果として変更されていないのが分る。しかしながら、デコーダ処理により発生される要求は、図２のようにオンチップ・インターフェイス内のアービタによるのではなく、今やＭＭＩ内に位置するアービタ（Ｐ＿ＡＲＢ）により処理される。
【００４３】
エンコーダＩＣについて、コア・アーキテクチャ（コントローラＣＰＵおよびプロセッサ）は実質上変更なしであるが、要求調整に基くメモリ・アクセス方式を使用するシステムへこのＩＣを組込めるように、ＤＭＡインターフェイスのアーキテクチャの変更が要求される。より詳しくは、エンコーダ・モジュールにより関連データが要求されるときに先立って、処理アービタＰ＿ＡＲＢへ読取要求を発生し、発送できるようにされた先行要求発生器ＡＲＧが、エンコーダＤＭＡに備えられ、これにより要求されたデータをＳＤＲＡＭから読み出して、内部バッファＢＵＦへ記憶し、またエンコーダＤＭＡインターフェイスに供給できるようにする。
【００４４】
先行要求発生器が先行要求を発生できるために、異なるデコーダ処理が読取要求を発生する時間に関する情報と、データが読み取られるＳＤＲＡＭ内のアドレスに関する情報を利用可能になっていなければならない。マクロブロック処理動作を開始する以前に、エンコーダ・コア・コントローラが上述の構成表（表１の中に与えられた例）をＡＲＧへダウンロードし、これによりＡＲＧが、異なるエンコーダ・コア処理による読取要求のタイミングに関して通知される。この構成表はプログラム可能であって、処理ごとの要求の数についてのデータ、要求ごとにＳＤＲＡＭから読み取られるデータのバーストの数、および各要求についての開始サイクル番号を含むが、表１に示す通りである。
【００４５】
しかしながら異なる読取要求に関連するアドレス・データが、利用可能になる時間はさまざまである。あるエンコーダ読取要求についてのアドレス・データは、非常に遅く利用可能になるので、これらの要求が実質的に予言不可能になる。しかしながら、異なるマクロブロック・プロセッサ動作により発生する読取要求は、予言可能である。
【００４６】
図３ｂ）は、例えば表１に与えられた例のマクロブロック処理に関する異なるタイプのエンコーダ読取要求を予言できる時間を図示する。マクロブロックＭＢＰｋ４および同５のＭＢＰ候補に関する読取要求（フェッチ）に必要なアドレス・データは、先行するマクロブロックＭＢＰｋ−１が完了済みになった時にのみ利用可能であり、これはＭＢＰ＿ｃａｎｄ４とＭＢＰ＿ｃａｎｄ５のフェッチ要求がなされる時刻に先立つ３平均距離（３＿ＭＡＤ）時間だけ先行して起こることが理解される（１ＭＡＤタイムは、エンコーダ・システムクロックの１８サイクルに等しい）。ＭＢＰ候補１、２、３の取り込みに関連するインターバルは、それぞれ３、４、５＿ＭＡＤタイムであり、ＭＢＰ＿ｗｉｎｃｏｌ、ＡＥＳ／ＶＥＳ＿ｏｕｔおよびＶＦＥ＿ｏｕｔに関連するインターバルは、それぞれ５、９、９および９ＭＡＤ時間である。ところで全てのエンコーダ処理読取要求が予測可能であるわけではない。
【００４７】
本発明のこの実施例において、コア・コントローラは、Ｆｒａｍｅｒｄｙ、ＭＢＰｓｔａｒｔおよびＭｅｍｓｔａｒｔを含む多数の同期信号を発生する。Ｆｒａｍｅｒｄｙ信号は同期パルスであり、エンコーダ内のＡＲＧとモジュールの両方へ伝送されて、一つの画像信号のフレームの処理の開始を信号で知らせる。ＭＢＰｓｔａｒｔ信号は同期信号であり、エンコーダＩＣ内のＡＲＧとマクロブロック処理モジュールの両方へ送信されて、フレーム内のマクロブロックの処理の開始を信号で知らせる。Ｍｅｍｓｔａｒｔ信号は同期パルスであって、ＭＢＰｓｔａｒｔパルスに３＿ＭＡＤ時間先行して起こり、ＡＲＧへ送信されて、これによりＡＲＧが先行要求を発生する。ＡＲＧは、関連する処理により対応する読取要求がなされるのと同一の相対タイミングで先行要求を生成するが、しかしそれらの処理が要求する時刻よりも３＿ＭＡＤ時間だけ先行する。信号領域アービタＰ＿ＡＲＢにより実施される調整方式は、関連の処理により要求される以前にデータが読まれて内部バッファ内に配置されることを確実に保証するのにこの先行が充分なようにされている。
【００４８】
この実施例で、エンコーダＩＣコア・コントローラからダウンロードされた構成テーブルに基く先行アクセス要求をＡＲＧが発生するが、それはコア・コントローラが、タイム・スロット・アクセスを使用する環境のために発生するものと同一である。しかしながら本発明は、この場合に限定されない。この参照ルック・アップ・テーブルはＡＲＧへ送信されて、先行アクセス要求を発生するための基礎として使用されるが、種々なものであり得る。例えばある先行アクセス要求と、同一処理のための対応する要求の発行との間のインターバルは、異なる処理について種々なものであり得るが、これらさまざまなアクセスのためにアドレス・データが利用可能になる期間についての相違を考慮に入れる。そのうえ、アドレス・データは遥かに先行して利用可能になるので、ルック・アップ・テーブルのゼロ・サイクルにおいてさえも、ＡＲＧは先行アクセス要求を発行できる。
【００４９】
エンコーダ・コア・コントローラは、またＡＲＧおよびエンコーダ・モジュールに、種々な要求のための論理アドレス・データを供給する。この論理アドレス・データは、イメージ内のマクロ・ブロック（またはブロック）の位置を指示する。この論理アドレス・データは、ＡＲＧ内部の変換回路により物理アドレスへ変換され、この変換回路は、同様にＡＲＧ内部にあるレジスタに記憶されたパラメータに基く物理アドレス・データを発生するための計算を遂行する。ＡＲＧにより発生される物理アドレス・データは、開始アドレス、アクセス・タイプ、読み取るべきメモリ内のデータのバーストの数を指示する（読み取るべきアドレスが、ＳＤＲＡＭ内で連続的でなければｘ座標およびｙ座標により表現され、ピクセルの行に関してＳＤＲＡＭが組織されているときにマクロ・ブロックを処理する場合がその例である）。ＡＲＧは、論理アドレスと処理タイプから必要な物理アドレスを発生できる。処理タイプは、コア・コントローラから受信される論理アドレス信号のタイミングのおかげにより、内在的に知られる。構成テーブル（例えば表１）に含まれる情報は、読取るべきバーストの数に関して、データを演繹するために使用される。
【００５０】
上記の説明は、エンコーダとデコーダの両方のＤＭＡインターフェイスがＳＤＲＡＭ内の二つのバーストにアクセスするために、単一の要求と単一の関連アドレスを発生するものと仮定している（これら二つのバーストは、一般にデータの連続的なバーストに対応する）。しかしながら、実際には、異なるエンコーダおよびデコーダの処理に対して、ＳＤＲＡＭ内のデータを関連させるのに使用するメモリのマッピングによっては、これが不可能な場合がある。例えばデコーダ・データに関するメモリ・マッピングでは、単一の要求を通じてアクセスされる一対のバーストがＳＤＲＡＭの同一行であるが、二つの異なったバンク内にある場合である。そのような場合要求ごとに一つのアドレスで、これら二つのバーストをＳＤＲＡＭ内に読み書きさせるのに充分である。しかしながらこのエンコーダ・データに関するメモリ・マッピングは、異なったバンク内に記憶された二つの連続バーストについて同一行のアドレスの使用を許容しないであろう。
【００５１】
上記の問題は、下記の複数の方法で解決される。
・  ＳＤＲＡＭ内のエンコーダ・データのメモリ・マッピングは変更できる（しかしながらエンコーダ処理のためにメモリ・マッピングが最適化済みである場合は、これは望ましくない）。
・  ＳＤＲＡＭへ送られるアドレス内にオフセットを含ませることができる。その場合第１アドレスは第１バンク内に配置されたデータの位置を決定し、一方第２バンク内に配置されたデータのアドレスを指示するために、第１アドレスへオフセットが追加される。
・  二つの関連アドレスを有する単一の要求により一対の要求を表現するために、二つの連続するエンコーダ要求とそのそれぞれのアドレスの間に結合を作ることができる。そのような解決法は、処理アービタ内の主状態機械により実施される調整方式の適応を必要とし、エンコーダ処理に割当てられた各状態を、バースト要求ごとに一つずつ、二つの連続した状態へ置換えなければならない。
【００５２】
エンコーダ書込処理のために、所定のタイム・スロットで処理により発生された各書込要求が、エンコーダＤＭＡインターフェイス内の書込要求バッファへ供給され、関連データがエンコーダＤＭＡインターフェイス内のデータ・バッファＢＵＦへロードされる。この書込要求から生まれる処理により、更なる動作は何も要求されない。それからエンコーダＤＭＡインターフェイスは、Ｐ＿ＡＲＢへ書込要求を発送する。書込処理がＰ＿ＡＲＢにより実施される調整を勝ち得ると、確認信号（ｗｒ−ａｃｋ）がエンコーダＤＭＡインターフェイスへ送られ、データ・バッファ内にあるデータが、ＭＭＩインターフェイスを介してＳＤＲＡＭメモリへ転送される。
【００５３】
上述のようにＥＲＧにより発生された先行要求は、データをＳＤＲＡＭ内に読み込ませ、エンコーダＤＭＡインターフェイス内の中間バッファへロードさせる。典型的に中間バッファは複数のＦＩＦＯとして組織されたＳＲＡＭであり、プロセスごとにその一つは読取ＦＩＦＯであり、もう一つは書込ＦＩＦＯである。ＡＲＧが処理アービタへ先行要求を送る（または書込要求バッファが書込要求を送る）とき、関連処理および関連アクセス・タイプに対応するＦＩＦＯへ信号が送られて、データ受信の準備完了の信号を得る。表１に示したタイミングにより、エンコーダ処理が読取要求を中間バッファへ送る時刻が来ると、エンコーダがタイム・スロット・システム内に実施済みであれば、使用されてきたメモリ・インターフェイスへ適当なアドレスを使用して、送る。このアドレスは、エンコーダＤＭＡインターフェイス内で使用される中間バッファのために、適当なものではない。したがって、このバッファは、古いエンコーダＩＣインターフェイスのアドレスと、問題の処理について中間バッファ内で使用される現在のアドレスとの間を、変換するアドレス・デコーダを含む。必要とされるアドレス変換は、要求タイミングから関連の処理が知られていれば簡単である。それから適当なＦＩＦＯを空にできる。
【００５４】
エンコーダＢＭＡインターフェイス内の中間読み書きデータ・バッファのＦＩＦＯは、データのオーバーフローが決して起こらないように、大きさを決められている。先行要求が発生される時刻、および調整方式の設計によりデータのオーバーフローが何も起こらないようにすることができる。
【００５５】
さて図５と図６を参照して、Ｐ＿ＡＲＢによる調整プログラムを説明する。図５に見えるように、処理アービタは階層に配置された複数の状態機械を含む。各状態機械について一連の状態が定義され、各状態について単一の要求が最高の優先順位を有するものと定義される。主状態機械の一定の状態は「空き状態」と定義されるが、その理由はこの状態機械が「空き状態」にあるとき、最高の優先順位と定義されるタイプの要求が何もないからである。そのような場合状態機械から出力に勝利した要求が何も示されない。異なる要求がそれぞれの状態機械内で競合して、階層内でより低い状態内の勝利した要求がそのとき階層内で、最高の次の状態機械における諸要求と競合する。
【００５６】
一層詳しくは、処理アービタは、第１優先順位状態機械（図５で「主状態機械と指示」される）と、主状態機械からの勝利した要求と異なる他の要求の間で固定した優先順位選択を実施する装置を含む。図５から理解されるように、処理アービタ内の調整に勝利する要求は受入れられることを保証されていない。それは次に、ＳＤＲＡＭインターフェイス内に実施される調整方式内で、システムＣＰＵから来る要求と競合しなければならない。ＳＤＲＡＭインターフェイス内に実施される調整方式は、システムＣＰＵの要求へ最高の優先順位を割当てる。
【００５７】
初期シミュレーションにより、信号領域処理アービタＰ＿ＡＲＢを含む状態機械に関して開発されるべき一定の規則を使用可能になる。特に、第１優先順位状態機械から（例えばＶＥＳ＿ｏｕｔ、ＡＥＳ＿ｏｕｔのような）全ての非周期的で時間に制約されない処理を除去するのが有利であると決定される。これは、周期的処理の帯域幅のより良い共有と、第１優先順位状態機械内の空き状態の数の増加を導く。それからこの空き状態は、より低い優先順位が状態機械内で競合する勝利した要求により使用されるために利用可能である。時間に制約された一つの処理（ＭＢＰ＿Ｗｉｎｃｏｌｏｒ）を、第１優先順位状態機械から除去することも決定される。第１優先順位状態機械内でＭＢＰ＿Ｗｉｎｃｏｌｏｒが競合される時に、この要求タイプによるタイム・シェアリングが、充分に効率的でなかったことがシミュレーションにより示された。この要求タイプが第２優先順位状態機械への入力として使用され、第１優先順位状態機械内で空き領域が使用された時によりよい結果が得られた。
【００５８】
こうして主状態機械は、最高優先順位および周期的エンコーダとデコーダの処理、および時間効率性を制御しなければならない大多数の処理を取扱う。この実施例において主状態機械により取扱われる要求タイプは、マクロブロック処理（すなわちＭＢＰ＿ｃｕｒｒｅｎｔ、ＭＢＰ＿Ｃａｎｄ１−５、ＭＢＰ＿ＷＲ＿ＢＫ）、エンコーダ・ビデオ・フロント・エンド処理、およびデコーダ内の下記の周期的処理を含む：ＤＩＳＰＬＡＹ、ＯＳＤ、ＰＩＰ、ＶＦＷ、ＶＦＲ、ＡＦＷ０、ＡＦＷ１、ＡＦＲおよびＡＷＲＢＷ。
【００５９】
図６ａ）は、図５の主状態機械により、繰返し探査された５４個の状態のシーケンスを示す。状態のフルセットを通過するために主状態機械に必要な時間は、メモリ周波数（この例では１３３ＭＨｚ）によれば、約３ＭＡＤ時間である。１０８ＭＨｚにおいては、主状態機械の約３ラウンド（サイクル）で、一つのマクロブロックを処理することを達成しなければならず、ピクセルの画像の一行を処理するために約９サイクルが必要である。図６ａ）に星をつけた状態は、１セットの要求の状態が、図６ｂ）に図示した関連の状態機械により定義されるシーケンスによる最高優先順位を周期的に有する状態に対応する。言い換えれば、３つの連結された状態機械を使用する図５の主状態機械が実施されている。
【００６０】
図５の主状態機械により実施される状態のシーケンスを設計するときは、下記の考慮点に留意する。
・  状態機械は周期的（デコーダ）処理のためにサイクル的でなければならない。
・  エンコーダ・データは時間内の特定の時刻にエンコーダ処理をできなければならない。
・  異なるエンコーダとデコーダの処理により要求される帯域幅が保証されなければならない。
【００６１】
より詳しくは、所与の処理にいくつの状態を割当てるかを決定するときに、（下記の表３を参照して）下記の計算が遂行される。
１．  主処理について、全ての処理に要求される合計に対するこの処理により要求される帯域幅の比率が計算され（表３のコラム４を参照）、タイム・スロットの８１％がエンコーダ処理に割当てられるが、タイム・スロットの１８％のみがデコーダ処理に割当てられることが示される。
２．  ＭＢＰ候補のエンコーダ取り出しはタイム・スロットの約半分を取るので、状態の半分（ここでは２７）が候補の取り出しに割当てられる。
３．  他の処理に割当てられるべき状態の理論的な数は、変換比率５３．３９％←→２７状態により、帯域幅比率から与えられる（表３の第５コラムを参照）。
４．  各処理へ実際に割当てられる主状態機械の数は、エンコーダ処理により要求されるマクロブロックごとのタイム・スロットの数、およびデコーダ処理のための帯域幅が確実に達成されるために、丸め（ｒｏｕｎｄｉｎｇ）により得られる。
【表３】
2004517413.tif 000005
【００６２】
所与の状態で最高の優先順位を割当てる要求の選択は、種々なデコーダ処理の帯域幅要件の達成に影響する。例えば、ＤＩＳＰＬＡＹ処理またはデコーダ・ビデオ・フロントエンド処理については、主機械サイクルを通じて定期的に分配される状態において、これらの要求タイプが最高の優先順位を与えられる。これにより周期的アクセスと使用許可バッファ・サイズが減少する。異なるエンコーダ処理に必要とされるデータは、これらの処理に割当てられる主機械状態の数により保証される。例えば、主機械状態の半分がＭＢＰ候補取り出しヘ割当てられるので、いつでも要求を遂行でき、要求された候補データが主状態機械サイクルの終りに保証される。
【００６３】
前記の初期シミュレーションはまた、より低い帯域幅を必要とする処理のために単一状態機械、すなわち単一の処理タイプからの要求が考慮される主状態機械を使用するのが好ましいことを示し、また所与の時刻にそれらが発生されれば、自動的に「勝利する」ことを示す。これらの単一状態機械の「勝利した」処理は時間の諸制約により１つの階層へ割当てられる。これは、第１優先状態機械の空き状態の一層効率的な使用を行なう。例えば図５に図示するように、ＭＢＰ＿Ｗｉｎｃｏｌｏｒ、ＶＥＳ＿ｉｎ、ＡＥＳ＿ｉｎ、ＶＥＳ＿ｏｕｔ、ＡＥＳ＿ｏｕｔ、ＭＵＸｃｏｍ＿ｏｕｔ、およびエンコーダからのＭＵＸｃｏｎ＿ｉｎ要求、デコーダからのＭＣ要求とＩＮＴＥＲＰ要求を処理するために、そのような単一状態機械が使用される。ついでに言えば、ＭＣ処理とＩＮＴＥＲＰ処理は、同一のパイプライン・ステージ上にないので、異なった優先順位を与えられる。その上、ＶＥＳ＿ｏｕｔ、ＡＥＳ＿ｏｕｔ、ＭＵＸｃｏｍ＿ｏｕｔは、ＶＥＳ＿ｉｎ、ＡＥＳ＿ｉｎ、ＭＵＸｃｏｍ＿ｉｎよりも低い優先順位を割当てられるが、それは、特定の時刻にエンコーダ内のマルチプレックス機能により要求される読取データに後者の３つの処理が対応するからである。
【００６４】
本発明により採用された解決方法の有用性を評価するために、図４に図示するコーデック・アーキテクチャと、３２ビット語のバーストでデータを転送する１３３ＭＨｚで動作するＳＤＲＡＭを使用して、シミュレーションが遂行された。システムＣＰＵがその５０サイクル（１３３ＭＨｚ）ごとにＳＤＲＡＭを１回アクセスすることも前提とされた。各システムＣＰＵアクセスは４メモリ・ワードのバーストを含む。これは、４２．５６Ｍｂｙｔｅｓ／ｓのＣＰＵ帯域幅を供給する。（ついでに言うと、これは、この例でサポートされるＣＰＵ帯域幅の限界を表す。４０サイクルごとに一度のＣＰＵアクセスを含むテストが示したのは、ビデオ・フロントエンド・バッファ内に収容されるべきデータの量が、１００サイクルごとに６３２ビット語まで増加して、過度である考えられることである）。
【００６５】
図４において、Ｘで輪に囲った諸信号を監視するために統計的モジュールが接続された。この統計的モジュールは、読み書き要求の発行と対応の確認信号を受信する時の間に介在する時間経過（待ち時間）を監視した。それはまた、（メモリ・ワードの関して）エンコーダＤＭＡインターフェイス内に必要なデータ・バッファのサイズを推定する。この推定は下記を考慮に入れた。
・  読取処理について：ＳＤＲＡＭインターフェイスからエンコーダＤＭＡインターフェイスへの着信バースト、およびエンコーダＤＭＡインターフェイスと関連エンコーダ読取処理の間の発信バースト。
・  書込処理について：関連エンコーダ書込処理からエンコーダＤＭＡインターフェイスへの着信バースト、およびエンコーダＤＭＡインターフェイスからＳＤＲＡＭインターフェイスへの出力バースト。
【００６６】
各処理のために下記の２つのファイルが発生される。
１．  先行要求とその確認の間のマクロブロックごとに測定される待ち時間、およびマクロブロックごとに計算される最大サイズを含む第１ファイル。
２．  各マクロブロックのバッファの最大サイズ、各マクロブロック処理の終了におけるバッファを含む第２ファイル。
これら２つのファイルの内容をプロットすることにより、下記バッファのファイリングと空にする速度に関してグラフィックの指示を与えることができる。下記の表４は、エンコーダＤＭＡバッファに要求される最大サイズ、および異なる処理によりなされるダブル・バースト要求の数に関するこのシミュレーションの結果を示す。
【表４】
2004517413.tif 000006
【００６７】
デコーダ内のデータ・バッファの容量は小さい（１つまたは２つのバーストの幅）が、それはデコーダがタイム・スロットの振る舞いに基かないで、必要なときだけ要求するからである。
【００６８】
このシミュレーションは、下記の図５に示す帯域幅をエンコーダ処理とデコーダ処理が要求することを示した。本発明の好ましい実施例による上述の調整アルゴリズムは、それぞれの処理にこの帯域幅を保証した。
【表５】
2004517413.tif 000007
【００６９】
上記の説明は、ディジタル・ビデオ（カムコーダーで使用されるＤＶ）、汎用ストリーム管理（ＶＳＭ）周辺機器、第２ＣＰＵなどのような、デコーダにインプリメントされる幾つかの追加の処理のメモリ・アクセス要件を無視している。しかしながら、このシミュレーションの結果は、要求調整を含むシステムへタイム・スロット・メモリ・アクセスヘされたモジュールを組込むことを本発明が可能にすることを示す。（そのような追加のデコーダ処理が含まれる場合のように）、システム全体のグローバル帯域幅が重要である場合も、割り込み可能なバースト（それはエンコーダ処理の帯域幅要件の削減を可能にする）をエンコーダ・コアへ適合させることによって、やはりこれらの帯域幅の要件を本発明が保証できる。この適応は、異なるエンコーダ要求に関連する物理アドレス・パラメータ（ファースト・ワードのアドレス、取り込むべきワード数など）の変更を必要とする。
【００７０】
本書に上記した図面とその説明は、本発明を限定するよりもむしろ説明する。前記の特許請求の範囲内に入る多くの改変があることは明らかである。特に、異なったメモリ・アクセス方式のために設計されたエンコーダＩＣとデコーダＩＣを含むコーデックに関して本発明を説明してきたが、共通リソースへアクセスするタイム・スロット方式と要求調整方式のために設計されたシステム集積モジュールに対して、一般に本発明を適用できる。
【００７１】
特許請求の範囲に記されたいずれの言及も、特許請求の範囲を限定するものと解釈されてはならない。
【図面の簡単な説明】
本発明および本発明を有利に実施するために使用し得る追加的な特徴は、下記の図面を参照することによって、明らかに解明される。
【図１】
タイム・スロット・メモリ・アクセス方式により処理装置が共通メモリへのアクセスを共有する基本的な構成要素を図示するブロック図である。
【図２】
処理装置による共通メモリへのアクセスの要求が調整方式により管理されるシステムの基本的な構成要素を図示するブロック図である。
【図３】
タイム・スロット方式でメモリ・アクセスを処理するように設計された集積回路に統合されたＭＰＥＧエンコーダ内の種々な処理によりなされるメモリ・アクセス要求のタイミングを示す図であって、図３ａは、それぞれの要求が開始するサイクル番号を示し、図３ｂは、各要求に関するアドレス・データが最初に使用可能になる時刻を示す。
【図４】
タイム・スロット方式でメモリ・アクセスを処理するように設計されたエンコーダＩＣと、要求調整を介してメモリ・アクセスを処理するように設計されたデコーダを組込んだ、ＭＰＥＧコーデックの主要構成要素を図示するブロック図である。
【図５】
図４のコーデックに含まれる処理アービタの一般的構造を図示するブロック図である。
【図６】
図５の処理アービタ内の主状態機械により探査される状態のシーケンスを図示する状態図であって、図６ａは、主状態機械により周期的に探査される状態のシーケンスを示し、図６ｂは、図６ａにおいて星印をつけた状態で示す処理群に関連する２つの状態機械により探査される状態のシーケンスを示す。
【符号の説明】
ＰＲＯＣ  プロセッサ
ＭＥＭ  メモリ
ＩＮＴ  インターフェイス
ＣＯＮＴ  コントローラ
ＰＲＯＣ’  処理モジュール
ＭＩＦ  メモリインターフェイス
ＢＵＦ’  バッファ
ＢＣＵ  バス制御ユニット
ＰＩ＿ｂｕｓ  周辺機器インターフェイス・バス
ＭＭＩ  主メモリインターフェイス
ＤＭＡ  ダイレクト・メモリ・アクセス
ＭＭＩ  信号領域インターフェイス
Ｐ＿ＥＲＢ  信号領域アービタ
Ｐ＿ＡＲＢ  アービタ
ＭＢＰＫ  マクロブロック
【図３】
2004517413.tif 000008
【図４】
2004517413.tif 000009
【図５】
2004517413.tif 000010
【国際公開パンフレット】
2004517413.tif 000011
2004517413.tif 000012
2004517413.tif 000013
2004517413.tif 000014
2004517413.tif 000015
2004517413.tif 000016
2004517413.tif 000017
2004517413.tif 000018
2004517413.tif 000019
2004517413.tif 000020
2004517413.tif 000021
2004517413.tif 000022
2004517413.tif 000023
2004517413.tif 000024
2004517413.tif 000025
2004517413.tif 000026
2004517413.tif 000027
2004517413.tif 000028
2004517413.tif 000029
2004517413.tif 000030
2004517413.tif 000031
2004517413.tif 000032
2004517413.tif 000033
2004517413.tif 000034
2004517413.tif 000035
2004517413.tif 000036
2004517413.tif 000037
2004517413.tif 000038
2004517413.tif 000039
2004517413.tif 000040
2004517413.tif 000041
2004517413.tif 000042
【国際調査報告】
2004517413.tif 000043
2004517413.tif 000044