FPGA開発日記

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

2020-04-01から1ヶ月間の記事一覧

freedom-u-sdkのLinuxを立ち上げながらLinuxのブートプロセスを学ぶ(4. デバイスの初期化について)

私の開発したRISC-VシミュレータはLinuxを立ち上げることができる。シミュレータのデバッグ時には相当中身を読み込んだのだが、きちんと文章化していない挙句、大昔のプロジェクトなのでもう忘れかけている。 Linuxのブートの方法から各種プロセスの取り扱い…

freedom-u-sdkのLinuxを立ち上げながらLinuxのブートプロセスを学ぶ(3. printmにより文字が画面に表示されるまでの仕組み)

私の開発したRISC-VシミュレータはLinuxを立ち上げることができる。シミュレータのデバッグ時には相当中身を読み込んだのだが、きちんと文章化していない挙句、大昔のプロジェクトなのでもう忘れかけている。 Linuxのブートの方法から各種プロセスの取り扱い…

freedom-u-sdkのLinuxを立ち上げながらLinuxのブートプロセスを学ぶ(2. init_first_hart()で実行される処理)

私の開発したRISC-VシミュレータはLinuxを立ち上げることができる。シミュレータのデバッグ時には相当中身を読み込んだのだが、きちんと文章化していない挙句、大昔のプロジェクトなのでもう忘れかけている。 Linuxのブートの方法から各種プロセスの取り扱い…

メモリコンシステンシモデルとリトマステストについて (2. リトマステストについて)

メモリコンシステンシモデルの続き。続いてリトマステストについて調査する。 どうやってメモリコンシステンシモデルをテストするのか? メモリコンシステンシをテストするためにはリトマステストというものを使用する。リトマステストは非常に小さなプログ…

メモリコンシステンシモデルとリトマステストについて (1. メモリコンシステンシモデルについて)

RISC-Vも含め、コンピュータアーキテクチャでなかなか分かりにくい領域にメモリコンシステンシモデルモデルというものがある。メモリコンシステンシモデルとは何か?なぜ議論が必要なのか?メモリコンシステンシモデルをテストするリトマステストとは何なの…

CQ出版のインターフェース6月号に「Rustで作る命令セット・シミュレータ」を寄稿しました

インターフェースを毎号買って読んでいる方なら「おいおいこの話は先月号に載せるべき話じゃないのかい?」と言うことに気が付くと思います。私もそう思います。が、どうやら編集担当さんによりページ数のミスが発生した模様(本当かどうかは知りませんが)…

freedom-u-sdkのLinuxを立ち上げながらLinuxのブートプロセスを学ぶ(1. シミュレータの立ち上げ方法とブートシーケンス)

私の開発したRISC-VシミュレータはLinuxを立ち上げることができる。シミュレータのデバッグ時には相当中身を読み込んだのだが、きちんと文章化していない挙句、大昔のプロジェクトなのでもう忘れかけている。 Linuxのブートの方法から各種プロセスの取り扱い…

ACMの論文が全部無料公開されたのでISCA2019の論文を全部ダウンロードして概要を眺めた

コロナウイルスの状況下で、ACMが論文の無償公開を始めた。あまり論文をしっかり読むほうではないのだが、良い機会なので、最高峰の学会にAcceptされた論文というものがどういうものなのか、勉強していきたい。 で、私の専門分野のコンピュータアーキテクチ…

RISC-Vのリトマステストツールriscv-litmus-testを試す(2. いろいろ修正してコンパイルを通す)

前回のリトマステストツール。一応テストプログラムの生成は終了してコンパイルを通そうとしたのだが、いろんなエラーが出て失敗したのだった。 riscv64-unknown-linux-gnu-gcc -D_GNU_SOURCE -DFORCE_AFFINITY -Wall -std=gnu99 -O2 -pthread -static -c -o…

RISC-Vのリトマステストツールriscv-litmus-testを試す(1. ダウンロードとインストール)

リトマステストというのは、マルチプロセッサの構成においてメモリアクセスの順序などをテストするためのツールらしい。 あまり私も良く分かっていないのだが、RISC-Vのメモリコンシステンシモデルの定義においてよく話題に上がるテストだ。 そしてRISC-Vの…

RISC-VのLinuxをビルドするためのfreedom-u-sdkの確認 (2. シミュレータのビルドと動作確認)

freedom-u-sdkのLinuxを久しぶりにビルドしてみる、結局環境としてはかなり昔のものに戻した。 VirtualBox 6.1 Ubuntu 16.04 LTS freedom-u-sdk (v1_0 branch) これでfreedom-u-sdkのLinuxをビルドし直してバイナリを作成した。さらに自作のRISC-Vシミュレー…

llcの生成するDAGグラフ生成の出力ファイル名を指定できるようにしたい(2. グラフ毎にsuffixを変える)

LLVMバックエンドコンパイラのグラフ出力にファイル名をつけようプロジェクト、一応成功したのだが少し問題がある。 このDAGグラフ出力は一度に複数のグラフファイルを生成することができる。通常はそのたびにランダムなファイル名が付加されるのだが、ファ…

コンピュータアーキテクチャ定量的アプローチ第6版(ヘネパタ)の電子書籍を購入した

コンピュータアーキテクチャ・定量的アプローチ(通称ヘネパタ)の第6版は、紙の書籍だけでなく電子書籍としても販売されている。達人出版会から購入可能だ。 tatsu-zine.com ちなみに原書も電子書籍が販売されており、こちらはElsevierから販売されており購…

RISC-VのLinuxをビルドするためのfreedom-u-sdkの確認

久しぶりに自分のRISC-Vシミュレータを引っ張り出してきて、最新のLinuxでブートするかどうか確認してみようと思う。後久しぶりののリファクタリングとか。 現在RISC-VのLinuxは本家にマージされており本家からダウンロードしてビルドするのが正統派なのかも…

