Outlookに他人の予定表を表示させる方法を追加
馬場さんの本によれば、IBMシステム/360というコンピュータシリーズが初めてアーキテクチャという用語を明確に定義したとあり、プログラマから見たハードウェアの論理仕様と定義している。論理仕様という用語もまたわかったようなわからんような言葉やな。しかし今では ハードウェアとソフトウェアを含むコンピュータシステムの基本設計を指すことが多い。
マイクロプロセッサのアーキテクチャとは、通常命令セットアーキテクチャのことをいう。
アーキテクチャの基本要素には、データ・タイプ、レジスタ・セット、命令セット、アドレス変換、保護機能、割り込み処理などがある。
マイクロプロセッサ内部で演算するデータの形。ビット長は命令のオペランドとメモリアドレス算出に使うビット数。データ・タイプには、ビット、ビットフィールド、符号なし整数、符号付き整数、10進数(BCD)、文字列、浮動小数などがある。
命令オペランドに指定する汎用レジスタ、メモリアドレス計算に使うセグメントレジスタ、実行状態を示すフラグレジスタ、ステータスレジスタなどがある。
汎用レジスタの本数が多いほど、ロード・ストア命令の使用回数が少なくなる。
命令の種類には、データ転送、整数演算、論理演算、浮動小数点演算、BCD演算、プログラム制御、I/O、ビット列操作などがあり、プロセッサによりあまり差はない。マルチメディア処理用の命令の有無が注目されており、IntelはMMX Technologyというx86のマルチメディア拡張命令を発表した。
命令セットでアーキテクチャの特徴が現れるのは、オペランドの違いである。オペランドのデータ・タイプ、オペランド数、オペランドの組み合わせ(メモリかレジスタか)、アドレシング・モード、エンディアンにより、命令が異なってくる。
32ビット・アーキテクチャであれば232=4Gバイトのアドレス空間をアクセスできる。ビット数を増やさずにアドレス空間を広げる代表的な方法に、セグメント方式と仮想アドレス方式がある。ほとんどのプロセッサにはこのアドレス変換を行うMMU(memory management unit)を内蔵している。
セグメント方式は、セグメントレジスタを用意することにより、アクセスするセグメントを切り替える。これをバンク方式ともいう。狭義のセグメント方式は、セグメントレジスタとアドレスを組み合わせて物理アドレスのビット数を増やす。
仮想記憶では、タスクをページに分割し、ページ単位で論理空間と物理空間のマッピングを行う。
論理アドレスから物理アドレスに変換するには、論理アドレスの一部からタスク番号とページ番号を取り出し、ページテーブルなどからページアドレス(ページの先頭のアドレス)を取り出し、論理アドレスの下位ビット(オフセット)を組み合わせて論理アドレスを生成する。
アドレス変換テーブルにメモリ保護情報を付加し、アクセスを制限する。ページ・テーブルを書き替えられるタスクを特権レベルの高いタスクという。通常はOSの特権レベルを高くする。
一般にRISCアーキテクチャは以下のような特徴をもつ。
演算命令のオペランドに汎用レジスタのみを使う。汎用レジスタとメモリ間の転送にはロード・ストア命令を実行するので、ロード・ストア・アーキテクチャともいう。
豊富なレジスタ・セットももつ。
レジスタ・レジスタ間演算のため、3オペランド命令である。
複雑なアドレシング・モードを使わないため、固定長命令にできる。
マイクロプロセッサは、データパス(演算系)と制御系からなる。
データパスは、ALU、汎用レジスタ、プログラムカウンタ、命令レジスタなどからなる。
制御系には、ハードワイヤード方式とマイクロプログラム方式がある。RISCでは再びハードワイヤード方式が採用されている。
32ビット・プロセッサとは、命令のオペランドやメモリ・アドレスの算出に32ビットのデータを使うことを意味している。
レジスタには汎用レジスタ、セグメント・レジスタなどがある。またオーバーフローの発生などのプロセッサの状態を保持するPSWやステータス・レジスタと呼ばれるレジスタがある。
命令セットがアーキテクチャの最大の特徴。マルチメディア処理に向いた命令の装備が注目されている。IntelはMMX technologyとよぶマルチメディア拡張命令を発表した。AMDはMMXの拡張である、3DNow!を発表した。
命令のフォーマットにアーキテクチャの特徴が現れる。オペランド数、アドレッシング・モード、エンディアンなど。エンディアンとはメモリ上にワード内のバイト順序をどのように配置するかという問題である。ワードアドレスと一致するバイトアドレスが最下位バイトのとき、リトル・エンディアンといい、最上位バイトのとき、ビッグ・エンディアンという。
16ビット・アーキテクチャであれば、2の16乗=64Kバイトのメモリ空間をアクセスできる。32ビットなら2の32乗=4Gバイトである。アーキテクチャのビット数を増やさずにアドレス空間を増やす代表的な方法にセグメント方式と仮想アドレス方式がある。
メモリ空間のあるページをあるアプリケーションが書き換えないように、メモリ保護の機能がある。
RISCとはロード・ストア・アーキテクチャで、汎用レジスタが豊富であり、命令長は固定である。
CISCはオペランドが複雑である。
プロセッサの性能指標として、1命令を実行するのにかかるサイクル数を使う。これをCPIという。
主記憶の一部をSRAMに蓄えて高速を図る手法をキャッシュ・メモリという。
プロセッサ内部の命令実行はステージに細分化できる。各ステージをオーバーラップさせることをパイプラインという。ステージにかかる時間をマシンサイクルという。パイプラインの重なりをマシン・サイクルより細分化する手法をスーパーパイプラインという。
パイプラインを複数本備えるものをスーパースケーラという。
レジスタ・リネーム、アウト・オブ・オーダー実行、リザベーション・ステーション
分岐予測、分岐遅延スロット、投機実行
---------------------------------------------------------------------------
CPU
コンピュータの中心となる部分。5大要素の演算装置と制御装置の機能からなる。ここがプログラムを実行する。
CPUの原理は結局コンピュータの原理そのものになってしまうので、動作原理などはコンピュータアーキテクチャのところで説明しよう。
コンピュータの5大装置のうち、 ・演算装置 ・制御装置 を合わせてCPUという。 (厳密には記憶装置のレジスタも含まれる) 制御装置は ・制御方式(命令実行の) ・命令制御 ・記憶制御 ・入出力制御 に分ける。 構成に関するもの以外の項目として、 ・代表的CPU ・CPU補助装置 を設ける。 (専用プロセッサも加えるべきか?)
アーキテクチャの階層
ソフトウェアを上位とすると、上位から順にアーキテクチャは次のような階層になる。
高水準言語レベルアーキテクチャ
命令セットアーキテクチャ
5大機能
制御,演算,記憶,入力,出力をコンピュータの5大機能という。本によっては装置と表記しているものもあるが,機能のほうが適当やな。制御と演算をする部分をCPUといったりプロセッサという。
マイクロアーキテクチャ
あらかじめ定義された命令セットなどを、どのようなハードウェア構成で実装していくかという仕様。命令セットアーキテクチャとは異なる。
MMXアーキテクチャ
Intelが追加したアーキテクチャ。