XMOSプログラミング入門.

Slides:



Advertisements
Similar presentations
並列プログラミング言語による Dining Philosophers Problem の検証 大井 謙 数理科学コース 4 年 福永研究室 2010 年 3 月 4 日 ( 木 ) 1.
Advertisements

HBSP モデル上での 行列積を求めるアルゴリ ム 情報論理工学 吉岡健太.
Global Ring Technologies
第3回 並列計算機のアーキテクチャと 並列処理の実際
第2回 プロセス管理 ジョブ、プロセスとは? プロセスの状態遷移 プロセス制御ブロック スケジューリング.
計算機システム概論・3回目 本日のトピック:割込みと入出力制御について 割込み制御について 問題点の明確化 割込みとは
Chapter11-4(前半) 加藤健.
1.コンピュータと情報処理 p.20 第1章第1節 3.ソフトウェア ソフトウェア 基本ソフトウェア
WEBから確認できる 駐車場管理システムについて
IaaS 仮想マシン(VM)をネットワーク経由で提供 負荷に応じてVM数や性能を変更できる ハードウェアの導入・管理・維持コストの削減
USB2.0対応PICマイコンによる データ取得システムの開発
計算機アーキテクチャ特論Chapter.6.6~6.9
テープ(メモリ)と状態で何をするか決める
Handel-Cによる       エアホッケー.
仮想マシンの並列処理性能に対するCPU割り当ての影響の評価
P,Q比が変更可能なScaLAPACKの コスト見積もり関数の開発
オリジナルなCPUの開発 指導教授:笠原 宏 05IE063 戸塚 雄太 05IE074 橋本 将平 05IE089 牧野 政道
FPGAを用いたMG3用 インターフェース回路の解説
プログラムはなぜ動くのか.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
第3回 CPUの管理と例外処理 OSによるハードウェアの管理 CPUの構成、動作 CPUの管理 例外処理、割り込み処理 コンテキストスイッチ
オペレーティングシステム (割り込み処理)
Ibaraki Univ. Dept of Electrical & Electronic Eng.
第5回 CPUの役割と仕組み3 割り込み、パイプライン、並列処理
CSP記述によるモデル設計と ツールによる検証
システムプログラミング 第11回 シグナル 情報工学科  篠埜 功.
ネットワーク性能に合わせた 分散遺伝的アルゴリズムにおける 最適な移住についての検討
2016年度 プログラミングⅠ ~ 内部構造と動作の仕組み(1) ~.
(B2) 親: minami, kazuki 多様な認証機器に対応する 認証システム (B2) 親: minami, kazuki.
情報コミュニケーション入門 総合実習(1) 基礎知識のポイント(2)
UML入門 UML PRESS vol.1 より 時松誠治 2003年5月19日.
CONCURRENT PROGRAMMING
MPIによる行列積計算 情報論理工学研究室 渡邉伊織 情報論理工学研究室 渡邉伊織です。
イーサネット.
マルチTPcoreによる並列コンピュータ
Occam言語による マルチプリエンプティブシステムの 実装と検証
MPIによるwavからmp3圧縮の検証 情報論理工学研究室 04‐1‐47‐200 木村 惇一.
高速剰余算アルゴリズムとそのハードウェア実装についての研究
コンピュータを知る 1E16M009-1 梅津たくみ 1E16M017-8 小沢あきら 1E16M035-0 柴田かいと
マルチスレッド処理 マルチプロセス処理について
コンピュータ系実験Ⅲ 「ワンチップマイコンの応用」 第1週目 アセンブリ言語講座
インターネットにおける真に プライベートなネットワークの構築
巡回冗長検査CRC32の ハード/ソフト最適分割の検討
第7回 授業計画の修正 中間テストの解説・復習 前回の補足(クロックアルゴリズム・PFF) 仮想記憶方式のまとめ 特別課題について
並行プログラミング concurrent programming
Webプロキシ HTTP1.0 ヒント CS-B3 ネットワークプログラミング  &情報科学科実験I.
TCP/IPとプロセス間通信 2007年1月12日 海谷 治彦.
Talkプログラムのヒント 1 CS-B3 ネットワークプログラミング  &情報科学科実験I.
オペレーティングシステムJ/K 2004年11月15日2時限目
関数型言語による Timed CSP 検証技法の提案
組込みシステムとは コンピュータ制御システム?
並列処理プロセッサTPCOREの 組み込みシステムへの応用 理工学研究科数理情報科学専攻 福永 力,岩波智史,情報システム研究室.
オペレーティングシステム (プロセススケジューリング)
コンピュータアーキテクチャ 第 9 回.
Handel-Cを用いた パックマンの設計
2017年度 プログラミングⅠ ~ 内部構造と動作の仕組み(1) ~.
Windowsアプリケーション プログラミング
コンピュータアーキテクチャ 第 5 回.
卒業研究 JCSPを用いたプログラム開発  池部理奈.
第4回 CPUの役割と仕組み2 命令の解析と実行、クロック、レジスタ
コンピュータアーキテクチャ 第 9 回.
コンピュータアーキテクチャ 第 5 回.
MPIを用いた並列処理計算 情報論理工学研究室 金久 英之
2014年度 プログラミングⅠ ~ 内部構造と動作の仕組み(1) ~.
複数ホストにまたがるVMの 高速かつ柔軟な 部分マイグレーション
3 分散システムのフォールトトレランス 分散システム Distributed Systems
システムプログラミング 第11回 シグナル 情報工学科  篠埜 功.
MPIを用いた 並列処理 情報論理工学研究室 06‐1‐037‐0246 杉所 拓也.
並列処理プロセッサへの 実数演算機構の開発
1.2 言語処理の諸観点 (1)言語処理の利用分野
Presentation transcript:

XMOSプログラミング入門

XMOS? キャッチフレーズ Inmos社がかつて開発したTransputerの流れを汲むプロセッサ (TransputerはOccamで記述される,超並列マシン) それがXMOSという名前で生まれ変わった XMOSを使用すれば…. FPGA並みの処理をソフトウェアで実現できる RTOSなしで並列処理を実現できる キャッチフレーズ Event-driven multi-threaded processor XMOS = CSPモデル・チップ

XMOSとは まえがき XMOSのコアがイベント駆動型のマルチコアであり、複数のイベントを 複数のコアで同時に処理できる 32bitマルチコアプロセッサ XMOSのコアがイベント駆動型のマルチコアであり、複数のイベントを 複数のコアで同時に処理できる コア間の同期・情報交換のチャネル通信により,悩ましいプログラミン グから解放される リアルタイムOSを必要としないので、設計開発の過程が簡素化 応答が早く、FPGAの領域にも利用できる 安全なプログラム開発 柔軟性や拡張性に富む システム開発の期間が大幅に短縮できる 開発コストが激減 開発言語にC言語を拡張したXC言語を使用

FPGAとの比較 XMOS FPGA ASIC Design Entry C/C++/XC Verilog/VHDL “Compile”Times Seconds Hours Days Design Chaneges Recompile single source Repeat chip level P&R, timing closure and verification IP Migration Rapid retarget Often redesign to new rules & specs “Program” Data ~few Kbytes ~Mbytes Archieving necessary Performance “Thread scheduler” ensures guaranteed performance of function Hand-fitting and low level manipulation of the silicon and the design tools. Subsequent design changes can force repeating the hand-fitting process

Chapter1 XMOSプロセッサ

XMOSプロセッサの構成 XMOSはいくつかのコア(プロセス処理部分)が存在し, それぞれが通信機能を持って並列に処理していく XC言語でプログラムした動作を行う → 論理コア(Logical Core) 複数の論理コアと通信機能・I/Oポート等を付加したもの → “xCORE Tile” 複数のxCORE Tileによって構成されているもの → ”xCORE” 論理コアやxCORE Tileの数はデバイスによって異なり, 必要に応じてコアの数を選択できる 例えば:4つのxCORE Tileにそれぞれ8個の論理コア →32個のプロセスを並列に動かせる

デバイスの構成単位 xCORE Tile XCで開発したソフトウェアを格納するOTP(On-Time Programmable)メモリ? 

xCOREの構成 先のスライド及び左の図がxCORE Tile 右が複数のxCORE Tileで構成されたxCORE xCORE Tile

XS1-L8 xCORE Tile一つで構成されているデバイスで今後,進めていく (汎用デバイス XS1-L8) 8個の論理コア 8個の論理コア  400MHz or 500MHz xCORE Tileが400MHzの場合,論理コア内の周波数は400を分割したものになる 例:論理コアが8つの場合,それぞれは400/8 = 50MHz I/Oポート xCONNECT 論理コア間の接続機能

I/Oポート XMOSプロセッサの主な役目 計算結果を得ることではなく,I/Oピンの動作を得ること I/Oポートを各論理コアで操作して,任意の動作をするICチップの実現 I/Oピンの応答に特化し,10ns単位で操作できる 各論理コアがI/Oポートのイベントを入力待ちできる為, イベント駆動型のマルチコアといわれる I/Oポートのイベントを入力待ちする間,プログラムの進行を停止できる 熱問題・エネルギー問題など地球環境を考慮した,今必要とされる設計モデル

リンクによる通信と同期 論理コア間の接続機能を担うブロックをxCONNECTと呼ぶ 任意の論理コア間に対し一対一通信を実現 “Channel End” チャネル端子 送信データと相手先のアドレス情報ともにセット “Internal Link” 内部リンク 通信経路 “Switch” 添付されたアドレス情報を元にデータの行く経路を設定 “External Link” 外部リンク 他タイルへの通信経路

アドレス情報に基づき, 自動的にSwitchによって同期する経路を決定する

論理コア間の同期 送受信するコアの処理は,送受信タイミングで同期が取られる プロセス チャネル 論理コアがチャネル端子からデータを受け取るとき,データ到着イベントを入力待ち (この間,停止状態) 送信側も,相手の受信完了イベントの到着を待って次のイベントに遷移する 送受信するコアの処理は,送受信タイミングで同期が取られる →データの取りこぼしが原理的に生じない 複数の論理コアが同期通信しながら処理を同時に進行する動作モデル これはCSPモデルに他ならない 論理コアで実行するプログラム プロセス リンクとスイッチで構成される通信路 チャネル

割り込みとイベント駆動 リアルタイムシステム:システム外部の要因で処理時間が制約を受けるシステム ただ単に速い処理速度以外に,“瞬時に”,“適時に”処理する その一つの解決策がリアルタイムOS 懸念として 割り込みの遅延は許されるのか 処理しなければならない事象が2つ 発生した場合は? XMOSならば独立した論理コアにより “同時に”処理できるので割り込まれた 処理などは原理的に存在しない 時間 通常処理 割り込み発生 復帰命令 PC,SRなどの復帰 PC,SRなどを退避 割り込み処理へジャンプ 割り込み処理

開発言語 C/C++言語を拡張したXC言語が用いられる 拡張された部分もあるが,制限がかかる部分もある C XC 浮動小数点演算 ポインタ 通信,I/O,イベントの扱い 並列性の記述 複数パラメータ・リターン

プロセスの記述 XMOSの動作モデルはCSPモデルに他ならない 通信機能を持ったプロセスP1・P2・P3が→が示すチャネルに従って通信する XMOSでは 各論理コアでのプログラム = プロセス チャネル端子とリンクなどで作られる通信経路 = チャネルに対応 P1 P2 P3

プロセス表記の拡張 DFDにおけるプロセスの挙動を詳しく表現するための修飾記号 セレクト入出力 パラレル入出力 外部イベント入出力 入力の早いものを選択 タイマイベント・I/Oポートイベントにも使用できる Process パラレル入出力 すべての入力を受け取った時点でチャネル入力を完了する Process 外部イベント入出力 外界とのインターフェイスできる 左側が外界 取得したイベントはプロセスに並列に処理 Process

拡張プロセス表記の例 個別指導の学習塾 営業報告 入庫 管理 駐車場の入出庫管理 出庫 ゲート 生徒1 生徒2 先生 生徒3 営業1 支店長 営業2 営業3 本社 営業報告 入庫 管理 駐車場の入出庫管理 出庫 ゲート

Chapter3 開発環境のインストール  Windowsでも起動できます

Chapter4 XMOSプログラミング

Send-read Send Read ch 送信する度,値を1増やす

select Send1 Send2 Read Send3 準備ができたものからReadは取得する Sendはそれぞれ贈る感覚を変えている

parallel Send1 Send2 Read Send3 ReadはすべてのSendからプロセスを 取得しなければ,次のプロセスに進めない

哲学者の食事問題 Fork Philos(0) Philos(1) Philos(2) Philos(3)

Fork Philos(0) Philos(1) Philos(2) Philos(3) FootMan

Philos Tile 0 Tile 1 Philos1 Fork1 Philos2 Fork2 Philos3 Fork3 Philos4

Tile 2 Tile 0 Tile 1 Printer Philos1 Fork1 Philos2 Fork2 Philos3 Fork3