JPS62262146A - 処理装置 - Google Patents

処理装置

Info

Publication number
JPS62262146A
JPS62262146A JP61104619A JP10461986A JPS62262146A JP S62262146 A JPS62262146 A JP S62262146A JP 61104619 A JP61104619 A JP 61104619A JP 10461986 A JP10461986 A JP 10461986A JP S62262146 A JPS62262146 A JP S62262146A
Authority
JP
Japan
Prior art keywords
register
registers
mpu
main memory
general
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP61104619A
Other languages
English (en)
Inventor
Shigeru Shibukawa
渋川 滋
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP61104619A priority Critical patent/JPS62262146A/ja
Publication of JPS62262146A publication Critical patent/JPS62262146A/ja
Pending 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/461Saving or restoring of program or task context
    • G06F9/462Saving or restoring of program or task context with multiple register sets

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)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は汎用処理袋ff1f(以下MPUと略称する)
内部に複数の多目的レジスタを有する処理装置に係りl
MPU内部にそのレジスタを退避、復帰可能なテンポラ
リレジスタ群を設置し処理中断、再開時のレジスタ退避
、復帰を高速に実行可能な処理装置に関する。
〔従来の技術〕
従来、この種の処理装置の典形的な例としてモラ トロータ社製、16ビツトMPU MC6810が知ら
れている0本処理装置はデータレジスタを32ピット×
8.アドレスレジスタを32ビツト×8、その他フント
ロiルレジスタを備え、データ、アドレスレジスタ合計
で64バイト分のレジスタが内蔵されている。第6図に
当該処理装置も含め一般的な構成の例を示す、主記憶内
に収納されている。
プログラムを読出しその前会を実行し、次の前会を読出
し・・・・・・の様にプログラムに従って処理を実行し
ていくものである。第4図は、サブルーチンコールの動
作を示したもので、1のルーチンを実行中に2により4
よりの処理実行の要求が発生した場合、一般的には、2
つの要求が発生(MPUで受付けられた時点)で次の実
行する命令のアドレス3と、MPU内のステータスレジ
スタを保存。
一般的にはスタックポインタの示す主記憶に記憶し、4
の先頭にジャンプし4よりの処理を実行する。4の処理
の最後にはリターンサブルーチン等の命令となっている
。この命令はスタックポインタの内容をMPU内部レジ
スタに戻す処理を行う。
すなわち、次の実行する命令のアドレスユニでは3、又
2で実行していたスティタスレジスタの内容、これらが
PC(プログラムカウンタ)、SR(ステータスレジス
タ)に戻され、3よりの実行が再開(継続)される。
〔発明が解決しようとする問題点〕
最新のMPUアーキテクチャは、処理するデータ長とM
PU内部に多数の汎用レジスターを備えていることが、
大きな特徴の一つである。
これは、高水準言語を効率よく、コンパイルタ、実行、
最新のプログラミング技法を容易にするために実施され
ている。それは、多数の汎用レジスタをプログラムの変
数等に使用することにより、LS I、又はPMU内部
設置レジスタの高速性の特長を生かして、演算性能向上
に大きく貢献している。したがって新しく開発される最
新のMPUの多くは、ますます内部汎用レジスタの本数
増加データ長の増加の傾向にある。しかしこのMPU内
レジスタ数の増加は処理の変化1例えばリアルタイム処
理使用時のイベント応答、又はサブルーチンコール等の
プログラムの流れが変化する(プログラムスイッチ)処
理に対しては、ディメリットとして作用する。すなわち
、再起動されたプログラムは、そのプログラム自身がM
PU内の多数の汎用レジスタを最大限に利用して、プロ
グラムを作成する。又高水準言語であれば、レジスタ類
の使用はプログラムでまったく意識する必要がないのが
一般的である。したがって、違うプログラムが起動され
る毎に、基本的には、MPU内部レジスタの全数を保存
しておき、再実行時に前の状態に復帰する必要がある。
このため、この退避、復帰の機能(前実行していたプロ
グラムに戻れる)としてスタック機能が採用される。ス
タック機構とは、MPU内部のスタックポインタを使用
し記憶対象を主記憶とした、L I F OLa5t−
In First−Outである。すなわちPC(プロ
グラムカウンタ)。
SR(ステータスレジスタ)、各種コントロールレジス
タ、汎用レジスタ類を、スタックポインタの示す主記憶
アドレスに記憶する(これをブツシュと呼す)、該処理
が実行後、状態を以上に戻すタメ、退避したデータ類を
復帰する(これ、をポツプと呼す)ことを実行している
。この場合、ブツシュ、ポツプはMPU内部のデータを
主記憶にライト又はリードの動作となり、主記憶の性能
(アクセスタイム、サイクルタイム)が退避するデータ
量に比例し、オーバヘッド時間として増加する。
外部イベントやサブルーチン等のプログラムを使用しな
い、処理内容であれば、高性能を示すが。
実使用、特にリアルタイム処理の様にイベントの発生に
よるプログラムスイッチが頻繁に発生し、そのレスポン
スタイムが問題となる分野においては、多数の汎用レジ
スタの設置が障害となる。
本発明の目的は多数の汎用レジスタを使用しても、プロ
グラムスイッチ時等に処理性能を低下させないことにあ
る。
〔問題点を解決するための手段〕
上記の目的はMPU内部の汎用レジスタ群を複数個設置
とプログラムのネスティングをコントロールするネステ
コントロールレジスタを設置することにより達成される
ネスティングとは第4図に示すように、プログラムの流
れを中断し、必要とする処理を実行し、゛i処理の実行
後、以前に実行していた処理に復帰し中断されていた処
理を再開することで、1のルーチンより4のルーチンに
実行の流れを変えることを1段のネスティングと一般的
に称す、したがって本発明は本来ならMPU内部に、汎
用レジスタ群を無限数設置すれば、速度(プログラムス
イッチ)に関して最大の効果が期待できる。これは不可
能に近い、一般的なプログラムにおいて、割込処理のネ
スティング数はサブルーチンコール時のネスティング数
よりも少ないと言われ、後者も2〜3段が一般的で、最
大でも10を越えることはない、したがって2段程度の
ネスティングを高速に実行できれば処理全体を低下させ
ることはな塾1゜ 〔実施例〕 第1図に本発明の実施例を示す。
第1図はMPU内部のデータ処理部の構成を示したもの
で、前項より述べているように、1の内部レジスタが多
数設置されていることが特長であり、又その語長が32
ビツト、あるいは、64ビツト巾で、MPUの種類にも
よるが、最大で。
64ケ位まで実装されているものまである。またこれか
らますます増加していく傾向にある。
2は、そのMPUのアーキテクチャに特機な特殊なコト
ロールレジスタ等である。3は、命令の実行アドレスを
示す、プログラムカウンタ、演算結果やモード等を表示
、制御する。スティタスレジスタである。一般的には、
このプログラムカウンタとスティタスレジスタは、どの
MPUにも共通であり欠かかすことはできないものであ
る。
MPUの動作は、3PC(プログラムカウンタ、命令の
アドレスを示す)の示すアドレスを13゜アドレスバス
制御回路より出力し、そのアドレスの内容を、12デ一
タバス制御回路により主記憶より読み出す、その命令に
より11の演算制御回路が動作し、命令を実行する。そ
の他に演算制御回路は命令の読み出し、実行を含め、M
PU内のすべての動作を制御する。内部データの転送は
、アドレス情報、演算データも含め10のMPU内部バ
スを介して行なわれる。命令の実行は、1のMPU内部
レジスタ間の演算もあるし、内部レジスタ外部主記憶、
外部主記憶間もある。この演算結果は3:スティタスレ
ジスタに反映される0次にその命令が完了すると、PC
の内容が増加し、次の命令のアドレスを示し、その命令
を主記憶より読み出す、このようにし、主記憶上の命令
が次々と実行されていく。
この動作を第2図で説明すると1:通常処理は、命令フ
ェッチがPCの内容を主記憶より読み出す、命令実行は
、フェッチした命令を実行し、結果をスティタスレジス
タ等に報告される。
例外処理はプログラム実行の流れが変化する場合を示す
、すなわち、プログラムカウンタが次の命令のアドレス
以外を示すことである。この場合1の通常処理内のイベ
ント判定、検出が、プログラムの変化を示し、第4図の
1のルーチンから、4のルーチンへのジャンプ等となる
MPUの動作は第4図の1のルーチンを実行時PCは値
を増加し次々と命令を順序よく実行する2のイベント例
は、サブルーチンコールや例外処理を実行する場合、第
1図の11.演算制御回路がその結果により、3のPC
の値を強制的に変化し必要ルーチンへ実行を移動する。
この場合、第4図において1のルーチンでは、第1図の
1、MPU内部レジスタを無制限に使用しており、第4
図、4のルーチンもまた。MPU内部レジスタの使用を
制限することは不可能である。したがって、4のルーチ
ンの実行前に1:のM P U内部レジスタを退避する
必要がある。このMPU内部レジスタの退避に関して第
1図の4ネストコントロールレジスタよりそのネスト回
数(内部テンポラリレジスタの使用)を計数し、テンポ
ラリレジスタ群の使用回数を制御する。
第1図、1のM、PU内部レジスタはすべてのレジスタ
が演算の対象として動作し、レジスターレジシスタ、レ
ジスタ←→主記憶の演算が可能であり結果がスティタス
レジスタに反映される。
9:テンポラリレジスタ群とは、演算命令の対象として
動作することはなく、ただの、レジスタを示すすなわち
、MPU内部レジスタのコピーとしてデータを一時記憶
するために使用する。リード、ライト可能レジスタであ
る0次に第5図と第2図、サブルーチンコール又は割込
み時のMPU内勤作、第3図に復帰(リターン命令)の
動作を使用し、プログラムのネスティングの動作を示す
第5図の1のルーチンをプログラムが実行していると、
2のイベントにより、4のプログラムへの処理変更要求
が発生する。この場合処理装置は4にジャンプするため
の準備を実行する。すなわち、3に戻る処理、3のアド
レスを示すプログラムカヤタのコピーと、2のイベント
印加時点の演算結果収納レジスタ、ステータスレジスタ
のコピーを作成する。一般的なMPUであればこの場合
、イベント又はサブルーチンコール命令の実行により該
当ジャンプ先アドレスを計算し、前記の2つのレジスタ
の内容をスタックレジスタの示す主記憶に格納し、スタ
ックポインタを収納アドレス分移動し、第5図の4の先
頭アドレスにジャンプする。
しかし、この場合、4の先頭アドレスよりの命令の実行
について、第1図に示す、1のMPU内部レジスタの退
避は行なわれて台らず、第5図の4の先頭よりのルーチ
ンで内部レジスタを使用するのであれば、ルーチン1で
使用していた。レジスタ類の保存を行なわなければなら
ない、この様に内部に複数の汎用レジスタを、多数有す
るMPUは、一般的に、この内部レジスタの、退避、復
帰の命令を有している。すなわちそれらの手法は。
スタックポインタの示す主記憶上のアドレスに。
内部レジスタの全数、あるいは指定するレジスタを以前
に退避した。PC,SRの次に、退避するものである。
当然、多数の内部レジスタがあって。
そのプログラムの作成を高水準言語で行なえば。
内部レジスタの使用等を、プログラムは、知ることも出
来ない、したがって、プログラムの流れが変化するたび
に、内部レジスタは全数退避しないと、完全な処理は実
行不可能となる。
このことは内部レジスタを、64ケ、32ビツト巾を有
するMPUを例にとってみれば、システムバス巾を16
ビツトの場合、64X2=128ワード(1ワード=1
6ビツト)のデータの転送を意味し、仮に1ワード、1
μs  (10−’5EC)の動作の主記憶であれば、
128μ5X2=256μs(退避と復帰)が最低必ず
オーバーヘッドとして発生する。すなわち、内部レジス
タの退避は必ず主記憶の動作が伴い、これがオーバーヘ
ッド時間の大きな要因である。
第5図によれば、4’、6.8にて128μsの退避動
作、9,7.5にて128μsの復帰動作が必要となる
。もちろんSR,PCの退避、復帰時間もこの時間に加
算される。
本発明は第11!lに示すように、9のテンポラリレジ
スタ群、1:内部汎用レジスタのコピーx2と4、ネス
トコントロールレジスタを設置することによる。この方
式によれば、第51i!Iについて。
1のルーチン実行中に2の4に変化のイベントが発生す
ると、第2図にお序痛、実行中の命令の終了直後、イベ
ントの有無検出(サブルーチンコールを広義のイベント
ととする)でイベントであれば、PC,SRをコピー、
スクッキングする0次にネストコントロールレジスタの
内容を調べる。
ネストコントロールレジスタはMPU内部に設置した汎
用レジスタのコピー(テンポラリレジスタ)の指示を制
御を行うもので、2のイベント時、MPU内部のテンポ
ラリレジスタは未使用で“0″となっている。ここでは
当然、第5図の1のルーチンで使用していた、汎用レジ
スタのすべてが。
第1図、5のテンポラリレジスタ(コピー1)に転送さ
九る。この動作は主記憶の動作を必要とせずMPU内部
で実行可能であり、MPU動作クロックに近い速度が終
了が可能である。仮に10M Hzのクロックで動作し
ていたとして1クロツクでレジスタの転送が実行可能と
して1クロツク100μsで64ケのレジスタは64X
0.1μs=6.4μs で転送が終了する。このこと
は単純に計算しても主記憶を使用した場合の約20倍の
速度となる。
第2図のテンポラリレジスタコピーが終了するとネスト
コントロールレジスタの値を+1し、イベントアドレス
計算を実行し、第5図の4にジャンプする。すると4よ
りの実行ルーチンでは、汎用レジスタの内容すべてが退
避されているため、内部レジスタのすべてが使用可能と
なる。
次に第5図において4のルーチンより6のルーチンに変
更要求が発生すると、2の動作と同じ動作が実行される
。この場合MPU内部のテンポラリレジスタ(この場合
2)が1つ空であり、第2図の内部レジスタコピーテン
ボラリレジスタコビーが実行されネストコントロールレ
ジスタが+1される0次に第5図において6のルーチン
より8のルーチンに再度変更要求が発生すると、今回は
MPU内部のテンポラリレジスタが2ケともデータが退
避されており、内部レジスタの内容はスタックポインタ
の示す主記憶に退避される。このようにして、2段のネ
スティングまでは通常の主記憶を使用した退避法の約数
10倍の速度で処理が実行される。
次に復帰の場合は第5図において8のルーチンの実行が
終了し9においてリターン命令が実行される。リターン
命令は一般的にサブルーチンコール命令等と対をなす命
令で、サブルーチンコール命令でSR,PCをスタック
に退避したならば、そのSRとPCをMPU内部に戻し
、スタックレジスタのアドレスを変更し退避前のアドレ
スに変し、退避前の処理に戻すものである。
この場合はSR,PCの復帰に伴う多量の内部レジスタ
の復帰がある。すなわち、第5図の9からの復帰はMP
U内部テンポラリレジスタが満杯であり、主記憶に退避
されている。
これを第3図のリターン命令の例で示す0本命令が実行
されると最初にネストコントロールレジスタの内容を調
べ、2以上であれば、MPU内部のテンポラリレジスタ
が満杯であり、スタックポインタの示す、主記憶に汎用
レジスタの内容が退避されていることを示す、このため
動作は、スタックポインタの示す主記憶よりMPU内部
レジスタにデータを復帰し、ネストレジスタの値を−1
する0次にSRとPCを主記憶より復帰しMPU内部の
レジスタに復帰することにより、第5図の6のルーチン
に戻る。6のルーチンの最後の7にてまたリターン命令
が実行される。
今回のリターン命令は、ネストコントロールレジスタの
値が2未満であり、退避されたレジスタデータはMPU
内部のテンポラリレジスタに収納されていることを示し
ている。したがって動作は、退避と同様にMPU内部で
高速に復帰が実行され第5図の4のルーチン6にジャン
プした次の命令より実行が再開される。このようにして
、5のリターン命令で、1のルーチンの3に復帰するよ
うにネスティングの逆動作が実行されていく。
〔発明の効果〕
本発明によれば、プロクラム変更時のネスティング2段
まではMPU内部に多数の汎用レジスタを有する。処理
装置において、主記憶の動作速度とMPU内部動作の差
分、現在の技術で約10倍〜数10倍(今後ますます大
きくなる)の処理速度の改善効果がある。又ネストレジ
スタの値、スタックポインタの値、MPU内部テンポラ
リレジスタのアドレッシングを考慮することにより、プ
ログラムより、退避したレジスタの内のデータの加工等
処理が可能でもある。
すなわちMPU内に汎用レジスタコピー用テンポラリレ
ジスタ群とテンポラリレジスタをコントロールするネス
トコントロールレジスタ、設置により、プログラムスイ
ッチ動作によるオーバーヘッドを大巾に低減することが
可能となり処理装置全体の性能を大巾に向上することが
可能となる。
【図面の簡単な説明】
第1図に本発明の実施例の構成図を示す、第2図に本発
明のプログラムスイッチ時の動作フローの概略を示す、
第3図に本発明のプログラムスイッチ時よりの復帰のリ
ターン命令の概略フローを示す、第4図に一般的なプロ
グラムスイッチの動作を示す、第5図に本発明のネステ
ィング動作とレジスタ退避動作説明図を示す、第6図に
一般的な処理装置の概略構成図を示す。 0.、い□オフ4.1.1□°゛″し゛。 茅 1 日 7.プロ7ラムn?シク1ステー タスLリスタコe′−1 茅2 目 第3 固

