JP2003044273A - データ処理装置及びデータ処理方法 - Google Patents

データ処理装置及びデータ処理方法

Info

Publication number
JP2003044273A
JP2003044273A JP2001234279A JP2001234279A JP2003044273A JP 2003044273 A JP2003044273 A JP 2003044273A JP 2001234279 A JP2001234279 A JP 2001234279A JP 2001234279 A JP2001234279 A JP 2001234279A JP 2003044273 A JP2003044273 A JP 2003044273A
Authority
JP
Japan
Prior art keywords
instruction
register
operand
data processing
executed
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.)
Withdrawn
Application number
JP2001234279A
Other languages
English (en)
Inventor
Hideki Sugimoto
英樹 杉本
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2001234279A priority Critical patent/JP2003044273A/ja
Priority to US10/206,058 priority patent/US6687808B2/en
Publication of JP2003044273A publication Critical patent/JP2003044273A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/30181Instruction operation extension or modification
    • G06F9/30192Instruction operation extension or modification according to data descriptor, e.g. dynamic data typing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30025Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/3013Organisation of register space, e.g. banked or distributed register file according to data content, e.g. floating-point registers, address registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/35Indirect addressing

Abstract

(57)【要約】 【課題】命令数を増加させないで、命令で指定されるレ
ジスタ数より大きいレジスタを間接アドレッシングで指
定すること。 【解決手段】複数のオペランドを記憶するレジスタファ
イル5と、複数のオペランドのレジスタアドレスとデー
タ形式とを対応づけて記録するレジスタポインタアレイ
3、4と、オペレーションコードとレジスタポインタア
レイ3、4のアドレスを指定して間接的に複数のオペラ
ンドから対象オペランドを指定する対象オペランド指定
コードとを含む命令を一時記憶する命令レジスタ2と、
対象オペランド指定コードにより指定されるデータ形式
に基づいて対象オペランドを型変換する演算前型変換ユ
ニット6と、演算前型変換ユニット6により型変換され
た対象オペランドにオペレーションコードに指定された
演算を実行する演算ユニット7とを具備している。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、データ処理装置及
びデータ処理方法に関し、特に、レジスタを間接アドレ
ッシングする場合に利用されるデータ処理装置及びデー
タ処理方法に関する。
【0002】
【従来の技術】データ処理装置の動作周波数が上昇して
いる。これに対して、メモリのアクセス時間は相対的に
緩やかに減少している。このため、データ処理装置の処
理能力を向上させるために、メモリアクセスの時間をよ
り減少させることが望まれている。
【0003】メモリ上のデータ内の一部のワーキングセ
ットをレジスタに格納し、メモリアクセスを減少させる
手段が広く用いられている。メモリアクセスを減少させ
るためには、レジスタの本数を増加させる必要があり、
命令後が長くなるため、命令アクセス量が増加し、性能
面および必要メモリ増大によるコスト面双方でのデメリ
ットが発生する。
【0004】特開平10−11352号公報に示されて
いる公知のデータ処理装置は、命令によって指定される
レジスタに記憶されたデータを用いてその命令を処理す
るデータ処理装置のレジスタアドレス変換方法におい
て、論理的レジスタとそれよりレジスタ数が大きな物理
的レジスタの対応関係をその命令に応じて指定し、その
論理的レジスタの範囲を指定可能とするレジスタ指定フ
ィールドによってその物理的レジスタのアクセスを可能
にしている。
【0005】このようなデータ処理装置は、見方を変え
れば、その命令によって指定される論理的レジスタ番号
を物理的レジスタ番号に変換して物理的に存在するレジ
スタを指定する場合に、その論理的レジスタ番号とその
物理的レジスタ番号との対応関係を制御するレジスタ番
号制御命令に応じて決定される制御信号により切り替え
られることにより、少ないレジスタ指定フィールドで物
理的に大きなレジスタファイルのアクセスを可能にして
いる。このとき、レジスタは取り扱うデータのデータ形
式を有していないため、データ形式を変換する型変換の
命令が必要となることがある。
【0006】図7は、型変換が必要である命令を公知の
データ処理装置が実行するときの動作を示している。ま
ず、その命令は、演算前型変換(S101)、演算(S
102)および演算後型変換(S103)の3つの命令
に分離され、実行される。変換前型変換(S101)
は、レジスタリード(S111)、型変換(S112)
およびレジスタライト(S113)から形成されてい
る。演算(S102)は、レジスタリード(S11
4)、演算(S115)およびレジスタライト(S11
6)から形成されている。演算後型変換(S103)
は、レジスタリード(S117)、型変換(S118)
およびレジスタライト(S119)から形成されてい
る。
【0007】1つの命令語により実行される処理ステー
ジは、命令フェッチIF、命令デコードID、命令実行
EX、データ転送DFおよび書き込みWBとから形成さ
れている。
【0008】命令フェッチIFは、主記憶から命令語を
読み出し、その命令語を命令レジスタに一時的に記憶す
る動作である。命令デコードIDは、命令語を解読する
動作である。すなわち、まず、オペレーションコードに
より演算ユニットが実行する演算が指定され、演算前の
型変換が指定され、演算後の型変換が指定される。さら
に、演算に使用されるオペランドが指定され、演算され
たオペランドを記憶するレジスタのアドレスが指定され
る。
【0009】命令実行EXは、オペランドを演算する動
作である。データ転送DFは、命令実行EXにより導出
されたオペランドをバッファに転送して一時記録する動
作である。書き込みWFは、演算されバッファに記憶さ
れたオペランドをレジスタファイルに書き込む動作であ
る。
【0010】データ処理装置は、命令語をパイプライン
制御方式により実行する。すなわち、データ処理装置
は、命令語により実行される5つの処理ステージを各ス
テージ1クロックで実行し、複数の命令語をオーバーラ
ップして実行する。
【0011】図8は、型変換を伴わない命令語を実行す
るときのパイプラインのステージ構成を示している。型
変換を伴わない命令語は、命令フェッチIFが実行さ
れ、命令デコードIDが実行され、命令実行EXが実行
され、データ転送DFが実行され、書き込みWBが実行
される。次に実行される命令語は、先の命令語の命令デ
コードIDと並行して命令フェッチIFが実行され、先
の命令語の命令実行EXと並行して命令デコードIDが
実行され、先の命令語のデータ転送DFと並行して命令
実行EXが実行され、先の命令語の書き込みWBと並行
してデータ転送DFが実行され、その後、書き込みWB
が実行される。
【0012】このとき、次の命令語が先の命令語と依存
性があるとき、先の命令語の命令実行EXにより導出さ
れたオペランドは、次の命令語の命令デコードID時に
データフォワーディングされることができる。この結
果、型変換を伴わない先の命令語は、実質的に、1クロ
ックで実行されることができる。
【0013】図9は、演算前の型変換を必要とする命令
語を実行するときのパイプラインのステージ構成を示し
ている。演算前の型変換を必要とする命令語は、型変換
の命令語と、演算の命令語とに分離される。型変換の命
令語は、命令フェッチIFが実行され、命令デコードI
Dが実行され、命令実行EXが実行され、データ転送D
Fが実行され、書き込みWBが実行される。演算の命令
語は、型変換の命令語の命令実行EXと並行して命令フ
ェッチIFが実行され、先の命令語のデータ転送DFと
並行して命令デコードIDが実行され、先の命令語の書
き込みWBと並行して命令実行EXが実行され、その
後、データ転送DFと書き込みWBとが実行される。
【0014】その次に実行される命令語は、演算の命令
デコードIDと並行して命令フェッチIFが実行され、
先の命令語の命令実行EXと並行して命令デコードID
が実行され、先の命令語のデータ転送DFと並行して命
令実行EXが実行され、先の命令語の書き込みWBと並
行してデータ転送DFが実行され、その後、書き込みW
Bが実行される。
【0015】このとき、次の命令語が先の命令語と依存
性があるとき、演算の命令語の命令実行EXにより導出
されたオペランドは、次の命令語の命令デコードID時
にデータフォワーディングされることができる。この結
果、演算前の型変換を必要とする命令語は、実質的に、
3クロックで実行されることができる。
【0016】図10は、演算後の型変換を必要とする命
令語を実行するときのパイプラインのステージ構成を示
している。演算後の型変換を必要とする命令語は、演算
の命令語と型変換の命令語とに分離される。演算の命令
語は、命令フェッチIFが実行され、命令デコードID
が実行され、命令実行EXが実行され、データ転送DF
が実行され、書き込みWBが実行される。
【0017】型変換の命令語は、演算の命令語の命令デ
コードIDと並行して命令フェッチIFが実行され、演
算の命令語の命令実行EXと並行して命令デコードID
が実行され、演算の命令語のデータ転送DFと並行して
命令実行EXが実行され、演算の命令語の書き込みWB
と並行してデータ転送DFが実行され、その後、書き込
みWBが実行される。このとき、演算の命令語の命令実
行EXにより導出されたオペランドは、型変換の命令語
の命令デコードID時にデータフォワーディングされ
る。
【0018】次に実行される命令語は、型変換の命令語
の命令デコードIDと並行して命令フェッチIFが実行
され、型変換の命令語の命令実行EXと並行して命令デ
コードIDが実行され、型変換の命令語のデータ転送D
Fと並行して命令実行EXが実行され、型変換の命令語
の書き込みWBと並行してデータ転送DFが実行され、
その後、書き込みWBが実行される。このとき、演算後
に型変換する命令語は、実質的に、2クロックで実行さ
れる。
【0019】このようなデータ処理装置では、データ形
式が異なるデータの演算をするときに、データ形式を演
算可能なデータ形式に変換する型変換の命令が必要であ
り、または、各データ形式のデータを演算の命令が必要
である。このため、データ形式が複数ある場合には、必
要な命令数が増加し、各命令のコードのサイズが増加す
る。さらに、このようなデータ処理装置では、命令語が
データを保持している場所、データ形式等すべての情報
を指定している。このため、レジスタ数が変更される
と、命令語も変更される必要があり、命令アーキテクチ
ャの互換性がない。
【0020】
【発明が解決しようとする課題】本発明の課題は、命令
数を増加させないで、命令で指定されるレジスタ数より
数が大きいレジスタを間接アドレッシングで指定するデ
ータ処理装置及びデータ処理方法を提供することにあ
る。本発明の他の課題は、命令のコードのサイズを増加
させないで、命令で指定されるレジスタ数より数が大き
いレジスタを間接アドレッシングで指定するデータ処理
装置及びデータ処理方法を提供することにある。本発明
のさらに他の課題は、命令アーキテクチャの上位互換性
を保ったまま、レジスタ数を増加させることが可能であ
るデータ処理装置及びデータ処理方法を提供することに
ある。
【0021】
【課題を解決するための手段】以下に、[発明の実施の
形態]で使用される番号・符号を用いて、課題を解決す
るための手段を説明する。これらの番号・符号は、[特
許請求の範囲]の記載と[発明の実施の形態]の記載と
の対応関係を明らかにするために付加されたものであ
り、[特許請求の範囲]に記載されている発明の技術的
範囲の解釈に用いてはならない。
【0022】本発明によるデータ処理装置(1)(3
1)は、複数のオペランドを記憶するレジスタファイル
(5)(35)と、複数のオペランドのレジスタアドレ
スとデータ形式とを対応づけて記録するレジスタポイン
タアレイ(3、4)(33、34)と、オペレーション
コードとレジスタポインタアレイ(3、4)(33、3
4)のアドレスを指定して間接的に複数のオペランドか
ら対象オペランドを指定する対象オペランド指定コード
とを含む命令を一時記憶する命令レジスタ(2)(3
2)と、対象オペランド指定コードにより指定されるデ
ータ形式に基づいて対象オペランドを型変換する演算前
型変換ユニット(6)(36)と、演算前型変換ユニッ
ト(6)(36)により型変換された対象オペランドに
オペレーションコードに指定された演算を実行する演算
ユニット(7)(37)とを具備している。
【0023】データ処理装置(1)(31)は、異なる
データ形式のデータの演算をするときに、データ形式毎
の演算の命令またはデータ形式を変換する型変換の命令
が必要ない。その結果、命令数をデータ形式の分だけ増
加させる必要がない。
【0024】命令は、レジスタポインタアレイ(3、
4)(33、34)のアドレスを指定して間接的に複数
のオペランドから代入オペランドを指定する代入オペラ
ンド指定コードを更に含んでいる。演算ユニット(7)
(37)による演算の結果は、代入オペランドに代入さ
れることが好ましい。
【0025】本発明によるデータ処理装置(1)(3
1)は、更に、演算ユニット(7)(37)により演算
を実行された対象オペランドを代入オペランド指定コー
ドにより指定されるデータ形式に基づいて型変換する演
算後型変換ユニット(8)(38)を具備していること
が好ましい。
【0026】レジスタポインタアレイ(3、4)(3
3、34)は、対象オペランドのレジスタアドレスとデ
ータ形式とを対応づけて記録するリード側レジスタポイ
ンタアレイ(3)(33)と、代入オペランドのレジス
タアドレスとデータ形式とを対応づけて記録するライト
側レジスタポインタアレイ(4)(34)とから形成さ
れることが好ましい。
【0027】代入オペランド指定コードは、対象オペラ
ンド指定コードと一致している。このとき、対象オペラ
ンド指定コードは、代入オペランド指定コードと兼用さ
れている。対象オペランド指定コードが複数であると
き、そのうち1つの対象オペランド指定コードが代入オ
ペランド指定コードを兼用している。
【0028】代入オペランド指定コードは、対象オペラ
ンド指定コードと一致しているとき、すなわち、対象オ
ペランド指定コードが代入オペランド指定コードと兼用
されているとき、対象オペランドのレジスタアドレス
は、リード側レジスタポインタアレイ(3)(33)と
ライト側レジスタポインタアレイ(4)(34)とが独
立してレジスタファイル(5)(35)のアドレスを指
定することにより、代入オペランドのレジスタアドレス
と異なっていても構わない。
【0029】レジスタポインタアレイ(33、34)
は、複数部が備えられ、データ処理装置(31)は、複
数部の1つを選択するレジスタバンク制御機構(39)
を更に具備している。レジスタバンク制御機構(39)
は、命令毎に複数のレジスタポイントアレイ(33、3
4)を切り替える。このようなレジスタバンク制御機構
(39)により、命令はレジスタファイル(35)を有
効に使用することができる。
【0030】本発明によるデータ処理方法は、本発明に
よるデータ処理装置(1)(31)を用いて命令を実行
するデータ処理方法であり、対象オペランド指定コード
により指定されるデータ形式に基づいて対象オペランド
を型変換するステップ(S2)と、演算前型変換ユニッ
トにより型変換された対象オペランドにオペレーション
コードに指定された演算を実行するステップ(S3)と
を具備している。
【0031】型変換するステップ(S2)と演算を実行
するステップ(S3)とは、1クロックで実行される。
型変換するステップ(S2)は、軽い処理であるので、
演算するステップ(S3)とともに1クロックで実行可
能である。型変換するステップ(S2)と演算を実行す
るステップ(S3)とを1クロックで実行することによ
り、命令の実行時間を短縮することができる。
【0032】
【発明の実施の形態】図面を参照して、本発明によるデ
ータ処理装置の実施の形態を説明する。そのデータ処理
装置1は、図1に示されているように、命令レジスタ
2、リード側レジスタポインタアレイ3、ライト側レジ
スタポインタアレイ4、レジスタファイル5、演算前型
変換ユニット6、演算ユニット7および演算後型変換ユ
ニット8を備えている。本実施の形態では、データ処理
装置1が2オペランド方式の命令セットを適用する場合
について説明される。
【0033】命令レジスタ2は、主記憶からフェッチさ
れた命令語を一時的に記憶する。命令レジスタ2は、オ
ペレーションコードフィールドとオペランド指定コード
フィールドとから形成されている。オペランド指定コー
ドフィールドは、第1オペランド指定コードフィールド
と第2オペランド指定コードフィールドとから形成され
ている。
【0034】命令語は、オペレーションコードフィール
ドに記憶されるオペレーションコードと、第1オペラン
ド指定コードフィールドに記憶される第1オペランド指
定コードと、第2オペランド指定コードフィールドに記
憶される第2オペランド指定コードとから形成されてい
る。オペレーションコードは、演算ユニット7で実行さ
れる演算を指定する。第1オペランド指定コードと第2
オペランド指定コードは、リード側レジスタポインタア
レイ3のアドレスを指定し、第2オペランド指定コード
は、さらに、ライト側レジスタポインタアレイ4のアド
レスを指定する。
【0035】リード側レジスタポインタアレイ3は、デ
ータ形式フィールドとアドレスフィールドとから形成さ
れている。リード側レジスタポインタアレイ3は、デー
タ形式フィールドに演算されるオペランドのデータ形式
を記憶し、アドレスフィールドにそのオペランドのレジ
スタファイル5のアドレスを記憶している。リード側レ
ジスタポインタアレイ3は、レジスタファイル5のアド
レスをすべて記述する必要がなく、命令レジスタ2に一
時記録される命令に使用されるオペランドの個数だけデ
ータ形式とアドレスとをが記録される。
【0036】ライト側レジスタポインタアレイ4は、デ
ータ形式フィールドとアドレスフィールドとから形成さ
れている。ライト側レジスタポインタアレイ4は、デー
タ形式フィールドにオペランドのデータ形式を記憶し、
アドレスフィールドに演算されたオペランドが格納され
るレジスタファイル5のアドレスを記憶している。ライ
ト側レジスタポインタアレイ4は、レジスタファイル5
のアドレスをすべて記述する必要がなく、命令レジスタ
2に一時記録される命令に使用されるオペランドの個数
だけデータ形式とアドレスとをが記録される。
【0037】ライト側レジスタポインタアレイ4は、リ
ード側レジスタポインタアレイ3と独立に作成されても
構わない。このとき、2オペランド方式の命令セットを
適用する場合であっても、リード側レジスタポインタア
レイ3が指定したオペランド以外に演算結果を代入する
ことができる。
【0038】レジスタファイル5は、命令語により使用
される複数のオペランドを記憶する。そのオペランド
は、唯一のデータ形式で表現される必要はなく、たとえ
ば、ワード、ハーフワードまたはバイトのいずれかによ
り表現されている数値を示している。
【0039】演算前型変換ユニット6は、リード側レジ
スタポインタアレイ3に指定されたレジスタに記録され
たオペランドのデータ形式を1ワードに型変換する。演
算ユニット7は、演算前型変換ユニット6により1ワー
ドに型変換されたオペランドを演算する。
【0040】演算後型変換ユニット8は、演算されたオ
ペランドをライト側レジスタポインタアレイ4に指定さ
れたデータ形式に型変換する。型変換されたオペランド
は、ライト側レジスタポインタアレイ4に指定されたレ
ジスタファイル5のアドレスに代入される。
【0041】演算前型変換ユニット6と演算後型変換ユ
ニット8は、8種類の型変換を実行する。その8種類の
型変換は、符号なしバイト変換、符号なしハーフワード
変換、符号付きバイト変換、符号付きハーフワード変
換、符号付きバイト飽和変換、符号付きハーフワード飽
和変換、符号付きワード飽和変換およびワード変換とか
ら形成されている。
【0042】符号なしバイト変換は、1ワードにより表
現されたオペランドを符号なし1バイトにより表現する
変換である。符号なしハーフワード変換は、1ワードに
より表現されたオペランドを符号なし1ハーフワードに
より表現する変換である。符号付きバイト変換は、1ワ
ードにより表現されたオペランドを符号付き1バイトに
より表現する変換である。符号付きハーフワード変換
は、1ワードにより表現されたオペランドを符号付き1
バイトにより表現する変換である。
【0043】符号付きバイト飽和変換は、1ワードによ
り表現されたオペランドを符号付き1バイトにより表現
し、符号付き1バイトの表現値の範囲を外れたものにつ
いては、その表現値の最大値または最小値により表現す
る変換である。符号付きハーフワード飽和変換は、1ワ
ードにより表現されたオペランドを符号付き1ハーフワ
ードにより表現し、符号付き1ハーフワードの表現値の
範囲を外れたものについては、その表現値の最大値また
は最小値により表現する変換である。符号付きワード飽
和変換は、1ワードにより表現されたオペランドを符号
付き1ワードにより表現し、符号付き1ワードの表現値
の範囲を外れたものについては、その表現値の最大値ま
たは最小値により表現する変換である。ワード変換は、
変換しないこと(無変換)を示す。
【0044】図2は、型変換が必要である演算をデータ
処理装置1が実行する動作を示している。その動作は、
レジスタリード(S1)、演算前型変換(S2)、演算
(S3)、型変換(S4)およびレジスタライト(S
5)から形成されている。その演算は、1つの命令語に
より表現されている。従来、ソフトウェアにより3つの
命令で実現している。本発明によるデータ処理装置で
は、ハードウェアにより型変換を実行しているため、1
つの命令で型変換と演算とを実行することができる。
【0045】1つの命令語により実行される処理ステー
ジは、命令フェッチIF、命令デコードID、命令実行
EX、データ転送DFおよび書き込みWBとから形成さ
れている。
【0046】命令フェッチIFは、主記憶から命令語を
読み出し、その命令語を命令レジスタ2に一時的に記憶
する動作である。命令デコードIDは、命令語を解読す
る動作である。すなわち、オペレーションコードにより
演算ユニットが実行する演算が指定され、演算前の型変
換が指定され、演算後の型変換が指定される。さらに、
演算に使用される対象であるオペランドが指定され、演
算されたオペランドを記憶するレジスタファイル5のア
ドレスが指定される。
【0047】命令実行EXは、オペランドを型変換し
て、演算する動作である。データ転送DFは、命令実行
EXにより導出されたオペランドを型変換して図示され
ていないバッファに転送して一時記録する動作である。
書き込みWFは、演算され型変換されたオペランドをレ
ジスタファイル5に書き込む動作である。
【0048】データ処理装置1は、命令語をパイプライ
ン制御方式により実行する。すなわち、データ処理装置
1は、命令語により実行される5つの処理ステージを各
ステージ1クロックで実行し、複数の命令語をオーバー
ラップして実行する。
【0049】図3は、型変換を伴わない命令語を実行す
るときのパイプラインのステージ構成を示している。そ
の型変換を伴わない命令語は、命令フェッチIFが実行
され、命令デコードIDが実行され、命令実行EXが実
行され、データ転送DFが実行され、書き込みWBが実
行される。次に実行される命令語は、先の命令語の命令
デコードIDと並行して命令フェッチIFが実行され、
先の命令語の命令実行EXと並行して命令デコードID
が実行され、先の命令語のデータ転送DFと並行して命
令実行EXが実行され、先の命令語の書き込みWBと並
行してデータ転送DFが実行され、その後、書き込みW
Bが実行される。
【0050】このとき、次の命令語が先の命令語と依存
性があるとき、先の命令語の命令実行EXにより演算さ
れ導出されたオペランドは、次の命令語の命令デコード
IDにデータフォワーディングされることができる。こ
の結果、型変換を伴わない先の命令語は、実質的に、1
クロックで実行されることができる。
【0051】図4は、演算前の型変換を必要とする命令
語を実行するときのパイプラインのステージ構成を示し
ている。その演算前の型変換を必要とする命令語は、命
令フェッチIFが実行され、命令デコードIDが実行さ
れ、命令実行EXが実行され、データ転送DFが実行さ
れ、書き込みWBが実行される。次に実行される命令語
は、先の命令語の命令デコードIDと並行して命令フェ
ッチIFが実行され、先の命令語の命令実行EXと並行
して命令デコードIDが実行され、先の命令語のデータ
転送DFと並行して命令実行EXが実行され、先の命令
語の書き込みWBと並行してデータ転送DFが実行さ
れ、その後、書き込みWBが実行される。
【0052】このとき、次の命令語が先の命令語と依存
性があるとき、先の命令語の命令実行EXにより導出さ
れたオペランドは、次の命令語の命令デコードID時に
データフォワーディングされることができる。この結
果、演算前の型変換を必要とする先の命令語は、実質的
に、1クロックで実行されることができる。
【0053】図5は、演算後の型変換を必要とする命令
語を実行するときのパイプラインのステージ構成を示し
ている。その演算後の型変換を必要とする命令語は、命
令フェッチIFが実行され、命令デコードIDが実行さ
れ、命令実行EXが実行され、データ転送DFが実行さ
れ、書き込みWBが実行される。このとき、この命令語
による結果は、演算後の型変換の実行のため、データ転
送DF時に導出される。
【0054】次に実行される命令語は、先の命令語と依
存性がないとき、先の命令語の命令デコードIDと並行
して命令フェッチIFが実行され、先の命令語の命令実
行EXと並行して命令デコードIDが実行され、先の命
令語のデータ転送DFと並行して命令実行EXが実行さ
れ、先の命令語の書き込みWBと並行してデータ転送D
Fが実行され、その後、書き込みWBが実行される。
【0055】このとき、演算後に型変換する先の命令語
は、実質的に、1クロックで実行されることができる。
【0056】次に実行される命令語が先の命令語と依存
性があるとき、次に実行される命令語は先の命令語の命
令実行EXと並行して命令フェッチIFが実行され、先
の命令語のデータ転送DFと並行して命令デコードID
が実行され、先の命令語の書き込みWBと並行して命令
実行EXが実行され、その後、データ転送DFと書き込
みWBとが実行される。
【0057】このとき、先の命令語のデータ転送DFに
より導出されたオペランドは、次の命令語の命令デコー
ドID時にデータフォワーディングされることができ
る。この結果、演算前の型変換を必要とする先の命令語
は、実質的に、2クロックで実行されることができる。
【0058】本発明によるデータ処理装置は、レジスタ
ファイル5を命令により直接に指定していないため、命
令アーキテクチャの上位互換性を保ったまま、レジスタ
数を増加させることが可能となる。本発明によるデータ
処理装置は、命令がデータ幅またはデータ形式の情報を
有するとき、さらに、データ変換のオーバーヘッドを減
少させてデータ処理能力を向上させることができる。こ
のとき、データ形式毎に命令を用意する必要がなくな
り、命令数を減少させることができる。命令数の減少
は、オペレーションコードのサイズを縮小させ、メモリ
コストの低減、命令フェッチがネックとなる性能の低下
を防止する。
【0059】図6は、本発明によるデータ処理装置の実
施の他の形態を示している。そのデータ処理装置31
は、命令レジスタ32、複数のリード側レジスタポイン
タアレイ33、複数のライト側レジスタポインタアレイ
34、レジスタファイル35、演算前型変換ユニット3
6、演算ユニット37、演算後型変換ユニット38およ
びレジスタバンク制御機構39を備えている。
【0060】命令レジスタ32は、主記憶からフェッチ
された命令語を一時的に記憶する。命令レジスタ32
は、オペレーションコードフィールドとオペランド指定
コードフィールドとから形成されている。オペランド指
定コードフィールドは、第1オペランド指定コードフィ
ールドと第2オペランド指定コードフィールドとから形
成されている。
【0061】命令語は、オペレーションコードフィール
ドに記憶されるオペレーションコードと、第1オペラン
ド指定コードフィールドに記憶される第1オペランド指
定コードと、第2オペランド指定コードフィールドに記
憶される第2オペランド指定コードとから形成されてい
る。オペレーションコードは、演算ユニット37で実行
される演算を指定する。第1オペランド指定コードと第
2オペランド指定コードは、リード側レジスタポインタ
アレイ33のアドレスを指定し、第2オペランド指定コ
ードは、さらに、ライト側レジスタポインタアレイ34
のアドレスを指定する。
【0062】複数のリード側レジスタポインタアレイ3
3は、各々がデータ形式フィールドとアドレスフィール
ドとから形成されている。リード側レジスタポインタア
レイ33は、データ形式フィールドに演算されるオペラ
ンドのデータ形式を記憶し、アドレスフィールドにその
オペランドのレジスタファイル35のアドレスを記憶し
ている。リード側レジスタポインタアレイ3の各々は、
レジスタファイル5のアドレスをすべて記述する必要が
なく、命令レジスタ2に一時記録される命令に使用され
るオペランドの個数だけデータ形式とアドレスとをが記
録される。
【0063】複数のライト側レジスタポインタアレイ3
4は、各々がデータ形式フィールドとアドレスフィール
ドとから形成されている。ライト側レジスタポインタア
レイ34は、データ形式フィールドにオペランドのデー
タ形式を記憶し、アドレスフィールドに演算されたオペ
ランドが格納されるレジスタファイル35のアドレスを
記憶している。
【0064】レジスタファイル35は、命令語により使
用される複数のオペランドを記憶する。そのオペランド
は、唯一のデータ形式で表現される必要はなく、たとえ
ば、ワード、ハーフワードまたはバイトのいずれかによ
り表現されている数値を示している。
【0065】演算前型変換ユニット36は、リード側レ
ジスタポインタアレイ33に指定されたレジスタに記録
されたオペランドのデータ形式を1ワードに型変換す
る。演算ユニット37は、演算前型変換ユニット36に
より1ワードに型変換されたオペランドを演算する。
【0066】演算後型変換ユニット38は、演算された
オペランドをライト側レジスタポインタアレイ34に指
定されたデータ形式に型変換する。型変換されたオペラ
ンドは、ライト側レジスタポインタアレイ34に指定さ
れたレジスタファイル35のアドレスに代入される。
【0067】レジスタバンク制御機構39は、命令に基
づいて、複数のリード側レジスタポインタアレイ33か
ら1つのリード側レジスタポインタアレイ33を選択
し、複数のライト側レジスタポインタアレイ34から1
つのライト側レジスタポインタアレイ34を選択する。
レジスタバンク制御機構39により選択された1つのリ
ード側レジスタポインタアレイ33は、命令レジスタ3
2に一時記憶される命令語に使用され、レジスタバンク
制御機構39により選択された1つのライト側レジスタ
ポインタアレイ34は、命令レジスタ32に一時記憶さ
れる命令語に使用される。
【0068】リード側レジスタポインタアレイ33とラ
イト側レジスタポインタアレイ34とが命令毎に切り替
えられることにより、命令はレジスタ数が大きいレジス
タファイル35を有効に扱うことができる。
【0069】
【発明の効果】本発明によるデータ処理装置及びデータ
処理方法によれば、命令数を増加させないで、その命令
で指定されるレジスタ数より数が大きいレジスタを間接
アドレッシングで指定することができる。
【0070】本発明によるデータ処理装置及びデータ処
理方法は、さらに、レジスタポインタアレイの内容を変
更しない場合には、レジスタポインタアレイが存在しな
い場合と同様な操作を実行することができる。このた
め、命令アーキテクチャのコンパティビリティが保持で
き、ソフトウェア資源の流用が可能となる。
【図面の簡単な説明】
【図1】図1は、本発明によるデータ処理装置の実施の
形態を示すブロック図である。
【図2】図2は、本発明によるデータ処理装置の動作を
示すフローチャートである。
【図3】図3は、型変換が必要ではない命令語を実行す
るときのパイプラインのステージ構成を示す図である。
【図4】図4は、演算前の型変換を必要とする命令語を
実行するときのパイプラインのステージ構成を示す図で
ある。
【図5】図5は、演算後の型変換を必要とする命令語を
実行するときのパイプラインのステージ構成を示す図で
ある。
【図6】図6は、本発明によるデータ処理装置の実施の
他の形態を示すブロック図である。
【図7】図7は、公知のデータ処理装置の動作を示すフ
ローチャートである。
【図8】図8は、型変換が必要ではない命令語を実行す
るときのパイプラインのステージ構成を示す図である。
【図9】図9は、演算前の型変換を必要とする命令語を
実行するときのパイプラインのステージ構成を示す図で
ある。
【図10】図10は、演算後の型変換を必要とする命令
語を実行するときのパイプラインのステージ構成を示す
図である。
【符号の説明】
1:データ処理装置 2:命令レジスタ 3:リード側レジスタポインタアレイ 4:ライト側レジスタポインタアレイ 5:レジスタファイル 6:演算前型変換ユニット 7:演算ユニット 8:演算後型変換ユニット IF:命令フェッチ ID:命令デコード EX:命令実行 DF:データ転送 WB:書き込み 31:データ処理装置 32:命令レジスタ 33:リード側レジスタポインタアレイ 34:ライト側レジスタポインタアレイ 35:レジスタファイル 36:演算前型変換ユニット 37:演算ユニット 38:演算後型変換ユニット 39:レジスタバンク制御機構

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 複数のオペランドを記憶するレジスタフ
    ァイルと、 前記複数のオペランドのレジスタアドレスとデータ形式
    とを対応づけて記録するレジスタポインタアレイと、 オペレーションコードと前記レジスタポインタアレイの
    アドレスを指定して間接的に前記複数のオペランドから
    対象オペランドを指定する対象オペランド指定コードと
    を含む命令を一時記憶する命令レジスタと、 前記対象オペランド指定コードにより指定される前記デ
    ータ形式に基づいて前記対象オペランドを型変換する演
    算前型変換ユニットと、 前記演算前型変換ユニットにより型変換された前記対象
    オペランドに前記オペレーションコードに指定された演
    算を実行する演算ユニットとを具備するデータ処理装
    置。
  2. 【請求項2】請求項1において、 前記命令は、前記レジスタポインタアレイのアドレスを
    指定して間接的に前記複数のオペランドから代入オペラ
    ンドを指定する代入オペランド指定コードを更に含み、 前記演算の結果は、前記代入オペランドに代入されるデ
    ータ処理装置。
  3. 【請求項3】請求項2において、更に、 前記演算ユニットにより演算を実行された前記対象オペ
    ランドを前記代入オペランド指定コードにより指定され
    る前記データ形式に基づいて型変換する演算後型変換ユ
    ニットを具備するデータ処理装置。
  4. 【請求項4】請求項3において、 前記レジスタポインタアレイは、 前記対象オペランドのレジスタアドレスとデータ形式と
    を対応づけて記録するリード側レジスタポインタアレイ
    と、 前記代入オペランドのレジスタアドレスとデータ形式と
    を対応づけて記録するライト側レジスタポインタアレイ
    とから形成されるデータ処理装置。
  5. 【請求項5】請求項4において、 前記代入オペランド指定コードは、前記対象オペランド
    指定コードと一致しているデータ処理装置。
  6. 【請求項6】請求項5において、 前記対象オペランドのレジスタアドレスは、前記代入オ
    ペランドのレジスタアドレスと異なるデータ処理装置。
  7. 【請求項7】請求項1〜請求項6のいずれかにおいて、 前記レジスタポインタアレイは、複数部が備えられ、 前記複数部の1つを選択するレジスタバンク制御機構を
    更に具備するデータ処理装置。
  8. 【請求項8】請求項1〜請求項7のいずれかに記載され
    ているデータ処理装置を用いて前記命令を実行するデー
    タ処理方法であり、 前記対象オペランド指定コードにより指定される前記デ
    ータ形式に基づいて前記対象オペランドを型変換するス
    テップと、 前記演算前型変換ユニットにより型変換された前記対象
    オペランドに前記オペレーションコードに指定された演
    算を実行するステップとを具備し、 前記型変換するステップと前記演算を実行するステップ
    とは、1クロックで実行されるデータ処理方法。
