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

データ処理装置

Info

Publication number
JPH04299419A
JPH04299419A JP6418791A JP6418791A JPH04299419A JP H04299419 A JPH04299419 A JP H04299419A JP 6418791 A JP6418791 A JP 6418791A JP 6418791 A JP6418791 A JP 6418791A JP H04299419 A JPH04299419 A JP H04299419A
Authority
JP
Japan
Prior art keywords
processing
division
parallelism
micro
data
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
JP6418791A
Other languages
English (en)
Inventor
Ryuichi Takahashi
高橋 ▲隆▼一
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP6418791A priority Critical patent/JPH04299419A/ja
Publication of JPH04299419A publication Critical patent/JPH04299419A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はデータ処理装置に関し、
特に処理全体がループしていることで発生するデータ依
存関係を保存し、しかも十分な並列度を実現する新規な
データ処理装置に関する。
【0002】
【従来の技術】図5は従来のデータ処理装置の一例にお
けるデータの流れを示す図、図6は従来技術における制
御ステップへの分割を示すデータの流れ図である。
【0003】従来の技術で構成されるデータ処理装置で
は、(文献):N.Park  and  A.C.P
arker:“Sehwa:A  Software 
 Package  for  Synthesis 
 of  Pipelines  from  Beh
avioral  Specifications”,
IEEE  Trans.CAD,vol.7  No
.3,March  1988に示されているように、
図5に示したような一連の処理が与えられた場合は、図
6に示したように各マイクロ操作に対応するノードに対
し、各マイクロ操作の所要時間で計った出力端までの経
路長を計算し、これが非増加になる順にソートした上で
、各制御ステップに許される計算時間を超えないように
マイクロ操作をまとめることにより制御ステップへの分
割を行って、それを適当なレイテンシーを定めて組分け
し、多重に実行するハードウェア資源を備えることによ
って実現していた。具体的に図6においては、レイテン
シーは3と定められており、S1,S2,S3の並びが
組をなし、複数の組の同じ名前を付けられた制御ステッ
プが並列に実行されるような多重化が行われていた。
【0004】
【発明が解決しようとする課題】上述した従来技術で構
成されるデータ処理装置では、図5に示されたようなル
ープのない一連の処理のみを対象としていたため、内在
するデータ依存関係を保存している限り、特に問題は発
生しなかった。しかし、全体がループしている場合は、
ある繰り返しと次の繰り返しとの間で、古い繰り返しが
まだ結果を得ていないにもかかわらず次の繰り返しを開
始してしまう可能性があるという問題が生じる。具体的
に、図5の一連の処理で得られるA(N+1)とV(N
+1)は、Nがインクリメントされる次の繰り返しでは
A(N),V(N)であって、次の繰り返しの一連の処
理のはじめの方で必要な値である。このような問題は、
特にこのデータ処理装置がプロセッサであった場合は、
命令解釈実行サイクルというループにおけるハザード、
具体的には実行ユニットがまだ結果を主記憶装置に格納
していないにもかかわらず、プリフェッチユニットがそ
の値を用いて命令が格納されているアドレスを計算しよ
うとする場合などとして問題にされる状況であり、RA
W,WAR,WAWなどと分類されて論議されていた。 ここにRAWは書き込みが済んでいないのにこれを読も
うとする状況、WARは読み出しが済んでいないにもか
かわらず書き込みを行ってしまう状況、WAWはまだ書
き込みが済んでいないのに新しい書き込みを行ってしま
う状況である。この状況が現実に発生すると、プロセッ
サの場合は処理対象である機械語のデータ依存関係を破
壊することになり、プログラマが期待する結果が保証さ
れなくなる。
【0005】本発明の目的は、全体がループし、繰り返
し行われることで発生するデータ依存関係を保存し、し
かも十分な並列度を達成可能なデータ処理装置を提供す
ることにある。
【0006】
【課題を解決するための手段】本発明のデータ処理装置
は複数のマイクロ操作からなる一連の処理を所要の回数
繰り返すことによって目的とするデータ処理を行う機能
仕様を前記マイクロ操作に内在するデータ依存関係に注
目して一定の時間内で一度割り当てられたマイクロ操作
を実行完了する制御ステップに分割し更にこれを複数の
組にまとめて各組が独立に前記一連の処理を遂行するた
めのハードウェア資源と、前記機能仕様で処理しようと
する処理対象ごとに対応付けられる各プロセスに固有で
あり且つ各繰り返しに対応付けられるステータス情報を
格納する複数のレジスタとを備え、前記各組がそれぞれ
異なる前記プロセスを多重に実行することを特徴とする
。そして、1個の前記レジスタと、前記一連の処理を繰
り返し行うために同一のプロセスの、異なる繰り返しの
間で発生するデータ依存関係を保存するためのインタロ
ック機構を備え、前記複数の組への分割のうち、この各
分割と処理対象とで定まる前記インタロック機構の動作
頻度から計算される並列度の期待値が十分である分割が
行われていてもよい。
【0007】
【作用】全体がループし、処理が複数回繰り返し行われ
ることで目的とするデータ処理を行おうとするため、あ
る繰り返しと次の繰り返しの間でデータ依存関係が発生
する場合でも、請求項1記載の発明においては、各プロ
セス固有で、上記のデータ依存関係に係わるステータス
情報、すなわち次の繰り返しで必要になるデータがプロ
セスごとに記録され、他方で一連の処理の後の方の処理
を行う資源がこの結果を生成するまで、はじめの方の資
源は別のプロセスを実行しているので、高い並列度を有
する処理が行われる。また請求項2記載の発明において
は、単一のプロセスを対象としているためインタロック
機構によって部分的に処理が止められるが、可能な複数
の組への分割のうち、分割と処理対象とで定まるインタ
ロック機構の動作頻度から計算される並列度の期待値が
十分であるような分割を選んでの実施が行われるので、
やはり、高い並列度を有するデータ処理が可能になる。 これらは、複数の処理対象を同時に扱い得るかで使い分
ける。
【0008】
【実施例】次に、本発明の実施例について図面を参照し
て説明する。図1は本発明の第1の実施例におけるデー
タの流れを示す図、図2は図1における複数のプロセス
の多重処理過程を示すタイミングチャートである。
【0009】図1において、破線120,122,12
4と一点鎖線121,123は制御ステップへの分割を
示している。このうち一点鎖線121,123は、従来
技術ではレイテンシーが2であって2個ずつの制御ステ
ップが組にまとめられていることを示している。これに
対し、本実施例のデータ処理装置では、全体がループし
て複数回、一連の処理を行うことで目的とするデータ処
理を行うため、マイクロ操作133で得られる結果を次
の繰り返しでマイクロ操作130が用い、マイクロ操作
137で得られる結果を次の繰り返しでマイクロ操作1
31が用いるというデータ依存関係が発生している。図
1に示すように本実施例では、これらのデータ依存関係
が存在するので、マイクロ操作130,131が次の繰
り返しで必要とするデータを各処理対象に対応付けられ
るプロセスに固有なステータス情報としてレジスタ10
1に格納するよう構成されている。信号線110,11
2はこのステータス情報をレジスタ101に格納するた
めに用いられる。マイクロ操作133,137がこれら
を生成するまでの間、一点鎖線121で区切られた一連
の処理のはじめの組は異なる処理対象に対応付けられる
別のプロセスの実行を行う。本実施例では、このような
プロセスは合計3個あり、ステータス情報を格納するレ
ジスタは101,102,103の計3個が用意されて
いる。
【0010】図2のタイミングチャートはこのような処
理過程を示している。処理160,161,162は、
ある例えばN回目の一連の処理を示しており、処理17
0,171,172は同じプロセスの次の(N+1)回
目の一連の処理の繰り返しを示している。信号線140
,141はこれらの繰り返しの間でのステータス情報の
受け渡しを示している。信号線150,151は別のプ
ロセスにおける同様なデータ受け渡しを表している。
【0011】本実施例はこのようにして、全体がループ
しているにもかかわらず、空き時間を他のプロセスに割
り当てることにより、もとの3倍のスループットを実現
している。
【0012】図3は本発明の第2の実施例におけるデー
タの流れを示す図、図4は図3における多重処理過程を
示すタイミングチャートである。
【0013】第2の実施例が実現すべき機能仕様は第1
の実施例のそれと変わらない。すなわち、全体がループ
して複数回の繰り返し動作を行うことで目的とするデー
タ処理を実現するため、マイクロ操作233,237が
生成する結果をそれぞれマイクロ操作230,231が
必要としている。
【0014】本実施例では、あくまで同一のプロセスを
対象とするが、分割とこれに対応するインタロック機構
の動作頻度から計算する並列度が十分であるものを選ん
で構成されている点に特徴がある。
【0015】図3において、フリップフロップ(F/F
)200,201はインタロック機構を実現している。 すなわち、マイクロ操作233は処理を終えるとフリッ
プフロップ201をセットし、次の繰り返しでマイクロ
操作230が必要とするデータはすでに得られているこ
とを示す。また、マイクロ操作237は同様にフリップ
フロップ200をセットする。マイクロ操作230,2
31はこれらのフリップフロップが立てられていること
を確認してからこれをリセットして処理を開始する。
【0016】もちろん、図には示していないが、第1の
実施例で用いたようなステータス情報受け渡しのための
レジスタは用意されている。ただし、これがただ1つの
プロセス用である点が第1の実施例と相違している。こ
の実施例において破線234,235で示されているデ
ータの流れは、マイクロ操作236と237は条件に従
っていずれかが実行されればよいことを示している。し
たがって、マイクロ操作236が選択されたときは、マ
イクロ操作237,信号線212に係わるインタロック
機構は必要がなくなる。この例では、この選択はマイク
ロ操作238が行うとしており、マイクロ操作236が
選択されることが定まると、信号線214によってフリ
ップフロップ200はただちにセットされる。
【0017】図4に示したタイミングチャートは、処理
270の開始には信号線212が係わるインタロック機
構が係わっているが、処理271のあとは上述した選択
が行われるため、信号線214が動作して処理280が
すぐに起動される様子を示している。なお、200,2
01はフリップフロップとしているが、このタイミング
チャートから明らかなように、現実には適当なフォワー
ディングの機構を用いることはいうまでもない。
【0018】第2の実施例においては、並列度の期待値
は各分割と処理対象で定まるインタロック機構の動作頻
度から例えば以下に示すように計算される。すなわち、
複数の条件分岐で左右される経路がありそれぞれが選択
される可能性が、m1,m2,…,mN(ただしm1+
m2+…+mN=1)であり、それぞれに対応するレイ
テンシーがn1,n2,…,nN、この分割に対応する
処理全体の長さを期待される最小のレイテンシーで割っ
た値がPだったとすれば、
【0019】
【0020】と計算される。Pは単純には各組を構成す
る制御ステップ数が等しいなら、組への分割の数と考え
てよい。この実施例の場合、マイクロ操作236と23
7のいずれが実行されるかの確率がこの順に0.8:0
.2だったとすると、一点鎖線221,223によって
3個の組に分割され、次の繰り返しが起動されるまでの
制御ステップ数÷2がそれぞれ2.5、2であるため3
/(2×0.8+2.5×0.2) から1.3になる。この分割での上限は明らかに1.5
である。
【0021】どのようなインタロック機構が必要になる
かはどのような組に分割するかによって定まる。この実
施例の場合、一点鎖線223のみによって組への分割を
行えばインタロック機構は必要なくなる。この場合、並
列度の期待値は上述の上限1.5になる。
【0022】第2の実施例ではこのように、可能な組へ
の分割ごとに並列度の期待値を計算し、これが十分であ
るような分割を選んで実施する。なお、インタロック機
構を含む必要なハードウェア資源の量が同時に考慮可能
であることはいうまでもない。
【0023】第1の実施例と第2の実施例とを比較する
と、前者の方が、この場合3という並列度を容易に達成
できているが、他に処理対象がない場合やステータスを
記録するために必要な資源が多くなる場合は後者の方が
有利になる。
【0024】請求項1に記載の発明の適用対象は、別に
プロセッサに限られているわけではないが、RISCマ
シンを多重のプロセスを同時に実行できるよう改造する
ことにも応用できる。また、請求項2記載の発明の自明
な応用は、自動設計技術におけるシステムレベルの自動
パイプライン化である。
【0025】
【発明の効果】以上説明したように本発明は、全体がル
ープし処理が複数回繰り返し行われることで目的とする
データ処理を行おうとするため、ある繰り返しと次の繰
り返しの間でデータ依存関係が発生する場合でも、各プ
ロセスに固有で、上記のデータ依存関係に係わるステー
タス情報がプロセスごとに記録され、他方で一連の処理
の後の方の処理を行う資源がこの結果を生成するまで、
はじめの方の資源は別のプロセスを実行しているので、
高い並列度を有する処理が行われる。また、単一のプロ
セスを対象とし、可能な複数の組への分割のうち、分割
と処理対象で定まるインタロック機構の動作頻度から計
算される並列度の期待値が十分であるような分割を選ん
で実施するので、高い並列度を有するデータ処理が可能
になるという効果を有する。
【図面の簡単な説明】
【図1】本発明の第1の実施例におけるデータの流れを
示す図である。
【図2】図1における複数のプロセスの多重処理過程を
示すタイミングチャートである。
【図3】本発明の第2の実施例におけるデータの流れを
示す図である。
【図4】図3における多重処理過程を示すタイミングチ
ャートである。
【図5】従来のデータ処理装置の一例におけるデータの
流れを示す図である。
【図6】従来技術における制御ステップへの分割を示す
データの流れ図である。
【符号の説明】
101,〜103    レジスタ 110,〜113,140,141,150,151 
   ステータス情報受け渡し用信号線 120,〜124,220,〜224    制御ステ
