論文誌用MS-Wordテンプレートファイル

Similar documents
IPSJ SIG Technical Report Vol.2017-ARC-225 No.12 Vol.2017-SLDM-179 No.12 Vol.2017-EMB-44 No /3/9 1 1 RTOS DefensiveZone DefensiveZone MPU RTOS

23 Fig. 2: hwmodulev2 3. Reconfigurable HPC 3.1 hw/sw hw/sw hw/sw FPGA PC FPGA PC FPGA HPC FPGA FPGA hw/sw hw/sw hw- Module FPGA hwmodule hw/sw FPGA h

6 2. AUTOSAR 2.1 AUTOSAR AUTOSAR ECU OSEK/VDX 3) OSEK/VDX OS AUTOSAR AUTOSAR ECU AUTOSAR 1 AUTOSAR BSW (Basic Software) (Runtime Environment) Applicat

MDD PBL ET 9) 2) ET ET 2.2 2), 1 2 5) MDD PBL PBL MDD MDD MDD 10) MDD Executable UML 11) Executable UML MDD Executable UML

平成 29 年度卒業研究 初心者のためのゲームプログラミング用 教材の開発 函館工業高等専門学校生産システム工学科情報コース 5 年 25 番細見政央指導教員東海林智也

GPGPU

24 LED A visual programming environment for art work using a LED matrix

評論・社会科学 84号(よこ)(P)/3.金子

2015 TRON Symposium セッション 組込み機器のための機能安全対応 TRON Safe Kernel TRON Safe Kernel の紹介 2015/12/10 株式会社日立超 LSIシステムズ製品ソリューション設計部トロンフォーラム TRON Safe Kernel WG 幹事

2

28 Docker Design and Implementation of Program Evaluation System Using Docker Virtualized Environment

IPSJ SIG Technical Report Vol.2016-CE-137 No /12/ e β /α α β β / α A judgment method of difficulty of task for a learner using simple

soturon.dvi

卒業論文2.dvi

1 Fig. 1 Extraction of motion,.,,, 4,,, 3., 1, 2. 2.,. CHLAC,. 2.1,. (256 ).,., CHLAC. CHLAC, HLAC. 2.3 (HLAC ) r,.,. HLAC. N. 2 HLAC Fig. 2

1 UD Fig. 1 Concept of UD tourist information system. 1 ()KDDI UD 7) ) UD c 2010 Information Processing S

TopSE並行システム はじめに

PNopenseminar_2011_開発stack

7,, i

An introduction and future of Ruby coverage library

目次 はじめに 4 概要 4 背景 4 対象 5 スケジュール 5 目標点 6 使用機材 6 第 1 章 C# 言語 7 C# 言語の歴史 7 基本構文 8 C 言語との違い 9 Java 言語との違い 10.Netフレームワーク 10 開発資料 10 第 2 章 Mono 11 Monoの歴史 1

PowerPoint プレゼンテーション

Fig. 3 3 Types considered when detecting pattern violations 9)12) 8)9) 2 5 methodx close C Java C Java 3 Java 1 JDT Core 7) ) S P S

Shonan Institute of Technology MEMOIRS OF SHONAN INSTITUTE OF TECHNOLOGY Vol. 41, No. 1, 2007 Ships1 * ** ** ** Development of a Small-Mid Range Paral

システム開発プロセスへのデザイン技術適用の取組み~HCDからUXデザインへ~

1_26.dvi

2. Twitter Twitter 2.1 Twitter Twitter( ) Twitter Twitter ( 1 ) RT ReTweet RT ReTweet RT ( 2 ) URL Twitter Twitter 140 URL URL URL 140 URL URL

Nios II Flash Programmer ユーザ・ガイド

Nios II ハードウェア・チュートリアル

IPSJ SIG Technical Report Secret Tap Secret Tap Secret Flick 1 An Examination of Icon-based User Authentication Method Using Flick Input for

2. CABAC CABAC CABAC 1 1 CABAC Figure 1 Overview of CABAC 2 DCT 2 0/ /1 CABAC [3] 3. 2 値化部 コンテキスト計算部 2 値算術符号化部 CABAC CABAC

,,,,., C Java,,.,,.,., ,,.,, i

