JP3149345B2 - データ・ストリームの個々のストリング・シーケンスのデータ圧縮方法及びその実行プロセッサ - Google Patents

データ・ストリームの個々のストリング・シーケンスのデータ圧縮方法及びその実行プロセッサ

Info

Publication number
JP3149345B2
JP3149345B2 JP31893495A JP31893495A JP3149345B2 JP 3149345 B2 JP3149345 B2 JP 3149345B2 JP 31893495 A JP31893495 A JP 31893495A JP 31893495 A JP31893495 A JP 31893495A JP 3149345 B2 JP3149345 B2 JP 3149345B2
Authority
JP
Japan
Prior art keywords
register
data
string
instruction
processor
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 - Fee Related
Application number
JP31893495A
Other languages
English (en)
Other versions
JPH08314690A (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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH08314690A publication Critical patent/JPH08314690A/ja
Application granted granted Critical
Publication of JP3149345B2 publication Critical patent/JP3149345B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
    • H03M7/3088Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method employing the use of a dictionary, e.g. LZ78
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical coding, e.g. Huffman, run length coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はデータ圧縮システム
に関し、特に、各ストリングに対応する指標を有するス
トリングのセットを含む辞書の使用にもとづく、データ
・ストリームの個々のストリング・シーケンスのデータ
圧縮方法及び装置に関する。
【0002】
【従来の技術】データ圧縮方法は、特に通信技術におい
て既知である。
【0003】Ziv及びLempelの名で知られる基本アルゴ
リズムが、Ziv及びLempelによる論文"Compression of I
ndividual Sequences via Variable Rate Coding"(IEE
E Transactions on Infomation Theory IT-24 pp530-53
6)で開示されている。
【0004】欧州特許第127815号"Data compress
ion method"は、Ziv及びLempelのアルゴリズムを改良す
るデータ圧縮方法を開示しており、特に次のステップを
含む。各ストリングに対応する指標を有する前記ストリ
ングのセットと、長さ1の全ての可能なストリングとを
含む辞書を初期化するステップ、現入力位置を前記デー
タ・ストリームの開始にセットし、圧縮されるデータ・
ストリームが尽きるまで以降のステップを繰返すステッ
プ、現入力位置から開始するデータ・ストリーム内の現
ストリングに一致する、前記辞書内の最長のストリング
を決定するステップ、前記最長の一致ストリングSに対
応付けられる指標の符号化を含む、Sに対応する識別子
Iを生成するステップ、現入力位置をデータ・ストリー
ム内の前記現ストリングの直後に進めるステップ、先行
する最長一致ストリングS、データ・ストリーム内の次
のストリング内のすぐに続く記号、及び以前に一致した
ストリングのシーケンスにもとづき、前記辞書を変更す
るステップ、識別子Iを使用装置に送信するステップ及
び前記使用装置においてIを復号化し、前記ストリング
Sを回復するステップ。
【0005】CCITT V.42勧告は特にデータ圧
縮方法を取り扱う。しかしながら、こうした方法の実現
はまだ大量の処理資源の使用を必要とする。しかしなが
ら、これらの文書は圧縮機構に関連するストリングの処
理を容易にし、また辞書を記憶するメモリへの多数のア
クセスを容易にするために、どのようにアルゴリズムを
実現するかについては明らかにしていない。
【0006】
【発明が解決しようとする課題】本発明により解決され
る問題は、記憶効率及び伝送効率を向上させる効率的な
データ圧縮方法及び装置を提供することである。
【0007】この問題は、データ・ストリームの個々の
ストリング・シーケンスをデータ圧縮する方法により解
決される。この方法は辞書にもとづき辞書は初期化さ
れ、各ストリングに対応する指標またはコードワードを
有する前記ストリングのセットと、長さ1の全ての可能
なストリングとを含む。辞書はメモリ記憶装置に記憶さ
れ、辞書の現ストリングに対応する現指標またはコード
ワードによりアドレス指定される。本発明により、ツリ
ー構造内の異なるストリングの関係を考慮するようにメ
モリが構成される。これはメモリに記憶される各データ
を4つの別個のフィールドに配列することにより達成さ
れる。
【0008】
【課題を解決するための手段】第1のフィールドは、メ
モリ内でアドレス指定される現ストリングの最後の文字
の指標またはコードワードを定義する。
【0009】第2のフィールドは現ストリングと追加の
文字とを含み、その生成がメモリ内でアクセスされる現
ストリングの生成に年代順(chronologically)に続く
第1のストリング(子ストリング)の指標またはコード
ワードを定義する。
【0010】第3のフィールドは、メモリ内でアクセス
される現ストリングの生成後に辞書内に現れ、最後の文
字を除き、前記現ストリングと同一の共通文字を有する
ストリング(兄弟ストリング)の指標またはコードワー
ドを定義する。
【0011】最後に第4のフィールドは、前記現ストリ
ングの最後の文字を除く全ての文字を含むストリング
(親)の指標を定義する。
【0012】従って、辞書内の異なるストリング間の
子、兄弟及び親の関係が辞書を物理的に記憶するメモリ
の構成により表される。このことがデータ圧縮処理を提
供するために必要とされる異なる指標またはコードワー
ドの処理を容易にし、プロセッサから少ない処理資源を
要求する。
【0013】更に本発明は、上述の方法を有利に実現す
る新たなプロセッサ構造を提供する。プロセッサ500
が外部バスにより、辞書を記憶するメモリ記憶装置に接
続される。プロセッサは更に内部バス650と、前記外
部バスと前記内部バスとの間に接続され、前記メモリ記
憶装置から読出される前記辞書を表すデータを記憶する
4つのレジスタ701、702、703、704の第1
のセットであって、前記第1のレジスタ・セットが前記
メモリ記憶装置から読出されるデータの前記第1、前記
第2、前記第3及び前記第4のフィールドをそれぞれ記
憶する第1、第2、第3及び第4のラッチを含む、前記
第1のレジスタ・セットと全てが前記外部バスと前記内
部バスとの間に接続され、前記メモリ記憶装置から読出
される前記辞書を表すデータを記憶する4つのレジスタ
705、706、707、708の第2のセットであっ
て、前記第2のレジスタ・セットが前記メモリ記憶装置
から抽出されるデータの前記第1、前記第2、前記第3
及び前記第4のフィールドをそれぞれ記憶する第1、第
2、第3及び第4のラッチを含む、前記第2のレジスタ
・セットと、前記少なくとも1つのメモリ記憶装置をア
ドレス指定する命令アドレスを記憶するプログラム・カ
ウンタ・レジスタ713と、前記少なくとも1つのメモ
リ記憶装置に記憶される命令を受信し、前記プロセッサ
に必要とされる制御信号を生成する処理ユニット600
とを含む。
【0014】このプロセッサは、メモリに記憶されるデ
ータの異なるフィールドへの独立アクセスを容易にし、
辞書の使用にもとづく強力なデータ圧縮機構の設計を可
能にする。
【0015】本発明は、いわゆるZIP-LEMPEL圧縮アルゴ
リズムに由来する任意のデータ圧縮方法または装置に適
応される。特に本発明はCCITT V.42bis勧告
を実現する上で好適である。
【0016】
【発明の実施の形態】図1は、本発明による特殊化され
た圧縮プロセッサの一般的なアーキテクチャを示す図で
ある。図中"ブラック・ボックス"で示されるプロセッサ
500は、フロー制御回路100と通信してDTEとの
間で送受信されるDTEデータ・フローを管理するよう
に設計される。データのフローはDATA_IN(データ入
力)バス101を介して、プロセッサ500との間で送
受信される。本発明の好適な実施例ではDATA_INバス1
01は8ビット・バスである。プロセッサ500はWRIT
E_DATA(データ書込み)及びREAD_DATA(データ読出
し)制御リード501及び502のセットを有し、これ
らはそれぞれフロー制御1回路100におけるデータの
書込み及び読出しに使用される。例えばプロセッサ50
0がこの回路から1バイトを抽出したい場合、プロセッ
サ500はリード502上にREAD_DATA制御信号を活動
化することにより、この抽出を実行する。追加のCNTL_1
_IN(制御1入力)及びCNTL_1_OUT(制御1出力)制御
バス102及び503のセットは、それぞれフロー制御
の管理のための制御コードのセットとして使用され、こ
れについては以降で詳述される。本発明の好適な実施例
では、バス102及び503は4ビット・バスの形式を
取る。
【0017】同様に他の側では、DCE変換器のデータ
・フローを管理するためにフロー回路200が使用され
る。
【0018】後者のデータ・フローはCCITT勧告
V.42bisで定義される可変長のコードワード形式を
有し、DATA_OUTバス504を介してプロセッサ500と
の間で送受信される。DATA_OUTバス504は12ビット
・バスであり、最上位8ビット乃至12ビットは圧縮処
理の状態に関連する。プロセッサ500はWRITE_CODEW
(コードワード書込み)及びREAD_CODEW(コードワード
読出し)制御リード507及び506のセットを有し、
これらはそれぞれフロー制御2回路200におけるデー
タの書込み及び読出しに使用される。例えばプロセッサ
500がこの回路200にコードワードの書込みを希望
する場合、プロセッサ500はリード507上のWRITE_
CODEW制御信号を活動化することによりこの書込みを実
行する。追加のCNTL_2_IN(制御2入力)及びCNTL_2_OU
T(制御2出力)制御バス508及び505のセット
は、それぞれフロー制御の管理のための制御コードのセ
ットとして使用され、これについては以降で詳述され
る。同様にバス508及び505は4ビット・バスであ
る。
【0019】2つのメモリ回路400及び300のセッ
トは、以降で詳述されるように、それぞれプロセッサ5
00のプログラム命令及び辞書入力を記憶するために使
用される。本発明の好適な実施例では、メモリ回路40
0は16ビット・ワード命令ワードを記憶するように構
成され、メモリ回路300は44ビット辞書入力を記憶
するように構成される。後述のように、各44ビット入
力は4つの別個フィールド、すなわちデータのための8
ビット・フィールド、及び各々が辞書のツリー構造内の
データ関係を特徴付けるポインタとして作用する3つの
12ビット・フィールドのセットを含む。
【0020】メモリ回路400は、16ビット・データ
・バス401及び12ビットのCO_ADDRESSアドレス・バ
ス402によりプロセッサ500と通信する。メモリ回
路400のアドレス指定はプロセッサ500によるOE
出力許可制御リード403の活動化により実行され、メ
モリ回路はアドレス・バス402上に同時に存在するア
ドレスに記憶されるデータを提供する。
【0021】メモリ回路300は、44ビット・データ
・バス301、12ビットのDIC_ADDRESS(辞書アドレ
ス)アドレス・バス302により、プロセッサ500と
通信する。メモリ回路400のアドレス指定は、リード
510及び511上の従来のWRITE(書込み)及びREAD
(読出し)制御信号により実行される。
【0022】追加のMASTER_RESET(マスタ・リセット)
制御リード002が、プロセッサ500の一般リセット
を制御するために使用される。最後にリード001上の
クロック信号が各回路に提供される。
【0023】図2は、図3及び図4の特定の構成を示す
ものであり、プロセッサ500の内部構造の完全な包括
的な図を提供する。図3及び図4は、複数の組合わせ論
理から成る命令状態マシンにもとづき、全ての制御信号
が圧縮処理の実行に使用される。最初に命令状態マシン
600が、上述のリード001上のマスタ・クロック、
リード002上のマスタ・リセット、及びメモリ回路4
00からデータ・バス401を介して命令コマンドを受
信する。逆に命令状態マシン600は、リード501上
の出力信号WRITE_DATA、リード502上のREAD_DATA、
リード507上のWRITE_CODEW、リード506上のREAD_
CODEW、及びリード509上のOE信号を提供する。
【0024】更に状態マシン600は、それぞれがWR
1/RD1乃至WR30/RD30として参照される3
0セットの書込み及び読出し制御信号を提供し、各制御
信号セットは30個の関連レジスタのセットの1つを制
御するために使用される。これらの30個の全てのレジ
スタは、双方向トライステート・レジスタであり、12
ビット内部データ・バス650を介して一緒に接続され
る。WR1書込み制御信号及びRD1読出し制御信号
は、レジスタ701を制御するために使用される。同様
にWR2書込み制御信号及びRD2読出し制御信号は、
第2のレジスタ702を制御するために使用され、WR
3書込み制御信号及びRD3読出し制御信号は、第3の
レジスタ703を制御するために使用され、WR4書込
み制御信号及びRD4読出し制御信号は、第4のレジス
タ704を制御するために使用され、以下同様であり、
最後にWR30書込み制御信号及びRD30読出し制御
信号は、30番目のレジスタ730を制御するために使
用される。
【0025】命令状態マシン600はまた、メモリ回路
300の読出し及び書込みを制御する制御信号のセット
を提供し、これらの制御信号には、WRMEM_A、WRMEM_B、
REDMEM_A、RDMEM_B制御信号が含まれる。WRMEM_A及びWR
MEM_BはORゲート840の2つの入力リードに伝送さ
れ、ORゲート840はリード511上にREAD信号を伝
播する出力を有する。RDMEM_A及びRDMEM_Bは、ORゲー
ト850の2つの入力リードに伝送され、ORゲート8
50はリード510上に上述のWRITE信号を伝播する出
力を有する。
【0026】命令状態マシン600は、メモリ回路40
0をアドレス指定するための命令アドレスを含むプログ
ラム・カウンタ(PC)・レジスタ713を制御する制
御信号のセットを提供する。この制御信号セットには、
PCレジスタ713内で実行される増分を制御するIN
C1及びINC2制御信号が含まれる。INC1及びI
NC2の2つの制御信号の一方の活動化により、PCレ
ジスタ713の増分が1または2ステップにより実行さ
れる。上述のように、PCレジスタ713は命令状態マ
シン600により提供される2つの制御信号WR13/
RD13を受信する。
【0027】命令状態マシン600は、DEC減分制御
信号及びINC増分制御信号を提供し、これらは両者と
もカウンタ・レジスタ729に伝送される。カウンタ・
レジスタ729はまた、上述のように、2つの制御信号
WR29/RD29を状態マシン600から受信する。
【0028】更に2つの制御信号AND及びORのセッ
トが命令状態マシン600により生成され、ブール回路
830の入力リードに伝送される。ブール回路830は
また、内部データ・バス650及びREGLレジスタ7
27の出力バスの内容を受信する。命令状態マシン60
0により提供される2つの制御信号AND及びORのレ
ベルにより、ブール回路830は、内部データ・バス6
50とREGLレジスタ727の出力バスの内容のAN
D及びOR論理演算を実行する。
【0029】命令状態マシン600は、PCレジスタ7
13とSWAPレジスタ715の内容の相互交換を制御
するSWAP制御信号を提供する。上述のように、前者
は命令状態マシン600により生成される2つの制御信
号RD13及びWR13を受信する。低感度走査設計
(LSSD:Low Sensitive Design)環境では、各ラッ
チ・セルに対応して2つの別個のラッチが使用されるの
で、こうしたスワップ・オペレーションが直接獲得され
る。非LSSD環境では、こうしたオペレーションは当
業者にとって簡単であるので、詳しい説明は省略する。
【0030】更に、状態マシン600は2つのSHL左
シフト及びSHR右シフト制御信号のセットを提供し、
これらの信号はSREGシフト・レジスタ730の2つ
の入力リードに伝送される。SREGシフト・レジスタ
730はまた、上述のように、WR30及びRD30制
御信号を受信する。このレジスタ730は左右のいずれ
かの方向への従来のシフト機能を実行するために使用さ
れる。
【0031】またADD制御信号が状態マシン回路60
0により提供され、算術加算器820を制御するために
使用される。加算器820は2つの入力バスを有し、そ
れぞれはADREGレジスタ720の内容、及び内部デ
ータ・バス650の内容を受信する。実行された加算結
果は、REGRレジスタ716の入力バスに伝送され
る。両レジスタ720及び716は、それぞれWR20
/RD20及びWR16/RD16制御リードを受信す
る。
【0032】比較器810は、SEL_LE(選択長)制御信
号の他に、COMP制御信号を命令状態マシン600か
ら受信する。SEL_LE制御信号は3ビット・バス上を伝播
される。比較器810はまたCOMPREGレジスタ718の
内容、及び内部データ・バス650の内容を受信する。
命令状態マシン600により生成されるCOMP制御信
号の活動化に際し、またSEL_LEバスに従い、比較器81
0はCOMPREGレジスタ718の出力バス及び内部データ
・バス650の両者の8ビット乃至12ビットの比較を
実行する。比較結果が命令状態マシン600に接続され
る3つの出力リードRES1、RES2及びRES3の
セットにより伝播される。本発明の好適な実施例では、
RES1出力リードは内部データ・バス650の内容が
COMPREGレジスタ718の内容よりも小さい場合に活動
化される。またRES2出力リードは、内部データ・バ
ス650の内容がCOMPREGレジスタ718の内容よりも
大きい場合に活動化され、RES3出力リードは両者の
内容が等しいことを示す。
【0033】リード102及び508上のCNTL_1_IN及
びCNTL_2_IN制御信号は、命令状態マシン600により
制御されるマスク・レジスタ717の2つの入力にそれ
ぞれ伝送される。マスク・レジスタ717の内容は命令
状態マシン600により生成される制御信号WR17及
びRD17により、(内部データ・バス650を介し
て)読み書きされる。マスク・レジスタ717が2つの
バス102及び508の一方により伝播される信号レベ
ルの変化を検出すると、割込み信号がINT出力リード
に生成され、この信号がマスク・レジスタ717に記憶
される割込みビット・マスクの内容に従い、命令状態マ
シン600に伝送される。両方のバス102及び508
の全ての入力信号線のステータスが命令状態マシン60
0により生成されるRD31制御信号により読出され
る。
【0034】DATA_INバス101により伝達されるデー
タ・フローは、DATA_INレジスタ710の入力バスに伝
送される。DATA_INレジスタ710もまた内部データ・
バス650に接続され、リード501及び502上のW
R及びRD制御信号により、バス101との間のデータ
の送受信を制御される。同様に双方向の内部データ・バ
ス650へのアクセスを制御するために、WR19及び
RD19制御信号が使用される。
【0035】一方、DATA_OUTバス504により伝達され
るデータ・フローは、DATAOUT(データ出力)レジスタ
726の入力バスに伝送される。DATAOUTレジスタ72
6は内部データ・バス650にも接続され、リード50
7及び506上のそれぞれWR_CODEW及びRD_CODEW制御信
号により制御されて、コードワードをDATA_OUTバス50
4との間で送受信する。同様に双方向の内部データ・バ
ス650へのアクセスを制御するために、WR26及び
RD26制御信号が使用される。
【0036】WR25及びRD25制御信号のセットに
よりそのアクセスを制御されるOUT_REGレジスタ725
が、内部データ・バス650に接続される。OUT_REGレ
ジスタ725の内容は、CNTL_2_OUTバス505及びCNTL
_1_OUTバス503上に連続的に提供される。
【0037】4つのレジスタ705乃至708は、外部
データ・バス301及び内部データ・バス650に接続
され、メモリ回路300とのインタフェースを可能にす
る。4つのレジスタは、バス44により伝播される異な
る信号を共有する。バス44は次のように構成される。
【0038】ビット0乃至7:データ・ビット、ビット
8乃至19:S12(子コードワードの12ビット)、
ビット20乃至31:B12(兄弟コードワードの12
ビット)、ビット32乃至43:P12(親コードワー
ドの12ビット)。
【0039】レジスタ705はDATA_Aレジスタとして参
照され、外部データ・バス301のビット0乃至7を受
信する。レジスタ706はS12_Aレジスタとして参
照され、外部データ・バス301のビット8乃至19を
受信する。レジスタ707はB12_Aレジスタとして
参照され、外部データ・バス301のビット20乃至3
1を受信する。レジスタ708はP12_Aレジスタと
して参照され、外部データ・バス301のビット32乃
至43を受信する。レジスタ705乃至708の外部デ
ータ・バス301へのアクセスは、命令状態マシン60
0により生成される書込み(WR_MEM_A)及び読出し(RD
_MEM_A)制御信号により、同時に制御される。レジスタ
705乃至708は、内部データ・バス650へもアク
セスできる。しかしながら、このアクセスは別々に実行
される。なぜなら、各レジスタがその固有の書込み及び
読出し制御信号により制御されるからである。レジスタ
705は命令状態マシン600により生成されるWR5
及びRD5制御信号により制御され、レジスタ706は
WR6及びRD6制御信号により制御される。同様にレ
ジスタ707はWR7及びRD7制御信号により制御さ
れ、レジスタ708はWR8及びRD8制御信号により
制御される。
【0040】更に外部データ・バス301及び内部デー
タ・バス650に接続される、別の4つのレジスタ70
1乃至704のセットが存在する。これらは前記同様、
メモリ回路300とのインタフェースを可能にする。レ
ジスタ701はDATA_Bレジスタとして参照され、外部デ
ータ・バス301のビット0乃至7を受信する。レジス
タ702はS12_Bレジスタとして参照され、外部デ
ータ・バス301のビット8乃至19を受信する。レジ
スタ703はB12_Bレジスタとして参照され、外部
データ・バス301のビット20乃至31を受信する。
レジスタ704はP12_Bレジスタとして参照され、
外部データ・バス301のビット32乃至43を受信す
る。レジスタ701乃至704の外部データ・バス30
1へのアクセスは、命令状態マシン600により生成さ
れる書込み(WR_MEM_B)及び読出し(RD_MEM_B)制御信
号により、同時に制御される。レジスタ701乃至70
4は、内部データ・バス650へもアクセスできる。し
かしながら、前記同様、各レジスタがその固有の書込み
及び読出し制御信号により制御されるために、このアク
セスは別々に実行される。レジスタ701は、命令状態
マシン600により生成されるWR1及びRD1制御信
号により制御され、同様にレジスタ702はWR2及び
RD2制御信号により制御され、レジスタ703はWR
3及びRD3制御信号により制御され、レジスタ704
はWR4及びRD4制御信号により制御される。
【0041】ADD_Aレジスタ710は内部データ・
バス650によりアクセスされ、メモリ回路300にDI
C_ADDRESSバス302を介し、12ビットのアドレスを
提供するために使用される。これは辞書を更新するため
の(書込みオペレーション時)、或いは辞書のラインを
読出すための(読出しオペレーション時)、命令状態マ
シン600によるメモリ回路300へのアクセスを可能
にする。このレジスタはそのバスをレジスタ705乃至
708のバスに接続される。これを達成するために、A
DD_Aレジスタ710はWR10書込み制御信号及び
RD10読出し制御信号により制御される。
【0042】ADD_Bレジスタ709は、内部データ
・バス650によりアクセスされ、メモリ回路300に
DIC_ADDRESSバス302を介し、12ビットのアドレス
を提供するために使用される。これは辞書を更新するた
めの(書込みオペレーション時)、或いは辞書のライン
を読出すための(読出しオペレーション時)、命令状態
マシン600によるメモリ回路300へのアクセスを可
能にする。この第2のレジスタは、レジスタ701乃至
704に対応付けられる。これを達成するために、AD
D_Bレジスタ709は、WR9書込み制御信号及びR
D9読出し制御信号により制御される。
【0043】下記に上述のプロセッサにより使用されう
る命令セットを生成するテーブルを表1に示す。各命令
は16ビット・ワードであり、特定の命令を定義する第
1の4ビット・フィールドを含む。2つの追加の6ビッ
ト・フィールドは、1つまたは2つのオペランドを定義
するために使用される。
【0044】
【表1】
【0045】転送(MOVE)命令は、出所(SOURCE)オペ
ランドにより定義されるレジスタの内容を、宛先(DEST
INATION)オペランドにより定義されるレジスタに移動
する。これを達成するために、命令状態マシン600は
出所オペランドにより定義される読出し制御信号と、宛
先オペランドにより定義される書込み制御信号の両方を
活動化する。例えばDATA_Aレジスタ705の内容をRE
G4レジスタ724に移動する場合、次の命令"0001/01
100/000101"が使用される。なぜなら0001は命令MOVEを
表し、01100はレジスタ724をさす値"24"の2進コ
ードを表し、000101はレジスタ705をさす値"5"の2
進コードを表すからである。
【0046】比較(COMPARE)命令は、出所オペランド
により定義されるレジスタの内容を、COMPREGレジスタ
718の内容と比較する。宛先オペランドの3つのLS
BビットがSEL_LEバスの内容、すなわちこの比較を実行
するために使用されるビット数を定義する。従って比較
命令を解読するとき、命令状態マシン600がこれらの
3ビットをSEL_LEバス上に生成し、比較器810がCOMP
REGレジスタ718の最下位8ビット乃至12ビット
と、出所オペランドにより定義されるレジスタ(例えば
REG3レジスタ714は、番号14の2進コードに相
当するアドレス"001110"を有する)とを比較する。比較
結果がRES1、RES2及びRES3リードを介して
命令状態マシン600に伝送される。RES1、RES
2及びRES3の3つのリードの内のRES信号の最後
の選択は、宛先オペランドに含まれる3MSBビットの
内容に従い、命令状態マシン600により実行される。
【0047】加算(ADD)命令は、ADREGレジスタ
720の内容と、出所オペランドにより定義されるレジ
スタの内容との算術加算を実行する。これを達成するた
めに、ADD命令の解読に際し、命令状態マシン600
は出所オペランドにより定義されるレジスタの読出し
(READ)信号と共に、加算器回路820へのADD制御
信号を活動化する。従って、そのレジスタの内容が内部
データ・バス650に伝送され、加算器回路820は内
部データ・バス650上のこの内容と、ADREGレジ
スタ720の内容との加算を計算する。結果がREGR
レジスタ716に記憶される。
【0048】AND命令はREGLレジスタ727の内
容と、出所オペランドの内容により定義されるレジスタ
の内容との論理積演算を実行する。これを達成するため
に、AND命令の解読に際し、命令状態マシン600は
ブール回路830へのAND制御信号、及び出所オペラ
ンドにより定義されるアドレスを有するレジスタの読出
し制御信号を活動化する。従ってブール回路830は、
そのレジスタの内容と、REGLレジスタ727の内容
とのビット毎の論理積演算を実行する。結果がREGR
レジスタ728に転送される。
【0049】同様にOR命令は、REGLレジスタ72
7の内容と、出所オペランドの内容により定義されるレ
ジスタの内容との論理和演算を実行する。これを達成す
るためにOR命令の解読に際し、命令状態マシン600
はブール回路830へのOR制御信号、及び出所オペラ
ンドにより定義されるアドレスを有するレジスタの読出
し制御信号を活動化する。従ってブール回路830は、
そのレジスタの内容と、REGLレジスタ727の内容
とのビット毎の論理和演算を実行する。結果がREGR
レジスタ728に転送される。
【0050】ILOAD命令はREG1レジスタ712
に、宛先及び出所オペランドの内容により定義されるデ
ータをロードする。宛先オペランドは最上位6ビットを
形成し、出所オペランドは最下位6ビットを形成する。
これを達成するためにILOAD命令の解読に際し、命
令状態マシン600はWR11制御信号を活動化し、ま
た内部データ・バス650上に16ビット・データ・バ
ス401により伝播される最下位12ビットの内容を転
送し、これが宛先及び出所オペランドを形成する。
【0051】間接ジャンプ(INDIRECT JUMP)命令は、
出所オペランドにより定義されるアドレスのレジスタの
内容を、PCレジスタ713に転送する。これを達成す
るために、間接ジャンプ命令の解読に際し、命令状態マ
シン600は、出所レジスタの読出し制御信号、及びP
Cレジスタ713へのWR13書込み制御信号を活動化
する。
【0052】左シフト(SHL)命令は、SREGレジ
スタ730の内容の左シフト機能を実行するために使用
される。これを達成するために左シフト命令の解読に際
し、命令状態マシン600はSREGレジスタ730へ
のSHL制御信号を活動化する。
【0053】反対に、右シフト(SHR)命令は、SR
EGレジスタ730の内容の右シフト機能を実行するた
めに使用される。これを達成するために右シフト命令の
解読に際し、命令状態マシン600はSREGレジスタ
730へのSHR制御信号を活動化する。
【0054】INC命令は、CNTRレジスタ729に
接続されるINC制御リードの活動化により、CNTR
レジスタ729の増分を実行する。
【0055】同様にDEC命令は、CNTRレジスタ7
29に接続されるDEC制御リードの活動化により、C
NTRレジスタ729の減分を実行する。従って、CN
TRレジスタ729は、命令状態マシン600により生
成され、INCまたはDEC制御リードにより伝播され
る制御信号に従い、その内容の増分または減分を実行す
ることができる。
【0056】スワップ(SWAP)命令は、PCレジスタ7
13の内容とスワップ・レジスタ715の内容との相互
交換を制御するために使用される。命令バス401上の
スワップ命令の解読に際し、命令状態マシン600はス
ワップ制御信号を生成し、これがPCレジスタ713及
びスワップ・レジスタ715の両方に伝送される。
【0057】外部転送(MOVE EXTERNAL)命令は、宛先
オペランドの内容(転送のタイプをさす)に従い、プロ
セッサ500と外部装置100、200、300の1つ
との間でデータの8つの個々の転送のセットを提供す
る。
【0058】第1のタイプの転送(READ_DATA)は、FLO
W_CONTROL1_IN回路100により提供されるデータをDAT
A_IN(データ入力)レジスタ719に転送する。これを
達成するために、このタイプの外部転送命令の解読に際
し、命令状態マシン600はREAD_DATAリード502を
活動化し、これがFLOW_CONTROL1_IN回路100及びDATA
_INレジスタ719のREAD_DATA入力リードに伝送され
る。
【0059】第2のタイプの転送(WRITE_DATA)は、DA
TA_INレジスタ719により提供されるデータをFLOW_CO
NTROL1_IN回路100に転送する。これを達成するため
に、この第2のタイプの外部転送命令の解読に際し、命
令状態マシン600はWRITE_DATAリード501を活動化
し、これがFLOW_CONTROL1_IN回路100及びDATA_INレ
ジスタ719のWRITE_DATA入力リードに伝送される。
【0060】第3のタイプの転送(READ_CODEWORD)
は、FLOW_CONTROL2_OUT回路200により提供されるデ
ータをDATA_OUTレジスタ726に転送する。これを達成
するために、この第3のタイプの外部転送命令の解読に
際し、命令状態マシン600はREAD_CODEWORDリード5
06を活動化し、これがFLOW_CONTROL2_OUT回路200
及びDATA_OUTレジスタ726のREAD_CODEWORD入力リー
ドに伝送される。
【0061】第4のタイプの転送(WRITE_CODEWORD)
は、DATA_OUTレジスタ726により提供されるデータを
FLOW_CONTROL2_OUT回路200に転送する。これを達成
するために、この第4のタイプの外部転送命令の解読に
際し、命令状態マシン600はWRITE_CODEWORDリード5
07を活動化し、これがFLOW_CONTROL2_OUT回路200
及びDATA_OUTレジスタ726のWRITE_CODEWORD入力リー
ドに伝送される。
【0062】第5のタイプの転送(READ_MEM_to_A)
は、ADDAレジスタ710の内容により定義されるメ
モリ300のアドレスから、レジスタ705、706、
707及び708のセットにデータを転送する。これを
達成するためにこの第5のタイプの外部転送命令の解読
に際し、命令状態マシン600はORゲート850の入
力に接続される他に、DATA_Aレジスタ705、S12A
レジスタ706、B12Aレジスタ707、及びP12
Aレジスタ708のそれぞれの内容をアクセスするため
にも使用されるRDMEM_Aリードを活動化する。従って、
ORゲート850の出力はメモリ300の読出し(REA
D)入力リード511を活動化する。
【0063】第6のタイプの転送(READ_MEM_to_B)
は、ADDBレジスタ709の内容により定義されるメ
モリ300のアドレスから、レジスタ701、702、
703及び704のセットにデータを転送する。これを
達成するために、この第6のタイプの外部転送命令の解
読に際し、命令状態マシン600はORゲート850の
入力に接続される他、DATA_Bレジスタ701、S12B
レジスタ702、B12Bレジスタ703、及びP12
Bレジスタ704のそれぞれの内容をアクセスするため
にも使用されるRDMEM_Bリードを活動化する。従ってO
Rゲート850の出力は、メモリ300の読出し(REA
D)入力リード511を活動化する。
【0064】第7のタイプの転送(WRITE_MEM_to_A)
は、レジスタ705、706、707及び708のセッ
トから、ADDAレジスタ710の内容により定義され
るメモリ300のアドレスにデータを転送する。これを
達成するために、この第7のタイプの外部転送命令の解
読に際し、命令状態マシン600は、ORゲート840
の入力に接続される他、DATA_Aレジスタ705、S12
Aレジスタ706、B12Aレジスタ707、及びP1
2Aレジスタ708のそれぞれの内容をアクセスするた
めにも使用されるWRMEM_Aリードを活動化する。従っ
て、ORゲート840の出力は、メモリ300の書込み
(WRITE)入力リード510を活動化する。
【0065】第8のタイプの転送(WRITE_MEM_to_B)
は、レジスタ701、702、703及び704のセッ
トから、ADDBレジスタ709の内容により定義され
るメモリ300のアドレスにデータを転送する。これを
達成するために、この第8のタイプの外部転送命令の解
読に際し、命令状態マシン600はORゲート840の
入力に接続される他に、DATA_Bレジスタ701、S12
Bレジスタ70、B12Bレジスタ703、及びP12
Bレジスタ704のそれぞれの内容をアクセスするため
にも使用されるWRMEM_Bリードを活動化する。従ってO
Rゲート840の出力は、メモリ300の書込み(WRIT
E)入力リード510を活動化する。
【0066】直接ジャンプ(IMMEDIATE JUMP)命令は、
宛先及び出所オペランドの内容により定義されるアドレ
スをPCレジスタ713に転送する。宛先オペランドは
そのアドレスの最上位6ビットを形成し、出所オペラン
ドはそのアドレスの最下位6ビットを形成する。これを
達成するために、直接ジャンプ命令の解読に際し、命令
状態マシン600はPCレジスタ713に接続されるW
R13制御リードを活動化する。また命令状態マシン6
00は、バス401の最下位12ビットの内容を内部バ
ス650上に転送し、PCレジスタ713にこの内容を
ロードする。
【0067】以降で定義される命令セットは網羅的では
なく、追加の命令が本発明のプロセッサに導入されうる
ことに気付かれよう。一般的に言えば、順序付けはPC
レジスタ713の動作にもとづく。マシン全体を通じて
リード001上に提供されるマスタ・クロック信号の2
つの状態、並びに立上り及び立下りエッジが、次のよう
に使用される。本発明の好適な実施例では、マスタ・ク
ロック信号の立上りエッジにおいて、命令状態マシン6
00がバス401上の命令をフェッチし、そのアドレス
がPCレジスタ713に記憶される。これは記憶装置4
00に伝送されるリード403上のOE制御信号を活動
化することにより達成される。命令が従ってそのメモリ
からバス401上に転送される。立上りエッジに続く正
状態では、命令状態マシン600は命令の解読を実行
し、解読される命令に関連する回路を制御するために必
要な全ての論理状態を生成する。状態が固定されると、
マスタ・クロック信号の立下りエッジにおいて、命令状
態マシン600は命令の実行を完了するために必要なパ
ルスを生成する。こうした順序付けは、RISC(縮小
命令セット制御)プロセッサ技術において既知である。 注)pour les inventeurs:merci de verifier l'appel
lation RISC。
【0068】こうしたプロセッサは、通常、1クロック
周期内において、1命令の読出し、解読及び実行を成し
遂げる。命令の実行が完了すると(これはリード001
上のマスタ・クロックの負の状態において発生する)、
PCレジスタ713はスワップされるか(スワップ・レ
ジスタ715を巻込む)、若しくはリセットされるか、
または命令の実行に従い1乃至2だけ増分される。
【0069】PCレジスタ713のリセットは、マスタ
・リセット制御信号がリード002上に受信されるとき
に実行される。
【0070】PCレジスタ713とスワップ・レジスタ
715とのスワップは、後述のスワップ命令の解読また
は実行において、または1命令の完了時に実行され、そ
の時割込み制御信号がマスク・レジスタ717のINT
出力リードに生成される。
【0071】(スワップ命令を除く)各命令の実行の終
りに、PCレジスタ713の増分がRES1、RES2
またはRES3の3信号の1つの状態に従い制御され
る。これは丁度、特別な比較命令が処理されているもの
と見なされる。考慮されるRES1、RES2またはR
ES3の1つが'0'レベルを伝播する場合、命令状態マ
シン600はINC1制御信号を活動化し、この信号が
PCレジスタ713を1だけ増分する。逆に考慮される
RES1、RES2またはRES3の1つが'1'レベル
を伝播する場合、命令状態マシン600はINC2制御
信号を活動化し、この信号がPCレジスタ713を2だ
け増分する。また命令状態マシン600はPCレジスタ
713をデフォルト指定により1だけ増分するために、
すなわち、比較命令以外の命令が処理されるとき、IN
C1制御信号を活動化する。
【0072】上述の構造は、特にV.42bisデータ圧
縮プロシージャに準拠する符号化及び復号化機構を提供
するために設計される。
【0073】要するに、符号化機構は特定の長さを有す
るコードワードの使用にもとづく。DTEから中継回路
を通じて受信される各文字は、文字ストリングの1部を
形成し、これが次に特徴付けコードワードにより表現さ
れる。この処理は辞書を使用また保守し、ストリングが
それらの対応するコードワードと共に記憶される。辞書
は符号化機構の間に動的に更新される。
【0074】エラー制御機能を通じて信号変換器から受
信されるコードワードが、次に復号化機構により復号化
され、文字の元のストリングが生成される。これを達成
するために、復号化機構に関連する第2の辞書もまた連
続的に更新される。
【0075】データ圧縮及び伸長処理を実行するため
に、後述の本発明の好適な実施例では、特定のツリー構
造を使用する。
【0076】例えば任意の時刻に辞書が次の文字ストリ
ングを含むとしよう。下記の表2は辞書のステータスを
表す。
【表2】
【0077】このツリー構造が図7の本応用例に示され
る。
【0078】本発明の好適な実施例では、辞書を記憶す
るメモリ300が非常に特定の構成で設計される。メモ
リの構成を表3に示す。
【0079】
【表3】
【0080】メモリの最初の物理ロケーションは、一般
に制御コードワードを記憶するために使用される。次の
ロケーションはASCII文字を記憶するために使用さ
れる。更に次のロケーションは辞書の記憶のために予約
される。
【0081】メモリの各物理ロケーションは、辞書内で
作成されるストリングを特長付けるために使用される
(制御コードワードのために使用されない最初のロケー
ションは、ASCII文字の記憶に割当てられる)。こ
のストリングの物理アドレスが、このストリングに対応
付けられるコードワードを定義する。
【0082】本発明によれば、メモリ300の44ビッ
トのデータが4つの別個のフィールドのセットに編成さ
れる。
【0083】第1のフィールドは、フィールドの最後の
文字のコードワードに対応する。表3を参照すると、ス
トリング"BRI"はコードワード267により特長付け
されている。従ってプロセッサ500がメモリ300の
物理アドレス'267'を読出すと、メモリは44ビット
のデータを提供し、最上位8ビット(8MSB)が文
字"I"のコードワードを表す値'76'を提供する。同様
にメモリ300のアドレス'273'(ストリング"BR
AVO"のコードワードに相当する)をアドレス指定す
ると、8MSBが文字"O"のコードワード('82')を
表す44ビットのデータが返却される。
【0084】メモリ300の44ビット・データの第2
のフィールドは、考慮ストリング(44ビット・データ
のアドレスにより定義される)と追加の文字とを含み、
考慮ストリングの作成に年代順に続く第1のストリング
に相当するストリング(子)のコードワードを定義す
る。再度表3の例を参照すると、考慮ストリングは"B
RI"である。表3は、ストリング"BRI"と1つの追
加文字とを組込むように、辞書内で作成される第1のス
トリングがストリング"BRIQ"であることを示してい
る。結果的に後者のコードワード、すなわちコードワー
ドは'268'が第2のフィールドに対応して使用され
る。ストリング"BRID"に関しては、その作成後に現
れ、1つの追加文字を組込む第1のストリングがストリ
ング"BRIDE"であることがわかる。後者のコードワ
ード、すなわちコードワード'276'が、第2のフィー
ルドを定義するために使用される。
【0085】メモリ300の44ビット・データの第3
のフィールドは、考慮ストリングの作成後に辞書内に現
れ、最後の文字を除き同一の文字を共有するストリング
(兄弟)のコードワードを定義する。再度ストリング"
BRI"の場合を取り上げてみよう。表3からストリン
グ"BRA"及び"BRE"は最後の文字を除き、ストリン
グ"BRI"と同一の文字を共有する。これらの両者は兄
弟(兄弟)として現れる。しかしながら、表2はこれら
両者がストリング"BRI"の作成以前に現れることを示
している。結果的に、ストリング"BRI"を特長付ける
44ビット・データの第3のフィールドは'000'にセ
ットされる。別の例"BRIQ"について考えてみよう。
表3は"BRID"が兄弟として現れることを示してい
る。なぜなら、これは1文字を除き同一の最初の文字を
有するからである。後者(BRID)は前者(BRI
Q)の作成後に辞書内に現れる。結果的に、ストリン
グ"BRIQ"を特長付ける44ビット・データの第3の
フィールドは、ストリング'BRIDのコードワードに
等しい'値'269'にセットされる。
【0086】第4のフィールドは、考慮ストリングの最
後の文字を除く全ての文字により定義されるストリング
(親)のコードワードを記憶するために使用される。考
慮ストリングがn文字を含む場合、親ストリングはn−
1の最初の文字により定義されるストリングである。
【0087】例えばストリング"BRI"は親ストリング
としてストリング"BR"を有する。結果的に、後者のコ
ードワードすなわち'259'がメモリ300に記憶され
る44ビット・データの第4のフィールドを定義するた
めに使用される。
【0088】前記定義から、第2及び第3のフィールド
が年代順に密接に関係することがわかる。従ってストリ
ングの作成日が、第2及び第3のフィールドを定義する
ために考慮される。辞書の生成におけるこの時間関係が
第2、第3及び第4のフィールドにより定義されるスト
リングをそれぞれ特長付けるために使用される、用語"
子(SUN)"、"兄弟(BROTHER)"及び"親(PARENT)"に
より表される。この関係が本発明のプロセッサの構造に
おいて、特にレジスタ705乃至708及びレジスタ7
01乃至704のセットの構成において考慮される。
【0089】圧縮処理の開始に、子、兄弟及び親フィー
ルドが"0"に初期化されることが理解されよう(辞書内
に配置される考慮ストリングに対応して、子も兄弟も親
も存在しない事実による)。
【0090】後述されるメモリの特定の構成は、特定の
物理ロケーションが常に使用可能であり、辞書により使
用されないことを示す。本発明はこの予備のメモリ空間
を、プロセッサ500による命令処理のための特定の制
御データを記憶するために有益に使用する。V.42bi
sアルゴリズムにより、N5-1の最初の辞書入力(CCI
TT勧告では、ストリングを記憶するための最初の辞書
入力の指標番号として参照される)は、この処理におい
て決して使用されることの無い親及び兄弟フィールドを
有する。結果的にメモリ内において、圧縮処理に関連し
てデータを一時的に記憶するために有益に使用される特
定の使用可能なロケーションが獲得されることになる。
【0091】以降で明らかになるように、本発明による
プロセッサ500は、CCITTV.42bis勧告に準
拠し、特に当該勧告の付録Iで定義され、関連図面にお
いて示される符号化機構を実現する圧縮システムを提供
するために有用である。
【0092】本発明のプロセッサにより提供される特定
の利点を説明するために、CCITT V.42bis勧
告において定義される特定のプロシージャの具体例につ
いて述べることにする。このプロシージャは'文字処理
プロシージャ(process character procedure)'として
参照され、本出願の図5に再生されるCCITT勧告の
図I−3/V.42bisにおいて定義される。
【0093】この説明のために、次の仮定が成される。
文字がFLOW_CONTROL1_IN回路100から受信される。こ
のことはCNTL_1_INバス102の活動化により、プロセ
ッサ500に知らされる。結果的に、マスク・レジスタ
717により割込みが命令状態マシン600に対して生
成される。また説明の都合上、プロセッサ500がこの
時ある待機ループを実行しており、それにより割込みを
待機しているものと仮定する。割込み信号の受信によ
り、命令状態マシン600はスワップ・レジスタ715
の内容と、PCレジスタ713の内容とを交換する。従
ってプログラムがPCレジスタ713に記憶されるアド
レスに分岐する。この例では、文字処理プロシージャ・
ルーチンが実行される。以降で図5を参照しながらこの
ルーチンについて詳述する。
【0094】ここでまた、CCITT勧告の第10章で
定義されるパラメータN1乃至N7、C1乃至C3及び
P0乃至P2が、メモリ300のアドレス0乃至12の
ロケーションの親フィールドに記憶され、このロケーシ
ョンが本発明の好適な実施例では、圧縮機構により使用
されることのない使用可能なロケーションであると仮定
する。すなわち、N1はアドレス'0'のロケーションの
親フィールドに記憶され、N2はアドレス'1'のロケー
ションの親フィールドに記憶され、N3はアドレス'2'
のロケーションの親フィールドに記憶され、N7はアド
レス'6'のロケーションの親フィールドに記憶され、C
1はアドレス'7'のロケーションの親フィールドに記憶
され、C2はアドレス'8'のロケーションの親フィール
ドに記憶され、C3はアドレス'9'のロケーションの親
フィールドに記憶され、P0はアドレス'10'のロケー
ションの親フィールドに記憶され、P1はアドレス'1
1'のロケーションの親フィールドに記憶され、P2は
アドレス'12'のロケーションの親フィールドに記憶さ
れる。
【0095】透過/圧縮モデルを表すフラグがアドレ
ス'0'のメモリ・ロケーションの兄弟フィールドに記憶
される。値0は透過モデルを表し、値1は圧縮モードを
表す。本発明の好適な実施例では、勧告において"スト
リング"として参照される対象に対応するコードワード
が、REG4レジスタ724に記憶される。辞書内の最
後の入力に対応するコードワードが、REG5レジスタ
723に記憶される。処理の実行が図1のメモリ400
に配置されるプログラム命令により実行される。
【0096】文字処理プロシージャの実現について、図
6を参照しながら説明する。プロシージャがステップ1
で開始する。次にステップ2で、プロセッサ500がR
EG4レジスタ724(ストリングのコードワードを記
憶するために使用される)の内容により定義されるメモ
リのアドレスを読出す。メモリの内容がレジスタ705
乃至708のブロックに記憶される。次にステップ3
で、ストリングが子を有するかどうかが判断される。こ
れは現在S12Aレジスタ706に記憶される第2のフ
ィールド(すなわち子フィールド)が、'1'に等しいか
どうかをテストすることにより達成される。等しい場
合、処理はステップ4に移行し、考慮対象の子フィール
ドと受信文字との比較が実行される。子フィールドが受
信文字と異なる場合、処理はステップ5に移行し、スト
リングが兄弟を有するかどうかを判断する別のテストが
実行される。これは比較命令とCOMPREGレジスタ718
とにより、B12Aレジスタ707の内容をチェックす
ることにより達成される。ストリングが兄弟を有するこ
とが判明すると、命令状態マシン600はステップ6
で、この兄弟が受信文字であるかどうかをチェックす
る。否定の場合、処理はステップ7に移行し、(受信ス
トリングの)別の兄弟の存在がチェックされる。本発明
の好適な実施例では、これはステップ5にループして戻
ることにより達成される。
【0097】ステップ4またはステップ6のテストが肯
定の場合には、これは受信文字に関連するストリング
が、辞書に既に記憶されているストリングを形成するこ
とを意味し、処理はステップ8に移行する。ステップ8
では、後者のストリング(すなわち前者のストリングと
受信文字との組合わせにより形成される)が、辞書内で
作成される最後のストリングかどうかがテストされる。
肯定の場合、プロセッサ500はステップ9に移行し、
モードが透過かまたは圧縮かがテストされる。これはメ
モリのアドレス'0'を読出し、そのロケーションの兄弟
フィールドの値をテストすることにより達成される。こ
のテストは、ステップ3及びステップ5で実行されるテ
ストが否定の場合にも実行される。ステップ9のテスト
結果が肯定の場合、コードワード・サイズ・チェック・
ルーチンがステップ10で開始される。このプロシージ
ャはCCITT勧告の付録Iの図Cに関連して言及され
ているので、ここでは説明を省略する。このプロシージ
ャの読出しは本発明において、スワップ・レジスタ71
5に関連付けられるスワップ命令により達成されること
が理解されよう。これは読出しオペレーションを実行す
る非常に高速な方法を提供する。なぜなら、スワップ・
レジスタ715及びPCレジスタ713の両者の内容
が、一瞬にして交換されるからである。コードワード・
サイズ・チェック・ルーチンの完了時に、処理はステッ
プ11に移行し、コードワードがDATA_OUTレジスタ72
6により、FLOW_CONTROL_2_OUT回路200に伝送され
る。
【0098】次に、ストリング+文字の辞書への追加
(ADD_STRING+CHARACTER_to_DICTIONARY)プロシージャ
がステップ12で開始され、CCITT V.42bis
勧告で述べられるように、受信されたストリングと文字
とが辞書に追加される。この後者のプロシージャは、勧
告の付録Iの図iに示される。ステップ12は、ステッ
プ9で実行されるテストが透過モードの存在を示す場合
にも実行される。
【0099】ステップ12の完了後、実際のモードを決
定するために、ステップ9に類似のテストがステップ1
3で実行される。透過モードの場合には、ステップ14
で受信文字をFLOW_CONTROL_2_OUT回路200に送信す
る。ステップ14の後、或いはステップ13のテスト結
果がモードが透過的でないことを示すと、CCITT
V.42bis勧告の付録Iの図gに示されるエスケープ
文字プロシージャが実行される。
【0100】ステップ8で実行されるテストが、ストリ
ング及び受信文字が、辞書内で作成される最後のストリ
ングでないことを示すと、処理はステップ16に移行
し、受信文字がストリング変数に追加され、ストリング
が更新される。
【0101】表4は、図6に関連して述べた上述の流れ
図を実現する実際の命令のリストを示すものである。
【0102】
【表4】
【0103】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0104】(1)データ・ストリームの個々のシーケ
ンスをデータ圧縮する方法であって、複数の各ストリン
グに対応する指標またはコードワードを有する前記スト
リングのセットと、長さ1の全ての可能なストリングと
を含む辞書を初期化するステップを含むものにおいて、
前記辞書の各現ストリングが、当該現ストリングに対応
する現指標によりアドレス指定されるメモリ記憶装置に
記憶され、前記メモリ記憶装置に記憶されるデータが、
記憶される前記ストリングの最後の文字の前記指標を定
義する第1のフィールドと、前記現ストリングと追加の
文字とを含み、前記現ストリングの生成に年代順に続く
第1のストリング(子ストリング)の前記指標を定義す
る第2のフィールドと、前記現ストリングの生成後に辞
書内に現れ、最後の文字を除き、前記現ストリングと同
一の共通文字を有するストリング(兄弟ストリング)の
前記指標を定義する第3のフィールドと、前記現ストリ
ングの最後の文字を除く全ての文字を含むストリング
(親ストリング)の前記指標を定義する第4のフィール
ドとを含む、方法。 (2)前記第1、第2、第3及び第4のフィールドが、
それぞれ8、12、12及び12ビット・データであ
り、前記メモリ装置が44ビット・データを記憶する、
前記(1)記載の方法。 (3)外部バスにより、命令セットと前記辞書を表すデ
ータとを記憶する少なくとも1つのメモリ記憶装置に接
続され、請求項1記載の方法を実行するプロセッサであ
って、内部バスと、前記外部バスと前記内部バスとの間
に接続され、前記メモリ記憶装置から読出される前記辞
書を表すデータを記憶する4つのレジスタの第1のセッ
トであって、前記第1のレジスタ・セットが、前記メモ
リ記憶装置から読出されるデータの前記第1、前記第
2、前記第3及び前記第4のフィールドをそれぞれ記憶
する第1、第2、第3及び第4のラッチを含む、前記第
1のレジスタ・セットと、前記外部バスと前記内部バス
との間に接続され、前記メモリ記憶装置から読出される
前記辞書を表すデータを記憶する4つのレジスタの第2
のセットであって、前記第2のレジスタ・セットが、前
記メモリ記憶装置から抽出されるデータの前記第1、前
記第2、前記第3及び前記第4のフィールドをそれぞれ
記憶する第1、第2、第3及び第4のラッチを含む、前
記第2のレジスタ・セットと、前記少なくとも1つのメ
モリ記憶装置をアドレス指定する命令アドレスを記憶す
るプログラム・カウンタ・レジスタと、前記少なくとも
1つのメモリ記憶装置に記憶される命令を受信し、前記
プロセッサに必要とされる制御信号を生成する処理ユニ
ットとを含む、プロセッサ。 (4)スワップ制御信号を前記処理ユニットから受信す
るスワップ・レジスタを含み、前記スワップ制御信号
が、前記スワップ・レジスタと前記プログラム・カウン
タ・レジスタの内容の相互交換を生じる、前記(3)記
載のプロセッサ。 (5)前記内部バスにより伝播されるデータと前記比較
レジスタの内容との比較を実行する比較レジスタと比較
器とを含み、前記比較器が比較オペレーション及び前記
比較を実行するために使用されるビット数をそれぞれ制
御する第1(COMP)及び第2(SE_LE)の制御信号を受
信する、前記(4)記載のプロセッサ。 (6)DTEデータ・フロー制御などのデータ・フロー
制御を表す外部データ・フロー制御信号を受信するマス
ク・レジスタを含み、前記マスク・レジスタが前記処理
ユニットにより制御され、前記外部データ・フロー制御
信号(CNTL_1_IN、CNTL_2_IN)のレベルの変化を検出す
ると、割込み信号を生成し、前記処理ユニットに伝送す
る、前記(5)記載のプロセッサ。 (7)REGLレジスタに接続されるブール回路を含
み、前記ブール回路が前記処理ユニットから、前記RE
GLレジスタと前記内部バスの内容の論理積または論理
和演算を実行する制御信号を受信する、前記(6)記載
のプロセッサ。 (8)前記処理ユニットが、前記外部バスから受信され
る転送(MOVE)命令を解読し、それに従い適切な制御信
号を生成することにより、あるレジスタの内容を別のレ
ジスタへ転送する手段を含む、前記(7)記載のプロセ
ッサ。 (9)前記処理ユニットが、前記外部バスから受信され
る比較(COMPARE)命令を解読し、それに従い適切な制
御信号を生成することにより、あるレジスタの内容と前
記比較レジスタの内容との比較を実行する手段を含む、
前記(7)記載のプロセッサ。 (10)前記処理ユニットが、前記外部バスから受信さ
れる加算(ADD)命令を解読し、それに従い適切な制御
信号を生成することにより、ADREGレジスタの内容
と、前記加算命令内で定義される別のレジスタの内容と
の算術加算を実行する手段を含む、前記(7)記載のプ
ロセッサ。 (11)前記処理ユニットが、前記外部バスから受信さ
れる間接ジャンプ(INDIRECT JUMP)命令を解読し、そ
れに従い適切な制御信号を生成することにより、前記間
接ジャンプ命令により定義されるレジスタの内容を前記
プログラム・カウンタ・レジスタに転送する手段を含
む、前記(7)記載のプロセッサ。 (12)前記処理ユニットが、前記外部バスから受信さ
れるILOAD命令を解読し、それに従い適切な制御信
号を生成することにより、REG1レジスタに前記IL
OAD命令により定義される第1のレジスタの最上位6
ビット、及び前記ILOAD命令により定義される第2
のレジスタの最下位6ビットをロードする手段を含む、
前記(7)記載のプロセッサ。 (13)前記(3)または(12)記載のプロセッサを
含む通信装置。
【0105】
【発明の効果】以上説明したように、本発明によれば、
記憶効率及び伝送効率を向上させる効率的なデータ圧縮
方法及び装置を提供することができる。
【図面の簡単な説明】
【図1】本発明によるプロセッサの一般的アーキテクチ
ャを示す図である。
【図2】図3及び図4の構成を示す図である。
【図3】本発明によるプロセッサの構造を示す図であ
る。
【図4】本発明によるプロセッサの構造を示す図であ
る。
【図5】CCITT V.42bis勧告の図I−3/
V.42bisで定義される文字処理プロシージャを示す
図である。
【図6】本発明による文字処理プロシージャの実現を示
す流れ図である。
【図7】コード化ストリングのツリーを示す図である。
【符号の説明】
002 MASTER_RESET(マスタ・リセット)制御リード 44 バス 100 フロー制御回路 101 DATA_IN(データ入力)バス 102 CNTL_1_IN(制御1入力)制御バス 200 フロー回路 300、400 メモリ回路 301 44ビット・データ・バス 302 DIC_ADDRESS(辞書アドレス)アドレス・バス 401 16ビット・データ・バス 402 CO_ADDRESSアドレス・バス 403 OE出力許可制御リード 500 プロセッサ 501 WRITE_DATA(データ書込み)制御リード 502 READ_DATA(データ読出し)制御リード 503 CNTL_1_OUT(制御1出力)制御バス 504 DATA_OUTバス 505 CNTL_2_OUT(制御2出力)制御バス 506 READ_CODEW(コードワード読出し)制御リード 507 WRITE_CODEW(コードワード書込み)制御リー
ド 508 CNTL_2_IN(制御2入力)制御バス 509、510、511 リード 600 命令状態マシン 650 12ビット内部データ・バス 701 レジスタ 702 第2のレジスタ 703 第3のレジスタ 704 第4のレジスタ 705、706、707、708 レジスタ 710 DATA_INレジスタ 713 プログラム・カウンタ(PC)・レジスタ 715 SWAPレジスタ 717 マスク・レジスタ 725 OUT_REGレジスタ 726 DATAOUT(データ出力)レジスタ 727 REGLレジスタ 729 カウンタ・レジスタ 730 SREGシフト・レジスタ 830 ブール回路 840、850 ORゲート
フロントページの続き (72)発明者 フェスチ・ジャキュース フランス、セント・ローレント・デュ・ バル 06700、アベニュー・ポール・セ ザンヌ 66、バット ビィ、レ・ロー ズ・ガーデン (72)発明者 ミッシェル・パトリック フランス、ラ・ゴーデ 06610、シェミ ン・フォント・デ・リブ 621 (72)発明者 レ・ペネク・ジーン−フラン−オイス フランス、ニース 06100、ルート・ デ・ガイラント、シェミン・デ・ラ・セ レーナ 11 (56)参考文献 特開 平4−123619(JP,A) 米国特許4464650(US,A) 米国特許4558302(US,A) (58)調査した分野(Int.Cl.7,DB名) H03M 7/40 G06F 5/00

Claims (12)

    (57)【特許請求の範囲】
  1. 【請求項1】データ・ストリームの個々のシーケンスを
    データ圧縮する方法であって、複数の各ストリングに対
    応する指標またはコードワードを有する前記ストリング
    のセットと、長さ1の全ての可能なストリングとを含む
    辞書を初期化するステップを含むものにおいて、 前記辞書の各現ストリングが、当該現ストリングに対応
    する現指標によりアドレス指定されるメモリ記憶装置に
    記憶され、 前記メモリ記憶装置に記憶されるデータが、 記憶される前記ストリングの最後の文字の前記指標を定
    義する第1のフィールドと、 前記現ストリングと追加の文字とを含み、前記現ストリ
    ングの生成に年代順に続く第1のストリング(子ストリ
    ング)の前記指標を定義する第2のフィールドと、 前記現ストリングの生成後に辞書内に現れ、最後の文字
    を除き、前記現ストリングと同一の共通文字を有するス
    トリング(兄弟ストリング)の前記指標を定義する第3
    のフィールドと、 前記現ストリングの最後の文字を除く全ての文字を含む
    ストリング(親ストリング)の前記指標を定義する第4
    のフィールドとを含む、方法。
  2. 【請求項2】前記第1、第2、第3及び第4のフィール
    ドが、それぞれ8、12、12及び12ビット・データ
    であり、前記メモリ装置が44ビット・データを記憶す
    る、請求項1記載の方法。
  3. 【請求項3】外部バスにより、命令セットと前記辞書を
    表すデータとを記憶する少なくとも1つのメモリ記憶装
    置に接続され、請求項1記載の方法を実行するプロセッ
    サであって、 内部バスと、 前記外部バスと前記内部バスとの間に接続され、前記メ
    モリ記憶装置から読出される前記辞書を表すデータを記
    憶する4つのレジスタの第1のセットであって、前記第
    1のレジスタ・セットが、前記メモリ記憶装置から読出
    されるデータの前記第1、前記第2、前記第3及び前記
    第4のフィールドをそれぞれ記憶する第1、第2、第3
    及び第4のラッチを含む、前記第1のレジスタ・セット
    と、 前記外部バスと前記内部バスとの間に接続され、前記メ
    モリ記憶装置から読出される前記辞書を表すデータを記
    憶する4つのレジスタの第2のセットであって、前記第
    2のレジスタ・セットが、前記メモリ記憶装置から抽出
    されるデータの前記第1、前記第2、前記第3及び前記
    第4のフィールドをそれぞれ記憶する第1、第2、第3
    及び第4のラッチを含む、前記第2のレジスタ・セット
    と、 前記少なくとも1つのメモリ記憶装置をアドレス指定す
    る命令アドレスを記憶するプログラム・カウンタ・レジ
    スタと、 前記少なくとも1つのメモリ記憶装置に記憶される命令
    を受信し、前記プロセッサに必要とされる制御信号を生
    成する処理ユニットとを含む、プロセッサ。
  4. 【請求項4】スワップ制御信号を前記処理ユニットから
    受信するスワップ・レジスタを含み、前記スワップ制御
    信号が、前記スワップ・レジスタと前記プログラム・カ
    ウンタ・レジスタの内容の相互交換を生じる、請求項3
    記載のプロセッサ。
  5. 【請求項5】前記内部バスにより伝播されるデータと前
    記比較レジスタの内容との比較を実行する比較レジスタ
    と比較器とを含み、前記比較器が比較オペレーション及
    び前記比較を実行するために使用されるビット数をそれ
    ぞれ制御する第1(COMP)及び第2(SE_LE)の制御信
    号を受信する、請求項4記載のプロセッサ。
  6. 【請求項6】DTEデータ・フロー制御などのデータ・
    フロー制御を表す外部データ・フロー制御信号を受信す
    るマスク・レジスタを含み、前記マスク・レジスタが前
    記処理ユニットにより制御され、前記外部データ・フロ
    ー制御信号(CNTL_1_IN、CNTL_2_IN)のレベルの変化を
    検出すると、割込み信号を生成し、前記処理ユニットに
    伝送する、請求項5記載のプロセッサ。
  7. 【請求項7】REGLレジスタに接続されるブール回路
    を含み、前記ブール回路が前記処理ユニットから、前記
    REGLレジスタと前記内部バスの内容の論理積または
    論理和演算を実行する制御信号を受信する、請求項6記
    載のプロセッサ。
  8. 【請求項8】前記処理ユニットが、前記外部バスから受
    信される転送(MOVE)命令を解読し、それに従い適切な
    制御信号を生成することにより、あるレジスタの内容を
    別のレジスタへ転送する手段を含む、請求項7記載のプ
    ロセッサ。
  9. 【請求項9】前記処理ユニットが、前記外部バスから受
    信される比較(COMPARE)命令を解読し、それに従い適
    切な制御信号を生成することにより、あるレジスタの内
    容と前記比較レジスタの内容との比較を実行する手段を
    含む、請求項7記載のプロセッサ。
  10. 【請求項10】前記処理ユニットが、前記外部バスから
    受信される加算(ADD)命令を解読し、それに従い適切
    な制御信号を生成することにより、ADREGレジスタ
    の内容と、前記加算命令内で定義される別のレジスタの
    内容との算術加算を実行する手段を含む、請求項7記載
    のプロセッサ。
  11. 【請求項11】前記処理ユニットが、前記外部バスから
    受信される間接ジャンプ(INDIRECT JUMP)命令を解読
    し、それに従い適切な制御信号を生成することにより、
    前記間接ジャンプ命令により定義されるレジスタの内容
    を前記プログラム・カウンタ・レジスタに転送する手段
    を含む、請求項7記載のプロセッサ。
  12. 【請求項12】前記処理ユニットが、前記外部バスから
    受信されるILOAD命令を解読し、それに従い適切な
    制御信号を生成することにより、REG1レジスタに前
    記ILOAD命令により定義される第1のレジスタの最
    上位6ビット、及び前記ILOAD命令により定義され
    る第2のレジスタの最下位6ビットをロードする手段を
    含む、請求項7記載のプロセッサ。
JP31893495A 1994-12-20 1995-12-07 データ・ストリームの個々のストリング・シーケンスのデータ圧縮方法及びその実行プロセッサ Expired - Fee Related JP3149345B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP94480176A EP0718980A1 (en) 1994-12-20 1994-12-20 Data compression method of individual sequences of strings of a data stream based on a dictionary and device for performing the same
FR94480176.0 1994-12-20

Publications (2)

Publication Number Publication Date
JPH08314690A JPH08314690A (ja) 1996-11-29
JP3149345B2 true JP3149345B2 (ja) 2001-03-26

Family

ID=8218146

Family Applications (1)

Application Number Title Priority Date Filing Date
JP31893495A Expired - Fee Related JP3149345B2 (ja) 1994-12-20 1995-12-07 データ・ストリームの個々のストリング・シーケンスのデータ圧縮方法及びその実行プロセッサ

Country Status (3)

Country Link
US (1) US5701468A (ja)
EP (1) EP0718980A1 (ja)
JP (1) JP3149345B2 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6415061B1 (en) 1997-06-13 2002-07-02 Cisco Technology, Inc. Method of updating dictionaries in a data transmission system using data compression
SE510000C2 (sv) * 1997-07-21 1999-03-29 Ericsson Telefon Ab L M Struktur vid databas
JP3541930B2 (ja) * 1998-08-13 2004-07-14 富士通株式会社 符号化装置及び復号化装置
US6697525B1 (en) 1998-10-02 2004-02-24 Parthusceva Ltd. System method and apparatus for performing a transform on a digital image
US6341346B1 (en) * 1999-02-05 2002-01-22 Cisco Technology, Inc. Method for comparison between a pattern sequence and a variable length key
US6611213B1 (en) 1999-03-22 2003-08-26 Lucent Technologies Inc. Method and apparatus for data compression using fingerprinting
US6470347B1 (en) 1999-09-01 2002-10-22 International Business Machines Corporation Method, system, program, and data structure for a dense array storing character strings
IL132859A (en) 1999-11-10 2008-07-08 Nds Ltd Data stream processing system
US7203834B1 (en) * 1999-12-02 2007-04-10 International Business Machines Corporation Method of updating encryption keys in a data communication system
US6236341B1 (en) 2000-03-16 2001-05-22 Lucent Technologies Inc. Method and apparatus for data compression of network packets employing per-packet hash tables
US6388584B1 (en) 2000-03-16 2002-05-14 Lucent Technologies Inc. Method and apparatus for data compression of network packets
US6868186B1 (en) 2000-07-13 2005-03-15 Ceva D.S.P. Ltd. Visual lossless image compression
US7451235B2 (en) * 2000-10-11 2008-11-11 Broadcom Corporation Dynamic delta encoding for cable modem header suppression
GB0117926D0 (en) 2001-07-23 2001-09-12 Nds Ltd Method for random access to encrypted content
US6961011B2 (en) * 2001-08-27 2005-11-01 Freescale Semiconductor, Inc. Data compression system
US7667630B2 (en) * 2004-12-07 2010-02-23 Nippon Telegraph And Telephone Corporation Information compression-encoding device, its decoding device, method thereof, program thereof, and recording medium storing the program
US20070070067A1 (en) * 2005-04-29 2007-03-29 Modviz, Inc. Scene splitting for perspective presentations
WO2008047246A2 (en) * 2006-09-29 2008-04-24 Peter Salemink Systems and methods for managing information
US8456331B2 (en) * 2011-04-15 2013-06-04 Cavium, Inc. System and method of compression and decompression
JP2022047426A (ja) 2020-09-11 2022-03-24 キオクシア株式会社 メモリシステム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4464650A (en) * 1981-08-10 1984-08-07 Sperry Corporation Apparatus and method for compressing data signals and restoring the compressed data signals
JPS59231683A (ja) * 1983-06-01 1984-12-26 インタ−ナシヨナル ビジネス マシ−ンズ コ−ポレ−シヨン データ圧縮方法
JPH0644264B2 (ja) * 1983-12-23 1994-06-08 シャープ株式会社 単語記憶方式
US4535320A (en) * 1984-06-22 1985-08-13 Digital Recording Research Limited Partnership Method and apparatus for digital Huffman decoding
GB8815978D0 (en) * 1988-07-05 1988-08-10 British Telecomm Method & apparatus for encoding decoding & transmitting data in compressed form

Also Published As

Publication number Publication date
EP0718980A1 (en) 1996-06-26
US5701468A (en) 1997-12-23
JPH08314690A (ja) 1996-11-29

Similar Documents

Publication Publication Date Title
JP3149345B2 (ja) データ・ストリームの個々のストリング・シーケンスのデータ圧縮方法及びその実行プロセッサ
US5594919A (en) Method and system for reordering bytes in a data stream
US9201846B2 (en) Round for reround mode in a decimal floating point instruction
US5805086A (en) Method and system for compressing data that facilitates high-speed data decompression
US5778255A (en) Method and system in a data processing system for decompressing multiple compressed bytes in a single machine cycle
JPH09512651A (ja) 複数命令セットのマッピング
US20020091905A1 (en) Parallel compression and decompression system and method having multiple parallel compression and decompression engines
US20020101367A1 (en) System and method for generating optimally compressed data from a plurality of data compression/decompression engines implementing different data compression algorithms
US9274802B2 (en) Data compression and decompression using SIMD instructions
JPH096609A (ja) プログラム実行装置およびプログラム変換方法
JPH06324841A (ja) テキストを圧縮する装置と方法、及び連想記憶装置
JPH07312078A (ja) Ramベースのfifoメモリを直列から並列へおよび並列から直列へ変換する構造
JPS6261178B2 (ja)
JP5709775B2 (ja) 選択演算を実行するプロセッサ
TWI273779B (en) Method and apparatus for optimized lossless compression using a plurality of coders
EP0485081B1 (en) Data compression dictionary access minimization logic
JPH05183443A (ja) 符号変換方法
EP0936537B1 (en) Cyclic redundancy check in a computer system
JP2008199610A (ja) 画像交換フォーマット(gif)符号化データを復元する方法、画像交換フォーマット(gif)符号化データを復元するためのコンピュータ・プロセッサ、画像交換フォーマット(gif)符号化データを表示する装置、および符号化データを復元する方法
JPH05216623A (ja) デジタルリミットチェックシステム
JP2695790B2 (ja) イメージ処理システム
JP3043861B2 (ja) データ処理装置
JPH09185882A (ja) 入出力データの大きさを異にする先入れ先出しメモリ装置及びその方法
US7079054B2 (en) V.42bis standalone hardware accelerator and architecture of construction
Storer Parallel algorithms for on-line dynamic data compression

Legal Events

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