JP2003108367A - プログラムメモリ削減方法およびプログラムメモリ読出回路 - Google Patents
プログラムメモリ削減方法およびプログラムメモリ読出回路Info
- Publication number
- JP2003108367A JP2003108367A JP2001295325A JP2001295325A JP2003108367A JP 2003108367 A JP2003108367 A JP 2003108367A JP 2001295325 A JP2001295325 A JP 2001295325A JP 2001295325 A JP2001295325 A JP 2001295325A JP 2003108367 A JP2003108367 A JP 2003108367A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- program memory
- circuit
- output
- clock pulse
- 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
- Executing Machine-Instructions (AREA)
Abstract
(57)【要約】
【課題】 プログラムメモリの容量を削減することがで
きるプログラムメモリ削減方法を提供する。 【解決手段】 プログラムメモリ12に、従来の命令コ
ードに加えてaddnop命令、subnop命令という合成命令が
記憶される。アセンブラはニーモニックコードを命令コ
ードに変換する際に次の処理を行う。 (1)add命令の次の命令がnop命令であった場合に、add命
令をaddnop命令コードに変換し、nop命令の変換は行わ
ない。(2)sub命令の次の命令がnop命令であった場合
に、sub命令をsubnop命令コードに変換し、nop命令の変
換は行わない。 命令翻訳回路13は、プログラムメモリ12から合成命
令以外が出力された時はその命令をそのまま出力し、合
成命令が出力された時はプログラムカウンタ11を一時
停止し、合成命令に対応する複数の命令を順次出力す
る。
きるプログラムメモリ削減方法を提供する。 【解決手段】 プログラムメモリ12に、従来の命令コ
ードに加えてaddnop命令、subnop命令という合成命令が
記憶される。アセンブラはニーモニックコードを命令コ
ードに変換する際に次の処理を行う。 (1)add命令の次の命令がnop命令であった場合に、add命
令をaddnop命令コードに変換し、nop命令の変換は行わ
ない。(2)sub命令の次の命令がnop命令であった場合
に、sub命令をsubnop命令コードに変換し、nop命令の変
換は行わない。 命令翻訳回路13は、プログラムメモリ12から合成命
令以外が出力された時はその命令をそのまま出力し、合
成命令が出力された時はプログラムカウンタ11を一時
停止し、合成命令に対応する複数の命令を順次出力す
る。
Description
【0001】
【発明の属する技術分野】この発明は、ハードウエアを
制御するプログラムが書き込まれるプログラムメモリの
容量を削減するプログラムメモリ削減方法およびプログ
ラムメモリ読出回路に関する。
制御するプログラムが書き込まれるプログラムメモリの
容量を削減するプログラムメモリ削減方法およびプログ
ラムメモリ読出回路に関する。
【0002】
【従来の技術】周知のように、DSP(Digital Signal
Processor)はプログラムメモリに記憶された命令に従
ってハードウエアが制御される。例えば、ニーモニック
コードによって記載されたプログラムが、 100行目 add A, B, C // C=A+B 101行目 nop // No Operation 102行目 sub A, B, C // C=A-B 103行目 nop // No Operation 104行目 add A, B, C // C=A+B 105行目 mov D E // E=D であったとする。
Processor)はプログラムメモリに記憶された命令に従
ってハードウエアが制御される。例えば、ニーモニック
コードによって記載されたプログラムが、 100行目 add A, B, C // C=A+B 101行目 nop // No Operation 102行目 sub A, B, C // C=A-B 103行目 nop // No Operation 104行目 add A, B, C // C=A+B 105行目 mov D E // E=D であったとする。
【0003】ここで、例えば100行目の命令は、Aレジ
スタとBレジスタの内容を加算し、その結果をCレジス
タに格納するというものであり、101行目の命令はなに
もしないというものであり、102行目の命令は、Aレジ
スタからBレジスタの内容を減算し、その結果をCレジ
スタに格納するというものである。また、105行目の命
令はDレジスタの内容をEレジスタに移動させる移動命
令である。このプログラムがアセンブラによって、 100行目 0x1ABC 101行目 0x0000 102行目 0x2ABC 103行目 0x0000 104行目 0x1ABC 105行目 0x3D0E なる命令に変換され、プログラムメモリに書き込まれ
る。ここで、アセンブラは命令nopを命令コード「0」
に、命令addを命令コード「1」に、命令subを命令コー
ド「2」に、命令moveを命令コード「3」に変換し、ま
た、第1引数から第3引数をその後に付加している。結
果として、命令語長16ビットの命令コードが作成され
る。
スタとBレジスタの内容を加算し、その結果をCレジス
タに格納するというものであり、101行目の命令はなに
もしないというものであり、102行目の命令は、Aレジ
スタからBレジスタの内容を減算し、その結果をCレジ
スタに格納するというものである。また、105行目の命
令はDレジスタの内容をEレジスタに移動させる移動命
令である。このプログラムがアセンブラによって、 100行目 0x1ABC 101行目 0x0000 102行目 0x2ABC 103行目 0x0000 104行目 0x1ABC 105行目 0x3D0E なる命令に変換され、プログラムメモリに書き込まれ
る。ここで、アセンブラは命令nopを命令コード「0」
に、命令addを命令コード「1」に、命令subを命令コー
ド「2」に、命令moveを命令コード「3」に変換し、ま
た、第1引数から第3引数をその後に付加している。結
果として、命令語長16ビットの命令コードが作成され
る。
【0004】図4は、プログラムメモリ内の命令を読み
出す回路の構成例を示す回路図であり、この図におい
て、1はプログラムカウンタ、2はプログラムメモリで
ある。なお、この図においては、説明を簡略化するた
め、命令分岐の回路等の記載を省略している。このよう
な構成において、プログラムカウンタ1は最初にスター
トアドレスSAがプリセットされ、以後、クロックパル
スCKをアップカウントする。このプログラムカウンタ
1の出力がプログラムメモリ2のアドレス端子Adrへ供
給され、これにより、プログラムメモリ2内の命令コー
ドが順次読み出され、読み出された命令コードによって
ハードウエアが制御される。
出す回路の構成例を示す回路図であり、この図におい
て、1はプログラムカウンタ、2はプログラムメモリで
ある。なお、この図においては、説明を簡略化するた
め、命令分岐の回路等の記載を省略している。このよう
な構成において、プログラムカウンタ1は最初にスター
トアドレスSAがプリセットされ、以後、クロックパル
スCKをアップカウントする。このプログラムカウンタ
1の出力がプログラムメモリ2のアドレス端子Adrへ供
給され、これにより、プログラムメモリ2内の命令コー
ドが順次読み出され、読み出された命令コードによって
ハードウエアが制御される。
【0005】
【発明が解決しようとする課題】ところで、上述したプ
ログラムメモリ2に書き込まれるプログラムには、同じ
複数の命令の組合せがしばしば現れる。例えば、上述し
た命令addと命令nopの組合せが、プログラムによっては
何度も使用される。しかし、従来のプログラムメモリに
おいては、このような同じ組合せ命令がそのまま書き込
まれるようになっており、このため、メモリの容量にお
いて無駄が多い欠点があった。この発明は、このような
事情を考慮してなされたもので、その目的は、プログラ
ムメモリの容量を削減することができるプログラムメモ
リ削減方法およびプログラムメモリ読出回路を提供する
ことにある。
ログラムメモリ2に書き込まれるプログラムには、同じ
複数の命令の組合せがしばしば現れる。例えば、上述し
た命令addと命令nopの組合せが、プログラムによっては
何度も使用される。しかし、従来のプログラムメモリに
おいては、このような同じ組合せ命令がそのまま書き込
まれるようになっており、このため、メモリの容量にお
いて無駄が多い欠点があった。この発明は、このような
事情を考慮してなされたもので、その目的は、プログラ
ムメモリの容量を削減することができるプログラムメモ
リ削減方法およびプログラムメモリ読出回路を提供する
ことにある。
【0006】
【課題を解決するための手段】この発明は上述した課題
を解決すべくなされたもので、請求項1に記載の発明
は、予め決められている複数の命令を、1つの合成命令
に変換してプログラムメモリに記憶させることを特徴と
するプログラムメモリ削減方法である。
を解決すべくなされたもので、請求項1に記載の発明
は、予め決められている複数の命令を、1つの合成命令
に変換してプログラムメモリに記憶させることを特徴と
するプログラムメモリ削減方法である。
【0007】また、請求項2に記載の発明は、予め決め
られている複数の命令に対応する合成命令を含む複数の
命令が記憶されたプログラムメモリ内の各命令をクロッ
クパルスに従って順次読み出すプログラムメモリ読出回
路において、前記プログラムメモリから読み出された命
令が合成命令であるか否かを判断し、合成命令でなかっ
た場合はそのまま出力し、合成命令であった場合は合成
前の命令をクロックパルスのタイミングで順次出力する
命令翻訳回路を設けたことを特徴とするプログラムメモ
リ読出回路である。
られている複数の命令に対応する合成命令を含む複数の
命令が記憶されたプログラムメモリ内の各命令をクロッ
クパルスに従って順次読み出すプログラムメモリ読出回
路において、前記プログラムメモリから読み出された命
令が合成命令であるか否かを判断し、合成命令でなかっ
た場合はそのまま出力し、合成命令であった場合は合成
前の命令をクロックパルスのタイミングで順次出力する
命令翻訳回路を設けたことを特徴とするプログラムメモ
リ読出回路である。
【0008】また、請求項3に記載の発明は、予め決め
られている複数の命令に対応する合成命令を含む複数の
命令が記憶されたプログラムメモリ内の各命令をクロッ
クパルスに従って順次読み出すプログラムメモリ読出回
路において、クロックパルスをアップカウントし、その
カウント結果をプログラムメモリのアドレス端子へ出力
するプログラムカウンタと、前記プログラムメモリから
読み出された命令が合成命令であるか否かを判断し、合
成命令でなかった場合はそのまま出力し、合成命令であ
った場合は合成前の命令をクロックパルスのタイミング
で順次出力すると共に、前記プログラムカウンタのカウ
ントアップを一時停止させる信号を前記プログラムカウ
ンタへ出力する命令翻訳回路とを具備することを特徴と
するプログラムメモリ読出回路である。
られている複数の命令に対応する合成命令を含む複数の
命令が記憶されたプログラムメモリ内の各命令をクロッ
クパルスに従って順次読み出すプログラムメモリ読出回
路において、クロックパルスをアップカウントし、その
カウント結果をプログラムメモリのアドレス端子へ出力
するプログラムカウンタと、前記プログラムメモリから
読み出された命令が合成命令であるか否かを判断し、合
成命令でなかった場合はそのまま出力し、合成命令であ
った場合は合成前の命令をクロックパルスのタイミング
で順次出力すると共に、前記プログラムカウンタのカウ
ントアップを一時停止させる信号を前記プログラムカウ
ンタへ出力する命令翻訳回路とを具備することを特徴と
するプログラムメモリ読出回路である。
【0009】また、請求項4に記載の発明は、予め決め
られている複数の命令に対応する合成命令を含む複数の
命令が記憶されたプログラムメモリ内の各命令をクロッ
クパルスに従って順次読み出すプログラムメモリ読出回
路において、クロックパルスに基づいて入力端のデータ
を読み込み、前記プログラムメモリのアドレス端子へ出
力するフリップフロップ回路と、前記フリップフロップ
回路の出力に「1」を加算して前記フリップフロップ回
路の入力端へ出力する加算回路と、前記プログラムメモ
リから読み出された命令が合成命令であるか否かを判断
し、合成命令でなかった場合はそのまま出力し、合成命
令であった場合は合成前の命令をクロックパルスのタイ
ミングで順次出力すると共に、前記加算回路の加算動作
を一時停止させる信号を前記加算回路へ出力する命令翻
訳回路とを具備することを特徴とするプログラムメモリ
読出回路である。
られている複数の命令に対応する合成命令を含む複数の
命令が記憶されたプログラムメモリ内の各命令をクロッ
クパルスに従って順次読み出すプログラムメモリ読出回
路において、クロックパルスに基づいて入力端のデータ
を読み込み、前記プログラムメモリのアドレス端子へ出
力するフリップフロップ回路と、前記フリップフロップ
回路の出力に「1」を加算して前記フリップフロップ回
路の入力端へ出力する加算回路と、前記プログラムメモ
リから読み出された命令が合成命令であるか否かを判断
し、合成命令でなかった場合はそのまま出力し、合成命
令であった場合は合成前の命令をクロックパルスのタイ
ミングで順次出力すると共に、前記加算回路の加算動作
を一時停止させる信号を前記加算回路へ出力する命令翻
訳回路とを具備することを特徴とするプログラムメモリ
読出回路である。
【0010】
【発明の実施の形態】以下、図面を参照し、この発明の
実施の形態について説明する。図1はこの発明の第1の
実施の形態の構成を示すブロック図であり、この図にお
いて、11はプログラムカウンタ、12はプログラムメ
モリ、13は命令翻訳回路である。最初に、プログラム
メモリ12に書き込まれる命令コードについて説明す
る。この実施形態においては、プログラムメモリ12に
記憶される命令コードとして、従来の命令コードに加え
て次の合成命令コードが使用される。 E・・・addnop命令 F・・・subnop命令
実施の形態について説明する。図1はこの発明の第1の
実施の形態の構成を示すブロック図であり、この図にお
いて、11はプログラムカウンタ、12はプログラムメ
モリ、13は命令翻訳回路である。最初に、プログラム
メモリ12に書き込まれる命令コードについて説明す
る。この実施形態においては、プログラムメモリ12に
記憶される命令コードとして、従来の命令コードに加え
て次の合成命令コードが使用される。 E・・・addnop命令 F・・・subnop命令
【0011】また、アセンブラは、ニーモニックコード
を命令コードに変換する際に次の処理を行う。 (1)add命令の次の命令がnop命令であった場合に、add命
令をaddnop命令コードEに変換し、nop命令の変換は行わ
ない。 (2)sub命令の次の命令がnop命令であった場合に、sub命
令をsubnop命令コードFに変換し、nop命令の変換は行わ
ない。
を命令コードに変換する際に次の処理を行う。 (1)add命令の次の命令がnop命令であった場合に、add命
令をaddnop命令コードEに変換し、nop命令の変換は行わ
ない。 (2)sub命令の次の命令がnop命令であった場合に、sub命
令をsubnop命令コードFに変換し、nop命令の変換は行わ
ない。
【0012】例えば、前述した命令列の場合、アセンブ
ラによって次のように変換され、この変換後の命令コー
ドがプログラムメモリ12に書き込まれる。 すなわち、まず、100行目の命令コードがadd命令であ
り、101行目の命令コードがnop命令であることから、10
0行目のadd命令をaddnop命令コードEに変化し(符号(A)
参照)、101行目のnop命令の変換は行わない。次に、10
2行目の命令コードがsub命令であり、103行目の命令コ
ードがnop命令であることから、102行目のsub命令をsub
nop命令コードFに変化し(符号(B)参照)、103行目のno
p命令の変換は行わない。104行目、105行目の命令コー
ドはいずれも次の命令コードがnop命令でないので、従
来と同様の変換となる(符号(C)、(D)参照)。
ラによって次のように変換され、この変換後の命令コー
ドがプログラムメモリ12に書き込まれる。 すなわち、まず、100行目の命令コードがadd命令であ
り、101行目の命令コードがnop命令であることから、10
0行目のadd命令をaddnop命令コードEに変化し(符号(A)
参照)、101行目のnop命令の変換は行わない。次に、10
2行目の命令コードがsub命令であり、103行目の命令コ
ードがnop命令であることから、102行目のsub命令をsub
nop命令コードFに変化し(符号(B)参照)、103行目のno
p命令の変換は行わない。104行目、105行目の命令コー
ドはいずれも次の命令コードがnop命令でないので、従
来と同様の変換となる(符号(C)、(D)参照)。
【0013】次に、図1の回路の動作を説明する。プロ
グラムカウンタ11は、従来の回路と同様に、最初にス
タートアドレスSAがプリセットされ、以後、クロック
パルスCKをアップカウントする。このプログラムカウ
ンタ1の出力がプログラムメモリ12のアドレス端子Ad
rへ供給され、これにより、プログラムメモリ12内の
命令コードが順次読み出され、命令翻訳回路13へ出力
される。命令翻訳回路13は、上述した合成命令が出力
された時以外は、プログラムメモリ13から出力される
命令コードをそのまま出力する。この出力された命令コ
ードによってハードウエア制御が行われる。一方、上述
した合成命令がプログラムメモリ12から出力された時
は次の処理を行う。
グラムカウンタ11は、従来の回路と同様に、最初にス
タートアドレスSAがプリセットされ、以後、クロック
パルスCKをアップカウントする。このプログラムカウ
ンタ1の出力がプログラムメモリ12のアドレス端子Ad
rへ供給され、これにより、プログラムメモリ12内の
命令コードが順次読み出され、命令翻訳回路13へ出力
される。命令翻訳回路13は、上述した合成命令が出力
された時以外は、プログラムメモリ13から出力される
命令コードをそのまま出力する。この出力された命令コ
ードによってハードウエア制御が行われる。一方、上述
した合成命令がプログラムメモリ12から出力された時
は次の処理を行う。
【0014】addnop命令が出力された時は、add命令を
出力し、次いでnop命令を出力する。すなわち、プログ
ラムメモリ12から、0xEABCという命令コードが出力さ
れた時、 なる変換を行って変換後の命令コードをクロックパルス
のタイミングで順次出力する。同様に、subnop命令が出
力された時は、sub命令を出力し、次いでnop命令を出力
する。
出力し、次いでnop命令を出力する。すなわち、プログ
ラムメモリ12から、0xEABCという命令コードが出力さ
れた時、 なる変換を行って変換後の命令コードをクロックパルス
のタイミングで順次出力する。同様に、subnop命令が出
力された時は、sub命令を出力し、次いでnop命令を出力
する。
【0015】またこの場合、命令翻訳回路13は、nop
命令コードを出力するタイミングにおいて、1クロック
期間の長さのパルス信号Sをプログラムカウンタ11へ
出力する。プログラムカウンタ11はこのパルス信号S
を受けると、クロックパルスCKのカウントアップを停
止する。これにより、nop命令コードが命令翻訳回路1
3から出力されている間、プログラムカウンタ11のカ
ウントアップが行われず、したがって、プログラムメモ
リ12から次の命令コードが読み出されることはない。
このように、上記実施形態は、特定の2つの命令に代え
て1つの合成命令がプログラムメモリ12記憶される。
これにより、プログラムメモリ12の容量を削減するこ
とができる。
命令コードを出力するタイミングにおいて、1クロック
期間の長さのパルス信号Sをプログラムカウンタ11へ
出力する。プログラムカウンタ11はこのパルス信号S
を受けると、クロックパルスCKのカウントアップを停
止する。これにより、nop命令コードが命令翻訳回路1
3から出力されている間、プログラムカウンタ11のカ
ウントアップが行われず、したがって、プログラムメモ
リ12から次の命令コードが読み出されることはない。
このように、上記実施形態は、特定の2つの命令に代え
て1つの合成命令がプログラムメモリ12記憶される。
これにより、プログラムメモリ12の容量を削減するこ
とができる。
【0016】次に、この発明の第2の実施形態について
説明する。図2はこの発明の第2の実施形態の構成を示
すブロック図であり、この図に示す実施形態も上記第1
の実施形態と同様に、合成命令を使用したプログラムが
プログラムメモリ23に記憶されている。
説明する。図2はこの発明の第2の実施形態の構成を示
すブロック図であり、この図に示す実施形態も上記第1
の実施形態と同様に、合成命令を使用したプログラムが
プログラムメモリ23に記憶されている。
【0017】この図において、21は加算回路であり、
入力データAD1に「1」を加算して、データAD2と
して出力する。また、この加算回路は、その制御端子へ
印加される信号S1が”1”の時、+1加算を行わない
で、入力データAD1をそのまま出力する。22は複数
ビットのD(ディレイ)−フリップフロップであり、ク
ロックパルスCKのタイミングにおいて加算回路21の
出力を読み込み、データAD1として出力する。このD
−フリップフロップ22の出力データAD1は上記加算
回路21へ出力されると共に、プログラムメモリ23の
アドレス端子Adrへ印加される。
入力データAD1に「1」を加算して、データAD2と
して出力する。また、この加算回路は、その制御端子へ
印加される信号S1が”1”の時、+1加算を行わない
で、入力データAD1をそのまま出力する。22は複数
ビットのD(ディレイ)−フリップフロップであり、ク
ロックパルスCKのタイミングにおいて加算回路21の
出力を読み込み、データAD1として出力する。このD
−フリップフロップ22の出力データAD1は上記加算
回路21へ出力されると共に、プログラムメモリ23の
アドレス端子Adrへ印加される。
【0018】プログラムメモリ23はアドレス端子Adr
へ印加されるデータAD1に従って内部の命令コードを
読み出し、命令コードCD1として命令翻訳回路24へ
出力する。命令翻訳回路24は、上述した命令翻訳回路
13と同様に、予め決められた命令コードがプログラム
メモリ23から出力された時、予め内部に設定されてい
る他の複数の命令コードをクロックパルスのタイミング
で順次出力する。またその場合において、プログラムメ
モリ23の読み出しが進まないように、加算回路21の
加算を停止させる信号S1をインバータ25を介して加
算回路21へ出力する。
へ印加されるデータAD1に従って内部の命令コードを
読み出し、命令コードCD1として命令翻訳回路24へ
出力する。命令翻訳回路24は、上述した命令翻訳回路
13と同様に、予め決められた命令コードがプログラム
メモリ23から出力された時、予め内部に設定されてい
る他の複数の命令コードをクロックパルスのタイミング
で順次出力する。またその場合において、プログラムメ
モリ23の読み出しが進まないように、加算回路21の
加算を停止させる信号S1をインバータ25を介して加
算回路21へ出力する。
【0019】次に、上述した実施形態の動作を図3に示
すタイミングチャートを参照して説明する。いま、ニー
モニックコードおよびアセンブラによって変換されプロ
グラムメモリ23に記憶された命令コードが次の通りで
あったとする。 ニーモニックコード メモリ23内の命令コード 98行目 Z命令 98行目 Z命令 99行目 A命令 99行目 AB命令 100行目 B命令 100行目 C命令 101行目 C命令 101行目 B命令 102行目 B命令 102行目 D命令 103行目 D命令 103行目 A命令 104行目 A命令 104行目 C命令 105行目 C命令 ここで、AB命令は合成命令であり、ニーモニックコー
ドにおいてA命令とB命令が続いた場合に、それら2命
令がアセンブラによってAB命令という1つの命令に変
換され、プログラムメモリ23に記憶される。
すタイミングチャートを参照して説明する。いま、ニー
モニックコードおよびアセンブラによって変換されプロ
グラムメモリ23に記憶された命令コードが次の通りで
あったとする。 ニーモニックコード メモリ23内の命令コード 98行目 Z命令 98行目 Z命令 99行目 A命令 99行目 AB命令 100行目 B命令 100行目 C命令 101行目 C命令 101行目 B命令 102行目 B命令 102行目 D命令 103行目 D命令 103行目 A命令 104行目 A命令 104行目 C命令 105行目 C命令 ここで、AB命令は合成命令であり、ニーモニックコー
ドにおいてA命令とB命令が続いた場合に、それら2命
令がアセンブラによってAB命令という1つの命令に変
換され、プログラムメモリ23に記憶される。
【0020】D−フリップフロップ22の出力データA
D1が、98行目の命令のアドレスを指示する「98」
となると(図3(イ)参照)、プログラムメモリ23か
ら上記Z命令が読み出され、命令コードCD1として命
令翻訳回路24へ出力される(図3(ハ))。命令翻訳
回路24は、このZ命令が合成命令でないことからその
まま命令コードCD2として出力する(図3(ニ))。
また、D−フリップフロップ22からデータAD1とし
て「98」が出力されると、加算回路21の出力データ
AD2が「99」となる(図3(ロ))。
D1が、98行目の命令のアドレスを指示する「98」
となると(図3(イ)参照)、プログラムメモリ23か
ら上記Z命令が読み出され、命令コードCD1として命
令翻訳回路24へ出力される(図3(ハ))。命令翻訳
回路24は、このZ命令が合成命令でないことからその
まま命令コードCD2として出力する(図3(ニ))。
また、D−フリップフロップ22からデータAD1とし
て「98」が出力されると、加算回路21の出力データ
AD2が「99」となる(図3(ロ))。
【0021】次に、クロックパルスCKが立ち上がる
と、D−フリップフロップ23が加算回路21の出力デ
ータAD2「99」を読み込み、データAD1としてプ
ログラムメモリ23へ出力する。これにより、プログラ
ムメモリ23から99行目のAB命令が読み出され、命
令翻訳回路24へ出力される。命令翻訳回路24は、読
み出された命令が合成命令のAB命令であることから、
まず、A命令を命令コードCD2として出力し(図3
(ニ))、次のクロックパルスのタイミングにおいてB
命令を出力する。
と、D−フリップフロップ23が加算回路21の出力デ
ータAD2「99」を読み込み、データAD1としてプ
ログラムメモリ23へ出力する。これにより、プログラ
ムメモリ23から99行目のAB命令が読み出され、命
令翻訳回路24へ出力される。命令翻訳回路24は、読
み出された命令が合成命令のAB命令であることから、
まず、A命令を命令コードCD2として出力し(図3
(ニ))、次のクロックパルスのタイミングにおいてB
命令を出力する。
【0022】また、命令翻訳回路24は、合成命令(A
B命令)を受けた時点で1クロック期間、インバータ2
5を介して信号S1を出力する(図3(ホ)参照)。こ
の信号S1が出力されると、加算回路21が+1加算を
停止し、入力されたデータAD1をそのままデータAD
2として出力する。この場合、データAD1「99」を
そのままデータAD2として出力する(図3の*参
照)。これにより、次のクロックパルスの立ち上がりに
おいてD−フリップフロップ22に再びデータ「99」
が読み込まれる。すなわち、アドレスの進行が1回停止
される。そして、このアドレスの進行が停止されている
時、命令翻訳回路24から、2番目のB命令が出力され
ることになる。
B命令)を受けた時点で1クロック期間、インバータ2
5を介して信号S1を出力する(図3(ホ)参照)。こ
の信号S1が出力されると、加算回路21が+1加算を
停止し、入力されたデータAD1をそのままデータAD
2として出力する。この場合、データAD1「99」を
そのままデータAD2として出力する(図3の*参
照)。これにより、次のクロックパルスの立ち上がりに
おいてD−フリップフロップ22に再びデータ「99」
が読み込まれる。すなわち、アドレスの進行が1回停止
される。そして、このアドレスの進行が停止されている
時、命令翻訳回路24から、2番目のB命令が出力され
ることになる。
【0023】D−フリップフロップ22からデータAD
1として「99」が出力されると、加算回路21からデ
ータAD2「100」が出力される。そして、次のクロ
ックパルスの立ち上がりにおいて、このデータ「10
0」がD−フリップフロップ22に読み込まれ、プログ
ラムメモリ23へ出力される。これにより、プログラム
メモリ23から100行目のC命令が読み出され、命令
コードCD1として出力される。命令翻訳回路24はこ
のC命令が合成命令でないことから、そのまま出力す
る。以下、同様の処理が繰り返される。
1として「99」が出力されると、加算回路21からデ
ータAD2「100」が出力される。そして、次のクロ
ックパルスの立ち上がりにおいて、このデータ「10
0」がD−フリップフロップ22に読み込まれ、プログ
ラムメモリ23へ出力される。これにより、プログラム
メモリ23から100行目のC命令が読み出され、命令
コードCD1として出力される。命令翻訳回路24はこ
のC命令が合成命令でないことから、そのまま出力す
る。以下、同様の処理が繰り返される。
【0024】上述した第1、第2の実施形態によれば、
合成命令の命令コードを従来の命令コードに重複しない
新しいものに定義すれば、ハードウエア制御部分に変更
を加えることなくプログラムメモリの容量を削減するこ
とができる。なお、合成命令用のアセンブラがなく、合
成命令を使用しない場合でも、図1、図2の回路は、命
令翻訳回路13,24が単にスルーとなるだけであり、
そのまま変更なしで使用することができる。また、合成
命令に対応する命令の組合せは製造段階において決めら
れる。この場合、ハードウエアの制約、出現することの
多い命令の組合せ、命令の使用頻度、引数を持たないか
否か、命令コードの空き具合等を考慮して決められる。
合成命令の命令コードを従来の命令コードに重複しない
新しいものに定義すれば、ハードウエア制御部分に変更
を加えることなくプログラムメモリの容量を削減するこ
とができる。なお、合成命令用のアセンブラがなく、合
成命令を使用しない場合でも、図1、図2の回路は、命
令翻訳回路13,24が単にスルーとなるだけであり、
そのまま変更なしで使用することができる。また、合成
命令に対応する命令の組合せは製造段階において決めら
れる。この場合、ハードウエアの制約、出現することの
多い命令の組合せ、命令の使用頻度、引数を持たないか
否か、命令コードの空き具合等を考慮して決められる。
【0025】
【発明の効果】以上説明したように、この発明によれ
ば、予め決められている複数の命令を、1つの合成命令
に変換してプログラムメモリに記憶させるので、プログ
ラムメモリの容量を削減することができる効果が得られ
る。
ば、予め決められている複数の命令を、1つの合成命令
に変換してプログラムメモリに記憶させるので、プログ
ラムメモリの容量を削減することができる効果が得られ
る。
【図1】 この発明の第1の実施形態の構成を示すブロ
ック図である。
ック図である。
【図2】 この発明の第2の実施形態の構成を示すブロ
ック図である。
ック図である。
【図3】 同実施形態の動作を説明するためのタイミン
グチャートである。
グチャートである。
【図4】 従来のプログラムメモリ読出回路の構成例を
示すブロック図である。
示すブロック図である。
11…プログラムカウンタ、12、23…プログラムメ
モリ、13,24…命令翻訳回路、21…加算回路、2
2…D−フリップフロップ。
モリ、13,24…命令翻訳回路、21…加算回路、2
2…D−フリップフロップ。
Claims (4)
- 【請求項1】 予め決められている複数の命令を、1つ
の合成命令に変換してプログラムメモリに記憶させるこ
とを特徴とするプログラムメモリ削減方法。 - 【請求項2】 予め決められている複数の命令に対応す
る合成命令を含む複数の命令が記憶されたプログラムメ
モリ内の各命令をクロックパルスに従って順次読み出す
プログラムメモリ読出回路において、 前記プログラムメモリから読み出された命令が合成命令
であるか否かを判断し、合成命令でなかった場合はその
まま出力し、合成命令であった場合は合成前の命令をク
ロックパルスのタイミングで順次出力する命令翻訳回路
を設けたことを特徴とするプログラムメモリ読出回路。 - 【請求項3】 予め決められている複数の命令に対応す
る合成命令を含む複数の命令が記憶されたプログラムメ
モリ内の各命令をクロックパルスに従って順次読み出す
プログラムメモリ読出回路において、 クロックパルスをアップカウントし、そのカウント結果
をプログラムメモリのアドレス端子へ出力するプログラ
ムカウンタと、 前記プログラムメモリから読み出された命令が合成命令
であるか否かを判断し、合成命令でなかった場合はその
まま出力し、合成命令であった場合は合成前の命令をク
ロックパルスのタイミングで順次出力すると共に、前記
プログラムカウンタのカウントアップを一時停止させる
信号を前記プログラムカウンタへ出力する命令翻訳回路
と、 を具備することを特徴とするプログラムメモリ読出回
路。 - 【請求項4】 予め決められている複数の命令に対応す
る合成命令を含む複数の命令が記憶されたプログラムメ
モリ内の各命令をクロックパルスに従って順次読み出す
プログラムメモリ読出回路において、 クロックパルスに基づいて入力端のデータを読み込み、
前記プログラムメモリのアドレス端子へ出力するフリッ
プフロップ回路と、 前記フリップフロップ回路の出力に「1」を加算して前
記フリップフロップ回路の入力端へ出力する加算回路
と、 前記プログラムメモリから読み出された命令が合成命令
であるか否かを判断し、合成命令でなかった場合はその
まま出力し、合成命令であった場合は合成前の命令をク
ロックパルスのタイミングで順次出力すると共に、前記
加算回路の加算動作を一時停止させる信号を前記加算回
路へ出力する命令翻訳回路と、 を具備することを特徴とするプログラムメモリ読出回
路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001295325A JP2003108367A (ja) | 2001-09-27 | 2001-09-27 | プログラムメモリ削減方法およびプログラムメモリ読出回路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001295325A JP2003108367A (ja) | 2001-09-27 | 2001-09-27 | プログラムメモリ削減方法およびプログラムメモリ読出回路 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2003108367A true JP2003108367A (ja) | 2003-04-11 |
Family
ID=19116783
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001295325A Pending JP2003108367A (ja) | 2001-09-27 | 2001-09-27 | プログラムメモリ削減方法およびプログラムメモリ読出回路 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2003108367A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011243134A (ja) * | 2010-05-21 | 2011-12-01 | Mitsubishi Electric Corp | プログラム圧縮装置及びプログラム実行装置及びプログラム |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001142696A (ja) * | 1999-11-15 | 2001-05-25 | Matsushita Electric Ind Co Ltd | マイクロプロセッサにおける命令供給装置および命令供給方法 |
JP2001222426A (ja) * | 2000-02-08 | 2001-08-17 | Toshiba Corp | 命令コード変換装置、情報処理システム及び命令コード作成方法 |
-
2001
- 2001-09-27 JP JP2001295325A patent/JP2003108367A/ja active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001142696A (ja) * | 1999-11-15 | 2001-05-25 | Matsushita Electric Ind Co Ltd | マイクロプロセッサにおける命令供給装置および命令供給方法 |
JP2001222426A (ja) * | 2000-02-08 | 2001-08-17 | Toshiba Corp | 命令コード変換装置、情報処理システム及び命令コード作成方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011243134A (ja) * | 2010-05-21 | 2011-12-01 | Mitsubishi Electric Corp | プログラム圧縮装置及びプログラム実行装置及びプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH06348492A (ja) | データパイプライン装置及びデータエンコーディング方法 | |
JP2004248279A (ja) | 異なるタイプのインタフェースからの入力信号、又は異なるタイプのインタフェースへの出力信号を共通フォーマットの中央演算処理でプリプロセスするための方法及び装置 | |
JPH11185477A (ja) | タイミング信号生成回路 | |
JPH05197545A (ja) | マイクロコンピュータ | |
JP2548428B2 (ja) | タイミング発生装置 | |
JP2003108367A (ja) | プログラムメモリ削減方法およびプログラムメモリ読出回路 | |
KR100396189B1 (ko) | 디지털신호 처리장치 및 그 제어방법 | |
JP3202654B2 (ja) | マイクロプロセッサシステム | |
KR100308134B1 (ko) | 디지탈 오디오 디코더 및 그에 따른 디코딩 방법 | |
JP2004302827A (ja) | マイクロコントローラ | |
US20070157186A1 (en) | High-level programming language to hardware component graph translation method | |
JPS6134168B2 (ja) | ||
JP2000231494A (ja) | ソフトウェア実行システム及びソフトウェア実行方法 | |
JP2684820B2 (ja) | サラウンド回路 | |
JPS6017131B2 (ja) | メモリ制御回路 | |
JP2003015866A (ja) | プロセッサ | |
JP2002099348A (ja) | クロック制御方法およびクロック制御装置 | |
JP3903872B2 (ja) | 多重アクセス制御回路 | |
JPH08161222A (ja) | プロセッサ及びそのプログラム作成方法 | |
JPS6049437A (ja) | マイクロプログラム処理装置 | |
JP2005044379A (ja) | 半導体集積回路装置 | |
JPH0281132A (ja) | プログラム復号回路 | |
JP2008003867A (ja) | マイクロコンピュータ | |
JP2002116951A (ja) | アドレス生成回路 | |
JP2001306318A (ja) | マイクロコンピュータ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080722 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110127 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110301 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110712 |