JPH01307829A - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JPH01307829A
JPH01307829A JP63139864A JP13986488A JPH01307829A JP H01307829 A JPH01307829 A JP H01307829A JP 63139864 A JP63139864 A JP 63139864A JP 13986488 A JP13986488 A JP 13986488A JP H01307829 A JPH01307829 A JP H01307829A
Authority
JP
Japan
Prior art keywords
register
branch
operand
instruction
data
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
Application number
JP63139864A
Other languages
English (en)
Inventor
Noriaki Sakai
則彰 境
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 JP63139864A priority Critical patent/JPH01307829A/ja
Publication of JPH01307829A publication Critical patent/JPH01307829A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/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

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)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は情報処理装置に関し、特に演算結果またはオペ
ランドのロードに応答して内容が変化するコンディショ
ンレジスタを備えて、引数のデータタイプを示すタグを
データ自身あるいはデータを示すポインタに付加し、そ
の付加されたタグフィールドの値に応じて処理ルーチン
を定める情報処理装置に関する。
〔従来の技術〕
従来、この種の情報処理装置では、オペランドの、予め
定められたフィールドの値を比較命令で比較してその結
果で分岐するようなソフトウェア処理を行なっていた。
また、定められたフィールドの値により直接分岐するよ
うな専用命令を備えるものく情報処理学会研究報告CA
 63−5 )、さらに、同様にフィールドの値により
