JPH10143481A - マルチタスキング処理システム環境における効率的な文脈セーブ及び復旧装置及び方法 - Google Patents
マルチタスキング処理システム環境における効率的な文脈セーブ及び復旧装置及び方法Info
- Publication number
- JPH10143481A JPH10143481A JP9222148A JP22214897A JPH10143481A JP H10143481 A JPH10143481 A JP H10143481A JP 9222148 A JP9222148 A JP 9222148A JP 22214897 A JP22214897 A JP 22214897A JP H10143481 A JPH10143481 A JP H10143481A
- Authority
- JP
- Japan
- Prior art keywords
- processor
- program
- context
- context change
- state information
- 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
Links
- 238000000034 method Methods 0.000 title claims description 45
- 238000012545 processing Methods 0.000 title claims description 35
- 230000008859 change Effects 0.000 claims abstract description 73
- 238000012508 change request Methods 0.000 claims abstract description 28
- 238000011084 recovery Methods 0.000 claims description 21
- 230000008569 process Effects 0.000 claims description 20
- 102100032467 Transmembrane protease serine 13 Human genes 0.000 description 18
- 230000006870 function Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 238000007667 floating Methods 0.000 description 7
- 230000004044 response Effects 0.000 description 6
- 238000007726 management method Methods 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 230000004888 barrier function Effects 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 241000497429 Obus Species 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000004886 process control Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30087—Synchronisation or serialisation instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/3009—Thread control instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3887—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/461—Saving or restoring of program or task context
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Advance Control (AREA)
- Complex Calculations (AREA)
- Executing Machine-Instructions (AREA)
Abstract
ング(multi-tasking)環境における効率的な文脈(conte
xt)変更処理を提供すること。 【解決手段】 文脈変更を行う際、プロセッサはコプロ
セッサが現在実行中のプログラムを文脈変更するように
要求する。これにより、実行中のプログラム内の所定の
適切なポイントでプログラムの実行を中止し、プログラ
ムを無事復旧するために必要最少量のプロセッサ状態情
報のみを格納することによって、コプロセッサは応答す
る。適切なポイントは、アプリケーションプログラマー
によって文脈変更される時、最少量のプロセッサ情報の
保存を要求する、実行中のプログラム内の位置で選択さ
れる。最少量のプロセッサ情報のみを格納することによ
って、プロセッサ時間が文脈セーブ及び復旧動作の間に
蓄積される。
Description
グシステム(computing system)、特に例えばマルチプロ
セッサ構造を有するマルチタスキング(multi-tasking)
環境における文脈(context)変更処理に関する。
ュータで時分割プログラムを遂行し、複数のプログラム
を同時に実行することをいう。実際にコンピュータが複
数のプログラム間を交互に実行する時、コンピュータ使
用者はプログラムが並列に実行されると感じる。プログ
ラム実行が時分割されると、“文脈変更(context switc
hed out)”(タスク変更)が起こる前の所定時間の間、
一つのプログラムが実行されてから他のプログラムが実
行される。
する時、このプログラムはその以前に実行が終了された
正確な位置から、再びプログラムの実行が始まらなけれ
ばならない。文脈変更されたプログラムを再実行するこ
とに備えて、プロセッサは他のプログラムを実行する
前、文脈変更されるプログラムの状態をセーブする過程
を経る。このプログラム状態は、プログラムが文脈変更
される時、プロセッサの状態により多様なメモリ位置に
示される。
は、任意の時間にプログラム内の任意の位置に発生する
ので、文脈変更されたプログラムのプログラマーにとっ
ては明らかなものである。一方、文脈変更を遂行するオ
ペレーティングシステムは、文脈変更されるプログラム
の状態が分からない。結果的に、すべてのプロセッサの
状態情報には、プログラムが文脈変更される時、必ずセ
ーブされなければならない。このプロセッサの状態情報
には、すべての構造的で、且つそのソフトウェアがよく
分かるレジスタだけでなく、スクラッチパッド(scratch
pad)メモリのようなプロセッサ内のみで知られたアドレ
スでマッピングされるメモリ位置が含まれる。
量の状態情報を有するプロセッサ構造のためのすべての
プロセッサ状態情報のセーブ及び復旧と関連した従来の
プログラム文脈変更方法は、効率的でなく、プロセッサ
の動作に否定的な影響を及ぼすこともある。プロセッサ
状態情報の格納部に割当てられた、アクセスされる多数
のメモリ位置と、相対的に低い帯域幅のバスを通して他
のメモリ位置にプロセッサの状態情報を記入する動作を
必要とするプロセッサ動作に、従来の方法における文脈
変更と関連した非効率的で否定的な影響が部分的に生じ
る。従来の文脈変更方法におけるこのような非効率性
は、またセーブされたすべてのプロセッサ状態情報が、
メモリ位置に割当てられたプロセッサ情報状態に更に伝
達される時、プログラム復旧過程の間、プロセッサの動
作に否定的な影響を及ぼす。このような非効率性は、そ
れぞれのプログラム文脈が変更される間蓄積される。例
えば、マルチメディア信号プロセッサは、100個以上
のレジスタと、メモリ位置内の7キロバイト以上に表現
されるプロセッサ状態を有することができる。それぞれ
の文脈変更時には、通常的にこのようなすべての情報が
プロセッサ状態メモリ格納位置に伝達されなければなら
ない。
た、マルチメディアシステムのようなマルチタスキング
システムにおける文脈変更と関連した悪影響を減らすた
めには、プログラムを実行する時、これの間の要望しな
い遅延を減少させなければならない。これは、プログラ
ムがマルチメディア処理環境でのような多量の情報を処
理することに関連する場合に著しい効果を示す。
に必要な処理時間を減らすことを目的とする。文脈変更
されるプログラムのポイント(位置)は、後でプログラ
ム実行を再び無事に始めるため、他のポイントよりプロ
セッサ状態情報をより多く格納することを要求する。
おいて、マルチプロセッサ構造は、現在実行中のプログ
ラムの変更に許可し、プロセッサが現在のプログラムを
実行する他のプロセッサを要求するようにし、適切なポ
イントで自分をインタラプトする。この適切なポイント
は、文脈変更されたプログラムを無事再実行させるため
に必要なプロセッサ状態情報を減らすことができ、文脈
変更要求を必ず直ちに受け入れない場合もある、現在実
行中のプログラム内のポイントである。
タスキング環境における文脈のセーブ及び復旧は、プロ
セッサと現在実行中のアプリケーションプログラムが担
当する。このプログラムは例えば、プログラムの実行を
再び無事に開始するために、必要最少量のプロセッサ状
態情報をプログラム内のポイントに相応する多数の位置
内の条件付き文脈変更プログラム命令で表示される。プ
ログラムが、マーク位置に到達し、文脈変更要求の受付
けが検出されると、プログラムはプログラムを無事に再
実行するために必要なプロセッサ状態情報のみを格納し
始める。プログラムは、文脈変更が要求され、これに応
答し文脈変更される時、その間の遅延を減少させること
に充分なほど頻繁に表示する。
ロセッサ上で第1プログラムを実行する段階と、第2プ
ロセッサから文脈変更要求を受ける段階と、第1プログ
ラムの適切なポイントで、この文脈変更要求に応答する
段階とを含む処理過程において、この適切なポイント
は、プログラムを無事復旧するために最少量のプロセッ
サ状態情報のセーブを必要とする第1プログラム内のす
ぐ次のポイントを表わすプログラム内のマークと関連し
たものである。
ンピューティングシステムは、複数の散在した文脈変更
マークを備えたプログラムを実行するためのマルチタス
キング環境内の第1プロセッサと、第1プロセッサに接
続され、プロセッサ状態情報を格納する役割を果たす第
1メモリとを含む。このコンピューティングシステムは
また、第1プロセッサに接続された第2メモリと、プロ
セッサがある実行プログラム内のマークのうちいずれか
1つに出会ってから、プログラムの変更要求を検出する
ための、第1プロセッサ上で動作する文脈変更要求検出
部、及び第1メモリ内に位置するプロセッサ状態情報を
第2メモリに格納することによって、検出された文脈変
更要求に応答する第1プロセッサ上で動作する文脈セー
ブモジュールを含む。
明の好ましい実施の形態をより詳しく説明する。尚、図
面全体を通し、同一構成要素には同じ符号を使用する。
メディア信号プロセッサ200を備えたマルチメディア
マルチプロセッサシステム100を示したブロック図で
ある。図1を参照すると、ホストプロセッサ102は、
インテル社のPentiumTMまたはPentiumP
roTMプロセッサのようなx86系プロセッサである。
ホストプロセッサ102は、主システムメモリ104と
キャッシュ105に格納されている命令及びデータに基
づいてプログラムを実行する。
ット107とPCIバスのようなシステムバス106を
通してマルチメディア信号プロセッサ200と接続され
る。マルチメディア信号プロセッサ200は、オーディ
オ信号及び電話通信を受信するためのオーディオ及び通
信CODEC108、ビデオ入力信号を受信するビデオ
A/Dコンバータ110、ビデオ出力信号を転送するた
めのビデオD/Aコンバータ112及び、フレームバッ
ファSDRAMメモリ114のような、多種の機能ブロ
ックと接続される。本発明の一実施の形態において、前
述のマルチメディア信号プロセッサ200は、例えば三
星半導体のMSP系列のマルチメディア信号プロセッサ
(三星MSP)等を用いることができる。
チプロセッサシステム100のマルチメディア信号プロ
セッサ200の内部構造を示したブロック図である。
ッサ200は、ファストバス(fastbus ;FBUS)210
を通し、例えば、32ビットPCIバスインタフェース
222、64ビットSDRAMメモリコントローラ22
6、CODECインタフェース218と8チャンネルD
MAコントローラ220とを備えたASICロジックブ
ロック216、及びホストプロセッサ102からSDR
AMメモリ114へのデータ転送のためのメモリデータ
ムーバ(mover)224とを含む複数個のFBUS周辺装
置に接続される。
ムバス106に接続され、例えば33MHzで動作す
る。ASICロジックブロック216は、所望の機能の
遂行のための制御ロジックを提供する。本発明の一実施
の形態において、ASICロジックブロック216は、
種々のアナログCODEC及び特定顧客向けI/O装置
と接続されたインタフェースを含む10Kゲートを提供
する。メモリデータムーバ224は、ホストプロセッサ
102からのDMAデータを、マルチメディア信号プロ
セッサ200と接続されるSDRAMメモリ114に転
送する。
介して、例えば、8254−互換(compatible)プログラ
ム可能なインターバルタイマ(programmable interval
timer)228、16450−互換UART直列ライン2
30、8259−互換プログラム可能なインタラプトコ
ントローラ232、及びビデオビットストリームを処理
するためのビットストリームプロセッサ234とを含む
複数個のI/Oバス装置に接続される。
プロセッサ200の演算のコア部であり、プロセッサ2
02、コプロセッサ204、コアプロセッサインタフェ
ース206、キャッシュサブシステム208、FBUS
210、及びI/Oバス212とを含む。本発明の一実
施の形態において、プロセッサ202は、文脈変更要
求、リアルタイムオペレーティングシステムの駆動、イ
ンタラプト及び例外(exception)処理、入出力装置管
理、ホストプロセッサ102との接続のような一般的な
処理機能を遂行するARM7TMRISC制御プロセッサ
である。プロセッサ202は、40MHzで動作し、コ
プロセッサインタフェース206を介してコプロセッサ
204と接続される。
態で発生する例外に応答して例外処理を遂行し、プログ
ラム実行の制御フローが変更されるようにする。
号プロセッサ200のデジタル信号処理駆動部である。
本発明の一実施の形態において、コプロセッサ204
は、例えば三星MSP系列のベクトルプロセッサ等を適
用可能である。ベクトルプロセッサとしてコプロセッサ
204は、SIMD(Single-Instruction-Multiple-Dat
a)構造を有し、DCT(Discrete Cosine Trasforms)、
FIRフィルタリング、くりこみ(convolution)、ビデ
オ動作評価及び、他のプロセッシングオペレーションの
ような信号処理機能を遂行するものと、並列に多数のデ
ータ要素に作用するパイプラインされた(pipelined)R
ISC駆動部とを含む。
が、複数個のベクトル実行ユニットによってベクトル処
理される方式によって、並列に処理されるベクトル演算
を支援する。コプロセッサ204は、スカラー処理及び
組み合わせられたベクトル−スカラー処理の両方とも実
行する。コプロセッサ204の多数のデータ要素は、周
期当り(例えば12.5ns)32個の8/9ビット固
定小数点演算処理、16個の16ビット固定小数点演算
処理、または8個の32ビット固定小数点または浮動小
数点算術処理の比率で計算される576ビットベクトル
にパッキングされる。大部分の32ビットスカラー処理
は1周期当り1命令の比率でパイプラインされ、大部分
の576ビットベクトル処理は2周期当り1命令の比率
でパイプラインされる。ロード(load)及び格納処理は演
算処理と重畳され、別途のロード及び記憶回路により独
立的に遂行される。
は、命令取出ユニット(instructionfetch unit)30
2、命令デコーダ及びイシュア(issuer)304、命令実
行データ経路306及び、ロード及びセーブユニット3
08とを含む4個の機能ブロックを備える。命令取出ユ
ニット302及び命令デコーダ及びイシュア304はコ
プロセッサ204に含まれ、コプロセッサ204がプロ
セッサ202とは別途に動作するようにする。
ルーチン命令への分岐(Branch)及びジャンプ(Jump)のよ
うなプロセス制御のフロー命令を先取り(prefetch)す
る。命令取出ユニット302は、現在実行中のストリー
ムのための16列のプリフェッチされた命令と、分岐目
標ストリーム(Branch target stream)のための8列のプ
リフェッチされた命令とを含む。命令取出ユニット30
2は、命令キャッシュから1周期の間8個までの命令を
256ビット幅のバスを通して入力する。
ロセッサ204によって実行されるすべての命令をデコ
ーディングし準備する。デコーダは命令取出ユニット3
02からの入力順序によって1周期の間1命令を処理
し、イシュアは実行手段及び演算数データの能力に従っ
て順序に関係なく大部分の命令を準備する。
06は、4ポートレジスタファイル402、8個の32
×32並列乗算器(multiplier)404、8個の36ビ
ットFALU406とを含む。レジスタファイル402
は、周期当り2個の読み取り動作と2個の書き込み動作
を支援する。並列乗算器404は、整数または浮動小数
点(floating point)フォーマットで、8個の32ビット
掛け算を行うか、または周期当り16個の16ビット掛
け算、または32個の8ビット掛け算を行う。FALU
406は、周期当り(例えば12.5ns)整数または
浮動小数点フォーマットで、8個の36ビットFALU
処理、16個の16ビットFALU処理、または32個
の8ビット処理を実行する。
目的レジスタ及び複数個の復帰アドレス(return addres
s)レジスタとを含む。特殊目的レジスタは、ベクトル制
御及び状態レジスタ(VCSR)、ベクトルプログラム
カウンタ(VPC)、ベクトル例外プログラムカウンタ
(vector exception program counter :VEPC)、ベクト
ルインタラプト発生源レジスタ(vector interrupt sour
ce register ;VISRC)、ベクトル及び制御プロセッサ
同期化レジスタ(vector and control processor synchr
onization register;VASYNC)及び多様なカウント、マ
スク、オーバフロー及び区切り点レジスタのような他の
レジスタを含む。VPCは、コプロセッサ204により
実行される、次の命令のアドレスである。
ラプト発生源を表わす。VISRCの適切なビットは例
外検出によってハードウェアで設定される。このビット
は、コプロセッサ204の再実行前に、ソフトウェアに
よってリセットされる。VISRC内のある設定ビット
は、コプロセッサ204がアイドル状態(idle state)
(VP_IDLE)に入るようにする。該当インタラプ
トイネーブルビットが、コプロセッサインタフェース2
06内のVIMSKレジスタの内に設定されると、IR
Qインタラプトはプロセッサ202に信号で知らせる。
確な例外とを含む例外条件を検出する。正確な例外は、
コプロセッサ204により検出され、間違った命令の前
に報告される。正確な例外は、命令アドレス区切り点例
外、データアドレス区切り点例外、無効命令例外、単一
ステップ例外、復旧アドレススタックオーバフロー例
外、復旧アドレススタックアンダフロー例外、VCIN
T例外、及びVCJOIN例外を含む。コプロセッサ2
04の不正確な例外は、間違った命令へのプログラム順
序上の後方の定まらない数の命令を実行してから検出さ
れ報告される。不正確な例外は、無効命令アドレス例
外、無効データアドレス例外、整列されていないデータ
アクセス例外、整数オーバフロー例外、浮動小数点オー
バフロー例外、浮動小数点無効演算数例外、ゼロによる
浮動小数点割り算例外、及びゼロによる整数割り算例外
とを含む。
INS)は、命令が拡張され、プロセッサ202をイン
タラプトする時、コプロセッサVCINTまたはVCJ
OIN命令でアップデートされる。
の駆動を開始する。
IMSK)は、コプロセッサ204内で発生する例外を
プロセッサ202に報告することを制御する。VIMS
K内のビットは、ベクトルインタラプト発生源レジスタ
(VISRC)内の該当ビットによって設定されると、
例外をイネーブルさせ、プロセッサ202をインタラプ
トする。VISRCレジスタは、複数個の例外及び命令
中のどれが発生源であるかを表わす、複数個のビットを
含む。
切り点インタラプトイネーブル(data address breakpoi
nt interrupt enable ;DABE)、命令アドレス区切り点
インタラプトイネーブル(IABE)、及び単一ステッ
プインタラプトイネーブル(single-step interrupt ena
ble ;SSTPE)を含む。VIMSKは浮動小数点オーバフ
ロー(FOVE)、無効演算数(FINVE)及び、ゼ
ロによる割り算(divide-by-zero)(FDIVE)インタ
ラプトイネーブルビット、及び整数オーバフロー(IO
VE)及び、ゼロによる割り算(IDIVE)インタラ
プトイネーブルを制御する。VIMSKはまた、VCI
NTインタラプトイネーブル(VIE)、VCJOIN
インタラプトイネーブル(VJE)及び、文脈変更イネ
ーブル(CSE)を制御する。
に信号を送ることにより、プロセッサ202と対話を行
う。特に、コプロセッサ204は、コプロセッサ204
が同期される命令を実行したことを表わす、使用者拡張
されたレジスタを通して間接的にプロセッサ202に信
号を送る。コプロセッサ204はコプロセッサ204が
例外を停止させ、VP_IDLE状態に入ったことを表
わすインタラプト要求を通し、直接にプロセッサ202
に信号を送る。
への信号転送のため、2個の命令を実行する。VCJO
IN命令(VCJOINn)は、プロセッサ202と条
件付き結合され、コプロセッサ204が停止し、VP_
IDLE状態に入るようにする。コプロセッサ204内
のプログラムカウンタ(図示せず)は、VCJOIN命
令によって命令をアドレスする。コプロセッサ204に
より実行されるVCJOIN命令は、制御フロークラス
に分類される。制御フロー命令は、ブランチ、減少及び
ブランチ、ジャンプ、サブルーチンからの復帰、文脈変
更及び、バリア命令のような多様な条件的命令を含む。
ステム208は、データキャッシュ236(例えば、5
KB)、命令キャッシュ238(例えば、2KB)、及
びキャッシュROM(例えば、16KB)とを含み、コ
プロセッサ204の速度(80MHz)と同一速度で動
作する。本発明の一実施の形態において、キャッシュサ
ブシステム208は、プロセッサ202のための1キロ
バイトの命令格納領域及び、1キロバイトのデータ格納
領域と、コプロセッサ204のための1キロバイトの命
令格納領域と、4キロバイトのデータ格納領域、及びプ
ロセッサ202とコプロセッサ204のための共有16
キロバイトの集積化された命令及びデータキャッシュR
OM240とを備えている。
ットデータバスを通しプロセッサ202と接続され、1
28ビットデータバスを通しコプロセッサ204と接続
される。キャッシュROM240は、μROM初期化ソ
フトウェア、セルフテスト診断ソフトウェア、多様なシ
ステム管理ソフトウェア、ライブラリルーチン及び、選
択された命令及びデータ常数のためのキャッシュを含
む。特に、キャッシュROM240は、プロセッサ20
2のための命令例外処理ハンドラ及び入出力装置インタ
ラプト処理ハンドラ(0、1、2、3)を備えている。
またキャッシュROM240は、プロセッサ202内で
実行されるベクトルプロセッサインタラプト処理ハンド
ラと、ベクトルプロセッサ区切り点例外処理ハンドラと
を含む。
0のソフトウェア及びファームウェア構造500を示し
たもので、マルチメディア信号プロセッサ200は、マ
ルチメディア信号プロセッサ200上で実行されるMS
Pシステム要素ソフトウェア502と、ホストプロセッ
サ102上で実行されるPC応用及びオペレーティング
システムソフトウェア508とを含む。マルチメディア
信号プロセッサ200は、コプロセッサ204上で実行
される、ベクトル化されたDSPファームウェアライブ
ラリと、プロセッサ202上で実行されるシステム管理
機能ブロック506とを含むファームウェアにより制御
される。
ェアライブラリ504及びシステム管理機能ブロック5
06は、MSPシステム要素ソフトウェア502内に含
まれる。前述のソフトウェア及びファームウェア構造5
00は、ホスト応用制御動作から信号処理機能を分離
し、ソフトウェア開発を単純化させ、ソフトウェア設計
関係を向上させ、応用開発及び維持費用を減少させる。
は、プロセッサ202上で独自的に実行され、MSPリ
アルタイムオペレーティングシステムコア部510、マ
ルチメディアライブラリモジュール512、システム管
理機能ブロック506及び、ベクトル化されたDSPフ
ァームウェアライブラリ504を含む。MSPリアルタ
イムコア部510は、マイクロソフトのMMOSAリア
ルタイムカーネル(Kernel)のサブセットであ
り、ホストプロセッサ102、資源管理、I/O装置駆
動及び、大部分のインタラプト及び例外処理への接続を
担う。MSPリアルタイムコア部510は、ホストプロ
セッサ102上で実行されるWindowsTM及びWi
ndowsNTTMソフトウェアとの接続のためのソフト
ウェアを含む。
トプロセッサ102から所定のアプリケーションファー
ムウェアを選択しダウンロードするためのソフトウェ
ア、プロセッサ202とベクトルプロセッサ204内で
の実行のためのタスク準備のためのソフトウェアと、メ
モリ及びI/O装置を含むマルチメディア信号プロセッ
サ200のシステム資源を管理するためのソフトウェア
とを含む。MSPリアルタイムコア部510は、またマ
ルチメディア信号プロセッサ200のタスク間の同期接
続のためのソフトウェアと、MSP関連インタラプト、
例外及び状態条件を報告するためのソフトウェアとを含
む。
イブラリ504は、すべてのデジタル信号処理機能を遂
行する。ベクトル化されたDSPファームウェアライブ
ラリ504は、またはプロセッサ202によってベクト
ルプロセッサ204に発行されたコプロセッサインタラ
プト、またはベクトルプロセッサ204内で発生される
ハードウェアスタックオーバフロー例外のような特別な
割込みを制御する。
2は、データ通信、MPEGビデオ及びオーディオ、ス
ピーチコーディング及び合成、サウンドブラスタ−互換
オーディオなどを含む通信処理機能を遂行する。MSP
リアルタイムコア部510は、マルチメディア信号プロ
セッサ200上で実行されるマルチメディア応用を容易
にする、堅実なリアルタイムマルチタスキングのプリエ
ンプティブ(pre-emptive)オペレーティングシステムで
ある。
Cアプリケーション及びオペレーティングシステムソフ
トウェア508は、システムバス106を通してMSP
制御及び状態レジスタへの読み取り及び書き込み動作、
及びシステムメモリ104とマルチメディア信号プロセ
ッサ200に常駐する共有データ構造への書き込みを遂
行することによって、マルチメディア信号プロセッサ2
00を制御する。
ームを遂行するプロセッサ202から始まる。プロセッ
サ202は、ベクトルプロセッサ204内の第2の独立
的な実行ストリームを開始することができる。プロセッ
サ202とベクトルプロセッサ204の動作は、STA
RTVP、INTVP及びTESTVP命令、及びVJ
OIN及びVINT命令を含む、ベクトルプロセッサ2
04内で実行される、特殊命令を含むプロセッサ202
内で処理される特定のコプロセッサ命令を通して同期さ
れる。プロセッサ202とベクトルプロセッサ204間
のデータ転送は、プロセッサ202内で実行されるデー
タ移動命令によって実行される。
に信号を送ることによって、プロセッサ202との対話
を行う。特に、コプロセッサ204は、コプロセッサ2
04が同期される命令を実行したことを表わす使用者拡
張されたレジスタを通し、間接的にプロセッサ202に
信号を送る。コプロセッサ204は、コプロセッサ20
4が例外を停止させ、VP_IDLE状態に入ったこと
を表わすインタラプト要求を通し、直接にプロセッサ2
02に信号を送る。コプロセッサ204は、プロセッサ
202への信号転送のために2個の命令を実行する。V
CJOIN命令と、プロセッサ202に条件的に割込む
VCINT命令(VCJOINn)は、コプロセッサ2
04を停止し、VP_IDLE状態に入るようにする。
VCINT及びVCJOIN命令は、制御フロークラス
に分類されるコプロセッサ204によって実行される命
令である。この制御フロー命令は、ブランチ、減分及び
ブランチ、ジャンプ、サブルーチンからの復帰、文脈変
更、及びバリア命令のような多様な条件付き命令を含
む。
連続的なプログラム実行と関連したマルチタスキング動
作を遂行することができる。プログラム間の文脈変更に
必要な時間は、文脈変更されるプログラムを無事に復旧
することに必要なすべてのプロセッサ状態情報を格納す
る従来の格納に比べて、関連するプロセッサ状態情報を
格納することによりプロセッサ状態情報量を減少させる
ことができる。文脈が変更される間、格納されたプロセ
ッサ情報量を減少させることによって、以下に説明する
通り、資源をより効率的に利用することができる。
システム100に採用されたもので、例えば三星MSP
系列のマルチメディア信号プロセッサから選択されたマ
ルチメディア信号プロセッサ200を利用する効率的な
文脈変更及び、プログラム復旧プロセスフロー600
(文脈セーブ/復旧プロセスフロー600)の一実施の
形態を示したものである。文脈セーブ/復旧プロセスフ
ロー600は、プログラム実行ブロック602から始ま
る。プログラム実行ブロック602において、コプロセ
ッサ204(図2参照)は、アプリケーションプログラ
ムのようなプログラムを実行する。このアプリケーショ
ンプログラムは、アプリケーションプログラム全般にわ
たって、プログラマーによって散在されたマークを含む
ことによって、このマークが大略規則的に表れ得るよう
にする。
VCCSというコプロセッサ204の条件付き文脈変更
命令である。アプリケーションプログラムが実行される
間、あるポイントでコプロセッサ204は、現在実行中
のプログラム内のこのポイントと関連したプロセッサ状
態情報を含む。アプリケーションプログラム内の何ヶ所
のポイントでは、文脈変更後でアプリケーションプログ
ラムを無事に復旧することに必要なプロセッサ状態情報
が他のポイントより割合少ない。文脈変更を通し、最少
量のプロセッサ状態情報の保存を必要とするアプリケー
ションプログラム内のこのような“減少されたプロセッ
サ状態”ポイントを認知するプログラムマーは、アプリ
ケーションプログラム内のこれの減少されたプロセッサ
状態ポイントにVCCS命令を下ろす。しかし、お互い
に出会ったVCCS命令間の間隔は、文脈変更動作を大
きく遅延させないように、大きくないものが好ましい。
この間隔は、プログラマーの判断、アプリケーションプ
ログラム及びコプロセッサ204のクロック速度により
決定される。一実施の形態によるこの間隔は、要求され
た文脈変更と要求に対する応答の間に、2μSEC以下
の遅延を発生させる。
せることに必要なプロセッサ状態情報量を減少させるこ
とによって、プロセッサ状態情報の潜在的な大きさが非
常に大きい場合、特にプロセッサ動作の利得を大きくす
ることができる。例えば、三星MSP系列のあるプロセ
ッサは、プロセッサ状態情報に割当てられた最も多い量
のメモリ格納領域を有する典型的な構造である。三星M
SPは、7キロバイト以上のプロセッサ状態情報を含
み、64個の288ビットベクトルレジスタ、80個以
上の32ビットスカラーレジスタ、及び最大4キロバイ
トのスクラッチパッドメモリを含む。三星MSPのよう
な構造における文脈変更及びプログラムの復旧が遂行さ
れる間のプロセッサ状態情報の転送量の減少と関連して
性能を向上できる。
たプロセッサ状態ポイントの一例は、50個の引数(arg
ument)の和を決定するADD命令と関連がある。アプリ
ケーションプログラムが引数の和を決定する前に文脈変
更されると、アプリケーションプログラムを復旧するこ
とに必要なプロセッサ状態情報は、50個の引数のすべ
てを必ず持たなければならばい。しかし、ADD命令が
終了され前記の和が決定されると、この和のみがプロセ
ッサ状態情報の一部分として含まれなければならない。
従って、プログラムへの復帰上のプログラム再実行のた
めに必要なプロセッサ状態情報量は、すべての利用可能
なプロセッサ状態情報のセーブと関連して減少される。
であるVCCS命令は、50個の引数の和の決定による
ポイントでアプリケーションプログラム内に位置する。
これは、無事に文脈を変更し、アプリケーションプログ
ラムを復旧するために必要なプロセッサ状態情報を減少
させるためのアプリケーションプログラム内の適切なポ
イントの一例である。アプリケーションプログラム内の
他の多くのポイントが、文脈変更及びこれの後に続くプ
ログラムの復旧前に、プロセッサ状態情報格納量を減少
させるために選択され得ることは、当業者には明らかな
ことである。
グラムの例示部分700は、散在しているVCCS命令
702を含む。VCCS命令702は、アプリケーショ
ンプログラム内で無事にまた正確に文脈変更が可能とな
るよう、必要最少量のプロセッサ状態情報記憶を所定の
位置に規則的に散在したものである。
ロック602内でアプリケーションプログラムが実行さ
れる間、32ビットVCCS命令は、文脈変更命令ブロ
ック604に示したように、適切なポイントで出会うこ
とになる。文脈変更要求ブロック606に進行し、VC
CS命令で、コプロセッサ204は、プロセッサ202
が現在実行中のアプリケーションプログラムを文脈変更
し、他のプログラムに代替することを要求したか否かを
決定するようにする。文脈変更が要求されなかったら、
文脈セーブ/復旧プロセスフロー600は、プログラム
実行ブロック602に戻って出会ったVCCS命令に従
うポイントから、アプリケーションプログラムを実行し
続ける。
は、コプロセッサインタフェース206内に位置する、
VIMSKレジスタという32ビットベクトルプロセッ
サインタラプトマスクレジスタ208で書き込み動作を
行う。特に、プロセッサ202は、CSEビットに1を
書くことによって、VIMSKレジスタ214のCSE
或いは文脈変更イネーブルビットのビットをゼロに設定
する。
用されるVCCS命令フォーマットを示している。
置内の111101ビットを含み、最下位23ビット内
にオフセットフィールド(offset field)を含む。このオ
フセットフィールドは、文脈変更が要求された時、コプ
ロセッサ204がVCCS命令の無事終了によって分岐
される文脈セーブサブルーチンの位置を認知する。ビッ
ト(25:23)は、VCCS命令によって使用されな
い。VCCS命令のアセンブラ構文(assembler syntax)
はVCCS#Offsetである。
と、プログラム実行ブロック602において、現在実行
中のアプリケーションプログラムを文脈変更し、他のプ
ログラムに交替することをプロセッサ202が要求した
か否かを決定するため、前回のVCCS命令によって、
コプロセッサ204がVIMSKレジスタ214を読み
取ることになる。VCCS命令が例外を起こさないと仮
定すると、VIMSKレジスタ214のCSEビットが
1に設定される。そして、プログラム実行ブロック60
2内のアプリケーションプログラムの復帰アドレスは、
文脈変更されるプログラムと唯一に関連したソフト復帰
アドレススタックに格納される。アプリケーションプロ
グラムの現在アドレスは、ベクトルプログラムカウンタ
(VPC)内に位置する。復帰アドレスはVPC+4で
ある。
うまで、プロセッサ202から要求された文脈変更を確
認しないことに注目すべきである。結果的に、プログラ
マーは、実行中のプログラムが文脈変更され得るポイン
トを制御することができる。また、要求された文脈変更
と、これによる応答との間に遅延が発生するとしても、
文脈の変更要求、検出及び応答遅延が発生される間、ア
プリケーションプログラムが継続して実行されるので、
プログラム実行に際して問題が発生されない。次の擬似
コード(pseudocode)はVCCSの作用を示したものであ
る。 If(VIMSK<CSE>==1){ if(VSP<4>>15){ VISRC<RASO>=1;signal processor 202 with RASO exception; VP_STATE=VP_IDLE; }else{ RSTACK[VSP<3:0> =VPC+4 ; VSP<4:0>=VSP<4:0>+1; VPC =VPC+sex(Offset<22:0>*4) ; } }else VPC=VPC+4 ; 文脈変更要求ブロック606を参照すると、VCCS命
令によって、コプロセッサ204がVIMSKレジスタ
214のCSEビットが設定されたか否かを決定する。
ビットが設定されていなければ、プロセッサ202が文
脈変更を要求していないことを示し、コプロセッサ20
4のプログラムカウンタVPCは次の命令まで増加し、
プログラム実行ブロック602への復帰が実行される。
プロセッサ202が文脈変更を要求したら、コプロセッ
サ204は、アプリケーションプログラムと関連した5
ビットベクトルスタックポインタ(VSP)のビット4
個を検査し、VCCS命令の実行がスタックオーバフロ
ーをもたらすかどうかを決定する。
トルインタラプト発生源レジスタ(VISRC)の復帰
アドレススタックオーバフロー例外ビットは1に設定さ
れ、コプロセッサ204の状態(VP_STATE)は
アイドル状態(VP_IDLE)となる。スタックオー
バフローが発生しない場合、文脈セーブ/復旧プロセス
フロー600が進行され、復帰アドレスブロック608
を格納する。そしてコプロセッサ204は、プログラム
実行ブロック602内で実行されるアプリケーションプ
ログラムの復帰アドレスを格納し、ソフトスタックポイ
ンタを増加させる。それから、VPCはVCCSオフセ
ットフィールドにより表示される符号拡張されたアドレ
スにロードされる。VPCにこの時格納されたアドレス
は、文脈セーブサブルーチンブロック612で示した文
脈セーブサブルーチンのアドレスである。
ーチンブロック610への実行ブランチに示す通り、V
PC内の文脈セーブサブルーチンアドレスを利用し、文
脈セーブサブルーチンに分岐される。文脈セーブサブル
ーチン612は、プログラム実行ブロック602内で実
行されるアプリケーションプログラムのプログラマーに
より書かれる。結果的に、プログラマーは文脈変更され
たアプリケーションプログラムを無事再実行するために
格納される必要最少量のプロセッサ状態情報を認知する
ようになる。最少プロセッサ状態情報サブブロック61
4に示す通り、文脈セーブサブルーチン612は、例え
ば文脈変更されたプログラムを復旧するために必要とな
る、レジスタとスクラッチパッドメモリに存在する必要
な情報のみを格納する。
の格納位置前に、コプロセッサ204はVCJOINと
いうプロセッサ202タスク命令の32ビット条件付き
結合(Conditional Join)を実行することによって、文脈
セーブサブルーチン612を終了する。
使用されるVCJOIN命令フォーマットを示したもの
である。
ト位置内に100110ビットを含んでおり、最下位2
3ビット内にビット(25:23)内の条件フィールド
(condition field)及びオフセットフィールドを含む。
この条件フィールドは、無条件的にプロセッサ202を
インタラプトするために設定される。オフセットフィー
ルドは、文脈変更プログラムの再実行によって、コプロ
セッサ204が実行される文脈復旧サブルーチン位置の
アドレスを表わす。VCJOIN命令のアセンブラ構文
は、VCJOIN.cond#Offsetである。
示したものである。 文脈復旧サブルーチンサブブロック616の格納位置を
参照すると、コプロセッサ204によるVCJOIN.
un#Offset命令の実行により文脈復旧サブルー
チン628の位置がセーブされ、プロセッサ202をイ
ンタラプトする。これによって、プロセッサ202は後
続プログラムを実行するため、コプロセッサ204をセ
ットアップする。文脈復旧サブルーチンサブブロック6
16の格納位置において、VCJOINの条件は無条件
的に設定され、VIMSKレジスタ214のVCJOI
Nインタラプトイネーブル(VJE)ビットは1に設定
される。VIMSKレジスタ214のVJEビットは5
である。文脈復旧サブルーチンサブブロック616の格
納位置を参照すると、VCJOIN命令の23ビットオ
フセットフィールドは、文脈復旧サブルーチン628の
位置を表わすために設定される。
8内でVCJOIN命令が、コプロセッサ204により
実行される時、コプロセッサ204はVCJOIN命令
の条件フィールドを確認し、条件フィールドの無条件付
き状態を確証する。続いて、コプロセッサ204は、3
2ビットのベクトルインタラプト発生源レジスタ(VI
SRC)の例外中のビット(VJP)を1に設定する。
VJPビットはVISRCレジスタのビット5である。
ベクトルインタラプト命令レジスタ1(VIINS)
は、VCJOIN命令が実行され、プロセッサ202を
インタラプトするので、VCJOIN命令でアップデー
トされる。
カウンタ(VEPC)にセーブされる。VEPCは、一
番最近の例外を招来した命令のアドレスを規定する。V
CJOIN命令が実行し続けられることによって、VI
MSKレジスタ214のVJEビットは評価され、1に
設定されるように決定される。VJEビットの設定によ
ってプロセッサ202がIRQインタラプトされ、VJ
Pビットの設定によりコプロセッサ204はIDLE状
態に入るようになる。
は、文脈セーブサブルーチンブロック612を終了後、
プロセッサ割込み処理ブロック620に進む。
処理してから、次のプログラム文脈変更決定ブロック6
22に示す通り、プロセッサ202は実行される次のプ
ログラムが“新しい”プログラム、すなわち、それ以前
に文脈変更されなかったり、または変更されないプログ
ラムであるかを決定する。マルチメディア信号プロセッ
サ200オペレーティングシステム(図5参照)は、プ
ログラムのトラックを維持し、このプログラムが事前に
文脈変更されたか否かを決定する。コプロセッサ204
により実行される次のプログラムが“新しい”プログラ
ムであれば、文脈セーブ/復旧プロセスフロー600
は、新しいプログラムブロック624を実行するため、
コプロセッサのセットアップを進める。
をセットアップし、“新しい”プログラムを実行させ
る。そして、文脈セーブ/復旧プロセスフロー600
は、“新しい”プログラムが実行されるプログラム実行
ブロック602に戻る。
2に戻って、コプロセッサ204は、次のプログラムが
既に文脈変更された場合、文脈復旧サブルーチンブロッ
ク626へのブランチに入る。プロセッサ202は、そ
れからコプロセッサ204のVPCを上述のごとく文脈
復旧サブルーチンサブブロック616の格納位置内での
VCJOIN命令が実行される間、格納されていた文脈
復旧サブルーチン628のアドレスをロードする。そし
て文脈セーブ/復旧プロセスフロー600は、文脈復旧
サブルーチン628に分岐される。
変更されるアプリケーションプログラムのプログラマー
によって書かれる。結果として、プログラマーは文脈変
更を無事再実行する前、文脈セーブサブルーチン612
により事前に格納され、現在はアプリケーションプログ
ラム内で文脈変更された最少量のプロセッサ状態情報の
位置が分かるようになる。文脈セーブ/復旧プロセスフ
ロー600は、適切なコプロセッサ204のメモリ位
置、例えば上述したレジスタ及びスクラッチメモリ内に
既に格納された最少量のプロセッサ状態情報を、コプロ
セッサ204が読み取る最少プロセッサ状態情報サブブ
ロック630をロードするために進む。
を無事続行するために、必要なプロセッサ状態情報をロ
ードすると、文脈復旧サブルーチン628は、文脈復旧
サブルーチンサブブロック616の格納位置内に既に格
納されている正確なプログラム位置でアプリケーション
プログラムが文脈変更を実行できるようコプロセッサを
準備する。このアプリケーションプログラムの位置を復
旧するために、コプロセッサ204は、文脈復旧サブル
ーチン628を終了するサブルーチンからの条件付き復
帰(VCRSR)命令を実行する。表3は、三星MSP
ベクトルプロセッサで使用されるVCJOIN命令フォ
ーマットを示したものである。
位置内に100101ビットを含み、ビット(25:2
3)内に条件フィールドを含む。最下位23ビットは使
用されず、いずれの値にも設定され得る。この条件フィ
ールドは、無条件的にプロセッサ202をインタラプト
するように設定される。VCRSR命令のアセンブラ構
文は、VCRSR.condである。
したものである。 If(Cond=un){ if(VSP<4:0>==0){ VISRC<RASU>=1; signal processor 202 with RASU exception; VP_STATE=VP_IDLE; }else{ VSP<4:0>=VSP<4:0>-1; VPC=RSTACK VSP<3:0> ; VPC<1:0>=b'00; } }else VPC=VPC+4; プログラムブロック632内の、文脈変更のロード復帰
アドレスを参照すると、VCRSR.un命令の実行に
より、コプロセッサ204が格納復帰アドレスブロック
608内に既に格納されている位置から、プログラム内
の文脈変更の実行を更に始める。VCRSR.un命令
が実行される間、コプロセッサ204は、無条件付きブ
ランチコードを含むVCRSR命令の条件フィールドを
調査することによって、無条件付きブランチが要求され
たか否かを決定する。VCRSR命令の実行によって調
査されたVSPは、文脈変更中のプログラムと唯一に関
連したソフトスタックポインタである。次いで、コプロ
セッサ204は、VSPを調査し、VSPが最下位ビッ
ト位置を指しているか否かを決定する。VSPが最下位
の位置を指していると、VISRCレジスタのRASU
ビットは1に設定される。RASUビットは、復帰アド
レススタックアンダーフロー(Return Address Stack Un
derflow)例外ビットであり、このように設定されると、
プロセッサ202へと例外が存在するという信号を送
る。この時、コプロセッサ204はアイドル状態に入る
ようになる。VSPが最下位位置を指していなければ、
コプロセッサ204はVSPを1ずつ減少させ、この選
択されたVSP位置に格納されたアドレスにVPCをロ
ードする。このVSP位置は、格納復帰アドレスブロッ
ク608に既に格納されている復帰アドレスを含む。V
PC<1:0>=b’00段階は、VPCの最下位2ビ
ットが0にロードされることを確実にするものである。
後、文脈変更プロセスフロー600は、プログラム内の
文脈変更の最初の実行命令であるプログラム実行ブロッ
ク602に戻る。文脈変更プロセスフロー600は、プ
ログラム実行が終了されるまで反復される。
チプロセッサ環境における文脈変更の効率性は、文脈変
更プロセスフロー600によって向上する。プログラム
の文脈変更が起こる間、プロセッサ状態情報の最少量を
格納することのみで、コプロセッサ204の時間を他の
動作に利用し得る。また、最少量のプロセッサ状態情報
のみを復旧することによって、プログラムが効率的に文
脈変更できるようになる。このような時間節約は、文脈
変更動作が遂行される間蓄積される。
して図示し説明したが、本発明は前記の実施の形態に限
定されることではない。例えば、特定のハードウェア及
びソフトウェアの実施の形態は例示的なものであり、他
の多くのシステム構造及び/またはソフトウェア実施の
形態により、上述した文脈変更及び復旧特徴を実現する
ことができる。また、文脈変更及び復旧が、2個以上の
タスクと関連したマルチタスキング環境で使用されるこ
とは、本発明の属する技術分野で通常の知識を有する者
には明らかなものである。従って、本願発明の特許請求
の範囲により示された本発明の精神や範囲を離脱しない
限度内での本発明の多様な改造及び修正は本発明の範疇
に含まれる。
ルチプロセッサシステムの一実施の形態を示したブロッ
ク図。
システムのマルチメディア信号プロセッサを示したブロ
ック図。
おけるコプロセッサ(co-processor)を示したブロック
図。
データ経路を示したブロック図。
ア構造を示したブロック図。
ラム文脈セーブ及び、プログラム復旧と関連した動作を
示したフロー図。
実行可能なプログラムのフロー部分を示した図。
Claims (23)
- 【請求項1】 第1プロセッサ上で第1プログラムを実
行する段階と、 第2プロセッサから文脈変更要求を受け入れる段階と、 前記第1プログラム内の適切なポイントで前記文脈変更
要求に応答する段階とを含み、前記適切なポイントは前
記プログラム内の表示と関連し、そのプログラムは前記
第1プログラムのすぐ次のポイントを示し、前記プログ
ラムを無事復旧するためのプロセッサ状態情報記憶を必
要最少量としたことを特徴とするマルチタスキング処理
システム環境における効率的な文脈セーブ及び復旧方
法。 - 【請求項2】 第1プログラムを無事復旧するために、
前記第1のプログラム中のプロセッサ状態情報記憶の必
要最少量の位置に複数の表示を散在させる段階が更に含
まれることを特徴とする請求項1記載のマルチタスキン
グ処理システム環境における効率的な文脈セーブ及び復
旧方法。 - 【請求項3】 前記適切なポイントで前記第1プログラ
ムの状態に相応するプロセッサ状態情報をセーブする段
階と、 前記第1プログラムを変える段階と、 前記第1プロセッサ上で第2プログラムを実行する段階
と、 前記第2プログラムを変える段階と、 最少量のプロセス情報を用いて前記第1プログラムを復
旧する段階とが更に含まれることを特徴とする請求項1
記載のマルチタスキング処理システム環境における効率
的な文脈セーブ及び復旧方法。 - 【請求項4】 前記文脈変更要求に応答する段階が、 前記適切なポイントで、前記第1プログラムの状態に相
応するプロセッサ状態情報をセーブする段階と、 前記第1プログラムを正確に復旧するために、文脈復旧
ルーチンの位置をセーブする段階とを含むことを特徴と
する請求項1記載のマルチタスキング処理システム環境
における効率的な文脈セーブ及び復旧方法。 - 【請求項5】 前記第1プログラムを実行する段階が、 マルチメディアプロセッサシステム内のマルチメディア
信号プロセッサのベクトルプロセッサ上で、前記第1プ
ログラムを実行する段階を含むことを特徴とする請求項
1記載のマルチタスキング処理システム環境における効
率的な文脈セーブ及び復旧方法。 - 【請求項6】 複数個のマルチメディア装置からデータ
が供給される段階を更に含み、前記第1プログラムを実
行する段階が、前記提供されたデータを処理する段階を
含むことを特徴とする請求項1記載のマルチタスキング
処理システム環境における効率的な文脈セーブ及び復旧
方法。 - 【請求項7】 前記文脈変更要求を受け入れる段階が、
前記第2プロセッサにより設定される文脈変更イネーブ
ルフィールドを備えたレジスタを読み取る段階を含むこ
とを特徴とする請求項1記載のマルチタスキング処理シ
ステム環境における効率的な文脈セーブ及び復旧方法。 - 【請求項8】 前記文脈変更要求を受け入れた後、前記
第1プログラムを実行し続ける段階が更に含まれ、 前記文脈変更要求に応答する段階が、 前記適切なポイントで前記第1プログラム内の表示と会
う段階と、 前記第1プロセッサに割込みを行う段階と、 前記第1プログラム内のマークと会うことによって前記
第1プロセッサで前記文脈変更要求を読み取る段階と、 前記第1プログラムの復帰アドレスを格納する段階と、 前記第1プログラムの無事復旧のために必要な最少量の
プロセッサ状態情報を格納する段階と、 前記第1プロセッサが利用可能であることを第2プロセ
ッサに通知して第2プログラムが実行されるようにする
段階と、を含むことを特徴とする請求項1記載のマルチ
タスキング処理システム環境における効率的な文脈セー
ブ及び復旧方法。 - 【請求項9】 前記マークは条件付き文脈変更命令であ
ることを特徴とする請求項1記載のマルチタスキング処
理システム環境における効率的な文脈セーブ及び復旧方
法。 - 【請求項10】 それぞれ散在している複数個の文脈変
更表示を備えたプログラムを遂行するためのマルチタス
キング環境内の第1プロセッサと、 前記第1プロセッサに接続され、プロセッサ状態情報を
格納するように割当てられた第1メモリと、 前記第1プロセッサに接続された第2メモリと、 前記プロセッサが、実行中のプログラム内のマーク示の
うちいずれか1つに出会ってから、プログラムの文脈変
更要求を検出するための前記第1プロセッサ上で動作す
る文脈変更要求検出器と、 前記第1メモリ内に位置したプロセッサ状態情報を前記
第2メモリに格納することによって、検出された文脈変
更要求に応答するための第1プロセッサ上で動作する文
脈セーブモジュールと、を含むことを特徴とするコンピ
ューティングシステム。 - 【請求項11】 前記文脈セーブモジュールが、文脈復
旧モジュールの位置を格納することによって検出された
文脈変更要求に応答することを特徴とする請求項10記
載のコンピューティングシステム。 - 【請求項12】 前記第1プロセッサと相互接続された
第1プロセッサが更に含まれるところ、前記第1及び第
2プロセッサは非対称的な特性を有し、前記第2プロセ
ッサは、第1プロセッサが実行中のプログラムを文脈変
更するように要求するメカニズムを有することを特徴と
する請求項10記載のコンピューティングシステム。 - 【請求項13】 前記第1プロセッサと第2プロセッサ
との間に接続され、第1及び第2プロセッサにより相互
にアクセス可能なレジスタを含むインタフェースユニッ
トが更に含まれ、前記第2プロセッサは、文脈変更要求
を示すように前記レジスタに書き込み動作を行うことが
でき、前記第1プロセッサは、前記第2プロセッサから
文脈変更要求を検出するように前記レジスタが読めるこ
とを特徴とする請求項12記載のコンピューティングシ
ステム。 - 【請求項14】 前記第2プロセッサは制御プロセッサ
であり、第1プロセッサはベクトルプロセッサであるこ
とを特徴とする請求項12記載のコンピューティングシ
ステム。 - 【請求項15】 文脈変更されたプログラムと関連した
前記第2メモリ内に位置する前記格納されたプロセッサ
状態情報を、前記第1メモリに復帰させることによっ
て、文脈変更されたプログラムを復旧する前記第1プロ
セッサ上で動作する文脈復旧モジュールが更に含まれる
ことを特徴とする請求項10記載のコンピューティング
システム。 - 【請求項16】 前記マークは、前記プログラムの全般
にかけて無事にプログラムを復旧するために最少プロセ
ッサ状態情報を、必要とする位置に散在させることを特
徴とする請求項10記載のコンピューティングシステ
ム。 - 【請求項17】 前記マークは、条件付き文脈変更命令
であることを特徴とする請求項10記載のコンピューテ
ィングシステム。 - 【請求項18】 プログラムに条件付き文脈変更命令を
挿入する段階と、 前記プログラムを実行する段階と、 文脈変更要求を受ける段階と、 前記条件付き文脈変更命令の中のいずれか1つを検出す
る段階と、 前記条件付き文脈変更命令の中のいずれか1つを検出す
る段階の後、前記文脈変更要求がプロセッサに存在する
か否かを決定する段階と、 文脈変更要求の存在如何の決定によって、プログラムの
復帰アドレスをセーブしたり、プログラムを実行し続け
る段階と、前記条件付き文脈変更命令を検出する前、プ
ログラムの状態に該当するプロセッサ状態情報をセーブ
する段階と、文脈復旧モジュールの位置をセーブする段
階及び、前記プロセッサを割込みする段階からなる文脈
セーブモジュールを実行する段階とを備えたプログラム
を変える段階と、を含むことを特徴とするマルチタスキ
ング処理システム環境における効率的な文脈のセーブ方
法。 - 【請求項19】 前記文脈セーブモジュールの実行段階
において既にセーブされたプロセッサ状態情報をロード
する段階と、前記プログラムを変える段階において既に
セーブされたプログラムの復帰をロードする段階とから
なる文脈復旧モジュールを実行する段階と、 前記プログラムを実行する段階とを更に含むことを特徴
とする請求項18記載のマルチタスキング処理システム
環境における効率的な文脈のセーブ方法。 - 【請求項20】 コプロセッサ上で前記プログラムを実
行する段階と、 制御プロセッサからインタフェースユニットに前記文脈
変更要求を提供する段階とが更に含まれることを特徴と
する請求項18記載のマルチタスキング処理システム環
境における効率的な文脈のセーブ方法。 - 【請求項21】 前記プログラムに条件付き文脈変更命
令を挿入する段階が、 プログラム全般にかけて大略規則的に条件付き文脈変更
命令を挿入することによって、この条件付き文脈変更命
令がプログラム内の文脈変更前に最少量のプロセッサ状
態情報のセーブを必要とするプログラム内の位置に挿入
させる段階とを含むことを特徴とする請求項18記載の
マルチタスキング処理システム環境における効率的な文
脈のセーブ方法。 - 【請求項22】 前記挿入段階が、条件付き文脈変更命
令は、大略に規則的な間隔で挿入することによって前記
文脈変更要求を受け入れる段階と、条件付き文脈変更命
令の中のいずれか1つを検出する段階との間に目立つ遅
延が発生することを防止する段階とを更に含むことを特
徴とする請求項21記載のマルチタスキング処理システ
ム環境における効率的な文脈のセーブ方法。 - 【請求項23】 前記条件付き文脈変更命令の中のいず
れか1つを検出することによって、前記第1プロセッサ
を大略に規則的にインタラプトする段階が更に含まれ、 前記プログラムを実行する段階が、第1プロセッサ上で
前記プログラムを実行する段階が含まれることを特徴と
する請求項18記載のマルチタスキング処理システム環
境における効率的な文脈のセーブ方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/699,280 US6061711A (en) | 1996-08-19 | 1996-08-19 | Efficient context saving and restoring in a multi-tasking computing system environment |
US08/699280 | 1996-08-19 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH10143481A true JPH10143481A (ja) | 1998-05-29 |
Family
ID=24808638
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP9222148A Pending JPH10143481A (ja) | 1996-08-19 | 1997-08-19 | マルチタスキング処理システム環境における効率的な文脈セーブ及び復旧装置及び方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US6061711A (ja) |
JP (1) | JPH10143481A (ja) |
KR (1) | KR100241063B1 (ja) |
CN (1) | CN1103078C (ja) |
DE (1) | DE19735871A1 (ja) |
FR (1) | FR2752966B1 (ja) |
TW (1) | TW403881B (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2006022202A1 (ja) * | 2004-08-27 | 2008-05-08 | 松下電器産業株式会社 | 情報処理装置、例外制御回路 |
JP2008537248A (ja) * | 2005-04-22 | 2008-09-11 | エヌエックスピー ビー ヴィ | デジタルシグナルプロセッサ上でのマルチタスクの実施 |
JP2010181989A (ja) * | 2009-02-04 | 2010-08-19 | Renesas Electronics Corp | データ処理装置 |
Families Citing this family (111)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100256442B1 (ko) * | 1996-08-05 | 2000-05-15 | 윤종용 | 아날로그버스를 갖는 멀티미디어장치 |
DE69822591T2 (de) * | 1997-11-19 | 2005-03-24 | Imec Vzw | System und Verfahren zur Kontextumschaltung über vorbestimmte Unterbrechungspunkte |
JP3027845B2 (ja) * | 1997-11-21 | 2000-04-04 | オムロン株式会社 | プログラム制御装置および方法 |
US6243736B1 (en) * | 1998-12-17 | 2001-06-05 | Agere Systems Guardian Corp. | Context controller having status-based background functional task resource allocation capability and processor employing the same |
US6434689B2 (en) * | 1998-11-09 | 2002-08-13 | Infineon Technologies North America Corp. | Data processing unit with interface for sharing registers by a processor and a coprocessor |
US8074055B1 (en) | 1999-01-28 | 2011-12-06 | Ati Technologies Ulc | Altering data storage conventions of a processor when execution flows from first architecture code to second architecture code |
US8127121B2 (en) * | 1999-01-28 | 2012-02-28 | Ati Technologies Ulc | Apparatus for executing programs for a first computer architechture on a computer of a second architechture |
US7941647B2 (en) | 1999-01-28 | 2011-05-10 | Ati Technologies Ulc | Computer for executing two instruction sets and adds a macroinstruction end marker for performing iterations after loop termination |
US8121828B2 (en) * | 1999-01-28 | 2012-02-21 | Ati Technologies Ulc | Detecting conditions for transfer of execution from one computer instruction stream to another and executing transfer on satisfaction of the conditions |
KR100335441B1 (ko) * | 1999-05-01 | 2002-05-04 | 윤종용 | 다중 비디오 디코딩 장치 및 그 방법 |
US6519265B1 (en) * | 1999-05-28 | 2003-02-11 | Sony Corporation | System and method for context switching in an electronic network |
WO2001016702A1 (en) | 1999-09-01 | 2001-03-08 | Intel Corporation | Register set used in multithreaded parallel processor architecture |
EP1236088B9 (en) * | 1999-09-01 | 2008-10-08 | Intel Corporation | Register set used in multithreaded parallel processor architecture |
ATE534074T1 (de) * | 1999-09-01 | 2011-12-15 | Intel Corp | Kontextwechselbefehl für multithread-prozessor |
US7318090B1 (en) * | 1999-10-20 | 2008-01-08 | Sony Corporation | Method for utilizing concurrent context switching to support isochronous processes |
US7171547B1 (en) * | 1999-12-28 | 2007-01-30 | Intel Corporation | Method and apparatus to save processor architectural state for later process resumption |
US6934832B1 (en) * | 2000-01-18 | 2005-08-23 | Ati International Srl | Exception mechanism for a computer |
US6823517B1 (en) * | 2000-01-27 | 2004-11-23 | Andrew E. Kalman | Multi-tasking-real-time operating system for microprocessors with limited memory that constrains context switching to occur only at task level |
US20020019843A1 (en) * | 2000-04-26 | 2002-02-14 | Killian Robert T. | Multiprocessor object control |
US6560449B1 (en) * | 2000-06-12 | 2003-05-06 | Broadcom Corporation | Image-rejection I/Q demodulators |
DE60130836T2 (de) * | 2000-06-12 | 2008-07-17 | Broadcom Corp., Irvine | Architektur und Verfahren zur Kontextumschaltung |
US6778594B1 (en) | 2000-06-12 | 2004-08-17 | Broadcom Corporation | Receiver architecture employing low intermediate frequency and complex filtering |
US6993764B2 (en) * | 2000-06-30 | 2006-01-31 | The Regents Of The University Of California | Buffered coscheduling for parallel programming and enhanced fault tolerance |
US7681018B2 (en) | 2000-08-31 | 2010-03-16 | Intel Corporation | Method and apparatus for providing large register address space while maximizing cycletime performance for a multi-threaded register file set |
JP2002297556A (ja) * | 2001-03-29 | 2002-10-11 | Fujitsu Ltd | マルチプロセッサシステム,マルチプロセッサ制御方法,マルチプロセッサ制御プログラムおよび同プログラムを記録したコンピュータ読取可能な記録媒体 |
US7512952B1 (en) * | 2001-04-06 | 2009-03-31 | Palmsource, Inc. | Task switching with state preservation for programs running on an electronic device |
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 |
CN100356349C (zh) * | 2001-04-27 | 2007-12-19 | 邵通 | 一种实现计算设备状态转换的装置及方法 |
CN100356350C (zh) * | 2001-04-27 | 2007-12-19 | 邵通 | 实现计算设备状态转换装置安全操作的装置和方法 |
US20030005268A1 (en) * | 2001-06-01 | 2003-01-02 | Catherwood Michael I. | Find first bit value instruction |
US20020184566A1 (en) * | 2001-06-01 | 2002-12-05 | Michael Catherwood | Register pointer trap |
US6937084B2 (en) * | 2001-06-01 | 2005-08-30 | Microchip Technology Incorporated | Processor with dual-deadtime pulse width modulation generator |
US6934728B2 (en) * | 2001-06-01 | 2005-08-23 | Microchip Technology Incorporated | Euclidean distance instructions |
US6976158B2 (en) * | 2001-06-01 | 2005-12-13 | Microchip Technology Incorporated | Repeat instruction with interrupt |
US7020788B2 (en) * | 2001-06-01 | 2006-03-28 | Microchip Technology Incorporated | Reduced power option |
US6975679B2 (en) * | 2001-06-01 | 2005-12-13 | Microchip Technology Incorporated | Configuration fuses for setting PWM options |
US20030028696A1 (en) * | 2001-06-01 | 2003-02-06 | Michael Catherwood | Low overhead interrupt |
US7007172B2 (en) * | 2001-06-01 | 2006-02-28 | Microchip Technology Incorporated | Modified Harvard architecture processor having data memory space mapped to program memory space with erroneous execution protection |
US7003543B2 (en) * | 2001-06-01 | 2006-02-21 | Microchip Technology Incorporated | Sticky z bit |
US20030005269A1 (en) * | 2001-06-01 | 2003-01-02 | Conner Joshua M. | Multi-precision barrel shifting |
US7467178B2 (en) * | 2001-06-01 | 2008-12-16 | Microchip Technology Incorporated | Dual mode arithmetic saturation processing |
US6952711B2 (en) * | 2001-06-01 | 2005-10-04 | Microchip Technology Incorporated | Maximally negative signed fractional number multiplication |
US20030023836A1 (en) * | 2001-06-01 | 2003-01-30 | Michael Catherwood | Shadow register array control instructions |
US8284844B2 (en) | 2002-04-01 | 2012-10-09 | Broadcom Corporation | Video decoding system supporting multiple standards |
US7437724B2 (en) * | 2002-04-03 | 2008-10-14 | Intel Corporation | Registers for data transfers |
US7137121B2 (en) * | 2002-04-19 | 2006-11-14 | Equator Technologies, Inc. | Data-processing circuit and method for switching between application programs without an operating system |
US7673304B2 (en) * | 2003-02-18 | 2010-03-02 | Microsoft Corporation | Multithreaded kernel for graphics processing unit |
US7107362B2 (en) * | 2003-05-19 | 2006-09-12 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Integrated circuit with configuration based on parameter measurement |
US20050149771A1 (en) * | 2003-11-07 | 2005-07-07 | Seiko Epson Corporation | Processor control circuit, information processing apparatus, and central processing unit |
US20060212874A1 (en) * | 2003-12-12 | 2006-09-21 | Johnson Erik J | Inserting instructions |
US7493617B2 (en) * | 2004-03-05 | 2009-02-17 | International Business Machines Corporation | Method of maintaining task sequence within a task domain across error recovery |
US7779238B2 (en) * | 2004-06-30 | 2010-08-17 | Oracle America, Inc. | Method and apparatus for precisely identifying effective addresses associated with hardware events |
US8640114B2 (en) | 2006-09-07 | 2014-01-28 | Oracle America, Inc. | Method and apparatus for specification and application of a user-specified filter in a data space profiler |
US7424601B2 (en) * | 2004-07-07 | 2008-09-09 | Yongyong Xu | Methods and systems for running multiple operating systems in a single mobile device |
US7664970B2 (en) | 2005-12-30 | 2010-02-16 | Intel Corporation | Method and apparatus for a zero voltage processor sleep state |
US20060143485A1 (en) * | 2004-12-28 | 2006-06-29 | Alon Naveh | Techniques to manage power for a mobile device |
EP1622009A1 (en) * | 2004-07-27 | 2006-02-01 | Texas Instruments Incorporated | JSM architecture and systems |
JP4244028B2 (ja) * | 2004-09-22 | 2009-03-25 | 株式会社ソニー・コンピュータエンタテインメント | グラフィックプロセッサ、制御用プロセッサおよび情報処理装置 |
US7774784B2 (en) * | 2005-03-17 | 2010-08-10 | Microsoft Corporation | Determining an actual amount of time a processor consumes in executing a portion of code |
US20060256854A1 (en) * | 2005-05-16 | 2006-11-16 | Hong Jiang | Parallel execution of media encoding using multi-threaded single instruction multiple data processing |
CN100361106C (zh) * | 2005-05-17 | 2008-01-09 | 北京中星微电子有限公司 | 连续访问环境下的中断恢复方法及装置 |
CN100361105C (zh) * | 2005-05-17 | 2008-01-09 | 北京中星微电子有限公司 | 中断处理中恢复访问环境设置的方法及装置 |
US7765550B2 (en) * | 2005-05-26 | 2010-07-27 | Hewlett-Packard Development Company, L.P. | System for controlling context switch of deferred requests using counter and flag setting of thread accessing shared resource or entering code region |
JP4756914B2 (ja) * | 2005-05-30 | 2011-08-24 | キヤノン株式会社 | 遠隔協調作業支援システム及びその制御方法 |
US7308565B2 (en) * | 2005-06-15 | 2007-12-11 | Seiko Epson Corporation | Saving/restoring task state data from/to device controller host interface upon command from host processor to handle task interruptions |
US7823158B2 (en) * | 2005-08-18 | 2010-10-26 | International Business Machines Corporation | Adaptive scheduling and management of work processing in a target context in resource contention |
US7502957B2 (en) * | 2005-09-09 | 2009-03-10 | International Business Machines Corporation | Method and system to execute recovery in non-homogeneous multi processor environments |
US8171268B2 (en) * | 2005-09-19 | 2012-05-01 | Intel Corporation | Technique for context state management to reduce save and restore operations between a memory and a processor using in-use vectors |
US20070101325A1 (en) * | 2005-10-19 | 2007-05-03 | Juraj Bystricky | System and method for utilizing a remote memory to perform an interface save/restore procedure |
US7937710B1 (en) * | 2005-11-22 | 2011-05-03 | Nvidia Corporation | Context switch signaling method and system |
US7590774B2 (en) * | 2005-12-01 | 2009-09-15 | Kabushiki Kaisha Toshiba | Method and system for efficient context swapping |
US8271994B2 (en) * | 2006-02-11 | 2012-09-18 | International Business Machines Corporation | Reduced data transfer during processor context switching |
US7634642B2 (en) * | 2006-07-06 | 2009-12-15 | International Business Machines Corporation | Mechanism to save and restore cache and translation trace for fast context switch |
US8424013B1 (en) * | 2006-09-29 | 2013-04-16 | Emc Corporation | Methods and systems for handling interrupts across software instances and context switching between instances having interrupt service routine registered to handle the interrupt |
US8813055B2 (en) * | 2006-11-08 | 2014-08-19 | Oracle America, Inc. | Method and apparatus for associating user-specified data with events in a data space profiler |
JP2008234074A (ja) * | 2007-03-16 | 2008-10-02 | Fujitsu Ltd | キャッシュ装置 |
US8762951B1 (en) | 2007-03-21 | 2014-06-24 | Oracle America, Inc. | Apparatus and method for profiling system events in a fine grain multi-threaded multi-core processor |
US8561060B2 (en) * | 2007-04-26 | 2013-10-15 | Advanced Micro Devices, Inc. | Processor and method configured to determine an exit mechanism using an intercept configuration for a virtual machine |
US8296768B2 (en) * | 2007-06-30 | 2012-10-23 | Intel Corporation | Method and apparatus to enable runtime processor migration with operating system assistance |
US8762692B2 (en) * | 2007-09-27 | 2014-06-24 | Intel Corporation | Single instruction for specifying and saving a subset of registers, specifying a pointer to a work-monitoring function to be executed after waking, and entering a low-power mode |
US8515052B2 (en) * | 2007-12-17 | 2013-08-20 | Wai Wu | Parallel signal processing system and method |
US8307360B2 (en) * | 2008-01-22 | 2012-11-06 | Advanced Micro Devices, Inc. | Caching binary translations for virtual machine guest |
US8359602B2 (en) * | 2008-02-21 | 2013-01-22 | Ca, Inc. | Method and system for task switching with inline execution |
TW201009713A (en) * | 2008-08-21 | 2010-03-01 | Ind Tech Res Inst | Multitasking processor and task switch method thereof |
JP5433676B2 (ja) * | 2009-02-24 | 2014-03-05 | パナソニック株式会社 | プロセッサ装置、マルチスレッドプロセッサ装置 |
US8856775B2 (en) * | 2010-09-22 | 2014-10-07 | International Business Machines Corporation | Unstacking software components for migration to virtualized environments |
TWI497419B (zh) * | 2011-10-20 | 2015-08-21 | Via Tech Inc | 電腦裝置及其中斷任務分配方法 |
US20130135327A1 (en) * | 2011-11-29 | 2013-05-30 | Advanced Micro Devices, Inc. | Saving and Restoring Non-Shader State Using a Command Processor |
US9329834B2 (en) | 2012-01-10 | 2016-05-03 | Intel Corporation | Intelligent parametric scratchap memory architecture |
US8819345B2 (en) | 2012-02-17 | 2014-08-26 | Nokia Corporation | Method, apparatus, and computer program product for inter-core communication in multi-core processors |
US8909892B2 (en) | 2012-06-15 | 2014-12-09 | Nokia Corporation | Method, apparatus, and computer program product for fast context switching of application specific processors |
US10078518B2 (en) | 2012-11-01 | 2018-09-18 | International Business Machines Corporation | Intelligent context management |
US10102003B2 (en) | 2012-11-01 | 2018-10-16 | International Business Machines Corporation | Intelligent context management |
US9417873B2 (en) | 2012-12-28 | 2016-08-16 | Intel Corporation | Apparatus and method for a hybrid latency-throughput processor |
US10140129B2 (en) | 2012-12-28 | 2018-11-27 | Intel Corporation | Processing core having shared front end unit |
US9361116B2 (en) * | 2012-12-28 | 2016-06-07 | Intel Corporation | Apparatus and method for low-latency invocation of accelerators |
US10346195B2 (en) | 2012-12-29 | 2019-07-09 | Intel Corporation | Apparatus and method for invocation of a multi threaded accelerator |
US10203958B2 (en) * | 2013-07-15 | 2019-02-12 | Texas Instruments Incorporated | Streaming engine with stream metadata saving for context switching |
US9898330B2 (en) | 2013-11-11 | 2018-02-20 | Intel Corporation | Compacted context state management |
US9417876B2 (en) * | 2014-03-27 | 2016-08-16 | International Business Machines Corporation | Thread context restoration in a multithreading computer system |
US10282227B2 (en) * | 2014-11-18 | 2019-05-07 | Intel Corporation | Efficient preemption for graphics processors |
US10963280B2 (en) | 2016-02-03 | 2021-03-30 | Advanced Micro Devices, Inc. | Hypervisor post-write notification of control and debug register updates |
US11803377B2 (en) * | 2017-09-08 | 2023-10-31 | Oracle International Corporation | Efficient direct convolution using SIMD instructions |
US11281495B2 (en) | 2017-10-26 | 2022-03-22 | Advanced Micro Devices, Inc. | Trusted memory zone |
GB2580135B (en) * | 2018-12-21 | 2021-01-20 | Graphcore Ltd | Handling exceptions in a multi-tile processing arrangement |
US11556374B2 (en) * | 2019-02-15 | 2023-01-17 | International Business Machines Corporation | Compiler-optimized context switching with compiler-inserted data table for in-use register identification at a preferred preemption point |
CN112015599B (zh) * | 2019-05-31 | 2022-05-13 | 华为技术有限公司 | 错误恢复的方法和装置 |
CN112202864B (zh) * | 2020-09-24 | 2022-12-09 | 建信金融科技有限责任公司 | 一种上下文切换系统、方法、装置、设备及介质 |
US11809861B2 (en) | 2021-06-09 | 2023-11-07 | Red Hat, Inc. | Development environment organizer with enhanced state switching and sharing |
CN113253664B (zh) * | 2021-07-02 | 2021-10-15 | 峰岹科技(深圳)股份有限公司 | 协处理器、协处理器控制方法、终端及存储介质 |
US11775301B2 (en) | 2021-09-24 | 2023-10-03 | Apple Inc. | Coprocessor register renaming using registers associated with an inactive context to store results from an active context |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3789365A (en) * | 1971-06-03 | 1974-01-29 | Bunker Ramo | Processor interrupt system |
US4954948A (en) * | 1986-12-29 | 1990-09-04 | Motorola, Inc. | Microprocessor operating system for sequentially executing subtasks |
US5008812A (en) * | 1988-03-18 | 1991-04-16 | Digital Equipment Corporation | Context switching method and apparatus for use in a vector processing system |
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 |
US5390329A (en) * | 1990-06-11 | 1995-02-14 | Cray Research, Inc. | Responding to service requests using minimal system-side context in a multiprocessor environment |
US5428779A (en) * | 1992-11-09 | 1995-06-27 | Seiko Epson Corporation | System and method for supporting context switching within a multiprocessor system having functional blocks that generate state programs with coded register load instructions |
US5490272A (en) * | 1994-01-28 | 1996-02-06 | International Business Machines Corporation | Method and apparatus for creating multithreaded time slices in a multitasking operating system |
US5613114A (en) * | 1994-04-15 | 1997-03-18 | Apple Computer, Inc | System and method for custom context switching |
US5594905A (en) * | 1995-04-12 | 1997-01-14 | Microsoft Corporation | Exception handler and method for handling interrupts |
US5627745A (en) * | 1995-05-03 | 1997-05-06 | Allen-Bradley Company, Inc. | Parallel processing in a multitasking industrial controller |
US5727211A (en) * | 1995-11-09 | 1998-03-10 | Chromatic Research, Inc. | System and method for fast context switching between tasks |
US5799188A (en) * | 1995-12-15 | 1998-08-25 | International Business Machines Corporation | System and method for managing variable weight thread contexts in a multithreaded computer system |
US5799143A (en) * | 1996-08-26 | 1998-08-25 | Motorola, Inc. | Multiple context software analysis |
-
1996
- 1996-08-19 US US08/699,280 patent/US6061711A/en not_active Expired - Lifetime
-
1997
- 1997-04-04 KR KR1019970012608A patent/KR100241063B1/ko not_active IP Right Cessation
- 1997-08-18 FR FR9710435A patent/FR2752966B1/fr not_active Expired - Fee Related
- 1997-08-18 DE DE19735871A patent/DE19735871A1/de not_active Ceased
- 1997-08-19 JP JP9222148A patent/JPH10143481A/ja active Pending
- 1997-08-19 CN CN97116043A patent/CN1103078C/zh not_active Expired - Fee Related
- 1997-08-19 TW TW086111966A patent/TW403881B/zh not_active IP Right Cessation
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2006022202A1 (ja) * | 2004-08-27 | 2008-05-08 | 松下電器産業株式会社 | 情報処理装置、例外制御回路 |
JP2010102732A (ja) * | 2004-08-27 | 2010-05-06 | Panasonic Corp | 情報処理装置、例外制御回路及び例外制御方法 |
JP4564011B2 (ja) * | 2004-08-27 | 2010-10-20 | パナソニック株式会社 | 情報処理装置、例外制御回路 |
JP4569934B2 (ja) * | 2004-08-27 | 2010-10-27 | パナソニック株式会社 | 情報処理装置、例外制御回路及び例外制御方法 |
US7934082B2 (en) | 2004-08-27 | 2011-04-26 | Panasonic Corporation | Information processing apparatus and exception control circuit |
US8082429B2 (en) | 2004-08-27 | 2011-12-20 | Panasonic Corporation | Information processing apparatus and exception control circuit |
JP2008537248A (ja) * | 2005-04-22 | 2008-09-11 | エヌエックスピー ビー ヴィ | デジタルシグナルプロセッサ上でのマルチタスクの実施 |
JP2010181989A (ja) * | 2009-02-04 | 2010-08-19 | Renesas Electronics Corp | データ処理装置 |
Also Published As
Publication number | Publication date |
---|---|
CN1103078C (zh) | 2003-03-12 |
KR100241063B1 (ko) | 2000-08-01 |
US6061711A (en) | 2000-05-09 |
CN1175731A (zh) | 1998-03-11 |
FR2752966B1 (fr) | 2005-09-30 |
KR19980018064A (ko) | 1998-06-05 |
DE19735871A1 (de) | 1998-03-19 |
FR2752966A1 (fr) | 1998-03-06 |
TW403881B (en) | 2000-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH10143481A (ja) | マルチタスキング処理システム環境における効率的な文脈セーブ及び復旧装置及び方法 | |
US6202130B1 (en) | Data processing system for processing vector data and method therefor | |
US6073215A (en) | Data processing system having a data prefetch mechanism and method therefor | |
US6119203A (en) | Mechanism for sharing data cache resources between data prefetch operations and normal load/store operations in a data processing system | |
US6003129A (en) | System and method for handling interrupt and exception events in an asymmetric multiprocessor architecture | |
JP3983857B2 (ja) | ベクトルレジスタの複数バンクを用いた単一命令複数データ処理 | |
JP4750865B2 (ja) | デ―タ・プロセッサにおいて後続の命令処理に影響を及ぼす方法および装置 | |
JP2834837B2 (ja) | プログラマブルコントローラ | |
US5727227A (en) | Interrupt coprocessor configured to process interrupts in a computer system | |
US5636353A (en) | Superscalar processor with direct result bypass between execution units having comparators in execution units for comparing operand and result addresses and activating results bypassing | |
JPS63131230A (ja) | 情報処理装置 | |
JPH10149297A (ja) | 通過する引き数を有するソフトウェアインタラプトをハンドリングするためのシステム及び方法 | |
JPH11154144A (ja) | プロセッサをコプロセッサにインタフェースするための方法および装置 | |
US5860154A (en) | Method and apparatus for calculating effective memory addresses | |
JP2507638B2 (ja) | デ―タ処理装置 | |
JP2581236B2 (ja) | データ処理装置 | |
US5687381A (en) | Microprocessor including an interrupt polling unit configured to poll external devices for interrupts using interrupt acknowledge bus transactions | |
JPH07120284B2 (ja) | データ処理装置 | |
US5948093A (en) | Microprocessor including an interrupt polling unit configured to poll external devices for interrupts when said microprocessor is in a task switch state | |
JP2004005603A (ja) | 繰返しブロック命令を入れ子ループに沿ってゼロ・サイクル・オーバヘッドで実行する方法及び装置 | |
US5768553A (en) | Microprocessor using an instruction field to define DSP instructions | |
JP2004192021A (ja) | マイクロプロセッサ | |
JPH08255476A (ja) | データ処理システムにおけるメモリ拡張スタック装置および方法 | |
US5784606A (en) | Method and system in a superscalar data processing system for the efficient handling of exceptions | |
JP2522048B2 (ja) | マイクロプロセッサ及びそれを使用したデ―タ処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040615 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20040915 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040924 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20040930 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20050301 |