CPU
コンピュータアーキテクチャの論文を読んでいたのだが、どうもよく知らない項目がある。 よく考えてみたらコンピュータアーキテクチャの最新トレンドも含め最近勉強量が不足していたので、ここらへんでもう一度復習しておきたい。 せっかくなので海外の大学…
コンピュータアーキテクチャの論文を読んでいたのだが、どうもよく知らない項目がある。 よく考えてみたらコンピュータアーキテクチャの最新トレンドも含め最近勉強量が不足していたので、ここらへんでもう一度復習しておきたい。 せっかくなので海外の大学…
コンピュータアーキテクチャの論文を読んでいたのだが、どうもよく知らない項目がある。 よく考えてみたらコンピュータアーキテクチャの最新トレンドも含め最近勉強量が不足していたので、ここらへんでもう一度復習しておきたい。 せっかくなので海外の大学…
コンピュータアーキテクチャの論文を読んでいたのだが、どうもよく知らない項目がある。 よく考えてみたらコンピュータアーキテクチャの最新トレンドも含め最近勉強量が不足していたので、ここらへんでもう一度復習しておきたい。 せっかくなので海外の大学…
コンピュータアーキテクチャの論文を読んでいたのだが、どうもよく知らない項目がある。 よく考えてみたらコンピュータアーキテクチャの最新トレンドも含め最近勉強量が不足していたので、ここらへんでもう一度復習しておきたい。 せっかくなので海外の大学…
コンピュータアーキテクチャの論文を読んでいたのだが、どうもよく知らない項目がある。 よく考えてみたらコンピュータアーキテクチャの最新トレンドも含め最近勉強量が不足していたので、ここらへんでもう一度復習しておきたい。 せっかくなので海外の大学…
コンピュータアーキテクチャの論文を読んでいたのだが、どうもよく知らない項目がある。 よく考えてみたらコンピュータアーキテクチャの最新トレンドも含め最近勉強量が不足していたので、ここらへんでもう一度復習しておきたい。 せっかくなので海外の大学…
コンピュータアーキテクチャの論文を読んでいたのだが、どうもよく知らない項目がある。 よく考えてみたらコンピュータアーキテクチャの最新トレンドも含め最近勉強量が不足していたので、ここらへんでもう一度復習しておきたい。 せっかくなので海外の大学…
コンピュータアーキテクチャの論文を読んでいたのだが、どうもよく知らない項目がある。 よく考えてみたらコンピュータアーキテクチャの最新トレンドも含め最近勉強量が不足していたので、ここらへんでもう一度復習しておきたい。 せっかくなので海外の大学…
コンピュータアーキテクチャの論文を読んでいたのだが、どうもよく知らない項目がある。 よく考えてみたらコンピュータアーキテクチャの最新トレンドも含め最近勉強量が不足していたので、ここらへんでもう一度復習しておきたい。 せっかくなので海外の大学…
Spectre 1.1/1.2の論文は早くから公開されており、Intel / Armも対策のためのWhitePaperを出している。 どいう問題なのか理解するために読んでみた。 Speculative Buffer Overflows: Attacks and Defenses https://arxiv.org/pdf/1807.03757.pdf この論文、…
TLBleedの論文がやっと発表された。The Registerで記事が出てから論文が出てくるまでずっと監視していたのだが、随分と時間がかかったね。 www.vusec.net このTLBleedの論文非常に長いので読むのがつかれるし、あまりセキュリティの知識とか無いので大変なの…
Hisa Ando氏のブログで知ったのだが、Spectre & Meltdownを防ぐマイクロアーキテクチャとしてSafeSpecという技術が発表されたので、これを読んでみることにした。 2.SpectreやMeltdownを防ぐSafeSpecマイクロアーキテクチャ 20180616 Boffins offer to mak…
巷ではIntel, AMD, ARMを巻き込んだCPUのバグ "Meltdown", "Spectre" が話題です。 これらの問題、内容を読み進めていくと、コンピュータアーキテクチャにおける重要な要素を多く含んでいることが分かって来ました。 つまり、このCPUのセキュリティ問題を読…
ちょっと話が逸れるが、今回は組み込みシステムにおけるVMAとLMAの考え方についてまとめておく。 例えばリンカスクリプトなどを組み上げるとき、「CPUから見たアドレス」と「外部からデータをRAMに配置するときにみる領域」が違うことがある。 例えば、こん…
自作CPUの性能解析およびリグレッションをしているのだが、アウトオブオーダ発行のところで少し怪しいところを見つけた。 命令発行スロットに格納された命令は、どのように発行されるのだろうか。 一般的に命令発行スロットに複数命令が格納される場合、ここ…
この記事は ハードウェア開発、CPUアーキテクチャ Advent Calendar 2016 - Qiita の8日目の記事です。 Advent-Calendarを埋めてくれるかた、今からでも募集中です!是非参加してください! 僕一人では、クオリティのある記事を続けられそうにありません。。…
前回の記事で、-O3付きでコンパイルできないという問題が残っていたのだが、それを何とか回避できないか試行してみた。 そもそも-O3とはどのようなオプションなのだろうか?調査してみると、-O2に対して以下の最適化オプションを追加したものが-O3らしい。 g…
だんだんネタも無くなってきたので、CoremarkをRISC-VのGCCでコンパイルするにあたり、本当に最適なオプションになっていたのかを調査してみようと思う。 以前までのCoremarkは、以下のオプションでコンパイルしていた。 PORT_CFLAGS = -O2 -g $(MACHINE_TAR…
リザベーションステーションを実装していると、連続して同じレジスタを使うような命令が連続する場合、通常の実装ではどうしてもストールが1サイクル入ってしまう問題があった。 上記のような演算器の実装をしていると、どうしても演算器の結果の直後にFFが…
自作RISC-Vプロセッサの性能向上対策その4。分岐予測アルゴリズムを、4ステートの分岐予測方式に切り替える。 これまでは、単純な2ステートの分岐予測アルゴリズムを利用していた。 当該命令で分岐すると、次に同じ命令では分岐と予測する 当該命令で分岐し…
自作RISC-Vプロセッサの性能向上対策その3。 ロード命令のレイテンシは、プロセッサの性能に重大な影響を与えることは既知の通りだ。 プロセッサのLoad-Useの性能を向上させるために、ロード命令のレイテンシを1つ短縮しよう。 もともとこれはロード処理の直…
自作RISC-Vプロセッサの性能解析をしているのだが、パイプライントレースを解析していてまず気になったのは、分岐予測の結果が悪いことだ。 分岐予測では、即値による分岐、PC相対分岐をターゲットにしており、単純な分岐ではあるがそれなりにヒットするはず…
自作プロセッサにおいて、性能面でどうしても納得出来ないところがあり、調査していた。 (Cm13,53)[PC=000017a8] R15<=00008184 : LW r15,0x004,r11 (46) 909 (Cm14,--)[PC=000017ac] : SH r13,0x002,r15 910 (Cm18,31)[PC=000017bc] R14<=00000003 : ANDI r…
L1データキャッシュは、L1命令キャッシュと違って書き込みにも対応する必要がある。もちろん、LSUもReadとWriteを同様に対応しなければならないのだが、いくつかの問題にぶち当たった。 一般的なLSUの構成 一般的なLSUの構成は、Hisa Ando氏の本にあるように…
前回までの実装で分岐予測の機構までは実装できたが、L1データキャッシュの実装がまだできていない。 L1命令キャッシュの実装は完了しているのだが、L1データキャッシュは、さらに以下の実装が必要だろう。 データ書き込み処理 データ書き込み時の、キャッシ…
前回までで、分岐予測の実装についておおよそ解説した。分岐予測は、 予測を早いステージで実行する。複数命令を同時に実行する場合は、どのウェイを有効にするかよく考えること 予測結果は分岐ユニットで判別する。無条件分岐命令でも、レジスタ相対ジャン…
前回の続き。分岐予測を実行するところまで書いたが、今度は分岐が当たったかどうかを調査しなければならない。 msyksphinz.hatenablog.com 分岐予測の成功条件、分岐予測の更新条件 分岐予測に成功した、というのは何だろうか? 当該命令が「予測した」命令…
2016/11/09 図に誤りあり。一部差し替えました。 CPUにおける分岐予測といえば、複数命令を同時発行させる現代のCPUにおいて不可欠な技術であり、投機実行の技術を支える重要な高速化技法であるが、だいたいのの解説書の場合、以下のような記述で説明がなさ…
RISC-V BOOMプロセッサの試行をしていると、パイプライントレースの出力方法としてgem5というものを利用していた。 github.com gem5というのは何なんだろう?調査してみる。 The gem5 Simulator: A modular platform for computer-system architecture resea…