JPH04296937A - ハードウエアデータストリング演算コントローラ及び主記憶ストリング動作を行わせる方法 - Google Patents

ハードウエアデータストリング演算コントローラ及び主記憶ストリング動作を行わせる方法

Info

Publication number
JPH04296937A
JPH04296937A JP2417818A JP41781890A JPH04296937A JP H04296937 A JPH04296937 A JP H04296937A JP 2417818 A JP2417818 A JP 2417818A JP 41781890 A JP41781890 A JP 41781890A JP H04296937 A JPH04296937 A JP H04296937A
Authority
JP
Japan
Prior art keywords
data
main memory
controller
register
sdr
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
JP2417818A
Other languages
English (en)
Inventor
Russell D Hoover
ラッセル、ディーン、フーバー
John D Irish
ジョン、デイビッド、アイリシュ
David W Sollender
デイビッド、ウェスリー、ソレンダー
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 JPH04296937A publication Critical patent/JPH04296937A/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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30018Bit or string instructions
    • 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/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction

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

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は一般にデータ処理システ
ムの分野に関し、そして多バイトデータストリングにつ
いてのインストラクションの実行に関する。詳細には本
発明は単一制御ワードの制御のもとで左から右へのイン
ストラクション(すなわち第1メモリアドレスからそれ
より高次の第2メモリアドレスへと処理されるインスト
ラクション)または右から左へのインストラクション(
すなわち第1メモリアドレスからそれより低次の第2メ
モリアドレスへと処理されるインストラクション)を処
理することにより主記憶装置内データを扱うことのでき
るハードウエアデータストリング演算コントローラ(ハ
ードウエア「シーケンサ」とも呼ばれる)に関する。
【0002】
【従来の技術及び課題】主記憶ストリング動作は周知で
あり、1つの主記憶メモリロケーションから他のロケー
ションにデータを転送するためにたとえばIBMシステ
ム370のようなコンピュータシステムに用いることが
できる。これら動作は算術ロジックユニット(ALU)
動作(例えば「ADD」または同様の2オペランド動作
)を行うことに関連し転送されるデータを変更でき、あ
るいは転送されているデータをそのまま(例えば「MO
VE」形動作により)動かすことができる。
【0003】更に、主記憶に結果をもどして記憶するこ
となく2つのデータストリングを比較する(例えば2つ
のオペランド間の差が0であることを検査するインスト
ラクション)動作も周知である。
【0004】この形式の動作で処理されるデータストリ
ングの長さは1バイトから数100バイトにわたり変化
しうる。
【0005】典型的なインストラクション処理シーケン
ス(IBMシステム370と同様のシステムにおける)
は主記憶装置からインストラクションを取り出し、その
インストラクションをデコードし、そのインストラクシ
ョンに関連したオペランドの仮想アドレスを主記憶アド
レスに変換し、そしてオペランドについて取出されたイ
ンストラクションにより特定される動作を行うことから
なる。
【0006】この変換が1個以上のオペランドについて
主記憶アドレスが存在しないことを示す場に障害信号が
一般に発生する。
【0007】障害がないとすると、従来技術ではマイク
ロコードで駆動されるハードウエアを用いて上記のデー
タストリング動作(与えられたインストラクションに関
連したオペランドによる)を行うことが知られている。 このマイクロコードに関連したハードウエアは与えられ
たインストラクションにより示される機能を実際に行う
【0008】マイクロプログラム制御のコンピュータの
ハードウエア制御装置は主としてデータをレジスタ、カ
ウンタ、加算器等に対し出し入れするデータゲートであ
る。1インストラクション(プログラムインストラクシ
ョン、マイクロコード、マイクロインストラクション、
または制御ワード)についてそのようなシステムではデ
ータゲートを1マシンサイクル用の制御装置を設けるの
が通常である。
【0009】データストリング動作を行わせるための一
つの簡単で周知の技術は1つのストリング内で処理され
ているデータの各バイトについて1制御ワードを実行す
るためにマイクロプロセッサ制御のコンピュータを用い
ることである。この技術を例えば第1のダブルワード(
8バイト)の内容を第2のダブルワードに加算するため
に用いると、最少でも8マシンサイクル(データ取出し
と結果の記憶等のためのオーバヘッドを加えて)が必要
である。そのような技術はストリング処理メカニズムと
のインターフェースとする他の現今のプロセサ要素(キ
ャッシュメモリのようなもの)の速度に対してみると低
速すぎる。
【0010】データストリング動作を行うための従来技
術の他の例は米国特許出願第07/121443(出願
日1987年11月17日)に示されている。この出願
の内容を参照のためここに示す。
【0011】この出願(「マイクロコードブランチ」発
明と呼ぶ)は水平マイクロコードによるハードウエア援
助ランを示している。このマイクロコードブランチ発明
は処理されているデータストリングのアラインメント及
び操作されるべきバイト数により、複数のマイクロコー
ドサブルーチン(これはデータ処理を実際に行う)の一
つに分岐させることにより動作する。
【0012】特に、この分岐技術は、(1)オペランド
バイトのアラインメント(オペランドが主記憶から取出
されて入れられるレジスタ内のアラインメント)の決定
、(2)与えられたインストラクションにより処理され
るべきものとして残っているオペランドバイトの数の決
定、及び(3)少くとも部分的には処理されるべきもの
として残っているバイトの数により、実際のデータ処理
を行うために複数のマイクロインストラクション(制御
ワード)サブルーチンの内のどれが呼び出されるべきか
の決定を行わねばならない。
【0013】このマイクロコードブランチ発明を利用す
ると、システムのデータフローバスは、特に前記のバイ
ト毎の処理方法と比較するとより効率よく使用できる。
【0014】しかしながら、このマイクロコードブラン
チ発明は大容量の制御記憶(種々のサブルーチンの記憶
のため)を必要としそしてストリングポインタとカウン
タの保守動作を行うためのかなりの量のオーバヘッドを
必要とするという点で問題がある。
【0015】更に、この技術は左から右へのインストラ
クション(例えば「MOVE」インストラクション)の
みに関連しており、多バイト可変長の右から左へのイン
ストラクション(例えば「ADD」)を処理するには適
当でない。
【0016】従って、従来のストリング処理技術で必要
な複数の制御ワードではなく単一の制御ワードのみを用
いて可変長の主記憶ストリング動作を行う方法及び装置
を提供することが望ましい。
【0017】更に、上記の望ましい方法と装置を用いて
可変長の多バイトオペランドを有する右から左へのイン
ストラクション及び左から右へのインストラクションの
少くともサブセットを実行できることが望ましい。
【0018】更にまた、前記の単一制御ワードを用いて
可変長の多バイトオペランドデータについて多サイクル
の記憶から記憶への動作を行うことができることが望ま
しい。
【0019】更に、(1)データを取り出し(そして記
憶する)(他の高速プロセサ要件と両立可能であり且つ
その利点を用いるように)の必要性を予想することによ
りストリング処理を行い、(2)前記の複数のマイクロ
コードサブルーチンの記憶の必要性を除くことにより制
御記憶要件を最小にしそして(3)ソフトウエア分岐を
行う必要性とストリングポインタとカウンタを維持する
必要性を除くことにより1以上のマシンサイクルにわた
り多バイト可変長のデータストリングを行うに必要な処
理時間を短縮する。上記望ましい方法と装置のハードウ
エアを与えることができることが望ましい。
【0020】
【発明の概要および解決課題】本発明の目的は単一制御
ワードの制御のもとで可変長の主記憶ストリング動作を
行う方法と装置を提供することである。
【0021】本発明の他の目的は可変長の多ビットオペ
ランドを有する左から右および右から左への両方のイン
ストラクションの少くとも1つのサブセットを実行しう
るものであって一つのインストラクションを行うに必要
な主記憶ストリング動作が単一の制御ワードの制御のも
とで実行されるようにした方法および装置を提供するこ
とである。
【0022】更に本発明の目的は可変長の多バイトオペ
ランドデータについて多サイクルの記憶から記憶への動
作を単一制御ワードの制御のもとで実行しうる方法と装
置を提供することである。
【0023】本発明によるハードウエアデータストリン
グ動作コントローラは前記の目的を実現する。詳細には
このコントローラは(a)各マシンサイクル(以下「デ
ータモード」計算/変更)中に処理(コントローラによ
る)されうる最大数のオペランドに関連したデータスト
リングバイトを動的に決定(そして必要あれば調整)す
る手段と、(b)少くとも複数のマシンサイクルが一つ
の制御ワードの完全実行に必要なときに部分マシン「ホ
ールドオフ」(すなわち、すべてのプロセサ動作を停止
することなく選択的に選ばれたレジスタの更新を禁止す
る)を行う手段と、(c)記憶動作を行うサイクルの前
のマシンサイクルにおいて記憶動作の予測(コントロー
ラの要求による取出しと記憶)する手段と、を含む。
【0024】データモード計算/変更を動的に行うこと
により、この新規なシーケンサは前記のマイクロコード
ブランチ発明と同様に動作する。しかしながら、このシ
ーケンサは複数のマイクロコードサブルーチンの一つの
実行を開始するブランチの予測ではなく、ハードウエア
制御を行うためのデータモードの決定の結果を利用する
。その結果、本発明は水平マイクロコード介入を減らす
ことによりインストラクションの実行時間を改善しそし
て上記のサブルーチンについて制御記憶を用いる必要性
を除去する。
【0025】部分的マイクロホールドオフを行うことに
より、このシーケンサは単一制御ワードを利用して可変
長のデータストリングの実行が可能である。一般に制御
ワードが数サイクルを必要とするときには1つの主ホー
ルドオフが全マシンについて発生され、これが種々のレ
ジスタへのロードをインストラクションの完了するまで
禁止する。この新規なシーケンサはこれらレジスタ(ポ
インタとカウンタを含む)の或るものを更新する必要が
あるから、部分的なマシンホールドオフの使用は主ホー
ルドオフ信号を不活性のままとして所定のシーケンサの
更新を可能にする。
【0026】このシーケンサにより要求される記憶動作
を予測することにより、マシンサイクルは保存され、そ
れによりこのシーケンサを含むシステムのパフォーマン
スを更に改善する。
【0027】本発明はマイクロコード駆動のハードウエ
ア構造において主記憶ストリング動作を高速且つ効率よ
く行う能力を特徴とする。特に、可変長の主記憶ストリ
ング動作の1個の制御ワードを用いての実行:制御記憶
の保存および改善された総合的なプロセサのパフォーマ
ンスはすべて本発明の特徴である。
【0028】
【実施例】図1はコンピュータシステムの或る部分(メ
モリおよび或るプロセッサ要素)を示しており、これら
部分は可変長の主記憶ストリング動作を行うために本発
明のシーケンサと関連して利用される部分である。
【0029】特に、図1は主記憶装置101と少くとも
1個のプロセサ102を含むコンピュータシステム10
0を示している。本発明のシーケンサは、図1に示すよ
うに少くとも以下のレジスタと構造(それらのすべては
前記米国特許出願に示されている)を含むプロセッサア
ーキテクチャの部分として含まれている。
【0030】1.  夫々主記憶データの緩衝用に用い
られる一対の記憶データレジスタ(SDR)。2個のS
DRを図1に示しており、これらはレジスタ105と1
06である。一般に、プロセサにより行われる動作に記
憶装置からのデータが必要なときにはそのデータはプロ
セサによりアクセスされる前にSDRに移される(図示
しないデータバスにより)。主記憶データを含むプロセ
サの動作が完了する前にそのデータが主記憶に戻されて
記憶される。後述する例(本発明の原理を示すと共にそ
の機能を説明するために用いられる)においては、これ
らSDRは8バイト幅とされそしてダブルワード位置合
せ主記憶ロケーションからデータを受ける。2つのその
ようなロケーションを図1では150と155で示して
ある。8バイト幅のSDRは本発明の好適な実施例を示
すために選ばれているが、本発明の範囲を限定するもの
ではない。
【0031】2.  各SDRについてレゾルブド(R
esolved)アドレスレジスタ(RAR)。各RA
Rはそれに関連するSDRがデータを緩衝する主記憶1
01内のメモリロケーションにポイントする。2個のR
ARが図1に示されており、それはSDR105に関連
するRAR115とSDR106に関連するRAR11
6である。 RAR115はSDR105用の主記憶ロケーションを
トラックし、RAR116はSDR106用の主記憶ロ
ケーションをトラックする。例えば図1ではRAR11
5はオペランドストリング150にポイント(矢印18
0で示す)し、RAR116はオペランド160にポイ
ント(矢印181で示す)する。
【0032】3.  図1は算術ロジックユニット(A
LU)110を示しており、これはコンピュータシステ
ムにおける種々の論理的動作、2進および10進動作を
行うための周知の装置である。例としてALU100は
論理および2進動作用に4バイト幅のデータをそして1
0進動作に2バイト幅のデータを演算しうるものとして
いる。
【0033】4.  また図1はSDRポインタレジス
タ125と126を示す。SDRポインタレジスタ12
5はSDR105にポイントし、SDRポインタレジス
タ126はSDR106にポイントする。各SDRポイ
ンタレジスタは処理できるその関連するSDRのバイト
を示す。例えばSDRポインタレジスタ125はSDR
105の左から3番目のバイト(バイト2)をポイント
する。これを図1の矢印185で示す。SDRポインタ
レジスタ126はSDR106の左から6番目のバイト
(バイト5)をポイントする。
【0034】5.  主記憶101からのデータにもと
づいて動作を行うときにALU110により直接にアク
セスしうる2つのアライメントロジックセットが図1に
アライナロジック135を136として示されている。 アクセスパスは夫々190と191である。アライナロ
ジック135と136を以降では「アライナ」と呼ぶ。 この例ではこれらアライナは夫々4バイト幅であり、S
DR105と106の夫々に関連づけられている。SD
R内のデータはSDRポインタ値にもとづき一つのアラ
イナを通される(パス192と193を介して)。この
データは夫々のアライナにおいてバイト整合され右揃え
される。
【0035】前記の米国出願に示されるようなコンピュ
ータシステムでは主記憶ストリング動作が呼び出される
(インストラクションデュートとアドレス変換により)
とき、RAR115と116によりポイントされるデー
タは夫々SDR105と106に取り出される。アライ
ナ135と136は夫々SDR105と106の内容を
受け(SDRポインタレジスタ125と126によりポ
イントされたバイトからスタートして)、一つの演算が
ALU110により行われ、そしてその結果がSDRの
内の選ばれた1個に移される。SDRが完全に処理され
た後に、その内容は主記憶101に移され(ストリング
動作タイプにより要求された場合)、そしてRARがデ
ータを取り出すべき主記憶101内の次のロケーション
にポイントするため更新される。
【0036】この新規なシーケンサをつくるに必要な他
のハードウエアは、本発明の好適な実施例によればスト
リング動作中に扱われるべきバイト数を係数するために
用いられるハードウエアレジスタと、本発明にもとづき
データを変換する特別のシーケンサステップを行うため
のオフ−ザ−シェルフ(off−the−shelf 
)ロジックである。これらステップはこのシーケンスの
機能を示す後述する例において詳細に説明する。
【0037】ストリング動作中に扱われるべきバイト数
を係数するハードウエアレジスタは図1では8ビットレ
ジスタ140として示してある。前記の米国出願に示さ
れる「L−レジスタ」がこのカウンタとして使用できる
。本発明の好適な実施例によれば、L−レジスタ140
は「結合型(coupled )」(レジスタ全体が演
算されるべきバイト数を係数する)または「非結合型(
uncoepled )」(L−レジスタ140内の各
ニブル(nibble)が独立して作用し、夫々1つの
オペランドのビームと係数を保持する)である。L−レ
ジスタが結合されてFF(HEX)まで減算するかある
いはL−レジスタが分離されてF(HEX)へとニブル
減算するとき、単一制御ワードの制御のもとで処理され
ているストリングが完了する。
【0038】この新規なシーケンスの動作を支配するこ
の単一制御ワードを呼び出す前に本発明の好適な実施例
によれば次のレジスタが初期化される。(a)レジスタ
105と106が処理されるべきデータストリングの第
1バイトで初期化される。そのとき1個のオペランドの
みが含まれればそれはレジスタ105が初期化されるも
のとする(例示の目的のためのみ)。(b)RAR11
5と116が、レジスタ105と106内のデータを取
り出した主記憶ロケーションのアドレスで初期化される
。(c)SDRポインタ125と126が(夫々のSD
Rレジスタ内で)演算されるべき第1SDRバイトのバ
イトロケーションで初期化される。(d)L−レジスタ
140がストリング動作のためにバイトカウントで初期
化される。
【0039】本発明によれば、与えられた制御ワードの
制御のもとでの全シーケンサ動作はより小さいプロセサ
動作に分けられる。これを中央プロセサユニットまたは
CPU動作と呼ぶ。各CPU動作においてデータは前記
のALU/SDR動作におけるように、SDR105と
106からアライナ135と136を通して移される。 ALU110で処理されそしてSDR105と106に
もどされる。
【0040】更に本発明によれば、前記のポインタとカ
ウンタは各CPU動作を完了するときストリング状態を
示すために調整される。
【0041】1個以上のSDRがそれ以上未処理のデー
タを有しないとき、このシーケンサは次のCPU動作の
準備として主記憶101に対する一連の記憶動作を開始
する。各動作の前にデータモードがポインタとカウンタ
値により部分的に示される制限(詳細は後述する)にも
とづき決定される。前述のようにデータモードは一つの
与えられたCPU(マシン)サイクルにおいてシーケン
サにより演算しうるバイトの最大数を示す。
【0042】本発明の一実施例によれば、プロセサはデ
ータ(ALUタイプの動作について)を3つのデータモ
ードすなわちフルワード(データの4個のバイト)、ハ
ーフワード(データの2バイト)およびバイト(データ
の1バイト)モードの内の一つのモードで処理する。本
発明の好適な実施例は5つのデータモード(0〜4)を
有する。初期化中、システムがデータモード0にセット
される。データモード1は前記のバイトデータモードに
対応し、データモード2はハーフワードデータモードに
、データモード3はフルワードデータモードにそしてデ
ータモード4は「MOVE」タイプの動作専用にフルダ
ブルワードを処理するために保存される。
【0043】主記憶ストリング動作中に一つのCPUの
データモードは各SDR内の未処理バイトの数、L−レ
ジスタ140により示される、処理されるべきバイトの
数およびALU幅(ALU110の使用を要求する動作
用)により制限される。本発明の好適な実施例によれば
、データモードは現在のデータモードと上記の制限の関
数として各サイクルで動的に予測される。
【0044】各CPUサイクルについてデータモードを
計算することにより、ストリング動作のパフォーマンス
が最適化される。オペランドが完全に処理され、その後
に新しい制御ワードを実行しうることをL−レジスタカ
ウンタが示すまで次々のCPU動作が行われる。
【0045】本発明によれば、次の3つの特徴の組合せ
がこの新規なシーケンサを従来の長いストリング動作の
コントローラに対して区別するものである。(1)この
シーケンサは上記の動的なデータモード決定法を用いる
ことによりCPU動作について最大数のデータバイトを
処理する(8バイトまで各サイクル幅処理しうるデータ
のムーブを除き図1に示すシステムでは4バイトまで)
。(2)上記シーケンサは上記部分マシンホールドオフ
を用いることにより1個の制御ワードで全ストリング動
作を行う。(3)シーケンサは、図1に示す種々のポイ
ンタとカウンタの内容にもとづき記憶動作が起きるとき
と動作するSDRを予測することにより、記憶動作が必
要となる前に記憶制御パラメータをセットする。
【0046】この新規なシステムによりいかに動的デー
タモードの決定部分マシンホールドオフおよび記憶予測
を行うかの説明を次に行う。
【0047】この説明は特定の例に沿ったシーケンサの
機能説明からはじまる。この例は好適なシーケンサの一
群のステップを実行するとき本発明により行われるデー
タ変換に関するものである。この例を図2−5に示して
あり、上記のシーケンサステップを行うことにより得ら
れるデータ変換を示すものである。当業者には、以上の
例と本発明の好適な実施例に示す特定のステップシーケ
ンスにもとづき基準的なオフ−ザ−シェルフロジックを
用いるこのシーケンスを構成することは容易である。
【0048】可能な限り少いCPUサイクル数において
ストリング動作を実行するために、各動作についてのデ
ータモードを決定する方法が必要である。ALU110
とアライナ135,136(プロセサ102内)が4バ
イトのオペランドを処理し、2バイトが一般に市販のプ
ロセサにより処理される。これにより各動作についての
データモードの決定の複雑性が高くなる。通常データモ
ードは制御ワードにコード化されるが、この制御ワード
は本発明では全ストリング動作に利用されているからC
PU動作間でデータモードを変えるための動的方法が必
要である。この問題に対する簡単な解決法、すなわちポ
インタとオペランド長の現在の値を用いてのデータモー
ドの計算はCPUのサイクル時間がデータモードを計算
しALUの機能を完了させる(1サイクル内で)には短
すぎるため使用できない。
【0049】本発明によればこの問題はポインタ、カウ
ンタの現在の値と現在のデータモードを採り、そしてこ
の情報を次のALU動作のためのデータモードの計算に
用いることにより解決する。更に、本発明の一実施例に
よれば、データモード値がラッチされ次のCPU動作の
開始で用いられる。第1動作のデータモードは上記のよ
うにデータモード0を用いることにより第(初期)CP
Uサイクルで決定され、すべてのレジスタはこのサイク
ルの完了時には変更されず、第1の実際のCPU動作は
次のサイクルで行われる。
【0050】すでに示されたように、データモードの計
算の目的は各サイクルにおいてシーケンサにより処理で
きる最大バイト数をきめることである。nを現在のデー
タモード値(n=0すなわち初期データモードを除く)
として2n−1 を計算することにより、SDRのポイ
ンタ125,126の値と共に次のマシンサイクルにつ
いてのSDDR105,106の夫々におけるスタート
バイト処理ロケーションを示す調整因子が得られる。予
測ポインタ値のこの計算は明らかに次のサイクル中のS
DR105,106の夫々において処理しうるバイトの
最大数を反映する。
【0051】この情報はL−レジスタ140内の予測カ
ウント(現在のカウントから上記の2n−1 値を減算
することにより予測される)とALUの幅(ALUタイ
プの動作用)と共に次のデータモードを決定するに必要
な条件のすべてである。L−レジスタ140は8ビット
からカウンタであるかあるいは未処理のままのストリン
グのバイト長を示す2個の非結合4ビットカウンタであ
ることはすでに述べた。
【0052】上述のように上記の条件を利用する実際の
データモードの計算/調整(すなわちデータモード予測
)の一つの例を図2−5について示す。
【0053】本発明のこの好適な実施例はこのシーケン
サがそのデータ変換プロセスを行いそしてレジスタを更
新するなどを可能とするためにシステムの主ホールドオ
フ信号を不活性のままにしうる3つのタイプの部分マシ
ンホールドオフの使用を意図している。これら部分マシ
ンホールドオフ信号はレジスタのローディングを禁止す
るための周知の技術(主マシンホールドオフ信号を発生
するためにこのシステムで用いられる技術と同様のもの
)を採用することによりこのシーケンサによって発生し
うる。
【0054】第1のタイプのホールドオフは制御記憶出
力レジスタ(CSOR)に新しいデータがクロックされ
ないようにする。このホールドオフにより新しい制御ワ
ードは所望のシーケンサ動作が完了するまで処理されな
いことになる。
【0055】第2のタイプのホールドオフすなわち「ポ
インタホールドオフ」はカウンタとポインタの更新を、
このホールド信号を動作中にオン・オフする手段を含む
このシーケンサ自体による場合を除き防止する。
【0056】最後に第3のタイプのホールドオフはプロ
セサ内の条件コードレジスタが有効なALU動作後にの
み更新されるようにする。この信号はこのシーケンサが
この信号をその動作中オン・オフして条件コードレジス
タを必要に応じて更新しうるようにするという点でポイ
ンタホールドオフのように機能する。
【0057】データモード発生器および上記の部分ホー
ルドオフ信号を発生しオン・オフする手段に加えて、こ
のシーケンサは4ステップのプロセスを利用してFOP
とSOPを予測する取出し動作/記憶動作(FOP/S
OP)発生器を含む。
【0058】第1ステップにおいて、ポインタレジスタ
125,126用の予測値とL−レジスタ140の予測
値が予測データモードで用いられたと同じ方法で計算さ
れる。ステップ2でこれら予測値は、ALU動作がそれ
ら値について完了した後にFOPおよびCOPが必要で
あるかどうかを決定する(すなわち与えられたSPR内
のデータが完全に処理されているかそしてまたは記憶す
る必要があるかどうかを決定する)ために用いられる。 ステップ3において、予測されたFOPおよびSOP値
は有効なALU動作サイクルのはじめにラッチされる。 ステップ4においてFOPとSOPが記憶コントローラ
に順次送られて予測された適正な取り出しまたは記憶動
作を開始する。
【0059】このシーケンサの動作と機能を詳述したが
、次にその特定の例を図2−5について述べる。この図
は本発明の動作原理、特にデータ変換のために(すなわ
ちストリング処理タスクを行う)本発明をいかに使用し
うるかを示す。
【0060】図2は図1のコンピュータシステムについ
ての初期条件群の例を示す。これら初期条件は図3−5
のシーケンサにより変換される。
【0061】図2は特に主記憶201、主記憶201内
のオペランド250と255、オペランド250と25
5の夫々の拡大図、およびSDR205と206、ポイ
ンタレジスタ225と226、L−レジスタ240の初
期条件を示している。主記憶201、オペランド250
、オペランド255は図1の主記憶101、オペランド
150,155に夫々対応する。レジスタ205,20
6,225,226,240は図1のレジスタ105,
106,125,126,140に夫々対応する。
【0062】例として右から左のインストラクション(
例えばADD)が行われているとする。SDR205と
206はオペランドストリングの夫々とからのデータモ
ード4の内容により初期化される。処理は上位のメモリ
ロケーションから低位へと進み、右から左のインストラ
クションを実行する。
【0063】L−レジスタ240(フル結合L−レジス
タすなわち8ビット長とする)内の初期バイトカウント
が17(HZX)にセットされそして現在のデータモー
ドは0(初期化についての定義による)にセットされる
。L−レジスタ240のカウントは各オペランドのバイ
ト長を示す。バイトカウントが各オペランドについて異
なっているとすればL−レジスタは「非結合」であって
2個の4ビットカウンタを含む。
【0064】ポインタレジスタ225の初期値は2であ
り、SDR205内の処理が図2のバイト2でスタート
することを示す。ポインタレジスタ226の初期値は5
であり、SDR206内の処理が図2のバイト5でスタ
ートすることを示す。
【0065】RAR215と216(図1のRAR11
5と116に夫々対応する)は初期化されて主記憶20
1内のオペランド250と255をポイントする。特に
、これらレジスタの夫々は図2の下の部分に示すオペラ
ンド250と255の拡大図に示すダブルワード4にポ
イントする。
【0066】第1および第2オペランド(オペランド2
50と255)の拡大図は各オペランドのバイトストリ
ングが主記憶201内で数個のダブルワードロケーショ
ンにまたがることも示している。事実、各オペランドは
24バイトの範囲(カウンタのFF(HEX)への減算
が一つのダン(done)条件を意味するように17(
HEX)プラス1バイト)で4個のダブルワードにまた
がっている。
【0067】本発明により図2のデータを変換するため
にこのシーケンサは各マシンサイクルにおいて1回の6
ステップ処理を行う。これらステップの内のいくつかは
初期化サイクル中または例えば取出しや記憶の必要のな
いサイクル中にスキップされる。これら6(ステップは
次の通りである。 ステップ0:前のサイクル「予測データモード」で現在
のデータモードを更新し、前のサイクルの予測値でSD
RポインタレジスタおよびL−レジスタの現在の値を更
新する。 ステップ1:現在のSDRポインタ値、L−レジスタの
現在の値および現在のデータモードを用いてアライナ(
生じつつあるALU動作用)を介してSDRからの情報
をアラインする。 ステップ2:すべてのALU動作(特定されれば)を行
いそして(必要であれば)            結
果を上記SDRの予定の1個にもどす。 ステップ3:次の動作用にSDRポインタレジスタとL
−レジスタを予測する(更新された値はそのときのサイ
クルではセットされずステップ0において次のサイクル
でラッチされる)。 ステップ4:SDRポインタレジスタの値とL−レジス
タ内の値と現在のデータモードを用いて次の動作用のデ
ータモードを予測し(例えばデータモード発生器の説明
において述べたように)、そして次のCPU動作後に必
要とされる取出しまたは記憶を予測する。 ステップ5:要求された取り出しまたは記憶を開始する
【0068】これら6ステップのすべては各マシンサイ
クル中に生じうる。オペランドの実際の取り出しまたは
記憶は後に行うことができる。
【0069】第1シーケンサ動作(初期化段階)は、デ
ータモードが初期化においてデータモード0にセットさ
れてからステップ0−3をスキップする。ステップ4は
次のシーケンサ動作(初期化シーケンスではデータ変換
は行われない)中に行いうる最大の動作を決定するため
に行われ、そして次のCPU動作後に取出しまたは記憶
が要求されないことを決定する。図2において、次のサ
イクルで処理しうる最大のバイト数は次のデータモード
がSDR205内のデータの量(バイト0,1,2)で
きまるから2バイト(1ハーフワード)である。SDR
205には3バイトが処理されるべきものとして残って
いるが、このシーケンサの実施例はALU動作について
1,2または4バイトを処理するだけである。従って、
少くとも1バイトがSDR205に処理されるべきもの
として残るから、次のCPU動作に続いて取出しまたは
記憶は行う必要がない。ステップ5は、初期データモー
ドが0であるからスキップされ、従って次のサイクル中
に処理するためのデータを与えるための取出しまたは記
憶は不要である。
【0070】この例における第2のシーケンサ動作を図
3に示す(図3以降では図2に用いた参照番号がこのシ
ーケンサにより行われるステップにも用いられている)
。この第2動作はステップ0を行うものであり、すなわ
ち現データモードをデータモード2(予測ハーフワード
モード)に更新し、そして前のサイクルの予測値でSD
RポインタレジスタとL−レジスタの値を更新すること
である。ステップ1が次に行われてALU動作について
SDR205と206からのデータをアラインさせる。 これは図3においてアライナ235と236(図1のア
ライナ135と136に対応)に生じるアラインしたデ
ータで示されている。ステップ2が次に行われる。 すなわちALU210(図1のALU110に対応)が
レジスタ235と236に示す16進値の和(バイトご
と)を発生しそしてそれをSDRの内の予め選ばれた1
個にもどし記憶する。SDR205は図3においてAL
U240により発生されたハーフワード和をALU出力
ブロック345を介して受ける。
【0071】第2シーケンサ動作は次のCPU動作のた
めにSDRポインタレジスタ225,226およびL−
レジスタ240にロードされるべき値の予測へと続く(
ここでもこれら値は次のステップ0においてラッチされ
る次のサイクルまでセットされない)。ステップ4は新
しいデータモードの予測のため行われ(データモードの
予測プロセスでSDRポインタレジスタとL−レジスタ
の現在値を調整(セットではない)するために用いられ
る調整値2を得るためn=2として2n−1 を計算す
る)、その結果はSDR205に処理されるべきとして
残る1つのバイト(バイト0)が次のデータモードをデ
ータモード1(バイトモード)にさせる。SDR205
内のすべてのデータは次のCPU動作に続いて処理され
るから、次のCPU動作後に取出しおよび記憶動作が予
測される。次のサイクルで処理するためのデータがSD
Rにあるためこのときは取出しまたは記憶は不要であり
、かくして第2シーケンサ動作は終了する。
【0072】第3シーケンサ動作を図4に示す。この第
3動作はステップ0を行うことであり、すなわち、現在
のデータモードをデータモード1(止そうバイトモード
)に更新し、SDRポインタレジスタとL−レジスタの
値を前のサイクルの予測値を更新する。次のステップ1
はALU動作用にSDR205と206からのデータを
アラインさせることである。これは図4においてアライ
ナ235と236におけるアラインされたデータで示し
ている。次にステップ2が行われてALU210がレジ
スタ235と236の16進値の和をつくり、その結果
(49(HEX))をブロック345で示すALU出力
を介してSDR205に記憶する。
【0073】第3シーケンサの動作は再びSDRポイン
タレジスタ225と226およびL−レジスタ240に
ロードされるべき値の予測に続く(予測値は図5に示す
ように次のサイクルでセットされる)。次のサイクル用
の新しいデータモードがこのとき予測される。
【0074】図4の動作サイクルに続くサイクル用のデ
ータモードを予測するために調整値1を得るべく2n−
1 を計算する。但しn=1である。この調整値はデー
タモード予測処理において現在のSDRポインタレジス
タとL−レジスタの値を調整(セットではない)のため
に再び用いられる。
【0075】図4から、新しいダブルワードがレジスタ
205に更にデータをロードするには取出されねばなら
ないことは明らかである。これは第3シーケンサ動作に
おいて予測された取出し動作である。L−レジスタ24
0はFF(HEX)まで減算されず、15(HEX)と
なり、かくして処理処理されるべきデータが存在する。 図4の場合にはSDR206内の残りのバイトは次のデ
ータモードの決定における支配的な条件である。ポイン
タレジスタ206を調整するために計算された値は1で
あるから、レジスタ226の予測ポインタ値は2となり
、従ってデータモード2(すなわちハーフワードデータ
モード)が次のサイクルについてステップ4で予測され
る。
【0076】更に、ステップ4において、次のCPUサ
イクルについて必要な取り出しまたは記憶に関しての予
測が再びなされる。図示の例では必要ない。
【0077】ステップ5においてレジスタ205の更新
された内容のマスクされた記憶(主記憶装置101への
)が開始される(すなわち、最も左のバイトからの49
(HEX)と隣りのバイトからの4B(HEX)と52
(HEX)が記憶されるべき値である)。更に、ステッ
プ5においてオペランド250についての次のダブルワ
ードロケーションの内容をレジスタ205に入れるため
の主記憶取出しが開始される。これは図2のオペランド
250の拡大図に示すロケーション3からのダブルワー
ドである。
【0078】次(第4)のシーケンサ動作において、S
DRポインタ225と226は夫々7と2にセットされ
、L−レジスタ240は14にセットされる(これは第
3シーケンサ動作では1バイトのみが処理されたためで
ある)。
【0079】次のシーケンサ動作については例えば、取
出されたダブルワードがバイト位置0−7に16進値7
0−77を夫々含むものとする(図2のオペランド25
0の拡大図においてダブルワード3で示すように)。
【0080】この例における第4シーケンサ動作を図5
に示しており、ステップ0において現在のデータモード
が予測されたハーフワードデータモードに更新され、S
DRポインタレジスタとL−レジスタの値が前のサイク
ルの予測値で更新される。次のステップ1はALU動作
用にSDR205と206からのデータのアラインメン
トである。これら図5にアライナ235と236におけ
るアラインされたデータで示している。次のステップ2
でALU210がアライナ235と236の出力に16
進値の和を発生する。結果は再びALU出力ブロック3
45を介してSDR205にもどされ記憶される。
【0081】第4シーケンサ動作は次に次のサイクル(
ステップ3)についてのSDRポインタとL−レジスタ
の値の予測にそして次に、SDR206に残られる1個
の未処理バイトについて次のサイクルについてのバイト
モードの予測(ステップ4)に続く。
【0082】図3−5以降の第4シーケンサ動作のこれ
ら処理ステップ後の次のシーケンス動作への連続から、
当業者はデータ取り出しと記憶の他の例(例えばオペラ
ンド255のダブルワード3が次の(第5)シーケンサ
動作中にSDR206に取込まれる)、データモードが
3にセットされる例(すなわちフルワードの4バイト処
理が、例えば図示の例では第6シーケンス動作中に可能
とされる場合)等は容易に理解しうる。
【0083】オペランド250と255に関連するすべ
てのデータはブランチ予測メカニズムの使用または水平
マイクロコードの介在なしに1つの制御ワードの制御に
より処理される。
【0084】この処理シーケンスは前述のように、L−
レジスタ240内の値がFF(HEX)まで減少したと
きに終了する。
【0085】図2−5について述べたものは本発明の原
理により動作するシーケンスがいかにして1以上のデー
タストリングについてシーケンスを行い変換するかの一
つの特定の例である。明らかに、この例は初期条件、オ
ペランドの選択等により変更しうるが、前記した6ステ
ップの処理は本発明の意図するようにハードウエアシー
ケンサに与えられる任意の初期データセットの処理に適
したものである。
【0086】このハードウエアデータストリング動作コ
ントローラ(シーケンサ)は前記した目的のすべてを達
成する。
【図面の簡単な説明】
【図1】本発明により可変長主記憶ストリング動作を行
うために新規なシーケンサに関連して利用されるコンピ
ュータシステムの一例の部分(メモリおよびプロセサ要
素のサブセット)を示す図。
【図2】この新規なシーケンサがいかにしてデータを変
換するかを説明する際に有用(後述する本発明の説明と
の関連において)である図1に示すコンピュータシステ
ムについての初期条件セットを示す図。
【図3】図1のコンピュータシステムの種々のレジスタ
内のデータ(図2に示すように初期化される)が新規な
シーケンサにより演算されるときそれらレジスタの内容
に対する変更をステップ毎に示す図。
【図4】演算時のレジスタ内容に対する変更を示す図。
【図5】演算時のレジスタ内容に対する変更を示す図。
【符号の説明】
100  コンピュータシステム 102  プロセサ 101  主記憶装置 105,106  SDR 110  ALU 115,116  RAR 125,126  SDRポインタレジスタ135,1
36  アライナロジック 140  L−レジスタ

Claims (21)

    【特許請求の範囲】
  1. 【請求項1】データ処理システムの制御記憶装置及び主
    記憶装置に接続してこの主記憶装置に記憶された少くと
    も1バイトの可変長のオペランドに関するデータについ
    て、上記制御記憶装置から取り出される1個の制御ワー
    ドの制御のもとで主記憶ストリング動作を行うための、
    下記要件を含むハードウエアデータストリング演算コン
    トローラ: (a)  一つの与えられたマシンサイクルにおいて処
    理しうる、オペランドに関係するデータの最大バイト数
    を動的に決定する手段; (b)  上記制御ワードを完全に実行するために少く
    とも複数のマシンサイクルが必要なときに部分マシンホ
    ールドオフを行う手段; (c)  上記少くとも1バイトのオペランドに関係す
    るデータを完全に処理するに必要な主記憶動作を、主記
    憶動作が行われるべきマシンサイクルの前に予測する手
    段。
  2. 【請求項2】前記コントローラはデータ処理システムの
    少くとも1個のプロセサ内に含まれており、このプロセ
    サは算術ロジックユニット(ALU)と、システムくロ
    ックと、条件コードレジスタと、前記ストリング動作を
    行うために上記コントローラにより用いられる1セット
    のポインタと少くとも1個のカウンタを含む複数のレジ
    スタと、主記憶装置から取り出されるとき未処理のオペ
    ランドに関係するデータを記憶する少くとも1個のレジ
    スタと、を含むごとくなった請求項1のコントローラ。
  3. 【請求項3】前記部分マシンホールドオフを行う手段は
    下記要件を更に含む、請求項2のコントローラ:(a)
      制御コードが前記制御記憶装置からクロックアウト
    されないようにする手段; (b)  前記カウンタとポインタの更新を選択的に禁
    止する手段; (c)  前記条件コードレジスタの更新を選択的に禁
    止する手段。
  4. 【請求項4】前記条件コードレジスタは有効ALU動作
    後にのみ更新されることを特徴とする請求項3のコント
    ローラ。
  5. 【請求項5】前記動的な決定は更に、前記与えられたマ
    シンサイクルにおいて次のマシンサイクル中に前記コン
    トローラを動作させるための複数のデータモードの内の
    1つを予測するデータモード発生器を含む請求項1のコ
    ントローラ。
  6. 【請求項6】前記データモード発生器は、前記少くとも
    1個のレジスタに処理されるべきものとして残されるデ
    ータの量、ALU動作が前記制御ワードにより特定され
    るときのALUデータ幅及びオペランドに関係するデー
    タの未処理バイトの総数を示すカウンタ値の組合せにも
    とづきデータモードを予測することを特徴とする請求項
    5のコントローラ。
  7. 【請求項7】前記データモード発生器は前記の組合せ並
    びに予測になされるマシンサイクル中の前記コントロー
    ラのデータモードにもとづきデータモードを予測するよ
    うに動作することを特徴とする請求項6のコントローラ
  8. 【請求項8】前記主記憶動作を予測する手段は更に、与
    えられたプロセサレジスタが次のマシンサイクルにおい
    て未処理データを含まないことを決定する手段を含む、
    請求項2のコントローラ。
  9. 【請求項9】前記与えられたプロセサレジスタが未処理
    データを含まないとき主記憶動作を開始させる手段を含
    み、そして更に前記オペランドに関係するデータの新し
    い部分の前記主記憶装置から前記与えられたレジスタへ
    の取出しを次に開始するように動作する請求項8のコン
    トローラ。
  10. 【請求項10】左から右及び右から左のインストラクシ
    ョンのサブセットを処理するように動作することを特徴
    とする請求項1のコントローラ。
  11. 【請求項11】水平マイクロコードを介在させずに可変
    長主記憶ストリング動作を行うように動作することを特
    徴とする請求項1のコントローラ。
  12. 【請求項12】データ処理システムの制御記憶装置及び
    主記憶装置に接続してこの主記憶装置に記憶された少く
    とも1バイトの可変長のオペランドに関係するデータに
    ついて、上記制御記憶装置から取り出される1個の制御
    ワードの制御のもとで主記憶ストリング動作を行うため
    の、下記要件を含むハードウエアデータストリングコン
    トローラ: (a)  上記主記憶装置に接続して主記憶データの緩
    衝を行うための第1及び第2記憶レジスタ(SDR);
    (b)  上記第1及び第2SDRのいずれかにより緩
    衝されるデータの主記憶装置的アドレスを保持するため
    の第1及び第2レゾルブドアドレスレジスタ(RAR)
    ;(c)  上記第1及び第2SDRに含まれる選択さ
    れたデータバイトについて算術または論理演算を行うた
    めの算術ロジックユニット(ALU); (d)  上記第1及び第2SDRに夫々関連して処理
    のための各関連SDR内のスタートバイトを示すための
    第1及び第2SDRポインタレジスタ; (e)  上記第1及び第2SDRと上記ALUの間に
    夫々接続してオペランドに関係するデータをそれについ
    てのALU動作の生じる前記その処理のためのバイトを
    アラインするための第1及び第2アライナ手段;(f)
      ストリング動作のパフォーマンス中に処理されるべ
    きものとして残る未処理バイトの総数のカウントを維持
    するために用いられる少くとも1個のカウンタ;(g)
      上記1個の制御ワードに関連するインストラクショ
    ンにもとづき上記SDRの内の少くとも1個のデータを
    変換する手段; (h)  上記少くとも1個のSDRにおいて変換され
    たデータを上記主記憶装置に回復させる手段。
  13. 【請求項13】左から右及び右から左のインストラクシ
    ョンのサブセットを処理するように動作することを特徴
    とする請求項12のコントローラ。
  14. 【請求項14】水平マイクロコードの介在とは無関係に
    可変長主記憶ストリング動作を行わせるように動作する
    ことを特徴とする請求項12のコントローラ。
  15. 【請求項15】データ処理システムの制御記憶装置と主
    記憶装置に接続するハードウエアデータストリング動作
    コントローラにより1個の制御ワードの制御にもとで少
    くとも1バイトの可変長オペランドデータについて主記
    憶ストリング動作を行わせる下記段階を含む方法:(a
    )  与えられた一つのマシンサイクルにおいて処理し
    うるオペランドに関係するデータの最大バイト数を動的
    に決定する段階; (b)  上記制御ワードを完全に実行するために少く
    とも複数のマシンサイクルが必要なとき部分マシンホー
    ルドオフを行う段階; (c)  上記少くとも1バイトのオペランドに関係す
    るデータを完全に処理するに必要な主記憶動作をその動
    作を行うマシンサイクルの前に予測する段階。
  16. 【請求項16】前記動的に決定する段階は更に少くとも
    1個のプロセサレジスタに処理されるべきとして残され
    たデータの量と、ALU動作が前記制御ワードにより特
    定されるとき算術ロジックユニット(ALU)データ幅
    とオペランドに関係するデータの未処理バイトの総数を
    示すカウンタ値とを含む条件の組合せにもとづいてデー
    タモードを予測する段階を含む、請求項14の方法。
  17. 【請求項17】前記データモードを予測する段階は前記
    条件の組合せと予測を行うマシンサイクル中の前記コン
    トローラのデータモードとしてもとづきデータモードを
    予測することを特徴とする請求項16の方法。
  18. 【請求項18】前記部分マシンホールドオフを行う段階
    は下記段階を含む、請求項15の方法:(a)  制御
    ワードの前記制御記憶からのクロックアウトを禁止する
    段階;(b)  前記カウンタとポインタの更新を選択
    的に禁止する段階;(c)  前記条件コードレジスタ
    の更新を選択的に禁止する段階。
  19. 【請求項19】前記主記憶動作を予測する段階は、与え
    られたプロセサレジスタが未処理データを含まないとき
    を決定する段階を含む、請求項18の方法。
  20. 【請求項20】下記段階を更に含む請求項19の方法:
    (a)  前記与えられたプロセサレジスタが未処理デ
    ータを含まないとき前記主記憶装置への記憶動作を開始
    する段階; (b)  それに続いて前記オペランドに関係するデー
    タの新しい部分の主記憶装置から上記与えられたレジス
    タへの取出しを開始する段階。
  21. 【請求項21】データ処理システムの制御記憶装置と主
    記憶装置とに接続するハードウエアデータストリング動
    作コントローラを介して一つの制御ワードの制御のもと
    で少くとも1バイトの可変長オペランドデータについて
    の主記憶ストリング動作を行うための、下記段階を含む
    方法: (a)  上記主記憶装置に接続する第1及び第2記憶
    データレジスタ(SDR)への主記憶データを緩衝する
    段階; (b)  上記第1及び第2SDRにより緩衝されてい
    るデータの主記憶装置アドレスを第1及び第2レゾルブ
    ドアドレスレジスタ(RAR)に記憶する段階;(c)
      算術ロジックユニット(ALU)を用いて上記第1
    及び第2SDR内に含まれる選択されたデータバイトに
    ついての算術または論理演算を行う段階;(d)  上
    記第1及び第2SDRの夫々に関連する第1及び第2S
    DRポインタレジスタを用いて各SDR内の処理しうる
    スタートバイトを示す段階;(e)  上記第1及び第
    2SDRと上記ALUとの間に夫々接続する第1及び第
    2アライナ手段により、処理しうるオペランドに関係す
    るデータのALU演算の前にそれらデータのバイトをア
    ラインする段階;(f)  ソトリング動作のパフォー
    マンス中処理されるべきとして残る未処理バイトの総数
    のカウントを少くとも1個のカウンタに維持する段階; (g)  上記1個の制御ワードに関連するインストラ
    クションにもとづき上記少くとも1個のSDR内のデー
    タを変換する段階; (h)  上記少くとも1個のSDRにおいて変換され
    たデータを上記主記憶装置に回復する段階。
JP2417818A 1990-01-24 1990-12-26 ハードウエアデータストリング演算コントローラ及び主記憶ストリング動作を行わせる方法 Pending JPH04296937A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/469,619 US5168571A (en) 1990-01-24 1990-01-24 System for aligning bytes of variable multi-bytes length operand based on alu byte length and a number of unprocessed byte data
US469619 1990-01-24

Publications (1)

Publication Number Publication Date
JPH04296937A true JPH04296937A (ja) 1992-10-21

Family

ID=23864455

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2417818A Pending JPH04296937A (ja) 1990-01-24 1990-12-26 ハードウエアデータストリング演算コントローラ及び主記憶ストリング動作を行わせる方法

Country Status (3)

Country Link
US (1) US5168571A (ja)
EP (1) EP0438961A3 (ja)
JP (1) JPH04296937A (ja)

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5442769A (en) * 1990-03-13 1995-08-15 At&T Corp. Processor having general registers with subdivisions addressable in instructions by register number and subdivision type
WO1992006426A1 (en) * 1990-10-09 1992-04-16 Nexgen Microsystems Method and apparatus for parallel decoding of instructions with branch prediction look-up
JPH04156613A (ja) * 1990-10-20 1992-05-29 Fujitsu Ltd 命令バッファ装置
US5438668A (en) * 1992-03-31 1995-08-01 Seiko Epson Corporation System and method for extraction, alignment and decoding of CISC instructions into a nano-instruction bucket for execution by a RISC computer
US5418922A (en) * 1992-04-30 1995-05-23 International Business Machines Corporation History table for set prediction for accessing a set associative cache
US6735685B1 (en) 1992-09-29 2004-05-11 Seiko Epson Corporation System and method for handling load and/or store operations in a superscalar microprocessor
DE69329778T2 (de) * 1992-09-29 2001-04-26 Seiko Epson Corp., Tokio/Tokyo System und verfahren zur handhabung von laden und/oder speichern in einem superskalar mikroprozessor
CA2162115A1 (en) * 1993-06-14 1994-12-22 David V. James Method and apparatus for finding a termination character within a variable-length character string on a processor
US5584009A (en) * 1993-10-18 1996-12-10 Cyrix Corporation System and method of retiring store data from a write buffer
US5740398A (en) * 1993-10-18 1998-04-14 Cyrix Corporation Program order sequencing of data in a microprocessor with write buffer
US5615402A (en) * 1993-10-18 1997-03-25 Cyrix Corporation Unified write buffer having information identifying whether the address belongs to a first write operand or a second write operand having an extra wide latch
US5471598A (en) * 1993-10-18 1995-11-28 Cyrix Corporation Data dependency detection and handling in a microprocessor with write buffer
US6219773B1 (en) * 1993-10-18 2001-04-17 Via-Cyrix, Inc. System and method of retiring misaligned write operands from a write buffer
US5600806A (en) * 1994-03-01 1997-02-04 Intel Corporation Method and apparatus for aligning an instruction boundary in variable length macroinstructions with an instruction buffer
US5537629A (en) * 1994-03-01 1996-07-16 Intel Corporation Decoder for single cycle decoding of single prefixes in variable length instructions
US5608885A (en) * 1994-03-01 1997-03-04 Intel Corporation Method for handling instructions from a branch prior to instruction decoding in a computer which executes variable-length instructions
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
US5630083A (en) * 1994-03-01 1997-05-13 Intel Corporation Decoder for decoding multiple instructions in parallel
US5586277A (en) * 1994-03-01 1996-12-17 Intel Corporation Method for parallel steering of fixed length fields containing a variable length instruction from an instruction buffer to parallel decoders
US5673427A (en) * 1994-03-01 1997-09-30 Intel Corporation Packing valid micro operations received from a parallel decoder into adjacent locations of an output queue
US5566298A (en) * 1994-03-01 1996-10-15 Intel Corporation Method for state recovery during assist and restart in a decoder having an alias mechanism
JPH07281890A (ja) * 1994-04-06 1995-10-27 Mitsubishi Electric Corp 命令セット及びそのマイクロコンピュータによる実行方法
US5590352A (en) * 1994-04-26 1996-12-31 Advanced Micro Devices, Inc. Dependency checking and forwarding of variable width operands
US5758116A (en) * 1994-09-30 1998-05-26 Intel Corporation Instruction length decoder for generating output length indicia to identity boundaries between variable length instructions
US6738793B2 (en) * 1994-12-01 2004-05-18 Intel Corporation Processor capable of executing packed shift operations
US6275834B1 (en) 1994-12-01 2001-08-14 Intel Corporation Apparatus for performing packed shift operations
CN1326033C (zh) 1994-12-02 2007-07-11 英特尔公司 可以对复合操作数进行压缩操作的微处理器
IL116210A0 (en) * 1994-12-02 1996-01-31 Intel Corp Microprocessor having a compare operation and a method of comparing packed data in a processor
US5867701A (en) * 1995-06-12 1999-02-02 Intel Corporation System for inserting a supplemental micro-operation flow into a macroinstruction-generated micro-operation flow
US5815421A (en) * 1995-12-18 1998-09-29 Intel Corporation Method for transposing a two-dimensional array
US5907842A (en) * 1995-12-20 1999-05-25 Intel Corporation Method of sorting numbers to obtain maxima/minima values with ordering
US5893930A (en) * 1996-07-12 1999-04-13 International Business Machines Corporation Predictive translation of a data address utilizing sets of associative entries stored consecutively in a translation lookaside buffer
JP2885197B2 (ja) * 1996-08-16 1999-04-19 日本電気株式会社 演算処理装置及び演算処理方法
US5954806A (en) * 1996-09-30 1999-09-21 Lsi Logic Corporation Method to handle SCSI messages as a target
US6041404A (en) 1998-03-31 2000-03-21 Intel Corporation Dual function system and method for shuffling packed data elements
US6131108A (en) * 1998-03-31 2000-10-10 Lsi Logic Corporation Apparatus, and associated method, for generating multi-bit length sequences
US7155601B2 (en) * 2001-02-14 2006-12-26 Intel Corporation Multi-element operand sub-portion shuffle instruction execution
US20040054877A1 (en) * 2001-10-29 2004-03-18 Macy William W. Method and apparatus for shuffling data
US7624138B2 (en) 2001-10-29 2009-11-24 Intel Corporation Method and apparatus for efficient integer transform
US7739319B2 (en) * 2001-10-29 2010-06-15 Intel Corporation Method and apparatus for parallel table lookup using SIMD instructions
US7725521B2 (en) * 2001-10-29 2010-05-25 Intel Corporation Method and apparatus for computing matrix transformations
US7818356B2 (en) 2001-10-29 2010-10-19 Intel Corporation Bitstream buffer manipulation with a SIMD merge instruction
US7631025B2 (en) * 2001-10-29 2009-12-08 Intel Corporation Method and apparatus for rearranging data between multiple registers
US7685212B2 (en) * 2001-10-29 2010-03-23 Intel Corporation Fast full search motion estimation with SIMD merge instruction
US7047383B2 (en) * 2002-07-11 2006-05-16 Intel Corporation Byte swap operation for a 64 bit operand
JP3886870B2 (ja) * 2002-09-06 2007-02-28 株式会社ルネサステクノロジ データ処理装置
US7698539B1 (en) * 2003-07-16 2010-04-13 Banning John P System and method of instruction modification
JP4147423B2 (ja) * 2004-11-12 2008-09-10 セイコーエプソン株式会社 任意精度演算器、任意精度演算方法、および電子機器
US8078836B2 (en) 2007-12-30 2011-12-13 Intel Corporation Vector shuffle instructions operating on multiple lanes each having a plurality of data elements using a common set of per-lane control bits
US8495341B2 (en) * 2010-02-17 2013-07-23 International Business Machines Corporation Instruction length based cracking for instruction of variable length storage operands
JP2013222364A (ja) * 2012-04-18 2013-10-28 Renesas Electronics Corp 信号処理回路

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57164336A (en) * 1981-03-31 1982-10-08 Fujitsu Ltd Processing system for variable word length
JPS61100836A (ja) * 1984-10-04 1986-05-19 Fujitsu Ltd 移動命令論理比較命令処理方式
JPS6221128A (ja) * 1985-07-19 1987-01-29 Matsushita Electric Ind Co Ltd 光ヘテロダイン検波装置
EP0317473A2 (en) * 1987-11-17 1989-05-24 International Business Machines Corporation Microcode branch based upon operand length and alignment

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3331056A (en) * 1964-07-15 1967-07-11 Honeywell Inc Variable width addressing arrangement
DE2529348A1 (de) * 1975-07-01 1977-01-13 Siemens Ag Verfahren zum verarbeiten von maschinenbefehlen mit bytefeldoperanden in einem mikroprogrammierten prozessor einer datenverarbeitungsanlage
US4037213A (en) * 1976-04-23 1977-07-19 International Business Machines Corporation Data processor using a four section instruction format for control of multi-operation functions by a single instruction
JPS6041768B2 (ja) * 1979-01-19 1985-09-18 株式会社日立製作所 デ−タ処理装置
JPS5743239A (en) * 1980-08-27 1982-03-11 Hitachi Ltd Data processor
US4654781A (en) * 1981-10-02 1987-03-31 Raytheon Company Byte addressable memory for variable length instructions and data
JPS5858653A (ja) * 1981-10-02 1983-04-07 Hitachi Ltd デ−タ処理装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57164336A (en) * 1981-03-31 1982-10-08 Fujitsu Ltd Processing system for variable word length
JPS61100836A (ja) * 1984-10-04 1986-05-19 Fujitsu Ltd 移動命令論理比較命令処理方式
JPS6221128A (ja) * 1985-07-19 1987-01-29 Matsushita Electric Ind Co Ltd 光ヘテロダイン検波装置
EP0317473A2 (en) * 1987-11-17 1989-05-24 International Business Machines Corporation Microcode branch based upon operand length and alignment

Also Published As

Publication number Publication date
EP0438961A2 (en) 1991-07-31
EP0438961A3 (en) 1992-01-02
US5168571A (en) 1992-12-01

Similar Documents

Publication Publication Date Title
JPH04296937A (ja) ハードウエアデータストリング演算コントローラ及び主記憶ストリング動作を行わせる方法
US4439828A (en) Instruction substitution mechanism in an instruction handling unit of a data processing system
US5297281A (en) Multiple sequence processor system
US5497468A (en) Data processor that utilizes full data width when processing a string operation
JPH03116233A (ja) データプロセッサの命令処理システム
JPH03116235A (ja) 分岐処理方法及び分岐処理装置
JPH01502700A (ja) 境界合せされていないリファレンスを処理するrisc型コンピュータ及び同処理の方法
US5905881A (en) Delayed state writes for an instruction processor
US4562538A (en) Microprocessor having decision pointer to process restore position
US5313644A (en) System having status update controller for determining which one of parallel operation results of execution units is allowed to set conditions of shared processor status word
US4541047A (en) Pipelined data processing system
US4739470A (en) Data processing system
US4773035A (en) Pipelined data processing system utilizing ideal floating point execution condition detection
JPH04260930A (ja) データ処理装置
GB2284492A (en) Data processor with instruction decompression unit
EP0317473A2 (en) Microcode branch based upon operand length and alignment
JPH04260927A (ja) データ処理装置
KR100267434B1 (ko) 제 1 처리 환경내에서 제 1 명령어를 에뮬레이션 환경내에서의제 2 명령어 처리 개시에 응하여 처리하는 방법 및 시스템
JPH04260929A (ja) データ処理装置
JPH09152971A (ja) データ処理装置
US5519881A (en) Priority encoder for accessing multiple registers simultaneously and a data processing system which uses it
JPH04260926A (ja) ビット検索回路及びそれを備えたデータ処理装置
JPH0248932B2 (ja)
JP2583614B2 (ja) ベクトル演算装置
JPH04260928A (ja) データ処理装置