JP2000200196A - 拡張命令語を有する中央処理装置 - Google Patents

拡張命令語を有する中央処理装置

Info

Publication number
JP2000200196A
JP2000200196A JP11326311A JP32631199A JP2000200196A JP 2000200196 A JP2000200196 A JP 2000200196A JP 11326311 A JP11326311 A JP 11326311A JP 32631199 A JP32631199 A JP 32631199A JP 2000200196 A JP2000200196 A JP 2000200196A
Authority
JP
Japan
Prior art keywords
extension
register
operand
instruction word
field
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
JP11326311A
Other languages
English (en)
Inventor
Kyung Youn Cho
環 衍 趙
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.)
Asia Design Co Ltd
Original Assignee
Asia Design Co Ltd
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 Asia Design Co Ltd filed Critical Asia Design Co Ltd
Publication of JP2000200196A publication Critical patent/JP2000200196A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • 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/30105Register structure
    • G06F9/30112Register structure comprising data of variable length
    • 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/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
    • 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/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants

Abstract

(57)【要約】 【課題】メモリアドレス、オフセット、即値が可変な固
定長命令語。 【解決手段】PC(Program Counter)、SP(User/Super
visor Stack Pointer)、LR(Link Register)、MCUの
乗算及除算の演算結果を臨時的に貯蔵するML/MH(Multi
ply Result Low/High Register)、アドレス発生部、
演算処理部及び命令語レジスタを有する。拡張レジスタ
をさらに含み、拡張レジスタに拡張データを記憶する動
作を表すOPコードと即値オペランドフィールドとから
構成された命令語をデコーダ/コントロール部で解析
し、即値オペランドフィールドを記憶させる動作を遂行
する。OPコードとOPコードが必要とするオペランド
フィールドの一部分とから構成される基本命令語の一部
分オペランドフィールドと、拡張データとを連結して完
全なオペランドを有する命令語を構成し、解析、実行す
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はメモリアドレス、オ
フセット、及び即値データ(immediate data)を可変す
る固定長命令語を有する中央処理装置に関するものであ
る。
【0002】
【従来の技術】従来技術による中央処理装置は、図10
に示すように、使用者が容易に接近することができる領
域にアーキテクチャに合わせて構成されたGPR(Gene
ral Purpose Register)及び特殊な目的で使用されるS
PR(Special Purpose Register)から構成されたレジ
スタファイル7と、メモリからフェッチされた命令語を
ラッチする命令語レジスタ4と、前記命令語レジスタ4
にラッチされた命令語をOPコードとオペランドでデコ
ーディングして命令語に従って所定の制御信号を出力す
るデコーダ/コントロール部5と、前記デコーダ/コン
トロール部5でデコーディングされた命令語の演算を処
理する演算処理部6と、メモリにデータを書込む時やメ
モリからデータを読み出す時にラッチしてバッファリン
グするメモリデータレジスタ(MDR)1と、プログラ
ムカウンタで計算されたアドレスをラッチして出力する
メモリアドレスレジスタ(MAR)2と、外部から入力
されるコントロールシグナルをバッファリングするコン
トロールシグナルレジスタ(USR)3とからなってい
る。
【0003】上記のような構成を有する中央処理装置の
命令語は機械語(machine language)とも称するが、2
進数ビットの羅列で表現されて作用を表すOPコードと
その作用を受ける客体であるオペランドとから構成され
る。ADD命令語としてOPコードとオペランドの例を
挙げる。‘A=B+C’は‘B’と‘C’を合わせて
‘A’に貯蔵するようにとの意味で、ここで‘+’は作
用を表すOPコードで、‘A’、‘B’、そして‘C’
は作用を受ける客体であるのでオペランドになる。この
表現式を例えば機械語として表現すると‘0001 0
000 0001 0010’と示すことができるが、順
に‘0001’はOPコード、即ち‘+’を記号化した
もので、‘0000’、‘0001’、そして‘001
0’はそれぞれ、オペランドであるA、B、そしてCを
記号化したものである。かかる2進数の表現は長くて読
み難いため、より簡単な16進数に表現することもあ
る。そこで、上記のような例の16進数表現は‘0×1
012’になる。機械語においてオペランドはレジス
タ、メモリアドレス、オフセット、そして即値データ等
がある。
【0004】レジスタはその数が限られており32個以
下である場合が多い。例えばレジスタの数が16個とす
れば4ビットのオペランドでこれを表現することができ
る(2**4=16)。メモリアドレスである場合32
ビットの中央処理装置は4Gバイトのメモリを使用する
ことができるが、これを表現するためには32ビットの
アドレスが必要となる。従って、これを定義するオペラ
ンドの長さが長くなる。そして、オフセットと即値デー
タの場合もメモリの場合と類似してオペランドの長さが
長くなる。オペランドの長さが長くなると機械語の長さ
が長くなり、機械語の長さが長くなるとプログラムの大
きさが増加することとなり、効率が悪くなる。
【0005】このような理由でそれぞれの中央処理装置
はオペランドを効率良く表現する技法を有するようにな
る。IBM−PCで使用する80386は多様なバイト
長の命令語を有する。例えば、80386の‘MOV
E’命令の機械語はオペランドの長さに基づいて次のよ
うに定義される。
【0006】 MOV AL、 12 → B012 MOV AX、 1234 → B8 34 12 MOV EAX、12345678 → 66B8 78 56 34 12 また、MC6800も80386と類似して多様な16
ビット長の命令語(Multi 16bit length instructio
n)を有する。
【0007】このように可変長命令語は、如何なる長さ
のオペランドも表すことができるという長所を有してい
るが、機械語の長さが変化するので命令語のデコーダ処
理、例外処理等が難しくなるという短所を有するように
なる。かかる可変長命令語を有する中央処理装置を、C
ISC(Complex Instruction Set Computer)と称す
る。
【0008】一方、RISC(Reduced Instruction Se
t Computer)においては、機械語の長さが固定されてい
る。この例として、MIPS−R3000、SPAR
C、ARM−7等は32ビットの固定長命令語を有し、
Hitachiの SH−3は16ビットの固定長命令
語を有する。かかる固定長命令語は全て長さが一定なの
で、命令語デコード、例外処理等が容易である。従っ
て、パイプラインを適用しやすく、簡単なハードウェア
で高性能の中央処理装置を実現することができるが、一
方で命令語の長さが固定されてオペランドの長さに制約
がある。
【0009】例えば、MIPS−R3000においては
32ビット容量のメモリを有するが、機械語で表現する
ことができるオフセットは16ビットである。また、3
2ビットの中央処理装置であるが即値の長さも16ビッ
トに限定される。このため、プログラムの作成が難し
く、従って性能を低下させる要因となっている。また、
‘MOVE’の命令はレジスタの内容を他のレジスタへ
複写するという内容であるが、MIPS−R3000は
32個のレジスタを有するので、レジスタオペランドは
5ビットの長さとなり、‘MOVE’を表すOPコード
を6ビットに定義すると16ビット長さ命令語に定義す
ることができる。しかし、固定長命令語を使用するため
には、このように16ビットで表現可能な命令語を32
ビットに表現している。従って、32ビット固定長命令
語はオペランドの長さが制限される短所を有し、また不
必要に長い命令語を有するようになる短所がある。
【0010】他の例としてTR−4101を説明する。
TR−4101は16ビット固定長命令語を有し、この
ような固定長命令語とオペランドを一部拡張する機能を
有する。例えば、メモリからデータを読んでくる‘LO
AD’の命令語は、‘LOAD’を表すOPコードと、
読んできて貯蔵されるレジスタを表す目的レジスタと、
オペランドとメモリの位置を表すインデックスレジスタ
と、オペランドとインデックスからのオフセットを示す
オフセットオペランドとから構成される。これらOPコ
ードと多様なオペランドとを16ビット長さの命令語で
表現するために、TR−4101ではオフセットを5ビ
ットに制限した。しかし、5ビットのオフセットではメ
モリの位置を指定するには十分でない。そこで、TR−
4101では‘EXTEND’の命令語を使用する。
【0011】前記‘EXTEND’の命令語は5ビット
のOPコードと11ビットの即値オペランドとから構成
される。ここで、11ビットの即値オペランドは‘EX
TEND’の命令語の後に位置する命令語に応じて相異
に解析される。例えば、‘EXTEND’の命令語の後
に‘LOAD’が示されると‘EXTEND’の命令語
の11ビット即値オペランドと‘LOAD’の命令語の
5ビットオフセットが連係されて16ビットオフセット
を表す。
【0012】
【発明が解決しようとする課題】かかるTR―4101
の命令語拡張技術はオフセットと即値を16ビットに拡
張するに過ぎないので、従来のRISC中央処理装置が
有していたオペランド長さの制約は解決されていない。
また、オペランド拡張が可能な命令語は先行する‘EX
TEND’の命令語の有無によってオペランドの指定が
変わるようになる。従って、‘EXTEND’の命令語
が連係される命令語は1つの命令語として取り扱われ
る。即ち、‘EXTEND’の命令語の後には例外処理
が遂行されることができないという短所を有し、周辺装
置の応答要求を実時間で処理できないという問題点があ
る。
【0013】従って、本発明は上記のような諸般問題点
を解消するために案出されたもので、本発明の目的は、
命令語のオペランドの長さに制約を受けることがないこ
とで全ての長さのメモリアドレス、オフセット及び即値
データを表現し、固定長命令語を使用して命令語デコー
ダ回路を簡単化すると共に例外処理が容易になりパイプ
ライン及びメモリ管理装置(Memory Management Unit:
MMU)が簡単な拡張命令語を有する中央処理装置を提
供することにある。
【0014】また、本発明の他の目的は、拡張命令語の
後に例外状況が発生するとしても即値例外処理プロシー
ジャーを遂行した後、処理が中断された拡張命令語の次
のルーチンに復帰することができる拡張命令語を有する
中央処理装置を提供することにある。
【0015】
【課題を解決するための手段】即ち、本発明はCISC
とRISCの長所を取り、すべての長さのメモリアドレ
ス、オフセット及び即値データを表現することができる
固定長命令語を有する中央処理装置から構成される拡張
命令語セットコンピュータ(Extendable Instruction S
et Computer:EISC)に関するものである。
【0016】本願第1発明は、接近速度の速い小規模記
憶装置であるレジスタの集合であるレジスタファイル
と、レジスタファイルと接続されて情報を送受信する通
路である内部バスと、内部バスに連結されており外部バ
スを連結する外部バスバッファと、内部バスに連結され
ており演算機能を遂行する機能ブロックと、内部バスに
連結されており遂行中の命令語を記憶する命令レジスタ
と、命令レジスタに連結されており命令語を解析してレ
ジスタファイルと内部バスと外部バスバッファと機能ブ
ロックと命令レジスタとに制御信号を発生するデコーダ
/コントロール部とから構成され、レジスタファイル
は、ユーザプログラムがアクセス可能で演算原始データ
や演算結果データを貯蔵し、かつ演算データを記憶して
いるメモリのアドレスを記憶する汎用レジスタと、ユー
ザプログラムがアクセス可能で中央処理装置の動作に必
要な情報を記憶する特殊レジスタと、ユーザプログラム
がアクセス不可能で中央処理装置の動作に必要な特殊な
機能や演算の中間過程を記憶する内部レジスタとから構
成されており、特殊レジスタの一種であり進行している
プログラムが貯蔵されているメモリアドレスを記憶する
プログラムカウンタを有し、プログラムカウンタが指定
するプログラムアドレスが内部バスに出力され、内部バ
スに出力されたプログラムアドレスが外部バスバッファ
を介してプログラムを記憶している外部メモリのアドレ
スに出力され、方法により指定された外部メモリから命
令語が読み出されて外部バスバッファを介して内部バス
に連結され、命令語が命令レジスタに貯蔵されてデコー
ダ/コントロール部で制御信号を発生し、命令レジスタ
に貯蔵されてデコーダ/コントロール部で解析される命
令語は、動作を指定するOPコードフィールドのみで構
成されるかまたは、OPコードフィールドと動作の作用
を受けるオペランドフィールドとから構成され、OPコ
ードフィールドとオペランドフィールドとは2進数ビッ
トから構成され、オペランドフィールドは命令語の種類
に応じ、メモリアドレスを表すアドレスオペランド、汎
用レジスタまたは特殊レジスタに記憶されたメモリアド
レスからのオフセットを表すオフセットオペランド及び
/または演算、メモリアドレスまたは制御に使用される
ための即値を表す即値オペランドを解析して実行する通
常の中央処理装置において、特殊レジスタの一種でユー
ザプログラムがアクセス可能な拡張レジスタをさらに含
み、拡張レジスタに拡張データを記憶する動作を表すO
Pコードと即値オペランドフィールドとから構成された
命令語を、デコーダ/コントロール部で解析して即値オ
ペランドフィールドを記憶させる動作を遂行し、OPコ
ードとOPコードが必要とするオペランドフィールドの
一部分とから構成される基本命令語の一部分オペランド
フィールドは、拡張レジスタに記憶された拡張データと
連結されて完全なオペランドを有する命令語を構成し、
デコーダ/コントロール部で解析されて実行されること
を特徴とする拡張命令語を有する中央処理装置を提供す
る。
【0017】本願第2発明は、前記第1発明において、
拡張レジスタの長さは汎用レジスタの長さと同一である
か、または短いことを特徴とする拡張命令語を有する中
央処理装置を提供する。本願第3発明は、前記第2発明
において、拡張レジスタに拡張データを記憶する命令語
を遂行すると状態が変更され、かつユーザプログラムが
アクセス可能なビットから構成される拡張フラグをさら
に含むことを特徴とする拡張命令語を有する中央処理装
置を提供する。
【0018】本願第4発明は、前記第3発明において、
拡張レジスタに記憶された拡張データを連結してオペラ
ンドフィールドを形成する基本命令語が遂行されると、
拡張フラグの状態を変更することを特徴とする拡張命令
語を有する中央処理装置を提供する。本願第5発明は、
前記第4発明において、拡張フラグの状態に応じ、基本
命令語が有する一部分オペランドを正の整数または2の
補数と見て拡張してオペランドを形成するか、拡張レジ
スタに記憶された拡張データと一部分オペランドとを連
結してオペランドを形成することを特徴とする拡張命令
語を有する中央処理装置を提供する。
【0019】本願第6発明は、前記第2発明において、
拡張レジスタに記憶された拡張データを連結してオペラ
ンドフィールドを形成する基本命令語が遂行されると拡
張レジスタに一定のデータを記憶させることを特徴とす
る拡張命令語を有する中央処理装置を提供する。本願第
7発明は、前記第6発明において、拡張レジスタに記憶
された拡張データの値に基づいて、基本命令語が有する
一部分オペランドを正の整数または2の補数と見て拡張
してオペランドを形成するか、拡張レジスタに記憶され
た拡張データと一部分オペランドとを連結してオペラン
ドを形成することを特徴とする拡張命令語を有する中央
処理装置を提供する。
【0020】本願第8発明は、前記第4発明において、
拡張レジスタに拡張データを記憶する命令語の即値オペ
ランドフィールドの長さが拡張レジスタの長さより小さ
く、拡張レジスタに拡張データを記憶する命令語は、拡
張フラグの状態に応じ、即値オペランドを正の整数また
は2の補数と見て拡張レジスタの長さだけ拡張して拡張
レジスタに貯蔵するか、拡張レジスタに記憶された拡張
データを即値オペランドの長さだけ左側に移動させて即
値オペランドを連結して拡張データを形成し、拡張レジ
スタに貯蔵する機能を有することを特徴とする拡張命令
語を有する中央処理装置を提供する。
【0021】本願第9発明は、前記第8発明において、
拡張フラグの状態に応じ、基本命令語が有する一部分オ
ペランドを正の整数または2の補数と見て拡張してオペ
ランドを形成するか、拡張レジスタに記憶された拡張デ
ータと一部分オペランドとを連結してオペランドを形成
することを特徴とする拡張命令語を有する中央処理装置
を提供する。
【0022】本願第10発明は、前記第6発明におい
て、拡張レジスタに拡張データを記憶する命令語の即値
オペランドフィールドの長さが拡張レジスタの長さより
小さく、拡張レジスタに拡張データを記憶する命令語
は、拡張レジスタに貯蔵されている拡張データに基づい
て、即値オペランドを正の整数または2の補数と見て拡
張レジスタの長さだけ拡張して拡張レジスタに貯蔵する
か、拡張レジスタに記憶された拡張データを即値オペラ
ンドの長さだけ左側に移動させて即値オペランドを連結
して拡張データを形成し、拡張レジスタに貯蔵する機能
を有することを特徴とする拡張命令語を有する中央処理
装置を提供する。
【0023】本願第11発明は、接近速度の速い小規模
記憶装置であるレジスタの集合であるレジスタファイル
と、レジスタファイルと接続されて情報を送受信する通
路である内部バスと、内部バスに連結されており外部バ
スを連結する外部バスバッファと、内部バスに連結され
ており演算機能を遂行する機能ブロックと、内部バスに
連結されており遂行中の命令語を記憶する命令レジスタ
と、命令レジスタに連結されており命令語を解析してレ
ジスタファイルと内部バスと外部バスバッファと機能ブ
ロックと命令レジスタとに制御信号を発生するデコーダ
/コントロール部とから構成され、レジスタファイル
は、ユーザプログラムがアクセス可能で演算原始デー
タ,演算結果データまたは演算データが記憶されている
メモリアドレスを記憶する汎用レジスタと、ユーザプロ
クラムがアクセス可能で中央処理装置の動作に必要な情
報を記憶する特殊レジスタと、ユーザプログラムがアク
セス不可能で中央処理装置の動作に必要な特殊な機能や
演算の中間過程を記憶する内部レジスタとから構成され
ており、特殊レジスタの一種であり進行しているプログ
ラムが貯蔵されているメモリアドレスを記憶するプログ
ラムカウンタを有し、プログラムカウンタが指定するプ
ログラムアドレスが内部バスに出力され、内部バスに出
力されたプログラムアドレスが外部バスバッファを介し
てプログラムを記憶している外部メモリのアドレスに出
力され、前記方法により指定された外部メモリから命令
語が読み出されて外部バスバッファを介して内部バスに
連結され、命令語が前記命令レジスタに貯蔵されてデコ
ーダ/コントロール部で制御信号を発生し、命令レジス
タに貯蔵されてデコーダ/コントロール部で解析される
命令語は、動作を指定するOPコードフィールドのみで
構成されるかまたはOPコードフィールドと動作の作用
を受けるオペランドフィールドとから構成され、OPコ
ードフィールドとオペランドフィールドとは2進数ビッ
トから構成され、オペランドフィールドは、命令語の種
類に応じ、メモリアドレスを表すアドレスオペランド、
汎用レジスタまたは特殊レジスタに記憶されたメモリア
ドレスからのオフセットを表すオフセットオペランド及
び演算、メモリアドレスまたは制御に使用するための即
値を表す即値オペランドを解析して実行する通常の中央
処理装置において、特殊レジスタの一種でユーザプログ
ラムがアクセス可能な拡張レジスタをさらに含み、拡張
レジスタは、拡張データフィールドと中央処理装置の動
作に必要な情報や、フラグ及びその外のフィールドとか
ら構成され、拡張レジスタの拡張データフィールドに拡
張データを記憶する動作を表すOPコードと即値オペラ
ンドフィールドとから構成された命令語を、デコーダ/
コントロール部で解析し、即値オペランドフィールドを
拡張レジスタの拡張データフィールドに記憶させる動作
を遂行し、OPコードとOPコードが必要とする前ペラ
ンドフィールドの一部分とから構成される基本命令語の
一部分オペランドフィールドは、拡張レジスタの拡張デ
ータフィールドに記憶された拡張データと連結されて完
全なオペランドを有する命令語を構成し、デコーダ/コ
ントロール部で解析されて実行されることを特徴とする
拡張命令語を有する中央処理装置を提供する。
【0024】本願第12発明は、前記第11発明におい
て、拡張レジスタの拡張データフィールドに拡張データ
を記憶する命令語を遂行すると状態が変更され、ユーザ
プログラムがアクセス可能なビットから構成される拡張
フラグをさらに含むことを特徴とする拡張命令語を有す
る中央処理装置を提供する。本願第13発明は、前記第
12発明において、拡張レジスタの拡張データフィール
ドに記憶された拡張データを連結してオペランドフィー
ルドを形成する基本命令語が遂行されると、拡張フラグ
の状態を変更することを特徴とする拡張命令語を有する
中央処理装置を提供する。
【0025】本願第14発明は、前記第13発明におい
て、拡張フラグの状態に応じ、基本命令語が有する一部
分オペランドを正の整数または2の補数と見て拡張して
オペランドを形成するか、拡張レジスタの拡張データフ
ィールドに記憶された拡張データと一部分オペランドと
を連結してオペランドを形成することを特徴とする拡張
命令語を有する中央処理装置を提供する。
【0026】本願第15発明は、前記第11発明におい
て、拡張レジスタの拡張データフィールドに記憶された
拡張データを連結してオペランドフィールドを形成する
基本命令語が遂行されると、拡張レジスタの拡張データ
フィールドに一定のデータを記憶させることを特徴とす
る命令語を有する中央処理装置を提供する。本願第16
発明は、前記第15発明において、拡張レジスタの拡張
データフィールドに記憶された拡張データの値に基づい
て、基本命令語が有する一部分オペランドを正の常数や
2の補数と見て拡張してオペランドを形成するか、拡張
レジスタの拡張データフィールドに記憶された拡張デー
タと一部分オペランドとを連結してオペランドを形成す
ることを特徴とする拡張命令語を有する中央処理装置を
提供する。
【0027】本願第17発明は、前記第13発明におい
て、拡張レジスタの拡張データフィールドに拡張データ
を記憶する命令語の即値オペランドフィールドの長さが
拡張レジスタの拡張データフィールドの長さより小さ
く、拡張レジスタの拡張データフィールドに拡張データ
を記憶する命令語は、拡張フラグの状態に応じ、即値オ
ペランドを正の整数または2の補数と見て拡張データフ
ィールド長さだけ拡張してレジスタの拡張データフィー
ルドに貯蔵するか、拡張レジスタの拡張データフィール
ドに記憶された拡張データを即値オペランド長さだけ左
側に移動させて即値オペランドを連結して拡張データを
形成し、拡張レジスタの拡張データフィールドに貯蔵す
る機能を有することを特徴とする拡張命令語を有する中
央処理装置を提供する。
【0028】本願第18発明は、前記第17発明におい
て、拡張フラグの状態に応じ、基本命令語が有する一部
分オペランドを正の整数または2の補数と見て拡張して
オペランドを形成するか、拡張レジスタの拡張データフ
ィールドに記憶された拡張データと一部分オペランドと
を連結してオペランドを形成することを特徴とする拡張
命令語を有する中央処理装置を提供する。
【0029】本願第19発明は、前記第15発明におい
て、拡張レジスタの拡張データフィールドに拡張データ
を記憶する命令語の即値オペランドフィールドの長さが
拡張レジスタの拡張データフィールドの長さより小さ
く、拡張レジスタの拡張データフィールドに拡張データ
を記憶する命令語は、拡張レジスタの拡張データフィー
ルドに貯蔵されている拡張データに基づいて、即値オペ
ランドを正の整数または2の補数と見て拡張レジスタの
拡張データフィールド長さだけ拡張して拡張レジスタの
拡張データフィールドに貯蔵するか、拡張レジスタの拡
張データフィールドに記憶された拡張データを即値オペ
ランド長さだけ左側に移動させて即値オペランドを連結
して拡張データを形成し、拡張レジスタの拡張データフ
ィールドに貯蔵する機能を有することを特徴とする拡張
命令語を有する中央処理装置を提供する。
【0030】
【発明の実施の形態】上記のような特徴を有する本発明
は、従来技術と同様に、汎用レジスタ(General Purpos
e Register:GPR)と特殊目的レジスタ(Special Pu
rpose Register:SPR)を有しており、これに加えて
拡張レジスタ(Extension Register:ER)を有する。
また、本発明のEISCは従来技術と同様に、中央処理
装置の状態を表す状態フラグ(Status Flag)とこれら
の状態フラグの集合である状態レジスタ(Status Regis
ter)とを有し、これに加えて命令語拡張状態を表す拡
張フラグ(Extension Flag)を状態レジスタ内に有す
る。ERの長さは中央処理装置のワードの長さによって
変更されるが、16ビットの中央処理装置では16ビッ
ト以下、32ビットの中央処理装置では32ビット以
下、64ビットの中央処理装置では64ビット以下の長
さを有する。本発明の実施例では32ビットの中央処理
装置において32ビット長さのERを例として説明する
が、これはERの長さを制限したり中央処理装置のワー
ドの長さを制限するためのものではなく、説明を容易に
するためのものである。EF(Extension Flag)は1ビ
ット以上の長さでプログラマーが接近可能な形態でなけ
ればならない。中央処理装置が有する一部フラグとレジ
スタはプログラマーが接近することができないものがあ
る。
【0031】本発明の実施形態においてEFは状態レジ
スタの1つのビットとして説明されているが、これも説
明を容易にするためのもので、EFの実現形態を制限し
ようとする目的ではない。本発明による中央処理装置は
ERにデータを貯蔵することと同時にEFを‘1’に設
定する命令語を有するが、本発明の記述では説明の便宜
上‘LEDRI(Load ER Immediate)’という命令
語を使用する。また、32ビットの中央処理装置で16
ビットの固定長命令語を使用し、‘LDERI’の命令
語のオペランドを14ビットの即値と定義すると、 LDERI #123 という命令文はこの命令文の遂行以前にEFが‘1’で
あったとすればERを左側に14ビット長さだけ算術移
動させて、この命令文のオペランド部分である‘12
3’をERに加える作用をする。また、この命令文の遂
行以前にEFが‘0’であったとすればこの命令文のオ
ペランド部分である‘123’の記号を拡張して32ビ
ットとしてERに貯蔵する。そして上記2つの場合の全
てにおいてEFは‘1’に設定される。
【0032】前述において‘LDERI’の命令語のオ
ペランドの長さは、他の命令語の定義によって決定され
るもので、本発明ではその長さを制限しない。また、
‘LDERI’の命令語でオペランドとして即値を使用
する例を挙げたが、オペランドの種類はメモリアドレス
等他の種類のオペランドを使用することもできる。即
ち、例えばPC相対アドレッシングを有することもで
き、本発明ではERにデータを格納する一つまたは多数
個の命令語手段を有することを意味する。
【0033】本発明のEISCは従来技術が有する一般
的な命令語を有しているが、この中で可変するオペラン
ドを必要とする命令語はEF状態に応じてオペランドの
解析に差異がある。例えば16ビットの固定長命令語を
有する32ビットの中央処理装置において8ビットのオ
フセットを有する‘JMP’の命令語は次のように表現
される。
【0034】JMP offset ‘JMP’の命令語はプログラムの順序を変える命令語
で、この命令文の後には現在プログラムの位置からオフ
セットだけ離れた位置の命令文を遂行するようになる。
ところで、オフセットの長さが8ビットに割当てられて
いるのでジャンプされる位置は−128バイトから+1
27バイト以内に制限される。
【0035】本発明のEISCでは、この場合にEFの
状態に応じてオフセットは2通りに解析される。まず
‘EF’が‘0’である場合にはオフセットの長さを8
ビットに解析し、EFが‘1’である場合にはERの値
を左側に8ビット算術移動(Arithmetic shift)させた
後に命令文に表れた8ビットのオフセットを加えてオフ
セットを算出する。従って、32ビットのオフセットを
有するように命令文のオペランドが拡張される。
【0036】命令語によってERを左側に移動させる距
離は異なる。前述した例においても‘LDERI’の命
令語は14ビット、‘JMP’の命令語は8ビットを移
動させている。EFフラグは‘LDERI’の命令語に
よって‘1’となり、‘LDERI’の命令を除いてE
Rレジスタを参照するすべての命令語で‘0’となる。
しかし、実現方式によって異なる値を有することもで
き、またEFフラグは命令語の拡張状態を表す他の実現
形態を有することもできる。
【0037】他の例として、16ビットの固定長命令語
を有する64ビットの中央処理装置において‘LDER
I’のオペランドの長さが12ビットであるとき、 LDERI #opr1 : 命令語 −1 LDERI #opr2 : 命令語 −2 LDERI #opr3 : 命令語 −3 LDERI #opr4 : 命令語 −4 JMP offset : 命令語 −5 というプログラムの動作を説明する。
【0038】‘命令語 −1’の遂行以前にEFが
‘0’であると仮定すれば、‘命令語 −1’によって
ERは‘opr1’の記号を64ビットに拡張した値を
有し、EFは‘1’となる。次の‘命令語 −2’にお
いてEFが‘1’であるのでERは‘opr1’を左側
に12ビット算術移動させて‘opr2’を加えた値を
有する。この時、例外(exception)が発生すると‘命
令語 −3’を遂行せず例外処理を先に遂行しなければ
ならない。
【0039】本発明のEISCにおいては、ERとEF
はプログラマーが接近できるレジスタ及びプログラムで
あるのでこれらをスタックに貯蔵したりメモリ内のバッ
ファに貯蔵するなどの方法でその内容を保存することが
でき、例外処理が済んだ後に貯蔵されたERとEFを再
格納(reload)すると‘命令語 −3’以下を正常に遂
行することができる。また、例外処理中にさらに他の例
外が発生するとしてもERとEFを順序的に貯蔵、再格
納することによってプログラムの正常的な遂行を担保す
ることができる。このプログラムにおいて‘命令語 −
5’のオフセットの長さは‘命令語 −1’から‘命令
語 −4’までのオペランドが合わせられて48ビット
となり、ここに‘命令語 −5’が有する8ビットのオ
フセットを加えると56ビットの長さとなる。
【0040】このように本発明のEISCは、すべての
命令語が固定長であり、すべての命令語が独立的に遂行
され、且つ可変長のオペランドを有することができる。
結論として、本発明は拡張レジスタERと拡張レジスタ
の状態を表す手段とERに値を貯蔵する命令語と拡張レ
ジスタの状態とによってオペランドの解析を異にする命
令語を有する中央処理装置に関する発明である。本発明
により固定長命令語を有すると共にメモリアドレス、オ
フセット、即値の長さが可変する中央処理装置の実現が
可能となった。
【0041】以下、例示された図を参照して本発明をよ
り詳細に説明する。本発明の内容を詳細に説明するため
に32ビットの構造を有するMCUを例として説明す
る。これはデータ経路、バス幅の拡張及び縮小が同一の
構造で可能であり、またそれぞれの細部的なブロックは
それぞれ多様な方法で定義され得、本実施例では説明を
容易にするために32ビットのMCUを使用する。
【0042】図1は32ビットのMCUのブロック図で
ある。同図においてMCUの構造は32ビットのバスと
演算処理部(ALSU Unit)60を有し、命令語は1
6ビットから構成され3段階のパイプラインを使用す
る。また、メモリ構成は8ビットのデータ幅を有するメ
モリ4個を並列に連結することとする。まず、MCUの
基本動作について説明すると次の通りである。
【0043】最初にリセットがかかると、メモリから開
始住所を読み出してデータラッチ部10に貯蔵し、この
値がレジスタファイル80内のPC(プログラムカウン
タ)に貯蔵され、次のサイクルからプログラムが順次に
進行する限り、この値はメモリ構成に従って増加する。
この値をアドレス発生部90で参照して使用者が意図す
るプログラムをメモリから読んでくる。そこで、実際に
命令語の遂行が開示されるためにはプレ命令語レジスタ
(PIR:Pre−Instruction Register)20にパイプ
ラインのための命令語がフェッチされ、これをプレデコ
ーダ30で大部類に区分する。ここで大部類とは、定義
された命令語をパイプラインの数や実行する方法等を基
に類似した数種の類型に区分して如何なる遷移状態をす
るかを決定することである。その後、命令語は命令語レ
ジスタ(IR:Instruction Register)40にラッチさ
れ、この値とプレデコーダ30の出力を参照してデコー
ダ/コントロール部50で該当命令語の状態遷移を決定
し、各状態に従う制御信号を発生する。この制御信号に
よって内部的には32ビットの演算処理部(ALSU)
60と乗算器/除算器70を動作させて結果をレジスタ
ファイル80に貯蔵させる。
【0044】レジスタファイル80の詳細図は図4に示
すように、大きくはGPRとSPRに分けられる。GP
Rは使用者が容易に接近できる領域であり、16個の3
2ビットのレジスタから構成されている。これに対し
て、SPRは特殊な目的で使用されるレジスタから構成
されており、次にそのそれぞれについて説明する。
【0045】PC(Program Counter):プログラムの
順次的な流れを維持するために使用される。 SP(User/Supervisor Stack Pointer):例外(Exce
ption)発生の時や非順次的なプログラムの流れによっ
て分岐が必要な時などの場合にその例外や分岐に該当す
る動作を遂行した後、現在進行中のプログラムの流れを
維持するために必要な内容(PC、SR、etc)を貯蔵
しなければならなく、この時そのアドレスを表すために
使用される。
【0046】LR(Link Register):非順次的なプロ
グラムの流れによって分岐が発生する時、前述したよう
にプログラムカウンタの値をメモリ(Stack Area)に貯
蔵するが、プログラムの特性上末端関数の場合には直ち
にアドレスを戻され、さらに末端関数を呼び出すような
動作を繰り返しやすい。このようなことを考慮して末端
関数の呼び出しである場合にそのアドレスをメモリに貯
蔵せず臨時的に貯蔵するためにこのLRを使用する。こ
れを通じて関数の動作を終えてそのアドレス値を戻され
る時メモリを読まなくても良いので性能を向上させるこ
とができる。
【0047】ML/MH(Multiply Result Low/High
Register):ここで例として使用したMCUには乗算器
と除算器が存在する。そのため、これらの演算結果を臨
時的に貯蔵するためにこの2つのレジスタを使用する。 ER(Extension Register):前述したように本発明で
意図するオフセットや即値を臨時的に貯蔵して意図する
量を作るために使用する。
【0048】SR(Status Register):一般的なモー
ドのMCUでのように、演算する過程の様々な状態値を
貯蔵するために使用される。それぞれのビットは図で示
されるような状態を示し、注目すべきことは19番目の
ビットが拡張フラグとして次に続く命令語がオフセット
または即値として短い値を取るか、または拡張された値
を取るかを決定することである。勿論、この例では状態
レジスタ内の1ビット、即ち19番目のビットをフラグ
として使用したが、これは一例に過ぎず実際には多様な
方法を通じてハードウェア的に実現可能である。
【0049】そして、アドレス発生部90では多くの主
要要素の中で次の命令語及びデータのメモリアドレスに
該当する要素を選択してプログラムの順次的または非順
次的な進行のために使用し、そのアドレスの命令語を読
み出してプレ命令語レジスタ20にラッチさせてプログ
ラムを順次に進行させたり、また必要なデータをメモリ
から持ってきてデータラッチ部10にラッチさせて適切
な動作を遂行するようにする。
【0050】図2は本実施例で使用するMCUのパイプ
ラインがどのように動作するかを示している。前述で言
及されたように、フェッチ→デコード→実行という3段
パイプラインを使用する。図においてSimpleと
は、命令語をフェッチしてデコードしこれを実行するに
それぞれ1サイクルずつ要する命令語を意味し、LD/
STはメモリからデータを読み出したり書込む命令語
で、このような命令語は有効アドレスを求めるために付
加的に1Stageがさらに要する。
【0051】また、本装置は乗算、除算、そしてバレル
シフタ無しに多重シフト命令語を支援するが、多重シフ
ト命令語とは、このような単一サイクルに実行を終える
ことができない命令語で、これらのためのパイプライン
概略図を示す。図3はパイプラインに対するタイミング
図で、命令語がどのようにフェッチされてデコードされ
実行するかを簡略に示している。
【0052】以上本実施例のMCUの一般的な動作の流
れを説明した。次は、具体的に拡張命令語の動作を説明
する。拡張命令語でない一般的な命令語が前述のように
遂行されているうちに拡張命令語が入るとこれによって
MCUは次の2通りの動作を遂行する。まず、状態レジ
スタの19番目のビットを‘1’(負論理の場合は
‘0’)に変化させる。19番目のレジスタが1にセッ
トされると、続く命令語はこのフラグを確認し、メモリ
を読み出したり書込む動作である時はアドレスのオフセ
ットとして、また内部的なALSU動作である時は即値
としてER(Extension Register)が参照されるように
案内する役割をする。そして、後者の場合は、意図する
オフセットまたは即値をERに持ってくる。これはさら
に2通りに分けられ、第1は、拡張命令語を使用する場
合や、または先に拡張命令語が出たとしても既にER値
を使用した場合である。第2は、先で既に拡張命令語が
遂行されたがこのERの値が使用されなかった場合であ
る。
【0053】これを説明するために拡張命令語を図5に
示すように定義する。第1の場合は図5で表示された即
値14ビットをERレジスタの13〜0ビットに満た
し、その上位ビットは符号拡張として即値最上位ビット
として満たす。第2の場合は先で既に14ビットをER
に満たしておいた状態であるのでこの値を保存するため
に14ビットを左側に移動させた後に即値14ビットを
ERの13〜0ビットに満たす。これによって拡張命令
語の繰り返し遂行で無限大にオフセットと即値とを拡張
させることができる。
【0054】次は、拡張命令語に続いて出ることができ
る命令語の動作を例を挙げて説明する。第1に、メモリ
からデータを読み出したり書込む動作を遂行するデータ
移動命令語においてこの命令語がアドレスのオフセット
にどのように動作するかを説明する。これについての説
明の便宜上、図6に示す命令語を定義する。
【0055】図6の命令語を実行しようとするとき、デ
コーダ/コントロール部50で状態レジスタの19番目
のビットである拡張フラグを参照する。そこでもし、そ
の値が‘1’(負論理の場合には‘0’)であれば有効
アドレスはインデックスレジスタの値にオフセットを加
えた値となる。ただし、ここでもう一つ考慮すべき事項
はメモリのデータ幅と言える。即ち、使用者の便宜によ
って8ビットのメモリを並列に4個連結することもで
き、または16ビットのメモリ2個を並列に連結するこ
ともできるなど、多様な構成ができるためである。前述
したように、本実施例では8ビットのメモリ4個を並列
に連結することと仮定する。このような場合オフセット
を加えるときオフセット値を2ビット左側に移動させる
必要がある。その理由は現在遂行する命令語が32ビッ
トのLoad/Storeであるために下位2ビットは
意味がなくなるからである。しかし、フラグ値が‘1’
(負論理の場合には‘0’)であればこれは直前に拡張
命令語が遂行されてERに拡張すべきオフセット値を移
しておいたことを意味する。そのため、ERの値を4ビ
ットだけ左側に移動させ、命令語に含まれたオフセット
4ビット中の下位2ビットを2ビット左側に移動させて
ここにインデックスレジスタ値を加えたものが有効アド
レスとなる。勿論、ここでERを左側に移動させる量は
定義によって多様化することができる。ここでは命令語
の一貫性のために4ビットだけを移動させることと定義
する。この例で32ビットのLoad/Storeの命
令語としてはインデックスレジスタ+63までのアドレ
スにアクセスすることができる。しかし、オフセットが
63を超えると、まず拡張命令語を使用して15を超え
る値をERに移しておき32ビットのLoad/Sto
reの命令語を遂行して所望するアドレスにアクセスす
る。これを簡単な数式で示すと数1の通りである。
【0056】
【数1】 第2に、データ移動命令語中の即値を直ちにロードする
場合を例とする。このために図7に示す命令語を定義す
る。図7が示すように前記のロード即値命令語を通じて
符号を有する7ビットの即値、即ち−256〜255ま
でを目的レジスタにロードできる。しかし、必要な即値
が−256〜255の範囲から外れる場合には同様に、
拡張命令語を先に遂行して所望する即値をERレジスタ
に移しておきこのロード即値命令語を遂行して所望する
即値を得ることができる。この場合にも同様に、ロード
即値命令語が命令語レジスタ40にラッチされ、これを
実行するためにデコーダ/コントロール部50で制御信
号を発生するとき、状態レジスタの19番目のビットを
参照して‘0’(負論理である時は‘1’)であれば命
令語内の7ビット、即ち−256〜255までの即値を
直接に目的レジスタにロードして、若し‘1’(負論理
である時は‘0’)である時はERレジスタの値を4ビ
ット左側に移動させ、ここに命令語内の下位4ビットを
満たして所望する大きさの即値をロードする。勿論、こ
こでERレジスタの値を移動させる量や、満たす即値は
命令語の定義によって多様に変化させることができる。
若しここで定義した命令語で32ビットの即値を所望す
るとすれば、拡張命令語を2回遂行して上位24ビット
をERに移しておいた後にロード即値命令語を遂行して
32ビットの即値を得ることができる。これを簡単な数
式で示すと数2の通りである。
【0057】
【数2】 第3に、ALUの命令語の場合を例とする。このために
図8に示す命令語を定義する。一般的にALUの命令語
のオペランドは、次の数種の類型に区分することができ
る。
【0058】1.2個のレジスタ間の演算 2.1個のレジスタと即値との演算 3.1個のレジスタとメモリ内容との演算等 しかし、一般的なRISC構造ではLoad/Stor
eを除いた命令語はメモリにアクセスしない。そのた
め、ここで例に挙げる構造もこのようなRISCの特徴
によってALU演算は2類型に区分し、これを前記図8
に示す1つの命令語として表した。このALUの命令語
が命令語レジスタ40にラッチされて実行のためにデコ
ーダ/コントロール部50で制御信号を発生する時も状
態レジスタのEフラグを参照する。若し、Eフラグが
‘0’(正論理である場合)であればこの命令語は2個
のレジスタ間演算となり、‘1’であれば1個のレジス
タと即値との演算となる。第1の場合は命令語の3番目
のビットから最下位のビットまでの4ビットを通じて1
6個のレジスタ中の1つを選択して目的レジスタ(IR
[7:4])と演算を遂行し、その結果値は目的レジス
タに記録される。これに対して、第2の場合は目的レジ
スタとERレジスタを参照して即値と合わせる。即ち即
値と演算を遂行しようとする時はまず拡張命令語を遂行
して所望する量をERに移した後にALUの命令語を遂
行することである。この例を簡単な数式で示すと数3の
通りである。
【0059】
【数3】 第4に、分岐命令語の場合を例とする。このために図9
に示す分岐命令語を定義する。分岐命令語には多様な種
類があり得るが、ここでは図9に示すようにプログラム
カウンタ関連(PC Relative)分岐命令語を例として
使用する。この命令語が命令語レジスタ40にラッチさ
れ実行のためにデコーダ/コントロール部50で必要な
制御信号を発生する時もEフラグを参照する。そこで、
もし‘0’であれば単にプログラムカウンタに符号を有
する8ビットを加える。即ち、現在のプログラムカウン
タで−512〜511までの範囲を分岐することができ
る。ここで、データの長さは8ビットであるが、範囲が
−512〜511である理由は、本実施例で採択された
構造が16ビットの命令語を使用して8ビットのデータ
幅を有するメモリ4個を並列に連結したことを前提とし
たから、最下位のビットは意味がなくなり、従って実際
のオフセット値は最下位のビットを‘0’で満たすと9
ビットとなるためである。これに対して、‘1’であれ
ばプログラムカウンタにERレジスタを参照してオフセ
ット値を加えて分岐しようとする有効アドレスを作る。
即ち、分岐しようとする住所が−512〜511の範囲
から外れる場合はまず拡張命令語を遂行して必要な量を
ERレジスタに移しておいた後、分岐命令語を遂行して
必要なオフセットを得ることができるということであ
る。この場合を簡単な数式で表現すると数4の通りであ
る。
【0060】
【数4】 以上多くの命令語の中、数種の代表的な類型の命令語で
拡張命令語がどのように適用され得るかを例を通して説
明した。ここで説明されてはいないが、オフセットや即
値を必要とする命令語もこれと同様な方法で拡張命令語
の適用ができ、この拡張できる量には制限がないと言え
る。
【0061】次に、拡張命令語が遂行される時例外が発
生するとどのように処理されるかについて説明する。こ
の時考慮すべき問題は、(1) 拡張命令語の遂行中に例外
が発生する場合その状態を例外処理が終わった後までに
どのように維持するか、(2)既に移しておいたオフセッ
トや即値をどのように例外処理の後に復元するか、の2
つである。前述したように、本発明はこの問題を解決す
るためにEフラグとERレジスタを使用する。そしてこ
れを実現するための例として、図4に示すようにSPR
レジスタファイル内にERレジスタを置き、また状態レ
ジスタ内の1ビットを割当ててEフラグとして使用す
る。勿論、これは本発明のハードウェアで実現するため
の多くの方法中で説明の容易さのために簡略に示した一
例である。
【0062】
【発明の効果】上述した本発明によると多くのMCUが
そうであるように、例外が発生すると例外処理に先立っ
て現在のプログラムの流れを忘れないために数種の要素
をスタック領域に貯蔵する。本実施例の構造もプログラ
ムカウンタの値と状態レジスタの値とをスタック領域に
貯蔵する。そのため、例外処理の後にプログラムカウン
タと状態レジスタの値とを返された時Eフラグ値を参照
すると拡張命令語が遂行中である時例外が発生する場合
その状態を維持することができ、またERレジスタをソ
フトウェア的に接近可能として例外処理の前にこれを同
様に、スタック領域に移しておくことができるように
し、例外処理の後にスタックからER値を復元させるこ
とによって2つの問題を解決できる。
【図面の簡単な説明】
【図1】本発明の実施例による中央処理装置を示す図。
【図2】中央処理装置のパイプラインの動作を説明する
図。
【図3】パイプラインのタイミングダイアグラムで命令
語フェッチとデコーディングの実行を示す図。
【図4】状態レジスタ(SR)に拡張フラグがセッティ
ングされた命令語フォーマットを示す図。
【図5】拡張命令語の一例を示す図。
【図6】拡張命令語の一例を示す図。
【図7】拡張命令語の一例を示す図。
【図8】拡張命令語の一例を示す図。
【図9】拡張命令語の一例を示す図。
【図10】従来技術による中央処理装置を示す図。
【符号の説明】
10 データラッチ部 20 プレ命令語レジスタ 30 プレデコーダ 40 命令語レジスタ 50 デコーダ/コントロール部 60 演算処理部 70 乗算器/除算器 80 レジスタファイル 90 アドレス発生部

