JPH10505444A - 処理システム、プロセッサ、命令ストリーム格納用メモリ及びコンパイラ - Google Patents

処理システム、プロセッサ、命令ストリーム格納用メモリ及びコンパイラ

Info

Publication number
JPH10505444A
JPH10505444A JP9504280A JP50428097A JPH10505444A JP H10505444 A JPH10505444 A JP H10505444A JP 9504280 A JP9504280 A JP 9504280A JP 50428097 A JP50428097 A JP 50428097A JP H10505444 A JPH10505444 A JP H10505444A
Authority
JP
Japan
Prior art keywords
instruction
jump
interruptible
interrupt
instruction stream
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.)
Abandoned
Application number
JP9504280A
Other languages
English (en)
Inventor
ゲリット エイ スレイヴンバーグ
Original Assignee
フィリップス エレクトロニクス ネムローゼ フェンノートシャップ
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 フィリップス エレクトロニクス ネムローゼ フェンノートシャップ filed Critical フィリップス エレクトロニクス ネムローゼ フェンノートシャップ
Publication of JPH10505444A publication Critical patent/JPH10505444A/ja
Abandoned legal-status Critical Current

Links

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30058Conditional branch instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/461Saving 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)
  • Executing Machine-Instructions (AREA)
  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 レジスタをグローバルループとローカルループとに分割する。プロセッサで使用するコードは決定トリ一間でライブである値に対しグローバルプールからのレジスタを割り当て、ローカル値に対しローカルループからのレジスタを割り当てる。プロセッサは成功決定トリー間ジャンプ中のみ割込み及び例外を受け付ける。コードは特別の割込み可能ジャンプオペレーションを有するこのようなジャンプを信号する。割込み可能ジャンプ間のクロックサイクルの最高値を与えるには、各ループは少なくとも一つの成功割込み可能ジャンプを有する必要があり、且つ/又逆方向ジャンプを割り込み可能にする必要がある。割込み又は例外ハンドラはローカルループからのレジスタのみを使用する。コンテクストスイッチ中、グローバルプールの内容のみをタスクレコードに保管する。

Description

