JPH10154080A - 非対称マルチプロセッサアーキテクチャーの割り込み及び例外事象を処理するためのシステムおよび方法 - Google Patents

非対称マルチプロセッサアーキテクチャーの割り込み及び例外事象を処理するためのシステムおよび方法

Info

Publication number
JPH10154080A
JPH10154080A JP9219649A JP21964997A JPH10154080A JP H10154080 A JPH10154080 A JP H10154080A JP 9219649 A JP9219649 A JP 9219649A JP 21964997 A JP21964997 A JP 21964997A JP H10154080 A JPH10154080 A JP H10154080A
Authority
JP
Japan
Prior art keywords
processor
exception
interrupt
control
vector
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.)
Pending
Application number
JP9219649A
Other languages
English (en)
Inventor
Seungyoon Peter Song
スンギュン・ピーター・ソン
A Mohammed Moatazu
モアタズ・エー・モハメド
Le Nguyen
ル・ングイェン
Churu Park Hiion
ヒーオン・チュル・パク
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JPH10154080A publication Critical patent/JPH10154080A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/17Interprocessor communication using an input/output type connection, e.g. channel, I/O port

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Advance Control (AREA)
  • Complex Calculations (AREA)
  • Multi Processors (AREA)

Abstract

(57)【要約】 【課題】非対称マルチプロセッサアーキテクチャーの割
り込み及び例外事象をハンドリングするためのシステム
および方法を提供する。 【解決手段】 相互異化制御及びデータハンドリング特
性を有するプロセッサを備えた複数個の相互連結された
プロセッサと、前記複数個のプロセッサを制御するため
の共通運用システムと、前記運用システムと結合して動
作し、第1プロセッサの割り込みと例外条件を検出する
ための前記複数個のプロセッサのうち第1プロセッサ上
で動作する割り込み及び例外検出器と、第1プロセッサ
の割り込み及び例外条件を検出し第1プロセッサと第2
プロセッサの割り込み及び例外条件を結合してハンドリ
ングするための前記複数個のプロセッサのうち第2プロ
セッサ上で動作する割り込み及び例外サブハンドラを具
備する割り込み及び例外ハンドラとを有するコンピュー
タシステムを与える。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は異化制御及びデータ
ハンドリング特性を有する非対称プロセッサを具備した
マルチプロセッサシステムに係り、より詳しくは非対称
マルチプロセッサシステムの割り込み及び例外をハンド
リングするためのシステム及び方法に関する。
【0002】
【従来の技術】汎用プロセッサは典型的に割り込み及び
例外をハンドリングするための回路及び構造を含む。割
り込み(interrupt)とは、プロセッサが現在命令スレッ
ドの実行を中止させ割り込みハンドラにより指定され活
性化される割り込みサービス命令スレッドの実行を開始
する事象を言う。割り込みサービス命令スレッドが完全
に実行される時、現在命令スレッドは実行し続ける。割
り込みは割り込み要因が現在命令スレッドの実行命令と
直接に関係しないとの点で外部事象である。割り込みは
代表的にプロセッサのステート或いは文脈を貯蔵し、サ
ービスルーチンを実行し、そしてプロセッサのステート
や文脈を復元し割り込まれた実行スレッドを開始するこ
とによってハンドリングされる。
【0003】例外はプロセッサの現在状態と一致しない
命令の実行またはプロセッサにより命令を実行しようと
する試み中の一つにより発生される事象である。例外条
件を発生させる事象の一例はプロセッサにより不法もし
くは規定されていない命令を実行しようとする試み、命
令アドレスまたはデータアドレスが整列されないとき命
令を実行しようとする試み、保護エラー、セット区切り
点、ゼロによる除算及び数値命令の実行の間のオーバフ
ロー条件を含む。
【0004】プロセッサは、例外ハンドラ命令スレッド
を実行して例外条件に応答する。これらの例外は、通常
的に例外条件を起こした特別の形態の条件に依存する選
択されたセットの命令を実行することでハンドリングさ
れる。
【0005】
【発明が解決しようとする課題】割り込みと例外ハンド
リングによる制御動作は汎用プロセッサによって迅速か
つ容易に遂行され、実際的に大きな文脈ベクトルプロセ
ッサに対しては極めて実行し難いので、マルチプロセッ
サアーキテクチャーシステムに使用された割り込み及び
例外ハンドリングメカニズムは、一般に異化制御及びデ
ータハンドリング特性を有するプロセッサを具備した非
対称マルチプロセッサシステムに使用するのに適しな
い。例外及び割り込みを使用して処理されるマルチプロ
セッサの動作は現在処理されるデータ及びレジスタの貯
蔵を含むプロセッサのステートを具備することが普通で
ある。多くのレジスタを備えたプロセッサはマルチプロ
セッサ文脈転換と同様な動作間プロセッサステートを容
易に貯蔵し再ロードすることができない。
【0006】このために大きなマシンステート或いは文
脈を具備した非対称プロセッサ用例外及び割り込みハン
ドリングを利用するマルチプロセッサアーキテクチャー
が必要である。
【0007】
【課題を解決するための手段】マルチメディアコンピュ
ータシステムは非対称プロセッサと呼ばれる相互異化制
御及びデータハンドリング特性を有する複数個のプロセ
ッサを備える。各々のプロセッサが他のプロセッサとは
相互独立的に動作する命令セットをもつが、非対称プロ
セッサは単一の運営システムにより制御される。マルチ
プロセッサコンピュータシステムは、データまたはベク
トルプロセッサと呼ばれ、大きなマシンステートと大き
なデータ幅を有するプロセッサが例外を検出し、制御プ
ロセッサと呼ばれ、小さなマシンステートとデータ幅を
有する他のプロセッサに対するデータ又はベクトルプロ
セッサの割り込み及び例外ハンドリング動作を遅延させ
る割り込み及び例外ハンドリングのマルチプロセッサ構
造的な定義を使用する。制御プロセッサの小さなマシン
ステート及び小さなデータ幅は、制御プログラムが典型
的に個別的なフラグとポインタのモニタリングと制御に
関連するため、運営システムプログラムを実行するのに
適宜である。対照的にデータまたはベクトルプロセッサ
の大きなマシンステートと大きなデータ幅は非効率的に
制御タスクを処理して制御プロセッサの割り込み及びハ
ンドリングの服従が非常に便利である。
【0008】本発明の他の特徴によれば、マルチプロセ
ッサコンピュータシステムはリセット時、それから例外
が検出される時アイドル状態に入るデータプロセッサを
備える。データプロセッサはアイドル状態に入ってシス
テムデザインとプログラミングを用いてシステムリセッ
ト時プロセッサの同期化を単純化する。
【0009】本発明の実施の形態によれば、マルチプロ
セッサコンピュータシステムはデータプロセッサ内の制
御及びステータスレジスタを読み取り及び書き込む制御
プロセッサを備える。制御プロセッサは、即ち運営シス
テムまたは応用プログラムの実行の間データプロセッサ
の動作を制御する。制御プロセッサはデータプロセッサ
の実行とは別にデータプロセッサの制御及びステータス
レジスタにアクセスして、同一制御及びステータスレジ
スタは並列に制御プロセッサ及びデータプロセッサによ
りアクセスできる。
【0010】本発明の他の実施の形態によれば、マルチ
プロセッサコンピュータシステムはデータプロセッサが
アイドル状態にあるときのみ制御及びステータスレジス
タを具備した制御プロセッサがデータプロセッサの初期
状態をアクセスするように制限される構造的定義を備え
る。このような制限は実際的に制御プロセッサとデータ
プロセッサとの間のプログラミング相互動作を単純化し
て、データプロセッサが不一致状態或いは無効状態に入
ることを保護する。
【0011】多くの利点が、説明された非対称マルチプ
ロセッサアーキテクチャー及び動作方法により得られ
る。その一つはプログラミングモデルとデータプロセッ
サ遂行が同一のマルチプロセッサを使用する非対称アー
キテクチャーに比べて実際的に単純化されることであ
る。
【0012】
【発明の実施の形態】以下、添付した図面に基づき本発
明の望ましい実施の形態をより詳しく説明し、図面全体
を通して同一の部分には同じ符号を使用することにす
る。
【0013】図1を参照すれば、高水準の概略的ブロッ
ク図はホストプロセッサ102とマルチメディア信号プ
ロセッサ104を備えたマルチメディアマルチプロセッ
サシステム100を示している。代表的なホストプロセ
ッサ102はペンティアム(Pentium)TMペンティアムプ
ロ(Pentium Pro)TMプロセッサのようなx86プロセッ
サである。ホストコンピュータ102はシステムメモリ
116に維持された命令とデータに基づいたプログラム
を実行する。ホストプロセッサ102はPCIバスのよ
うなシステムバス106を介してマルチメディア信号プ
ロセッサ104と通信する。マルチメディア信号プロセ
ッサ104はオーディオ及び通信コーデック(CODE
C)108、ビデオA/D変換器110、ビデオD/A
変換器112とフレームバッファSDRAMメモリ11
4のような多様な機能ブロックとインタフェースする。
【0014】図2を参照すると、概略的なブロック図は
マルチメディアマルチプロセッサシステム100内のマ
ルチメディア信号プロセッサ104を示している。マル
チメディア信号プロセッサ104は複数個のマルチメデ
ィアインタフェースに連結されたディジタル信号処理器
(DSP)コア202を備える。
【0015】DSPコア202はマルチメディア信号プ
ロセッサ104の計算エンジンであり、RISC制御プ
ロセッサ204、ベクトルプロセッサ206、キャッシ
ュサブシステム208、高速バスFBUS210及びI
/Oバス212を備える。制御プロセッサ204は英国
のARM会社で設計し製作した32−ビットARMTM
御プロセッサであって、実施間運営システム動作、割り
込み及び例外ハンドリング、入/出力素子管理、ホスト
コンピュータとの通信などのような一般的な処理機能を
遂行する。一つの実施の形態において、制御プロセッサ
204は40MHzで動作する。制御プロセッサ204
はコプロセッサインタフェース242を介してベクトル
プロセッサ206とインタフェースする。
【0016】制御プロセッサ204は命令処理間発生す
る一般的な非定常条件、即ち例外に応答して例外ハンド
リングを実行して実行制御フローを変更させる。制御プ
ロセッサ204は、リセット条件、中断(データ)条
件、FIQ、IRQ、中断(先取り)条件、及び不明な
命令トラップまたはソフトウェア割り込みを含む高次優
先順位から低次優先順位まで順次に並べられた七つの例
外に応答する。
【0017】図3に示される概略的なブロック図は、命
令デコーダ及び制御ロジック302により制御されるA
RM7制御プロセッサ204を示している。制御プロセ
ッサ204は書き込みデータレジスタ304そして命令
パイプライン及び読み取りデータレジスタ306を介し
てキャッシュサブシステム208と通信する。制御プロ
セッサ204は31x32−ビットレジスタバンク31
2のデータをアドレッシングするためのアドレスレジス
タ308とアドレス増分器310を備える。制御プロセ
ッサ204は32−ビットALU314、バレルシフタ
316及びブース掛け算器(Booth's multiplier)318
を備える。コプロセッサインタフェース242を介して
制御プロセッサ204とベクトルプロセッサ206との
間の演算コードと命令引数を伝達するnOPC、nCP
I、CPA及びCPB信号ラインを経由してコプロセッ
サインタフェース242は命令デコーダ及び制御ロジッ
ク302に直接連結される。
【0018】図4は制御プロセッサ204の機能図を示
している。ベクトルプロセッサ206はマルチメディア
信号プロセッサ104のディジタル信号処理エンジンで
ある。ベクトルプロセッサ206は単一命令−マルチプ
ルデータアーキテクチャーを有し、離散コサイン変換
(DCT;Dicscrete Cosine Transforms)、FIRフィ
ルタリング、畳み込み(convolution)、動画推定及び他
の処理動作のような信号処理機能を並列に実行するため
にマルチプルデータ要素上で動作するパイプラインのR
ISCエンジンを備える。ベクトルプロセッサ206は
ベクトル処理と同様に、複数個のベクトル実行ユニット
によってマルチプルデータ要素が並列に動作されるベク
トル演算を支援する。ベクトルプロセッサ206はスカ
ラー演算そして結合されたベクトル−スカラー演算の両
方とも実行する。ベクトルプロセッサ206のマルチプ
ルデータ要素は、1サイクル当たり(例えば、12.5
ns)32 8/9−ビット固定小数点算出演算速度、
16 16−ビット固定小数点算出演算速度、8 32
−ビット固定小数点または浮動小数点算出演算速度で計
算される576−ビットベクトルでパック(pack)
される。大抵の32−ビットスカラー演算は1サイクル
当たり1命令速度でパイプラインされ、反面、大部分の
576−ビットベクトル演算は2サイクル内において1
命令速度でパイプラインされる。ロード及び貯蔵動作は
算出動作と並行され別途のロード及び貯蔵回路により独
立的に実行される。
【0019】図5を参照すると、ベクトルプロセッサ2
06は命令取り出しユニット502、命令デコーダ及び
発行者(issuer)504、命令実行データ経路506そし
てロード及び貯蔵ユニット508の四つの機能ブロック
をもつ。命令取り出しユニット502と命令デコーダ及
び発行者504はベクトルプロセッサ206内に含ま
れ、ベクトルプロセッサ206を制御プロセッサ204
と独立的に動作させる。
【0020】命令取り出しユニット502は命令を先取
り(prefetch)してサブルーチン命令へのブランチ(Branc
h)及びジャンプ(Jump)のような制御フロー命令を処理す
る。命令取り出しユニット502は現在実行ストリーム
用先取りされた命令の16−エントリキュー(queu
e)とブランチターゲットストリーム用プリフェッチさ
れた命令の8−エントリキューを含む。命令取り出しユ
ニット502は1サイクル内で命令キャッシュから8個
の命令まで受け取る。命令デコーダ及び発行者504は
ベクトルプロセッサ206により実行された全ての命令
をデコードしてスケジューリングする。デコーダは命令
取り出しユニット502から受付順に1サイクル内で1
命令を処理する反面、発行者は実行資源及び被演算者デ
ータ使用可能度(availability)全てに関係する無秩序な
ほとんどの命令をスケジューリングする。
【0021】図6を参照すれば、命令実行データ経路5
06は4端子レジスタファイル602、8個の32x3
2並列掛け算器604と8個の36−ビットALU60
6を備える。レジスタファイル602はサイクル当たり
二回の読み取り動作及び二回の書き込み動作を支援す
る。並列掛け算器604はサイクル当たり整数または浮
動小数点フォーマットで8個の32−ビット乗算、16
個の16−ビット乗算または32個の8−ビット乗算を
行う。ALU606はサイクル当たり(例えば12.5
ns)整数または浮動小数点フォーマットで8個の36
−ビットALU演算、16個の16−ビットALU演算
または32個の8−ビットALU演算まで実行する。
【0022】レジスタファイル602は複数個の専用レ
ジスタと複数個のリターンアドレスレジスタを備える。
専用レジスタはベクトル制御及びステータスレジスタV
CSR、ベクトルプログラムカウンタVPC、ベクトル
例外プログラムカウンタVEPC、ベクトル割り込みソ
ースレジスタVISRC、ベクトル及び制御プロセッサ
同期レジスタVASYNCそして多様なカウント、マス
ク、オーバフロー及び区切り点レジスタのような他のレ
ジスタを備える。ベクトルプログラムカウントVPCは
ベクトルプロセッサ206により実行される次の命令の
アドレスである。ベクトル割り込みソースレジスタVI
SRCは制御プロセッサ204に対する割り込みソース
である。VISRCの適切なビットは例外検出時ハード
ウェアによって設定される。ビットはベクトルプロセッ
サ206の実行開始前にソフトウェアによりリセットさ
れる。VISRCのいずれか一つのビットはベクトルプ
ロセッサ206がVP_IDLE状態に入るようにす
る。対応する割り込みイネーブルビットはコプロセッサ
インタフェース242内のVIMSKレジスタでセット
されるがIRQ割り込みは制御プロセッサ204へ伝送
される。
【0023】ベクトルプロセッサ206は明確な例外及
び不明確な例外を含む例外条件を検出する。明確な例外
はベクトルプロセッサ206により検出されて障害(fau
lting)命令以前に報告される。明確な例外は命令アドレ
ス区切り点例外、データアドレス区切り点例外、無効命
令例外、単一段階例外、リターンアドレススタックオー
バフロー例外、VCINT例外そしてVCJOIN例外
を含む。ベクトルプロセッサ206の不明な例外は障害
命令に対してプログラム順序の遅い命令の変数実行後検
出され報告される。不明な例外は無効命令アドレス例
外、無効データアドレス例外、整列されないデータアク
セス例外、整数オーバフロー例外、浮動小数点オーバフ
ロー例外、浮動小数点無効被演算者例外、ゼロによる浮
動小数点除算例外、そしてゼロによる整数除算例外を含
む。
【0024】ベクトル割り込み命令レジスタVIINS
は命令が制御プロセッサ204を割り込むために実行さ
れるときベクトルプロセッサVCINTまたはVCJO
IN命令により更新(up-date)される。
【0025】ベクトルプロセッサ206は制御プロセッ
サ204により実行されるコプロセッサ割り込み命令C
PINTとマルチプルネストされたジャンプからベクト
ルプロセッサ206内のソフトウェアにより実行された
サブルーチン命令から生じるハードウェアスタックオー
バフローを含む2つの特殊条件を認識する。マルチメデ
ィア信号プロセッサ104によって発生された他の割り
込み及び例外条件は制御プロセッサ204により処理さ
れる。
【0026】ベクトルプロセッサ206はベクトルプロ
セッサ206をアイドルVP_IDLE状態に位置させ
るシステムリセットの際、命令のパワーアップシーケン
スを実行する。制御プロセッサ204がベクトルプロセ
ッサ206内のレジスタを初期化させ制御プロセッサ命
令セットのSTARTVP命令を用いてベクトルプロセ
ッサ206の動作を活性化させるときまでベクトルプロ
セッサ206はVP_IDLE状態にとどまる。
【0027】図2を参照すれば、制御プロセッサ204
はベクトルプロセッサ206の動作を初期化させる。殊
に、制御プロセッサ204は制御プロセッサ204の命
令セットに対して拡張を通してベクトルプロセッサ20
6との相互作用を制御する。命令セット拡張はSTAR
TVPとINTVP命令のようなコプロセッサデータ演
算、コプロセッサデータ伝送、TESTSET命令そし
てベクトルプロセッサ206の読み取り及び書き込みレ
ジスタ用MFVP、MTVP、MFER及びMTER命
令のようなコプロセッサレジスタ伝送を含む。
【0028】制御プロセッサ204はSTARTVP命
令を用いてベクトルプロセッサ206を開始させる。S
TARTVP命令はベクトルプロセッサ206が実行中
であることを示すVP_RUN状態に入るようにする。
STARTVPはベクトルプロセッサ206が既にVP
_RUN状態に存すればいずれもしない。STARTV
P命令に応答して制御プロセッサへ通信される結果は無
く、制御プロセッサ204は次のSTATRVPの実行
を続ける。STARTVP命令は条件コードを設定する
コプロセッサデータ演算フォーマットCDP命令に次い
で呼び出される。STARTVP命令は下記のアセンブ
ラ構文を用いて呼び出される。
【0029】 CDP{cond} p7、0、c0、c0、c0 STARTVP{cond}
【0030】ここで、これらの条件はequal(eq), not e
qual(ne), carry set(cs), carry clear(cc), minus(m
i), plus(pl)そして他の条件を含む。STARTVPは
条件が真(true)である場合のみ実行される。制御
プロセッサ204はSTARTVP命令を用いてベクト
ルプロセッサ206へ実行開始のための要求信号を伝送
し、ベクトル割り込みソースVISRCレジスタのベク
トルプロセッサジョイントビットVISRC<vjp>
とベクトルプロセッサ割り込みビットVISRC<vi
p>を自動的にクリアさせる。STARTVPを呼び出
すとき制御プロセッサ204はベクトルプロセッサ20
6が実行を開始することを待たず次の命令を実行し続け
る。ベクトルプロセッサ206の状態はSTARTVP
が呼び出される前に所望のように初期化されるべきであ
る。ベクトルプロセッサ206が既にVP_RUN状態
にあればSTARTVP命令は何らの影響も与えない。
ベクトルプロセッサの使用不能例外はSTARTVP命
令の間発生される。
【0031】制御プロセッサ204は割り込みベクトル
プロセッサINTVP命令を使用してベクトルプロセッ
サ206を停止させる。INTVP命令はベクトルプロ
セッサ206が実行されないことを示すVP_IDLE
状態でベクトルプロセッサ206が入るようにする。I
NTVPはベクトルプロセッサが実行されなければいず
れもしない。INTVP命令に応答して制御プロセッサ
に通信される結果は無く制御プロセッサ204は次のI
NTVPを引き続き実行する。INTVP命令は条件コ
ードを設定するコプロセッサデータ演算フォーマットC
DP後に呼び出される。INTVP命令は条件が真(t
rue)であるときしか実行されない。すなわち、IN
TVP命令は下記のアセンブラ構文を用いて呼び出され
る。
【0032】 CDP{cond} p7、1、c0、c0、c0 INTVP{cond}
【0033】ここで、これらの条件はequal(eq), not e
qual(ne), carry set(cs), carry clear(cc), minus(m
i), plus(pl)そして他の条件を含む。制御プロセッサ2
04はINTVP命令を用いてベクトルプロセッサ20
6に実行中止要求信号を伝送する。INTVP命令を呼
び出すとき制御プロセッサ204はベクトルプロセッサ
206の中止を待たずに次の命令を実行し続ける。拡張
されたレジスタMFER命令からの移動はベクトルプロ
セッサ206が中止されたか否かを決定するために典型
的にINTVP命令の次に使う。INTVP命令はベク
トルプロセッサ206がすでにVP_IDLE状態にあ
れば何らの影響も与えない。ベクトルプロセッサの使用
不能例外はINTVP命令の間発生される。
【0034】制御プロセッサ204はテスト及び設定T
ESTSET命令を使用し、同期用テストを含むベクト
ルプロセッサ206の動作状態をテストする。TEST
SETは使用者−拡張レジスタを読み取ってレジスタの
ビット30を“1”に設定することにより、ベクトルプ
ロセッサ206と制御プロセッサ204との間に生産者
/注文者形の同期を提供する。TESTSETは制御プ
ロセッサ204をレジスタが伝送されるまで停止させ
る。
【0035】制御プロセッサ204は条件コードを設定
するコプロセッサレジスタ伝送動作(MRC、MMC
R)命令に次いでTESTSET命令を要求する。TE
STSET命令は条件が真であるときのみ実行される。
TESTSET命令は下記のアセンブラ構文を用いて呼
び出される。
【0036】MRC{cond} p7、0、Rd、
c0、cER、0 TESTSET{cond} Rd、RNAME
【0037】ここで、これらの条件はequal(eq), not e
qual(ne), carry set(cs), carry clear(cc), minus(m
i), plus(pl)そして他の条件を含む。Rdは制御プロセ
ッサ204内のレジスタである。ERはコプロセッサイ
ンタフェース242内の拡張されたレジスタであり、R
NAMEはUER1或いはVASYNCのような構造的
に特殊なレジスタ簡略記憶記号(mnemonic)として見なさ
れる。
【0038】他の制御プロセッサ命令はベクトルプロセ
ッサスカラー/専用レジスタを制御プロセッサ204の
一般レジスタに伝送する。しかも、他の制御プロセッサ
命令は制御プロセッサレジスタをベクトルプロセッサス
カラー/専用レジスタへ伝送する。
【0039】例えばMFVP命令はデータをベクトルプ
ロセッサスカラー/専用レジスタから制御プロセッサ2
04の一般レジスタに移動させる。MFVP命令は条件
コードを設定するコプロセッサレジスタ伝送動作(MR
C、MCR)命令に次いで呼び出される。MFVP命令
は条件が真であるときのみ実行される。MFVP命令は
下記のアセンブラ構文を用いて呼び出される。
【0040】MRC{cond} p7、1、Rd、
CRn、CRm、0 MTVP{cond} Rd、RNAME
【0041】ここで、これらの条件はequal(eq), not e
qual(ne), carry set(cs), carry clear(cc), minus(m
i), plus(pl)そして他の条件を含む。コプロセッサ番号
コードp7はベクトルプロセッサ206を指定する。R
dは制御プロセッサ204内のレジスタである。CRn
およびCRmはベクトルプロセッサ206内のスカラー
/専用レジスタである。RNAMEはSP0またはVC
SRのような構造的に特殊なレジスタ簡略記憶記号と見
なされる。制御プロセッサ204はMFVP命令を呼び
出してベクトルプロセッサ206内のスカラー/専用レ
ジスタCRnとCRmからデータを制御プロセッサレジ
スタRdに伝送する。ベクトルプロセッサの使用不能例
外はMFVP命令の間発生する。
【0042】ベクトルプロセッサMTVP命令に対する
移動はデータを制御プロセッサ204内の一般レジスタ
からベクトルプロセッサのスカラー/専用レジスタに移
動させるものである。MTVP命令は条件コードを設定
するコプロセッサレジスタ伝送動作(MRC、MCR)
命令に次いで呼び出される。MTVP命令は条件が真で
あるときのみ実行される。MTVP命令は下記のアセン
ブラ構文を用いて呼び出される。
【0043】MRC{cond} p7、1、Rd、C
Rn、CRm、0 MTVP{cond}Rd、RNAME
【0044】ここで、これらの条件はequal(eq), not e
qual(ne), carry set(cs), carry clear(cc), minus(m
i), plus(pl)そして他の条件を含む。コプロセッサ番号
コードp7はベクトルプロセッサ206を指定する。R
dは制御プロセッサ204内のレジスタである。CR
n,CRmはベクトルプロセッサ206内のスカラー/
専用レジスタである。RNAMEはSP0又はVCSR
のような構造的に特殊なレジスタ簡便記憶記号と見なさ
れる。制御プロセッサ204はMTVP命令を呼び出し
て制御プロセッサRd内のデータをベクトルプロセッサ
206内のスカラー/専用レジスタCRnとCRmへ伝
送する。ベクトルプロセッサ使用不能例外はMTVP命
令の間発生される。
【0045】MFVPとMTVPはベクトルプロセッサ
206がVP_IDLE状態にあるときのみ遂行される
べきである。制御プロセッサ204とベクトルプロセッ
サ206との間に直接的な通信は行われない。各伝送は
コプロセッサインタフェース242により例示的な実施
の形態から提供される中間記憶領域(intermediate stor
age)を用いる。
【0046】MFVPとMTVP命令は制御プロセッサ
204がベクトルプロセッサ206内の制御及びステー
タスレジスタを自由に読み取り及び書き込み可能にす
る。つまり、制御プロセッサは運用システムまたは応用
プログラムの実行間ベクトルプロセッサの動作を制御す
る。制御プロセッサ204がベクトルプロセッサ206
の実行とは関係なくベクトルプロセッサ206の制御及
びステータスレジスタにアクセスし、同一制御及びステ
ータスレジスタが制御プロセッサ204とベクトルプロ
セッサ206により並列にアクセスされるのでMFVP
とMTVP命令はベクトルプロセッサ206がVP_I
DLE状態にある場合のみ実行されなければならない。
【0047】拡張レジスタMTER命令に対する移動は
データを制御プロセッサ204から特殊拡張レジスタに
移動させる。MTER命令は条件コードを設定するコプ
ロセッサレジスタ伝送動作(MRC、MCR)命令に次
いで呼び出される。MTER命令は条件が真であるとき
のみ実行される。MTER命令は下記のアセンブラ構文
を用いて呼び出される。
【0048】MRC{cond} p7、1、Rd、c
P、cER、0 MTER{cond}RNAME、Rd
【0049】ここで、これらの条件はequal(eq), not e
qual(ne), carry set(cs), carry clear(cc), minus(m
i), plus(pl)そして他の条件を含む。Rdは制御プロセ
ッサ204内のレジスタである。Pは選ばれたコプロセ
ッサを指定するもので、ERは該コプロセッサP内の拡
張レジスタを指定する。RNAMEはPER0又はCS
Rのような構造的に特殊なレジスタ簡便記憶記号と見な
される。制御プロセッサ204はMTER命令を呼び出
して制御プロセッサレジスタRd内のデータを指定され
たコプロセッサP内の指定された拡張レジスタERへ移
動させる。指定されたコプロセッサに対して試みられた
アクセスのあいだ保護違反はMTER命令間発生され
る。
【0050】拡張レジスタMFER命令に対する移動は
指定されたコプロセッサ内の拡張されたレジスタからの
データを制御プロセッサ204内のレジスタに移動させ
ることである。MFER命令は条件コードを設定するコ
プロセッサレジスタ伝送動作(MRC、MCR)命令に
次いで呼び出される。MFER命令は条件が真であると
きのみ実行される。MFER命令は下記のアセンブラ構
文を用いて呼び出される。
【0051】 MRC{cond} p7、2、Rd、cP、cER、
0MTER{cond}Rd、RNAME
【0052】ここで、これらの条件はequal(eq), not e
qual(ne), carry set(cs), carry clear(cc), minus(m
i), plus(pl)そして他の条件を含む。コプロセッサ番号
コードp7はベクトルプロセッサ206を指定する。コ
プロセッサ番号p7はベクトルプロセッサ206を指定
する。Rdは制御プロセッサ204内のレジスタであ
る。Pは選ばれたコプロセッサを指定するもので、ER
はコプロセッサP内の拡張レジスタを指定する。RNA
MEはPER0又はCSRのような構造的に特殊なレジ
スタ簡便記憶記号と見なされる。制御プロセッサ204
はMFER命令を呼び出して指定されたコプロセッサP
内の指定された拡張レジスタERからのデータをレジス
タRdに移動させる。指定されたコプロセッサに対して
試みられたアクセス間保護違反はMTER命令の間発生
される。
【0053】図7はコプロセッサインタフェース242
に対する概略的なブロック図である。同図において、コ
プロセッサインタフェース242は制御プロセッサ20
4の命令セットを拡張する命令を遂行するためのレジス
タとロジック機能を加えて制御プロセッサ204の機能
性を補う。コプロセッサインタフェース242は制御プ
ロセッサ204とベクトルプロセッサ206間の通信の
ためのレジスタを含む。コプロセッサインタフェース2
42はやはり別のクロック速度で動作する構造間のデー
タと信号通信のためのバッファとしての役割をも果た
す。一つの実施の形態では制御プロセッサ204は40
MHz速度(rate)で動作し、ベクトルプロセッサ206
は80MHzで実行する。
【0054】コプロセッサインタフェース242はデコ
ーダ702、ステートマシン704、特権拡張レジスタ
ブロック706および使用者拡張レジスタブロック70
8を具備する。特権拡張レジスタブロック706と使用
者拡張レジスタブロック708内のレジスタは、制御プ
ロセッサ204及びベクトルプロセッサ206により読
み取りおよび書き込み可能である。デコーダ702は制
御プロセッサ命令セットの命令を復号化する。制御プロ
セッサ命令セットは制御プロセッサ204上で実行可能
な命令と制御プロセッサにより実行不能であるが、その
代わりにコプロセッサインタフェース242により実行
され特殊コプロセッサ機能性が遂行できる命令を含む。
デコーダ702は制御プロセッサ命令を復号化し拡張さ
れた命令を検出して実行するためのステートマシン70
4へ検出された拡張命令を供給する。ステートマシン7
04は拡張命令を遂行するためのロジックを具備する。
【0055】特権拡張レジスタブロック706は制御プ
ロセッサ204により特殊命令の実行間アクセスされる
拡張レジスタである。特権拡張レジスタブロック706
は制御レジスタCTR、プロセッサバージョンレジスタ
PVR、ベクトル割り込みマスクレジスタVIMSK、
命令アドレス区切り点レジスタAIABR、データアド
レス区切り点レジスタADABR、スクラッチパッドレ
ジスタSPREG及びステータスレジスタSTRを具備
する。特権拡張レジスタブロック706は制御プロセッ
サ204とベクトルプロセッサ206の同期のために優
先的に使用される。
【0056】一つの実施の形態では、使用者拡張レジス
タブロック708のレジスタはビット<30>にマッピ
ングされた単一ビットをもつのでビット<31>と<2
9:0>は“0”として読み出される。使用者拡張レジ
スタブロック708はベクトルプロセッサステートフラ
グVPSTATEとベクトル及び制御プロセッサ同期化
VASYNCフラグを具備する。VPSTATEはビッ
ト<30>がセットされるときベクトルプロセッサ20
6がVP_RUN状態にあることを示す。ビット<30
>がリセットされるとき、ベクトルプロセッサ206は
VP_IDLE状態にあり、実行される次の命令をアド
レッシングするプログラムカウンタと共に中止される。
VASYNCはベクトルプロセッサ206と制御プロセ
ッサ204との間の生産者−消費者同期化を許容する。
VASYNCフラグはベクトルプロセッサ206内で実
行するVMOVによりセット又はリセットされる。な
お、VASYNCは拡張レジスタMFERからの移動、
拡張レジスタMTERへの移動またはTESTSET命
令を使用する制御プロセッサ204の処理によってセッ
ト又はリセットされる。
【0057】パワーアップリセット時、特権拡張レジス
タブロック706と使用者拡張レジスタブロック708
の全てのビットはリセットされ、ベクトルプロセッサ2
06はアイドル状態になる。
【0058】ベクトル割り込みマスクレジスタVIMS
Kはベクトルプロセッサ206内で発生する例外を制御
プロセッサ204に報告することを制御する。ベクトル
割り込みソースVISRCレジスタにおいて対応のビッ
トによってセットされるときVIMSKビットは制御プ
ロセッサ204を割り込む例外をイネーブルさせる。V
ISRCレジスタは複数個の例外と割り込みのソースを
示す複数個のビットを含んでいる。VIMSKレジスタ
のビットはデータアドレス区切り点割り込みイネーブル
DABE、命令アドレス区切り点割り込みイネーブルI
ABE及び単一ステップ割り込みイネーブルSSTPE
を具備する。
【0059】VIMSKはさらに浮動小数点オーバフロ
ーFOVE、無効被演算者FINVEとゼロによる除算
FDIVE割り込みイネーブルビット及び整数オーバフ
ローIOVEとゼロによる除算IDIVE割り込みイネ
ーブルビットを制御する。VIMSKはやはりVCIN
T割り込みイネーブルVIE、VCJOIN割り込みイ
ネーブルVJEと文脈転換イネーブルCSEを制御す
る。
【0060】ベクトルプロセッサ206は制御プロセッ
サ204へ信号を伝送することによって制御プロセッサ
204と相互作用する。特に、ベクトルプロセッサ20
6は制御プロセッサ204に書き込みアクセス及び読み
取りアクセスを提供するロジックを含む。ベクトルプロ
セッサ206はVCJOIN命令とVCINT命令を使
用し、ベクトルプロセッサ206が同期命令を遂行する
ことを示す使用者拡張レジスタを経由して間接的に制御
プロセッサ204に信号を伝送する。ベクトルプロセッ
サ206は、また、ベクトルプロセッサ206が実行を
中止しVP_IDLE状態に入ったことを示す割り込み
要求を通して直接的に制御プロセッサ204に信号を伝
送する。ベクトルプロセッサ206は制御プロセッサ2
04へと信号を伝送するための二つの命令を実行する。
VCJOIN命令(VCJOINn)は条件的に制御プ
ロセッサ204と結合してベクトルプロセッサ206が
中止されてVP_IDLE状態に入るようにする。ベク
トルプロセッサ206内のプログラムカウンタ(図示せ
ず)はVCJOIN命令の後続の命令をアドレスする。
VCINT命令(VCINT n)は制御プロセッサ2
04を条件的に割り込ませてベクトルプロセッサ206
が中止されてVP_IDLE状態に入るようにする。ベ
クトルプロセッサ206内のプログラムカウンタはVC
INT命令の後続の命令をアドレスする。VCINTと
VCJOIN命令は制御フロークラスに分類されるベク
トルプロセッサ206により実行される命令である。制
御フロー命令はブランチ、減少及びブランチ、ジャン
プ、サブルーチンからのリターン、そして文脈転換と障
壁(barrier)命令のような多様な条件命令を具備する。
【0061】条件文脈転換VCCS命令、条件割り込み
VCINT命令及び条件結合VCJOIN命令を具備し
たベクトルプロセッサ206上で実行する複数個の命令
は割込と例外処理のために使われる。
【0062】イネーブルされると、条件割り込みVCI
NT命令はベクトルプロセッサ206の実行を中止し制
御プロセッサ204を割り込む。VCINT命令はVC
INT割り込みを発生させる。条件割り込みVCINT
命令のアセンブラ構文は次の通りである。
【0063】VCINT.cond#ICODE condは定義された条件コードであり、#ICODE
は制御プロセッサ204により使用常数を識別する23
−ビット値である。条件コードcondはunconditiona
l(un), less than(lt), equal(eq), less than or equa
l to(le), greater than(gt), not equal(ne), greater
than or equal to(ge)、及びoverflow(ov)の条件コー
ドから選択される。VCINT動作は下記のように疑似
コードによって説明される。
【0064】 If ((cond==VCSR[SO, GT, EQ, LT])|(cond==un)){ VISRC<vip>=1; VIINS = [VCINT.cond #ICODE instruction]; VEPC = VPC; if (VIMSK<vie>==1)signal control processor int; VP_STATE = VP_IDLE; } else VPC= VPC+4;
【0065】従って、ベクトル制御及びステータスレジ
スタVCSRは条件コードをマッチさせるとか、或いは
条件コードが無条件である場合であればベクトル割り込
みソースVISRCレジスタのベクトル割り込みビット
はセットされ、ベクトル割り込み命令レジスタVIIN
Sは#ICODEパラメータにより識別された命令でロ
ードされ、ベクトル例外プログラムカウンタVEPCは
ベクトルプロセッサ206のプログラムカウンタからの
値でロードされる。ベクトル割り込み命令レジスタVI
INSはVCINT命令の識別子、条件及び#ICOD
E引数でロードされ、(1)ベクトルプロセッサ206
が制御プロセッサ204を割り込ませる理由と、(2)
ソフトウェア割り込みサービスルーチンを実行する時制
御プロセッサ204により使用常数値に関係する情報を
制御プロセッサ204に提供する。VIMSKレジスタ
のベクトルプロセッサ割り込みイネーブルビットがセッ
トされると、ベクトルプロセッサ206は割り込み信号
IRQを制御プロセッサ204へ送る。ベクトルプロセ
ッサ206の状態VP_STATEはアイドル状態にセ
ットされる。しかし、条件コードが無条件でなく制御コ
ードがベクトル制御及びステータスレジスタVCSRと
マッチングされなければ、VCINT命令はプログラム
カウンタが4ずつ増加することを除いては無視される。
【0066】もしもイネーブルされると、制御プロセッ
サタスクVCJOIN命令との条件結合はベクトルプロ
セッサ206の実行を中止し、制御プロセッサ204内
で動作するタスクと結合される。VCJOIN命令はV
CJOIN割り込みを発生させることもできる。
【0067】条件割り込みVCJOIN命令のアセンブ
ラ構文は下記のようである。 VCJOIN.cond#Offset ここで、condは定義された条件コードであり、#O
ffsetは順次に活性化されるベクトルプロセッササ
ービスルーチンのベクトルプロセッサ206のメモリ内
のVCJOIN命令の位置に係るオフセットを識別する
23−ビット値である。VCJOIN命令は制御プロセ
ッサ204内で実行する割り込みサービスルーチンを活
性化させる。制御プロセッサ204は#Offsetパ
ラメータを貯蔵し定義された割込サービスルーチンを実
行する。割込サービスルーチンが完了される間、制御プ
ロセッサ204は定義された動作を遂行して、次のプロ
セスのためにベクトルプロセッサ206内のレジスタを
セットさせる。割込サービスルーチン完了時、制御プロ
セッサ204はSTARTVP命令を用いてベクトルプ
ロセッサ206をスタートさせ貯蔵されたアドレス#O
ffsetをベクトルプロセッサ206が実行を開始す
るときのサブルーチンの位置として指定される。オフセ
ット引数はブランチ命令と同様に制御プロセッサにより
使用され、制御プロセッサ204によって実行された命
令のシーケンスを指示する。VCJOIN命令の使用例
は、ここで完全に参考文献となっている米国特許出願
(No.xx/xxx,xxx)、代理人文書No.M−4365U
S、S.P.Song外の“マルチプロセッサ内の有効
な文脈貯蔵及び復元”(EFFICIENT CONTEXT SAVING AND
RESTORING IN MULTIPROSESSORS)に開示された。条件コ
ードcondはunconditional(un), less than(lt), eq
ual(eq), less than or equal to(le), greater than(g
t), not equal(ne), greater than or equal to(ge)及
びoverflow(ov)の条件コードから選択される。VCJO
IN動作は下記のように疑似コードにより説明される。
【0068】 If ((cond==VCSR[SO, GT, EQ, LT])|(cond==un)){ VISRC<vjp>=1; VIINS = [VCJOIN.cond #Offset instruction]; VEPC = VPC; if (VIMSK<vje>==1)signal control processor int; VP_STATE = VP_IDLE; } else VPC= VPC+4;
【0069】したがって、ベクトル制御及びステータス
レジスタVCSRは条件コードをマッチさせるとか、あ
るいは条件コードが無条件である場合であればベクトル
割込ソースVISRCレジスタのベクトル結合ビットは
セットされ、ベクトル割込命令レジスタVIINSは#
Offsetパラメータにより識別された命令でロード
され、ベクトル例外プログラムカウンタVEPCはベク
トルプロセッサ206のプログラムカウンタからの値で
ロードされる。ベクトル割込命令レジスタVIINSは
VCJOIN命令の識別子、条件及び#Offset引
数でロードされ、(1)ベクトルプロセッサ206が制
御プロセッサ204を割り込む理由と、(2)制御プロ
セッサ204がベクトルプロセッサ206を再活性化さ
せるときベクトルプロセッサルーチンの命令シーケンス
フローを指示するためのブランチオフセットを示すベク
トルプロセッサ206の命令メモリ内のアドレスまたは
ラベルからオフセットに係る情報を制御プロセッサ20
4に提供する。VIMSKレジスタのベクトルプロセッ
サ結合イネーブルビットがセットされると、ベクトルプ
ロセッサ206は割り込み信号IRQを制御プロセッサ
204へ送る。ベクトルプロセッサ206の状態VP_
STATEはアイドルIDLE状態にセットされる。し
かし、条件コードが無条件である制御コードがベクトル
制御及びステータスレジスタVCSRとマッチングされ
なければVCJOIN命令はプログラムカウンタが4ず
つ増加することを除いて無視される。
【0070】条件文脈転換VCCS命令は、VIMSK
レジスタの文脈転換イネーブルビットVIMSK<cs
e>が真であれば文脈転換サブルーチンへの中間(遅延
しない)ジャンプを実行する。VIMSK<cse>が
真であれば、VPC+4でのリターンアドレスはリター
ンアドレスタックに貯蔵される。もしそうでなければア
ドレスVPC+4で例外は続けられる。VCCS命令は
リターンアドレススタックオーバフロー例外を発生され
ることもできる。条件文脈転換VCCS命令のアセンブ
ラ構文は下記のようである。
【0071】VCCS#Offsetここで、#Off
setは文脈サブルーチンの位置を識別する23−ビッ
ト値である。VCCS動作は下記のように疑似コードに
より説明される。
【0072】 If VIMSK<cse>==1) { if (VSP<4> > 15) { VISRC<RASO> = 1; signal control processor with RASO; VP_STATE = VP_IDLE; } else RSTACK[VSP<3:0>]=VPC+4; VSP<4:0> = VSP<4:0>+1; VPC = VPC + 4; } } else VPC=VPC+4;
【0073】従って、VIMSKレジスタの文脈転換イ
ネーブルビットがセットされると、リターンスタックポ
インタVSPはオーバフローをテストする。オーバフロ
ー条件が発生すればベクトル割り込みソースVISRC
レジスタのリターンアドレススタックオーバフロービッ
トはセットされ、ベクトルプロセッサ206は制御プロ
セッサ204へリターンアドレススタックオーバフロー
例外を送り、ベクトルプロセッサ206の状態VP_S
TATEはアイドル状態にセットされる。もし、オーバ
フロー条件が発生されなければ4ずつ増加するプログラ
ムカウンタはリターンアドレススタックRSTACKに
押され(push)、リターンスタックポインタVSP
は1ずつ増加し、ベクトルプロセッサ206のプログラ
ムカウンタVPCは#Offset×4の符号拡張され
た積だけ増加する。VIMSKレジスタの文脈転換イネ
ーブルビットがセットされなければ、VCCS命令はプ
ログラムカウンタが4ずつ増加することを除いては無視
される。
【0074】制御プロセッサ204とベクトルプロセッ
サ206は、一旦ベクトルプロセッサ206の動作が制
御プロセッサ204によりSTARTVP命令の実行に
次いで実行し始めると、並列に独立的に動作する。制御
プロセッサ204とベクトルプロセッサ206の独立的
な並列動作は特殊制御命令を使用して同期化する。二つ
のスレッド(thread)の同時実行の支援:一つは制御プロ
セッサ204上におけるスレッドであり、もう一つはベ
クトルプロセッサ206上におけるスレッド、はタスク
実行速度を相当増加させMSPプロセッサ群の多様なプ
ロセッサへ制御プロセッサ204上で動作する命令コー
ドの移植(porting)を容易にする。例示された
実施の形態で、ベクトルプロセッサ206は80MHz
速度で動作する。
【0075】図2を参照すれば、キャッシュサブシステ
ム208はデータキャッシュ214(例えば、5K
B)、命令キャッシュ216(例えば2KB)及びキャ
ッシュロム218(例えば16KB)を具備し、典型的
にベクトルプロセッサ(80MHz)と同一速度で動作
する。一つの実施の形態では、キャッシュサブシステム
208は制御プロセッサ204用1Kbyteの命令貯
蔵領域と1Kbyteのデータ貯蔵領域、そして制御プ
ロセッサ204とベクトルプロセッサ206用の共用1
6Kbyte統合命令とデータキャッシュロムを備え
る。キャッシュサブシステム128は32−ビットデー
タバスを介して制御プロセッサ204とインタフェース
し、128−ビットデータバスを介してベクトルプロセ
ッサ206とインタフェースする。キャッシュロム21
8はuROM初期化ソフトウェア、自己診断ソフトウェ
ア、多様なシステム管理ソフトウェア、ライブラリルー
チン及び選択された命令とデータ常数用キャッシュを備
える。特に、キャッシュロム218は命令例外ハンドラ
と制御プロセッサ204用の入出力デバイス割り込みハ
ンドラ0、1、2、3を具備する。キャッシュロム21
8はベクトルプロセッサ割り込みハンドラと制御プロセ
ッサ204内で実行するベクトルプロセッサ区切り点例
外ハンドラをも具備する。
【0076】FBUS210は例えば32−ビットPC
Iバスインタフェース220、64−ビットSDRAM
メモリコントローラ222、8−チャンネルDMAコン
トローラ224、注文者ASICロジックブロック22
6及びメモリデータ移動者228を備えた複数個のFB
US周辺装置とインタフェースする。PCIバスインタ
フェース220はシステムバス106とインタフェース
し、たとえば33MHzで動作する。注文者ASICロ
ジックブロック226は所望の注文機能を遂行するため
のロジックブロックを供給する。注文者ASICロジッ
クブロック226は、一つの実施の形態で多様なアナロ
グコーデックCODEC及び注文者−特殊I/O素子に
対するインタフェースを具備した10Kゲートを供給す
る。メモリデータ移動者228はホストプロセッサ10
2からのDMAデータをマルチメディア信号プロセッサ
104に位置したSDRAMメモリ230へ伝送する。
【0077】I/Oバス212は例えば、バスストリー
ムプロセッサ232、UART直列ライン234、タイ
マー回路236、割り込みコントローラ238及び特殊
レジスタ240を備えた複数個のI/Oバス素子とイン
タフェースする。バスストリームプロセッサ232はビ
デオビットストリームを処理する。特殊レジスタ240
はソフトウェア的に制御された初期化及び割り込み処理
のために使用される。図8はマルチメディア信号プロセ
ッサ104上で実行するMSPシステムコンポーネント
ソフトウェア802とホストプロセッサ102上で実行
するPC応用及び運用システムソフトウェア808を備
えたソフトウェア及びファームウェアアーキテクチャー
800の概略的なブロック図である。
【0078】同図において、マルチメディア信号プロセ
ッサ104はベクトルプロセッサ206上で実行するベ
クトル化されたDSPファームウェアライブラリ804
と制御プロセッサ204上で実行されるシステム管理機
能ブロック806により制御される。ベクトル化された
DSPファームウェアライブラリ804とシステム管理
機能ブロック806はMSPシステムコンポーネントソ
フトウェア802内に含まれる。アーキテクチャー80
0はホスト応用制御動作から信号処理機能を簡単に分離
させることによってソフトウェア開発を単純化し、ソフ
トウェアデザイン管理を改善し且つ応用開発及び維持費
を減少させる。
【0079】MSPシステムコンポーネントソフトウェ
ア802は排他的に制御プロセッサ204上で実行さ
れ、MSP実時間カーネル810、マルチメディアライ
ブラリモジュール812、システム管理機能ブロック8
06及びベクトル化されたDSPファームウェアライブ
ラリ804を備える。MSP実時間カーネル810は代
表的にホストプロセッサ102、資源管理、I/O素子
ハンドリングそして大部分の割り込み及び例外処理に対
するインタフェースの責任を背負う。MSP実時間カー
ネル810はホストプロセッサ102で実行するWin
dowsTM及びWindows NTTMとインタフェー
スする。MSP実時間カーネル810はまたホストプロ
セッサ102から選択された応用ファームウェアを選択
してダウンロードするためのソフトウェア、制御プロセ
ッサ204とベクトルプロセッサ206で実行用タスク
をスケジューリングするためのソフトウェアそれからメ
モリおよびI/O素子を備えたマルチメディア信号プロ
セッサ104のシステム資源を管理するためのソフトウ
ェアを含む。MSP実時間カーネル810はマルチメデ
ィア信号プロセッサ104のタスク間通信を同期化させ
るためのソフトウェアとMSP関連割り込み、例外及び
ステータス条件を報告するためのソフトウェアを備え
る。
【0080】ベクトル化されたDSPファームウェアラ
イブラリ804は実際に全てのディジタル信号処理機能
を実行する。ベクトル化されたDSPファームウェアラ
イブラリ804はさらに制御プロセッサ204によりベ
クトルプロセッサ206に提起されるコプロセッサ割り
込み或いはベクトルプロセッサ206内で発生されたハ
ードウェアスタックオーバフロー例外のような規定され
た特殊割り込みを制御する。
【0081】マルチメディアライブラリモジュール81
2はデータ通信、MPEGビデオ及びオーディオ、音声
コーディング及び合成、サウンドブラスター(Soun
dBlasterTM)と互換可能なオーディオなどを備
えた通信ハンドリング機能を実行する。MSP実時間カ
ーネル810はマルチメディア信号プロセッサ104上
で実行されるマルチメディア応用を用いる拡張を備えた
実時間、粗状態(robust)、マルチタスク、プリエンプテ
ィブ(pre-emptive)運用システムである。
【0082】ホストプロセッサ102内で実行するPC
応用及び運用システムソフトウェア808はシステムバ
ス106を介してMSP制御及びステータスレジスタを
読み取り及び書き込むことでマルチメディア信号プロセ
ッサ104を制御する。
【0083】MSPプログラム実行は第1実行ストリー
ムを実行する制御プロセッサ204から始まる。制御プ
ロセッサ204はベクトルプロセッサ206内の第2独
立実行ストリームを初期化させる。制御プロセッサ20
4とベクトルプロセッサ206の動作は制御プロセッサ
204内で動作するSTARTVP、INTVP及びT
ESTVP命令を具備した特定コプロセッサ命令とベク
トルプロセッサ206内で実行するVJOINとVIN
T割り込みを備えた特殊命令を通じて同期化される。制
御プロセッサ204とベクトルプロセッサ206との間
のデータ伝送は制御プロセッサ204内で実行されたデ
ータ移動命令を用いて実行される。
【0084】パワーアップ後、マルチメディア信号プロ
セッサ104は自動的に自己診断シーケンスに入って機
能性を全くテストするようになる。自己診断シーケンス
はマルチメディア信号プロセッサ104内の全てのレジ
スタの初期化とマルチメディア信号プロセッサ104の
コンポーネントの機能性を立証するためのオンーチップ
自己診断の実行を備える。自己診断シーケンスの終了
時、マルチメディア信号プロセッサ104はMSP初期
化ソフトウェアをロードさせることから実行し、MSP
実時間カーネル810をロードして実行するMSPシス
テムコンポーネントソフトウェア802を実行する。マ
ルチメディア信号プロセッサ104はPCIバスを通し
たハードウェアによって制御されたシステムリセット、
MSP制御レジスタ内のPCIシステムリセットビット
を介したソフトウェアにより制御されたシステムリセッ
トそして制御プロセッサ204とMSP制御レジスタ内
のベクトル再開始(restart)ビットを介してソフトウ
ェアで制御された再開始を備えた3つのタイプのリセッ
ト動作を支援する。
【0085】図9はマルチメディアマルチプロセッサシ
ステム100内の割り込みと例外処理に係る動作を示し
ているフローチャートである。ベクトルプロセッサ20
6はマルチメディアマルチプロセッサ100内で極めて
制限された制御及び管理機能を実行する。特別にベクト
ルプロセッサ206は例外を発生するが、ベクトルプロ
セッサ206は例外を処理する能力をもっていない。代
わりに、例外及びリセット初期化は制御プロセッサ20
4により処理される。その上制御プロセッサ204はベ
クトルプロセッサ206がアイドル状態にある時のみベ
クトルプロセッサの読み取りおよび書き込みが許容され
る。従って制御プロセッサ204は制御プロセッサとし
て動作しベクトルプロセッサ206は制御プロセッサの
制御のもとに制御されるプロセッサとして動作する。
【0086】このような方法で、マルチメディアマルチ
プロセッサシステム100はベクトルプロセッサ206
と制御プロセッサ204が相互異化制御及びデータ処理
特性をもっている点で非対称の複数個のプロセッサを備
える。非対称プロセッサは単一の運用システムにより制
御される。ベクトルプロセッサ206と制御プロセッサ
204は相互独立的な命令セットをもつ。マルチメディ
アマルチプロセッサシステム100はベクトルプロセッ
サ206が大きなマシンステート又は文脈そして大きな
データ幅と多くのレジスタを備える割り込みと例外処理
のマルチプロセッサ方式定義(architectural definitio
n)を使用する。一つの例示的実施の形態で、ベクトルプ
ロセッサ206は8032−ビットスカラレジスタと4
Kbyteスクラッチパッドメモリに対し、64288
−ビットベクトルレジスタと288−ビットデータ幅を
有する。すなわち、ベクトルプロセッサ206の大きな
マシン状態は相対的に多くのビットをもつレジスタを含
んで相対的に多いレジスタを備える。つまり、ベクトル
プロセッサ206はビットとフラグのような小さなデー
タ構造を処理するために最適化されてはいないが、アレ
イもしくはベクトルのような大きなデータ構造を高効率
的に処理する。すなわち、ベクトルプロセッサ206は
例外を検出するための回路は具備するが制御プロセッサ
204への割り込みと例外処理動作を遅延させる。制御
プログラムは典型的に各フラグとポインタのモニタリン
グおよび制御を包含するので制御プロセッサ204は割
り込みと例外処理のような運用システムプログラムを実
行するのに極めて有益な小さいマシンステートと幅、た
とえば16或いは32−ビットをもつ。
【0087】ベクトルプロセッサ206は例外条件を検
出し、条件をサービスする制御プロセッサ204に割り
込み信号を送り、例外を起こす条件又はソースが制御プ
ロセッサ204によりサービスされるときまでアイドル
状態に入って残っているようにする。マルチメディアプ
ロセッサシステム100の制御は全ての制御動作が単独
の制御プロセッサ204により実行されるため、例外お
よび割り込みコントロール動作が座標化される必要無く
単純化される。
【0088】ベクトルプロセッサ206はMSPアーキ
テクチャーに従って定義され、ベクトルプロセッサ20
6が実行されるかもしくは無限中断される実行をもつか
否かをそれぞれ示すラン状態VP_RUNとアイドル状
態IDLE_STATEで動作する。マルチメディアマ
ルチプロセッサシステム100のリセット時(90
2)、ベクトルプロセッサ206はVP_IDLE状態
に入る(904)。制御プロセッサ204はVP_ID
LE状態の間ベクトルプロセッサ206内でレジスタを
読み取り及び書き込むことのみを許容する(906)。
ベクトルプロセッサ206がVP_RUN状態に存する
とき制御プロセッサ204により実行されベクトルプロ
セッサ206のレジスタに印加される読み取り動作また
は書き込み動作の結果は“境界が定義されていない(bou
ndedly undefined)”である。“境界が定義されていな
い”結果はマルチメディア信号プロセッサ104内の任
意命令シーケンスにより発生されるマルチメディアマル
チプロセッサシステム100の状態である。従って、制
御プロセッサ204によりベクトルプロセッサ206内
のレジスタの読み取り及び書き込みアクセスはベクトル
プロセッサ206がアイドル状態VP_IDLEにある
ときのみ許容される。
【0089】制御プロセッサ204はベクトルプロセッ
サ206内のレジスタを初期化させる(908)。ベク
トルプロセッサ206のレジスタを選択された状態に初
期化させた後、制御プロセッサ204はSTARTVP
命令を実行して(910)ベクトルプロセッサ206の
状態をVP_RUN状態に変化させる(911)。
【0090】ベクトルプロセッサ206が例外条件に出
会った時(912)、ベクトルプロセッサ206はVP
_IDLE状態に入って割り込み要求を制御プロセッサ
204に送る(916)。ベクトルプロセッサ206は
制御プロセッサ204が他のSTARTVP命令を実行
するときまでVP_IDLE状態に残っているようにな
る(918)。制御プロセッサ204はベクトルプロセ
ッサ206内のレジスタを読み取って報告された例外の
特性を決め(920)、定義された方法で例外(92
2)をハンドリングする(922)。その後制御プロセ
ッサ204は所望の場合ベクトルプロセッサ206内の
レジスタを再び初期化させ(924)、ベクトルプロセ
ッサ206の実行をさらに試みる(926)。
【0091】ベクトルプロセッサ206は制御プロセッ
サ204よりはベクトルプロセッサ206内のレジスタ
を貯蔵するとか復元するのに一層効率的である。よっ
て、制御プロセッサ204がベクトルプロセッサ206
をプログラムしてレジスタが文脈転換動作間命令の貯蔵
及び復元を実行するようにするとき性能利点が得られ
る。便利な文脈転換動作は本発明の出願日に出願し、現
在出願中である米国特許出願(出願番号No.xx/xxx,xx
x)(代理人文書番号M−4365)、S.P.Son
g外の“マルチプロセッサの効率的な文脈貯蔵及び復
元”に詳細に記載されている。
【0092】ベクトルプロセッサ206はリセット時と
例外が検出されてシステムデザイン及びプログラミング
を容易で、かつリセット時プロセッサの同期化を単純化
するときVP_IDLE状態に入る。典型的に例外らは
よく発生されなくベクトルプロセッサ206の割り込み
処理はベクトルプロセッサ206の機能及び性能を十分
に減少させなくても極めて単純化される。さらに、例外
の応答は普通制限された有効の特徴として見なされる。
例えば、マルチメディア応用プログラムのような実時間
に実行する多くの通常的な応用プログラムは実時間動作
モードで例外事象に対する応答をディスエーブルさせる
プログラムを含む。他の実施の形態で、ある通常的な応
用プログラムは飽和モードを用いて実時間演算処理間演
算又はアンダーフロー条件を避ける。
【0093】以上、本発明を望ましい実施の形態に関連
して図示し且つ説明したが、本発明がそれに限られるこ
とではなく、特許請求の範囲による本発明の精神や分野
を離脱しない限り、本発明が多様に改造及び変化できる
ということが通常の知識をもつ当業者は容易に分かるこ
とができる。たとえば、実施の形態ではペンティアムホ
ストコンピュータと特別のマルチメディアプロセッサを
備えたマルチプロセッサシステムを用いるシステムとし
て説明された。他のプロセッサ構造が他の実施の形態で
使用されることができる。
【0094】関連した出願に対する相互参考文献この特
許文書は次のような現在出願された特許出願である参考
文献と関連し、これらによって具体化される。米国特許
出願(No.XX/XXX,XXX)、代理人文書No.M-4354US, Le N
guyen"マルチメディア信号プロセッサのマルチプロセッ
サ動作"。米国特許出願(No.XX/XXX,XXX)、代理人文書
No.M-4355US, Le Nguyen"マルチメディア信号プロセッ
サの単一命令−マルチプルデータ処理"。米国特許出願
(No.XX/XXX,XXX)、代理人文書No.M-4365US, S.P.Song
等の"マルチプロセッサの効率的な文脈貯蔵および復
元"。米国特許出願(No.XX/XXX,XXX)、代理人文書No.M
-4366US, S.P.Song等の"引数通過を有するソフトウェア
割り込みをハンドリングするためのシステム及び方
法"。米国特許出願(No.XX/XXX,XXX)、代理人文書No.M
-4368US, C.Reader等の"ビデオデータ処理方法及び装
置"。米国特許出願(No.XX/XXX,XXX)、代理人文書No.M
-4369US, Le Nguyen等の"ベクトルレジスタらのマルチ
プルバンクを用いた単一命令−マルチプルデータ処
理"。米国特許出願(No.XX/XXX,XXX)、代理人文書No.M
-4370US, Le Nguyen等の"結合されたスカラ/ベクトル
演算を備えた単一命令−マルチプルデータ処理"。
【0095】
【発明の効果】上述のように本発明のマルチプロセッサ
コンピュータシステムは、データプロセッサがアイドル
状態にあるときのみ制御及びステータスレジスタを備え
た制御プロセッサがデータプロセッサの初期状態をアク
セスするように制限される構造的な定義を備えることに
よって制御プロセッサとデータプロセッサ間のプログラ
ミング相互動作を単純化しデータプロセッサが不一致状
態または無効状態に入ることを保護する。そして、プロ
グラミングモデルとデータプロセッサ遂行が同一なマル
チプルプロセッサを使用する非対称アーキテクチャーに
比べて単純化される長所がある。
【図面の簡単な説明】
【図1】 本発明の実施の形態に係るマルチメディアマ
ルチプロセッサシステムを説明するための高レベルの概
略的なブロック図である。
【図2】 図1のマルチメディアマルチプロセッサシス
テムに含まれたマルチメディア信号プロセッサを示す概
略的なブロック図である。
【図3】 マルチメディアマルチプロセッサシステムの
制御プロセッサを説明するための概略的なブロック図で
ある。
【図4】 制御プロセッサを示す機能図である。
【図5】 図2のマルチメディア信号プロセッサのベク
トルプロセッサを示す概略的なブロック図である。
【図6】 図5のベクトルプロセッサのベクトルプロセ
ッサ実行データパスを示す概略的なブロック図である。
【図7】 図2のマルチメディア信号プロセッサのコプ
ロセッサインタフェースを示す概略的なブロック図であ
る。
【図8】 マルチメディア信号プロセッサのファームウ
ェアアーキテクチャーを説明するための概略的なブロッ
ク図である。
【図9】 マルチメディアマルチプロセッサシステムの
割り込み及び例外ハンドリングに関する動作を説明する
ためのフローチャートである。
【符号の説明】
100 マルチメディアマルチプロセッサシステム 102 ホストコンピュータ 104 マルチメディア信号プロセッサ 106 システムバス(PCIバス) 108 通信CODEC 110 ビデオA/D変換器 112 ビデオD/A変換器 114 フレームバッファSDRAMバッファ 202 DSPコア 204 RISC制御プロセッサ 206 ベクトルプロセッサ 208 キャッシュサブシステム 210 高速バス(FBUS) 212 I/Oバス 304 書込データレジスタ 306 読み取りデータレジスタ 312 レジスタバンク
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ル・ングイェン アメリカ合衆国・カリフォルニア・ 95030・モンテ・セレノ・ダニエル・プレ イス・15095 (72)発明者 ヒーオン・チュル・パク アメリカ合衆国・カリフォルニア・ 95014・クパティノ・パークウッド・ドラ イヴ・#4・10140

Claims (25)

    【特許請求の範囲】
  1. 【請求項1】 相互異化制御及びデータハンドリング特
    性を有するプロセッサを備えた複数個の相互連結された
    プロセッサと、 前記複数個のプロセッサを制御するための共通運用シス
    テムと、 前記運用システムと結合して動作し、第1プロセッサの
    割り込みと例外条件を検出するための前記複数個のプロ
    セッサのうち第1プロセッサ上で動作する割り込み及び
    例外検出器と、 第1プロセッサの割り込み及び例外条件を検出し第1プ
    ロセッサと第2プロセッサの割り込み及び例外条件を結
    合してハンドリングするための前記複数個のプロセッサ
    のうち第2プロセッサ上で動作する割り込み及び例外サ
    ブハンドラを具備する割り込み及び例外ハンドラと、を
    含むことを特徴とするコンピュータシステム。
  2. 【請求項2】 前記第2プロセッサは定義されたデータ
    経路幅を有する制御プロセッサであり、前記第1プロセ
    ッサは第2プロセッサのデータ経路幅より実際に大きい
    データ経路幅を有するベクトルプロセッサであることを
    特徴とする請求項1に記載のコンピュータシステム。
  3. 【請求項3】 前記複数個のプロセッサのうち前記第1
    プロセッサ上で動作する前記割り込み及び例外条件検出
    器は検出された例外に応答して前記第1プロセッサをア
    イドル状態に非活性化させることを特徴とする請求項1
    に記載のコンピュータシステム。
  4. 【請求項4】 前記第2プロセッサは前記第1プロセッ
    サの制御及びステータスレジスタを読み取り及び書き込
    みアクセスすることを特徴とする請求項1に記載のコン
    ピュータシステム。
  5. 【請求項5】 前記複数個のプロセッサのうち第1プロ
    セッサ上で動作する前記割り込み及び例外検出器は検出
    された例外に応答して前記第1プロセッサをアイドル状
    態に非活性化させ、前記第2プロセッサは前記第1プロ
    セッサがアイドル状態にあるとき前記第1プロセッサの
    制御及びステータスレジスタを読み取り及び書き込みア
    クセスすることを特徴とする請求項4に記載のコンピュ
    ータシステム。
  6. 【請求項6】 相互異化制御及びデータハンドリング特
    性を有するプロセッサを具備した複数個の相互連結され
    たプロセッサと、 前記複数個のプロセッサを制御するための共通運営シス
    テムと、 前記運営システムと結合して動作し、第1プロセッサの
    割り込みと例外条件を検出するための前記複数個のプロ
    セッサのうち第1プロセッサ上で動作し、例外条件の検
    出に応答して前記第1プロセッサをアイドル状態にディ
    スエーブルさせる割り込み及び例外検出器を具備する割
    り込み及び例外ハンドラと、を含むことを特徴とするコ
    ンピュータシステム。
  7. 【請求項7】 前記割り込み及び例外ハンドラは前記第
    1プロセッサの割り込み及び例外応答を制御し、前記複
    数個のプロセッサのうち第2プロセッサ上で動作する割
    り込み及び例外サブハンドラをさらに含むことを特徴と
    する請求項6に記載のコンピュータシステム。
  8. 【請求項8】 前記第2プロセッサは定義されたデータ
    経路幅を有する制御プロセッサであり、前記第1プロセ
    ッサは前記第2プロセッサのデータ経路幅よりは実際に
    大きいデータ経路幅を有するベクトルプロセッサである
    ことを特徴とする請求項7に記載のコンピュータシステ
    ム。
  9. 【請求項9】 相互異化制御及びデータハンドリング特
    性を有するプロセッサを具備する複数個の相互連結され
    たプロセッサと、 前記複数個のプロセッサを制御するための共通運営シス
    テムと、 前記複数個のプロセッサのうち前記第1プロセッサと前
    記第1プロセッサの制御及びステータスレジスタを読み
    取り及び書き込みアクセスする第2プロセッサ上で運営
    システムと結合して動作する割り込み及び例外ハンドラ
    と、を含むことを特徴とするコンピュータシステム。
  10. 【請求項10】 前記割り込み及び例外ハンドラは前記
    第1プロセッサの割り込み及び例外条件を検出するため
    の前記第1プロセッサ上で動作する割り込み及び例外検
    出器をさらに含むことを特徴とする請求項9に記載のコ
    ンピュータシステム。
  11. 【請求項11】 前記割り込み及び例外ハンドラは前記
    第1プロセッサの割り込み及び例外条件を検出して前記
    第1プロセッサ及び第2プロセッサの割り込み及び例外
    条件を結合してハンドリングするための第2プロセッサ
    上で動作する割り込み及び例外サブハンドラをさらに含
    むことを特徴とする請求項9に記載のコンピュータシス
    テム。
  12. 【請求項12】 前記第2プロセッサは定義されたデー
    タ経路幅を有する制御プロセッサであり、前記第1プロ
    セッサは前記第2プロセッサのデータ経路幅よりは実際
    に大きいデータ経路幅を有するベクトルプロセッサであ
    ることを特徴とする請求項9に記載のコンピュータシス
    テム。
  13. 【請求項13】 前記複数個のプロセッサのうち前記第
    1プロセッサ上で動作する前記割り込み及び例外検出器
    は検出された例外に応答して前記第1プロセッサをアイ
    ドル状態に非活性化させ、前記第2プロセッサは前記第
    1プロセッサがアイドル状態にあるときのみ前記第1プ
    ロセッサの制御及びステータスレジスタを読み取り及び
    書き込みアクセスするように制限されることを特徴とす
    る請求項9に記載のコンピュータシステム。
  14. 【請求項14】 非対称プロセッサを具備したコンピュ
    ータシステムの割り込み及び例外をハンドリングする方
    法において、 制御されるプロセッサとして前記非対称プロセッサのう
    ち第1プロセッサを動作させるステップと、 制御するプロセッサとして前記非対称プロセッサのうち
    第2プロセッサを動作させるステップと、 前記制御するプロセッサの例外条件を検出するステップ
    と、 前記制御されるプロセッサから制御プロセッサへ前記制
    御されるプロセッサの例外条件を示す割り込み要求信号
    を伝送するステップと、 例外条件に応答して前記制御されるプロセッサをアイド
    ル状態に作るステップと、 前記制御するプロセッサを動作させて前記制御されるプ
    ロセッサの例外条件をハンドリングするステップと、 を含むことを特徴とする割り込み及び例外ハンドリング
    方法。
  15. 【請求項15】 前記コンピュータシステムのリセット
    を検出するステップと、 前記コンピュータシステムのリセットに応答して前記制
    御されるプロセッサをアイドル状態に作るステップとを
    さらに含むことを特徴とする請求項14に記載の割り込
    み及び例外ハンドリング方法。
  16. 【請求項16】 前記制御するプロセッサを動作させて
    前記制御されるプロセッサの例外条件をハンドリングす
    る方法は、 前記制御されるプロセッサからの割り込み要求信号に応
    答して前記制御されるプロセッサがアイドル状態である
    とき、前記制御するプロセッサを動作させて前記制御さ
    れるプロセッサのレジスタを初期化させるステップと、 前記制御されるプロセッサのレジスタが初期化される
    際、前記制御するプロセッサを動作させて前記制御され
    るプロセッサをラン状態に活性化させるための命令を実
    行させるステップとをさらに含むことを特徴とする請求
    項15に記載の割り込み及び例外ハンドリング方法。
  17. 【請求項17】 前記制御するプロセッサを動作させて
    前記制御されるプロセッサの例外条件をハンドリングす
    るステップは、 前記制御するプロセッサを動作させて前記制御されるプ
    ロセッサからレジスタ情報を読み出すステップと、 前記レジスタ情報によって例外形態を決めるステップ
    と、 前記制御するプロセッサを動作させて例外形態によって
    例外をハンドリングするステップとをさらに含むことを
    特徴とする請求項16に記載の割り込み及び例外ハンド
    リング方法。
  18. 【請求項18】 前記制御されるプロセッサがアイドル
    状態にあるとき、前記制御するプロセッサを動作させて
    前記制御されるプロセッサのレジスタを読み取り及び書
    き込むステップをさらに含むことを特徴とする請求項1
    4に記載の割り込み及び例外ハンドリング方法。
  19. 【請求項19】 単一の運営システムを用いて前記制御
    するプロセッサと前記制御されるプロセッサを動作させ
    るステップと、 前記制御するプロセッサと前記制御されるプロセッサの
    相互独立的な命令セットを実行するステップとをさらに
    含むことを特徴とする請求項14に記載の割り込み及び
    例外ハンドリング方法。
  20. 【請求項20】 前記制御されるプロセッサは大きなマ
    シンステート及び大きなデータ幅を有するベクトルプロ
    セッサまたはデータプロセッサであり、前記制御するプ
    ロセッサは前記制御されるプロセッサのマシンステート
    とデータ幅よりは実際に小さなマシンステートとデータ
    幅を有する制御プロセッサであることを特徴とする請求
    項14に記載の割り込み及び例外ハンドリング方法。
  21. 【請求項21】 制御プロセッサと、 前記制御プロセッサに連結され、前記制御プロセッサに
    比べて大きなマシンステートとデータ幅を有するベクト
    ルまたはデータプロセッサと、 前記制御プロセッサと前記ベクトルまたはデータプロセ
    ッサとの間に連結されたコプロセッサインタフェース
    と、 前記ベクトルまたはデータプロセッサに連結され、例外
    条件を検出し例外条件検出に応答して前記制御プロセッ
    サへ割り込み要求を送り出し、前記ベクトルまたはデー
    タプロセッサをアイドル状態にディスエーブルさせる例
    外検出器と、 前記制御プロセッサに連結され、前記割り込み要求を受
    けながら前記割り込み要求に応答して前記ベクトルまた
    はデータプロセッサの例外条件をハンドリングする例外
    ハンドラとを含むことを特徴とするマルチメディアコン
    ピュータシステム。
  22. 【請求項22】 前記コプロセッサインタフェースが、 前記制御プロセッサと前記ベクトルまたはデータプロセ
    ッサにより読み取り及び書き込み可能な複数個のレジス
    タと、 前記制御プロセッサ命令セットの命令を復号化し、前記
    コプロセッサインタフェース上で実行可能な拡張命令を
    復号化するデコーダと、 拡張命令を実行するための状態マシン(state machine)
    とを含むことを特徴とする請求項21に記載のマルチメ
    ディアコンピュータシステム。
  23. 【請求項23】 前記制御プロセッサと前記ベクトルま
    たはデータプロセッサは相互異化制御及びデータハンド
    リング特性を有することを特徴とする請求項21に記載
    のマルチメディアコンピュータシステム。
  24. 【請求項24】 前記制御プロセッサは定義されたデー
    タ経路幅を有し、前記ベクトルデータプロセッサは前記
    制御プロセッサのデータ経路幅よりは実際に大きいデー
    タ経路幅を有することを特徴とする請求項23に記載の
    マルチメディアコンピュータシステム。
  25. 【請求項25】 前記制御プロセッサに連結され、前記
    制御プロセッサの動作を制御するプログラムコードを備
    えたホストコンピュータをさらに含むことを特徴とする
    請求項21に記載のマルチメディアコンピュータシステ
    ム。
JP9219649A 1996-08-19 1997-08-14 非対称マルチプロセッサアーキテクチャーの割り込み及び例外事象を処理するためのシステムおよび方法 Pending JPH10154080A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/699,294 US6003129A (en) 1996-08-19 1996-08-19 System and method for handling interrupt and exception events in an asymmetric multiprocessor architecture
US699,294 1996-08-19

Publications (1)

Publication Number Publication Date
JPH10154080A true JPH10154080A (ja) 1998-06-09

Family

ID=24808708

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9219649A Pending JPH10154080A (ja) 1996-08-19 1997-08-14 非対称マルチプロセッサアーキテクチャーの割り込み及び例外事象を処理するためのシステムおよび方法

Country Status (7)

Country Link
US (1) US6003129A (ja)
JP (1) JPH10154080A (ja)
KR (1) KR100257520B1 (ja)
CN (1) CN1176437B (ja)
DE (1) DE19735870A1 (ja)
FR (1) FR2752470B1 (ja)
TW (1) TW358919B (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100346314C (zh) * 2003-06-23 2007-10-31 英特尔公司 保存代码重新排序中的精确异常的方法和设备
KR20120036630A (ko) * 2010-10-08 2012-04-18 삼성전자주식회사 인터럽트 처리 장치 및 방법
JP2022509722A (ja) * 2018-12-06 2022-01-24 アーム・リミテッド 例外原因イベントをハンドリングするための装置及び方法

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6192073B1 (en) 1996-08-19 2001-02-20 Samsung Electronics Co., Ltd. Methods and apparatus for processing video data
US5850556A (en) * 1996-12-26 1998-12-15 Cypress Semiconductor Corp. Interruptible state machine
US6317638B1 (en) * 1997-08-22 2001-11-13 Honeywell Inc. Multi-layer state machine for a hybrid real-time control system and method of operation thereof
US6571206B1 (en) * 1998-01-15 2003-05-27 Phoenix Technologies Ltd. Apparatus and method for emulating an I/O instruction for the correct processor and for servicing software SMI's in a multi-processor environment
US6625693B2 (en) * 1999-05-04 2003-09-23 Intel Corporation Fast exception processing
EP1059781B1 (de) * 1999-05-06 2007-09-05 Siemens Aktiengesellschaft Kommunikationseinrichtung mit Mitteln zur Echtzeitverarbeitung von zu übertragenden Nutzdaten
US7171547B1 (en) * 1999-12-28 2007-01-30 Intel Corporation Method and apparatus to save processor architectural state for later process resumption
US7080205B2 (en) * 2000-03-29 2006-07-18 Fujitsu Siemens Computer Gmbh Arrangement and method for reducing the processing time of a data processing device
DE10015693A1 (de) * 2000-03-29 2001-10-18 Fujitsu Siemens Computers Gmbh Anordnung und Verfahren zur Reduzierung der Interruptverarbeitungszeit einer Datenverarbeitungseinrichtung
US6704863B1 (en) * 2000-06-14 2004-03-09 Cypress Semiconductor Corp. Low-latency DMA handling in pipelined processors
JP2002108837A (ja) * 2000-09-29 2002-04-12 Nec Corp 計算機システムとその計算制御方法
US20020099893A1 (en) * 2001-01-24 2002-07-25 Nguyen Tuyet-Huong Thi System and method for the handling of system management interrupts in a multiprocessor computer system
US6832338B2 (en) * 2001-04-12 2004-12-14 International Business Machines Corporation Apparatus, method and computer program product for stopping processors without using non-maskable interrupts
JP3843048B2 (ja) * 2002-06-28 2006-11-08 富士通株式会社 分岐予測機構を有する情報処理装置
US7117284B2 (en) * 2002-11-18 2006-10-03 Arm Limited Vectored interrupt control within a system having a secure domain and a non-secure domain
GB0226905D0 (en) * 2002-11-18 2002-12-24 Advanced Risc Mach Ltd Exception tyres within a secure processing system
US20040215937A1 (en) * 2003-04-23 2004-10-28 International Business Machines Corporation Dynamically share interrupt handling logic among multiple threads
CA2430763A1 (en) 2003-05-30 2004-11-30 Ibm Canada Limited - Ibm Canada Limitee Efficiently releasing locks when an exception occurs
US20050102457A1 (en) * 2003-11-12 2005-05-12 Dell Products L.P. System and method for interrupt processing in a multiple processor system
US7721024B2 (en) * 2003-11-12 2010-05-18 Dell Products L.P. System and method for exiting from an interrupt mode in a multiple processor system
US7529914B2 (en) * 2004-06-30 2009-05-05 Intel Corporation Method and apparatus for speculative execution of uncontended lock instructions
US7487503B2 (en) 2004-08-12 2009-02-03 International Business Machines Corporation Scheduling threads in a multiprocessor computer
US8020141B2 (en) 2004-12-06 2011-09-13 Microsoft Corporation Operating-system process construction
JP4148223B2 (ja) * 2005-01-28 2008-09-10 セイコーエプソン株式会社 プロセッサおよび情報処理方法
JP2006243838A (ja) * 2005-02-28 2006-09-14 Toshiba Corp プログラム開発装置
US8849968B2 (en) 2005-06-20 2014-09-30 Microsoft Corporation Secure and stable hosting of third-party extensions to web services
US7447874B1 (en) * 2005-10-18 2008-11-04 Qlogic, Corporation Method and system for designing a flexible hardware state machine
US8074231B2 (en) * 2005-10-26 2011-12-06 Microsoft Corporation Configuration of isolated extensions and device drivers
KR100807039B1 (ko) * 2006-04-07 2008-02-25 주식회사 퓨쳐시스템 비대칭 다중 프로세싱 시스템 및 그 방법
US8032898B2 (en) * 2006-06-30 2011-10-04 Microsoft Corporation Kernel interface with categorized kernel objects
CN100449495C (zh) * 2006-08-25 2009-01-07 华为技术有限公司 一种辅助cpu对芯片进行驱动的***及方法
US8789063B2 (en) 2007-03-30 2014-07-22 Microsoft Corporation Master and subordinate operating system kernels for heterogeneous multiprocessor systems
US20080244507A1 (en) * 2007-03-30 2008-10-02 Microsoft Corporation Homogeneous Programming For Heterogeneous Multiprocessor Systems
DE102007025397B4 (de) * 2007-05-31 2010-07-15 Advanced Micro Devices, Inc., Sunnyvale System mit mehreren Prozessoren und Verfahren zu seinem Betrieb
JP2009251802A (ja) * 2008-04-03 2009-10-29 Panasonic Corp マルチプロセッサシステムおよびマルチプロセッサシステムの割込み制御方法
IN2014CN02377A (ja) * 2011-09-29 2015-06-19 Sharp Kk
GB2495959A (en) * 2011-10-26 2013-05-01 Imagination Tech Ltd Multi-threaded memory access processor
WO2013106210A1 (en) 2012-01-10 2013-07-18 Intel Corporation Electronic apparatus having parallel memory banks
US9405551B2 (en) * 2013-03-12 2016-08-02 Intel Corporation Creating an isolated execution environment in a co-designed processor
US20160147536A1 (en) * 2014-11-24 2016-05-26 International Business Machines Corporation Transitioning the Processor Core from Thread to Lane Mode and Enabling Data Transfer Between the Two Modes
CN107436752B (zh) * 2017-07-20 2020-12-01 龙芯中科技术有限公司 异常现场恢复方法、装置及计算机可读存储介质
CN108037951B (zh) * 2017-12-27 2020-11-20 山东师范大学 一种dtp处理器的中断快速切换方法及装置
CN108845969B (zh) * 2018-03-28 2021-09-10 核工业理化工程研究院 适用于不完全对称多处理微控制器的操作控制方法及操作***
KR102575773B1 (ko) * 2021-03-29 2023-09-06 숭실대학교산학협력단 대칭적 인터페이스를 이용하여 외부 서비스 요청 처리가 가능한 프로세서
CN115167933B (zh) * 2022-09-08 2022-12-02 深圳市恒运昌真空技术有限公司 一种双处理器设备及其控制方法和处理器

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5274825A (en) * 1987-09-03 1993-12-28 Bull Hn Information Systems Inc. Microprocessor vectored interrupts
US5182811A (en) * 1987-10-02 1993-01-26 Mitsubishi Denki Kabushiki Kaisha Exception, interrupt, and trap handling apparatus which fetches addressing and context data using a single instruction following an interrupt
EP0365322A3 (en) * 1988-10-19 1991-11-27 Hewlett-Packard Company Method and apparatus for exception handling in pipeline processors having mismatched instruction pipeline depths
US5218711A (en) * 1989-05-15 1993-06-08 Mitsubishi Denki Kabushiki Kaisha Microprocessor having program counter registers for its coprocessors
US5278647A (en) * 1992-08-05 1994-01-11 At&T Bell Laboratories Video decoder using adaptive macroblock leak signals
US5319753A (en) * 1992-09-29 1994-06-07 Zilog, Inc. Queued interrupt mechanism with supplementary command/status/message information
US5576765A (en) * 1994-03-17 1996-11-19 International Business Machines, Corporation Video decoder
US5510842A (en) * 1994-05-04 1996-04-23 Matsushita Electric Corporation Of America Parallel architecture for a high definition television video decoder having multiple independent frame memories
US5729279A (en) * 1995-01-26 1998-03-17 Spectravision, Inc. Video distribution system
US5594905A (en) * 1995-04-12 1997-01-14 Microsoft Corporation Exception handler and method for handling interrupts
US5668599A (en) * 1996-03-19 1997-09-16 International Business Machines Corporation Memory management for an MPEG2 compliant decoder

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100346314C (zh) * 2003-06-23 2007-10-31 英特尔公司 保存代码重新排序中的精确异常的方法和设备
KR20120036630A (ko) * 2010-10-08 2012-04-18 삼성전자주식회사 인터럽트 처리 장치 및 방법
JP2022509722A (ja) * 2018-12-06 2022-01-24 アーム・リミテッド 例外原因イベントをハンドリングするための装置及び方法

Also Published As

Publication number Publication date
TW358919B (en) 1999-05-21
CN1176437B (zh) 2010-06-02
KR100257520B1 (ko) 2000-06-01
US6003129A (en) 1999-12-14
KR19980018067A (ko) 1998-06-05
CN1176437A (zh) 1998-03-18
DE19735870A1 (de) 1998-03-19
FR2752470B1 (fr) 1999-06-11
FR2752470A1 (fr) 1998-02-20

Similar Documents

Publication Publication Date Title
JPH10154080A (ja) 非対称マルチプロセッサアーキテクチャーの割り込み及び例外事象を処理するためのシステムおよび方法
KR100267090B1 (ko) 통과하는인수를갖는소프트웨어인터럽트를핸들링하기위한시스템및방법
KR100241063B1 (ko) 멀티타스킹 처리시스템 환경에서의 효율적인 콘텍스트 저장 및 복구장치 및 방법
KR100563012B1 (ko) 처리기를보조처리기에인터페이스하는방법및그장치
US5404552A (en) Pipeline risc processing unit with improved efficiency when handling data dependency
JP3983857B2 (ja) ベクトルレジスタの複数バンクを用いた単一命令複数データ処理
US6058465A (en) Single-instruction-multiple-data processing in a multimedia signal processor
US5923893A (en) Method and apparatus for interfacing a processor to a coprocessor
JP2001202245A (ja) 改良式命令セットアーキテクチャを有するマイクロプロセッサ
US5983338A (en) Method and apparatus for interfacing a processor to a coprocessor for communicating register write information
US7058790B2 (en) Cascaded event detection modules for generating combined events interrupt for processor action
US11789742B2 (en) Pipeline protection for CPUs with save and restore of intermediate results
JPH07120284B2 (ja) データ処理装置
KR100267089B1 (ko) 스칼라/벡터연산이조합된단일명령복수데이터처리
US5737562A (en) CPU pipeline having queuing stage to facilitate branch instructions
US6334179B1 (en) DSP coprocessor having control flags mapped to a dual port section of memory for communicating with the host
EP0365187A2 (en) Apparatus for selective execution of instructions following a branch instruction
WO2000079400A1 (en) Methods and apparatus for generalized event detection and action specification in a processor
JPH0764799A (ja) 目的プログラム最適化方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20041222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050419

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20050719

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20050722

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20051129

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060327

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20060605

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20061102