JPH02217925A - マイクロプロセッサ - Google Patents

マイクロプロセッサ

Info

Publication number
JPH02217925A
JPH02217925A JP1037805A JP3780589A JPH02217925A JP H02217925 A JPH02217925 A JP H02217925A JP 1037805 A JP1037805 A JP 1037805A JP 3780589 A JP3780589 A JP 3780589A JP H02217925 A JPH02217925 A JP H02217925A
Authority
JP
Japan
Prior art keywords
register
registers
window
module
microprocessor
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
JP1037805A
Other languages
English (en)
Other versions
JPH0630063B2 (ja
Inventor
Kenji Sakagami
健二 坂上
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
Toshiba Electronic Device Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Microelectronics 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, Toshiba Microelectronics Corp filed Critical Toshiba Corp
Priority to JP1037805A priority Critical patent/JPH0630063B2/ja
Priority to DE69028224T priority patent/DE69028224T2/de
Priority to EP90103037A priority patent/EP0383342B1/en
Priority to KR1019900001965A priority patent/KR920006789B1/ko
Publication of JPH02217925A publication Critical patent/JPH02217925A/ja
Publication of JPH0630063B2 publication Critical patent/JPH0630063B2/ja
Priority to US08/287,428 priority patent/US5642523A/en
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/22Microcontrol or microprogram arrangements
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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
    • G06F9/30127Register windows
    • 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms
    • 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)
  • Devices For Executing Special Programs (AREA)
  • Microcomputers (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔発明の目的〕 (産業上の利用分野) 本発明は、マイクロプロセッサに関し、特に、RI S
 C(Reduced In5truction C0
1putOr 5et)タイプのマイクロプロセッサに
関する。
(従来の技術) SPARCアーキテクチャ−によるマイクロプロセッサ
は、例えば、刊行物rlOMIPsから100MPSま
でを単一アーキテクチャ−でカバーするS P A R
CJ  011KKEI BYTE/MARC)l 1
988)に示されている。ここには、レジスタウィンド
ウを用いたマイクロプロセッサに関して詳述されている
。このようなシステムで使用する、プロシージャコール
を多用するプログラムにおいては、多くのウィンドウを
使用することになる。
従って、マイクロプロセッサチップ上のウィンドウ数が
少ないとウィンドウのオーバーフロー/アンダーフロー
トラップ処理によるオーバーヘッドが大きな問題となっ
てくる。5PARCアーキテクチャ−では、1つのウィ
ンドウを追加するためには、32ビツト長のレジスタを
16本必要とする。しかしながら、チップ上のウィンド
ウ数はハードウェア量によって制限を受けるため、現実
には多くすることはできない。ちなみに、5PARCで
は、ウィンドウの数は最小6個、最大32個と規定して
いるが、1.5μmC−MOSゲートアレイによるチッ
プの数は、上記刊行物では7個となっている。
(発明が解決しようとする課題) 従来のマイクロプロセッサは以上のように構成されてい
るので、1個のウィンドウに割り当てるレジスタ数は固
定である(以下これを固定方式と呼ぶ)。しかしながら
、個々のプロシージャコールで実際に使用するレジスタ
数は割り当て数より少ない場合も多くあり、割り当て数
が固定であるということは非常に冗長である。このため
、例えば、現在のウィンドウで未使用のレジスタを別の
ウィンドウに割り当ててウィンドウ数を増やすといった
、レジスタのa効活用ができない。
このような聞届を解決する目的で、1つのウィンドウに
割り当てるレジスタ数を可変にする方式が従来技術とし
て知られている(以下、この方式をiiJ変方式と呼ぶ
)。
本発明は、FiJ変方式のL/ジスタウイントウを含む
マイクロプロセッサの構成技術に関し、その目的の1つ
は、プロセッサの実行プログラムの内容に応じて、自動
的に1つのウィンドウに割り当てるレジスタ数を決定す
る可変方式のレジスタウィンドウの構成技術を提供し、
固定方式のレジスタウィンドウによるマイクロプロセッ
サの為に開発されたプログラムをそのまま実行できる可
変方式のレジスタウィンドウによるプロセッサの構成技
術を提供することにより、上記プログラムの内容の変更
なしに従来のプログラムの処理速度を、ウィンドウのオ
ーバープロー/アンダーフローのオーバーヘッドを低減
することにより、改善出来るようにすることにある。
目的のもうひとつは、可変方式のレジスタウィンドウに
よるマイクロプロセッサで、その命令セットの中に、ウ
ィンドウへのレジスタ割り当て数を制御する命令を設け
たマイクロプロセッサ技術を提供し、プログラム内のプ
ロシージャの使用するレジスタ数の規模に応じて柔軟に
ウィンドウへのレジスタ割り当て数を決定できるように
し5、使い勝手が良く、かつウィンドウの使用効率を高
め、ウィンドウのオーバーフロー/アンダーフローによ
るオーバーヘッドを低減でき、コストパフォーマンスの
優れたマイクロプロセッサを提供することにある。
〔発明の構成] (課題を解決するための手段) 本発明の第1のマイクロプロセッサは、複数個のレジス
タウィンドウを有し、前記各レジスタウイントウは複数
個のレジスタを有するマイクロプロセッサであって、 前記各レジスタは前記レジスタウィンドウのうちの複数
のものに対して割り当てられており、さらに、 プログラム上の個々のプロシージャに対して前記lノジ
スタウインドウのうちのいずれかを割り当てることによ
り、前記各プロシージャ上で使用されるワーキングレジ
スタを決定する第1決定手段と、 前記各レジスタウィンドウへのレジスタ割り当て数を、
前記ワーキングレジスタに対するアドレス情報に基づい
て自動的に記憶する記憶手段と、前記記憶手段中の前記
割り当て数に基づいて、前記各レジスタウィンドウが前
記レジスタのうちのどれによって構成されるかを決定す
る第2決定手段と、を備えるものとして構成される。
本発明の第2のマイクロプロセッサは、複数個のレジス
タウィンドウを有し、前記各レジスタウィンドウは複数
個のレジスタを有し、さらにCPUを有するマイクロプ
ロセッサであって、前記各レジスタは前記レジスタウィ
ンドウのうちの複数のものに対して割り当てられており
、さらに、 プログラム上の個々のプロシージャに対して前記レジス
タウィンドウのうちのいずれかを割り当てることにより
、前記各プロシージャ上で使用されるワーキングレジス
タを決定する第1決定手段と、 前記各レジスタウィンドウへのレジスタ割り当て数を、
前記CPUが実行できる命令の1つに基づいて記憶する
記憶手段と、 前記記憶手段中の前記割り当て数に基づいて、前記各レ
ジスタウィンドウが前記レジスタのうちのどれによって
構成されるかを決定する第2決定手段と、を備えるもの
として構成される。
(作 用) 各レジスタウィンドウ(モジュール)へのレジスタ割り
当て数が記憶手段に記憶されている。第2決定手段は、
その割り当て数に応じて、各モジュールがどのレジスタ
によって、即ち何個のレジスタによって構成されるかを
決定する。従って、記憶手段中の割り当て数によって、
各モジュールが何個のレジスタによって構成されるかが
変化することとなる。即ち、プログラム上の個々のプロ
シージャに応じて、そのプロシージャ上で使用されるワ
ーキングレジスタが第1決定手段で決定されると共にワ
ーキングレジスタを構成するレジスタの数が第2決定手
段で決定される。
さらに、第1の発明においては、記憶手段での、各レジ
スタウィンドウへのレジスタ割り当て数の記憶は、ワー
キングレジスタに対するアドレス情報に基づいて自動的
に行われる。また、第2の発明においては、前記割り当
て数の記憶は、CPUの実行できる命令の1つに基づい
て行われる。
(実施例) 以下、図面を参照しながら本発明の詳細な説明する。
第1図は本発明の一実施例に係るマイクロプロセッサの
ブロック図で、特にウィンドウの1ocals、 ou
tsに割り当てるレジスタ数を8本または4本とするこ
とを可能とした例を示すものである。
第1図において、レジスタアドレスrsl−AO〜4は
ソースレジスタ1を、レジスタアドレスrs2−AO〜
4はソースレジスタ2を、レジスタアドレスrd−AO
〜4はデステネーションレジスタをそれぞれ指定するも
のである。前記各アドレスのうちのAO〜2はそれぞれ
R−FILE1モジュール101、R−FILEIモジ
ュール102、R−FI LE2モジュール103に与
えられる。より詳しくは、アドレスr s 1−AO〜
2は各モジュールのボー1− P、 0− A O〜6
に、アドレスrs2−AO〜2はボートPI−AO〜6
に、アドレスrd−AO〜4はボートp2−AO〜6に
それぞれ与えられる。また、各アドレスA2は論理ブロ
ック100に与えられる。そして、各アドレスのA3〜
4はそれぞれデコーダ(DEC)104,105.10
6に与えられる。
一方、rsl−DO〜31はソースレジスタ1の出力デ
ータであり、rs2−DO〜31はソースレジスタ2の
出力データである。これらの「5l−DO〜31および
rs2−DO〜31のいずれもR−FILEIモジュー
ル101、R−FILEIモジュール102、R’−F
ILE2モジュール103のそれぞれのボートPO−D
O〜31、P 1−DO〜31から出力される。また、
rd−DO〜31はデステネーションレジスタへの人力
データであり、R−FILEIモジュール101、R−
FILEIモジュール102およびR−F I LE2
モジュール103の各ボートP2−Do〜31に与えら
れる。
なお、八〇〜4で示されるアドレスはglobalsS
本と1個のウィンドウ24本(ins 8本、1oca
lss本、outss本)の計32本のワーキングレジ
スタの指定を行なうものである。DO〜31で示される
データはアドレスAO〜4に対応するワーキングレジス
タの入出力データである。
なお、プログラム上の基本演算は2つのソースレジスタ
と1つのデステネーションレジスタとの間で見かけ上1
サイクルで行なうようにされている。ワーキングレジス
タを構成するR−F I LE1モジュール101、R
−FILEIモジュール102およびR−FiLE2モ
ジュール103は、データ出力ボートが2個、データ入
力ボートが1個の3ボート構成となっている。各アドレ
スおよびデータは、R−FILEIモジュール101、
R−FILEIモジュール102およびR−F I L
E2モジュールIO3の各ボートに対して独立に接続さ
れている。
R−FILEIモジュール101は1ns10utsの
ワーキングレジスタを構成するレジスタファイルのモジ
ュールで、32ビット×56本の構成を有する。R−F
ILEIモジュール102はIocalsのワーキング
レジスタを構成するレジスタファイルのモジュールで、
32ビットX56本の構成を有する。また、R−FIL
E2モジュール103はglobalsのワーキングレ
ジスタを構成するレジスタファイルのモジュールで、3
2ビット×8本の構成を有する。
ちなみに、各R−FXLEIモジュール101、R−F
 I LE 1モジユール102およびR−FILE2
