JP2001060182A - 情報処理装置、ならびに、そのデータ転送方法およびインタフェイス - Google Patents

情報処理装置、ならびに、そのデータ転送方法およびインタフェイス

Info

Publication number
JP2001060182A
JP2001060182A JP11234545A JP23454599A JP2001060182A JP 2001060182 A JP2001060182 A JP 2001060182A JP 11234545 A JP11234545 A JP 11234545A JP 23454599 A JP23454599 A JP 23454599A JP 2001060182 A JP2001060182 A JP 2001060182A
Authority
JP
Japan
Prior art keywords
data
arithmetic
control signal
valid
arithmetic unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP11234545A
Other languages
English (en)
Inventor
Yoshihiro Kobayashi
義宏 小林
Masato Kosugi
真人 小杉
Hideyuki Rengakuji
秀行 蓮覚寺
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.)
Canon Inc
Original Assignee
Canon 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 Canon Inc filed Critical Canon Inc
Priority to JP11234545A priority Critical patent/JP2001060182A/ja
Publication of JP2001060182A publication Critical patent/JP2001060182A/ja
Withdrawn legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 データ転送の制御は、システム全体が巨大に
なるにつれて、その制御が複雑になる。そのため、確実
なデータ転送を実現するためには、システム内部におけ
る各演算ブロックにおけるデータ遅延、あるいは、待ち
合わせなどを詳細に考慮する必要がある。 【解決手段】 複数の演算ユニット99、100および101間
においてデータDATAを転送するほかに、そのデータが任
意のサイクルにおいて有効であることを示すVALID信
号、および、有効なデータの出力の停止を要求するSTOP
信号を転送する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は情報処理装置、なら
びに、そのデータ転送方法およびインタフェイスに関
し、例えば、複数の演算ユニットの相互接続によって構
成される情報処理装置、そのデータ転送方法、および、
それら演算ユニットのインタフェイスに関するものであ
る。
【0002】
【従来の技術】複数の演算ユニットにより構成される任
意のパイプラインシステムは、入力されるデータと出力
されるデータとの数が異なる場合に、システム制御回路
により、データの入出力関係を利用してデータの入力制
御を行うことでスムーズなデータ転送を実現する。
【0003】また、複数の演算ユニットで構成される任
意のシステムにおいて、それらの演算ユニットから出力
されるデータを一つの演算ブロックで合成処理する場
合、システム制御回路は、合成処理を行う演算ユニット
のデータ待ち合わせタイミングを考慮したデータ入力制
御を行う。すなわち、システム制御回路によってシステ
ム全体のデータ転送制御が行われることで、確実なデー
タ処理が実現される。
【0004】また、演算ユニットがシリアルに接続され
たパイプラインシステム、あるいは、共通のシステムバ
スを介してデータ転送を行うシステムにおける演算ユニ
ット間の二線インタフェイス方法は次のようになる。デ
ータ送信側の演算ユニットからデータ転送を要求する信
号が発生される。その要求信号を受信したデータ受信側
の演算ユニットは、データ転送を許可する信号を発生す
る。データ送信側の演算ユニットは、データ転送が許可
されてからデータ転送を実行する。これによって、確実
なデータ転送が実現されている。
【0005】
【発明が解決しようとする課題】しかしながら、システ
ム制御回路によるデータ転送の制御は、システム全体が
巨大になるにつれて、その制御が複雑になる。そのた
め、確実なデータ転送を実現するために、システム制御
を行うソフトウェアなどの開発者は、システム内部にお
ける各演算ブロックにおけるデータ遅延に関する情報、
あるいは、待ち合わせ情報などを詳細に理解する必要が
ある。とりわけ、可変長符号化処理などにみられる、入
力データ数と出力データ数とが異なるシステムのシステ
ム制御回路において、確実かつ能率的なデータ転送制御
を実現することは、非常に困難であり、LSI開発に重大
な支障をきたす。
【0006】また、二線インタフェイスは確実なデータ
転送制御を実現することができるが、実質的なデータ転
送レートがシステムクロックの周波数の半分になってし
まう。さらに、シリアルに接続されたパイプラインシス
テムにおけるデータ転送制御、あるいは、共通のシステ
ムバスを介して行うデータ転送制御において、二線イン
タフェイスは有効であるものの、一連のデータ処理フロ
ーの中で分岐処理または合成処理を含むシステムにおい
ては、能率的なデータ転送制御は困難である。
【0007】本発明は、上述の問題を解決するためのも
のであり、相互に接続された演算ユニット間のデータ転
送が容易な情報処理装置、そのデータ転送方法およびイ
ンタフェイスを提供することを目的とする。
【0008】
【課題を解決するための手段】本発明は、前記の目的を
達成する一手段として、以下の構成を備える。
【0009】本発明にかかるデータ転送方法は、複数の
演算ユニットがシリアルおよび/またはパラレルに接続
される情報処理装置のデータ転送方法であって、前記複
数の演算ユニット間を転送されるデータは、そのデータ
が任意のサイクルにおいて有効であることを示す第一の
制御信号、および、有効なデータの出力の停止を要求す
る第二の制御信号を伴うことを特徴とする。
【0010】本発明にかかる情報処理装置は、データ転
送用のインタフェイスおよびデータ処理を実行する演算
ブロックを備える複数の演算ユニットがシリアルおよび
/またはパラレルに接続される情報処理装置であって、
前記インタフェイスは、前記複数の演算ユニット間を転
送されるデータが任意のサイクルにおいて有効であるこ
とを示す第一の制御信号、および、有効なデータの出力
の停止を要求する第二の制御信号に基づき、前記演算ユ
ニット間を転送されるデータのハンドシェイクを行うこ
とを特徴とする。
【0011】本発明にかかるインタフェイスは、データ
処理を実行する演算ブロックを備え、シリアルおよび/
またはパラレルに相互接続される複数の演算ユニットの
インタフェイスであって、前記複数の演算ユニット間を
転送されるデータが任意のサイクルにおいて有効である
ことを示す第一の制御信号、および、有効なデータの出
力の停止を要求する第二の制御信号に基づき、前記演算
ユニット間を転送されるデータのハンドシェイクを行う
ことを特徴とする。
【0012】
【発明の実施の形態】以下、本発明にかかる一実施形態
のデータ転送回路を図面を参照して詳細に説明する。
【0013】[演算ユニットの構成]図1は本実施形態
における最も基本的な演算ユニットの構成例を示すブロ
ック図である。
【0014】演算ユニット100は、演算ユニット99およ
び101とデータのハンドシェイクを行うインタフェイス
回路102と、入力されるデータに処理を施す演算回路104
によって構成される。システムを構成する複数の演算ユ
ニットは、演算ユニット100の構成を基本とし、以下に
示すように、システム構成に応じてカスタマイズするこ
とができる。
【0015】システム内を伝播するすべてのデータ系列
は、各データ系列に対して一対のVALID信号およびSTOP
信号を伴う。システム内における各演算ユニット間のデ
ータ転送はすべて、これらの信号によって制御される。
【0016】VALID信号は、各演算ユニット間を転送さ
れるデータ系列が、あるタイミングにおいて有効なデー
タであることを示し、データ系列の伝播方向と同じ方向
に伝播される。本実施形態において、VALID信号が‘1’
であるサイクルは、そのデータ系列は有効であることを
意味し、有効なデータ系列は1サイクルのみ出力され
る。
【0017】STOP信号は、データを受け取るべき演算ユ
ニットがデータ処理中などのために、次のタイミングに
入力されるデータを処理することができない場合に、入
力されるデータ系列のデータ更新を停止するように指示
する信号で、データ系列の伝播方向と逆の方向に伝播さ
れる。本実施形態において、STOP信号が‘1’であるサ
イクルは、その演算ユニットがデータ処理ができないこ
とを意味する。
【0018】演算回路104は、あるタイミングにおい
て、入力されるVALID_IN信号が‘1’の場合にのみデー
タを受け取り必要なデータ処理を行う。また、後段に接
続された演算ユニット101へ有効なデータ転送を行う際
は、VALID_OUT信号を‘1’にセットする。ただし、VALI
D_OUT信号が‘1’であるサイクルであっても、後段に接
続された演算ユニット101からのSTOP信号であるOUT_STO
P信号が‘1’である場合は、演算回路104へのSTOP信号
であるSTOP_OUT信号が‘1’になる。つまり、演算ユニ
ット100がデータ更新を行うことができないので、演算
回路104におけるすべての内部状態が保持される。ま
た、演算ユニット100の前段に接続された演算ユニット9
9からのデータ転送を停止したい場合は、STOP_IN信号を
‘1’にセットする。つまり、VALID_IN信号が‘1’、並
びに、STOP_IN信号およびSTOP_OUT信号が‘0’のときに
のみ演算回路104は有効なデータの取り込みを行う。
【0019】インタフェイス回路102は、実際データ処
理を行う演算回路104の周辺に位置し、隣接する演算ユ
ニットとデータのハンドシェイクを行う。インタフェイ
ス回路102の基本構成は、入力データであるIN_DATAのバ
ス幅(nビット)に相当するn個のDフリップフロップな
どから構成されるバッファ110と、一個のDフリップフロ
ップ112、n+1ビット出力のデータセレクタ114および複
数の論理ゲートで構成される。
【0020】なお、図1は基本構成を示す図であり、以
下に説明するように、システム構成に応じて簡単に変更
が可能である。
【0021】より具体的なインタフェイス回路102の機
能は、演算回路104が内部状態を保持すべきタイミン
グ、あるいは、演算回路104が自らSTOP信号を発生させ
ているタイミングにおいて、前段に接続された演算ユニ
ット99から有効なデータが転送されている場合に、バッ
ファ110にその有効なデータを記録し、Dフリップフロッ
プ(D-FF)112を‘1’にセットすることで、次のタイミン
グにおけるデータ更新を停止させる。このときデータセ
レクタ114は、バッファ110側を選択するので、演算回路
104はSTOP信号が解除され次第、バッファ110から有効デ
ータを受け取ることができる。また、論理ゲート122お
よび124の機能により、演算回路104が内部状態を保持す
べきタイミングにおいて、演算回路104へのSTOP信号で
あるSTOP_OUT信号を‘1’にして、演算ユニット100から
のVALID信号であるOUT_VALID信号を‘0’にする。
【0022】[インタフェイス回路の機能]図2および
図3はデータ、VALID信号およびSTOP信号の関係を詳細に
示すタイミングチャートで、インタフェイス回路102の
機能を説明するものである。なお、本実施形態における
演算回路104、演算ユニット99および演算ユニット101の
動作は、説明のための動作を仮定しているに過ぎない。
なお、図2および図3は一連のタイミングチャートであ
る。
【0023】タイミングt0において、D-FF112の出力は
リセット信号RESETにより‘0’にリセットされる。その
結果、演算ユニット100から演算ユニット99へ出力され
るIN_STOP信号は‘0’になる。また、セレクタ114はデ
ータ入力側(非バッファ110側)にセットされていて、I
N_DATAおよびIN_VALID信号が演算回路104のDATA_INおよ
びVALID_IN信号に直結される。
【0024】タイミングt1においては、入力データであ
るDATA_INが不定、演算回路104へ入力されるVALID_IN信
号が‘0’であるから、演算ユニット100は一切の処理を
行わない。t1直後に、前段に接続された演算ユニット99
からの入力データであるIN_DATAが確定し、IN_VALID信
号が‘1’に変化するので、演算回路104へ入力されるVA
LID_IN信号は‘1’に変化する。
【0025】タイミングt2およびt3においては、演算回
路104へ入力されるVALID_IN信号が‘1’、STOP_IN信号
およびSTOP_OUT信号が‘0’であるから、IN_DATAのD1お
よびD2は、データセレクタ114を介して有効なデータと
して演算回路104に読み込まれ処理される。
【0026】タイミングt4においては、演算回路104へ
入力されるVALID_IN信号は‘1’であるが、演算回路104
から出力されるSTOP_IN信号が‘1’を示している。つま
り、演算回路104が現在データ処理中のため、次のデー
タを受け取ることができないことを意味する。この場
合、VALID_IN信号およびSTOP_IN信号の論理積である論
理ゲート118の出力はD-FF112を‘1’にセットして、演
算ユニット99へ‘1’のIN_STOP信号を出力すると同時
に、データセレクタ114をバッファ110側にセットする。
IN_STOP信号は、前記した論理ゲート124と同様の作用に
より、IN_VALID信号を‘1’から‘0’に変化させる。ま
た、論理ゲート118およびD-FF112の出力は、論理ゲート
116を介してバッファ110のLOAD信号(LD)になる。従っ
て、タイミングt4において、IN_DATAのD3はバッファ110
に読み込まれ、読み込まれたデータD3*が演算回路104へ
のDATA_INとして出力される。
【0027】タイミングt5においては、演算ユニット10
0から出力されるIN_STOP信号が‘1’であるから、演算
ユニット99から出力されるIN_DATAは更新されない。ま
た、演算回路104へ入力されるVALID_IN信号および演算
回路104から出力されるSTOP_IN信号は‘1’のままであ
るので、D-FF112は引き続き‘1’にセットされる。ま
た、バッファ110の更新も行われない。
【0028】タイミングt6においては、演算ユニット10
0から出力されるIN_STOP信号が‘1’であるから、演算
ユニット99から出力されるIN_DATAは更新されない。し
かし、演算回路104へ入力されるVALID_IN信号が‘1’の
ままで、演算回路104から出力されるSTOP_IN信号が
‘0’になるから、DATA_INに接続されているバッファ11
0のデータD3*は演算回路104に読み込まれ処理される。
また、STOP_IN信号は、論理ゲート118を介してD-FF112
を‘0’にリセットし、演算ユニット100から出力される
IN_STOP信号を‘0’にする。そして、セレクタ114はデ
ータ入力側を選択するので、演算回路104のDATA_INは再
び演算ユニット100のIN_DATAと直結される。さらに、IN
_STOP信号は、前記したゲート回路124と同様の作用によ
り、IN_VALID信号を‘0’から‘1’に変化させる。
【0029】タイミングt7においては、演算回路104へ
入力されるVALID_IN信号が‘1’であり、演算回路104か
ら出力されるSTOP_IN信号および演算回路104へ入力され
るSTOP_OUT信号が‘0’であるから、IN_DATAのD4はセレ
クタ114を介して有効なデータとして演算回路104に読み
込まれ処理される。また、演算ユニット100から出力さ
れるIN_STOP信号が‘0’であるから、演算ユニット99か
ら出力されるデータは更新される。
【0030】タイミングt8においては、タイミングt7と
同様に、IN_DATAのD5は演算回路104において処理され、
IN_DATAは更新される。
【0031】タイミングt9においては、演算ユニット10
0へ入力されるIN_VALID信号が‘0’であるから、IN_DAT
Aが無効(不定)を意味する。IN_DATAは演算回路104のD
ATA_INへ接続されているが、無効なデータであるため演
算回路104は処理を行わない。なお、本実施形態におい
てはIN_DATAが不定であるとしたが、演算ユニット99か
らのIN_DATAがD5のまま更新されない場合、IN_VALID信
号は‘0’になるよう設計されていることは前記したと
おりである。
【0032】タイミングt10において、演算ユニット100
へ入力されるIN_DATAはタイミングt9と同様にして無視
される。一方、演算回路104から出力されるVALID_OUT信
号は‘1’であり、演算ユニット101へ入力さるOUT_STOP
信号は‘0’であるから、DATA_OUTのd1はOUT_DATAを介
して演算ユニット101へ転送され、演算ユニット101にお
いて有効なデータとして処理される。
【0033】タイミングt11およびt12においては、タイ
ミングt7と同様に、演算ユニット99から入力されるIN_D
ATAのD6およびD7が演算回路104によって処理され、デー
タは更新される。タイミングt10と同様に、演算回路104
から出力されるOUT_DATAのd2およびd3は演算ユニット10
1で処理され、データは更新される。また、演算ユニッ
ト101は、OUT_DATAのd3を受け取った直後のタイミングt
13において新しいデータを受け取ることができないた
め、演算ユニット100へ出力するOUT_STOP信号を‘1’に
する。これは、タイミングt4において、演算ユニット10
0が演算ユニット99へ出力するIN_STOP信号を‘0’から
‘1’に変化させた処理と同様である。演算ユニット101
から出力されるOUT_STOP信号は、論理ゲート124を介し
てOUT_VALID信号を‘1’から‘0’に変化させる。さら
に、演算回路104のVALID_OUT信号が‘1’であるので、
次のタイミングt13において、DATA_OUTのd4を更新しな
いように、論理ゲート122を介してSTOP_OUT信号を‘0’
から‘1’に変化させる。
【0034】タイミングt13においては、演算ユニット1
01から出力されるOUT_STOP信号が‘1’、演算回路104か
ら出力されるVALID_OUT信号が‘1’、および、演算ユニ
ット99から入力されるIN_VALID信号も‘1’である。こ
れは、後段の演算ユニット101がデータ受け取ることが
できないタイミングにおいて、前段の演算ユニット99お
よび演算ユニット100が有効なデータを転送しようとし
ている状況である。
【0035】演算回路104から出力される有効なDATA_OU
Tのd4は、タイミングt12において述べたように、STOP_O
UT信号が‘1’にセットされているのでタイミングt12に
おいて更新されない。また、タイミングt4と同様にし
て、演算回路104へ入力されるVALID_IN信号およびSTOP_
OUT信号は、論理ゲート118を介してD-FF112を‘1’にセ
ットし、演算ユニット99へ出力されるIN_STOP信号を
‘1’にセットするとともに、セレクタ114にバッファ11
0側を選択させる。IN_STOP信号は、前記した論理ゲート
124と同様の作用により、IN_VALID信号を‘1’から
‘0’に変化させる。また、IN_DATAのD8は、バッファ11
0に読み込まれ、読み込まれたデータD8*が演算回路104
のDATA_INへ接続される。
【0036】タイミングt14においては、演算ユニット9
9へ入力されるIN_STOP信号が‘1’であるので、IN_DATA
は更新されない。演算ユニット101へ入力されるOUT_STO
P信号は‘1’のままであるので、演算回路104から出力
されるDATA_OUT信号も更新されない。タイミングt6にお
ける演算ユニット99へ出力されるIN_STOP信号の処理と
同様に、タイミングt14における演算ユニット101の処理
の結果、OUT_STOP信号は‘1’から‘0’に変化する。論
理ゲート124を介して、演算ユニット100から出力される
OUT_VALID信号を‘1’に、論理ゲート122を介して、演
算回路104へ入力されるSTOP_OUT信号を‘0’に変化させ
る。
【0037】タイミングt15においては、演算ユニット1
01へ入力されるOUT_VALID信号が‘1’、演算ユニット10
1から出力されるOUT_STOP信号が‘0’であるから、演算
回路104から出力されるDATA_OUTのd4は有効なデータと
して演算ユニット101において処理され、DATA_OUTは更
新される。また、演算ユニット99へ入力されるIN_STOP
信号は‘1’であるから、演算ユニット99から出力され
るIN_DATAは更新されない。しかし、演算回路104へ入力
されるVALID_IN信号が‘1’、演算回路104から出力され
るSTOP_IN信号および演算回路104へ入力されるSTOP_OUT
信号が‘0’であるから、DATA_INに接続されているバッ
ファ110のデータD8*は、演算回路104に入力され処理さ
れる。また、論理ゲート122の出力は、論理ゲート118を
介してD-FF112を‘0’にリセットし、演算ユニット99へ
出力されるIN_STOP信号を‘0’にセットする。これとほ
ぼ同時に、セレクタ114にデータ入力側を選択させる。
さらに、IN_STOP信号はIN_VALID信号を‘0’から‘1’
に変化させる。
【0038】タイミングt16においては、タイミングt7
と同様に、演算ユニット99から出力されるIN_DATAのD9
は、演算回路104で処理され、IN_DATAは更新される。
【0039】タイミングt17においては、演算ユニット1
01から出力されるOUT_STOP信号が‘1’であるが、演算
ユニット99および演算ユニット100は何れも有効なデー
タを転送しようとしていないので、問題はない。
【0040】このように、インタフェイス回路102の基
本機能は、演算回路104がデータを受け付けられない場
合、あるいは、後段に接続された演算ユニット101がデ
ータを受け付けられないために演算回路104の動作が停
止するような場合に、前段の演算ユニット99から転送さ
れてくる有効なデータを一時的にバッファ110に記憶
し、演算ユニット99のデータ更新を中断させる機能を果
たす。この機能により、隣接する演算ユニットとのデー
タのハンドシェイク、すなわちデータ入出力タイミング
を意識することなく、演算回路104を設計することが可
能になる。入力されるVALID信号に応じて所定のデータ
処理を行い、有効なデータを出力する場合にVALID信号
を‘1’に設定し、また、入力されるSTOP信号に応じて
内部状態をすべて停止させ、データ転送を停止させたい
場合にSTOP信号を‘1’に設定するだけでよい。
【0041】[分岐処理]インタフェイス回路102は、
演算ユニットの一つの出力を複数の演算ユニットに分岐
させる場合に有効で、図4はそれを説明するためのブロ
ック図である。
【0042】演算ユニット100は、OUT_DATAを演算ユニ
ット140および150に出力する。ORゲート132は、演算ユ
ニット140または150から出力されるSTOP信号が‘1’の
場合に演算ユニット100内の演算回路の処理を停止させ
るためのものである。図4に示すように、予め、演算ユ
ニット100が分岐処理に対応して設計されていなくて
も、ORゲート132の追加により、演算ユニット140および
150からの処理の停止を要求するIN_STOP信号を演算ユニ
ット100のOUT_STOP信号として受け取ることができ、簡
単に演算ユニット100を分岐処理に対応させることがで
きる。
【0043】インタフェイス回路102は、演算ユニット
の複数の出力データを複数の演算ユニットに分岐させる
場合にも有効で、図5はそれを説明するためのブロック
図である。
【0044】演算ユニット200は、OUT_DATA_AおよびOUT
_DATA_Bをそれぞれ、演算ユニット240および250に出力
する。図4に示す構成と同様に、分岐先の演算ユニット
から出力される二つのSTOP信号は、ORゲート132によっ
て論理和され、OUT_STOP信号として演算ユニット200に
入力される。また、演算ユニット200の出力側において
は、ORゲート228を追加することにより、後段に接続さ
れた演算ユニット240または250から入力されるSTOP信号
の何れかが‘1’、かつ、演算回路104が演算ユニット24
0または250の何れかに有効なデータを出力しようとして
いる場合に限り、演算回路104の動作を停止させる。
【0045】このように、一つの演算ユニットから複数
の演算ユニットへ分岐するシステムを構築する上で、イ
ンタフェイス回路102は有用である。
【0046】[待ち合わせ動作]インタフェイス回路10
2は、一つ演算ユニットへ複数の演算ユニットからデー
タが入力される場合の待ち合わせ動作を行わせる場合に
も有効で、図6および図7はそれを説明するためのブロッ
ク図である。演算ユニット300は、演算ユニットC298お
よび演算ユニットD299の二つの入力データに対して処理
を行う。
【0047】図6に示す演算ユニット400は、演算ユニッ
ト398および399から同数のデータを受け取り、演算回路
404においてデータ処理を行う。演算ユニット400におい
て次のような待ち合わせ動作が行われる。
【0048】例えば、演算回路404において二つの入力
データの差分値を求めるデータ処理が行われるとする
と、ANDゲート450により、演算ユニット398および399か
ら同時に有効データが転送された場合にVALID_IN信号が
‘1’に設定される。また、入力されるデータは組み合
わせ回路により構成される減算器460に入力される。そ
の減算結果はバッファ462に記録され、演算ユニット450
に出力される。
【0049】また、バッファ462のデータ更新時にはD-F
F464が‘1’に設定され、VALID信号として出力される。
演算ユニット398もしくは399の何れかのデータ転送が遅
れた場合は、NOTゲート466を介して演算回路404から出
力されるSTOP信号が‘1’に設定される。データ転送が
遅れている演算ユニットへ送られるSTOP信号はANDゲー
ト118aまたは118bによって‘0’にリセットされるが、
すでに有効なデータが転送されている演算ユニットへ送
られるSTOP信号(IN_STOP_CまたはIN_STOP_D)が‘1’
に設定されるので、二つの入力データが揃うまでデータ
の更新を停止させることができる。このとき、既に転送
されてきているデータはバッファ110aまたは110bに保持
され、演算回路404への入力信号になる。
【0050】図7に示す演算ユニット300は、演算ユニッ
ト298からX個のデータを、演算ユニット299からY(X≠Y)
個のデータを受け取り、演算回路304においてデータ処
理を行う。演算回路304において次のような待ち合わせ
動作が行われる。
【0051】例えば、演算ユニット298から入力される
一つのデータに対し、演算ユニット299からデータを四
つ入力する必要がある処理を行う場合、演算ユニット29
9から出力される‘1’のVALID信号を三つ受け取るごと
に、演算ユニット298へ出力するSTOP信号を一つの有効
サイクル期間(有効なデータ入力が行われる期間)だけ
‘0’にする。このような不規則な待ち合わせ処理に
も、インタフェイス回路102を使用すれば簡単に対応す
ることができる。この場合、入力されるVALID信号のカ
ウンタ回路さえあれば、充分に制御可能である。また、
演算回路304の設計により、複数の演算ユニットからの
データ転送をそれぞれ独立に制御することもできる。
【0052】このように、一つの演算ユニットに複数の
演算ユニットからデータが入力されるシステムを構築す
る上で、データを処理する演算回路の基本制御はVALID
信号のみによって行うことができる。そして、インタフ
ェイス回路102の機能は、演算回路の設計を容易にする
のに有効である。
【0053】[直列および並列接続]インタフェイス回
路102は、複数の演算ユニットがシリアルまたはパラレ
ルに接続されて構成される任意のシステムにおいてもデ
ータ転送効率の点で有効である。図8はそれを説明する
ためのブロック図である。
【0054】演算ユニット500および530は、一つの入力
データに対して一つのデータを出力する演算ユニットで
ある。また、演算ユニット510は、二つの入力データに
対して一つのデータを出力する演算ユニットである。
【0055】図9は、演算ユニット520が、一つの入力デ
ータに対して二つのデータを出力する場合のタイミング
チャートである。
【0056】演算ユニット500および530の出力データDA
TA2およびDATA5は、入力データDATA1およびDATA4に対し
て単純に1サイクル分遅延する。
【0057】演算ユニット510の出力データDATA3は、有
効なデータDATA2が二つ入力されるごとに更新される。
演算ユニット510のVALID信号であるVALID3は、DATA3が
更新された直後の1サイクル期間、例えばタイミングt3
からt4の期間のみ‘1’になる。
【0058】演算ユニット520は、有効なデータDATA3が
一つに対して二つの有効データDATA4を出力するので、
演算ユニット510へ出力されるSTOP信号であるSTOP3は、
有効データを取り込んだ直後の1サイクル期間、例えば
タイミングt4からt5の期間‘1’になり、有効なデータ
の転送停止を指示する。
【0059】図9から明らかなように、演算ユニット520
から出力されるSTOP信号であるSTOP3は、演算ユニット5
10からのVALID信号であるVALID3によって相殺され、演
算ユニット500から演算ユニット530までを1システムと
仮定すると、一つの有効な入力に対する一つの有効な出
力が、必ず一定の間隔で出力されるシステムを構築でき
る。
【0060】図10は、演算ユニット520が、一つの入力
データに対して三つのデータを出力する場合のタイミン
グチャートである。
【0061】図9と同様に、演算ユニット500および530
の出力データは単純に1サイクル分遅延し、演算ユニッ
ト510の出力データDATA3は、有効なデータが二つ入力さ
れるごとに更新される。演算ユニット510のVALID信号で
あるVALID3は、DATA3が更新された直後の1サイクル期
間、例えばタイミングt3からt4の期間のみ‘1’にな
る。演算ユニット520の出力データであるDATA4は、一つ
の有効なデータに対して三つの有効なデータを出力する
ので、演算ユニット510へのSTOP信号であるSTOP3は有効
なデータを取り込んだ直後の2サイクル期間、例えばタ
イミングt4からt6の期間‘1’になり、有効なデータの
転送停止を指示する。このため、VALID3は本来‘1’で
ある期間、例えばt5からt6の期間が‘0’になる。
【0062】さらに、VALID3およびSTOP3が、インタフ
ェイス回路102の作用により、演算ユニット500へのSTOP
信号であるSTOP2をタイミングt6からt7の期間‘1’にす
るため、タイミングt7で演算ユニット500の出力データD
ATA2は更新されない。このSTOP2信号は、1サイクル分遅
れてSTOP1信号に伝播する。また、タイミングt7におい
て、演算ユニット520から出力されるSTOP信号であるSTO
P3は‘0’になっているので、演算ユニット520は、演算
ユニット510の出力データDATA3を取り込む。
【0063】図10から明らかなように、演算ユニット50
0から出力されるSTOP信号であるSTOP1は、3サイクルに
一回の確率で‘1’になる。これは、演算ユニット500か
ら530までを1システムと仮定すると、二つの有効なデー
タの入力に対して三つの有効なデータを出力するシステ
ムを想定したからである。このように、有効なデータの
入力数と有効なデータの出力数との関係が既知である場
合は当然であるが、例えば可変長符号化処理のような、
有効なデータの出力数が不明であるようなシステムにお
いても、常に最適化された伝播速度でデータ転送が行わ
れることは明白である。
【0064】このように複数の演算ユニットがシリアル
接続される任意のシステムにおいて、CPUなどに代表さ
れるシステム制御回路は、各演算ユニットにおけるデー
タ遅延などによる入力のタイミングを考慮することな
く、先頭の演算ユニットに対してデータ転送を指示する
だけで、システム内を伝播するデータを、常に最適化さ
れた速度で伝播させることができる。勿論、シリアルに
接続されたシステムのみならず、前記した様々な組み合
わせのシステムにおいて、そのデータ伝播速度が最適化
されることはいうまでもない。
【0065】[演算ユニットの共有]演算ユニットの外
部に若干の付加回路を追加することにより、複数の演算
ユニットによって一つの演算ユニットを共有することも
可能で、図11はその構成例を示すブロック図である。
【0066】演算ユニット157、158および159のデータ
およびVALID信号は、セレクタ162を介して、演算ユニッ
ト160へ入力される。演算ユニット160へ接続する演算ユ
ニットを選択するセレクタ162は、2ビットのレジスタ(R
EG)信号によって制御される。演算ユニット160から出力
されるSTOP信号は、REG信号によって選択された演算ユ
ニットにのみ出力される。このように、レジスタに設定
するREG信号により入力演算ユニットの切り換えを行う
ことで、演算ユニット160の機能を複数の演算ユニット
が簡単に共有することが可能になる。また、演算ユニッ
ト160の動作制限を行うイネーブル(EN)信号を図11に示
すように追加することで、演算ユニット160の動作制限
を行うことも可能になる。
【0067】以上説明したように、本実施形態における
インタフェイス回路は、複数の演算ユニットで構成され
る任意のシステムにおいて、ある演算ユニットの一つの
出力を複数の演算ユニットに分岐させる場合、ある演算
ユニットの複数の出力を複数の演算ユニットに分岐させ
る場合、および、複数の演算ユニットから一つの演算ユ
ニットに入力するための待ち合わせ動作を行う場合に、
隣接する演算ユニットとのデータのハンドシェイクを意
識することなく、演算回路の設計を容易にさせるととも
に、システム制御回路による複雑なデータ転送制御を不
要とすることができる。
【0068】例えば、複数の演算ユニットがシリアルに
接続されるパイプラインシステムにおいて、本実施形態
のインタフェイス回路は、入力側にデータバッファを備
え、必要に応じてデータバッファを使用することで、隣
接する演算ユニットとのデータのハンドシェイクを意識
することなく、演算回路の設計を容易にさせる。さら
に、可変長符号化処理のように入力データ数と出力デー
タ数とが異なるシステムにおいても、システム内のデー
タ伝播速度が常に最適であるシステムの構築が可能にな
る。
【0069】さらに、本実施形態のインタフェイス回路
により、複数の演算ユニットで構成される任意のシステ
ム内のデータ伝播速度を常に最適な状態にすることがで
き、データ転送を確実かつ能率的に実現することが可能
になる。
【0070】本実施形態は、任意のシステムにおいて利
用可能であり、半導体LSIの設計およびそのLSI、コンピ
ュータ制御システムの設計およびそのシステム、さら
に、あらゆる形態の通信システムの設計およびその通信
システムにおけるデータのハンドシェイクに有効であ
る。
【0071】
【他の実施形態】なお、本発明は、複数の機器(例えば
ホストコンピュータ、インタフェイス機器、リーダ、プ
リンタなど)から構成されるシステムに適用しても、一
つの機器からなる装置(例えば、複写機、ファクシミリ
装置など)に適用してもよい。
【0072】また、本発明の目的は、前述した実施形態
の機能を実現するソフトウェアのプログラムコードを記
録した記憶媒体(または記録媒体)を、システムあるい
は装置に供給し、そのシステムあるいは装置のコンピュ
ータ(またはCPUやMPU)が記憶媒体に格納されたプログ
ラムコードを読み出し実行することによっても、達成さ
れることはいうまでもない。この場合、記憶媒体から読
み出されたプログラムコード自体が前述した実施形態の
機能を実現することになり、そのプログラムコードを記
憶した記憶媒体は本発明を構成することになる。また、
コンピュータが読み出したプログラムコードを実行する
ことにより、前述した実施形態の機能が実現されるだけ
でなく、そのプログラムコードの指示に基づき、コンピ
ュータ上で稼働しているオペレーティングシステム(OS)
などが実際の処理の一部または全部を行い、その処理に
よって前述した実施形態の機能が実現される場合も含ま
れることはいうまでもない。
【0073】さらに、記憶媒体から読み出されたプログ
ラムコードが、コンピュータに挿入された機能拡張カー
ドやコンピュータに接続された機能拡張ユニットに備わ
るメモリに書込まれた後、そのプログラムコードの指示
に基づき、その機能拡張カードや機能拡張ユニットに備
わるCPUなどが実際の処理の一部または全部を行い、そ
の処理によって前述した実施形態の機能が実現される場
合も含まれることはいうまでもない。
【0074】
【発明の効果】以上説明したように、本発明によれば、
相互に接続された演算ユニット間のデータ転送が容易な
情報処理装置、そのデータ転送方法およびインタフェイ
スを提供することができる。
【図面の簡単な説明】
【図1】本発明にかかる一実施形態のデータ転送回路に
おける最も基本的な演算ユニットの構成例を示すブロッ
ク図、
【図2】図1に示すVALID信号およびSTOP信号の関係を詳
細に示すタイミングチャート、
【図3】図1に示すVALID信号およびSTOP信号の関係を詳
細に示すタイミングチャート、
【図4】演算ユニットの一つの出力を複数の演算ユニッ
トに分岐させる場合を説明するブロック図、
【図5】演算ユニットの複数の出力データを複数の演算
ユニットに分岐させる場合を説明するためのブロック
図、
【図6】一つ演算ユニットへ複数の演算ユニットからデ
ータが入力される場合の待ち合わせ動作を行わせる場合
を説明するためのブロック図、
【図7】一つ演算ユニットへ複数の演算ユニットからデ
ータが入力される場合の待ち合わせ動作を行わせる場合
を説明するためのブロック図、
【図8】複数の演算ユニットがシリアルまたはパラレル
に接続されて構成される任意のシステムにおいてもデー
タ転送効率の点で有効であることを説明するためのブロ
ック図、
【図9】図8に示す演算ユニット520が、一つの入力デー
タに対して二つのデータを出力する場合のタイミングチ
ャート、
【図10】図8に示す演算ユニット520が、一つの入力デ
ータに対して三つのデータを出力する場合のタイミング
チャート、
【図11】複数の演算ユニットによって一つの演算ユニ
ットを共有する構成例を示すブロック図である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 蓮覚寺 秀行 東京都大田区下丸子3丁目30番2号 キヤ ノン株式会社内 Fターム(参考) 5B077 BA04 BA06 FF11 MM01 MM02

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】 複数の演算ユニットがシリアルおよび/
    またはパラレルに接続される情報処理装置のデータ転送
    方法であって、 前記複数の演算ユニット間を転送されるデータは、その
    データが任意のサイクルにおいて有効であることを示す
    第一の制御信号、および、有効なデータの出力の停止を
    要求する第二の制御信号を伴うことを特徴とするデータ
    転送方法。
  2. 【請求項2】 前記複数の演算ユニットの何れか一つ
    は、 入力側に接続される演算ユニットから出力されるデータ
    が有効であることを前記第一の制御信号が示す期間にお
    いて、有効なデータの停止を要求する場合、前記入力側
    に接続される演算ユニットに対してデータの出力停止を
    要求する前記第二の制御信号を保持するとともに、前記
    入力側に接続される演算ユニットから入力されるデータ
    を保持し、 前記第二の制御信号を保持する期間は保持されたデータ
    および信号をデータ処理用に選択し、 前記第二の制御信号を保持しない期間は前記入力側に接
    続される演算ブロックから入力されるデータおよび前記
    第一の制御信号をデータ処理用に選択することを特徴と
    する請求項1に記載されたデータ転送方法。
  3. 【請求項3】 データ転送用のインタフェイスおよびデ
    ータ処理を実行する演算ブロックを備える複数の演算ユ
    ニットがシリアルおよび/またはパラレルに接続される
    情報処理装置であって、 前記インタフェイスは、前記複数の演算ユニット間を転
    送されるデータが任意のサイクルにおいて有効であるこ
    とを示す第一の制御信号、および、有効なデータの出力
    の停止を要求する第二の制御信号に基づき、前記演算ユ
    ニット間を転送されるデータのハンドシェイクを行うこ
    とを特徴とする情報処理装置。
  4. 【請求項4】 前記インタフェイスは、前記演算ユニッ
    トの入力側に接続される演算ユニットと同数の少なくと
    も1ビットの第一のデータ保持手段、入力されるデータ
    のビット幅(n)分の第二のデータ保持手段、および、少
    なくともn+1ビット出力のデータ選択手段とを備え、 前記第一のデータ保持手段は、前記入力側に接続される
    演算ユニットから出力されるデータが有効であることを
    前記第一の制御信号が示す期間において、前記演算ブロ
    ックが有効なデータの停止を要求する場合に、前記入力
    側に接続される演算ユニットに対してデータの出力停止
    を要求する前記第二の制御信号を保持し、 前記第二のデータ保持手段は、前記第一のデータ保持手
    段が前記第二の制御信号を保持すると、前記入力側に接
    続される演算ユニットから入力されるデータを保持し、 前記データ選択手段は、前記第一のデータ保持手段が前
    記第二の制御信号を保持する期間は前記第一および第二
    の保持手段に保持されたデータおよび信号を選択し、前
    記第一のデータ保持手段が前記第二の制御信号を保持し
    ない期間は前記入力側に接続される演算ブロックから入
    力されるデータおよび前記第一の制御信号を選択するこ
    とを特徴とする請求項3に記載された情報処理装置。
  5. 【請求項5】 前記インタフェイスは、前記演算ユニッ
    トの出力側に接続される少なくとも一つの演算ユニット
    に前記第二の制御信号が保持されている期間において、
    前記演算ブロックから出力されるデータが有効であるこ
    とを前記第一の制御信号が示す場合に、前記出力側に接
    続される演算ユニットの第二の制御信号を前記演算ブロ
    ックに伝達することで、前記第一の制御信号が無効を示
    すようにすることを特徴とする請求項3または請求項4に
    記載された情報処理装置。
  6. 【請求項6】 データ処理を実行する演算ブロックを備
    え、シリアルおよび/またはパラレルに相互接続される
    複数の演算ユニットのインタフェイスであって、 前記複数の演算ユニット間を転送されるデータが任意の
    サイクルにおいて有効であることを示す第一の制御信
    号、および、有効なデータの出力の停止を要求する第二
    の制御信号に基づき、前記演算ユニット間を転送される
    データのハンドシェイクを行うことを特徴とするインタ
    フェイス。
  7. 【請求項7】 前記演算ユニットの入力側に接続される
    演算ユニットと同数の少なくとも1ビットの第一のデー
    タ保持手段、入力されるデータのビット幅(n)分の第二
    のデータ保持手段、および、少なくともn+1ビット出力
    のデータ選択手段とを備え、 前記第一のデータ保持手段は、前記入力側に接続される
    演算ユニットから出力されるデータが有効であることを
    前記第一の制御信号が示す期間において、前記演算ブロ
    ックが有効なデータの停止を要求する場合に、前記入力
    側に接続される演算ユニットに対してデータの出力停止
    を要求する前記第二の制御信号を保持し、 前記第二のデータ保持手段は、前記第一のデータ保持手
    段が前記第二の制御信号を保持すると、前記入力側に接
    続される演算ユニットから入力されるデータを保持し、 前記データ選択手段は、前記第一のデータ保持手段が前
    記第二の制御信号を保持する期間は前記第一および第二
    の保持手段に保持されたデータおよび信号を選択し、前
    記第一のデータ保持手段が前記第二の制御信号を保持し
    ない期間は前記入力側に接続される演算ブロックから入
    力されるデータおよび前記第一の制御信号を選択するこ
    とを特徴とする請求項6に記載されたインタフェイス。
  8. 【請求項8】 前記演算ユニットの出力側に接続される
    少なくとも一つの演算ユニットに前記第二の制御信号が
    保持されている期間において、前記演算ブロックから出
    力されるデータが有効であることを前記第一の制御信号
    が示す場合に、前記出力側に接続される演算ユニットの
    第二の制御信号を前記演算ブロックに伝達することで、
    前記第一の制御信号が無効を示すようにすることを特徴
    とする請求項6または請求項7に記載されたインタフェイ
    ス。
  9. 【請求項9】 さらに、前記演算ユニットの出力を複数
    の演算ユニットへ分岐出力する出力手段を有することを
    特徴とする請求項6に記載されたインタフェイス。
  10. 【請求項10】 前記演算ユニットは、その演算ユニッ
    トの入力側に接続される複数の演算ユニットから出力さ
    れるデータのタイミングのずれを制御する制御手段を有
    することを特徴とする請求項6に記載されたインタフェ
    イス。
  11. 【請求項11】 さらに、前記演算ユニットの出力を複
    数の演算ユニットへ分岐出力する出力手段を有すること
    を特徴とする請求項3に記載された情報処理装置。
  12. 【請求項12】 前記演算ユニットは、その演算ユニッ
    トの入力側に接続される複数の演算ユニットから出力さ
    れるデータのタイミングのずれを制御する制御手段を有
    することを特徴とする請求項3に記載された情報処理装
    置。