ップへの分割を示す線 130,〜137,230,〜233,236,〜23
8    マイクロ操作 160,〜162,260,〜262    ある繰り
返しにおける一連の処理

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】  複数のマイクロ操作からなる一連の処
    理を所要の回数繰り返すことによって目的とするデータ
    処理を行う機能仕様を前記マイクロ操作に内在するデー
    タ依存関係に注目して一定の時間内で一度割り当てられ
    たマイクロ操作を実行完了する制御ステップに分割し更
    にこれを複数の組にまとめて各組が独立に前記一連の処
    理を遂行するためのハードウェア資源と、前記機能仕様
    で処理しようとする処理対象ごとに対応付けられる各プ
    ロセスに固有であり且つ各繰り返しに対応付けられるス
    テータス情報を格納する複数のレジスタとを備え、前記
    各組がそれぞれ異なる前記プロセスを多重に実行するこ
    とを特徴とするデータ処理装置。
  2. 【請求項2】  1個の前記レジスタと、前記一連の処
    理を繰り返し行うために同一のプロセスの、異なる繰り
    返しの間で発生するデータ依存関係を保存するためのイ
    ンタロック機構を備え、前記複数の組への分割のうち、
    この各分割と処理対象とで定まる前記インタロック機構
    の動作頻度から計算される並列度の期待値が十分である
    分割が行われていることを特徴とする請求項1記載のデ
    ータ処理装置。
