JP3585800B2 - 情報処理装置 - Google Patents

情報処理装置 Download PDF

Info

Publication number
JP3585800B2
JP3585800B2 JP2000002353A JP2000002353A JP3585800B2 JP 3585800 B2 JP3585800 B2 JP 3585800B2 JP 2000002353 A JP2000002353 A JP 2000002353A JP 2000002353 A JP2000002353 A JP 2000002353A JP 3585800 B2 JP3585800 B2 JP 3585800B2
Authority
JP
Japan
Prior art keywords
instruction
instruction sequence
decompression
compression
detected
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
JP2000002353A
Other languages
English (en)
Other versions
JP2000267848A (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 JP2000002353A priority Critical patent/JP3585800B2/ja
Priority to US09/482,262 priority patent/US6587939B1/en
Publication of JP2000267848A publication Critical patent/JP2000267848A/ja
Application granted granted Critical
Publication of JP3585800B2 publication Critical patent/JP3585800B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/3017Runtime instruction translation, e.g. macros
    • G06F9/30178Runtime instruction translation, e.g. macros of compressed or encrypted instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/3017Runtime instruction translation, e.g. macros
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Devices For Executing Special Programs (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、実行プログラム内の命令コードに応じて圧縮命令を伸長する命令伸長部が最適化された情報処理装置に関する。
【0002】
【従来の技術】
プロセッサ組み込み機器においては、プロセッサの命令メモリサイズは、機器のコストを左右する。命令メモリサイズが少ないほどコスト的に有利になる。そこで、命令メモリサイズを小さくするための方法の一つに、命令圧縮及び伸長の技術がある。
【0003】
圧縮されていない命令の場合、アドレスレジスタにより指定されてメモリ部から読み出された命令は、命令レジスタに保持された後、マルチプレクサを介して命令デコード部に与えられてデコードされる。
【0004】
一方、圧縮されている命令の場合、メモリ部から読み出されて命令レジスタに保持された圧縮命令は、命令伸長部により伸長された後、マルチプレクサを介して命令デコード部に与えられてデコードされる。
【0005】
文献「“Intel Architecture Optimization Manual”,1997, Intel Corporation 」によれば、この文献に記載されているプロセッサでは、命令メモリに格納されている“macro−instruction”が一般に複数の“micro−ops”に伸長された上で実行されるとある。また、文献「“TMS320C3x User’s Guide”,1997, TEXAS INSTRUMENTS」によれば、例えば“MPYI3||ADDIY3”という命令は、レジスタフィールドで指定できるレジスタ番号の範囲を制約するなど使い方を制約することで、“MPYI3”という命令と“ADDIY3” という2つの命令が圧縮された形で定義されている。
【0006】
【発明が解決しようとする課題】
このような圧縮命令は、そもそも多くのアプリケーションの命令コードにしばしば出現する連続した命令列を圧縮したものであるといえる。しかし実際には、アプリケーションは多種多様であり、あるプロセッサで定義された圧縮命令群は、特定のアプリケーション群に対しては有効であっても、別のアプリケーション群に対しては有効ではない場合も多かった。
【0007】
そこで、アプリケーション毎に圧縮命令が最適化されたプロセッサを用いることが考えられるが、アプリケーションによって使うプロセッサを変更するのでは効率が極めて悪い。それは、プロセッサの変更の度にプロセッサの基本アーキテクチャや開発環境の理解を必要とするからである。一方、ユーザの必要とする圧縮命令をサポートしているプロセッサがないといった場合も多い。これは、ある程度大きな出荷数を見込めるアプリケーションに適した圧縮命令しかサポートしていないプロセッサが多いためである。
【0008】
以上説明したように、従来の情報処理装置にあって、圧縮命令はそれぞれの装置毎に固定的に決められていた。そのため、この装置によって実行されるあるアプリケーションプログラムにおいては、定義された圧縮命令は有効に作用するが、別なアプリケーションプログラムにあっては定義された圧縮命令は有効に機能しない場合があった。このような場合には、圧縮命令を使用した十分な効果が得られないといった不具合を招いていた。
【0009】
そこでこの発明の目的は、実行プログラム中の命令数の削減を可能とし、実行プログラムの記憶領域の小型化を達成する情報処理装置を提供することにある。
【0010】
【課題を解決するための手段】
本発明の特徴は、情報処理装置であって、圧縮命令及び非圧縮命令を保持することが可能な命令レジスタと、前記命令レジスタから圧縮命令を受け取り、伸長して複数の伸長命令からなる伸長命令列に戻し、前記複数の伸長命令を少なくとも1クロックサイクルずつずらして順次出力することが可能な命令伸長手段と、前記命令レジスタから前記圧縮命令を受け取り、前記命令伸長手段から前記複数の伸長命令を受け取った場合に、前記圧縮命令ではなく前記複数の伸長命令を出力することが可能で、かつ前記命令レジスタから前記非圧縮命令を受け取った場合は、この非圧縮命令を出力可能な命令選択手段と、定義された圧縮命令が前記命令伸長手段により伸長されるように、圧縮伸長対応表に基づいて前記命令伸長手段を再構成する再構成手段と、を有することにある。
【0011】
この発明によれば、プログラム毎に命令伸長手段を再構成するようにしたので、各プログラムの内容に応じて命令数を削減することが可能となり、プログラムを格納する記憶領域の小型化を達成することができる。
【0012】
【発明の実施の形態】
以下、図面を用いてこの発明の実施形態を説明する。
【0013】
(第1実施形態)
まず、図1〜8に基づいて第1実施形態を説明する。
【0014】
図1は第1の実施形態に係る情報処理装置の構成を示す図である。図1において、この実施形態の情報処理装置は、プロセッサ151ならびに命令伸長部再構成手段9を備える。プロセッサ151は、アドレスレジスタ100、命令レジスタ102、マルチプレクサ104、命令キャッシュ105、命令デコード部12と、命令デコード部12でデコードされた命令を実行する命令実行部13ならびに命令伸長部14を含む。
【0015】
命令伸長部再構成手段9には、圧縮伸長対応表7が入力される。命令伸長部再構成手段9は、圧縮伸長対応表7に基づいて、命令伸長部14を再構成する。
【0016】
図2に圧縮伸長対応表7の一例を示す。
【0017】
メインメモリ101には、圧縮済み実行オブジェクト110が入力される。
【0018】
図3に、圧縮済み実行オブジェクト110の内容をアセンブラ言語で表した場合の一例を示す。
【0019】
命令伸長部14は、圧縮命令を伸長して元の伸長命令列に変換するものであり、外部から変更可能に構成されており、例えば、プロセッサ151が物理的に実装されたものである場合には、Field Programmable Gate Array (FPGA)やProgrammable Logic Arrayなどで構成され、あるいはプロセッサ151が各種Hardware Description Langage (HDL)、各種CAD用記述言語やNetlist、及びそれらに対する制約条件、各種設定ファイルで定義されている場合には、命令伸長部14の構成(記述)そのものが変更可能な形で定義されていると捉えることができる。
【0020】
図4及び図5に、命令伸長部14をHDLにより定義する場合の一例を示す。同図は、Verilogという一般的なHDL記述による例である。また、同図は、図2に示す2命令で1組の圧縮命令を2つ定義できる場合の例である。
【0021】
図6に示す内容のファイルを作成し、そのファイルの名前を図4の3行目でインクルードしている”compress_expand_table”として、図4及び図5と一緒に合成すれば、命令伸長部14が構成される。
【0022】
命令伸長部再構成手段9は、図4及び図5に示すファイルが参照する図6に示すファイルを書き換えることにより命令伸長部14を再構成することができる。
【0023】
また、図4及び図5に示す記述そのものを書き換えることにより命令伸長部14を再構成しても良い。つまり、プロセッサ151全体の構成を規定しているHDL記述の中で、図4及び図5に示す”module expander”が参照されているならば、参照されている”module expander”を命令伸長部14とみなし、参照されている”module expander”全部を生成することを命令伸長部14の再構成とみなすことができる。
【0024】
次に、命令伸長部14をFPGAにより構成する場合について説明する。
【0025】
FPGAは、内部にセルを複数持っていて、各セルは,複数のF/F(フリップフロップ)と、ロジックの代わりになるスイッチの集まりにより構成されている。そして、碁盤目上にならんだセルとセルの間(碁盤の黒い線の部分)に配線が通っていて、それとセルがどう接続するかに関して、スイッチが付加されている。これらの構成をどう決めるかについての情報を、パケットの形で流し込むと、電源が供給されている限り、その状態を保持する。つまり、あるパケットは、あるセル内の(ロジックになる)スイッチの状態を決め、あるパケットは、あるセルとある配線との接続スイッチの状態を決め、全部決め終わるとそれを保持する。
【0026】
本発明では、たとえば、上記parameter記述部分を実現するFPGA部分を、同一プロセッサ内に混載し、且つ、パケットを流し込む端子を、チップのI/Oとして確保することで、実現することができる。
【0027】
次に圧縮命令の伸長を、図7及び図8に基づいて説明する。
【0028】
図7は、第1実施形態におけるアドレスレジスタ100と、メインメモリ101と、命令レジスタ102と、マルチプレクサ104と、命令キャッシュ105と、命令デコード部12、命令実行部13と、命令伸長部14との接続関係を示す図である。
【0029】
図7において、アドレスレジスタ100により指定されて命令キャッシュ105又はメインメモリ101から読み出される命令は、非圧縮命令又は圧縮命令のいずれかである。非圧縮命令が読み出された場合、その非圧縮命令は、命令レジスタ102に保持された後、マルチプレクサ104を介して命令デコード部12に与えられてデコードされる。一方、圧縮命令が読み出された場合、その圧縮命令は、命令レジスタ102に保持され、命令伸長部14により伸長された後、マルチプレクサ104を介して命令デコード部12に与えられてデコードされる。
【0030】
図8は、非圧縮命令と圧縮命令を読み込み、これらをデコードする際の動作タイミングチャートである。
図8に示すように、命令伸長部14は、例えば圧縮命令Bを伸長して命令b1,b2,b3を出力するとともに、命令デコード部12へ各クロック信号で入力される命令が、図8に示すように命令A,b1,b2,b3という順序になるように、圧縮命令Bと伸長命令b1をマルチプレクサ104で選択するための選択制御信号を生成し、また命令b1,b2,b3の命令を命令デコード部12へ供給した後に、圧縮命令Bの後の非圧縮命令Cが供給されるようアドレスレジスタ100の値を保持する保持信号を生成する。
【0031】
圧縮命令Bを被圧縮命令b1,b2,b3に伸長し、図8に示すように順次供給するには、命令b1はそのまま出力し、命令b2は1つのフリップフロップを経由後に出力し、命令b3は2つのフリップフロップを経由後に出力するように制御される。
【0032】
上記の如く第1実施形態においては、圧縮伸長対応表7に基づいて命令伸長部再構成手段9が命令伸長部14を再構成し、再構成された命令伸長部14が圧縮済み実行オブジェクト110中の圧縮命令を伸長し、伸長された命令列が命令デコード部12でデコードされ、命令実行部13で実行される。
【0033】
そして、圧縮済み実行オブジェクト110が、別の新たな圧縮済み実行オブジェクトに交換されたら、その新たな圧縮済み実行オブジェクト中に存在する新たな圧縮命令とその新たな圧縮命令に対応する伸長命令との関係を規定した新たな圧縮伸長対応表に基づいて命令伸長部再構成手段9が、命令伸長部14を再構成する。そして、再構成された命令伸長部14が新たな圧縮済み実行オブジェクト中の新たな圧縮命令を伸長し、伸長された命令列が命令デコード部12でデコードされ、命令実行部13で実行される。
【0034】
このように第1実施形態においては、実行プログラム毎に命令伸長部が最適に構成されるので、それぞれの実行プログラムの内容に応じて命令数を削減することが可能となり、これにより実行プログラムを格納するメインメモリ101の容量を低減して小型化することができる。
【0035】
なお、第1実施形態においては、プロセッサの外のメインメモリ101から、命令キャッシュ105及び命令レジスタ102を経て、命令伸長部14へ圧縮命令が入力されるが、下記の様な態様でも良い。
【0036】
プロセッサの外のメインメモリから、プロセッサの中の命令レジスタを経て、命令伸長部に入力する。
【0037】
プロセッサの外のROMから、プロセッサの中の命令レジスタを経て、命令伸長部に入力する。
【0038】
プロセッサの外のメインメモリから、プロセッサの中の命令用SRAM及び命令レジスタを経て、命令伸長部に入力する。
【0039】
プロセッサの外のROMから、プロセッサの中の命令キャッシュ及び命令レジスタを経て、命令伸長部に入力する。
【0040】
プロセッサの外のROMから、プロセッサの中の命令用SRAM及び命令レジスタを経て、命令伸長部に入力する。
【0041】
プロセッサの中のROMから、命令レジスタを経て、命令伸長部に入力する。
【0042】
通常、命令用SRAMは、アドレスの領域を2つのバンクに分け、メインメモリからSRAMバンク1へのプログラムのダイレクトメモリアクセス転送と、既に転送されているSRAMバンク2から命令レジスタを通して命令伸長部への命令の供給とを同時に行う。SRAMバンク2の命令を使い切ると、バンクが切り替わって、つまりダイレクトメモリアクセスや命令レジスタのアクセスするアドレス領域が変わって、同様の動作が行われる。
【0043】
(第2実施形態)
次に、図9に基づいて第2実施形態を説明する。
【0044】
同図に示すように、第2実施形態が第1実施形態と相違する点は、命令実行部22が、図1に示す命令伸長部再構成手段9の機能を兼ね備え、圧縮伸長対応表7を参照して命令伸長部14を再構成するようにしたことであり、他は第1実施形態と同様である。
【0045】
命令実行部22が、圧縮伸長対応表7を参照する方法としては、1)圧縮伸長対応表7の全てあるいは一部をオペランドとして持つ命令を定義して、それら定義され更に圧縮済み実行オブジェクト110に埋め込まれた、一つまたは複数の命令の組で命令伸長部再構成手段9を提供する、図9に示す方法や、2)メインメモリ101やプロセッサ内のデータ用SRAM上に圧縮伸長対応表7を置いて、命令実行部22が、load命令などを用いてこれを参照する方法や、3)命令実行部22自体に、圧縮伸長対応表7を内蔵してしまう方法などがある。
【0046】
命令実行部22自体に、圧縮伸長対応表7を内蔵してしまうには、命令伸長部14を再構成するのと同様の手段を用いる。
【0047】
このような第2実施形態においても、第1実施形態と同様の効果が得られる。
【0048】
(第3実施形態)
次に、図10〜13に基づいて第3実施形態を説明する。
【0049】
図10は、第3実施形態の全体構成を示す図である。第3実施形態は、命令頻度検出手段401及び圧縮命令定義手段601を用いて圧縮伸長対応表7を作成し、オブジェクト変換手段801を用いて圧縮済み実行オブジェクト111を作成する点が、第1実施形態と相違する。
図11は、アセンブラソースファイル203及び命令列頻度データ501の内容を示す図である。同図に基づいて、命令列頻度検出手段401を説明する。
【0050】
命令列頻度検出手段401は、アセンブラソースファイル203の命令列を2命令ごとに比較して命令列の出現頻度を求め、命令列頻度データ501を得る。
【0051】
例えば、アセンブラソースファイル203の
1行目の命令
sll r2, r2, 16
と、2行目の命令
lw r3, 0(r2)
から命令列
sll r2, r2, 16
lw r3, 0(2)
の頻度=1とカウントする。
【0052】
同様に、2行目の命令
lw r3, 0(r2)
と、3行目の命令
lw r3, 0(5)
から命令列
lw r3, 0(r2)
lw r3, 0(5)
の頻度=1とカウントする。同様にして、3行目と4行目、4行目と5行目についても命令列の頻度をカウントする。
【0053】
そして、5行目の命令
sll r2, r2, 16
は1行目の命令と同じであり、6行目の命令
lw r3, 0(r2)
も2行目の命令と同じであるから、5行目と6行目の命令列は、1行目と2行目の命令列と同じである。よって命令列
sll r2, r2, 16
lw r3, 0(2)
の頻度=2とカウントする。
【0054】
このようにして、命令列頻度データ501を作成する。そして、命令列
sll r2, r2, 16
lw r3, 0(r2)
に対して、compless_inst_0 r2, r3という圧縮命令名を付け、圧縮伸長対応表7を作成する。
【0055】
図12に圧縮伸長対応表7の一例を示す。この圧縮伸長対応表7に基づいてアセンブラソースファイルを圧縮して圧縮済みアセンブラソースファイルを作成する。図13に圧縮済みアセンブラソースファイルの一例を示す。
【0056】
次に、図14〜17に基づいて、命令列頻度検出手段401の変形例について説明する。
【0057】
命令列頻度検出手段401は、被検出伸長命令列に含まれる命令のフィールド値を実行プログラムの実行結果が変わらないという条件の下で変更し、被検出伸長命令列が被検出伸長命令列の検出以前に既に検出された既検出伸長命令列と一致する場合は、被検出伸長命令列を既検出伸長命令列と同じ伸長命令列として頻度を求めるようにしてもよい。
【0058】
図14に基づいて具体的に説明する。アセンブラソースファイル20の1行目と2行目を比較する際、1行目に現れた2つのレジスタr2と、2行目に現れた1つのレジスタr2とをいずれもrAとし、2行目に現れたレジスタr3をrBとする。そして、1行目の命令
sll r2, r2,16
と、2行目の命令
lw r3, 0(r2)
の命令列
sll rA, rA, 16
lw rB, 0(rA)
を、頻度=1とカウントする。
【0059】
同様に、5行目の命令と6行目の命令も、命令列
sll rA, rA, 16
lw rB, 0(rA)
となるので、この命令列の頻度=2とカウントする。
【0060】
さらに、8行目のレジスタr9と、9行目のレジスタr9とをいずれもrAとし、9行目のレジスタr3をrBとすると、8行目の命令
sll r9, r9, 16
と、9行目の命令
lw r3, 0(r9)
の命令列も
sll rA, rA, 16
lw rB, 0(rA)
となるので、頻度=3とカウントする。
【0061】
また、6行目の命令
lw r3, 0(r2)
と、7行目の命令
addu r3, r3, r2
の命令列、及び
9行目の命令
lw r3, 0(r9)
と、10行目の命令
addu r3, r3, r9
の命令列は、ともに
lw rA, 0(rB)
addu rA, rA, rB
となるので、頻度=2とカウントする。
【0062】
また、11行目の命令
mult r4, r7, r4
と、12行目の命令
sra r4, r4, 15
の命令列、及び
15行目の命令
mult r3, r7, r3
と、16行目の命令
sra r3, r3, 15
の命令列は、ともに
mult rA, rB, rA
sra rA, rA, 15
となるので、頻度=2とカウントする。その他の命令列は頻度=1である。このようにして図14の命令列頻度データ502を得る。
【0063】
この結果、図15に示す2つの命令列
sll rA, rA, 16
lw rB, 0(rA)

