FPGA開発日記

カテゴリ別記事インデックス https://msyksphinz.github.io/github_pages , English Version https://fpgadevdiary.hatenadiary.com/

2018-05-01から1ヶ月間の記事一覧

AWS EC2 F1インスタンスを使ったハードウェア開発の勉強 (11. 割り込み信号によるFPGAからホストへの通知機能)

AWS F1インスタンス HDK の勉強を続けている。 目標としては、以下の部分にAXIマスタを接続してDRAMにアクセスし、データをフェッチする。 DMAでホストからデータをDDR4メモリに格納する。 AXIマスタデータをフェッチする 演算し、結果を格納する。 として、…

Amazon EC2 F1インスタンスで動作するRISC-Vシミュレーション環境FireSimの論文を読む

ISCA 2018で発表される予定の論文、"FireSim: FPGA Accelerated Cycle Exact Scale-Out System Simulation in the Public Cloud" をざっと流し読みした。 EC2 F1インスタンスを勉強している身としては、把握しておきたい内容ということで、分かったことをま…

「30日でできる!OS自作入門」を読了した (29日/30日 アプリケーション作成)

30日でできる! OS自作入門作者: 川合秀実出版社/メーカー: 毎日コミュニケーションズ発売日: 2006/03/01メディア: 単行本購入: 36人 クリック: 735回この商品を含むブログ (299件) を見る 29日目と30日目はアプリケーションをたくさん作ってみる話。 アプリ…

「30日でできる!OS自作入門」を読み始めた (28日目 ファイルの操作と日本語表示)

30日でできる! OS自作入門作者: 川合秀実出版社/メーカー: 毎日コミュニケーションズ発売日: 2006/03/01メディア: 単行本購入: 36人 クリック: 735回この商品を含むブログ (299件) を見る 28日目はファイル操作と日本語のサポートを行う。 ファイル操作につ…

NHK技研公開2018に行ってきました

www.nhk.or.jp NHK放送技術研究所に行ってみるのは初めてのことだった。成城学園前駅からバスで約10~15分。意外と遠いな! 実際に通っている人はみんなバスで通っているのかな。 NHKの技研公開では、NHKが考える未来の技術、現在開発中の技術や、NHKが作ろ…

RISC-Vの連載第5回がインターフェース誌に掲載されました

これまでの記事はこちら。 RISC-Vの連載をInterface誌に寄稿しました(2018年2月号から) RISC-Vの連載第2回がインターフェース誌に掲載されました RISC-Vの連載第3回がインターフェース誌に掲載されました RISC-Vの連載第4回がインターフェース誌に掲載されま…

AWS EC2 F1インスタンスを使ったハードウェア開発の勉強 (10. 整数行列計算回路の実装)

AWS F1インスタンス HDK の勉強を続けている。 目標としては、以下の部分にAXIマスタを接続してDRAMにアクセスし、データをフェッチする。 DMAでホストからデータをDDR4メモリに格納する。 AXIマスタデータをフェッチする 演算し、結果を格納する。 として、…

Speculative Store Bypass に学ぶ現代プロセッサの高速メモリアクセスユニットの仕組み

Microsoft および Google から、新たなCPUの脆弱性であるVariant 4およびVariant 3aについてのアナウンスがあり、Intel, AMD, Arm が対応に迫られている。 これらの脆弱性は、現代のコンピュータアーキテクチャの飽くなき性能追及の結果発生したものが多く、…

Amazon AWS F1インスタンス上で動作するRISC-VプロセッサRocket-Chipの環境FireSimがオープンソース化

UCBにて開発されているRISC-VのRocket-Chipを、Amazon AWS F1インスタンス上で動作させるための環境FireSimがISCA 2018にアクセプトされたとのこと。 おめでとうございます。 1. FireSim Basics — FireSim documentation via kwout さらに、FireSimの環境が…

C++で記述された軽量CNN実装 mojo-cnn 試行 (4. RISC-V on FPGAのデバッグ)

FPGAでCNNのプログラムを動かそうとしたのだが、C++のコードをそのままRISC-Vでコンパイルして走らせてもどうもうまく行かない。 そもそもの問題だが、例えばRISC-V on FPGAで何かを動かしたい場合、printfなどは独自のsyscalls.c を使ってPS (=ARM)に表示さ…