2013 Future University Hakodate 2013 System Information Science Practice Group Report biblive : Project Name biblive : Recording and sharing experienc

Microsoft PowerPoint - A3② JaSST_MISRA2004ソースコード品質診断.ppt

WikiWeb Wiki Web Wiki 2. Wiki 1 STAR WARS [3] Wiki Wiki Wiki 2 3 Wiki 5W1H Wiki Web 2.2 5W1H 5W1H 5W1H 5W1H 5W1H 5W1H 5W1H 2.3 Wiki 2015 Informa

TFTP serverの実装

<95DB8C9288E397C389C88A E696E6462>

IPSJ SIG Technical Report Vol.2009-HCI-134 No /7/17 1. RDB Wiki Wiki RDB SQL Wiki Wiki RDB Wiki RDB Wiki A Wiki System Enhanced by Visibl

untitled

IPSJ SIG Technical Report PIN(Personal Identification Number) An Examination of Icon-based User Authentication Method for Mobile Terminals Fum

組込みシステムシンポジウム2011 Embedded Systems Symposium 2011 ESS /10/20 FPGA Android Android Java FPGA Java FPGA Dalvik VM Intel Atom FPGA PCI Express DM


Source Insight

Microsoft Word - ALT0982_program_epcs_by_niosii_v10.doc

, IT.,.,..,.. i

メディプロ1 Javaプログラミング補足資料.ppt

大学における原価計算教育の現状と課題

Javaの作成の前に

fiš„v5.dvi

Jupyter Notebook を活用したプログラムライブラリ構築の検討 吹谷芳博 1, 藤澤正樹 1 ( 1 あすか製薬株式会社 ) Examination of the program library construction using Jupyter Notebook ASKA Pharm

Vol. 48 No. 4 Apr LAN TCP/IP LAN TCP/IP 1 PC TCP/IP 1 PC User-mode Linux 12 Development of a System to Visualize Computer Network Behavior for L

IPSJ SIG Technical Report Vol.2012-EMB-26 No /9/10 1,a) 1,b) 1,c) 1,d) 1,e) 1,f) 1,g) 5 3D HILS HILS An Integrated Driving Simulator for Interdi

PowerPoint Presentation

1 2. Nippon Cataloging Rules NCR [6] (1) 5 (2) 4 3 (3) 4 (4) 3 (5) ISSN 7 International Standard Serial Number ISSN (6) (7) 7 16 (8) ISBN ISSN I

IPSJ SIG Technical Report Vol.2014-EIP-63 No /2/21 1,a) Wi-Fi Probe Request MAC MAC Probe Request MAC A dynamic ads control based on tra

Q [4] 2. [3] [5] ϵ- Q Q CO CO [4] Q Q [1] i = X ln n i + C (1) n i i n n i i i n i = n X i i C exploration exploitation [4] Q Q Q ϵ 1 ϵ 3. [3] [5] [4]


NO

改訂履歴 改訂日付 改訂内容 2014/11/01 初版発行 2017/01/16 Studuino web サイトリニューアルに伴う改訂 2017/04/14 Studuino web サイトリニューアルに伴うアクセス方法の説明変更 2018/01/22 Mac 版インストール手順変更に伴う改訂

Web-ATMによる店舗向けトータルATMサービス

IPSJ SIG Technical Report Vol.2014-IOT-27 No.14 Vol.2014-SPT-11 No /10/10 1,a) 2 zabbix Consideration of a system to support understanding of f

Nios II SBT Flash Programmer ユーザ・ガイド

23 The Study of support narrowing down goods on electronic commerce sites

untitled

スライド 1

Web Stamps 96 KJ Stamps Web Vol 8, No 1, 2004

28 Horizontal angle correction using straight line detection in an equirectangular image

IPSJ SIG Technical Report Vol.2013-GN-86 No.35 Vol.2013-CDS-6 No /1/17 1,a) 2,b) (1) (2) (3) Development of Mobile Multilingual Medical

Web Web Web Web Web, i

2014 年 11 月 20 日 ET2014 スペシャルセッション C-2 mruby プログラム言語 Ruby による組込みソト開発 九州工業大学田中和明 軽量 Ruby フォーラム Ruby アソシエーション


TRQerS - Introduction

untitled

chisq.test corresp plot


07_伊藤由香_様.indd

