JP3763700B2 - 高位合成装置 - Google Patents

高位合成装置 Download PDF

Info

Publication number
JP3763700B2
JP3763700B2 JP13052299A JP13052299A JP3763700B2 JP 3763700 B2 JP3763700 B2 JP 3763700B2 JP 13052299 A JP13052299 A JP 13052299A JP 13052299 A JP13052299 A JP 13052299A JP 3763700 B2 JP3763700 B2 JP 3763700B2
Authority
JP
Japan
Prior art keywords
thread
synchronous communication
scheduling
inter
communication operation
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 - Fee Related
Application number
JP13052299A
Other languages
English (en)
Other versions
JP2000057180A (ja
Inventor
涼二 櫻井
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.)
Sharp Corp
Original Assignee
Sharp 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 Sharp Corp filed Critical Sharp Corp
Priority to JP13052299A priority Critical patent/JP3763700B2/ja
Publication of JP2000057180A publication Critical patent/JP2000057180A/ja
Application granted granted Critical
Publication of JP3763700B2 publication Critical patent/JP3763700B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、動作記述によって表現された半導体集積回路の論理回路を論理合成する高位合成装置に関し、特に、同期データ通信を表す記述を含んだ動作記述から論理回路を合成する高位合成装置に関する。
【0002】
【従来の技術】
近年、半導体集積回路の高密度化、多機能化に伴い、その回路規模は増大する傾向にあり、回路設計に要する時間も増加しつつある。この回路設計に要する時間を短縮する方法の1つとして、ハードウェア記述言語(HDL)を使用して回路設計を行なう方法が挙げられる。
【0003】
このHDL記述から論理回路を合成する装置の中で、並列に動作する複数のスレッドと、これら複数のスレッド間の同期データ通信との表現を許容する装置に関する技術がいくつか提案されている。その1つとして、特開平9−249152号公報に開示された発明がある。
【0004】
この特開平9−249152号公報に開示された発明は、動作記述として2つのプロセス間でデータを同期して転送するプロトコルを定義した命令(send,receive)を用意する。そして、動作記述の中に単にデータを送信する命令(send)、またはデータを受信する命令(receive)を記述し、論理回路を合成する際にこれらの同期データ通信のために各スレッドに対応する回路に対してハンドシェイクを行なう回路を生成し、スレッド間での同期データ通信が確実に行なわれる回路を合成するものである。なお、このハンドシェイクを用いた回路を合成した場合、データの送信側および受信側の両方がデータを転送できる状態になって初めて転送が行なわれる。
【0005】
また、他の従来技術として、「Optimal Synthesis of Multichip Architecture (ICCAD'92,pp238-241)」に記載されたものがある。この文献には、スレッド間の同期データ通信を実現するために、ハンドシェイク回路を生成せずにスレッド間同期データ通信が確実に行なわれる回路を生成する方法が記載されている。
【0006】
【発明が解決しようとする課題】
しかし、上述した特開平9−249152号公報に開示された発明は、スレッド間同期データ通信に関する記述に対して、必ずハンドシェイク回路が合成される。このハンドシェイク回路は、送信側が1つのデータ線に対してデータの準備ができたことを示す信号線と、受信側がデータを受け取ったことを示す信号線との2本の制御用信号線が必要となる。したがって、動作記述から論理回路を合成する際、ハンドシェイク回路でなくても実現できる場合であっても必ずハンドシェイク回路が生成されるため、回路規模が大きくなり、通信速度も遅くなるという問題点があった。
【0007】
また、「Optimal Synthesis of Multichip Architecture 」に記載されている技術は、ハンドシェイク回路を生成せずにスレッド間同期データ通信を実現するために、予めスレッド間同期通信オペレーションを含む全スレッドの全オペレーションについて動作合成の際実施されるスケジューリングが行なわれる。したがって、動作合成の対象となる動作記述が非常に大きくなった場合、スケジューリング対象も大きくなり、それに伴いスケジューリングに要する時間も多大になるという問題点があった。
【0008】
本発明は、上記問題点を解決するためになされたものであり、第1の目的は、ハンドシェイクなしにスレッド間同期通信が可能な動作記述に対して、高速にデータ通信が可能な論理回路を確実に合成でき、回路規模の縮小を図ることが可能な高位合成装置を提供することである。
【0009】
本発明の第2の目的は、誤動作が起こらないようにパイプライン動作を行なう回路を合成することが可能な高位合成装置を提供することである。
【0010】
本発明の第3の目的は、ハンドシェイクなしにスレッド間同期通信が可能な動作記述に対して、高速にデータ通信が可能な論理回路を確実に合成でき、回路規模の縮小を図ることが可能な高位合成方法を提供することである。
【0011】
本発明の第4の目的は、ハンドシェイクなしにスレッド間同期通信が可能な動作記述に対して、高速にデータ通信が可能な論理回路を確実に合成でき、回路規模の縮小を図ることが可能な高位合成プログラムを記録した媒体を提供することである。
【0012】
【課題を解決するための手段】
請求項1に記載の高位合成装置は、スレッド間同期通信を行なう命令を含んだ動作記述から論理合成を行なう高位合成装置であって、予め選択されたスレッドに含まれる動作記述に基づいてスレッド間同期通信オペレーションのスケジューリングを行なうための同期通信スケジューリング手段と、同期通信スケジューリング手段によってスケジューリングされたスレッド間同期通信オペレーションに基づいてスレッド毎に動作合成制約情報を生成するための制約情報生成手段と、制約情報生成手段によって生成された動作合成制約情報に基づいてスレッド毎の動作合成をおこなうための動作合成手段とを含み、同期通信スケジューリング手段は、予め選択されたスレッドに含まれるスレッド間同期通信オペレーションを抽出するためのスレッド間同期通信オペレーション抽出手段と、スレッド間同期通信オペレーション抽出手段によって抽出されたスレッド間同期通信オペレーションに基づいて、スレッド内における同期通信オペレーションの順序を示す有向エッジを生成するためのスレッド内同期通信オペレーション間エッジ生成手段と、スレッド間同期通信オペレーション抽出手段によって抽出されたスレッド間同期通信オペレーションに基づいて、スレッド間における送受信の関係を示す有向エッジを生成するためのスレッド間同期通信オペレーション組間エッジ生成手段と、スレッド内同期通信オペレーション間エッジ生成手段およびスレッド間同期通信オペレーション組間エッジ生成手段によって生成された有向エッジにスケジューリングサイクル制約を付加するためのスケジューリングサイクル制約付加手段と、スケジューリングサイクル制約付加手段によって付加されたスケジューリングサイクル制約に基づいてスレッド間同期通信オペレーションのスケジューリングを行なうためのスレッド間同期通信スケジューリング手段とを含む。
【0013】
動作合成手段は、同期通信スケジューリング手段によるスケジューリング結果と、制約情報生成手段によって生成された動作合成制約情報とに基づいてスレッド毎に動作合成するので、高速でデータ通信が可能な論理回路を確実に合成でき、回路規模の縮小を図ることが可能となる。
【0015】
スレッド間同期通信スケジューリング手段は、スケジューリングサイクル制約付加手段によって付加されたスケジューリングサイクル制約に基づいてスレッド間同期通信オペレーションのスケジューリングを行なうので、さらに容易にスレッド間同期通信オペレーションのスケジューリングが可能になる。
【0016】
請求項に記載の高位合成装置は、請求項記載の高位合成装置であって、スケジューリングサイクル制約付加手段は、スレッド毎に動作記述を動作合成するためのスレッド毎動作合成手段と、スレッド毎動作合成手段による動作合成結果に基づいて同期通信オペレーション間のスケジューリングサイクル制約を抽出するためのスケジューリングサイクル制約抽出手段とを含む。
【0017】
スケジューリングサイクル制約抽出手段は、スレッド毎動作合成手段による動作合成結果に基づいて同期通信オペレーション間のスケジューリングサイクル制約を抽出するので、さらに容易にスレッド間同期通信オペレーションのスケジューリングが可能になる。
【0018】
請求項に記載の高位合成装置は、請求項記載の高位合成装置であって、スケジューリングサイクル制約抽出手段は、スレッド毎動作合成手段によって生成されたスレッド内におけるノードのスケジューリングサイクルの差からスレッド内同期通信間スケジューリング制約を抽出するためのスレッド内同期通信間スケジューリング制約抽出手段と、スレッド間における同期通信オペレーションに対して所定値をスレッド間同期通信間スケジューリング制約として抽出するスレッド間同期通信スケジューリング制約抽出手段とを含む。
【0019】
スレッド内同期通信間スケジューリング制約抽出手段は、スレッド毎動作合成手段によって生成されたスレッド内におけるノードのスケジューリングサイクルの差からスレッド内同期通信間スケジューリング制約を抽出するので、さらに容易にスレッド間同期通信オペレーションのスケジューリングが可能になる。
【0020】
請求項に記載の高位合成装置は、請求項1〜3のいずれかに記載の高位合成装置であって、スレッド間同期通信スケジューリング手段は、同じスケジューリングサイクル内で同じ種類のノードによるオペレーション数を制限してスレッド間同期通信オペレーションのスケジューリングを行なう。
【0021】
スレッド間同期通信スケジューリング手段は、同じスケジューリングサイクル内で同じ種類のノードによるオペレーション数を制限してスレッド間同期通信オペレーションのスケジューリングを行なうので、スレッド間のバス幅等を小さくすることが可能となり、合成される論理回路の回路規模を小さくすることが可能となる。
【0022】
請求項に記載の高位合成装置は、スレッド間同期通信を行なう命令を含んだ動作記述から論理合成を行なう高位合成装置であって、予め選択されたスレッドに含まれる動作記述に基づいてスレッド間同期通信オペレーションのスケジューリングを行なうための同期通信スケジューリング手段と、同期通信スケジューリング手段によってスケジューリングされたスレッド間同期通信オペレーションに基づいてスレッド毎に動作合成制約情報を生成するための制約情報生成手段と、制約情報生成手段によって生成された動作合成制約情報に基づいてスレッド毎の動作合成をおこなうための動作合成手段とを含み、同期通信スケジューリング手段は、予め選択されたスレッドに含まれるスレッド間同期通信オペレーションを抽出するためのスレッド間同期通信オペレーション抽出手段と、スレッド間同期通信オペレーション抽出手段によって抽出されたスレッド間同期通信オペレーションに基づいて、スレッド内における同期通信オペレーションの順序を示す有向エッジを生成するためのスレッド内同期通信オペレーション間エッジ生成手段と、スレッド間同期通信オペレーション抽出手段によって抽出されたスレッド間同期通信オペレーションに基づいて、スレッド間における送受信の関係を示す有向エッジを生成するためのスレッド間同期通信オペレーション組間エッジ生成手段と、スレッド内同期通信オペレーション間エッジ生成手段およびスレッド間同期通信オペレーション組間エッジ生成手段によって生成された有向エッジにパイプラインスループットサイクルを考慮してスケジューリングサイクル制約を付加するためのパイプライン化スケジューリングサイクル制約付加手段と、パイプライン化スケジューリングサイクル制約付加手段によって付加されたスケジューリングサイクル制約に基づいてスレッド間同期通信オペレーションのスケジューリングを行い、パイプラインスループットサイクルを考慮してスケジューリング結果のスケジューリングサイクルを調整するためのパイプライン化同期通信スケジューリング手段とを含む。
【0023】
パイプライン化同期通信スケジューリング手段は、パイプラインスループットサイクルを考慮してスケジューリング結果のスケジューリングサイクルを調整するので、動作合成手段は誤動作が起こらないようにパイプライン動作を行なう回路を合成することが可能となる。
【0024】
請求項に記載の高位合成装置は、請求項記載の高位合成装置であって、パイプライン化同期通信スケジューリング手段は、スケジューリング結果内の送信を示すノードと受信を示すノードとのスケジューリングサイクルの差がパイプラインスループットサイクルとなるようにスケジューリングサイクルを調整する。
【0025】
パイプライン化同期通信スケジューリング手段は、スケジューリング結果内の送信を示すノードと受信を示すノードとのスケジューリングサイクルの差がパイプラインスループットサイクルとなるようにスケジューリングサイクルを調整するので、動作合成手段は誤動作が起こらないようにパイプライン動作を行なう回路を合成することが可能となる。
【0026】
請求項に記載の高位合成装置は、請求項または記載の高位合成装置であって、パイプライン化同期通信スケジューリング手段は同じスケジューリングサイクル内で同じ種類のノードによるオペレーション数を制限してスレッド間同期通信オペレーションのスケジューリングを行なう。
【0027】
パイプライン化同期通信スケジューリング手段は、同じスケジューリングサイクル内で同じ種類のノードによるオペレーション数を制限してスレッド間同期通信オペレーションのスケジューリングを行なうので、スレッド間のバス幅等を小さくすることが可能となり、合成される論理回路の回路規模を小さくすることが可能となる。
【0032】
【発明の実施の形態】
図1は、本発明の高位合成装置の外観例を示す図である。高位合成装置は、コンピュータ本体1、グラフィックディスプレイ装置2、磁気テープ4が装着される磁気テープ装置3、キーボード5、マウス6、CD−ROM(Compact Disc-Read Only Memory )8が装着されるCD−ROM装置7、および通信モデム9を含む。高位合成プログラムは、磁気テープ4またはCD―ROM8等の記憶媒体によって供給される。高位合成プログラムはコンピュータ本体1によって実行され、操作者はグラフィックディスプレイ装置2を見ながらキーボード5またはマウス6を操作することによって高位合成を行う。また、高位合成プログラムは他のコンピュータより通信回線を経由し、通信モデム9を介してコンピュータ本体1に供給されてもよい。
【0033】
図2は、本発明の高位合成装置の構成例を示すブロック図である。図1に示すコンピュータ本体1は、CPU(Central Processing Unit )10、ROM(Read Only Memory)11、RAM(Random Access Memory)12およびハードディスク13を含む。CPU10は、グラフィックディスプレイ装置2、磁気テープ装置3、キーボード5、マウス6、CD−ROM装置7、通信モデム9、ROM11、RAM12またはハードディスク13との間でデータを入出力しながら処理を行う。磁気テープ4またはCD−ROM8に記録された高位合成プログラムは、CPU10により磁気テープ装置3またはCD−ROM装置7を介して一旦ハードディスク13に格納される。CPU10は、ハードディスク13から適宜高位合成プログラムをRAM12にロードして実行することによって高位合成を行う。
【0034】
以下に各実施の形態における高位合成装置について説明するが、図1に示す高位合成装置の外観および図2に示す高位合成装置の構成は各実施の形態において共通である。
【0035】
(実施の形態1)
図3は、本発明の実施の形態1における高位合成装置の概略構成を示すブロック図である。この高位合成装置は、動作記述21からハンドシェイクなしで同期通信が可能なスレッド間同期通信オペレーションを選択するためのスケジューリング可能スレッド間同期通信オペレーション選択部22、スケジューリング可能スレッド間同期通信オペレーション選択部22によって選択された同期通信可能なスレッド間同期通信オペレーションのスケジューリングを行なうためのスレッド間同期通信オペレーションスケジューリング部23、スレッド間同期通信オペレーションスケジューリング部23によって生成された同期通信オペレーションのスケジューリング結果に基づいてスレッド毎の動作合成制約情報を生成するためのスレッド毎動作合成制約情報生成部24、およびスレッド毎動作合成制約情報生成部24によって生成された動作合成制約情報に基づいて各スレッド毎に動作合成を行なうためのスレッド毎動作合成部25を含む。
【0036】
図4は、本実施の形態における高位合成装置の処理手順を説明するためのフローチャートである。まず、スケジューリング可能スレッド間同期通信オペレーション選択部22は、ハンドシェイクなしでスケジューリング可能なスレッド間の同期通信オペレーションを選択する(S10)。本実施の形態における高位合成装置においては、この選択は人手によって行なわれる。たとえば、図5に示す動作記述がスケジューリング可能スレッド間同期通信オペレーション選択部22に入力された場合、人手によってスレッド111、112および113が選択されたものとする。
【0037】
ここで、図5に示す動作記述について簡単に説明する。図5に示す動作記述101において、RECV(IN)は通信路(以下、チャネルと呼ぶ)INを介してデータを受信する記述であり、その受信データをINDに代入することを示している。次の動作記述102において、PAR文によって複数のプロセスを並列に動作させることを定義している。動作記述102の中の動作記述111〜113は、それぞれスレッド(PAR文によって定義された各々のプロセス上で動作する記述)を示している。この各スレッド内の記述についてさらに詳細に説明する。
【0038】
スレッド111において、最初の1〜2行目の記述はそれぞれ、INDに“5”を加算してD1に代入すること、およびD1からINDを除算してD2に代入することを示している。また、3〜4行目の記述はそれぞれ、データD1をチャネルCH1を介して送信すること、およびデータD2をチャネルCH2を介して送信することを示している。さらに5行目において、チャネルCH3を介して受信したデータをOUTDに代入することを示している。
【0039】
スレッド112において、最初の1行目の記述は、チャネルCH2から受信したデータをD3に代入することを示している。また、2行目において、D3に“4”を加算してD4に代入することを示している。さらに3行目において、データD4をチャネルCH4を介して送信することを示している。
【0040】
スレッド113において、最初の1〜2行目はそれぞれ、チャネルCH1からデータを受信してD5に代入すること、およびチャネルCH4からデータを受信してD6に代入することを示している。また、3行目において、D5にD6を乗算してD7に代入することを示している。さらに4行目において、データD7をチャネルCH3を介して送信することを示している。
【0041】
最後の記述103は、データOUTDをチャネルOUTを介して送信することを示している。
【0042】
再び図4に戻り、本実施の形態における高位合成装置の処理手順の説明を続ける。スレッド間同期通信オペレーションスケジューリング部23は、ステップS10において選択されたスレッド間の同期通信オペレーションのスケジューリングを行なう(S11)。
【0043】
このスレッド間同期通信オペレーションスケジューリング部23をさらに詳細に説明するための概略構成図を図6に示す。スレッド間同期通信オペレーションスケジューリング部23は、スケジューリング可能スレッド間同期通信オペレーション選択部22から出力された動作記述27(図5のスレッド111〜113がこれに相当する)の中からスレッド間の同期通信オペレーションを抽出するためのスレッド間同期通信オペレーション抽出部28、スレッド間同期通信オペレーション抽出部28によって抽出されたスレッド間同期通信オペレーションに基づいてスレッド内の同期通信オペレーション間のエッジを生成するためのスレッド内同期通信オペレーション間エッジ生成部29、スレッド間同期通信オペレーション抽出部28によって抽出されたスレッド間同期通信オペレーションに基づいてスレッド間の同期通信オペレーション組(各スレッド内における同期通信オペレーションを1組とする)間のエッジを生成するためのスレッド間同期通信オペレーション組間エッジ生成部30、スレッド間同期通信オペレーション抽出部28とスレッド内同期通信オペレーション間エッジ生成部29とスレッド間同期通信オペレーション組間エッジ生成部30とによって生成された同期通信オペレーショングラフの各有向エッジに対して、スケジューリングサイクル制約を生成するためのスケジューリングサイクル制約付加部31、およびスケジューリングサイクル制約付加部31によって生成された制約条件に基づいて同期通信オペレーションのスケジューリングを行なうための同期通信スケジューリング部32を含む。
【0044】
図7は、スレッド間同期通信オペレーションスケジューリング部23の処理手順を説明するためのフローチャートである。まず、スレッド間同期通信オペレーション抽出部28は、スケジューリング可能スレッド間同期通信オペレーション間選択部22によって選択された同期通信オペレーションの中から、スレッド間同期通信オペレーションを抽出する(S20)。図5に示す動作記述の場合、スレッド111内のSEND(CH1,D1)、SEND(CH2,D2)およびRECV(CH3)が抽出される。同様にして、スレッド112内のRECV(CH2)およびSEND(CH4,D4)が抽出され、スレッド113内のRECV(CH1)、RECV(CH4)およびSEND(CH3,D7)が抽出される。
【0045】
図8は、スレッド間同期通信オペレーション抽出部28によって抽出された動作記述から生成された同期通信オペレーショングラフを示している。図8に示すグラフの中で、Sn(n=1〜4)はSEND(CHn,Dx)に対応するノードを示している。また、Rn(n=1〜4)はRECV(CHn)に対応するノードを示している。
【0046】
次に、スレッド内同期通信オペレーション間エッジ生成部29は、スレッド間同期通信オペレーション抽出部28によって生成されたスレッド間同期通信オペレーショングラフに対して、スレッド内における同期通信オペレーションの順序関係に基づいてノード間に有向エッジを加える(S21)。図9は、図8に示す同期通信オペレーショングラフに、このスレッド内同期通信オペレーション間エッジ生成部29によって有向エッジが加えられた後のグラフを示している。図9からわかるように、各スレッド内のスレッド間同期通信オペレーションの順序関係のみが有向エッジ(実線)によって示されている。
【0047】
次に、スレッド間同期通信オペレーション組間エッジ生成部30は、スレッド内同期通信オペレーション間エッジ生成部29によって有向エッジが加えられた後の同期通信オペレーショングラフに対して、スレッド間における同期通信オペレーションの送信と受信との関係に基づいてノード間に有向エッジを加える(S22)。図10は、このスレッド間同期通信オペレーション組間エッジ生成部30によって有向エッジが加えられた後の同期通信オペレーショングラフを示している。たとえば、図5のスレッド111内の動作記述SEND(CH1,D1)によって送信されるデータは、スレッド113内の動作記述RECV(CH1)によって受信されることがわかるので、図10に示すようにノードS1からノードR1へ有向エッジ(破線)が加えられる。同様にして、ノードS2とノードR2との間、ノードS3とノードR3との間、およびノードS4とノードR4との間に有向エッジが加えられる。
【0048】
次に、スケジューリングサイクル制約付加部31は、スレッド内同期通信オペレーション間エッジ生成部29、およびスレッド間同期通信オペレーション組間エッジ生成部30によって加えられた同期通信オペレーショングラフの有向エッジに対して、スケジューリング時の制約条件を付加する(S23)。図11は、このスケジューリングサイクル制約付加部31をさらに詳細に説明するためのブロック図である。スケジューリングサイクル制約付加部31は、スケジューリング可能スレッド間同期通信オペレーション選択部22によって選択されたスレッドの動作記述に基づいてスレッド毎の動作合成を行なうためのスレッド毎動作合成部35、およびスレッド毎動作合成部35によって行なわれた動作合成結果(スケジューリング結果)に基づいてスケジューリングサイクルにおける制約条件を抽出するための同期通信オペレーション間スケジューリングサイクル制約抽出部36を含む。
【0049】
図12は、スケジューリングサイクル制約付加部31の処理手順を説明するためのフローチャートである。スレッド毎動作合成部35は、各スレッド毎に動作合成を行ない、スレッド内の同期通信オペレーションのスケジューリングを行なう(S30)。この動作合成には、一般に高位合成と呼ばれる手法が用いられる。この高位合成に関する手法の一例として、文献「High-Level Synthesis,Kluwer Academic Publishers 」に紹介されている手法を簡単に説明する。
【0050】
図13は、スレッド毎動作合成部35の概略構成を示すブロック図であり、上述した高位合成と呼ばれる手法により動作合成を行なう。このスレッド毎動作合成装置35は、動作記述40からコントロールデータフローグラフ(CDFG)を生成するためのCDFG生成部41、CDFG生成部41によって生成されたグラフの依存関係に基づいてスケジューリングを行なうためのスケジューリング部41、およびスケジューリング部42によるスケジューリング結果に基づいて、回路を構成する回路要素の選択、制御回路の生成を行なうことで、論理回路44を合成するためのアロケーション部43を含む。
【0051】
CDFG生成部41は、入力された動作記述40を実行の制御の流れ(コントロールフロー)とデータの流れ(データフロー)とを表すCDFGと呼ばれるグラフに変換する。このグラフにおいては、データの入出力と演算や制御の分岐とが節点で表され、この節点間のデータの流れや制御の流れ(依存関係)が枝で表される。高位合成において、動作記述をこのCDFGに変換する理由は、動作記述に記述された動作が保証される上に、合成される論理回路に並列化の余地を残すことが可能な動作表現だからである。
【0052】
次に、スケジューリング部42は、CDFG生成部41によって生成されたCDFGによって表される依存関係に基づき、節点に対応するデータの入出力と演算や制御の分岐とが実行される相対的な時間を決定する。この処理は一般にスケジューリングと呼ばれている。
【0053】
そして、アロケーション部43は、節点に対応する論理回路を合成する。すなわち、演算に割り当てられる演算器、データ選択のためのセレクタ、データを記憶するためのレジスタ等の回路要素(回路素子)が選択され、これらの回路要素を制御するための制御回路が生成され、これらの回路要素および制御回路間を接続することにより論理回路が合成される。この処理は一般にアロケーションと呼ばれている。なお、このアロケーションは、上述したスケジューリング処理と同時に行なわれる場合もある。
【0054】
図14は、図5に示すスレッド毎の動作記述のスケジューリング結果を示す図である。図14のスケジューリング結果111’、112’および113’はそれぞれ、図5に示すスレッド111,112および113のスケジューリング結果を示している。たとえば、スケジューリング結果111’に示されるように、変数INDと“5”とがノード“+”に入力され、その加算結果D1がノード“CH1W”およびノード“−”に入力されている。また、加算結果D1と変数INDとがノード“−”に入力され、その減算結果D2がノード“CH2W”に入力されている。また、ノード“CH1W”および“CH2W”は、それぞれ変数D1をCH1に書き込み、変数D2をCH2に書き込むことを示している。さらには、ノード“CH3R”はCH3からデータを読み込むことを示しており、このデータが変数OUTDに書き込まれる。なお、これらの一連の動作が1サイクルで実行されるように動作合成されている。
【0055】
また、スケジューリング結果112’に示されるように、ノード“CH2R”によってCH2からデータが読み込まれ、変数D3に代入される。また、変数D3と“4”とがノード“+”に入力され、その加算結果D4がノード“CH4W”に入力され、その加算結果D4がCH4に書き込まれる。これらの一連の動作も1サイクルで実行されるように動作合成されている。
【0056】
また、スケジューリング結果113’に示すように、ノード“CH1R”によってCH1からデータが読み込まれて変数D5に代入され、ノード“CH4R”によってCH4からデータが読み込まれて変数D6に代入される。そして、変数D5とD6とがノード“×”に入力され、その乗算結果D7がノード“CH3W”に入力される。そして、ノード“CH3W”は乗算結果D7をCH3に書き込む。なお、図14に示すように、スレッド113の乗算に2サイクル要すると判断されて動作合成されている。
【0057】
再び図12に示すフローチャートに戻り、スケジューリングサイクル制約付加部31の処理手順の説明を続ける。同期通信オペレーション間スケジューリングサイクル制約抽出部36は、スレッド毎動作合成部35によるスケジューリング結果に基づいて同期通信オペレーション間のスケジューリングサイクル制約を抽出し、図10に示す同期通信オペレーショングラフの各エッジに当該スケジューリングサイクル制約を制約条件として付加する(S31)。
【0058】
同期通信オペレーション間のスケジューリングサイクル制約は、スレッド内同期通信間スケジューリング制約と、スレッド間同期通信間スケジューリング制約との2種類に大別され、それぞれ以下の式で算出される。なお、図10に示すグラフにおいて、実線で示す有向エッジはスレッド内同期通信間スケジューリング制約を表しており、破線で示す有向エッジはスレッド間同期通信間スケジューリング制約を表している。
【0059】
スレッド内同期通信間スケジューリング制約=|先行実行される同期通信オペレーションのスケジューリングサイクル−後続実行される同期通信オペレーションのスケジューリングサイクル|‥‥ (1)
スレッド間同期通信間スケジューリング制約=1 ‥‥ (2)
たとえば、ノードS1とS2との間の有向エッジは、スレッド内同期通信間スケジューリング制約であるので、式(1)を用いて計算する。すなわち、図14に示すように、ノードS1とS2とに対応するノード“CH1W”と“CH2W”とは、共に1サイクル目にスケジューリングされているため、スレッド内同期通信間スケジューリング制約=|1−1|=0となる。
【0060】
また、ノードR4とS3との間の有向エッジも、スレッド内同期通信間スケジューリング制約であるので、式(1)を用いて計算する。すなわち、図14に示すように、ノードR4とS3とに対応するノード“CH4R”と“CH3W”とは、それぞれ1サイクル目と2サイクル目にスケジューリングされているため、スレッド内同期通信間スケジューリング制約=|2−1|=1となる。
【0061】
一方、ノードS1とR1との間の有向エッジは、スレッド間同期通信間スケジューリング制約であるので、式(2)を用いて計算する。すなわち、スレッド間同期通信間スケジューリング制約=1となる。このようにして、図14に示すスケジューリング結果を用いてスレッド内同期通信間スケジューリング制約およびスレッド間同期通信間スケジューリング制約を算出し、これらの制約条件を付加したグラフを図15に示す。
【0062】
次に、図7に示すスレッド間同期通信オペレーションスケジューリング部23のフローチャートに戻り、ステップS24の処理について説明する。同期通信スケジューリング部32は、スケジューリングサイクル制約付加部31によって制約条件が付加された同期通信オペレーショングラフを用いて同期通信のスケジューリングを行なう。このスケジューリングには、ASAPスケジューリング方法が用いられ、有向エッジに付加されたスケジューリング制約を満たすように同期通信オペレーションノードがスケジューリングされる。
【0063】
図16は、この同期通信スケジューリング部32の処理手順を説明するためのフローチャートである。まず、同期通信スケジューリング部32に図15に示す制約が付加されたグラフが入力されると、このグラフのノードの中から次にスケジューリングするノード(以下、スケジュールノードと呼ぶ)が選択される(S40)。同期通信スケジューリング部32は、先行するノードを持たないノード、または先行するノードが全てスケジューリングされているノードを選択する。この先行するノードとは、注目するノードに有向エッジの終端を持つノードのことを意味する。図15に示すグラフの場合、同期通信スケジューリング部32は、まずノードS1をスケジュールノードとして選択する。
【0064】
次に、ステップS40において選択されたスケジュールノードがあるか否かを判定する(S41)。選択されたスケジュールノードがなければ(S41,No)、処理を終了する。また、選択されたスケジュールノードがあれば(S41,Yes)、ステップS42へ進む。
【0065】
ステップS42において、同期通信スケジューリング部32は、選択されたスケジュールノードのスケジューリングサイクルを計算する(S42)。この後、ステップS40においてさらにスケジュールノードの選択を繰り返すが、ここで、同じスケジューリングサイクル内で同じ種類のノードによるオペレーション数を制限する方法と、制限しない方法とが挙げられる。
【0066】
同じスケジューリングサイクル内で同じ種類のノードによるオペレーション数を制限しない方法の場合、同期通信スケジューリング部32はノードS1のスケジューリングの後、同じ種類のノードであるS2を選択する。このノードS2をスケジューリングする際ノードS1とS2との間の制約が“0”であるので、図17に示すように、同じスケジューリングサイクル“1”にスケジューリングする。また、ノードR1をスケジューリングする際ノードS1とR1との間の制約が“1”であるので、ノードR1をスケジューリングサイクル“2”にスケジューリングする。このようにして、先行するノードが全てスケジューリングされているノードを順次スケジューリングすると、図15に示す制約が付加されたグラフから図17に示すスケジューリング結果が得られる。
【0067】
なお、注目するノードが複数の先行ノードを有する場合には、スケジュールサイクルを次式により算出する。
【0068】
スケジューリングサイクル=Max{先行ノードiのスケジューリングサイクル+先行ノードiとスケジュールノードとの間のスケジューリングサイクル制約(ただし、i=1〜n)} ‥‥ (3)
なお、nは先行ノードの総数を、iは1〜nの任意の整数を表している。
【0069】
たとえば、図15のノードR3のスケジューリングサイクルは以下のようにして求められる。
【0070】
スケジューリングサイクル=Max{(先行ノードS2のスケジューリングサイクル+先行ノードS2とスケジュールノードR3との間のスケジューリングサイクル制約),(先行ノードS3のスケジューリングサイクル+先行ノードS3とスケジュールノードR3との間のスケジューリングサイクル制約)}=Max{(1+0),(4+1)}=5
このようにして、同じスケジューリングサイクル内で同じ種類のノードによるオペレーション数を制限せずにスケジューリングすることにより、スレッド間のバス幅等が大きくなるが、処理速度に優れた論理回路を合成することが可能になる。
【0071】
また、同じスケジューリングサイクル内で同じ種類のノードによるオペレーション数を制限する方法の場合(たとえば、同じ種類のノードによるオペレーション数を1に制限する場合)、同期通信スケジューリング部32はノードS1のスケジューリングの後、同じ種類のノードであるS2を選択せずに、異なる種類のノードR1を選択する。そして、同じ種類のノードS2は次のスケジュールサイクル以降にスケジューリングされるように選択される。すなわち、図18に示すように、スケジューリングサイクル“2”でこのノードS2のスケジューリングが行なわれる。このようにして、先行するノードが全てスケジューリングされているノードを順次スケジューリングすると、図15に示す制約が付加されたグラフから図18に示すスケジューリング結果が得られる。
【0072】
このように、同じスケジューリングサイクル内で同じ種類のノードによるオペレーション数を制限してスケジューリングすることにより、スレッド間のバス幅等を小さくすることができ、合成される論理回路の回路規模を小さくすることが可能になる。
【0073】
再び図4に示す高位合成装置のフローチャートに戻り、ステップS12以降の処理手順の説明を続ける。ステップS11において作成されたスケジューリング結果に基づいてスレッド毎の動作合成制約情報を生成する(S12)。たとえば、図19は図17に示すスケジューリング結果に基づいて生成されたスレッド毎の動作制約情報を示している。図19の中の情報111”、112”および113”は、それぞれ図5に示すスレッド111,112および113の動作合成制約情報を示している。
【0074】
スレッド毎動作合成部25は、このようにして生成された動作合成制約情報に基づいてスレッド毎に動作合成を行ない、論理回路26を生成する(S13)。この動作合成は、図13を用いて説明した高位合成の処理手順と同じであるので、詳細な説明は繰り返さない。
【0075】
以上説明したように、本実施の形態における高位合成装置によれば、ハンドシェイクなしにスレッド間同期通信が可能な動作記述に対して、高速にデータ通信が可能な論理回路を確実に合成でき、回路規模の縮小を図ることが可能となった。
【0076】
また、スレッド毎に動作合成制約情報を生成し、各スレッド毎に動作合成を行なうため、スケジューリング対象を小さくすることが可能となり、スケジューリングに要する時間を縮小することが可能となった。
【0077】
また、同じスケジューリングサイクル内で同じ種類のノードによるオペレーション数を制限せずにスケジューリングすることにより、スレッド間のバス幅等が大きくなるが、処理速度に優れた論理回路を合成することが可能になった。
【0078】
さらには、同じスケジューリングサイクル内で同じ種類のノードによるオペレーション数を制限してスケジューリングすることにより、スレッド間のバス幅等を小さくすることができ、合成される論理回路の回路規模を小さくすることが可能になった。
【0079】
(実施の形態2)
以下に本発明の実施の形態2における高位合成装置について説明するが、まず、実施の形態1における高位合成装置によってパイプライン動作を実行する回路を合成した場合における問題点について説明する。
【0080】
図20は、動作記述の他の一例を示している。図20に示す動作記述201において、RECV(IN)はチャネルINを介してデータを受信する記述であり、その受信データをINDに代入することを示している。次の動作記述202において、PAR文によって複数のプロセスを並列に動作させることを定義している。動作記述202の中の動作記述211〜213は、それぞれスレッドを示している。
【0081】
スレッド211において、最初の1〜2行目の記述はそれぞれ、INDに“5”を加算してD1に代入すること、およびD1からINDを減算してD2に代入することを示している。また、3〜4行目の記述はそれぞれ、データD1をチャネルCH1を介して送信すること、およびデータD2をチャネルCH2を介して送信することを示している。さらに5行目において、チャネルCH3を介して受信したデータからチャネルCH4を介して受信したデータを減算し、その減算結果をOUTDに代入することを示している。
【0082】
スレッド212において、最初の1行目の記述は、チャネルCH1から受信したデータをD3に代入することを示している。また、2行目において、D3に“4”を乗算してD4に代入することを示している。さらに3行目において、データD4をチャネルCH3を介して送信することを示している。
【0083】
スレッド213において、最初の1行目の記述は、チャネルCH2から受信したデータをD5に代入することを示している。また、2行目において、D5に“9”を加算してD6に代入することを示している。さらに3行目において、データD6をチャネルCH4を介して送信することを示している。
【0084】
最後の記述203は、データOUTDをチャネルOUTを介して送信することを示している。
【0085】
図21および図22は、図20に示す動作記述から生成された制約条件が付加されたグラフおよびスケジューリング結果を示しており、スレッド間同期通信オペレーションスケジューリング部23によって生成されたものである。図22に示すように、スレッド213’内のノードS4がスケジューリングサイクル“2”にスケジューリングされており、スレッド211’内のノードR4がスケジューリングサイクル“4”にスケジューリングされている。そのため、このスケジューリング結果からパイプラインスループットサイクル“1”サイクルでパイプライン動作する回路を合成すると、ノードS4が含まれるスレッド213’は毎サイクルノードS4にあたる動作を行なうようになる。その結果、スレッド211’のノードR4は、スケジューリングサイクル“2”で実行されたノードS4の値ではなく、スレッド213’の次のパイプライン動作で実行されるノードS4(スケジューリングサイクル“3”)の値を受け取ることになり、誤った値を受信することになる。
【0086】
本実施の形態における高位合成装置は、パイプライン動作を実行する回路の合成に適用されるものであり、図3に示すスレッド間同期通信オペレーションスケジューリング部23の構成および機能のみが異なる。したがって、重複する構成および機能についての詳細な説明は繰り返さない。なお、本実施の形態においてスレッド間同期通信オペレーションスケジューリング部の参照符号を23’として説明する。
【0087】
図23は、本実施の形態における高位合成装置のスレッド間同期通信オペレーションスケジューリング部23’の概略構成を示す図である。このスレッド間同期通信オペレーションスケジューリング部23’は、スケジューリング可能スレッド間同期通信オペレーション選択部22から出力された動作記述27の中からスレッド間の同期通信オペレーションを抽出するためのスレッド間同期通信オペレーション抽出部28、スレッド間同期通信オペレーション抽出部28によって抽出されたスレッド間同期通信オペレーションに基づいてスレッド内の同期通信オペレーション間のエッジを生成するためのスレッド内同期通信オペレーション間エッジ生成部29、スレッド間同期通信オペレーション抽出部28によって抽出されたスレッド間同期通信オペレーションに基づいてスレッド間の同期通信オペレーション組間のエッジを生成するためのスレッド間同期通信オペレーション組間エッジ生成部30、スレッド間同期通信オペレーション抽出部28とスレッド内同期通信オペレーション間エッジ生成部29とスレッド間同期通信オペレーション組間エッジ生成部30とによって生成された同期通信オペレーショングラフの各有向エッジに対して、パイプライン化に必要となるスケジューリングサイクル制約を付加するためのパイプライン化スケジューリングサイクル制約付加部51、パイプライン化スケジューリングサイクル制約付加部51によって付加された制約条件に基づいて同期通信オペレーションのスケジューリングを行なうためのパイプライン化同期通信スケジューリング部52およびパイプライン化同期通信スケジューリング部52によるスケジューリング結果内のノードのスケジューリングサイクルを調整するためのスケジューリングサイクル調整部53を含む。
【0088】
パイプライン化スケジューリングサイクル制約付加部51は、同期通信オペレーション間のスケジューリングサイクル制約を次式によって算出する。
【0089】
スレッド内同期通信間スケジューリング制約=
|先行実行される同期通信オペレーションのスケジューリングサイクル−
後続実行される同期通信オペレーションのスケジューリングサイクル|
‥‥ (4)
スレッド間同期通信スケジューリング制約=
パイプラインスループットサイクル ‥‥ (5)
パイプラインスループットサイクルとは、何サイクルの間隔で回路をパイプライン化合成するかを示す値であり、設計者によって与えられる。以下の説明においては、設計者によりパイプラインサイクル“1”が与えられたものとする。
【0090】
パイプライン化スケジューリングサイクル制約付加部51によってスケジューリングサイクル制約が付加された同期通信オペレーショングラフは、図21に示す通りとなる。
【0091】
パイプライン化同期通信スケジューリング部52は、パイプライン化スケジューリングサイクル制約付加部51によって制約条件が付加された同期通信オペレーショングラフを用いて同期通信のスケジューリングを行なう。このスケジューリングには、図16を用いて説明したASAPスケジューリング方法が用いられ、有効エッジに付加されたスケジューリング制約を満たすように同期通信オペレーションノードがスケジューリングされる。図22は、このスケジューリングによって生成されたスケジューリング結果を示している。なお、このスケジューリングの際、上述したように同じスケジューリングサイクル内で同じ種類のノードによるオペレーション数を制限する方法と、制限しない方法とを選択して行なうことができる。
【0092】
図24は、パイプライン化同期通信スケジューリング部52がスケジューリング結果内のノードのスケジューリングサイクルを調整する手順を示すフローチャートである。まず、パイプライン化同期通信スケジューリング部52は、同期通信オペレーショングラフ内のスレッド間同期通信間スケジューリング制約が付加されたエッジについて、チェックされていないエッジがあるか否かを判定する(S50)。
【0093】
パイプライン化同期通信スケジューリング部52は、チェックされていないエッジがないと判定した場合(S50,No)、処理を終了する。また、パイプライン化同期通信スケジューリング部52は、チェックされていないエッジがあると判定した場合(S50、Yes)、そのエッジ両端のスケジューリングサイクル差を計算する(S51)。そして、そのスケジューリングサイクル差がパイプラインスループットサイクルと同じであるか否かを判定する(S52)。
【0094】
スケジューリングサイクル差がパイプラインスループットサイクルと同じであれば(S52,Yes)、ステップS50へ戻り処理を繰り返す。また、スケジューリングサイクル差がパイプラインスループットサイクルと異なれば(S52,No)、パイプライン化同期通信スケジューリング部52は、SENDノードのスケジューリングサイクルを調整し(S53)、ステップS50へ戻って処理を繰り返す。
【0095】
図25は、パイプライン化同期通信スケジューリング部52によってスケジューリングサイクルが調整された後の同期通信オペレーショングラフを示している。図22においてノードS1とR1との間、ノードS2とR2との間、ノードS3とR3との間のスケジューリングサイクルの差はそれぞれ“1”であるので、図25に示すようにスケジューリングサイクルの調整は行なわれない。しかし、図22においてノードS4とR4との間のスケジューリングサイクルの差は“2”であるので、スケジューリングサイクルの調整が行なわれ、ノードS4がスケジューリングサイクル“3”に移動される。
【0096】
図26は、スケジューリングサイクル調整部53の処理手順を説明するためのフローチャートである。スケジューリングサイクル調整部53は、パイプライン化同期通信スケジューリング部52によってスケジューリングサイクルが調整された後の同期通信オペレーショングラフに対して、さらに各スレッド毎にスケジューリングサイクルの調整を行なって、パイプライン処理が可能な回路に変更する。
【0097】
まず、スケジューリングサイクル調整部53は、スケジューリングサイクル“1”にノードがスケジューリングされているか否かを判定する(S60)。スケジューリングサイクル“1”にノードがスケジューリングされていれば(S60,Yes)、スケジューリングサイクル調整部53は処理を終了する。また、スケジューリングサイクル“1”にノードがスケジューリングされていなければ(S60,No)、スケジューリングサイクル調整部53は当該スレッド内のノードのスケジューリングサイクルから“1”を減算する(S61)。すなわち、当該スレッド内の各ノードを1つ上のスケジューリングサイクルにスケジューリングし直す。そして、ステップS60へ戻り処理を繰り返す。
【0098】
図27は、スケジューリングサイクル調整部53によって、図25に示す同期通信オペレーショングラフのスケジューリングサイクルが調整された後のグラフを示している。図25においてノードR1およびS3がそれぞれスケジューリングサイクル“2”および“3”にスケジューリングされていたが、図27においてはそれぞれスケジューリングサイクル“1”および“2”にスケジューリングされている。同様に、図25においてノードR2およびS4がそれぞれスケジューリングサイクル“2”および“3”にスケジューリングされていたが、図27においてはそれぞれスケジューリングサイクル“1”および“2”にスケジューリングされている。
【0099】
図3に示すスレッド毎動作合成制約情報生成部24は、以上の処理によって求めれられたスケジューリング結果から動作合成制約情報を生成する。そして、図3に示すスレッド毎動作合成部25は、スレッド毎に動作合成を行なう。この動作合成の際、スレッド毎動作合成部25はパイプラインスループットサイクルも考慮して動作合成を行ない、指定されたパイプラインスループットで動作を行なうように回路を合成する。
【0100】
以上説明したように、本実施の形態における高位合成装置によれば、パイプラインスループットサイクルに基づいて同期通信オペレーショングラフのスケジューリングサイクルを調整するようにしたので、誤動作を起こさないようにパイプライン動作を行なう回路を合成することが可能になった。
【0101】
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【図1】本発明の高位合成装置の外観例を示す図である。
【図2】本発明の高位合成装置の構成を示すブロック図である。
【図3】本発明の実施の形態1における高位合成装置の概略構成を説明するためのブロック図である。
【図4】本発明の実施の形態1における高位合成装置の処理手順を説明するためのフローチャートである。
【図5】本発明の実施の形態1における高位合成装置が処理する動作記述の一例を示す図である。
【図6】図3に示すスレッド間同期通信オペレーションスケジューリング部23をさらに詳細に説明するためのブロック図である。
【図7】図3に示すスレッド間同期通信オペレーションスケジューリング部23の処理手順をさらに詳細に説明するためのフローチャートである。
【図8】図6に示すスレッド間同期通信オペレーション抽出部28によって生成された同期通信オペレーショングラフを示す図である。
【図9】図6に示すスレッド内同期通信オペレーション間エッジ生成部29によって有向エッジが付加された同期通信オペレーショングラフを示す図である。
【図10】図6に示すスレッド間同期通信オペレーション組間エッジ生成部30によって有向エッジが付加された同期通信オペレーショングラフを示す図である。
【図11】図6に示すスケジューリングサイクル制約付加部31をさらに詳細に説明するためのブロック図である。
【図12】図6に示すスケジューリングサイクル制約付加部31の処理手順をさらに詳細に説明するためのフローチャートである。
【図13】図11に示すスレッド毎動作合成部35をさらに詳細に説明するためのブロック図である。
【図14】図11に示すスレッド毎動作合成部35によるスレッド毎のスケジューリング結果を示す図である。
【図15】図11に示す同期通信オペレーション間スケジューリングサイクル制約抽出部36によって制約が付加された同期通信オペレーショングラフを示す図である。
【図16】図6に示す同期通信スケジューリング部32の処理手順を説明するためのフローチャートである。
【図17】同じ種類のノードによるオペレーション数を制限せずにスケジューリングした場合のスケジューリング結果を示す図である。
【図18】同じ種類のノードによるオペレーション数を制限してスケジューリングした場合のスケジューリング結果を示す図である。
【図19】図3に示すスレッド毎動作合成制約情報生成部24によって生成された動作合成制約情報を示す図である。
【図20】本発明の実施の形態2における高位合成装置が処理する動作記述の一例を示す図である。
【図21】パイプライン化スケジューリングサイクル制約付加部51によって制約が付加された同期通信オペレーショングラフを示す図である。
【図22】パイプライン化同期通信スケジューリング部52によってスケジューリングサイクルの調整が行なわれる前のスケジューリング結果を示す図である。
【図23】本発明の実施の形態2におけるスレッド間同期通信オペレーションスケジューリング部23’を詳細に説明するためのブロック図である。
【図24】パイプライン化同期通信スケジューリング部52の処理手順を説明するためのフローチャートである。
【図25】パイプライン化同期通信スケジューリング部52によってスケジューリングサイクルの調整が行なわれた後のスケジューリング結果を示す図である。
【図26】スケジューリングサイクル調整部53の処理手順を説明するためのフローチャートである。
【図27】スケジュルーリングサイクル調整部53によってスケジューリングサイクルが調整された後のスケジューリング結果を示す図である。
【符号の説明】
1 コンピュータ本体
2 グラフィックディスプレイ装置
3 磁気テープ装置
4 磁気テープ
5 キーボード
6 マウス
7 CD−ROM装置
8 CD−ROM
9 通信モデム
10 CPU
11 ROM
12 RAM
13 ハードディスク
22 スケジューリング可能スレッド間同期通信オペレーション選択部
23,23’ スレッド間同期通信オペレーションスケジューリング部
24 スレッド毎動作合成制約情報生成部
25 スレッド毎動作合成部
28 スレッド間同期通信オペレーション抽出部
29 スレッド内同期通信オペレーション間エッジ生成部
30 スレッド間同期通信オペレーション組間エッジ生成部
31 スケジューリングサイクル制約付加部
32 同期通信スケジューリング部
35 スレッド毎動作合成部
36 同期通信オペレーション間スケジューリングサイクル制約抽出部
41 CDFG生成部
42 スケジューリング部
43 アロケーション部
51 パイプライン化スケジューリングサイクル制約付加部
52 パイプライン化同期通信スケジューリング部
53 スケジューリングサイクル調整部

Claims (7)

  1. スレッド間同期通信を行なう命令を含んだ動作記述から論理合成を行なう高位合成装置であって、
    予め選択されたスレッドに含まれる動作記述に基づいてスレッド間同期通信オペレーションのスケジューリングを行なうための同期通信スケジューリング手段と、
    前記同期通信スケジューリング手段によってスケジューリングされたスレッド間同期通信オペレーションに基づいて前記スレッド毎に動作合成制約情報を生成するための制約情報生成手段と、
    前記制約情報生成手段によって生成された動作合成制約情報に基づいて前記スレッド毎の動作合成をおこなうための動作合成手段とを含み、
    前記同期通信スケジューリング手段は、前記予め選択されたスレッドに含まれるスレッド間同期通信オペレーションを抽出するためのスレッド間同期通信オペレーション抽出手段と、
    前記スレッド間同期通信オペレーション抽出手段によって抽出されたスレッド間同期通信オペレーションに基づいて、スレッド内における同期通信オペレーションの順序を示す有向エッジを生成するためのスレッド内同期通信オペレーション間エッジ生成手段と、
    前記スレッド間同期通信オペレーション抽出手段によって抽出されたスレッド間同期通信オペレーションに基づいて、スレッド間における送受信の関係を示す有向エッジを生成するためのスレッド間同期通信オペレーション組間エッジ生成手段と、
    前記スレッド内同期通信オペレーション間エッジ生成手段および前記スレッド間同期通信オペレーション組間エッジ生成手段によって生成された有向エッジにスケジューリングサイクル制約を付加するためのスケジューリングサイクル制約付加手段と、
    前記スケジューリングサイクル制約付加手段によって付加されたスケジューリングサイクル制約に基づいてスレッド間同期通信オペレーションのスケジューリングを行なうためのスレッド間同期通信スケジューリング手段とを含む、高位合成装置。
  2. 前記スケジューリングサイクル制約付加手段は、スレッド毎に動作記述を動作合成するためのスレッド毎動作合成手段と、
    前記スレッド毎動作合成手段による動作合成結果に基づいて同期通信オペレーション間のスケジューリングサイクル制約を抽出するためのスケジューリングサイクル制約抽出手段とを含む、請求項記載の高位合成装置。
  3. 前記スケジューリングサイクル制約抽出手段は、前記スレッド毎動作合成手段によって生成されたスレッド内におけるノードのスケジューリングサイクルの差からスレッド内同期通信間スケジューリング制約を抽出するためのスレッド内同期通信間スケジューリング制約抽出手段と、
    スレッド間における同期通信オペレーションに対して所定値をスレッド間同期通信間スケジューリング制約として抽出するスレッド間同期通信スケジューリング制約抽出手段とを含む、請求項記載の高位合成装置。
  4. 前記スレッド間同期通信スケジューリング手段は、同じスケジューリングサイクル内で同じ種類のノードによるオペレーション数を制限して前記スレッド間同期通信オペレーションのスケジューリングを行なう、請求項1〜3のいずれかに記載の高位合成装置。
  5. スレッド間同期通信を行なう命令を含んだ動作記述から論理合成を行なう高位合成装置であって、
    予め選択されたスレッドに含まれる動作記述に基づいてスレッド間同期通信オペレーションのスケジューリングを行なうための同期通信スケジューリング手段と、
    前記同期通信スケジューリング手段によってスケジューリングされたスレッド間同期通信オペレーションに基づいて前記スレッド毎に動作合成制約情報を生成するための制約情報生成手段と、
    前記制約情報生成手段によって生成された動作合成制約情報に基づいて前記スレッド毎の動作合成をおこなうための動作合成手段とを含み、
    前記同期通信スケジューリング手段は、前記予め選択されたスレッドに含まれるスレッド間同期通信オペレーションを抽出するためのスレッド間同期通信オペレーション抽出手段と、
    前記スレッド間同期通信オペレーション抽出手段によって抽出されたスレッド間同期通信オペレーションに基づいて、スレッド内における同期通信オペレーションの順序を示す有向エッジを生成するためのスレッド内同期通信オペレーション間エッジ生成手段と、
    前記スレッド間同期通信オペレーション抽出手段によって抽出されたスレッド間同期通信オペレーションに基づいて、スレッド間における送受信の関係を示す有向エッジを生成するためのスレッド間同期通信オペレーション組間エッジ生成手段と、
    前記スレッド内同期通信オペレーション間エッジ生成手段および前記スレッド間同期通信オペレーション組間エッジ生成手段によって生成された有向エッジにパイプラインスループットサイクルを考慮してスケジューリングサイクル制約を付加するためのパイプライン化スケジューリングサイクル制約付加手段と、
    前記パイプライン化スケジューリングサイクル制約付加手段によって付加されたスケジューリングサイクル制約に基づいてスレッド間同期通信オペレーションのスケジューリングを行い、前記パイプラインスループットサイクルを考慮してスケジューリング結果のスケジューリングサイクルを調整するためのパイプライン化同期通信スケジューリング手段とを含む、高位合成装置。
  6. 前記パイプライン化同期通信スケジューリング手段は、前記スケジューリング結果内の送信を示すノードと受信を示すノードとのスケジューリングサイクルの差が前記パイプラインスループットサイクルとなるようにスケジューリングサイクルを調整する、請求項記載の高位合成装置。
  7. 前記パイプライン化同期通信スケジューリング手段は、同じスケジューリングサイクル内で同じ種類のノードによるオペレーション数を制限して前記スレッド間同期通信オペレーションのスケジューリングを行なう、請求項または記載の高位合成装置。
JP13052299A 1998-06-04 1999-05-11 高位合成装置 Expired - Fee Related JP3763700B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP13052299A JP3763700B2 (ja) 1998-06-04 1999-05-11 高位合成装置

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP15601098 1998-06-04
JP10-156010 1998-06-04
JP13052299A JP3763700B2 (ja) 1998-06-04 1999-05-11 高位合成装置

Publications (2)

Publication Number Publication Date
JP2000057180A JP2000057180A (ja) 2000-02-25
JP3763700B2 true JP3763700B2 (ja) 2006-04-05

Family

ID=26465634

Family Applications (1)

Application Number Title Priority Date Filing Date
JP13052299A Expired - Fee Related JP3763700B2 (ja) 1998-06-04 1999-05-11 高位合成装置

Country Status (1)

Country Link
JP (1) JP3763700B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8701061B2 (en) 2010-03-01 2014-04-15 Ricoh Company, Ltd. Semiconductor design support apparatus

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5229716B2 (ja) * 2007-11-27 2013-07-03 日本電気株式会社 動作合成システム、動作合成方法および動作合成用プログラム
JP5211776B2 (ja) * 2008-03-14 2013-06-12 日本電気株式会社 動作合成装置、動作合成方法及びプログラム
JP5328447B2 (ja) * 2009-03-30 2013-10-30 シャープ株式会社 高位合成装置および高位合成方法、半導体集積回路の製造方法、制御プログラム、可読記憶媒体
JP5910108B2 (ja) 2012-01-25 2016-04-27 株式会社ソシオネクスト 高位合成装置,高位合成方法,高位合成プログラム,集積回路の設計方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8701061B2 (en) 2010-03-01 2014-04-15 Ricoh Company, Ltd. Semiconductor design support apparatus

Also Published As

Publication number Publication date
JP2000057180A (ja) 2000-02-25

Similar Documents

Publication Publication Date Title
US5764951A (en) Methods for automatically pipelining loops
US5706205A (en) Apparatus and method for high-level synthesis of a logic circuit
US6571385B1 (en) Early exit transformations for software pipelining
US20070234267A1 (en) Pipeline high-level synthesis system and method
US8302041B1 (en) Implementation flow for electronic circuit designs using choice networks
US6604232B2 (en) High-level synthesis method and storage medium storing the same
JP2008158759A (ja) プログラミング方法、プログラム処理方法、処理プログラム及び情報処理装置
JP2006505061A (ja) プロセッサのパイプラインの設計方法および設計システム
JP3763700B2 (ja) 高位合成装置
US7152218B2 (en) Behavioral synthesis system, behavioral synthesis method, control program, readable recording medium, logic circuit production method, and logic circuit
US8117603B2 (en) Operation synthesis system
JP2003150657A (ja) 高位合成方法および高位合成装置
US6449763B1 (en) High-level synthesis apparatus, high level synthesis method, and recording medium carrying a program for implementing the same
US11657197B2 (en) Support system and computer readable medium
US20040143813A1 (en) System development supporting apparatus, system development supporting method, and computer-readable recorded medium
JP2008204341A (ja) インタフェース合成装置
JP2006172113A (ja) 高位合成装置、自動高位合成方法及び高位合成プログラム
JP5843449B2 (ja) 電子回路最適化方法、電子回路最適化装置、及びプログラム
JP5229716B2 (ja) 動作合成システム、動作合成方法および動作合成用プログラム
Ku et al. Synthesis of asics with hercules and hebe
JP2002222228A (ja) 高位合成システム及び高位合成方法
JP2006155448A (ja) データ処理装置およびデータ処理装置の設計方法
JP5444784B2 (ja) コンテキスト作成プログラム、コンパイラ装置およびコンテキスト作成方法
JP2010026968A (ja) 回路生成支援プログラム及び回路生成支援方法
JP2000322458A (ja) 論理回路の最適化処理方法ならびに同方法を用いた論理設計システム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050201

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050331

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050830

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051006

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20051124

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060110

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060117

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100127

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110127

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120127

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees