13
九州大学学術情報リポジトリ Kyushu University Institutional Repository リコンフィギャラブルシステムRICE とSystemC によ る設計環境 田中, 康一郎 九州工業大学マイクロ化総合技術センター 川原, 崇宏 九州工業大学情報工学部 知能情報工学科 国武, 勇次 九州工業大学情報工学部 知能情報工学科 永尾, 亜美 九州産業大学情報科学部 知能情報学科 http://hdl.handle.net/2324/6308 出版情報:Electronic Design and Solution Fair ユニバーシティプラザ予稿集, pp.21-32, 2006-01. Electronic Design and Solution Fair バージョン: 権利関係:

リコンフィギャラブルシステムRICE とSystemC によ る設計環境 · fpga,dsp,sdramなどのデバイスを搭載してお り,ハードウェアとソフトウェアの協調処理を行うこ

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: リコンフィギャラブルシステムRICE とSystemC によ る設計環境 · fpga,dsp,sdramなどのデバイスを搭載してお り,ハードウェアとソフトウェアの協調処理を行うこ

九州大学学術情報リポジトリKyushu University Institutional Repository

リコンフィギャラブルシステムRICE とSystemC による設計環境

田中, 康一郎九州工業大学マイクロ化総合技術センター

川原, 崇宏九州工業大学情報工学部 知能情報工学科

国武, 勇次九州工業大学情報工学部 知能情報工学科

永尾, 亜美九州産業大学情報科学部 知能情報学科

http://hdl.handle.net/2324/6308

出版情報:Electronic Design and Solution Fair ユニバーシティプラザ予稿集, pp.21-32, 2006-01.Electronic Design and Solution Fairバージョン:権利関係:

Page 2: リコンフィギャラブルシステムRICE とSystemC によ る設計環境 · fpga,dsp,sdramなどのデバイスを搭載してお り,ハードウェアとソフトウェアの協調処理を行うこ

リコンフィギャラブルシステム RICEと SystemCによる設計環境

田中 康一郎 † 川原 崇宏 ‡ 国武 勇次 ‡ 永尾 亜美 ¶ 重松 悠 ¶増永 愛子 ¶ 千代延 昭宏 ‡ 佐藤 寿倫 ‡ 有田 五次郎 ¶

† 九州工業大学 マイクロ化総合技術センター‡ 九州工業大学 情報工学部 知能情報工学科¶ 九州産業大学 情報科学部 知能情報学科 

1 まえがき本稿では九州工業大学佐藤研究室と九州産業大学有

田研究室で行われている教育および研究の一部を紹介する.本文は 3 つの章で構成されている.まず 2 章では本学で開発したField Programmable Gate Array(FPGA)のダイナミック・リコンフィギュレーションを効果的活用できるハードウェア・プラットフォームであるリコンフィギュラブルシステムRICEの詳細について紹介する.次に 3章ではRICE開発のベースシステムである FPGA/DSPシステム RYUOHを利用した SystemCによるシステム設計教育のカリキュラムとその実施結果について報告する.最後に 4章では次世代設計手法の一つとして期待されている建設的タイミング違反手法の原理とその有効性を確認するための評価結果を示す.

2 リコンフィギュラブルシステムRICE

2.1 はじめにFPGAに代表されるプログラマブルな LSI も,使

用中はアプリケーションの書き換えを行わない,いわゆる静的での再構成が主となっていた.だが,近年このような LSIを動的に再構成する研究が盛んとなっている [1, 2].Xilinx社のVirtexシリーズを始めとするFPGAの一部には,動的部分再構成機能を備えているものがある [3].この機能を活用することにより,ハードウェア自身のアップグレード,適応型ハードウェア・アルゴリズム,ランタイム・リコンフィギュレーションなどの新しいアプリケーション分野が有効となる.また従来のアプリケーション分野においても,デバイス数の削減,省電力化,基板面積の節約などの効果が期待できる.本稿では,FPGAを用いて動的部分再構成を実現す

るシステムであるRICEを紹介する.次節にてRICEの概要を述べる.2.3節では動的再構成に要するデバイスおよびそのコントローラについて,2.4節では動的再構成を実現するためのコントローラについて解説する.2.5節では RICEに搭載されている DSP を扱うためのコントローラについて言及する.最後に評価結果として 2.6 節で動的再構成コントローラの評価,DSPコントローラの評価をそれぞれ示す.2.2 RICE図 1に示す RICE[4] は,動的部分再構成を用いた

アプリケーション開発を主な目的として設計したシステムである.本システムは Xilinx社の FPGAであるVirtex-IIの動的部分再構成機能でランタイム・リコンフィギュレーションを実現している.RICEの構成を図 2に示す.このブロック図に示すように RICEにはFPGA,DSP,SDRAMなどのデバイスを搭載しており,ハードウェアとソフトウェアの協調処理を行うことができる.RICEの FPGAは 2つ搭載されており,それぞれ異なった役割を持っている.1つは各デバイスをコントロールするため (Fixed)に用い,もう 1つ

は部分再構成機能を用いた演算処理のため (Reconfig.)に利用する.これら 2つの役割を同一FPGAにて行わせることも可能であるが,検証時に問題点を容易に解決できるようにするためRICEでは 2つのFPGAで分担させて実現している.SDRAMはDSPやFPGAのための命令およびデータまたは FPGA(Reconfig.)のビットストリームデータを格納するために用いる.その他に USBインタフェース,Ethernetインタフェース,CMOSカメラを備えることで多様なアプリケーション開発や研究にも利用できる [5, 6].

図 1: RICE

FPGA(Fixed)

FPGA(Reconfig.)

DSP

Ethernet

module

CMOS camera

SDR SDRAM

(128Mbit)

USB 1.1

controller

USB 1.1

controller

SDR SDRAM

(128Mbit)

SDR SDRAM

(128Mbit)

Configuration

via SelectMAP

GPIO

図 2: RICEの構成

2.3 主要デバイスおよびコントローラRICEにて動的部分再構成を行う際に必要となるデ

バイスは,再構成に必要な命令やデータを入力するための USBおよび再構成用ビットストリームデータを格納している SDRAMである.またFPGA(Fixed)がFPGA(Reconfig.)に対して構成・再構成を行うためのDownloadコントローラが必要となる.これら 3つのデバイスおよびコントローラにて動的部分再構成が実現される.

RICEに搭載されているデバイスおよびコントローラは,それぞれ最適な動作周波数が異なる.それらに

Page 3: リコンフィギャラブルシステムRICE とSystemC によ る設計環境 · fpga,dsp,sdramなどのデバイスを搭載してお り,ハードウェアとソフトウェアの協調処理を行うこ

対応できるように FPGA(Fixed)の内部回路はマルチクロックに対応できるように設計している.具体的には動作周波数が異なるロジック間で通信を行えるようにするために,FPGA の内部メモリであるBRAMによるマルチクロック FIFOキューを各コントローラの境界に用意している.以下 FPGA(Fixed)に実装している各種コントローラの詳細について紹介する.2.3.1 Downloadコントローラ

Downloadコントローラは,受信したビットストリームを FPGA(Reconfig.) にダウンロードするためのコントローラである.FPGA(Reconfig.)に対するビットストリームは,全体を再構成するデータと一部を再構成するデータに大別できるが,このコントローラでは両者のデータに対応することができる.ランタイム・リコンフィギュレーションにおける要

点の 1つに,コンフィギュレーションのための時間がある.動的再構成を行うシステムでは,実際の処理時間はアプリケーションの実処理と再構成時間を加えた時間となるため,再構成に要する時間は非常に重要である.本コントローラの開発では,この再構成時間を重視した.

