JPH04227540A - 演算処理装置及びディジタル信号処理プロセッサ - Google Patents

演算処理装置及びディジタル信号処理プロセッサ

Info

Publication number
JPH04227540A
JPH04227540A JP9811691A JP9811691A JPH04227540A JP H04227540 A JPH04227540 A JP H04227540A JP 9811691 A JP9811691 A JP 9811691A JP 9811691 A JP9811691 A JP 9811691A JP H04227540 A JPH04227540 A JP H04227540A
Authority
JP
Japan
Prior art keywords
data
arithmetic
register
instruction
calculation
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.)
Withdrawn
Application number
JP9811691A
Other languages
English (en)
Inventor
Yusuke Takeuchi
勇介 武内
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP9811691A priority Critical patent/JPH04227540A/ja
Publication of JPH04227540A publication Critical patent/JPH04227540A/ja
Withdrawn legal-status Critical Current

Links

Abstract

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

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、マイクロプロセッサな
どの演算処理装置、ことにプログラムの繰返し処理やル
ープ処理などの反復的な演算処理技術に関し、例えば、
乗算回路と加算回路を有するディジタル信号処理プロセ
ッサ(以下、DSPとも称する)やDSPを含むアナロ
グ・ディジタル混載型半導体集積回路における積和演算
の繰返しステップ数の低減に適用して有効な技術に関す
るものである。
【0002】
【従来の技術】ディジタル信号処理プロセッサとしては
、プログラムメモリとデータメモリを分離して構成する
所謂ハーバードアーキテクチャを採用したプロセッサが
ある。この種のプロセッサは、例えば、演算データ転送
系と命令転送系が基本的に分離され、その演算系は、デ
ィジタル信号処理のための変数データもしくは係数デー
タなどを格納するためのデータメモリを持ち、複数化さ
れた内部バスを介して並列的にデータ転送が可能にされ
ている。また、DSPは、さらに乗算器と加算器を個別
に備え、ディジタル信号処理で頻度の高い乗算と加算を
並行して行ない得るようなパイプライン的な演算が可能
になっている。そして、演算やデータ転送などのデータ
処理アルゴリズムを表す命令群がマイクロROMなどの
インストラクションメモリに保有され、所定の手順に従
って、そのインストラクションメモリから命令が読み出
され、この読み出された命令によって、ディジタル信号
処理のための演算やデータの入出力が制御される。
【0003】また、斯るディジタル信号処理プロセッサ
において、上記インストラクションメモリ(マイクロR
OM)は、その演算命令のスループットを向上させるた
め、同一命令サイクル中に複数の動作を実行可能な水平
型マイクロ命令体系に従った動作プログラムを保有する
ものがある。この場合、1命令サイクルにおいて並列に
実行可能な動作は、乗算器や加算器のオペレーション、
そしてデータメモリや各種レジスタのアクセスなどとさ
れる。積和演算処理において、例えば乗算の実行が各命
令サイクルで可能にされ、その乗算の実行の結果がレジ
スタに1命令サイクル期間蓄えられるようにするととも
に、当該乗算結果を利用した加算の実行が、次の命令サ
イクルで行なわれる乗算の実行に並行して行なわれるよ
うにすると、乗算と加算はパイプライン的に並列処理可
能になり、積和演算は見掛け上1命令サイクルで行なわ
れることになる。このような演算手順が可能となるよう
に、上記DSPは、演算対象データや演算結果データが
相互に競合することがないように、それぞれ個別的なデ
ータ転送経路を介してデータを伝送するようになってい
る。
【0004】音声帯域でのデータ通信や音声圧縮などの
分野で利用されるディジタル信号処理においては、サン
プリングデータなどに対して斯る積和演算を繰返し実行
してフィルタリング処理や変復調処理などが行なわれる
。この場合、処理すべき信号の周波数が比較的高いなど
のために、演算速度を高速化する必要がある。そのため
、繰返し積和演算のプログラムステップを短くすると共
にその処理時間も短縮するため、リピート命令による積
和演算プログラムの繰返し実行やジャンプ命令などによ
るループ処理を採用することが多い。
【0005】DSPについて記載された文献の例として
は、例えば昭和61年2月28日に株式会社コロナ社発
行の「浮動小数点演算シグナルプロセッサプログラミン
グ入門」の第1頁から第25頁がある。また、リピート
命令を実行することができるDSPについて記載された
文献の例としては特開平1−112337号公報がある
【0006】
【発明が解決しようとする課題】しかしながら、ある所
定の演算シーケンスを反復実行してパイプライン的な演
算処理を行っている途中で系数などの演算定数を変化さ
せる場合には、反復実行している演算シーケンスを一旦
停止して、それまでのパイプライン的な演算処理を最後
まで実行した後に、次の演算定数を所定のレジスタなど
にセットしなければならない。パイプライン的な演算処
理は、ある時点に着目すれば演算やデータ転送などの複
数の処理が見掛け上並列化されているが、時系列に一連
の処理を追うと、当該一連の処理の開始時点と完了時点
では、単一の処理しか行なわれず、斯る反復的な演算処
理の変わり目においては、先行するパイプライン的な一
連の処理を完了しなければ再び同じような手順で反復的
な演算を開始することはできず、その間の命令サイクル
数の増加によって、演算効率を低下させるという問題点
のあることが本発明者によって見い出された。特に反復
的な演算処理の占める割合が大きなディジタル信号処理
では、斯る命令サイクルの増加は無視し得ないものにな
ることが予想される。
【0007】本発明の目的は、所定の演算シーケンスを
反復実行するようなパイプライン的な演算処理の効率を
向上させることができる演算処理装置、さらにはその演
算処理装置を適用したディジタル信号処理プロセッサを
提供することにある。
【0008】本発明の前記並びにその他の目的と新規な
特徴は本明細書の記述及び添付図面から明らかになるで
あろう。
【0009】
【課題を解決するための手段】本願において開示される
発明のうち代表的なものの概要を簡単に説明すれば下記
の通りである。
【0010】すなわち、ファースト−イン・ファースト
−アウト・メモリを有し、このファースト−イン・ファ
ースト−アウト・メモリには、積和演算の係数データが
格納され、積和演算がパイプライン的に繰返し実行され
ているときに係数データの変更が必要となった場合、上
記ファースト−イン・ファースト−アウト・メモリから
演算回路に係数データを供給するようにする。その係数
データの供給タイミングは演算の繰返し実行回数などの
計数値に基づいて形成し、直接命令によりその係数デー
タの供給を指示しなくても済むようにできる。
【0011】また、本発明の別の側面においては、前処
理ステップと、それに引き続いて演算並びにデータ転送
を並列的に行なう処理ステップの連続的な繰返しと、後
処理ステップとによって、一定の演算シーケンスを反復
実行するようなパイプライン的な一連の演算処理を行な
う演算処理装置において、係数データなどの所定の演算
対象情報をその処理順に予め保有する記憶手段と、上記
一連の演算処理に適用される演算対象情報を変更すると
き、演算対象情報を変更する前の上記一連の演算処理に
含まれる後処理ステップに重ねて、上記記憶手段から次
の演算対象情報を転送制御する制御手段とを設けるもの
である。
【0012】また、第1演算器による演算結果を遅延要
素を介して受け、その第1演算器による演算動作に並行
して第2演算器で演算動作を行なう、パイプライン的な
一連の演算処理を可能とする演算処理装置において、上
記第1演算器の入力に与えられる所定の演算対象情報を
その処理順に予め保有する記憶手段を設け、上記記憶手
段からの演算対象情報を切り換えるとき、制御手段によ
り、切換え直前における第2演算器による最後の演算動
作に重ねて、上記記憶手段から次の演算情報を第1演算
器に出力可能にするものである。
【0013】上記演算対象情報の切り換えに際しての処
理をソフトウェアに依存することなく簡単に行えるよう
にするには、演算の空き時間を利用して記憶手段に演算
対象情報を処理順に格納しておき、上記連続的な繰返し
処理ステップ数を管理するための計数手段の計数値に基
づいて、演算対象情報を上記記憶手段から先入れ先出し
形式で出力させるようにするとよい。
【0014】このような演算処理装置は、動作プログラ
ムを保有したディジタル信号処理プロセッサ、あるいは
これを含むアナログ・ディジタル混載型半導体集積回路
として構成することができる。
【0015】
【作用】上記した手段によれば、一定の演算シーケンス
を反復実行してパイプライン的な演算処理を行っている
途中で演算対象情報を変化させる場合に、予めその情報
を記憶手段に記憶させ、演算制御のためのソフトウェア
に直接依存せず若しくは負担をかけない上記制御手段の
動作を介して演算対象情報を更新することができる。こ
のことは、反復的な演算処理の変わり目において、先行
するパイプライン的な一連の処理の完了を待たずに次の
一連の処理のための情報をセット若しくはロード可能に
作用し、もって、所定の演算シーケンスを反復実行する
ようなパイプライン的な演算処理効率の向上を達成する
ものである。
【0016】
【実施例】図1には本発明の一実施例に係るディジタル
信号処理プロセッサが示されている。同図に示されてい
るディジタル信号処理プロセッサは、特に制限されない
が、公知の半導体集積回路製造技術によってシリコンの
ような1個の半導体基板に形成されている。すなわち、
2点破線で囲まれた各回路ブロックは、1個の半導体チ
ップに形成されている。しかしながら、本発明はこの実
施例に限定されない。このディジタル信号処理プロセッ
サは、例えば、いわゆるMODEM用LSIやCODE
C用LSIのようなアナログ回路部も含むようなLSI
として、公知の半導体集積回路製造技術によりシリコン
のような1個の半導体基板に形成してもよい。
【0017】図1に示されるディジタル信号処理プロセ
ッサ1は、プログラムメモリとデータメモリを分離して
構成する所謂ハーバードアーキテクチャを採り、演算デ
ータ転送系と命令転送系が基本的に分離されている。演
算ユニット100は、ディジタル信号処理における変数
データや係数データなどを格納するためのRAM(ラン
ダム・アクセス・メモリ)やROM(リード・オンリ・
メモリ)を含むデータメモリ101を持ち、複数化され
た内部バス102〜104がそれらメモリ101の所定
のポートに接続されて並列的にデータ転送可能にされて
いる。さらに、乗算器105と算術論理演算器106を
個別的に備えることによって、頻度の高い乗算と加算を
並列的に実行可能にされている。
【0018】上記データメモリ101は、特に制限され
ないが、2個のメモリMA1,MA2によって構成され
ているとみなすことができる。これらのメモリMA1,
MA2へのアドレス信号は、アドレスポインタAP1,
AP2によって形成される。すなわち、メモリMA1は
アドレスポインタAP1により形成されたアドレス信号
によりアクセスされ、メモリMA2はアドレスポインタ
AP2により形成されたアドレス信号によりアクセスさ
れる。上記メモリMA1のリードポート(データが出力
されるポート)は内部バス102に接続され、上記メモ
リMA2のリードポートは内部バス103に接続されて
いる。また、上記内部バス102にはレジスタRaのデ
ータ入力端子と、レジスタRN1のデータ入力端子とが
結合され、上記内部バス103には、レジスタRd並び
に先入れ先出し形式でデータを蓄えるファースト−イン
・ファースト−アウト(以下、FIFOとも称する)メ
モリ107のデータ入力端子が結合されている。FIF
Oメモリ107の読み出しデータは出力ラッチとして機
能するレジスタRbにラッチされる。上記レジスタRa
,Rbの出力データは乗算器105に供給され、その演
算結果は、特に制限されないが、レジスタRcに1命令
サイクル期間保持される。即ち当該レジスタRcはパイ
プライン的な積和演算において乗算結果を算術論理演算
器に与えるときの遅延要素として機能する。このレジス
タRcの出力データは上記レジスタRdの出力データと
共に算術論理演算器106に与えられて演算される。 算術論理演算器106による演算結果はアキュムレータ
として機能するレジスタReに保持され、その値はデー
タメモリ101の他に算術論理演算器106や乗算器1
05にも選択的に供給可能にされている。
【0019】データメモリ101内の例えばメモリMA
1のライトポート(書き込むべきデータが供給されるポ
ート)には、内部バス104が接続されている。レジス
タReからデータメモリ101へのデータの書き込みは
、上述した内部バス104とライトポートとを介して行
なわれる。
【0020】図面が複雑になるのを避けるために、同図
には示されていないが、上記内部バスとメモリとの間、
レジスタと内部バスとの間及び乗算器(演算器を含む)
と内部バスとの間には、スイッチ回路が設けられている
。これらのスイッチ回路は、命令制御ユニット200に
より形成される制御信号によってスイッチ制御される。 これにより、例えば上述したようなレジスタとの選択的
な供給が可能とされている。
【0021】上記内部バス102,104は、特に制限
されないが、インタフェースバス110に結合され、同
バス110には、図示しないホストプロセッサなど外部
との間でデータをパラレルに入出力するためのパラレル
出力レジスタ111及びパラレル入力レジスタ112、
そして、図示しないA/D変換回路やD/A変換回路な
どを含むアナログ回路部とデータをやりとりするための
シリアル入力レジスタ113及びシリアル出力レジスタ
114が結合されている。尚、図面が複雑になるのを避
けるため、同図には示されていないが、上記ディジタル
信号処理プロセッサ1には、その内部状態例えば上記パ
ラレル入力レジスタ112やパラレル出力レジスタ11
1によるデータの入出力状態や割込みマスク状態などを
反映するフラグを保持するステータスレジスタや、ディ
ジタル信号処理プロセッサ1の動作を制御するための各
種条件を保持するコントロールレジスタなどが含まれて
いる。
【0022】ディジタル信号処理プロセッサ1の命令制
御ユニット200は、特に制限されないが、その動作プ
ログラムを複数のマイクロ命令系列として保有するマイ
クロROM201を持ち、上記マイクロROM201か
ら所定の手順でマイクロ命令が読み出される。読み出さ
れたマイクロ命令はマイクロ命令レジスタ205にラッ
チされる。上記レジスタ205にラッチされた命令は、
マイクロ命令デコーダ206に供給され、解読される。 マイクロ命令デコーダ206は、実質的に命令コード解
読部206aとアドレス解読部206bとを有している
とみなすことができる。マイクロ命令の解読により、命
令コード解読部206aからは、各種内部制御信号が出
力されると共に、そのアドレス解読部206bからは、
レジスタなどに対する選択情報が出力される。デコーダ
206からのこれら出力情報に基づいて演算や内部デー
タ転送の制御が行なわれる。上述したように、データメ
モリMA1,MA2のアクセスにおいては、アドレスポ
インタAP1,AP2によってアクセス用のアドレス信
号が形成され、この形成されたアドレス信号によってメ
モリMA1,MA2がアクセスされる。
【0023】上記マイクロROM201はマイクロアド
レスコントローラ202から出力されるアドレス情報に
よってアドレシングされる。マイクロアドレスコントロ
ーラ202は、次に実行されるべきマイクロ命令のアド
レスを保持するレジスタのようなプログラムカウンタ2
03を備える。このプログラムカウンタ203は順次イ
ンクリメントされ、インクリメントされた値がアドレス
信号として上記マイクロROM201に出力される。例
えば演算結果に従ってプログラムの実行を変更できるよ
うに、上記マイクロアドレスコントローラ202は上記
プログラムカウンタ203の値をデータの入出力の状態
や演算結果の状態などに応じて変更する機能を有し、所
定のタイミングでそのプログラムカウンタ203の値を
マイクロROM201に出力する。
【0024】このマイクロアドレスコントローラ202
には、特に制限されないが、上記レジスタ111〜11
4に対するDSP1の外部からのアクセスに呼応して発
生される割込み信号207、アドレス解読部206bか
ら出力される分岐先アドレス若しくはネクストアドレス
のようなアドレス情報208が供給される。割込み信号
207が供給されると、この割込み信号207に対応し
た所定のアドレス情報が上記プログラムカウンタ203
にセットされる。また、分岐先アドレス若しくはネクス
トアドレスが供給されると、これに応じたアドレス情報
が上記プログラムカウンタ203にセットされる。これ
により、割込み信号に応じた命令群、分岐先アドレスに
応じた命令群若しくはネクストアドレスに応じた命令が
マイクロROM201から読み出され実行される。また
、後の説明から理解できると思われるが、上記マイクロ
アドレスコントローラ202には、リピート命令によっ
て繰返し実行される命令やジャンプ命令によってループ
処理を行なうための命令の繰返し実行数を計数したりす
るリピートカウンタ209の出力210が供給される。
【0025】上記マイクロROM201は、本実施例に
従えば、演算命令のスループットを向上させるために同
一命令サイクル中に複数の動作を実行可能な水平型マイ
クロ命令体系に従った動作プログラムを保有する。1命
令サイクルによって並列実行可能な動作は、乗算器10
5のオペレーション、算術論理演算器106のオペレー
ション、データメモリ101並びに各種レジスタに対す
るリード・ライト・アクセスなどとされる。特に制限さ
れないが、積和演算において、乗算は全ての命令サイク
ルで実行可能にされ、その乗算結果をレジスタRcに1
命令サイクル期間蓄え、当該乗算結果を利用した加算を
、次の命令サイクルで行なわれる乗算に並行して行なう
ようになっている。これにより、乗算と加算はパイプラ
イン的に並列実行可能にされ、積和演算は見かけ上1命
令サイクルで行なわれることになる。このような演算手
順において、演算対象データや演算結果データはそれぞ
れ競合することなく並列的に転送される。
【0026】このとき、上記FIFOメモリ107には
、演算の空き時間を利用して、例えば積和演算のための
係数データなどがその処理順にデータメモリ101から
転送される。FIFOメモリ107に対する書込みアク
セスは命令コード解読部206aから出力される信号2
11をライトクロックとしてそれに同期して行なわれる
。FIFOメモリ107に対するリードアクセスは、比
較回路215から出力されるクロック信号をリードクロ
ックとして、それに同期して行なわれる。上記比較回路
215は、リピートカウンタ209に保持されている値
とレジスタRN1に保持されている値とを比較し、両者
が一致した際、上記クロック信号を形成する。上記レジ
スタRN1には、後で図2及び図3を用いて述べている
が、リピート命令を実行する前にデータが設定される。 このデータは、FIFOメモリ107からデータをリー
ドするタイミングを示すデータである。
【0027】リピートカウンタ209は、リピート命令
によって繰返し実行される命令や、ジャンプ命令によっ
てループ処理を行なうための命令の繰返し実行回数を計
数し、その計数値が所定値に達したときに信号210に
より繰返しサイクルから抜け出す指示をマイクロアドレ
スコントローラ202に与える。特に制限されないが、
その指示のタイミングに対して所定命令サイクル期間遅
れたタイミングでリピートカウンタ209のカウント値
が比較回路215に供給される。比較回路215は、こ
のカウント値とレジスタRN1の値とを比較し、カウン
ト値とレジスタRN1の値とが一致した場合、信号21
2をクロック変化させてFIFOメモリ107にリード
アクセスを指示する。これにより、上記指示のタイミン
グに対して所定命令サイクル期間遅れたタイミングで、
FIFOメモリ107からレジスタRbにデータが読み
出され、そこにラッチされる。特に制限されないが、リ
ピート命令は、リピート命令の次に読み出される命令を
実行する回数を示す回数データを有しており、マイクロ
ROM201からこのリピート命令が読み出されると、
そのデコード結果としてマイクロ命令デコーダ206か
ら出力される所定の制御信号に基づいてリピートカウン
タ209に上記回数データに従った所定の繰返し回数が
設定され、引き続いてマイクロROM201から出力さ
れてくる命令が、上記回数データに従った回数だけ繰返
し実行される。この繰返し実行される命令のサイクルに
おいては、各サイクル毎に制御信号214がアサートさ
れ、リピートカウンタ209の値が順次デクリメントさ
れる。リピート命令に続いて読み出されたマイクロ命令
が上記回数データに従った回数だけ繰返し実行されると
、リピートカウンタ209の計数値が零になる。リピー
トカウンタ209の計数値が零になると、リピートカウ
ンタ209から出力されている信号210は、例えばロ
ウレベルからハイレベルへとレベル変化する。これによ
り、上記回数データに従った所定回数だけ上記マイクロ
命令が実行されたことが、マイクロアドレスコントロー
ラ202に通知される。この通知、すなわち信号210
のレベル変化に応答して、上記マイクロアドレスコント
ローラ202は、リピート命令による繰返し命令実行サ
イクルから抜け出して通常の命令実行シーケンスに戻さ
れる。すなわち、プログラムカウンタ203の進歩動作
を再開する。
【0028】上記リピートカウンタ209について更に
説明する。本実施例において、上記リピートカウンタ2
09は、具体的には、カウンタRNを有する。このカウ
ンタRNは、リピート命令の解読によって、命令デコー
ダ206から出力される制御信号に応答して、内部バス
102におけるデータがセットされる。特に制限されな
いが、上述したリピート命令中の上記回数データは、上
記内部バス102に伝えられるため、上記制御信号に応
答して、上記回数データが上記カウンタRNにセットさ
れる。このカウンタRNは、回数データがセットされた
後、上記信号214に基づいた信号をそのクロックとし
てデクリメント動作を行ない、このデクリメント動作に
よって、その保持している値が“0”になると、終了信
号を形成する。この終了信号の形成に応答して上述した
信号210がロウレベルからハイレベルへとレベル変化
する。また、上記カウンタRNの値は、上記比較回路2
15の一方の入力ノードに供給されている。
【0029】上記比較回路215の他方の入力ノードに
は、レジスタRN1の保持値が供給されており、上記比
較回路215は、両方の入力ノードの値が一致すると、
クロック信号212を形成する。すなわち、カウンタR
Nがデクリメント動作をして、その値がレジスタRN1
の値と一致すると、クロック信号212が形成される。
【0030】上記レジスタRN1は、特に制限されない
が、上記内部バス102に接続されており、この内部バ
ス102を介して値がセットされる。上記内部バス10
2は、上記命令制御ユニット200と結合されており、
上記マイクロROM201内のマイクロ命令に保持され
ているデータが上記内部バス102を介して上記レジス
タRN1及びカウンタRNにセットされることが可能に
されている。もちろん、レジスタRN1及びカウンタR
Nには、データメモリ101からのデータがセットされ
るようにしてもよい。
【0031】上記データメモリ101に対するアドレス
信号を形成するアドレスポインタAP1,AP2には、
信号208′,210が供給されている。上記アドレス
ポインタAP1,AP2のそれぞれは、一種のアドレス
カウンタを有しており、上記アドレス解読部206bか
ら出力される信号208′(アドレス信号)が、上記ア
ドレスカウンタにセットされる。上記アドレスカウンタ
は、上記信号210がロウレベルの間、すなわちリピー
ト命令により所定のマイクロ命令が実行されている間、
所定の周期でインクリメント動作を行なう。これにより
、リピート命令によって所定のマイクロ命令が実行され
ている間、アドレスポインタAP1,AP2のそれぞれ
からは、予め設定した値(アドレス)から順次インクリ
メントするアドレス信号が出力される。これにより、メ
モリMA1,MA2からは、所定のマイクロ命令が繰返
し実行されている間、アドレスポインタAP1,AP2
のアドレス信号に従ったデータが内部バスに出力される
【0032】上記アドレスポインタAP1,AP2には
、データメモリ101を任意にアクセスできるように上
述した信号以外の信号も供給されているが、図面を簡単
にするために省略する。
【0033】図2にはFIFOメモリ107を利用して
リピート命令で積和演算を行なう場合のマイクロプログ
ラムの一例が示されている。このマイクロプログラムは
、マイクロROM201に格納されており、次式(1)
で表される積和演算を実行するためのものである。
【0034】       9                  
    19  S=Σ(Ai×B0+Ci)+Σ(A
i×B1+Ci)………(1)      i=0  
                 i=10
【003
5】上式(1)から判るように、この積和演算において
は、i=0〜9まではB0が定数として使用され、i=
10〜19まではB1が定数として使用される。すなわ
ち、積和演算の途中で定数が変更される。また、Ai,
Biはそれぞれ変数を表している。本例においては、値
A0,A1,A2,C0,C1,及びC19と定数B0
,B1のそれぞれは、予めマイクロ命令の中に定義され
ており、値A3〜A19,C2〜C18は、上記データ
メモリ101に格納されている。特に制限されないが、
上記値A3〜A9はデータメモリMA1に予め格納され
、上記値C2〜C18はデータメモリMA2に予め格納
されているものとする。しかしながら、上記マイクロ命
令の中で予め定義されている値及び定数についても、上
記データメモリ101に予め格納しておいて、必要に応
じてレジスタに設定するようにしてもよい。
【0036】上記マイクロプログラムは、マイクロアド
レスコントローラ202によってマイクロ命令I1から
I10へと順に読み出され、実行される。
【0037】マイクロ命令I1は、その命令内に予め定
義されている値“10”を上記レジスタRN1に格納す
る命令である。マイクロ命令I2は、FIFOメモリ1
07に定数“B0”を格納する命令であり、マイクロ命
令I3は、FIFOメモリ107に定数“B1”を格納
する命令である。説明を容易にするために、FIFOメ
モリ107は、2個目のデータが格納されると、1個目
のデータはレジスタRbに移動するようなFIFOメモ
リであるとする。すなわち、1段のFIFOメモリによ
って上記FIFOメモリ107は構成されているものと
する。しかしながら、本発明は、1段のFIFOメモリ
に限定されない。FIFOメモリの段数は2段であって
もそれ以上の段数であってもよい。マイクロ命令I4は
、値“A0”をレジスタRaに格納する命令である。
【0038】前述したように、本実施例のマイクロ命令
は、水平型である。そのため、1つのマイクロ命令で複
数の動作を指示することができる。マイクロ命令I5で
は、次の3個の動作が指示されている。すなわち、乗算
器105に供給されているレジスタRaの値“A0”と
レジスタRbの値“B0”との間で乗算を行ない、乗算
器105による乗算によって得られた値“A0×B0”
をレジスタRcに格納する動作と、レジスタRdに値“
C0”を格納する動作と、レジスタRaに新たな値“A
2”を格納する動作とが指示されている。
【0039】マイクロ命令I6は、次の4つの動作を指
示する命令である。すなわち、算術論理演算器(以下、
ALUとも称する)106に供給されているレジスタR
cの値“A0×B0”とレジスタRdの値“C0”との
間で加算を行ない、ALU106による加算動作によっ
て得られた値“A0×B0+C0”をレジスタReに格
納する動作と、乗算器105に供給されているレジスタ
Raの値“A1”とレジスタRdの値“B0”との間で
乗算を行ない、これにより得られた値“A1×B0”を
レジスタRcに格納する動作と、レジスタRdに新たな
値“C1”を格納する動作と、レジスタRaに新たな値
“A2”を格納する動作とが指示されている。
【0040】マイクロ命令I7は、この命令に続いて読
み出されるマイクロ命令I8を所定の回数繰り返すこと
を指示するリピート命令である。本実施例においては、
このリピート命令に繰返し実行する回数を示すデータと
、アドレスポインタに設定するアドレス(ベースアドレ
ス)を示すデータとが予め定義される。本例においては
、繰返し回数を“17”に設定するデータと、データメ
モリMA1のベースアドレスとして“3”を、またデー
タメモリMA2のベースアドレスとして“2”を設定す
るようなデータがリピート用のマイクロ命令I7に含ま
れている。そのため、このマイクロ命令I7の実行によ
って、上記リピートカウンタ209内のカウンタRNに
は“17”が格納され、上記アドレスポインタAP1内
のアドレスカウンタ(図示せず)には“3”が格納され
、アドレスポインタAP2内のアドレスカウンタ(図示
せず)には“2”が格納される。
【0041】上記リピート命令I7によって繰返し実行
が指示されるマイクロ命令I8は、次の4つの動作を指
示する。すなわち、ALU106に供給されているレジ
スタRcの値とレジスタRdの値とを加算し、その加算
の結果をレジスタReに格納する動作と、乗算器105
に供給されているレジスタRaの値とレジスタRbの値
とを乗算し、その乗算結果をレジスタRcに格納する動
作と、アドレスポインタAP2から出力されているアド
レス信号により指示されるデータメモリMA2の番地に
保持されているデータをレジスタRdに格納する動作と
、アドレスポインタAP1から出力されているアドレス
信号により指示されるデータメモリMA1の番地に保持
されているデータをレジスタRaに格納する動作とが指
示される。ここで、アドレスポインタAP1,AP2の
それぞれの内部の上記アドレスカウンタはマイクロ命令
I8が実行される毎に1ずつインクリメントされるため
、マイクロ命令I8が実行される毎に、上記アドレスポ
インタAP1,AP2のそれぞれは、インクリメントさ
れたアドレス信号を出力する。
【0042】リピート命令I7によって指示された回数
(17回)だけ、上記マイクロ命令I8が繰返し実行さ
れると、次にマイクロ命令I9が実行される。マイクロ
命令I9が実行される直前には、図3を用いて後で説明
するが、レジスタRaには値“A19”が格納され、レ
ジスタRbには定数“B1”が格納され、レジスタRc
には値“A18×B1”が格納され、レジスタRdには
値“C18”が格納されている。各レジスタに上述のよ
うな値が格納されている状態で、マイクロ命令I9は、
次の3個の動作を指示する。すなわち、ALU106に
供給されているレジスタRcの値とレジスタRdの値“
C18”との間で加算動作を行ない、その加算結果“A
18×B1+C18”をレジスタReに格納する動作と
、乗算器105に供給されているレジスタRaの値“A
19”とレジスタRbの値“B1”との間で乗算動作を
行ない、その乗算結果“A19×B1”をレジスタRc
に格納する動作と、レジスタRcに新たな値“C19”
を格納する動作とが指示される。
【0043】次に実行されるマイクロ命令I10は、A
LU106に供給されているレジスタRcの値“A19
×B1”とレジスタRdの値“C19”との間で加算動
作を行ない、その加算結果を行ない、その加算結果をレ
ジスタReに格納することを指示する。
【0044】次に図2に示したマイクロプログラムが実
行された際のDSPの演算動作について、図3を用いて
説明する。
【0045】まず、ステップS1において、上記マイク
ロ命令I1が実行される。これにより、定数を変更する
タイミングと定めるデータが、バス102を介して命令
制御ユニット200からレジスタRN1にセットされる
。本例の場合には、値“10”が上記レジスタRN1に
セットされる。ステップS2及びS3で上記マイクロ命
令I2及びI3が実行される。これにより、内部バス1
03を介して命令制御ユニット200からFIFOメモ
リ107へ定数データB0,B1の順にデータが供給さ
れる。前述のようにFIFOメモリ107は、1段のF
IFOメモリとされているため、定数B1が供給される
ことにより、先にFIFOメモリ107に供給された定
数B0は読み出され、レジスタRbに移動する。図3に
おいてFIFOメモリ107はRb′として示されてい
る。
【0046】次にステップS4,S5及びS6で上記マ
イクロ命令I4,I5及びI6がそれぞれ実行される。 ステップS4が実行されるサイクルでは、値“A0”(
データA0)がレジスタRaにセットされる(サイクル
S4)。ステップS5が実行されるサイクルでは、デー
タA0と定数“B0”(係数データB0)の乗算が行な
われて、その演算結果がレジスタRcにラッチされると
共に、これに並行してデータA1がレジスタRaに、そ
してデータC0がレジスタRdに転送される(サイクル
S5)。
【0047】サイクルS5までの処理あるいは次に実行
されるサイクルS6までの処理は、これの後に継続して
繰返し実行されるべきマイクロ命令に対する前処理とみ
なすことができる。
【0048】ステップS6で実行されるサイクルでは、
上記図2で示したマイクロ命令I6の動作が実行される
【0049】ステップS7で実行されるサイクルにおい
ては、上記リピート命令I7がマイクロROM201か
ら読み出され、解読されて実行される。すなわち、その
解読結果に従って、リピートカウンタ209内のカウン
タRNに、リピート命令内のデータ“17”がプリセッ
トされると共に、アドレスポインタAP1内のアドレス
カウンタにリピート命令内のデータ“3”がセットされ
、またアドレスポインタAP2内のアドレスカウンタに
リピート命令内のデータ“2”がセットされる。これに
より、データメモリMA1には、アドレスポインタAP
1からアドレス信号“3”が供給され、デーメモリMA
2にはアドレスポインタAP2からアドレス信号“2”
が供給される。そのため、次のステップS8においては
、データメモリMA1から、アドレス信号“3”により
指示された番地からデータ(本例の場合、A3)が読み
出され、データメモリMA2からは、アドレス信号“2
”により指示された番地からデータ(本例の場合、C2
)が読み出される。
【0050】ステップS7に続くステップS8において
、マイクロROM201から読み出されるマイクロ命令
I8が上記のように繰返し実行される。
【0051】この読み出された水平型のマイクロ命令I
8の解読結果に基づくサイクルS8では、サイクルS6
でレジスタRcにラッチされていた乗算結果A0×B0
に上記サイクルS6でレジスタRdに転送されたデータ
C1を加算してその結果をレジスタReにラッチする処
理、レジスタRaへデータメモリMA1からデータA3
を転送する処理、乗算器105によるA2×B0の乗算
並びにレジスタRcへのその演算結果の転送、そしてレ
ジスタRdに対してデータメモリMA2からのデータC
2の転送がそれぞれ並行して行なわれる。尚、レジスタ
Reにラッチされた積和演算の結果A1×B0+C1は
、例えば次の演算サイクルの開始と共に、例えばデータ
メモリ101に戻される。例えば上記マイクロ命令I8
の所定フィールドには、プログラムカウンタ203の値
を更新しない旨の情報が含まれ、その解読結果が信号2
08を介してマイクロアドレスコントローラ202に与
えられる。この指示は信号214を介してリピートカウ
ンタ209に与えられ、カウンタ209内のカウンタR
Nはその保有計数値を1だけデクリメントする。マイク
ロアドレスコントローラ202はカウンタRNの更新さ
れた計数値が零になっているか否かを所定のタイミング
をもって信号210から検出する。カウンタRNの更新
された値が零になっていない場合、マイクロアドレスコ
ントローラ202は、プログラムカウタンタ203の値
を更新せず、マイクロROM201から再び同じマイク
ロ命令I8を読み出す。また、カウンタRNの更新され
た値と上記レジスタRN1に保持されている値とが比較
回路215によって比較される。この更新された値とレ
ジスタRN1の値とが一致した場合、比較回路215か
らパルス信号212が出力される。これに対して、不一
致の場合には、比較回路215からはパルス信号が出力
されない。以下同様にしてステップS14まで同じマイ
クロ命令I8を繰返し実行してパイプライン的に積和演
算を繰返していく。
【0052】ステップS14において、マイクロ命令I
8が実行されると、上記カウンタRNの更新値は“10
”となり、上記レジスタRN1に保持されている値と一
致する。そのため、上記比較回路215からパルス信号
212が出力される。このパルス信号212は、上記F
IFOメモリ107のリードクロックとなっているため
、パルス信号212の供給に応答して、上記FIFOメ
モリ107から係数データ(定数)B1が読み出され、
レジスタRbにラッチされる。
【0053】上記カウンタRNの更新値は、零になって
いないため、マイクロ命令I8は引き続き、繰返して実
行される。しかしながら、ステップS14が実行された
サイクルにおいて、パルス信号212が形成されたため
、ステップS15において、FIFOメモリ107から
係数データB1が読み出され、レジスタRbには、係数
データB0のかわりに、係数データB1がラッチされる
。このステップS15においては、乗算器105に供給
されているレジスタRbの係数データB0とレジスタR
aのデータA9との乗算が行なわれているため、レジス
タRcには、データA9×B0がラッチされる。
【0054】ステップS15において、新たな係数デー
タB1がレジスタRbにラッチされるため、ステップS
16からは、係数データとしてB1を用いた積和演算が
行なわれる。以下同様にしてステップS24まで同じマ
イクロ命令I8が繰返し実行される。
【0055】ステップS24において、マイクロ命令I
8が解読され、その解読結果に従って信号208でプロ
グラムカウンタ203の値を更新しない旨の情報がマイ
クロアドレスコントローラ203に通知されると、これ
に基づいてリピートカウンタ209内のカウンタRNが
デクリメント動作され、その計数値が零にされる。係数
値が零になると、カウンタRNは信号210をハイレベ
ルにする。このハイレベルの信号210に応答して、マ
イクロアドレスコントローラ202は、プログラムカウ
ンタ203の値を進歩させる。これにより繰返し実行さ
れてきたマイクロ命令I8の次のマイクロ命令I9を指
示するアドレス信号がマイクロアドレスコントローラ2
02から出力される。
【0056】このようにして次のステップS25におい
ては、マイクロROM201から新たに読み出されたマ
イクロ命令I9の解読結果に基づく実行が行なわれる(
サイクルS25)。このサイクルS25では、前のステ
ップS24でレジスタRaにラッチされたデータA19
と係数データB1の乗算、ステップS24でレジスタR
cにラッチされた乗算結果A18×B1と、同ステップ
S24でレジスタRdに転送されたデータC18との加
算、そしてレジスタRdに対するデータC19の転送が
それぞれ並行して行なわれる。
【0057】これに引き続くステップS26では、マイ
クロ命令I10がマイクロROM201から読み出され
、実行される(サイクルS26)。このサイクルS26
では、レジスタRcにラッチされていた乗算結果A19
×B1とレジスタRdに転送されていたデータC19と
の加算が行なわれる。
【0058】サイクルS25,S26の処理はそれ以前
に繰返し実行された復合命令の実行に対する後処理と考
えることができる。
【0059】上記レジスタRN1,比較回路215及び
FIFOメモリ107を設けずに、係数データの変更の
たび毎に、レジスタRbに係数データをマイクロ命令か
ら直接供給するようにしたDSPの動作について次に説
明する。図4には、このようなDSPに対して、上述し
た式(1)の積和演算を実行させるためのマイクロプロ
グラムの一例が示されている。また、図5には、図4の
マイクロプログラムを実行した際の動作が示されている
。図4及び図5において、上述した図2及び図3と同一
の部分には同じ符号が付されている。すなわち、図4に
おいて、Ra〜Reは、上述したようなレジスタを示し
ており、B0,B1は上述した係数データを示しており
、A0〜A19及びC0〜C19は上記変数データを示
している。また、RNはカウンタRNを示しており、本
例ではマイクロ命令I5とI13の実行によってカウン
タRNに7が設定される。MA1及びMA2のそれぞれ
は上記アドレスポインタAP1,AP2を示しており、
マイクロ命令I5の実行によりアドレスポインタAP1
には3が設定され、AP2には2が設定される。またマ
イクロ命令213の実行によって、アドレスポインタA
P1には13が設定され、アドレスポインタAP2は1
2が設定される。図4において、記号“←”は、データ
の格納を示している。例えばマイクロ命令I1における
上記記号“←”は、レジスタRbへデータB0を格納す
ることを表している。また、図4において、記号“←(
MAi)”は、アドレスポインタAPiによって示され
たアドレスに格納されているデータをレジスタへ格納す
ることを示している。例えばマイクロ命令I6における
左側の上記記号“←(MAi)”は、アドレスポインタ
AP1によって形成されたアドレス信号により指示され
ているメモリMA1のアドレスに保持されているデータ
をレジスタRaへ格納することを表している。この図4
及び図5に示されているプログラム及び動作については
、上記図2及び図3の説明から容易に理解できるので、
その説明は省略する。
【0060】上記したレジスタRN1,比較回路215
及びFIFOメモリ107を有していないDSPにおい
ては、図4及び図5から理解できるように、係数データ
を“B0”から“B1”へ切り換えるために、マイクロ
命令I9が必要とされる。また、パイプライン処理を一
時的に終了させるために、マイクロ命令I6〜I8が必
要とされ、パイプライン処理を再開するためにマイクロ
命令I10〜I12が必要とされる。さらに、係数デー
タを変更した後、積和演算を行なうために、リピート命
令I13とリピートされるマイクロ命令I14が必要と
される(図4参照)。そのため、同じ積和演算を行なう
場合、上述した図1の実施例によれば、マイクロプログ
ラムを容易に小さくできる。また、図1の実施例によれ
ば、パイプライン処理を一時的に終了させなくてよいた
め、処理の高速化を図ることができる(図5及び図3参
照)。
【0061】次に、本発明の他の実施例について説明す
る。本実施例のDSPは、図1に示したDSPと類似し
ており、特に制限されないが、図1のDSPからレジス
タRN1と比較回路215を除き、リピートカウンタ2
09によって上記クロック信号212が形成されるよう
にされている。以下、本実施例を図11を用いて説明す
る。
【0062】図11にはFIFOメモリ107を利用し
てリピート命令で積和演算を行なう場合の演算手順の一
例が示されている。
【0063】例えばデータメモリ101に格納されてい
るデータAi,DkとFIFOメモリ107に格納され
ている係数データBjとを用いて、Ai×Bj+Dk(
i,j,kは正の整数)なる積和演算を、途中で係数デ
ータBjを変更して行なう場合を一例に説明する。
【0064】図11において、最初の係数データB1は
上記FIFOメモリ107から読み出されてレジスタR
bにラッチされているものとする。この段階でリピート
命令がマイクロROM201から読み出されると、その
解読結果に従って、リピートカウンタ209がプリセッ
トされると共に、それに後続する最初のマイクロ命令に
基づいてデータA1がデータメモリ101からレジスタ
Raにセットされ(サイクルS1)、次のマイクロ命令
でデータA1と係数データB1の乗算が行なわれてその
演算結果がレジスタRcにラッチされると共にこれに並
行してデータA2がデータメモリ101からレジスタR
aに、そしてデータD1がデータメモリ101からレジ
スタRdに転送される(サイクルS2)。
【0065】サイクルS1,S2の処理はこれに継続す
る繰返し実行されるべき復合命令の実行に対する前処理
として位置付けられる。
【0066】次に読み出される復合若しくは水平型のマ
イクロ命令の解読結果に基づくサイクルS3では、サイ
クルS2でレジスタRcにラッチされていた乗算結果A
1×B1に上記サイクルS2でレジスタRdに転送され
たデータD1を加算してその結果をレジスタReにラッ
チする処理、レジスタRaへのデータA3の転送、乗算
器105によるA2×B1の乗算並びにレジスタRcへ
のその演算結果の転送、そしてレジスタRdに対するデ
ータD2の転送がそれぞれ並行して行なわれる。尚、レ
ジスタReにラッチされた積和演算A1×B1+D1の
演算結果は次の演算サイクルの開始と共に例えばデータ
メモリ101に書き込まれる。このサイクルS3のため
のマイクロ命令の所定フィールドには、プログラムカウ
ンタ203の値を更新しない旨の情報が含まれ、その解
読結果が信号208を介してマイクロアドレスコントロ
ーラ202に与えられる。この指示は信号214を介し
てリピートカウンタ209に与えられることにより、同
カウンタ209はその保有計数値を1だけデクリメント
する。 マイクロアドレスコントローラ202はその更新された
計数値が零になっていないことを所定のタイミングをも
って信号210から検出することにより、プログラムカ
ウンタ203を更新せず、マイクロROM201から再
び同じマイクロ命令を読み出す。以下同様にしてサイク
ルS8まで同じ命令が繰返し実行され、パイプライン的
に積和演算が繰返される。
【0067】サイクルS8のためのマイクロ命令の解読
結果に従って信号208でプログラムカウンタ203の
値を更新しない旨の情報がマイクロアドレスコントロー
ラ202に通知されたとき、これに基づいてリピートカ
ウンタ209のデクリメント動作に基づいてその計数値
が零にされ、その状態がマイクロアドレスコントローラ
202に信号210で通知されると、同コントローラ2
02はプログラムカウンタ203の値を更新して、繰返
し実行されてきた命令の次のマイクロ命令のアドレスを
指定する。
【0068】このようにしてマイクロROM201から
次に読み出されたところのマイクロ命令の解読結果に基
づくサイクルS9では、サイクルS8でレジスタRaに
ラッチされたデータA8と係数データB1との乗算、サ
イクルS8でレジスタRcにラッチされた乗算結果A7
×B1と同サイクルS8でレジスタRdに転送されたデ
ータD7との加算、そしてレジスタRdに対するデータ
D8の転送がそれぞれ並行して行なわれる。
【0069】これに引き続くサイクルS10では、マイ
クロプログラム制御により、サイクルS9でレジスタR
cにラッチされた乗算結果A8×B1と同サイクルS9
でレジスタRdに転送されたデータD8との加算が行な
われる。
【0070】サイクルS9,S10の処理はそれ以前に
繰返し実行された復合命令の実行に対する後処理として
位置付けられる。斯る後処理の最終サイクルにおいて、
リピートカウンタ209は信号212をクロック変化さ
せ、これをリードクロックとして認識するFIFOメモ
リ107から次の係数データB2を読み出して、これを
レジスタRbにラッチさせる。尚、リピートカウンタ2
09による信号212のクロック変化タイミングは、信
号210でリピートカウンタ209の計数値が零になっ
たことを検出した後、DSPの動作基準クロックなどを
利用して計時することによって得られる。
【0071】したがって、前記係数データB2を適用し
た同様の積和演算を次のサイクルS11から、再びリピ
ート命令を用いて同じように開始することができるよう
になる。
【0072】仮にFIFOメモリ107が設けられず、
レジスタRbに直接係数データが内部転送される構成の
場合には、図12に示されているように、サイクルS1
0の処理(最終後処理)の次のサイクルS11で、切り
換えられるべき係数データB2をデータメモリ101か
らレジスタRbに内部転送する処理を、データ転送用マ
イクロ命令を実行して独立的に行なわなければならない
。そのため係数データをB2に切り換えて実行されるべ
き、リピート命令による次の積和演算は、図11に比べ
て1サイクル遅れたサイクルS12からでなければ開始
することができない。
【0073】FIFOメモリ101を持たない構成にお
いて、図11と同様の命令サイクル数で、係数データの
切り換えを伴う積和演算をリピート命令を用いて行なお
うとすると、最初の命令サイクルでデータAiをレジス
タRaに、データBiをレジスタRbに内部転送する並
列的なデータ転送のための新たなマイクロ命令を追加し
なければならなくなり、リピート命令を利用して、反復
的な処理に対するプログラムステップ数を減らすという
要求を充分に満足させることができない。さらに言うな
らば、図11のサイクルS1からS10までの各命令サ
イクルで利用するマイクロ命令は基本的に同一にするこ
ともできるが(この場合にはサイクルS1,S2でレジ
スタReに得られる演算結果は実質的に無視されること
になる)、データAiをレジスタRaに、データBiを
レジスタRbに内部転送する並列的なデータ転送のため
の新たなマイクロ命令を追加すると、Ai×Bj+Dk
の積和演算をリピート命令で処理するためのマイクロ命
令の総数は極端に増えることになり、フィルタリングな
どのディジタル信号処理のための全体的な動作プログラ
ムの容量を著しく増加させてしまう。
【0074】第6図には図1のバス102と103を単
一のバス320に置き換えた場合の実施例が示されてい
る。
【0075】このディジタル信号処理プロセッサ3に含
まれる演算ユニット300は内部バス320の点を除け
ば図1と同じである。斯る構成における命令制御ユニッ
ト400はバス320上でデータが衝突しないような演
算手順やデータ転送手順を実行する。すなわち、データ
の衝突が生じないように構成された動作プログラムがマ
イクロROM401に格納されており、命令制御ユニッ
ト400にはマイクロアドレスコントローラ402、プ
ログラムカウンタ403、マイクロ命令レジスタ405
、マイクロ命令デコーダ406、リピートカウンタ40
9などが含まれている。その他の構成は図1と実質的に
同じであり、同一機能を有する回路ブロックには同じ符
号を付してその構成の詳細な説明は省略する。尚、図6
の構成ではレジスタRa,Rdがバス320を共有する
ため、双方へのデータ転送を並列化することはできない
【0076】図7には図6のFIFOメモリ107を利
用してリピート命令で積和演算を行なう場合の演算手順
の一例が示されている。同図を用いて、本実施例の場合
におけるFIFOメモリ107のリードアクセスタイミ
ングを説明する。
【0077】例えばデータメモリ101に格納されてい
るデータAi,Dkと、FIFOメモリ107に格納さ
れている係数データBjとを用いて、Ai×Bj+Dk
(i,j,kは正の整数)なる積和演算を実行し、その
実行途中で係数データBjを変更する場合を一例として
説明する。
【0078】図7において、最初の係数データB1は上
記FIFOメモリ107から読み出されてレジスタRb
にラッチされているものとする。この段階でリピート命
令がマイクロROM401から読み出されると、その解
読結果に従って、リピートカウンタ409がプリセット
されると共に、それに後続する最初のマイクロ命令に基
づいてデータA1がデータメモリ101からレジスタR
aにセットされる(サイクルT1)。当該サイクルT1
の処理はこれに継続する繰返し実行されるべき復合命令
の実行に対する前処理として位置付けられる。
【0079】これ以降に繰返し実行される命令は、Ai
×Bjの乗算とデータDkの転送を並列的に行なう第1
マイクロ命令と、乗算結果Ai×Bjに対するデータD
kの加算とデータAi+1の内部転送を並列的に行なう
第2マイクロ命令とを合わせて一つの単位とする。この
ときのデータメモリ101へのアクセスは、アドレスポ
インタAPによって形成されるアドレスによって行なわ
れる。データメモリ101に対するアドレスは、アドレ
スポインタAPによって順番に形成されるようになって
いる。
【0080】次に読み出されるマイクロ命令の解読結果
に基づくサイクルT2では、サイクルT1でレジスタR
aに転送されたデータA1と係数データB1との乗算が
行なわれてその演算結果がレジスタRcにラッチされる
と共に、これに並行してデータD1がデータメモリ10
1からレジスタRdに転送される。次のサイクルT3で
は、サイクルT2でレジスタRcにラッチされていた乗
算結果A1×B1に上記サイクルT2でレジスタRdに
転送されたデータD1を加算してその結果をレジスタR
eにラッチする。尚、レジスタReにラッチされた積和
演算A1×B1+D1の演算結果は次の演算サイクルの
開始と共に例えばデータメモリ101に書き込まれる。
【0081】上記サイクルT2で利用される第1マイク
ロ命令のネクストアドレスフィールドにはサイクルT3
に利用される第2マイクロ命令のアドレス指定情報が含
まれ、第2マイクロ命令のネクストアドレスフィールド
には第1マイクロ命令のアドレス指定情報が含まれる。 図7においてマイクロ命令のネクストアドレス指定情報
は408で代表される経路を通してマイクロアドレスコ
ントローラ402に与えられる。したがって、プログラ
ムカウンタ403の値は、交互に第1,第2マイクロプ
ログラムを指定するように変化される。プログラムカウ
ンタ403の値が更新される毎に信号414が変化され
、その変化毎にリピートカウンタ409はその保有計数
値を1だけデクリメントしていく。マイクロアドレスコ
ントローラ402は、その更新された計数値が零になっ
ていないことを所定タイミングをもって信号410で検
出すると、プログラムカウタンタ403を、ネクストア
ドレス情報に従ったROMアドレスに変化させる。以下
同様にしてサイクルS8まで同じ命令を繰返し実行して
、パイプライン的に積和演算を繰返していく。
【0082】リピートカウンタ409の計数値はその初
期設定値に従ってサイクルT10で零にされる。これを
マイクロアドレスコントローラ402が信号410で検
出することにより、プログラムカウンタ403の値は上
記2種類の命令アドレスとは異なる値に書き換えられ、
次のサイクルT11には、第1及び第2マイクロ命令と
は異なる命令がマイクロROM401から読み出され、
該マイクロ命令の解読結果に従ってA5×B1の値にD
5を加算する後処理が行なわれ。斯る後処理において、
リピートカウンタ409は信号412をクロック変化さ
せ、これをリードクロックとして認識するFIFOメモ
リ107から次の係数データB2が読み出され、これが
レジスタRbにラッチされる。
【0083】したがって、係数データB2を適用した同
様の積和演算を次のサイクルT12からリピート命令を
用いて同じように開始することができるようになる。
【0084】仮にFIFOメモリ107が設けられず、
レジスタRbに直接係数データが内部転送される構成の
場合には、図8に示されるように、サイクルT11にお
ける後処理の次のサイクルT12で、切り換えられるべ
き係数データB2をデータメモリ101からレジスタR
bに内部転送する処理を、独立的なデータ転送用マイク
ロ命令を実行して行なわなければならない。そのため係
数データB2を切り換えて実行されるべき、リピート命
令による次の積和演算は、図7に比べて1サイクル遅れ
たサイクルT13からでなければ開始することができな
い。
【0085】このような内部バス構成を有するディジタ
ル信号処理プロセッサにおいても、内部データ転送の処
理に対するハードウェア的な制約はあるものの、前述し
た実施例と同様に、ソフトウェアの増大を抑えながら簡
単に積和演算効率を向上させることができる。
【0086】また、上記図6の実施例においては、上記
図1に示されたレジスタRN1及び比較回路215を有
していないDSPが示されているが、上記図1と同様に
レジスタRN1及び比較回路215を設けてもよい。こ
の場合、上記信号412は、リピートカウンタ409内
のカウンタRN(図示されていない)の値とレジスタR
N1の値とを比較する比較回路215によって形成され
る。また、この場合には、図3に示された動作に合うよ
うに、上記図7の動作をアレンジすることが望ましい。 すなわち、図2のマイクロプログラムに類似したマイク
ロプログラムをマイクロROM401に格納することが
望ましい。また、図6において、408′は、アドレス
ポインタAPに設定するアドレスデータを供給するライ
ンを示している。
【0087】図9A及び図9Bには、本発明を適用した
DSPを用いたシステムが示されている。また、図10
には、図9A及び図9Bに示されたシステムの動作を説
明する説明図である。
【0088】図9Aにおいて、DSP1,DSP2は、
本発明を適用したDSPを示している。これらのDSP
1及びDSP2は、同一のチップ上に形成してもよいし
、またDSP1のチップとDSP2のチップを同一のプ
リント基板上に形成してもよい。これらのDSP1とD
SP2は、特に制限されないが、図10に示されている
ように、所定の周期(T)で演算動作を行なう。図10
において、DSP1及びDSP2はOPとして示されて
いる期間において、積和演算を行ない、それ以外の期間
(CT)において、DSP1からDSP2への積和演算
結果の転送及びFIFOメモリ107への係数データの
転送が行なわれる。
【0089】また、図9Bにおいては、DSPチップ(
DSP)とA/D変換器(A/D)とが同一のプリント
基板上に形成されている。図9BのDSPは、特に制限
されないが、A/D変換器からのデータADDを受け、
このデータADDに対して積和演算のような演算を行な
う動作(OP)とA/D変換器(A/D)の動作を制御
する動作(CT)とを行なう。このDSPは、図10に
示されているように、OPの期間において、積和演算の
動作を行ない、CTの期間においてA/D変換器の動作
を制御する動作とFIFOメモリ107への係数データ
の転送動作を行なう。もちろん、このシステムにおいて
も、DSPとA/Dとを同一チップ上に形成するように
してもよい。
【0090】また、DSP1とDSP2との間のデータ
転送は、専用のレジスタをDSPに設け、それを介して
データ転送を行なうようにしてもよいし、シリアルレジ
スタ(113,114)又はパラレルレジスタ(111
,112)を介してデータ転送を行なうようにしてもよ
い。DSPとA/D変換器(A/D)との間のデータ転
送に関しても同様である。
【0091】上記各実施例のディジタル信号処理プロセ
ッサによれば演算時間の短縮化が図れるため、図10に
示されているように、他のDSP,A/D変換器などの
デバイスとのデータ転送動作あるいは制御動作を実行す
る期間を長くすることができる。また、この期間を利用
して、FIFOメモリ107への係数データを予め設定
しておくことができる。
【0092】上述した実施例によれば少なくとも以下の
ような効果が得られる。
【0093】(1)リピート命令を利用した一連の積和
演算において、係数データを切り換える場合に当該切り
換えられるべき係数データを所定のレジスタに内部転送
するための独立したマイクロ命令を実行しなくてもよく
なるから、その分だけ演算効率が向上する。
【0094】(2)同一命令サイクルでデータAiをレ
ジスタRaに、データBiをレジスタRbに内部転送す
るというような並列的なデータ転送のための新たなマイ
クロ命令を追加しなくてもよい。
【0095】(3)リピート命令を利用することによっ
て反復的な処理に対するプログラムステップ数を減らす
という要求が満足される。
【0096】(4)上記演算効率の向上という効果を得
るにあたり、ディジタル信号処理のための全体的な動作
プログラムの容量増加を抑えることができる。
【0097】以上本発明を実施例に基づいて具体的に説
明したが、本発明はそれに限定されるものではなく、そ
の要旨を逸脱しない範囲において種々変更可能であるこ
とは言うまでもない。
【0098】例えば上記実施例では乗算器の一方の入力
にFIFOメモリを配置したが、算術論理演算器側にも
配置することができる。また演算ユニットに含まれるレ
ジスタや演算器とバスの接続構成は上記実施例に限定さ
れず、適宜変更することができる。さらに、FIFOメ
モリはパラレル−イン・シリアル−アウト形式のシフト
レジスタなどによって構成することもできる。また、F
IFOメモリなどに対するリード制御はリピートカウン
タを流用する場合に限定されない。例えばリピート命令
をサポートせず、ジャンプによるループ処理で命令を繰
返し実行するような場合にはその繰返し数を計数する回
路を流用したり、あるいはそれ専用のカウンタなどを設
けるようにしてもよい。
【0099】また、命令制御ユニットの構成も、要求さ
れる機能若しくは能力に応じて適宜変更することができ
、高機能若しくは汎用性を増す場合には割込みに対する
処理の多様化、更には割込みネクストレベルの増加など
を図ることができる。
【0100】以上の説明では主として本発明者によって
なされた発明をその背景となった利用分野であるディジ
タル信号処理プロセッサに適用した場合について説明し
たが、本発明はそれに限定されず、ディジタル信号処理
部にA/D,D/A変換部を接続したアナログ・ディジ
タル混載集積回路、更には積和演算のように同種の命令
を反復的に繰返し実行する機能を有する各種データ処理
用の半導体集積回路に広く適用することができる。
【0101】
【発明の効果】本願において開示される発明のうち代表
的なものによって得られる効果を簡単に説明すれば下記
の通りである。
【0102】すなわち、所定のの演算シーケンスを反復
実行してパイプライン的な演算処理を行っている途中で
演算対象情報を変化させる場合に、先行するパイプライ
ン的な一連の処理の完了を待たずに次の一連の処理のた
めの情報を、予めその情報を処理順に保有する記憶手段
から読み出して演算処理に供することができるから、所
定の演算シーケンスを反復実行するようなパイプライン
的な演算処理効率を向上させることができるという効果
がある。
【0103】さらに演算の繰返し回数などの計数値に基
づいて上記記憶手段からのデータの供給タイミングを制
御することにより、そのようなデータの供給を直接命令
によって指示しなくても済み、これにより、上記演算対
象情報の切り換えに際してソフトウェアに依存すること
なく極めて簡単に行うことができる。
【0104】上記夫々の効果により、パイプライン的に
所定の演算を繰返し実行する演算処理に対して、ソフト
ウェアの負担を軽減することができるという効果を得る
【図面の簡単な説明】
【図1】図1は本発明の一実施例に係るディジタル信号
処理プロセッサのブロック図である。
【図2】図2は演算途中で係数データを変更して繰返し
積和演算を図1のディジタル信号プロセッサに行なわせ
るためのマイクロプログラムの一例を示した概念図であ
る。
【図3】図3は図2のマイクロプログラムを実行した場
合のディジタル信号処理プロセッサにおけるパイプライ
ン的な演算処理の動作説明図である。
【図4】図4は図1の構成においてFIFOメモリを省
いた場合における上記図2に対応するマイクロプログラ
ムの一例を示す概念図である。
【図5】図5は図4のマイクロプログラムを実行した場
合のパイプライン的な演算処理の動作説明図である。
【図6】図6は本発明の他の実施例に係るディジタル信
号処理プロセッサのブロック図である。
【図7】図7は演算途中で係数データを変更して繰返し
積和演算を行なう場合のパイプライン的な演算処理の動
作説明図である。
【図8】図8は図6の構成においてFIFOメモリを省
いた場合の上記図7に対応する演算処理の動作説明図で
ある。
【図9A】図9Aは本発明のディジタル信号プロセッサ
を用いたシステムの一実施例を示すブロック図である。
【図9B】図9Bは本発明のディジタル信号プロセッサ
を用いたシステムの他の実施例を示すブロック図である
【図10】図10は上記図9A及び図9Bのシステム動
作の説明図である。
【図11】図11は演算途中で係数データを変更して繰
返し積和演算を行なう場合のパイプライン的な演算処理
の動作説明図である。
【図12】図12はFIFOメモリを有しないDSPを
用いて繰返し積和演算を行なう場合のパイプライン的な
演算処理の動作説明図である。
【符号の説明】
1  ディジタル信号処理プロセッサ 3  ディジタル信号処理プロセッサ 100  演算ユニット 101  データメモリ 102,103,104  内部バス 105  乗算器 106  算術論理演算器 107  FIFOメモリ Ra,Rb,Rc,Rd,Re  レジスタ200  
命令制御ユニット 201  マイクロROM 203  プログラムカウンタ 202  マイクロアドレスコントローラ209  リ
ピートカウンタ RN  カウンタ 215  比較回路 RN1  レジスタ 300  演算ユニット 320  内部バス 400  命令制御ユニット 401  マイクロROM 402  マイクロアドレスコントローラ403  プ
ログラムカウンタ 409  リピートカウンタ

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】  パイプライン的に所定の演算を繰返し
    実行する演算処理装置であって、処理されるべき順番に
    データを保持するファースト−イン・ファースト−アウ
    ト・メモリと、第1データを出力するデータ供給手段と
    、上記第1データと上記ファースト−イン・ファースト
    −アウト・メモリからのデータとを受け、該第1データ
    と上記ファースト−イン・ファースト−アウト・メモリ
    からのデータとの間で所定の演算を行なう演算手段と、
    上記ファースト−イン・ファースト−アウト・メモリに
    対して、それに保持されているデータを、パイプライン
    的に繰返し実行される演算処理の進行状況に応じて、上
    記演算手段に供給することを指示する指示手段と、を有
    して成るものであることを特徴とする演算処理装置。
  2. 【請求項2】  上記指示手段は、上記所定の演算の実
    行回数を計数するカウンタと、上記カウンタの値が所定
    値に達したとき上記指示を形成する手段とを有して成る
    ものであることを特徴とする請求項1記載の演算処理装
    置。
  3. 【請求項3】  1チップに形成され、パイプライン形
    式でディジタル信号処理を行なうディジタル信号処理プ
    ロセッサであって、連続して繰返し実行される所定の演
    算の実行回数を計数する計数手段と、演算の順番に従っ
    てデータを保持し、上記計数手段の計数値が所定値に達
    したとき、保持されているデータを出力するファースト
    −イン・ファースト−アウト・メモリと、データを出力
    するデータ出力手段と、上記ファースト−イン・ファー
    スト−アウト・メモリから出力されたデータと上記デー
    タ出力手段から出力されたデータとの間で上記所定の演
    算を行なう演算手段と、を有して成るものであることを
    特徴とするディジタル信号処理プロセッサ。
  4. 【請求項4】  上記計数手段は、上記所定の演算の実
    行回数を計数するカウンタと、上記所定値を保持するレ
    ジスタと、上記カウンタの値と上記レジスタの値とを比
    較し、両者が一致したときファースト−イン・ファース
    ト−アウト・メモリに対してデータの出力を指示する比
    較手段とを有して成るものであることを特徴とする請求
    項3記載のディジタル信号処理プロセッサ。
  5. 【請求項5】  前処理ステップと、それに引き続いて
    演算並びにデータ転送を並列的に行なう処理ステップの
    連続的な繰返しと、後処理ステップとによって、一連の
    演算処理を行ない得る演算処理装置であって、所定の演
    算対象情報をその処理順に予め保有する記憶手段と、上
    記一連の演算処理に適用される演算対象情報を変更する
    とき、演算対象情報を変更する前の上記一連の演算処理
    に含まれる後処理ステップに重ねて、上記記憶手段から
    次の演算対象情報を、演算手段に転送する制御手段と、
    を有して成るものであることを特徴とする演算処理装置
  6. 【請求項6】  上記記憶手段は、時間的に順番に格納
    された情報を、先入れ先出し形式で出力する記憶装置で
    あり、上記制御手段は、上記処理ステップの連続的な繰
    返し回数を管理するための計数手段と、上記計数手段の
    計数値に基づいて、上記記憶手段から次の演算対象情報
    を上記演算手段に転送するタイミングを定めるタイミン
    グ手段とを有するものである、ことを特徴とする請求項
    5記載の演算処理装置。
  7. 【請求項7】  第1演算器と、この第1演算器による
    演算結果を遅延要素を介して一方の入力に受け、その第
    1演算器による演算動作に並行して演算動作を行なう第
    2演算器とを含む演算処理装置であって、上記第1演算
    器の入力に与えられる所定の演算対象情報をその処理順
    に予め保有する記憶手段と、上記記憶手段から上記第1
    演算器に与えられる演算対象情報を切り替える際、切り
    替え直前における上記第1演算器の演算結果に対する第
    2演算器による演算動作に重ねて、上記記憶手段から上
    記次の演算対象情報を第1演算器に与えるように上記記
    憶手段を制御する制御手段と、を有して成るものである
    ことを特徴とする演算処理装置。
  8. 【請求項8】  1つのチップに形成されて成るもので
    あることを特徴とする請求項5又は7記載の演算処理装
    置。
