JPH0217541A - スタツク方式マイクロコンピュータ - Google Patents
スタツク方式マイクロコンピュータInfo
- Publication number
- JPH0217541A JPH0217541A JP16675588A JP16675588A JPH0217541A JP H0217541 A JPH0217541 A JP H0217541A JP 16675588 A JP16675588 A JP 16675588A JP 16675588 A JP16675588 A JP 16675588A JP H0217541 A JPH0217541 A JP H0217541A
- Authority
- JP
- Japan
- Prior art keywords
- stack frame
- stack
- data
- register set
- register
- 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
Links
Landscapes
- Executing Machine-Instructions (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は、オーバーラツプのあるマルチレジスタセット
を内蔵するマイクロコンピュータに係り。
を内蔵するマイクロコンピュータに係り。
特に多量のデータを高速処理しながら割込みやイベント
などの発生に対応するのに好適なスタック方式とする。
などの発生に対応するのに好適なスタック方式とする。
[従来の技術〕
従来、計算機システムにおいて、イベント発生によるタ
スクスイッチ時や、関数の呼出し時におけるレジスタの
メモリへの退避、復帰のための処理時間(以後、オーバ
ーヘッド時間とよぶ)を必要としていた。そこで、この
オーバーヘッド時間の高速化を行なうため、汎用レジス
タセットを複数個設けるマルチレジスタセット方式があ
る。
スクスイッチ時や、関数の呼出し時におけるレジスタの
メモリへの退避、復帰のための処理時間(以後、オーバ
ーヘッド時間とよぶ)を必要としていた。そこで、この
オーバーヘッド時間の高速化を行なうため、汎用レジス
タセットを複数個設けるマルチレジスタセット方式があ
る。
タスクスイッチの高速化の場合、マルチレジスタセット
の各汎用レジスタセットに、タスクを割当て、タスクス
イッチ発生時に、汎用レジスタセットを各タスクに対応
させて切換える処理を行なう。
の各汎用レジスタセットに、タスクを割当て、タスクス
イッチ発生時に、汎用レジスタセットを各タスクに対応
させて切換える処理を行なう。
また、高級言語における関数呼出しの高速化の場合、タ
スクをプログラムにおける関数にねりあてる。各汎用レ
ジスタセットは、引数の受は用、局所変数用、引数の渡
し用として、3種に分類されている。引数の受は用、渡
し用のレジスタは、各関数を呼び出す側と、呼び出され
る側で共用され、呼ぶ側では、渡し用、呼ばれる側では
、受は用として用いられる。このオーバーラツプのある
マルチレジスタセットについては、アイ・イー・イー・
イー コンピューター、15巻、9号、第8頁から、第
21項(Daid、A、Patterson、andC
arlo、H,5equin“A VLSI RISC
” IEEIE Computervol、15.no
9.pp8−21,5ept’ 82)において論じら
れている。
スクをプログラムにおける関数にねりあてる。各汎用レ
ジスタセットは、引数の受は用、局所変数用、引数の渡
し用として、3種に分類されている。引数の受は用、渡
し用のレジスタは、各関数を呼び出す側と、呼び出され
る側で共用され、呼ぶ側では、渡し用、呼ばれる側では
、受は用として用いられる。このオーバーラツプのある
マルチレジスタセットについては、アイ・イー・イー・
イー コンピューター、15巻、9号、第8頁から、第
21項(Daid、A、Patterson、andC
arlo、H,5equin“A VLSI RISC
” IEEIE Computervol、15.no
9.pp8−21,5ept’ 82)において論じら
れている。
上記従来技術は、マルチレジスタセットにおけるレジス
タセット数、および汎用レジスタセットあたりのレジス
タの数の点については配慮がされていない。
タセット数、および汎用レジスタセットあたりのレジス
タの数の点については配慮がされていない。
そのため、1タスクあたりに用いるデータが多い場合に
は、レジスタセットにデータが入りきれないため、主メ
モリ上にデータをおかなければならないため、メモリア
クセスが増加するという問題がある。
は、レジスタセットにデータが入りきれないため、主メ
モリ上にデータをおかなければならないため、メモリア
クセスが増加するという問題がある。
また、1タスクあたりに用いるデータが少ない場合には
、レジスタセットに空きが生じるという問題がある。
、レジスタセットに空きが生じるという問題がある。
本発明の目的は、レジスタセットを可変に構成できるス
タック方式のマルチレジスタセットを内蔵することにあ
る。
タック方式のマルチレジスタセットを内蔵することにあ
る。
上記目的は、可変語数のレジスタからなるスタックフレ
ームを構成することができ、スタックフレームに接続し
得て、少なくとも、算術演算と論理演算のできる演算回
路と、スタックフレームの長さを決定できる蓄積手段と
、前後のスタックフレームとのオーバーラツプ領域を設
定できる指定情報と、マルチレジスタセット内のスタッ
クフレームを指定できる選択手段とをそなえ、また、ス
タックフレームの長さを命令フォーマットにより決定す
る手段と、蓄積情報によりマルチレジスタセット内のス
タックフレームを指定できる選択手段を含んで構成する
ことにより、達成される。
ームを構成することができ、スタックフレームに接続し
得て、少なくとも、算術演算と論理演算のできる演算回
路と、スタックフレームの長さを決定できる蓄積手段と
、前後のスタックフレームとのオーバーラツプ領域を設
定できる指定情報と、マルチレジスタセット内のスタッ
クフレームを指定できる選択手段とをそなえ、また、ス
タックフレームの長さを命令フォーマットにより決定す
る手段と、蓄積情報によりマルチレジスタセット内のス
タックフレームを指定できる選択手段を含んで構成する
ことにより、達成される。
マルチレジスタセットにおける第1のスタックフレーム
を第2のスタックフレームへ切換える命令が発生した場
合に、第1のスタックフレームから第2のスタックフレ
ームへの切換えができるとともに、第1のスタックフレ
ームと第2のスタックフレームとのオーバーラツプ領域
を指定できる。
を第2のスタックフレームへ切換える命令が発生した場
合に、第1のスタックフレームから第2のスタックフレ
ームへの切換えができるとともに、第1のスタックフレ
ームと第2のスタックフレームとのオーバーラツプ領域
を指定できる。
また、第2のスタックフレームとして必要な長さを決定
し、使用することができる。
し、使用することができる。
このスタックフレームの選択手段は、蓄積情報として、
暗黙指定する手段と、指定情報として。
暗黙指定する手段と、指定情報として。
命令フォーマットにより指定することができる。
また、スタックフレームの長さを指定する手段は、指定
情報として、処理が発生する前に指示する手段と、レジ
スタの必要に応じて、蓄積手段として、保持できる手段
とを持つことによりマルチレジスタセットを有効に使用
することができる。
情報として、処理が発生する前に指示する手段と、レジ
スタの必要に応じて、蓄積手段として、保持できる手段
とを持つことによりマルチレジスタセットを有効に使用
することができる。
以下、本発明の1実施例を第1図により説明する。
第1図は、本発明が適用されるデータ処理装置の全体構
成の1例を示す図である。第1図において、10は、1
1のキャッシュメモリ、12の命令フェッチユニット、
13の制御ユニット、14のマルチレジスタセット、1
5の実行ユニット、を内蔵するマイクロプロセッサであ
り、1fのアドレスバスと、1gのデータバスを介して
、1Gの外部記憶と接続している。
成の1例を示す図である。第1図において、10は、1
1のキャッシュメモリ、12の命令フェッチユニット、
13の制御ユニット、14のマルチレジスタセット、1
5の実行ユニット、を内蔵するマイクロプロセッサであ
り、1fのアドレスバスと、1gのデータバスを介して
、1Gの外部記憶と接続している。
ここで、これらの要素からなるマイクロコンピュータ1
0の動作の概要を説明する。
0の動作の概要を説明する。
命令フェッチユニット12で指定する命令語のアドレス
が、アドレスバス1dを介し、キャッシュメモリ11に
ヒツトした場合、キャッシュメモリ11からデータを読
出す。キャッシュメモリ11にデータがない場合は、ア
ドレスバス1fと、データバス1gを介して、外部記憶
16からデータを読出す。
が、アドレスバス1dを介し、キャッシュメモリ11に
ヒツトした場合、キャッシュメモリ11からデータを読
出す。キャッシュメモリ11にデータがない場合は、ア
ドレスバス1fと、データバス1gを介して、外部記憶
16からデータを読出す。
読出された命令語(データ)は、制御ユニット13でデ
コードされ、マルチレジスタセット14へのアクセスを
行なう。次に、実行ユニット15で処理され、結果がマ
ルチレジスタセットに格納される。
コードされ、マルチレジスタセット14へのアクセスを
行なう。次に、実行ユニット15で処理され、結果がマ
ルチレジスタセットに格納される。
第2図は、実行ユニットの構成を示す図である。
実行ユニットは2本のリードデータバス1aと1b上の
データをソースラッチ1の23、ソースラッチ2の24
、に入力し、バレルシフタ21で高速シフトを実行し、
マルチプレクサ25に出力する。シフト量は、制御11
IA2aで指定される。
データをソースラッチ1の23、ソースラッチ2の24
、に入力し、バレルシフタ21で高速シフトを実行し、
マルチプレクサ25に出力する。シフト量は、制御11
IA2aで指定される。
ソースラッチ1の23とマルチプレクサの25から演算
ユニット22に入力を行ない、演算結果をディスティネ
ーションラッチ26に出力する。
ユニット22に入力を行ない、演算結果をディスティネ
ーションラッチ26に出力する。
ディスティネーションラッチ26からディスティネーシ
ョンバス1c上に出力される。
ョンバス1c上に出力される。
第3図は、マルチレジスタセットの基本構成を示す。ラ
イトデータバスlc上のデータを、マルチレジスタセッ
ト14に保持する。マルチレジスタセット14に保持し
たデータは、リードデータバス1aとリードデータバス
1bに出力される。
イトデータバスlc上のデータを、マルチレジスタセッ
ト14に保持する。マルチレジスタセット14に保持し
たデータは、リードデータバス1aとリードデータバス
1bに出力される。
このマルチレジスタセットは、可変長のスタックフレー
ムn個から構成される。ベースになるスタックフレーム
は、基底スタックフレームであるスタック0の30、ス
タック1の31、スタック2の32.n番目のスタック
フレームであるスタックnの33により構成される。
ムn個から構成される。ベースになるスタックフレーム
は、基底スタックフレームであるスタック0の30、ス
タック1の31、スタック2の32.n番目のスタック
フレームであるスタックnの33により構成される。
第4図は、マルチレジスタセットにおける1個のスタッ
クフレームの構成を示したものである。
クフレームの構成を示したものである。
スタックフレームの0番は、1番目のレジスタとして、
BSARO(ベーススタックアドレスレジスタ0)があ
る。i番目のスタックフレームは、1つ前のスタックの
アドレスレジスタであるPSARi(Previous
5tack Address Registen i
) 41と1つ前のスタックフレームとのレジスタの共
有領域であるG S RL (Global 5tac
k Registen Low)42と、1つ前のスタ
ックフレームの長さを示すP S L R(Previ
ous 5tack Length Registen
)43と現在のスタックフレームの基底アドレスを示す
B S A Ri (Base 5tack Addr
ess Registen 1)44と次のスタックフ
レームとのレジスタの共有領域であるG S RH(G
lobal 5tack RegistenHigh)
45と、現在のスタックフレームの長さを示すCS
L Ri (Current 5tack LenlH
th Registeni)46とにより構成される。
BSARO(ベーススタックアドレスレジスタ0)があ
る。i番目のスタックフレームは、1つ前のスタックの
アドレスレジスタであるPSARi(Previous
5tack Address Registen i
) 41と1つ前のスタックフレームとのレジスタの共
有領域であるG S RL (Global 5tac
k Registen Low)42と、1つ前のスタ
ックフレームの長さを示すP S L R(Previ
ous 5tack Length Registen
)43と現在のスタックフレームの基底アドレスを示す
B S A Ri (Base 5tack Addr
ess Registen 1)44と次のスタックフ
レームとのレジスタの共有領域であるG S RH(G
lobal 5tack RegistenHigh)
45と、現在のスタックフレームの長さを示すCS
L Ri (Current 5tack LenlH
th Registeni)46とにより構成される。
スタックフレームを切替える命令、又はイベント、が発
生した時は、BSARiは、次のスタックフレームのP
S A Ri+1として用いられる。またGSRHは
、GSRLとして用いられ、C3LRiは、PSLRI
÷1として用いられる。
生した時は、BSARiは、次のスタックフレームのP
S A Ri+1として用いられる。またGSRHは
、GSRLとして用いられ、C3LRiは、PSLRI
÷1として用いられる。
1つのスタックフレームにおいて必要なデータは。
GSRLとGSRHに格納されている。
通常は、関数呼出し、イベント呼出しが発生した時点で
、スタックフレームの切換え(インクリメント)を行な
う。
、スタックフレームの切換え(インクリメント)を行な
う。
また、直接スタックフレームを選択する方法として、ス
タックの番号を保持するレジスタ5NR(スタックナン
バーレジスタ)47がある。
タックの番号を保持するレジスタ5NR(スタックナン
バーレジスタ)47がある。
第5図は、マルチレジスタセットにおける汎用レジスタ
のアクセス方法を示す。
のアクセス方法を示す。
関数呼出しくイベント呼出し)が発生し、スタツクフレ
ームの切換えを行なう時点で、スタックフレームi−1
の基底アドレスBARt−t を現在のスタックフレー
ムのアドレスレジスタPSARiに格納する。スタック
フレームi−1のスタックの長さCS L Ri−t
を現在のスタックフレームにおけるPSLRiに格納す
る。PSARiとPSLRiの加算を行ない現在の基底
アドレスをBARiに格納する。
ームの切換えを行なう時点で、スタックフレームi−1
の基底アドレスBARt−t を現在のスタックフレー
ムのアドレスレジスタPSARiに格納する。スタック
フレームi−1のスタックの長さCS L Ri−t
を現在のスタックフレームにおけるPSLRiに格納す
る。PSARiとPSLRiの加算を行ない現在の基底
アドレスをBARiに格納する。
現在のスタックフレームでデータの加算を行なう場合は
、GRIにデータの3を代入し、GR2に150を代入
し、GRIとGR2のデータをGR3に格納する。
、GRIにデータの3を代入し、GR2に150を代入
し、GRIとGR2のデータをGR3に格納する。
第6図は、スタックフレームにおけるレジスタの加算方
法を示す。
法を示す。
基底アドレスレジスタBARiにオフセット2を加算し
たアドレスで指すデータをSLI (ソースラッチの2
)に代入する。BARiにオフセット2を加算したデー
タを5L2(ソースラッチ2)に代入する。
たアドレスで指すデータをSLI (ソースラッチの2
)に代入する。BARiにオフセット2を加算したデー
タを5L2(ソースラッチ2)に代入する。
SLIとSL2の加算結果をディスティネーションラッ
チDLに格納する。
チDLに格納する。
ディスティネーションラッチのデータDLを基底アドレ
スレジスタBARiとオフセット3で示すアドレスに格
納する。
スレジスタBARiとオフセット3で示すアドレスに格
納する。
本発明によれば、多数のレジスタセットにより構成され
るマルチレジスタセットにおいて、ある処理に対応する
スタックフレームを可変長にすることができるとともに
、スタックフレーム間にオーバーラツプ領域を設定する
ことができるため、ある処理に必要なデータ数が多い場
合は、対応するスタックフレームの長さを長くとり、必
要なデータが少ない場合には、スタックフレームの長さ
を短くとることができるので、マルチレジスタセットを
有効に無駄なく使用することができる。
るマルチレジスタセットにおいて、ある処理に対応する
スタックフレームを可変長にすることができるとともに
、スタックフレーム間にオーバーラツプ領域を設定する
ことができるため、ある処理に必要なデータ数が多い場
合は、対応するスタックフレームの長さを長くとり、必
要なデータが少ない場合には、スタックフレームの長さ
を短くとることができるので、マルチレジスタセットを
有効に無駄なく使用することができる。
第1図はマイクロコンピュータの全体構成図、第2図は
実行ユニットを示す図、第3図はマルチレジスタセット
を示す図、第4図はi番目のスタックフレームを示す図
、第5図はレジスタの加算を示す図、第6図はスタック
フレームのデータのアクセス手段を示す図である。 1・°゛マイクロコンピユータ14・・・マルチレジス
タセット、15・・・実行ユニット、16・・・外部記
憶、11・・・マイクロプログラム、12・・・命令フ
ェッチユニット、13・・・制御ユニット。
実行ユニットを示す図、第3図はマルチレジスタセット
を示す図、第4図はi番目のスタックフレームを示す図
、第5図はレジスタの加算を示す図、第6図はスタック
フレームのデータのアクセス手段を示す図である。 1・°゛マイクロコンピユータ14・・・マルチレジス
タセット、15・・・実行ユニット、16・・・外部記
憶、11・・・マイクロプログラム、12・・・命令フ
ェッチユニット、13・・・制御ユニット。
Claims (1)
- 【特許請求の範囲】 1、複数のレジスタからなるスタックフレームを有し、
該スタックフレームが複数本からなるマルチレジスタセ
ットを内蔵するマイクロコンピュータにおいて、前記ス
タックフレームに接続し得て、少なくとも、算術演算と
論理演算のできる演算回路と、前記スタックフレームの
長さを決定できる蓄積手段と、前後のスタックフレーム
とのオーバーラップ領域を設定できる指定情報と、マル
チレジスタセット内のスタックフレームを指定できる選
択手段とをそなえ、前記選択手段で選択している第1の
スタックフレームを第2のスタツクフレームへ切換える
命令、或いは、イベントが発生した場合には、第2のス
タックフレームを選択できる様にするとともに、前記指
定情報により、第2のスタックフレームと第1のスタッ
クフレームとのオーバーラップ領域を指定できる様にす
るとともに、第2のスタックフレームとして必要な長さ
を決定し、使用することを特徴とするスタック方式マイ
クロコンピュータ。 2、特許請求の範囲第1項記載のスタックフレームは、
スタックフレームを切換える命令、イベントが発生した
場合に、そのスタックフレームの長さを命令フォーマッ
トにより決定する手段と、蓄積情報により、マルチレジ
スタセット内のスタックフレームを指定できる選択手段
を含んで構成することを特徴とするスタック方式マイク
ロコンピュータ。 3、特許請求の範囲第1項記載のスタックフレームは、
マルチレジスタセット内のスタックフレーム数を記憶す
る手段を持ち、また、レジスタのオーバーフローが生じ
た場合に、下位のスタックフレームから、メモリへデー
タを退避する手段を保持することを特徴とするスタック
方式マイクロコンピュータ。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP16675588A JPH0217541A (ja) | 1988-07-06 | 1988-07-06 | スタツク方式マイクロコンピュータ |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP16675588A JPH0217541A (ja) | 1988-07-06 | 1988-07-06 | スタツク方式マイクロコンピュータ |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0217541A true JPH0217541A (ja) | 1990-01-22 |
Family
ID=15837131
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP16675588A Pending JPH0217541A (ja) | 1988-07-06 | 1988-07-06 | スタツク方式マイクロコンピュータ |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0217541A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH02217925A (ja) * | 1989-02-17 | 1990-08-30 | Toshiba Corp | マイクロプロセッサ |
| JPH03230282A (ja) * | 1990-02-05 | 1991-10-14 | Matsushita Electric Ind Co Ltd | マイクロプロセッサ |
-
1988
- 1988-07-06 JP JP16675588A patent/JPH0217541A/ja active Pending
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH02217925A (ja) * | 1989-02-17 | 1990-08-30 | Toshiba Corp | マイクロプロセッサ |
| JPH03230282A (ja) * | 1990-02-05 | 1991-10-14 | Matsushita Electric Ind Co Ltd | マイクロプロセッサ |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US4206503A (en) | Multiple length address formation in a microprogrammed data processing system | |
| KR940009095B1 (ko) | 데이터 처리시스템 | |
| US8726292B2 (en) | System and method for communication in a multithread processor | |
| US5978910A (en) | Performing pending interrupts or exceptions when interruptible jumps are detected | |
| WO1983001133A1 (en) | Microprocessor with memory having interleaved address inputs and interleaved instruction and data outputs | |
| US4152763A (en) | Control system for central processing unit with plural execution units | |
| US4791560A (en) | Macro level control of an activity switch in a scientific vector processor which processor requires an external executive control program | |
| JPS5911921B2 (ja) | 数値制御装置 | |
| JPH0217541A (ja) | スタツク方式マイクロコンピュータ | |
| US5491826A (en) | Microprocessor having register bank and using a general purpose register as a stack pointer | |
| JPS6290728A (ja) | 割込処理方法 | |
| JPS615357A (ja) | デ−タ処理装置 | |
| KR19990058732A (ko) | 하드웨어 실시간 멀티태스킹 장치 및 방법 | |
| JPH03188530A (ja) | プログラム先取り装置 | |
| US7434039B2 (en) | Computer processor capable of responding with comparable efficiency to both software-state-independent and state-dependent events | |
| JPS6352241A (ja) | マイクロプロセツサ | |
| JPH0298744A (ja) | 割込み処理方式 | |
| JPS6352240A (ja) | デ−タ処理装置 | |
| JP3239042B2 (ja) | マイクロコンピュータ | |
| JPH0535896B2 (ja) | ||
| JPS60164843A (ja) | マイクロコンピユ−タ | |
| JPS62128342A (ja) | メモリアクセス制御方式 | |
| JPS60193046A (ja) | 命令例外検出方式 | |
| JPH041373B2 (ja) | ||
| JPH02173828A (ja) | 割込み処理方式 |