Xilinx社の Virtex-IIシリーズには複数のコンフィギュレーションモードがあるが,その中でもパーシャル・リコンフィギュレーションをサポートしているモードは SelectMAPおよびバウンダリスキャンである.双方の再構成時間を比較すると,SelectMAPの方がバウンダリスキャンに比べて 10倍以上高速である.このことからコンフィギュレーションモードには SelectMAPを採用している.

SelectMAP 用の Downloadコントローラの入出力端子を図 3に示す.図の左側の端子は FPGA の内部からビットストリームデータを受信するためのインタフェースである.本コントローラに実装しているFIFOキューは構成するビットストリームデータの一時保存用として使用しており,2KBの容量を確保している.ダウンロードの正常終了は DONEOUTピンにより確認できる.また FULL ピンにより FIFOキューの状態が把握できる.一方右側の端子は FPGA(Reconfig.)のコンフィギュレーションピンに直接接続する端子である.PROGピンは FPGAのリセットピンである,lowにすることによってコンフィギュレーション・メモリをクリアする.コンフィギュレーションの状態は INITピンによって確認できる.また,ビットストリームデータ転送の成功は BUSYピンにより確認できる.

CCLK

PROG

DONE

INIT

BUSY

CS

M[2:0]

D[7:0]

RDWR

DL_CLKCLK

DIN[7:0]

WR

DONEOUT

FULL

SelectMAP

Download

Controller

RST

図 3: SelectMAPダウンロード・コントローラの入出力端子

2.3.2 SDRAMコントローラSynchronous Dynamic Random Access Memory

(SDRAM)は,従来の DRAMと比較して大域幅が大

幅に改善されている.従来の DRAMはデータ,アドレス,コントロールを全て非同期制御で行っていたが,SDRAMは全て同期制御で行っている.そのため,アドレスとコントロールをデータの読み書きを行う以前にラッチすることができ,結果として現在のトランザクションを終了する前に次のトランザクションを並行して開始できる.

RICE に搭載している SDRAM は,Elpida 社のEDS1232AATA-75 である.この SDRAM はシングルデータレート (Single Data Rate: SDR)で動作できる.容量は 128Mbであり,1,048,576words× 32bits× 4banksで構成される.キャスレイテンシ (Cas La-tency: CL)およびバースト長 (Burst Length: BL)はプログラマブルである.CL に関しては CL=3 の時133MHz,CL=2の時 100MHzで動作させることができる.また BLに関しては 1,2,4,8,Full Pageが選択可能である.リフレッシュサイクルは 64msあたり 4,096サイクル必要である.

SDRAM を制御するためのコントローラの構成を図 4に示す.このコントローラはXilinx社の SDRAMコントローラ IP[7] をコアとして用いている.ただ,SDRAM IPのアドレス幅は 32Mbの容量までの対応となっているので,128Mbの容量に対応させるため若干の修正を行っている.FIFOキューは,入力用のデータバッファおよびアドレスバッファ,そして出力用データバッファに用いている.出力用のアドレスバッファを省略した理由は,回路動作の簡素化のためである.

Xilin

x S

DR

AM

con

troller

SD

RA

M

Input data

Seq

uen

cer

Input address

Output data

FPGA

図 4: SDRAMコントローラの概略

コンフィギュレーション時間にはデータをメモリから読み込む速度にも依存する.そのため SDRAM の動作モードにおいてバンド幅を最大限に得るために,BL を SDRAM IP がサポートしている中で最大の 8としている.また SDRAM の動作周波数を 100MHzとしているため,CL=2としている.2.3.3 USBコントローラ

RICEには,搭載している USBを制御するためにCypress Semiconductor社の AN2131SC という USBコントローラチップを実装している.このコントローラチップは内部に 8051 を拡張したプロセッサを搭載しているため,プログラムによって動作を定義することができる.また,動作周波数は 24MHzとなっている.転送モードはバルク転送,インタラプト転送,およびアイソクロナス転送をサポートしている.

AN2131SCと FPGAを接続するための USB コントローラ制御回路の内部構成を図 5に示す.この制御回路は,バルク転送用のバッファである FIFOキューとインタラプト転送のためのデュアルポートレジスタ

Page 4: リコンフィギャラブルシステムRICE とSystemC によ る設計環境 · fpga,dsp,sdramなどのデバイスを搭載してお り,ハードウェアとソフトウェアの協調処理を行うこ

で構成される.FIFOキュー,デュアルポートレジスタ共に FPGA の BRAM を利用している.このコントローラでは,AN2131SCがサポートする転送モードのうち,バルク転送およびインタラプト転送を使用している.エンドポイント数は,各出力に対してそれぞれ 1つずつを使用できる.

Input buffer

Output buffer

Register 0

Register 1

PC

DIN

DOUT

CDIN0

CDIN1

CDOUT1

CDOUT0

図 5: USBコントローラの概略

AN2131Cのバルク転送時におけるパケットサイズは,1バイトから 64バイトまで変更できる.様々なアプリケーションに柔軟に対応できるように,このUSBコントローラではバルク転送時のパケットサイズをPCから変更できるように設計している.デフォルトでは,送受信とも 64バイトである.

2.4 コンフィギュレーション・コントローラコンフィギュレーション・コントローラは,前節で

述べた 3 つのコントローラおよびこれらを統括するアービタによって構成される.このコントローラの概略を図 6 に示す.

Arbiter

USB FIFO Buffer

(2,048 x 9-bits)

8 bits to 32 bits

with swap function32 bits to 8 bits

SDRAM Controller

USB Controller

Download

Controller

Controller:

Instruction register (64B)

Bitstream size register (4B)

DC FIFO Buffer

(2,048 x 9-bits)

Reconfiguration type:

overall reconfiguration

partial reconfiguration

Bitstream size

USB FIFO Buffer

(2,048 x 9-bits)

SDRAM FIFO buffer

(512 x 36-bits)

SDRAM FIFO buffer

(512 x 36-bits)

SDRAM FIFO buffer

(512 x 36-bits)

図 6: コンフィギュレーション・コントローラの概略

アービタは USBコントローラから送られてきた命令の解釈および実行および各コントローラ間のデータの受け渡しを行う.また,SDRAMはデータバス幅が32 ビットなのに対し USB および Download で扱うデータバス幅は 8ビットである.これらの違いに対応する機能も実装している.

FPGA(Reconfig.)に対するコンフィギュレーションの流れを図 7に示す.まずPCに用意されたビットスト

リームデータを FPGA(Reconfig.)にダウンロードするため,FPGA(Fixed) 内の Sequencerに対して命令を発行する.なお,実際は Sequencerの機能はアービタが担っている.命令の内容には,PCからSDRAMへビットストリームデータを転送することと SDRAM内のビットストリームデータをFPGA(Reconfig.)へダウンロードすることを明示する.次に,USB経由でビットストリームデータを SDRAMに格納する.最後に,SDRAM からアービタを経由して Download コントローラにビットストリームデータを送る.Downloadコントローラは最初のデータが到着すると,すぐにFPGA(Reconfig.)に対してダウンロードを開始する.なお,ダウンロードを行う前にビットストリームデータを SDRAM へ転送する必要は必ずしも無く,いくつかのビットストリームデータを先に SDRAM に転送しておき,その後ビットストリームデータを選択しながらダウンロードすることも可能である.

Partial FPGA

SequencerFixed FPGA

Personal