mult rA, rB, rA
sra rA, rA, 15
及び、図16に示す1つの命令列
lw rA, 0(rB)
addu rA, rA, rB
が圧縮命令の候補になる。
【0064】
圧縮命令を定義する条件を頻度=2以上とした場合は、上記3つ全てに対して圧縮命令を定義しうる。圧縮命令を定義する条件を頻度=3以上とした場合は、命令列
sll rA, rA, 16
lw rB, 0(rA)
のみに圧縮命令を定義する。圧縮命令は、他の圧縮命令と区別できればよいので、例えば
compless_inst_1 rA, rB = {sll rA, rA, 16 ; lw rB, 0(rA)}
compless_inst_2 rA, rB = {lw rA, 0(rB) ; addu rA, rA, rB}
compless_inst_3 rA, rB = {mult rA, rB, rA ; sra rA, rA, 15}
というように定義すればよい。
【0065】
なお、圧縮命令定義手段601は、複数の圧縮命令の候補に含まれる命令が存在する場合、検出頻度によって、実際に定義する圧縮命令を選択する必要がある。
【0066】
具体的には、9行目の命令
lw r3, 0(r9)
は、2つの圧縮命令の候補
compless_inst_1 rA, rB = {sll rA, rA, 16 ; lw rB, 0(rA)}
compless_inst_2 rA, rB = {lw rA, 0(rB) ; addu rA, rA, rB}
に含まれてしまうので、検出頻度が大きい
compless_inst_1 rA, rB = {sll rA, rA, 16 ; lw rB, 0(rA)}
を定義する圧縮命令として選択し、
compless_inst_2 rA, rB = {lw rA, 0(rB) ; addu rA, rA, rB}
は定義する圧縮命令として選択しない。
【0067】
図15に示す圧縮伸長対応表7を用いて、図14に示すアセンブラソースファイル204を圧縮した圧縮済みアセンブラソースファイルを図17に示す。
【0068】
また、伸長命令列に含まれる命令のビット幅と伸長命令列を圧縮した圧縮命令のビット幅は同一となるように圧縮命令のフォーマットを設定することが好ましい。
【0069】
ビット幅を同一にすることにより以下の効果が得られる。RISC(Reduced Instruction Set Computer)プロセッサでは、一つには、CISC(Complex Instruction Set Computer)プロセッサに比べ命令フェッチと命令デコードを簡単化することで、高速化(つまり、周波数の向上)を実現している。この簡単化のための手段の一つとして、命令のビット幅の固定化がある。これにより、特別な操作なしに、命令レジスタの常に同じ場所から、命令コードやレジスタ番号を参照することが可能になるので、当該操作にかかる時間が必要ない分、高速化が可能になる。そして、本発明は、命令列の圧縮に関するものであり、場合によっては、圧縮後の命令のビット幅を被圧縮命令より短くすることも考えられるが、アプリケーションの要求仕様によっては、上記のような高速化とのトレードオフを考慮して、敢えて、短くしない方がよい。
【0070】
また、命令列頻度検出手段401は、被検出伸長命令列に含まれる命令の被検出伸長命令列中の配置順序を実行プログラムの実行結果が変わらないという条件の下で変更し、被検出伸長命令列が被検出伸長命令列の検出以前に既に検出された既検出伸長命令列と一致する場合は、被検出伸長命令列を既検出伸長命令列と同じ伸長命令列として頻度を求めるようにしてもよい。
【0071】
例えば、命令列
addu r1,r2,r3
addu r4,r5,r6
と、命令列
addu r4,r5,r6
addu r1,r2,r3
等である。
【0072】
第3実施形態においても、第1実施形態と同様の効果が得られる。また、命令列頻度検出手段401と、圧縮命令定義手段601とを用いて、実行プログラム毎に最適な圧縮伸長対応表7を迅速、容易に作成することができる。さらに、圧縮伸長対応表7を用いて実行プログラム毎に最適な圧縮済み実行プログラム10を迅速、容易に作成することができる。
【0073】
(第4実施形態)
次に、図18〜20に基づいて、第4実施形態を説明する。
【0074】
図18は、第4実施形態にかかる情報処理装置の構成を示す図である。第4実施形態は、命令頻度検出手段403が命令列パターンテンプレート3を用いて命令列頻度データ503を作成する点が、第3実施形態と相違する。
【0075】
命令列パターンテンプレート3は、プロセッサ151で実行できる命令セットにおいて圧縮しようとする命令列(伸長命令列)と圧縮命令のパターン、ならびに伸長命令列を圧縮した際の圧縮命令のフォーマットが予め登録されているテンプレートである。圧縮命令は他に定義された圧縮命令と区別できればよいので、例えば圧縮命令1、圧縮命令2……といったように割り付けるようにすればよい。また、伸長命令列に含まれる命令のビット幅と伸長命令列を圧縮した圧縮命令のビット幅は同一となるように圧縮命令のフォーマットを設定するようにしてもよい。
【0076】
命令列頻度検出手段403は、命令列パターンテンプレート3を参照し、プロセッサ151で実行しようとするソースプログラムとなる実行オブジェクト2の命令列と命令列パターンテンプレート3に登録されている命令列パターンをパターンマッチングにより比較して命令列パターンを検出しその出現頻度を求め、命令列頻度データ503を得る。
【0077】
命令列頻度検出手段403も、命令列頻度検出手段401と同様に、被検出伸長命令列に含まれる命令のフィールド値を実行プログラムの実行結果が変わらないという条件の下で変更し、被検出伸長命令列が被検出伸長命令列の検出以前に既に検出された既検出伸長命令列と一致する場合は、被検出伸長命令列を既検出伸長命令列と同じ伸長命令列として頻度を求めるようにしてもよい。
【0078】
また、命令列頻度検出手段401と同様に、被検出伸長命令列に含まれる命令の被検出伸長命令列中の配置順序を実行プログラムの実行結果が変わらないという条件の下で変更し、被検出伸長命令列が被検出伸長命令列の検出以前に既に検出された既検出伸長命令列と一致する場合は、被検出伸長命令列を既検出伸長命令列と同じ伸長命令列として頻度を求めるようにしてもよい。
【0079】
圧縮命令定義手段6は、命令列頻度検出手段403で得られた命令列頻度データ503を受けて、このデータに基づいて例えば予め与えられた頻度値より高い値の命令列を選び出して圧縮命令を定義し、命令列パターンテンプレート3を参照して定義された圧縮命令と対応する伸長命令列との対応関係を示す圧縮伸長対応表7を作成する。
【0080】
図19に命令列パターンテンプレート3の一例を示す。2命令の命令列を圧縮した圧縮命令であって、同図に示すような形の命令パターンに対応する圧縮命令を3つまで定義可能とする。
【0081】
図20に実行オブジェクト2に対応するアセンブラソースファイル及び命令列頻度データの一例を示す。図19に対応する命令列、すなわち変数となる部分が2つまでの命令列を、アセンブラソースファイル201の中からサーチすると、図20に示す命令列頻度データ503が得られる。
【0082】
「2命令の命令列を圧縮する」とは、例えば1行目の命令
sll r4, r4, 16
と、2行目の命令
lw r7, 0(r4)
という2命令からなる命令列
sll r4, r4, 16
lw r7, 0(r4)
を圧縮するという意である。
【0083】
また「変数となる部分が2つまでの命令列」については、例えば1〜2行目の命令列
sll r4, r4, 16
lw r7, 0(r4)
は、変数となる部分がr4とr7の2つなので、「変数となる部分が2つまでの命令列」に該当するが、
2〜3行目の命令列
lw r7,0(r4)
lw r3,0(r5)
は、変数となる部分がr3,r4,r5,r7の4つなので、「変数となる部分が2つまでの命令列」に該当しない。
【0084】
そして、命令列頻度データに基づいて圧縮命令を定義する命令列の候補を選択し、図15に示したような圧縮伸長対応表7を作成する。
【0085】
オブジェクト変換手段8は、圧縮命令定義手段6で作成された圧縮伸長対応表7を参照して、実行オブジェクト2の中の伸長命令列を圧縮命令に変換して圧縮済み実行オブジェクト112を作成し、作成した圧縮済み実行オブジェクト112をメインメモリ101に記憶させる。
【0086】
命令伸長部再構成手段9は、圧縮命令定義手段6で作成された圧縮伸長対応表7を参照して、命令伸長部14が定義された圧縮命令を伸長して元の伸長命令列に戻すように命令伸長部14を再構成する。命令伸長部14が上記したようにFPGAで実装されている場合は、命令伸長部再構成手段9はFPGAのコンフィギュレータとして構成され、一方命令伸長部14が上記したようにHDLで定義されている場合には、命令伸長部再構成手段9は定義されているHDL記述に変換する変換フィルターとして構成される。また、命令伸長部再構成手段9は、既に実装されている圧縮命令を命令伸長部14から削除する。
【0087】
このような構成において、プロセッサ151で実行される実行オブジェクト2は、命令列パターンテンプレート3に登録された命令列が命令列頻度検出手段403により検索されて、検出された命令列の出現頻度に応じて圧縮命令が圧縮命令定義手段6により定義され、定義された圧縮命令とこの圧縮命令に対応した伸長命令列との圧縮伸長対応表7が圧縮命令定義手段6により作成され、作成された圧縮伸長対応表7に基づいてプロセッサ151の命令伸長部14が命令伸長部再構成手段9により再構成され、さらに圧縮伸長対応表7に基づいて実行オブジェクト2の伸長命令列が定義された圧縮命令に変換されて圧縮済み実行オブジェクト112が作成され、作成された圧縮済み実行オブジェクト112はメインメモリ101に与えられて一旦メインメモリ101に格納され、メインメモリ101に格納された圧縮済み実行オブジェクト112の中の圧縮命令は命令伸長部14で伸長されて元の伸長命令列に戻された後、命令デコード部12でデコードされて実行される。一方、このプロセッサ151で先の実行オブジェクトとは異なる他の実行オブジェクトを実行する場合には、上述したと同様にして圧縮命令が定義された後、命令伸長部14が命令伸長部再構成手段9により再構成され、圧縮済み実行オブジェクト112がプロセッサ151で実行される。
【0088】
このように第4実施形態においては、1つのプロセッサにおいて、実行プログラム毎に圧縮命令が最適に定義されるので、それぞれの実行プログラムの内容に応じて命令数を削減することが可能となり、これにより実行プログラムを格納するメモリ部101の容量を低減して小型化することができる。
【0089】
(第5実施形態)
次に、図21〜24に基づいて、第5実施形態について説明する。
【0090】
図21は第5実施形態に係る情報処理装置の構成を示す図である。図21に示す装置の特徴とするところは、図18に示す装置に比べて、プロセッサ1で実行されるプログラムは、実行オブジェクトとしてではなく例えば図22(A)に示すようなアセンブラソースファイル202として定義されて与えられ、このアセンブラソースファイルをオブジェクトプログラムに変換するとともに、圧縮伸長対応表7に基づいてアセンブラソースファイルに含まれる伸長命令列を圧縮命令に変換するオブジェクト生成手段21を図18に示すオブジェクト変換手段8に代えて設け、また命令実行部22が図18に示す命令伸長部再構成手段9の機能を備えて圧縮伸長対応表7を参照して命令伸長部14を再構成するようにしたことにあり、他は図18に示す装置と同様である。
【0091】
アセンブラソースファイル202の命令列頻度データの一例を図23に示す。この頻度データ5に基づいて圧縮命令定義手段6により作成される圧縮伸長対応表7は、例えば図24(A)に示すようになり、これに基づいて図22(A)に示すアセンブラソースプログラムは、同図(B)に示すように、定義された圧縮命令を含んで変換される。
【0092】
このように、この発明はオリジナルの命令コードの形式や、命令伸長部再構成手段9の機能がプロセッサの内部又は外部にあるかなどには依存しない。
【0093】
このような構成においても、第4実施形態と同様の効果が得られる。
【0094】
【発明の効果】
以上説明したように、本発明によれば、実行プログラム毎に命令伸長部が最適に構成されるので、それぞれの実行プログラムの内容に応じて命令数を削減することが可能となり、これにより実行プログラムを格納するメインメモリの容量を低減して小型化することができる。
【0095】
また、命令列頻度検出手段と、圧縮命令定義手段とを用いて、実行プログラム毎に最適な圧縮伸長対応表を迅速、容易に作成することができる。
【図面の簡単な説明】
【図1】第1の実施形態に係る情報処理装置の構成を示す図である。
【図2】図1に示す圧縮伸長対応表の一例を示す図である。
【図3】図1に示す圧縮済み実行オブジェクトの内容をアセンブラ言語で表した場合の一例を示す図である。
【図4】図1に示す命令伸長部をHDLにより定義する場合の一例を示す図である。
【図5】図4の命令伸長部をHDLにより定義する場合の一例の続きを示す図である。
【図6】図4の定義ファイルがインクルードする”compress_expand_table”の一例を示す図である。
【図7】図1に示すプロセッサ及メインメモリの構成例を示す図である。
【図8】図7に示すプロセッサ内部の動作タイミングチャートを示す図である。
【図9】第2の実施形態に係る情報処理装置の構成を示す図である。
【図10】第3の実施形態に係る情報処理装置の構成を示す図である。
【図11】図10に示すアセンブラソースファイルと命令列頻度データの一例を示す図である。
【図12】図10に示す圧縮伸長対応表の一例を示す図である。
【図13】図10に示す圧縮済み実行オブジェクトの内容をアセンブラ言語で表した場合の一例を示す図である。
【図14】図10に示すアセンブラソースファイルと命令列頻度データの他の例を示す図である。
【図15】図10に示す圧縮伸長対応表の他の例を示す図である。
【図16】圧縮命令として定義しない命令列の例を示す図である。
【図17】図10に示す圧縮済み実行オブジェクトの内容をアセンブラ言語で表した場合の他の例を示す図である。
【図18】第4の実施形態に係る情報処理装置の構成を示す図である。
【図19】図18に示す命令列パターンテンプレートの一例を示す図である。
【図20】図18に示す実行オブジェクトの内容をアセンブラ言語で表した場合の一例と図18に示す命令列頻度データの一例を示す図である。
【図21】第5の実施形態に係る情報処理装置の構成を示す図である。
【図22】図21に示すアセンブラソースファイル及びこのファイルから生成された圧縮済み実行オブジェクトファイルの内容をアセンブラ言語で表した場合の一例を示す図である。
【図23】図21に示す命令列頻度データの一例を示す図である。
【図24】図21に示す圧縮伸長対応表の一例を示す図である。
【符号の説明】
7 圧縮伸長対応表
9 命令伸長部再構成手段
12 命令デコード部
13 命令実行部
14 命令伸長部
100 アドレスレジスタ
101 メインメモリ
102 命令レジスタ
104 マルチプレクサ
105 命令キャッシュ
110 圧縮済み実行オブジェクト
151 プロセッサ

