コラム・特集

1.2 コンピュータ・システムのハードウエア

IEハンドブック
第12部 コンピュータと情報処理システム

第1章 コンピュータに関する基礎知識

1.2 コンピュータ・システムのハードウエア

基本概念
日常の計算業務を行う計算機械を作ろうとしたら,その機械には,

・評価すべき数式を記述しておく方法
・データのリストを記述しておく方法
・多分にその時々における中間結果の処理を含めて,一連の数学演算を行う装置
・演算結果を人間に表示する装置などの機能が必要となる

1つのコンピュータ・システムは,上記の機能を果たす電子機器からなる。その基本ユニットは,「 中央処理装置」(CPU:Central Processing Unit)と呼ばれる。1個のCPUは,オペランド (演算数)に演算を施し,結果を求める演算ユニット,一連の命令とデータの両者を格納しておくメモリ(記憶装置),入力装置からデータを受けとり,出力装置にデータを送り出す入出カユニット(I/Oユニット),これらすべてのCPUの動作を統括するシーケンサあるいは制御装置から構成されている。 典型的なCPUの概略を図表12.1.1に示す。

CPUの動作は,取出し―実行の基本サイク ルで説明できる。次節でより詳しくこのサイクルについて触れるが,ここでその概略を述べると,以下のとおりである。

取出し(FETCH)一一次に実行する命令をメモリから取り出す
実 行(EXECUTE)一一現在の命令を実行する。 通常,実行段階は,2つのオペランドの記憶場所確認,その演算ユニットヘの転送,実行結果の蓄積(ストア) の各機能からなる上記の2つのCPUの動作を,人間が電卓を操作する場合と比較してみると,以下のようになる
取出し一一計算手順に従って,次に実行する命令を識別する
実行一一オペランドを検索し,キー入力した後,演算キーを押し下げ,結果を紙に書き留める

データの内部表現
もう1つの基本的な概念が, コンピュータ の内部におけるデータ(数値や文字)の表現である。コンピュータ の内部では,すべてのデータが 「ビット」 (bit:binary digit=2進数)と呼ばれる情報の基本単位から構成されているメモリの内部では,データがビットの列の形で蓄えられており,また,すべての命令もビットの列の形で与えられる。1つのビットは2つの値のどちらかを取る。通常,この2つの値を「0」と「1」で表わす 4ビットの列は「0101」などと書ける。数値を表わすのに4ビットを用いることにすると,1つの標準的な方法は 4ビットの列「 0000」で0,「0001」で1,「 0010」で2,「 0011」で3,以下同様の規則で表わすことである。

通常 ,コンピュータ のメモリは固定長のビ ット列の集まりで,こ のビット列を「ワード 」(語)と呼ぶミニ・コンピュータの多くは8ないし16ビット/ワードで,現在の大型コンピユータは32,36,48,64ビット/ワードのいずれかである 16ビット/ワードのシステムは, 0から16-1=65,535までの範囲の数を表現できる。実際には,正負両方の数を扱わねばならず,ほとんどのコンピュータはワードの左端の1ビ ットを符号ビットに用いているので,扱えるのは±32,767の範囲の数である。

より広い範囲を必要とするときは, 1ワード当りのビット数がもっと大きなシステムを用いるか,あるいは,1つの数値を表わすのに複数のワードを用いる技術が必要となる数値を有限桁で実現するこの方法は,コンピュータを用いて演算を実行する際に,種々の問題をもたらし,実行できる計算のタイプにも制限を与える。

実際のシステムでは,符号付き整数を表わすのに,符号付き絶対値, 2の補数, 1の補数のいずれかの表現法が用いられる。また,多くのシステムでは,10進小数を近似的に表わすのに別の方法を採用している。すなわち, ある小数を,適当な基数(通常は2,8あるいは16)の仮数部と指数部の2つのペアで表わすこの表現方法は浮動小数点法と呼ばれ,コンピュータの種類ごとに異なる。

