〈一般研究課題〉 IoT向け高性能低消費電力プロセッサの設計手法に関する研究
助 成 研 究 者

愛知県立大学佐々木敬泰

IoT向け高性能低消費電力プロセッサの設計手法に関する研究
佐々木 敬泰（愛知県立大学）

Study on efficient design methodology ofhigh performance processor for IoT
Takahiro SASAKI(Aichi Prefectural University)

Abstract：
Recently, IoT (Internet of Thing) technology have been widely used. The processors for IoT
demand both high performance and low energy.

Furthermore, design constrains such asperformance, energy consumption, circuit scale, are not same because usage, operating environments
and condition for IoT devices are diverse. To optimize the system, it is the best to customize theprocessor for each target, but it takes long time and highly cost to design and manufacture. Toreduce the design effort, this paper introduces model-based design to develop the general purpose
processor. Model-based design uses the model, formerly which is used only for simulation, todesign hardware. It is recently used to design hardware such as digital signal processor to reduce
design effort. However, general purpose processor is not suitable for model-based design using
MATLAB/Simulink tool because of the circuit structured. MATLAB/Simulink detects the loopcircuit of the processor as incorrect loop. According to our design results, proposed approachenables to design the entire processor using model-based design by introducing pseudo-delay unit
to pretend correct loop structure. Synthesizable HDL code can be generated from the model using
HDL Coder, and the generated code can implement the processor on FPGA or LSI.

－ 201 －1．はじめに
近年，IoT(Internet of Things)技術の普及により，パソコンやモバイル端末だけでなく，スマート家電やスマートハウスなど，生活の至るところにコンピュータが利用されている．それらのコンピュータでは，演算能力や消費電力，信頼性など様々な制約条件があり，最適なシステム構成は用途により異なる．しかしながら，用途に合わせたプロセッサコアを各々設計することは，設計開発コストの増大や性能検証時間の長期化に繋がるという問題がある．そこで，本研究では用途に合わせた高性能低消費電力プロセッサコアの高効率な設計手法の確立を目指す．
本研究では，IoT向け高性能低消費電力プロセッサの実現を目指すために，IoT向けプロセッサの設計効率向上を目指して，従来よりも抽象度の高い設計手法の確立を目指した．プロセッサの設計は非常に複雑であり，従来のハードウェア記述言語を用いた手法では設計・検証期間の長期化や高コスト化が大きな問題となっている．一方で信号処理等の分野では，モデルベース設計等の新しい設計手法の導入により，従来シミュレーション検証を行うために用いられていた動作モデルを用いてLSI設計まで行えるようになった．具体的には，MATLAB/Simulinkを用いた作成したデザインを用いて，シミュレーション評価に留まらず，ハードウェア設計まで行えるようになった．これにより，信号処理分野においては，アルゴリズムの考案からシミュレーション評価，ハードウェア設計まで単一モデルで一貫して行えるようになり，信号処理用LSIの設計・検証コストが大幅に低減した．しかしながら，汎用プロセッサは内部構造が複雑であり，これまでモデルベース設計が行われてこなかった．そこで，本研究では，IoT向け高性能プロセッサの高効率設計を目指して，MATLAB/Simulinkを用いた汎用プロセッサのモデルベース設計を目指した．汎用プロセッサはループ構造を持つクロック同期の順序回路であり，MATLAB/Simulink上では異常なループ構造と認識されるため，プロセッサ設計ができないという問題があった．そこで，疑似的に遅延素子を挿入することで，MATLAB/Simulink上で抽象度の高いプロセッサ設計が可能となることを明らかにした．
２．関連研究
抽象度の高いハードウェア設計に関する研究として，2013年に岩永らが行った高位合成可能な固定小数点三角関数ハードウェアライブラリの開発[1]がある．この手法はハードウェアの高位合成を目指しているが，高位合成を行うために低レベルなモジュールの開発が必要であるという問題がある．一方，本研究ではプロセッサ全体を抽象度の高いモデルで設計することを目指している点で異なる．また，2007年に松田らによって発表されたMATLAB/Simulinkからの高位合成手法を用いたLSI設計事例[2]がある．これは20次FIR型ローパスフィルタの設計事例である．この回路は主に遅延器，乗算器，加算器の複数の組から成り，いずれもSimulinkのライブラリに存在しHDL自動生成が可能である．従来手法では，仕様検討の後にRTL作成（HDLを手作業で生成）を行い，検証を行うこととなっている．特に，手作業による言語変換に起因するコーディングエラーが多発し，バグ修正のため発生する開発プロセスの逆戻りはスケジュールの大幅な遅延に繋がる．
MATLAB/SimulinkからHDLへ確実かつ自動的に変換できれば，仕様書レベルからLSIへの実装まで高抽象度レベルでのパフォーマンスを維持したまま高機能/高品質のLSIが実現可能である．この事例では，結果として，従来手作業でHDLを生成するために存在した「RTL作成行程(12h)」が，－ 202 －

