JP2003099250A - レジスタ読み出し回路及びマイクロプロセッサ - Google Patents
レジスタ読み出し回路及びマイクロプロセッサInfo
- Publication number
- JP2003099250A JP2003099250A JP2001286102A JP2001286102A JP2003099250A JP 2003099250 A JP2003099250 A JP 2003099250A JP 2001286102 A JP2001286102 A JP 2001286102A JP 2001286102 A JP2001286102 A JP 2001286102A JP 2003099250 A JP2003099250 A JP 2003099250A
- Authority
- JP
- Japan
- Prior art keywords
- register
- selection
- multiplexer
- numbers
- circuit
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
- G06F9/30163—Decoding the operand specifier, e.g. specifier format with implied specifier, e.g. top of stack
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/30141—Implementation provisions of register files, e.g. ports
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)【要約】
【課題】 回路規模や配線量を従来より削減する。
【解決手段】 本発明のレジスタ読み出し回路は、連続
するX個の選択レジスタ番号が同時に与えられ、該当す
るレジスタ値を同時に読み出すものである。そして、X
で割った剰余が同じレジスタ番号の全てのレジスタの値
から、与えられた選択制御入力に応じて、1個の値を選
択する剰余毎のレジスタ値選択手段と、各選択レジスタ
番号を、選択レジスタ番号をXで割った剰余と等しい剰
余用のレジスタ選択手段に選択制御入力として振り分け
る選択レジスタ番号交換手段と、全てのレジスタ値選択
手段が出力した値から、対応する選択レジスタ番号に応
じたものを選択出力するX個の出力選択手段とを有する
ことを特徴とする。本発明のマイクロプロセッサは、本
発明のレジスタ読み出し回路を適用したものである。
するX個の選択レジスタ番号が同時に与えられ、該当す
るレジスタ値を同時に読み出すものである。そして、X
で割った剰余が同じレジスタ番号の全てのレジスタの値
から、与えられた選択制御入力に応じて、1個の値を選
択する剰余毎のレジスタ値選択手段と、各選択レジスタ
番号を、選択レジスタ番号をXで割った剰余と等しい剰
余用のレジスタ選択手段に選択制御入力として振り分け
る選択レジスタ番号交換手段と、全てのレジスタ値選択
手段が出力した値から、対応する選択レジスタ番号に応
じたものを選択出力するX個の出力選択手段とを有する
ことを特徴とする。本発明のマイクロプロセッサは、本
発明のレジスタ読み出し回路を適用したものである。
Description
【0001】
【発明の属する技術分野】本発明は、レジスタ読み出し
回路及びマイクロプロセッサに関し、例えば、レジスタ
バンクから複数のレジスタの値を同時に読み出すために
適用し得るものである。
回路及びマイクロプロセッサに関し、例えば、レジスタ
バンクから複数のレジスタの値を同時に読み出すために
適用し得るものである。
【0002】
【従来の技術】マイクロプロセッサ、特にRISC(R
educed Instruction Set Co
mputer)方式マイクロプロセッサにおいては、加
算や減算、シフトといった演算処理の対象を、高速にア
クセス可能なプロセッサ内部の汎用レジスタに限定する
ことにより、命令実行に必要なハードウェアを簡略化
し、その分、動作クロック周波数を引き上げ、高性能化
を実現している。
educed Instruction Set Co
mputer)方式マイクロプロセッサにおいては、加
算や減算、シフトといった演算処理の対象を、高速にア
クセス可能なプロセッサ内部の汎用レジスタに限定する
ことにより、命令実行に必要なハードウェアを簡略化
し、その分、動作クロック周波数を引き上げ、高性能化
を実現している。
【0003】近年は、低コスト、小規模、低消費電力と
いった用途向けの8ビット程度のマイクロプロセッサ
(ここで8ビットとは、1度に加算や減算処理のできる
データの単位が8ビットであると定義する)でも、RI
SCアーキテクチャを採用し、C言語のような高級言語
を使用してプログラムを開発するのが一般的になりつつ
ある。
いった用途向けの8ビット程度のマイクロプロセッサ
(ここで8ビットとは、1度に加算や減算処理のできる
データの単位が8ビットであると定義する)でも、RI
SCアーキテクチャを採用し、C言語のような高級言語
を使用してプログラムを開発するのが一般的になりつつ
ある。
【0004】一般に、32ビット、64ビットといった
プロセッサでは、加算や減算の対象となるレジスタとは
別に、演算結果の格納先レジスタを指定できる命令、す
なわち、オペランドに3個のレジスタ(演算によっては
それ以上)を指定できる、例1のような命令を持つこと
が多い。これは、命令語長も32ビットや64ビットで
あるため、オペランドの指定に十分なフィールドが確保
できるからである。
プロセッサでは、加算や減算の対象となるレジスタとは
別に、演算結果の格納先レジスタを指定できる命令、す
なわち、オペランドに3個のレジスタ(演算によっては
それ以上)を指定できる、例1のような命令を持つこと
が多い。これは、命令語長も32ビットや64ビットで
あるため、オペランドの指定に十分なフィールドが確保
できるからである。
【0005】例1:ADD Ri,Rj,Rk
(レジスタRjとレジスタRkの内容を加算し、結果を
レジスタRiに書き込む。) しかし、8ビットや16ビットのプロセッサでは、命令
語長も16ビット程度しかない場合が多く、その場合、
例2のように、演算の種類と演算対象となるレジスタの
指定だけ行い、結果はオペランドのどちらか一方に上書
きする。
レジスタRiに書き込む。) しかし、8ビットや16ビットのプロセッサでは、命令
語長も16ビット程度しかない場合が多く、その場合、
例2のように、演算の種類と演算対象となるレジスタの
指定だけ行い、結果はオペランドのどちらか一方に上書
きする。
【0006】例2:ADD Rn,Rm
(RnとRmの内容を加算し、結果をRnに書き込む。
元々のRnの値は破壊される。) 例えば、命令語長が16ビットの場合、レジスタが16
個とすると、レジスタの指定に4ビットのフィールドが
必要である。2オペランドならば8ビットであり、残り
8ビットを演算の種類の指定に使用できるが、3オペラ
ンドの場合12ビットとなり、演算の種類の指定に残り
4ビットしか使用できず、実装したい命令を全て格納す
ることができなくなる可能性がある。
元々のRnの値は破壊される。) 例えば、命令語長が16ビットの場合、レジスタが16
個とすると、レジスタの指定に4ビットのフィールドが
必要である。2オペランドならば8ビットであり、残り
8ビットを演算の種類の指定に使用できるが、3オペラ
ンドの場合12ビットとなり、演算の種類の指定に残り
4ビットしか使用できず、実装したい命令を全て格納す
ることができなくなる可能性がある。
【0007】上記のような場合、例3及び例4に示すよ
うに、黙示的なオペランドを設けて解決することが多
い。
うに、黙示的なオペランドを設けて解決することが多
い。
【0008】例3:STORE Rn,[ERm]
(Rm+1を上位、Rmを下位とするメモリアドレス
に、Rnの値を格納する。mには偶数(又は奇数)のど
ちらかのみ指定できる。) 例4:SRL Rn,Rm (Rn+1を上位、Rnを下位とするデータを、Rmが
示す桁数だけ右にシフトし、シフト結果の下位側をRn
に格納する。) 黙示的なオペランドは、命令によってレジスタ指定の方
法を変え、1個のレジスタの指定で自動的に複数のレジ
スタを選択して使用可能にするものである。例えば、メ
モリとレジスタの間の転送の場合、アドレス空間を指定
するには8ビットでは少なすぎるため、8ビットのレジ
スタを2個結合して16ビットのアドレス値として用い
ることが通常行われているが、命令を使用する上では下
位側のレジスタだけ指定し、命令デコーダの工夫により
黙示のうちに上位側のレジスタも使用するようになって
いる。これにより、レジスタの指定のためのフィールド
を1個分(レジスタ数が16であれば、4ビット分)だ
け節約でき、他の命令や処理オプションに割り当てるこ
とができる。
に、Rnの値を格納する。mには偶数(又は奇数)のど
ちらかのみ指定できる。) 例4:SRL Rn,Rm (Rn+1を上位、Rnを下位とするデータを、Rmが
示す桁数だけ右にシフトし、シフト結果の下位側をRn
に格納する。) 黙示的なオペランドは、命令によってレジスタ指定の方
法を変え、1個のレジスタの指定で自動的に複数のレジ
スタを選択して使用可能にするものである。例えば、メ
モリとレジスタの間の転送の場合、アドレス空間を指定
するには8ビットでは少なすぎるため、8ビットのレジ
スタを2個結合して16ビットのアドレス値として用い
ることが通常行われているが、命令を使用する上では下
位側のレジスタだけ指定し、命令デコーダの工夫により
黙示のうちに上位側のレジスタも使用するようになって
いる。これにより、レジスタの指定のためのフィールド
を1個分(レジスタ数が16であれば、4ビット分)だ
け節約でき、他の命令や処理オプションに割り当てるこ
とができる。
【0009】黙示のレジスタを実際にどのように指定す
るかはアーキテクチャによるが、上記の命令語長とオペ
ランド数の制限から、任意の2個のレジスタを結合でき
るようにしてもあまり利点はない。そのため、アドレス
指定は連続する2個のレジスタに限定し、プログラム記
述上や命令語中では下位あるいは上位側レジスタのみ指
定すれば、1個分のレジスタフィールドで2個のレジス
タを指定でき、合理的である。
るかはアーキテクチャによるが、上記の命令語長とオペ
ランド数の制限から、任意の2個のレジスタを結合でき
るようにしてもあまり利点はない。そのため、アドレス
指定は連続する2個のレジスタに限定し、プログラム記
述上や命令語中では下位あるいは上位側レジスタのみ指
定すれば、1個分のレジスタフィールドで2個のレジス
タを指定でき、合理的である。
【0010】パイプライン制御方式のRISCマイクロ
プロセッサにおいて、上記のような命令を実装するため
には、レジスタバンク中の3個のレジスタから同時に読
み出す必要がある。例えば、上述した例3の命令の場合
であればRn,Rm+1,Rmの3個、上述した例4の
命令の場合であればRn+1,Rn,Rmの3個が読出
し対象となる。
プロセッサにおいて、上記のような命令を実装するため
には、レジスタバンク中の3個のレジスタから同時に読
み出す必要がある。例えば、上述した例3の命令の場合
であればRn,Rm+1,Rmの3個、上述した例4の
命令の場合であればRn+1,Rn,Rmの3個が読出
し対象となる。
【0011】図2は、16個のレジスタを有するレジス
タバンク中の3個のレジスタから同時読出しが可能な従
来のレジスタ読み出し回路を示すブロック図である。
タバンク中の3個のレジスタから同時読出しが可能な従
来のレジスタ読み出し回路を示すブロック図である。
【0012】図2において、16個のレジスタを有する
レジスタバンク1の各レジスタの値R0〜R15(mビ
ット)は、mビット用の3個の16−to−1(16入
力1出力)マルチプレクサ2〜4に入力されている。各
マルチプレクサ2、3、4には、選択入力として、オペ
ランド1、2、3が規定するレジスタ番号が与えられ、
各マルチプレクサ2、3、4は、そのレジスタ番号に応
じたレジスタの値を選択して出力する。
レジスタバンク1の各レジスタの値R0〜R15(mビ
ット)は、mビット用の3個の16−to−1(16入
力1出力)マルチプレクサ2〜4に入力されている。各
マルチプレクサ2、3、4には、選択入力として、オペ
ランド1、2、3が規定するレジスタ番号が与えられ、
各マルチプレクサ2、3、4は、そのレジスタ番号に応
じたレジスタの値を選択して出力する。
【0013】上記のようなマルチプレクサ2、3、4
は、ASICやセルベースといった基本ゲートの組み合
わせからなるLSIでは、2−to−1(2入力1出
力)マルチプレクサを図3のように木構造に接続して構
成することが多い。
は、ASICやセルベースといった基本ゲートの組み合
わせからなるLSIでは、2−to−1(2入力1出
力)マルチプレクサを図3のように木構造に接続して構
成することが多い。
【0014】図3において、16個のレジスタ値R0〜
R15(mビット)は、選択入力の最下位ビットA0に
応じて選択動作する8個の2−to−1マルチプレクサ
5−31〜5−38によって8個に絞り込まれ、その
後、次の下位ビットA1に応じて選択動作する4個の2
−to−1マルチプレクサ5−21〜5−24(5−2
3は図示を省略)によって4個に絞り込まれ、さらに、
次のビットA2に応じて選択動作する2個の2−to−
1マルチプレクサ5−11及び5−12(共に図示は省
略)によって2個に絞り込まれ、最後に、最上位ビット
A3に応じて選択動作する1個の2−to−1マルチプ
レクサ5−0によって1個に絞り込まれて出力される。
R15(mビット)は、選択入力の最下位ビットA0に
応じて選択動作する8個の2−to−1マルチプレクサ
5−31〜5−38によって8個に絞り込まれ、その
後、次の下位ビットA1に応じて選択動作する4個の2
−to−1マルチプレクサ5−21〜5−24(5−2
3は図示を省略)によって4個に絞り込まれ、さらに、
次のビットA2に応じて選択動作する2個の2−to−
1マルチプレクサ5−11及び5−12(共に図示は省
略)によって2個に絞り込まれ、最後に、最上位ビット
A3に応じて選択動作する1個の2−to−1マルチプ
レクサ5−0によって1個に絞り込まれて出力される。
【0015】
【発明が解決しようとする課題】図3に示すように、汎
用レジスタの数が16個とすると、1オペランドにつき
(言い換えると、1個の16−to−1マルチプレクサ
につき)15個のmビット用の2−to−1マルチプレ
クサが必要であり、図2に示すような3オペラント対応
では45個のmビット用の2−to−1マルチプレクサ
が必要である。
用レジスタの数が16個とすると、1オペランドにつき
(言い換えると、1個の16−to−1マルチプレクサ
につき)15個のmビット用の2−to−1マルチプレ
クサが必要であり、図2に示すような3オペラント対応
では45個のmビット用の2−to−1マルチプレクサ
が必要である。
【0016】ここで、mビット用の2−to−1マルチ
プレクサは、m枚の1ビット用の2−to−1マルチプ
レクサで構成する。
プレクサは、m枚の1ビット用の2−to−1マルチプ
レクサで構成する。
【0017】そのため、従来のレジスタ読み出し回路全
体では、レジスタのビット幅mを8とすると、1ビット
用の2−to−1マルチプレクサは計360(=45*
8)個必要であり、チップ面積上、大きな面積を占有し
ている。
体では、レジスタのビット幅mを8とすると、1ビット
用の2−to−1マルチプレクサは計360(=45*
8)個必要であり、チップ面積上、大きな面積を占有し
ている。
【0018】また、レジスタバンク1とマルチプレクサ
2〜4との間には、16個*8ビット*3オペランド=
384本もの配線が必要であり、配線によるチップ面積
への影響も無視できない。
2〜4との間には、16個*8ビット*3オペランド=
384本もの配線が必要であり、配線によるチップ面積
への影響も無視できない。
【0019】レジスタ数やレジスタのビット幅が上述し
た場合より多い場合には、より一段と、レジスタ読み出
し回路がチップ面積上で占有する面積が増大する。
た場合より多い場合には、より一段と、レジスタ読み出
し回路がチップ面積上で占有する面積が増大する。
【0020】そのため、チップ上に実現するのに好適な
簡単な実装構成を有するレジスタ読み出し回路が求めら
れており、また、簡単な実装構成を有するレジスタ読み
出し回路を備えるマイクロプロセッサが求められてい
る。
簡単な実装構成を有するレジスタ読み出し回路が求めら
れており、また、簡単な実装構成を有するレジスタ読み
出し回路を備えるマイクロプロセッサが求められてい
る。
【0021】
【課題を解決するための手段】かかる課題を解決するた
め、第1の本発明は、読み出し対象の複数のレジスタに
は通し番号でなるレジスタ番号が対応付けられており、
外部から入力された連続する第1〜第Xの選択レジスタ
番号が同時に与えられ、該当するX個のレジスタのレジ
スタ値を同時に読み出すレジスタ読み出し回路におい
て、(1)Xで割った剰余が同じレジスタ番号の全ての
レジスタのレジスタ値が入力され、与えられた選択制御
入力に応じて、その中の1個のレジスタ値を選択する、
剰余毎のレジスタ値選択手段と、(2)上記第1〜第X
の選択レジスタ番号が入力され、入力された各選択レジ
スタ番号を、その選択レジスタ番号をXで割った剰余と
等しい剰余用の上記レジスタ選択手段に、選択制御入力
として与える選択レジスタ番号交換手段と、(3)剰余
毎の全ての上記レジスタ値選択手段が出力したレジスタ
値から、第x(xは1〜X)の選択レジスタ番号に応じ
たものを選択出力する、X個の出力選択手段とを有する
ことを特徴とする。
め、第1の本発明は、読み出し対象の複数のレジスタに
は通し番号でなるレジスタ番号が対応付けられており、
外部から入力された連続する第1〜第Xの選択レジスタ
番号が同時に与えられ、該当するX個のレジスタのレジ
スタ値を同時に読み出すレジスタ読み出し回路におい
て、(1)Xで割った剰余が同じレジスタ番号の全ての
レジスタのレジスタ値が入力され、与えられた選択制御
入力に応じて、その中の1個のレジスタ値を選択する、
剰余毎のレジスタ値選択手段と、(2)上記第1〜第X
の選択レジスタ番号が入力され、入力された各選択レジ
スタ番号を、その選択レジスタ番号をXで割った剰余と
等しい剰余用の上記レジスタ選択手段に、選択制御入力
として与える選択レジスタ番号交換手段と、(3)剰余
毎の全ての上記レジスタ値選択手段が出力したレジスタ
値から、第x(xは1〜X)の選択レジスタ番号に応じ
たものを選択出力する、X個の出力選択手段とを有する
ことを特徴とする。
【0022】また、第2の本発明は、複数のレジスタ
と、命令を解読してレジスタ値の同時読み出しが必要な
レジスタを規定する連続する第1〜第Xの選択レジスタ
番号を出力する命令解読手段と、これら第1〜第Xの選
択レジスタ番号に応じて、該当するレジスタからレジス
タ値を同時に読み出すレジスタ読み出し回路とを少なく
とも有するマイクロプロセッサにおいて、上記レジスタ
読み出し回路として、第1の本発明のレジスタ読み出し
回路を適用したことを特徴とする。
と、命令を解読してレジスタ値の同時読み出しが必要な
レジスタを規定する連続する第1〜第Xの選択レジスタ
番号を出力する命令解読手段と、これら第1〜第Xの選
択レジスタ番号に応じて、該当するレジスタからレジス
タ値を同時に読み出すレジスタ読み出し回路とを少なく
とも有するマイクロプロセッサにおいて、上記レジスタ
読み出し回路として、第1の本発明のレジスタ読み出し
回路を適用したことを特徴とする。
【0023】
【発明の実施の形態】(A)第1の実施形態
以下、本発明によるレジスタ読み出し回路及びマイクロ
プロセッサの第1の実施形態を図面を参照しながら詳述
する。
プロセッサの第1の実施形態を図面を参照しながら詳述
する。
【0024】図4は、第1の実施形態のマイクロプロセ
ッサ10の特徴的な構成部分を示すブロック図である。
すなわち、命令レジスタ・デコーダ11、レジスタ読み
出し回路12及びレジスタバンク13の部分を示してい
る。
ッサ10の特徴的な構成部分を示すブロック図である。
すなわち、命令レジスタ・デコーダ11、レジスタ読み
出し回路12及びレジスタバンク13の部分を示してい
る。
【0025】命令レジスタ・デコーダ11は、与えられ
た命令を保持して解読するものであり、解読した命令の
種類情報は、図示しない演算ユニット(ALU)などに
与え、また、最大3個のオペランドのデータ(レジスタ
番号)は、オペランド選択入力として、レジスタ読み出
し回路12に与える。
た命令を保持して解読するものであり、解読した命令の
種類情報は、図示しない演算ユニット(ALU)などに
与え、また、最大3個のオペランドのデータ(レジスタ
番号)は、オペランド選択入力として、レジスタ読み出
し回路12に与える。
【0026】この第1の実施形態の場合、命令レジスタ
・デコーダ11が解読する命令(の中)には、上述した
例3及び例4に示すように、黙示的なオペランドを設け
ている命令があっても良く、このような命令の場合、命
令レジスタ・デコーダ11が出力する連続するレジスタ
番号はオペランド選択入力2及び3として出力される。
・デコーダ11が解読する命令(の中)には、上述した
例3及び例4に示すように、黙示的なオペランドを設け
ている命令があっても良く、このような命令の場合、命
令レジスタ・デコーダ11が出力する連続するレジスタ
番号はオペランド選択入力2及び3として出力される。
【0027】なお、命令レジスタ・デコーダ11は、最
大3個のオペランドを明示的に表記している命令を解読
するものであっても良い。
大3個のオペランドを明示的に表記している命令を解読
するものであっても良い。
【0028】また、以下でのレジスタ読み出し回路12
についての詳細説明では、オペランド選択入力2及び3
は連続するレジスタ番号の場合(すなわち、一方が奇数
で他方が偶数の場合)を想定しているが、オペランド選
択入力2及び3が非連続の任意のレジスタ番号であって
も良い。
についての詳細説明では、オペランド選択入力2及び3
は連続するレジスタ番号の場合(すなわち、一方が奇数
で他方が偶数の場合)を想定しているが、オペランド選
択入力2及び3が非連続の任意のレジスタ番号であって
も良い。
【0029】レジスタ読み出し回路12は、図1に示す
詳細構成を有し、命令レジスタ・デコーダ11が出力し
たオペランド選択入力1〜3(レジスタ番号)が規定す
るレジスタの値をレジスタバンク13から読み出してオ
ペランド出力1〜3として出力するものである。読み出
されたオペランド出力1〜3は、例えば、図示しないシ
ステムバスを介して演算ユニット(ALU)に与えられ
たり、テンポラリレジスタに保持されて演算ユニット
(ALU)に与えられたりなどする。
詳細構成を有し、命令レジスタ・デコーダ11が出力し
たオペランド選択入力1〜3(レジスタ番号)が規定す
るレジスタの値をレジスタバンク13から読み出してオ
ペランド出力1〜3として出力するものである。読み出
されたオペランド出力1〜3は、例えば、図示しないシ
ステムバスを介して演算ユニット(ALU)に与えられ
たり、テンポラリレジスタに保持されて演算ユニット
(ALU)に与えられたりなどする。
【0030】なお、レジスタバンク13は、図1に示す
ように、この第1の実施形態の場合、レジスタ番号が偶
数であるレジスタ群でなる偶数側レジスタバンク13E
と、レジスタ番号が奇数であるレジスタ群でなる奇数側
レジスタバンク13Oとに分かれている。
ように、この第1の実施形態の場合、レジスタ番号が偶
数であるレジスタ群でなる偶数側レジスタバンク13E
と、レジスタ番号が奇数であるレジスタ群でなる奇数側
レジスタバンク13Oとに分かれている。
【0031】図1は、上述したように、第1の実施形態
のレジスタ読み出し回路12の詳細構成を示すブロック
図である(図1は、従来に係る図2に対応している)。
のレジスタ読み出し回路12の詳細構成を示すブロック
図である(図1は、従来に係る図2に対応している)。
【0032】なお、図1は、レジスタ数Nが16の場合
を示している。また、命令の実装を簡単にするために、
レジスタ番号のビット数nは4ビット(2の4乗=1
6、一般的な表現では2のn乗=N)とする。すなわ
ち、レジスタ番号は10進数で0〜15をとり、レジス
タ番号の値が最大値の場合(N−1=15;奇数)、そ
れに連続する1だけ大きい値は0(偶数)になるとす
る。
を示している。また、命令の実装を簡単にするために、
レジスタ番号のビット数nは4ビット(2の4乗=1
6、一般的な表現では2のn乗=N)とする。すなわ
ち、レジスタ番号は10進数で0〜15をとり、レジス
タ番号の値が最大値の場合(N−1=15;奇数)、そ
れに連続する1だけ大きい値は0(偶数)になるとす
る。
【0033】図1において、レジスタ読み出し回路12
は、8ビット用の16−to−1マルチプレクサ20、
8ビット用の2個の8−to−1マルチプレクサ21及
び22、偶数レジスタ番号選択回路23、奇数レジスタ
番号選択回路24、並びに、2個の8ビット用の2−t
o−1マルチプレクサ25及び26を有する。
は、8ビット用の16−to−1マルチプレクサ20、
8ビット用の2個の8−to−1マルチプレクサ21及
び22、偶数レジスタ番号選択回路23、奇数レジスタ
番号選択回路24、並びに、2個の8ビット用の2−t
o−1マルチプレクサ25及び26を有する。
【0034】また、上述したように、この第1の実施形
態のレジスタ読み出し回路12がレジスタ値を読み出す
対象のレジスタバンク13は、偶数側レジスタバンク1
3E及び奇数側レジスタバンク13Oに分かれている。
態のレジスタ読み出し回路12がレジスタ値を読み出す
対象のレジスタバンク13は、偶数側レジスタバンク1
3E及び奇数側レジスタバンク13Oに分かれている。
【0035】偶数側レジスタバンク13Eは、レジスタ
番号が偶数(最下位ビットが0)の全てのレジスタの内
容を保持しており、各偶数番号レジスタの値(8ビッ
ト)S0、…、S7は、16−to−1マルチプレクサ
20及び8−to−1マルチプレクサ21に与えられ
る。なお、レジスタ値S0、…、S7に対応するレジス
タ番号は0、2、…14(10進数)である。
番号が偶数(最下位ビットが0)の全てのレジスタの内
容を保持しており、各偶数番号レジスタの値(8ビッ
ト)S0、…、S7は、16−to−1マルチプレクサ
20及び8−to−1マルチプレクサ21に与えられ
る。なお、レジスタ値S0、…、S7に対応するレジス
タ番号は0、2、…14(10進数)である。
【0036】奇数側レジスタバンク13Oは、レジスタ
番号が奇数(最下位ビットが1)の全てのレジスタの内
容を保持しており、各奇数番号レジスタの値(8ビッ
ト)T0、…、T7は、16−to−1マルチプレクサ
20及び8−to−1マルチプレクサ22に与えられ
る。なお、レジスタ値T0、…、T7に対応するレジス
タ番号は1、3、…15(10進数)である。
番号が奇数(最下位ビットが1)の全てのレジスタの内
容を保持しており、各奇数番号レジスタの値(8ビッ
ト)T0、…、T7は、16−to−1マルチプレクサ
20及び8−to−1マルチプレクサ22に与えられ
る。なお、レジスタ値T0、…、T7に対応するレジス
タ番号は1、3、…15(10進数)である。
【0037】ここで、偶数側レジスタバンク13Eを構
成する偶数レジスタ番号のレジスタは固めて配置されて
いる必要はなく、また、奇数側レジスタバンク13Oを
構成する奇数レジスタ番号のレジスタも固めて配置され
ている必要はなく、機能的に、レジスタバンクを構成し
ていれば良く、偶数レジスタ番号及び奇数レジスタ番号
のレジスタが混在配置されていても構わない。
成する偶数レジスタ番号のレジスタは固めて配置されて
いる必要はなく、また、奇数側レジスタバンク13Oを
構成する奇数レジスタ番号のレジスタも固めて配置され
ている必要はなく、機能的に、レジスタバンクを構成し
ていれば良く、偶数レジスタ番号及び奇数レジスタ番号
のレジスタが混在配置されていても構わない。
【0038】16−to−1マルチプレクサ20は、レ
ジスタ番号が偶数、奇数を問わない全てのレジスタ値S
0〜S7、T0〜T7の中から、命令レジスタ・デコー
ダ11からのオペランド選択入力1が指示するレジスタ
番号に係るものを選択して、オペランド出力1として出
力するものである。16−to−1マルチプレクサ20
の詳細構成は、上述した図3に示したものと同様であ
る。
ジスタ番号が偶数、奇数を問わない全てのレジスタ値S
0〜S7、T0〜T7の中から、命令レジスタ・デコー
ダ11からのオペランド選択入力1が指示するレジスタ
番号に係るものを選択して、オペランド出力1として出
力するものである。16−to−1マルチプレクサ20
の詳細構成は、上述した図3に示したものと同様であ
る。
【0039】8−to−1マルチプレクサ21は、偶数
番号のレジスタの値S0〜S7の中から、偶数レジスタ
番号選択回路23から与えられたレジスタ番号(最下位
ビットが0に決まっているので、最下位ビットを除いた
3ビットが与えられる)に係るものを選択して、2個の
2−to−1マルチプレクサ25及び26に出力するも
のである。8−to−1マルチプレクサ21の詳細構成
は、上述した図3に示したものと同様に木構造で構成さ
れているが、その木構造の階層は図3の4階層とは異な
り、3階層である。
番号のレジスタの値S0〜S7の中から、偶数レジスタ
番号選択回路23から与えられたレジスタ番号(最下位
ビットが0に決まっているので、最下位ビットを除いた
3ビットが与えられる)に係るものを選択して、2個の
2−to−1マルチプレクサ25及び26に出力するも
のである。8−to−1マルチプレクサ21の詳細構成
は、上述した図3に示したものと同様に木構造で構成さ
れているが、その木構造の階層は図3の4階層とは異な
り、3階層である。
【0040】8−to−1マルチプレクサ22は、奇数
番号のレジスタの値T0〜T7の中から、奇数レジスタ
番号選択回路24から与えられたレジスタ番号(最下位
ビットが1に決まっているので、最下位ビットを除いた
3ビットが与えられる)に係るものを選択して、2個の
2−to−1マルチプレクサ25及び26に出力するも
のである。8−to−1マルチプレクサ22の詳細構成
も、上述した図3に示したものと同様に木構造で構成さ
れているが、その木構造の階層は図3の4階層とは異な
り、3階層である。
番号のレジスタの値T0〜T7の中から、奇数レジスタ
番号選択回路24から与えられたレジスタ番号(最下位
ビットが1に決まっているので、最下位ビットを除いた
3ビットが与えられる)に係るものを選択して、2個の
2−to−1マルチプレクサ25及び26に出力するも
のである。8−to−1マルチプレクサ22の詳細構成
も、上述した図3に示したものと同様に木構造で構成さ
れているが、その木構造の階層は図3の4階層とは異な
り、3階層である。
【0041】偶数レジスタ番号選択回路23は、命令レ
ジスタ・デコーダ11からのオペランド選択入力2及び
3の内の偶数側を選択するものである。例えば、オペラ
ンド選択入力2及び3の最下位ビットが0である側の下
位2ビット目から下位4ビット(最上位ビット)目まで
を出力する。なお、両方とも偶数の場合、出力は任意で
ある。なお、選択したレジスタ番号の4ビット共に出力
する構成であっても良い。
ジスタ・デコーダ11からのオペランド選択入力2及び
3の内の偶数側を選択するものである。例えば、オペラ
ンド選択入力2及び3の最下位ビットが0である側の下
位2ビット目から下位4ビット(最上位ビット)目まで
を出力する。なお、両方とも偶数の場合、出力は任意で
ある。なお、選択したレジスタ番号の4ビット共に出力
する構成であっても良い。
【0042】図5は、偶数レジスタ番号選択回路23の
詳細構成例を示すブロック図である。図5において、偶
数レジスタ番号選択回路23は、1ビット用の3個の2
−to−1マルチプレクサ30〜32から構成されてい
る。
詳細構成例を示すブロック図である。図5において、偶
数レジスタ番号選択回路23は、1ビット用の3個の2
−to−1マルチプレクサ30〜32から構成されてい
る。
【0043】オペランド選択入力2の4ビットA0〜A
3の最下位ビットA0は、2−to−1マルチプレクサ
30〜32に対し、選択制御信号として与えられてい
る。それ以外の各ビットA1、A2、A3はそれぞれ、
選択制御信号A0が0のときに選択される2−to−1
マルチプレクサ30、31、32の入力端子に入力され
ている。オペランド選択入力3の4ビットB0〜B3の
最下位ビットB0を除いた各ビットB1、B2、B3は
それぞれ、選択制御信号A0が1のときに選択される2
−to−1マルチプレクサ30、31、32の入力端子
に入力されている。
3の最下位ビットA0は、2−to−1マルチプレクサ
30〜32に対し、選択制御信号として与えられてい
る。それ以外の各ビットA1、A2、A3はそれぞれ、
選択制御信号A0が0のときに選択される2−to−1
マルチプレクサ30、31、32の入力端子に入力され
ている。オペランド選択入力3の4ビットB0〜B3の
最下位ビットB0を除いた各ビットB1、B2、B3は
それぞれ、選択制御信号A0が1のときに選択される2
−to−1マルチプレクサ30、31、32の入力端子
に入力されている。
【0044】従って、偶数レジスタ番号選択回路23
は、オペランド選択入力2が偶数(最下位ビットA0が
0)のときに、オペランド選択入力2の上位側3ビット
A1〜A3を偶数レジスタ番号を表す番号E1〜E3と
して、8−to−1マルチプレクサ21の選択制御端子
に出力する。また、偶数レジスタ番号選択回路23は、
オペランド選択入力2が奇数(最下位ビットA0が1)
のときに、オペランド選択入力3の上位側3ビットB1
〜B3を偶数レジスタ番号を表す番号E1〜E3とし
て、8−to−1マルチプレクサ21の選択制御端子に
出力する。
は、オペランド選択入力2が偶数(最下位ビットA0が
0)のときに、オペランド選択入力2の上位側3ビット
A1〜A3を偶数レジスタ番号を表す番号E1〜E3と
して、8−to−1マルチプレクサ21の選択制御端子
に出力する。また、偶数レジスタ番号選択回路23は、
オペランド選択入力2が奇数(最下位ビットA0が1)
のときに、オペランド選択入力3の上位側3ビットB1
〜B3を偶数レジスタ番号を表す番号E1〜E3とし
て、8−to−1マルチプレクサ21の選択制御端子に
出力する。
【0045】奇数レジスタ番号選択回路24は、命令レ
ジスタ・デコーダ11からのオペランド選択入力2及び
3の内の奇数側を選択するものである。例えば、オペラ
ンド選択入力2及び3の最下位ビットが1である側の下
位2ビット目から下位4ビット(最上位ビット)目まで
を出力する。なお、両方とも奇数の場合、出力は任意で
ある。なお、選択したレジスタ番号の4ビット共に出力
する構成であっても良い。
ジスタ・デコーダ11からのオペランド選択入力2及び
3の内の奇数側を選択するものである。例えば、オペラ
ンド選択入力2及び3の最下位ビットが1である側の下
位2ビット目から下位4ビット(最上位ビット)目まで
を出力する。なお、両方とも奇数の場合、出力は任意で
ある。なお、選択したレジスタ番号の4ビット共に出力
する構成であっても良い。
【0046】図6は、奇数レジスタ番号選択回路24の
詳細構成例を示すブロック図である。図6において、奇
数レジスタ番号選択回路24は、1ビット用の3個の2
−to−1マルチプレクサ40〜42から構成されてい
る。
詳細構成例を示すブロック図である。図6において、奇
数レジスタ番号選択回路24は、1ビット用の3個の2
−to−1マルチプレクサ40〜42から構成されてい
る。
【0047】オペランド選択入力3の4ビットB0〜B
3の最下位ビットB0は、2−to−1マルチプレクサ
40〜42に対し、選択制御信号として与えられてい
る。それ以外の各ビットB1、B2、B3はそれぞれ、
選択制御信号B0が1のときに選択される2−to−1
マルチプレクサ40、41、42の入力端子に入力され
ている。オペランド選択入力2の4ビットA0〜A3の
最下位ビットA0を除いた各ビットA1、A2、A3は
それぞれ、選択制御信号B0が0のときに選択される2
−to−1マルチプレクサ40、41、42の入力端子
に入力されている。
3の最下位ビットB0は、2−to−1マルチプレクサ
40〜42に対し、選択制御信号として与えられてい
る。それ以外の各ビットB1、B2、B3はそれぞれ、
選択制御信号B0が1のときに選択される2−to−1
マルチプレクサ40、41、42の入力端子に入力され
ている。オペランド選択入力2の4ビットA0〜A3の
最下位ビットA0を除いた各ビットA1、A2、A3は
それぞれ、選択制御信号B0が0のときに選択される2
−to−1マルチプレクサ40、41、42の入力端子
に入力されている。
【0048】従って、奇数レジスタ番号選択回路24
は、オペランド選択入力3が奇数(最下位ビットB0が
1)のときに、オペランド選択入力3の上位側3ビット
B1〜B3を奇数レジスタ番号を表す番号O1〜O3と
して、8−to−1マルチプレクサ22の選択制御端子
に出力する。また、奇数レジスタ番号選択回路24は、
オペランド選択入力3が偶数(最下位ビットB0が0)
のときに、オペランド選択入力2の上位側3ビットA1
〜A3を奇数レジスタ番号を表す番号O1〜O3とし
て、8−to−1マルチプレクサ22の選択制御端子に
出力する。
は、オペランド選択入力3が奇数(最下位ビットB0が
1)のときに、オペランド選択入力3の上位側3ビット
B1〜B3を奇数レジスタ番号を表す番号O1〜O3と
して、8−to−1マルチプレクサ22の選択制御端子
に出力する。また、奇数レジスタ番号選択回路24は、
オペランド選択入力3が偶数(最下位ビットB0が0)
のときに、オペランド選択入力2の上位側3ビットA1
〜A3を奇数レジスタ番号を表す番号O1〜O3とし
て、8−to−1マルチプレクサ22の選択制御端子に
出力する。
【0049】2−to−1マルチプレクサ(オペランド
2出力選択回路)25には、上述のように、偶数側の8
−to−1マルチプレクサ21が出力したレジスタ値
と、奇数側の8−to−1マルチプレクサ22が出力し
たレジスタ値とが選択入力として入力されている。ま
た、2−to−1マルチプレクサ25には、オペランド
選択入力2(の最下位ビット)が選択制御入力として入
力されている。
2出力選択回路)25には、上述のように、偶数側の8
−to−1マルチプレクサ21が出力したレジスタ値
と、奇数側の8−to−1マルチプレクサ22が出力し
たレジスタ値とが選択入力として入力されている。ま
た、2−to−1マルチプレクサ25には、オペランド
選択入力2(の最下位ビット)が選択制御入力として入
力されている。
【0050】2−to−1マルチプレクサ25は、オペ
ランド選択入力2が偶数か奇数かによって、偶数又は奇
数のどちらのレジスタバンク13E又は13Oのレジス
タ値を出力するか選択する回路である。例えば、オペラ
ンド選択入力2が偶数の場合には(最下位ビットが
0)、偶数側8−to−1マルチプレクサ21の出力を
選択し、オペランド選択入力2が奇数の場合には(最下
位ビットが1)、奇数側8−to−1マルチプレクサ2
2の出力を選択してオペランド出力2として出力する。
ランド選択入力2が偶数か奇数かによって、偶数又は奇
数のどちらのレジスタバンク13E又は13Oのレジス
タ値を出力するか選択する回路である。例えば、オペラ
ンド選択入力2が偶数の場合には(最下位ビットが
0)、偶数側8−to−1マルチプレクサ21の出力を
選択し、オペランド選択入力2が奇数の場合には(最下
位ビットが1)、奇数側8−to−1マルチプレクサ2
2の出力を選択してオペランド出力2として出力する。
【0051】2−to−1マルチプレクサ(オペランド
3出力選択回路)26にも、上述のように、偶数側の8
−to−1マルチプレクサ21が出力したレジスタ値
と、奇数側の8−to−1マルチプレクサ22が出力し
たレジスタ値とが選択入力として入力されている。ま
た、2−to−1マルチプレクサ26には、オペランド
選択入力3(の最下位ビット)が選択制御入力として入
力されている。
3出力選択回路)26にも、上述のように、偶数側の8
−to−1マルチプレクサ21が出力したレジスタ値
と、奇数側の8−to−1マルチプレクサ22が出力し
たレジスタ値とが選択入力として入力されている。ま
た、2−to−1マルチプレクサ26には、オペランド
選択入力3(の最下位ビット)が選択制御入力として入
力されている。
【0052】2−to−1マルチプレクサ26は、オペ
ランド選択入力3が偶数か奇数かによって、偶数又は奇
数のどちらのレジスタバンク13E又は13Oのレジス
タ値を出力するかを選択する回路である。例えば、オペ
ランド選択入力3が偶数の場合には(最下位ビットが
0)、偶数側8−to−1マルチプレクサ21の出力を
選択し、オペランド選択入力3が奇数の場合には(最下
位ビットが1)、奇数側8−to−1マルチプレクサ2
2の出力を選択してオペランド出力3として出力する。
ランド選択入力3が偶数か奇数かによって、偶数又は奇
数のどちらのレジスタバンク13E又は13Oのレジス
タ値を出力するかを選択する回路である。例えば、オペ
ランド選択入力3が偶数の場合には(最下位ビットが
0)、偶数側8−to−1マルチプレクサ21の出力を
選択し、オペランド選択入力3が奇数の場合には(最下
位ビットが1)、奇数側8−to−1マルチプレクサ2
2の出力を選択してオペランド出力3として出力する。
【0053】以下、第1の実施形態のレジスタ読み出し
回路12などの動作を、例を挙げて説明する。
回路12などの動作を、例を挙げて説明する。
【0054】まず、上述した例3の命令が生じたとして
動作を説明する。例3の命令を再掲載すると、STOR
E Rn,[ERm]であり、レジスタ番号m+1のレ
ジスタの値Rm+1を上位、レジスタ番号mのレジスタ
の値Rmを下位とするメモリアドレスに、レジスタ番号
nのレジスタの値Rnを格納するという命令である。こ
こで、mが偶数であるとすると、m+1は奇数である。
動作を説明する。例3の命令を再掲載すると、STOR
E Rn,[ERm]であり、レジスタ番号m+1のレ
ジスタの値Rm+1を上位、レジスタ番号mのレジスタ
の値Rmを下位とするメモリアドレスに、レジスタ番号
nのレジスタの値Rnを格納するという命令である。こ
こで、mが偶数であるとすると、m+1は奇数である。
【0055】従って、命令レジスタ・デコーダ11から
は、オペランド選択入力1、2、3としてそれぞれ、レ
ジスタ番号n、m、m+1(それぞれ4ビット)が出力
される。
は、オペランド選択入力1、2、3としてそれぞれ、レ
ジスタ番号n、m、m+1(それぞれ4ビット)が出力
される。
【0056】nであるオペランド選択入力1が選択制御
入力として与えられた16−to−1マルチプレクサ2
5においては、nをレジスタ番号とするレジスタ値が選
択されてオペランド出力1として送出される。
入力として与えられた16−to−1マルチプレクサ2
5においては、nをレジスタ番号とするレジスタ値が選
択されてオペランド出力1として送出される。
【0057】m(偶数)であるオペランド選択入力2
は、偶数レジスタ番号選択回路23及び奇数レジスタ番
号選択回路24の双方に与えられるが、偶数であるた
め、図7に示すように、偶数レジスタ番号選択回路23
によって選択されて、偶数側の8−to−1マルチプレ
クサ21に選択制御入力として与えられる。正確に言え
ば、オペランド選択入力2の上位側の3ビットが選択制
御入力として与えられる。
は、偶数レジスタ番号選択回路23及び奇数レジスタ番
号選択回路24の双方に与えられるが、偶数であるた
め、図7に示すように、偶数レジスタ番号選択回路23
によって選択されて、偶数側の8−to−1マルチプレ
クサ21に選択制御入力として与えられる。正確に言え
ば、オペランド選択入力2の上位側の3ビットが選択制
御入力として与えられる。
【0058】これにより、8−to−1マルチプレクサ
21において、偶数側レジスタバンク13Eから与えら
れているレジスタ値S0〜S7の中から、レジスタ番号
mのレジスタの値が選択されて、2−to−1マルチプ
レクサ25及び26に与えられる。
21において、偶数側レジスタバンク13Eから与えら
れているレジスタ値S0〜S7の中から、レジスタ番号
mのレジスタの値が選択されて、2−to−1マルチプ
レクサ25及び26に与えられる。
【0059】また、m+1(奇数)であるオペランド選
択入力3は、偶数レジスタ番号選択回路23及び奇数レ
ジスタ番号選択回路24の双方に与えられるが、奇数で
あるため、図7に示すように、奇数レジスタ番号選択回
路24によって選択されて、奇数側の8−to−1マル
チプレクサ22に選択制御入力として与えられる。正確
に言えば、オペランド選択入力3の上位側の3ビットが
選択制御入力として与えられる。
択入力3は、偶数レジスタ番号選択回路23及び奇数レ
ジスタ番号選択回路24の双方に与えられるが、奇数で
あるため、図7に示すように、奇数レジスタ番号選択回
路24によって選択されて、奇数側の8−to−1マル
チプレクサ22に選択制御入力として与えられる。正確
に言えば、オペランド選択入力3の上位側の3ビットが
選択制御入力として与えられる。
【0060】これにより、8−to−1マルチプレクサ
22において、奇数側レジスタバンク13Oから与えら
れているレジスタ値T0〜T7の中から、レジスタ番号
m+1のレジスタの値が選択されて、2−to−1マル
チプレクサ25及び26に与えられる。
22において、奇数側レジスタバンク13Oから与えら
れているレジスタ値T0〜T7の中から、レジスタ番号
m+1のレジスタの値が選択されて、2−to−1マル
チプレクサ25及び26に与えられる。
【0061】2−to−1マルチプレクサ25には、m
であるオペランド選択入力2の最下位ビットが選択制御
入力として与えられているが、これは偶数(0)を示し
ているので、図7に示すように、2−to−1マルチプ
レクサ25によって、偶数側の8−to−1マルチプレ
クサ21からのレジスタ値が選択されてオペランド出力
2として送出される。
であるオペランド選択入力2の最下位ビットが選択制御
入力として与えられているが、これは偶数(0)を示し
ているので、図7に示すように、2−to−1マルチプ
レクサ25によって、偶数側の8−to−1マルチプレ
クサ21からのレジスタ値が選択されてオペランド出力
2として送出される。
【0062】また、2−to−1マルチプレクサ26に
は、m+1であるオペランド選択入力3の最下位ビット
が選択制御入力として与えられているが、これは奇数
(1)を示しているので、図7に示すように、2−to
−1マルチプレクサ26によって、奇数側の8−to−
1マルチプレクサ22からのレジスタ値が選択されてオ
ペランド出力3として送出される。
は、m+1であるオペランド選択入力3の最下位ビット
が選択制御入力として与えられているが、これは奇数
(1)を示しているので、図7に示すように、2−to
−1マルチプレクサ26によって、奇数側の8−to−
1マルチプレクサ22からのレジスタ値が選択されてオ
ペランド出力3として送出される。
【0063】次に、上述した例4の命令が生じたとして
動作を説明する。例4の命令を再掲載すると、SRL
Rn,Rmであり、レジスタ番号n+1のレジスタの値
Rn+1を上位、レジスタ番号nのレジスタの値Rnを
下位とするデータを、レジスタ番号mのレジスタの値R
mが示す桁数だけ右にシフトし、シフト結果の下位側を
レジスタ番号nのレジスタの値Rnとして格納する、と
いう命令である。ここで、nは奇数でも偶数でも良い
が、以下では、奇数として説明する。
動作を説明する。例4の命令を再掲載すると、SRL
Rn,Rmであり、レジスタ番号n+1のレジスタの値
Rn+1を上位、レジスタ番号nのレジスタの値Rnを
下位とするデータを、レジスタ番号mのレジスタの値R
mが示す桁数だけ右にシフトし、シフト結果の下位側を
レジスタ番号nのレジスタの値Rnとして格納する、と
いう命令である。ここで、nは奇数でも偶数でも良い
が、以下では、奇数として説明する。
【0064】従って、この命令の場合、命令レジスタ・
デコーダ11からは、オペランド選択入力1、2、3と
してそれぞれ、レジスタ番号m、n、n+1(それぞれ
4ビット)が出力される。
デコーダ11からは、オペランド選択入力1、2、3と
してそれぞれ、レジスタ番号m、n、n+1(それぞれ
4ビット)が出力される。
【0065】mであるオペランド選択入力1が選択制御
入力として与えられた16−to−1マルチプレクサ2
5においては、mをレジスタ番号とするレジスタ値が選
択されてオペランド出力1として送出される。
入力として与えられた16−to−1マルチプレクサ2
5においては、mをレジスタ番号とするレジスタ値が選
択されてオペランド出力1として送出される。
【0066】n(奇数)であるオペランド選択入力2
は、偶数レジスタ番号選択回路23及び奇数レジスタ番
号選択回路24の双方に与えられるが、奇数であるた
め、図8に示すように、奇数レジスタ番号選択回路24
によって選択されて、奇数側の8−to−1マルチプレ
クサ22に選択制御入力として与えられる(正確に言え
ば、上位側の3ビットが与えられる)。
は、偶数レジスタ番号選択回路23及び奇数レジスタ番
号選択回路24の双方に与えられるが、奇数であるた
め、図8に示すように、奇数レジスタ番号選択回路24
によって選択されて、奇数側の8−to−1マルチプレ
クサ22に選択制御入力として与えられる(正確に言え
ば、上位側の3ビットが与えられる)。
【0067】これにより、8−to−1マルチプレクサ
22において、奇数側レジスタバンク13Oから与えら
れているレジスタ値T0〜T7の中から、レジスタ番号
nのレジスタの値が選択されて、2−to−1マルチプ
レクサ25及び26に与えられる。
22において、奇数側レジスタバンク13Oから与えら
れているレジスタ値T0〜T7の中から、レジスタ番号
nのレジスタの値が選択されて、2−to−1マルチプ
レクサ25及び26に与えられる。
【0068】また、n+1(偶数)であるオペランド選
択入力3は、偶数レジスタ番号選択回路23及び奇数レ
ジスタ番号選択回路24の双方に与えられるが、偶数で
あるため、図8に示すように、偶数レジスタ番号選択回
路23によって選択されて、偶数側の8−to−1マル
チプレクサ21に選択制御入力として与えられる(正確
に言えば、上位側の3ビットが与えられる)。
択入力3は、偶数レジスタ番号選択回路23及び奇数レ
ジスタ番号選択回路24の双方に与えられるが、偶数で
あるため、図8に示すように、偶数レジスタ番号選択回
路23によって選択されて、偶数側の8−to−1マル
チプレクサ21に選択制御入力として与えられる(正確
に言えば、上位側の3ビットが与えられる)。
【0069】これにより、8−to−1マルチプレクサ
21において、偶数側レジスタバンク13Eから与えら
れているレジスタ値S0〜S7の中から、レジスタ番号
n+1のレジスタの値が選択されて、2−to−1マル
チプレクサ25及び26に与えられる。
21において、偶数側レジスタバンク13Eから与えら
れているレジスタ値S0〜S7の中から、レジスタ番号
n+1のレジスタの値が選択されて、2−to−1マル
チプレクサ25及び26に与えられる。
【0070】2−to−1マルチプレクサ25には、n
であるオペランド選択入力2の最下位ビットが選択制御
入力として与えられているが、これは奇数(1)を示し
ているので、図8に示すように、2−to−1マルチプ
レクサ25によって、奇数側の8−to−1マルチプレ
クサ22からのレジスタ値が選択されてオペランド出力
2として送出される。
であるオペランド選択入力2の最下位ビットが選択制御
入力として与えられているが、これは奇数(1)を示し
ているので、図8に示すように、2−to−1マルチプ
レクサ25によって、奇数側の8−to−1マルチプレ
クサ22からのレジスタ値が選択されてオペランド出力
2として送出される。
【0071】また、2−to−1マルチプレクサ26に
は、n+1であるオペランド選択入力3の最下位ビット
が選択制御入力として与えられているが、これは偶数
(0)を示しているので、図8に示すように、2−to
−1マルチプレクサ26によって、偶数側の8−to−
1マルチプレクサ21からのレジスタ値が選択されてオ
ペランド出力3として送出される。
は、n+1であるオペランド選択入力3の最下位ビット
が選択制御入力として与えられているが、これは偶数
(0)を示しているので、図8に示すように、2−to
−1マルチプレクサ26によって、偶数側の8−to−
1マルチプレクサ21からのレジスタ値が選択されてオ
ペランド出力3として送出される。
【0072】以上のように、黙示的なオペランドに対し
て、一方が偶数番号、他方が奇数番号という拘束条件が
ある場合には、上記第1の実施形態のレジスタ読み出し
回路を構成することにより、マルチプレクサの入力とな
るレジスタ数を減少することができ、マルチプレクサの
ハードウェア量と配線を削減することができる。
て、一方が偶数番号、他方が奇数番号という拘束条件が
ある場合には、上記第1の実施形態のレジスタ読み出し
回路を構成することにより、マルチプレクサの入力とな
るレジスタ数を減少することができ、マルチプレクサの
ハードウェア量と配線を削減することができる。
【0073】上記第1の実施形態のレジスタ読み出し回
路12を構成した考え方は、次の通りである。
路12を構成した考え方は、次の通りである。
【0074】1.偶数番号のオペランド選択入力を偶数
番号レジスタ専用のマルチプレクサヘ、奇数番号のオペ
ランド選択入力を奇数番号レジスタ専用のマルチプレク
サヘ、それぞれ振り分ける。
番号レジスタ専用のマルチプレクサヘ、奇数番号のオペ
ランド選択入力を奇数番号レジスタ専用のマルチプレク
サヘ、それぞれ振り分ける。
【0075】2.偶数番号レジスタ専用のマルチプレク
サ出力を、偶数番号レジスタを要求した側のオペランド
出力へ、奇数番号レジスタ専用のマルチプレクサ出力
を、奇数番号レジスタを要求した側のオペランド出力
へ、それぞれ振り分ける。
サ出力を、偶数番号レジスタを要求した側のオペランド
出力へ、奇数番号レジスタ専用のマルチプレクサ出力
を、奇数番号レジスタを要求した側のオペランド出力
へ、それぞれ振り分ける。
【0076】上述した第1の実施形態のレジスタ読み出
し回路12についての効果を、従来との比較で説明す
る。
し回路12についての効果を、従来との比較で説明す
る。
【0077】図2に示した従来のレジスタ読み出し回路
において、レジスタのビット幅がこの実施形態と同様
に、8ビットであるとした場合、3個の8ビット用の1
6−to−1マルチプレクサ2〜4のそれぞれは、図3
に示したように、8ビット用の2−to−1マルチプレ
クサが15個ずつ必要であり、8ビット用の2−to−
1マルチプレクサは1ビット用の2−to−1マルチプ
レクサが8個で構成されるので、マルチプレクサ2〜4
の部分全体で、1ビット用の2−to−1マルチプレク
サは次の演算式から明らかなように360個必要とな
る。
において、レジスタのビット幅がこの実施形態と同様
に、8ビットであるとした場合、3個の8ビット用の1
6−to−1マルチプレクサ2〜4のそれぞれは、図3
に示したように、8ビット用の2−to−1マルチプレ
クサが15個ずつ必要であり、8ビット用の2−to−
1マルチプレクサは1ビット用の2−to−1マルチプ
レクサが8個で構成されるので、マルチプレクサ2〜4
の部分全体で、1ビット用の2−to−1マルチプレク
サは次の演算式から明らかなように360個必要とな
る。
【0078】3×15×8=360
これに対して、第1の実施形態のレジスタ読み出し回路
12は、以下のように、1ビット用の2−to−1マル
チプレクサが254個で済む。
12は、以下のように、1ビット用の2−to−1マル
チプレクサが254個で済む。
【0079】(1)8ビット用の16−to−1マルチ
プレクサ20は、8ビット用の2−to−1マルチプレ
クサが15個必要であり(図3参照)、8ビット用の2
−to−1マルチプレクサは1ビット用の2−to−1
マルチプレクサが8個で構成されるので、15×8=1
20個の1ビット用の2−to−1マルチプレクサで構
成される。
プレクサ20は、8ビット用の2−to−1マルチプレ
クサが15個必要であり(図3参照)、8ビット用の2
−to−1マルチプレクサは1ビット用の2−to−1
マルチプレクサが8個で構成されるので、15×8=1
20個の1ビット用の2−to−1マルチプレクサで構
成される。
【0080】(2)8ビット用の8−to−1マルチプ
レクサ21及び22はそれぞれ、図3に示したような木
構造での階層が3階層であるので、8ビット用の2−t
o−1マルチプレクサが7個必要であり、8ビット用の
2−to−1マルチプレクサは1ビット用の2−to−
1マルチプレクサが8個で構成されるので、7×8=5
6個の1ビット用の2−to−1マルチプレクサで構成
される。
レクサ21及び22はそれぞれ、図3に示したような木
構造での階層が3階層であるので、8ビット用の2−t
o−1マルチプレクサが7個必要であり、8ビット用の
2−to−1マルチプレクサは1ビット用の2−to−
1マルチプレクサが8個で構成されるので、7×8=5
6個の1ビット用の2−to−1マルチプレクサで構成
される。
【0081】(3)偶数レジスタ番号選択回路23及び
奇数レジスタ番号選択回路24はそれぞれ、図5又は図
6に示すように、1ビット用の2−to−1マルチプレ
クサが3個で構成される。
奇数レジスタ番号選択回路24はそれぞれ、図5又は図
6に示すように、1ビット用の2−to−1マルチプレ
クサが3個で構成される。
【0082】(4)8ビット用の2−to−1マルチプ
レクサ25及び26はそれぞれ、1ビット用の2−to
−1マルチプレクサが8個で構成されるので、1×8=
8個の1ビット用の2−to−1マルチプレクサで構成
される。
レクサ25及び26はそれぞれ、1ビット用の2−to
−1マルチプレクサが8個で構成されるので、1×8=
8個の1ビット用の2−to−1マルチプレクサで構成
される。
【0083】(5)従って、各構成要素20、…、26
での1ビット用の2−to−1マルチプレクサの個数の
総計は、120+56+56+3+3+8+8=254
個である。
での1ビット用の2−to−1マルチプレクサの個数の
総計は、120+56+56+3+3+8+8=254
個である。
【0084】以上のように、上記第1の実施形態のレジ
スタ読み出し回路12は従来回路に比べ、回路規模を7
0%(=(254/360)×100)に削減すること
が期待できる。
スタ読み出し回路12は従来回路に比べ、回路規模を7
0%(=(254/360)×100)に削減すること
が期待できる。
【0085】また、従来のレジスタ読み出し回路におい
ては、レジスタ(バンク)から当該レジスタ読み出し回
路への配線は、16個のレジスタのそれぞれから、3個
の8ビット用の16−to−1マルチプレクサ2〜4の
それぞれへの8ビットの配線であるので、16×3×8
=384本必要である。
ては、レジスタ(バンク)から当該レジスタ読み出し回
路への配線は、16個のレジスタのそれぞれから、3個
の8ビット用の16−to−1マルチプレクサ2〜4の
それぞれへの8ビットの配線であるので、16×3×8
=384本必要である。
【0086】これに対して、第1の実施形態のレジスタ
読み出し回路12においては、16個のレジスタのそれ
ぞれから、1個の8ビット用の16−to−1マルチプ
レクサ20への8ビット配線と、8個のレジスタのそれ
ぞれから、1個の8ビット用の8−to−1マルチプレ
クサへの8ビット配線が2組とであるので、16×1×
8+8×1×8×2=256本必要である。
読み出し回路12においては、16個のレジスタのそれ
ぞれから、1個の8ビット用の16−to−1マルチプ
レクサ20への8ビット配線と、8個のレジスタのそれ
ぞれから、1個の8ビット用の8−to−1マルチプレ
クサへの8ビット配線が2組とであるので、16×1×
8+8×1×8×2=256本必要である。
【0087】以上のように、上記第1の実施形態のレジ
スタ読み出し回路12は、従来回路に比べ、配線量の大
幅削減も期待できる。
スタ読み出し回路12は、従来回路に比べ、配線量の大
幅削減も期待できる。
【0088】第1の実施形態のレジスタ読み出し回路1
2を搭載した第1の実施形態のマイクロプロセッサ10
も、レジスタ読み出し回路12の回路規模や配線量が減
少したので、レジスタ読み出し回路12の占有面積など
が小さくなり、構成の小型化や簡単化が期待できる。
2を搭載した第1の実施形態のマイクロプロセッサ10
も、レジスタ読み出し回路12の回路規模や配線量が減
少したので、レジスタ読み出し回路12の占有面積など
が小さくなり、構成の小型化や簡単化が期待できる。
【0089】(B)第2の実施形態
次に、本発明によるレジスタ読み出し回路及びマイクロ
プロセッサの第2の実施形態を図面を参照しながら簡単
に説明する。
プロセッサの第2の実施形態を図面を参照しながら簡単
に説明する。
【0090】上述した第1の実施形態は、レジスタ番号
が連続している2個のオペランドに対応できるものであ
ったが、この第2の実施形態は、レジスタ番号が連続し
ている4個のオペランドに対応できるものである。
が連続している2個のオペランドに対応できるものであ
ったが、この第2の実施形態は、レジスタ番号が連続し
ている4個のオペランドに対応できるものである。
【0091】図示しない第2の実施形態での命令レジス
タ・デコーダは、与えられた命令を保持して解読するも
のであり、解読した命令の種類情報は、図示しない演算
ユニット(ALU)などに与え、また、最大5個のオペ
ランドのデータ(レジスタ番号)は、オペランド選択入
力として、第2の実施形態のレジスタ読み出し回路10
0(図9参照)に与える。この第2の実施形態の場合、
命令レジスタ・デコーダが解読する命令(の中)には、
黙示的なオペランドを設けている命令があり、このよう
な命令の場合、命令レジスタ・デコーダが出力する連続
するレジスタ番号はオペランド選択入力2〜5として出
力される。
タ・デコーダは、与えられた命令を保持して解読するも
のであり、解読した命令の種類情報は、図示しない演算
ユニット(ALU)などに与え、また、最大5個のオペ
ランドのデータ(レジスタ番号)は、オペランド選択入
力として、第2の実施形態のレジスタ読み出し回路10
0(図9参照)に与える。この第2の実施形態の場合、
命令レジスタ・デコーダが解読する命令(の中)には、
黙示的なオペランドを設けている命令があり、このよう
な命令の場合、命令レジスタ・デコーダが出力する連続
するレジスタ番号はオペランド選択入力2〜5として出
力される。
【0092】なお、命令レジスタ・デコーダは、最大5
個のオペランドを明示的に表記している命令を解読する
ものであっても良い。
個のオペランドを明示的に表記している命令を解読する
ものであっても良い。
【0093】図9は、第2の実施形態のレジスタ読み出
し回路100の詳細構成を示すブロック図である。
し回路100の詳細構成を示すブロック図である。
【0094】なお、図9は、レジスタ数Nが32の場合
を示している。また、命令の実装を簡単にするために、
レジスタ番号のビット数nは5ビット(2の5乗=3
2)とする。すなわち、レジスタ番号は10進数で0〜
31をとり、レジスタ番号の値が最大値の場合(N−1
=31;奇数)、それに連続する1だけ大きい値は0
(偶数)になるとする。さらに、レジスタのビット幅は
8ビットとする。
を示している。また、命令の実装を簡単にするために、
レジスタ番号のビット数nは5ビット(2の5乗=3
2)とする。すなわち、レジスタ番号は10進数で0〜
31をとり、レジスタ番号の値が最大値の場合(N−1
=31;奇数)、それに連続する1だけ大きい値は0
(偶数)になるとする。さらに、レジスタのビット幅は
8ビットとする。
【0095】図9において、レジスタ読み出し回路10
0は、8ビット用の32−to−1マルチプレクサ11
0、8ビット用の4個の8−to−1マルチプレクサ1
20〜123、剰余0レジスタ番号選択回路140、剰
余1レジスタ番号選択回路141、剰余2レジスタ番号
選択回路142、剰余3レジスタ番号選択回路143、
並びに、4個の8ビット用の4−to−1マルチプレク
サ150〜153を有する。
0は、8ビット用の32−to−1マルチプレクサ11
0、8ビット用の4個の8−to−1マルチプレクサ1
20〜123、剰余0レジスタ番号選択回路140、剰
余1レジスタ番号選択回路141、剰余2レジスタ番号
選択回路142、剰余3レジスタ番号選択回路143、
並びに、4個の8ビット用の4−to−1マルチプレク
サ150〜153を有する。
【0096】また、この第2の実施形態のレジスタ読み
出し回路100がレジスタ値を読み出す対象のレジスタ
バンクは、剰余0レジスタバンク130、剰余1レジス
タバンク131、剰余2レジスタバンク132及び剰余
3レジスタバンク133に分かれている。
出し回路100がレジスタ値を読み出す対象のレジスタ
バンクは、剰余0レジスタバンク130、剰余1レジス
タバンク131、剰余2レジスタバンク132及び剰余
3レジスタバンク133に分かれている。
【0097】剰余0レジスタバンク130は、レジスタ
番号が、4(バンク数)で割ったときに割り切れる(剰
余が0;下位側2ビットが00)全てのレジスタの内容
を保持しており、各剰余0レジスタの値(8ビット)S
0、…、S7は、32−to−1マルチプレクサ110
及び8−to−1マルチプレクサ120に与えられる。
なお、レジスタ値S0、…、S7に対応するレジスタ番
号は0、4、…28(10進数)である。
番号が、4(バンク数)で割ったときに割り切れる(剰
余が0;下位側2ビットが00)全てのレジスタの内容
を保持しており、各剰余0レジスタの値(8ビット)S
0、…、S7は、32−to−1マルチプレクサ110
及び8−to−1マルチプレクサ120に与えられる。
なお、レジスタ値S0、…、S7に対応するレジスタ番
号は0、4、…28(10進数)である。
【0098】同様に、剰余1レジスタバンク131〜剰
余3レジスタバンク133はそれぞれ、レジスタ番号
が、4で割ったときに剰余が1、2、3である(下位側
2ビットがそれぞれ01、10、11)の全てのレジス
タの内容を保持している。
余3レジスタバンク133はそれぞれ、レジスタ番号
が、4で割ったときに剰余が1、2、3である(下位側
2ビットがそれぞれ01、10、11)の全てのレジス
タの内容を保持している。
【0099】剰余1レジスタバンク131からの各剰余
1レジスタの値T0、…、T7は、32−to−1マル
チプレクサ110及び8−to−1マルチプレクサ12
1に与えられる。なお、レジスタ値T0、…、T7に対
応するレジスタ番号は1、5、…29である。また、剰
余2レジスタバンク132からの各剰余2レジスタの値
U0、…、U7は、32−to−1マルチプレクサ11
0及び8−to−1マルチプレクサ122に与えられ
る。なお、レジスタ値U0、…、U7に対応するレジス
タ番号は2、6、…30である。さらに、剰余3レジス
タバンク133からの各剰余3レジスタの値V0、…、
V7は、32−to−1マルチプレクサ110及び8−
to−1マルチプレクサ123に与えられる。なお、レ
ジスタ値V0、…、V7に対応するレジスタ番号は3、
7、…31である。
1レジスタの値T0、…、T7は、32−to−1マル
チプレクサ110及び8−to−1マルチプレクサ12
1に与えられる。なお、レジスタ値T0、…、T7に対
応するレジスタ番号は1、5、…29である。また、剰
余2レジスタバンク132からの各剰余2レジスタの値
U0、…、U7は、32−to−1マルチプレクサ11
0及び8−to−1マルチプレクサ122に与えられ
る。なお、レジスタ値U0、…、U7に対応するレジス
タ番号は2、6、…30である。さらに、剰余3レジス
タバンク133からの各剰余3レジスタの値V0、…、
V7は、32−to−1マルチプレクサ110及び8−
to−1マルチプレクサ123に与えられる。なお、レ
ジスタ値V0、…、V7に対応するレジスタ番号は3、
7、…31である。
【0100】ここで、上述した第1の実施形態における
偶数は、レジスタ番号を2(バンク数)で割ったときの
剰余0に相当し、第1の実施形態における奇数は、レジ
スタ番号を2で割ったときの剰余1に相当し、第1の実
施形態と第2の実施形態とは同様な技術思想に基づいて
いる。
偶数は、レジスタ番号を2(バンク数)で割ったときの
剰余0に相当し、第1の実施形態における奇数は、レジ
スタ番号を2で割ったときの剰余1に相当し、第1の実
施形態と第2の実施形態とは同様な技術思想に基づいて
いる。
【0101】32−to−1マルチプレクサ110は、
全てのレジスタ値S0〜S7、T0〜T7、U0〜U
7、V0〜V7の中から、命令レジスタ・デコーダから
のオペランド選択入力1が指示するレジスタ番号に係る
ものを選択して、オペランド出力1として出力するもの
である。
全てのレジスタ値S0〜S7、T0〜T7、U0〜U
7、V0〜V7の中から、命令レジスタ・デコーダから
のオペランド選択入力1が指示するレジスタ番号に係る
ものを選択して、オペランド出力1として出力するもの
である。
【0102】8−to−1マルチプレクサ120は、剰
余0レジスタ番号のレジスタの値S0〜S7の中から、
剰余0レジスタ番号選択回路140から与えられたレジ
スタ番号(下位側2ビットが00に決まっているので、
例えば、下位側2ビットを除いた3ビットが与えられ
る)に係るものを選択して、全ての4−to−1マルチ
プレクサ150〜153に出力するものである。
余0レジスタ番号のレジスタの値S0〜S7の中から、
剰余0レジスタ番号選択回路140から与えられたレジ
スタ番号(下位側2ビットが00に決まっているので、
例えば、下位側2ビットを除いた3ビットが与えられ
る)に係るものを選択して、全ての4−to−1マルチ
プレクサ150〜153に出力するものである。
【0103】同様に、8−to−1マルチプレクサ12
1〜123はそれぞれ、入力されているレジスタ値T0
〜T7、U0〜U7又はV0〜V7の中から、対応する
剰余1レジスタ番号選択回路141、剰余2レジスタ番
号選択回路142又は剰余3レジスタ番号選択回路14
3から与えられたレジスタ番号に係るレジスタ値を選択
して、全ての4−to−1マルチプレクサ150〜15
3に出力するものである。
1〜123はそれぞれ、入力されているレジスタ値T0
〜T7、U0〜U7又はV0〜V7の中から、対応する
剰余1レジスタ番号選択回路141、剰余2レジスタ番
号選択回路142又は剰余3レジスタ番号選択回路14
3から与えられたレジスタ番号に係るレジスタ値を選択
して、全ての4−to−1マルチプレクサ150〜15
3に出力するものである。
【0104】剰余0レジスタ番号選択回路140は、図
示しない命令レジスタ・デコーダからのオペランド選択
入力(レジスタ番号)2〜5の中から、4で割った場合
の剰余が0(下位側2ビットが00)であるものを選択
するものである。
示しない命令レジスタ・デコーダからのオペランド選択
入力(レジスタ番号)2〜5の中から、4で割った場合
の剰余が0(下位側2ビットが00)であるものを選択
するものである。
【0105】剰余0レジスタ番号選択回路140は、例
えば、オペランド選択入力2〜5の下位側2ビットを0
0と照合する照合部と、照合結果に応じて、オペランド
選択入力2〜5のいずれかを通過させるゲート部で構成
することができる。
えば、オペランド選択入力2〜5の下位側2ビットを0
0と照合する照合部と、照合結果に応じて、オペランド
選択入力2〜5のいずれかを通過させるゲート部で構成
することができる。
【0106】同様に、剰余1レジスタ番号選択回路14
1、剰余2レジスタ番号選択回路142、剰余3レジス
タ番号選択回路143はそれぞれ、オペランド選択入力
(レジスタ番号)2〜5の中から、4で割った場合の剰
余が1、2、3(下位側2ビットが01、10、11)
であるものを選択するものである。
1、剰余2レジスタ番号選択回路142、剰余3レジス
タ番号選択回路143はそれぞれ、オペランド選択入力
(レジスタ番号)2〜5の中から、4で割った場合の剰
余が1、2、3(下位側2ビットが01、10、11)
であるものを選択するものである。
【0107】4−to−1マルチプレクサ(オペランド
2出力選択回路)150には、上述のように、4個の8
−to−1マルチプレクサ120〜123が出力した4
個のレジスタ値が選択入力として入力されている。ま
た、4−to−1マルチプレクサ150には、オペラン
ド選択入力2(の下位側2ビット)が選択制御入力とし
て入力されている。
2出力選択回路)150には、上述のように、4個の8
−to−1マルチプレクサ120〜123が出力した4
個のレジスタ値が選択入力として入力されている。ま
た、4−to−1マルチプレクサ150には、オペラン
ド選択入力2(の下位側2ビット)が選択制御入力とし
て入力されている。
【0108】4−to−1マルチプレクサ150は、オ
ペランド選択入力2を4で割ったときの剰余が0であれ
ば、8−to−1マルチプレクサ120の出力を選択
し、剰余が1であれば、8−to−1マルチプレクサ1
21の出力を選択し、剰余が2であれば、8−to−1
マルチプレクサ122の出力を選択し、剰余が3であれ
ば、8−to−1マルチプレクサ123の出力を選択し
てオペランド出力2として出力する。
ペランド選択入力2を4で割ったときの剰余が0であれ
ば、8−to−1マルチプレクサ120の出力を選択
し、剰余が1であれば、8−to−1マルチプレクサ1
21の出力を選択し、剰余が2であれば、8−to−1
マルチプレクサ122の出力を選択し、剰余が3であれ
ば、8−to−1マルチプレクサ123の出力を選択し
てオペランド出力2として出力する。
【0109】同様に、4−to−1マルチプレクサ15
1〜153はそれぞれ、オペランド選択入力3、4、5
(の下位側2ビット)に基づき、4個の8−to−1マ
ルチプレクサ120〜123の出力から1個を選択して
オペランド出力3、4、5として出力する。
1〜153はそれぞれ、オペランド選択入力3、4、5
(の下位側2ビット)に基づき、4個の8−to−1マ
ルチプレクサ120〜123の出力から1個を選択して
オペランド出力3、4、5として出力する。
【0110】第2の実施形態のレジスタ読み出し回路1
00の上述した構成の説明、及び、第1の実施形態の動
作説明から、第2の実施形態のレジスタ読み出し回路1
00の動作は簡単に理解できるので、その説明は省略す
る。
00の上述した構成の説明、及び、第1の実施形態の動
作説明から、第2の実施形態のレジスタ読み出し回路1
00の動作は簡単に理解できるので、その説明は省略す
る。
【0111】従来の技術の延長線上でレジスタ番号が連
続する4オペランドに対応する場合、32−to−1マ
ルチプレクサ(110参照)が5個必要である。
続する4オペランドに対応する場合、32−to−1マ
ルチプレクサ(110参照)が5個必要である。
【0112】このような回路と比較した場合、第2の実
施形態のレジスタ読み出し回路100は、回路規模を小
さく抑え、配線量も少なくすることができる。
施形態のレジスタ読み出し回路100は、回路規模を小
さく抑え、配線量も少なくすることができる。
【0113】また、第2の実施形態のレジスタ読み出し
回路100を搭載した第2の実施形態のマイクロプロセ
ッサも、レジスタ読み出し回路100の回路規模や配線
量が小さいので、構成の小型化や簡単化を実現できる。
回路100を搭載した第2の実施形態のマイクロプロセ
ッサも、レジスタ読み出し回路100の回路規模や配線
量が小さいので、構成の小型化や簡単化を実現できる。
【0114】(C)他の実施形態
レジスタ読み出し回路が対象とするレジスタの個数や、
レジスタのビット幅や、読み出し対象のレジスタ番号が
連続する個数などは、上記各実施形態のものに限定され
ず、任意であっても良い。ここで、レジスタの個数は、
2のべき乗である必要もない。
レジスタのビット幅や、読み出し対象のレジスタ番号が
連続する個数などは、上記各実施形態のものに限定され
ず、任意であっても良い。ここで、レジスタの個数は、
2のべき乗である必要もない。
【0115】また、他のオペランドのレジスタ番号と無
関係なレジスタ番号のオペランドの数も、上記各実施形
態のように、1に限定されず、0であっても2以上であ
っても構わない。
関係なレジスタ番号のオペランドの数も、上記各実施形
態のように、1に限定されず、0であっても2以上であ
っても構わない。
【0116】本発明のレジスタ読み出し回路は、マイク
ロプロセッサに適用することを意図してなされたもので
あるが、レジスタバンクから複数の値を同時に読み出す
必要があり、読み出すレジスタの間に上記各実施形態の
ような関係があるならば、マイクロプロセッサ以外であ
っても適用可能であり、同様の効果が得られる。
ロプロセッサに適用することを意図してなされたもので
あるが、レジスタバンクから複数の値を同時に読み出す
必要があり、読み出すレジスタの間に上記各実施形態の
ような関係があるならば、マイクロプロセッサ以外であ
っても適用可能であり、同様の効果が得られる。
【0117】
【発明の効果】以上のように、本発明によれば、回路規
模や配線量を従来より削減することができるレジスタ読
み出し回路及びマイクロプロセッサを実現できる。
模や配線量を従来より削減することができるレジスタ読
み出し回路及びマイクロプロセッサを実現できる。
【図1】第1の実施形態のレジスタ読み出し回路の構成
を示すブロック図である。
を示すブロック図である。
【図2】従来のレジスタ読み出し回路の構成を示すブロ
ック図である。
ック図である。
【図3】16−to−1マルチプレクサの詳細構成を示
すブロック図である。
すブロック図である。
【図4】第1の実施形態のマイクロプロセッサの要部構
成を示すブロック図である。
成を示すブロック図である。
【図5】第1の実施形態の偶数レジスタ番号選択回路の
構成例を示すブロック図である。
構成例を示すブロック図である。
【図6】第1の実施形態の奇数レジスタ番号選択回路の
構成例を示すブロック図である。
構成例を示すブロック図である。
【図7】第1の実施形態のレジスタ読み出し回路の動作
の説明図(1)である。
の説明図(1)である。
【図8】第1の実施形態のレジスタ読み出し回路の動作
の説明図(2)である。
の説明図(2)である。
【図9】第2の実施形態のレジスタ読み出し回路の構成
を示すブロック図である。
を示すブロック図である。
10…マイクロプロセッサ、
11…命令レジスタ・デコーダ、
12、100…レジスタ読み出し回路、
13…レジスタバンク、
13E、13O…偶数側、奇数側レジスタバンク、
20…16−to−1マルチプレクサ、
21、22…偶数側、奇数側の8−to−1マルチプレ
クサ、 23、24…偶数、奇数レジスタ番号選択回路、 25、26…2−to−1マルチプレクサ(オペランド
2、3出力選択回路)、 110…32−to−1マルチプレクサ、 120〜123…剰余0、剰余1、剰余2、剰余3用の
8−to−1マルチプレクサ、 130〜133…剰余0、剰余1、剰余2、剰余3のレ
ジスタバンク、 140〜143…剰余0、剰余1、剰余2、剰余3レジ
スタ番号選択回路、 150〜153…4−to−1マルチプレクサ(オペラ
ンド2、3、4、5出力選択回路)。
クサ、 23、24…偶数、奇数レジスタ番号選択回路、 25、26…2−to−1マルチプレクサ(オペランド
2、3出力選択回路)、 110…32−to−1マルチプレクサ、 120〜123…剰余0、剰余1、剰余2、剰余3用の
8−to−1マルチプレクサ、 130〜133…剰余0、剰余1、剰余2、剰余3のレ
ジスタバンク、 140〜143…剰余0、剰余1、剰余2、剰余3レジ
スタ番号選択回路、 150〜153…4−to−1マルチプレクサ(オペラ
ンド2、3、4、5出力選択回路)。
Claims (5)
- 【請求項1】 読み出し対象の複数のレジスタには通し
番号でなるレジスタ番号が対応付けられており、外部か
ら入力された連続する第1〜第Xの選択レジスタ番号が
同時に与えられ、該当するX個のレジスタのレジスタ値
を同時に読み出すレジスタ読み出し回路において、 Xで割った剰余が同じレジスタ番号の全てのレジスタの
レジスタ値が入力され、与えられた選択制御入力に応じ
て、その中の1個のレジスタ値を選択する、剰余毎のレ
ジスタ値選択手段と、 上記第1〜第Xの選択レジスタ番号が入力され、入力さ
れた各選択レジスタ番号を、その選択レジスタ番号をX
で割った剰余と等しい剰余用の上記レジスタ選択手段
に、選択制御入力として与える選択レジスタ番号交換手
段と、 剰余毎の全ての上記レジスタ値選択手段が出力したレジ
スタ値から、第x(xは1〜X)の選択レジスタ番号に
応じたものを選択出力する、X個の出力選択手段とを有
することを特徴とするレジスタ読み出し回路。 - 【請求項2】 上記第1〜第Xの選択レジスタ番号とは
無関係な、外部から入力された1以上の選択レジスタ番
号に応じ、該当する各レジスタのレジスタ値を選択して
出力する個別レジスタ値選択手段をさらに備えることを
特徴とする請求項1に記載のレジスタ読み出し回路。 - 【請求項3】 Xが2のべき乗であることを特徴とする
請求項1又は2に記載のレジスタ読み出し回路。 - 【請求項4】 複数のレジスタと、命令を解読してレジ
スタ値の同時読み出しが必要なレジスタを規定する連続
する第1〜第Xの選択レジスタ番号を出力する命令解読
手段と、これら第1〜第Xの選択レジスタ番号に応じ
て、該当するレジスタからレジスタ値を同時に読み出す
レジスタ読み出し回路とを少なくとも有するマイクロプ
ロセッサにおいて、 上記レジスタ読み出し回路として、請求項1〜3のいず
れか1項に記載のものを適用したことを特徴とするマイ
クロプロセッサ。 - 【請求項5】 上記命令解読手段は、命令に黙示的に規
定されている情報から、上記第1〜第Xの選択レジスタ
番号を形成することを特徴とする請求項4に記載のマイ
クロプロセッサ。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001286102A JP2003099250A (ja) | 2001-09-20 | 2001-09-20 | レジスタ読み出し回路及びマイクロプロセッサ |
US10/245,393 US20030056080A1 (en) | 2001-09-20 | 2002-09-18 | Register read circuit using the remainders of modulo of a register number by the number of register sub-banks |
US11/169,735 US20050256996A1 (en) | 2001-09-20 | 2005-06-30 | Register read circuit using the remainders of modulo of a register number by the number of register sub-banks |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001286102A JP2003099250A (ja) | 2001-09-20 | 2001-09-20 | レジスタ読み出し回路及びマイクロプロセッサ |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2003099250A true JP2003099250A (ja) | 2003-04-04 |
Family
ID=19109139
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001286102A Pending JP2003099250A (ja) | 2001-09-20 | 2001-09-20 | レジスタ読み出し回路及びマイクロプロセッサ |
Country Status (2)
Country | Link |
---|---|
US (2) | US20030056080A1 (ja) |
JP (1) | JP2003099250A (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7123496B2 (en) * | 2004-05-10 | 2006-10-17 | Intel Corporation | L0 cache alignment circuit |
US7849125B2 (en) | 2006-07-07 | 2010-12-07 | Via Telecom Co., Ltd | Efficient computation of the modulo operation based on divisor (2n-1) |
US8085082B2 (en) * | 2007-05-30 | 2011-12-27 | Broadcom Corporation | High speed multiplexer |
US9665973B2 (en) * | 2012-11-20 | 2017-05-30 | Intel Corporation | Depth buffering |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5798719A (en) * | 1994-07-29 | 1998-08-25 | Discovision Associates | Parallel Huffman decoder |
JPH10509819A (ja) * | 1994-10-14 | 1998-09-22 | シリコン グラフィックス インク. | インターリーブされるキャッシュメモリアレイのインデッキシングとマルチプレキシング |
JPH0950401A (ja) * | 1995-08-09 | 1997-02-18 | Toshiba Corp | キャッシュメモリ及びそれを備えた情報処理装置 |
US5710905A (en) * | 1995-12-21 | 1998-01-20 | Cypress Semiconductor Corp. | Cache controller for a non-symetric cache system |
US6073230A (en) * | 1997-06-11 | 2000-06-06 | Advanced Micro Devices, Inc. | Instruction fetch unit configured to provide sequential way prediction for sequential instruction fetches |
US6138209A (en) * | 1997-09-05 | 2000-10-24 | International Business Machines Corporation | Data processing system and multi-way set associative cache utilizing class predict data structure and method thereof |
US6539467B1 (en) * | 1999-11-15 | 2003-03-25 | Texas Instruments Incorporated | Microprocessor with non-aligned memory access |
-
2001
- 2001-09-20 JP JP2001286102A patent/JP2003099250A/ja active Pending
-
2002
- 2002-09-18 US US10/245,393 patent/US20030056080A1/en not_active Abandoned
-
2005
- 2005-06-30 US US11/169,735 patent/US20050256996A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20030056080A1 (en) | 2003-03-20 |
US20050256996A1 (en) | 2005-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0053457B1 (en) | Data processing apparatus | |
US4446517A (en) | Microprogram memory with page addressing and address decode in memory | |
EP0614191B1 (en) | Instruction memory system for risc microprocessor capable of preforming program counter relative addressing | |
JPS6049332B2 (ja) | マイクロプログラム制御方式 | |
US4162519A (en) | Data processor with address allocation to operations | |
JPH06274528A (ja) | ベクトル演算処理装置 | |
JP2003099250A (ja) | レジスタ読み出し回路及びマイクロプロセッサ | |
EP0220327B1 (en) | Address expanding system | |
US6738792B1 (en) | Parallel mask generator | |
JP2006072961A (ja) | 演算処理装置のメモリ回路 | |
EP0936537B1 (en) | Cyclic redundancy check in a computer system | |
US20040024992A1 (en) | Decoding method for a multi-length-mode instruction set | |
JPH09114639A (ja) | マスクデータ生成回路及びビットフィールド操作回路 | |
JP3305406B2 (ja) | プログラム制御のプロセッサ | |
US20020156992A1 (en) | Information processing device and computer system | |
JP3247724B2 (ja) | ビットフィールド操作演算装置及びマイクロプロセッサ | |
US6772271B2 (en) | Reduction of bank switching instructions in main memory of data processing apparatus having main memory and plural memory | |
JPH02126321A (ja) | 命令コードのデコード装置 | |
JPH11163736A (ja) | プロセッサ | |
US20030140218A1 (en) | General purpose state machine | |
JPH10116226A (ja) | 半導体記憶装置のアドレス整列装置 | |
US5027300A (en) | Two level multiplexer circuit shifter apparatus | |
US6385717B1 (en) | Programmable 1-bit data processing arrangement | |
JP2001092658A (ja) | データ処理回路及びデータ処理装置 | |
SU1283746A1 (ru) | Вычислительное устройство |