JP2752220B2 - 文字列処理装置 - Google Patents

文字列処理装置

Info

Publication number
JP2752220B2
JP2752220B2 JP2052600A JP5260090A JP2752220B2 JP 2752220 B2 JP2752220 B2 JP 2752220B2 JP 2052600 A JP2052600 A JP 2052600A JP 5260090 A JP5260090 A JP 5260090A JP 2752220 B2 JP2752220 B2 JP 2752220B2
Authority
JP
Japan
Prior art keywords
character
character string
data
storage register
terminator
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
JP2052600A
Other languages
English (en)
Other versions
JPH03255522A (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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2052600A priority Critical patent/JP2752220B2/ja
Publication of JPH03255522A publication Critical patent/JPH03255522A/ja
Application granted granted Critical
Publication of JP2752220B2 publication Critical patent/JP2752220B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

【発明の詳細な説明】 [発明の目的] (産業上の利用分野) 本発明は、コンピュータに入力された文字列データの
特定の文字データを検出する文字列処理装置に関する。
(従来の技術) 例えばコンピュータにある文字列データが入力された
際に、特定のビットパターン(アスキコード)からなる
文字、すなわち、ターミネータで終了する文字列に対し
て何等かの処理を行なう場合、その対象となる文字列の
終了位置を検出する必要がある。この場合、従来は、入
力された文字列の先頭から1文字ずつそれがターミネー
タであるか否かの判定を繰返し、該ターミネータと判定
された位置で文字列の終了を検出している。
また、入力された文字列内の特定文字の有無や文字位
置を検索する場合にも、上記文字列終了位置を検出する
場合と同様にして、その特定文字か否かの判定を1文字
ずつ繰返していた。
(発明が解決しようとする課題) しかしながら、上記入力された文字列に対して1文字
ずつの文字判定を繰返し、ターミネータや特定文字の検
索を行なったのでは、文字列のサーチ,マージ,比較,
転送等の処理を高速化するのが困難になる。
本発明は上記課題に鑑みなされたもので、例えば入力
された文字列の終了位置を検索する際に、その先頭文字
から1文字ずつの文字判定を繰返し行なう必要なく、文
字列のサーチ,マージ,比較,転送等の文字列処理を高
速化することが可能になる文字列処理装置を提供するこ
とを目的とする。
[発明の構成] (課題を解決するための手段) すなわち、本発明に係わる文字列処理装置は、予め設
定された複数の連続する文字データを一括して格納する
文字列格納レジスタと、この文字列格納レジスタに格納
された全ての文字データのそれぞれに対し特定データが
存在するか否かを一括して判定する特定データ判定ゲー
トと、この特定データ判定ゲートにおける個々の文字デ
ータの判定結果の出力を上記文字列格納レジスタの文字
データ未格納位置に対応して禁止するゲート出力禁止手
段と、上記特定データ判定ゲートにおいて特定データが
存在することの判定が成された際にその特定データ存在
位置に対応する文字データの先頭に最も近いところの上
記文字列格納レジスタの文字レジスタ番号を出力するプ
ライオリティエンコーダとを備えて構成したものであ
る。
(作 用) つまり、上記文字列格納レジスタにより予め設定され
た複数の連続する文字データを一括して格納し、この文
字列格納レジスタに格納された全ての文字データのそれ
ぞれに対し特定データが存在するか否かを上記特定デー
タ判定ゲートにより一括して判定し、この特定データ判
定ゲートにおける個々の文字データの判定結果の出力を
上記ゲート出力禁止手段により上記文字列格納レジスタ
の文字データ未格納位置に対応して禁止すると共に、上
記特定データ判定ゲートにおいて特定データが存在する
ことの判定が成された際には上記プライオリティエンコ
ーダによりその特定データ存在位置に対応する文字デー
タの先頭に最も近いところの上記文字列格納レジスタの
文字レジスタ番号を出力することにより、多数連続する
文字データの中の最初の特定データを上記予め設定され
た複数の文字データ毎に一括検索することができるよう
になる。
(実施例) 以下図面により本発明の一実施例を説明する。
第1図は計算機における文字列処理装置の回路構成を
示すもので、この文字列処理装置は、文字列格納レジス
タ11を備えている。この文字列格納レジスタ11には、キ
ャッシュメモリあるいは主記憶からの64ビットデータバ
スが接続され、1文字1バイト(8ビット)で合計8文
字分の文字データがパラレルに格納されるもので、この
文字列格納レジスタ11の各文字レジスタ11a〜11hは、そ
れぞれ対応するターミネータ判定ゲート12a〜12hに接続
される。このターミネータ判定ゲート12a〜12hは、それ
ぞれ上記文字列格納レジスタ11に格納された文字列の個
々の文字データと、コードレジスタ13に格納されたター
ミネータコードのビットパターンとを比較し、その一致
/不一致を判定するもので、このターミネータ判定ゲー
ト12a〜12hにより入力文字データとターミネータコード
との一致判定が成されると、その対応する判定ゲートよ
り論理“1"が出力される。そして、上記ターミネータ判
定ゲート12a〜12hそれぞれの出力信号は、各対応するア
ンドゲートAND0〜AND7の一端子に入力される。
一方、上記各アンドゲートAND0〜AND7の他端子には、
マスクビット生成器14からの8ビット分の出力信号がそ
れぞれ下位ビット(LSB)側と上位ビット(MSB)側とを
対応させて1ビットずつ入力される。このマスクビット
生成器14は、上記文字列格納レジスタ11に最初に格納さ
れた文字列に対するターミネータ検索処理を行なう際
に、フリップフロップFFのQ出力から論理“1"のイネイ
ブル信号enが与えられるこで、該文字列格納レジスタ11
に対し文字入力が行なわれない下位ビット(LSB)から
のレジスタ数0〜7に応じて論理“0"を出力するもの
で、この場合、マスクビット生成器14は、文字列格納レ
ジスタ11に格納された文字列先頭アドレスを入力し、文
字入力が行なわれない桁のアンドゲートANDに対する出
力禁止のマスク処理を行なう。なお、上記文字列格納レ
ジスタ11に格納された文字列に対する2回目以降のター
ミネータ検索処理時には、フリップフロップFFのQ出力
から論理“0"のイネイブル信号enが出力され、マスクビ
ット生成器14から各アンドゲートAND0〜AND7に対する出
力信号は全て論理“1"になる。
つまり、上記アンドゲートAND0〜AND7は、文字列格納
レジスタ11に格納された各文字データの中にターミネー
タコードが存在した際に、そのターミネータコードが格
納された文字レジスタ11a〜11hに対応する桁のアンドゲ
ートANDから論理“1"を出力するもので、このアンドゲ
ートAND0〜AND7からの出力信号はプライオリティエンコ
ーダ15にそれぞれ優先順位0→7として入力される。こ
のプライオリティエンコーダ15は、上記アンドゲートAN
D0〜AND7の何れかから論理“1"の出力信号が得られた際
に、ターミネータコードがあることを示す論理“1"の信
号Eを出力すると共に、該ターミネータコードの判定が
成された最も下位の桁番号を示す信号Yを出力するもの
で、このプライオリティエンコーダ15からの信号Eが論
理“1"となった場合の信号Yの示す桁番号に基づき、タ
ーミネータコードの存在する1つの文字列の最終アドレ
スが求められる。すなわち、既に読出しの行なわれた文
字列の、例えばキャッシュメモリにおける文字データ最
終アドレスに、上記プライオリティエンコーダ15により
得られた信号Yの示す桁番号を、下式(1)で示すよう
に加算することで、ターミネータコードによって区切ら
れた最初の文字列の最終アドレスXが得られることにな
る。
X=(ソースアドレス) ×(…FF8)(16)+Y …式(1) 次に、上記構成の文字列処理装置による文字列転送処
理について、第2図に示すフローチャートを参照して説
明する。
計算機に予め入力され、例えばターミネータコードに
より区切られた文字列データの転送を行なうには、ま
ず、転送元となるキャッシュメモリ等のデータメモリの
先頭から8文字分の文字データを読出し、第1図におけ
る文字列格納レジスタ11にパラレルに転送格納すると共
に、この場合の実際の文字データが位置する文字列先頭
アドレスをマスクビット生成器14に与える。そして、フ
リップフロップFFのQ出力からマスクビット生成器14に
対し、論理“1"のイネイブル信号enを出力する(ステッ
プS1)。すると、ターミネータ判定ゲート12a〜12hで
は、そのそれぞれに与えられた文字列格納レジスタ11で
の各文字データと、コードレジスタ13に格納されたター
ミネータコードのビットパターンとを比較し、その一致
/不一致を判定するもので、例えばターミネータ判定ゲ
ート12gにより入力文字データとターミネータコードと
の一致判定が成されると、その対応するアンドゲートAN
D6を通しプライオリティエンコーダ15に論理“1"が出力
されることにより、このプライオリティエンコーダ15か
らは論理“1"の信号Eが出力される(ステップS2)。こ
れにより、プライオリティエンコーダ15から出力される
論理“1"の信号Eとターミネータコードの存在桁位置を
示す信号Y(=6)とに基づき、該ターミネータコード
によって区切られた文字列データの最終アドレスXが求
められ、その先頭アドレスから最終アドレスXまでの文
字列データが上記キャッシュメモリから他のメモリに対
し転送される(ステップS3)。
なお、上記文字列格納レジスタ11に8文字分の文字デ
ータを格納した際に、実際の文字データが存在する先頭
の文字レジスタが、例えば11bである場合には、上記ス
テップS1において、マスクビット生成器14にその文字列
先頭アドレス「1」が予め入力されることにより、この
先頭アドレスより下位のアンドゲートAND0の出力は禁止
され、文字データが存在しない部分のターミネータ誤判
定が防止される。つまり、文字列データの先頭が、必ず
しもキャッシュメモリの先頭メモリアドレスから格納さ
れているとは限らないので、初回読出し文字列に対する
ターミネータ判定時には、実際の文字データが存在しな
い部分のマスク処理を施すことにより、ターミネータコ
ードの誤判定が防止される。この場合、上記の初回転送
された文字列は、文字列格納レジスタ11における文字レ
ジスタ11b〜11gまでの6文字列となる。
一方、上記ステップS2における初回読出し文字列に対
するターミネータコードの判定時に、該ターミネータコ
ードが存在しない場合には、アンドゲートAND0〜AND7の
何れからも論理“1"が出力されず、プライオリティエン
コーダ15の出力信号E(≠1)になる。すると、上記文
字列格納レジスタ11に読出し格納した文字列データの全
ての文字データをその先頭アドレスから最終アドレスま
で、他のメモリに対し転送させる(ステップS4)。この
時、フリップフロップFFからマスクビット生成器14に対
するイネイブル信号enは「0」に切換えられ、該マスク
ビット生成器14からアンドゲートAND0〜AND7に対する選
択的マスク処理は実施されなくなる(ステップS5)。こ
の場合、上記式(1)におけるソース,ディスティネー
ションアドレスには、初回8文字分のデータ転送が終了
したことに応じて「8」が加算され(例えば…FF8+8
=…FFF)、現時点における転送処理済みの最終アドレ
スが明らかにされる(ステップS6)。
すると、上記ステップS1〜S4の処理,判断により既に
転送された文字データに続く8文字分の文字データが、
上記キャッシュメモリより読出され、文字列格納レジス
タ11に対して新たに格納される(ステップS7)。ここ
で、例えば文字列格納レジスタ11に格納された8文字デ
ータの何れにもターミネータコードが存在しない場合に
は、ターミネータ判定ゲート12では何れも不一致判定が
成され、プライオリティエンコーダ15の出力信号E(≠
1)となる(ステップS8)。この場合、上記ステップS4
において転送された文字データに続き、上記ステップS7
において文字列格納レジスタ11に格納された8文字デー
タが、上記ステップS6において明らかにされた転送処理
済み文字データの最終アドレスに基づきキャッシュメモ
リから読出され他のメモリに対し転送される(ステップ
S9)。すると、再び上記ステップS6に戻り、上記式
(1)におけるソース,ディスティネーションアドレス
には、前回8文字分のデータ転送が終了したことに応じ
て「8」が加算され(例えば…FFF+8=…FFF8)、現
時点における転送処理済みの最終アドレスが明らかにさ
れる。
こうして、上記ステップS6〜S9の処理,判断を繰返す
ことで、順次8文字データの一括転送が行なわれる状態
で、ステップS8において、例えばターミネータ判定ゲー
ト12eからアンドゲートAND4を介して論理“1"が出力さ
れ、プライオリティエンコーダ15の出力信号E(=1)
によりターミネータコードありの判定が成されると、こ
のプライオリティエンコーダ15から出力されるターミネ
ータコードの存在桁位置を示す信号Y(=4)に基づ
き、該ターミネータコードによって区切られた文字列デ
ータの最終アドレスXが求められる。そして、現在文字
列格納レジスタ11に格納されている文字データの先頭ア
ドレスから上記ステップS8でのターミネータ判定に基づ
く最終アドレスXまでの5文字分のデータが上記ステッ
プS9において既に転送された文字データに続いて転送さ
れる(ステップS10)。この場合、上記ステップS4及びS
9及びS10のそれぞれの転送処理により転送された一連の
文字データが、ターミネータコードにより区切られた1
つの文字列データとして検索転送されたことになる。
したがって、上記構成の文字列処理装置によれば、64
ビットのデータバスを使用して8文字データずつのター
ミネータ判定処理を行ない、ターミネータコードが存在
する最も先頭に近いアドレスデータを得るようにしたの
で、予め入力された多数連続する文字データの1区切り
の文字列データを素早く検出することができるばかりで
なく、その文字列データの転送処理等も高速化すること
が可能になる。これにより、文字列処理の多いCompiler
言語やCOBOLで書かれたプログラムの実行時間をより高
速化することができる。
尚、上記実施例では、ターミネータ判定処理を8文字
ずつ行ない、その8文字データの一括転送を行なってい
るが、この1回の処理に対応する文字データの数は8文
字(8バイト)に限定されることなく、対象となるデー
タ量に応じて設定すればよい。
また、上記実施例では、ターミネータコードの検索に
よる1文字列の転送処理を行なったが、文字列内の特定
文字の検索を行なう場合でも、上記同様にして処理速度
の高速化が可能になる。
[発明の効果] 以上のように本発明によれば、予め設定された複数の
連続する文字データを一括して格納する文字列格納レジ
スタと、この文字列格納レジスタに格納された全ての文
字データのそれぞれに対し特定データが存在するか否か
を一括して判定する特定データ判定ゲートと、この特定
データ判定ゲートにおける個々の文字データの判定結果
の出力を上記文字列格納レジスタの文字データ未格納位
置に対応して禁止するゲート出力禁止手段と、上記特定
データ判定ゲートにおいて特定データが存在することの
判定が成された際にその特定データ存在位置に対応する
文字データの先頭に最も近いところの上記文字列格納レ
ジスタの文字レジスタ番号を出力するプライオリティエ
ンコーダとを備えて構成したので、多数連続する文字デ
ータの中の最初の特定データを上記予め設定された複数
の文字データ毎に一括検索することができ、例えば入力
文字列の終了位置を検索する際に、その先頭文字から1
文字ずつの文字判定を繰返し行なう必要なく、文字列の
サーチ,マージ,比較,転送等の文字列処理を高速化す
ることが可能になる。
【図面の簡単な説明】
第1図は本発明の一実施例に係わる文字列処理装置の構
成を示す回路図、第2図は上記文字列処理装置による文
字列転送処理を示すフローチャートである。 11……文字列格納レジスタ、11a〜11h……文字レジス
タ、12a〜12h……ターミネータ判定ゲート、13……コー
ドレジスタ、14……マスクビット生成器、15……プライ
オリティエンコーダ、AND0〜AND7……アンドゲート、FF
……フリップフロップ。

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】予め設定された複数の連続する文字データ
    を一括して格納する文字列格納レジスタと、 この文字列格納レジスタに格納された全ての文字データ
    のそれぞれに対し特定データが存在するか否かを一括し
    て判定する特定データ判定ゲートと、 この特定データ判定ゲートにおける個々の文字データの
    判定結果の出力を上記文字列格納レジスタの文字データ
    未格納位置に対応して禁止するゲート出力禁止手段と、 上記特定データ判定ゲートにおいて特定データが存在す
    ることの判定が成された際にその特定データ存在位置に
    対応する文字データの先頭に最も近いところの上記文字
    列格納レジスタの文字レジスタ番号を出力するプライオ
    リティエンコーダとを具備したことを特徴とする文字列
    処理装置。