MATLAB/SimulinkのHDL自動生成機能により不要となり，また全体検証にかかる時間を20hから15hに削減したことにより，全体の40%工数削減が実現した．また，新設計手法を用いて自動生成した回路は，人手でHDLを設計した回路と比較し40%のパフォーマンス向上と60%以上の面積縮小を実現している．
また，同様の研究として，Gabrielらによるモデルベースデザインを用いた制御システムのFPGA設計[3]もあるが，この研究も比較的構造の単純な制御システムのハードウェア実装を対象としている．本研究では，これらの提案を更に進め，汎用プロセッサにモデルベースデザインを適用することを目指している．
３．モデルベース設計を適用した汎用プロセッサの設計手法の提案
IoTの普及に伴い，組み込み分野等においてもプロセッサの性能は年々向上している．従来，プロセッサの設計には，ブロック図やハードウェア記述言語(HDL : Hardware Description Language)を用いた設計が広く用いられているが，抽象度は十分に高いとはいえず，設計期間短縮に対する効果が十分とはいえない．設計期間を劇的に短縮するためには，これらの方法よりも抽象度が大幅に高い設計方法が必要とされる．そこで，MATLAB/Simulinkを用いたモデルベースデザインで汎用プロセッサを設計できるようになると設計効率が向上し，設計検証期間の短縮や低コスト化が望める．更に，MATLAB/Simulinkを用いたプロセッサ設計が可能となれば，HDLを習得していない信号処理アルゴリズムの専門家等のMATLABユーザによるカスタムプロセッサの設計が可能となり，開発手法の幅が広がることが期待できる．そこで，本研究では，抽象度が高く効率な汎用プロセッサの設計を目指し，MATLAB/Simulinkを用いた汎用プロセッサの設計を行い，CPU設計の省力化手法を提案する．
3.1 モデルベースデザインを用いたプロセッサ設計手法
MATLAB/Simulinkを用いたプロセッサ設計は，従来のデザインツールと比べ高い抽象度での設計を可能とする．Simulinkでは，論理ゲートを配置する形での設計の他，ブロック図とMATLAB関数を併用した形でのハードウェア設計が可能である．組合せ回路の各部分について，「MATLABFunction」ブロックを用いて動作を記述する．これは，MATLAB関数をSimulinkのブロックとして作成できるもので，シミュレーション時にはブロック内のMATLAB関数が実行され，HDL Coderを使用するとHDLコードに変換できる．組合せ回路の記述方法は複数通りある．最も単純な方法はSwitch文を用いることである．また，エントリとして1列の行列を作成し，入力信号をインデックスとし出力を数値で指定する方法もある．本研究では両者とも採用する．
3.2 実装手法
本研究で作成したCPUのブロック図を図1に示す．マルチプレクサや加算器，遅延器は既存のライブラリのものを使用し，デコーダやALU等の組合せ回路は「MATLAB Function」ブロックを用いて関数記述により作成した．従来の設計手法では，上位階層の設計は抽象度の高いモデルを用いている場合でも，下位層のブロックはシミュレーション用の動作モデルと論理合成用のVerilog
HDLやVHDL等のHDL記述を用いたブロックに分かれていることが多かった．一方，本研究では，プロセッサ全体をモデルやMATLAB Functionで記述しており，設計データにはHDLは一切含んでいないという特徴がある．これにより，ハードウェア記述言語を理解していない信号処理やアルゴ－ 203 －リズムの設計者にとってもプロセッサの動作を理解したり，改良したりすることが可能となった．
3.3 設計データの検証
設計したプロセッサが汎用プロセッサとして機能するかどうかを確認するためにMATLAB/Simulinkを用いてシミュレーション検証を行った．加算命令，条件分岐命令，メモリアクセス命令
セス命令等を含むテストプログラムを作成し，シミュレーション検証を行ったところ，図 2 に示す等を含むテストプログラムを作成し，シミュレーション検証を行ったところ，図2に示すようにプようにプロセッサとして期待した通りの動作を確認できた．また，本研究の目的は LSI 設計のできロセッサとして期待した通りの動作を確認できた．また，本研究の目的はLSI設計のできるプロるプロセッサのデザインを，モデルベース設計を用いて行うことである．しかしながら，LSI 設計セッサのデザインを，モデルベース設計を用いて行うことである．しかしながら，LSI設計にはコにはコストが大幅にかかるため，本研究では FPGA を用いてハードウェア化が可能かどうかの検証ストが大幅にかかるため，本研究ではFPGAを用いてハードウェア化が可能かどうかの検証を行っを行った．HDL Coder を用いてモデルから Verilog HDL のコードを生成し，Intel Quartus Primeた．HDL
HDLのコードを生成し，IntelQuartus Prime 17.1.0
17.1.0Coderを用いてモデルからVerilogを用いて論理合成を行った．その結果，表1 に示す通り，プロセッサ全体の論理合成が行を用いて論理合成を行った．その結果，表1に示す通り，プロセッサ全体の論理合成が行えることえることが分かった．また，FPGA 固有のマクロ等も利用していないため，本設計フローはそのまが分かった．また，FPGA固有のマクロ等も利用していないため，本設計フローはそのままLSI設
ま LSI 設計にも用いることが十分可能だと考えられる．
計にも用いることが十分可能だと考えられる．