モジュール103において、ΦはクロックCLKの入力
端子、REはリードイネーブルREGR−ENの入力端
子、WEはライトイネーブルRE GW−E Nの入力
端子、SO〜2は各ボートの選択を行なう信号の入力端
子である。
R−FILEIモジュール101の内部は、第2図に示
すように、0〜13の番地付けのなされた14個のブロ
ックに分割されている。さらに、1つのブロックは4本
のレジスタにより構成される。そして、ボートPOのア
ドレスA3〜6(上位4ビツト)がブロックアドレスに
なり、ボートPOのアドレスAO〜2(下位3ビツト)
がボートPOのアドレス八3〜6が指定するブロックを
ベースとした8本のレジスタに対するアドレスになる。
ボートP1のアドレスAO〜6、ボートP2のアドレス
AO〜6も上記と同様である。ウィンドウ13が8本モ
ードであるときのレジスタファイルの割り当てブロック
は、IocalsはR−FILEIモジュール102の
ブロック13゜12、outsはR−FILEIモジュ
ール101のブロック13.12、InsはR−FIL
EIモジュール101のブロック0(初期状態)である
また、ウィンドウ13が4本モードであるときのレジス
タファイルの割り当てブロックはIocalsはR−F
 I LE 1モジユール102のブロック13、ou
