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

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

Info

Publication number
JP3655930B2
JP3655930B2 JP28214593A JP28214593A JP3655930B2 JP 3655930 B2 JP3655930 B2 JP 3655930B2 JP 28214593 A JP28214593 A JP 28214593A JP 28214593 A JP28214593 A JP 28214593A JP 3655930 B2 JP3655930 B2 JP 3655930B2
Authority
JP
Japan
Prior art keywords
interrupt
stack pointer
registers
unstacking
stack
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 - Lifetime
Application number
JP28214593A
Other languages
English (en)
Other versions
JPH06195230A (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 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

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/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)

Description

【0001】
【産業上の利用分野】
本発明は一般にデータ処理システムに関し、具体的にはデータ処理システムにおいてレジスタをアンスタッキング(unstacking)する装置および方法に関する。
【0002】
【従来の技術】
今日多くのデータ処理システムは割込みを利用している。割込みはデータ処理システム分野では周知のものである。
【0003】
割込みの使用方法は多岐にわたっている。一般的な割込み使用方法の一つはマイクロプロセッサ・システムでのリアルタイム処理向けである。たとえばマイクロプロセッサ・システムでは、タイマは、特定の時間事象(time event)が発生したことを表示するために、中央演算処理装置(CPU)に割込み要求を送ることができる。割込みを受け取り、この割込みに基づいて動作すべきだと決定した後、CPUは通常の非割込み処理(non-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は流れの中のその表示されたポイントで実行される個々の動作を表す。ひし形20,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はデータ処理システム100において回路が行う決定もしくは動作を表さず、代わりに、流れ図内のその表示されたポイントにおけるスタック・ポインタの状態を表す。
【0030】
図3を参照すると、破線間の段階は、本発明の一実施例に従って、割込みからの戻り(RTI)命令の間に実行される諸段階である。
【0031】
図4は、データ処理システム100の一実施例を表す。データ処理システム100は中央演算処理装置(CPU)回路102,回路のシステム・インテグレーション・セクション104,読出し専用メモリ(ROM)回路106,電気的に消去可能なプログラム可能読出しメモリ(EEPROM)回路108,回路のパルス幅変調セクション110,アナログ・デジタル変換器回路112,ランダム・アクセス・メモリ(RAM)回路114,回路の逐次セクション116,および回路のタイマ・セクション118を有し、それぞれバス回路120に双方向に結合される。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,およびバス制御論理回路138を有し、それぞれ、バス回路140と双方向に結合される。バス140はCPU102内の各種の回路間で情報(例:制御,データおよびアドレス)を伝送するために使用される。また命令パイプ・デコード論理136は被デコード命令情報をバス回路141を介してマイクロROMとその関連論理134に転送する。バス回路142は、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,インデックス・レジスタ回路Y156,プログラム・カウンタ・レジスタ回路158,条件コード・レジスタ回路157,およびスタック・ポインタ・レジスタ回路161を有し、それぞれバス159およびバス160と双方向に結合される。条件コード・レジスタ回路157はモード・ビット162および割込みマスク・ビット(Iビット)164を有する。
【0035】
本発明の一実施例では、累算器Aレジスタ150,累算器Bレジスタ152および条件コード・レジスタ回路157はそれぞれ長さ1バイトである。累算器Dレジスタ154,インデックス・レジスタX155,インデックス・レジスタY156,プログラム・カウンタ・レジスタ158およびスタック・ポインタ・レジスタ161はそれぞれ長さ2バイトである。本発明の代替的実施例では、任意の数のレジスタが存在してよく、各レジスタの長さは任意の数のバイトでよい。演算論理装置(ALU)とその関連論理回路166はバス159から入力を受け取り、バス160から入力を受け取って、出力を生成し、この出力はバス160に転送される。データ・バッファ回路168はバス140,159,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】
注意すべきことは、ポインタ・レジスタ161がスタックされないことである。またもう一つ注意すべきことは、累算器Dレジスタ154は、累算器Bレジスタ152と連結された累算器Aレジスタ回路150と同じであることである。このため、累算器Aレジスタ150と累算器Bレジスタ152の両方をスタックするスタッキング動作は、累算器Dレジスタ154をスタックするスタッキング動作に匹敵する。
【0040】
また本発明は現在のMC68HC11マイクロプロセッサ・ファミリーとのソフトウェア互換性がなくてはならない。そのため、割込みからの戻り(RTI)など以前定義された命令によって実行される段階に変化が生じても、既存のソフトウェア・ルーチンに障害を起こしてはならない。すなわち、以前定義された命令によって実行される段階に生じる変化は、ユーザに見えるものでなくてはならない。本発明は割込み中の処理時間を大幅に節約するのみならず、現在のMC68HC11マイクロプロセッサ・ファミリーとのソフトウェア互換性をも維持する。
【0041】
本発明は、データ処理システム100によって逐次割込みを処理する方法に変更を加える。また割込み処理の間および割込みからの戻り(RTI)の間に実行される諸段階に変更を加えている。
【0042】
図1を参照すると、現在のMC68HC11マイクロプロセッサ・ファミリーでは、後続の割込みが次に処理されるか否かには関係なく、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命令は常にレジスタ154〜157(矩形41を参照)をアンスタックするが、図1の流れと違って、プログラム・カウンタ・レジスタ158はアンスタックしても、アンスタックしなくてもよい。さらに割込みを行わない場合(すなわち、ひし形52またはひし形53で「いいえ」を選択すると)、流れは、スタック上に残っている一つのレジスタであるプログラム・カウンタ・レジスタ158をアンスタックして、無割込み処理に戻る(矩形46,円32および円29参照)。
【0048】
しかしながらさらに割込みを行う場合(すなわち、ひし形52,53から「はい」をたどると)、スタック・ポインタは調整されるが、スタッキングは実行されない。この点がキー・ポイントである。レジスタ値をスタックにプッシュすることによって、そのレジスタ値は、スタックとして使用中のメモリ内のその場所にあったいかなる値の上にも上書きされる。しかしながらレジスタ値をスタックから押し出しても、スタックとして使用中のメモリ内に格納されている値はいずれも変化しない。このためレジスタ154〜157(矩形41参照)をアンスタッキングしても、レジスタ154〜157からの値は、スタックとして使用中のメモリ(例、RAM114)内にそのまま格納されているという事実は変化しない。しかしながらアンスタッキング動作によって、スタック・ポインタは増分調整され、その時点でプログラム・カウンタ・レジスタ158を示すようになる。このレジスタはまだアンスタックされていない唯一のレジスタである。
【0049】
スタック・ポインタを調整する量を適切にすれば(矩形42参照)、レジスタ154〜157の値は、スタックとして使用中のメモリ内にそのまま物理的に存在するので、実際にレジスタ154〜157を再スタックする必要はない。このためレジスタ154〜157を再スタックするスタッキング動作は常に、対応するスタック場所のそれぞれに全く同じレジスタ値を上書きする効果しか持たない。しかしながらスタッキング動作にはスタック・ポインタを増分調整する効果も有する。
【0050】
本発明は、すぐにもう一つの割込みを行う場合に、プログラム・カウンタ・レジスタ158をアンスタッキングする必要性、およびレジスタ154〜157を再スタッキングする必要性を回避する。レジスタ154〜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を同じ初期状態に常に戻す効果を有する。これは、現在のMC68HC11マイクロプロセッサ・ファミリーとのソフトウェア互換性を確保する上で役立つ。
【0057】
図3のひし形52は、次の割込みが切迫しているか否か決定するもので、多岐に渡る方法で実現できる。本発明の一つの実施例では、割込み論理174(図6)が、割込みが切迫しているか否かを決定する。割込み論理174は、バス140から受信中の一つまたは複数の特定の信号をモニターする。本発明の一実施例では、割込みソースは、バス120またはバス122の適切な信号をアサートすることによって、割込みを要求できる。割込みソースは、データ処理システム100内の図に示したどの部分に置いてもよく、またはデータ処理システム100の外部に位置してもよい。ついで割込み論理174はバス142,バス140およびバス160を介してこの信号を受信して、割込みが要求されているか否か、それが充分に高い優先順位であるかを決定する。
【0058】
本発明の一実施例では、図2のひし形50は、図3のひし形52と同じ方法で実現される。
【0059】
また本発明の一部の実施例では、ソフトウェア割込み(SWI)などの命令が割込みを要求できる。ソフトウェア割込みの場合には、割込み論理174は命令パイプ・デコード論理136またはマイクロROMとその関連論理134によって、要求を受け取ることができる。注意すべきことは、本発明の一実施例では、ソフトウェア割込みは、SWI命令が実行されるまで、切迫する割込みと見なされないので、SWI命令はひし形52で「いいえ」をたどることである。
【0060】
割込みが切迫しているか否か決定するために割込み論理174が用いる方式は、現在のMC68HC11マイクロプロセッサ・ファミリーで使用されている方式と同じで、これはこの分野では周知のものである。同様に注意すべきことは、割込み優先順位を決定するために割込み論理174が使用する方式も、現在のMC68HC11マイクロプロセッサ・ファミリーと同じであって、この分野では周知のものであることである。
【0061】
図3のひし形53は、次の割込みがアンマスクであるか否かを決定するもので、多岐に渡る方法で実現できる。割込みが「マスク状態」の場合には、割込みは当該時間ポイントでは処理されない。しかしながら割込みはこのまま保留を続けることもできるし、「アンマスク」状態になる将来の時間ポイントで処理することもできる。割込みが「アンマスク」すなわち「マスクされていない」場合には、割込みが処理される。本発明の一実施例では、割込みがアンマスクであるか否かを決定するために、条件コード・レジスタ157に位置する割込みマスク・ビット(Iビット)164が使用される。現在のMC68HC11マイクロプロセッサ・ファミリーでもそうだが、一定の割込みだけがマスクされる。
【0062】
本発明の一実施例では、図2のひし形51は、図3のひし形53と同じ方法で実現される。
【0063】
Iビット164は、割込みのネスティングを制御する一つの方法として使用される。Iビット164がアサートされると(図に示す実施例では論理レベル1)、割込みがマスクされてつぎつぎに割込みをできなくなる。Iビット164がニゲート(図に示した実施例で論理レベル0)されると、割込みはアンマスクになり、つぎつぎに割込みをできる。本発明は、割込みがアンマスクであるか否かを決定するのにIビット164を使用するが(ひし形51,53を参照)、Iビット164は、現在の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モードの場合には、割込み処理中のスタッキングおよびアンスタッキングは、現在のMC68HC11マイクロプロセッサ・ファミリーと同じように発生する。すなわち、図1に示すのと同じやり方である。データ処理システム100が第2モードの場合には、割込み処理中のレジスタのスタッキングおよびアンスタッキングは、本発明に従って発生する。すなわち、図2および図3に示したのと同じやり方である。
【0068】
現在のMC68HC11マイクロプロセッサ・ファミリーで使用されるXビット(図示せず)もまた、条件コード・レジスタ157内に位置する。Xビットの機能性は本発明によって影響を受けない。
【0069】
要約すれば、上記仕様はデータ処理システム100におけるレジスタのスタッキングおよびアンスタッキングの問題に対するより時間効率の高い解決策を示したものである。本発明は、データ処理システム100が第1の割込みの割込み処理を完了し、その直後に処理しなければならない第2割込みを有する場合に、大幅に時間を節約する。
【0070】
現在のMC68HC11マイクロプロセッサ・ファミリーでは、割込みからの戻り(RTI)命令によって、スタック・ポインタ・レジスタ161を除くすべてのレジスタがアンスタックされる。ついで第2割込みが切迫していてこれを処理すべきであるとマイクロプロセッサが決定した後、同じレジスタ(154〜158)が再スタックされる。本発明は、このような冗長なアンスタッキングおよびスタッキングを排除する。
【0071】
RTI命令中にレジスタをアンスタッキングして、次の割込みが行われる場合に単純に同じレジスタを再スタッキングする代わりに、本発明では、スタック・ポインタの値を変更することによって、プログラム・カウンタ・レジスタ158のアンスタッキング、およびレジスタ154〜158の再スタッキングを排除する。本発明は、スタックからレジスタ値を押し出しても、スタックとして使用中のメモリ内に格納された値がいずれも変化しないという事実を利用する。そのためレジスタ154〜157(矩形41参照)のアンスタッキングによっても、レジスタ154〜157の値が、スタック(例:RAM114)として使用中のメモリ内にそのまま格納されているという事実は変化しない。
【0072】
このため2つの割込みがその間に無割込み処理を入れないで折り返し処理されるたびに、本発明は、スタッキングまたはアンスタッキングなしに、スタック・ポインタ値を調整することによって、大幅に時間を節約する。
【0073】
本発明は具体的な実施例を参照して説明してきたが、当業者はこの他にも変更および改良を行おう。たとえば、本発明の別の実施例では、データ処理システム100はどのような種類のアーキテクチャでも使用できる。図4に示すアーキテクチャは使用可能な一つのアーキテクチャに過ぎない。別の実施例では、データ処理システム100はCPU102だけでもよく、または図4に示すよりも少なくても、または多くても、または異なる部分を有してもよい。同様に、図5で示すCPU102、および図6に示す実行装置132の部分は別の構造を使用してもよい。
【0074】
対応するスタッキングまたはアンスタッキング動作なしに、またユーザによる書き込みアクセスなしに行う、スタック・ポインタの調整は、割込み以外の他の状況でも使用できる。
【0075】
したがって、本発明は図示した個々の形態に限定されず、添付請求の範囲は、本発明の真正の意図および範囲から逸脱しないすべての変形をカバーすることを意図していることを理解されたい。
【図面の簡単な説明】
【図1】現在のMC68HC11マイクロプロセッサ・ファミリーにおいて割込み処理中に実施される先行技術のレジスタ・スタッキングおよびアンスタッキングを流れ図で表したものである。
【図2】本発明の一実施例に基づくデータ処理システム100において割込み処理中に実施されるレジスタ・スタッキングおよびアンスタッキングを流れ図で表したものである。
【図3】本発明の一実施例に基づくデータ処理システム100において割込み処理中に実施されるレジスタ・スタッキングおよびアンスタッキングを流れ図で表したものである。
【図4】本発明の一実施例に基づくデータ処理システム100をブロック図で示したものである。
【図5】本発明の一実施例に基づく図4の中央演算処理装置(CPU)102をブロック図で示したものである。
【図6】本発明の一実施例に基づく図5の実行装置132の一部をブロック図で示したものである。
【符号の説明】
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 割込み論理

Claims (4)

  1. データ処理システム(100)において複数のレジスタ(154〜158)をアンスタッキングする方法であって:
    (A)前記複数のレジスタ(154〜157)の第1部分をアンスタッキングする段階;
    (B)第1割込みを受け付けるか否か決定する段階;
    (C)前記第1の割込みを受け付ける場合には、スタッキングを実行せずにスタック・ポインタ値(161)を変更する段階;および、
    (D)前記第1の割込みを受け付けない場合には、前記複数のレジスタの第2部分(158)をアンスタッキングする段階;
    によって構成されることを特徴とする、データ処理システム(100)において複数のレジスタ(154〜158)をアンスタッキングする方法。
  2. データ処理システム(100)を動作する方法であって:
    命令をデコードする段階;および、
    前記の命令デコード段階に応答して:
    1)複数のレジスタ(154〜157)の第1部分をアンスタッキングする段階;
    2)第1割込みを受け付けるか否か決定する段階;
    3)前記第1割込みを受け付ける場合には、スタッキングを実行せずに、スタック・ポインタ値(161)を変更する段階;および、
    4)前記第1割込みを受け付けない場合には、前記複数のレジスタの残りの部分(158)をアンスタッキングする段階;
    によって構成される段階を実行する段階;
    によって構成されることを特徴とする、データ処理システム(100)を動作する方法。
  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. データ処理システム(100)であって:
    複数のレジスタ(154〜158);
    スタック・ポインタ値を有するスタック・ポインタ・レジスタ(161);
    前記複数のレジスタ(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 JPH06195230A (ja) 1994-07-15
JP3655930B2 true 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)

