JP4426099B2 - 共有メモリを有するマルチプロセッサ装置 - Google Patents

共有メモリを有するマルチプロセッサ装置 Download PDF

Info

Publication number
JP4426099B2
JP4426099B2 JP2000534947A JP2000534947A JP4426099B2 JP 4426099 B2 JP4426099 B2 JP 4426099B2 JP 2000534947 A JP2000534947 A JP 2000534947A JP 2000534947 A JP2000534947 A JP 2000534947A JP 4426099 B2 JP4426099 B2 JP 4426099B2
Authority
JP
Japan
Prior art keywords
processor
data memory
assigned
data
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2000534947A
Other languages
English (en)
Other versions
JP2002506251A (ja
Inventor
ティモシー、ジェイ.バン、フック
ガルビン、エザール
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2002506251A publication Critical patent/JP2002506251A/ja
Application granted granted Critical
Publication of JP4426099B2 publication Critical patent/JP4426099B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

【0001】
【発明の属する技術分野】
本発明はプロセッサメモリの分野に関するものである。更に詳しく言えば、本発明は多数のプロセッサの間で共有される1つのメモリユニットを有するプロセッサアーキテクチャに関するものである。ここで開示する1つの実施形態では、割り込み型時間多重化共有アクセスが記述される。
【0002】
【従来の技術】
今日のコンピュータ技術は、種々の特殊化されたタスクを行うために専用メモリユニットを有する補助プロセッサに一般に依存している。とくにメディア処理においては、最新の消費者娯楽アプリケーションは、ビデオ、オーディオ、およびゲームで遊ぶための画像データ、映像および音声の記録、教育ソフトウエア等を処理するためにメディア・プロセッサを利用している。たとえば、それの一般的なメディアプロセッサに加えて、コンピュータは画像データを処理する画像プロセッサ、MPEGビデオデータを復号するMPEGビデオデコーダ、MPEGオーディオデータを復号するMPEGオーディオデコーダなどの特殊化されたプロセッサを含むことができる。それらの特殊化されたプロセッサ(すなわち、ユニット)のおのおのはそれ自身の専用論理およびメモリ資源を通常有する。したがって、各プロセッサはコンピュータにデータメモリと支援論理回路を付加する。
【0003】
先行技術の図1は、専用メモリユニットを有するプロセッサで構成されたコンピュータ装置の例を示す。このコンピュータ装置は、メインメモリ102と、専用画像メモリ104と、専用コプロセッサメモリ105との3つの別々のメモリユニットを含む。メインメモリ102はメインメモリコントローラ110を介して信号プロセッサ106に対してデータの高速アクセスを行う。専用画像メモリ104は画像メモリコントローラ114を介して画像プロセッサ112に対して画像データの高速アクセスを行う。また、専用コプロセッサメモリ105はコプロセッサメモリコントローラ118を介して、コプロセッサ116により用いられるデータに対して高速アクセスを行う。この装置の構成では、信号プロセッサ106はメインメモリ102に対して読出し/書込みアクセスを行うが、専用画像メモリ104または専用コプロセッサメモリ105に対してはアクセスしない。同様に、コプロセッサは専用コプロセッサメモリ105に対して読出し/書込みアクセスを行うが、メインメモリ102または専用画像メモリ104に対してはアクセスしない。同様に、画像プロセッサ112は専用画像メモリ104に対して読出し/書込みアクセスを行うが、メインメモリ102または専用コプロセッサメモリ105に対してはアクセスしない。
【0004】
不幸なことに、各処理ユニットのためのそれらの専用メモリやコントローラによって、プロセッサのコンピュータ負荷の変動と、集積化されるチップの貴重なダイの面積の非効率的な使用とのために資源の重複になる。たとえば、1つの瞬間に、ユーザーはコンピュータ上でムービーを見ることができる。映画の上映に含まれるビデオ処理にはビデオとオーディオの処理のみを伴う。この時間中は画像プロセッサはアイドルのままである。逆に、ユーザーはコンピュータでゲームができる。ゲームをするにはビデオ処理は通常要しない。画像プロセッサおよびオーディオプロセッサをゲームを行うためのデータの処理に含ませることができる。これは、プロセッサがアイドルすなわち動作していない時はそれの専用メモリが常に利用されていないことを意味する。使用されていないメモリはチップ内のダイの面積を通常占めるので、それがアイドル時間中にチップに重荷を負わせるためにそれはコストに直接はねかえる。
【0005】
更に、あるコンピュータのアプリケーションは、メインメモリまたは他の専用メモリユニットの1つに保存されているデータでプロセッサが動作することを要する。1つの特定のメモリユニットに格納されているデータを、その特定のメモリユニットをアクセスするプロセッサ以外の指定されたプロセッサが処理すべき時は、その指定されたプロセッサがアクセスするメモリユニットへそのデータを常に転送しなければならない。例えば、ある画像処理アプリケーションは、メインメモリまたは専用メモリに保存されているデータを画像プロセッサで処理することを要する。メインメモリまたは専用メモリに格納されているデータを画像プロセッサがアクセスできるようにするために、そのデータは専用画像プロセッサメモリへ転送またはコピーしなければならない。
【0006】
【発明が解決しようとする課題】
そうすると、必要なものはいくつかのプロセッサの間で共有でき、しかも各プロセッサに対して実時間で対応できる1つのメモリユニットを有する低価格プロセッサアーキテクチャである。
【0007】
【課題を解決するための手段】
本発明は、コンピュータ装置において複数のプロセッサの間でデータメモリを共有する方法および装置を提供することである。本発明の方法および装置では、データメモリをNビット帯域幅でアクセスするために複数のプロセッサがデータメモリに結合される。本発明はデータメモリをアクセスするためのアクティブ信号を複数のプロセッサから受ける。データメモリへのアクセスを要求するプロセッサはアクティブ信号を主張する。アクティブ信号を主張するプロセッサのうち、データメモリに対するメモリマスタとしてあるプロセッサが選択される。その後で本発明は、クロックサイクルにより定められるタイムスロット内でNビット幅のデータを選択されたプロセッサとデータメモリの間で転送する。所与のタイムスロット中にただ1つのプロセッサがデータメモリに対するアクセスを許される。本発明の好適な実施形態では、Nビット帯域幅は全てのプロセッサのデータ要求を受け容れるために十分広い。
【0008】
【発明の実施の形態】
この明細書に組み込まれて明細書の一部を構成している添付図面は本発明の実施形態を示し、説明と一緒に本発明の原理を説明する役割を果たす。
【0009】
本発明の以下の詳細な説明では、本発明を完全に理解できるようにするために数多くの特定の詳細を説明している。しかし、本発明はそれらの特定の詳細なしに実施できることが当業者には明らかであろう。他の例では、本発明の面を不必要にあいまいにしないように、周知の方法、手順、部品、および回路は説明しなかった。
【0010】
本発明は割り込み時間多重化共有メモリアクセス装置および方法を説明するものである。それらの装置および方法の例が添付図面に示されている。本発明の装置および方法では、複数のメモリクライアント(すなわち、プロセッサ)がデータメモリ(DMEA)に結合されている。それらのメモリクライアントはNビットワードを1クロックサイクル(すなわち、タイムスロット)中にデータメモリとの間で転送する。所与のタイムスロット中にはただ1つのプロセッサがデータメモリに対するアクセスを許される。本発明では、全てのプロセッサの挙動が決定論的である、すなわち、データ転送特性およびプロセッサのアクティブ状態が前もって知られている。それらの決定論的特性から、アクセス競争論理が発生されて実現される。好適な実施形態では、プロセッサがデータメモリをタイムスロット当り128ビットの帯域幅でデータメモリをアクセスする。
【0011】
図2はメモリおよびプロセッサアーキテクチャの簡単なブロック図を示す。プロセッサはプログラム可能なプロセッサ206またはコプロセッサとして分類できる。プログラム可能なプロセッサ206は汎用信号プロセッサとして機能する。このプロセッサは、コプロセッサ−0 208、コプロセッサ−1 210、コプロセッサ−2 212等、コプロセッサ−N 214まで番号をつけられた複数のコプロセッサにより増大されている。それらのコプロセッサは画像処理、浮動小数点処理、DMA転送、動き補償、およびその他多くのものなどの特殊化されたタスクを実行できる。バス204がプログラム可能なプロセッサ206とコプロセッサをデータメモリに結合する。
【0012】
図3は、本発明の好適な実施形態による、複数のプロセッサの間で共有されているデータメモリアーキテクチャの例のより詳細なブロック図を示す。データメモリ302はメモリコントローラ304を介してアクセスされる。メモリコントローラ304はデータメモリ302とプロセッサとの間のデータ転送をインタフェースする。メモリコントローラ304はデータメモリ302に対するアクセスをプロセッサの間で仲裁する。データメモリ302はスタティックRAM(SRAM)として実現されることが好ましい。メモリコントローラに結合されて、データメモリ302に対するアクセスを共有するプロセッサの例は信号プロセッサ(SP)306と、浮動小数点プロセッサ(FPU)308と、直接メモリアクセス(DMA)プロセッサ310と、画像プロセッサ(GP)312と、動き補償ユニット (MP)314と、量子化および離散コサイン変換プロセッサ(QP)316と、ビットストリームプロセッサ(BP)318とを含む。本発明の好適な実施形態によれば、プロセッサおよびデータメモリ302は1つの集積されたチップ(IC)上に配置されている。本発明ではコプロセッサのことを「プロセッサ」と呼ぶが、ここではそれを周知の用語「ユニット」と同義語であること、およびそれと互換して使用されることが当業者には疑いもなくわかるであろう。
【0013】
本発明は各種のやり方で実現することもできる。たとえば、プロセッサとデータメモリ302の少なくとも一方を異なるICs内で結合でき、周辺部品相互接続(PCI)バスなどのバスを介して結合される。また、本発明のデータメモリは、ダイナミックRAM(DRAM)、SDRAM等などの各種のRAMを用いることにより実現できる。
【0014】
図3をなお参照して、信号プロセッサ306は汎用アプリケーションを実行できる汎用プロセッサである。すなわち、信号プロセッサ306は典型的なコンピュータプログラムを実行できるプログラム可能なプロセッサである。本質的には、それは命令を保存するための命令メモリと、命令を解釈するための実行ユニットと、命令に従って論理演算および算術演算を実行するためのデータパスとで構成される。
【0015】
信号プロセッサ306は、画像、ビデオ、オーディオなどの特定の機能、およびその他の機能を実行するいくつかのコプロセッサすなわち機能ユニットによりそれの処理タスクが増大される。コプロセッサは信号プロセッサの処理負荷を軽減し、装置全体の性能を向上する。たとえば、DMAプロセッサ310はデータのブロックをデータメモリ302とメインメモリ320との間で転送する。それはデータに対してどのような算術演算または論理演算も実行しない。画像プロセッサ312は画素マップへの出力基本要素の走査変換と、表示スクリーン上で表示するために画素の移動、コピー、および修正のラスタ走査とを行う。また、浮動小数点プロセッサ308は加算、減算、乗算、除算などの浮動小数点算術演算を実行することによって信号プロセッサ306を補強する。
【0016】
MPEGビデオデータおよびオーディオデータ処理において信号プロセッサ306を支援するために、本発明は量子化および離散コサイン変換プロセッサ(QP)316と、ビットストリームプロセッサ(BP)318と、動き補償プロセッサ(MP)314とを利用する。MPEGビデオ処理においては、BP318は画像記号に割り当てられたコードワードまたはビットストリングを復号して、ホフマンコードの復号において画像を復号するために必要とされるビットの数を減少する。これは可変長復号またはエントロピー復号と呼ばれている。
【0017】
QP316は量子化および離散コサイン変換(DCT)を実行する。量子化処理では、QP316はアナログ信号をデジタルフォーマットに変換する。DCT処理では、QP316は画素値のブロックを独立係数に変換し、それにより画像信号のブロックを少数の係数に圧縮する。最後に、MP314はビデオセグメントの符号化を連続するフレームにおけるそれらのセグメントの変位に関連して行う。
【0018】
画像プロセッサ312および補償プロセッサ314を除く全てのプロセッサはデータメモリ302に対する読出し/書込みを行うことができる。画像プロセッサ312と補償プロセッサ314はデータメモリ302から読出すだけである。その代わりに、スクリーンに最終的に表示するためにそれらのコプロセッサはメインメモリ320またはフレームバッファなどのメモリユニットに書込む。
【0019】
図3における各プロセッサは内部バスおよびメモリコントローラ304を介してデータメモリ302に結合される。メモリコントローラはデータメモリに対するアクセスを制御する。DMAプロセッサ310はメインメモリ320にも結合され、メインメモリ320を直接アクセスできる。同様に、メインメモリ314またはフレームバッファに書込むために、画像プロセッサ312および動き補償プロセッサ314はそれらのメモリユニットに結合できる。
【0020】
それらのプロセッサはメモリコントローラを介してデータメモリを共有する。メモリコントローラはデータメモリとメモリクライアント(すなわち、プロセッサまたは機能ユニット)との間のインタフェースを行う。メモリコントローラはプロセッサの間のデータメモリに対するアクセスを仲裁もする。メモリクライアントはメモリコントローラを介してデータメモリに対する読出し要求と書込み要求を行う。メモリコントローラはメモリクライアントからのそれらの要求を適切な制御信号に変換し、データをメモリクライアントとデータメモリの間で送る。クライアントプロセッサがそれの要求をメモリコントローラへ送る。メモリコントローラ内の仲裁論理がそれらの要求を評価し、あるプロセッサをメモリマスタとして選択する。本発明はそれらのメディアコプロセッサを用いるが、決定論的特性を有するデータ通信プロセッサおよびネットワーキングプロセッサなどのその他のプロセッサが本発明においてコプロセッサとして使用するのに等しく適する。
【0021】
図4はプロセッサ406と4KBデータメモリ402をインタフェースするためのメモリコントローラ404の具体例のブロック図を示す。メモリコントローラ404はデータメモリ402とプロセッサ406との間に結合されている。両方とも128本の線で構成されている読出しデータバス408と書込みデータバス422がメモリコントローラ404をデータメモリ402に結合する。インタフェース回路内で、128ビットワイド読出しレジスタ(すなわち、バッファ)410が読出しデータバス408に結合され、ライトイネーブル信号424が主張されない時に、格納するための128ビットを1クロックサイクルでデータメモリ402から受ける。読出しレジスタ410に格納されているそれらの128ビットは、クロックサイクル当り8、9、12、16または32、64またはその他の数のビットなどの、クロックサイクル当り指定された数のビットでアクセスできる。クロックサイクル当り指定された数のビットは128ビットのサブセット(部分集合)である。この説明では、マルチプレクサ412が16ビットワードの例をレジスタから選択し、その選択されたワードを処理のために内部バス414を通じてプロセッサ406へ送る。次のクロックサイクル中に、マルチプレクサ412は他の16ビットワードを選択し、それをプロセッサ406へ送る。16ビットワードに対するアクセスはある装置で採用されているエンディアン(endian)順に従って順次起きることに注目すべきである。
【0022】
エンディアン順はメモリ装置で利用されているバイト順序付けモードを指す。128ビットワードなどのより大きいデータサイズ内でのバイト順序付けは大エンディアン順または小エンディアン順で構成できる。エンディアン順は多重バイトデータ内のバイト0の場所を指す。本発明のデータメモリなどのメモリ装置は大エンディアン装置または小エンディアン装置として構成できる。たとえば、小エンディアン装置では、バイト0は最下位(すなわち、最も右側)のバイトである。他方、大エンディアン装置では、バイト0は最上位(すなわち、最も左側)のバイトである。本発明では、模範的なプロセッサが二重ワードアクセスのためにバイトアドレッシングを用いる。それは8で除すことができるバイト境界上に整列させられる(すなわち、0、8、16、...56)。したがって、プロセッサ内のレジスタにロードされた64ビット二重ワードが大エンディアンモードまたは小エンディアンモードで整列させられる。小エンディアンモードプロセッサでは抽出すべきベクトルに対するスタートバイトは第2のベクトルレジスタ内に存在する。これとは逆に、大エンディアンモードプロセッサではスタートバイトは第1のベクトルレジスタ内に存在する。
【0023】
なお図4を参照して、128ビットのサブセットを転送するプロセスは、読出しレジスタ410内の128ビットの全てがプロセッサ406にロードされるまで続行する。したがって、プロセッサ406はクロックサイクル当り16ビットのデータを8クロックサイクルにわたって受ける。この構成では、実時間性能を確実にするためにプロセッサは8クロックサイクルごとにデータをただ1回アクセスする。この実施形態は128ビットのバス幅と16ビットワードアクセスを利用するが、バス幅およびアクセスワードサイズはプロセッサの他の種々の実時間要求に合うように適合可能であることを理解すべきである。
【0024】
図4をまだ参照して、プロセッサ406からデータメモリ402に対する書込み動作は類似のやり方で進む。通常は、クロックサイクルごとにプロセッサにより発生されるデータは128ビットのバス幅よりはるかに少なく、通常は8、9、12、16、32または64ビットなどの128ビットのサブセットである。この実施形態では、プロセッサ406はデータを処理し、クロックサイクルごとにデータメモリ402に保存すべき典型的な16ビットデータを発生する。制御回路内では、デマルチプレクサ418が16ビットデータをプロセッサ406から内部バス416を介して受け、その16ビットワードをメモリコントローラ404内の126ビット書込みレジスタ420内のワードスロットの1つに送る。次のクロックサイクル中は、他の16ビットワードがプロセッサ406により発生され、それはデマルチプレクサ418を介して書込みレジスタ420にロードされる。16ビットワードは、好ましくはデータメモリのエンディアン順に応じて順次、128ビットレジスタ420に格納される。この処理は、128ビット書込みレジスタ420が一杯になるまで8クロックサイクルの間継続する。その後で、ライトイネーブル信号424が主張された時に書込みレジスタ420の内容がそれの128ビットの有用なデータとともにデータメモリ402に書込まれる。このようにして、プロセッサは8クロックサイクルごとにデータメモリをただ1回アクセスする必要がある。メモリコントローラ404を別々のユニットとして示しているが、データメモリ402またはプロセッサ406に組み込むように容易に適合できることに注目すべきである。
【0025】
典型的なプロセッサ406はデータメモリに対する読出し/書込みを行うことに注目すべきである。しかし、以下に述べるように全てのプロセッサがデータメモリ402に対する読出し/書込みを行う必要があるわけではない。それらのプロセッサでは、メモリコントローラ404のうちデータメモリ402から読出し、またはデータメモリに書込むために必要な部分のみを実現できる。
【0026】
好適な実施形態では、本発明のデータメモリはアドレス変換なしに動作する。しかし、データメモリは周知のアドレス変換アルゴリズムを用いるアドレス変換で実現することもできる。
【0027】
これまで説明した共有されるメモリアーキテクチャは、共有されているメモリをアクセスする各プロセッサの実時間性能要求を確保するために、プロセッサの間のアクセス仲裁の仕組みを要する。本発明は、各プロセッサの全ての帯域幅要求の和よりも広い共有されているメモリに対するアクセス帯域幅をプロセッサに提供することにより、この実時間目的に合致する。特に、データメモリに対するアクセスは、プロセッサの決定論的特性から得られた仲裁の仕組みに従って、種々のプロセッサの間でアクセス時間当り十分な帯域幅で時間多重化される。
【0028】
プロセッサの間の時間多重化されたアクセスは調整でき、かつ優先順位づけできる。その理由は全てのプロセッサの挙動が決定論的である、すなわち、プロセッサのデータ転送特性およびアクティブ状態が前もって知られているからである。まず、本発明における各プロセッサの実時間処理要求が決定論的である。すなわち、実時間処理のために求められる各プロセッサの帯域幅をプロセッサに対する目標データ転送速度を基にして計算できる。表1は図3に示されている各コプロセッサのために求められる帯域幅を示す。それらのピーク速度は、応用できる仕様または規格の要求から後ろ向きに働き掛けることによって得られる。
【表1】
Figure 0004426099
【0029】
第2に、本発明は、全てのコプロセッサが同時に動作状態にあることはない、という他の決定論的特性を利用する。たとえば、あるコプロセッサはMPEGで使用されるが、他のあるコプロセッサは画像で使用され、更に別のコプロセッサはオーディオで使用される。しかし、全てのコプロセッサが始終使用されているわけではない。たとえば、MPEGビデオ処理では、BP、QPおよびMPはアクティブであり、GPおよび浮動小数点プロセッサはアクティブでない。MPEGオーディオでは、BPとFPUプロセッサがアクティブであり、他のプロセッサはアクティブでない。画像処理では、画像プロセッサおよびFPUのみがアクティブである。表2はそれらのメディア処理のための種々のコプロセッサのアクティブな状態を要約したものである。
【表2】
Figure 0004426099
【0030】
第3に、各プロセッサのアクセスパターンは極めて規則的である。その理由はプロセッサがデータストリームを、線形的かつ近接するやり方で処理するからである。たとえば、MPEGビットストリームの圧縮を解除する際には、BPは、データブロックの第1のバイトでスタートしてそのブロック中の全てのバイトにわたって、線形的なやり方でデータをアクセスする。同様に、QPは8×8DCTデータブロックを線形的なやり方でアクセスする。
【0031】
最後に、FPUはSP命令ストリームを共有していることが他のコプロセッサとは異なる。すなわち、それはそれのデータを負荷から獲得し、SP命令ストリームを通じて格納する。データメモリ内のデータをアクセスするためのアドレスはSPにより供給される。したがって、FPUがデータメモリに対する別々のデータ関連を有するとしても、データメモリの観点からは、データメモリのアクセスにおいてSPタイムスロットを共有するように見える。
【0032】
それらの所見を基にして、本発明はアクセス当りはるかに広いデータメモリの帯域幅に各プロセッサアクセスを行う。プロセッサの次のアクセスまでアクセスされた全てのデータをプロセッサが処理できるようにするために十分大きいように、アクセス当りのデータメモリ語帯域幅のサイズは適合させられる。本発明の好適な実施形態では、データメモリアクセスの帯域幅クロックサイクル当り128ビットである。データアクセスサイズの個々の大きさ(granularity)のこの増大によってデータメモリに対する各プロセッサに対する時間多重化されたアクセスが可能にされる。
【0033】
128ビットの広いアクセス帯域幅は、8クロックすなわち8状態のより大きいサイクル内の単一のクロックサイクルでプロセッサにとって受け容れることができる。本発明の好適な実施形態では、状態マシンの形のカウンタがサイクル当り8つのクロック(すなわち、状態)を繰り返し生ずる。それらのクロックは本発明における構成要素のタイミングおよび動作を制御および調整するために用いられる。種々のクロックサイクルを発生するためにカウンタすなわち状態マシンを用いることは周知の技術である。本発明は8状態カウンタを用いているが、サイクル当り他の種々の数のクロックすなわち状態に容易に合わせることができる。
【0034】
8状態すなわち8クロック内の個々のクロックサイクルに対するアクセスは、データメモリをアクセスしているプロセッサの経験的な挙動を基にして仲裁の仕組みに従って調整される。本発明における全てのプロセッサのうち、DMAプロセッサはデータのブロックをメインメモリとデータメモリの間で動かすことで独特である。一実施形態では、メインメモリは通常はチップの外部のDRAMであり、データメモリはチップに組み込まれているSRAMであるので、メインメモリとデータメモリの間のデータの転送は、プロセッサとデータメモリとの間のデータ転送より通常ははるかに遅く、かつ仲裁アクセスパターンに従うことがはるかに少ない。たとえば、MPEG復号は、BPまたはQPがデータを処理できるようにするために、DMAプロセッサが圧縮されたデータのブロックをデータメモリへ動かすことを要求できる。
【0035】
DMAプロセッサの他の重要な特性は、他の全てのプロセッサを排除してデータメモリに対するアクセスを無制限に独占しないことである。これはコンピュータアーキテクチャにおけるDMAの目的そのものを基にしている。それは他のプロセッサにより使用するデータを転送することである。他のプロセッサはそれが使用するデータを転送するためにDMAに依存し、処理できるより多くのデータを必要としない。したがって、DMAプロセッサはこの最低レートを満たすためにデータを転送することを必要とするだけである。したがって、この決定論的自己制約環境においては、他のプロセッサがデータメモリをアクセスすることを排除すること無くDMA転送を制御できる。
【0036】
それらの理由から、本発明の好適な実施形態では、最高優先順位のメモリマスタはDMAプロセッサである。それは他の全てのプロセッサに先んじる。したがって、データメモリバスに対して仲裁されたならば、DMAプロセッサは所与のタイムスロットすなわちクロックサイクルの間動作を止めることはない。
【0037】
他方、プログラム可能な信号プロセッサはかなり任意のプログラムを通常実行する。通常のマイクロプロセッサに非常に似て、信号プロセッサは種々のサイズのデータの読出し/書込みを行う。最大帯域幅は既知であるが、信号プロセッサのアクセスパターンは信号プロセッサで実行されているソフトウエアに大きく依存するために、信号プロセッサのアクセスパターンは予測できない。したがって、信号プロセッサはデフォールトのメモリマスタであって、他のプロセッサがアクティブでない時はアイドルタイムスロットをとる。
【0038】
したがって、アクセスタイムスロットを種々のプロセッサに分配するアクセスのやり方では、信号プロセッサはアイドルタイムスロットすなわちタイムスライス中に、従来のロードおよび格納のようにデータをロードまたは格納する。例えば、他のプロセッサデータメモリをアクセスする時に信号プロセッサがロード命令または保存命令を実行することを試みる時は、停止条件が常に発生されて、アイドルスロットが始まるまで信号プロセッサがデータメモリをアクセスすることを阻止する。すなわち、信号プロセッサと他のプロセッサの間で衝突が起きると、信号プロセッサは動作を停止して次に使用できる衝突のないスロットでデータメモリをアクセスする。したがって、固定された時間要求を持つ他のプロセッサより低い優先順位が信号プロセッサに与えられる。
【0039】
図5はプロセッサの間でデータメモリに対するアクセスを仲裁するのに含まれているステップの流れ図を示す。まずステップ502で、典型的な状態マシンカウンタを用いてタイムスロットが発生される。その後で各プロセッサのアクティブ状態、すなわち、そのプロセッサがデータメモリをアクセスすることを必要とするかどうか、を判定するために各プロセッサがテストされる。DMAユニットがアクティブであることがステップ504で判定されると、ステップ508でDMAユニットが共有されているデータメモリをタイムスロットの間アクセスすることを許される。ステップ506に記載されているように他の全てのプロセッサは停止させられる。ステップ510に記載されているようにDMAユニットがアクティブでなくて、1つまたは複数のコプロセッサがアクティブであるとすると、ステップ512に記載されているように、そのタイムスロットの間設定されている優先順位に従ってアクティブなコプロセッサから1つのコプロセッサが選択される。ステップ508に記載されているように、選択されたコプロセッサはその後でデータメモリをアクセスすることを許される。ステップ514に記載されているように、この時間中は、信号プロセッサは停止させられる。ステップ516に記載されているように、他のコプロセッサがアクティブでなければ、信号プロセッサはデフォールトメモリマスタになって、ステップ508に記載されているように、そのコプロセッサはデータメモリをアクセスすることを許される。ステップ518および502に記載されているように、プロセスは次のタイムスロットの間も繰り返される。
【0040】
図6はデータメモリマスタのための典型的なタイムスロット割り当ての仕組みと、DMA割り込みの場合の種々のアクセスパターンとを示す。タイムスロット割り当ては0から7までの8つのタイムスロット602〜616で構成されている。この実施形態では、状態マシンを通じて実現されているスロット指名子が0から7までのカウンタ値と、3つのアクセスパターン例618、620および622とを基にしてプロセッサのうちからデータメモリマスタを選択する。アクセスパターン618、620および622はDMAプロセッサ(DMA)のためのスロットと、デジタルプロセッサ読出し(すなわち、画像プロセッサ読出し)(DP R)のためのスロットと、ビットストリームプロセッサ読出し(BP R)のためのスロットと、ビットストリームプロセッサ書込み(BP W)のためのスロットと、量子化プロセッサ書込み(QP W)のためのスロットと、量子化DCTプロセッサ読出し(QPC R)のためのスロットと、量子化プロセッサ読出し(QPQ R)のためのスロットとで構成されている。
【0041】
図6におけるカウンタ値0〜7は8つのタイムスロット602〜616に対応する。この割り当ての仕組みでは、3状態の状態マシンが現在使用中のスロットパターンを見失わないようにする。QP、BPおよびDPOは、アクセスパターン618、620および622に示すようにカウンタがそれのそれぞれのスロットを指す時に、データメモリを使用する。「(DMA)」スロットはDMA要求をアクセスパターン618、620および622の1つに同期させるために用いられる。DMAプロセッサが割り込みすると、スロット指名子が3つのパターンの内の1つに切り替わってDMAプロセッサをそれのスロットに入れることができる。唯一の停止は、他の全てのマスタが停止させられる時にDMAプロセッサがスタートしている間である。停止はDMAワード整列に応じて2クロックサイクル以上のことがある。
【0042】
図6をなお参照して、スタートすると、DMAプロセッサはQP Wスロットを要する。この場合には、QP WはDP Rスロットを共有する。その理由は、QP Wがあまり頻繁でない、最大で1/16、であるからである。DPはデータメモリに対して3/16のアクセスを行い、16サイクルごとに4サイクルの間停止させることができる。画像処理のみモードでは、QPが非アクティブであるのでDPは停止させられない。スロットがそれら自身の所有者により使用されていない時にSPアクセスとFPUアクセスのためにそれらのタイムスロットはフリーであることに注目すべきである。アクセスパターンと状態が与えられると、メモリコントローラに、種々のプロセッサのうちでデータメモリに対するアクセスを調整する制御論理を実現することを容易に行わせることができる。
【0043】
本発明の一実施形態では、図6に示されている仲裁仕組みの例は、データメモリに対するアクセスを調整するために実現される。コントローラはメモリコントローラ内にインタフェース回路と一緒に存在する。代わりの実施形態では、コントローラはメモリコントローラの外部で実現される。いずれの場合にも、コントローラはデータメモリに対するアクセスを求めているアクティブなプロセッサから信号を受ける。応答して、コントローラは、選択されるプロセッサのためのイネーブル信号を発生することにより、所与のタイムスロットの間データをアクセスするプロセッサを選択する。このようにして選択されたプロセッサはその後でそのタイムスロットにわたってデータメモリをアクセスすることを許される。
【0044】
図7はデータメモリ(DMEM)702を含んでいるデータメモリブロックと、本発明の一実施形態によるプロセッサに対する典型的なインタフェースを示す。読出しインタフェースのために、DMEM802は複数のポートを通じてプロセッサと通信する。各プロセッサに1つのポートが好ましい。ポートは128ビット読出しレジスタおよびマルチプレクサで構成されている。マルチプレクサは128ビットのサブセットを1クロックサイクル中に読出しレジスタから受け、かつ複数のクロックサイクルにわたって128ビット全部をプロセッサへ送る。たとえば、BP DATAポートが1クロックサイクルごとに32ビットを読出しレジスタ804から受け、それらをビットストリームプロセッサへ送る。次のクロックサイクルでは、読出しレジスタ804内の次の32ビットがマルチプレクサ806により選択され、そのビットストリームプロセッサへ送られる。このようにして、読出しレジスタ804内の128ビット全体が4クロックサイクルのうちにプロセッサへ送られる。同様に、DP DATAポートはクロックサイクルごとに32ビットのデータを受け、それらを動き補償プロセッサまたは画像プロセッサへ送る。それらのプロセッサは1つのポートを共有している。QPC DATAポートはクロックサイクルごとに12ビットのデータをそれの対応する読出しレジスタ812からマルチプレクサ814を介して受け、それをDCT処理のためにQPへ送る。QPQ DATAポートはクロックサイクルごとに8ビットを受け、それらを量子化処理のためにQPへ送る。DMA DATAポートはクロックサイクルごとに32ビットを受け、それらをDBUS828を介してDMAユニットへ送る。SP DATAポートおよびFPU DATAポートが1つのポートを共有し、ロード整列ユニットが整列された64ビットデータを、データメモリから受けられた128ビットのデータから取り出した後でクロックサイクルごとに64ビットを受ける。整列ユニットは64ビットを取り出すので、それらのポートはマルチプレクサを利用しない。その後でデータロード/格納バス830を通じてSPまたはFPUへ送られる。
【0045】
データメモリに対して書込みインタフェースを行うために、DMEM802は複数のポートを通じてプロセッサとも通信する。あるプロセッサがマルチプレクサを通じて128ビット書込みレジスタに書込む。このプロセスでは、128ビットの小さい部分のみが書込まれる。たとえば、BP DATAポートがクロックサイクルごとに12ビットのデータをビットストリームプロセッサから受け、それらを128ビット書込みレジスタ832へ送る。QP DATAポートがクロックサイクルごとに9ビットをQPプロセッサから受け、それらを128ビット書込みレジスタ834へ送る。DMA DATAがクロックごとに32ビットをDMAユニットから受け、それらをそれの128ビット書込みレジスタ836へ送る。SP DATAポートおよびFPU DATAポートが1つの書込みポートを共有し、64ビットをロード/格納バス830を介してSPまたはFPUから64ビットを受ける。格納整列ユニット844が格納のために64ビットを整列し、整列させられた64ビットを書込みレジスタ838へ送る。そのレジスタは128ビット書込みレジスタ838を一杯にするために64ビットを二重にする。それら4つの書込みレジスタのうちで、マルチプレクサ842はレジスタを選択し、選択されたレジスタの内容をデータメモリ802へ送る。
【0046】
読出し/書込み動作はアドレッシングユニットと同期して行われる。アドレッシングユニットはDMEM内のアドレスを選択して書込みまたは読出す。この実施形態ではDMEMは256×128ビットアレイ、全部で4KB、として編成される。256の128ビットDMEMワードをアドレスするために、アドレス線はDMEMから256のアドレスの1つを選択するために8ビット幅である。各アクティブプロセッサにより求められるデータメモリ内のデータのアドレスはマルチプレクサ846により選択される。選択されたアドレスはその後でアドレスレジスタ848に保持され、正しい読出し動作および書込み動作を可能にするために、アドレス信号がDMEM802に加えられる。
【0047】
この実施形態では、データメモリ内のデータはバイトアドレス指定可能である。すなわち、128ビットデータメモリ内の任意のバイトを選択可能である。16進数での信号「FFFF」は128ビットデータ中の16バイトの全てを選択すべきことを指示する。DMA WEはDMAユニットに対するライトイネーブルを指示し、 SP WEはSPに対するライトイネーブルを指示する。SPユニットおよびDMAユニットに対するバイトアドレッシングは指定されたバイトの選択を可能にする。
【0048】
本発明の種々のプロセッサのうちの1つのデータメモリは、各プロセッサに専用メモリ資源を有するものよりも費用効率が十分に高い。まず、共有される構成では、プロセッサは集積化されたチップ(IC)のメモリ資源をより多く使用する。すなわち、全てのプロセッサに対して1つのデータメモリを利用することにより、専用メモリが存在しないためにデータメモリはより多くの回数使用される。また、メモリまたはRAMなどのIC資源は大きなサイズでは効率が高くなる傾向があるので、共有されるメモリ構成によって全てのプロセッサに対してより大きいデータメモリを使用できる。その理由は、メモリまたはRAMなどのIC資源は大きなサイズで費用効率がより高くなる傾向がある。更に、本発明以外では専用メモリアーキテクチャにおける各プロセッサのためのアドレス復号器および検出増幅器などの回路を支持するために求められる型スペースが節約されるために、より大きいメモリサイズが可能である。
【0049】
以上、本発明、すなわち、割り込み時間多重化共有メモリアクセス装置および方法について説明した。本発明を特定の実施形態について説明したが、本発明はそのような実施形態に限定されるものと解すべきでなく、以下の特許請求の範囲に従って解すべきである。
【図面の簡単な説明】
【図1】 専用メモリユニットを有するプロセッサで構成されている従来のコンピュータ装置を示す図。
【図2】 本発明の好適な実施の形態による複数のプロセッサの間で共有されている典型的なデータメモリアーキテクチャのブロック図。
【図3】 メモリクライアントプロセッサのうちで1つのデータメモリを共有するコンピュータ装置における典型的なメディアプロセッサのブロック図。
【図4】 プロセッサとデータメモリをインタフェースするための典型的なメモリコントローラのブロック図。
【図5】 プロセッサのうちでデータメモリに対するアクセスの仲裁に含まれているステップの流れ図。
【図6】 データメモリに対する典型的なタイムスロット割り当てと、DMA割り込みの場合における種々のアクセスパターンを示す図。
【図7】 本発明の一実施形態に従うデータメモリを含んでいるデータメモリブロックと、プロセッサに対する典型的なインタフェースを示す図。
【符号の説明】
202、302、402 データメモリ
204 バス
206 プログラム可能なプロセッサ
208、210、212、214 コプロセッサ
304 メモリコントローラ
306 信号プロセッサ
308 浮動小数点プロセッサ
310 DMAプロセッサ
312 画像プロセッサ
314 動き補償プロセッサ
316 量子化および離散コサイン変換プロセッサ
318 ビットストリームプロセッサ
320 メインメモリ
412 マルチプレクサ
418 デマルチプレクサ
406 プロセッサ。

Claims (22)

  1. メモリコントローラ(304)を有するコンピュータ装置において、複数のプロセッサ(306−318)の中でデータメモリ(302、802)に対するアクセスを共有する方法であって、
    前記複数のプロセッサは、
    信号プロセッサ(306)と、
    メインメモリ(320)に直接アクセスするためのDMAプロセッサ(310)を含む、複数のコプロセッサ(308−318)と
    を含み、
    複数のプロセッサからデータメモリアクセスするため、プロセッサ当り1つのアクティブ信号を前記メモリコントローラが受信するステップであって、Nビット幅のデータワードをデータメモリへ転送し、またはデータメモリから転送するために、データメモリは選択されたプロセッサからアクセスできるステップと、
    前記アクティブ信号を前記データメモリに対して主張する複数のプロセッサの中でメモリマスタとして一つのプロセッサを前記メモリコントローラが選択するステップであって、
    DMAプロセッサがアクティブである場合には、DMAプロセッサをメモリマスタとして選択し、
    DMAプロセッサがアクティブでない場合には、複数のコプロセッサから前記コプロセッサのうちでアクティブなコプロセッサをメモリマスタとして選択し、
    DMAプロセッサおよび他のコプロセッサのいずれもがアクティブでない場合には、信号プロセッサをメモリマスタとして選択すること
    をさらに含むステップと、
    選択されたプロセッサとデータメモリとの間でNビット幅のデータワード前記メモリコントローラが転送するステップと、
    を含み、
    前記転送するステップは、
    (a)クロックサイクル(0−7)により定められたタイムスロット(602−616)内で、Nビット幅のデータワードを前記データメモリからNビット幅のレジスタ(804、808、812、816、820)に前記メモリコントローラがロードするステップと、
    (b)複数のクロックサイクルにわたって全てのNビットがレジスタから読出されるまで、クロックサイクル中にNビット幅のデータワードのサブセットをマルチプレクサ(806、810、814、818、822)を介して、前記選択されたプロセッサが繰り返し読出すステップと、
    をさらに含むことを特徴とする方法。
  2. 前記転送するステップは、
    複数のクロックサイクルにわたって全てのNビットがレジスタにロードされるまで、クロックサイクル中にNビット幅のデータワードのサブセットを選択されたプロセッサからNビット幅のレジスタ(804、808、812、816、820)に転送するステップと、
    該レジスタ(804、808、812、816、820)内のNビット幅のデータワード前記タイムスロットで前記データメモリに書込むステップと、
    さらに含むことを特徴とする請求項1記載の方法。
  3. 前記コプロセッサ(308−318)は、画像プロセッサ(312)と、ビットストリームプロセッサ(318)と、量子化および離散コサイン変換を行うための量子化プロセッサ(316)と、浮動小数点プロセッサ(308)とを含むことを特徴とする請求項1または2のいずれかに記載の方法。
  4. 前記コプロセッサ(303−318)は、前記データメモリに対する読出しアクセスを画像プロセッサ(312)と共有する動き補償プロセッサ(314)を更に含むことを特徴とする請求項3に記載の方法。
  5. Nは128であることを特徴とする請求項1乃至4のいずれかに記載の方法。
  6. タイムスロットは状態マシンカウンタにより生成されることを特徴とする請求項1乃至5のいずれかに記載の方法。
  7. 前記状態マシンカウンタはM個の状態のサイクルを、0からM−1まで、繰り返し生成し、各タイムスロットに対して1つの状態があることを特徴とする請求項6に記載の方法。
  8. Mは8であることを特徴とする請求項7に記載の方法。
  9. 8つの状態がメモリマスタ選択パターン(618)を定め、
    状態0がDMAプロセッサに割り当てられ、
    状態1が、データメモリから読出すために画像プロセッサに割り当てられ、
    状態2が、データメモリから読出すためにビットストリームプロセッサに割り当てられ、
    状態3が、データメモリに書込むためにビットストリームプロセッサに割り当てられ、
    状態4が、データをデータメモリへ転送し、かつデータメモリから転送するためにDMAプロセッサに割り当てられ、かつデータメモリに書込むために量子化プロセッサに割り当てられ、DMAプロセッサは量子化プロセッサに先じ、
    状態5が、データメモリから読出すために画像プロセッサに割り当てられ、データメモリに書込むために量子化プロセッサに割り当てられ、画像プロセッサは量子化プロセッサに先じ、
    状態6が、データメモリから読出すために離散コサイン変換を行うための量子化プロセッサに割り当てられ、
    状態7が、データメモリから読出すために量子化を行うための量子化プロセッサに割り当てられる、
    ことを特徴とする請求項8に記載の方法。
  10. 8つの状態がメモリマスタ選択パターン(620)を定め、
    状態0が、データメモリから読出すために画像プロセッサに割り当てられ、
    状態1が、データをデータメモリへ転送し、かつデータメモリから転送するためにDMAプロセッサに割り当てられ、
    状態2が、データメモリから読出すためにビットストリームプロセッサに割り当てられ、
    状態3が、データメモリに書込むためにビットストリームプロセッサに割り当てられ、
    状態4が、データメモリから読出すために画像プロセッサに割り当てられ、かつデータメモリに書込むために量子化プロセッサに割り当てられ、画像プロセッサは量子化プロセッサに先んじ、
    状態5が、データをデータメモリへ転送し、かつデータメモリから転送するためにDMAプロセッサに割り当てられ、データメモリに書込むために量子化プロセッサに割り当てられ、DMAプロセッサは量子化プロセッサに先んじ、
    状態6が、データメモリから読出すために離散コサイン変換を行うための量子化プロセッサに割り当てられ、
    状態7が、データメモリから読出すために量子化を行うための量子化プロセッサに割り当てられる、
    ことを特徴とする請求項8に記載の方法。
  11. 8つの状態がメモリマスタ選択パターン(622)を定め、
    状態0が、データメモリから読出すために画像プロセッサに割り当てられ、
    状態1が、データをデータメモリから読出すためにビットストリームプロセッサに割り当てられ、
    状態2が、データをデータメモリへ転送するため、およびデータメモリからデータを転送するためにDMAプロセッサに割り当てられ、
    状態3が、データメモリに書込むためにビットストリームプロセッサに割り当てられ、
    状態4が、データメモリから読出すために画像プロセッサに割り当てられ、かつデータメモリに書込むために量子化プロセッサに割り当てられ、画像プロセッサは量子化プロセッサに先んじ、
    状態5が、データメモリから読出すために離散コサイン変換を行うための量子化プロセッサに割り当てられ、
    状態6が、データをデータメモリへ転送し、かつデータメモリから転送するためにDMAプロセッサに割り当てられ、データメモリに書込むために量子化プロセッサに割り当てられ、DMAプロセッサは量子化プロセッサに先んじ、
    状態7が、データメモリから読出すために量子化を行うための量子化プロセッサに割り当てられる、
    ことを特徴とする請求項8に記載の方法。
  12. 複数のプロセッサ(306−318)の間で共有されるデータメモリ(302、802)を有するコンピュータ装置であって、
    前記コンピュータ装置は、
    クロックサイクル(0−7)により定められたタイムスロット(602−616)中にアクセスできるデータメモリ(302)と、
    このデータメモリに結合される複数のプロセッサであって、一つのプロセッサはNビットデータワードを伝送するために該データメモリにアクセスを要求するときにアクティブ信号を提供する複数のプロセッサと、
    前記複数のプロセッサからプロセッサごとに一つのアクティブ信号を受信するメモリコントローラ(304)と、
    を備え、
    前記複数のプロセッサは、
    (a)前記メモリコントローラとメインメモリ(320)との間に結合されるコプロセッサであるDMAプロセッサ(310)であって、アクティブ状態中にデータを前記メインメモリと前記データメモリの間で転送し、かつメモリマスタとして選択されるDMAプロセッサと、
    (b)前記メモリコントローラに結合される複数のさらなるコプロセッサ(308、312−318)であって、複数のさらなるコプロセッサのうちのアクティブなプロセッサは、DMAプロセッサがアクティブでない場合に前記データメモリにアクセスするメモリマスタとして選択される複数のさらなるコプロセッサと、
    (c)前記メモリコントローラに結合されるとともに、他の全てのプロセッサがアクティブでない場合に前記データメモリにアクセスするメモリマスタとして選択される信号プロセッサ(306)と、
    を備え、
    前記メモリコントローラ(304)
    前記複数のプロセッサと前記データメモリの間をインタフェースするために前記複数のプロセッサと前記データメモリの間に結合されるとともに、クロックサイクルにより定められたタイムスロット中に仲裁パターン(618、620、622)に従ってデータメモリを排他的にアクセスするプロセッサを複数のプロセッサのうちから選択し、かつ指定されたNビットデータワードをデータメモリ選択されたプロセッサとの間で転送し、
    インタフェース回路であって、
    (a)それぞれのプロセッサ(306−318)と前記データメモリとの間を転送するNビットデータワードをそれぞれが保持する複数のNビットレジスタ(804、808、812、816、820)であって、前記データメモリ(320)と前記レジスタとの間で、前記タイムスロットでNビットデータワードをそれぞれが転送する複数のNビットレジスタと、
    (b)前記Nビットレジスタの各レジスタにおのおの結合され、Nビットデータワード中の全てのデータビットが複数のクロックサイクルにわたって転送されるまで前記レジスタとそれぞれのプロセッサとの間で前記レジスタに保持されているNビットデータワードのサブセットを前記クロックサイクルで繰り返し転送する複数のマルチプレクサ(806、810、814、818、822)と、
    を有する、各プロセッサに少なくとも1つのレジスタが設けられているインタフェース回路と、
    を備えたことを特徴とするコンピュータ装置。
  13. 前記メモリコントローラは、
    複数のプロセッサ(306−318)とデータメモリとの間のデータ転送をインタフェースするインタフェース回路と、
    インタフェース回路に結合されて前記タイムスロット中にプロセッサの間でのデータメモリへのアクセスを仲裁する制御回路と、
    備えることを特徴とする請求項12に記載の装置。
  14. Nは128であることを特徴とする請求項12または13のいずれかに記載の装置。
  15. 前記コプロセッサは画像プロセッサ(312)と、ビットストリームプロセッサ(318)と、量子化プロセッサ(316)と、動き補償プロセッサ(314)と、浮動小数点プロセッサ(308)とを含むことを特徴とする請求項12乃至14のいずれかに記載の装置。
  16. 前記動き補償プロセッサおよび画像プロセッサはデータメモリに対するアクセスを更に共有することを特徴とする請求項15に記載の装置。
  17. 前記メモリコントローラは状態マシンカウンタを用いてタイムスロットを生成することを特徴とする請求項12乃至16のいずれかに記載の装置。
  18. 前記メモリコントローラは0からM−1までのM個の状態で構成されている複数のサイクルを生成し、各タイムスロットに1つの状態が対応し、サイクルごとにM個の状態があることを特徴とする請求項17に記載の装置。
  19. Mは8であることを特徴とする請求項18に記載の装置。
  20. 8つの状態が仲裁パターン(618)を定め、
    状態0がDMAプロセッサに割り当てられ、
    状態1が、データメモリから読出すために画像プロセッサに割り当てられ、
    状態2が、データメモリから読出すためにビットストリームプロセッサに割り当てられ、
    状態3が、データメモリに書込むためにビットストリームプロセッサに割り当てられ、
    状態4が、データをデータメモリへ転送し、かつデータメモリから転送するためにDMAプロセッサに割り当てられ、かつデータメモリに書込むために量子化プロセッサに割り当てられ、DMAプロセッサは量子化プロセッサに先んじ、
    状態5が、データメモリから読出すために画像プロセッサに割り当てられ、データメモリに書込むために量子化プロセッサに割り当てられ、画像プロセッサは量子化プロセッサに先んじ、
    状態6が、データメモリから読出すために離散コサイン変換を行うための量子化プロセッサに割り当てられ、
    状態7が、データメモリから読出すために量子化を行うための量子化プロセッサに割り当てられる、
    ことを特徴とする請求項19に記載の装置。
  21. 8つの状態が仲裁パターン(620)を定め、
    状態0が、データメモリから読出すために画像プロセッサに割り当てられ、
    状態1が、データをデータメモリへ転送し、かつデータメモリから転送するためにDMAプロセッサに割り当てられ、
    状態2が、データメモリから読出すためにビットストリームプロセッサに割り当てられ、
    状態3が、データメモリに書込むためにビットストリームプロセッサに割り当てられ、
    状態4が、データメモリから読出すために画像プロセッサに割り当てられ、かつデータメモリに書込むために量子化プロセッサに割り当てられ、画像プロセッサは量子化プロセッサに先んじ、
    状態5が、データをデータメモリへ転送し、かつデータメモリから転送するためにDMAプロセッサに割り当てられ、データメモリに書込むために量子化プロセッサに割り当てられ、DMAプロセッサは量子化プロセッサに先んじ、
    状態6が、データメモリから読出すために離散コサイン変換を行うための量子化プロセッサに割り当てられ、
    状態7が、データメモリから読出すために量子化を行うための量子化プロセッサに割り当てられる、
    ことを特徴とする請求項19に記載の装置。
  22. 8つの状態が仲裁パターン(622)を定め、
    状態0が、データメモリから読出すために画像プロセッサに割り当てられ、
    状態1が、データをデータメモリから読出すためにビットストリームプロセッサに割り当てられ、
    状態2が、データをデータメモリへ転送するため、およびデータメモリからデータを転送するためにDMAプロセッサに割り当てられ、
    状態3が、データメモリに書込むためにビットストリームプロセッサに割り当てられ、
    状態4が、データメモリから読出すために画像プロセッサに割り当てられ、かつデータメモリに書込むために量子化プロセッサに割り当てられ、画像プロセッサは量子化プロセッサに先んじ、
    状態5が、データメモリから読出すために離散コサイン変換を行うための量子化プロセッサに割り当てられ、
    状態6が、データをデータメモリへ転送し、かつデータメモリから転送するためにDMAプロセッサに割り当てられ、データメモリに書込むために量子化プロセッサに割り当てられ、DMAプロセッサは量子化プロセッサに先んじ、
    状態7が、データメモリから読出すために量子化を行うための量子化プロセッサに割り当てられる、
    ことを特徴とする請求項19に記載の装置。
JP2000534947A 1998-03-05 1999-03-02 共有メモリを有するマルチプロセッサ装置 Expired - Fee Related JP4426099B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/035,687 US6567426B1 (en) 1998-03-05 1998-03-05 Preemptive timer multiplexed shared memory access
US09/035,687 1998-03-05
PCT/US1999/004615 WO1999045472A1 (en) 1998-03-05 1999-03-02 Multi-processor system with shared memory

Publications (2)

Publication Number Publication Date
JP2002506251A JP2002506251A (ja) 2002-02-26
JP4426099B2 true JP4426099B2 (ja) 2010-03-03

Family

ID=21884216

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000534947A Expired - Fee Related JP4426099B2 (ja) 1998-03-05 1999-03-02 共有メモリを有するマルチプロセッサ装置

Country Status (6)

Country Link
US (1) US6567426B1 (ja)
EP (1) EP1058891B1 (ja)
JP (1) JP4426099B2 (ja)
AT (1) ATE256311T1 (ja)
DE (1) DE69913500T2 (ja)
WO (1) WO1999045472A1 (ja)

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7003593B2 (en) * 1997-12-17 2006-02-21 Src Computers, Inc. Computer system architecture and memory controller for close-coupling within a hybrid processing system utilizing an adaptive processor interface port
TW448365B (en) * 1999-11-15 2001-08-01 Via Tech Inc Bus arbitration method providing preemption function between control chip sets
US6473821B1 (en) * 1999-12-21 2002-10-29 Visteon Global Technologies, Inc. Multiple processor interface, synchronization, and arbitration scheme using time multiplexed shared memory for real time systems
JP5185478B2 (ja) * 2000-02-29 2013-04-17 富士通セミコンダクター株式会社 パイプライン処理方法並びにその方法を利用するパイプライン処理装置
US7360028B1 (en) * 2000-05-05 2008-04-15 Sun Microsystems, Inc. Explicit store-to-instruction-space instruction for self-modifying code and ensuring memory coherence between instruction cache and shared memory using a no-snoop protocol
US7096324B1 (en) 2000-06-12 2006-08-22 Altera Corporation Embedded processor with dual-port SRAM for programmable logic
US6868486B1 (en) * 2000-08-25 2005-03-15 Ncr Corporation Providing multiple memory controllers on a memory bus
US8149048B1 (en) 2000-10-26 2012-04-03 Cypress Semiconductor Corporation Apparatus and method for programmable power management in a programmable analog circuit block
US6950954B1 (en) * 2000-10-26 2005-09-27 Cypress Semiconductor Corporation Method and circuit for synchronizing a write operation between an on-chip microprocessor and an on-chip programmable analog device operating at different frequencies
US8103496B1 (en) 2000-10-26 2012-01-24 Cypress Semicondutor Corporation Breakpoint control in an in-circuit emulation system
US8176296B2 (en) 2000-10-26 2012-05-08 Cypress Semiconductor Corporation Programmable microcontroller architecture
US6724220B1 (en) 2000-10-26 2004-04-20 Cyress Semiconductor Corporation Programmable microcontroller architecture (mixed analog/digital)
US7765095B1 (en) 2000-10-26 2010-07-27 Cypress Semiconductor Corporation Conditional branching in an in-circuit emulation system
US8160864B1 (en) 2000-10-26 2012-04-17 Cypress Semiconductor Corporation In-circuit emulator and pod synchronized boot
US6675268B1 (en) * 2000-12-11 2004-01-06 Lsi Logic Corporation Method and apparatus for handling transfers of data volumes between controllers in a storage environment having multiple paths to the data volumes
US7675972B1 (en) * 2001-07-30 2010-03-09 Vixs Systems, Inc. System and method for multiple channel video transcoding
US7406674B1 (en) 2001-10-24 2008-07-29 Cypress Semiconductor Corporation Method and apparatus for generating microcontroller configuration information
US8078970B1 (en) 2001-11-09 2011-12-13 Cypress Semiconductor Corporation Graphical user interface with user-selectable list-box
US8042093B1 (en) 2001-11-15 2011-10-18 Cypress Semiconductor Corporation System providing automatic source code generation for personalization and parameterization of user modules
US7774190B1 (en) 2001-11-19 2010-08-10 Cypress Semiconductor Corporation Sleep and stall in an in-circuit emulation system
US6971004B1 (en) 2001-11-19 2005-11-29 Cypress Semiconductor Corp. System and method of dynamically reconfiguring a programmable integrated circuit
US7844437B1 (en) 2001-11-19 2010-11-30 Cypress Semiconductor Corporation System and method for performing next placements and pruning of disallowed placements for programming an integrated circuit
US7770113B1 (en) 2001-11-19 2010-08-03 Cypress Semiconductor Corporation System and method for dynamically generating a configuration datasheet
US8069405B1 (en) 2001-11-19 2011-11-29 Cypress Semiconductor Corporation User interface for efficiently browsing an electronic document using data-driven tabs
JP4335516B2 (ja) * 2001-12-04 2009-09-30 パナソニック株式会社 複数のプロセッサを用いた動画像符号化装置およびその方法
US8103497B1 (en) 2002-03-28 2012-01-24 Cypress Semiconductor Corporation External interface for event architecture
US7308608B1 (en) 2002-05-01 2007-12-11 Cypress Semiconductor Corporation Reconfigurable testing system and method
US7761845B1 (en) 2002-09-09 2010-07-20 Cypress Semiconductor Corporation Method for parameterizing a user module
EP1550953A1 (en) * 2003-12-29 2005-07-06 CNX S.p.A. Method and device implementing a time multiplexed access to a single dual port RAM from several data source with independent clocks
US7295049B1 (en) 2004-03-25 2007-11-13 Cypress Semiconductor Corporation Method and circuit for rapid alignment of signals
US8082531B2 (en) * 2004-08-13 2011-12-20 Cypress Semiconductor Corporation Method and an apparatus to design a processing system using a graphical user interface
US8286125B2 (en) 2004-08-13 2012-10-09 Cypress Semiconductor Corporation Model for a hardware device-independent method of defining embedded firmware for programmable systems
US8069436B2 (en) 2004-08-13 2011-11-29 Cypress Semiconductor Corporation Providing hardware independence to automate code generation of processing device firmware
US7587310B2 (en) * 2004-08-30 2009-09-08 Lsi Corporation Sound processor architecture using single port memory unit
US7281093B1 (en) * 2004-12-21 2007-10-09 Xilinx, Inc. Memory apparatus for a message processing system and method of providing same
US8279886B2 (en) * 2004-12-30 2012-10-02 Intel Corporation Dataport and methods thereof
US7332976B1 (en) 2005-02-04 2008-02-19 Cypress Semiconductor Corporation Poly-phase frequency synthesis oscillator
US7500066B2 (en) * 2005-04-30 2009-03-03 Tellabs Operations, Inc. Method and apparatus for sharing instruction memory among a plurality of processors
WO2006117746A1 (en) * 2005-05-04 2006-11-09 Nxp B.V. Memory controller and method for controlling access to a memory, as well as system comprising a memory controller
US7400183B1 (en) 2005-05-05 2008-07-15 Cypress Semiconductor Corporation Voltage controlled oscillator delay cell and method
US8089461B2 (en) 2005-06-23 2012-01-03 Cypress Semiconductor Corporation Touch wake for electronic devices
US8085067B1 (en) 2005-12-21 2011-12-27 Cypress Semiconductor Corporation Differential-to-single ended signal converter circuit and method
US8067948B2 (en) 2006-03-27 2011-11-29 Cypress Semiconductor Corporation Input/output multiplexer bus
JP2007265019A (ja) * 2006-03-28 2007-10-11 Sony Computer Entertainment Inc 演算処理装置
US8026739B2 (en) 2007-04-17 2011-09-27 Cypress Semiconductor Corporation System level interconnect with programmable switching
US8516025B2 (en) 2007-04-17 2013-08-20 Cypress Semiconductor Corporation Clock driven dynamic datapath chaining
US8130025B2 (en) 2007-04-17 2012-03-06 Cypress Semiconductor Corporation Numerical band gap
US7737724B2 (en) 2007-04-17 2010-06-15 Cypress Semiconductor Corporation Universal digital block interconnection and channel routing
US8092083B2 (en) 2007-04-17 2012-01-10 Cypress Semiconductor Corporation Temperature sensor with digital bandgap
US9564902B2 (en) 2007-04-17 2017-02-07 Cypress Semiconductor Corporation Dynamically configurable and re-configurable data path
US8040266B2 (en) 2007-04-17 2011-10-18 Cypress Semiconductor Corporation Programmable sigma-delta analog-to-digital converter
US8266575B1 (en) 2007-04-25 2012-09-11 Cypress Semiconductor Corporation Systems and methods for dynamically reconfiguring a programmable system on a chip
US9720805B1 (en) 2007-04-25 2017-08-01 Cypress Semiconductor Corporation System and method for controlling a target device
US8065653B1 (en) 2007-04-25 2011-11-22 Cypress Semiconductor Corporation Configuration of programmable IC design elements
US8049569B1 (en) 2007-09-05 2011-11-01 Cypress Semiconductor Corporation Circuit and method for improving the accuracy of a crystal-less oscillator having dual-frequency modes
US9448964B2 (en) 2009-05-04 2016-09-20 Cypress Semiconductor Corporation Autonomous control in a programmable system
KR101949123B1 (ko) * 2012-02-27 2019-02-18 삼성전자주식회사 데이터 복호화 장치 및 방법
SG11201600354TA (en) * 2013-07-18 2016-03-30 Benjamin Aaron Gittins Computing architecture with peripherals

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5854478A (ja) * 1981-09-29 1983-03-31 Fujitsu Ltd 主記憶制御方法
US5295258A (en) * 1989-12-22 1994-03-15 Tandem Computers Incorporated Fault-tolerant computer system with online recovery and reintegration of redundant components
US5623628A (en) * 1994-03-02 1997-04-22 Intel Corporation Computer system and method for maintaining memory consistency in a pipelined, non-blocking caching bus request queue
US5745732A (en) * 1994-11-15 1998-04-28 Cherukuri; Ravikrishna V. Computer system including system controller with a write buffer and plural read buffers for decoupled busses
US5651137A (en) * 1995-04-12 1997-07-22 Intel Corporation Scalable cache attributes for an input/output bus
US5682484A (en) 1995-11-20 1997-10-28 Advanced Micro Devices, Inc. System and method for transferring data streams simultaneously on multiple buses in a computer system

Also Published As

Publication number Publication date
ATE256311T1 (de) 2003-12-15
WO1999045472A1 (en) 1999-09-10
US6567426B1 (en) 2003-05-20
EP1058891B1 (en) 2003-12-10
DE69913500D1 (de) 2004-01-22
JP2002506251A (ja) 2002-02-26
EP1058891A1 (en) 2000-12-13
DE69913500T2 (de) 2004-09-16

Similar Documents

Publication Publication Date Title
JP4426099B2 (ja) 共有メモリを有するマルチプロセッサ装置
US6425054B1 (en) Multiprocessor operation in a multimedia signal processor
US6393545B1 (en) Method apparatus and system for managing virtual memory with virtual-physical mapping
EP0875855B1 (en) Graphics processing system
US6061749A (en) Transformation of a first dataword received from a FIFO into an input register and subsequent dataword from the FIFO into a normalized output dataword
US6118724A (en) Memory controller architecture
KR100227278B1 (ko) 캐쉬 제어 유닛
US5768445A (en) Compression and decompression scheme performed on shared workstation memory by media coprocessor
US6707463B1 (en) Data normalization technique
US6185629B1 (en) Data transfer controller employing differing memory interface protocols dependent upon external input at predetermined time
US5860086A (en) Video processor with serialization FIFO
US5638531A (en) Multiprocessor integrated circuit with video refresh logic employing instruction/data caching and associated timing synchronization
EP0747872A1 (en) Video processor with addressing mode control
US5724599A (en) Message passing and blast interrupt from processor
JP3518788B2 (ja) デジタル・データ及びビデオ信号の処理デバイス及びシステム
KR100218619B1 (ko) 집적회로 장치와, 디지탈 데이타 처리 및 비디오 디스플레이신호발생시스템
JPH1185969A (ja) 画像処理装置及びその方法
KR20060127170A (ko) 비디오 스트림 처리 회로 및 방법
AU739533B2 (en) Graphics processor architecture
JPH113324A (ja) メモリ内蔵のデータ処理装置及び処理システム
JP2002182975A (ja) マルチプロセッサシステム
AU728882B2 (en) Compression
AU744329B2 (en) Data normalization circuit and method
JP2001243112A (ja) 画像メモリアクセス装置
AU766467B2 (en) Graphics processing system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060223

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20060330

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20060330

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20061024

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20061024

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081017

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081024

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090123

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20091120

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091210

R150 Certificate of patent or registration of utility model

Ref document number: 4426099

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121218

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131218

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees