JPH0831032B2 - データ処理装置 - Google Patents
データ処理装置Info
- Publication number
- JPH0831032B2 JPH0831032B2 JP2231964A JP23196490A JPH0831032B2 JP H0831032 B2 JPH0831032 B2 JP H0831032B2 JP 2231964 A JP2231964 A JP 2231964A JP 23196490 A JP23196490 A JP 23196490A JP H0831032 B2 JPH0831032 B2 JP H0831032B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- register
- instruction
- comparison
- address
- 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 - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/02—Comparing digital values
- G06F7/026—Magnitude comparison, i.e. determining the relative order of operands based on their numerical value, e.g. window comparator
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30021—Compare instructions, e.g. Greater-Than, Equal-To, MINMAX
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30032—Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
- G06F9/30167—Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Executing Machine-Instructions (AREA)
Description
操作を高速で実行可能なデータ処理装置に関する。
ては、8ビット,16ビット,または32ビットのデータ
(以下、それぞれのデータをエレメントと称す)を任意
の数だけ連続して並べたデータ(以下、これをストリン
グと称す)の転送,比較,検索等の処理を行う。従来の
データ処理装置においてそのような処理を行う場合、エ
レメント単位での転送,比較,検索をストリングの長さ
に応じた回数だけ反復することによって任意長のストリ
ングの転送,比較,検索を実行していた。
サの従来例としては、例えばインテル社の「i486TM PRO
CESSOR PROGRAMMER'REFERENCE MAMUAL 1990」の3.6章に
詳しく記載されている。
て、エレメント単位でのデータの転送,比較,検索を行
う場合、操作の対象となるエレメント単位のデータと、
命令の終了を指定する比較値とを演算器で比較すること
により命令終了条件を検出している。しかし、エレメン
トのサイズが8ビット,16ビットである場合、例えば32
ビット幅の演算器では残りの24ビット,16ビットが比較
に使用されず、ストリングの転送,比較,検索を行う命
令の実行に際して処理速度の高速化が図れないう問題点
があった。
たものであり、ストリングを構成する各エレメントのビ
ット数が演算器のビット幅のたとえば1/2あるいは1/4で
あるような場合に、ストリングを操作する命令を高速実
行し得るデータ処理装置の提供を目的とする。
ードする命令デコーダと、このデコーダに接続されてい
て比較の対象となるデータを保持するレジスタと、比較
するデータを保持するレジスタと、両レジスタに接続さ
れたたとえば32ビット幅の演算器(比較手段)と、この
演算器によるたとえば各8ビットのデータの比較結果に
ついて論理和演算と論理積演算とをそれぞれ行う比較判
定回路とを備えている。
デコードする命令デコーダと、この命令デコーダに接続
していて操作の対象となるストリングの先頭アドレスを
保持するアドレスレジスタと、このアドレスレジスタに
保持されているアドレスで指定される複数のデータエレ
メントにて構成されたデータをデータ入出力回路からフ
ェッチして保持するレジスタと、転送すべきストリング
のデータと同数のデータエレメント数にて構成された比
較データを保持するレジスタと、両レジスタに接続され
たたとえば32ビット幅の演算器(比較手段)と、この演
算器の各8ビットのデータの比較結果の論理和演算を行
う比較判定回路とを備えている。
デコードする命令デコーダと、この命令デコーダに接続
されていて被比較ストリングのエレメント数を保持する
レジスタ(デクリメンタ)と、被比較ストリングの先頭
アドレスを保持するアドレスレジスタと、このアドレス
レジスタに保持されているアドレスで指定される複数の
データエレメントにて構成されたデータをデータ入出力
回路からフェッチして保持するレジスタと、比較ストリ
ングの先頭アドレスを保持するアドレスレジスタと、こ
のアドレスレジスタのアドレスで指定される複数のデー
タエレメントからなるデータをデータ入出力回路からフ
ェッチして保持するレジスタと、両レジスタに接続され
た例えば32ビット幅の演算器(比較手段)と、この演算
器の各8ビットのデータの比較結果とデクリメンタで計
算された処理すべき残りエレメント数とが演算器で一度
に比較可能なエレメント数以下になった場合に検出され
る検出信号の論理和演算を行う比較判定回路とを有す
る。
とえば8ビット毎に検出された4つの比較結果の論理和
演算を比較判定回路で行うことによって各8ビットのエ
レメントにて構成される4個のデータの比較を並列処理
し、各8ビットについて検出された4つの比較結果の2
つずつの論理積の論理和演算を比較判定回路で行うこと
によって16ビットのエレメントにて構成されるデータの
比較動作が2つ並列実行され、、また各8ビット毎に検
出された4つの比較結果の論理積演算を行うことによっ
て32ビットサイズのエレメントにて構成されるデータの
比較動作が実行される。
エレメントサイズにて構成され、最後のデータエレメン
トのみが比較値と同一であるストリングデータを転送す
る命令を実行する場合、メモリからフェッチされた転送
対象エレメントを4つまたは2つ保持する32ビットのレ
ジスタの値と比較値を保持する32ビットのレジスタの値
とをそれぞれの8ビットまたは16ビット同士で比較し、
検出された4つまたは2つの比較結果の論理和演算を比
較判定回路で行うことによって、8ビット,16ビットサ
イズのエレメントにて構成される転送対象データの最後
のデータエレメントの検索動作が並列に実行され、一度
に4つまたは2つのエレメントを同時に処理する動作が
反復されてストリングデータが転送される。
ントサイズにて構成される2つのストリングデータを比
較する命令を実行する場合、操作対象エレメントの数を
デクリメンタに保持し、メモリからフェッチされた2つ
の比較対象ストリングをそれぞれ8ビットサイズであれ
ば4つまたは16ビットサイズであれば2つ保持する32ビ
ットの2つのレジスタの値を各8ビットまたは16ビット
同士で比較し、この比較結果とデクリメンタの値とが演
算器で比較可能なエレメント数以下になった時点で検出
される検出信号との論理和演算を比較判定回路で行うこ
とにより、一度に複数のエレメントの比較を並列に行う
処理が反復されてストリングデータの比較処理が行われ
る。
ンタに保持された数だけ既に判定処理が行われたとき
は、デクリメンタに保持されたエレメント数の比較条件
でストリング比較命令の終了を決定する。これは一致/
不一致の判定を並列実行することで可能となる機能であ
る。
する。
術演算,シフト,論理演算等の命令を実行する他、スト
リング操作命令と称される4種類の命令を実行すること
が可能である。
のデータを任意の数だけ連続して並べたデータのタイプ
である。ストリング操作命令には、ストリングの転送を
行うSMOV命令,ストリングの比較を行うSCMP命令,スト
リングの中から特定の条件を満たす要素を捜しだすSSCH
命令,予め指定された値をストリングの要素として繰返
し書込みを行うSSTR命令等がある。
1文字が表される文字列を処理する他、特定のビットパ
ターンのサーチ,メモリのブロック転送,構造体の代
入、メモリ領域のクリア等にも使用される。操作の対象
となるストリングの範囲を示す方法には、以下の2通り
の方法がある。
する方法 本発明のデータ処理装置ではストリング操作に際して
はエレメント数がパラメータとなっており、更に割出し
条件という形でターミネータあるいは命令の終了条件を
与えることができる。また、ストリング命令の割出し条
件として大小比較及び2値比較を含む豊富な割出し条件
が指定可能に構成されている。これらのストリング命令
の内のSMOV命令,SCMP命令及びSSCH命令は、所定のエレ
メント数を対象とした一回の転送,比較,検索が終了す
る都度、次に操作されるべき全エレメントについてエレ
メント値と比較値とが比較されて割出し条件がチェック
される。全てのエレメントで割出し条件が成立しなかっ
た場合は、所定のエレメント数だけ転送,比較,検索が
行われる。
を例にとり、その処理方法を説明する。また、ストリン
グ命令の割出し条件として、2値比較の条件を指定した
場合について説明する。
のオペレーションコードをそれぞれ表した模式図であ
る。
ている2ビットはエレメントサイズと割出し条件の比較
値のサイズとを指定し、“sx"=“00"であれば8ビット
を、“sx"=“01"であれば16ビットを、“sx"=“10"で
あれば32ビットをそれぞれ指定する。
である場合にはストリング操作の処理をアドレスの増加
方向へ進めることを指定し、“b"=“1"である場合には
ストリング操作の処理をアドレスの減少方向へ進めるこ
とを指定する。
比較割出し条件を指定する。“eeee"の4ビットにより
指定可能な条件とそのビットパターンとを第17図に示
す。
小関係,等/不等関係及び条件無しである。
ロック図である。
ると、命令フェッチ部1,命令デコード部2,PC計算部3,オ
ペランドアドレス計算部4,マイクロROM部5,データ演算
部6,外部バスインタフェイス部7に分かれる。
アドレス出力回路8と、CPU外部とデータを入出力する
データ入出力回路9とを他の機能ブロック部と分けて示
してある。
びその制御部等があり、次にフェッチすべき命令のアド
レスを決定して命令キャッシュあるいはCPU外部のメモ
リから命令をフェッチする。また、命令フェッチ部1は
命令キャッシュへの命令登録も行う。
力されるべき命令のアドレスとして専用のカウンタにお
いて計算される。分岐,ジャンプが発生した場合には、
新たな命令のアドレスがPC計算部3またはデータ演算部
6から転送されてくる。
ッチする場合は、フェッチすべき命令のアドレスを外部
バスインタフェイス部7を通じてアドレス出力回路8か
らCPU外部へ出力し、データ入出力回路9から命令コー
ドをフェッチする。
2で次にデコードすべき命令コードが命令デコード部2
へ出力される。
ード)単位で命令コードをデコードする。この命令デコ
ード部2には第1ハーフワードに含まれるオペレーショ
ンコードをデコードするFHW(First Half Word)デコー
ダ,第2及び第3ハーフワードに含まれるオペレーショ
ンコードをデコードするNFHW(Not First Half Word)
デコーダ,アドレッシングモードをデコードするアドレ
ッシングモードデコーダが含まれる。
にデコードしてマイクロROMのエントリアドレスを計算
する第2デコーダ,条件分岐命令の分岐予測を行う分岐
予測機構,オペランドアドレス計算に際してパイプライ
ンコンフリクトをチェックするアドレス計算コンフリク
トチェック機構も含まれる。
命令コードを2クロックにつき0乃至6バイトの割合で
デコードする。デコード結果の内、データ演算部6での
演算に関係する情報がマイクロROM部5へ、オペランド
アドレス計算に関係する情報がオペランドアドレス計算
部4へ、PC計算に関係する情報がPC計算部3へそれぞれ
出力される処理。
マイクロプログラムが格納されているマイクロROM,マイ
クロシーケンサ,マイクロ命令デコーダ等が含まれる。
度読出される。マイクロシーケンサはマイクロプログラ
ムにより示されるシーケンス処理の他に、例外,割込及
びトラップ(この3つを併せてEITと称す)の処理をハ
ードウエア的に受付ける。また、マイクロROM部5はス
トアバッファの管理も行う。マイクロROM部5には命令
コードに依存しない割込み,演算実行結果によるフラッ
グ情報と、第2デコーダの出力等の命令デコード部2の
出力とが入力される。マイクロデコーダの出力は主にデ
ータ演算部6へ出力されるが、ジャンプ命令の実行の際
の他の先行処理中止情報等の一部の情報は他のブロック
へも出力される。
アドレスデコーダ等から出力されたオペランドアドレス
計算に関係する情報によりハードワイヤードに制御され
る。
ドレス計算に関するほとんどの処理が行われる。メモリ
間接アドレッシングのためのメモリアクセスのアドレス
あるいはオペランドアドレスがメモリにマップされたI/
O領域に入るか否かのチェックも行われる。
は外部バスインタフェイス部7へ送られる。またこのオ
ペランドアドレス計算部4におけるアドレス計算に必要
な汎用レジスタ及びプログラムカウンタの値はデータ演
算部6から入力される。
ングを行う場合は、参照すべきメモリアドレスを外部バ
スインタフェイス部7を通じてアドレス出力回路8から
CPU外部へ出力し、データ入出力部9から入力された間
接アドレス値を命令デコード部2をそのまま通過させて
フェッチする。
に関係する情報でハードワイヤードに制御され、命令の
PC値を計算する。
おり、命令をデコードした後でないとその命令の長さが
判明しない。このため、PC計算部3は命令デコード部2
から出力される命令長をデコード中の命令のPC値に加算
することにより、次の命令のPC値を生成する。また、命
令デコード部2が分岐命令をデコードしてデコード段階
での分岐を支持した場合は、命令長の代わりに分岐変位
を分岐命令のPC値に加算することにより分岐先命令のPC
値を計算する。
を本発明のデータ処理装置ではプリブランチと称する。
報及び特開昭63−55639号公報において詳しく述べられ
ている。
コード結果と共に出力される他、プリブランチ時には次
にデコードすべき命令のアドレスとして命令フェッチ部
1へ出力され、更に次に命令デコード部2でデコードさ
れる命令の分岐予測のためのアドレスにも使用される。
おいて詳しく述べられている。
れ、マイクロROM部5が出力する情報に従って各命令の
機能を実現するために必要な演算をレジスタと演算器と
で実行する。
る場合には、データ演算部6はオペランドアドレス計算
部4で計算されたアドレスまたは即値を外部バスインタ
フェイス部7を通じて得る。また、演算対象となるオペ
ランドがCPU外部のメモリにあるデータである場合に
は、データ演算部6はアドレス計算部4で計算されたア
ドレスをバスインタフェイス部7にアドレス出力回路8
から出力させ、これに応じてCPU外部のメモリからフェ
ッチしたオペランドをデータ入出力回路9から得る。
タ,プライオリティエンコーダ,カウンタ,シフトレジ
スタ等が備えられている。レジスタと主な演算器との間
は3バスで結合されており、1つのレジスタ間演算を指
示する1マイクロ命令は2クロックサイクルで処理され
る。
リをアクセスする必要がある場合は、マイクロプログラ
ムの指示により外部バスインタフェイス部7を通じてア
ドレス出力回路8からアドレスをCPU外部へ出力させる
ことにより、データ入出力回路9を通じて目的のデータ
をフェッチする。
タ演算部6は外部バスインタフェイス部7を通じてアド
レス出力回路8からアドレスを出力すると同時にデータ
入出力回路9からデータをCPU外部へ出力する。
6は4バイトのストアバッファを有している。
な命令アドレスをデータ演算部6が得た場合は、これを
命令フェッチ部1とPC計算部3とへ出力する。
置の外部バスでの通信を制御する。メモリのアクセスは
全てクロック同期で行われ、最小2クロックサイクルで
行うことができる。
ドレス計算部4,データ演算部6からそれぞれ独立して発
生する。外部バスインタフェイス部7はこれらのメモリ
アクセス要求を調停する。更に、メモリとCPUとを結ぶ
データバスサイズである32ビット(1ワード)の整置境
界を跨ぐメモリ番地にあるデータのアクセスは、この外
部バスインタフェイス部7内で自動的にワード境界を跨
ぐことを検知して2回のメモリアクセスに分解して行
う。
ンドとが重なる場合のコンフリクト防止処理及びストア
オペランドからフェッチオペランドへのバイパス処理も
この外部バスインタフェイス部7において処理される。
構成」 第2図は、本発明のデータ処理装置のストリング命令
の実行に必要な要部の構成を示すブロック図である。ま
ずその構成について説明する。
バス,S2バス,DOバスと称される。
べきアドレスをセットする32ビットのメモリアドレスレ
ジスタであり、13はAA1レジスタと称され、14はAA2レジ
スタと称される。両レジスタ13,14へのアドレスの入出
力はそれぞれS1バス10を介して行われる。また、メモリ
アドレスレジスタ13,14にはカウント値指定レジスタ15,
16がそれぞれ備えられており、“1",“2",“3"または
“4"のインクリメント及びデクリメントが可能である。
ァイルであり、R0レジスタからR(N−1)レジスタに
て構成されている。各レジスタR0,R1…はDOバス12から
の入力経路と、S1バス10及びS2バス11への出力経路とを
備えている。
33ビット(32ビット+1ビットの拡張ビット)のレジス
タであり、S1バス10とS2バス11とからの入力経路及びAL
U22への出力経路とを有する。両ALUレジスタ18,19はサ
イズ,符号に応じて入力データを33ビットデータに符号
拡張または0拡張する。
とから送られてくるデータ間の加減算及び論理演算を実
行し、結果をSレジスタ27へ出力する。また、ALU22は
8ビット単位でデータの一致、不一致を検出し、結果を
ストリング比較結果判定回路23へ出力する。
DOバス12及びALU22への出力経路とを有する。デクリメ
ンタ20は32ビット幅のレジスタであり、一度に“1",
“2",“3"または“4"だけデクリメントするカウント値
指定レジスタ21と、自身の値が“0"になった場合に“1"
がセットされるゼロフラグ部26とを備えている。
モリデータレジスタ(2)であり、共に外部メモリへ書
込むデータあるいは外部メモリから読出されたデータを
格納するためのレジスタである。両レジスタ25,28はDO
バス12からの入力経路とS1バス10及びS2バス11への出力
経路とをそれぞれ備えている。
ある。メモリをアクセスする際には必ず整置回路24を通
じて行われる。
較された比較結果とデクリメンタ20の値と、ストリング
比較結果保持レジスタ29の値とから、2つのデータに対
して一致、不一致を検出してストリング命令の実行を終
了するか否かを決定する。更にストリング比較結果判定
回路23は、デクリメンタ20の値を更新するカウント値指
定レジスタ21の値と、メモリアドレスレジスタ13,14の
値を更新するカウント値指定レジスタ15,16の値とをセ
ットする。また、一致、不一致結果をストリング比較結
果保持レジスタ29に書込み、デスティネーション側に書
込むソースデータのデータサイズを整置回路24へ出力す
る。
に比較の対象となる第1のソースデータと比較値との比
較結果をストリング比較結果判定回路23から入力して保
持し、第1のソースデータと第2のソースデータとを比
較する際に再びストリング比較結果判定回路23へ比較結
果を出力する。
ロプログラム制御方式で行っている。
可能なオペレーションの定義内容を示す。まず、この第
3図を参照して各マイクロフィールドについて説明す
る。
る。ALU22は、ALUレジスタ(A)18またはALUレジスタ
(B)19にオペランドを取込む際に符号拡張/ゼロ拡張
を行う。
発明のデータ処理装置に使用されているALU22は加算器
を基本とした算術演算回路に論理積、論理和などの論理
演算回路の機能を有しており、AOPフィールドの指定に
より加算,減算,論理積,論理和及び比較の各演算を行
う。
タ(A)18とALUレジスタ(B)19との入力制御を指定
する。具体的には、S1バス10またはS2バス11から入力し
たデータをそのままALU22へ転送する,S1バス10またはS2
バス11から入力したデータを反転してALU22へ転送する,
ALUレジスタ(A)18またはALUレジスタ(B)19をクリ
アする,データ入力を行わないのいずれかの処理が可能
である。
(A)18にオペランドを取込む際に、符号/ゼロ拡張を
行うサイズをワード(32ビット),ハーフワード(16ビ
ット),バイト(8ビット)のいずれかで指定する。
(B)19にオペランドを取込む際に、符号/ゼロ拡張を
行うサイズをワード,ハーフワード,バイトのいずれか
で指定する。
力するか、またいずれのレジスタからDOバス12出力する
かを指定する。具体的には、演算結果をALU22へ戻す,S
レジスタ27の内容をDOバス12へ出力する,ALU22からDOバ
ス12への出力を禁止するのいずれかが指定可能である。
ALU22のファンクションを、ALU制御関係の各マイクロフ
ィールドで指定可能なオペレーションの組合せで定義し
た一覧表である。
を、マイクロプログラムの制御により各ファンクション
を組合せることにより処理する。
U22の構成を示すブロック図である。
加算器を基本とした算術演算回路に論理積,論理和等を
行うための論理演算回路の機能を併せ持っている。
ット回路を示している。これらの各1ビット回路B00〜B
31はそれぞれALUレジスタ(A)18からの入力経路IA00
〜IA31と、ALUレジスタ(B)19からの入力経路IB00〜I
B31と、演算結果をSレジスタ27へ出力する経路O00〜O3
1とを有している。
力経路30と、演算結果がオーバフローまたはアンダーフ
ローした場合にセットされるVフラグ,負になった場合
にセットされるLフラグ,加減算の桁上がり,桁下がり
を示すXフラグ等を生成するための出力経路31も有して
いる。更に、本実施例のALU22は4ビット毎にCLA(Carr
y Look Head)C1〜C4を有していて演算の高速化を図っ
ている。
ット毎に排他的論理和をとった値の反転信号を入力とす
るNANDゲート41〜48と、その出力信号を入力とするNOR
ゲート51〜54と、その出力信号を入力とするインバータ
61〜64とを備えており、各NORゲート51〜54の出力71〜7
4と各インバータ61〜64の出力81〜84とをストリング比
較結果判定回路へ出力する経路を有する。
のデータが一致した事を、NORゲート52の出力信号72が
“1"であれば2バイト目のデータが一致した事を、NOR
ゲート53の出力信号73が“1"であれば3バイト目のデー
タが一致した事を、NORゲート54の出力信号74が“1"で
あれば4バイト目のデータが一致した事をそれぞれ示
す。
のデータが不一致した事を、インバータ62の出力信号82
が“1"であれば2バイト目のデータが不一致した事を、
インバータ63の出力信号83が“1"であれば3バイト目の
データが不一致した事を、インバータ84の出力信号が
“1"であれば4バイト目のデータが不一致した事をそれ
ぞれ示す。
ント値指定レジスタ15,16及び21,整置回路24,デクリメ
ンタ20,比較結果保持レジスタ29の接続関係の詳細を示
したブロック図である。
致した場合に“1"になるNORゲート51〜54の出力信号71
〜74と不一致した時に“1"になるインバータ61〜64の出
力信号81〜84とにて構成される8ビットの信号92をスト
リング比較結果判定回路23へ出力している。
にその値を示す2ビットの信号93をストリング比較結果
判定回路23へ出力している。
ジスタ29からの入力経路97を有している。
とデクリメンタ20の値とから比較値のデータサイズに応
じてデクリメンタ20の値を更新するためのカウント値指
定レジスタ21の値をセットする2ビットの信号94と、ア
ドレスレジスタ13,14の値を更新するためのカウント値
指定レジスタ15,16の値をセットする経路95と、デステ
ィネーション側に書込むソースデータのデータサイズを
示す2ビットの信号を整置回路24へ出力する経路96と、
比較結果を比較結果保持レジスタ29にセットする経路98
とを有している。
れた1バイト毎の比較結果の論理和演算を行うことによ
り、8ビッまたは16ビットのエレメントサイズで構成さ
れるストリングデータの比較動作を並列に行い、更に各
1バイトの比較結果を論理積演算することにより、32ビ
ットのエレメントサイズで構成されるストリングデータ
の比較動作を行う。ストリング比較結果判定回路23が各
カウント値指定レジスタ15,16,21へ出力する2ビットの
信号95,94は、“00"=1,“01=2,“10"=3,“11"=4の
カウンタ値のセットをそれぞれ指定する。また、整置回
路24へ出力される2ビットの信号96は、“00"で1バイ
ト,“01"で2バイト,“10"で3バイト,“11"で4バ
イトのデータ幅をそれぞれ指定する。
体的に説明する。
命令の種類とタイミングにより以下の三通りに分かれ
る。
メンタ20の値とから実行命令を終了するか否かを決定
し、カウント値指定レジスタ15,16,21の値と整置回路24
へ出力するデータサイズの値とをセットする場合であ
る。
値とを比較するサイクルにおいて、ALU22の比較結果の
みから比較結果を比較保持レジスタ29にセットする場合
である。
のソースデータとを比較するサイクルにおいて、比較結
果保持レジスタ29の値と、ALU22の比較結果と、デクリ
メンタ20の値とから実行命令を終了するか否かを決定
し、カウント値指定レジスタ15,16,21の値をセットする
場合である。
23がALU22の比較結果とデクリメンタ20の値とから、実
行命令を終了するか否かを決定し、カウント値指定レジ
スタ15,16,21の値と整置回路24へ出力するデータサイズ
の値とをセットする場合について説明する。
結果からカウント値指定レジスタ15,16,21にセットする
値と、整置回路24へ出力するデータ幅の値とを示す模式
図であり、比較値のデータサイズが8ビット,16ビット,
32ビットの場合をそれぞれ示している。
が8ビット(1バイト)である場合について説明する。
(0:7)で比較結果が一致すれば、カウント値指定レジ
スタ15,16,21の値はいずれも“1"にセットされ、整置回
路24へ出力されるデータ幅の値は1バイトになる。ソー
スデータの第2バイトA(8:15)で比較結果が一致すれ
ば、カウント値指定レジスタ15,16,21の値はいずれも
“2"にセットされ、整置回路24へ出力されるデータ幅の
値は2バイトになる。ソースデータの第3バイトA(1
6:23)で比較結果が一致すれば、カウント値指定レジス
タ15,16,21の値はいずれも“3"にセットされ、整置回路
24へ出力されるデータ幅の値は3バイトになる。ソース
データの第4バイトA(24:31)で比較結果が一致すれ
ば、カウント値指定レジスタ15,16,21の値はいずれも
“4"にセットされ、整置回路24へ出力されるデータ幅の
値は4バイトとなる。
ト値指定レジスタ15,16,21の値はいずれも“4"にセット
され、整置回路24へ出力されるデータ幅の値は4バイト
となる。
(8:15)で共に比較結果が一致すれば、1バイト目の比
較結果が優先されてカウント値指定レジスタ15,16,21の
値はいずれも“1"にセットされ、整置回路24へ出力され
るデータ幅の値は1バイトとなる。この場合、常にアド
レスの小さいソースデータでの比較結果が優先される。
更に、カウント値指定レジスタ21にセットするセット値
よりもデクリメンタ20の値が小さければ、デクリメンタ
20の値がカウント値指定レジスタ15,16,21の値になる。
が2バイトである場合について説明する。
で比較結果が一致すれば、カウント値指定レジスタ21の
値は“1"に、カウント値指定レジスタ15,16の値は“2"
にそれぞれセットされ、整置回路24へ出力されるデータ
幅の値は2バイトになる。
果が一致すれば、カウント値指定レジスタ21の値は“2"
に、カウント値指定レジスタ15,16の値は“4"にそれぞ
れセットされ、整置回路24へ出力されるデータ幅の値は
4バイトになる。
ト値指定レジスタ21の値は“2"に、カウント値指定レジ
スタ15,16の値は“4"にそれぞれセットされ、整置回路2
4へ出力されるデータ幅の値は4バイトになる。
3,第4バイトA(16:31)とで共に比較結果が一致すれ
ば、常にアドレスの小さいソースデータが優先されてカ
ウント値指定レジスタ21の値は“1"に、カウント値指定
レジスタ15,16の値は“2"にそれぞれセットされ、整置
回路24へ出力されるデータ幅の値は2バイトになる。
データの第3,第4ばいバイトA(16:31)で比較結果が
一致するか、もしくはALU22での比較結果がすべて不一
致した場合でも、カウント値指定レジスタ21の値は“1"
に、カウント値指定レジスタ15,16の値は強制的に“2"
にそれぞれセットされ、整置回路24へ出力されるデータ
幅の値は2バイトになる。
ズが4バイトである場合について説明する。
ト値指定レジスタ21の値は“1"に、カウント値指定レジ
スタ15,16の値は“4"にそれぞれセットされ、整置回路2
4へ出力されるデータ幅の値は4バイトになる。
の第1のソースデータと比較値とを比較するサイクルに
おいて、ALU22の比較結果から比較結果保持レジスタ29
にセットする値と、第1のソースデータと第2のソース
データとを比較するサイクルにおいて、ALU22での比較
結果とデクリメンタ20の値と比較結果保持レジスタ29の
値とからカウント値指定レジスタ15,16,21にセットする
値とを示した模式図であり、比較値のデータサイズが8,
16,32ビットの場合をそれぞれ示している。
が8ビット(1バイト)である場合について説明する。
サイクルにおいて、第1のソースデータの第1バイトA
(0:7)で比較結果が一致すれば比較結果保持レジスタ2
9は“1"に、第1のソースデータの第2バイトA(8:1
5)で比較結果が一致すれば比較結果保持レジスタ29は
“2"に、第1のソースデータの第3バイトA(16:23)
で比較結果が一致すれば比較結果保持レジスタ29は“3"
に、第1のソースデータの第4バイトA(24:31)で比
較結果が一致すれば比較結果保持レジスタ29は“4"にそ
れぞれセットされる。
7),A(8:15)で共に比較結果が一致すれば、1バイト
目の比較結果が優先されて比較結果保持レジスタ29の値
は“1"にセットされる。この場合、常にアドレスの小さ
いソースデータでの比較結果が優先される。
比較するサイクルにおいて、第1のソースデータの第1
バイトA(0:7)で比較結果が不一致すればカウント値
指定レジスタ15,16,21の値はいずれも“1"にセットさ
れ、第1のソースデータの第2バイトA(8:15)で比較
結果が不一致すればカウント値指定レジスタ15,16,21の
値はいずれも“2"にセットされ、第1のソースデータの
第3バイトA(16:23)で比較結果が不一致すればカウ
ント値指定レジスタ15,16,21の値はいずれも“3"にセッ
トされ、第1のソースデータの第4バイトA(24:31)
で比較結果が不一致すればカウント値指定レジスタ15,1
6,21の値は“4"いずれもにセットされる。
値指定レジスタ15,16,21の値はいずれも“4"にセットさ
れる。
7),A(8:15)で共に比較結果が不一致すれば、1バイ
ト目の比較結果が優先されてカウント値指定レジスタ1
5,16,21の値はいずれも“1"にセットされる。この場
合、常にアドレスの小さいソースデータでの比較結果が
優先される。但し、カウント値指定レジスタ15,16,21に
セットされる値が、デクリメンタ20の値または第1のソ
ースデータと比較値との比較結果を保持する比較結果保
持レジスタ29の値のいずれかよりも大きい場合は、デク
リメンタ20の値か第1のソースデータと比較値との比較
結果とを保持する比較結果保持レジスタ29の内のいずれ
か小さい値がカウント値指定レジスタ15,16,21の値とさ
れる。
が2バイトである場合について説明する。
おいて、第1のソースデータの第1,第2バイトA(0:1
5)で比較結果が一致すれば比較結果保持レジスタ29は
“1"に、第1のソースデータの第3,第4バイトA(16:3
1)で比較結果が一致すれば比較結果保持レジスタ29は
“2"にそれぞれセットされる。
5)と第3,第4バイトA(16:31)とで共に比較結果が一
致すれば1バイト目の比較結果が優先されて比較結果保
持レジスタ29の値は“1"にセットされる。この場合、常
にアドレスの小さいソースデータでの比較結果が優先さ
れる。
比較するサイクルにおいて、第1のソースデータの第1,
第2バイトA(0:15)で比較結果が不一致すればカウン
ト値指定レジスタ15,16,21の値はいずれも“1"にセット
され、第1のソースデータの第3,第4バイトA(16:3
1)で比較結果が不一致すればカウント値指定レジスタ1
5,16,21の値はいずれも“2"にセットされる。
値指定レジスタ15,16,21の値はいずれも“2"にセットさ
れる。
5)と第3,第4バイトA(16:31)とで比較結果が共に不
一致すれば、常にアドレスの小さいソースデータが優先
されてカウント値指定レジスタ15,16,21の値はいずれも
“1"にセットされる。但し、カウント値指定レジスタ1
5,16,21にセットされる値が、デクリメンタ20の値か第
1のソースデータと比較値との比較結果を保持する比較
結果保持レジスタ29の値のいずれかよりも大きい場合
は、デクリメンタ20の値か第1のソースデータと比較値
との比較結果を保持する比較結果保持レジスタ29の値の
内のいずれか小さい値がカウント値指定レジスタ15,16,
21の値となる。
ズが4バイトである場合について説明する。
おいて、第1のソースデータと比較値との比較結果が一
致すれば比較結果保持レジスタ29は“1"にセットされ
る。
比較するサイクルにおいて、第1のソースデータA(0:
31)で比較結果が不一致すれば、カウント値指定レジス
タ15,16,21の値はいずれも“1"にセットされる。
素を制御するために用いられるクロック信号のタイミン
グチャートである。
ロックPHAの立上がりからクロックPHA次のの立上がりま
での期間が1サイクルである。
クに従って以下のように制御される。
有効となり、DOバス12はクロックPHDが“1"の期間に有
効となる。また、ALU22,メモリアドレスレジスタ13及び
14,デクリメンタ20のカウント機能は、クロックPHB及び
PHCが“1"の期間に動作するように構成されており、1
サイクルで1回の演算が行われる。具体的には、クロッ
クPHAが“1"の期間にデータがS1バス10,S2バス11へ出力
され、それが各演算回路に取込まれ、クロックPHB,PHC
が“1"の期間に演算が行われる。演算結果は、クロック
PHDが“1"の期間にDOバス12へ出力され、レジスタに取
込まれる。
ェイトで動作する場合には1サイクルで行われる。デー
タのメモリへの書込み,メモリからの読出しは以下のよ
うに行われる。
クルで外部メモリからデータが読出され、次のサイクル
のクロックPHAが“1"の期間にはメモリデータレジスタ
を介してS1バス10またはS2バス11に供給することができ
る。データをメモリに書込む場合には、クロックPHDが
“1"の期間にデータがメモリデータレジスタに書込まれ
れば、そのデータは次のサイクル中にメモリに書込まれ
る。
レジスタ,R1レジスタ,R2レジスタ,R3レジスタに格納さ
れる。R0レジスタにはソース側ストリングの先頭アドレ
ス(ソースアドレス)が、R1レジスタにはデスティネー
ション側の先頭アドレス(デスティネーションアドレ
ス)が、R2レジスタにはストリングの長さを表すエレメ
ント数が、R3レジスタには比較割出し条件の比較値がそ
れぞれセットされる。
に、DOバス12からR3レジスタに比較値をセットする際の
R3レジスタの動作を説明する模式図である。
である場合、DOバス12のデータDO(24:31)がR3レジス
タのR3(0:7),R3(8:15),R3(16:23),R3(24:31)に
それぞれセットされる。
イトである場合、DOバス12のデータDO(16:31)がR3レ
ジスタのR3(0:15),R3(16:31)にそれぞれセットされ
る。
イトである場合、DOバス12のデータDO(0:31)がR3レジ
スタのR3(0:31)にセットされる。
ある。
にはSMOV命令は、指定された割出し条件とエレメント数
とに対して、メモリから読出したソースデータと比較割
出し条件の比較値とを比較し、デスティネーションへの
書込みを行う。一回の転送が終わる都度、ソースデータ
とR3レジスタに格納された比較値とが比較され、割出し
条件のチェックが行われる。割出し条件が成立した場
合、命令はその時点以後の処理を行わずに終了する。全
てのエレメントで割出し条件が成立しなかった場合は、
R2レジスタに格納されたエレメント数だけデータが転送
される。
るソースデータとデスティネーションデータとは全て32
ビット(ワード)の整置境界上にあるデータに限定す
る。操作の対象となるデータが32ビット(ワード)の整
置境界を跨ぐ場合は、バスインタフェース部7のメモリ
に対するアクセス回数が増えるため、読出したデータと
書込むべきデータとに対してデータのシフト動作と連結
動作とを行ってデータを整置する必要があるが、その処
理方法については、特願昭64−88837号に詳しく述べら
れている。
ントが8ビットで構成される40ビット(5ワード)サイ
ズのストリングデータをSMOV命令でアドレスの増加方向
へ処理する動作を、第13図のフローチャートを参照して
説明する。
エレメントのみが比較値と同一であるものとする。ま
た、エレメント数を“10"とする。なお、ソースデータ
のアドレスを“m"、デスティネーションデータのアドレ
スを“n"とし、R0レジスタとR1レジスタとにそれぞれセ
ットされているものとする。また、ストリングの長さを
表すエレメント数がR2レジスタに、割出し条件の比較値
がR3レジスタにそれぞれセットされているものとする。
更に、比較条件はソースデータと比較値とが等しい場合
に成立するものとする。
メント数)がデクリメンタ20にセットされ、R0レジスタ
の内容(ソースアドレス)がAA2レジスタ(メモリアド
レスレジスタ)14にセットされる。
ティネーションアドレス)がAA1レジスタ(メモリアド
レスレジスタ)13にセットされ、AA2レジスタ14に格納
されているソースアドレスに従ってソースデータが外部
メモリからワードのデータサイズで読込まれ、メモリデ
ータレジスタ25に格納される。
の内容(ソースデータ)とR3レジスタの内容(比較値)
とがALU22により比較される。ALU22は8ビット単位でデ
ータを比較し、比較結果をストリング比較結果判定回路
23へ出力する。操作の対象となっているストリングデー
タは、5バイト目のみが比較値と同一であるので、4バ
イト目までのデータ比較では一致が検出されない。スト
リング比較結果判定回路23は、ALU22での比較結果とデ
クリメンタ20の値とから、次のサイクルでデクリメンタ
20の値を更新するカウント値指定レジスタ21の値“4"
と、ソースアドレスとデスティネーションアドレスとを
更新するカウント値指定レジスタ15,16の値“4"とをセ
ットし、デスティネーションにデータを書込む際のデー
タサイズの情報“4"を整置回路24へ出力する。
“4"だけデクリメントして“6"とし、この値をR2レジス
タへ戻す。また、AA1レジスタ13に格納されているデス
ティネーションのアドレス“m"に従って、ソースデータ
を外部メモリに書込む。更に、AA1レジスタ13とAA2レジ
スタ14との値をインクリメントし、ソースアドレスの値
とデスティネーションアドレスの値とをそれぞれ“n+
4"と“m+4"とに更新する。
スアドレス)をR0レジスタへ戻す。
ティネーションアドレス)をR1レジスタへ戻す。そし
て、前述の第3サイクルにおいて比較割出し条件が成立
しているか、あるいは第4サイクルにおいて更新したデ
クリメンタ20の値がゼロであれば命令の実行を終了す
る。ここで、比較割出し条件は不成立であってデクリメ
ンタ20の値は“6"となっているので、AA1レジスタ14に
格納されたソースデータのアドレスに従って、データを
外部メモリから読込んでメモリデータレジスタ25に格納
する。そして再び、第3サイクルC13の処理に戻る。
レジスタ25の内容とR3レジスタの内容とがALU22で比較
される。ALU22は8ビット単位でデータを比較し、比較
結果をストリング比較結果判定回路23へ出力する。操作
の対象となっているストリングデータは、5バイト目の
みが比較値と同一であるので、ALU22が比較した1バイ
ト目で一致が検出される。
成立を検出して実行命令を終了することを決定する。ま
た、ストリング比較結果判定回路23はALU22での比較結
果とデクリメンタ20の値とから、次のサイクルでデクリ
メンタ20の値を更新するカウント値指定レジスタ21の値
“1"と、ソースアドレスとデスティネーションアドレス
とを更新するカウント値指定レジスタ15,16の値“1"と
をセットし、デスティネーションにデータを書込む際の
データサイズの情報“1"を整置回路24へ出力する。
0の値が“1"だけデクリメントされて“5"となり、この
値がR2レジスタへ戻される。また、AA1レジスタ13に格
納されているデスティネーションアドレス“m+4"に従
って、ソースデータが外部メモリに書込まれる。更に、
AA1レジスタ13の値とAA2レジスタ14の値とがインクリメ
ントされ、ソースアドレスの値とデスティネーションア
ドレスの値とがそれぞれ“n+5"と“m+5"とに更新さ
れる。
の値がR0レジスタへ戻される。
の値がR1レジスタへ戻される。第2回目の第3サイクル
C13において比較割出し条件が成立しているので命令の
実行は終了する。
レジスタ,R1レジスタ,R2レジスタ,R3レジスタに格納さ
れる。R0レジスタには第1のソース側ストリングの先頭
アドレス(ソースアドレス)が、R1レジスタには第2の
ソース側ストリングの先頭アドレス(ソースアドレス)
が、R2レジスタにはストリングの長さを表すエレメント
数が、R3レジスタには比較割出し条件の比較値がそれぞ
れセットされる。
較値をセットする時のR3レジスタの動作は、比較値のサ
イズが8ビットの場合、16ビットの場合及び32ビットの
場合のいずれも前述の第11図に示したSMOV命令の場合と
同様である。
には、SCMP命令は指定された割出し条件とエレメント数
とに対して、メモリから読出された第1のソースデータ
と比較割出し条件の比較値と比較されて割出し条件のチ
ェックが行われる。次に、第1のソース側と第2のソー
ス側のエレメントとの比較を行い、エレメントの不一
致、あるいは割出し条件の成立により、命令はそれ以後
の処理を続けずに終了する。すべてのエレメントが一致
し、且つ割出し条件が成立しなかった場合、R2レジスタ
に格納されたエレメント数だけ転送が行われる。
令の場合と同様に、操作の対象となる第1のソースデー
タと第2のソースデータとは全て32ビット(ワード)の
整置境界上にあるデータに限定する。操作の対象となる
データが32ビット(ワード)の整置境界を跨ぐ場合は、
バスインタフェース部7のメモリに対するアクセス回数
が増加するため、読出したデータに対してはデータのシ
フト動作と連結動作とを行ってデータを整置する必要が
あるが、その処理方法については、特願昭64−88837号
に詳しく述べられている。
ントが8ビットで構成される32ビットの第1のソースス
トリングデータと第2のソースストリングデータとをSC
MP命令でアドレスの増加方向に比較処理する動作を、第
15図のフローチャートを参照して説明する。
同一のデータであるとし、第1のソースデータには比較
値と同一エレメントが含まれていないものとする。な
お、第1のソースデータのアドレスを“K",第2のソー
スデータのアドレスを“L"とし、R0レジスタとR1レジス
タとにそれぞれセットされているものとする。更に、ス
トリングの長さを表すエレメント数“4"がR2レジスタ
に、割出し条件の比較値がR3レジスタにそれぞれセット
されているものとする。なお、比較条件はソースデータ
と比較値とが等しい場合に成立するものとする。
メント数)がデクリメンタ20にセットされ、R0レジスタ
の内容(第1のソースアドレス)がAA2レジスタ14にセ
ットされる。
のソースアドレス)がAA1レジスタ13にセットされ、AA2
レジスタ14に格納されている第1のソースデータのアド
レス“K"に従ってソースデータが外部メモリからワード
のデータサイズで読込まれ、メモリデータレジスタ25に
格納される。
(1)25の内容(第1のソースデータ)とR3レジスタの
内容(比較値)とがALU22で比較される。ALU22は8ビッ
ト単位でデータを比較し、比較結果をストリング比較結
果判定回路23へ出力する。第1のソースアドレスには比
較値と同一のエレメントは含まれていないので、ALU22
は比較結果が一致しないことを示す情報をストリング比
較結果判定回路23へ出力する。
た4ビットの信号の論理和演算を行って比較が一致しな
い事を検出し、比較結果を比較結果保持レジスタ24に保
持させる。
データのアドレス“L"に従ってソースデータが外部メモ
リからワードのデータサイズで読込まれ、メモリデータ
レジスタ(2)28に格納される。
(1)25の内容(第1のソースデータ)とメモリデータ
レジスタ(2)28の内容(第2のソースデータ)とがAL
U22で比較される。ALU22は8ビット単位でデータを比較
し、比較結果をストリング比較結果判定回路23へ出力す
る。ここで、第1のソースデータと第2のソースデータ
とは同一データであるのでALU22による比較結果は全て
一致し、不一致のエレメントは検出されない。
結果とデクリメンタ20の値が“4"以下になった場合に検
出される検出信号との論理和演算を行い、この結果から
実行命令を終了する決定を行う。また、前サイクルで比
較結果保持レジスタ24に保持された第1のソースデータ
と比較値との比較結果情報は一致エレメントが検出され
なかったので無視される。更に、次のサイクルでデクリ
メンタ20の値を更新するカウント値指定レジスタ21の値
“4"と、第1のソースアドレスと第2のソースアドレス
とを更新するカウント値指定レジスタ15,16の値“4"と
をセットする。
“4"デクリメントされ、この値がR2レジスタへ戻され
る。また、AA1レジスタ13の値とAA2レジスタ14の値とが
インクリメントされることにより、第1のソースアドレ
スの値と第2のソースアドレスの値とがそれぞれ“K+
4",“L+4"に更新される。
ジスタへ戻れる。
ジスタへ戻される。この場合、前記第3サイクルにおい
て、比較割出し条件が成立しているので命令の実行が終
了する。
発明では、たとえば各8ビット同士について検出された
4つの比較結果の論理和演算と論理積演算とからそれぞ
れ8ビット,16ビット,32ビットのエレメントにて構成さ
れるデータの比較動作を同一のハードウエアで行うこと
が可能になるので、8ビットのエレメントにて構成され
るデータの比較動作を4つ並列に、16ビットのエレメン
トにて構成されるデータの比較動作を2つ並列に共に一
度の処理で実行可能になるので、高速な比較動作を処理
するハードウエアが実現される。
イズのエレメントにて構成されるストリングデータの転
送動作を、転送対象データの最後のデータエレメントの
サーチ動作を並列に行いつつ、一度の処理で4つまたは
2つのエレメントのデータ転送が行えるので、8ビッ
ト,16ビットのエレメントサイズにて構成され、最後の
データエレメントのみが比較値と同一であるストリング
データを転送する命令を高速に実行するマイクロプロセ
ッサが実現される。
イズのエレメントにて構成されるストリングデータの比
較動作を、操作対象のエレメント数と比較結果とから一
度の処理で4つまたは2つのエレメントの比較を並列に
行うとが可能になるので、ストリングデータの比較を行
う命令を高速に実行するマイクロプロセッサが実現され
る。
スタに保持されたエレメント数に基づいて命令終了条件
の判定を行っている。比較結果判定手段は、例えば、8
ビットデータエレメントからなる2組のストリングデー
タのストリング比較命令を、不一致検出された時に命令
を終了する条件とエレメント数(第3のレジスタの値)
命令を終了する条件で実行した場合、比較手段の各比較
結果を論理和演算した比較結果から不一致となったスト
リングデータが検出されたと判明したときでも、既に第
3のレジスタの保持されたエレメント数だけ比較処理を
行っているときは、エレメント数(第3のレジスタの
値)の条件で命令を終了することができるのである。
図、 第2図は本発明のデータ処理装置におけるデータパス部
の内、SMOV命令の実行に必要な部分の構成を示すブロッ
ク図、 第3図はALU制御関係の各マイクロフィールドで指定可
能なオペレーションの定義内容を示ステップ模式図、 第4図はALUのファンクションの定義内容を示す一覧
図、 第5図は本発明のデータ処理装置に備えられているALU
の詳細な構成を示すブロック図、 第6図は本発明のデータ処理装置に備えられているALU,
ストリング比較結果判定回路,デクリメンタ,カウント
値指定レジスタ及び整置回路相互間の接続関係を示す模
式図、 第7図は本発明のデータ処理装置に備えられているスト
リング比較結果判定回路によりセットされる各カウント
値指定レジスタの値と整置回路に出力されるデータサイ
ズの値とを示す模式図、 第8図は本発明のデータ処理装置に備えられているスト
リング比較結果判定回路によりセットされる各カウント
値指定レジスタの値と、第1のソースデータと比較値と
の比較結果を保持するレジスタに出力される比較結果の
値とを示す模式図、 第9図は本発明のデータ処理装置における内部クロック
のタイミングを示すタイミングチャート、 第10図はSMOV命令のオペランドを示す模式図、 第11図はSMOV命令及びSCMP命令実行時にDOバスからR3レ
ジスタにデータを格納する際のR3レジスタの動作を説明
する模式図、 第12図はSMOV命令の動作を説明する模式図、 第13図は本発明のデータ処理装置においてSMOV命令を処
理する場合のフローチャート、 第14図はSCMP命令のオペランドを示す模式図、 第15図は本発明のデータ処理装置においてSCMP命令を処
理する場合のフローチャート、 第16図はSMOV命令とSCMP命令とのオペレーションコード
を示す模式図、 第17図はSMOV命令とSCMP命令とで指定可能な比較条件と
ビットパターンとを示す模式図である。 10…S1バス、11…S2バス、12…DOバス、15,16…メモリ
アドレスレジスタ、17…レジスタファイル、18…ALUレ
ジスタ(A)、19…ALUレジスタ(B)、22…ALU、20…
デクリメンタ、25,28…メモリデータレジスタ、25…整
置回路、23…ストリング比較結果判定回路 なお、図中、同一符号は同一、又は相当部分を示す。
Claims (3)
- 【請求項1】n個の第1のサイズのデータエレメントを
同時に処理する第1の命令及び前記第1のサイズのn
(nは2以上の整数)倍のサイズである第2のサイズの
データエレメントを1個ずつ処理する第2の命令をデコ
ードする命令デコード手段と、 前記命令デコード手段に接続されていて、第1のデータ
エレメント群を保持する第1のレジスタと、 前記命令デコード手段に接続されていて、第2のデータ
エレメント群を保持する第2のレジスタと、 前記第1及び第2のレジスタに接続していて、前記第1
のデータエレメント群と前記第2のデータエレメント群
とのそれぞれ対応するデータエレメント同士を比較する
比較手段と、 前記命令デコード手段が前記第1の命令をデコードした
場合に前記命令デコード手段の出力に従って、前記比較
手段による各データエレメント同士の比較結果を論理和
演算することによりn組の前記第1のサイズのデータエ
レメントの比較処理を並列実行する第1の判定手段と、
前記命令デコード手段が前記第2の命令をデコードした
場合に前記命令デコード手段の出力に従って、前記比較
手段による比較結果を論理積演算することにより1組の
前記第2のサイズのデータエレメントの比較処理を実行
する第2の判定手段とを有する比較結果判定手段と を備えたことを特徴とするデータ処理装置。 - 【請求項2】命令をデコードする命令デコード手段と、
外部メモリとの間でデータを入出力するデータ入出力手
段と、 前記外部メモリのアドレスをそれぞれ保持する第1,第2
のアドレスレジスタと、 前記第1のアドレスレジスタが指定する前記外部メモリ
のアドレスから始まるメモリ領域から前記データ入出力
手段を通じてフェッチしたn個のデータエレメントから
なる第1のデータエレメント群を保持する第1のレジス
タと、 各エレメントが同一の所定値であるn個のエレメントか
らなる第2のデータエレメント群を保持する第2のレジ
スタと、 前記第1及び第2のレジスタに接続されていて、前記第
1のデータエレメント群と前記第2のデータエレメント
群とのそれぞれ対応するデータエレメント同士を比較す
る比較手段と、 該比較手段の各比較結果を論理和演算する比較結果判定
手段と を備え、 前記命令デコード手段が、前記第1のアドレスレジスタ
が指定する前記メモリのアドレスから始まる第1のメモ
リ領域にあり、最後のデータエレメントのみが前記所定
値のデータエレメントであるn個のデータエレメントか
らなる第1のデータを前記第2のアドレスレジスタが指
定する前記メモリのアドレスから始まる第2のメモリ領
域へ転送するストリング転送命令をデコードした場合
に、 前記データ入出力手段は、前記命令デコード手段の出力
に従って前記メモリの前記第1のメモリ領域から前記デ
ータ入出力手段を通じてn個のデータエレメントをフェ
ッチし、 前記比較結果判定手段は、前記命令デコード手段の出力
に従って前記比較手段による各比較結果を論理和演算す
ることにより前記n個のデータエレメントそれぞれと前
記所定値のデータエレメントとが一致するか否かの判定
処理を並列実行し、一致が検出されるまで前記データ入
出力手段にデータのフェッチ及びその前記メモリの前記
第2のメモリ領域への転送を反復させるべくなしてある
こと を特徴とするデータ処理装置。 - 【請求項3】命令をデコードする命令デコード手段と、 外部メモリとの間でデータを入出力するデータ入出力手
段と、 前記外部メモリのアドレスをそれぞれ保持する第1,第2
のアドレスレジスタと、 前記第1のアドレスレジスタが指定する前記外部メモリ
のアドレスから始まる第1のメモリ領域から前記データ
入出力手段を通じてフェッチしたn個のデータエレメン
トからなる第1のデータエレメント群を保持する第1の
レジスタと、 前記第2のアドレスレジスタが指定する前記外部メモリ
のアドレスから始まる第2のメモリ領域から前記データ
入出力手段を通じてフェッチしたn個のデータエレメン
トからなる第2のデータエレメント群を保持する第2の
レジスタと、 処理すべきエレメント数を保持する第3のレジスタと、 前記第1及び第2のレジスタに接続されていて、前記第
1のデータエレメント群と前記第2のデータエレメント
群とのそれぞれ対応するエレメント同士を比較する比較
手段と、 前記比較手段と前記第3のレジスタとに接続されてい
て、前記比較手段の各比較結果と前記第3のレジスタの
値とを入力する比較結果判定手段と を備え、 前記命令デコード手段が、前記メモリの第1のメモリ領
域にある複数のデータエレメントからなる第1のデータ
と第2のメモリ領域にあるデータエレメントからなる第
2のデータとを比較するストリング比較命令をデコード
した場合に、 前記第3のレジスタは前記第1のデータのエレメント数
を保持し、 前記比較結果判定手段は、前記命令デコード手段の出力
に従って前記比較手段による各比較結果を論理和演算す
ることにより前記n個の第1のデータと前記n個の第2
のデータとの一致/不一致の判定処理を並列実行し、不
一致の場合に、前記第3のレジスタに保持された数だけ
既に判定処理が行われたときには、前記第3のレジスタ
に保持されたエレメント数の比較条件で前記ストリング
比較命令の終了を決定すべくなしてあること を特徴とするデータ処理装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2231964A JPH0831032B2 (ja) | 1990-08-29 | 1990-08-29 | データ処理装置 |
US08/327,823 US5497468A (en) | 1990-08-29 | 1994-10-20 | Data processor that utilizes full data width when processing a string operation |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2231964A JPH0831032B2 (ja) | 1990-08-29 | 1990-08-29 | データ処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH04109337A JPH04109337A (ja) | 1992-04-10 |
JPH0831032B2 true JPH0831032B2 (ja) | 1996-03-27 |
Family
ID=16931812
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2231964A Expired - Lifetime JPH0831032B2 (ja) | 1990-08-29 | 1990-08-29 | データ処理装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5497468A (ja) |
JP (1) | JPH0831032B2 (ja) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07114469A (ja) * | 1993-10-18 | 1995-05-02 | Mitsubishi Electric Corp | データ処理装置 |
JPH08212789A (ja) * | 1995-02-06 | 1996-08-20 | Mitsubishi Electric Corp | 連想メモリ回路及びtlb回路 |
US5692146A (en) * | 1995-05-26 | 1997-11-25 | National Semiconductor Corporation | Method of implementing fast 486TM microprocessor compatible string operations |
US5907842A (en) * | 1995-12-20 | 1999-05-25 | Intel Corporation | Method of sorting numbers to obtain maxima/minima values with ordering |
US5854914A (en) * | 1996-02-13 | 1998-12-29 | Intel Corporation | Mechanism to improved execution of misaligned loads |
US6253312B1 (en) * | 1998-08-07 | 2001-06-26 | Ip First, L.L.C. | Method and apparatus for double operand load |
US6209082B1 (en) | 1998-11-17 | 2001-03-27 | Ip First, L.L.C. | Apparatus and method for optimizing execution of push all/pop all instructions |
US6516313B1 (en) * | 2000-06-27 | 2003-02-04 | Mitsubishi Electric Research Laboratories, Inc. | Method for dynamic constraint handling in vertex based optimization of a continuous complex system |
US7242325B2 (en) * | 2004-08-02 | 2007-07-10 | Sony Corporation | Error correction compensating ones or zeros string suppression |
US8219785B1 (en) * | 2006-09-25 | 2012-07-10 | Altera Corporation | Adapter allowing unaligned access to memory |
JP2008083762A (ja) * | 2006-09-26 | 2008-04-10 | Nec Electronics Corp | マイクロコンピュータ |
EP2245529A1 (en) * | 2008-02-18 | 2010-11-03 | Sandbridge Technologies, Inc. | Method to accelerate null-terminated string operations |
CN101685388B (zh) * | 2008-09-28 | 2013-08-07 | 北京大学深圳研究生院 | 执行比较运算的方法和装置 |
ES2354330B1 (es) * | 2009-04-23 | 2012-01-30 | Universitat Pompeu Fabra | Método para calcular medidas de similitud entre señales temporales. |
US9459868B2 (en) | 2012-03-15 | 2016-10-04 | International Business Machines Corporation | Instruction to load data up to a dynamically determined memory boundary |
US9715383B2 (en) | 2012-03-15 | 2017-07-25 | International Business Machines Corporation | Vector find element equal instruction |
US9588762B2 (en) | 2012-03-15 | 2017-03-07 | International Business Machines Corporation | Vector find element not equal instruction |
US9268566B2 (en) | 2012-03-15 | 2016-02-23 | International Business Machines Corporation | Character data match determination by loading registers at most up to memory block boundary and comparing |
US9454366B2 (en) | 2012-03-15 | 2016-09-27 | International Business Machines Corporation | Copying character data having a termination character from one memory location to another |
US9459867B2 (en) | 2012-03-15 | 2016-10-04 | International Business Machines Corporation | Instruction to load data up to a specified memory boundary indicated by the instruction |
US9280347B2 (en) | 2012-03-15 | 2016-03-08 | International Business Machines Corporation | Transforming non-contiguous instruction specifiers to contiguous instruction specifiers |
US9710266B2 (en) | 2012-03-15 | 2017-07-18 | International Business Machines Corporation | Instruction to compute the distance to a specified memory boundary |
US9454367B2 (en) | 2012-03-15 | 2016-09-27 | International Business Machines Corporation | Finding the length of a set of character data having a termination character |
US9459864B2 (en) | 2012-03-15 | 2016-10-04 | International Business Machines Corporation | Vector string range compare |
JP7296574B2 (ja) * | 2019-03-04 | 2023-06-23 | パナソニックIpマネジメント株式会社 | プロセッサ及びプロセッサの制御方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4463421A (en) * | 1980-11-24 | 1984-07-31 | Texas Instruments Incorporated | Serial/parallel input/output bus for microprocessor system |
US4604695A (en) * | 1983-09-30 | 1986-08-05 | Honeywell Information Systems Inc. | Nibble and word addressable memory arrangement |
US4785393A (en) * | 1984-07-09 | 1988-11-15 | Advanced Micro Devices, Inc. | 32-Bit extended function arithmetic-logic unit on a single chip |
JPS61100836A (ja) * | 1984-10-04 | 1986-05-19 | Fujitsu Ltd | 移動命令論理比較命令処理方式 |
JPH0797309B2 (ja) * | 1985-09-27 | 1995-10-18 | 株式会社日立製作所 | デ−タ処理装置 |
JPS6472236A (en) * | 1987-09-14 | 1989-03-17 | Hitachi Ltd | Information processor with string operating instruction |
US5060143A (en) * | 1988-08-10 | 1991-10-22 | Bell Communications Research, Inc. | System for string searching including parallel comparison of candidate data block-by-block |
US5193167A (en) * | 1990-06-29 | 1993-03-09 | Digital Equipment Corporation | Ensuring data integrity by locked-load and conditional-store operations in a multiprocessor system |
-
1990
- 1990-08-29 JP JP2231964A patent/JPH0831032B2/ja not_active Expired - Lifetime
-
1994
- 1994-10-20 US US08/327,823 patent/US5497468A/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US5497468A (en) | 1996-03-05 |
JPH04109337A (ja) | 1992-04-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH0831032B2 (ja) | データ処理装置 | |
KR940009094B1 (ko) | 데이타처리 시스템 | |
JP2616182B2 (ja) | データ処理装置 | |
US5907842A (en) | Method of sorting numbers to obtain maxima/minima values with ordering | |
JP2507638B2 (ja) | デ―タ処理装置 | |
JPH0926878A (ja) | データ処理装置 | |
JP3543181B2 (ja) | データ処理装置 | |
JPS6339931B2 (ja) | ||
EP0465248B1 (en) | Pseudo-linear bank switching memory expansion | |
JP2834292B2 (ja) | データ・プロセッサ | |
JPH03218523A (ja) | データプロセッサ | |
US5502827A (en) | Pipelined data processor for floating point and integer operation with exception handling | |
JPH0766324B2 (ja) | データ処理装置 | |
US5542060A (en) | Data processor including a decoding unit for decomposing a multifunctional data transfer instruction into a plurality of control codes | |
EP0094535B1 (en) | Pipe-line data processing system | |
JP2620511B2 (ja) | データ・プロセッサ | |
JPH081602B2 (ja) | データ処理装置 | |
US6036350A (en) | Method of sorting signed numbers and solving absolute differences using packed instructions | |
JPH07120278B2 (ja) | データ処理装置 | |
JP3789583B2 (ja) | データ処理装置 | |
JP2669158B2 (ja) | データ処理装置 | |
JP3578883B2 (ja) | データ処理装置 | |
JPS6014338A (ja) | 計算機システムにおける分岐機構 | |
JPH07120284B2 (ja) | データ処理装置 | |
JP4502532B2 (ja) | データ処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080327 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090327 Year of fee payment: 13 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090327 Year of fee payment: 13 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100327 Year of fee payment: 14 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110327 Year of fee payment: 15 |
|
EXPY | Cancellation because of completion of term | ||
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110327 Year of fee payment: 15 |