浮動小数演算のための特別な演算回路を用いると,小数は自動的に浮動小数として扱われ,様々な計算を行う際に必要となるプログラミング上の労力を,劇的に減少させることができるこの種の有限桁演算では,同じ演算を行うのに計算の順序次第で,数値精度が失われる状況があることを指摘しておこう。これは「数値解析」と呼ばれる学問分野で,そのような誤差の研究と,その誤差を減らす計算法を開発する学問である。

前にも述べたように,コンピュータでは文字情報を扱う能力が非常に重要である。すべてのデータはビット列で表現されるから,文字(英数字,句読点など)をコード化する 技法が必要である。今日 ,多くのシステムでは, 1文字を「バイト」と呼ばれる8ビット の組で表現する 規則が採用されている 多くのコード体系があるが,その中で2つのものが広く採用されている。

それらは AS CII(American Standard Code for Information Interchange=アスキー)とEBCDIC(Extended Binary Coded Decimal Interchange Code=エビシディック)と呼ばれている。後者のEBCDICは IBMによって開発されたものであり,前者のASCHは 国際標準規格である。標準が1つでないことは不幸なことで,これが異なるコード体系を採用しているシステム間で,データの互換を複雑にしている。

メインフレーム
コンピュータの主要な構成要素はCPUである。しかし, コンピュータ・システムが複雑となり, 1つのシステムに複数のCPUを含むようになると,より広い概念が必要となってきた。 「メインフレーム」は,1個以上のCPUと,主メモリ, I/Oプロセッサを含むものとして使われている。以下では,これら個々の構成要素について, より詳しく述べる。

処理装置(プロセッサ)の機能は,次々と命令を取り出して,それを実行することである。これらの命令は,プロセッサの動作を制御するコマンドである。たとえば、lつの命令で2つの数の加算ができる。このような命令の列を「プログラム」と呼ぶ。命令のオペランドを「デ ータ」と呼ぶ命令とデータの両者をプロセッサが必要とするとき,その2つは主メモリ上に存在しなければならない。I/Oプロセッサは,プログラムの制御の下で , 外部機器あるいは周辺機器から主メモリに,データと命 令を取り込み,また同様に,主メモリから外部機器に,データと命令を送り出すことができる。

前にも述べたように,メモリはワードの集まりからなる 各ワードは,アドレスまたはロケーション(番地) と呼ばれる特定の名前を持つ,典型的なのは,メモリの最初のワードを0番地,次のワードを1番地,以下同様である プロセッサが特定のワードに蓄えられている数値(ワードの内容)を必要とするときは,プロセッサは , そのワードのアドレスを指定して,メモリ・ユニットに対して読込み動作を行うメモリ・ユニットは,指定されたワードの位置決めをして,そのワードの内容を取り出し,その取り出した内容をプロセッサに 戻してやる。 メモリ上のワードの内容は,読込み動作によって変化しない逆に,ある数値をメモリに蓄えておく必要があ ときは,プロセッサは,メモリ・ユニット に対する書込 み動作のオペランドとして,書込み先のワードのアドレスと,蓄える内容(数値)の両者を与えるこのとき, メモリ・ユニットは,メモリの指定されたアドレスに,その内容を書き込む明らかに,メモリ上のあるワードに書き込むことは,その書込み先のワードが以前に記憶していた内容を破壊する。

プロセッサの多くは,その内部に「レジスタ」と呼ばれる1ワード分の特別な記憶領域を幾つか持っている。これらのレジスタはメモリの小さなものと同様に動作するが,レ ジスタははるかに高速な演算速度を持ち,命令のオペランドを一時的に保持するのに用いられる。ある典型的な命令の列は,ワードをメモリからレジスタに取り出し,そのワードに対して一連の変換を実行し,その結果をメモリに戻して蓄えることからなる。

