JPH01137331A - 制御ワード分岐方法 - Google Patents

制御ワード分岐方法

Info

Publication number
JPH01137331A
JPH01137331A JP63204851A JP20485188A JPH01137331A JP H01137331 A JPH01137331 A JP H01137331A JP 63204851 A JP63204851 A JP 63204851A JP 20485188 A JP20485188 A JP 20485188A JP H01137331 A JPH01137331 A JP H01137331A
Authority
JP
Japan
Prior art keywords
operand
register
byte
control word
bytes
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
JP63204851A
Other languages
English (en)
Inventor
Vi Chau
ヴアイ・チヤウ
Harold E Frye
ハルロド・ユージン・フライ
Mark R Funk
マーク・ロバート・フアンク
Lynn A Mcmahon
リン・アレン・マクマーホン
Bruce R Petz
ブラース・ラルフ・ペツ
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 JPH01137331A publication Critical patent/JPH01137331A/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/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/262Arrangements for next microinstruction selection
    • G06F9/264Microinstruction selection based on results of processing
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30061Multi-way branch instructions, e.g. CASE

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

【発明の詳細な説明】 A、産業上の利用分野 本発明はデータ処理システムに関するものであり、また
特にレフト・ツー・ライト命令(即ち、可変長オペラン
ドが低記憶アドレスから高記憶アドレスへと処理される
か、またはそれと同様の処理。アドレスを横方向にみる
と、各オペランドは左から右へ処理され、従ってこの名
がある。)によって主記憶装置においてデータを処理す
るための方法及び装置に関するものであり、この中では
レフト・ツー・ライト命令を実行するためのマイクロコ
ードが(1)オペランドの長さ、(2)その境界合せに
基づいて分岐を実行する。
B1発明の背景及び従来の技術 本発明は、マイクロプログラム制御のコンピュータない
しデータ処理システムに関するものである。
これらのコンピュータは、最少のハードウェア制御を利
用する。マイクロプログラム制御コンピュータの制御は
主として、データをレジスタ、カウンタ、加算器等に転
送し又はこれからデータを転送するデータ・ゲートであ
る。このシステムにおいて、1命令(プログラム命令、
マイクロコード、マイクロ命令、あるいは制御ワード)
は、1マシン・サイクルのためのデータ・ゲート及び制
御を与える。新しい命令は、各マシン(CPUあるいは
システム)サイクル中に制御記憶装置から読み出される
各命令は、いくつかの制御フィールドに分けられる。各
制御フィールドは、システム内の特定のハードウェア制
御を作動させる。
これらの制御フィールドの1つは次のプログラム命令の
アドレスに関係する(そして少なくとも部分的に定める
)ものである。分岐する状況においては、現在の命令の
制御フィールドが、他のデータと結合して、次の命令の
アドレスを形成、即ち定めるのに利用される。このケー
スにおいては、ブランチアドレスは上記の他のデータに
依存するものである。
本発明はレフト・ツー・ライト命令が実行されている時
に起りつるプログラム分岐に関係するものであり、プロ
グラム分岐ではブランチアドレスが本発明に従い2つの
データエレメント、即ち(1)レフト・ツー・ライト命
令に関係するデータ・オペランドの長さ、及び(2)主
データ記憶装置とインターフェイスする2以上のレジス
タに今あるオペランドの部分の境界合せによって定めら
れる0条件付ブランチは、データ処理技術において良く
知られている。幾つかの例は、次の通りである。
米国特許第3570006号は、予め定められた複数の
ブランチアドレスが複数のブランチアドレス・レジスタ
において予め設定される多重分岐を説明している。プロ
グラムが実行される時、分岐条件が検査される。検査条
件が満たされる場合には、この事実が複数のフリップ・
フロップの内の特定の1つに記憶される。フリップ・フ
ロップのスキャンは、予め定められたプログラム・ブラ
ンチアドレスを用いて記憶装置をアドレス指定するのを
可能にする。
米国特許3979725号は、多方向プログラム分岐の
ための仕組みを開示しており、多方向プログラム分岐に
おいては、ブランチアドレスがレジスタの中のデータ内
容に一部基づいている。より詳しく言うと、16のFR
OMが4つのPFtOMからなる4グループに配列され
る。現在実行されている16ビツトの命令の中の2ビツ
トは、PROMをアドレス指定するために使われる。分
岐条件が生じた時に、上記命令の他の2ビツトは、アド
レス指定されたPROMの出力と結合し、次の命令をア
ドレス指定するのに用いられる。アドレス指定されたP
ROMの出力は、レジスタ内のデータに関係する。
米国特許4430706号は、プログラムが実行された
最後の時にプログラムが分岐したかどうかに基づいて、
次のプログラムアドレス、あるいはその代わりにブラン
チアドレスをロードする仕組みを開示している。
従来のIBMシステム38データ処理システムの関連部
分を第2図に示す。この従来システムは、レフト・ツー
・ライト命令を実行する時に1方式の分岐を与える。
このシステムは、rlBMシステム/38理論/メンテ
ナンス・マニュアルJ (IBM System/38
Theory−Maintenance manual
) S Y 31 0649−2の中で説明されている
システム38処理システムは、主記憶装置10の連続す
るバイト整合記憶位置にある多重バイトデータの列を処
理するシステムの典型である。
このデータ処理システムがレフト・ツー・ライト命令を
実行する時、(1)処理すべき状態にあるデータ・オペ
ランドの部分のバイト長、並びに、(2)主記憶装置1
0とインターフェースする2つのレジスタSA及びSH
の中のオペランド部分(オペランド全体である可能性も
ある)の境界合せに基づき、4方向マイクロコ一ド分岐
が可能である。バイト長パラメータは、8ビツトレジス
タLに含まれている。レジスタSA及びSBの各々につ
いての境界合せパラメータは、2ビツトレジスタA及び
Bにそれぞれ含まれている。
システム38のアーキテクチャは、主記憶装置10に記
憶されたデータを処理する1組のレフト・ツー・ライト
命令をサポートする。第2図に示されるように、主記憶
装置10は1ワード(即ち、4バイトつまり32ビツト
)の幅である。レフト・ツー・ライト命令を実行する時
、主記憶装置10の中のデータは、11の如き低記憶ア
ドレスから12の如き高記憶アドレスに向かって処理さ
れる。
システム38のレフト・ツー・ライト命令の例を以下に
あげる。Move Characters (M V 
C)、Compare Logical Charac
ters (CL C) 、AndCharacter
  (N C)、 Or Character  (O
C)、Exclusive Or Character
  (X C)、Move ByteImmediat
e And Propagate  (M V B I
 P )、MoveCharacter Long  
