タグ

CPUに関するrin51のブックマーク (30)

  • ハードウェアを意識したプログラミングの基礎(後編)

    前編では,デバイス・ドライバを理解するために必要なエンディアンやI/Oアクセス,ハードウェアとソフトウェアの境界について説明した.後編では,アクセス時のアラインメントについて説明した後,実際のコードを示しながらLinuxデバイス・ドライバの例を紹介する.  (編集部) 1.アクセスは境界に沿って エンディアン,I/Oアクセス,ハードウェアの次に問題になるのが,アクセス時のアラインメントです.CPUによってはアラインメントが合っていないアクセスが起こるとエラーになったり,意図しないデータが読めたりします.最後に紹介していますが,実は,知らないと一番見つけづらいところかもしれません. まず,「アラインメントが合っていないアクセス」が,どういうものかを定義しましょう. ここでは,「アクセスしようとしているアドレス値をアクセス幅で割ったときに,余りが出るようなアクセス」を「アラインメントが合ってい

  • データ型のアラインメントとは何か,なぜ必要なのか?

    以前このサイトとブログに,何度かアラインメントに関する記事を書きました (サイト内関連ページ参照). そのせいか「アラインメント」で検索して来てくれる人が多いので, 過去の記事に加筆修正してこのページを新たに作成しました. 加筆した点は次のとおりです. アラインメントとメモリアクセス回数の関係をわかりやすくするため, (ほんの少し) 図を導入しました. 「データがアラインされていないとメモリアクセス回数が増える」 と言葉で説明しているサイトは多いのですが, 図で示しているところはまだ見たことありません. アラインされていないアドレスにデータを書き込む場合, 読み出しの場合以上にメモリアクセス回数がかかる可能性があることを追記しました. 以前は「複合データ型 (配列,構造体,共用体) のアラインメント」はほとんど自明のことだと思っていたので軽く流していましたが, 意外なことにこれを解説してい

  • ARM gcc バッドノウハウ集: パディング

    次のページ 前のページ 目次へ 5. パディング パディングとは,アラインメント条件を満たすために構造体に勝手に入っ てしまう「詰めもの」のことです. これもアラインメントと同様,RISC アーキテクチャのプロセッサでは一般的 な話題です. 5.1 例 パディング自体は x86 でも生じます. が,以下のプログラムは,x86 と ARM でパディングの挙動が異なる例です. #include <stdio.h> struct s0 { unsigned char a, b, c; }; struct s1 { char d; struct s0 e; }; main ( void ) { struct s1 s; void *s_a = (void *)&s, *d_a = (void *)&s.d, *e_a = (void *)&s.e; printf ( "d = %d\n", d_a

  • ARM gcc バッドノウハウ集: アラインメント

    次のページ 前のページ 目次へ 4. アラインメント まずは肩慣らし. アラインメントについては RISC アーキテクチャでは一般的な話で,ARM に限っ たことではありません. x86 以外の アーキテクチャでは,2バイト整数型や4バイト整数型の変数を 配置できるメモリアドレスに制限があります. 2バイト整数型は,偶数アドレスに 4バイト整数型は,4で割り切れるアドレスに 配置しなくてはいけません. 4.1 アラインメント条件を満たさないと アラインメント条件を満たさないメモリアクセスが発生した場合,ARM では例 外が発生します. が,ARM Linux 上ではこの例外をカーネルで捕捉し,「うまく処理する」よう になっています. ARM Linux では /proc/cpu/alignment で,この例外の捕捉状況を表 示したり,処理の変更を指示することができます. $ cat /p

  • IPMI経由でサーバ(Linux)のCPU温度やファン、電圧等の状態を確認する - 元RX-7乗りの適当な日々

    「家鯖(ML115)のメンテナンスというかリプレース」で、ML115G5のCPUを換装したのは良いけど、きちんど温度管理できているかが心配したので確認してみることにした。 CPU温度やファン、電圧の状況は、IPMI(Intelligent Platform Management Interface)と呼ばれるインターフェースを介すことで簡単に確認できます。(ML115はIPMIに対応している) IPMI(Intelligent Platform Management Interface)はサーバのCPU、バス、ファン、温度センサ、電圧、ファンなどの基コンポーネントの監視や遠隔地からの制御などを行うためのインターフェース仕様のことです。ハードウェア管理を行うために標準的なインターフェースを利用することで、そのインターフェースを搭載したサーバはベンダーの種類に関係なく共通の手法でハードウェア

    IPMI経由でサーバ(Linux)のCPU温度やファン、電圧等の状態を確認する - 元RX-7乗りの適当な日々
  • マルチコア時代のロードアベレージの見方 - naoyaのはてなダイアリー

    ちょっと煽り気味のタイトルですが、CPU がマルチコアになり 2個、4個と増えていく中 Linux の負荷の指針になるロードアベレージをどう読むべきか、という話です。気になったところを少し調べたのでそのまとめを。 http://d.hatena.ne.jp/naoya/20070222/1172116665 でも書いたとおり、Linux のロードアベレージは「ロードアベレージは過去1分、5分、15分の間の実行待ちプロセス数の平均数 = 実行したくても他のプロセスが実行中で実行できないプロセスが平均で何個ぐらい存在してるか」を示す値です。ボトルネックが CPU、メモリ、ディスク等々どこにあるかは関係なく、仕事の実行までにどれぐらい待たされているかを示す値なので、システムのスループットを計測する指標の入り口になる値です。 このロードアベレージですが、実装を見るとランキュー(待ち行列)に溜まった

    マルチコア時代のロードアベレージの見方 - naoyaのはてなダイアリー
  • よくわかるマルチコアCPU

    980 名前:Socket774[sage] 投稿日:2010/01/09(土) 20:13:12 ID:muXCYYUJ Pentium4 HT (´・ω・≡・ω・`) Phenom?X4 \(^o^)/\(^o^)/\(^o^)/\(^o^)/ Celeron Dual-Core ( ゜ω゜ )( ゜ω゜ ) Core2Duo ( ^ω^ )( ^ω^ ) Core2Quad ( ^ω^ )( ^ω^ )人( ^ω^ )( ^ω^ ) Core i3 ( ^ω^≡^ω^)( ^ω^≡^ω^)人(^o^ )┓ ┏┗ Core i5 6xx ⊂二( ^ω^≡^ω^)⊃⊂二( ^ω^≡^ω^)⊃人(^o^ )┓ ┏┗ Core i5 7xx ⊂二( ^ω^)⊃⊂二( ^ω^)⊃⊂二( ^ω^)⊃⊂二( ^ω^)⊃ Core i7 ⊂二( ^ω^≡^ω^)⊃⊂二( ^ω^≡^ω^)⊃ ⊂二(

    よくわかるマルチコアCPU
  • Core i5/i7

    Intelの「Core i5/i7」は、同社として初めてメモリ・コントローラを内蔵するなど、大幅なアーキテクチャ変更が行われている。今回はその特徴などをまとめた。 連載目次 Intelのx86命令セットを採用するクアッドコア・プロセッサのブランド名。 Coreマイクロアーキテクチャの後継で、後述のようにメモリ・コントローラを内蔵するなどの大幅な改良が加えられた「Nehalem(ネハレム)マイクロアーキテクチャ」を採用する。Core i7はハイエンド向け製品、Core i5はメインストリーム向け製品となっている。Core i7では、1つのプロセッサ・コアで2つのスレッドが実行できるハイパースレッディングをサポートしている点が、Core i5との大きな違いとなる。ちなみに、Nehalemマイクロアーキテクチャを採用したサーバ向け製品はIntel Xeon 5500番台が提供されている。 200

    Core i5/i7
  • 今までのCore i7とは似て非なる新CPU「Core i5」の性能は? (1/5)

    2009年9月8日に発表されたインテルのデスクトップ向けCPU「Core i5-750」(以下i5-750)は、新しいインテルの“Core i”ブランド戦略発表後の第1弾となるCPUだ。インテルは現在複数のブランドを展開しているが、以前発表されたように、今後は Core iシリーズに集約(あるいはリネーム)していくという。Core i5の登場により残るは「Core i3」だけとなったが、これも遠くない将来に発表される見込みだ。 i5-750と同時に発表されたのが「Core i7-860」(以下、i7-860)および「Core i7-870」(以下、i7-870)の2つだが、Core i7というネーミングから従来のCore i7-900シリーズとの互換性が連想されるが、残念ながら物理的な互換性はない。i5-750、i7-860、i7-870の3つはいずれも、新しいCPUパッケージ「LGA11

    今までのCore i7とは似て非なる新CPU「Core i5」の性能は? (1/5)
  • CPUコアの温度を取得する - Diary on wind(跡地)

    ~マエガキ~ 手元にAMDCPUが無いのでIntel製CPUのみを調べる対象にしています。 また、この記事を書く最中に内容を一度消してしまっているので、説明が適当でない部分も多々。 参考文書 ・Intel 64 and IA-32 Architectures Software Developer's Manuals 特に参考となる箇所 ・Volume 3A - 13.5.5 On Die Digital Thermal Sensors ・Volume 3B - Appendix B.1 Architectual MSRs CPU温度はMSRと呼ばれる、CPU内部の特殊なレジスタのアドレス 0x19C から読み取ることができるらしい。 MSRにどうやってアクセスするのか調べていたところ、WinRing0 を発見! というわけで、これを使ってMSRにアクセスしCPU温度を読み取るプログラムを

    rin51
    rin51 2010/02/01