llcの生成するDAGグラフ生成の出力ファイル名を指定できるようにしたい

LLVMのバックエンドコンパイラであるllcは、SelectionDAGの変換プロセスの実行中に変換状態を確認するためにDAG(Directed Acyclic Graph)が生成できるようになっている。 $ ./bin/llc --march=myriscvx32 --debug --view-isel-dags sample.bc llvm.org -vi…

SiFive Freedom-u-SDKのアップデート試行 (2. native Linux環境で再試行)

前回、結局WSL上ではbitbakeが実行できないということが分かり、どうしようかと悩んでいたのだが、結局AWSでマルチコアのサーバを借りてbitbakeの試行に再挑戦することにした。AWS EC2インスタンスはt2.2xlargeを借り、8コアで並列ビルドすることで高速化を…

SiFive Freedom-u-SDKのアップデート試行 (1. bitbakeでのビルド試行)

freedom-u-sdkにはSiFiveのUnleashedなどのLinux環境が入っているのだが、いつの間にかアップデートされていた。 どうやらGoogleのリポジトリ管理ツールrepoを使ってビルドような仕組みに変わっている。 以下のGitHubリポジトリを参考にしている。 github.co…

FIRRTLの調査(1. ANTLR4のパーサを使ってC++版パーサの作成に挑戦)

以前、少しだけFIRRTLのパーサをC++に移植するプロジェクトを進めていたのだが、そのあと辞めてしまっていたのだった。 ただ、FIRRTLをC++で再実装するプロジェクトは自分の向学のためにも役に立ちそうなので進めていきたい (本当はRustでやりたかったのだけ…

富岳のプロセッサA64FXのマイクロアーキテクチャマニュアルを読む(9. セクタキャッシュとハードウェアバリア)

CPU

スーパコンピュータ富岳のプロセッサA64FXに関するマイクロアーキテクチャが公開されている。こういう情報はあまり出てくることが無いので、とてもありがたい。 github.com せっかくなのでまとめていく。最初は勉強のためにPowerPointにまとめていたのだが、…

LowRISCのLLVM for RISC-Vのドキュメントを日本語に変換した

LLVMバックエンドについて解説した資料というのはかなり数が限られていて、私も勉強するのに試行錯誤しているのだが(だからこそ自分の勉強した記録をすべてブログにアップロードしようとしている)、LowRISCプロジェクトの公開しているLLVMのポーティングに…

富岳のプロセッサA64FXのマイクロアーキテクチャマニュアルを読む(8. データプリフェッチ)

CPU

スーパコンピュータ富岳のプロセッサA64FXに関するマイクロアーキテクチャが公開されている。こういう情報はあまり出てくることが無いので、とてもありがたい。 github.com せっかくなのでまとめていく。最初は勉強のためにPowerPointにまとめていたのだが、…

富岳のプロセッサA64FXのマイクロアーキテクチャマニュアルを読む(7. TLB / キャッシュ / MAC)

CPU

スーパコンピュータ富岳のプロセッサA64FXに関するマイクロアーキテクチャが公開されている。こういう情報はあまり出てくることが無いので、とてもありがたい。 github.com せっかくなのでまとめていく。最初は勉強のためにPowerPointにまとめていたのだが、…

富岳のプロセッサA64FXのマイクロアーキテクチャマニュアルを読む(5. 命令実行)

CPU

スーパコンピュータ富岳のプロセッサA64FXに関するマイクロアーキテクチャが公開されている。こういう情報はあまり出てくることが無いので、とてもありがたい。 github.com せっかくなのでまとめていく。最初は勉強のためにPowerPointにまとめていたのだが、…

富岳のプロセッサA64FXのマイクロアーキテクチャマニュアルを読む(4. 命令ディスパッチ)

CPU

スーパコンピュータ富岳のプロセッサA64FXに関するマイクロアーキテクチャが公開されている。こういう情報はあまり出てくることが無いので、とてもありがたい。 github.com せっかくなのでまとめていく。最初は勉強のためにPowerPointにまとめていたのだが、…

富岳のプロセッサA64FXのマイクロアーキテクチャマニュアルを読む(3. 命令デコード)

CPU

スーパコンピュータ富岳のプロセッサA64FXに関するマイクロアーキテクチャが公開されている。こういう情報はあまり出てくることが無いので、とてもありがたい。 github.com せっかくなのでまとめていく。最初は勉強のためにPowerPointにまとめていたのだが、…

富岳のプロセッサA64FXのマイクロアーキテクチャマニュアルを読む(2. 命令フェッチ)

CPU

スーパコンピュータ富岳のプロセッサA64FXに関するマイクロアーキテクチャが公開されている。こういう情報はあまり出てくることが無いので、とてもありがたい。 github.com せっかくなのでまとめていく。最初は勉強のためにPowerPointにまとめていたのだが、…

富岳のプロセッサA64FXのマイクロアーキテクチャマニュアルを読む(1. パイプラインの概要)

CPU

スーパコンピュータ富岳のプロセッサA64FXに関するマイクロアーキテクチャが公開されている。こういう情報はあまり出てくることが無いので、とてもありがたい。 github.com せっかくなのでまとめていく。最初は勉強のためにPowerPointにまとめていたのだが、…

RISC-Vのトレースフォーマット仕様書が公開されたので読んでみる(7. リファレンスアルゴリズム)

RISC-V トレースフォーマットの勉強。続き。 github.com github.com 1章ずつ、翻訳ではなく日本語でサマライズしていく形式で進めていく。 6. リファレンスアルゴリズム 以下のようなエンコーダの実装を考える。 Qualified? : 命令がフィルタリングのクライ…