JPH05334100A - マイクロプロセッサ - Google Patents
マイクロプロセッサInfo
- Publication number
- JPH05334100A JPH05334100A JP4140404A JP14040492A JPH05334100A JP H05334100 A JPH05334100 A JP H05334100A JP 4140404 A JP4140404 A JP 4140404A JP 14040492 A JP14040492 A JP 14040492A JP H05334100 A JPH05334100 A JP H05334100A
- Authority
- JP
- Japan
- Prior art keywords
- bank
- general
- register
- stack pointer
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30101—Special purpose registers
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30123—Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30138—Extension of register space, e.g. register cache
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/461—Saving or restoring of program or task context
- G06F9/462—Saving 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)【要約】
【目的】 この発明は、命令ビット幅の縮小化ならびに
汎用レジスタの使用効率の向上を達成し得るレジスタバ
ンク構造を有するマイクロプロセッサを提供することを
目的とする。 【構成】 この発明は、汎用レジスタ群2の一部に割り
当てされたスタックポインタSPと、1つのバンクブロ
ックに対して退避/復帰するレジスタの個数を可変と
し、バンクブロックが切り換えられる際に、前記スタッ
クポインタSPが割り当てられる汎用レジスタRW0
が、選択されるバンクブロックに退避されてなるレジス
タバンクRAM4とから構成される。
汎用レジスタの使用効率の向上を達成し得るレジスタバ
ンク構造を有するマイクロプロセッサを提供することを
目的とする。 【構成】 この発明は、汎用レジスタ群2の一部に割り
当てされたスタックポインタSPと、1つのバンクブロ
ックに対して退避/復帰するレジスタの個数を可変と
し、バンクブロックが切り換えられる際に、前記スタッ
クポインタSPが割り当てられる汎用レジスタRW0
が、選択されるバンクブロックに退避されてなるレジス
タバンクRAM4とから構成される。
Description
【0001】
【産業上の利用分野】この発明は、スタックポインタと
して設定される汎用レジスタを含むレジスタファイルの
退避/復帰が行われるレジスタバンク構造を備えたマイ
クロプロセッサに関する。
して設定される汎用レジスタを含むレジスタファイルの
退避/復帰が行われるレジスタバンク構造を備えたマイ
クロプロセッサに関する。
【0002】
【従来の技術】マイクロプロセッサにおける従来のレジ
スタバンク構造としては、例えば図4に示すようなもの
が採用されている。
スタバンク構造としては、例えば図4に示すようなもの
が採用されている。
【0003】図4に示すレジスタバンク構造は、専用レ
ジスタ群101と汎用レジスタ群102とからなるレジ
スタファイル103と、256個の単位バンク(BAN
K0〜BANK255)からなるバンクRAM104と
を備えて構成されている。
ジスタ群101と汎用レジスタ群102とからなるレジ
スタファイル103と、256個の単位バンク(BAN
K0〜BANK255)からなるバンクRAM104と
を備えて構成されている。
【0004】レジスタファイル103の専用レジスタ群
101は、現在の汎用レジスタのバンク位置を示すカレ
ントバンクポインタ(CBP)、プロセッサステータス
ワード(PSW)、戻りバンクの汎用レジスタのバンク
位置を示す戻りバンクポインタ(PBP)、プログラム
カウンタ(PC)及びビット幅が固定されたスタックポ
インタ(SP)とから構成されている。汎用レジスタ群
102は、16ビット長のレジスタ(RW0〜RW1
5)を16個備えて構成されている。
101は、現在の汎用レジスタのバンク位置を示すカレ
ントバンクポインタ(CBP)、プロセッサステータス
ワード(PSW)、戻りバンクの汎用レジスタのバンク
位置を示す戻りバンクポインタ(PBP)、プログラム
カウンタ(PC)及びビット幅が固定されたスタックポ
インタ(SP)とから構成されている。汎用レジスタ群
102は、16ビット長のレジスタ(RW0〜RW1
5)を16個備えて構成されている。
【0005】バンクRAM104は、単位バンクが16
ビットのレジスタ4個で構成されており、バンクを指示
するバンクポインタは単位バンク毎に移動される。
ビットのレジスタ4個で構成されており、バンクを指示
するバンクポインタは単位バンク毎に移動される。
【0006】このようなレジスタファイル103とバン
クRAM104において、汎用レジスタ群102はバン
クRAM104の連続した4つの単位バンクに割り当て
られ、専用レジスタ群101はバンクRAM104の連
続した2つの単位バンクに割り当てられている。また、
バンクRAM104は、1つのバンクブロック当りの退
避されるレジスタの個数は固定されており、図4に示す
バンク構造では汎用レジスタの個数が16個に固定され
ている。なお、1組の汎用レジスタ群が退避されるバン
クRAMのバンク又はバンクの集合をバンクブロックと
呼ぶ。
クRAM104において、汎用レジスタ群102はバン
クRAM104の連続した4つの単位バンクに割り当て
られ、専用レジスタ群101はバンクRAM104の連
続した2つの単位バンクに割り当てられている。また、
バンクRAM104は、1つのバンクブロック当りの退
避されるレジスタの個数は固定されており、図4に示す
バンク構造では汎用レジスタの個数が16個に固定され
ている。なお、1組の汎用レジスタ群が退避されるバン
クRAMのバンク又はバンクの集合をバンクブロックと
呼ぶ。
【0007】このようなレジスタバンク構造において
は、1つのバンクブロック当りのレジスタの個数が固定
されているため、小さなコンテキストを退避する場合に
は、汎用レジスタの未使用部分が発生し、汎用レジスタ
の使い残りが生じていた。
は、1つのバンクブロック当りのレジスタの個数が固定
されているため、小さなコンテキストを退避する場合に
は、汎用レジスタの未使用部分が発生し、汎用レジスタ
の使い残りが生じていた。
【0008】また、スタックポインタ(SP)を専用レ
ジスタとして設けた場合には、スタックポインタ(S
P)をバンクRAM104に退避させる際に、スタック
ポインタ(SP)を退避させるための専用の命令が必要
になっていた。このため、命令のビット幅が増大してい
た。
ジスタとして設けた場合には、スタックポインタ(S
P)をバンクRAM104に退避させる際に、スタック
ポインタ(SP)を退避させるための専用の命令が必要
になっていた。このため、命令のビット幅が増大してい
た。
【0009】一方、スタックポインタを汎用レジスタ群
の一部として設けた場合には、スタックポインタを退避
するための専用の命令は不要となる。しかしながら、ス
タックポインタのビット幅は固定されているため、その
ビット幅が大きい場合には、汎用レジスタとして本来使
用できるレジスタ数が減少し、汎用レジスタの不足が生
じるおそれがあった。
の一部として設けた場合には、スタックポインタを退避
するための専用の命令は不要となる。しかしながら、ス
タックポインタのビット幅は固定されているため、その
ビット幅が大きい場合には、汎用レジスタとして本来使
用できるレジスタ数が減少し、汎用レジスタの不足が生
じるおそれがあった。
【0010】
【発明が解決しようとする課題】以上説明したように、
従来のレジスタバンク構造において、スタックポインタ
は専用レジスタ又は汎用レジスタ群の一部として設けら
れていた。
従来のレジスタバンク構造において、スタックポインタ
は専用レジスタ又は汎用レジスタ群の一部として設けら
れていた。
【0011】スタックポインタを専用レジスタとして設
けた場合には、退避操作のための専用の命令が必要とな
り、命令ビット幅が増大するという不具合を招いてい
た。
けた場合には、退避操作のための専用の命令が必要とな
り、命令ビット幅が増大するという不具合を招いてい
た。
【0012】一方、スタックポインタを汎用レジスタ群
の一部として設けた場合には、スタックポインタのビッ
ト幅が固定されているため、汎用レジスタ群に占めるス
タックポインタの割合が不必要に大きくなるおそれがあ
り、汎用レジスタを効率良く使用することが困難になっ
ていた。
の一部として設けた場合には、スタックポインタのビッ
ト幅が固定されているため、汎用レジスタ群に占めるス
タックポインタの割合が不必要に大きくなるおそれがあ
り、汎用レジスタを効率良く使用することが困難になっ
ていた。
【0013】そこで、この発明は、上記に鑑みてなされ
たものであり、その目的とするところは、レジスタバン
ク構造を採用し、命令ビット幅の縮小化ならびに汎用レ
ジスタの使用効率の向上を達成し得るマイクロプロセッ
サを提供することにある。
たものであり、その目的とするところは、レジスタバン
ク構造を採用し、命令ビット幅の縮小化ならびに汎用レ
ジスタの使用効率の向上を達成し得るマイクロプロセッ
サを提供することにある。
【0014】
【課題を解決するための手段】上記目的を達成するため
に、この発明は、汎用レジスタ群の一部に割り当てられ
たスタックポインタと、1つのバンクブロックに対して
退避/復帰するレジスタの個数を可変とし、バンクブロ
ックが切り換えられる際に、前記スタックポインタが割
り当てられる汎用レジスタが、選択されるバンクブロッ
クに退避されてなるレジスタバンクとから構成される。
に、この発明は、汎用レジスタ群の一部に割り当てられ
たスタックポインタと、1つのバンクブロックに対して
退避/復帰するレジスタの個数を可変とし、バンクブロ
ックが切り換えられる際に、前記スタックポインタが割
り当てられる汎用レジスタが、選択されるバンクブロッ
クに退避されてなるレジスタバンクとから構成される。
【0015】
【作用】上記構成において、この発明は、レジスタの個
数を可変としたレジスタバンクに対して、スタックポイ
ンタを常にバンクとして指定される汎用レジスタに設定
するようにしている。
数を可変としたレジスタバンクに対して、スタックポイ
ンタを常にバンクとして指定される汎用レジスタに設定
するようにしている。
【0016】
【実施例】以下、図面を用いてこの発明の実施例を説明
する。
する。
【0017】図1はこの発明の一実施例に係わるマイク
ロプロセッサのレジスタバンク構造を示す図である。
ロプロセッサのレジスタバンク構造を示す図である。
【0018】図1において、レジスタバンク構造は、専
用レジスタ群1及び汎用レジスタ群2からなるレジスタ
ファイル3と、バンクRAM4とから構成されている。
用レジスタ群1及び汎用レジスタ群2からなるレジスタ
ファイル3と、バンクRAM4とから構成されている。
【0019】専用レジスタ群1は、図4に示したと同様
のカレントバンクポインタ(CBP)、プロセッサステ
ータスワード(PSW)、戻りバンクポインタ(PB
P)及びプログラムカウンタ(PC)とを備えて64ビ
ット幅に構成されている。
のカレントバンクポインタ(CBP)、プロセッサステ
ータスワード(PSW)、戻りバンクポインタ(PB
P)及びプログラムカウンタ(PC)とを備えて64ビ
ット幅に構成されている。
【0020】汎用レジスタ群2は、図4に示したと同様
に16ビット幅のレジスタ(RW0〜RW15)を16
個備えてなり、スタックポインタ(SP)が汎用レジス
タ(RW0)に割り付けられている。なお、スタックポ
インタ(SP)は、他の汎用レジスタ(RW1〜RW1
5)に割り付けるようにしてもよい。
に16ビット幅のレジスタ(RW0〜RW15)を16
個備えてなり、スタックポインタ(SP)が汎用レジス
タ(RW0)に割り付けられている。なお、スタックポ
インタ(SP)は、他の汎用レジスタ(RW1〜RW1
5)に割り付けるようにしてもよい。
【0021】バンクRAM4は、レジスタファイルの退
避に用いられる。この実施例では、専用レジスタ群1が
64ビット幅であることから、専用レジスタ群1の退避
にはバンクRAM4のうち1バンクが使用される。
避に用いられる。この実施例では、専用レジスタ群1が
64ビット幅であることから、専用レジスタ群1の退避
にはバンクRAM4のうち1バンクが使用される。
【0022】また、本発明におけるバンクRAM4で
は、1つのバンクブロック当りのレジスタの個数が可変
となっているが、汎用レジスタ群RW0〜RW15のう
ち、RW0,RW1,…とビット幅の合計がバンクサイ
ズBSになるように、RW0から使用するようにする。
そして、退避の際もRW0からBS分だけ退避するよう
にする。そして、スタックポインタ(SP)を汎用レジ
スタ群2の先頭の汎用レジスタ(RW0)に割り付け
る。これによって、スタックポインタ(SP)はバンク
を切り換えた際に必ずバンクRAMのバンクの一部とし
て選択されることになる。すなわち、スタップポインタ
(SP)として割り付けられた汎用レジスタは、実行ル
ーチンの変更によりバンクを切り換えた時には、新たに
選択されたバンクブロック内のバンクに必ず退避される
ことになる。
は、1つのバンクブロック当りのレジスタの個数が可変
となっているが、汎用レジスタ群RW0〜RW15のう
ち、RW0,RW1,…とビット幅の合計がバンクサイ
ズBSになるように、RW0から使用するようにする。
そして、退避の際もRW0からBS分だけ退避するよう
にする。そして、スタックポインタ(SP)を汎用レジ
スタ群2の先頭の汎用レジスタ(RW0)に割り付け
る。これによって、スタックポインタ(SP)はバンク
を切り換えた際に必ずバンクRAMのバンクの一部とし
て選択されることになる。すなわち、スタップポインタ
(SP)として割り付けられた汎用レジスタは、実行ル
ーチンの変更によりバンクを切り換えた時には、新たに
選択されたバンクブロック内のバンクに必ず退避される
ことになる。
【0023】なお、スタックポインタ(SP)を汎用レ
ジスタ群2の先頭の汎用レジスタ(RW0)に割り付け
ない場合であっても、スタックポインタ(SP)がバン
クとして選択されるようにすることは可能である。
ジスタ群2の先頭の汎用レジスタ(RW0)に割り付け
ない場合であっても、スタックポインタ(SP)がバン
クとして選択されるようにすることは可能である。
【0024】このようなレジスタバンク構造において、
戻り情報は、カレントバンクポインタ(CBP)に保存
されて、割込みが発生した時には、汎用レジスタ群2は
カレントバンクポインタ(CBP)が示すバンク位置の
バンクRAM4に書き戻される。この時に、バンクポイ
ンタのサイズは、プロセッサステータスワード(PS
W)のバンク数指定ビット(BS)の2ビットで設定さ
れる。
戻り情報は、カレントバンクポインタ(CBP)に保存
されて、割込みが発生した時には、汎用レジスタ群2は
カレントバンクポインタ(CBP)が示すバンク位置の
バンクRAM4に書き戻される。この時に、バンクポイ
ンタのサイズは、プロセッサステータスワード(PS
W)のバンク数指定ビット(BS)の2ビットで設定さ
れる。
【0025】一方、専用レジスタ群1は、カレントバン
クポインタ(CBP)の値から1を引いた値のバンク位
置のバンクRAM4に退避される。
クポインタ(CBP)の値から1を引いた値のバンク位
置のバンクRAM4に退避される。
【0026】図2は図1に示したレジスタバンク構造に
おけるバンクRAM4のマイクロプロセッサにおける実
行ルーチンに対する割り付けの一例を示す図である。
おけるバンクRAM4のマイクロプロセッサにおける実
行ルーチンに対する割り付けの一例を示す図である。
【0027】図2において、メインルーチンでは、バン
ク15〜バンク18を使用し、割込みルーチン1〜3で
は、未使用のバンクを他のルーチンと共用している。図
2に示すバンクの使用例において、メインルーチンから
サブルーチン1に移り、さらにサブルーチン1からサブ
ルーチン2に移るような場合には、レジスタの重り部を
介してパラメータの受け渡しが行なわれる。
ク15〜バンク18を使用し、割込みルーチン1〜3で
は、未使用のバンクを他のルーチンと共用している。図
2に示すバンクの使用例において、メインルーチンから
サブルーチン1に移り、さらにサブルーチン1からサブ
ルーチン2に移るような場合には、レジスタの重り部を
介してパラメータの受け渡しが行なわれる。
【0028】また、現在実行中のタスクでは、割込み発
生に備えて専用レジスタを退避するためのバンクを確保
しておく必要があるため、サブルーチン2ではこのバン
クとしてバンク9が割り当てられている。一方、メイン
ルーチン及びサブルーチン1は、現在実行中でないため
に専用レジスタの退避のためのバンクは不要となり、そ
のためのバンクがそれぞれサブルーチン1,2で使用さ
れている。
生に備えて専用レジスタを退避するためのバンクを確保
しておく必要があるため、サブルーチン2ではこのバン
クとしてバンク9が割り当てられている。一方、メイン
ルーチン及びサブルーチン1は、現在実行中でないため
に専用レジスタの退避のためのバンクは不要となり、そ
のためのバンクがそれぞれサブルーチン1,2で使用さ
れている。
【0029】このように、この発明の実施例にあって
は、スタックポインタ(SP)を汎用レジスタ(RW
0)と兼用しているため、1つのバンクブロックのレジ
スタ群の個数に依存することなく、それぞれの実行ルー
チンの変更によるバンクの切り換えにおいて、スタック
ポインタ(SP)は必ずバンクとして選択され、スタッ
クポインタ(SP)をバンクに退避させるための専用の
命令が不要となる。これにより、命令のビット幅を削減
することが可能となり、かつ必要に応じた大きさのバン
クを使用することにより、汎用レジスタを効率良く使用
することが可能となる。
は、スタックポインタ(SP)を汎用レジスタ(RW
0)と兼用しているため、1つのバンクブロックのレジ
スタ群の個数に依存することなく、それぞれの実行ルー
チンの変更によるバンクの切り換えにおいて、スタック
ポインタ(SP)は必ずバンクとして選択され、スタッ
クポインタ(SP)をバンクに退避させるための専用の
命令が不要となる。これにより、命令のビット幅を削減
することが可能となり、かつ必要に応じた大きさのバン
クを使用することにより、汎用レジスタを効率良く使用
することが可能となる。
【0030】図3はスタックポインタのビット幅を可変
とした実施例を示す図である。
とした実施例を示す図である。
【0031】図3に示す実施例の特徴とするところは、
スタックポインタ(SP)を汎用レジスタ群2の1つの
汎用レジスタ(RW0)に割り付けて16ビット幅とす
るか、又は2つの汎用レジスタ(RW0,RW1)に割
り付けて32ビット幅にするかを、プロセッサステータ
スワード(PSW)のスタックポインタ(SP)幅選択
ビット(1ビット)で選択するようにしたことにある。
スタックポインタ(SP)を汎用レジスタ群2の1つの
汎用レジスタ(RW0)に割り付けて16ビット幅とす
るか、又は2つの汎用レジスタ(RW0,RW1)に割
り付けて32ビット幅にするかを、プロセッサステータ
スワード(PSW)のスタックポインタ(SP)幅選択
ビット(1ビット)で選択するようにしたことにある。
【0032】このような実施例にあっては、スタックポ
インタ(SP)を1つの汎用レジスタ(RW0)に割り
付けて16ビット幅とした場合は、スタックポインタ
(SP)のアクセス領域は図3に示すように64Kバイ
トとなり、使用可能な汎用レジスタは15個となる。一
方、2つの汎用レジスタ(RW0,RW1)に割り付け
た場合には、アクセス領域は図3に示すように4Gバイ
トとなり、使用可能な汎用レジスタは14個となる。
インタ(SP)を1つの汎用レジスタ(RW0)に割り
付けて16ビット幅とした場合は、スタックポインタ
(SP)のアクセス領域は図3に示すように64Kバイ
トとなり、使用可能な汎用レジスタは15個となる。一
方、2つの汎用レジスタ(RW0,RW1)に割り付け
た場合には、アクセス領域は図3に示すように4Gバイ
トとなり、使用可能な汎用レジスタは14個となる。
【0033】したがって、必要なスタック領域が64K
バイト以内である場合には、スタックポインタ(SP)
として1つの汎用レジスタ(RW0)を選択するように
すれば、スタックポインタ(SP)を32ビット幅とし
た場合に比べて汎用レジスタが1個多く使用することが
可能となり、汎用レジスタを効率良く使用することがで
きる。また、バンクブロック当たりのレジスタ数の可変
で、かつスタックポインタ幅が32ビットで固定である
場合、例えばレジスタ数を16本としたとき、汎用レジ
スタは14本で十分な数が使用できるが、レジスタ数を
4本としたときには、汎用レジスタは2本しか使用でき
ない。
バイト以内である場合には、スタックポインタ(SP)
として1つの汎用レジスタ(RW0)を選択するように
すれば、スタックポインタ(SP)を32ビット幅とし
た場合に比べて汎用レジスタが1個多く使用することが
可能となり、汎用レジスタを効率良く使用することがで
きる。また、バンクブロック当たりのレジスタ数の可変
で、かつスタックポインタ幅が32ビットで固定である
場合、例えばレジスタ数を16本としたとき、汎用レジ
スタは14本で十分な数が使用できるが、レジスタ数を
4本としたときには、汎用レジスタは2本しか使用でき
ない。
【0034】すなわち、バンクブロック当たりのレジス
タ数を減らすと、相対的にスタックポインタの占める割
合が増加し、そのために、バンクブロック当たりのレジ
スタ数を増やさねばならない状況が考えられる。これは
汎用レジスタの使用効率の低下をまねく。
タ数を減らすと、相対的にスタックポインタの占める割
合が増加し、そのために、バンクブロック当たりのレジ
スタ数を増やさねばならない状況が考えられる。これは
汎用レジスタの使用効率の低下をまねく。
【0035】このような不具合は、スタックポインタを
可変として、16ビットとして汎用レジスタ数を1本増
やすことにより回避することができる。
可変として、16ビットとして汎用レジスタ数を1本増
やすことにより回避することができる。
【0036】
【発明の効果】以上説明したように、レジスタの個数を
可変としたレジスタバンク構造において、スタックポイ
ンタを常にバンクに指定される汎用レジスタに割り付け
るようにしたので、スタックポインタの退避のための専
用の命令が不要となり、命令ビット幅の縮小化を達成す
ることができる。
可変としたレジスタバンク構造において、スタックポイ
ンタを常にバンクに指定される汎用レジスタに割り付け
るようにしたので、スタックポインタの退避のための専
用の命令が不要となり、命令ビット幅の縮小化を達成す
ることができる。
【0037】また、スタックポインタのビット幅を可変
するようにしたので、必要なスタック領域に応じてスタ
ックポインタのビット幅が設定可能となり、スタックポ
インタを汎用レジスタに割り付けた際に、汎用レジスタ
を効率的に使用することができる。
するようにしたので、必要なスタック領域に応じてスタ
ックポインタのビット幅が設定可能となり、スタックポ
インタを汎用レジスタに割り付けた際に、汎用レジスタ
を効率的に使用することができる。
【図1】この発明の一実施例に係わるマイクロプロセッ
サにおけるレジスタバンク構造を示す図である。
サにおけるレジスタバンク構造を示す図である。
【図2】図1に示すレジスタバンクの一使用例を示す図
である。
である。
【図3】図1に示すレジスタバンク構造におけるスタッ
クポインタのビット幅可変の一実施例を示す図である。
クポインタのビット幅可変の一実施例を示す図である。
【図4】従来のマイクロプロセッサにおけるレジスタバ
ンク構造を示す図である。
ンク構造を示す図である。
1,101 専用レジスタ群 2,102 汎用レジスタ群 3,103 レジスタファイル 4,104 バンクRAM SP スタックポインタ RW0〜RW15 汎用レジスタ
Claims (2)
- 【請求項1】 汎用レジスタ群の一部に割り当てされた
スタックポインタと、 1つのバンクブロックに対して退避/復帰するレジスタ
の個数を可変とし、バンクブロックが切り換えられる際
に、前記スタックポインタが割り当てられる汎用レジス
タが、選択されるバンクブロックに退避されてなるレジ
スタバンクとを有することを特徴とするマイクロプロセ
ッサ。 - 【請求項2】 前記スタックポインタは、ビット幅が可
変されてなることを特徴とする請求項1記載のマイクロ
プロセッサ。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP04140404A JP3110866B2 (ja) | 1992-06-01 | 1992-06-01 | マイクロプロセッサ |
| US08/068,104 US5491826A (en) | 1992-06-01 | 1993-05-28 | Microprocessor having register bank and using a general purpose register as a stack pointer |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP04140404A JP3110866B2 (ja) | 1992-06-01 | 1992-06-01 | マイクロプロセッサ |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH05334100A true JPH05334100A (ja) | 1993-12-17 |
| JP3110866B2 JP3110866B2 (ja) | 2000-11-20 |
Family
ID=15267981
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP04140404A Expired - Fee Related JP3110866B2 (ja) | 1992-06-01 | 1992-06-01 | マイクロプロセッサ |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US5491826A (ja) |
| JP (1) | JP3110866B2 (ja) |
Families Citing this family (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2677202B2 (ja) * | 1994-08-12 | 1997-11-17 | 日本電気株式会社 | マイクロプロセッサ |
| US5634046A (en) * | 1994-09-30 | 1997-05-27 | Microsoft Corporation | General purpose use of a stack pointer register |
| JP2889845B2 (ja) * | 1995-09-22 | 1999-05-10 | 松下電器産業株式会社 | 情報処理装置 |
| US7028163B2 (en) * | 1998-06-22 | 2006-04-11 | Samsung Electronics, Co., Ltd. | Apparatus for controlling multi-word stack operations using a multi-bank stack in digital data processors |
| JP2001297316A (ja) * | 2000-04-14 | 2001-10-26 | Mitsubishi Electric Corp | メモリカード及びその制御方法 |
| WO2003091972A1 (en) * | 2002-04-26 | 2003-11-06 | Telefonaktiebolaget Lm Ericsson | Memory access register file |
| US7680990B2 (en) * | 2003-05-30 | 2010-03-16 | Hewlett-Packard Development Company, L.P. | Superword memory-access instructions for data processor |
Family Cites Families (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4217638A (en) * | 1977-05-19 | 1980-08-12 | Tokyo Shibaura Electric Co., Ltd. | Data-processing apparatus and method |
| JPS5569855A (en) * | 1978-11-20 | 1980-05-26 | Panafacom Ltd | Data processing system |
| US5165033A (en) * | 1983-07-25 | 1992-11-17 | Hitachi, Ltd. | Microprocessor and data processor using the former |
| US5293594A (en) * | 1986-05-24 | 1994-03-08 | Hitachi, Ltd. | Data processing system having a plurality of register groups and a logical or circuit for addressing one register of one of the register groups |
| US5220669A (en) * | 1988-02-10 | 1993-06-15 | International Business Machines Corporation | Linkage mechanism for program isolation |
| JPH01255035A (ja) * | 1988-04-05 | 1989-10-11 | Matsushita Electric Ind Co Ltd | プロセサ |
| US5321823A (en) * | 1988-07-20 | 1994-06-14 | Digital Equipment Corporation | Digital processor with bit mask for counting registers for fast register saves |
| US5274792A (en) * | 1989-08-19 | 1993-12-28 | Fujitsu Limited | Information processing apparatus with parallel instruction decoding |
| JP2507638B2 (ja) * | 1989-12-01 | 1996-06-12 | 三菱電機株式会社 | デ―タ処理装置 |
| US5115506A (en) * | 1990-01-05 | 1992-05-19 | Motorola, Inc. | Method and apparatus for preventing recursion jeopardy |
-
1992
- 1992-06-01 JP JP04140404A patent/JP3110866B2/ja not_active Expired - Fee Related
-
1993
- 1993-05-28 US US08/068,104 patent/US5491826A/en not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| JP3110866B2 (ja) | 2000-11-20 |
| US5491826A (en) | 1996-02-13 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US4943913A (en) | Operating system accessing control blocks by using home address space segment table to control instruction and operand fetch and store operations | |
| US5161226A (en) | Microprocessor inverse processor state usage | |
| US4037211A (en) | Address extending control unit | |
| JP2662534B2 (ja) | 割込方式 | |
| JP2001516925A (ja) | ダイレクトメモリアクセスユニット | |
| JPH08305585A (ja) | 割込制御装置 | |
| JPH0454652A (ja) | マイクロコンピュータ | |
| JPH05334100A (ja) | マイクロプロセッサ | |
| JPH03257644A (ja) | 主メモリ管理方法 | |
| EP0098172B1 (en) | Register control processing system | |
| US4984150A (en) | Virtual memory control management system | |
| JP3991443B2 (ja) | タスク切り替え方法及びデータ処理装置 | |
| JPS6220583B2 (ja) | ||
| JP2585905B2 (ja) | マルチタスク実行装置 | |
| JP2633382B2 (ja) | マルチレジスタファイルシステム | |
| JPS603229B2 (ja) | 情報処理方式 | |
| JP2539419B2 (ja) | 補助記憶装置の選択方法 | |
| JPH03163630A (ja) | プロセッサのスタック制御方法 | |
| JPH09167114A (ja) | マルチスレッドタスクのスタック割り当て方法 | |
| JPS62154166A (ja) | マイクロコンピユ−タ | |
| JPH04116742A (ja) | 仮想記憶システムにおけるメモリ割り当て方式 | |
| JPS5839342B2 (ja) | マルチプロセツサシステムニオケル ワリコミシヨリホウシキ | |
| JP3517579B2 (ja) | マイクロプロセッサ | |
| JPS6353650A (ja) | 計算機 | |
| JPH03229328A (ja) | マイクロプロセッサ |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20070914 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080914 Year of fee payment: 8 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080914 Year of fee payment: 8 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090914 Year of fee payment: 9 |
|
| LAPS | Cancellation because of no payment of annual fees |