JP11234545A 1999-08-20 1999-08-20 情報処理装置、ならびに、そのデータ転送方法およびインタフェイス Withdrawn JP2001060182A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11234545A JP2001060182A (ja) 1999-08-20 1999-08-20 情報処理装置、ならびに、そのデータ転送方法およびインタフェイス

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11234545A JP2001060182A (ja) 1999-08-20 1999-08-20 情報処理装置、ならびに、そのデータ転送方法およびインタフェイス

Publications (1)

Publication Number Publication Date
JP2001060182A true JP2001060182A (ja) 2001-03-06

Family

ID=16972710

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11234545A Withdrawn JP2001060182A (ja) 1999-08-20 1999-08-20 情報処理装置、ならびに、そのデータ転送方法およびインタフェイス

Country Status (1)

Country Link
JP (1) JP2001060182A (ja)

Similar Documents

Publication Publication Date Title
US5280584A (en) Two-way data transfer apparatus
KR101012744B1 (ko) 향상된 컴퓨팅 아키텍쳐를 위한 파이프라인 가속기 및 관련시스템 및 방법
US20100100704A1 (en) Integrated circuit incorporating an array of interconnected processors executing a cycle-based program
US5297242A (en) DMA controller performing data transfer by 2-bus cycle transfer manner
US11386025B2 (en) Daisy chain complex commands
JP2007535060A (ja) パイプライン式非同期命令プロセッサ回路
JP2009064411A (ja) データおよび命令をコンピュータにロードするための方法および装置
JPH10124456A (ja) 非同期データ処理装置
RU2275678C2 (ru) Обработка данных с помощью сопроцессора
US7051194B2 (en) Self-synchronous transfer control circuit and data driven information processing device using the same
JP4865960B2 (ja) データ処理装置およびその制御方法
US20090319762A1 (en) Dynamic reconfigurable circuit and data transmission control method
US5742842A (en) Data processing apparatus for executing a vector operation under control of a master processor
JP2001060182A (ja) 情報処理装置、ならびに、そのデータ転送方法およびインタフェイス
US6643749B2 (en) Interface for multi-processor
David et al. Self-timed architecture of a reduced instruction set computer
KR20090016645A (ko) 컴퓨터의 입력을 모니터링하는 방법과 장치
US6505294B2 (en) Direct control of operation blocks using operand signal of control instruction as extension to instruction set in a hardwired control processor
KR100266963B1 (ko) 전송되는 패킷을 오버래핑하여 인터페이스의 대기시간을 감소시키는 방법 및 장치
JP2834298B2 (ja) データ処理装置及びデータ処理方法
US20230176932A1 (en) Processor, information processing apparatus, and information processing method
JP2001282531A (ja) データ処理装置
JP3151832B2 (ja) Dmaコントローラ
JP2504263B2 (ja) デ―タ処理装置
JPH05342172A (ja) マルチプロセッサシステム

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20061107