tsはR−FILEIモジュール101のブロック13
、InsはR−FILEIモジュール101のブロック
0(初期状態)となる。この他、SO〜2の入力信号に
よってボートPO〜2がイネーブルかそうでないかを決
定する。ちなみに、ボートPO〜2がイネーブルとなる
のはSO〜2の入力信号が1″の時である。
また、カレントウィンドウポインタ(CWPア107は
現在のプロシージャが使用しているウィンドウの番号を
出力するものであり、且つインクリメント信号INCに
基づいてインクリメント可能な5ビツトのバイナリカウ
ンタである。ちなみに、5PARCではカレントウイン
ドウポインタ(CWP)はプロセッサステートレジスタ
(PSR)の下位5ビツトを形成しているので、本実施
例ではこれに準じて5ビツトとしている。
このカレントウィンドウポインタ(CWP)107は、
リセット信号RESETが入力されると、カウント値が
プロシージャが最初に使用するウィンドウの番号CWP
−13にセットされる。
ちなみに、5PARCではウィンドウ番号の最も大きな
ものから使用していくので、本実施例はこれに準じてい
る。なお、CWP−0の状態でディクリメント信号DE
CによりデクリメントするとCWP−13に戻る。そし
て、カレントウィンドウポインタ(CWP)107の出
力信号cwp。
〜4は次に説明するレジスタ(W−CC)108のビッ
トを指定する。
レジスタ(W−CC)10gは、各ウィンドウが、8本
モードかあるいは4本モードかの情報を記憶する14ビ
ツトのレジスタである。14ビツトはそれぞれ14個の
ウィンドウに対応している。
各ビットはO“が4本モードに、“1”が8本モードに
それぞれ対応している。これは、RESETが入力され
ると全ビットが0“にリセットされ、4本モードに設定
される。8本モードへの切り替えは、次のようにして自
動的に実施される。即ち、outsとIocalsのワ
ーキングレジスタのそれぞれの8個のアドレスの順に前
半と後半の4個に分ける。プロシージャで0118. 
tocalsとも後半の4個しかアクセスせずに次のウ
ィンドウに移った場合は、そのウィンドウは4本モード
のままになっている。もし、outs、 1ocals
のいずれかで、前半のいずれかのレジスタをアクセスす
ると、レジスタ(W−CC)108の対応するビットが
“1″にセットされ、このウィンドウは8本モードとな
る、Iocalsの前半はr16〜r19、後半は「2
0〜「23、outsの前半はr8〜rll、後半は「
12〜r15である。
一方、許可信号rglccW−ENは、ソースレジスタ
1のレジスタアドレスのrsl−A2を、レジスタ(W
−CC)108のセットに使用することを許可するもの
である。また、許可信号「52CCW−ENは、ソース
レジスタ2のレジスタアドレスのrs2−A2を、レジ
スタ(W−CC)108のセットに使用することを許可
するものである。そして、許可信号rdCCW−ENは
、デステネーションレジスタのレジスタアドレスのrd
−A2を、レジスタ(W−CC)108のセットに使用
することを許可するものである。これらの許可信号rs
 ICCW−EN、r 52CCW−EN、rdCCW
−ENは各アドレスA2が人力される論理ブロック10
0に入力され、結果としてレジスタ(W−CC)108
の特定のビットを“1゛にセットするセット信号5ET
−CCを出力する。ちなみに、この場合のビットの指定
は、カレントウィンドウポインタ(CWP)107から
のcwpo〜4で行なうことになる。
論理ブロック100からのセット信号5ET−CCとカ
レントウィンドウポインタ(cwp)107からのcw
po〜4とによってビット指定されたレジスタ(W−C
C)108は、ビット出力ccnとビット出力ccn−
1をカレントブロックポインタ(CBP)109に送出
する。ちなみに、ビット出力CCnは現在のウィンドウ
に対応するレジスタ(W−CC)108のビット状態で
あり、ビット出力ccn−1は前のウィンドウに対応す
るレジスタ(W−CC)108のビット状態である。
カレントブロックポインタ(CBP)109は現在のウ
ィンドウが実際に使用するR−FILE1モジュール1
01でのブロックを指定する4ビツトのバイナリカウン
タであり、 −1#−2″  “+1“+2″の動作が
可能である。このカレントブロックポインタ(CB P
)109は、リセット信号RES、ETが入力されると
、プロシージャが最初に使用するウィンドウに対してR
−FILEIモジュール101のブロック13を割り当
てるので、CWP−13となる。
ちなみに、cwp−oの状態でディクリメント信号DE
Cによりディクリメントするとcwp−13に戻る。こ
のカレントブロックポインタ(CBP)109の出力c
wp−cbpo〜3によって、ウィンドウに割り当てる
レジスタ数が制御される。なお、この出力CBP−Cb
PO〜3はウィンドウのオーバーフロー/アンダーフロ
ーの情報を外部に知らせる機能をも存する。そして、C
WPがCWP−1となって次のウィンドウに移るとき、
ビット出力cCnが“1″ならCBPがCBP−2とな
り、現在のウィンドウに対して8本のレジスタ(2個の
ブロック)を割り当てる。
一方、ビット出力ccn−“0′ならばCBPがCBP
−1となり現在のウィンドウに対して4本のレジスタ(
1個のブロック)を割り当てる。これに対して、CWP
がCWP+1となり前のウィンドウに戻るときはビット
出力ccn−1が“1゜ならばCBPがCBP+2とな
り、ビット出力c c n −1が“0“ならばCBP
がCBP+1となる。
サブストラクタ(INSAC)110,111゜112
は、レジスタアドレスがInsを指定したとき、Ins
 10utsのR−FILEIモジュール101へのブ
ロック指定アドレスをoutsの値からinsの値に変
換する4ビツトのサブストラクタであり、R−FILE
Iモジュール101のボートPO,P1..P2にそれ
ぞれ対応して設けられる。
そして、insが指定されてビット出力ccn−1が1
“のときに、サブストラクタ(INSAC)110.1
11,112からの各出力信号CbPO′0〜3、Cb
P1’ O〜3、CbP2’0〜3の各位はCBP−2
となり、ビット出力CCn−1が“O”の時にサブスト
ラクタ(INSAC;)110.111,112からの
出力信号cbpo’ o〜3、CbPl、’0〜3、C
bP2’ 0〜3の値はCBP−1となる。一方、ou
tsが指定されるとサブストラクタ(INSAG)11
0.111,112からの出力cbpo’0〜3、Cb
P1’ 0〜3、CbP2’ 0〜3の各位としてはC
BP−0〜3がそのままスルーして出力される。
デコーダ(DEC)104,105.106はそれぞれ
レジスタアドレスrsl−AO〜4、rs2−AO〜4
、rd−AO〜4のうちの各上位2ビツトA3〜4によ
り、globals 、 ins 。
1oealsのうちのいずれかのレジスタアドレスにな
っているかをデコードするものである。そして、A3−
“O” 、A4−“0“の時には、デコーダ(DEC)
104からはglob−rs 1が、デコーダ(DEC
)105からはglob−rs 2が、デコーダ(DE
C)106からはglob−rdがそれぞれ出力される
。また、A3−“1”、A4−“0°の時には、デコー
ダ(DEC)104からはIn−rs 1が、デコーダ
(DEC)105からはIn−rs 2が、デコーダ(
DEC)106からはIn−rdがそれぞれ出力される
。また、八3−“0”、A4−“1″の時には、デコー
ダ(DEC)104からはfoe−rs 1が、デコー
ダ(DEC)105からはtoe−rs2が、デコーダ
(DEC)106からはtoe−rdがそれぞれ出力さ
れる。そして、A3−“1”、A4−”1“の時には、
デコーダ(DEC)104からはout−rs 1が、
デコーダ(DEC)105からはout−rs 2が、
デコーダ(DEC)106からはout−rdがそれぞ
れ出力される。これらの信号のうち10−rs 1、t
n−rs 2.1n−rdとout−rs 1、rs2
、「dとは論理ブロック200で処理され、l08EL
O〜2というR−FILEIモジュール101の各ボー
トをイネーブルにする信号として送出されて、R−FI
LE1モジュール101の入力端子SO〜2に人力され
る。また、foe−rs 1、foe−r52、foe
−rdはR−FILEIモジュール102の各ボートを
イネーブルにする信号として送出されR−FILEIモ
ジュール102の入力端子SO〜2に入力される。また
、glob−rs 1 、glob−rs 2、glo
b−rdはR−FILEIモジュール103の各ボート
をイネーブルにする信号として送出されR−FILEI
モジュール103の入力端子SO〜2に入力される。ち
なみに、ワーキングレジスタのアドレスは「0〜7がg
 I oba I sに、r8〜15がoutsに、r
16〜23がl0ealsに、r24〜31がfnsに
それぞれ対応する。
以上のような構成において、次にその動作を第3図のタ
イミングチャートに基づいて説明する。
ちなみに、第3図(A)はクロックCLK、(B)はデ
ィクリメント信号DEC,(C)はインクリメント信号
、(D)はR−FILEIモジュール10]、R−F 
I LE 1モジユール102およびR’−FILE2
モジュール103に与えられるリードイネーブルREG
R−EN、(E)はR−FILEIモジュール101、
R−FILEIモジュール102およびR−FILE2
モジュール103に与えられるライトイネーブルRE 
GW−EN、(F)は各レジスタアドレスをレジスタ(
W−CC)108にセットすることを許可する許ii信
号rslccW−EN、rs2CCW−ENS rbC
CW−EN、(G)はレジスタアドレスrsl−AO〜
4、(H)はレジスタアドレスrs2−AO〜4、(1
)はレジスタアドレスrd−AO〜4、(J)はソース
レジスタ1の出力データrsl−DO〜31、(K)は
ソースレジスタ2の出力データr s 2−DO〜31
、(L)はデステネーションレジスタの出力データrd
−DO〜31、(M)はカレントウィンドウポインタ(
CWP)107の出力cwpo〜4、(N)はレジスタ
(、W−CC)108のビット出力c c n、  (
0)はレジスタ(W−CC)108のビット出力ccn
−1、(P)はカレントブロックポインタ(CBP)1
09の出力であるCbPO〜3、(Q)はサブストラク
タ(INSAG)110から送出されるCbPO′ 0
〜3、(R)はサブストラクタ(I N5AC:、) 
111から送出されるCbP1’ 0〜3、(S)はサ
ブストラクタ(INSAG)112から送出されるCb
P2’O〜3、(T)はデコーダ(DEC)104から
出力されるglob−rs 1、(U)デコーダ(DE
C)104から出力されるIn−rs 1、(V)はデ
コーダ(DEC)104から出力されるfoe−rs 
1、(W)はデコーダ(DEC)104から出力される
out−rs 1、(X)は論理ブロック100から出
力されるセット信号5ET−CCである。
第3図に示した命令のシーケンスは■でADD。
■テS AV E、■でADD、■テS A V E 
(!: t ッている。■ADDでは「dのr7にrs
lの「31とrs2のr12を加算して移す。次に、■
5AVEでは次のウィンドウに移り、CWP@CWP−
1とする。そして、■ADDではrdの「6にrslの
「16とrs2のr12を加算して移す。そして、次の
■5AVEでセーブする。ちなみに、この場合(r31
)には7が、(r 12)には3が、〔・r16〕には
2がそれぞれ予め入っているものとする。文献(前記刊
行物)による5PARCチツプでは命令を4段のバイブ
ラインで実行しているので、本実施例ではこれに準じて
4段のバイブラインとする。 次に、第4図に基づいて
バイブライン構造の概略を説明する。ここでは、ADD
命令を例にとって各ステージでの処理を説明する。
先ず、ADD命令をメモリ200から取り出し、インス
トラクションレジスタ(IR)202に書き込む(ステ
ップF)。次に、インストラクションレジスタ(IR)
202の中の命中をインストラクションデコーダ(ID
EC)204に入力してこれをデコードする。そして、
次の命令に対するアドレスを、アドレスジェネレータ(
A G)206およびプログラムカウンタ(PC)20
gにより発生する。レジスタアドレスrsl、rs2(
2つのソースレジスタのデータ)をレジスタファイル(
RF)210から読み出し、Aレジスタ212、Bレジ
スタ214に書き込む(ステップD)。
Aレジスタ212のデータとBレジスタ214のデータ
を演算ユニッhALU216で加算して、結果を結果レ
ジスタ(R)218に書き込む(ステップE)。
結果レジスタ(R)218のデータをrdの示すデステ
ネーションレジスタに書き込む(ステップS)。
第3図のタイミングチャートでは上記各ステップをクロ
ックCLKのtl、t2、t3、t4に対応づけて示し
ている。即ち、先ず、■のADDにおいては、t2のス
テップDでレジスタアドレスrsl−AO〜4−31.
レジスタアドレスrs2−AO−12となりレジスタフ
ァイルからr31とr12のデータを読み出す。但し、
実際の読み出し動作は【2の後半で行なっているので、
データrsl−DO〜31、データrs2−DO〜31
にデータが出力されるのはt2の後半となる。「31の
データは3であるので、データ「5l−DO〜31−7
、データrs2−DO〜31−3となる。そして、t3
のステップEではr31+r12=10を実行し、結果
をレジスタに書き込む。r31はInsレジスタなので
、「31の読み出しのときにはCBP−1でcbpo’
  o〜3−0となる。次の、t4のステップSでは、
結果レジスタのデータをデステネーションレジスタのr
7に書き込む。書き込みはt4の前半で行なう。なお、
t4の前半においては、■のADD命令のためにソース
レジスタからの読み出しが行なわれている。
■の5AVEでは、t4のステップEでcwp−CWP
−1を実行する。■の実行において、1 oca I 
sへのアクセスがなく且つoutsのアクセスにおいて
もr8〜「15の中で後半のr12へのアクセスであっ
たので、レジスタ(W−CC)108のビット13−“
0“のままであるので、つまりウィンドウ13は4本モ
ードのままであるので、CBP−CBP−1を実行する
そして、■のADDでは、t4のステップDにおいて、
r16とr12のデータ2,3がデータrsl−DO〜
31、rs2−Do〜31に出力される。このとき、r
16はIoca、lsの前半のレジスタなので、セット
出力5ET−CC−“1°となり、レジスタ(W−CC
)108のビット12に′12がセットされる。その結
果、ウィンドウ12は8本モードになる。
次の、■の5AVEでは、t4のステップEで、CWP
−CWP−1を実行する。ウィンドウ12は8本モード
になっているので、CBP−CBP−1を実行する。
以上の例では、Iocalsとoutsの割り当て数を
ブロック単位で管理しており、Ioealsと1ns1
0utsのレジスタ数が等しく、さらにIocalsと
111s10utsを分離して別のモジュールにしてい
る。その結果、ウィンドウ1個当たりのコンデイション
情報が1ビツトでよく、実アドレス発生回路が簡単にな
り、実アドレスの計算も非常に高速に実行できるように
なるというメリットがある。
なお、上記実施例では8本と4本の切り替えを例示した
が、レジスタの割り当て数は8本〜0本の範囲で任意に
選ぶことができる。また、IocalSとoutsへの
レジスタの割り当て数を異なるようにしても良い。
ちなみに、ウィンドウに対するレジスタ数を可変とすれ
ば、レジスタ(W−CC)108としては14ビツトレ
ジスタが、カレントブロックポインタ(CBP)109
としては4ビツトカウンタが、およびサブストラクタ(
INSAG)110゜111.112としては4ビット
フルアダー×3−12ビツトフルアダーの機能回路がそ
れぞれ必要となる。これに対し、ウィンドウをn個追加
するのに必要な回路は、32ビツト長レジスタ×16×
nであるので、第1図の構成のほうがコストパーフォー
マンスが非常に優れていることがわかる。
また、上記実施例ではハードウェアで8本/4本の切り
替えを行なっているが、プロセッサ自身が切り替え命令
を持つようにして、その命令を用いてソフトウェア上で
切り替えを行なうようにしても良いことはもちろんであ
る。
この場合、第1図に示すW−CCレジスタのような機能
をはたすレジスタの内容を、所定の値に書き変える命令
を、プロセッサの命令セットに設ければ良い。
〔発明の効果〕
本発明によれば、複数のワーキングレジスタを有するシ
ステムにおいて、ウィンドウ(モジュール)に割り当て
るレジスタ数を変化することができるため、システムの
冗長性が無くなり、ハードウェア資源を無駄無く有効に
利用することが可能となり、コストパーフォーマンスの
優れた、レジスタウィンドウ方式によるマイクロプロセ
ッサを得ることができるという可変方式の特長に加え、
さらに、本発明の第1の発明によれば、レジスタウィン
ドウのレジスタの割り当て数の記憶を、ワーキングレジ
スタに対するアドレス情報に基づいて自動的に行うよう
にしたので、固定方式の既存のプログラムをそのまま実
行でき、かつウィンドウのオーバーフロー/アンダーフ
ローによるオーバーヘッドを低減することの可能なマイ
クロプロセッサを得ることができる。
また、本発明の第2の発明によれば、前記割り当て数の
記憶を、CPUが実行できる命令の1つに基づいて行う
ようにしたので、プログラム内のプロシージャの使用す
るレジスタの規模に応じて割り当て数の変更等をソフト
ウェアによって実現でき、従来技術による可変方式のプ
ロセッサよりもさらにレジスタの使用効率を高めること
ができ、より使い勝手が良く、よりコストパフォーマン
スの高い可変方式のウィンドウによるマイクロプロセッ
サを提供することができる。
セッサのブロック図、第2図は第1図のR−FILEI
モジュール101の詳細例を示す説明図、第3図は第1
図の装置の動作を説明するタイミングチャート、第4図
はバイブライン構造の概略説明図である。
101・・・R−FILEIモジュール、102・・・
R−FILEIモジュール、103・・・R−F I 
LE2モジュール、104.105,106・・・デコ
ーダ(DEC)、107・・・カレントウィンドウポイ
ンタ(CWP)、108・・・レジスタ(W−CC)、 109・・・カレントブロックポインタ(CB P)、
110.111,112・・・サブストラクタ(INS
AG)。
【図面の簡単な説明】

Claims (1)

  1. 【特許請求の範囲】 1、複数個のレジスタウィンドウを有し、前記各レジス
    タウィンドウは複数個のレジスタを有するマイクロプロ
    セッサであって、 前記各レジスタは前記レジスタウィンドウのうちの複数
    のものに対して割り当てられており、さらに、 プログラム上の個々のプロシージャに対して前記レジス
    タウィンドウのうちのいずれかを割り当てることにより
    、前記各プロシージャ上で使用されるワーキングレジス
    タを決定する第1決定手段と、 前記各レジスタウィンドウへのレジスタ割り当て数を、
    前記ワーキングレジスタに対するアドレス情報に基づい
    て自動的に記憶する記憶手段と、前記記憶手段中の前記
    割り当て数に基づいて、前記各レジスタウィンドウが前
    記レジスタのうちのどれによって構成されるかを決定す
    る第2決定手段と、を備えることを特徴とするマイクロ
    プロセッサ。 2、複数個のレジスタウィンドウを有し、前記各レジス
    タウィンドウは複数個のレジスタを有し、さらにCPU
    を有するマイクロプロセッサであって、 前記各レジスタは前記レジスタウィンドウのうちの複数
    のものに対して割り当てられており、さらに、 プログラム上の個々のプロシージャに対して前記レジス
    タウィンドウのうちのいずれかを割り当てることにより
    、前記各プロシージャ上で使用されるワーキングレジス
    タを決定する第1決定手段と、 前記各レジスタウィンドウへのレジスタ割り当て数を、
    前記CPUが実行できる命令の1つに基づいて記憶する
    記憶手段と、 前記記憶手段中の前記割り当て数に基づいて、前記各レ
    ジスタウィンドウが前記レジスタのうちのどれによって
    構成されるかを決定する第2決定手段と、を備えること
    を特徴とするマイクロプロセッサ。
JP1037805A 1989-02-17 1989-02-17 マイクロプロセッサ Expired - Fee Related JPH0630063B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP1037805A JPH0630063B2 (ja) 1989-02-17 1989-02-17 マイクロプロセッサ
DE69028224T DE69028224T2 (de) 1989-02-17 1990-02-16 Mikroprozessor
EP90103037A EP0383342B1 (en) 1989-02-17 1990-02-16 Microprocessor
KR1019900001965A KR920006789B1 (ko) 1989-02-17 1990-02-17 마이크로프로세서
US08/287,428 US5642523A (en) 1989-02-17 1994-08-09 Microprocessor with variable size register windowing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1037805A JPH0630063B2 (ja) 1989-02-17 1989-02-17 マイクロプロセッサ

Publications (2)

Publication Number Publication Date
JPH02217925A true JPH02217925A (ja) 1990-08-30
JPH0630063B2 JPH0630063B2 (ja) 1994-04-20

Family

ID=12507729

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1037805A Expired - Fee Related JPH0630063B2 (ja) 1989-02-17 1989-02-17 マイクロプロセッサ

Country Status (5)

Country Link
US (1) US5642523A (ja)
EP (1) EP0383342B1 (ja)
JP (1) JPH0630063B2 (ja)
KR (1) KR920006789B1 (ja)
DE (1) DE69028224T2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100325175B1 (ko) * 1991-07-08 2002-02-25 고성능 알아이에스씨 마이크로프로세서 구조
JP2006039874A (ja) * 2004-07-26 2006-02-09 Fujitsu Ltd 情報処理装置
US8161467B2 (en) 2001-05-29 2012-04-17 International Business Machines Corporation Compiling method and storage medium therefor

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07114498A (ja) * 1993-10-15 1995-05-02 Toshiba Corp マイクロプロセッサ
ES2340370T3 (es) * 1998-10-10 2010-06-02 International Business Machines Corporation Conversion de codigo de programa con traduccion reducida.
JP2000353092A (ja) * 1999-06-09 2000-12-19 Nec Corp 情報処理装置及びそのレジスタファイル切替方法
US6553487B1 (en) * 2000-01-07 2003-04-22 Motorola, Inc. Device and method for performing high-speed low overhead context switch
WO2003065165A2 (en) * 2002-01-31 2003-08-07 Arc International Configurable data processor with multi-length instruction set architecture
US7127592B2 (en) * 2003-01-08 2006-10-24 Sun Microsystems, Inc. Method and apparatus for dynamically allocating registers in a windowed architecture

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0217541A (ja) * 1988-07-06 1990-01-22 Hitachi Ltd スタツク方式マイクロコンピュータ

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4777588A (en) * 1985-08-30 1988-10-11 Advanced Micro Devices, Inc. General-purpose register file optimized for intraprocedural register allocation, procedure calls, and multitasking performance
US5021947A (en) * 1986-03-31 1991-06-04 Hughes Aircraft Company Data-flow multiprocessor architecture with three dimensional multistage interconnection network for efficient signal and data processing
JP2545789B2 (ja) * 1986-04-14 1996-10-23 株式会社日立製作所 情報処理装置
US5083263A (en) * 1988-07-28 1992-01-21 Sun Microsystems, Inc. BISC with interconnected register ring and selectively operating portion of the ring as a conventional computer

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0217541A (ja) * 1988-07-06 1990-01-22 Hitachi Ltd スタツク方式マイクロコンピュータ

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100325175B1 (ko) * 1991-07-08 2002-02-25 고성능 알아이에스씨 마이크로프로세서 구조
US8161467B2 (en) 2001-05-29 2012-04-17 International Business Machines Corporation Compiling method and storage medium therefor
US8671399B2 (en) 2001-05-29 2014-03-11 International Business Machines Corporation Systems and methods for efficiently using stack registers and storage medium therefor
JP2006039874A (ja) * 2004-07-26 2006-02-09 Fujitsu Ltd 情報処理装置

Also Published As

Publication number Publication date
EP0383342A2 (en) 1990-08-22
DE69028224T2 (de) 1997-02-06
EP0383342B1 (en) 1996-08-28
US5642523A (en) 1997-06-24
JPH0630063B2 (ja) 1994-04-20
KR900013390A (ko) 1990-09-05
KR920006789B1 (ko) 1992-08-17
EP0383342A3 (en) 1992-10-07
DE69028224D1 (de) 1996-10-02

Similar Documents

Publication Publication Date Title
US6334175B1 (en) Switchable memory system and memory allocation method
JPH0221018B2 (ja)
NL7807314A (nl) Inrichting voor het vergroten van de lengte van een logisch computeradres.
JPH02217925A (ja) マイクロプロセッサ
KR940002322B1 (ko) 전송 내부 레지스터 지정 방법
EP0715252B1 (en) A bit field peripheral
JPS6065342A (ja) マイクロコンピユ−タ
JPS5920049A (ja) 演算処理装置
JPH01134546A (ja) 演算処理装置
JPS6324343A (ja) I/oアドレスデコ−ド方式
EP0688449A1 (en) Method and apparatus for memory management
JPS60247739A (ja) マイクロプログラム制御装置
JPH0266627A (ja) 並列命令実行型プロセッサ
JPS62245350A (ja) ペ−ジ切替制御方式
JPH03126143A (ja) 中央処理装置の周辺回路
JPH07262124A (ja) メモリアクセス方法およびその方法を実現する半導体回路装置
JPH04175947A (ja) メモリ管理方式
JPH0310335A (ja) エミュレーションチップ
JPH01269128A (ja) マイクロコンピュータ
JPH0782463B2 (ja) 通信制御装置
JPS6356745A (ja) 命令処理装置のメモリアドレス制御回路
JPH03137753A (ja) アクセス制御装置
JPH04305745A (ja) レジスタファイルシステム
JPH0784937A (ja) 周辺回路のマイクロプロセッサ接続回路
JPS60245060A (ja) マイクロコンピユ−タ装置

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees