タグ

プログラマとCPUに関するslay-tのブックマーク (4)

  • 『プログラマーのためのCPU入門 ― CPUは如何にしてソフトウェアを高速に実行するか』 発売のお知らせ

    ご来店いただきありがとうございます。新刊『プログラマーのためのCPU入門 ― CPUは如何にしてソフトウェアを高速に実行するのか』発売開始のお知らせです。 ほぼすべてのソフトウェア開発者がお世話になるコンピューターの最重要パーツ、CPU。「演算をする」というざっくりした役割は知っているし、もう少し踏み込んでレジスタやアセンブリ命令、あるいはさらに踏み込んで、NAND/OR/NOT回路による演算装置といった原理を勉強したことがあるプログラマーの方も少なくないと思います。 しかし、現代のソフトウェアにおいてCPUがもたらす大きな価値は、その原理のみならず、むしろその尋常ならざる高速さにこそあるといっても過言ではないでしょう。 CPUの性能は、半導体技術の進化やハードウェア構成の妙といった物理的な要因のみによって決まるわけではありません。その裏には、パイプライン化やスーパースカラ化、さらには分岐

    『プログラマーのためのCPU入門 ― CPUは如何にしてソフトウェアを高速に実行するか』 発売のお知らせ
  • 「コンピュータシステムの理論と実装」をRustで。 - コンポツさん

    良いがある コンピュータシステムの理論と実装という良いがある。 コンピュータシステムの理論と実装 ―モダンなコンピュータの作り方 作者: Noam Nisan,Shimon Schocken,斎藤康毅出版社/メーカー: オライリージャパン発売日: 2015/03/25メディア: 単行(ソフトカバー)この商品を含むブログ (4件) を見る nand と flip-flap だけが最初に与えられた素子として、それをもとに加算器やメモリを組み立ててコンピューターを組み立てる。 そして、そのコンピューター上で動くテトリスというコンピュータゲームを開発するというものだ。(実は最後はテトリスではないが) 書の前書き曰く、ハードウェア、アーキテクチャ、オペレーティングシステム、プログラミング言語、コンパイラ、データ構造とアルゴリズム、ソフトウェアエンジニアリングという、コンピュータサイエンスの基

    「コンピュータシステムの理論と実装」をRustで。 - コンポツさん
  • 非同期と並列 / morrita - Message Passing

    karino2 が 並列プログラムから見たFuture というビデオを作って公開していたので、引っ越しの荷造りをしながら眺めた。 長いのでここにざっくりとした主張をまとめると: Future/Promise (およびその後釜の async/await) は非同期プログラミングで callback hell にならない発明という見方をされているが、 そもそもなぜ callback hell が必要だったかの時代背景が十分に理解されていない。 背景の一つはブラウザ JavaScript のプログラミングモデルにシングルスレッド・ノンブロッキング(イベントループ)という制限があったから。 これは(特にフロントエンド開発者の間では)よく理解されている。 もう一つの視点は SEDA みたいなマルチスレッド・ノンブロッキング環境の必要性で、 こっちはいまいち広く理解されていないように思える。 結果とし

    非同期と並列 / morrita - Message Passing
  • プログラマーが知っておくべき「PC内部の通信速度」

    PCは計算を担当するCPUや一時的なデータ保存のためのメモリ、HDDやSSDなどの長期保存のためのストレージなどが相互にデータをやり取りしながら動作しています。「Latency Numbers Every Programmer Should Know」というサイトにPC内部のそれぞれの通信速度がまとまっています。 Numbers Every Programmer Should Know By Year https://people.eecs.berkeley.edu/~rcs/research/interactive_latency.html 以下のように色分けされたブロック(■)の数でそれぞれの速度が表されています。 PC内部で超高速な通信を行っているのがCPUとL1・L2などのキャッシュです。これらのキャッシュはCPUとメモリの速度差を埋めるためにCPUに搭載されています。詳細な役割は

    プログラマーが知っておくべき「PC内部の通信速度」
  • 1