JP2000163264A - Cpu用のプログラム記憶装置 - Google Patents
Cpu用のプログラム記憶装置Info
- Publication number
- JP2000163264A JP2000163264A JP10339817A JP33981798A JP2000163264A JP 2000163264 A JP2000163264 A JP 2000163264A JP 10339817 A JP10339817 A JP 10339817A JP 33981798 A JP33981798 A JP 33981798A JP 2000163264 A JP2000163264 A JP 2000163264A
- Authority
- JP
- Japan
- Prior art keywords
- program
- code
- cpu
- rom
- memory means
- 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.)
- Pending
Links
Landscapes
- Stored Programmes (AREA)
- Executing Machine-Instructions (AREA)
Abstract
(57)【要約】
【課題】 低速のプログラムROMでも、実アクセス回
数を減らすことによって、命令を高速にフェッチできる
ようにする。プログラム格納量を多くする。 【解決手段】 プログラムROM37とメモリコントロ
ーラ36と固定命令長のCPU30からなり、あらかじ
めプログラムコードを解析し、出現頻度から圧縮コ−ド
対プログラムコ−ド間変換テーブル38/43を作成
し、出現頻度の高い方から上位n個(256個)のプロ
グラムコ−ドを実際の命令長よりも少ないビット数の圧
縮コードに置き換えて、バースト転送の単位で圧縮し
て、バースト開始アドレスからバースト単位でROM3
7に格納し、読み出し時にはコントローラ36がテーブ
ル38,33/43をもとに圧縮コ−ドをプログラムコ
ードに伸長し、CPU30に供給する。変換テ−ブルを
ROM37上に持ち、初期化時に、RAM32,33に
書込む。プログラムの各領域に各変換テ−ブルを宛て
る。
数を減らすことによって、命令を高速にフェッチできる
ようにする。プログラム格納量を多くする。 【解決手段】 プログラムROM37とメモリコントロ
ーラ36と固定命令長のCPU30からなり、あらかじ
めプログラムコードを解析し、出現頻度から圧縮コ−ド
対プログラムコ−ド間変換テーブル38/43を作成
し、出現頻度の高い方から上位n個(256個)のプロ
グラムコ−ドを実際の命令長よりも少ないビット数の圧
縮コードに置き換えて、バースト転送の単位で圧縮し
て、バースト開始アドレスからバースト単位でROM3
7に格納し、読み出し時にはコントローラ36がテーブ
ル38,33/43をもとに圧縮コ−ドをプログラムコ
ードに伸長し、CPU30に供給する。変換テ−ブルを
ROM37上に持ち、初期化時に、RAM32,33に
書込む。プログラムの各領域に各変換テ−ブルを宛て
る。
Description
【0001】
【発明の属する技術分野】本発明は、CPU,その動作
プログラムを格納したROMおよび一時的にデ−タを格
納するRAMでなる制御システムに関し、特にCPUの
動作プログラムを格納する記憶装置に関する。この種の
制御システムは、例えば、画像スキャナ,プリンタ,フ
ァクシミリ,デジタル複写機等の中央制御システムのコ
ンピュ−タシステムに用いられる。
プログラムを格納したROMおよび一時的にデ−タを格
納するRAMでなる制御システムに関し、特にCPUの
動作プログラムを格納する記憶装置に関する。この種の
制御システムは、例えば、画像スキャナ,プリンタ,フ
ァクシミリ,デジタル複写機等の中央制御システムのコ
ンピュ−タシステムに用いられる。
【0002】
【従来技術】従来、CPUの動作用のプログラムコ−ド
は、プログラムROMにそのままあるいは圧縮して格納
し、電源オンリセット時に、プログラムROMから読出
して、圧縮している場合には伸長して、RAMに書込
み、CPUが制御動作を行なうときは、高速に実行する
ためにRAMからフェツチしたりしていた。そのため、
高速に実行したい場合には、余分に高速なRAMを用意
したりする必要があった。特開平9−22353号公報
には、ROMの所要サイズを小さくするためにプログラ
ムコ−ドを圧縮してプログラムROMに格納し、プログ
ラムコ−ドを指定するアドレスと、圧縮コ−ドのアドレ
スとを結び付けるためのアドレス変換を行なうタグRO
M,プログラムROMから読出した圧縮コ−ドをプログ
ラムコ−ドに伸長するデ−タ伸長回路および伸長したプ
ログラムコ−ドを書込むキャッシュRAMを備える。こ
のキャッシュRAMは、プログラムROMの一部領域の
圧縮コ−ドを次々にプログラムコ−ドに伸長して格納す
ることにより、小さいサイズで済む。
は、プログラムROMにそのままあるいは圧縮して格納
し、電源オンリセット時に、プログラムROMから読出
して、圧縮している場合には伸長して、RAMに書込
み、CPUが制御動作を行なうときは、高速に実行する
ためにRAMからフェツチしたりしていた。そのため、
高速に実行したい場合には、余分に高速なRAMを用意
したりする必要があった。特開平9−22353号公報
には、ROMの所要サイズを小さくするためにプログラ
ムコ−ドを圧縮してプログラムROMに格納し、プログ
ラムコ−ドを指定するアドレスと、圧縮コ−ドのアドレ
スとを結び付けるためのアドレス変換を行なうタグRO
M,プログラムROMから読出した圧縮コ−ドをプログ
ラムコ−ドに伸長するデ−タ伸長回路および伸長したプ
ログラムコ−ドを書込むキャッシュRAMを備える。こ
のキャッシュRAMは、プログラムROMの一部領域の
圧縮コ−ドを次々にプログラムコ−ドに伸長して格納す
ることにより、小さいサイズで済む。
【0003】
【発明が解決しようとする課題】従来、ROM上でのプ
ログラム実行はROMのアクセスタイムが遅いことが原
因で高速に実行する事ができなかった。また、RAMに
コピーして実行する場合には余分にRAMが必要となる
問題があった。
ログラム実行はROMのアクセスタイムが遅いことが原
因で高速に実行する事ができなかった。また、RAMに
コピーして実行する場合には余分にRAMが必要となる
問題があった。
【0004】本発明は上記の問題を解決すべくなされた
もので、比較的低速のROMでも、実アクセス回数を減
らすことによって、RAMにコピーすることなく、命令
を高速にフェッチできるようにする命令コード格納法を
提供することを第1の目的とし、プログラムROMには
多くのプログラムコ−ドを格納しえて、命令を高速にフ
ェッチするためのRAMを使用することなく比較的に高
速にプログラムコ−ドを読出すことができるプログラム
記憶装置を提供することを第2の目的とする。
もので、比較的低速のROMでも、実アクセス回数を減
らすことによって、RAMにコピーすることなく、命令
を高速にフェッチできるようにする命令コード格納法を
提供することを第1の目的とし、プログラムROMには
多くのプログラムコ−ドを格納しえて、命令を高速にフ
ェッチするためのRAMを使用することなく比較的に高
速にプログラムコ−ドを読出すことができるプログラム
記憶装置を提供することを第2の目的とする。
【0005】
【課題を解決するための手段】(1)CPU(30)の動作
のためのプログラムに含まれるプログラムコ−ドを、そ
の命令長よりも少ないビット数のコードに置き換えて、
バースト転送の単位で圧縮して、バースト開始アドレス
からバースト単位で格納したプログラムメモリ手段(3
7),アドレスデ−タが指定するプログラムコ−ドを復元
するための変換情報を格納したテ−ブルメモリ手段(32,
33,38/42,43)、および、CPU(30)が与えるアドレスデ
−タおよびテ−ブルメモリ手段(32,33,38/42,43)の変換
情報に従って該アドレスデ−タ宛ての圧縮コ−ドをプロ
グラムコ−ドに伸長する伸長手段(35)、を含む、CPU
用のプログラム記憶装置。 (2)CPU(30)の動作のためのプログラムに含まれ
る、出現頻度が高いプログラムコ−ドを、その命令長よ
りも少ないビット数のコードに置き換えて、バースト転
送の単位で圧縮して、バースト開始アドレスからバース
ト単位で格納し、出現頻度が低いプログラムコ−ドはそ
のまま格納したプログラムメモリ手段(37),アドレスデ
−タが指定するプログラムコ−ドを直接に読み出し又は
復元するための変換情報を格納したテ−ブルメモリ手段
(32,33,38/42,43)、および、CPU(30)が与えるアドレ
スデ−タおよびテ−ブルメモリ手段の変換情報に従っ
て、プログラムメモリ手段(37)からアドレスデ−タ宛て
のコ−ドを読み出し、圧縮コ−ドを読み出したときはそ
れをプログラムコ−ドに伸長する伸長手段(35)、を含
む、CPU用のプログラム記憶装置。
のためのプログラムに含まれるプログラムコ−ドを、そ
の命令長よりも少ないビット数のコードに置き換えて、
バースト転送の単位で圧縮して、バースト開始アドレス
からバースト単位で格納したプログラムメモリ手段(3
7),アドレスデ−タが指定するプログラムコ−ドを復元
するための変換情報を格納したテ−ブルメモリ手段(32,
33,38/42,43)、および、CPU(30)が与えるアドレスデ
−タおよびテ−ブルメモリ手段(32,33,38/42,43)の変換
情報に従って該アドレスデ−タ宛ての圧縮コ−ドをプロ
グラムコ−ドに伸長する伸長手段(35)、を含む、CPU
用のプログラム記憶装置。 (2)CPU(30)の動作のためのプログラムに含まれ
る、出現頻度が高いプログラムコ−ドを、その命令長よ
りも少ないビット数のコードに置き換えて、バースト転
送の単位で圧縮して、バースト開始アドレスからバース
ト単位で格納し、出現頻度が低いプログラムコ−ドはそ
のまま格納したプログラムメモリ手段(37),アドレスデ
−タが指定するプログラムコ−ドを直接に読み出し又は
復元するための変換情報を格納したテ−ブルメモリ手段
(32,33,38/42,43)、および、CPU(30)が与えるアドレ
スデ−タおよびテ−ブルメモリ手段の変換情報に従っ
て、プログラムメモリ手段(37)からアドレスデ−タ宛て
のコ−ドを読み出し、圧縮コ−ドを読み出したときはそ
れをプログラムコ−ドに伸長する伸長手段(35)、を含
む、CPU用のプログラム記憶装置。
【0006】なお、理解を容易にするためにカッコ内に
は、図面に示し後述する実施例の対応要素の符号を、参
考までに付記した。
は、図面に示し後述する実施例の対応要素の符号を、参
考までに付記した。
【0007】例えば、圧縮対象プログラムの命令語(プ
ログラムコ−ド)の、プログラム上の使用(出現)頻度を
もとにして、たとえば、命令語が32bit長であるな
らば、8bitで表現可能な数256個の命令語を抽出
し、これらの命令語に、8bitで表現可能な数を命令
語番号として与えてそれを圧縮コ−ドとし、各圧縮コ−
ドと、それに宛てた各命令語とを、1対1のテーブルと
して用意してテ−ブルメモリ手段(32,33,38/42,43)に格
納しておく。たとえば、CPU(30)の命令読み込み時の
バースト転送長が4ワードであるとすると4ワードを1
ワードに圧縮して格納する事ができる。この場合に4ワ
ードバウンダリーで格納し、残り3ワードは無視する。
4ワードを1ブロックとみなすとこの単位で圧縮が行わ
れることになり、4ワードバウンダリーのアドレス毎に
格納される。プログラムが高級言語で書かれている場
合、コンパイラが出力するコードは特定の汎用レジスタ
に対するコードを多く含み、同じ命令語が繰り返しでて
くる可能性が高い。そのため、出現頻度の高い方から2
56命令をテーブルにすれば、ブロック単位で1ワード
に圧縮できる可能性がある。テ−ブルメモリ手段(32,3
3,38/42,43)には、ブロックに1ビットを宛てて、圧縮
したブロック宛てのビットは0、圧縮できなかったブロ
ック宛てのビットは1として、変換要否参照のためのタ
グを書込んでおく。
ログラムコ−ド)の、プログラム上の使用(出現)頻度を
もとにして、たとえば、命令語が32bit長であるな
らば、8bitで表現可能な数256個の命令語を抽出
し、これらの命令語に、8bitで表現可能な数を命令
語番号として与えてそれを圧縮コ−ドとし、各圧縮コ−
ドと、それに宛てた各命令語とを、1対1のテーブルと
して用意してテ−ブルメモリ手段(32,33,38/42,43)に格
納しておく。たとえば、CPU(30)の命令読み込み時の
バースト転送長が4ワードであるとすると4ワードを1
ワードに圧縮して格納する事ができる。この場合に4ワ
ードバウンダリーで格納し、残り3ワードは無視する。
4ワードを1ブロックとみなすとこの単位で圧縮が行わ
れることになり、4ワードバウンダリーのアドレス毎に
格納される。プログラムが高級言語で書かれている場
合、コンパイラが出力するコードは特定の汎用レジスタ
に対するコードを多く含み、同じ命令語が繰り返しでて
くる可能性が高い。そのため、出現頻度の高い方から2
56命令をテーブルにすれば、ブロック単位で1ワード
に圧縮できる可能性がある。テ−ブルメモリ手段(32,3
3,38/42,43)には、ブロックに1ビットを宛てて、圧縮
したブロック宛てのビットは0、圧縮できなかったブロ
ック宛てのビットは1として、変換要否参照のためのタ
グを書込んでおく。
【0008】例えば、プログラム全体の半分が圧縮でき
たと仮定すれば、すべて非圧縮の場合よりも、プログラ
ム読出しが1.37倍高速となり、すべて圧縮できたと
化定すれば、すべて非圧縮の場合よりも、プログラム読
出しが2倍ほど高速となって、プログラムROMからの
プログラムコ−ドの読出しが高速となる。すなわち命令
/データのフェッチが高速化される。また、圧縮できる
量対応で、プログラムROMの所要メモリ容量が低減
し、あるいはプログラム格納量を増やすことができる。
たと仮定すれば、すべて非圧縮の場合よりも、プログラ
ム読出しが1.37倍高速となり、すべて圧縮できたと
化定すれば、すべて非圧縮の場合よりも、プログラム読
出しが2倍ほど高速となって、プログラムROMからの
プログラムコ−ドの読出しが高速となる。すなわち命令
/データのフェッチが高速化される。また、圧縮できる
量対応で、プログラムROMの所要メモリ容量が低減
し、あるいはプログラム格納量を増やすことができる。
【0009】
【発明の実施の形態】(3)プログラムメモリ手段(37)
はROMであり、テ−ブルメモリ手段(32,33,38)は該R
OMの一領域(38)、ならびに、該領域の変換情報が書込
まれるRAM(32,3)を含む、上記(1)又は(2)の、
CPU用のプログラム記憶装置(図1,4,6)。 (4)プログラムメモリ手段(37)はROMであり、テ−
ブルメモリ手段(42,43)は該ROMとは別のROM(42,4
3)である、請求項1又は2記載の、CPU用のプログラ
ム記憶装置(図7)。 (5)プログラムコード格納用のROM(37)とメモリコ
ントローラ(36)と固定命令長のCPU(30)からなり、あ
らかじめプログラムコードを解析し、出現頻度からテー
ブル(38/43)を作成し、出現頻度の高い方から上位n個
(256個)の命令を実際の命令長よりも少ないビット数の
コードに置き換えて、バースト転送の単位で圧縮して、
バースト開始アドレスからバースト単位でメモリ(37)に
格納し、読み出し時にはメモリコントローラ(36)がテー
ブル(38,33/43)をもとに圧縮されたプログラムコードを
伸長し、CPU(30)に供給することを特徴とする制御装
置。 (6)上記(5)において、テーブルをメモリ(37)上に
持ち、テーブルを指定するレジスタ(32)を複数持つ。こ
れによれば、実行されるコード量のうちの圧縮されたコ
ード量が増加し、結果的にさらにフェッチが高速化され
る。 (7)上記(5)において、圧縮されている領域を指定
するレジスタ群(32)を複数個もち、非圧縮領域ではメモ
リにプログラムコードがそのまま格納されている。これ
によれば、圧縮する必要のないコードを明確にわけるこ
とで、実行されるコード量のうちの圧縮されたコード量
が増加し、結果的にフェッチが高速化される。 (8)上記(5)において、テーブル(43)をメモリコン
トローラ(36)に内蔵し、メモリ(37)上に持たない。これ
によれば、変換テーブルをROM(37)に持たないこと
で、ROM(37)にもつ圧縮コード量を増やすことがで
き、結果的にフェッチが高速化される。
はROMであり、テ−ブルメモリ手段(32,33,38)は該R
OMの一領域(38)、ならびに、該領域の変換情報が書込
まれるRAM(32,3)を含む、上記(1)又は(2)の、
CPU用のプログラム記憶装置(図1,4,6)。 (4)プログラムメモリ手段(37)はROMであり、テ−
ブルメモリ手段(42,43)は該ROMとは別のROM(42,4
3)である、請求項1又は2記載の、CPU用のプログラ
ム記憶装置(図7)。 (5)プログラムコード格納用のROM(37)とメモリコ
ントローラ(36)と固定命令長のCPU(30)からなり、あ
らかじめプログラムコードを解析し、出現頻度からテー
ブル(38/43)を作成し、出現頻度の高い方から上位n個
(256個)の命令を実際の命令長よりも少ないビット数の
コードに置き換えて、バースト転送の単位で圧縮して、
バースト開始アドレスからバースト単位でメモリ(37)に
格納し、読み出し時にはメモリコントローラ(36)がテー
ブル(38,33/43)をもとに圧縮されたプログラムコードを
伸長し、CPU(30)に供給することを特徴とする制御装
置。 (6)上記(5)において、テーブルをメモリ(37)上に
持ち、テーブルを指定するレジスタ(32)を複数持つ。こ
れによれば、実行されるコード量のうちの圧縮されたコ
ード量が増加し、結果的にさらにフェッチが高速化され
る。 (7)上記(5)において、圧縮されている領域を指定
するレジスタ群(32)を複数個もち、非圧縮領域ではメモ
リにプログラムコードがそのまま格納されている。これ
によれば、圧縮する必要のないコードを明確にわけるこ
とで、実行されるコード量のうちの圧縮されたコード量
が増加し、結果的にフェッチが高速化される。 (8)上記(5)において、テーブル(43)をメモリコン
トローラ(36)に内蔵し、メモリ(37)上に持たない。これ
によれば、変換テーブルをROM(37)に持たないこと
で、ROM(37)にもつ圧縮コード量を増やすことがで
き、結果的にフェッチが高速化される。
【0010】本発明の他の目的および特徴は、図面を参
照した以下の実施例の説明より明らかになろう。
照した以下の実施例の説明より明らかになろう。
【0011】
【実施例】−第1実施例− 図1に本発明の第1実施例を示す。CPU30は固定長
命令を実行するプロセッサであって、メモリコントロー
ラ36を介して、命令語(プログラムコ−ド)やデータ
が格納されROM37と、スタックや変数など一時デ−
タ格納用のRAMに接続されているが、該RAMは一般
的なものであり、図示を省略した。
命令を実行するプロセッサであって、メモリコントロー
ラ36を介して、命令語(プログラムコ−ド)やデータ
が格納されROM37と、スタックや変数など一時デ−
タ格納用のRAMに接続されているが、該RAMは一般
的なものであり、図示を省略した。
【0012】メモリコントローラ36は、CPU30か
らの要求を受け取ったり、データのやり取りをするため
にCPU I/F 31を持ち、速度緩衝用バッファと
してFIFOメモリ34と、圧縮されたコードを伸長す
るための伸長器35と、圧縮コードが格納されているR
OM37上の変換テーブル38の位置と圧縮コード39
の位置を指定するためのレジスタ32を持ち、CPU3
0が、電源オンリセットなどによるRESET後の処理
として、ROM37上の先頭の変換テーブル38の内容
を、レジスタ群32およびテーブルRAM33に読み込
む。ROM37上の変換テーブル38の先頭には、変換
テ−ブルを適用するROM上の領域(圧縮コ−ド存在領
域)の開始アドレス,終了アドレスおよび変換テーブル
の位置があり、これらがレジスタ群32に書込まれ、こ
れらのデ−タの次の変換テ−ブルがテ−ブル用RAM3
3に書込まれる。
らの要求を受け取ったり、データのやり取りをするため
にCPU I/F 31を持ち、速度緩衝用バッファと
してFIFOメモリ34と、圧縮されたコードを伸長す
るための伸長器35と、圧縮コードが格納されているR
OM37上の変換テーブル38の位置と圧縮コード39
の位置を指定するためのレジスタ32を持ち、CPU3
0が、電源オンリセットなどによるRESET後の処理
として、ROM37上の先頭の変換テーブル38の内容
を、レジスタ群32およびテーブルRAM33に読み込
む。ROM37上の変換テーブル38の先頭には、変換
テ−ブルを適用するROM上の領域(圧縮コ−ド存在領
域)の開始アドレス,終了アドレスおよび変換テーブル
の位置があり、これらがレジスタ群32に書込まれ、こ
れらのデ−タの次の変換テ−ブルがテ−ブル用RAM3
3に書込まれる。
【0013】変換テーブル38には、あらかじめ圧縮対
象プログラムの命令語の頻度をもとにして、たとえば、
命令語が32bit長であるならば、8bitで表現可
能な256個の命令を1対1のテーブルとして用意した
ものであり、たとえば、CPU30の命令読み込み時の
バースト転送長が4ワードであるとすると4ワードを1
ワードに圧縮して格納する事ができる。この場合に4ワ
ードバウンダリーで格納し、残り3ワードは無視する。
4ワードを1ブロックとみなすとこの単位で圧縮が行わ
れることになり、4ワードバウンダリーのアドレス毎に
格納される。
象プログラムの命令語の頻度をもとにして、たとえば、
命令語が32bit長であるならば、8bitで表現可
能な256個の命令を1対1のテーブルとして用意した
ものであり、たとえば、CPU30の命令読み込み時の
バースト転送長が4ワードであるとすると4ワードを1
ワードに圧縮して格納する事ができる。この場合に4ワ
ードバウンダリーで格納し、残り3ワードは無視する。
4ワードを1ブロックとみなすとこの単位で圧縮が行わ
れることになり、4ワードバウンダリーのアドレス毎に
格納される。
【0014】プログラムが高級言語で書かれている場
合、コンパイラが出力するコードは特定の汎用レジスタ
に対するコードを多く含み、同じ命令語が繰り返しでて
くる可能性が高い。すなわちプログラム上に同じ命令語
が多く存在する。そのため、出現頻度の高い方から25
6個の命令語を摘出し、8ビットコ−ド(圧縮コ−ド)
で各命令語(プログラムコ−ド)を指定し、この圧縮コ
−ドとプログラムコ−ドの対照をテーブルにすれば、命
令語をブロック単位で1ワードに圧縮できる可能性があ
る。変換テーブル38には、ブロックに1ビットを与え
て圧縮したブロックは0、圧縮できなかったブロックは
1とした、変換要否参照のためのテーブルを含んでい
る。
合、コンパイラが出力するコードは特定の汎用レジスタ
に対するコードを多く含み、同じ命令語が繰り返しでて
くる可能性が高い。すなわちプログラム上に同じ命令語
が多く存在する。そのため、出現頻度の高い方から25
6個の命令語を摘出し、8ビットコ−ド(圧縮コ−ド)
で各命令語(プログラムコ−ド)を指定し、この圧縮コ
−ドとプログラムコ−ドの対照をテーブルにすれば、命
令語をブロック単位で1ワードに圧縮できる可能性があ
る。変換テーブル38には、ブロックに1ビットを与え
て圧縮したブロックは0、圧縮できなかったブロックは
1とした、変換要否参照のためのテーブルを含んでい
る。
【0015】CPU30が、圧縮できなかったブロック
(プログラムコ−ド)の読み出しをメモリコントローラ
36に要求した場合は、図2に示されるように、4ワー
ドの読み込みを行い、その場合は31クロックの時間が
かかることになる。図2においてCLKは、CPU30
およびそれを含むシステムが動作するための動作クロッ
クである。CSLは、メモリコントローラ36がCPU
30からの読み出し要求を受けて、アドレスをデコード
した結果、ROM37を選択するための選択信号であ
る。ADDRは、CPU30が読み出しを要求したアド
レスである。OELは、ROM37に対して読み出しを
示す信号である。DATAは、ROM37のデータ出力
信号である。FIFOWは、ROM37からの出力をメ
モリコントローラ36がCPU30に渡すために一時保
管するための、FIFOメモリ34への書き込み信号で
ある。FREADYは、CPU30に渡すためにFIF
Oメモリ34から、CPU I/F 31が読み出すデ
ータが存在することを示す信号である。FIFORは、
CPU I/F 31がFIFO34からデータを読み
出すための信号であり、読み出し後、データがFIFO
メモリ34に存在しなければ、FREADYはネゲート
される。
(プログラムコ−ド)の読み出しをメモリコントローラ
36に要求した場合は、図2に示されるように、4ワー
ドの読み込みを行い、その場合は31クロックの時間が
かかることになる。図2においてCLKは、CPU30
およびそれを含むシステムが動作するための動作クロッ
クである。CSLは、メモリコントローラ36がCPU
30からの読み出し要求を受けて、アドレスをデコード
した結果、ROM37を選択するための選択信号であ
る。ADDRは、CPU30が読み出しを要求したアド
レスである。OELは、ROM37に対して読み出しを
示す信号である。DATAは、ROM37のデータ出力
信号である。FIFOWは、ROM37からの出力をメ
モリコントローラ36がCPU30に渡すために一時保
管するための、FIFOメモリ34への書き込み信号で
ある。FREADYは、CPU30に渡すためにFIF
Oメモリ34から、CPU I/F 31が読み出すデ
ータが存在することを示す信号である。FIFORは、
CPU I/F 31がFIFO34からデータを読み
出すための信号であり、読み出し後、データがFIFO
メモリ34に存在しなければ、FREADYはネゲート
される。
【0016】つぎに、CPU30が、圧縮されたコード
の読み出しを要求した場合のタイミングチャートを、図
3に示す。上述の図2上の同じ信号名の信号は、同じ意
味付けである。DECOMPは、圧縮されたコードを伸
長することを示す信号である。伸長をすることで1ワー
ドのデータは4ワードになり、1ワードずつFIFOメ
モリ34に書き込まれる。2クロック遅れて、CPU
I/F 31はFIFOメモリ34から連続で4ワード
を読み出すことができる。この場合、4ワードを読み出
すのに必要なクロック数は、14クロックである。圧縮
していない場合、4ワードのアクセスに31クロックか
かるので1ワードあたり7.75クロック必要であり、
圧縮されている場合、4ワードのアクセスには14クロ
ックかかるので、1ワードあたり3.5クロック必要で
ある。以上のように、圧縮した場合の方が2倍ほど高速
であり、全体の半分が圧縮できたと仮定すれば、1.3
7倍高速化されることになる。
の読み出しを要求した場合のタイミングチャートを、図
3に示す。上述の図2上の同じ信号名の信号は、同じ意
味付けである。DECOMPは、圧縮されたコードを伸
長することを示す信号である。伸長をすることで1ワー
ドのデータは4ワードになり、1ワードずつFIFOメ
モリ34に書き込まれる。2クロック遅れて、CPU
I/F 31はFIFOメモリ34から連続で4ワード
を読み出すことができる。この場合、4ワードを読み出
すのに必要なクロック数は、14クロックである。圧縮
していない場合、4ワードのアクセスに31クロックか
かるので1ワードあたり7.75クロック必要であり、
圧縮されている場合、4ワードのアクセスには14クロ
ックかかるので、1ワードあたり3.5クロック必要で
ある。以上のように、圧縮した場合の方が2倍ほど高速
であり、全体の半分が圧縮できたと仮定すれば、1.3
7倍高速化されることになる。
【0017】−第2実施例− 図4に、本発明の第2実施例を示す。この第2実施例の
基本的な構成および動作は第1実施例と同じだが、変換
テ−ブル38とレジスタ32を複数380〜382,3
20〜322にしている点が異なる。プログラムは処理
によって、出現する命令語の頻度が異なる。そのため、
第2実施例では、プログラムをはじめから処理別に3つ
に分類し、それぞれに対して、上述の第1実施例と同様
に変換テーブル0〜2すなわち380〜382を作成し
た。これにより、局所的な圧縮率をあげることができ
た。この変換テ−ブル380〜382に対応付けて、レ
ジスタ群0〜2すなわち320〜322を設定した。
基本的な構成および動作は第1実施例と同じだが、変換
テ−ブル38とレジスタ32を複数380〜382,3
20〜322にしている点が異なる。プログラムは処理
によって、出現する命令語の頻度が異なる。そのため、
第2実施例では、プログラムをはじめから処理別に3つ
に分類し、それぞれに対して、上述の第1実施例と同様
に変換テーブル0〜2すなわち380〜382を作成し
た。これにより、局所的な圧縮率をあげることができ
た。この変換テ−ブル380〜382に対応付けて、レ
ジスタ群0〜2すなわち320〜322を設定した。
【0018】図5にレジスタ群320のレジスタ構成を
示す。レジスタ群320には、変換テ−ブル380を適
用するプログラム領域(圧縮コ−ド0)の、プログラム
デ−タの開始アドレス,終了アドレスおよびROM37
上の変換テ−ブル380の位置をそれぞれ書込む。レジ
スタ群321および322は、それぞれ変換テ−ブル3
81および382に関する上述のデ−タが書込まれる。
電源オンリセットなどによるRESET後の処理とし
て、ROM37上の先頭の初期化プログラムが読まれて
それによって変換テ−ブル380,381および382
が読み出されてそれらの情報がレジスタ群320,32
1および322ならびにテ−ブル用RAM330,33
1および332に書込まれる。
示す。レジスタ群320には、変換テ−ブル380を適
用するプログラム領域(圧縮コ−ド0)の、プログラム
デ−タの開始アドレス,終了アドレスおよびROM37
上の変換テ−ブル380の位置をそれぞれ書込む。レジ
スタ群321および322は、それぞれ変換テ−ブル3
81および382に関する上述のデ−タが書込まれる。
電源オンリセットなどによるRESET後の処理とし
て、ROM37上の先頭の初期化プログラムが読まれて
それによって変換テ−ブル380,381および382
が読み出されてそれらの情報がレジスタ群320,32
1および322ならびにテ−ブル用RAM330,33
1および332に書込まれる。
【0019】その後メモリコントロ−ラ36が、CPU
30が与えるプログラムリ−ド命令のアドレスが、レジ
スタ群320〜322の各領域のいずれかにあるかをチ
ェックして、例えば圧縮コ−ド0領域であると、テ−ブ
ル用RAM330を参照して該アドレス対応のROM3
7上デ−タが圧縮コ−ドか非圧縮プログラムコ−ドかを
チェックして、圧縮コ−ドであるとROM37より読出
したデ−タを、変換テ−ブル0に基づいて伸長する。
30が与えるプログラムリ−ド命令のアドレスが、レジ
スタ群320〜322の各領域のいずれかにあるかをチ
ェックして、例えば圧縮コ−ド0領域であると、テ−ブ
ル用RAM330を参照して該アドレス対応のROM3
7上デ−タが圧縮コ−ドか非圧縮プログラムコ−ドかを
チェックして、圧縮コ−ドであるとROM37より読出
したデ−タを、変換テ−ブル0に基づいて伸長する。
【0020】−第3実施例− 図6に本発明の第3実施例を示す。全体的にプログラム
を分類すると1度しか実行されない部分や遅くてもまっ
たく問題ない部分が存在する。その部分を圧縮の対象に
して管理するのはリソースの無駄である。そこで第3実
施例では、該部分を圧縮コ−ド処理から除外するため
に、非圧縮コード領域とした。これにより、局所的な圧
縮効率が向上する。この第3実施例の、圧縮コ−ド処理
に関連する構成および機能は、図4に示す第2実施例と
同様である。
を分類すると1度しか実行されない部分や遅くてもまっ
たく問題ない部分が存在する。その部分を圧縮の対象に
して管理するのはリソースの無駄である。そこで第3実
施例では、該部分を圧縮コ−ド処理から除外するため
に、非圧縮コード領域とした。これにより、局所的な圧
縮効率が向上する。この第3実施例の、圧縮コ−ド処理
に関連する構成および機能は、図4に示す第2実施例と
同様である。
【0021】−第4実施例− 図7に本発明の第4実施例を示す。プログラムはライブ
ラリー部分とそれを呼び出す部分に分類され、ライブラ
リーは基本的には固定され、変更が少ないものと考えら
れる。そこで、ライブラリー部分の圧縮に注目して、そ
の部分のテーブルをメモリコントローラ36に内蔵する
ことによって、変換テーブルをROM37におかなくて
も圧縮コードを伸長することができるようになる。これ
を実現するのが第4実施例であり、レジスタ群42(4
20〜423)および変換テ−ブル43(430〜43
2)を、メモリコントロ−ラ36のROMに割り宛て
て、上述の第2,第3実施例ではROM37上に書込ん
だ変換テ−ブル0〜2およびそれに関連する情報を、メ
モリコントロ−ラ36のROMに書込んだ。この第4実
施例では、電源オンリセットなどのRESET直後に、
ROM37からメモリコントロ−ラ36へのデ−タ設定
は不要である。リセット後の、通常のプログラム読出し
のときのメモリコントロ−ラ36の動作は、図6に示す
第3実施例と同様である。
ラリー部分とそれを呼び出す部分に分類され、ライブラ
リーは基本的には固定され、変更が少ないものと考えら
れる。そこで、ライブラリー部分の圧縮に注目して、そ
の部分のテーブルをメモリコントローラ36に内蔵する
ことによって、変換テーブルをROM37におかなくて
も圧縮コードを伸長することができるようになる。これ
を実現するのが第4実施例であり、レジスタ群42(4
20〜423)および変換テ−ブル43(430〜43
2)を、メモリコントロ−ラ36のROMに割り宛て
て、上述の第2,第3実施例ではROM37上に書込ん
だ変換テ−ブル0〜2およびそれに関連する情報を、メ
モリコントロ−ラ36のROMに書込んだ。この第4実
施例では、電源オンリセットなどのRESET直後に、
ROM37からメモリコントロ−ラ36へのデ−タ設定
は不要である。リセット後の、通常のプログラム読出し
のときのメモリコントロ−ラ36の動作は、図6に示す
第3実施例と同様である。
【図1】 本発明の第1実施例の構成を示すブロック図
である。
である。
【図2】 従来のROMアクセスと同様に、図1に示す
ROM37により非圧縮プログラムコ−ドを読出すとき
の制御信号等の変化を示すタイミングチヤートである。
ROM37により非圧縮プログラムコ−ドを読出すとき
の制御信号等の変化を示すタイミングチヤートである。
【図3】 図1に示すROM37より圧縮コ−ドを読出
してプログラムコ−ドを復元するときの制御信号等の変
化を示すタイミングチヤートである
してプログラムコ−ドを復元するときの制御信号等の変
化を示すタイミングチヤートである
【図4】 本発明の第2実施例の構成を示すブロック図
である。
である。
【図5】 図4に示すレジスタ群320のレジスタ構成
を模式的に示す平面図である。
を模式的に示す平面図である。
【図6】 本発明の第3実施例の構成を示すブロック図
である。
である。
【図7】 本発明の第4実施例の構成を示すブロック図
である。
である。
36:メモリコントロ−ラ
Claims (4)
- 【請求項1】CPUの動作のためのプログラムに含まれ
るプログラムコ−ドを、その命令長よりも少ないビット
数のコードに置き換えて、バースト転送の単位で圧縮し
て、バースト開始アドレスからバースト単位で格納した
プログラムメモリ手段,アドレスデ−タが指定するプロ
グラムコ−ドを復元するための変換情報を格納したテ−
ブルメモリ手段、および、CPUが与えるアドレスデ−
タおよびテ−ブルメモリ手段の変換情報に従って該アド
レスデ−タ宛ての圧縮コ−ドをプログラムコ−ドに伸長
する伸長手段、を含む、CPU用のプログラム記憶装
置。 - 【請求項2】CPUの動作のためのプログラムに含まれ
る、出現頻度が高いプログラムコ−ドを、その命令長よ
りも少ないビット数のコードに置き換えて、バースト転
送の単位で圧縮して、バースト開始アドレスからバース
ト単位で格納し、出現頻度が低いプログラムコ−ドはそ
のまま格納したプログラムメモリ手段,アドレスデ−タ
が指定するプログラムコ−ドを直接に読み出し又は復元
するための変換情報を格納したテ−ブルメモリ手段、お
よび、CPUが与えるアドレスデ−タおよびテ−ブルメ
モリ手段の変換情報に従って、プログラムメモリ手段か
らアドレスデ−タ宛てのコ−ドを読み出し、圧縮コ−ド
を読み出したときはそれをプログラムコ−ドに伸長する
伸長手段、を含む、CPU用のプログラム記憶装置。 - 【請求項3】プログラムメモリ手段はROMであり、テ
−ブルメモリ手段は該ROMの一領域、ならびに、該領
域の変換情報が書込まれるRAMを含む、請求項1又は
2記載の、CPU用のプログラム記憶装置。 - 【請求項4】プログラムメモリ手段はROMであり、テ
−ブルメモリ手段は該ROMとは別のROMである、請
求項1又は2記載の、CPU用のプログラム記憶装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10339817A JP2000163264A (ja) | 1998-11-30 | 1998-11-30 | Cpu用のプログラム記憶装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10339817A JP2000163264A (ja) | 1998-11-30 | 1998-11-30 | Cpu用のプログラム記憶装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2000163264A true JP2000163264A (ja) | 2000-06-16 |
Family
ID=18331109
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP10339817A Pending JP2000163264A (ja) | 1998-11-30 | 1998-11-30 | Cpu用のプログラム記憶装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2000163264A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010521751A (ja) * | 2007-03-27 | 2010-06-24 | インテル コーポレイション | プログラム命令の圧縮のための圧縮エントリーの最適選択 |
US9146933B2 (en) | 2011-12-22 | 2015-09-29 | International Business Machines Corporation | Compressed storage access system with uncompressed frequent use data |
-
1998
- 1998-11-30 JP JP10339817A patent/JP2000163264A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010521751A (ja) * | 2007-03-27 | 2010-06-24 | インテル コーポレイション | プログラム命令の圧縮のための圧縮エントリーの最適選択 |
US9146933B2 (en) | 2011-12-22 | 2015-09-29 | International Business Machines Corporation | Compressed storage access system with uncompressed frequent use data |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5778255A (en) | Method and system in a data processing system for decompressing multiple compressed bytes in a single machine cycle | |
US5836013A (en) | Method and apparatus for compressing system read only memory in a computing system | |
US5805086A (en) | Method and system for compressing data that facilitates high-speed data decompression | |
JP2000267848A (ja) | 情報処理装置 | |
KR950001485A (ko) | 연산처리방법 및 마이크로 컴퓨터 | |
JP2000135821A (ja) | プリンタ | |
US6158046A (en) | Computer device and method for processing data utilizing pseudoinstruction words | |
JPH1027127A (ja) | データ圧縮記憶演算装置 | |
JP2000163264A (ja) | Cpu用のプログラム記憶装置 | |
KR100463205B1 (ko) | 시퀀셜 버퍼를 내장하여 디에스피의 데이터 억세스 성능을향상시키는 컴퓨터 시스템 및 그 컴퓨터 시스템의 데이터억세스 방법 | |
JPH04284551A (ja) | 圧縮データを格納した読み出し専用メモリを備えた装置 | |
JP3051014B2 (ja) | データ記憶装置及びデータシステム | |
JPH0628150A (ja) | プログラム容量圧縮方法 | |
JPH05204591A (ja) | 画像描画装置 | |
JPH05189360A (ja) | データ転送および記憶方式 | |
JPH08328817A (ja) | コンピュータシステム及びそれに用いるデータ伸張器 | |
JPH05274198A (ja) | 情報処理装置 | |
JP2845746B2 (ja) | マイクロプログラム制御装置 | |
JP3087488B2 (ja) | データ復元回路 | |
JP2000029788A (ja) | キャッシュメモリシステム及びそれに用いるキャッシュ制御方法並びにその制御プログラムを記録した記録媒体 | |
JP2000231494A (ja) | ソフトウェア実行システム及びソフトウェア実行方法 | |
JPH08263263A (ja) | データ処理装置および圧縮プログラム作成装置 | |
JP2001166945A (ja) | 半導体装置及び圧縮プログラムの生成方法 | |
JP2507399B2 (ja) | デ―タベ―ス装置 | |
JP2001100957A (ja) | 印刷装置及び印刷エンジン制御方法 |