タグ

cpuに関するtamurakiのブックマーク (6)

  • 「プログラマーのための CPU 入門 ― CPUは如何にしてソフトウェアを高速に実行するか」を読んだ - おしぼりの日常

    年明けの暇な時間を利用して読んでみました。 書籍のリンク 技術書としての感想 良かった点 悪かった点 注意点 総評 技術書としての感想 良かった点 とにかく文章が分かりやすい 色々な用語の使い方に違和感がない 言葉にすると簡単ですが、当に分かりやすかったです. 具体例が豊富 図が豊富 コード例が豊富 実験例が豊富 まず、「〇〇 な場合に命令の処理が詰まって遅くなります」といった説明の後に、「では、具体的にこういったケースを考えてみましょう」という具体例を持ってくる展開が多く、とても親切だと感じました.また、このような具体例の説明のときにほぼ必ず図が用いられています.特に全体を通して頻繁に出てくる命令流の図は非常に分かりやすかったです.また、コード例とそれを用いた実験も豊富でした.具体的には、キャシュの章では実際にキャッシュミスを意図的に起こすコード・キャッシュヒットを意図的に起こすコード

    「プログラマーのための CPU 入門 ― CPUは如何にしてソフトウェアを高速に実行するか」を読んだ - おしぼりの日常
  • x86-64機械語入門

    この記事はx86-64の機械語を書けるようになるためのガイドとなることを目指します。読者はアセンブリー言語について既にある程度知っていることを想定します。 情報源 x86-64の機械語のオフィシャルなガイドはIntelのSoftware Developer ManualまたはAMDAMD64 Architecture Programmer's Manualです。 Intel SDM: Intel® 64 and IA-32 Architectures Software Developer Manuals AMD64 Architecture Programmer's Manual, Volumes 1-5 このほか、Cから呼び出される関数を定義したり、Cの関数を呼び出すためには、呼び出し規約の知識も必要です。使用される呼び出し規約はOSに依存し、Unix系では主にSystem V ABI

    x86-64機械語入門
  • シェルってなにしてるの

    はじめに 先日シェルについてのオンライン勉強会に参加しました。 スライドも非常にわかりやすく、動画もアップされているので、ぜひ見てみて下さい。 何度勉強してもついつい忘れてしますシェルについて、忘れないうちにアウトプットしておきたいと思います。 私の解釈が混ざっているので、詳しく知りたい方は上のURLへどうぞ 前提 記事内で実行しているコマンドは全てawsのEC2(Amazon Linux2023)のbashで実行したものです。 シェルってなあに みなさん「シェル」使ってますか? 使ってますよね? sh, bash, zsh, csh,etc... いろんなシェルがありますね。 この「シェル」ってなんでしょうか? シェルはユーザーが命令したことをカーネルに伝えてくれるやつ。です。 でも面倒じゃないですか? なぜユーザーの命令がそのままカーネルではなく、わざわざシェルを通す必要があるのでしょ

    シェルってなにしてるの
  • 実践的低レイヤプログラミング

    はじめに 学校で習わないが(習う学校もある)、現実に必要になるプログラミング技術に、低レイヤプログラミングなどと呼ばれるものがある 厳密な定義は聞いたことがないし、おそらく存在しないとは思うが、大体のみんなの共通認識として、 「高級プログラミング言語を使わないプログラムを書き、OSで抽象化されないデバイスの機能を使う」といったような認識があると思う。 筆者の経験から言わせてもらうならば、低レイヤプログラミングに関する知識は、プログラミングにおいてあらゆる場面で、常に、少しずつ役立てられる知識だと言えると思う。 普段はRubyPHPなどを書いてる人であったとしても、メモリが足りなくなった場合や、デバッガを使っている場合、性能が足りなくなった場合など、 厳しい環境におかれた時に低レイヤプログラミングに関する知識が必ず役に立つ場面が来ると信じている。 また、役に立つかどうかは置いておいても、「

  • Linux Insides : カーネル起動プロセス part1 | POSTD

    ブートローダからカーネルまで これまでの私の ブログ投稿 を読まれた方はご存じかと思いますが、しばらく前から低水準言語を使うようになりました。Linux用x8664アセンブリ言語プログラミングについても書いています。また、同時にLinuxのソースコードにも触れるようになりました。下層がどのように機能しているのか、コンピュータでプログラムがどのように実行されるのか、どのようにメモリに配置されるのか、カーネルがどのように処理や記憶をするのか、下層でネットワークスタックがどのように動くのかなどなど、多くのことを理解しようと意欲が湧いています。これをきっかけに、 **x8664** 版Linuxカーネルについてシリーズを書いてみようと思いました。 私はプロのカーネルプログラマではないことと、仕事でもカーネルのコードを書いていないことをご了承ください。個人的な趣味です。私は下層で何が起きているのかと

    Linux Insides : カーネル起動プロセス part1 | POSTD
  • 現代のプロセッサと並列実行 (1/3)- @IT

    第2回 現代のプロセッサと並列実行 株式会社フィックスターズ 中村 孝史 2009/8/24 CPUの周波数の高速化競争が頭打ちになり、1コアにおける処理能力は限界となった。CPUの進化がマルチコア化に向かった結果、並列コンピューティングの門戸が開かれた(編集部) プロセッサのハードウェアは、並列プログラムとは切っても切れない関係にあります。 第1回「並列処理を体感してみよう」で説明したとおり、並列プログラムが流行する背景には、直列プログラムの高速化の限界があります。この限界は、並列化を引き起こしたというだけでなく、これまでの汎用プロセッサではあまり見られないメモリアクセスの方法や、命令実行の方法を採用したプロセッサの登場を引き起こしました。 かつてプログラムの最適化というものは、命令実行に必要なクロック数や、命令数、レジスタ数を考慮したプログラムを書くという意味でした。現代ではこれらの最

  • 1