computer

SDRAM

1: Instruction

USB

controller

2: Data transfer

Download

controller

SDRAM

controller

3: Download

Arbiter

図 7: コンフィギュレーションの動作

部分再構成の動作も,上で述べたコンフィギュレーションとほぼ同様であるが,相違点は 2つある.1つは PROGピンによる初期化はFPGA全体を初期化するために使用できないことである.もう 1つは再構成の成功を確認するための DONEピンが利用できないために,確認用ロジックを組み込まなければならないことである.最後にビットストリームデータのファイル・フォー

マットについて述べる.通常Xilinx社の論理合成ツール ISEにて生成される bitフォーマット・ファイルには,コンフィギュレーション・メモリ用のデータ以外にタイムスタンプやターゲットデバイスなどのヘッダ情報が格納されている.また,binフォーマット・ファイルは bitフォーマット・ファイルからヘッダ情報を削除したものである.現状では,この binフォーマット・ファイルを用いてコンフィギュレーションを行っている.なお,binフォーマット・ファイルを ISEで生成するには,オプションを指定する必要がある.

2.5 DSP

RICE に搭載されている信号処理向けプロセッサ (Digital Signal Processor: DSP) は Texas In-struments 社 (以下 TI 社) の TMS320C6711C(以下C6711C)[8]である.この C6711Cは TI社が提供している数種のプラットフォームの中のC6000 [9]と呼ばれるプラットフォームで,Very Long Instruction Word(VLIW)アーキテクチャが用いられている.また,浮動小数点演算命令にも対応している.外部メモリとして,SRAM(非同期),SBSRAM,SDRAM に対応しており,RICEでは搭載している SDRAMを使用している.最大動作周波数は 200MHzである.以下では,この DSPを制御するためのコントローラについて述べる.

Page 5: リコンフィギャラブルシステムRICE とSystemC によ る設計環境 · fpga,dsp,sdramなどのデバイスを搭載してお り,ハードウェアとソフトウェアの協調処理を行うこ

2.5.1 DSPコントローラDSP コントローラは,C6711C 全体を制御するた

めの 2つのインタフェースコントローラによって成り立っている.インタフェースの 1つはHost Port Inter-face (HPI)[10]であり,もう 1つは External MemoryInterface (EMIF)[11]である.HPIは DSPを制御するためのインタフェースであり,DSP内部の制御レジスタ,内部メモリ,外部メモリに対して自由にアクセスすることができる.一方 EMIF は外部メモリのためのインタフェースである.外部メモリは 4つの空間に分かれており,それぞれ異なるメモリ向けに使うことができる.2.5.2 HPIコントローラ前述した通り,HPIは DSPを外部から制御するた

めのインタフェースである.今回設計した HPI コントローラで求められる機能を次に示す.

1. DSPのブート

2. DSP内の制御レジスタの設定

3. DSP内部メモリ内へのプログラム書き込み

4. DSP内部および外部メモリのデータ読み込みHPI コントローラにも,前節で述べた主要デバイ

スコントローラと同様に BRAMで構成された FIFOキューを組み込んでいる.これは USB を介して PCから DSP に対して送られてきた命令やプログラム,データを一時保存しておくために用いている.2.5.3 EMIFコントローラ前述したように,DSPにおけるEMIFインタフェー

スはSRAM,SBSRAM,SDRAMに対応している.ここでは,RICE に搭載されている SDRAM と接続するための EMIFコントローラおよび,SRAMをキャッシュとして接続する EMIF-DCACHEコントローラについて述べる.SDRAMとの接続 RICEでは EMIFバス上にメモリを用意しておらず,FPGAが EMIFと直接接続されている.そのため FPGA によって DSP のメモリを構成する必要がある.DSP,FPGA,SDRAMの接続を図 8に示す.単方向の信号線は,DSP の信号をSDRAMに FPGAを介して接続する.一方データバスのような双方向の信号線は,FPGAの入出力端子の3ステートバッファを使用する必要がある.データバスの調停には,SDWEピンを使用する.

ED[31:0]

EA[13:2]

EA[15:14]

BE[3:0]

SDRAS

SDCAS

SDWE

CE0

ECLKOUT

CKE

D[31:0]

A[11:0]

BA[1:0]

DQM[3:0]

RAS

CAS

WE

CS

CLK

CKE

D[31:0]

A[11:0]

BA[1:0]

DQM[3:0]

RAS

CAS

WE

CS

CLK

ED[31:0]

EA[13:2]

EA[15:14]

BE[3:0]

SDRAS

SDCAS

SDWE

CE0

ECLKOUT

DSP FPGA SDRAM

図 8: FPGAを介した EMIFと SDRAMの接続

Asynchronous SRAM との接続 続いて,EMIFコントローラにキャッシュを搭載したモデル (以下EMIF-DCACHEコントローラ)について述べる.このコントローラは DSP の EMIFと SDRAM を直接接続せず,図 9に示すように FPGA内にキャッシュメ

モリを搭載し,それを介して EMIFと SDRAMの通信を行う.このような構成をとることで,図 10に示すように EMIFと SDRAMの間に自由にユーザの意図したロジックを挿入することができる.

DSP

(EMIF)

DSP

(EMIF)SDRAMFPGA

Cache

図 9: キャッシュメモリを用いた EMIFと SDRAMとの接続

DSP

(EMIF)

DSP

(EMIF)SDRAMFPGA

Cache Userlogic

図 10: EMIF-DCACHEコントローラに対するユーザロジックの挿入例

キャッシュメモリの構成方法として,最も単純なダイレクトマップを採用した.図 11に示すようにダイレクトマップではデータが保管されるデータアレイとタグと呼ばれるアドレスの一部が保管されるタグアレイによって構成される.タグアレイは,DSP からEMIF経由でデータを読み込みまたは書き込みを行う際,データアレイに保管されているデータが DSPの期待するデータであるかどうかを確認するために使用される.もしタグアレイのデータとアドレスのデータが同一であればデータアレイのデータは有効 (Hit)であり,同一でなければ無効 (Miss)である.なおタグアレイにはアドレス以外にデータアレイのデータ自身の有効を示す Validビットとデータアレイ内のデータと SDRAM のデータの相違を示す Dirty ビットの 2ビットも一緒に保管されている.データアレイのエントリ数は 64 である.ラインサイズは 32 バイトである.このサイズは RICEに搭載されている FPGAのBRAMのサイズから決定した.なおタグアレイに関しては BRAMを使用すると効率が悪いため,フリップフロップ (Flip-Flop: FF)で構成した.このようにEMIF-DCACHEコントローラは非常に簡素に構成されている.次に EMIF-DCACHE コントローラの動作につい

て説明する.このコントローラでは図 12に示すようにステートとして 4 つの状態がある.初期状態は I-DLE ステートであり,この状態時に DSP からのリクエストを受信するとコントローラ内の状況に応じて READ/WRITE ステート,PREREADステート,WRITEBACKステートのいずれかに状態を遷移する.READ/WRITEステートへは,タグアレイ内のデータとリクエストされたアドレスとが同一であり (Hit),かつデータアレイ y内のデータが有効 (Valid)である場合に遷移する.一方WRITEBACKステートへは,タグアレイ内のデータとリクエストされたアドレスと

Page 6: リコンフィギャラブルシステムRICE とSystemC によ る設計環境 · fpga,dsp,sdramなどのデバイスを搭載してお り,ハードウェアとソフトウェアの協調処理を行うこ

Tag arrayTag array

Data array

031

Data array

1121

