JPH11272546A - 可変長レジスタ装置 - Google Patents
可変長レジスタ装置Info
- Publication number
- JPH11272546A JPH11272546A JP10073939A JP7393998A JPH11272546A JP H11272546 A JPH11272546 A JP H11272546A JP 10073939 A JP10073939 A JP 10073939A JP 7393998 A JP7393998 A JP 7393998A JP H11272546 A JPH11272546 A JP H11272546A
- Authority
- JP
- Japan
- Prior art keywords
- length register
- bits
- register
- variable
- variable length
- 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
- 238000010586 diagram Methods 0.000 description 6
- 238000000034 method Methods 0.000 description 4
- 230000007423 decrease Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
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/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30032—Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
- G06F9/30014—Arithmetic instructions with variable precision
-
- 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
-
- 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/30105—Register structure
- G06F9/30112—Register structure comprising data of variable length
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Memory System (AREA)
Abstract
(57)【要約】
【課題】 メモリのアドレス指定用として利用できるだ
けでなく、汎用レジスタとして利用できる可変長レジス
タ装置を提供すること。 【解決手段】 メモリ6が、可変長レジスタ2をアクセ
スする命令を発行する。デコーダ7が、前記メモリから
のアクセス命令を解釈して、前記可変長レジスタを特定
する識別子と使用エリアを指定する識別子を生成する。
第1セレクタ3が、前記デコーダからの識別子に従っ
て、特定された可変長レジスタの指定された使用エリア
に格納されているデータを読み出し、使用エリアの整合
をとる。演算論理回路4が、前記第1セレクタからのデ
ータを演算する。そして、第2セレクタが、前記演算論
理回路のデータを読み出し、使用エリアの整合をとって
データを前記可変長レジスタに格納する。
けでなく、汎用レジスタとして利用できる可変長レジス
タ装置を提供すること。 【解決手段】 メモリ6が、可変長レジスタ2をアクセ
スする命令を発行する。デコーダ7が、前記メモリから
のアクセス命令を解釈して、前記可変長レジスタを特定
する識別子と使用エリアを指定する識別子を生成する。
第1セレクタ3が、前記デコーダからの識別子に従っ
て、特定された可変長レジスタの指定された使用エリア
に格納されているデータを読み出し、使用エリアの整合
をとる。演算論理回路4が、前記第1セレクタからのデ
ータを演算する。そして、第2セレクタが、前記演算論
理回路のデータを読み出し、使用エリアの整合をとって
データを前記可変長レジスタに格納する。
Description
【0001】
【発明の属する技術分野】本発明は、コンピュータ等で
一時記憶装置として利用されるレジスタ装置に関し、特
にレジスタ長やレジスタ本数を可変とすることができる
可変長レジスタ装置に関するものである。
一時記憶装置として利用されるレジスタ装置に関し、特
にレジスタ長やレジスタ本数を可変とすることができる
可変長レジスタ装置に関するものである。
【0002】
【従来の技術】従来の可変長レジスタ装置として、例え
ば、特開平4−76748号公報に示されるものがあ
る。この可変長レジスタ装置は、Nビットの第1のレジ
スタの下位nビット(N>n)を選択して出力する第1
のセレクタと、Nビットの第2のレジスタの上位(N−
n)ビット(N>n)を選択して出力する第2のセレク
タと、第1および第2のセレクタの出力を入力して論理
和の演算を行うことによってNビットのデータを出力す
る演算回路を有している。この可変長レジスタ装置は、
メモリのバンクアドレスをソフトウェアで切り換えるこ
とによってメモリの有効利用を図るときに利用される。
ば、特開平4−76748号公報に示されるものがあ
る。この可変長レジスタ装置は、Nビットの第1のレジ
スタの下位nビット(N>n)を選択して出力する第1
のセレクタと、Nビットの第2のレジスタの上位(N−
n)ビット(N>n)を選択して出力する第2のセレク
タと、第1および第2のセレクタの出力を入力して論理
和の演算を行うことによってNビットのデータを出力す
る演算回路を有している。この可変長レジスタ装置は、
メモリのバンクアドレスをソフトウェアで切り換えるこ
とによってメモリの有効利用を図るときに利用される。
【0003】
【発明が解決しようとする課題】しかし、特開平4−7
6748号公報の可変長レジスタ装置によると、データ
長に応じて使用エリアを区分することができないため、
メモリのバンクアドレスの指定に利用が限定され、汎用
レジスタとして利用することができない。また、レジス
タ長やレジスタ本数の定義は、プロセッサアーキテクチ
ャ設計の中で重要な意味を持つ。仮に、対象となるアプ
リケーションの処理時にレジスタに不足が生じた場合
は、処理のスループットが低下し、レジスタを冗長に用
意した場合は、コスト増に直結する。また、例えば、3
2ビットアクセスも必要であるが、下位16ビットや下
位8ビットのみを処理対象とする場合も多いアプリケー
ションの場合は、必要なレジスタ本数に対して活用する
ビット数が少なくなり無駄が多い。従って、本発明の目
的は、メモリのアドレス指定用として利用できるだけで
なく、汎用レジスタとして利用できる可変長レジスタ装
置を提供することにある。
6748号公報の可変長レジスタ装置によると、データ
長に応じて使用エリアを区分することができないため、
メモリのバンクアドレスの指定に利用が限定され、汎用
レジスタとして利用することができない。また、レジス
タ長やレジスタ本数の定義は、プロセッサアーキテクチ
ャ設計の中で重要な意味を持つ。仮に、対象となるアプ
リケーションの処理時にレジスタに不足が生じた場合
は、処理のスループットが低下し、レジスタを冗長に用
意した場合は、コスト増に直結する。また、例えば、3
2ビットアクセスも必要であるが、下位16ビットや下
位8ビットのみを処理対象とする場合も多いアプリケー
ションの場合は、必要なレジスタ本数に対して活用する
ビット数が少なくなり無駄が多い。従って、本発明の目
的は、メモリのアドレス指定用として利用できるだけで
なく、汎用レジスタとして利用できる可変長レジスタ装
置を提供することにある。
【0004】
【課題を解決するための手段】本発明は、上記目的を実
現するため、所定のビット数のレジスタと、所定のプロ
グラムを格納したメモリと、前記メモリから読み出され
た前記所定のプログラムを解読して前記レジスタの前記
所定のビット数中の使用ビット数と前記使用ビット数の
前記レジスタ中のエリアを指定する命令を出力する命令
デコーダを備えたことを特徴とする可変長レジスタ装置
を提供する。
現するため、所定のビット数のレジスタと、所定のプロ
グラムを格納したメモリと、前記メモリから読み出され
た前記所定のプログラムを解読して前記レジスタの前記
所定のビット数中の使用ビット数と前記使用ビット数の
前記レジスタ中のエリアを指定する命令を出力する命令
デコーダを備えたことを特徴とする可変長レジスタ装置
を提供する。
【0005】上記構成によれば、固定長のレジスタサイ
ズを持つレジスタリソースの任意のエリアをプログラム
制御で可変に扱うことによりレジスタ長を可変させ、見
掛け上のレジスタ本数を増大させることができる。
ズを持つレジスタリソースの任意のエリアをプログラム
制御で可変に扱うことによりレジスタ長を可変させ、見
掛け上のレジスタ本数を増大させることができる。
【0006】
【発明の実施の形態】図1は、本発明による可変長レジ
スタ装置の実施形態を示すブロック図である。この可変
長レジスタ装置1は、可変長レジスタ2、4−1セレク
タ3、演算論理回路(ALU)4、4−1セレクタ5が
この順でループ状に接続され、命令メモリ6、命令デコ
ーダ7、シーケンサ8がこの順でループ状に接続されて
いる。そして、演算論理回路(ALU)4の出力の一部
がシーケンサ8に与えられ、命令デコーダ7で復号され
た命令が可変長レジスタ2、4−1セレクタ3、演算論
理回路(ALU)4、4−1セレクタ5に与えられる。
また、外部機器とは外部インタフェイス10および制御
バス11を介して接続されている。
スタ装置の実施形態を示すブロック図である。この可変
長レジスタ装置1は、可変長レジスタ2、4−1セレク
タ3、演算論理回路(ALU)4、4−1セレクタ5が
この順でループ状に接続され、命令メモリ6、命令デコ
ーダ7、シーケンサ8がこの順でループ状に接続されて
いる。そして、演算論理回路(ALU)4の出力の一部
がシーケンサ8に与えられ、命令デコーダ7で復号され
た命令が可変長レジスタ2、4−1セレクタ3、演算論
理回路(ALU)4、4−1セレクタ5に与えられる。
また、外部機器とは外部インタフェイス10および制御
バス11を介して接続されている。
【0007】このような構成において、その概略動作を
説明すると、可変長レジスタ2をアクセスするための命
令が、命令メモリ6から発行され、命令デコーダ7に入
力されて解釈される。その結果、可変長レジスタ2を特
定し、その使用エリアを指定する制御信号が、命令デコ
ーダ7で生成され、可変長レジスタ2、4−1セレクタ
3、演算論理回路(ALU)4、4−1セレクタ5に伝
達されると共に、シーケンサ8に入力される。
説明すると、可変長レジスタ2をアクセスするための命
令が、命令メモリ6から発行され、命令デコーダ7に入
力されて解釈される。その結果、可変長レジスタ2を特
定し、その使用エリアを指定する制御信号が、命令デコ
ーダ7で生成され、可変長レジスタ2、4−1セレクタ
3、演算論理回路(ALU)4、4−1セレクタ5に伝
達されると共に、シーケンサ8に入力される。
【0008】命令デコーダ7からの命令に従って可変長
レジスタ2のデータが、4−1セレクタ3に読み出され
て使用エリアの整合がとられ、演算論理回路(ALU)
4に入力されて演算処理される。そして、演算処理され
たデータが、4−1セレクタ5に読み出されて使用エリ
アの整合がとられ、可変長レジスタ2に書き戻される。
このとき、各種制御フラグ情報が、演算論理回路(AL
U)4からシーケンサ8に伝達され、次の命令が実行さ
れる。
レジスタ2のデータが、4−1セレクタ3に読み出され
て使用エリアの整合がとられ、演算論理回路(ALU)
4に入力されて演算処理される。そして、演算処理され
たデータが、4−1セレクタ5に読み出されて使用エリ
アの整合がとられ、可変長レジスタ2に書き戻される。
このとき、各種制御フラグ情報が、演算論理回路(AL
U)4からシーケンサ8に伝達され、次の命令が実行さ
れる。
【0009】図2は、1つの可変長レジスタ2内の使用
エリアアサインの一例を示す図である。この例では、3
2ビット長のレジスタを、8/16/24/32ビット
の可変長レジスタとしてアサインする例を示している。
この場合、レジスタハードウェアの構成によっては、8
ビット毎にリード/ライトイネーブルを用意する必要が
ある。
エリアアサインの一例を示す図である。この例では、3
2ビット長のレジスタを、8/16/24/32ビット
の可変長レジスタとしてアサインする例を示している。
この場合、レジスタハードウェアの構成によっては、8
ビット毎にリード/ライトイネーブルを用意する必要が
ある。
【0010】図2において、使用エリア名B0は、ビッ
ト0〜7の8ビットを使用エリアとし、使用エリア名B
1は、ビット8〜15の8ビットを使用エリアとし、使
用エリア名B2は、ビット16〜23の8ビットを使用
エリアとし、使用エリア名B3は、ビット24〜31の
8ビットを使用エリアとする。また、使用エリア名H0
は、ビット0〜15の16ビットを使用エリアとし、使
用エリア名H1は、ビット16〜31の16ビットを使
用エリアとし、使用エリア名Q0は、ビット0〜23の
24ビットを使用エリアとし、使用エリア名W0は、ビ
ット0〜31の32ビットを使用エリアとする。使用エ
リア名は併記されているように3ビットのコードで表さ
れる。
ト0〜7の8ビットを使用エリアとし、使用エリア名B
1は、ビット8〜15の8ビットを使用エリアとし、使
用エリア名B2は、ビット16〜23の8ビットを使用
エリアとし、使用エリア名B3は、ビット24〜31の
8ビットを使用エリアとする。また、使用エリア名H0
は、ビット0〜15の16ビットを使用エリアとし、使
用エリア名H1は、ビット16〜31の16ビットを使
用エリアとし、使用エリア名Q0は、ビット0〜23の
24ビットを使用エリアとし、使用エリア名W0は、ビ
ット0〜31の32ビットを使用エリアとする。使用エ
リア名は併記されているように3ビットのコードで表さ
れる。
【0011】上述したように、可変長レジスタ2内の使
用エリアの指定は、可変長レジスタ2をアクセスするた
めの命令内で指定され、その際は図2に示す使用エリア
名(機械語変換時は同図に示すバイナリ表現)をオペラ
ンド内に組み込めば良い。即ち、複数本存在する可変長
レジスタ2の内の使用する可変長レジスタ2を特定する
識別子と、使用エリアを指定する識別子を組で用いる。
1つの可変長レジスタ2内の使用エリアアサイン方法
や、可変長レジスタ2の本数および固定長レジスタの併
用等は、ターゲットアプリケーションを考慮した上で適
切な構成とする。
用エリアの指定は、可変長レジスタ2をアクセスするた
めの命令内で指定され、その際は図2に示す使用エリア
名(機械語変換時は同図に示すバイナリ表現)をオペラ
ンド内に組み込めば良い。即ち、複数本存在する可変長
レジスタ2の内の使用する可変長レジスタ2を特定する
識別子と、使用エリアを指定する識別子を組で用いる。
1つの可変長レジスタ2内の使用エリアアサイン方法
や、可変長レジスタ2の本数および固定長レジスタの併
用等は、ターゲットアプリケーションを考慮した上で適
切な構成とする。
【0012】図3は、可変長レジスタ装置1の具体的動
作を説明するための図である。演算命令として、「ソー
スAn(B3)+ソースBm(H0)→ディスティネー
ション(H1)」が、命令メモリ6から発行された場合
を説明する。ここで、この演算命令は、ソースAの可変
長レジスタ2のn番のB3エリアと、ソースBの可変長
レジスタ2のm番のH0エリアとの算術加算を行い、そ
の結果をディスティネーションレジスタのH1エリアに
格納するという意味とする。
作を説明するための図である。演算命令として、「ソー
スAn(B3)+ソースBm(H0)→ディスティネー
ション(H1)」が、命令メモリ6から発行された場合
を説明する。ここで、この演算命令は、ソースAの可変
長レジスタ2のn番のB3エリアと、ソースBの可変長
レジスタ2のm番のH0エリアとの算術加算を行い、そ
の結果をディスティネーションレジスタのH1エリアに
格納するという意味とする。
【0013】先ず、ソースAの可変長レジスタ2のn番
のB3エリアのデータと、ソースBの可変長レジスタ2
のm番のH0エリアのデータが、4−1セレクタ3に読
み出され(ステップS1)、使用エリアの整合がとられ
る。即ち、ソースA側はB3エリア(ビット24〜31
の8ビット)を指定しているため、演算論理回路(AL
U)4へ入力する前にB0エリア(ビット0〜7の8ビ
ット)へ右詰め(シフト)し、未使用エリア(ビット8
〜31の24ビット)には0を詰める。ソースB側はH
0エリア(ビット0〜15の16ビット)を指定してい
るため、右詰め(シフト)は行わないが、未使用エリア
(ビット16〜31の16ビット)には0を詰める(ス
テップS2)。
のB3エリアのデータと、ソースBの可変長レジスタ2
のm番のH0エリアのデータが、4−1セレクタ3に読
み出され(ステップS1)、使用エリアの整合がとられ
る。即ち、ソースA側はB3エリア(ビット24〜31
の8ビット)を指定しているため、演算論理回路(AL
U)4へ入力する前にB0エリア(ビット0〜7の8ビ
ット)へ右詰め(シフト)し、未使用エリア(ビット8
〜31の24ビット)には0を詰める。ソースB側はH
0エリア(ビット0〜15の16ビット)を指定してい
るため、右詰め(シフト)は行わないが、未使用エリア
(ビット16〜31の16ビット)には0を詰める(ス
テップS2)。
【0014】そして、使用エリアの整合がとられたデー
タが、演算論理回路(ALU)4に入力されて算術加算
され、この演算の結果、発生した各種情報フラグは、シ
ーケンサ8へ伝達される。この例では、キャリーがビッ
ト16の位置に発生する(ステップ3)。次に、算術加
算されたデータが、4−1セレクタ5に読み出され、使
用エリアの整合がとられる。即ち、ディスティネーショ
ンレジスタはH1エリア(ビット16〜31の16ビッ
ト)を指定しているため、H0エリア(ビット0〜15
の16ビット)からH1エリア(ビット16〜31の1
6ビット)へシフトする。最後に、使用エリアの整合が
とられたデータが、ディスティネーションレジスタに格
納される。このディスティネーションレジスタはH1エ
リア(ビット16〜31の16ビット)を指定している
ため、H1エリアの部分のみ更新すれば良い(ステップ
S4)。
タが、演算論理回路(ALU)4に入力されて算術加算
され、この演算の結果、発生した各種情報フラグは、シ
ーケンサ8へ伝達される。この例では、キャリーがビッ
ト16の位置に発生する(ステップ3)。次に、算術加
算されたデータが、4−1セレクタ5に読み出され、使
用エリアの整合がとられる。即ち、ディスティネーショ
ンレジスタはH1エリア(ビット16〜31の16ビッ
ト)を指定しているため、H0エリア(ビット0〜15
の16ビット)からH1エリア(ビット16〜31の1
6ビット)へシフトする。最後に、使用エリアの整合が
とられたデータが、ディスティネーションレジスタに格
納される。このディスティネーションレジスタはH1エ
リア(ビット16〜31の16ビット)を指定している
ため、H1エリアの部分のみ更新すれば良い(ステップ
S4)。
【0015】以上のような構成の可変長レジスタ装置1
によれば、アプリケーションの特性によっては固定長レ
ジスタでは冗長な場合でも、可変長レジスタ2のレジス
タ本数を最適化することができる。例えば、データバス
が32ビットの場合、通常のプロセッサでは32ビット
固定長レジスタを複数本用意する。ところが、アプリケ
ーションによっては32ビット中の一部を処理すれば良
い場合がある。即ち、32ビット中の下位8ビットのみ
が真に必要なデータの場合、上位24ビットは不要であ
り冗長になる。
によれば、アプリケーションの特性によっては固定長レ
ジスタでは冗長な場合でも、可変長レジスタ2のレジス
タ本数を最適化することができる。例えば、データバス
が32ビットの場合、通常のプロセッサでは32ビット
固定長レジスタを複数本用意する。ところが、アプリケ
ーションによっては32ビット中の一部を処理すれば良
い場合がある。即ち、32ビット中の下位8ビットのみ
が真に必要なデータの場合、上位24ビットは不要であ
り冗長になる。
【0016】また、32ビット中の下位8ビットのみに
真に必要なデータを4組格納する場合、4本の固定長レ
ジスタ(32ビット×4本=128ビット)が必要とな
り冗長になる。しかし、8ビットアクセスが可能な32
ビット可変長レジスタの場合、1本で8ビットのデータ
を4組格納することができるので、レジスタ本数を最適
化することができる。
真に必要なデータを4組格納する場合、4本の固定長レ
ジスタ(32ビット×4本=128ビット)が必要とな
り冗長になる。しかし、8ビットアクセスが可能な32
ビット可変長レジスタの場合、1本で8ビットのデータ
を4組格納することができるので、レジスタ本数を最適
化することができる。
【0017】さらに、上記のようにレジスタ長やレジス
タ本数を可変とすることができるので、スループットを
向上させることができる。例えば、32ビット中の下位
8ビットのみが真に必要なデータを4組読み出す場合、
32ビット固定長レジスタのときは読み出し動作が4回
必要(ハードウェアの構成によっては、シフト/マスク
等も必要)であるのに対し、32ビット可変長レジスタ
に8ビット4組分のデータが予め格納されているときの
読み出し動作は1回で完了するので、アクセス回数を削
減してスループットを向上させることができる。
タ本数を可変とすることができるので、スループットを
向上させることができる。例えば、32ビット中の下位
8ビットのみが真に必要なデータを4組読み出す場合、
32ビット固定長レジスタのときは読み出し動作が4回
必要(ハードウェアの構成によっては、シフト/マスク
等も必要)であるのに対し、32ビット可変長レジスタ
に8ビット4組分のデータが予め格納されているときの
読み出し動作は1回で完了するので、アクセス回数を削
減してスループットを向上させることができる。
【0018】また、例えば、32ビット中の上位16ビ
ットと下位16ビットに別々の演算結果を格納する場
合、32ビット固定長レジスタのときは各々の演算終了
後にシフト/マスク/論理演算等の余分な操作を行わな
いと格納できないのに対し、32ビット可変長レジスタ
のときは各々の演算終了後にそれらの格納位置を直接指
定できるので、余分な操作を削減してスループットを向
上させることができる。
ットと下位16ビットに別々の演算結果を格納する場
合、32ビット固定長レジスタのときは各々の演算終了
後にシフト/マスク/論理演算等の余分な操作を行わな
いと格納できないのに対し、32ビット可変長レジスタ
のときは各々の演算終了後にそれらの格納位置を直接指
定できるので、余分な操作を削減してスループットを向
上させることができる。
【0019】さらに、このメリットは、外部メモリを用
いる場合にも発揮できる。例えば、外部に32ビットメ
モリを用意し、32ビットバスを介して内部レジスタへ
のデータ転送を可能とし、外部32ビットメモリ上の8
ビットデータを4組読み出す場合、32ビット固定長レ
ジスタのみを内蔵しているときは、外部32ビットメモ
リ4ワードの下位8ビットに8ビットデータ4組分のデ
ータを格納し、それを4回のアクセスで32ビット固定
長レジスタ4ワードの下位8ビットに取り込むという方
法や、外部32ビットメモリ1ワードに8ビットデータ
4組分のデータを格納し、それを1回のアクセスで32
ビット固定長レジスタ1ワードに取り込み、それを4回
の読み出し動作(ハードウェアの構成によっては、シフ
ト/マスク等も必要)で行うという方法をとる必要があ
る。
いる場合にも発揮できる。例えば、外部に32ビットメ
モリを用意し、32ビットバスを介して内部レジスタへ
のデータ転送を可能とし、外部32ビットメモリ上の8
ビットデータを4組読み出す場合、32ビット固定長レ
ジスタのみを内蔵しているときは、外部32ビットメモ
リ4ワードの下位8ビットに8ビットデータ4組分のデ
ータを格納し、それを4回のアクセスで32ビット固定
長レジスタ4ワードの下位8ビットに取り込むという方
法や、外部32ビットメモリ1ワードに8ビットデータ
4組分のデータを格納し、それを1回のアクセスで32
ビット固定長レジスタ1ワードに取り込み、それを4回
の読み出し動作(ハードウェアの構成によっては、シフ
ト/マスク等も必要)で行うという方法をとる必要があ
る。
【0020】しかし、32ビット可変長レジスタを内蔵
しているときは、外部32ビットメモリ1ワードに8ビ
ットデータ4組分のデータを格納し、それを1回のアク
セスで32ビット可変長レジスタに取り込めば良いの
で、余分な操作を削減してスループットを向上させるこ
とができる。
しているときは、外部32ビットメモリ1ワードに8ビ
ットデータ4組分のデータを格納し、それを1回のアク
セスで32ビット可変長レジスタに取り込めば良いの
で、余分な操作を削減してスループットを向上させるこ
とができる。
【0021】さらに、上記のようにレジスタ長やレジス
タ本数を可変とすることができるので、消費電力を削減
することができる。例えば、32ビット中の下位8ビッ
トのみが必要な処理の場合、32ビット可変長レジスタ
のときは使用エリアである下位8ビットのみをアクセス
し、上位24ビットをアクセスしなくて良いので、アク
セス回数や余分な操作を削減して消費電力を削減するこ
とができる。
タ本数を可変とすることができるので、消費電力を削減
することができる。例えば、32ビット中の下位8ビッ
トのみが必要な処理の場合、32ビット可変長レジスタ
のときは使用エリアである下位8ビットのみをアクセス
し、上位24ビットをアクセスしなくて良いので、アク
セス回数や余分な操作を削減して消費電力を削減するこ
とができる。
【0022】尚、例えば、32ビット長のレジスタを8
/16/24/32ビットの可変長レジスタとしてアサ
インするのではなく、8/16/24/32ビットの固
定長レジスタを別々に用意し、必要に応じてコンパイラ
でレジスタ割当てを行うことで、ユーザ側からは可変長
レジスタに見せることができる。この場合、ハードウェ
アの制御がシンプルになるために高速化のメリットがあ
るが、用意するレジスタの組み合わせは、レジスタの割
当てに失敗しないようにするために、アプリケーション
を限定し、最適な組み合わせを定義する必要があるた
め、汎用性を維持することが困難になるというデメリッ
トがある。
/16/24/32ビットの可変長レジスタとしてアサ
インするのではなく、8/16/24/32ビットの固
定長レジスタを別々に用意し、必要に応じてコンパイラ
でレジスタ割当てを行うことで、ユーザ側からは可変長
レジスタに見せることができる。この場合、ハードウェ
アの制御がシンプルになるために高速化のメリットがあ
るが、用意するレジスタの組み合わせは、レジスタの割
当てに失敗しないようにするために、アプリケーション
を限定し、最適な組み合わせを定義する必要があるた
め、汎用性を維持することが困難になるというデメリッ
トがある。
【0023】
【発明の効果】以上述べたように、本発明によれば、レ
ジスタ長やレジスタ本数を可変とすることができるの
で、1レジスタに複数の情報を格納することができ、ア
クセス回数を減少させ、結果としてスループットの向上
や、消費電力の削減を図ることができる。
ジスタ長やレジスタ本数を可変とすることができるの
で、1レジスタに複数の情報を格納することができ、ア
クセス回数を減少させ、結果としてスループットの向上
や、消費電力の削減を図ることができる。
【図1】本発明による可変長レジスタ装置の実施形態を
示すブロック図である。
示すブロック図である。
【図2】図1の可変長レジスタ装置の1つの可変長レジ
スタ内の使用エリアアサインの一例を示す図である。
スタ内の使用エリアアサインの一例を示す図である。
【図3】図1の可変長レジスタ装置の具体的動作を説明
するための図である。
するための図である。
1 可変長レジスタ装置 2 可変長レジスタ 3 4−1セレクタ 4 演算論理回路(ALU) 5 4−1セレクタ 6 命令メモリ 7 命令デコーダ 8 シーケンサ 10 外部インタフェイス 11 制御バス
───────────────────────────────────────────────────── フロントページの続き (72)発明者 宇野 浩介 神奈川県川崎市中原区小杉町一丁目403番 日本電気テレコムシステム株式会社内 (72)発明者 志村 直樹 神奈川県川崎市中原区小杉町一丁目403番 日本電気テレコムシステム株式会社内
Claims (4)
- 【請求項1】 所定のビット数のレジスタと、 所定のプログラムを格納したメモリと、 前記メモリから読み出された前記所定のプログラムを解
読して前記レジスタの前記所定のビット数中の使用ビッ
ト数と前記使用ビット数の前記レジスタ中のエリアを指
定する命令を出力する命令デコーダを備えたことを特徴
とする可変長レジスタ装置。 - 【請求項2】 可変長レジスタをアクセスする命令を発
行するメモリと、 前記メモリからのアクセス命令を解釈して、前記可変長
レジスタを特定する識別子と使用エリアを指定する識別
子を生成するデコーダと、 前記デコーダからの識別子に従って、特定された可変長
レジスタの指定された使用エリアに格納されているデー
タを読み出し、使用エリアの整合をとる第1セレクタ
と、 前記第1セレクタからのデータを演算する演算論理回路
と、 前記演算論理回路のデータを読み出し、使用エリアの整
合をとってデータを前記可変長レジスタに格納する第2
セレクタとを備えたことを特徴とする可変長レジスタ装
置。 - 【請求項3】 前記デコーダが、前記第1および第2の
セレクタおよび前記演算論理回路への制御信号を生成し
て前記第1および第2のセレクタおよび前記演算論理回
路へ伝達する請求項2に記載の可変長レジスタ装置。 - 【請求項4】 前記デコーダが、前記デコーダとメモリ
の間のシーケンスを制御するシーケンサに接続され、前
記演算論理回路が、各種制御フラグ情報を生成して前記
シーケンサへ伝達する請求項2に記載の可変長レジスタ
装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10073939A JPH11272546A (ja) | 1998-03-23 | 1998-03-23 | 可変長レジスタ装置 |
EP99105020A EP0945783A3 (en) | 1998-03-23 | 1999-03-19 | Variable length register device |
CA 2266259 CA2266259A1 (en) | 1998-03-23 | 1999-03-22 | Variable length register device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10073939A JPH11272546A (ja) | 1998-03-23 | 1998-03-23 | 可変長レジスタ装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH11272546A true JPH11272546A (ja) | 1999-10-08 |
Family
ID=13532597
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP10073939A Pending JPH11272546A (ja) | 1998-03-23 | 1998-03-23 | 可変長レジスタ装置 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP0945783A3 (ja) |
JP (1) | JPH11272546A (ja) |
CA (1) | CA2266259A1 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004511039A (ja) * | 2000-10-04 | 2004-04-08 | エイアールエム リミテッド | 単一命令多数データ処理 |
JP2008065718A (ja) * | 2006-09-09 | 2008-03-21 | Yamaha Corp | デジタル信号処理装置 |
US7516171B2 (en) | 2002-08-22 | 2009-04-07 | Oki Semiconductor Co., Ltd. | Arithmetic unit and method for data storage and reading |
JP2010165245A (ja) * | 2009-01-16 | 2010-07-29 | Fujitsu Ltd | プロセッサ |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6678806B1 (en) | 2000-08-23 | 2004-01-13 | Chipwrights Design, Inc. | Apparatus and method for using tagged pointers for extract, insert and format operations |
US6732253B1 (en) | 2000-11-13 | 2004-05-04 | Chipwrights Design, Inc. | Loop handling for single instruction multiple datapath processor architectures |
US6931518B1 (en) | 2000-11-28 | 2005-08-16 | Chipwrights Design, Inc. | Branching around conditional processing if states of all single instruction multiple datapaths are disabled and the computer program is non-deterministic |
US6970985B2 (en) | 2002-07-09 | 2005-11-29 | Bluerisc Inc. | Statically speculative memory accessing |
KR100532471B1 (ko) * | 2003-09-26 | 2005-12-01 | 삼성전자주식회사 | 입출력 데이터 위스 조절이 가능한 메모리 장치 및 그위스 조절 방법 |
US20050114850A1 (en) | 2003-10-29 | 2005-05-26 | Saurabh Chheda | Energy-focused re-compilation of executables and hardware mechanisms based on compiler-architecture interaction and compiler-inserted control |
US7996671B2 (en) | 2003-11-17 | 2011-08-09 | Bluerisc Inc. | Security of program executables and microprocessors based on compiler-architecture interaction |
US8607209B2 (en) | 2004-02-04 | 2013-12-10 | Bluerisc Inc. | Energy-focused compiler-assisted branch prediction |
TW200625097A (en) * | 2004-11-17 | 2006-07-16 | Sandbridge Technologies Inc | Data file storing multiple date types with controlled data access |
US20080126766A1 (en) | 2006-11-03 | 2008-05-29 | Saurabh Chheda | Securing microprocessors against information leakage and physical tampering |
GB2485774A (en) | 2010-11-23 | 2012-05-30 | Advanced Risc Mach Ltd | Processor instruction to extract a bit field from one operand and insert it into another with an option to sign or zero extend the field |
US11327733B2 (en) * | 2020-05-27 | 2022-05-10 | Blaize, Inc. | Method of using multidimensional blockification to optimize computer program and device thereof |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5590352A (en) * | 1994-04-26 | 1996-12-31 | Advanced Micro Devices, Inc. | Dependency checking and forwarding of variable width operands |
US6175892B1 (en) * | 1998-06-19 | 2001-01-16 | Hitachi America. Ltd. | Registers and methods for accessing registers for use in a single instruction multiple data system |
-
1998
- 1998-03-23 JP JP10073939A patent/JPH11272546A/ja active Pending
-
1999
- 1999-03-19 EP EP99105020A patent/EP0945783A3/en not_active Withdrawn
- 1999-03-22 CA CA 2266259 patent/CA2266259A1/en not_active Abandoned
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004511039A (ja) * | 2000-10-04 | 2004-04-08 | エイアールエム リミテッド | 単一命令多数データ処理 |
US7516171B2 (en) | 2002-08-22 | 2009-04-07 | Oki Semiconductor Co., Ltd. | Arithmetic unit and method for data storage and reading |
JP2008065718A (ja) * | 2006-09-09 | 2008-03-21 | Yamaha Corp | デジタル信号処理装置 |
JP2010165245A (ja) * | 2009-01-16 | 2010-07-29 | Fujitsu Ltd | プロセッサ |
Also Published As
Publication number | Publication date |
---|---|
CA2266259A1 (en) | 1999-09-23 |
EP0945783A3 (en) | 2001-09-26 |
EP0945783A2 (en) | 1999-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR940009094B1 (ko) | 데이타처리 시스템 | |
US4293907A (en) | Data processing apparatus having op-code extension register | |
JP2616182B2 (ja) | データ処理装置 | |
JPH11272546A (ja) | 可変長レジスタ装置 | |
JP3954171B2 (ja) | コンピュータにおけるスカラ値をベクトルに記入する方法 | |
EP0476722B1 (en) | Data processing system | |
US20050198476A1 (en) | Parallel multithread processor (PMT) with split contexts | |
KR100344132B1 (ko) | 컴퓨터 메모리 인터페이스용 장치와, 휴대용 이동 컴퓨터와 그 컴퓨터에서의 프로그램 명령 페치 및 데이타 기록/판독 요청 수행 방법 | |
JPS62197830A (ja) | デ−タ処理システム | |
US5666510A (en) | Data processing device having an expandable address space | |
US6978358B2 (en) | Executing stack-based instructions within a data processing apparatus arranged to apply operations to data items stored in registers | |
JP2001504959A (ja) | Riscアーキテクチャを有する8ビットマイクロコントローラ | |
US6378050B1 (en) | Information processing apparatus and storage medium | |
JP2004086837A (ja) | データ処理装置 | |
JP2551167B2 (ja) | マイクロコンピュータ | |
JP2504312B2 (ja) | プライオリティエンコ―ダ及びそれを備えたデ―タ処理装置 | |
JP2006134347A (ja) | マイクロコンピュータ | |
JPS623338A (ja) | 直接値処理方式 | |
JP2918570B2 (ja) | 中央演算処理装置 | |
JP3474347B2 (ja) | マイクロコンピュータの命令解読部 | |
JP2696578B2 (ja) | データ処理装置 | |
JPH0218620A (ja) | 情報処理装置 | |
JP2007234065A (ja) | データ処理装置 | |
JPH052481A (ja) | 演算制御回路 | |
US20090133007A1 (en) | Compiler and tool chain |