Claims (3)

  1. 実行プログラムがデコードされる前に、実行プログラムに含まれる圧縮命令を伸長して元の伸長命令列に戻す命令伸長手段と、
    定義された圧縮命令が前記命令伸長手段により伸長されるように、圧縮伸長対応表に基づいて前記命令伸長手段を再構成する再構成手段と、
    実行プログラムの中から伸長命令列のパターンの出現頻度を検出する命令列頻度検出手段と、
    前記命令列頻度検出手段によって検出された頻度に基づいて圧縮する伸長命令列を選択し、選択した伸長命令列の圧縮命令を定義し、伸長命令列と定義された圧縮命令との対応関係を表す圧縮伸長対応表を作成する圧縮命令定義手段と、
    前記圧縮命令定義手段により作成された圧縮伸長対応表に基づいて、実行プログラム中に含まれる伸長命令列を圧縮命令に変換する変換手段と、
    圧縮しようとする命令列(伸長命令列)のパターンならびに該伸長命令列を圧縮した際の圧縮命令のフォーマットが予め登録された命令列パターンテンプレートと、を有し、
    前記命令列頻度検出手段は、前記命令列パターンテンプレートを参照して、実行プログラムの中から前記命令列パターンテンプレートに登録された伸長命令列のパターンの出現頻度を検出し、
    前記圧縮命令定義手段は、前記命令列頻度検出手段によって検出された頻度に基づいて圧縮する伸長命令列を選択し、選択した伸長命令列の圧縮命令を定義し、前記命令列パターンテンプレートを参照して伸長命令列と定義された圧縮命令との対応関係を表す圧縮伸長対応表を作成することを特徴とする情報処理装置。
  2. 前記命令列頻度検出手段は、被検出伸長命令列に含まれる命令のフィールド値を実行プログラムの実行結果が変わらないという条件の下で変更し、前記被検出伸長命令列が前記被検出伸長命令列の検出以前に既に検出された既検出伸長命令列と一致する場合は、前記被検出伸長命令列を前記既検出伸長命令列と同じ伸長命令列として頻度を求め、及び/又は被検出伸長命令列に含まれる命令の前記被検出伸長命令列中の配置順序を実行プログラムの実行結果が変わらないという条件の下で変更し、前記被検出伸長命令列が前記被検出伸長命令列の検出以前に既に検出された既検出伸長命令列と一致する場合は、前記被検出伸長命令列を前記既検出伸長命令列と同じ伸長命令列として頻度を求めることを特徴とする請求項1記載の情報処理装置。
  3. 前記再構成手段は、デコードされた命令を実行する命令実行手段に含まれていることを特徴とする請求項1又は2記載の情報処理装置。