VDD: Dirty bitV: Vaild bit

32Byte

64 entry

Data [31:0]Addr [21:11]Addr [10:5] Addr [10:2]Addr [21:11]

ComparatorComparator

Hit or Miss

DSP (EMIF)

図 11: EMIF-DCACHEコントローラの構成

が異なり (Miss),かつデータアレイ内のデータが有効(Valid) であり,かつそのデータアレイ内のデータに変更があった (Dirty)場合に遷移する.そのほかの場合はPREREADに遷移する.READ/WRITEステートではデータアレイを使って DSPとデータの読み書きを行う.またPREREADステートでは SDRAMからデータアレイへ必要なデータを読み込む.最後にWRITEBACKステートではキャッシュアレイから S-DRAMへ必要なデータを書き込む.これらのステージを遷移することでDSPと SDRAMはデータの読み書きを行うことができる.

WRITEBACK

PREREADPREREAD

IDLEIDLE

READ/WRITEREAD/WRITE

request & hit & valid request & (~hit & valid & dirty)

~request

request & ~valid | (~hit & ~dirty)

図 12: EMIF-DCACHEコントローラのフロー

2.5.4 実装時の全体図DSP コントローラを使用するためのロジックの概

要を図 13に示す.これは,DSPコントローラ,USBコントローラと,両者をつなぐアービタによって構成される.なお,アービタはコンフィギュレーション・コントローラのそれを拡張したものとなっている.

DSP の実行までの起動の流れを次に述べる.C6711Cではリセット後,まずエンディアンの設定を行う必要がある.次に外部メモリに対する設定を行い,プログラムコートおよびデータをメモリに書き込む.最後に DSPを起動することで,書き込まれたプログラムの処理が開始される.

2.6 性能および評価本節ではコンフィギュレーション・コントローラお

よび DSPコントローラの評価について述べる.2.6.1 コンフィギュレーション・コントローラの評価コンフィギュレーション・コントローラおよび各コン

トローラ・ライブラリの回路規模を表 1に示す.表 1におけるOverallはコンフィギュレーション・コントローラ全体の回路規模を表しており,他の 4つは各コントローラとそれらを接続するアービタのライブラリ単体

Arbiter

USB FIFO Buffer

(2,048 x 9-bits)

32 bits to 8 bits

USB Controller

DSP

Controller

Controller:

Instruction register (64B)

Bitstream size register (4B)

USB FIFO Buffer

(2,048 x 9-bits)

EMIF Controller

HPI FIFO buffer

(512 x 36-bits)

HPI FIFO buffer

(512 x 36-bits)

HPI Controller

8 bits to 32 bits

with swap function

図 13: DSPコントローラの概略

での回路規模を表している.表 1で示すように,FFやルック・アップ・テーブル (Look Up Table: LUT)は8 割以上余っている.また内部メモリ (Block RAM:BRAM)においても,各々のコントローラで用意したFIFOキューの数だけ使用されている.アービタにおいては,各コントローラの FIFOキュー中のデータを受け渡しているため,内部に BRAMは必要ないので0となっている.次に,表 1下部に示す動作速度について述べる.ダ

ウンロード・コントローラは Virtex-IIに SelectMAPモードでコンフィギュレーションを行うことができる最大速度である 50MHz[12]の周波数を分周により内部で生成するため,倍の 100MHzで動作させている.SDRAMコントローラは,使用している Xilinx IPでの最大動作周波数と同じ 100MHzで動作させている.また USB に関しては AN2131SC の動作周波数である 24MHzで動作させている.動作速度は USBコントローラ・ライブラリ単体に比べてコンフィギュレーション・コントローラ内部のほうが速くなっている.この理由は,USB コントローラのファンアウト数がコンフィギュレーション・コントローラに合成されることによって使用してないピンが削られ,減少したためであった.続いて,性能の評価について述べる.今回の性能評

価では,18,948バイトのビットストリームを動的部分再構成することによって,実際に再構成が行われているか調査し,また再構成にかかる時間の計測を行った.評価を行うために,再構成前のクロックを分周した信号と最高生後のクロックを分周した信号は,それぞれ違うピンでプローブしている.また再構成中であることを示す信号線もプローブし,それぞれをロジックアナライザで観測した.実際に動的部分再構成を実行した際に観測したロ

ジックアナライザの波形を図 14 に示す.A2[5]ピンは再構成前のクロック分周信号で,A2[6]ピンは再構成後のクロック分周信号を表している.また,A2[1]ピンは再構成中であることを示す信号線である.これらの波形において,A2[5] ピンと A2[6]ピンをみると,動的再構成が行われたことが確認できる.また,A2[1] ピンが high のときに実際の再構成が行われており,その時間を計測したところ図 14に示されているように 376usecかかっていることがわかる.FPGA(Reconfig.)に対し SelectMAPモードにてデー

Page 7: リコンフィギャラブルシステムRICE とSystemC によ る設計環境 · fpga,dsp,sdramなどのデバイスを搭載してお り,ハードウェアとソフトウェアの協調処理を行うこ

表 1: コンフィギュレーション・コントローラの回路規模

Overall Download SDRAM USB Arbiter AvailableFlip flops 1,049 140 465 136 321 10,2404-input LUTs 1,889 353 585 124 1,013 10,240Block RAMs 8 1 3 4 0 40

19.804/20 (Core) 11.656/20 10.486/20 12.082/20 10.955/20Minimum 9.892/10 (Download) 9.967/10 —period (ns) 9.870/10 (SDRAM) 9.920/10

9.508/42 (USB) 11.428/42

タを構成する際,1クロックで 1バイトずつデータが送られている.すなわち,ダウンロードにかかる理論的な時間は,18,948(bytes)/50MHz≒ 380(usec)となる.この理論値は,実測値とほぼ同値であるため,動的部分再構成が最速時間で完了していることがわかる.

Reconfiguration time

reconfiguration

図 14: 動的再構成時の波形

2.6.2 DSPコントローラの評価DSPコントローラの回路規模を表 2に示す.EMIF

における回路規模について,内部で構成しているキャッシュのタグメモリ領域は BRAMを使用するとリソースが無駄になる.そのため FFを用いているので使用数が高めとなっている.またキャッシュメモリ領域はBRAMを使用している.それ以外のコントローラはコンフィギュレーション・コントローラと同様である.全体規模はコンフィギュレーション・コントローラよりも大きくなっているが、6割以上余っていることがわかる.動作速度において,DSPコントローラは現状ではコ

ンフィギュレーション・コントローラと同速度で動作させている.EMIFコントローラは SDRAM にアクセスするため,100MHzで動作させている.その他はコンフィギュレーション・コントローラと同様である.

DSP が正しく動作しているか評価するため,実際にプログラムを実行し動作結果の確認を行った.今回用いたプログラムは,外部メモリ上にある画像データをネガ反転し,結果を元画像データの後に書き込むというものである.DSP プログラムは DSP 内部メモリに,変換対象となる画像データは外部メモリであるSDRAMにそれぞれ HPI経由で PCからダウンロードした.元画像を図 15に,実行結果を図 16にそれぞれ示す.

実行結果から,元画像が正常にネガ反転されて出力されていることがわかる.

2.7 おわりに本稿では,主に RICE における動的部分再構成と

DSPコントローラについて述べた.現状では,RICE用に開発したDSPコントローラではHPIによるデー

図 15: 元画像 図 16: 実行結果

