2017-10-01から1ヶ月間の記事一覧
UCBの開発しているシミュレータSpikeは、RISC-Vの命令セットをシミュレーションすることのできるISSで、サイクル精度を出すことはできないが最初のアプリケーションのデバッグに有用なツールだ。 そして、RISC-Vにはカスタム命令 (custom0 - custom3)が用意…
UCBの開発しているシミュレータSpikeは、RISC-Vの命令セットをシミュレーションすることのできるISSで、サイクル精度を出すことはできないが最初のアプリケーションのデバッグに有用なツールだ。 そして、RISC-Vにはカスタム命令 (custom0 - custom3)が用意…
UCBの開発したRISC-V実装であるRocket Chipは基本的にシングルコアのモードで動作させるが、よく見るとデュアルコアのモードも存在する。 rocket-chip/src/main/scala/system/Configs.scala class DualCoreConfig extends Config( new WithNBigCores(2) ++ n…
micropython/micropython: MicroPython - a lean and efficient Python implementation for microcontrollers and constrained systems via kwout MicroPythonは一つの題材なのだけれども、いろんなアプリケーションを移植してRISC-Vで動作させれば、少しは…
RISC-Vのツール群、主にコンパイラツールは32bitと64bitのものが存在する。それぞれにライブラリが定義されており、別々にディレクトリを用意してインストールするのが良いと思われる。 ビルドスクリプトも別々に用意されている。 riscv-tools/build.sh # 64…
ちょっとやりたいことがあって、MicroPythonをダウンロードしてビルドした。 github.com micropython/micropython: MicroPython - a lean and efficient Python implementation for microcontrollers and constrained systems via kwout sudo apt install -y…
スーパー台風により本屋に行けないので、ネットでPDF版を購入。 お目当ては猫、、、ではなくて第2特集の「なぜ,コンピュータは割り算が下手なのか!?」 内容は割と普通だった。せいぜい命令のレイテンシ計ってみたくらい。 ハードウェア屋さんだと割と常識で…
Pixel2 → Pixel Visual Core → Halideあたりを調べていたら、ちょうどFixstarsからHalide to FPGAという環境がリリースされた。 www.fixstars.com ターゲットがZedBoardだし、お、ちょうど面白そうと思って早速中身を見てみた。 Halide to FPGA via kwout 最…
Rust入門中の2回目。ってか間が空くのが長いな! 食事する哲学者 食事する哲学者 via kwout 完全な写経中だけど、ちゃんと理解して自力でRustのコードが書ける日は来るのだろうか? しかも私の環境では全然並列実行出来ていない感があるのだけど、大丈夫なの…
CARRVで発表された、UCBのRISC-V FPGAシミュレーション環境 MIDASのリポジトリがあったので、実験してみた。 試してみたのは以下のディレクトリ。 github.com まずは一応全部ダウンロードした。riscv-fesvrを最新に更新しないと動作しないようなので、riscv-…
www.ubuntu.com Ubuntu 17.10がリリースされたよ!やっとUnityじゃなくなったよ!GNOMEになって多少快適になってる! 例によってVirtualBoxにインストールしてみた。ついでにRISC-Vのツール群も一通り使えるかチェックしておこうかな。 github.com github.co…
途中で寝ちゃいましたけど!日本時間の2:30~は遅すぎるよ。。。 SiFive社が主催しているRISC-VのWebinar第2回、今回はSiFive社が提供しているRISC-VのIP群についての話。シングルコアの話から、マルチコアのものまでザックリと製品群のすみ分けの説明だった…
11月28~11月30日に実施される7th RISC-V Workshop、今回もPreliminary Agendaが公開された。 7th RISC-V Workshop Preliminary Agenda - RISC-V Foundation via kwout 今回も2日間に渡るセッションだが、量が多いなあ!45セッションあるらしい。 ってかセッ…
GoogleのフラグシップスマートフォンPixel 2が発表された。スマートフォン自体についてはあまり興味が湧かなかったのだが、搭載されているチップについては興味をそそる内容だ。 www.blog.google Pixel Visual Core: image processing and machine learning …
2017/10/14-10/15にかけて、アメリカのボストンにてRISC-Vの学術的なトピックに焦点を当てたワークショップ "CARRV (Computer Architecture Research with RISC-V)" が開催された。 その際の発表資料などは、CARRVのウェブサイトにて見ることが出来る。 carr…
オープンソースGPGPUをいろいろと調査しているが、その中でなかなか完成度の高いもののひとつであるNyuziProcessor、テストパタンの動作までは上手く行ったが、FPGAにインプリメントしてみたい。 少し調べてみたのだが、どうやらALTERAのFPGA、そしてDE2-115…
突然新しいプログラミング言語に入門したくなることもある。自分としてはスクリプト言語はRubyをメインに使っているのだけれども(最近Rubyistとしては隠れすぎていてRubyを使っておらず、シェルスクリプトで何とかしようとする傾向があるが)、最近徐々に知名…
先日Design Solution Forumで発表をしてきたのだが、その時にRocket Chipを拡張して独自命令を追加した話をした。 そのあとで他の発表の方から、RISC-Vの拡張方法についていろんな考え方が聞けたため、そういえばRISC-Vって独自の命令を追加する場合に何か考…
オープンソースGPGPUであるNyuziProcessorの話続き。NyuziProcessorは、ビルドした後のリグレッションテストを自動的に実行することできる環境が用意されている。 こういうハードウェア関係のプロジェクトでリグレッションテストの環境まで提供されているの…
前回紹介したオープンソースのGPGPU "NyuziProcessor" はどうやらダウンロードして簡単に試行できるようだ。試してみよう。 Ubuntuで試行する場合は、必要なパッケージをダウンロードした。 sudo apt-get -y install autoconf cmake make gcc g++ bison flex…
オープンソースなCPUと言えばOpenRISC, OpenSPARC, そしてRISC-Vだったり。ところで、それ以外でオープンソースなGPGPUってあるんだろうか? 例えば、いろいろ調べてみると以下のようなものが出てきた。 NyuziProcessor https://github.com/jbush001/NyuziPr…
引き続き、Facetsで遊んでいる。現在はDhrystoneプログラムを解析中。 レジスタ読み込みアドレスとレジスタ書き込みアドレスの関係を調査していたのだが、いくつか読み込ませるデータを変更して、より解析しやすくしてみた。 sed 's/C0://g' output/dhryston…
Facetsというのは、Googleがリリースしたデータ解析ツールだ。機械学習に使えるとしており、データを可視化するのが得意で、ダイナミックな動きが特徴のデータ可視化ツールセットとなっている。 これを使って何かできないかと考えたのだが、例えばCPUベンチ…
VUnit は VHDL/SystemVerilogのテスティングフレームワークだ。VUnitにはいくつかテストパタンが用意されているが、少し自分でもテストパタンを用意してみよう。 作ってみたのは、32bit×32bit=64bitの符号なし整数の演算器を実装して、VUnitでテストを実行し…
そろそろ告知しておかないと自分でも忘れそう。 2017/10/13(金)に開催されるDesign Solution Forumにて、RISC-Vのトラックの一つとして発表させて頂くことになりました。 トラックB3 12:00 - 12:40 で、タイトルは "さわって分かる オープンソースプロセッサ…
Linuxをサポートしている64bit RISC-V 4コア + 64bit RISC-V 1コアのSoCとのこと。 Quad Coreの方はU54コアということで、アーキテクチャとしてはRV64GC(整数浮動小数点何でも入り)、シングルコアの方はE51をベースとしたRV64IMAC(整数演算のみサポート)を搭…
ソフトウェア環境下においてテスティングフレームワークは、例えばJUnit, GoogleTest など。 しかしハードウェア言語向けのテスティングフレームワークというのは少ない。 以前に少し紹介したのは、cocotbというテスティングフレームワーク、こちらはPython…
前回の続き。Rocket Chipがどのようにしてプログラムをロードするのかを引き続き解析している。riscv-fesvrのdtm.ccを見てその動作を解析している。 write_chunk (uint64_t taddr, size_t len, const void* src) ターゲットのアドレスtaddrからlenバイト分、…
RISC-VのフラグシップモデルであるRocket Chip Generatorは、RISC-Vのほぼ全ての仕様を網羅している非常に優れているデザインだが、最初はなかなか取っつきにくい部分がある。 それはいくつかあるのだが、 ChiselというScala拡張の言語で記述されており、Ver…
前回の続き。Rocket Chipがどのようにして制御を行っているのか、またプログラムのロードや、Start,Stopの制御はどのように行っているのかなどを調査している。 前回まではload_program()関数が呼ばれるところまでを見てきた。 msyksphinz.hatenablog.com 実…