命令に記されたアドレスと1個以上のレジスタの内容の組み合わせで,その命令のオペランドとしての実際のアドレス(「実効アドレ ス」と呼ばれる )を指定でき,この機能はしばしば便利である。この動的なアドレス指定は,例えば,一連の命令群を用いて,あるリスト上の複数個のワードそれぞれを,すべて変換することを可能にする。もし,順番に並んだワードからなるリストの先頭ワードのアドレスと,レジスタの内容とを加算した値を, あるオペランドの実際のアドレスとして指定できるならば,そのリストの各ワードに対して操作する。命令群を繰り返し実行することができる。すなわち,リスト中の各ワードが望み通りに変換されるように,そのレジスタ (「インデックス・レジスタ」と呼ばれる)の内容を1だけ次々と増加させればよい。

プロセッサのもう1つの重要な特徴は,実行される命令の順序である 命令は,メモリ上の連続したバイトまたはワード に蓄えられるプロセッサは,連続した各命令の取出し一実行を,この実行順序の変更を要求するある命令が実行されるまで,次々と継続する 実行順序を 変更する命令は,「分岐」あるいは「ジャンプ」と呼ばれている。この命令の順序(あるいは制御の流れ)は「プログラム・カウンタ」と呼ばれる特別のレジスタで管理されており,プログラム・カウンタは,いつも取り出される次の命令のアドレスを記憶している。通常,このレジスタは,連続した各命令がメモリから取り出されたと き, 1だけ増加させられる。分岐あるいはジャンプ命令が実行されると,プログラム・カウンタに新しいアドレスが書かれ,命令の取り出しはメモリ上のある別のアド レスから始められる。プロセッサの動作を,この取出し―実行の基本サイクルによって,以下のように要約できる。

1 プログラム・カウンタで指定されたアドレスの命令を,メモリから取り出す

2.取り出された命令の長さによって,プログラム・カウンタの値を増加する

3.もし必要ならば,オペランドの実効アドレスを計算する

4.計算されたアドレスをオペランドとして用いて命令を実行する

5.1から4のステップを繰り返す

I/○プロセッサは CPUの管理の下で,外部機器あるいは周辺機器との間で,データの交換を行う。CPU は,1/0プロセッサにこれらの機能を遂行させる幾つかの特殊なI/○命令を持っている。これらの命令が実行されたとき, I/Oプロセッサは主メモリに働きかけ,I/O装置から読み込んだデータをメモリに蓄えたり, ある装置に書き込むデータをメモリから取り出したりする。 I/Oプロセッサは,各 処理の終了時に,その処理の完了信号をCPUに送らねばならない。

最新のシステムでは,CPUは 毎秒100万~1,000万個の命令を実行できる(すなわち, 1×106~ 01×106 秒/命令)しかしながら,I/Oプロセッサは外部機器からデータを読み込んだり,書き込んだりするのに, 20× 103~ 100× 103秒 を必要とする。この速度のアンバランスがゆえに,システムの多くは,CPUが他の命令を実行している間にも, I/O処理を継続できる機能を有し, I/OプロセッサとCPU,この両者の同時処理を実現している。そのようなシステムにおいては,ある。 I/O処理が完了したとき, I/OプロセッサがCPUに「割り込む」ことによって,CPUにそのI/O処理の完了を知らせる。この割込みは,CPUにある場所で命令の処理を中断させ,別の場所の命令,すなわち, I/O処理の完了時に行うべき新しい命令の処理を開始させる。割込みが発生したときは,(その割込み処理が終わったとき)割り込まれたプログラムがその割込みを受けた場所から再開されるように,割り込まれたプログラムのプログラム・カウンタの値が保存される。I/Oプロセッサの機能は,システムごとに異なる多くの方法で実現されているあるシステムにおいては, 幾つかの「データ・チャンネル」があり,各チャンネルは1つ (またはそれ以上)の I/O処理ができる。別のシステムでは幾つかの周辺プロセッサがI/O処理の責任を負っている。どの場合でも機能は同じであり,通常, I/Oプロセッサは,CPUと 同時に,しかしCPU の管理の下で動作している。

同時(非同期)方式でI/O処理を行うプログラムを書くことは,非常に面倒なことである。それゆえ,このような能力を持つシステムは,I/O装置の利用を容易にするプログラムと特殊なハードウエア機器を備えている。これらのI/Oプログラム,およびその他の多くのソフトウエアは,後の節で議論する「オペレーティング・システム」という用語で包括される。その特殊なハードウエア機器は,幾つかのプログラムがシステムの諸設備を同時に使用すること(マルチ・プログラミング)と,これらのプログラムが相互に干渉しないこと,この2つを保証するものである。この結果,普通のプログラムを書く人にとって,プログラミング上の余分な苦労をほとんどすることなく,システムの諸設備を効率よく使うこと ができる。

主メモリ
今日,主メモリのサイズは,通常,バイトまたはキロバイト(1キロバイト=1,024バイト)の単位で表わされる。小型システムでは,16,32あるいは64キロバイトのメモリが実装されている。大型システムでは16メガバイト(1,600キロバイト)以上のこともある。

今日,大部分のメモリは「チップ」と呼ばれる集積回路からなり, 1チップ当り,4,000~ 16,000ビットを実装している 64,000ビット/チップの密度を持つ製品も市場に現われ始めている。これらのメモリの速度は100~500ナノ秒/アクセス(1ナノ秒=109秒)の単位である。主メモリのコストは,約4,000ドル/メガバイトかそれ以上である。メモリの集積技術の進歩につれて,メモリの価格は急速に低下している。

上に述べた速度においてすら,メモリはプロセッサに比べてまだ遅いこれらの構成要素間の速度のバランスを取るために,ある種のシステムでは,「キャッシュ・メモリ」と呼ばれる高速なメモリ・バッファを備え,今現在使っているデータや命令に対して,主メモリの速度よりも 速く,短い時間でアクセスできるようにしている。 キャッシュ・メモリ は,多分,8,000バイトくらい内蔵可能で,主メモリの10倍の速度(例えば,50ナノ秒/アクセス)で動作可能であろう。主メモリヘの参照があったとき,指定されたワードとその近辺のワードからなるワード・プロックごと,キャッシュ・メモリに移してしまう。次に,もし再びこれらのワードのどれかが参照されるときは,それを主メモリからでなく,キャッシュ・メモリから取り出すことができる。もちろん,キャッシュに蓄えられたワードは,より最近に取り出されたワード で,いつかは上書きされてしまう。コンピュータ・メーカーの多くは,そのキャッシュが95%の打率を達成していると,すなわち,主メモリヘの参照の95%はキャッシュからの参照で間に合っていると,主張している。マルチ・プログラミング・システム,すなわち,同時に主メモリ上に2つ以上のプログラムを持つことができるシステムにおいては, 1つのプログラムが他の別のプ ログラムと干渉しないこと,それを保証する機構が必要である。そのような機構の1つは「メモリ保護」と呼ばれ, 1つのプログラムが,それに割り当てられた主メモリのある領域だけをアクセスするように仕向けたものである。これを実現する方法には色々あるが,その多くに共通的な方法は,1つのプログラムからなされるすべての参照を管理する,特別なレジスタを用いるものである。こうすることで,どんなプログラムも,それに割り当てられているメモリ領域外にあるワードのアドレスを生成できなくなる。

マルチ・プログラミングのシステムにおいては,メモリはダイナミックに割り当てられて,プログラムの中で利用されるが,そのメモリの管理が難しい問題となる。また,多くのユーザーは,そのシステムで利用できるメモリよりも,大きなメモリを必要とするプログラムを書きたがる。それやこれやの問題に対する1つの解答として,今日,多くのシステムは,「仮想記憶方式」(Ⅶβ : Virtual Memory System)と呼ばれるメモリ 管理方式を持っている。その基本アイデアは,主メモリを同じ大きさで,固定サイズ(代表的なのは512から4,096バイト)のブロックに分割することであり,このプロックは 「ページ・フレーム」と呼ばれる 命令とデータ両方を含めて, 1つのプログラムを,そのページ・フレームとちょうど等しいサイズの幾つかのページに分割する。プログラムが主メモリにロードされるとき,これらのページは,その時点で利用可能な任意のページ・フレームにロードできるロードが行われたとき,多分にこれらのページは連続したページ・フレームにロードされていないから,あるアドレス決定の問題が生じる。この問題を解決するために,オペレーティング・システムは,各プログラムごとにマッピッング・テーブル(対応表)を作成する。このテーブルは,プログラムによって作られた「仮想アドレス」を,主メモリの実際のアドレス(物理アドレス)に変換するのに使われる。

あるプログラムが, メモリの中の1つのワードにアクセスしようとするとき, (もしそのプログラムが「0」番地から始まる連続した。

メモリ領域にロードされていると仮定したら)そのデータがあるべき場所のアドレスを使用する。このとき,ハードウエアは,このプログラムに対するマッピッング・テーブルにおけるその仮想アドレスを見て,この仮想アドレスに対応する物理アドレスを用いる。参照されたページがメモリ 上に存在しないことも起こり得る。たまたまそれが起こったときは,(「ページ・フォールト」と呼ばれる)割込みがオペレーティング・システムに対して行われる。このとき,オペレーティング・システムは,その失われているページの位置を求め,そのページを空きページ・フレームにロードし,マッピッング・テーブルを更新し,その後にメモリ上で目的のワードを捜して,プログラムを再スタートする。このようなメモリ管理技術は,まるでそのシステムに実在するものよりも多くのメモリが存在するかのごとく,プログラムを書くことを可能にする。オペレーティング・システムは,要求されるすべてのメモリを,同時に存在させることが不可能な場合ですら,そのプログラムが実行可能となるように, ページとページ・フレームを手品のように入れ替える。

回転型の大容量データ記憶装置 多くのコンピュータ・システムは,システムあるいは そのユーザーが必要とする,プログラムやデータを保存するために,大容量のオンライン記憶装置にアクセスできなければならない。もっとも普通に使われているオンライン記憶装置は,ディスク装置であるシステムに付随して保存すべきデータの量は,多分, 100万から20億バイト,あるいはそれ以上にのぼるオンライン記憶装置なしで稼動するのは,限られた仕事をする極く小型の システムだけである。

ディスク装置は,内部にディスク・パックを持ち,パックからI/Oプロセッサヘ,あるいはその逆向きに,データを転送できる装置である。1個のディスク・パックは,1枚ないしそれ以上のディスクを重ね合わせたもので,ディスクは,磁性記録媒体(酸化鉄)を表面に糊塗した金属性の円盤である。多くのディスク装置には,各ディスクの片面に1個の割合で,たくさんの移動可能な 読み書き両用ヘッドが用意されている。ビット列形式の情報を,ヘッドが記録媒体の上に書き込む(記録する)。 記録した後で,そのヘッドで以前に書き込んだ情報を読み出すことができる。新しい情報を書き込むと,以前に 書いた情報は破壊される。重なり合ったディスクの山を1つの単位として,代表的なものは,毎分3,600回転以上のスピードで回転している。ディスクが回転している とき, 1個の読み書き両用ヘッドの下にある1枚のディスクの表面を,ビットの「トラック」,あるいは情報のトラックというヘッドをある位置で止めたとき,全部のヘッドの下にあるトラック全体を,「シリンダー」と呼ぶ。多くのディスク装置では,トラックは,固定サイズの「セクター」に分割される。このセクターが情報の格納場所である。

DEC社 (Digital Equipment Corp)の RM-03型ディスク装置は,5枚の記録面を持ち, 1面当り823個の同心円状のトラック,すなわち1パ ック当り823個のシリンダーを持つ各トラックは32セクターに分割され, 1セクターは512バイト分である。よって, 1パックの全容量は,512×32×5×823=67,420,160バイトであ る。RM-03は,5個の読み書き両用ヘッドの集合を, 1アクセス当り平均0.030秒 (最小0.006秒,最大0.055 秒)で移動でき,毎秒1メガバイトに近い情報を転送できる。

多くのディスク装置では,パ ックを装置から簡単に取り外し,別のパックをそこに装填できる。また,情報の保存や,システム間での情報の移動に便利なように, 1つのパックを別な装置に装填して使うことができる。

最も廉価なディスク装置は,フロッピイ・ディスク装置である。それは,容量が約500キロバイトで,柔らかなプラスチック製の記録面を持つディスケットを用いている。フロッピィ・ディスク装置は低速であるが,コストが低いことを考えると,ある面では実用的である。

ディスク装置は,ヘッドを任意のシリンダーに直接に 移動できるから,パック上の任意のセクターを高速でアクセスできる。この種のアクセス機棚を持つI/O装置 は,「直接アクセス型記憶装置」(DASD:Directed Access Strage Device)と呼ばれ,そのような装置上に保存されているデータは,しばしば「ランダム ・アク セス可能」であると言われる。これは,そこではデータ が順序付けられて保存されている,磁気テープのリールに対比して用いられる言葉である。テープの終わりにあるデータをアクセスするためには,所要のデータの前にある,すべてのデータを通過せねばならず, 1回の操作 に2~ 5分,あるいはそれ以上の時間を必要とする。

標準I/O装置
ディスク装置に加えて,コンピュータ・システムを使う上で利用できるI/O機器が,他 に幾つかある。(数の点で)最も普通の機器は,コンピュータと通信するときに用いられているリモート端末であろう。端末は,キ ーボード(タイプライターのキーボードと類似の)と, プリンター・タイプかテレビのブラウン管に似たCRT Cathode Ray Tube)タイプか,いずれかのタイプのディスプレイからなる端末は,通信回線と(システム側にある)通信制御装置によって,システムに接続されている。ユーザーは,キーボードからデータを送り,ディスプレイでデータを受け取ることができる。普通,プリンターが30文字/秒以下で印字するのに対して,CRT装置は960文字/秒以下でデータを受信する。通常,使用する通信回線の種類によって,このスピードは制限されている。普通の電話線を用いて,システムと端末を結ぶことも可能で,この方式によれば,地理的に広い地域に住む人々も,システムの利用が可能である。

1/2インチ幅の磁気テープ・リールは,機械読取り式で大量の情報を保存するのに,最も広く使われている 中間記録媒体の1つである 標準リールのテープは, 2,400フィートの長さで,長さ方向に1インチ当り800, 1,600あるいは6,250文字を記録できる。しかしながら , 情報のグループとグループの間に記録の間隙が必要なので,テープの全長を情報の記録に用いることはできない。1リール分のテープのコストは約20ドルである。磁気テープ装置は,磁気テープに読み書きする装置で,200インチ/秒以下の速さで,かなり廉価な装置では約45インチ/秒の速さで,テープを動かすことができるテープは,しばしばシステム間で大量の情報を転送するために,また,ディスク・ベースの記憶装置でその容量が満杯となったとき,情報を別に保存しておくために,その中間記録媒体として使われる。

その他のI/O機器 (詳細略 )
・アナログーデジタル(A/D)変換器
・デジタルーアナログ(D/A)変換器
・スキャナー
・グラフィッ ク ・タブレッ ト
・デジタル・プロッター
・グラフィック・ディスプレイ