Claims (19)

    【特許請求の範囲】
  1. 【請求項1】接近速度の速い小規模記憶装置であるレジ
    スタの集合であるレジスタファイルと、前記レジスタフ
    ァイルと接続されて情報を送受信する通路である内部バ
    スと、前記内部バスに連結されており外部バスを連結す
    る外部バスバッファと、前記内部バスに連結されており
    演算機能を遂行する機能ブロックと、前記内部バスに連
    結されており遂行中の命令語を記憶する命令レジスタ
    と、前記命令レジスタに連結されており命令語を解析し
    て前記レジスタファイルと前記内部バスと前記外部バス
    バッファと前記機能ブロックと前記命令レジスタとに制
    御信号を発生するデコーダ/コントロール部とから構成
    され、 前記レジスタファイルは、ユーザプログラムがアクセス
    可能で演算原始データや演算結果データを貯蔵し、かつ
    前記演算データを記憶しているメモリのアドレスを記憶
    する汎用レジスタと、ユーザプログラムがアクセス可能
    で中央処理装置の動作に必要な情報を記憶する特殊レジ
    スタと、ユーザプログラムがアクセス不可能で中央処理
    装置の動作に必要な特殊な機能や演算の中間過程を記憶
    する内部レジスタとから構成されており、 前記特殊レジスタの一種であり進行しているプログラム
    が貯蔵されているメモリアドレスを記憶するプログラム
    カウンタを有し、前記プログラムカウンタが指定するプ
    ログラムアドレスが前記内部バスに出力され、前記内部
    バスに出力されたプログラムアドレスが前記外部バスバ
    ッファを介してプログラムを記憶している外部メモリの
    アドレスに出力され、前記方法により指定された外部メ
    モリから命令語が読み出されて前記外部バスバッファを
    介して前記内部バスに連結され、前記命令語が前記命令
    レジスタに貯蔵されて前記デコーダ/コントロール部で
    前記制御信号を発生し、 前記命令レジスタに貯蔵されて前記デコーダ/コントロ
    ール部で解析される前記命令語は、動作を指定するOP
    コードフィールドのみで構成されるかまたは、前記OP
    コードフィールドと動作の作用を受けるオペランドフィ
    ールドとから構成され、前記OPコードフィールドと前
    記オペランドフィールドとは2進数ビットから構成さ
    れ、前記オペランドフィールドは前記命令語の種類に応
    じ、メモリアドレスを表すアドレスオペランド、前記汎
    用レジスタまたは前記特殊レジスタに記憶されたメモリ
    アドレスからのオフセットを表すオフセットオペランド
    及び/または演算、メモリアドレスまたは制御に使用さ
    れるための即値を表す即値オペランドを解析して実行す
    る通常の中央処理装置において、 前記特殊レジスタの一種でユーザプログラムがアクセス
    可能な拡張レジスタをさらに含み、 前記拡張レジスタに拡張データを記憶する動作を表すO
    Pコードと即値オペランドフィールドとから構成された
    命令語を、前記デコーダ/コントロール部で解析して即
    値オペランドフィールドを記憶させる動作を遂行し、 前記OPコードとOPコードが必要とする前記オペラン
    ドフィールドの一部分とから構成される基本命令語の前
    記一部分オペランドフィールドは、前記拡張レジスタに
    記憶された前記拡張データと連結されて完全なオペラン
    ドを有する命令語を構成し、前記デコーダ/コントロー
    ル部で解析されて実行されることを特徴とする、拡張命
    令語を有する中央処理装置。
  2. 【請求項2】前記拡張レジスタの長さは前記汎用レジス
    タの長さと同一であるか、または短いことを特徴とす
    る、請求項1に記載の拡張命令語を有する中央処理装
    置。
  3. 【請求項3】前記拡張レジスタに前記拡張データを記憶
    する前記命令語を遂行すると状態が変更され、かつユー
    ザプログラムがアクセス可能なビットから構成される拡
    張フラグをさらに含むことを特徴とする、請求項2に記
    載の拡張命令語を有する中央処理装置。
  4. 【請求項4】前記拡張レジスタに記憶された前記拡張デ
    ータを連結して前記オペランドフィールドを形成する前
    記基本命令語が遂行されると、前記拡張フラグの状態を
    変更することを特徴とする、請求項3に記載の拡張命令
    語を有する中央処理装置。
  5. 【請求項5】前記拡張フラグの状態に応じ、前記基本命
    令語が有する前記一部分オペランドを正の整数または2
    の補数と見て拡張して前記オペランドを形成するか、前
    記拡張レジスタに記憶された拡張データと前記一部分オ
    ペランドとを連結して前記オペランドを形成することを
    特徴とする、請求項4に記載の拡張命令語を有する中央
    処理装置。
  6. 【請求項6】前記拡張レジスタに記憶された前記拡張デ
    ータを連結して前記オペランドフィールドを形成する前
    記基本命令語が遂行されると前記拡張レジスタに一定の
    データを記憶させることを特徴とする請求項2に記載の
    拡張命令語を有する中央処理装置。
  7. 【請求項7】前記拡張レジスタに記憶された拡張データ
    の値に基づいて、前記基本命令語が有する前記一部分オ
    ペランドを正の整数または2の補数と見て拡張して前記
    オペランドを形成するか、前記拡張レジスタに記憶され
    た拡張データと前記一部分オペランドとを連結して前記
    オペランドを形成することを特徴とする、請求項6に記
    載の拡張命令語を有する中央処理装置。
  8. 【請求項8】前記拡張レジスタに前記拡張データを記憶
    する前記命令語の即値オペランドフィールドの長さが前
    記拡張レジスタの長さより小さく、前記拡張レジスタに
    前記拡張データを記憶する命令語は、前記拡張フラグの
    状態に応じ、即値オペランドを正の整数または2の補数
    と見て拡張レジスタの長さだけ拡張して前記拡張レジス
    タに貯蔵するか、前記拡張レジスタに記憶された拡張デ
    ータを即値オペランドの長さだけ左側に移動させて即値
    オペランドを連結して拡張データを形成し、前記拡張レ
    ジスタに貯蔵する機能を有することを特徴とする、請求
    項4に記載の拡張命令語を有する中央処理装置。
  9. 【請求項9】前記拡張フラグの状態に応じ、前記基本命
    令語が有する前記一部分オペランドを正の整数または2
    の補数と見て拡張して前記オペランドを形成するか、前
    記拡張レジスタに記憶された拡張データと前記一部分オ
    ペランドとを連結して前記オペランドを形成することを
    特徴とする、請求項8に記載の拡張命令語を有する中央
    処理装置。
  10. 【請求項10】前記拡張レジスタに前記拡張データを記
    憶する前記命令語の即値オペランドフィールドの長さが
    前記拡張レジスタの長さより小さく、前記拡張レジスタ
    に前記拡張データを記憶する命令語は、前記拡張レジス
    タに貯蔵されている前記拡張データに基づいて、即値オ
    ペランドを正の整数または2の補数と見て拡張レジスタ
    の長さだけ拡張して前記拡張レジスタに貯蔵するか、前
    記拡張レジスタに記憶された拡張データを即値オペラン
    ドの長さだけ左側に移動させて即値オペランドを連結し
    て拡張データを形成し、前記拡張レジスタに貯蔵する機
    能を有することを特徴とする請求項6に記載の拡張命令
    語を有する中央処理装置。
  11. 【請求項11】接近速度の速い小規模記憶装置であるレ
    ジスタの集合であるレジスタファイルと、前記レジスタ
    ファイルと接続されて情報を送受信する通路である内部
    バスと、前記内部バスに連結されており外部バスを連結
    する外部バスバッファと、前記内部バスに連結されてお
    り演算機能を遂行する機能ブロックと、前記内部バスに
    連結されており遂行中の命令語を記憶する命令レジスタ
    と、前記命令レジスタに連結されており命令語を解析し
    て前記レジスタファイルと前記内部バスと前記外部バス
    バッファと前記機能ブロックと前記命令レジスタとに制
    御信号を発生するデコーダ/コントロール部とから構成
    され、 前記レジスタファイルは、ユーザプログラムがアクセス
    可能で演算原始データ,演算結果データまたは前記演算
    データが記憶されているメモリアドレスを記憶する汎用
    レジスタと、ユーザプロクラムがアクセス可能で中央処
    理装置の動作に必要な情報を記憶する特殊レジスタと、
    ユーザプログラムがアクセス不可能で中央処理装置の動
    作に必要な特殊な機能や演算の中間過程を記憶する内部
    レジスタとから構成されており、 前記特殊レジスタの一種であり進行しているプログラム
    が貯蔵されているメモリアドレスを記憶するプログラム
    カウンタを有し、前記プログラムカウンタが指定するプ
    ログラムアドレスが前記内部バスに出力され、前記内部
    バスに出力されたプログラムアドレスが前記外部バスバ
    ッファを介してプログラムを記憶している外部メモリの
    アドレスに出力され、前記方法により指定された外部メ
    モリから命令語が読み出されて前記外部バスバッファを
    介して前記内部バスに連結され、前記命令語が前記命令
    レジスタに貯蔵されて前記デコーダ/コントロール部で
    前記制御信号を発生し、 前記命令レジスタに貯蔵されて前記デコーダ/コントロ
    ール部で解析される前記命令語は、動作を指定するOP
    コードフィールドのみで構成されるかまたは前記OPコ
    ードフィールドと動作の作用を受けるオペランドフィー
    ルドとから構成され、前記OPコードフィールドと前記
    オペランドフィールドとは2進数ビットから構成され、
    前記オペランドフィールドは、前記命令語の種類に応
    じ、メモリアドレスを表すアドレスオペランド、前記汎
    用レジスタまたは前記特殊レジスタに記憶されたメモリ
    アドレスからのオフセットを表すオフセットオペランド
    及び演算、メモリアドレスまたは制御に使用するための
    即値を表す即値オペランドを解析して実行する通常の中
    央処理装置において、 前記特殊レジスタの一種でユーザプログラムがアクセス
    可能な拡張レジスタをさらに含み、 前記拡張レジスタは、拡張データフィールドと中央処理
    装置の動作に必要な情報や、フラグ及びその外のフィー
    ルドとから構成され、 前記拡張レジスタの拡張データフィールドに拡張データ
    を記憶する動作を表すOPコードと即値オペランドフィ
    ールドとから構成された命令語を、前記デコーダ/コン
    トロール部で解析し、即値オペランドフィールドを拡張
    レジスタの拡張データフィールドに記憶させる動作を遂
    行し、 前記OPコードとOPコードが必要とする前記オペラン
    ドフィールドの一部分とから構成される基本命令語の前
    記一部分オペランドフィールドは、前記拡張レジスタの
    拡張データフィールドに記憶された前記拡張データと連
    結されて完全なオペランドを有する命令語を構成し、前
    記デコーダ/コントロール部で解析されて実行されるこ
    とを特徴とする拡張命令語を有する中央処理装置。
  12. 【請求項12】前記拡張レジスタの拡張データフィール
    ドに前記拡張データを記憶する前記命令語を遂行すると
    状態が変更され、ユーザプログラムがアクセス可能なビ
    ットから構成される拡張フラグをさらに含むことを特徴
    とする、請求項11に記載の拡張命令語を有する中央処
    理装置。
  13. 【請求項13】前記拡張レジスタの拡張データフィール
    ドに記憶された前記拡張データを連結して前記オペラン
    ドフィールドを形成する前記基本命令語が遂行される
    と、前記拡張フラグの状態を変更することを特徴とする
    請求項12に記載の拡張命令語を有する中央処理装置。
  14. 【請求項14】前記拡張フラグの状態に応じ、前記基本
    命令語が有する前記一部分オペランドを正の整数または
    2の補数と見て拡張して前記オペランドを形成するか、
    前記拡張レジスタの拡張データフィールドに記憶された
    拡張データと前記一部分オペランドとを連結して前記オ
    ペランドを形成することを特徴とする請求項13に記載
    の拡張命令語を有する中央処理装置。
  15. 【請求項15】前記拡張レジスタの拡張データフィール
    ドに記憶された前記拡張データを連結して前記オペラン
    ドフィールドを形成する前記基本命令語が遂行される
    と、前記拡張レジスタの拡張データフィールドに一定の
    データを記憶させることを特徴とする、請求項11に記
    載の拡張命令語を有する中央処理装置。
  16. 【請求項16】前記拡張レジスタの拡張データフィール
    ドに記憶された拡張データの値に基づいて、前記基本命
    令語が有する前記一部分オペランドを正の常数や2の補
    数と見て拡張して前記オペランドを形成するか、前記拡
    張レジスタの拡張データフィールドに記憶された拡張デ
    ータと前記一部分オペランドとを連結して前記オペラン
    ドを形成することを特徴とする、請求項15に記載の拡
    張命令語を有する中央処理装置。
  17. 【請求項17】前記拡張レジスタの拡張データフィール
    ドに前記拡張データを記憶する前記命令語の即値オペラ
    ンドフィールドの長さが前記拡張レジスタの拡張データ
    フィールドの長さより小さく、前記拡張レジスタの拡張
    データフィールドに前記拡張データを記憶する命令語
    は、前記拡張フラグの状態に応じ、即値オペランドを正
    の整数または2の補数と見て拡張データフィールド長さ
    だけ拡張して前記レジスタの拡張データフィールドに貯
    蔵するか、前記拡張レジスタの拡張データフィールドに
    記憶された拡張データを即値オペランド長さだけ左側に
    移動させて即値オペランドを連結して拡張データを形成
    し、前記拡張レジスタの拡張データフィールドに貯蔵す
    る機能を有することを特徴とする、請求項13に記載の
    拡張命令語を有する中央処理装置。
  18. 【請求項18】前記拡張フラグの状態に応じ、前記基本
    命令語が有する前記一部分オペランドを正の整数または
    2の補数と見て拡張して前記オペランドを形成するか、
    前記拡張レジスタの拡張データフィールドに記憶された
    拡張データと前記一部分オペランドとを連結して前記オ
    ペランドを形成することを特徴とする、請求項17に記
    載の拡張命令語を有する中央処理装置。
  19. 【請求項19】前記拡張レジスタの拡張データフィール
    ドに前記拡張データを記憶する前記命令語の即値オペラ
    ンドフィールドの長さが前記拡張レジスタの拡張データ
    フィールドの長さより小さく、前記拡張レジスタの拡張
    データフィールドに前記拡張データを記憶する命令語
    は、前記拡張レジスタの拡張データフィールドに貯蔵さ
    れている前記拡張データに基づいて、即値オペランドを
    正の整数または2の補数と見て拡張レジスタの拡張デー
    タフィールド長さだけ拡張して前記拡張レジスタの拡張
    データフィールドに貯蔵するか、前記拡張レジスタの拡
    張データフィールドに記憶された拡張データを即値オペ
    ランド長さだけ左側に移動させて即値オペランドを連結
    して拡張データを形成し、前記拡張レジスタの拡張デー
    タフィールドに貯蔵する機能を有することを特徴とす
    る、請求項15に記載の拡張命令語を有する中央処理装
    置。