(M V CL L及びCompareLogical
 Characters Long (CL CL L
レフト・ツー・ライト形態の命令は、プログラマ−によ
って良く利用される。
このシステムの限界は、このシステムが概して、各マシ
ン・サイクルについて1バイトのデータしか処理できな
いことである。データの境界合せと長さが許せば、2バ
イト、あるいは移動命令については4バイトを同時に処
理することができるが、しかしこの可能性を見出し活用
するためには追加のマシン・サイクル及び、マイクロコ
ードが必要とされ、従ってそうすることの有益性を制限
する。
システム38のレフト・ツー・ライト命令の各々におい
て、命令は、(1)オペランドの最初のバイトを見つけ
ることができる主記憶装置10におけるアドレス、(2
)主記憶装置10から取り出すべきオペランドのバイト
長、及び(3)特定されたアドレス(即ち、オペランド
が主記憶装置10のアドレス指定された記憶位置におい
て開始するバイト境界13.14.15、あるいは16
)に記憶されるフルデータワード内のオペランドの最初
のバイトを指示するポインタを含む。
オペランドのバイト長は最大限256バイトまでの任意
の整数値を取りつる。命令によって定められたオペラン
ドは、主記憶装置10の何れのアドレスにも存在するこ
とが可能で、その最初のバイトは何れのバイト境界13
.14.15、あるいは16とも位置合せされる(即ち
、オペランドの最初のバイトは11あるいは12のよう
な任意のアドレスにおいて、また主記憶装置10のアド
レス指定されたフルワード内の任意のバイト境界におい
て開始することができる)。境界13はフルワード(F
W)境界と呼ばれ、一方境界15はハーフワード(HW
)境界と呼ばれる。
システム38の主データ母線(示されていない)は、4
バイト幅である。
主記憶装置インターフェース・レジスタSA及びSBは
、双方とも32ビツト(4バイト即ちFW)幅である。
レジスタSA及びSHの各々には、2ビツトのポインタ
・レジスタA、Bがそれぞれ与えられる。第2図に示す
ように、レジスタAが「00」を含む時、レジスタAは
レジスタSAのバイト0を指示し、レジスタAが「01
」を含む時、レジスタAは、レジスタSAのバイト1を
指示する。これと同じ間係は、レジスタSB及びポイン
タBの間にも存在する。1サイクル毎に1バイトずつデ
ータが処理されていくにつれて、レジスタA及びBは、
各サイクルについて「1」だけ増分され、またレジスタ
しは各サイクルについて「1」だけ減分される。
レジスタSA及びSHの1つ(又は双方)に対応するポ
インタ・レジスタがカウント「11」に達すると(且つ
8ピツトのしレジスタがrooooooooJでないと
仮定すると)、それは当該レジスタのFW内容を記憶し
なければならないということ、及び主記憶装置10の次
に高いアドレスのFW内容を取出し、当該レジスタにロ
ードしなければならないということを示す。
上述したマニュアルの頁05−070で最初に説明され
ているように、マイクロ命令に含まれるデータの一部は
、次のマイクロ命令のための制御記憶アドレスの一部を
作りだすのに利用される。
レフト・ツー・ライト命令の場合において、この次のマ
イクロ命令は、4つの可能なマイクロ命令の1つであり
うる。
システム38の各レフト・ツー・ライト命令は、「次ア
ドレス」と呼ばれるフィールドを含む。このフィールド
は、ポインタ・レジスタA及びB並びに長さレジスタし
く第2図)の状態の如き条件と結合して、次のマイクロ
命令のアドレスを与える。この仕組みにおいて、4方向
(4ウエイ)のレフト・ツー・ライト命令分岐は、サイ
クルの始めのレジスタA、B及びLの状態によって制御
される。
システム38においては、上記のレジスタA、B及びL
が変更され且つ次のマイクロ命令のアドレスが決定され
るのと同一のサイクルにおいてマイクロ命令を実行する
ことができる。更に、レジスタSA又はSBは、同じサ
イクルにおいて転送元及び転送先として利用することが
できる。従って、サイクルはこれらの機能を果たすため
にスキップされない。
次の命令のアドレスは、現在命令を実行しているサイク
ルにおいて早期に作り出される。これは、次の命令の呼
出しが現在のサイクルにおいて出来るだけ速やかに開始
されるのを可能にする。
記載したように、レジスタしは、主記憶装置10から読
み出されてレフト・ツー・ライト命令によって演算され
ることになるオペランドのバイト長を最初ロードされる
。このバイト長は、レフト・ツー・ライト命令自身に含
まれる。前に述べたように、この長さパラメータは25
6バイトの長さを取りつる。レジスタLの内容に1を加
えた値が実際の長さを表わす。従って、レジスタLの内
容が0であれば長さは1(バイト)である。
オペランドのバイトがレフト・ツー・ライト命令によっ
て処理される時、レジスタLの内容は処理される各バイ
トについて1囲域分される。マイクロ命令のスタート時
点でレジスタLの内容がO1即ちroooooooOJ
になる時、それはマイクロ命令がオペランドの最後のバ
イトを処理したという表示であり、またレフト・ツー・
ライト命令が完了したという表示である。L=0は一般
的には、1バイトが残っているということを示している
。バイトが処理され、Lがサイクルの始めに0であった
場合、それは全てのバイトが処理されたという表示であ
る。
より詳しく言うと、レジスタLのテストでrooooo
oooJという状態の存在が検出されると、アドレス・
ビット「1」を次のマイクロ命令のアドレス・ビット1
2として発生させる。
次のマイクロ命令のアドレス・ビット13はレジスタA
及びBをテストすることによって作り出される。これら
の2つのアドレス・ビットの4つの可能な状態は「00
」、「01」、「10」、あるいは「11」である。こ
れらの4つの状態は、可能な4つのマイクロコード分岐
のどれが発生するかを決定する。
要約すると、「次アドレス」のこれらの2つのビットが
(レジスタSA/SBの最後のバイトがアクセスされた
こと、及び最後のオペランド・バイトが処理されたこと
を示す)rllJ、あるいは(レジスタSA/SBの最
後のバイトが処理されていないこと、及び最後のオペラ
ンド・バイトが処理されたことを示す)rolJである
場合、レフト・ツー・ライト命令の終了が示され、次の
プログラム命令が取り出される。
これらの2つのアドレス・ビットの内容が(レジスタS
A/SHの最後のバイトが処理されていないこと、及び
オペランドの最後のバイトが処理されていないことを示
す)「00」であれば、レジスタSA/SHの中の次の
バイトが処理される。
これらの2つのアドレス・ビットの内容が(レジスタS
A/SHの最後のバイトが処理されたこと、及び処理す
べきオペランドのバイトが残っていることを示す)rl
OJである場合、主記憶装置10の次に高いアドレスの
FWデータ内容がレジスタSA/SBへ取り出されるか
、又はその逆方向の書き込みが行われる。いくつかのケ
ースにおいて、取り出すか書き込むかを決定するための
追加サイクルが要求される。
C6発明が解決しようとする課題 システム38のような従来システムは満足のいくもので
はあるが、本発明は、より効率的な16ウエイの分岐を
提供し、レフト・ツー・ライト命令を実行する時に処理
装置ハードウェアの一層効率的な利用をもたらし、それ
によってレフト・ツー・ライト命令を実行するのに要求
される処理装置サイクルの数を減らすものである。
従来のシステム38と本発明の重要な差異は、システム
38の長さレジスタLが通常、オペランドの一部が未だ
処理されていないかどうかを決定するためにのみ用いら
れており、ワード全体が処理すべき状態にあるというこ
とを示す分岐を除いて、未だ処理されていないバイトの
数はシステム38においては分岐パラメータとして利用
されなかった、ということである。
システム38で利用できる分岐では、最適な数のバイト
が次のサイクルで処理できるように、残る長さとオペラ
ンドの境界合せの組合せを1回のサイクルで分析するこ
とはできない。
01課題を解決するための手段 本発明は、複数バイトのオペランド及び該オペランドを
処理するための制御ワードを記憶する記憶手段と、該記
憶手段に接続されたレジスタとを有するデータ処理シス
テムにおいて、レジスタ中でのオペランド・バイトの境
界合せ(アラインメント)及び処理すべき残りのオペラ
ンド・バイトの数に応じて、次に実行すべき制御ワード
を決めることを特徴にしている。
通常のデータ処理システムでは、オペランドはレフト・
ツー・ライト命令を含む多数のプログラム命令と共に主
記憶装置に記憶され、これらのプログラム命令を実行す
るための制御ワードは制御記憶装置に記憶される。上述
のレジスタは主記憶装置に接続される。データ処理シス
テムの処理幅をXバイトとすると、このレジスタの幅も
Xバイトである。言い換えれば、制御ワードが1サイク
ルで処理できる最大のバイト数はXである。レフト・ツ
ー・ライト命令では、処理すべきオペランドの長さがX
バイトを越える場合があるが、本発明はこのような可変
長オペランドの処理に有効である。
本発明の分岐方法は、主記憶装置からレジスタに取り出
されたオペランド・バイトの境界合せと(後述の実施例
ではX=8であり、従って1〜8バイトの境界合せが指
示される)、処理すべき残りのオペランド・バイトの数
とに応じて、各サイクルで処理可能なバイト数が最大に
なるように、複数の制御ワードのうちの1つを選択する
ものであり、かくして処理効率が改善される。
E、実施例 本発明は、マイクロプログラム制御データ処理システム
に開運して説明される。マイクロプログラム制御の概念
は、1マイクロ命令(命令又は制御ワード)が1システ
ム(CPU又はマシン)サイクルについてのデータ・ゲ
ート及び制御を与える、ということである、新しい制御
ワードは、各マシン・サイクル中に制御記憶装置から読
み出される。
各制御ワードは、幾つかの制御フィールドに分割されて
いる。これらの制御フィールドは、CPUサイクル中に
要求される機能を果たすために用いられる。例えば、あ
る制御ワードは、入力ゲート、ALU制御、あるいはオ
ペランド取り出しの如き、システムにおける特定のハー
ドウェア制御を作動させることができる。
これらの制御ワードは、制御記憶装置に含まれており、
しばしば水平マイクロコード(HMC)と呼ばれる。レ
フト・ツー・ライト命令の如きプログラム命令は、主記
憶装置の中に含まれる。
新しい命令は、マシン・サイクル毎に制御記憶装置から
読み出される。1つの命令に含まれるデータの一部(ア
ドレス・フィールド)は、次の命令の制御記憶アドレス
を作るために用いられる。ある命令に含まれるアドレス
・フィールドを修正して、それによって分岐条件を作る
ことができる。
従って、分岐条件は、(1)現命令のアドレス・フィー
ルド、及び(2)前にテストされているデータ依存条件
に基づいて決定される。
別の言い方をすれば、ある1つのマシン・サイクルにお
いて、CPUは、現マイクロ命令を実行し、次マイクロ
命令を取り出す際に用いられる制御記憶アドレスを生成
し、その命令を取り出す。
第5図は、本発明の基本概念を理解するのに役立つ。こ
の図において、データ処理システムの主記憶装置は50
に示されており、その制御記憶装置は51に示されてい
る。プログラム命令は、主記憶装置50に含まれる。制
御ワードは、制御記憶装置51に含まれる。
52に示されているのがレフト・ツー・ライト命令であ
る。この命令52は、数多くのレフト・ツー・ライト命
令の一例として示したもので、転送元及び転送先の双方
を含んでいる。より詳しく言うと、命令52はOPコー
ド・フィールド53、長さ(L)フィールド54、並び
に転送先オペランド及び転送元オペランドの主記憶アド
レスを含む2つのフィールド55及び56を含む。フィ
ールド53は、この特定のレフト・ツー・ライト命令の
識別子を含む。例えば、フィールド53は移動命令Mo
ve Characters (M V C)でありう
る。
フィールド54は、バイトで表されたオペランドの長さ
を含んでいる。フィールド55及び56は、主記憶装置
50における転送先オペランド及び転送元オペランドの
アドレスを指示する。フィールド53は、制御記憶装置
51における特定の制御ワード57をアドレス指定する
のに用いられる。
この制御ワード(CW)57は実行され、次に実行され
ることになる制御ワードとしてもう1つの制御ワード(
CW)58を指示する。命令52はレフト・ツー・ライ
ト命令であるので、制御ワードの1つ59は本発明のM
BR機能を指示することになる。MBRは、本発明の手
順を生じさせるマイクロコード分岐指令である。この制
御ワードに出会うと、制御ワードの処理は、本発明の分
岐構造60に入る。入り方は、(1)処理すべき残りの
オペランドの長さ、及び(2)主記憶装置50とインタ
ーフェースするオペランド記憶レジスタにおけるオペラ
ンド境界合せに基づく。
第5図に示すように、分岐構造6oを構成する制御ワー
ドは、MBRを指定する61の如き制御ワードを含む。
61のような制御ワードの実行は、当該制御ワード(矢
62)を再び処理させるが、あるいは別の制御ワード(
矢63)の実行を生じさせることができる。  。
レフト・ツー・ライト命令52の処理が完了する時、6
4のところに示した制御ワードと出会う。
その結果、オペランドの最後のバイトは、命令52にお
いて指定された転送先アドレスに記憶され、別のプログ
ラム命令が主記憶装置5oがら取り出される。
1つの例として、また本発明に基づき、8バイト幅のデ
ータ母線を持つデータ処理システムの最後の2サイクル
は(オペランドの6バイトが処理すべき状態にあると仮
定し、また6バイトの全てが1つのレジスタにあると仮
定すると)、(1)1サイクルでオペランドの2つのバ
イトを処理すること、及び(2)最後の1サイクルでオ
ペランドの4つのバイトを処理し、転送先アドレスへ記
憶し、終了すること、を含む。
本発明に基づくダブルワード(DW)アーキテクチャの
データ処理システムは、第1図に示されている。このシ
ステムは64ビット幅、即ちダブルワード(DW)幅で
ある主記憶母線を含む、同じ<DW幅である1対の内部
処理装置記憶レジスタSA’及びSB’が提供されてい
る。3ピツトのポインタ・レジスタA°及びBoは、レ
ジスタSA’及びSB’の各々と関連している。ポイン
タ・レジスタの内容は、関連する記憶レジスタにおける
8バイトのうちの1つを指示する。
レフト・ツー・ライト命令によって処理されるオペラン
ドのバイト長を指定するために、8ピツトのL”レジス
タが与えられる。8バイト幅の主データ母線(示されて
いない)も与えられている。
レフト・ツー・ライト命令が実行される時、主記憶装置
からレジスタSA”又はSB’への全てのデータ取り出
しは、DW幅である。
上述したレジスタSA”及びSB’を含む本発明の処理
装置は、レフト・ツー・ライト命令の実行の際に補助す
るフルワード(FW)、ハーフワード(HW)、及びバ
イト・データフロー経路を持つ。即ち、(1)SA”又
はSB’における境界合せされたFWからSA’又はS
B”における境界合せされたFWへのFW移動(これは
FWレジスタ・ネームによって直接、あるいはA°レジ
スタまたはB°レジスタの使用によって間接的に指定す
ることができる)、(2)A”又はB°レジスタによっ
てそれぞれ指示される如く、レジスタSA’又はSB’
におけるバイト境界合せHWからSA’又はSB’にお
けるバイト境界合せHWへのHW移動及びALU演算、
並びに(3)レジスタA°又はBoによってそれぞれ指
示される如く、レジスタSA”又はSB’中のバイトか
らのバイト移動及びALU演算である。
更に、第1図の処理装置は、レジスタSA’又はSB’
の元の内容が移動又はALU演算における転送元又は転
送先として用いられるサイクルと同じサイクルで、レジ
スタSA”又はSB”への取出し及びレジスタSA”又
はSB’からの記憶が始まることができるように構成さ
れている。
処理装置の性能の向上という結果に結びつく、これらの
データフロー経路の効率的な利用は本発明の文字移動分
岐(MBFL)により可能となる。
MBRはレフト・ツー・ライト命令の処理中、L°レジ
スタの内容、並びにへ゛レジスタ及びB゛レジスタよっ
て定められるオペランドの境界合せの利用によって、1
6個の制御ワードの何れを次に用いるべきかを各処理装
置サイクルで繰り返し決定するマイクロコード分岐であ
る。
上記16個の制御ワードの各々は、1以上の制御ワード
・シーケンスの組において、利用可能なデータフローを
効率的に用いて所定量の各オペランドを処理する最初の
制御ワードである。
データ記憶装置100は、2ワ一ド幅(DW)である。
即ち、111及び112の如き各記憶位置は、8バイト
(64ビツト)のバイト境界合せデータを含む。データ
・オペランドは、バイト境界113.114.115.
116.117.118.119、あるいは120の何
れにおいても開始することができる。バイト境界113
は、またダブルワード(DW)境界と呼ばれ、バイト境
界117は、またフルワード(FW)境界と呼ばれる。
また、バイト境界115及び、119は、ハーフワード
(HW)境界とも呼ばれる。
第1図に示したアーキテクチャは、レフト・ツー・ライ
ト命令、即ち主記憶装置100を低記憶アドレスから高
記憶アドレスに向かって連続的にアクセスすることによ
ってオペランドが取り出される可変オペランドバイト長
の命令をサポートする。各レフト・ツー・ライト命令は
、(1)取り出すか又は記憶すべきオペランドの最初の
バイトの主記憶アドレス、(2)オペランドのバイト長
、及び(3)特定されたアドレスに記憶されているDW
内のオペランドの最初のバイトを指示するポインタ、を
定める。
オペランドのバイト長は、8ビツトのレジスタL°に記
憶される。本発明にとってそれほど重要ではないが、第
1図に示された実施例のオペランドは、最大256バイ
ト長であり得る。
主記憶レジスタSA”及びSB’は、それぞれDW幅、
即ち8バイト幅である。レジスタSA’及びSB’には
、3ビツトのポインタ・レジスタA°及びBoがそれぞ
れ与えられている。第1図に示すように、レジスタA°
がroooJを含む時、レジスタA°はレジスタSA’
におけるバイト0を指示し、レジスタA°がrooIJ
を含む時、レジスタA°はレジスタSA”におけるバイ
ト1を指示する。これと同じ関係は、レジスタSB”及
びそのバイトポインタ・レジスタB°との間にも存在す
る。
レフト・ツー・ライト命令は境界合せレジスタA°及び
Boの内容、並びにオペランド長さレジスタL°の内容
によって決定され、16ウエイの分岐を通して実行する
ことができる。オペランドは、16ウ工イ分岐命令によ
って、(1)−度に1バイト、(2)−度に2バイト(
HW)、(3)−度に4バイト(FW)、あるいは(4
)−度に8バイト(DW)処理することができる。
レフト・ツー・ライト命令を実行する16ウエイの分岐
を用いてオペランドが上記の如く処理される時、レジス
タA°及びBoは、その時に実行されている制御ワード
によって処理されるバイトの数に相当する数だけ増分さ
れる。更に、レジスタA°及びBoは、この制御ワード
が実行されている時にこれらの新しい値に設定される。
更に、16ウエイの分岐を含む制御ワードが実行されて
いる時、L°レジスタは当該分岐命令によって処理され
ているバイトの数と同じ数だけ減分されている。
このように、レジスタA′、Bo及びLoの内容は、レ
フト・ツー・ライト命令の実行の際に用いることになる
1つの制御ワード・シーケンスのアドレスを定めるのに
用いられる。
これは、文字移動分岐(MBR)と呼ばれる上述のマイ
クロコード分岐の利用によって成就される。
MBRがレフト・ツー・ライト命令を支援する制御ワー
ド内でブランチとして指定される時、実行すべき次の制
御ワードは、16の制御ワードの内の1つである。これ
らの16の分岐先の各々は、特定の分岐先制御ワードが
実行される前に満たされなければならない独自の条件を
持つ。更に、特定の分岐制御ワードの実行中、上述した
レジスタA゛、Bo及びLoは、更新され、MBR制御
ワードを含む次の制御ワードのアドレスを定める。
16の分岐波を定めるレジスタA′、Bo及びLoの1
6条件は、第1図に示す本発明の実施に関連して以下の
第1表に示されている(上記レジスタの内容は2進数で
あるが、この表の中では10進数で示されている)、L
o、Ao及びBoの値は、当該値が変えられたサイクル
の終りに存在する値であり、またこれらの値は実行すべ
き次の制御ワードのアドレスを決定するのに利用される
L°レジスタの内容は、処理すべき残りのすペランドパ
イトの数から1を引いた数と等しい。
Aルジスタ及びB°レジスタの内容は、それぞれ、SA
”レジスタ及びSB’レジスタに対するポインタである
0例えば、A°=0はSA’レジスタの中の8バイトの
最初のバイトを指示する(第3図参照のこと)。
第1表 分Malt!  −ぼ−    A’      B”
1    >7   0    0 2   3   0か4  0か4 3    >3   4    0 4    >3   4    4 5    >3   0    4 6  く7と〈3  0     0 7   1     <7    <78    >1
   6     <69    >1   6   
 6 10    >1    <6   611    2
      <6     <6〉1 1か2か3か5
<6 >1     <6  1か2か3か513     
>0    7      <714     >0 
   7     715     >0     <
7    7第1表に示された条件は、第3図にも示さ
れており、第3図におけるレジスタL°の内容は、Xバ
イト長のすベランドの最後の8バイトとして表されてい
る。つまり、rX−7Jから「X」までのバイトがオペ
ランドの最後の8バイトである。
第1表の中の分岐波番号12は、レジスタL。
の内容がrooooooooJである時、MBI’を分
岐プロセスを通じてのレフト・ツー・ライト命令の実行
が完了していることに示す。この場合において、A°レ
ジスタ及びB°レジスタの内容は、問題ではない。
制御ワードで遂行すべき機能は、要求された特定のレフ
ト・ツー・ライト命令に依存する。次の第2表は、レフ
ト・ツー・ライト命令の1つである移動命令(MMC)
のために、上述の16の分岐波によって行われる制御動
作を示す。
第2表 分挟皿覆号 OL’=7、A°=0、B°=0 の場合:SB’の中
の8バイトオペランドを転送先オペランドに記憶し、終
了する。
l   L’>7、A°=0、B°=0 の場合:SB
’の中の8バイトの転送元オペランドを転送先オペラン
ドに記憶する。この記憶の後、8バイトより多くの転送
元オペランドが残っている場合には、−度に8バイトず
つ移動し続ける0MBR分岐。
2   L”=3、A°=0又は4、B°=0又は4の
場合= 1サイクルの闇に、フルワードをSB’からS
A’に移動し、SA”からの記憶を開始し、そしてMV
C操作を終了する。
3  L“〉3、A°=4、B°=0 の場合:フルワ
ードをSB’からSA’に移動し、SA’からの記憶を
開始し、そして移動すべきバイトが8バイト未満の場合
には、オペランド1背景データをSA“に取り出す。
MBR分岐。
4   L’>3、A°=4、B°=4 の場合:フル
ワードをSB’からSA”に移、動し、SA’からの記
憶を開始し、転送元オペランドをSB’に取り出し、そ
して移動すべき残りのバイトが8バイト未満の場合には
、オペランド1背景データをSA’に取り出す。MBR
分岐。
5   L’>3、A°=0、B°=4 の場合:フル
ワードをSB’からSA’に移動し、転送元オペランド
をSB’に取り出す。MBR分岐。
6  7>L”>3、A°=0、B°=0 の場合: 
フルワード、それからハーフワード、そしてバイトをS
B’からSA’に移動し、バイト又はハーフワードの移
動と同じサイクルで、転送先オペランドへの記憶を開始
し、そして終了する。
7   L’=1、Ao〈7、Bo〈7 の場合:境界
合せされていない可能性のあるハーフワードをSB”か
らSA’に移動し、上記ハーフワード移動と同じサイク
ルで、転送先オペランドへの記憶を開始し、そして終了
する。
8  L’>1、A°=6、B9〈6 の場合:境界合
せされていない可能性のあるハーフワードなSB’から
SA’に移動し、上記ハーフワード移動と同じサイクル
で、転送先オペランドへの記憶を開始し、移動すべき残
りのバイトが8バイト未満の場合、オペランド1背景デ
ータをSA’に取り出す。
MBR分岐。
9   L’>1、A°=6、B°=6 の場合:ハー
フワードをSB’からSA“に移動し、ハーフワード移
動と同じサイクルで、転送先オペランドへの記憶を開始
し、転送元オペランドの次のダブルワードなSB’に取
り出し、そして移動すべき残りのバイトが8バイト未満
である場合には、オペランド1背景データをSA’に取
り出す。MBR分岐。
IQ  L’>1、Aoく6、B°=6 の場合:境界
合せされていない可能性のあるハーフワードをSB”か
らSA”に移動し、上記移動と同じサイクルで、転送元
オペランドの次のダブルワードのSB’への取り出しを
開始する。MBR分岐。
11  L”=2、Aoく6、B’<6;  又はLo
〉1、A°=1か2か3か5、 B’<6;  又は Lo〉1、Ao〈6、B°=1か2か3か5 の場合:
 境界合せされていない可能性のあるハーフワードをS
B’からSA’に移動する。MBR分岐。
12  L″=0 の場合: SB’の中の転送元オペランドの1バイトをSA’に移
動し、オペランド1への SA’の記憶を開始し、動作を終了する。
13  L”>O1A°=7、Bo〈7 の場合:SB
”の中の転送元オペランドの1バイトをSA’に移動し
、SA”のオペランド1への記憶を開始する。移動すべ
き残りのバイトが8バイト未満の場合には、オペランド
1背景データをSA’へ取り出す。MBR分岐。
14  L”>O5A゛=7、B°=7 の場合:SB
”の中の転送元オペランドの1バイトをSA’へ移動し
、上記移動と同じサイクルにおいて、転送元オペランド
の次のダブルワードのSB’への取り出しを開始し、S
A”のオペランド1への記憶を開始する。
移動すべき残りのバイトが8バイト未満である場合には
、オペランド1背景データをSA”へ取り出す0MBR
分岐。
l5  L’>OlAoく7、B°=7 の場合:SB
“の中の転送元オペランドの1バイトをSA’へ移動し
、上記移動と同じサイクルにおいて、転送元才へランド
の次のダブルワードのSB’への取り出しを開始する。
MBR分岐。
第6図は第1図のシステム・ハードウェアの連続する5
つの動作サイクルを示しており、この中で制御ワード7
0.71.72.73、及び74は、サイクル1.2.
3.4、及び5において連続的に実行される。
第6図のサイクル3において、第1図のシステム・ハー
ドウェアは、実行すべき次の制御ワード73を制御記憶
装置から取り出し、一方、現制御ワード72は、サイク
ル3の間に実行されている。
制御ワード73の内容は、サイクル4において処理され
るべきオペランドバイトの数を含んでいる。
サイクル4において制御記憶装置から取り出すべき次の
制御ワード74のアドレスは、サイクル3において非常
に早く決定される。これは、次のようになされる。
制御記憶装置から取り出すべき次の制御ワード74のア
ドレスは、本発明に従い、制御ワード73がサイクル4
において実行された後に存在する境界合せレジスタA°
及びBo並びに長さレジスタL゛の中の値に基づく。
しかしながら、制御ワード73は、サイクル3において
非常に早い段階で制御記憶装置から取り出されている。
従って、サイクル4において処理すべきバイトの数は、
サイクル3の非常に早い時点で判る。この値は、レジス
タA°、Bo及びLoの新しい内容が、サイクル4にお
いて制御ワード73t′実行した結果を反映するように
、レジスタA“、Bo及びL“の内容を変更するのに利
用される。
その結果、これらのレジスタの新しい内容は、サイクル
3において早い段階で制御ワード74のアドレスを決定
するために用いることができる。
このプロセスは、次のように要約することができる。所
与のサイクルNにおいて、(1)サイクルN+1の制御
ワードが制御記憶装置から取り出され、(2)サイクル
N+1の制御ワードのバイト処理内容が、該制御ワード
の実行から生じるAo、Bo及びLoの新しい値を計算
するために使われ、そして’(3)A’、Bo及びLo
のこれらの新しい値は、サイクルN+1において制御記
憶装置から取り出されることになる、またサイクルN+
2において実行されることになる制御ワードのアドレス
を決定するために使われる。
第1図のデータ処理システムのシステム・ハードウェア
は、MBR分岐を指定する制御ワードの実行中に次のM
BFL分岐において使われることになる制御記憶装置ア
ドレスビットを決定することによって、本発明のMBR
機能を果たす(初期設定指令が探知された時、CPUは
、レフト・ツー・ライト命令を処理するためのストリン
グの開始位置へ初期設定される −第6図の70を参照
のこと)。
これらの制御ワード・アドレスビットは、MBAR(移
動分岐レジスタ・アドレス)と呼ばれる4ビツトのレジ
スタ66に記憶される。このレジスタは、専らレフト・
ツー・ライト命令実行のため用いられる。
MBARレジスタ66は、ハードウェアがMBR分岐を
探知した時に制御記憶装置から取り出されることになる
16の制御ワードの内の1つの制御ワードのアドレスを
含む。次のMBRサイクルでの使用のだめMBARレジ
スタにロードされる値は、分岐条件が探知された時に決
定される。この状況において、(次のMBR分岐の前に
処理され、以下に定めるバイトの数に等しい)値MDは
、L°レジスタから減じられ、A°レジスタ及びB°レ
ジスタに加えられる A ’、Bo及びLoの中に見出
される値は、第3表において指定する分岐条件に照らし
てテストされる9条件が見つかれば、4ビツトの制御ワ
ードアドレスがMBARレジスタ66に記憶される。古
いMBAR値は、次のMBR命令を検索するために、制
御記憶装置のアドレスを指定するのに使われる。
本発明の16ウ工イMBR分岐は、第3表に示すように
MBARレジスタ66の内容に基づく。
MBARレジスタ66にロードされることになる値は、
分岐条件が決定される時に決定される。
初期設定されると、MBARはrooooJを含む(第
6図の70を参照のこと)。MDの値は、MBARの現
在の値によって決定され、MBR分岐後に処理されるバ
イトの数を示す。レジスタL°、Ao及びBoはこのバ
イト数に応じて変更される。この変更は、次のMBRマ
シン・サイクルにおいて処理されることになるオペラン
ド・ストリングの中のバイトの数を反映する。
ト■■〇−囚の寸O MBARデコードは、MBARが0,2.6.7又は、
12の場合には何ら重要ではない。というのは、次のM
BRブランチは、レフト・ツー・ライト命令の完了に結
び付き、またMBARにロードされた新しい値は、用い
られないからである。
第4図は、包括的な形で本発明を示している。
本発明を別のプログラム式データ処理システムに適用す
るためには、処理装置が多重分岐を行う能力を持たなけ
ればならない。即ち、次の命令は、定義された分岐構造
における複数の命令の何れかでありうる。処理装置は、
複数の条件に基づき分岐を行うことになる。
処理装置は、主記憶装置から取り出された、あるいは主
記憶装置に記憶されることになるデータを保持する2以
上の主記憶装置インターフェースレジスタ300及び3
01を持たなければならない。
ポインタ・レジスタ302及び303は、それぞれ記憶
レジスタ300及び301の各々に必要である。各ポイ
ンタ・レジスタは、対応する記憶レジスタの中のバイト
を指示する。更に、長さレジスタ304は処理すべき残
りのオペランド・ストリングのバイトの数を含む。
本発明を包括的に分析するために、以下の定義を使用す
る。
Xは、記憶レジスタ300及び301が保持するバイト
の数である。これは、当該システムの主記憶母線の幅で
もある。
Wは、ALUが1サイクルにおいて処理することができ
るバイトの数である。
X−Wは正の定数(即ち、記憶レジスタ300及び30
1はALU305と等しいか、あるいはそれより大きい
)であり、これらのレジスタのバイト幅とALL130
5のバイト幅との差を表わす。
D及びSはそれぞれ、ポインタ・レジスタ302及びポ
インタ・レジスタ303に含まれる数である。記憶レジ
スタ300及び301がレフト・ツー・ライト命令の転
送元又は転送先になり得ると仮定すると、S及びDは0
からX−1までの値を取る。X−1という値は、その時
に当該記憶レジスタにあるオペランド部分の最後のバイ
トが処理されようとしていることを示す(第4図を参照
のこと)。
Lは、長さレジスタ304に含まれる数、即ち、レフト
・ツー・ライト命令が実行される時に処理すべき残りの
オペランド・バイトの数である。Lは、0から所定の限
界値までの値を取りつる。
本発明の文字移動分岐(MBR)を実行するために、M
BRの如き特別のマイクロプログラム式分岐指令を定義
しなければならない。定義されたこの指令が制御ワード
(マイクロ命令)の中、例えばレフト・ツー・ライト命
令の中で指定される時、本発明の特別なストリング処理
が呼び出される。定義されたこの指令が指定されない時
、本発明のストリング処理は終了し、通常の処理が再開
される。
本発明の特別なストリング処理がバイト0で開始し、記
憶レジスタ300と301の双方における連続バイトに
わたって進行する(つまり、レフト・ツー・ライト命令
)と仮定すると、最後の分岐制御ワードによって処理さ
れるバイトの数と等しい数だけポインタ・レジスタ30
2及び303は増分され、長さレジスタ304は減分さ
れる。
本発明は、転送元オペランド及び転送先オペランドの開
始バイトの位置、並びに処理すべき残りのオペランドバ
イトの数に基づいて、記憶レジスタ300及び3.01
の中の幾つのバイトが分岐命令によって処理されること
になるかを決定する。
次のリストは、代表的なレフト・ツー・ライト命令(M
VC)についての本発明のオペレーションを示している
1  王=W、 5EX−W+1、D<X−W+1の場
合= Wバイトを処理し、終了する。
2   L>W%S<X−W%D<X−W  の場合:
記憶レジスタのWバイトを処理し、SとDt−Wだけ増
分し、Ltr:Wだけ減分し、続行する。
3   L>W%5=X−W、 D<X−W  の場合
:記憶レジスタのWバイトを処理し、X個の新バイトを
転送元レジスタに取り出し、SとD′f:Wだけ増分し
、LをWだけ減分し、続行する。
4   LAW%5=X−W、D=X−W  (7)場
合:記憶レジスタのWバイトを処理し、転送先レジスタ
の内容を転送先に記憶させ、X個の新バイトを記憶レジ
スタに取り出し、SとDをWだけ増分し、LをWだけ減
分し、続行する。
5   LAW%S<X−W、D=X−W  (7)場
合:記憶レジスタのWバイトを処理し、転送先レジスタ
の内容を転送先に記憶させ、SとDtr:Wだけ増分し
、Lt−Wだけ減分し、続行する。
6  L〉0.5EX−W、D>X−W  の場合:X
−Sバイト、X−Dバイト又はLバイト(何れか小さい
方)を処理し、処理したバイトの数だけSとDを増分し
且つLを減分し、新D=Oの場合には転送先レジスタの
内容を転送先に記憶させ、新L=Oで新S=0である場
合にはX個の新バイトを転送元レジスタに取り出し、続
行する。
7  L〉0.5=X−1、D<X−1(7)場合:記
憶レジスタの1バイト(最後のバイト)を処理し、Sと
Dを1だけ増分し、Lを1だけ減分し、新L=Oの場合
にはX個の新バイトを転送元レジスタに取り出し、続行
する。
8  L〉0.5=x−i、D=X−1の場合:記憶レ
ジスタの1バイト(最後のバイト)を処理し、転送先レ
ジスタの内容を転送先に記憶させ、SとDを1だけ増分
し、Lを1だけ減分し、新L=Oの場合にはX個の新バ
イトを転送元レジスタに取り出し、続行する。
9  L〉0、S<X−1、D=X−1の場合:記憶レ
ジスタの1バイト(最後のバイト)を処理し、転送先レ
ジスタの内容を転送先に記憶させ、SとDを1だけ増分
し、Lを1だけ減分し、続行する。
10  L=Oの場合: 終了する。
このリストの項目の各々は多重分岐における1つの分岐
波を表し、また各項目は加算、比較、取出し、又は記憶
の如き動作を行う1つの制御ワード又は制御ワード・グ
ループを表す。「続行」を指示する各制御ワード又は制
御ワード・グループの最後の制御ワードは特別の分岐指
令を指定してオペランドのストリング処理を続行し、一
方「終了」を指示するものはストリング処理を続行させ
るこの特別指令を指定しない。
上記の説明の中で、本発明のMBR分岐命令は第1表に
示されている。本発明は、第1図に示す特別のアーキテ
クチャについて説明されてきた。
本発明は、第4図の一般的アーキテクチャについても説
明されてきた。これらの説明は双方とも、代表的なレフ
ト・ツー・ライト命令(MVC)についてである。従っ
て、当業者は、どのようなハードウェア構成が係わって
いても、本発明を他のレフト・ツー・ライト命令に容易
に適用することができよう。
本発明は、バイト境界合せされたバイト・ストリングを
転送元記憶位置から同じ長さの転送先記憶位置へ移動す
ることを例にとって説明されているが、本発明は、記憶
された少なくとも1つのオペランドをある記憶アドレス
から別の記憶アドレスへ処理する他の命令にも適用でき
ることは明らかである。
【図面の簡単な説明】
第1図は、ダブルワード(DW)アーキテクチャを持つ
データ処理システムに本発明を適用した例を示すブロッ
ク図である。 第2図は、先行技術である18Mシステム38データ処
理システムの関連部分を示すブロック図である。 第3図は、第1表に示す情報のブロック図である。 第4図は、本発明の包括的に示すブロック図である。 第5図は、主記憶装置及び制御記憶装置を持つデータ処
理システムのブロック図である。 第6図は、本発明が1サイクルの中で、(1)制御ワー
ドを実行し、(2)次のサイクルの制御ワードを取り出
し、且つ(3)次のサイクルにおいて取り出されること
となる制御ワードのための制御記憶アドレスを決定する
方法を示す図である。 出願人  インターナショナル・ビジネス・マシーンズ
・コーポレーション 代理人  弁理士  頓  宮  孝  −(外1名) 第6図

Claims (1)

  1. 【特許請求の範囲】 複数バイトのオペランド及び該オペランドを処理するた
    めの制御ワードを記憶する記憶手段と、該記憶手段に接
    続されたレジスタとを有するデータ処理システムにおい
    て、 前記レジスタにおけるオペランド・バイトの境界合せ、
    及び処理すべき残りのオペランド・バイトの数に応じて
    、次に実行すべき制御ワードを決めることを特徴とする
    制御ワード分岐方法。
JP63204851A 1987-11-17 1988-08-19 制御ワード分岐方法 Pending JPH01137331A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/121,443 US4933847A (en) 1987-11-17 1987-11-17 Microcode branch based upon operand length and alignment
US121443 1998-07-23

Publications (1)

Publication Number Publication Date
JPH01137331A true JPH01137331A (ja) 1989-05-30

Family

ID=22396769

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63204851A Pending JPH01137331A (ja) 1987-11-17 1988-08-19 制御ワード分岐方法

Country Status (6)

Country Link
US (1) US4933847A (ja)
EP (1) EP0317473A3 (ja)
JP (1) JPH01137331A (ja)
KR (1) KR920001965B1 (ja)
CN (1) CN1016383B (ja)
GB (1) GB8814628D0 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5201043A (en) * 1989-04-05 1993-04-06 Intel Corporation System using both a supervisor level control bit and a user level control bit to enable/disable memory reference alignment checking
US5168571A (en) * 1990-01-24 1992-12-01 International Business Machines Corporation System for aligning bytes of variable multi-bytes length operand based on alu byte length and a number of unprocessed byte data
JPH04140892A (ja) * 1990-02-05 1992-05-14 Internatl Business Mach Corp <Ibm> 制御データをエンコードする装置及び方法
JP2606942B2 (ja) * 1990-02-22 1997-05-07 株式会社東芝 Dmaコントローラ
US5335332A (en) * 1991-12-24 1994-08-02 International Business Machines Corporation Method and system for stack memory alignment utilizing recursion
US5542058A (en) * 1992-07-06 1996-07-30 Digital Equipment Corporation Pipelined computer with operand context queue to simplify context-dependent execution flow
DE4345028A1 (de) * 1993-05-06 1994-11-10 Hewlett Packard Co Vorrichtung zur Reduzierung von Verzögerungen aufgrund von Verzweigungen
US5559974A (en) * 1994-03-01 1996-09-24 Intel Corporation Decoder having independently loaded micro-alias and macro-alias registers accessible simultaneously by one micro-operation
CN103092564B (zh) * 1995-08-31 2016-04-06 英特尔公司 执行乘加指令的处理器和对分组数据执行乘加操作的系统
US5771011A (en) * 1996-07-15 1998-06-23 International Business Machines Corporation Match detect logic for multi-byte per cycle hardware data compression
US5956047A (en) * 1997-04-30 1999-09-21 Hewlett-Packard Co. ROM-based control units in a geometry accelerator for a computer graphics system
US6184902B1 (en) 1997-04-30 2001-02-06 Hewlett-Packard Company Centralized branch intelligence system and method for a geometry accelerator
US7698539B1 (en) * 2003-07-16 2010-04-13 Banning John P System and method of instruction modification
US7676797B2 (en) * 2005-01-31 2010-03-09 Computer Associates Think, Inc. System and method for managing long names in an application programming interface
US8495341B2 (en) * 2010-02-17 2013-07-23 International Business Machines Corporation Instruction length based cracking for instruction of variable length storage operands
JP5437878B2 (ja) * 2010-03-29 2014-03-12 ルネサスエレクトロニクス株式会社 情報処理装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3570006A (en) * 1968-01-02 1971-03-09 Honeywell Inc Multiple branch technique
US3979725A (en) * 1973-08-06 1976-09-07 Xerox Corporation Multi-way program branching circuits
US3916388A (en) * 1974-05-30 1975-10-28 Ibm Shifting apparatus for automatic data alignment
DE2529348A1 (de) * 1975-07-01 1977-01-13 Siemens Ag Verfahren zum verarbeiten von maschinenbefehlen mit bytefeldoperanden in einem mikroprogrammierten prozessor einer datenverarbeitungsanlage
US4200927A (en) * 1978-01-03 1980-04-29 International Business Machines Corporation Multi-instruction stream branch processing mechanism
US4438492A (en) * 1980-08-01 1984-03-20 Advanced Micro Devices, Inc. Interruptable microprogram controller for microcomputer systems
US4430706A (en) * 1980-10-27 1984-02-07 Burroughs Corporation Branch prediction apparatus and method for a data processing system
JPS5856164A (ja) * 1981-09-30 1983-04-02 Toshiba Corp デ−タ処理装置
US4569016A (en) * 1983-06-30 1986-02-04 International Business Machines Corporation Mechanism for implementing one machine cycle executable mask and rotate instructions in a primitive instruction set computing system
US4791557A (en) * 1985-07-31 1988-12-13 Wang Laboratories, Inc. Apparatus and method for monitoring and controlling the prefetching of instructions by an information processing system

Also Published As

Publication number Publication date
GB8814628D0 (en) 1988-07-27
EP0317473A2 (en) 1989-05-24
CN1035190A (zh) 1989-08-30
CN1016383B (zh) 1992-04-22
US4933847A (en) 1990-06-12
EP0317473A3 (en) 1992-05-20
KR890008685A (ko) 1989-07-12
KR920001965B1 (en) 1992-03-07

Similar Documents

Publication Publication Date Title
EP0071028B1 (en) Instructionshandling unit in a data processing system with instruction substitution and method of operation
JP3649470B2 (ja) データ処理装置
US4740893A (en) Method for reducing the time for switching between programs
US4449184A (en) Extended address, single and multiple bit microprocessor
US4745547A (en) Vector processing
JP2992223B2 (ja) コンピュータシステム、命令ビット長圧縮方法、命令発生方法、及びコンピュータシステム動作方法
US6654875B1 (en) Dual microcode RAM address mode instruction execution using operation code RAM storing control words with alternate address indicator
EP0148478A2 (en) A data processor with control of the significant bit lenghts of general purpose registers
JPH06236268A (ja) 命令の長さを判定する装置と方法
EP0438961A2 (en) Hardware data string operation controller
US20010010072A1 (en) Instruction translator translating non-native instructions for a processor into native instructions therefor, instruction memory with such translator, and data processing apparatus using them
JPH01137331A (ja) 制御ワード分岐方法
US5381531A (en) Data processor for selective simultaneous execution of a delay slot instruction and a second subsequent instruction the pair following a conditional branch instruction
EP0427245A2 (en) Data processor capable of simultaneously executing two instructions
US6061781A (en) Concurrent execution of divide microinstructions in floating point unit and overflow detection microinstructions in integer unit for integer divide
JPH03158928A (ja) データ処理装置
US4541047A (en) Pipelined data processing system
JPH0895804A (ja) 中央処理装置
EP0093430A2 (en) Pipeline data processing system
JPH0769795B2 (ja) コンピュータ
US5034880A (en) Apparatus and method for executing a conditional branch instruction
US4736289A (en) Microprogram controlled data processing apparatus
JPH07120284B2 (ja) データ処理装置
US7546442B1 (en) Fixed length memory to memory arithmetic and architecture for direct memory access using fixed length instructions
US5121474A (en) Bit string data processor using dynamically addressable bit locations in memory so overlapping strings do not destroy data in memory