JP2000002353A 1999-01-13 2000-01-11 情報処理装置 Expired - Fee Related JP3585800B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2000002353A JP3585800B2 (ja) 1999-01-13 2000-01-11 情報処理装置
US09/482,262 US6587939B1 (en) 1999-01-13 2000-01-13 Information processing apparatus provided with an optimized executable instruction extracting unit for extending compressed instructions

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP11-6920 1999-01-13
JP692099 1999-01-13
JP2000002353A JP3585800B2 (ja) 1999-01-13 2000-01-11 情報処理装置

Publications (2)

Publication Number Publication Date
JP2000267848A JP2000267848A (ja) 2000-09-29
JP3585800B2 true JP3585800B2 (ja) 2004-11-04

Family

ID=26341144

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000002353A Expired - Fee Related JP3585800B2 (ja) 1999-01-13 2000-01-11 情報処理装置

Country Status (2)

Country Link
US (1) US6587939B1 (ja)
JP (1) JP3585800B2 (ja)

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7266725B2 (en) 2001-09-03 2007-09-04 Pact Xpp Technologies Ag Method for debugging reconfigurable architectures
DE19651075A1 (de) 1996-12-09 1998-06-10 Pact Inf Tech Gmbh Einheit zur Verarbeitung von numerischen und logischen Operationen, zum Einsatz in Prozessoren (CPU's), Mehrrechnersystemen, Datenflußprozessoren (DFP's), digitalen Signal Prozessoren (DSP's) oder dergleichen
DE19654595A1 (de) 1996-12-20 1998-07-02 Pact Inf Tech Gmbh I0- und Speicherbussystem für DFPs sowie Bausteinen mit zwei- oder mehrdimensionaler programmierbaren Zellstrukturen
JP3961028B2 (ja) 1996-12-27 2007-08-15 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト データフロープロセッサ(dfp)の自動的なダイナミックアンロード方法並びに2次元または3次元のプログラミング可能なセルストラクチャを有するモジュール(fpga,dpga等)
US6542998B1 (en) 1997-02-08 2003-04-01 Pact Gmbh Method of self-synchronization of configurable elements of a programmable module
DE19704742A1 (de) * 1997-02-11 1998-09-24 Pact Inf Tech Gmbh Internes Bussystem für DFPs, sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen, zur Bewältigung großer Datenmengen mit hohem Vernetzungsaufwand
US8686549B2 (en) 2001-09-03 2014-04-01 Martin Vorbach Reconfigurable elements
DE19861088A1 (de) 1997-12-22 2000-02-10 Pact Inf Tech Gmbh Verfahren zur Reparatur von integrierten Schaltkreisen
WO2000077652A2 (de) 1999-06-10 2000-12-21 Pact Informationstechnologie Gmbh Sequenz-partitionierung auf zellstrukturen
AU2001245720A1 (en) * 2000-03-15 2001-09-24 Arc International Plc Method and apparatus for processor code optimization using code compression
EP2226732A3 (de) 2000-06-13 2016-04-06 PACT XPP Technologies AG Cachehierarchie für einen Multicore-Prozessor
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
US6865664B2 (en) * 2000-12-13 2005-03-08 Conexant Systems, Inc. Methods, systems, and computer program products for compressing a computer program based on a compression criterion and executing the compressed program
US7162621B2 (en) 2001-02-21 2007-01-09 Mips Technologies, Inc. Virtual instruction expansion based on template and parameter selector information specifying sign-extension or concentration
US7711763B2 (en) 2001-02-21 2010-05-04 Mips Technologies, Inc. Microprocessor instructions for performing polynomial arithmetic operations
US7181484B2 (en) 2001-02-21 2007-02-20 Mips Technologies, Inc. Extended-precision accumulation of multiplier output
US7581076B2 (en) * 2001-03-05 2009-08-25 Pact Xpp Technologies Ag Methods and devices for treating and/or processing data
US9411532B2 (en) 2001-09-07 2016-08-09 Pact Xpp Technologies Ag Methods and systems for transferring data between a processing device and external devices
US7444531B2 (en) 2001-03-05 2008-10-28 Pact Xpp Technologies Ag Methods and devices for treating and processing data
US9552047B2 (en) 2001-03-05 2017-01-24 Pact Xpp Technologies Ag Multiprocessor having runtime adjustable clock and clock dependent power supply
US9037807B2 (en) 2001-03-05 2015-05-19 Pact Xpp Technologies Ag Processor arrangement on a chip including data processing, memory, and interface elements
US9250908B2 (en) 2001-03-05 2016-02-02 Pact Xpp Technologies Ag Multi-processor bus and cache interconnection system
US9436631B2 (en) 2001-03-05 2016-09-06 Pact Xpp Technologies Ag Chip including memory element storing higher level memory data on a page by page basis
US7844796B2 (en) 2001-03-05 2010-11-30 Martin Vorbach Data processing device and method
US9141390B2 (en) 2001-03-05 2015-09-22 Pact Xpp Technologies Ag Method of processing data with an array of data processors according to application ID
US7249242B2 (en) * 2002-10-28 2007-07-24 Nvidia Corporation Input pipeline registers for a node in an adaptive computing engine
GB2375695B (en) * 2001-05-19 2004-08-25 At & T Lab Cambridge Ltd Improved power efficency in microprocessors
EP1402382B1 (de) 2001-06-20 2010-08-18 Richter, Thomas Verfahren zur bearbeitung von daten
US10031733B2 (en) * 2001-06-20 2018-07-24 Scientia Sol Mentis Ag Method for processing data
GB2378269B (en) * 2001-07-28 2005-08-10 At & T Lab Cambridge Ltd Improved power efficiency in microprocessor systems
DE10139610A1 (de) 2001-08-11 2003-03-06 Daimler Chrysler Ag Universelle Rechnerarchitektur
US7996827B2 (en) * 2001-08-16 2011-08-09 Martin Vorbach Method for the translation of programs for reconfigurable architectures
US7434191B2 (en) 2001-09-03 2008-10-07 Pact Xpp Technologies Ag Router
US8686475B2 (en) 2001-09-19 2014-04-01 Pact Xpp Technologies Ag Reconfigurable elements
JP2003186668A (ja) * 2001-12-14 2003-07-04 Mitsubishi Electric Corp 命令コード変換ユニットおよび命令コード変換方法
DE10392560D2 (de) 2002-01-19 2005-05-12 Pact Xpp Technologies Ag Reconfigurierbarer Prozessor
DE10390689D2 (de) 2002-02-18 2005-02-10 Pact Xpp Technologies Ag Bussysteme und Rekonfigurationsverfahren
US8914590B2 (en) 2002-08-07 2014-12-16 Pact Xpp Technologies Ag Data processing method and device
US9170812B2 (en) 2002-03-21 2015-10-27 Pact Xpp Technologies Ag Data processing system having integrated pipelined array data processor
US7657861B2 (en) 2002-08-07 2010-02-02 Pact Xpp Technologies Ag Method and device for processing data
WO2004021176A2 (de) 2002-08-07 2004-03-11 Pact Xpp Technologies Ag Verfahren und vorrichtung zur datenverarbeitung
AU2003289844A1 (en) 2002-09-06 2004-05-13 Pact Xpp Technologies Ag Reconfigurable sequencer structure
US6904591B2 (en) * 2002-11-01 2005-06-07 Oz Development, Inc. Software development system for editable executables
EP1676208A2 (en) 2003-08-28 2006-07-05 PACT XPP Technologies AG Data processing device and method
US7478386B2 (en) * 2005-05-03 2009-01-13 International Business Machines Corporation Resource-conservative installation of compressed archives
JP4986431B2 (ja) * 2005-09-29 2012-07-25 ルネサスエレクトロニクス株式会社 プロセッサ
US8250503B2 (en) 2006-01-18 2012-08-21 Martin Vorbach Hardware definition method including determining whether to implement a function as hardware or software
US7757224B2 (en) * 2006-02-02 2010-07-13 Microsoft Corporation Software support for dynamically extensible processors
JP2007226615A (ja) 2006-02-24 2007-09-06 Matsushita Electric Ind Co Ltd 情報処理装置、圧縮プログラム生成方法及び情報処理システム
JP2011243134A (ja) * 2010-05-21 2011-12-01 Mitsubishi Electric Corp プログラム圧縮装置及びプログラム実行装置及びプログラム
JP5965262B2 (ja) * 2012-09-12 2016-08-03 株式会社日立情報通信エンジニアリング マイクロプロセッサ及びプログラムのコンパイル処理方法
CN104142510A (zh) * 2014-07-29 2014-11-12 豪芯微电子科技(上海)有限公司 可变采样率的数据采集电路
CN105740303B (zh) * 2014-12-12 2019-09-06 国际商业机器公司 改进的对象存储的方法及装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61170828A (ja) 1985-01-24 1986-08-01 Hitachi Ltd マイクロプログラム制御装置
US5717394A (en) * 1993-02-10 1998-02-10 Ricoh Company Ltd. Method and apparatus for encoding and decoding data
US5790874A (en) 1994-09-30 1998-08-04 Kabushiki Kaisha Toshiba Information processing apparatus for reducing power consumption by minimizing hamming distance between consecutive instruction
US5838963A (en) * 1995-10-25 1998-11-17 Microsoft Corporation Apparatus and method for compressing a data file based on a dictionary file which matches segment lengths
US5768597A (en) * 1996-05-02 1998-06-16 Starfish Software, Inc. System and methods for improved installation of compressed software programs
US5819097A (en) * 1996-12-09 1998-10-06 Allen Bradley Company, Llc Industrial controller compiler with expandable instruction set
US6131192A (en) * 1998-06-18 2000-10-10 Microsoft Corporation Software installation

Also Published As

Publication number Publication date
JP2000267848A (ja) 2000-09-29
US6587939B1 (en) 2003-07-01

Similar Documents

Publication Publication Date Title
JP3585800B2 (ja) 情報処理装置
JP3180075B2 (ja) 異なる命令コード相互間の動的変換装置及び方法
JP6073515B2 (ja) メモリ階層内に組み込まれたエントロピーエンコーディングされたソフトウェアの記憶および変換のための方法および装置
Marwedel et al. Code generation for embedded processors
US7543283B2 (en) Flexible instruction processor systems and methods
CN101572552B (zh) 基于内容可寻址存储器的高速无损数据压缩系统
EP2891053B1 (en) Results generation for state machine engines
US20140229926A1 (en) Unrolling quantifications to control in-degree and/or out-degree of automaton
US7162617B2 (en) Data processor with changeable architecture
CN102741817B (zh) 方法和装置和记录载体
CN103748550B (zh) 用于存储熵编码指令序列及将其翻译成可执行形式的方法和设备
US7313671B2 (en) Processing apparatus, processing method and compiler
US5964861A (en) Method for writing a program to control processors using any instructions selected from original instructions and defining the instructions used as a new instruction set
KR980004059A (ko) 데이타 처리장치 및 그 레지스터 어드레스 변환방법
US7536534B2 (en) Processor capable of being switched among a plurality of operating modes, and method of designing said processor
CN113129961B (zh) 一种面向密码逻辑阵列局部动态重构的配置电路
US6009483A (en) System for dynamically setting and modifying internal functions externally of a data processing apparatus by storing and restoring a state in progress of internal functions being executed
KR960016401B1 (ko) 레지스터 페이지 포인터를 이용한 레지스터 페이지간의 페이지 선택회로
JP2006155448A (ja) データ処理装置およびデータ処理装置の設計方法
EP0862111A2 (en) Dynamic conversion between different instruction codes by recombination of instruction elements
JP2002049481A (ja) 命令グループ判定方法及び装置
JP2004152201A (ja) プロセッサ装置
JP3505481B2 (ja) 命令処理装置
CN115981728A (zh) 一种指令功能重构的方法、系统、设备和存储介质
JPH11175337A (ja) データ処理装置、機械命令生成装置及び記録媒体

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20031222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040127

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040324

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040420

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040520

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040617

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20040628

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040720

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040804

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20070813

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080813

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090813

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090813

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100813

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100813

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110813

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110813

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120813

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees