JP3729759B2 - 圧縮された命令コードを読み出すマイクロコントローラ、命令コードを圧縮して格納するプログラムメモリ - Google Patents
圧縮された命令コードを読み出すマイクロコントローラ、命令コードを圧縮して格納するプログラムメモリ Download PDFInfo
- Publication number
- JP3729759B2 JP3729759B2 JP2001239442A JP2001239442A JP3729759B2 JP 3729759 B2 JP3729759 B2 JP 3729759B2 JP 2001239442 A JP2001239442 A JP 2001239442A JP 2001239442 A JP2001239442 A JP 2001239442A JP 3729759 B2 JP3729759 B2 JP 3729759B2
- Authority
- JP
- Japan
- Prior art keywords
- code
- instruction
- memory
- compressed
- program
- 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
Links
- 230000015654 memory Effects 0.000 title claims description 275
- 238000007906 compression Methods 0.000 claims description 36
- 230000006835 compression Effects 0.000 claims description 36
- 230000004044 response Effects 0.000 claims description 11
- 238000010586 diagram Methods 0.000 description 33
- 238000000034 method Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 4
- 230000010365 information processing Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
- G06F9/30178—Runtime instruction translation, e.g. macros of compressed or encrypted instructions
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99942—Manipulating 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)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
【発明の属する技術分野】
本発明は、マイクロコントローラに係り、特に、命令コードを圧縮してプログラムメモリに格納するマイクロコントローラに関する。
【0002】
【従来の技術】
マイクロコントローラ(以下「マイコン」ともいう)は、家電製品、AV機器、携帯電話、自動車等の電気機器に組み込まれ、内蔵されている読み出し専用のプログラムメモリ(ROM)に格納されたプログラムにしたがって処理を行なうことで、それぞれの機器の制御を行なう装置である。
【0003】
マイコンは、機器に組み込まれて利用されるというその性質上、機器の制御を行なうために必要な性能を備え、かつ、安価であることが要求される。
【0004】
ところが、近年、マイコンが行なう処理は複雑化しており、処理に必要なプログラムの容量は増加している。このため、マイコンに占めるプログラムメモリの比率が高くなっており、この傾向は今後も続くと考えられている。一般に、プログラムメモリの容量が増えるとその分コストが上昇するため、安価なマイコンを提供するためには、プログラムメモリの容量をいかに押さえるかが重要な問題となっている。
【0005】
【発明が解決しようとする課題】
ところで、パーソナルコンピュータ、ワークステーション等の汎用型の情報処理装置では、プログラムメモリの容量を削減するために、命令コードを圧縮する技術が提案され、実装化も進んでいる。
【0006】
しかしながら、汎用型の情報処理装置で提案されている圧縮技術は、例えば、キャッシュのヒット率が比較的高いことを前提としていたり、命令のスループットを高めることを目的としている等のため、マイコン等の組み込み機器にそのまま適用することは、必ずしもふさわしくはない。すなわち、一般に、マイコン等の組込み機器ではキャッシュのヒット率があまり高くなく、割込みに対する高い応答性が要求される。また、命令のスループットよりレイテンシが重視されている場合が多い。さらには、プログラムに占める命令コード(読み出し用データを除く狭義の命令コード)の割合が高いという特徴を備えている。したがって、汎用型の情報処理装置に比べ、より圧縮コードを命令コードに高速に展開できることが重要となってくる。
【0007】
本発明の目的は、高い圧縮率と、高速な命令展開性とを備えた命令コード圧縮技術を提供することにある。
【0008】
【課題を解決するための手段】
上記課題を解決するため、本発明によれば、
プログラムにしたがって処理を行なうマイクロコントローラであって、
プログラムに出現する命令コードを格納する辞書メモリと、
プログラムに含まれる命令コードのそれぞれが、プログラムに含まれる全命令コードを識別するのに足る語長の圧縮コードであって、その値が前記辞書メモリ中の対応する命令コードを格納したアドレスを示す圧縮コードに変換されて格納される圧縮コードメモリとを備え、
圧縮コードのアドレスを指定された命令コードの読み出し要求に対し、前記圧縮コードメモリ中の当該アドレスに格納された圧縮コードを読み出し、ついで、前記辞書メモリ中の当該圧縮コードが示すアドレスに格納された命令コードを読み出すことを特徴とするマイクロコントローラが提供される。
【0009】
【作用】
プログラムに出現する命令コードを、識別に必要なbit数のコードに変換した圧縮コードと、元の命令コードに展開するための辞書とにして、プログラムメモリに記録する。圧縮コードは辞書のアドレスを示すように構成することで、高い圧縮率と、高速な命令展開性とを備えた命令コードの圧縮が達成される。
【0010】
【発明の実施の形態】
本発明の実施の形態について図面を参照して説明する。
【0011】
図1は、本願発明を適用したマイクロコントローラ(マイコン)の実施例の構成の要部を説明するためのブロック図である。
【0012】
本図において、マイコン10は、プログラムを実行するCPU20と、プログラムを格納するプログラムメモリ30と、プログラム、データ等を一時的に格納するRAM40と、外部バス65等の制御を行なうバスコントローラ50と、これらを接続するCPUバス60とを備えて構成される。
【0013】
CPU20の内部には、プログラムの実行順序を制御するためプログラムカウンタ21が設けられている。プログラムカウンタ21には、次に実行すべき命令コードが格納されているプログラムメモリ30中のアドレスが示される。
【0014】
バスコントローラ50には、例えば、外部バス65を介して外部メモリ90等が接続される。また、バスコントローラ50には、マイコンの用途に応じたデバイス群、例えば、入力装置、表示装置等を制御するための周辺モジュール、DMA装置等を周辺モジュールバス等を介して接続することができる。
【0015】
プログラムメモリ30には、圧縮コードメモリ31、辞書メモリ32、および、プログラムメモリ30の読み出し制御を行なうコントローラ部35が設けられている。なお、コントローラ部35は、例えば、プログラムメモリ30の外部に独立して設けるようにしてもよいし、バスコントローラ50内に設けるようにしてもよい。また、圧縮コードメモリ31と、辞書メモリ32とは、同時に読み出しができるように別メモリとして構成することが望ましい。
【0016】
図2(a)は、本発明の基本的な原理を示す第1の実施例における、プログラムメモリ30内に設けられた圧縮コードメモリ31と辞書メモリ32との関係を説明するための模式図である。
【0017】
ここで、図2(a)に示した圧縮コードメモリ31と辞書メモリ32とについて、図2(b)に示した圧縮コードを用いない従来のプログラムメモリを説明するための模式図を参照して説明する。
【0018】
本実施例において、圧縮コードは、プログラムに出現する命令コード(データ部も含む)を、元のコード長より短い語長に変換したものである。また、プログラムに出現する全命令コードを圧縮の対象とする。このため、圧縮率を高めることができる。一方、圧縮コードを展開するための元の命令コードは辞書メモリ32に格納しておく。
【0019】
例えば、図2(b)に示すように、プログラムに含まれる元の命令コードが、nビットの語長で、X行あったとする。このとき、プログラムに出現する命令コードの種類Kが2m-1〜2mの範囲であったとする。一般に、プログラム内に現れる命令コードは、同じ命令が複数回出現することが多いため、命令コードの種類Kは、Xより小さくなる。
【0020】
このとき、プログラムの各行の命令コードを特定するためにはmビットあれば足りる。このため、nビット×X行の命令コード列は、mビット×X行の圧縮コード列に変換することができる。そして、圧縮コードを元の命令コードに展開するための、nビット×K(K≦2m)の辞書を用意しておけばよい。
【0021】
本実施例では、さらに、mビットの圧縮コードは、辞書メモリの参照すべき命令コードのアドレスを示すコードに対応させるものとする。このようにすることで、圧縮コードから、直接的に、辞書メモリ中のアドレスを求めることができるため、複雑なアドレス変換等を行なう必要がなく、元の命令コードへ展開のための時間を短くするという効果を得ることができる。
【0022】
すなわち、図2(a)に示した本実施例では、プログラムカウンタ21に従って、プログラムメモリ30に命令アドレス61が入力されると、まず、圧縮コード(辞書メモリアドレス)が読み出され、つづいて、この辞書メモリアドレスに格納された命令コード62が読み出されることになる。なお、これらの読み出しのためのメモリ制御は、コントロール部35が行なっている。
【0023】
上記の説明から明らかなように、本実施例におけるコード圧縮の効果は、プログラムに出現する命令コードの種類に依存する。
【0024】
例えば、1Mバイトのプログラムに、32ビット長の命令コードが256K行ある場合を考える。プログラム中に、全命令コード数の4分の1に当たる64K(=216)種類の命令コードが出現したとすると、命令コードを16ビット長で圧縮コード化できる。
【0025】
このとき、圧縮コードメモリ31の容量は、512Kバイト(16ビット×256K)となる。そして、辞書メモリ32の容量は256Kバイト(32ビット×62K)となる。この結果、圧縮コードメモリ31と辞書メモリ32との合計容量は768Kバイトとなって、圧縮しない場合の1Mバイトに比べ、75%の容量に削減することができる。
【0026】
また、プログラム中に、全命令コード数の8分の1に当たる32K(=215)種類の命令コードが出現したとすると、圧縮コードメモリ31と辞書メモリ32との合計容量は600Kバイトとなって、圧縮しない場合の1Mバイトに比べ、59%の容量に削減することができる。
【0027】
一方、1Mバイトのプログラムに、32ビット長の命令コードが256K(=218)行ある場合において、仮に、すべてが異なる命令コードであったとすると、命令コードは、18ビット長で圧縮コード化される。
【0028】
このとき、圧縮コードメモリ31の容量は、576Kバイト(18ビット×256K)となり、辞書メモリ32の容量は1Mバイト(32ビット×256K)となる。この結果、圧縮コードメモリ31と辞書メモリ32との合計容量は1.6Mバイトとなって、圧縮しない場合の1Mバイトに比べ、1.6倍のサイズに増大してしまう。
【0029】
実際のプログラムでは、同じ命令コードが何度も繰り返し使われるという特性があるため、出現する命令コード種は、命令コード数の数分の1程度に抑えられる場合がほとんどである。しかしながら、実装上、命令コードの種類をメモリ容量削減効果が得られる範囲内に抑えられなかった場合にも対応できるようにすることが望ましい。
【0030】
このため、プログラムメモリ30を、図2(a)に示したような圧縮コードメモリ31と辞書メモリ32として利用する場合と、図2(b)に示したような従来の形式で命令コードを格納するプログラムメモリとして利用する場合との両方の使い方が選択的に可能な構成とした第2の実施例について以下に説明する。
【0031】
図3は、第2の実施例におけるプログラムメモリ30の構成例を説明するための模式図である。ここでは、簡単のために、命令コード長が32ビットで、圧縮コード長が16ビットの場合を例に説明する。もちろん、本発明は、これに限定されるものではない。
【0032】
本実施例において、圧縮コードメモリ31aは、命令コードおよび圧縮コードのいずれか一方を格納することができる。命令コードと圧縮コードとを混在させて格納することは予定されない。
【0033】
そして、プログラムメモリ30aを、圧縮コードメモリ31と辞書メモリ32として利用する場合と、従来の形式で命令コードを格納するプログラムメモリとして利用する場合とは、セレクタ81a、セレクタ81b、セレクタ81cによって切り替えることができる。
【0034】
従来の形式で命令コードを格納するプログラムメモリ30として利用する場合には、圧縮コードメモリ31aおよび辞書メモリ32aを、32ビット長の命令コードを格納する一つの連続したメモリ空間として扱い、命令アドレス61aで示されるアドレスに格納された命令コード62aが読み出される。
【0035】
このとき、プログラムカウンタ21が示す命令アドレス61aは、命令コード長が32ビットであるため、4バイトを単位とする値(0、4、8、…)となり、図中のコードb0、コードb1、コードc0は、それぞれ32ビットの命令コードとなる。
【0036】
圧縮コードを格納するプログラムメモリ30として利用する場合には、圧縮コードメモリ31aに、16ビットの圧縮コードを格納し、辞書メモリ32aに、圧縮コードを展開するための、32ビットの命令コードを格納する。
【0037】
このとき、図中のコードb0、コードb1は、それぞれ連続する2つの16ビット圧縮コードを連結したものである。したがって、圧縮コードを読み出すときは、前半の16ビットと、後半の16ビットとで別々に読み出す必要がある。
【0038】
このため、図3に示した例では、シフタ85を用いて、命令アドレス61aを、下位に1ビットシフトしたアドレスを使うようにしている。このとき、4バイト単位の命令アドレス0、4、8、12、…に対する圧縮コードメモリ31aのアドレスは0、2、4、6、…となる。圧縮コードメモリ31aは32ビット幅で、アドレスの下位2ビットは無視するので、命令アドレスは、0、0、4、4、…というように、同一の32ビットデータが2回ずつ読み出されるようになる。そして、セレクタ81aで、シフタ85の出力アドレスの下から2ビット目の信号を使って、圧縮コードメモリ31aからの出力に含まれる2つの圧縮コードから適切な圧縮コードを選択する。
【0039】
セレクタ81bは、従来の形式で命令コードを格納するプログラムメモリ30として利用する場合には、命令アドレス61aが辞書メモリ32aに入力するように切り替える。圧縮コードを格納する場合には、セレクタ81aが出力する圧縮コードが辞書メモリ32aに入力するように切り替える。セレクタ81bの切り替えは、例えば、格納形式を記憶したレジスタの内容にしたがうメモリモード信号320を使うことができる。セレクタ81cは、従来の形式で命令コードを格納するプログラムメモリ30として利用する場合には、命令アドレス61aに応じて、圧縮コードメモリ31aおよび辞書メモリ32aからの出力を切り替えて命令コード62aとして出力する。圧縮コードを格納する場合には、常に辞書メモリ32aからの出力を命令コード62aとして出力する。
【0040】
このように、プログラムメモリ30を構成することにより、同一のマイコン10であっても、格納するプログラムを変更することで、従来の形式で命令コードを格納する形式と、圧縮コードを格納する形式とに対応することができる。すなわち、本発明を適用したマイコン10を汎用的に利用することができるようになる。
【0041】
次に、本発明の第3の実施例について説明する。図4は、第3の実施例におけるプログラムメモリ30の構成例を説明するためのブロック図である。
【0042】
本実施例では、元の命令コードをオペコード部とオペランド部とに分けて、それぞれ別々にコード化して圧縮コードに変換する。
【0043】
本図において、圧縮コードメモリ31bは、mビットの圧縮コードを格納する。ここで、命令コードのオペコード部は、演算、メモリアクセス、分岐などの命令種を示し、オペランド部はレジスタ番号、データ等を示す部分である。
【0044】
そして、辞書メモリも、オペコードを展開するためのオペコード用辞書メモリC32bと、オペランドを展開するためのオペランド用辞書メモリR33bとに分けて作成する。
【0045】
圧縮コードメモリ31bから読み出された圧縮コード71は、オペコード部圧縮コード71cと、オペランド部圧縮コード71dとに分離される。そして、オペコード部圧縮コード71cで示されるアドレスで、オペコード用辞書メモリC32bを読み出し、オペランド部圧縮コード71dで示されるアドレスで、オペランド用辞書メモリR33bを読み出す。その後、2つの辞書メモリから並行して読み出されたコードを連結し、命令コード62bとして出力する。
【0046】
このようにすることで、特定のオペコードあるいはオペランドの出現頻度が高い等の特質を有するプログラムでは、プログラムメモリの容量をさらに削減することができる。また、オペコードとオペランドとを並行に展開するため、命令コードの読み出しを高速化することができる。
【0047】
次に、本発明の第4の実施例について説明する。図5は、第4の実施例におけるプログラムメモリ30の構成例を説明するためのブロック図である。
【0048】
本実施例では、元の命令コードを、狭義の命令コード部と、データ部とに区別して、それぞれ独立に圧縮コード化する。
【0049】
本図において、圧縮コードメモリ31cは、mビットの圧縮コードを格納する。そして、圧縮コードには、命令コードを圧縮したコードと、データを圧縮したコードとが含まれている。読み出した圧縮コードが命令コードに対応するか、データに対応するかは、例えば、圧縮コードを読み出すタイミング、読み出す機構等によって判断することができる。
【0050】
すなわち、CPU20の実行サイクルで、命令フェッチステージのタイミングで読み出した場合は、命令コードを圧縮したコードであると判断し、メモリアクセスステージのタイミングで読み出した場合は、データを圧縮したコードであると判断することができる。
【0051】
そして、命令コードとして読み出された圧縮コードは、命令コード用辞書メモリI32cを参照して展開され、データとして読み出された圧縮コードは、データ用辞書Dメモリ33cを参照して展開される。
【0052】
本実施例において、命令コードの圧縮コードと、データの圧縮コードとは、読み出し時において区別されるため、独立のコード体系とすることができる。すなわち、命令コードの圧縮コードと、データの圧縮コードとで、同じコードを割り振ることができることになる。このため、圧縮コードメモリ31cに格納する圧縮コードのビット幅を短くすることができる。
【0053】
次に、本発明の第5の実施例について説明する。図6は、第5の実施例におけるプログラムメモリ30の構成例を説明するためのブロック図である。
【0054】
本実施例において、圧縮コードは、圧縮コードメモリ31dに加え、外部メモリ90にも格納するようにしている。これは、プログラムの容量が大きくて、プログラムメモリ30内には格納しきれない場合等に適用される。
【0055】
本図に示した例では、外部メモリ90からの圧縮コードが、バスコントローラ50を介してプログラムメモリ30内に入力される。そして、圧縮コードメモリ31dからの圧縮コードおよび外部メモリ90からの圧縮コードのいずれかを、コントローラ部35からの信号341によってセレクタ81dを制御することにより選択する。そして、辞書メモリ32d中の、選択された圧縮コードで示されるアドレスで示される命令コード62dが出力される。
【0056】
次に、本発明の第6の実施例について説明する。図7は、第6の実施例におけるプログラムメモリ30の構成例を説明するためのブロック図である。
【0057】
本実施例においては、連続する複数の命令コードをセットにして圧縮コード化する。例えば、連続する3命令を1つの圧縮コードに変換し、圧縮コードメモリ31e中の連続する3コードの先頭に格納する。そして、続く2つのコード(「スロット」と称する)は、実行時に読み飛ばすようにして、メモリアクセスによる電力消費を削減する。なお、スロット部分で参照する辞書メモリのアドレスは、先頭に格納した圧縮コードから生成するようにする。
【0058】
本図では、セットにする命令は1命令と連続する2命令と連続する3命令とである場合を例に説明する。もちろん本発明はこれに限られない。
【0059】
本例では、辞書メモリ32eを、1命令格納部分と、2命令格納部分と、3命令格納部分とに分割して、それぞれ対応する連続数の辞書(命令コード)を格納する。そして、1命令格納部分と2命令格納部分との境界を示すアドレスsa0をレジスタ721に格納し、2命令格納部分と3命令格納部分との境界を示すアドレスsa1をレジスタ722に格納する。これにより、辞書メモリ32eを参照するときに、そのアドレスが、1命令格納部分、2命令格納部分および3命令格納部分のいずれかであるかを判断することができる。
【0060】
例えば、c0、c1、c2という連続する3命令をセットにして、p0という圧縮コードに変換するとする。このとき、圧縮コードメモリ31eには、p0、スロット1、スロット2というコードを連続して格納する。なお、スロット1およびスロット2は、圧縮コードと同じビット長のダミーデータである。そして、辞書メモリ32eのp0で示されるアドレスにc0を格納し、続いてc1、c2を格納しておく。ここで、p0で示されるアドレスは、3命令格納部分に含まれるようにしておく。
【0061】
命令アドレス61eにより、圧縮コードメモリ31eのp0が指定されたとする。コントローラ部35eは、レジスタ722を参照して、p0が3命令格納部分に含まれると判断することができる。
【0062】
コントローラ部35eは、まず、辞書メモリ32eのp0で示されるアドレスに格納されているc0を命令コード62eとして出力する。次に、圧縮コードメモリ31eを参照することなく、辞書メモリ32eのc0に続く命令コードのアドレスを算出し、そのアドレスに格納されているc1を命令コード62eとして出力する。そして、同様に、続くc2を命令コード62eとして出力する。その後、圧縮コードメモリ31eのスロット2に続く圧縮コードを読み出すようにする。もちろん、圧縮コードが示すアドレスが、辞書メモリ32e中の2命令格納部分であれば、上記の圧縮コードメモリ31eにアクセスすることなく命令コードを出力する処理は1回で終了することになる。
【0063】
このように、命令コードをセットにすることで、連続して実行する複数圧縮コードの2番目の圧縮コード以降は読み出す必要がなくなる。このため、圧縮コードメモリ31eにアクセスする回数を減らすことができるため、メモリアクセスによる電力の消費を削減することができる。
【0064】
なお、スロットの部分には、ダミーデータではなく、命令コード実行時に参照されるデータのアドレスを示す圧縮コードを格納するようにしてもよい。この場合は、さらに、圧縮コードメモリ31eを有効活用することができる。
【0065】
次に、本発明の第7の実施例について説明する。図8は、第7の実施例におけるプログラムメモリ30の構成例を説明するためのブロック図である。
【0066】
本実施例は、前述の第6の実施例の変形である。
【0067】
本実施例においては、辞書メモリ32fを1命令格納部分と、連続命令格納部分との2つに分割する。そして、1命令格納部分と連続命令格納部分との境界を示すアドレスsaをレジスタ821に格納しておく。
【0068】
そして、圧縮コードメモリ31fに、連続命令に対応する圧縮コードを格納する場合には、スロット1の部分に命令の連続数を格納する。
【0069】
コントローラ35fは、圧縮コードを読み出すと、レジスタ821を参照することで、その圧縮コードが1命令に対応しているか連続命令に対応しているかを判断することができる。そして、1命令に対応している場合には、辞書メモリ32fから命令コードを読み出した後、次の圧縮コードを圧縮コードメモリ31fから読み出す。一方、連続命令に対応している場合には、辞書メモリ32fから命令コードを読み出した後、次のスロット1を読み出して、命令の連続数を取得する。そして、取得した連続数にしたがって、圧縮コードメモリ31fにアクセスすることなく辞書メモリ32fから命令コードを読み出すようにする。
【0070】
本実施例では、連続命令の3命令目以降は圧縮コードメモリ31fを読み出す必要がなくなることで、消費電力を削減することができる。また、第6の実施例同様に、スロット2以降の部分にデータの圧縮コードを格納することも可能である。
【0071】
次に、本発明の第8の実施例について説明する。図9は、第8の実施例におけるプログラムメモリ30の構成例を説明するためのブロック図である。
【0072】
本実施例では、圧縮コードメモリ31gと辞書メモリ32gとの間に圧縮コードレジスタ910を設けている。そして、圧縮コードメモリ31gから読み出した圧縮コードを、1クロック分、圧縮コードレジスタ910に格納する。
【0073】
このようにすることで、圧縮コードの読み出し処理と、辞書メモリ32gによる命令コードへの展開処理とを、パイプラインにおける2つのステージに分けることができ、マイコン10のクロック周波数の高速化を容易にすることができる。
【0074】
次に、本発明の第9の実施例について説明する。図10は、第9の実施例におけるプログラムメモリ30の構成例を説明するためのブロック図である。
【0075】
本実施例では、前述の第8の実施例の構成に対して、高速辞書メモリとして機能する辞書レジスタ1020と、辞書判定回路1030と、セレクタ1040とが追加された構成となっている。
【0076】
辞書レジスタ1020には、利用回数の多い命令コード、例えば、分岐先の命令コード等を格納することが望ましい。
【0077】
辞書判定回路1030は、圧縮コードメモリ31gから読み出した圧縮コードを、辞書レジスタ1020で展開するか、辞書メモリ32hで展開するかを判定する回路である。セレクタ1040は、辞書判定回路1030の判定結果に基づいて、辞書レジスタ1020および辞書メモリ32hのいずれかを選択して命令コード62hを出力する。
【0078】
このようにすることで、利用回数の多い命令コード、例えば、分岐先の命令コードを辞書レジスタ1020を用いて高速に展開することができる。特に、分岐等が発生し、命令アドレス61hが非連続となる場合の性能低下を少なくすることができる。
【0079】
次に、本発明の第10の実施例について説明する。図11は、第10の実施例におけるプログラムメモリ30の構成例を説明するためのブロック図である。
【0080】
本実施例では、連続する2つの圧縮コードを同時に読み出す。このとき、読み出しは1クロックおきに行なうようにする。また、辞書メモリ32を、例えば、辞書メモリA32i、辞書メモリB33iの2つ設けるようにする。2つの辞書メモリに格納する命令コードの組み合わせは任意である。例えば、命令コードの、最上位あるいは最下位ビットの値によって2つに割り振るようにすることができる。また、出現頻度の高い命令コードは双方の辞書メモリに格納するようにしてもよい。さらには、全命令コードを双方の辞書メモリに格納するようにしてもよい。
【0081】
コントローラ部35iは、同時に読み出した2つの圧縮コードを、それぞれレジスタA1111、レジスタB1112に格納する。
【0082】
そして、レジスタA1111およびレジスタB1112に格納された圧縮コードが示すそれぞれのアドレスが、2つの辞書メモリに分散している場合には、2つの辞書メモリから同時に命令コードを読み出す。一方、それぞれのアドレスが、片方の辞書メモリに重なっている場合には、まず、レジスタA1111で示される命令コード読み出し、次のサイクルでレジスタB1112で示される命令コードを読み出す。
【0083】
そして、同時に命令コードを読み出した場合には、レジスタB1112で示された命令コードをレジスタ1120に格納し、レジスタA1111で示された命令コードを出力した後に、レジスタB1112で示された命令コードを出力する。一方、順番に命令コードを読み出した場合には、読み出した順番で命令コードを出力する。
【0084】
このように2サイクルに1回、圧縮コードを読み込む場合において、2つの辞書メモリで同時に命令コードが読み出されたときには、間の1サイクルではメモリにアクセスする必要がなくなる。この時間を利用して、例えば、データをメモリから読み込むことができ、マイコン10の処理能力を高めることができる。
【0085】
次に、本発明の第11の実施例について説明する。図12は、第11の実施例におけるプログラムメモリ30の構成例を説明するためのブロック図である。
【0086】
本実施例においては、前述の第10の実施例の構成に、前述の第9実施例における辞書レジスタを追加した構成となっている。
【0087】
本実施例では、第10の実施例同様に、連続する2つの圧縮コードが同時に読み出される。そして、1番目の圧縮コードが辞書レジスタ1210で展開可能かどうかが判断される。辞書レジスタ1210で、展開可能な場合は、1サイクルで命令コードに展開され、次のサイクルで、2番目の圧縮コードを辞書メモリA32jあるいは辞書メモリB33jを用いて展開することができる。
【0088】
1番目の圧縮コードが辞書レジスタ1210で展開できないときは、前述の第10実施例同様の処理が行なわれ、連続する命令コードが順番に出力される。
【0089】
次に、本発明の第12の実施例について説明する。図13は、第12の実施例におけるプログラムメモリ30の構成例を説明するためのブロック図である。
【0090】
本実施例においては、元の命令コード長が16ビットの場合を例にする。本発明においては、元の命令コード長が短いほど、圧縮率が下がる傾向にあると考えられる。このため、本実施例では16ビット長の2つの命令コードを組にして、1つの圧縮コードに変換する。本図の例では、圧縮コードを16ビットとし、命令アドレス61kで1つずつ読み出す。読み出した圧縮コードは、辞書メモリ32kのアドレスとして使用し、16ビットの命令コードを同時に読み出すようにする。このようにすることで、元の命令コード長が短い場合でも高い圧縮率を達成することができる。
【0091】
このときの圧縮コードメモリ31kおよび辞書メモリ32kの構成方法の例について図14を参照して説明する。
【0092】
図14(a)は、圧縮コードp0が、命令コードc0とc1との組み合わせを指していることを示している。本図の辞書メモリ32jにおいて、16ビット長の命令コードの組み合わせは、「c0、c0」「c0、c1」「c0、c2」「c0、c3」…のようになっている。
【0093】
このような場合、圧縮コードメモリ31jおよび辞書メモリ32jを図14(b)に示すような構成とすることにより、辞書メモリ32jの容量を削減することができる。
【0094】
すなわち、辞書メモリ32kには、「c0、c1」「c2、c3」の組み合わせで命令コードを格納しておく。そして、圧縮コード1420は、組み合わせの先頭の命令コードを示すアドレス部分1421と、組み合わせの2番目の命令コードを示す差分部分1422(本例の場合では0〜3のいずれか)とに分けて格納するようにする。例えば、アドレス部分1421が「c0」を示し、差分部分1422が「2」を示している場合には、「c0、c2」の命令コードの組み合わせを表すことになる。また、差分部分1422が「0」を示している場合には、「c0、c0」の命令コードの組み合わせを表すことになる。
【0095】
なお、この構成例は、任意のビット長の命令コードにも適用することができる。
【0096】
次に、本発明の第13の実施例について説明する。図15は、第13の実施例におけるプログラムメモリ30の構成例を説明するためのブロック図である。
【0097】
本実施例は、圧縮コードメモリ31lと辞書メモリ32lとが、物理的に同一のメモリ1500上に設けられ、同時に読み出すことができない場合の構成例を示す(上述の実施例では、圧縮コードメモリと辞書メモリとは同時に読み出すことができることを想定している。ただし、同一のメモリであってもよい)。
【0098】
本実施例では、命令アドレス61lで16ビットの圧縮コードp0を読み出し、レジスタ1510で保持する。そして、圧縮コードを読み出した次のクロックサイクルで、レジスタ1510で保持した圧縮コードが示すアドレスに基づいて、例えば、16ビットの命令コードc0、c1を同時に読み出すようにする。
【0099】
なお、圧縮コードメモリ31lと辞書メモリ32lとが、物理的に同一のメモリ1500上に設けられている場合であっても、複数のデータを並行して読み出せる、例えば、2ポートメモリを用いて構成することで、圧縮コードと命令コードとを同時に読み出せるようになる。
【0100】
図16は、本発明を適用したマイコン100を利用した装置のブロック図である。本図において、マイコン100は、バスコントローラ50に、ダイレクトメモリアクセスコントローラ(DMA)51、割込みコントローラ(INT)52、例えば、タイマ、通信インタフェース、A/D変換等の周辺モジュールが接続されている。
【0101】
そして、マイコン100の外部には、バスコントローラ50、DMA51、INT52等を介して外部デバイス群120が接続されている。外部デバイス群120は、マイコン100の用途に応じて、例えば、メモリ、キー、表示装置等とすることができる。このような装置は、例えば、自動車内の組み込みシステムにおけるECU(Electronic Control Unit)等に適用することができる。
【0102】
【発明の効果】
上述のように、本発明によれば、高い圧縮率と、高速な命令展開性とを備えた命令コード圧縮技術が提供される。
【図面の簡単な説明】
【図1】は、本願発明を適用したマイクロコントローラの実施例の構成の要部を説明するためのブロック図である。
【図2】(a)は、本発明の基本的な原理を示す第1の実施例におけるプログラムメモリ30内に設けられた圧縮コードメモリ31と辞書メモリ32との関係を説明するための模式図である。(b)は、圧縮コードを用いない従来のプログラムメモリを説明するための模式図である。
【図3】は、第2の実施例におけるプログラムメモリ30の構成例を説明するためのブロック図である。
【図4】は、第3の実施例におけるプログラムメモリ30の構成例を説明するためのブロック図である。
【図5】は、第4の実施例におけるプログラムメモリ30の構成例を説明するためのブロック図である。
【図6】は、第5の実施例におけるプログラムメモリ30の構成例を説明するためのブロック図である。
【図7】は、第6の実施例におけるプログラムメモリ30の構成例を説明するためのブロック図である。
【図8】は、第7の実施例におけるプログラムメモリ30の構成例を説明するためのブロック図である。
【図9】は、第8の実施例におけるプログラムメモリ30の構成例を説明するためのブロック図である。
【図10】は、第9の実施例におけるプログラムメモリ30の構成例を説明するためのブロック図である。
【図11】は、第10の実施例におけるプログラムメモリ30の構成例を説明するためのブロック図である。
【図12】は、第11の実施例におけるプログラムメモリ30の構成例を説明するためのブロック図である。
【図13】は、第12の実施例におけるプログラムメモリ30の構成例を説明するためのブロック図である。
【図14】は、第12の実施例における圧縮コードメモリ31kおよび辞書メモリ32kの構成方法の例について説明するための図である。
【図15】は、第13の実施例におけるプログラムメモリ30の構成例を説明するためのブロック図である。
【図16】は、本発明を適用したマイコンを利用した装置の一例を示すブロック図である。
【符号の説明】
10…マイクロコントローラ
20…CPU、21…プログラムカウンタ
30…プログラムメモリ、31…圧縮コードメモリ
32…辞書メモリ、35…コントローラ部
40…RAM、50…バスコントローラ
Claims (18)
- プログラムに出現する命令コードを格納する辞書メモリと、
プログラムに含まれる命令コードのそれぞれが、プログラムに含まれる全命令コードを識別するのに足る語長の圧縮コードであって、その値が前記辞書メモリ中の対応する命令コードを格納したアドレスを示す圧縮コードに変換されて格納される圧縮コードメモリとを備えたプログラムメモリを有するマイクロコントローラであって、
前記圧縮コードは、命令コードをオペコード部分とオペランド部分に分割し、その部分対応に変換されたものであり、
前記辞書メモリは、前記部分対応に変換された圧縮コード対応に分割されていることを特徴とするマイクロコントローラ。 - プログラムに出現する命令コードを格納する辞書メモリと、
プログラムに含まれる命令コードのそれぞれが、プログラムに含まれる全命令コードを識別するのに足る語長の圧縮コードであって、その値が前記辞書メモリ中の対応する命令コードを格納したアドレスを示す圧縮コードに変換されて格納される圧縮コードメモリとを備えたプログラムメモリを有するマイクロコントローラであって、
前記圧縮コードは、命令コードの内容に応じて複数の属性に区分され、
前記辞書メモリは、前記圧縮コードの属性対応に分割されていることを特徴とするマイクロコントローラ。 - 請求項2に記載のマイクロコントローラであって、
前記複数の属性は、狭義の命令コードと、読み出し用データとを含むことを特徴とするマイクロコントローラ。 - プログラムに出現する命令コードを格納する辞書メモリと、
プログラムに含まれる命令コードのそれぞれが、プログラムに含まれる全命令コードを識別するのに足る語長の圧縮コードであって、その値が前記辞書メモリ中の対応する命令コードを格納したアドレスを示す圧縮コードに変換されて格納される圧縮コードメモリとを備えたプログラムメモリを有するマイクロコントローラであって、
圧縮コードのアドレスを指定された命令コードの読み出し要求に対し、前記圧縮コードメモリ中の当該アドレスに格納された圧縮コードを読み出し、ついで、前記辞書メモリ中の当該圧縮コードが示すアドレスに格納された命令コードを読み出す第1の読み出し手段と、
アドレスを指定された命令コードの読み出し要求に対し、前記辞書メモリ中の当該アドレスに格納されたデータを読み出す第3の読み出し手段と、
前記第1の読み出し手段および前記第3の読み出し手段のいずれかを選択的に機能させる選択手段とを備えることを特徴とするマイクロコントローラ。 - プログラムにしたがって処理を行なうマイクロコントローラであって、
プログラムに出現する命令コードを格納するメモリであって、1または連続する複数の命令コードを組として、それぞれの命令コード組を、命令コード組が含む命令コードの数ごとに区別された領域に格納する辞書メモリと、
前記辞書メモリの領域を判別するための情報を参照する手段と、
プログラムに含まれる命令コードの1または連続する複数の命令コードを組として、命令コード組のそれぞれが、プログラムに含まれる命令コード組を識別するのに足る語長の圧縮コードであって、その値が前記辞書メモリ中の対応する命令コード組を格納した領域の先頭アドレスを示す圧縮コードに変換されて格納され、かつ、圧縮コードが、複数の命令コードに対応する場合には、その数に応じた前記語長のデータが付加されて格納された圧縮コードメモリとを備え、
圧縮コードのアドレスを指定された命令コードの読み出し要求に対し、前記圧縮コードメモリ中の当該アドレスに格納された圧縮コードを読み出し、前記辞書メモリの領域を判別するための情報を取得して、前記辞書メモリ中の当該圧縮コードが示すアドレスに格納された命令コード組が含む命令コード数を取得し、前記辞書メモリの当該アドレスから連続する命令コードを、取得した数分読み出すことを特徴とするマイクロコントローラ。 - 請求項5に記載のマイクロコントローラであって、
前記圧縮コードメモリに付加されたデータは読み出さないことを特徴とするマイクロコントローラ。 - 請求項5に記載のマイクロコントローラであって、
前記圧縮コードメモリに付加されたデータは、読み出し用のデータであることを特徴とするマイクロコントローラ。 - プログラムを格納するマイクロコントローラであって、
プログラムに出現する命令コードを格納するメモリであって、1または連続する複数の命令コードを組として、それぞれの命令コード組を、命令コード組が含む命令コードが1であるか複数であるかによって区別された領域に格納する辞書メモリと、
前記辞書メモリの領域を判別するための情報を参照する手段と、
プログラムに含まれる命令コードの1または連続する複数の命令コードを組として、命令コード組のそれぞれが、プログラムに含まれる命令コード組を識別するのに足る語長の圧縮コードであって、その値が前記辞書メモリ中の対応する命令コード組を格納した領域の先頭アドレスを示す圧縮コードに変換されて格納され、かつ、圧縮コードが、複数の命令コードに対応する場合には、その数に応じた前記語長のデータが付加されるとともに、付加した最初のデータに、付加したデータの数を記録して格納された圧縮コードメモリとを備え、
圧縮コードのアドレスを指定された命令コードの読み出し要求に対し、前記圧縮コードメモリ中の当該アドレスに格納された圧縮コードを読み出し、前記辞書メモリの領域を判別するための情報を取得して、前記辞書メモリ中の当該圧縮コードが示すアドレスが複数の命令コードを含む格納された命令コード組を格納する領域であれば、前記付加された最初のデータに記録された数を取得し、前記辞書メモリの当該アドレスから連続する命令コードを、取得した数分読み出すことを特徴とするマイクロコントローラ。 - 請求項8に記載のマイクロコントローラであって、
前記圧縮コードメモリに付加されたデータのうち、最初のデータ以外は読み出さないことを特徴とするマイクロコントローラ。 - 請求項8に記載のマイクロコントローラであって、
前記圧縮コードメモリに付加されたデータは、最初のデータを除いて読み出し用のデータであること特徴とするマイクロコントローラ。 - プログラムにしたがって処理を行なうマイクロコントローラであって、
プログラムに出現する命令コードのうち、あらかじめ定めた特定の命令コードを格納する辞書レジスタと、
プログラムに出現する命令コードのうち、前記特定の命令コード以外の命令コードを格納する辞書メモリと、
プログラムに含まれる命令コードのそれぞれが、プログラムに含まれる全命令コードを識別するのに足る語長の圧縮コードであって、その値が前記辞書メモリあるいは辞書レジスタ中の対応する命令コードを格納したアドレスを示す圧縮コードに変換されて格納される圧縮コードメモリとを備え、
圧縮コードのアドレスを指定された命令コードの読み出し要求に対し、前記圧縮コードメモリ中の当該アドレスに格納された圧縮コードを読み出し、ついで、前記辞書メモリあるいは辞書レジスタ中の当該圧縮コードが示すアドレスに格納された命令コードを読み出すことを特徴とするマイクロコントローラ。 - 請求項11に記載のマイクロコントローラであって、
前記辞書レジスタは前記辞書メモリよりも早く命令コードを読み出すことができ、前記辞書レジスタには、少なくとも、分岐を指示する命令コードの分岐先の命令コードの一つが格納されることを特徴とするマイクロコントローラ。 - プログラムにしたがって処理を行なうマイクロコントローラであって、
プログラムに出現する命令コードを格納する2つの辞書メモリと、
プログラムに含まれる命令コードのそれぞれが、プログラムに含まれる全命令コードを識別するのに足る語長の圧縮コードであって、その値が前記辞書メモリ中の対応する命令コードを格納したアドレスを示す圧縮コードに変換されて格納される圧縮コードメモリと、
1クロックおきに連続する2つの圧縮コードを同時に読み出し、それぞれレジスタに一時的に格納する読み出し手段とを備え、
圧縮コードのアドレスを指定された命令コードの読み出し要求に対し、前記圧縮コードメモリ中の当該アドレスに格納された連続する2つの圧縮コードを読み出し、前記レジスタに格納し、
それぞれの圧縮コードが、異なる辞書メモリ示している場合には、同時にそれぞれの圧縮コードが示すアドレスに格納された命令コードを読み出し、対応する連続する圧縮コードの順番で出力し、
それぞれの圧縮コードが、同じ辞書メモリを示している場合には、連続する圧縮コードの順番に、圧縮コードが示すアドレスに格納された命令コードを読み出して出力することを特徴とするマイクロコントローラ。 - プログラムにしたがって処理を行なうマイクロコントローラであって、
プログラムに出現する命令コードのうち、あらかじめ定めた特定の命令コードを格納する辞書レジスタと、
プログラムに出現する命令コードのうち、前記特定の命令コード以外の命令コードを格納する2つの辞書メモリと、
プログラムに含まれる命令コードのそれぞれが、プログラムに含まれる全命令コードを識別するのに足る語長の圧縮コードであって、その値が前記辞書メモリあるいは前記辞書レジスタ中の対応する命令コードを格納したアドレスを示す圧縮コードに変換されて格納される圧縮コードメモリと、
1クロックおきに連続する2つの圧縮コードを同時に読み出し、それぞれレジスタに一時的に格納する読み出し手段とを備え、
圧縮コードのアドレスを指定された命令コードの読み出し要求に対し、前記圧縮コードメモリ中の当該アドレスに格納された連続する2つの圧縮コードを読み出し、前記レジスタに格納し、
連続する2つの圧縮コードの1番目の圧縮コードが、前記辞書レジスタを示している場合には、圧縮コードが示すアドレスに格納された命令コードを読み出して出力し、次に、2番目の圧縮コードが示す前記辞書メモリあるいは前記辞書レジスタ中のレジスタに格納された命令コードを読み出して出力し、
連続する2つの圧縮コードの1番目の圧縮コードが、前記辞書レジスタを示していない場合には、
それぞれの圧縮コードが、異なる辞書メモリ示しているかどうかを判断し、
異なる辞書メモリ示している場合には、同時にそれぞれの圧縮コードが示すアドレスに 格納された命令コードを読み出し、対応する連続する圧縮コードの順番で出力し、
同じ辞書メモリを示している場合には、連続する圧縮コードの順番に、圧縮コードが示すアドレスに格納された命令コードを読み出して出力することを特徴とするマイクロコントローラ。 - 請求項14に記載のマイクロコントローラであって、
前記辞書レジスタは前記辞書メモリよりも早く命令コードを読み出すことができ、前記辞書レジスタには、少なくとも、分岐を指示する命令コードの分岐先の命令コードの一つが格納されることを特徴とするマイクロコントローラ。 - プログラムにしたがって処理を行なうマイクロコントローラであって、
プログラムに出現する命令コードを格納する辞書メモリ領域と、
プログラムに含まれる命令コードのそれぞれが、プログラムに含まれる全命令コードを識別するのに足る語長の圧縮コードであって、その値が前記辞書メモリ中の対応する命令コードを格納したアドレスを示す圧縮コードに変換されて格納される圧縮コードメモリ領域とを備えるメモリと、
読み出した圧縮コードを一時的に格納するレジスタとを備え、
圧縮コードのアドレスを指定された命令コードの読み出し要求に対し、前記圧縮コードメモリ領域中の当該アドレスに格納された圧縮コードを読み出し、前記レジスタに格納し、ついで、前記レジスタに格納された圧縮コードが示す前記辞書メモリ領域中のアドレスに格納された命令コードを読み出すことを特徴とするマイクロコントローラ。 - 前記メモリは、並行読み出しが可能な2ポートメモリで構成され、第1のポートで前記圧縮コードを読み出し、第2のポートで前記命令コードを読み出すことを特徴とする請求項16に記載のマイクロコントローラ。
- プログラムにしたがって処理を行なうマイクロコントローラであって、
プログラムに出現する命令コードを格納する辞書メモリと、
プログラムに含まれる命令コードの連続する2つを組として、1番目に現れる命令コードのそれぞれを識別するのに足る語長のコードであって、その値が前記辞書メモリ中の対応する命令コードを格納したアドレスを示す第1の部分と、その値が前記辞書メモリ中の、前記命令コードの組の2番目の命令コードを格納した位置を前記アドレスに対する相対値を表す第2の部分とから構成される圧縮コードに変換されて格納される圧縮コードメモリとを備え、
圧縮コードのアドレスを指定された命令コードの読み出し要求に対し、前記圧縮コードメモリ中の当該アドレスに格納された圧縮コードを読み出し、ついで、前記辞書メモリ中の当該圧縮コードの第1の部分が示すアドレスに格納された命令コードを読み出し、ついで、当該圧縮コードの第2の部分によって特定される命令コードを読み出すことを特徴とするマイクロコントローラ。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001239442A JP3729759B2 (ja) | 2001-08-07 | 2001-08-07 | 圧縮された命令コードを読み出すマイクロコントローラ、命令コードを圧縮して格納するプログラムメモリ |
US10/101,480 US6915413B2 (en) | 2001-08-07 | 2002-03-20 | Micro-controller for reading out compressed instruction code and program memory for compressing instruction code and storing therein |
US10/201,249 US6986029B2 (en) | 2001-08-07 | 2002-07-24 | Micro-controller for reading out compressed instruction code and program memory for compressing instruction code and storing therein |
US11/117,509 US20050198471A1 (en) | 2001-08-07 | 2005-04-29 | Micro-controller for reading out compressed instruction code and program memory for compressing instruction code and storing therein |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001239442A JP3729759B2 (ja) | 2001-08-07 | 2001-08-07 | 圧縮された命令コードを読み出すマイクロコントローラ、命令コードを圧縮して格納するプログラムメモリ |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003050696A JP2003050696A (ja) | 2003-02-21 |
JP3729759B2 true JP3729759B2 (ja) | 2005-12-21 |
Family
ID=19070196
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001239442A Expired - Fee Related JP3729759B2 (ja) | 2001-08-07 | 2001-08-07 | 圧縮された命令コードを読み出すマイクロコントローラ、命令コードを圧縮して格納するプログラムメモリ |
Country Status (2)
Country | Link |
---|---|
US (3) | US6915413B2 (ja) |
JP (1) | JP3729759B2 (ja) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040133745A1 (en) * | 2002-10-28 | 2004-07-08 | Quicksilver Technology, Inc. | Adaptable datapath for a digital processing system |
JP3729759B2 (ja) * | 2001-08-07 | 2005-12-21 | 株式会社ルネサステクノロジ | 圧縮された命令コードを読み出すマイクロコントローラ、命令コードを圧縮して格納するプログラムメモリ |
US6907516B2 (en) * | 2002-05-30 | 2005-06-14 | Microsoft Corporation | Compression of program instructions using advanced sequential correlation |
US20040139298A1 (en) * | 2003-01-09 | 2004-07-15 | International Business Machines Corporation | Method and apparatus for instruction compression and decompression in a cache memory |
US7389408B1 (en) * | 2003-08-05 | 2008-06-17 | Sun Microsystems, Inc. | Microarchitecture for compact storage of embedded constants |
FR2868853A1 (fr) * | 2004-04-09 | 2005-10-14 | St Microelectronics Sa | Procede de delivrance de mots d'instruction tres longs a un processeurs et circuit integre avec un dispositif de memoire programme associe |
JP4986431B2 (ja) * | 2005-09-29 | 2012-07-25 | ルネサスエレクトロニクス株式会社 | プロセッサ |
US7861073B2 (en) * | 2007-01-03 | 2010-12-28 | Apple Inc. | On-chip decompression engine |
JP4633134B2 (ja) * | 2008-03-27 | 2011-02-16 | ルネサスエレクトロニクス株式会社 | マイクロコントローラ、制御システム及びマイクロコントローラの設計方法 |
CN102077195A (zh) * | 2008-05-08 | 2011-05-25 | Mips技术公司 | 具有紧凑指令集架构的微处理器 |
US20100312991A1 (en) * | 2008-05-08 | 2010-12-09 | Mips Technologies, Inc. | Microprocessor with Compact Instruction Set Architecture |
JP5549402B2 (ja) * | 2010-06-15 | 2014-07-16 | 富士通株式会社 | データ圧縮プログラムおよび方法,ならびにデータ復元プログラムおよび方法 |
US20110320775A1 (en) * | 2010-06-27 | 2011-12-29 | Edson Borin | Accelerating execution of compressed code |
JP5632315B2 (ja) * | 2011-03-17 | 2014-11-26 | 株式会社オプティム | 端末のリモート操作システム、リモート操作方法 |
JP5770534B2 (ja) | 2011-06-01 | 2015-08-26 | 富士通株式会社 | プロセッサ、圧縮プログラム、圧縮装置、および圧縮方法 |
US9348792B2 (en) * | 2012-05-11 | 2016-05-24 | Samsung Electronics Co., Ltd. | Coarse-grained reconfigurable processor and code decompression method thereof |
US20140115304A1 (en) * | 2012-10-18 | 2014-04-24 | Synopsys, Inc. | Compressed instruction code storage |
US9672041B2 (en) * | 2013-08-01 | 2017-06-06 | Andes Technology Corporation | Method for compressing variable-length instructions including PC-relative instructions and processor for executing compressed instructions using an instruction table |
US10216520B2 (en) * | 2014-10-06 | 2019-02-26 | Via Technologies, Inc. | Compressing instruction queue for a microprocessor |
KR20240001326A (ko) * | 2015-05-21 | 2024-01-03 | 제로포인트 테크놀로지 에이비 | 시맨틱 값 데이터 압축 및 압축해제를 위한 방법, 장치 및 시스템 |
US10861216B2 (en) * | 2017-04-07 | 2020-12-08 | Intel Corporation | Ray tracing apparatus and method for memory access and register operations |
WO2019071610A1 (zh) * | 2017-10-13 | 2019-04-18 | 华为技术有限公司 | 一种压缩和解压处理器所占内存的方法及装置 |
JP2019095952A (ja) * | 2017-11-21 | 2019-06-20 | ソニーセミコンダクタソリューションズ株式会社 | プロセッサ、情報処理装置および処理方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH066541A (ja) * | 1992-06-19 | 1994-01-14 | Minolta Camera Co Ltd | 複写機 |
JP2626449B2 (ja) * | 1993-03-08 | 1997-07-02 | 日本電気株式会社 | 移動交換局 |
CA2125337A1 (en) * | 1993-06-30 | 1994-12-31 | Marlin Jay Eller | Method and system for searching compressed data |
US6151618A (en) * | 1995-12-04 | 2000-11-21 | Microsoft Corporation | Safe general purpose virtual machine computing system |
US6691305B1 (en) * | 1999-11-10 | 2004-02-10 | Nec Corporation | Object code compression using different schemes for different instruction types |
JP3729759B2 (ja) * | 2001-08-07 | 2005-12-21 | 株式会社ルネサステクノロジ | 圧縮された命令コードを読み出すマイクロコントローラ、命令コードを圧縮して格納するプログラムメモリ |
-
2001
- 2001-08-07 JP JP2001239442A patent/JP3729759B2/ja not_active Expired - Fee Related
-
2002
- 2002-03-20 US US10/101,480 patent/US6915413B2/en not_active Expired - Fee Related
- 2002-07-24 US US10/201,249 patent/US6986029B2/en not_active Expired - Fee Related
-
2005
- 2005-04-29 US US11/117,509 patent/US20050198471A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20030033482A1 (en) | 2003-02-13 |
JP2003050696A (ja) | 2003-02-21 |
US20030033504A1 (en) | 2003-02-13 |
US6915413B2 (en) | 2005-07-05 |
US20050198471A1 (en) | 2005-09-08 |
US6986029B2 (en) | 2006-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3729759B2 (ja) | 圧縮された命令コードを読み出すマイクロコントローラ、命令コードを圧縮して格納するプログラムメモリ | |
KR100266337B1 (ko) | 정보처리회로,반도체집적회로장치,마이크로컴퓨터,및전자기기 | |
US5680567A (en) | Efficient addressing of large memories | |
US5047922A (en) | Virtual I/O | |
JP2000267848A (ja) | 情報処理装置 | |
JP2001222426A (ja) | 命令コード変換装置、情報処理システム及び命令コード作成方法 | |
JP2773471B2 (ja) | 情報処理装置 | |
KR100407548B1 (ko) | 트레이스 제어 회로 | |
US6158046A (en) | Computer device and method for processing data utilizing pseudoinstruction words | |
CN108920188B (zh) | 一种扩展寄存器堆的方法及装置 | |
KR100308211B1 (ko) | 압축 명령을 갖는 마이크로 컴퓨터 시스템 | |
JP2000029684A (ja) | コンピュ―タ・システム | |
JP3096576B2 (ja) | メモリ制御回路とその回路を内蔵した集積回路素子 | |
AU714669B2 (en) | Peripheral device control | |
JP3792633B2 (ja) | マイクロコントローラ、及びマイクロコントローラ装置 | |
JP3211750B2 (ja) | 情報処理装置及びパイプライン処理方法 | |
JP2000267876A (ja) | エミュレータ及びマイクロコンピュータ | |
JP2001142696A (ja) | マイクロプロセッサにおける命令供給装置および命令供給方法 | |
KR950003884B1 (ko) | 퍼스컴 버스 인터페이스 회로 | |
JP3097602B2 (ja) | データ処理装置 | |
JPH06149563A (ja) | データ処理装置 | |
Abd El-Hacam | Minimizing Power Consumption of Embedded system processors through Instruction-Set compression | |
JP2003015866A (ja) | プロセッサ | |
JP3091382B2 (ja) | キーボード入力読み取り方法 | |
JPH052525A (ja) | メモリ制御システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050624 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050705 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050905 |
|
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: 20050927 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20051004 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081014 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091014 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091014 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101014 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111014 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111014 Year of fee payment: 6 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111014 Year of fee payment: 6 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111014 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121014 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121014 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131014 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |