JPH0157818B2 - - Google Patents

Info

Publication number
JPH0157818B2
JPH0157818B2 JP56017585A JP1758581A JPH0157818B2 JP H0157818 B2 JPH0157818 B2 JP H0157818B2 JP 56017585 A JP56017585 A JP 56017585A JP 1758581 A JP1758581 A JP 1758581A JP H0157818 B2 JPH0157818 B2 JP H0157818B2
Authority
JP
Japan
Prior art keywords
during
period
word
address
processor
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
Application number
JP56017585A
Other languages
English (en)
Other versions
JPS56149647A (en
Inventor
Rirei Bodee Jeemusu
Nikoretsute Gadentsu Renatoo
Sutewaato Tonpuson Jon
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.)
AT&T Corp
Original Assignee
AT&T Technologies Inc
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 AT&T Technologies Inc filed Critical AT&T Technologies Inc
Publication of JPS56149647A publication Critical patent/JPS56149647A/ja
Publication of JPH0157818B2 publication Critical patent/JPH0157818B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3875Pipelining a single stage, e.g. superpipelining

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)

Description

【発明の詳細な説明】
本発明はパイプライン操作を行うよう作られた
デイジタル・プロセサに関する。該プロセサはル
ーチン的処理操作を制御するインストラクシヨ
ン・ワードのストリームおよびデータ・ワードの
ストリームを提供するソースと、表現式により表
わされる操作を実行する選択された処理サブセク
シヨンにより1つのデータ・ワードを他のデー
タ・ワードで処理し、それによつて結果として得
られたデータ・ワードを発生する演算セクシヨン
と、該演算セクシヨンから結果として得られるデ
ータ・ワードを受信する目的場所回路を含んでい
る。 デイジタル計算機は通常メモリ、入出力回路、
制御装置および演算セクシヨンを含んでいる。メ
モリは計算機を制御する計算機プログラムおよび
演算セクシヨンによつて操作されるデータのソー
スである。演算セクシヨンは予め定められた仕方
でデータを処理する手段を提供する回路を含んで
いる。制御装置は操作のタイミングおよび操作す
べきデータの転送を調整する制御信号を提供す
る。入出力回路は計算機と外部装置の間で情報を
転送する手段を提供する。 計算速度を増すため、ある種のデイジタル計算
機ではデイジタル操作を行うよう作られている。
パイプライン操作を行うため演算セクシヨンは同
時に動作し、全体として1つの汎用構成を成して
いる1群の特殊回路を含んでいる。これら特殊回
路は独立に動作し、各々汎用プロシージヤ中の特
定のタスクを実行する。パイプライン操作はプロ
セスを個々の特殊回路が実行する幾つかのサブプ
ロセスに分割する。相続くサブプロセスは工場に
おける組立ラインと類似したオーバラツプ・モー
ドで実行される。新らしいオペランドは各サイク
ルにおいて演算セクシヨンの入力に加えられる。
演算セクシヨンの異なるサブセクシヨンは後続サ
イクルにおいて逐次そのタスクを実行する。その
結果は各サイクル毎に得られる。各々の特殊回路
はある巡回速度でそれ自身のタスクを実行する。 パイプライン・プロセサの制御は極めて複雑な
問題を提起する。何故ならばデータおよびインス
トラクシヨンは定常状態動作期間中パイプライン
中にスタツクされるからである。 今日までパイプライン式デイジタル・プロセサ
は夫々のパイプライン・ストリーム中においてデ
ータ・ワードおよびインストラクシヨンをメモリ
から演算セクシヨンおよび制御セクシヨンに転送
するよう設計されて来た。データ・ワードは1つ
のバスによつてメモリから演算セクシヨンに転送
される。インストラクシヨンは他のバスによつて
メモリから制御セクシヨンに転送される。これら
2つの別個のバスを使用することによりバスの争
奪を緩和し、パイプライン式データ・ストリーム
およびパイプライン式インストラクシヨン・スト
リームを1つのセクシヨンから他のセクシヨンへ
極めて迅速に転送することを可能とする。その結
果、計算速度が向上する。 しかし、プロセサの設計者がこのパイプライン
式アーキテクチヤのプロセサを単一の集積回路チ
ツプとして製造したい場合には問題が生じる。即
ちプロセサの論理回路およびバス構成はチツプ上
に極めて大きなスペースを占有し、従つてチツプ
は極めて高価となる。 この問題は本発明に従うパイプライン式操作を
行うよう作られたデイジタル・プロセサにより解
決された。ここで該デイジタル・プロセサはすべ
ての処理サブセクシヨンの操作を制御するため各
プロセサ・サイクル中において単一の正規インス
トラクシヨン・ワードを受信する制御回路を含
み、各処理サブセクシヨンは他の処理サブセクシ
ヨンとは異なる表現式と関連する操作を実行し、
単一の正規インストラクシヨンにより制御される
すべての操作は単一のプロセサ・サイクル中に実
行され、単一の正規インストラクシヨン・ワード
をソースから制御回路に転送し、データ・ワード
をソースから演算セクシヨンに転送し、結果とし
て得られるデータ・ワードを演算セクシヨンから
目的場所に転送する各プロセサ・サイクル期間時
分割使用される共通バスを含むことにより特徴づ
けられる。 本発明は付図を参照した以下の詳細な記述から
より良く理解されよう。 第1図および2図を参照するとパイプライン・
デイジタル信号プロセサの全体のアーキテクチヤ
が示されている。 読み出し専用メモリ(ROM)100はインス
トラクシヨンおよび固定データ・ワードを記憶し
ている。インストラクシヨンはROMから共通デ
ータおよび制御バス101を通してインストラク
シヨン・レジスタIR―C131、IR―L,M,
N133およびIR―S,T134に夫々転送さ
れる。インストラクシヨンの1部はインストラク
シヨン・レジスタにも分配される。固定データ・
ワード、即ち係数ワードはROMから共通データ
および制御バス101を通して係数レジスタ10
2に転送される。レジスタ102はREG Xと名
付けられている。その理由は係数は以下において
Xなる記号で表わされることによる。 ランダム・アクセス・メモリ(RAM)105
は外部情報源から、またはこのプロセサの演算セ
クシヨンの出力から加えられる可変データ・ワー
ドを記憶する。可変データ・ワードはRAMから
共通データおよび制御バス101を通して可変デ
ータ・レジスタ106にに転送される。レジスタ
106はREG Yと名付けられている。その理由
は可変データ・ワードは以下Yなる記号で表わさ
れるからである。ユーザーの選択によりRAMは
可変データ・ワードと共に固定データ・ワード、
即ち係数を記憶することも出来る。 レジスタ102および106は夫々演算セクシ
ヨン110の入力として加えられるオペランドで
ある係数ワードおよび可変データ・ワードの順序
系列を記憶する。これらオペランドの系列は乗算
サブセクシヨン112、アキユミユレータ・サブ
セクシヨン115および丸めならびにオーバーフ
ロー回路サブセクシヨン116を通してパイプラ
イン式に処理される。丸められた出力ワードは
REG Wと名付けられたレジスタ118中に生成
される。ここでREG Wなる名称は丸められた出
力ワードが以下Wなる記号で表わされることによ
る。 セレクタ回路120が演算セクシヨン中に設け
られている。該回路120はレジスタ106中に
記憶された可変データ・ワードyかまたはレジス
タ118中に記憶された丸められた出力ワードw
のいずれかを演算セクシヨンからの出力ワードと
してデータ・バス101に加える。丸められた出
力ワードwは演算セクシヨンにより実行されるあ
る種の操作の結果として得られる。選択された出
力ワードはレジスタ106またはレジスタ118
から共通データおよび制御バス101を通してラ
ンダム・アクセス・メモリ105の如き書き込み
可能な場所に転送される。 先に述べた如く、デイジタル信号プロセサ用の
インストラクシヨンはROM100中に記憶され
ている。第4図に示すように各々のプロセサ・サ
イクルの期間中、単一のインストラクシヨンがア
ドレス演算ユニツト、即ちセクシヨン124によ
つて発生されたアドレスを有するロケーシヨンの
ROMから自動的に読み出される。アドレス演算
セクシヨン中のプログラム・カウンタ・レジスタ
PCからのアドレスはアドレス・バス128を通
してROMのアドレス回路に加えられる。ROM
は各々のプロセサ・サイクル期間中、共通データ
および制御バスを通して取り出した単一のインス
トラクシヨンをプロセサの異なるセクシヨンと関
連した種々のインストラクシヨン・レジスタIR
―C,IR―L,M,NおよびIR―S,Tに送出
する。 デイジタル信号プロセサ中で使用される各々の
インストラクシヨン、即ちオペコードは複数個の
制御フイールド、即ち制御メツセージを含んでお
り、各々の制御メツセージには以下で使用する名
称l,m,n,sおよびtが付与されている。演
算セクシヨン110と関連する制御フイールド・
レジスタIR―L,M,Nは乗算、累算および丸
め操作の制御と夫々関連するインストラクシヨ
ン・フイールドl,mおよびnの如きあるフイー
ルドを受信する。アドレス演算セクシヨン124
と関連する制御フイールド・レジスタIR―S,
Tはインストラクシヨン・フイールドsおよびt
を受信する。これらインストラクシヨン・フイー
ルドはオペランドxおよびyのフエツチおよびセ
レクタ回路120により選択された出力ワードの
記憶を制御するアドレス・レジスタの修飾の制御
と関連を有している。 アドレス演算セクシヨン124は2組のレジス
タ141および142、アドレス・バス・ラツチ
145、加算器147および加算器ラツチ150
を含んでいる。 レジスタRX,RY,RDおよびPCを含む1組
のレジスタ141はメモリ・アドレスを記憶する
よう作られている。レジスタRX中に記憶された
アドレスはRAMまたはROM中のロケーシヨン
中に記憶された係数ワードをアクセスするのに使
用することが出来る。レジスタRY中に記憶され
たアドレスはRAM中のロケーシヨン中に記憶さ
れた可変データ・ワードをアクセスするのにのみ
使出出来る。レジスタRD中に記憶されたアドレ
スは結果として得られたデータ・ワードをRAM
中のロケーシヨンの如きある場所に書き込むのに
使用出来る。プログラム・カウンタ・レジスタ
PC中に記憶されたアドレスはROM中の次のイン
ストラクシヨンまたは固定データ・ワードをアク
セスするのに使用される。 レジスタの第2の組142はレジスタRX、
RYおよびRD中に記憶されたアドレスを自動的
に歩進させるのに使用される可変歩進値を記憶し
ている。あるいは記憶されたアドレスを1組の固
定歩進値の内の1つで歩進させても良い。 デイジタル信号プロセサの動作は2つの型のイ
ンストラクシヨンにより制御される。正規のイン
ストラクシヨンが殆んどの場合使用される。これ
らインストラクシヨンは信号処理期間中の演算操
作の特性を制御する。時々使用される他の型のイ
ンストラクシヨンは補助インストラクシヨンと呼
ばれる。1つの特定の補助インストラクシヨンは
アドレス演算セクシヨン中のアドレス・レジスタ
またはアドレス歩進レジスタのローデイングを制
御する。 インストラクシヨンの開始系列は初期アドレス
から開始されるROM中に記憶されており、リセ
ツト回路はプログラム・カウンタ・レジスタPC
を初期アドレスに設定するものと仮定している。
リセツト操作に続いて、典型例ではアドレスをア
ドレス・レジスタRX,RYおよびRD中に記憶
し、歩進値を歩進レジスタRI,RJおよびRK中に
記憶するインストラクシヨン系列が実行される。
これらレジスタは補助インストラクシヨンにより
セツトされる。通常レジスタRI,RJおよびRK中
に記憶された値はずつとその中に保持されるのに
対し、レジスタRX,RYおよびRD中の値は正規
のインストラクシヨン系列を実行するに従つて
時々刻々変化される。 プロセサがリセツトされ、アドレスおよび歩進
値が記憶された後、プロセサは妥当なプログラム
をランさせてデイジタル信号を処理する。信号を
処理するのに使用されるインストラクシヨンのほ
とんどは正規の演算インストラクシヨンである。 レジスタRX,RY,RD,PC,RI,RJおよび
RKの各々の情報は補助インストラクシヨンによ
り任意の特定の値にセツトすることが出来る。例
えばアドレス・レジスタRYにロードする第1の
インストラクシヨンはあるプロセサ・レジスタが
ロードされるべきことを指示する。 この第1のインストラクシヨンにおいて制御フ
イールドcは所望の情報を含んでいる。この制御
フイールドcはインストラクシヨン・フエツチ・
サイクルの間インストラクシヨン・レジスタIR
―C中に記憶されている。 第1のインストラクシヨンと関連を有し、該イ
ンストラクシヨンがデコードされるプロセサ・サ
イクルの期間中アドレス演算セクシヨン124中
にロードされる固定データ・ワードはどのアドレ
ス・レジスタにロードすべきかに関する情報およ
びロードすべき歩進値を定める情報を提供する。
制御フイールドおよび値フイールドはメモリから
共通データおよび制御バス101を通して制御フ
イールド・レジスタXSR185および値フイー
ルド・レジスタXSL184に転送される。 第1のインストラクシヨンが実行されている
間、レジスタXSR中の制御フイールドはデコー
ダ157でデコードされ、適当なアドレス・レジ
スタが選択される。レジスタXSLからアドレ
ス・レジスタRY中にロードされる値は第1のイ
ンストラクシヨンの実行サイクル中においてセレ
クタ回路158およびバス160を通してレジス
タ141および142に加えられる。 歩進レジスタRIにロードする第2のインスト
ラクシヨンは1つのプロセサ・レジスタがロード
されるべきことを指示する。アドレス・レジスタ
RYを設定することに関して上で述べた例と同じ
ように、第2のインストラクシヨンと関連した固
定データ・ワードはセツトされるべきレジスタお
よびロードされるべき値を形成する値フイールド
を指定する制御フイールドを提供する。固定デー
タ・ワードのフイールドはレジスタXSRからデ
コーダ157およびバス137を通して加えら
れ、1組のレジスタ142中から選択された歩進
レジスタを決定し、更にレジスタXSLからセレ
クタ158およびバス160を通して加えられ、
第2のインストラクシヨンの実行サイクル中に選
択された歩進レジスタ中にロードされるべき値を
形成する。 正規インストラクシヨンおよび補助インストラ
クシヨンを処理している期間中、インストラクシ
ヨンからの制御フイールドsおよびtはそのイン
ストラクシヨンがフエツチされるときインストラ
クシヨン・レジスタIR―S,T中に記憶されて
いる。これらフイールドは次のプロセサ・サイク
ル期間中にデコーダ153でデコードされ、デコ
ードされた情報はAAU制御回路154中にラツ
チされる。このデコードされた情報はフエツチ後
インストラクシヨン実行サイクル、即ち第2のプ
ロセサ・サイクル期間中レジスタの組141およ
び142にバス135を介して加えられる。アド
レス・レジスタおよび歩進レジスタあるいは一定
歩進値がバス135上の情報により選択される。
アドレスはアドレス・バス・ラツチ145および
加算器147の入力に加えられる。歩進値は同時
に加算器147の他の入力に加えられ、それによ
つてアドレスを歩進させ、該歩進されたアドレス
を1マシン・ステートの間加算器ラツチ150中
に記憶する。次のマシン・ステートの期間中、歩
進されたアドレスはバス136を通して1組のア
ドレス・レジスタ141に加えられる。 それと同時に正規インストラクシヨンの処理期
間中、フイールドsおよびt内の情報の1部分は
遅延回路155中の単一マシン、ステート遅延素
子を通して加えられる。この遅延された情報は上
述したアドレス操作の後にどのアドレス・レジス
タ144に書き込むべきかを決定する選択情報を
提供する。次のマシン・ステートにおいて、遅延
された情報はデコーダ157でデコードされ、バ
ス137を介してアドレス・レジスタ141に加
えられる。このとき、加算器ラツチ150中に記
憶された歩進されたアドレスは選択されたアドレ
ス・レジスタ中に書き込まれ、それによつてアド
レス選択の後でアドレスは修飾される。 補助レジスタ・セツト・インストラクシヨンの
処理期間中、ポスト修飾されたアドレスをアドレ
ス・レジスタ中に再び書き込れる上述の操作に先
行してレジスタ・セツト操作が実行される。この
先行するレジスタ・セツト操作は信号路138、
AAU制御回路154および遅延回路155を通
して論理回路122から加えられる情報に応動し
てデコーダ157により実行される。 レジスタ・セツト・インストラクシヨンがアド
レス・レジスタの書き込みに先行するとき、アド
レス・レジスタを選択する情報はレジスタXSR
からデコーダ157およびバス137を通してア
ドレス・レジスタ・セツト141に加えられる。
レジスタXSRからの情報は同時にデコーダ15
7およびバス137を通してバス137上の情報
の代りにバス160上の情報を選択するのに加え
られる。 アドレス演算セクシヨン124はメモリ100
および105中のロケーシヨンをアクセスするた
めアドレス・バス・ラツチ145を通してアドレ
スを伝送し、加算器147中で新らしいアドレス
を発生し、アドレス・レジスタRX,RY,RDお
よびPCをセツトする。 第4図は各プロセサ・サイクル期間中に伝送さ
れる1連の4アドレスとしてアドレスがメモリに
伝送される状態を示している。アドレスの1つは
各プロセサ・サイクル期間中の4つのマシン・サ
イクルの各々の期間中に伝送される。第1のマシ
ン・ステート期間中に伝送される第1のアドレス
はプログラム・カウンタ・レジスタPC中に記憶
されるアドレスである。第4図に示すように、こ
のアドレスは各プロセサ・サイクルの第1のマシ
ン・ステートの期間中自動的に伝送される。第2
のマシン・ステート期間中に伝送される第2のア
ドレスはレジスタRDまたはレジスタRX中に記
憶されたアドレスである。第3のマシン・ステー
ト期間中に伝送される第3のアドレスはレジスタ
RXまたはプログラム・カウンタ・レジスタPC中
に記憶されたアドレスである。第4のマシン・ス
テート期間中に伝送される第4のアドレスはレジ
スタRY中に記憶されたアドレスである。 アドレス演算セクシヨンにより伝送された各ア
ドレスはプロセサ・サイクルの上述のマシン・ス
テート期間中アドレス・バス・ラツチ145中に
ラツチされる。またこれらマシン・ステート期間
中、アドレスは歩進レジスタRI,RJおよびRKの
内の1つから読み出された歩進値だけアドレス演
算ユニツト加算器147で歩進されるか、または
レジスタPCからのアドレスの場合にはアドレス
は+1だけ歩進される。これら歩進操作はアドレ
スがラツチされるのと同じマシン・ステート期間
中内において実行される。 選択されたアドレスおよび歩進レジスタの同定
はアドレス操作の前に適当な制御フイールドをイ
ンストラクシヨン・レジスタIR―S,Tに加え
ることにより実行され、それによつて適当なコー
ドがアドレスの伝送されるマシン・ステート期間
中にアドレスおよび歩進レジスタの両方にアクセ
スするべく加えられる。アドレスおよび歩進値の
両者共加算器147によつて読み出され、加算さ
れる。その結果得られた歩進されたアドレスは加
算器ラツチ150中に記憶され、アドレスはアド
レス・バス・ラツチ145から伝送される。 どのアドレス・レジスタが選択されたかを示す
コードは遅延回路155を通してデコード・レジ
スタ回路157に転送される。遅延回路およびデ
コーデイングは加算器ラツチ150中に記憶され
た歩進されたアドレスがアドレス・レジスタ(伝
送されたアドレスはこのレジスタからフエツチさ
れたものである)中に書き込まれるように設計さ
れている。このようにして伝送されたアドレスは
該アドレスがメモリ101および105は伝送さ
れるプロセサ・サイクル期間中ポスト修飾、即ち
ポスト歩進される。 再び第2図を参照すると、演算セクシヨン11
0はパイプライン動作を行うよう構成されてい
る。係数ワードxおよび可変データ・ワードyは
共通データおよび制御バス101を通してメモリ
から係数ワード・レジスタ102および可変デー
タ・ワード・レジスタ106に加えられるオペラ
ンドである。丸められた出力ワードwもまたある
種の操作に対するオペランドであり、レジスタ1
18中に記憶されている。新らしいオペランドは
正規インストラクシヨンの各プロセサ・サイクル
期間中上記レジスタの各々の中に加えられる。 演算セクシヨン110は異なる回路フイールド
l,mおよびnに応動して独立して制御可能な3
つのサブセクシヨンを含んでいる。インストラク
シヨンのフエツチ・サイクル期間中、フイールド
l,mおよびnはインストラクシヨン・レジスタ
IR―L,M,N中に記憶されている。次のプロ
セサ・サイクルにおいて、これらフイールドはデ
コーダ回路113中でデコードされ、その結果は
レジスタREG F188中に記憶される。次のプ
ロセサ・サイクル期間中、この情報は演算セクシ
ヨンの種々のサブセクシヨンに制御信号を供給す
るべくAU制御回路114に転送される。この後
者のプロセサ・サイクルはインストラクシヨンの
実行サイクルである。制御信号はサブセクシヨン
の各々において得られる処理操作のオプシヨンの
内からどれを選択すべきかに関する情報を提供す
る。乗算器サブセクシヨン112は典型例では各
プロセサ・サイクル期間中2つのオペランドの積
を発生する。典型的な乗算操作にあつては、1つ
のオペランドは係数のワードxであり、第2のオ
ペランドは可変データ・ワードyまたは丸められ
た出力ワードwである。 係数ワードxは16ビツト・ワードである。これ
ら16ビツトは共通データおよび制御バスの上位ビ
ツト導線からレジスタ102中に取り入れられ
る。選択回路162は各プロセサ・サイクルの4
つのマシン・ステートの各期間中1時に4ビツト
最下位ビツトから最上位ビツトまで16ビツトの係
数ワードを走査する。他の選択回路163はそれ
と同時に20ビツトの可変データ・ワードyまたは
20ビツトの丸められた出力ワードwを選択する。 当業者にあつては周知のブースのアルゴリズム
に基づく乗算が実行される。このようにしてブー
スの論理回路165は相続く4ビツトに応動して
部分積を発生するための制御信号を発生する。 各マシン・ステート期間中のブースの論理回路
165からの出力はレジスタ166中にラツチさ
れる。この出力は回路168に加えられ、該回路
168はデータ選択により部分積を発生する。 これら部分積は以前の和およびキヤリイに加算
することにより累積される。加算器170は部分
積を以前の和およびキヤリイ情報と加算し、その
結果得られた36ビツトの中間オペランド、即ち積
ワードpを積レジスタP191中に記憶する。関
連するレジスタS190およびC189は夫々各
プロセサ・サイクル期間中に発生された和および
キヤリイ情報を記憶する。 演算セクシヨンはパイプライン動作を行々よう
作られているから、積レジスタP191は正規イ
ンストラクシヨンの各プロセサ・サイクル期間中
新らしい中間オペランド、即ち積ワードpを受信
する。この積ワードpはバス172を通して中間
オペランドとして累算器サブセクシヨン115の
入力に加えられる。 累算器サブセクシヨンにおいては、積ワードp
は加算器回路175の入力として加えられる前に
回路174によりシフトされる40ビツトの出力ワ
ードaと加算される。加算器回路175は和およ
びキヤリイ情報を生成し、該情報はレジスタ17
7中に記憶される。この和およびキヤリイ情報は
各プロセサ・サイクル期間中レジスタ177中に
記憶されている。キヤリイは加算器178中のキ
ヤリイ・ルツク・アヘツド論理回路により決定さ
れる。加算器178からの出力は結果として得ら
れる出力ワードaと共に論理回路180の入力に
加えられ、レジスタA中に記憶される結果として
得られる40ビツトの出力ワードaの次の値を発生
する。この結果として得られるワードは正規イン
ストラクシヨンの各プロセサ・サイクルの期間中
レジスタA192で発生され、そこに記憶され
る。 結果として得られる出力ワードaの1部分は10
ビツト毎にスライスされ丸めおよびオーバフロー
回路サブセクシヨン116の入力として加えられ
る。これらスライスは丸め回路182およびオー
バフロー論理回路184を通して各プロセサ・サ
イクルの3つの連続したマシン・ステートの間に
20ビツトの丸められた出力のためのレジスタWに
加えられる。第4のマシン・ステートにおいて、
レジスタW中の値は、レジスタA中の値が大きす
ぎて20ビツトのレジスタW118中に入らないと
き、オーバフローに対して補正が行なわれる。次
に丸められた出力ワードは共通データおよび制御
バス101を通してRAM中のロケーシヨンの如
き場所に転送され、そこで記憶される。 演算セクシヨンの3つのサブセクシヨン(乗算
器、累算器および丸め)は1プロセサ・サイクル
内において夫々の基本動作を実行する。これらサ
ブセクシヨンの出力はプロセサ・サイクル毎にレ
ジスタ中に記憶され、それによつて次段に接続さ
れたサブセクシヨンは後続のプロセサ・サイクル
を開始するとき安定した入力を利用出来る。 演算セクシヨン10およびアドレス演算セクシ
ヨン124の制御は共通データおよび制御バス1
01を通してメモリ100から加えられるインス
トラクシヨンのパイプライン・ストリームにより
実行される。第4図と関連して先に述べたよう
に、単一のインストラクシヨンが各プロセサ・サ
イクル期間中メモリから読み出される。このイン
ストラクシヨンは幾つかのインストラクシヨン・
フイールド、即ち制御メツセージl,m,n,
s、およびtを含んでいる。フイールドl,mお
よびmは演算セクシヨン110のサブセクシヨン
を制御するため共通バス101を通してレジスタ
IR―L,M,Nに転送される。フイールドsお
よびtはレジスタRX,RY,RDおよびPC中に
記憶されたアドレスの選択および歩進を制御する
ため共通バス101を通してレジスタIR―S,
Tに転送される。 処理のパイプライン制御による装置の動作は以
下に述べる特定の動作例により良く理解されよ
う。 完備した正規アセンブリ言語インストラクシヨ
ンは所望の演算操作を実行するのに必要なすべて
の情報を含んでいる。デイジタル信号プロセサ用
アセンブリ言語インストラクシヨンはメモリへの
アクセスの制御および演算サブセクシヨンおよび
アドレス演算サブセクシヨンの動作の制御を行う
よう設計されている。演算サブセクシヨンは乗算
および加算操作を連続的に実行する。正規の演算
セクシヨンの動作は以下の一般式で特徴づけられ
る。 x・f(y)+fa(a)→a{→w} x・f(w)+fa(a)→a{→w} ここで xはROMから通常フエツチされる16ビツトの
係数ワードである。この係数ワードxはまた
PAMまたは入出力回路200からフエツチされ
ることも可能であり、通常すべての演算操作に対
する値を有している。 yはRAMから通常フエツチされる20ビツトの
データ・ワードである。このデータ・ワードはま
た入出力回路200からフエツチすることも出来
る。 aはアキユミレータ・レジスタA192の40ビ
ツトの内容を表わす。アキユミレータ・レジスタ
A192において下位36ビツトは16ビツト×20ビ
ツトの乗算積を累積するのに使用される。上位4
ビツトは累積操作におけるオーバフロー保護の役
目を果す。 wはアキユミレータの20ビツトより成る丸めら
れた、即ち打切られた出力である。丸められた出
力wの最下位ビツトはアキユミレータの内容aの
最下位ビツトから14番号のビツトに対応する。こ
のビツトの対応関係はデータ・ワードyおよび丸
められた出力wが整数であり、係数ワードxは通
常―2x2なる範囲に制限されているという
仮定と矛盾しない。 fはデータ・ワードyまたは丸められた出力w
の関数を表わす。この関数は変数yまたはwの実
際の値、符号または絶対値であつても良い。 faはアキユミレータの内容a(例えばa,―a,
0,2a等)の関数を表わす。 変数x,y,wおよびpは演算セクシヨン・レ
ジスタX102,Y106,W118およびP1
91に夫々含まれている。 前述の一般的表現式は3つの操作がプロセサに
よつて実行されることを意味している。 (1) 積p=x・f(y)またはp=x・f(w)の
1方が形成され、乗算器の出力に位置する積レ
ジスタP中に記憶される。 (2) 結果として得られるワードa=p+fa(a)の累
算はアキユミユレータで実行される。 (3) 次に必要な場合にはアキユミユレータの結果
として得られるワードaが丸められ、丸められ
た出力は丸められた出力レジスタW中に書き込
まれる。 これら3つの操作の各々はデイジタル信号プロ
セサの1プロセサ・サイクル期間中に完了され
る。典型例では操作期間中係数ワードxはある値
を有しており、乗算により積pが形成される。ま
た典型例では各サイクル期間中、3つの型の操作
すべてが演算セクシヨンの異なるサブセクシヨン
により同時に実行される。あるインストラクシヨ
ンの場合には3つの操作の内の1つまたはそれ以
上が生じないこともある。1プロセサ・サイクル
期間中に1サブセクシヨンにより実行される操作
は他のサブセクシヨン中で同時に評価されている
表現式とは異なる一般表現式の部分的な評価を行
うことである。 アセンブリ言語のインストラクシヨンはマシン
言語インストラクシヨンに変換され、該変換され
たインストラクシヨンはデイジタル信号プロセサ
を実際に制御するためメモリ中に記憶される。操
作は互いに関連しており、すべての操作はプロセ
サ内で同時に生起するから、常時種々のレジスタ
中に何が記憶されており、どの操作がそれに対し
て実行されているかを知つていることが必要であ
る。 プロセサ操作に積ワードpのどの値が関与して
おり、アキユミユレータの内容aのどの値が関与
しているのかについて混乱が生じないようにアセ
ンブリ言語を用いて記述する場合に操作を次の順
序で行うことを推奨する。 {w←a}a←p+fa(a)
p←x・f(y)またはp←x・f(w) このようにして左から右に進むことにより、積
ワードpおよびアキユミユレータの内容aの適正
な値が更に明らかとなる。適正な値はその値を決
定する直前の操作の結果として得られる。このよ
うにして丸められて出力wとされるか又は任意の
関数fa(a)で使用されるアキユミユレータの内容a
の値は直前の累算が終了した時点におけるアキユ
ミレータの内容aである。同様に現在の累算で使
用される積ワードpの値は直前に乗算操作で決定
された値を有している。 プロセサ操作の順序に関して先に述べた理由か
ら、アセンブラ言語のインストラクシヨン中に含
まれている情報がプロセサに適当な順序で加えら
れることが重要である。次の順序で加えられる情
報はプロセサにより受け入れられる。 (1) 目的場所の選択が行なわれる。目的場所に書
き込まれるワードは丸められた出力ワードwま
たはデータ・ワードyのいずれからか選択され
る。選択されたワードはRAMまたは入出力回
路中に書き込まれる。選択さたワードの特定の
目的場所が与えられる。 (2) インストラクシヨンの要求により、結果とし
て得られたワードaを丸められた出力w中に移
動すべきか否かの選択が行なわれる。 (3) 一累算操作が一般表現式a=p+fa(a)を有す
る一群の操作から選択される。 (4) 係数ワードxのソースXSRC、関数fの性質、
データ・ワードyの選択およびデータ・ワード
yのソースYSRCを指示することにより積p=
x・f(y)を発生させる乗算操作を規定する。
あるいは係数ワードxのソースXSRC、関数fの
性質、およびデータ・ワードyでなく丸められ
た出力wの選択を指示することにより積p=
x・f(w)を発生する乗算操作を規定する。 以下に述べる例外は上述の左から右に進む法則
に適用される。丸められた出力wが乗算のために
選択されるとき、丸められた出力wの値は先行す
るインストラクシヨンで実行された結果として得
られるワードaの最も最近の丸め操作により決定
された値となる。データ・ワードyが書き込ま
れ、データ・ワードyのソースが規定されると、
インストラクシヨン実行の第1ステツプはデータ
を規定されたソースからデータ・レジスタY中に
移動することである。その後データ・ワードyに
対するこの新らしい値の書き込みが生じる。 以下に示す表はアセンブラ言語のプログラム
を作成するときにプログラマが使用する正規のア
センブリ言語のインストラクシヨンを要約したも
のである。Cと呼ばれる言語(これについてはビ
ー・ダブリユー・カーニガン等の「Cプログラミ
ング言語」プレンテイス・ホール・インコーポレ
ーテツド、1978年、と題する本に述べられてい
る)の文法がアセンブラ言語として使用されてい
る。各々の完備なインストラクシヨンは、最も左
側の列から始めて右方向に向う表の各列から1
つのステートメントを選び、総計4ステートメン
トを選択することにより形成される。左側2列に
はNOTHINGなるワードが妥当な選択としてリ
ストされている。NOTHINGなるワードが完備
なインストラクシヨンの1部として選択されたと
きにはインストラクシヨン中の相応するスペース
は空白のままとされる。各々の完備なアセンブラ
言語のインストラクシヨンはセミコロンで終る。
【表】
【表】 表においてDESTなる信号は目的場所ステー
トメントを表わし、アセンブラ言語のインストラ
クシヨン中では次のステートメントの1つで置き
換えられる。 DEST* rd++i* rd++j* rd++k obuf ここで例えば*rd++iはレジスタRDの内容
により指定されたRAM中のロケーシヨンのアド
レスであるrdがレジスタRIの内容iによりスト
歩進されることを意味する。上述の目的場所ステ
ートメントの他のものの解釈は以下でより詳細に
行う。 また表においてXSRCなる記号はデータ・ワー
ドxのソースに対するステートメントを意味し、
YSRCなる記号はデータ・ワードyのソースに対す
るステートメントを意味する。表中のこれら2
つの記号の各々はアセンブラ言語のインストラク
シヨン中では以下に示す2列中のステートメント
の1つで置き換えられる。XSRC YSRC x(old x) *ry++i VALUE(immediate x) *ry++j* rx++i *ry++k* rx++j ibufy* rx++k* rx* rx― ibufx* (rom+rx++i)* (rom+rx++j)* (rom+rx++k) &LABEL 上記XSRCと表題の付けられた列において、
VALUEなる記号はインストラクシヨンの(数学
的な)変数として表われる数値、即ちROM中の
オペコードの直後に続く16ビツト・ワードを表わ
す。この変数はプログラム・カウンタ・レジスタ
PC中に記憶されたアドレスによりアドレス指定
される。メモリからの他のフエツチにおいては、
係数ワードxはレジスタRXの内容rxによつてア
ドレス指定される*(rom+rx…)なる表記法は
レジスタRXの内容rxがRAMでなくROMを指定
していることを示すのに使用される。&LABEL
なる記号はメモリ・ソースxから読み出された値
がプログラム中のラベルと関連するアドレスであ
ることを表わす。係数ワードxのソースおよびデ
ータ・ワードyに対する前述の2列中に示された
他の表現については以下で更に詳細に述べる。 表に示す情報から完備なアセンブラ言語の命
令を形成する際の注意事項について述べる。最も
右側の列中で表現YSRCを含むインストラクシヨン
で表現式DEST=YSRCが必要な場合にはDEST=
YSRCの表現の代りにDEST=yなる表現を使用し
なければならない。丸められた出力wが最も右側
の列で使用されるならば、表現式DEST=YSRC
最も左側の列から選択することは出来ない。更に
アセンブラ言語のインストラクシヨンが係数ワー
ドxのソースがRAM中に位置する正規インスト
ラクシヨンであるときはNOTHINGは最も左側
の列から選択されねばならない。 プログラムを作成するに当り、プログラマは最
初一連の汎用数学表現式または実行を望む操作を
書き下す。これらは例えば次の形をとる。 x・f(w)+fa(a)→a{→w} このような汎用数学表現式はプログラマによつ
て次の形を有するアセンブラ言語のステートメン
トに変換される。 S* rd++j=w n w=a m a=p+a l,t p=*rx++ix*ry++k ここで lは積の情報を制御するインストラクシヨン・
フイールドを意味する。 mは累算を実行するインストラクシヨン・フイ
ールドを意味する。 nは所望の丸めを行つてレジスタAからレジス
タWへの転送操作を制御するインストラクシヨ
ン・フイールドを意味する。 sは書き込みの目的場所を指定するインストラ
クシヨン・フイールドを表わす。この例では目的
場所はレジスタRD中に記憶されたアドレスによ
り指定されるメモリ・ロケーシヨンである。この
アドレスはポスト歩進され、その結果はレジスタ
RD中に記憶される。 tはアドレス演算ユニツト・レジスタ中に記憶
されたアドレスから情報を取り出し、該アドレス
をポスト歩進させ、該アドレスを再び同じアドレ
ス中に記憶させるインストラクシヨン・フイール
ドを意味する。 プログラマにより実行される次のステツプはア
センブラ言語のステートメントを次に示すように
時間的に斜めに配置させる(即ち拡大・分布させ
る)ことである。
【表】 最も左側の列の時間ライン上に対角線的に現わ
れるところのその結果として得られる斜めに配置
されたアセンブリ言語のステートメントは他の汎
用数学操作を表わす斜めに配置されたアセンブリ
言語のステートメントと共に記述される。これら
斜めに配置されたアセンブラ言語のステートメン
トが一緒に記述されるとき、同じ行中に現われる
(即ち期間iの如き同じ期間内に現われる)異な
つたステートメントのその結果として得られる細
片(ピース)はアセンブラ言語のインストラクシ
ヨンを形成する。アセンブラ言語のインストラク
シヨン中において、同じ期間内の情報の異なる細
片(ピース)はそのアセンブラ言語インストラク
シヨンの別個のフイールドである。これらフイー
ルドの各々は1つの汎用数学表現式の1部分によ
つて記述されるように評価操作中の1ステツプを
実行するべくプロセサの別個のサブセクシヨンを
制御する。 汎用計算機上ではランするアセンブラ・プログ
ラムは、各々のアセンブラ言語のインストラクシ
ヨンに作用して、ソース・フイールドを、同じア
センブラ言語のインストラクシヨン中の残りのフ
イールドよりもプログラム中で2プロセサ・サイ
クル早く移動させる。このソース・フイールドの
移動はプログラム中のすべてのアセンブラ言語の
インストラクシヨンに対して実行される。その結
果プログラムおよびアセンブラによつて斜めに配
置された前述のアセンブラ・ステートメントの時
間ラインは次のようになる。
【表】 さて第5および6図を参照するとデイジタル信
号プロセサ中においてデータがどのように処理さ
れるかを指示する時間ライン・ダイアグラムが示
されている。一般に、このダイアグラムは1つの
汎用数字表現式および他の数字表現式の部分の評
価期間中にプロセサの種々のサブセクシヨンを通
してデータが流れる様子を示すものである。 提示された操作を記述する前に第5および6図
の時間ライン・ダイアグラムで使用される記号を
定義する。 Iiはプロセサ・サイクル(即ち期間)i中で
ROMからフエツチされ、プロセサ・サイクル
(即ち期間)i+1中でプロセサ内でデコードさ
れるマシン言語インストラクシヨンである。一般
にインストラクシヨンIiはプロセサ・サイクル
(即ち期間)i+2中のプロセサのセクシヨンの
操作に影響を与える。先に述べた如く、各インス
トラクシヨンはフイールド、即ち制御メツセージ
l,m,n,sおよびtを含んでいる。 Ii(t)はオペランドxi+3およびyi+3のフエツチ
を制御するマシン言語のインストラクシヨンIi中
のフイールドtを表わす。このフエツチは期間i
+3中に行なわれる。 Ii((l))は期間i+2中の積、即ち中間オペラ
ンドpi+2の計算を制御するマシン言語インストラ
クシヨンIi中のフイールドlを表わす。積pi+2
オペランドxi+1およびyi+1の関数である。 Ii(m)は期間i+2中において出力、即ち結
果として得られる所望のワードai+2の累算を制御
するマシン言語インストラクシヨンIi中のフイー
ルドmを表わす。結果として得られるデータai+2
は最も最近得られたデータai+1と先に計算された
積pi+1の関数である。 Ii(n)は期間i+2中において丸められた出
力データwi+2の転送を制御するマシン言語インス
トラクシヨン中のフイールドnである。丸められ
た出力wi+2は最も最近得られた丸められた出力
wi+1および結果として得られるアキユミレータの
ワードai+1の関数である。 Ii(s)は期間i+2中において丸められた出
力データwi+2の記憶およびレジスタに記憶された
アドレスui+2の修飾を制御するマシン言語インス
トラクシヨン中のフイールドである。修飾された
アドレスは以前のアドレスui+1およびフイールド
Ii(s)の関数である。更新されたメモリの状態
Mi+2はフイールドIi(s)、以前のメモリ状態
Mi+1、レジスタに記憶されたアドレスui+1および
丸められた出力ワードwi+1の関数である。 Ii(s,t)はマシン言語インストラクシヨン
内のフイールドsおよびtの組合せである。この
フイールドは期間i+2中においてレジスタに記
憶されたアドレスui+2の修飾を制御する。修飾さ
れたアドレスui+2はまたアドレスui+1の関数であ
る。 xiおよびyiは期間i―3中にメモリからフエツ
チされたインストラクシヨンIi-3のフイールドt
の制御の下で期間i中にメモリからフエツチされ
たオペランドである。インストラクシヨンIi-3
期間i―2中にデコードされ、期間i―1(この
ときオペランドxiおよびyiに対するアドレスが発
生される)中の処理を制御する。先に述べた如
く、これらオペランドは期間i中においてメモリ
からアクセスされる。これらオペランドは期間i
+1中において期間i―1中にフエツチされるイ
ンストラクシヨンIi-1のフイールドlの制御の下
で乗算器を通して処理される。これにより中間オ
ペランド、即ち積Pi+1が発生される。 Pi+1は期間i+1中に乗算器で形成された積を
表わす。この積は期間i+2中に生起するその操
作に対するアキユミレータの入力として使用され
る中間オペランドである。積Pi+1はフイールド
Ii-1((l))の制御の下でレジスタP中で形成され
る。乗算および被乗数はオペランドxiおよびyi
ある。 ai+2は期間i+2中のアキユミレータの内容を
表わす。これは評価されている表現式に対する結
果として得られる所望のワードai+2である。ワー
ドai+2は期間i+3における丸めおよび出力回路
サブセクシヨンに対する入力である。丸め操作は
フイールドIi+1(n)の制御の下で生じる。 wi+2は丸められた出力ワードwを表わし、これ
はレジスタW中において得られ、フイールドIi+2
(s)の制御の下で期間i+4中に書き込み可能
なメモリ中に記憶される。 第5および6図のダイアグラムにはプロセサ・
サイクル中の時間と共にデイジタル信号プロセサ
の種々のプロセサ・サブセクシヨンの処理状況が
すべて示されている。チヤート中の各列はプロセ
サの異なるプロセサ・サイクル(即ち時間期間)
を表わす。各列中の情報はあるマシン言語インス
トラクシヨンと密接な関係を有している。各行は
デイジタル信号プロセサの操作期間中割当てられ
た機能を実行する異なるプロセサ・サブセクシヨ
ンの動作状態を表わしている。 チヤートの各行は異なる動作状態を表わしてい
るから、その動作状態を定義する必要がある。プ
ロセサ・サイクルを示す行の次の行は記憶動作状
態、即ちメモリ・フエツチおよび記憶を表わす。
第2の行はデイジタル信号プロセサ内でインスト
ラクシヨンがデコードされる時刻を表わす。第3
行はプロセサの乗算器サブセクシヨンによる積p
の計算を示している。第4番目の行はプロセサの
アキユミレータ・サブセクシヨンによる結果とし
て得られるワードaの累算を表わしている。第5
行目は丸められた出力ワードwを発生するプロセ
サの丸めおよびオーバフロー・サブセクシヨンの
動作状態を示している。第6番目の行は演算処理
を行うべくデータをフエツチするのに使用される
アドレスの修飾と関連する動作状態を表わす。 前述の汎用演算表現式の処理は第5および6図
を参照することによつてデイジタル信号プロセサ
の種々のセクシヨンおよびサブセクシヨンをトレ
ースすることが出来る。 汎用演算表現式の処理の第1ステツプは乗算の
ためのオペランドをフエツチすることである。先
に述べた如く、このフエツチ操作と関連する情報
はアセンブラ・プログラムにより乗算操作の制御
と関連する情報よりも早く加えられる。このアセ
ンブラ・プログラムの機能の結果として、各々の
マシン言語インストラクシヨンは後続のマシン言
語インストラクシヨンで制御される処理に対しメ
モリから情報をフエツチするフエツチ操作に対す
る制御フイールドを含んでいる。 インストラクシヨンの処理の1例として、第5
図の期間i―3中にフエツチされたインストラク
シヨン内に含まれているそのオペランドに対する
フエツチ操作に関する情報を有する一般表現式を
処理する場合について考察する。このインストラ
クシヨンIi-3は四角で囲つた枠内に示されており、
このインストラクシヨンは期間i―3中にフエツ
チされたものであることを指示する添字が付され
ている。プロセサの機能チヤート中に示されてる
各々のインストラクシヨンは同様にしてそのイン
ストラクシヨンがメモリからフエツチされた期間
に従つて名前が付与されている。また第5および
6図に示す各々のインストラクシヨンは制御情報
の幾つかのフイールドを含んでいる。これらフイ
ールドl,m,n,sおよびtの各々はフエツチ
および記憶操作を表わす第1の行中のインストラ
クシヨンと関連するカツコ内に示されている。イ
ンストラクシヨンの別のフイールドがチヤートの
他の行中に示されている。例えば積を計算する行
中のIi((l))、およびアドレスを修飾する行中のIi
(s,t)などである。 期間i―2内において、丁度このときフエツチ
されたインストラクシヨンIi-3はインストラクシ
ヨンのデコーデイングを表わす第2の行中の四角
で囲つた枠内に示すようにプロセサによりデコー
ドされる。 インストラクシヨンIi-3により指定されたオペ
ランドxおよびyに対するフエツチ操作は期間i
―1内において開始される。フエツチ操作はイン
ストラクシヨン・フイールドIi-3(t)中で示され
るアドレスを用いて開始される。このアドレスが
使用されるとき、該アドレスはインストラクシヨ
ン・フイールドIi-3(s,t)およびアドレス演算
セクシヨン中のレジスタの以前の状態ui-2の関数
として修飾され、アドレス演算セクシヨン中に再
び記憶される。このアドレスの修飾は期間i―1
の例中の四角で囲んだ枠内に示されている。これ
らオペランドxおよびyのフエツチは期間i内に
終了し、このときインストラクシヨンIi-3により
指示された特定のオペランドxiおよびyiはメモリ
から読み出され、共通データおよび制御バスを通
して夫夫レジスタREG X102およびREG Y
106に転送される。これらフエツチ操作は期間
iの列の四角で囲んだ枠内に示されている。オペ
ランドxiは典型例ではROMから読み出され、オ
ペランドyiは典型例ではRAMから続み出される。 以前の期間i―1中に更新されたアドレス・ポ
インタまたはレジスタRXおよびPY中に記憶さ
れたアドレスは期間i中にメモリ中のオペランド
にアクセスするのに使用される。 オペランドxiおよびyiに対して実行される第1
の演算操作は期間i+1中に生起する。このと
き、乗算器サブセクシヨンはインストラクシヨ
ン・フイールドIi-1((l))に応動し、期間i+1の
列中の四角で囲んだ枠内に示すように中間オペラ
ンド、即ち積Pi+1を計算する。この積Pi+1はイン
ストラクシヨン・フイールドIi-1((l))およびオペ
ラントxiとyiの関数として示されている。 フイールドIi-1((l))を含むインストラクシヨン
Ii-1は期間i―1中にメモリからフエツチされ、
期間i中にデコードされ、期間i+1中にプロセ
サのセクシヨンを制御する。 一般表現式を評価する次のステツプは期間i+
2内においてアキユミレータで処理される。これ
は第6図における期間i+2の列中の四角で囲ん
だ枠内に記された結果として得られるワードaの
累算を表わす第4の行中に示されている。結果と
して得られるワードai+2はアキユミレータ中に記
憶された以前の結果として得られたワードai+1
上述の中間オペランド、または積Pi+1およびイン
ストラクシヨン・フイールドIi(m)の関数とし
て示されている。 プログラマによつて指定されている場合、期間
i+2内において結果が累算された後で、その結
果は丸められ、丸められた出力を記憶するレジス
タW中に記憶される。この丸め操作は出力の丸め
を表わす第5行中の期間i+3の列の下の四角で
囲つた枠内に示されている。特定の丸め操作は期
間i+3中に生じる。こゝで丸められた出力wi+3
は丸められた出力レジスタW118の最も最近の
丸められた出力wi+2、上述の結果として得られる
アキユミユレータのワードai+2、およびインスト
ラクシヨン・フイールドIi+1(n)の関数として示
されている。 汎用表現式の処理の最終ステツプは丸められた
出力wi+3を期間i+4中にメモリに書き込むこと
である。これは期間i+4の列の第1行に当る四
角で囲んだ枠内に示されている。新らしいメモ
リ・ステートMi+4の書き込みは、期間i+3の
メモリ・ステートMi+3、最も最近のアドレス・
レジスタ・ステータスui+3、上述の最も最近の丸
められた出力wi+3、期間i+2中にフエツチさ
れ、期間i+3中にデコードされたインストラク
シヨン・フイールドIi+2(s)の関数である。 期間i+3の終了時点において丸められた出力
を保持するレジスタ中に含まれている丸められた
出力wi+3は共通データおよび制御バスを通して期
間i+4中にRAMまたは入出力回路中のバツフ
アに転送される。 期間i+4中にメモリ書き込み操作が行なわれ
るのと同時に、アドレス演算セクシヨン・レジス
タは期間i+2中にフエツチされたインストラク
シヨン中の情報に基づいて更新される。使用され
た情報は期間i+2中にフエツチされ、期間i+
3中にデコードされるインストラクシヨンIi+2
フイードIi+2(s,t)中に含まれている。 期間i+2中において、期間i中にフエツチさ
れたインストラクシヨンIiは演算セクシヨンの乗
算器サブセクシヨン、アキユミユレータ・サブセ
クシヨン、並びに丸めおよびオーバフロー・サブ
セクシヨンを制御することに注意されたい。これ
はインストラクシヨンIiが期間i中にフエツチさ
れ、期間i+1中にデコードされ、期間i+2中
に制御に使用されることに由来する。従来のパイ
プライン制御装置のように、以後の期間中どの部
分も演算セクシヨンのサブセクシヨンを制御する
ことはない。期間i+2を表わす列のほとんどは
太線で示されており、従つて期間i+2中に演算
セクシヨンのサブセクシヨンを制御するインスト
ラクシヨンIiの幾つかのフイールドは容易に見出
すことが出来よう。 乗算器操作に対するオペランドは期間iにに続
く期間i+1中にフエツチされる。その結果得ら
れる積Pi+2は次の期間i+2中に形成される。 同じ期間i+2中に形成される結果として得ら
れるワードai+2は以前の結果として得られたワー
ドai+1および以前の積Pi+1の関数である。この結
果として得られたワードai+2は、積Pi+2を形成す
ることにより評価される汎用表現式とは異なる汎
用表現式に対して評価された結果として得られた
ワードである。この概念は多分プロセサ・サイク
ルiと名付けられた列の最上部からプロセサ・サ
イクルi+3と名付けられた列中の第5行に至る
対角線を形成する四角で囲つた枠が1つの汎用表
現式の評価と関連していることを認識するとより
良く理解されよう。各列中において右に1期間分
シフトした同様な対角線は他の異なる汎用表現式
の評価と関連している。 信号処理プログラムでは通常インストラクシヨ
ンは、プログラム・カウンタPCが系列の最初の
インストラクシヨンのロケーシヨンであるプログ
ラム記憶装置中のアドレスにセツトされるまで逐
次実行される。このようにしてプログラムは連続
ループ動作し、同じインストラクシヨン系列を繰
返し実行する。更に、固定データ・ワードはアド
レスがプログラム系列中にインストラクシヨンの
ロケーシヨンでインターリーブされているメモ
リ・ロケーシヨンに記憶される。このようにし
て、第4図に示すように、プログラム・カウン
タ・レジスタPC中のアドレスはプロセサ・サイ
クルi+1のステート2の間固定データ・ワード
をアドレス指定するのに使用される。次にプログ
ラム・カウンタはプロセサ・サイクルi+2のス
テート0の間に固定歩進値+1によつて歩進され
るか、またはインストラクシヨンIi+2をアドレス
指定するのに使用される。再びプログラム・カウ
ンタはプロセサ・サイクルi+2のステート2の
間に固定歩進値+1により歩進され、次に固定デ
ータ・ワードをアドレス指定するのに使用され
る。これを継続して、プログラム・カウンタはプ
ロセサ・サイクルi+3のステート0の間に+1
だけ歩進され、アドレス・インストラクシヨン
Ii+3をアドレス指定するのに使用され、最終的に
インストラクシヨン系列の終りに達する。そのと
きプログラム・カウンタは補助レジスタ・セツ
ト・インストラクシヨンにより系列の最初のイン
ストラクシヨンのアドレスにセツトされる。 以上本発明の実施例の装置および動作について
述べた。本発明の範囲は本明細書で述べた実施例
ならびに当業者において容易に考案し得る変形を
含むことに注意されたい。 以上要約すると次の通りである。 パイプライン操作を行うよう作られたデイジタ
ル・プロセサは共通データおよび制御バス101
とインストラクシヨンおよびデータ・ワードのソ
ース100,105を有している。演算セクシヨ
ン110は表現式に従つて操作を実行する選択さ
れたプロセサ・サブセクシヨンを通して1つのデ
ータ・ワードを他のデータ・ワードで処理し、そ
の結果として得られるデータ・ワードを発生す
る。目的場所105は結果として得られるデー
タ・ワードを演算セクシヨンから受信する。制御
回路(IR―L,M,NおよびIR―S,T)は各
プロセサ・サイクル期間中単一の正規インストラ
クシヨン(即ちIi)を受信し、すべての処理サブ
セクシヨン112,115,116の操作を制御
する。各プロセサ・サイクル期間中、各プロセ
サ・サブセクシヨン(即ち112)は他の処理サ
ブセクシヨン(即ち115または116)が該プ
ロセサ・サイクル期間中実行するのとは異つた表
現式と関連する操作を実行する。単一の正規イン
ストラクシヨン(即ちIi)により制御されるすべ
ての操作は単一のプロセサ・サイクル期間中に実
行される。共通バスは各プロセサ・サイクル期間
中時分割使用され、単一の正規インストラクシヨ
ンをソースから制御回路に転送し、データ・ワー
ドをソースから演算セクシヨンに転送し、結果と
して得られるデータ・ワードを演算セクシヨンか
ら目的場所に転送する。 1 パイプライン式デイジタル信号プロセサにお
いて、該プロセサはルーチン処理操作を制御す
るインストラクシヨン・ワードのストリームお
よびデータ・ワードのストリームを提供するソ
ース(例えば100または105)と;表現式
により表わされる操作を実行する選択された処
理サブセクシヨン112,115を通して1つ
のデータ・ワードを他のデータ・ワードで処理
し、その結果として(REGA中の)データ・
ワードを発生する演算セクシヨン110と;結
果として得られたデータ・ワードを演算セクシ
ヨンから受信する目的場所105とを有し;該
パイプライン式デイジタル信号プロセサは: すべての処理サブセクシヨンの操作を制御す
るべく各プロセサ・サイクル期間中単一の正規
インストラクシヨン・ワード(即ちIi)を受信
する制御手段(IR―L,M,NおよびIR―S,
T)を含み、各処理サブセクシヨン(即ち11
2)は他の処理サブセクシヨン(即ち115ま
たは116)とは異なる表現式と関連する操作
を実行し、単一の正規インストラクシヨン(即
ちIi)により制御されるすべての操作は単一の
プロセサ・サイクル(i+2)期間中に実行さ
れ、 各プロセサ・サイクル期間中時分割使用され
る共通バス101は単一の正規インストラクシ
ヨン・ワードをソースから制御手段に転送し、
データ・ワードをソースから演算セクシヨンに
転送し、結果として得られるデータ・ワードを
演算セクシヨンから目的場所に転送することを
特徴とするパイプライン式デイジタル信号プロ
セサ。 2 第1項記載のパイプライン式デイジタル信号
プロセサにおいて、制御手段は更に: ソースおよび目的場所をアドレス指定する手
段124,128がプロセサ・サイクル中にア
ドレスのストリームをソースおよび目的場所に
発生・印加し、アドレスの各プロセサ・サイク
ルは制御ワード・アドレス、固定データ・ワー
ド・アドレス、可変データ・ワード・アドレス
および結果として得られるワード・アドレスを
含むことを特徴とするパイプライン式デイジタ
ル信号プロセサ。 3 第2項記載のパイプライン式デイジタル信号
プロセサにおいて、インストラクシヨン・ワー
ドのストリームおよび固定データ・ワードのス
トリームを提供するソースは更に: 固定データ・ワードはソース中の逐次アドレ
ス指定されるロケーシヨン中の制御ワードとイ
ンタリーブされ、特定の固定データ・ワード・
アドレスおよび特定の制御ワード・アドレスは
プロセサ・サイクル毎にアドレス指定手段12
4,128により発生され、固定データ・ワー
ドおよび制御ワードの系列がアクセスされると
き、各々の固定データ・ワード・アドレスは、
固定データ・ワード・ストリームの次のワード
をアクセスするために最も最近使用された制御
ワード・アドレスを一様に歩進させることによ
り発生され、各々の特定の制御ワード・アドレ
スは制御ワード・ストリームの次のワードをア
クセスするために最も最近使用された固定デー
タ・ワードを一様に歩進させることにより発生
されることを特徴とするパイプライン式デイジ
タル信号プロセサ。 4 Ii((l))を第1のフイールド、Ii(m)を第2
のフイールドとし、各フイールドはオペランド
yi+1の選択された表現式の処理のステツプを決
定し、Ii(l,m,…)(i=0,1,2,…)
と名付けられたオペコード・ワードの系列の各
オペコード・ワード中の複数個のフイールドに
応動して動作するパイプライン式データ・プロ
セサにおいて、該プロセサは第1の期間(i=
1)中に第1のオペコード・ワードI1(l,m,
…)をフエツチして記憶し、第2の期間(i+
1=2)中に第2のオペコード・ワードI2(l,
m,…)をフエツチして記憶する等々の操作を
行う手段101,124,128と;第2の期
間中フイールドI1((l))および(m)をデコー
ドし、デコードされたフイールドを記憶し、第
3の期間(i+2=3)中フイールドI2((l))
およびI2(m)をデコードし、デコードされた
フイールドを記憶する等々の操作を行う手段
(DECODE F,REG F)と;第1の期間中
オペランドy1をフエツチして記憶し、第2の期
間中オペランドy2をフエツチして記憶する等々
の操作を行う手段101,124,128を含
み、該パイプライン式データ・プロセサは: 第3の期間中にデコードされたフイールドI1
((l))に応動して第3の期間中オペランドy2
処理して中間オペランドP3とする第1のプロ
セサ・サブセクシヨン112と; 第3の期間中にデコードされたフイールドI1
(m)に応動して第3の期間中中間オペランド
P2を処理してオペランドy1の選択された関数a3
とする第2のプロセサ・サブセクシヨン115
と; 第4の期間(i+3=4)中にデコードされ
たフイールドI2((l))に応動して第4の期間中
オペランドy3を中間オペランドP4にデコードす
る第1のプロセサ・サブセクシヨンと; 第4の期間中にデコードされたフイールドI2
(m)に応動して第4の期間中中間オペランド
P3を処理してオペランドy2の選択された関数a4
とする第2のプロセサ・サブセクシヨンにより
特徴付けられるパイプライン式データ・プロセ
サ。 5 パイプライン式デイジタル信号プロセサにお
いて、データ・ワードの順序付けられたストリ
ームは複数個の処理ステツプを要求するアルゴ
リズムにより処理され、各処理ステツプは複数
個の処理サブセクシヨン112,115,11
6の各々の操作によつて実行され、各々の処理
サブセクシヨンは制御ワードの順序付けられた
ストリームの各制御ワードIi(l,m,n,s,
t)中に含されている選択された制御メツセー
ジ(l,m,n)の制御の下で動作し、個々の
処理サブセクシヨンはデータ・ワードの順序付
けられたストリームの異なるデータ・ワードに
同時に作用し、各制御ワード中の第1のメツセ
ージIi((l))は第1の処理サブセクシヨン11
2を制御し、各制御ワード中の第2のメツセー
ジIi(m)は第2の処理サブセクシヨン115
を制御し、パイプライン式デイジタル信号プロ
セサは、 制御ワードを処理サブセクシヨンに加える手
段(IR―L,M,N)を含み、各制御ワード
は第1および第2の処理サブセクシヨンを夫々
同時に制御するため少くとも第1および第2の
メツセージを含むことを特徴とするパイプライ
ン式デイジタル信号プロセサ。 6 パイプライン式デイジタル信号プロセサにお
いて、該プロセサはルーチン処理操作を制御す
るインストラクシヨン・ワードのストリームお
よび固定データ・ワードのストリームを提供す
ると共に可変データ・ワードを提供するソース
手段(100または105)と;相続くプロセ
サ・サイクル中で生起し、結果として得られた
データ・ワードを発生する表現式を表わす選択
された操作により固定データ・ワードの1つを
可変データ・ワードの1つで処理する演算セク
シヨン110と;結果として得られるデータ・
ワードを演算ユニツトから受信する目的場所手
段105と;選択可能な操作群の内のどれが第
2のプロセサ・サイクル(i+2=3)期間中
に生起するかを決定するべく第1のプロセサ・
サイクル(i=1)期間中に1つのインストラ
クシヨン・ワードを受信する制御手段(IR―
L,M,NおよびIR―S,T)とを含み、該
パイプライン式デイジタル信号プロセサは: 制御ワードをソース手段から制御手段に転送
するべくソース手段を制御手段と相互接続し、
固定および可変データ・ワードをソース手段か
ら演算セクシヨンに転送するべくソース手段を
演算セクシヨンの入力と相互接続する単一の時
分割バスを含むソース手段へのアクセス装置1
01,124,128と、 結果として得られるデータ・ワードを演算セ
クシヨンから目的場所手段に転送するべく演算
セクシヨンの出力を目的場所手段と相互接続す
る単一の時分割バスを含む目的場所へのアクセ
ス装置101,124,128とにより特徴づ
けられるパイプライン式デイジタル信号プロセ
サ。
【図面の簡単な説明】
第1図および第2図は第3図に示すように配置
されパイプライン・デイジタル信号プロセサのブ
ロツク図を示す図であり、第3図は第1図と第2
図の配置図であり、第4図はタイミング図であ
り、第5図および第6図は第7図に示すように配
置されプロセサの機能チヤートを示す図であり、
そして第7図は第5図と第6図の配置図である。 主要部分の符号の説明、ソース…100、演算
セクシヨン…110、目的場所回路…105、制
御回路…IR―L,M,NおよびIR―S,T、共
通バス…101、アドレス指定する回路…12
4,128、デコード回路…DECODE F
REG F、第1のプロセサ・サブセクシヨン…1
12、第2のプロセサ・サブセクシヨン…11
5。

Claims (1)

  1. 【特許請求の範囲】 1 オペコード・ワード・ソースを有するパイプ
    ライン操作デイジタル・プロセサであつて、オペ
    コード・ワード系列の各オペコード・ワードの複
    数のフイールドに応答して動作し、該オペコー
    ド・ワードはi=0,1,2……,ii(l)が第1の
    フイールドそしてIi(m)が第2のフイールドと
    した場合li(l,m,……)として指定され、各フ
    イールドはオペランドyi+1の選択された表現の処
    理のステツプを決定するものであるプロセサにお
    いて、 第1の期間中(i=1)に第1オペコード・ワ
    ードI1(l,m,……)をフエツチして記憶し第
    2の期間中(i+1=2)に第2のオペコード・
    ワードI2(l,m,……)をフエツチして記憶す
    るための共通バス(例えば107)並びにソース
    と目的場所アドレス指定回路(例えば124,1
    28); 該第2の期間中にフイールドI1((l))とI1(m)
    をデコードして該デコードされたフイールドを記
    憶し第3の期間中(i+2=3)にフイールドI2
    ((l))とI2(m)をデコードして該デコードされた
    フイールドを記憶するためのデコード回路
    (DECODE F,REG F); ここで該共通バス(例えば101)並びにソー
    スと目的場所アドレス指定回路は該第1の期間中
    にオペランドy1をフエツチして記憶しそして該第
    2の期間中にオペランドy2をフエツチして記憶し
    ており、 該第3の期間中でデコードされたフイールドI1
    ((l))に応答して該第3の期間中に該オペランド
    y2を中間オペランドp3に処理する第1のプロセ
    サ・サブセクシヨン(例えば112);及び 該第3の期間中でデコードされたフイールドI1
    (m)に応答して該第3の期間中に中間オペラン
    ドp2を該オペランドy1の選択された関数a3に処理
    する第2のプロセサ・サブセクシヨン(例えば1
    15)からなり、ここで該第1のプロセサ・サブ
    セクシヨンは第4の期間中(i+3=4)でデコ
    ードされたフイールドI2((l))に応答して該第4
    の期間中にオペランドy3を中間オペランドp4にデ
    コードしており、そして 該第2のプロセサ・サブセクシヨンは該第4の
    期間中でデコードされたフイールドI2(m)に応
    答して該第4の期間中に該中間オペランドp3を該
    オペランドy2の選択された関数a4に処理している
    ものであるところのパイプライン操作デイジタ
    ル・プロセサ。
JP1758581A 1980-02-11 1981-02-10 Digital processor for operating pipe line Granted JPS56149647A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12005880A 1980-02-11 1980-02-11

Publications (2)

Publication Number Publication Date
JPS56149647A JPS56149647A (en) 1981-11-19
JPH0157818B2 true JPH0157818B2 (ja) 1989-12-07

Family

ID=22388026

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1758581A Granted JPS56149647A (en) 1980-02-11 1981-02-10 Digital processor for operating pipe line

Country Status (5)

Country Link
JP (1) JPS56149647A (ja)
CA (1) CA1155232A (ja)
DE (1) DE3104255A1 (ja)
GB (2) GB2069198B (ja)
NL (1) NL8100632A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL81764A0 (en) * 1986-04-15 1987-10-20 Symbolics Inc Processor internal bus control

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5247976A (en) * 1975-10-13 1977-04-16 Hoshizaki Electric Co Ltd Improvement of drink whipping apparatus
JPS5367328A (en) * 1976-11-29 1978-06-15 Nec Corp Order process system

Also Published As

Publication number Publication date
CA1155232A (en) 1983-10-11
GB2069198A (en) 1981-08-19
NL8100632A (nl) 1981-09-01
GB8410196D0 (en) 1984-05-31
DE3104255A1 (de) 1982-04-08
JPS56149647A (en) 1981-11-19
GB2069198B (en) 1984-12-19
GB2137786B (en) 1985-04-17
GB2137786A (en) 1984-10-10