Families Citing this family (6)

* 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 マイクロプロセッサ並びにアセンブラ、その方法およびそのプログラムを記録した記録媒体
GB2369464B (en) * 2000-11-27 2005-01-05 Advanced Risc Mach Ltd A data processing apparatus and method for saving return state
US8051235B1 (en) * 2005-11-11 2011-11-01 Ixys Ch Gmbh Conditional back-to-back interrupt vectoring
US7433986B2 (en) * 2005-11-14 2008-10-07 Fujitsu Limited Minimizing ISR latency and overhead

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 電子写真装置

Also Published As

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

Similar Documents

Publication Publication Date Title
EP1080422B1 (en) Software configurable technique for prioritizing interrupts in a microprocessor-based system
JP3679797B2 (ja) 単一のレジスタ・ファイルを使用して浮動小数点命令およびパック・データ命令を実行する方法および装置
US4274138A (en) Stored program control system with switching between instruction word systems
KR20030072550A (ko) 데이터 처리장치와 복귀상태의 저장방법
US6088787A (en) Enhanced program counter stack for multi-tasking central processing unit
US6356998B2 (en) Method for the management of interrupts in a microprocessor
JP3970609B2 (ja) プロセッサシステム
JP3655930B2 (ja) データ処理システムにおいてレジスタをアンスタッキングする方法および装置
US6732198B1 (en) Methods and apparatus for saving and restoring scatter/gather list processing context in intelligent controllers
US5343557A (en) Workstation controller with full screen write mode and partial screen write mode
EP0267974B1 (en) Control interface for transferring data between a data processing unit and input/output devices
JP2003507815A (ja) 保存及び戻りフラグを具備する割込みのサービス
EP0660229A1 (en) Method and apparatus for modifying the contents of a register
US20040093439A1 (en) Data processing control apparatus and DMA controller
JPS5826043B2 (ja) プロセツサのリセツト方式
JP2723847B2 (ja) マイクロプロセッサ
JPH0721045A (ja) 情報処理システム
KR100654477B1 (ko) 프로세서 동작 방법
JPH0736806A (ja) Dma方式
JPH0477930A (ja) マイクロコンピュータ
JPH04358227A (ja) マイクロプロセッサ
JPS6048563A (ja) チャネル制御方式
JP2001166918A (ja) プロセッサシステム
JPH11134202A (ja) タスク切替え装置
JP2000010908A (ja) Dmaコントローラ

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