JPH06195230A - データ処理システムにおいてレジスタをアンスタッキングする方法および装置 - Google Patents

データ処理システムにおいてレジスタをアンスタッキングする方法および装置

Info

Publication number
JPH06195230A
JPH06195230A JP5282145A JP28214593A JPH06195230A JP H06195230 A JPH06195230 A JP H06195230A JP 5282145 A JP5282145 A JP 5282145A JP 28214593 A JP28214593 A JP 28214593A JP H06195230 A JPH06195230 A JP H06195230A
Authority
JP
Japan
Prior art keywords
interrupt
stack pointer
unstacking
register
registers
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP5282145A
Other languages
English (en)
Other versions
JP3655930B2 (ja
Inventor
John A Langan
ジョン・エー・ランガン
Thomas J Poterek
トーマス・ジェイ・ポテレック
James L Broseghini
ジェームス・エル・ブロセギーニ
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.)
Motorola Solutions Inc
Original Assignee
Motorola 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 Motorola Inc filed Critical Motorola Inc
Publication of JPH06195230A publication Critical patent/JPH06195230A/ja
Application granted granted Critical
Publication of JP3655930B2 publication Critical patent/JP3655930B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

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/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
    • 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
    • G06F9/463Program control block organisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】 【目的】 データ処理システム100においてレジスタ