コンピュータは,様々な種類の機器を接続し,その利用分野を拡大してきた。空港では,監視レーダーのデータが直接コンピュータに送り込まれ,空の交通整理に役立っている。コンピュータは,映 画の新しい特殊効果を生み出すため,カメラと機材の両方をうまく制御するのに使われている。病院では,コンピュータが病人のモニター装置と接続されて,重病患者の病状を監視し,トラブル発生 時に警報を出すのに使われている。

工業プラントの多くでは,コンピュータにつながれたバッジ読取機が,入場制限区域への人の立ち入りを管理している。小売店では 購入品のリスト作成のために,スキャナーが商品コードを読み取っている。石油精製工場では,最適な製造燃料の混合比が得られるように,反応プロセスを適応させるのに,コンピュータが触媒反応分留器を監視し,制御している。それやこれや様々な応用分野で,普通には上で述べたような形で,特殊なI/O機器が使われている。

技 術
コンピュータのハードウエアに関する最近の材料と製造技術の進歩は,過去のコンピュータの歴史の中でも,最も急速に進んでいる。最も激しい変化は,集積回路における新しい集積技術によるものである。今日,CPUは1辺が約1/4インチの1個のシリコン ・チップになってしまった。この1個のチップは,昔数個の筐体を必要とした機器を,それ1つで置き換えてしまう。その結果が,ポ ケット電卓に,あるいは無数の工業製品や消費者製品に見られるマイクロ・プロセッサである。

これらのマイクロ・プロセッサは,電子部品の設計と集積度の点で革新的である。コンピュータ形式の頭脳は,自動車のキャブレターから子供のゲーム盤や複雑な検査機械まで, ほとんどすべての装置に組み込まれている。この傾向は, 処理能力のより高いプロセッサを期待する方向に動いている。また,主メモリも新技術の思恵を受けている。先に述べたように,最近のメモリは以前のものより,より速く,より安くなっている。

I/O装置もまた変化している磁気記録面に,特にディスクに書き込むビッド密度は大幅に増加している。最近のパックの記憶容量は,10年前のそれよりも1桁以上大きくなっている。また,これらの装置の信頼性も向上し,より安くなっているプラスチック・シートや幅 広テープヘの高密度記録方式を用いた,新しい機種も出現している。これらの大容量記憶装置は,磁気テープ・リールの形をしたライブラリー全部をそれで置き換えるつもりで設計されている。

コンピュータの論理的な構成も,ある意味で大きく変化している。しかし,CPUに対する命令全体はほとんど変わっていない。なぜなら,既存の大手コンピュータ・メーカーは,彼らの現在の顧客にとって利用できない , 新たなシステムの開発を非常に嫌う。プログラムの新規開発,あるいはその修正に要する費用は高額であり,それは,ほとんどどの顧客も,現在のプログラムがそのまま使えないような新システムの導入など,考えもしないほどである。事実,今日,この分野への新規参入メーカ ーは,現在のシステムと互換性があるシステムを打ち出している。この最も顕著な例がAmdahl社のコンピュータ・システムで,一切変更せずに, IBM S/370用に書かれたプログラムを実行することができる。

アーキテクチャ:システムの違い
すべてのシステムは同じ方式 (プログラム内蔵,取出し―実行型の命令サイクル, I/O動作など)で動作するが,モデルが異なるシステム間や,異なるメーカーのシステム間には,少しの違いがある。これらの違いは, ワード長,メモリ容量,処理速度などの違いである。構成の選択,各種機能ユニット,命令などが,コンピュー タ・システムのアーキテクチャを形成する要因である。最近のシステムに見られるアーキテクチャの要因を,簡略にリストアップすると

・ワード当りのビット数
・ CPU当 りのレジスタ数
・メインフレーム当りのCPU数
・組み込まれる命令の選択とその動作
・命令形式
・命令の実行速度
・割込み機構
・アドレス方式
・主メモリの構成,サ イズ,速度
・ I/Oプロセッサの構成
・ I/Oプロセッサの速度,帯域
・ I/OプロセッサとI/O機器との接続方式
などである。

