JP3310525B2 - デジタルデータ処理装置 - Google Patents

デジタルデータ処理装置

Info

Publication number
JP3310525B2
JP3310525B2 JP02455196A JP2455196A JP3310525B2 JP 3310525 B2 JP3310525 B2 JP 3310525B2 JP 02455196 A JP02455196 A JP 02455196A JP 2455196 A JP2455196 A JP 2455196A JP 3310525 B2 JP3310525 B2 JP 3310525B2
Authority
JP
Japan
Prior art keywords
code
conversion unit
bit
memory
address
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
JP02455196A
Other languages
English (en)
Other versions
JPH0951276A (ja
Inventor
田 幸 弘 吉
Original Assignee
ビー・イー・テクノロジー株式会社
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 ビー・イー・テクノロジー株式会社 filed Critical ビー・イー・テクノロジー株式会社
Priority to JP02455196A priority Critical patent/JP3310525B2/ja
Priority to US08/655,758 priority patent/US5799138A/en
Publication of JPH0951276A publication Critical patent/JPH0951276A/ja
Application granted granted Critical
Publication of JP3310525B2 publication Critical patent/JP3310525B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

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
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Memory System (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明はデジタルデータ処
理装置に関し、特にたとえば、マイクロプロセッサ,パ
ーソナルコンピュータ,ワードプロセッサ,携帯情報端
末,デジタルシグナルプロセッサ等のたとえば半導体メ
モリを有するデジタルデータ処理装置に関する。
【0002】
【従来の技術】従来から、デジタルデータ処理装置にお
いて、デジタルデータの圧縮/伸長技術として、さまざ
まな方式が用いられている。動画像の圧縮/伸長方式と
しては、離散コサイン変換であるDCT(Discre
te Cosine Transformation)
や、符号化方式として「離散コサイン変換」を用い、予
測符号化手法として「動き補償フレーム間予測」を用い
るMPEG(Motion Picture Expe
rt Group)等がある。静止画の圧縮/伸長方式
としては、「ハフマン符号化」と「離散コサイン変換」
とによる色データの間引きを用いるJPEG(Join
t Photographic Expert Gro
up)がある。これらの圧縮/伸長方式は、非コード系
の画像処理に適用されるものである。
【0003】また、ファクシミリ伝送では、圧縮/伸長
方式として、ランレングス符号化方式が用いられ、MR
/MH/MMRの方式として知られている。さらに、テ
キスト(数値,文字)の圧縮/伸長方式としては、Le
mpel Zivの方法が古くから知られており、この
方式はいわゆるロス・レス(可逆性を有するコード圧
縮)の手法である。その他の圧縮/伸長方式として、算
術符号化(JBIG)の方法も知られており、この方式
もロス・レスの手法である。
【0004】
【発明が解決しようとする課題】圧縮/伸長方式として
は、動画像,静止画の圧縮/伸長方式であるMPEGや
JPEGは、ロス(非可逆性のコード圧縮)のある手法
である。それに対し、本願発明に係るデジタルデータ処
理装置では、ロス・レスの圧縮/伸長方式が用いられ
る。
【0005】従来のデジタルデータ処理装置の圧縮/伸
長方式では、ロス・レスの手法であっても、マイクロプ
ロセッサの命令コードやデータコードのように、固定長
(たとえば、32ビットプロセッサでは、命令コードや
データコードは32ビットである。)の圧縮/伸長に対
しては、有効ではなかった。すなわち、従来のロス・レ
スの手法では、圧縮効果が可変長になってしまう。その
ため、伸長に要する時間も大きく、ロジック回路規模も
大きい。また、ソフトウェア処理による伸長では、極め
て長時間を要し、ほとんど実用にならなかった。このよ
うに、従来のデジタルデータ処理装置の圧縮/伸長方式
では、高速処理を行うことができなかった。
【0006】また、現在から将来にかけて、最も重要な
技術分野の一つとして、低電力化技術がある。近年の携
帯情報端末を始めとして、デジタルデータ処理装置で
は、プログラムやデータを記憶するメモリ容量は、極め
て増加してきている。しかも、使用されるマイクロプロ
セッサも、32ビットプロセッサのように高性能化して
きている。しかし、従来のデジタルデータ処理装置の圧
縮/伸長方式では、低電力で高速なシステムを実現する
ことができなかった。
【0007】それゆえに、この発明の主たる目的は、低
電力で高速なシステムを実現することができるデジタル
データの圧縮/伸長方式を有するデジタルデータ処理装
置を提供することである。
【0008】
【課題を解決するための手段】この発明は、メモリと、
重複するコードに仮想的コードを割り振り、仮想的コー
ドを実コードに変換するコード変換部であって、コード
変換部はアドレス部と命令部とを有し、メモリがデータ
伝達経路を介してコード変換部にアドレスを発する、コ
ード変換部と、コード変換部の命令部から命令を受ける
中央処理装置と、命令部とアドレス部を有するコード逆
変換部であって、中央処理装置はコード変換部の命令部
に接続し、コード逆変換部は命令をデータ伝達経路を介
してメモリに対して出力されるアドレスに変換するコー
ド変換部を含むことを特徴とする、デジタルデータ処理
装置である。
【0009】中央処理装置がコード変換部を含んでもよ
いし、メモリは外部メモリであり、外部メモリがコード
変換部を含んでもよい。コード変換部は書き変え可能R
OMであるのが好ましい。コード変換部はRAMであっ
てもよい。中央処理装置はマイクロプロセッサであって
もよいし、外部メモリは半導体メモリであってもよい。
【0010】また、メモリには、複数のプログラムが格
納され、メモリは、コード変換部によって、第1次圧縮
したのち、さらに、高次圧縮できるプログラムを含んで
もよい。メモリには、複数のデータが格納され、メモリ
は、コード変換部によって、第1次圧縮したのち、さら
に、高次圧縮できるデータを含んでもよい。また、デー
タやプログラムの重複するコードに対して仮想コードを
割り振り、仮想コードを実コードに変換してもよい。
【0011】
【作用】重複があるコードに対し、仮想的コードを割り
振ることによって、外部メモリ容量が、大きく圧縮され
る。また、仮想的コードを実コードに変換することによ
って、圧縮されたコードを瞬間的に伸長することができ
る。
【0012】
【発明の効果】この発明によれば、外部メモリ容量が、
大きく圧縮される。また、圧縮されたコードを瞬間的に
伸長することができる。さらに、アクセスの遅いメモリ
が高速に使える上に、ローパワーなメモリが構成でき
る。そのため、低コストのデジタルデータ処理装置が得
られる。すなわち、低電力で高速なシステムを実現する
ことができるデジタルデータの圧縮/伸長方式を有する
デジタルデータ処理装置が得られる。
【0013】さらに、この発明によれば、低電力化を図
れるのみならず、この発明は、ビット長が96ビット,
128ビット,256ビット,512ビット,640ビ
ット,・・・のような多ビット長のマイクロプロセッサ
または超多ビット長のマイクロプロセッサのコード圧縮
と伸長とにも極めて有効である。
【0014】VLIW(Very Long Inst
ruction Word)方式のマイクロプロセッサ
では、LSIのピン数が極めて多くなる。この発明によ
れば、大きくピン数が削減できるので、VLIW方式の
マイクロプロセッサにも有効である。
【0015】VLIW方式のマイクロプロセッサでは、
複数の独立した機能ユニットが用いられるので、1個の
命令は、複数の演算操作を行うために、非常に長いワー
ド長をもつこととなる。そして、この命令が実行処理さ
れるときには、命令の同時実行が行われる。このような
場合、この発明を適用することによって、仮想的コード
(圧縮されたコード)をあらかじめロードしておき、コ
ード変換部で実コードに変換して、命令の同時実行を行
うという命令の新しい実行処理が可能となる。
【0016】この発明は、画像処理における圧縮/伸長
方式にも適用することができる。パーソナルコンピュー
タの画面表示のサイズとしては、640×480ドット
で構成されるVGA(Video Graphic A
rray)が通常よく用いられる。画像処理において
は、CRTまたはLCD(液晶表示)のいずれの場合に
も、画面制御には、V−RAM(Video Memo
ry)と呼ばれる画像メモリが用いられる。このとき、
画面のビットデータは、このV−RAMに格納される
が、640×480の構成を、例えば32ビットでは3
2×20×480として、64ビットでは64×10×
480として、画像メモリを構成することができる。そ
して、それぞれの場合のメモリ構成は、1面当たり32
×9600または64×4800となる。すなわち、そ
れぞれのビット長(32ビットまたは64ビット)とア
ドレス長(9600または4800)とを有するメモリ
とすることができ、この発明を適用することによって、
画像メモリであるV−RAMのメモリ容量を圧縮して伸
長させることができる。この発明は、画像イメージデー
タの文字フォント,GPS(Groval Posit
ioning System)を応用したカーナビゲー
ションの地図データまたは辞書データ等の固定記憶のメ
モリ圧縮と伸長に特に有効である。
【0017】なお、カラー画面すなわちカラー画像のV
GAを構成して制御する場合には、複数個または複数面
のV−RAMを必要とするが、1面当たりについて、こ
の発明を適用できるので、カラー画像であっても、V−
RAMの圧縮と伸長が可能となる。
【0018】コード変換部を中央処理装置に形成するこ
とによって、ソフトウェアの互換性を保ちながら、中央
処理装置を高性能化することができる。すなわち、メモ
リに格納されるソフトウェアは、中央処理装置から独立
しているので、蓄積されるソフトウェアのリソースに依
存しないで、ソフトウェアの互換性を保ちながら、中央
処理装置の性能を上げていくことができる。また、コー
ド変換部を中央処理装置に形成することは、コンピュー
タシステムとしてのコンピュータセキュリティにつなが
る。
【0019】コード変換部を外部メモリに形成すること
によって、メモリ自身が圧縮機能をもつこととなる。そ
して、同一のソフトウェア機能を実現するのに、大幅に
メモリ容量を減少させることができる。逆に、同じメモ
リ容量であれば、格納できるソフトウェア機能を大幅に
増やすことができる。すなわち、コード変換部を外部メ
モリに形成することによって、「圧縮機能をもつメモ
リ」を実現でき、さらに、コンピュータシステムとして
のコンピュータセキュリティにつながる。
【0020】コード変換部を書き変え可能ROMとする
ことによって、コード変換部を自由に書き変えられ、コ
ンピュータシステムとしてのコンピュータセキュリティ
につながる。さらに、コード変換部を書き変え可能RO
Mとすることによって、インストラクションインディペ
ンデントなマイクロプロセッサおよびプロセッサインデ
ィペンデントなソフトウェアを実現できる。
【0021】この発明の上述の目的,その他の目的,特
徴および利点は、図面を参照して行う以下の発明の実施
の形態の詳細な説明から一層明らかとなろう。
【0022】
【発明の実施の形態】この発明に係るデジタルデータ処
理装置について、32ビットマイクロプロセッサを例に
して説明する。
【0023】図1は16ビットアクセスを行う場合の3
2ビットマイクロプロセッサ10を示すブロック図であ
る。このマイクロプロセッサ10は、外部メモリからバ
スを通って入力された16ビット命令を記録する16ビ
ットレジスタ12を有する。16ビットレジスタ12は
コード変換部14に接続される。コード変換部14は1
6ビット長のアドレス部16および32ビット長の命令
部18を含む。コード変換部14では、重複があるコー
ド、たとえば、重複があるオブジェクトコード(バイナ
リーコード)に対し、実際に使われているオブジェクト
コードを重複させないで、個々に仮想的(疑似的)コー
ドを割り振り、アドレス部16に仮想的コードが収納さ
れる。そして、命令部18にオブジェクトコードが収納
される。すなわち、命令部18のオブジェクトコードで
ある命令と、アドレス部16の仮想的コードであるアド
レスとは、一対一で対応することとなる。なお、16ビ
ットレジスタ12が接続されるのはコード変換部14の
アドレス部16である。そして、16ビットレジスタ1
2がコード変換部14をアクセスする際には、16ビッ
ト長のアドレス部16にアクセスされる。すなわち、外
部メモリはバスからコード変換部14にアドレスを出し
ているだけである。そして、アクセスされたアドレス部
16のアドレスに対応する命令部18の命令すなわち実
コードがCPU20にアウトプットされる。すなわち、
コード変換部14は、16ビット長から32ビット長へ
変換する機能を有する。なお、16ビットレジスタ12
を用いずに、外部のバスから16ビットのアドレスを直
接コード変換部14にアクセスしてもよいが、16ビッ
トレジスタ12を用いるのが一般的である。
【0024】CPU20は2つの32ビットレジスタ2
2,24,インストラクションデコーダ26,レジスタ
グループ28,乗算器30,キャシュメモリ(Cach
eMemory)32およびMMU(Memory M
anagement Unit)34などを含む。命令
部18からアウトプットされた32ビットの命令は、3
2ビットレジスタ22にアクセスされ、32ビットレジ
スタ22からキャシュメモリ32をアクセスして、イン
ストラクションデコーダ26にアクセスされる。
【0025】また、32ビットレジスタ24は、コード
逆変換部38に接続される。コード逆変換部38は、3
2ビット長の命令部40および16ビット長のアドレス
部42を含む。コード逆変換部38には命令部40のオ
ブジェクトコードである命令と、アドレス部42の仮想
的(疑似的)コードであるアドレスとは、一対一で対応
するよう記録されている。そして、32ビットレジスタ
24がコード逆変換部38をアクセスする際には、32
ビット長の命令部40にアクセスされる。アクセスされ
た命令部40の命令に対応するアドレス部42のアドレ
スが、16ビットレジスタ44にアクセスされ、外部の
バスにアウトプットされる。すなわち、コード逆変換部
38は、32ビット長から16ビット長へ変換する機能
を有し、圧縮されたデータが外部メモリのバスへアウト
プットされる。
【0026】この32ビットマイクロプロセッサ10
は、CPU20の外部に、32ビットアドレスレジスタ
46を含む。32ビットアドレスレジスタ46からは、
外部のバスとの間で32ビットアドレスが入出力され
る。さらに、32ビットマイクロプロセッサ10から
は、外部のバスを通して32ビットのデータが入出力さ
れる。
【0027】32ビットプロセッサのシステムであって
も、32ビット長のすべての命令コードやデータコード
が使用されることはない。すなわち、実態のプログラム
においては、オブジェクトコード(バイナリーコード)
には、かなり重複がある。そこで、実際に使われている
オブジェクトコードを重複させないで、個々に仮想的
(疑似的)コードを割り振る。仮想的(疑似的)コード
とは、CPU20をアクセスするのに実際に使用される
オブジェクトコードに対して、重複しないように、仮想
的に割り振られるコードをいう。このとき、アドレスの
長さは、32ビット長の命令コードと同じとする。する
と、図2に示すように、外部メモリ47のメモリエリア
がカットされ、コードが圧縮されることとなる。そし
て、コード変換部14は、上述のように、重複があるオ
ブジェクトコードに対し、仮想的(疑似的)コードを割
り振ったのち、仮想的(疑似的)コードを瞬間的に伸長
し、仮想的(疑似的)コードを実コードに変換する。実
コードとは、CPU20をアクセスするのに実際に使用
されるコードをいう。
【0028】図3は32ビットアクセスを行う場合の3
2ビットマイクロプロセッサ10を示すブロック図であ
る。後述のように、32ビットアクセスの場合、プロセ
ッサ内部のアドレスPが偶数か奇数かによって管理され
る。すなわち、プロセッサ内部のアドレスP0 が0か1
かによって管理する。
【0029】この32ビットマイクロプロセッサ10
は、外部からバスを通って入力された32ビット命令を
記録する2つの16ビットレジスタ12a,12bを有
する。16ビットレジスタ12aは、上位アクセス用で
あり、16ビットレジスタ12bは、下位アクセス用で
ある。また、16ビットレジスタ12a,12bは、A
NDゲートをもつインデックスレジスタ48を通して、
コード変換部14に接続される。16ビットレジスタ1
2a,12bが、インデックスレジスタ48を通して、
コード変換部14をアクセスするとき、インデックスレ
ジスタ48は、アドレスPが偶数か奇数かを判断する。
すなわち、インデックスレジスタ48は、アドレスP0
が0か1かを判断する。アドレスPが偶数ならば、上位
アクセス用の16ビットレジスタ12aが、コード変換
部14をアクセスし、アドレスPが奇数ならば、下位ア
クセス用の16ビットレジスタ12bが、コード変換部
14をアクセスする。
【0030】コード変換部14は、16ビット長のアド
レス部16および32ビット長の命令部18を含む。こ
こで、コード変換部14では、重複があるコード、たと
えば、重複があるオブジェクトコード(バイナリーコー
ド)に対し、実際に使われているオブジェクトコードを
重複させないで、個々に仮想的(疑似的)コードを割り
振り、アドレス部16に仮想的コードが収納される。そ
して、命令部18にオブジェクトコードが収納される。
すなわち、命令部18のオブジェクトコードである命令
と、アドレス部16の仮想的コードであるアドレスと
は、一対一で対応することとなる。なお、16ビットレ
ジスタ12a,12bが接続されるのはコード変換部1
4のアドレス部16である。そして、16ビットレジス
タ12a,12bがコード変換部14をアクセスする際
には、16ビット長のアドレス部16にアクセスされ
る。アクセスされたアドレス部16のアドレスに対応す
る命令部18の命令すなわち実コードがCPU20にア
ウトプットされる。すなわち、外部メモリはバスからコ
ード変換部14にアドレスを出しているだけである。そ
して、アクセスされたアドレス部16のアドレスに対応
する命令部18の命令すなわち実コードがCPU20に
アウトプットされる。すなわち、コード変換部14は、
16ビット長から32ビット長へ変換する機能を有す
る。
【0031】CPU20は2つの32ビットレジスタ2
2,24,インストラクションデコーダ26,レジスタ
グループ28,乗算器30,キャシュメモリ(Cach
eMemory)32およびMMU(Memory M
anagement Unit)34等を含む。命令部
18からアウトプットされた32ビットの命令は、32
ビットレジスタ22にアクセスされ、32ビットレジス
タ22からキャシュメモリ32をアクセスして、インス
トラクションデコーダ26にアクセスされる。
【0032】また、32ビットレジスタ24は、コード
逆変換部38と接続される。コード逆変換部38は、3
2ビット長の命令部40および16ビット長のアドレス
部42を含む。そして、32ビットレジスタ24がコー
ド逆変換部38をアクセスする際には、32ビット長の
命令部40にアクセスされる。アクセスされた命令部4
0の命令に対応するアドレス部42のアドレスが、AN
Dゲートをもつインデックスレジスタ50を通して、2
つの16ビットレジスタ44a,44bにアクセスさ
れ、外部のバスにアウトプットされる。このとき、イン
デックスレジスタ50は、上位アクセス用の16ビット
レジスタ44aにアクセスされたか、下位アクセス用の
16ビットレジスタ44bにアクセスされたかを判断す
る。上位アクセス用の16ビットレジスタ44aにアク
セスされた場合には、アドレスP0に0を付与し、下位
アクセス用の16ビットレジスタ44bにアクセスされ
た場合には、アドレスP0 に1を付与する。
【0033】この32ビットマイクロプロセッサ10
は、CPU20の外部に、32ビットアドレスレジスタ
46および31ビットアドレスレジスタ52を含む。3
2ビットアドレスレジスタ46からは、32ビットのア
ドレスのうちアドレスレジスタP0 を除く31ビットの
アドレスが31ビットアドレスレジスタ52にアクセス
される。また、31ビットアドレスレジスタ52からは
31ビットのアドレスにアドレスP0 を加えた32ビッ
トのアドレスが32ビットアドレスレジスタ46にアク
セスされる。31ビットアドレスレジスタ52からは、
外部のバスとの間で31ビットアドレスが入出力され
る。さらに、32ビットマイクロプロセッサ10から
は、外部のバスを通して32ビットのデータが入出力さ
れる。
【0034】次に、図4ないし図7を参照して、仮想的
コードが外部メモリ47に収納された例について説明す
る。図4ないし図7において、格納コードはテーブルの
アドレスコードである。図4は図1の例の16ビットア
クセスの場合であり、アドレス管理が簡単である。16
ビットアクセスの場合、実アドレスはNである。図5は
図3の例の32ビットアクセスの場合であり、アドレス
管理が複雑である。上位16ビットを実行するかまたは
下位16ビットを実行するかについては、図8に示すよ
うに、プロセッサ内部のアドレスPが偶数か奇数かによ
って管理する。これは、図9に示すように、プロセッサ
内部のアドレスP0 が0か1かによって管理するのと同
じことである。32ビットアクセスの場合、実アドレス
はN/2である。図6は48ビットアクセスの場合であ
り、アドレス管理が複雑である。図10に示すように、
プロセッサ内部のアドレス(P0 ,P1 )が(0,
0),(0,1),(1,0)のいずれかによって、ア
クセス部分が管理される。48ビットアクセスの場合、
実アドレスはN/3である。図7は64ビットアクセス
の場合であり、アドレス管理が複雑である。図11に示
すように、プロセッサ内部のアドレス(P0 ,P1 )が
(0,0),(0,1),(1,0),(1,1)のい
ずれかによって、アクセス部分が管理される。64ビッ
トアクセスの場合、実アドレスはN/4である。このよ
うなアクセス管理が可能なのは、データが圧縮されてい
るからである。
【0035】図1の例および図3の例では、32ビット
マイクロプロセッサ10は、コード変換部14およびコ
ード逆変換部38を含んだが、外部メモリがROMの場
合には、32ビットマイクロプロセッサ10は、コード
逆変換部38を含まず、コード変換部14のみを含む。
【0036】この発明を実施するためには、格納データ
を生成するソフトウェアを作成することが必要である。
必要な第1のプログラムは、実態のプログラムで実際に
使用されているコードを重複することなく検索して、コ
ードの種類の全数を出力する高速ソートプログラムであ
る。この第1のプログラムは、実際に使用されているコ
ードを重複することなく個々に出力するとともに、個々
のコードに対する数も同時に出力する。必要な第2のプ
ログラムは、プロセッサ内部のコード変換部のテーブル
データを生成するプログラムである。この第2のプログ
ラムは、個々のコードをテーブルの先頭アドレスから順
番に対応させる。必要な第3のプログラムは、原始デー
タ(32ビットの命令のコード)から、圧縮データであ
る仮想的(疑似的)コードを決められた実アドレスに格
納するプログラムである。この第3のプログラムは、プ
ロセッサ内部のテーブルからバイナリーサーチして、所
定のアドレスにあるコードがテーブルの先頭から何番目
にあるかを検出して、そのアドレスコードを所定の実ア
ドレスに格納する。
【0037】図13はアドオンソフトウェアのセグメン
ト管理を示すブロック図である。プログラムが大きい
と、セグメント管理を行う必要がある場合があり、プロ
グラムはたとえば(m+1)個のセグメント54に分割
される。分割されたセグメント54は、マイクロプロセ
ッサ内部のセグメントレジスタ56によって制御され
る。また、セグメントレジスタ56は、たとえば8ビッ
ト〜9ビットである。
【0038】上述のように、オブジェクトコードの種類
の数xがnビットで表せるとすると、x=2n (n=l
ogx/log2)で圧縮率n/32となる。図14は
n=16の場合のセグメント54のセグメントサイズと
同一命令の平均数(または同一オブジェクトコードの平
均容量)との関係を示すグラフである。また、図15は
n=13の場合のセグメント54のセグメントサイズと
同一命令の平均数(または同一オブジェクトコードの平
均容量)との関係を示すグラフである。図16はn=1
0の場合のセグメント54のセグメントサイズと同一命
令の平均数(または同一オブジェクトコードの平均容
量)との関係を示すグラフである。同一命令の平均数
が、たとえば32〜64であるとき、同一オブジェクト
コードの平均容量は、128B〜256Bである。この
とき、n=16の場合、図14に示すように、セグメン
ト54のセグメントサイズは、8MB〜16MBであ
る。また、n=13の場合、図15に示すように、セグ
メント54のセグメントサイズは、1MB〜2MBであ
る。さらに、n=10の場合、図16に示すように、セ
グメント54のセグメントサイズは、1/8MB〜1/
4MBである。このようにnが小さく、圧縮率n/32
が小さいほど、分割されたセグメント54のセグメント
サイズは小さくなる。
【0039】圧縮率は、オブジェクトコードが実際に使
われている種類の数によって異なってくる。一般に、オ
ブジェクトコードの種類の数xがnビットで表せるとす
ると、x=2n (n=logx/log2)で圧縮率n
/32となる。図12はオブジェクトコードの種類の数
xのビット数nと圧縮率n/32との関係を示すグラフ
である。図12中の数字は、順に、「圧縮率」(「コー
ド変換部の長さ」):「必要なメモリ容量」を示す。た
とえば、オブジェクトコードの種類の数xが16ビット
で表せるとすると、x=216=65536で圧縮率1/
2となる。予測としては、オブジェクトコードの種類の
数xは必ずこの範囲に入る。また、オブジェクトコード
の種類の数xが20ビットで表せるとすると、x=220
=1048576で圧縮率5/8(62.5%)とな
る。オブジェクトコードの種類の数xがこの範囲になる
ことはあり得ないと考えられる。さらに、オブジェクト
コードの種類の数xが12ビットで表せるとすると、x
=212=4096で圧縮率3/8(37.5%)とな
る。予測としては、オブジェクトコードの種類の数xは
この範囲に入る可能性が高い。
【0040】この発明によれば、外部メモリ容量が、大
きく圧縮されるが、32ビットマイクロプロセッサにつ
いて圧縮シミュレーションを行ったところ、15通りの
シミュレーションに対し、圧縮率は、25.000%,
25.000%,25.000%,25.000%,2
5.000%,25.000%,31.250%,3
4.375%,37.500%,40.625%,4
3.750%,34.375%,40.625%,4
6.875%,46.875%となった。
【0041】この発明によれば、外部メモリ容量が、大
きく、たとえば30%〜40%に圧縮される。現在、デ
ジタルデータ処理装置は、8ビットから16ビットへ、
16ビットから32ビットへと発展してきており、近い
将来、32ビットが主流になると思われる。そのため、
外部メモリ容量が、大きく圧縮されることによる効果は
特に大きい。また、圧縮されたコードを瞬間的に伸長す
ることができる。さらに、アクセスの遅いメモリが高速
に使える上に、ローパワーなメモリが構成できる。その
ため、低コストのデジタルデータ処理装置が得られる。
すなわち、低電力で高速なシステムを実現することがで
きるデジタルデータの圧縮/伸長方式を有するデジタル
データ処理装置が得られる。
【0042】この発明は、マイクロプロセッサ,パーソ
ナルコンピュータ,ワードプロセッサ,携帯情報端末,
デジタルシグナルプロセッサ,コンピュータ等のデジタ
ルデータ処理装置に適用でき、パーソナル・デジタル・
アシスタンス(PDA)のNewton(登録商標)等
様々な商品に適用できる。また、この発明は、16ビッ
トマイクロプロセッサおよび16ビットマイコンにも適
用できる。さらに、この発明は、書き変え可能ROM内
蔵マイクロプロセッサおよび書き変え可能ROM内蔵マ
イコンにも応用できる。このように、コード変換部14
を書き変え可能ROMとすることによって、コード変換
部14を自由に書き変えられ、コンピュータシステムと
してのコンピュータセキュリティにつながる。この発明
によれば、同容量のメモリに対して、約2倍の機能(プ
ログラム)を実現でき、同程度の機能(プログラム)に
対して、約1/2倍の容量のメモリを使用できる。
【0043】さらに、この発明によれば、コード変換部
14を書き変え可能ROMとすることによって、マイク
ロプロセッサを変えても、コード変換部14を書き変え
さえすれば、同じ機能が実現できるので、インストラク
ションインディペンデントなマイクロプロセッサを実現
できる。同様に、この発明によれば、コード変換部14
を書き変え可能ROMとすることによって、インストラ
クションを変えても、コード変換部14を書き変えさえ
すれば、同じ機能が実現できるので、プロセッサインデ
ィペンデントなソフトウェアを実現でき、他のマイクロ
プロセッサのソフトウェアリソースにすることが可能と
なる。さらに、この発明によれば、コード変換部14を
用いることによって、CISC(Complex In
struction Set Computer)命令
をRISC(Reduced Instruction
Set Computer)命令に変換して実行する
ことができる。すなわち、CISC命令で書かれたソフ
トウェアをRISC命令で走らせることも可能となる。
【0044】なお、この発明はデジタルデータ処理装置
に係るものであるが、デジタルデータ処理装置には、デ
ジタル信号処理装置も含まれる。
【0045】図17は圧縮率のプロセッサビット長への
依存性(予測値)を示すグラフである。プロセッサビッ
ト長Mが8ビット長の場合、圧縮率n/Mは、7/8〜
8/8であり、約90%〜100%とほとんど圧縮効果
は出ない。また、プロセッサビット長Mが16ビット長
の場合、圧縮率n/Mは、9/16〜11/16であ
り、約60%〜約70%である。プロセッサビット長M
が32ビット長の場合、圧縮率n/Mは、12/32〜
16/32であり、約40%〜50%である。また、プ
ロセッサビット長Mが64ビット長の場合、圧縮率n/
Mは、19/64〜24/64であり、約30%〜約4
0%である。このように、プロセッサビット長Mが大き
くなるに従って、圧縮率n/Mは小さくなる。
【0046】図1の例および図3の例では、32ビット
マイクロプロセッサ11内にコード変換部14が形成さ
れたが、外部メモリにコード変換部が形成されてもよ
い。図18はコード変換部14を含む半導体メモリ装置
を示すブロック図である。このように、外部メモリ47
にコード変換部14を形成した場合、コード変換部14
にフラッシュメモリ,FRAM(強誘電体RAM)を集
積することによって、コード変換部14を書き変え可能
ROMとすることが可能になる。コード変換部14を自
由に書き変えられるということは、メモリとしてのコン
ピュータセキュリティにつながる。
【0047】上述の各々の例では、外部メモリ47に格
納される実コード(プログラムやデータ)は、すべて仮
想コードに圧縮された後、コード変換部14によって、
実コードに変換される。すなわち、上述の各々の例は、
コード変換部14の大きさを固定しないで、実コードを
復元させる場合であって、完全な実現性と柔軟性とを有
しており、実用上、ほとんどの場合、コード変換部14
の大きさを固定しない方法が用いられる。
【0048】しかし、コード変換部14の大きさが固定
される場合があり、この場合にも、この発明を適用でき
る。以下に、コード変換部14の大きさが固定される場
合について説明する。コード変換部14の大きさを固定
したために、実コードに変換できない非圧縮コードがあ
る場合に有効である。例えば、決められた大きさのコー
ド変換部14で実コードに変換できないプログラムやデ
ータの追加を行うような場合である。
【0049】図19はコード変換部14の大きさが固定
される場合を説明するためのメモリイメージの例を示す
図である。図19(A)に示す例では、アドレス長Nの
部分においては、コードは16ビット長であり、1/2
に圧縮されているが、アドレス長xの部分においては、
コードは32ビット長であり、非圧縮のままである。図
19(A)に示す状態のままでは、実行処理が困難であ
るので、図19(B)および図19(C)に示すよう
に、アドレス長をN/2として、16ビットの仮想コー
ドを横に並べて、32(16×2)ビットの外部メモリ
47が構成される。このように、16ビットの仮想コー
ドを横に並べて、32(16×2)ビットの外部メモリ
47が構成されるのは、図5に示す例と同様である。こ
のとき、アドレス長N/2の空きアドレススペースが生
じるが、図19(B)に示す例では、アドレス長xの部
分のアドレスが変化していない。それに対し、図19
(C)に示す例では、アドレス長N/2の空きアドレス
スペースをなくし、アドレス長(N/2+x)の連続ア
ドレスとしている。
【0050】図20(A)は図19(B)に示す例のア
ドレス管理を示すフロー図であり、図20(B)は図1
9(C)に示す例のアドレス管理を示すフロー図であ
る。図20(A)および図20(B)に示すフロー図の
点線内のフローチャートは、図9に示すフローチャート
と同じである。図20(A)に示すフロー図と図9に示
すフロー図との異なる部分は、「P>N」の判定部と
「P→P′」の部分であり、図20(B)に示すフロー
図と図9に示すフロー図との異なる部分は、「P>N」
の判定部と「P−N/2→P′」の部分である。
【0051】図1に示す32ビットマイクロプロセッサ
10は、外部メモリ47から出力される命令(仮想的コ
ード)の入力部に、16ビットレジスタ12を有してい
る。また、図3に示す32ビットマイクロプロセッサ1
0は、外部メモリ47から出力される命令(仮想的コー
ド)の入力部に、16ビットレジスタ12a,12bを
有している。すなわち、図1および図3に示す32ビッ
トマイクロプロセッサ10は、レジスタを有し、レジス
タ制御が行われている。しかし、命令実行の並列性を高
め、高速で処理するために、パイプライン制御すること
も可能である。パイプライン制御とは、機械命令の実行
をオーバーラップさせて行う方式であり、命令実行の並
列性を高め、処理の高速化を図ることができ、高性能マ
イクロプロセッサ等で用いられている。
【0052】パイプライン制御の場合、図1に示す例で
は、外部メモリ47から出力される命令(仮想的コー
ド)が16ビットで構成されているため、次々とパイプ
ラインに流れて行く。それに対して、図3に示す例で
は、命令(仮想的コード)が32ビットで構成されてい
るため、2つの16ビット命令が入力される。このと
き、外部からのフェッチ動作では、2つの16ビット命
令が読み込まれるが、1つの16ビット命令がパイプラ
インに流れ、他の1つの命令は、16ビット分のプリフ
ェッチバッファになっている16ビットのラッチに書き
込まれる。そして、次のフェッチ動作で、この書き込ま
れた16ビット命令が、即時実行可能となる。すなわ
ち、2つの16ビット命令が入力された場合、2つの命
令ごとに1回しか外部メモリ47をアクセスしないの
で、さらに高速処理が可能となる。ここで説明した例
は、図1および図3で図示されているレジスタ制御の部
分に対して、パイプライン制御による手段を用いた構成
である。
【0053】上述の例では、ROMまたは書き変え可能
ROMがコード変換部14として用いられている。な
お、ROMの代わりに、AND/OR回路によるハード
ワイヤードロジックを用いてもよい。次に、RAMがコ
ード変換部14として用いられ例について説明する。
【0054】図21はこの発明の他の例を示すブロック
図であり、図22は図21に示す例の変形例を示すブロ
ック図である。図21に示す例では、32ビットマイク
ロプロセッサ10は、外部記憶装置58,外部メモリ4
7およびCPU20を含む。2次記憶装置とも呼ばれる
外部記憶装置58には、ハードディスクシステムやフロ
ッピーディスクシステムのように、複数のプログラムが
仮想コード化されて格納されている。そして、外部記憶
装置58に、各々のプログラム#1,プログラム#2,
・・・,プログラム#mが、それぞれに対応するコード
変換部60と共に格納されている。この例では、外部メ
モリ47内にコード変換部14が形成され、このコード
変換部14はRAMである。また、CPU20は、パイ
プライン62,命令デコーダ64,レジスタグループ2
8,乗算器30およびキャシュメモリ32などを含む。
【0055】外部記憶装置58としては、ハードディス
ク装置やフロッピーディスク装置に限らず、メモリディ
スクと呼ばれる半導体メモリの他、固定記憶のM−RO
M(Mask Rom),書き変え可能なフラッシュメ
モリ,強誘電体メモリなどが用いられる。
【0056】ハードディスクシステムやフロッピーディ
スクシステムでは、主記憶装置とも呼ばれる外部メモリ
との間でプログラム(ジョブ)やデータの入出力が行わ
れる。そして、プログラムやデータの入出力に際して、
スワッピング(スワップイン,スワップアウト)という
制御手段がしばしば用いられる。このスワッピング手法
は、従来からよく知られている。スワッピングとは、主
記憶装置と2次記憶装置との間でジョブの入出力を行う
ことをいう。主記憶装置上に存在するジョブを2次記憶
装置上に書き出すことをスワップアウトといい、2次記
憶装置上に存在するジョブを主記憶装置内に読み込むこ
とをスワップインという。
【0057】図21に示す例では、外部記憶装置58に
格納された各プログラム#1,#2,・・・,#mが個
々にRAMである外部メモリ47にスワップインされる
とともに、各プログラムに対応するコード変換部60も
外部メモリ47内のコード変換部14にスワップインさ
れる。スワップインされたのち、外部メモリ47とCP
U20との間で、個々のプログラムが上述の方法で実行
処理される。外部記憶装置58に格納される情報がデー
タである場合には、外部メモリ47から仮想コードが、
外部記憶装置58にコード変換部14と共にスワップア
ウトされる。
【0058】図21に示す例では、外部メモリ47内に
コード変換部14が形成されるのに対し、図22に示す
例では、CPU20内にコード変換部14が形成され
る。また、CPU20内に形成されるコード変換部14
もRAMである。図22に示す例では、外部記憶装置5
8に格納された各プログラム#1,#2,・・・,#m
が個々にRAMである外部メモリ47にスワップインさ
れるとともに、各プログラムに対応するコード変換部6
0もCPU20内のコード変換部14にスワップインさ
れ、上述の方法で実行処理される。図21および図22
に示す例では、外部記憶装置58と外部メモリ47との
間のダウンロードによる実行処理にも対応できる。
【0059】図23は外部メモリ47およびコード変換
部14を示すブロック図である。外部メモリ47のN・
lのデータが、外部メモリ47のn・Nのデータとコー
ド変換部14の2n ・lのデータとの和に圧縮されるこ
ととなる。すなわち、下の数式(1)が成立するとき
に、圧縮効果を有することとなる。
【数1】
【数2】 したがって、上の数式(2)を満足するアドレス長Nを
有するオブジェクトコードに対して、圧縮効果を有する
こととなる。
【0060】図24は第2次圧縮の可能性を示す外部メ
モリと第1次圧縮用のコード変換部とを示すブロック図
である。第1次圧縮の場合、図23に示すように、外部
メモリ47のN・lのデータが、外部メモリ47のn・
Nのデータとコード変換部14の2n ・lのデータとの
和に圧縮されることとなる。さらに、第1次圧縮後、第
2次圧縮して、nビットのデータをkビット圧縮し、
(n−k)ビットに圧縮すると、外部メモリ47のN・
lのデータが、外部メモリ47の(n−k)・Nのデー
タとコード変換部14の2n ・lのデータとの和に圧縮
されることとなる。下の数式(3)が成立すると仮定す
る。
【数3】
【数4】 ただし、圧縮率はn/lである。もし、k=nになる場
合があると仮定すると、N=2n となる場合があり得
る。すなわち、このことは、アドレス長Nが2nで、ビ
ット長nのメモリを外部にもつことがあることを示して
いる。
【0061】図25は第2次圧縮をした場合の外部メモ
リ47,第1次圧縮用のコード変換部14aおよび第2
次圧縮用のコード変換部14bを示すブロック図であ
る。
【0062】以下に、第2次圧縮における近似的な数式
上の評価について述べる。圧縮を対象とするコードの種
類の数をx(最大値)としたとき、第1次圧縮では、x
≦2n (n:整数でn<l)を満足するnの最小値まで
外部メモリを削減することができる。lビット長をもつ
コード変換部において、その長さ2n に対して、アドレ
ス長がNで、ビット長がlで、外部メモリの総容量Nl
が同一であっても、2n の長さを必要としないコード集
合が存在する。このことは、第2次圧縮において、外部
メモリのビット幅nをさらにkビット圧縮できる可能性
があることを示している。nビット長の外部メモリから
(n−k)ビット長をもつ外部メモリにあるコードに2
次圧縮した場合、コードの種類は(x−α)になるか
ら、下の数式(5)が成立する。
【数5】
【数6】 すなわち、コード変換部の長さをαだけ縮めることが可
能で、外部メモリをk・Nビット削減できる可能性があ
る。このことを数式化すると、下の数式(7)が成立す
る。
【数7】
【0063】第2次圧縮できる可能性について、さらに
示すと下の数式(8)となる。
【数8】
【0064】N・l≧l・2n +n・Nより下の数式
(9)が成立する。
【数9】
【0065】N・l≧l・2n +n・2n-k +(n−
k)・Nより下の数式(10)が成立する。
【数10】
【0066】N・l≧l・2n +(n−k)・Nより下
の数式(11)が成立する。
【数11】
【0067】数式(10)において、k=0のとき、下
の数式(12)が成立する。
【数12】
【0068】数式(10)において、k=nのとき、下
の数式(13)が成立する。
【数13】
【0069】数式(11)において、k=0のとき、下
の数式(14)が成立する。
【数14】
【0070】数式(11)において、k=nのとき、下
の数式(15)が成立する。
【数15】
【0071】数式(9),(10),(11)は、圧縮
率n/lから、さらにkビットだけ第2次圧縮できる可
能性があることを示している。ただし、第2次圧縮でき
るアドレス長Nには、下限と限界とがある。それは、k
に対して、数式(9),(10),(11)で示される
アドレス長Nの下限または限界である。図26に示すよ
うに、kが大きくできる場合には、アドレス長Nの下限
または限界は小さくなり、kが小さい場合には、アドレ
ス長Nの下限または限界は大きくなる。
【0072】外部メモリの容量をさらにkNビット縮め
る可能性を示すと、以下のようになる。
【0073】数式(10)を例にとると、下の数式(1
6)となる。
【数16】 ただし、圧縮率は(n−k)/lである。
【0074】第1次の圧縮は、k=0のときである。し
たがって、下の数式(17)が成立するアドレス長Nが
下限となり、このときの圧縮率はn/lである。
【数17】
【0075】図27は第1次圧縮に対して、kビットの
第2次圧縮を加えたときのアドレス長Nと第2次圧縮ビ
ット長kとの関係を示すグラフである。図27に示すよ
うに、第1次圧縮に続いて、さらに第2次圧縮できる可
能性がある。さらに、第3次圧縮,第4次圧縮,第5次
圧縮,・・・,第i次圧縮,・・・と続け、高次圧縮す
ると、計算上は限りなく、限界のアドレス長N=2n
もつ外部メモリの容量まで圧縮が可能なことを図27は
示している。なお、図27において、第1次圧縮と第2
次圧縮との境界は、マイクロプロセッサのビット長lが
大きくなれば、下方に変化する。
【0076】図27のグラフを解析した結果を表1に示
す。
【表1】
【0077】表1においては、下の数式(18),(1
9)が用いられる。
【数18】
【数19】
【0078】表1に示すように、ビット長lが大きいマ
イクロプロセッサになるに従って、第1次圧縮の圧縮領
域が大きくなり、コード圧縮の効果が大きい。実用的に
は、第1次圧縮で十分な圧縮率が得られ、外部メモリの
容量を圧縮できる。表1から明らかなように、lビット
長のマイクロプロセッサにおいて、第2次圧縮を加える
ことによって、さらにkビットだけ外部メモリを圧縮す
ることができる。たとえば、ビット長l=32の場合、
32ビットマイクロプロセッサとなるが、k=2とな
り、さらに2ビット圧縮できることとなるので、(n−
2)に圧縮できる。32ビットマイクロプロセッサの実
験例では、n=16であるから、第2次圧縮を加えるこ
とによって、外部メモリメモリのビット幅を14ビット
にできる可能性が高い。
【0079】32ビットマイクロプロセッサの第1次圧
縮の場合の圧縮効果をもつアドレス長Nの下限を表2に
示す。
【表2】
【0080】表2は、32ビットマイクロプロセッサの
第1次圧縮の場合であるから、下の数式(20)が成立
する。
【数20】
【0081】表には示していないが、l=64の64ビ
ットマイクロプロセッサの第1次圧縮の場合には、下の
数式(21)が成立する。
【数21】
【0082】32ビットマイクロプロセッサの第2次圧
縮の場合の圧縮効果をもつアドレス長Nの下限を表3に
示す。
【表3】
【0083】表3は、32ビットマイクロプロセッサの
第2次圧縮の場合であるから、下の数式(22)が成立
する。
【数22】
【0084】表には示していないが、l=64,k=2
の64ビットマイクロプロセッサの第2次圧縮の場合に
は、下の数式(23)が成立する。
【数23】
【0085】図28はl,kを一定とした場合のアドレ
ス長Nとnとの関係を示すグラフである。図28におい
て、実線はf(0)≧f(k)の場合を示し、点線はf
(0)≦f(k)の場合を示す。このように、f(0)
≦f(k)となる場合があるが、それはマイクロプロセ
ッサのビット長に依存する。また、32ビットマイクロ
プロセッサの場合、k=2のとき、l=32でn=16
となる。
【0086】図28のグラフにおいて、a点とb点また
は接点cを数値化した例を表4に示す。
【表4】
【0087】表4に示すビット長をもつマイクロプロセ
ッサにおいて、以下のようになる。 (1)l=16のとき、n=8は3≦n≦13の中点と
なる。 (2)l=32のとき、n=16は3≦n≦29の中点
となる。 (3)l=48のとき、n=24は11≦n≦37の中
点となる。 (4)l=64のとき、n=32は10≦n≦54の中
点となる。 (5)l=96のとき、n=48は9≦n≦87の中点
となる。 (6)l=128のとき、n=64は33≦n≦95の
中点となる。 (7)l=256のとき、n=128は27≦n≦22
9の中点となる。 (8)l=512のとき、n=256は75≦n≦43
7の中点となる。 (9)l=640のとき、n=320は73≦n≦56
7の中点となる。
【0088】図29は第1次圧縮でビット幅nまで外部
メモリが圧縮され、その後第2次圧縮を加えることによ
って得られるメモリイメージの例を示す図である。プロ
グラムまたはデータは、通常複数個からなっている場合
が多く、図29に示すように、さらにkビットの第2次
圧縮が可能なN2 やN4 のアドレス領域が存在する。ま
た、第2次圧縮以上の高次圧縮が可能なアドレス領域が
存在する場合もある。しかし、実用上では、ビット幅n
のメモリによって設計される。
【図面の簡単な説明】
【図1】16ビットアクセスを行う場合の32ビットマ
イクロプロセッサ10を示すブロック図である。
【図2】外部メモリのメモリエリアがカットされ、コー
ドが圧縮される状態を示す概念図である。
【図3】32ビットアクセスを行う場合の32ビットマ
イクロプロセッサ10を示すブロック図である。
【図4】仮想的(疑似的)コードが外部のメモリに収納
された一例を示すメモリイメージ図である。
【図5】仮想的(疑似的)コードが外部のメモリに収納
された他の例を示すメモリイメージ図である。
【図6】仮想的(疑似的)コードが外部のメモリに収納
されたさらに他の例を示すメモリイメージ図である。
【図7】仮想的(疑似的)コードが外部のメモリに収納
された別の例を示すメモリイメージ図である。
【図8】32ビットアクセスの場合のアドレス管理を示
すフロー図である。
【図9】32ビットアクセスの場合のアドレス管理を示
すフロー図である。
【図10】48ビットアクセスの場合のアドレス管理を
示すフロー図である。
【図11】64ビットアクセスの場合のアドレス管理を
示すフロー図である。
【図12】オブジェクトコードの種類の数xのビット数
nと圧縮率n/32との関係を示すグラフである。
【図13】アドオンソフトウェアのセグメント管理を示
すブロック図である。
【図14】n=16の場合のセグメントのセグメントサ
イズと同一命令の平均数(または同一オブジェクトコー
ドの平均容量)との関係を示すグラフである。
【図15】n=13の場合のセグメントのセグメントサ
イズと同一命令の平均数(または同一オブジェクトコー
ドの平均容量)との関係を示すグラフである。
【図16】n=10の場合のセグメントのセグメントサ
イズと同一命令の平均数(または同一オブジェクトコー
ドの平均容量)との関係を示すグラフである。
【図17】圧縮率のプロセッサビット長への依存性(予
測値)を示すグラフである。
【図18】コード変換部を含む半導体メモリ装置を示す
ブロック図である。
【図19】コード変換部の大きさが固定される場合を説
明するためのメモリイメージの例を示す図である。
【図20】(A)は図19(B)に示す例のアドレス管
理を示すフロー図であり、(B)は図19(C)に示す
例のアドレス管理を示すフロー図である。
【図21】この発明の他の例を示すブロック図である。
【図22】図21に示す例の変形例を示すブロック図で
ある。
【図23】外部メモリおよびコード変換部を示すブロッ
ク図である。
【図24】第2次圧縮の可能性を示す外部メモリと第1
次圧縮用のコード変換部とを示すブロック図である。
【図25】第2次圧縮をした場合の外部メモリ,第1次
圧縮用のコード変換部および第2次圧縮用のコード変換
部を示すブロック図である。
【図26】第2次圧縮できるアドレス長の下限と限界と
を示す図である。
【図27】第1次圧縮に対して、kビットの第2次圧縮
を加えたときのアドレス長Nと第2次圧縮ビット長kと
の関係を示すグラフである。
【図28】l,kを一定とした場合のアドレス長Nとn
との関係を示すグラフである。
【図29】第1次圧縮でビット幅nまで外部メモリが圧
縮され、その後第2次圧縮を加えることによって得られ
るメモリイメージの例を示す図である。
【符号の説明】
10 32ビットマイクロプロセッサ 14,14a,14b コード変換部 47 外部メモリ
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) H03M 7/30 G06F 12/04 530

Claims (13)

    (57)【特許請求の範囲】
  1. 【請求項1】 メモリと、 重複するコードに仮想的コードを割り振り、前記仮想的
    コードを実コードに変換するコード変換部であって、前
    記コード変換部はアドレス部と命令部とを有し、前記メ
    モリがデータ伝達経路を介して前記コード変換部にアド
    レスを発する、コード変換部と、 前記コード変換部の前記命令部から命令を受ける中央処
    理装置と、 命令部とアドレス部を有するコード逆変換部であって、
    前記中央処理装置は前記コード変換部の命令部に接続
    し、前記コード逆変換部は前記命令をデータ伝達経路を
    介して前記メモリに対して出力されるアドレスに変換す
    るコード変換部を含むことを特徴とする、デジタルデー
    タ処理装置。
  2. 【請求項2】 前記中央処理装置が前記コード変換部を
    含む、請求項1のデジタルデータ処理装置。
  3. 【請求項3】 前記メモリは外部メモリであり、前記外
    部メモリは前記コード変換部を含む、請求項1のデジタ
    ルデータ処理装置。
  4. 【請求項4】 前記コード変換部は書き変え可能ROM
    である、請求項2のデジタルデータ処理装置。
  5. 【請求項5】 前記コード変換部は書き変え可能ROM
    である、請求項3のデジタルデータ処理装置。
  6. 【請求項6】 前記コード変換部はRAMである、請求
    項2のデジタルデータ処理装置。
  7. 【請求項7】 前記コード変換部はRAMである、請求
    項3のデジタルデータ処理装置。
  8. 【請求項8】 前記中央処理装置はマイクロプロセッサ
    である、請求項2のデジタルデータ処理装置。
  9. 【請求項9】 前記外部メモリは半導体メモリである、
    請求項3のデジタルデータ処理装置。
  10. 【請求項10】 前記メモリには、複数のプログラムが
    格納され、前記メモリは、前記コード変換部によって、
    第1次圧縮したのち、さらに、高次圧縮できるプログラ
    ムを含む、請求項1のデジタルデータ処理装置。
  11. 【請求項11】 前記メモリには、複数のデータが格納
    され、 前記メモリは、前記コード変換部によって、第1次圧縮
    したのち、さらに、高次圧縮できるデータを含む、請求
    項1のデジタルデータ処理装置。
  12. 【請求項12】 前記コード変換部は、データの重複す
    るコードに対して前記仮想コードを割り振り、前記仮想
    コードを実コードに変換する、請求項1のデジタルデー
    タ処理装置。
  13. 【請求項13】 前記コード変換部は、プログラムの重
    複するコードに対して前記仮想コードを割り振り、前記
    仮想コードを実コードに変換する、請求項1のデジタル
    データ処理装置。
JP02455196A 1995-06-01 1996-01-17 デジタルデータ処理装置 Expired - Fee Related JP3310525B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP02455196A JP3310525B2 (ja) 1995-06-01 1996-01-17 デジタルデータ処理装置
US08/655,758 US5799138A (en) 1995-06-01 1996-05-30 Apparatus for instruction-word-linK compression

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP7-159853 1995-06-01
JP15985395 1995-06-01
JP02455196A JP3310525B2 (ja) 1995-06-01 1996-01-17 デジタルデータ処理装置

Publications (2)

Publication Number Publication Date
JPH0951276A JPH0951276A (ja) 1997-02-18
JP3310525B2 true JP3310525B2 (ja) 2002-08-05

Family

ID=26362093

Family Applications (1)

Application Number Title Priority Date Filing Date
JP02455196A Expired - Fee Related JP3310525B2 (ja) 1995-06-01 1996-01-17 デジタルデータ処理装置

Country Status (2)

Country Link
US (1) US5799138A (ja)
JP (1) JP3310525B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100329063B1 (ko) 1996-10-25 2002-03-18 디디어 레묀 마이크로컨트롤러를 이용한 고급 프로그래밍 언어 사용
JPH10326224A (ja) * 1997-05-27 1998-12-08 Nec Corp ディジタル・シグナル・プロセッサ
SE9704476L (sv) * 1997-12-02 1999-06-23 Ericsson Telefon Ab L M Utökad instruktionsavkodning
US6661421B1 (en) * 1998-05-21 2003-12-09 Mitsubishi Electric & Electronics Usa, Inc. Methods for operation of semiconductor memory
JP3703337B2 (ja) * 1999-06-30 2005-10-05 キヤノン株式会社 画像通信装置及び画像通信方法
GB2366643B (en) * 2000-05-25 2002-05-01 Siroyan Ltd Methods of compressing instructions for processors
JP5577881B2 (ja) * 2010-06-23 2014-08-27 セイコーエプソン株式会社 プリペイドカード処理装置、プリペイドカード処理装置の処理方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59148467A (ja) * 1983-02-14 1984-08-25 Canon Inc デ−タ圧縮装置
JPS6133546A (ja) * 1984-07-25 1986-02-17 Nec Corp 情報処理装置
US4760461A (en) * 1986-02-28 1988-07-26 Kabushiki Kaisha Toshiba Binary data compression and expansion processing apparatus
US5216518A (en) * 1990-09-04 1993-06-01 Canon Kabushiki Kaisha Image processing method and apparatus for encoding variable-length data
JP3012698B2 (ja) * 1991-01-29 2000-02-28 オリンパス光学工業株式会社 画像データの符号化装置および符号化方法
US5574834A (en) * 1992-01-09 1996-11-12 Matsushita Graphic Communications Systems, Inc. Image communication system for following a communication procedure to simultaneously transmit image code data

Also Published As

Publication number Publication date
JPH0951276A (ja) 1997-02-18
US5799138A (en) 1998-08-25

Similar Documents

Publication Publication Date Title
US20240211252A1 (en) Computer processor for higher precision computations using a mixed-precision decomposition of operations
US8713080B2 (en) Circuit for compressing data and a processor employing same
US9298457B2 (en) SIMD instructions for data compression and decompression
US5995747A (en) Three input arithmetic logic unit capable of performing all possible three operand boolean operations with shifter and/or mask generator
US11836368B2 (en) Lossy data compression
US6032170A (en) Long instruction word controlling plural independent processor operations
US5960465A (en) Apparatus and method for directly accessing compressed data utilizing a compressed memory address translation unit and compression descriptor table
US7898550B2 (en) System and method for memory bandwidth compressor
US20140208068A1 (en) Data compression and decompression using simd instructions
KR20100122493A (ko) 프로세서
US11461095B2 (en) Method and device for floating point representation with variable precision
JP3729540B2 (ja) 画像処理装置
US20190042261A1 (en) Systems and methods for performing horizontal tile operations
JP3310525B2 (ja) デジタルデータ処理装置
US6173305B1 (en) Division by iteration employing subtraction and conditional source selection of a prior difference or a left shifted remainder
JP3201716B2 (ja) コンピュータ装置
US6308249B1 (en) Storing data in a grey code system
WO2023239452A1 (en) Application process context compression and replay
US7647368B2 (en) Data processing apparatus and method for performing data processing operations on floating point data elements
CN114661227A (zh) 通过使用忘记存储来增加每核存储器带宽
JP2002171525A (ja) ビットプレーン演算命令を備えたsimd型演算装置
JPH10105672A (ja) コンピュータ及びそれに使用する演算機能付きメモリ集積回路
KR970029125A (ko) 양자화/역양자화 공유 처리기
JPH11187274A (ja) 符号化方法及び装置とそれを適用した画像処理装置
JPH08139939A (ja) 圧縮伸長装置

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20080524

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20090524

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20100524

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20110524

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees