FPGA開発日記

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

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

GCC-6.1がリリースされたのでVagrantに開発環境を構築する(MIPS用)

GCC-6.1がリリースされた。今回のリリースの重要な変更点は、C++14がデフォルトになったことだ。これはいろいろ試してみたい。 まずは、自作ISSのC++実装が、最新のGCCでちゃんとコンパイルできるか確認できる必要があるな。 そのためには、まずは開発環境を…

リネームレジスタを模倣する機能をISSに追加する

ISS

前回の記事で、アウトオブオーダの考え方、リネームレジスタの考え方についてまとめた。 msyksphinz.hatenablog.com CPUを実装するにあたり、リネームレジスタが正しく実装できているかどうかを確認したい。 リネームレジスタが正しく動作しているかは、 新…

Boyer-Moore-Horspoolアルゴリズムの勉強

(出展: http://wisdomdesign.jp/blog/archives/2755) 昔からアルゴリズムに興味があって、いろいろ未知のアルゴリズムを調べるのが好きなのだが、最近興味を持ったのは、silver-searcherにも使われているBoyer-Moor-Horspoolというアルゴリズムだ。 silver-s…

浮動小数点乗算器を低い精度でSIMD形式で並列演算する回路の調査

Tesla P100について調査したとき、GPUの演算器は単精度と半精度で共有しており、半精度の時はSIMD形式で動作させることにより演算性能を向上させていることが分かった。 msyksphinz.hatenablog.com しかし冷静に考えてみると、これはどのように実現している…

Veritak Simulatorにおけるファイルリストの活用法

僕はプライベートでVerilog設計をするとき、シミュレータとしてVeritakを使っている。 国産のVerilogシミュレータで、フリーのVerilogシミュレータに比べてかなり高速、またデバッグ環境が充実している。 大手EDAベンダが販売しているNC-VerilogやVCS、Quest…

プロセッサにおけるアウトオブオーダの考え方について(リネームレジスタの例外時の処理について)

CPU

趣味でCPUを作るのは楽しいもので、自作CPUを作成してベンチマーキングし、性能最適化していったり、高速化していくのは趣味の一つとして楽しめるものだと思う。 CPUを理解するのに、アウトオブオーダ処理、レジスタリネーミングについて理解するのは必須だ…

Understanding the detailed Architecture of AMD's 64bit Core "The Floating Point Core"の翻訳が完了

(ASCII記事より引用。Opteron 6200のダイ写真) msyksphinz.hatenablog.com 前回の続き。Understanding of the detailed Architecture of AMD's 64bit Coreの浮動小数点の章を翻訳した。 原文はこちら。 http://chip-architect.com/news/2003_09_21_Detailed_…

Tesla P100のホワイトペーパーを読んでその特徴をまとめる(Unified Memory, Compute Preemption)

msyksphinz.hatenablog.com 昨日の日記の続き。 引き続き、Tesla P100のハードウェア詳細について見て行く。 注意:GPU初心者が書いている文章のため、間違いが含まれている可能性があります。間違いがあれば、指摘いただければ嬉しいです。 Unified Memory …

Tesla P100のホワイトペーパーを読んでその特徴をまとめる(計算ノード、HBM2)

(2016/04/25 一部誤字修正、コメント追加) msyksphinz.hatenablog.com 昨日の日記の続き。 次は、Tesla P100のハードウェア詳細について見て行く。 注意:GPU初心者が書いている文章のため、間違いが含まれている可能性があります。間違いがあれば、指摘いた…

Tesla P100のホワイトペーパを読んでその特徴をまとめる(概要、NVLinkについて)

nVIDIAがTesla P100というGPUを発表した。 GPUやハイパフォーマンスコンピューティングに興味がないわけではないのだが、普段あまり触れる機会がない。 しかし、なかなか避けては通れない世界ではあるし、初心者だという自覚があるのならばしっかり勉強しな…

xv6を移植するときに書き換えるルーチンについて調査(7)

xv6

msyksphinz.hatenablog.com xv6のRISC-Vへのインポートの続き。 そういえばISSのRISC-V用ビルドには、IDEモジュールとUARTモジュールを追加していなかった。 x86では、IDEやUARTはinbやoutb命令で操作できるが(つまりポートマップドI/O)、MIPSやRISC-Vではそ…

TensorFlow 0.8で並列分散処理がサポートされたけどマルチコア環境ではすでに並列処理で動いている

TensorFlow 0.8で、並列分散処理がサポートされるようになったとのことだ。元記事を読んでいてもふわっとしていていてよく分からないのだが、どうやら大規模分散環境で並列処理ができるようになったらしい。 あれ?というかもともとTensorFlowって並列処理は…

Understanding the detailed Architecture of AMD's 64bit Core "The Integer Core"の翻訳を完了

非常に荒削りだが、chip-architect.com の"Understanding the detailed Architecture of AMD's 64bit Core"の第1章にあたる、"The Integer Core"の翻訳を終了した。 オリジナルの文章はこちら。 Chip Architect: Detailed Architecture of AMD's Opteron 翻…

xv6を移植するときに書き換えるルーチンについて調査(6)

xv6

msyksphinz.hatenablog.com xv6を移植するときに書き換えるルーチンについて調査(5) の続き。 コンパイルはできるようになったのだが、imgファイルを確認すると、まだうまくいっていないところがある。 RISC-Vはリセットベクタが0x0200となっているのだが、i…

パタヘネのARM Editionを購入

Computer Organization and Design(パタヘネ)といえは、有名なコンピュータアーキテクチャの入門書籍だが、基本的に命令セットがMIPSをベースにして説明されている。 しかし、今回MIPSではなく、ARMを前提としたパタヘネが出ていたので早速購入してみた。い…

Bash on WindowsでTensorFlowをインストールして動作させる

Bash on Windowsのベータ版がWindows 10のInsider Previewの機能として公開された。 いままでCygwinやmsys2など、WindowsでLinuxのコマンドを実現する機能は複数あったとは言え、Microsoft自身がUbuntuと手を組んでBashをサポートしてしまうとは驚きだった。…

Detailed Architecture of AMD's opteronを読み解く(1)

ちょっと勉強のためというか、この手の解説文をあまり読んだことが無かったので、昔先輩にお勧めされた記事を翻訳してみることにした。 chip-architect.comというページに載っている、アウトオブオーダ処理について解説された記事だ。非常に長い。 Chip Arch…

RISC-Vのbenchmarkパタンセットを動作させる

前回、RISC-Vのパタンセットを動作させるためにecallを変更したのだが、変更が間違っていた。mstatusの下位だけでなく、上位ビットもずらしてしまっていた。これでは動作モード以外に、MMUのモードも変わってしまう。 だからSV32が選択されていたのか。 msyk…

RISC-Vのbenchmarkパタンセットを動作させる(2)

引き続きRISC-VのISSをメンテナンスして、OSのポーティングと調整を行っているのだが、そういえばベンチマークセットの動作確認をやっている途中で忘れていた。 ISSの調整ついでに、失敗したパタンについて何が起きているのかを見ていこう。 msyksphinz.hate…

xv6を移植するときに書き換えるルーチンについて調査(5)

前回の続きで、xv6を移植するときのルーチンを修正していこう。現在は、ようやくほとんどすべてのソースコードがコンパイルできるようになっている。 さらに、usertests.cでコンパイルエラーが発生したが、これは何のことだかよくわからない。 usertests.c: …

xv6を移植するときに書き換えるルーチンについて調査(4)

xv6

引き続き、RISC-Vにxv6を移植するための情報を調査していこう。 github.com initcode.Sは一番最初のプロセスとして実行される。 引数を設定し、システムコールを呼び出す。 RISC-Vにて、システムコールを発生させるには以下の命令を使う。 ecallは、システム…

キャッシュコヒーレンシ理解のために資料を漁ったら昔のスライドが出てきたので公開する

ちょっと事情があって、マルチプロセッサのキャッシュコヒーレンシについて復習していたら、そういえばこれ研究室の輪講で発表したな。死ぬほど長い輪講資料作ったけどどこに行ったんだろうと思ってGoogle Drive探してたら見つかったので、せっかくだしディ…

xv6を移植するときに書き換えるルーチンについて調査(3)

xv6

まずは一折ビルドしていきながら、コンパイルエラーになったところを順番に直していくという作業だった。 trap.cでいくつかのエラーが出てくる。やはり、トラップフレームを書き換えたことによるものだ。 github.com x86の版では、例外の要因を確かめるため…

xv6を移植するときに書き換えるルーチンについて調査(2)

xv6

xv6はx86用に実装されているのだが、それを他のアーキテクチャに移植する場合に、何が必要かについて調査している。 最近は仕事も忙しくて、まったく調査できていなかったのだが、少し時間ができたので、続きをやっていこう。 msyksphinz.hatenablog.com cpu…

「ガベージコレクション 自動的メモリ管理を構成する理論と実装」を買った

これは本屋に行ったときに何も考えずに面白そうだから買った(笑) 結構難しそうだ。 ガベージコレクション作者: リチャード・ジョーンズ,アントニー・ホスキング,エリオット・モス出版社/メーカー: 翔泳社発売日: 2016/03/14メディア: Kindle版この商品を含む…

「ドキュメント作成システム構築ガイド」を購入(RedPenをカスタマイズしてみる)

前のブログでもちょっと書いたけど。 ドキュメント作成システム構築ガイド[GitHub、RedPen、Asciidoctor、CIによる モダンライティング]作者: 伊藤敬彦,吉村孝広出版社/メーカー: 技術評論社発売日: 2016/03/25メディア: Kindle版この商品を含むブログを見る…

RedHat Enterprise Linux 7.2 が開発者向けに無償公開されたので早速インストールしてみた

pc.watch.impress.co.jp RedHatより、RedHat Enterprise Linux 7.2が開発者向けに無償公開された。 RedHat Enterprise Linuxといえば開発者向けに推奨されているLinux OSであり、ハードウェア設計者にとってはEDAツールのインストール先として推奨されている…

Vivado Simulatorで波形デバッグする環境を構築する

僕は波形デバッグはあまり好きではなく、基本的に波形を水にログファイルだけでデバッグできるようにしておきたいのだが、ベーシックな部分を観測するためには最後には波形デバッグが必要だ。 そこで、Vivado Simulatorを使った時の波形デバッグの環境を構築…