JP2001234279A 2001-08-01 2001-08-01 データ処理装置及びデータ処理方法 Withdrawn JP2003044273A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2001234279A JP2003044273A (ja) 2001-08-01 2001-08-01 データ処理装置及びデータ処理方法
US10/206,058 US6687808B2 (en) 2001-08-01 2002-07-29 Data processor using indirect register addressing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001234279A JP2003044273A (ja) 2001-08-01 2001-08-01 データ処理装置及びデータ処理方法

Publications (1)

Publication Number Publication Date
JP2003044273A true JP2003044273A (ja) 2003-02-14

Family

ID=19065915

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001234279A Withdrawn JP2003044273A (ja) 2001-08-01 2001-08-01 データ処理装置及びデータ処理方法

Country Status (2)

Country Link
US (1) US6687808B2 (ja)
JP (1) JP2003044273A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008535065A (ja) * 2005-03-24 2008-08-28 クゥアルコム・インコーポレイテッド 間接レジスタ読み取り及び書込み動作

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005010748A1 (en) * 2003-07-30 2005-02-03 Koninklijke Philips Electronics, N.V. Memory organization allowing single cycle pointer addressing where the address of the pointer is also contained in one of the memory locations
US7325124B2 (en) * 2004-04-21 2008-01-29 International Business Machines Corporation System and method of execution of register pointer instructions ahead of instruction issue
US7124259B2 (en) * 2004-05-03 2006-10-17 Sony Computer Entertainment Inc. Methods and apparatus for indexed register access
CN101593095B (zh) 2008-05-28 2013-03-13 国际商业机器公司 基于流水级的数据处理方法和系统
US20110320775A1 (en) * 2010-06-27 2011-12-29 Edson Borin Accelerating execution of compressed code
CN102779023A (zh) * 2011-05-12 2012-11-14 中兴通讯股份有限公司 一种处理器的环回结构及数据环回处理方法
US9465613B2 (en) * 2011-12-19 2016-10-11 International Business Machines Corporation Instruction predication using unused datapath facilities
US11061575B2 (en) 2017-09-19 2021-07-13 International Business Machines Corporation Read-only table of contents register
US10884929B2 (en) 2017-09-19 2021-01-05 International Business Machines Corporation Set table of contents (TOC) register instruction
US10896030B2 (en) 2017-09-19 2021-01-19 International Business Machines Corporation Code generation relating to providing table of contents pointer values
US10705973B2 (en) 2017-09-19 2020-07-07 International Business Machines Corporation Initializing a data structure for use in predicting table of contents pointer values
US10620955B2 (en) 2017-09-19 2020-04-14 International Business Machines Corporation Predicting a table of contents pointer value responsive to branching to a subroutine
US10725918B2 (en) 2017-09-19 2020-07-28 International Business Machines Corporation Table of contents cache entry having a pointer for a range of addresses
US10929132B1 (en) * 2019-09-23 2021-02-23 Intel Corporation Systems and methods for ISA support for indirect loads and stores for efficiently accessing compressed lists in graph applications
CN114338021B (zh) * 2022-03-15 2022-07-19 阿里云计算有限公司 一种密文混合运算方法及装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5840668A (ja) 1981-09-04 1983-03-09 Hitachi Ltd レジスタ選択方式
US5890222A (en) * 1995-01-04 1999-03-30 International Business Machines Corporation Method and system for addressing registers in a data processing unit in an indirect addressing mode
JPH1011352A (ja) * 1996-06-19 1998-01-16 Hitachi Ltd データ処理装置およびそのレジスタアドレス変換方法
US6098160A (en) * 1997-10-28 2000-08-01 Microchip Technology Incorporated Data pointer for outputting indirect addressing mode addresses within a single cycle and method therefor

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008535065A (ja) * 2005-03-24 2008-08-28 クゥアルコム・インコーポレイテッド 間接レジスタ読み取り及び書込み動作

