最新SoC設計フローと組込み向けUMLの真の利用価値は？

キャッツ株式会社
浅利 康二
asari@zipc.com
実践！組込みUML〜UML活用の現状とこれから〜(2004/10/18)

1

はじめに• システムLSI（SoC）も大規模・複雑化し、モデリングが非常に重要になってきています。
• SoCとは、その名前のとおりシステムが1チップに搭載されているもの（System on a Chip) です。
• よってSoC設計の技術は、システム設計にそのまま利用できます。
実践！組込みUML〜UML活用の現状とこれから〜(2004/10/18)

2

1

要求、機能、HWリソースの分離• 各オブジェクトの独立性を保つため、要求、機能、HWリソースの分離が必要。
要求

要求

要求

論理アーキテクチャ
機能

機能

機能

機能

プラットフォーム
HWリソース

HWリソース

HWリソース

実践！組込みUML〜UML活用の現状とこれから〜(2004/10/18)

3プラットフォーム
• UMLでは上位のモデル（PIM→PSM）はよく議論されている。下位のプラットフォームは、基本的に１CPUを前提。
• 複数CPUのシステムの場合はどうなるか？
→並列性、時間同期などの問題が生じる。
• 上位で美しいモデルが出来ても、実装までの流れがよくないとせっかくの努力が水の泡。そこで、今回は下位のプラットフォームとモデル化しておくべき要素について少し整理してみる。
実践！組込みUML〜UML活用の現状とこれから〜(2004/10/18)

42

HWリソース• LSIとしては、CPU、DSP、ASIC、FPGA、リコンフィ
グラブルLSIなどが存在。
• ネットワーク/バスもリソースである。
• これらのリソースが協調してシステム動作を行う。
システム構成例
CPU

DSP

ASIC

ネットワーク/バス
アクチュエータ センサ

FPGA

リコンフィグ
ラブルLSI

実践！組込みUML〜UML活用の現状とこれから〜(2004/10/18)

5LSIの種類
CPU：

制御が得意

DSP： 信号処理が得意
SIMD： １命令/複数データ処理のプロセッサ
ASIC：

特化した処理をLSI化（低消費電力、高速処理、低コスト化のため）

FPGA： 回路構成を静的に変更可能
リコンフィグラブルLSI：
回路構成を動的（リアルタイム）に変更可能
実践！組込みUML〜UML活用の現状とこれから〜(2004/10/18)

6

3

FPGAとリコンフィグラブルLSI
C/C++/
Verilog/
SystemCコード VHDLコード
合成

論理・配線情報

C/C++/
SystemCコード

論理・動的論理切替・バス占有情報など

並列コンパイル合成

リコンフィグラブルLSI

FPGA(IP Flex,NEC製など)

コンパイル (Xilinx,Altera製など)

PE

PE

PE

PE

PE

PE

PE

PE

PE

論理回路

オブジェクトコード

CPU*目的数だけCPU自体を構成可能なFPGAも存在

PE: Processor Element

実践！組込みUML〜UML活用の現状とこれから〜(2004/10/18)

7

ネットワークの種類• ネットワークを確保する方法としては以下がある。
（１）時分割による定期的な通信路確保（TDMA方式）（２）イベントが生じた場合のランダムな通信路確保（CSMA/CD方式）
多重化方式

ＴＤＭＡ

ＣＳＭＡ／ＣD

送信タイミング

一定間隔で定期的に送信情報が発生したときに送信ネットワークのクロック同期

必要

不要

通信スケジューリング必要不要

特徴

送信頻度が低い時

帯域利用効率が低い

帯域利用効率が高い

送信頻度が高い時

帯域利用効率が高い
遅延が一定
信号処理システム

帯域利用効率が低下
伝送遅延が大きくなる
イベント処理システム

適した用途(DesignWave Magazine July 2004)
実践！組込みUML〜UML活用の現状とこれから〜(2004/10/18)

84CPUなどの場合• CPUは逐次処理が基本。
• 並列性や同期、時間管理などはRTOSでサポート。
• 機能はタスクにマッピングされる。
要求