設計したプロセッサのモデル設計したプロセッサのモデル
図 1.図1.

シミュレーション検証
図 2.図2.
シミュレーション検証－ 204 －論理合成結果
表 1.表1.
論理合成結果リソース

使用量

Estimate of Logic utilization (ALMs needed)

1600

Combinational ALUT usage for logic

2302

Dedicated logic registers

1094

I/O pins

167

Total DSP Blocks

0４．まとめ
4. まとめ本研究では，IoT向け高性能低消費電力プロセッサの設計コスト低減に向けたモデルベース設計
本研究では，IoT 向け高性能低消費電力プロセッサの設計コスト低減に向けたモデルベース設計を用いた汎用プロセッサの設計手法を提案した．提案手法の利点は，HDL よりも高度な言語でを用いた汎用プロセッサの設計手法を提案した．提案手法の利点は，HDL よりも高度な言語でハーハードウェアの動作を記述することで，従来のHDL を用いた手法と比べ高抽象度の汎用プロセッドウェアの動作を記述することで，従来の HDL を用いた手法と比べ高抽象度の汎用プロセッサ設サ設計が可能であることである．組合せ回路をMATLAB 式で記述することができ，また記憶回路計が可能であることである．組合せ回路を MATLAB 式で記述することができ，また記憶回路についについても永続変数を使用することで実現することができることがわかった．今回の設計の範囲内ても永続変数を使用することで実現することができることがわかった．今回の設計の範囲内では全では全てのモデルをVerilog HDL に変換することができ，モデルベース設計でFPGAやLSIの実装てのモデルを Verilog HDL に変換することができ，モデルベース設計で FPGA や LSI の実装を行うを行うことが明らかになった．
ことが明らかになった．
本研究成果より，従来よりも設計効率の高いモデルベース設計で，IoT向けの汎用プロセッサの本研究成果より，従来よりも設計効率の高いモデルベース設計で，IoT 向けの汎用プロセッサの設 計 す る こ と で， プ ロ セ ッ サ の 設 計 コ ス ト や 設 計 期 間 の 短 縮 が 期 待 で き る． ま た， 設 計 が設計すること で，プロ セ ッサの設計コ ストや設 計 期間の短縮が 期待でき る ．また，設計がMATLAB/Simulink で完結していることから，Verilog HDL等のハードウェア記述言語を習得しMATLAB/Simulink で完結していることから，Verilog HDL 等のハードウェア記述言語を習得していていない信号処理等のアルゴリズム設計者でもプロセッサに信号処理用の命令や機構を追加するこない信号処理等のアルゴリズム設計者でもプロセッサに信号処理用の命令や機構を追加することとが可能であると考えられる．
が可能であると考えられる．
参考文献
参考文献
［1］
岩永尚大, 阿部貴義,阿部貴義, 田鍋浩之,[1] 岩永尚大,
田鍋浩之,山脇山脇彰:“高位合成可能な固定小数点三角関数ハードウェア
彰:“高位合成可能な固定小数点三角関数ハードウェアライブラリの開発,”産業応用工学会全国大会講演論文集,
ライブラリの開発,”産業応用工学会全国大会講演論文集,pp.44-45.
pp.44-45. 2013.
2013.
[2] 松田昭信，南谷崇: MATLAB/Simulink からの高位合成手法を用いた LSI 設計事例,”第 69 回
［2］松田昭信，南谷崇: MATLAB/Simulink からの高位合成手法を用いた LSI 設計事例,”第69全国大会講演論文集, pp.23-24. 2007.
回全国大会講演論文集,
2007. Irina Dornean , and Ioana Oltean:“MODEL-BASED[3] Gabriel
Oltean, Botondpp.23-24.
Sandor Kirei,DESIGNAND FPGA
IMPLEMENTATION
OF CONTROLSYSTEMS
MODEL-BASEDDESIGNAND FPGA IMPLEMENTATION［3］
GabrielOltean,Botond Sandor
Kirei, Irina
Dornean, and Ioana
Oltean:“MODEL-BASEDOF CONTROL SYSTEMS,”ACTA TECHNICA NAPOCENSIS Electronics and Telecommunications. Vol.54,
2007.DESIGN AND FPGA IMPLEMENTATION OF CONTROL SYSTEMS MODEL-BASEDDESIGN AND FPGA IMPLEMENTATION OF CONTROL SYSTEMS,”ACTATECHNICA NAPOCENSIS Electronics and Telecommunications. Vol.54, 2007.

5－ 205 －