RISC-V におけるメモリモデルについて

RISC-Vのコンパイル時に登場する謎のメモリモデルについて調査したのでまとめておく。 以下の資料を参考にした。 All Aboard, Part 4: The RISC-V Code Models www.sifive.com RISC-Vはコード内をジャンプするための手法としては複数の手段があるのだが、他…

AWS EC2 F1インスタンスを使ったハードウェア開発の勉強 (9. 整数行列計算回路の実装)

AWS F1インスタンス HDK の勉強を続けている。 目標としては、以下の部分にAXIマスタを接続してDRAMにアクセスし、データをフェッチする。 DMAでホストからデータをDDR4メモリに格納する。 AXIマスタデータをフェッチする 演算し、結果を格納する。 として、…

「30日でできる!OS自作入門」を読み始めた (27日目 LDT / GDTと環境の改善)

30日でできる! OS自作入門作者: 川合秀実出版社/メーカー: 毎日コミュニケーションズ発売日: 2006/03/01メディア: 単行本購入: 36人 クリック: 735回この商品を含むブログ (299件) を見る 27日目はLDTの改造と環境の改善だ。GDTに対する理解が甘いので、LDT…

AWS EC2 F1インスタンスを使ったハードウェア開発の勉強 (8. cl_dram_dmaにAXIマスタを追加する)

AWS F1インスタンス HDK の勉強を続けている。 遅いながらにどうにか進めている。cl_dram_dma についてなんとなく分かってきた。 前回はアサーションを追加してAXIバスが動作していることを確認した。 次はAXIをどうにか動かすことはできないだろうか?目標…

C++で記述された軽量CNN実装 mojo-cnn 試行 (3. RISC-V on FPGAで動かしてみる)

前回はmojo-cnnをRISC-V向けに移植したので、今度は実機で動くかどうか試してみよう。 mojo-cnnはモデルデータをファイルとして保持しており、真面目に動かすならば1つのバイナリにすべきなのかもしれないが、とりあえずRocket-ChipにあるProxy Kernelがホス…

C++で記述された軽量CNN実装 mojo-cnn 試行 (2. RISC-V 向けにリコンパイルとシミュレーション)

※ 画像はイメージです。 前回はmojo-cnnをx86上で動作させてみたのだが、最終的にはRISC-Vプロセッサ上で動作させてみたいので、RISC-V向けにリコンパイルしてみよう。 やることはMakefileのg++の部分を書き換えるだけだ。 examples/makefile diff --git a/e…

C++で記述された軽量CNN実装 mojo-cnn 試行 (1. x86上での動作試行)

※ 画像はイメージです。 ディープラーニングと言えばTensorFlowだのKerasだのChainerだの、高級なインタフェースを持ったツールを使うケースが多いが、例えばマイコンや組み込みプロセッサなどでディープラーニングを動かしたいときは、そこまで高級な機能は…

AWS EC2 F1インスタンスを使ったハードウェア開発の勉強 (7. cl_dram_dmaプロジェクトの解析)

AWS F1インスタンス HDK の勉強を続けている。 前回ModelSimを使ってcl_dram_dma の波形パタンを取得しようとしたが、動作が非常に遅くなってしまい失敗した。 どうにかして波形以外の情報を取得するためには、アサーションのようなものを組み込んでテキスト…

RISC-V仕様のFormal表現いろいろ

8th RISC-V Workshop in Barcelona で非常に気になったワーキンググループの一つ、RISC-V Formal Specification について調べた。 Formal Group は、 RISC-Vの仕様を、英語で書かれた仕様書としてだけでなく、マシンでもチェック可能なプログラムのような形…

AWS EC2 F1インスタンスを使ったハードウェア開発の勉強 (6. cl_dram_dmaの波形取得の試行)

AWS F1インスタンス HDK の勉強を続けている。なかなか時間が取れなくて遅々として進まないが... 何か一つF1インスタンス向けに一つデザインを作って動かしてみたい。そのためには、DRAMのメモリアクセスを理解して実装できるようにならなければならない。 …