17 Proposal of an Algorithm of Image Extraction and Research on Improvement of a Man-machine Interface of Food Intake Measuring System

2017 (413812)

4-4- 基スクリプト言語に関する知識 コードの作成や修正が容易とされるスクリプト言語を学習し アプリケーション開発の手法を習得する 本カリキュラムでは まずスクリプト言語に位置づけされる Perl PHP Python JavaScript Ruby といった Ⅰ. 概要プログラミング言語の特徴に

大域照明計算手法開発のためのレンダリングフレームワーク Lightmetrica: 拡張 検証に特化した研究開発のためレンダラ 図 1: Lightmetrica を用いてレンダリングした画像例 シーンは拡散反射面 光沢面を含み 複数の面光 源を用いて ピンホールカメラを用いてレンダリングを行った

7th CodeGear Developer Camp

2011 Future University Hakodate 2011 System Information Science Practice Group Report Project Name Visualization of Code-Breaking Group Name Implemati

The copyright of this material is retained by the Information Processing Society of Japan (IPSJ). The material has been made available on the website

Studuino ライブラリ環境設定Windows編

6_27.dvi

ご利用のコンピュータを設定する方法 このラボの作業を行うには 事前設定された dcloud ラボを使用するか 自身のコンピュータをセットアップします 詳細については イベントの事前準備 [ 英語 ] とラボの設定 [ 英語 ] の両方のモジュールを参照してください Python を使用した Spar

【HP用】26.12月号indd.indd

26.2月号indd.indd

21 A contents organization method for information sharing systems

IPSJ SIG Technical Report Vol.2009-BIO-17 No /5/26 DNA 1 1 DNA DNA DNA DNA Correcting read errors on DNA sequences determined by Pyrosequencing

26.1月号indd.indd

3_23.dvi

[2] , [3] 2. 2 [4] 2. 3 BABOK BABOK(Business Analysis Body of Knowledge) BABOK IIBA(International Institute of Business Analysis) BABOK 7

企業内システムにおけるA j a x 技術の利用

VDM-SL ISO.VDM++ VDM-SL VDM- RT VDM++ VDM,.VDM, [5]. VDM VDM++.,,, [7]., VDM++.,., [7] VDM++.,,,,,,,.,,, VDM VDMTools OvertureTo

fiš„v8.dvi

2reA-A08.dvi

Nios II 簡易チュートリアル

PowerPoint プレゼンテーション

Tsuken Technical Information 1

Transcription:

組み込み向け軽量 Ruby の研究 開発 ~TJ ボードを使った CPU とハードウェア支援について ~ 佐藤雄亮 組み込みソフトウェアは私達の生活に深く密着しており 安全性も含め 高品質が要求され その開発は容易ではない 一方 組み込みソフトウェア開発の多くは C C++ 言語が用いられているが 習得が困難であったり コードが長く生産性が低いという問題がある そこで Ruby という日本製の開発言語は 手軽で記述しやすく C 言語のソースを簡単に利用できるという特徴を持つ広く普及しているスクリプト言語であり その結果 高生産性 高品質なプログラム開発が可能である 本研究ではこの Ruby を組み込みソフトウェア開発に使用できるように簡略化 軽量化すると同時に チップ化して使用できるかどうかなどの研究を行なっている 1. 背景 研究目的 現在 組み込み機器の適用場所は様々な分野は様々な分野に広がっており その全体の傾向としてプログラムの複雑化 開発の短期間化 低コスト化が求められている そこで 現在開発言語として多く使われている C C++ 言語に比べ コードが短い 記述が容易 生産性が高い 高品質 という特徴を持つ Ruby 言語を用いることによって複雑化 短期間化 低コスト化に対し C C++ 言語で開発するよりも開発効率を上げることができる しかし Ruby 言語は VM が 50MB もありメモリ消費も大きく 組み込み機器には適していない そこで本研究では 組み込み機器でも Ruby 言語を使用できるように RubyVM の軽量化 ( 以下 RubyVM) 中間表現を使用し組み込み機器に適用させるように研究開発を行う Research and development of lightweight Ruby for embedded system ~ About CPU using TJ board, and hardware assists~ Yusuke Sato Embedded software is deeply close to our life, high quality also including safety is required, and the development is not easy. On the other hand, many of the embedded software development has been used C and C + + language. but there is a problem that difficult to learn and low productivity more code Ruby development language that is made in Japan, which is widely used scripting language. It has features that you can easily use the C language source and write code. As a result, program development is capable of high quality high productivity We study it which developers can use Ruby for embedded software development. Specifically, we performed a simplified, lightweight, and chipping of Ruby. 図 1 2010 年度組み込み開発で使用されるプログラミング言語 ( 記述行数比率 ) Figure 1 Programming languages which are used to embedded development in FY 2010 (ratio of the number of lines written) 九州工業大学大学院 Kyushu Institute of Technology Graduate School of Information Systems Department 1 c2011 Information Processing Society of Japan

