JPH10333971A - データ演算装置 - Google Patents

データ演算装置

Info

Publication number
JPH10333971A
JPH10333971A JP9138333A JP13833397A JPH10333971A JP H10333971 A JPH10333971 A JP H10333971A JP 9138333 A JP9138333 A JP 9138333A JP 13833397 A JP13833397 A JP 13833397A JP H10333971 A JPH10333971 A JP H10333971A
Authority
JP
Japan
Prior art keywords
address
unit
data
register
program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP9138333A
Other languages
English (en)
Inventor
Masuyoshi Kurokawa
益義 黒川
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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Priority to JP9138333A priority Critical patent/JPH10333971A/ja
Priority to US09/085,434 priority patent/US6378057B1/en
Priority to KR1019980019369A priority patent/KR19980087428A/ko
Publication of JPH10333971A publication Critical patent/JPH10333971A/ja
Withdrawn 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/10Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory
    • G06F5/12Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations
    • G06F5/14Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations for overflow or underflow handling, e.g. full or empty flags

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Image Processing (AREA)
  • Memory System (AREA)

Abstract

(57)【要約】 【課題】 メモリをラインFIFOとして使用できるように
する。 【解決手段】 ライトポート変換生成部52およびリー
ドポート変換生成部53では、種々の値の保持、加算、
および比較を行う。ライトポート変換生成部52からの
値と、プログラムメモリからのアドレスを、アドレス修
飾回路55において比較、加算、選択を行い、データメ
モリ部4に、修飾されたアドレスを供給する。また、同
様な動作を、リードポート変換生成部53、およびアド
レス修飾回路56,57においても行っている。ライト
ポート変換生成部52とリードポート変換生成部53か
らの出力は、フラグ生成回路54にも供給される。デー
タメモリ部4に書き込み、または読み出しを行う際に、
このフラグの検査を行う。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、データ演算装置に
関して、特に、メモリにアクセスするためのアドレスを
変更することにより、メモリをラインFIFOとして使
用できるようにした、データ演算装置に関する。
【0002】
【従来の技術】従来のデータ演算装置としては、IEEE 1
990 CUSTOM INTEGRATED CIRCUITS CONFERENCE ,P17. 3.
1 に記載のSVP(Serial Video Processsor)と呼ばれるプ
ロセッサがある。このSVPは、映像信号をリアルタイム
でデジタル処理するプロセッサで、1024個のプロセ
ッサを1チップに収めたものである。そしてこのSVP
は、SIMD(Single Instruction stream/Multiple Data
stream)構造で、水平走査線の画素データを並列処理可
能である。ここで、SIMDとは、コンピュータのデータ処
理方式の1つで、データは異なるが、同一の仕事を同時
処理するものである。
【0003】図11は、従来のSIMD形式の並列プロセッ
サの構成例を示している。このSIMD制御並列プロセッサ
は、プログラム制御装置1、入力SAM(Serial Access M
emory)部3、データメモリ部4、演算回路部5、およ
び、出力SAM部6で構成されている。
【0004】入力SAM部3、データメモリ部4、演算回
路部5、および、出力SAM部6は、リニアアレイ(直線
配列)型に並列化された要素プロセッサ郡を構成してい
る。これらの要素プロセッサ2は、プログラム制御装置
1が有する1つのプログラムに従って、連動して制御さ
れる(即ち、SIMD制御される)。プログラム制御装置1
は、プログラムメモリや、そのプログラムを進行させる
シーケンス制御回路などを有し、プログラムメモリに予
め書き込まれたプログラムに従って、各種制御信号を発
生して、各種回路を制御する。
【0005】なお、入力SAM部3、データメモリ部4、
出力SAM部6は、主にメモリで構成されいる。詳細に説
明は省略するが、図1の装置においては、これらのメモ
リのための「ロウ(ROW)」アドレスデコーダは、プログ
ラム制御装置1に含まれているものとする。
【0006】並列化された要素プロセッサ2(単一エレ
メント分)は、図11において斜線で示した部分に対応
し、複数の要素プロセッサ2が、図中において横方向に
配列されている。即ち、図11の斜線の部分だけで、1
つのプロセッサに対応する構成要素を有している。
【0007】次に、図11の画像処理用のリニアアレイ
型並列プロセッサの動作に付いて説明する。
【0008】入力データ(1画素分の画像データ)は、
プログラム制御装置1からの制御信号により、入力SAM
部3に供給される。このデータは、図中の左端の要素プ
ロセッサ2から右端の要素プロセッサ2に向けて順次移
動するので、入力データは、左端の要素プロセッサ2の
入力SAM部3(入力SAMセル)から、右側の要素プロセッ
サ2の入力SAMセルに順次供給される。
【0009】要素プロセッサ2の数は、画像信号の1水
平走査期間の画素数H以上に設計されているので、画像
信号の1水平走査期間分の画素データを、入力SAM部3
に蓄積することができる。このような入力動作は、水平
走査期間毎に繰り返される。
【0010】プログラム制御装置1は、このようにして
画像信号の1水平走査期間のデータが入力SAM部3に蓄
積されるごとに、プログラムに従って入力SAM部3、デ
ータメモリ部4、演算回路部5、および出力SAM部6を
以下のようにSIMD制御して処理を実行する。また、SIMD
制御であるから、以下の動作は全ての要素プロセッサ2
において並列して同様に実行される。
【0011】入力SAM部2に蓄積された1水平走査期間
分の入力データは、次の水平走査期間において、必要に
応じて入力SAM部3からデータメモリ部4へ転送され、
その後の演算処理に使われる。
【0012】入力SAM部3からデータメモリ部4へのデ
ータの転送においては、プログラム制御装置1は、入力
SAM読み出し信号により入力SAM部3の所定のビットのデ
ータを選択してアクセスした後、メモリアクセス信号を
出して、そのデータを、データメモリ部4の所定のメモ
リセルへ書き込んでいく。
【0013】次に、プログラム制御装置1は、プログラ
ムに応じて、各要素プロセッサ2の演算回路部5に、そ
の要素プロセッサ2のデータメモリ部4に保持されてい
るデータを供給し、そのデータに対して算術演算あるい
は論理演算を行わせる。そして、その演算結果は、デー
タメモリ部4の所定のアドレスに書き込まれる。
【0014】図12は、演算回路部5の構成例を示して
いる。データメモリ部4からのデータは、セレクタ(se
l)20を介してレジスタ(reg)24に供給され、セレ
クタ(sel)21を介してレジスタ(reg)25に供給さ
れ、さらにセレクタ(sel)22を介してレジスタ(re
g)26に供給される。セレクタ20は、予め設定され
ている値1、データメモリ部4からのデータ、およびレ
ジスタ24に保持されているデータの中から、1つのデ
ータを選択し、レジスタ24に供給するようになされて
いる。またセレクタ21,22は、予め設定されている
値0、1、およびデータメモリ部4からのデータの中か
ら、1つのデータを選択し、セレクタ21はレジスタ2
5に、セレクタ22はレジスタ26に供給するようにな
されている。このセレクタ20,21,22が、3つの
入力のいずれかを選択するかは、プログラム制御装置1
からの信号により指示される。また、レジスタ(reg)
23は、全加算器31の出力するキャリーオーバーのデ
ータを保持するようになされている。
【0015】論理積回路28は、レジスタ24とレジス
タ25に保持されているデータの論理積を演算するよう
になされている。排他的論理和回路29は、論理積回路
28の出力と、プログラム制御装置1から供給されるデ
ータとの排他的論理和を演算し、その演算結果を全加算
器31に出力している。全加算器31はまた、レジスタ
26とレジスタ27に保持されているデータが供給され
ている。全加算器31は、これらの3つの入力の加算を
行い、その演算結果生成された和(sum)とキャリーオ
ーバーとを、セレクタ(sel)32に出力するようにな
されている。このうちキャリーオーバーはセレクタ(se
l)23にも供給されている。
【0016】セレクタ30は、排他的論理和回路29か
ら供給されるデータと、レジスタ26から供給されるデ
ータの一方を選択し、セレクタ32に出力している。セ
レクタ32は、セレクタ30からの入力、全加算器31
からの2つの入力の、合計3つの入力のうちのいずれか
1つを選択し、データメモリ部4に出力している。セレ
クタ30とセレクタ32の選択は、プログラム制御装置
1からの信号により制御されている。
【0017】例えば、プログラム制御装置1からの信号
により、セレクタ20を制御し、そこに入力されている
値1を選択させ、レジスタ24に保持させる。その結
果、論理積回路28の一方の入力に、レジスタ24に保
持されている論理1が入力されるので、データメモリ部
4により供給され、レジスタ25に保持されているデー
タは、そのまま論理積回路28を通過し、排他的論理和
回路29を介して、全加算器31に入力される。全加算
器31は、排他的論理和回路29より入力されるデータ
(レジスタ25から供給されたデータ)、データメモリ
部4より供給され、レジスタ26に保持されたデータ、
およびレジスタ27に保持されている前回の演算時に発
生したキャリーオーバーのデータを加算し、その加算結
果と、新たに生成したキャリーオーバーのデータをセレ
クタ32に出力する。キャリーオーバーはまた、レジス
タ27に供給され、保持される。
【0018】プログラム制御装置1はまた、セレクタ3
2を制御して、全加算器31の出力するキャリーオーバ
ーを選択し、データメモリ部4に出力させることができ
る。あるいはまた、セレクタ30で排他的論理和解路2
9またはレジスタ26からより供給されたデータの一方
を選択し、これをさらにセレクタ32で選択させて、デ
ータメモリ部4に供給することができる。
【0019】プログラム制御装置1は、論理積回路28
より出力されるデータの論理を反転して、全加算器31
に供給したいとき、排他的論理和回路29の一方の入力
に論理1を出力する。このようにすると、排他的論理和
回路29は、論理積回路28より論理1が出力されたと
き、論理0を出力し、論理積回路28より論理0が入力
されたとき、論理1を出力する。
【0020】また、プログラム制御装置1は、新たに入
力されたデータと、前回のデータとの論理積を演算させ
る場合には、セレクタ20がレジスタ24の保持してい
るデータを再び選択する。こうすることで、レジスタ2
5に次のデータが保持されるので、論理積回路28に
は、現在のデータと直前のデータとが入力され、その論
理積が演算される。セレクタ20によるレジスタ24の
出力の選択を繰り返すことにより、新たな入力データと
過去の入力データの演算が可能となる。
【0021】以上のようにして1水平走査期間に割り当
てられている演算が終了すると、その水平走査期間のう
ちに、その水平走査期間に演算したデータは、出力SAM
部6に転送される。
【0022】このように、1水平走査期間のうちに、入
力SAM部3に蓄積された入力データのデータメモリ部4
への転送、演算回路部5による演算、および、出力SAM
部6へのデータの転送が、ビットを単位とするSIMD制御
プログラムに従って実行される。そして、この処理は、
水平走査期間を単位として、順次繰り返される。
【0023】そして、出力SAM部6に転送された出力デ
ータは、さらに次の水平走査期間において、出力SAM部
6から出力される。
【0024】以上のように、入力データを入力SAM部3
に書き込む入力処理、プログラム制御部1による、入力
SAM部3に蓄積された入力データのデータメモリ部4へ
の転送、演算回路部5による演算、および、出力SAM部
6への出力データの転送の演算処理、並びに、出力デー
タを出力SAM部6から出力させる出力処理の3つの処理
が、各入力データに対して行われる。なお、これらの3
つの処理は、画像信号の1水平走査期間を単位とするパ
イプライン処理として実行される。
【0025】1つの水平走査期間の入力データに注目す
れば、そのデータに対する3つの処理には、各処理にお
いて1水平走査期間に対応する時間が経過するので、合
計水平走査期間の3倍に対応する時間がかかるが、3つ
の処理がパイプライン処理として並列に実行されるの
で、平均して、1水平走査期間分の入力データあたり1
水平走査期間に対応する時間で処理を行うことができ
る。
【0026】
【発明が解決しようとする課題】しかしながら、上述し
た従来の装置では、ライン数の変換などの処理を行うと
き、入力SAM部からの読み出しタイミングと、出力SAM部
への書き込みタイミングが、異なってしまうことがあ
る。勿論、この信号処理装置の前にフレームメモリなど
を用いて、タイミングのずれを吸収してしまうことは可
能だが、搭載するにはコスト高となる課題がある。
【0027】フレームメモリを搭載しないでこの問題を
解決するには、入力SAM部からの読み出しリクエスト
と、出力SAM部からの書き込みリクエストとが出された
ときに、演算処理を中止して、そのリクエストに応えな
くてはならなかった。
【0028】本発明はこのような状況に鑑みてなされた
ものであり、データを読み出したときに、1ライン前の
データの演算が終了していないとき、読み出したデータ
をメモリ内に一時保存を可能し、このデータを書き込ん
だ順に、読み出すことができるようにする(FIFO)もの
であり、低コスト化を可能にするものである。
【0029】
【課題を解決するための手段】本発明のデータ演算装置
の制御部は、プログラムに対応して発生された、記憶部
にアクセスするためのアドレスを変更する変更手段と、
この変更手段におけるアドレスの変更を制御する制御情
報を、プログラムからの指令に対応して生成する生成手
段とを備えることを特徴とする。
【0030】本発明のデータ演算装置においては、変更
手段が、プログラムに対応して発生された、記憶部にア
クセスするためのアドレスを変更し、生成手段が、変更
手段におけるアドレスの変更を制御する制御情報を、プ
ログラムからの指令に対応して生成する。
【0031】
【発明の実施の形態】以下に本発明の実施の形態を説明
するが、特許請求の範囲に記載の発明の各手段と以下の
実施の形態との対応関係を明らかにするために、各手段
の後の括弧内に、対応する実施の形態(但し一例)を付
加して本発明の特徴を記述すると、次のようになる。但
し勿論この記載は、各手段を記載したものに限定するこ
とを意味するものではない。また、従来の場合と対応す
る部品には同一の符号を付してあり、その説明は適宣省
略する。
【0032】請求項1に記載のデータ演算装置は、入力
されたデータを記憶する記憶部(例えば、図11のデー
タメモリ部4)と、記憶部に記憶されたデータを演算す
る演算部(例えば、図11の演算回路部5)と、記憶部
と演算部の動作をプログラムに対応して制御する制御部
(例えば、図11のプログラム制御装置1)とを備える
データ演算装置において、制御部は、プログラムに対応
して発生された、記憶部にアクセスするためのアドレス
を変更する変更手段(例えば、図1のアドレス修飾回路
55)と、変更手段におけるアドレスの変更を制御する
制御情報を、プログラムからの指令に対応して生成する
生成手段(例えば、図1のライトポート変換情報生成部
52)とを備えることを特徴とする。
【0033】請求項2に記載のデータ演算装置の変更手
段は、プログラムにより生成されたアドレスに、所定の
加算値を加算する加算手段(例えば、図2の加算器9
1)を備えることを特徴とする。
【0034】請求項3に記載のデータ演算装置の生成手
段は、変更するアドレスの範囲を保持する第1の保持手
段(例えば、図2のレジスタ80)と、加算値を保持す
る第2の保持手段(例えば、図2のレジスタ84)と、
アドレスの変更の幅を保持する第3の保持手段(例え
ば、図2のレジスタ81)と、アドレスの変更の回数を
保持する第4の保持手段(例えば、図2のレジスタ8
6)と、アドレスの変更の最大の回数を保持する第5の
保持手段(例えば、図2のレジスタ82)とを備えるこ
とを特徴とする。
【0035】請求項4に記載のデータ演算装置の生成手
段は、第2の保持手段により保持されている加算値、第
4の保持手段により保持されている変更の回数、または
第5の保持手段により保持されている変更の最大の回数
に基づいて、フラグを生成するフラグ生成手段(例え
ば、図1のフラグ生成回路54)をさらに備え、プログ
ラムは、フラグに対応して生成手段を制御することを特
徴とする。
【0036】図1は、本発明のデータ演算装置の構成例
を示している。プログラム制御装置1は、プログラムを
格納するプログラムメモリ50と、そのプログラムメモ
リ50に記憶されているプログラムに従って動くシーケ
ンサ51と、データメモリ部4にアクセスするためのア
ドレスを変更するアドレス修飾回路55乃至57、およ
びこれらのアドレス修飾回路におけるアドレスの変更を
制御する情報を生成する、ライトポート変換情報生成部
52とリードポート変換情報生成部53から構成されて
いる。
【0037】プログラムメモリ50のフィールドには、
シーケンス制御フィールド、演算回路制御フィールド、
およびメモリアドレス制御フィールドといった制御機能
が割り当てられおり、この信号処理装置の全機能を制御
している。
【0038】シーケンサ51は、シーケンス制御フィー
ルドに記述されたコードに従って、アドレスのインクリ
メント、指定されたアドレスへのジャンプ、およびスタ
ックレジスタを使用してのサブルーチンなどの操作を行
う。
【0039】演算回路制御フィールドは、要素プロセッ
サ2が、加減算、論理演算などの所望の演算を行えるよ
うに制御コードを記述する。
【0040】メモリアドレス制御フィールドは、図11
のデータメモリ部4の2リード1ライトのポートそれぞ
れのためのアドレスを生成する。
【0041】プログラムメモリ50は、アドレス修正回
路55乃至57、演算回路5、およびシーケンサ52に
接続している。シーケンサ51は、ライトポート変換情
報生成部52、リードポート変換生成部53、およびプ
ログラムメモリ50に接続している。ライトポート変換
情報生成部52は、アドレス修正回路55に接続し、ア
ドレス修正回路55は、データメモリ部4に接続されて
いる。リードポート変換情報生成部53は、アドレス修
正回路56,57に接続し、アドレス修正回路56,5
7は、データメモリ部4に接続されている。また、ライ
トポート変換情報生成部52とリードポート変換情報生
成部53は、フラグ生成回路54にも接続され、フラグ
生成回路54は、シーケンサ51に接続されている。
【0042】図2は、図1のライトポート変換情報生成
部52とアドレス修飾回路55の構成例を示している。
プログラムメモリ50からのアドレスは、比較器90、
加算器91、およびセレクタ92に入力される。比較器
90は、前記アドレスと、特定範囲の上限と下限を保持
したレジスタ80の値が入力される。この比較結果は、
セレクタ92を制御する。加算器91は、前記アドレス
と、加算値を保持するレジスタ84の値が入力される。
この加算結果と、前記アドレスはセレクタ92に入力さ
れ、セレクタ92の選択結果は、データメモリ部4に出
力される。
【0043】特定範囲のアドレス幅を保持するレジスタ
81は、加算器89に接続されている。加算器89の加
算結果は、セレクタ83に入力される。セレクタ83に
は、前記加算結果の他に加算値を保持するレジスタ84
の値と、0が入力されており、この選択結果は、レジス
タ84に出力される。
【0044】加算の最大回数を保持するレジスタ82
は、比較器87に接続されている。比較器87の比較結
果は、セレクタ85,83を制御している。また、前記
比較結果は、加算器88にも入力される。加算器88の
加算結果は、セレクタ85に入力される。セレクタ85
には、前記加算結果の他に、加算回数を保持するレジス
タ86の値と、0が入力されており、この選択結果は、
レジスタ86に出力される。
【0045】次に、図3のデータメモリ部4の使用領域
を説明する図を参照して、その動作について説明する。
いま、図3に示すように、各要素プロセッサ2のデータ
メモリ部4は、アドレス0からアドレス255までの領
域を有しており、この内のアドレス0乃至アドレス15
の領域を特定領域とし、この特定領域を含む特定領域の
3倍の領域、すなわちアドレス0乃至アドレス47の領
域をFIFO領域として使用するものとする。このと
き、ライトポート変換情報生成部52と、リードポート
変換情報生成部53のレジスタ80は、特定領域のアド
レスの上限としてアドレス15が、また下限としてアド
レス0が設定される。そして、レジスタ81には、特定
領域に幅である16が設定される。さらにまた、特定領
域の3倍の領域をFIFO領域とするので、レジスタ8
2には、アドレスの変更の最大の回数NMAXとして3が
設定される。
【0046】次に、プログラムメモリ50に記憶されて
いるプログラムに従って、シーケンサ51は、図4のフ
ローチャートに示す処理を実行する。最初にステップS
1において、リードポート変換情報生成部53のレジス
タ84に保持されている加算値NRADDが0に初期設定さ
れ、ステップS2において、ライトポート変換情報生成
部52のレジスタ84に保持されている加算値NWADD
0に初期設定される。
【0047】次に、ステップS3とステップS4におい
て、書込、読出のいずれかを実行するのかを判定する。
ステップS4において、書込を実行すると判定した場
合、ステップS5に進み、特定領域への書込であるか否
かを判定する。例えば、演算回路部5における演算が終
了しているタイミングにおいて、入力SAM部3から新た
なデータが転送されてきたとき、特定領域への書込を行
う必要がない。そこで、この場合には、ステップS6に
進み、プログラムメモリ50は、所定のアドレス(この
アドレスとしては、FIFO領域のアドレスとして指定
されるアドレス0乃至アドレス48の使用が禁止され
る。従って、アドレス49乃至アドレス255のいずれ
かのアドレスとされる)が、比較器90に入力される。
比較器90は、入力されたアドレスとレジスタ80に保
持されているアドレスとを比較する。入力されたアドレ
スは、レジスタ80に保持されているアドレスの範囲外
のアドレスであるので、比較器90は、セレクタ92を
制御し、プログラムメモリ50より供給されるアドレス
を選択させ、データメモリ部4に供給させる。その結
果、データメモリ部4のプログラムメモリ50に指定さ
れたアドレスにデータが書き込まれる。
【0048】一方、例えば、演算回路部5における演算
がまだ終了されていないタイミングにおいて、データメ
モリ部4に新たなデータを記憶する必要が生じた場合、
この新たなデータは、データメモリ部4のFIFO領域
に一旦保持するようにする。この場合、ステップS5に
おいて、特定領域への書込であると判定される。この場
合、ステップS7に進み、フルフラグFFがオンされて
いるか否かが判定される。このフルフラグFFは、FI
FO領域にいっぱいにデータが記録されているときオン
され、空きがあるときオフされている(その処理の詳細
は、図5のフローチャートを参照して後述する)。
【0049】そこで、フルフラグFFがオフしている場
合には、ステップS8に進み、シーケンサ51は、書込
アドレスとして特定範囲のアドレス(すなわち、図3に
示すアドレス0乃至アドレス15のいずれかのアドレ
ス)を出力する。このアドレスは、比較器90において
レジスタ80に保持されているアドレスと比較される。
いまの場合、プログラムメモリ50より入力されたアド
レスは、レジスタ80に保持されているアドレスの範囲
内のアドレスであるので、比較器90は、セレクタ92
を制御し、加算器91の出力を選択させる。
【0050】加算器91には、プログラムメモリ50の
出力するアドレスと、レジスタ84に保持されている加
算値NWADDが供給されている。ただし、いまの場合、加
算値NWADDは0であるから、加算器91は、プログラム
メモリ50より供給されたアドレスに0を加算すること
になるので、結局、実質的には、プログラムメモリ50
より供給されたアドレスが、そのままセレクタ92によ
り選択され、データメモリ部4に供給される。その結
果、新たに入力されたデータが、例えば、アドレス0に
書き込まれる。
【0051】次に、ステップS9に進み、シーケンサ5
1は、ライトポート変換情報生成部52に対して書込イ
ンクリメントを指令する。この指令に対応して、後述す
るように、レジスタ84の更新値NWADDと、レジスタ8
6に保持されている変更回数NWNの値が更新される(そ
の詳細については、図6のフローチャートを参照して後
述する)。
【0052】次に、図5のフローチャートを参照して、
フルフラグの処理について説明する。この処理は、図1
におけるフラグ生成回路54により、ライトポート変換
情報生成部52の出力と、リードポート変換情報生成部
53の出力に対応して行われる。
【0053】最初に、ステップS31において、ライト
ポート変換情報生成部52のレジスタ84に保持されて
いる書込時の加算値NWADDが、リードポート変換情報生
成部53のレジスタ84に保持されている読出値の加算
値NRADDからWADRを減算した値と等しいか否かが判定
される。いまの場合、NWADDとNRADDはいずれも0であ
るから、この条件は満足されない。そこで、この場合、
ステップS33に進む。リードポート変換情報生成部5
3のレジスタ86に保持されていている読出時の変更回
数NRNが0であり、かつ、ライトポート変換情報生成部
52のレジスタ86に保持されている書込時の変更回数
WNが、レジスタ82に保持されている最大変更回数N
MAX−1と等しいか否かが判定される。いまの場合、N
RNは0であるが、NWNも0であり、NMAX−1と等しく
ないので、ステップS34に進み、フルフラグFFがオ
フされる。
【0054】これに対して、ステップS31において、
加算値NWADDが、加算値NRADDから1を減算した値と等
しいと判定された場合、または、ステップS33におい
て、読出時の変更回数NRNが0であり、かつ、書込時の
アドレス変更回数NRNが、最大回数NMAX−1と等しい
と判定された場合、ステップS32に進み、フルフラグ
Fがオンされる。すなわち、これらの場合には、FI
FO領域のすべての領域にデータが書き込まれており、
空き領域が存在しないものとして、フルフラグFFがオ
ンされる。
【0055】次に、図6のフローチャートを参照して、
書込インクリメント指令時の処理について説明する。こ
の処理は、シーケンサ51から書込インクリメント指令
が出力されたとき、ライトポート変換情報生成部52に
おいて実行される。
【0056】最初にステップS41において、比較器8
7は、レジスタ86に保持されている書込時のアドレス
変更回数NWNが、レジスタ82に保持されている最大回
数NMAX−1と等しいか否かを判定する。両者の値が等
しいと判定された場合、比較器87は、ステップS42
において、セレクタ85を制御し、加算器88の出力を
選択させる。加算器88は、レジスタ86に保持されて
いる変更回数NWN(いまの場合、NWN=0)に値1を加
算し、出力する。セレクタ85により、この加算器88
の出力が選択され、レジスタ86に転送されるので、結
局、レジスタ86の書込時の変更回数NWNが1だけイン
クリメントされることになる(いまの場合、NWN=1と
される)。
【0057】比較器87は、さらにセレクタ83を制御
し、加算器89の出力を選択し、レジスタ84に転送
し、保持させる。加算器89は、レジスタ84に保持さ
れている書込時の加算値NWADD(いまの場合、NWADD
0)と、レジスタ81に保持されている特定領域の幅W
ADRとを加算し、出力する。その結果、レジスタ84の
加算値NWADDが、幅WADRだけインクリメントされる。
いまの場合、幅WADR=16であるので、加算値NWADD
=16となる。この処理がステップS43で行われる。
【0058】FIFO領域への書込が、上述した場合と
同様にして、さらに2回行われ、合計2回行われると、
図6のステップS42において、NWN=2とされ、ステ
ップS43において、NWADD=32とされる。このと
き、図5のフルフラグ処理のステップS33において、
RN=0であり、かつ、NWN=NMAX(=3)−1と判
定されるので、ステップS32において、フルフラグF
Fがオンさせれる。
【0059】その結果、第3回目のFIFO領域への書
込が指令された場合、図4のステップS7において、フ
ルフラグFFがオンであると判定され、ステップS10
に進み、FIFO領域への書込が禁止される。
【0060】一方、図6のステップS41において、ラ
イトポート変換情報生成部52のレジスタ86に保持さ
れている書込時の加算回数NWNが、レジスタ82に保持
されている最大変更回数NMAX−1と等しいと、比較器
87で判定された場合、ステップS44とステップS4
5において、比較器87は、セレクタ85とセレクタ8
3をそれぞれ制御し、0を選択させ、レジスタ86とレ
ジスタ84に転送させる。これにより、NWN=0とさ
れ、また、NWADD=0とされる。なお、このステップS
41,S44,S45の処理は、後述するように、FI
FO領域の読出が行われ、フルフラグFFが一旦オフさ
れた後、再び、FIFO領域の書込が指令され、FIF
O領域の書込が行われたとき、図4のステップS9で発
生される書込インクリメント指令に対応して実行され
る。
【0061】以上の書込時におけるアドレス修飾回路5
5と、ライトポート変換情報生成部52における処理を
簡単にまとめると、図7のフローチャートに示すように
なる。
【0062】すなわち、最初にステップS61におい
て、プログラムメモリ50より入力されたメモリアドレ
スが、レジスタ80に保持されている特定領域のアドレ
スと等しいか否かが判定され、等しくない場合には、ス
テップS62に進み、比較器90よりセレクタ92を制
御し、プログラムメモリ50の出力をそのまま選択させ
る。これに対して、ステップS61において、プログラ
ムメモリ50より入力されたメモリアドレスが、レジス
タ80に保持しているアドレスと等しいと判定された場
合、ステップS63に進み、比較器90によりセレクタ
92を制御し、加算器91の出力を選択させる。その結
果、プログラムメモリ50より入力されたメモリアドレ
スに、レジスタ84に保持している加算値NWADDを加算
した値が、セレクタ92からデータメモリ部4に出力さ
れる。
【0063】次に、図4のフローチャートの読出時の動
作について説明する。ステップS4において、データメ
モリ部4に保持されているデータを読み出す処理である
と判定された場合、ステップS11に進み、プログラム
メモリ50より入力された読出アドレスが、特定領域の
アドレスであるか否かが判定される。すなわち、アドレ
ス修飾回路56の比較器90において、プログラムメモ
リ50より入力されたメモリアドレスが、リードポート
変換情報生成部53のレジスタ80に保持されているア
ドレスと一致するか否かが判定され、一致しない場合に
は、ステップS12に進み、入力されたメモリアドレス
が、そのまま出力される処理が実行される。すなわち、
比較器90は、セレクタ92を制御し、プログラムメモ
リ50より入力されたメモリアドレスを選択させ、デー
タメモリ部4に出力させる。これにより、データメモリ
部4のアドレス49乃至アドレス255のいずれかに記
憶されているデータが読み出される。
【0064】一方、ステップS11において、プログラ
ムメモリ50より入力されたメモリアドレスが、リード
ポート変換情報生成部53のレジスタ80に保持されて
いる特定領域のアドレスと等しいと判定された場合、ス
テップS13に進み、シーケンサ51は、エンプティフ
ラグFEがオンしているか否かが判定される。エンプテ
ィフラグの処理については、図8のフローチャートを参
照して後述するが、このエンプティフラグFEは、FI
FO領域にデータが全く記録されていないときオンさ
れ、記録されているときオフされる。エンプティフラグ
Eがオンされている場合、FIFO領域は空であり、
データが何も記録されていないので、ステップS16に
進み、読出禁止処理が実行される。
【0065】これに対して、ステップS13において、
エンプティフラグFEがオフされていると判定された場
合、FIFO領域にデータが記録されていることになる
ので、ステップS14に進み、プログラムメモリ50
は、読出アドレスとして、特定領域のアドレス(アドレ
ス0乃至アドレス15)を出力する。アドレス修飾回路
56の比較器90は、このアドレスとリードポート53
のレジスタ80に保持されている特定領域のアドレスと
を比較し、両者が一致すると判定するので、セレクタ9
2を制御し、加算器91の出力を選択させる。その結
果、リードポート53のレジスタ84に保持されている
加算値NRADDが、プログラムメモリ50より入力された
読出アドレスに加算されて、データメモリ部4に出力さ
れる。ただし、いまの場合、NRADD=0であるので、プ
ログラムメモリ50より入力された読出アドレスが、そ
のままデータメモリ部4に供給される。その結果、特定
領域に記録されているデータの読出が行われる。
【0066】次にステップS15に進み、シーケンサ5
1は、読出インクリメントを指令する。この読出インク
リメント指令時の処理の詳細は、図9のフローチャート
を参照して後述するが、リードポート53のレジスタ8
4の加算値NRADDと、レジスタ86に保持されている読
出時のアドレス変更回数NRNがインクリメントされる。
【0067】次に、図18のフローチャートを参照し
て、エンプティフラグ処理について説明する。この処理
は、フラグ生成回路54が、ライトポート変換情報生成
部52の出力と、リードポート変換情報生成部53の出
力とをモニタして、適宜行うものである。
【0068】最初にステップS71において、リードポ
ート変換情報生成部53のレジスタ84に保持されてい
る加算値NRADDと、ライトポート変換情報生成部52の
レジスタ84に保持されている加算値NWADDの値が等し
いか否かが判定される。両者が等しい場合、ステップS
72に進み、エンプティフラグFEがオンされ、両者が
等しくない場合、ステップS73に進み、エンプティフ
ラグFEがオフされる。例えば、初期状態においては、
加算値NRADDとNWADDはいずれも0とされるので、エン
プティフラグFEがオンされることになる。
【0069】次に、図9のフローチャートを参照して、
読出インクリメント指令が出力された場合の処理につい
て説明する。この処理は、図4のステップS15におい
て、シーケンサ51が、読出インクリメント指令を出力
したとき、リードポート変換情報生成部53において実
行される。
【0070】最初に、ステップS81において、リード
ポート変換情報生成部53のレジスタ86に保持されて
いる変更回数NRNが、レジスタ80に保持されている最
大回数NMAX−1と等しいか否かが判定され、等しくな
いと判定された場合、ステップS82に進み、NRNを1
だけインクリメントする処理が実行される。
【0071】すなわち、比較器87は、レジスタ86に
保持されている変更回数NRNと、レジスタ80に保持さ
れている最大回数NMAXと比較し、両者が等しくないと
判定された場合、セレクタ85を制御し、加算器88の
出力を選択し、レジスタ86に転送し、保持させる。加
算器88は、レジスタ86に保持されている回数NRN
1を加算して出力するので、結局、レジスタ86の加算
回数NRNが、1だけインクリメントされることになる。
【0072】次に、ステップS83に進み、リードポー
ト53の変換情報生成部53のレジスタ84に保持され
ている加算値NRADDを、レジスタ81に保持されている
幅WADRだけインクリメントする処理が実行される。す
なわち、比較器87は、NRN=NMAX−1が成立しない
とき、セレクタ83を制御し、加算器89の出力を選択
させ、レジスタ84に転送し、保持させる。加算器89
は、レジスタ84に保持されている加算値NWADDに、レ
ジスタ81に保持されている幅WADRを加算して出力す
るので、結局レジスタ84に保持されている加算値N
RADDが、幅WADRだけインクリメントされることにな
る。
【0073】すなわち、FIFO領域から1回の読出が
指令されたとき、NRN=1とされ、NRADD=WADR=1
6とされる。2回目の読出が完了した時点においては、
RN=2となり、NRADD=32となる。
【0074】第3回目のFIFO領域からの読出が指令
された場合には、ステップS81において、NRN=N
MAX(=3)−1と判定される。この場合、ステップS
84に進み、NRN=0とされ、ステップS85におい
て、NRADD=0とされる。
【0075】すなわち、リードポート変換情報生成部5
3の比較器87は、レジスタ86に保持されている変更
回数NRNの値と、レジスタ82に保持されている最大回
数NMAX−1が等しい場合、セレクタ85とセレクタ8
3を制御し、それぞれ0を選択して、レジスタ86とレ
ジスタ84に転送し、記憶させる。
【0076】なお、FIFO領域への書込が2回しか行
われておらず、2回読出が行われたような場合、リード
ポート変換情報生成部53のレジスタ84に保持されて
いる加算値NRADDと、ライトポート変換情報生成部52
のレジスタ84に保持されている加算値NWADDが等しく
なるので、図8のステップS71からステップS72に
進み、エンプティフラグFEがオンされる。その結果、
図2のステップS13からステップS16に進み、それ
以降の読出が禁止される。
【0077】以上の読出時におけるアドレス修飾回路5
6と、リードポート変換情報生成部53における処理を
まとめると、図10のフローチャートに示すようにな
る。
【0078】すなわち、最初にステップS91におい
て、プログラムメモリ50より入力されたメモリアドレ
スが、レジスタ80に保持されている特定領域のアドレ
スであるか否かが判定され、特定領域のアドレスでない
と判定された場合、ステップS92に進み、セレクタ9
2により、プログラムメモリ50からのメモリアドレス
が選択され、そのままデータメモリ4に供給される。こ
れに対して、プログラムメモリ50より入力されたメモ
リアドレスが、レジスタ80に保持している特定領域の
アドレスであると判定された場合、ステップS93にお
いて、セレクタ92や加算器91の出力を選択し、プロ
グラムメモリ50より入力されたメモリアドレスにレジ
スタ84に保持されている加算値NRADDを加算したアド
レスをデータメモリ部4に出力する。
【0079】なお、データメモリ部4は、2個のリード
ポートを有しているので、図1のプログラム制御装置1
は、アドレス修飾回路56以外にアドレス修飾回路57
を有しているが、その動作は、アドレス修飾回路56に
おける場合と同様であるので、その説明は省略する。
【0080】以上のように、プログラム制御装置1に、
プログラムメモリ50とシーケンサ51以外に、ハード
的にライトポート変換情報生成部52、リードポート変
換情報生成部53、フラグ生成回路54、アドレス修飾
回路55乃至57を設けるようにしたので、プログラム
メモリ50に記憶するプログラムの作成に手間がかかる
ようなことが防止される。
【0081】
【発明の効果】以上の如く、請求項1に記載のデータ演
算装置によれば、プログラムに対応して発生されたアド
レスを、プログラムからの指令に対応して生成した制御
情報に対応して変更するようにしたので、プログラムの
記述が複雑になることが防止される。
【図面の簡単な説明】
【図1】本発明を適用したデータ演算装置の構成例を示
すブロック図である。
【図2】図1のライトポート変換情報生成部52とアド
レス修飾回路55の構成例を示すブロック図である。
【図3】図1のデータメモリ部4の使用領域を説明する
図である。
【図4】図1のシーケンサ51における処理を説明する
フローチャートである。
【図5】図1のフラグ生成回路54のフルフラグ生成処
理を説明するフローチャートである。
【図6】図2のライトポート変換情報生成部52の書込
インクリメント指令時の動作を説明するフローチャート
である。
【図7】図2のアドレス修飾回路55とライトポート変
換情報生成部52の書込時の動作を説明するフローチャ
ートである。
【図8】図1のフラグ生成回路54のエンプティフラグ
生成処理を説明するフローチャートである。
【図9】図2のアドレス修飾回路56と、リードポート
変換情報生成部53の読出インクリメント指令時の動作
を説明するフローチャートである。
【図10】図2のアドレス修飾回路56とリードポート
変換情報生成部53の読出時の動作を説明するフローチ
ャートである。
【図11】従来のデータ演算装置の構成例を示すブロッ
ク図である。
【図12】図11の演算回路部5の構成例を示すブロッ
ク図である。
【符号の説明】
50 プログラムメモリ, 51 シーケンサ, 52
ライトポート変換生成部(生成手段), 53 リー
ドポート変換生成部(生成手段), 54 フラグ生成
回路, 55乃至57 アドレス修飾回路(変更手
段), 80乃至82,84,86 レジスタ(保持手
段), 83,85,92 セレクタ(選択手段),
87,90 比較器(比較手段), 88,89,91
加算器(加算手段)

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 入力されたデータを記憶する記憶部と、 前記記憶部に記憶されたデータを演算する演算部と、 前記記憶部と演算部の動作をプログラムに対応して制御
    する制御部とを備えるデータ演算装置において、 前記制御部は、 前記プログラムに対応して発生された、前記記憶部にア
    クセスするためのアドレスを変更する変更手段と、 前記変更手段におけるアドレスの変更を制御する制御情
    報を、前記プログラムからの指令に対応して生成する生
    成手段とを備えることを特徴とするデータ演算装置。
  2. 【請求項2】 前記変更手段は、前記プログラムにより
    生成されたアドレスに、所定の加算値を加算する加算手
    段を備えることを特徴とする請求項1に記載のデータ演
    算装置。
  3. 【請求項3】 前記生成手段は、 変更する前記アドレスの範囲を保持する第1の保持手段
    と、 前記加算値を保持する第2の保持手段と、 前記アドレスの変更の幅を保持する第3の保持手段と、 前記アドレスの変更の回数を保持する第4の保持手段
    と、 前記アドレスの変更の最大の回数を保持する第5の保持
    手段とを備えることを特徴とする請求項2に記載のデー
    タ演算装置。
  4. 【請求項4】 前記生成手段は、前記第2の保持手段に
    より保持されている加算値、前記第4の保持手段により
    保持されている変更の回数、または前記第5の保持手段
    により保持されている変更の最大の回数に基づいて、フ
    ラグを生成するフラグ生成手段をさらに備え、 前記プログラムは、前記フラグに対応して前記生成手段
    を制御することを特徴とする請求項3に記載のデータ演
    算装置。