【発明の詳細な説明】 処理システム、プロセッサ、命令ストリーム格納用メモリ及びコンパイラ 発明の背景1.発明の分野 本発明はコンピュータ処理の分野、特にこのような処理におけるコンテクスト スイッチング(プロセス切換え)の実行に関するものである。2.従来技術 処理システムの設計においては多数の費用/性能トレードオフがある。高性能 はしばしば割込みオーバヘッド、割込み待ち時間、及びコンテクストスイッチの 劣化を犠牲にして得られる。 図1は伝統的な処理システムを示す。CPU(中央処理装置)101はバス1 03を経てメモリ104と対話してタスクを実行する。メモリ104は命令スト リームをCPU101に供給する。バス103には周辺装置、例えば102も接 続される。CPU101がライン105に割込みを受信すると、CPUはバス1 03を経て周辺装置、例えば102とコミュニケートすることができる。周辺装 置は代表的にはI/O(入出力)装置である。割込みは非同期であり、アプリケ ーションの性質に応じて500Hzから100kHzの周波数で発生する。ビデオ圧 縮及び圧縮解除のようなリアルタイムアプリケーションはこの周波数範囲の上端 近くの割込みレートを必要とする。マルチメディア処理も頻繁な割込みを必要と するとともにビデオ及びオーディオのような異なるタイプのメディア処理間のコ ンテクストスイッチングを必要とする。各割込みごとに割込みオーバヘッドとし て既知の若干の性能低下が生ずる。このようなリアルタイムアプリケーションを サポートするために、プロセッサはアサーションと割込み処理との間にほぼ最大 の時間、即ち最大の割込み待ち時間を保証する必要がある。 現代の処理システムはマルチタスクを実行するのが代表的である。図2はマル チタスク環境のタイミング図を示す。この環境では、タスク1がある時間インタ ーバル後にスワップアウトされ、タスク2がスワップインされる。次にタスク2 がある時間インターバル後にスワップアウトされ、タスク3がスワップインされ る。次にタスク3がある時間インターバル後にスワップアウトされ、タスク1が 再びスワップインされる。各スワップごとに、処理システムはコンテクストスイ ッチを実行する必要がある。上述したように、スワッピングが起こる主な原因は 、現タスクに割り当てられた時間スライスの満了;現タスクが自発的にブロック され、例えばI/O(入出力装置)をシークすること;或いは割込みが高い優先 順位のタスクを開放すること(これについては後に詳述する)にある。 コンテクストスイッチ中、処理システムはメモリ104内に図3に示すような データ構造を格納する。このデータ構造は”タスクハンドル”又は”タスクI. D.”として既知のポインタ301を含む。このポインタはタスクレコード30 2の位置を指示する。このタスクレコード302はプロセッサ101内の全レジ スタの内容格納用のフィールド303、スタックポインタ304、フレームポイ ンタ305及びプログラム制御及び状態ワードPCSW306を含む。 プロセッサ性能を向上させるために、設計者はレジスタを付加したり、キャッ シュサイズを増大することができる。伝統的なINTELチップは8個のレジス タを有していた。新型のRISCチップは32個のレジスタを有する。レジスタ の数を更に増大させると理論的には性能が向上するが、実際にはコンテクストス イッチ中に一層多量のデータを格納する必要が生ずるために性能低下も生ずる。 また、この結果としてコンテクストスイッチに長時間を必要とする。マルチメデ ィア処理の場合のように頻繁なコンテクストスイッチが存在する場合には、性能 が大きく低下する。 長時間を要するコンテクストスイッチの問題を解決する従来の一つの方法はい わゆる”ライトウェイトコンテクストスイッチ”である。このアイディアは、現 タスクがブロックされる場合(自発ブロックとも称されている)にのみ有効で、 部分的解決法である。自発ブロックの場合には、タスクが自ら中断する。従って 、タスクは当該タスクが使用中のレジスタを知っており、当該タスクが実際に使 用しているこれらのレジスタのみの内容をタスクレコードに格納せしめる。ライ トウェイトコンテクストスイッチは、他の2つのタイプのコンテクストスイッチ 、即ちタイムスライス満了及び高優先準位タスク開放によるコンテクストスイッ チの場合には何の利点も提供しない。 この方法にはすべてのタイプのコンテクストスイッチの場合に全般的に有効な 追加の改善を得る余地がない。 発明の概要 本発明の目的は、レジスタの数を増加するに際し性能を維持することができるよ うにコンテクストスイッチ時間を更に減少させることにある。本発明の他の目的 は割込みオーバヘッドを低減することにある。 本発明は、 命令ストリームを処理する手段と、 前記処理手段が命令ストリームからの割込み可能ジャンプ命令を成功のうちに 処理するか否かを検出する手段と、 前記検出手段が割込み可能ジャンプオペレーションの成功処理を検出する場合 にのみ、割込み又は例外のようなコンテクストスイッチに応答して、処理の制御 を割込みハンドラ又は例外ハンドラに移す手段と、を具えることを特徴とする処 理システムを提供する。 このシステムによれば、プログラマは、割込み又は例外を明確に定義された命 令においてのみ許すように命令ストリームに対しコードを発生させ、レジスタ群 の一部分のみの内容をこの割込み又は例外の処理後の実行の再開のために保管す るだけですむようにすることができる。成功ジャンプ命令はこの目的のために特 に好適であることが確かめられた。その理由は、これらのジャンプ命令は決定ト リー間のジャンプに使用でき、一つの決定トリーからのローカルレジスタ値を別 の決定トリーでの使用のために保存する必要がないためである。ここでは、無条 件ジャンプである場合又は条件が満足される条件付きジャンプである場合、その ジャンプを成功ジャンプという。 本発明の処理システムの一実施例では、前記処理手段は少なくとも一つの割込 み不能ジャンプ命令タイプ及び少なくとも一つの割込み可能ジャンプ命令タイプ を含む命令セットを有し、前記検出手段は命令ストリームからの割込み可能ジャ ンプ命令が前記少なくとも一つの割込み可能ジャンプ命令タイプのものであるか 否かを識別する。命令セットは、割込み不能ジャンプとしてjmpf(jump on false;偽のときジャンプ)、jmpt(jump on true;真のときジャンプ)及び jmp(無条件ジャンプ)を含み、割込み可能ジャンプとしてijmpf(inte rruptable jump on false;偽のとき割込み可能ジャンプ)、ijmpt(interr uptable jump on true;真のとき割込み可能ジャンプ)及びijmp(interrupt able unconditlonal jump;割込み可能無条件ジャンプ)を含む。ジャンプ命令の タイプから、前記検出手段はジャンプ命令が割込み可能か否か決定することがで きる。コンパイラ又はプログラマは、割込み可能ジャンプ命令又は割込み不能ジ ャンプ命令を適宜選択することによりジャンプを割り込ませるか否かを制御する ことができる。 本発明の処理システムの一実施例は、ローカルプールのレジスタと、グローバ ルプールのレジスタとを具え、コンテクストスイッチが割込みハンドラ又は例外 ハンドラにより実行される場合には、これらのレジスタのうちグローバルプール のみを保管する。割込みハンドラ又は例外ハンドラは、例えば割り込まれたタス クに使用されたレジスタであって当該ハンドラでも使用する必要のあるレジスタ の内容を保管するソフトウエアルーチンである。割込み可能ジャンプ命令の使用 は、ローカルプール内のレジスタの内容はもは必要ないことを信号する。これが ため、グローバルプールからの内容のみを保管するだけでよい。 本発明の処理システムの他の実施例は命令ストリームによりプログラムされる 。この実施例では、命令ストリームは命令ストリーム内のジャンプ目標へのジャ ンプを指定する割込み可能命令を含み、このジャンプ目標の後には、命令ストリ ーム内のこの割込み可能ジャンプ命令の前の命令により格納されたローカルプー ルからのレジスタの内容を使用する命令が存在しないようにする。このようにす ると、ローカルループからのレジスタの内容が割込みハンドラ又は例外ハンドラ により変更されても、命令ストリームを割込み可能ジャンプ命令時の割込み後に 続けることができる。 本発明の処理システムの他の実施例は、ローカルプールのレジスタとグローバ ルプールのレジスタとを具えるとともに、命令ストリームによりプログラムされ る。この実施例では、命令ストリームは命令ストリーム内のジャンプ目標へのジ ャンプを指定する割込み可能命令を含み、このジャンプ目標の後に、命令ストリ ーム内のこの割込み可能ジャンプ命令の前の命令により格納されたローカルプー ルからのレジスタの内容を使用する命令が存在せず、割込みハンドラ又は例外ハ ンドラはローカルプールからのレジスタのみに書き込むようにする。このように すると、割込みハンドラ又は例外ハンドラは如何なるレジスタも保管する必要が なく、割込み又は例外の処理を特に簡単にすることができる。 本発明の処理システムの他の実施例では、命令ストリーム内のループが繰返し ごとに前記少なくとも一つの割込み可能ジャンプ命令タイプの1以上の命令を含 むようにする。このようにすると、ループが実行されるごとに割込み又は例外を 少なくとも1回処理することができる。従って、ループがどんなに頻繁に実行さ れようとも割込み又は例外を処理しうる瞬時間の時間インターバルの最大値が保 証される。各ループは割込み可能ジャンプ命令を含むのが好ましい。 本発明の処理システムの他の実施例では、割込み可能命令は命令ストリーム内 の逆方向ジャンプとする。このようにすると、命令ストリームが常に準方向に進 まない場合でも割込み又は例外を処理しうる瞬時間の時間インターバルの最大値 が保証される。 本発明処理システムはプロセッサに実現することができる。このプロセッサは 例えば半導体基板に集積することができる。 本発明はジャンプ命令を含む命令ストリームを発生するコンパイラにも関する のであり、本発明のコンパイラは、ジャンプ命令を、このジャンプ命令のジャン プ目標の後の任意の命令がこのジャンプ命令の前の任意の命令により格納された ローカルプールのレジスタからの任意の値を使用するか否に応じて、割込み可能 ジャンプ命令タイプか割込み不能ジャンプ命令タイプの何れかに選択する。この コンパイラは任意のコンピュータで実行することができる。このコンパイラは例 えば、グローバルプールのレジスタの内容のみを他の決定トリーに転送する必要 がある”決定トリー”からの出力点に割込み可能ジャンプを出力する。このコン パイラは、命令ストリーム内に割込み可能ジャンプを十分な頻度で挿入すること により割込み可能ジャンプ間のクロックサイクルの最高値が保証される。 本発明のコンパイラの一実施例では、命令ストリーム内の不確定サイズループ ごとに1以上の割込み可能ジャンプを発生させる。不確定サイズループとは、複 数回実行されるがその回数は命令ストリームが実際に処理されるときにのみ決定 されるループを意味する。 図面の簡単な説明 本発明を図面を参照して非限定実施例につき説明する。図面において、 図1は従来のコンピュータプロセッサを示し、 図2は従来のマルチタスク環境におけるタスクスワッピングのタイミングを示 し、 図3は従来のタスクレコード及びタスクハンドラを示し、 図4は本発明のレジスタファイルを示し、 図5は従来の判断ツリーを示し、 図6は従来のジャンプ命令の状態図を示し、 図7は本発明の割込み可能ジャンプ命令の状態図を示し、 図8は従来の割込みハンドラのフローチャートを示し、 図9は本発明の割込みハンドラのフローチャートを示し、 図10は本発明のジャンプ処理を実行するプロセッサのブロック図を示す。 好適実施例の詳細な説明 上述したように、性能はレジスタの数を多くするにつれて増大する。128個 のような多数のレジスタは理論的に性能の大きな増大をもたらすはずである。し かし、各コンテクストスイッチ(プロセス切換え)が全レジスタの格納を必要と する場合には、マルチタスク環境では性能が低下する。各コンテクストスイッチ において全レジスタの格納を避けるために、幾つかのハードウエア及びソフトウ エア規則を採用する。 最初に、図4に示すように、レジスタファイル403を複数のプール又はサブ セットに分割する。第1プールはグローバルプール401であり、第2プールは ローカルプール402である。 命令ストリーム内のコードは拡張基本ブロックとしても知られている”決定ト リー”に構成されるものとする。決定トリーは単一入力点及び1以上の出力点を 有するコードセグメントである。図5はメモリ内の3つの決定トリー502、5 03及び504を示す。これらの決定トリーへの入力点はL1,L2及びL3で 示す。これらの決定トリーからの出力点501はジャンプ命令により影響される 。決定トリーはグローバル変数及びローカル変数を発生する。グローバル変数は ”決定トリー横断ライブ”であり、即ち2以上の決定トリーに使用することがで きる。ローカル変数は単一の決定トリー内にのみ存在する。 本発明では、プログラム実行中に、コードは規則に従う必要がある。即ち、グ ローバル変数はグローバルレジスタプールに格納する必要があるとともに、ロー カル値はローカルレジスタプールに格納するのが好ましい。人間のプログラマ又 は自動コンパイラがコードをこの規則に従うように発生させることができる。 更に、ハードウエアは、割込みは成功決定トリー間ジャンプ中にのみ行われる という規則に従う。 割込みは、ライトウェイトコンテクストスイッチにより現在のところ処理でき ない2種類のコンテクストスイッチをトリガする。これらの2種類はタイムスラ イス満了により生ずるものと、高優先順位タスクを開放する割込みにより生ずる ものとである。成功決定トリー間ジャンプ中に、ローカル値は失われる。本発明 では、割込みを成功決定トリー間ジャンプ中にのみ発生可能とする。従って、本 発明によれば、割込みによりトリガされたこれらのコンテクストスイッチに対し て、グローバル値を保管するだけでよくなる。これがため、ハードウエアは成功 決定トリー間ジャンプ中にのみ割込みを行うことができるという本発明の規則は 、ライトウェイトコンテクストスイッチをあらゆるタイプのコンテクストスイッ チに拡張可能にすることを意味する。 本発明においては、決定トリー間ジャンプを特別の割込み可能ジャンプオペレ ーションによりコード内で信号する。本発明によるオペレーションセットは割込 み可能ジャンプ及び割込み不能ジャンプの両方を含むべきである。例えば、オペ レーションセットは割込み不能ジャンプとしてjmpf(jump on false;偽のと きジャンプ)、jmpt(jump on true;真のときジャンプ)及びjmp(無条 件ジャンプ)を含み、割込み可能ジャンプとしてijmpf(interruptable ju mp on false;偽のとき割込み可能ジャンプ)、ijmpt(interruptable jump on true;真のとき割込み可能ジャンプ)及びijmp(interruptable uncondi tional jump;割込み可能無条件ジャンプ)を含むことができる。このようなオ ペレーションセット内の条件付きジャンプは2つのオペランドを必要とするが、 無条件ジャンプは一つのオペランドを必要とするのみである。これらのオペレー ションにより実行されるステップを以下にリストアップする。 以下において、オペランドをレジスタ名としてリストアップする。R13及び R14は選択した名前である。R13は試験すべき条件を格納するレジスタであ る。R14はジャンプ宛先アドレスを格納するレジスタである。これらは一例に すぎない。これらのジャンプオペレーションのどのオペレーションも任意のレジ スタを任意のオペランドとして使用することができる。或いは、R14がリスト アップされる場合には、ジャンプ宛先アドレスをレジスタから取り出さずにジャ ンプ宛先アドレスを直接使用することができるかもしれない。ここでは略号PC は”プログラムカウンタ”を意味する。略号DPCは”宛先プログラムカウンタ ”を意味する。 実際にはおそらく一つの割込み不能条件付きジャンプ命令がプロセッサの成功 プログラミングに必要とされるのみであるものと思われる。 ここでは通常ジャンプ命令は慣例のものである。割込み可能命令は新しいもの である。すべての割込み可能ジャンプ命令は割込み可能無条件ジャンプのステッ プを共通に有する。 ここでは無条件ジャンプである場合、又はその条件が満足される条件付きジャ ンプである場合にそのジャンプを成功ジャンプという。上述したように、割込み は成功決定トリー間ジャンプ中にのみ行われる。 図6は従来のジャンプオペレーション、例えばjmp,jmpt及びjmpf を処理する状態マシンを示す。このマシンの通常状態601はプログラムカウン タ(PC)が一定時間ごとに1カウント増加する状態である。マシンがリセット を受信すると、マシンはプログラムカウンタを零にリセットする(状態602) 。リセットを受信しない場合には、他の状態603、604及び605が可能で ある。例えば、割込みを受信するが、例外及びリセットを受信しない場合には、 プログラムカウンタは割込みベクトル(INTVEC)にセットされる(状態6 03)。リセットを受信せず、例外を受信する場合には、プログラムカウンタは 例外ベクトル(EXCVEC)にセットされる(状態605)。リセット、割込 み又は例外を受信しない場合には、ジャンプを、これが無条件ジャンプ又は満足 される条件を有する条件付きジャンプである場合には状態604で処理すること ができる。図中において、”cjmp”は任意の種類の条件付きジャンプ、即ち 偽のときジャンプ又は真のときジャンプを意味する。また、図中の"condition" は条件付きジャンプの条件が満足されることを意味する。状態604は成功ジャ ンプを記号で表したものであり、この状態ではプログラムカウンタがジャンプの 宛先アドレスにセットされる。各状態602、603、604及び605の終了 時に、制御は無条件で状態601に戻る。 図7は本発明に従って割込み可能ジャンプオペレーションを処理する状態マシ ンを示す。このマシンのノーマル状態701は、ここでもプログラムカウンタが 一定時間ごとに1カウント増加する状態である。リセットを受信する場合には、 ここでも状態702が選択される。リセットを受信しないが、例外を受信する場 合には、例外ベクトル(EXCVEC)が状態703においてプログラムカウン タにロードされる。 マシンを、例外は割込み可能ジャンプ命令中にのみ処理する必要があるという 規則に従わせることが随意にできる。このオプションは、割込み時に、各例外に 対し少数のレジスタを保管すればよい利点を有する。例外ハンドラは割込みハン ドラと本質的に同一であるため、ここには割込みハンドラを示してない。 割込みを受信し、例外又はリセットを受信しない場合には、成功割込み可能ジ ャンプがある場合にのみマシンは状態704に進む。図中の"icjmt"はijmpt又は ijmpfを意味する。図中の"condition"はここでも割込み可能条件付きジャンプ のそれぞれの条件が満足されることを意味する。無条件ジャンプはここでも常に 成功であるが、条件付きジャンプはそれぞれの条件が満足される場合にのみ成 功である。リセット、例外、割込みを受信せず、無条件ジャンプ又は条件が満足 される条件付きジャンプの何れかを受信する場合には、マシンは状態705にお いて割込み可能ジャンプの宛先アドレスに進む。ここでも、状態702、703 、704及び705の終了後に制御は無条件に状態701に戻る。 図6及び図7の状態マシンのジャンプ命令を実行する特定の回路は、慣例の状 態マシン設計技術に従って状態図から設計の選択事項として取り出すことができ る。特定の回路をプロセッサの種々の部分に、プロセッサの全回路が最適になる ように、例えばカルノー図技術に従って割り当てることができる。 コンパイラ又はプログラマが、割込み可能ジャンプを使用するか、慣例のジャ ンプを使用するかを決定する。ジャンプが決定トリー間ジャンプであるか否かを 知るのはコンパイラ又はプログラマのみである。 コンテクストスイッチは割込み可能ジャンプ中のみ発生しうるという本発明の 規則によれば、上述したように種々のコンテクストスイッチをライトウェイトコ ンテクストスイッチにすることができる。しかし、この規則は割込みオーバヘッ ドを低減する追加の利点も有する。すべてのローカル変数は決定トリー間ジャン プ中に失われるため、割込みプロセッサは自分の処理のためにローカルレジスタ を自動的に使用することができる。これにより割込み処理中レジスタ内容を保管 することが避けられる。 従来の割込みハンドラのフローチャートを図8に示す。割込みハンドラは割込 みコントローラによりトリガされるソフトウエアルーチンである。801におい て、割込みに応答して、割込みハンドラは割り込まれたタスクに使用されたレジ スタであるが割込みハンドラも使用する必要のあるレジスタの内容を保管する必 要がある。802において、割込みハンドラは割込み装置を検査し、取るべきい かなるアクションAも処理する。次に、803において、割込みハンドラはアク ションAの結果としてコンテクストスイッチが必要か否か決定する。コンテクス トスイッチが必要ない場合には、801において保管されたレジスタを804に おいて復元する。コンテクストスイッチが必要である場合には、割り込まれたタ スクのコンテクストを805において保管する必要がある。次に、806におい て、割込みハンドラは最高優先順位の実行可能タスクを決定する必要があり、8 07において、割込みハンドラはこのタスクを復元する。割込みハンドラルーチ ンの終了時に、制御がこの最高優先順位の実行可能タスクに進む。 本発明を利用する割込みハンドラのフローチャートを図9に示す。本発明では 割込みハンドラがローカルレジスタを自動的に使用することができるため、図8 のステップ801及び804は除去される。また、保管コンテクストは上述した ようにグローバルレジスタのみを使用するため、グローバルレジスタのみを復元 すればよい。タスクレコードからタスク及びフレームポインタも復元する必要が あるが、これらもグローバルレジスタに格納することができる。 従って、本発明によればグローバル値のみがタスクレコードに格納されるだけ であるため、本発明は有利なコンテクストスイッチをもたらす。また、割込み中 に何のレジスタも格納する必要がないため、所定の割込みレートと関連するCP Uオーバヘッドも低下する。 本発明では割込み待ち時間が僅かに増大する。この欠点を避けるには、コンパ イラ又はプログラマが割込み可能ジャンプ間の最高クロックサイクルを保証るす 要かある。また、各ループが少なくとも一つの割込み可能ジャンプを有する必要 があり、且つ/又すべての逆方向ジャンプは割込み可能にする必要があるものと 思われる。割込み可能ジャンプ命令は、不確定サイズの任意のループ、即ち複数 回実行することができ、その回数は命令ストリームの実際の処理時にのみ知るこ とができるループに特に望ましい。 図10は本発明のジャンプオペレーションを取り入れたプロセッサを示す。 命令はデコーダ及び命令レジスタブロック1001でデコードされる。このブ ロックは、演算コードを演算コードデコーダ1002に、評価すべき条件を条件 評価器1003に、宛て先アドレス又は宛て先アドレスレジスタをマルチプレク サ1007に送出する。演算コードデコーダ1002は、デコードされると下表 に従ってジャンプのタイプを示す2ビットを論理回路1005に送出する。 条件評価器1003は、任意の条件付きジャンプの条件が満足されるか決定し 、論回路1005に真又は偽結果を出力する。 割込みコントローラ1004は割込みを要求する周辺装置からの入力を受信す る。このとき割込みコントローラは割込みベクトルINTVECを生成し、これ をマルチプレクサ1007に供給するとともに割込み信号INTを論理回路10 05に供給する。 例外コントローラ1010は例外信号EXEを論理回路1005に供給すると ともに、例外ベクトルEXEVECをマルチプレクサ1007に供給する。 論理回路1005は図6及び図7の状態マシンに従うプログラマブル論理アレ ー又は他の論理回路とすることができる。 マルチプレクサ1007は論理回路1005から受信される制御信号に基づい てプログラムカウンタ1006の内容を選択する。マルチプレクサ1007は、 デコーダ1001からの宛先アドレス又は宛先アドレスレジスタ、割込みコント ローラ1004からの割込みベクトル、例外コントローラ1010からの例外ベ クトル、リセットベクトル、又は1008においてプログラムカウンタ1006 の現在値に1を加えた値を選択することができる。プログラムカウンタの現在値 もメモリ又はキャッシュI$に格納される。 プロセッサの設計者は、種々のブロックの種々のゲートを最も都合のよい位置 に置くことによりプロセッサを最適にすることができる。一例として、図中の破 線はCPUとキャッシュI$との間のブロックの分割を示す。