2. 研究内容 本研究の最終目標は 軽量 RubyVM のチップ化が最終目的である その前段階として FPGA に実装することによって最終的にチップ化できるかの検証を行う 具体的には 実際に FPGA が動作させるための環境開発や軽量 Ruby が より快適に利用できるように RTOS を実装 動作を行う 3. システム構成 3.1 Ruby Ruby とは まつもとゆきひろ氏が開発した日本産のマルチプラットフォームな オブジェクト指向スクリプト言語である Web アプリケーションフレームワークである Ruby on Rails によって大ブレイクした Ruby の主な特徴としては 以下のことが挙げられる インタプリタ言語のため コンパイルの必要がない 変数に型がなく 変数宣言が必要ないので シンプルに文法を書くことが可能 オブジェクト指向なので クラス 継承 メソッド Mix-in 等の機能 概念が存在 正規表現や例外処理の機能が存在 C プログラムやライブラリを呼び出す拡張モジュールを組み込むことが可能 フリーソフトウェアである 3.2 軽量 Ruby システム機能軽量 Ruby は 既存の Ruby の長所を残し組み込みシステム開発向けに軽量化 最適化を行ったプログラム言語である 機能としては 既存の Ruby との違い ISO/JIS 規格で定められた機能 組み込みライブラリ部分になっている よって 一般的な Ruby に比べ 組み込みに必要な機能を絞り込んでいる また ライブラリ内の機能の縮小を行う必要に応じてミニマルライブラリ スタンダードライブラリ フルライブラリを使い分ける 軽量 Ruby の機能範囲を図解したものを以下に示す 図 2 軽量 Ruby の機能範囲 Figure 2 The function of light Ruby 3.3 軽量 Ruby の動作方法軽量 Ruby の動作は以下のようになっている 1 開発環境 (Windows Linux など ) 上で Ruby ソースファイルを専用のコンパイラを用いて Rite バイナリファイルに変換する 2 実行環境上に Rite バイナリファイルとライブラリ RiteVM など動作に必要なファイルを追加する 3 実行環境上で RiteVM を用いて Rite 中間表現を実行する また 軽量 Ruby コンパイラの機能として Ruby ソースコードを C 言語に変換することもできる その場合は 変換した後のコードを一般的な C 言語での開発方法とほぼ同じ方法で開発することができる 基本的な流れとして Ruby ソースファイルのみを使用した軽量 Ruby の開発方法を以下に示す 2 c2011 Information Processing Society of Japan

FPGA の特徴としては 以下のような特徴がある 高速 小型 軽量 低消費電力 小さなロジックモジュールを組み合わせて設計ができる為 設計の自由度が高い PC 上で設計し PC から FPGA に実装できるため開発期間が短い 設計の自由度の高さから 任意の論理回路の実現 多入力 多出力の並列処理が可能 プログラムを何度でも書き直すことができるため 柔軟に回路の変更が可能 実装した回路の速度やゲートの消費効率などの回路の速度が設計者に依存 4.2 評価用 FPGA ボード ALTERA 社の cycloneⅡep2c20f484c7n という一般的市販されている開発学習 FPGA ボードを用い実装を行った 図 3 軽量 Ruby の動作方法 Figure 3 How to use light Ruby メインプロセッサ AlteraCycloneII CPU NIOSII : 50MHz メモリ FlashROM : 4MBytes 4. 実装 軽量 Ruby をチップ化させる前段階として軽量 Ruby が FPGA ボードで動作することが出来るか 2 種類の FPGA ボードで検証を行い動作させた また FPGA の開発に使用したソフトウェアは以下の 3 つである Altera SOPC Builder 10.1 Build 153 QuartusⅡ 10.1 Web Edition Nios II 10.1 Software Build Tools CPUの設定 PIN 配置 CPU 書き込み C 言語のIDE プログラムの書き込み 4.1 FPGA FPGA とは Field Programmable Gate Array の頭文字をとったもので 現場 (Field) で 書き換え可能 (programmable プログラム可能な ) LSI( 論理ゲート (Gate) が格子 (Array) 状に並んでいるセミカスタム LSI) のことであり 後からでも回路の書き換えが可能なロジックデバイスである 図 4 一般的な評価用 FPGA ボード EP2C20F484C7N Figure 4 FPGA evaluation board for the general 3 c2011 Information Processing Society of Japan

4.3 軽量 Ruby 評価用 FPGA ボード軽量 Ruby の評価をするために制作された軽量 Ruby 評価用 FPGA ボードで軽量 Ruby の実装を行った 図 4.1 の一般的な評価用ボードと基本的に変化はないが メインプロセッサ メモリ等がより商用に変更されている メインプロセッサ AlteraCycloneIII CPU NIOSII : 50MHz メモリ SDRAM :512Kbytes SDRAM : 32MBytes FlashROM : 64MBytes 5. OS の実装と結果 この軽量 Ruby システムは 様々なタスク処理を行う 大規模な組み込み機器を対象としている よって タスク処理を行う RTOS の実装が不可欠であるため実装を行った 本研究では 軽量 Ruby 評価用 FPGA ボードに toppers と uclinux 両方の実装を試みた 5.1 RTOS について RTOS( リアルタイム OS) とは 一般的な OS に比べ時間資源の保護及び実行時間の予測に特化したものである 様々なタスクの処理をするスケジューリング等を行う 5.2 uclinux について uclinux は 小規模の組み込み機器に適した Linux であり 組み込み用 RTOS の中でも人気の高い RTOS である 今回 軽量 Ruby 評価用 FPGA ボードを用い実装を行ったが カーネルブート中に止まるというエラーが発生した 図 5 軽量 Ruby 評価用 FPGA ボード Figure 5 FPGA Evaluation board of light Ruby 図 6 軽量 Ruby 評価用 FPGA ボードにおける uclinux のカーネル読み込みエラー画面 Figure 6 uclinux kernel read error screen with FPGA Evaluation board of light Ruby 4 c2011 Information Processing Society of Japan

5.2.1 評価用ボードを用いた場合について図 6 のエラー発生の原因を調べるために図 4 の一般的な評価用 FPGA ボードを用い uclinux を実装し動作させた 5.3 toppers について toppers は uclinux よりも更に小規模の組み込み機器に適した TRON 系の RTOS である 国産ということもあり 国内では人気の高い RTOS である 軽量 Ruby 評価用 FPGA ボードを用い実装を行い動作したものを以下に示す 図 7 評価用 FPGA ボードにおける uclinux の動作画面 Figure 7 Operation of the toppers screen with FPGA Evaluation board 図 8 軽量 Ruby 評価用 FPGA ボードにおける toppers の動作画面 Figure 8 Operation of the toppers screen with FPGA Evaluation board of light Ruby 5 c2011 Information Processing Society of Japan

6. 考察と今後の展望 今回 2 種類の RTOS の実装を行い toppers は動作させることができたものの uclinux を動作させることが出来なかった 原因は現在調査中であるが 可能性として考えられることは toppers が FPGA の CPU 設定に依存しないことに対して uclinux は FPGA の CPU 設定に大きく依存することが考えられる なので その辺りをもっと調べ改善することによって 軽量 Ruby を使用する範囲を広げ 更に使いやすいプラットホームを開発することができるので 解決すべき問題点であると考えている また 軽量 Ruby 評価用 FPGA ボードに toppers を実装した際にまだ OS しか実装しておらず軽量 RubyVM 及びプログラムを実装していないので 実装することも 今後の課題である 参考文献 1) 経済産業省 2010 年版組み込みソフトウェア産業実態調査 http://www.meti.go.jp/policy/mono_info_service/joho/downloadfiles/2010software_research/i ndex.htm 6 c2011 Information Processing Society of Japan