JP9138333A 1997-05-28 1997-05-28 データ演算装置 Withdrawn JPH10333971A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP9138333A JPH10333971A (ja) 1997-05-28 1997-05-28 データ演算装置
US09/085,434 US6378057B1 (en) 1997-05-28 1998-05-27 Data processing apparatus
KR1019980019369A KR19980087428A (ko) 1997-05-28 1998-05-28 데이터 연산 장치 및 데이터 연산 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9138333A JPH10333971A (ja) 1997-05-28 1997-05-28 データ演算装置

Publications (1)

Publication Number Publication Date
JPH10333971A true JPH10333971A (ja) 1998-12-18

Family

ID=15219464

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9138333A Withdrawn JPH10333971A (ja) 1997-05-28 1997-05-28 データ演算装置

Country Status (3)

Country Link
US (1) US6378057B1 (ja)
JP (1) JPH10333971A (ja)
KR (1) KR19980087428A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008293378A (ja) * 2007-05-25 2008-12-04 Panasonic Corp プログラム書き換え装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5586281A (en) * 1992-10-27 1996-12-17 Sharp Kabushiki Kaisha Data driven type information processing apparatus
JP3740195B2 (ja) * 1994-09-09 2006-02-01 株式会社ルネサステクノロジ データ処理装置
JP3698754B2 (ja) * 1995-04-12 2005-09-21 シャープ株式会社 データ駆動型情報処理装置
US6115761A (en) * 1997-05-30 2000-09-05 Lsi Logic Corporation First-In-First-Out (FIFO) memories having dual descriptors and credit passing for efficient access in a multi-processor system environment

