• 検索結果がありません。

SWORDSフレームワークにおけるStream通信への対応および構成情報記述のJSON化

N/A
N/A
Protected

Academic year: 2021

シェア "SWORDSフレームワークにおけるStream通信への対応および構成情報記述のJSON化"

Copied!
2
0
0

読み込み中.... (全文を見る)

全文

(1)Vol.2016-EMB-42 No.3 2016/8/25. 情報処理学会研究報告 IPSJ SIG Technical Report. SWORDS フレームワークにおける Stream 通信への対応および構成情報記述の JSON 化 谷 祐輔†1. 高瀬 英希†1. 高木 一義†1. 高木 直史†1. 概要:近年の組込みシステムでは,プロセッサと FPGA を組み合わせてヘテロジニアス構成を取るデバイスで ある,プログラマブル SoC が注目されている.我々は,Zynq のためのソフトウェア志向のシステム設計環境 として,SoftWare-Oriented Design and Synthesis(SWORDS) フレームワークを開発中である.本稿では, 現在の SWORDS フレームワークの開発の状況を述べる.まず,AXI-Stream プロトコルの通信に対応したこ とについて述べる.次に,HW タスク化する関数および通信インタフェースを指定するシステム構成情報の形 式として,JSON を採用したことを述べる.. (1)タスク解析. 1. はじめに 近年の組込みシステムでは,プロセッサと FPGA を組み. ターゲットデバイス ・OS・目的関数・ HWタスクと そのインタフェースの 指定を行う. 構成情報 JSON 設計記述 C. 合わせてヘテロジニアス構成を取るデバイスであるプログラ マブル SoC が注目されている.これによって,近年の組込み システムにおいてますます高まっている, 高性能化や複雑化 の要求に応えることが期待できる.プログラマブル SoC の 例として,Xilinx 社の Zynq-7000 All Programmable SoC. 新規作成ツールにより実行 既存ツールを使用 TOPPERSカーネル: ・組込みリアルタイム システムのための オープンソースの カーネル ・TOPPERSカーネルの 活用によってリアル タイムシステム設計 に適用できる. タ ス ク 解 析 ・ 切 り 分 け. (2)タスク・インタフェース合成 (3)実行可能モジュール生成. HWタスク (IF情報付) C. 高 位 合 成. SWORDS HWタスク (IF情報付) verilog. 論 理 合 成. IF情報(SW) SWタスク C. サービス コール情報 cfg ファイル. TOPPERS 使用時の拡張. IF 生 成. SWタスク (IF情報付) C. ラッパー タスク C. HW モジュール. SW 実行ファイル. コ ン パ イ ル. Zynq-7000を 対象として開発中. cfg ファイル. TOPPERSカーネル. (Zynq)が挙げられる.. Zynq はプロセッシングシステム(PS) とプログラマブ. 図 1 SWORDS の合成フロー. ルロジック(PL)で構成されている.PS はデュアルコアの. Cortex-A9,キャッシュ, オンチップメモリ, 外部メモリイ. と し て ,我 々 は SoftWare-Oriented Design and Synthe-. ンターフェース,DMA コントローラおよび入出力ペリフェ. sis(SWORDS)フ レ ー ム ワ ー ク を 開 発 中 で あ る [1][2].. ラルで構成されている.PL は FPGA を中心として,RAM,. SWORDS の合成フローを図 1 に示す.SWORDS フレーム. DSP,プログラマブル入出力ブロック,シリアルトランシーバ. ワークを活用することで,プログラマブル SoC に関する深. および A-D コンバータで構成されている.Zynq には,3 種. い開発知識を有していないシステム設計者でも,高品質なシ. 類の通信ポートが備わっている.GP-AXI(GP)は汎用ポー. ステムの設計が可能となる.. トであり,PS と PL いずれもマスタとなれる.GP ポートは. 本稿では,現在の SWORDS フレームワークの開発の状況. PS がマスタとなるものが 2 個,PL がマスタとなるものが. を述べる.まず,AXI-Lite,AXI プロトコルの通信に加え,. 2 個用意されている.AXI-HP(HP)は,オンチップメモリ. AXI-Stream プロトコルの通信に対応したことについて述べ. または DDR メモリへのアクセスが可能である.AXI-ACP. る.次に,HW タスク化する関数および通信インタフェース. (ACP)は,L2 キャッシュを介したアクセスが可能である. マスタとスレーブを接続するため,Xilinx 社が提供する IP コアである AXI Interconnect を使用してポートと AXI モ ジュールを接続する.. Zynq の た め の ソ フ ト ウ ェ ア 志 向 の シ ス テ ム 設 計 環 境 †1. を指定するシステム構成情報の形式として,新たに JSON を 採用したことを述べる.. 2. Stream 通信への対応 これまでの SWORDS では,AXI-Lite プロトコルおよび. AXI プロトコルを使用した通信のみに対応していた [2].本 現在,京都大学 大学院情報学研究科 通信情報システム専攻. Presently with Graduate School of Informatics, Kyoto University. ⓒ 2016 Information Processing Society of Japan. 稿では,新たに AXI-Stream プロトコルを使用した通信に対 応したことを報告する.AXI-Stream プロトコルを使用する. 1.

(2) Vol.2016-EMB-42 No.3 2016/8/25. 情報処理学会研究報告 IPSJ SIG Technical Report. PS SW Task Call HWfunc() SW Interface Layer Driver. GP. HP/ACP. HW化する関数名を指定. "hardware_tasks": [. { HWタスク制御のインタフェースは GPポートを通じて実現される. "name": "matrixmul", "mode": "s_axilite", "arguments": [ {. IRQ. AXI Interconnect AXI Interconnect HW Interface Layer AXI-Lite AXI AXI DMA AXI-Stream HW Task PL. それぞれの引数について インタフェースを指定. "name": "input_A", "mode": "m_axi", "bundle": "port_a". HP/ACPポートと接続して AXIプロトコルで通信するように指定. }, {. AXIプロトコルのインタフェースは まとめることができる. "name": "input_B",. 図 2 SWORDS における AXI-Stream を使用する通信方式の構造. "mode": "m_axi", "bundle": "port_a" },. 通信方式の構造を図 2 に示す.. {. AXI プロトコルでは,HW タスクが memcpy 関数を実行. "name": "output_A", "mode": “axis”. することにより,ローカルメモリとの通信を行っている.対 }. して,AXI-Stream プロトコルでは,主に AXI DMA が通. HP/ACPポートと接続して AXI-Streamプロトコルで 通信するように指定. ]. 信を担う.シーケンシャルなデータアクセスのみを行う HW. } ]. タスクの場合,AXI-Stream プロトコルではローカルメモリ へのバッファが不要となり,HW タスクの実行を高速化でき. 図 3 JSON 形式による HW タスクのインタフェースの指定. る可能性があると考えられる.. HW タスクの実行について説明する.まず,SW タスク. 3. 構成情報の JSON 化. は SW インタフェースレイヤを呼び出す.次に,SW インタ フェースレイヤは DMA の初期化と HW タスクがアイドル 状態かどうかを確認する.アイドル状態が確認できた場合,. SW インタフェースレイヤは HW タスクに開始信号を送り, DMA に入力引数の通信を指示する.その後,出力引数が取 得可能であることを検知したのちに,DMA に出力引数の通 信を指示する.HW タスクの終了を検知すれば,HW タスク. SWORDS では,設計者は C ソースコードに加えて構成情 報ファイルを入力として記述する.構成情報ファイルでは, 対象のプログラマブル SoC や HW タスク化する関数および 通信インタフェースなどを指定する.従来,構成情報ファイ ルの形式を XML としていたものを,JSON とした.JSON を採用することににより,XML と比較して可読性・保守性 が向上し,JSON Schema による型のチェックが可能になる.. の呼び出しは終了となる.. AXI-Stream プロトコル通信の性能を測定するため,評価 実験を行った.設計対象は,unsigned long long 型の要素を. HW タスクのインタフェースの指定方法を図 3 に示す.. 4. おわりに. 持つ一辺 32 の二次元配列の組を入力とし,行列積を求める. C プログラムを用いた.評価対象の設計は,SW のみで実行 するもの,および,引数の通信に AXI プロトコルを使用す るもの,AXI-Stream プロトコルを使用するものの 3 種類で ある.それぞれの HW の合成時の目標周波数は 100MHz と し,HW タスクの終了検知はポーリングで取得するものとし. 本稿では,SWORDS フレームワークにおいて AXI-Stream プロトコルを使用する通信への対応を行い,構成情報記述の. JSON 化を提案した.今後の方針として,HW タスクの通信 方式,および最適化プラグマを自動で選択するための設計空 間探索の検討を行うことが考えられる.. た.3 種類の評価対象に対して,実行時間と FPGA の使用 リソースを計測した.実行時間はそれぞれ 10 回計測した平 均とした.表 1 および表 2 に,実行時間と使用リソースの結. 参考文献 [1]. 果をそれぞれ示す. 行列積の計算ではシーケンシャルでないデータアクセスを 行うため,AXI プロトコルと同様にローカルメモリへのバッ. [2]. 谷祐輔,他:プログラマブル SoC のためのシステム設計環 境における SW/HW インタフェース生成手法,電子情報通 信学会技術研究報告, Vol. 115, No. 109,pp. 73–78 (2015). 谷祐輔,他:プログラマブル SoC のためのシステム設計環 境における SW/HW 間通信方式の比較評価,電子情報通信 学会技術研究報告, Vol. 175, No. 24,pp. 1–6 (2016).. ファが必要となり,AXI プロトコルを用いた通信よりも実行 時間が長くなる.また,AXI DMA のためのリソースが必要 となり,使用 FPGA リソース数が増加する.. 表 2 使用 FPGA リソース エレメント. FF 表 1 実行時間. 全リソース. AXI. AXI-Stream. 106400. 23656. 26307. LUT. 53200. 33828. 37194. 17400. 6630. 6636. SW. 2.953ms. Memory LUT. AXI. 0.201ms. BRAM. 140. 6. 44.5. AXI-Stream. 0.300ms. DSP48. 220. 220. 220. ⓒ 2016 Information Processing Society of Japan. 2.

(3)

参照

関連したドキュメント

節の構造を取ると主張している。 ( 14b )は T-ing 構文、 ( 14e )は TP 構文である が、 T-en 構文の例はあがっていない。 ( 14a

文献資料リポジトリとの連携および横断検索の 実現である.複数の機関に分散している多様な

グローバル化をキーワードに,これまでの叙述のス

Max-flow min-cut theorem and faster algorithms in a circular disk failure model, INFOCOM 2014...

実際, クラス C の多様体については, ここでは 詳細には述べないが, 代数 reduction をはじめ類似のいくつかの方法を 組み合わせてその構造を組織的に研究することができる

および皮膚性状の変化がみられる患者においては,コ.. 動性クリーゼ補助診断に利用できると述べている。本 症 例 に お け る ChE/Alb 比 は 入 院 時 に 2.4 と 低 値

本文書の目的は、 Allbirds の製品におけるカーボンフットプリントの計算方法、前提条件、デー タソース、および今後の改善点の概要を提供し、より詳細な情報を共有することです。

角材と鋼板を組み合わせて簡単に組み立てられる 図 -1 のようなプレストレス木箱桁橋 1),2),3) が、応