Claims (1)

    【特許請求の範囲】
  1. 1、処理装置内部に複数個の多目的汎用レジスタを使用
    した汎用処理装置において、割込みやサブルーチンコー
    ル等のプログラムの流れが変化し該処理実行後復帰する
    処理の場合、汎用処理装置内部に内部レジスタ全数コピ
    ー用のテンポラリレジスタおよびこのテンポラリレジス
    タ群と内部レジスタの退避、復帰動作時の該レジスタ群
    の指定を制御するネストコントロールレジスタの設置し
    、プログラム状態変化時に内部レジスタの退避、復帰の
    動作をテンポラリレジスタ群の使用が可能なネスト分は
    主記憶を使用することなく汎用処理装置の内部レジスタ
    を使用し、テンポラリレジスタ群が満杯時のみ、主記憶
    を使用することを特徴とする処理装置。
JP61104619A 1986-05-09 1986-05-09 処理装置 Pending JPS62262146A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP61104619A JPS62262146A (ja) 1986-05-09 1986-05-09 処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP61104619A JPS62262146A (ja) 1986-05-09 1986-05-09 処理装置

Publications (1)

Publication Number Publication Date
JPS62262146A true JPS62262146A (ja) 1987-11-14

Family

ID=14385455

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61104619A Pending JPS62262146A (ja) 1986-05-09 1986-05-09 処理装置