JP9811691A 1990-04-04 1991-04-03 演算処理装置及びディジタル信号処理プロセッサ Withdrawn JPH04227540A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9811691A JPH04227540A (ja) 1990-04-04 1991-04-03 演算処理装置及びディジタル信号処理プロセッサ

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2-89315 1990-04-04
JP8931590 1990-04-04
JP9811691A JPH04227540A (ja) 1990-04-04 1991-04-03 演算処理装置及びディジタル信号処理プロセッサ

Publications (1)

Publication Number Publication Date
JPH04227540A true JPH04227540A (ja) 1992-08-17

Family

ID=26430744

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9811691A Withdrawn JPH04227540A (ja) 1990-04-04 1991-04-03 演算処理装置及びディジタル信号処理プロセッサ

Country Status (1)

Country Link
JP (1) JPH04227540A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08161165A (ja) * 1994-11-29 1996-06-21 Kanya Go パイプライン式及び心収縮式の単命令多重データストリームのアレイプロセッサ及びその方法
WO1998010354A1 (fr) * 1996-09-04 1998-03-12 Seiko Epson Corporation Circuit de traitement des informations, micro-ordinateur et appareil electronique
US6001801A (en) * 1995-09-29 1999-12-14 Biomeasure, Inc. Cyclic peptide analogs of somatostatin
JP2001216152A (ja) * 2000-01-28 2001-08-10 Rooran:Kk 論理集積回路及びそのcpuコアのソースを記録したコンピュータ読み取り可能な記録媒体
KR100438808B1 (ko) * 1996-11-05 2004-07-16 삼성전자주식회사 디지탈 신호 처리를 위한 저전력 소비형 연산장치

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08161165A (ja) * 1994-11-29 1996-06-21 Kanya Go パイプライン式及び心収縮式の単命令多重データストリームのアレイプロセッサ及びその方法
US6001801A (en) * 1995-09-29 1999-12-14 Biomeasure, Inc. Cyclic peptide analogs of somatostatin
WO1998010354A1 (fr) * 1996-09-04 1998-03-12 Seiko Epson Corporation Circuit de traitement des informations, micro-ordinateur et appareil electronique
US6233596B1 (en) 1996-09-04 2001-05-15 Seiko Epson Corporation Multiple sum-of-products circuit and its use in electronic equipment and microcomputers
KR100438808B1 (ko) * 1996-11-05 2004-07-16 삼성전자주식회사 디지탈 신호 처리를 위한 저전력 소비형 연산장치
JP2001216152A (ja) * 2000-01-28 2001-08-10 Rooran:Kk 論理集積回路及びそのcpuコアのソースを記録したコンピュータ読み取り可能な記録媒体

