JP2869379B2 - プロセッサ合成システム及びプロセッサ合成方法 - Google Patents

プロセッサ合成システム及びプロセッサ合成方法

Info

Publication number
JP2869379B2
JP2869379B2 JP8058749A JP5874996A JP2869379B2 JP 2869379 B2 JP2869379 B2 JP 2869379B2 JP 8058749 A JP8058749 A JP 8058749A JP 5874996 A JP5874996 A JP 5874996A JP 2869379 B2 JP2869379 B2 JP 2869379B2
Authority
JP
Japan
Prior art keywords
processor
instruction
field
parameter
definition information
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 - Lifetime
Application number
JP8058749A
Other languages
English (en)
Other versions
JPH09251477A (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP8058749A priority Critical patent/JP2869379B2/ja
Priority to US08/720,627 priority patent/US5896521A/en
Publication of JPH09251477A publication Critical patent/JPH09251477A/ja
Application granted granted Critical
Publication of JP2869379B2 publication Critical patent/JP2869379B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Devices For Executing Special Programs (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、デジタル処理に
よる制御に用いられる特定用途向けLSI(ASIC:
Application Specific Inte
grated Circuit)を実現するプロセッサ
合成システムに関するものである。実現されたASIC
は、制御機器のコントローラ部、マルチメディア機器の
シーケンスコントローラ部、家電製品のコントローラ部
等に用いられる。
【0002】
【従来の技術】従来のASICにおいては、汎用のマイ
クロプロセッサが中央演算処理ユニット(CPU:Ce
ntral Processing Unit)として
内蔵されていた。汎用のマイクロプロセッサを用いる場
合、市販のマイクロプロセッサをそのまま利用できると
いう簡便さはあるが、既存のハードウェアに依存すると
いう欠点もあった。具体的には、例えば、既存のハード
ウェアはCPUビット幅が、8ビット、16ビット、3
2ビット...という2のn乗で設計されている。その
ため、比較的規模の小さいコントローラ部で、制御論理
も加減演算やビット制御等を主体としたシンプルな論理
である場合、未使用の機能を持つという欠点があった。
例えば、制御論理を10ビットのCPUビット幅で十分
実現できる場合、汎用のマイクロプロセッサには10ビ
ットのマイクロプロセッサがないことから16ビットマ
イクロプロセッサを用いることになり、6ビットが未使
用となる。また、CPUビット幅は、直接チップ全体の
大きさに影響する。それゆえ、未使用の6ビットを持つ
CPUを搭載したチップは冗長性の高いチップになると
いう欠点がある。このため、実現しようとする機能に最
適なビット幅のCPUを合成できるシステムが望まれて
いた。
【0003】現在、ASIC上に、CPUを配置する技
術として、メガセル(mega cell)が知られて
いる。メガセルとは巨大なセルという意味である。この
メガセルは、特定のASICテクノロジーにおいてマス
クレベルでカスタムデザインされたマイクロプロセッサ
である。メガセルは、例えば、16ビットプロセッサ又
は32ビットプロセッサとして、あらかじめデザインさ
れたマイクロプロセッサである。このことから、アプリ
ケーションが16ビット以外又は32ビット以外のプロ
セッサを要求するとき、或いは、アプリケーションが新
しいテクノロジー(次世代テクノロジー)に移行すると
き、メガセルは再設計(redesign)されなけれ
ばならないという問題が発生する。メガセルがトランジ
スタレベルで設計されているから、この再設計プロセス
は費用がかさみ、またスケジュール遅延の原因となるも
のである。このため、トランジスタレベルよりも上位の
設計が可能なシステムが望まれていた。また、ASIC
のCPU以外の部分とメガセルではテクノロジーが異な
るためシステムシミュレーション及びエミュレーション
が容易に行えないという問題があった。
【0004】モジュールコンパイラは、モジュールの機
能とビット幅などの必要な情報をパラメータとして与え
たとき、そのモジュールのレイアウトパターンを自動生
成するツールである。図35は、「ASIC技術の基礎
と応用」(電子情報通信学会編、今井正治編著、電子情
報通信学会発行、平成6年2月20日、初版発行、pp
60〜61)に記載されている従来のモジュールコンパ
イラによるモジュール自動生成の機能構成を示す図であ
る。モジュール自動生成は、図35に示すように、RA
M(Random Access Memory)、R
OM(Read Only Memory)、ALU
(Arithmetic Logic Unit)など
の回路ネット及びレイアウトパターンをプログラム化し
たモジュール自動生成とデザインルールを格納したテク
ノロジーファイルから成っている。テクノロジーフリー
につくられた自動生成では、テクノロジーを変更するこ
とにより1.3μm、1.0μm、0.8μmなどのパ
ターンを生成することができる。ユーザは、ワード数や
ビット幅といったデータを指定するだけでよい。
【0005】次に、従来の論理合成システムについて説
明する。図36及び図37は、従来の論理合成システム
である「つつじ」(株式会社図研製)の使用形態を示す
図である。図36において、「つつじ」850は、設計
者がCAD(ComputerAided Desig
n)システム等を用いて作成したブロックダイアグラム
810を入力し、論理合成を行い、ネットリスト860
を出力する。出力されたネットリストをもとに半導体チ
ップが製造される。図37は、入力がブロックダイアグ
ラムでなくハードウェア記述言語(HDL:Hardw
are Description Language)
が用いられる場合を示している。「つつじ」のHDL
は、LDF(Logic Description F
ormat)である。「つつじ」850は、LDF82
0を入力し、論理合成を行い、ネットリスト860を出
力する。この論理合成システム「つつじ」においては、
入力で使う機能部品がメーカに依存せず、出力のネット
リストが特定の半導体メーカのフォーマットで生成でき
るため、半導体テクノロジーに依存しないチップの設計
ができる。
【0006】図38及び図39は、特開平3−1448
29号公報に開示された「可変ターゲットコンパイラ方
式」のブロック図である。図38は、全体構成を示すブ
ロック図である。コンパイラ911は、構文解析手段9
12とコード生成手段913とターゲット指定認識手段
914とターゲット依存情報保持手段915と、中間言
語916とから成る。構文解析手段912は、ソースプ
ログラム917を入力して特定の計算機アーキテクチャ
に依存しない独立した中間言語916に翻訳する。コー
ド生成手段913は、中間言語916を入力し、ターゲ
ット指定認識手段914により認識された計算機アーキ
テクチャをターゲットとしてターゲット依存情報保持手
段915に保持された詳細情報を参照して、入力した中
間言語916をオブジェクトプログラムに変換する。タ
ーゲット依存情報保持手段915に保持される詳細情報
とは、計算機の機械語命令セット、レジスタの種類や個
数、データ形式、アドレッシング体系などのハードウェ
ア構成や実行特性である。図39は、この従来例の具体
的な使用例を示すブロック図である。図39に示すよう
に、この従来例によれば、1つのソースプログラム91
7から、同一のコンパイラ911を用いて計算機アーキ
テクチャ920a,920b,920cにそれぞれ対応
するオブジェクトプログラム918a,918b,91
8cを得ることができる。
【0007】上記と同様に、可変ターゲット(reta
rgetable)を実現したコンパイラとして、GN
U(GNU is not UNIX)のCコンパイラ
であるGCC(General purpose C
Compiler)がある。GNUとは、米国のFre
e Software Foundation社が無償
で配布しているソフトウェアの総称である(情報・通信
新語辞典96年版、1995年10月9日、1版1刷、
日経BP出版センター編、発行p397による)。パブ
リックドメインソフトとして、C.W.Fraser
(AT&T Bell Lab),D.R.Hanso
n(Princeton Univ.)が作ったlcc
コンパイラがある。本ソフトも、インターネットで入手
できるパブリックメインソフトである。本コンパイラ
は、既にSPARC、MIPS R3000、INTE
L 386といったプロセッサの命令コードが出力でき
るリターゲッタブルコンパイラである。上記コンパイラ
は、ターゲットとなる計算機をパラメータとして与える
と、ソースプログラムからその計算機のアーキテクチャ
に適合したオブジェクトプログラムを作成するものであ
る。計算機のアーキテクチャとは、例えば、インテル社
の8086、モトローラ社のMC68000などであ
る。即ち、これらのコンパイラは、ハードウェアアーキ
テクチャが、まず、最初に決定されていることを前提に
しており、予め、ハードウェアアーキテクチャの詳細情
報を保存しておくことにより可変ターゲットを実現して
いる。従って、ハードウェアアーキテクチャをこれから
決定しようとするとき、即ち、新たなCPUをデザイン
するとき、デザインされたCPUに対応するコンパイラ
を即座に得ることはできない。
【0008】
【発明が解決しようとする課題】この発明は、以上のよ
うな問題点を解決する為になされたものであり、用途に
応じたビット幅やレジスタ数をパラメータとして与える
ことにより、コスト効率の良いプロセッサの合成が可能
なプロセッサ合成システム及びプロセッサ合成方法を得
ることを目的としている。また、合成するプロセッサア
ーキテクチャに対応したソフトウェアの開発工数を削減
できるプロセッサ合成システム及びプロセッサ合成方法
を得ることを目的としている。さらに、設計中のプロセ
ッサ及びハードウェアに依存しない言語で記述されたプ
ログラムを用いたシミュレーションが可能なプロセッサ
合成システム及びプロセッサ合成方法を得ることを目的
としている。
【0009】
【課題を解決するための手段】この発明のプロセッサ合
成システムは、以下の要素を備えたことを特徴とする。 (a)一次パラメータを入力して二次パラメータを計算
して出力するパラメータ生成部、(b)上記パラメータ
生成部により生成された二次パラメータに従ってプロセ
ッサを生成するためのプロセッサ定義情報を出力するプ
ロセッサ生成部。
【0010】上記一次パラメータは、レジスタファイル
のレジスタ数、CPUビット幅、データメモリサイズ及
び命令メモリサイズであることを特徴とする。
【0011】上記プロセッサ生成部が出力するプロセッ
サ定義情報は、ハードウェア記述言語であることを特徴
とする。
【0012】上記ハードウェア記述言語は、「つつじ」
(株式会社図研製)で用いられるLDF(Logic
Description Format)であることを
特徴とする。
【0013】上記ハードウェア記述言語は、VHDL
(Very High SpeedIC Hardwa
re Description Language)で
あることを特徴とする。
【0014】上記ハードウェア記述言語は、Veril
og−HDL(Verilog−Hardware D
escription Language)であること
を特徴とする。
【0015】上記プロセッサ合成システムは、さらに、
上記パラメータ生成部により生成された二次パラメータ
に従って、上記プロセッサ生成部が出力するプロセッサ
定義情報により生成されるプロセッサを動作させる命令
を生成する命令生成部を備えたことを特徴とする。
【0016】上記命令生成部は、上記プロセッサ生成部
が出力するプロセッサ定義情報により生成されるプロセ
ッサに適合したコードを生成する、所定のプログラミン
グ言語のコンパイラを生成するコンパイラ生成部を備え
たことを特徴とする。
【0017】上記命令生成部は、さらに、上記コンパイ
ラ生成部により生成されたコンパイラを実行して出力さ
れるコードを入力しアセンブルして命令コードを出力す
るアセンブラを生成するアセンブラ生成部を備えたこと
を特徴とする。
【0018】上記プロセッサは、1つの命令が複数フィ
ールドから構成されている複数種類の命令からなる所定
の命令コード体系を有しており、上記パラメータ生成部
は入14力された一次パラメータの値に基づいて各命令
の各フィールドの長さを二次パラメータとして決定し、
上記プロセッサ生成部及び上記命令生成部は、上記所定
の命令コード体系の命令の種類を維持したまま、二次パ
ラメータとして決定された各命令の各フィールドの長さ
に適合するようにプロセッサ定義情報及び命令を生成す
ることを特徴とする。
【0019】上記プロセッサは、複数のレジスタを備え
たレジスタファイルを有し、上記複数フィールドは上記
複数のレジスタに対応するアドレスを示すレジスタアド
レスフィールドを有し、上記レジスタアドレスフィール
ドのビット幅をレジスタファイルのレジスタ数から決定
することを特徴とする。
【0020】上記複数フィールドは、データメモリのア
ドレスを示すデータアドレスフィールドを有し、上記デ
ータアドレスフィールドのビット幅をデータメモリサイ
ズから決定することを特徴とする。
【0021】上記複数フィールドは、ジャンプ先を示す
ジャンプアドレスフィールドを有し、上記ジャンプアド
レスフィールドのビット幅を命令メモリサイズから決定
することを特徴とする。
【0022】上記複数フィールドは、命令の種類を指定
するオペレーションコードフィールドと算術演算を制御
するマイクロコントロールフィールドとレジスタのアド
レスを示すレジスタアドレスフィールドと、データメモ
リのアドレスを示すデータアドレスフィールドと、ジャ
ンプ先を示すジャンプアドレスフィールドとを有し、上
記命令のトータルビット数は、オペレーションコードフ
ィールドのビット幅と、マイクロコントロールフィール
ドのビット幅にレジスタアドレスフィールドのビット幅
の3倍を加算した値と、レジスタアドレスフィールドの
ビット幅に命令アドレスフィールドのビット幅を加算し
た値と、レジスタアドレスフィールドのビット幅にジャ
ンプアドレスフィールドのビット幅を加算した値と、レ
ジスタアドレスフィールドのビット幅にCPUビット幅
を加算した値の最大値とを加算して決定されることを特
徴とする。
【0023】上記プロセッサ合成システムは、さらに、
上記命令生成部により生成された命令を用いて、プロセ
ッサ生成部が出力するプロセッサ定義情報により生成さ
れるプロセッサのシミュレーションを実行するシミュレ
ーション実行部を備えたことを特徴とする。
【0024】この発明のプロセッサ合成方法は、以下の
工程を有することを特徴とする。 (a)一次パラメータを入力する入力工程、(b)入力
された一次パラメータに従ってプロセッサを生成するた
めのプロセッサ定義情報を生成して出力するプロセッサ
定義情報出力工程。
【0025】上記プロセッサ定義情報出力工程は、あら
かじめ、複数フィールドからなる命令の体系を記憶して
おく命令体系記憶工程と、一次パラメータに従って命令
を構成する各フィールドの長さを計算するフィールド長
計算工程と、上記命令の体系と各フィールドの長さとに
基づいてプロセッサ定義情報を生成するプロセッサ定義
情報生成工程とを備えたことを特徴とする。
【0026】上記プロセッサ合成方法は、さらに、上記
入力工程で入力された一次パラメータに従って、上記プ
ロセッサ定義情報出力工程で出力されたプロセッサ定義
情報により生成されるプロセッサを動作させる命令を生
成して出力する命令出力工程を有することを特徴とす
る。
【0027】上記命令出力工程は、あらかじめ、複数フ
ィールドからなる命令の体系を記憶しておく命令体系記
憶工程と、一次パラメータに従って命令を構成する各フ
ィールドの長さを計算するフィールド長計算工程と、上
記命令の体系と各フィールドの長さとに基づいて、所定
のプログラミング言語で記述されたプログラムを翻訳し
て命令を生成する命令生成工程とを備えたことを特徴と
する。
【0028】上記プロセッサ合成方法は、さらに、上記
命令生成工程により生成された命令に基づいて、上記プ
ロセッサ定義情報出力工程により出力されたプロセッサ
定義情報により生成されるプロセッサの動作をシミュレ
ーションするシミュレーション工程を備えたことを特徴
とする。
【0029】上記入力工程は、上記一次パラメータとし
て、レジスタファイルのレジスタ数、CPUビット幅、
データメモリサイズ及び命令メモリサイズを入力するこ
とを特徴とする。
【0030】上記プロセッサ定義情報出力工程により出
力されるプロセッサ定義情報は、ハードウェア記述言語
であることを特徴とする。
【0031】上記命令生成工程は、所定のプログラミン
グ言語で記述されたプログラムを入力しコンパイルして
コードを出力するコンパイラを生成するコンパイラ生成
工程と、上記コンパイラ生成工程により生成されたコン
パイラに、上記プログラミング言語で記述されたプログ
ラムを入力してコードを出力するコンパイル工程とを有
することを特徴とする。
【0032】上記命令生成工程は、さらに、上記コンパ
イル工程でコンパイラにより出力されるコードを入力し
アセンブルして命令コードを出力するアセンブラを生成
するアセンブラ生成工程と、上記アセンブラ生成工程に
より生成されたアセンブラに、上記コンパイル工程でコ
ンパイラにより出力されたコードを入力しアセンブルし
て命令コードを出力するアセンブル工程とを有すること
を特徴とする。
【0033】
【発明の実施の形態】
実施の形態1.以下の実施の形態においては、論理合成
システムとして、従来例にも述べた「つつじ」を使用す
る場合について説明するが、「つつじ」の代りに他の論
理合成システムを適用しても構わない。また、アプリケ
ーションソフトウェアを記述する高級言語の一例とし
て、C言語で記述する場合について説明するが、他の言
語でも構わない。以下、この明細書においては、この発
明のプロセッサ合成システム及びプロセッサ合成方法に
より合成されるプロセッサをASAPという。また、こ
の発明のプロセッサ合成システムをASAP合成システ
ムという。まず、ASAP合成システムの概略について
述べる。ASAP(Application Spec
ific AdaptableProcessor)合
成システムは、「つつじ」論理合成システムの高位論理
合成の拡張である。ASAP合成システムは、設計者に
より与えられる一次パラメータに従ってCPUを合成す
るためのシステムである。CPUを合成するための一次
パラメータは、CPUビット幅、レジスタファイルのレ
ジスタ数、データメモリサイズ及び命令メモリサイズ
(インストラクションメモリサイズ)である。これらの
一次パラメータはすべて、合成されるプロセッサのコス
トに直接影響する。この発明によるプロセッサは、AS
ICと同じテクノロジーを用いて合成される。プロセッ
サ以外の他の部分もASICテクノロジーで作成され
る。このように、この発明の半導体チップは、プロセッ
サと他の部分(CPU以外の周辺機器部分)とが同一の
テクノロジーで合成されるので、シミュレーションが容
易である。また、プロセッサがASICと同じテクノロ
ジーを用いて合成されるので、他のテクノロジーへのポ
ータビリティの問題が排除される。また、この発明によ
るプロセッサは、CPUビット幅を、用途の要求に応じ
てカスタマイズするので、最大のコスト効率が得られ
る。例えば、所定のアプリケーションに11ビットのプ
ロセッサが必要とされるとき、従来メガセルを用いてい
たときのように16ビットや32ビットのプロセッサで
はなく、11ビットのプロセッサが合成される。
【0034】図1は、この発明のプロセッサ合成システ
ムのブロック図である。パラメータ生成部100は、一
次パラメータ10を入力して二次パラメータを生成して
出力する。入力する一次パラメータは、レジスタファイ
ルのレジスタ数12、CPUビット幅14、データメモ
リサイズ16、命令メモリサイズ18である。プロセッ
サ生成部130は、パラメータ生成部100により生成
された二次パラメータに従って、プロセッサ定義情報1
33を生成し、出力する。出力されるプロセッサ定義情
報133は、ハードウェア定義言語(例えば、「つつ
じ」に入力されるLDF:Logic Descrip
tion Language)で記述されている。出力
されるプロセッサ定義情報133は、図1では省略され
ているが、論理合成システム「つつじ」に入力され、ネ
ットリストを出力するために使用される。プロセッサ生
成部130から出力されるプロセッサ定義情報133に
は、生成されるCPUを定義する情報が含まれている。
CPU170は、データメモリ172、複数のレジスタ
からなるレジスタファイル174、ALU176及び命
令メモリ178から構成されている。命令メモリを、以
下、インストラクションメモリと呼ぶこともある。命令
生成部150は、コンパイラ生成部155とアセンブラ
生成部160を含む。コンパイラ生成部は、パラメータ
生成部により生成された二次パラメータに従って、プロ
セッサ生成部により出力されるプロセッサ定義情報に対
応するコンパイラ157を生成する。また、アセンブラ
生成部160は、パラメータ生成部により生成された二
次パラメータに従って、プロセッサ生成部により出力さ
れるプロセッサ定義情報に対応するアセンブラ163を
生成する。生成されたコンパイラ157に、高級言語
(C言語)で記述されたアプリケーションソフトウェア
153を入力すると、コンパイル(翻訳)が行われ、中
間言語であるコード159が出力される。出力されたコ
ード159をアセンブラ163に入力し、アセンブルす
ると、機械語の命令コード165が出力される。このよ
うに生成された命令コード165は、プロセッサ定義情
報に基づいて生成されるCPUの命令メモリ178に保
持され、実行される。この発明のプロセッサ合成システ
ムは、さらに、シミュレーション実行部167を備えて
おり、生成しようとするCPUを実際に製造する前に、
生成された命令コードを用いて、シミュレーションを行
うことができる。設計者は、シミュレーションの実行結
果により、一次パラメータを変更したり、アプリケーシ
ョンソフトウェアを書き直したりして、生成するプロセ
ッサを最適化することができる。
【0035】図2は、一次パラメータ10の詳細を示す
図である。入力する一次パラメータは、レジスタファイ
ル174のレジスタ数12、ALU176のビット幅で
あるCPUビット幅14、データメモリ172のビット
幅であるデータメモリサイズ16、命令メモリ178の
ビット幅である命令メモリサイズ18である。
【0036】図3は、この発明のプロセッサ合成システ
ムが稼働するハードウェア構成を示す図である。コンピ
ュータシステム6は、表示部6a、キーボード6b、マ
ウス6c、マウスパッド6d、システムユニット6eな
どから構成される。
【0037】また、前述したように、ASAP合成シス
テムは、高位設計とアルゴリズム記述の整合性をとるた
めに、C言語用のコンパイラ生成部を備えている。従来
のプロセッサは、1つの構成(命令フォーマット及びレ
ジスタ数等のハードウェア構成)しか持たなかったため
に、その構成(命令フォーマット及びレジスタ数等のハ
ードウェア構成)に対応する所定の言語のコンパイラを
1つ備えていれば十分であった。ASAPは、以下に述
べる同一の「基本アーキテクチャ」に基づく複数のCP
Uのバリエーションをとるので、合成されるCPUに適
合するコンパイラを提供するコンパイラ生成部(コンパ
イラジェネレータ)が必要である。コンパイラジェネレ
ータは、図1に示すプロセッサ生成部と同じパラメータ
を入力する。アプリケーションソフトウェアは、生成さ
れたC言語用のコンパイラでコンパイルされ、最終的に
機械語レベルの命令が、合成されるプロセッサの命令メ
モリ(インストラクションメモリ)にロードされる。
【0038】コンパイラは、アプリケーションソフトウ
ェアを二次パラメータに従って、CPUに適合させる。
図4に示すように、10ビットの変数をASAPの拡張
C言語のプログラム内で使用するとき、10ビットのC
PUビット幅を持つCPUの場合には、レジスタのビッ
ト幅も10ビットとなり、単精度命令になる。また、5
ビットのCPUビット幅を持つCPUの場合には、レジ
スタのビット幅は5ビットとなり、キャリーが加算され
る一組の倍精度命令になる。
【0039】以下に、この発明のプロセッサの「基本ア
ーキテクチャ」について述べる。ASAPは、RISC
アーキテクチャのコンピュータである。それぞれの機械
語の命令は、命令メモリの1ワードを占める。命令メモ
リとデータメモリのビット幅は、異なるものとする。す
べての命令は、1クロックサイクルで実行される。シン
グルサイクル命令の実行は、データメモリと命令メモリ
を分離することと、2つのリードポートと1つのライト
ポートを有するレジスタファイルを備えることにより達
成されている。
【0040】入出力(I/O).入力/出力は、メモリ
にマップされる。データメモリの所定のアドレスにデー
タを書き込むことにより、データは、データメモリに書
き込まれる代わりに、出力ポート(図示せず)のアウト
プットレジスタ(図示せず)にロードされる。また、デ
ータメモリの所定の位置からデータを読み込むことによ
り、入力ポート(図示せず)からデータの入力が行われ
る。
【0041】オペランドアドレッシング.ALUのオペ
ランドは、レジスタファイルに保持され、レジスタ番号
によりアドレスされる。ただし、ショートイミーディエ
ットオペランドについては、この限りではない。ショー
トイミーディエットオペランドは、命令語ショートイミ
ーディエットオペランドフィールドにより与えられる。
ショートイミーディエットオペランドフィールドのビッ
ト幅は、通常データメモリの1ワードよりも短いことが
多い。ショートイミーディエットオペランドの役割は、
データメモリポインタの値をスモールフィックストアマ
ウント(小さな数のインクリメントやデクリメントの修
飾がかけられる)により増減させることである。
【0042】データメモリアドレッシング.データメモ
リは、直接アドレス又は間接アドレスによりアドレスさ
れる。直接アドレスの時、アドレスは命令語により与え
られる。間接アドレスの時は、レジスタファイルのレジ
スタに保持された値によりアドレスされる。レジスタフ
ァイルの1ワードのビット数をnとし、データメモリが
2のn乗ワードよりも大きい時、オプションのデータメ
モリアドレスレジスタが合成される。合成されたデータ
メモリアドレスレジスタは、アドレスの上位ビットを保
持する。保持された上位ビットは、レジスタファイルか
ら最初にロードされなければならない。
【0043】命令メモリアドレッシング.命令メモリ
は、プログラムカウンタ内のプログラムカウンタレジス
タによりアドレスされる。プログラムカウンタは、プロ
グラムの流れを変更するために、いくつかの方法のうち
の1つの方法でプログラムカウンタレジスタ値を変更す
る。通常は、プログラムカウンタは連続した次のアドレ
スを計算する。連続した次のアドレスは、プログラムカ
ウンタ加算器が、現在のアドレスに1を加算して算出す
る。相対ジャンプアドレスも、上記プログラムカウンタ
加算器により、現在のアドレスに命令語の加算部を加算
することにより算出される。加算部の値は、正、負のい
ずれかであり、正の値の時は、アドレスは結果的に加算
されるので、前方(順方向)に分岐し、負の値の時は、
アドレスは結果的に減算されるので、後方(逆方向)に
分岐する。ダイレクトジャンプ(直接ジャンプ)の時に
は、プログラムカウンタの現在保持している値は、命令
語のアドレス部の値により完全に置き換えられる。さら
に、プログラムカウンタに、レジスタファイルのレジス
タの値を直接ロードして、ジャンプが実行されることも
ある。このタイプのジャンプをインダイレクトジャンプ
(間接ジャンプ)と呼ぶ。レジスタファイルの1ワード
のビット数をnとし、命令メモリが2のn乗ワードより
も大きい時、オプションの命令メモリアドレスレジスタ
が合成される。合成された命令メモリアドレスレジスタ
は、アドレスの上位ビットを保持する。保持された上位
ビットは、レジスタファイルから最初にロードされなけ
ればならない。
【0044】次に、ハードウェアについて説明する。図
5に、ASAPプロセッサの機能ブロック図を示す。図
5において、コントロールロジック及びデータバスの細
部については省略されている。
【0045】ALU.ALU(Arithmetic
Logic Unit)は、通常は、レジスタファイル
から2つのオペランドを入力する。第1のオペランド入
力は、レジスタファイルからオペランドを入力する。第
2のオペランド入力は、ALUセカンドオペランドマル
チプレクサ230に接続されている。ALUセカンドオ
ペランドマルチプレクサ230は、レジスタファイル1
74と命令語234から与えられるショートイミーディ
エットオペランド232のいずれかを選択する。ショー
トイミーディエットオペランド232は、2の補数であ
り、ALUのビット幅に合わせて符号(サイン)が拡張
される。ALUの機能は、加算、減算、算術比較、ビッ
ト毎のOR、ビット毎のAND、ビット毎のXOR、ビ
ット毎の比較である。マルチ精度オペレーションは、キ
ャリーフラグをセットすることで、実現される。キャリ
ーフラグは、ALUへのオプションのキャリー入力(図
示せず)に使用される。キャリー入力は、命令語のマイ
クロコントロールフィールドにより制御される。
【0046】シフタ.シフタ240(図5中、L/Rと
表記されている)は、ALUの出力に接続されている。
シフタ240は、算術的にかつ論理的にシングルビット
を左右にシフトし、論理的にシングルビットを左右にロ
ーテーションする。シフト拡張フリップフロップによ
り、マルチ精度シフトも実現される。シフトの機能は、
命令語のマイクロコントロールフィールドにより制御さ
れる。シフタの出力は、レジスタファイルデータインプ
ットセレクタ242に入力される。
【0047】レジスタファイルデータインプットセレク
タ.レジスタファイルに書き込まれるデータの出所は4
つあり、オペレーションコード(Opコード)によりそ
のうちの1つが選択される。ALU−RI(ALU−R
egister−Immediate)命令244及び
ALU−RR(ALU−Register−Regis
ter)命令246の時は、シフタ240の出力が選択
される。Load direct又はLoad Ind
irect命令250の時は、データメモリの出力が選
択される。Load−Immediate命令258の
時は、命令語のイミーディエットデータフィールドが選
択される。Jump−and−Link命令260の時
は、プログラムカウンタ加算器262が選択される。そ
の結果、現在の命令アドレスに1を加算した値がレジス
タファイルにストアされる。
【0048】レジスタファイル.レジスタファイル17
4(図5中、RF)のレジスタ数は、一次パラメータに
より決定される。レジスタファイル174のビット幅
は、一次パラメータから二次パラメータとして計算され
る。レジスタファイル174は、2つのリードポートP
2,P3と1つのライトポートP1を備えている。すべ
てのポートは独立しており、同時に使用可能である。ラ
イトポートP1は、レジスタファイルデータインプット
セレクタ242からデータを入力する。リードポートP
2,P3は、ALUに接続されている。第1のリードポ
ートP2は、直接ALUに接続されている。第2のリー
ドポートP3は、マルチプレクサ230を経由してAL
Uに接続されている。第1のリードポートP2は、ブラ
ンチコンディションテスト回路(図示せず)に接続さ
れ、各レジスタ毎にゼロ、ポジティブ、ネガティブ、奇
数、偶数の各条件をテスト可能になっている。第2のリ
ードポートP3は、ALUセカンドオペランドマルチプ
レクサ230とデータメモリアドレスマルチプレクサ2
64に接続されている。レジスタファイルのアドレス
は、命令レジスタ270から与えられる。3つのフィー
ルドは、d(デスティネーション)、s1(ソース
1)、s2(ソース2)とラベル付けされている。dフ
ィールドは、ライトポートを制御し、s1フィールドと
s2フィールドは、リードポートを制御する。第1のリ
ードポートのアドレスは、dフィールドとs2フィール
ドの両方に接続されたマルチプレクサ(図示せず)から
入力される。このことにより、Load命令とStor
e命令の両方の命令語の同一の場所にあるフィールド
に、データメモリアドレスをデータをロードするアドレ
スとして又はデータをストアするアドレスとして、配置
することが可能になっている。
【0049】プログラムカウンタレジスタ.プログラム
カウンタレジスタ276(図5中、PC)は、命令メモ
リ178に次に実行すべき命令のアドレスを提供する。
プログラムカウンタレジスタ276は、以下の3入力の
うちの1つを次の値として入力する。 (0)レジスタファイルの第2のリードポートP3、
(1)プログラムカウンタ加算器262、(2)命令レ
ジスタ270のジャンプアドレスフィールド。
【0050】プログラムカウンタレジスタ276が、レ
ジスタファイルの第2のリードポートP3に接続してい
ることにより、プログラムは、サブルーチンからリター
ンすることが可能になる。入れ子になったサブルーチン
の複数のリターンアドレスは、コンパイラにより管理さ
れるスタックに保持される。
【0051】プログラムカウンタレジスタ276のプロ
グラムカウンタ加算器262への接続は、次のシーケン
シャルアドレスを提供する。プログラムカウンタ加算器
262の第2のオペランドは、マルチプレクサ280に
接続されている。マルチプレクサ280は、プログラム
カウンタの加算に使用される定数”1”と、相対分岐ア
ドレスの計算に使用される命令レジスタのブランチディ
スプレイスメントフィールドのいずれかを選択する。ブ
ランチディスプレイスメントフィールドは、2の補数で
表現された値である。現在のプログラムカウンタレジス
タ276の値により、プログラムの前後どちらにも相対
分岐が可能である。プログラムカウンタレジスタ276
を、命令レジスタのジャンプアドレスフィールドに接続
することにより、ジャンプ命令の実行が可能になる。
【0052】命令レジスタ.命令レジスタ270は、命
令メモリ178から読み出される命令語のパイプライン
レジスタである。このパスに、パイプラインレジスタを
配置することにより、命令メモリ178のディレイ(遅
延)によるクロックサイクルタイムを削減することがで
きる。このパスにおいて、サイクルディレイがあるとい
うことは、ジャンプ命令が命令レジスタ270にあると
き、プログラムカウンタレジスタ276は、現在のジャ
ンプ命令の直後にある命令をポイントしているというこ
とを意味する。次に、命令レジスタに入るのは、このポ
イントされているジャンプ命令の直後にある命令であ
る。そして、ジャンプ命令によりジャンプされたジャン
プ先の命令は、その次のサイクルで命令レジスタに入
る。このジャンプ命令によって生じるデッドスペース
(ジャンプ命令の直後にある命令)は、以下の2つの方
法のいずれかで除去される。1つは、コンパイラによ
り、このジャンプ命令の直後の位置に他の位置にあった
ローカルループに含まれない命令を移動させる方法であ
る。もう1つは、このようなローカルループに含まれな
い移動可能な命令がないときは、No Operati
on命令をそのジャンプ命令の直後の位置に配置する方
法である。
【0053】命令メモリ.命令メモリ(図5中、iM)
の機能は、ASAPのアプリケーションプログラムを保
持することである。命令メモリのビット幅は、全ての二
次パラメータに影響する。命令メモリのサイズ(即ち、
ワード数)は、一次パラメータの1つである。
【0054】データメモリ.データメモリ(図5中、d
M)の機能は、アプリケーションプログラムの変数やデ
ータを保持することである。データメモリは、書き込み
可能メモリである。データメモリのビット幅は、一次パ
ラメータであるCPUビット幅から決定される。記憶さ
れるワード数は、データメモリサイズという一次パラメ
ータで決定される。データメモリのアドレスは、データ
メモリアドレスマルチプレクサ264から入力される。
データメモリアドレスマルチプレクサ264は、命令レ
ジスタ270とレジスタファイルの第2のリードポート
P3(s2フィールド)のいずれかを選択する。データ
メモリへのデータ入力は、レジスタファイル174の第
1のリードポートP2に接続されている。データメモリ
の出力は、レジスタファイルデータインプットセレクタ
242に入力される。
【0055】次に、命令セットについて説明する。図6
は、命令語のOpコードフィールドを示す図である。以
下の図においては、命令語のビット数をiとし、上位ビ
ットから下位ビットの順で、図の左から示されている。
最上位ビット(most significant b
it)が0ビット、最下位ビット(least sig
nificant bit)がi−1ビットである。命
令語以外のデータ語、アドレスバスについても同様であ
る。命令語の最初の2ビット(即ち、上位2ビット:
0、1ビット)の値により、命令の一般的な4クラスが
決定される。 (0)ALU−Register−Immediate
(ALU−RI)、(1)Load/Store、
(2)ALU−Register−Register
(ALU−RR)、(3)Control 命令語の次の3ビット(2、3、4ビット)は、各カテ
ゴリ内でのオペレーションを決定する。
【0056】命令語の最下位ビットから4ビット(i−
4、i−3、i−2、i−1ビット)は、マイクロコン
トロールフィールドとして使用される。図7は、命令語
のマイクロコントロールフィールドを示す図である。マ
イクロコントロールフィールドは、シフタとALUへの
キャリー入力を制御し、2つのクラスのALU命令の詳
細を決定する。命令語の中央部のサイズ(ビット数)
は、二次パラメータの値に応じて変化する。
【0057】ALU−Register−Immedi
ate.ALU−RIクラスの命令においては、1つの
オペランドは、レジスタファイルから入力され、他のオ
ペランドは、命令語のショートイミーディエットオペラ
ンドフィールドから提供されるショートイミーディエッ
トオペランドが入力される。ショートイミーディエット
オペランドフィールドの長さ(ビット幅)は、マイクロ
コントロールフィールドとs1フィールドの間の長さと
なる。例えば、ALU−RRクラスの命令のとき、ショ
ートイミーディエットオペランドフィールドの長さは、
s2フィールドの長さとなる。
【0058】図8は、ALU−RI命令のフォーマット
を示す図である。次の3ビット(2、3、4ビット)の
値は、以下のオペレーションを示している。 (0)Add Immediate、(1)Subtr
act Immediate or Compare
Immediate Arithmetic、(2)u
nassigned、(3)Or Immediat
e、(4)And Immediate、(5)una
ssigned、(6)Xor Immediate、
(7)Compare Immediate (3)から(7)のオペレーションは、ビット単位の論
理演算である。Add及びSubtractオペレーシ
ョンは、2の補数の算術演算であり、ALUから桁上が
り(キャリーアウト)があるときには、キャリーフラグ
をセットする。ショートイミーディエットオペランドフ
ィールドsiは、演算が算術演算か論理演算かに関わら
ず、CPUのワードサイズに合わせて、サイン拡張され
ている。
【0059】Load/Store.Load/Sto
reクラスの命令は、データメモリとレジスタファイル
間のデータの移動を処理する。Loadとは、データを
データメモリからレジスタファイルに書き込むことであ
る。Storeとは、データをレジスタファイルからデ
ータメモリに書き込むことである。
【0060】図9は、Load/Store命令のフォ
ーマットを示す図である。次の3ビット(2、3、4ビ
ット)の値は、以下のオペレーションを示している。 (0)Load Direct、(1)Load In
direct、(2)Load Immediate、
(3)unassigned、(4)Store Di
rect、(5)Store Indirect、
(6)unassigned、(7)unassign
ed Directとは、データメモリアドレスが命令語から
与えられることを言う。また、Indirectとは、
レジスタファイルからデータメモリアドレスが与えられ
ることを言う。Load Immediate命令にお
いては、データオペランドは、命令語により与えられ
る。
【0061】ALU−Register−Regist
er.ALU−RR命令クラスにおいては、両方のオペ
ランドがレジスタファイルから入力され、処理結果も、
レジスタファイルに書き戻される。
【0062】図10は、ALU−RR命令のフォーマッ
トを示す図である。次の3ビット(2、3、4ビット)
の値は、以下のオペレーションを示している。 (0)Add、(1)Subtract or Com
pare Arithmetic、(2)unassi
gned、(3)Or、(4)And、(5)unas
signed、(6)Xor、(7)Compare (3)から(7)のオペレーションは、ビット単位の論
理演算である。Add及びSubtractオペレーシ
ョンは2の補数の算術演算であり、ALUから桁上がり
(キャリーアウト)があるときには、キャリーフラグを
セットする。
【0063】Control.コントロールクラスの命
令は、プログラムの流れを変更する。図11は、Con
trol命令のフォーマットを示す図である。次の3ビ
ット(2、3、4ビット)の値は、以下のオペレーショ
ンを示している。 (0)Jump、(1)Jump−and−Link、
(2)Branch、(3)Return、(4)un
assigned、(5)unassigned、
(6)unassigned、(7)No Opera
tion
【0064】Jump命令は、プログラムアドレスシー
ケンスの無条件変更である。Jump命令を実行する
と、命令語のジャンプアドレスフィールドの値がプログ
ラムカウンタレジスタに転送される。
【0065】Jump−and−Link命令は、プロ
グラムアドレスシーケンスの無条件変更であり、さら
に、プログラムカウンタに加算した値が、レジスタファ
イルに記憶される。レジスタファイル内の記憶位置は、
dフィールドで決定される。この命令は、サブルーチン
へのジャンプの際に用いられる。Jump−and−L
ink命令の次の命令のアドレスを記憶することによ
り、プログラムは、サブルーチンの実行完了後、命令の
メインの流れに制御を戻すことができる。入れ子になっ
ているサブルーチンは、スタックとして知られているソ
フトウェア機構を使用し、戻りアドレスを管理する。ス
タックの動作は、コンパイラにより制御される。
【0066】Branchグループに属するBranc
h命令は、dフィールド/s1フィールドの次の(図1
1においては、dフィールド/s1フィールドの右側
の)ブランチコンディションフィールドbcの4ビット
の値によりOpコードを拡張する。Opコードフィール
ドの次のフィールドは、通常、dフィールドであり、レ
ジスタファイルへ書き込むアドレスを選択する。Bra
nchグループに属するBranch命令のいくつか
は、s1フィールドで特定されるレジスタのステータス
に対応して動作を決定する。この場合、レジスタファイ
ルの第1のリードポートP2に接続されているマルチプ
レクサ(図示せず)が、dフィールド/s1フィールド
からレジスタファイルのリードアドレスを提供するため
に使用される。命令の残りのビットは、2の補数の値で
ブランチディスプレイスメントを示すブランチディスプ
レイスメントフィールドに利用可能である。分岐条件を
満たしたとき、分岐が”実行”され、ブランチディスプ
レイスメントがプログラムカウンタに加算される。その
結果、次の命令のアドレスが決定される。ブランチコン
ディションフィールド4ビット(図11中、bc)は、
以下のようにデコードされる。ブランチコンディション
フィールドの最上位ビット(先頭の1ビット)は、最下
位ビットから3ビット目までをデコードして決定される
コンディションのセンス(状態)を決定する。最上位ビ
ットがゼロの時、コンディションが真かどうかがテスト
される。最上位ビットが1の時、コンディションの逆の
状態(コンディションが偽かどうか)がテストされる。
例えば、全てのビットがゼロの時、命令はレジスタファ
イル内のあるレジスタの値がゼロかどうかテストする。
ゼロであるとき、分岐が実行される。ブランチコンディ
ションフィールドの最上位ビットが1の時、命令の状態
が、逆にされる。そして、この例では、レジスタは、値
がゼロでないかどうかがテストされる。そして、ゼロで
ないとき、分岐が実行される。ブランチコンディション
フィールドの最下位ビットから3ビットの値は、以下の
ことを示している。 (0)dフィールド/s1フィールドで特定されるレジ
スタがゼロの時、分岐する。 (1)ALUキャリーフラグがセットされている時、分
岐する。 (2)dフィールド/s1フィールドで特定されるレジ
スタが奇数の時、分岐する。 (3)dフィールド/s1フィールドで特定されるレジ
スタが負の数の時、分岐する。 (4)External Input−4(図示せず)
が真の時、分岐する。 (5)External Input−5(図示せず)
が真の時、分岐する。 (6)External Input−6(図示せず)
が真の時、分岐する。 (7)External Input−7(図示せず)
が真の時、分岐する。
【0067】Return命令は、レジスタファイルの
レジスタの値(s1フィールドで示されるレジスタの
値)をプログラムカウンタレジスタに転送する。このR
eturn命令により、プログラムは、サブルーチンか
らメインの命令の流れに戻ることができる。
【0068】No Operation命令は、プログ
ラムカウンタだけを書き換え、機械の状態は変更されな
い。
【0069】次に、合成(synthesis)につい
て説明する。ASAP合成システムは、この実施の形態
では、「つつじ」論理合成システムのフレームワーク上
に構築されている。プロセッサ合成のためのプログラム
は、LDF(Logic Description F
ormat)で書かれる。LDFは、論理記述言語であ
り、「つつじ」論理合成システムで使われる言語であ
る。「つつじ」は、以前は、横河ヒューレットパッカー
ド社で販売されていたが、今は、株式会社図研から販売
されている。一次パラメータは、CPU構成、コスト及
びCPUの効率を決定する。一次パラメータは、CPU
ビット幅、レジスタファイルのレジスタ数、データメモ
リサイズ、インストラクションメモリサイズである。以
下に、各一次パラメータから求められる二次パラメータ
について詳細に述べる。
【0070】CPUビット幅.この一次パラメータは、
ASAPのデータワードサイズを決定する。決定された
データワードサイズに従い、コンパイラ生成部の、単精
度命令のワードサイズを決定する。この一次パラメータ
は、レジスタファイルのビット幅、ALUのビット幅、
シフタのビット幅、データメモリのビット幅、及びLo
ad Immediate命令のImmediateデ
ータフィールドのビット幅に影響する。
【0071】レジスタファイルのレジスタ数.この一次
パラメータは、命令ワードのdフィールド,s1フィー
ルド,s2フィールドのサイズを決定する。また、間接
的に、Short Immediateオペランドのサ
イズも決定する。なぜならば、s2フィールドは、AL
U−RIクラスの命令のShort Immediat
eオペランドで置き換えられるからである。フィールド
のサイズは、以下の式で計算される。 Wr =ceiling(log2 R ) Wr は、命令語のdフィールド,s1フィールド,s2
フィールドのビット幅であり、NR は、レジスタファイ
ルのレジスタ数である。例えば、NR が12のとき、l
og2 12は、およそ3.58であり、もっとも近い整
数は、4となる。このとき、各レジスタの数は、4ビッ
トとなる。
【0072】データメモリサイズ.この一次パラメータ
は、Load Direct及びStore Dire
ct命令のアドレスフィールドのサイズを決定する。そ
の結果、データメモリアドレスマルチプレクサの幅も決
定する。フィールドのサイズは、以下の式で計算され
る。 Wa =ceiling(log2 D ) Wa は、命令語のアドレスフィールドのビット幅であ
り、ND は、データメモリのワード数である。レジスタ
ファイルワードのビット数をnとし、データメモリが、
n ワードよりも大きいとき、オプションのデータメモ
リアドレスレジスタが合成され、アドレスの上位ビット
を保持する。保持されたアドレスの上位ビットは、レジ
スタファイルから最初にロードされなければならない。
【0073】インストラクションメモリサイズ.この一
次パラメータは、Jump命令及びJump−and−
Link命令のジャンプアドレスフィールドのサイズを
決定する。その結果、プログラムカウンタレジスタ及び
関連するコンポーネントの幅も決定する。フィールドの
サイズは、以下の式で計算される。 Wj =ceiling(log2 I ) Wj は、命令語のジャンプアドレスフィールドのビット
幅であり、NI は、インストラクションメモリのワード
数である。レジスタファイルワードのビット数をnと
し、インストラクションメモリが、2n ワードよりも大
きいとき、オプションのインストラクションメモリアド
レスレジスタが合成され、アドレスの上位ビットを保持
する。保持されたアドレスの上位ビットは、レジスタフ
ァイルから最初にロードされなければならない。インス
トラクションワード(命令語)のビット数は、以下の式
で計算される。 Wi =Ko +max((Ku +3Wr ),(Wr
a ),(Wr +Wj ),(Wr +Wc )) Ko =5は、Opコードフィールドのビット幅、Ku
4は、マイクロコントロールフィールドのビット幅で、
c は、CPUビット幅である。この式は、インストラ
クションワード(命令語)のビット数は、オペレーショ
ンコードフィールドのビット幅と、マイクロコントロー
ルフィールドのビット幅にレジスタアドレスフィールド
のビット幅の3倍を加算した値と、レジスタアドレスフ
ィールドのビット幅に命令アドレスフィールドのビット
幅を加算した値と、レジスタアドレスフィールドのビッ
ト幅にジャンプアドレスフィールドのビット幅を加算し
た値と、レジスタアドレスフィールドのビット幅にCP
Uビット幅を加算した値の最大値とを加算して決定され
ることを示している。
【0074】実施の形態2.次に、この発明のプロセッ
サ合成方法について説明する。図12は、プロセッサ合
成方法の入力工程とプロセッサ定義情報出力工程の流れ
図である。まず、S100の命令体系記憶工程におい
て、あらかじめ複数フィールドからなる命令体系を記憶
する。具体的な命令体系は、実施の形態1で述べたとお
りである。次に、S110の入力工程において、一次パ
ラメータを入力する。入力される一次パラメータは、レ
ジスタファイルのレジスタ数、CPUビット幅、データ
メモリサイズ及び命令メモリサイズである。次に、S1
20のフィールド長計算工程において、入力工程により
入力された各一次パラメータに従って、命令体系記憶工
程により記憶された命令体系を参照し、命令を構成する
各フィールドの長さを二次パラメータとして計算する。
次に、S130のプロセッサ定義情報生成工程におい
て、フィールド長計算工程により二次パラメータとして
計算された各フィールドの長さに基づき、プロセッサ定
義情報を生成する。最後に、生成されたプロセッサ定義
情報が、プロセッサ定義情報出力工程により出力され
る。
【0075】図13は、プロセッサ合成方法の入力工程
と命令出力工程及びシミュレーション工程の流れ図であ
る。S200からS220は、図12のS100からS
120に対応している。まず、S200の命令体系記憶
工程において、あらかじめ複数フィールドからなる命令
体系を記憶する。次に、S210の入力工程において、
一次パラメータであるレジスタファイルのレジスタ数、
CPUビット幅、データメモリサイズ及び命令メモリサ
イズを入力する。次に、S220のフィールド長計算工
程において、入力工程により入力された各一次パラメー
タに従って、命令体系記憶工程により記憶された命令体
系を参照し、命令を構成する各フィールドの長さを二次
パラメータとして計算する。次に、S230の命令生成
工程において、フィールド長計算工程により二次パラメ
ータとして計算された各フィールドの長さに基づき、所
定のプログラミング言語で記述されたプログラムを翻訳
して、命令を生成する。
【0076】命令生成工程について、図を用いて、詳し
く説明する。図14は、命令生成工程の詳細な手順の流
れ図である。S231は、コンパイラを生成するコンパ
イラ生成工程である。コンパイラは、所定のプログラミ
ング言語で記述されたプログラムを入力して翻訳(コン
パイル)し、コードを出力する。コンパイラ生成工程に
おいては、コンパイラ全体を生成しても良い。あるい
は、リターゲッタブルコンパイラを用いる場合には、コ
ンパイラの本体をあらかじめ用意し、二次パラメータに
基づくプロセッサ定義部分を生成し、あらかじめ用意さ
れているコンパイラの本体に組み込むことで、コンパイ
ラ生成を行っても良い。S233は、上記コンパイラ生
成工程で生成されたコンパイラを実行するコンパイル工
程である。このコンパイルにより、高級言語で記述され
たアプリケーションプログラムがコードに変換される。
S235は、アセンブラを生成するアセンブラ生成工程
である。アセンブラは、コンパイラにより出力されるコ
ードを入力し、アセンブルしてハードウェアに対応する
命令コードを出力する。命令コードは、ハードウェアと
ほぼ1対1に対応している。S237は、上記アセンブ
ラ生成工程で生成されたアセンブラを実行するアセンブ
ル工程である。上記コンパイル工程で出力されたコード
が入力されアセンブルされて命令コードが出力される。
図14においては、コンパイラ生成工程、コンパイル工
程、アセンブラ生成工程、アセンブル工程の順になって
いるが、以下の条件を満たしていれば、他の順でも良
い。コンパイラ生成工程の終了後、コンパイル工程を行
う。アセンブラ生成工程の終了後、アセンブル工程を行
う。コンパイル工程の終了後、アセンブル工程を行う。
例えば、アセンブラ生成工程、コンパイラ生成工程、コ
ンパイル工程、アセンブル工程の順でも良い。
【0077】また、オプションとして、図13に示すS
300のシミュレーション工程において、生成され出力
された命令を用いて、生成されるCPUのシミュレーシ
ョンを行う。このシミュレーションは、設計者が入力し
た一次パラメータに従って出力されたプロセッサ定義情
報に基づいて行われる。また、プロセッサ定義情報に対
応して生成された命令コードを用いて行われる。このシ
ミュレーションにより、設計者は、CPUを実際に製造
する前に、自分が作成したプログラムの動作や、自分が
入力した一次パラメータの効果を検証することができ
る。また、設計中のプロセッサのコストや効率を検討す
ることができる。
【0078】次に、プロセッサ合成の具体例を挙げて説
明する。前述したように、この実施の形態では、プロセ
ッサ合成に、株式会社図研製の「つつじ」を使用するも
のとして説明する。また、合成されるプロセッサ上で稼
働するアプリケーションプログラムは、C言語で記述さ
れるものとする。ハードウェア構成は、前述した、図3
に示す構成である。
【0079】図15は、この発明のプロセッサ合成の全
体のシステムフローを示す図である。図15において、
470は設計者がこのプロセッサ合成システムを起動さ
せるASAPフロントエンドモジュールである。図16
は、ASAPフロントエンドモジュールが提供するGU
I(Graphical User Interfac
e)である。このフロントエンドウィンドウ500は、
図3に示した表示部6aに表示される。設計者は、レジ
スタファイルのレジスタ数(以下、レジスタ数とも言
う)表示欄520、データメモリサイズ表示欄522、
命令メモリ(インストラクションメモリとも言う)サイ
ズ表示欄524及びCPUビット幅表示欄526に一次
パラメータを設定する。
【0080】この実施の形態では、設計者により設定さ
れる一次パラメータは、ユーザパラメータファイル47
2(以下、パラメータファイルとも言う)に保存されて
いる。更新ボタン(Update)502を押すと、レ
ジスタファイルのレジスタ数(以下、レジスタ数とも言
う)表示欄520、データメモリサイズ表示欄522、
命令メモリ(インストラクションメモリとも言う)サイ
ズ表示欄524及びCPUビット幅表示欄526に設定
されている値でパラメータファイルの内容が更新され
る。読み込みボタン(Read)504を押すと、パラ
メータファイルから各値を読み込んで、各表示欄520
〜526に表示する。実行ボタン(Make)506を
押すと、各表示欄520〜526に設定されている一次
パラメータの内容に従って、プロセッサ合成を実行す
る。終了ボタン(Quit)508を押すと、プロセッ
サ合成システムは終了する。ASAPパフォーマンス
(ASAP Performance)510は、ロー
(Low)512、ミッド(Mid)514、ハイ(H
igh)516の3段階のいずれかを選択可能としてい
る。ロー、ミッド、ハイは、図17に示すコストと性能
の各レンジに対応している。具体的には、ローレンジの
CPUビット幅は4〜8ビットであり、ミッドレンジの
CPU幅は8〜32ビット、ハイレンジのCPUビット
幅は20〜64である。ここまでの実施の形態で述べて
きたASAPアーキテクチャは、ミッドレンジのテンプ
レートを想定している。また、ローレンジはシングルメ
モリアーキテクチャ、ハイレンジはVLIW(Very
Long Instruction Word)アーキ
テクチャのテンプレートを使って、プロセッサ合成を行
う。設計者は、合成しようとするプロセッサに適用され
るアプリケーションにより、あるいは、コストと性能の
どちらを追及するかにより、ロー512、ミッド51
4、ハイ516のいずれかを合成パラメータの1つとし
て指定する。このように、3段階のレンジのテンプレー
トを用意しているのは、CPUビット幅に応じて最適な
アーキテクチャが存在すると考えているためである。各
テンプレートは、CPUビット幅に応じて最適なアーキ
テクチャを用いてプロセッサを合成する。図18は、一
次パラメータを保存したユーザパラメータファイルの内
容のリストを示す図である。図18に示すように、レジ
スタ数(rfcnt)552は16、データメモリサイ
ズ(dm_size)554は512、命令メモリサイ
ズ(im_size)556は1024、CPUビット
幅(cpuw)558は11となっており、各表示域に
設定された値が、保存されている。なお、図18
中、”;;”で始まる行は、コメント行である。
【0081】次に、パラメータ生成モジュール474が
実行される。パラメータ生成モジュール474は、図1
8に示したユーザパラメータファイル472を入力し
て、二次パラメータを計算し、ASAPパラメータファ
イル476及びコンパイラパラメータファイル478を
出力する。図19及び図20は、パラメータ生成モジュ
ール(parmgen)474を実行したログリスト5
60,580である。図19において、562は二次パ
ラメータ生成の開始を示している。564から570は
入力された一次パラメータを示している。564はCP
Uビット幅が11であることを示している。566はレ
ジスタファイルのレジスタ数が16であることを示して
いる。568はデータメモリサイズが512であること
を示している。570は命令メモリが1024であるこ
とを示している。図20において、582は各一次パラ
メータをチェックし、命令の長さを決定する過程を示し
ている。詳細については、実施の形態1ですでに述べた
とおりである。584はASAPパラメータファイル
(asap_parm.h)が生成されたことを示して
いる。586はコンパイラパラメータファイル(par
ch.h,inst.info)が生成されたことを示
している。588は二次パラメータ生成の終了を示して
いる。図21に、生成されたASAPパラメータファイ
ル(asap_parm.h)の内容590を示す。図
において、592は、一次パラメータである。594
は、一次パラメータから生成される二次パラメータを示
している。596は、生成された二次パラメータの値を
示している。596aはレジスタファイルのアドレスの
ビット幅が4ビットであることを示している。596b
は命令メモリのアドレスのビット幅が10ビットである
ことを示している。596cはデータメモリのアドレス
のビット幅が9ビットであることを示している。596
dはCPUのビット幅が11ビットであることを示して
いる。596eはOpコードのビット幅が5ビットであ
ることを示している。596fはマイクロコントロール
フィールドのビット幅が4ビットであることを示してい
る。596gはショートイミーディエットオペランドフ
ィールドのビット幅が4ビットであることを示してい
る。596hは、コンディションコードのビット幅が4
ビットであることを示している。596iはブランチデ
ィスプレイスメントフィールドのビット幅が8ビットで
あることを示している。このブランチディスプレイスメ
ントフィールドのビット幅は、前述した他のビット幅及
びインストラクションレジスタのビット幅から計算され
る。596jはインストラクションレジスタのビット幅
が21であることを示している。図22に、生成された
コンパイラパラメータファイル(parch.h)の内
容600を示す。このように、パラメータ生成モジュー
ル474において、設計者により入力された一次パラメ
ータは、プロセッサ生成部及び命令生成部に入力する二
次パラメータに変換され、出力される。
【0082】再び、図15について説明する。ASAP
パラメータファイル476は、高位合成モジュール(s
yn2asap)480と、アセンブラ(asap_a
sm)484と、逆アセンブラ(revasm)&マク
ロ展開モジュール(mulfil)486に入力され
る。高位合成モジュール(syn2asap)480
は、ASAPパラメータファイル(asap_par
m.h)476を入力し、LDFファイル(asap_
uni2.ldf)482を出力する。図23に、高位
合成モジュール(syn2asap)の実行ログ602
を示す。図24に、出力されたLDFファイル(asa
p_uni2.ldf)の内容610を示す。図24に
おいて、612はLDFの書誌的事項記載欄である。6
14は以下に、定数(コンスタント)を記載することを
示すコメントである。616はインストラクションレジ
スタのビット幅が21ビットであることを示している。
618はOpコードのビット幅が5ビットであることを
示している。620はコンディションコードのビット幅
が4ビットであることを示している。622はマイクロ
コントロールフィールドのビット幅が4ビットであるこ
とを示している。624はショートイミーディエットオ
ペランドフィールドのビット幅が4ビットであることを
示している。626はブランチディスプレイスメントフ
ィールドのビット幅が8ビットであることを示してい
る。前述したように、このブランチディスプレイスメン
トフィールドのビット幅は、他のビット幅から計算され
る。630は一次パラメータ(図中、Synthesi
s Parameters)を、以下に記載することを
示すコメントである。632はレジスタファイルのアド
レスのビット幅が4ビットであることを示している。6
34はCPUのビット幅が11ビットであることを示し
ている。636は命令メモリのアドレスが10ビットで
あることを示している。638はデータメモリのアドレ
スが9ビットであることを示している。640は固定的
な定義情報の記載欄である。出力されたLDFファイル
は、「つつじ」への入力に使用される。高位合成モジュ
ール(syn2asap)は、前述した実施の形態のプ
ロセッサ生成部に相当する。
【0083】アセンブラ(asap_asm)484を
生成する処理では、ASAPパラメータファイル(as
ap_parm.h)を入力し、入力されたパラメータ
ファイルに従って、アセンブラ(asap_asm)を
出力する。出力されたアセンブラ(asap_asm)
は、コンパイラにより出力されるコード(アセンブリ言
語のコード492)を入力し、命令コード(機械語49
4)を出力する。逆アセンブラ(revasm)&マク
ロ展開モジュール(mulfil)486を生成する処
理では、ASAPパラメータファイル(asap_pa
rm.h)を入力し、これらのユーティリティを出力す
る。アセンブラ(asap_asm),逆アセンブラ
(revasm)及びマクロ展開モジュール(mulf
il)を生成する処理は、前述した実施の形態の命令生
成部の一部であるアセンブラ生成部に相当する。図25
は、図15のアセンブラ(asap_asm)484及
び逆アセンブラ(revasm)486を生成する処理
のログのリスト650である。
【0084】図15のコンパイラ(asap_cc)4
88を生成する処理では、コンパイラパラメータファイ
ル(parch.h,inst.info)を入力し
て、指定された二次パラメータに従って、コンパイラを
生成して出力する。コンパイラ(asap_cc)を生
成する処理は、前述した実施の形態の命令生成部の一部
であるコンパイラ生成部に相当する。図26に、コンパ
イラ(asap_cc)を生成する処理のログのリスト
660を示す。生成されたコンパイラ(asap_c
c)は、プロセッサ生成と同一の二次パラメータに基づ
いているので、生成されるプロセッサのアーキテクチャ
に適合している。このコンパイラに、設計者がC言語で
記述したアプリケーションプログラム490を入力する
と、コンパイラ(asap_cc)は、翻訳(コンパイ
ル)してアセンブリ言語のコード492を出力する。出
力されたアセンブリ言語のコード492は、アセンブラ
生成部で生成されたアセンブラ(asap_asm)に
入力され、アセンブルされる。その結果、命令コード
(機械語494)が出力される。前述したように、コン
パイラとアセンブラは、ハードウェア定義情報を生成す
る二次パラメータと同一の二次パラメータに基づいて生
成されるので、出力される命令コードは、生成されるプ
ロセッサに対応している。図27に、コンパイラ(as
ap_cc)を実行したログのリスト670を示す。図
27において、672はsamp.cというC言語で記
述されたアプリケーションプログラムを入力して、コン
パイルを実行しなさいというコマンドである。図28
に、アプリケーションプログラム(samp.c)のリ
スト680を示す。676はコンパイラ(asap_c
c)がアセンブリコードを生成し、ファイル(sam
p.s)として出力したことを示している。出力された
ファイル(samp.s)のリスト682を図29に示
す。図30は、ファイル(samp.s)を入力し、ア
センブラ(asap_asm)を実行したログのリスト
690を示す図である。図31は、アセンブルされて出
力された機械語のリスト694を示す図である。この機
械語は、前述したように、ハードウェアにほぼ1対1で
対応している。出力された機械語は、生成されるプロセ
ッサの命令レジスタに記憶されて実行される。
【0085】次に、シミュレーションの実行について説
明する。この発明のプロセッサ合成システムにおいて
は、生成された機械語を用いて、生成されるプロセッサ
のシミュレーションが実行可能である。図32に、シミ
ュレーション実行画面の一例を示す。シミュレーション
実行画面1600は、シミュレーションの実行時に、表
示部に表示される画面である。画面上には、操作ボタン
1610、プロセッサ及び周辺機器のブロックダイアグ
ラムを表示するブロックダイアグラム表示ウィンドウ1
620、実行中の機械語プログラムを表示する機械語プ
ログラム表示ウィンドウ1630、実行結果表示ウィン
ドウ1640、Cプログラム表示ウィンドウ1650、
コントロールパネルウィンドウ1660などが同時に開
いている。これにより、設計者は、シミュレーションの
進行に従って、必要なウィンドウの切り替えを行い、作
成したアプリケーションプログラムのデバッグを行う。
設計者は、必要ならば、プログラムを変更し、再度命令
生成を行い、生成された機械語でシミュレーションを再
開できる。また、シミュレーションの結果により、一次
パラメータを変更し、再度プロセッサ合成を行うことも
できる。必要に応じて、この作業を繰り返すことで、設
計者は、ハードウェアを実際に作成する前に、作成する
ハードウェアや、そのハードウェア上で稼働するアプリ
ケーションの最適化を図り、コストパフォーマンスを追
求することが可能になる。
【0086】図33は、この発明のASAPと従来のメ
ガセルの機能比較図である。メガセルは、ASAP自身
が目的であるのに対して、ASAPでは、システムを目
的としており、ASAPは、システムの一部の部品とし
て最適化される。また、メガセルは、一定のコストに対
して、最大性能を実現することを目的としているが、A
SAPでは、最初に、実現する性能を決定し、最小コス
トでそれを実現しようとしている。また、CPUビット
幅、命令長、アドレス空間がメガセルでは、固定である
のに対して、ASAPでは、必要分だけに最小化され
る。その最小化に従い、ASAPのアーキテクチャも可
変(パラメタライズドアーキテクチャ)となる。可変と
は、一次又は二次パラメータに対応してASAPのアー
キテクチャが変化するという意味である。また、メガセ
ルは、メガセルの提供者(メーカ)からのライセンスが
必要であるが、ASAPは、自分で合成するのでメーカ
からのライセンスが不要である。コンパイラについて
は、メガセルは、既存のプロセッサ(メガセル)に対し
て、コンパイラを定義するのに対して、ASAPでは、
生成しようとするコンパイラに対してプロセッサを一次
又は二次パラメータにより定義する。即ち、プロセッサ
の定義情報をコンパイラに与える。これにより、可変
(パラメタライズド)アーキテクチャに対応するコンパ
イラを提供している。図34は、過去に既存のCPUを
用いて開発された通信制御LSIのプロセッサをASA
Pで置き換えた場合のチップ見積もりを示す図である。
図34に示すように、チップサイズが27%低減され、
プロセッサコアサイズは、56%低減される。
【0087】以上のように、この実施の形態において
は、プロセッサ合成の実際の操作について説明した。設
計者は、プロセッサ合成システムを起動し、一次パラメ
ータを入力するだけで、プロセッサを生成するためのプ
ロセッサ定義情報や、プロセッサに対応する命令コード
を生成することができる。命令コードの生成において
は、プロセッサ定義情報に対応するコンパイラを生成す
る。このように、コンパイラを生成することにより、設
計者は、高級プログラミング言語、例えば、C言語を用
いて、アプリケーションプログラムを記述することが可
能になる。このため、アセンブリ言語や、機械語を用い
てプログラムを作成する場合に比べて、アプリケーショ
ン開発の負荷を軽減することができる。また、開発期間
を短縮することができる。さらに、生成された命令コー
ドを用いて、プロセッサのシミュレーションを行うこと
もできる。シミュレーションを行うことにより、システ
ムの最適化を図ることができる。最適化の作業に際し
て、システムの仕様を変える場合には、設計者は、一次
パラメータを変えるだけで、プロセッサ合成システムが
プロセッサ定義情報を生成し、対応するコンパイラを生
成する。このため、アプリケーションプログラムを変更
する必要がなく、アプリケーションプログラムをリコン
パイルすればよい。あるいは、シミュレーションの結果
により、アプリケーションプログラムを変更する場合で
も、高級言語で記述されているので、変更を容易に行う
ことができる。
【0088】実施の形態3.前述した実施の形態では、
ハードウェア定義情報を記述するハードウェア記述言語
がLDF(Logic Description Fo
rmat)である例について説明したが、VHDL(V
ery High Speed IC Hardwar
e Description Language)や、
Verilog−HDL(Verilog−Hardw
are Description Language)
でもよい。標準的なハードウェア記述言語で、ハードウ
ェア定義情報を記述することにより、「つつじ」以外の
論理合成システムを利用して、ハードウェアを製造する
ことができる。
【0089】
【発明の効果】この発明によれば、プロセッサ設計者
は、一次パラメータを入力するだけで、論理合成システ
ムに入力可能なプロセッサ定義情報が得られる。これに
より、従来のようにブロックダイアグラムの作成や、ハ
ードウェア記述言語の記述を設計者自ら行う必要が無く
なる。
【0090】また、この発明においては、プロセッサ定
義情報により生成されるプロセッサを動作させる命令を
生成して出力する。そのため、プロセッサ生成後に、生
成されるプロセッサをターゲットにした命令を新たに生
成する必要がない。
【0091】さらに、コンパイラとアセンブラを生成す
ることにより、アプリケーションプログラムを高級プロ
グラミング言語で記述できるので、アプリケーションプ
ログラムの開発を効率よく行え、開発者の負担を軽減で
きる。
【0092】また、この発明においては、プロセッサ定
義情報によるプロセッサの生成を実際に行う前に、プロ
セッサ定義情報により生成されるプロセッサのシミュレ
ーションが行える。これにより、生成するプロセッサの
最適化を図ることができる。
【図面の簡単な説明】
【図1】 この発明のプロセッサ合成システムのブロッ
ク図である。
【図2】 この発明のプロセッサ合成システムの一次パ
ラメータを示す図である。
【図3】 この発明のプロセッサ合成システムが稼働す
るハードウェア構成図である。
【図4】 この発明のビット幅対応のコンパイラ生成の
一例を示す図である。
【図5】 この発明のプロセッサ合成システムにより合
成されるプロセッサのブロック図である。
【図6】 この発明のプロセッサ合成システムで用いら
れる命令体系のOpコードフィールドを示す図である。
【図7】 この発明のプロセッサ合成システムで用いら
れる命令体系のマイクロコントロールフィールドを示す
図である。
【図8】 この発明のプロセッサ合成システムで用いら
れる命令体系のALU−RI命令フォーマットを示す図
である。
【図9】 この発明のプロセッサ合成システムで用いら
れる命令体系のLoad/Store命令フォーマット
を示す図である。
【図10】 この発明のプロセッサ合成システムで用い
られる命令体系のALU−RR命令フォーマットを示す
図である。
【図11】 この発明のプロセッサ合成システムで用い
られる命令体系のコントロール命令フォーマットを示す
図である。
【図12】 この発明のプロセッサ合成方法の入力工程
とプロセッサ定義情報出力工程を示す流れ図である。
【図13】 この発明のプロセッサ合成方法の入力工程
と命令出力工程及びシミュレーション工程を示す流れ図
である。
【図14】 この発明のプロセッサ合成方法の命令生成
工程の詳細を示す流れ図である。
【図15】 この発明のプロセッサ合成システムのシス
テムフローを示す図である。
【図16】 この発明のプロセッサ合成システムのGU
Iであるコントロールパネルの図である。
【図17】 この発明のプロセッサ合成システムが合成
するプロセッサのレンジを説明する図である。
【図18】 この発明のプロセッサ合成システムが入力
した一次パラメータを記憶したパラメータファイルのリ
ストを示す図である。
【図19】 この発明のプロセッサ合成システムによる
二次パラメータ生成の実行ログリストを示す図である。
【図20】 この発明のプロセッサ合成システムによる
二次パラメータ生成の実行ログリストを示す図である。
【図21】 この発明のプロセッサ合成システムにより
一次パラメータから合成されてプロセッサ生成部に入力
されるパラメータファイルを示す図である。
【図22】 この発明のプロセッサ合成システムにより
一次パラメータから合成されて命令生成部に入力される
パラメータファイルを示す図である。
【図23】 この発明のプロセッサ合成システムによる
プロセッサ合成の実行ログリストを示す図である。
【図24】 この発明のプロセッサ合成システムにより
出力されるハードウェア定義情報(LDF)のリストを
示す図である。
【図25】 この発明のプロセッサ合成システムによる
アセンブラ生成の実行ログリストを示す図である。
【図26】 この発明のプロセッサ合成システムによる
コンパイラ生成の実行ログリストを示す図である。
【図27】 この発明のプロセッサ合成システムにより
生成されたコンパイラの実行ログリストを示す図であ
る。
【図28】 この発明のプロセッサ合成システムにより
生成されたコンパイラに入力されるC言語で記述された
プログラムの一例を示す図である。
【図29】 この発明のプロセッサ合成システムにより
生成されたコンパイラにより出力されるコード(アセン
ブリ言語で記述されたプログラム)の一例を示す図であ
る。
【図30】 この発明のプロセッサ合成システムにより
生成されたアセンブラの実行ログリストを示す図であ
る。
【図31】 この発明のプロセッサ合成システムにより
生成されたアセンブラにより出力された命令コード(機
械語)のリストを示す図である。
【図32】 この発明のプロセッサ合成システムにより
実行されたシミュレーション実行画面を示す図である。
【図33】 この発明のプロセッサ合成システムにより
合成されるASAPと従来のメガセルの機能比較図であ
る。
【図34】 この発明のプロセッサ合成システムにより
合成されるASAPで見積もったチップと既存のCPU
を使用したチップの比較図である。
【図35】 従来のモジュールコンパイラによるモジュ
ール自動生成の機能構成を示す図である。
【図36】 従来のプロセッサ合成システム「つつじ」
の利用形態を示す流れ図である。
【図37】 従来のプロセッサ合成システム「つつじ」
の利用形態を示す流れ図である。
【図38】 従来の可変ターゲットコンパイラ方式の全
体構成のブロック図である。
【図39】 従来の可変ターゲットコンパイラ方式の使
用例を示すブロック図である。
【符号の説明】
6 コンピュータシステム、6a 表示部、6b キー
ボード、6c マウス、6d マウスパッド、6e シ
ステムユニット、10 一次パラメータ、12レジスタ
ファイルのレジスタ数、14 CPUビット幅、16
データメモリサイズ、18 命令メモリサイズ、100
パラメータ生成部、130 プロセッサ生成部、13
3 プロセッサ定義情報、150 命令生成部、153
アプリケーションソフトウェア、155 コンパイラ
生成部、157 コンパイラ、159 コード、160
アセンブラ生成部、163 アセンブラ、165 命
令コード、170 CPU(Central Proc
essing Unit)、172 データメモリ(d
M)、174 レジスタファイル(RF)、176 A
LU(Arithmetic Logic Uni
t)、178 命令メモリ(iM)。
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 情報処理学会研究報告 VOL95,N O.72,p73−80(DA76−10),塩見 彰睦ほか「ASTP設計用コデザインワ ークベンチPEA−S▲III▼の提 業」 電子情報通信学会技術研究報告 VO L.95,NO.421(VLD95 115− 128),p31−36,片岡健二ほか,「A SIP設計用ワークベンチPEAS−▲ III▼の実験方法についての考察−C PVアーキテクチャの分類とバラメタ化 −」 (58)調査した分野(Int.Cl.6,DB名) G06F 17/50 JICSTファイル(JOIS)

Claims (22)

    (57)【特許請求の範囲】
  1. 【請求項1】 (a)一次パラメータを入力して二次パ
    ラメータを計算して生成するパラメータ生成部と、 (b)上記パラメータ生成部により生成された二次パラ
    メータに従ってプロセッサを生成するためのプロセッサ
    定義情報を出力するプロセッサ生成部とを備え、 上記プロセッサは、1つの命令が複数フィールドから構
    成されている複数種類の命令からなる所定の命令コード
    体系を有しており、上記パラメータ生成部は入力された
    一次パラメータの値に基づいて各命令の各フィールドの
    長さを二次パラメータとして決定し、上記プロセッサ生
    成部は、上記所定の命令コード体系の命令の種類を維持
    したまま、二次パラメータとして決定された各命令の各
    フィールドの長さに適合するようにプロセッサ定義情報
    を生成することを特徴とするプロセッサ合成システム。
  2. 【請求項2】 上記プロセッサ生成部が出力するプロセ
    ッサ定義情報は、ハードウェア記述言語であることを特
    徴とする請求項1記載のプロセッサ合成システム。
  3. 【請求項3】 上記ハードウェア記述言語は、「つつ
    じ」(株式会社図研製)で用いられるLDF(Logi
    c Description Format)であるこ
    とを特徴とする請求項2記載のプロセッサ合成システ
    ム。
  4. 【請求項4】 上記ハードウェア記述言語は、VHDL
    (Very High Speed IC Hardw
    are Description Language)
    であることを特徴とする請求項2記載のプロセッサ合成
    システム。
  5. 【請求項5】 上記ハードウェア記述言語は、Veri
    log−HDL(Verilog−Hardware
    Description Language)であるこ
    とを特徴とする請求項2記載のプロセッサ合成システ
    ム。
  6. 【請求項6】 上記プロセッサ合成システムは、さら
    に、上記パラメータ生成部により生成された二次パラメ
    ータに従って、上記プロセッサ生成部が出力するプロセ
    ッサ定義情報により生成されるプロセッサを動作させる
    命令を生成する命令生成部を備えたことを特徴とする請
    求項1記載のプロセッサ合成システム。
  7. 【請求項7】 上記命令生成部は、上記プロセッサ生成
    部が出力するプロセッサ定義情報により生成されるプロ
    セッサに適合したコードを生成する、所定のプログラミ
    ング言語のコンパイラを生成するコンパイラ生成部を備
    えたことを特徴とする請求項6記載のプロセッサ合成シ
    ステム。
  8. 【請求項8】 上記命令生成部は、さらに、上記コンパ
    イラ生成部により生成されたコンパイラを実行して出力
    されるコードを入力しアセンブルして命令コードを出力
    するアセンブラを生成するアセンブラ生成部を備えたこ
    とを特徴とする請求項7記載のプロセッサ合成システ
    ム。
  9. 【請求項9】 上記命令生成部は、上記所定の命令コー
    ド体系の命令の種類を維持したまま、二次パラメータと
    して決定された各命令の各フィールドの長さに適合する
    ように命令を生成することを特徴とする請求項6記載の
    プロセッサ合成システム。
  10. 【請求項10】 上記プロセッサは、複数のレジスタを
    備えたレジスタファイルを有し、上記複数フィールド
    は、上記複数のレジスタに対応するアドレスを示すレジ
    スタアドレスフィールドを有し、 上記レジスタアドレスフィールドのビット幅をレジスタ
    ファイルのレジスタ数から決定することを特徴とする請
    求項1又は9記載のプロセッサ合成システム。
  11. 【請求項11】 上記複数フィールドは、データメモリ
    のアドレスを示すデータアドレスフィールドを有し、 上記データアドレスフィールドのビット幅をデータメモ
    リサイズから決定することを特徴とする請求項1又は9
    記載のプロセッサ合成システム。
  12. 【請求項12】 上記複数フィールドは、ジャンプ先を
    示すジャンプアドレスフィールドを有し、 上記ジャンプアドレスフィールドのビット幅を命令メモ
    リサイズから決定することを特徴とする請求項1又は9
    記載のプロセッサ合成システム。
  13. 【請求項13】 上記複数フィールドは、命令の種類を
    指定するオペレーションコードフィールドと算術演算を
    制御するマイクロコントロールフィールドとレジスタの
    アドレスを示すレジスタアドレスフィールドと、データ
    メモリのアドレスを示すデータアドレスフィールドと、
    ジャンプ先を示すジャンプアドレスフ ィールドとを有
    し、 上記命令のトータルビット数は、 オペレーションコードフィールドのビット幅と、 マイクロコントロールフィールドのビット幅にレジスタ
    アドレスフィールドのビット幅の3倍を加算した値と、
    レジスタアドレスフィールドのビット幅に命令アドレス
    フィールドのビット幅を加算した値と、レジスタアドレ
    スフィールドのビット幅にジャンプアドレスフィールド
    のビット幅を加算した値と、レジスタアドレスフィール
    ドのビット幅にCPUビット幅を加算した値の最大値と
    を加算して決定されることを特徴とする請求項1又は9
    記載のプロセッサ合成システム。
  14. 【請求項14】 上記プロセッサ合成システムは、さら
    に、上記命令生成部により生成された命令を用いて、プ
    ロセッサ生成部が出力するプロセッサ定義情報により生
    成されるプロセッサのシミュレーションを実行するシミ
    ュレーション実行部を備えたことを特徴とする請求項6
    記載のプロセッサ合成システム。
  15. 【請求項15】 表示部、キーボード、マウス、システ
    ムユニット、記憶部を有するコンピュータシステムを用
    いたプロセッサ合成方法において、 上記記憶部に、あらかじめ、複数フィールドからなる命
    令の体系を記憶しておき、 (a)フロントエンドモジュールによりフロントエンド
    ウィンドウを表示部に表示し、一次パラメータをキーボ
    ードから入力してユーザパラメータファイルとして記憶
    部に記憶する入力工程と、 (b)記憶部にユーザパラメータファイルとして記憶さ
    れた一次パラメータを入力し、一次パラメータに従って
    パラメータ生成モジュールによりプロセッサを生成する
    ためのプロセッサ定義情報を生成してプロセッサ定義情
    報ファイルとして記憶部に出力するプロセッサ定義情報
    出力工程とを備え、 上記プロセッサ定義情報出力工程は、記憶部にユーザパ
    ラメータファイルとして記憶された一次パラメータを入
    力し、一次パラメータに従って命令を構成する各フィー
    ルドの長さを計算するフィールド長計算工程と、 記憶部に記憶された上記命令の体系を入力し、上記命令
    の体系と計算した各フ ィールドの長さとに基づいてプロ
    セッサ定義情報を生成してプロセッサ定義情報ファイル
    として記憶部に記憶するプロセッサ定義情報生成工程と
    を備えたことを特徴とするプロセッサ合成方法。
  16. 【請求項16】 上記プロセッサ合成方法は、さらに、
    上記入力工程で記憶部にユーザパラメータファイルとし
    て記憶された一次パラメータを入力し、一次パラメータ
    に従って、上記プロセッサ定義情報出力工程でプロセッ
    サ定義情報ファイルとして記憶部に記憶されたプロセッ
    サ定義情報から生成されるプロセッサを動作させる命令
    を生成して記憶部に出力する命令出力工程を有すること
    を特徴とする請求項15記載のプロセッサ合成方法。
  17. 【請求項17】 上記命令出力工程は、 記憶部にユーザパラメータファイルとして記憶された一
    次パラメータを入力し、一次パラメータに従って命令を
    構成する各フィールドの長さを計算するフィールド長計
    算工程と、 記憶部に記憶された上記命令の体系を入力し、上記命令
    の体系と計算された各フィールドの長さとに基づいて、
    所定のプログラミング言語で記述されたプログラムを翻
    訳して命令を生成して記憶部に記憶する命令生成工程と
    を備えたことを特徴とする請求項16記載のプロセッサ
    合成方法。
  18. 【請求項18】 上記プロセッサ合成方法は、さらに、
    上記命令生成工程により生成された命令に基づいて、上
    記プロセッサ定義情報出力工程により出力されたプロセ
    ッサ定義情報により生成されるプロセッサの動作をシミ
    ュレーションするシミュレーション工程を備えたことを
    特徴とする請求項16記載のプロセッサ合成方法。
  19. 【請求項19】 上記入力工程は、上記一次パラメータ
    として、レジスタファイルのレジスタ数、CPUビット
    幅、データメモリサイズ及び命令メモリサイズを入力す
    ることを特徴とする請求項15記載のプロセッサ合成方
    法。
  20. 【請求項20】 上記プロセッサ定義情報出力工程によ
    り出力されるプロセッサ定義情報は、ハードウェア記述
    言語であることを特徴とする請求項15記載のプロセッ
    サ合成方法。
  21. 【請求項21】 上記命令生成工程は、所定のプログラ
    ミング言語で記述されたプログラムを入力しコンパイル
    してコードを出力するコンパイラを生成するコンパイラ
    生成工程と、 上記コンパイラ生成工程により生成されたコンパイラ
    に、上記プログラミング言語で記述されたプログラムを
    入力してコードを出力するコンパイル工程とを有するこ
    とを特徴とする請求項17記載のプロセッサ合成方法。
  22. 【請求項22】 上記命令生成工程は、さらに、上記コ
    ンパイル工程でコンパイラにより出力されるコードを入
    力しアセンブルして命令コードを出力するアセンブラを
    生成するアセンブラ生成工程と、 上記アセンブラ生成工程により生成されたアセンブラ
    に、上記コンパイル工程でコンパイラにより出力された
    コードを入力しアセンブルして命令コードを出力するア
    センブル工程とを有することを特徴とする請求項21記
    載のプロセッサ合成方法。
JP8058749A 1996-03-15 1996-03-15 プロセッサ合成システム及びプロセッサ合成方法 Expired - Lifetime JP2869379B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP8058749A JP2869379B2 (ja) 1996-03-15 1996-03-15 プロセッサ合成システム及びプロセッサ合成方法
US08/720,627 US5896521A (en) 1996-03-15 1996-10-02 Processor synthesis system and processor synthesis method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8058749A JP2869379B2 (ja) 1996-03-15 1996-03-15 プロセッサ合成システム及びプロセッサ合成方法

Publications (2)

Publication Number Publication Date
JPH09251477A JPH09251477A (ja) 1997-09-22
JP2869379B2 true JP2869379B2 (ja) 1999-03-10

Family

ID=13093199

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8058749A Expired - Lifetime JP2869379B2 (ja) 1996-03-15 1996-03-15 プロセッサ合成システム及びプロセッサ合成方法

Country Status (2)

Country Link
US (1) US5896521A (ja)
JP (1) JP2869379B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7043717B2 (en) 2002-05-27 2006-05-09 Kabushiki Kaisha Toshiba Debugging apparatus and method
US7168060B2 (en) 2002-04-26 2007-01-23 Kabushiki Kaisha Toshiba Method of generating development environment for developing system LSI and medium which stores program therefor using VLIW designating description

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6321369B1 (en) * 1996-10-28 2001-11-20 Altera Corporation Interface for compiling project variations in electronic design environments
JPH1125134A (ja) * 1997-05-09 1999-01-29 Toshiba Corp 論理回路自動設計方法及びシステム並びにその自動設計処理を行うプログラムを記憶した媒体
US6080204A (en) * 1997-10-27 2000-06-27 Altera Corporation Method and apparatus for contemporaneously compiling an electronic circuit design by contemporaneously bipartitioning the electronic circuit design using parallel processing
US6367056B1 (en) 1998-04-23 2002-04-02 Altera Corporation Method for incremental timing analysis
EP0953898A3 (en) * 1998-04-28 2003-03-26 Matsushita Electric Industrial Co., Ltd. A processor for executing Instructions from memory according to a program counter, and a compiler, an assembler, a linker and a debugger for such a processor
AU3484100A (en) 1999-02-05 2000-08-25 Tensilica, Inc. Automated processor generation system for designing a configurable processor andmethod for the same
JP2009015867A (ja) * 1999-02-05 2009-01-22 Tensilica Inc 構成可能なプロセッサを設計するための自動プロセッサ生成システム及び生成方法
US6477683B1 (en) 1999-02-05 2002-11-05 Tensilica, Inc. Automated processor generation system for designing a configurable processor and method for the same
US6502236B1 (en) * 1999-03-16 2002-12-31 Fujitsu Network Communications, Inc. Method and apparatus for automatic generation of programs for processing data units of multiple formats
US6772106B1 (en) * 1999-08-20 2004-08-03 Hewlett-Packard Development Company, L.P. Retargetable computer design system
JP2001216337A (ja) * 2000-02-01 2001-08-10 Rooran:Kk Cpuコアの開発支援システムとその開発支援方法及び開発支援用プログラムを記録した記録媒体
US7036106B1 (en) 2000-02-17 2006-04-25 Tensilica, Inc. Automated processor generation system for designing a configurable processor and method for the same
US20010025363A1 (en) * 2000-03-24 2001-09-27 Cary Ussery Designer configurable multi-processor system
US6721937B2 (en) * 2000-06-06 2004-04-13 Fujitsu Network Communications, Inc. Method and system for automated processor register instantiation
AU2001222161A1 (en) * 2000-07-28 2002-02-13 Delvalley Limited A data processor
IT1320572B1 (it) * 2000-08-01 2003-12-10 Cselt Centro Studi Lab Telecom Modulo generatore di circuiti per l'analisi di stringhe di bit incelle di dati, metodo per la generazione di tale tipo di circuito
US6591403B1 (en) * 2000-10-02 2003-07-08 Hewlett-Packard Development Company, L.P. System and method for specifying hardware description language assertions targeting a diverse set of verification tools
US6986127B1 (en) * 2000-10-03 2006-01-10 Tensilica, Inc. Debugging apparatus and method for systems of configurable processors
JP2002230065A (ja) 2001-02-02 2002-08-16 Toshiba Corp システムlsi開発装置およびシステムlsi開発方法
US20020156994A1 (en) * 2001-04-24 2002-10-24 Sanjay Agarwal Coprocessor architecture for control processors using synchronous logic
US6848074B2 (en) * 2001-06-21 2005-01-25 Arc International Method and apparatus for implementing a single cycle operation in a data processing system
US7346881B2 (en) 2002-05-13 2008-03-18 Tensilica, Inc. Method and apparatus for adding advanced instructions in an extensible processor architecture
US7376812B1 (en) 2002-05-13 2008-05-20 Tensilica, Inc. Vector co-processor for configurable and extensible processor architecture
US7937559B1 (en) 2002-05-13 2011-05-03 Tensilica, Inc. System and method for generating a configurable processor supporting a user-defined plurality of instruction sizes
EP1570424A2 (en) * 2002-10-01 2005-09-07 Target Discovery, Inc. Methods and compositions utilizing evolutionary computation techniques and differential data sets
US7093099B2 (en) * 2002-12-12 2006-08-15 Alacritech, Inc. Native lookup instruction for file-access processor searching a three-level lookup cache for variable-length keys
US6981232B1 (en) * 2003-05-23 2005-12-27 Xilinx, Inc. Method and system for integrating a program and a processor into an application specific processor
US7207038B2 (en) * 2003-08-29 2007-04-17 Nokia Corporation Constructing control flows graphs of binary executable programs at post-link time
WO2005057403A2 (de) * 2003-11-24 2005-06-23 Univ Dresden Tech Verfahren zur automatischen erzeugung eines prozessors aus einer maschinen-beschreibung
WO2005086746A2 (en) * 2004-03-04 2005-09-22 Trustees Of Boston University Programmable-logic acceleraton of data processing applications
US7278122B2 (en) * 2004-06-24 2007-10-02 Ftl Systems, Inc. Hardware/software design tool and language specification mechanism enabling efficient technology retargeting and optimization
US20060055704A1 (en) * 2004-09-10 2006-03-16 Kruk James L Empty space reduction for auto-generated drawings
US7523434B1 (en) 2005-09-23 2009-04-21 Xilinx, Inc. Interfacing with a dynamically configurable arithmetic unit
US20100070951A1 (en) * 2008-09-15 2010-03-18 Horizon Semiconductors Ltd. Generic assembler
US8863101B2 (en) 2008-12-10 2014-10-14 International Business Machines Corporation Compiler generator
US8370784B2 (en) * 2010-07-13 2013-02-05 Algotochip Corporation Automatic optimal integrated circuit generator from algorithms and specification
US8225247B2 (en) * 2010-07-13 2012-07-17 Satish Padmanabhan Automatic optimal integrated circuit generator from algorithms and specification
US8271920B2 (en) 2010-08-25 2012-09-18 International Business Machines Corporation Converged large block and structured synthesis for high performance microprocessor designs
JP5668404B2 (ja) * 2010-10-08 2015-02-12 日本電気株式会社 構成情報管理装置、その方法及びそのプログラム並びに動作合成装置
US8689200B1 (en) * 2011-01-12 2014-04-01 Google Inc. Method and system for optimizing an executable program by generating special operations for identical program entities
US8683455B1 (en) 2011-01-12 2014-03-25 Google Inc. Method and system for optimizing an executable program by selectively merging identical program entities
JP2015166967A (ja) * 2014-03-04 2015-09-24 東芝情報システム株式会社 回路規模最適化装置及び回路規模最適化方法
US9250900B1 (en) 2014-10-01 2016-02-02 Cadence Design Systems, Inc. Method, system, and computer program product for implementing a microprocessor with a customizable register file bypass network
CN112905242B (zh) * 2021-03-23 2022-12-06 浙江大华技术股份有限公司 分支路径跳转方法、装置、存储介质及电子装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62208171A (ja) * 1986-03-10 1987-09-12 Hitachi Ltd 論理装置の自動設計装置
US4922432A (en) * 1988-01-13 1990-05-01 International Chip Corporation Knowledge based method and apparatus for designing integrated circuits using functional specifications
US5197016A (en) * 1988-01-13 1993-03-23 International Chip Corporation Integrated silicon-software compiler
JPH02234274A (ja) * 1989-03-08 1990-09-17 Hitachi Ltd パイプライン制御論理の自動生成方法及び制御論理
JPH0614321B2 (ja) * 1989-10-23 1994-02-23 ブイ・エル・エス・アイ・テクノロジー・インコーポレイテッド プログラム化されたコンパイラを用いたデジタル信号プロセサの実現化方法
JPH03144829A (ja) * 1989-10-31 1991-06-20 Nec Corp 可変ターゲットコンパイラ方式
US5410719A (en) * 1992-05-27 1995-04-25 Hewlett-Packard Company Field compositor for merging data and including cells each receiving three control and two data inputs and generating one control and one data output therefrom
DE69327504T2 (de) * 1992-10-19 2000-08-10 Koninkl Philips Electronics Nv Datenprozessor mit Operationseinheiten, die gemeinsam Gruppen von Registerspeichern benutzen
US5541850A (en) * 1994-05-17 1996-07-30 Vlsi Technology, Inc. Method and apparatus for forming an integrated circuit including a memory structure
US5493508A (en) * 1994-06-01 1996-02-20 Lsi Logic Corporation Specification and design of complex digital systems

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
情報処理学会研究報告 VOL95,NO.72,p73−80(DA76−10),塩見彰睦ほか「ASTP設計用コデザインワークベンチPEA−S▲III▼の提業」
電子情報通信学会技術研究報告 VOL.95,NO.421(VLD95 115−128),p31−36,片岡健二ほか,「ASIP設計用ワークベンチPEAS−▲III▼の実験方法についての考察−CPVアーキテクチャの分類とバラメタ化−」

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7168060B2 (en) 2002-04-26 2007-01-23 Kabushiki Kaisha Toshiba Method of generating development environment for developing system LSI and medium which stores program therefor using VLIW designating description
US7043717B2 (en) 2002-05-27 2006-05-09 Kabushiki Kaisha Toshiba Debugging apparatus and method

Also Published As

Publication number Publication date
US5896521A (en) 1999-04-20
JPH09251477A (ja) 1997-09-22

Similar Documents

Publication Publication Date Title
JP2869379B2 (ja) プロセッサ合成システム及びプロセッサ合成方法
Hoffmann et al. A methodology for the design of application specific instruction set processors (ASIP) using the machine description language LISA
Sun et al. Synthesis of custom processors based on extensible platforms
Barat et al. Reconfigurable instruction set processors from a hardware/software perspective
US6425116B1 (en) Automated design of digital signal processing integrated circuit
KR100775547B1 (ko) 구성가능한 프로세서를 설계하기 위한 프로세서 자동 생성시스템 및 방법
Cardoso et al. Compilation techniques for reconfigurable architectures
JP5009979B2 (ja) 処理システムでのソフトウェアプログラムの実行に基づくasicの設計
US20050049843A1 (en) Computerized extension apparatus and methods
EP1229461A2 (en) System LSI development apparatus and the method thereof for developing a system optimal to an application
Golze VLSI chip design with the hardware description language VERILOG: An introduction based on a large RISC processor design
JP2003323463A5 (ja)
JP5681281B2 (ja) アルゴリズムおよび仕様に基づく自動最適集積回路ジェネレータ
US7007264B1 (en) System and method for dynamic reconfigurable computing using automated translation
Qin et al. Architecture Description Languages for Retargetable Compilation.
US9383977B1 (en) Generation of compiler description from architecture description
US6519742B1 (en) Local naming for HDL compilation
SNOW III AUTOMATION OF MODULE SET INDEPENDENT REGISTER-TRANSFER LEVEL DESIGN.
Yang et al. Metacore: an application specific dsp development system
La Rosa et al. A software development tool chain for a reconfigurable processor
JP2005293448A (ja) データ処理装置の開発方法、データプロセッサの開発支援プログラム、設計データの提供方法、及びデータ処理システムの開発方法
Eikerling et al. A methodology for rapid analysis and optimization of embedded systems
Shackleford et al. Satsuki: An integrated processor synthesis and compiler generation system
Hadjiyiannis et al. Techniques for accurate performance evaluation in architecture exploration
Zaretsky et al. Overview of the FREEDOM compiler for mapping DSP software to FPGAs

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071225

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20081225

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20091225

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20091225

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20101225

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20111225

Year of fee payment: 13

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

Free format text: PAYMENT UNTIL: 20111225

Year of fee payment: 13

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

Free format text: PAYMENT UNTIL: 20121225

Year of fee payment: 14

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

Free format text: PAYMENT UNTIL: 20121225

Year of fee payment: 14

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

Free format text: PAYMENT UNTIL: 20131225

Year of fee payment: 15

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term