マイクロ命令レベルで分岐するもの(情報処即学会第3
4回全国大会6P−5)がある。
〔発明が解決しようとする課題〕
ソフトウェアの分野において汎関数という考え方がある
。従来の関数処理は、オペランドのデータタイプに依っ
て使用する関数が異なっていた。
例えばFORTRANでは引数のデータタイプが整数、
浮動小数点数、良精度浮動小数点数の3種類とすると、
それに対応してABS関数でもIΔBS。
ABS、DABSというように関数名が異なっていた。
すなわち、関数処理の入口番地も異なっていてそのデー
タタイプ専用の処理を行なえば十分であった。この汎関
数の考え方は、引数のデータタイプが何であっても同じ
関数が使用できるということであり、汎関数の処理ルー
チンでは引数として渡されたデータのタイプを判定して
処理を分けなければならず、そのような引数にはデータ
タイプを判定するための情報が付加されている。このデ
ータタイプ情報を付加する方法にはいくつか存在するが
、その1つにデータ自身か、またはデータを指すポイン
タにタグというデータタイプを付加する方法がある。こ
のタグを付加する方法は、L I S Pの処理系では
良く使用され、第3図(a)に示すように、関数処理の
最初に付加された引数のタグを判定して引数のデータタ
イプ(第3図(b))に応じた処理ルーチンに分岐する
といった処理が必要になる。従来の情報処理装置におい
ては、ソフトウェアでこの処理をおこなっているが、タ
グ部以外のマスク処理、比較処理、分岐処理が何度も出
現して命令数も増加し効率がわるかった。情報処理学会
研究報告CA 63、−5に示された情報処理装置は、
タグをインデックスとして分岐する命令を備えてデータ
タイプの切分けには対応しているが、各処理ルーチンへ
分岐する際、さらにもう−度分岐命令が必要となる。こ
のように分岐命令の処理が連続することになり、特にパ
イプライン処理方式を採用した情報処理装置においては
分岐命令処理のオーバーヘッドが大きくスルーブツトが
低下する。情報処理学会筒34口金国大会6P−5に示
された情報処理装置ではマイクロ命令レベルで分岐する
ため分岐命令処理のオーバーヘッドはないが、組込み関
数以外のユーザ一定義関数はマイクロ命令では処理でき
ないという欠点がある。
〔課題を解決するための手段〕
本発明の情報処理装置は、 コンディションレジスタに演算結果またはロードされる
オペランドの予め定められたタグフィールドの内容が格
納され、 コンディションレジスタへ格納されたデータに応じて分
岐方向を定める分岐判定手段とを有している。
〔作用〕
演算結果またはロードされたオペランドの予め定められ
たタグフィールドの内容をコンディションレジスタに格
納し、そのデータに基づいて処理ルーチンを定めるので
、従来行なっていた、処理ルーチンへの分岐の際の、引
数に付加されているタグ部以外の情報のマスク処理、比
較処理、分岐処理が不要になる。
〔実施例〕
次に、本発明の実施例について図面を参照して説明する
第1図は本発明の情報処理装置一実施例の要部構成を示
すブロック図、第2図は汎関数のプログラムの一例を示
す図である。
本実施例の情報処理装置は、命令制m装置1と記憶制御
装置2と演算器@3とを備えており、引数には、従来と
同様第3図に示すように、タグすなわちデータタイプ情
報が付加されている。
命令制御装@1は、命令を記憶制御袋@2より読出して
解読し、必要ならばアドレス計算により論理アドレスを
求めて操作コード、オペランド、操作情報等を演算装置
3に転送する。演算装置3は、命令制御装@1から転送
された情報により演算を行ない各種レジスタやステータ
ス、または、記憶制御装置2を通して不図示の主記憶装
置の更新を行なう。演算装置3は、演算器37とコンデ
ィションレジスタ39と分岐判定回路42とを含んでい
る。演算器37は、演算またはオペランドのロードに際
して、演算結果またはロードされるオペランドの上位2
ビツトを他のキャリー出力等とともにコンディションレ
ジスタ39へ格納する。分岐判定回路42は、命令制御
装置1のデコード情報キュー19からデコード情報レジ
スタ31、レジスタ40.41を介して入力されるデコ
ード情報とコンディションレジスタ39が記憶している
データとを基にして分岐ルーチンを決定する。
次に、本実施例の動作について説明する。
命令制御装置1において、命令レジスタ11のビットフ
ィールドにより汎用レジスタファイル13からデータを
読出す。この時、命令レジスタ11の内容がRXタイプ
の命令であれば、オペランドの実行アドレスの生成のた
め汎用レジスタファイル13からインデックス値および
ベース値が読出される。このインデックス値とベース値
は、命令で直接指定されるディスプレイスメント値とと
もに、それぞれインデックスレジスタ15、ベースレジ
スタ16、ディスプレイスメントレジスタ14に設定さ
机る。そして、これら3つの値をもとにしてアドレス加
算器17がオペランドアドレスを生成し、記憶制御装置
2へ転送する。このオペランドアドレスは、レジスタ2
1を介してアドレス変換部22へ送られてアドレス変換
機構221によりアドレス変換される。さらに、アドレ
スアレイ222から読出されるディレクトリ情報ととも
に、レジスタ23を介してデータアレイ24へ送られて
データアレイ24の読出しアドレスとなってデータアレ
イ24からオペランドが読出され、そのオペランドは演
II装置3に転送される。一方、RXタイプ命令の第1
オペランドと、RRタイプ命令の場合の第1、第2オペ
ランドが格納されているレジスタのレジスタ番号は、命
令制御袋@1のレジスタ18とデコード情報キュー19
を経て、演算装置3へ転送される。オペランドおよびレ
ジスタ番号を受けた演算装置3は、演算に先立って、命
令制御装置1から送られたレジスタ番号をもとに、汎用
レジスタファイル32からオペランドを読出す。読出さ
れたオペランドのうち一方は第1オペランドとして演算
レジスタ35に格納され、もう一方のオペランドは記憶
制御装置2から直接、またデータバッファ34を介して
転送されたオペランドとともにセレクタ33へ入力され
た選択され、第2オペランドとして演算レジスタ36に
格納される。演算レジスタ35゜36に格納されたオペ
ランドは演算器37により所望の演算が行なわれ、その
演算結果が結果レジスタ38を経て汎用レジスタ13.
32に格納される。さらに、この演算結果はコンディシ
ョンレジスタ3つへも反映される。また、命令がロード
命令であれば、オペランドは記憶制御装置2から読出さ
れ、そのオペランドは′e4算器37、結果レジスタ3
8を経て、同様に汎用レジスタ13.32に格納され、
コンディションレジスタ39も変化する。この時、演算
器37の出力の上位2ビツトが他のキャリー出力等とと
もにコンディションレジスタ39に格納され、デコード
情報レジスタ31からレジスタ40.41を経て送られ
るデコード情報とともに分岐判定回路42へ送られて、
そこでそれらの情報をもとに分岐方向の判定が行なわれ
る。
なお、演算器37の出力の上位2ビツトは前述したよう
にタグの一部を示しているため、この2ビツトのデータ
により分岐方向を定めるということは、従来と同様にタ
グに応じた処理ルーチンへ分岐することになる。
次に、第2図に示すプログラムを参照して、分岐方向の
判定処理を説明する。
$ADD1番地は汎関数の入口アドレスであり、ロード
命令により’ ARGUHENT”で指定される引数を
ROにロードする。このとき引数の上位2ビツトがコン
ディションレジスタ39に格納される。
次のBRAO命令はコンディションレジスタ39の2ビ
ツトの値が“00”のとき分岐する分岐命令である。2
ビツトの値が“00”であれば引数が整数であると判断
して整数処理ルーチン($INTEGER)に分岐する
。同様に、BRA1命令はコンディションレジスタ39
の2ビツト値が“01”のとき分岐する分岐命令で、2
ビツトの値がパ01”であれば引数が浮動小数点数であ
ると判断して浮動小数点数処理ルーチン($ FLOA
T )に分岐する。BRA2命令も同様に、2ビツトの
値が10″のとき$ DELOATに分岐する。したが
って、引数をレジスタにロードした後すぐに分岐命令で
各データタイプごとの処理ルーチンに分岐できることに
なる。
なお、本実施例では演算器37の出力のうち上位2ビツ
トをコンディションレジスタ3つへ格納したが、コンデ
ィションレジスタ39に格納されるフィールドはどのビ
ット位置から何ビットでも良いし長さも2ビツトに限ら
ない。さらに、そのビット長に応じて分岐ルーチンを増
設することもできる。
〔発明の効果〕
以上説明したように本発明は、演算結果またはロードさ
れるオペランドの予め定められたタグフィールドをコン
ディションレジスタに格納し、その結果に基づいて分岐
ルーチンを定めることにより、演算終了後またはオペラ
ンドのロード後、そのデータタイプに応じた処理ルーチ
ンへ分岐することができ、特に、LISP等のように汎
関数の出現頻度の高いプログラムにおいては引数処理の
オーバーヘッドを低減するという効果がある。
【図面の簡単な説明】
第1図は本発明の情報処理装置の一実施例の要部構成を
示すブロック図、第2図は汎関数のプロダラムの一例を
示す図、第3図はタグによるデータタイプの指定の一例
を示す図である。 1・・・命令制御装置、  2・・・記憶制御装置、3
・・・演算装置、    11・・・命令レジスタ、1
2・・・デコーダ、 13.32・・・汎用レジスタファイル、14・・・デ
ィスプレイスメントレジスタ、15・・・インデックス
レジスタ、 16・・・ペースレジスタ、17・・・アドレス加算器
、18.21.23,40.41・・・レジスタ、19
・・・デコード情報キュー、 22・・・アドレス変換部、24・・・データアレイ、
31・・・デコード情報レジスタ、 33・・・セレクタ、   34・・・データバッファ
、35.36・・・演算レジスタ、 37・・・演算器、    38・・・結果レジスタ、
39・・・コンディションレジスタ、 42・・・分岐判定回路。 $ADD1  :  LD   RO,ARGIJME
NTBRAO$ t NTEGER BRAI   $ FLOAT BRA 2   $ DFLOAT 第2図 10−DFLOAT

