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
Application number
JP2231964A
Other languages
English (en)
Other versions
JPH04109337A (ja
Inventor
国雄 谷
豊彦 吉田
由香里 高田
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2231964A priority Critical patent/JPH0831032B2/ja
Publication of JPH04109337A publication Critical patent/JPH04109337A/ja
Priority to US08/327,823 priority patent/US5497468A/en
Publication of JPH0831032B2 publication Critical patent/JPH0831032B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/02Comparing digital values
    • G06F7/026Magnitude comparison, i.e. determining the relative order of operands based on their numerical value, e.g. window comparator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90344Query processing by using string matching techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30021Compare instructions, e.g. Greater-Than, Equal-To, MINMAX
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants

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で
あるような場合に、ストリングを操作する命令を高速実
行し得るデータ処理装置の提供を目的とする。
[課題を解決するための手段] 本発明のデータ処理装置の第1の発明は、命令をデコ
ードする命令デコーダと、このデコーダに接続されてい
て比較の対象となるデータを保持するレジスタと、比較
するデータを保持するレジスタと、両レジスタに接続さ
れたたとえば32ビット幅の演算器(比較手段)と、この
演算器によるたとえば各8ビットのデータの比較結果に
ついて論理和演算と論理積演算とをそれぞれ行う比較判
定回路とを備えている。
また第2の発明では、ストリングの転送を行う命令を
デコードする命令デコーダと、この命令デコーダに接続
していて操作の対象となるストリングの先頭アドレスを
保持するアドレスレジスタと、このアドレスレジスタに
保持されているアドレスで指定される複数のデータエレ
メントにて構成されたデータをデータ入出力回路からフ
ェッチして保持するレジスタと、転送すべきストリング
のデータと同数のデータエレメント数にて構成された比
較データを保持するレジスタと、両レジスタに接続され
たたとえば32ビット幅の演算器(比較手段)と、この演
算器の各8ビットのデータの比較結果の論理和演算を行
う比較判定回路とを備えている。
また第3の発明では、ストリングの比較を行う命令を
デコードする命令デコーダと、この命令デコーダに接続
されていて被比較ストリングのエレメント数を保持する
レジスタ(デクリメンタ)と、被比較ストリングの先頭
アドレスを保持するアドレスレジスタと、このアドレス
レジスタに保持されているアドレスで指定される複数の
データエレメントにて構成されたデータをデータ入出力
回路からフェッチして保持するレジスタと、比較ストリ
ングの先頭アドレスを保持するアドレスレジスタと、こ
のアドレスレジスタのアドレスで指定される複数のデー
タエレメントからなるデータをデータ入出力回路からフ
ェッチして保持するレジスタと、両レジスタに接続され
た例えば32ビット幅の演算器(比較手段)と、この演算
器の各8ビットのデータの比較結果とデクリメンタで計
算された処理すべき残りエレメント数とが演算器で一度
に比較可能なエレメント数以下になった場合に検出され
る検出信号の論理和演算を行う比較判定回路とを有す
る。
[作用] 本発明のデータ処理装置は、その第1の発明では、た
とえば8ビット毎に検出された4つの比較結果の論理和
演算を比較判定回路で行うことによって各8ビットのエ
レメントにて構成される4個のデータの比較を並列処理
し、各8ビットについて検出された4つの比較結果の2
つずつの論理積の論理和演算を比較判定回路で行うこと
によって16ビットのエレメントにて構成されるデータの
比較動作が2つ並列実行され、、また各8ビット毎に検
出された4つの比較結果の論理積演算を行うことによっ
て32ビットサイズのエレメントにて構成されるデータの
比較動作が実行される。
また第2の発明では、たとえば8ビット,16ビットの
エレメントサイズにて構成され、最後のデータエレメン
トのみが比較値と同一であるストリングデータを転送す
る命令を実行する場合、メモリからフェッチされた転送
対象エレメントを4つまたは2つ保持する32ビットのレ
ジスタの値と比較値を保持する32ビットのレジスタの値
とをそれぞれの8ビットまたは16ビット同士で比較し、
検出された4つまたは2つの比較結果の論理和演算を比
較判定回路で行うことによって、8ビット,16ビットサ
イズのエレメントにて構成される転送対象データの最後
のデータエレメントの検索動作が並列に実行され、一度
に4つまたは2つのエレメントを同時に処理する動作が
反復されてストリングデータが転送される。
また第3の発明では、各8ビット,16ビットのエレメ
ントサイズにて構成される2つのストリングデータを比
較する命令を実行する場合、操作対象エレメントの数を
デクリメンタに保持し、メモリからフェッチされた2つ
の比較対象ストリングをそれぞれ8ビットサイズであれ
ば4つまたは16ビットサイズであれば2つ保持する32ビ
ットの2つのレジスタの値を各8ビットまたは16ビット
同士で比較し、この比較結果とデクリメンタの値とが演
算器で比較可能なエレメント数以下になった時点で検出
される検出信号との論理和演算を比較判定回路で行うこ
とにより、一度に複数のエレメントの比較を並列に行う
処理が反復されてストリングデータの比較処理が行われ
る。
そして判定の結果が不一致であった場合に、デクリメ
ンタに保持された数だけ既に判定処理が行われたとき
は、デクリメンタに保持されたエレメント数の比較条件
でストリング比較命令の終了を決定する。これは一致/
不一致の判定を並列実行することで可能となる機能であ
る。
[発明の実施例] 以下、本発明をその実施例を示す図面を参照して詳述
する。
(1)「ストリング命令の説明」 本発明のデータ処理装置は、データの転送あるいは算
術演算,シフト,論理演算等の命令を実行する他、スト
リング操作命令と称される4種類の命令を実行すること
が可能である。
ストリングとは、8ビット,16ビットまたは32ビット
のデータを任意の数だけ連続して並べたデータのタイプ
である。ストリング操作命令には、ストリングの転送を
行うSMOV命令,ストリングの比較を行うSCMP命令,スト
リングの中から特定の条件を満たす要素を捜しだすSSCH
命令,予め指定された値をストリングの要素として繰返
し書込みを行うSSTR命令等がある。
これらの命令は、8,16または32ビットのデータにて各
1文字が表される文字列を処理する他、特定のビットパ
ターンのサーチ,メモリのブロック転送,構造体の代
入、メモリ領域のクリア等にも使用される。操作の対象
となるストリングの範囲を示す方法には、以下の2通り
の方法がある。
・ストリングの長さ(エレメント数)を指定する方法 ・ストリングの終了を示す文字(ターミネータ)を指定
する方法 本発明のデータ処理装置ではストリング操作に際して
はエレメント数がパラメータとなっており、更に割出し
条件という形でターミネータあるいは命令の終了条件を
与えることができる。また、ストリング命令の割出し条
件として大小比較及び2値比較を含む豊富な割出し条件
が指定可能に構成されている。これらのストリング命令
の内のSMOV命令,SCMP命令及びSSCH命令は、所定のエレ
メント数を対象とした一回の転送,比較,検索が終了す
る都度、次に操作されるべき全エレメントについてエレ
メント値と比較値とが比較されて割出し条件がチェック
される。全てのエレメントで割出し条件が成立しなかっ
た場合は、所定のエレメント数だけ転送,比較,検索が
行われる。
以下では上述の4命令の内からSMOV命令とSCMP命令と
を例にとり、その処理方法を説明する。また、ストリン
グ命令の割出し条件として、2値比較の条件を指定した
場合について説明する。
第16図(a)はSMOV命令の、第16図(b)はSCMP命令
のオペレーションコードをそれぞれ表した模式図であ
る。
第16図(a)及び(b)において、“sx"にて示され
ている2ビットはエレメントサイズと割出し条件の比較
値のサイズとを指定し、“sx"=“00"であれば8ビット
を、“sx"=“01"であれば16ビットを、“sx"=“10"で
あれば32ビットをそれぞれ指定する。
また、“b"にて示されている1ビットは、“b"=“0"
である場合にはストリング操作の処理をアドレスの増加
方向へ進めることを指定し、“b"=“1"である場合には
ストリング操作の処理をアドレスの減少方向へ進めるこ
とを指定する。
更に“eeee"にて示されている4ビットは指定可能な
比較割出し条件を指定する。“eeee"の4ビットにより
指定可能な条件とそのビットパターンとを第17図に示
す。
各ビットパターンにて指定可能な条件は具体的には大
小関係,等/不等関係及び条件無しである。
(2)「機能ブロックの構成」 第1図は本発明のデータ処理装置の全体構成を示すブ
ロック図である。
本発明のデータ処理装置の内部を機能的に大きく分け
ると、命令フェッチ部1,命令デコード部2,PC計算部3,オ
ペランドアドレス計算部4,マイクロROM部5,データ演算
部6,外部バスインタフェイス部7に分かれる。
第1図ではその他に、CPU外部へアドレスを出力する
アドレス出力回路8と、CPU外部とデータを入出力する
データ入出力回路9とを他の機能ブロック部と分けて示
してある。
(2.1)「命令フェッチ部」 命令フェッチ部1には命令キャッシュ,命令キュー及
びその制御部等があり、次にフェッチすべき命令のアド
レスを決定して命令キャッシュあるいはCPU外部のメモ
リから命令をフェッチする。また、命令フェッチ部1は
命令キャッシュへの命令登録も行う。
次にフェッチすべき命令のアドレスは命令キューに入
力されるべき命令のアドレスとして専用のカウンタにお
いて計算される。分岐,ジャンプが発生した場合には、
新たな命令のアドレスがPC計算部3またはデータ演算部
6から転送されてくる。
命令フェッチ部1がCPU外部のメモリから命令をフェ
ッチする場合は、フェッチすべき命令のアドレスを外部
バスインタフェイス部7を通じてアドレス出力回路8か
らCPU外部へ出力し、データ入出力回路9から命令コー
ドをフェッチする。
バッファリングした命令コードの内、命令デコード部
2で次にデコードすべき命令コードが命令デコード部2
へ出力される。
(2.2)「命令デコード部」 命令デコード部2では基本的には16ビット(ハーフワ
ード)単位で命令コードをデコードする。この命令デコ
ード部2には第1ハーフワードに含まれるオペレーショ
ンコードをデコードするFHW(First Half Word)デコー
ダ,第2及び第3ハーフワードに含まれるオペレーショ
ンコードをデコードするNFHW(Not First Half Word)
デコーダ,アドレッシングモードをデコードするアドレ
ッシングモードデコーダが含まれる。
また、FHWデコーダあるいはNFHWデコーダの出力を更
にデコードしてマイクロROMのエントリアドレスを計算
する第2デコーダ,条件分岐命令の分岐予測を行う分岐
予測機構,オペランドアドレス計算に際してパイプライ
ンコンフリクトをチェックするアドレス計算コンフリク
トチェック機構も含まれる。
命令デコード部2は命令フェッチ部1から入力された
命令コードを2クロックにつき0乃至6バイトの割合で
デコードする。デコード結果の内、データ演算部6での
演算に関係する情報がマイクロROM部5へ、オペランド
アドレス計算に関係する情報がオペランドアドレス計算
部4へ、PC計算に関係する情報がPC計算部3へそれぞれ
出力される処理。
(2.3)「マイクロROM部」 マイクロROM部5には主にデータ演算部6を制御する
マイクロプログラムが格納されているマイクロROM,マイ
クロシーケンサ,マイクロ命令デコーダ等が含まれる。
マイクロ命令はマイクロROMから2クロックにつき1
度読出される。マイクロシーケンサはマイクロプログラ
ムにより示されるシーケンス処理の他に、例外,割込及
びトラップ(この3つを併せてEITと称す)の処理をハ
ードウエア的に受付ける。また、マイクロROM部5はス
トアバッファの管理も行う。マイクロROM部5には命令
コードに依存しない割込み,演算実行結果によるフラッ
グ情報と、第2デコーダの出力等の命令デコード部2の
出力とが入力される。マイクロデコーダの出力は主にデ
ータ演算部6へ出力されるが、ジャンプ命令の実行の際
の他の先行処理中止情報等の一部の情報は他のブロック
へも出力される。
(2.4)「オペランドアドレス計算部」 オペランドアドレス計算部4は、命令デコード部2の
アドレスデコーダ等から出力されたオペランドアドレス
計算に関係する情報によりハードワイヤードに制御され
る。
このオペランドアドレス計算部4ではオペランドのア
ドレス計算に関するほとんどの処理が行われる。メモリ
間接アドレッシングのためのメモリアクセスのアドレス
あるいはオペランドアドレスがメモリにマップされたI/
O領域に入るか否かのチェックも行われる。
オペランドアドレス計算部4によるアドレス計算結果
は外部バスインタフェイス部7へ送られる。またこのオ
ペランドアドレス計算部4におけるアドレス計算に必要
な汎用レジスタ及びプログラムカウンタの値はデータ演
算部6から入力される。
オペランドアドレス計算部4がメモリ間接アドレッシ
ングを行う場合は、参照すべきメモリアドレスを外部バ
スインタフェイス部7を通じてアドレス出力回路8から
CPU外部へ出力し、データ入出力部9から入力された間
接アドレス値を命令デコード部2をそのまま通過させて
フェッチする。
(2.5)「PC計算部」 PC計算部3は命令デコード部2から出力されるPC計算
に関係する情報でハードワイヤードに制御され、命令の
PC値を計算する。
本発明のデータ処理装置は可変長命令セットを有して
おり、命令をデコードした後でないとその命令の長さが
判明しない。このため、PC計算部3は命令デコード部2
から出力される命令長をデコード中の命令のPC値に加算
することにより、次の命令のPC値を生成する。また、命
令デコード部2が分岐命令をデコードしてデコード段階
での分岐を支持した場合は、命令長の代わりに分岐変位
を分岐命令のPC値に加算することにより分岐先命令のPC
値を計算する。
分岐命令に対して命令デコード段階で分岐を行うこと
を本発明のデータ処理装置ではプリブランチと称する。
プリブランチの手法については特開昭63−59630号公
報及び特開昭63−55639号公報において詳しく述べられ
ている。
PC計算部3の計算結果は各命令のPC値として命令のデ
コード結果と共に出力される他、プリブランチ時には次
にデコードすべき命令のアドレスとして命令フェッチ部
1へ出力され、更に次に命令デコード部2でデコードさ
れる命令の分岐予測のためのアドレスにも使用される。
分岐予測の手法については特開昭63−175934号公報に
おいて詳しく述べられている。
(2.6)「データ演算部」 データ演算部6はマイクロプログラムにより制御さ
れ、マイクロROM部5が出力する情報に従って各命令の
機能を実現するために必要な演算をレジスタと演算器と
で実行する。
演算対象となるオペランドがアドレスまたは即値であ
る場合には、データ演算部6はオペランドアドレス計算
部4で計算されたアドレスまたは即値を外部バスインタ
フェイス部7を通じて得る。また、演算対象となるオペ
ランドがCPU外部のメモリにあるデータである場合に
は、データ演算部6はアドレス計算部4で計算されたア
ドレスをバスインタフェイス部7にアドレス出力回路8
から出力させ、これに応じてCPU外部のメモリからフェ
ッチしたオペランドをデータ入出力回路9から得る。
データ演算部6には、演算器としてはALU,バレルシフ
タ,プライオリティエンコーダ,カウンタ,シフトレジ
スタ等が備えられている。レジスタと主な演算器との間
は3バスで結合されており、1つのレジスタ間演算を指
示する1マイクロ命令は2クロックサイクルで処理され
る。
データ演算に際してデータ演算部6がCPU外部のメモ
リをアクセスする必要がある場合は、マイクロプログラ
ムの指示により外部バスインタフェイス部7を通じてア
ドレス出力回路8からアドレスをCPU外部へ出力させる
ことにより、データ入出力回路9を通じて目的のデータ
をフェッチする。
CPU外部のメモリにデータをストアする場合は、デー
タ演算部6は外部バスインタフェイス部7を通じてアド
レス出力回路8からアドレスを出力すると同時にデータ
入出力回路9からデータをCPU外部へ出力する。
オペランドストアを効率的に行うためにデータ演算部
6は4バイトのストアバッファを有している。
ジャンプ命令の処理あるいは例外処理等を行って新た
な命令アドレスをデータ演算部6が得た場合は、これを
命令フェッチ部1とPC計算部3とへ出力する。
(2.7)「外部バスインタフェイス部」 外部バスインタフェイス部7は本発明のデータ処理装
置の外部バスでの通信を制御する。メモリのアクセスは
全てクロック同期で行われ、最小2クロックサイクルで
行うことができる。
メモリに対するアクセス要求は、命令フェッチ部1,ア
ドレス計算部4,データ演算部6からそれぞれ独立して発
生する。外部バスインタフェイス部7はこれらのメモリ
アクセス要求を調停する。更に、メモリとCPUとを結ぶ
データバスサイズである32ビット(1ワード)の整置境
界を跨ぐメモリ番地にあるデータのアクセスは、この外
部バスインタフェイス部7内で自動的にワード境界を跨
ぐことを検知して2回のメモリアクセスに分解して行
う。
プリフェッチされるオペランドとストアされるオペラ
ンドとが重なる場合のコンフリクト防止処理及びストア
オペランドからフェッチオペランドへのバイパス処理も
この外部バスインタフェイス部7において処理される。
(3)「ストリング命令の実行に関連するデータ演算部
構成」 第2図は、本発明のデータ処理装置のストリング命令
の実行に必要な要部の構成を示すブロック図である。ま
ずその構成について説明する。
参照符号10,11,12は32ビットバスであり、それぞれS1
バス,S2バス,DOバスと称される。
13,14は、外部メモリをアクセスする際にアクセスす
べきアドレスをセットする32ビットのメモリアドレスレ
ジスタであり、13はAA1レジスタと称され、14はAA2レジ
スタと称される。両レジスタ13,14へのアドレスの入出
力はそれぞれS1バス10を介して行われる。また、メモリ
アドレスレジスタ13,14にはカウント値指定レジスタ15,
16がそれぞれ備えられており、“1",“2",“3"または
“4"のインクリメント及びデクリメントが可能である。
17はN個の32ビットレジスタで構成されるレジスタフ
ァイルであり、R0レジスタからR(N−1)レジスタに
て構成されている。各レジスタR0,R1…はDOバス12から
の入力経路と、S1バス10及びS2バス11への出力経路とを
備えている。
ALUレジスタ(A)18とALUレジスタ(B)19とは共に
33ビット(32ビット+1ビットの拡張ビット)のレジス
タであり、S1バス10とS2バス11とからの入力経路及びAL
U22への出力経路とを有する。両ALUレジスタ18,19はサ
イズ,符号に応じて入力データを33ビットデータに符号
拡張または0拡張する。
ALU22はALUレジスタ(A)18とALUレジスタ(B)19
とから送られてくるデータ間の加減算及び論理演算を実
行し、結果をSレジスタ27へ出力する。また、ALU22は
8ビット単位でデータの一致、不一致を検出し、結果を
ストリング比較結果判定回路23へ出力する。
20はデクリメンタであり、S2バス11からの入力経路と
DOバス12及びALU22への出力経路とを有する。デクリメ
ンタ20は32ビット幅のレジスタであり、一度に“1",
“2",“3"または“4"だけデクリメントするカウント値
指定レジスタ21と、自身の値が“0"になった場合に“1"
がセットされるゼロフラグ部26とを備えている。
25,28は32ビットのメモリデータレジスタ(1),メ
モリデータレジスタ(2)であり、共に外部メモリへ書
込むデータあるいは外部メモリから読出されたデータを
格納するためのレジスタである。両レジスタ25,28はDO
バス12からの入力経路とS1バス10及びS2バス11への出力
経路とをそれぞれ備えている。
24はメモリデータをワード整置するための整置回路で
ある。メモリをアクセスする際には必ず整置回路24を通
じて行われる。
23はストリング比較結果判定回路である。ALU22で比
較された比較結果とデクリメンタ20の値と、ストリング
比較結果保持レジスタ29の値とから、2つのデータに対
して一致、不一致を検出してストリング命令の実行を終
了するか否かを決定する。更にストリング比較結果判定
回路23は、デクリメンタ20の値を更新するカウント値指
定レジスタ21の値と、メモリアドレスレジスタ13,14の
値を更新するカウント値指定レジスタ15,16の値とをセ
ットする。また、一致、不一致結果をストリング比較結
果保持レジスタ29に書込み、デスティネーション側に書
込むソースデータのデータサイズを整置回路24へ出力す
る。
ストリング比較結果保持レジスタ29はSCMP命令実行時
に比較の対象となる第1のソースデータと比較値との比
較結果をストリング比較結果判定回路23から入力して保
持し、第1のソースデータと第2のソースデータとを比
較する際に再びストリング比較結果判定回路23へ比較結
果を出力する。
(3.1)「ALUの構成」 本発明のデータ処理装置は、命令の実行制御をマイク
ロプログラム制御方式で行っている。
第3図にALU制御関係の各マイクロフィールドで指定
可能なオペレーションの定義内容を示す。まず、この第
3図を参照して各マイクロフィールドについて説明す
る。
SUフィールドはALU22の符号拡張/ゼロ拡張を指定す
る。ALU22は、ALUレジスタ(A)18またはALUレジスタ
(B)19にオペランドを取込む際に符号拡張/ゼロ拡張
を行う。
AOPフィールドはALU22が実行する演算を定義する。本
発明のデータ処理装置に使用されているALU22は加算器
を基本とした算術演算回路に論理積、論理和などの論理
演算回路の機能を有しており、AOPフィールドの指定に
より加算,減算,論理積,論理和及び比較の各演算を行
う。
DAフィールドとDBフィールドとはそれぞれALUレジス
タ(A)18とALUレジスタ(B)19との入力制御を指定
する。具体的には、S1バス10またはS2バス11から入力し
たデータをそのままALU22へ転送する,S1バス10またはS2
バス11から入力したデータを反転してALU22へ転送する,
ALUレジスタ(A)18またはALUレジスタ(B)19をクリ
アする,データ入力を行わないのいずれかの処理が可能
である。
ZAフィールドはALU22がS2バス10からALUレジスタ
(A)18にオペランドを取込む際に、符号/ゼロ拡張を
行うサイズをワード(32ビット),ハーフワード(16ビ
ット),バイト(8ビット)のいずれかで指定する。
ZBフィールドはALU22がS2バス11からALUレジスタ
(B)19にオペランドを取込む際に、符号/ゼロ拡張を
行うサイズをワード,ハーフワード,バイトのいずれか
で指定する。
ADOフィールドはALU22が実行した演結果をいずれへ出
力するか、またいずれのレジスタからDOバス12出力する
かを指定する。具体的には、演算結果をALU22へ戻す,S
レジスタ27の内容をDOバス12へ出力する,ALU22からDOバ
ス12への出力を禁止するのいずれかが指定可能である。
第4図は、本発明のデータ処理装置に使用されている
ALU22のファンクションを、ALU制御関係の各マイクロフ
ィールドで指定可能なオペレーションの組合せで定義し
た一覧表である。
ALU22は各命令の機能を実現するために必要な演算
を、マイクロプログラムの制御により各ファンクション
を組合せることにより処理する。
第5図は本発明のデータ処理装置に備えられているAL
U22の構成を示すブロック図である。
本発明のデータ処理装置に備えられているALU22は、
加算器を基本とした算術演算回路に論理積,論理和等を
行うための論理演算回路の機能を併せ持っている。
第5図において、参照符号B00〜B31はALU22の各1ビ
ット回路を示している。これらの各1ビット回路B00〜B
31はそれぞれALUレジスタ(A)18からの入力経路IA00
〜IA31と、ALUレジスタ(B)19からの入力経路IB00〜I
B31と、演算結果をSレジスタ27へ出力する経路O00〜O3
1とを有している。
また、ALU22は減算を行う際に値“1"が入力される入
力経路30と、演算結果がオーバフローまたはアンダーフ
ローした場合にセットされるVフラグ,負になった場合
にセットされるLフラグ,加減算の桁上がり,桁下がり
を示すXフラグ等を生成するための出力経路31も有して
いる。更に、本実施例のALU22は4ビット毎にCLA(Carr
y Look Head)C1〜C4を有していて演算の高速化を図っ
ている。
また、ALU22は入力された二つのデータに対して1ビ
ット毎に排他的論理和をとった値の反転信号を入力とす
るNANDゲート41〜48と、その出力信号を入力とするNOR
ゲート51〜54と、その出力信号を入力とするインバータ
61〜64とを備えており、各NORゲート51〜54の出力71〜7
4と各インバータ61〜64の出力81〜84とをストリング比
較結果判定回路へ出力する経路を有する。
NORゲート51の出力信号71が“1"であれば1バイト目
のデータが一致した事を、NORゲート52の出力信号72が
“1"であれば2バイト目のデータが一致した事を、NOR
ゲート53の出力信号73が“1"であれば3バイト目のデー
タが一致した事を、NORゲート54の出力信号74が“1"で
あれば4バイト目のデータが一致した事をそれぞれ示
す。
インバータ61の出力信号81が“1"であれば1バイト目
のデータが不一致した事を、インバータ62の出力信号82
が“1"であれば2バイト目のデータが不一致した事を、
インバータ63の出力信号83が“1"であれば3バイト目の
データが不一致した事を、インバータ84の出力信号が
“1"であれば4バイト目のデータが不一致した事をそれ
ぞれ示す。
(3.2)「ストリング比較結果判定回路」 第6図はALU22,ストリング比較結果判定回路23,カウ
ント値指定レジスタ15,16及び21,整置回路24,デクリメ
ンタ20,比較結果保持レジスタ29の接続関係の詳細を示
したブロック図である。
ALU22は1バイト毎にデータの比較を行い、比較が一
致した場合に“1"になるNORゲート51〜54の出力信号71
〜74と不一致した時に“1"になるインバータ61〜64の出
力信号81〜84とにて構成される8ビットの信号92をスト
リング比較結果判定回路23へ出力している。
デクリメンタ20はその値が“4"以下の値になった場合
にその値を示す2ビットの信号93をストリング比較結果
判定回路23へ出力している。
またストリング比較結果判定回路23は比較結果保持レ
ジスタ29からの入力経路97を有している。
ストリング比較結果判定回路23は、ALU22の比較結果
とデクリメンタ20の値とから比較値のデータサイズに応
じてデクリメンタ20の値を更新するためのカウント値指
定レジスタ21の値をセットする2ビットの信号94と、ア
ドレスレジスタ13,14の値を更新するためのカウント値
指定レジスタ15,16の値をセットする経路95と、デステ
ィネーション側に書込むソースデータのデータサイズを
示す2ビットの信号を整置回路24へ出力する経路96と、
比較結果を比較結果保持レジスタ29にセットする経路98
とを有している。
ストリング比較結果判定回路23は、ALU22から出力さ
れた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バ
イトのデータ幅をそれぞれ指定する。
次に第6図に示されている回路構成の動作について具
体的に説明する。
ストリング比較結果判定回路23の動作は、ストリング
命令の種類とタイミングにより以下の三通りに分かれ
る。
第1は、SMOV命令実行時にALU22の比較結果とデクリ
メンタ20の値とから実行命令を終了するか否かを決定
し、カウント値指定レジスタ15,16,21の値と整置回路24
へ出力するデータサイズの値とをセットする場合であ
る。
第2は、SCMP命令実行時の第1のソースデータと比較
値とを比較するサイクルにおいて、ALU22の比較結果の
みから比較結果を比較保持レジスタ29にセットする場合
である。
第3は、SCMP命令実行時に第1のソースデータと第2
のソースデータとを比較するサイクルにおいて、比較結
果保持レジスタ29の値と、ALU22の比較結果と、デクリ
メンタ20の値とから実行命令を終了するか否かを決定
し、カウント値指定レジスタ15,16,21の値をセットする
場合である。
まず、SMOV命令実行時にストリング比較結果判定回路
23がALU22の比較結果とデクリメンタ20の値とから、実
行命令を終了するか否かを決定し、カウント値指定レジ
スタ15,16,21の値と整置回路24へ出力するデータサイズ
の値とをセットする場合について説明する。
第7図(a),(b)及び(c)は、ALU22での比較
結果からカウント値指定レジスタ15,16,21にセットする
値と、整置回路24へ出力するデータ幅の値とを示す模式
図であり、比較値のデータサイズが8ビット,16ビット,
32ビットの場合をそれぞれ示している。
第7図(a)を参照してまず、比較値のデータサイズ
が8ビット(1バイト)である場合について説明する。
32ビットのソースデータA(0:31)の第1バイトA
(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バイトとなる。
ALU22での比較結果がすべて不一致であれば、カウン
ト値指定レジスタ15,16,21の値はいずれも“4"にセット
され、整置回路24へ出力されるデータ幅の値は4バイト
となる。
また、ソースデータの第1,第2バイトA(0:7),A
(8:15)で共に比較結果が一致すれば、1バイト目の比
較結果が優先されてカウント値指定レジスタ15,16,21の
値はいずれも“1"にセットされ、整置回路24へ出力され
るデータ幅の値は1バイトとなる。この場合、常にアド
レスの小さいソースデータでの比較結果が優先される。
更に、カウント値指定レジスタ21にセットするセット値
よりもデクリメンタ20の値が小さければ、デクリメンタ
20の値がカウント値指定レジスタ15,16,21の値になる。
次に第7図(b)を参照して、比較値のデータサイズ
が2バイトである場合について説明する。
ソースデータA(0:31)の第1,第2バイトA(0:15)
で比較結果が一致すれば、カウント値指定レジスタ21の
値は“1"に、カウント値指定レジスタ15,16の値は“2"
にそれぞれセットされ、整置回路24へ出力されるデータ
幅の値は2バイトになる。
ソースデータの第3,第4バイトA(16:31)で比較結
果が一致すれば、カウント値指定レジスタ21の値は“2"
に、カウント値指定レジスタ15,16の値は“4"にそれぞ
れセットされ、整置回路24へ出力されるデータ幅の値は
4バイトになる。
ALU22での比較結果がすべて不一致であれば、カウン
ト値指定レジスタ21の値は“2"に、カウント値指定レジ
スタ15,16の値は“4"にそれぞれセットされ、整置回路2
4へ出力されるデータ幅の値は4バイトになる。
また、ソースデータの第1,第2バイトA(0:15)と第
3,第4バイトA(16:31)とで共に比較結果が一致すれ
ば、常にアドレスの小さいソースデータが優先されてカ
ウント値指定レジスタ21の値は“1"に、カウント値指定
レジスタ15,16の値は“2"にそれぞれセットされ、整置
回路24へ出力されるデータ幅の値は2バイトになる。
更に、デクリメンタ20の値が“1"である場合はソース
データの第3,第4ばいバイトA(16:31)で比較結果が
一致するか、もしくはALU22での比較結果がすべて不一
致した場合でも、カウント値指定レジスタ21の値は“1"
に、カウント値指定レジスタ15,16の値は強制的に“2"
にそれぞれセットされ、整置回路24へ出力されるデータ
幅の値は2バイトになる。
最後に第7図(c)を参照して、比較値のデータサイ
ズが4バイトである場合について説明する。
この場合、比較結果が一致してもしなくても、カウン
ト値指定レジスタ21の値は“1"に、カウント値指定レジ
スタ15,16の値は“4"にそれぞれセットされ、整置回路2
4へ出力されるデータ幅の値は4バイトになる。
第8図(a),(b)及び(c)は、SCMP命令実行時
の第1のソースデータと比較値とを比較するサイクルに
おいて、ALU22の比較結果から比較結果保持レジスタ29
にセットする値と、第1のソースデータと第2のソース
データとを比較するサイクルにおいて、ALU22での比較
結果とデクリメンタ20の値と比較結果保持レジスタ29の
値とからカウント値指定レジスタ15,16,21にセットする
値とを示した模式図であり、比較値のデータサイズが8,
16,32ビットの場合をそれぞれ示している。
まず第8図(a)を参照して、比較値のデータサイズ
が8ビット(1バイト)である場合について説明する。
第1のソースデータA(0:31)と比較値とを比較する
サイクルにおいて、第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"にそ
れぞれセットされる。
また、第1のソースデータの第1,第2バイトA(0:
7),A(8:15)で共に比較結果が一致すれば、1バイト
目の比較結果が優先されて比較結果保持レジスタ29の値
は“1"にセットされる。この場合、常にアドレスの小さ
いソースデータでの比較結果が優先される。
また、第1のソースデータと第2のソースデータとを
比較するサイクルにおいて、第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"にセットさ
れる。
また、第1のソースデータの第1,第2バイトA(0:
7),A(8:15)で共に比較結果が不一致すれば、1バイ
ト目の比較結果が優先されてカウント値指定レジスタ1
5,16,21の値はいずれも“1"にセットされる。この場
合、常にアドレスの小さいソースデータでの比較結果が
優先される。但し、カウント値指定レジスタ15,16,21に
セットされる値が、デクリメンタ20の値または第1のソ
ースデータと比較値との比較結果を保持する比較結果保
持レジスタ29の値のいずれかよりも大きい場合は、デク
リメンタ20の値か第1のソースデータと比較値との比較
結果とを保持する比較結果保持レジスタ29の内のいずれ
か小さい値がカウント値指定レジスタ15,16,21の値とさ
れる。
次に第8図(b)を参照して、比較値のデータサイズ
が2バイトである場合について説明する。
第1のソースデータと比較値とを比較するサイクルに
おいて、第1のソースデータの第1,第2バイトA(0:1
5)で比較結果が一致すれば比較結果保持レジスタ29は
“1"に、第1のソースデータの第3,第4バイトA(16:3
1)で比較結果が一致すれば比較結果保持レジスタ29は
“2"にそれぞれセットされる。
また、第1のソースデータの第1,第2バイトA(0:1
5)と第3,第4バイトA(16:31)とで共に比較結果が一
致すれば1バイト目の比較結果が優先されて比較結果保
持レジスタ29の値は“1"にセットされる。この場合、常
にアドレスの小さいソースデータでの比較結果が優先さ
れる。
また、第1のソースデータと第2のソースデータとを
比較するサイクルにおいて、第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"にセットさ
れる。
また、第1のソースデータの第1,第2バイトA(0:1
5)と第3,第4バイトA(16:31)とで比較結果が共に不
一致すれば、常にアドレスの小さいソースデータが優先
されてカウント値指定レジスタ15,16,21の値はいずれも
“1"にセットされる。但し、カウント値指定レジスタ1
5,16,21にセットされる値が、デクリメンタ20の値か第
1のソースデータと比較値との比較結果を保持する比較
結果保持レジスタ29の値のいずれかよりも大きい場合
は、デクリメンタ20の値か第1のソースデータと比較値
との比較結果を保持する比較結果保持レジスタ29の値の
内のいずれか小さい値がカウント値指定レジスタ15,16,
21の値となる。
最後に第8図(c)を参照して、比較値のデータサイ
ズが4バイトである場合について説明する。
第1のソースデータと比較値とを比較するサイクルに
おいて、第1のソースデータと比較値との比較結果が一
致すれば比較結果保持レジスタ29は“1"にセットされ
る。
また、第1のソースデータと第2のソースデータとを
比較するサイクルにおいて、第1のソースデータA(0:
31)で比較結果が不一致すれば、カウント値指定レジス
タ15,16,21の値はいずれも“1"にセットされる。
(3.3)「クロック信号」 第9図は第2図のブロック図に示されている各構成要
素を制御するために用いられるクロック信号のタイミン
グチャートである。
PHA,PHB,PHC,PHDは非重復の4相クロックであり、ク
ロックPHAの立上がりからクロックPHA次のの立上がりま
での期間が1サイクルである。
第2図に示されている各構成要素は、これらのクロッ
クに従って以下のように制御される。
SIバス10及びS2バス11はクロック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サイクルで行われる。デー
タのメモリへの書込み,メモリからの読出しは以下のよ
うに行われる。
メモリからのデータの読出しが指定されると、1サイ
クルで外部メモリからデータが読出され、次のサイクル
のクロックPHAが“1"の期間にはメモリデータレジスタ
を介してS1バス10またはS2バス11に供給することができ
る。データをメモリに書込む場合には、クロックPHDが
“1"の期間にデータがメモリデータレジスタに書込まれ
れば、そのデータは次のサイクル中にメモリに書込まれ
る。
(4)「SMOV命令の説明」 第10図はSMOV命令のオペランドを示す模式図である。
SMOV命令のオペランドは、レジスタファイル17中のR0
レジスタ,R1レジスタ,R2レジスタ,R3レジスタに格納さ
れる。R0レジスタにはソース側ストリングの先頭アドレ
ス(ソースアドレス)が、R1レジスタにはデスティネー
ション側の先頭アドレス(デスティネーションアドレ
ス)が、R2レジスタにはストリングの長さを表すエレメ
ント数が、R3レジスタには比較割出し条件の比較値がそ
れぞれセットされる。
第11図(a),(b)及び(c)はSMOV命令実行時
に、DOバス12からR3レジスタに比較値をセットする際の
R3レジスタの動作を説明する模式図である。
第11図(a)に示す如く、比較値のサイズが1バイト
である場合、DOバス12のデータDO(24:31)がR3レジス
タのR3(0:7),R3(8:15),R3(16:23),R3(24:31)に
それぞれセットされる。
また第11図(b)に示す如く、比較値のサイズが2バ
イトである場合、DOバス12のデータDO(16:31)がR3レ
ジスタのR3(0:15),R3(16:31)にそれぞれセットされ
る。
更に第11図(c)に示す如く、比較値のサイズが4バ
イトである場合、DOバス12のデータDO(0:31)がR3レジ
スタのR3(0:31)にセットされる。
第12図は、SMOV命令の動作について説明した模式図で
ある。
SMOV命令はストリングを転送する命令である。具体的
にはSMOV命令は、指定された割出し条件とエレメント数
とに対して、メモリから読出したソースデータと比較割
出し条件の比較値とを比較し、デスティネーションへの
書込みを行う。一回の転送が終わる都度、ソースデータ
とR3レジスタに格納された比較値とが比較され、割出し
条件のチェックが行われる。割出し条件が成立した場
合、命令はその時点以後の処理を行わずに終了する。全
てのエレメントで割出し条件が成立しなかった場合は、
R2レジスタに格納されたエレメント数だけデータが転送
される。
また、以下のSMOV命令の処理の例では操作の対象とな
るソースデータとデスティネーションデータとは全て32
ビット(ワード)の整置境界上にあるデータに限定す
る。操作の対象となるデータが32ビット(ワード)の整
置境界を跨ぐ場合は、バスインタフェース部7のメモリ
に対するアクセス回数が増えるため、読出したデータと
書込むべきデータとに対してデータのシフト動作と連結
動作とを行ってデータを整置する必要があるが、その処
理方法については、特願昭64−88837号に詳しく述べら
れている。
(4.1)「SMOV命令の処理」 次に、本発明のデータ処理装置において1つのエレメ
ントが8ビットで構成される40ビット(5ワード)サイ
ズのストリングデータをSMOV命令でアドレスの増加方向
へ処理する動作を、第13図のフローチャートを参照して
説明する。
但し、操作の対象となるストリングデータは、最後の
エレメントのみが比較値と同一であるものとする。ま
た、エレメント数を“10"とする。なお、ソースデータ
のアドレスを“m"、デスティネーションデータのアドレ
スを“n"とし、R0レジスタとR1レジスタとにそれぞれセ
ットされているものとする。また、ストリングの長さを
表すエレメント数がR2レジスタに、割出し条件の比較値
がR3レジスタにそれぞれセットされているものとする。
更に、比較条件はソースデータと比較値とが等しい場合
に成立するものとする。
第1サイクルC11において、R2レジスタの内容(エレ
メント数)がデクリメンタ20にセットされ、R0レジスタ
の内容(ソースアドレス)がAA2レジスタ(メモリアド
レスレジスタ)14にセットされる。
第2サイクルC12において、R1レジスタの内容(デス
ティネーションアドレス)がAA1レジスタ(メモリアド
レスレジスタ)13にセットされ、AA2レジスタ14に格納
されているソースアドレスに従ってソースデータが外部
メモリからワードのデータサイズで読込まれ、メモリデ
ータレジスタ25に格納される。
第3サイクルC13において、メモリデータレジスタ25
の内容(ソースデータ)とR3レジスタの内容(比較値)
とがALU22により比較される。ALU22は8ビット単位でデ
ータを比較し、比較結果をストリング比較結果判定回路
23へ出力する。操作の対象となっているストリングデー
タは、5バイト目のみが比較値と同一であるので、4バ
イト目までのデータ比較では一致が検出されない。スト
リング比較結果判定回路23は、ALU22での比較結果とデ
クリメンタ20の値とから、次のサイクルでデクリメンタ
20の値を更新するカウント値指定レジスタ21の値“4"
と、ソースアドレスとデスティネーションアドレスとを
更新するカウント値指定レジスタ15,16の値“4"とをセ
ットし、デスティネーションにデータを書込む際のデー
タサイズの情報“4"を整置回路24へ出力する。
第4サイクルC14において、デクリメンタ20の値を
“4"だけデクリメントして“6"とし、この値をR2レジス
タへ戻す。また、AA1レジスタ13に格納されているデス
ティネーションのアドレス“m"に従って、ソースデータ
を外部メモリに書込む。更に、AA1レジスタ13とAA2レジ
スタ14との値をインクリメントし、ソースアドレスの値
とデスティネーションアドレスの値とをそれぞれ“n+
4"と“m+4"とに更新する。
第5サイクルC15において、AA2レジスタ14の値(ソー
スアドレス)をR0レジスタへ戻す。
第6サイクルC16において、AA1レジスタ13の値(デス
ティネーションアドレス)をR1レジスタへ戻す。そし
て、前述の第3サイクルにおいて比較割出し条件が成立
しているか、あるいは第4サイクルにおいて更新したデ
クリメンタ20の値がゼロであれば命令の実行を終了す
る。ここで、比較割出し条件は不成立であってデクリメ
ンタ20の値は“6"となっているので、AA1レジスタ14に
格納されたソースデータのアドレスに従って、データを
外部メモリから読込んでメモリデータレジスタ25に格納
する。そして再び、第3サイクルC13の処理に戻る。
第2回目の第3サイクルC13において、メモリデータ
レジスタ25の内容とR3レジスタの内容とがALU22で比較
される。ALU22は8ビット単位でデータを比較し、比較
結果をストリング比較結果判定回路23へ出力する。操作
の対象となっているストリングデータは、5バイト目の
みが比較値と同一であるので、ALU22が比較した1バイ
ト目で一致が検出される。
ストリング比較結果判定回路23は、比較割出し条件の
成立を検出して実行命令を終了することを決定する。ま
た、ストリング比較結果判定回路23はALU22での比較結
果とデクリメンタ20の値とから、次のサイクルでデクリ
メンタ20の値を更新するカウント値指定レジスタ21の値
“1"と、ソースアドレスとデスティネーションアドレス
とを更新するカウント値指定レジスタ15,16の値“1"と
をセットし、デスティネーションにデータを書込む際の
データサイズの情報“1"を整置回路24へ出力する。
第2回目の第4サイクルC14において、デクリメンタ2
0の値が“1"だけデクリメントされて“5"となり、この
値がR2レジスタへ戻される。また、AA1レジスタ13に格
納されているデスティネーションアドレス“m+4"に従
って、ソースデータが外部メモリに書込まれる。更に、
AA1レジスタ13の値とAA2レジスタ14の値とがインクリメ
ントされ、ソースアドレスの値とデスティネーションア
ドレスの値とがそれぞれ“n+5"と“m+5"とに更新さ
れる。
第2回目の第5サイクルC15において、AA2レジスタ14
の値がR0レジスタへ戻される。
第2回目の第6サイクルC16において、AA1レジスタ13
の値がR1レジスタへ戻される。第2回目の第3サイクル
C13において比較割出し条件が成立しているので命令の
実行は終了する。
(5)「SCMP命令の説明」 第14図はSCMP命令のオペランドを示す模式図である。
SCMP命令のオペランドは、レジスタファイル17中のR0
レジスタ,R1レジスタ,R2レジスタ,R3レジスタに格納さ
れる。R0レジスタには第1のソース側ストリングの先頭
アドレス(ソースアドレス)が、R1レジスタには第2の
ソース側ストリングの先頭アドレス(ソースアドレス)
が、R2レジスタにはストリングの長さを表すエレメント
数が、R3レジスタには比較割出し条件の比較値がそれぞ
れセットされる。
このSCMP命令実行時に、DOバス12からR3レジスタに比
較値をセットする時のR3レジスタの動作は、比較値のサ
イズが8ビットの場合、16ビットの場合及び32ビットの
場合のいずれも前述の第11図に示したSMOV命令の場合と
同様である。
SCMP命令はストリングを比較する命令である。具体的
には、SCMP命令は指定された割出し条件とエレメント数
とに対して、メモリから読出された第1のソースデータ
と比較割出し条件の比較値と比較されて割出し条件のチ
ェックが行われる。次に、第1のソース側と第2のソー
ス側のエレメントとの比較を行い、エレメントの不一
致、あるいは割出し条件の成立により、命令はそれ以後
の処理を続けずに終了する。すべてのエレメントが一致
し、且つ割出し条件が成立しなかった場合、R2レジスタ
に格納されたエレメント数だけ転送が行われる。
また、以下のSCMP命令の処理の例では、前述のSMOV命
令の場合と同様に、操作の対象となる第1のソースデー
タと第2のソースデータとは全て32ビット(ワード)の
整置境界上にあるデータに限定する。操作の対象となる
データが32ビット(ワード)の整置境界を跨ぐ場合は、
バスインタフェース部7のメモリに対するアクセス回数
が増加するため、読出したデータに対してはデータのシ
フト動作と連結動作とを行ってデータを整置する必要が
あるが、その処理方法については、特願昭64−88837号
に詳しく述べられている。
(5.1)「SCMP命令の処理」 次に、本発明のデータ処理装置において1つのエレメ
ントが8ビットで構成される32ビットの第1のソースス
トリングデータと第2のソースストリングデータとをSC
MP命令でアドレスの増加方向に比較処理する動作を、第
15図のフローチャートを参照して説明する。
但し、第1のソースデータと第2のソースデータとは
同一のデータであるとし、第1のソースデータには比較
値と同一エレメントが含まれていないものとする。な
お、第1のソースデータのアドレスを“K",第2のソー
スデータのアドレスを“L"とし、R0レジスタとR1レジス
タとにそれぞれセットされているものとする。更に、ス
トリングの長さを表すエレメント数“4"がR2レジスタ
に、割出し条件の比較値がR3レジスタにそれぞれセット
されているものとする。なお、比較条件はソースデータ
と比較値とが等しい場合に成立するものとする。
第1サイクルC21において、R2レジスタの内容(エレ
メント数)がデクリメンタ20にセットされ、R0レジスタ
の内容(第1のソースアドレス)がAA2レジスタ14にセ
ットされる。
第2サイクルC22において、R1レジスタの内容(第2
のソースアドレス)がAA1レジスタ13にセットされ、AA2
レジスタ14に格納されている第1のソースデータのアド
レス“K"に従ってソースデータが外部メモリからワード
のデータサイズで読込まれ、メモリデータレジスタ25に
格納される。
第3サイクルC23において、メモリデータレジスタ
(1)25の内容(第1のソースデータ)とR3レジスタの
内容(比較値)とがALU22で比較される。ALU22は8ビッ
ト単位でデータを比較し、比較結果をストリング比較結
果判定回路23へ出力する。第1のソースアドレスには比
較値と同一のエレメントは含まれていないので、ALU22
は比較結果が一致しないことを示す情報をストリング比
較結果判定回路23へ出力する。
ストリング比較結果判定回路は、ALU22から出力され
た4ビットの信号の論理和演算を行って比較が一致しな
い事を検出し、比較結果を比較結果保持レジスタ24に保
持させる。
また、AA1レジスタ13に格納されている第2のソース
データのアドレス“L"に従ってソースデータが外部メモ
リからワードのデータサイズで読込まれ、メモリデータ
レジスタ(2)28に格納される。
第4サイクルC24において、メモリデータレジスタ
(1)25の内容(第1のソースデータ)とメモリデータ
レジスタ(2)28の内容(第2のソースデータ)とがAL
U22で比較される。ALU22は8ビット単位でデータを比較
し、比較結果をストリング比較結果判定回路23へ出力す
る。ここで、第1のソースデータと第2のソースデータ
とは同一データであるのでALU22による比較結果は全て
一致し、不一致のエレメントは検出されない。
ストリング比較結果判定回路23は、ALU22による比較
結果とデクリメンタ20の値が“4"以下になった場合に検
出される検出信号との論理和演算を行い、この結果から
実行命令を終了する決定を行う。また、前サイクルで比
較結果保持レジスタ24に保持された第1のソースデータ
と比較値との比較結果情報は一致エレメントが検出され
なかったので無視される。更に、次のサイクルでデクリ
メンタ20の値を更新するカウント値指定レジスタ21の値
“4"と、第1のソースアドレスと第2のソースアドレス
とを更新するカウント値指定レジスタ15,16の値“4"と
をセットする。
第5サイクルC25において、デクリメンタ20の値が
“4"デクリメントされ、この値がR2レジスタへ戻され
る。また、AA1レジスタ13の値とAA2レジスタ14の値とが
インクリメントされることにより、第1のソースアドレ
スの値と第2のソースアドレスの値とがそれぞれ“K+
4",“L+4"に更新される。
第6サイクルC26において、AA2レジスタ14の値がR0レ
ジスタへ戻れる。
第7サイクルC27において、AA1レジスタ13の値がR1レ
ジスタへ戻される。この場合、前記第3サイクルにおい
て、比較割出し条件が成立しているので命令の実行が終
了する。
[発明の効果] 以上に詳述した如く本発明のデータ処理装置の第1の
発明では、たとえば各8ビット同士について検出された
4つの比較結果の論理和演算と論理積演算とからそれぞ
れ8ビット,16ビット,32ビットのエレメントにて構成さ
れるデータの比較動作を同一のハードウエアで行うこと
が可能になるので、8ビットのエレメントにて構成され
るデータの比較動作を4つ並列に、16ビットのエレメン
トにて構成されるデータの比較動作を2つ並列に共に一
度の処理で実行可能になるので、高速な比較動作を処理
するハードウエアが実現される。
また第2の発明では、たとえば8ビット,16ビットサ
イズのエレメントにて構成されるストリングデータの転
送動作を、転送対象データの最後のデータエレメントの
サーチ動作を並列に行いつつ、一度の処理で4つまたは
2つのエレメントのデータ転送が行えるので、8ビッ
ト,16ビットのエレメントサイズにて構成され、最後の
データエレメントのみが比較値と同一であるストリング
データを転送する命令を高速に実行するマイクロプロセ
ッサが実現される。
更に第3の発明では、たとえば8ビット,16ビットサ
イズのエレメントにて構成されるストリングデータの比
較動作を、操作対象のエレメント数と比較結果とから一
度の処理で4つまたは2つのエレメントの比較を並列に
行うとが可能になるので、ストリングデータの比較を行
う命令を高速に実行するマイクロプロセッサが実現され
る。
そして第3の発明ではデクリメンタ、即ち第3のレジ
スタに保持されたエレメント数に基づいて命令終了条件
の判定を行っている。比較結果判定手段は、例えば、8
ビットデータエレメントからなる2組のストリングデー
タのストリング比較命令を、不一致検出された時に命令
を終了する条件とエレメント数(第3のレジスタの値)
命令を終了する条件で実行した場合、比較手段の各比較
結果を論理和演算した比較結果から不一致となったスト
リングデータが検出されたと判明したときでも、既に第
3のレジスタの保持されたエレメント数だけ比較処理を
行っているときは、エレメント数(第3のレジスタの
値)の条件で命令を終了することができるのである。
【図面の簡単な説明】
第1図は本発明のデータ処理装置の構成を示すブロック
図、 第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…ストリング比較結果判定回路 なお、図中、同一符号は同一、又は相当部分を示す。
フロントページの続き (56)参考文献 特開 昭62−73330(JP,A) 特開 昭61−100836(JP,A) 特開 平1−72236(JP,A) 特開 昭63−55636(JP,A)

Claims (3)

    【特許請求の範囲】
  1. 【請求項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. 【請求項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. 【請求項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のレジスタ
    に保持されたエレメント数の比較条件で前記ストリング
    比較命令の終了を決定すべくなしてあること を特徴とするデータ処理装置。
JP2231964A 1990-08-29 1990-08-29 データ処理装置 Expired - Lifetime JPH0831032B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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