JPH0922353A - 1チップ・マイクロコンピュータおよびその命令コード格納方法 - Google Patents

1チップ・マイクロコンピュータおよびその命令コード格納方法

Info

Publication number
JPH0922353A
JPH0922353A JP7169700A JP16970095A JPH0922353A JP H0922353 A JPH0922353 A JP H0922353A JP 7169700 A JP7169700 A JP 7169700A JP 16970095 A JP16970095 A JP 16970095A JP H0922353 A JPH0922353 A JP H0922353A
Authority
JP
Japan
Prior art keywords
instruction
rom
instruction code
cache
compressed
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
Application number
JP7169700A
Other languages
English (en)
Inventor
Makoto Shinohara
誠 篠原
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 JP7169700A priority Critical patent/JPH0922353A/ja
Publication of JPH0922353A publication Critical patent/JPH0922353A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)
  • Microcomputers (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Advance Control (AREA)

Abstract

(57)【要約】 【目的】オブジェクト効率がよくないCPUを採用する
場合でも、命令コードを格納したROMのパターンサイ
ズを抑制し、1チップ化に際してチップサイズを抑制で
きるコストパーフォーマンスの良いマイクロコンピュー
タを提供する。 【構成】命令キャッシュ11から命令をフェッチするC
PU10の処理動作を命令するための予めデータ圧縮さ
れた命令コードを格納したROM本体12と、ROM本
体から読み出すべき命令コードが格納されている先頭位
置を参照するためのタグデータを格納したタグROM1
3と、CPUから出力されたアドレスに基づいてタグR
OMからタグデータを読み出し、タグデータに基づいて
ROM本体から命令コードを読み出すキャッシュ制御回
路14と、ROM本体から読み出された命令コードを伸
長して命令コードを復元し、命令キャッシュに送るデー
タ伸長回路13とを具備する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、1チップ・マイク
ロコンピュータおよびその命令コード格納方法に係り、
特に命令コードの格納装置および格納方法に関するもの
で、例えば処理単位が32ビット以上のマイクロコンピ
ュータ(以下、マイコンと記す)に使用される。
【0002】
【従来の技術】従来のマイコンにおいては、命令コード
はそのままROM(読み出し専用メモリ)などに格納さ
れているので、マイコンの命令コードが増大するにつれ
て、命令コード格納用のROMをCPU(中央処理ユニ
ット)と同一チップ上に搭載してマイコンを1チップ化
することが困難になる、あるいは、その利点がなくな
る。その理由を以下に述べる。
【0003】一般に、処理単位が32ビット以上のマイ
コンは、その性能向上のために、採用するCPUがCI
SC型からRISC型(Reduced Instruction Set Comp
uter;縮小命令セット型)に移行しつつある。上記RI
SC型のCPUは、CISC型のCPUと比べて命令コ
ードが冗長であり、それによりオブジェクト効率が悪く
なる。
【0004】このような冗長な命令コードを持つRIS
C型のCPUを1チップ・マイコンに組み込んでRIS
C型マイコンを実現する場合、一連の命令コードをその
まま順にROMの各アドレスのメモリブロック内に格納
すると、ROMのパターンサイズが非常に大きくなる。
この場合、小型のRISC型CPUを用いたとしてもチ
ップサイズが非常に大きくなり、1チップ化によるコス
トダウンの利点が得られなくなる。
【0005】
【発明が解決しようとする課題】上記したように従来の
RISC型マイコンは、命令コードが冗長であり、冗長
な命令コードをそのままROMに格納すると、ROMの
パターンサイズが非常に大きくなり、1チップ化に際し
てチップサイズが非常に大きくなるという問題があっ
た。
【0006】本発明は上記の問題点を解決すべくなされ
たもので、オブジェクト効率がよくないCPUを採用す
る場合でも、命令コードを格納したROMのパターンサ
イズの増大を抑制でき、1チップ化に際してチップサイ
ズを抑制でき、コストパーフォーマンスの良い1チップ
・マイクロコンピュータおよびその命令コード格納方法
を提供することを目的とする。
【0007】
【課題を解決するための手段】本発明の1チップ・マイ
クロコンピュータは、命令コードを取り込むための命令
キャッシュと、上記命令キャッシュから命令をフェッチ
する中央処理ユニットと、上記中央処理ユニットの処理
動作を命令するための予めデータ圧縮された命令コード
を格納した圧縮命令格納ROMと、前記中央処理ユニッ
トから出力されたアドレスに基づいて前記圧縮命令格納
ROMから読み出すべき命令コードが格納されている上
記圧縮命令格納ROM内の先頭位置を参照するためのタ
グデータを格納したタグROMと、前記中央処理ユニッ
トから出力されたアドレスに基づいて上記タグROMか
らタグデータを読み出し、上記タグデータに基づいて前
記圧縮命令格納ROMから命令コードを読み出すように
制御するキャッシュ制御回路と、上記圧縮命令格納RO
Mから読み出された命令コードを伸長して命令コードを
復元するために設けられ、この復元した命令コードが前
記命令キャッシュに取り込まれるデータ伸長回路とを具
備することを特徴とする。
【0008】また、本発明の1チップ・マイクロコンピ
ュータの命令コード格納方法は、命令キャッシュから命
令をフェッチする中央処理ユニットおよび上記中央処理
ユニットの処理動作を命令するための命令コードを格納
するためのROMを備えた1チップ・マイクロコンピュ
ータにおける上記ROMに対して命令コードを格納する
際、前記命令キャッシュでキャッシュミスが発生した場
合のアドレスの命令コードを含む一連のブロック全体で
あるライン毎に命令コードを圧縮した状態で格納するこ
とを特徴とする。
【0009】
【発明の実施の形態】例えばRISC型マイコンにおい
ては、命令キャッシュを備えており、CPUは通常は命
令キャッシュから命令をフェッチすることにより高速に
動作し、キャッシュミスが発生すると、新しい命令をフ
ェッチする。
【0010】この際、新しい命令のフェッチは、キャッ
シュミスが発生したアドレスの命令コードを含む一連の
ブロック全体(ライン)に行われるものであり、上記ラ
インサイズは通常は命令キャッシュでのヒット率などを
考慮して決定される。
【0011】本発明では、上記ライン毎に命令コードを
データ圧縮した状態でROMに格納している。上記デー
タ圧縮のアルゴリズムは現在のデータ圧縮技術において
多数存在するアルゴリズムのうちの任意のものを採用で
きるが、圧縮効率を考慮すると、前記ラインサイズはな
るべく大きい方が望ましい。例えば処理単位が32ビッ
ト以上のマイコンにおいては、圧縮単位となるラインサ
イズのワード数として例えば8ワード(256ビット)
とする。
【0012】また、圧縮命令コード格納用のROM本体
は、所定サイズ(例えば圧縮されたラインがほぼ収まる
サイズ)のメモリブロックに区切られてアドレスが設定
されており、一連の圧縮命令コードは順に一連のメモリ
ブロック内に格納されている。 この場合、1つのライ
ンサイズの圧縮命令コードをROM本体の1つのアドレ
スのメモリブロックに必ず格納し得るように圧縮すれ
ば、1つのラインサイズの圧縮命令コードとROM本体
の1つのアドレスとを1対1で対応させることが可能に
なる。
【0013】もし、1つのラインサイズの圧縮命令コー
ドの中にROM本体の1つのアドレスの上記メモリブロ
ック内に収まらないものが存在する場合には、はみ出し
た命令コードは別のメモリブロック内に格納される。つ
まり、1つのラインサイズの圧縮命令コードが複数(例
えば2個)に分割されてROM本体の複数(例えば2
個)のアドレスのメモリブロック内に格納される。
【0014】上記したように1つのラインサイズの圧縮
命令コードがROM本体の1個または複数個のアドレス
に格納される場合には、圧縮命令コードがROM本体の
どのメモリブロックから格納されているかを示すポイン
タ用テーブルとしてタグROMを用意しておき、これに
タグデータを格納する。
【0015】そして、ROM本体から命令コードを読み
出す際には、CPUからのアドレスに基づいて、ROM
本体から読み出そうとする圧縮命令コードが格納されて
いるメモリブロックの番号データをタグROMから読み
出す。この後、ROM本体から圧縮命令コードを読み出
し、データ伸長回路により命令コードを復元し、命令キ
ャッシュおよびCPUに送る。
【0016】即ち、本発明によれば、予め命令コードを
データ圧縮した状態でROM本体に格納しておくことに
より、ROMから読み出した圧縮データを伸長して命令
コードを復元して命令キャッシュに送る。
【0017】従って、CPUは、命令キャッシュから命
令をフェッチして高速に動作することが可能であり、R
OM本体に格納されている命令コードは圧縮されている
ので、ROM本体のパターンサイズを抑制でき、1チッ
プ化に際してチップサイズを抑制することが可能にな
る。
【0018】以下、図面を参照して本発明の実施の形態
を詳細に説明する。図1は、本発明の第1の実施の形態
に係る32ビット固定長命令を使用するRISC型の1
チップ・マイコンの一部を示している。
【0019】図1において、10はCPUであり、RI
SC型のプロセッサが用いられている。11は命令コー
ド用キャッシュメモリである命令キャッシュであり、例
えばSRAMが用いられている。11aは上記命令キャ
ッシュ11と対をなすタグメモリである。12は圧縮命
令コードを格納したROM本体(圧縮命令格納RO
M)、13はタグROM、14はキャッシュ制御回路、
15は命令コード伸長回路である。
【0020】上記RISC型のCPU10は、従来のR
ISC型のCPUと同様に、外部から取り込んだ命令を
命令キャッシュ11にフェッチし、通常は命令キャッシ
ュ11から命令をフェッチすることにより高速に動作
し、キャッシュミスが発生すると、新しい命令を外部か
ら取り込む機能を有する。
【0021】この際、新しい命令のフェッチは、キャッ
シュミスが発生したアドレスの命令コードを含む一連の
ブロック全体(ライン)に行なわれるものであり、上記
ラインサイズは通常は命令キャッシュでのヒット率など
を考慮して決定される。
【0022】本発明では、上記ライン毎に命令コードを
圧縮した状態でROM本体12に格納している。この場
合、現在のデータ圧縮技術において多数存在する圧縮ア
ルゴリズムのうちの任意のアルゴリズムを採用できる
が、圧縮効率を考慮すると、前記ラインサイズはなるべ
く大きい方が望ましい。本実施例では、例えば図2に示
すように、圧縮単位となるラインサイズのワード数とし
て8ワード(1ワードは4バイト、32ビット)として
いる。
【0023】また、圧縮命令コード格納用のROM本体
12は、ライン毎に命令コードが圧縮された圧縮命令コ
ードが格納されている。この場合、ROM本体12は、
上圧縮されたラインがほぼ収まるサイズのメモリブロッ
クに区切られてアドレスが設定されており、一連の圧縮
命令コードは順に一連のメモリブロック内に格納されて
いる。この第1の実施の形態では、ROM本体12の容
量は128KB(キロバイト)であり、アドレス指定に
必要なアドレス長(ビット数)は17である。
【0024】この場合、1つのラインサイズの圧縮命令
コードをROM本体12の1つのアドレスのメモリブロ
ックに必ず格納し得るように圧縮すれば、1つのライン
サイズの圧縮命令コードとROM本体12の1つのアド
レスとを1対1で対応させることが可能になる。
【0025】もし、1つのラインサイズの圧縮命令コー
ドの中にROM本体12の1つのアドレスの上記メモリ
ブロック内に収まらないものが存在する場合には、はみ
出した命令コードは別のメモリブロック内に格納され
る。つまり、1つのラインサイズの圧縮命令コードが複
数(例えば2個)に分割されてROM本体12の複数
(例えば2個)のアドレスのメモリブロック内に格納さ
れる。
【0026】上記したように1つのラインサイズの圧縮
命令コードがROM本体12の1個または複数個のアド
レスに格納される場合には、圧縮命令コードがROM本
体12のどのメモリブロックから格納されているかを示
すポインタ用テーブルとしてタグROM13が用意さ
れ、これにタグデータが格納される。
【0027】上記タグROM13の容量は、ROM本体
12の全ラインのアドレスを格納できればよく、ライン
数(=128KB/256ビット=512)×アドレス
長(=17)で構成される。
【0028】前記キャッシュ制御回路14は、CPU1
0から出力されたアドレスに基づいて命令キャッシュ1
1に関する通常のキャッシュ制御機能(ヒット、キャッ
シュミスの判定など)を有するほか、キャッシュミス判
定後にCPU10から出力された新たなアドレスに基づ
いてタグROM13からタグデータを読み出し、タグデ
ータに基づいてROM本体12から命令コードを読み出
すように制御する機能を有する。
【0029】命令コード伸長回路15は、ROM本体1
2から読み出された命令コードを伸長して命令コードを
復元する機能を有し、復元した命令コードを命令キャッ
シュ11およびCPU10に送る。
【0030】なお、本発明のマイコンの命令コード格納
方法においては、前記したようにROM本体12に格納
すべき圧縮命令コードとタグROM13に格納すべきタ
グデータを命令コードの作成時に予め作成し、それぞれ
対応して上記ROM本体12とタグROM13に格納す
る。
【0031】次に、上記したように圧縮命令コードが格
納されたRISC型の1チップ・マイコンにおいて本発
明に関連する動作を説明する。CPU10は、通常は命
令キャッシュ11から命令をフェッチすることにより高
速に動作しており、キャッシュミスが発生する(キャッ
シュ制御回路14からキャッシュミス判定出力を受け
る)と、新たにアクセスすべきアドレスを出力し、キャ
ッシュミスが発生したアドレスの命令コードを含む命令
コードを命令キャッシュ11に取り込むように制御す
る。
【0032】上記キャッシュミスが発生した場合に、キ
ャッシュ制御回路14は、キャッシュミス判定出力をC
PU10に送った後、CPU10からの新しいアドレス
に基づいてROM本体12から1つのブロック(ライン
サイズ)毎に命令を読み出すように制御する。
【0033】この場合、キャッシュミスが発生したアド
レスの命令コードがラインサイズの途中であっても、ラ
イン全体の読み出しが行われる(つまり、新しいアドレ
スの命令コードを含む圧縮命令コードがROM本体12
から読み出される)。この際、タグROM13はCPU
10から出力するアドレスのうち、ROM本体12の全
ライン(512)のアドレスを選択的に指定するのに必
要な上位9ビットが入力し、ROM本体12の読み出し
対象データの先頭格納位置がタグROM13からROM
本体12に出力する。
【0034】これにより、ROM本体12から圧縮命令
コードが読み出され、この読み出された圧縮命令コード
は、命令コード伸長回路15により復元され、命令キャ
ッシュ11およびCPU10に取り込まれる。
【0035】即ち、第1の実施の形態のマイコンおよび
その命令コード格納方法によれば、予め命令コードをデ
ータ圧縮した状態でROM本体12に格納しておき、R
OM本体12から読み出した圧縮データをデータ伸長回
路15により伸長して命令コードを復元し、命令キャッ
シュ11に取り込むことが可能になる。
【0036】従って、CPU10は、命令キャッシュ1
1から命令をフェッチして高速に動作することが可能で
あり、ROM本体12に格納されている命令コードは圧
縮されているので、ROM本体12のパターンサイズを
抑制でき、1チップ化に際してチップサイズを抑制する
ことが可能になる。
【0037】因みに、本発明で付加されたタグROM1
3によるサイズの増大分は、上記実施例の場合でもRO
M全体の3.3%程度であるので、命令コードを圧縮し
た状態でROM本体に格納することによるROM本体1
2のサイズの減少分よりもはるかに小さいので、全体と
してチップサイズを抑制することが可能になる。
【0038】
【発明の効果】上述したように本発明によれば、オブジ
ェクト効率がよくないCPUを採用する場合でも、命令
コードを格納したROMのパターンサイズを抑制でき、
1チップ化に際してチップサイズを抑制できる。また、
CPUは通常はキャッシュから命令を取り込むので高速
に動作でき、コストパーフォーマンスの良いマイクロコ
ンピュータおよびその命令コード格納方法を提供するこ
とができる。従って、本発明は、命令コードが冗長にな
る32ビット以上のRISC型CPUやDSP(デジタ
ルシグナルプロセッサ)などに幅広く活用できる。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態に係る1チップ・マ
イコンを示すブロック図。
【図2】図1中の命令キャッシュにフェッチされる圧縮
単位となるラインサイズの一例を説明するために示す
図。
【符号の説明】 10…CPU、 11…命令キャッシュ、 12…ROM本体(圧縮命令格納ROM)、 13…タグROM、 14…キャッシュ制御回路、 15…データ伸長回路。

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 命令コードを取り込むための命令キャッ
    シュと、上記命令キャッシュから命令をフェッチする中
    央処理ユニットと、上記中央処理ユニットの処理動作を
    命令するための予めデータ圧縮された命令コードを格納
    した圧縮命令格納ROMと、前記中央処理ユニットから
    出力されたアドレスに基づいて前記圧縮命令格納ROM
    から読み出すべき命令コードが格納されている上記圧縮
    命令格納ROM内の先頭位置を参照するためのタグデー
    タを格納したタグROMと、前記中央処理ユニットから
    出力されたアドレスに基づいて上記タグROMからタグ
    データを読み出し、上記タグデータに基づいて前記圧縮
    命令格納ROMから命令コードを読み出すように制御す
    るキャッシュ制御回路と、上記圧縮命令格納ROMから
    読み出された命令コードを伸長して命令コードを復元す
    るために設けられ、この復元した命令コードが前記命令
    キャッシュに取り込まれるデータ伸長回路とを具備する
    ことを特徴とする1チップ・マイクロコンピュータ。
  2. 【請求項2】 命令キャッシュから命令をフェッチする
    中央処理ユニットおよび上記中央処理ユニットの処理動
    作を命令するための命令コードを格納するためのROM
    を備えた1チップ・マイクロコンピュータにおける上記
    ROMに対して命令コードを格納する際、前記命令キャ
    ッシュでキャッシュミスが発生した場合のアドレスの命
    令コードを含む一連のブロック全体であるライン毎に命
    令コードを圧縮した状態で格納することを特徴とする1
    チップ・マイクロコンピュータの命令コード格納方法。
JP7169700A 1995-07-05 1995-07-05 1チップ・マイクロコンピュータおよびその命令コード格納方法 Pending JPH0922353A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7169700A JPH0922353A (ja) 1995-07-05 1995-07-05 1チップ・マイクロコンピュータおよびその命令コード格納方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7169700A JPH0922353A (ja) 1995-07-05 1995-07-05 1チップ・マイクロコンピュータおよびその命令コード格納方法

Publications (1)

Publication Number Publication Date
JPH0922353A true JPH0922353A (ja) 1997-01-21

Family

ID=15891271

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7169700A Pending JPH0922353A (ja) 1995-07-05 1995-07-05 1チップ・マイクロコンピュータおよびその命令コード格納方法

Country Status (1)

Country Link
JP (1) JPH0922353A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004502238A (ja) * 2000-06-29 2004-01-22 モトローラ・インコーポレイテッド 復号された情報を格納し且つ供給するキャッシュを有する装置及びそのように行う方法
WO2012169124A1 (ja) * 2011-06-10 2012-12-13 パナソニック株式会社 配置決定装置、配置決定方法、データ構造、メモリ、アクセス装置及びメモリアクセス方法
CN112612519A (zh) * 2020-12-11 2021-04-06 海光信息技术股份有限公司 一种取指方法、装置、电子设备及存储介质
EP4020230A1 (en) * 2020-12-23 2022-06-29 INTEL Corporation Application programming interface for fine grained low latency decompression within processor core

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004502238A (ja) * 2000-06-29 2004-01-22 モトローラ・インコーポレイテッド 復号された情報を格納し且つ供給するキャッシュを有する装置及びそのように行う方法
JP4748918B2 (ja) * 2000-06-29 2011-08-17 フリースケール セミコンダクター インコーポレイテッド 復号された情報を格納し且つ供給するキャッシュを有する装置及びそのように行う方法
WO2012169124A1 (ja) * 2011-06-10 2012-12-13 パナソニック株式会社 配置決定装置、配置決定方法、データ構造、メモリ、アクセス装置及びメモリアクセス方法
JPWO2012169124A1 (ja) * 2011-06-10 2015-02-23 パナソニック株式会社 配置決定装置、配置決定方法、データ構造、メモリ、アクセス装置及びメモリアクセス方法
US9519599B2 (en) 2011-06-10 2016-12-13 Panasonic Intellectual Property Management Co., Ltd. Memory location determining device and method for determining locations of compressed data in a memory by using first and second arithmetic operations
CN112612519A (zh) * 2020-12-11 2021-04-06 海光信息技术股份有限公司 一种取指方法、装置、电子设备及存储介质
CN112612519B (zh) * 2020-12-11 2022-06-21 成都海光微电子技术有限公司 一种取指方法、装置、电子设备及存储介质
EP4020230A1 (en) * 2020-12-23 2022-06-29 INTEL Corporation Application programming interface for fine grained low latency decompression within processor core
US12028094B2 (en) 2020-12-23 2024-07-02 Intel Corporation Application programming interface for fine grained low latency decompression within processor core

Similar Documents

Publication Publication Date Title
US7849241B2 (en) Memory compression method and apparatus for heterogeneous processor architectures in an information handling system
US6199126B1 (en) Processor transparent on-the-fly instruction stream decompression
US6332172B1 (en) Method and system for virtual memory compression in an embedded system
US5652852A (en) Processor for discriminating between compressed and non-compressed program code, with prefetching, decoding and execution of compressed code in parallel with the decoding, with modified target branch addresses accommodated at run time
JP3201716B2 (ja) コンピュータ装置
US20040139277A1 (en) Cache memory, processor and cache control method
JP2001075866A (ja) 記憶装置を動作する方法および記憶装置
JPH0922353A (ja) 1チップ・マイクロコンピュータおよびその命令コード格納方法
JP2003186668A (ja) 命令コード変換ユニットおよび命令コード変換方法
US4337510A (en) Read control system for a control storage device
JP7276458B2 (ja) メモリ制御方法、メモリ制御装置、プログラム
JPH06318260A (ja) 電子装置
US5390358A (en) Arithmetic unit that requires only one byte instructions
JPH05189360A (ja) データ転送および記憶方式
JPH04245334A (ja) 情報処理装置の命令先読み制御方式
US7089447B2 (en) Apparatus and method for compression based error correction procedure in a data processing system
KR20040100262A (ko) 시간적·공간적 지역성을 향상시키고 플레쉬 메모리장치로의 접근 횟수를 줄이는 플레쉬 메모리 시스템 및데이터 억세스 방법
EP0787326A1 (en) System and method for processing of memory data and communication system comprising such system
JP2000067026A (ja) 半導体装置
JPS63311438A (ja) ストア命令不一致制御回路
JPH09251424A (ja) キャッシュ装置
JPH09311790A (ja) データ処理装置及び交換装置
JPH09305399A (ja) 命令供給装置
JPH09198302A (ja) 主記憶制御回路及び主記憶装置
KR19990037241U (ko) 마이크로 프로세서