JPH04175974A - コプロセッサ論理回路自動生成方法 - Google Patents

コプロセッサ論理回路自動生成方法

Info

Publication number
JPH04175974A
JPH04175974A JP2302412A JP30241290A JPH04175974A JP H04175974 A JPH04175974 A JP H04175974A JP 2302412 A JP2302412 A JP 2302412A JP 30241290 A JP30241290 A JP 30241290A JP H04175974 A JPH04175974 A JP H04175974A
Authority
JP
Japan
Prior art keywords
coprocessor
logic circuit
program
logic
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
JP2302412A
Other languages
English (en)
Inventor
Takashi Suzuki
敬 鈴木
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2302412A priority Critical patent/JPH04175974A/ja
Publication of JPH04175974A publication Critical patent/JPH04175974A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、マイクロプロセッサのプログラムをもとに、
そのマイクロプロセッサの機能を拡張するプロセッサを
自動的に設計する方法に係り、パーソナルコンピュータ
やワードプロセッサ等のマイクロプロセッサを用いた装
置の性能向上に関する。
〔従来の技術〕
従来、マイクロプロセッサを用いた機器の性能向上を行
なうにはいろいろな方法が知られている。
一つにはソフトウェアを改善する方法があり、プログラ
ム中で時間のかかる部分を改良することにより性能を向
上する。もう一つはハードウェアの改良を行なう方法が
ある。より高性能なマイクロプロセッサを用いたり、ク
ロック周波数を上げたリする。また、新たにハードウェ
アを付加することにより性能を向上する場合もある0例
えば、浮動小数点演算を行なうコプロセッサやグラフィ
ックス専用のLSIを用いたりする。しかし、浮動小数
点演算やグラフィックスといった利用頻度の高い処理に
関しては専用のLSIが製造されているが、ユーザー独
自の処理を高速化するためにハードウェアを付加する場
合は、メーカーで用意されているLSIを組み合わせる
か、ゲートアレイなどの手法を用いて独自のLSIを設
計する必要があった。
一方、ハードウェアの設計に、ハードウェアを記述する
専用の言語を用いて、その記述から自動的に実際の論理
回路を生成する方法が知られている。この考え方は一般
にシリコンコンパイラと呼ばれている0通常のコンパイ
ラは高級言語で記述されたプログラムを計算機が直接実
行できる機械語の命令列に変換するプログラムであるが
、シリコンコンパイラはプログラムからLSIチップの
マスクパタンまで生成するプログラムをさす。現在これ
は研究段階であるが、例えば、開發貴久他。
情報処理学会、第37回(昭和63年後期)全国大会予
稿集、pp、1774−1775.r機能論理統合設計
支援システムに関する検討」では通常のプログラミング
言語で記述された処理からその処理を実行するハードウ
ェアの論理回路を生成するシステムを提案している。ま
た佐藤淳他、電子情報通信学会、設計自動化研究会、技
術研究報告VLD89−110.pp、5−10.r特
定用途向きCPUコアの命令セットの実現方法に関する
一考察」ではプログラムを解析し、そのプログラムを効
率良く実行するマイクロプロセッサのアーキテクチャを
自動的に生成するシステムを提案している。さらに笹尾
勤、共立出版、ビット、Vol。
19、NGIO,pp、24−32 (1987)[シ
リコンコンパイラ−論理合成とその将来」ではソフトウ
ェアの一部を自動的にハードウェアとして生成し、それ
をコンピュータにあらかじめ組み込んでおいたプログラ
マブルな論理素子で実現することにより与えられた問題
を高速に処理することの可能性を示唆している。
〔発明が解決しようとする課題〕
マイクロプロセッサを利用した機器の性能を向上する方
法としてプログラムの最適化には限度がある。また新た
なハードウェアを付加する場合もユーザーの要求にあわ
せたハードウェアを作成する場合は既存のLSIを組み
合わせるためハードウェアの規模が大きくなったり、ゲ
ートアレイの開発に多大な時間と費用を要するといった
問題点がある。
一方これに論理回路の自動生成の技術を応用することが
考えられるが、現在のところ実用的なシステムはなくマ
イクロプロセッサを拡張するためのハードウェアを生成
するシステムも提案されていない。
本発明の目的はプログラムの一部分からその部分の処理
を高速に実行するハードウェアの論理回路をコプロセッ
サとして自動的に生成する方法を提供することにある。
〔課題を解決するための手段〕
高級言語のコンパイル出力であるアセンブラソースプロ
グラムのうち指示された部分について、プログラムシー
ケンスを解析し、 データリソースを解析し、 データフローグラフを作成し、   ゛データパス系の
構造を生成し、 データパス系の論理を生成し、 マイクロコードを生成し、 命令デコーダを生成し、 レジスタ及び拡張命令の割当をし、 チップレベルの論理回路を合成することにより、与えら
れたアセンブラソースプログラムから、そのプログラム
と同等の動作を行うハードウェアの論理回路とその論理
回路を動作させる命令セットを自動生成する。
〔作用〕 論理回路で行なう処理は、(1)どのように接続された
演算器やレジスタを、(2)どのような順序で動作させ
るかにより決定される0通常の計算機は(1)が固定で
あるため(2)の部分をプログラムとして用意すること
により与えられた処理を行なうことが出来る。また論理
回路を設計する場合は動作に合わせて演算器やレジスタ
の接続、すなわちデータパス系の論理回路を決定し、さ
らにデータパスの各構成要素の動作を制御する制御系の
論理回路を決定する。制御系の論理回路はマイクロプロ
グラム制御回路(シーケンサ)とマイクロプログラムR
OM及び命令デコーダで構成することができるため、マ
イクロプログラムと命令デコーダの論理回路を決定する
ことにより制御系の論理を決定することができる。
本発明ではコプロセッサと呼ばれるマイクロプロセッサ
の命令を拡張するLSIの論理回路をアセンブラソース
プログラムを解析し、データパス系の論理回路の構成と
制御のためのマイクロプログラム、及び命令デコーダを
自動的に生成する。
さらにコプロセッサとして必要なコプロセッサインタフ
ェース回路、レジスタ群、マイクロプログラムシーケン
サをあらかじめ用意しておきこれらと自動生成した論理
を合成することにより目的の論理回路を得ることができ
る。また、外部からアクセスされるレジスタへ順番にレ
ジスタ転送命令を割り当て、処理を起動する命令を拡張
命令として割り当てることによりコプロセッサとして拡
張された命令の仕様を決定することができる。
・高級言語のコンパイル出力であるアセンブラソースプ
ログラムの指示されたサブルーチンについてアセンブラ
ソースプログラムから「ハードウェアの構成」及び「拡
張された命令セット」を自動生成する方法。
→高級言語を入力としそれをハードウェアにするという
概念(シリコンコンパイラ)は公知。
→命令セットを生成するのも公知。
→将来的には実行頻度が高い部分を自動抽出したいがこ
れも公知。
・生成されるチップは「コプロセッサ」または「専用プ
ロセッサ」である。
→コプロセッサの自動生成という概念も公知。
→「専用プロセッサ」はメモリ空間上にレジスタをマツ
ピングする。
・拡張された命令セットに従ってアセンブラ命令を出力
する拡張コンパイラ。
・詳細な論理回路から「コプロセッサチップ」を作成、
或いはrFPGA用のプログラムコード」を作成。
→これも公知。
(1)生成されたコプロセッサの詳細論理回路から「ゲ
ートアレイ」あるいは「スタンダードセル」方式のVL
SI製造方法によりコプロセッサのチップを作成する。
(2)生成されたコプロセッサの命令に対応したコード
を発生するコンパイラを用いて高級言語のソースプログ
ラムを再コンパイルする。
(3)コプロセッサに対応するCPUを用いるハードウ
ェア(PCやWS)に(1)で作成したコプロセッサを
搭載し、(2)で作成したプログラムを実行することに
より、元の高級言語プログラムを通常のコンパイラでコ
ンパイルしたオブジェクトプログラムより高速な処理が
可能である。
(効果?)また、対応プログラムはコプロセッサがない
と動作しないため、プログラムのコピー防止に役立つ。
逆に、チップがなくても(オリジナルなプログラムによ
り)動作する。
良く利用されるライブラリ等をコプロセッサ化すること
により特定のプログラムだけでなく、汎用の高速化手段
となる。
ワープロ等の組込用途のCPUとコプロセッサを用いる
ことによりCPUの性能限界を引き上げることができる
アセンブラソースプログラムを入力として生成を行うこ
とにより、レジスタや演算器等のCPUの持つリソース
のみを用いるため高級言語から直接ハードウェアを生成
するのに比べて容易にハードウェアを生成できる。
リソースが限定されている。データフローグラフの作成
が容易。
〔実施例〕
以下に本発明の詳細な説明する。第1図は本方式の処理
の手順を示すフローチャートである。
第1図において101はコプロセッサ化、するサブルー
チンのアセンブラソースプログラムのファイル、102
はファイル101を入力する処理、103は入力したプ
ログラムの最初と最後にあるサブルーチン呼び出しのた
めの手続きを削除する処理、104はアセンブラソース
プログラムで使用されているマイクロプロセッサの機械
語の二一モニツクコードやオペランドの書式を記述した
二一モニツクライブラリのファイル、105はプログラ
ムを参照し、二一モニツクライブラリ104に記録され
ている分岐命令及びプログラム中のラベルを基にプログ
ラムを分岐の無い命令シーケンスに分割するシーケンス
分割処理、106は分割したシーケンスのうち連結可能
なシーケンスを連結し、動作の流れを示すコントロール
フローグラフを作成する処理、107はプログラム中の
オペランドと二一モニツクライブラリ104を参照し、
レジスタやメモリ上のデータ、すなわちデータリソース
に名前を付けるリソース命名処理、108は各シーケン
ス毎にデータリソース間にどのような依存関係があるか
を表すデータフローグラフを作成する処理、109はカ
ウンタやシフトレジスタ等の単機能の演算器を割り当て
る命令のバタンを記録したリソース最適化ライブラリの
ファイル、110は単機能の演算器を割り当てる演算器
リソース変換処理、111はデータフローグラフに基づ
いてデータパス系の論理の構造を生成する処理、112
は演算器やレジスタの詳細な論理回路を保持するリソー
ス回路ライブラリのファイル、113はリソース回路ラ
イブラリ112を参照し、データパス系の論理構造に沿
って詳細な論理回路を生成する処理、114はコントロ
ールフローグラフとデータフローグラフに沿って各シー
ケンス内の処理を解析し、データパス系の論理回路を制
御するマイクロコードを生成する処理、115はマイク
ロコードのうち同時に実行可能なものを同一ステップで
実行することにより処理ステップ数を削減するマイクロ
コード圧縮処理、116はマイクロコードを格納するR
OMと生成されたマイクロコードに沿ってデータパス系
の論理回路を制御する信号線である命令デコーダの論理
回路を生成する処理、117はコプロセッサインタフェ
ース回路やレジスタ、マイクロプログラム制御回路など
コプロセッサ共通の論理回路を保持する周辺回路ライブ
ラリのファイル、118はデータパス系詳細論理生成1
13と命令デコーダ生成処理116で生成された論理回
路と周辺回路ライブラリ117に登録されている回路を
合成し、コプロセッサチップ全体の論理回路を生成する
処理、119は生成されたコプロセッサチップ全体の詳
細論理回路データのファイル、120はデータフローグ
ラフを解析し、外部から参照されるレジスタを抽出し、
それらのレジスタへのデータ転送処理をコプロセッサの
命令として割り付ける処理、121はデータパス系の論
理回路を起動するコプロセッサの命令を割り付ける処理
、122は生成されたコプロセッサの命令しようを保持
するファイルである。
次に第1図のフローチャートに沿って、実際にアセンブ
ラソースプログラムからコプロセッサチップの論理回路
を生成する処理を説明する。
第2図は入力となるアセンブラソースプログラムである
。このプログラムは第3図に示すプログラムをコンパイ
ルして得られるものである。第2図に示すプログラムは
サブルーチンインタフェース部削除処理103によりサ
ブルーチンインタフェース部分が削除される。インタフ
ェース部分は特定の命令列により構成されている。この
処理の結果を第4図に示す、第4図において402〜4
04行と421〜423行がインタフェース部分である
シーケンス分割処理105では、二一モニツタライブラ
リ104を参照し対象とするマイクロプロセッサの分岐
命令を調べ、アセンブラソースプログラムをラベルの付
いている行と分岐命令の次の行を先頭とする分岐のない
命令のシーケンスに分割する。分割した結果を第5図に
示す。この時、シーケンス先頭にラベルが存在していれ
ば、これをそのシーケンスの名称とし、存在していなけ
れば新たにラベルを発生しシーケンスの名称とする。
第5図では分岐命令が508,515,518行にあり
、ラベルが501,505,513,516゜519行
にある1分岐命令の次の行にラベルが存在しない510
行と先頭の502行に新たにラベルM%012M%02
 (502,509行)を追加し、これをシーケンス名
称とする。
コントロールフローグラフ作成処理106ではまず第6
図のように各シーケンスの実行順序関係をグラフで表現
する。このグラフをコントロールフローグラフと呼ぶ、
さらにM%02 (604)とL%34 (605)の
ように途中に分岐がなく、また他のシーケンスからの分
岐も無い場合は二つのシーケンスを併合する。この時、
先頭の命令シーケンスの名称を併合された命令シーケン
スの名称とする。併合した結果のコントロールフローグ
ラフを第7図に示す。
リソース命名処理107ではアセンブラの機械語命令と
オペランドを解析し、オペランドで参照されているデー
タに名称を付ける。このデータをデータリソースと呼ぶ
、データリソースは一般にマイクロプロセッサのレジス
タ、あるいはメモリ上の領域である。第8図の例ではレ
ジスタを示す%dnはRRn、サブルーチンの引数及び
プログラム内でのみ使用される変数であるn(%fp)
はRAiとRLjで表す、また&で始まる即値型のデー
タは変換しない。
データフローグラフ作成処理108では各命令シーケン
スについてデータリソース間の関連を表すデータフロー
グラフを作成する。あるデータリソースAにもう一つの
データリソースBを代入する場合はBからAへの有向枝
を設ける、AとBの演算Fの結果をCに代入する場合は
演算の内容を示す節点Fを新たに設け、AからF、Bか
らF、さらにFからCへの有向枝を設ける。比較命令な
どの状態コードを変化させるだけの命令は特別なデータ
リソースであるCC(Condition Code)
 Aの枝を設ける。さらにシーケンス間のデータリソー
スの関係も有向枝として表す、データフローグラフの例
を第9図に示す0図中でコントロールフローグラフは点
線で表現されている。
演算器リソース変換処理110ではデータフローグラフ
を解析し、不要なデータリソース(作業用のレジスタ、
戻り値を入れるレジスタ)を削除し、簡略化できる演算
器やレジスタにカウンタ、シフタ、アライナ等を導入す
る。また演算もA十B−)Aの形式から、A+B→Cの
形式に変更する。
通常、機械語命令ではA→B、B本C→B、B→Aとい
う形で八本B−40という演算を行なう0通常Bはレジ
スタである。これを、A宰C−+te腸P、tamp−
+Aという形式に書き直す、第9図の例ではシーケンス
93におけるRL2→RRI(931)、RRIXRA
I→RRI (932)。
RRI→RL2 (933)という一連の処理で。
RRlは作業用に利用されているためこれをtempを
用いることにより省略し、RL2XRA1→t amp
、t emp−+RL2とする。また1を加える処理(
934)と0の代入、及び参照しか行なわないRLIを
カウンタcounterに変換する。また戻り値を表す
RRIへの代入は省略する。変換の結果を第10図に示
す。
データパス系構造生成処理111ではデータリソースの
依存関係からデータパス系(レジスタと演算器による構
造)の構造の生成を行う、同一リソースに複数の入力が
ある場合はセレクタを導入する。第11図は第10図の
データフローグラフから生成したデータパス系の論理回
路の構成図である。データリソースRL2は1とレジス
タtempの値が入力されるためマルチプレクサ110
9が入力部分に挿入されている。
データパス系詳細論理生成処理113ではデータパス系
構造生成処理111で生成された構造に従い、リソース
回路ライブラリ112に登録されているレジスタ、マル
チプレクサ、ALU、カウンタ等の詳細論理回路を用い
てデータパス系の論理回路を生成する。第12図に生成
された論理回路を示す。
マイクロコード生成処理114ではデータフローグラフ
を参照し、各シーケンス毎に各リソースの動作状態を調
べてマイクロコードを生成する。
条件分岐は条件算出の次のステップで実行される。
同じリソースに対する演算に順序関係がある場合はその
順序に従い状態を割り当てる。第13図に割り当てられ
た状態を示す、この例では状態数は6である。
マイクロコード圧縮処理115ではマイクロコードの中
の動作の依存関係を調べ、ステップ数を削減するように
マイクロコードを最適化する6例えば[2]〜[5コの
ループの中で[4]で実行されるR L 2 X RA
 1−+ t e m Pの処理は[2コから[5]の
どこで実行しても構わない、また同じ[4]で実行され
るinc counterはカウンタcounterを
参照している[2]より後[3]〜[5]のどこで実行
しても構わない、処理ステップ数を減らすために早いス
テップで実行するように動作状態を変更すると第14図
に示すように状態数を5に減らせ、ループを構成する部
分についても1状態減らすことができる。これをデータ
パス系の論理回路の制御信号に対応した実際のマイクロ
コードに変換した結果を第15図に示す、状態数が5な
のでこれを3ビツトで表現する。1506がマイクロコ
ードROMの内容である。
命令デコーダ生成処理116では、生成したマイクロコ
ードとデータパス系の制御論理からマイクロコードを記
憶するマイクロプログラムROM(あるいはPLA)と
命令デコーダを生成する。
第16図に生成された命令デコーダの論理回路を示す、
デコーダの出力はデコードされた各ステップの動作に対
応した信号線に接続される。信号線が複数のステップで
アクティブになる場合は第16図1615のようにOR
ゲートを介して接続する。
チップレベル合成処理118ではあらかじめ用意されて
いるコプロセッサインタフェース回路。
レジスタ、マイクロプログラム制御回路と生成したデー
タパス系の論理回路、制御系の論理回路を組み合わせて
チップ全体の論理回路を合成する。
チップ全体の構成は第17図のようになる。この図で1
704が生成されたチップでそのうちデータパス論理回
路17o9及びマイクロプログラム+命令デコーダ17
08はアセンブラソースプログラムより得られた回路で
ある。得られた詳細な論理回路をファイル119に出力
する。このファイルは生成されたコプロセッサに用いら
れているレジスタやカウンタあるいはゲートなどの機能
論理素子の名称の羅列と各素子の端子間を結ぶ結線情報
の羅列よりなる。
外部参照レジスタ割り付は処理120及び、コプロセッ
サ命令割り付は処理121では、マイクロプロセッサに
用意されているコプロセッサ用の命令を生成したチップ
に合わせて割り当てる。命令は(1)レジスタ転送、(
2)演算の実行、(3)その他(例外処理等)からなり
、120ではデータパス系の入力、出力のレジスタをマ
イクロプロセッサからアクセスできるコプロセッサのレ
ジスタとして割り付け、レジスタ転送命令を割当てる。
さらにマイクロコードのシーケンスを起動する命令をコ
プロセッサの演算命令として割り当てる。
例えば第18図はコプロセッサ用の命令フォーマットの
一例であるがコプロセッサのレジスタへの書込み命令は
181の形式、コプロセッサのレジスタからの読みだし
命令は182の形式、演算の実行命令は183の形式で
ある。各形式のレジスタ番号フィールドreg#181
1及び1821にはコプロセッサのレジスタ番号が格納
されるが、ここではRAlをO,RA2を1、RL2を
2と順に割当てる。実行命令に関しては処理番号フィー
ルドexec#1831に処理を順に割当てる。
ここでは一つの処理のみ存在するので0を割当てる。
さらに割り当てられたコプロセッサの命令コードと対応
二一モニツクを列記したコプロセッサ命令仕様ファイル
122を作成する。
以上の実施例により、アセンブラソースプログラムに記
述された内容と同様の処理を行うコプロセッサの論理回
路を生成することができる。生成されたコプロセッサは
ループの繰返し回数nに対して3n+2クロツクで処理
を行う、一方、第2図に示すアセンブラソースプログラ
ムではサブルーチンインタフェース部分を除いた処理部
分で8n+3ステツプの処理を行う、仮に1ステツプを
1クロツクで実行した場合でも生成されたコブロセッサ
は2倍以上高速に処理を行うことができる。
第19図は本発明を用いてコプロセッサを作成する手順
を示す図である。入力となる高級言語プログラム190
1をコンパイラ19o2によりコンパイルし、オブジェ
クトプログラム19o3を得る。これを実際に目的のマ
イクロプロセッサ1904上で動作させ負荷の重い処理
を解析する(1905)。この解析結果をもとにコンパ
イラ1902のもう一つの出力であるアセンブラソース
プログラム1906がらコプロセッサ化するサブルーチ
ンを切り出す(1907)。切り出されたサブルーチン
について本発明を用いてコプロセッサの論理回路の生成
を行い(1908)チップレベルの詳細論理回路の情報
1909とコプロセッサ命令仕様のファイル191oを
得る。チップレベル詳細論理回路1909からコプロセ
ッサのチップを製造(1911)L、、コプロセッサチ
ップ1912を得る。またコプロセッサ命令仕様191
0を用いて高級言語ソースプログラム19o1をコンパ
イルしく1913)、コプロセッサ対応のオブジェクト
プログラム1914を得る。製造されたコプロセッサチ
ップ1912とコプロセッサ対応のオブジェクトプログ
ラム1914を用いることにより目的のマイクロプロセ
ッサ1915でコプロセッサを用いない場合のプログラ
ム1903よりも高速な処理を行うことができる。
〔発明の効果〕
以上のように本発明を用いることにより、マイクロプロ
セッサのアセンブラソースプログラムからその動作を高
速に行うコプロセッサの論理回路を得ることができる。
従来、マイクロプロセッサの能力を向上するためのコプ
ロセッサはメーカが用意した製品が存在するのみで、ユ
ーザが希望する仕様のコプロセッサを得ることは回路の
設計に多大な労力を必要とするため困難であったが、本
発明によりこの問題を解決することが可能になる。
【図面の簡単な説明】
第1図は本発明の処理手順を説明するフローチャート、
第2図は本発明の入力データとなるアセンブラソースプ
ログラムの一例、第3図は高級言語により記述したプロ
グラムでこれをコンパイルすることにより第2図の例を
得ることができる、第4図はアセンブラソースプログラ
ム中のサブルーチンインタフェース部分と分岐命令の例
を示す図、第5図はアセンブラソースプログラムを分岐
の無いシーケンスに分割した例、第6図はシーケンスの
実行順を表わしたコントロールフローグラフを表わす図
、第7図は併合可能なシーケンスを併合した結果できた
グラフを表わす図、第8図はアセンブラソースプログラ
ム中のデータリソースに名称を付けた結果を表わす図、
第9図はデータリソース間の関係を表わすデータフロー
グラフ、第10図は不要なデータリソースを削除し単機
能な演算器を割当てた後のデータフローグラフ、第11
図はデータフローグラフから生成したデータパス系の論
理の構造を表わす図、第12図はデータパス系の詳細な
論理回路を表わす図、第13図はデータパス系の論理を
制御する処理の手順を表わす図、第14図は圧縮してス
テップ数を減らしたデータパス系の制御処理手順を表わ
す図、第15図はデータパス系の制御信号とマイクロコ
ードを表わす図、第16図はマイクロプログラムROM
の内容と命令デコーダの論理回路を表わす図、第17図
は合成されたコプロセッサチップの構成を表わす図、第
18図はコプロセッサの命令フォーマットの例、第19
図は本発明を利用する手順を表わす図である。 91・・・シーケンスM%01.92・・・シーケンス
L%36.93・・・シーケンスM%o2.94・・・
シーケンスL%35,101・・・アセンブラソースプ
ログラムファイル、102・・・アセンブラソースプロ
グラム入力処理、103・・・サブルーチンインタフェ
ース部削除処理、104・・・二一モニツクライブラリ
ファイル、105・・・シーケンス分割処理、106・
・・コントロールフローグラフ作成処理、107・・・
リソース命名処理、108・・・データフローグラフ作
成処理、109・・・リソース最適化ライブラリファイ
ル、110・・・演算器リソース変換処理、111・・
・データパス系構造生成処理、112・・・リソース回
路ライブラリファイル、113・・・データパス系詳細
論理生成処理、114・・・マイクロコード生成処理、
115・・・マイクロコード圧縮処理、116・・・命
令デコーダ回路生成処理、117・・・周辺回路ライブ
ラリファイル、118・・・チップレベル合成処理、1
19・・・チップレベル詳細論理回路ファイル、120
・・・外部参照レジスタ割り付は処理、121・・・コ
プロセッサ命令割り付は処理、122・・・コプロセッ
サ命令仕様ファイル、181・・・レジスタ書込み命令
のフォーマット、182・・・レジスタ読み出し命令の
フォーマット、183・・・演算実行命令フォーマット
、601・・・プログラム名称、602・・・シーケン
スM%01.603・・・シーケンスL%36,604
・・・シーケンスM%02.605・・・シーケンスL
%34,606・・・シーケンスL%35,607・・
・シーケンスL%33,931・・・代入、932・・
・乗算、933・・・代入、934・・・加算、110
1・・・CPU側データパス、1102・・・カウンタ
、1103・・・レジスタRA2.1104・・・レジ
スタRAI、1105・・・レジスタRL2.1106
・・・コンパレータ、1107・・・乗算器、1108
・・・レジスタt emp、1109・・・マルチプレ
クサ、1110・・・カウンタリセット信号。 1111・・・カウンタインクリメント信号、1112
・・・−M信号、1113・・・レジスタt empロ
ード信号、1114・・・レジスタRL20−ド信号、
1115・・・セレクト信号、1501・・・カウンタ
リセット信号、1502・・・カウンタインクリメント
信号、1503・・・レジスタt empロード信号、
1504・・・レジスタRL20−ド信号、1505・
・・セレクト信号、1506・・・マイクロコード、1
601・・・アドレス線、16o2・・・マイクロプロ
グラムROM、1603・・・マイクロコード、160
4・・・デコーダ、1605・・・ORゲート、160
6・・・カウンタリセット信号、1607・・・レジス
タRL20−ド信号、1608・・・レジスタt em
pロード信号、1609・・・カウンタインクリメント
信号、1610・・・セレクト信号、17o1・・・マ
イクロプロセッサ、1702・・・データパス、170
3・・・コプロセッサインタフェース信号、17o4・
・・コプロセッサ、1705・・・コプロセッサインタ
フェース回路、1706・・・レジスタ群、1707・
・・マイクロプログラム制御回路、1708・・・マイ
クロプログラム+命令デコーダ、1709・・・データ
パス論理回路、1811・・・レジスタ番号フィールド
、1821・・・レジスタ番号フィールド、1831・
・・処理番号フィールド、19o1・・・高級言語ソー
スプログラム、1902・・・コンパイラ、1903・
・・オブジェクトプログラム、1904・・・ターゲッ
トマイクロプロセッサ、1905・・・処理解析処理、
1906・・・アセンブラソースプログラム、1907
・・・サブルーチン切り出し処理、1908・・・コプ
ロセッサ生成処理、1909・・・チップレベル詳細論
理回路ファイル、1910・・・コプロセッサ命令仕様
ファイル、1911・・・チップ製造、1912・・・
コプロセッサチップ、1913・・・コンパイラ、19
14・・・オブジェクトプログラム、1915・・・タ
ーゲットマイクロプロ第1図 第2図 br      L%36 第3図 fac+  (x、   y) 1n電  x、   y: int   1  vat: jor  (i  =O,val  =  I;  i
  <  y;  i十+)  1vsl  w  v
al   *  x:r@turn  (vat  )
  :第4図 415           add    &l、−
4(%fp)416            br  
    L%36417  L%35二 41g           mow  、  −8(
%fp)、%d。 419            br      L%
335(N     fact: 502  M%01: 508           bg・   1%355
09  M%02: 514           add    &I、−
4 (%fp1515             br
      L%36516 1%35: 517           nov    −8(%
fp)、%d0518            br 
     L%33519   L9A33: 第6図 [101facl 802  M%01: 1]Q3              alr    
 RLI804             mov  
   &I    RL2gos   L@A3s: 806              mov     
RLI   RR+807           cm
p    RAT  RA28011        
   b9・   L%35809  M%02: 810              mow     
RL2  RR+811              
muts    RAT   RR+8+2     
        mov     RAT   RL2
813   L9A3<: 814           add    &1  
 日L1B+5            br    
  L%36816 1%35: 1117           mov    RL2
  日R181θ           br    
  L%33819  L%33: 第9図 第10図 第11図 第12図 第13図 第14図 第16図 デコーダ 第17図 第19図

Claims (1)

  1. 【特許請求の範囲】 1、高級言語のコンパイル出力であるアセンブラソース
    プログラムのうち指示された部分について、プログラム
    シーケンスを解析し、データリソースを解析し、データ
    フローグラフを作成し、データパス系の構造を生成し、
    データパス系の論理を生成し、マイクロコードを生成し
    、命令デコーダを生成し、レジスタ及び拡張命令の割当
    をし、チップレベルの論理回路を合成することにより、
    与えられたアセンブラソースプログラムから、そのプロ
    グラムと同等の動作を行うハードウェアの論理回路とそ
    の論理回路を動作させる命令セットを生成することを特
    徴とするコプロセッサ論理回路自動生成方法。 2、特許請求の範囲第1項記載の方法を行なう前に、プ
    ログラム中の実行頻度の高い部分を自動的に解析、抽出
    し、これを入力としてそのプログラムと同等の動作を行
    うハードウェアの論理回路とその論理回路を動作させる
    命令セットを生成することを特徴とするコプロセッサ論
    理回路自動生成方法。
JP2302412A 1990-11-09 1990-11-09 コプロセッサ論理回路自動生成方法 Pending JPH04175974A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2302412A JPH04175974A (ja) 1990-11-09 1990-11-09 コプロセッサ論理回路自動生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2302412A JPH04175974A (ja) 1990-11-09 1990-11-09 コプロセッサ論理回路自動生成方法

Publications (1)

Publication Number Publication Date
JPH04175974A true JPH04175974A (ja) 1992-06-23

Family

ID=17908610

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2302412A Pending JPH04175974A (ja) 1990-11-09 1990-11-09 コプロセッサ論理回路自動生成方法

Country Status (1)

Country Link
JP (1) JPH04175974A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003505753A (ja) * 1999-06-10 2003-02-12 ペーアーツェーテー インフォルマツィオーンステヒノロギー ゲゼルシャフト ミット ベシュレンクテル ハフツング セル構造におけるシーケンス分割方法
JP2006048201A (ja) * 2004-08-02 2006-02-16 Mori Seiki Co Ltd プログラム変換装置
JP2006243838A (ja) * 2005-02-28 2006-09-14 Toshiba Corp プログラム開発装置
US7124311B2 (en) 2002-05-30 2006-10-17 Nec Electronics Corporation Method for controlling processor in active/standby mode by third decoder based on instructions sent to a first decoder and the third decoder
JP2008505397A (ja) * 2004-06-30 2008-02-21 コヒーレント ロジックス インコーポレイテッド ハードウェア記述言語(hdl)プログラムの実行
US7707386B2 (en) 2004-01-30 2010-04-27 Kabushiki Kaisha Toshiba Program segment searching for extension instruction determination to design a processor that meets performance goal
EP2921962A1 (en) 2014-03-19 2015-09-23 Fujitsu Limited Operation processing apparatus and operation processing method

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003505753A (ja) * 1999-06-10 2003-02-12 ペーアーツェーテー インフォルマツィオーンステヒノロギー ゲゼルシャフト ミット ベシュレンクテル ハフツング セル構造におけるシーケンス分割方法
US7124311B2 (en) 2002-05-30 2006-10-17 Nec Electronics Corporation Method for controlling processor in active/standby mode by third decoder based on instructions sent to a first decoder and the third decoder
US7707386B2 (en) 2004-01-30 2010-04-27 Kabushiki Kaisha Toshiba Program segment searching for extension instruction determination to design a processor that meets performance goal
JP2008505397A (ja) * 2004-06-30 2008-02-21 コヒーレント ロジックス インコーポレイテッド ハードウェア記述言語(hdl)プログラムの実行
JP2006048201A (ja) * 2004-08-02 2006-02-16 Mori Seiki Co Ltd プログラム変換装置
JP2006243838A (ja) * 2005-02-28 2006-09-14 Toshiba Corp プログラム開発装置
US7917899B2 (en) 2005-02-28 2011-03-29 Kabushiki Kaisha Toshiba Program development apparatus, method for developing a program, and a computer program product for executing an application for a program development apparatus
EP2921962A1 (en) 2014-03-19 2015-09-23 Fujitsu Limited Operation processing apparatus and operation processing method

Similar Documents

Publication Publication Date Title
CN109213723B (zh) 一种用于数据流图处理的处理器、方法、设备、及一种非暂时性机器可读介质
US10469397B2 (en) Processors and methods with configurable network-based dataflow operator circuits
JP3180075B2 (ja) 異なる命令コード相互間の動的変換装置及び方法
JP2869379B2 (ja) プロセッサ合成システム及びプロセッサ合成方法
Barat et al. Reconfigurable instruction set processors from a hardware/software perspective
US7559051B2 (en) Source-to-source partitioning compilation
JPH05143332A (ja) 命令スケジユーラを備えたコンピユータ・システム及び入力命令シーケンスを再スケジユールする方法
JPH11513512A (ja) ディジタル信号プロセッサの製造方法
US4484274A (en) Computer system with improved process switch routine
US20010025363A1 (en) Designer configurable multi-processor system
Chattopadhyay et al. LISA: A uniform ADL for embedded processor modeling, implementation, and software toolsuite generation
US20220197616A1 (en) Compilation framework for hardware configuration generation
JPH04175974A (ja) コプロセッサ論理回路自動生成方法
US6012138A (en) Dynamically variable length CPU pipeline for efficiently executing two instruction sets
Wilberg et al. Design flow for hardware/software cosynthesis of a video compression system
US7028162B2 (en) Configurable processing block capable of interacting with external hardware
Stripf et al. A compilation-and simulation-oriented architecture description language for multicore systems
CN106557312A (zh) 程序开发支援装置以及程序开发支援软件
US20040236929A1 (en) Logic circuit and program for executing thereon
EP1194835A2 (en) Method and apparatus for loose register encoding within a pipelined processor
JP2025525318A (ja) 拡張可能命令セットアーキテクチャを有する再設定可能なニューラルエンジン
Harbaum et al. Auto-SI: An adaptive reconfigurable processor with run-time loop detection and acceleration
Agron et al. Building heterogeneous reconfigurable systems with a hardware microkernel
Togawa et al. A hardware/software cosynthesis system for digital signal processor cores
JP2004118518A (ja) シミュレータ、そのシミュレータをコンピュータ読み取り可能に記録した記録媒体