Claims (1)

  1. 【特許請求の範囲】 1.命令ストリームを処理する手段と、 前記処理手段が命令ストリームからの割込み可能ジャンプ命令を成功のうち に処理するか否かを検出する手段と、 前記検出手段が割込み可能ジャンプオペレーションの成功処理を検出する場 合にのみ、割込み又は例外のようなコンテクストスイッチに応答して、処理の制 御を割込みハンドラ又は例外ハンドラに移す手段と、 を具えることを特徴とする処理システム。 2.前記処理手段は少なくとも一つの割込み不能ジャンプ命令タイプ及び少なく とも一つの割込み可能ジャンプ命令タイプを含む命令セットを有し、前記検出手 段は命令ストリームからの割込み可能ジャンプ命令が前記少なくとも一つの割込 み可能ジャンプ命令タイプのものであるか否かを識別することを特徴とする請求 項1記載の処理システム。 3.レジスタのローカルプールと、レジスタのグローバルプールとを具え、コン テクストスイッチが割込みハンドラ又は例外ハンドラにより実行される場合には 、グローバルプールのみのレジスタを保管することを特徴とする請求項1又は2 記載の処理システム。 4.命令ストリームでプログラムされた請求項3記載の処理システムであって、 該命令ストリームが命令ストリーム内のジャンプ目標へのジャンプを指定する割 込み可能命令を含み、このジャンプ目標の後に、命令ストリーム内のこの割込み 可能ジャンプ命令の前の命令により格納されたローカルプールからのレジスタの 内容を使用する命令が続かないことを特徴とする処理システム。 5.ローカルプールのレジスタとグローバルプールのレジスタとを具えるととも に、命令ストリームによりプログラムされた請求項1、2、3又は4記載の処理 システムであって、該命令ストリームが命令ストリーム内のジャンプ目標へのジ ャンプを指定する割込み可能命令を含み、このジャンプ目標の後に、命令ストリ ーム内のこの割込み可能ジャンプ命令の前の命令により格納されたローカルプー ルからのレジスタの内容を使用する命令が続かず、割込みハンドラ又 は例外ハンドラはローカルプールからのレジスタに書き込むだけであることを特 徴とする処理システム。 6.命令ストリーム内のループが、繰返しごとに前記少なくとも一つの割込み可 能ジャンプ命令タイプの1以上の命令を含むことを特徴とする請求項4又は5記 載の処理システム。 7.割込み可能命令が命令ストリーム内の逆方向ジャンプであることを特徴とす る請求項4、5又は6記載の処理システム。 8.命令ストリームを処理する手段と、 前記処理手段が命令ストリームからの割込み可能ジャンプ命令を成功のうち に処理するか否かを検出する手段と、 割込み又は例外を受信する手段と、 前記検出手段が割込み可能ジャンプオペレーションの成功処理を検出する場 合にのみ、割込み又は例外に応答して、処理の制御を割込みハンドラ又は例外ハ ンドラに移す手段と、 を具えることを特徴とするプロセッサ。 9.前記処理手段は少なくとも一つの割込み不能ジャンプ命令タイプ及び少なく とも一つの割込み可能ジャンプ命令タイプを含む命令セットを有し、前記検出手 段は命令ストリームからの割込み可能ジャンプ命令が前記少なくとも一つの割込 み可能ジャンプ命令タイプのものか否かを識別することを特徴とする請求項1記 載の処理システム。 10.割込み可能ジャンプ命令タイプの命令を含む命令ストリームであって、該命 令が命令ストリーム内のジャンプ目標へのジャンプを指定し、このジャンプ目標 の後に、命令ストリーム内のこの割込み可能ジャンプ命令の前の命令により格納 されたローカルプールからのレジスタの内容を使用する命令を含まない命令スト リームを格納することを特徴とするコンピュータ読出し可能メモリ。 11.命令ストリーム内のループが、繰返しごとに前記少なくとも一つの割込み可 能ジャンプタイプの1以上の命令を含むことを特徴とする請求項10記載のコン ピュータ読出し可能メモリ。 12.ジャンプ命令を含む命令ストリームを発生するコンパイラであって、該コン パイラは、ジャンプ命令のジャンプ目標の後の任意の命令がこのジャンプ命令の 前の任意の命令により格納されたローカルプールのレジスタからの任意の値を使 用するか否に応じて、ジャンプ命令を割込み可能ジャンプ命令タイプのもの又は 割込み不能ジャンプ命令タイプのものに選択することを特徴とするコンパイラ。 13.命令ストリーム内の各不確定サイズループごとに少なくとも一つの割込み可 能ジャンプを発生することを特徴とする請求項12記載のコンパイラ。