JP11326311A 1998-11-20 1999-11-17 拡張命令語を有する中央処理装置 Pending JP2000200196A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1019980049999A KR100322277B1 (ko) 1998-11-20 1998-11-20 확장 명령어를 가진 중앙처리장치
KR1998P49999 1998-11-20

Publications (1)

Publication Number Publication Date
JP2000200196A true JP2000200196A (ja) 2000-07-18

Family

ID=19559171

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11326311A Pending JP2000200196A (ja) 1998-11-20 1999-11-17 拡張命令語を有する中央処理装置

Country Status (5)

Country Link
US (1) US6499099B1 (ja)
EP (1) EP1003094B1 (ja)
JP (1) JP2000200196A (ja)
KR (1) KR100322277B1 (ja)
DE (1) DE69918033T2 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001142695A (ja) * 1999-10-01 2001-05-25 Hitachi Ltd 記憶場所への定数のロード方法、宛先記憶場所への定数のロード方法、レジスタへの定数のロード方法、符号ビット数の決定方法、2進数の正規化方法、及びコンピュータシステム内の命令
US6775414B1 (en) * 1999-11-19 2004-08-10 Ati International Srl Variable-length code decoder
KR20010091132A (ko) * 2000-03-13 2001-10-23 구자홍 마이크로 프로세서의 데이터 연산 처리기
US7069422B2 (en) * 2000-12-22 2006-06-27 Modelski Richard P Load-shift carry instruction
JP4542722B2 (ja) * 2001-04-25 2010-09-15 富士通株式会社 命令処理方法
US7783892B2 (en) 2003-05-30 2010-08-24 Privaris, Inc. System and methods for assignation and use of media content subscription service privileges
US20060277396A1 (en) * 2005-06-06 2006-12-07 Renno Erik K Memory operations in microprocessors with multiple execution modes and register files
JP5217431B2 (ja) * 2007-12-28 2013-06-19 富士通株式会社 演算処理装置及び演算処理装置の制御方法
US8352952B2 (en) * 2008-12-01 2013-01-08 Citrix Systems, Inc. Systems and methods for facilitating virtualization of a heterogeneous processor pool
US9477476B2 (en) * 2012-11-27 2016-10-25 Qualcomm Incorporated Fusing immediate value, write-based instructions in instruction processing circuits, and related processor systems, methods, and computer-readable media
US8935781B1 (en) * 2013-02-01 2015-01-13 Google Inc. Native code module security for arm 64-bit instruction set architectures
US20150019845A1 (en) * 2013-07-09 2015-01-15 Texas Instruments Incorporated Method to Extend the Number of Constant Bits Embedded in an Instruction Set
CN108415729A (zh) * 2017-12-29 2018-08-17 北京智芯微电子科技有限公司 一种cpu指令异常的处理方法及装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4694391A (en) * 1980-11-24 1987-09-15 Texas Instruments Incorporated Compressed control decoder for microprocessor system
US4445177A (en) * 1981-05-22 1984-04-24 Data General Corporation Digital data processing system utilizing a unique arithmetic logic unit for handling uniquely identifiable addresses for operands and instructions
US4794517A (en) * 1985-04-15 1988-12-27 International Business Machines Corporation Three phased pipelined signal processor
EP0461257B1 (en) * 1989-01-17 1997-04-23 Fujitsu Limited Microprocessor sequencer for controlling the decoding of varable length instructions
US5001662A (en) * 1989-04-28 1991-03-19 Apple Computer, Inc. Method and apparatus for multi-gauge computation
JPH04172533A (ja) * 1990-11-07 1992-06-19 Toshiba Corp 電子計算機
JPH05197545A (ja) * 1991-12-10 1993-08-06 Mitsubishi Electric Corp マイクロコンピュータ
US5878266A (en) * 1995-09-26 1999-03-02 Advanced Micro Devices, Inc. Reservation station for a floating point processing unit
JP3711422B2 (ja) * 1995-12-20 2005-11-02 セイコーエプソン株式会社 情報処理回路

