-
ブックマークしまっしょい
-
[ネタ蔵のネタ]最新記事
調子に乗ってサーバを借りる 2009/02/06 23:21
投稿者:netazo
コメント数:2コメント
photo credit: mjmonty
Ryosukeくんと一緒に借りている仕事用のサーバがあるのですが、そのアカウント宛に毎週キャンペーンメールが送られてきます。
そこのホスティング会社はアメリカの会社でして、日本のホスティング会社よりも安いものの、やっぱりそんなに気軽に借りれないくらいの値段はするわけです。
ま...
(続きを読む)
CPU
ブログからのネタの種
はてブ注目エントリーからのネタの種
- No.14972 よくわかるマルチコア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 ( ^ω^ )(...
1970/01/01 00:00:00 [] - 【Apple社とGoogle社の与える業界へのインパクト(その5)】「Androidに踊らされると必ず失敗する」 - 産業動向 - Tech-On!
- 「Android」についても私なりの考えを述べておきます。Androidの魅力は,米Microsoft Corp.のOSと違ってライセンス料が無料であることです。また,従来のLinuxディストリビューションとは異なり,Linuxの上にフレームワークが用意されているため,開発コストが下がることも期待できます。本当に下がるかどうかは分かりませんが。機器開発に対する要求は,今までよりも増えています。グラ...
1970/01/01 00:00:00 [] - Macのスリープ状態をリモート端末から解除する方法 - builder by ZDNet Japan
- LANに接続されているスリープ状態のMacを、他のコンピュータからスリープ解除するためのシンプルなスクリプトを紹介する。本記事では、LANに接続されているスリープ状態のMacを、他のコンピュータからスリープ解除するためのシンプルなスクリプトを紹介する。以下が、そのスクリプトの入手および設定の方法である。家庭やオフィスにおけるコンピュータは、その価格低下に伴い、さまざまな役割を担うようになってきてい...
1970/01/01 00:00:00 [] - 第11回 2進数と10進数のビミョーな関係 - プログラミングの謎を解明する:ITpro
- 原始,人間は指を折って数を数えた。デジタルの語源であるdigitは「指」を意味する。11以上の数は,ほかの人の手を借りて数えた。要するに桁上がりだ。しかし,コンピュータは人間とは違って2進数で演算処理を行う。そんな「機械と人の数の数え方」について調査した。2進数だって人間の都合でできている2進数とは「0または1のどちらかの値しか持たない,数の数え方」だ。コンピュータの処理がこの2進数を基本にしてい...
1970/01/01 00:00:00 [] - Thinkpad T410を購入 - Future Insight
- 今までデスクトップでプログラミングを行ってきたが、ちょっとノートパソコンでプログラミングできる環境も欲しいなーと思い、大画面でスペックの高いノートパソコンを物色していました。最初はCore i7を搭載したThinkpad X201sを買おうかと思っていたのですが、ちょっと考えてみると、今の生活でノートパソコンを持ち運ぶことはほとんどないし、家で作業するなら解像度だけじゃなく、画面サイズ自体も大きい...
1970/01/01 00:00:00 [] - 4Gamer.net ― [GDC 2010]最新版では上半身/下半身に別々の設定が施せるように。“自然なアクション”を実現するNaturalMotionのゲームエンジン「morpheme 2.3」
- [GDC 2010]最新版では上半身/下半身に別々の設定が施せるように。“自然なアクション”を実現するNaturalMotionのゲームエンジン「morpheme 2.3」ライター:本間 文morpheme 2.3の特徴を紹介する,NaturalMotionのSimon Mack氏(CTO)NaturalMotionはGDC 2010において,同社の最新ゲームエンジン「morpheme 2.3」の...
1970/01/01 00:00:00 [] - 【AppleとGoogleの与える業界へのインパクト(その4)】「Googleは業界内に意図的に競争を引き起こしている」 - 産業動向 - Tech-On!
- 次に米Google Inc.の話をします。Google社は結構,悩んでいると思います。Google社は既にインターネット業界では巨人です。国によって違いますが,検索のマーケット・シェアはだいたい7〜8割,インターネット広告でもかなりのシェアを持っています。とすれば,ここからGoogle社が利益を増やして株価を上げようとしたら,何をすればいいでしょうか。Google社の経営陣の答えは,たった一つだと...
1970/01/01 00:00:00 [] - 約4万円で買えちゃう置きっぱなしノートPC「Lenovo G550」 :教えて君.net
- いまノートパソコンは、持ち歩いて使う「モバイル用途」と、部屋に置きっ放しで使う「据え置き用途」に二分されている。低価格で話題となったネットブックは主に「モバイル用途」向けの製品が中心だったが、「Lenovo G550」はネットブック並みの低価格ながら「据え置き用」として使えるノートパソコンだ。1日に1時間程度しかパソコンを使わないライトユーザーは、デスクトップPCよりもコンパクトなノートPCを部屋...
1970/01/01 00:00:00 [] - 【やじうまPC Watch】ユニットコム、美少女イラスト天板のAtomノート「クドリャフカPC」
- 【やじうまPC Watch】ユニットコム、美少女イラスト天板のAtomノート「クドリャフカPC」クドリャフカPC3月21日 発売価格:69,800円株式会社ユニットコムは、美少女のイラストを天板にプリントしたノートPC「クドリャフカPC」を3月21日に発売する。価格は69,800円。Keyが制作したアドベンチャーゲーム、「リトルバスターズ!」に登場する「能美クドリャフカ」を天板にプリントしたノート...
1970/01/01 00:00:00 [] - 古田雄介のアキバPickUp!:「ななみファンはもう買っちゃったと思いますけど」――Windows 7の底上げが始まる (1/4) - ITmedia +D PC USER
- ニュース古田雄介のアキバPickUp!:「ななみファンはもう買っちゃったと思いますけど」――Windows 7の底上げが始まる (1/4)窓辺ななみの特典をオマケしたDSP版Windows 7 Ultimateが登場。実売価格もUSB 2.0カードとセットで2万3000円前後と買いやすくなってはいるが……。「64ビット版Professionalの牙城を崩せるか見物」――現在のWindows 7事情...
1970/01/01 00:00:00 [] - 「自由にカスタマイズ」の落とし穴 (ユーザビリティ実践メモ)
- 「一人一人のニーズに合わせてカスタマイズできる」ことを売りにした製品やサービスは、近年よく目にします。 例えば、 ・個々の保障内容を自由に組み合わせられる自動車保険 ・各パーツのスペックやオプションを自由に選んで注文できるパソコン などはその代表的な例といえるでしょう。そのため、何のヒントもない状態で「何でも自由にカスタマイズできますよ」と言われても、ユーザは却って戸惑ってしまいます。 そのため、...
1970/01/01 00:00:00 [] - AtomってどんなCPU?:トラブル解決お答えします
- 低価格ミニノートなどで使われている「Atom」というCPUはどんなものでしょうか。Core 2 DuoやCeleronと何がどう違うのですか。Atomは、米インテルが開発した小型機器向けの新しいCPUです。同社のパソコン向けCPUと互換性を確保しながら、消費電力を大幅に抑えたという特徴があります。これまでパソコン向けCPUを搭載できなかった携帯機器にも同社製CPUを載せられるようにし、CPUの出荷...
1970/01/01 00:00:00 [] - 4Gamer.net ― [GDC 2010]Netbookでゲーム? Atom搭載PCは携帯型ゲーム機の夢を見るか
- [GDC 2010]Netbookでゲーム? Atom搭載PCは携帯型ゲーム機の夢を見るか編集部:aueki講演を行ったIntelのOmar Rodriguez氏とOrion Granatir氏x86互換の低消費電力CPU「Atom」を搭載したNetbook。低価格なことから,売れ行きは非常に好調である。しかし,おそらく4Gamer読者であれば,Netbookでゲームをやろうとして絶望した人も少な...
1970/01/01 00:00:00 [] - 窓の杜 - 【週末ゲーム】第407回:本格3Dテニスゲーム「マルテニス」
- 【第407回】本格3Dテニスゲーム「マルテニス」練習や試合を重ねてテニス選手を育て、ストーリーモードを勝ち抜こう(10/03/12)『週末ゲーム』では、インターネット上でたくさん公開されているゲームのなかから、選び抜いた良作を毎週紹介していく。今回は、多彩なショットや選手育成を楽しめるテニスゲーム「マルテニス」を紹介しよう。簡単な操作で本格的なプレイを楽しめるテニスゲーム“溜め動作”中にボールがラ...
1970/01/01 00:00:00 [] - 【PC Watch】 Khronos、テッセレーションなどに対応するOpenGL 4.0
- Khronos、テッセレーションなどに対応するOpenGL 4.03月11日(米国時間)発表Khronos Groupは米国時間の11日、同グループが策定する2D/3Dグラフィックの最新APIである「OpenGL 4.0」を発表した。無償で公開され、仕様は同グループのサイトからダウンロードできる。現行のOpenGL 3.2の上位版となる規格。互換性を維持しつつ、新たにGPUによるジオメトリおよびテ...
1970/01/01 00:00:00 [] - Scala Pages (SCP) Web Framework | thomasknierim.com
- Scala Pages is a lightweight web framework for developing web applications in the Scala language.Current version: 0.1.1 (first release) Download Manual (PDF)What are Scala Pages?Scala Pages (SCP) is a...
1970/01/01 00:00:00 [] - LHCでのブラックホール生成を恐れて運用禁止を訴えた女性、敗訴 - スラッシュドット・ジャパン
- 10/03/12/0247217storyLHCでのブラックホール生成を恐れて運用禁止を訴えた女性、敗訴hylomによる2010年03月12日 13時03分の掲載最近の日本だったらヘタすると運用禁止が認められそうだからこわい部門より。guicho2.71828 曰く、以前、「LHCの運用によりブラックホールが発生する可能性がある」としてLHCの運用禁止を求めて訴訟が行われていましたが、このたびこの...
1970/01/01 00:00:00 [] - インテル、デスクトップ向けの6コアCPUを発表 - スラッシュドット・ジャパン
- 10/03/12/0239238storyインテル、デスクトップ向けの6コアCPUを発表hylomによる2010年03月12日 12時27分の掲載大は小をかねる部門より。Anonymous Coward 曰く、Computerworld.jpによると、インテルがデスクトップ用6コアCPU「Core i7-980X Extreme Edition」を発表したそうだ。ついにデスクトップ向けCPUに6つ...
1970/01/01 00:00:00 [] - クロノス、「OpenGL 4.0」を発表 - builder by ZDNet Japan
- 「OpenGL」を推進する団体クロノス・グループは、高度なグラフィックスをプログラマーが容易に処理できるようにすることを目的とした、同インターフェースの新しいバージョンを発表した。「OpenGL」を推進する団体Khronos Groupは、高度なグラフィックスをプログラマーが容易に処理できるようにすることを目的とした、同インターフェースの新しいバージョンを発表した。「OpenGL 4.0」には、他...
1970/01/01 00:00:00 [] - クロノス、「OpenGL 4.0」を発表:ニュース - CNET Japan
- 「OpenGL」を推進する団体Khronos Groupは、高度なグラフィックスをプログラマーが容易に処理できるようにすることを目的とした、同インターフェースの新しいバージョンを発表した。「OpenGL 4.0」には、他のコンピューティング処理やテセレーションにGPUを使用するためのサポートがさらに追加されている。テセレーションとは、よりきめ細かな画像を実現するためにグラフィックスオブジェクト上の...
1970/01/01 00:00:00 []
Wikipediaサマリーなネタの種
CPU(シーピーユー、Central Processing Unit - セントラルプロセッシングユニット)は、プログラムによって様々な数値計算や情報処理、機器制御などを行うコンピュータにおける中心的な回路である。中央処理装置(ちゅうおうしょりそうち)あるいは中央演算処理装置(ちゅうおうえんざんしょりそうち)とも言われる。
概要
CPUは記憶装置上にあるプログラムと呼ぶ命令列を順に読み込み、解釈し、その結果に従ってデータの移動や加工を行う。CPU外部にはバスやインタフェースを介して表示装置や通信装置、補助記憶装置などの周辺機器や主記憶装置が接続され、データやプログラムのやりとりを行う。このようなCPUを用いたプログラムによるコンピュータの逐次動作をプログラム内蔵方式と言い、ほとんどのコンピュータアーキテクチャの基本原理となっている。
現在では概して1チップのLSIに集積されており、MPU(Micro Processing Unit)またはマイクロプロセッサと呼ぶこともある。また、算術演算機能を強化し信号処理に特化したDSPや、DA/AD,GPIO,シリアルコントローラ,タイマー,DMAC,メモリなどの周辺機器を搭載し組込み機器制御を目的としたマイクロコントローラ(マイコン)などの展開種も登場している。
各種専用回路と比べ実行速度は遅いが、比較的簡易な構造でもプログラム次第で多様な処理を行えることから、非常に多岐にわたる用途に用いることが可能である。また、プログラムの命令には条件分岐などのプログラム制御命令も含まれるため、自律動作なども可能となる。以上のような特徴を持つため、CPU はおよそあらゆるシステムに内蔵され、現代の産業や生活の屋台骨を支える存在にまで普及している。現在最も普及しているCPUアーキテクチャの一つにARMアーキテクチャが挙げられる。ARMアーキテクチャは、2006年第2四半期までの一年間だけで20億2,600万以上の製品に搭載される[1]など、家電製品から工業製品、携帯機器などに至るまで様々なシステムに組み込まれ、機器制御を司っている。また、PCなど現在の汎用コンピュータ製品における殆どのメインCPUにインテル社のx86シリーズやAMD社等のチップが用いられており、特にインテルのx86系CPU出荷数は1978年6月9日の8086リリースから2003年までの25年で10億個を越えた[2]。
CPU(Central Processing Unit)という用語は、特定のクラスのプログラム可能論理マシンを表す用語である。この定義は "CPU" という用語が広く使われるようになる前の初期のコンピュータにも適用可能である。この用語が一般に使われるようになったのは1960年代になってからだが、CPUの構造は1949年に世界最初のストアードプログラム方式コンピュータであるEDSACが発表された時点で現在とほぼ同じ仕組みが完成しており、CPUの発達史はスケールアップと高速化が中心となっている。
[編集] 構造と動作
[編集] 構造
CPUは演算をするALU、データを一時記憶するレジスタ、メモリーや周辺機器との入出力を行うバスインターフェース、CPU全体を制御する制御部分などで構成される。その他 浮動小数点演算を行うFPU(浮動小数点演算ユニット)、レジスタより多くの情報を一時記憶するキャッシュメモリ、DMAコントローラ、タイマー、シリアルインターフェースなどの機能をCPUと同一IC内にもつものもある。また、メモリから読み込んだ命令語を内部的なオペレーションに置き換える変換部を持つものもある。
CPUを構成する各部の動作はクロック信号によって規則正しいタイミングで統制されている。同じCPUであればクロック周波数が高い方が一定時間に多くの処理を行え、高速に動作する。1クロックで行える処理の内容はCPUの設計により異なり、1つの機械語命令を実行するのに複数クロックかかるものから1クロックで複数の命令の実行を同時に行えるものまである。クロック周波数1GHzのCPUであれば、1秒間に10億回の基本動作を行う事ができる。
多くのCPUでは、大まかに言って制御部が命令の解釈とプログラムの流れの制御を行い、演算部が実行を行うので、同時に実行されるのは1命令だけであるが、非ノイマン型のCPUや画像処理など高速性が要求される用途向けのCPUでは、同時に複数の命令を実行できるように複数の実行部を同一IC内に持っているものがある。
[編集] 動作
CPUの基本的な動作は、その実装に関わらずプログラムと呼ばれる命令列を順番に実行することである。プログラムは数値列として何らかのメモリに格納されている。CPUでは、フェッチ、デコード、実行という3つのステップがほぼ必ず存在する。
最初の段階であるフェッチとは、実行すべき命令(ある数値または数値の並び)をプログラムの置かれたメモリから取り出すことである。メモリ上の実行すべき命令の位置はプログラムカウンタで指定される。プログラムカウンタはCPUが今現在見ているプログラム上の位置を示しているとも言える。命令フェッチに使用されると、プログラムカウンタはフェッチしたぶんだけ増加させられる。
CPUがメモリからフェッチした命令によってCPUの次にすべきことが決定される。デコードでは、命令をCPUにとって意味のある形式に分割する。命令を表す数値をどう分割するかは、予めそのCPUの命令セットで決定される。命令の一部の数値は命令コードと呼ばれ、実行すべき処理を指定する。その他の部分はオペランドと呼ばれ、その命令で使用する情報を示している。たとえば加算命令のオペランドは加算すべき数値を示している。オペランドには数値そのものが書かれていたり、数値のある場所(メモリのアドレスかレジスタの番号)が書かれている。古い設計では、デコーダ(デコードを行う部分)は変更不可能なハードウェア部品だった。しかし、より複雑で抽象的なCPUや命令セットではマイクロプログラム方式がしばしば使われ、命令を様々な信号に変換するのを助けている。このマイクロプログラムは書き換え可能な場合があり、製造後でも命令デコード方法を変更することができる。
フェッチとデコードの次は、実行ステップが行われる。このステップでは、CPUの多くの部分が接続され(たとえばマルチプレクサを切り替えるなどして)指定された操作を実行する。たとえば、加算を要求されている場合、ALUが所定の入力と接続され、出力と接続される。入力は加算すべき数値を提供し、出力には加算結果が格納される。加算結果が大きすぎてそのCPUに扱えない場合、算術オーバーフローフラグをフラグレジスタ(ステータスレジスタ)にセットする(RISCではフラグレジスタが存在しない場合もある)。入力や出力にはいろいろなものが使用される。演算結果が一時的かあるいはすぐに利用される場合にはレジスタと呼ばれる高速で小さなメモリ領域に格納される。メモリも入力や出力に使われる。レジスタ以外のメモリは低速だが、コスト的には一般的なメモリの方が安価であり大量のデータを格納できるため、コンピュータには必須である。
いくつかの命令はプログラムカウンタを操作する。それらは一般にジャンプ命令と呼ばれ、ループを構成したり、条件分岐をしたり、サブルーチンを実現するのに使われる。また、多くの命令はフラグレジスタを変化させる。それらのフラグはプログラムの動作に影響を与える。たとえば比較命令は二つの値を比較してフラグレジスタにその大小を示す値をセットする。そして、その値を使用してその後の処理の流れを決定するのである。
命令を実行後、同じ流れが繰り返されて次の命令をプログラムカウンタにしたがってフェッチする。もっと複雑なCPUでは、複数の命令をフェッチし、デコードし、同時に実行することもできる。しかし、基本的にどんなCPUでもやっていることはここで説明した流れと同じである。
[編集] 歴史
ENIAC
ENIAC
今日(2008年)のCPUのような装置が出てくる以前、「ENIAC」のような計算機は、実行するタスク毎に物理的に配線を変更していた。このような機械では、プログラムを変更するために物理的に再構成する必要があることから「プログラム固定計算機」と呼ばれることがある(なお、ENIACは後に機能と性能を限定すれば、プログラム内蔵方式でも動作した)。
CPU は、一般にソフトウェア(プログラム)を実行する装置として定義されるため、CPUと呼べる最初の装置はプログラム内蔵方式のコンピュータからである。プログラム内蔵方式の考え方は、ENIACの設計時にすでに存在していたが、性能を考慮してENIACでは採用されなかった。ENIACが完成する以前の1945年6月30日、数学者のジョン・フォン・ノイマンは、First Draft of a Report on the EDVAC という論文を発表した。この中で、彼はプログラム内蔵方式のコンピュータの設計について概説し、「EDVAC」は1949年8月に完成した(ノイマンは単に発表しただけである。実際の設計者についてはEDVAC参照)。EDVACは様々な命令の集まりを実行するよう設計されていた。命令を組み合わせることで実用的なプログラムを構成し、EDVACで動作させることができたのである。殊にEDVACではプログラムは高速なメモリに格納されており、物理的に配線を変更することで指定されるものではない点が重要である。ノイマン型の設計では、EDVACで動作させるプログラムを変更するにはメモリを書き換えればよかったのである。
ただし、プログラム内蔵方式という点で何が最初かといえば、EDSAC(1949年)やManchester Mark Iの試作機 Baby (1948年)である。EDVACは先に設計が始まっているが、設計者間のごたごたがあって完成が遅れた。また、アイデアレベルではZuse Z3を後に開発したコンラッド・ツーゼもプログラム内蔵方式を考案していた(1936年に特許申請しているが、アメリカに出願した際にチャールズ・バベッジの解析機関との類似を指摘され、特許は成立していない。ツーゼはこのときまでバベッジの業績を知らなかったと思われる)。データとプログラムを同じ記憶装置に格納するノイマン型と全く異なる方式として、ハーバード・アーキテクチャと呼ばれるものがある。これはEDVAC以前に完成したHarvard Mark Iの方式であり、さん孔テープにプログラムを格納した。ノイマン型とハーバード型の大きな違いは、後者が命令とデータの格納場所と扱いを完全に分離していることであり、前者はどちらも同じ記憶領域に格納していた。最近のCPUは基本的にノイマン型であるが、ハーバード・アーキテクチャも部分的に採用されている(キャッシュメモリなど)。
デジタル機器としてのCPUは、状態を変更したり表現したりするために、何らかのスイッチを必要とする。電気機械式から電子式への移行期には、リレーや真空管がスイッチとして使われた。これらは、従来の完全な機械式よりも高速にスイッチを切り替えられたが、信頼性が低かった。例えば、直流順序論理回路をリレーで構築するには、チャタリングと呼ばれる問題を補正する追加のハードウェアが必要だった。一方、真空管はチャタリングは起こさないが、機能するには熱が必要であり、動作中にカソードの電子放射能力が減退(エミッション減退)して動作不能になってしまう。真空管が故障したら、故障した部位を特定して交換しなければならない。したがって、初期の電子計算機は高速化は実現したものの、電気機械式計算機よりも信頼性が低かった。EDVACのような真空管計算機は故障と故障の間の平均時間(MTBF = Mean Time Between Failure)は約 8 時間であったが、Harvard Mark Iのようなリレー式計算機はほとんど故障しなかった。しかし、信頼性よりも性能が重視され、真空管式計算機が主流となっていった。当時の同期式CPUの動作周波数は現在のCPUに比較すると非常に遅く、100kHz~4MHz程度であった。これは、当時のスイッチ部品(真空管)の切り替えに要する時間によって限定されていたのである。
[編集] トランジスタ製CPU
CPUの設計と複雑さの進化は、さらに小型で信頼性の高い電子部品を使うことで達成された。その最初の進化はトランジスタの発明である。これによって、1950年代から1960年代には、かさばって信頼性の低い真空管やリレーは使われなくなり、トランジスタ製CPUが主流となった。この改善によってさらに複雑で信頼性のあるCPUを一枚から数枚のプリント基板で構成できるようになったのである。
1964年、IBMが発表した「システム/360」アーキテクチャは、いろいろな性能と大きさのコンピュータとして実装され、それらのシリーズではプログラムを変更することなく動作させることができた。当時、たとえ同じメーカーであっても、サイズの違うコンピュータは互換性がないのが普通だったのである。この改善を成し遂げるため、IBMはマイクロプログラム方式を採用した。これは現在のCPUでも広く使われている手法である。システム/360は大変な成功を収め、その後数十年間汎用コンピュータ市場を支配し続けた。
同じ1964年、DECも、「PDP-8」という後世に影響を与えたミニコンピュータを、科学分野や研究分野に向けてリリースした。DECは、後にさらに広く使われることとなる「PDP-11シリーズ」を発表したが、このシリーズは、後に集積回路(IC)が使えるようになると、それを使ったバージョンも製造されている。トランジスタを使ったCPUでは、新たな設計上の工夫をする余裕が生じ、SIMDやベクトル計算機と呼ばれるものが出現した。そのような初期の実験的設計は、後にクレイ社の製造したスーパーコンピュータのベースとなっている。
トランジスタを使ったコンピュータは、それ以前のものと比較していくつかの明確な利点があった。信頼性向上と消費電力低下はもちろん、トランジスタによるスイッチは切り替え時間が劇的に短縮されたため、CPUが高速化されたのである。トランジスタによるコンピュータでは動作周波数は数十MHzまで高速化された。
[編集] マイクロプロセッサ
詳細はマイクロプロセッサを参照
CPUの実装と設計を大きく変えた最近の技術革新は、1970年代中頃に登場したマイクロプロセッサである。世界初のマイクロプロセッサは1970年(Intel 4004)であり、広く使われるようになったのは1974年(Intel 8080)であるが、このクラス(8ビット)のCPU実装方法は完全にマイクロプロセッサだけになってしまった。それ以前のCPUが一枚から数枚の基板で実装されていたのに対して、マイクロプロセッサではそれを小さな集積回路(IC)にまとめ、多くの場合シングルチップでCPUを実現している。トランジスタのサイズが小さくなることによってゲートの静電容量が減るので、スイッチとしてもさらに高速化した。そのため、同期式マイクロプロセッサの動作周波数は数十MHzから数GHzが可能となった。また、IC上のトランジスタは技術の向上にしたがって小さくなっていき、CPUを構成するトランジスタ数は飛躍的に多くなって機能も複雑化していった。この傾向はムーアの法則と呼ばれ、CPU(IC)の高速化・集積化を正確にモデル化していた。
極低温で4.8GHzで動作するマイクロプロセッサのマスクパターン
極低温で4.8GHzで動作するマイクロプロセッサのマスクパターン
複雑さ、大きさ、構造、一般的な形状はこの60年間で劇的に変化したが、CPUの基本的な機能とデザインはほとんど変化していない。今日のCPUのほとんどはフォン・ノイマンが描いたプログラム内蔵方式を採用している。
先に触れたムーアの法則は未だに現実に即しているが、トランジスタの集積技術の限界が近づきつつあることが懸念されている。電子回路をあまりに縮小すると、エレクトロマイグレーションや閾値下リークのような現象の効果が大きくなるためである。これらの新たな懸念があるため、研究者は量子コンピュータのような新たな技術を模索するとともに、並列性などの手法の活用でノイマン型をさらに高速化する技術も研究している。
CPU年表も参照
[編集] デザインと実装
[編集] ビット幅
CPUが数値を表現する方法は設計時に選択され、装置の機能を大きく左右する。初期のデジタルコンピュータは十進記数法で数値を表現するのが普通だった。他には三進数を採用したものもある。それ以降は二進記数法を採用するのが一般化した。二進数では各桁はふたつの値(1 と 0)しかとらないので、高い電圧と低い電圧でそれを表すことができる。
数値表現方法に関連して、CPUが扱える数値の範囲(サイズと精度)も設計時に選択される。二進数を採用したCPUでは、ビットがひとつの桁を意味する。CPUが数値として扱うビット数を「ビット幅」あるいは「データパス幅」、「整数精度」(そのビット数が整数を表現するサイズである場合)などと言う。この数はアーキテクチャによって異なり、非常に近いCPUでもここだけを変更する場合がある。たとえば、8ビットCPUが扱う数の範囲は、8桁の二進数で表せる範囲であり、28 あるいは 256種類の値を表せる。ビット幅は、CPUが指定できるメモリ位置の範囲をも限定する。たとえば、二進数のCPUが 32ビットでメモリアドレスを表現し、あるアドレスによってオクテット(8ビット)を指定できるとすると、そのCPUがアドレス指定できるメモリ量は、232オクテットつまり 4ギガバイトとなる。これはCPUのアドレス空間の非常に簡単な見方であり、多くの設計ではもっと複雑なアドレス指定方法を使用して、同じビット幅でも広いアドレス指定ができるようにしている。
CPUの持っているビット数には下記の要素がある。
* アドレスbit幅
* 外部データバス幅
* 内部データバス幅
* レジスタのbit幅
* ALUbit幅
* 命令長
しかしこれらの要因を以て×bitCPUと断ずる事はできない。アドレスbit幅は8bitCPUに於いては16bit幅以上ある事が通常で、32bitCPUでは24bitなど、×bitCPUと称する場合のbit 数と一致しない事が多数ある。外部データバス幅は16bitCPUで外部データバス8bit、32bitCPUで外部バス16bitなど、これも×bitCPUと称する場合のbit数と一致しない事が多数ある。 内部データバス幅は32bitCPUで内部データバス64bitの例がある。レジスタのbit幅では16bitCPUで32bitレジスタを持つCPUがある。 ALUは8bitCPUで4bitALUのCPUがある。命令長はCISCに於いては複数のbit幅が混在しており、RISCに於いても32bitCPUで16bitなどがある。
現在は4ビットから64ビットなど多様なビット幅のCPUが製品化されている。これは高ビット幅のCPUは機能や性能が高い反面、高集積化や回路の複雑度から高価格で消費電力も大きいが、低ビット幅のCPUは機能や性能が制限される代わりに安価で低消費電力であるなど特色があるためであり、状況に応じて使い分けられている。
以下に、現在主に使用されているCPUのビット数を挙げる。
* 8, 16bit:家電製品など小規模な装置の制御用、低性能携帯型ゲーム機
* 32bit:多くのパーソナルコンピュータ、組み込みシステムで携帯電話やPDAなど比較的性能が要求される装置、高性能携帯型ゲーム機、代表的なコンシューマーゲーム機
* 64bit:サーバなど大量のデータを処理するコンピュータ。AMDのAthlon64やIntel 64に対応したIntelのPentium4などと、Windows XP Professional x64 Editionを組み合わせると家庭でも64bitを体感できるが、パフォーマンスもあまり向上せず、現時点でx64 Editionを使用する理由はほとんどない。だが次世代Windowsやさらに次の世代には64bitが標準となる見通しである。またAppleのMacintoshでは64bitのPowerPC970(G5)が一部機種に使われている。
またかつて、互いに結合し自由にビット長を増やす事が出来る方式のCPUがあり、これはビットスライスプロセッサと呼ばれた。代表的な製品にAMDのAM2900シリーズなどが挙げられる。AM2901は、スイス連邦工科大学のLilithワークステーション等に使用されていた。
[編集] クロック周波数と発熱
ほとんどのCPU(もっと言えばほとんどの順序論理回路)は同期式である。つまり、CPUは同期信号にしたがって動作するよう設計されている。この信号は「クロック信号」として知られていて、一定周期の方形波の形であることが多い。電気信号の速度からCPU内の信号経路の長さを考慮してクロック信号の周波数が決定される。この周波数は信号伝播の最悪ケースを考慮して決めなければならない。最悪ケースを考慮して周波数を決定すれば、CPU全体が波形のエッジ部分で動作するよう設計でき、CPUの設計を簡略化できると同時にトランジスタ数も減らすことができる。しかし、この設計手法の欠点としてCPU全体が最も遅い部分を待つように設計しなければならず、全体の高速化がその遅い部分によって制限される。この制限に対処するために命令パイプラインやスーパースケーラといった手法が採られてきた。
パイプラインだけでは同期式CPUの問題を全て解決することはできない。たとえば、クロック信号は他の電気信号の遅延に影響される。クロック周波数が高くなり、さらに複雑なCPUを動作させようとしたとき、全回路を同期させるのが困難になってきた。このため、多くの最近のCPUではひとつのクロック信号でCPU全体を同期するのではなく、いくつかのクロック信号で各部分を個別に同期させるようにしている。また、クロック周波数が高くなるにつれて CPUの発熱が大きな問題となってきた。クロックがON/OFFを繰り返すことで多くのスイッチがON/OFFを繰り返すため、その回路が使われていようがいまいが、発熱してしまうのである。一般に、スイッチ部品は切り替えをしていないときよりも切り替えをしたときの方がエネルギーを消費する。そのため、クロック周波数が高くなると発熱も多くなり、CPUをもっと効率よく冷却する必要が生じるのである。
不要な部分でのスイッチ切り替えに対処する方法としてクロックゲートと呼ばれる方法がある。これは使わない部分へのクロック信号供給を切ってしまう方法である。しかし昨今のプロセステクノロジでは消費電力に対するリーク電流の比率が大きくなり、クロック信号をカットしただけでは大きな効果が期待できなくなりつつある。そこで別の解決法として動作していないモジュール等への電源供給を絶てるよう制御する方法もある。しかしこの方法も最近のCPUが消費する大電流を制御することは容易ではなく、また効果的にモジュールをON- OFFすることも困難である。他にはクロック信号をなくしてしまう方法もある。クロック信号をなくすると、設計は非常に難しくなるがクロック無し(あるいは非同期)設計は消費電力と発熱の面で大きな利点がある。あまり一般的ではないが、クロックを無くしたCPUも存在する。たとえば、ARMアーキテクチャ互換のAMULETとMIPS R3000 互換の MiniMIPS がある。クロックを完全に無くするのではなく、部分的に非同期化したCPU設計も存在する。たとえば、非同期ALUを使ってスーパースカラーのパイプラインを構成することで演算性能を上げようとした設計などがある。全体を非同期化したときに、同期動作するCPUに比較して性能が向上するかどうかは定かではないが、少なくとも単純な数値演算では効果がある。