JP2001109627A - プロセッサ - Google Patents
プロセッサInfo
- Publication number
- JP2001109627A JP2001109627A JP28816999A JP28816999A JP2001109627A JP 2001109627 A JP2001109627 A JP 2001109627A JP 28816999 A JP28816999 A JP 28816999A JP 28816999 A JP28816999 A JP 28816999A JP 2001109627 A JP2001109627 A JP 2001109627A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- address
- memory
- counter
- processing
- 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.)
- Granted
Links
- 238000012545 processing Methods 0.000 claims abstract description 189
- 238000000034 method Methods 0.000 claims description 42
- 238000010586 diagram Methods 0.000 description 10
- 101000579646 Penaeus vannamei Penaeidin-1 Proteins 0.000 description 5
- 101100064556 Caenorhabditis elegans pek-1 gene Proteins 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 230000003252 repetitive effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 101100443259 Arabidopsis thaliana DIR14 gene Proteins 0.000 description 1
- 101100443261 Arabidopsis thaliana DIR16 gene Proteins 0.000 description 1
- 101100286588 Mus musculus Igfl gene Proteins 0.000 description 1
- 101000832455 Pimpla hypochondriaca Small venom protein 1 Proteins 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000006386 memory function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/325—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for loops, e.g. loop detection or loop counter
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Image Processing (AREA)
Abstract
って繰り返し実行するシステムの処理効率を向上させる
こと。 【解決手段】 このSVP(Scan-line Video Processo
r )10のSVPコア12は、データ入力レジスタ(D
IR)、SIMD型ディジタル信号処理部18およびデ
ータ出力レジスタ(DOR)の三層構造からなってい
る。SIMD型処理部は、1水平走査線上の画素数Nに
等しい数のプロセッシング・エレメントを並列配置す
る。命令発生部(IG)は、SIMD型並列プロセッサ
を動作させるため、所要のプログラムを保持する。この
プログラムには、プロセッシング・エレメントに対する
命令(SIMD命令)だけでなく、ジャンプ、ハードウ
ェア割込み関連の命令(IG命令)も含まれ、SIMD
命令の繰り返し処理と並行して当該IG命令を実行す
る。
Description
理を行うためのプロセッサに係り、特に1つの命令を複
数のクロックサイクルにわたって繰り返し実行する機能
を備えたプロセッサに関する。
MD(Single-Instruction-Multiple-Data)型並列プロ
セッサが知られている。SIMD型並列プロセッサで
は、並列配置された多数(通常、少なくとも100個以
上)のプロセッシング・エレメントが同一の命令にした
がって並列動作するように構成されている。各プロセッ
シング・エレメントは1ビットDSP(Digital-Signal
-Processor)からなり、1つの演算処理を1クロックサ
イクル内に1ビット単位で実行する。したがって、たと
えば1つの8ビットデータを移動する場合には、1ビッ
トのデータ移動を8クロックサイクルかけて8回繰り返
し実行する。また、2つの8ビットデータを加算して9
ビットの加算結果(最上位ビットは桁上げ分)を得るに
は、1ビットの加算演算を9クロックサイクルかけて9
回繰り返し実行することになる。もっとも、多数のプロ
セッシング・エレメントによる演算処理が同時に行なわ
れるため、全体としては高い処理性能を実現することが
可能である。
型並列プロセッサにおいて、全プロセッシング・エレメ
ントに共通の命令を発行する命令発行部には、プロセッ
シング・エレメントに対する命令(SIMD命令)以外
にジャンプ、サブルーチンコール、ハードウェア割込み
関連の命令も用意されることがある。これらの非SIM
D命令はプロセッシング・エレメントとは別の命令実行
部で実行される。
ログラムの実行シーケンスにおいてSIMD命令か非S
IMD命令かの区別なく各命令が順番に1つずつシリア
ルに実行される仕組みになっている。したがって、プロ
セッシング・エレメントによるSIMD命令の実行中に
命令発行部においてプログラムメモリより非SIMD命
令が読み出されたときは、該SIMD命令の実行が終了
するまで該非SIMD命令は待機状態に置かれ、該SI
MD命令の実行が終了してから上記命令実行部で該非S
IMD命令が実行されることになる。そして、非SIM
D命令の実行中は、プロセッシング・エレメントに対し
て命令の不実行を指示するNOP(No-Operation)命令
が与えられる。しかし、このように、非SIMD命令が
実行される度にプロセッシング・エレメント側の動作が
実質的に停止または休止することで、処理性能が制限さ
れている。
もので、1つの命令を複数のクロックサイクルにわたっ
て繰り返し実行するシステムの処理効率を向上させるプ
ロセッサを提供することを目的とする。
要記憶容量を小さくできるプロセッサを提供することを
目的とする。
めに、本発明のプロセッサは、第1形式の命令を1つま
たは複数のクロックサイクルにわたって繰り返し実行す
る第1の命令実行部と、第2形式の命令を前記第1の命
令実行部から独立して実行する第2の命令実行部と、前
記第1形式の命令と前記第2形式の命令とを含むプログ
ラムを蓄積するプログラムメモリと、プログラムの実行
シーケンスにしたがって前記プログラムメモリより第1
形式または第2形式の命令を順次読み出す命令読み出し
手段と、第1形式の命令の実行中に前記プログラムメモ
リより第2形式の命令が読み出されたときは前記第1の
命令実行部による当該第1形式の命令の実行と並行して
前記第2の命令実行部に当該第2形式の命令を実行させ
る命令実行制御手段とを有する。
令実行部で第1形式の命令の繰り返し実行が行なわれて
いる最中にプログラムメモリより読み出された第2形式
の命令については第1命令実行部の処理動作と並行して
第2の命令実行部が該第2形式の命令を実行するので、
第1命令実行部の稼動率ひいては全体のスループットが
向上する。
は、前記第1の命令実行部が、第1形式の命令の命令コ
ード部で規定される処理を1クロックサイクル内に1ビ
ット単位で実行する処理部と、前記プログラムメモリよ
り読み出された各々の前記第1形式の命令についてその
命令の命令コード部をマイクロ命令として前記処理部に
与えるマイクロ命令レジスタと、前記プログラムメモリ
より読み出された各々の前記第1形式の命令についてそ
の命令に係わるデータアドレスを1クロックサイクル毎
に初期値から所定の最終値までインクリメントまたはデ
ィクリメントしながら前記処理部に逐次与えるアドレス
カウンタと、前記プログラムメモリより読み出された各
々の前記第1形式の命令について前記命令コード部で規
定される処理が前記処理部で繰り返し実行される回数を
カウントするリピートカウンタとを有する。
は、前記プログラムメモリより読み出された第1形式の
命令を先入れ先出し方式で蓄積し、読み出した第1形式
の命令を第1の命令実行部に与える先入れ先出し型メモ
リを有してよい。
1形式の命令の実行シーケンと同期して実行されるべき
ものについては、いったん先入れ先出し型メモリに蓄積
し、先入れ先出し型メモリより読み出した時点で第2の
命令実行部で実行する構成としてもよい。
グラムメモリの所要容量を少なくするために、前記プロ
グラムメモリには各命令の一部または全部がコード化さ
れて蓄積され、前記プログラムより読み出された命令を
デコードするデコーダが設けられている構成としてもよ
い。
実施例を説明する。
型並列プロセッサの構成を示す。このSIMD型並列プ
ロセッサは、画像信号を走査線単位で入力、並列演算処
理および出力するSVP(Scan-line Video Processor
)10として構成されている。
ア12と命令発生部(IG)14とを搭載している。S
VPコア12は、データ入力レジスタ(DIR)16、
SIMD型ディジタル信号処理部18およびデータ出力
レジスタ(DOR)20の三層構造からなっている。
号<Control>と外部クロック回路からのクロック<SWC
K>とIG14からのアドレス<ADDRESS>とにしたがっ
て動作し、たとえば水平走査線3本分までの画像データ
D0 〜DN-1 (たとえば48ビット×864画素)を繰
り返し入力する。
1水平走査線上の画素数Nに等しい数(たとえば864
個)のプロセッシング・エレメントPE0 〜PEN-1 を
並列配置(接続)してなる。これらのプロセッシング・
エレメントPE0 ,PE1 ,…PEN-1 は、IG14か
らのアドレス<ADDRESS>およびマイクロ命令<MICROIN
STRUCTION>と外部クロック回路からのクロック<PCLK
>とにしたがって並列動作し、各々対応する画素データ
D0 ,D1 ,…DN-1 について同一の画像処理演算を1
水平走査期間内に実行する。
号<Control>と外部クロック回路からのクロック<SRC
K>とIG14からのアドレス<ADDRESS>とにしたがっ
て動作し、1水平走査期間毎にプロセッシング・エレメ
ントPE0 〜PEN-1 からの演算処理結果のデータを水
平走査線1本分の画像データD0'〜DN-1'(たとえば3
2ビット×864画素)に揃えて出力する。
にそれぞれ供給されるクロック<SWCK> 、<PCLK>お
よび<SRCK> は互いに非同期であってよい。また、D
IR16から処理部18へのデータ転送、および処理部
18からDOR20へのデータ転送は、それぞれ水平ブ
ランキング期間内に行われる。
びDOR20によりそれぞれ1水平走査線分のデータ入
力、並列演算処理およびデータ出力がパイプライン方式
で非同期かつ並列的に実行され、リアルタイムな画像処
理が行われる。
並列プロセッサとして動作させるため、所要のプログラ
ムを保持するRAMまたはROMからなるプログラムメ
モリを内蔵しており、外部からのフラグ信号<IGFL
AG−A/B>等にしたがって、飛び越し、サブルーチ
ンコール、割り込み等も行えるようになっている。フラ
グ信号<IGFLAG−A/B>は、たとえば、入力画
像信号より抽出された水平同期信号<HSYNC>に同期し
て与えられる。
の作用を概略的に説明する。SVPコア12内の各部の
動作は、上記したようにIG14からのアドレス<ADDR
ESS>およびマイクロ命令<MICROINSTRUCTION>や外部
クロック回路からのクロック<PCLK> 等によって制御
される。
入力画像データD0 〜DN-1 を蓄積できる記憶容量(た
とえば48ビット×864ワード)を有し、画素単位で
ブロック化されている。入力画像データD0 〜DN-1 が
DIR16内を転送される途中、各画素データ…,DK-
2,DK-1,DK,DK+1,DK+2,…は1個ずつ次々と引き落と
されるようにしてDIR16の各ブロック…,K−2,
K−1,K,K+1,K+2,…のレジスタ群に取り込
まれる。
トPEK は、各々が所定の容量(たとえば192ビッ
ト)を有する一対のレジスタ・ファイルRF0,RF1
と、1個の1ビット演算論理ユニット(ALU)24
と、複数個たとえば4個のワーキング・レジスタ26
[M,A,B,C]と、左右隣の複数個(たとえば左右
各4個)のプロセッシング・エレメントPEK-4,PEK-
3,PEK-2,PEK-1,PEK+1,PEK+2,PEK+3,PEK+4
とデータをやりとりするL/R(左右)通信部(LRC
OM)28とを有している。
16の対応するブロックのレジスタ群に接続され、他方
のレジスタ・ファイルRF1 はDOR20の対応するブ
ロックのレジスタ群に接続されている。レジスタ・ファ
イルRF0,RF1 の片方または双方から読み出された1
ビットのデータは、ワーキング・レジスタ[M,A,
B,C]のいずれかに与えられるとともに、L/R通信
部28のマルチプレクサ30およびラッチ回路32を介
して隣接する左右各4個のプロセッシング・エレメント
PEK-4,PEK-3,PEK-2,PEK-1 ,PEK+1,PEK+2,
PEK+3,PEK+4へ送られる。
グ・エレメントPEK-4,PEK-3,PEK-2,PEK-1,P
EK+1,PEK+2,PEK+3,PEK+4からのデータも当該プ
ロセッシング・エレメントPEK のL/R通信部28の
マルチプレクサ34,36に送られてきて、それらのデ
ータの中のいずれか1つが選択されてワーキング・レジ
スタ[M,A,B,C]のいずれかに入力される。図2
では、左隣のプロセッシング・エレメントPEK-4,PE
K-3,PEK-2,PEK-1からのデータのいずれか1つが選
択され、ワーキング・レジスタ[A]に入力されたこと
を示している。
[M,A,B,C]より与えられるデータについて1ビ
ット単位の加算演算を実行し、その演算結果(和,桁上
げ)を出力する。ALU24の演算結果のうち、和(S
M)のビットはレジスタ・ファイルRF0,RF1 のいず
れかに書き込まれ、桁上げ(CY)のビットは図示しな
いマルチプレクサを介してワーキング・レジスタ[C]
に与えられる。
タD0'〜DN-1'を蓄積できる記憶容量(たとえば32ビ
ット×864ワード)を有し、画素単位でブロック化さ
れている。各ブロック毎に処理部18よりDOR20に
送られてきた演算処理結果の画素データD0'〜DN-1'
は、1水平走査期間をかけて左端の画素データD0'を先
頭に後続の画素データD1', D2', …が数珠繋ぎに続く
ように順にDOR20の各ブロックから送出される。
RF1 に2ライン分以上の画像データを蓄積することが
可能であり、これによってラインメモリの機能も実現可
能となっている。また、処理部18は、1水平走査期間
中に複数チャンネルの画像データについて時分割的に各
個別の処理を実行することも可能である。
4の要部の構成を示す。このIG14は、プログラムメ
モリ40の外に、プログラムカウンタ42、IG命令実
行ユニット44、マイクロ命令レジスタ46、アドレス
カウンタ48,50、リピートカウンタ52、一致回路
54、切換スイッチ56,58、ゲート60,62およ
びインバータ64を有している。
y Memory)またはRAM(Random Access Memory)から
なり、このSIMD型並列プロセッサの処理動作に必要
なプログラムを保持する。このプログラムメモリ40に
格納されるプログラムには、処理部18のプロセッシン
グ・エレメントPE0 〜PEN-1 に対する命令(以下、
SIMD命令と称する)だけでなく、ジャンプ、サブル
ーチンコール、ハードウェア割込み関連の命令(以下、
IG命令と称する)も含まれている。
々の命令(プログラムデータ)は、たとえば46ビット
[0〜45]のデータ長を有する。46ビット[0〜4
5]のうち、[40,41]の2ビット・データが当該
命令の形式つまりSIMD命令なのか、IG命令なのか
を表す。
9]、[12〜21]の各10ビット・データが各プロ
セッシング・エレメントPEKにおけるレジスタ・ファ
イルRF0,RF1内の初期アドレスをそれぞれ表す。ま
た、フィールド[10〜11、22〜39]の20ビッ
ト・データが当該SIMD命令の命令コード部を構成
し、これがSVPコア12に対するマイクロ命令<MICR
OINSTRUCTION>となる。また、フィールド[42〜4
5]の4ビット・データが、当該SIMD命令のリピー
ト値(繰り返し回数)を表す。
0,41]を除く[0〜39,42〜45]のデータが
当該IG命令の命令コードおよびオペランド(データア
ドレス)を与える。
実行シーケンスにおいてクロックサイクル毎にカウンタ
値をメモリアドレスとしてプログラムメモリ40(より
詳細にはメモリ読出回路(図示せず))に与える。
メモリ40より読み出されたIG命令を逐一実行する。
本実施例におけるIG命令は、上記したようにジャン
プ、サブルーチンコール、割込み等であるから、プログ
ラムの実行シーケンスを変えることがある。IG命令実
行ユニット44は、1クロックサイクルでIG命令を実
行し、そのIG命令で指定されたメモリアドレスをプロ
グラムカウンタ42にセットする。
令形式識別データ[40,41]は、当該命令がSIM
D命令であるときは(0,0)である。このとき、アン
ドゲート60の出力は論理値“0”となり、両切換スイ
ッチ56,58はそれぞれ入力端子aに切り換わる。
メモリ40より読み出されたSIMD命令の中の命令コ
ード部[10〜11,22〜39]を切換スイッチ56
を介して受け取る。該SIMD命令の実行中、マイクロ
命令レジスタ46はこの命令コード部をマイクロ命令<
MICROINSTRUCTION>としてSVPコア12内の各プロセ
ッシング・エレメントPE0 〜PEN-1に与える。
リ40より読み出されたSIMD命令の中のアドレス
[0〜9]を初期値として入力する。該SIMD命令の
実行中に、アドレスカウンタ48は、クロック<PCLK>
に同期してカウンタ値をインクリメントし、各クロック
サイクル毎にカウンタ値をアドレス<ADDRESS>として
各プロセッシング・エレメントPEK内の一方のレジス
タ・ファイルRF0に与える。
リ40より読み出されたSIMD命令の中のアドレス
[12〜21]を初期値として入力する。該SIMD命
令の実行中に、アドレスカウンタ50は、クロック<PC
LK>に同期してカウンタ値をインクリメントし、各クロ
ックサイクル毎にカウンタ値をアドレス<ADDRESS>と
して各プロセッシング・エレメントPEK内の他方のレ
ジスタ・ファイルRF1に与える。
リ40より読み出されたSIMD命令の中のリピート値
[42〜45]を当該SIMD命令の残りリピート値
(残り繰り返し回数)の初期値としてスイッチ58を介
して受け取る。該SIMD命令の実行中、リピートカウ
ンタ52はクロック<PCLK>に同期してカウンタ値(残
りリピート値)をディクリメントする。
り出力される残りリピート値を入力し、残りリピート値
が「1」になったときに論理値“1”を出力する。一致
回路54からの一致信号“1”は、オアゲート62を介
してプログラムカウンタ42にインクメント・イネーブ
ル信号として与えられる。プログラムカウンタ42は、
インクメント・イネーブル信号を受け取ると、直後のク
ロック<PCLK>に応動してカウンタ値(メモリアドレ
ス)を1つインクリメントする。
イクロ命令レジスタ46、両アドレスカウンタ48,5
0およびリピートカウンタ52に対しては入力イネーブ
ル信号として与えられる。この入力イネーブル信号が与
えられると、これらのレジスタ46およびカウンタ4
8,50,52は次のクロック<PCLK>に応動してプロ
グラムメモリ側からのデータを入力またはラッチする。
令形式識別データ[40,41]は、当該命令がIG命
令であるときは(1,0)である。このとき、アンドゲ
ート60の出力は論理値“1”となり、両スイッチ5
6,58はそれぞれ入力端子bに切り換わる。スイッチ
56が入力端子bに切り換わると、命令不実行(動作停
止)を指示するNOP(No-Operation)命令のコード<
NOP>が切換スイッチ56を介してマイクロ命令レジ
スタ46に与えられる。切換スイッチ58が入力端子b
に切り換わると、命令実行の残り繰り返し回数が1回で
あることを示す残りリピート値<1>が切換スイッチ5
8を介してリピートカウンタ52に与えられる。
G命令が読み出されアンドゲート60の出力が論理値
“1”になると、この論理値“1”の信号はオアゲート
62を介してプログラムカウンタ42にインクリメント
・イネーブル信号として与えられる。この場合も、プロ
グラムカウンタ42は、直後のクロックでカウンタ値
(メモリアドレス)を1つインクリメントする。
46、アドレスカウンタ48,50およびリピートカウ
ンタ52は、後述するようにSVPコア12の処理と関
連してSIMD命令の実行に係わるものであり、機能的
にはSIMD命令実行部に属する。
ログラム実行処理の手順を示す。図5に、このSVP1
0で実施可能なプログラムの一例を示す。図6に、この
SVP10でプログラム例(図5)を実行する場合の各
クロックサイクル毎の各部のステータスまたは動作を示
す。図7および図8に、SVP10における移動命令お
よび加算命令の処理手順をそれぞれ示す。
実施例のSVP10の作用を説明する。
で、プログラムカウンタ(PC)42のカウンタ値を初
期値「0」に、リピートカウンタ(RPT CNTR)52のカ
ウンタ値を初期値「1」にそれぞれセットする(ステッ
プA1)。
イクルにおいて、ステップA2では、プログラムカウン
タ(PC)42のカウンタ値で指示されるメモリアドレ
ス「0」にてプログラムメモリ40より命令(inst)が
読み出される。
CNTR)52のカウンタ値が「1」になっている。した
がって、ステップA4に入り、命令形式識別データ[4
0,41]から当該命令(inst)の形式が識別される。
アドレス「0」の命令はSIMD命令に属する移動命令
である。この移動命令の内容は、R0[17(H):10
(H)]←R1[117(H):110(H)]である。すなわ
ち、各プロセッシング・エレメントPEKにおいてレジ
スタ・ファイルRF1のアドレス「110(H)」〜「11
7(H)」から8ビットのデータをレジスタ・ファイルR
F0のアドレス「10(H)」〜「17(H)」に転送すると
いうものである。
令の繰り返し回数つまりリピート値(RPT)が8
(回)であることを指示している。“M=1”は、各プ
ロセッシング・エレメントPEK内のワーキングレジス
タ[M]に “1”をセットすることを指示している。
“A=R1(110)”は、レジスタ・ファイルRF1のア
ドレス「110(H)」(初期アドレス)に格納されてい
る1ビットのデータをワーキングレジスタ[A]に与え
ることを指示している。“B=0”,“C=0”はワー
キングレジスタ[B],[C]にそれぞれ“0”,
“0”をセットすることを指示している。“R0(10)
=SM”は、ALU24より出力される加算結果の和
(SM)をレジスタ・ファイルRF0のアドレス「10
(H)」(初期アドレス)に格納することを指示してい
る。なお、移動命令の演算処理では、ワーキングレジス
タ[A]の内容がそのままALU24の演算結果として
出力され、桁上げ(CY)は発生しない。
に、一般形式として、各プロセッシング・エレメントP
EK内のワーキング・レジスタ[M,A,B,C]にお
ける入力値または入力元と、ALU24の演算結果の転
送先と、命令繰り返し数とを定義する。
SIMD命令であることが判明したので、次にステップ
A5,A6の処理が行なわれる。この場合、SIMD命令
なので、上記したようにアンドゲート60の出力が論理
値“0”となり、両スイッチ56,58がそれぞれ入力
端子aに切り換わる。また、リピートカウンタ(RPTCNT
R)52のカウンタ値が初期値「1」にセットされてい
るため、一致回路54の出力は論理値“1”になってお
り、この論理値“1”の信号が入力イネーブル信号とし
てレジスタ46およびカウンタ48,50,52に与え
られている。
この命令(inst)の命令コード部[10〜11,22〜
39]がスイッチ56を介してマイクロ命令レジスタ
(INSTREG)46にクロック<PCLK>のタイミングでセッ
トされる。また、この命令(inst)のアドレス部[0〜
9],[12〜21]がそれぞれアドレスカウンタ(RF
0AD REG)48,(RF0AD REG)50にクロック<PCLK>
のタイミングでセットされる。また、この命令(inst)
のリピート値[42〜45]がリピートカウンタ(RPT
CNTR)52にクロック<PCLK>のタイミングでセットさ
れる。今回のリピート値[42〜45]は「8」である
から、一致回路54の出力が論理値“0”に変わる。
は、IG14のマイクロ命令レジスタ(INST REG)46
およびアドレスカウンタ(RF0AD REG)48,(RF0AD R
EG)50よりそれぞれ与えられるマイクロ命令<MICROI
NSTRUCTION>およびアドレス<ADDRESS>にしたがって
1ビット単位の演算処理(図7のステップB2)が実行
される。この結果、各プロセッシング・エレメントPE
K内でレジスタ・ファイルRF1の初期アドレス「110
(H)」に格納されている1ビットのデータがワーキング
レジスタ[A]およびALU24を介してレジスタ・フ
ァイルRF0の初期アドレス「10(H)」に転送される。
カウンタ(PC)42が、一致回路54からの論理値
“1”のインクリメント・イネーブル信号を受けてお
り、カウンタ値(メモリアドレス)を1つインクリメン
トする。その結果、本例では、プログラムカウンタ(P
C)42のカウンタ値(メモリアドレス)が「0」から
「1」に更新される。
サイクルの時間内に行なわれる。
ロックサイクルに入ると、ステップA2で、プログラム
カウンタ(PC)42のカウンタ値で指示されるメモリ
アドレス「1」にてプログラムメモリ40より命令(in
st)が読み出される。
命令の形式には関係なく、リピートカウンタ(RPT CNT
R)52のカウンタ値が「1」であるか否かが判定され
る。本例の場合、この時点のリピートカウンタ値は
「8」であるから、一致回路54の出力は“0”であ
り、“1”ではない。これにより、ステップA7,A8の
処理が選択される。
クロック<PCLK>のタイミングで、アドレスカウンタ(R
F0AD REG)48,(RF0AD REG)50のカウンタ値(ア
ドレス)がそれぞれ1つインクリメントされるととも
に、リピートカウンタ(RPT CNTR)52のカウンタ値
(残りリピート値)が1つディクリメントされて「7」
になる。このIG14内の処理は、図7ではステップB
3の処理に相当する。
14のマイクロ命令レジスタ(INSTREG)46およびア
ドレスカウンタ(RF0AD REG)48,(RF0AD REG)50
よりそれぞれ与えられるマイクロ命令<MICROINSTRUCTI
ON>およびアドレス<ADDRESS>にしたがって1ビット
単位の演算処理(図7のステップB2)が実行される。
この結果、各プロセッシング・エレメントPEK内でレ
ジスタ・ファイルRF1の初期アドレスの次のアドレス
「111(H)」に格納されている1ビットのデータがワ
ーキングレジスタ[A]およびALU24を介してレジ
スタ・ファイルRF0の初期アドレスの次のアドレス
「11(H)」に転送される。
メモリ40より現在読み出されている命令(inst)がS
IMD命令なのかIG命令なのかが、命令形式識別デー
タ[40,41]からインバータ64およびアンドゲー
ト60で判定される。
令に属するDINT(Disable Interrupt)命令であ
る。これにより、ステップA10に入り、IG命令実行ユ
ニット44がDINT命令を実行する。DINT命令
は、ハードウェア・インタラプトを無効にするもので、
たとえハードウェア・インタラプトが発生した場合でも
分岐することなく1つ先のメモリアドレスの命令に進む
ことを指示する命令である。したがって、このDINT
命令の実行によって、プログラムカウンタ42のカウン
タ値(メモリアドレス)が1つインクリメントされて、
「2」になる。
10)は1クロックサイクルの時間内に行なわれる。
サイクルでも、リピートカウンタ(RPT CNTR)52のカ
ウンタ値(残りリピート値)が「7」であるから(ステ
ップA3)、ステップA7,A8の処理が選択される。
では、アドレスカウンタ(RF0AD REG)48,(RF0AD R
EG)50のカウンタ値(アドレス)がそれぞれ1つイン
クリメントされるとともに、リピートカウンタ(RPT CN
TR)52のカウンタ値(残りリピート値)が1つディク
リメントされて「6」になる。そして、処理部18の各
プロセッシング・エレメントPEKでは、レジスタ・フ
ァイルRF1のアドレス「112(H)」に格納されている
1ビットのデータがワーキングレジスタ[A]およびA
LU24を介してレジスタ・ファイルRF0のアドレス
「12(H)」に転送される。
でプログラムメモリ40より読み出された命令(inst)
がメモリアドレス「2」のJFAZ(Jump on Flag A Z
ero)命令であるから、IG命令に属するものであるこ
とが判明する。つまり、アンドゲート60の出力が
“1”である。
10に入り、IG命令実行ユニット44がJFAZ命令を
実行する。JFAZ命令は、フラグ信号<IGFLAG
−A>のレベルを検査して、そのレベルが論理値“0”
であるときは所定の分岐アドレス(本例では「50」)
にメモリアドレスをジャンプさせるものである。本例で
は、この分岐条件が成立しなかったものとする。その場
合は、プログラムカウンタ42のカウンタ値を1つ先の
メモリアドレス「3」に進める。
サイクルでは、リピートカウンタ(RPT CNTR)52のカ
ウンタ値(残りリピート値)が「6」であるから(ステ
ップA3)、やはりステップA7,A8の処理が選択され
る。
では、アドレスカウンタ(RF0AD REG)48,(RF0AD R
EG)50のカウンタ値(アドレス)がそれぞれ1つイン
クリメントされるとともに、リピートカウンタ(RPT CN
TR)52のカウンタ値(残りリピート値)が1つディク
リメントされて「5」になる。各プロセッシング・エレ
メントPEK内では、レジスタ・ファイルRF1のアドレ
ス「113(H)」に格納されている1ビットのデータが
ワーキングレジスタ[A]およびALU24を介してレ
ジスタ・ファイルRF0のアドレス「13(H)」に転送さ
れる。
メモリ40より現在読み出されている命令(inst)がメ
モリアドレス「3」のJFBZ(Jump on Flag B Zer
o)命令であるから、IG命令に属するものであること
が判明する。
10に入り、IG命令実行ユニット44がJFBZ命令を
実行する。JFBZ命令は、フラグ信号<IGFLAG
−B>のレベルを検査して、そのレベルが論理値“0”
であるときは所定の分岐アドレス(本例では「60」)
にメモリアドレスをジャンプさせるものである。ここで
は、この分岐条件が成立しなかったものとする。したが
って、プログラムカウンタ42のカウンタ値を1つ先の
メモリアドレス「4」に進める。
サイクルでは、リピートカウンタ(RPT CNTR)52のカ
ウンタ値(残りリピート値)が「5」であるから、やは
りステップA7,A8の処理が選択される。
では、アドレスカウンタ(RF0AD REG)48,(RF0AD R
EG)50のカウンタ値(アドレス)がそれぞれ1つイン
クリメントされるとともに、リピートカウンタ(RPT CN
TR)52のカウンタ値(残りリピート値)が1つディク
リメントされて「4」になる。各プロセッシング・エレ
メントPEK内では、レジスタ・ファイルRF1の初期ア
ドレスから4番目の位置「114(H)」に格納されてい
る1ビットのデータがワーキングレジスタ[A]および
ALU24を介してレジスタ・ファイルRF0の初期ア
ドレスから4番目の位置「14(H)」に転送される。
でプログラムメモリ40より読み出されている命令(メ
モリアドレス「4」のJMP(Jump)命令)がIG命令
に属するものであることが判明する。
ニット44がJMP命令を実行し、このJMP命令で指
定された分岐先のメモリアドレス(本例では「10」)
にプログラムカウンタ42のカウンタ値を更新する。
サイクルでは、ステップA2で、プログラムメモリ40
のメモリアドレス「10」から移動命令(図5)が読み
出される。理解されるように、メモリアドレス「10」
の移動命令の内容は、R1[27(H):20(H)]←R0
[127(H):120(H)]である。すなわち、各プロセ
ッシング・エレメントPEKにおいてレジスタ・ファイ
ルRF0にアドレス「120(H)」を初期アドレスとして
格納されている8ビットのデータを1ビットずつ8クロ
ックサイクルかけてレジスタ・ファイルRF1にアドレ
ス「20(H)」を初期アドレスとして転送するというも
のである。
カウンタ(RPT CNTR)52のカウンタ値(残りリピート
値)が「4」であるから(ステップA3)、ステップA
7,A8の処理が選択される。
では、アドレスカウンタ(RF0AD REG)48,(RF0AD R
EG)50のカウンタ値(アドレス)がそれぞれ1つイン
クリメントされるとともに、リピートカウンタ(RPT CN
TR)52のカウンタ値(残りリピート値)が1つディク
リメントされて「3」になる。各プロセッシング・エレ
メントPEK内では、レジスタ・ファイルRF1のアドレ
ス「115(H)」に格納されている1ビットのデータが
ワーキングレジスタ[A]およびALU24を介してレ
ジスタ・ファイルRF0のアドレス「15(H)」に転送さ
れる。
メモリ40より読み出されている命令(メモリアドレス
「10」の移動命令)がSIMD命令に属するものであ
ることが判明する。
く、このクロックサイクルを終了する。したがって、プ
ログラムカウンタ42のカウンタ値は更新されず、クロ
ックサイクル開始時のメモリアドレス「10」が維持さ
れる。
サイクルでは、前サイクルと同様にプログラムメモリ4
0のメモリアドレス「10」より移動命令が読み出され
る(ステップA2)。リピートカウンタ(RPT CNTR)5
2のカウンタ値(残りリピート値)がまだ「3」である
から、この場合もステップA7,A8の処理が選択され
る。
では、アドレスカウンタ(RF0AD REG)48,(RF0AD R
EG)50のカウンタ値(アドレス)がそれぞれ1つイン
クリメントされるとともに、リピートカウンタ(RPT CN
TR)52のカウンタ値(残りリピート値)が1つディク
リメントされて「2」になる。各プロセッシング・エレ
メントPEK内では、レジスタ・ファイルRF1のアドレ
ス「116(H)」に格納されている1ビットのデータが
ワーキングレジスタ[A]およびALU24を介してレ
ジスタ・ファイルRF0のアドレス「16(H)」に転送さ
れる。
メモリ40より読み出されている命令(メモリアドレス
「10」の移動命令)がSIMD命令に属するものであ
ることが判明する。したがって、ステップA10に入るこ
となく、プログラムカウンタ42のカウンタ値が「1
0」に維持されたまま、このクロックサイクルを終了す
る。
サイクルでも、前サイクルと同様にプログラムメモリ4
0のメモリアドレス「10」より移動命令が読み出され
る(ステップA2)。ステップA3ではリピートカウンタ
(RPT CNTR)52のカウンタ値(残りリピート値)がま
だ「2」であるから、この場合もステップA7,A8の処
理が選択される。
レスカウンタ(RF0AD REG)48,(RF0AD REG)50よ
りそれぞれ与えられるアドレス<ADDRESS>が1つイン
クリメントされることにより、SVPコア12の各プロ
セッシング・エレメントPEK内でレジスタ・ファイル
RF1のアドレス「117(H)」に格納されている1ビッ
トのデータがワーキングレジスタ[A]およびALU2
4を介してレジスタ・ファイルRF0のアドレス「17
(H)」に転送される。これで、今回の移動命令が指示し
ていた8ビットのデータ移動処理(R0[17(H):10
(H)]←R1[117(H):110(H)])が完了する。一
方、IG14のリピートカウンタ52のカウンタ値(残
りリピート値)が1つディクリメントされて「1」にな
る。これにより、一致回路54の出力が論理値“1に変
わる。
は、オアゲート62を介してプログラムカウンタ42に
インクリメント・イネーブル信号として与えられるとと
もに、マイクロ命令レジスタ46、アドレスカウンタ4
8,50およびリピートカウンタ52に入力イネーブル
信号として与えられる。
サイクルでも、プログラムメモリ40のメモリアドレス
「10」から移動命令が読み出される(ステップA
2)。しかし、この時、リピートカウンタ(RPT CNTR)
52のカウント値が「1」になっているので、ステップ
A4に入り、命令形式の識別が行なわれる。この場合、
移動命令はSIMD命令であるから、ステップA5の処
理に入る。
メモリアドレス「10」の移動命令(inst)の命令コー
ド部[10〜11,22〜39]が切換スイッチ56を
介してマイクロ命令レジスタ(INST REG)46にクロッ
ク<PCLK>のタイミングでセットされる。また、この移
動命令(inst)のアドレス部[0〜9],[12〜2
1]がそれぞれアドレスカウンタ(RF0AD REG)48,
(RF0AD REG)50にクロック<PCLK>のタイミングでセ
ットされる。また、この移動命令(inst)のリピート値
[42〜45]がリピートカウンタ(RPT CNTR)52に
クロック<PCLK>のタイミングでセットされる。今回の
リピート値[42〜45]は「8」であるから、一致回
路54の出力が論理値“0”に変わる。
4のマイクロ命令レジスタ(INST REG)46およびアド
レスカウンタ(RF0AD REG)48,(RF0AD REG)50よ
りそれぞれ与えられるマイクロ命令<MICROINSTRUCTION
>およびアドレス<ADDRESS>にしたがって1ビット単
位の演算処理(図7のステップB2)が実行される。こ
の結果、各プロセッシング・エレメントPEK内でレジ
スタ・ファイルRF0の初期アドレス「120(H)」に格
納されている1ビットのデータがワーキングレジスタ
[A]およびALU24を介してレジスタ・ファイルR
F1の初期アドレス「20(H)」に転送される。
カウンタ(PC)42が、アンドゲート60からの論理
値“1”のインクリメント・イネーブル信号を受けてお
り、カウンタ値(メモリアドレス)を1つインクリメン
トする。その結果、本例では、プログラムカウンタ(P
C)42のカウンタ値(メモリアドレス)が「10」か
ら「11」に更新される。
ックサイクルでは、ステップA2で、プログラムメモリ
40のメモリアドレス「11」からJMP命令が読み出
される。ステップA3ではリピートカウンタ(RPT CNT
R)52のカウンタ値(残りリピート値)が「8」であ
るから、この場合もステップA7,A8の処理が選択され
る。
では、アドレスカウンタ(RF0AD REG)48,(RF0AD R
EG)50のカウンタ値(アドレス)がそれぞれ1つイン
クリメントされるとともに、リピートカウンタ(RPT CN
TR)52のカウンタ値(残りリピート値)が1つディク
リメントされて「7」になる。各プロセッシング・エレ
メントPEK内では、レジスタ・ファイルRF0のアドレ
ス「121(H)」に格納されている1ビットのデータが
ワーキングレジスタ[A]およびALU24を介してレ
ジスタ・ファイルRF1のアドレス「21(H)」に転送さ
れる。
ムメモリ40より読み出されている命令(メモリアドレ
ス「11」のJMP命令)がIG命令に属するものであ
ることが判明する。
ユニット44がJMP命令を実行し、このJMP命令で
指定された分岐先のメモリアドレス(本例では「5」)
にプログラムカウンタ42のカウンタ値を更新する。
ックサイクルでは、ステップA2で、プログラムメモリ
40のメモリアドレス「5」から加算命令が読み出され
る。本例のプログラム(図5)では、メモリアドレス
「5,6,7」の3行にわたり、R1[28(H):20
(H)]←R0[17(H):10(H)]+R1[27(H):20
(H)]という内容、つまり各プロセッシング・エレメン
トPEKにおいてレジスタ・ファイルRF0のアドレス
[17(H):10(H)]に格納されている8ビット・デー
タとレジスタ・ファイルRF1のアドレス[27(H):2
0(H)]に格納されている8ビット・データとを加算
し、最上位の桁上げを含む9ビットの加算結果をレジス
タ・ファイルRF1のアドレス[28(H):20(H)]に
格納するという加算演算を規定している。
令は最下位1ビット分の加算演算を規定している。より
詳細には、“RPT=1”は、この加算演算の繰り返し
回数が1回であることを指示している。“M=1”は、
各プロセッシング・エレメントPEK内のワーキングレ
ジスタ[M]に “1”をセットすることを指示してい
る。“A=R0(10)”は、レジスタ・ファイルRF0の
アドレス「10(H)」に格納されている1ビットのデー
タをワーキングレジスタ[A]に与えることを指示して
いる。“B=R1(20)”は、レジスタ・ファイルRF1
のアドレス「20(H)」に格納されている1ビットのデ
ータをワーキングレジスタ[B]に与えることを指示し
ている。“C=0”はワーキングレジスタ[C]に
“0”をセットすることを指示している。“R1(20)
=SM”は、ALU24より出力される加算結果の和
(SM)をレジスタ・ファイルRF1のアドレス「20
(H)」に格納することを指示している。
CNTR)52のカウンタ値(残りリピート値)が「7」
であるから、ステップA7,A8の処理が選択される。
では、アドレスカウンタ(RF0AD REG)48,(RF0AD R
EG)50のカウンタ値(アドレス)がそれぞれ1つイン
クリメントされるとともに、リピートカウンタ(RPT CN
TR)52のカウンタ値(残りリピート値)が1つディク
リメントされて「6」になる。各プロセッシング・エレ
メントPEK内では、レジスタ・ファイルRF0のアドレ
ス「122(H)」に格納されている1ビットのデータが
ワーキングレジスタ[A]およびALU24を介してレ
ジスタ・ファイルRF1のアドレス「22(H)」に転送さ
れる。
メモリ40より読み出されている命令(メモリアドレス
「5」の加算命令)がSIMD命令に属するものである
ことが判明する。したがって、ステップA10に入ること
なく、プログラムカウンタ42のカウンタ値を「5」に
維持したまま、このクロックサイクルを終了する。
5番目の各クロックサイクルでは、ステップA2でプロ
グラムメモリ40のメモリアドレス「5」から上記加算
命令が読み出され、ステップA3の判定を経てステップ
A7,A8の処理が選択される。
では、アドレスカウンタ(RF0AD REG)48,(RF0AD R
EG)50のカウンタ値(アドレス)が各サイクル毎にそ
れぞれ1つインクリメントされるとともに、リピートカ
ウンタ(RPT CNTR)52のカウンタ値(残りリピート
値)が各サイクル毎に1つディクリメントされて
「5」,「4」,「3」,「2」と変化する。処理部1
8の各プロセッシング・エレメントPEK内では、各サ
イクル毎に1ビットずつレジスタ・ファイルRF0のア
ドレス「123(H)」〜「126(H)」のデータがワーキ
ングレジスタ[A]およびALU24を介してレジスタ
・ファイルRF1のアドレス「23(H)」〜「26(H)」
に転送される。
0より読み出された命令(メモリアドレス「5」の加算
命令)がSIMD命令であるから、ステップA8からス
テップA10に入ることなく、プログラムカウンタ42の
カウンタ値を「5」に維持したまま、各クロックサイク
ルを終了する。
ックサイクルでは、ステップA2で、プログラムメモリ
40のメモリアドレス「5」から上記加算命令が読み出
される。ステップA3ではリピートカウンタ(RPT CNT
R)52のカウンタ値(残りリピート値)が「2」であ
るから、この場合もステップA7,A8の処理が選択され
る。
レスカウンタ(RF0AD REG)48,(RF0AD REG)50よ
りそれぞれ与えられるアドレス<ADDRESS>が1つイン
クリメントされることにより、SVPコア12の各プロ
セッシング・エレメントPEK内でレジスタ・ファイル
RF0のアドレス「127(H)」の1ビット・データがワ
ーキングレジスタ[A]およびALU24を介してレジ
スタ・ファイルRF1のアドレス「27(H)」に転送され
る。これで、今回の移動命令が指示していた8ビットの
データ移動処理(R1[27(H):20(H)]←R0[12
7(H):120(H)])が完了する。一方、IG14のリ
ピートカウンタ52のカウンタ値(残りリピート値)が
1つディクリメントされて「1」になる。これにより、
一致回路54の出力が論理値“1となる。
は、オアゲート62を介してプログラムカウンタ42に
インクリメント・イネーブル信号として与えられるとと
もに、マイクロ命令レジスタ46、アドレスカウンタ4
8,50およびリピートカウンタ52に入力イネーブル
信号として与えられる。
ることなく、プログラムカウンタ42のカウンタ値を
「5」に維持したまま、クロックサイクルを終了する。
ックサイクルでも、プログラムメモリ40においてメモ
リアドレス「5」の加算命令が読み出される(ステップ
A2)。しかし、この時、リピートカウンタ(RPT CNT
R)52のカウント値が「1」になっているので、ステ
ップA4に入り、命令形式の識別が行なわれる。この場
合、移動命令はSIMD命令であるから、ステップA5
の処理に入る。
メモリアドレス「5」の加算命令(inst)の命令コード
部[10〜11,22〜39]が切換スイッチ56を介
してマイクロ命令レジスタ(INST REG)46にクロック
<PCLK>のタイミングでセットされる。また、この加算
命令(inst)のアドレス部[0〜9],[12〜21]
がそれぞれアドレスカウンタ(RF0AD REG)48,(RF0
AD REG)50にクロック<PCLK>のタイミングでセット
される。また、この加算命令(inst)のリピート値[4
2〜45]がリピートカウンタ(RPT CNTR)52にクロ
ック<PCLK>のタイミングでセットされる。今回のリピ
ート値[42〜45]は「1」であるから、一致回路5
4の出力は論理値“1”のままである。
4のマイクロ命令レジスタ(INST REG)46およびアド
レスカウンタ(RF0AD REG)48,(RF0AD REG)50よ
りそれぞれ与えられるマイクロ命令<MICROINSTRUCTION
>およびアドレス<ADDRESS>にしたがって1ビット単
位の演算処理(図8のステップC1)が実行される。こ
の結果、各プロセッシング・エレメントPEK内でレジ
スタ・ファイルRF0のアドレス「10(H)」に格納され
ている1ビットのデータとレジスタ・ファイルRF1の
アドレス「20(H)」に格納されている1ビットのデー
タとがALU24で加算され、その加算結果の和(S
M)がレジスタ・ファイルRF1のアドレス「20(H)」
に書き込まれる。
カウンタ(PC)42が、一致回路54からの論理値
“1”のインクリメント・イネーブル信号を受けてお
り、カウンタ値(メモリアドレス)を1つインクリメン
トする。その結果、本例では、プログラムカウンタ(P
C)42のカウンタ値(メモリアドレス)が「5」から
「6」に更新される。
ックサイクルでは、プログラムメモリ40においてメモ
リアドレス「6」の加算命令が読み出される(ステップ
A2)。このメモリアドレス「6」の加算命令は、上記
加算演算(R1[28(H):20(H)]←R0[17(H):
10(H)]+R1[27(H):20(H)])の中で最下位1
ビットを除く上位7ビット分の加算演算(R1[27
(H):21(H)]←R0[17(H):11(H)]+R1[27
(H):21(H)])を規定している。上記したメモリアド
レス「5」の加算命令と相違しているのは、1ビット加
算演算の回数つまり命令繰り返し回数(RPT)の値
と、ワーキングレジスタ[C]に直前のサイクルでAL
U24より出力されている桁上げ(CY)をセットする
点である。
タ(RPT CNTR)52のカウント値が「1」になっている
ので、ステップA4が選択される。ステップA4では、メ
モリアドレス「6」の加算命令がSIMD命令であるか
ら、ステップA5.A6の処理が選択される。
メモリアドレス「6」の加算命令(inst)の命令コード
部[10〜11,22〜39]が切換スイッチ56を介
してマイクロ命令レジスタ(INST REG)46にクロック
<PCLK>のタイミングでセットされる。また、この加算
命令(inst)のアドレス部[0〜9],[12〜21]
がそれぞれアドレスカウンタ(RF0AD REG)48,(RF0
AD REG)50にクロック<PCLK>のタイミングでセット
される。また、この加算命令(inst)のリピート値[4
2〜45]がリピートカウンタ(RPT CNTR)52にクロ
ック<PCLK>のタイミングでセットされる。今回のリピ
ート値[42〜45]は「7」であるから、一致回路5
4の出力が論理値“0”に変わる。なお、ステップA5
におけるIG14内の処理は図8のステップC2に相当
する。
レジスタ(INST REG)46およびアドレスカウンタ(RF
0AD REG)48,(RF0AD REG)50よりそれぞれ与えら
れるマイクロ命令<MICROINSTRUCTION>およびアドレス
<ADDRESS>にしたがって1ビット単位の演算処理(図
8のステップC3)が実行される。この結果、各プロセ
ッシング・エレメントPEK内でレジスタ・ファイルR
F0のアドレス「11(H)」に格納されている1ビットの
データとレジスタ・ファイルRF1のアドレス「21
(H)」に格納されている1ビットのデータとがALU2
4で加算され、その加算結果の和(SM)がレジスタ・
ファイルRF1のアドレス「21(H)」に書き込まれる。
カウンタ(PC)42がカウンタ値(メモリアドレス)
を1つインクリメントして「7」に更新する。
3番目の各クロックサイクルでは、プログラムメモリ4
0においてメモリアドレス「7」の加算命令が読み出さ
れる(ステップA2)。もっとも、ステップA3ではリピ
ートカウンタ(RPT CNTR)52のカウント値が「6」〜
「3」と変化し、まだ「1」にならないため、命令の種
類に関係なくステップA7,A8の処理が選択される。
では、アドレスカウンタ(RF0AD REG)48,(RF0AD R
EG)50のカウンタ値(アドレス)が各サイクル毎にそ
れぞれ1つインクリメントされるとともに、リピートカ
ウンタ(RPT CNTR)52のカウンタ値(残りリピート
値)が各サイクル毎に1つディクリメントされて
「6」,「5」,「4」,「3」,「2」と逐次変化す
る。各プロセッシング・エレメントPEK内では、各サ
イクル毎に1ビットずつレジスタ・ファイルRF0のア
ドレス「12〜16(H)」のデータとレジスタ・ファイ
ルRF1のアドレス「22〜26(H)」のデータとがAL
U24で加算され(図8のステップC3)、加算結果の
和(SM)がレジスタ・ファイルRF1のアドレス「2
2〜26(H)」に書き込まれる。
0より読み出された命令(メモリアドレス「7」の加算
命令)がSIMD命令であるから、ステップA8からス
テップA10に入ることなく、プログラムカウンタ42の
カウンタ値を「7」に維持したまま、各クロックサイク
ルを終了する。
ックサイクルでも、プログラムメモリ40においてメモ
リアドレス「7」の加算命令が読み出される(ステップ
A2)。ステップA3では、リピートカウンタ(RPT CNT
R)52のカウンタ値(残りリピート値)が「2」であ
るから、この場合もステップA7,A8の処理が選択され
る。
レスカウンタ(RF0AD REG)48,(RF0AD REG)50よ
りそれぞれ与えられるアドレス<ADDRESS>が1つイン
クリメントされることにより、SVPコア12の各プロ
セッシング・エレメントPEK内ではレジスタ・ファイ
ルRF0のアドレス「17(H)」に格納されている1ビッ
トのデータとレジスタ・ファイルRF1のアドレス「2
7(H)」に格納されている1ビットのデータとがALU
24で加算され、その加算結果の和(SM)がレジスタ
・ファイルRF1のアドレス「27(H)」に書き込まれ
る。これで、メモリアドレス「6」の加算命令が指示し
ていた上位7ビットの加算演算(R1[27(H):21
(H)]←R0[17(H):11(H)]+R1[27(H):21
(H)])の処理が完了する。一方、IG14のリピート
カウンタ52のカウンタ値(残りリピート値)が1つデ
ィクリメントされて「1」になる。これにより、一致回
路54の出力が論理値“1となる。
は、オアゲート62を介してプログラムカウンタ42に
インクリメント・イネーブル信号として与えられるとと
もに、マイクロ命令レジスタ46、アドレスカウンタ4
8,50およびリピートカウンタ52に入力イネーブル
信号として与えられる。
となく、プログラムカウンタ42のカウンタ値を「7」
に維持したまま、このクロックサイクルを終了する。
ックサイクルでも、プログラムメモリ40においてメモ
リアドレス「7」の加算命令が読み出される(ステップ
A2)。このメモリアドレス「7」の加算命令は、上記
8ビット加算演算(R1[28(H):20(H)]←R0[1
7(H):10(H)]+R1[27(H):20(H)])の中で
最上位ビットの加算結果の桁上げ(CY)を全体の加算
演算結果に含めるための演算を規定している。このた
め、加算演算の繰り返し回数(RPT)を1(回)と
し、ワーキングレジスタ[A],[B]にそれぞれ
“0”をセットするとともに、ワーキングレジスタ
[C]にはALU24より直前に出力された桁上げ“C
Y”をセットすることを指示している。
タ(RPT CNTR)52のカウント値が「1」になっている
ので、ステップA4が選択される。ステップA4では、メ
モリアドレス「7」の加算命令がSIMD命令であるか
ら、ステップA5.A6の処理が選択される。
メモリアドレス「7」の加算命令(inst)の命令コード
部[10〜11,22〜39]が切換スイッチ56を介
してマイクロ命令レジスタ(INST REG)46にクロック
<PCLK>のタイミングでセットされる。また、この加算
命令(inst)のアドレス部[0〜9],[12〜21]
がそれぞれアドレスカウンタ(RF0AD REG)48,(RF0
AD REG)50にクロック<PCLK>のタイミングでセット
される。また、この加算命令(inst)のリピート値[4
2〜45]がリピートカウンタ(RPT CNTR)52にクロ
ック<PCLK>のタイミングでセットされる。今回のリピ
ート値[42〜45]は「1」であるから、一致回路5
4の出力は論理値“1”のままである。
レジスタ(INST REG)46およびアドレスカウンタ(RF
0AD REG)48,(RF0AD REG)50よりそれぞれ与えら
れるマイクロ命令<MICROINSTRUCTION>およびアドレス
<ADDRESS>にしたがって1ビット単位の演算処理(図
8のステップC6)が実行される。この結果、各プロセ
ッシング・エレメントPEK内でALU24より直前に
出力されていた桁上げ(CY)が今回はそのままALU
24の演算結果の和(SM)となって、レジスタ・ファ
イルRF1のアドレス「28(H)」に書き込まれる。これ
で、メモリアドレス「5,6,7」の加算命令が指示し
ていた8ビット・データ同士の加算演算(R1[28
(H):20(H)]←R0[17(H):10(H)]+R1[27
(H):20(H)])の全演算処理が終了する。
カウンタ(PC)42がカウンタ値(メモリアドレス)
を1つインクリメントして「8」に更新する。
のクロックサイクルでは、ステップA2で、プログラム
メモリ40のメモリアドレス「8」よりEINT(Enab
le Interrupt)命令が読み出される。次いで、ステップ
A3で、リピートカウンタ(RPT CNTR)52のカウント
値が「1」になっているので、ステップA4が選択され
る。ステップA4では、EINT命令がIG命令なの
で、ステップA9.A10の処理が選択される。すなわ
ち、一致回路54より論理値“1”の入力イネーブル信
号がマイクロ命令レジスタ46とリピートカウンタ52
に与えられており、かつアンドゲート60からの論理値
“1”の出力によってスイッチ56,58がそれぞれ入
力端子aに切り換わるという条件が成立することで、ス
テップA9.A10の処理が行なわれる。
NOPコード<NOP>および残りリピート値<1>が
クロック<PLCK>のタイミングでスイッチ56,58を
介してマイクロ命令レジスタ46およびリピートカウン
タ52にそれぞれロードされる。SVPコア12の処理
部18内では、IG14のマイクロ命令レジスタ(INST
REG)46より命令不実行を指示するNOPコード<N
OP>を与えられるため、各プロセッシング・エレメン
トPEKは何の処理も行わず、動作停止状態となる。な
お、NOP状態では、アドレスカウンタ(RF0AD REG)
48,(RF0AD REG)50におけるアドレス<ADDRESS>
は何ら意味をもたない。
実行ユニット44がEINT命令を実行する。EINT
命令は、ハードウェア・インタラプトが発生した場合に
所定の分岐先へジャンプすることを指示する命令であ
る。ここでは、ハードウェア・インタラプトが発生しな
かったものとする。したがって、このEINT命令の実
行によって、プログラムカウンタ42のカウンタ値(メ
モリアドレス)が1つインクリメントされて、「9」に
なる。
のクロックサイクルにおいて、ステップA2で、プログ
ラムメモリ40のメモリアドレス「9」よりJMP命令
が読み出される。ステップA3では、リピートカウンタ
(RPT CNTR)52のカウント値が「1」になっているの
で、ステップA4が選択される。ステップA4では、JM
P命令がIG命令なので、ステップA9.A10の処理が
選択される。
ロックサイクルと同様に<NOP>処理が行なわれる。
ステップA10では、IG命令実行ユニット44がJM
P命令を実行し、プログラムカウンタ42のカウンタ値
(メモリアドレス)を指定された分岐先「0」に更新す
る。
のプログラム(図5)の先頭アドレスであり、しかもこ
の時点で或るSIMD命令がペンディングになっている
(所定回数の繰り返しが済んでいない)わけでもない。
したがって、次の28番目のクロックサイクル以降は上
記(≪クロックサイクル1〜27≫)と同じ動作が繰り
返される。
ては、SVPコア12でSIMD命令の繰り返し処理が
行われている最中にプログラムメモリ40よりIG命令
が読み出されたときは、当該SIMD命令の繰り返し処
理と並行して当該IG命令を実行するようにしたので、
スループットを大幅に上げることができる。
て、≪クロックサイクル1〜8≫の期間中に、SVPコ
ア12の各プロセッシング・エレメントPEKはSIM
D命令に属するメモリアドレス「0」の移動命令(R0
[17(H):10(H)]←R1[117(H):110
(H)])を1クロックサイクル毎に1ビットずつ繰り返
し実行する。一方、IG14内では、この期間内の≪ク
ロックサイクル2〜5≫にかけて、プログラムメモリ4
0より読み出されたDINT命令、JFAZ命令、JF
BZ命令およびJMP命令(いずれもIG命令)をIG
命令実行ユニット44が逐一実行する。これにより、上
記移動命令の処理を全て終了した後、次の≪クロックサ
イクル9≫でSVPコア12側は上記JMP命令で指示
されているメモリアドレス「10」の移動命令(R1
[27(H):20(H)]←R0[127(H):120
(H)])の処理を開始することができる。
ア12側でメモリアドレス「0」の移動命令(R0[1
7(H):10(H)]←R1[117(H):110(H)])の
処理が終了するまで、その次の命令であるDINT命令
は待たされる。そして、該移動命令の終了後に、≪クロ
ックサイクル9≫でメモリアドレス「1」の該DINT
命令が実行される。次に、上記の例では、≪クロックサ
イクル10≫でメモリアドレス「2」の上記JFAZ命
令が、≪クロックサイクル11≫でメモリアドレス
「3」の上記JFBZ命令が、≪クロックサイクル12
≫でメモリアドレス「4」の上記JMP命令が順次実行
される。このようにIG命令の実行が続く期間≪クロッ
クサイクル9〜12≫中、SVPコア12はNOPコー
ド<NOP>を与えられ、実質的に動作停止状態とな
る。SVPコア12の処理が再開されるのは≪クロック
サイクル13≫以降であり、本実施例と比較して4クロ
ックサイクルの遅れを来すことになる。
G14の要部の構成を示す。この第2の実施例は、上記
した第1の実施例のIG14においてプログラムメモリ
40とマイクロ命令レジスタ46、アドレスカウンタ4
8,50およびリピートカウンタ52との間にSIMD
命令用バッファメモリとしてFIFO(First-In First
-out)メモリ70を設けていることを主たる特徴とす
る。
N、データ出力端子OUT、書き込みイネーブル端子W
E、読み出しイネーブル端子RE、フル状態端子fullお
よび空状態端子emptyを有しており、プログラムメモリ
40より読み出された46ビットのプログラムデータ
[0〜45]のうち命令形式識別データ[40,41]
を除く44ビットのデータ[0〜39,42〜45]を
条件的に先入れ先出し方式で所定の深さ(最大蓄積デー
タ数)まで蓄積する。
ータ[0〜39,42〜45]がこのFIFOメモリ7
0に入力されるための条件は、アンドゲート60,74
の出力が共に論理値“0”となり、アンドゲート74の
出力端子より論理値“1”の信号が書き込みイネーブル
端子WEに与えられることである。
が“1”になるのは、プログラムメモリ40より読み出
された当該命令の命令識別データ[40,41]が
(0,0)であるとき、つまり当該命令がSIMD命令
のときである。
は、FIFOメモリ70のフル状態端子fullが論理値
“0”のとき、つまりメモリ70がフル(満杯)状態で
はないとき、あるいは一致回路54の出力が論理値
“1”のとき、つまりリピートカウンタ52の残りリピ
ート値が「1」のときである。後者のの場合は、後述
するようにデータ読み出しが可能となり、先頭のデータ
がデータ出力端子OUTから出力されるため、それと入
れ替わりにデータ入力端子INへのデータ入力(書き込
み)が可能となる。
先頭データが出力されるための条件は、アンドゲート7
6の出力端子より論理値“1”の信号が読み出しイネー
ブル端子REに与えられることである。アンドゲート7
6の出力が“1”になるのは、空状態端子emptyが論理
値“0”になっており、つまりメモリ70が空(から)
状態ではなく、かつ一致回路54の出力が論理値“1”
のとき、つまりリピートカウンタ52の残りリピート値
が「1」のときである。
グラム実行処理の手順を示す。初期化では、プログラム
カウンタ(PC)42およびリピートカウンタ(RPTCNT
R)52のカウンタ値を初期値「0」,「1」にそれぞ
れセットすることに加えて、FIFOメモリ70を空状
態にする(ステップD1)。
おいて、最初にステップD2でプログラムカウンタ42
のカウンタ値で指示されるメモリアドレスにてプログラ
ムメモリ40より命令(inst)を読み出す。次いで、ス
テップD3でリピートカウンタ(RPT CNTR)52のカウ
ンタ値(残りリピート値)を判定し、それが「1」にな
っているときは、次のステップD4でFIFOメモリ7
0が空状態であるか否かで処理が分かれる。
つまり空状態端子emptyが“1”になっているときは、
ステップD5の処理が選択される。この場合、スイッチ
56,58がそれぞれ端子bに切り換わっているため、
マイクロ命令レジスタ46にNOPコード<NOP>が
セットされるとともに、リピートカウンタ52には残り
リピート値<1>がセットされる。これにより、SVP
コア12の処理部18では各プロセッシング・エレメン
トPEKは何の処理も行わず、動作停止状態となる。
態でないときは、ステップD6の処理が選択される。こ
の場合、空状態端子emptyが“0”で、スイッチ56,
58がそれぞれ端子aに切り換わる。また、一致回路5
2の出力が“1”であるため、アンドゲート76の出力
端子より“1”の信号が読み取りイネーブル端子REに
与えられる。そして、FIFOメモリ70のデータ出力
端子OUTより出力されたデータ[0〜39,42〜4
5]のうち、SIMD命令コード部[10〜11,22
〜39]がスイッチ56を介してマイクロ命令レジスタ
46にセットされ、アドレス[0〜9],[12〜2
1]がアドレスカウンタ48,50にそれぞれセットさ
れ、リピート値[42〜45]がスイッチ58を介して
リピートカウンタ52にセットされる。
40より読み出されている当該命令がIG命令なのか、
それともSIMD命令なのか判定される。つまり、アン
ドゲート60の出力の値によって処理手順が分かれる。
(IG命令のとき)は、ステップD9でIG命令実行ユ
ニット44が当該命令を実行する。このとき、アンドゲ
ート72の出力は“0”で、FIFOメモリ70はデー
タ入力を禁止化される。
(SIMD命令のとき)は、アンドゲート72の出力は
“1”で、FIFOメモリ70は書き込み可能となり、
ステップD11で当該SIMD命令の命令形式識別データ
[40,41]以外のデータ[0〜39,42〜45]
がデータ入力端子INより入力される。
あるから、インバータ78の出力ひいてはオアゲート6
2の出力が“1”となり、この“1”の信号がインクリ
メントイネーブル信号としてプログラムカウンタ42に
与えられ、メモリアドレスが1つインクリメントされる
(ステップD12)。
R)52のカウンタ値(残りリピート値)がまだ「1」
になっていないとき、つまりSVPコア12の処理部1
8でSIMD命令に対する繰り返し実行回数がまだ規定
回数に達していないときは、ステップD7の処理が選択
される。このステップD7および後続のステップD8,D
9は、上記した第1の実施例におけるステップA7,A
8,A10と同様の処理内容となる。
4内では、クロック<PCLK>のタイミングで、アドレス
カウンタ(RF0AD REG)48,(RF0AD REG)50のカウ
ンタ値(アドレス)がそれぞれ1つインクリメントされ
るとともに、リピートカウンタ(RPT CNTR)52のカウ
ンタ値(残りリピート値)が1つディクリメントされ
る。SVPコア12の処理部18内では、IG14のマ
イクロ命令レジスタ(INSTREG)46およびアドレスカ
ウンタ(RF0AD REG)48,(RF0AD REG)50よりそれ
ぞれ与えられるマイクロ命令<MICROINSTRUCTION>およ
びアドレス<ADDRESS>にしたがって1ビット単位の演
算処理が実行される。次に、ステップD8において、ス
テップD2でプログラムメモリ40より読み出された命
令(inst)がSIMD命令なのかIG命令なのかが判定
される。IG命令であるときは、次にステップD9でI
G命令実行ユニット44により当該IG命令が実行され
る。
第1実施例とは異なり(そのまま当該クロックサイクル
を終了するのではなく)、ステップD10に入る。そし
て、FIFOメモリ70がフル状態でなければ、当該S
IMD命令の命令形式識別データ[40,41]以外の
データ[0〜39,42〜45]がFIFOメモリ70
に入力され(ステップD11)、プログラムカウンタ42
のカウンタ値(メモリアドレス)が1つインクリメント
される(ステップD12)。
は、処理部18で或るSIMD命令の繰り返し実行処理
が終了する前にプログラムメモリ40より他のSIMD
命令が読み出されたときは、FIFOメモリ70のその
時の空き容量が許す限り後者のSIMD命令をFIFO
メモリ70に格納し、次のメモリアドレスに進むように
なっている。したがって、次のメモリアドレスでIG命
令がプログラムメモリより読み出されたときは、該IG
命令をSIMD命令の繰り返し実行と並行して実行する
ことができるので、スループットを一層向上させること
ができる。
によるSVP10で図5のプログラム例を実行する場合
の各クロックサイクル毎の各部のステータスまたは動作
を示す。
2→D3→D4→D5→D8→D11→D12の処理が行なわれ
る。特に、ステップD11では、プログラムメモリ40よ
り読み出されたメモリアドレス「0」の移動命令(正確
にはこの移動命令の命令コード部およびアドレス)がF
IFOメモリ70に格納される。ステップD5で処理部
18はNOP命令<NOP>を与えられるため実質的に
は動作しない。
D2→D3→D4→D6→D8→D9の処理が行なわれる。特
に、ステップD6では、上記移動命令の命令コード部お
よびアドレスがFIFOメモリ70より読み出されてマ
イクロ命令レジスタ46およびアドレスカウンタ48,
50にそれぞれセットされ、処理部18の各プロセッシ
ング・エレメントPEKは上記移動命令(1回目)を実
行する。ステップD9では、IG命令実行ユニット44
がプログラムメモリ40より読み出されているメモリア
ドレス「1」のDINT命令を実行する。
ップD2→D3→D7→D8→D9の処理が選択され、上記
した第1実施例における3〜5番目のクロックサイクル
と同様の処理動作が行なわれる。すなわち、処理部18
の各プロセッシング・エレメントPEKが上記移動命令
を2,3,4回目と順次実行し、同時にIG命令実行ユ
ニット44がプログラムメモリ40より読み出されたメ
モリアドレス「2」,「3」,「4」のDINT命令、
JFAZ命令、JFBZ命令を順次実行する。
D2→D3→D7→D8→D10→D11→D12の処理が行なわ
れる。特に、ステップD11では、プログラムメモリ40
より読み出されたメモリアドレス「10」の移動命令が
FIFOメモリ70に格納される。そして、ステップD
12で、アドレスカウンタ(PC)42のカウンタ値(メ
モリアドレス)がインクリメントされて「11」にな
る。
D2→D3→D7→D8→D9の処理が行なわれる。ステッ
プD9では、IG命令実行ユニット44がプログラムメ
モリ40より読み出されたメモリアドレス「11」のJ
MP命令を実行する。上記した第1の実施例では10番
目のクロックサイクルでメモリアドレス「11」のJM
P命令が実行されるのに対して、本実施例では7番目の
クロックサイクルで同JMP命令が実行される。
D2→D3→D7→D8→D10→D11→D12の処理が行なわ
れる。特に、ステップD11では、プログラムメモリ40
より読み出されたメモリアドレス「5」の加算命令がF
IFOメモリ70に格納される。
D2→D3→D7→D8→D10(終り)の処理が行なわれ
る。ステップD10では、FIFOメモリ70がフル状態
にあるため、プログラムメモリ40より読み出されたメ
モリアドレス「6」の加算命令はFIFOメモリ70に
格納されない。したがって、アドレスカウンタ(PC)
42のカウンタ値(メモリアドレス)は「6」のままで
ある。しかし、ステップD7で、メモリアドレス「0」
の移動命令に対する処理部18の繰り返し実行処理が終
了し、リピートカウンタ(RPT cntr)52のカウンタ値
(残りリピート値)が「1」になる。
プD2→D3→D4→D6→D8→D11→D12の処理が行な
われる。ステップD6では、メモリアドレス「10」の
移動命令がFIFOメモリ70より読み出されてマイク
ロ命令レジスタ46およびアドレスカウンタ48,50
にセットされ、処理部18の各プロセッシング・エレメ
ントPEKは上記移動命令(1回目)を実行する。ステ
ップD11では、上記移動命令と入れ替わりに今回プログ
ラムメモリ40より読み出されたメモリアドレス「6」
の加算命令がFIFOメモリ70に格納される。
ステップD2→D3→D7→D8→D10(終り)の処理が行
なわれる。
プD2→D3→D4→D6→D8→D10→D11→D12の処理
が選択される。ステップD6では、メモリアドレス
「5」の加算命令がFIFOメモリ70より読み出され
てマイクロ命令レジスタ46およびアドレスカウンタ4
8,50にセットされ、処理部18の各プロセッシング
・エレメントPEKは上記加算命令を実行する。ステッ
プD11では、上記メモリアドレス「5」の加算命令と入
れ替わりに今回プログラムメモリ40より読み出された
メモリアドレス「7」の加算命令がFIFOメモリ70
に格納される。
プD2→D3→D4→D6→D8→D9の処理が行なわれる。
ステップD6では、メモリアドレス「6」の加算命令が
FIFOメモリ70より読み出されてマイクロ命令レジ
スタ46およびアドレスカウンタ48,50にセットさ
れ、処理部18の各プロセッシング・エレメントPEK
は上記加算命令を実行する。ステップD9では、IG命
令実行ユニット44がプログラムメモリ40より読み出
されているメモリアドレス「8」のEINT命令を実行
する。
プD2→D3→D7→D8→D9の処理が行なわれる。ステ
ップD7では、メモリアドレス「6」の加算命令につい
て処理部18の各プロセッシング・エレメントPEKが
2回目の加算演算を実行する。ステップD9では、IG
命令実行ユニット44がプログラムメモリ40より読み
出されているメモリアドレス「9」のJMP命令を実行
する。
のクロックサイクルでメモリアドレス「8」,「9」の
EINT命令,JMP命令が実行されるのに対して、本
実施例では19,20番目のクロックサイクルで同命令
が実行される。しかも、IG命令実行ユニット44がこ
れらのEINT命令,JMP命令を実行する時、第1の
実施例では処理部18がNOP命令を受けて一時停止状
態となるのに対して、本実施例では処理部18がマイク
ロ命令レジスタ46およびアドレスカウンタ48,50
からのマイクロ命令およびアドレスを受け取ってSIM
D命令(メモリアドレス「6」の加算命令)の繰り返し
実行を継続する。これにより、処理部18の稼動率が一
層向上する。
動作は、上述した説明と図12から容易に理解できるの
で、説明を省略する。
D命令の実行シーケンスと同期をとった方が好ましい場
合もある。たとえば、DINT命令(割込み禁止命令)
やEINT命令(割込み許可命令)においてハードウェ
ア・インタラプトの有無を判定するステップまたはタイ
ミングをSIMD命令の実行シーケンスに同期させたい
場合もある。その場合は、そのような同期型の非SIM
D命令(DINT,EINT)をいったんFIFO70
に蓄積し、FIFO70から読み出した時点で該非SI
MD命令の検出と実行を行うようにすればよい。このア
プリケーションでは、図13に示すように、FIFO7
0のデータ出力端子OUTより出力されるデータの中か
ら同期型の非SIMD命令(DINT,EINT)を検
出してSIMD命令実行ユニット44へ伝える回路79
が設けられる。
リ40の所要記憶容量を小さくするための一実施例を示
す。プログラムメモリ40には、本SVP10の処理動
作に必要なプログラムが蓄積される。上記したように、
プログラムを構成する個々の命令(プログラムデータ)
は、たとえば46ビット[0〜45]からなり、そのう
ち[40,41]の2ビット・データが当該命令の形式
つまりSIMD命令なのか、IG命令なのかを表す。そ
して、SIMD命令の場合は、[0〜9]、[12〜2
1]の各10ビット・データが各プロセッシング・エレ
メントPEKにおけるレジスタ・ファイルRF0,RF1内
の初期アドレスをそれぞれ表し、[10〜11、22〜
39]の20ビット・データが当該SIMD命令の命令
コード部を構成し、[42〜45]の4ビット・データ
が当該SIMD命令のリピート値(繰り返し回数)を表
す。
はそのままマイクロ命令としてSVPコア12に与えら
れるため、20ビットものデータ長を有している。20
ビットデータの場合、220 (=1048574)通り
のデータ値が可能である。しかし、実際のSVPにおい
て命令の種類は通常200以下である。
令コード部[10〜11、22〜39]をたとえば8ビ
ットのデータ(d0〜d7)にコード化したものをプログ
ラムメモリ40に蓄積し、プログラムメモリ40より出
力した8ビットの各コード・データ(d0〜d7)をデコ
ーダ80で20ビットのデータつまり本来の命令コード
部[10〜11、22〜39]に展開(復号)するよう
にしている。デコーダ80は、たとえばROMまたはR
AMからなるルックアップ・テーブルで実現することが
できる。プログラムメモリ40においては、各命令の命
令コード部が8ビット幅であるから、20ビット幅の場
合よりも所要記憶容量が小さくなる。
G命令実行部とで共用することも可能であり、あるいは
別々に設けられてもよい。別々の場合、SIMD命令実
行部においては、マイクロ命令レジスタ46の後段にデ
コーダ80を配置することができる。これにより、マイ
クロ命令レジスタ46やFIFOメモリ70等のビット
幅を小さくすることができる。
45]のうち命令コード部[10〜11、22〜39]
だけをコード化したが、必要に応じて他のデータ部分
(たとえばアドレス部分)をコード化することも可能で
ある。
たが、本発明は他の形式のSIMD型並列プロセッサに
も適用可能であり、さらには1つの命令を複数のクロッ
クサイクルにわたって繰り返し実行する機能を備えた任
意のプロセッサに適用可能である。
サによれば、1つの命令を複数のクロックサイクルにわ
たって繰り返し実行する方式において繰り返し実行処理
部の稼動率を高め、処理性能を向上させることができ
る。また、命令をコード化してプログラムメモリに蓄積
することで、プログラムメモリの所要記憶容量を小さく
することができる。
ッサの構成を示すブロック図である。
的に説明するための図である。
部の構成を示すブロック図である。
手順を示すフローチャートである。
示すプログラムリストである。
の各クロックサイクル毎のSVP内の各部のステータス
または動作を示す図である。
示すフローチャートである。
示すフローチャートである。
部の構成を示すブロック図である。
行処理の手順を示すフローチャートである。
する場合の各クロックサイクル毎のSVP内の各部のス
テータスまたは動作を示す図である。
する場合の各クロックサイクル毎のSVP内の各部のス
テータスまたは動作を示す図である。
令(DINT,EINT)をSIMD命令と同期して実
行する変形例の要部の構成を示すブロック図である。
容量を小さくするための一実施例を示す図である。
Claims (7)
- 【請求項1】 第1形式の命令を1つまたは複数のクロ
ックサイクルにわたって繰り返し実行する第1の命令実
行部と、 第2形式の命令を前記第1の命令実行部から独立して実
行する第2の命令実行部と、 第1形式の命令と第2形式の命令とを含むプログラムを
蓄積するプログラムメモリと、 プログラムの実行シーケンスにしたがって前記プログラ
ムメモリより第1形式または第2形式の命令を順次読み
出す命令読み出し手段と、 第1形式の命令の実行中に前記プログラムメモリより第
2形式の命令が読み出されたときは前記第1の命令実行
部による当該第1形式の命令の実行と並行して前記第2
の命令実行部に当該第2形式の命令を実行させる命令実
行制御手段とを有するプロセッサ。 - 【請求項2】 前記第1の命令実行部が、 第1形式の命令の命令コード部で規定される処理を1ク
ロックサイクル内に1ビット単位で実行する処理部と、 前記プログラムメモリより読み出された各々の前記第1
形式の命令についてその命令の命令コード部をマイクロ
命令として前記処理部に与えるマイクロ命令レジスタ
と、 前記プログラムメモリより読み出された各々の前記第1
形式の命令についてその命令に係わるデータアドレスを
1クロックサイクル毎に初期値から所定の最終値までイ
ンクリメントまたはディクリメントしながら前記処理部
に逐次与えるアドレスカウンタと、 前記プログラムメモリより読み出された各々の前記第1
形式の命令について前記命令コード部で規定される処理
が前記処理部で繰り返し実行される回数をカウントする
リピートカウンタとを有する請求項1に記載のプロセッ
サ。 - 【請求項3】 前記プログラムメモリより読み出された
第1形式の命令を先入れ先出し方式で蓄積し、読み出し
た第1形式の命令を第1の命令実行部に与える先入れ先
出し型メモリを有する請求項1に記載のプロセッサ。 - 【請求項4】 前記第1の命令実行部が、 第1形式の命令の命令コード部で規定される処理を1ク
ロックサイクル内に1ビット単位で実行する処理部と、 前記先入れ先出し型メモリより読み出された各々の前記
第1形式の命令についてその命令の命令コード部をマイ
クロ命令として前記処理部に与えるマイクロ命令レジス
タと、 前記先入れ先出し型メモリより読み出された各々の前記
第1形式の命令についてその命令に係わるデータアドレ
スを1クロックサイクル毎に初期値から所定の最終値ま
でインクリメントまたはディクリメントしながら前記処
理部に逐次与えるアドレスカウンタと、 前記先入れ先出し型メモリより読み出された各々の前記
第1形式の命令について前記命令コード部で規定される
処理が前記処理部で繰り返し実行される回数をカウント
するリピートカウンタとを有する請求項3に記載のプロ
セッサ。 - 【請求項5】 前記先入れ先出し型メモリには第1形式
の命令の実行シーケンと同期して実行されるべき所定の
第2形式の命令も蓄積され、前記所定の第2形式の命令
は前記先入れ先出し型メモリより読み出された時点で前
記第2の命令実行部により実行される請求項3または4
に記載のプロセッサ。 - 【請求項6】 前記プログラムメモリには各命令の一部
または全部がコード化されて蓄積され、前記プログラム
より読み出された命令をデコードするデコーダが設けら
れている請求項1〜4のいずれかに記載のプロセッサ。 - 【請求項7】 前記処理部が、走査線上の画素に1対1
の対応関係で割り当てられ、かつ共通の第1形式の命令
にしたがって同一の動作を行う複数個のプロセッシング
・エレメントを有し、入力した画像信号を走査線単位で
処理する請求項1〜5のいずれかに記載のプロセッサ。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP28816999A JP4138180B2 (ja) | 1999-10-08 | 1999-10-08 | プロセッサ |
US09/680,609 US6763450B1 (en) | 1999-10-08 | 2000-10-06 | Processor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP28816999A JP4138180B2 (ja) | 1999-10-08 | 1999-10-08 | プロセッサ |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001109627A true JP2001109627A (ja) | 2001-04-20 |
JP4138180B2 JP4138180B2 (ja) | 2008-08-20 |
Family
ID=17726712
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP28816999A Expired - Lifetime JP4138180B2 (ja) | 1999-10-08 | 1999-10-08 | プロセッサ |
Country Status (2)
Country | Link |
---|---|
US (1) | US6763450B1 (ja) |
JP (1) | JP4138180B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003099247A (ja) * | 2001-09-21 | 2003-04-04 | Yamaha Corp | プログラムメモリ削減方法およびプログラムメモリ読出回路 |
JP2009140137A (ja) * | 2007-12-05 | 2009-06-25 | Texas Instr Japan Ltd | プロセッサおよび信号処理方法 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4540191B2 (ja) * | 2000-07-17 | 2010-09-08 | 日本テキサス・インスツルメンツ株式会社 | 画像処理装置 |
US7181600B1 (en) | 2001-08-02 | 2007-02-20 | Mips Technologies, Inc. | Read-only access to CPO registers |
US7185183B1 (en) | 2001-08-02 | 2007-02-27 | Mips Technologies, Inc. | Atomic update of CPO state |
GB2382672B (en) * | 2001-10-31 | 2005-10-05 | Alphamosaic Ltd | Repeated instruction execution |
DE10206830B4 (de) * | 2002-02-18 | 2004-10-14 | Systemonic Ag | Verfahren und Anordnung zur Zusammenführung von Daten aus parallelen Datenpfaden |
US7634638B1 (en) * | 2002-10-22 | 2009-12-15 | Mips Technologies, Inc. | Instruction encoding for system register bit set and clear |
US8643659B1 (en) | 2003-12-31 | 2014-02-04 | 3Dlabs Inc., Ltd. | Shader with global and instruction caches |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5210836A (en) * | 1989-10-13 | 1993-05-11 | Texas Instruments Incorporated | Instruction generator architecture for a video signal processor controller |
-
1999
- 1999-10-08 JP JP28816999A patent/JP4138180B2/ja not_active Expired - Lifetime
-
2000
- 2000-10-06 US US09/680,609 patent/US6763450B1/en not_active Expired - Lifetime
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003099247A (ja) * | 2001-09-21 | 2003-04-04 | Yamaha Corp | プログラムメモリ削減方法およびプログラムメモリ読出回路 |
JP2009140137A (ja) * | 2007-12-05 | 2009-06-25 | Texas Instr Japan Ltd | プロセッサおよび信号処理方法 |
JP4526560B2 (ja) * | 2007-12-05 | 2010-08-18 | 日本テキサス・インスツルメンツ株式会社 | プロセッサおよび信号処理方法 |
US7886134B2 (en) | 2007-12-05 | 2011-02-08 | Texas Instruments Incorporated | Loop iteration prediction by supplying pseudo branch instruction for execution at first iteration and storing history information in branch prediction unit |
Also Published As
Publication number | Publication date |
---|---|
JP4138180B2 (ja) | 2008-08-20 |
US6763450B1 (en) | 2004-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6484255B1 (en) | Selective writing of data elements from packed data based upon a mask using predication | |
CN111651384B (zh) | 寄存器的读写方法、芯片、子系统、寄存器组及终端 | |
US5561808A (en) | Asymmetric vector multiprocessor composed of a vector unit and a plurality of scalar units each having a different architecture | |
US5001627A (en) | Multiprocessor control system for selectively executing vector instructions from scaler units to be executed in a vector unit | |
JP2001109627A (ja) | プロセッサ | |
US20070022249A1 (en) | Information processing apparatus and its data processing method capable of forming descriptor queue | |
JPS619734A (ja) | プロセツサ制御方式 | |
EP0497485A2 (en) | Computer for implementing two-operand instructions | |
US4674063A (en) | Information processing apparatus having a sequence control function | |
JPS62115542A (ja) | 情報処理装置 | |
JP3035828B2 (ja) | 情報処理装置 | |
US5239628A (en) | System for asynchronously generating data block processing start signal upon the occurrence of processing end signal block start signal | |
EP0222405B1 (en) | Data processor | |
US6505294B2 (en) | Direct control of operation blocks using operand signal of control instruction as extension to instruction set in a hardwired control processor | |
JP2577023B2 (ja) | 情報処理装置のアドレス拡張制御方式 | |
JP2004510248A (ja) | ソフトウェアおよびハードウェアのループ圧縮を有するfifo書込み/lifo読取り追跡バッファ | |
JPH01286030A (ja) | 情報処理装置 | |
US5475828A (en) | Digital processor having plurality of memories and plurality of arithmetic logic units corresponding in number thereto and method for controlling the same | |
US6684286B1 (en) | High-speed block transfer circuit | |
JPH0224721A (ja) | プログラム制御装置 | |
JP2694774B2 (ja) | プログラム分岐方式 | |
SU1716528A1 (ru) | Вычислительное устройство с совмещением операций | |
JPH03127160A (ja) | データ処理装置 | |
JPH0545983B2 (ja) | ||
JPS6375833A (ja) | 情報処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060926 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070305 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070515 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070713 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080219 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080603 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080605 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 4138180 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110613 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110613 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120613 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120613 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130613 Year of fee payment: 5 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |