@techreport{oai:ipsj.ixsq.nii.ac.jp:00216090, author = {安堂, 拓也 and 石井, 雄吾 and 石浦, 菜岐佐 and 冨山, 宏之 and 神原, 弘之 and Takuya, Ando and Yugo, Ishii and Nagisa, Ishiura and Hiroyuki, Tomiyama and Hiroyuki, Kanbara}, issue = {3}, month = {Jan}, note = {本稿では,RTOS を用いたシステムのフルハードウェア実装を汎用的な高位合成システムによって行う手法を提案する.六車らは,タスク/ハンドラおよび RTOS のカーネル機能を全てハードウェア化することによりリアルタイムシステムの応答性能を飛躍的に向上させる手法を提案しているが,独自のバイナリ合成システムに依存しており,汎用的な高位合成システムではタスクの実行制御や共有変数へのアクセスをそのまま合成することが困難であった.本稿では,タスクの実行を実行/停止信号ではなく,タスクからのサービス要求の実行/保留により制御する方式と,メモリアクセスのラッパークラスを定義して最小限の書き換えで共有変数へのアクセスを可能にする方法により,一般的な高位合成システムで RTOS 利用システムのフルハードウェア実装を可能にする.本手法を TOPPERS/ASP3 カーネル付属サンプル “sample1” を縮小したプログラムに適用した結果,Xilinx Vitis HLS を用いてハードウェアを合成することができた.また,これにより従来手法に比べて回路規模を大幅に削減することができた., This article proposes a method for implementing a whole RTOS-based system as hardware using general-purpose high-level synthesizer. Muguruma has proposed a scheme where both all the tasks/handlers and all the RTOS functions are implemented as hardware. However, it assumes the use of a dedicated binary synthesizer, ACAP, where generated task modules have stall ports for suspending their execution and accesses to globally shared variables are realized as loads/stores using automatically generated addresses, which are not necessarily possible by general high-level synthesizers. This paper proposes a method where execution of tasks is controlled by allowing/disabling execution of service calls from the tasks, and code transformation using a wrapper class for shared variable accesses and functions within a function, to make general high-level synthesizers applicable to the full-hardware scheme. Based on the proposed methods, a hardware module for a reduced version of “sample1” bundled with TOPPERS/ASP has been successfully implemented as hardware using Xilinx Vitis HLS, where the size of the resulting circuit was substantially smaller than that by the previous method.}, title = {RTOS利用システムの汎用高位合成系を用いたフルハードウェア化}, year = {2022} }