JP6418791A 1991-03-28 1991-03-28 データ処理装置 Pending JPH04299419A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6418791A JPH04299419A (ja) 1991-03-28 1991-03-28 データ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6418791A JPH04299419A (ja) 1991-03-28 1991-03-28 データ処理装置

Publications (1)

Publication Number Publication Date
JPH04299419A true JPH04299419A (ja) 1992-10-22

Family

ID=13250808

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6418791A Pending JPH04299419A (ja) 1991-03-28 1991-03-28 データ処理装置

Country Status (1)

Country Link
JP (1) JPH04299419A (ja)

Similar Documents

Publication Publication Date Title
EP4220380B1 (en) Hardware accelerated machine learning
JP4292198B2 (ja) 実行スレッドをグループ化するための方法
US20170323224A1 (en) Apparatus for hardware accelerated machine learning
US7031994B2 (en) Matrix transposition in a computer system
JP3984786B2 (ja) 異なる待ち時間を伴う命令のスケジューリング
US8707320B2 (en) Dynamic partitioning of data by occasionally doubling data chunk size for data-parallel applications
CN110728578A (zh) 区块链交易的并行执行方法、系统及存储介质
US8438370B1 (en) Processing of loops with internal data dependencies using a parallel processor
CN112711478B (zh) 基于神经网络的任务处理方法、装置、服务器和存储介质
US20050223204A1 (en) Data processing apparatus adopting pipeline processing system and data processing method used in the same
JP2011086298A (ja) プログラム・フロー制御
JPH0863355A (ja) プログラム制御装置及びプログラム制御方法
US20130145373A1 (en) Information processing apparatus, information processing method, and storage medium
KR20220062068A (ko) 멀티-레벨 멀티-스트라이딩을 통한 직접 메모리 액세스 아키텍처
JPH0512750B2 (ja)
KR19980020676A (ko) 디에스피의 명령어블록 반복처리 방법
JP2009025973A (ja) 動作合成装置、半導体集積回路の製造方法、動作合成方法、動作合成制御プログラムおよび可読記録媒体
JPH04299419A (ja) データ処理装置
JPS63254530A (ja) 情報処理装置
US8924654B1 (en) Multistreamed processor vector packing method and apparatus
US20080126754A1 (en) Multiple-microcontroller pipeline instruction execution method
JPH11232131A (ja) データ処理装置のテスト方法
CN117827291A (zh) 一种基于乱迭代序可重构处理器的数据处理方法
JPH03135630A (ja) 命令スケジューリング方式
JP2002278774A (ja) プロセッサ内の機能単位の制御時に命令語を生成する方法と装置