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

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

Info

Publication number
JP2002506251A
JP2002506251A JP2000534947A JP2000534947A JP2002506251A JP 2002506251 A JP2002506251 A JP 2002506251A JP 2000534947 A JP2000534947 A JP 2000534947A JP 2000534947 A JP2000534947 A JP 2000534947A JP 2002506251 A JP2002506251 A JP 2002506251A
Authority
JP
Japan
Prior art keywords
processor
data memory
data
assigned
state
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.)
Granted
Application number
JP2000534947A
Other languages
English (en)
Other versions
JP4426099B2 (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.)
Graphics Properties Holdings Inc
Original Assignee
Silicon Graphics Inc
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 Silicon Graphics Inc filed Critical Silicon Graphics Inc
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

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

Abstract

(57)【要約】 本発明はコンピュータ装置において複数のプロセッサの間でデータメモリを共有する方法および装置を提供する。本発明の方法および装置では、複数のプロセッサがNビット帯域幅のデータメモリをアクセスするためにデータメモリに複数のプロセッサが結合されている。本発明はデータメモリをアクセスするためのアクティブ信号を複数のプロセッサから受ける。データメモリに対するアクセスを要求するプロセッサがアクティブ信号を主張する。アクティブ信号を主張しているプロセッサのうち、データメモリに対するメモリマスタとしてプロセッサが選択される。その後で本発明はNビット幅のデータを選択されたプロセッサとデータメモリの間で、クロックサイクルにより定められたタイムスロット内に転送する。所与のタイムスロット中にはただ1つのプロセッサがデータメモリに対するアクセスを許される。本発明の好適な実施形態では、Nビット帯域幅は全てのプロセッサのデータ要求を受け容れるために十分大きい。

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(SR
AM)として実現されることが好ましい。メモリコントローラに結合されて、デ
ータメモリ302に対するアクセスを共有するプロセッサの例は信号プロセッサ
(SP)306と、浮動小数点プロセッサ(FPU)308と、直接メモリアク
セス(DMA)プロセッサ310と、画像プロセッサ(GP)312と、動き補
償ユニット (MP)314と、量子化および離散コサイン変換プロセッサ(Q
P)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ビデオデータおよびオーディオデータ処理において信号プロセッサ3
06を支援するために、本発明は量子化および離散コサイン変換プロセッサ(Q
P)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ビットワードをメモリコントローラ4
04内の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】
【0029】 第2に、本発明は、全てのコプロセッサが同時に動作状態にあることはない、
という他の決定論的特性を利用する。たとえば、あるコプロセッサはMPEGで
使用されるが、他のあるコプロセッサは画像で使用され、更に別のコプロセッサ
はオーディオで使用される。しかし、全てのコプロセッサが始終使用されている
わけではない。たとえば、MPEGビデオ処理では、BP、QPおよびMPはア
クティブであり、GPおよび浮動小数点プロセッサはアクティブでない。MPE
Gオーディオでは、BPとFPUプロセッサがアクティブであり、他のプロセッ
サはアクティブでない。画像処理では、画像プロセッサおよびFPUのみがアク
ティブである。表2はそれらのメディア処理のための種々のコプロセッサのアク
ティブな状態を要約したものである。
【表2】
【0030】 第3に、各プロセッサのアクセスパターンは極めて規則的である。その理由は
プロセッサがデータストリームを、線形的かつ近接するやり方で処理するからで
ある。たとえば、MPEGビットストリームの圧縮を解除する際には、BPは、
データブロックの第1のバイトでスタートしてそのブロック中の全てのバイトに
わたって、線形的なやり方でデータをアクセスする。同様に、QPは8×8DC
Tデータブロックを線形的なやり方でアクセスする。
【0031】 最後に、FPUはSP命令ストリームを共有していることが他のコプロセッサ
とは異なる。すなわち、それはそれのデータを負荷から獲得し、SP命令ストリ
ームを通じて格納する。データメモリ内のデータをアクセスするためのアドレス
はSPにより供給される。したがって、FPUがデータメモリに対する別々のデ
ータ関連を有するとしても、データメモリの観点からは、データメモリのアクセ
スにおいてSPタイムスロットを共有するように見える。
【0032】 それらの所見を基にして、本発明はアクセス当りはるかに広いデータメモリの
帯域幅に各プロセッサアクセスを行う。プロセッサの次のアクセスまでアクセス
された全てのデータをプロセッサが処理できるようにするために十分大きいよう
に、アクセス当りのデータメモリ語帯域幅のサイズは適合させられる。本発明の
好適な実施形態では、データメモリアクセスの帯域幅クロックサイクル当り12
8ビットである。データアクセスサイズの個々の大きさ(granularit
y)のこの増大によってデータメモリに対する各プロセッサに対する時間多重化
されたアクセスが可能にされる。
【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でD
MAユニットが共有されているデータメモリをタイムスロットの間アクセスする
ことを許される。ステップ506に記載されているように他の全てのプロセッサ
は停止させられる。ステップ510に記載されているようにDMAユニットがア
クティブでなくて、1つまたは複数のコプロセッサがアクティブであるとすると
、ステップ512に記載されているように、そのタイムスロットの間設定されて
いる優先順位に従ってアクティブなコプロセッサから1つのコプロセッサが選択
される。ステップ508に記載されているように、選択されたコプロセッサはそ
の後でデータメモリをアクセスすることを許される。ステップ514に記載され
ているように、この時間中は、信号プロセッサは停止させられる。ステップ51
6に記載されているように、他のコプロセッサがアクティブでなければ、信号プ
ロセッサはデフォールトメモリマスタになって、ステップ508に記載されてい
るように、そのコプロセッサはデータメモリをアクセスすることを許される。ス
テップ518および502に記載されているように、プロセスは次のタイムスロ
ットの間も繰り返される。
【0040】 図6はデータメモリマスタのための典型的なタイムスロット割り当ての仕組み
と、DMA割り込みの場合の種々のアクセスパターンとを示す。タイムスロット
割り当ては0から7までの8つのタイムスロット602〜616で構成されてい
る。この実施形態では、状態マシンを通じて実現されているスロット指名子が0
から7までのカウンタ値と、3つのアクセスパターン例618、620および6
22とを基にしてプロセッサのうちからデータメモリマスタを選択する。アクセ
スパターン618、620および622はDMAプロセッサ(DMA)のための
スロットと、デジタルプロセッサ読出し(すなわち、画像プロセッサ読出し)(
DP R)のためのスロットと、ビットストリームプロセッサ読出し(BP
)のためのスロットと、ビットストリームプロセッサ書込み(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へ送る。DM
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プロセッサから受け、それらを1
28ビット書込みレジスタ834へ送る。DMA DATAがクロックごと
に32ビットをDMAユニットから受け、それらをそれの128ビット書込みレ
ジスタ836へ送る。SP DATAポートおよびFPU DATAポ
ートが1つの書込みポートを共有し、64ビットをロード/格納バス830を介
してSPまたはFPUから64ビットを受ける。格納整列ユニット844が格納
のために64ビットを整列し、整列させられた64ビットを書込みレジスタ83
8へ送る。そのレジスタは128ビット書込みレジスタ838を一杯にするため
に64ビットを二重にする。それら4つの書込みレジスタのうちで、マルチプレ
クサ842はレジスタを選択し、選択されたレジスタの内容をデータメモリ80
2へ送る。
【0046】 読出し/書込み動作はアドレッシングユニットと同期して行われる。アドレッ
シングユニットはDMEM内のアドレスを選択して書込みまたは読出す。この実
施形態ではDMEMは256×128ビットアレイ、全部で4KB、として編成
される。256の128ビットDMEMワードをアドレスするために、アドレス
線はDMEMから256のアドレスの1つを選択するために8ビット幅である。
各アクティブプロセッサにより求められるデータメモリ内のデータのアドレスは
マルチプレクサ846により選択される。選択されたアドレスはその後でアドレ
スレジスタ848に保持され、正しい読出し動作および書込み動作を可能にする
ために、アドレス信号がDMEM802に加えられる。
【0047】 この実施形態では、データメモリ内のデータはバイトアドレス指定可能である
。すなわち、128ビットデータメモリ内の任意のバイトを選択可能である。1
6進数での信号「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 プロセッサ。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ガルビン、エザール アメリカ合衆国カリフォルニア州、サンノ ゼ、マドック、ウェイ.4511 Fターム(参考) 5B045 AA01 DD01 EE03 5B060 AC13 CA08 KA02

Claims (31)

    【特許請求の範囲】
  1. 【請求項1】 複数のプロセッサからデータメモリをアクセスするために、プロセッサ当り1
    つのアクティブ信号を受けるステップと、 アクティブ信号をデータメモリに対して主張するプロセッサの中でメモリマス
    タとしてプロセッサを選択するステップと、 クロックサイクルにより定められたタイムスロット内で、選択されたプロセッ
    サとデータメモリとの間でNビット幅のデータを転送するステップと、 を備え、Nビット幅のデータをデータメモリへ転送し、データメモリから転送す
    るために、データメモリはプロセッサからアクセスできる、コンピュータ装置に
    おいてプロセッサの中でデータメモリに対するアクセスを共有する方法。
  2. 【請求項2】 前記転送するステップは、 Nビット幅のデータをNビット幅のレジスタにロードするステップと、 複数のクロックサイクルにわたって全てのNビットがレジスタから読出される
    まで、クロックサイクル中にNビット幅のデータのサブセットを、選択されたプ
    ロセッサにより、読出すステップと、 を更に備える請求項1記載の方法。
  3. 【請求項3】 前記転送するステップは、 複数のクロックサイクルにわたって全てのNビットがレジスタにロードされる
    まで、クロックサイクル中にNビット幅のデータのサブセットをNビット幅のレ
    ジスタに転送するステップと、 レジスタ内のNビット幅のデータをデータメモリに書込むステップと、 を更に備える請求項1記載の方法。
  4. 【請求項4】 前記プロセッサは信号プロセッサと複数のコプロセッサを含む請求項1記載の
    方法。
  5. 【請求項5】 前記選択するステップは、 複数のコプロセッサから一つのコプロセッサをバスマスタとして選択するステ
    ップと、 コプロセッサのいずれもアクティブでなければ信号プロセッサをバスマスタと
    して選択するステップと、 を更に備える請求項2記載の方法。
  6. 【請求項6】 前記コプロセッサは直接メモリアクセス(DMA)プロセッ
    サを含む請求項2記載の方法。
  7. 【請求項7】 前記選択するステップは、 DMAプロセッサがアクティブであればDMAプロセッサをバスマスタとして
    選択するステップと、 DMAプロセッサがアクティブでなければ一つのコプロセッサをバスマスタと
    して複数のコプロセッサから選択するステップと、 DMAプロセッサと、コプロセッサのいずれもアクティブでなければ信号プロ
    セッサをバスマスタとして選択するステップと、 を更に備える請求項6記載の方法。
  8. 【請求項8】 前記コプロセッサは画像プロセッサと、ビットストリームプロセッサと、量子
    化および離散コサイン変換を行うための量子化プロセッサと、浮動小数点プロセ
    ッサとを含む請求項6記載の方法。
  9. 【請求項9】 前記コプロセッサはデータメモリに対する読出しアクセスを画像プロセッサと
    共有する動き補償プロセッサを更に含む請求項8記載の方法。
  10. 【請求項10】 Nは128である請求項9記載の方法。
  11. 【請求項11】 タイムスロットは状態マシンカウンタにより発生される請求項10記載の方法
  12. 【請求項12】 前記状態マシンカウンタはM個の状態のサイクルを、0からM−1まで、繰り
    返し発生し、各タイムスロットに対して1つの状態がある請求項11記載の方法
  13. 【請求項13】 Mは8である請求項12記載の方法。
  14. 【請求項14】 8つの状態がバスマスタ選択パターンを定め、 状態0がDMAプロセッサに割り当てられ、 状態1が、データメモリから読出すために画像プロセッサに割り当てられ、 状態2が、データメモリから読出すためにビットストリームプロセッサに割り
    当てられ、 状態3が、データメモリに書込むためにビットストリームプロセッサに割り当
    てられ、 状態4が、データをデータメモリへ転送し、かつデータメモリから転送するた
    めにDMAプロセッサに割り当てられ、かつデータメモリに書込むために量子化
    プロセッサに割り当てられ、DMAプロセッサは量子化プロセッサに先じ、 状態5が、データメモリから読出すために画像プロセッサに割り当てられ、デ
    ータメモリに書込むために量子化プロセッサに割り当てられ、画像プロセッサは
    量子化プロセッサに先じ、 状態6が、データメモリから読出すために離散コサイン変換を行うための量子
    化プロセッサに割り当てられ、 状態7が、データメモリから読出すために量子化を行うための量子化プロセッ
    サに割り当てられる、 請求項13記載の方法。
  15. 【請求項15】 8つの状態がバスマスタ選択パターンを定め、 状態0が、データメモリから読出すために画像プロセッサに割り当てられ、 状態1が、データをデータメモリへ転送し、かつデータメモリから転送するた
    めにDMAプロセッサに割り当てられ、 状態2が、データメモリから読出すためにビットストリームプロセッサに割り
    当てられ、 状態3が、データメモリに書込むためにビットストリームプロセッサに割り当
    てられ、 状態4が、データメモリから読出すために画像プロセッサに割り当てられ、か
    つデータメモリに書込むために量子化プロセッサに割り当てられ、画像プロセッ
    サは量子化プロセッサに先んじ、 状態5が、データをデータメモリへ転送し、かつデータメモリから転送するた
    めにDMAプロセッサに割り当てられ、データメモリに書込むために量子化プロ
    セッサに割り当てられ、DMAプロセッサは量子化プロセッサに先んじ、 状態6が、データメモリから読出すために離散コサイン変換を行うための量子
    化プロセッサに割り当てられ、 状態7が、データメモリから読出すために量子化を行うための量子化プロセッ
    サに割り当てられる、 請求項13記載の方法。
  16. 【請求項16】 8つの状態がバスマスタ選択パターンを定め、 状態0が、データメモリから読出すために画像プロセッサに割り当てられ、 状態1が、データをデータメモリから読出すためにビットストリームプロセッ
    サに割り当てられ、 状態2が、データをデータメモリへ転送するため、およびデータメモリからデ
    ータを転送するためにDMAプロセッサに割り当てられ、 状態3が、データメモリに書込むためにビットストリームプロセッサに割り当
    てられ、 状態4が、データメモリから読出すために画像プロセッサに割り当てられ、か
    つデータメモリに書込むために量子化プロセッサに割り当てられ、画像プロセッ
    サは量子化プロセッサに先んじ、 状態5が、データメモリから読出すために離散コサイン変換を行うための量子
    化プロセッサに割り当てられ、 状態6が、データをデータメモリへ転送し、かつデータメモリから転送するた
    めにDMAプロセッサに割り当てられ、データメモリに書込むために量子化プロ
    セッサに割り当てられ、DMAプロセッサは量子化プロセッサに先んじ、 状態7が、データメモリから読出すために量子化を行うための量子化プロセッ
    サに割り当てられる、 請求項13記載の方法。
  17. 【請求項17】 クロックサイクルにより定められたタイムスロット中にアクセスできるデータ
    メモリと、 このデータメモリに結合され、Nビットデータ語でデータメモリをアクセスす
    る複数のプロセッサと、 データメモリとプロセッサの間に結合され、プロセッサとデータメモリをイン
    タフェースするメモリコントローラと、 を備え、メモリコントローラはタイムスロット中に仲裁パターンに従ってデータ
    メモリを排他的にアクセスするプロセッサを複数のプロセッサのうちから選択し
    、かつ指定されたNビットデータ語をデータメモリと、タイムスロット中に選択
    されたプロセッサとの間で転送する、プロセッサの間で共有されるデータメモリ
    を有するコンピュータ装置。
  18. 【請求項18】 前記メモリコントローラは、 プロセッサとデータメモリとの間のデータ転送をインタフェースするインタフ
    ェース回路と、 インタフェース回路に結合されてタイムスロット中にプロセッサの間でアクセ
    スを仲裁する制御回路と、 を更に備える請求項17記載の装置。
  19. 【請求項19】 前記インタフェース回路は、 プロセッサとデータメモリとの間で転送するためのNビットデータワードを保
    持する複数のNビットレジスタと、 Nビットレジスタの各レジスタにおのおの結合され、Nビットデータワード中
    の全てのデータビットが転送されるまでNビットデータワードのサブセットを1
    クロックサイクルで転送する複数のマルチプレクサと、 を更に備え、各プロセッサに少なくとも1つのレジスタが設けられている請求項
    17記載の装置。
  20. 【請求項20】 前記メモリコントローラに結合されているメインメモリを更に備える請求項1
    9記載の装置。
  21. 【請求項21】 前記プロセッサは、 メモリコントローラとメインメモリとの間に結合され、アクティブ状態中にデ
    ータをメインメモリとデータメモリの間で転送する直接メモリアクセス(DMA
    )メモリと、 メモリコントローラに結合され、DMAプロセッサがアクティブでない時にデ
    ータメモリをアクセスするコプロセッサと、 メモリコントローラに結合された信号プロセッサと、 を備え、前記プログラム可能なプロセッサは他の全てのプロセッサがアイドルで
    ある時にデータメモリをアクセスする請求項20記載の装置。
  22. 【請求項22】 Nは128である請求項21記載の装置。
  23. 【請求項23】 前記コプロセッサは画像プロセッサと、ビットストリームプロセッサと、量子
    化化プロセッサと、動き補償プロセッサと、浮動小数点プロセッサとを含む請求
    項22記載の装置。
  24. 【請求項24】 前記動き補償プロセッサおよび画像プロセッサはデータメモリに対するアクセ
    スを更に共有する請求項23記載の装置。
  25. 【請求項25】 前記メモリコントローラは状態マシンカウンタを用いてタイムスロットを発生
    する請求項24記載の装置。
  26. 【請求項26】 前記メモリコントローラは0からM−1までのM個の状態で構成されている複
    数のサイクルを発生し、各タイムスロットに1つの状態が対応し、サイクルごと
    にM個の状態がある請求項25記載の装置。
  27. 【請求項27】 Mは8である請求項26記載の装置。
  28. 【請求項28】 8つの状態が仲裁パターンを定め、 状態0がDMAプロセッサに割り当てられ、 状態1が、データメモリから読出すために画像プロセッサに割り当てられ、 状態2が、データメモリから読出すためにビットストリームプロセッサに割り
    当てられ、 状態3が、データメモリに書込むためにビットストリームプロセッサに割り当
    てられ、 状態4が、データをデータメモリへ転送し、かつデータメモリから転送するた
    めにDMAプロセッサに割り当てられ、かつデータメモリに書込むために量子化
    プロセッサに割り当てられ、DMAプロセッサは量子化プロセッサに先んじ、 状態5が、データメモリから読出すために画像プロセッサに割り当てられ、デ
    ータメモリに書込むために量子化プロセッサに割り当てられ、画像・プロセッサ
    は量子化プロセッサに先んじ、 状態6が、データメモリから読出すために離散コサイン変換を行うための量子
    化プロセッサに割り当てられ、 状態7が、データメモリから読出すために量子化を行うための量子化プロセッ
    サに割り当てられる、 請求項27記載の装置。
  29. 【請求項29】 8つの状態が仲裁パターンを定め、 状態0が、データメモリから読出すために画像プロセッサに割り当てられ、 状態1が、データをデータメモリへ転送し、かつデータメモリから転送するた
    めにDMAプロセッサに割り当てられ、 状態2が、データメモリから読出すためにビットストリームプロセッサに割り
    当てられ、 状態3が、データメモリに書込むためにビットストリームプロセッサに割り当
    てられ、 状態4が、データメモリから読出すために画像プロセッサに割り当てられ、か
    つデータメモリに書込むために量子化プロセッサに割り当てられ、画像プロセッ
    サは量子化プロセッサに先んじ、 状態5が、データをデータメモリへ転送し、かつデータメモリから転送するた
    めにDMAプロセッサに割り当てられ、データメモリに書込むために量子化プロ
    セッサに割り当てられ、DMAプロセッサは量子化プロセッサに先んじ、 状態6が、データメモリから読出すために離散コサイン変換を行うための量子
    化プロセッサに割り当てられ、 状態7が、データメモリから読出すために量子化を行うための量子化プロセッ
    サに割り当てられる、 請求項27記載の装置。
  30. 【請求項30】 8つの状態が仲裁パターンを定め、 状態0が、データメモリから読出すために画像プロセッサに割り当てられ、 状態1が、データをデータメモリから読出すためにビットストリームプロセッ
    サに割り当てられ、 状態2が、データをデータメモリへ転送するため、およびデータメモリからデ
    ータを転送するためにDMAプロセッサに割り当てられ、 状態3が、データメモリに書込むためにビットストリームプロセッサに割り当
    てられ、 状態4が、データメモリから読出すために画像プロセッサに割り当てられ、か
    つデータメモリに書込むために量子化プロセッサに割り当てられ、画像プロセッ
    サは量子化プロセッサに先んじ、 状態5が、データメモリから読出すために離散コサイン変換を行うための量子
    化プロセッサに割り当てられ、 状態6が、データをデータメモリへ転送し、かつデータメモリから転送するた
    めにDMAプロセッサに割り当てられ、データメモリに書込むために量子化プロ
    セッサに割り当てられ、DMAプロセッサは量子化プロセッサに先んじ、 状態7が、データメモリから読出すために量子化を行うための量子化プロセッ
    サに割り当てられる請求項27記載の装置。
  31. 【請求項31】 前記データメモリはSRAMである請求項17記載の装置。
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 1998-03-05
US09/035,687 US6567426B1 (en) 1998-03-05 1998-03-05 Preemptive timer multiplexed shared memory access
PCT/US1999/004615 WO1999045472A1 (en) 1998-03-05 1999-03-02 Multi-processor system with shared memory

Publications (2)

Publication Number Publication Date
JP2002506251A true JP2002506251A (ja) 2002-02-26
JP4426099B2 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)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001243066A (ja) * 2000-02-29 2001-09-07 Fujitsu Ltd パイプライン処理方法並びにその方法を利用するパイプライン処理装置
US8134226B2 (en) 2006-03-28 2012-03-13 Sony Computer Entertainment Inc. Processing apparatus with memories coupled to respective processors
JP2013175192A (ja) * 2012-02-27 2013-09-05 Samsung Electronics Co Ltd データ復号化装置及び方法