Also Published As

Publication number Publication date
US6378057B1 (en) 2002-04-23
KR19980087428A (ko) 1998-12-05

Similar Documents

Publication Publication Date Title
EP0236762B1 (en) Multiprocessor system
US4617625A (en) Vector processor
US8726292B2 (en) System and method for communication in a multithread processor
US5388230A (en) Parallel processor having multi-processing units either connected or bypassed in either series or parallel by the use of bus switching
CN114115507B (zh) 存储器及写数据的方法
US5708839A (en) Method and apparatus for providing bus protocol simulation
JPH10333971A (ja) データ演算装置
JPH11272645A (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
US6665770B2 (en) Device and method for updating a pointer value by switching between pointer values
JPH06274408A (ja) メモリインタフェイス装置
JPH1115801A (ja) データ演算装置および方法、並びに伝送媒体
JP3625060B2 (ja) インストラクション実行装置及びインストラクション実行方法
JP2799528B2 (ja) マルチプロセッサシステム
JPH03147020A (ja) データ処理装置
JPH04184535A (ja) 並列演算装置
JPH10326258A (ja) データ演算システムおよび方法
JPH11120760A (ja) 半導体記憶装置
JP2550964B2 (ja) 記憶アクセス制御方式
JPH10301844A (ja) メモリ制御装置、メモリ制御方法及びメモリ制御プログラムを記憶した媒体
JP2000040143A (ja) 演算回路内蔵半導体記憶装置
JPH0830508A (ja) 画像処理装置
JPH04188323A (ja) マイクロ命令読み出し方式
JPS61262977A (ja) 画像処理装置
JPH0512097A (ja) メモリアクセス方法及び回路

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20040803