FC2ブログ

スポンサーサイト

このエントリーのカテゴリ : スポンサー広告

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

CPUの謎―CPUの中で何が行われているか?

このエントリーのカテゴリ : 読書

CPUの謎―CPUの中で何が行われているか?CPUの謎―CPUの中で何が行われているか?
(2005/05)
坪山 博貴

商品詳細を見る


CPUの勉強がてら図書館で借りてみました。
2005年発行なので最新の情報はないですが、それまでの歴史が書かれています。
CPUの性能とは?どんな工夫をして性能を上げたのか、など説明されており、プログラミングにも活かせるんじゃないかとか考えました。

CPUとは
・MicroProcessor、MPUとも呼んでいたが、インテルがCPUという表記を利用したためCPUが一般的になっている
・CPU-(バス)-チップセット-コントローラ
・チップセット
 ノースブリッジ/メモリコントロールハブ…高速データ送受信が必要なメモリやビデオカード
 サウスブリッジ/IOコントローラハブ…比較的低速なデータ送受信となるディスク類やキーボード
x86…インテル社の8086をベースに発展してきたCPU

CPUの性能
・クロック、CPI(クロック当りの命令実行数)、IPC(CPUを2つに見せる)、マルチコアなどで高性能化
・かつてはCPUの性能=PCの性能だったが、ハードディスクへの書き込み性能やグラフィック(GPU)の性能など多岐に渡ってきた
・MIPS値(MillionInstructionsPerSecond)…1秒当たりの命令実行数。dhrystoneと呼ばれるプログラムを実行。でもキャッシュメモリにデータが読み込まれてしまうため、正確には測れない
・ビット幅が大きいと一度に計算できる桁数が大きく、扱えるアドレスも増える。


CPU性能の進化
・1981年にIBM PCが採用したのはインテルの16ビットCPU8088。8086の外部バスを8ビットに簡略化しただけ。
・1982年に80826がPC/ATに採用。MIPS値は8MHzで1.5MIPS。
・1985年に32ビットCPUの80386DX。16MHzで6MIPS。
・1989年に80486DX、33MHz動作で27MIPS。
・1993年にPentium、60MHzで100MIPS。
・1995年にPentiumPro、第6世代、高クロック化、200Mhzで400MIPS。
・1999年にPentiumⅢ、500MHzで1000MIPS。
・2000年にPentium4、第7世代、3.8GHz、10000MIPS超。

CPUのアーキテクチャ
Pentium4は高クロック動作で計算能力を高めるため、発熱や消費電力は大きい。
PentiumMはバッテリー駆動に配慮、クロックは高くなくても大容量キャッシュメモリを採用して効率化。
・マイクロアーキテクチャ
 ・マイクロプログラムアーキテクチャ(CISC)…命令体系が複雑、CPU内部でハードウェア回路を利用。
 ・ワイヤードロジックアーキテクチャ(RISC)…命令ごとに命令を実行するハードウェア回路を準備。シンプルな構造で高クロック動作。
・インストラクションアーキテクチャ…x86など

CPUの歴史
・8086/8088
 8080やZ-80向けに販売していたパッケージソフトを8086に移植できるように、8ビットとの互換性を重視。
 セグメントアドレッシング…アドレスをセグメントレジスタとオフセットレジスタに分けたが、8ビットのために最大64KBのメモリにしかアクセスできず、64KBの壁と呼ばれた。
・80286
 8086と同じく16ビットCPUだが、アドレスバス幅は24ビットに拡大。PC/AT互換機に採用されてシェアが伸びた。
 プロテクトモードで80286用のプログラムが16MBを扱えるようになった。仮想記憶が利用でき、最大1GBまでの論理的なメモリ管理が可能。
 プロテクトモードからリアルモードへの移行時にウォームリセットが必要なため互換性が失われた。
・80386
 IA-32、32ビットCPU、4GBメモリ扱える。64KBの壁を破った。
 仮想86モード、MS-DOS用アプリケーション。
・80486
 浮動小数点演算ユニットを省略。米国で数字の羅列が商標登録できなかったのでi486で登録。
 パイプラインの導入、キャッシュメモリの内蔵、浮動小数点ユニットの統合で高性能化。
 クロックダブラーで、高速なCPU内部の動作クロックと外部バスクロックを別にした。
・Pentium(80"5"86だから)
 ハーバードアーキテクチャ…キャッシュメモリをプログラム用とデータ用に分割。
 スーパースケーラ…パイプラインを2つ持ち、2命令の同時実行が可能となった。ただし、UパイプとVパイプ(簡単な命令のみ9
 レジスタリネーミング…データハザードではなく構造ハザードの命令を並行実施。
 分岐予測と投機実行…分岐命令の制御ハザードに対し、あらかじめ想定される命令を先にやっておく。
 MMX…レジスタを複数に分割し、複数データの計算を同時に実行可能。

・PentiumPro
 CISCのPentiumに対し、RISCプロセッサであるDECのAlpha21164、HPのPA-RISC、IBMのPowerPC、SunのUltraSPARCなど伸びていた。
 x86のままRISCの良いところを取り込む。
 内部RISC構造…命令群はCISC、実行ユニットはRISC。μopsと呼ぶCPUの内部命令に変換して実行される。
 スーパーパイプライン…Pentiumで5分割だったパイプラインを12分割。
 アウトオブオーダー…命令の順序を無視し、先に実行できる命令を実行してしまう。
 L2キャッシュメモリを内蔵。
 ただし、コストが高く、Windows95で広まった16ビット命令の実行が遅いため、遅いCPUと思われた。
・PentiumⅡ
 1996年にWindowsNT4.0が登場し、32ビット命令が高速に実行できるPentiumⅡに注目。
 L2キャッシュ麺の利を分離、1枚の基板上で実装し、専用バスで接続。
・PentiumⅢ
 プロセッサシリアルナンバーを導入するも、プライバシーの問題で進まず。
・PentiumⅣ
 クロック当りの実行可能な命令数(CPI)を高めるのではなく、クロック数を高めた。
 ネットバーストアーキテクチャ…パイプラインのステージ数は20。
 度レースキャッシュによるμOPSのキャッシュ。
 ハイパースレッディング…クロック数は限界にきたので、IPCを高める。スレッドが別であれば命令は同時実行しやすい。

Itanium
 2001年、エンタープライズ向けの64ビットCPU。
 安価で高性能だが、既存の64ビットCPUを凌ぐ優位性を持てなかったのでシェアは伸びなかった。
x86-64
 AMDがAthlon64を開発、32ビット対応のソフトも高速に実行可能なので市場に受け入れられた。
 インテルもx86-64を採用、2つの64ビットアーキテクチャを進めていくこととなった。

・マルチプロセッサ
 1つのシステムに複数のCPUを搭載。
 SMP…対象型マルチプロセッサ、どの命令でも分け隔てなく処理を行える。
 ASMP…非対称型マルチプロセッサ、それぞれのCPUが実行する処理を固定。GPUは一種のASMP。
 マルチスレッドプログラミングだと効率が良い。
・マルチコア
 1パッケージで複数のCPU(コア)を搭載。CPUの高クロック化に限界があるため、マルチコア化で性能向上。
スポンサーサイト

テーマ : 読んだ本。
ジャンル : 本・雑誌

コメントの投稿

非公開コメント

プロフィール

toronic

Author:toronic
IT関係で10年働いたのでそろそろ独立したいと考えているけどなかなか一歩が踏み出しきれないありきたりなプログラマ

カテゴリ
ブックマーク
最新記事
月別アーカイブ
検索フォーム
最新コメント
ブロとも申請フォーム

この人とブロともになる

メールフォーム

名前:
メール:
件名:
本文:

スポンサーリンク
リンク
一攫千金?
RSSリンクの表示
QRコード
QRコード
    助成金
    上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。