JPH064582A - 中央演算装置 - Google Patents
中央演算装置Info
- Publication number
- JPH064582A JPH064582A JP4165841A JP16584192A JPH064582A JP H064582 A JPH064582 A JP H064582A JP 4165841 A JP4165841 A JP 4165841A JP 16584192 A JP16584192 A JP 16584192A JP H064582 A JPH064582 A JP H064582A
- Authority
- JP
- Japan
- Prior art keywords
- register
- character string
- selecting means
- flag
- comparator
- 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
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
(57)【要約】
【目的】 本発明は中央演算装置の文字列処理に関する
もので、本来のデータ幅、すなわち複数バイト単位で文
字列の比較や終わり検出することを目的とする。 【構成】 本発明の中央演算装置は、レジスタファイル
101から文字列の終わりを示すビットパターンである
エンドコードを格納しているレジスタを含め、同時に3
つのレジスタをレジスタ選択手段102a、102b,
102cで選択し、各選択されたデータを比較器103
a、103bで文字単位ごとに比較し、文字列終了検出
器105と文字列一致終了検出器107によって、文字
列の比較と終わり検出を高速に処理する。
もので、本来のデータ幅、すなわち複数バイト単位で文
字列の比較や終わり検出することを目的とする。 【構成】 本発明の中央演算装置は、レジスタファイル
101から文字列の終わりを示すビットパターンである
エンドコードを格納しているレジスタを含め、同時に3
つのレジスタをレジスタ選択手段102a、102b,
102cで選択し、各選択されたデータを比較器103
a、103bで文字単位ごとに比較し、文字列終了検出
器105と文字列一致終了検出器107によって、文字
列の比較と終わり検出を高速に処理する。
Description
【0001】
【産業上の利用分野】本発明は中央演算装置に関するも
のである。
のである。
【0002】
【従来の技術】近年、中央演算装置のデータ幅は増加す
る傾向にあり、8ビットや16ビットの従来の文字幅に
整合しなくなってきている。以下、上記した従来の中央
演算装置の一例について図2を用いて説明する。
る傾向にあり、8ビットや16ビットの従来の文字幅に
整合しなくなってきている。以下、上記した従来の中央
演算装置の一例について図2を用いて説明する。
【0003】従来の中央演算装置では本来のデータ幅で
ある32ビットの演算の他に、8ビット幅や16ビット
幅の文字幅に適合したデータ幅の演算を用意し、文字列
の転送や比較を文字単位で処理する。例えば、「x86
マイクロプロセッサの全貌」75から76ページと14
7ページ(日経データプロ編集、1990年9月20
日、日経BP社発行)によると、図2のように、8ビッ
トと16ビットあるいは32ビットのデータを格納する
レジスタの集まりであるレジスタファイル201と、演
算データを選択する第1レジスタ選択手段202aと、
被演算データを選択する第2レジスタ選択手段202b
を備える。各選択手段202a、202bで選択された
データは算術論理演算ユニット204で演算が行なわ
れ、その結果が0だったか、0でなかったかがZフラグ
208bに記憶される。算術論理演算ユニットは8ビッ
トと16ビットと32ビットのデータを扱い、データの
ビット幅はオペレーションコード213のデータ種別フ
ィールド211から、制御手段203を通して与えられ
る。オペレーションコード213は演算の種類を指定す
る命令種別210と、演算するデータのビット幅を指定
するデータ種別フィールド211と、演算するデータの
格納されているレジスタを指定するレジスタ番号212
で構成される。
ある32ビットの演算の他に、8ビット幅や16ビット
幅の文字幅に適合したデータ幅の演算を用意し、文字列
の転送や比較を文字単位で処理する。例えば、「x86
マイクロプロセッサの全貌」75から76ページと14
7ページ(日経データプロ編集、1990年9月20
日、日経BP社発行)によると、図2のように、8ビッ
トと16ビットあるいは32ビットのデータを格納する
レジスタの集まりであるレジスタファイル201と、演
算データを選択する第1レジスタ選択手段202aと、
被演算データを選択する第2レジスタ選択手段202b
を備える。各選択手段202a、202bで選択された
データは算術論理演算ユニット204で演算が行なわ
れ、その結果が0だったか、0でなかったかがZフラグ
208bに記憶される。算術論理演算ユニットは8ビッ
トと16ビットと32ビットのデータを扱い、データの
ビット幅はオペレーションコード213のデータ種別フ
ィールド211から、制御手段203を通して与えられ
る。オペレーションコード213は演算の種類を指定す
る命令種別210と、演算するデータのビット幅を指定
するデータ種別フィールド211と、演算するデータの
格納されているレジスタを指定するレジスタ番号212
で構成される。
【0004】上記の構成において、アスキーコードで構
成されている文字列の転送と比較の動作を説明する。ま
ず転送について、メモリの0番地に「xy☆」という文
字列があり、これをメモリの10番地に転送する場合を
例に説明する。なお、☆は文字列の終わりを示すエンド
コードであり、数値的には0である。
成されている文字列の転送と比較の動作を説明する。ま
ず転送について、メモリの0番地に「xy☆」という文
字列があり、これをメモリの10番地に転送する場合を
例に説明する。なお、☆は文字列の終わりを示すエンド
コードであり、数値的には0である。
【0005】(1)0番地から文字xをレジスタファイ
ル201内のaレジスタに転送する。すると、第1レジ
スタ選択手段でaレジスタが選択され、算術論理演算ユ
ニット204でaレジスタの下位8ビットと0とが比較
され0でないことがZフラグ208bに記憶される。
ル201内のaレジスタに転送する。すると、第1レジ
スタ選択手段でaレジスタが選択され、算術論理演算ユ
ニット204でaレジスタの下位8ビットと0とが比較
され0でないことがZフラグ208bに記憶される。
【0006】(2)aレジスタに格納されている文字x
を10番地に転送する。 (3)Zフラグを見て、0ではないので文字列の終わり
ではないことがわかる。
を10番地に転送する。 (3)Zフラグを見て、0ではないので文字列の終わり
ではないことがわかる。
【0007】(4)1番地から文字yをaレジスタに転
送する。0と比較され0でないことがZフラグ208b
に記憶される。
送する。0と比較され0でないことがZフラグ208b
に記憶される。
【0008】(5)aレジスタに格納されている文字y
を11番地に転送する。 (6)Zフラグ208bを見て、0ではないので文字列
の終わりではないことがわかる。
を11番地に転送する。 (6)Zフラグ208bを見て、0ではないので文字列
の終わりではないことがわかる。
【0009】(7)2番地から文字☆をaレジスタに転
送する。0と比較され0であることがZフラグ208b
に記憶される。
送する。0と比較され0であることがZフラグ208b
に記憶される。
【0010】(8)aレジスタに格納されている文字☆
を12番地に転送する。 (9)Zフラグ208bを見て、文字列の終わりである
ことがわかり文字列の転送が完了する。
を12番地に転送する。 (9)Zフラグ208bを見て、文字列の終わりである
ことがわかり文字列の転送が完了する。
【0011】次により高速な転送方法について、0番地
に文字列「xyzvw☆☆☆」があり、これを10番地
に転送する場合を例に説明する。
に文字列「xyzvw☆☆☆」があり、これを10番地
に転送する場合を例に説明する。
【0012】(1)0番地から3番地の文字列xyzv
をレジスタファイル201内のaレジスタに転送する。
すると、第1レジスタ選択手段でaレジスタが選択さ
れ、算術論理演算ユニット204でaレジスタの32ビ
ットと0とが比較され0でないことがZフラグ208b
に記憶される。
をレジスタファイル201内のaレジスタに転送する。
すると、第1レジスタ選択手段でaレジスタが選択さ
れ、算術論理演算ユニット204でaレジスタの32ビ
ットと0とが比較され0でないことがZフラグ208b
に記憶される。
【0013】(2)aレジスタに格納されている文字列
xyzvを10番地から13番地に転送する。
xyzvを10番地から13番地に転送する。
【0014】(3)aレジスタの下位8ビットをテスト
する。0でないことがZフラグ208bに記憶される。
する。0でないことがZフラグ208bに記憶される。
【0015】(4)Zフラグを見て、0ではないので文
字列の終わりではないことがわかる。
字列の終わりではないことがわかる。
【0016】(5)4番地から7番地の文字列w☆☆☆
をaレジスタに転送する。同時に0と比較され0でない
ことがZフラグ208bに記憶される。
をaレジスタに転送する。同時に0と比較され0でない
ことがZフラグ208bに記憶される。
【0017】(6)aレジスタに格納されている文字列
w☆☆☆を14番地から17番地に転送する。
w☆☆☆を14番地から17番地に転送する。
【0018】(7)aレジスタの下位8ビットをテスト
する。0であることがZフラグ208bに記憶される。
する。0であることがZフラグ208bに記憶される。
【0019】(8)Zフラグ208bを見て、文字列の
終わりであることがわかり文字列の転送が完了する。
終わりであることがわかり文字列の転送が完了する。
【0020】最後に比較について、0番地にある文字列
「x☆」と4番地にある文字列「x☆」を比較する場合
を例に説明する。
「x☆」と4番地にある文字列「x☆」を比較する場合
を例に説明する。
【0021】(1)0番地から文字xをレジスタファイ
ル201内のaレジスタに転送する。すると、第1レジ
スタ選択手段でaレジスタが選択され、算術論理演算ユ
ニット204でaレジスタの32ビットと0とが比較さ
れ0でないことがZフラグ208bに記憶される。
ル201内のaレジスタに転送する。すると、第1レジ
スタ選択手段でaレジスタが選択され、算術論理演算ユ
ニット204でaレジスタの32ビットと0とが比較さ
れ0でないことがZフラグ208bに記憶される。
【0022】(2)4番地から文字xをレジスタファイ
ル201内のbレジスタに転送する。すると、第1レジ
スタ選択手段でaレジスタが選択され、算術論理演算ユ
ニット204でaレジスタの32ビットと0とが比較さ
れ0でないことがZフラグ208bに記憶される。
ル201内のbレジスタに転送する。すると、第1レジ
スタ選択手段でaレジスタが選択され、算術論理演算ユ
ニット204でaレジスタの32ビットと0とが比較さ
れ0でないことがZフラグ208bに記憶される。
【0023】(3)aレジスタに格納されている文字x
とbレジスタに格納されている文字xを比較する。比較
の結果、同じであったことがZフラグ208bに記憶さ
れる。
とbレジスタに格納されている文字xを比較する。比較
の結果、同じであったことがZフラグ208bに記憶さ
れる。
【0024】(4)aレジスタの下位8ビットをテスト
する。0でないことがZフラグ208bに記憶される。
する。0でないことがZフラグ208bに記憶される。
【0025】(5)Zフラグ208bを見て、文字列の
終わりではないことがわかる。 (6)1番地から文字☆をaレジスタに転送する。0と
比較され0であることがZフラグ208bに記憶され
る。
終わりではないことがわかる。 (6)1番地から文字☆をaレジスタに転送する。0と
比較され0であることがZフラグ208bに記憶され
る。
【0026】(7)4番地から文字☆をbレジスタに転
送する。0と比較され0であることがZフラグ208b
に記憶される。
送する。0と比較され0であることがZフラグ208b
に記憶される。
【0027】(8)aレジスタに格納されている文字☆
とbレジスタに格納されている文字☆を比較する。比較
の結果、同じであったことがZフラグ208bに記憶さ
れる。
とbレジスタに格納されている文字☆を比較する。比較
の結果、同じであったことがZフラグ208bに記憶さ
れる。
【0028】(9)aレジスタの下位8ビットをテスト
する。0であることがZフラグ208bに記憶される。
する。0であることがZフラグ208bに記憶される。
【0029】(10)Zフラグ208bを見て、文字列
の終わりであることがわかり、2つの文字列が同じであ
ったことがわかる。
の終わりであることがわかり、2つの文字列が同じであ
ったことがわかる。
【0030】
【発明が解決しようとする課題】しかしながら上記のよ
うな構成では、データ幅が32ビットでも、文字列操作
時には文字列を文字単位すなわち8ビットで操作するの
で、データ幅を32ビットにした効果が得られないとい
う問題を有していた。また、高速な転送方法を用いて、
32ビットすなわち4文字をメモリからレジスタに転送
した場合は、転送後、レジスタの下位8ビットをテスト
しなければならないので、命令数が増えるという問題を
有していた。
うな構成では、データ幅が32ビットでも、文字列操作
時には文字列を文字単位すなわち8ビットで操作するの
で、データ幅を32ビットにした効果が得られないとい
う問題を有していた。また、高速な転送方法を用いて、
32ビットすなわち4文字をメモリからレジスタに転送
した場合は、転送後、レジスタの下位8ビットをテスト
しなければならないので、命令数が増えるという問題を
有していた。
【0031】従って本発明は上記問題点に鑑み、本来の
データ幅、すなわち複数バイト単位で文字列の比較や転
送のときの終わり検出をする中央演算装置を提供するも
のである。さらに、複数バイト単位で処理したときに、
複数バイト単位では割りきれない文字列の半端となった
文字数を知るための手段も提供するものである。
データ幅、すなわち複数バイト単位で文字列の比較や転
送のときの終わり検出をする中央演算装置を提供するも
のである。さらに、複数バイト単位で処理したときに、
複数バイト単位では割りきれない文字列の半端となった
文字数を知るための手段も提供するものである。
【0032】
【課題を解決するための手段】上記問題点を解決するた
めに本発明の請求項1記載の中央演算装置は、レジスタ
ファイルと、前記レジスタファイルから文字列データの
終わりを示すビットパターンであるエンドコードで構成
されている文字列を格納している第1のレジスタを選択
する第1レジスタ選択手段と、前記レジスタファイルか
ら第2のレジスタを選択する第2レジスタ選択手段と、
前記レジスタファイルから第3のレジスタを選択する第
3レジスタ選択手段と、前記第1レジスタ選択手段で選
ばれたデータと前記第2レジスタ選択手段で選ばれたデ
ータを同じ桁にある文字どうしごとに比較する第1の比
較器と、前記第2レジスタで選ばれたデータと前記第3
レジスタで選ばれたデータの算術論理演算を行なう算術
論理演算ユニットと、前記算術論理演算ユニットの演算
結果を記憶するZフラグと、前記第1の比較器の出力を
入力として、前記第2のレジスタに格納されているデー
タ中にエンドコードが含まれていることを示す信号を出
力とする文字列終了検出器と、前記文字列終了検出器の
出力を記憶するEフラグとを備えたものである。
めに本発明の請求項1記載の中央演算装置は、レジスタ
ファイルと、前記レジスタファイルから文字列データの
終わりを示すビットパターンであるエンドコードで構成
されている文字列を格納している第1のレジスタを選択
する第1レジスタ選択手段と、前記レジスタファイルか
ら第2のレジスタを選択する第2レジスタ選択手段と、
前記レジスタファイルから第3のレジスタを選択する第
3レジスタ選択手段と、前記第1レジスタ選択手段で選
ばれたデータと前記第2レジスタ選択手段で選ばれたデ
ータを同じ桁にある文字どうしごとに比較する第1の比
較器と、前記第2レジスタで選ばれたデータと前記第3
レジスタで選ばれたデータの算術論理演算を行なう算術
論理演算ユニットと、前記算術論理演算ユニットの演算
結果を記憶するZフラグと、前記第1の比較器の出力を
入力として、前記第2のレジスタに格納されているデー
タ中にエンドコードが含まれていることを示す信号を出
力とする文字列終了検出器と、前記文字列終了検出器の
出力を記憶するEフラグとを備えたものである。
【0033】また請求項1記載において、第1の比較器
の出力を入力とし、前記第1の比較器で比較したデータ
中にエンドコードがあったとき、一番先頭にあるエンド
コードの桁位置を出力する位置番号発生器を付加した。
の出力を入力とし、前記第1の比較器で比較したデータ
中にエンドコードがあったとき、一番先頭にあるエンド
コードの桁位置を出力する位置番号発生器を付加した。
【0034】また請求項1、2記載において、第2レジ
スタ選択手段で選ばれたデータと第3レジスタ選択手段
で選ばれたデータを同じ桁にある文字どうしごとに比較
する第2の比較器と、第1の比較器の出力と前記第2の
比較器の出力を入力とし、前記第2のレジスタに格納さ
れているデータで、エンドコードとエンドコードよりも
先頭方向にあるすべての文字と第3のレジスタに格納さ
れているデータで、エンドコードとエンドコードよりも
先頭方向にあるすべての文字が等しいことを示す信号を
出力とする文字列一致終了検出器と、前記文字列一致終
了検出器の出力を記憶するFフラグを付加した。
スタ選択手段で選ばれたデータと第3レジスタ選択手段
で選ばれたデータを同じ桁にある文字どうしごとに比較
する第2の比較器と、第1の比較器の出力と前記第2の
比較器の出力を入力とし、前記第2のレジスタに格納さ
れているデータで、エンドコードとエンドコードよりも
先頭方向にあるすべての文字と第3のレジスタに格納さ
れているデータで、エンドコードとエンドコードよりも
先頭方向にあるすべての文字が等しいことを示す信号を
出力とする文字列一致終了検出器と、前記文字列一致終
了検出器の出力を記憶するFフラグを付加した。
【0035】本発明の請求項4記載の中央演算装置は、
レジスタファイルと、前記レジスタファイルから文字列
データの終わりを示すビットパターンであるエンドコー
ドを最下位桁に格納している第1のレジスタを選択する
第1レジスタ選択手段と、前記レジスタファイルから第
2のレジスタを選択する第2レジスタ選択手段と、前記
レジスタファイルから第3のレジスタを選択する第3レ
ジスタ選択手段と、前記第1レジスタ選択手段で選ばれ
たデータと前記第2レジスタ選択手段で選ばれたデータ
の最下位桁を比較する比較器と、前記第2レジスタ選択
手段で選ばれたデータと前記第3レジスタ選択手段で選
ばれたデータの算術論理演算を行なう算術論理演算ユニ
ットと、前記算術論理演算ユニットの演算結果を記憶す
るZフラグと、前記比較器の出力を入力として、前記第
2のレジスタに格納されているデータの最下位桁がエン
ドコードであること記憶するEフラグとを備えたもので
ある。
レジスタファイルと、前記レジスタファイルから文字列
データの終わりを示すビットパターンであるエンドコー
ドを最下位桁に格納している第1のレジスタを選択する
第1レジスタ選択手段と、前記レジスタファイルから第
2のレジスタを選択する第2レジスタ選択手段と、前記
レジスタファイルから第3のレジスタを選択する第3レ
ジスタ選択手段と、前記第1レジスタ選択手段で選ばれ
たデータと前記第2レジスタ選択手段で選ばれたデータ
の最下位桁を比較する比較器と、前記第2レジスタ選択
手段で選ばれたデータと前記第3レジスタ選択手段で選
ばれたデータの算術論理演算を行なう算術論理演算ユニ
ットと、前記算術論理演算ユニットの演算結果を記憶す
るZフラグと、前記比較器の出力を入力として、前記第
2のレジスタに格納されているデータの最下位桁がエン
ドコードであること記憶するEフラグとを備えたもので
ある。
【0036】また請求項4記載において、比較器の出力
と算術論理演算ユニットの出力を入力とし、第2のレジ
スタに格納されているデータと第3のレジスタに格納さ
れているデータが等しく、かつ前記第2のレジスタに格
納されているデータの最下位桁がエンドコードであるこ
とを示す信号を出力とする文字列一致終了検出器と、前
記文字列一致終了検出器の出力を記憶するFフラグを付
加した。
と算術論理演算ユニットの出力を入力とし、第2のレジ
スタに格納されているデータと第3のレジスタに格納さ
れているデータが等しく、かつ前記第2のレジスタに格
納されているデータの最下位桁がエンドコードであるこ
とを示す信号を出力とする文字列一致終了検出器と、前
記文字列一致終了検出器の出力を記憶するFフラグを付
加した。
【0037】
【作用】本発明は上記した請求項1記載の構成によっ
て、第1の比較器を用いて第1レジスタ選択手段で選ば
れたデータと第2レジスタ選択手段で選ばれたデータを
同じ桁にある文字どうしごとに比較し、文字列終了検出
器が第1の比較器の出力を入力として、第2のレジスタ
に格納されているデータ中にエンドコードが含まれてい
ることを示す信号を出力するため、本来のデータ幅、す
なわち複数バイト単位で文字列の転送のときの終わり検
出ができる。
て、第1の比較器を用いて第1レジスタ選択手段で選ば
れたデータと第2レジスタ選択手段で選ばれたデータを
同じ桁にある文字どうしごとに比較し、文字列終了検出
器が第1の比較器の出力を入力として、第2のレジスタ
に格納されているデータ中にエンドコードが含まれてい
ることを示す信号を出力するため、本来のデータ幅、す
なわち複数バイト単位で文字列の転送のときの終わり検
出ができる。
【0038】また位置番号発生器を付加したため、第1
の比較器で比較したデータ中にエンドコードがあったと
き、一番先頭にあるエンドコードの桁位置を知ることが
でき、この桁位置から複数バイト単位では割りきれない
文字列の半端となった文字数を数えることができる。
の比較器で比較したデータ中にエンドコードがあったと
き、一番先頭にあるエンドコードの桁位置を知ることが
でき、この桁位置から複数バイト単位では割りきれない
文字列の半端となった文字数を数えることができる。
【0039】さらに文字列一致終了検出器を付加したた
め、第1の比較器の出力と第2の比較器の出力を入力と
し、第2のレジスタに格納されているデータで、エンド
コードとエンドコードよりも先頭方向にあるすべての文
字と第3のレジスタに格納されているデータで、エンド
コードとエンドコードよりも先頭方向にあるすべての文
字が等しいことを示す信号を出力することができ、本来
のデータ幅、すなわち複数バイト単位で文字列の比較と
終わり検出を同時にできる。
め、第1の比較器の出力と第2の比較器の出力を入力と
し、第2のレジスタに格納されているデータで、エンド
コードとエンドコードよりも先頭方向にあるすべての文
字と第3のレジスタに格納されているデータで、エンド
コードとエンドコードよりも先頭方向にあるすべての文
字が等しいことを示す信号を出力することができ、本来
のデータ幅、すなわち複数バイト単位で文字列の比較と
終わり検出を同時にできる。
【0040】本発明は上記した請求項4記載の構成によ
って、比較器を用いて第1レジスタ選択手段で選ばれた
エンドコードと第2レジスタ選択手段で選ばれたデータ
の最下位桁を比較し、この比較結果、第2のレジスタに
格納されているデータの最下位桁がエンドコードである
ことがわかる。
って、比較器を用いて第1レジスタ選択手段で選ばれた
エンドコードと第2レジスタ選択手段で選ばれたデータ
の最下位桁を比較し、この比較結果、第2のレジスタに
格納されているデータの最下位桁がエンドコードである
ことがわかる。
【0041】また文字列一致終了検出器を付加したた
め、第2のレジスタに格納されているデータと第3のレ
ジスタに格納されているデータが等しく、かつ前記第2
のレジスタに格納されているデータの最下位桁がエンド
コードであることがわかるため、本来のデータ幅、すな
わち複数バイト単位で文字列の比較と終わり検出を同時
にできる。
め、第2のレジスタに格納されているデータと第3のレ
ジスタに格納されているデータが等しく、かつ前記第2
のレジスタに格納されているデータの最下位桁がエンド
コードであることがわかるため、本来のデータ幅、すな
わち複数バイト単位で文字列の比較と終わり検出を同時
にできる。
【0042】
【実施例】以下、本発明の実施例について詳細に述べ
る。
る。
【0043】(実施例1)図1は、データ幅が24ビッ
トの演算器で8ビット文字の文字列処理するブロック図
である。以下、図1をもとに実施例1について説明す
る。
トの演算器で8ビット文字の文字列処理するブロック図
である。以下、図1をもとに実施例1について説明す
る。
【0044】レジスタファイル101は24ビット幅の
レジスタが32本集まったものである。これに第1レジ
スタ選択手段102aと第2レジスタ選択手段102b
と第3レジスタ選択手段102cを接続する。第1レジ
スタ選択手段102aと第2レジスタ選択手段102b
の出力を比較器103aの入力に接続する。第2レジス
タ選択手段102bと第3レジスタ選択手段102cを
比較器103bと算術論理演算ユニット104の入力に
接続する。
レジスタが32本集まったものである。これに第1レジ
スタ選択手段102aと第2レジスタ選択手段102b
と第3レジスタ選択手段102cを接続する。第1レジ
スタ選択手段102aと第2レジスタ選択手段102b
の出力を比較器103aの入力に接続する。第2レジス
タ選択手段102bと第3レジスタ選択手段102cを
比較器103bと算術論理演算ユニット104の入力に
接続する。
【0045】比較器103a、103bは、2つの24
ビット入力信号をそれぞれ上位8ビット、中8ビット、
下位8ビットの3つに分けて、各部分ごとに比較した結
果を3ビットの出力とする。比較器103aの出力を文
字列終了検出器105と位置番号発生器106の入力に
接続する。比較器103a,103bの出力を文字列一
致終了検出器107に接続する。文字列終了検出器10
5の出力をEフラグ108aの入力とし、算術論理演算
ユニット104の出力をZフラグ108bの入力とし、
文字列一致終了検出器107をFフラグ108cの入力
とする。文字列終了検出器105と位置番号発生器10
6と文字列一致終了検出器107は図1のような論理回
路で実現する。
ビット入力信号をそれぞれ上位8ビット、中8ビット、
下位8ビットの3つに分けて、各部分ごとに比較した結
果を3ビットの出力とする。比較器103aの出力を文
字列終了検出器105と位置番号発生器106の入力に
接続する。比較器103a,103bの出力を文字列一
致終了検出器107に接続する。文字列終了検出器10
5の出力をEフラグ108aの入力とし、算術論理演算
ユニット104の出力をZフラグ108bの入力とし、
文字列一致終了検出器107をFフラグ108cの入力
とする。文字列終了検出器105と位置番号発生器10
6と文字列一致終了検出器107は図1のような論理回
路で実現する。
【0046】次に動作について説明する。レジスタファ
イル101の中には、pレジスタ、qレジスタ、rレジ
スタがあるものとする。pレジスタには、文字列の終わ
りを示すエンドコードとして、例えば、アスキーコード
の0をレジスタが埋まるように3文字(24ビット)格
納する。まず文字列の転送について、0番地に文字列
「xyzv☆w」があり、これを10番地に転送する場
合を例に説明する。なお、☆はエンドコードであり、1
文字は8ビットで構成する。
イル101の中には、pレジスタ、qレジスタ、rレジ
スタがあるものとする。pレジスタには、文字列の終わ
りを示すエンドコードとして、例えば、アスキーコード
の0をレジスタが埋まるように3文字(24ビット)格
納する。まず文字列の転送について、0番地に文字列
「xyzv☆w」があり、これを10番地に転送する場
合を例に説明する。なお、☆はエンドコードであり、1
文字は8ビットで構成する。
【0047】(1)0番地から2番地の文字列xyzを
qレジスタに転送する。第1レジスタ選択手段102a
で選ばれたpレジスタと第2レジスタ選択手段102b
で選ばれたqレジスタが比較器103aで比較され、文
字列終了検出器105によってエンドコードがないこと
が検出されてEフラグ108aに記憶される。また、算
術論理演算ユニット104でqレジスタは0でないこと
が計算され、Zフラグ108bに記憶される。
qレジスタに転送する。第1レジスタ選択手段102a
で選ばれたpレジスタと第2レジスタ選択手段102b
で選ばれたqレジスタが比較器103aで比較され、文
字列終了検出器105によってエンドコードがないこと
が検出されてEフラグ108aに記憶される。また、算
術論理演算ユニット104でqレジスタは0でないこと
が計算され、Zフラグ108bに記憶される。
【0048】(2)qレジスタに格納されている文字列
xyzを10番地から12番地に転送する。
xyzを10番地から12番地に転送する。
【0049】(3)Eフラグ108aを見て、文字列の
終わりではないことがわかる。 (4)3番地から5番地の文字列v☆wをqレジスタに
転送する。第1レジスタ選択手段102aで選ばれたp
レジスタと第2レジスタ選択手段102bで選ばれたq
レジスタが比較器103aで比較され、文字列終了検出
器105によってエンドコードがあることが検出されて
Eフラグ108aに記憶される。また、算術論理演算ユ
ニット104でqレジスタは0でないことが計算され、
Zフラグ108bに記憶される。
終わりではないことがわかる。 (4)3番地から5番地の文字列v☆wをqレジスタに
転送する。第1レジスタ選択手段102aで選ばれたp
レジスタと第2レジスタ選択手段102bで選ばれたq
レジスタが比較器103aで比較され、文字列終了検出
器105によってエンドコードがあることが検出されて
Eフラグ108aに記憶される。また、算術論理演算ユ
ニット104でqレジスタは0でないことが計算され、
Zフラグ108bに記憶される。
【0050】(5)qレジスタに格納されている文字列
v☆wを13番地から15番地に転送する。
v☆wを13番地から15番地に転送する。
【0051】(6)Eフラグ108aを見て、文字列の
終わりであることがわかり文字列の転送が完了する。
終わりであることがわかり文字列の転送が完了する。
【0052】文字列一致終了検出器107は、第2レジ
スタ選択手段102bで選ばれた文字列データの先頭か
らエンドコードまでと第3レジスタ選択手段102cで
選ばれた文字列データの先頭からエンドコードまでが等
しいか、等しくないかを検出する。例えば比較する2つ
の文字列と文字列一致終了検出器107の出力は、次の
ような関係になる。
スタ選択手段102bで選ばれた文字列データの先頭か
らエンドコードまでと第3レジスタ選択手段102cで
選ばれた文字列データの先頭からエンドコードまでが等
しいか、等しくないかを検出する。例えば比較する2つ
の文字列と文字列一致終了検出器107の出力は、次の
ような関係になる。
【0053】xyzとstuのとき、出力は0。 xyzとxyzのとき、出力は0。
【0054】xy☆とxy☆のとき、出力は1。 ☆xvと☆stのとき、出力は1。
【0055】文字列の比較について、0番地にある文字
列「xyzw☆p」と10番地にある文字列「xyzw
☆s」を比較する場合を例に説明する。
列「xyzw☆p」と10番地にある文字列「xyzw
☆s」を比較する場合を例に説明する。
【0056】(1)0番地から2番地の文字列xyzを
qレジスタに転送する。第1レジスタ選択手段102a
で選ばれたpレジスタと第2レジスタ選択手段102b
で選ばれたqレジスタが比較器103aで比較され、文
字列終了検出器105によってエンドコードがないこと
が検出されてEフラグ108aに記憶される。また、算
術論理演算ユニット104でqレジスタは0でないこと
が計算され、Zフラグ108bに記憶される。
qレジスタに転送する。第1レジスタ選択手段102a
で選ばれたpレジスタと第2レジスタ選択手段102b
で選ばれたqレジスタが比較器103aで比較され、文
字列終了検出器105によってエンドコードがないこと
が検出されてEフラグ108aに記憶される。また、算
術論理演算ユニット104でqレジスタは0でないこと
が計算され、Zフラグ108bに記憶される。
【0057】(2)10番地から12番地の文字列xy
zをrレジスタに転送する。第1レジスタ選択手段10
2aで選ばれたpレジスタと第2レジスタ選択手段10
2bで選ばれたrレジスタが比較器103aで比較さ
れ、文字列終了検出器105によってエンドコードがな
いことが検出されてEフラグ108aに記憶される。ま
た、算術論理演算ユニット104でrレジスタは0でな
いことが計算され、Zフラグ108bに記憶される。
zをrレジスタに転送する。第1レジスタ選択手段10
2aで選ばれたpレジスタと第2レジスタ選択手段10
2bで選ばれたrレジスタが比較器103aで比較さ
れ、文字列終了検出器105によってエンドコードがな
いことが検出されてEフラグ108aに記憶される。ま
た、算術論理演算ユニット104でrレジスタは0でな
いことが計算され、Zフラグ108bに記憶される。
【0058】(3)qレジスタとrレジスタを比較す
る。第1レジスタ選択手段102aによて選ばれたpレ
ジスタと第2レジスタ選択手段102bで選ばれたqレ
ジスタが比較器103aで比較される。また、第2レジ
スタ選択手段102bで選ばれたqレジスタと第3レジ
スタ選択手段102cで選ばれたrレジスタが算術論理
演算ユニット104と比較器103bで比較される。算
術論理演算ユニット104によって、Zフラグ108b
にqレジスタとrレジスタが等しいことが記憶される。
文字列終了検出器105によって、Eフラグ108aに
qレジスタはエンドコードを含まないことが記憶され
る。文字列一致終了検出器107によって、Fフラグ1
08cにqレジスタとrレジスタの文字列は一致かつ終
わりではないことが記憶される。
る。第1レジスタ選択手段102aによて選ばれたpレ
ジスタと第2レジスタ選択手段102bで選ばれたqレ
ジスタが比較器103aで比較される。また、第2レジ
スタ選択手段102bで選ばれたqレジスタと第3レジ
スタ選択手段102cで選ばれたrレジスタが算術論理
演算ユニット104と比較器103bで比較される。算
術論理演算ユニット104によって、Zフラグ108b
にqレジスタとrレジスタが等しいことが記憶される。
文字列終了検出器105によって、Eフラグ108aに
qレジスタはエンドコードを含まないことが記憶され
る。文字列一致終了検出器107によって、Fフラグ1
08cにqレジスタとrレジスタの文字列は一致かつ終
わりではないことが記憶される。
【0059】(4)Fフラグ108cを見て、文字列は
一致かつ終わりではないことがわかる。
一致かつ終わりではないことがわかる。
【0060】(5)Zフラグ108bを見て、文字列が
等しかったことがわかる。 (6)3番地から5番地の文字列w☆pをqレジスタに
転送する。第1レジスタ選択手段102aで選ばれたp
レジスタと第2レジスタ選択手段102bで選ばれたq
レジスタが比較器103aで比較され、文字列終了検出
器105によってエンドコードがあることが検出されて
Eフラグ108aに記憶される。また、算術論理演算ユ
ニット104でqレジスタは0でないことが計算され、
Zフラグ108bに記憶される。
等しかったことがわかる。 (6)3番地から5番地の文字列w☆pをqレジスタに
転送する。第1レジスタ選択手段102aで選ばれたp
レジスタと第2レジスタ選択手段102bで選ばれたq
レジスタが比較器103aで比較され、文字列終了検出
器105によってエンドコードがあることが検出されて
Eフラグ108aに記憶される。また、算術論理演算ユ
ニット104でqレジスタは0でないことが計算され、
Zフラグ108bに記憶される。
【0061】(7)13番地から15番地の文字列w☆
sをrレジスタに転送する。第1レジスタ選択手段10
2aで選ばれたpレジスタと第2レジスタ選択手段10
2bで選ばれたrレジスタが比較器103aで比較さ
れ、文字列終了検出器105によってエンドコードがあ
ることが検出されてEフラグ108aに記憶される。ま
た、算術論理演算ユニット104でrレジスタは0でな
いことが計算され、Zフラグ108bに記憶される。
sをrレジスタに転送する。第1レジスタ選択手段10
2aで選ばれたpレジスタと第2レジスタ選択手段10
2bで選ばれたrレジスタが比較器103aで比較さ
れ、文字列終了検出器105によってエンドコードがあ
ることが検出されてEフラグ108aに記憶される。ま
た、算術論理演算ユニット104でrレジスタは0でな
いことが計算され、Zフラグ108bに記憶される。
【0062】(8)qレジスタとrレジスタを比較す
る。第1レジスタ選択手段102aによて選ばれたpレ
ジスタと第2レジスタ選択手段102bで選ばれたqレ
ジスタが比較器103aで比較される。また、第2レジ
スタ選択手段102bで選ばれたqレジスタと第3レジ
スタ選択手段102cで選ばれたrレジスタが算術論理
演算ユニット104と比較器103bで比較される。算
術論理演算ユニット104によって、Zフラグ108b
にqレジスタとrレジスタが等しくないことが記憶され
る。文字列終了検出器105によって、Eフラグ108
aにqレジスタはエンドコードを含むことが記憶され
る。文字列一致終了検出器107によって、Fフラグ1
08cにqレジスタとrレジスタの文字列は一致かつ終
わりであることが記憶される。
る。第1レジスタ選択手段102aによて選ばれたpレ
ジスタと第2レジスタ選択手段102bで選ばれたqレ
ジスタが比較器103aで比較される。また、第2レジ
スタ選択手段102bで選ばれたqレジスタと第3レジ
スタ選択手段102cで選ばれたrレジスタが算術論理
演算ユニット104と比較器103bで比較される。算
術論理演算ユニット104によって、Zフラグ108b
にqレジスタとrレジスタが等しくないことが記憶され
る。文字列終了検出器105によって、Eフラグ108
aにqレジスタはエンドコードを含むことが記憶され
る。文字列一致終了検出器107によって、Fフラグ1
08cにqレジスタとrレジスタの文字列は一致かつ終
わりであることが記憶される。
【0063】(9)Fフラグを見て、文字列は一致かつ
終わりであることがわかり、0番地から文字列と10番
地からの文字列は等しいことがわかる。
終わりであることがわかり、0番地から文字列と10番
地からの文字列は等しいことがわかる。
【0064】位置番号発生器106は、前記文字列終了
検出器105によって検出されるエンドコードの桁位置
を発生する。前記文字列比較の例では、位置番号発生器
106によって、2桁目にエンドコードのあることがわ
かる。これによって、文字列の文字数を数えることがで
きる。
検出器105によって検出されるエンドコードの桁位置
を発生する。前記文字列比較の例では、位置番号発生器
106によって、2桁目にエンドコードのあることがわ
かる。これによって、文字列の文字数を数えることがで
きる。
【0065】本実施例では3文字ずつ転送することによ
って、従来1文字ずつ転送していたのに比べて、最高3
倍の速さで転送する。また、文字列を比較するときは、
3文字ずつ比較するのと同時に終わり判定をすることに
より、従来1文字ずつ比較した後に終わり判定をしてい
たのに比べて、最高3倍以上の速さで比較する。
って、従来1文字ずつ転送していたのに比べて、最高3
倍の速さで転送する。また、文字列を比較するときは、
3文字ずつ比較するのと同時に終わり判定をすることに
より、従来1文字ずつ比較した後に終わり判定をしてい
たのに比べて、最高3倍以上の速さで比較する。
【0066】(実施例2)図3は、図1のエンドコード
データパス109の別方式のブロック図である。以下、
図1と図3をもとに、実施例2について説明する。
データパス109の別方式のブロック図である。以下、
図1と図3をもとに、実施例2について説明する。
【0067】レジスタファイル101は24ビット幅の
レジスタが32本集まったものである。これに第1レジ
スタ選択手段302と第2レジスタ選択手段102bと
第3レジスタ選択手段102cを接続する。第1レジス
タ選択手段302の入力はレジスタファイル101の各
レジスタの下位8ビットである。第1レジスタ選択手段
302の出力8ビットと第2レジスタ選択手段102b
の出力24ビットを比較器103aの入力に接続する。
第2レジスタ選択手段102bと第3レジスタ選択手段
102cを比較器103bと算術論理演算ユニット10
4の入力に接続する。比較器103aは、第2レジスタ
選択手段102bから入力した24ビット信号を上位8
ビット、中8ビット、下位8ビットに分け、それぞれの
8ビット信号と第1レジスタ選択手段302から入力し
た8ビット信号を比較し、その結果を3ビットの出力と
する。エンドコードパス109以外は実施例1と同じ構
成で、比較器103bは、2つの24ビット入力信号を
それぞれ上位8ビット、中8ビット、下位8ビットの3
つに分けて、各部分ごとに比較した結果を3ビットの出
力とする。比較器103aの出力を文字列終了検出器1
05と位置番号発生器106の入力に接続する。比較器
103a,103bの出力を文字列一致終了検出器10
7に接続する。文字列終了検出器105の出力をEフラ
グ108aの入力とし、算術論理演算ユニット104の
出力をZフラグ108bの入力とし、文字列一致終了検
出器107をFフラグ108cの入力とする。文字列終
了検出器105と位置番号発生器106と文字列一致終
了検出器107は図1のような論理回路で実現する。
レジスタが32本集まったものである。これに第1レジ
スタ選択手段302と第2レジスタ選択手段102bと
第3レジスタ選択手段102cを接続する。第1レジス
タ選択手段302の入力はレジスタファイル101の各
レジスタの下位8ビットである。第1レジスタ選択手段
302の出力8ビットと第2レジスタ選択手段102b
の出力24ビットを比較器103aの入力に接続する。
第2レジスタ選択手段102bと第3レジスタ選択手段
102cを比較器103bと算術論理演算ユニット10
4の入力に接続する。比較器103aは、第2レジスタ
選択手段102bから入力した24ビット信号を上位8
ビット、中8ビット、下位8ビットに分け、それぞれの
8ビット信号と第1レジスタ選択手段302から入力し
た8ビット信号を比較し、その結果を3ビットの出力と
する。エンドコードパス109以外は実施例1と同じ構
成で、比較器103bは、2つの24ビット入力信号を
それぞれ上位8ビット、中8ビット、下位8ビットの3
つに分けて、各部分ごとに比較した結果を3ビットの出
力とする。比較器103aの出力を文字列終了検出器1
05と位置番号発生器106の入力に接続する。比較器
103a,103bの出力を文字列一致終了検出器10
7に接続する。文字列終了検出器105の出力をEフラ
グ108aの入力とし、算術論理演算ユニット104の
出力をZフラグ108bの入力とし、文字列一致終了検
出器107をFフラグ108cの入力とする。文字列終
了検出器105と位置番号発生器106と文字列一致終
了検出器107は図1のような論理回路で実現する。
【0068】次に動作について説明する。レジスタファ
イル101の中には、pレジスタ、qレジスタ、rレジ
スタがあるものとする。実施例1では、pレジスタに
は、文字列の終わりを示すエンドコードとして、例え
ば、アスキーコードの0をレジスタが埋まるように3文
字(24ビット)格納したが、実施例2では、pレジス
タの下位8ビットにエンドコードを入れればよい。すな
わち、pレジスタの上位16ビットは何が格納されてい
てもよい。比較器303の出力は、実施例1の比較器1
03aの出力と動作上の違いはなく、全体の動作として
は実施例1と同じである。
イル101の中には、pレジスタ、qレジスタ、rレジ
スタがあるものとする。実施例1では、pレジスタに
は、文字列の終わりを示すエンドコードとして、例え
ば、アスキーコードの0をレジスタが埋まるように3文
字(24ビット)格納したが、実施例2では、pレジス
タの下位8ビットにエンドコードを入れればよい。すな
わち、pレジスタの上位16ビットは何が格納されてい
てもよい。比較器303の出力は、実施例1の比較器1
03aの出力と動作上の違いはなく、全体の動作として
は実施例1と同じである。
【0069】実施例1の第1レジスタ選択手段102a
と第2レジスタ選択手段102bと第3レジスタ選択手
段103cは同じ構成の回路で、比較器103aと比較
器103bも同じ構成の回路であったが、本実施例で
は、新たに第1レジスタ選択手段302を用意しなけれ
ばならない。しかし、実施例1のエンドコードデータパ
ス109に比べて、本実施例のエンドコードパス(図3
の109)は回路面積を小さくできるうえに、実施例1
と同じ効果が得られる。
と第2レジスタ選択手段102bと第3レジスタ選択手
段103cは同じ構成の回路で、比較器103aと比較
器103bも同じ構成の回路であったが、本実施例で
は、新たに第1レジスタ選択手段302を用意しなけれ
ばならない。しかし、実施例1のエンドコードデータパ
ス109に比べて、本実施例のエンドコードパス(図3
の109)は回路面積を小さくできるうえに、実施例1
と同じ効果が得られる。
【0070】(実施例3)図4は、データ幅が24ビッ
トの演算器で8ビット文字の文字列処理するブロック図
である。以下、図4をもとに実施例3について説明す
る。
トの演算器で8ビット文字の文字列処理するブロック図
である。以下、図4をもとに実施例3について説明す
る。
【0071】レジスタファイル401は24ビット幅の
レジスタが32本集まったものである。これに第1レジ
スタ選択手段402aと第2レジスタ選択手段402b
と第3レジスタ選択手段402cを接続する。第1レジ
スタ選択手段402aは、各レジスタの下位8ビットに
対して選択する回路である。第1レジスタ選択手段40
2aの出力8ビットと、第2レジスタ選択手段402b
の出力の下位8ビットを比較器403の入力に接続す
る。第2レジスタ選択手段402bと第3レジスタ選択
手段402cを算術論理演算ユニット404の入力に接
続する。比較器403と算術論理演算ユニット404の
出力を文字列一致終了検出器407に接続する。比較器
403の出力をEフラグ408aの入力とし、算術論理
演算ユニット404の出力をZフラグ408bの入力と
し、文字列一致終了検出器407をFフラグ408cの
入力とする。文字列一致終了検出器407は図4のよう
な論理積回路で実現する。
レジスタが32本集まったものである。これに第1レジ
スタ選択手段402aと第2レジスタ選択手段402b
と第3レジスタ選択手段402cを接続する。第1レジ
スタ選択手段402aは、各レジスタの下位8ビットに
対して選択する回路である。第1レジスタ選択手段40
2aの出力8ビットと、第2レジスタ選択手段402b
の出力の下位8ビットを比較器403の入力に接続す
る。第2レジスタ選択手段402bと第3レジスタ選択
手段402cを算術論理演算ユニット404の入力に接
続する。比較器403と算術論理演算ユニット404の
出力を文字列一致終了検出器407に接続する。比較器
403の出力をEフラグ408aの入力とし、算術論理
演算ユニット404の出力をZフラグ408bの入力と
し、文字列一致終了検出器407をFフラグ408cの
入力とする。文字列一致終了検出器407は図4のよう
な論理積回路で実現する。
【0072】次に動作について説明する。レジスタファ
イル401の中には、pレジスタ、qレジスタ、rレジ
スタがあるものとする。pレジスタには、文字列の終わ
りを示すエンドコードとして、例えば、アスキーコード
の0をレジスタの下位8ビットに格納する。文字列は、
3の倍数の文字で構成し、余る場合は残りをエンドコー
ドで埋める。例えば、文字列xyzvwはメモリ上に
「xyzvw☆」と格納され、文字列xyzuvwはメ
モリ上に「xyzuvw☆☆☆」と格納する。まず文字
列の転送について、0番地に文字列「xyzv☆☆」が
あり、これを10番地に転送する場合を例に説明する。
なお、☆はエンドコードであり、1文字は8ビットで構
成する。
イル401の中には、pレジスタ、qレジスタ、rレジ
スタがあるものとする。pレジスタには、文字列の終わ
りを示すエンドコードとして、例えば、アスキーコード
の0をレジスタの下位8ビットに格納する。文字列は、
3の倍数の文字で構成し、余る場合は残りをエンドコー
ドで埋める。例えば、文字列xyzvwはメモリ上に
「xyzvw☆」と格納され、文字列xyzuvwはメ
モリ上に「xyzuvw☆☆☆」と格納する。まず文字
列の転送について、0番地に文字列「xyzv☆☆」が
あり、これを10番地に転送する場合を例に説明する。
なお、☆はエンドコードであり、1文字は8ビットで構
成する。
【0073】(1)0番地から2番地の文字列xyzを
qレジスタに転送する。第1レジスタ選択手段402a
で選ばれたpレジスタの下位8ビットと第2レジスタ選
択手段402bで選ばれたqレジスタの下位8ビットが
比較器403で比較され、qレジスタの下位8ビットが
エンドコードでないことが検出されてEフラグ408a
に記憶される。また、算術論理演算ユニット404でq
レジスタは0でないことが計算され、Zフラグ408b
に記憶される。
qレジスタに転送する。第1レジスタ選択手段402a
で選ばれたpレジスタの下位8ビットと第2レジスタ選
択手段402bで選ばれたqレジスタの下位8ビットが
比較器403で比較され、qレジスタの下位8ビットが
エンドコードでないことが検出されてEフラグ408a
に記憶される。また、算術論理演算ユニット404でq
レジスタは0でないことが計算され、Zフラグ408b
に記憶される。
【0074】(2)qレジスタに格納されている文字列
xyzを10番地から12番地に転送する。
xyzを10番地から12番地に転送する。
【0075】(3)Eフラグ408aを見て、文字列の
終わりではないことがわかる。 (4)3番地から5番地の文字列v☆☆をqレジスタに
転送する。第1レジスタ選択手段402aで選ばれたp
レジスタの下位8ビットと第2レジスタ選択手段402
bで選ばれたqレジスタの下位8ビットが比較器403
で比較され、qレジスタの下位8ビットがエンドコード
であることが検出されてEフラグ408aに記憶され
る。また、算術論理演算ユニット104でqレジスタは
0でないことが計算され、Zフラグ408bに記憶され
る。
終わりではないことがわかる。 (4)3番地から5番地の文字列v☆☆をqレジスタに
転送する。第1レジスタ選択手段402aで選ばれたp
レジスタの下位8ビットと第2レジスタ選択手段402
bで選ばれたqレジスタの下位8ビットが比較器403
で比較され、qレジスタの下位8ビットがエンドコード
であることが検出されてEフラグ408aに記憶され
る。また、算術論理演算ユニット104でqレジスタは
0でないことが計算され、Zフラグ408bに記憶され
る。
【0076】(5)qレジスタに格納されている文字列
v☆☆を13番地から15番地に転送する。
v☆☆を13番地から15番地に転送する。
【0077】(6)Eフラグ408aを見て、文字列の
終わりであることがわかり文字列の転送が完了する。
終わりであることがわかり文字列の転送が完了する。
【0078】文字列一致終了検出器407は、第2レジ
スタ選択手段402bで選ばれた文字列データが文字列
の終わり、すなわち下位8ビットがエンドコードで、か
つ第3レジスタ選択手段402cで選ばれた文字列デー
タと等しいことを検出する。例えば比較する2つの文字
列と文字列一致終了検出器407の出力は、次のような
関係になる。
スタ選択手段402bで選ばれた文字列データが文字列
の終わり、すなわち下位8ビットがエンドコードで、か
つ第3レジスタ選択手段402cで選ばれた文字列デー
タと等しいことを検出する。例えば比較する2つの文字
列と文字列一致終了検出器407の出力は、次のような
関係になる。
【0079】xyzとstuのとき、出力は0。 xyzとxyzのとき、出力は0。
【0080】xy☆とxy☆のとき、出力は1。 x☆☆とx☆☆のとき、出力は1。
【0081】文字列の比較について、0番地にある文字
列「xyzw☆☆」と10番地にある文字列「xyzw
☆☆」を比較する場合を例に説明する。
列「xyzw☆☆」と10番地にある文字列「xyzw
☆☆」を比較する場合を例に説明する。
【0082】(1)0番地から2番地の文字列xyzを
qレジスタに転送する。第1レジスタ選択手段402a
で選ばれたpレジスタの下位8ビットと第2レジスタ選
択手段402bで選ばれたqレジスタの下位8ビットが
比較器403で比較され、qレジスタの下位8ビットが
エンドコードでないことが検出されてEフラグ408a
に記憶される。また、算術論理演算ユニット404でq
レジスタは0でないことが計算され、Zフラグ408b
に記憶される。
qレジスタに転送する。第1レジスタ選択手段402a
で選ばれたpレジスタの下位8ビットと第2レジスタ選
択手段402bで選ばれたqレジスタの下位8ビットが
比較器403で比較され、qレジスタの下位8ビットが
エンドコードでないことが検出されてEフラグ408a
に記憶される。また、算術論理演算ユニット404でq
レジスタは0でないことが計算され、Zフラグ408b
に記憶される。
【0083】(2)10番地から12番地の文字列xy
zをrレジスタに転送する。第1レジスタ選択手段40
2aで選ばれたpレジスタの下位8ビットと第2レジス
タ選択手段402bで選ばれたrレジスタの下位8ビッ
トが比較器403で比較され、rレジスタの下位8ビッ
トがエンドコードでないことが検出されてEフラグ40
8aに記憶される。また、算術論理演算ユニット404
でrレジスタは0でないことが計算され、Zフラグ40
8bに記憶される。
zをrレジスタに転送する。第1レジスタ選択手段40
2aで選ばれたpレジスタの下位8ビットと第2レジス
タ選択手段402bで選ばれたrレジスタの下位8ビッ
トが比較器403で比較され、rレジスタの下位8ビッ
トがエンドコードでないことが検出されてEフラグ40
8aに記憶される。また、算術論理演算ユニット404
でrレジスタは0でないことが計算され、Zフラグ40
8bに記憶される。
【0084】(3)qレジスタとrレジスタを比較す
る。第1レジスタ選択手段402aによて選ばれたpレ
ジスタの下位8ビットと第2レジスタ選択手段402b
で選ばれたqレジスタの下位8ビットが比較器403で
比較される。また、第2レジスタ選択手段102bで選
ばれたqレジスタと第3レジスタ選択手段102cで選
ばれたrレジスタが算術論理演算ユニット404で比較
される。算術論理演算ユニットによって、Zフラグ40
8bにqレジスタとrレジスタが等しいことが記憶され
る。比較器403によってEフラグ408aにqレジス
タの下位8ビットはエンドコードではないことが記憶さ
れる。文字列一致終了検出器407によって、Fフラグ
408cにqレジスタとrレジスタの文字列は一致かつ
終わりではないことが記憶される。
る。第1レジスタ選択手段402aによて選ばれたpレ
ジスタの下位8ビットと第2レジスタ選択手段402b
で選ばれたqレジスタの下位8ビットが比較器403で
比較される。また、第2レジスタ選択手段102bで選
ばれたqレジスタと第3レジスタ選択手段102cで選
ばれたrレジスタが算術論理演算ユニット404で比較
される。算術論理演算ユニットによって、Zフラグ40
8bにqレジスタとrレジスタが等しいことが記憶され
る。比較器403によってEフラグ408aにqレジス
タの下位8ビットはエンドコードではないことが記憶さ
れる。文字列一致終了検出器407によって、Fフラグ
408cにqレジスタとrレジスタの文字列は一致かつ
終わりではないことが記憶される。
【0085】(4)Fフラグ408cを見て、文字列は
一致かつ終わりではないことがわかる。
一致かつ終わりではないことがわかる。
【0086】(5)Zフラグ408bを見て、文字列が
等しかったことがわかる。 (6)3番地から5番地の文字列w☆☆をqレジスタに
転送する。第1レジスタ選択手段402aで選ばれたp
レジスタの下位8ビットと第2レジスタ選択手段402
bで選ばれたqレジスタの下位8ビットが比較器403
で比較され、qレジスタの下位8ビットがエンドコード
であることが検出されてEフラグ408aに記憶され
る。また、算術論理演算ユニット404でqレジスタは
0でないことが計算され、Zフラグ408bに記憶され
る。
等しかったことがわかる。 (6)3番地から5番地の文字列w☆☆をqレジスタに
転送する。第1レジスタ選択手段402aで選ばれたp
レジスタの下位8ビットと第2レジスタ選択手段402
bで選ばれたqレジスタの下位8ビットが比較器403
で比較され、qレジスタの下位8ビットがエンドコード
であることが検出されてEフラグ408aに記憶され
る。また、算術論理演算ユニット404でqレジスタは
0でないことが計算され、Zフラグ408bに記憶され
る。
【0087】(7)13番地から15番地の文字列w☆
☆をrレジスタに転送する。第1レジスタ選択手段40
2aで選ばれたpレジスタの下位8ビットと第2レジス
タ選択手段402bで選ばれたrレジスタの下位8ビッ
トが比較器403で比較され、rレジスタの下位8ビッ
トがエンドコードであることが検出されてEフラグ40
8aに記憶される。また、算術論理演算ユニット404
でrレジスタは0でないことが計算され、Zフラグ40
8bに記憶される。
☆をrレジスタに転送する。第1レジスタ選択手段40
2aで選ばれたpレジスタの下位8ビットと第2レジス
タ選択手段402bで選ばれたrレジスタの下位8ビッ
トが比較器403で比較され、rレジスタの下位8ビッ
トがエンドコードであることが検出されてEフラグ40
8aに記憶される。また、算術論理演算ユニット404
でrレジスタは0でないことが計算され、Zフラグ40
8bに記憶される。
【0088】(8)qレジスタとrレジスタを比較す
る。第1レジスタ選択手段402aによて選ばれたpレ
ジスタの下位8ビットと第2レジスタ選択手段402b
で選ばれたqレジスタの下位8ビットが比較器403で
比較される。また、第2レジスタ選択手段402bで選
ばれたqレジスタと第3レジスタ選択手段402cで選
ばれたrレジスタが算術論理演算ユニット404で比較
される。算術論理演算ユニット404によって、Zフラ
グ408bにqレジスタとrレジスタが等しいことが記
憶される。比較器403によって、Eフラグ408aに
qレジスタの下位8ビットはエンドコードであることが
記憶される。文字列一致終了検出器407によって、F
フラグ408cにqレジスタとrレジスタの文字列は一
致かつ終わりであることが記憶される。
る。第1レジスタ選択手段402aによて選ばれたpレ
ジスタの下位8ビットと第2レジスタ選択手段402b
で選ばれたqレジスタの下位8ビットが比較器403で
比較される。また、第2レジスタ選択手段402bで選
ばれたqレジスタと第3レジスタ選択手段402cで選
ばれたrレジスタが算術論理演算ユニット404で比較
される。算術論理演算ユニット404によって、Zフラ
グ408bにqレジスタとrレジスタが等しいことが記
憶される。比較器403によって、Eフラグ408aに
qレジスタの下位8ビットはエンドコードであることが
記憶される。文字列一致終了検出器407によって、F
フラグ408cにqレジスタとrレジスタの文字列は一
致かつ終わりであることが記憶される。
【0089】(9)Fフラグ408cを見て、文字列は
一致かつ終わりであることがわかり、0番地から文字列
と10番地からの文字列は等しいことがわかる。
一致かつ終わりであることがわかり、0番地から文字列
と10番地からの文字列は等しいことがわかる。
【0090】本実施例では実施例2よりも、回路規模が
小さく、3の倍数の文字数で構成された文字列の比較や
転送のときの終わり検出に関しては実施例2と同様の効
果がある。
小さく、3の倍数の文字数で構成された文字列の比較や
転送のときの終わり検出に関しては実施例2と同様の効
果がある。
【0091】なお、実施例1から3では、データ幅24
ビット、文字幅8ビットで説明したが、その他のビット
数、例えばデータ幅32ビット、文字幅16ビットや、
データ幅64ビット、文字幅8ビットと16ビットな
ど、データ幅が文字幅の整数倍のアーキテクチャの演算
器に応用できる。
ビット、文字幅8ビットで説明したが、その他のビット
数、例えばデータ幅32ビット、文字幅16ビットや、
データ幅64ビット、文字幅8ビットと16ビットな
ど、データ幅が文字幅の整数倍のアーキテクチャの演算
器に応用できる。
【0092】
【発明の効果】以上のように本発明は請求項1記載の構
成によって、第1の比較器を用いて第1レジスタ選択手
段で選ばれたデータと第2レジスタ選択手段で選ばれた
データを同じ桁にある文字どうしごとに比較し、文字列
終了検出器が第1の比較器の出力を入力として、第2の
レジスタに格納されているデータ中にエンドコードが含
まれていることを示す信号を出力するため、本来のデー
タ幅、すなわち複数バイト単位で文字列の転送のときの
終わり検出ができる。
成によって、第1の比較器を用いて第1レジスタ選択手
段で選ばれたデータと第2レジスタ選択手段で選ばれた
データを同じ桁にある文字どうしごとに比較し、文字列
終了検出器が第1の比較器の出力を入力として、第2の
レジスタに格納されているデータ中にエンドコードが含
まれていることを示す信号を出力するため、本来のデー
タ幅、すなわち複数バイト単位で文字列の転送のときの
終わり検出ができる。
【0093】また位置番号発生器を付加したため、第1
の比較器で比較したデータ中にエンドコードがあったと
き、一番先頭にあるエンドコードの桁位置を知ることが
でき、この桁位置から複数バイト単位では割りきれない
文字列の半端となった文字数を数えることができる。
の比較器で比較したデータ中にエンドコードがあったと
き、一番先頭にあるエンドコードの桁位置を知ることが
でき、この桁位置から複数バイト単位では割りきれない
文字列の半端となった文字数を数えることができる。
【0094】さらに文字列一致終了検出器を付加したた
め、第1の比較器の出力と第2の比較器の出力を入力と
し、第2のレジスタに格納されているデータで、エンド
コードとエンドコードよりも先頭方向にあるすべての文
字と第3のレジスタに格納されているデータで、エンド
コードとエンドコードよりも先頭方向にあるすべての文
字が等しいことを示す信号を出力することができ、本来
のデータ幅、すなわち複数バイト単位で文字列の比較と
終わり検出を同時にできる。
め、第1の比較器の出力と第2の比較器の出力を入力と
し、第2のレジスタに格納されているデータで、エンド
コードとエンドコードよりも先頭方向にあるすべての文
字と第3のレジスタに格納されているデータで、エンド
コードとエンドコードよりも先頭方向にあるすべての文
字が等しいことを示す信号を出力することができ、本来
のデータ幅、すなわち複数バイト単位で文字列の比較と
終わり検出を同時にできる。
【0095】本発明は請求項4記載の構成によって、比
較器を用いて第1レジスタ選択手段で選ばれたエンドコ
ードと第2レジスタ選択手段で選ばれたデータの最下位
桁を比較し、この比較結果、第2のレジスタに格納され
ているデータの最下位桁がエンドコードであることがわ
かる。
較器を用いて第1レジスタ選択手段で選ばれたエンドコ
ードと第2レジスタ選択手段で選ばれたデータの最下位
桁を比較し、この比較結果、第2のレジスタに格納され
ているデータの最下位桁がエンドコードであることがわ
かる。
【0096】また文字列一致終了検出器を付加したた
め、第2のレジスタに格納されているデータと第3のレ
ジスタに格納されているデータが等しく、かつ前記第2
のレジスタに格納されているデータの最下位桁がエンド
コードであることがわかるため、本来のデータ幅、すな
わち複数バイト単位で文字列の比較と終わり検出を同時
にできる。
め、第2のレジスタに格納されているデータと第3のレ
ジスタに格納されているデータが等しく、かつ前記第2
のレジスタに格納されているデータの最下位桁がエンド
コードであることがわかるため、本来のデータ幅、すな
わち複数バイト単位で文字列の比較と終わり検出を同時
にできる。
【図1】本発明の実施例1の回路のブロック図
【図2】従来例の回路のブロック図
【図3】本発明の実施例2のエンドコードデータパスの
ブロック図
ブロック図
【図4】本発明の実施例3の回路のブロック図
101 レジスタファイル 102a 第1レジスタ選択手段 102b 第2レジスタ選択手段 102c 第3レジスタ選択手段 103a、103b 比較器 104 算術論理演算ユニット 105 文字列終了検出器 106 位置番号発生器 107 文字列一致狩猟検出器 108a Eフラグ 108b Zフラグ 108c Fフラグ
Claims (5)
- 【請求項1】レジスタファイルと、前記レジスタファイ
ルから文字列データの終わりを示すビットパターンであ
るエンドコードで構成されている文字列を格納している
第1のレジスタを選択する第1レジスタ選択手段と、前
記レジスタファイルから第2のレジスタを選択する第2
レジスタ選択手段と、前記レジスタファイルから第3の
レジスタを選択する第3レジスタ選択手段と、前記第1
レジスタ選択手段で選ばれたデータと前記第2レジスタ
選択手段で選ばれたデータを同じ桁にある文字どうしご
とに比較する第1の比較器と、前記第2レジスタで選ば
れたデータと前記第3レジスタで選ばれたデータの算術
論理演算を行なう算術論理演算ユニットと、前記算術論
理演算ユニットの演算結果を記憶するZフラグと、前記
第1の比較器の出力を入力として、前記第2のレジスタ
に格納されているデータ中にエンドコードが含まれてい
ることを示す信号を出力とする文字列終了検出器と、前
記文字列終了検出器の出力を記憶するEフラグとを備え
た中央演算装置。 - 【請求項2】請求項1記載において、第1の比較器の出
力を入力とし、前記第1の比較器で比較したデータ中に
エンドコードがあったとき、一番先頭にあるエンドコー
ドの桁位置を出力する位置番号発生器を付加した中央演
算装置。 - 【請求項3】請求項1叉は2記載において、第2レジス
タ選択手段で選ばれたデータと第3レジスタ選択手段で
選ばれたデータを同じ桁にある文字どうしごとに比較す
る第2の比較器と、第1の比較器の出力と前記第2の比
較器の出力を入力とし、前記第2のレジスタに格納され
ているデータで、エンドコードとエンドコードよりも先
頭方向にあるすべての文字と第3のレジスタに格納され
ているデータで、エンドコードとエンドコードよりも先
頭方向にあるすべての文字が等しいことを示す信号を出
力とする文字列一致終了検出器と、前記文字列一致終了
検出器の出力を記憶するFフラグを付加した中央演算装
置。 - 【請求項4】レジスタファイルと、前記レジスタファイ
ルから文字列データの終わりを示すビットパターンであ
るエンドコードを最下位桁に格納している第1のレジス
タを選択する第1レジスタ選択手段と、前記レジスタフ
ァイルから第2のレジスタを選択する第2レジスタ選択
手段と、前記レジスタファイルから第3のレジスタを選
択する第3レジスタ選択手段と、前記第1レジスタ選択
手段で選ばれたデータと前記第2レジスタ選択手段で選
ばれたデータの最下位桁を比較する比較器と、前記第2
レジスタ選択手段で選ばれたデータと前記第3レジスタ
選択手段で選ばれたデータの算術論理演算を行なう算術
論理演算ユニットと、前記算術論理演算ユニットの演算
結果を記憶するZフラグと、前記比較器の出力を入力と
して、前記第2のレジスタに格納されているデータの最
下位桁がエンドコードであること記憶するEフラグとを
備えた中央演算装置。 - 【請求項5】請求項4記載において、比較器の出力と算
術論理演算ユニットの出力を入力とし、第2のレジスタ
に格納されているデータと第3のレジスタに格納されて
いるデータが等しく、かつ前記第2のレジスタに格納さ
れているデータの最下位桁がエンドコードであることを
示す信号を出力とする文字列一致終了検出器と、前記文
字列一致終了検出器の出力を記憶するFフラグを付加し
た中央演算装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4165841A JPH064582A (ja) | 1992-06-24 | 1992-06-24 | 中央演算装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4165841A JPH064582A (ja) | 1992-06-24 | 1992-06-24 | 中央演算装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH064582A true JPH064582A (ja) | 1994-01-14 |
Family
ID=15820019
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP4165841A Pending JPH064582A (ja) | 1992-06-24 | 1992-06-24 | 中央演算装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH064582A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5668700A (en) * | 1994-08-04 | 1997-09-16 | Sharp Kabushiki Kaisha | Panel assembly structure capable of connecting wiring line with electrode at fine pitch |
JPH10198691A (ja) * | 1997-01-10 | 1998-07-31 | Nec Corp | 類似文書検索方法および類似文書検索装置 |
JP2020154981A (ja) * | 2019-03-22 | 2020-09-24 | 富士フイルム医療ソリューションズ株式会社 | Dicom規格uid比較装置、コンピュータプログラム |
US11442940B2 (en) * | 2020-03-03 | 2022-09-13 | Micron Technology, Inc. | Apparatuses and methods for on-memory pattern matching |
-
1992
- 1992-06-24 JP JP4165841A patent/JPH064582A/ja active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5668700A (en) * | 1994-08-04 | 1997-09-16 | Sharp Kabushiki Kaisha | Panel assembly structure capable of connecting wiring line with electrode at fine pitch |
US5822191A (en) * | 1994-08-04 | 1998-10-13 | Sharp Kabushiki Kaisha | Integrated circuit mounting tape |
JPH10198691A (ja) * | 1997-01-10 | 1998-07-31 | Nec Corp | 類似文書検索方法および類似文書検索装置 |
JP2020154981A (ja) * | 2019-03-22 | 2020-09-24 | 富士フイルム医療ソリューションズ株式会社 | Dicom規格uid比較装置、コンピュータプログラム |
US11442940B2 (en) * | 2020-03-03 | 2022-09-13 | Micron Technology, Inc. | Apparatuses and methods for on-memory pattern matching |
US11829366B2 (en) | 2020-03-03 | 2023-11-28 | Micron Technology, Inc. | Apparatuses and methods for on-memory pattern matching |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH08255176A (ja) | データベースのテーブルを比較する方法及びシステム | |
JPH064582A (ja) | 中央演算装置 | |
JPS6194136A (ja) | デイジタル信号処理装置 | |
DE69524515D1 (de) | Eine Vorrichtung und ein Verfahren zur Bestimmung einer Zahl von Ziffern, die einer bestimmten Ziffer vorhergehen | |
JPS632370B2 (ja) | ||
JPH0833810B2 (ja) | ベクトルデータ検索装置 | |
JPH03174685A (ja) | パターン認識装置 | |
US5894427A (en) | Technique for concurrent detection of bit patterns | |
JPH01311623A (ja) | 加速演算回路 | |
US6903750B2 (en) | Controlling an output device | |
JPH0664534B2 (ja) | 単一化候補項の選択装置 | |
JPH0774988B2 (ja) | ート処理装置 | |
JPH0644264B2 (ja) | 単語記憶方式 | |
JPH11102284A (ja) | 選別方法および選別回路 | |
JPH0432924A (ja) | 最大値検出装置と最小値検出装置 | |
JP2690175B2 (ja) | 不等長符号復号回路 | |
JP3235402B2 (ja) | ディジタル保護継電器 | |
JPS583032A (ja) | 木構造アクセス処理方式 | |
JPH0650478B2 (ja) | デ−タ圧縮記憶方式 | |
JPH06202849A (ja) | 情報処理装置 | |
JPH0315775B2 (ja) | ||
JP2000148553A (ja) | 情報処理装置 | |
JPH10106295A (ja) | シュムデータ比較方法及び装置 | |
JPH04150235A (ja) | パターン同期検出方法 | |
JPH11161471A (ja) | データ一致検出装置 |