ゲームボーイエミュレーター、ゲームボーイアドバンスエミュレーターに続いて、Rustでファミコンエミュレーター"Sabicom"とスーパーファミコンエミュレーター"Super Sabicom"を書きました。 名前にRustっぽさを出してみました。 前回作ったマルチエミュレーターMERUのコアとして実装したので、ステートセーブや巻き戻しなどの機能も使えます。MERUの対応コアはこれで4つになりました。 こちらからWindowsとLinuxのプリコンパイルバイナリがダウンロードできるようになっています。 他のプラットフォームおよびソースコードからコンパイルする場合は ファミコンとスーパーファミコンどちらも一通り本体の機能は実装してあるつもりです。スーパーファミコンは割と細かいところまでちゃんと動くようにしてあるはずなので、動かなかったり表示がおかしかったりするソフトがあればバグですので、ぜひご報
一通りちゃんと実装したので、大抵はちゃんと動いてくれるはずです。動かなかったり、画面がおかしかったり、音がおかしかったりしたらバグなので、ご報告いただけるとうれしいです。 エミュレーションコアが2つになったので、せっかくなのでエミュレーションコアのインターフェースを抽象化して、マルチエミュレーターにしました。 リリースページ からコンパイル済みバイナリをダウンロードできます。 マルチエミュレーター エミュレーターを作るうえで割と面倒でバカにならないのがフロントエンドUIの作成です。GUIアプリを作るのはそもそも結構大変で、ましてや昨今のアプリケーションはPCだけでなくスマホやWebといったタイプの異なる複数のプラットフォームで動かしたいというモチベーションがあります。特定プラットフォームにべったりで何となく動くように書けばいいやというのと比べると、取れる選択肢も限られてかなり面倒になってき
半導体企業のTachyumが、CPU・GPU・TPUの機能を単一のアーキテクチャに統合したチップ「Prodigy」を発表しました。ProdigyのCPUスペックは最大128コア、動作周波数は5.7GHz、16チャネルDDR5メモリ、TDPは950Wとなっており、テクノロジーメディアのWccftechは「非常識なスペック」と評しています。 Tachyum's Prodigy CPU Specs Unveiled: 5nm Universal Processors With Up To 128 Cores, 5.7 GHz Clocks, 16-Channel DDR5-7200 Memory Support & 950W TDP https://wccftech.com/tachyums-prodigy-cpu-specs-unveiled-5nm-universal-processors-
オープンソースで開発される命令セットアーキテクチャのRISC-Vは、半導体業界に大きな風穴を開ける新技術として期待されています。そのRISC-Vで設計されたCPUを搭載したポータブルコンピューターの「DevTerm R-01」が登場しました。 DevTerm Kit R-01 | ClockworkPi https://www.clockworkpi.com/product-page/devterm-kit-r01 The first RISC-V portable computer is now available https://lunduke.substack.com/p/the-first-risc-v-portable-computer 世界中のPCに使われているCPUのほとんどはIntelのx86という命令セットアーキテクチャ(ISA)、スマートフォンなどに使われているCPUや
"Locality is efficiency, Efficiency is power, Power is performance, Performance is King", Bill Dally マルチスレッディングとは? CPUとGPUのマルチスレッディングの違いをブログにまとめていたけど例によって誰も興味なさそう— arutema47 (@arutema47) 2021年8月16日 つぶやいたら読みたい方が多そうだったので完成させました。 マルチスレッディングとはメモリ遅延を隠蔽しスループットを上げるハードウェアのテクニックです。 ただCPUとGPUで使われ方がかなり異なるため、その違いについて考えてみる記事です。 (SIMDについて並列プログラミングの観点から触れるべきでしたが、時間無いマルチスレッディングに注目するため初版では省きました。) 本記事について 本記事はCPUとG
Arm入門勉強会とは、macOSがArmに移行したこの機にArmアーキテクチャでのプログラミングについて入門するソフトウェアエンジニアのための会です。今回主催の@nullpo_head 氏が、Armの仮想化支援機構について、その仕組みから深く説明します。前半は「現代のハードウェア仮想化支援機構」について。全2回。 ハードウェア仮想化支援とは何か 佐伯 学哉氏:入門セッション3つ目は『Armの仮想化支援機構』についての入門セッションです。どうぞよろしくお願いします。 本発表のスタートとゴールです。VMwareとかQemuとか使ったことあるけど仮想マシンの仕組みなんも知らんというところがまずスタートになっています。 1個目のゴールは、最近のVMのざっくりした仕組みとハードウェア仮想化支援とは何かということがわかること。そしてその話のあとに実際にArmの仮想化支援機構の概要を説明し、Armの仮想
アーキテクチャと実装混ざってるけど 命令dispが32bit届く immも32bit入ることが多い メモリが順序守る(何回も書くが、メモリ順序が緩いことによって得られたCPU時間より失なった人間時間のほうが絶対多いから) ファームウェアがBIOSとUEFIの二種類しかない (ボードごとにカーネルにディレクトリ作るのやめろARM) 周辺デバイスがPCIに統一されててキャッシュの問題が起こりづらい(もうdma_alloc_coherentの挙動調べるの飽きた) キャッシュがソフト的に見れば一階層 (L2の挙動が定義されてないARMとかいう無名CPU) 除算とFPUが付いてる ABIがWin除けば32bitと64bitとx32の3種類しかない。 PCIe がキャッシュスヌープ付けてフルスピード近く出る lock cmpxchg が遅くない *fence が遅くない こういう問題で別のアーキがx8
Apple M1についての面白い記事を見かけて、久しぶりにメモリモデル屋(?)の血が騒いだのでブログを書く。 note.com 強いメモリモデル 現代のCPUアーキテクチャでは、x86(64bit, 32bitどちらも)が「強いメモリモデル」を採用しており、それ以外のメジャーなCPUが「弱いメモリモデル」を採用している。この「強いメモリモデル」「弱いメモリモデル」について、まずおさらいしておこう。 以下のように、2つの変数a, bに対して異なるCPUコアが同時にアクセスしたとする。 int a = 0; int b = 0; CPU1: a = 1; b = 1; CPU2: int r1 = b; int r2 = a; (上記はC言語に似た疑似コードを用いているが、実際は機械語命令になっていると考えてほしい。つまり、CPU1は変数a, bの示すメモリアドレスに対するストア命令を実行して
各ボードの詳細はこちらをご参照下さい。 この他にも、スイッチとLEDがそれぞれ4個以上搭載されているFPGAボードなら、ほぼ確実に動くと思われます。 いろいろな方への紹介文 本書の主な想定読者は、電気や回路や CPU について何も知らない方です。 しかし回路に詳しい方々からも、「こんな考え方があるのか!」という驚きの声を多数いただいております。 筆者として、本当に嬉しい限りです。 様々なバックグラウンドの方に楽しんでいただくために、以下に10通りの紹介文をひねり出したので、興味のある項目に目を通してもらえると幸いです。 電気や回路を全然知らない方へ プログラマーの方へ 情報学科の学生さんへ 論理回路を教えておられる先生方へ FPGAに挫折した経験のある方へ ハードウェア記述言語に詳しい方へ アナログ回路に詳しい方へ 物理に詳しい方へ 数学に詳しい方へ 人間の欲望を重視する方へ 電気や回路を
巷ではIntel, AMD, ARMを巻き込んだCPUのバグ "Meltdown", "Spectre" が話題です。 これらの問題、内容を読み進めていくと、コンピュータアーキテクチャにおける重要な要素を多く含んでいることが分かって来ました。 つまり、このCPUのセキュリティ問題を読み解いていくと現代のマイクロプロセッサが持つ、性能向上のためのあくなき機能追加の一端が見えてくるのではないかと思い、Google, Intelの文献を読み解いてみることにしました。 が、私はセキュリティの専門家ではありませんし、過去にデスクトップPC向けのような大規模なCPU設計に参加したこともありません。 あくまでコンピュータアーキテクチャに比較的近い場所にいる人間として、この問題の本質はどこにあるのか、可能な限り読み解いていき、現代のマイクロプロセッサが持つ高性能かつ高機能な内部実装について解き明かしていき
要点となるであろう部分だけ日本語でまとめておく。Lee et al. (2010) 1. Introduction この論文の要点は以下の3つ。 過去に多数存在した、GPUは100倍から100倍もの性能を持つと主張する論文の内容を再検討した。検討において、CPUとGPU両方を最適化した。その結果、GPUは平均2.5倍の性能をCPU比で持つことがわかった。つまり、CPUとGPUは同じ土俵(ballpark)にあるものなのだ。 並列化(並行化、の方が良いのかな)の手段にkernel(ここではアプリケーション、プログラムといった意味らしい)の実効性能がどのように依存するかを、系統的に分類してまとめた。 CPUとGPUの性能の違いを分析し、アーキテクチャの中で、性能に影響を与える主要な部分を特定した。 2. The workload: throughput computing kernels 14
この記事は GPGPU Advent Calender の二日目の記事です。 二日目の内容がコレかよ!というみなさんのつっこみが本編です。以下の内容はオマケとなります。 http://pcl.intel-research.net/publications/isca319-lee.pdf 時は2010年…くーだ使えば100倍とか1000倍とか速くなるんでしょ?なんでCPUそんな遅いの?などと、世界中でボロクソに言われたIntelは、ついにブチ切れて、「お前らは全員間違ってる!俺がその間違いを正してやる!」という内容の論文をISCAに投稿するのだった… という事情だったのかどうかは知らないですが、内容としては、↓このグラフが全てを物語っていて、 「GPUだと100倍速いとか言うけど、あれはCPUのコードを最適化してないからで、CPUも最適化すれば、平均たったの2.5倍しか速くならない」、という
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く