MIPS命令パイプラインベースの簡易VLIWプロセッサ
4
0
0
全文
(2) Vol.2014-ARC-208 No.3 2014/1/23. 情報処理学会研究報告 IPSJ SIG Technical Report. deco der align/ extend. hi/lo. RF. ALU. Operand gen. bra nch. Operand gen. +. Sub Pipe Main Pipe + align/ extend. hi/lo. RF deco der. P C. Do. ALU. Operand gen. bra nch. Operand gen. +. 8. Ad Di Do. Ad. imem. dmem. 図 1. 開発したプロセッサの構成図. ( 3 ) 命令長の変更に伴いプログラムカウンタの扱いを 4 バ イト単位から 8 バイト単位に変更した.. ( 4 ) メインパイプとサブパイプでプログラムカウンタの値 を共有するように変更した.. 2.1 VLIW 命令 今回開発したプロセッサは,命令長 32 ビットの MIPS 命令 2 つをまとめて 1 つの 64 ビット VLIW 命令として入 力し,下位アドレス側の MIPS 命令をメインパイプ,上位. ( 5 ) 2 つの命令パイプがクロック単位で同期して動作する. アドレス側の MIPS 命令をサブパイプで並列実行する.そ. ために,各パイプのストール条件を共有して使用する. のため,プログラムカウンタを 8 バイト単位で扱うように. ように変更した.. 変更を行った.これにより,8 の倍数アドレスの MIPS 命. ( 6 ) ロードストア命令を両命令パイプで行うことができる ようにするため,両パイプとデータメモリをセレクタ. 令がメインパイプ,8 の倍数+ 4 のアドレスの MIPS 命令 がサブパイプで実行される.. を経由して接続した.ただし,ハードウェアの簡略化. これにともない,ホスト側とのインタフェースを変更す. のため,同一 VLIW 命令内では片方の MIPS 命令の. る必要がある.命令メモリ (imem) への書き込みは 64 ビッ. みがメモリアクセスを行うことができる.. ト単位で行うが,データメモリ (dmem) は 32 ビット単位. ( 7 ) 2 つの命令パイプの実行結果を同時に書き込むことが. で行うため,両者でデータの書込み幅が異なる.そのため,. できるようにするため,レジスタファイルの書込み. 修正が必要となる.シリアル通信でホスト側からアプリを. ポート数を 2 つに変更した.. 転送する際に,FPGA 上のプログラムローダ回路は,4 バ. ( 8 ) 両パイプが備えるレジスタファイルを互いに論理的に. イト単位で FPGA ボード側のメモリに書き込むことを想. 共有させるために,互いの実行結果を自分側と相手側. 定した設計になっているため,命令コード領域へは 8 バイ. のレジスタファイルに同時に書き込むようにした.. ト単位で書き込むように設計を変更した.なお,それ以外. ( 9 ) 異なる命令パイプで実行されている命令間でのデータ ハザードを解消するために,パイプ間にフォワーディ. のデータ領域へは従来通り 4 バイト単位でデータが書き込 まれる.. ングパスを追加した.. ( 10 )頻繁に行われるデータメモリアクセスを高速化するた. 2.2 命令パイプ間の同期. めに,スタック領域などのデータアクセスの用として. VLIW プロセッサとして動作するためには,2 つの命令. FPGA のブロック RAM を使用したオンチップのデー. パイプがクロック単位で同期して動作する必要がある.実. タメモリを追加した.. 行に複数サイクルかかる命令の場合は,両方の命令パイプ を止めるように制御する必要がある.そのため,各パイプ. c 2014 Information Processing Society of Japan ⃝. 2.
(3) Vol.2014-ARC-208 No.3 2014/1/23. 情報処理学会研究報告 IPSJ SIG Technical Report. ラインのストール信号を互いに相手側にも送り,相手側パ. ンタおよびフレームポインタの退避および復帰,レジスタ. イプがストールする場合に自身側のパイプもストールする. に乗り切らない局所変数のために使用される.そのため,. ように制御した.これにより,クロック単位での同期動作. そのアクセス性能を改善することは全体の処理性能の向上. を実現した.. に大きく貢献する.そこで,アドレス 0x07FFFFFF から. 0x07FE0000 間のメモリアクセスを FPGA 上にブロック 2.3 データメモリへのロードおよびストア. RAM を使用して開発したデータメモリにアクセスするよ. 今回開発した VLIW プロセッサでは,2 つの命令スロッ. うに変更を行った.これにより,リファレンスデザインで. トのうちどちらでもロード・ストア命令を実行可能とした.. は平均して約 18 サイクルかかっていたロードストアの処. そのため,メインパイプとサブパイプ共にロード命令やス. 理がストア命令で 1 サイクル,ロード命令で 2 サイクルに. トア命令を実行する可能性があるが,dmem は書込みポー. 短縮した.. ト,読み出しポートともに 1 つしかないため,同時にアク セスすることはできない.この問題については,メインパ イプ,サブパイプのどちらか一方のアクセス要求をセレク. 3. ソフトウェアへの制約条件 今回開発したプロセッサには,ソフトウェアに対して,. タ回路により選択し,dmem に送るようにした.ストア命. 以下の 2 つの制約が存在する.. 令,ロード命令を同時に実行しないよう,ソフトウェアレ. ( 1 ) 1 つの VLIW 命令には最大 1 つのロード・ストア命令. ベルでの保証を行う.また,ハードウェア回路の簡略化の ため,誤って一つの VLIW 命令内に 2 つのロードストア命. を含めることができる.. ( 2 ) 分岐命令はメインパイプでのみ実行できる.. 令が含まれていた場合は,メイン側のみを実行し,サブ側 は無視される.. 3.1 ロードストア命令 データメモリ (dmem) は書込みポートと読み出しポー. 2.4 レジスタファイル. トをそれぞれ 1 つずつしか持たないため,ロード・ストア. 今回開発した VLIW プロセッサは最大 2 命令同時実行. 命令が同一 VLIW 命令中に 2 つ含まれる場合,アクセス. を可能とするため,レジスタファイルは全体で 4 つの読み. 要求が衝突する.そのため,メインパイプとサブパイプで. 出しポートと 2 つの書込みポートを備える必要がある,こ. ロード・ストア命令が実行された場合,どちらか一方のア. れを実現するため,読み出しポート 2 +書込みポート 2 の. クセス要求をセレクタ回路により選択し,データメモリに. レジスタファイルを各命令パイプごとに 1 セットずつ用意. アクセスするようにした.また,ソフトウェアレベルでど. する.これにより各パイプ毎に 2 つの読み出しポートが利. ちらか一方のパイプのみがロード・ストア命令を行うよう. 用可能になる.また,各レジスタファイルはの 2 つの書込. に保証する.同一 VLIW 命令内に 2 つロード命令または. みポートにより両方の命令パイプの実行結果を毎サイクル. ストア命令が含まれていた場合,メイン側の命令のみ実行. 書き込むことが可能となる.これによって,2 つのレジス. され,サブ側は無視される.. タファイル間で値の一貫性を維持することができ,論理的 に一つのレジスタファイルが実現できる.. 3.2 分岐命令. 2.5 フォワーディングパス. 定するロジックが非常に複雑となり,プログラムカウンタ. 同時に 2 つの分岐命令を処理する場合,その分岐先を決 リファレンスデザインの命令パイプラインではフォワー ディングパスが備わっているため,同一パイプ内での命令 間でのデータフォワーディングはできるが,異なるパイプ. の更新がクリティカルパスとなる可能性がある.そこで同 時に 2 つの分岐命令を実行しないように制限した. 今回は,分岐命令をメインパイプでのみ実行するように. 内にある命令間でのデータフォワーディングはできない.. 制限し,ハードウェアの簡略化を図った.そのため,ソフ. そこで,各パイプ間にフォワーディングパスを追加し,パ. トウェアでメインパイプ側にのみ分岐命令が含まれるよう. イプラインストールの機会を減らす.これにより,異なる. に保証する必要がある.もしサブパイプ側に分岐命令が現. パイプ内の命令間であっても直前の命令の結果を受け取る. れた場合,命令は無視される.. ことができ,命令スケジューリングに関する制約が大幅に 緩和される.. 4. 評価 今回開発したプロセッサは,ロード・ストア命令は複数. 2.6 FPGA 上のデータ用メモリ. サイクルかかる可能性があり,実行性能向上の妨げとなる.. リファレンスデザインでは,0x07FFFFFF アドレス周辺. しかし,FPGA 上にブロック RAM を使用して作成した. のメモリ領域はスタック領域として使用される.スタック. データメモリにアクセスするように変更したことで,設定. 領域のメモリは関数呼び出しの戻り先番地やスタックポイ. したアドレス領域へのアクセスにかかるサイクルを削減す. c 2014 Information Processing Society of Japan ⃝. 3.
(4) Vol.2014-ARC-208 No.3 2014/1/23. 情報処理学会研究報告 IPSJ SIG Technical Report. 参考文献. 100% 90%. [1]. 80%. [2]. 70% 60% 䝸䝣䜯䝺䞁䝇䝕䝄䜲䞁. 50%. సᡂ䛧䛯䝥䝻䝉䝑䝃 40%. [3]. 30% 20%. [4]. 10% 0% 䝻䞊䝗௧. 図 2. 安藤 秀樹: 命令レベル並列処理ープロセッサアーキテク チャとコンパイラー,コロナ社,(2012). ジョン・L・ヘネシー,デイビッド・A・パターソン 著 中條 拓伯 監訳・訳, 天野 英晴,吉瀬 謙二,佐藤 寿倫 訳: ヘネシー&パターソン コンピュータアーキテクチャ 定量 的アプローチ 第 4 版, 翔泳社, (2008). MIPS Technologies, Inc.:MIPS software user’s manual, Document Number MD00016, Revision 01.17, (2002). JAPAN XILINX:ChipScope Pro 14.1 ソフトウェアおよ びコア ユーザーガイド,(2012).. 䝇䝖䜰௧. FPGA オンチップメモリによるアクセス性能の改善. ることができる. オフチップの SDRAM に対するストア命令はその実行 に 4 サイクルから 23 サイクルかかるが,FPGA 上のメモ リに対するストア命令は,1 サイクルで実行することがで きる.また,ロード命令はオフチップ DRAM に対しては. 12 サイクルから 20 サイクルかかるが,FPGA 上に対する アクセスであれば,2 サイクルで実行することができる. ロード・ストア命令にかかるサイクルを 18 サイクルとす ると,FPGA 上のメモリに対するストア命令は 1 サイクル となるので,1 命令あたり 94%のサイクル削減,ロード命 令が 1 命令あたり 89%のサイクル削減できることを確認し た.図 2 は,ChipScope[4] を使用して波形を観測し,オフ チップ SDRAM に対するデータアクセスのレイテンシと. FPGA 上のオンチップメモリに対するデータアクセスのレ イテンシを比較し,そのサイクル数を削減した割合である.. FPGA 上のオンチップメモリへのロード・ストア命令の実 行サイクル数が大幅に削減されていることが分かる.. 5. まとめ MIPS パイプラインプロセッサをベースにした VLIW プ ロセッサの開発を行った.VLIW プロセッサの性能を引 き出すためには命令レベル並列性の向上が重要となる.今 回開発したプロセッサでは,2 つの命令パイプライン間に フォワーディングパスを追加した.これにより,異なる命 令パイプで実行されている命令間でのデータハザードを解 消することが可能となり,命令レベル並列性を向上するこ とができた. また,FPGA 上にデータ用のオンチップメモリを確保す ることで,そのメモリ上の値にアクセスする場合に,大幅 な実行サイクルの削減が可能となった. 命令パイプをさらに追加し,依存関係やソフトウェアへ の制約による並列性の低下を可能な限り抑えるようにソフ トウェアを作成するなどの工夫によりさらにの並列度の高 いプログラムの実行が可能となる.これにより,プロセッ サの大きな性能向上を達成することが見込まれる.. c 2014 Information Processing Society of Japan ⃝. 4.
(5)
関連したドキュメント
Matsui 2006, Text D)が Ch/U 7214
12―1 法第 12 条において準用する定率法第 20 条の 3 及び令第 37 条において 準用する定率法施行令第 61 条の 2 の規定の適用については、定率法基本通達 20 の 3―1、20 の 3―2
※
① 小惑星の観測・発見・登録・命名 (月光天文台において今日までに発見登録された 162 個の小惑星のうち 14 個に命名されています)
新たに取り組む学校施設の長寿命化 GIGAスクール構想の実現に向けた取組 決算額 29 億 8,997 万2千円 決算額 1億 6,213 万7千円
令和2年度 令和3年度 令和4年度 令和5年度
発生という事実を媒介としてはじめて結びつきうるものであ
えんがわ市は、これまで一度も休 まず実施 してきたが、令和元年 11月 は台風 19号 の影響で初 めて中止 となつた。また、令和 2年