「30日でできる!OS自作入門」を読み始めた (26日目 ウィンドウの高速化と複数コンソール起動のサポート)

30日でできる! OS自作入門作者: 川合秀実出版社/メーカー: 毎日コミュニケーションズ発売日: 2006/03/01メディア: 単行本購入: 36人 クリック: 735回この商品を含むブログ (299件) を見る 26日目はウィンドウを完了する。前半はウィンドウの表示の高速化と、…

「30日でできる!OS自作入門」を読み始めた (25日目. 複数ウィンドウの操作)

30日でできる! OS自作入門作者: 川合秀実出版社/メーカー: 毎日コミュニケーションズ発売日: 2006/03/01メディア: 単行本購入: 36人 クリック: 735回この商品を含むブログ (299件) を見る 25日目はコンソールの拡張だ。コンソールはこれまでは1枚だったがこ…

RISC-V Fedora ディスクイメージを立ち上げるための BBL (Berkeley Boot Loader) をコンパイルする

前回の続き。前回は QEMU for RISC-V のビルド実行 Fedora の vmlinux, bbl, ディスクイメージをダウンロード (http://msyksphinz.hatenablog.com/entry/2018/05/07/040000) まで実施した。次に、フルスクラッチからこれらの環境を作るために以下のことをや…

RISC-V版QEMUでLinuxを立ち上げる試行

QEMU が RISC-Vのプラットフォームに対応した。 v.2.12 から、RISC-Vに対応している。 QEMU ChangeLog/2.12 (RISC-V) ChangeLog/2.12 - QEMU さっそくダウンロードして使ってみる。ついでに、いくつかRISC-Vに対応しているLinuxプラットフォームがあるので試…

「30日でできる!OS自作入門」を読み始めた (24日目. ウィンドウ操作)

30日でできる! OS自作入門作者: 川合秀実出版社/メーカー: 毎日コミュニケーションズ発売日: 2006/03/01メディア: 単行本購入: 36人 クリック: 735回この商品を含むブログ (299件) を見る 24日目はウィンドウ操作だ。順調に進んでいったのだがタイマの設定だ…

AWS EC2 F1インスタンスを使ったハードウェア開発の勉強 (5. aws-fpga hdkプロジェクトを Vivado WebPack で動かしたい)

AWS F1インスタンス HDK の勉強を続けている。なかなか時間が取れなくて遅々として進まないが... HDKのサンプルプログラムは、当然だがF1インスタンスのFPGAを前提にしている。 つまり Xilinx の VU9Pだ。 ところが、このFPGAは私のような貧乏な個人が所有し…

「30日でできる!OS自作入門」を読み始めた (23日目. APIを拡充する)

30日でできる! OS自作入門作者: 川合秀実出版社/メーカー: 毎日コミュニケーションズ発売日: 2006/03/01メディア: 単行本購入: 36人 クリック: 735回この商品を含むブログ (299件) を見る 23日目はAPIを拡充していく。APIの数が増えてきたのでなんだかわから…

AWS EC2 F1インスタンスを使ったハードウェア開発の勉強 (4. cl_hello_world の波形を取得する)

cl_hello_world の勉強の続き。 波形を解析する方法がやっと分かった。過去の資料を参照して、波形が取得できるようになった。 gitpitch.com まずはリポジトリのスクリプトを以下のように変更した。 diff --git a/hdk/cl/examples/cl_hello_world/verif/scri…

MIPSのマルチスレッディング対応マルチコアプロセッサI7200

新生MIPSによる新世代CPUコアのリリースだ。I7200という、ミドルレンジのCPUコアらしい。 MIPS Announces I7200 32-bit CPU With New nanoMIPS ISA I-class-I7200-multiprocessor-core – MIPS New MIPS I7200 Processor Core Delivers Unmatched Performance…

AWS EC2 F1インスタンスを使ったハードウェア開発の勉強 (2. cl_hello_worldの実行)

Amazon EC2 F1 インスタンス | AWS via kwout AWS EC2 F1インスタンスについて何となくわかってきたので、もう少し自分のデザインを使ったりだとか、カスタムデザインをF1に載せたりしてみたい。 Verilog-HDLを使ったデザインを使って、AWS F1を使ってみたい…