Similar Documents

Publication Publication Date Title
JP2645669B2 (ja) データ処理システム
EP0127508A2 (en) Full floating point vector processor
JP2003108368A (ja) 並列演算プロセッサ、その演算制御方法及びプログラム
US4853890A (en) Vector processor
JPH04227540A (ja) 演算処理装置及びディジタル信号処理プロセッサ
JPH0772864B2 (ja) ディジタル信号プロセッサ
JPH1173408A (ja) 演算処理システム及び演算処理方法
KR100188374B1 (ko) 연산처리장치
JP3851008B2 (ja) プロセッサおよびそれを有する半導体集積回路、処理装置ならびに命令処理方法
JP3602801B2 (ja) メモリデータアクセス構造およびその方法
JP3014605B2 (ja) ファジィ・コンピュータ
JP3526773B2 (ja) マルチプロセッサ装置およびその制御方法
JP2000010779A (ja) デジタル信号処理装置
JPS62145435A (ja) コンカレント処理命令を有するマイクロプロセツサ
JP2545798B2 (ja) デイジタル信号処理回路
JPH08286921A (ja) ファジィプロセッサおよびファジィ論理処理を行なう方法
JP2654451B2 (ja) データ出力方法
JP2876791B2 (ja) 例外処理装置および例外処理方法
JPH05143447A (ja) デイジタルプロセツサ及びその制御方法
JPH04227541A (ja) プロセッサ及びループ制御機能処理方法
JPS6134186B2 (ja)
JP2503983B2 (ja) 情報処理装置
JP2825315B2 (ja) 情報処理装置
JPH05204640A (ja) マイクロプログラム制御プロセッサ
JPH03250234A (ja) マイクロプロセッサシステム及びマイクロプロセッサシステム内におけるデータ転送方式

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 19980711