第3回NCESシンポジウム

宇宙機向けソフトウェアプラットフォーム(SpaceWire OS)の開発
2012年10月10日
高田 光隆
附属組込みシステム研究センター 研究員
mtakada@nces.is.nagoya-u.ac.jp1

宇宙機向けソフトウェアプラットフォームの開発
目次SpaceWire について
 SpaceWire OSプロジェクトの趣旨・活動
 リアルタイム性保証の検討
 リアルタイム性保証手法ガイドライン
 SpaceWire OSの開発
 高信頼性リアルタイムOS
 リアルタイム性保証プロトコル スケジュール情報決定ツール
 今後の展望

2

SpaceWireについて(1/3)
特徴

宇宙機の機器間データ通信インターフェース規格
ESA（欧州宇宙機関）がIEEE1355規格をカスタマイズして提案(1994)
 LVDSによる高速シリアルライン
幅広い転送速度（2-400Mbps）


データ転送レートが可変可変長のパケットサイズ
 簡単なプロトコル（省リソース，省電力）
 FPGA実装のSpWノードやルータ 国内外での科学衛星への採用が始まっている

日本SpaceWireユーザ会 http://www.astro.isas.jaxa.jp/SpaceWire/users/ESA SpaceWire
http://spacewire.esa.int/
3

SpaceWireについて(2/3)
ノード間をP2Pでつなぐメッシュ型のネットワーク
 冗長経路を持つことで通信の障害耐性が強い
 ルータを用いて自由なネットワークトポロジの構築が可能 ノードを組み上げていくときに柔軟なネットワークが不可欠 コンポーネント化によるコストの削減
Intelligent SpW node
SpW Router
non-Intelligent SpW node4

SpaceWireについて(3/3)


RMAP : Remote memory access protocol
SpaceWireの上位レイヤに位置する通信プロトコル ネットワーク越しのノードに対して，メモリマップドI/O機能でアクセスできる仕組みをそなえたプロトコル5

SpaceWireの問題点
ノードが増えるとネットワークトポロジが複雑になる
ネットワークの記述ミスが発生しやすい パケットの経路探索が複雑になる

1ノード故障がネットワーク全体に影響を及ぼしてしまう可能性がある
パケットがあるネットワークパスを専有してしまうようなノード故障の場合に，ノードのポートを切断するコマンド
自身が（専有しているパケットのために）送れない
 プロトコルによるデータの回復処理は規定されてなく，プロジェクト毎にノードやアプリケーションでの回復処理の実装がまちまちである

6

SpaceWire OS プロジェクトの趣旨と活動
趣旨
SpaceWireでの問題点の解決
 既存のSpWデバイスにも適用
 宇宙分野以外でもSpaceWireの利活用


リアルタイム性を保証する仕組み
 NCESとJAXAによる共同研究を開始し，スペースソフトウェアプラットフォーム連携研究開発拠点を設置

活動
SpaceWireのリアルタイム性保証手法の検討
 リアルタイム性保証を実現するためのソフトウェアプラットフォーム（SpaceWire OS）の開発
7

宇宙機向けソフトウェアプラットフォームの開発
目次SpaceWire について
 SpaceWire OSプロジェクトの趣旨・活動
 リアルタイム性保証の検討
 リアルタイム性保証手法ガイドライン
 SpaceWire OSの開発
 高信頼性リアルタイムOS
 リアルタイム性保証プロトコル スケジュール情報決定ツール
 今後の展望

8

リアルタイム性保証についての取り組み
NCES，JAXA，日本SpaceWireユーザ会のメンバーで検討会を設置
 検討会でSpaceWireのリアルタイム性保証についてメンバーから要求を汲み取り，NCESで検討提案を行いガイドラインを策定（2011年度）
 18th SpaceWire WG (オランダ April 2012)にてガイドラインの概要を紹介
 Guaranteeing real-time property of SpW network based on SpW-D

18th SpaceWire WGでの発表
9リアルタイム性保証についての検討
SpaceWire-D

決定論的(Deterministic)な特性を付加する上位プロトコ
ルの検討・策定がSpaceWire WGで進められている
 あらかじめ決められたタイムスロットでトランザクションが発行される
 タイムスロットの周期は必要なDeterministicな特性で決められる
 日本からはマルチトランザクションを提案

10

リアルタイム性保証プロトコルの提案(1/2)
サブネットの概念の導入
機能的にネットワークを分離しトポロジを単純化する
 ネットワーク故障の場合でも、サブネット単位での影響の範囲を抑える サブネットの設定はコンフィギュレーション時に設定し、運用モードを切り替える単位でサブネットの変更も可能
ABAECFDG

Subnet 1

Subnet 2

Subnet 2

BDCE

Subnet 111

リアルタイム性保証プロトコルの提案(2/2)
柔軟なタイムスロットの導入
タイムコードをいくつかまとめてタイムスロットとする タイムスロットはサブネット単位で設定可能
 アプリケーションの運用（パケットの特性）に応じたタイムスロットの設定ができる
▶ n=0，m=6time-slot
time-code 0

1234

65

▶ n=2，m=4

time-code 0▶ n=2，m=6time-slot

分割RMAPトランザクション


1
0

2

763
863

3

4

4time-code 0 1 2 3 4 5 6 7 8extended 0 0 0 0 0 0 0 0 0
time-code

65150

15

40time-slot

76543

2

10

786363

1662 63 0 1 2 3 40 0 1 1 1 1 1062 63 0
3 3 0