Also Published As

Publication number Publication date
US20030028754A1 (en) 2003-02-06
US6687808B2 (en) 2004-02-03

Similar Documents

Publication Publication Date Title
US7664934B2 (en) Data processor decoding instruction formats using operand data
US6405302B1 (en) Microcomputer
JP4485198B2 (ja) Javaアクセラレータを備えたプロセッサシステム
JP2003044273A (ja) データ処理装置及びデータ処理方法
US7546442B1 (en) Fixed length memory to memory arithmetic and architecture for direct memory access using fixed length instructions
US8972701B2 (en) Setting zero bits in architectural register for storing destination operand of smaller size based on corresponding zero flag attached to renamed physical register
EP1143333B1 (en) Microprocessor for supporting reduction of program codes in size
US6542989B2 (en) Single instruction having op code and stack control field
JPH0673105B2 (ja) 命令パイプライン方式のマイクロプロセッサ
EP1220091B1 (en) Circuit and method for instruction compression and dispersal in VLIW processors
US7340591B1 (en) Providing parallel operand functions using register file and extra path storage
JPH03233630A (ja) 情報処理装置
JP2002229778A (ja) 高速ディスプレースメント付きpc相対分岐方式
US6925548B2 (en) Data processor assigning the same operation code to multiple operations
JPH08212075A (ja) 情報処理装置
JPH0683615A (ja) 命令セットエミュレーションを行う計算機
JPH1165840A (ja) 演算処理装置およびその方法
JPS623332A (ja) 情報処理装置
JP3901670B2 (ja) データ処理装置
JP2000112754A (ja) データ処理装置
JPS62150435A (ja) デ−タ処理方式
JP3199603B2 (ja) コードサイズ縮小化マイクロプロセッサ
JP2004005738A5 (ja)
JP3474347B2 (ja) マイクロコンピュータの命令解読部
JPH11143710A (ja) 処理対象値入力装置及びプログラム変換装置

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20081007