Families Citing this family (55)

* 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
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
US8160864B1 (en) 2000-10-26 2012-04-17 Cypress Semiconductor Corporation In-circuit emulator and pod synchronized boot
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
US8149048B1 (en) 2000-10-26 2012-04-03 Cypress Semiconductor Corporation Apparatus and method for programmable power management in a programmable analog circuit block
US8103496B1 (en) 2000-10-26 2012-01-24 Cypress Semicondutor Corporation Breakpoint control in an in-circuit emulation system
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
US8176296B2 (en) 2000-10-26 2012-05-08 Cypress Semiconductor Corporation Programmable microcontroller architecture
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
US8069405B1 (en) 2001-11-19 2011-11-29 Cypress Semiconductor Corporation User interface for efficiently browsing an electronic document using data-driven tabs
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
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
US7770113B1 (en) 2001-11-19 2010-08-03 Cypress Semiconductor Corporation System and method for dynamically generating a configuration datasheet
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
US8069436B2 (en) 2004-08-13 2011-11-29 Cypress Semiconductor Corporation Providing hardware independence to automate code generation of processing device firmware
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
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
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
US8092083B2 (en) 2007-04-17 2012-01-10 Cypress Semiconductor Corporation Temperature sensor with digital bandgap
US8516025B2 (en) 2007-04-17 2013-08-20 Cypress Semiconductor Corporation Clock driven dynamic datapath chaining
US8040266B2 (en) 2007-04-17 2011-10-18 Cypress Semiconductor Corporation Programmable sigma-delta analog-to-digital converter
US9564902B2 (en) 2007-04-17 2017-02-07 Cypress Semiconductor Corporation Dynamically configurable and re-configurable data path
US8026739B2 (en) 2007-04-17 2011-09-27 Cypress Semiconductor Corporation System level interconnect with programmable switching
US7737724B2 (en) 2007-04-17 2010-06-15 Cypress Semiconductor Corporation Universal digital block interconnection and channel routing
US8130025B2 (en) 2007-04-17 2012-03-06 Cypress Semiconductor Corporation Numerical band gap
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
AU2014291635B2 (en) * 2013-07-18 2019-11-07 Benjamin 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

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001243066A (ja) * 2000-02-29 2001-09-07 Fujitsu Ltd パイプライン処理方法並びにその方法を利用するパイプライン処理装置
US8134226B2 (en) 2006-03-28 2012-03-13 Sony Computer Entertainment Inc. Processing apparatus with memories coupled to respective processors
JP2013175192A (ja) * 2012-02-27 2013-09-05 Samsung Electronics Co Ltd データ復号化装置及び方法