要求

論理アーキテクチャ機能

機能

プラットフォーム

RTOS

CPU
実践！組込みUML〜UML活用の現状とこれから〜(2004/10/18)

9ASIC・FPGAなどの場合• 機能をそのままHW（回路）で作成。
• 並列性や同期、時間管理などはASIC内部で実現。
要求

要求

論理アーキテクチャ機能

機能

プラットフォーム

C/C++/
SystemC言語

機能

動作合成他
ASIC

ASIC
実践！組込みUML〜UML活用の現状とこれから〜(2004/10/18)

105

モデリングに必要な要素（並列性）• 並行動作する機能は、リソースへのマッピング時に考慮が必要。
• 複数の機能を１CPUへ実装する場合には、別タスクへマッピング。（擬似並列）• 複数の機能を複数のCPU、もしくはCPUと他のリソースへマッピングする場合は、完全並列が実現。
実践！組込みUML〜UML活用の現状とこれから〜(2004/10/18)11

機能のCPUリソースへのマッピング• 以下のように機能がCPUリソースにマッピングされると、並行処理が必要な機能は各々タスクにマッピングされ、通信はRTOSが行う。
マッピング後
機能

通信機能

タスク

タスク

機能

機能
RTOS

HWリソース

HWリソース

実践！組込みUML〜UML活用の現状とこれから〜(2004/10/18)126機能の複数HWリソースへのマッピング• 以下のように機能が複数のHWリソースにマッピングされると、機能間の通信はネットワークにマッピングされる。
通信機能

HW
リソース

機能

HW
リソース

マッピング後
リソース
機能

リソース
機能

ネットワーク実践！組込みUML〜UML活用の現状とこれから〜(2004/10/18)

13

モデリングに必要な要素（同期・通信）• 同期/非同期/一方向通信などの種別• アクティブオブジェクト同士の通信は同期に注意が必要• 要求処理時間
要求処理時間実践！組込みUML〜UML活用の現状とこれから〜(2004/10/18)

147

CORBAの例• 以下はCORBA通信の例である。
(1) 同期呼び出し( Synchronous Call )クライアントサーバ(2) 非同期呼び出し( Asynchronous Call )クライアント

要求メッセージ

要求メッセージ
待ち状態

対応
処理
応答

要求応答
時間内

サーバ

対応
処理

処理
続行
要求応答
時間内

応答
イベント対応処理

実践！組込みUML〜UML活用の現状とこれから〜(2004/10/18)

15

CORBAの例• 前ページの続き(3) 一方向呼び出し( Oneway Call )クライアントサーバ

要求メッセージ
処理
続行

要求通信
時間内
対応
処理

実践！組込みUML〜UML活用の現状とこれから〜(2004/10/18)

168

モデリングに必要な要素（時間）• 連続系と離散系は時間で同期をとる。
• 連続系の世界では時間は中心的な概念。
入力

入力
入力

連続系

出力

入力

離散系

出力

イベント

常時入出力・制御・演算処理が行われる

イベントによって制御・演算処理が行われる
クロックもイベントの一種

実践！組込みUML〜UML活用の現状とこれから〜(2004/10/18)

17

モデリングに必要な要素（時間）• 要求応答時間は仕様として必ず満たされなければならない。オブジェクト指向では非機能要件。
要求応答時間実践！組込みUML〜UML活用の現状とこれから〜(2004/10/18)

18

9

モデリングに必要な要素（調停）• HWリソース、ネットワークの調停
HWリソースへの同時アクセス時の処置
ネットワークの競合の解決• 排他、時分割、重ね合わせ、複数リソース時分割の場合はスケジューリングが必要
パイプライン処理などはその一種

実践！組込みUML〜UML活用の現状とこれから〜(2004/10/18)

19

モデリングに必要な要素（調停）• モードの違いなど、ユースケースが排他で実現されるものであれば、リソースの調停は必要ない。

排他テーブル
UseCase0 UseCase1 UseCase2
UseCase0-UseCase1