タリードには一部問題があるものの,それ以外は問題なく動作することが確認できた.また,コンフィギュレーション・コントローラを用いて動的部分再構成を行うと,最大速度で実行できることも確認できた.今後は,DSPコントローラとコンフィギュレーショ

ン・コントローラの一体化を進めることで,ハードウェア・ソフトウェア協調処理を実現する予定である.

3 SystemCによる設計教育

3.1 はじめに近年の情報化社会の急速な進歩に伴い,集積回路技

術は情報家電やモバイル端末,カーナビなどの情報機器だけでなく,輸送機械,産業機械,オフィス機器,医療・介助機器などのすべての機械器具へ取り入れられ情報化・知能化が進められている.また,その集積回路技術の向上のため,1つのチップに大規模なシステムを集積したシステム・オン・チップ (System on aChip: SOC)と称するシステム LSIも設計されるようになってきている.マイクロプロセッサを含む組込みシステムである高性能な集積回路技術も,今後は SoCのようなハードウェア (HW)とソフトウェア (SW)の一体型のシステムが主流になると考えられている.そのため,システムを広い視野で見て設計を行うことのできる技術者の需要が高まり,ソフトウェアもよく知るハードウェア技術者,ハードウェアもよく知るソフトウェア技術者の育成が重要となってきている.九州産業大学情報科学部では,3.2節で述べるよう

に「ハードウェアを怖がらない」ソフトウェア技術者の育成を目標にカリキュラムを編成しているが,これに,「ハードウェア・ソフトウェア協調設計の概念を持ったシステムレベル設計の演習」を新たに付加し,実践的なカリキュラムによる教育訓練を行った [13].本節では,制御用PC,FPGA,DSPを用いた 2005

年度の組込みシステム教育の演習内容とその結果を報告する.まず,3.2節では関連教育である本学のハードウェアシステム設計系科目について紹介する.3.3節では本教育の概要と,教育支援環境であるハードウェアプラットフォームと教育に利用した開発ツールについて言及し,3.4節では教育の実施内容に関して示す.3.5節ではその教育内容で行った実施結果を紹介し,簡

Page 8: リコンフィギャラブルシステムRICE とSystemC によ る設計環境 · fpga,dsp,sdramなどのデバイスを搭載してお り,ハードウェアとソフトウェアの協調処理を行うこ

表 2: DSPコントローラの実装結果

Overall EMIF HPI USB Arbiter AvailableFlip flops 2,593 2,047 190 136 383 10,2404-input LUTs 3,453 2,257 143 124 1,492 10,240Block RAMs 10 4 2 4 0 40DCMs 2 2 0 0 0 8

19.572/20 (Core) 19.360/20 14.946/20 12.082/20 13.239/20Minimum 9.972/10 (EMIF) 9.970/10 —period (ns) 9.590/42 (USB) 11.462/42

単なまとめと今後の予定について述べる.

3.2 関連教育3.2.1 カリキュラム構成九州産業大学情報科学部は社会の仕組みや人間の特

質を知って情報技術を適切に適用できる能力をもった人材の育成を目指して 2002年に開設された学部で,定員は 1 学年 200名である.第 1 年次後期から始まるハードウェアシステム設計系の科目において,計算機の動作原理と基礎構造の教育や,論理回路実験とCAD演習の併用,また,実機による実装を行うことにより,実際に世の中で使われている制御回路や計算機を自分で作り,実感することができる.本学部のハードウェアシステム設計系科目のカリキュラム構成を表 3に示す.

表 3: ハードウェアシステム設計系科目

実施期間 講義 実験1年後期 計算機アーキテクチャ2年前期 情報回路 情報科学基礎実験2年後期 計算機システム2年後期 情報回路設計 情報回路実験

これらはすべて必修科目であり,「計算機システム」は 2クラスに分かれ最大 120名,それ以外の講義科目は 4クラスに分かれ最大 60名で行われ,1コマ 90分の講義が半期で 14回行われる.実験科目の授業は,内容が講義科目と関連づけられており,講義科目 2クラス同時に 2コマ 180分の実験が半期で 14回行われる.3.2.2 関連教育の内容表 3に示したハードウェアシステム設計系科目の教

育内容を以下に示す.(1) 計算機アーキテクチャ 数値や文字,音声,画像など各種情報がどのようにビット列で表現されるかを学び,アルゴリズムの概念に基づく計算機の動作原理,簡単なモデル計算機を用いて計算機の基本構造,記憶装置,演算装置,制御装置などの基本動作を学ぶ.講義と共に実機 KERNEL Iを用いた演習を行い,体験を通じて情報処理の基本原理を学ぶ.(2) 計算機システム シミュレータによるモデル計算機を用いたアセンブリプログラミングを通じて,CPUやメモリ,入出力装置,外部記憶装置から構成されるシステムとしての計算機の構造や動作を理解するとともに,計算機システムについて重要な概念の一つである割り込み処理について学ぶ.(3) 情報回路,情報科学基礎実験 ディジタルシステムの基礎となる論理関数について,真理値表,論理式,その最適化手法,さらに論理関数を実現する論理回路に関して,組み合わせ回路,順序回路について学ぶ.また,講義と連携して,講義中に扱った回路を講義終了後の実験で製作する.基本論理素子,加算器等の組み合わせ回路やカウンタ等の順序回路の実験を通

じて,情報システムのハードウェアの基本動作の理解を学習する.実験では,CAD演習と ICを用いた論理回路実験を同じテーマについて交互に行うことにより基本的な回路の設計手法から最新の CADによる設計手法までを習得する.

(4) 情報回路設計,情報回路実験 (3) を踏まえ,HDLとCADシステムによって行われるハードウェアシステム設計の手法について学ぶ.具体的には,自動販売機や電子錠など実機の制御回路の設計・実装や,Verilog HDL による構造記述,動作記述,RTL 部品や順序回路の設計・検証,また,FPGAへの実装を通して CADによるディジタルシステム設計の技術を学習し,モデル計算機 KERNELの CPUを設計・実装する.図 17に FPGA実装用のプラットフォームである,モデル計算機 KERNEL Iの写真を示す.

図 17: KERNEL I

以上のカリキュラムを踏まえ,ハードウェアシステム設計系科目は組込みシステムへと視野を広げる.

3.3 組込みシステム教育3.3.1 講義概要本学部では 3.2.1節で述べたようなカリキュラムの

もとにハードウェアシステム設計系科目を履修し,第3年次後期では選択科目「組込みシステム/ VLSI工学」で組込みシステムについて学ぶことができる.この講義では,FPGAや DSPのようなシステム LSIを応用システムに組み込むためのシステムレベル設計の概念を学び,システムレベル設計言語 SystemCによるハードウェアモジュールとソフトウェアモジュールの協調動作の記述方法や,チャネルの概念を用いたモジュール間のインタフェース設計など,システムレベル設計技術とシミュレーションによる機能検証技術を学ぶ.また,制御用 PC,FPGA,DSPの上で協調動作する簡単なアプリケーションを SystemCにより記

Page 9: リコンフィギャラブルシステムRICE とSystemC によ る設計環境 · fpga,dsp,sdramなどのデバイスを搭載してお り,ハードウェアとソフトウェアの協調処理を行うこ

述し,実機に実装し動作検証を行う.

3.3.2 教育支援環境SystemCとは,1999年 9月に発足した組織 Open

SystemC Initiative(OSCI)により規格化された新しいハードウェアモデリング言語である.LSI設計のための言語の 1つであり,回路の動作をHDLではなく,ハードウェアのための拡張が施された C++言語のクラスライブラリを用いて記述する [14].実装用ボードは,リコンフィギャラブルシステム実