Also Published As

Publication number Publication date
EP1003094A2 (en) 2000-05-24
EP1003094A3 (en) 2002-09-25
KR100322277B1 (ko) 2002-03-08
KR19990046225A (ko) 1999-07-05
DE69918033T2 (de) 2005-01-27
EP1003094B1 (en) 2004-06-16
US6499099B1 (en) 2002-12-24
DE69918033D1 (de) 2004-07-22

Similar Documents

Publication Publication Date Title
KR100328162B1 (ko) 정보처리회로와마이크로컴퓨터와전자기기
US7694109B2 (en) Data processing apparatus of high speed process using memory of low speed and low power consumption
US20080082800A1 (en) Data processor for modifying and executing operation of instruction code
US4833640A (en) Register bank change including register to register transfer in a data processing system
JP2816248B2 (ja) データプロセッサ
US6138273A (en) Programmable interpretive virtual machine
US5682531A (en) Central processing unit
JPS6339931B2 (ja)
JPH04172533A (ja) 電子計算機
US7546442B1 (en) Fixed length memory to memory arithmetic and architecture for direct memory access using fixed length instructions
US5752015A (en) Method and apparatus for repetitive execution of string instructions without branch or loop microinstructions
JP2000200196A (ja) 拡張命令語を有する中央処理装置
KR100465388B1 (ko) Risc 구조의 8비트 마이크로 제어기
US5193206A (en) Reduce instruction set microprocessor
US4812971A (en) Central processing unit for a digital computer
US20030046516A1 (en) Method and apparatus for extending instructions with extension data of an extension register
US4893235A (en) Central processing unit for a digital computer
US4240137A (en) Computer for directly executing a program including a plurality of structured blocks
JP4502532B2 (ja) データ処理装置
EP0206653A2 (en) Method and means for loading and storing data in a reduced instruction set computer
CA1254661A (en) Method and means for instruction combination for code compression
JP3504355B2 (ja) プロセッサ
US6282632B1 (en) Information processor having duplicate operation flags
KR19990046284A (ko) 확장명령어를갖는중앙처리장치
KR19990046283A (ko) 확장명령어를갖는중앙처리장치

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20041018

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20041109

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20041220

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20041220

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050209

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050308

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050809