Similar Documents

Publication Publication Date Title
US4539635A (en) Pipelined digital processor arranged for conditional operation
EP0198214B1 (en) Branch control in a three phase pipelined signal processor
EP0286354B1 (en) A method and apparatus for modifying micro-instructions using a macro-instruction pipeline
US3775756A (en) Programmable special purpose processor having simultaneous execution and instruction and data access
JPS6313215B2 (ja)
JPH0810428B2 (ja) データ処理装置
JPS6010644B2 (ja) シ−ケンス表示制御方法
US3571804A (en) Method for execution of jumps in an instruction memory of a computer
US4598358A (en) Pipelined digital signal processor using a common data and control bus
JPH03286332A (ja) デジタルデータ処理装置
US3748447A (en) Apparatus for performing a linear interpolation algorithm
JPH0444970B2 (ja)
US4525776A (en) Arithmetic logic unit arranged for manipulating bits
US4812970A (en) Microprogram control system
US5167025A (en) Programmable controller generating plural alternating clocks with each clock controlling different parts of instruction sequencing mechanism
JPH0477346B2 (ja)
JPH0157818B2 (ja)
CA1155231A (en) Pipelined digital processor arranged for conditional operation
JPH0721793B2 (ja) 表処理装置
JP2567134B2 (ja) ビットフィールド論理演算処理装置およびそれを具備するモノリシックマイクロプロセッサ
JPH0640337B2 (ja) パイプライン演算装置
JPH0222413B2 (ja)
JPS5831471A (ja) ベクトル命令処理装置におけるコンフリクト・チエツク回路
JPS58200349A (ja) マイクロプログラム制御装置
JPH0512009A (ja) デイジタル信号処理装置