コンピュータ・システムは,極く小型のものから超大型のものまで幅広くある。システムの分類のために,以下のような大きさの範囲が一般的に用いられている (掲載した価格はおおよその目安である)。

マイクロ・プロセッサ・ベースのシステムーー「1チップ・コンピュータ」と呼ばれるもので,通常,1~2枚のプリント基板からなる(I/O機器を除いて,価格はS100~$1,000)

ミニ・コンピューターー通常,1個の筐体に納まる小型システム (価格は$2,500~$100,000強 )

中型コンピューターー大型のミニ・コンピュータ(ミニ・コンピュータより速く,メモリ大)で,通常,数個の筐体からなる (価格は$75,000~$400,000)

コンピュータ・システムーー伝統的な意味での(大,中,小の各種規模の)システムで,いくつかの筐体からなる (価格は$300,000~$10,000,000)

一般に,大型で高価なシステムほど,より大きなメモ リと,より高速な命令を持っている。また,大型システムは,高い同時処理能力を備えた幾つかのI/Oプロセッサと,たくさんのI/O装置を持つ。

アーキテクチャの最近の傾向は,複数のコンピュータ・システムを結ぶネットワークである。これを実現する方法は幾つかあるが,2つの基本的な技術がある。
(1)すべてのシステムが物理的に近くにあり,高速で高帯域の チャンネルで結ばれているものと
(2)幾つかのシステムが互いに離れて位置し,(低速,低帯域の)通信チャンネルで結ばれているものである。
ネットワークの目的は,単一のメインフレーム・システムに比べての,信頼性(あるいはアベイラビリティ)の向上と性能の向上である。

通信チャンネル,プロトコル(通信規約),ネットワーク・システムの管理方式 (主従関係型か分散型か)など,ネットワークの概念に対する多くの争点は,現在まだ未解決のままである。現在,これらは研究の途上にある間題で,幾つかの先駆的な実験も行われている。

多くの場合,システムの予想される利用方法が,新しいシステムを設計する際の選択枝の幾つかを,指定してしまうかもしれない 例えば,命令のアドレス部のサイズは,直接アドレス指定でアクセスできる主メモリのサイズを決めてしまう。もしアドレス部が小さければ,小さなメモリのみをシステムに組み込むか,メモリ・アドレスの構成のため,幾つかの補助レジスタが必要となる。ワード長の選択は,効率的に演算できる数値計算の種類を決定してしまう。ワードがあまり小さ過ぎれば,大き な数の処理が困難になる。また,システムにある種の演算を効率良く実行させるには,浮動小数点命令の存在が必要になるであろう。

数値に比べて,文字を頻繁に処理するシステムは,ワード内でバイトごとに操作できる特殊な命令の追加により,大きな恩恵を受ける。もしたくさんのI/O処理が 予想されるならば,システムの性能を十分に引き出す上で,幾つかのI/O処理を同時処理できる能力が重要である。コンピュータ・システムを設計するには,それやこれや数百にのぼる項目の検討が必要となる。これらのシステムの購入者としては,システムに期待されている利用方法と,有力な候補のシステムに関するアーキテクチャの特徴と,この両者をよく知らねばならない。

 本コラムは絶版となっている「IEハンドブック(サルベンティ編・日本能率協会訳・1986)」をアーカイブとして掲載するものです。このハンドブックの各章は多くの事例と理論を通して生産性向上に対するアイデアを提供するべく専門家によって執筆されています。基盤をなしているIEの考え方・原則はインダストリアル・エンジニアリングにかかわるすべてのひとに有用でしょう。

関連記事一覧

2019ものづくり公開セミナーガイド

B2Bデジタルマーケティングセミナー

ものづくり人材育成ソリューション

マーケティング分野オンラインセミナー