exclusiveexclusive concurrent-UseCase2 concurrent concurrent
実践！組込みUML〜UML活用の現状とこれから〜(2004/10/18)

concurrent
2010モデリングに必要な要素（調停）• 機能を複数リソースで実現することが難しい場合（組込みシステムでは通常はそう）には、排他、時分割、重ね合わせなどの調停機構が必要となる。
パイプライン処理は、時分割の特殊なパターンである。

実践！組込みUML〜UML活用の現状とこれから〜(2004/10/18)

21

スケジューリング• すべての要求を満たすようにマッピングを行い、各リソースにおいて時分割で処理を実現するためのスケジューリングを行う。
HWリソース１
HWリソース２
HWリソース３
ネットワークリソース

処理1

処理5

処理2

処理3
処理4

処理6
通信１

通信2 通信3

実践！組込みUML〜UML活用の現状とこれから〜(2004/10/18)

2211

マッピング• 各スレッド（プロセス）の動作と同期を元に、近似解アルゴリズムを用いて機能のリソースへのマッピングを行う。これは静的な方法なので、この後、動的なシミュレーションによる検証が必要。

実践！組込みUML〜UML活用の現状とこれから〜(2004/10/18)

23

マッピング
• 各オブジェクトをマッピングする際に、それらの機能群が協調動作するためのフレームワークが用意されていると非常に効率が高いはず。SW/HW分割も容易になる？

SoC
実践！組込みUML〜UML活用の現状とこれから〜(2004/10/18)

24

12

プラットフォームには何が必要か？
• プラットフォームには、リソース調停、時間同期、通信などの機能が必要。
リソース調停
時間同期
通信
タスク

タスク

タスク

タスク

RTOS

RTOS

CPU

CPU

Reconfig.
LSI

論理回路

実践！組込みUML〜UML活用の現状とこれから〜(2004/10/18)25モデルの複雑度について• モデルの複雑度が小さい方がよいモデルのはず。
ある部分を修正することによる影響範囲も少ないはず。
（仕様変更が容易）→テスト（検証）の工数に大きな違いが出る。
• クラス
メソッド数、属性数、状態数、イベント数など• 関連
アクティブクラス間通信（非同期通信）は複雑など• クラス数と関連数• 時間制約の厳しさなど実践！組込みUML〜UML活用の現状とこれから〜(2004/10/18)

26

13

UML for SoC フォーラム
目的： 「UML for SoC」の標準化と普及促進
主な活動内容：SoC 向け UML 拡張プロファイルの策定
2002年にキャッツ、日本ラショナルソフトウェア、富士通で設立。
2003年4月から7社が参加。（リコー様他の事例）
現在、OMGへ提案中。
事務局はキャッツ社が担当。
実践！組込みUML〜UML活用の現状とこれから〜(2004/10/18)

27

41st DAC(Design Automation Conference)• 世界で最大のEDAツール展示会（米国サンディエゴ）
期間中、USOC０４ワークショップが行われた。
その中でUMLをSoC設計に利用する取り組みのプレゼンテーションが日本・欧州・米国からなされ、活発な議論が行われた。
• キャッツ社からもUSoCF（日本）での活動内容の紹介と他1件の発表を行った。

実践！組込みUML〜UML活用の現状とこれから〜(2004/10/18)

28

14SystemC言語について• 並列性、時間、同期、アクティブスレッド、ポート、チャネル（通信）の概念を持ち、システム動作を記述できる言語。
• シミュレーションが可能なため、システム動作の確認・検証を行うことができる。

実践！組込みUML〜UML活用の現状とこれから〜(2004/10/18)

29

SystemC表記法• UML2.0での表記と類似。階層化も可能。
port

modulewith a portinterfaceprimitive channel

hierarchical channel
with a port

port-channelbinding(a) graphical notation
P

M1

C1

IHC

M2
C2

(b) example
実践！組込みUML〜UML活用の現状とこれから〜(2004/10/18)

30

15

SystemCのメタモデル• SystemCではアクティブオブジェクト同士の通信にはチャネルが定義される。
メタモデル

SystemC表記
Module1

ChannelModule2