Claims (1)

  1. 【特許請求の範囲】 1、演算結果またはオペランドのロードに応答して内容
    が変化するコンディションレジスタを備えて、引数のデ
    ータタイプを示すタグをデータ自身あるいはデータを示
    すポインタに付加し、その付加されたタグフィールドの
    値に応じて処理ルーチンを定める情報処理装置において
    、 前記コンディションレジスタに演算結果またはロードさ
    れるオペランドの予め定められたタグフィールドの内容
    が格納され、 該コンディションレジスタに格納されたタグの内容に応
    じて分岐方向を定める分岐判定手段とを有することを特
    徴とする情報処理装置。
JP63139864A 1988-06-06 1988-06-06 情報処理装置 Pending JPH01307829A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63139864A JPH01307829A (ja) 1988-06-06 1988-06-06 情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63139864A JPH01307829A (ja) 1988-06-06 1988-06-06 情報処理装置

Publications (1)

Publication Number Publication Date
JPH01307829A true JPH01307829A (ja) 1989-12-12

Family

ID=15255324

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63139864A Pending JPH01307829A (ja) 1988-06-06 1988-06-06 情報処理装置

Country Status (1)

Country Link
JP (1) JPH01307829A (ja)

Similar Documents

Publication Publication Date Title
US5075840A (en) Tightly coupled multiprocessor instruction synchronization
US5812868A (en) Method and apparatus for selecting a register file in a data processing system
US4755966A (en) Bidirectional branch prediction and optimization
JP3983857B2 (ja) ベクトルレジスタの複数バンクを用いた単一命令複数データ処理
US6233670B1 (en) Superscalar processor with direct result bypass between execution units having comparators in execution units for comparing operand and result addresses and activating result bypassing
US4745547A (en) Vector processing
US4679140A (en) Data processor with control of the significant bit lengths of general purpose registers
US20010021970A1 (en) Data processor
EP0211152A2 (en) Program switching with vector registers
JPS6313215B2 (ja)
US4954947A (en) Instruction processor for processing branch instruction at high speed
EP0378415A2 (en) Multiple instruction dispatch mechanism
US6026486A (en) General purpose processor having a variable bitwidth
JPH09152973A (ja) カウント/リンク・レジスタ変更命令の投機実行をサポートする方法及び装置
US11481223B2 (en) Reducing operations of sum-of-multiply-accumulate (SOMAC) instructions
US5390306A (en) Pipeline processing system and microprocessor using the system
KR100974401B1 (ko) 주소 레지스터의 내용을 스와핑하기 위한 방법 및 장치
JPH0461390B2 (ja)
US6904515B1 (en) Multi-instruction set flag preservation apparatus and method
JPH01307829A (ja) 情報処理装置
JPH01307831A (ja) 情報処理装置
JPS6314239A (ja) 計算機システムの命令作成ユニット
JPH01307830A (ja) 情報処理装置
JPS63111535A (ja) デ−タ処理装置
JPH07110769A (ja) Vliw型計算機