JP4883824B2 - デ―タ・プロセッサにおいて後続の命令処理に影響を及ぼす方法および装置 - Google Patents

デ―タ・プロセッサにおいて後続の命令処理に影響を及ぼす方法および装置 Download PDF

Info

Publication number
JP4883824B2
JP4883824B2 JP31026898A JP31026898A JP4883824B2 JP 4883824 B2 JP4883824 B2 JP 4883824B2 JP 31026898 A JP31026898 A JP 31026898A JP 31026898 A JP31026898 A JP 31026898A JP 4883824 B2 JP4883824 B2 JP 4883824B2
Authority
JP
Japan
Prior art keywords
instruction
interrupt
data processor
instructions
predetermined
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP31026898A
Other languages
English (en)
Other versions
JPH11219302A (ja
Inventor
ウィリアム・シー・モイヤー
ジェフリー・ダブリュー・スコット
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NXP USA Inc
Original Assignee
NXP USA Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NXP USA Inc filed Critical NXP USA Inc
Publication of JPH11219302A publication Critical patent/JPH11219302A/ja
Application granted granted Critical
Publication of JP4883824B2 publication Critical patent/JP4883824B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/30094Condition code generation, e.g. Carry, Zero flag
    • 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/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30079Pipeline control instructions, e.g. multicycle NOP
    • 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/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30087Synchronisation or serialisation 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)
  • Debugging And Monitoring (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、データ・プロセッサに関し、更に特定すれば、データ・プロセッサにおける後続の命令処理の影響(affecting)に関するものである。
【0002】
【従来の技術】
リアル・タイム制御システムにおけるデータ・プロセッサの使用が増加しつつあるため、効率的なシステム資源の使用を確保するために、新たな技法が必要とされている。例えば、多くのマルチタスキング・システムでは、メモリ記憶装置,プリンタ,またはディスプレイ画面へのポートのような、同じシステム資源のいくつかを共有しようとするタスクが数個ある。このようなマルチタスキング・システムにおいて、共有システム資源を可能な限り最も効率的に使用することは非常に重要である。例えば、多数のタスクがある資源を共有している場合、どのタスクが現在その資源を使用しており、当該タスクが実行している機能を妨害してはならないか否かについて指示する方法がなければならない。多くのマルチタスキング・システムでは、この機能のためにセマファ(semaphore)が用いられている。
【0003】
セマファとは、システム資源の現ステータスを反映する、一種のフラグまたはステータス・インディケータである。通常、セマファ内のステータス情報は、システム資源が現在使用されているか否かについての指示を与える。マルチタスキング・システムの中には、セマファが、どのタスクが資源を使用しているのかについての情報、および恐らく当該資源上で実行されている機能の種類についての情報をも含む場合がある。
【0004】
例えば、メモリ内の特定の位置を、共有変数Xに対するセマファの位置として指定することができる。いずれのタスクも、共有変数Xを使用したい場合、当該タスクは、このメモリ内の特定位置を読み取ることによって、この共有変数Xに対するセマファを読み取らなければならない。変数Xのセマファは、変数Xが特定のタスクによる排他的アクセスのために現在予約されているか否かというような、変数Xのステータスについての状態を含む。変数Xが現在予約されておりビジーであることを変数Xのセマファが示す場合、新たなタスクは待機しなければならない。新たなタスクは、変数Xのセマファにポールし続け、変数Xのセマファを周期的に読み取ることによって、変数Xが未だ使用されている最中か、または使用可能になったかについて調べる。
【0005】
一旦、変数Xはもはや予約されておらず、したがって使用可能であることを変数Xのセマファが示したなら、待機中のタスクは変数Xのセマファに書き込みを行い、そのステータスをビジーまたは使用不可に変更する。こうして、待機中のタスクはそれ自体の使用のために、変数X資源を効果的にロックする。変数Xが使用されていることを変数Xのセマファが示す間、他のタスクは変数Xを使用することができない。一旦待機中のタスクが変数Xの使用を終了したなら、変数Xのセマファ位置に新しい値を書き込み、変数Xのセマファを変更し、変数Xが再び使用可能であることを示す。
【0006】
【発明が解決しようとする課題】
セマファを用いて共有システム資源を割り当てるシステムには、重大な問題が発生する。この問題は、1つ以上のタスクが共有資源のセマファにポールし、当該資源が既に使用可能になっているか否か調べる場合に起こる。例えば、タスク#1およびタスク#2双方が変数Xのセマファをポールしていると仮定する。タスク#1は、変数Xのセマファが変更され変数Xが使用可能であることが示された後に、最初に変数Xのセマファを読み取る。次に、タスク#2が変数Xのセマファを読み取り、これも変数Xが使用可能であることを知る。タスク#1もタスク#2も、他のタスクが変数Xの使用に競合していることを知らない。
【0007】
タスク#1が割り込みを受信した場合、タスク#1はソフトウエア割り込みルーチンを実行し、その後に中断したところから再開しなければならない。一方、タスク#2は変数Xのセマファにある値を書き込み、変数Xは現在ビジーであることを示す。次に、タスク#2は変数Xを使用し始める。タスク#1はその割り込みルーチンを終了し、そのソフトウエア・プログラムを中断したところから再開する。タスク#1は、変数Xが使用可能であることがわかったのでソフトウエア・プログラムを中断した。したがって、タスク#1は変数Xのセマファにある値を書き込み、変数Xが現在ビジーであることを示し、変数Xを使用し始めようとする。しかし、変数Xは既にタスク#2によって使用されている。こうして、衝突が発生する結果となる。その結果、変数Xは転化(corrupt)する虞れがあり、タスクは誤った値を変数Xから受信する可能性がある。したがって、多数のタスクが効果的かつ効率的に共通資源を共有することを可能にする手法が必要とされている。
【0008】
【発明の実施の形態】
図1は、データ・プロセッサ10を示す。一実施例では、データ・プロセッサ10は、中央演算装置(CPU)12,メモリ14,バス・インターフェース・モジュール16,およびその他のモジュール18を含み、これらは全てバス20を通じて互いに双方向的に結合されている。バス・インターフェース・モジュール16は、外部バス26を通じてデータ・プロセッサ10外部に結合することも可能である。他のモジュール18は、オプションとして、1つ以上の集積回路端子28を介して、データ・プロセッサ10外部に結合される。また、メモリ14は、オプションとして、1つ以上の集積回路端子24を介して、データ・プロセッサ10外部に結合される。中央演算装置12は、オプションとして、1つ以上の集積回路端子22を介して、データ・プロセッサ10外部に結合される。
【0009】
更に図1を参照する。本発明の代替実施例では、データ・プロセッサ10として、いずれの形式の構造でも使用可能である。加えて、データ・プロセッサ10は、多種多様な機能を実行可能である。例えば、データ・プロセッサ10は、RISC(Reduced Instruction Set Computer)アーキテクチャを用いても良いし、Harvardアーキテクチャを用いても良いし、ベクトル・プロセッサであっても良いし、SIMD(Single Instruction Multiple Data)プロセッサであっても良いし、浮動小数点算術演算を実行したり、ディジタル信号処理計算を実行するもの等でもよい。
【0010】
図2は、図1のCPU12の一部を示す。一実施例では、CPU12は、命令パイプ回路30,命令デコード回路32,レジスタ34,算術演算論理ユニット(ALU)40,およびCPU制御回路42を含む。CPU制御回路42は、制御/ステータス信号58を通じて、命令パイプ30,命令デコード32,レジスタ34,およびALU40に双方向的に結合され、制御情報を与え、ステータス情報を受信する。命令パイプ30は、バス20を通じて命令を受信する。命令パイプ30は、実行すべき1つ以上の命令を格納することができる。命令パイプ30は、導体54を通じて、命令デコード回路32に命令を供給する。命令デコード回路32は、命令パイプ30から受信した命令をデコードし、導体56を通じてその出力をCPU制御回路42に供給する。CPU制御回路42は、例外制御回路44,割り込み制御回路46,およびカウンタ/タイマ回路48を含む。
【0011】
本発明の一実施例では、割り込み制御回路46は、カウンタ/タイマ回路48に双方向的に結合されている。CPU制御回路42は、割り込み信号50を通じて、バス20から1つ以上の割り込み要求信号を受信する。他のモジュール18(図1を参照)または外部バス26に結合されている回路(図示せず)は、割り込み信号50を通じてCPU制御回路42が受信する1つ以上の割り込み要求のソースとなり得る。CPU制御回路42は、割り込み信号50を通じて、1つ以上の割り込み承認およびその他の割り込み関連信号をバス20に供給することができる。CPU制御回路42は、オプションとして、例外信号52を通じて、1つ以上の例外発生信号を受信する場合がある。本発明の実施例の中には、CPU制御回路42が、1つ以上の例外承認またはその他の例外ステータス信号をバス20に供給する場合もある。
【0012】
更に図2を参照すると、本発明の一実施例では、例外制御回路44が例外信号52に結合され、割り込み制御回路46が割り込み信号50に結合されている。例外制御回路44および割り込み制御回路46は双方とも、導体56および制御/ステータス信号58に結合されている。割り込み制御回路46は、オプションとして、オーバーライド回路(override circuit)47を含むことができる。本発明の代替実施例では、オーバーライド回路47は、CPU制御回路42内のいずれかの場所に配置することも可能である。CPU制御回路42は、オプションとして、集積回路端子22を介して、データ・プロセッサ10外部に結合される場合もある。レジスタ34は、バス20に双方向的に結合され、データ値の受信および供給を行う。レジスタ34はレジスタ36を含む。レジスタ36は条件ビット38を含む。レジスタ34は導体60および導体62を通じてALU40に結合され、値を供給する。ALU40の出力は、導体64を通じてレジスタ34に結合され、ALU40からの出力値を供給する。
【0013】
図3は、図2のCPU12が実行可能な割り込み認識遅延命令の一実施例を示す。
【0014】
図4は、図3の割り込み認識遅延命令を用いて検査およびセット機能を実行する際に使用可能な一連の命令の一実施例を示す。
【0015】
図5は、図3の割り込み認識遅延命令を用いてメモリ・オペランド交換機能を実行する際に使用可能な一連の命令の一実施例を示す。
【0016】
図6は、図3の割り込み認識遅延命令を用いてメモリ型カウンタ増分機能(memory-based counter function)を実行する際に使用可能な一連の命令の一実施例を示す。
好適実施例の動作
次に、好適実施例の動作について説明する。一実施例では、本発明は、所定の時間期間または所定の命令数の間のいずれかの、制御された区間にわたって割り込みの認識を遅延させることにより、変更処理を定義する専用命令を用いずに、リード/モディファイ/ライトの命令シーケンスを実行可能とする効率的な方法および装置を提供する。
【0017】
尚、「バス」という用語は、データ,アドレス,制御,またはステータスのような1つ以上の様々な種類の情報を転送するために使用可能な複数の信号または導体に言及する際に用いる。また、「アサート」および「ニゲート」という用語は、信号,ステータス・ビット,または同様の機構をその論理的真状態から論理的偽状態にすることをそれぞれ言及する際に用いる。論理真状態が論理レベル1である場合、論理偽状態は論理レベル0となる。更に、論理真状態が論理レベル0である場合、論理偽状態は論理レベル1となる。
【0018】
図3を参照する。本発明の一実施例では、図1および図2に示したデータ・プロセッサ10のような、ロード/格納アーキテクチャを用いるプロセッサにおいて、割り込み認識遅延命令(例えば、IDLY4)を用いて、所定数の命令の間割り込み認識を遅延させることができる。
【0019】
本発明の一実施例では、割り込み認識を遅延させる間に続いて実行される命令の所定数は、固定値(例えば、4命令)とすることができる。本発明の代替実施例では、この所定数の命令を、いずれの正の整数に固定することも可能である。図3に示す本発明の一実施例は、割り込み認識遅延命令(IDLY4)の実行後直ちに実行される4つの命令の間、割り込みの認識を遅延させる。このように、割り込み認識遅延命令を実行し、次いで続く4つの命令の間割り込みを認識せず、IDLY4命令に続く5番目の命令の実行開始と共に、割り込み認識を開始する。
【0020】
尚、本発明の実施例によっては、所定数の後続命令の一部として、例外処理の一部として実行される命令をカウントする場合があり、一方本発明の他の実施例では、所定数の後続命令の一部として、例外処理の一部として実行される命令をカウントしない場合もあることを注記しておく。
【0021】
本発明の第1実施例では、割り込み認識遅延命令を実行した後、所定数の命令の実行の間、割り込み認識を禁止または遅延させる。割り込み実行を禁止または遅延する間の所定数の命令は、様々な方法で規定することができる。例えば、割り込み認識遅延命令自体が、割り込みの認識を遅延させる間の命令数を定義するフィールドを含むことができる(例えば、図3におけるオプションの指定フィールド70を参照)。代替実施例では、ユーザによるプログラムが可能な制御レジスタ(例えば、図2におけるレジスタ34の1つ)が、割り込みの認識を遅延させる間の所定数の命令を決定する値を含むことも可能である。本発明の代替実施例では、いずれの形式の方法を用いて所定数の命令を選択することも可能であり、例えば、集積回路の端子を介してまたはマスク・プログラム可能な記憶デバイスによって所定数の命令を与えることが可能である。
【0022】
本発明の一実施例では、割り込み認識遅延命令が所定数の後続の命令を実行する間割り込みの認識を遅延させる場合、図2に示した回路が、以下のように機能する。割り込み認識遅延命令は、バス20から命令パイプ30を介して受信される。次に、命令パイプ30は、適正な時点においてこの命令を命令デコード回路32に供給する。次に、命令デコード回路32は、割り込み認識遅延命令のための適切なデコード信号を、導体56を通じてCPU制御回路42に供給する。すると、CPU制御回路42は、割り込み制御回路46を用いて、割り込み信号50を通じて受信した割り込み要求の認識を遅延させる。CPU制御回路42は、所定数の命令の間、割り込み要求の認識を遅延させる。CPU制御回路42は、カウンタ/タイマ48,ならびに命令パイプ30および命令デコード回路32から信号58を通じて受信した情報を用いて、割り込み認識遅延命令の実行の直後からいくつの命令が実行されたのかについて判定を行うことができる。
【0023】
本発明の実施例では、特にパイプライン・プロセッサ・アーキテクチャを用いた実施例では、CPU制御回路42は、後続の命令の内、実行を完了したもののみをカウントする場合もあり、あるいは、各命令のフェッチ,デコード,実行サイクルの間に所定の段階に到達した、あらゆる後続の命令をカウントする場合もある。
【0024】
所定数の後続の命令の間割り込みの認識を遅延させる代わりに、本発明の代替実施例では、割り込み認識を遅延させる所定時間期間を定義することも可能である。これらの代替実施例では、カウンタまたはタイマ(例えば、図2におけるカウンタ/タイマ48)を用いて所定数のクロック・サイクルをカウントしたり、割り込みの認識を遅延させる間の所定のナノ秒数をカウントすることが可能である。
【0025】
本発明の一実施例では、割り込み認識遅延命令が、所定数の後続クロック・サイクルの実行の間または所定のナノ秒の間割り込みの認識を遅延させる場合、図2に示すCPU制御回路42は、カウンタ/タイマ48を用いて、所定数の命令の実行ではなく、ナノ秒またはクロック・サイクルをカウントする。この場合も、命令自体(例えば、図3におけるオプションの指定フィールド70),レジスタ値またはその他のプログラム可能な方法のような、ユーザ・プログラム可能な機構を用いて、所定のナノ秒数または所定数のクロック・サイクルをカウンタ/タイマ48に供給し、割り込み認識遅延命令の実行に続いて、割り込みを認識しない間の区間長を決定することができる。
【0026】
本発明の一実施例では、CPU制御回路42は、割り込み認識遅延命令の実行を完了した後に、割り込み非認識区間のカウントを開始する。しかしながら、本発明の代替実施例では、CPU制御回路42は、割り込み認識遅延命令のデコードを開始した後のいずれの時点においても、割り込み非認識区間のカウントを開始することが可能である。
【0027】
本発明の実施例には、割り込み認識遅延命令に続く命令はいずれの種類でも可能な場合がある。しかしながら、状況によっては、除算命令のように多数のサイクルを必要とする命令を、割り込み認識遅延命令に続く命令シーケンスに置くと、過度に時間期間が長い割り込みレイテンシが発生する可能性がある。この問題に対処するために、本発明の実施例には、割り込み認識遅延命令の直後に続く命令の種類を限定する場合もある。例えば、図3を参照すると、割り込み認識遅延命令の直後に続く4つの命令を、単一サイクルの算術演算または論理命令,分岐命令,およびロードまたは格納命令に限定する場合がある。割り込み認識を遅延させる間命令を制限する目的は、割り込みレイテンシの最大時間期間を短縮することである。本発明の代替実施例では、割り込み認識を遅延させる間の命令の種類を制限してもしなくてもよく、したがって、割り込み認識遅延命令に続く可能性がある命令の種類を限定してもしなくてもよい。割り込み認識遅延命令に続く可能性がある命令の特定集合は、プロセッサ10毎に異なり、実施例によっては、ユーザ・プログラム可能とすることも可能である。
【0028】
本発明の代替実施例では、異なる方法で例外処理による影響を受ける場合がある。図3に示す本発明の実施例では、割り込みが認識されていない区間においても、例外を検出し通知する。しかしながら、本発明の代替実施例では、割り込み認識を遅延させる区間に発生する例外を検出するが、処理しない場合もある。更に別の代替実施例では、割り込みを認識しない区間では、例外を検出すらせず、したがってそれらの処理も行わない。加えて、本発明の代替実施例では、異なる形式の例外を別々に処理する場合もある。例えば、図3に示す割り込み認識遅延命令(IDLY4)は、割り込みを認識していない区間では、非トレース(non-trace)および非ブレークポイント(non-breakpoint)例外の発生によって条件ビット38(図2参照)をクリアすることを許すが、トレースおよびブレークポイント例外は、条件ビット38に影響を与えない。
【0029】
本発明の実施例には、割り込み認識遅延命令の実行に続く割り込み非認識区間に、割り込みを再度許可する機構を用いることが可能な場合もある。例えば、当該区間では、所定の時間期間にわたって特定のレベルの割り込みが保留になっており、したがって割り込み非認識区間が終了する前にこれを認識する必要があることを、カウンタ/タイマ48を用いて検出することができる。このように、本発明の実施例によっては、実行が未だ割り込み非認識区間(即ち、所定数の命令,クロック・サイクル,またはナノ秒によって規定される)内に留まっている間でさえも、オーバーライド回路47を用いて割り込みを再度許可することも可能である。割り込み認識が再び許可された場合、現命令を途中で中断することができ、あるいは割り込みが再び認識される前に、実行を継続し完了することも可能である。
【0030】
本発明の実施例によっては、全ての割り込みの認識を遅延させることも可能であるが、一方本発明の代替実施例では、所定の割り込みレベル未満の割り込みの認識のみを遅延させることも可能である。所定の割り込みレベルは、いずれの方法で指定してもよい。例えば、所定の割り込みレベルは、割り込み認識遅延命令フォーマット自体の一部として指定してもよく、ユーザ・プログラム可能なレジスタ内にある値を格納することによって指定してもよく、集積回路端子を介してある値を与えることによって指定してもよく、更に、マスク・プログラム可能な記憶回路にある値を格納することによって指定してもよい。
【0031】
代替実施例では、本発明は、第1命令に、後続の命令がステータス・フラグに影響を与える態様を変化させることを許可する。本発明の一実施例では、図3に示す割り込み認識遅延命令(IDLY4)の実行は、1つ以上の後続の命令が図2における条件ビット38に影響を与える態様を変化させることができる。例えば、図4ないし図6を参照すると、本発明の一実施例では、IDLY4命令は条件ビット38をアサートする。次に、後続の4つの命令のいずれかの間に例外が発生した場合、この例外が発生したときに実行していた命令は、条件ビット38をニゲートする。このように、通常では条件ビット38を決してクリア即ちニゲートしないように定義されている命令(例えばロード命令)であっても、ここでは、IDLY4命令の後に続く4つの命令の1つがロード命令である場合に、例外がロード命令の実行中に発生したなら、条件コード・ビット38をクリアすることが可能になる。このように、IDLY4命令は、後続の命令(例えば、ロード命令)が条件ビット38に影響を及ぼす態様を変化させることができる。このように条件ビット38を用いる目的の1つは、後続の4つの命令が分割不可能に実行されたのではなく、例外処理が共有資源に影響を与え得ることを示すためである。
【0032】
尚、図4ないし図6に示す一連の命令は全て、IDLY4命令後の4つの非例外処理命令の間に例外が受信され処理されたか否かについて判定を行うための、条件ビット38のチェックを含む(即ち、状態コード・ビット38がゼロに等しい場合、SEQUENCE#FAILEDに分岐する)ことを注記しておく。IDLY4命令の後に例外が受信され処理された場合、「BF」命令が、SEQUENCE#FAILEDと呼ばれる命令のサブルーチンに分岐し、これを用いて、IDLY4命令後の4つの命令が分割不可能に実行されなかったこと、および例外処理がセマファのような共有資源に影響を与えた可能性があることを示す。
【0033】
図4は、図3に示した割り込み認識遅延命令(IDLY4)を用い検査およびセット機能を実行する一連の命令を示す。図4に示す検査およびセット機能は、メモリ・オペランドを検査し、このメモリ・オペランドの現在値が全て1であるか否かについて判定を行い、メモリ・オペランドの値を全て1に変化させる(即ち、メモリ・オペランドの全てのビットがセットされている)。このように、図4に示す一連の命令を用いて、メモリ内に格納されているセマファ値に対して、検査およびセット機能を実行することができる。また、検査およびセット機能が分割不可能に実行されたので、検査処理とセット処理との間で図4に示したソフトウエア・ルーチンに異なるタスクが割り込んだことによるセマファの転化が発生していないことを、割り込み認識遅延命令(IDLY4)を用いて保証することも可能である。 尚、図4に示した命令シーケンスは、実際には、検査処理を実行する前にセット処理を実行することを注記しておく。これが可能なのは、別のタスクが割り込みを許可される前に、セット処理および検査処理双方が完了することをIDLY4命令を用いて保証することができ、更に、この場合セマファの値は、2通り即ち全て1または全て0の可能性しかないからである。したがって、セマファの初期値が全て1であった場合、セマファをセットするステップがセマファの値を変化させることはない。尚、検査およびセット機能を実行する代替命令シーケンスには、代わりに、セット処理の前に検査処理を実行する場合もあることを注記しておく。
【0034】
図5は、図3に示した割り込み認識遅延命令(IDLY4)を用いて「メモリ・オペランドとレジスタ・オペランドと交換する」機能を実行する、一連の命令を示す。図5に示す「メモリ・オペランドとレジスタ・オペランドと交換する」機能は、実際には、"EXCHANGE#VALUE"と呼ばれる値を、メモリ内のその初期位置からレジスタR1に移動させ、次いでセマファ値の位置に移動させる。セマファ値の位置は、"SEMAPHORE"と呼ばれるポインタによって示されることを注記しておく。セマファ値は、メモリ内のその初期位置からレジスタR3に移動される。図5に示す特定の命令シーケンスでは、最後の「OR」命令は、IDLY4命令の後の一連の4つの命令を完了する以外有用な処理は行わず、こうして割り込み認識の遅延を終了させる。したがって、最後の「OR」命令は、無処理(NOP)命令と同じ効果を有し、異なる命令と置き換えてもよい。
【0035】
図6は、図3に示した割り込み認識遅延命令(IDLY4)を用いて「メモリ型カウンタ増分」機能を実行する一連の命令を示す。図6に示す「メモリ型カウンタ増分」機能は、実際には、セマファ値をメモリ内のその初期位置からレジスタR3に移動させ、次いで1加算することによってセマファ値を増分する。尚、セマファ値の位置は、"SEMAPHORE"と呼ばれるポインタによって示されることを注記しておく。増分したセマファ値は、次に、レジスタR3からメモリ内のその初期位置に再び移動される。
【0036】
以上、特定実施例を参照しながら本発明を図示しかつ説明したが、当業者には更なる変更や改良も想起されよう。したがって、本発明は例示した特定形態に限定される訳ではなく、本発明の精神および範囲から逸脱しない全ての変更は、特許請求の範囲に含まれることは理解されよう。
【図面の簡単な説明】
【図1】本発明の一実施例によるデータ・プロセッサ10を示すブロック図。
【図2】本発明の一実施例による、図1の中央演算装置(CPU)12の一部を示すブロック図。
【図3】本発明の一実施例による遅延割り込み認識命令の一実施例を示す表。
【図4】本発明の一実施例による検査およびセット機能を実行する、一連の命令の一実施例を示す表。
【図5】本発明の一実施例によるメモリ・オペランド交換機能を実行する、一連の命令の一実施例を示す表。
【図6】本発明の一実施例によるメモリ型カウンタ増分機能を実行する、一連の命令の一実施例を示す表。
【符号の説明】
10 データ・プロセッサ
12 中央演算装置(CPU)
14 メモリ
16 バス・インターフェース・モジュール
18 その他のモジュール
20 バス
22,24,28 集積回路端子
26 外部バス
30 命令パイプ回路
32 命令デコード回路
34,36 レジスタ
38 条件ビット
40 算術演算論理ユニット(ALU)
42 CPU制御回路
44 例外制御回路
46 割り込み制御回路
47 オーバーライド回路
48 カウンタ/タイマ回路
50 割り込み信号
52 例外信号
54,56,60,62,64 導体
58 制御/ステータス信号
70 指定フィールド
R1,R3 レジスタ

Claims (5)

  1. データ・プロセッサにおいて後続の命令処理に影響を及ぼす方法であって:
    所定の命令を受信する段階;
    前記所定の命令をデコードする段階;
    前記デコードに応答して、前記所定の命令のデコードに続く所定数の命令の間、または前記所定の命令のデコードに続く所定の時間区間のいずれか1方にわたり、前記データ・プロセッサが遭遇する割り込みの、前記データ・プロセッサの処理を遅延させる段階;および
    前記割り込みの処理を実行する前に、前記後続の命令処理に影響を及ぼすように前記所定の命令を実行する段階であって、前記後続の命令の種類は、前記後続の命令の実行時間に基づいて予め限定される、前記所定の命令を実行する段階;
    を備えることを特徴とする方法。
  2. 割り込みの処理を遅延させる前記段階は:
    カウンタをタイマとして用い、前記所定の命令のデコードに続く前記所定の時間区間を判定する段階を更に含むことを特徴とする請求項1記載の方法。
  3. 割り込みの前記データ・プロセッサによる実行を遅延させる前記段階は、割り込みのみに応答して、処理を遅延させる段階を更に含むことを特徴とする請求項1記載の方法。
  4. データ・プロセッサであって:
    所定の命令集合を実行する命令実行回路であって、該所定の命令集合が、少なくとも1つの命令を含み、前記命令実行回路によって実行された場合、前記少なくとも1つの命令の実行に続く所定数の命令の間、前記データ・プロセッサの処理に関連する割り込みの認識を、前記データ・プロセッサに遅延させ、後続の命令処理に影響を及ぼす、命令実行回路;
    を備え、前記後続の命令の種類は、前記後続の命令処理の実行時間に基づいて予め限定されることを特徴とするデータ・プロセッサ。
  5. 前記データ・プロセッサが割り込みの認識を遅延させる前記所定数の命令は、前記データ・プロセッサのユーザによって、ユーザ・プログラム可能であることを特徴とする請求項4記載のデータ・プロセッサ。
JP31026898A 1997-11-03 1998-10-30 デ―タ・プロセッサにおいて後続の命令処理に影響を及ぼす方法および装置 Expired - Fee Related JP4883824B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US963321 1997-11-03
US08/963,321 US6000029A (en) 1997-11-03 1997-11-03 Method and apparatus for affecting subsequent instruction processing in a data processor

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2009035190A Division JP4750865B2 (ja) 1997-11-03 2009-02-18 デ―タ・プロセッサにおいて後続の命令処理に影響を及ぼす方法および装置

Publications (2)

Publication Number Publication Date
JPH11219302A JPH11219302A (ja) 1999-08-10
JP4883824B2 true JP4883824B2 (ja) 2012-02-22

Family

ID=25507071

Family Applications (2)

Application Number Title Priority Date Filing Date
JP31026898A Expired - Fee Related JP4883824B2 (ja) 1997-11-03 1998-10-30 デ―タ・プロセッサにおいて後続の命令処理に影響を及ぼす方法および装置
JP2009035190A Expired - Fee Related JP4750865B2 (ja) 1997-11-03 2009-02-18 デ―タ・プロセッサにおいて後続の命令処理に影響を及ぼす方法および装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2009035190A Expired - Fee Related JP4750865B2 (ja) 1997-11-03 2009-02-18 デ―タ・プロセッサにおいて後続の命令処理に影響を及ぼす方法および装置

Country Status (9)

Country Link
US (2) US6000029A (ja)
EP (1) EP0913767B1 (ja)
JP (2) JP4883824B2 (ja)
KR (1) KR100588790B1 (ja)
CN (1) CN1098487C (ja)
DE (1) DE69810064T2 (ja)
HK (1) HK1020218A1 (ja)
SG (2) SG101487A1 (ja)
TW (1) TW494363B (ja)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7805724B1 (en) * 1998-05-27 2010-09-28 Arc International I.P., Inc. Apparatus, method and computer program for dynamic slip control in real-time scheduling
JP2000330785A (ja) * 1999-05-18 2000-11-30 Sharp Corp 実時間プロセッサおよび命令実行方法
US6618800B1 (en) * 2000-01-18 2003-09-09 Systemonic Ag Procedure and processor arrangement for parallel data processing
GB2369464B (en) 2000-11-27 2005-01-05 Advanced Risc Mach Ltd A data processing apparatus and method for saving return state
US6857036B2 (en) * 2001-07-17 2005-02-15 Hewlett Packard Development Company, L.P. Hardware method for implementing atomic semaphore operations using code macros
US20030154347A1 (en) * 2002-02-12 2003-08-14 Wei Ma Methods and apparatus for reducing processor power consumption
US7542566B2 (en) 2003-04-18 2009-06-02 Ip-First, Llc Apparatus and method for performing transparent cipher block chaining mode cryptographic functions
US7900055B2 (en) 2003-04-18 2011-03-01 Via Technologies, Inc. Microprocessor apparatus and method for employing configurable block cipher cryptographic algorithms
US7529367B2 (en) 2003-04-18 2009-05-05 Via Technologies, Inc. Apparatus and method for performing transparent cipher feedback mode cryptographic functions
US7925891B2 (en) 2003-04-18 2011-04-12 Via Technologies, Inc. Apparatus and method for employing cryptographic functions to generate a message digest
US7321910B2 (en) 2003-04-18 2008-01-22 Ip-First, Llc Microprocessor apparatus and method for performing block cipher cryptographic functions
US7539876B2 (en) 2003-04-18 2009-05-26 Via Technologies, Inc. Apparatus and method for generating a cryptographic key schedule in a microprocessor
US7536560B2 (en) 2003-04-18 2009-05-19 Via Technologies, Inc. Microprocessor apparatus and method for providing configurable cryptographic key size
US7392400B2 (en) 2003-04-18 2008-06-24 Via Technologies, Inc. Microprocessor apparatus and method for optimizing block cipher cryptographic functions
US7844053B2 (en) 2003-04-18 2010-11-30 Ip-First, Llc Microprocessor apparatus and method for performing block cipher cryptographic functions
US7532722B2 (en) * 2003-04-18 2009-05-12 Ip-First, Llc Apparatus and method for performing transparent block cipher cryptographic functions
US7519833B2 (en) 2003-04-18 2009-04-14 Via Technologies, Inc. Microprocessor apparatus and method for enabling configurable data block size in a cryptographic engine
US7502943B2 (en) 2003-04-18 2009-03-10 Via Technologies, Inc. Microprocessor apparatus and method for providing configurable cryptographic block cipher round results
US7529368B2 (en) 2003-04-18 2009-05-05 Via Technologies, Inc. Apparatus and method for performing transparent output feedback mode cryptographic functions
CN100495324C (zh) * 2006-07-27 2009-06-03 中国科学院计算技术研究所 复杂指令集体系结构中的深度优先异常处理方法
US8880959B2 (en) 2012-06-15 2014-11-04 International Business Machines Corporation Transaction diagnostic block
US9740549B2 (en) 2012-06-15 2017-08-22 International Business Machines Corporation Facilitating transaction completion subsequent to repeated aborts of the transaction
US9317460B2 (en) 2012-06-15 2016-04-19 International Business Machines Corporation Program event recording within a transactional environment
US9367323B2 (en) 2012-06-15 2016-06-14 International Business Machines Corporation Processor assist facility
US20130339680A1 (en) 2012-06-15 2013-12-19 International Business Machines Corporation Nontransactional store instruction
US8682877B2 (en) 2012-06-15 2014-03-25 International Business Machines Corporation Constrained transaction execution
US8966324B2 (en) 2012-06-15 2015-02-24 International Business Machines Corporation Transactional execution branch indications
US9442737B2 (en) 2012-06-15 2016-09-13 International Business Machines Corporation Restricting processing within a processor to facilitate transaction completion
US9348642B2 (en) 2012-06-15 2016-05-24 International Business Machines Corporation Transaction begin/end instructions
US8688661B2 (en) 2012-06-15 2014-04-01 International Business Machines Corporation Transactional processing
US9336046B2 (en) 2012-06-15 2016-05-10 International Business Machines Corporation Transaction abort processing
US9384004B2 (en) 2012-06-15 2016-07-05 International Business Machines Corporation Randomized testing within transactional execution
US9448796B2 (en) 2012-06-15 2016-09-20 International Business Machines Corporation Restricted instructions in transactional execution
US9436477B2 (en) 2012-06-15 2016-09-06 International Business Machines Corporation Transaction abort instruction
US9361115B2 (en) 2012-06-15 2016-06-07 International Business Machines Corporation Saving/restoring selected registers in transactional processing
US10437602B2 (en) 2012-06-15 2019-10-08 International Business Machines Corporation Program interruption filtering in transactional execution
US9772854B2 (en) 2012-06-15 2017-09-26 International Business Machines Corporation Selectively controlling instruction execution in transactional processing
CN110535790B (zh) * 2019-08-23 2022-03-18 天津芯海创科技有限公司 基于semaphore的交换芯片异常报文处理方法
US20240004696A1 (en) * 2022-06-29 2024-01-04 Red Hat, Inc. Synchronizing concurrent tasks using interrupt deferral instructions

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5440049A (en) * 1977-09-06 1979-03-28 Toshiba Corp Information process system
US4236204A (en) 1978-03-13 1980-11-25 Motorola, Inc. Instruction set modifier register
US4435766A (en) * 1981-06-16 1984-03-06 International Business Machines Corporation Nested resource control using locking and unlocking routines with use counter for plural processes
CN1004234B (zh) * 1985-04-01 1989-05-17 坦德姆计算机有限公司 增强的中央处理器(cpu)微转移结构
US4764893A (en) * 1985-04-26 1988-08-16 International Business Machines Corporation Noise-immune interrupt level sharing
CN1009399B (zh) * 1987-06-02 1990-08-29 德国Itt工业股份公司 中央处理器
US5499356A (en) * 1989-12-29 1996-03-12 Cray Research, Inc. Method and apparatus for a multiprocessor resource lockout instruction
JPH03210649A (ja) * 1990-01-12 1991-09-13 Fujitsu Ltd マイクロコンピュータおよびそのバスサイクル制御方法
JP2665813B2 (ja) * 1990-02-23 1997-10-22 三菱電機株式会社 記憶制御装置
JPH05508496A (ja) * 1990-06-11 1993-11-25 クレイ、リサーチ、インコーポレーテッド 命令をロードおよびフラグする方法および装置
JPH0467229A (ja) * 1990-07-06 1992-03-03 Hitachi Ltd マイクロプロセッサおよびメモリシステム
JPH0474229A (ja) * 1990-07-17 1992-03-09 Toshiba Corp 情報処理装置
JPH04306735A (ja) * 1991-04-04 1992-10-29 Toshiba Corp 非同期割込み禁止機構
US5301312A (en) * 1991-08-21 1994-04-05 International Business Machines Corporation Method and system for utilizing benign fault occurrence to measure interrupt-blocking times
US5283870A (en) * 1991-10-04 1994-02-01 Bull Hn Information Systems Inc. Method and apparatus for avoiding processor deadly embrace in a multiprocessor system
JPH05143322A (ja) * 1991-11-15 1993-06-11 Sanyo Electric Co Ltd マイクロコンピユータ
EP0555680B1 (en) * 1992-02-14 1999-10-13 Motorola, Inc. A method and apparatus for determining instruction execution ordering in a data processing system
US5590380A (en) * 1992-04-22 1996-12-31 Kabushiki Kaisha Toshiba Multiprocessor system with processor arbitration and priority level setting by the selected processor
JPH06110846A (ja) * 1992-09-25 1994-04-22 Fujitsu Ltd 排他制御方式
US5768619A (en) * 1996-02-16 1998-06-16 Advanced Micro Devices, Inc. Method and system for enabling and disabling functions in a peripheral device for a processor system

Also Published As

Publication number Publication date
JPH11219302A (ja) 1999-08-10
KR100588790B1 (ko) 2006-10-04
TW494363B (en) 2002-07-11
EP0913767A3 (en) 2000-01-26
KR19990044957A (ko) 1999-06-25
US6000029A (en) 1999-12-07
DE69810064D1 (de) 2003-01-23
CN1216375A (zh) 1999-05-12
CN1098487C (zh) 2003-01-08
HK1020218A1 (en) 2000-03-31
EP0913767B1 (en) 2002-12-11
JP2009104675A (ja) 2009-05-14
SG101487A1 (en) 2004-01-30
EP0913767A2 (en) 1999-05-06
SG71861A1 (en) 2000-04-18
JP4750865B2 (ja) 2011-08-17
US6237089B1 (en) 2001-05-22
DE69810064T2 (de) 2003-04-17

Similar Documents

Publication Publication Date Title
JP4883824B2 (ja) デ―タ・プロセッサにおいて後続の命令処理に影響を及ぼす方法および装置
US7020871B2 (en) Breakpoint method for parallel hardware threads in multithreaded processor
US5053949A (en) No-chip debug peripheral which uses externally provided instructions to control a core processing unit
US6671827B2 (en) Journaling for parallel hardware threads in multithreaded processor
US5349667A (en) Interrupt control system for microprocessor for handling a plurality of maskable interrupt requests
US5440747A (en) Data processor with control logic for storing operation mode status and associated method
US6401197B1 (en) Microprocessor and multiprocessor system
KR970003321B1 (ko) 코프로세서 지정 시스템
JPH05204709A (ja) プロセッサ
KR900004291B1 (ko) 데이터 프로세서
US6842812B1 (en) Event handling
JPS62115542A (ja) 情報処理装置
EP0385136B1 (en) Microprocessor cooperating with a coprocessor
EP0720087A1 (en) Apparatus and method for a memory extension stack in a data processing system
US5208915A (en) Apparatus for the microprogram control of information transfer and a method for operating the same
EP0806723A2 (en) Method and apparatus for handling multiple precise events in a pipelined digital processor
EP0573071A2 (en) A microprocessor
JPH07219766A (ja) 演算処理装置
JP3493768B2 (ja) データ処理装置
JP2002278753A (ja) データ処理システム
JPH04308930A (ja) 電子計算機
JPS6149695B2 (ja)
JP2003029966A (ja) データ処理装置
JP2001084143A (ja) 情報処理装置
JPH05100853A (ja) デバツグサポート機能付データ処理装置

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20041217

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050927

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050927

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20050927

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080129

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080428

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080502

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080725

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080801

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20081021

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090218

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20090224

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

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20090403

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110726

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110801

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110826

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110901

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110926

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111206

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

Free format text: PAYMENT UNTIL: 20141216

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20141216

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees