JPH10326187A - デジタルシグナルプロセッサおよび集積回路 - Google Patents

デジタルシグナルプロセッサおよび集積回路

Info

Publication number
JPH10326187A
JPH10326187A JP9133472A JP13347297A JPH10326187A JP H10326187 A JPH10326187 A JP H10326187A JP 9133472 A JP9133472 A JP 9133472A JP 13347297 A JP13347297 A JP 13347297A JP H10326187 A JPH10326187 A JP H10326187A
Authority
JP
Japan
Prior art keywords
code
instruction
line
rom
output
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
JP9133472A
Other languages
English (en)
Inventor
Hiroshi Ii
浩志 井伊
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.)
Sharp Corp
Original Assignee
Sharp 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 Sharp Corp filed Critical Sharp Corp
Priority to JP9133472A priority Critical patent/JPH10326187A/ja
Publication of JPH10326187A publication Critical patent/JPH10326187A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】 【課題】 製作上の困難性を伴うインストラクションR
OMの動作速度の向上に拘泥することなく、デジタルシ
グナルプロセッサ自体としての全体的な動作速度を実質
的に向上させる。 【解決手段】 実行回数削減の対象であるソースプログ
ラムを構成するインストラクションコードの、例えば
“ADD”=“100”と“SBA”=“101”があ
るときに、“ADD”=“100”のビット反転によ
り、“SBS”=“011”を作ることにより、実行回
数を削減する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、インストラクショ
ン(命令)コードで内部の制御を行うデジタルシグナル
プロセッサ(DSP)、あるいは、同様にインストラク
ションコードで内部の制御を行うマイクロコンピュータ
を含む集積回路(特にLSI)に関するものである。
【0002】
【従来の技術】インストラクションコードで内部の制御
を行う従来のデジタルシグナルプロセッサにおいては、
1つのインストラクションコードで1つの動作を行うよ
うに構成されていた。なお、従来の技術に係るデジタル
シグナルプロセッサの詳細については、説明の都合上、
「発明の実施の形態」の(実施の形態1)において説明
することとする。
【0003】
【発明が解決しようとする課題】デジタルシグナルプロ
セッサの動作速度を上げようとすると、内蔵されている
インストラクションROM自体の動作速度を上げる必要
がある。基本的にLSIの動作速度を上げるためには、
電圧を上げて電流を多く流すようにすることが一般的で
あり、そのためには電流の通路であるパターンの抵抗値
を下げる必要がある。これを簡単に実現する対策として
パターンを広くすることが通常であり、そうするとイン
ストラクションROMを構成するLSIチップの面積が
必然的に大きくなってしまう。そしてこれが消費電力の
増加につながる。しかも、インストラクションROMの
動作速度はLSI内部のゲートに比べて数十分の一の動
作速度しかなく、動作速度を上げることは容易ではな
い。
【0004】本発明は、このような事情に鑑みて創案さ
れたものであって、製作上の困難性を伴うインストラク
ションROMの動作速度の向上に拘泥することなく、デ
ジタルシグナルプロセッサあるいは集積回路自体として
の全体的な動作速度を実質的に向上させることを目的と
している。
【0005】
【課題を解決するための手段】本発明に係るデジタルシ
グナルプロセッサは、インストラクションROMから出
力されるインストラクションコードの一部または全部を
ビット反転する等なんらかの方式で加工することによ
り、1つのインストラクションコードから複数のコード
を作り、これらのインストラクションコードにより内部
の複数の回路を制御するように構成したもので、インス
トラクションROMの動作速度を上げるといった困難性
に拘泥することなく、デジタルシグナルプロセッサ自体
としての全体的な動作速度を実質的に向上させることが
できる。特に、N進カウンタを用いて制御する場合に
は、見かけ上の速度をN倍にすることができる。
【0006】また、ビット反転するか否かを決定する制
御コードを持たせたり、N進カウントのカウント値の有
効性を決定する制御コードを持たせることにより、必要
な部分に対してのみ前記の加工を行うようにし、動作速
度を上げることに伴う必要以上の消費電力の増加を防ぐ
ことができる。
【0007】
【発明の実施の形態】以下、本発明に係るデジタルシグ
ナルプロセッサの具体的な実施の形態について、図面に
基づいて詳細に説明する。
【0008】〔デジタルシグナルプロセッサの一般的構
成〕図1はデジタルシグナルプロセッサの主要部の構成
を示すブロック図である。図1において、1はインスト
ラクションROM2のアドレスを指定するためのROM
アドレスカウンタ、2はインストラクション(命令)コ
ードが格納されているインストラクションROM(内蔵
ROM)、3はインストラクションROM2から出力さ
れたインストラクションコードを、本発明の方式に従っ
て変換するROMデータ変換器、4は符号5から16ま
でのブロックに対してROMデータ変換器3によるコン
トロール信号を出力するシステムコントローラ、5はデ
ータの一時待機用のテンポラリーレジスタ、6は計算等
に使用する定数を格納しているテーブルROM(内蔵R
OM)、7はデータ格納用のRAM(内蔵RAM)、8
は乗算器(マルチプライヤ)、9は加減算・論理演算な
どを行うALU(論理演算ユニット)、10(ACC
0),11(ACC1)はALU9からの出力を待避す
る第1および第2の待避レジスタ(アキュムレータ)、
12は計算結果などのデータが転送されるデータバス、
13は条件ジャンプ用の第1のカウントレジスタ(0)
で、値が設定されると、判定条件(JC0またはJNC
0)が実行されるたびに1ずつカウントダウンされる。
14は同様の条件ジャンプ用の第2のカウントレジスタ
(1)で、値が設定されると、判定条件(JC1または
JNC1)が実行されるたびに1ずつカウントダウンさ
れる。15はRAM7に対するアドレス指定用のRAM
アドレスカウンタで、インクリメントビット“Ra co”
に“1”が設定されると1ずつカウントアップし、カウ
ンタの値をRAM7のアドレスとして出力する。16は
テーブルROM6に対するアドレス指定用のROMアド
レスカウンタで、インクリメントビット“Ro co”に
“1”が設定されると1ずつカウントアップし、カウン
タの値をテーブルROM6のアドレスとして出力する。
【0009】(従来技術の説明)図2の(a)はインス
トラクションROM2に格納されているインストラクシ
ョンコードをアセンブラに基づいて呼び出すための変換
コードの構造を示し、図2の(b)は変換コードの各構
成要素の具体的内容を示す。この図2に示すものは従来
の技術に係るものである。インストラクションコード
は、0〜14の15ビットの構成をとる。
【0010】図2(a)の14ビット目の“乗算”は図
1の乗算器8に対するもので、図2(b)に示すよう
に、 未動作:動作しない 動作:入力された値どうしの乗算を行う となっている。
【0011】図2(a)の11〜13ビット目の3ビッ
トからなる“Control”はデジタルシグナルプロセッサ
全体の制御を行うもので、図2(b)に示すように、 NOP:何も行わない JMP:“Address”の欄に指定された値のアドレスに
インストラクションROM2のアドレスを変更する CALL:“Address”の欄に指定された値のアドレス
にインストラクションROM2のアドレスを変更する RTN:CALLが実行される前のアドレスの次のアド
レスにインストラクションROM2のアドレスを変更す
る MVI:“Immediate”の欄に指定された値を“DBU
S dst”に示された回路にデータバス12を通して転送
する MOV:“DBUS src”に示された回路より“DBU
S dst”に示された回路にデータバス12を通して値を
転送する ALU:“Alu OP”に示された動作を行う となっている。
【0012】図2(a)で“JMP Condition”のと
き、0〜7の8ビットは“Address”を示し、“DBU
S dst”のとき、0〜7の8ビットは“Immediate”
(即値)を示す。
【0013】図2(a)の8〜10ビット目の3ビット
からなる“JMP Condition”は、図2(b)に示す
ように次のような処理を行う。
【0014】C0:第1のカウントレジスタ(0)13
のカウント値が“00h”(「h」はヘキサデシマル
(16進数)になると“Address”の欄に指定された値
のアドレスにインストラクションROM2のアドレスを
変更する NC0:第1のカウントレジスタ(0)13のカウント
値が“00h”でなければ、“Address”の欄に指定さ
れた値のアドレスにインストラクションROM2のアド
レスを変更する C1:第2のカウントレジスタ(1)14のカウント値
が“00h”になると“Address”の欄に指定された値
のアドレスにインストラクションROM2のアドレスを
変更する NC1:第2のカウントレジスタ14(1)のカウント
値が“00h”でなければ、“Address”の欄に指定さ
れた値のアドレスにインストラクションROM2のアド
レスを変更する S:ALU9の計算結果の値のサインフラグが“1”に
なると、“Address”の欄に指定された値のアドレスに
インストラクションROM2のアドレスを変更する NS:ALU9の計算結果の値のサインフラグが“1”
でなければ、“Address”の欄に指定された値のアドレ
スにインストラクションROM2のアドレスを変更する Z:ALU9の計算結果の値が“0”になると、“Add
ress”の欄に指定された値のアドレスにインストラクシ
ョンROM2のアドレスを変更する NZ:ALU9の計算結果の値が“0”でなければ、
“Address”の欄に指定された値のアドレスにインスト
ラクションROM2のアドレスを変更する となっている。
【0015】図2(a)の8〜10ビット目の3ビット
からなる“DBUS dst”は図1のデータバス12の出
力先を示し、図2(b)に示すように、 NIL:行き先なし RAM:RAM7への出力 ALU:Alu Binへの出力 CNT0:第1のカウントレジスタ(0)13への出力 CNT1:第2のカウントレジスタ(1)14への出力 TREG:テンポラリーレジスタ5への出力 RAMA:RAMアドレスカウンタ15への出力 ROMA:ROMアドレスカウンタ16への出力 となっている。
【0016】図2(a)の2〜4ビット目の3ビットか
らなる“DBUS src”は図1のデータバス12の出力
元を示し、図2(b)に示すように、 NIL:出力元なし RAM:RAM7からの出力 ROM:テーブルROM6からの出力 ACC0:第1の待避レジスタ(ACC0)10からの
出力 ACC1:第2の待避レジスタ(ACC1)11からの
出力 TREG:テンポラリーレジスタ5からの出力 となっている。
【0017】図2(a)の1ビット目の“RAMA cou
nt”(“Ra co”)は図1のRAMアドレスカウンタ1
5に対するもので、図2(b)に示すように、 NOP:カウントアップしない UP:+1カウントアップする となっている。
【0018】図2(a)の0ビット目の“ROMA cou
nt”(“Ro co”)は図1のROMアドレスカウンタ1
6に対するもので、図2(b)に示すように、 NOP:カウントアップしない UP:+1カウントアップする となっている。
【0019】図2(a)の8〜10ビット目の3ビット
からなる“Alu OP”は図1のALU9に対するコー
ドであり、図2(b)に示すように次のように定められ
ている。
【0020】NOP:何も実行しない EOR:Alu AinおよびAlu Binで指定された入力信
号の排他的論理和を出力 OR:Alu AinおよびAlu Binで指定された入力信号
の論理和を出力 AND:Alu AinおよびAlu Binで指定された入力信
号の論理積を出力 ADD:Alu AinおよびAlu Binで指定された入力信
号の加算を出力 SBA:Alu AinおよびAlu Binで指定された入力信
号について、Ain−Binを出力 SBB:Alu AinおよびAlu Binで指定された入力信
号について、Bin−Ainを出力 CLR:入力に左右されずに、ALL0(オールゼロ)
を出力 図2(a)の6〜7ビット目の2ビットからなる“Alu
out”はALU9からの出力先を示し、図2(b)に示
すように、 ACC0:第1の待避レジスタ(ACC0)10への出
力 ACC1:第2の待避レジスタ(ACC1)11への出
力 となっている。
【0021】図2(a)の4〜5ビット目の2ビットか
らなる“Alu Ain”は、ALU9のAinに対する入力
元を示し、図2(b)に示すように、 ACC0:第1の待避レジスタ(ACC0)10からの
入力 P:乗算器8からの入力 となっている。
【0022】図2(a)の2〜3ビット目の2ビットか
らなる“Alu Bin”はALU9のBinに対する入力元
を示し、 ACC1:第2の待避レジスタ(ACC1)11からの
入力 DBUS:データバス12からの入力 となっている。
【0023】インストラクションコードは、図3に示さ
れるアセンブラを図2に示される変換コードによって変
換されたコードである。以下、図3のアセンブラをもと
に説明する。図3はアセンブラ言語で表記されたソース
プログラムであり、これの処理内容は、RAM7の0番
地のデータにテーブルROM6の0番地のデータを乗算
し、その結果と第2の待避レジスタ(ACC1)11の
内容とを加算し、次に、RAM7の0番地のデータにテ
ーブルROM6の1番地のデータを乗算した結果を第2
の待避レジスタ(ACC1)11から減算し、このよう
な処理をテーブルROM6のアドレスが15番地になる
まで行う。さらに以上の処理をRAM7のアドレスが1
5番地になるまで繰り返し実行していくものである。
【0024】図3に記載してある“STT:”、“A
A:”、“END:”はコメントであり、通常はアセン
ブルするときのアドレス(ここでは行番号)に対応して
いる。図3の場合には、“STT:”が1行目を示し、
“AA:”が6行目を示し、“END:”が13行目を
示している。
【0025】ここで、説明の準備として、図3の1行目
について説明しておく。図3の1行目は、STT:CL
R(A0)となっており、この場合、図2より“CL
R”のコードを探し、“Alu OP”の欄より“CL
R”のコードが“111”であることが分かり、このコ
ードが“Alu OP”の欄にあったことから、ALU9
のコードであることが分かり、このことから“Contro
l”は“ALU”の“110”となる。次に、“A0”
を探すと、“A0”は“ACC0”の短縮形で、“CL
R”はALU9の出力に関するコードであるので、“A
lu out”の欄より“ACC0”のコードは“00”であ
ることが分かる。また、この場合は、他のコードの表記
がないので、この場合のインストラクションコードは、
図4に示すようになる。
【0026】従来の方式により、図3のプログラムを図
2の変換コードに従って変換した場合のインストラクシ
ョンコードを図5に示す。番号は図3の番号に対応して
いる。図3のアセンブラコードと図5のインストラクシ
ョンコードとを対比させた状態のものを図6に示す。
【0027】以下、従来の方式による図3のプログラム
の処理を順を追って説明する。
【0028】まず、インストラクションROM2より上
記アセンブラコードの1行目に対応したインストラクシ
ョンコードが出力される。“Control”のALU命令
(“110”)によりALU9が指定され、“Alu O
P”のCLR命令(“111”)で“Alu out”は“0
0”にセットされ、“Alu Ain”も“00”にセット
され、“Alu Bin”も“00”にセットされ、“RA
MA count”(“Raco”)は“0”にセットされ、
“ROMA count”(“Ro co”)も“0”にセットさ
れる。これは、結果として、前述したようにALU9に
より第1の待避レジスタ(ACC0)10を“00”に
クリアするものである。
【0029】次に、2行目が実行され、“Control”の
MVI命令(“100”)により、“DBUS dst”の
RAMA命令(“110”)で“Address”として“0
0000000”がセットされ、RAMアドレスカウン
タ15(“RAA”)が“0”にクリアされる。
【0030】次に、3行目が実行され、“Control”の
MVI命令(“100”)により、“DBUS dst”の
ROMA命令(“111”)で“Address”として“0
0000000”がセットされ、ROMアドレスカウン
タ16(“ROA”)が“0”にクリアされる。
【0031】次に、4行目が実行され、MVI命令
(“100”)により、“DBUS dst”のCNT0
(“011”)で第1のカウントレジスタ(0)13に
“0fh”(「h」はヘキサデシマル(16進数)。
“0fh”は2進数表示での“00001111”であ
って、10進数表示での“15”)が格納され、14ビ
ット目の乗算ビット(MULT)が“1”にセットされ
る。
【0032】次に、5行目が実行され、MVI命令
(“100”)により、“DBUS dst”のCNT1
(“100”)で第2のカウントレジスタ(1)14に
“0fh”(2進数表示での“00001111”)が
格納され、乗算ビット(MULT)が“1”にセットさ
れる。
【0033】次に、6行目が実行され、“Control”の
ALU命令(“110”)によりALU9が指定され、
“Alu OP”のADD命令(“100”)で“Alu ou
t”として第2の待避レジスタ(ACC1)11(“0
1”)が指定され、“AluAin”として乗算器8(“0
1”)が指定され、“Alu Bin”として第2の待避レ
ジスタ(ACC1)11(“00”)が指定され、“R
AMA count”(“Ra co”)としてはカウントアップ
の指定がなされず(“0”)、“ROMA count”
(“Ro co”)としてはカウントアップが指定され
(“1”)、また、乗算ビット(MULT)は“1”に
セットされた状態を保つ。すなわち、第2の待避レジス
タ(ACC1)11の内容と乗算器8の乗算結果とが加
算され、その加算結果が再び第2の待避レジスタ(AC
C1)11に出力され、ROMアドレスカウンタ16が
+1カウントアップされる。
【0034】次に、7行目が実行され、“Control”の
ALU命令(“110”)によりALU9が指定され、
“Alu OP”のSBA命令(“101”)で上記と同
様に“Alu out”として第2の待避レジスタ(ACC
1)11(“01”)が指定され、“Alu Ain”とし
て乗算器8(“01”)が指定され、“Alu Bin”と
して第2の待避レジスタ(ACC1)11(“00”)
が指定され、“RAMA count”(“Ra co”)として
はカウントアップの指定がなされず(“0”)、“RO
MA count”(“Ro co”)としてはカウントアップが
指定され(“1”)、また、乗算ビット(MULT)は
“1”にセットされた状態を保つ。すなわち、乗算器8
の出力から第2の待避レジスタ(ACC1)11の内容
が減算され、その減算結果が再び第2の待避レジスタ
(ACC1)11に出力され、ROMアドレスカウンタ
16が+1カウントアップされる。
【0035】次に、8行目が実行され、JNC0命令
(これはJMPとNC0とを併せ表示したもの)すなわ
ち、“Control”のJMP命令(“001”)により
“JMPCondition”が指定され、そのNC0命令
(“001”)により第1のカウントレジスタ(0)1
3の値が“00h”であるかどうかの判定がなされ、
“0”でなければ“AA”が示すアドレス(この場合は
6行目)によりROMアドレスカウンタ16に対する
“Address”を“00000110”(10進数表示で
“6”)にセットし、第1のカウントレジスタ(0)1
3のカウント値を−1減算する。
【0036】次には、ROMアドレスカウンタ16のア
ドレスを“6”にセットしたため、再び6行目が実行さ
れる。この6行目から8行目までの作業が第1のカウン
トレジスタ(0)13の値が“0fh”から“00h”
になるまですなわち16回繰り返され、第1のカウント
レジスタ(0)13の値が“00h”になったときに、
次は9行目に移る。
【0037】9行目が実行され、“Control”のMOV
命令(“101”)で“DBUS dst”の転送先として
RAMA命令(“110”)によりRAM7が指定さ
れ、“DBUS src”の転送元としてACC0命令
(“011”)により第1の待避レジスタ(ACC0)
10が指定され、“RAMA count”(“Ra co”)と
してはカウントアップ(“1”)が指定され、“ROM
A count”(“Ro co”)としてはカウントアップの指
定がなされず(“0”)、また、乗算ビット(MUL
T)は“0”にリセットされる。すなわち、第1の待避
レジスタ(ACC0)10の値がRAM7に出力され、
RAMアドレスカウンタ15のアドレスを+1カウント
アップする。
【0038】次に、10行目が実行され、“Control”
のMVI命令(“101”)により、“DBUS dst”
の“ROMA命令(“111”)で“Address”として
“00000000”がセットされ、ROMアドレスカ
ウンタ16(“ROA”)が“0”にクリアされる。
【0039】次に、11行目が実行され、“Control”
のALU命令(“110”)によりALU9が指定さ
れ、“Alu OP”のCLR命令(“111”)によ
り、1行目の場合の処理と同様にして、第1の待避レジ
スタ(ACC0)10の値が“00”にクリアされる。
【0040】次に、12行目が実行され、JNC1命令
(これはJMPとNC1とを併せ表示したもの)すなわ
ち、“Control”のJMP命令(“001”)により
“JMP Condition”が指定され、そのNC1命令
(“011”)により第2のカウントレジスタ(1)1
4の値が“00h”であるかどうかの判定がなされ、
“00h”でなければ“AA”が示すアドレス(この場
合は6行目)によりROMアドレスカウンタ16に対す
る“Address”を“00000110”(10進数表示
で“6”)にセットし、第2のカウントレジスタ(1)
14のカウント値を−1減算する。
【0041】次には、ROMアドレスカウンタ16のア
ドレスを“6”にセットしたため、再び6行目が実行さ
れる。この6行目から12行目までの作業が第2のカウ
ントレジスタ(1)14の値が“0fh”から“00
h”になるまですなわち16回繰り返され、第2のカウ
ントレジスタ(1)14の値が“00h”になったとき
に、次は13行目が実行され、このプログラムの処理が
終了する。
【0042】以上が従来の方式での動作説明である。
【0043】このプログラムを従来の方式で実行する
と、1行目から5行目までを各1回実行し、6行目から
8行目までを第1のカウントレジスタ(0)13が“0
fh”から“00h”になるまで16回繰り返し実行
し、6行目から8行目の16回の繰り返しにさらに9行
目から12行目までの4行を加算して、第2のカウント
レジスタ(1)14が“0fh”から“00h”になる
まで16回繰り返し実行することになる。したがって、
実行回数は全体として、 5+〔{(3×16)+4}×16〕=837 ………………………(1) となり、合計837回となる。ここでの「回」はシステ
ムクロックのクロック数に相当する。
【0044】(本発明の実施の形態1)次に、いよいよ
本発明の実施の形態1に係るデジタルシグナルプロセッ
サの本質的部分についての説明を行う。本発明の実施の
形態1においては、インストラクションコードの一部ま
たは全部をビット反転することにより1つのコードで複
数の回路の制御を行う機能を有するように構成してあ
る。
【0045】例えば、図3における6行目の“ADD”
の反転コードに“SBA”の意味を持たせ、それ以外の
反転コードは“NOP”(No Operation 何もしな
い)とした場合、図3のアセンブラは図7のようになっ
たものとみなされる。
【0046】インストラクションコードを“Alu O
P”の含まれるビットだけ(図2の8ビット目から10
ビット目まで)1行ごとにビットを反転する。すると、
図8に示すインストラクションコードのようになり、こ
れにおいて、“Alu OP”のうち、“Alu Bin”のビ
ット位置である8〜10ビット目の“ADD”=“10
0”はそのままとし、“SBA”=“101”(図2
(b)および図6参照)を“ADD”=“100”の反
転ビットの“SBA”=“011”とするために、元の
“AND”=“011”と元の“SBA”=“101”
とだけを互いに入れ替えた図2の“Alu OP”を少し
変更した図9の“Alu OP”に示すコード表を用い
る。図9の(a)は図1に示すインストラクションRO
M2に格納されているインストラクションコードをアセ
ンブラに基づいて呼び出すための変換コードの構造を示
し、図9の(b)は変換コードの各構成要素の具体的内
容を示す。図9(a)の構造は図2(a)の構造と全く
同じである。この変換処理は図1のROMデータ変換器
3が実行する。
【0047】図9(b)においては、8〜10ビット目
に相当する“Alu OP”についてのみ図2(b)と異
なってる。すなわち、“Alu OP”において、“SB
A”は、図2(b)の“AND”=“011”と入れ替
わった“SBA”=“011”となり、この“SBA”
=“011”は“ADD”=“100”の反転ビットと
なっている。すなわち、すべてのビットにつき、ビット
の“0”が“1”に反転し、ビットの“1”が“0”に
反転している。
【0048】また、ビット反転前の“Control”のコー
ドが“ALU”以外の場合は“Control”コードが“0
00”となるように回路を構成する。
【0049】インストラクションコードについて、図8
の1行目は図6の1行目と同じである。図8の2行目は
同1行目の8〜10ビット目に相当する“Alu OP”
の“111”をビット反転して“000”としたもので
ある。図8の3行目は図6の2行目と同じである。図8
の4行目は同3行目の“Alu OP”の“110”をビ
ット反転して“001”としたものである。図8の5行
目は図6の3行目と同じである。図8の6行目は同5行
目の“Alu OP”の“111”をビット反転して“0
00”としたものである。図8の7行目は図6の4行目
と同じである。図8の8行目は同7行目の“Alu O
P”の“011”をビット反転して“100”としたも
のである。図8の9行目は図6の5行目と同じである。
図8の10行目は同9行目の“Alu OP”の“10
0”をビット反転して“011”としたものである。
【0050】さらに、図8の11行目は図6の6行目と
同じである。図8の12行目は同11行目の“Alu O
P”の“100”をビット反転して“011”としたも
のである。11行目のインストラクションコードは“A
DD”を規定するものであり、この11行目のインスト
ラクションコードのうちの“Alu OP”の部分をビッ
ト反転した12行目のインストラクションコードは“S
BA”を規定するものとなっている。この点が本実施の
形態1の特徴である。
【0051】図8の13行目は図6の8行目と同じであ
る。図8の14行目は同13行目の“Alu OP”の
“001”をビット反転して“110”としたものであ
る。ここで、図6の7行目が飛ばされて無くなっている
ことに注意しなければならない。
【0052】図8の15行目は図6の9行目と同じであ
る。図8の16行目は同15行目の“Alu OP”の
“110”をビット反転して“001”としたものであ
る。図8の17行目は図6の10行目と同じである。図
8の18行目は同17行目の“Alu OP”の“11
1”をビット反転して“000”としたものである。図
8の19行目は図6の11行目と同じである。図8の2
0行目は同19行目の“Alu OP”の“111”をビ
ット反転して“000”としたものである。図8の21
行目は図6の12行目と同じである。図8の22行目は
同21行目の“AluOP”の“011”をビット反転し
て“100”としたものである。そして、最後の図8の
23行目は図6の13行目と同じである。
【0053】図8の右側には、左側に示すインストラク
ションコードから逆変換を行ったアセンブラコードを示
している。これは、ビット反転時に“Control”コード
が“ALU”以外の場合は“000”となるように構成
すると、“Control”コードの“000”は、アセンブ
ラコードでは“NOP”に当たるため、その他のビット
が何になろうともシステムは何もしないからである。し
かし、それ以外のコードであるときは、その“Contro
l”コードに合った動作をするので、図3のアセンブラ
が図7のようになったのと同等になる。
【0054】図7および図8において、“ADD”と
“SBA”との間に“NOP”がなく、また、“SB
A”と“JNC0”との間にも“NOP”がない点に注
意しなければならない。
【0055】この図7のプログラムを、従来方式と比べ
て速さが2倍のクロックで実行した場合、1行目から1
0行目までを各1回実行し、11行目から14行目まで
を第1のカウントレジスタ(0)13が“0fh”から
“00h”になるまで16回繰り返し実行し、11行目
から14行目の16回の繰り返しにさらに15行目から
22行目までの8行を加算して、第2のカウントレジス
タ(1)14が“0fh”から“00h”になるまで1
6回繰り返し実行することになる。したがって、実行回
数は全体として、 10+〔{(4×16)+8}×16〕=1162 …………………(2) となり、合計1162回となる。
【0056】しかし、これは、速さが2倍のクロックを
用いた場合の実行回数で、これを、従来の方式と比較す
る場合には、実行回数を1/2にして比較すればよいの
で 1162÷2=581 ……………………………………………………(3) となり、従来方式に比べ、 (837−581)÷837=0.306 ……………………………(4) で、3割ほど少ない回数で実行できる。
【0057】以上のようにインストラクションコードを
ビット反転することにより、1つのコードで複数のコー
ドを生成し、複数の回路を制御することができる。これ
により、インストラクションROM2の動作速度を上げ
ることなく、デジタルシグナルプロセッサの実質的な動
作速度を向上させることができる。また、インストラク
ションコードのビット反転は簡単な手段で実現すること
ができる。
【0058】しかしながら、上記のように複数のコード
を実行するためにはインストラクションROM2を動作
させるクロックの複数倍のクロックが必要となる。つま
り、上記の場合には式(2)に示す回数が実際のクロッ
クとなる。そして、LSIの消費電力は、クロック数が
多いほど多くなる傾向があり、 1162÷837=1.388 …………………………………………(5) となり、従来の方式に比べて、約1.3倍の消費電力増
となるという課題が新たに生じることとなる。
【0059】(実施の形態2)そこで、インストラクシ
ョンコードをビット反転するかどうかを制御する制御コ
ードを持たせることにより、消費電力の削減を図ろうと
するのが本実施の形態2のデジタルシグナルプロセッサ
である。
【0060】具体的には、反転コードが“NOP”であ
る場合には、クロックを発生しないようにするためのビ
ットを追加し、2倍のクロックで実行した場合の実行回
数を減らし、このことにより消費電力の削減を図るので
ある。
【0061】図10は実行回数を減らすためのROMデ
ータ変換器3の構成を示すブロック図、図11はそのタ
イミングを示す図である。
【0062】インストラクションROM2から出力され
たインストラクションコードは、インストラクションコ
ードIと制御コードAとに分けてROMデータ変換器3
に入力され、インストラクションコードIはデータセレ
クタ3aのQ入力と、ROMデータ反転器3bに入力さ
れる。ROMデータ反転器3bはインストラクションコ
ードIの8〜10ビット目に相当する“Alu OP”の
ビット部分だけを反転し、データセレクタ3aのQ′入
力に入力する。2倍クロックは1/2分周器3cに入力
され、1/2分周器3cから1/2分周出力Bがデータ
セレクタ3aのセレクト入力とORゲート3dに入力さ
れる。データセレクタ3aは、セレクト入力に接続され
た1/2分周器3cの1/2分周出力Bが“1”のとき
にはQ入力をインストラクションとして出力し、1/2
分周出力Bが“0”のときにはQ′入力をインストラク
ションとして出力する。
【0063】インストラクションROM2からの制御コ
ードAと1/2分周器3cからの1/2分周出力Bとは
ORゲート3dに入力され、ORゲート3dの出力はA
NDゲート3eに入力される。また、2倍クロックはA
NDゲート3eに入力される。1/2分周出力Bと制御
コードAとの少なくともいずれか一方が“1”のときに
はORゲート3dの出力が“H”となり、ANDゲート
3eから2倍クロックがゲート出力Cすなわちシステム
クロックとして出力される。このシステムクロックでデ
ジタルシグナルプロセッサを動作させる。
【0064】請求項にいう「インストラクションコード
をビット反転するかどうかを制御するビット」とは、制
御コードAのことである。通常は制御コードAが“0”
であるので図11の1/2分周出力Bと同じ周期のゲー
ト出力Cが出力されるが、制御コードAが“1”のとき
には2倍クロックがそのままゲート出力Cとして出力さ
れる。図11の上段に示す図3の例えば6行目のインス
トラクションコード(アセンブラコードの形で図示して
ある。以下同じ)は図11において11行目と12行目
のインストラクションROM2からデータセレクタ3a
に直接に入力されるROM出力となり、図3の7行目の
インストラクションコードは図11において13行目と
14行目のインストラクションROM2からデータセレ
クタ3aに直接に入力されるROM出力となり、図3の
8行目のインストラクションコードは図11において1
5行目と16行目のインストラクションROM2からデ
ータセレクタ3aに直接に入力されるROM出力とな
り、図3の9行目のインストラクションコードは図11
において17行目と18行目のインストラクションRO
M2からデータセレクタ3aに直接に入力されるROM
出力となる。
【0065】また、11行目から18行目にかけてイン
ストラクションROM2から出力されるインストラクシ
ョンコードのうちROMデータ反転器3bに入力されて
8〜10ビット目に相当する“Alu OP”のビット部
分だけが反転されたインストラクションコードがROM
反転出力となってデータセレクタ3aに入力される。す
なわち、11行目と12行目のインストラクションコー
ド〔アセンブラコード形式でAA:ADD(A1,…〕
はROMデータ反転器3bにおいて反転インストラクシ
ョンコード〔アセンブラコード形式でSBA(A1,
…〕となり、13行目と14行目のインストラクション
コード〔アセンブラコード形式でSBA(A1,…〕は
ROMデータ反転器3bにおいて反転インストラクショ
ンコード〔アセンブラコード形式でNOP〕となり、1
5行目と16行目のインストラクションコード〔アセン
ブラコード形式でJNC0…〕はROMデータ反転器3
bにおいて反転インストラクションコード〔アセンブラ
コード形式でNOP〕となり、17行目と18行目のイ
ンストラクションコード〔アセンブラコード形式でMV
I(RA,…〕はROMデータ反転器3bにおいて反転
インストラクションコード〔アセンブラコード形式でN
OP〕となる。
【0066】そして、データセレクタ3aのセレクト入
力に入力される1/2分周出力Bは、2倍クロックを1
/2分周器3cで2分の1に分周したもので、1倍クロ
ックとなっている。その1/2分周出力Bの“H”の期
間にデータセレクタ3aからROM出力がROMデータ
変換出力(インストラクション出力)として出力され、
1/2分周出力Bの“L”の期間にデータセレクタ3a
からROM反転出力がROMデータ変換出力(インスト
ラクション出力)として出力される。その結果として、
ROMデータ変換出力(インストラクション出力)とし
ては、11行目でインストラクションコード〔AA:A
DD(A1,…〕を出力し、12行目でインストラクシ
ョンコード〔SBA(A1,…〕を出力し、13行目で
インストラクションコード〔JNC0…〕を出力し、1
4行目でインストラクションコード〔NOP〕を出力
し、15行目でインストラクションコード〔MOV(R
A,…〕を出力し、16行目でインストラクションコー
ド〔NOP〕を出力し、17行目でインストラクション
コード〔MVI(ROA,…〕を出力し、18行目でイ
ンストラクションコード〔NOP〕を出力することにな
る。
【0067】しかし、ANDゲート3eにおいて制御コ
ードAと1/2分周出力Bとの論理和で生成されたゲー
ト出力Cであるシステムクロックは、14行目、16行
目、18行目のインストラクションコード〔NOP〕に
対しては出力されないから、実質的に図7のアセンブラ
は図3のアセンブラのようになったとみなされる。
【0068】これを1/2分周出力Bを基準に考える
と、制御コードAが“1”のときには2倍の速度で動作
しているので、6行目と7行目は1/2分周出力Bの1
周期のうちに実行されるので、見かけ上は1行のように
なる。7行目、8行目、9行目、10行目は、ゲート出
力Cであるシステムクロックは1/2分周出力Bと同じ
周期のクロックとなっているので各々1行となる。この
場合の実行回数は、6,7,8行を実質的に2行と考え
てよく、式(1)における「3」を「2」に置き換え
て、 5+〔{(2×16)+4}×16〕=581 …………………………(6) となり、これは実施の形態1の場合の式(3)と同じ値
であり、従来方式と比べて3割ほど少ない回数で実行で
きる。しかも、実際のクロック数も実施の形態1に比べ
て3割ほど少なくなるので、消費電力も3割ほど削減す
ることができる。
【0069】なお、実施の形態1および実施の形態2に
おいて、インストラクションコードの全部をビット反転
するような別の実施の形態も考えられる。
【0070】(実施の形態3)本発明の実施の形態3に
係るデジタルシグナルプロセッサは、見かけ上の動作速
度をさらに向上するようにしたものである。
【0071】図12の(a)はインストラクションRO
M2に格納されているインストラクションコードをアセ
ンブラに基づいて呼び出すための変換コードの構造を示
し、図12の(b)は変換コードの各構成要素の具体的
内容を示す。図12(b)は図2(b)と同じものであ
る。
【0072】図12(a)のインストラクションコード
を4つに区分し、それぞれの区分に対して、22 =4つ
のカウント値0〜3をもつための2ビットからなる4進
カウンタを用意する(この2ビットの4進カウンタにつ
いては、後述する図15の4進カウンタ21を参照)。
カウント0〜3は、4進カウンタのカウント値がそれぞ
れ0,1,2,3になったときに実行されるインストラ
クションを示したものである。例えばカウント値が0の
ときはカウント0の部分のインストラクションが実行さ
れる。カウント0の部分はALU9に関する制御であ
り、39ビット目に“乗算”が割り当てられ、36〜3
8ビット目に“Alu OP”が割り当てられ、34〜3
5ビット目に“Alu out”が割り当てられ、32〜33
ビット目に“Alu Ain”が割り当てられ、30〜31
ビット目に“Alu Bin”が割り当てられている。カウ
ント1の部分は転送関係に関する制御であり、27〜2
9ビット目に“DBUS dst”が割り当てられ、24〜
26ビット目に“DBUS src”が割り当てられ、23
ビット目に“RAMA count”(“Ra co”)が割り当
てられ、22ビット目に“ROMA count”(“Ro c
o”)が割り当てられている。カウント2の部分はイミ
ディエートデータ(即値)の転送に関する制御であり、
19〜21ビット目に“DBUS dst”が割り当てら
れ、11〜18ビット目に8ビットの“Immediate”が
割り当てられている。カウント3の部分はジャンプ命令
に関する制御であり、8〜10ビット目に“JMP Co
ndition”が割り当てられ、0〜7ビット目に8ビット
の“Address”が割り当てられている。
【0073】図12の変換コードを用いると図3のアセ
ンブラ言語によるソースプログラムは、図13のように
なり、図3で複数行かかっていた動作を1行にまとめる
ことができる。例えば、図3の1行目と2行目は、 STT:CLR(A0) MVI(RAA,0) となっているが、1行目はALUのコードであり、2行
目は転送のコードであるので、図13の1行目のよう
に、 STT:CLR(A0)|NOP|MVI(RAA,
0)|NOP と1行にまとめることができる。
【0074】図3の3行目のMVI(ROA,0)は、
図13の2行目のように、 |NOP|NOP|MVI(ROA,0)|NOP|N
OP となり、図3の4行目のMVI(CNT0,0fh)M
ULTは、図13の3行目のように、 |MULT|NOP|MVI(CNT0,0fh)|N
OP となり、図3の5行目のMVI(CNT1,0fh)M
ULTは、図13の4行目のように、 |MULT|NOP|MVI(CNT1,0fh)|N
OP となる。そして、図3の6行目のAA:ADD(A1,
A1,P)MULT INC(RO)は、図13の5行
目のように、 AA:ADD(A1,A1,P)MULT|INC(R
O)|NOP|NOPとなり、図3の7行目のSBA
(A1,A1,P)MULT INC(RO)および8
行目のJNC0 AAは、図13の6行目のように1行
にまとめられて、 SBA(A1,A1,P)MULT|INC(RO)|
NOP|JNC0 AA となり、図3の9行目のMOV(RA,A0) INC
(RA)は、図13の7行目のように、 |NOP|NOP|MOV(RA,A0)|INC(R
A)|NOP となり、図3の10行目のMVI(ROA,0)、11
行目のCLR(A0)および12行目のJNC1 AA
は、図13の8行目のように3行が1行にまとめられ
て、 |CLR(A0)|NOP|MVI(ROA,0)|J
NC1 AA となる。
【0075】この場合の実行回数は、従来のクロックで
カウントすると、1行目から4行目までを各1回実行
し、5行目から6行目までを第1のカウントレジスタ
(0)13が“0fh”から“00h”になるまで16
回繰り返し実行し、5行目から6行目の16回の繰り返
しにさらに7行目から8行目までの2行を加算して、第
2のカウントレジスタ(1)14が“0fh”から“0
0h”になるまで16回繰り返し実行することになる。
したがって、実行回数は全体として、 4+〔{(2×16)+2}×16〕=548 ………………………(7) となり、従来方式に比べて、 (837−548)÷837=0.345 ……………………………(8) で、約3割5分ほど少ない回数で実行できる。これは、
実施の形態1の場合に比べて、 (581−548)÷581=0.057 ……………………………(9) で、約0.6割ほど少ない回数で実行できる。
【0076】しかし、2ビットの4進カウンタを用いて
インストラクションコードを4つに区分することから、
実行クロックの速度は従来クロックの4倍になるので
(後述する図16の4倍クロック参照)、実際のクロッ
ク数は 548×4=2192 ……………………………………………………(10) となり、 2192÷837=2.619 …………………………………………(11) と、消費電力は従来方式に比べて約2.6倍となるとい
う課題が新たに生じることになる。
【0077】(実施の形態4)そこで、4進カウンタの
カウント値が有効かどうかを制御する制御コードをイン
ストラクションコードに持たせることにより、消費電力
の削減を図ろうとするのが本実施の形態4のデジタルシ
グナルプロセッサである。
【0078】図12のインストラクションコードにおい
て“NOP”の場合にクロックを発生しないようにする
ためのビットである制御コードN0,N1,N2,N3
を変換コードに対して図14のように追加して、4倍の
クロックでの実行回数を減らすようにする。すなわち、
40ビット目に制御コードN0を設定し、41ビット目
に制御コードN1を設定し、42ビット目に制御コード
N2を設定し、43ビット目に制御コードN3を設定し
てある。
【0079】図15は実行回数を減らすためのROMデ
ータ変換器3の構成を示すブロック図、図16はそのタ
イミングを示す図である。
【0080】インストラクションROM2の出力はイン
ストラクション出力と、制御コードN0,N1,N2,
N3に分けられ、インストラクション出力はそのまま次
段のシステムコントローラ4へ出力され、制御コードN
0〜N3はROMデータ変換器3にそれぞれ出力され
る。4倍クロックは2ビットで4値を持ち得る4進カウ
ンタ21とANDゲート28に接続され、4進カウンタ
21の出力はデコーダ22に出力される。デコーダ22
は、4進カウンタ21のカウント値に合わせてセレクト
信号A〜Dを次段のシステムコントローラ4に対して出
力する。セレクト信号A,B,C,Dと制御コードN
0,N1,N2,N3はそれぞれANDゲート23,2
4,25,26に入力され、それらの出力はORゲート
27に入力される。ORゲート27の出力はANDゲー
ト28に入力され、4倍クロックと論理積を取り、AN
Dゲート28の出力はデジタルシグナルプロセッサのシ
ステムクロックとして出力される。
【0081】4倍クロックを入力した4進カウンタ21
がカウント0を出力し、デコーダ22からのセレクト信
号Aのみが“H”で制御コードN0が“1”のとき、A
NDゲート23が導通し、ORゲート27も導通するか
ら、ANDゲート28が導通状態となって、4倍クロッ
クがシステムクロックとして出力され、図13の5行目
のインストラクションコードの一部〔アセンブラ形式で
AA:ADD(A1,A1,P)MULT〕がセレクト
信号Aによって選択される。4進カウンタ21がカウン
ト1を出力し、デコーダ22からのセレクト信号Bのみ
が“H”で制御コードN1が“1”のとき、ANDゲー
ト24が導通し、ORゲート27も導通するから、AN
Dゲート28が導通状態となって、4倍クロックがシス
テムクロックとして出力され、図13の5行目のインス
トラクションコードの一部〔アセンブラ形式でINC
(RO)〕がセレクト信号Bによって選択される。4進
カウンタ21がカウント2を出力し、デコーダ22から
のセレクト信号Cのみが“H”で制御コードN2が
“0”のとき、ANDゲート25および他の3つのAN
Dゲートがすべて非導通状態となり、ORゲート27も
非導通状態となるから、ANDゲート28は非導通状態
となって、4倍クロックのシステムクロックとしての出
力はなくなる。ただし、図13の5行目のインストラク
ションコードの一部〔アセンブラ形式で1番目のNO
P〕がセレクト信号Cによって選択される。4進カウン
タ21がカウント3を出力し、デコーダ22からのセレ
クト信号Dのみが“H”で制御コードN3が“0”のと
き、ANDゲート26および他の3つのANDゲートが
すべて非導通状態となり、前記と同様にANDゲート2
8は非導通状態となって、4倍クロックのシステムクロ
ックとしての出力はなくなる。ただし、図13の5行目
のインストラクションコードの一部〔アセンブラ形式で
2番目のNOP〕がセレクト信号Dによって選択され
る。
【0082】次に、再び4進カウンタ21がカウント0
を出力し、デコーダ22からのセレクト信号Aのみが
“H”で制御コードN0が“1”のとき、ANDゲート
23が導通するから、ANDゲート28が導通状態とな
って、4倍クロックがシステムクロックとして出力さ
れ、図13の6行目のインストラクションコードの一部
〔アセンブラ形式でSBA(A1,A1,P)MUL
T〕がセレクト信号Aによって選択される。4進カウン
タ21がカウント1を出力し、デコーダ22からのセレ
クト信号Bのみが“H”で制御コードN1が“1”のと
き、ANDゲート24が導通するから、ANDゲート2
8が導通状態となって、4倍クロックがシステムクロッ
クとして出力され、図13の6行目のインストラクショ
ンコードの一部〔アセンブラ形式でINC(RO)〕が
セレクト信号Bによって選択される。4進カウンタ21
がカウント2を出力し、デコーダ22からのセレクト信
号Cのみが“H”で制御コードN2が“0”のとき、A
NDゲート25および他の3つのANDゲートがすべて
非導通状態となるから、ANDゲート28は非導通状態
となって、4倍クロックのシステムクロックとしての出
力はなくなる。ただし、図13の6行目のインストラク
ションコードの一部〔アセンブラ形式でNOP〕がセレ
クト信号Cによって選択される。4進カウンタ21がカ
ウント3を出力し、デコーダ22からのセレクト信号D
のみが“H”で制御コードN3が“1”のとき、AND
ゲート26が導通するから、ANDゲート28が導通状
態となって、4倍クロックがシステムクロックとして出
力され、図13の6行目のインストラクションコードの
一部〔アセンブラ形式でJNC0 AA〕がセレクト信
号Dによって選択される。
【0083】次に、再び4進カウンタ21がカウント0
を出力し、デコーダ22からのセレクト信号Aのみが
“H”で制御コードN0が“0”のとき、ANDゲート
23および他の3つのANDゲートがすべて非導通状態
となるから、ANDゲート28は非導通状態となって、
4倍クロックのシステムクロックとしての出力はなくな
る。ただし、図13の7行目のインストラクションコー
ドの一部〔アセンブラ形式で1番目のNOP〕がセレク
ト信号Aによって選択される。4進カウンタ21がカウ
ント1を出力し、デコーダ22からのセレクト信号Bの
みが“H”で制御コードN1が“0”のとき、前述同様
に4倍クロックのシステムクロックとしての出力はなく
なる。ただし、図13の7行目のインストラクションコ
ードの一部〔アセンブラ形式で2番目のNOP〕がセレ
クト信号Bによって選択される。4進カウンタ21がカ
ウント2を出力し、デコーダ22からのセレクト信号C
のみが“H”で制御コードN2が“1”のとき、AND
ゲート25が導通するから、ANDゲート28より4倍
クロックがシステムクロックとして出力され、図13の
7行目のインストラクションコードの一部〔アセンブラ
形式でMOV(RA,A0)INC(RA)〕がセレク
ト信号Cによって選択される。4進カウンタ21がカウ
ント3を出力し、デコーダ22からのセレクト信号Dの
みが“H”で制御コードN3が“0”のとき、前述同様
に4倍クロックのシステムクロックとしての出力はなく
なる。ただし、図13の7行目のインストラクションコ
ードの一部〔アセンブラ形式で3番目のNOP〕(これ
は図示せず)がセレクト信号Dによって選択される。
【0084】この実施の形態4の場合の実行回数は、実
施の形態3の式(7)と同様であるが、4倍クロックを
用いた場合の実際のクロック数を求めると、上記のよう
にして不要なクロックが取り除かれるので、 7+〔{(5×16)+4}×16〕=1351 ……………………(12) となり、 1351÷837=1.614 …………………………………………(13) と、従来方式に比べて、使用するクロック数は、約1.
6倍程度にまで抑えることができる。
【0085】なお、実施の形態3および実施の形態4に
おいて、4進カウンタ21に代えて、Nを1以上の任意
の自然数として、インストラクションROM2のROM
アドレスカウンタ1のクロックのN倍のクロックでカウ
ントするN進カウンタを用いる実施の形態も考えられ
る。
【0086】また、実施の形態1から実施の形態4の何
れについても、デジタルシグナルプロセッサとして構成
することに代えて、本発明を、インストラクションコー
ドで内部の制御を行うマイクロコンピュータを含む集積
回路一般に適用してもよい。
【0087】
【発明の効果】本発明に係る請求項1のデジタルシグナ
ルプロセッサによれば、インストラクションコードをビ
ット反転等で加工して1つのインストラクションコード
から複数のコードを作り複数の回路を制御するので、イ
ンストラクションROMの動作速度を特に上げなくて
も、デジタルシグナルプロセッサ全体としての動作速度
を実質的に向上させることができる。
【0088】本発明に係る請求項2のデジタルシグナル
プロセッサによれば、1つのインストラクションコード
から複数のコードを作るのにビット反転で作るから、そ
の手段を簡単なものにすることができる。
【0089】本発明に係る請求項3のデジタルシグナル
プロセッサによれば、ビット反転するか否かを決定する
制御コードを持たせて必要な部分に対してのみビット反
転を行うので、動作速度を上げることに伴う必要以上の
消費電力の増加を防ぐことができる。
【0090】本発明に係る請求項4のデジタルシグナル
プロセッサによれば、N進カウンタを用いてN倍のクロ
ックを作り、このクロックで制御するので、見かけ上の
速度をN倍にすることができる。
【0091】本発明に係る請求項5のデジタルシグナル
プロセッサによれば、N進カウントのカウント値の有効
性を決定する制御コードを持たせ、必要な部分に対して
のみN倍のクロックで制御するので、動作速度を上げる
ことに伴う必要以上の消費電力の増加を防ぐことができ
る。
【0092】本発明に係る請求項6の集積回路によれ
ば、マイクロコンピュータ等においても上記と同様の効
果が得られる。
【図面の簡単な説明】
【図1】本発明の実施の形態に係るデジタルシグナルプ
ロセッサの主要部の構成を示すブロック図である。
【図2】従来技術に係るデジタルシグナルプロセッサの
インストラクションROMに格納されているインストラ
クションコードをアセンブラに基づいて呼び出すための
変換コードの構造の説明図である。
【図3】本発明の実施の形態および従来技術の動作説明
に用いるアセンブラ言語を用いたソースプログラムの一
例を示す図である。
【図4】図3のソースプログラムの1行目のアセンブラ
コードに対応するインストラクションコードの説明図で
ある。
【図5】従来の方式により、図3のプログラムを図2の
変換コードに従って変換した場合のインストラクション
コードの説明図である。
【図6】従来の方式において、図3のアセンブラコード
と図5のインストラクションコードとを対比させたコー
ド対応図である。
【図7】本発明の実施の形態1のデジタルシグナルプロ
セッサにおいて、図3における6行目の“ADD”のビ
ット反転コードに“SBA”の意味を持たせ、それ以外
のビット反転コードは“NOP”とした場合のアセンブ
ラ言語によるソースプログラムを示す図である。
【図8】実施の形態1において、図7のアセンブラコー
ドとそれに対応するインストラクションコードとを対比
させたコード対応図である。
【図9】実施の形態1において、ビット反転を行うため
の、インストラクションROMに格納されているインス
トラクションコードをアセンブラに基づいて呼び出すた
めの変換コードの構造の説明図である。
【図10】本発明の実施の形態2に係るデジタルシグナ
ルプロセッサにおける実行回数を減らすためのROMデ
ータ変換器の構成を示すブロック図である。
【図11】実施の形態2の動作を説明するためのタイミ
ング図である。
【図12】本発明の実施の形態3に係るデジタルシグナ
ルプロセッサにおける消費電力を削減するための、イン
ストラクションROMに格納されているインストラクシ
ョンコードをアセンブラに基づいて呼び出すための変換
コードの構造の説明図である。
【図13】実施の形態3において、図2の変換コードを
用いて図3のソースプログラムを変換したソースプログ
ラムを示す図である。
【図14】本発明の実施の形態4に係るデジタルシグナ
ルプロセッサにおいて“NOP”の部分に4倍クロック
を発生させないようにした制御コードを付加した、イン
ストラクションROMに格納されているインストラクシ
ョンコードをアセンブラに基づいて呼び出すための変換
コードの構造の説明図である。
【図15】実施の形態4において実行回数を減らすため
のROMデータ変換器の構成を示すブロック図である。
【図16】実施の形態4の動作を説明するためのタイミ
ング図である。
【符号の説明】
1……ROMアドレスカウンタ 2……インストラクションROM 3……ROMデータ変換器 3a…データセレクタ 3b…ROMデータ反転器 3c…1/2分周器 4……システムコントローラ 5……テンポラリーレジスタ 6……テーブルROM 7……RAM 8……乗算器 9……ALU(論理演算ユニット) 10……第1の待避レジスタ(ACC0) 11……第2の待避レジスタ(ACC1) 12……データバス 13……第1のカウントレジスタ(0) 14……第2のカウントレジスタ(1) 15……RAMアドレスカウンタ 16……ROMアドレスカウンタ 21……4進カウンタ 22……デコーダ A……制御コード I……インストラクションコード N0〜N3……制御コード

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 インストラクションコードで内部の制御
    を行うデジタルシグナルプロセッサにおいて、インスト
    ラクションROMの1つのコードで複数の回路の制御が
    行えるようにするためのコードを持つことを特徴とする
    デジタルシグナルプロセッサ。
  2. 【請求項2】 インストラクションコードの一部または
    全部をビット反転することにより1つのコードを複数の
    回路の制御のためのコードに変換する請求項1に記載の
    デジタルシグナルプロセッサ。
  3. 【請求項3】 インストラクションコードをビット反転
    するかどうかを制御する制御コードを持つ請求項2に記
    載のデジタルシグナルプロセッサ。
  4. 【請求項4】 インストラクションROMのアドレスカ
    ウンタとは別にアドレスカウンタのN倍(Nは1以上の
    自然数)のクロックでカウントするN進カウンタを持
    ち、そのN進カウンタのカウント値に基づいて1つのコ
    ードを複数の回路の制御のためのコードに変換する請求
    項1に記載のデジタルシグナルプロセッサ。
  5. 【請求項5】 アドレスカウンタのN倍のクロックでカ
    ウントするN進カウンタのカウント値が有効かどうかを
    制御する制御コードを持つ請求項4に記載のデジタルシ
    グナルプロセッサ。
  6. 【請求項6】 デジタルシグナルプロセッサと同様にイ
    ンストラクションコードで内部の制御を行うマイクロコ
    ンピュータを含むことがある請求項1から請求項5まで
    のいずれかに記載の集積回路。
JP9133472A 1997-05-23 1997-05-23 デジタルシグナルプロセッサおよび集積回路 Pending JPH10326187A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9133472A JPH10326187A (ja) 1997-05-23 1997-05-23 デジタルシグナルプロセッサおよび集積回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9133472A JPH10326187A (ja) 1997-05-23 1997-05-23 デジタルシグナルプロセッサおよび集積回路

Publications (1)

Publication Number Publication Date
JPH10326187A true JPH10326187A (ja) 1998-12-08

Family

ID=15105584

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9133472A Pending JPH10326187A (ja) 1997-05-23 1997-05-23 デジタルシグナルプロセッサおよび集積回路

Country Status (1)

Country Link
JP (1) JPH10326187A (ja)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020195880A (ja) * 2016-10-14 2020-12-10 株式会社ユニバーサルエンターテインメント 遊技機
JP2021006301A (ja) * 2020-10-21 2021-01-21 株式会社ユニバーサルエンターテインメント 遊技機
JP2021007808A (ja) * 2020-10-22 2021-01-28 株式会社ユニバーサルエンターテインメント 遊技機
JP2021007809A (ja) * 2020-10-22 2021-01-28 株式会社ユニバーサルエンターテインメント 遊技機
JP2021035622A (ja) * 2020-12-01 2021-03-04 株式会社ユニバーサルエンターテインメント 遊技機
JP2021045638A (ja) * 2020-12-22 2021-03-25 株式会社ユニバーサルエンターテインメント 遊技機
JP2021049412A (ja) * 2020-12-22 2021-04-01 株式会社ユニバーサルエンターテインメント 遊技機
JP2021053409A (ja) * 2020-12-01 2021-04-08 株式会社ユニバーサルエンターテインメント 遊技機
JP2021053408A (ja) * 2020-12-01 2021-04-08 株式会社ユニバーサルエンターテインメント 遊技機
JP2021058634A (ja) * 2020-12-22 2021-04-15 株式会社ユニバーサルエンターテインメント 遊技機
JP2021118878A (ja) * 2017-06-14 2021-08-12 株式会社ユニバーサルエンターテインメント 遊技機
JP2021118877A (ja) * 2017-06-14 2021-08-12 株式会社ユニバーサルエンターテインメント 遊技機
JP2023014178A (ja) * 2020-02-10 2023-01-26 株式会社ユニバーサルエンターテインメント 遊技機

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020195880A (ja) * 2016-10-14 2020-12-10 株式会社ユニバーサルエンターテインメント 遊技機
JP2021118878A (ja) * 2017-06-14 2021-08-12 株式会社ユニバーサルエンターテインメント 遊技機
JP2021118877A (ja) * 2017-06-14 2021-08-12 株式会社ユニバーサルエンターテインメント 遊技機
JP2023014178A (ja) * 2020-02-10 2023-01-26 株式会社ユニバーサルエンターテインメント 遊技機
JP2021006301A (ja) * 2020-10-21 2021-01-21 株式会社ユニバーサルエンターテインメント 遊技機
JP2021007808A (ja) * 2020-10-22 2021-01-28 株式会社ユニバーサルエンターテインメント 遊技機
JP2021007809A (ja) * 2020-10-22 2021-01-28 株式会社ユニバーサルエンターテインメント 遊技機
JP2021035622A (ja) * 2020-12-01 2021-03-04 株式会社ユニバーサルエンターテインメント 遊技機
JP2021053409A (ja) * 2020-12-01 2021-04-08 株式会社ユニバーサルエンターテインメント 遊技機
JP2021053408A (ja) * 2020-12-01 2021-04-08 株式会社ユニバーサルエンターテインメント 遊技機
JP2021049412A (ja) * 2020-12-22 2021-04-01 株式会社ユニバーサルエンターテインメント 遊技機
JP2021058634A (ja) * 2020-12-22 2021-04-15 株式会社ユニバーサルエンターテインメント 遊技機
JP2021045638A (ja) * 2020-12-22 2021-03-25 株式会社ユニバーサルエンターテインメント 遊技機

Similar Documents

Publication Publication Date Title
JPH10326187A (ja) デジタルシグナルプロセッサおよび集積回路
US4658355A (en) Pipeline arithmetic apparatus
JPH087084A (ja) 第1、第2及び第3の入力の第1のブール組合せプラス第1、第2及び第3の入力の第2のブール組合せの和を形成する3入力算術論理装置
US4377846A (en) Arithmetic unit for generating constants in an electronic computer of the microprogram-controlled type
JPS61122747A (ja) デ−タ処理装置
US4422143A (en) Microprocessor ALU with absolute value function
JPH0470662B2 (ja)
US5957996A (en) Digital data comparator and microprocessor
US4745569A (en) Decimal multiplier device and method therefor
JPH073653B2 (ja) シフタ
US5363322A (en) Data processor with an integer multiplication function on a fractional multiplier
JPS6227412B2 (ja)
JP3433588B2 (ja) マスクデータ生成回路及びビットフィールド操作回路
JPH0640337B2 (ja) パイプライン演算装置
JPH06266536A (ja) 乗除算器
JPH0831033B2 (ja) データ処理装置
JP2991788B2 (ja) 復号器
GB2517539A (en) Data processing apparatus and method for performing a narrow-and-rounding arithmetic operation
JP2582444B2 (ja) ×2▲上n▼演算回路
US20030056080A1 (en) Register read circuit using the remainders of modulo of a register number by the number of register sub-banks
JPH1063500A (ja) 信号処理装置
JP2706459B2 (ja) 小数乗算器を有するマイクロプロセッサ
SU654948A2 (ru) Цифрова электронна вычислительна машина последовательного действи
US20070055847A1 (en) Operational processor with a status information register serving as a data register
JPH10149277A (ja) 乗算装置