JP2052600A 1990-03-06 1990-03-06 文字列処理装置 Expired - Lifetime JP2752220B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2052600A JP2752220B2 (ja) 1990-03-06 1990-03-06 文字列処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2052600A JP2752220B2 (ja) 1990-03-06 1990-03-06 文字列処理装置

Publications (2)

Publication Number Publication Date
JPH03255522A JPH03255522A (ja) 1991-11-14
JP2752220B2 true JP2752220B2 (ja) 1998-05-18

Family

ID=12919277

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2052600A Expired - Lifetime JP2752220B2 (ja) 1990-03-06 1990-03-06 文字列処理装置

Country Status (1)

Country Link
JP (1) JP2752220B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003037572A (ja) 2001-07-23 2003-02-07 Nec Corp スケジューリング方式

Also Published As

Publication number Publication date
JPH03255522A (ja) 1991-11-14

Similar Documents

Publication Publication Date Title
US5608887A (en) Method of processing data strings
EP0180239A2 (en) Content-addressable memory
GB1527316A (en) Data processing apparatus
JPH02113381A (ja) マイクロプロセッサ
JPH0814801B2 (ja) プログラマブルアクセスメモリ
US4591829A (en) Run length code decoder
JP3183669B2 (ja) 可変長の文字ストリング用のプロセッサ
JP2000132497A (ja) Dma制御方法及び装置
JPS5926059B2 (ja) 制御回路
JP2752220B2 (ja) 文字列処理装置
US3395396A (en) Information-dependent signal shifting for data processing systems
JPS6142031A (ja) ソ−ト処理装置
JPS5826584B2 (ja) デ−タ処理装置
JPH0315221B2 (ja)
JPS6362151B2 (ja)
EP0227348A2 (en) Content addressable memory circuit and method
JPS6236575B2 (ja)
JPS63234498A (ja) 連想記憶装置
JPH0778723B2 (ja) 情報処理装置
JP2671325B2 (ja) データ処理装置
JP3010764B2 (ja) ビットパターン処理装置
JPS63261421A (ja) 文字列処理装置
JP2564318B2 (ja) 通信処理装置
JPH04326120A (ja) 情報処理装置
JPH06202849A (ja) 情報処理装置