JPH09503327A - 可変長の文字ストリング用のプロセッサ - Google Patents

可変長の文字ストリング用のプロセッサ

Info

Publication number
JPH09503327A
JPH09503327A JP7511219A JP51121995A JPH09503327A JP H09503327 A JPH09503327 A JP H09503327A JP 7511219 A JP7511219 A JP 7511219A JP 51121995 A JP51121995 A JP 51121995A JP H09503327 A JPH09503327 A JP H09503327A
Authority
JP
Japan
Prior art keywords
substrings
unit
substring
output
byte
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.)
Granted
Application number
JP7511219A
Other languages
English (en)
Other versions
JP3183669B2 (ja
Inventor
ハーラー、ヴィルヘルム、エーニスト
ゲツラフ、クラウス、ヨーグ
クリンスキイ、ハーバート
コスター、ラルフ
Original Assignee
インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン
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 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン filed Critical インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン
Publication of JPH09503327A publication Critical patent/JPH09503327A/ja
Application granted granted Critical
Publication of JP3183669B2 publication Critical patent/JP3183669B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】 可変長の文字ストリングA、B用のプロセッサは、両者の間の一致条件、不一致条件、比較差条件の高速検出に役に立つものである。その長さが文字ストリング終了マークによって区切られる文字ストリングは、データ経路幅に対応するバイト・カウントを備えた連続サブストリングに分割され、一致、不一致、バイト終了マークを検出するように処理される。それぞれのサブストリングは、オペランド・レジスタ(16、18)を介して演算論理ユニット(20)と、論理ユニット(22)と、比較器ユニット(24)とに並列に経路指定され、同時に処理される。演算ユニット(20)は一方のサブストリングからもう一方のサブストリングを減算し、論理ユニット(22)は両方のサブストリングを互いに比較し、比較器ユニット(24)は両方のサブストリングのバイトを事前にストリング終了マークに設定されたマーキング・レジスタ(26)の内容と比較する。これらの操作は1回のマシン・サイクル中に実行される。比較器ユニットからの出力信号は両方のサブストリングが等しいことを示すように機能し、論理ユニットからの出力信号は両方のサブストリングが等しくないことを示すように機能し、演算ユニットからの繰上り信号は、2つのサブストリングのどちらが大きい方でどちらが小さい方かを同時に示すように機能する。

Description

【発明の詳細な説明】 可変長の文字ストリング用のプロセッサ 本発明は、プログラム命令によって対単位でアドレス可能であり、それからデ ータ経路幅に対応するサブストリングが2つのオペランド・レジスタに転送され る文字ストリングを格納する複数の記憶ユニットからなるシステムを含み、処理 操作を実行する演算論理ユニットを含み、処理の結果から得られ、プログラムの 分岐を制御する信号を格納する条件コード回路を含み、記憶ユニット内の文字ス トリングの対のサブストリングを順次アドレス指定し、各種ユニットの動作とそ れらの間の転送を連続マシン・サイクルで制御する制御ユニットを含む、可変長 の文字ストリング用のプロセッサに関する。 データベースを照会するコンピュータ・アプリケーションや、テキスト処理と 高水準プログラミング言語のサポートの分野のアプリケーションでは、大量の文 字ストリングの処理が必要になる。一般的に言えば、文字ストリングとは、可変 長のバイト列から構成されるデータ要素である。文字ストリングの長さは、記憶 ユニットのサイズによってのみ限定され、1バイトから多数のバイトの範囲に及 ぶ可能性がある。これは、長さコード、あるいは文字ストリングに含まれ、その ス トリングの末尾を示す特殊文字によって判定することができる。通常、文字スト リング命令は、様々な長さの文字ストリングを処理しなければならない。頻繁に 行われる類の処理としては、2つの文字ストリングの比較、互いに一致するか互 いに異なる第1のバイト対の検出、文字ストリングAと文字ストリングB内の何 らかの文字ストリングの検出、文字ストリング内のサブストリングの探索、ある 文字ストリングを別の記憶位置への移動などがある。 文字ストリング用の複合命令には3つのオペランドがある。すなわち、第1の 文字ストリングAのアドレスと、第2の文字ストリングBのアドレスと、文字ス トリングAおよびBの末尾をマークする第3のオペランドとしてのストリング終 了バイトのアドレスであって、AとBは可変長である。このような命令を実行す るには、一連の操作が必要である。互いに一致しない1つのバイト対またはスト リング終了バイトを検出するまで、第1のオペランドを表す文字ストリングを左 から右にバイト単位で第2のオペランドを表す文字ストリングと比較する。両方 の文字ストリングのストリング終了バイトが同じビット位置で検出される場合、 両方の文字ストリングは等しい。2つの文字ストリングの一方だけでストリング 終了バイトが検出される場合、この文字ストリングの方が短いので、小さい方と 見なされる。これに対して、ストリング終了文字ではなく、不一致バイト対が検 出される場合は、2つのオペランドのうちのどちらが小さい方かを判定するため に、 両方のバイトを比較しなければならない。したがって、この命令の実行は、文字 ストリングA内のストリング終了バイトの探索、文字ストリングB内のストリン グ終了バイトの探索、不一致を検出するための両方の文字ストリングの比較、ど ちらの文字ストリングの方が小さいかを判定するために一方の文字ストリングか らもう一方の文字ストリングを減算することという各種フェーズを含む。このよ うな様々な操作を実行するには、マイクロプロセッサの制御および処理時間にお いて相当なオーバヘッドを必要とする。 文字ストリング命令の実行の高速化のためには、複数のバイトを並列に比較可 能な回路の方が優れていることは周知である(米国特許第4896133号)。 このような構成の場合、1回の比較操作によって文字ストリング内の特定の制御 文字を検出することが可能であり、その場合、この制御文字の複数コピーがオペ ランド・レジスタのすべてのバイト位置に格納され、そのストリングの8バイト と同時に比較される。一致が検出されると、マイクロプログラムの制御下で次の プログラム命令への分岐が行われる。代替ケースでは、追加の文字ストリングを 使用してこの比較が繰り返される。この比較操作は、複数の排他NOR回路から なるバンクによって、またはこの構成が使用されるプロセッサの演算論理ユニッ トによって実行することができる。ただし、この構成が適しているのは、上記の 操作フェーズの一部を並列実行する場合に限られる。 従来のデータ処理システムでは、中央処理装置内に存在する各種機構を使用す ることによってマイクロプログラムが実行する特殊文字ストリング命令を提供す ること(米国特許第4556951号)も最先端技術である。このような命令で は、処理すべき文字ストリングの長さは、その命令に含まれ、ストリングの到達 範囲内のバイト数を表す長さコードによって指定される。また、文字の比較は、 プロセッサの演算論理ユニットの動作によって実行される。このようなシステム の場合、文字ストリング、サブストリング、または個々の文字同士の一致または 不一致を示し、プログラムの後続部分の分岐を制御するために、出力の一部とし て生成される条件コードが使用される。ただし、この構成でも、冒頭に説明した 操作フェーズを実行するために不可欠な多数のマイクロプログラム・ステップの ために相当なオーバヘッドが必要になる。 本発明の関心事は、上記の短所を回避し、並列処理の原理をさらに利用する、 文字ストリング用の改良されたプロセッサを規定することである。上記の問題を 解決するための本発明の構成は、請求の範囲1によって示されている。請求の範 囲2ないし7は、有益な本発明の構成及び更に進歩した形態を示している。 下記の図面を利用して、本発明の好適な構成の例を以下に説明する。 第1図は、本発明に対応する文字ストリング・プロセッサのブロック図である 。 第2図は、第1図の構成の動作方法を説明するための文字ストリングの処理中 の一致条件と不一致条件を示す表である。 第3図は、第1図の構成で使用するための結果スコア論理回路のブロック図で ある。 第4図は、第1図のプロセッサの制御ユニットで使用するマイクロプログラム の流れ図である。 第1図のプロセッサは、ローカル・メモリ10と、演算ユニット20と、制御 ユニット40とを含む。これらのユニットは、従来の方法で構築されているので 、ここではこれ以上詳細に説明しない。記憶装置10は、容量が限定された高速 記憶装置で、プロセッサ・チップ上に搭載され、マルチプレクサ13により、従 来どおり個別の半導体チップを含む記憶ユニット12に接続されている。記憶ユ ニット12は多数の文字ストリングを含み、この文字ストリングは全体で1つの データベースなどを形成する可能性がある。それぞれの文字ストリングは複数の バイトから構成され、それぞれのバイトは1つの文字を表す。ただし、文字とバ イトとの間には、1バイトで2文字を表すなど、他の関係も選択可能である。1 つの文字ストリングに属す文字の数は可変であり、広い範囲内で自由に選択する ことができる。制限とは、記憶装置の容量を意味するだけにすぎない。1つの文 字ストリングの長さ は、そのストリングの最後のバイトによって表され、処理中にストリングの末尾 を示す、ストリング終了文字によって決まる。現行のアプリケーション・プログ ラムには、この処理を行う文字ストリング命令が含まれ、このような命令は、通 常、長さが異なるが互いに関連のある2つの文字ストリングをアドレス指定し、 その処理を制御する。典型的な形式の処理としては、等しいか等しくないかのテ スト、どちらの文字ストリングが大きい方かまたは小さい方かの判定、たとえば 、英字順などの事前定義済みの順序付け方式でどちらの文字ストリングがもう一 方の文字ストリングより先に来るかの判定などがある。これは、左から右に、不 一致バイトを伴う第1のバイト位置を確立するために、両方の文字ストリングを 対にしてその個々のバイトをテストすることによって行われる。文字ストリング 命令には3つのオペランドがある。すなわち、第1の文字ストリングAのアドレ スと、第2の文字ストリングBのアドレスと、通常は長さが異なる両方の文字ス トリングの末尾をマークするためにプログラマが選択する、第3のオペランドと してのストリング終了バイトのアドレスである。文字ストリング命令を含むアプ リケーション・プログラムは記憶装置12に格納される。文字ストリング命令を 実行するマイクロプログラムは制御記憶装置内にあり、この装置は図示しないが 、制御ユニット40の一部である。ローカル記憶装置10には、一度に文字スト リングの一部ずつ、徐々に記憶装置12からロードされる。 記憶装置10の出力は、バス14および15を使用してオペランド・レジスタ 16および18に接続され、それぞれのレジスタは4バイトのサブストリングを 受け入れるように設計されている。制御ユニット40の制御下でレジスタ16お よび18は、毎回、処理すべき2つの文字ストリングAおよびBの第1のサブス トリングから始まって、1マシン・サイクル中に同時にロードされる。AとBは 現行文字ストリング命令内のオペランド・アドレスによってアドレス指定される 。以下の説明では、これらのサブストリングもAおよびBと呼ぶが、サブストリ ングAはレジスタ16に格納され、サブストリングBはレジスタ18に格納され る。演算ユニット20、論理ユニット22、比較器ユニット24は、バス17お よび19を使用して、オペランド・レジスタ16および18の出力側で互いに並 列に接続される。これらのレジスタに格納されたサブストリングAおよびBは、 それぞれバス17および19を介して、上記のユニットに同時に経路指定され、 上記のユニットによって受け取られる。 比較器ユニット24は、もう1つのレジスタ26の出力に接続された第3の入 力を示し、このレジスタには、文字ストリング命令によって第3のオペランドと して定義さえるストリング終了マークが格納され、このマークは、予備操作でレ ジスタ16を介して記憶装置10から受け取る。これは、サブストリング・オペ ランドがユニット20、22、24に経路指定される前に行われる。比較器ユニ ット24は、並列複 数比較を実行する。これは、レジスタ26内のマークをサブストリングAの各バ イトおよびサブストリングBの各バイトと比較する。この比較操作は、図示され ていない排他OR回路を使用して行われる。比較器ユニット24には、それぞれ が4本の線を備えた2つの出力28および30がある。サブストリングAの4つ のバイトの1つがレジスタ26内のバイト終了マークと一致する場合、出力線2 8上には信号EA(0)、EA(1)、EA(2)、EA(3)がそれぞれ出力 される。それぞれの信号にはサブストリングA内のバイト位置が1つずつ割り当 てられ、ユニット24内のこの位置に供給されたバイトがレジスタ26内のスト リング終了バイトと一致することを示す。同様に、サブストリングBの4つのバ イトの1つがレジスタ26内のストリング終了マークと一致する場合、出力線3 0上には信号EB(0)、EB(1)、EB(2)、EB(3)がそれぞれ出力 される。この場合も、それぞれの信号は、サブストリングB内の割当て済みバイ ト位置に関する一致を示す。 論理ユニット22は、オペランドに対して、AND、OR、排他ORなど、様 々な論理演算を選択的に実行する。この場合、比較操作は、オペランドの入力バ イト内に一致が存在しないことを検出する際のみ、重要になる。比較は、オペラ ンドAの4つのバイト位置の内容と、オペランドBの対応する4つのバイト位置 の内容との間で行われる。また、この比較は並列実行される。不一致の検出を目 的としているので、比 較を行うために適切な論理演算は、両方のビットが等しくない場合に各オペラン ド・ビット対ごとに出力信号を1つずつ生成する排他ORである。オペランド・ バイトに関しては、これは、対象となるオペランド・バイト対の不一致を示すた めに1つのビット位置の出力信号で十分であることを意味する。論理ユニット2 2は、出力32上に4つの信号MC(0)、MC(1)、MC(2)、MC(3 )を生成し、それぞれが両方のオペランドAおよびBの1つのバイト位置に割り 当てられる。これらの信号のうち、1つまたは複数が発生した場合は、割り当て られた位置のオペランド・バイトが互いに等しくないことを示している。 演算ユニット20は、B−Aという減算を実行する。これは、サブストリング BにサブストリングAの2の補数を加算することによって行われる。これを行う ため、補数器36を介して演算ユニット20のAオペランド入力にレジスタ16 からサブストリングAが経路指定される。この間、Bオペランド入力に接続され た補数器38は使用禁止状態のままになっている。演算ユニット20の最上位バ イト位置には繰上り出力線34が用意されている。これは、ユニット20の出力 信号のうち、この場合に関心のある出力信号である。線34上の繰上り信号「1 」は、オペランドAがオペランドBより小さいことを示し、このような信号がな い場合は、オペランドAがオペランドBより大きいことを示す。演算ユニット2 0の動作のため、サブストリングAおよびBを演算オペラン ドであると見なす。以下の例は、これらの信号が生成されたときの演算ユニット 20の動作を示している。 上記の例の一番上の行は、文字ストリング(サブストリング)AおよびBのバ イト位置を示し、次の2行ではこれらの文字ストリングを16進表現で再現し、 その下の2行では2進表現で再現する。ビット位置3の「x」は、この位置のバ イトがその結果に何の影響も及ぼさず、したがって、その位置ではいずれの文字 でも構わないことを意味する。両方のストリングのバイト位置2には不一致(M C)が存在し、この位置のストリングAの値はストリングBの対応する値より小 さいことは明らかである。ストリングBの2進表現は最後の行から3番目の行に 繰り返されているが、最後から2番目の行であるストリングAは、加算の実行の ために演算ユニットのオペランドA入力に供給される場合と同様に2の補数表現 で示されている。最後の行は、加算中に発生する繰上りを示している。まず、繰 上りは2の補数の生成の一部として最下位バイト位置、すなわちバイト3に供給 される。これは、線48上の制御ユニット40からの信号によって周知の方法で 行われるが、この信号は減算の実行のために演算ユニット20も制御する。バイ ト位置2では繰上りが生成され、これがバイト位置1に達し、そこから位置0に も達し、それが線34上で繰上りを生成する。この繰上りは、ストリングAがス トリングBより小さいことを示すように機能する。同時に、論理ユニット22は 、上記の例の行4および5のように、真の(すなわち、補数ではない)2進表現 でそれに供給されたストリングAとBの比較をすでに行っている。この比較の結 果として、論理ユニット22はその出力線上にMC(2)信号を生成し、位置2 のバイト同士が等しくないことを示す。この表示と線34上の繰上りは、バイト 位置3のバイトとは無関係である。上記の例のこの位置で繰上りが発生しない場 合、その結果は図示の通りになる。位置3で繰上りが発生すると想定した場合、 それによって何の変更も行われない。この場合、位置2のストリングBのバイト は当然のことながら1だけ増加する。しかし、このことは、依然としてこの位置 で繰上りが発生し、その結果、線34上に繰上り信号が出力されることを変える ものではない。また、位置3のバイト同士が等しくなく、その結果、上記のMC (2)信号に続いて論理ユニット22にMC(3)という出力信号が発生しても 、これは一切影響しない。というのは、これは、ストリングの先頭に最も近い位 置にあるバイト位置の不一致信号のみに依存するからである。したがって、不一 致位置の右にあるバイトがユニット20および22の動作の結果に一切影響しな いことは明らかである。また、ユニット20および22の出力に発生する通常の 結果、すなわち、A−Bという代数差と、ストリングAおよびBの排他OR演算 とは、本発明の構成にとってまったく重要ではないことを付け加える必要がある 。 両方のユニット20および22の通常の動作の場合、これらの結果は、マルチプ レクサ39、バス42、マルチプレクサ13を介してローカル記憶装置に伝送さ れ、そこに格納される。 第1図の構成の動作は、制御ユニット40によって制御される。このユニット は、線46〜51上に制御信号を生成し、それが個別のユニットに送られる。こ れらの信号は所与のクロック間隔で生成される。レジスタ16および18に文字 ストリングAおよびBの4バイトをそれぞれロードするために、バス46を介し て記憶装置10へのアクセスが行われる。線47上の制御信号によって、これら のバイトがユニット20、33、24に転送されると同時に、比較器ユニット3 6が使用可能になる。線49上の制御信号COMP(A,B)および線50上の 制御信号COMP EZ(A,B)と同時に、線48上に減算制御信号SUB B−Aが発生する。COMP(A,B)により、論理ユニットは排他OR演算を 実行することができ、COMP EZ(A,B)はレジスタ26から比較器ユニ ットにストリング終了マークEZを転送し、後者を前述の複数比較を実行するた めに使用可能にする。線47〜50上の制御信号によって開始された動作は、1 マシン・サイクルを要する。このサイクルが終わると、サブストリングAおよび Bの処理結果は、線28、30、32、34上の標識信号EA(0...3)、 EB(0...3)、MC(0...3)、CARRY(0)として出力される 。これ らの信号は標識回路60に送られるが、この回路については第2図および第3図 を参照して説明する。 第2図の表の左側部分は信号MC、EA、EBの組合せとして可能なパターン を示し、右側部分には選択した有効な信号の組合せを示している。標識論理回路 60は、有効なサブストリングを切り詰める回路62を有し、記憶装置12内の 文字ストリングのアクセス中に物理的な記憶容量の限界を超えたときに発生しう る、サブストリングの位置合せ不良に対応する。さらに、標識論理回路60は、 優先順位の判定のための回路64、ならびに線34上の繰上り信号によって制御 される選択回路66を有する。 有効なサブストリングを切り詰める回路62は、バス70を介して選択的に条 件付けされるAND回路72、73、74を含む。ユニット24および22の出 力からのバス28、30、32の4本の線のそれぞれは、AND回路72、73 、74の1つにそれぞれ接続され、これらの回路は、上記のユニット内で処理さ れた4バイトすべてについてバス70上に条件付け信号が出力された場合に、こ れらの線上の信号に対応する出力信号をバス76上に送達する。これに対して、 アドレス指定された記憶範囲が何らかの記憶限界を超えたために、記憶アクセス によってレジスタ16および18に不完全なストリングA、Bだけがロードされ た場合、制御ユニット40は、有効バイトが一切処理されていないバイト位置に 対応するバス線上の条件付け信号を使用禁止にする。たとえば、 これは線71に割り振られたバイト2および3になる可能性があり、その結果、 バス70上にはAND回路72、73、74からの出力信号が一切発生しなくな る。バス76への入力接続部をA0〜A3、B0〜B3、M0〜M3と示すが、 この接続部は、A0〜A3が線28に、B0〜B3が線30に、M0〜M3が線 32というように割り振られている。優先順位論理回路64は、サブストリング AまたはB内のストリング終了文字のバイト位置と、これらのサブストリング間 の不一致のバイト位置という標識を決定する。これは、AND回路82〜85に よって行われ、その前にはインバータ78〜80が設けられている。例示のため 、ここではAND回路とインバータの一部を省略する。AND回路82は、バイ ト位置0の不一致を示す入力信号M0をバスから受け取る。この信号は、信号A 0、B0が一切存在しない場合、すなわち、同じバイト位置にバイト終了文字が 一切示されていない場合のみ、バスに伝送される。この場合、AND回路82は その前にあるインバータ78からの出力信号によって条件付けされる。同様に、 AND回路83は、バイト位置0またはバイト位置1のいずれにもストリング終 了文字が示されず、バイト位置0に不一致が一切示されていない場合に、バス8 8に不一致信号M1を伝送する。同じ方法で、図示されていないAND回路によ って不一致信号M2およびM3がバス88に伝送される。信号A0とB0はバス 76からバス88に直接送られる。バイト位置0についてバイト終了文字または 不一致のいずれも示されていない場合、AND回路84は信号A1をバス88上 に伝送する。これと同等の信号B1の伝送はAND回路85を介して行われる。 いずれの場合にも下位バイト位置のすべてがバイト終了文字または不一致を一切 示していない場合、残りのストリング終了標識信号A2、A3、B2、B3はま ったく同じようにAND回路(図示せず)を介してバス88に伝送される。バス 88からの信号A0〜A3、B0〜B3、M0〜M3は、OR回路89によって それぞれ信号EA、EB、MCに結合される。結合した信号は、別のバス90に よって繰上りスコア論理回路66に経路指定され、この回路も演算ユニット20 の最上位バイト位置からの繰上り線34に接続されている。繰上りスコア論理回 路66は、AND回路91、93、94と、インバータ92とを有し、2つのサ ブストリングAおよびBのどちらが大きい方かまたは小さい方かを、線95およ び96上にそれぞれ示す。これを行うため、AND回路91は、線34上の繰上 り信号によって条件付けされている場合、線95にMC信号を伝送する。線95 上の出力信号は、サブストリングAがサブストリングBより小さいことを示し、 図示されていないラッチ回路内に条件コードCC=01を設定するように機能す る。また、繰上り信号が一切存在せず、しかもインバータ92が条件信号をAN D回路93に供給する場合、AND回路93を介して線96に信号MCも伝送さ れる。線96上の出力信号は、サブストリングBがサブストリングAより小さい ことを 示し、条件コードCC=10を設定するように機能する。これに加え、AND回 路94は、信号EAおよびEBがバス90上に同時に発生した場合、すなわち、 サブストリングAとサブストリングBの両方でストリング終了文字が検出された 場合、線97上で出力信号を送達する。線97上の信号は、条件コードCC=0 0を設定するように機能し、両方のサブストリングが等しいことを示す。さらに 、信号EAとEBはバス90からバス98および99に経路指定され、条件コー ドCC=01およびCC=10を設定する。両方の信号は、サブストリングAお よびBのストリング終了をそれぞれ示す。これらの信号が線95および96上の 信号と同じ条件コードを設定するように機能することは明らかである。すなわち 、サブストリングAの末尾は、サブストリングAがサブストリングBより小さい ことも示し、サブストリングBの末尾は、サブストリングBがサブストリングA より小さいことも示している。バス88に接続されたバス100は、最後のサブ ストリング処理中に検出した一致のバイト位置を同時に示している。この表示は 、バス88の入力信号A0〜A3およびB0〜B3から直接発生し、後続のプロ グラム命令の実行に使用するために、図には示していないレジスタに一時的に格 納される。 第4図は、2つの文字ストリングAおよびBを処理すべきときに必ず制御回路 40内で繰り返し使用可能になる、マイクロプログラム・ルーチンの重要ステッ プの簡略表現を示し ている。このマイクロプログラム・ルーチンは、制御ユニットの記憶装置(図示 せず)にプロセッサのマイクロプログラムの一部として格納される。ステップ1 01は、実行すべき各文字ストリング命令が定義する開始アドレスから始まって 、記憶ユニット12からの文字ストリングAの最初の8バイトをローカル・デー タ記憶装置10に転送する。同時に、開始アドレスを8だけ増分する。同じ操作 は、ステップ102で文字ストリングBについても行われる。ステップ103は 、記憶ユニット10内の文字ストリングAおよびBの最初の4バイトをレジスタ 16および18にそれぞれ転送する。この転送は1マシン・サイクル中に実施さ れる。次にステップ104では、レジスタ16および18内のサブストリングA およびBが上記のようにユニット20、22、24で並列処理される。この処理 操作もちょうど1マシン・サイクル中に実施される。ステップ105は、記憶装 置10からの文字ストリングAおよびBの別の4バイトを新しいサブストリング AおよびBとしてレジスタ16および18にロードする。この後には、ステップ 104と同等の新しい処理ステップ106が続く。次に、分岐ステップ107は 、ステップ104または106が出力信号EA、EB、またはMCを検出したか どうかをテストする。 これは、線97、98、99(第3図)の信号条件をサンプリングすることに よって行われる。出力信号EA、EB、MCが一切存在しない場合、マイクロプ ログラムは分岐して ステップ101に戻り、制御ユニット12内の次の8バイトにアクセスする。こ れに対して、このような出力信号が検出された場合、これは、文字ストリングA およびBの処理が終了したことを意味する。 通常、これは、第4図に示す場合のように、マイクロプログラム・ルーチンの 第1のパスの直後になるわけではないが、長いストリングを処理するためにはこ のようなパスが数回必要になる。パスが何回必要であるかにかかわらず、ステッ プ107は、結果がYESのときにステップ108に分岐し、そこで線95〜9 9の信号条件に対応する条件コードCCが設定される。次のステップ109は、 マイクロプログラムと、文字ストリング命令の実行の両方を終了する。現行アプ リケーション・コマンドの次の命令は分岐命令である可能性があり、この分岐命 令は、プログラム制御セクションに分岐するために事前に設定された条件コード CCを使用する。これは、出力バス100上に示された不一致バイト位置のアド レスを含む、文字ストリング処理命令からの処理結果を再利用する。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 クリンスキイ、ハーバート ドイツ国シェーナイヒ、ヘルマン―ヴァー マ―シュトラーセ 4 (72)発明者 コスター、ラルフ ドイツ国ホリツガンリンゼン、リッテンセ ンシュトラーセ 12 【要約の続き】 両方のサブストリングが等しくないことを示すように機 能し、演算ユニットからの繰上り信号は、2つのサブス トリングのどちらが大きい方でどちらが小さい方かを同 時に示すように機能する。

Claims (1)

  1. 【特許請求の範囲】 1.プログラム命令によって対単位でアドレス可能であり、それからデータ経路 幅に対応するサブストリングが2つのオペランド・レジスタに転送される文字ス トリングを格納する複数の記憶ユニットからなるシステムを含み、処理操作を実 行する演算論理ユニットを含み、処理の結果から得られ、プログラムの分岐を制 御するように機能する信号を格納する条件コード回路を含み、記憶ユニット内の 文字ストリングの対のサブストリングを順次アドレス指定し、各種ユニットの動 作ならびにそれらの間の転送を連続マシン・サイクルで制御する制御ユニットを 含む、可変長の文字ストリング用のプロセッサにおいて、オペランド・レジスタ (16、18)が演算ユニット(20)、論理ユニット(22)および比較器ユ ニット(24)と並列に接続されていることを特徴とし、ストリング終了マーク (E)を再ロード可能なマーキング・レジスタ(26)が比較器ユニット(24 )のもう1つの入力に接続されていることを特徴とし、オペランド・レジスタ( 16、18)内に格納されたサブストリングが、一方のサブストリングからもう 一方のサブストリングを減算するために演算ユニット(20)に、両方のサブス トリングの比較のために論理ユニット(22)に、両方のサブストリングの文字 とマーキング・レジスタ(26)の内容とを比較するために比較器ユニット(2 4)に同時に経路指定されることを特 徴とし、これらのユニットの出力信号が同じマシン・サイクル内で得られ、比較 器ユニットの出力信号が両方の文字ストリングまたはサブストリングが等しいこ とを示すように機能し、論理ユニットの出力信号が両方の文字ストリングまたは サブストリングが等しくないことを示すように機能し、演算ユニットからの繰上 り信号が2つの文字ストリングまたはサブストリングのどちらが大きい方または 小さい方であるかを示すように機能することを特徴とする、可変長の文字ストリ ング用のプロセッサ。 2.文字がバイトによって表され、比較器ユニット(24)がマーキング・レジ スタ(26)の内容と両方のサブストリングの各バイトとの複数比較を並列実行 するために設計され、各サブストリング(A、B)用の出力線(28、30)を 示し、マーキング・レジスタの内容がサブストリング内の1つのバイトと一致す る場合にその出力線上にストリング終了信号(EA、EB)が生成されることを 特徴とする、請求項1に記載のプロセッサ。 3.論理ユニット(22)が、両方のサブストリング(A、B)の同様に位置決 めされたバイトを並列に比較するように設計され、各バイト対用の出力線(32 )を示し、両方のバイトが一致しない場合にその出力線上に不一致信号(MC) が生成されることを特徴とする、請求項1または2に記載のプロセッサ。 4.演算ユニット(20)が、両方のサブストリング(A、 B)内の同じ位置にあるバイト同士を並列に加算するように設計され、その入力 の1つに補数器(36)を示すと同時その最上位バイト位置に繰上り出力線(3 4)を示し、使用可能になっている補数器(36)を介して経路指定されたサブ ストリング(A)がもう一方のサブストリング(B)より大きい2進値を有する 場合にその出力線上に繰上り信号が出力され、このような繰上り信号が存在しな い場合にもう一方のサブストリングの方が大きいことを示すことを特徴とする、 請求項1ないし3のいずれか一項に記載のプロセッサ。 5.スコア論理回路(60)が、比較器ユニット(24)および論理ユニット( 22)からの出力信号(EA、EB、MC)の優先順位を判定する回路(64) を示し、それぞれの場合に一方またはもう一方(AまたはB)のサブストリング または両方のサブストリングについてストリング終了文字(E)との一致が検出 された最下位バイト位置を示し、それぞれの場合に不一致が検出された最下位バ イト位置を出力バス(100)上に示すことを特徴とする、請求項1ないし4の いずれか一項に記載のプロセッサ。 6.繰上りスコア論理回路(66)が設けられ、この回路が、出力線(95、9 6)上に信号A LESS THAN BおよびB LESSTHAN Aを生成するために演算ユニット からの繰上り信号によって制御される選択回路(91、92、93)を含むこと を特徴とする、請求項1ないし5のいずれか一項に記載のプロセッサ。 7.出力線(98、99、97、95、96)上の出力信号EA、EB、EAB 、A LESS THAN B、B LESS THAN Aが、実行された文字ストリング命令に続くプロ グラム命令による再利用のために出力バス(100)上に示されたバイト位置と ともに格納される条件コード(CC)を設定するように機能することを特徴とす る、請求項1ないし6のいずれか一項に記載のプロセッサ。
JP51121995A 1993-10-08 1994-09-12 可変長の文字ストリング用のプロセッサ Expired - Fee Related JP3183669B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE4334294.9 1993-10-08
DE4334294A DE4334294C1 (de) 1993-10-08 1993-10-08 Prozessor für Zeichenketten variabler Länge
PCT/EP1994/003045 WO1995010803A1 (de) 1993-10-08 1994-09-12 Prozessor für zeichenketten variabler länge

Publications (2)

Publication Number Publication Date
JPH09503327A true JPH09503327A (ja) 1997-03-31
JP3183669B2 JP3183669B2 (ja) 2001-07-09

Family

ID=6499679

Family Applications (1)

Application Number Title Priority Date Filing Date
JP51121995A Expired - Fee Related JP3183669B2 (ja) 1993-10-08 1994-09-12 可変長の文字ストリング用のプロセッサ

Country Status (5)

Country Link
US (1) US5761521A (ja)
EP (1) EP0722583A1 (ja)
JP (1) JP3183669B2 (ja)
DE (1) DE4334294C1 (ja)
WO (1) WO1995010803A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020509493A (ja) * 2017-03-03 2020-03-26 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation インラインのデコードベースのマイクロオペレーション展開による文字列比較処理
JP2020530151A (ja) * 2017-08-01 2020-10-15 エイアールエム リミテッド データ処理装置における連続値の照合

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6114945A (en) * 1997-05-08 2000-09-05 Texas Instruments Incorporated Apparatus and method for programmable fast comparison of a result of a logic operation with an selected result
JPH1145211A (ja) * 1997-07-28 1999-02-16 Fujitsu Ltd 情報処理装置用試験装置および情報処理装置用試験方法
US5944772A (en) * 1997-11-07 1999-08-31 International Business Machines Corporation Combined adder and logic unit
US6061775A (en) * 1997-12-12 2000-05-09 Advanced Micro Devices, Inc. Apparatus and method for predicting a first microcode instruction of a cache line and using predecode instruction data to identify instruction boundaries and types
US7191318B2 (en) * 2002-12-12 2007-03-13 Alacritech, Inc. Native copy instruction for file-access processor with copy-rule-based validation
KR20060014600A (ko) * 2004-08-11 2006-02-16 삼성전자주식회사 외부 메모리에 저장된 데이터의 변경유무를 체크하는 장치및 방법
JP4147423B2 (ja) * 2004-11-12 2008-09-10 セイコーエプソン株式会社 任意精度演算器、任意精度演算方法、および電子機器
US7613755B1 (en) * 2005-04-01 2009-11-03 Netlogic Microsystems, Inc. Signature searching system
EP1872201A4 (en) 2005-04-05 2009-10-28 Sunfish Studio Llc PROCESSOR MODAL INTERVALS
US8073893B1 (en) * 2005-08-25 2011-12-06 Robert T. Jenkins Method and/or system for comparing character expressions
US8484236B1 (en) 2006-06-30 2013-07-09 Robert T. Jenkins and Virginia T. Jenkins Method and/or system for processing data streams
US7849399B2 (en) * 2007-06-29 2010-12-07 Walter Hoffmann Method and system for tracking authorship of content in data
WO2009105332A1 (en) * 2008-02-18 2009-08-27 Sandbridge Technologies, Inc. Method to accelerate null-terminated string operations
US8380779B2 (en) * 2009-05-29 2013-02-19 Freescale Semiconductor, Inc. Technique for determining if a logical sum of a first operand and a second operand is the same as a third operand
US9323534B2 (en) 2013-03-15 2016-04-26 Freescale Semiconductor, Inc. Method and apparatus for detecting a collision between multiple threads of execution for accessing a memory array
US9116799B2 (en) 2013-06-30 2015-08-25 Freescale Semiconductor, Inc. Method for detecting bank collision at a memory and device therefor
US20180367673A1 (en) * 2016-12-27 2018-12-20 Bronson Picket Enhanced communication using variable length strings of alphanumerics, symbols, and other input

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4094001A (en) * 1977-03-23 1978-06-06 General Electric Company Digital logic circuits for comparing ordered character strings of variable length
DE2830467C2 (de) * 1978-07-11 1983-07-14 Artemij Michajlovič Eršov Informationsverarbeitungs-Einrichtung
US4384325A (en) * 1980-06-23 1983-05-17 Sperry Corporation Apparatus and method for searching a data base using variable search criteria
US4556951A (en) * 1982-06-06 1985-12-03 Digital Equipment Corporation Central processor with instructions for processing sequences of characters
US4575795A (en) * 1983-04-01 1986-03-11 Honeywell Information Systems Inc. Apparatus for detecting a predetermined character of a data string
US4618956A (en) * 1983-09-29 1986-10-21 Tandem Computers Incorporated Method of operating enhanced alu test hardware
US4760523A (en) * 1984-06-29 1988-07-26 Trw Inc. Fast search processor
DE3507100A1 (de) * 1985-02-28 1986-08-28 Siemens AG, 1000 Berlin und 8000 München Operationsnetzwerk fuer einen parallelrechner
US4896133A (en) * 1987-02-10 1990-01-23 Davin Computer Corporation Parallel string processor and method for a minicomputer
US5212697A (en) * 1988-09-13 1993-05-18 Ricoh Company, Ltd. Variable length character string detection apparatus
US5222225A (en) * 1988-10-07 1993-06-22 International Business Machines Corporation Apparatus for processing character string moves in a data processing system
AU624205B2 (en) * 1989-01-23 1992-06-04 General Electric Capital Corporation Variable length string matcher
CA2045705A1 (en) * 1990-06-29 1991-12-30 Richard Lee Sites In-register data manipulation in reduced instruction set processor
CA2045773A1 (en) * 1990-06-29 1991-12-30 Compaq Computer Corporation Byte-compare operation for high-performance processor
US5440753A (en) * 1992-11-13 1995-08-08 Motorola, Inc. Variable length string matcher
AU7108994A (en) * 1993-06-14 1995-01-03 Apple Computer, Inc. Method and apparatus for finding a termination character within a variable length character string or a processor

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020509493A (ja) * 2017-03-03 2020-03-26 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation インラインのデコードベースのマイクロオペレーション展開による文字列比較処理
JP2020530151A (ja) * 2017-08-01 2020-10-15 エイアールエム リミテッド データ処理装置における連続値の照合

Also Published As

Publication number Publication date
JP3183669B2 (ja) 2001-07-09
DE4334294C1 (de) 1995-04-20
WO1995010803A1 (de) 1995-04-20
EP0722583A1 (de) 1996-07-24
US5761521A (en) 1998-06-02

Similar Documents

Publication Publication Date Title
JP3183669B2 (ja) 可変長の文字ストリング用のプロセッサ
US5608887A (en) Method of processing data strings
US5408626A (en) One clock address pipelining in segmentation unit
EP0239081B1 (en) Pipelined data processor capable of decoding and executing plural instructions in parallel
US5530883A (en) Database engine
US4896133A (en) Parallel string processor and method for a minicomputer
JP3637922B2 (ja) プロセッサにおけるさまざまな長さの文字列中のターミネーション文字を発見する方法および装置
US5187783A (en) Controller for direct memory access
JPH0814801B2 (ja) プログラマブルアクセスメモリ
US5241638A (en) Dual cache memory
US5081608A (en) Apparatus for processing record-structured data by inserting replacement data of arbitrary length into selected data fields
US4384343A (en) Firmware controlled search and verify apparatus and method for a data processing system
US4878189A (en) Microcomputer having Z-flag capable of detecting coincidence at high speed
JPS63155336A (ja) デ−タ処理装置
JPH0786875B2 (ja) ベクトル処理装置
JPS6137654B2 (ja)
US4839799A (en) Buffer control method for quickly determining whether a required data block is in the buffer
Hollaar Specialized merge processor networks for combining sorted lists
GB2148562A (en) Computers
JPS6327746B2 (ja)
JP2752220B2 (ja) 文字列処理装置
JPS63261421A (ja) 文字列処理装置
WO1988006308A1 (en) Parallel string processor and method for a minicomputer
JP3010764B2 (ja) ビットパターン処理装置
JP2590866B2 (ja) データ検索装置

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees