JPH05210500A - データ処理装置 - Google Patents

データ処理装置

Info

Publication number
JPH05210500A
JPH05210500A JP4169542A JP16954292A JPH05210500A JP H05210500 A JPH05210500 A JP H05210500A JP 4169542 A JP4169542 A JP 4169542A JP 16954292 A JP16954292 A JP 16954292A JP H05210500 A JPH05210500 A JP H05210500A
Authority
JP
Japan
Prior art keywords
memory
block
data
unit
arithmetic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP4169542A
Other languages
English (en)
Inventor
Duranton Marc
デュラントン マルク
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.)
Koninklijke Philips NV
Original Assignee
Philips Gloeilampenfabrieken NV
Koninklijke Philips Electronics NV
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 Philips Gloeilampenfabrieken NV, Koninklijke Philips Electronics NV filed Critical Philips Gloeilampenfabrieken NV
Publication of JPH05210500A publication Critical patent/JPH05210500A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 【目的】 FORTH言語で書かれたプログラムを処理
するのに特に適しているデータ処理装置を得ること。 【構成】 −命令データを記憶するプログラム メモリ(1)と、 −複数の演算手段(16,17,18)を含む演算ユニ
ット(15)と、 −中央復号ユニット(35)と、 −リターン命令用のスタック メモリ(8)とを具え
る。 【効果】 装置各部分間の非同期作動が考慮されている
ので、対応(コーディネーション)の問題を大幅に軽減
しうる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、命令データを記憶する
プログラム メモリと、該命令を実行するための少なく
とも1つの演算手段を具えた演算ユニットと、該演算ユ
ニットに演算コードを供給するための中央復号ユニット
とを含むデータ処理装置に関するものである。
【0002】
【従来の技術】この種装置は既知であり、広範囲の利用
分野を有しているが、最近ではそのプログラムに演算数
の増大を含む命令数のさらなる増大を必要とするように
なってきており、したがって演算ユニットへのローディ
ングも増え、それらの構造もますます複雑さを加えつつ
ある。例えば、PC形マイクロコンピュータの演算ユニ
ットは演算論理ユニットよりなる第1演算手段ならびに
浮動計算専用の数学的コープロセッサ(mathematical c
oprocessor)よりなる第2演算手段を具えることが好ま
しく、これはALU(演算論理ユニット)およびコープ
ロセッサの演算結果との対応問題(coordination probl
em)をもたらすという難点がある。
【0003】本発明の目的は、複数の演算手段により形
成可能で複雑な構造を有するが、上述の対応(coordina
tion)および非同期の問題点を大幅に解決した前述形式
のデータ処理装置を提供しようとするものである。
【0004】
【課題を解決するための手段】上記目的を達成するた
め、本発明データ処理装置は、該演算手段および該中央
復号ユニット間に配置した少なくとも1つのFIFO形
記憶手段を含み、単一の命令復号ユニットの制御のも
と、1または複数の実行手段を並列に作動させうるよう
形成したことを特徴とする。
【0005】本発明は、例えば、FORTH形式のよう
な連鎖形言語を処理するに適したプロセッサ用として特
に好適である。このことに関しては、欧州特許出願第
0,185,215号あるいはフランス国特許出願第
9,108,062号を参照されたい。この形式のプロ
セッサの場合は、装置の種々の部分間の非同期作動が考
慮されているので、前述の対応(coordination)の問題
は大幅に軽減される。
【0006】また、本発明の一実施例の場合、該装置は
少なくとも1つのスタック形リターン アドレス メモ
リと少なくとも1つのスタック形中間データ メモリと
を含むことを特徴とする。
【0007】
【実施例】以下図面により本発明を説明する。添付図面
は演算手段の作動を限定するフローチャートである。
【0008】第1図は特にFORTH言語で書かれたプ
ログラムに適したデータ処理装置を示すものである。図
において、命令およびパラメータよりなるプログラム
データはプログラム メモリ1内に記憶される。このデ
ータは前記メモリ1の出力3に導出されるようにし、ま
たこのプログラム データが記憶されているアドレスコ
ードはこのメモリ1のアドレス入力5に供給されるよう
にする。
【0009】スタック形LIFOメモリ8(以下“リタ
ーン メモリ(戻りメモリ)”という)はメモリ1用の
アドレス コードを記憶する機能を有する。これらのア
ドレス コードはサブプログラムの完了後に実行される
べき命令のメモリ1内の記憶場所を特定するもので、こ
のスタック メモリ8のアドレス コードはポート10
に導出される。命令の実行および必要に応じて種々のパ
ラメータの処理は3つの演算手段16,17および18
を含む演算ユニット15で実施されるようにする。前記
演算手段は、本来的に、例えば、複式化のような種々の
可能性を有する演算論理ユニットALU20,21およ
び22を含み、それらの1つに対して配線し、他に対し
ては配線しないようにすることもできる。また、前記ユ
ニットは種々のデータ、部分演算結果等を記憶させるた
めのスタック メモリ25,26および27を含む。
【0010】処理装置は外部通信用の2つのポート29
および30(ポート29はデータ入力用、ポート30は
データ出力用)を具える。
【0011】中央復号ユニット(中央デコーディング
ユニット)35はメモリ1および8、演算ユニット15
ならびにポート29および30間の種々のデータ通路を
決定する。
【0012】本発明装置の一実施例の場合、演算ユニッ
ト15はFIFO形メモリにより構成した2つの記憶手
段36および37を含み、これらの手段をユニット35
と演算手段16および17間に配置している。また、こ
の場合、演算手段18はこれをユニット35に直接接続
し、共通データ ライン46により手段36,37、ユ
ニット18および中央復号ユニット35間の接続を与え
るようにしている。
【0013】中央デコーディング ユニット35はその
入力レジスタ49とともに連想メモリにより適当に形成
した復号手段(デコーディング手段)48、プログラム
メモリ1をアドレスするためのアドレスまたはプログ
ラム レジスタ50、ユニット35の入力54に供給さ
れる信号に応じて割込みを制御する割込み制御ユニット
52ならびにその作動を制御する順序はユニット(シー
ケンシング ユニット)60を含む。
【0014】ポート29から到来するデータはスイッチ
62の作動を介して中央復号ユニット35により手段1
6,17または18の1つに伝送しうるようにする。ま
た、出力端子30に供給すべきデータはそのロード命令
をユニット35から得るようにしたバッファ レジスタ
64に一時記憶させる。このバッファ メモリの入力は
共通のデータ ラインまたはバス66にこれを接続す
る。また、このデータ出力ライン66はユニット35を
すべてのユニット16,17および18に接続する。
【0015】ライン46を介して伝送されるデータは図
2に示すフォーマットにしたがって編制するものとす
る。この場合、このライン46を介して並列に伝送され
る種々のビットは種々のフィールドを形成する。 −CU :実行すべき命令またはデータ、 −N°UE:フィールドCUの行先、すなわち、本実施
例の場合演算手段16,17または18のナンバー;変
形として、このフィールドを演算手段が存在するポジシ
ョンと同数とし、複数の該手段により並列に命令を実行
しうるようにすることもできる、 −D/I :1ビットよりなるこのフィールドはフィー
ルドCUが演算ユニット用の命令かデータかを特定す
る。
【0016】このフォーマットは別として、手段16な
いし18および中央ユニット35間の関係は、ユニット
35および15間のデータ交換用プロトコルを設定可能
な種々の信号によって限定される。 1)読取り(Reading ) ユニット35はスタック メモリ25,26または27
の1つに記憶されているデータの読出しをリクエストす
る。このデータは以下のように信号DLVi およびRA
i から抽出される。 信号RADi (i=1,2,3) それぞれ手段16,17および18から発出され、メモ
リ25ないし27からのデータがユニット35による読
取りのためライン66上で利用可能であることを示す。 信号DLVi :ユニット35が関連のメモリ25,26
または27の読出しをリクエストしていることを示す。
これらの信号DLVi およびRADi は組合わされて、
次のような論理演算を行う論理回路70により生成され
る信号RADを与える。 RAD=(DLV1,RAD1)+(DLV2,RAD
2)+(DLV3,RAD3) 2)書込み(Writing )あるいはユニット35から1つ
又は複数の手段16ないし18への命令の送出 これは、一方では、中央ユニット35により供給され、
書込みリクエストがなされたことを示す(ユニット18
に関する限りでは、ラインDAV3が後述するようなラ
インLAと併合(merge )されるラインに接続される信
号DAVi により、また他方では、記憶手段26,27
およびユニット18によりラインDLを介して供給さ
れ、手段26,27およびユニット18がデータを受信
する準備ができていることを示す信号RAFi により行
われる。信号RAFi およびDAVi は論理回路72に
より組合わされ、次式で表わされるような信号RAFを
与える。 RAF=(DAV1,RAF1)+(DAV2,RAF
2)+(DAV3,RAF3) ただし、一時に1つの手段を作動させうる場合のみであ
る。しかし、複数の手段を活性化しうる場合には、信号
RAFはすべての手段が応答したとき活性となり複数の
手段16ないし18における同時書込みを許容する。こ
こで、信号RAF3はユニット18よりの信号DLと一
致し、信号DAV3はこの手段18に供給されるべき信
号LAと一致する。これらの信号DAおよびLAについ
ては後述することにする。
【0017】図3は中央ユニット35の詳細を示すもの
である。復号ユニット(デコーディング ユニット)4
8の入力は信号CMIにより制御するようにしたスイッ
チング回路90を介してプログラム メモリ1の出力に
接続されるようにする。また、他の位置においては、こ
の回路はユニット48の入力をライン66に接続するも
のとする。このデコーディング ユニットから種々の手
段16ないし18に伝送されるべきデータおよび命令は
2位置スイッチング回路92を介してライン46に導出
される出力である。また、前記回路92が他の位置にセ
ットされた場合はスタック メモリ8よりの他のデータ
がライン46を介して伝送されうるようにする。この場
合、前記メモリ8は次の2つの部分: −スタックの後尾から2番目の位置NORのデータを有
する前のすべてのデータを含む部分8aと −スタックのトップTORのデータを含む部分8bと を具える。また、デコーディング ユニット48は例え
ば次に示すようなある命令に対する適当な信号を供給す
る。 DBV:メモリ25,26または27の1つとの交信に
対するリクエストを行う。 CMI:スイッチ90をセットする。 FRT:戻り命令(リターン インストラクション)の
形式を与える。 SMA:関連する命令が中央デコーディング ユニット
により実行されるべきかどうかを示す。 FNO:戻り命令の正規の形を示す。 CST:命令が定数(constant)を限定していることを
示す。 VAR:命令が変数(variable)を限定していることを
示す。 IN :外部ソース(ポート29)よりのデータの入力
を使用可能(enable)にする。 OUT:装置(ポート30)よりのデータの出力を使用
可能(enable)にする。
【0018】アドレス レジスタ50はスイッチング回
路95の位置によって種々の方法でロード可能とする。
すなわち、第1の位置ではレジスタの内容はインクリメ
ンタ(増分器)97により1つだけ増分され、第2の位
置では、レジスタはスイッチ98を介してのスタック
メモリ8よりの出力でロードされ、第3の位置ではユニ
ット52を介しての割込みプログラムのアドレスでロー
ドされ、また、第4の位置では、スイッチ90を介して
のプログラム メモリ1のデータ内容でロードされるよ
うにする。
【0019】スタック メモリ8の部分8bは4位置マ
ルチプレクサ100を介して次のデータ、すなわち、 −マルチプレクサ100が第1の位置にある場合のレジ
スタ50よりのデータ、または −マルチプレクサが第2の位置にある場合のインクリメ
ンタ97よりのデータ、あるいは −マルチプレクサが第3の位置にある場合のスイッチ9
8よりのデータ、もしくは −マルチプレクサ100が第4の位置にある場合、スイ
ッチング回路90の出力に供給されるデータ をロードしうるものとする。
【0020】また、シーケンシング ユニット60は、
信号DI,FRT,SMA,FNO,CST,VAR,
TEST,CMI,DBV,RADおよびRAFに応じ
て次の信号:すなわち、 DAVi :手段16ないし18の1つを選択する信号 RSP :スタック ポインタ(メモリ8)のアドバン
ス(先行)を制御するための信号 を生成する。
【0021】また、ユニット35はTEST信号を供給
するためデコーダ107に結合したレジスタ105を含
む。このレジスタは連想メモリ48よりのデータあるい
はライン66を介して搬送されるデータでロードされう
るよう形成する。このレジスタ105は信号CMIによ
り制御するようにしたスイッチ108によりライン66
に接続するようにする。さらに、ユニットはデコーディ
ング ユニット48の出力をライン66に接続すること
を可能にするため、3位置スイッチ109を具える。
【0022】図4は、演算手段16の詳細構造を示す図
で、手段17および18もこれと同一構造を有する。図
示手段16はまず始めに演算FIFO記憶手段36の出
力上のデータを解析するデコーディング手段110を含
み、前記手段110は2つの信号、すなわち、 IS :それが命令に関することを示す信号 SWP:データが手段16にアドレスされることを示す
信号 を供給する。この情報は特に信号VUEにより2位置ス
イッチング回路119に作用するコマンド手段112に
供給されるようにし、該スイッチング回路の第1位置に
おいては、メモリ36の出力上の演算コードが演算論理
ユニット20に供給され、他の位置においてはユニット
20は作動せず、その場合の演算コードがコード“nop
”となるようにする。
【0023】ユニット20の第1オペランド入力はスタ
ック メモリ25のトップを形成するレジスタ25bの
出力に接続する。また、このレジスタの出力をスタック
メモリの他の部分25aに接続する。レジスタ25b
はマスター・スレーブ形のダブル レジスタで、前のデ
ータが出力されている間その入力上のデータが記憶され
ることを可能にする。また、レジスタ25bの入力はこ
れを3位置スイッチ118の出力に接続し、スイッチの
第1位置においてはレジスタの入力がメモリ25の出力
NOPに接続され、その出力が演算論理ユニット20の
第2オペランド入力02に接続されるようにし、第2位
置においてレジスタの入力が手段36の出力に接続さ
れ、第3位置においては、レジスタ入力がユニット20
の出力に接続されるようにする。増幅器120はレジス
タ116の出力をライン66に接続する。
【0024】また、シーケンシング回路(順序付け回
路)112は信号RADi ならびに記憶手段36および
メモリ25との交信のための信号を供給する。すなわ
ち、前記回路は、特に信号LAおよびMVに縦続する同
期信号DLを供給する。また、前記回路はユニット20
から信号DCGTを受信する。この信号はユニット20
がその作動を完了し、利用可能状態にあることを示す。
【0025】図5はFIFO記憶手段36の一実施例を
示す。手段37もこれと同じ構造を有するものとする。
記憶手段36はスタック メモリとして配置した読書き
ランダム アクセスメモリのまわりに組立てるものとす
る。信号IWが増分され(書込モード)、信号ZWによ
り0にセットされるようにしたカウンタ202はライン
46よりのデータをメモリ200に書込むために使用
し、信号IRで増分され(読取モード)、信号ZRによ
り0にセットされるようにしたカウンタ204は読取り
アドレスを指示するために使用する。また、メモリ20
0をアドレスするためのこれら2つのカウンタの選択
は、書込/読取信号WRにより制御されるようにしたス
イッチ206を使用して行うものとする。シーケンシン
グ回路(順序付け回路)210はカンウタ202および
204の作動を指令し、以下信号DAVi,RAFi,L
A,DL,MLにより示すように、ユニット16および
中央ユニット35間の交信のためのプロトコロルを制御
する機能を有する。
【0026】ユニット35の制御手段60のフローチャ
ート(図6、図7および図8) 付表Iはユニット35により実行可能な作動および後述
するフローチャートブロックのリファレンス(参照符
号)をリストアップしたものである。
【0027】ブロックK99は装置が初期状態にセット
されたことを示す。ブロックK100は装置がスタート
したとき実行される初期設定シーケンスを表わす。すな
わち、 −フローチャートにPCで引用したプログラム レジス
タ50の内容を0にセット −戻りメモリ(リターン メモリ)8のポインタRSP
を初期設定 −スタックのトップTORを0にセット
【0028】ブロックK101は割込み受信手段の走査
を表わす。割込みが検出され、手段52の出力上でDI
=“1”の場合、プログラムはブロックK103に進
む。
【0029】ブロックK103はリクエストされた割込
みプログラムを実行するための予備作動を表わす。まず
始めに、プログラム レジスタ50の内容がリターン
メモリ8のトップTORにスタックされ(したがってオ
ペーレーションRSP+1(TOR)→NOR)、マル
チプレクサ100および95は適当な位置にセットされ
る。次に、割込みプログラムがスタートするアドレス
(RI)が割込み手段52内で読取られ、この値がプロ
グラム レジスタ50内に記憶される。レジスタRIが
読出された場合、これはDIを0にセットし、これらの
予備作動の終りには、プログラムはブロックK101に
進み、DIのテストによりブロックK110に進む。
【0030】このブロックK110においては次のよう
な一連の作動が行われる。 −プログラム メモリ1に内臓された命令がスイッチン
グ回路90を介して、フローチャートにMAで示した連
想メモリ48に供給される。これはM(PC)→MAと
して書込まれる。 −プログラム メモリ50の内容は、それがリターン
メモリ8のスタックのトップTORに記憶される前に1
つだけ増分される。
【0031】次のブロックK112においては、連想メ
モリ48が復号された命令をテストして、それがシーケ
ンシング ユニット35に関するか演算手段16ないし
18に関するかを検出する。換言すれば、命令が実行さ
れるべき命令であるか、サブプログラムのアドレスまた
はプログラム シーケンスに関する命令であるかが確認
される。これは次のような作動となる。すなわち、連想
メモリへの入力データが(初期設定の間に)この連想メ
モリに記憶された値と一致する場合、これはこのメモリ
により認識され、実行されるべき命令であるとみなされ
る。もし、認識されない場合は、データは実行されるべ
きサブプログラムのアドレスであるとみなされる(連想
メモリの使用に関しては、前述のフランス国特許出願を
参照されたい)。もし、それがサブプログラムSMA=
1である場合は、プログラムはブロックK115に進
み、ついでプログラムはブロックK101に戻る。前記
ブロックK115はプログラム レジスタにより特定さ
れるプログラム メモリの内容がプログラム レジスタ
に転送されることを示す。
【0032】ブロックK112のテストの結果、命令が
実行されるべきことを示している場合には、プログラム
はブランチ“N”を介してブロックK120に進む。ブ
ロックK120は図7以降に示すような一連の作動を示
す。ブロックK120が終了した後は、プログラムはブ
ロックK101に戻る。
【0033】上述のブランチ“N”は図7のブロックK
130で終端する。このブロックK130は値FNOの
チェックを表わす。この値はそれがサブプログラム リ
ターンFNO=1であるかそうでなくFNO=0である
かどうかを示す。
【0034】サブプログラム リターンの場合には、ブ
ロックK130からのブランチ“Y”がとられて、信号
DBVが“1”であるかどうかを確認するブロックK1
32に進む。これはデータ メモリ25ないし27の1
つに対するリクエストであることを意味する。もし、こ
のようなリクエストがない場合には、プログラムはブロ
ックK148に進む。これらの作動の目的はサブプログ
ラム リターンを実行することである。プログラム カ
ウンタPCはスタックの2つのエレメントがクリアされ
るようスタックNORの第2の値でロードされる。
【0035】ブロックK132におけるテストが肯定
(イエス)の場合には、プログラムはブロックK136
に進む。ブロックK136では値RADがチェックされ
る。換言すれば、メモリへのアクセスに対するリクエス
ト(ブロックK132参照)に際し、メモリがアクセス
可能であることをアクセス信号RADが表示するまでプ
ログラムは待機状態となる。次いで、プログラムはブロ
ックK138に進み、ブロックK138において信号C
MIがチェックされる。この値に応じて、スタックのト
ップはメモリ25,26または27のパラメータTOP
とともに、 −プログラム レジスタ50(ブロックK140)か、 −ユニット35の部分を形成するシーケンス制御レジス
タであるレジスタ105(ブロックK142、フローチ
ャートではRTSTで表示) のいずれかに転送される。
【0036】これらの作動の目的は手段16ないし18
から得られ、それらの関連メモリスタック25ないし2
7のトップ(TOP)に記憶されたデータに従属してプ
ログラム シーケンスに割込むことである。
【0037】ブロックK142においては、テストが行
われ、それがブロックK145で表示される。換言すれ
ば、レジスタ内に含まれるデータがチェックされる。こ
のチェックの結果に応じてプログラムはブロックK14
7に進み、そこで、ポジションTORに位置するリター
ン スタックのトップがプログラム カウンタに記憶さ
れる。これは、プログラム レジスタ50の内容が1つ
だけ増分される(ブロックK110)前の次の命令の順
次的実行に対応する。上述のこれらの命令の実行はデー
タを外部に出力させることを可能にする。それは該デー
タがレジスタ64を介してポート30に接続されたBU
Sライン66上を循環することによる。また、プログラ
ムをブロックK145からブロックK148に進めるこ
とも可能である。前記ブロックK148は、メモリ8の
後尾から2番目の位置NORの内容がプログラム レジ
スタ50内にロードされることを示し、サブプログラム
リターンに対応する。次に、プログラムはブロックK1
47およびK148から前述のブロックK101に進
む。
【0038】ここで、ブロックK130に戻ると、この
ブロックではサブプログラム リターンがあるか(FN
O=1)、このようなリターンがないかの調査が行わ
れ、サブプログラム リターンがない場合、プログラム
はブロックK150に進む。前記ブロックK150はプ
ログラム レジスタ50内のリターン メモリのトップ
TORに記憶されているデータの転送を表わし、これは
次の命令の順次的実行に対応する。次に、ブロックK1
52におけるチェックが肯定の場合、プログラムはブロ
ックK151に進む。ブロックK152におけるチェッ
クは、命令がFORTH表示に準拠したVAR形式かC
ONST形式かを決定する。また、ブロックK151は
インクレメンタ97により1つだけ増分されたプログラ
ム レジスタ50の内容がメモリ8の位置TORに記憶
されることを示す。ブロックK151を経過した後、プ
ログラムはブロックK156に進み、そこで定数(cons
tant)と変数(variable)を区別し、定数の場合にはブ
ランチ“Y”に従う。この場合には、手段16ないし1
8のデータ メモリに接続したBUSライン46が取ら
れ、プログラム付可用性信号RAFが活性となる(ブロ
ックK158)まで待機する。RAFが活性となると、
データはライン46を介して伝送され(ブロックK15
9)、FIFOメモリ36または37を経由するか、経
由しないで手段16ないし18に入力される。また、ユ
ニット48において、定数(constant)は図2に関して
前述したようなフォーマットを与えられる。
【0039】ブロックK156におけるテストが否定の
場合には、ブランチ“N”がとられ、プログラムはブロ
ックK162に進む。このブロックにおいては、変数
(variable)に関して命令のタイプが調査され(それが
直接(direct)であるか間接(indirect)であるか)、
もしそれが間接(indirect)の場合は、ブランチ“Y”
に従い、ブロックK164に進む。ここでは、プログラ
ム レジスタ50はプログラム メモリの内容により特
定された値で再ロードされる。この場合、それに変数
(variable)の実効アドレスを示す。変数が間接(indi
rect)の場合プログラムはブロックK170の入力“E
1”に進む。
【0040】ブロックK152におけるテストが否定の
場合には、プログラムはブロックK167に進み、ブロ
ックK167において、命令が(>RまたはR>)形
(リターン スタックのデータ スタックとの交換)で
あることを確認するテストが行われ、このテストの結果
に応じてブランチ“Y”または“N”が取られる。ブロ
ックK170(図8に関して以下に詳述)は、ブロック
K164,K140およびK162に通じるポートE
1、ブロックK159とブロックK167のブランチ
“N”に通じるポートE2、およびブロックK167の
ブランチ“Y”に通じるポートE3を有する。
【0041】以下、図8にもとづき、ブロックK170
につき詳述する。プログラムはポートE1からブロック
K175に進み、そこで変数が書込まれるべきか読出さ
れるべきか(W/R)のチェックがなされる。変数が手
段16ないし18に書込まれるべきときはバッファ メ
モリのアクセス可能性がチェックされ、それがFIFO
メモリに接続されない場合は演算ユニットのアクセス可
能性がチェックされる(ブロックK176)。次にプロ
グラムはブロックK177に進み、そこで転送が行われ
る。
【0042】変数(variable)が手段16ないし18か
ら読出されるべきときは(ブロックK175におけるテ
ストのブランチ“R”)、プログラムはこのメモリが利
用可能となるまで、換言すれば信号RADの値がチェッ
クされるまで待機し(ブロックK181)、その後、ブ
ロックK182において、所望のパラメータ メモリの
内容がバス66を介してプログラム メモリのプログラ
ム カウンタにより表示される記憶場所にロードされ
る。
【0043】ひとたび読取りまたは書込み作動が実行さ
れると、プログラムはブロックK186に進み、リター
ン形式が調査される。ここで正規のリターンの場所に
は、プログラムはブロックK188に進み、そこで記憶
場所NORにおけるプログラムメモリの内容がプログラ
ム レジスタ50にロードされる(メモリは2度“アン
スタック(unstack)”される。ブロックK186にお
けるテストが否定の場合には、プログラムはブロックK
189に進み、そこでリターン スタック8の記憶場所
TORの内容が1エレメントのアンスタックの後プログ
ラム レジスタにロードされる。ついで、プログラムは
実行されたアドレスの直後のアドレスにある命令を実行
する。次に、プログラムはこれらのブロックK188お
よびK189から図7に示すフローチャートのポートS
に進む。
【0044】ポートE2はブロックK186に接続され
ている。このブロックは、リターン(戻り)の形式に関
する定数および変数に対して同じテストを表わす。
【0045】ポートE3は、主として、スタック メモ
リ8およびメモリ25,26,27間の交換のための命
令用として使用され、ブロックK200においては、命
令R>および>R(FORTH表示)が弁別される。命
令R>の場合、プログラムはブロックK202に進み、
ここで関連演算手段の利用可能性がチェックされ、待機
させられた後、ブロックK205において命令R>がタ
イプR@のものであるかをチェックされる。タイプR@
の命令は、単にメモリ8(ポジションNOR)および関
連ユニットのパラメータ メモリ間の転送を意味する
(ブロックK207)。これに対し、命令がこのタイプ
のものでない場合には、メモリ8のアンスタッキング
(unstacking)が必要となる(ブロックK209)。
【0046】ブロックK200におけるチェックは命令
が命令>Rであることを示すこともできる。この場合は
ブロックK214において信号RADをテストすること
により関連ユニットからのデータの利用可能性は待機さ
せられる。ひとたび、データが到達すると、それはブロ
ックK216に示すようにメモリ8内にロードされる。
図8のフローチャートに示すポートSはブロックK18
8,K189,K209およびK216の共通出力ポイ
ントである。
【0047】演算手段の制御手段のフローチャート(図
9) 付表IIはこれらの手段により実効される作動および後
述するフローチャートブロックのリファレンスをリスト
アップしたものである。このフローチャートはブロック
K300で始まる。ブロックK300は、信号DL,L
UEおよびブロックUND,OVD,FSWが0にセッ
トされる初期設定シーケンスを示す。次のブロックK3
02では、演算手段が利用可能であることを示す信号D
Lが1にセットされる。次のブロックK304における
テストは、前述の初期状態からスタートして信号LAが
値“1”をとるときY(肯定)となる。ブロックK30
6においては、バス46に接続した手段よりのデータが
命令であるかどうかがチェックされ(値ISのチェッ
ク)、命令である場合はそれが実行され、したがってユ
ニット20に供給される(図4参照)。次に、この命令
がSWAP命令であるかどうかがチェックされ(ブロッ
クK310におけるSWPのチェック)、もしこのチェ
ックがY(肯定)の場合には、フラッグFSWがセット
され(ブロックK312)、このチェックがN(否定)
の場合はブランチ“α”に進み、ブロックK302に導
かれる。VUEは“1”にセットされているので、ブロ
ック304におけるチェックはN(否定)となり、その
結果プログラムはブロックK315に進み、そこでY
(肯定)となるため信号DCGTが活性となるまでプロ
グラムは待機状態となる(ただし、DCGT=1はAL
Uが使用可能であることを示す)。しかし、そうでない
場合は、ブロックK318におけるチェックはプログラ
ムのブロックK302への戻りをもたらすことになる。
ブロックK315におけるチェックがY(肯定)の場合
は、プログラムはブロックK320に進み、そこでブロ
ックK312においてセットされたフラッグFSWの値
がチェックされ、FSW=1(SWAP命令)の場合
は、ブロックK322に示すような異なるステップが取
られる。すなわち、信号DLおよびVUEは“0”にセ
ットされ、フラッグFSWは再び初期設定され、またA
LUの出力上のデータはデータ メモリの位置TOPに
ロードされる。かくして、2つの値はユニット20を介
して次のように交換される。すなわち、TOPの内容は
レジスタ25b内にあり、メモリ25内のNOPの内容
はALU20のオペランド入力02に伝送される。ま
た、ALU20の出力上ではNOPの内容がマルチプレ
クサ118を介してレジスタ25bの入力に伝送され、
コマンドWDSはレジスタ26bの内容がメモリ25の
部分25aの位置NOPに書込まれることを許容し、レ
ジスタ26bの入力における値はTOP(レジスタ26
bの第2部分の内容)に記憶されるので、このプロセス
の終りには所要の交換が得られることになる。
【0048】ブロックK320におけるチェックが否定
の場合には、プログラムはブロックK325に進み、そ
こで信号DLおよびVUEの値が0にセットされ、デー
タメモリのポインタが1だけ増分され、ALUの出力上
の演算結果がトップにスタックされる。かくして、TO
PおよびNOPの内容はオペレーションに従い、その結
果はTOP(レジスタ26b)内に記憶される。次に、
ブロックK327においては、メモリのポインタがその
最小値を有するかどうかのチェックが行われ、最小値を
有する場合は、フラッグUNDが“1”にセットされ
(ブロックK329)、かくして回路52に割込み信号
を供給し、割込みを生じさせることが可能となる。これ
に対し、最小値に達しない場合は、ブロックK302に
至るブランチ“α”に指向する。
【0049】ブロックK318においては、演算手段か
ら復号手段への交信(16から35)がライン66を介
してリクエストされたかどうかが検出され、もしそうで
あればDLV=1となる。ブロックK318におけるチ
ェックの肯定結果に対しては、DLV・VUE・MV=
1であることが必要となる。信号MV=1はFIFOメ
モリが空白であることを意味する。これはユニット30
と種々の手段16,17および18との間の作動同期を
確実にする。レジスタ26b(TOP)からのデータは
増幅器120を介してバスに供給され、次に値“0”お
よび“1”が信号DLおよびRADに割当てられる。つ
いで、データNOPがレジスタ26b(TOP)にロー
ドされ、ポインタDSPが1だけ増分され、信号RAD
が0にセットされる(ブロックK330)。かくして、
プログラムは前述のブロックK327に進む。
【0050】ここで、再度ブロックK306におけるチ
ェックにつき言及すると、データが命令でない場合に
は、プログラムはブロックK335に進み、そこでデー
タ メモリのポインタ(DSP)が1だけ増分され、デ
ータはこのメモリの位置TOPに記憶され、ついでWD
Sが作用してTOPの古い値をNOPに複写させ(スタ
ックにおける書込み信号)、信号DLは“0”にセット
される。かくして、データはユニット35から演算ユニ
ットのスタック メモリにロードされる。次に、ブロッ
クK337においてポインタがテストされ、その値が許
容可能最大値に達していないかどうかが確認され、もし
達していなかった場合、プログラムはブロックK302
のブランチαに指向する。これに対し、最大値に達して
いる場合は、信号OVDが“1”にセットされ、メモリ
のオーバフロー(溢れ)がさし迫っていることを表示す
る。これもまた割込みの起ることを可能にする。
【0051】バッファ メモリ制御手段の作動 手短かにいえば、それにより記憶手段36および37が
形成されるFIFOに対するプロセスには次の3つのプ
ロセスがある。 −ソース(source):中央ユニット35はFIFOに書
込むことを所望する。それはメモリが満杯でない場合そ
うであり、それは入力ポインタを増加させる。 ‐ユーザ(user):演算手段16または17はFIFO
を読取る。FIFOが空白でない場合、出力ポインタは
該手段により増分される。 −チェック(check):出力ポインタ=入力ポインタの
場合、FIFOは空白である。入力ポインタ=出力ポイ
ンタ マイナス1の場合、FIFOは満杯である。
【図面の簡単な説明】
【図1】本発明装置のブロック図、
【図2】命令フォーマット(命令語の構成)を示す図、
【図3】中央復号ユニット(中央デコーディング ユニ
ット)の構造を示す図、
【図4】演算手段の構造を示す図、
【図5】記憶手段の構造を示す図、
【図6】中央処理ユニットの作動を限定するフローチャ
ートを示す図、
【図7】中央処理ユニットの作動を限定するフローチャ
ートを示す図、
【図8】中央処理ユニットの作動を限定するフローチャ
ートを示す図、
【図9】中央処理ユニットの作動を限定するフローチャ
ートを示す図である。
【符号の説明】
1 プログラム メモリ 3 出力 5 アドレス入力 8 スタック形LIFOメモリ 10,29,30 ポート 15 演算ユニット 16,17,18 演算手段 20,21,22 演算論理ユニット(ALU) 25,26,27 スタック メモリ 35 中央復号ユニット(中央デコーディング ユニッ
ト) 36,37 記憶手段 46,66 共通データ ライン(バス) 48,110 復号手段(デコーディング手段) 49,50,105 レジスタ 52 割込み制御ユニット 54 入力 60 順序付きユニット(シーケンシング ユニット) 62,90,92,95,98,100,108,10
9,118,119, 206 スイッチング回路 64 バッファ レジスタ 70,72 論理回路 97 インクリメンタ(増分器) 100 4位置マルチプレクサ 107 デコーダ 112 コマンド手段 120 増分器 200 メモリ 202,204 カウンタ 210 シーケンシング回路 付表I 作動 フローチャート 作動の選択が終る 内の記号 ブロック ナンバー (OPERATION) (REFERENCE IN (BLOCK NO WHERE SELECTION FLOW CHART) OF THE OPERATION ENDS) >R I1 K216 R> I4 K209 R I7 K207 即時読出しまたは記憶 I6 K177,K182 (IMMEDIATE FETCH or STORE) 定数 (CONSTANT) I7 K159 変数 (VARIABLE) I8 K175 リターン コンディション I10 K147 (RETURN CONDITION) サブプログラム リターン I11 K148 (SUBPROGRAM RETURN) サブプログラム コール I12 K115 (SUBPROGRAM CALL) 内部処理 I13 K103 (INT. PROCESSING) 付表II 作動 フローチャート内の 作動が実際に終ったブロック 記号 (OPERATION) (REFERENCE IN FLOW (BLOCK WHERE THE OPERATION CHART) HAS PRACTICALLY ENDS) ─────────────────────────────────── アンローディンク J1 K330 (UNLOADING) 1−ターム 作動 * J2 K308 (1-TERM OPERATION) スワップ J3 K322 (SWAP) 2−ターム 作動 ** J4 K325 (2-TERM OPERATION) ローディング J5 K335 (LOADING) ─────────────────────────────────── * スタッキング/アンスタッキングなしのALU作動
(TOP→TOP) (ALU opertaion without stacking/unstacking(T
OP→TOP) ) * * アンスタッキングによるALU作動(ALU oper
ation with unstacking ) 付表III 使用している記号のリスト (LIST OF REFERENCES USED ) ALU 演算手段16,17,18の演算論理ユニッ
ト CMI 特にスイッチ90をセットする復号ユニット
48よりの信号 CST 命令が定数を限定することを表示 DAV FIFOメモリ36および37へのアクセス
をリクエストし、またはユニット18への直接アクセス
のための中央ユニットにより供給される信号、i=1,
2,3 DBV メモリ25,26または27の1つとの交信
をリクエストするための復号ユニット48により生成さ
れる信号 DCGT ALU20,21または22の可用性 DI 割込みプログラムをスタートさせるため回路
52により供給される DL 演算手段(16,17または18)の可用性 DLVi メモリ25,26および27の読出しをリク
エストするための中央ユニット35からの信号 DSP メモリ25,26または27のポインタ FIFO 第1入力データ アイテムが第1出力データ
アイテムであるようなメモリ FNO リターン命令の正規の形式を表示 FRT リターン命令の形式を特定 FSW SWAP命令を表示するフラッグ(スワップ
TOPおよびNOP) IN 外部ソースからのデータのエントリーを可能
にする(ポート29) OUT ポート30上でのBUSライン66からのデ
ータのアウトプットを可能にする IR メモリ200(FIFOメモリ)の読取りカ
ウンタのインクレメンテーション IS 演算手段16の一部を形成する復号手段11
0により生成される信号で、命令が含まれていることを
示す IW メモリ200(FIFOメモリ)の書込みカ
ウンタのインクレメンテーション LA 手段16または17によりメモリ36または
37が読出し可能であるか、ライン46から直接データ
を取出しうるか(手段18の場合)を表示する信号 MA 復号手段48を形成する連想メモリ M プログラム メモリ1 MV メモリ36または37が空白(empty )であ
ることを示す信号 NOP メモリ25,26または27により形成され
るスタックの後尾から2番目のエレメント OUT 装置からのデータの出力を可能にする(ポー
ト30) OVD メモリ25,26または27のオーバフロー
(溢れ) PC レジスタ50 RAD 演算手段よりのデータが中央ユニット35用
として利用可能なことを示す信号 RADi メモリ25ないし27よりのデータが利用可
能なことを示す手段16,17,18の各々からの信号
(i=1,2,3) RAF FIFO記憶手段26または27へのアクセ
スが許容されることを示す RAFi それらが利用可能なことを示すFIFO記憶
手段の各々からの信号 RI 割込レジスタ(52)の内容 RSP リターン メモリ(8)のポインタ RTST テスト レジスタ105 SMA 関連の命令が中央デコーディング ユニット
35により実行されるべきかどうかを示す SWP 演算手段16の一部を形成する復号手段11
0により生成される信号で、データが手段16にアドレ
スされたことを示す TEST 回路107により生成される信号 TOP メモリ25,26または27により形成され
るスタックのトップ TOR メモリ8により構成されるスタックのトップ UND メモリ25,26または27のダンピングを
表示する信号 VAR 命令が変数を限定することを示す VUE 手段16の命令デコーダ112によるALU
20の妥当性(validation) W メモリ25,26または27におけるデータ
の書込みまたは読取り WDS スタック メモリ25,26または27にデ
ータを書込むための信号 WR メモリ200(FIFOメモリ)への書込み
またはメモリ200からの読出し ZR メモリ200(FIFOメモリ)の読取りカ
ウンタのゼロ リセット ZW メモリ200(FIFOメモリ)の書込みカ
ウンタのゼロ リセット

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】 命令データを記憶するプログラム メモ
    リと、該命令を実行するための少なくとも1つの演算手
    段を具えた演算ユニットと、該演算ユニットに演算コー
    ドを供給するための中央復号ユニットとを含むデータ処
    理装置において、 該装置は該演算手段および該中央復号ユニット間に配置
    した少なくとも1つのFIFO形記憶手段を含み、単一
    の命令復号ユニットの制御のもと1または複数の実行手
    段を並列に作動させうるよう形成したことを特徴とする
    データ処理装置。
  2. 【請求項2】 該装置は少なくとも1つのスタック形リ
    ターン アドレスメモリと少なくとも1つのスタック形
    中間データ メモリとを含むことを特徴とする請求項1
    記載のデータ処理装置。
  3. 【請求項3】 該装置は特にFORTH言語の処理に適
    するよう形成したことを特徴とする請求項1または請求
    項2に記載のデータ処理装置。
  4. 【請求項4】 該中央復号ユニットは連想メモリにより
    形成した復号ユニットを含むことを特徴とする請求項1
    ないし請求項3のいずれか1項に記載のデータ処理装
    置。
  5. 【請求項5】 少なくとも1つの該演算手段はデータ用
    のスタック メモリおよび演算論理ユニットを含むこと
    を特徴とする請求項1ないし請求項4のいずれか1項に
    記載のデータ処理装置。
  6. 【請求項6】 該装置は該スタック メモリ内に含まれ
    るデータを該中央復号ユニットに転送するためのバス
    ラインを具えたことを特徴とする請求項5記載のデータ
    処理装置。
  7. 【請求項7】 単一演算手段により各命令を同時に実行
    しうるよう形成したことを特徴とする請求項1ないし請
    求項6のいずれか1項に記載のデータ処理装置。
  8. 【請求項8】 複数の演算手段により複数の命令を同時
    に実行しうるよう形成したことを特徴とする請求項1な
    いし請求項6のいずれか1項に記載のデータ処理装置。
  9. 【請求項9】 該記憶手段が空白であることを確認した
    後、該記憶手段に命令をロードするよう形成したことを
    特徴とする請求項1ないし請求項8のいずれか1項に記
    載のデータ処理装置。
JP4169542A 1991-06-28 1992-06-26 データ処理装置 Pending JPH05210500A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR9108064 1991-06-28
FR9108064A FR2678402A1 (fr) 1991-06-28 1991-06-28 Dispositif de traitement d'informations.

Publications (1)

Publication Number Publication Date
JPH05210500A true JPH05210500A (ja) 1993-08-20

Family

ID=9414461

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4169542A Pending JPH05210500A (ja) 1991-06-28 1992-06-26 データ処理装置

Country Status (5)

Country Link
US (1) US5675776A (ja)
EP (1) EP0520572B1 (ja)
JP (1) JPH05210500A (ja)
DE (1) DE69229145T2 (ja)
FR (1) FR2678402A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9514433D0 (en) * 1995-07-14 1995-09-13 Sgs Thomson Microelectronics Computer instruction execution
JP2000507019A (ja) * 1996-12-13 2000-06-06 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 直列式に動作する2台のプログラムドロジックコントローラを有する冗長データ処理システム
US9189214B2 (en) * 2013-10-30 2015-11-17 International Business Machines Corporation Code stack management

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3938103A (en) * 1974-03-20 1976-02-10 Welin Andrew M Inherently micro programmable high level language processor
JPS54107643A (en) * 1978-02-13 1979-08-23 Toshiba Corp Operation control method and unit executing structured program
JPS6057090B2 (ja) * 1980-09-19 1985-12-13 株式会社日立製作所 データ記憶装置およびそれを用いた処理装置
US4594660A (en) * 1982-10-13 1986-06-10 Honeywell Information Systems Inc. Collector
US5179734A (en) * 1984-03-02 1993-01-12 Texas Instruments Incorporated Threaded interpretive data processor
EP0185215B1 (en) * 1984-11-21 1993-09-22 Harris Corporation Forth-like language microprocessor
JPH0762823B2 (ja) * 1985-05-22 1995-07-05 株式会社日立製作所 デ−タ処理装置
US4980821A (en) * 1987-03-24 1990-12-25 Harris Corporation Stock-memory-based writable instruction set computer having a single data bus
US5301340A (en) * 1990-10-31 1994-04-05 International Business Machines Corporation IC chips including ALUs and identical register files whereby a number of ALUs directly and concurrently write results to every register file per cycle

Also Published As

Publication number Publication date
FR2678402A1 (fr) 1992-12-31
US5675776A (en) 1997-10-07
DE69229145T2 (de) 1999-12-09
DE69229145D1 (de) 1999-06-17
EP0520572A1 (fr) 1992-12-30
EP0520572B1 (fr) 1999-05-12

Similar Documents

Publication Publication Date Title
US4648034A (en) Busy signal interface between master and slave processors in a computer system
US4794524A (en) Pipelined single chip microprocessor having on-chip cache and on-chip memory management unit
US5125083A (en) Method and apparatus for resolving a variable number of potential memory access conflicts in a pipelined computer system
US4200927A (en) Multi-instruction stream branch processing mechanism
US4679140A (en) Data processor with control of the significant bit lengths of general purpose registers
US7404066B2 (en) Active memory command engine and method
EP0782071A2 (en) Data processor
EP0405318A2 (en) Microprocessor having cash bypass signal terminal
JPH0429093B2 (ja)
EP0198231A2 (en) Data processor with parallel instruction control and execution
JPH02227768A (ja) データ処理システム
JPS6125169B2 (ja)
EP1680735B1 (en) Apparatus and method that accomodate multiple instruction sets and multiple decode modes
EP0525831B1 (en) Method and apparatus for enabling a processor to coordinate with a coprocessor in the execution of an instruction which is in the intruction stream of the processor.
US6229543B1 (en) Microprocessor, and graphics processing apparatus and method using the same
JPH04140880A (ja) ベクトル処理装置
EP0374830A2 (en) Control store address generator for developing unique instruction execution starting address
JPH031231A (ja) マイクロプログラム制御装置
JPH05210500A (ja) データ処理装置
JPS6160459B2 (ja)
US6727903B1 (en) Microprocessor, and graphics processing apparatus and method using the same
JP3145545B2 (ja) メモリアクセス装置
JP2000112754A (ja) データ処理装置
JP2002229776A (ja) 複数組の命令組を実行するためのデータ処理装置
JP2622026B2 (ja) 中央処理装置におけるレジスタ書込制御方式