験環境として九州工業大学で開発され,組込みシステム実験用教材として本学部で保有しているRYUOHという FPGA,DSP,DIMMを搭載した PCIボードを用いる [15].図 18にRYUOHの写真を示す.また,図19に RYUOHの接続構成を示す.

図 18: RYUOH

EEPROM

ExternalInterface

up to 1GB

XILINXVirtex FPGA

orVirtex-E FPGA

(BG560)

JTAGMcBSP

TITMS320C6701

(GJC)

CONFIG.XILINX95216

AMCCS5935

ADD-On BUS

HPI: Host Port InterfaceEMIF: External Memory Interface

DIMM

SBSRAM

128KB

EMIF

HPI

LED SW

EEPROM

512KB

PCIGPIO GPIO

図 19: RYUOHの構成

SystemC により回路動作を記述する際に用いた設計環境は,ハードウェア・ソフトウェア協調設計および協調検証が可能な Summit Designが提供している設計環境Visual Eliteである.Visual Eliteではブロックレベル設計が可能であり,SystemCによるシステムレベル設計,コンパイル,シミュレーションが可能である [16].

FPGA を用いたハードウェア設計は 2 年次に学習した Verilog HDL によっても可能であるが,本講義ではハードウェア・ソフトウェア協調設計を目標としているため,今回使用する記述言語は主に SystemCを用い,FPGAへの実装の際に SystemCから記述変換して Verilog HDLを用いた.その他使用した EDAツールは,DSP開発には,C言語,リニアアセンブリ言語,アセンブリ言語に対応した Texas Instruments(TI)のCode Composer Studio (CCS)を用い,PC用開発ソフトウェアは,Microsoftの Visual C++を使用した.また,論理合成に関しては,Xilinxの ISEを用いて配置・配線を行った.なお,上記ツール・ソフトウェアはすべてMicrosoftのWindowsXP上で活用した.図 20に開発のイメージを示す.

図 20: 開発のイメージ

3.4 教育内容2005年度の「組込みシステム/VLSI工学」の講義

内容を表 4に示す.講義は 1コマ 90分が半期で 14回行われた.受講者数は 58名であるが,そのすべての学生がハードウェアとソフトウェアの設計検証が体験できるように配慮した.前半 4回の講義では,FPGA,DSPなど LSIの特性,ハードウェア・ソフトウェア協調設計などの基本概念などを学習する時間とし,後半10回の講義では,Visual Eliteを用いたブロックレベル設計と SystemCによるシステムレベル設計,さらに RYUOH への実装という個人単位の演習の時間とした.後半 10回の演習のうち,その前半を設計環境Visual

Eliteを用いてシステムレベル設計の概念に触れることを目的としたDフリップフロップ (D Flip-Flop: dFF)設計,算術論理演算回路 (Arithmetic and Logic Unit:ALU)設計とし,後半を DSP演習,FPGA設計とした.この演習順序は前年度の演習結果を踏まえて決定した.以下にそれぞれの演習内容を示す.(1)dFF設計 Visual Eliteを用いた設計に慣れるための演習とする.基本的なブロックレベル設計,システムレベル設計計について学習する.dFF設計では、設計の仕方は異なるものの,基本構造や動作に関しては第 2年次後期までの関連講義・実験で学習しているため,概念の講義は行わない.しかし,Visual Eliteの環境の中で設計するのは受講者全員が初めてであるため,操作法を中心とした資料と共に設計させた.(2)1つのプロセスによるALU設計 dFF設計と同様Visual Eliteを用い,操作法を中心に作成した資料のもと演習を行う.また,1つのプロセスへの SystemCによる記述もこの演習で行う.図 21にプロセス内のSystemCによる記述例を示す.ALU設計も基本構造や動作に関しては第 2年次後期までの関連講義・実験で学習しているため,概念の講義は行わない.しかし,ゼロフラグやサインフラグなどの状態フラグ制御に関してはこれまでに学習していないため,ここではフラグ制御を省略した1つのプロセスによる ALU設計を行う.(3)6つのプロセスによるALU設計 (2)で設計した ALUを,並行動作する6つのプロセスに分けて設計を行い,同期や通信といった概念を学ぶ.さらにこの ALU設計では状態フラグ制御も行う.6つのプロセスに分けたALUは,加算 (add),減算 (sub),左右シフト演算 (sftl,sftr)を行う4つのプロセス,オペレーションコードを選出するプロセス (op sw),演算結果を出すプロセス (out)という構造になっている.図 22にそのブロック図によるシステムレベル設計を示す.(4)RYUOHを用いた演習 DSPとFPGAそれぞれの上でアプリケーションを実装する.まずVisual Eliteで RYUOH の動作検証を行い,その後に実装の演習

Page 10: リコンフィギャラブルシステムRICE とSystemC によ る設計環境 · fpga,dsp,sdramなどのデバイスを搭載してお り,ハードウェアとソフトウェアの協調処理を行うこ

表 4: 組込みシステム/VLSI工学の講義内容

回数 テーマ 内容1 システム LSIとシステムレベル設計 システム LSIと HW/SW協調設計の概念2 システムレベル設計言語 SystemC 総合開発環境 Visual Eliteとブロックレベル設計3 システムレベル設計の基礎 信号の定義、プロセスの記述、シミュレーション4 システムレベル設計言語の機能 並行プロセス、プロセス間の同期、チャネルによる通信

5-6 SystemCによる設計 Visual Elite環境設定、dFF設計と動作検証7-8 SystemCによる設計 1つのプロセスによる ALU設計と動作検証9-11 SystemCによる設計 6つのプロセスによる ALU設計と動作検証12-14 システムレベル設計 RYUOHによる演習

図 21: SystemCによる記述例

図 22: ALUのシステムレベル設計

に入る.動作検証では,あらかじめ作成したRYUOHのブロック図と SystemCによるテンプレートを配布し,演習を行う.このテンプレートでは,あらかじめ用意されたDSP,FPGA,CONTROL(制御用)と呼ばれる3つのプログラムテンプレートの中身の書き換えることで RYUOH のためのコードを生成させることができる.一例として図 23にDSPのプログラムテンプレートを示す.演習内容はこれら4つで,それぞれ期日を設けて演

図 23: DSPのプログラムテンプレート

習を行う.

3.5 実施結果2005年度は,全 53 名で演習を行った.ここでは,

現時点で終了していないRYUOHを用いたDSP演習,FPGA設計以前の演習結果について報告する.図 24のグラフは締切り期日までの完成率を示して

いる.dFF設計 (dFF)およびプロセス1つの ALU設計 (ALU(1))に関しては期日後に設計できた 9名(図中グレー)を含めて学生全員が完成させることができた.この要因として dFF設計やALU設計では,設計する内容に関しては既に以前の講義で教示していたために,演習に用いる CADツールの扱い方を学習する点に主眼がおけたためであると考えられる.一方プロセス 6つで構成される ALUの設計 (ALU(6))については,(1)事前の講義で指導していない状態フラグの生成,(2)並行プロセスの動作と記述方法の理解,(3)チャネルの動作の理解,などのそれまでの演習にはなかった新たな課題を課したために 3回の講義回数を用意しても期日までに満足できる完成率に到達することができなかった.残りの講義回数は 2回であるため全ての学生が最終課題を期限内に終了させることは難しいと考えるが,全体の 75%程度の学生が既に ALU(6)

Page 11: リコンフィギャラブルシステムRICE とSystemC によ る設計環境 · fpga,dsp,sdramなどのデバイスを搭載してお り,ハードウェアとソフトウェアの協調処理を行うこ