Country Status (1)

Country Link
JP (1) JPS62262146A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01279330A (ja) * 1988-05-06 1989-11-09 Nec Corp エラー処理方式
US5701436A (en) * 1995-01-31 1997-12-23 Fujitsu Limited Information processing apparatus including synchronous storage having backup registers for storing the latest sets of information to enable state restoration after interruption
KR100327776B1 (ko) * 1994-05-03 2002-03-15 맥케이 데이비드 니겔 다중 명령세트를 사용하는 데이터 처리방법
USRE43248E1 (en) 1994-06-10 2012-03-13 Arm Limited Interoperability with multiple instruction sets
JP2019046138A (ja) * 2017-09-01 2019-03-22 株式会社エルイーテック 複数のレジスタ群を有するプロセッサ

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01279330A (ja) * 1988-05-06 1989-11-09 Nec Corp エラー処理方式
KR100327776B1 (ko) * 1994-05-03 2002-03-15 맥케이 데이비드 니겔 다중 명령세트를 사용하는 데이터 처리방법
USRE43248E1 (en) 1994-06-10 2012-03-13 Arm Limited Interoperability with multiple instruction sets
US5701436A (en) * 1995-01-31 1997-12-23 Fujitsu Limited Information processing apparatus including synchronous storage having backup registers for storing the latest sets of information to enable state restoration after interruption
JP2019046138A (ja) * 2017-09-01 2019-03-22 株式会社エルイーテック 複数のレジスタ群を有するプロセッサ

