(57)【特許請求の範囲】
【請求項１】
メモリコントローラ（３０４）を有するコンピュータ装置において、複数のプロセッサ（３０６−３１８）の中でデータメモリ（３０２、８０２）に対するアクセスを共有する方法であって、
前記複数のプロセッサは、
信号プロセッサ（３０６）と、
メインメモリ（３２０）に直接アクセスするためのＤＭＡプロセッサ（３１０）を含む、複数のコプロセッサ（３０８−３１８）と
を含み、
複数のプロセッサからデータメモリにアクセスするための、プロセッサ当り１つのアクティブ信号を前記メモリコントローラが受信するステップであって、Ｎビット幅のデータワードをデータメモリへ転送し、またはデータメモリから転送するために、該データメモリは選択されたプロセッサからアクセスできるステップと、
前記アクティブ信号を前記データメモリに対して主張する複数のプロセッサの中でメモリマスタとして一つのプロセッサを前記メモリコントローラが選択するステップであって、
ＤＭＡプロセッサがアクティブである場合には、ＤＭＡプロセッサをメモリマスタとして選択し、
ＤＭＡプロセッサがアクティブでない場合には、複数のコプロセッサから前記コプロセッサのうちでアクティブなコプロセッサをメモリマスタとして選択し、
ＤＭＡプロセッサおよび他のコプロセッサのいずれもがアクティブでない場合には、信号プロセッサをメモリマスタとして選択すること
をさらに含むステップと、
選択されたプロセッサとデータメモリとの間でＮビット幅のデータワードを前記メモリコントローラが転送するステップと、
を含み、
前記転送するステップは、
（ａ）クロックサイクル（０−７）により定められたタイムスロット（６０２−６１６）内で、Ｎビット幅のデータワードを前記データメモリからＮビット幅のレジスタ（８０４、８０８、８１２、８１６、８２０）に前記メモリコントローラがロードするステップと、
（ｂ）複数のクロックサイクルにわたって全てのＮビットがレジスタから読出されるまで、クロックサイクル中にＮビット幅のデータワードのサブセットをマルチプレクサ（８０６、８１０、８１４、８１８、８２２）を介して、前記選択されたプロセッサが繰り返し読出すステップと、
をさらに含むことを特徴とする方法。
【請求項２】
前記転送するステップは、
複数のクロックサイクルにわたって全てのＮビットがレジスタにロードされるまで、クロックサイクル中にＮビット幅のデータワードのサブセットを選択されたプロセッサからＮビット幅のレジスタ（８０４、８０８、８１２、８１６、８２０）に転送するステップと、
該レジスタ（８０４、８０８、８１２、８１６、８２０）内のＮビット幅のデータワードを前記タイムスロットで前記データメモリに書込むステップと、
をさらに含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記コプロセッサ（３０８−３１８）は、画像プロセッサ（３１２）と、ビットストリームプロセッサ（３１８）と、量子化および離散コサイン変換を行うための量子化プロセッサ（３１６）と、浮動小数点プロセッサ（３０８）とを含むことを特徴とする請求項１または２のいずれかに記載の方法。
【請求項４】
前記コプロセッサ（３０３−３１８）は、前記データメモリに対する読出しアクセスを画像プロセッサ（３１２）と共有する動き補償プロセッサ（３１４）を更に含むことを特徴とする請求項３に記載の方法。
【請求項５】
Ｎは１２８であることを特徴とする請求項１乃至４のいずれかに記載の方法。
【請求項６】
タイムスロットは状態マシンカウンタにより生成されることを特徴とする請求項１乃至５のいずれかに記載の方法。
【請求項７】
前記状態マシンカウンタはＭ個の状態のサイクルを、０からＭ−１まで、繰り返し生成し、各タイムスロットに対して１つの状態があることを特徴とする請求項６に記載の方法。
【請求項８】
Ｍは８であることを特徴とする請求項７に記載の方法。
【請求項９】
８つの状態がメモリマスタ選択パターン（６１８）を定め、
状態０が、ＤＭＡプロセッサに割り当てられ、
状態１が、データメモリから読出すために画像プロセッサに割り当てられ、
状態２が、データメモリから読出すためにビットストリームプロセッサに割り当てられ、
状態３が、データメモリに書込むためにビットストリームプロセッサに割り当てられ、
状態４が、データをデータメモリへ転送し、かつデータメモリから転送するためにＤＭＡプロセッサに割り当てられ、かつデータメモリに書込むために量子化プロセッサに割り当てられ、ＤＭＡプロセッサは量子化プロセッサに先んじ、
状態５が、データメモリから読出すために画像プロセッサに割り当てられ、データメモリに書込むために量子化プロセッサに割り当てられ、画像プロセッサは量子化プロセッサに先んじ、
状態６が、データメモリから読出すために離散コサイン変換を行うための量子化プロセッサに割り当てられ、
状態７が、データメモリから読出すために量子化を行うための量子化プロセッサに割り当てられる、
ことを特徴とする請求項８に記載の方法。
【請求項１０】
８つの状態がメモリマスタ選択パターン（６２０）を定め、
状態０が、データメモリから読出すために画像プロセッサに割り当てられ、
状態１が、データをデータメモリへ転送し、かつデータメモリから転送するためにＤＭＡプロセッサに割り当てられ、
状態２が、データメモリから読出すためにビットストリームプロセッサに割り当てられ、
状態３が、データメモリに書込むためにビットストリームプロセッサに割り当てられ、
状態４が、データメモリから読出すために画像プロセッサに割り当てられ、かつデータメモリに書込むために量子化プロセッサに割り当てられ、画像プロセッサは量子化プロセッサに先んじ、
状態５が、データをデータメモリへ転送し、かつデータメモリから転送するためにＤＭＡプロセッサに割り当てられ、データメモリに書込むために量子化プロセッサに割り当てられ、ＤＭＡプロセッサは量子化プロセッサに先んじ、
状態６が、データメモリから読出すために離散コサイン変換を行うための量子化プロセッサに割り当てられ、
状態７が、データメモリから読出すために量子化を行うための量子化プロセッサに割り当てられる、
ことを特徴とする請求項８に記載の方法。
【請求項１１】
８つの状態がメモリマスタ選択パターン（６２２）を定め、
状態０が、データメモリから読出すために画像プロセッサに割り当てられ、
状態１が、データをデータメモリから読出すためにビットストリームプロセッサに割り当てられ、
状態２が、データをデータメモリへ転送するため、およびデータメモリからデータを転送するためにＤＭＡプロセッサに割り当てられ、
状態３が、データメモリに書込むためにビットストリームプロセッサに割り当てられ、
状態４が、データメモリから読出すために画像プロセッサに割り当てられ、かつデータメモリに書込むために量子化プロセッサに割り当てられ、画像プロセッサは量子化プロセッサに先んじ、
状態５が、データメモリから読出すために離散コサイン変換を行うための量子化プロセッサに割り当てられ、
状態６が、データをデータメモリへ転送し、かつデータメモリから転送するためにＤＭＡプロセッサに割り当てられ、データメモリに書込むために量子化プロセッサに割り当てられ、ＤＭＡプロセッサは量子化プロセッサに先んじ、
状態７が、データメモリから読出すために量子化を行うための量子化プロセッサに割り当てられる、
ことを特徴とする請求項８に記載の方法。
【請求項１２】
複数のプロセッサ（３０６−３１８）の間で共有されるデータメモリ（３０２、８０２）を有するコンピュータ装置であって、
前記コンピュータ装置は、
クロックサイクル（０−７）により定められたタイムスロット（６０２−６１６）中にアクセスできるデータメモリ（３０２）と、
このデータメモリに結合される複数のプロセッサであって、一つのプロセッサはＮビットデータワードを伝送するために該データメモリにアクセスを要求するときにアクティブ信号を提供する複数のプロセッサと、
前記複数のプロセッサからプロセッサごとに一つのアクティブ信号を受信するメモリコントローラ（３０４）と、
を備え、
前記複数のプロセッサは、
（ａ）前記メモリコントローラとメインメモリ（３２０）との間に結合されるコプロセッサであるＤＭＡプロセッサ（３１０）であって、アクティブ状態中にデータを前記メインメモリと前記データメモリの間で転送し、かつメモリマスタとして選択されるＤＭＡプロセッサと、
（ｂ）前記メモリコントローラに結合される複数のさらなるコプロセッサ（３０８、３１２−３１８）であって、複数のさらなるコプロセッサのうちのアクティブなプロセッサは、ＤＭＡプロセッサがアクティブでない場合に前記データメモリにアクセスするメモリマスタとして選択される複数のさらなるコプロセッサと、
（ｃ）前記メモリコントローラに結合されるとともに、他の全てのプロセッサがアクティブでない場合に前記データメモリにアクセスするメモリマスタとして選択される信号プロセッサ（３０６）と、
を備え、
前記メモリコントローラ（３０４）は、
前記複数のプロセッサと前記データメモリの間をインタフェースするために前記複数のプロセッサと前記データメモリの間に結合されるとともに、クロックサイクルにより定められたタイムスロット中に仲裁パターン（６１８、６２０、６２２）に従ってデータメモリを排他的にアクセスするプロセッサを複数のプロセッサのうちから選択し、かつ指定されたＮビットデータワードをデータメモリと選択されたプロセッサとの間で転送し、
インタフェース回路であって、
（ａ）それぞれのプロセッサ（３０６−３１８）と前記データメモリとの間を転送するＮビットデータワードをそれぞれが保持する複数のＮビットレジスタ（８０４、８０８、８１２、８１６、８２０）であって、前記データメモリ（３２０）と前記レジスタとの間で、前記タイムスロットでＮビットデータワードをそれぞれが転送する複数のＮビットレジスタと、
（ｂ）前記Ｎビットレジスタの各レジスタにおのおの結合され、Ｎビットデータワード中の全てのデータビットが複数のクロックサイクルにわたって転送されるまで前記レジスタとそれぞれのプロセッサとの間で前記レジスタに保持されているＮビットデータワードのサブセットを前記クロックサイクルで繰り返し転送する複数のマルチプレクサ（８０６、８１０、８１４、８１８、８２２）と、
を有する、各プロセッサに少なくとも１つのレジスタが設けられているインタフェース回路と、
を備えたことを特徴とするコンピュータ装置。
【請求項１３】
前記メモリコントローラは、
複数のプロセッサ（３０６−３１８）とデータメモリとの間のデータ転送をインタフェースするインタフェース回路と、
該インタフェース回路に結合されて前記タイムスロット中にプロセッサの間でのデータメモリへのアクセスを仲裁する制御回路と、
を備えることを特徴とする請求項１２に記載の装置。
【請求項１４】
Ｎは１２８であることを特徴とする請求項１２または１３のいずれかに記載の装置。
【請求項１５】
前記コプロセッサは、画像プロセッサ（３１２）と、ビットストリームプロセッサ（３１８）と、量子化プロセッサ（３１６）と、動き補償プロセッサ（３１４）と、浮動小数点プロセッサ（３０８）とを含むことを特徴とする請求項１２乃至１４のいずれかに記載の装置。
【請求項１６】
前記動き補償プロセッサおよび画像プロセッサは、データメモリに対するアクセスを更に共有することを特徴とする請求項１５に記載の装置。
【請求項１７】
前記メモリコントローラは、状態マシンカウンタを用いてタイムスロットを生成することを特徴とする請求項１２乃至１６のいずれかに記載の装置。
【請求項１８】
前記メモリコントローラは、０からＭ−１までのＭ個の状態で構成されている複数のサイクルを生成し、各タイムスロットに１つの状態が対応し、サイクルごとにＭ個の状態があることを特徴とする請求項１７に記載の装置。
【請求項１９】
Ｍは８であることを特徴とする請求項１８に記載の装置。
【請求項２０】
８つの状態が仲裁パターン（６１８）を定め、
状態０が、ＤＭＡプロセッサに割り当てられ、
状態１が、データメモリから読出すために画像プロセッサに割り当てられ、
状態２が、データメモリから読出すためにビットストリームプロセッサに割り当てられ、
状態３が、データメモリに書込むためにビットストリームプロセッサに割り当てられ、
状態４が、データをデータメモリへ転送し、かつデータメモリから転送するためにＤＭＡプロセッサに割り当てられ、かつデータメモリに書込むために量子化プロセッサに割り当てられ、ＤＭＡプロセッサは量子化プロセッサに先んじ、
状態５が、データメモリから読出すために画像プロセッサに割り当てられ、データメモリに書込むために量子化プロセッサに割り当てられ、画像プロセッサは量子化プロセッサに先んじ、
状態６が、データメモリから読出すために離散コサイン変換を行うための量子化プロセッサに割り当てられ、
状態７が、データメモリから読出すために量子化を行うための量子化プロセッサに割り当てられる、
ことを特徴とする請求項１９に記載の装置。
【請求項２１】
８つの状態が仲裁パターン（６２０）を定め、
状態０が、データメモリから読出すために画像プロセッサに割り当てられ、
状態１が、データをデータメモリへ転送し、かつデータメモリから転送するためにＤＭＡプロセッサに割り当てられ、
状態２が、データメモリから読出すためにビットストリームプロセッサに割り当てられ、
状態３が、データメモリに書込むためにビットストリームプロセッサに割り当てられ、
状態４が、データメモリから読出すために画像プロセッサに割り当てられ、かつデータメモリに書込むために量子化プロセッサに割り当てられ、画像プロセッサは量子化プロセッサに先んじ、
状態５が、データをデータメモリへ転送し、かつデータメモリから転送するためにＤＭＡプロセッサに割り当てられ、データメモリに書込むために量子化プロセッサに割り当てられ、ＤＭＡプロセッサは量子化プロセッサに先んじ、
状態６が、データメモリから読出すために離散コサイン変換を行うための量子化プロセッサに割り当てられ、
状態７が、データメモリから読出すために量子化を行うための量子化プロセッサに割り当てられる、
ことを特徴とする請求項１９に記載の装置。
【請求項２２】
８つの状態が仲裁パターン（６２２）を定め、
状態０が、データメモリから読出すために画像プロセッサに割り当てられ、
状態１が、データをデータメモリから読出すためにビットストリームプロセッサに割り当てられ、
状態２が、データをデータメモリへ転送するため、およびデータメモリからデータを転送するためにＤＭＡプロセッサに割り当てられ、
状態３が、データメモリに書込むためにビットストリームプロセッサに割り当てられ、
状態４が、データメモリから読出すために画像プロセッサに割り当てられ、かつデータメモリに書込むために量子化プロセッサに割り当てられ、画像プロセッサは量子化プロセッサに先んじ、
状態５が、データメモリから読出すために離散コサイン変換を行うための量子化プロセッサに割り当てられ、
状態６が、データをデータメモリへ転送し、かつデータメモリから転送するためにＤＭＡプロセッサに割り当てられ、データメモリに書込むために量子化プロセッサに割り当てられ、ＤＭＡプロセッサは量子化プロセッサに先んじ、
状態７が、データメモリから読出すために量子化を行うための量子化プロセッサに割り当てられる、
ことを特徴とする請求項１９に記載の装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はプロセッサメモリの分野に関するものである。更に詳しく言えば、本発明は多数のプロセッサの間で共有される１つのメモリユニットを有するプロセッサアーキテクチャに関するものである。ここで開示する１つの実施形態では、割り込み型時間多重化共有アクセスが記述される。
【０００２】
【従来の技術】
今日のコンピュータ技術は、種々の特殊化されたタスクを行うために専用メモリユニットを有する補助プロセッサに一般に依存している。とくにメディア処理においては、最新の消費者娯楽アプリケーションは、ビデオ、オーディオ、およびゲームで遊ぶための画像データ、映像および音声の記録、教育ソフトウエア等を処理するためにメディア・プロセッサを利用している。たとえば、それの一般的なメディアプロセッサに加えて、コンピュータは画像データを処理する画像プロセッサ、ＭＰＥＧビデオデータを復号するＭＰＥＧビデオデコーダ、ＭＰＥＧオーディオデータを復号するＭＰＥＧオーディオデコーダなどの特殊化されたプロセッサを含むことができる。それらの特殊化されたプロセッサ（すなわち、ユニット）のおのおのはそれ自身の専用論理およびメモリ資源を通常有する。したがって、各プロセッサはコンピュータにデータメモリと支援論理回路を付加する。
【０００３】
先行技術の図１は、専用メモリユニットを有するプロセッサで構成されたコンピュータ装置の例を示す。このコンピュータ装置は、メインメモリ１０２と、専用画像メモリ１０４と、専用コプロセッサメモリ１０５との３つの別々のメモリユニットを含む。メインメモリ１０２はメインメモリコントローラ１１０を介して信号プロセッサ１０６に対してデータの高速アクセスを行う。専用画像メモリ１０４は画像メモリコントローラ１１４を介して画像プロセッサ１１２に対して画像データの高速アクセスを行う。また、専用コプロセッサメモリ１０５はコプロセッサメモリコントローラ１１８を介して、コプロセッサ１１６により用いられるデータに対して高速アクセスを行う。この装置の構成では、信号プロセッサ１０６はメインメモリ１０２に対して読出し／書込みアクセスを行うが、専用画像メモリ１０４または専用コプロセッサメモリ１０５に対してはアクセスしない。同様に、コプロセッサは専用コプロセッサメモリ１０５に対して読出し／書込みアクセスを行うが、メインメモリ１０２または専用画像メモリ１０４に対してはアクセスしない。同様に、画像プロセッサ１１２は専用画像メモリ１０４に対して読出し／書込みアクセスを行うが、メインメモリ１０２または専用コプロセッサメモリ１０５に対してはアクセスしない。
【０００４】
不幸なことに、各処理ユニットのためのそれらの専用メモリやコントローラによって、プロセッサのコンピュータ負荷の変動と、集積化されるチップの貴重なダイの面積の非効率的な使用とのために資源の重複になる。たとえば、１つの瞬間に、ユーザーはコンピュータ上でムービーを見ることができる。映画の上映に含まれるビデオ処理にはビデオとオーディオの処理のみを伴う。この時間中は画像プロセッサはアイドルのままである。逆に、ユーザーはコンピュータでゲームができる。ゲームをするにはビデオ処理は通常要しない。画像プロセッサおよびオーディオプロセッサをゲームを行うためのデータの処理に含ませることができる。これは、プロセッサがアイドルすなわち動作していない時はそれの専用メモリが常に利用されていないことを意味する。使用されていないメモリはチップ内のダイの面積を通常占めるので、それがアイドル時間中にチップに重荷を負わせるためにそれはコストに直接はねかえる。
【０００５】
更に、あるコンピュータのアプリケーションは、メインメモリまたは他の専用メモリユニットの１つに保存されているデータでプロセッサが動作することを要する。１つの特定のメモリユニットに格納されているデータを、その特定のメモリユニットをアクセスするプロセッサ以外の指定されたプロセッサが処理すべき時は、その指定されたプロセッサがアクセスするメモリユニットへそのデータを常に転送しなければならない。例えば、ある画像処理アプリケーションは、メインメモリまたは専用メモリに保存されているデータを画像プロセッサで処理することを要する。メインメモリまたは専用メモリに格納されているデータを画像プロセッサがアクセスできるようにするために、そのデータは専用画像プロセッサメモリへ転送またはコピーしなければならない。
【０００６】
【発明が解決しようとする課題】
そうすると、必要なものはいくつかのプロセッサの間で共有でき、しかも各プロセッサに対して実時間で対応できる１つのメモリユニットを有する低価格プロセッサアーキテクチャである。
【０００７】
【課題を解決するための手段】
本発明は、コンピュータ装置において複数のプロセッサの間でデータメモリを共有する方法および装置を提供することである。本発明の方法および装置では、データメモリをＮビット帯域幅でアクセスするために複数のプロセッサがデータメモリに結合される。本発明はデータメモリをアクセスするためのアクティブ信号を複数のプロセッサから受ける。データメモリへのアクセスを要求するプロセッサはアクティブ信号を主張する。アクティブ信号を主張するプロセッサのうち、データメモリに対するメモリマスタとしてあるプロセッサが選択される。その後で本発明は、クロックサイクルにより定められるタイムスロット内でＮビット幅のデータを選択されたプロセッサとデータメモリの間で転送する。所与のタイムスロット中にただ１つのプロセッサがデータメモリに対するアクセスを許される。本発明の好適な実施形態では、Ｎビット帯域幅は全てのプロセッサのデータ要求を受け容れるために十分広い。
【０００８】
【発明の実施の形態】
この明細書に組み込まれて明細書の一部を構成している添付図面は本発明の実施形態を示し、説明と一緒に本発明の原理を説明する役割を果たす。
【０００９】
本発明の以下の詳細な説明では、本発明を完全に理解できるようにするために数多くの特定の詳細を説明している。しかし、本発明はそれらの特定の詳細なしに実施できることが当業者には明らかであろう。他の例では、本発明の面を不必要にあいまいにしないように、周知の方法、手順、部品、および回路は説明しなかった。
【００１０】
本発明は割り込み時間多重化共有メモリアクセス装置および方法を説明するものである。それらの装置および方法の例が添付図面に示されている。本発明の装置および方法では、複数のメモリクライアント（すなわち、プロセッサ）がデータメモリ（ＤＭＥＡ）に結合されている。それらのメモリクライアントはＮビットワードを１クロックサイクル（すなわち、タイムスロット）中にデータメモリとの間で転送する。所与のタイムスロット中にはただ１つのプロセッサがデータメモリに対するアクセスを許される。本発明では、全てのプロセッサの挙動が決定論的である、すなわち、データ転送特性およびプロセッサのアクティブ状態が前もって知られている。それらの決定論的特性から、アクセス競争論理が発生されて実現される。好適な実施形態では、プロセッサがデータメモリをタイムスロット当り１２８ビットの帯域幅でデータメモリをアクセスする。
【００１１】
図２はメモリおよびプロセッサアーキテクチャの簡単なブロック図を示す。プロセッサはプログラム可能なプロセッサ２０６またはコプロセッサとして分類できる。プログラム可能なプロセッサ２０６は汎用信号プロセッサとして機能する。このプロセッサは、コプロセッサ−０  ２０８、コプロセッサ−１  ２１０、コプロセッサ−２  ２１２等、コプロセッサ−Ｎ  ２１４まで番号をつけられた複数のコプロセッサにより増大されている。それらのコプロセッサは画像処理、浮動小数点処理、ＤＭＡ転送、動き補償、およびその他多くのものなどの特殊化されたタスクを実行できる。バス２０４がプログラム可能なプロセッサ２０６とコプロセッサをデータメモリに結合する。
【００１２】
図３は、本発明の好適な実施形態による、複数のプロセッサの間で共有されているデータメモリアーキテクチャの例のより詳細なブロック図を示す。データメモリ３０２はメモリコントローラ３０４を介してアクセスされる。メモリコントローラ３０４はデータメモリ３０２とプロセッサとの間のデータ転送をインタフェースする。メモリコントローラ３０４はデータメモリ３０２に対するアクセスをプロセッサの間で仲裁する。データメモリ３０２はスタティックＲＡＭ（ＳＲＡＭ）として実現されることが好ましい。メモリコントローラに結合されて、データメモリ３０２に対するアクセスを共有するプロセッサの例は信号プロセッサ（ＳＰ）３０６と、浮動小数点プロセッサ（ＦＰＵ）３０８と、直接メモリアクセス（ＤＭＡ）プロセッサ３１０と、画像プロセッサ（ＧＰ）３１２と、動き補償ユニット  （ＭＰ）３１４と、量子化および離散コサイン変換プロセッサ（ＱＰ）３１６と、ビットストリームプロセッサ（ＢＰ）３１８とを含む。本発明の好適な実施形態によれば、プロセッサおよびデータメモリ３０２は１つの集積されたチップ（ＩＣ）上に配置されている。本発明ではコプロセッサのことを「プロセッサ」と呼ぶが、ここではそれを周知の用語「ユニット」と同義語であること、およびそれと互換して使用されることが当業者には疑いもなくわかるであろう。
【００１３】
本発明は各種のやり方で実現することもできる。たとえば、プロセッサとデータメモリ３０２の少なくとも一方を異なるＩＣｓ内で結合でき、周辺部品相互接続（ＰＣＩ）バスなどのバスを介して結合される。また、本発明のデータメモリは、ダイナミックＲＡＭ（ＤＲＡＭ）、ＳＤＲＡＭ等などの各種のＲＡＭを用いることにより実現できる。
【００１４】
図３をなお参照して、信号プロセッサ３０６は汎用アプリケーションを実行できる汎用プロセッサである。すなわち、信号プロセッサ３０６は典型的なコンピュータプログラムを実行できるプログラム可能なプロセッサである。本質的には、それは命令を保存するための命令メモリと、命令を解釈するための実行ユニットと、命令に従って論理演算および算術演算を実行するためのデータパスとで構成される。
【００１５】
信号プロセッサ３０６は、画像、ビデオ、オーディオなどの特定の機能、およびその他の機能を実行するいくつかのコプロセッサすなわち機能ユニットによりそれの処理タスクが増大される。コプロセッサは信号プロセッサの処理負荷を軽減し、装置全体の性能を向上する。たとえば、ＤＭＡプロセッサ３１０はデータのブロックをデータメモリ３０２とメインメモリ３２０との間で転送する。それはデータに対してどのような算術演算または論理演算も実行しない。画像プロセッサ３１２は画素マップへの出力基本要素の走査変換と、表示スクリーン上で表示するために画素の移動、コピー、および修正のラスタ走査とを行う。また、浮動小数点プロセッサ３０８は加算、減算、乗算、除算などの浮動小数点算術演算を実行することによって信号プロセッサ３０６を補強する。
【００１６】
ＭＰＥＧビデオデータおよびオーディオデータ処理において信号プロセッサ３０６を支援するために、本発明は量子化および離散コサイン変換プロセッサ（ＱＰ）３１６と、ビットストリームプロセッサ（ＢＰ）３１８と、動き補償プロセッサ（ＭＰ）３１４とを利用する。ＭＰＥＧビデオ処理においては、ＢＰ３１８は画像記号に割り当てられたコードワードまたはビットストリングを復号して、ホフマンコードの復号において画像を復号するために必要とされるビットの数を減少する。これは可変長復号またはエントロピー復号と呼ばれている。
【００１７】
ＱＰ３１６は量子化および離散コサイン変換（ＤＣＴ）を実行する。量子化処理では、ＱＰ３１６はアナログ信号をデジタルフォーマットに変換する。ＤＣＴ処理では、ＱＰ３１６は画素値のブロックを独立係数に変換し、それにより画像信号のブロックを少数の係数に圧縮する。最後に、ＭＰ３１４はビデオセグメントの符号化を連続するフレームにおけるそれらのセグメントの変位に関連して行う。
【００１８】
画像プロセッサ３１２および補償プロセッサ３１４を除く全てのプロセッサはデータメモリ３０２に対する読出し／書込みを行うことができる。画像プロセッサ３１２と補償プロセッサ３１４はデータメモリ３０２から読出すだけである。その代わりに、スクリーンに最終的に表示するためにそれらのコプロセッサはメインメモリ３２０またはフレームバッファなどのメモリユニットに書込む。
【００１９】
図３における各プロセッサは内部バスおよびメモリコントローラ３０４を介してデータメモリ３０２に結合される。メモリコントローラはデータメモリに対するアクセスを制御する。ＤＭＡプロセッサ３１０はメインメモリ３２０にも結合され、メインメモリ３２０を直接アクセスできる。同様に、メインメモリ３１４またはフレームバッファに書込むために、画像プロセッサ３１２および動き補償プロセッサ３１４はそれらのメモリユニットに結合できる。
【００２０】
それらのプロセッサはメモリコントローラを介してデータメモリを共有する。メモリコントローラはデータメモリとメモリクライアント（すなわち、プロセッサまたは機能ユニット）との間のインタフェースを行う。メモリコントローラはプロセッサの間のデータメモリに対するアクセスを仲裁もする。メモリクライアントはメモリコントローラを介してデータメモリに対する読出し要求と書込み要求を行う。メモリコントローラはメモリクライアントからのそれらの要求を適切な制御信号に変換し、データをメモリクライアントとデータメモリの間で送る。クライアントプロセッサがそれの要求をメモリコントローラへ送る。メモリコントローラ内の仲裁論理がそれらの要求を評価し、あるプロセッサをメモリマスタとして選択する。本発明はそれらのメディアコプロセッサを用いるが、決定論的特性を有するデータ通信プロセッサおよびネットワーキングプロセッサなどのその他のプロセッサが本発明においてコプロセッサとして使用するのに等しく適する。
【００２１】
図４はプロセッサ４０６と４ＫＢデータメモリ４０２をインタフェースするためのメモリコントローラ４０４の具体例のブロック図を示す。メモリコントローラ４０４はデータメモリ４０２とプロセッサ４０６との間に結合されている。両方とも１２８本の線で構成されている読出しデータバス４０８と書込みデータバス４２２がメモリコントローラ４０４をデータメモリ４０２に結合する。インタフェース回路内で、１２８ビットワイド読出しレジスタ（すなわち、バッファ）４１０が読出しデータバス４０８に結合され、ライトイネーブル信号４２４が主張されない時に、格納するための１２８ビットを１クロックサイクルでデータメモリ４０２から受ける。読出しレジスタ４１０に格納されているそれらの１２８ビットは、クロックサイクル当り８、９、１２、１６または３２、６４またはその他の数のビットなどの、クロックサイクル当り指定された数のビットでアクセスできる。クロックサイクル当り指定された数のビットは１２８ビットのサブセット（部分集合）である。この説明では、マルチプレクサ４１２が１６ビットワードの例をレジスタから選択し、その選択されたワードを処理のために内部バス４１４を通じてプロセッサ４０６へ送る。次のクロックサイクル中に、マルチプレクサ４１２は他の１６ビットワードを選択し、それをプロセッサ４０６へ送る。１６ビットワードに対するアクセスはある装置で採用されているエンディアン（ｅｎｄｉａｎ）順に従って順次起きることに注目すべきである。
【００２２】
エンディアン順はメモリ装置で利用されているバイト順序付けモードを指す。１２８ビットワードなどのより大きいデータサイズ内でのバイト順序付けは大エンディアン順または小エンディアン順で構成できる。エンディアン順は多重バイトデータ内のバイト０の場所を指す。本発明のデータメモリなどのメモリ装置は大エンディアン装置または小エンディアン装置として構成できる。たとえば、小エンディアン装置では、バイト０は最下位（すなわち、最も右側）のバイトである。他方、大エンディアン装置では、バイト０は最上位（すなわち、最も左側）のバイトである。本発明では、模範的なプロセッサが二重ワードアクセスのためにバイトアドレッシングを用いる。それは８で除すことができるバイト境界上に整列させられる（すなわち、０、８、１６、．．．５６）。したがって、プロセッサ内のレジスタにロードされた６４ビット二重ワードが大エンディアンモードまたは小エンディアンモードで整列させられる。小エンディアンモードプロセッサでは抽出すべきベクトルに対するスタートバイトは第２のベクトルレジスタ内に存在する。これとは逆に、大エンディアンモードプロセッサではスタートバイトは第１のベクトルレジスタ内に存在する。
【００２３】
なお図４を参照して、１２８ビットのサブセットを転送するプロセスは、読出しレジスタ４１０内の１２８ビットの全てがプロセッサ４０６にロードされるまで続行する。したがって、プロセッサ４０６はクロックサイクル当り１６ビットのデータを８クロックサイクルにわたって受ける。この構成では、実時間性能を確実にするためにプロセッサは８クロックサイクルごとにデータをただ１回アクセスする。この実施形態は１２８ビットのバス幅と１６ビットワードアクセスを利用するが、バス幅およびアクセスワードサイズはプロセッサの他の種々の実時間要求に合うように適合可能であることを理解すべきである。
【００２４】
図４をまだ参照して、プロセッサ４０６からデータメモリ４０２に対する書込み動作は類似のやり方で進む。通常は、クロックサイクルごとにプロセッサにより発生されるデータは１２８ビットのバス幅よりはるかに少なく、通常は８、９、１２、１６、３２または６４ビットなどの１２８ビットのサブセットである。この実施形態では、プロセッサ４０６はデータを処理し、クロックサイクルごとにデータメモリ４０２に保存すべき典型的な１６ビットデータを発生する。制御回路内では、デマルチプレクサ４１８が１６ビットデータをプロセッサ４０６から内部バス４１６を介して受け、その１６ビットワードをメモリコントローラ４０４内の１２６ビット書込みレジスタ４２０内のワードスロットの１つに送る。次のクロックサイクル中は、他の１６ビットワードがプロセッサ４０６により発生され、それはデマルチプレクサ４１８を介して書込みレジスタ４２０にロードされる。１６ビットワードは、好ましくはデータメモリのエンディアン順に応じて順次、１２８ビットレジスタ４２０に格納される。この処理は、１２８ビット書込みレジスタ４２０が一杯になるまで８クロックサイクルの間継続する。その後で、ライトイネーブル信号４２４が主張された時に書込みレジスタ４２０の内容がそれの１２８ビットの有用なデータとともにデータメモリ４０２に書込まれる。このようにして、プロセッサは８クロックサイクルごとにデータメモリをただ１回アクセスする必要がある。メモリコントローラ４０４を別々のユニットとして示しているが、データメモリ４０２またはプロセッサ４０６に組み込むように容易に適合できることに注目すべきである。
【００２５】
典型的なプロセッサ４０６はデータメモリに対する読出し／書込みを行うことに注目すべきである。しかし、以下に述べるように全てのプロセッサがデータメモリ４０２に対する読出し／書込みを行う必要があるわけではない。それらのプロセッサでは、メモリコントローラ４０４のうちデータメモリ４０２から読出し、またはデータメモリに書込むために必要な部分のみを実現できる。
【００２６】
好適な実施形態では、本発明のデータメモリはアドレス変換なしに動作する。しかし、データメモリは周知のアドレス変換アルゴリズムを用いるアドレス変換で実現することもできる。
【００２７】
これまで説明した共有されるメモリアーキテクチャは、共有されているメモリをアクセスする各プロセッサの実時間性能要求を確保するために、プロセッサの間のアクセス仲裁の仕組みを要する。本発明は、各プロセッサの全ての帯域幅要求の和よりも広い共有されているメモリに対するアクセス帯域幅をプロセッサに提供することにより、この実時間目的に合致する。特に、データメモリに対するアクセスは、プロセッサの決定論的特性から得られた仲裁の仕組みに従って、種々のプロセッサの間でアクセス時間当り十分な帯域幅で時間多重化される。
【００２８】
プロセッサの間の時間多重化されたアクセスは調整でき、かつ優先順位づけできる。その理由は全てのプロセッサの挙動が決定論的である、すなわち、プロセッサのデータ転送特性およびアクティブ状態が前もって知られているからである。まず、本発明における各プロセッサの実時間処理要求が決定論的である。すなわち、実時間処理のために求められる各プロセッサの帯域幅をプロセッサに対する目標データ転送速度を基にして計算できる。表１は図３に示されている各コプロセッサのために求められる帯域幅を示す。それらのピーク速度は、応用できる仕様または規格の要求から後ろ向きに働き掛けることによって得られる。
【表１】
0004426099.tif 000002
【００２９】
第２に、本発明は、全てのコプロセッサが同時に動作状態にあることはない、という他の決定論的特性を利用する。たとえば、あるコプロセッサはＭＰＥＧで使用されるが、他のあるコプロセッサは画像で使用され、更に別のコプロセッサはオーディオで使用される。しかし、全てのコプロセッサが始終使用されているわけではない。たとえば、ＭＰＥＧビデオ処理では、ＢＰ、ＱＰおよびＭＰはアクティブであり、ＧＰおよび浮動小数点プロセッサはアクティブでない。ＭＰＥＧオーディオでは、ＢＰとＦＰＵプロセッサがアクティブであり、他のプロセッサはアクティブでない。画像処理では、画像プロセッサおよびＦＰＵのみがアクティブである。表２はそれらのメディア処理のための種々のコプロセッサのアクティブな状態を要約したものである。
【表２】
0004426099.tif 000003
【００３０】
第３に、各プロセッサのアクセスパターンは極めて規則的である。その理由はプロセッサがデータストリームを、線形的かつ近接するやり方で処理するからである。たとえば、ＭＰＥＧビットストリームの圧縮を解除する際には、ＢＰは、データブロックの第１のバイトでスタートしてそのブロック中の全てのバイトにわたって、線形的なやり方でデータをアクセスする。同様に、ＱＰは８×８ＤＣＴデータブロックを線形的なやり方でアクセスする。
【００３１】
最後に、ＦＰＵはＳＰ命令ストリームを共有していることが他のコプロセッサとは異なる。すなわち、それはそれのデータを負荷から獲得し、ＳＰ命令ストリームを通じて格納する。データメモリ内のデータをアクセスするためのアドレスはＳＰにより供給される。したがって、ＦＰＵがデータメモリに対する別々のデータ関連を有するとしても、データメモリの観点からは、データメモリのアクセスにおいてＳＰタイムスロットを共有するように見える。
【００３２】
それらの所見を基にして、本発明はアクセス当りはるかに広いデータメモリの帯域幅に各プロセッサアクセスを行う。プロセッサの次のアクセスまでアクセスされた全てのデータをプロセッサが処理できるようにするために十分大きいように、アクセス当りのデータメモリ語帯域幅のサイズは適合させられる。本発明の好適な実施形態では、データメモリアクセスの帯域幅クロックサイクル当り１２８ビットである。データアクセスサイズの個々の大きさ（ｇｒａｎｕｌａｒｉｔｙ）のこの増大によってデータメモリに対する各プロセッサに対する時間多重化されたアクセスが可能にされる。
【００３３】
１２８ビットの広いアクセス帯域幅は、８クロックすなわち８状態のより大きいサイクル内の単一のクロックサイクルでプロセッサにとって受け容れることができる。本発明の好適な実施形態では、状態マシンの形のカウンタがサイクル当り８つのクロック（すなわち、状態）を繰り返し生ずる。それらのクロックは本発明における構成要素のタイミングおよび動作を制御および調整するために用いられる。種々のクロックサイクルを発生するためにカウンタすなわち状態マシンを用いることは周知の技術である。本発明は８状態カウンタを用いているが、サイクル当り他の種々の数のクロックすなわち状態に容易に合わせることができる。
【００３４】
８状態すなわち８クロック内の個々のクロックサイクルに対するアクセスは、データメモリをアクセスしているプロセッサの経験的な挙動を基にして仲裁の仕組みに従って調整される。本発明における全てのプロセッサのうち、ＤＭＡプロセッサはデータのブロックをメインメモリとデータメモリの間で動かすことで独特である。一実施形態では、メインメモリは通常はチップの外部のＤＲＡＭであり、データメモリはチップに組み込まれているＳＲＡＭであるので、メインメモリとデータメモリの間のデータの転送は、プロセッサとデータメモリとの間のデータ転送より通常ははるかに遅く、かつ仲裁アクセスパターンに従うことがはるかに少ない。たとえば、ＭＰＥＧ復号は、ＢＰまたはＱＰがデータを処理できるようにするために、ＤＭＡプロセッサが圧縮されたデータのブロックをデータメモリへ動かすことを要求できる。
【００３５】
ＤＭＡプロセッサの他の重要な特性は、他の全てのプロセッサを排除してデータメモリに対するアクセスを無制限に独占しないことである。これはコンピュータアーキテクチャにおけるＤＭＡの目的そのものを基にしている。それは他のプロセッサにより使用するデータを転送することである。他のプロセッサはそれが使用するデータを転送するためにＤＭＡに依存し、処理できるより多くのデータを必要としない。したがって、ＤＭＡプロセッサはこの最低レートを満たすためにデータを転送することを必要とするだけである。したがって、この決定論的自己制約環境においては、他のプロセッサがデータメモリをアクセスすることを排除すること無くＤＭＡ転送を制御できる。
【００３６】
それらの理由から、本発明の好適な実施形態では、最高優先順位のメモリマスタはＤＭＡプロセッサである。それは他の全てのプロセッサに先んじる。したがって、データメモリバスに対して仲裁されたならば、ＤＭＡプロセッサは所与のタイムスロットすなわちクロックサイクルの間動作を止めることはない。
【００３７】
他方、プログラム可能な信号プロセッサはかなり任意のプログラムを通常実行する。通常のマイクロプロセッサに非常に似て、信号プロセッサは種々のサイズのデータの読出し／書込みを行う。最大帯域幅は既知であるが、信号プロセッサのアクセスパターンは信号プロセッサで実行されているソフトウエアに大きく依存するために、信号プロセッサのアクセスパターンは予測できない。したがって、信号プロセッサはデフォールトのメモリマスタであって、他のプロセッサがアクティブでない時はアイドルタイムスロットをとる。
【００３８】
したがって、アクセスタイムスロットを種々のプロセッサに分配するアクセスのやり方では、信号プロセッサはアイドルタイムスロットすなわちタイムスライス中に、従来のロードおよび格納のようにデータをロードまたは格納する。例えば、他のプロセッサデータメモリをアクセスする時に信号プロセッサがロード命令または保存命令を実行することを試みる時は、停止条件が常に発生されて、アイドルスロットが始まるまで信号プロセッサがデータメモリをアクセスすることを阻止する。すなわち、信号プロセッサと他のプロセッサの間で衝突が起きると、信号プロセッサは動作を停止して次に使用できる衝突のないスロットでデータメモリをアクセスする。したがって、固定された時間要求を持つ他のプロセッサより低い優先順位が信号プロセッサに与えられる。
【００３９】
図５はプロセッサの間でデータメモリに対するアクセスを仲裁するのに含まれているステップの流れ図を示す。まずステップ５０２で、典型的な状態マシンカウンタを用いてタイムスロットが発生される。その後で各プロセッサのアクティブ状態、すなわち、そのプロセッサがデータメモリをアクセスすることを必要とするかどうか、を判定するために各プロセッサがテストされる。ＤＭＡユニットがアクティブであることがステップ５０４で判定されると、ステップ５０８でＤＭＡユニットが共有されているデータメモリをタイムスロットの間アクセスすることを許される。ステップ５０６に記載されているように他の全てのプロセッサは停止させられる。ステップ５１０に記載されているようにＤＭＡユニットがアクティブでなくて、１つまたは複数のコプロセッサがアクティブであるとすると、ステップ５１２に記載されているように、そのタイムスロットの間設定されている優先順位に従ってアクティブなコプロセッサから１つのコプロセッサが選択される。ステップ５０８に記載されているように、選択されたコプロセッサはその後でデータメモリをアクセスすることを許される。ステップ５１４に記載されているように、この時間中は、信号プロセッサは停止させられる。ステップ５１６に記載されているように、他のコプロセッサがアクティブでなければ、信号プロセッサはデフォールトメモリマスタになって、ステップ５０８に記載されているように、そのコプロセッサはデータメモリをアクセスすることを許される。ステップ５１８および５０２に記載されているように、プロセスは次のタイムスロットの間も繰り返される。
【００４０】
図６はデータメモリマスタのための典型的なタイムスロット割り当ての仕組みと、ＤＭＡ割り込みの場合の種々のアクセスパターンとを示す。タイムスロット割り当ては０から７までの８つのタイムスロット６０２〜６１６で構成されている。この実施形態では、状態マシンを通じて実現されているスロット指名子が０から７までのカウンタ値と、３つのアクセスパターン例６１８、６２０および６２２とを基にしてプロセッサのうちからデータメモリマスタを選択する。アクセスパターン６１８、６２０および６２２はＤＭＡプロセッサ（ＤＭＡ）のためのスロットと、デジタルプロセッサ読出し（すなわち、画像プロセッサ読出し）（ＤＰ Ｒ）のためのスロットと、ビットストリームプロセッサ読出し（ＢＰ Ｒ）のためのスロットと、ビットストリームプロセッサ書込み（ＢＰ Ｗ）のためのスロットと、量子化プロセッサ書込み（ＱＰ Ｗ）のためのスロットと、量子化ＤＣＴプロセッサ読出し（ＱＰＣ Ｒ）のためのスロットと、量子化プロセッサ読出し（ＱＰＱ Ｒ）のためのスロットとで構成されている。
【００４１】
図６におけるカウンタ値０〜７は８つのタイムスロット６０２〜６１６に対応する。この割り当ての仕組みでは、３状態の状態マシンが現在使用中のスロットパターンを見失わないようにする。ＱＰ、ＢＰおよびＤＰＯは、アクセスパターン６１８、６２０および６２２に示すようにカウンタがそれのそれぞれのスロットを指す時に、データメモリを使用する。「（ＤＭＡ）」スロットはＤＭＡ要求をアクセスパターン６１８、６２０および６２２の１つに同期させるために用いられる。ＤＭＡプロセッサが割り込みすると、スロット指名子が３つのパターンの内の１つに切り替わってＤＭＡプロセッサをそれのスロットに入れることができる。唯一の停止は、他の全てのマスタが停止させられる時にＤＭＡプロセッサがスタートしている間である。停止はＤＭＡワード整列に応じて２クロックサイクル以上のことがある。
【００４２】
図６をなお参照して、スタートすると、ＤＭＡプロセッサはＱＰ Ｗスロットを要する。この場合には、ＱＰ ＷはＤＰ Ｒスロットを共有する。その理由は、ＱＰ Ｗがあまり頻繁でない、最大で１／１６、であるからである。ＤＰはデータメモリに対して３／１６のアクセスを行い、１６サイクルごとに４サイクルの間停止させることができる。画像処理のみモードでは、ＱＰが非アクティブであるのでＤＰは停止させられない。スロットがそれら自身の所有者により使用されていない時にＳＰアクセスとＦＰＵアクセスのためにそれらのタイムスロットはフリーであることに注目すべきである。アクセスパターンと状態が与えられると、メモリコントローラに、種々のプロセッサのうちでデータメモリに対するアクセスを調整する制御論理を実現することを容易に行わせることができる。
【００４３】
本発明の一実施形態では、図６に示されている仲裁仕組みの例は、データメモリに対するアクセスを調整するために実現される。コントローラはメモリコントローラ内にインタフェース回路と一緒に存在する。代わりの実施形態では、コントローラはメモリコントローラの外部で実現される。いずれの場合にも、コントローラはデータメモリに対するアクセスを求めているアクティブなプロセッサから信号を受ける。応答して、コントローラは、選択されるプロセッサのためのイネーブル信号を発生することにより、所与のタイムスロットの間データをアクセスするプロセッサを選択する。このようにして選択されたプロセッサはその後でそのタイムスロットにわたってデータメモリをアクセスすることを許される。
【００４４】
図７はデータメモリ（ＤＭＥＭ）７０２を含んでいるデータメモリブロックと、本発明の一実施形態によるプロセッサに対する典型的なインタフェースを示す。読出しインタフェースのために、ＤＭＥＭ８０２は複数のポートを通じてプロセッサと通信する。各プロセッサに１つのポートが好ましい。ポートは１２８ビット読出しレジスタおよびマルチプレクサで構成されている。マルチプレクサは１２８ビットのサブセットを１クロックサイクル中に読出しレジスタから受け、かつ複数のクロックサイクルにわたって１２８ビット全部をプロセッサへ送る。たとえば、ＢＰ Ｒ ＤＡＴＡポートが１クロックサイクルごとに３２ビットを読出しレジスタ８０４から受け、それらをビットストリームプロセッサへ送る。次のクロックサイクルでは、読出しレジスタ８０４内の次の３２ビットがマルチプレクサ８０６により選択され、そのビットストリームプロセッサへ送られる。このようにして、読出しレジスタ８０４内の１２８ビット全体が４クロックサイクルのうちにプロセッサへ送られる。同様に、ＤＰ Ｒ ＤＡＴＡポートはクロックサイクルごとに３２ビットのデータを受け、それらを動き補償プロセッサまたは画像プロセッサへ送る。それらのプロセッサは１つのポートを共有している。ＱＰＣ Ｒ ＤＡＴＡポートはクロックサイクルごとに１２ビットのデータをそれの対応する読出しレジスタ８１２からマルチプレクサ８１４を介して受け、それをＤＣＴ処理のためにＱＰへ送る。ＱＰＱ Ｒ ＤＡＴＡポートはクロックサイクルごとに８ビットを受け、それらを量子化処理のためにＱＰへ送る。ＤＭＡ Ｒ ＤＡＴＡポートはクロックサイクルごとに３２ビットを受け、それらをＤＢＵＳ８２８を介してＤＭＡユニットへ送る。ＳＰ Ｒ ＤＡＴＡポートおよびＦＰＵ Ｒ ＤＡＴＡポートが１つのポートを共有し、ロード整列ユニットが整列された６４ビットデータを、データメモリから受けられた１２８ビットのデータから取り出した後でクロックサイクルごとに６４ビットを受ける。整列ユニットは６４ビットを取り出すので、それらのポートはマルチプレクサを利用しない。その後でデータロード／格納バス８３０を通じてＳＰまたはＦＰＵへ送られる。
【００４５】
データメモリに対して書込みインタフェースを行うために、ＤＭＥＭ８０２は複数のポートを通じてプロセッサとも通信する。あるプロセッサがマルチプレクサを通じて１２８ビット書込みレジスタに書込む。このプロセスでは、１２８ビットの小さい部分のみが書込まれる。たとえば、ＢＰ Ｗ ＤＡＴＡポートがクロックサイクルごとに１２ビットのデータをビットストリームプロセッサから受け、それらを１２８ビット書込みレジスタ８３２へ送る。ＱＰ Ｗ ＤＡＴＡポートがクロックサイクルごとに９ビットをＱＰプロセッサから受け、それらを１２８ビット書込みレジスタ８３４へ送る。ＤＭＡ Ｗ ＤＡＴＡがクロックごとに３２ビットをＤＭＡユニットから受け、それらをそれの１２８ビット書込みレジスタ８３６へ送る。ＳＰ Ｗ ＤＡＴＡポートおよびＦＰＵ Ｗ ＤＡＴＡポートが１つの書込みポートを共有し、６４ビットをロード／格納バス８３０を介してＳＰまたはＦＰＵから６４ビットを受ける。格納整列ユニット８４４が格納のために６４ビットを整列し、整列させられた６４ビットを書込みレジスタ８３８へ送る。そのレジスタは１２８ビット書込みレジスタ８３８を一杯にするために６４ビットを二重にする。それら４つの書込みレジスタのうちで、マルチプレクサ８４２はレジスタを選択し、選択されたレジスタの内容をデータメモリ８０２へ送る。
【００４６】
読出し／書込み動作はアドレッシングユニットと同期して行われる。アドレッシングユニットはＤＭＥＭ内のアドレスを選択して書込みまたは読出す。この実施形態ではＤＭＥＭは２５６×１２８ビットアレイ、全部で４ＫＢ、として編成される。２５６の１２８ビットＤＭＥＭワードをアドレスするために、アドレス線はＤＭＥＭから２５６のアドレスの１つを選択するために８ビット幅である。各アクティブプロセッサにより求められるデータメモリ内のデータのアドレスはマルチプレクサ８４６により選択される。選択されたアドレスはその後でアドレスレジスタ８４８に保持され、正しい読出し動作および書込み動作を可能にするために、アドレス信号がＤＭＥＭ８０２に加えられる。
【００４７】
この実施形態では、データメモリ内のデータはバイトアドレス指定可能である。すなわち、１２８ビットデータメモリ内の任意のバイトを選択可能である。１６進数での信号「ＦＦＦＦ」は１２８ビットデータ中の１６バイトの全てを選択すべきことを指示する。ＤＭＡ ＷＥはＤＭＡユニットに対するライトイネーブルを指示し、  ＳＰ ＷＥはＳＰに対するライトイネーブルを指示する。ＳＰユニットおよびＤＭＡユニットに対するバイトアドレッシングは指定されたバイトの選択を可能にする。
【００４８】
本発明の種々のプロセッサのうちの１つのデータメモリは、各プロセッサに専用メモリ資源を有するものよりも費用効率が十分に高い。まず、共有される構成では、プロセッサは集積化されたチップ（ＩＣ）のメモリ資源をより多く使用する。すなわち、全てのプロセッサに対して１つのデータメモリを利用することにより、専用メモリが存在しないためにデータメモリはより多くの回数使用される。また、メモリまたはＲＡＭなどのＩＣ資源は大きなサイズでは効率が高くなる傾向があるので、共有されるメモリ構成によって全てのプロセッサに対してより大きいデータメモリを使用できる。その理由は、メモリまたはＲＡＭなどのＩＣ資源は大きなサイズで費用効率がより高くなる傾向がある。更に、本発明以外では専用メモリアーキテクチャにおける各プロセッサのためのアドレス復号器および検出増幅器などの回路を支持するために求められる型スペースが節約されるために、より大きいメモリサイズが可能である。
【００４９】
以上、本発明、すなわち、割り込み時間多重化共有メモリアクセス装置および方法について説明した。本発明を特定の実施形態について説明したが、本発明はそのような実施形態に限定されるものと解すべきでなく、以下の特許請求の範囲に従って解すべきである。
【図面の簡単な説明】
【図１】  専用メモリユニットを有するプロセッサで構成されている従来のコンピュータ装置を示す図。
【図２】  本発明の好適な実施の形態による複数のプロセッサの間で共有されている典型的なデータメモリアーキテクチャのブロック図。
【図３】  メモリクライアントプロセッサのうちで１つのデータメモリを共有するコンピュータ装置における典型的なメディアプロセッサのブロック図。
【図４】  プロセッサとデータメモリをインタフェースするための典型的なメモリコントローラのブロック図。
【図５】  プロセッサのうちでデータメモリに対するアクセスの仲裁に含まれているステップの流れ図。
【図６】  データメモリに対する典型的なタイムスロット割り当てと、ＤＭＡ割り込みの場合における種々のアクセスパターンを示す図。
【図７】  本発明の一実施形態に従うデータメモリを含んでいるデータメモリブロックと、プロセッサに対する典型的なインタフェースを示す図。
【符号の説明】
２０２、３０２、４０２  データメモリ
２０４  バス
２０６  プログラム可能なプロセッサ
２０８、２１０、２１２、２１４  コプロセッサ
３０４  メモリコントローラ
３０６  信号プロセッサ
３０８  浮動小数点プロセッサ
３１０  ＤＭＡプロセッサ
３１２  画像プロセッサ
３１４  動き補償プロセッサ
３１６  量子化および離散コサイン変換プロセッサ
３１８  ビットストリームプロセッサ
３２０  メインメモリ
４１２  マルチプレクサ
４１８  デマルチプレクサ
４０６  プロセッサ。
【図１】
0004426099.tif 000004
【図２】
0004426099.tif 000005
【図３】
0004426099.tif 000006
【図４】
0004426099.tif 000007
【図５】
0004426099.tif 000008
【図６】
0004426099.tif 000009
【図７】
0004426099.tif 000010