(57)【特許請求の範囲】
【請求項１】
集積化されたデジタル信号プロセッサであって、
第１のプロセッサとキャッシュ制御を有するキャッシュサブシステムとを含むプロセッシングコアと、
少なくとも前記集積化されたデジタル信号プロセッサ外部の第１の装置にアクセスするための第１のインターフェースに連結された、第１の複数の異なるタイプの装置と、
前記キャッシュサブシステムを前記第１の複数の異なるタイプの装置に直接接続する第１のバスと、
少なくとも前記集積化されたデジタル信号プロセッサ外部の第２の装置にアクセスするための第２のインターフェースに連結された、第２の複数の異なるタイプの装置と、
前記キャッシュサブシステムを前記第２の複数の異なるタイプの装置に直接接続する第２のバスと、
を備え、
前記第１のプロセッサが前記キャッシュサブシステムを介してアドレス空間にアクセスし、
前記第１のインターフェースおよび前記第１のバスが第１のクロック周波数で動作し、
前記第２のインターフェースおよび前記第２のバスが、前記第１のクロック周波数と異なる第２のクロック周波数で動作し、
前記キャッシュサブシステムの前記キャッシュ制御が、前記第１のプロセッサと前記第１の複数の異なるタイプの装置のいずれかとの間、および前記第１のプロセッサと前記第２の複数の異なるタイプの装置のいずれかとの間における通信のためのスイッチボードとしての役割を果たすことを特徴とするプロセッサ。
【請求項２】
前記キャッシュサブシステムがさらに前記第１のインターフェースと前記第２のインターフェースとの間における通信を実行することを特徴とする請求項１に記載の集積化されたデジタル信号プロセッサ。
【請求項３】
前記プロセッシングコアがさらに第２のプロセッサを含み、
前記キャッシュサブシステムが、前記第２のプロセッサと前記第１のインターフェースとの間、および前記第２のプロセッサと前記第２のインターフェースとの間における通信を実行することを特徴とする請求項１に記載の集積化されたデジタル信号プロセッサ。
【請求項４】
前記第１のプロセッサが汎用プロセッサであって、前記第２のプロセッサが単一命令多重データ（ＳＩＭＤ）のアーキテクチャを有するベクトルプロセッサであることを特徴とする請求項３に記載の集積化されたデジタル信号プロセッサ。
【請求項５】
前記キャッシュサブシステムが、前記第１または第２のプロセッサと前記第１の複数の異なるタイプの装置のいずれかとの間、および前記第１または第２のプロセッサと前記第２の複数の異なるタイプの装置のいずれかとの間における通信を実行することを特徴とする請求項３に記載の集積化されたデジタル信号プロセッサ。
【請求項６】
第１のインターフェースがさらにメモリコントローラーを備え、前記第２のインターフェースがＵＡＲＴを備えることを特徴とする請求項１に記載の集積化されたデジタル信号プロセッサ。
【請求項７】
集積化されたデジタル信号プロセッサであって、
汎用プロセッサと、
前記汎用プロセッサとの並列動作が可能なベクトルプロセッサと、
複数の入出力装置を含む入出力装置の第１の組と、
１つ以上の入出力装置を含む入出力装置の第２の組と、
前記集積化されたデジタル信号プロセッサ内でのデータ伝送のため前記入出力装置の第１の組に直接接続された第１のバスと、
前記集積化されたデジタル信号プロセッサ内でのデータ伝送のため前記入出力装置の第２の組に直接接続された第２のバスと、
前記汎用プロセッサ、前記ベクトルプロセッサ、前記第１のバス、および前記第２のバスに連結されたキャッシュサブシステムと、
キャッシュメモリと、
前記キャッシュメモリ、前記汎用プロセッサ、前記ベクトルプロセッサ、前記第１のバス、および前記第２のバスを相互に接続するデータ経路と、
を備え、
前記キャッシュサブシステムは、
前記汎用プロセッサと前記入出力装置の第１の組との間の前記第１のバスを介した通信、前記汎用プロセッサと前記入出力装置の第２の組との間の前記第２のバスを介した通信、前記ベクトルプロセッサと前記入出力装置の第１の組との間の前記第１のバスを介した通信、および前記ベクトルプロセッサと前記入出力装置の第２の組との間の前記第２のバスを介した通信を提供するよう設定可能であり、前記第１のバスはデータ伝送用の第１の帯域幅を有し、前記第１の帯域幅は前記第２のバスがデータ伝送用に提供する第２の帯域幅よりも大きく、前記ベクトルプロセッサはデータ用に前記第２の帯域幅より大きい第３の帯域幅を有し、
前記データ経路は、前記ベクトルプロセッサと前記第２のバスとの間の接続を持たないことを特徴とするプロセッサ。
【請求項８】
前記ベクトルプロセッサと前記第２のデータバスとの間の通信が前記キャッシュメモリを介して行われることを特徴とする請求項７に記載の集積化されたデジタル信号プロセッサ。
【請求項９】
前記データ経路が前記ベクトルプロセッサを前記第１のデータバスに直接接続することを特徴とする請求項８に記載の集積化されたデジタル信号プロセッサ。
【請求項１０】
前記データ経路が前記汎用プロセッサを前記第２のデータバスに直接接続することを特徴とする請求項７に記載の集積化されたデジタル信号プロセッサ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はデジタル信号プロセッサに関するもので、特にベクトルデータの処理のための汎用プロセッサ及びベクトルプロセッサを含むデュアルスレッド(dual-threaded) の非対称並列処理システムに関する。
【０００２】
【従来の技術】
例えば特開平７−２８７６１号公報に示されているように、多様な種類のデジタル信号プロセッサ（ＤＳＰ）が、ビデオ信号、オーディオ信号及び通信データのコーディング及びデコーディングのようなマルチメディアアプリケーションに使用されている。この中であるＤＳＰはＭＰＥＧビデオデコーディングまたはエンコーディングのような特定の処理を行なうハードウェアを提供してきた。このように提供されたハードウェアＤＳＰは、一般的にその費用に比べて高性能であるが、特定処理のみに有用でその他の処理や規格には柔軟に適用することはできなかった。
【０００３】
プログラム可能(programmable)ＤＳＰは、マルチメディア処理を実行するプログラムを遂行し、提供されたハードウェアＤＳＰより柔軟性が高いが、これはプログラム可能ＤＳＰのためのソフトウェアの変更が、実行する処理をえることができるからである。しかし、このプログラム可能ＤＳＰは、コストパフォーマンスが低いという問題点がある。プログラム可能ＤＳＰは、汎用プロセッサの構造と類似した構造であり、相対的に低い処理能力になる。このような低い処理能力は、費用を最少化しようとする試みから得られたものである。従って、このようなＤＳＰは、実時間ビデオエンコーディング及びデコーディングのようなより複雑なマルチメディア処理を行なうためのＤＳＰの能力としては満足いくものではない。
【０００４】
プログラム可能ＤＳＰにおける目標は、最少費用でマルチメディア処理を行なう処理能力を提供するものであるので、処理能力を増加させる方法として知られているＤＳＰ並列処理に統合されることである。並列処理の一構造は“超長命令語(very long instruction word;VLIW）”ＤＳＰである。このＤＳＰは大部分が異なるが、単純なタスクを実行する多数の機能ユニット(functional units)により特定される。ＶＬＩＷＤＳＰによる単一命令は、１２８バイト以上に相互に独立された部分を有する。各部分は、並列のそれぞれ独立された機能ユニットにより実行可能である。ＶＬＩＷＤＳＰは、多数の機能ユニットが並列に動作できるので、高い計算能力を有する。また、ＶＬＩＷＤＳＰは、それぞれの機能ユニットが小さく単純であるので低コストである。
【０００５】
【発明が解決しようとする課題】
しかしながら、ＶＬＩＷＤＳＰにおける問題点は、入出力制御、ホストコンピュータとの通信、およびＶＬＩＷＤＳＰの機能ユニットにおける並列実行が無意味な他の機能を運用する場合には効果がない。従って、ＶＬＩＷのためのプログラムは、一般的なコンピュータプログラムと異なり、プログラミングツール（programming tool) やＶＬＩＷソフトウェア構造がよく分かるプログラマーが不足し、その開発が難しいという問題点があった。
【０００６】
本発明はこのような従来の問題点を解決するためのもので、その目的は、集積化されたデジタル信号プロセッサを提供することにある。
【０００７】
【課題を解決するための手段】
本発明のデジタル信号プロセッサは、汎用プロセッサとベクトルプロセッサとを組み合わせたもので、汎用プロセッサと並列に駆動できる。デジタル信号プロセッサは、２つのプロセッサがそれぞれのプロセッサに理想的に適合したタスクのみを遂行するので、低コストで高性能の実現が可能である。例えば、汎用プロセッサはリアルタイムオペレーティングシステムを動作させ全体的なシステムを管理し、ベクトルプロセッサは“ベクトル”というデータ構造を用いる並列計算を実行することに使用される。ベクトルは、同一タイプのデータ要素を集めたものである。
【０００８】
本発明の一実施の形態において、デジタル信号プロセッサはキャッシュサブシステム、第１バス及び第２バスを含む。前記第１バスは、ローカルバスインターフェース、ＤＭＡコントローラー、デバイスコントローラー及びメモリコントローラーのような高速デバイスのために使用され、第２バスはシステムタイマー、ＵＡＲＴ、ビットストリームプロセッサ及び、インタラプトコントローラーのような低速デバイスのために使用される。
【０００９】
キャッシュサブシステムは、キャッシュ機能とスイッチボーディング(switchboarding)または、データルーティング機能を合わせたものである。スイッチボード機能は、プロセッサとバスとの間の多重通信経路を同時に作動させる。また、キャッシュサブシステムのキャッシュ部分は、キャッシュメモリの読取り及び書込を同時に実行するようにする。
【００１０】
【発明の実施の形態】
以下、添付図面を参照して、本発明の好ましい実施の形態をより詳しく説明する。なお、図面全体を通して同一部分には、同一な図面符号が付けてある。
【００１１】
本発明の一実施の形態によると、マルチメディアプロセッサは、それぞれ独立されたプログラムスレッド(thread)によって並列に動作する汎用プロセッサとベクトルプロセッサとを含む。汎用プロセッサは、最も一般的な汎用プロセッサでありスカラー(scalar)データを主に操作する命令を実行する。このようなプロセッサは、入出力及び制御機能の実行に適合している。本発明の実施の形態において、汎用プロセッサは、いくつかのバイトサイズのデータエレメントが１つのデータエレメント内にパックされたベクトル処理能力には制限がある。例えば、汎用プロセッサが３２ビットプロセッサの場合、４個の１バイトデータ要素を同時に処理可能である。しかし、オーディオ及びビデオデータの圧縮及び伸長のようなマルチメディアコンピューティングは、オーディオデータのピクセルアレーとストリング上における数多い反復的な計算を必要とする。リアルタイムマルチメディア動作のために、スカラーデータ（例えば１ピクセル値または演算数(operand) 当りのサウンド振幅）、または小さいベクトルを処理する汎用プロセッサは、高いクロック周波数で動作しなければならない。その反対に、ベクトルプロセッサは、それぞれの演算数が、多数のデータ要素を含むベクトル（例えば、多数個のピクセル値またはサウンド振幅）の命令を実行する。従って、ベクトルプロセッサは、同一機能を実行する汎用プロセッサに必要なクロック周波数の何分の一かで、リアルタイムマルチメディア動作の実行が可能である。
【００１２】
従って、マルチメディアアプリケーションに必要なタスクの効率的な分割を許容することによって、プログラム可能汎用プロセッサ及びベクトルプロセッサの組み合わせは、価格に対して高性能となる。本発明の一実施の形態において、汎用プロセッサは、ホストコンピュータシステムと通信するメディア回路ボード（カード）として設計されたリアルタイムオペレーティングシステムを動作させる。このリアルタイムオペレーティングシステムは、ホストコンピュータシステムの一次プロセッサと通信し、入出力装置を使用可能にしたりまたはカードに結合し、ベクトルプロセッサが実行するタスクを選択する。この実施の形態において、ベクトルプロセッサは、汎用プロセッサがベクトルプロセッサのマスタプロセッサとして動作する間、大きいデータブロックの処理が要求される計算集中型のタスクを実行するように設計されている。それぞれのプロセッサのためのプログラムスレッドは、マルチメディアプロセッサを“プログラマーと親しくなるように”する通常的な命令セットを利用し記入される。プログラム可能であることは、マルチメディアプロセッサが、多様な他のマルチメディアタスクを実行することを許容する。例えば、マルチメディアプロセッサは、アプリケーションプログラムまたはファームウェアを変化させることのみで、新しいプロトコルに適合するように作ることができる。この命令セットは、一般的なＲＩＳＣ(reduced instruction set computer)命令セットと類似している。
【００１３】
本発明の他の実施の形態において、汎用プロセッサとベクトルプロセッサは、単一アドレス空間を通してアクセス可能なように多様なオンチップ(on-chip) 及びオフチップ(off-chip)手段を共有する。それぞれのプロセッサのために独立されたデータ及び命令キャッシュを提供するキャッシュサブシステムはローカルメモリと、メモリマップ(memory map)装置のビットストリームプロセッサ、ＵＡＲＴ(universal asynchronous receiver-transmitter) 、ダイレクトメモリアクセス（ＤＭＡ）コントローラー、ローカルバスインターフェース及び、コーダー−デコーダー（ＣＯＤＥＣ）インターフェースのような装置の間に、スイッチボードタイプの接続を提供する。キャッシュサブシステムは、プロセッサとメモリマップ装置間のデータアクセスのためのスイッチボードを提供するトランザクション指向的な(transaction-oriented)プロトコルを使用することができる。
【００１４】
図２は、本発明の一実施例によるマルチメディアカード１００を示したものである。マルチメディアカード１００は、プリント配線板、マルチメディアプロセッサ１１０及びホストコンピューターシステムのローカルバス１０５に接続されたコネクタを含む。好ましい実施の形態において、ローカルバス１０５はＰＣＩバスであるが、とくにこれに限定されるものではなく、独占(proprietary) バス、またはＩＳＡやＶＥＳＡバスプロトコルのような所定のプロトコルに適合したバスであってもよい。
【００１５】
マルチメディアプロセッサ１１０は、マルチメディアカード１００上に位置するデータの格納と、プログラム命令のためのローカルメモリ１２０を使用する。ローカルメモリ１２０は、ビデオ信号コーディング及びデコーディングのためのフレームバッファとしても使用できる。好ましい実施の形態において、ローカルメモリ１２０は、５１２Ｋ×３２ビット同期(synchronous) ＤＲＡＭから構成できる。ローカルメモリ空間の各部分はまた、マルチメディアプロセッサ１１０内のオンチップＳＲＡＭやＲＯＭにより構成可能である。実際に、オンチップメモリがマルチメディアカード１００のデータ及び命令を充分に格納できれば、ローカルメモリ１２０を備える必要がない。
【００１６】
マルチメディアプロセッサ１１０とローカルメモリ１２０の外にマルチメディアカード１００は、ビデオアナログ−デジタルコンバーター（ＡＤＣ）１３２、ビデオデジタル−アナログコンバーター（ＤＡＣ）１３４、オーディオＡＤＣ１４２、オーディオＤＡＣ１４４、通信用ＡＤＣ１４６及び通信用ＤＡＣ１４８とを含む。それぞれのコンバーター（１３２、１３４、１４２、１４４、１４６、１４８）は、１つ以上の独立された集積回路により構成可能である。また、２個以上のコンバーター（１３２、１３４、１４２、１４４、１４６、１４８）は、単一集積回路上に集積化できる。例えば、アナログデバイス社のＡＤ１８４３の単一集積回路１４０は、コンバーター（１４２、１４４、１４６、１４８）の機能を実行し得る。
【００１７】
例えば、三星電子のＫＳ０１２２集積回路から構成できるビデオＡＤＣ１３２は、ビデオカメラや外のビデオ信号源に接続され、ビデオ信号を直列のピクセル値にデジタル化する。マルチメディアカード１００は、ＭＰＥＧ、ＪＰＥＧまたはマルチメディアプロセッサ１１０により動作されるファームウェア内に備えられたＨ．３２４のようなビデオエンコーディング基準によって、ピクセル値を圧縮したりエンコーディングする。エンコーディングされたビデオデータは、ローカルバス１０５を通してホストコンピュータに転送されるか、またはローカルバス１０５に接続されたＥｔｈｅｒｎｅｔ（登録商標）カードのような装置に接続されるか、通信用ＤＡＣ１４８に接続された電話線上の転送のために、さらにエンコーディングされる。
【００１８】
ビデオＤＡＣ１３４は、マルチメディアプロセッサ１１０からの一連のデジタルサンプルを、ビデオモニタまたはテレビのためのアナログビデオ信号に変換させる。ビデオＤＡＣはＮＴＳＣまたはＰＡＬビデオ方式であり、例えば三星電子のＫＳ０１１９集積回路から構成し得る。マルチメディアプロセッサ１１０はホストコンピューター、ローカルバス１０５に接続された他の装置、ビデオＡＤＣに接続されたビデオカメラまたは、通信用ＡＤＣ１４６に接続された電話線に印加されるデータを基にして、ビデオＤＡＣ１３４のための一連のデジタルサンプルを生成することができる。
【００１９】
マルチメディアカード１００は、ローカルメモリ１２０をマルチメディアプロセッサ１１０と共有し、ホストコンピュータのためにビデオモニタにビデオ信号を供給するグラフィックコントローラー１５０を、選択的な構成要素として含む。グラフィックコントローラー１５０は例えば、ＣｉｒｒｕｓＬｏｇｉｃ、Ｓ３またはＴｒｉｄｅｎｔＭｉｃｒｏｓｙｓｔｅｍｓのＶＧＡグラフィックコントローラーから構成することができる。マルチメディアプロセッサ１１０は、グラフィックコントローラー１５０が、ビデオモニタのためのビデオ信号を生成するローカルメモリ１２０内で、ピクセルマップ(pixel map) を生成し格納する。
【００２０】
オーディオＡＤＣ及びオーディオＤＡＣ１４２、１４４は、アナログオーディオ信号の入出力のためのものである。本発明の一実施の形態において、マルチメディアカード１００は、広く普及された“サウンドブラスター(SoundBlaster)”のようなサウンドカードの機能をエミュレートし、ウェーブテーブル合成(wavetablesynthesis)及びＦＭ合成のようなサウンド合成を遂行する。サウンドカードエミュレーションのため、ホストコンピュータにより遂行されるアプリケーションプログラムはサウンドを表わすデータを提供し、マルチメディアプロセッサ１１０はこのデータによってサウンド振幅を生成する。オーディオＤＡＣ１４４は、サウンド振幅をスピーカーまたは増幅機のためのアナログオーディオ信号に変換させる。マルチメディアプロセッサ１１０は、オーディオＡＤＣ１４２からの入力オーディオ信号を同様に処理する。
【００２１】
通信用ＡＤＣ１４６は、電話線からのアナログ信号をサンプルリングし、デジタル化されたサンプルをマルチメディアプロセッサ１１０に送る。マルチメディアプロセッサ１１０がデジタル化されたサンプルをどのように処理するかは、ファームウェアで遂行される機能に左右される。例えば、マルチメディアプロセッサ１１０は、サンプルのＶ．３４復調、Ｖ．４２ｂｉｓエラー訂正及び伸長(error correction and decompression)を行うファームウェアのプログラムを実行することによって、モデム機能を遂行することができる。マルチメディアプロセッサ１１０はまた、ホストコンピューターから提供されたデータを圧縮し、通信用ＤＡＣ１４８により転送される正確に変調されたアナログ信号を表わすデジタルサンプルを生成することができる。同様に、マルチメディアプロセッサ１１０は、適切なファームウェアまたはソフトウェアが提供されると、電話線とのインターフェースとして、ＡＤＣ１４６及びＤＡＣ１４８のようなハードウェアを利用し、自動応答機、ファクシミリーまたはビデオフォン機能を遂行することができる。
【００２２】
図１は、マルチメディアプロセッサ１１０の一実施の形態の構成図を示したものである。マルチメディアプロセッサ１１０は、汎用プロセッサ２１０とベクトルプロセッサ２２０とを含むプロセッシングコア(processing core) ２００を備える。ここにおいて、ベクトルプロセッサは、ベクトル演算数、すなわち同一形態の多数個のデータ要素を含む演算数を有する命令を遂行するプロセッサを意味する。汎用プロセッサ２１０とベクトルプロセッサ２２０は、それぞれ独立したプログラムを遂行する、スカラーまたはスーパースカラー(superscalar) プロセッサであってもよい。
【００２３】
本発明の一実施の形態として、汎用プロセッサ２１０で４０ＭＨｚで動作し、標準ＡＲＭ７命令セットを従う３２ビットＲＩＳＣプロセッサを使用することができる。ＡＲＭ７ＲＩＳＣプロセッサ及びＡＲＭ７命令セットの構成は、ＡｄｖａｎｃｅｄＲＩＳＣＭａｃｈｉｎｅｓ社のＡＲＭ７ＤＭデータ表(Data Sheet)に示されている。汎用プロセッサ２１０は、ベクトルプロセッサ２２０とのインターフェースに対する命令を含んでいるＡＲＭ７命令セットを拡張させる役割をする。汎用プロセッサ２１０は、制御バス２１２によりベクトルプロセッサ２２０に接続され、ＡＲＭ７命令セットの拡張を実行する。また、ベクトルプロセッサ２２０によりインタラプトライン２２２が使用され、汎用プロセッサ２１０上のインタラプトを要求する。
【００２４】
ベクトルプロセッサ２２０は、ＳＩＭＤ(single-instruction-multiple-data)構造を有し、スカラーとベクトル量のすべてを処理する。本発明の一実施の形態において、ベクトルプロセッサ２２０は、８０ＭＨｚで動作し、２８８ビットのベクトルレジスタファイルを有するパイプライン(pipelined) ＲＩＳＣ中央処理装置からなる。ベクトルレジスタファイル内のそれぞれのベクトルレジスタは、３２個までのデータ要素を含むことができる。表１に、ベクトル内のデータ要素のデータタイプを示している。
【００２５】
【表１】
0003954163.tif 000002
【００２６】
従って、ベクトルレジスタは、３２個の８ビットまたは９ビットの整数データ要素、１６個の１６ビット整数データ要素、または８個の３２ビット整数または浮動小数点(floating point)要素を有することができる。また、この実施の形態は、２個のベクトルレジスタにかけた５７６ビットベクトル演算数上で動作することができる。
【００２７】
ベクトルプロセッサ２２０に対する命令セットは、ベクトルとスカラーを処理するための命令を含む。
【００２８】
キャッシュサブシステム２３０は、２個のブロックによって示したＳＲＡＭブロック２６０と、ＲＯＭ２７０及びキャッシュ制御部２８０とを備える。キャッシュサブシステム２３０は、汎用プロセッサ２１０のために、ＳＲＡＭブロック２６０を命令キャッシュ２６２とデータキャッシュ２６４で形成し、ベクトルプロセッサ２２０のために命令キャッシュ２９２とデータキャッシュ２９４で形成している。汎用プロセッサ２１０とベクトルプロセッサ２２０のためのデータ及び命令を含むオンチップＲＯＭ２７０も、キャッシュによって形成できる。本発明の一実施の形態において、ＲＯＭ２７０はリセット及び初期化過程、セルフテスト診断過程、インタラプト及び例外(exception) 処理、サウンドブラスターエミュレーションのためのサブルーチン、Ｖ．３４モデム信号処理のためのサブルーチン、一般的な電話機能、２次元及び３次元グラフィックサブルーチンライブラリー、及びＭＰＥＧ−１、ＭＰＥＧ−２、Ｈ．２６１、Ｈ．２６３、Ｇ７２８ａｌｃＧ．７２３のようなオーディオ及びビデオ規格のためのサブルーチンライブラリーを含む。
【００２９】
図３は、ホストコンピューターシステム３００内にマルチメディアカード１００を適用することにおけるハードウェアとソフトウェアまたはファームウェア間の関係を示したものである。ホストコンピュータシステム３００は、主メモリ３２０内に格納されたプログラムを実行する第１プロセッサ３１０を有する。本発明の一実施の形態において、ホストコンピュータシステム３００は、ｘ８６系のマイクロプロセッサを備えたＩＢＭ互換性を有するコンピューターで、ホストコンピュータシステム３００により実行されるプログラムは、ＷｉｎｄｏｗｓTM９５またはＮＴのようなオペレーティングシステム下で運用されるアプリケーションプログラム３３０を含む。アプリケーションプログラム３３０は、デバイスドライバ３４２を通し、マルチメディアカード１００と通信することができる。デバイスドライバ３４２は、オペレーティングシステムのデバイスドライバＡＰＩに従う。
【００３０】
それぞれ異なる実施の形態のマルチメディアカード１００は他のレジスタマップとインタラプトレベルのようなそれぞれ異なるハードウェア機能を有するので、デバイスドライバはそれぞれのマルチメディアカード１００に備えられている。デバイスドライバは特定マルチメディアカード１００に必要な制御信号を、オペレーティングシステムのデバイスドライバＡＰＩにより規定される制御信号に適する変換をしなければならない。オペレーティングシステムの特徴は、モデムドライバ、グラフィックドライバ及びオーディオドライバのようなそれぞれのデバイスのための、それぞれ異なるデバイスドライバとなる。従って、一実施の形態のマルチメディアカード１００がオーディオカード、モデム及びグラフィックカードの機能の組み合わせであれば、３個の異なるデバイスドライバはオペレーティングシステムによって代表として命令される。
【００３１】
マルチメディアプロセッサ１１０内の汎用プロセッサ２１０は、デバイスドライバ３４２との通信を制御するリアルタイムオペレーティングシステム３６０を実行する。汎用プロセッサ２１０はまた、一般タスク３７０を実行する。ベクトルプロセッサ２２０は、ベクトルタスク３８０を遂行する。
【００３２】
キャッシュサブシステム２３０（図１参照）は、汎用プロセッサ２１０とベクトルプロセッサ２２０とを、２つのシステムバスであるＩＯＢＵＳ２４０とＦＢＵＳ２５０に接続する。ＩＯＢＵＳ２４０は、ＦＢＵＳ２５０より遅い周波数で動作する。低速デバイスはＩＯＢＵＳ２４０に接続され、高速デバイスはＦＢＵＳ２５０に接続される。高速デバイスと低速デバイスとを分離させ、低速デバイスが高速デバイスの動作に悪影響を及ぼすことを防止する。
【００３３】
キャッシュサブシステム２３０はまた、ＩＯＢＵＳ２４０、ＦＢＵＳ２５０、汎用プロセッサ２１０及びベクトルプロセッサ２２０間の通信のためのスイッチボードの役割をする。キャッシュサブシステム２３０の具体例としては、バスとプロセッサ間の多数の同時的なアクセスが可能である。例えば、汎用プロセッサ２１０がＩＯＢＵＳ２４０と通信する時、同時にベクトルプロセッサ２２０はＦＢＵＳ２５０と通信することができる。本発明の一実施の形態において、スイッチボードとキャッシュ機能の組合せは、ＦＢＵＳ２５０とＩＯＢＵＳ２４０に対する直接マッピング技術を利用することにより達成される。特にＦＢＵＳ２５０及びＩＯＢＵＳ２４０上のデバイスは、適切なアドレスにおける標準メモリ読取り及び書込動作により、汎用プロセッサ２１０とベクトルプロセッサ２２０とによってアクセスできる。
【００３４】
図５は、本発明の一実施の形態のメモリマップを示したものである。メモリブロックＳ１０、すなわちバイト−アドレス(byte-address)０からアドレス４Ｍ−１までのアドレス空間はＲＯＭ２７０に占有される。メモリブロックＳ２０すなわち、バイト−アドレス４Ｍから８Ｍ−１までのアドレス空間はＳＲＡＭブロック２６０に占有される。メモリブロックＳ３０すなわち、バイト−アドレス８Ｍから７２Ｍ−１までのアドレス空間はローカルメモリ１２０に占有される。ＦＢＵＳ２５０上のデバイスは、バイト−アドレス７２Ｍから始まって、バイト−アドレス７７Ｍに拡張されるメモリブロックＳ４０にマッピングされる。メモリブロックＳ５０は将来の拡張のために用意したものである。ＩＯＢＵＳ２４０上のデバイスは、バイト−アドレス１２５Ｍから始まって１２８Ｍ−１まで拡張されるメモリブロックＳ６０にマッピングされる。メモリブロックＳ７０は将来の拡張のために用意したものである。メモリブロックＳ８０、すなわちバイト−アドレス２Ｇから４Ｇ−１までのアドレス空間は他のホストコンピュータデバイスで占有され、ローカルバスインターフェース２５５を通してアクセスされる。なお、ここにおいて、メモリアドレスに対する単位として使用された上記「Ｍ」と「Ｇ」は、１，０４８，５６７（すなわち１０２４＊１０２４）と、１，０７３，７４１，８２４（すなわち１０２４＊１０２４＊１０２４）を示すものである。
【００３５】
ＦＢＵＳ２５０（図１参照）は、図２に図示されたローカルメモリ１２０、ローカルバス１０５及びコンバーター（１３２、１３４、１４２、１４４、１４６、１４８、１５０）に対し、それぞれのインターフェースを提供するメモリコントローラー２５８、ＤＭＡコントローラー２５３、ローカルバスインターフェース２５５及びデバイスインターフェース２５２に接続される。
【００３６】
メモリコントローラー２５８は、ローカルメモリ１２０への読取り及び書込動作を制御する。本発明の一実施の形態において、メモリコントローラー２５８は、１バンク(bank)の同期（synchronous)ＤＲＡＭ（２個の１Ｍ×１６  ＳＤＲＡＭチップ）を制御するが、同期ＤＲＡＭは２４乃至２６個のアドレスビットと３２データビットを使用するように構成され、下記のような特徴を有する。
【００３７】
１）プログラム可能リフレッシュ率(programmable refresh rate) で遂行される“ＲＡＳ前ＣＡＳ（ＣＡＳ−before−ＲＡＳ）”リフレッシュプロトコル、
２）読取り−変更−書込(Read-Modify-Write) 動作を開示する部分的な記入、
３）内部バンクインターリーブ(internal bank interleave)。
【００３８】
メモリコントローラー２５８はまた、メモリ１２０とＦＢＵＳ２５０間の１：１周波数整合、マニュアル“両バンクプリチャージ(both bank precharge) ”、及びＦＢＵＳ２５０をさらによく活用するために配列されたアドレス及びデータを提供する。同期ＤＲＡＭは、８０ＭＨｚの周波数で効率的に駆動されるものと知られており、スタンダードファストページ(standard fast page)ＤＲＡＭ及びＥＤＯ(extended data out) ＤＲＡＭを利用することもできる。メモリコントローラー２５８と類似した機能を有する本発明の一実施の形態によるＤＲＡＭコントローラーは、当分野の公知のものである。
【００３９】
ＤＭＡコントローラー２５３は、ホストコンピュータの主メモリとマルチメディアプロセッサ２１０のローカルメモリ間の直接的なメモリアクセスを制御する。このようなＤＭＡコントローラーは、当分野の公知のものである。本発明の実施の形態において、メモリデータムーバー(mover) が含まれる。このメモリデータムーバーは、１つのメモリブロックから他のメモリブロックへのＤＭＡを遂行する。
【００４０】
ローカルバスインターフェース２５５は、ローカルバス１０５を通して、ホストコンピュータとの通信のために要求されるプロトコルを処理する。本発明の一実施の形態において、ローカルバスインターフェース２５５は、３３ＭＨｚ、３２ビットのＰＣＩバスにインターフェースを提供する。
【００４１】
デバイスインターフェース２５２は、マルチメディアプロセッサ１１０と、プリント回路基板上のコンバーター（１３２、１３４、１４２、１４４、１４６、１４８）のようなデバイスに、ハードウェアインターフェースを提供する。デバイスインターフェース２５２は、マルチメディアプロセッサ１１０の特定のアプリケーションのためにカスタマイズしてもよい。特に、デバイスインターフェース２５２は、特定デバイスまたはＩＣに対し、インターフェースのみを適用することもできる。デバイスインターフェース２５２内の典型的なユニットは、標準的なＡＤＣ、ＤＡＣまたはＣＯＤＥＣの接続のためのインターフェースを提供する。ＡＤＣ、ＤＡＣ及びＣＯＤＥＣインターフェースのための設計は、当分野で公知のものであるので、これ以上の説明はしない。利用できるその他のインターフェースとしては、デジタル電話のためのＩＳＤＮインターフェースやバスのためのインターフェース、このようなマイクロチャンネルバスとが含まれるが、これのみに制限されるものではない。マルチメディアプロセッサ１１０の一実施の形態において、デバイスインターフェース２５２は、要望する機能を遂行するためにプログラムできるＡＳＩＣである。
【００４２】
ＩＯＢＵＳ２４０は、バス２５０の動作周波数（８０ＭＨｚ）より低い周波数（４０ＭＨｚ）で動作する。ＩＯＢＵＳ２４０には、システムタイマー２４２、ＵＡＲＴ(universal asynchronous receiver transceiver) ２４３、ビットストリームプロセッサ２４５及び、インタラプトコントローラー２４８が接続される。システムタイマー２４２は、システムタイマー２４２に、対応するレジスタに書込動作を行うことによって選択される定期間隔で、プロセッサ２１０に割込みを行なう。本発明の一実施の形態において、システムタイマー２４２は、３個の独立的な１６ビットカウンターと、６個のプログラム可能カウンターモードとを備えた、標準インテル８２５４互換インターバルタイマー(standard intel 8254compatible interval timer) である。
【００４３】
ＵＡＲＴ２４３は直列インターフェースであって、個人用コンピューターの標準直列通信ポートを必要とするモデムやファクシミリに使用される１６４５０ＵＡＲＴ集積回路と互換である。
【００４４】
ビットストリームプロセッサ２４５は、入力または出力ビットストリーム上の特定機能を遂行する固定されたハードウェアプロセッサである。本発明の一実施の形態によると、ビットストリームプロセッサ２４５は、ＭＰＥＧコーディングまたはデコーディングの、最初または最終段階を遂行する。特に、ビットストリームプロセッサ２４５は、可変長さ(Huffman) コーディング及びデコーディングと、ジグザグフォーマットされたビデオデータのパッキング及びアンパッキング（unpacking)を遂行する。ビットストリームプロセッサ２４５は、汎用プロセッサ２１０及びベクトルプロセッサ２２０の制御下で、これと並列に動作する。プロセッサ２１０、２２０は、制御レジスタを通しビットストリームプロセッサ２４５と接続される。
【００４５】
インタラプトコントローラー２４８は、汎用プロセッサ２１０の割込制御を行ない、多数の割込優先順位をサポートする。マスクレジスタは、各割込優先順位がそれぞれマスクされるようにするために提供される。本発明の一実施の形態において、インタラプトコントローラー２４８はプログラム可能であり、ｘ８６基準の個人用コンピュータで、共通の標準インテル８２５９割込システムに利用できる。最高優先順位（レベル０）の割込みは、システムタイマー２４２に割当てられる。優先順位レベル１、２、３及び７は、それぞれ仮想記憶フレームバッファ(virtual frame buffer)、ＤＭＡコントローラー２５３及びデバイスインターフェース２５２、ビットストリームプロセッサ２４５、ローカルバスインターフェース２５５、及びＵＡＲＴ２４３に割当てられる。割込優先順位レベル４、５及び６は、本発明の実施の形態に割当てられない。優先順位レベル１の仮想記憶フレームバッファは、本発明の実施の形態に含まれるもので、標準ＶＧＡフレームバッファをエミュレートする。
【００４６】
図４はキャッシュサブシステムの構成図である。ＳＲＡＭブロック２６０は、汎用プロセッサ２１０に使用するための命令キャッシュ２６２とデータキャッシュ２６４、ベクトルプロセッサ２２０に使用されるための命令キャッシュ２９２とデータキャッシュ２９４との４個のメモリバンクに区分される。ＳＲＡＭブロック２６０は、それぞれのメモリバンクに対して区分されるタグ部４０６を含む。ＳＲＡＭブロック２６０は、読取りポート４４０及び書込ポート４３０とを備えたデュアルポートメモリ回路であって、ＳＲＡＭブロック２６０の同時読取り及び書込動作がサポートされる。キャッシュサブシステム２３０は、タグフィールド(tag field) ４７２を備えたＲＯＭキャッシュ２７０を含む。上述したとおり、ＲＯＭキャッシュ２７０は、汎用プロセッサ２１０及びベクトルプロセッサ２２０に頻繁に使用される命令及びデータを含んでいる。タグフィールド４７２は変更可能ではないが、個々のアドレスは無効のものとしてマークできるので、データまたは命令をＲＯＭ２７０のデータまたは命令の位置に使用されるメモリから持って来ることができる。
【００４７】
データパイプライン(data pipeline) ４１０は、キャッシュサブシステム２３０のデータスイッチボード機能を遂行する。データパイプライン４１０は、ＩＯＢＵＳ２４０、ＦＢＵＳ２５０、汎用プロセッサ２１０、ベクトルプロセッサ２２０及びＳＲＡＭブロック２６０間の、多数の同時データ通信経路を生成することができる。これと同様に、アドレスパイプライン４２０は、アドレスに対するスイッチボード機能を遂行する。図４の実施例において、ＩＯＢＵＳ２４０及びＦＢＵＳ２５０は、アドレス及びデータ信号に対する時間多重化を利用する。キャッシュ制御部２８０は、データパイプライン４１０とアドレスパイプライン４２０とに制御ラインを提供し、通信チャンネルを適切に構成する。
【００４８】
キャッシュサブシステム２３０の一実施の形態例おいて、すべての読取り及び書込動作を支持するため、トランザクション基準のプロトコル(transaction-based protocol)が利用される。汎用プロセッサ２１０、ベクトルプロセッサ２２０または、ＩＯＢＵＳ２４０及びＦＢＵＳ２５０上の種々のデバイスのようなキャッシュサブシステム２３０に接続されたどのユニットも、キャッシュサブシステム２３０に要求(request) することができる。このような要求は、デバイス確認コード(identification code;ID)と、要求されたメモリ位置のアドレスにより形成される。それぞれのユニットは、別個のデバイスＩＤを有し、キャッシュサブシステム２３０は、要求を形成するユニットのデバイスＩＤに基づいた要求に、優先順位を付与することができる。要求されたアドレスのデータが有効である場合、キャッシュサブシステムはデバイスＩＤ、トランザクションＩＤ(transaction identification code) 、アドレス及び要求されたデータに応答する。要求されたアドレスがＳＲＡＭブロック２６０やＲＯＭブロック２７０に含まれていなければ、キャッシュサブシステム２３０は、メモリアドレスのデータが検索される時、いくつかのクロック周期の間に、特定要求に応答することができなくなる。しかし、１番目に要求されたデータが検索される時キャッシュサブシステム２３０は、他のデバイスＩＤを備えた他のユニットからの２番目の要求を処理することができる。このように進行中の要求は、他のユニットからの連続される要求をブロックしない。またキャッシュサブシステム２３０は、単一周期の間、読取り要求または書込要求を同時に処理することができる。
【００４９】
上述したとおり、ＳＲＡＭブロック２６０は、４個のメモリバンクに分割される。ＳＲＡＭブロック２６０は読取りポート４４０と書込ポート４３０とのデュアルポートを有することによって、ある周期の間に１つの読取り要求と１つの書込要求とを受け入れることができる。ＳＲＡＭブロック２６０のＴＡＧ部４０６は、同時に発生する読取り及び書込要求を支援するため、２個の書込ポートを持たねばならない。従って、読取りポート４４０により使用されるアドレスと、書込ポート４３０により使用されるアドレスは、ヒット(hit) またはミス(miss)の条件のための内部キャッシュタグ(tag) と同時に比較できる。タグ部４０６は、別途の書込ポートを有することによって、書込ポート４３０で書込要求が遂行されることによって、適切なタグフィールドが変更される。
【００５０】
全体システムの制限によって、キャッシュサブシステム２３０は、ライトバック (write-back) またはライトスルー(write-through) キャッシュ手段と共に使用できる。さらに、本発明の実施の形態において、速度を更に増加させるため、キャッシュラインサイズは、データ幅の２倍とすることができる。本発明の一実施の形態において、“簿記(book-keeping)”の目的のために、それぞれのキャッシュラインが２個のベクトルを含むので、２個の有効ビット(valid bit) と２個の否定ビット(dirty bit) を割当てなければならない。ＳＲＡＭブロック２６０は、全面除去信号（global clear signal)が印加されると、すべての有効ビットを全面的に消去しなければならない。本発明の他の実施の形態において、それぞれの消去信号は、ＳＲＡＭブロック２６０内の４個のメモリバンクによりサポートされる。
【００５１】
図６は、データパイプライン４１０の一実施の形態を示した構成図である。キャッシュサブシステム２３０が、ＩＯＢＵＳ２４０、ＦＢＵＳ２５０、汎用プロセッサ２１０及びベクトルプロセッサ２２０のためのキャッシュシステムとスイッチボードの役割をするので、前記バスとプロセッサは、キャッシュが他のデバイスに使用される場合、キャッシュを通すかまたは直接的に通信できなければならない。プロセッサは、普通はバス上のデバイスより早いので、書込動作上のキャッシュを利用し、キャッシュライトバックシステムを許容し、データを適切なバスデバイスに位置させるようにする。これと同様に、プロセッサはデバイスに直接情報を要求するよりは、キャッシュから情報を要求する。キャッシュが、要求されたデータを含んでいなければ、プロセッサはキャッシュサブシステムに依存し、要求されたデータをキャッシュに出し、プロセッサでそのデータを提供する。しかし、キャッシュがビジー(busy)状態の場合は、プロセッサが直接にバスをアクセスすることができる。
【００５２】
データは、汎用プロセッサ２１０からＩ／ＯＭＵＸ６３０を通しＩＯＢＵＳ２４０に伝達される。ＩＯＢＵＳ２４０からのデータは、ＧＰ読取ＭＵＸ６２０を通し、汎用プロセッサ２１０に伝達される。データはキャッシュ読取ＭＵＸ６５０及びＧＰ読取ＭＵＸ６２０を通し、ＳＲＡＭブロック２６０またはＲＯＭブロック２０７から、汎用プロセッサ２１０に伝達される。データは、汎用プロセッサ２１０から、キャッシュ書込ＭＵＸ６１０を通しＳＲＡＭブロック２６０に伝達される。キャッシュ読取ＭＵＸ６５０、キャッシュ書込ＭＵＸ６１０、Ｉ／ＯＭＵＸ６３０及びＧＰ読取ＭＵＸ６２０は、一般的な回線多重化装置で可能であり、タイミング問題のために内部ラッチまたはレジスタを含むことができる。回線多重化装置の選択制御ライン（図示されない）は、キャッシュ制御部２８０（図４参照）の指示を受ける。データは、汎用プロセッサ２１０からキャッシュ書込ＭＵＸ６１０と、ＦＢＵＳＭＵＸ６４０とを通しＦＢＵＳ２５０に伝達される。データは、ＦＢＵＳ２５０からバッファ６６０、キャッシュ読取ＭＵＸ６５０及びＧＰ読取ＭＵＸ６２０を通し、汎用プロセッサ２１０に伝達される。このような機能を遂行するためバッファ６６０は、一般的なバッファ、ラッチまたはレジスタで可能である。
【００５３】
汎用プロセッサ２１０は、制御ライン２１２（図２参照）を通し、ベクトルプロセッサ２２０を制御することができる。汎用プロセッサ２１０とベクトルプロセッサ２２０間の直接的なデータ伝送は必ずしも必要ではないが、両プロセッサが共通メモリマップを共有するので、ＳＲＡＭブロック２６０または、どのような他のデバイスを通し、データが伝送することもできる。
【００５４】
ＲＯＭ２７０及びＳＲＡＭブロック２６０からのデータは、キャッシュ読取ＭＵＸ６５０とＩ／ＯＭＵＸ６３０を通しＩＯＢＵＳ２４０に伝達され、ＩＯＢＵＳ２４０からのデータは、キャッシュ書込ＭＵＸ６１０を通しＳＲＡＭブロック２６０に伝達される。ＩＯＢＵＳ２４０からのデータは、キャッシュ書込ＭＵＸ６１０及びＦＢＵＳＭＵＸ６４０を通しＦＢＵＳ２５０に送られ、ＦＢＵＳ２５０からのデータは、バッファ６６０、キャッシュ読取ＭＵＸ６５０及びＩＯＭＵＸ６３０を通しＩＯＢＵＳ２４０に伝達される。ベクトルプロセッサ２２０からのデータは、キャッシュ書込ＭＵＸ６１０及び、Ｉ／ＯＭＵＸ６３０を通しＩＯＢＵＳ２４０に送られ、ＩＯＢＵＳ２４０からのデータは、キャッシュ読取ＭＵＸ６５０を通しベクトルプロセッサ２２０に伝達される。本発明の実施の形態において、ベクトルプロセッサ２２０からＩＯＢＵＳ２４０へのデータの直接経路は、データパイプライン４１０の設計を簡単にするために削除される。ベクトルプロセッサ２２０の帯域幅はＩＯＢＵＳ２４０の帯域幅よりずっと大きいので、ベクトルプロセッサ２２０からＩＯＢＵＳ２４０への直接的な通信経路は、ベクトルプロセッサ２２０の処理時間を考えると非能率的になる。
【００５５】
ＳＲＡＭブロック２６０とＲＯＭ２７０とからのデータはキャッシュ読取ＭＵＸ６５０及びＦＢＵＳＭＵＸ６４０を経てＦＢＵＳ２５０に伝えられ、ＦＢＵＳ２５０からのデータはバッファ６６０及びキャッシュ書込ＭＵＸ６１０を経て、ＳＲＡＭブロック２６０に送られる。ＦＢＵＳ２５０からのデータは、バッファ６６０及びキャッシュ読取ＭＵＸ６５０を通し、ベクトルプロセッサ２２０に直接伝達される。データは、ベクトルプロセッサ２２０からキャッシュ書込ＭＵＸ６１０及びＦＢＵＳＭＵＸ６４０を通し、ＦＢＵＳ２５０に直接に伝達できる。ベクトルプロセッサ２２０からのデータは、キャッシュ書込ＭＵＸ６１０を通しＳＲＡＭブロック２６０に伝達され、ＳＲＡＭブロック２６０及びＲＯＭ２７０からのデータは、キャッシュ読取ＭＵＸ６５０を通しベクトルプロセッサ２２０に伝達される。
【００５６】
図７は、データパイプライン４１０の第２の実施の形態の構成を詳細に示したものである。図７の実施の形態の機能は、図６の実施の形態の機能と類似するので、両方の実施の形態の相異点に関してのみ説明する。しかし、各実施の形態における一般的な構成に関しては説明する。図７において、キャッシュ読取ＭＵＸ６５０は、キャッシュ読取ＭＵＸ７５０及びＭＵＸラッチ７５１に代替できる。バッファ６６０は、読取ラッチ７６０に代替され得、ＦＢＵＳＭＵＸ６４０は、ＦＢＵＳＭＵＸ７４０、ライトバック（ＷＢ）データラッチ７４１、メモリライトラッチ７４２及び、メモリライトラッチ７４３に代替できる。図７の実施の形態におけるラッチは、データパイプラインを接続することに利用される。キャッシュ書込ＭＵＸ６１０は、キャッシュ書込ＭＵＸ７１０、書込データラッチ７１２、アライナ７１３及びＩＯ書込ラッチ７１１に代替でき、Ｉ／ＯＭＵＸ６３０は、ＩＯ読取ラッチ７３１及びＩＯ読取ラッチ７１１に代替し得る。ＧＰ読取ＭＵＸ６２０は、ＩＯ書込ラッチ７２１及びマイクロキャッシュ７２２に代替し得る。
【００５７】
マイクロキャッシュ７２２は、メインキャッシュ、ＳＲＡＭブロック２６０及び、ＲＯＭ２７０とを、汎用プロセッサ２１０に接続する。マイクロキャッシュ７２２は、マイクロ命令キャッシュとマイクロデータキャッシュとに分けられ、それぞれは、タグ部８２２（図８に図示）、タグ比較器及び有効ビットを含む。マイクロキャッシュ７２２は、プリフェッチ(pre-fetch) バッファとして作動する。汎用プロセッサ２１０からの要求のアドレスは、まずマイクロキャッシュ７２２のタグ部８２２と比較される。マイクロキャッシュミス(miss)が発生すると（すなわち、マイクロキャッシュタグ８２２内にマッチがなければ）、要求のアドレスと他の制御情報がメインキャッシュに送られるようになる。マイクロキャッシュ７２２の構成を単純化するため、マイクロキャッシュ７２２内のタグをマッチさせる汎用プロセッサ２１０から書かれたデータが、マイクロキャッシュアドレスを無効化させることにより、書かれたデータがメインキャッシュに送られるようになる。このようなキャッシュの統一性(coherence) は、マイクロキャッシュ７２２上の複雑なライトバックまたはライトスルーデザインがなくても維持できる。
【００５８】
図８は、アドレスパイプライン４２０の一実施の形態の構成図である。ＦＢＵＳインターフェース８５０は、４個の記入アドレス列(entry address queue) 及びライトバックラッチから構成される。ＦＢＵＳインターフェース８５０は、命令キャッシュ２６２からの進行中の読取り、命令キャッシュ２９２からの進行中の読取り、データキャッシュ２９４からの書込要求及び、データキャッシュ２９４からのライトバック要求とを同時にサポートする。読取り動作要求のためのアドレスは、読取りアドレスＭＵＸ８２０に送られ、書込動作要求のためのアドレスは、書込アドレスＭＵＸ８１０に送られる。キャッシュ制御部２８０（図２参照）は、要求のデバイスＩＤに基づいて、汎用プロセッサ２１０、ベクトルプロセッサ２２０、ＩＯＢＵＳ２４０及びＦＢＵＳ２５０間の調整(arbitration) を行う。キャッシュ制御部２８０は、データパイプライン４１０及びデータパイプライン４２０の多様な回線多重化装置を構成し要求を処理する。アービトレーション方式は、それぞれのデバイスの重要性の推定に基づいて決定できる。汎用プロセッサ２１０は、優先順位が最も高い。上述したとおりキャッシュサブシステム２３０は、読取り及び書込動作を同時に遂行することができる。従って、別途の比較器が読取り及び書込要求のために必要である。比較器８１１は、書込アドレスＭＵＸ８１０からの書込アドレスを、書込タグポート（４０６−１）を通し受け入れたアドレスと比較し、現在要求された書込アドレスが、キャッシュにあるかを決定する。アドレスがキャッシュにある場合は、キャッシュはマッチングされるキャッシュ位置で新しいデータに更新する。アドレスがキャッシュにない場合は、アドレスとデータが使用されないキャッシュ位置、または一番最近にアクセスされたキャッシュ位置内のキャッシュに書き込まれる。結局、データはライトバックまたはライトスルーキャッシュ記述により、適切に直接的にマッピングされたデバイスに送られる。
【００５９】
比較器８２１は、読取アドレスＭＵＸ８２０からの読取り要求の読取りアドレスと、読取りタグポート（４０６−２）を通し受け入れたアドレスとを比較する。タグが読取りアドレスとマッチすると、タグと関連したデータがデータパイプライン４１０を利用する要求されるデバイスに送られる。上述した通り、トランザクションプロトコルが使用される場合、データはデバイスＩＤ、トランザクションＩＤ及び、要求されたアドレスと共に復旧する。タグが読取りアドレスとマッチしなければ、キャッシュサブシステム２３０は、適切に直接にメモリマッピングされたデバイスから要求されたデータを検索しなければならない。要求されたデータが検索(retrieve)されると、要求されたデータ、デバイスＩＤ、トランザクションＩＤ及び、アドレスが、要求されているデバイスに送られる。１番目の要求のためのデータが検索される間、キャッシュサブシステム２３０は、２番目の読取り要求をサービスすることができるので、キャッシュを必要とする２番目のデバイスは、１番目のデバイスにより妨害されない。
【００６０】
以上、本発明の実施の形態を説明したが本発明は上述した実施の形態に限定されるものではない。本発明の技術思想から外れない範囲内で、本発明が属する技術分野で通常の知識を有する者による、データパイプライン、スイッチボード、アドレスパイプライン、キャッシュサブシステム、回線多重化装置、ラッチ、バス、プロセッサが異なる他の構成のデジタル信号プロセッサは本発明に含まれる。
【図面の簡単な説明】
【図１】本発明の一実施例によるマルチメディア信号プロセッサの構成図。
【図２】本発明の一実施例によるマルチメディアカードの構成図。
【図３】本発明の一実施例によるマルチメディア信号プロセッサを含むシステムのプロセッサと、ソフトウェアまたはファームウェア間の関係を示す図面。
【図４】本発明の一実施例によるキャッシュサブシステムの構成図。
【図５】本発明の一実施例によるメモリマップを図示した図面。
【図６】本発明の一実施例によるキャッシュサブシステムに使用される第１データパイプラインの構成図。
【図７】本発明の一実施例によるキャッシュサブシステムに使用される第２データパイプラインの構成図。
【図８】本発明の一実施例によるキャッシュサブシステムに使用されるアドレスパイプラインの構成図。
【符号の説明】
１００：マルチメディアカード
１０５：ローカルバス
１１０：マルチメディアプロセッサ
１２０：ローカルメモリ
１３２、１３４、１４２、１４４、１４６、４８：コンバーター
１４０：集積回路
１５０：グラフィックコントローラー
２１０：汎用プロセッサ
２２０：ベクトルプロセッサ
２２２：インタラプトライン
２３０：キャッシュサブシステム
２４０：ＩＯＢＵＳ
２４２：システムタイマー
２４３：ＵＡＲＴ
２４５：ビットストリームプロセッサ
２４８：インタラプトコントローラー
２５０：ＦＢＵＳ
２５２、２５５：デバイスインターフェース
２５８：コントローラー
２６０：ＳＲＡＭブロック
２６２、２９２：命令キャッシュ
２６４：データキャッシュ
２７０：ＲＯＭ
２８０：キャッシュ制御部
３００：ホストコンピュータシステム
３１０：第１プロセッサ
３２０：主メモリ
３３０：アプリケーションプログラム
３４２：デバイスドライバ
３６０：オペレーティングシステム
３７０：一般タスク
３８０：ベクトルデータタスク
４１０：データパイプライン
４２０：アドレスパイプライン
４３０：書込ポート
４４０：読取りポート
４７２：タグフィールド
【図１】
0003954163.tif 000003
【図２】
0003954163.tif 000004
【図３】
0003954163.tif 000005
【図４】
0003954163.tif 000006
【図５】
0003954163.tif 000007
【図６】
0003954163.tif 000008
【図７】
0003954163.tif 000009
【図８】
0003954163.tif 000010