RMAPリプライを別タイムスロットで返送してタイムスロットのパケット効率を上げる
12

リアルタイム性保証についての検討
パケットの最大滞留時間を考慮した例

リンク1

リンク3
リンク2

13

宇宙機向けソフトウェアプラットフォームの開発
目次SpaceWire について
 SpaceWire OSプロジェクトの趣旨・活動
 リアルタイム性保証の検討
 リアルタイム性保証手法ガイドライン
 SpaceWire OSの開発
 高信頼性リアルタイムOS
 リアルタイム性保証プロトコル スケジュール情報決定ツール
 今後の展望

14

宇宙機向けソフトウェアプラットフォーム(1/2)
SpaceWireを使ってリアルタイム性を確保した通信アプリ
ケーションを簡便に作成できるソフトウェアプラットフォーム(SpaceWire OS)
高信頼なリアルタイムOS

TOPPERS/HRP2カーネルを開発

SpaceWireミドルウェア
SpaceWireの問題点を解決するプロトコルスタックの開発
 SpaceWire，RMAPパケットを変更せずに使用する


スケジュール情報決定支援ツール
リアルタイム性保証を確保するスケジュール決定を支援する
外部ツールの研究開発
15

宇宙機向けソフトウェアプラットフォーム(2/2)
SpaceWire OSの構成
User
Application

User
Application

User
Application

Application Library

ネットワーク
情報

通信要求

SpaceWire Middleware
RMAP Layer

スケジュール情報

SpaceWire-D+ Layer
SpaceWire Layer

スケジュール情報
決定支援ツール

TOPPERS/HRP2 Kernel
16TOPPERS/HRP2カーネル(1/2)
特徴

高信頼組込みシステム向けRTOS
 メモリ管理ユニット（MMU）だけでなく，メモリプロテクションユニット（MPU）を持つプロセッサもサポート
 プログラムのコードやメモリ配置をコンフィギュレータ
により決定
 メモリ保護情報を静的に生成成果
2012年5月にTOPPERSプロジェクトより一般公開
 前バージョンのHRPカーネルはH-IIBロケットの制御ユニットに採用
17

TOPPERS/HRP2カーネル(2/2)
今年度の取り組み
TTSP(TOPPERS Test Suite Package)をHRP2カーネルにも適用できるように拡張
 ドメインへの対応
 保護機能向けAPIの対応
 HRP2カーネル用のテストシナリオの追加※ PictMaster による組合せテストの自動生成テストシナリオの作成が容易
PictMaster project http://sourceforge.jp/projects/pictmaster/18

SpaceWireミドルウェア(1/2)
特徴
スケジュール情報に基づいたパケットの送信機能 再送制御の機能 送信リトライ回数の設定
 遅延リプライの機能
 RMAPリプライパケットを別スロットでリプライするための仕組み ネットワークを越えたメモリ保護機能
 RMAPを用いて他のノードのメモリにアクセスする場合に，アクセスを許されたメモリ領域以外にアクセスさせない機能
 HRP2カーネルの保護機能を拡張

19

SpaceWireミドルウェア(2/2)
主な機能
RMAP Layer
 RMAPイニシエータ機能
 RMAPターゲット機能
 SpaceWire-D+ Layer 遅延リプライ機能
 ネットワーク時間同期機能
 タイムコード管理機能
 SpaceWire Layer SpaceWireパケット送受信機能
20

スケジュール情報決定支援ツール
概要
SpWネットワークトポロジと通信要求を入力とし，各インテリジェントノードが送信を行うためのスケジュール情報を出力とする
 さらにSpaceWire OSと通信アプリケーションをビルドするためのコンフィギュレーション情報ファイルも出力

SpWネットワーク
トポロジ

スケジュール情報
…

決定ツール
通信要求

各ノードのスケジュール情報21

決定支援ツール 入力情報(1/2)
SpaceWireネットワークトポロジ
XML記述例<?xml version="1.0" encoding="UTF-8"?><SpaceWireNetworkToporogy>

スケジュール情報を決 <Subnet><FDIR IntervalTime="5"/><Timeslot Number="64" SlotTime="15625"/>
定するために必要なネ<Router Id="CPURouter1" NetworkPropagationDelay="2"><Port Number="1"/>
ットワークの構成情報，<Port Number="2"/>
各種パラメータをひとま</Router>
NetworkPropagationDelay="2">とめにしたもの<Port Number="0"/></Node><Node Id="Target2" LogicalAddress="0x42"MaxSendDelayTime="5" MaxReceiveDelayTime="15"
NetworkPropagationDelay="2"><Port Number=“1"/></Node><Node Id="Target4" LogicalAddress="0x52" MaxSendDelayTime="5"…..

22

決定支援ツール 入力情報(2/2)
通信要求定義アプリケーション側から見た通信パケットに対する要求を記述する
 通信内容をチャネルという単位で次のような通信要求としてひとまとめにする

プロトコル（RMAPかそれ以外か） ソースノード（RMAPイニシエータ）
 デスティネーションノード（RMAPターゲット）のリスト
 （RMAPの場合）コマンドの種類
 最大データサイズ（バイト数）
 通信周期（または間隔）
23

今後の展望
今後の課題
他ターゲットへの展開
 海外ではFPGA (LEON)での実装が多い
 スケジュール情報決定の最適化
 ソフトウェアプラットフォームの利用促進
 利用促進のための教育 アプリケーションミドルウェア，支援ツールの開発


共同研究への参加募集
SpaceWire OSの開発を継続するにあたり，共同研究へご参加いただける企業を募集しています24