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
Application number
JP4140404A
Other languages
English (en)
Other versions
JP3110866B2 (ja
Inventor
Seiji Koino
誠治 子井野
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP04140404A priority Critical patent/JP3110866B2/ja
Priority to US08/068,104 priority patent/US5491826A/en
Publication of JPH05334100A publication Critical patent/JPH05334100A/ja
Application granted granted Critical
Publication of JP3110866B2 publication Critical patent/JP3110866B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30101Special purpose registers
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30123Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30138Extension of register space, e.g. register cache
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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)【要約】 【目的】 この発明は、命令ビット幅の縮小化ならびに
汎用レジスタの使用効率の向上を達成し得るレジスタバ
ンク構造を有するマイクロプロセッサを提供することを
目的とする。 【構成】 この発明は、汎用レジスタ群2の一部に割り
当てされたスタックポインタSPと、1つのバンクブロ
ックに対して退避/復帰するレジスタの個数を可変と
し、バンクブロックが切り換えられる際に、前記スタッ
クポインタSPが割り当てられる汎用レジスタRW0
が、選択されるバンクブロックに退避されてなるレジス
タバンクRAM4とから構成される。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、スタックポインタと
して設定される汎用レジスタを含むレジスタファイルの
退避/復帰が行われるレジスタバンク構造を備えたマイ
クロプロセッサに関する。
【0002】
【従来の技術】マイクロプロセッサにおける従来のレジ
スタバンク構造としては、例えば図4に示すようなもの
が採用されている。
【0003】図4に示すレジスタバンク構造は、専用レ
ジスタ群101と汎用レジスタ群102とからなるレジ
スタファイル103と、256個の単位バンク(BAN
K0〜BANK255)からなるバンクRAM104と
を備えて構成されている。
【0004】レジスタファイル103の専用レジスタ群
101は、現在の汎用レジスタのバンク位置を示すカレ
ントバンクポインタ(CBP)、プロセッサステータス
ワード(PSW)、戻りバンクの汎用レジスタのバンク
位置を示す戻りバンクポインタ(PBP)、プログラム
カウンタ(PC)及びビット幅が固定されたスタックポ
インタ(SP)とから構成されている。汎用レジスタ群
102は、16ビット長のレジスタ(RW0〜RW1
5)を16個備えて構成されている。
【0005】バンクRAM104は、単位バンクが16
ビットのレジスタ4個で構成されており、バンクを指示
するバンクポインタは単位バンク毎に移動される。
【0006】このようなレジスタファイル103とバン
クRAM104において、汎用レジスタ群102はバン
クRAM104の連続した4つの単位バンクに割り当て
られ、専用レジスタ群101はバンクRAM104の連
続した2つの単位バンクに割り当てられている。また、
バンクRAM104は、1つのバンクブロック当りの退
避されるレジスタの個数は固定されており、図4に示す
バンク構造では汎用レジスタの個数が16個に固定され
ている。なお、1組の汎用レジスタ群が退避されるバン
クRAMのバンク又はバンクの集合をバンクブロックと
呼ぶ。
【0007】このようなレジスタバンク構造において
は、1つのバンクブロック当りのレジスタの個数が固定
されているため、小さなコンテキストを退避する場合に
は、汎用レジスタの未使用部分が発生し、汎用レジスタ
の使い残りが生じていた。
【0008】また、スタックポインタ(SP)を専用レ
ジスタとして設けた場合には、スタックポインタ(S
P)をバンクRAM104に退避させる際に、スタック
ポインタ(SP)を退避させるための専用の命令が必要
になっていた。このため、命令のビット幅が増大してい
た。
【0009】一方、スタックポインタを汎用レジスタ群
の一部として設けた場合には、スタックポインタを退避
するための専用の命令は不要となる。しかしながら、ス
タックポインタのビット幅は固定されているため、その
ビット幅が大きい場合には、汎用レジスタとして本来使
用できるレジスタ数が減少し、汎用レジスタの不足が生
じるおそれがあった。
【0010】
【発明が解決しようとする課題】以上説明したように、
従来のレジスタバンク構造において、スタックポインタ
は専用レジスタ又は汎用レジスタ群の一部として設けら
れていた。
【0011】スタックポインタを専用レジスタとして設
けた場合には、退避操作のための専用の命令が必要とな
り、命令ビット幅が増大するという不具合を招いてい
た。
【0012】一方、スタックポインタを汎用レジスタ群
の一部として設けた場合には、スタックポインタのビッ
ト幅が固定されているため、汎用レジスタ群に占めるス
タックポインタの割合が不必要に大きくなるおそれがあ
り、汎用レジスタを効率良く使用することが困難になっ
ていた。
【0013】そこで、この発明は、上記に鑑みてなされ
たものであり、その目的とするところは、レジスタバン
ク構造を採用し、命令ビット幅の縮小化ならびに汎用レ
ジスタの使用効率の向上を達成し得るマイクロプロセッ
サを提供することにある。
【0014】
【課題を解決するための手段】上記目的を達成するため
に、この発明は、汎用レジスタ群の一部に割り当てられ
たスタックポインタと、1つのバンクブロックに対して
退避/復帰するレジスタの個数を可変とし、バンクブロ
ックが切り換えられる際に、前記スタックポインタが割
り当てられる汎用レジスタが、選択されるバンクブロッ
クに退避されてなるレジスタバンクとから構成される。
【0015】
【作用】上記構成において、この発明は、レジスタの個
数を可変としたレジスタバンクに対して、スタックポイ
ンタを常にバンクとして指定される汎用レジスタに設定
するようにしている。
【0016】
【実施例】以下、図面を用いてこの発明の実施例を説明
する。
【0017】図1はこの発明の一実施例に係わるマイク
ロプロセッサのレジスタバンク構造を示す図である。
【0018】図1において、レジスタバンク構造は、専
用レジスタ群1及び汎用レジスタ群2からなるレジスタ
ファイル3と、バンクRAM4とから構成されている。
【0019】専用レジスタ群1は、図4に示したと同様
のカレントバンクポインタ(CBP)、プロセッサステ
ータスワード(PSW)、戻りバンクポインタ(PB
P)及びプログラムカウンタ(PC)とを備えて64ビ
ット幅に構成されている。
【0020】汎用レジスタ群2は、図4に示したと同様
に16ビット幅のレジスタ(RW0〜RW15)を16
個備えてなり、スタックポインタ(SP)が汎用レジス
タ(RW0)に割り付けられている。なお、スタックポ
インタ(SP)は、他の汎用レジスタ(RW1〜RW1
5)に割り付けるようにしてもよい。
【0021】バンクRAM4は、レジスタファイルの退
避に用いられる。この実施例では、専用レジスタ群1が
64ビット幅であることから、専用レジスタ群1の退避
にはバンクRAM4のうち1バンクが使用される。
【0022】また、本発明におけるバンクRAM4で
は、1つのバンクブロック当りのレジスタの個数が可変
となっているが、汎用レジスタ群RW0〜RW15のう
ち、RW0,RW1,…とビット幅の合計がバンクサイ
ズBSになるように、RW0から使用するようにする。
そして、退避の際もRW0からBS分だけ退避するよう
にする。そして、スタックポインタ(SP)を汎用レジ
スタ群2の先頭の汎用レジスタ(RW0)に割り付け
る。これによって、スタックポインタ(SP)はバンク
を切り換えた際に必ずバンクRAMのバンクの一部とし
て選択されることになる。すなわち、スタップポインタ
(SP)として割り付けられた汎用レジスタは、実行ル
ーチンの変更によりバンクを切り換えた時には、新たに
選択されたバンクブロック内のバンクに必ず退避される
ことになる。
【0023】なお、スタックポインタ(SP)を汎用レ
ジスタ群2の先頭の汎用レジスタ(RW0)に割り付け
ない場合であっても、スタックポインタ(SP)がバン
クとして選択されるようにすることは可能である。
【0024】このようなレジスタバンク構造において、
戻り情報は、カレントバンクポインタ(CBP)に保存
されて、割込みが発生した時には、汎用レジスタ群2は
カレントバンクポインタ(CBP)が示すバンク位置の
バンクRAM4に書き戻される。この時に、バンクポイ
ンタのサイズは、プロセッサステータスワード(PS
W)のバンク数指定ビット(BS)の2ビットで設定さ
れる。
【0025】一方、専用レジスタ群1は、カレントバン
クポインタ(CBP)の値から1を引いた値のバンク位
置のバンクRAM4に退避される。
【0026】図2は図1に示したレジスタバンク構造に
おけるバンクRAM4のマイクロプロセッサにおける実
行ルーチンに対する割り付けの一例を示す図である。
【0027】図2において、メインルーチンでは、バン
ク15〜バンク18を使用し、割込みルーチン1〜3で
は、未使用のバンクを他のルーチンと共用している。図
2に示すバンクの使用例において、メインルーチンから
サブルーチン1に移り、さらにサブルーチン1からサブ
ルーチン2に移るような場合には、レジスタの重り部を
介してパラメータの受け渡しが行なわれる。
【0028】また、現在実行中のタスクでは、割込み発
生に備えて専用レジスタを退避するためのバンクを確保
しておく必要があるため、サブルーチン2ではこのバン
クとしてバンク9が割り当てられている。一方、メイン
ルーチン及びサブルーチン1は、現在実行中でないため
に専用レジスタの退避のためのバンクは不要となり、そ
のためのバンクがそれぞれサブルーチン1,2で使用さ
れている。
【0029】このように、この発明の実施例にあって
は、スタックポインタ(SP)を汎用レジスタ(RW
0)と兼用しているため、1つのバンクブロックのレジ
スタ群の個数に依存することなく、それぞれの実行ルー
チンの変更によるバンクの切り換えにおいて、スタック
ポインタ(SP)は必ずバンクとして選択され、スタッ
クポインタ(SP)をバンクに退避させるための専用の
命令が不要となる。これにより、命令のビット幅を削減
することが可能となり、かつ必要に応じた大きさのバン
クを使用することにより、汎用レジスタを効率良く使用
することが可能となる。
【0030】図3はスタックポインタのビット幅を可変
とした実施例を示す図である。
【0031】図3に示す実施例の特徴とするところは、
スタックポインタ(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個となる。
【0033】したがって、必要なスタック領域が64K
バイト以内である場合には、スタックポインタ(SP)
として1つの汎用レジスタ(RW0)を選択するように
すれば、スタックポインタ(SP)を32ビット幅とし
た場合に比べて汎用レジスタが1個多く使用することが
可能となり、汎用レジスタを効率良く使用することがで
きる。また、バンクブロック当たりのレジスタ数の可変
で、かつスタックポインタ幅が32ビットで固定である
場合、例えばレジスタ数を16本としたとき、汎用レジ
スタは14本で十分な数が使用できるが、レジスタ数を
4本としたときには、汎用レジスタは2本しか使用でき
ない。
【0034】すなわち、バンクブロック当たりのレジス
タ数を減らすと、相対的にスタックポインタの占める割
合が増加し、そのために、バンクブロック当たりのレジ
スタ数を増やさねばならない状況が考えられる。これは
汎用レジスタの使用効率の低下をまねく。
【0035】このような不具合は、スタックポインタを
可変として、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】 汎用レジスタ群の一部に割り当てされた
    スタックポインタと、 1つのバンクブロックに対して退避/復帰するレジスタ
    の個数を可変とし、バンクブロックが切り換えられる際
    に、前記スタックポインタが割り当てられる汎用レジス
    タが、選択されるバンクブロックに退避されてなるレジ
    スタバンクとを有することを特徴とするマイクロプロセ
    ッサ。
  2. 【請求項2】 前記スタックポインタは、ビット幅が可
    変されてなることを特徴とする請求項1記載のマイクロ
    プロセッサ。
JP04140404A 1992-06-01 1992-06-01 マイクロプロセッサ Expired - Fee Related JP3110866B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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