(57)【要約】【課題】  データ整形装置に係り、ワード単位のデータを受取るごとに、受取った長さのまま順次処理結果を送信することを課題とする。【解決手段】  組み合わせ論理回路５は、入力レジスタ１と、出力レジスタ２と、保存レジスタ３と、デコーダ４とに接続し、組み合わせ論理回路５自身の状態と、バイト単位の評価信号とに応じて、入力レジスタ１のバイト単位群と、保存レジスタ３のバイト単位群とのデータを、新たに保存レジスタ３のバイト群と、出力レジスタ２のバイト群とのデータに振り分け、組み合わせ論理回路５自身の状態を遷移させる。これにより、エスケープ文字、バックスペース文字などの処理をワードストリーミングに処理する。【選択図】        図１
2005250951.tif 000002
【特許請求の範囲】
【請求項１】
以下の要素を有することを特徴とするデータ列整形装置
（１）外部処理単位分の入力データを、内部処理単位群で入力する入力レジスタ
（２）外部処理単位分の出力データを、内部処理単位群で出力する出力レジスタ
（３）データ列整形処理途中の一時的なデータを、内部処理単位群で保存する保存レジスタ
（４）入力データの内部処理単位毎に特定コードであるかを評価し、内部処理単位毎の評価信号にデコード処理するデコーダ
（５）入力レジスタと、出力レジスタと、保存レジスタと、デコーダとに接続し、組み合わせ論理回路自身の状態と、前記内部処理単位の評価信号とに応じて、入力レジスタの内部処理単位群と、保存レジスタの内部処理単位群とのデータを、新たに保存レジスタの内部処理単位群と、出力レジスタの内部処理単位群とのデータに振り分け、組み合わせ論理回路自身の状態を遷移させる組み合わせ論理回路。
【請求項２】
外部処理単位は、ワード単位であり、内部処理単位は、バイト単位であり、
入力レジスタは、内部処理単位群を４つ有し、
出力レジスタは、内部処理単位群を４つ有することを特徴とする請求項１記載のデータ列整形装置。
【請求項３】
前記デコーダは、特定コードとしてエスケープ文字であるかを評価し、
組み合わせ論理回路は、エスケープ文字のデコード処理を、ワードストリーミング処理として制御することを特徴とする請求項２記載のデータ列整形装置。
【請求項４】
保存レジスタの上位に位置するバイト単位の出力側にデコード回路を設けることを特徴とする請求項２記載のデータ列整形装置。
【請求項５】
前記デコーダは、特定コードとしてスペースコードであるかを評価し、
組み合わせ論理回路は、重複するスペースコードを１つにまとめる処理を、ワードストリーミング処理として制御することを特徴とする請求項４記載のデータ列整形装置。
【請求項６】
保存レジスタで、一時的なデータの保持のために用いている内部処理単位群の量を記憶するオフセットを、論理回路に接続したことを特徴とする請求項１記載のデータ列整形装置。
【請求項７】
特定コードの数を記憶するカウンタと、
入力データの入力時のカウンタの値と、データ列整形処理で発生した特定コードの数とを加算して、和の値をカウンタに格納させる加算器とを有することを特徴とする請求項２記載のデータ列整形装置。
【請求項８】
前記デコーダは、特定コードとしてバックスペース文字あるいはデリート文字であるかを評価し、
組み合わせ論理回路は、文字を消去する処理を、ワードストリーミング処理として制御することを特徴とする請求項７記載のデータ列整形装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ整形装置に係り、ある処理単位ごとのデータ（この単位をワードと呼ぶ）を受取るごとに、受取った長さのまま順次処理結果を送信できる装置に関する。
【背景技術】
【０００２】
従来のデータ列整形装置は、処理単位がバイト単位であるため、入力部で受取ったデータは一度バイト単位の処理に直され処理されていた（例えば、特許文献１）。従来のデータ整形処理を実装した場合、処理単位であるワード単位で受取ったデータをバイト単位に変換し、データの整形処理を行い、整形処理後の処理を行うために再度ワード単位への逆変換を行う必要があった。従来の方法では、処理性能はバイト単位への変換部分に依存する。この部分では処理単位が切り替わるため、Ｈ／Ｗで設計を行うには動作クロックを変更しなければならない問題を含む。またワード単位への逆変換を行うために、処理されたバイト列を保存するためのバッファを用意する必要が生じる。
【０００３】
整形処理後のデータは、一般に、整えられたデータ列の中からある決められたパターンを探すことに用いられる。パターンの検索もバイト単位の処理であるため、整形処理にパターン検索をも含める方法も提案されている（例えば、特許文献１、特許文献２）。
【０００４】
この方法では、ワード単位への逆変換を必要としないものの、未だワード単位からバイト単位への変換部分を含んでいる。加えて、異なる処理どうしをまとめて実装するため、実装が困難であった。また、整形後のデータによるパターン検索を専用Ｈ／Ｗに任せるなど、機能の切り分けができないという問題をも含んでいた。
【特許文献１】特開平６−２５９４８１号公報
【特許文献２】特開平６−２５９４７５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は上記のような問題点を回避するためになされたもので、高速かつ再利用可能なデータ列整形装置を、容易な実装技術により実装できることを目的とする。
【０００６】
従来のデータ整形処理を実装した場合、処理単位であるワード単位で受取ったデータをバイト単位に変換しなければならなかった。
【０００７】
処理単位が切り替わるため、Ｈ／Ｗで実装するには、バイト単位の処理部分に劇的に速い動作周波数が必要となり、実装を困難とする問題点があった。
【０００８】
バイト単位からワード単位への逆変換を回避するために、異なる処理どうしをまとめて実装する形態では、異なる処理をまとめて行うため、実装自体が困難となる問題点があった。
【０００９】
異なる処理どうしをまとめて実装する形態では、整形後のデータを用いて行う何らかの処理を、専用Ｈ／Ｗに任せるなどといった、処理の切り分けが困難という問題点があった。
【００１０】
異なる処理どうしをまとめて実装する形態では、データ整形処理を含む一連の処理に特化して設計を行うため、整形処理内容が変わるごとに実施形態から見直す必要があるという問題点があった。
【００１１】
異なる処理どうしをまとめて実装する形態では、作成したモジュールの再利用が困難であるという問題点があった。
【課題を解決するための手段】
【００１２】
本発明に係るデータ列整形装置は、以下の要素を有することを特徴とする
（１）外部処理単位分の入力データを、内部処理単位群で入力する入力レジスタ
（２）外部処理単位分の出力データを、内部処理単位群で出力する出力レジスタ
（３）データ列整形処理途中の一時的なデータを、内部処理単位群で保存する保存レジスタ
（４）入力データの内部処理単位毎に特定コードであるかを評価し、内部処理単位毎の評価信号にデコード処理するデコーダ
（５）入力レジスタと、出力レジスタと、保存レジスタと、デコーダとに接続し、組み合わせ論理回路自身の状態と、前記内部処理単位の評価信号とに応じて、入力レジスタの内部処理単位群と、保存レジスタの内部処理単位群とのデータを、新たに保存レジスタの内部処理単位群と、出力レジスタの内部処理単位群とのデータに振り分け、組み合わせ論理回路自身の状態を遷移させる組み合わせ論理回路。
【発明の効果】
【００１３】
ワード単位のデータを受取るごとに、受取った長さのまま順次処理結果を送信することができる。
【発明を実施するための最良の形態】
【００１４】
実施の形態１．
以下本発明を図面に示す実施例に基づいて説明する。図１はこの発明の実施形態を示す構成図である。
【００１５】
図１において、１ワードは３２ビット（＝４バイト）である。入力レジスタ１（ＩｎｐｕｔＲＥＧＩＳＴＥＲ）は１ワード分のデータを受取るためのレジスタ、出力レジスタ２（ＯｕｔｐｕｔＲＥＧＩＳＴＥＲ）はデータ列整形処理後のデータをワード単位で順次送信するためのレジスタである。保存レジスタ３（ＲｅｓｅｒｖｅＲＥＧＩＳＴＥＲ）は処理途中のため１ワードに満たないデータを保存しておくための１ワードと同じサイズのレジスタである。そして４つのデコーダ４（Ｄｅｃｏｄｅｒ）は各入力データをバイト単位で評価し、８ビットから１ビットの信号（評価信号の例）へデコードするためのデコーダ４である。また組み合わせ回路５（ＣｏｍｂｉｎｅｄＬｏｇｉｃ）は組み合せ処理する。
【００１６】
ここで、ワード単位は、外部処理単位の例であり、バイト単位は、内部処理単位の例である。
【００１７】
ワードストリーミング型データ列整形装置を設計するための問題とはすなわち、入力レジスタ１から出力レジスタ２までの適切な処理を、入力クロックに対して１サイクルで順次処理できる組み合わせ回路５が作成できるか、という問題である。本構成は、この問題を解く組み合わせ回路５を作成可能とするものである。
【００１８】
次に動作について説明する。
【００１９】
ここでは、最も単純なデータ列整形処理である、エスケープ文字のデコード処理の実施形態について説明する。
【００２０】
エスケープ文字のデコード処理とは、８ビットで表される文字‘％’が来た場合、その後にある任意の２つの文字‘Ｃ１’、‘Ｃ２’、及び‘Ｃ１’の下位４ビットを上位４ビット、‘Ｃ２’の下位４ビットを下位４ビットとする文字‘Ｃ３’を用いて、文字列“％Ｃ１Ｃ２”が文字‘Ｃ３’に置き換わる処理である。ここでは、この処理をＣ３＝ｍ（Ｃ１，Ｃ２）と表す。
【００２１】
まず入力レジスタ１によりワード単位でデータを受けるとともに、４つのデコーダ４において、同じタイミングでデータが１バイトごとに評価される。本処理では、デコーダ４は文字‘％’が入れば１を、それ以外の文字が入れば０を出力する。ドントケアである場合、本稿では標記‘ｘ’を用いて表す。出力値がない場合、標記‘−’を用いて表す。また、保存レジスタ３の全てのビットの初期値は０である。
【００２２】
この、エスケープ文字のデコード処理をワードストリーミング処理するためのデータ列整形装置は、図２に示した１次の状態遷移機械を組み合わせ回路５として有する回路として実装する。ただし、デコードを行う関数ｍは表に記載した通りであり、これは組み合わせ回路５で実現する。
【００２３】
組み合わせ回路５における状態の初期値はＳ０である。また、８ビットを入力とし、１ビットを出力とするデコーダ４は、８ビット入力Ｉｘ（ｘ＝３，２，１，０）を用いてＤ（Ｉｘ）である。
【００２４】
以上のように、入力されたデータは、ワード長のまま１サイクル毎に入力と出力を繰り返すことが可能である。このように設計できるため、スループットの低下なしにデータ列の整形処理を行うことができる。
【００２５】
大量のデータを処理する場合においても、必要な記憶領域を１ワード分の保存レジスタ３のみで構成することが可能である。
【００２６】
また、本装置は定められたワード長のままで処理するようにしているので、データ入力部から出力部に至る全ての回路において、同一のクロックにより作成することができる。これは本装置の実装を容易にする効果がある。
【００２７】
また、図３に示すように、本実施形態に出力イネーブル（ＯｕｔｐｕｔＥＮＡＢＬＥ）を取り付けることも考えられる。これは本装置の後段の処理部分が出力レジスタ２の値を効率よく受取れる効果がある。
【００２８】
実施の形態２．
以上の実施形態１では、エスケープ文字のデコード処理を行うようにしたものであるが、次に重複するスペース（以下［ＳＰ］）を１つにまとめる整形処理を行う場合に、これをワード単位で行う実施形態を示す。
【００２９】
図４はこのような場合の本装置の実装形態である。本実装では、見つけるべき対象が［ＳＰ］であるため、Ｄ（［ＳＰ］）＝１、Ｄ（［ＳＰ］以外）＝０である。また実施の形態１に、保存レジスタ３の上位８ビットのデコード回路６を取り付けることで、ワード境界に存在する［ＳＰ］どうしの消去を効率よく処理できるようにした。
【００３０】
本実施形態に依り設計される組み合わせ回路５は、図５〜８に示す１次の有限状態機械により設計することが可能である。組み合わせ回路５における状態の初期値はＳ０である。
【００３１】
本実施形態においても、入力されたワード単位のデータはその長さのままで処理され出力される。
【００３２】
また入力と出力はともに、同一のクロックで、かつ１サイクルで実現できるため、容易な実行が可能であるという効果がある。
【００３３】
実施の形態３．
以上の実施の形態２では、重複する［ＳＰ］を１つにまとめる整形処理を実施できるようにしたものであるが、次にバックスペース文字（以下［ＢＳ］）やデリート文字（以下［ＤＥＬ］）のような、１つ前の文字を消去する文字を見つけ出し、一連の文字列全体を整形する実施形態を図６に示す。また、本実施形態に依り行われる処理の一例を図９に示す。
【００３４】
実施例として、［ＢＳ］、［ＤＥＬ］に因る文字列データの整形処理を述べる。ただし、図１０に示すように、後に来た［ＢＳ］あるいは［ＤＥＬ］を見なければ、どの文字が消えるのかを判断することは不可能である。
【００３５】
そのため本実施形態では、前処理としてワード単位で逆順に入れ替えることを行う。これは文字の削除を正確に行うために必要である。
【００３６】
本実施の形態では、見つけるべき対象は［ＢＳ］、［ＤＥＬ］であるため、Ｄ（［ＢＳ］）＝１、Ｄ（［ＤＥＬ］）＝１、Ｄ（それ以外）＝０である。本実施形態では、保存レジスタ３にいくつのバイトデータが保持されているかを示す、オフセット（Ｏｆｆｓｅｔ）を入力として持つ。図９の９０１にこれを表す。保存レジスタ３の内容は、出力レジスタ２を作成するために必要である。しかし、入力から出力までの処理を決定するためには、保存レジスタ３にどれほど格納されているかのみで十分である。そのため９０１は、出力値の作成を効率化する効果がある。
【００３７】
また９０２は未処理の［ＢＳ］または［ＤＥＬ］をカウントするためのカウンタである。９０３は加算器であり、入力時点の９０２と、整形処理で発生したＢＳカウント（Ｂｓｃｏｕｎｔ）加算値とを用いて加算し、次のサイクルのＢｓカウンタの値とするものである。
【００３８】
本実施の形態に依り設計される組み合わせ回路５は、図１１〜１３で示された組み合わせ回路５として実現される。本実装形態においても、入力から出力に至る全ての処理部分においてワード長のままで処理されている。これは実装を容易にする効果がある。
【００３９】
また、クロックの各サイクルにおいて入力と出力が可能であり、データ転送バスと同じスループットで処理できる効果がある。
【００４０】
以上のように、本発明の基本構成を用いれば、ワードストリーミング処理可能なデータ列整形装置を作成することが可能である。また実施形態は、平易な拡張のみで様々な整形処理に対応できるため、処理内容ごとに構成を見直す必要がない。入力から出力に至る全ての処理で同一のクロックであるため設計が容易である。入力及び出力は１サイクルで行うことが可能であるため、スループットを低下させることなくデータ列整形処理を行うことが可能となる。整形処理に特化して設計できるため、再利用が容易なモジュールを作成することが可能となる。また保存領域は１ワード分でよい。
【図面の簡単な説明】
【００４１】
【図１】本発明における実施形態の基本構成を示す構成図である。
【図２】本発明を用いて設計された、エスケープ文字のデコード処理動作を行う状態遷移テーブルである。
【図３】本発明における実施形態の変更構成の一例を示す構成図である。
【図４】本発明に依り重複［ＳＰ］を１つに束ねる整形処理を行うための構成図である。
【図５】本発明を用いて設計された、重複［ＳＰ］を１つに束ねる整形処理を行う状態遷移テーブル（１／４）である。
【図６】本発明を用いて設計された、重複［ＳＰ］を１つに束ねる整形処理を行う状態遷移テーブル（２／４）である。
【図７】本発明を用いて設計された、重複［ＳＰ］を１つに束ねる整形処理を行う状態遷移テーブル（３／４）である。
【図８】本発明を用いて設計された、重複［ＳＰ］を１つに束ねる整形処理を行う状態遷移テーブル（４／４）である。
【図９】本発明に依り、［ＢＳ］文字に因る適切な整形処理を行うための構成図である。
【図１０】［ＢＳ］文字に因る適切な整形処理の一例である。
【図１１】本発明を用いて設計された、［ＢＳ］文字に因る適切な整形処理を行う状態遷移テーブル（１／３）である。
【図１２】本発明を用いて設計された、［ＢＳ］文字に因る適切な整形処理を行う状態遷移テーブル（２／３）である。
【図１３】本発明を用いて設計された、［ＢＳ］文字に因る適切な整形処理を行う状態遷移テーブル（３／３）である。
【符号の説明】
【００４２】
１  入力レジスタ、２  出力レジスタ、３  保存レジスタ、４  デコーダ、５  組み合わせ回路、６  デコード回路、９０１  オフセット、９０２  Ｂｓカウンタ、９０３  加算器。
【図１】
2005250951.tif 000003
【図２】
2005250951.tif 000004
【図３】
2005250951.tif 000005
【図４】
2005250951.tif 000006
【図５】
2005250951.tif 000007
【図６】
2005250951.tif 000008
【図７】
2005250951.tif 000009
【図８】
2005250951.tif 000010
【図９】
2005250951.tif 000011
【図１０】
2005250951.tif 000012
【図１１】
2005250951.tif 000013
【図１２】
2005250951.tif 000014
【図１３】
2005250951.tif 000015