Similar Documents

Publication Publication Date Title
US5233691A (en) Register window system for reducing the need for overflow-write by prewriting registers to memory during times without bus contention
JP2883784B2 (ja) マイクロコンピュータ
EP0220682B1 (en) Data processing system
JPH07248897A (ja) コンピュータ・システムにおける例外からの回復方法、及びそのための装置
JPS62262146A (ja) 処理装置
US20030037227A1 (en) Processor enabling exception handling to be set by program
US4816992A (en) Method of operating a data processing system in response to an interrupt
JPH1196006A (ja) 情報処理装置
JPH0895798A (ja) データ処理装置
JPH0668725B2 (ja) データ処理システムにおける割込条件に応答する装置及び非同期割込条件に応答する方法
JP2671160B2 (ja) 例外処理方式
EP4193250B1 (en) Processing apparatus
JPS5826043B2 (ja) プロセツサのリセツト方式
US20050216708A1 (en) Processor for performing context switching, a method for performing context switching, a computer program for perform context switching
JPS60214044A (ja) マイクロコンピュ−タ
JPS6220032A (ja) 情報処理装置
EP0211487A1 (en) Conditional operations in computers
JPS61100836A (ja) 移動命令論理比較命令処理方式
JPH0731527B2 (ja) プログラマブルコントロ−ラ
JPS63120336A (ja) メモリアクセスモ−ド切替え方式
JPS62151936A (ja) マイクロプロセツサに内蔵されるキヤツシユ回路
KR19990015316A (ko) 인터럽트 처리 방법
JPS5875250A (ja) デジタル情報処理装置
JPH0150936B2 (ja)
JPH05233288A (ja) 情報処理装置