JP9504280A 1995-06-29 1996-06-26 処理システム、プロセッサ、命令ストリーム格納用メモリ及びコンパイラ Abandoned JPH10505444A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/496,630 US5815701A (en) 1995-06-29 1995-06-29 Computer method and apparatus which maintains context switching speed with a large number of registers and which improves interrupt processing time
US08/496,630 1995-06-29
PCT/IB1996/000609 WO1997001814A2 (en) 1995-06-29 1996-06-26 Interrupt processing system

Publications (1)

Publication Number Publication Date
JPH10505444A true JPH10505444A (ja) 1998-05-26

Family

ID=23973474

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9504280A Abandoned JPH10505444A (ja) 1995-06-29 1996-06-26 処理システム、プロセッサ、命令ストリーム格納用メモリ及びコンパイラ

Country Status (6)

Country Link
US (2) US5815701A (ja)
EP (1) EP0777877B1 (ja)
JP (1) JPH10505444A (ja)
KR (1) KR100439286B1 (ja)
DE (1) DE69621405T2 (ja)
WO (1) WO1997001814A2 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5987258A (en) * 1997-06-27 1999-11-16 Lsi Logic Corporation Register reservation method for fast context switching in microprocessors
US6367063B1 (en) * 1998-02-05 2002-04-02 Hughes Electronics Corporation Method and apparatus for selectively performing a plurality of logic operations and memory functions
US6192513B1 (en) * 1998-11-02 2001-02-20 Hewlett-Packard Company Mechanism for finding spare registers in binary code
US6662297B1 (en) * 1999-12-30 2003-12-09 Intel Corporation Allocation of processor bandwidth by inserting interrupt servicing instructions to intervene main program in instruction queue mechanism
US6553487B1 (en) * 2000-01-07 2003-04-22 Motorola, Inc. Device and method for performing high-speed low overhead context switch
US6965892B1 (en) 2000-05-31 2005-11-15 International Business Machines Corporation Method, system and program products for concurrently accessing a global data repository by multithreaded clients
US7487152B1 (en) 2000-05-31 2009-02-03 International Business Machines Corporation Method for efficiently locking resources of a global data repository
US6966275B2 (en) * 2001-10-10 2005-11-22 Whitehill David C E Pet bed
AU2003278347A1 (en) * 2002-11-18 2004-06-15 Arm Limited Exception types within a secure processing system
GB2539428B (en) 2015-06-16 2020-09-09 Advanced Risc Mach Ltd Data processing apparatus and method with ownership table
GB2539436B (en) 2015-06-16 2019-02-06 Advanced Risc Mach Ltd Secure initialisation
GB2539429B (en) 2015-06-16 2017-09-06 Advanced Risc Mach Ltd Address translation
GB2539433B8 (en) 2015-06-16 2018-02-21 Advanced Risc Mach Ltd Protected exception handling
GB2539435B8 (en) 2015-06-16 2018-02-21 Advanced Risc Mach Ltd Data processing memory access control, in which an owning process for a region of memory is specified independently of privilege level
US10430197B2 (en) 2017-05-12 2019-10-01 Samsung Electronics Co., Ltd. Banking register renaming to reduce power
EP3451794A1 (en) 2017-09-01 2019-03-06 Whirlpool Corporation Crispness and browning in full flat microwave oven
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
US11204767B2 (en) 2020-01-06 2021-12-21 International Business Machines Corporation Context switching locations for compiler-assisted context switching

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4034349A (en) * 1976-01-29 1977-07-05 Sperry Rand Corporation Apparatus for processing interrupts in microprocessing systems
US4222103A (en) * 1978-09-25 1980-09-09 Motorola, Inc. Real time capture registers for data processor
JPS62232066A (ja) * 1986-04-02 1987-10-12 Nec Corp マルチプロセツサ・システムの機能切替え方式
US4808611A (en) * 1986-07-30 1989-02-28 Immunex Corporation Use of interleukin-1 to induce development of multipotent hemopoietic cell populations
US5692139A (en) * 1988-01-11 1997-11-25 North American Philips Corporation, Signetics Div. VLIW processing device including improved memory for avoiding collisions without an excessive number of ports
NL8800053A (nl) * 1988-01-11 1989-08-01 Philips Nv Videoprocessorsysteem, alsmede afbeeldingssysteem en beeldopslagsysteem, voorzien van een dergelijk videoprocessorsysteem.
US5313551A (en) * 1988-12-28 1994-05-17 North American Philips Corporation Multiport memory bypass under software control
US5179702A (en) * 1989-12-29 1993-01-12 Supercomputer Systems Limited Partnership System and method for controlling a highly parallel multiprocessor using an anarchy based scheduler for parallel execution thread scheduling
US5197130A (en) * 1989-12-29 1993-03-23 Supercomputer Systems Limited Partnership Cluster architecture for a highly parallel scalar/vector multiprocessor system
DE69129569T2 (de) * 1990-09-05 1999-02-04 Philips Electronics N.V., Eindhoven Maschine mit sehr langem Befehlswort für leistungsfähige Durchführung von Programmen mit bedingten Verzweigungen
JP3003968B2 (ja) * 1991-05-01 2000-01-31 インターナショナル・ビジネス・マシーンズ・コーポレイション 割込み処理プログラム選択装置及び処理方法
US5161226A (en) * 1991-05-10 1992-11-03 Jmi Software Consultants Inc. Microprocessor inverse processor state usage
US5530866A (en) * 1991-07-30 1996-06-25 Tera Computer Company Register allocation methods having upward pass for determining and propagating variable usage information and downward pass for binding; both passes utilizing interference graphs via coloring
JPH05100900A (ja) * 1991-10-09 1993-04-23 Nec Corp 情報処理装置
US5628013A (en) * 1992-09-30 1997-05-06 Apple Computer, Inc. Apparatus and method for allocating processing time in a frame-based computer system
US5619408A (en) * 1995-02-10 1997-04-08 International Business Machines Corporation Method and system for recoding noneffective instructions within a data processing system