Also Published As

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

Similar Documents

Publication Publication Date Title
JP2002506251A (ja) 共有メモリを有するマルチプロセッサ装置
US6425054B1 (en) Multiprocessor operation in a multimedia signal processor
US5448310A (en) Motion estimation coprocessor
US5768445A (en) Compression and decompression scheme performed on shared workstation memory by media coprocessor
US7430621B2 (en) Multiple channel data bus control for video processing
US6118724A (en) Memory controller architecture
US6336180B1 (en) Method, apparatus and system for managing virtual memory with virtual-physical mapping
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
US5987590A (en) PC circuits, systems and methods
US6707463B1 (en) Data normalization technique
US8327046B1 (en) System and method of video decoding using hybrid buffer
EP0875855A2 (en) Graphics processing system
JPH11508066A (ja) データ・フロー制御および複数の処理装置を有する画像圧縮コプロセッサ
KR19980018215A (ko) 비디오 데이터 처리방법 및 장치
WO1999003040A1 (en) Virtual memory manager for multi-media engines
KR20010029924A (ko) 데이터 처리장치
KR100917067B1 (ko) 비디오 처리
JP2000010913A (ja) 情報処理装置および方法、並びに提供媒体
JP3327900B2 (ja) データ処理装置
JP2002182975A (ja) マルチプロセッサシステム
JP2002312233A (ja) 信号処理装置
AU728882B2 (en) Compression
AU760297B2 (en) Memory controller architecture
CN100412831C (zh) 数据处理系统和存储器仲裁方法
JP2002196975A (ja) データ処理装置

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