実践！組込みUML〜UML活用の現状とこれから〜(2004/10/18)

グランプリ受賞製品

31

XModelink製品構成

システム設計分析 UML
Verilog〔システム設計ツール〕

SoC Modeler

SystemC表記法

class図などをインポート
SystemCコード、プロジェクトの自動生成

解析

ソースコード解析〔システム解析ツール〕

Navigator〔システム検証ツール〕

検証SystemC Debugger

機能追加

VisualStudio.NET
アドオン

動作合成

実践！組込みUML〜UML活用の現状とこれから〜(2004/10/18)

3216プロセス表示「状態表示」
緑色： 実行中
黄色： WAIT
赤色： 実行終了

ＷＡＩＴ状態プロセスをクリックするとソースコードにＪＵＭＰ

全プロセス表示

１つのソースコードより複数のモジュールをインスタンスしている際の確認に便利

実践！組込みUML〜UML活用の現状とこれから〜(2004/10/18)

33

同期波形観測「状態表示」WAIT : グレー
RUN : 黄色

シーケンシャルモード、パラレルモードをサポート

イベント遷移表示
プロセス表示波形により並列動作参照！
タイミング参照！

波形圧縮/縮小

実践！組込みUML〜UML活用の現状とこれから〜(2004/10/18)

3417

シミュレーション実行パターン
時間単位で実行

Break設定位置まで実行

クロック実行（10mSec毎時間実行）
クロック実行（10mSec毎時間実行）

BREAK&GO実行
BREAK&GO実行

4mSec

ブレイク

10mSec 10mSec

ストップ

14mSec20mSecブレイク

ストップ

24mSec28mSec30mSecストップ

ブレイク
32mSec33mSec40mSecブレイク

42mSec

ストップ

実践！組込みUML〜UML活用の現状とこれから〜(2004/10/18)

35

Eclipseによりマルチプラットフォーム対応
マルチプラットフォーム対応（Windows/Linux 他）
マルチプラットフォーム対応（Windows/Linux他）
XModelink
はJava統合開発環境「Eclipse」へのXModelinkはJava統合開発環境「Eclipse」へのプラグインとして実現されているので、プラグインとして実現されているので、Windows、Linuxなどのプラットフォームを選びません。
Windows、Linuxなどのプラットフォームを選びません。

実践！組込みUML〜UML活用の現状とこれから〜(2004/10/18)

36

18

XModelinkロードマップ
2004年

2005年

リバース機能等．．．。

UMLタイミングチャート図
UMLタイミングチャート図
エディタ機能エディタ機能BUSトラフィック検証
BUSトラフィック検証
機能オプション
機能オプション

2004年リリース製品

UMLクラス図インポート機能
UMLクラス図インポート機能
ソースデバッグ部分(Eclipse対応)等．．．。

SoC Modeler
VCDビューア機能アップ
VCDビューア機能アップ
イベントビューア機能アップ
イベントビューア機能アップ(Eclipse対応)(Eclipse対応)
全ノードトレース機能アップ
全ノードトレース機能アップ(Eclipse対応)(Eclipse対応)
2003年リリース製品

SystemC Debugger

OSCIライブラリ
OSCIライブラリ
LINT対応LINT対応2005年リリース予定

Navigator

ポート、接続一覧表示
ポート、接続一覧表示
ソースジャンプ機能
ソースジャンプ機能

リリース予定評価版
リリース

動作合成ツール連携実践！組込みUML〜UML活用の現状とこれから〜(2004/10/18)

37

最後に• ご静聴ありがとうございました。
• ご質問・ご相談などあれば、以下までご連絡ください。
ソフトウェア事業部
ソフトウェア事業部
TEL
TEL ：045-473-2816：045-473-2816
FAX
FAX ：045-473-2673：045-473-2673
EmailEmail ：asari@zipc.com：asari@zipc.com
http://www.zipc.com/
http://www.zipc.com/
http://www.cats-hd.co.jp/
http://www.cats-hd.co.jp/

実践！組込みUML〜UML活用の現状とこれから〜(2004/10/18)

3819