Also Published As

Publication number Publication date
DE69621405T2 (de) 2003-01-09
EP0777877B1 (en) 2002-05-29
EP0777877A2 (en) 1997-06-11
KR970705789A (ko) 1997-10-09
WO1997001814A3 (en) 1997-03-06
WO1997001814A2 (en) 1997-01-16
US5815701A (en) 1998-09-29
DE69621405D1 (de) 2002-07-04
US5978910A (en) 1999-11-02
KR100439286B1 (ko) 2004-08-30
EP0777877A3 (en) 1997-08-20

Similar Documents

Publication Publication Date Title
US5404552A (en) Pipeline risc processing unit with improved efficiency when handling data dependency
JPH10505444A (ja) 処理システム、プロセッサ、命令ストリーム格納用メモリ及びコンパイラ
JP4750865B2 (ja) デ―タ・プロセッサにおいて後続の命令処理に影響を及ぼす方法および装置
US5349667A (en) Interrupt control system for microprocessor for handling a plurality of maskable interrupt requests
US6233670B1 (en) Superscalar processor with direct result bypass between execution units having comparators in execution units for comparing operand and result addresses and activating result bypassing
JPH05173783A (ja) 命令パイプラインをドレーンさせるためのシステムおよび方法
US20100274939A1 (en) Reconfigurable processor and interrupt handling method
JP2008522277A (ja) 優先度の付けられたタスク間の効率的な切り換え
US5522084A (en) Method and system for invalidating instructions utilizing validity and write delay flags in parallel processing apparatus
US7831979B2 (en) Processor with instruction-based interrupt handling
EP0279953B1 (en) Computer system having mixed macrocode and microcode instruction execution
US20030037227A1 (en) Processor enabling exception handling to be set by program
US6112274A (en) Method and apparatus for processing more than one interrupts without reinitializing the interrupt handler program
JPH08255476A (ja) データ処理システムにおけるメモリ拡張スタック装置および方法
EP0336091A2 (en) Pipeline type microprocessor
JP2876791B2 (ja) 例外処理装置および例外処理方法
JP2007018497A (ja) Riscマイクロプロセッサ優先ベクトル割り込みシステム
KR100329780B1 (ko) 인터럽트 응답 시간을 줄인 인터럽트 처리 장치
JP4702004B2 (ja) マイクロコンピュータ
EP0365187A2 (en) Apparatus for selective execution of instructions following a branch instruction
JPH04227541A (ja) プロセッサ及びループ制御機能処理方法
JPH0279122A (ja) 浮動小数点演算機構
JP2001134449A (ja) データ処理装置とその制御方法
JPS62151936A (ja) マイクロプロセツサに内蔵されるキヤツシユ回路
JPS638841A (ja) 割込み受取り装置

Legal Events

Date Code Title Description
A762 Written abandonment of application

Free format text: JAPANESE INTERMEDIATE CODE: A762

Effective date: 20050905