2016-04-01から1ヶ月間の記事一覧
GCC-6.1がリリースされた。今回のリリースの重要な変更点は、C++14がデフォルトになったことだ。これはいろいろ試してみたい。 まずは、自作ISSのC++実装が、最新のGCCでちゃんとコンパイルできるか確認できる必要があるな。 そのためには、まずは開発環境を…
前回の記事で、アウトオブオーダの考え方、リネームレジスタの考え方についてまとめた。 msyksphinz.hatenablog.com CPUを実装するにあたり、リネームレジスタが正しく実装できているかどうかを確認したい。 リネームレジスタが正しく動作しているかは、 新…
(出展: http://wisdomdesign.jp/blog/archives/2755) 昔からアルゴリズムに興味があって、いろいろ未知のアルゴリズムを調べるのが好きなのだが、最近興味を持ったのは、silver-searcherにも使われているBoyer-Moor-Horspoolというアルゴリズムだ。 silver-s…
Tesla P100について調査したとき、GPUの演算器は単精度と半精度で共有しており、半精度の時はSIMD形式で動作させることにより演算性能を向上させていることが分かった。 msyksphinz.hatenablog.com しかし冷静に考えてみると、これはどのように実現している…
僕はプライベートでVerilog設計をするとき、シミュレータとしてVeritakを使っている。 国産のVerilogシミュレータで、フリーのVerilogシミュレータに比べてかなり高速、またデバッグ環境が充実している。 大手EDAベンダが販売しているNC-VerilogやVCS、Quest…
趣味でCPUを作るのは楽しいもので、自作CPUを作成してベンチマーキングし、性能最適化していったり、高速化していくのは趣味の一つとして楽しめるものだと思う。 CPUを理解するのに、アウトオブオーダ処理、レジスタリネーミングについて理解するのは必須だ…
(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_…
msyksphinz.hatenablog.com 昨日の日記の続き。 引き続き、Tesla P100のハードウェア詳細について見て行く。 注意:GPU初心者が書いている文章のため、間違いが含まれている可能性があります。間違いがあれば、指摘いただければ嬉しいです。 Unified Memory …
(2016/04/25 一部誤字修正、コメント追加) msyksphinz.hatenablog.com 昨日の日記の続き。 次は、Tesla P100のハードウェア詳細について見て行く。 注意:GPU初心者が書いている文章のため、間違いが含まれている可能性があります。間違いがあれば、指摘いた…
nVIDIAがTesla P100というGPUを発表した。 GPUやハイパフォーマンスコンピューティングに興味がないわけではないのだが、普段あまり触れる機会がない。 しかし、なかなか避けては通れない世界ではあるし、初心者だという自覚があるのならばしっかり勉強しな…
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って並列処理は…
非常に荒削りだが、chip-architect.com の"Understanding the detailed Architecture of AMD's 64bit Core"の第1章にあたる、"The Integer Core"の翻訳を終了した。 オリジナルの文章はこちら。 Chip Architect: Detailed Architecture of AMD's Opteron 翻…
msyksphinz.hatenablog.com xv6を移植するときに書き換えるルーチンについて調査(5) の続き。 コンパイルはできるようになったのだが、imgファイルを確認すると、まだうまくいっていないところがある。 RISC-Vはリセットベクタが0x0200となっているのだが、i…
Computer Organization and Design(パタヘネ)といえは、有名なコンピュータアーキテクチャの入門書籍だが、基本的に命令セットがMIPSをベースにして説明されている。 しかし、今回MIPSではなく、ARMを前提としたパタヘネが出ていたので早速購入してみた。い…
Bash on Windowsのベータ版がWindows 10のInsider Previewの機能として公開された。 いままでCygwinやmsys2など、WindowsでLinuxのコマンドを実現する機能は複数あったとは言え、Microsoft自身がUbuntuと手を組んでBashをサポートしてしまうとは驚きだった。…
ちょっと勉強のためというか、この手の解説文をあまり読んだことが無かったので、昔先輩にお勧めされた記事を翻訳してみることにした。 chip-architect.comというページに載っている、アウトオブオーダ処理について解説された記事だ。非常に長い。 Chip Arch…
前回、RISC-Vのパタンセットを動作させるためにecallを変更したのだが、変更が間違っていた。mstatusの下位だけでなく、上位ビットもずらしてしまっていた。これでは動作モード以外に、MMUのモードも変わってしまう。 だからSV32が選択されていたのか。 msyk…
引き続きRISC-VのISSをメンテナンスして、OSのポーティングと調整を行っているのだが、そういえばベンチマークセットの動作確認をやっている途中で忘れていた。 ISSの調整ついでに、失敗したパタンについて何が起きているのかを見ていこう。 msyksphinz.hate…
前回の続きで、xv6を移植するときのルーチンを修正していこう。現在は、ようやくほとんどすべてのソースコードがコンパイルできるようになっている。 さらに、usertests.cでコンパイルエラーが発生したが、これは何のことだかよくわからない。 usertests.c: …
引き続き、RISC-Vにxv6を移植するための情報を調査していこう。 github.com initcode.Sは一番最初のプロセスとして実行される。 引数を設定し、システムコールを呼び出す。 RISC-Vにて、システムコールを発生させるには以下の命令を使う。 ecallは、システム…
ちょっと事情があって、マルチプロセッサのキャッシュコヒーレンシについて復習していたら、そういえばこれ研究室の輪講で発表したな。死ぬほど長い輪講資料作ったけどどこに行ったんだろうと思ってGoogle Drive探してたら見つかったので、せっかくだしディ…
まずは一折ビルドしていきながら、コンパイルエラーになったところを順番に直していくという作業だった。 trap.cでいくつかのエラーが出てくる。やはり、トラップフレームを書き換えたことによるものだ。 github.com x86の版では、例外の要因を確かめるため…
xv6はx86用に実装されているのだが、それを他のアーキテクチャに移植する場合に、何が必要かについて調査している。 最近は仕事も忙しくて、まったく調査できていなかったのだが、少し時間ができたので、続きをやっていこう。 msyksphinz.hatenablog.com cpu…
これは本屋に行ったときに何も考えずに面白そうだから買った(笑) 結構難しそうだ。 ガベージコレクション作者: リチャード・ジョーンズ,アントニー・ホスキング,エリオット・モス出版社/メーカー: 翔泳社発売日: 2016/03/14メディア: Kindle版この商品を含む…
前のブログでもちょっと書いたけど。 ドキュメント作成システム構築ガイド[GitHub、RedPen、Asciidoctor、CIによる モダンライティング]作者: 伊藤敬彦,吉村孝広出版社/メーカー: 技術評論社発売日: 2016/03/25メディア: Kindle版この商品を含むブログを見る…
pc.watch.impress.co.jp RedHatより、RedHat Enterprise Linux 7.2が開発者向けに無償公開された。 RedHat Enterprise Linuxといえば開発者向けに推奨されているLinux OSであり、ハードウェア設計者にとってはEDAツールのインストール先として推奨されている…
僕は波形デバッグはあまり好きではなく、基本的に波形を水にログファイルだけでデバッグできるようにしておきたいのだが、ベーシックな部分を観測するためには最後には波形デバッグが必要だ。 そこで、Vivado Simulatorを使った時の波形デバッグの環境を構築…