JP2584156B2 - プログラム制御型プロセッサ - Google Patents

プログラム制御型プロセッサ

Info

Publication number
JP2584156B2
JP2584156B2 JP3218341A JP21834191A JP2584156B2 JP 2584156 B2 JP2584156 B2 JP 2584156B2 JP 3218341 A JP3218341 A JP 3218341A JP 21834191 A JP21834191 A JP 21834191A JP 2584156 B2 JP2584156 B2 JP 2584156B2
Authority
JP
Japan
Prior art keywords
instruction
vector
pipeline
signal
program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP3218341A
Other languages
English (en)
Other versions
JPH0561901A (ja
Inventor
邦年 青野
真木 豊蔵
敏之 荒木
昭彦 大谷
久 児玉
潔 岡本
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP3218341A priority Critical patent/JP2584156B2/ja
Publication of JPH0561901A publication Critical patent/JPH0561901A/ja
Application granted granted Critical
Publication of JP2584156B2 publication Critical patent/JP2584156B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はプログラム制御方式のプ
ロセッサに関するもので、特に高速演算処理を必要とす
るデジタルシグナルプロセッサ(以下DSPと記す)の
アーキテクチュアに関するものである。
【0002】
【従来の技術】従来のプログラム制御方式の汎用プロセ
ッサ例えばRISC型プロセッサのマイクロ命令セットに
は、メモリの読みだし/書き込み、レジスタのセット、
レジスタ間のデータ転送、各種算術論理演算等の命令群
が実装されており、これらの命令を用いてプログラミン
グすることにより、各種の処理を実現している。これら
の命令群はほとんど、単一動作を指令する命令であり、
単純な動作を組み合わせることで、最終的に複雑で高度
な処理が実現でき且つ汎用性を実現している。
【0003】しかしながら、上記のような単一動作命令
を一つずつ逐次的に実行しなければならないため、従来
から処理速度の点で課題となっている。
【0004】
【発明が解決しようとする課題】以上のように、従来の
プログラム制御方式のプロセッサは、単一動作命令を組
み合わせてプログラミングされており、一命令ずつ逐次
的に実行していくため、処理速度の点で課題があった。
【0005】特に高速演算処理を必要とするDSPにお
いては、重要な課題である。DSPにおいては汎用プロ
セッサに比べ、乗算器の内蔵、プログラムメモリの内
蔵、データメモリの分離分割、データバス/アドレスバ
スの分離分割など種々の高速化が図られている。しがし
ながら汎用プロセッサ同様、単一動作命令でプログラミ
ングされ、一命令ずつ逐次的に実行していくことに変わ
りはない。プログラム制御方式のDSPで必要な処理速
度が得られない場合には、処理を特定した専用ハードウ
ェアを個々に開発する必要があった。
【0006】本発明は、上述の課題に鑑みてなされ、パ
イプライン演算器をプログラム制御方式の汎用プロッセ
サの資源として実装制御し、高性能を得ることが可能な
プログラム制御型プロセッサを提供することを目的とす
る。
【0007】
【課題を解決するための手段】本発明のプログラム制御
型プロセッサは、ベクトル・パイプライン命令を含む複
数の命令を実装するとともに、前記ベクトル・パイプラ
イン命令に基づくパイプライン演算を実行するデータ処
理回路を備えたプログラム制御型プロセッサであって、
プログラムメモリとプログラムカウンタとデコーダとを
含み、前記ベクトル・パイプライン命令が前記プログラ
ムメモリから読みだされた後前記デコーダによって解読
されたとき、前記プログラムカウンタを停止させるとと
もに起動信号を出力し、前記ベクトル・パイプライン命
令の内容に従って前記データ処理回路の動作を制御する
プログラム制御回路と、前記起動信号に基づいて、予め
設定されたシーケンスに従ってアドレスを連続的に発生
し、予め設定された数のアドレスの発生を終了したとき
終了信号を前記プログラム制御回路に出力するアドレス
発生器と、このアドレス発生器によって発生されたアド
レスに基づいて前記発生されたアドレスに予め格納され
たデータを出力するデータメモリとを備え、前記データ
処理回路は、前記データメモリから出力されたデータに
基づいて前記プログラム制御回路の制御に従って前記パ
イプライン演算を実行し、前記プログラム制御回路は、
前記終了信号を受信したときから所定サイクル後に、前
記ベクトル・パイプライン命令に基づく前記パイプライ
ン演算の終了を検出し、前記ベクトル・パイプライン命
令に続く命令を逐次実行することを特徴とする。
【0008】
【作用】本発明は上記した構成により、従来の単一動作
を指示する命令セットに、さらにパイプライン処理のた
めのベクトルパイプライン命令を追加実装したプロセッ
サが実現できる。本発明のプロセッサは、ベクトルパイ
プライン命令が読みだされると、データメモリの内容を
プログラム制御回路から独立して、あらかじめ設定した
順序で逐次読みだし、この読みだしサイクルと並列に演
算サイクルを実行させるパイプライン処理を行ない、演
算器の出力を別のデータメモリに並列に逐次書き込むか
または累算器で逐次累算する。そして、設定した数のデ
ータの演算を終了すると、従来のプロセッサ同様、前記
ベクトルパイプライン命令の次のステップの命令からま
た逐次実行するものである。すなわちベクトルパイプラ
イン命令の1命令により、(数1)または(数2)で示
されるすべての演算をパイプライン並列に実行してしま
うものである。
【0009】
【数1】 Yi=F(Ai、Bi)(i=1、2、....n)
【0010】
【数2】 X=ΣF(Ai、Bi)(i=1、2、....n)
【0011】ここでAi、Biはそれぞれデータメモリ
から読みだされる演算器への入力ベクトルデータであ
り、ここでは2入力としたがその数に制限はない。また
Yiは演算器の出力ベクトルデータであり別のデータメ
モリへ書き込まれる。またXは演算器の出力データが累
算器で累算された結果のデータである。そしてまた、演
算器の演算機能は関数Fで示され、命令の内容により演
算器が必要な機能を発揮するよう選択または再構成され
る。
【0012】
【実施例】図1は本発明のプロセッサの概念を示すブロ
ック図である。本発明のプロセッサは従来の命令セット
に追加してさらにベクトルパイプライン命令を実装して
いる。図1において、1はプログラムメモリ、プログラ
ムカウンタ、デコーダなどにより構成され、このベクト
ルパイプライン命令がプログラムメモリから読みだされ
ると、プログラムカウンタを停止させるとともに起動信
号を出力し、さらに前記ベクトルパイプライン命令の内
容に従ってデータ処理回路の機能およびパイプライン構
成を制御するプログラム制御回路、2は起動信号により
プログラム制御回路から独立して、あらかじめ設定され
たシーケンスでアドレスを連続して発生し、設定された
数のアドレスの発生を終了するとプログラム制御回路1
に終了信号を与えるアドレス発生器、3はこのアドレス
を入力し連続してデータを出力するデータメモリ、4は
このデータメモリ3から読み出されたデータを入力し、
パイプライン演算を行なうデータ処理回路である。実行
ユニット5はアドレス発生器2、データメモリ3、デー
タ処理装置4から構成されている。
【0013】図1の動作を図2の動作タイミング図とと
もに説明する。図1のプログラム制御回路1がプログラ
ムメモリに蓄積された命令を逐次読みだして実行制御す
る様子を図2に示してあり、N番地の命令が本発明によ
るパイプライン処理を実行するベクトルパイプライン命
令である。
【0014】図2においては、N番地の命令以外は従来
の単一動作命令であり、かつ分岐命令でないとする。さ
らに説明を簡単にするため、命令のフェッチ、デコード
等に必要なサイクルを省略し、実行サイクルのみを示し
ている。N番地の命令以外の従来の単一動作命令の実行
は、従来のプロセッサと同様にプロセッサ内の各資源が
制御され、通常1サイクルで実行が完了する。そして逐
次命令を読みだして実行していくものであり、N-2,N-1
番地の命令実行サイクルはこの従来の単一動作命令の実
行が示されている。そして、N番地のベクトルパイプラ
イン命令が読みだされ解読されると、まず、図1のプロ
グラム制御回路1において内部のプログラムカウンタを
停止させ、ベクトルパイプライン命令の実行サイクルを
繰り返すよう制御される。また、プログラム制御回路1
からアドレス発生器2に起動信号が与えられ、起動信号
が与えられたサイクルより、アドレス発生器2はあらか
じめ設定されたシーケンスでm個のアドレスを連続して
発生し、データメモリ3より図2に示すように連続的に
m個のメモリ読みだしサイクルが開始される。またプロ
グラム制御回路1はデータ処理回路4に対して、命令の
内容に従ってデータ処理回路4の機能及びパイプライン
構成を制御する。これは、データ処理回路4が複数の演
算器、レジスタ、メモリなどを有し、それぞれの入出力
の組み合わせをマルチプレクサなどを用いて再構成する
ことにより容易に実現できるものである。図2において
は、メモリ読みだし,処理1、処理2の3段のパイプラ
イン構成に制御された場合が示されている。
【0015】以上のような制御が行なわれる事により、
図2に示すように、m個のデータに対して、メモリ読み
だし,処理1,処理2の3段のパイプライン処理が連続実
行できる。そしてアドレス発生器2はm個のアドレスの
発生を終了すると、プログラム制御回路1に対して終了
信号を与える。プログラム制御回路1は、現在のベクト
ルパイプライン命令がメモリ読みだし、処理1、処理2
の3段のパイプライン処理であることは解読しており、
この情報を用いて、アドレス発生器2からの終了信号を
受信した後さらに2サイクル遅らせて、すなわちすべて
のパイプラインサイクルの終了を待って、前記プログラ
ムカウンタを再起動させる。そしてN番地のベクトルパ
イプライン命令以降の命令、すなわちN+1,N+2,N+3番地
の命令を逐次実行させる。
【0016】以上のように、本発明によれば従来の命令
セットに追加して、パイプライン並列処理を実現する新
たなベクトルパイプライン命令を実装したプロセッサが
実現できる。このベクトルパイプライン命令により、プ
ログラム制御による汎用性を失うことなく、従来の命令
セットを用いた場合に比べパイプライン並列処理の高速
性とプログラムメモリ容量の圧縮が同時に実現される。
図1のプロセッサにおいては、N番地の命令1命令で、
m個のデータに対するメモリ読みだし、処理1、処理2
の3段のパイプライン並列処理をすべて実行制御してい
る。そしてこの処理を(m+2)サイクルで実現してい
る。従来の単一動作命令を用いて制御すると、少なくと
も3mサイクル必要であり、約3倍の高速化が図られて
おり、パイプライン処理の段数を多くすれば、容易にさ
らなる高速化が実現できる。
【0017】図3は図1のプログラム制御回路を示すブ
ロック図である。図3において、プログラム制御回路1
は、プログラムカウンタ10と、プログラムメモリ11
と、デコーダ12と、ベクトル命令制御回路13と、命
令レジスタ回路14を主構成要素として構成されてい
る。
【0018】プログラムカウンタ10でアドレス指定さ
れたプログラムメモリ11内の命令を読みだし、第1の
パイプラインレジスタ15を介して、デコーダ12が前
記命令を解読し、第2のパイプラインレジスタ16を介
して実行ユニット5に各部制御信号を送出するよう接続
され、プログラムメモリ11の読みだしサイクル、命令
のデコードサイクル、命令の実行サイクルのパイプライ
ンを構成する。
【0019】プログラムカウンタ10は、プログラムカ
ウンタレジスタ17と第1のマルチプレクサ18とイン
クリメンタ19を有し、第1のマルチプレクサ18はイ
ンクリメンタ19、分岐アドレス制御回路20またはプ
ログタムカウンタレジスタ17の出力の内1つを選択し
てプログタムカウンタレジスタ17に入力するよう接続
されている。
【0020】命令レジスタ回路14は、第2のマルチプ
レクサ21と第1のパイプラインレジスタ15とを有
し、第1のパイプラインレジスタ15は、第2のマルチ
プレクサ21により前記プログラムメモリ11または第
1のパイプラインレジスタ14の出力のうち1つを選択
して入力するよう接続されている。
【0021】ベクトル命令制御回路13は、デコーダ1
2の制御により、前記第1のマルチプレクサ18と第2
のマルチプレクサ21を制御し、同時に実行ユニット5
に起動信号を送出し、実行ユニット5から終了信号を受
けるよう接続されている。
【0022】このプログラム制御回路1が逐次的に前記
プログラムメモリ11から命令を読みだし実行するとき
に、ベクトル・パイプライン命令がデコーダ12により
解読されると、ベクトル命令制御回路13が、前記実行
ユニット5に起動信号を与える。そして同時に、前記ベ
クトル命令制御回路13が、前記第1のマルチプレクサ
18がプログラムカウンタレジスタ17の出力を選択し
プログラムカウンタレジスタ17がデータを自己保持す
るよう制御する。さらに前記第2のマルチプレクサ21
が第1のパイプラインレジスタ15の出力を選択し、第
1のパイプラインレジスタ14がデータを自己保持する
よう制御することにより、前記ベクトル・パイプライン
命令を連続して複数サイクル実行させるよう制御する。
ここで、上記プログラムカウンタ17及びパイプライン
レジスタ15がデータを自己保持させる手段として、直
接これらのレジスタの書き込みクロックを停止させても
良い。そして、前記ベクトル命令制御回路13が、前記
実行ユニット5から終了信号を受け取ると、前記ベクト
ル・パイプライン命令の内容に応じて、一定サイクル遅
延させて、前記第1のマルチプレクサ18および第2の
マルチプレクサ21の制御を解除し、プログラムカウン
タレジスタ17の自己保持および第1のパイプラインレ
ジスタ15の自己保持を解除することにより、前記ベク
トル・パイプライン命令以降の命令を逐次的に実行させ
る。
【0023】図4は図1の実行ユニットを示すブロック
図である。図4において、実行ユニット5は、第1,第
2,第3のアドレス発生器30,31,32からなるアド
レス発生器2と、第1,第2,第3のデータメモリ33,
34,35からなるデータメモリ3と、データ処理回路
4を有する。第1,第2のアドレス発生器30,31がそ
れぞれ第1,第2のデータメモリ33,34のアドレスを
発生し、第1,第2のデータメモリ33,34から読みだ
されたデータがデータ処理回路4で演算処理され、第3
のアドレス発生器32が第3のデータメモリ35のアド
レスを発生し、データ処理回路4で演算処理されたデー
タを第3のデータメモリ35に書き込むよう接続されて
いる。そして、データ処理回路4はALU36、乗算器3
7、第1,第2のパイプライン演算器38,39を有する
演算器ブロック40と、レジスタ41、累算器42、お
よび演算器ブロック40・レジスタ41・累算器42間
のデータの流れを切り替えるデータパス選択回路43に
より構成されている。
【0024】図5は本発明のプロセッサにおけるベクト
ル命令制御回路を示すブロック図である。図5におい
て、ベクトル命令制御回路13は、ソースメモリ・アド
レス発生器の起動信号発生部50と、ディスティネーシ
ョンメモリ・アドレス発生器の起動信号発生部51と、
第1のマルチプレクサ制御信号発生部52と、第2のマ
ルチプレクサ制御信号発生部53と、ベクトル命令遅延
解析器54により構成される。
【0025】そして、ソースメモリ・アドレス発生器の
起動信号発生部50は、デコーダ12がベクトルパイプ
ライン命令を解読してベクトル命令制御回路13に出力
するベクトル命令信号により、ソースメモリ・アドレス
発生器2の起動信号をアサートし、アドレス発生器2が
出力する終了信号によりネゲートするよう制御される。
図5では、RSフリップフロップ55を用いて、ベクト
ル命令信号により起動信号がセットされ、終了信号によ
りリセットされるまでアサートされる。
【0026】次に、ディスティネーションメモリ・アド
レス発生器の起動信号発生部51は、前記ベクトル命令
信号が入力される第1のシフトレジスタ56と、第1の
シフトレジスタ56の各遅延出力の1つを選択して出力
する第3のマルチプレクサ57により構成される。デコ
ーダ12は、前記ベクトル命令信号を出力するときに同
時に、ベクトルパイプライン命令の種類を解読してベク
トル命令種別信号を出力する。このベクトル命令種別信
号により前記ベクトル命令遅延解析器54が必要な遅延
を判断して前記第3のマルチプレクサ57が制御され
る。そしてこの第3のマルチプレクサ57の出力がディ
スティネーションメモリ・アドレス発生器及び累積器の
起動信号として供給される。
【0027】次に、第2のマルチプレクサ制御信号発生
部53は、前記終了信号が入力される第2のシフトレジ
スタ58と、第2のシフトレジスタ58の各遅延出力の
1つを選択して出力する第4のマルチプレクサ59とA
NDゲート60で構成される。前記第4のマルチプレク
サ59は前記ベクトル命令遅延解析器54がベクトル命
令種別信号により必要な遅延を判断して制御される。そ
して前記ベクトル命令信号により第2のマルチプレクサ
制御信号をアサートし、第4のマルチプレクサの出力に
よりネゲートするよう制御される。図5では、ANDゲ
ート60を用いて、ベクトル命令信号により第2のマル
チプレクサ制御信号をアサートし、第4のマルチプレク
サの出力によりネゲートされるまで状態を保持する。以
上により、ベクトルパイプライン命令を実行するときに
は、図3のマルチプレクサ21は、第1のパイプライン
レジスタ15がデータを自己保持するよう制御され、他
の命令を実行するときには、プログラムメモリ11を選
択するよう制御される。
【0028】最後に、第1のマルチプレクサ制御信号発
生部52は、第2のマルチプレクサ制御信号発生部53
と、第1のマルチプレクサ制御回路61により構成され
ている。前記第2のマルチプレクサ制御信号と、前記デ
コーダ12から出力されるアドレス分岐制御信号の制御
より、第1のマルチプレクサ制御回路61が第1のマル
チプレクサ制御信号を出力する。以上により、ベクトル
パイプライン命令を実行するときには、図3のマルチプ
レクサ18は、プログラムカウンタレジスタ17がデー
タを自己保持するよう制御され、他の命令を実行すると
きには、インクリメンタ19または分岐アドレス制御回
路20を選択するよう制御される。
【0029】図6は本発明のプロセッサにおけるアドレ
ス発生器を示すブロック図である。図6において、アド
レス発生器2は、アドレス演算器67とサイクルカウン
タ68と終了判定回路69で構成される。そして、ベク
トルパイプライン命令を実行するときにプログラム制御
回路1のベクトル命令制御回路13から与えられる起動
信号がアサートされている期間、起動信号の制御により
アドレス演算器67がデータメモリ3のアドレスを順次
発生する。また同時にサイクルカウンタ68が、起動信
号によりアドレス演算器67が発生したアドレスの数を
計数する。そしてサイクルカウンタ68の値が、一定値
になると終了判定回路69が終了信号を出力するよう制
御される。ここでアドレス演算器67は、従来のポイン
タや2次元アドレス演算器等で構成することが出来る。
またベクトルパイプライン命令以外の命令を実行すると
きには、アドレス演算器67は、プログラム制御回路1
のデコーダ12の各部制御信号により制御され、1つず
つアドレスを発生する。
【0030】以上の構成により、前記従来の命令を実行
するときは、実行ユニット5は1サイクルで実行が終了
するように単一動作の機能およびデータパスが選択され
る。
【0031】また、前記ベクトルパイプライン命令を実
行するときは、第1,第2のソースデータメモリ33,3
4の出力を、前記演算器ブロック40に入力し、演算器
ブロック40の出力を第3のディスティネーションデー
タメモリ35又は累算器42に入力するよう、実行ユニ
ット5の機能およびデータパスが選択される。
【0032】そして、プログラム制御回路1から前記第
1,第2のソースデータメモリ33,34のアドレスを発
生する第1第2のアドレス発生器30、31に第1第2
の起動信号が与えられることにより、第1のアドレス発
生器30、31が、前記プログラム制御回路1から独立
して、予め設定されたシーケンスで一連のアドレスの発
生を開始する。そして発生したアドレスに応じて、前記
ソースデータメモリ33、34から一連のベクトルデー
タを読みだし、前記演算器ブロック40が連続して演算
処理する。
【0033】そして演算器ブロック40の出力のベクト
ルデータは、プログラム制御回路1から前記ディスティ
ネーションデータメモリ35のアドレスを発生する第3
のアドレス発生器32に実行ユニット5のパイプライン
遅延段数分、即ち実行ユニット5のパイプラインの段数
から1を引いたサイクル数分だけ遅れて第3の起動信号
が与えられることにより、第3のアドレス発生器32
が、一連のアドレスの発生を開始し、連続して前記ディ
スティネーションデータメモリ35に書き込むか、又は
プログラム制御回路1から累算器42に実行ユニット5
のパイプライン遅延段数分遅れて第4の起動信号が与え
られることにより、前記累算器42が累算を開始する。
【0034】以上のように、複数サイクルでベクトルパ
イプライン演算を実行し、前記第1のアドレス発生器3
0が予め設定された数のアドレスの発生を終了すると、
前記プログラム制御回路1に終了信号を返すよう制御さ
れるものである。
【0035】ここでソースデータメモリを33,34、
ディスティネーションデータメモリを35とした実施例
を説明したが、これらの組み合わせは任意であることは
言うまでもない。また終了信号を第1のアドレス発生器
30が出力するとしたが、他のアドレス発生器が終了信
号を発生しても問題はない。
【0036】図7、図8は本発明のプロセッサの動作を
説明するタイミング図である。本発明のプロセッサは、
従来の命令セットに追加してベクトル・パイプライン命
令を実装したプロセッサであり、図3のプログラム制御
回路、および図4の実行ユニットで構成されるものであ
る。そして、ベクトルパイプライン命令は、ソースデー
タメモリに蓄えられているベクトルデータを読みだし
て、演算器で演算し、出力ベクトルデータをディスティ
ネーションデータメモリに書き込む第1の種類のベクト
ルパイプライン命令と、前記演算器の出力ベクトルデー
タを累算器10で累算する第2の種類のベクトルパイプ
ライン命令をもっている。
【0037】第1の種類のベクトルパイプライン命令
は、(数1)で示したパイプライン並列演算を実行し、
第2の種類のベクトルパイプライン命令は、(数2)で
示したパイプライン並列演算を実行するものである。そ
して、図7は第1の種類のベクトルパイプライン命令の
動作を説明する動作タイミング図であり、図8は第1の
種類のベクトルパイプライン命令の動作を説明する動作
タイミング図である。
【0038】図7に、図3のプログラム制御回路1がプ
ログラムメモリ11に蓄積された命令を逐次読みだし
て、図4の実行ユニット5が実行制御される様子を示
す。図7においてN番地の命令が本発明によるパイプラ
イン処理を実行するベクトルパイプライン命令である。
図7においても、N番地の命令以外は従来の単一動作命
令であり、かつ分岐命令でないとする。
【0039】ここでは、N番地のベクトルパイプライン
命令は、第1のデータメモリ33と第2のデータメモリ
34に蓄えられているベクトルデータを読みだして、第
1のパイプライン演算器38で演算し、出力ベクトルデ
ータを第3のデータメモリ35に書き込むことを指示し
ている第1の種類のベクトルパイプライン命令であると
する。また、前記ベクトルデータはm個の要素のベクト
ルとしている。
【0040】図7において、命令読みだしサイクル、デ
コードサイクル、命令実行サイクルにおいて各サイクル
で何番地の命令が処理されているかが示されている。ま
たベクトルパイプライン命令が実行されるときの各部の
動作タイミングが示されている。図3のプログラム制御
回路1が逐次的にプログラムを実行制御するときに、従
来の単一動作命令すなわちALU演算、乗算、1データの
ロード、ストアなどを実行するときの動作は、従来のプ
ロセッサと同様である。すなわち、プログラムメモリ1
1からの命令読みだしサイクル、デコードサイクル、命
令実行サイクルがパイプラインで逐次される。そして図
4の実行ユニット5はデコーダ12で解読された単一動
作命令の内容に応じて、データパス選択回路43により
データパスが選択され、1サイクルで実行が終了する。
図7に示したN-2,N-1番地の命令実行サイクルはこの従
来の単一動作命令の実行の様子が示されている。
【0041】次にベクトルパイプライン命令が読みださ
れ実行するときの動作を説明する。まず、実行ユニット
5はデコーダ12で解読されたベクトルパイプライン命
令の内容に応じて、データパス選択回路43により、ソ
ースデータメモリ33、34の出力を、第1のパイプラ
イン演算器38に入力し、演算器38の出力をディステ
ィネーションデータメモリ35に入力するようデータパ
スが選択される。さらに、ここでは第1のパイプライン
演算器38は、2段のパイプラインで実現されているも
のとするが、特に制限はない。画像処理のためには、フ
ィルタ演算器や、コサイン変換器(DCT)などの、専
用パイプライン演算器などを集積すると、パイプライン
並列度に応じて、性能がたとえば10〜100倍と飛躍
的に向上する。
【0042】前記N番地のベクトル・パイプライン命令
がデコーダ12により解読されると、前記ベクトル命令
制御回路13が、図7に示したようにマルチプレクサ制
御信号を出力する。これにより、前記第1のマルチプレ
クサ18がプログラムカウンタレジスタ17の出力を選
択しプログラムカウンタレジスタ17がデータを自己保
持するよう制御する。さらに前記第2のマルチプレクサ
21が第1のパイプラインレジスタ15の出力を選択し
パイプラインレジスタ15がデータを自己保持するよう
制御する。よって図7に示すように、N番地のベクトル
・パイプライン命令を連続して複数サイクルで実行でき
るよう制御する。
【0043】そしてまた、前記N番地のベクトル・パイ
プライン命令がデコーダ12により解読されると、プロ
グラム制御回路1のベクトル命令制御回路13から第
1、第2のアドレス発生器30、31に第1、第2の起
動信号がそれぞれ与えられ、アドレス発生器30、31
はプログラム制御回路1から独立して、あらかじめ設定
されたシーケンスでそれぞれm個のアドレスを連続サイ
クルで発生し、第1、第2のデータメモリ33、34よ
り図7に示すようにそれぞれ連続的にm個のメモリ読み
だしサイクルが開始される。ここでは、前記2段のパイ
プライン演算器38が連続して、図7の演算1、演算2
に示すようにパイプライン演算処理し、パイプライン演
算器38の出力のベクトルデータは、第3のデータメモ
リ35に入力される。
【0044】ここで、プログラム制御回路1から前記デ
ィスティネーションデータメモリ35のアドレスを発生
する第3のアドレス発生器32に実行ユニットのパイプ
ライン遅延段数分遅れて、即ち演算1、演算2、書き込
みの3サイクル分遅れて、第3の起動信号が与えられる
ことにより、第3のアドレス発生器32が、一連のアド
レスの発生を開始し、連続して前記ディスティネーショ
ンデータメモリ35に書き込まれる。プログラム制御回
路1は、現在のN番地のベクトルパイプライン命令がメ
モリ読みだし、演算1、演算2、メモリ書き込みの4段
のパイプライン処理であることは解読しており、この情
報を用いて、アドレス発生器32への第3の起動信号を
第1第2のアドレス発生器30、31への第1第2の起
動信号より3サイクル遅らせて与えることができる。
【0045】以上のような制御が行なわれる事により、
図7に示すように、それぞれm個のベクトルデータに対
して、メモリ読みだし、演算1、演算2、メモリ書き込
みの4段のパイプライン処理が連続実行できる。
【0046】そして、第1のアドレス発生器30はm個
のアドレスの発生を終了すると、プログラム制御回路1
に対して第1の終了信号を与える。前記ベクトル命令制
御回路13が、第1の終了信号を受け取ると、前記N番
地のベクトル・パイプライン命令の処理内容に応じて、
図7に示すように、一定サイクル遅延させて、前記マル
チプレクサ18およびマルチプレクサ21の制御信号を
解除し、プログラムカウンタレジスタ17の自己保持お
よびパイプラインレジスタ15の自己保持を解除し、前
記プログラムカウンタ10およびパイプラインレジスタ
15を再起動させる。
【0047】ここで一定サイクルとは、N番地のベクト
ル・パイプライン命令では2サイクルである。前述のよ
うに、プログラム制御回路1は、現在のN番地のベクト
ルパイプライン命令がメモリ読みだし、演算1、演算
2、メモリ書き込みの4段のパイプライン処理であるこ
とは解読しており、この情報を用いて、前記第1の終了
信号を受け取ってから一定サイクルすなわち2サイクル
遅らせて制御信号を解除することができる。3サイクル
でなく2サイクルとするのは、マルチプレクサ制御信号
を解除しても、プログラム制御回路のパイプライン構成
により、さらに1サイクルN番地の命令が実行されるた
め、1サイクル分早く制御信号を解除するものである。
【0048】前記プログラムカウンタ10およびパイプ
ラインレジスタ15が再起動した後、N番地のベクトル
・パイプライン命令にかかわるすべてのパイプラインサ
イクルが終了し、N番地のベクトルパイプライン命令以
降の命令、すなわちN+1,N+2,N+3番地の命令が従来のプ
ロセッサ同様逐次実行される。
【0049】以上、本発明の実施例によれば、ベクトル
パイプライン命令1命令により、(数1)で示したパイ
プライン並列演算が実現でき、パイプライン並列度に応
じて、性能が10〜100倍と飛躍的に向上する。また
プログラムメモリのステップ数も1ステップに圧縮でき
る。
【0050】図8は本発明のプロセッサの他の動作を説
明するタイミング図である。以下、本発明のプロセッサ
の他の動作を図8と用いて説明する。図8において、図
7と異なるのは、N番地のベクトルパイプライン命令
が、第2のデータメモリ34と第3のデータメモリ35
に蓄えられているベクトルデータを読みだして、ALU36
で演算し、出力ベクトルデータを累算器42で累算する
ことを指示している第2の種類のベクトルパイプライン
命令であることである。図8においても、命令読みだし
サイクル、デコードサイクル、命令実行サイクルにおい
て各サイクルで何番地の命令が処理されているかが示さ
れている。またベクトルパイプライン命令が実行される
ときの各部の動作タイミングが示されている。
【0051】図3のプログラム制御回路1が逐次的にプ
ログラムを実行制御するときに、従来の単一動作命令す
なわちALU演算、乗算、1データのロード、ストアなど
を実行するときの動作は、従来のプロセッサと同様であ
る。図8に示したN-2,N-1番地の命令実行サイクルはこ
の従来の単一動作命令の実行の様子が示されている。
【0052】次にベクトルパイプライン命令が読みださ
れ実行するときの動作を説明する。まず、実行ユニット
5はデコーダ12で解読されたベクトルパイプライン命
令の内容に応じて、データパス選択回路43により、ソ
ースデータメモリ34、35の出力を、ALU36に入力
し、ALU36の出力を累算器42に入力するようデータ
パスが選択される。ここでは演算器としてALU36を選
択しているが特に制限はない。
【0053】前記N番地のベクトル・パイプライン命令
がデコーダ12により解読されると、前記ベクトル命令
制御回路13が、図8に示したようにマルチプレクサ制
御信号を出力する。これにより、前記第1のマルチプレ
クサ18がプログラムカウンタレジスタ17の出力を選
択しプログラムカウンタレジスタ17がデータを自己保
持するよう制御する。さらに前記第2のマルチプレクサ
21が第1のパイプラインレジスタ15の出力を選択し
パイプラインレジスタ15がデータを自己保持するよう
制御する。よって図8に示すように、N番地のベクトル
・パイプライン命令を連続して複数サイクルで実行でき
るよう制御する。
【0054】そしてまた、前記N番地のベクトル・パイ
プライン命令がデコーダ12により解読されると、プロ
グラム制御回路1のベクトル命令制御回路13から第
2,第3のアドレス発生器31,32に第2,第3の起動
信号がそれぞれ与えられ、アドレス発生器31,32は
プログラム制御回路1から独立して、あらかじめ設定さ
れたシーケンスでそれぞれm個のアドレスを連続サイク
ルで発生し、第2,第3のデータメモリ34,35より図
8に示すようにそれぞれ連続的にm個のメモリ読みだし
サイクルが開始される。そしてここでは、ALU36が演
算処理し、ALU36の出力のベクトルデータは、累算器
42に入力される。ここで、プログラム制御回路1から
累算器42に実行ユニットのパイプライン遅延段数分遅
れて、即ちALU演算、累算の2サイクル分遅れて、累算器
42に第4の起動信号が与えられることにより、累算を
開始する。
【0055】プログラム制御回路1は、現在のN番地の
ベクトルパイプライン命令がメモリ読みだし、ALU演
算、累算の3段のパイプライン処理であることは解読し
ており、この情報を用いて、累算器42への第4の起動
信号を第2,第3のアドレス発生器31,32への第2,
第3の起動信号より2サイクル遅らせて与えることがで
きる。
【0056】以上のような制御が行なわれる事により、
図8に示すように、それぞれm個のベクトルデータに対
して、メモリ読みだし、ALU演算、累算の3段のパイプ
ライン処理が連続実行できる。そして、第2のアドレス
発生器31はm個のアドレスの発生を終了すると、プロ
グラム制御回路1に対して第2の終了信号を与える。
【0057】前記ベクトル命令制御回路13が、第2の
終了信号を受け取ると、前記N番地のベクトル・パイプ
ライン命令の処理内容に応じて、図8に示すように、一
定サイクル遅延させて、前記マルチプレクサ18および
マルチプレクサ21の制御信号を解除し、プログラムカ
ウンタレジスタ17の自己保持およびパイプラインレジ
スタ15の自己保持を解除し、前記プログラムカウンタ
10およびパイプラインレジスタ15を再起動させる。
ここで一定サイクルとは、N番地のベクトル・パイプラ
イン命令では1サイクルである。前述のように、プログ
ラム制御回路1は、現在のN番地のベクトルパイプライ
ン命令がメモリ読みだし、ALU演算、累算の3段のパイ
プライン処理であることは解読しており、この情報を用
いて、前記第1の終了信号を受け取ってから一定サイク
ルすなわち1サイクル遅らせて制御信号を解除すること
ができる。2サイクルでなく1サイクルとするのは、制
御信号を解除しても、プログラム制御回路のパイプライ
ン構成により、さらに1サイクルN番地の命令が実行さ
れるため、1サイクル分早く制御信号を解除するもので
ある。
【0058】前記プログラムカウンタ10およびパイプ
ラインレジスタ15が再起動した後、N番地のベクトル
・パイプライン命令にかかわるすべてのパイプラインサ
イクルが終了し、N番地のベクトルパイプライン命令以
降の命令、すなわちN+1,N+2,N+3番地の命令が従来のプ
ロセッサ同様逐次実行される。
【0059】以上、本発明の実施例によれば、ベクトル
パイプライン命令1命令により、(数2)で示したパイ
プライン並列演算が実現でき、パイプライン並列度に応
じて、性能が10〜100倍と飛躍的に向上する。また
プログラムメモリのステップ数も1ステップに圧縮でき
る。
【0060】なお、図1から図8に示した本発明の実施
例において、それぞれのアドレス発生器が、本発明者が
先に提案した2次元データの矩形領域のアドレスを発生
する特願平2ー41424号(2次元アドレス発生器お
よびその制御方式)記載の2次元アドレス発生器の機能
を有するようにすれば、画像データのように2次元のデ
ータ構造を持つものに対して、非常に効率よく処理する
ことが可能になる。
【0061】
【発明の効果】以上述べたように、本発明によれば、従
来の単一動作を指示する命令セットに、さらにパイプラ
イン処理のための特定の命令を追加実装したプロセッサ
が実現できる。本発明のプロセッサは、特定の命令が読
みだされると、データメモリの内容をあらかじめ設定し
た順序で逐次読みだし、この読みだしサイクルと並列に
演算サイクルを実行させるパイプライン処理を行ない、
演算器の出力を別のデータメモリに並列に逐次書き込む
かまたは累算器で逐次累算する。そして、設定した数の
データの演算を終了すると、従来のプロセッサ同様、前
記特定の命令の次のステップの命令からまた逐次実行す
るものである。
【0062】信号処理において頻出する(数1)または
(数2)で示される演算を行なう時に、本発明のプロセ
ッサの特定の命令と、従来のプロセッサの命令セットを
用いて実行する場合とを比較すると、演算機能にも依存
するが、およそ10〜100倍の処理サイクルの高速化
が達成できる。また、プログラムステップも同時に扱う
データ量にも依存するが、多大の容量を必要とし、プロ
グラムメモリの大量消費となっていたものを1命令すな
わち1ステップで実現してしまうものである。
【図面の簡単な説明】
【図1】本発明のプロセッサの概念を示すブロック図
【図2】本発明のプロセッサの動作を説明するタイミン
グ図
【図3】本発明のプロセッサのプログラム制御回路を示
すブロック図
【図4】本発明のプロセッサの実行ユニットを示すブロ
ック図
【図5】本発明のプロセッサにおけるベクトル命令制御
回路を示すブロック図
【図6】本発明のプロセッサにおけるアドレス発生器を
示すブロック図
【図7】本発明のプロセッサの動作を説明するタイミン
グ図
【図8】本発明のプロセッサの他の動作を説明するタイ
ミング図
【符号の説明】
1 プログラム制御回路 2 アドレス発生器 3 データメモリ 4 データ処理回路 5 実行ユニット 10 プログラムカウンタ 11 プログラムメモリ 12 デコーダ 13 ベクトル命令制御回路
───────────────────────────────────────────────────── フロントページの続き (72)発明者 大谷 昭彦 大阪府門真市大字門真1006番地 松下電 器産業株式会社内 (72)発明者 児玉 久 大阪府門真市大字門真1006番地 松下電 器産業株式会社内 (72)発明者 岡本 潔 大阪府門真市大字門真1006番地 松下電 器産業株式会社内 (56)参考文献 特開 昭58−189770(JP,A) 特開 昭57−50051(JP,A) 特公 昭54−33825(JP,B2)

Claims (3)

    (57)【特許請求の範囲】
  1. 【請求項1】ベクトル・パイプライン命令を含む複数の
    命令を実装するとともに、プログラム制御回路とアドレ
    ス発生器とデータメモリと前記ベクトル・パイプライン
    命令に基づくパイプライン演算を実行するデータ処理回
    路を備えたプログラム制御型プロセッサであって、前記プログラム制御回路は、 プログラムメモリとプログ
    ラムカウンタとデコーダとベクトル命令制御回路とを含
    み、前記ベクトル命令制御回路は、 前記ベクトル・パイプラ
    イン命令が前記プログラムメモリから読みだされた後
    記デコーダによって解読されたとき、前記プログラム
    カウンタを停止させるとともに、前記アドレス発生器に
    起動信号を出力させることにより、前記ベクトル・パイ
    プライン命令を継続して発行させるよう制御し、 前記アドレス発生器は、この 起動信号に基づいて、予め
    設定されたシーケンスに従ってアドレスを連続的に発生
    し、予め設定された数のアドレスの発生を終了したとき
    終了信号を前記ベクトル命令制御回路に出力し、 前記データメモリは、 このアドレス発生器によって発生
    されたアドレスに基づいて予め格納されたデータを出力
    し、 前記データ処理回路は、前記データメモリから出力され
    たデータに基づいて前記プログラム制御回路の制御に従
    って前記パイプライン演算を実行し、 前記ベクトル命令制御回路は、前記終了信号を受信した
    ときから前記ベクトル・パイプライン命令により特定さ
    れるサイクル数の後、前記プログラムカウンタを再起動
    させ、前記ベクトル・パイプライン命令の次の命令から
    再度逐次実行するよう制御し、 前記ベクトル命令制御回路が、 前記ベクトル・パイプライン命令が前記デコーダによっ
    て解読されて出力されるベクトル命令信号に基づいて、
    前記アドレス発生器の起動信号をセットして前記アドレ
    ス発生器に出力し、前記アドレス発生器から出力される
    前記終了信号に基づいて前記アドレス発生器の起動信号
    をリセットする起動信号発生部と、 所定の複数段数の遅延回路を有し、前記終了信号を遅延
    させて出力するシフト レジスタと、 前記ベクトル・パイプライン命令が解読された結果であ
    るベクトル命令種別信号に基づいて前記シフトレジスタ
    の各遅延回路の各出力のうちの1つを選択して前記選択
    した信号を遅延終了信号として出力するマルチプレクサ
    と、 前記ベクトル命令信号に基づいて、前記プログラムカウ
    ンタの停止信号を発生させるとともに、前記マルチプレ
    クサから出力される前記遅延終了信号に基づいて停止信
    号をリセットし前記プログラムカウンタを再起動させる
    信号発生器とを備えた ことを特徴とするプログラム制御
    型プロセッサ。
  2. 【請求項2】前記ベクトル・パイプライン命令の中に、
    データ処理回路でパイプライン処理された後、ディステ
    ィネーションメモリへ格納するベクトル・パイプライン
    命令を有しており、 前記アドレス発生器はさらにディスティネーションメモ
    リ・アドレス発生器を備え、 前記ベクトル命令制御回路はさらに、所定の複数段数の
    遅延回路を有し前記ベクトル命令信号を遅延させて出力
    する第2のシフトレジスタと、前記デコーダによって前
    記ベクトル・パイプライン命令が解読された結果である
    ベクトル命令種別信号に基づいて前記第2のシフトレジ
    スタの各遅延回路の各出力の内の1つを選択して前記選
    択した信号を前記ディスティネーションメモリ・アドレ
    ス発生器に出力する第2のマルチプレクサとを含む第2
    の起動信号発生部を備えた ことを特徴とする請求項1記
    載のプログラム制御型プロセッサ。
  3. 【請求項3】前記ベクトル・パイプライン命令の中に、
    データ処理回路でパイプライン処理された後、累算器で
    累算処理するベクトル・パイプライン命令を有してお
    り、 前記ベクトル命令制御回路はさらに、所定の複数段数の
    遅延回路を有し前記ベクトル命令信号を遅延させて出力
    する第2のシフトレジスタと、前記デコーダによって前
    記ベクトル・パイプライン命令が解読された結果である
    ベクトル命令種別信号に基づいて前記第2のシフトレジ
    スタの各遅延回路の各出力の内の1つを選択して前記選
    択した信号を前記累算器の起動信号として出力する第2
    のマルチプレクサとを含む第2の起動信号発生部を備え
    ことを特徴とする請求項1記載のプログラム制御型プ
    ロセッサ。
JP3218341A 1990-09-03 1991-08-29 プログラム制御型プロセッサ Expired - Fee Related JP2584156B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3218341A JP2584156B2 (ja) 1990-09-03 1991-08-29 プログラム制御型プロセッサ

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2-233535 1990-09-03
JP23353590 1990-09-03
JP3218341A JP2584156B2 (ja) 1990-09-03 1991-08-29 プログラム制御型プロセッサ

Publications (2)

Publication Number Publication Date
JPH0561901A JPH0561901A (ja) 1993-03-12
JP2584156B2 true JP2584156B2 (ja) 1997-02-19

Family

ID=26522513

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3218341A Expired - Fee Related JP2584156B2 (ja) 1990-09-03 1991-08-29 プログラム制御型プロセッサ

Country Status (1)

Country Link
JP (1) JP2584156B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69421103T2 (de) * 1993-01-22 2000-06-08 Matsushita Electric Ind Co Ltd Programmgesteuertes Prozessor
CN1109992C (zh) 1998-11-26 2003-05-28 松下电器产业株式会社 运算装置和使用运算装置的图象处理装置
JP2008299501A (ja) * 2007-05-30 2008-12-11 Sanyo Electric Co Ltd プロセッサ

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5433825A (en) * 1977-08-22 1979-03-12 Daido Metal Co Ltd Bearing metal for large engine
JPS5750051A (en) * 1980-09-09 1982-03-24 Toshiba Corp Program controller
JPS58189770A (ja) * 1982-04-28 1983-11-05 Hitachi Ltd ベクトル処理装置

Also Published As

Publication number Publication date
JPH0561901A (ja) 1993-03-12

Similar Documents

Publication Publication Date Title
US5404552A (en) Pipeline risc processing unit with improved efficiency when handling data dependency
US7136989B2 (en) Parallel computation processor, parallel computation control method and program thereof
JP2007519052A (ja) 命令制御式データ処理装置
JPH10187438A (ja) 乗算器の入力に対する遷移を減少させる方法
WO2000017744A1 (en) High frequency pipeline decoupling queue design
WO2005091130A2 (en) Instruction pipeline
JP2584156B2 (ja) プログラム制御型プロセッサ
US6003127A (en) Pipeline processing apparatus for reducing delays in the performance of processing operations
US20080229063A1 (en) Processor Array with Separate Serial Module
JPS6368931A (ja) データ処理回路
KR100188374B1 (ko) 연산처리장치
US20030061468A1 (en) Forwarding the results of operations to dependent instructions quickly
JP2014160393A (ja) マイクロプロセッサ及び演算処理方法
JP2001092658A (ja) データ処理回路及びデータ処理装置
JP3461887B2 (ja) 可変長パイプライン制御装置
JP2503966B2 (ja) 情報処理装置
JP2925842B2 (ja) パイプライン処理装置
US20140281368A1 (en) Cycle sliced vectors and slot execution on a shared datapath
JP2771373B2 (ja) 命令先取り装置
JP3062892B2 (ja) 演算処理装置
JP2636192B2 (ja) 情報処理装置
US20100174885A1 (en) Reconfigurable processor and operating method of the same
JP3669841B2 (ja) マイクロプロセッサ
JP2001034603A (ja) 積和演算処理装置
JPH04116726A (ja) 情報処理装置

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071121

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20081121

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20091121

Year of fee payment: 13

LAPS Cancellation because of no payment of annual fees