JPS61201335A - プログラム格納方法 - Google Patents

プログラム格納方法

Info

Publication number
JPS61201335A
JPS61201335A JP4196585A JP4196585A JPS61201335A JP S61201335 A JPS61201335 A JP S61201335A JP 4196585 A JP4196585 A JP 4196585A JP 4196585 A JP4196585 A JP 4196585A JP S61201335 A JPS61201335 A JP S61201335A
Authority
JP
Japan
Prior art keywords
program
machine code
compressed
rom
stored
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
JP4196585A
Other languages
English (en)
Inventor
Jun Yamashita
純 山下
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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
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 Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP4196585A priority Critical patent/JPS61201335A/ja
Publication of JPS61201335A publication Critical patent/JPS61201335A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 「産業上の利用分野」 本発明は、マイクロプロセッサ等を使用する各種機器の
記憶装置へのプログラム格納方法に関する。
「従来の技術」 近年、工場の製造設備、事務用機器あるいは家庭用電気
機器にいたるまで、マイクロプロセッサが非常に多く採
用されている。
マイクロプロセッサは、これに付属して取り付けられた
記憶装置に格納されたプログラムに従って機器を制御す
る。記憶装置としては、多くの場合、リード・オンリ・
メモ!J (ROM)素子が使用される。マイクロプロ
セッサは、このROM素子に書き込まれたプログラムを
直接読み出して順次実行していく場合と、一度ランダム
・アクセス・メモリ(RAM)素子に格納し直してこれ
を読み出しながら実行する場合とがある。こういった記
憶素子に格納されるプログラムを構成する各命令は、所
定のビット構成のマシンコードとして格納されることは
良く知られている。通常、記憶素子がパラレルに入出力
で、きるビット数は、4ビツト、8ビツト、16ビツト
等一定の長さに限定される。この長さは、1つのアドレ
スに格納できるデータのビット数に相当している。とこ
ろが、命令は必ずしもすべて一定の長さのマシンコード
で表現することはできない。そこで短いマシンコードは
1つのアドレスに格納し、長いマシンコードは2以上の
アドレスにふり分けて格納される。
従って、コード長の長いマシンコードは、短いものに比
べて読み出しに時間がかかり、このようなマシンコード
が多いとプログラムの実行速度が低下してしまう。もち
ろん、コード長の長い命令が多く含まれるプログラムは
、これを格納するために大容量の記憶装置を必要とする
難点もある。
これを解決するために、従来、命令の実行される頻度お
よびその命令がプログラム中に含まれる頻度を考慮して
、このような頻度の大きいものは短いコード長に、頻度
の小さいものは長いコード長になるようにマシンコード
を定めることが行われてきた。そして、更に、従来複数
の命令で実行されていた処理を一つの命令で実行できる
よう命令のセット化等を行い、処理速度の向上とメモリ
容量の増大防止を図っていた。
「発明が解決しようとする問題点」 ところが、このようなマイクロプロセッサの設計および
改善は、あくまでも汎用性の高いプログラムの実行に主
眼を置いてなされており、きわめて特殊なプログラムに
ついては必ずしも良い結果が得られない難点があった。
しかしながら、個々の特殊なプログラムを使用するケー
スについて、その都度マイクロプロセッサの実効あるア
ーキテクチャの開発を行うことは、マイクロプロセッサ
を著しく高価なものとし、現実的でない。
従って、特殊なプログラムについては、メモリ容量の増
大はやむを得ないものとして、記憶装置の増設等により
対処していた。
しかし、メモリ容量が増大すれば装置の大型化とコスト
アップを招くばかりでなく、一般に、容量の大きい記憶
素子はどアクセス速度は遅くなり、処理速度の低下を招
く右それがある。
また、規格化された基板(ボード)を使用しているよう
な場合、これに装着できる記憶素子の敗が制限され、ど
うしても記憶素子の増設が困難な場合が生じる。
本発明は以上の点に着目してなされたもので、マシンコ
ード化したとき、そのコード長が比較的長い命令が多く
含まれているような特殊なプログラムを、比較的小容量
の記憶装置に格納できるようにすることを目的としてい
る。
また、本発明は、記憶装置に格納したマシンコードの読
み出し速度の向上を図ったプログラム格納方法を提供す
ることを目的としている。
「問題点を解決するための手段」 本発明のプログラム格納方法は、プログラムをマシンコ
ード化して記憶装置に格納する場合において、プログラ
ムに含まれる命令のうち、マシンコード化したときその
コード長が比較的長いものであって、そのプログラム中
に比較的多く含まれている特定の命令について、そのマ
シンコードをこれより短い圧縮マシンコードに置換した
後記憶装置に格納することを特徴としている。
このとき、記憶装置として、主たる記憶素子と、高速ア
クセスのできる小容量の記憶素子とを使用し、特定の命
令に対応するマシンコードを圧縮マシンコードに置換し
たプログラムを前記上たる記憶素子に格納し、圧縮マシ
ンコードから元のマシンコードを復元するテーブルを小
容量の記憶素子に格納する。
「作用」 ・  このように、本発明においては、プログラム中に
含まれている特定の命令をいくつか選択して、それぞれ
圧縮マシンコードを設定する。そしてそのマシンコード
と圧縮マシンコードとを置換し記憶装置に格納する。そ
のような命令の使用頻度が高い程小容量の記憶装置にそ
のプログラムが格納でき、メモリ容量の節約を図ること
ができる。
また、プログラムを格納する主たる記憶素子は大容量で
あってそのアクセス速度が比較的遅い。
ここから、コード長の短い圧縮マシンコードを読み出し
て、これを用いて、高速でアクセスできる小容量の記憶
素子に格納されたコード長の長い元のマシンコードを復
元する。こうすれば、コード長の長いマシンコードを高
速でアクセスできるので、プログラムの読み出し時間の
短縮化を図ることができる。
「実施例」 (プログラムの圧縮) 第1図は本発明のプログラム格納方法を実施するのに適
した装置の実施例で、第2図はその実行のためのプログ
ラムのフローチャートである。この装置を用いて、外部
装置から入力されるプログラムを圧縮してROM素子内
に書き込みを行う。
第1図の装置は、共通パスラインlOに、ランダム・ア
クセス・メモリ(RAM)素子llと、マイクロプロセ
ッサ12と、圧縮処理の実行のためのプログラムを書き
込んだリード・オンリ・メモリ(ROM)素子13と、
インターフェース(1/F)14と、ROM書き込み装
置16とが接続され、圧縮処理後のプログラムを格納す
るROM素子15がこれに対して書込み処理を行うRO
M書込み装置16を介して接続されたものである。
インターフェース14は、ROM15に格納tべきプロ
グラムを、図示しないキーボードや外部記憶装置から受
は入れる。マイクロプロセッサ12は、このインターフ
ェース14を介して受は入れたプログラムを一度RAM
素子ll内に格納して、その後、プログラム中の特定の
命令に対応するマシンコードを圧縮マシンコードに置換
する処理を行う。
特定の命令とは、例えば次のようなものである。
〔データ転送命令1     33F9〔転送元番地 
I10レジスタ〕 0OFFOO40 〔転送先番地 I10レジスタ〕 0OFFOO52 この命令は、データを所定の番地から所定の番地へ転送
する命令であるが、そのマシンコードを連結すると全部
で10バイトとなる。
従って、2バイトずつパラレル処理できる記憶素子にこ
のマシンコードを格納する場合、5つのアドレスにふり
わけて格納することになる。
本発明では、このマシンコードを、他に使用されていな
い例えば“0123”という2バイトの圧縮マシンコー
ドに置換する。
RAM素子11中に書き込まれたプログラムの圧縮処理
は、次のようにして行う。
第2図に示したものが、そのフローチャートで、この内
容が圧縮制御用のROM1子13に書き込まれている。
まずはじめに、マイクロプロセッサ12がRAM素子1
1から命令を2バイト読み出す(ステップ■)。次にこ
れをマイクロプロセッサ12内に組み込まれたレジスタ
に格納する(ステップ■)。このレジスタは、プログラ
ム中に使用されている最長の命令を順次格納できる容量
とされている。そして−命令分読み出しが完了したか否
かを判断しながら(ステップ■)、−命令分の全てのコ
ードがレジスタに格納されるまで2バイトずつ読み出し
を続ける(ループ■)。例えば、先に例示した転送命令
のマシンコード場合、5回の読み出しによって10バイ
トのマシンコードがレジスタに格納される。レジスタに
一命令分のマシンコードが格納されると、そのマシンコ
ードが圧縮すべきものか否かの判定を行う(ステップ■
)。
そして圧縮すべきものであれば圧縮コードに変換(ステ
ップ■)を行う。
こうして、圧縮の不要なマシンコードはそのままROM
15に書き込まれ°、圧縮の必要なマシンコードは、こ
れにより短いコード長の圧縮マシンコードに置換された
後ROM 15に書き込まれる(ステップ■)。
すべてのプログラムの書き込みが終了したか否かを判断
して(ステップ■)、再読み出しくループ■)を行うか
あるいは圧縮処理を終了する。
このように、圧縮制御用のROM素子13にあらかじめ
圧縮処理のプログラムと共に、圧縮の必要なマシンコー
ドと圧縮マシンコードとを書き込んでおけば、上記の装
置で圧縮されたプログラムを格納した記憶素子を得るこ
とができる。
例えばこのような処理によって、元のプログラムを約8
にバイト節約をして64にバイトのROM素子に格納し
たとする。これに、後で説明する圧縮マシンコードの復
元用の0.5にバイトのROM素子を追加する。こうし
て8己憶装置全体として差引き7.5にバイトのメモリ
容量を節約できる。
(プログラムの復元) 以上のようにして圧縮されたプログラムは、そのまま読
み出しても、汎用のマイクロプロセッサで判読できない
圧縮コードが含まれているので、実行することができな
い。そこで、このプログラムを格納した記憶素子からマ
シンコードを読み出しながら先に1換した圧縮マシンコ
ードをもとのマシンコードに復元する装置を必要とする
。
第3図は、そのような復元処理に適する装置のブロック
図である。
この装置の共通パスライン20には、圧縮されたプログ
ラムを格納したROM素子<ROM−A)21と、復元
処理のプログラムおよび復元用のテーブルを書き込んだ
ROM素子(ROM−B)22と、復元されたプログラ
ムを格納するRAM素子23と、これらの動作を制御す
るマイクロプロセッサ24とが接続されている。すなわ
ち、圧縮されたプログラムを格納する記憶装置25は実
質的に上転2つのROM素子21.22とから構成され
ている。ROM素子22に格納された復元用のテーブル
は、例えば圧縮マシンコードに相轟する“0123″を
上位ビットとする5つのアドレスに、元のマシンコード
である“33F90OFFOO520OFFOO40″
を2バイトずつふり分けて書き込んだものである。この
アドレスの下位ビットを例えば“0”から“5”まで順
にカウントアツプしていけば、このマシンコードを2バ
イトずつ順次読み出すことができる。
この装置は、第4図に示したような手順に従って動作す
る。
まずはじめに、ROM素子21(第3図)から2バイト
のマシンコードを読み出す(ステップ■)。
次に、そのマシンコードが圧縮マシンコードか否かを判
定する(ステップ■)。
マシンコードが圧縮マシンコードでないときはそのまま
RAM素子23(第3図)に書き込みを行う(ステップ
■)。一方、マシンコードが圧縮マシンコードのときは
、ROM素子22(第3図)の復元用のテーブルを読み
出しくステップ■)、これをRAM素子23 (13図
)に書き込む(ステップ■)。ROM素子22(第3図
)からの元のマシンコードの読み出しが数回にわたる場
合、−命令分の書き込みが終了したか否かの判定を行い
(ステップ■)、読み出しと書き込みをくり返す(ルー
プ■)。
こうして、圧縮マシンコードを復元した元のマシンコー
ドのRAM素子23(第3図)への書き込みが終了する
と、すべてのプログラムの読み出しが終了したか否かを
判断しくステップ■)、これが終了するまで以上の動作
をくり返す〈ループ■)。
以上のような処理を行う場合、第3図のROM素子21
はプログラムの格納のために比較的大容量の、先に例示
した例えば容量64にバイトのものを使用する。これに
対してROM素子22には、簡単なプログラムと復号用
テーブルを格納するのみであるから、先に例示したよう
に0.5にバイトと、比較的小容量のものを使用するこ
とができる。そして、これには、高速でアクセスできる
記憶素子を使用する。
このようにすれば、圧縮マシンコード以外のマシンコー
ドの読み出しと書き込みを行うループ■(第4図)の1
回分の実行時間に比べて、圧縮マシンコードの読み出し
と書き込みを行うループ■(第4図)の1回分の実行時
間を十分短くすることができるので、圧縮マシンコード
が多く含まれる程プログラム全体の読み出し処理の時間
の節約効果が大きくなる。
例えば第3図のROM素子21の読み出し時間に対して
ROM素子22のそれが約60パーセントであったとす
る。そして、このような読み出し処理時間が全体の20
パーセントを占めるとすると、最終的にプログラム全体
を読み出す時間を例えば約8パーセント節約できること
となる。
なお、第3図の実施例では、プログラムを一度RAM素
子23へ格納してから実行するようにしたが、ROM素
子21からプログラムを読み出しながら順次これを実行
するようにしてもよい。また、復元用のテーブルを格納
する記憶素子と、プログラムの復元の処理のプログラム
を格納する記憶素子はそれぞれ別体のものを使用しても
よい。
(別の構成の復元装置) 第5図はROM素子21に格納されたプログラムを読み
出しながら、必要な復元処理を行い、順次これを実行し
ていくのに適した装置の実施例を示す。
この装置は、ROM素子21の出力が復元テーブル用の
ROM素子22′のアドレス端子22゜と、セレクタ2
6の入力端子26.および制御端子26.に接続されて
いる。そして、復元テーブル用のROM素子22′の出
力は、セレクタ26のもう一方の端子26.に接続され
ている。セレ゛クタ26は、その制御端子263に入力
するマシンコードが復元を要しないものの場合、端子2
6゜を出力側に接続し、復元を要するものの場合、端子
262を出力側に接続するよう切り換えを行う既知のマ
イクロプロセッサ等に接続されている。
マイクロプロセッサ24はROM素子21に対して出力
制御信号241 を送り、セレクタ26からマシンコー
ドを受は入れて実行する。
このような装置は、マイクロプロセッサ24からの指令
によってROM素子21がマシンコードを出力すると、
これが復元を要しないものの場合、セレクタ26の端子
261 に送り込まれるマシンコードがセレクタ26を
そのまま通過してマイクロプロセッサ24に入力する。
一方、ROM素子21から出力されたマシンコードが復
元を要するものの場合、例えばその内容が“0123”
である場合は、復元テーブル用のROM素子22′の該
当アドレスに格納された”33F90OFFOO520
OFFOO40’のマシンコードがここから出力される
。そして、セレクタ26は“0123”がその制御端子
26゜に入力すると、端子26.に入力する復元テーブ
ル用のROM素子22′の出力するマシンコードをフィ
クロプロセッサ24に送るようにその出力の選択を切り
換える。上記10バイトのマシンコードは、これによっ
て、ROM素子22′から例えば2バイトずつ5回に分
けて高速で読み出される。
このようにしてプログラムを復元しながら順次これを実
行していくこともできる。
「発明の効果」 以上説明した本発明のプログラム格納方法によれば、マ
シンコードのコード長の長い命令が多く含まれる特殊な
プログラムを圧縮して記憶装置に格納するので記憶装置
の容量の節約を図ることができる。
また、マシンコードのコード長の長い命令の読み出しの
みを、高速アクセスできる小容量の記憶素子に代行させ
るので、全体としてプログラムの読み出し時間を短縮す
ることができる。
【図面の簡単な説明】
第1図は本発明のプログラム格納方法の実施に適する装
置の実施例を示すブロック図、第2図はその実行のため
のプログラムのフローチャート、第3図は圧縮されて記
憶装置に格納されたプログラムを読み出す装置の実施例
を示すブロック図、第4図はその実行のためのプログラ
ムのフローチャート、第5図は第3図に示した装置の変
形例を示すブロック図である。 25・・・・・・記憶装置、 21・・・・・・主たる記憶素子、 22・・・・・・小容量の記憶素子。

Claims (1)

  1. 【特許請求の範囲】 1、プログラムをマシンコード化して記憶装置に格納す
    る場合において、プログラムに含まれる命令のうち、マ
    シンコード化したときそのコード長が比較的長いもので
    あって、そのプログラム中に比較的多く含まれている特
    定の命令について、そのマシンコードをこれより短い圧
    縮マシンコードに置換した後記憶装置に格納することを
    特徴とするプログラム格納方法。 2、記憶装置として、主たる記憶素子と、高速アクセス
    のできる小容量の記憶素子とを使用し、特定の命令に対
    応するマシンコードを圧縮マシンコードに置換したプロ
    グラムを前記主たる記憶素子に格納し、圧縮マシンコー
    ドから元のマシンコードを復元するテーブルを小容量の
    記憶素子に格納することを特徴とする特許請求の範囲第
    1項記載のプログラム格納方法。
JP4196585A 1985-03-05 1985-03-05 プログラム格納方法 Pending JPS61201335A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4196585A JPS61201335A (ja) 1985-03-05 1985-03-05 プログラム格納方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4196585A JPS61201335A (ja) 1985-03-05 1985-03-05 プログラム格納方法

Publications (1)

Publication Number Publication Date
JPS61201335A true JPS61201335A (ja) 1986-09-06

Family

ID=12622899

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4196585A Pending JPS61201335A (ja) 1985-03-05 1985-03-05 プログラム格納方法

Country Status (1)

Country Link
JP (1) JPS61201335A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04278639A (ja) * 1991-03-07 1992-10-05 Nec Corp 情報処理装置の実行方式
JPH0575840U (ja) * 1991-04-19 1993-10-15 オムロン株式会社 コントローラ

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04278639A (ja) * 1991-03-07 1992-10-05 Nec Corp 情報処理装置の実行方式
JPH0575840U (ja) * 1991-04-19 1993-10-15 オムロン株式会社 コントローラ

Similar Documents

Publication Publication Date Title
US6564237B2 (en) Arithmetic unit and data processing unit
US6915413B2 (en) Micro-controller for reading out compressed instruction code and program memory for compressing instruction code and storing therein
JPS63301339A (ja) コンピュ−タ装置
JPS62226234A (ja) スタツクポインタ制御回路
JP2878264B1 (ja) トレーサ装置、トレースデータ圧縮方法および圧縮トレースデータ読み出し方法
US4956805A (en) Circuitry for character translate functions
JPS6242301B2 (ja)
JPH0683639A (ja) レジスタ装置
JPH01121937A (ja) マイクロコンピュータ
JPH044430A (ja) イニシヤルプログラムロード方式
JPS6129940A (ja) 演算装置
JPS59105110A (ja) プログラマブルコントロ−ラ
JPS6143342A (ja) マイクロプログラム制御装置
JPH03282625A (ja) データ処理装置
JPH08297583A (ja) 割り込み処理装置およびその方法
JPH0258646B2 (ja)
JPS61143808A (ja) シ−ケンス制御装置のビツトモデイフアイ回路
JPS5852261B2 (ja) プログラム処理方式
JPS60239828A (ja) マイクロプログラム制御装置
JPH11259293A (ja) データ処理装置
JPH03163626A (ja) マイクロコンピュータ
JPH02178836A (ja) 中央演算処理装置
JPH04364526A (ja) 繰り返し演算制御装置
JPH0442331A (ja) アドレストレースメモリ装置
JPS63231676A (ja) ベクトルレジスタ制御方式