をアンスタッキングするための方法および装置。 【構成】 一つの形態では、本発明は、データ処理シス
テム100において、割込み処理中にレジスタ154〜
158のアンスタッキングおよびスタッキングを行う問
題に対するより時間効率の高い解決策である。スタック
からレジスタ値を押し出しても、スタックとして使用中
のメモリ内に格納されたいかなる値も変化しないという
事実を利用することによって、本発明は、2つの割込み
がその間に無割込み処理を入れずに折り返し処理される
たびにアンスタッキングおよびスタッキングを削減す
る。本発明は、対応するスタッキング動作またはアンス
タッキング動作なしに、スタック・ポインタ・レジスタ
161の値を変化させることによって、プログラム・カ
ウンタ・レジスタ158のアンスタッキング、およびレ
ジスタ154〜158の再スタッキングを排除する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は一般にデータ処理システ
ムに関し、具体的にはデータ処理システムにおいてレジ
スタをアンスタッキング(unstacking)する装置および方
法に関する。
【0002】
【従来の技術】今日多くのデータ処理システムは割込み
を利用している。割込みはデータ処理システム分野では
周知のものである。
【0003】割込みの使用方法は多岐にわたっている。
一般的な割込み使用方法の一つはマイクロプロセッサ・
システムでのリアルタイム処理向けである。たとえばマ
イクロプロセッサ・システムでは、タイマは、特定の時
間事象(time event)が発生したことを表示するために、
中央演算処理装置(CPU)に割込み要求を送ることが
できる。割込みを受け取り、この割込みに基づいて動作
すべきだと決定した後、CPUは通常の非割込み処理(n
on-interrupt) を停止して、割込み処理に切り換えるこ
とができる。
【0004】大抵のマイクロプロセッサ・システムで
は、CPUは割込みベクトルを受け取り、これをプログ
ラム・カウンタ・レジスタにロードする。ついでCPU
はソフトウェア割込みサービス・ルーチンの実行を開始
し、このルーチンは割込みベクトルによって指示された
記憶場所から開始する。タイマを例にとれば、割込みサ
ービス・ルーチンは、毎秒デジタル・クロックの表示を
更新するソフトウェア・ルーチンくらい単純になる場合
もある。或いは割込みサービス・ルーチンは、自動車の
エンジンで必要なスパーク・タイミング(spark timing)
を計算するソフトウェア・ルーチンくらいに複雑になる
場合もある。
【0005】マイクロプロセッサ・システムで割込みを
使用することの欠点の一つは、レジスタ値をメモリ・ス
タックにスタックするために必要なオーバヘッド時間で
ある。レジスタ値が「スタックされる」すなわち「スタ
ックにプッシュされる」場合には、レジスタ値はレジス
タから転送されて記憶場所に書き込まれる。レジスタの
スタッキングは通常、元のレジスタ値を保存するために
必要である。割込みサービス・ルーチンは元のレジスタ
値の一つまたは複数を変化させる場合があるので、元の
レジスタ値は読取り可能・書き込み可能メモリに一時的
に格納される。ランダム・アクセス・メモリ(RAM)
は「メモリ・スタック」または「スタック」として使用
されることが多いが、他の種類の一時記憶装置も使用で
きる。
【0006】いったん割込みサービス・ルーチンが完了
したなら、通常の無割込み処理が続行されて、元のレジ
スタ値を「アンスタックする」すなわち「スタックから
押し出す」ことができる。レジスタ値が「アンスタック
される」場合には、レジスタ値がメモリ・スタックから
検索されて、それぞれのレジスタへと転送されて戻され
る。
【0007】モトローラ社(テキサス州オースティン)
が市販する(MC68HC11マイクロプロセッサ・フ
ァミリーなどの)一部の単純なマイクロプロセッサは、
スタック・ポインタ・レジスタ値を除く全部のレジスタ
値を単純にスタックする。スタック・ポインタ・レジス
タ内に格納された値は、スタック内の項目のどれが次に
使用可能か連続して指し示すのに使用されるので、スタ
ックされない。スタック・ポインタ・レジスタ内に格納
された値も「スタック・ポインタ」と呼ばれる。
【0008】MC68HC11のマイクロプロセッサ・
ファミリーのスタック・ポインタはいくつかの方法で変
更できる。第1にユーザはソフトウェアにおいて、指定
された値をスタック・ポインタ・レジスタにロードまた
は書き込ませる命令を起動できる。通常の動作では、ユ
ーザは普通、最初にスタック・ポインタをスタックの開
始を指し示す値に設定する以外には、スタック・ポイン
タをこの方法で変更しない。
【0009】スタックの開始はスタックのメモリ・スペ
ース内のどこからでもよいが、大抵のスタックは最下位
アドレスから開始して最上位アドレスへと埋めていく
か、または最上位アドレスから開始して最下位アドレス
へと埋めていく。また一部のスタックは最上位アドレス
から最下位アドレスへと自動的にラップアラウンドした
り、或いは最下位アドレスから最上位アドレスへとラッ
プアラウンドする。MC68HC11マイクロプロセッ
サ・ファミリーは、最上位アドレスから最下位アドレス
へと埋めていくスタックを使用する。
【0010】MC68HC11マイクロプロセッサ・フ
ァミリーにおいてスタック・ポインタを変更できる第2
の方法は、スタッキング動作またはアンスタッキング動
作によるものである。レジスタ値がメモリ・スタックか
らスタックまたはアンスタックされるたびに、スタック
・ポインタは内部マイクロプロセッサ回路によって自動
的に更新されて、スタック内のどの項目が次に使用可能
かを連続して指し示すようにしなければならない。
【0011】スタック・ポインタが、スタック内のどの
項目を次に使用可能か指し示す方法は数通りある。第1
に、スタック・ポインタは、スタキング動作のためにア
クセスする次のスタック位置を直接指し示すことができ
る。たとえば、スタックが最上位アドレスから最下位ア
ドレスへと埋めていき、スタック・ポインタが$06で
ある場合には、スタッキング動作は記憶場所$06にア
クセスするが、アンスタッキング動作は記憶場所$07
にアクセスする。
【0012】これに代わる方法として、スタック・ポイ
ンタはアンスタッキング動作のためにアクセスする次の
スタック位置を直接指し示すことができる。たとえば、
スタックが最上位アドレスから最下位アドレスへと埋め
ていき、スタック・ポインタが$06の場合には、スタ
ッキング動作は記憶場所$05にアクセスするが、アン
スタッキング動作は記憶場所$06にアクセスする。現
在のMC68HC11マイクロプロセッサ・ファミリー
では、スタック・ポインタは、スタッキング動作のため
にアクセスする次のスタック位置が16ビット・アドレ
スである。
【0013】現在のMC68HC11マイクロプロセッ
サ・ファミリーでは、1バイトがスタックにプッシュさ
れるたびに、スタック・ポインタは常に内部マイクロプ
ロセッサ回路によって自動的に減分される。同様に、ス
タックから1バイトが押し出されるたびに、スタック・
ポインタは常に内部マイクロプロセッサ回路によって自
動的に増分される。このためスタック・ポインタは現在
のMC68HC11マイクロプロセッサ・ファミリーで
は、以下の状況を除いて変化しない。すなわち、スタッ
キング動作、アンスタッキング動作、ユーザによる書き
込みアクセス、スタック・ポインタを増分・減分する命
令、およびインデックス・レジスタの内容をスタック・
ポインタに転送する命令である。
【0014】現在のMC68HC11マイクロプロセッ
サ・ファミリーでは、スタックは割込み処理,サブルー
チン呼出し,およびデータ値の一時記憶のために最も多
く使用される。しかしながら理由がスタッキング動作で
あろうとアンスタッキング動作であろうとそれとは関係
なく常に、スタック・ポインタはこれに伴って(すなわ
ち増分または減分によって)増分調整され、スタック・
ポインタ値はスタック内の次に使用可能な項目を指し示
し続ける。
【0015】
【発明が解決しようとする課題】また、マイクロプロセ
ッサ・システム内で割込みを使用することの欠点の一つ
は、レジスタ値をメモリ・スタックにスタックするため
に要するオーバヘッド時間である。一定のコントローラ
用途など一部のマイクロプロセッサ用途では、割込みサ
ービス・ルーチンを使用して多くの動作が実行される。
このため割込みは一部の用途ではしばしば頻繁に発生す
る場合がある。あいにく、現在のMC68HC11マイ
クロプロセッサ・ファミリーでは、CPUが切迫する割
込みを処理すべきだと決定するたびに、スタック・ポイ
ンタ・レジスタを除く全部のレジスタが自動的にスタッ
クされる。このため、割込みが処理されるたびに、レジ
スタ値のスタキングまたはアンスタッキングに、非常に
多くの処理時間が繰り返し消費される。
【0016】
【課題を解決するための手段】上記の必要性は本発明に
よって充足され、また他の利点も本発明によって達成さ
れる。一つの形態では、本発明はデータ処理システムに
おいて複数のレジスタをアンスタッキングする装置およ
び方法である。
【0017】一つの実施例では、本発明は複数のレジス
タの第1部分をアンスタッキングする段階を含む。本発
明はまた、第1割込みを受け付けるか否か決定する段階
を含む。最初の割込みが受け付けられる場合には、スタ
ック・ポインタ値はスタッキングを実行せずに変更され
る。第1の割込みが受け付けられない場合には、複数の
レジスタの第2部分がアンスタックされる。
【0018】本発明を、当事者は添付図面と合わせて以
下の詳細な説明から理解しよう。
【0019】
【実施例】割込み処理のためにレジスタをスタッキング
およびアンスタッキングするのに消費される時間の量を
減らす方法が必要であった。またこの新しい方式は、現
在のMC68HC11マイクロプロセッサ・ファミリー
とのソフトウェア互換性を有する必要があった。
【0020】本発明は割込み処理のためにレジスタをス
タッキングおよびアンスタッキングするのに消費される
時間の量を大幅に削減する。現在のMC68HC11マ
イクロプロセッサ・ファミリーでは、「割込みからの戻
り」(RTI)命令を、プログラマはソフトウェア割込
みサービス・ルーチンでの最後の命令として使用する。
RTI命令は、割込みのために以前スタックされていた
全部のレジスタをアンスタッキングする機能を実行す
る。
【0021】本発明は、マイクロプロセッサが第1割込
みの割込み処理を完了して、その直後に処理を開始せね
ばならない第2の割込みがあるときに時間を大幅に節約
する。現在のMC68HC11マイクロプロセッサ・フ
ァミリーでは、RTI命令は、スタック・ポインタを除
くレジスタ全部をアンスタックする。その後、マイクロ
プロセッサが、第2割込みが切迫していて、これを処理
すべきだと決定した後に同じレジスタが再度スタックさ
れる。本発明はこのような冗長なアンスタッキングおよ
びスタッキングを排除する。
【0022】RTI命令の間にレジスタをアンスタッキ
ングして、ついで第2の割込みが行われるときに単純に
同じレジスタを再スタッキングする代わりに、本発明
は、スタック・ポインタの値を変更することによって、
冗長なアンスタッキングおよびスタッキングを排除す
る。このため二つの割込みが、間に無割込み処理を入れ
ないで折り返し処理されるたびに、本発明ではレジスタ
をアンスタッキングおよびスタッキングする時間を節約
することになる。
【0023】
【図の説明】「アサート」および「ニゲート」という語
は、信号,状態ビットまたは同様の機構をそれぞれ論理
真または論理偽状態にすることを差す場合に用いられ
る。論理真状態が論理レベル1の場合、論理偽状態は論
理レベル0になる。また論理真状態が論理レベル0場合
には、論理偽状態は論理レベル1になる。
【0024】数字の前に置かれる記号「$」は、その数
字が16進または16を基数とする形式で表されている
ことを示す。「バス」という語は、データ,アドレス,
制御または状態など一つまたは多岐に渡る種類の情報を
転送するのに使用できる複数の信号を差す。
【0025】図1は、現在のMC68HC11マイクロ
プロセッサ・ファミリーで割込み処理中に実施される先
行技術のレジスタ・スタッキングおよびアンスタッキン
グの実行を流れ図で表したものである。円5は流れ図の
スタート・ポイントと再入点の両方を表している。円6
は割込みからの戻り(RTI)命令が割込みサービス・
ルーチンの実行を開始する直前にあたる、流れのポイン
トを表す。円7は、割込みサービス・ルーチンで割込み
からの戻り(RTI)命令の実行が完了した直後にあた
る、流れの再入点を表す。また円8は流れにおける円7
へのジャンプを表す。
【0026】矩形10〜16は流れの中のその表示され
たポイントで実行される個々の動作を表す。ひし形2
0,21は、マイクロプロセッサによって行われる決定
で、流れ図の中で次にたどるパスに影響を与える決定を
表す。楕円25〜27は、マイクロプロセッサが行う決
定もしくは動作を表さず、その代わり、流れ図の中のそ
の表示されたポイントにおけるスタック・ポインタの状
態を表す。
【0027】流れにおける破線の間の段階は、先行技術
において割込みからの戻り(RTI)命令の間に実行さ
れる段階である。
【0028】図2および図3はともに、本発明の一実施
例に基づくデータ処理システム100(図4参照)にお
いて割込み処理の間に実施されるレジスタのスタッキン
グおよびアンスタッキングの実行を、流れ図の形で表し
たものである。円29は流れ図のスタート・ポイントを
表す。円30は流れにおける円31へのジャンプを表
す。円31は、割込みサービス・ルーチンにおいて割込
みからの戻り(RTI)命令が実行を開始する直前にあ
たる、流れのポイントを表す。円32は流れにおける円
29へのジャンプを表す。また円33は流れにおける円
31へのジャンプを表す。
【0029】矩形35〜46は、流れにおけるその表示
されたポイントで実行される個々の動作を表す。ひし形
50〜53は、データ処理システム100において回路
が行う決定で、流れ図で次にたどるパスに影響を与える
決定を表す。楕円60〜63はデータ処理システム10
0において回路が行う決定もしくは動作を表さず、代わ
りに、流れ図内のその表示されたポイントにおけるスタ
ック・ポインタの状態を表す。
【0030】図3を参照すると、破線間の段階は、本発
明の一実施例に従って、割込みからの戻り(RTI)命
令の間に実行される諸段階である。
【0031】図4は、データ処理システム100の一実
施例を表す。データ処理システム100は中央演算処理
装置(CPU)回路102,回路のシステム・インテグ
レーション・セクション104,読出し専用メモリ(R
OM)回路106,電気的に消去可能なプログラム可能
読出しメモリ(EEPROM)回路108,回路のパル
ス幅変調セクション110,アナログ・デジタル変換器
回路112,ランダム・アクセス・メモリ(RAM)回
路114,回路の逐次セクション116,および回路の
タイマ・セクション118を有し、それぞれバス回路1
20に双方向に結合される。CPU102およびシステ
ム・インテグレーション・セクション104はバス回路
121によって互いに双方向に結合される。
【0032】システム・インテグレーション・セクショ
ン104は集積回路ピン122を介して、データ処理シ
ステム100の外部に対し信号を送受信できる。パルス
幅変調セクション110は集積回路ピン124を介し
て、データ処理システム100の外部に対し信号を送受
信できる。アナログ・デジタル変換器112は集積回路
ピン126を介してデータ処理システム100の外部に
対し信号を送受信きる。逐次セクション116は集積回
路ピン128を介して、データ処理システム100の外
部に対し信号を送受信できる。またタイマ・セクション
118は集積回路ピン130を介して、データ処理シス
テム100の外部に対し信号を送受信できる。
【0033】図5は、本発明の一実施例に基づく図4の
中央演算処理装置(CPU)102をブロック図で示し
たものである。CPU102は実行装置回路132,マ
イクロROMとその関連論理回路134,命令パイプ・
デコード論理回路136,およびバス制御論理回路13
8を有し、それぞれ、バス回路140と双方向に結合さ
れる。バス140はCPU102内の各種の回路間で情
報(例:制御,データおよびアドレス)を伝送するため
に使用される。また命令パイプ・デコード論理136は
被デコード命令情報をバス回路141を介してマイクロ
ROMとその関連論理134に転送する。バス回路14
2は、CPU102との間で情報(例:制御,データお
よびアドレス)をやり取りするのに使用される。図4お
よび図5を参照すると、バス142はバス120および
バス121の両方に結合される。図6は、本発明の一実
施例に基づく図5の実行装置132の一部をブロック図
で示したものである。実行装置132は、累算器Aレジ
スタ150および累算器Bレジスタ152を有し、これ
らは別個のレジスタとして見なせる。これに代わり、累
算器Aレジスタ150および累算器Bレジスタ152を
連結して、これらを1個の累算器Dレジスタ回路154
として、一つのものと見なすこともできる。累算器Dレ
ジスタ154はバス回路159およびバス回路160と
双方向に結合される。
【0034】実行装置132は、インデックス・レジス
タ回路X155,インデックス・レジスタ回路Y15
6,プログラム・カウンタ・レジスタ回路158,条件
コード・レジスタ回路157,およびスタック・ポイン
タ・レジスタ回路161を有し、それぞれバス159お
よびバス160と双方向に結合される。条件コード・レ
ジスタ回路157はモード・ビット162および割込み
マスク・ビット(Iビット)164を有する。
【0035】本発明の一実施例では、累算器Aレジスタ
150,累算器Bレジスタ152および条件コード・レ
ジスタ回路157はそれぞれ長さ1バイトである。累算
器Dレジスタ154,インデックス・レジスタX15
5,インデックス・レジスタY156,プログラム・カ
ウンタ・レジスタ158およびスタック・ポインタ・レ
ジスタ161はそれぞれ長さ2バイトである。本発明の
代替的実施例では、任意の数のレジスタが存在してよ
く、各レジスタの長さは任意の数のバイトでよい。演算
論理装置(ALU)とその関連論理回路166はバス1
59から入力を受け取り、バス160から入力を受け取
って、出力を生成し、この出力はバス160に転送され
る。データ・バッファ回路168はバス140,15
9,160と双方向に結合され、これを用いてこれらバ
ス間で情報を転送する。データ・バッファ168はま
た、バス140,159,160間で転送中の情報を一
時的に格納することもできる。
【0036】制御論理回路170はバス159およびバ
ス160を介して、また図に示さない他の制御信号によ
って、実行装置132全体にわたり制御信号を受信し転
送する。制御論理170は、スタッキング・アンスタッ
キング論理回路172に結合される。制御論理170は
また割込み論理回路174にも結合される。スタッキン
グ・アンスタッキング論理172はバス160と双方向
に結合される。割込み論理174もバス160と双方向
に結合される。
【0037】本発明の別の実施例では、一つまたは複数
の制御論理170,スタッキング・アンスタッキング論
理172,および割込み論理回路174は、図5のマイ
クロROMとその関連論理134の一部として実際に実
現できる。このような実施例では、マイクロROMとそ
の関連論理134は、バス140を介して、または付加
したバス(図示せず)を介して実行装置132に制御信
号を転送する。
【0038】好適な実施例の説明 本発明は割込み処理のためにレジスタのスタッキングお
よびアンスタッキングに消費される時間を削減する。2
つの割込みがその間に無割込み処理を入れずに折り返し
処理されるたびに、本発明はレジスタ154〜158を
スタックするのに要する時間、およびレジスタ158を
アンスタックするのに要する時間を節約する。
【0039】注意すべきことは、ポインタ・レジスタ1
61がスタックされないことである。またもう一つ注意
すべきことは、累算器Dレジスタ154は、累算器Bレ
ジスタ152と連結された累算器Aレジスタ回路150
と同じであることである。このため、累算器Aレジスタ
150と累算器Bレジスタ152の両方をスタックする
スタッキング動作は、累算器Dレジスタ154をスタッ
クするスタッキング動作に匹敵する。
【0040】また本発明は現在のMC68HC11マイ
クロプロセッサ・ファミリーとのソフトウェア互換性が
なくてはならない。そのため、割込みからの戻り(RT
I)など以前定義された命令によって実行される段階に
変化が生じても、既存のソフトウェア・ルーチンに障害
を起こしてはならない。すなわち、以前定義された命令
によって実行される段階に生じる変化は、ユーザに見え
るものでなくてはならない。本発明は割込み中の処理時
間を大幅に節約するのみならず、現在のMC68HC1
1マイクロプロセッサ・ファミリーとのソフトウェア互
換性をも維持する。
【0041】本発明は、データ処理システム100によ
って逐次割込みを処理する方法に変更を加える。また割
込み処理の間および割込みからの戻り(RTI)の間に
実行される諸段階に変更を加えている。
【0042】図1を参照すると、現在のMC68HC1
1マイクロプロセッサ・ファミリーでは、後続の割込み
が次に処理されるか否かには関係なく、RTI命令の間
常に同じ流れ経路をたどる。RTI命令は常にレジスタ
154〜158(矩形16参照)をアンスタックし、そ
の後円7に戻って、さらに割込みを行うかまたは無割込
み処理に戻るか決定する。さらに割込みを行う場合には
(すなわち、ひし形20,21で「はい」を選択する
と)、レジスタ154〜158が再度スタックされる
(矩形11を参照)。これ以上割込みを行わない場合に
は(すなわち、ひし形20またはひし形21のいずれか
で「いいえ」を選択すると)、流れは無割込み処理の続
行に戻る(矩形10参照)。
【0043】注意すべきことは、図1では、スタックに
1バイト、プッシュされるたびにスタック・ポインタが
減分し、スタックから1バイト押し出されるたびに増分
されることである。このためレジスタ154〜158
(合わせて9バイトで構成される)がすべてスタックに
プッシュされると、その結果、スタックは9減分され
る。このため楕円25,26は、スタック・ポインタ
が、矩形11のスタッキング動作の前に$(初期値)の
値で開始された場合、スタッキング動作完了後、スタッ
ク・ポインタは$(初期値)−9の値をとることを示
す。同じ様に楕円26,27は、スタック・ポインタ
が、矩形16のアンスタッキング動作の前に$(初期
値)−9の値で開始された場合、アンスタッキング動作
完了後には、スタック・ポインタは$(初期値)をとる
ことを示す。
【0044】図1では、スタック・ポインタの増分また
は減分は、常に対応するスタッキング動作またはアンス
タッキング動作を伴う。ユーザはいつでもスタック・ポ
インタ・レジスタ161(図6参照)に書き込み、スタ
ック・ポインタを変更することができるが、このような
書き込みの結果、間違ったレジスタ値がスタックから押
し出されて、間違ったレジスタに返されて格納される可
能性が高い。このためユーザは一般に、スタッキング動
作が発生する前にスタック・ポインタ・レジスタ161
に$(初期値)を書き込む以外には、スタック・ポイン
タ・レジスタ161への書き込みは行わない。図4のデ
ータ処理システム100では、RAM114の一部がス
タックとして用いられる可能性がきわめて高い。
【0045】図1に示す先行技術の方式の重要な欠点
は、2つの割込みがその間に無割込み処理を入れずに折
り返し処理されるたびに無駄なアンスタッキングおよび
再スタッキングが発生することである。本発明では、割
込みからの戻り(RTI)命令に変更を加え、また割込
みの処理方法に変更を加えることによって、割込み処理
を改良する。
【0046】図2で円29から円30への流れは、図1
の先行技術における円5から円6への流れに大体対応す
る。しかしながら一つの重要な違いは、図1の円7に対
応する再入点が図2の流れにはないことである。
【0047】図1に示す円6から円8への流れ全体が図
3の流れによって置き換えられている。図3を見ると、
これにより本発明は、後続割込みを次に処理するか否か
によって、RTI命令の間にたどることができるパスを
2つ提供することになる。RTI命令は常にレジスタ1
54〜157(矩形41を参照)をアンスタックする
が、図1の流れと違って、プログラム・カウンタ・レジ
スタ158はアンスタックしても、アンスタックしなく
てもよい。さらに割込みを行わない場合(すなわち、ひ
し形52またはひし形53で「いいえ」を選択する
と)、流れは、スタック上に残っている一つのレジスタ
であるプログラム・カウンタ・レジスタ158をアンス
タックして、無割込み処理に戻る(矩形46,円32お
よび円29参照)。
【0048】しかしながらさらに割込みを行う場合(す
なわち、ひし形52,53から「はい」をたどると)、
スタック・ポインタは調整されるが、スタッキングは実
行されない。この点がキー・ポイントである。レジスタ
値をスタックにプッシュすることによって、そのレジス
タ値は、スタックとして使用中のメモリ内のその場所に
あったいかなる値の上にも上書きされる。しかしながら
レジスタ値をスタックから押し出しても、スタックとし
て使用中のメモリ内に格納されている値はいずれも変化
しない。このためレジスタ154〜157(矩形41参
照)をアンスタッキングしても、レジスタ154〜15
7からの値は、スタックとして使用中のメモリ(例、R
AM114)内にそのまま格納されているという事実は
変化しない。しかしながらアンスタッキング動作によっ
て、スタック・ポインタは増分調整され、その時点でプ
ログラム・カウンタ・レジスタ158を示すようにな
る。このレジスタはまだアンスタックされていない唯一
のレジスタである。
【0049】スタック・ポインタを調整する量を適切に
すれば(矩形42参照)、レジスタ154〜157の値
は、スタックとして使用中のメモリ内にそのまま物理的
に存在するので、実際にレジスタ154〜157を再ス
タックする必要はない。このためレジスタ154〜15
7を再スタックするスタッキング動作は常に、対応する
スタック場所のそれぞれに全く同じレジスタ値を上書き
する効果しか持たない。しかしながらスタッキング動作
にはスタック・ポインタを増分調整する効果も有する。
【0050】本発明は、すぐにもう一つの割込みを行う
場合に、プログラム・カウンタ・レジスタ158をアン
スタッキングする必要性、およびレジスタ154〜15
7を再スタッキングする必要性を回避する。レジスタ1
54〜157を再スタックする代わりに、スタック・ポ
インタは適正な量だけ調整されて、アンスタックする最
初のレジスタのスタック位置を指し示す。このためスタ
ック・ポインタ値は、全部のレジスタが実際に再スタッ
クされた場合にスタック・ポインタがとる値に調整され
る。但し、スタッキングは行われない。
【0051】図に示す本発明の実施例では、スタック・
ポインタ・レジスタ161は別にして、すべてのレジス
タをスタックするために9バイトが必要である。このた
めスタック・ポインタ値は、スタッキング動作またはア
ンスタッキング動作が行われずに、$(初期値)−9の
値に調整される。本発明の別の実施例は、これより多く
のまたは少ないレジスタをスタックするので、スタック
・ポインタを調整しなければならない量は各種の実施例
によって異なる。また本発明の別の実施例では複数の調
整量をとることも可能である。たとえばごく少数のレジ
スタをスタックしなければならない状況では、スタック
・ポインタは、より少ない所定量の調整を行えばよい。
しかし、ほとんどのレジスタをスタックしなければらな
らい状況では、スタック・ポインタはより大きな所定量
の調整を行わなければならない。大抵のデータ処理シス
テム100では、スタック・ポインタ値を直接調整する
のに要する時間の方が、複数のレジスタを実際にスタッ
クまたはアンスタックするのに要する時間より大幅に少
ない。このため本発明の結果、一部データ処理システム
100では、実行時間が大幅に節約することができる。
【0052】先行技術で注意すべきことは、スタック・
ポインタ・レジスタ161の増分および減分は各スタッ
キング動作およびアンスタッキング動作の自然な副産物
であったことである。しかしながら本発明では、スタッ
ク・ポインタ・レジスタ161内の値は、ユーザによる
書き込みアクセスがなくても、またスタッキング動作ま
たはアンスタッキング動作の実行がなくても、マイクロ
プロセッサのハードウェアによって自動的に調整でき
る。
【0053】図2および図3を参照すると、スタック・
ポインタは、スタックに1バイトがプッシュされるたび
に依然減分され、スタックから1バイト押し出されるた
びに依然増分される。このためレジスタ154〜158
(合わせて9バイトから構成される)が全部スタックに
プッシュされる場合には、その結果、スタック・ポイン
タは9減分する。このため楕円60,61は、矩形36
のスタッキング動作の前にスタック・ポインタが$(初
期値)の値で開始した場合には、スタック・ポインタ
は、スタッキング動作完了後、$(初期値)−9の値を
とることを示す。楕円61,62は、矩形41のアンス
タッキング動作の前にスタック・ポインタが$(初期
値)−9の値で開始した場合には、スタック・ポインタ
は、プログラム・カウンタ・レジスタ158がアンスタ
ックされなかったアンスタッキング動作完了後、$(初
期値)−2の値をとることを示す。
【0054】楕円63は、スタッキング動作またはアン
スタッキング動作なしに、スタック・ポインタ・レジス
タ161に対して直接調整が行われた後の、スタック・
ポインタ値を示す。このスタック・ポインタ値は、レジ
スタ154〜157が実際に再スタックされた場合にと
る値に調整された。矩形42記載のスタック・ポインタ
の直接調整は、ユーザが、スタック・ポインタ・レジス
タ161に書き込みアクセスを行わなくても達成され
る。
【0055】図3を参照すると、破線の間の流れの段階
は、本発明を用いて割込みからの戻り(RTI)命令の
間に実施される段階である。先行技術のRTI命令(図
1参照)の実行とは明らかに異なっている。RTI命令
の実行が完了した後、矩形42〜45が実行される。次
の割込みベクトルが取り込まれて、プログラム・カウン
タ・レジスタ158にロードされる。ついで次の割込み
サービス・ルーチンの実行が開始される。その後流れは
円31にジャンプして戻る。割込みサービス・ルーチン
は、ユーザが所望するファンクションを何でも実行する
一つまたは複数のソフトウェア命令(図示せず)によっ
て構成できる。RTI命令は、あらゆる割込みサービス
・ルーチンにおいて最後の命令になることを目的とす
る。RTI命令の実行が開始されると、流れは振出に戻
って矩形40に返る。
【0056】レジスタ154〜157(矩形41参照)
のアンスタッキングは、各割込みサービス・ルーチンが
処理を開始する前に、レジスタ154〜157を同じ初
期状態に常に戻す効果を有する。これは、現在のMC6
8HC11マイクロプロセッサ・ファミリーとのソフト
ウェア互換性を確保する上で役立つ。
【0057】図3のひし形52は、次の割込みが切迫し
ているか否か決定するもので、多岐に渡る方法で実現で
きる。本発明の一つの実施例では、割込み論理174
(図6)が、割込みが切迫しているか否かを決定する。
割込み論理174は、バス140から受信中の一つまた
は複数の特定の信号をモニターする。本発明の一実施例
では、割込みソースは、バス120またはバス122の
適切な信号をアサートすることによって、割込みを要求
できる。割込みソースは、データ処理システム100内
の図に示したどの部分に置いてもよく、またはデータ処
理システム100の外部に位置してもよい。ついで割込
み論理174はバス142,バス140およびバス16
0を介してこの信号を受信して、割込みが要求されてい
るか否か、それが充分に高い優先順位であるかを決定す
る。
【0058】本発明の一実施例では、図2のひし形50
は、図3のひし形52と同じ方法で実現される。
【0059】また本発明の一部の実施例では、ソフトウ
ェア割込み(SWI)などの命令が割込みを要求でき
る。ソフトウェア割込みの場合には、割込み論理174
は命令パイプ・デコード論理136またはマイクロRO
Mとその関連論理134によって、要求を受け取ること
ができる。注意すべきことは、本発明の一実施例では、
ソフトウェア割込みは、SWI命令が実行されるまで、
切迫する割込みと見なされないので、SWI命令はひし
形52で「いいえ」をたどることである。
【0060】割込みが切迫しているか否か決定するため
に割込み論理174が用いる方式は、現在のMC68H
C11マイクロプロセッサ・ファミリーで使用されてい
る方式と同じで、これはこの分野では周知のものであ
る。同様に注意すべきことは、割込み優先順位を決定す
るために割込み論理174が使用する方式も、現在のM
C68HC11マイクロプロセッサ・ファミリーと同じ
であって、この分野では周知のものであることである。
【0061】図3のひし形53は、次の割込みがアンマ
スクであるか否かを決定するもので、多岐に渡る方法で
実現できる。割込みが「マスク状態」の場合には、割込
みは当該時間ポイントでは処理されない。しかしながら
割込みはこのまま保留を続けることもできるし、「アン
マスク」状態になる将来の時間ポイントで処理すること
もできる。割込みが「アンマスク」すなわち「マスクさ
れていない」場合には、割込みが処理される。本発明の
一実施例では、割込みがアンマスクであるか否かを決定
するために、条件コード・レジスタ157に位置する割
込みマスク・ビット(Iビット)164が使用される。
現在のMC68HC11マイクロプロセッサ・ファミリ
ーでもそうだが、一定の割込みだけがマスクされる。
【0062】本発明の一実施例では、図2のひし形51
は、図3のひし形53と同じ方法で実現される。
【0063】Iビット164は、割込みのネスティング
を制御する一つの方法として使用される。Iビット16
4がアサートされると(図に示す実施例では論理レベル
1)、割込みがマスクされてつぎつぎに割込みをできな
くなる。Iビット164がニゲート(図に示した実施例
で論理レベル0)されると、割込みはアンマスクにな
り、つぎつぎに割込みをできる。本発明は、割込みがア
ンマスクであるか否かを決定するのにIビット164を
使用するが(ひし形51,53を参照)、Iビット16
4は、現在のMC68HC11マイクロプロセッサ・フ
ァミリーと同じ方法でアサートされニゲートされる。
【0064】図に示した本発明の実施例では、Iビット
164が引き続き設定される場合には、切迫している割
込みが、現在の割込みに割り込むことは阻止される。こ
のため現在の割込みが完了してから、次の割込みを受け
入れて処理を開始することができる。このため各割込み
サービス・ルーチンは、RTI命令とは独立してレジス
タのスタッキングおよびアンスタッキングを実行する必
要はない。
【0065】しかしながらIビット164がクリア状態
を続ける場合には、切迫している割込みが現在の割込み
に割り込むのは阻止されない。このため現在の割込みが
完了しない内に、次の割込みが受け入れられて処理が開
始されることもある。このため各割込みサービス・ルー
チンは、RTI命令とは独立してレジスタのスタッキン
グおよびアンスタッキングを実行する必要があるかもし
れない。このためIビット164がクリアされている場
合には、本発明によるスタッキングおよびアンスタッキ
ング時間の節約は達成できない。
【0066】割込み論理174は、条件コード・レジス
タ157から割込みマスク・ビット(Iビット)164
を受け取り、このIビット164を使用して、割込みが
アンマスクか否かを決定する。割込みがマスクされてい
るか決定するために割込み論理174が用いる方式は、
現在のMC68HC11マイクロプロセッサ・ファミリ
ーが使用する方式と同じで、当業者には周知のものであ
る。
【0067】図6のモード・ビット162は、データ処
理システム100が第1モードであるか第2モードであ
るかを決定するために使用される。データ処理システム
100が第1モードの場合には、割込み処理中のスタッ
キングおよびアンスタッキングは、現在のMC68HC
11マイクロプロセッサ・ファミリーと同じように発生
する。すなわち、図1に示すのと同じやり方である。デ
ータ処理システム100が第2モードの場合には、割込
み処理中のレジスタのスタッキングおよびアンスタッキ
ングは、本発明に従って発生する。すなわち、図2およ
び図3に示したのと同じやり方である。
【0068】現在のMC68HC11マイクロプロセッ
サ・ファミリーで使用されるXビット(図示せず)もま
た、条件コード・レジスタ157内に位置する。Xビッ
トの機能性は本発明によって影響を受けない。
【0069】要約すれば、上記仕様はデータ処理システ
ム100におけるレジスタのスタッキングおよびアンス
タッキングの問題に対するより時間効率の高い解決策を
示したものである。本発明は、データ処理システム10
0が第1の割込みの割込み処理を完了し、その直後に処
理しなければならない第2割込みを有する場合に、大幅
に時間を節約する。
【0070】現在のMC68HC11マイクロプロセッ
サ・ファミリーでは、割込みからの戻り(RTI)命令
によって、スタック・ポインタ・レジスタ161を除く
すべてのレジスタがアンスタックされる。ついで第2割
込みが切迫していてこれを処理すべきであるとマイクロ
プロセッサが決定した後、同じレジスタ(154〜15
8)が再スタックされる。本発明は、このような冗長な
アンスタッキングおよびスタッキングを排除する。
【0071】RTI命令中にレジスタをアンスタッキン
グして、次の割込みが行われる場合に単純に同じレジス
タを再スタッキングする代わりに、本発明では、スタッ
ク・ポインタの値を変更することによって、プログラム
・カウンタ・レジスタ158のアンスタッキング、およ
びレジスタ154〜158の再スタッキングを排除す
る。本発明は、スタックからレジスタ値を押し出して
も、スタックとして使用中のメモリ内に格納された値が
いずれも変化しないという事実を利用する。そのためレ
ジスタ154〜157(矩形41参照)のアンスタッキ
ングによっても、レジスタ154〜157の値が、スタ
ック(例:RAM114)として使用中のメモリ内にそ
のまま格納されているという事実は変化しない。
【0072】このため2つの割込みがその間に無割込み
処理を入れないで折り返し処理されるたびに、本発明
は、スタッキングまたはアンスタッキングなしに、スタ
ック・ポインタ値を調整することによって、大幅に時間
を節約する。
【0073】本発明は具体的な実施例を参照して説明し
てきたが、当業者はこの他にも変更および改良を行お
う。たとえば、本発明の別の実施例では、データ処理シ
ステム100はどのような種類のアーキテクチャでも使
用できる。図4に示すアーキテクチャは使用可能な一つ
のアーキテクチャに過ぎない。別の実施例では、データ
処理システム100はCPU102だけでもよく、また
は図4に示すよりも少なくても、または多くても、また
は異なる部分を有してもよい。同様に、図5で示すCP
U102、および図6に示す実行装置132の部分は別
の構造を使用してもよい。
【0074】対応するスタッキングまたはアンスタッキ
ング動作なしに、またユーザによる書き込みアクセスな
しに行う、スタック・ポインタの調整は、割込み以外の
他の状況でも使用できる。
【0075】したがって、本発明は図示した個々の形態
に限定されず、添付請求の範囲は、本発明の真正の意図
および範囲から逸脱しないすべての変形をカバーするこ
とを意図していることを理解されたい。
【図面の簡単な説明】
【図1】現在のMC68HC11マイクロプロセッサ・
ファミリーにおいて割込み処理中に実施される先行技術
のレジスタ・スタッキングおよびアンスタッキングを流
れ図で表したものである。
【図2】本発明の一実施例に基づくデータ処理システム
100において割込み処理中に実施されるレジスタ・ス
タッキングおよびアンスタッキングを流れ図で表したも
のである。
【図3】本発明の一実施例に基づくデータ処理システム
100において割込み処理中に実施されるレジスタ・ス
タッキングおよびアンスタッキングを流れ図で表したも
のである。
【図4】本発明の一実施例に基づくデータ処理システム
100をブロック図で示したものである。
【図5】本発明の一実施例に基づく図4の中央演算処理
装置(CPU)102をブロック図で示したものであ
る。
【図6】本発明の一実施例に基づく図5の実行装置13
2の一部をブロック図で示したものである。
【符号の説明】
5 流れのスタート・ポイント,再入点 7 割込みサービス・ルーチンにおいて割込みからの戻
り(RTI)命令の実行が完了する直後にあたる、流れ
の再入点 8 Cに戻る 10 無割込み処理を続ける 11 レジスタPC,Y,X,A,B,CCRをスタッ
クする 12 割込みベクトルを取り込む 13 割込みベクトルをPCにロードする 14 割込みサービス・ルーチンの実行を開始する 15 割込みからの戻り(RTI)命令の実行を開始す
る 16 レジスタPC,Y,X,A,B,CCRをアンス
タックする 20 割込みが切迫しているか? 21 その割込みはアンマスクであるか? 25 SP=$初期値 26 SP=$初期値−9 27 SP=$初期値 29 スタート・ポイント 30 Bに戻る 31 割込みサービス・ルーチンにおいて割込みからの
戻り(RTI)命令が実行を開始する直前にあたる、流
れのポイント 32 Aに戻る 33 Bに戻る 35 無割込み処理を続ける 36 レジスタPC,Y,X,A,B,CCRをスタッ
クする 37 第1割込みベクトルを取り込む 38 第1割込みベクトルをPCにロードする 39 第1割込みサービス・ルーチンの実行を開始する 40 割込みからの戻り(RTI)命令の実行を開始す
る 41 レジスタCCR,B,A,X,Y(PCを除く)
をアンスタックする 42 スタック・ポインタをSP=$初期値−9に調整
するが、スタッキングは行わない 43 次の割込みベクトルを取り込む 44 次の割込みベクトルをPCにロードする 45 次の割込みサービス・ルーチンを開始する 46 PCをアンスタックして無割込み処理に戻る 50 第1割込みが切迫しているか? 51 第1割込みがアンマスクであるか? 52 次の割込みが切迫しているか? 53 次の割込みがアンマスクであるか? 60 SP=$初期値 61 SP=$初期値−9 62 SP=$初期値−2 63 SP=$初期値−9 100 データ処理システム 102 CPU 104 システム・インテグレーション・セクション 106 読出し専用メモリ(ROM) 108 電気的に消去可能なプログラム可能読出し専用
メモリ(EEPROM) 110 パルス幅変調セクション 112 アナログ・デジタル変換器 114 ランダム・アクセス・メモリ(RAM) 116 逐次セクション 118 タイマ・セクション 120 バス 122,124,126,128,130 集積回路ピ
ン 132 実行装置 134 マイクロROMとその関連論理 136 命令パイプ・デコード論理 138 バス制御論理 140,141,142 バス回路 150 累算器Aレジスタ 152 累算器Bレジスタ 154 累算器Dレジスタ 155 インデックス・レジスタX 156 インデックス・レジスタY 157 条件コード・レジスタ 158 プログラム・カウンタ・レジスタ 159,160 バス 161 スタック・ポインタ・レジスタ 162 モード・ビット 164 割込みマスク・ビット(Iビット) 166 演算論理装置(ALU)とその関連論理回路 168 データ・バッファ 170 制御論理 172 スタッキングおよびアンスタッキング論理 174 割込み論理
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジェームス・エル・ブロセギーニ アメリカ合衆国テキサス州オースチン、フ ェンス・ライン6901

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 データ処理システム(100)において
    複数のレジスタ(154〜158)をアンスタッキング
    する方法であって: (A)前記複数のレジスタ(154〜157)の第1部
    分をアンスタッキングする段階; (B)第1割込みを受け付けるか否か決定する段階; (C)前記第1の割込みを受け付ける場合には、スタッ
    キングを実行せずにスタック・ポインタ値(161)を
    変更する段階;および、 (D)前記第1の割込みを受け付けない場合には、前記
    複数のレジスタの第2部分(158)をアンスタッキン
    グする段階;によって構成されることを特徴とする、デ
    ータ処理システム(100)において複数のレジスタ
    (154〜158)をアンスタッキングする方法。
  2. 【請求項2】 データ処理システム(100)を動作す
    る方法であって:命令をデコードする段階;および、 前記の命令デコード段階に応答して: 1)複数のレジスタ(154〜157)の第1部分をア
    ンスタッキングする段階; 2)第1割込みを受け付けるか否か決定する段階; 3)前記第1割込みを受け付ける場合には、スタッキン
    グを実行せずに、スタック・ポインタ値(161)を変
    更する段階;および、 4)前記第1割込みを受け付けない場合には、前記複数
    のレジスタの残りの部分(158)をアンスタッキング
    する段階;によって構成される段階を実行する段階;に
    よって構成されることを特徴とする、データ処理システ
    ム(100)を動作する方法。
  3. 【請求項3】 データ処理システム(100)において
    割込み処理中に複数のレジスタ(154〜158)をア
    ンスタッキングする方法であって: (A)第1割込みを受け付ける段階; (B)複数のレジスタ(154〜158)をスタッキン
    グする段階; (C)前記スタッキング段階(B)と同時に、スタック
    ・ポインタ値(161)を増分調整して、前記スタック
    ・ポインタ値(161)が、スタック内の次に使用可能
    な項目を指し示すようにし、前記スタック・ポインタ値
    (161)が、前記スタッキング段階(B)の開始前に
    初期スタック・ポインタ値を有し、また前記スタック・
    ポインタ値が、前記スタッキング段階(B)の完了後に
    第1スタック・ポインタ値(161)を有する段階; (D)第1割込みサービス・ルーチンの実行を開始する
    段階; (E)前記複数のレジスタ(154〜157)の第1部
    分をアンスタッキングする段階; (F)前記アンスタッキング段階(E)と同時に、前記
    スタック・ポインタ値(161)を増分調整して、前記
    スタック・ポインタ値(161)が前記スタック内の次
    に使用可能な項目を指し示すようにし、前記スタック・
    ポインタ値(161)が、前記アンスタッキング段階
    (E)の完了後に第2スタック・ポインタを有する段
    階; (G)第2割込みを受け付ける段階; (H)スタッキングを実行せずに、前記スタック・ポイ
    ンタ値(161)を前記第1スタック・ポインタ値に変
    更する段階;および、 (I)第2割込みサービス・ルーチンの実行を開始する
    段階;によって構成されることを特徴とする、データ処
    理システム(100)において割込み処理中に複数のレ
    ジスタ(154〜158)をアンスタッキングする方
    法。
  4. 【請求項4】 データ処理システム(100)であっ
    て:複数のレジスタ(154〜158);スタック・ポ
    インタ値を有するスタック・ポインタ・レジスタ(16
    1);前記複数のレジスタ(154〜158)および前
    記スタック・ポインタ(161)に結合されたメモリ・
    スタック(114);割込みを受け付けるか否か決定す
    るための割込み決定手段(174);および、 前記スタック・ポインタ値を選択的に変化させるための
    制御手段(170)であって、前記制御手段(170)
    は前記スタック・ポインタ・レジスタ(161)および
    前記割込み決定手段(174)に結合され、前記制御手
    段(170)は、前記割込み決定手段(174)が前記
    割込みを受け付ける場合には、スタッキングを実行せず
    に前記スタック・ポインタ値を変化させるところの、前
    記スタック・ポインタ値を選択的に変化させるための制
    御手段(170);によって構成されることを特徴とす
    る、データ処理システム(100)。
JP28214593A 1992-10-19 1993-10-18 データ処理システムにおいてレジスタをアンスタッキングする方法および装置 Expired - Lifetime JP3655930B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/962,560 US5640548A (en) 1992-10-19 1992-10-19 Method and apparatus for unstacking registers in a data processing system
US962560 1992-10-19

Publications (2)

Publication Number Publication Date
JPH06195230A true JPH06195230A (ja) 1994-07-15
JP3655930B2 JP3655930B2 (ja) 2005-06-02

Family

ID=25506069

Family Applications (1)

Application Number Title Priority Date Filing Date
JP28214593A Expired - Lifetime JP3655930B2 (ja) 1992-10-19 1993-10-18 データ処理システムにおいてレジスタをアンスタッキングする方法および装置

Country Status (4)

Country Link
US (1) US5640548A (ja)
EP (1) EP0594377B1 (ja)
JP (1) JP3655930B2 (ja)
DE (1) DE69325231T2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004514987A (ja) * 2000-11-27 2004-05-20 エイアールエム リミテッド リターンステートをセーブするためのデータ処理装置および方法
JP2007141240A (ja) * 2005-11-14 2007-06-07 Fujitsu Ltd コンピュータシステム及びコンピュータシステムにおけるインタラプトを処理するための方法

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19535546B4 (de) * 1995-09-25 2004-04-08 Siemens Ag Verfahren zum Betreiben eines durch ein Realzeit-Betriebssystem gesteuerten Realzeit-Computersystems
US5761491A (en) * 1996-04-15 1998-06-02 Motorola Inc. Data processing system and method for storing and restoring a stack pointer
JP2002014809A (ja) * 2000-06-28 2002-01-18 Mitsubishi Electric Corp マイクロプロセッサ並びにアセンブラ、その方法およびそのプログラムを記録した記録媒体
US8051235B1 (en) * 2005-11-11 2011-11-01 Ixys Ch Gmbh Conditional back-to-back interrupt vectoring

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4342082A (en) * 1977-01-13 1982-07-27 International Business Machines Corp. Program instruction mechanism for shortened recursive handling of interruptions
US4250546A (en) * 1978-07-31 1981-02-10 Motorola, Inc. Fast interrupt method
JPS57196357A (en) * 1981-05-29 1982-12-02 Toshiba Corp Data processor
US4488227A (en) * 1982-12-03 1984-12-11 Honeywell Information Systems Inc. Program counter stacking method and apparatus for nested subroutines and interrupts
US4628449A (en) * 1983-11-14 1986-12-09 Tandem Computers Incorporated Vector interrupt system and method
EP0153764B1 (en) * 1984-03-02 1993-11-03 Nec Corporation Information processor having an interruption operating function
JPH03225371A (ja) * 1990-01-31 1991-10-04 Tokyo Electric Co Ltd 電子写真装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004514987A (ja) * 2000-11-27 2004-05-20 エイアールエム リミテッド リターンステートをセーブするためのデータ処理装置および方法
JP2007141240A (ja) * 2005-11-14 2007-06-07 Fujitsu Ltd コンピュータシステム及びコンピュータシステムにおけるインタラプトを処理するための方法
JP4709728B2 (ja) * 2005-11-14 2011-06-22 富士通株式会社 コンピュータシステム及びコンピュータシステムにおけるインタラプトを処理するための方法

Also Published As

Publication number Publication date
EP0594377B1 (en) 1999-06-09
EP0594377A3 (en) 1994-09-28
DE69325231T2 (de) 2000-01-27
EP0594377A2 (en) 1994-04-27
DE69325231D1 (de) 1999-07-15
JP3655930B2 (ja) 2005-06-02
US5640548A (en) 1997-06-17

Similar Documents

Publication Publication Date Title
JP3679797B2 (ja) 単一のレジスタ・ファイルを使用して浮動小数点命令およびパック・データ命令を実行する方法および装置
EP1080422B1 (en) Software configurable technique for prioritizing interrupts in a microprocessor-based system
US20020161941A1 (en) System and method for efficiently performing a data transfer operation
KR20030072550A (ko) 데이터 처리장치와 복귀상태의 저장방법
JP3970609B2 (ja) プロセッサシステム
JPH06195230A (ja) データ処理システムにおいてレジスタをアンスタッキングする方法および装置
KR100817947B1 (ko) 인터럽트 서비스 방법 및 프로세서
EP0660229A1 (en) Method and apparatus for modifying the contents of a register
JP4334026B2 (ja) コンピュータシステム、およびその中でシステム管理割込を発生し処理するための方法
US7434223B2 (en) System and method for allowing a current context to change an event sensitivity of a future context
US6341344B1 (en) Apparatus and method for manipulating data for aligning the stack memory
JPS5826043B2 (ja) プロセツサのリセツト方式
JPS6236575B2 (ja)
US7124288B2 (en) Programmable unit with a stack buffer storage device configurable into discrete shadow storage elements accessible by a plurality of command execution units
JP2723847B2 (ja) マイクロプロセッサ
EP4193250B1 (en) Processing apparatus
US5778207A (en) Assisting operating-system interrupts using application-based processing
KR100654477B1 (ko) 프로세서 동작 방법
US5987559A (en) Data processor with protected non-maskable interrupt
JP2005275703A (ja) プロセッサ及びコンテキスト切り替え方法
JPH11134202A (ja) タスク切替え装置
JPH0477930A (ja) マイクロコンピュータ
JPS6149695B2 (ja)
JPH08166887A (ja) 割込み処理からの復帰方法
JPH0283779A (ja) ベクトル処理装置の命令実行制御方式

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040421

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040608

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20040927

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050301

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050307

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: 20080311

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20090311

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100311

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110311

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110311

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20120311

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20130311

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20140311

Year of fee payment: 9

EXPY Cancellation because of completion of term