JPS6150337B2 - - Google Patents

Info

Publication number
JPS6150337B2
JPS6150337B2 JP58180866A JP18086683A JPS6150337B2 JP S6150337 B2 JPS6150337 B2 JP S6150337B2 JP 58180866 A JP58180866 A JP 58180866A JP 18086683 A JP18086683 A JP 18086683A JP S6150337 B2 JPS6150337 B2 JP S6150337B2
Authority
JP
Japan
Prior art keywords
instruction
operand
byte
address
word
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.)
Expired
Application number
JP58180866A
Other languages
English (en)
Other versions
JPS59105150A (ja
Inventor
Deiin Hoitsutonii Roorensu
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPS59105150A publication Critical patent/JPS59105150A/ja
Publication of JPS6150337B2 publication Critical patent/JPS6150337B2/ja
Granted 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
    • 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/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/35Indirect addressing
    • 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/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/355Indexed addressing

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)

Description

【発明の詳細な説明】
〔技術の分野〕 本発明は命令オペランドの指標付き間接アドレ
ス指定に係る。 〔発明の背景〕 「指標付き間接アドレス指定」では、命令中に
含まれるオペランドアドレスに指標値を加算する
ことによつて別のアドレスが作成され、それを用
いて記憶装置から更に別のアドレスが読出され、
それに別の指標値がか算される。オペランドは、
このプロセスを1回以上繰返した後に得られるア
ドレスを用いて記憶装置から読出される。これは
云うならば間接アドレス指定の多重化であつて、
その各レベル毎に固有の指標値が使用される。 指標付き間接アドレス指定は、リフト、待ち行
列、スタツクなどの複雑雑なデータ構造を効率よ
く処理するための有力な武器になつているが、そ
の反面、オーバーヘツドの問題が生じる。 本分野における従来のアプローチは大体次の3
つに分けることができる。 最初のアプローチは命令のOPコードを変える
ことによつて間接アドレス指定を達成する。例え
ば、同じ移動命令MOVEであつても、MOVEA,
Bが「アドレスAの記憶内容をアドレスBの記憶
位置へ移動せよ」という命令を表わし、MOVEI
A(I)、Bが「アドレスAの内容に変位値Iを
加算した値をオペランドアドレスとして使用し、
それによつて指定されたオペランドをアドレスB
の記憶位置へ移動せよ」という命令を表わす。
OPコードの長さが1バイトであれば256種類の
OPコードを使用できるが、このアプローチでは
MOVE及びMOVEIのOPコードを構成するビツト
の組合せ(これを(コード点」という)を変え
る、即ち同じ移動命令に対し2つの異なつたOP
コード点を準備しておく必要がある。他の間接ア
ドレス指定A,B(I)及びA(I),B(I)
も使用するのであれば、それらに対応する更に別
のコード点が2つ必要である。明らかに、このア
プローチは大きなOPコード空間を必要とする。
いい換えれば、OPコード空間当りの使用可能な
命令の数が他のものに比べて少ない。更に、OP
コード空間に関する制限を考えると、間接アドレ
ス指定を多重化することは事実上不可能である。 第2のアプローチは、各命令中にOPコードと
は別にアドレス指定モードビツトを含ませてお
き、それによつて各オペランドのアドレス指定が
直接か間接かを指定する。これによれば、命令の
長さがオペランド当り少なくとも1ビツト長くな
る。命令の長さが固定されているのであれば、本
来はアドレスとして使用されるはずのビツトがモ
ードビツトとして使用されるため、使用可能なオ
ペランド値の範囲が半分以下になる。間接アドレ
ス指定の多重化は、命令中のモードビツトを増す
ことによつてのみ可能である。 第3のアプローチは、記憶装置のすべてのワー
ド記憶位置に間接モード・ビツトを用意しておき
記憶装置からワードが読出される度にそのモード
ビツトを検査する。もしモードビツトがオフであ
れば、読出されたワードはオペランドであり、モ
ードビツトがオンであれば、そのワード(又はそ
れと指標値との和)をアドレスに用いて再び記憶
装置の読出しが行われる。このプロセスは、モー
ドビツトがオフのワードが読出されるまで繰返さ
れる。このアプローチでは多重レベルの間接アド
レス指定は可能であるが、使用可能なアドレス空
間が半分になる。これは各々の命令が間接アドレ
ス指定を行うかどうかには無関係であり、間接ア
ドレス指定しか行わない命令であつても通常の半
分のアドレス空間を使用できるだけである。 〔発明の目的〕 本発明の目的は、所与のデータプロセツサの命
令セツトに含まれる任意の命令に対し、多重レベ
ルの指標付き間接アドレス指定を可能にすること
にある。 〔発明の概要〕 本発明はオペランド当り1つのOPコード点を
使用するだけで上記の目的を達成する。一般的に
いうと、nアドレスのアーキテクチヤにおいて命
令セツト全体に対しn種類のOPコード点を使用
が可能になる。以下、指標付き間接アドレス指定
を表わすOPコード点のことを「接頭コード」と
呼ぶことにする。 本発明は、命令で使用される特定のオペランド
に対し、命令の有効OPコードから区別できる上
述の接頭コードを用いることによつて指標付き間
接アドレス指定を行う。接頭コードは、命令スト
リームにおいて指標付き間接アドレス指定が行わ
れる命令の前に挿入しておくのが望ましいが、必
らずしもこれに限定されるものではない。命令ス
トリームは、間接アドレスから実際のオペランド
アドレスを生成するための指標付き間接値も含ん
でいる。接頭コード及び指標値は対になつてお
り、指標付き間接アドレス指定のレベル毎に1対
ずつ使用される。 本発明に従えば、命令ストリームの長さが接頭
コード及び指標値(後述の実施例ではいずれも1
バイト)の分だけ長くなることを除くと、既存の
命令セツトを全く変えることなく指標付き間接ア
ドレス指定が実現される。レベル数は各命令に関
ドレス指定が実現される。レベル数は各命令に関
連する接頭コードの数によつて表わされる。従つ
て、本発明を実施するにあたつては接頭コードの
数をカウントする手段が必要である。 〔実施例の説明〕 以下の説明はIBMシステム/34のプロセツサを
前提にしている。このプロセツサの命令形式は、
次のとおりである。 すべての命令はOPバイトとそれに続くQバイ
トを含んでいる。QバイトはOPバイトの内容に
応じて、演算特定バイト、マスクバイトなどとし
て使用されるもので、本発明には関係がない。
OPバイトの後半の4ビツト(OP4〜OP7)は
「移動」あるいは「加算」のような包括的な演算
タイプを特定する。最初の2ビツト(OP0及び
OP1)は、命令で使用される第1オペランドの
アドレスを決定するモードを次のように特定す
る。
【表】 える。
【表】 ない。
OPバイトの次の2ビツト(OP2及びOP3)
は、上と同様にして第2オペランドのアドレス指
標モードを特定する。第2オペランドのためのア
ドレスバイト(指標付の場合は1バイト、直接の
場合は2バイト)は命令中において第1オペラン
ドのためのアドレスバイトの次の位置している。
従つて、命令の長さは、オペランドアドレスがな
ければ2バイト(OPバイト及びQバイト)であ
り、2バイトの直接アドレスを2つ含んでいると
6バイトになる。アドレス指定は、直接、間接及
び空の任意の組合せが可能である。 第1a図は本発明を使用しない間接アドレス指
定を示したもので、まず命令ストリームから3バ
イト(OP,Q及びIN0)の命令が取出される。オ
ペランドアドレスは指標バイトIN0を16ビツトの
指標レジスタにある値ADDR0に加算することに
より生成され、主記憶装置に送られる。IN0及び
ADDR0の値域は各々0〜255及び0〜65535であ
る。かくして和ADDDR0+IN0によつてアドレス
指定されたオペランドデータが記憶装置から取出
される。 第1b図は第1a図の命令に本発明を適用した
場合を示している。まず命令ストリーム中で1以
上の接頭コード(PR)バイトが検出されると、
その生起が記録される。PRバイトはどの有効OP
コードバイトとも異なつたビツトパターン(例え
ばX′FE′又はX′FF′)を持つている。このビツト
パターンと後続の命令との間には何の関係もない
から、PRバイトを命令の一部と考えるのは適当
ではない。 次いで、有効なOPバイトを含む命令が取出さ
れ、第1a図と同じようにしてオペランドアドレ
スが生成される。ただし、第1b図では最初に
PRバイトが検出されているので、和ADDR0+
IN0によつてアドレス指定された主記憶装置の内
容は、オペランドではなくアドレスADDR1とし
て扱われる。またPRバイトに応答して、命令に
続く接尾バイトIN1が取出される。これは符号な
しの指標値(0から255まで)として扱われ主記
憶装置から取出された16ビツトのアドレス
ADDR1(0から65535まで)に加算される。これ
により、最初のオペランドアドレスADDR0+IN0
がADDR1+IN1に変更される。 2番目のオペランドアドレスADDR1+IN1によ
つて指定される主記憶装置の内容ADDR2は、命
令の前に検出されたPRバイトが1つのときはオ
ペランドとして扱われるが、PRバイトの2以上
のときはアドレスとして扱われ、次の指標値IN2
に加算されて新たなオペランドアドレスADDR2
+IN2を生成する。第1b図の例ではPRバイトの
数は2であるから、ADDR2+IN2の主記憶内容は
オペランドデータとして取出され、それを用いて
命令が実行される。それが終ると、命令ストリー
ム中のIN2に続くバイトがOPバイト又はPRバイ
トとして解読され、命令サイクルが繰返される。 以上から明らかなように、本発明に従えば、命
令の前後に付加されるPRバイト及びINバイトの
数に応じて指標付き間接アドレス指定のレベル数
(第1b図は3レベル)を如何様にも設定するこ
とができる。1つの命令でアドレス指定されるオ
ペランドが2つの場合は、2種類のPRバイト、
例えばPR1=X′FE′及びPR2=X′FF′を用意して
おけばよい。オペランドが3以上の場合も同様で
ある。一般に、有効OPバイトから区別できるn
種類のコード点を用意しておけば、nオペランド
命令セツト中の任意の命令で多重レベルの指標付
き間接アドレス指定を実現できる。 第1b図の例では、IN1及びIN2が接尾バイト
として命令の後に付加されているが、IN1及び
FN2の場所は、例えばPRバイトの直後であつて
もよく、また別のレジスタに保持しておいてもよ
い。その長さも1バイト(8ビツト)でなくても
よく、また符号付きも可能である。指標値とは別
のアドレス修飾子を表わすものであつてもよい。 接頭コードに関しては、その値が有効な命令か
ら区別できること、及びその記憶位置が特定の命
令と関連付けられることが必要なだけである。例
えば、接頭コードの長さは命令長の約数でなくて
もよい。場所も関連する命令の直前に固定してお
く必要はない。別のコード点を用いて使用頻度の
高い接頭コードの組合せを表わすようにすると、
全体の長さ及び命令実行時間を短縮することがで
きる。また、検出された接頭コードの数を例えば
カウンタに記録しておく代りに、それを関連する
指標値と共にスタツク機構に保管してもよい。 本発明を実施し得るプロセツサの一部を第2a
図及び第2b図に示す。このプロセツサはデータ
フロー部200及びマイクロコード制御部300
を含み、これらを制御するためクロツク100が
重なり合わない2相のタイミング・パルスφ1及
びφ2を発生する。 データフロー部200は8ビツトの母線210
を中心にして構成されている。まず複数のレジス
タを含むレジスタバンク220は一時に8ビツト
ずつ上位バイトHI及び下位バイトLOにわけてロ
ードされるか、又は16ビツトを同時にロードされ
る。レジスタバンク220のポートは4つ(A〜
D)あるが、それらは制御信号ALSRA〜Dによ
つて4つの異なつたレジスタが指定されると同時
に動作できる。ポートA及びCは書込み専用であ
り、ポートBは読取り/書込み両用であり、ポー
トDは読取り専用である。ポートCのデータ源は
2つあるが、マルチプレクサ221への制御信号
GLSRCがいずれか1つを指定する。レジスタバ
ンク220に含まれる多数のレジスタのうち、本
発明に関係するのは次のとおりである。
【表】 オペランドレジスタ。
ALU230は制御信号ALによつて指定された
演算を遂行する。ALU230の左側入力には、
レジスタバンク220からポートDを介して読取
られた16ビツトの入力、又は母線210からAレ
ジスタ232へロードされた8ビツトの入力が印
加される。マルチプレクサ231へ印加される制
御信号GALUがいずれか1つの入力を選択する。
ALU230の右側入力は、母線210からBレ
ジスタ233へロードされた8ビツトである。演
算結果は16ビツトのALUデータレジスタ
(ADR)234へ出力され、次いでレジスタバン
ク220又は母線210へ転送される。 主記憶装置240は母線210から書込みデー
タを受取り、記憶データレジスタ(SDR)24
1を介して母線210へ読取りデータを出力す
る。アドレスはマルチプレクサ243からアドレ
スレジスタ(ADDR)242へ与えられる。マル
チプレクサ243は制御信号GADDRによつて指
定されたアドレス、即ちレジスタバンク220か
らポートBを介して読取られたアドレス又は
ALU230から出力されたアドレスをADDR2
42の方へ通す。このアドレスは増減分データレ
ジスタ(IDR)244にも供給され、そこで増分
又は減分された後、ポートB又はCを介してレジ
スタバンク220に戻される。 レジスタバンク220にあるIAR222の内容
を用いて主記憶装置240から母線210へ取出
された命令のOPバイト及びQバイトは命令レジ
スタバンク250の8ビツトのレジスタ251及
び252へ各々ロードされる。レジスタ251は
OPバイトの各ビツトOP0〜OP7をセンス信号
として出力する。これについては後述する。プロ
グラム状況レジスタ(PSR)253は通常の状況
ビツトを保持する。 レジスタ251〜253は、従来のプロセツサ
にもあつたが本実施例はそれらに加えて、2つの
PRバイトの生起を記録するための2つのレジス
タ254及び255を使用する。レジスタ254
は制御信号Iによつて増分又は減分される4ビツ
トのカウンタとして働き、その内容がゼロでなけ
れば出力信号I1≠0を発生する。レジスタ255
も同様な4ビツトのカウンタで、その内容がゼロ
でなければ出力信号I2≠0を発生する。カウンタ
254及び255を使用すれば、第1オペランド
及び第2オペランドの各々に対し15レベルまでの
間接アドレス指定が可能である。レベル数をもつ
と増やしたい場合はウカンタのビツト数を増やせ
ばよく、また1つの命令で、3以上のオペランド
が使用されるのであればそれに応じてカウンタの
数を増やせばよい。 マイクロコード制御部300はデータフロー部
200を制御するための有限状態機械である。即
ち、クロツク100によつて定められる2相のサ
イクル毎に、入力センス線340上の信号及びマ
イクロコード制御部300そのときの状態が出力
制御線350上の信号を決定する。データフロー
部200からマイクロコード制御部300へ供給
される種々のセンス信号のうち本発明に関係する
のは、レジスタ251にあるOPバイトの全ビツ
トOP0〜OP7と、カウンタ254及び255の
出力信号I1≠0及び12≠0である。 マイクロコード制御部300の状態遷移は次状
態論理310で管理される。次状態論理310は
シーケンサ(SEQ)311と3つのデコーダ
(DCD)312〜314を含む。シーケンサ31
1は出力制御線350から次のサイクルの状態を
指定する8ビツトの制御信号GOTOを受取り、
それと同時に現サイクルの状態をデコーダ312
及び313に知らせる。デコーダ312の出力
SEQL及びデコーダ313の出力SEQHは入力セ
ンス線340へフイードバツクされる。シーケン
サ311へロードされた8ビツトの制御信号
GOTOにより指定される次サイクル状態は、ク
ロツク100の各サイクルの終りに現サイクル状
態になり、それに伴つて新たな次サイクル状態を
指定する制御信号GOTOが供給される。 GOTO値を単にロードする代りに、シーケン
サ311をカウンタで構成することもできる。そ
の場合、GOTOの1つの値(例えばX′FF′)がデ
コーダ314で解読されると、カウンタが次の値
へ増分される。デコーダ312は現状態の下位4
ビツトを解読して、16本の出力線SEQL=0,
SEQL=1,……SEQL=Fのうちの対応する1
本を付勢する。同様に、デコーダ313は現状態
の上位4ビツトを解読して、16本の出力線SEQH
=0,SEQH=1,……,SEQH=Fのうちの対
応する1本を付勢する。 SEQH及びSEQHを含むセンス信号は、ランダ
ム論理320で読取専用記憶装置(ROS)33
0に対するワードアドレス信号WAに変換され
る。ROS330の各ワード331〜33Tは、
GOTOを含む種々の制御信号を指定するビツト
を含んでいる。普通のアドレスデコーダとは異な
り、ランダム論理320は同時に2以上のワード
アドレス信号WAを発生することができる。その
場合2以上のワードがROS330から読出され
ることになるが、それらのワードの対応するビツ
トの論理和がROS330から出力される。従つ
て、RSO330は概念的にはプログラマブルロ
ジツクアレイ(PLA)に含まれるORアレイと等
価である。ランダム論理320はPLAのANDア
レイと同じ機能を持つているが、あとで説明する
ように、その構造は全く異なつている。ANDア
レイのような構造化アレイの代りにランダム論理
を用いると、動作速度が速くなり且つ全体の寸法
を小さくできることが多い。 第3図〜第8図は、オペランドのアドレス指定
に関係するマイクロコード制御部300の細部を
示している。ランダム論理320へ供給されるべ
きセンス信号は、レジスタ251からのビツト
OP0〜OP7、カウンタ254及び255からの
非ゼロ状況信号I1≠0及びI2≠0、デコーダ31
2からの現状態信号SEQL=0,1,2,3,
6,7,並びにデコーダ313から現状態信号
SEQH=0,Cである。ROS330から出力され
る制御信号は次のとおりである。
【表】 又は減分する。
【表】 第3図はランダム論理320の中の命令解読論
理の詳細を示したもので、OPレジスタ251か
らのビツトOP0〜OP7を解読して、第4図〜第
8図の回路で使用される信号を発生する。OP4
〜OP7はデコーダ327で解読される。解読結
果がX′5′であれば、デコーダ327から命令ロー
ド信号OPL5が発生される。解読結果がX′E′の
ときにOP0,OP1=X′3′で且つOP2,OP3=
X′3′であれば、第1PRバイトが検出されたことを
示す信号II1が発生される。解読結果がX′F′のと
きに同じ条件が成立していると、第2PRバイトが
検出されたことを示す信号II2が発生される。従
つて、第3図の例では、第1PRバイトはX′FE′で
あり、第2PRバイトはX′FF′である。信号II1又
はII2が発生されるときには、PRバイトの検出
を示す信号IIも発生される。 OP0及びOP1はデコーダ328で解読され、
それにより第1オペランドのアドレス指定モード
を表わす信号が発生される。前述のように、OP
0,OP1=′0′のとき出力DIR1は直接モードを
示し、′1′のときの出力A1XR1は第1指標レジス
タXR1を用いる間接モードを示し、′2′のときの
出力A1XR2は第2指標レジスタXR2を用いる間
接モードを示す。A1XR1又はA1XR2が発生され
たときにはINDX1も発生される。OP0,OP1=′
3′であるば、第1オペランドがないことを示す信
号NULL1が発生される。上述のように、このと
きOP4〜OP7がX′E′又はX′F′であれば、レジス
タ251にあるのはPRバイトである。デコーダ
329はOP2及びOP3を解読して、第2オペラ
ンドのための同様な信号を発生する。 第4図〜第8図は、第3図に示した命令解読論
理の出力及びび種々のセンス信号に応答してワー
ドアドレス信号を発生する回路とROS330の
詳細を示したものである。ROS330の下側に
示されているSTG,IDRなどは前述の各種制御信
号である。ROS330の中でこれらの制御信号
に対応する位置に示されているのは遂行されるべ
き動作である。例えばワード331の右端にある
「増分」は、論理332によつてワード331が
アドレス指定されたときに、制御信号GOTOが
シーケンサ311を増分し得る状態にあることを
示す。各ワード中で制御信号に対応する位置が空
欄になつている部分は無動作又は本発明に関係の
ない動作を表わしている。 第4図の左側に示されている論理332は命令
ストリームから命令及びPRバイトを検出して解
読する。現状態がSEQH=0,SEQL=0であれ
ば、論理322はワード331を選択する。ワー
ド331はIAR222によつてアドレス指定され
た(ALSRB=IAR)主記憶装置240の内容を
SDR241へロードし(SDR=ロード)、次いで
母線210を介して(BUS=SDR)OPアドレス
251へロードする(OP=ロード)、GOTO=増
分であるから、次の状態はSEQH=0,SEQL=
1である。この状態は後続の4ワード332〜3
35のアドレス指定を可能にする。以下、特にこ
とわらない限り、SEQH=0であるとする。 ワード334,335は命令ストリーム中の
PRバイトを検出して記録する。SEQH=1のと
きにII1によつて第1PRバイトの生起が示される
と、ワード334がアドレス指定されて、その制
御信号I=増分1によりカウンタ254が増分さ
れる。同様に、第2PRバイトの生起を示す信号II
2が発生されると、ワード335の制御信号I=
増分2によりカウンタ255が増分される。ワー
ド334,335はいずれもGOTO=01で、次
の状態が依然としてSEQL=1であることを示し
ているから、次のバイトがPRバイトではなくな
るまでワード334,335が繰返しアドレス指
定される。信号II(II1+II2)が発生されなく
るると、そのときまでに検出された第1PRバイト
及び第2PRバイトの数をカウンタ254及び25
5に各々保持した状態でワード332,333が
アドレス指定される。 ワード332,333はOPバイト及びQバイ
トをOPアドレス251及びQレジスタ252へ
各々ロードする。ワード332,333はIIの反
転信号がオンのときにのみアドレス指定できるか
ら、これらのワードがPRバイトを処理すること
はない。もし命令が第1オペランドを持つていな
ければ(NULL1)、ワード333からの制御信号
GOTO=06によりワード339(第5図)がア
ドレス指定可能になる。命令が第1オペランドを
持つていれば、ワード332からの制御信号
GOTO=増分により次の状態が02になるから、
ワード336がアドレス指定可能になる。 第5図は、通常の直接アドレス指定モードのオ
ペランドアドレスを取出すためのオペランドアド
レス指定制御論理323を示している。ROS3
30のワード336〜338は、DIR1がオン状
態にあつて第1オペランドが直接モードであるこ
とを示している場合にのみアドレス指定される。
ワード336はSEQL=2のときにアドレス指定
される。SEQL=3のときは、第2オペランドが
あるか否か(NULL2)に応じて、ワード337
又は338がアドレス指定される。第2オペラン
ドがなければ状態はC0に変り(GOTO=C0)、第
2オペランドがあれば06に変る(GOTO=06)。
もし第2オペランドも直接モードであれば
(DIR2)、SEQL=6及びSEQL=7の間にワード
339及び33Aが命令ストリームから2バイト
のアドレスを取出して、OP2レジスタ227へロ
ードする。ワード33Aの次の状態はGOTO=
C0である(第7図及び第8図)。 第6図は通常の指標付きモードのオペランドア
ドレスを取出すためのオペランドアドレス指定制
御論理324を示している。もし第1オペランド
が指標付けされるのであれば(INDX1)、状態
SEQL=2においてワード33Bがアドレス指定
される。もし第1指標レジスタXR1が使用される
のであれば(A1XR1)、第2オペランドがあるか
否か(NULL2)に応じて、状態SEQL=3のに
おいてワード33C又は33Dがアドレス指定さ
れる。アドレス計算に第2指標レジスタXR2が使
用されるのであれば、NULL2に応じてワード3
3E又は33Fがアドレス指定される。指標レジ
スタがXR1かXR2か、及びGOTOが06はC0かを
除くと、ワード33C〜33Fは同じである。も
し第2オペランドが直接モードであれば、第5図
のところで説明したように、D1R2によつてワー
ド339,33Aがアドレス指定される。指標付
きモードの場合は、信号INDX2及び状態SEQL=
6によりワード33Gがアドレス指定され、その
制御信号GOTO=増分により状態がSEQL=7に
変る。次いで、どの指標レジスタが使用されるか
に応じて(A2XR1,A2XR2)、ワード33H又は
33Iがアドレス指定される。 これらの3つのワード33G〜33Iは、まず
命令ストリーム中の次のバイトをSDR241か
ら母線210を介してBレジスタ233へロード
し、次いでそれをレジスタ224(XR1)又は2
25(XR2)の内容に加算する。指標付けされた
アドレスを表わす加算結果は、ADR234、母
線210及びマルチプレクサ221を介してOP2
レジスタ227へロードされる。 第7図は、SEQH=Cのときに付勢される指標
付き間接アドレス指定制御論理325及びそれに
よつてアドレス指定されるワード33J〜33Q
を示している。第7図及び第8図の構成はSEQH
=Cのときにのみ意味を持つので、以下では現状
態の上位デイジツトがSEQH=Cであるとする。 ワード33J,33Kは、カウンタ254がゼ
ロでないとき、即ち、I1≠0がオンのときに状態
SEQL=0及びSEQL=1において各々アドレス
指定される。ワード33Jは、OP1レジスタ2
26の内容によつてアドレス指定されたワードを
SDR241、母線210及びポートAの上位側
HIを介してARR223の上位バイト位置にロー
ドし、更にADDR242の内容を増分する。ワー
ド33Kは同様に下位ワードの転送を行う。 ワード33L,33Mは、I2≠0がオンでカウ
ンタ255がゼロでないことを示しているとき
に、ワード33J,3Kと同様にして、第2オペ
ランドの間接アドレスを得る。 ワード33Nは、いずれかのカウンタがゼロで
ないときに状態SEQL=2において命令ストリー
ムからINバイトを取出す(第1b図参照)。まず
IAR222の内容がポートBを通つてADDR24
2へ移され、次いでそれによつてアドレス指定さ
れたバイトがSDR241及び母線210を通つ
てBレジスタ233へロードされる。IAR222
は、IDR244及びポートBを介する再ロードに
よつて増分される。 ワード33P,33Qは状態SEQL=3におい
て、INバイトを用いて間接オペランドアドレス
を指標付けする。もしカウンタ254がゼロでな
ければ(I1≠0がオン)、ワード33Pがアドレ
ス指定される。ワード33Pは、ALU230で
Bレジスタ233にあるINバイトとARR223
からポートD及びマルチプレクサ231を通つて
送られてくる2バイトのアドレスの加算を行わ
せ、その結果をADR234からマルチプレクサ
221のポートCを通つてOP1レジスタ226
に書込む。かくしてOP1レジスタ226は前の
アドレスに代つて新たな指標付き間接アドレスを
含む。カウンタ254はワード33Pの制御信号
I=減分1によつて減分される。カウンタ254
がゼロに達したときにカウンタ255がゼロでな
ければ(I2≠0)、ワード33Qがアドレス指定
される。カウンタ254及びOP1レジスタ22
6に代つてカウンタ255及びOP2レジスタ2
27が使用されることを除くと、ワード33Qは
33Pと同じである。ワード33P、33Qの制
御信号GOTOはいずれもC0であるから、両方の
カウンタ254及び255がゼロにならない限
り、ワード33J〜33Qが再びアドレス指定さ
れる。 カウンタ254及び255がいずれもゼロにな
ると信号I≠0がオフになり、この結果第8図の
実行制御論理326が付勢されて、OPバイト及
びQバイトによつて特定される命令を実行するた
めワード33R,33Tは、ワード338,33
A,33D,33F,33H又は33Iのあとで
両カウンタの初期値がゼロであつたとき、即ち現
命令においてPRバイトが検出されなかつたとき
にもアドレス指定される。本実施例では、ワード
33R,33TはQバイトによつて指定されたレ
ジスタをロードするための命令を実行する。ワー
ド33Rがアドレス指定されると、OP1レジス
タ2226の内容がポートBを通つてADDR24
2へ送られ、それにより主記憶装置240から
SDR241へ取出されたオペランドの下位バイ
トが母線210及びポートAの下位側LOを通つ
て、Qバイトによつて指定されたレジスタ
(ALSRA=Q)の下位バイト位置に書込まれ
る。OP1レジスタ226の内容はIDR244に
も送られ、そこで増分された後、LSR書込みポー
トBを通つてOP1レジスタ226に書戻され
る。次にアドレス指定されるワード33Tは同様
にして上位バイトのロードを行う。ワード33T
はGOTO=00であるから、命令の実行が終る
と、状態はSEQH=0、SEQL=0に戻り、次の
命令の取出しが可能になる。 第4図〜第8図においては、説明の便宣上、
各々機能が別個のワードによつて独立して遂行さ
れるようになつているが、2以上の機能を同時に
遂行させることも可能である。例えば、直接アド
レス及び間接アドレスの取出し方は基本的には同
じであるから、論理323及び325を組合せる
ことによつて、複数のワードを同時にアドレス指
定することができる。指標付きモードアドレス及
び指標付き間接アドレスに計算につていても同じ
ことがいえるから、論理324及び325の組合
せも可能である。 第9図は単一命令を実行するためのマイクロコ
ード制御部300のオペレーシヨンを要約して示
したものである。丸印の中の数値はSEQH及び
SEQLによつて特定される状態を示し、矢印は状
態遷移を示している。下側に並んでいるのは、
各々の状態においてアドレス指定できるROSワ
ードである。特定の状態においては、一時に1つ
のワードだけがアドレス指定される。かつこ付き
のワードは、本発明の実施に直接関係するもので
ある。実際には、第9図に示した状態の間に本発
明と無関係の状態が挟まることになろう。 簡単に説明すると、状態00及び01において
は、命令のOPバイト又はPRバイトが取出され
る。PRバイトは状態01の間にワード334,
335によつて検出され、記録される。状態0
2,13,06及び07においては、命令自身に
よつて指定されたオペランドアドレスが取出され
る。状態02及び03は第1オペランドに関連
し、状態06及び07は第2オペランドに関連し
ている。ワード336〜33Aは直接モードのア
ドレス指定を制御し、ワード33B〜33Fは指
標付きモードのアドレス指定を制御する。状態C
0〜C3においては、実際のオペランドが取出さ
れる。もし命令の前にPRバイトが付いていなか
つたならば、状態C0及びC1はワード33R及
び33Tを使用し、それが終ると次の命令に進
む。PRバイトが付いていれば、状態C0〜C3
においてワード33J〜33Nがアドレス指定さ
れる。これらのワードは、オペランドアドレスを
用いて間接アドレスを取出し、命令ストリームか
らINバイトを取出し、それらを加算して新しい
オペランドアドレスを生成する。状態C0〜C3
のサイクルはPRバイト毎に繰返される。それが
終ると、状態C0及びC1においてワード33R
及び33Tを用いることにより、命令が実行され
る。
【図面の簡単な説明】
第1a図及び第1b図はアドレス指定の様子を
示すブロツク図。第2図は第2a図及び第2b図
のつながりを示すブロツク図。第2a図及び第2
b図は本発明を実施し得るプロセツサの概略を示
すブロツク図。第3図乃至第8図制御ユニツト3
00の詳細を示すブロツク図。第9図は制御ユニ
ツト300のオペレーシヨンを要約した状態遷移
図。

Claims (1)

    【特許請求の範囲】
  1. 1 命令ストリームにおいて指標付き間接アドレ
    ス指定が行われる命令に対し、有効OPコードか
    ら区別できる特別の接頭コードを1つ以上付加し
    ておき、該接頭コードの検出に応答して前記命令
    によつて指定されたオペランドアドレスを用いて
    記憶装置から第2のオペランドアドレスを取出
    し、該第2のオペランドアドレスを所定の指標値
    で修正し、検出された接頭コードの数だけオペラ
    ンドアドレスの取出し及び修正を繰返して最後に
    得られたオペランドアドレスで命令オペランドを
    アドレス指定し、前記接頭コードが検出されるこ
    となく命令の有効OPコードが検出された場合に
    は該命令によつて指定されたオペランドをアドレ
    スで命令オペランドをアドレス指定することを特
    徴とする命令オペランドアドレス指定方法。
JP58180866A 1982-12-02 1983-09-30 命令オペランドのアドレス指定方法 Granted JPS59105150A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US06/446,132 US4531200A (en) 1982-12-02 1982-12-02 Indexed-indirect addressing using prefix codes
US446132 2003-05-28

Publications (2)

Publication Number Publication Date
JPS59105150A JPS59105150A (ja) 1984-06-18
JPS6150337B2 true JPS6150337B2 (ja) 1986-11-04

Family

ID=23771432

Family Applications (1)

Application Number Title Priority Date Filing Date
JP58180866A Granted JPS59105150A (ja) 1982-12-02 1983-09-30 命令オペランドのアドレス指定方法

Country Status (5)

Country Link
US (1) US4531200A (ja)
EP (1) EP0113398B1 (ja)
JP (1) JPS59105150A (ja)
CA (1) CA1201534A (ja)
DE (1) DE3379921D1 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AT379893B (de) * 1984-07-03 1986-03-10 R S F Elektronik Ohg Rechtsfor Verfahren zur digitalen elektrischen laengenoder winkelmessung und schaltungsanordnung zur durchfuehrung dieses verfahrens
JPS61148551A (ja) * 1984-12-24 1986-07-07 Hitachi Ltd アドレス変換方式
US4935867A (en) * 1986-03-04 1990-06-19 Advanced Micro Devices, Inc. Signal processor memory management unit with indirect addressing using selectable offsets and modulo values for indexed address calculations
JP2902402B2 (ja) * 1987-09-30 1999-06-07 三菱電機株式会社 データ処理装置
KR920006283B1 (ko) * 1988-02-19 1992-08-03 미쯔비시덴끼 가부시끼가이샤 디지탈신호 처리방식
IT1216087B (it) * 1988-03-15 1990-02-22 Honeywell Bull Spa Sistema di memoria con selezione predittiva di modulo.
US5303358A (en) * 1990-01-26 1994-04-12 Apple Computer, Inc. Prefix instruction for modification of a subsequent instruction
DE69325207T2 (de) * 1992-06-15 1999-12-09 Koninklijke Philips Electronics N.V., Eindhoven Prozessor zur Verarbeitung zeitdiskreter Signale
US5406279A (en) * 1992-09-02 1995-04-11 Cirrus Logic, Inc. General purpose, hash-based technique for single-pass lossless data compression
US5386534A (en) * 1992-10-27 1995-01-31 Motorola, Inc. Data processing system for generating symmetrical range of addresses of instructing-address-value with the use of inverting sign value
US5537629A (en) * 1994-03-01 1996-07-16 Intel Corporation Decoder for single cycle decoding of single prefixes in variable length instructions
JPH07281890A (ja) * 1994-04-06 1995-10-27 Mitsubishi Electric Corp 命令セット及びそのマイクロコンピュータによる実行方法
WO1997022922A1 (en) * 1995-12-15 1997-06-26 Intel Corporation Instruction encoding techniques for microcontroller architecture
EP1160662A1 (en) * 2000-03-10 2001-12-05 Texas Instruments France Processor with pointer tracking to eliminate redundant memory fetches
US20100153335A1 (en) * 2008-12-12 2010-06-17 Microsoft Corporation Synchronizing multiple classes with disparate schemas in the same collection

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3366932A (en) * 1965-04-14 1968-01-30 Gen Electric Address development apparatus for a data processing system
US3975623A (en) * 1974-12-30 1976-08-17 Ibm Corporation Logic array with multiple readout tables
US3988717A (en) * 1975-08-06 1976-10-26 Litton Systems, Inc. General purpose computer or logic chip and system
JPS54100634A (en) * 1978-01-26 1979-08-08 Toshiba Corp Computer
US4363091A (en) * 1978-01-31 1982-12-07 Intel Corporation Extended address, single and multiple bit microprocessor
US4459666A (en) * 1979-09-24 1984-07-10 Control Data Corporation Plural microcode control memory
US4399505A (en) * 1981-02-06 1983-08-16 Data General Corporaton External microcode operation in a multi-level microprocessor

Also Published As

Publication number Publication date
EP0113398A3 (en) 1987-01-28
US4531200A (en) 1985-07-23
EP0113398A2 (en) 1984-07-18
EP0113398B1 (en) 1989-05-24
JPS59105150A (ja) 1984-06-18
DE3379921D1 (en) 1989-06-29
CA1201534A (en) 1986-03-04

Similar Documents

Publication Publication Date Title
EP0114304B1 (en) Vector processing hardware assist and method
US4212076A (en) Digital computer structure providing arithmetic and boolean logic operations, the latter controlling the former
US4398244A (en) Interruptible microprogram sequencing unit and microprogrammed apparatus utilizing same
US5487159A (en) System for processing shift, mask, and merge operations in one instruction
JPS6150337B2 (ja)
US4179731A (en) Microprogrammed control system
EP0491693B1 (en) Improved cpu pipeline having register file bypass on update/access address compare
US3958221A (en) Method and apparatus for locating effective operand of an instruction
EP0126247B1 (en) Computer system
JPS63226732A (ja) シーケンサ回路
EP0167959B1 (en) Computer vector register processing
US5867696A (en) Saving a program counter value as the return address in an arbitrary general purpose register
EP0240606B1 (en) Pipe-line processing system and microprocessor using the system
US5293499A (en) Apparatus for executing a RISC store and RI instruction pair in two clock cycles
KR950009687B1 (ko) 프로그램어블 로직 콘트롤러용 고속 래더명령 처리장치
JPH031231A (ja) マイクロプログラム制御装置
US5390358A (en) Arithmetic unit that requires only one byte instructions
JPS62263536A (ja) コンピユ−タの動作改善方法
EP0230038A2 (en) Address generation system
US4807124A (en) Register addressing system for efficient microroutine sharing and optimization
JPH0447851B2 (ja)
JP2671161B2 (ja) レジスタ干渉チェック方式
JPH0330171B2 (ja)
JP2601055B2 (ja) マイクロプログラム・シーケンサ
JPH10312279A (ja) ビット検索回路およびこれを有するマイクロプロセッサ