JPH06103062A - コンピュータ処理装置に利用できるレジスタ数を増大させる装置 - Google Patents
コンピュータ処理装置に利用できるレジスタ数を増大させる装置Info
- Publication number
- JPH06103062A JPH06103062A JP3308336A JP30833691A JPH06103062A JP H06103062 A JPH06103062 A JP H06103062A JP 3308336 A JP3308336 A JP 3308336A JP 30833691 A JP30833691 A JP 30833691A JP H06103062 A JPH06103062 A JP H06103062A
- Authority
- JP
- Japan
- Prior art keywords
- registers
- precision
- register
- double
- numbers
- 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
- 238000000034 method Methods 0.000 description 4
- 239000000126 substance Substances 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- 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
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
-
- 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/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- 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
-
- 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/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30138—Extension of register space, e.g. register cache
-
- G—PHYSICS
- G06—COMPUTING; 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/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/342—Extension of operand address space
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Telephone Function (AREA)
- Multi Processors (AREA)
Abstract
(57)【要約】
【目的】 コンピュータがアドレッシングできる数学的
操作用の高精度レジスタの数を増加させることを目的と
する。 【構成】 第1の複数のレジスタと、第2の複数のレジ
スタとを含み、第1の複数のレジスタに属する各レジス
タは、少なくとも1つの単精度数を記憶するのに十分な
数のビット位置を含み、第1の複数のレジスタに属する
レジスタは、単精度数を記憶するときは、順次番号付け
されたアドレスによりアドレッシング可能であり、倍精
度数を記憶するときには、単精度数を記憶するときに使
用する順次番号のうち1つおきの番号によりアドレッシ
ング可能であり、また、第2の複数のレジスタに属する
各レジスタは、少なくとも1つの単精度数を記憶するの
に十分な数のビット位置を含み、複数の第2のレジスタ
に属するレジスタは、倍精度数を記憶するときには、単
精度数を記憶するときに使用する順次番号のうち、第1
の複数のレジスタに属するレジスタをアドレッシングす
る際に脱落させた1つおきの番号により、2つ1組でア
ドレッシング可能である。
操作用の高精度レジスタの数を増加させることを目的と
する。 【構成】 第1の複数のレジスタと、第2の複数のレジ
スタとを含み、第1の複数のレジスタに属する各レジス
タは、少なくとも1つの単精度数を記憶するのに十分な
数のビット位置を含み、第1の複数のレジスタに属する
レジスタは、単精度数を記憶するときは、順次番号付け
されたアドレスによりアドレッシング可能であり、倍精
度数を記憶するときには、単精度数を記憶するときに使
用する順次番号のうち1つおきの番号によりアドレッシ
ング可能であり、また、第2の複数のレジスタに属する
各レジスタは、少なくとも1つの単精度数を記憶するの
に十分な数のビット位置を含み、複数の第2のレジスタ
に属するレジスタは、倍精度数を記憶するときには、単
精度数を記憶するときに使用する順次番号のうち、第1
の複数のレジスタに属するレジスタをアドレッシングす
る際に脱落させた1つおきの番号により、2つ1組でア
ドレッシング可能である。
Description
【0001】
【産業上の利用分野】本発明はコンピュータプロセッサ
に関し、特に、利用可能なレジスタの数を増すためにコ
ンピュータプロセッサにおいてレジスタをアドレッシン
グする装置に関する。
に関し、特に、利用可能なレジスタの数を増すためにコ
ンピュータプロセッサにおいてレジスタをアドレッシン
グする装置に関する。
【0002】
【従来の技術】コンピュータプロセッサは複数のレジス
タと、複数の演算論理装置とから構成されている。それ
らのレジスタに値が導入されると、演算論理装置は、あ
る結果を達成するために、他のレジスタに記憶されてい
る命令に従って値を操作する。たとえば、カリフォルニ
ア州マウンテンビューのSun Microsyste
ms,Inc.の設計によるスケーラブルプロセッサア
ーキテクチャ(SPARC)の場合、1つの命令語は装
置に第1のレジスタに記憶されている量を取り出すこ
と、その量を第2の複数のレジスタに記憶されている量
に加算すること及びその結果を第3のレジスタに導入す
ることを指令できる。
タと、複数の演算論理装置とから構成されている。それ
らのレジスタに値が導入されると、演算論理装置は、あ
る結果を達成するために、他のレジスタに記憶されてい
る命令に従って値を操作する。たとえば、カリフォルニ
ア州マウンテンビューのSun Microsyste
ms,Inc.の設計によるスケーラブルプロセッサア
ーキテクチャ(SPARC)の場合、1つの命令語は装
置に第1のレジスタに記憶されている量を取り出すこ
と、その量を第2の複数のレジスタに記憶されている量
に加算すること及びその結果を第3のレジスタに導入す
ることを指令できる。
【0003】浮動小数点プロセッサは、特に算術演算機
能を処理するのに適するプロセッサであり、この特定の
形態の算術演算を処理するのに最適の数と大きさの浮動
小数点レジスタを含む。SPARCアーキテクチャで
は、浮動小数点プロセッサは、1つの単精度オペランド
を形成する32のビットをそれぞれ保持することができ
る32個の独立したレジスタを含む。単精度オペランド
は、コンピュータがその算術演算機能を実行するときに
使用する正規の数のビット位置を含む。算術演算操作の
精度をさらに向上させるために、浮動小数点プロセッサ
は32個のレジスタを2つ1組にして使用して、16個
の倍精度数を記憶するか、もしくは4つ1組にして使用
して、8個の4倍精度数を保持するようにしても良い。
また、コンピュータプロセッサは、同様にして8倍精度
以上の数を処理することにより精度を拡張しても良いで
あろう。
能を処理するのに適するプロセッサであり、この特定の
形態の算術演算を処理するのに最適の数と大きさの浮動
小数点レジスタを含む。SPARCアーキテクチャで
は、浮動小数点プロセッサは、1つの単精度オペランド
を形成する32のビットをそれぞれ保持することができ
る32個の独立したレジスタを含む。単精度オペランド
は、コンピュータがその算術演算機能を実行するときに
使用する正規の数のビット位置を含む。算術演算操作の
精度をさらに向上させるために、浮動小数点プロセッサ
は32個のレジスタを2つ1組にして使用して、16個
の倍精度数を記憶するか、もしくは4つ1組にして使用
して、8個の4倍精度数を保持するようにしても良い。
また、コンピュータプロセッサは、同様にして8倍精度
以上の数を処理することにより精度を拡張しても良いで
あろう。
【0004】レジスタがある動作のために利用不可能で
あるときにデータを記憶し、回復するのに要する時間は
非常に長いので、レジスタの数はプロセッサの動作速度
を決定する上での1つの要因である。このため、浮動小
数点プロセッサが使用できるレジスタの数を増すことが
望ましい。
あるときにデータを記憶し、回復するのに要する時間は
非常に長いので、レジスタの数はプロセッサの動作速度
を決定する上での1つの要因である。このため、浮動小
数点プロセッサが使用できるレジスタの数を増すことが
望ましい。
【0005】
【発明が解決しようとする課題】従って、本発明の目的
は、コンピュータがアドレッシングできる数学的操作用
の高精度レジスタの数を増すことである。
は、コンピュータがアドレッシングできる数学的操作用
の高精度レジスタの数を増すことである。
【0006】本発明の別の、さらに特定した目的は、コ
ンピュータがアドレッシングしうる倍精度浮動小数点レ
ジスタ及び4倍精度浮動小数点レジスタの数を増すこと
である。
ンピュータがアドレッシングしうる倍精度浮動小数点レ
ジスタ及び4倍精度浮動小数点レジスタの数を増すこと
である。
【0007】
【課題を解決するための手段】本発明の上記の目的及び
その他の目的は、第1の複数のレジスタと、第2の複数
のレジスタとを具備し、第1の複数のレジスタに属する
各レジスタは、少なくとも1つの単精度数を記憶するの
に十分な数のビット位置を含み、第1の複数のレジスタ
に属するレジスタは、単精度数を記憶するときは、順次
番号付けされたアドレスによりアドレッシング可能であ
り、倍精度数を記憶するときには、単精度数を記憶する
ときに使用する順次番号のうち1つおきの番号によりア
ドレッシング可能であり、また、第2の複数のレジスタ
に属する各レジスタは、少なくとも1つの単精度数を記
憶するのに十分な数のビット位置を含み、第2の複数の
レジスタに属するレジスタは、倍精度数を記憶するとき
には、単精度数を記憶するときに使用する順次番号のう
ち、第1の複数のレジスタに属するレジスタをアドレッ
シングするときに脱落させた1つおきの番号により2つ
1組でアドレッシング可能であるような浮動小数点プロ
セッサにおいて実現される。
その他の目的は、第1の複数のレジスタと、第2の複数
のレジスタとを具備し、第1の複数のレジスタに属する
各レジスタは、少なくとも1つの単精度数を記憶するの
に十分な数のビット位置を含み、第1の複数のレジスタ
に属するレジスタは、単精度数を記憶するときは、順次
番号付けされたアドレスによりアドレッシング可能であ
り、倍精度数を記憶するときには、単精度数を記憶する
ときに使用する順次番号のうち1つおきの番号によりア
ドレッシング可能であり、また、第2の複数のレジスタ
に属する各レジスタは、少なくとも1つの単精度数を記
憶するのに十分な数のビット位置を含み、第2の複数の
レジスタに属するレジスタは、倍精度数を記憶するとき
には、単精度数を記憶するときに使用する順次番号のう
ち、第1の複数のレジスタに属するレジスタをアドレッ
シングするときに脱落させた1つおきの番号により2つ
1組でアドレッシング可能であるような浮動小数点プロ
セッサにおいて実現される。
【0008】本発明の上記の目的及び特徴、並びにその
他の目的及び特徴は、以下の詳細な説明を図面と関連さ
せて参照することによりさらに良く理解されるであろ
う。尚、図面中、いくつかの図を通して同じ図中符号は
同じ要素を指示している。
他の目的及び特徴は、以下の詳細な説明を図面と関連さ
せて参照することによりさらに良く理解されるであろ
う。尚、図面中、いくつかの図を通して同じ図中符号は
同じ要素を指示している。
【0009】表記法及び用語 以下の詳細な説明の中には、コンピュータメモリ内部に
おけるデータビットの操作をアルゴリズム及び記号表示
によって表している部分がある。そのようなアルゴリズ
ムによる説明や表示は、データ処理技術の分野に熟達す
る人がその作業の内容を同じ分野の当業者に最も有効に
伝達するための手段である。ここでは、また、一般的に
も、アルゴリズムは所望の結果に至る首尾一貫したステ
ップのシーケンスであると考えられている。それらのス
テップは、物理的量の物理的操作を要求するステップで
ある。通常、そのような量は記憶,転送,組合わせ,比
較及びその他の方法による操作が可能である電気信号又
は磁気信号の形態をとる。時によっては、主に一般的に
使用されている用語であるという理由により、それらの
信号をビット,値,要素,記号,文字,項,数などと呼
ぶと好都合であることがわかっているが、それらの用語
及びそれに類する用語は、全て、適切な物理的量と関連
させるべきものであり、単にそのような量に便宜上付さ
れたラベルであるにすぎないということを忘れてはなら
ない。
おけるデータビットの操作をアルゴリズム及び記号表示
によって表している部分がある。そのようなアルゴリズ
ムによる説明や表示は、データ処理技術の分野に熟達す
る人がその作業の内容を同じ分野の当業者に最も有効に
伝達するための手段である。ここでは、また、一般的に
も、アルゴリズムは所望の結果に至る首尾一貫したステ
ップのシーケンスであると考えられている。それらのス
テップは、物理的量の物理的操作を要求するステップで
ある。通常、そのような量は記憶,転送,組合わせ,比
較及びその他の方法による操作が可能である電気信号又
は磁気信号の形態をとる。時によっては、主に一般的に
使用されている用語であるという理由により、それらの
信号をビット,値,要素,記号,文字,項,数などと呼
ぶと好都合であることがわかっているが、それらの用語
及びそれに類する用語は、全て、適切な物理的量と関連
させるべきものであり、単にそのような量に便宜上付さ
れたラベルであるにすぎないということを忘れてはなら
ない。
【0010】さらに、実行される操作を、一般にオペレ
ータが実行する知的動作と関連している加算又は比較な
どの用語で呼ぶことが多いが、ここで説明する、本発明
の一部を成す動作のいずれにおいても、そのようなオペ
レータの能力は不要であり、多くの場合に望ましくな
い。動作は機械の動作である。本発明の動作を実行する
のに有用な機械には、汎用デジタルコンピュータ又は他
のそれに類する装置がある。いずれの場合にも、コンピ
ュータを動作させるときの方法動作と、計算の方法自体
との明確な区別に留意すべきである。本発明は、電気信
号又はその他の物理的(たとえば、機械的,化学的)信
号を処理して、別の所望の物理的信号を発生するに際し
てコンピュータを動作させる装置に関する。
ータが実行する知的動作と関連している加算又は比較な
どの用語で呼ぶことが多いが、ここで説明する、本発明
の一部を成す動作のいずれにおいても、そのようなオペ
レータの能力は不要であり、多くの場合に望ましくな
い。動作は機械の動作である。本発明の動作を実行する
のに有用な機械には、汎用デジタルコンピュータ又は他
のそれに類する装置がある。いずれの場合にも、コンピ
ュータを動作させるときの方法動作と、計算の方法自体
との明確な区別に留意すべきである。本発明は、電気信
号又はその他の物理的(たとえば、機械的,化学的)信
号を処理して、別の所望の物理的信号を発生するに際し
てコンピュータを動作させる装置に関する。
【0011】
【実施例】先に指摘した通り、浮動小数点プロセッサ
や、同様の数学的操作を処理する他のプロセッサは多数
のレジスタをアドレッシングできることが非常に望まし
い。SPARCアーキテクチャでは、浮動小数点プロセ
ッサは、それぞれ32ビットの2進情報を保持すること
ができる32個の独立したレジスタを含む。各32ビッ
トレジスタは1つの単精度オペランドを保持する。32
個の独立したレジスタがあるので、各単精度レジスタは
0から31までのアドレスを割当てられることになる。
レジスタが32個であるときは、レジスタアドレスは5
ビットを必要とする。
や、同様の数学的操作を処理する他のプロセッサは多数
のレジスタをアドレッシングできることが非常に望まし
い。SPARCアーキテクチャでは、浮動小数点プロセ
ッサは、それぞれ32ビットの2進情報を保持すること
ができる32個の独立したレジスタを含む。各32ビッ
トレジスタは1つの単精度オペランドを保持する。32
個の独立したレジスタがあるので、各単精度レジスタは
0から31までのアドレスを割当てられることになる。
レジスタが32個であるときは、レジスタアドレスは5
ビットを必要とする。
【0012】算術演算操作においてさらに高い精度を得
るために、SPARC浮動小数点プロセッサ(及び他の
プロセッサ)はさらに多くのビット位置を使用して、操
作されるそれぞれの数を記憶する。倍精度オペランドは
64のビット位置を有しており、2つの互いに整列した
浮動小数点レジスタに保持される。このように、1つの
倍精度数をレジスタ0及びレジスタ1に記憶し、別の倍
精度数をレジスタ2及びレジスタ3に記憶する・・・な
どとすれば良い。レジスタを整列させることにより、特
定の倍精度浮動小数点数を選択するときに、2つのレジ
スタのうち一方のみをアドレッシングするだけで良い。
これにより、1つの命令が倍精度数をアドレッシングす
るときには5つのアドレスビットのみを使用することに
なるので、大量のスペースを節約できる。同じように、
4倍精度オペランドは128のビット位置を有し、4つ
の互いに整列した浮動小数点レジスタ(たとえば、レジ
スタ0,レジスタ1,レジスタ2及びレジスタ3)に保
持される。レジスタを整列してあれば、特定の4倍精度
浮動小数点数を選択するときに、4つのレジスタのうち
1つのみをアドレッシングするだけで良い。そして、ア
ドレススペースを同様に節約できる。
るために、SPARC浮動小数点プロセッサ(及び他の
プロセッサ)はさらに多くのビット位置を使用して、操
作されるそれぞれの数を記憶する。倍精度オペランドは
64のビット位置を有しており、2つの互いに整列した
浮動小数点レジスタに保持される。このように、1つの
倍精度数をレジスタ0及びレジスタ1に記憶し、別の倍
精度数をレジスタ2及びレジスタ3に記憶する・・・な
どとすれば良い。レジスタを整列させることにより、特
定の倍精度浮動小数点数を選択するときに、2つのレジ
スタのうち一方のみをアドレッシングするだけで良い。
これにより、1つの命令が倍精度数をアドレッシングす
るときには5つのアドレスビットのみを使用することに
なるので、大量のスペースを節約できる。同じように、
4倍精度オペランドは128のビット位置を有し、4つ
の互いに整列した浮動小数点レジスタ(たとえば、レジ
スタ0,レジスタ1,レジスタ2及びレジスタ3)に保
持される。レジスタを整列してあれば、特定の4倍精度
浮動小数点数を選択するときに、4つのレジスタのうち
1つのみをアドレッシングするだけで良い。そして、ア
ドレススペースを同様に節約できる。
【0013】当然のことながら、1つの倍精度数を記憶
している2つのレジスタを指定するとき、また、1つの
4倍精度数を記憶している4つのレジスタを指定すると
きには1つのアドレスを使用するので、レジスタは常に
正しい順序でアドレッシングされなければならない。レ
ジスタを誤った順序で選択すれば、その数は正しくない
意味を持つことになってしまうであろう。そこで、慣例
として、倍精度数を記憶する5ビットアドレスは常に偶
数のアドレスを有する。このために、倍精度レジスタは
16個しか存在することができない。また、同様に、4
倍精度数を保持するレジスタは4個1組であるので、4
倍精度レジスタは8つしか存在することができない。
している2つのレジスタを指定するとき、また、1つの
4倍精度数を記憶している4つのレジスタを指定すると
きには1つのアドレスを使用するので、レジスタは常に
正しい順序でアドレッシングされなければならない。レ
ジスタを誤った順序で選択すれば、その数は正しくない
意味を持つことになってしまうであろう。そこで、慣例
として、倍精度数を記憶する5ビットアドレスは常に偶
数のアドレスを有する。このために、倍精度レジスタは
16個しか存在することができない。また、同様に、4
倍精度数を保持するレジスタは4個1組であるので、4
倍精度レジスタは8つしか存在することができない。
【0014】図1は、そのような浮動小数点プロセッサ
における浮動小数点レジスタの配列を示す。レジスタ0
のアドレスはレジスタ0にある単精度数,レジスタ0及
びレジスタ1にある倍精度数又はレジスタ0,レジスタ
1,レジスタ2及びレジスタ3にある4倍精度数をアク
セスするために使用されるアドレスであることがわかる
であろう。この図で使用している数は10進数である
が、実際のアドレスが2進数であることは当業者には明
白であろう。命令自体は、いずれの場合にもアクセスす
べき数の精度の程度を指定する。たとえば、命令「fa
dds」は、単精度数を加算すべきであることを指示
し、命令「faddd」は、倍精度数を加算すべきであ
ることを指示し;命令「faddq」は、4倍精度数を
加算すべきであることを指示する。
における浮動小数点レジスタの配列を示す。レジスタ0
のアドレスはレジスタ0にある単精度数,レジスタ0及
びレジスタ1にある倍精度数又はレジスタ0,レジスタ
1,レジスタ2及びレジスタ3にある4倍精度数をアク
セスするために使用されるアドレスであることがわかる
であろう。この図で使用している数は10進数である
が、実際のアドレスが2進数であることは当業者には明
白であろう。命令自体は、いずれの場合にもアクセスす
べき数の精度の程度を指定する。たとえば、命令「fa
dds」は、単精度数を加算すべきであることを指示
し、命令「faddd」は、倍精度数を加算すべきであ
ることを指示し;命令「faddq」は、4倍精度数を
加算すべきであることを指示する。
【0015】通常のアドレッシング方式を使用して倍精
度数をアドレッシングするときには、偶数番号のアドレ
スのみを使用することがわかるであろう。さらに、通常
のアドレッシング方式を使用して4倍精度数をアドレッ
シングするときには、4で割切れる番号のアドレスのみ
を使用する。従って、倍精度数と4倍精度数の算術演算
には多くのアドレスを使用しないことになる。言うまで
もなく、未使用のアドレスは、従来は倍精度プロセス及
び4倍精度プロセスに利用不可能である単精度レジスタ
位置を指定する。
度数をアドレッシングするときには、偶数番号のアドレ
スのみを使用することがわかるであろう。さらに、通常
のアドレッシング方式を使用して4倍精度数をアドレッ
シングするときには、4で割切れる番号のアドレスのみ
を使用する。従って、倍精度数と4倍精度数の算術演算
には多くのアドレスを使用しないことになる。言うまで
もなく、未使用のアドレスは、従来は倍精度プロセス及
び4倍精度プロセスに利用不可能である単精度レジスタ
位置を指定する。
【0016】このように、命令自体が関連する精度に関
わる情報を含んでいるので、倍精度数及び4倍精度数に
ついて使用しないこれらのアドレスを追加レジスタをア
ドレッシングするために使用しても差し支えないのであ
る。図2は、(2−2)図に示す32個の32ビットレ
ジスタ「A」を追加したときの配列を示す。これらのレ
ジスタ「A」に、2つを1組として、倍精度数の演算の
ときに通常のアドレッシング方式から脱落させていた奇
数番号のアドレスを与えれば良い。従って、さらに16
個の倍精度レジスタが得られ、浮動小数点プロセッサは
それらのレジスタを利用できるのである。関連している
のが倍精度数の演算であることを命令が指示した場合、
これらの奇数番号アドレスは奇数番号の単精度レジスタ
ではなく、追加レジスタを指定する。
わる情報を含んでいるので、倍精度数及び4倍精度数に
ついて使用しないこれらのアドレスを追加レジスタをア
ドレッシングするために使用しても差し支えないのであ
る。図2は、(2−2)図に示す32個の32ビットレ
ジスタ「A」を追加したときの配列を示す。これらのレ
ジスタ「A」に、2つを1組として、倍精度数の演算の
ときに通常のアドレッシング方式から脱落させていた奇
数番号のアドレスを与えれば良い。従って、さらに16
個の倍精度レジスタが得られ、浮動小数点プロセッサは
それらのレジスタを利用できるのである。関連している
のが倍精度数の演算であることを命令が指示した場合、
これらの奇数番号アドレスは奇数番号の単精度レジスタ
ではなく、追加レジスタを指定する。
【0017】アドレスにコンフリクトを生じることなく
同じ追加レジスタ「A」を4倍精度数を記憶する目的で
も使用できることがわかるであろう。すなわち、4倍精
度数の演算に関わることが命令によって指示されたとき
には、1つおきの奇数番号アドレスを使用して追加レジ
スタをアドレッシングすれば良い。
同じ追加レジスタ「A」を4倍精度数を記憶する目的で
も使用できることがわかるであろう。すなわち、4倍精
度数の演算に関わることが命令によって指示されたとき
には、1つおきの奇数番号アドレスを使用して追加レジ
スタをアドレッシングすれば良い。
【0018】また、(2−3)図に示す64個の32ビ
ットレジスタをレジスタファイルにさらに追加して、追
加4倍精度レジスタとしてアドレスにコンフリクトを生
じることなく使用できることも当業者には明白であろ
う。関連しているのが4倍精度数の演算であることを命
令が指示した場合には、追加レジスタ「B」の隣に示す
アドレスは奇数番号の単精度レジスタ又はレジスタ
「A」の中の倍精度レジスタではなく、追加レジスタ
「B」を指定する。
ットレジスタをレジスタファイルにさらに追加して、追
加4倍精度レジスタとしてアドレスにコンフリクトを生
じることなく使用できることも当業者には明白であろ
う。関連しているのが4倍精度数の演算であることを命
令が指示した場合には、追加レジスタ「B」の隣に示す
アドレスは奇数番号の単精度レジスタ又はレジスタ
「A」の中の倍精度レジスタではなく、追加レジスタ
「B」を指定する。
【0019】このように、32個の単精度レジスタと、
32個の倍精度レジスタと、32個の4倍精度レジスタ
の全てを1つの浮動小数点プロセッサによってアドレッ
シングできるのである。この構成を、同じ効果をもっ
て、8倍精度以上の精度を使用するシステムに拡張して
も良い。浮動小数点プロセッサにおいて別の数のレジス
タを使用するシステムに、このアドレッシング構成を適
用しても良い。さらに、浮動小数点レジスタ以外の、数
を操作するプロセッサと共に本発明の構成を利用するこ
とも可能である。たとえば、整数プロセッサは多数の数
学的演算を実行し、この構成から利益を得ることができ
るであろう。
32個の倍精度レジスタと、32個の4倍精度レジスタ
の全てを1つの浮動小数点プロセッサによってアドレッ
シングできるのである。この構成を、同じ効果をもっ
て、8倍精度以上の精度を使用するシステムに拡張して
も良い。浮動小数点プロセッサにおいて別の数のレジス
タを使用するシステムに、このアドレッシング構成を適
用しても良い。さらに、浮動小数点レジスタ以外の、数
を操作するプロセッサと共に本発明の構成を利用するこ
とも可能である。たとえば、整数プロセッサは多数の数
学的演算を実行し、この構成から利益を得ることができ
るであろう。
【0020】以上、本発明を好ましい一実施例によって
説明したが、当業者により本発明の趣旨から逸脱せずに
様々な変形及び変更を実施しうることは理解されるであ
ろう。従って、本発明は特許請求の範囲によって判断さ
れるべきである。
説明したが、当業者により本発明の趣旨から逸脱せずに
様々な変形及び変更を実施しうることは理解されるであ
ろう。従って、本発明は特許請求の範囲によって判断さ
れるべきである。
【図1】従来の技術の浮動小数点プロセッサのレジスタ
を説明する図。
を説明する図。
【図2】本発明に従って設計した浮動小数点プロセッサ
のレジスタを説明する図。
のレジスタを説明する図。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 シン・コン アメリカ合衆国 94039 カリフォルニア 州・マウンテン ビュー・ピイオーボック ス 391379・(番地なし) (72)発明者 エドモンド・ケリイ アメリカ合衆国 95136 カリフォルニア 州・サン ホゼ・リオ グランデ ドライ ブ・5277
Claims (2)
- 【請求項1】 第1の複数のレジスタと、第2の複数の
レジスタとを具備し、第1の複数のレジスタに属する各
レジスタは、少なくとも1つの単精度数を記憶するのに
十分な数のビット位置を含み、第1の複数のレジスタに
属するレジスタは、単精度数を記憶するときには、順次
番号付けされたアドレスによりアドレッシング可能であ
り、倍精度数を記憶するときには、単精度数を記憶する
ときに使用する順次番号のうち1つおきの番号によりア
ドレッシング可能であり、また、第2の複数のレジスタ
に属する各レジスタは、少なくとも1つの単精度数を記
憶するのに十分な数のビット位置を含み、第2の複数の
レジスタに属するレジスタは、倍精度数を記憶するとき
には、単精度数を記憶するときに使用する順次番号のう
ち、第1の複数のレジスタに属するレジスタを倍精度数
の記憶時にアドレッシングする際に脱落させた1つおき
の番号により、2つ1組でアドレッシング可能である数
を操作することができるプロセッサ。 - 【請求項2】 第1の複数のレジスタと、第2の複数の
レジスタとを具備し、第1の複数のレジスタに属する各
レジスタは、少なくとも1つの単精度数を記憶するのに
十分な数のビット位置を含み、第1の複数のレジスタに
属するレジスタは、単精度数を記憶するときは、順次番
号付けされたアドレスによりアドレッシング可能であ
り、倍精度数を記憶するときには、単精度数を記憶する
ときに使用する順次番号のうち1つおきの番号によりア
ドレッシング可能であり、また、第2の複数のレジスタ
に属する各レジスタは、少なくとも1つの倍精度数を記
憶するのに十分な数のビット位置を含み、第2の複数の
レジスタに属するレジスタは、倍精度数を記憶するとき
には、単精度数を記憶するときに使用する順次番号のう
ち、第1の複数のレジスタに属するレジスタをアドレッ
シングする際に脱落させた1つおきの番号によりアドレ
ッシング可能である数を操作することができるプロセッ
サ。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US60555690A | 1990-10-29 | 1990-10-29 | |
US605556 | 1990-10-29 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH06103062A true JPH06103062A (ja) | 1994-04-15 |
Family
ID=24424162
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP3308336A Pending JPH06103062A (ja) | 1990-10-29 | 1991-10-29 | コンピュータ処理装置に利用できるレジスタ数を増大させる装置 |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP0483967A3 (ja) |
JP (1) | JPH06103062A (ja) |
KR (1) | KR960001943B1 (ja) |
CA (1) | CA2054459C (ja) |
TW (1) | TW315957U (ja) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5771368A (en) * | 1990-10-29 | 1998-06-23 | Sun Microsystems, Inc. | Memory addressing scheme for increasing the number of memory locations available in a computer for storing higher precision numbers |
DE4208459A1 (de) * | 1992-03-17 | 1993-09-23 | Philips Patentverwaltung | Schaltungsanordnung zur verarbeitung von eingabe/ausgabedaten |
DE69424355T2 (de) * | 1993-08-31 | 2001-02-15 | Sun Microsystems, Inc. | Speicheradressierungsschema zur Erhöhung der Anzahl von Speicherplätzen in einem Rechner zur Speicherung von Doppelgenauigkeitszahlen |
US6643765B1 (en) | 1995-08-16 | 2003-11-04 | Microunity Systems Engineering, Inc. | Programmable processor with group floating point operations |
US5632514A (en) * | 1996-03-26 | 1997-05-27 | Johnson, Jr.; Marvin B. | Juvenile safety gate latch for swing gate |
US5901316A (en) * | 1996-07-01 | 1999-05-04 | Sun Microsystems, Inc. | Float register spill cache method, system, and computer program product |
US5854939A (en) * | 1996-11-07 | 1998-12-29 | Atmel Corporation | Eight-bit microcontroller having a risc architecture |
EP0942357A3 (en) | 1998-03-11 | 2000-03-22 | Matsushita Electric Industrial Co., Ltd. | Data processor compatible with a plurality of instruction formats |
US6170001B1 (en) | 1998-05-27 | 2001-01-02 | Arm Limited | System for transfering format data from format register to memory wherein format data indicating the distribution of single or double precision data type in the register bank |
US7114056B2 (en) | 1998-12-03 | 2006-09-26 | Sun Microsystems, Inc. | Local and global register partitioning in a VLIW processor |
US7117342B2 (en) * | 1998-12-03 | 2006-10-03 | Sun Microsystems, Inc. | Implicitly derived register specifiers in a processor |
GB2363869B (en) * | 2000-06-20 | 2004-06-23 | Element 14 Inc | Register addressing |
JP5481793B2 (ja) * | 2008-03-21 | 2014-04-23 | 富士通株式会社 | 演算処理装置および同装置の制御方法 |
CN113808000B (zh) * | 2021-11-19 | 2022-04-26 | 北京壁仞科技开发有限公司 | 数据管理装置及数据管理方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS58142464A (ja) * | 1982-02-19 | 1983-08-24 | Hitachi Ltd | マイクロプロセツサ |
-
1991
- 1991-09-24 EP EP19910308651 patent/EP0483967A3/en not_active Withdrawn
- 1991-10-18 TW TW084203504U patent/TW315957U/zh unknown
- 1991-10-25 KR KR1019910018917A patent/KR960001943B1/ko not_active IP Right Cessation
- 1991-10-29 JP JP3308336A patent/JPH06103062A/ja active Pending
- 1991-10-29 CA CA002054459A patent/CA2054459C/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
KR920008596A (ko) | 1992-05-28 |
EP0483967A3 (en) | 1993-07-21 |
CA2054459A1 (en) | 1992-04-30 |
KR960001943B1 (ko) | 1996-02-08 |
EP0483967A2 (en) | 1992-05-06 |
CA2054459C (en) | 1998-04-28 |
TW315957U (en) | 1997-09-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1692611B1 (en) | Method and apparatus for performing packed data operations with element size control | |
JP3771968B2 (ja) | コンピュータ及びコンピュータ動作方法 | |
JP3138209B2 (ja) | マトリックス転置方法 | |
US6665790B1 (en) | Vector register file with arbitrary vector addressing | |
EP0681236B1 (en) | Space vector data path | |
KR100991984B1 (ko) | 레지스터와 메모리 사이에 데이터를 이동시키는 데이터처리장치 및 방법 | |
JP3150286B2 (ja) | データストリング生成方法、コンピュータ動作方法、コンピュータシステムによるマトリックス乗算方法、及びコンピュータ | |
US6732253B1 (en) | Loop handling for single instruction multiple datapath processor architectures | |
CN100410919C (zh) | 处理器 | |
US20010011342A1 (en) | Methods and apparatus for dynamic instruction controlled reconfigurable register file with extended precision | |
US20050125637A1 (en) | Constant generation in SIMD processing | |
JPH06103062A (ja) | コンピュータ処理装置に利用できるレジスタ数を増大させる装置 | |
US20050125647A1 (en) | Endianess compensation within a SIMD data processing system | |
US6958718B2 (en) | Table lookup operation within a data processing system | |
US20050125636A1 (en) | Vector by scalar operations | |
EP1825383A2 (en) | Data file storing multiple data types with controlled data access | |
US20040078554A1 (en) | Digital signal processor with cascaded SIMD organization | |
EP0126247B1 (en) | Computer system | |
JP2002529847A (ja) | ビットfifoを有するディジタル信号プロセッサ | |
US5179681A (en) | Method and apparatus for current window cache with switchable address and out cache registers | |
JPH0477346B2 (ja) | ||
US20040172517A1 (en) | Synchronous periodical orthogonal data converter | |
KR100301224B1 (ko) | 고정도수를저장하는컴퓨터내에서이용가능한메모리주소위치의수를증가시키기위한메모리주소지정방법 | |
JPS6297032A (ja) | プレシフタを備えたコンピユ−タ | |
JPH0329068A (ja) | 並列データ処理方式 |