の最終工程である ALUのテストベンチ設計を行っている段階であること,次の実装課題のアプリケーションが比較的単純であること,ALU(6)設計よりも最終課題を優先すること,などから ALU(6)の期日内の完成率を上回る可能性は充分にあるものと考える.なお最終結果については,Electronic Design and SolutionFair 2006会場にて報告する予定である.

図 24: 学生の期日までの完成率

3.6 まとめ本章では,ハードウェアとソフトウェアの協調設計

を目標とした,SystemCによるシステムレベル設計による組込みシステム教育事例を紹介した.制御用 PC,FPGA,DSPを用いて協調動作する簡単なアプリケーションを記述し,実機に実装し動作検証を行った結果,机上での学習と比較してシステム設計に必要な知識を体得できる非常に効果的な学習方法であることが確認できた.今後,集積回路技術が発展するにつれ,システム設

計教育はますます重要になると予想される.これにより,本教育のようなハードウェアシステム設計系科目により計算機の動作原理と基礎構造の教育,論理回路やマイクロプロセッサの設計を行わせた後に,ハードウェア・ソフトウェア協調設計教育やシステムレベル設計教育,さらに 2章で述べたリコンフィギャラブルコンピューティングに関する教育を行うことで,さらに大きな学習効果が得られると考えられる.現在,それらに関する検討を行っている.

4 建設的タイミング違反手法ディープサブミクロン化 (deep submicron: DSM)

の進んだ半導体製造技術においては,従来行われてきた最悪値指向設計は不可能になると予想されている.DSMではノイズやプロセスばらつきが増大し,さらに電源電圧を低下させる必要も生じる.その結果,最悪値指向設計で必要となる設計マージンの確保が困難になる.最悪値ではなく典型値を考慮した,マイクロプロセッサの設計手法が求められている.建設的タイミング違反手法 (Constructive Timing

Violation: CTV)は上述の状況を考慮した設計手法であり,そこでは設計者は極めて稀な最悪値ではなく典型値に最適化した設計を求められる.CTVは以下の二つの現象を利用している.一つは,回路のクリティカルパスが活性化されることは稀であることである.もう一つは,クリティカルパスを活性化させる入力は極めて限定されることである.言い替えると,設計時のタイミング制約を緩和させたとしても,現実には回路の動作時にタイミング違反が生じることは稀である.例えば宇佐見らは,約 80%のパスの遅延はクリティカルパス遅延の半分以下であると報告している [17].CTVは回路レベルの投機実行を利用しているので,タイミング違反の結果ロジックエラーを生じ得る.そのため

のフォールトトレラント機構が必要である.タイミング違反が検出された時には,マイクロプロセッサに既に備わっている投機失敗からの回復機構を利用して,プロセッサ状態を回復させる.CTVは動作速度を向上させる目的のみならず,省電力の目的でも利用可能である.本稿では省電力応用を紹介する.

CMOS 回路の消費電力は,充放電電力,リーク電流電力,短絡電流電力に分けられる.近年その問題が注視されているのはリーク電流電力であるが,本稿では依然として消費電力全体の大きな部分を占める充放電電力に注目する.充放電電力 Pactive とゲート遅延tpd は以下の式により与えられる.

Pactive ∝ fCloadV2dd (1)

tpd ∝ Vdd

(Vdd − Vth)α(2)

f はクロック周波数,Cloadは負荷容量,Vddは電源電圧で,Vth はデバイスの閾値電圧である.αはキャリアの速度飽和を与えるパラメタで,近年のMOSFETでは 1.3–1.5 の値を取る.式 (1) から判るように,電源電圧を下げることが電力消費を小さくする最も有効な方法である.しかし,式 (2)から判るように同時にゲート遅延が増加してしまう.すなわち,動作周波数が低下してしまうことが判る.結局,消費電力を削減できてもマイクロプロセッサの性能を減じてしまうことになる.プロセッサの性能を維持するためには,電源電圧を下げてもクロック周波数を変えないことが必要となる.しかしそれはタイミング違反を発生させ,正常な動作が保証できない.

CTV の基本的な考え方を図 25を用いて説明する.回路レベルで投機的実行を行っており,タイミング違反を検出する機構と違反検出時にプロセッサの状態を正常に回復させる機構とが必要となる.図では回復機構は省略されている.図に示されている通り,CTV方式で設計された回路はメイン部 (図の main part)とチェック部 (図の checker part)から構成される.メイン部は元の回路であり,低レイテンシかつ高スループットという高性能を維持できるように設計されるが,タイミング違反が発生する可能性を秘めている.チェック部はタイミング違反を生じないように設計されており,メイン部の入出力が入力されメイン部のタイミング違反を検出する.

main

part

checker

part

output

detect

inputsmain

part

checker

part

output

detect

inputs

図 25: 建設的タイミング違反方式

図 26はタイミング違反を利用した省電力ALU である.checker partと示されている部分は従来のALUにタイミング違反に対するフォールトトレランス機構を適用したときの付加回路である.各回路は低レイテンシかつ高スループットで演算を行うメイン部とタイミング違反を検出するチェック部で構成される.基本的にはメイン部とチェック部では同じ回路を利用でき

Page 12: リコンフィギャラブルシステムRICE とSystemC によ る設計環境 · fpga,dsp,sdramなどのデバイスを搭載してお り,ハードウェアとソフトウェアの協調処理を行うこ

る.ただし,チェック部では低速動作させる必要がある.メイン部とチェック部で異る回路方式を使用すれば,より最適化を施すことも可能である.例えば,メイン部では桁上げ先見加算器を用い,チェック部では桁上げ伝搬加算器を用いる,などの選択も可能である.

=?

checker part

=?

main part

=?=?

checker part

=?=?

main part

op1

op2

fdd/2

fdd

fdd/2

detect

detect

図 26: CTVを適用した ALU

本方式を採用すると,消費電力は以下のように改善できる.式 (2)より,メイン部の最大動作周波数 fdd

は以下のように決定される.

fdd ∝ (Vdd − Vth)α

Vdd(3)

ここで説明を容易にするために,式 (3)を

fdd ∝ Vdd (4)

に単純化する.これにより一般性は失われない.電力効率を改善するには電源電圧を Vddよりも低い VL(ここで,Vdd > VL)に設定する必要がある.この結果,通常は動作周波数は VLで決まる fL(ここで,fdd > fL)に低下する.しかし,図 26のメイン部には fdd を供給する.なぜなら,タイミング違反を生じるのは稀であると期待できるからである.チェック部はメイン部のタイミング違反を検出するためタイミング違反を起してはならないので,電源電圧 VLかつ動作周波数 fL

で動作させる.この ALUは電源電圧 Vdd かつ動作周波数 fddで動

作しているとする.ここで VL = Vdd

2 ,fL = fdd

2 とする.従来の ALUは動作周波数 fdd,電源電圧 Vdd で動作するので,ALUで消費される電力 Pconvは式 (1)より,式 (5)となる.

Pconv = NfddCloadV2dd (5)

N は ALUを構成する MOSFETの数である.一方,タイミング違反を利用した低電力 ALUでは,1つの動作周波数 fdd,電源電圧 VLで動作するALUと 2つの動作周波数 fL,電源電圧 VLで動作する ALUで構成されている.よってこの ALU の消費電力は式 (6)となる.

Pdup = NfddCloadV2L + 2NfLCloadV

2L

= NfddCload(Vdd

2)2 + 2N(

fdd

2)2Cload(

Vdd

2)2

=12NfddCloadV

2dd (6)

上記の場合,回路規模は大きくなるが,全体として消費する電力は適用前の 1

2 となる.つづいて,CTVのエネルギー利用効率改善におけ

る潜在的な効果を調べる.タイミング違反が与える影響を見積るために,タイミング違反がランダムに発生すると仮定する.その発生率 (error rate)を 0–50%に変化させ,その時のエネルギー利用効率を求める.エネルギー利用効率の評価指標には,エネルギー遅延積(energy-delay product: EDP)を用いる.図 27に図 26のALUを用いた時のEDPをまとめる.

横軸は違反発生率であり,縦軸は CTVを採用しないモデルと比較した時の EDPである.値が小さいほどエネルギー利用効率が高い.具体的には,値が 100%よりも小さいとエネルギー利用効率が改善されることを示している.タイミング違反の発生率が上ると,当然エネルギー利用効率は悪くなる.しかし CTVを採用していないモデルと比較すると,発生率 0–50%の全範囲で全てのプログラムでエネルギー利用効率が改善されている.

50%

60%

70%

80%

90%

100%

0% 10% 20% 30% 40% 50%

Error rate

Rela

tive E

DP

164.gzip 175.vpr 176.gcc 197.parser 255.vortex 256.bzip2

図 27: エネルギー遅延積

最後にタイミング違反の発生率を調査して結果を報告する.キャリーセレクトアダー (Carry Select Adder:CSLA)を設計し,それを用いて動作周波数とタイミング違反発生率の関係を調査する.図 28 のように遅延を考えない理想的なCSLAと遅延情報を含んだCSLAを並列に動作させ,出力された演算結果,桁上げ信号について比較を行なう.タイミング制約が厳しくなるにつれ,遅延情報を含んだ CSLA では演算が間に合わずタイミング違反が発生し比較器での結果が不一致となる.この不一致が発生した結果の数をカウントすることにより,タイミング制約を上げていった場合の故障率を検証する.

Verilog HDLを用いてCSLAを設計する.論理合成時に遅延情報を持つ論理素子ライブラリを使用することにより,回路に遅延を付加させる.今回使用するライブラリはVDECから提供されている日立製 0.18μmプロセスASICライブラリである.論理合成にはシノプシス社のDesign Compilerを用い,回路解析および遅延情報を含むネットリストを出力する.検証結果を図 29にまとめる.横軸はタイミング制

約違反を満たす動作周波数 fL を 1とした場合のそれに対する動作周波数の倍率である.縦軸は各プログラムの入力データに対するタイミング制約違反の発生率である.動作周波数が 1.2倍の時点でタイミング違反は既に

発生しているが,どのプログラムも 1.4倍を越えない範囲内ではタイミング制約違反はほとんどみられない.また,2倍の時点でのタイミング違反発生率は一番高

Page 13: リコンフィギャラブルシステムRICE とSystemC によ る設計環境 · fpga,dsp,sdramなどのデバイスを搭載してお り,ハードウェアとソフトウェアの協調処理を行うこ

CSLA(ideal)

CSLA(include delay)

:register

Com

pare

Input A

Input B

Carry in

Clock

Reset

Input A

Input BCarry in

Count

Display at generating error

図 28: 検証に作成した回路

0

20

40

60

80

100

1 1.2 1.4 1.6 1.8 2 2.2 2.4 2.6 2.8 3

gzip vpr gcc parser vortex bzip2

magnification of clock frequency

erro

r rat

e

図 29: タイミング違反発生率

い gzipと vprでも 40%以下に収っている.この程度のタイミング違反の発生率であれば本方式を採用した場合,図 27のデータから全てのプログラムにおいて30%以上のエネルギー削減効果が期待できる.これは,故障回復のためのフォールトトレランス機構によるエネルギー増加を考慮しても十分なエネルギー削減効果が期待できる.今後,この結果をもとに動作周波数 fL

を建設的タイミング違反方式に採用し消費電力について検証して行こうと考えている.

5 むすび本稿では九州工業大学佐藤研究室と九州産業大学有

田研究室で行われている教育・研究の一部を紹介した.

参考文献[1] Steiger, C., Walder, H. and Platzner, M.:

Operating Systems for Reconfigurable Embed-ded Platforms: Online Scheduling of Real-Time Tasks, IEEE Transaction on Computers,Vol. 53, No. 11, pp. 1393 – 1407 (2004).

[2] 邊輪一人, 岡嶋知宏, 柴村英智, 飯田全広, 久我守弘, 末吉敏則:リコンフィギャラブルクラスタコンピューティングに向けた FPGAボードの開発, 信学技報 RECONF2005, pp. 25 – 30 (2005).

[3] Lysaght, P.: New tools for dynamic reconfig-uration: Xilinx Virtual File System, in Ex-tended Abstracts of International Symposium onAdvanced Reconfigurable Systems, pp. 173–196(2005).

[4] Tanaka, K.: Development of a Dynamically Re-configurable Hardware Platform Using General-Purpose FPGAs, in Proceesings of the 20thCommemorative International Technical Con-ference on Circuit/Systems, Computers andCommunications, Vol. 2, pp. 565 – 566 (2005).

[5] 田中康一郎, 江島俊朗:高度画像処理 LSIとその応用, 第 4回計測自動制御学会制御部門大会予稿集, pp. 731 – 734 (2004).

[6] 大野真史, 田中康一郎, 佐藤寿倫:知能ロボットの視覚モジュールに対するウェーブレット変換回路の開発, 電気関係学会九州支部 57回連合大会,p. 502 (2004).

[7] 川原崇宏, 田中康一郎, 佐藤寿倫:リコンフィギュラブル・システムRICEにおける再構成時間の短縮, 第 13回電子情報通信学会九州支部学生会講演会, p. 96 (2005).

[8] Texas Instruments, Inc., : TMS320C6711, TM-S320C6711B, TMS320C6711C FLOATING-POINT DIGITAL SIGNAL PROCESSORS(2004).

[9] Texas Instruments, Inc., : TMS320C6000 Pe-ripherals Reference Guide (2001).

[10] Nikolic, Z.: TMS320C6201/6701 DSP HostPort Interface (HPI) Performance, Texas In-struments, Inc. (1998).

[11] Texas Instruments, Inc., : TMS320C6000 DSPExternal Memory Interface (EMIF) RefefenceGuide (2005).

[12] Xilinx, Inc., : Change to the Maximum C-CLK Frequency for Virtex-II SelectMAP mode(2004).

[13] 澤田直, 有田五次郎,花野井歳弘,林悠平,立川純:実ハードウェア設計体験を重視した実践的教育カリキュラム,情報処理学会DAシンポジウム 2004,pp. 37 – 42 (2004).

[14] Open SystemC Initiative:http://www.systemc.org/.

[15] 田中康一郎, 林悠平, 澤田直, 佐藤寿倫, 有田五次郎:FPGA/DSPベースシステムによる組込み向けシステム設計教育, 信学論 (D-I), pp. 640 – 648(2004).

[16] サミットデザインジャパン:System Design トレーニング資料 <TLM編 > (2004).

[17] Usami, K., Igarashi, M.,Minami, F., Ishikawa, T., Kanazawa, M., Ichi-da, M. and Nogami, K.: Automated Low-powerTechnique Exploiting Multiple Supply VoltageApplied to a Media Processor, in IEEE Jour-nal of Solid-state Circuits, Vol. 33, pp. 463–472(1988).