高校「情報Ⅰ」単語帳 - 第一学習社「高等学校 情報Ⅰ」 - コンピュータの仕組み
ハードウェア ⭐⭐⭐
コンピュータ本体や内部の装置、周辺機器などの物理的な実体を伴う装置や機器、およびその部品、部材のこと。それ自体には形がないソフトウェアと対比される。
コンピュータの場合、処理装置や記憶装置、入出力装置、電子基板、ケーブル類、筐体などの部品や部材、およびその総体として物理的実体としてのコンピュータのことをハードウェアという。「ハード」と略されることも多く、「HW」「H/W」などの略号で示されることもある。
これに対し、コンピュータプログラムやデータなど、それ自体は物理的な実体を伴わない要素のことを「ソフトウェア」(software)と総称する。ソフトウェアの記録や伝送、表示や実行には必ず何らかのハードウェアが必要となる。
コンピュータ以外の分野でも、施設や設備、機器、部品、資材といった物理的実体をハードウェアと呼ぶことがあり、付随する非物理的な要素と対比する文脈で用いられる。例えば、劇場の建物や設備をハードウェア、そこで催される公演をソフトウェアと呼んだり、教育機関の校舎や備品をハードウェア、提供される教育プログラムをソフトウェアと呼んだりすることがある。
英語の “hardware” の原義は金物、金属製品という意味で、機械や生活用品などについて、木製のものなどと対比して金属製であることを表す言葉だった。現代では金属製かどうかはあまり重視されず、工具や冶具、装置、設備、資材、軍用装備品などを広く総称する言葉として用いられることが多い。
制御装置 ⭐⭐⭐
機械やシステムの構成要素のうち、主に他の要素の動作の制御などの機能を担うもの。コンピュータの場合はCPUの機能の一部として内蔵されている。
コンピュータの制御装置
コンピュータを構成する装置のうち、他の装置の制御を行うものを制御装置と呼ぶ。演算装置、記憶装置、入力装置、出力装置と合わせてコンピュータの五大装置という。
現代のコンピュータではほとんどの場合、演算装置と共に中央処理装置(CPU:Central Processing Unit)という装置の一部として実装される。また、CPUはマイクロプロセッサ(MPU:Micro-Processing Unit)と呼ばれる単一の半導体集積回路(ICチップ)の形で提供されている。
制御装置は演算装置やレジスタ(CPU内部の記憶回路)を操作して命令の実行制御を行ったり、メインメモリ(RAM)などの記憶装置とプロセッサ間のデータや命令の読み出しや書き込みの制御、外部の装置との信号の入出力制御などを行う。
初期のコンピュータの設計では演算装置とは独立・分離していたが、現代のプロセッサにおいては両者が統合されて一体的に設計されるため、両者の区別にはほとんど意味がなくなり、「実行ユニット」「プロセッサコア」のような用語で呼ばれることも多い。
ALU 【Arithmetic and Logic Unit】 ⭐⭐⭐
コンピュータを構成する基本的な装置の一つで、算術演算(四則演算)や論理演算などの計算を行う装置。現代のコンピュータでは制御装置とともにマイクロプロセッサ(CPU/MPU)などの論理回路の一部として実装されている。
加算器や論理演算器などの演算回路を持ち、整数の加減算、論理否定(NOT)、論理和(OR)、論理積(AND)、排他的論理和(XOR)などの基本的な演算を行うことができる。
これらの回路を組み合わせて、乗算や除算、余剰、実数(浮動小数点数)演算、否定論理和(NOR)、否定論理積(NAND)などの演算ができるようになっているものもある。
記憶装置 ⭐
コンピュータの構成要素の一つで、データやプログラムの保存・記憶を行うための装置。レジスタやキャッシュメモリなどCPU内部の半導体メモリ、メインメモリ(主記憶装置/RAM)、ストレージ(外部記憶装置/補助記憶装置)などに分類される。
用途や実装方式、性能、コストなどにより様々な種類の装置があり、これらを組み合わせてコンピュータシステムを構成する。一般に、より高速に読み書き可能な装置ほどコストが高かったり永続的な記憶ができない(電源を落とすと内容が失われる)という特性があるため、小容量の高速な装置、中容量の中速の装置、大容量の低速で永続記憶可能な装置を組み合わせ、状況や使用頻度などに応じて使い分ける。このような階層型の構造を「記憶階層」(memory hierarchy)という。
プロセッサ内部の記憶装置
最も高速だが大きな容量を取ることができないのはCPU(MPU/マイクロプロセッサ)の半導体チップ上に設けられた記憶素子の集合で、中でも、論理回路が処理や演算に直接用いる「レジスタ」(register)は一般的なプロセッサで数十バイトしかないが最も高速に動作する。
また、直近に使用したデータや使用頻度の高いデータをチップ内に保持しておいて、すぐ参照できるようにするための記憶素子を「キャッシュメモリ」(cache memory)という。プロセッサによっては搭載しないこともあるが、数KB(キロバイト)から数百KB程度であることが多い。キャッシュメモリ内部にも記憶階層がある場合があり、より高速だが容量の少ない順に1次キャッシュ、2次キャッシュ、3次キャッシュ、と2~3段階で構成される。
メインメモリ
メインメモリは主記憶装置とも呼ばれ、現代のコンピュータの大半では半導体メモリ素子の一種であるRAM(Random Access Memory)が用いられる。現代のパソコンなどでは数GB(ギガバイト)程度の容量であることが多い。
CPUはストレージに直接アクセスできないため、実行中のソフトウェアが当座必要なデータやプログラムはメインメモリに置いておく必要がある。内容は起動時や必要になった時点でストレージから読み込まれ、CPUが処理した結果なども一旦メインメモリに置かれる。電源を落とすと内容が失われるため、永続的に保管しておきたいものはストレージに書き込む必要がある。
RAMのメモリチップそのものを主基板(マザーボード/メインボード)などに直に実装する場合もあるが、パソコンなど汎用的なコンピュータの多くは、メモリチップをいくつか実装した小さな基板であるメモリモジュールを主基板上の専用の差込口(メモリスロット)に差し込んで装着する。
ストレージ
ストレージはコンピュータの電源が切れても内容が失われない装置で、永続的に必要なデータやプログラムの保存に用いられる。RAMなどに比べ動作が低速な装置が大半で、また、CPUから直に読み書きできないため、コントローラICなどを通じて内容をメインメモリとの間でやり取りする必要がある。駆動装置(ドライブ)と記憶媒体(メディア)が一体化している装置と、取り外して交換できる装置があり、後者はメディアを追加することで全体の容量を増やすことができる。
パソコンなどで主要な記憶装置としてよく用いられるのは磁気ディスクを装置内に固定したハードディスク(HDD:Hard Disk Drive)で、現代では数百GBから数TB(テラバイト)の製品がよく用いられる。ハードディスクに代わって台頭しているのが不揮発の半導体メモリの一種であるフラッシュメモリを用いたSSD(Solid State Drive)で、フラッシュメモリを用いたストレージには他にUSBメモリやメモリーカードなどもある。
データやプログラムの運搬や配布などによく用いられるのがレーザーで内容の読み書きを行う光学ディスクで、登場順にCD、DVD、Blu-ray Disc(ブルーレイディスク/BD)などがあり、この順に容量が大きく読み書きも高速である。CDは音楽・音声の記録や販売に、DVDやBDは映像ソフトの記録や販売に特によく用いられる。
入力装置 【入力機器】 ⭐⭐⭐
コンピュータなどの機器本体にデータや情報、指示などを与えるための装置。一般的には人間が操作して入力を行う装置のことを指し、手指の動きや打鍵を電気信号に変換して伝達するキーボードやマウス、タッチパネルなどが該当する。
コンピュータの登場以前から、ボタンやレバー、ツマミ、ペダルなどの入力装置が機械の操作に用いられてきたが、情報機器ではこれらに加えてより複雑で汎用的な情報入力を実現するため、多数の操作要素や高度な機構を持つ装置が発明された。
例えば、文字が刻印された小さな鍵盤が敷き詰められたキーボード、手で位置や移動を入力するためのマウスなどのポインティングデバイス、画面表示と位置入力を兼用するタッチパネルなどが発達した。特殊なゴーグルなどを利用して視線の方向を検知し、画面上の位置を指示して入力する装置なども開発されている。
ビデオゲームでは、数種類のボタンやスティック、加速度センサーなどを手のひらサイズに収めたゲームコントローラ(ジョイパッド/ジョイスティック)が最も一般的な入力装置として用いられるほか、カメラやセンサーなどを組みわせて四肢の動きを検知するシステムが用いられたり、実在の機械を模した専用の装置(ハンドルやレバー、フットペダルを組み合わせたレースゲーム用筐体など)が用いられることもある。
広義には、人間の動作に限らず外界から情報を取り込んで電気信号やデジタルデータとしてコンピュータに伝達する機器全般が含まれる。マイクやイメージスキャナ、ビデオカメラ、デジタルカメラ、バーコードリーダー、指紋センサー、X線撮影装置、超音波診断装置、光学式読み取り装置(OCRやOMR)などである。
出力装置 【アウトプットデバイス】 ⭐⭐⭐
コンピュータが扱う情報を利用者に認識できる形式で提示する装置。ディスプレイやプリンタ、スピーカーなどが含まれる。
コンピュータシステムを構成する主要な装置の一つで、データを人間に認識できる形で外部に物理的に出力する装置である。光の像を投影して画面を映し出すディスプレイ(モニタ)やプロジェクタ、紙などに印字・印刷を行うプリンタやプロッタ、音声を発するスピーカーやイヤフォンなどが該当する。
主に人間の視覚や聴覚に働きかける原理の機器が多いが、振動で情報を知らせるバイブレーターや、ゲームコントローラなどで操作感(押しやすさ、回しやすさなど)を状況に応じて変化させるフォースフィードバック機構など、触覚を利用する装置もある。
映画館や体験型アミューズメント施設などに見られる、映像に合わせて霧や風を吹き出す装置なども広義には出力装置の一種と言える。未だ研究段階ながら、香り(触覚)や味(味覚)を動的に合成してコンピュータからの出力とする装置も構想されている。
これに対し、人間や環境、外部の機器から情報を取り込んでデータとしてコンピュータ本体に伝える装置を「入力装置」(input device:インプットデバイス)といい、キーボードやマウス、タッチパネル、ゲームコントローラ、マイク、イメージスキャナ、各種センサーなどが含まれる。
出力装置と入力装置を合わせて「入出力装置」(I/O device)と総称することもある。イヤホンマイクやプリンタ複合機(イメージスキャナとしても利用できるプリンタ)、振動機能付きコントローラなど、入出力の両方の機能を一体的に提供する装置もある。
メインメモリ 【主記憶装置】 ⭐⭐⭐
コンピュータ内部でデータやプログラムを記憶する記憶装置のうち、中央処理装置(CPU)と基板上の電気配線などを通じて直に接続されたもの。「メモリ」「RAM」とも呼ばれる。
CPUの命令によって直に読み書きが可能な記憶装置で、実行中のプログラムコードや当座の処理に必要なデータなどが保存される。外部記憶装置(ストレージ)に比べ読み書き動作は桁違いに高速だが、単価が高いため機器に搭載できる容量は何桁か少ないのが一般的である。
現代のコンピュータでメインメモリとして用いられるのは半導体記憶装置(半導体メモリ)のRAM(Random Access Memory)の一種であるDRAM(Dynamic RAM)がほとんどで、機器の電源を切るなどして装置への通電を止めると記憶内容が失われるという特性がある。
このため、データやプログラムの永続的な保管にはストレージを用い、コンピュータの起動時にメインメモリに必要なプログラムなどを読み込んで実行するという動作が基本となっている。
また、現代のCPU製品の多くは内部にDRAMよりも高速な「キャッシュメモリ」と呼ばれる記憶回路を内蔵しているが、これはDRAMとのやり取りを高速化する一時的な保管場所としてのみ用いられ、プログラムから明示的に動作を制御することはできないようになっている。
マイコン
マイクロコントローラあるいはマイクロコンピュータの略で、前者は組み込みシステム向けの統合型のICチップ、後者はパソコンの旧称を意味する。
マイクロコントローラ (MCU:Micro-Control Unit)
コンピュータの機能一式を一枚のICチップに実装した製品。家電製品や産業機械などの制御用コンピュータとして組み込まれる。
演算・制御装置(CPU)、メモリ装置(RAMやROM)、入出力回路(I/O)、タイマー回路などを一つの集積回路に実装した製品で、単体でコンピュータとしての一通りの機能を有する。マイクロコンピュータを含む制御システムを「マイコンシステム」あるいは「組み込みシステム」(エンベッドシステム:embedded system)という。
マイクロコンピュータは機器の制御という目的から、パソコンなどに内蔵されるマイクロプロセッサに比べ機能はシンプルで性能も低いが、安価で他に必要な部品も少なく、システム全体の基板面積や部品点数、消費電力を少なく抑えることができる。現在では家電からAV機器、携帯電話、産業機械、自動車などほとんどの電子・機械製品に何らかの形でマイクロコンピュータが組み込まれている。
マイクロコンピュータ
<$Img:Microcomputer.png|right|by sergeitokmakov from pixabay|https://pixabay.com/illustrations/old-computer-8bit-technology-retro-4962268/>個人向けの小型で安価な汎用コンピュータの、1970~80年代における一般的な名称。現在では一般的に「パーソナルコンピュータ」(パソコン、PC:Personal Computer)と呼ばれる製品カテゴリの創成期の呼称。
コンピュータといえば企業などの大きな組織が利用する大型汎用機(メインフレーム)やミニコンピュータ、オフィスコンピュータなどしかなかった1970年代後半、安価なマイクロプロセッサの発明により個人が家庭で使える汎用コンピュータとしてマイクロコンピュータが登場した。
当初は限られた好事家が購入・利用するに過ぎなかったが、性能や機能の向上、低価格化、優れたオペレーティングシステム(OS)や業務に使えるソフトウェアの登場などにより、次第にオフィスや家庭に普及していった。1980年代後半頃から「パソコン」という呼称が広まり始め、現在では歴史的な文脈以外でマイクロコンピュータと呼ぶことはほとんどない。
ENIAC 【Electronic Numerical Integrator And Calculator】 ⭐
1946年にアメリカで開発された、最も初期の電子計算機の一つ。現代のコンピュータの祖先の一つとして知られる。
第二次大戦中の1943年、米陸軍が弾道計算などのために高速な計算機の開発を計画し、ペンシルベニア大学のジョン・モークリー(John W. Mauchly)氏やジョン・エッカート(John P. Eckert)氏を中心とするグループに資金を提供して開発を依頼した。終戦後の1946年に完成し、陸軍施設で1955年まで稼働した。
筐体は大きなロッカーを横に並べたような形状で、全体で幅30m×奥行き90cm×高さ2.4m、重量は27トンにも達したという。約18,000個の真空管をはじめ、ダイオードやリレーなどの素子を数千から数万個ずつ用いており、全体で約150kWの電力を消費した。十進数で10桁の数を20個同時に記憶し、加減算なら毎秒数千回、乗算や除算は数十回から数百回を実行できた。
主な特徴
当時は機械式の電気計算機は存在したが、ENIACは可動部をなくし、すべての計算やデータの伝送を電気的に行うことで極めて高速な動作が可能となった。また、機械の物理量の変化で計算を行うアナログ式の計算機械も既に存在したが、ENIACは数値を一桁ずつ計算するデジタル式の計算機の魁の一つであった。
機器の構造上あらかじめ実行できる計算や用途が決まっている専用計算機がほとんどだった中、ENIACは配線やスイッチの接続状態などを変更して計算手順を変更できるように設計され、ある程度汎用的に様々な用途や計算に利用できた。条件分岐や繰り返しなどを含む複雑なコンピュータプログラムを実行することもできた。
このように今日のコンピュータに繋がる特徴の多くを備えていたが、現在一般的な二進法ではなく十進法で数値を表す点や、プログラム内蔵方式ではない(後期には改造されてわずかにプログラムを内蔵できるようになった)点など、現在のコンピュータとは大きく異なっている点もある。
「世界初」を巡って
ENIACは登場当初からの知名度や、その後のコンピュータの発展に与えた影響などから長らく「世界初の電子式デジタルコンピュータ」などと呼ばれてきたが、1949年に英国で開発された「EDSAC」(Electronic Delay Storage Automatic Calculator)の方がプログラム内蔵方式を実現している点で今日のコンピュータの元祖にふさわしいとする意見もある。
また、大戦中の軍事機密が数十年を経て公開されたり、当時の状況についての研究・検証が進むに連れ、ENIACより先に作られた「アタナソフ・ベリー・コンピュータ」(ABC:Atanasoff-Berry Computer、1941年米)や「ハーバード・マークワン」(Harvard Mark I、1944年米)、「Z3」(1943年独)、「コロッサス」(Colossus、1943年英)などが、いくつかの技術やアイデアでENIACより先んじていたことが明らかになっている。
ストレージ 【外部記憶装置】 ⭐⭐⭐
コンピュータの主要な構成要素の一つで、データを永続的に記憶する装置。磁気ディスク(ハードディスクなど)や光学ディスク(CD/DVD/Blu-ray Discなど)、フラッシュメモリ装置(USBメモリ/メモリカード/SSDなど)、磁気テープなどがこれにあたる。
一般的には通電しなくても記憶内容が維持される記憶装置を指し、コンピュータが利用するプログラムやデータなどを長期間に渡って固定的に保存したり、他の機器へのデータの運搬や複製、配布などのために用いられる。
コンピュータ内には補助記憶装置とは別に、半導体記憶素子などでデータの記憶を行う主記憶装置(メインメモリ)が内蔵されており、利用者がプログラムを起動してデータの処理を行う際には補助記憶装置から必要なものをメモリに呼び出して使う。
同じコンピュータに搭載される装置同士で比較すると、補助記憶装置はメモリに比べて記憶容量が数桁(数十~数千倍)大きく、容量あたりのコストが数桁小さいが、読み書きに要する時間が数桁大きい。一般的な構成のコンピュータではメインメモリ容量の百倍から千倍程度の容量の固定内蔵ストレージを用意することが多い。
記録原理による分類
補助記憶装置装置は駆動装置(ドライブ)が記憶媒体(メディア)を操作して、記憶素子の物理状態に信号を対応付けて記録する。様々な動作原理の装置があり、主に磁気を利用するもの、レーザー光を利用するもの、電荷(半導体素子)を利用するものに分けられる。
磁気記録方式の補助記憶装置には磁気テープやハードディスク、フロッピーディスクなどがある。平たい媒体表面の磁性体の磁化状態を変化させて信号を記録する装置で、媒体を薄いテープ状にしてリールに巻き取った「磁気テープ」と、平たい円盤(ディスク)状にして中心軸(スピンドル)で高速に回転させる「磁気ディスク」に分かれる。
一昔前まで補助記憶装置の大半を占めていた方式で、現在でもパソコンに内蔵される固定補助記憶装置としてハードディスクがよく用いられる。磁気テープは容量あたりの単価が極めて安いという特徴から、現在でも企業や官公庁などの大規模なデータ保管に用いられることがある。
光学記録方式の補助記憶装置はCDやDVD、Blu-ray Discなどの光学ディスクで、信号を媒体表面の細かな凹凸や化学的な状態の変化として記録し、高速で回転させながらレーザー光を照射して反射光の変化を読み取る。
製造時にデータを記録する読み出し専用ディスクと利用時にデータの書き込みや上書きができる追記型や書き換え型のディスクがあり、前者は映像やソフトウェアなどのコンテンツの販売で、後者は映像の録画やデータのバックアップ、機器間のデータの運搬などでよく利用される。
近年では、読み出し専用メモリ(ROM)から発展した書き換え可能な不揮発メモリ(電源を落としても内容が消えない半導体メモリ)であるフラッシュメモリの大容量化、低価格化が進み、補助記憶装置装置として広く普及している。ハードディスクの代わりに固定内蔵ストレージとして用いられる「SSD」(Solid State Drive)、携帯機器の内蔵ストレージ、データの運搬に用いられるUSBメモリやメモリーカードなどがフラッシュメモリを応用した補助記憶装置である。
<$Fig:storagecomparison|center|true>USB 【Universal Serial Bus】 ⭐
主にコンピュータと周辺機器を繋ぐのに用いられるコネクタおよびデータ伝送方式の標準規格。キーボードやマウス、プリンタ、外部ストレージ装置などの接続方式として広く普及しており、スマートフォンなどモバイル機器の充電や外部との通信でも標準的な接続方式となっている。
金属線ケーブルで機器間を結び、データ通信や電力供給を行うことができる。シリアル伝送方式を採用したバス型(信号線共有型)の接続規格で、一つの伝送路を最大127台までの機器で共有することができる。
コンピュータ側には通常1~4つ程度のポート(差込口)が用意されており、これで足りない場合は「USBハブ」と呼ばれる集線装置を介してポートを増やすことができる。機器本体の電源を落とさずにコネクタを着脱する「ホットプラグ」に対応している。
初期に普及した規格(USB 1.1)では12Mbps(メガビット毎秒)、最新の規格(USB4)では80Gbps(ギガビット毎秒)までの通信速度に対応する。当初はキーボードやマウスなどの入出力装置から普及が始まったが、通信速度が向上するに連れて、ネットワークアダプタ(EthernetアダプタやWi-Fiアダプタ)や外部接続の光学ドライブ、ハードディスクなどに利用が広がっていった。
フラッシュメモリを内蔵した親指大のストレージ装置である「USBメモリ」もよく使われており、以前のフロッピーディスクや書き込み型光学ディスク(CD-R/DVD-Rなど)に代わって手軽なデータの受け渡し手段として普及している。日常的にはこれを指して「USB」と呼ぶことも多い。
コネクタ形状
<$Img:USB-Connector.jpg|right|USB-Type Aコネクタ[PD]|https://commons.wikimedia.org/wiki/File:USB-Connector-Standard.jpg>コンピュータ側を想定した大きなコネクタ形状と、周辺機器側を想定した小さなコネクタ形状が規定されている。当初はコンピュータ側は長方形の「USB Type-A」、プリンタなどケーブルが別になっている周辺機器では正方形に近い「USB Type-B」が用いられた。
USB 2.0ではデジタルカメラなど小型の機器向けに、小さな台形に近い形状の「ミニUSB」(Mini-A/Mini-B/Mini-AB)が規定された。Aはコンピュータ側、Bは携帯機器側、ABは携帯機器同士の接続(USB On-The-Go)用だったが、B以外は廃止になり、Type-AとMini-Bを両端に持つケーブルが一般的となった。Miniよりもさらに小型化された「マイクロUSB」(Mirco-A/Micro-B)も規定され、スマートフォンやタブレット端末などでよく利用されている。
USB 3.0ではType-BとMicro-Bの形状が変更になり、従来と互換性のない形になった。新たな小型のコネクタ仕様として「USB Type-C」が規定され、これまでのすべてのコネクタを置き換える新世代の標準として普及が進められている。USB4以降はType-Cのみが標準とされ、過去のコネクタ形状は廃止となった。
給電機能
<$Img:USB-Bus-Power.png|right|>USBにはデータ通信だけでなくケーブルの金属線を利用した送電(電力供給)についての仕様も定めており、装置を駆動するのに必要な電力の供給やバッテリー充電などに用いられている。小さな電力であれば電源ケーブルをコンセントから別に引いてくる必要がなく、利便性が大きく向上した。
初期の規格から存在する「USBバスパワー」では、電圧5V、電流500mA、電力2.5Wまでの給電が可能で、キーボードなどの大きな電力を必要としない装置の駆動に用いられる。プリンタやハードディスクなど消費電力の大きな機器には足りないため、電源ケーブルで別途給電する必要がある。スマートフォンなど小型の機器や携帯機器ではUSBバスパワーが標準の充電方式になっていることも多い。
USB 3.1では従来より大電力の「USBパワーデリバリー」(USB PD:Power Delivery)が導入され、USB Type-Cケーブルを用いて100Wまでの電力供給が可能となった。液晶ディスプレイやコンピュータ本体などの電源ケーブルを代用できるほか、給電方向の切り替え、数珠繋ぎに他の機器を経由しての給電にも対応している。
USBデバイスクラス (USB device class)
<$Img:USB-Icon.png|right|>USBでは機器の種類ごとに標準の動作仕様と対応するドライバ仕様を「USBデバイスクラス」として規定しており、この範囲内の動作についてはオペレーティングシステム(OS)に付属する汎用ドライバだけで利用することができる。USBメモリを別のコンピュータに挿してすぐにデータが移せるのもこの仕組みを利用している。
以前の接続規格では個別の製品ごとに必ず製造元が提供するドライバソフトを導入しなければ通信できなかったが、デバイスクラスで規定された一般的な機能は個別のドライバ不要で動作する。機器に固有の機能を利用したい場合などには、これまで通り付属のドライバを導入して利用する形となる。
ポインティングデバイス
コンピュータの入力装置の分類の一つで、画面上での入力位置や座標を指定する機器の総称。マウスやタッチパネル、ペンタブレット、タッチパッド、トラックボール、ジョイスティックなどの種類がある。
画面内で操作を行いたい位置を入力することができ、表示された要素を指定して処理や操作を指示することができる。キーボードなどから文字で指示を与える方式に比べ、直感的に操作でき、操作法に習熟していない状態でも指示を出しやすい。
マウスなど手元で操作する機器の場合、画面上で対応する現在位置を示す絵記号が表示され、これを「ポインタ」(pointer)あるいは「カーソル」(cursor)という。手元の機器を操作すると、その動きに応じて画面上のポインタが移動するため、指示したい場所にポインタを重ねて操作を行う。
タッチパネル(タッチスクリーン)の場合には画面に接触位置を検知するセンサーが内蔵されており、指やペンなどで画面に直接触れ、その位置に操作の指示を行なうことができる。画面上にはポインタなどは表示されないことが多い。
アイコンやウィンドウなどのグラフィック表示とポインティングデバイスによる位置入力を基本とする操作体系(ユーザーインターフェース)を「GUI」(Graphical User Interface)という。現代では一般の利用者が使うコンピュータ製品のほとんどがGUIを備えており、何らかの形でポインティングデバイスを用いる。
センサー 【センサ】 ⭐
自然現象や対象の物理状態の変化などを捉え、信号やデータに変換して出力する装置や機器。光や音、温度、湿度、気圧、接触、圧力、電気、磁気、距離、速度、加速度、角速度、物質の濃度など、様々な現象や対象に対応する装置が存在する。
コンピュータと関わりの深いセンサーとしては、音声を電気信号に変換するマイク(マイクロフォン)や、受光素子が受けた光を電気信号に変換するイメージセンサー、タッチパネルなどで画面への指先の接触を検知する接触センサー、家庭用ゲーム機のコントローラーなどで動きや回転を捉える加速度センサーやジャイロスコープなどがある。
小型のセンサー機器に外部との通信機能やICチップによる高度な情報処理機能を統合し、データの蓄積や変換など何らかの処理を行ったり、複数のセンサー素子の情報を統合したり、ITシステムや機器の制御システムと連携する機能を持ったものを「スマートセンサー」(smart sensor)という。
また、電源と無線通信機能を内蔵した小型のセンサー機器を分散して設置し、それら協調して動作させることで、施設や設備の監視・制御や、環境や空間の観測などを行なう通信ネットワークを「センサネットワーク」(WSN:Wireless Sensor Network)という。
CPU 【Central Processing Unit】 ⭐⭐⭐
コンピュータの主要な構成要素の一つで、他の装置・回路の制御やデータの演算などを行う装置。演算装置と制御装置を統合したもので、現代では一枚のICチップに集積されたマイクロプロセッサ(MPU:Micro-Processing Unit)を用いる。
CPUはメインメモリ(RAM)に格納された機械語(マシン語)のプログラムを、バスを通じて一命令ずつ順番に読み出し(フェッチ)、その内容を解釈して行うべき動作を決定(デコード)し、内部の回路を駆動して実際に処理を実行する。現代のCPUの多くはマイクロプログラム制御方式を採用しており、機械語の一命令は、より細かな動作(マイクロコード)の組み合わせに分解されてから実行される。
命令セット
CPUは実行可能な命令の体系が決まっており、これを命令セット(instruction set)あるいは命令セットアーキテクチャ(ISA:Instruction Set Architecture)という。記憶装置から読み出されたどのようなビット列がどのような動作に対応するかを定めたもので、機械語のプログラムはこれを用いて記述される。
命令セットは各CPUの機種ごとに固有だが、同じメーカーの同じ系列の製品では同じ命令セットが採用されることが多く、その場合は異なる製品が同じプログラムを実行することができる。同じ命令セットでも製品の世代が下るに連れて新しい命令が追加されることが多く、新しいCPUは古いCPU向けのプログラムも実行できる一方、古いCPUは新しい命令セットのプログラムは実行できないという関係になる(後方互換性)。
有力なメーカーの製品には、別のメーカーが同じ命令セットを採用した互換CPU製品を開発・販売することもある。例えば、米インテル(Intel)社のx86命令セットは広く普及しており対応ソフトウェアが豊富なため、これをそのまま実行できる互換CPUを米AMD社などが製造している。
構造
一般的なCPUの内部は、命令の解釈や他の回路への動作の指示などを行う制御ユニット、論理演算や算術演算を行う演算ユニット(ALU:Arithmetic and Logic Unit)、データの一時的な記憶を行うレジスタ、外部との通信を行うインターフェース回路などで構成される。
また、レジスタとメインメモリのあまりに大きな速度差、容量差を埋めるため、両者の中間の速度と容量を併せ持つキャッシュメモリが内蔵されることが多く、浮動小数点演算に特化した演算ユニット(FPU:Floating-Point Unit)なども標準搭載されることが多い。
以前はマザーボード上のチップセットや単体のICチップとして提供されてきた、メモリコントローラやI/Oコントローラ、グラフィックス処理(GPU)などの機能が統合された製品も数多く登場している。コンピュータに必要な機能のほとんどをCPUの内部に統合した製品はSoC(System-on-a-Chip)と呼ばれる。
性能
内部の演算回路やレジスタが一回の動作でまとめて伝送、保存、処理できるビット数が決まっており、この値が大きいほど一度に多くのデータを処理でき、また、広大なメモリ空間を一元的に管理できる。
一度にnビットのデータを処理できるCPUをnビットCPUというように呼び、CPUが発明された当初は4ビットであったが、8ビット、16ビット、32ビットと拡張されてゆき、現代では64ビットCPUが広く普及している。
また、ほとんどのCPUはコンピュータ内部の特殊な回路から一定周期で発信されるクロック信号に合わせて動作するようにできている。より高い周波数の信号で動作するものほど、単位時間あたりに多くの動作を行うことができ、性能が高い。例えば、2GHz(ギガヘルツ:毎秒10億回)で動作するCPUと1GHzのCPUならば、他の仕様が同じなら約2倍の速度差がある。
並行処理
単純な構造のCPUは一つの命令列から一つずつ順番に命令を取り出し実行していくが、現在のCPU製品の多くは、何らかの形で複数の命令、あるいは複数の命令列を同時並行に処理できる機能を内蔵しており、クロックあたりの性能を引き上げている。
よく用いられるのはパイプライン処理で、一つの命令を複数の段階に分割してそれぞれを別の回路で実行することにより、いくつかの命令の実行を並行して進めることができる。ある命令が実行段階にあるとき、次の命令がデコードを、その次の命令がフェッチを行うといったように、前の命令の完了を待たずに空いた回路に先行して次の命令を投入する方式である。
また、大抵の命令は限られた回路しか利用しないという性質を利用して、空いている回路で実行できる別の命令を同時に投入する方式を同時マルチスレッディング(SMT:Simultaneous Multithreading)という。擬似的に二つのプログラムを並行に実行することができ、最良の場合で数割の性能向上が果たせる。Intel社のCPUに内蔵されるハイパースレッディング(Hyper-Threading)機能が有名である。
一つの半導体チップの内部に、命令の解釈・実行を行うユニット(CPUコア)自体を複数搭載するという手法も広まっており、マルチコアプロセッサ(multi-core processor)という。それぞれが独立して別のプログラムを並列に実行でき、複数のCPUを搭載するのとほとんど同じ効果を得ることができる。ちなみに、一台のコンピュータに複数のCPUを内蔵する方式はマルチプロセッサ(multiprocessor)という。
論理回路 ⭐⭐
デジタル信号を処理して論理演算や記憶などを行うための電子回路。単純な論理演算を行う回路を膨大な数組み合わせればCPU(MPU/マイクロプロセッサ)のような複雑な装置を作ることができる。
二状態のいずれかを取るデジタル信号を入力および出力とする論理素子を配線で結び、様々な論理演算や記憶を行う回路を構成する。信号の状態は論理的には2進数の「0」と「1」、あるいは真偽値(真理値/ブール値)の「真」と「偽」に対応し、物理的には電圧の高低で表すことが多い。高電圧を「真」や「1」に対応付ける方式を「正論理」、逆を「負論理」という。
論理素子は「論理ゲート」(logic gate)とも呼ばれ、何らかの論理演算を行う機能を持った単体の素子である。一つ以上の入力を取り、所定の演算を行って一つの信号を出力する。実際の電子回路上では抵抗やトランジスタなど複数の電子部品を組み合わせて実装される。図で表す際の記号には標準規格があり、MIL記号やJIS記号などがよく用いられる。
基本的なゲートとして、否定(NOT)演算を行う「NOTゲート」、論理和(OR)演算を行う「ORゲート」、論理積(AND)演算を行う「ANDゲート」、排他的論理和(XOR)演算を行う「XORゲート」、否定論理和(NOR)演算を行う「NORゲート」、否定論理積(NAND)演算を行う「NANDゲート」などがある。複雑な挙動の論理回路もほとんどがこれらの組み合わせで構成されている。
<$Fig:logic|center|false>現在の入力のみから出力を決定する回路を「組み合わせ回路」(combinational logic)と呼び、加算を行う加算器のように演算を行う回路などが該当する。一方、内部に状態を持ち、過去の入力で変更された現在の内部状態と入力を組み合わせて出力を決定する回路を「順序回路」(sequential logic)という。フリップフロップ回路(ラッチ回路)やカウンタ回路などが該当する。
論理演算 【ブーリアン演算】 ⭐
真(true)と偽(false)の二通りの状態を取る真偽値(真理値/ブール値)の間で行われる演算。コンピュータでは真を1に、偽を0に対応付けたビット演算として行われることが多い。
入力が一つの単項演算として、入力値の反対の値を出力する「否定」(NOT A:Aではない)がある。入力が二つの二項演算には、どちらかが真なら真を出力する「論理和」(A OR B:AまたはB)、両者とも真の時のみ真を出力する「論理積」(A AND B:AかつB)、両者が異なる時に真を出力する「排他的論理和」(XOR:eXclusive OR)がある。
電子回路などでは、論理和と否定を組み合わせた「否定論理和」(NOR:Not OR)、論理積と否定を組み合わせた「否定論理積」(NAND:Not AND)が用いられることもある。排他的論理和と否定を組み合わせた「否定排他的論理和」(XNOR)は値が同じとき真、異なるとき偽となるため「同値」(EQ:equal)とも呼ばれる。
<$Fig:logic|center|false>三項以上を計算する際は二項ずつの計算を繰り返すことで結果が得られる。その際、四則演算のように交換法則や分配法則、結合法則、ド・モルガンの法則などが成り立つ。すべての論理演算はNOT、AND、ORの三つの組み合わせで構成できるが、この三つはすべてNANDの組み合わせで構成でき、NANDだけですべての論理演算を記述できることが知られている。
コンピュータでは真偽値自体の演算(プログラミング言語におけるブール型の値の演算など)の他に、真を1、偽を0に置き換えてビット間で論理演算を行うことがある。ビット列について論理演算を行う場合は二つのビット列のぞれぞれ対応する位置にあるビット同士で論理演算を行う。
このような演算方式を真偽値の論理演算と区別して「ビット演算」(bitwise operation)と呼ぶこともある。なお、ビット演算には論理演算に相当する演算以外にも、シフト演算やローテート演算などビット列を左右に移動する操作もある。
プログラミング言語では算術演算などと並んで最も基本的な演算の一つとして論理演算が用意されていることが多く、論理演算子によって式を記述する。演算子は「&&」のような記号を用いる場合と、「and」のような英単語をそのまま用いる場合がある。C言語の「&」と「&&」のように、論理演算と対応するビット演算にはそれぞれ別の演算子が与えられていることが多い。
真理値表 【真偽表】 ⭐⭐
ある論理回路や論理式について、考えられるすべての入力の組み合わせと、対応する出力を一つの表に書き表したもの。
真理値(ブール値/真偽値)は論理演算などで用いられる値で、「真」(true)と「偽」(false)の2値のいずれかを取る値である。コンピュータ上ではすべての情報を「1」と「0」を並べた2進数で表すため、真と1を、偽と0を対応付けて論理回路で様々な処理を行う。
真理値表は論理演算の入力値と出力値の対応関係を図に表したもので、一般的な形式では表の左側の列に入力を、右側の列に出力をそれぞれ並べる。各行に入力の組み合わせと、その時の出力を記入していく。各項には「1」(あるいは「真」「Truth」「T」)か「0」(あるいは「偽」「False」「F」)のどちらかを記入する。
行数
<$Fig:truthtable|right|true>入力が1つ(NOT演算)の場合は入力「0」と「1」の2行で表され、入力が2つの場合は「0-0」「0-1」「1-0」「1-1」の4行となる。同様に、3入力では8行、4入力では16行というように、2の入力数乗が表の行数となる。
列数
ある特定の論理演算の結果を示す場合は出力は1列となるが、複数の異なる演算について結果を比較するために、それぞれの演算ごとに列を用意する(列名部分に演算内容を記述する)場合もある。論理回路の動作を示す表の場合には、出力の数だけ列を用意し、それぞれの演算結果を書き込んでいく。
ゲート
門、門扉、出入り口、通路、開閉する、などの意味を持つ英単語。
半導体の分野では、電界効果トランジスタ(FET:Field Emission Transistor)において、ソースとドレインの間の絶縁体の上に置かれた電極のことを論理ゲートという。ここに電圧を加えることでソース-ドレイン間の電流を遮断したり通したりすることができ、開閉できる門のような役割を果たすためこのように呼ばれる。
論理ゲート (logic gate)
半導体集積回路(ICチップ/LSIチップ)を構成する、最も基本的な論理演算を実行する論理回路の最小単位を「論理論理ゲート」(logic gate)あるいは単に論理ゲートという。
論理演算の種類に対応してNOT論理ゲート、AND論理ゲート、OR論理ゲート、XOR論理ゲート、NAND論理ゲート、NOR論理ゲート、XNOR論理ゲートなどの種類があり、複雑・大規模な論理回路はこれら基本的な論理論理ゲートを組み合わせて構成されている。
ICチップの規模(集積度)を計る単位として、いくつの論理論理ゲートを繋ぎ合わせて作られたかを表す「論理ゲート数」(単位:論理ゲート)が用いられることもある。
AND回路 【AND gate】 ⭐⭐
基本的な論理回路の一つで、二つの入力と一つの出力を持ち、入力がいずれも「H」(Hight:高電圧)のときのみ出力が「H」となり、それ以外の場合は出力が「L」(Low:低電圧)となるもの。論理積(AND)演算を行う回路である。
正論理の場合、入力の両方が「H」のとき出力が「H」となり、片方あるいは両方が「L」のとき出力が「L」となる(負論理の場合はこの逆)。「H」と「L」を2進数の「1」と「0」に対応付ければビット論理積(ビットAND)演算を、真理値の「真」(true)と「偽」(false)に対応付ければ論理演算のAND演算を行うことができる。
現在の入力のみから出力が決まる組み合わせ回路の一つで、最も基本的な論理ゲートの一つである。回路図に用いる記号をIEC、MIL/ANSI、DINの各規格がそれぞれ定めており、JIS規格はIEC記号に準拠している。AND回路が用意されていない場合でも、NAND回路あるいはNOR回路(のみ)の組み合わせでAND回路を構成することができる。
OR回路 【OR gate】 ⭐⭐
基本的な論理回路の一つで、二つの入力と一つの出力を持ち、入力のいずれもが「L」(Low:低電圧)のときに出力が「L」となり、それ以外の場合は出力が「H」(High:高電圧)となるもの。論理和(OR)演算を行う回路である。
正論理の場合、入力の片方あるいは両方が「H」のとき出力が「H」となり、両方「L」のときのみ出力が「L」となる(負論理の場合はこの逆)。「H」と「L」を2進数の「1」と「0」に対応付ければビット論理和(ビットOR)演算を、真理値の「真」(true)と「偽」(false)に対応付ければ論理演算のOR演算を行うことができる。
現在の入力のみから出力が決まる組み合わせ回路の一つで、最も基本的な論理ゲートの一つである。回路図に用いる記号をIEC、MIL/ANSI、DINの各規格がそれぞれ定めており、JIS規格はIEC記号に準拠している。OR回路が用意されていない場合でも、NAND回路あるいはNOR回路(のみ)の組み合わせでOR回路を構成することができる。
NOT回路 【NOT gate】 ⭐⭐
基本的な論理回路の一つで、一つの入力と一つの出力を持ち、入力の逆の状態を出力するもの。論理否定(NOT)演算を行う回路である。
入力が「H」(High:高電圧)なら出力は「L」(Low:低電圧)、入力が「L」なら出力は「H」となる。「H」と「L」を2進数の「1」と「0」に対応付ければビット否定(ビットNOT)演算を、真理値の「真」(true)と「偽」(false)に対応付ければ論理演算のNOT演算を行うことができる。
最も基本的な論理ゲートの一つで、様々なデジタル回路の構成部品として用いられる。回路図に用いる記号をIEC、MIL/ANSI、DINの各規格がそれぞれ定めており、JIS規格はIEC記号に準拠している。NOT回路が用意されていない場合でも、NAND回路あるいはNOR回路を用いてNOT回路を構成することができる。
XOR回路 【XOR gate】 ⭐
基本的な論理回路の一つで、二つの入力と一つの出力を持ち、二つの入力が一致する時に「L」(Low:低電圧)となり、不一致のとき「H」(High:高電圧)となるもの。排他的論理和(XOR)演算を行う回路である。
正論理の場合、入力の片方が「H」、もう片方が「L」のとき出力が「H」となり、両方「H」または「L」のとき出力が「L」となる(負論理の場合はこの逆)。「H」と「L」を2進数の「1」と「0」に対応付ければビットXOR演算を、真理値の「真」(true)と「偽」(false)に対応付ければ論理演算のXOR演算を行うことができる。
現在の入力のみから出力が決まる組み合わせ回路の一つで、最も基本的な論理ゲートの一つである。回路図に用いる記号をIEC、MIL/ANSI、DINの各規格がそれぞれ定めており、JIS規格はIEC記号に準拠している。XOR回路が用意されていない場合でも、NAND回路あるいはNOR回路(のみ)の組み合わせでXOR回路を構成することができる。
NAND回路 【NAND gate】 ⭐
基本的な論理回路の一つで、二つの入力と一つの出力を持ち、入力が両方「H」(High:高電圧)のときのみ出力が「「L」(Low:低電圧)となり、それ以外の場合は出力が「H」となるもの。論理積(AND)の結果を反転(NOT)した否定論理積(NAND)演算を行う回路である。
正論理の場合、入力の片方あるいは両方が「L」のときに出力が「H」となり、両方「H」のとき「L」となる(負論理の場合はこの逆)。「H」と「L」を2進数の「1」と「0」に対応付ければビットNAND演算を、真理値の「真」(true)と「偽」(false)に対応付ければ論理演算のNAND演算を行うことができる。
現在の入力のみから出力が決まる組み合わせ回路の一つで、最も基本的な論理ゲートの一つである。回路図に用いる記号をIEC、MIL/ANSI、DINの各規格がそれぞれ定めており、JIS規格はIEC記号に準拠している。
「機能的完全性」(functional completeness)を備え、AND回路やOR回路、NOT回路などの基本的な論理ゲート、あるいは加算器などのより複雑な回路を含め、任意の論理回路はNAND回路のみの組み合わせで実装できることが知られている。また、他の論理ゲートより少ない半導体素子(トランジスタなど)で実装できるため実用上もよく利用される。
半加算器 【ハーフアダー】 ⭐⭐
2進数の加算(足し算)を行う論理回路(加算器)のうち、下の桁からの繰り上がりを考慮せず、単純に二数の和のみを求める回路のこと。より複雑な加算器の構成要素となる。
加算を行う回路を加算器というが、半加算器は2つのビット列の同じ桁の値同士を加算し、その桁の加算後の値と、上位桁への繰り上がりの有無を表す「キャリー」(carry out)の2つを出力する。キャリー出力は繰り上がりがなければ「0」、あれば「1」となる。
2つのビットが両方「0」ならその桁の値として「0」(0+0=0)を、片方が「1」なら「1」(0+1=1, 1+0=0)を出力するが、両方「1」ならば結果は「10」(1+1=10)と2桁の値になるため、その桁の値として「0」を、キャリーとして「1」を出力する。キャリーは隣の上位桁の全加算器に入力される。
半加算器は基本的な論理回路の組み合わせで構成でき、AND回路2つ、OR回路1つ、NOT回路1つで作ることができる。XOR回路が利用可能であれば、XOR回路1つとAND回路1つで構成することもできる。
半加算器は下の桁からの繰り上がりを考慮しないため、そのままでは最下位桁の加算にしか使えない。下の桁からの繰り上がりを入力として受け付けるものは「全加算器」(full adder:フルアダー)と呼ばれ、2つの半加算器とOR回路により構成することができる。最下位桁以外の加算には全加算器が用いられる。
ビット ⭐⭐⭐
情報量の最小単位で、二つの選択肢から一つを特定する情報の量。コンピュータなどでは0と1のいずれかを取る二進数の一桁として表される。
語源は “binary digit” (二進法の数字)を繋げて省略した表現と言われる。情報をすべてビット列に置き換えて扱うことを「デジタル」(digital)という。1ビットのデータが表す情報量は、投げたコインの表裏のように、二つの状態のいずれであるかを示すことができる。
複数のビットを連ねて一つのデータとすることで、2ビットなら4状態(22)、3ビットなら8状態(23)といったように、より多い選択肢を識別できる。一般に、nビットのデータは2のn乗個までの選択肢からなる情報を表現することができる。
例えば、大文字のラテンアルファベットは「A」から「Z」の26文字であるため、これを識別するのには4ビット(16値)では足りず、5ビット(32値)が必要となる。小文字を加えると52文字であるため、6ビット(64値)が必要となる。
派生単位
データの読み書きや伝送を行う場合、その速さを表す単位として1秒あたりの伝送ビット数であるビット毎秒(bps:bit per second)という派生単位が用いられる。
また、実用上はビットでは値が大きくなりすぎて不便なことも多いため、8ビットをまとめて一つのデータとした「バイト」(byte)という単位を用いる場面も多い。かつて何ビットを1バイトとするか機種により様々に分かれていた(7ビットバイトや9ビットバイトなどが存在した)名残りで、8ビットの集まりを「オクテット」(octet)とも呼ぶ。
倍量単位
大きな量を表す際には、SI単位系に則って接頭辞を付した倍量単位を用いる場合がある。
- 1000ビットを「キロビット」(kbit:kilobit)
- 100万ビットを「メガビット」(Mbit:megabit)
- 10億ビットを「ギガビット」(Gbit:gigabit)
- 1兆ビットを「テラビット」(Tbit:terabit)
- 1000兆ビットを「ペタビット」(Pbit:petabit)
- 100京ビットを「エクサビット」(Ebit:exabit)
という。また、コンピュータでは2の冪乗を区切りとするのが都合が良いことが多いため、独自の接頭辞を付した倍量単位が用いられることもある。
- 210(1024)ビットを「キビビット」(Kibit:kibibit)
- 220(約104万)ビットを「メビビット」あるいは「ミービビット」(Mibit:mebibit)
- 230(約10億7千万)ビットを「ギビビット」(Gibit:gibibit)
- 240(約1兆1千億)ビットを「テビビット」あるいは「ティービビット」(Tibit:tebibit)
- 250(約1126兆)ビットを「ペビビット」あるいは「ピービビット」(Pibit:pebibit)
- 260(約115京)ビットを「エクスビビット」あるいは「イクシビビット」(Eibit:exibibit)
という。この2進専用の接頭辞はIEC(国際電気標準会議)が標準化しており、一般にはあまり馴染みがないが記憶容量の表記などで用いられることがある。
2の補数 ⭐
ある自然数を2進数(2進法)で表現した時に、足し合わせるとちょうど桁が一つ増える最小の数のこと。コンピュータにおける負の整数の表現や数値演算などに応用される。
2進数における「基数の補数」と呼ばれる数で、ある数に足し合わせることで桁が一つ増え、最上位桁(値は「1」となる)以外はすべて「0」となるような数を指す。例えば、8桁の2進数「10010110」に対する2の補数は「1101010」であり、両者を足し合わせるとちょうど9桁の「100000000」となる。
これに対し、元の数に足し合わせると桁上りせず最も大きな数(「1111…」とすべての桁が1になる)となる補数は「1の補数」(2進数における減基数の補数)と呼ばれる。コンピュータでは1の補数はビット反転(NOT演算)によって求めることができ、これに1を加えると2の補数となる。
なお、2進数に限定せず2の補数という場合は、3進数における減基数の補数を指す場合もある。元の数に足し合わせると桁上りせず「2222…」とすべての桁が2になる数のことである。
ソフトウェア ⭐⭐⭐
コンピュータを動作させる命令の集まりであるコンピュータプログラムを組み合わせ、何らかの機能や目的を果たすようまとめたもの。プログラムが動作するのに必要なデータも含まれる。
コンピュータを構成する電子回路や装置などの物理的実体を「ハードウェア」(hardware)と呼ぶのに対し、それ自体は形を持たないプログラムや付随するデータなどをソフトウェアという。物理的には記憶装置(ストレージやメモリなど)の記録媒体における電気的あるいは磁気的、光学的な信号として存在する。
ソフトウェアはその役割により、ハードウェアの制御や他のソフトウェアへの基盤的な機能の提供、利用者への基本的な操作手段の提供などを行なう「オペレーティングシステム」(OS:Operating System/基本ソフト)と、特定の個別的な機能や目的のために作られた「アプリケーションソフト」(application software/応用ソフト)に大別される。
これらに加え、ハードウェアに組み込まれ基本的な制御を行う「ファームウェア」(firmware)や、OSとアプリケーションソフトの中間で特定分野の基本機能や共通機能を提供する「ミドルウェア」(middleware)などの分類が用いられることもある。
日本語の外来語としては慣用的に「ソフト」と略称することが多いが、英語の “soft” は「柔らかい」という形容詞の意味しかなく、組織名や製品名のネーミングなどで接頭辞や接尾辞のように用いられる場合などを除き、省略せず “software” と綴る。「SW」「S/W」などの略号で示されることもある。
プログラム以外の用例
コンピュータプログラムは含まないが、何らかの機器を介して内容の再生や鑑賞を行う記録物のことをソフトウェアと呼ぶ場合がある。例えば、音楽CDのような音声の記録物を「音楽ソフト」、DVD-Videoのような動画の記録物を「映像ソフト」のように呼ぶ。
IT関連以外の分野でも、施設や設備、機器、道具などの物理的実体と対比して、組織や業務、事業、催し、知識、技能、情報、記録といった人間の活動に属する無形の事柄をソフトウェアと呼ぶ場合がある。
記録物やイベントなどの用法については「コンテンツ」(content)もほぼ同義語であり、20世紀にはソフトと呼ぶことが多かった分野や業界でも現在ではコンテンツと呼ぶ方が一般的な場合が多い。
OS 【Operating System】 ⭐⭐⭐
ソフトウェアの種類の一つで、機器の基本的な管理や制御のための機能や、多くのソフトウェアが共通して利用する基本的な機能などを実装した、システム全体を管理するソフトウェア。
CPU(MPU/マイクロプロセッサ)や主記憶装置(メインメモリ)、外部記憶装置(ストレージ)、入出力装置などコンピュータのハードウェア資源の管理、外部の別の装置やネットワークとのデータ通信の制御などが主な役割で、コンピュータに電源が投入されると最初に起動し、電源が落とされるまで動作し続ける。
利用者に対するコンピュータの基本的な操作手段も提供し、入力装置による操作の受け付けや出力装置への情報の提示、基本ソフト自体が備える様々な機能の実行、記憶装置内に格納されたプログラムの起動や終了、ストレージに格納されたファイルやディレクトリの操作などを行うことができる。
アプリケーションソフトとの関係
基本ソフトの機能を利用し、OSの上で動作するソフトウェアを「アプリケーションソフト」(application software/応用ソフト)という。アプリケーションの開発者は、呼び出し規約(API:Application Programming Interface)に基づいて基本ソフトの提供する機能を利用することができ、開発の手間を省き操作性を統一することができる。
また、ハードウェアの仕様の細かな違いは基本ソフトが吸収してくれるため、ある基本ソフト向けに開発されたアプリケーションは、基本的にはその基本ソフトが動作する他のコンピュータでも使用できる。ただし、CPUの種類が異なるなど根本的な仕様が異なる場合は、同じOSでも機種ごとに調整されたプログラムが必要となる。
OSの種類
OSは動作する機器の種類や目的などに応じていくつかの異なるタイプに分かれる。最も一般的なのはパソコンやサーバなどの汎用コンピュータ向けの汎用OSで、サーバコンピュータの運用に特化した「サーバOS」、利用者が操作する端末での利用を想定した「クライアントOS」などに分かれる。
汎用OS以外にも、デジタル家電や産業機械などに制御用として組み込まれた特定目的の専用コンピュータの制御に特化した「組み込みOS」がある。中でも、乗り物の駆動装置の制御など、リアルタイム性の高い制御プログラムの実行に特化した設計のOSは「リアルタイムOS」と呼ばれる。
パソコン向けのOSとして広く利用されているものには米マイクロソフト(Microsoft)社の「Windows」シリーズや米アップル(Apple)社の「macOS」(旧Mac OS X)シリーズなどがある。サーバ向けのOSとしては「Linux」などのいわゆるUNIX系OSや、サーバ向けWindowsである「Windows Server」シリーズなどがよく知られる。スマートフォンやタブレット端末などのモバイル機器では米グーグル(Google)社の「Android」とApple社の「iOS」(iPad OS/watchOS)が市場を二分する。
OS 【Operating System】 ⭐⭐⭐
ソフトウェアの種類の一つで、機器の基本的な管理や制御のための機能や、多くのソフトウェアが共通して利用する基本的な機能などを実装した、システム全体を管理するソフトウェア。
CPU(MPU/マイクロプロセッサ)や主記憶装置(メインメモリ)、外部記憶装置(ストレージ)、入出力装置などコンピュータのハードウェア資源の管理、外部の別の装置やネットワークとのデータ通信の制御などが主な役割で、コンピュータに電源が投入されると最初に起動し、電源が落とされるまで動作し続ける。
利用者に対するコンピュータの基本的な操作手段も提供し、入力装置による操作の受け付けや出力装置への情報の提示、オペレーティングシステム自体が備える様々な機能の実行、記憶装置内に格納されたプログラムの起動や終了、ストレージに格納されたファイルやディレクトリの操作などを行うことができる。
アプリケーションソフトとの関係
オペレーティングシステムの機能を利用し、OSの上で動作するソフトウェアを「アプリケーションソフト」(application software/応用ソフト)という。アプリケーションの開発者は、呼び出し規約(API:Application Programming Interface)に基づいてオペレーティングシステムの提供する機能を利用することができ、開発の手間を省き操作性を統一することができる。
また、ハードウェアの仕様の細かな違いはオペレーティングシステムが吸収してくれるため、あるオペレーティングシステム向けに開発されたアプリケーションは、基本的にはそのオペレーティングシステムが動作する他のコンピュータでも使用できる。ただし、CPUの種類が異なるなど根本的な仕様が異なる場合は、同じOSでも機種ごとに調整されたプログラムが必要となる。
OSの種類
OSは動作する機器の種類や目的などに応じていくつかの異なるタイプに分かれる。最も一般的なのはパソコンやサーバなどの汎用コンピュータ向けの汎用OSで、サーバコンピュータの運用に特化した「サーバOS」、利用者が操作する端末での利用を想定した「クライアントOS」などに分かれる。
汎用OS以外にも、デジタル家電や産業機械などに制御用として組み込まれた特定目的の専用コンピュータの制御に特化した「組み込みOS」がある。中でも、乗り物の駆動装置の制御など、リアルタイム性の高い制御プログラムの実行に特化した設計のOSは「リアルタイムOS」と呼ばれる。
パソコン向けのOSとして広く利用されているものには米マイクロソフト(Microsoft)社の「Windows」シリーズや米アップル(Apple)社の「macOS」(旧Mac OS X)シリーズなどがある。サーバ向けのOSとしては「Linux」などのいわゆるUNIX系OSや、サーバ向けWindowsである「Windows Server」シリーズなどがよく知られる。スマートフォンやタブレット端末などのモバイル機器では米グーグル(Google)社の「Android」とApple社の「iOS」(iPad OS/watchOS)が市場を二分する。
デバイスドライバ 【ドライバソフト】 ⭐
コンピュータ内部に装着された装置や、外部に接続した機器などのハードウェアを制御・操作するためのソフトウェア。OSの一部として取り込まれて一体的に動作する。
オペレーティングシステム(OS)がハードウェアを制御するための橋渡しを行なうプログラムで、利用者が直接操作することは稀で、OSに組み込まれてその機能の一部として振舞うようにできている。単に「ドライバ」と呼ばれることも多い。
OSや各プログラムは定められた手順でデバイスドライバに処理を依頼する形を取ることで、それぞれが個別のハードウェアの制御仕様に直接対応する必要がなくなり、また、機種の違いに依らず同じ機能は同じ手順で利用することができるようになる。
個別ドライバと標準ドライバ
個々のハードウェアはそれぞれ固有の機能や制御仕様を持っているため、原則として機種ごとに対応するデバイスドライバを入手・導入しなければ使用・操作することはできない。
ただし、キーボードやマウスなど機種毎の機能や仕様の差異が小さい装置については業界団体や有力メーカーが主導して共通仕様が定められている場合があり、OSに付属する標準のドライバ(ジェネリックドライバなどと呼ばれる)で大半の機能を使用できることが多い。
ドライバの入手・導入
コンピュータ周辺機器はパッケージの一部として添付された記憶メディアに電子マニュアルやユーティリティソフトなどとともにデバイスドライバが同梱され、簡単な操作でOSに導入できるようになっていることが多い。
また、開発元のWebサイトでダウンロードできるようになっている場合もあるほか、Windows UpdateなどOSのソフトウェア更新プログラムを経由して入手できるようになっていることもある。
デバイスドライバはOSごとに開発する必要があるため、Windowsのような有力なOSではほとんどのメーカーがデバイスドライバを用意しているが、マイナーなOSだと物理的に装着できてもドライバが提供されず使用できない場合がある。
ファイル ⭐⭐
コンピュータにおけるデータの管理単位の一つで、ストレージ装置(外部記憶装置)などにデータを記録する際に利用者やオペレーティングシステム(OS)から見て最小の記録単位となるデータのまとまり。
利用者がコンピュータを用いて記憶媒体にデータを保存、読み込み、移動、削除などする際に一つのまとまりとして取り扱うデータの集合を表し、OSの一部であるファイルシステム(file system)によって管理される。
ハードディスクやSSD、USBメモリ、光学ディスク(CD/DVD/Blu-ray Disc)などの記憶装置・記憶媒体を利用する際に用いられるほか、コンピュータと周辺機器の間やコンピュータ間の通信においてもデータの送受信単位として利用される。
ディレクトリとパス
ファイルシステムは記憶媒体内でファイルの作成や削除、上書き、移動、複製などを管理する仕組みで、複数のファイルをまとめて一つの集まりとして扱う「ディレクトリ」(directory)や「フォルダ」(folder)などの入れ物(領域)を作成することもできる。
ディレクトリやフォルダの中に別のディレクトリやフォルダを作成し、入れ子状にすることもでき、記憶媒体全体を階層構造に整理して管理する。装置内でのファイルの位置は、「C:¥Windows¥System32¥cmd.exe」のように最上位から順にディレクトリ名を繋げた「パス」(path)という記法で表される。
ファイル名
ファイルにはそれぞれ固有のファイル名が付けられ、これを用いて識別・指定される。多くのOSではファイル名の末尾にファイルの種類や形式を表す「拡張子」(extension)と呼ばれる数文字の英数字の符号が付与される。
コンピュータの操作画面ではファイルは記憶媒体内での位置(パス)やファイル名で表示され、キーボードなどからパスやファイル名を指定して操作する。グラフィック表示を用いるGUI(Graphical User Interface)を備えたOSでは、ファイルは種類によって異なるアイコン(絵文字)とファイル名によって表示され、マウス操作やタッチ操作でアイコンを指し示して操作を行う。
ファイル属性
ファイルはファイルシステムに記録される際に様々な属性や付加情報(メタデータ)と共に記録される。作成日時や最終更新日時、最終アクセス日時、作成者(所有者)、各利用者やグループのアクセス権限などが記録、設定される。
また、多くのOSではファイルに「読み取り専用」属性を付与でき、解除されるまで削除や上書きができなくなる。「隠しファイル」に設定されたファイルは通常の動作モードではファイル一覧画面などに表示されなくなる(ファイル名を直に指定すれば操作はできる)。
ファイル形式
ファイルに記録されるデータの形式や書式(ファイルフォーマット)は作成したソフトウェアによって様々だが、大きく分類すると「バイナリファイル」(binary file)と「テキストファイル」(text file)に分かれる。
バイナリファイルは特に制約なくあらゆるビットパターンを記録できる自由な形式で、その形式に対応したソフトウェアでなければ何が記録されているか知ることができない。テキストファイルはデータを文字情報として記録したファイルで、文字コード規格で規定されたコードに従ってデータを文字列に置き換えて記録する。対応ソフトがなくてもどのような文字が記録されているかは見ることができる。
ディレクトリ ⭐⭐
電話帳(phone~)、住所録、名鑑、要覧、指導書、規則集などの意味を持つ英単語。IT関連では、多数の対象をその所在などの情報と共に一覧できるよう整理したものを意味することが多い。
ファイルシステムのディレクトリ
ストレージ(外部記憶装置)のファイルシステムなどで、複数のファイルを格納し、ファイルを分類・整理することができる保管場所のことをディレクトリということがある。OSによっては同様の仕組みを「フォルダ」(folder)ということもある。
ストレージ内部を論理的に区切って名前をつけて区別する仕組みで、ディレクトリ名によって識別される。ディレクトリ内には任意のファイルを置くことができるほか、別のディレクトリを作成して入れ子状にすることができる。ディレクトリ内に作られたディレクトリは「サブディレクトリ」(subdirectory)あるいは「子ディレクトリ」などと呼ばれる。
ディレクトリの入れ子関係は、システムやストレージ領域の全体を表すディレクトリを頂点とする階層構造(あるいは木構造)として表すことができ、これを根本から先端に向かって枝分かれする樹木の形になぞらえて「ディレクトリツリー」と呼ぶことがある。
UNIX系OSでは、ストレージや他のシステム資源全体を包含する「ルートディレクトリ」(root directory)を頂点として、Windowsでは各ドライブごとにその内部を包含する「ドライブルート」(drive root)を頂点として、それぞれディレクトリの位置を指し示す。
ストレージ内でのディレクトリやファイルの所在は、「/foo/var/hoge.txt」のようにルートからの経路を順に並べた「パス」(path)によって表す。UNIX系OSでは区切り文字として「/」(スラッシュ)を用いるが、Windowsでは「C:\foo\var\hoge.txt」のように「\」(バックスラッシュ)を用いる。日本語版では同じ文字コードを共有している円マーク(¥)になる。
ディレクトリサービス (directory service)
情報システムの一種で、ネットワーク上に存在する機器やサービスについての情報や、利用者の識別や権限に関する情報を一元管理する仕組みのことを「ディレクトリサービス」(directory service)あるいは単にディレクトリという。
原義の電話帳に近い役割をコンピュータネットワーク上で果たすシステムで、登録利用者のアカウント情報(ユーザー名やパスワード、各種の権限など)、ネットワーク上のサーバコンピュータが提供する機能、共有データ(共有ファイル、共有ディレクトリなど)、プリンタなどの周辺機器についての情報を集めて単一のデータベースに登録して管理する。
利用者はディレクトリにアクセスすることでネットワーク上の資源の所在を知ることができ、個々の資源に対して権限の確認をしなくても、一度のログイン操作で許可された資源を自由に利用できるようになる。米マイクロソフト(Microsoft)社がWindows Serverなどで提供しているActive Directory(アクティブディレクトリ)が特に有名である。
アプリケーションソフト 【アプリ】 ⭐⭐⭐
ある特定の機能や目的のために開発・使用されるソフトウェア。利用者が目的に応じて導入し、オペレーティングシステム(OS)の上で動作させる。
現代のコンピュータではOSが機器(ハードウェア)を管理・制御しており、アプリケーションソフトはOSの機能を利用して動作する。「アプリケーション」(application)あるいは「アプリ」(app)と略されたり「応用ソフト」と訳されることもある。
用途や目的に応じて多種多様なアプリケーションソフトがあり、日常的に利用される代表的なものだけでも、ワープロソフトや表計算ソフト、画像閲覧・編集ソフト、動画・音楽再生ソフト(メディアプレーヤー)、ゲームソフト、Webブラウザ、電子メールソフト、カレンダー・スケジュール管理ソフト、電卓ソフト、カメラ撮影ソフト、地図閲覧ソフトなどがある。
企業などの業務で使われる、プレゼンテーションソフトやデータベースソフト、財務会計ソフト、人事管理ソフト、在庫管理ソフト、プロジェクト管理ソフト、文書管理ソフト、生産管理ソフトなどもアプリケーションソフトの一種である。
提供方法の違い
アプリケーションソフトは無償配布あるいは販売されているパッケージを利用者が入手・購入してオペレーティングシステム(OS)に組み込む作業を行うことで使用可能となる。この作業を「インストール」(install/installation)という。OS製品の中にはいくつかのアプリケーションソフトがあらかじめ組み込まれている(プリインストール)ものもある。
大企業や官公庁などが自社の業務に用いるアプリケーションソフトの中には、市販のパッケージソフトではなく自社で開発、あるいは外部の専門の事業者に委託して開発させた「カスタムアプリケーション」もある。市販のものに比べ開発コストはかかるが、自社業務に特化した仕様となっている。
業務などで用いる大規模なアプリケーションソフトの場合、コンピュータに導入された単体のソフトウェアで機能が完結しているとは限らず、機能やデータを提供する「サーバ」と利用者が操作する「クライアント」が連携して動作する「クライアントサーバ型」の構造になっているものもある。
モバイルアプリ/Webアプリ
近年ではスマートフォンやタブレット端末などの携帯機器にタッチ操作できるアプリケーションソフトを導入してパソコンなどの代わりに利用する場面が増えている。これらは「モバイルアプリケーション」と呼ばれ、慣用的に「アプリ」(app)と略されることが多い。
スマートフォンなどには機器や専用OSの開発元が「アプリストア」と呼ばれるネットサービスにアクセスするためのアプリをあらかじめ組み込んで販売しており、利用者はストアからほしいアプリを選んで端末に組み込んで使用する。iPhoneなどのiOS端末では米アップル(Apple)社の「App Store」のみが利用でき、Android端末では米グーグル(Google)社の「Google Playストア」が標準的なストアである。
また、SNSやECサイトなどのネットサービスでは、Webサイトに動的な要素を組み込んでアプリケーションソフトのように振る舞わせ、Webブラウザから操作する方式も広く普及している。このような実装形態を「Webアプリケーション」と呼ぶ。
他のソフトウェアとの違い
コンピュータのハードウェアに対する基本的な制御機能や、様々なソフトウェアが共通して利用する機能をまとめたソフトウェアは「オペレーティングシステム」(OS:Operating System、基本ソフト)と呼ばれる。また、OSとしての制御機能は持たないが、多くのアプリケーションソフトが必要とする特定分野のまとまった機能を提供するソフトウェアは「ミドルウェア」(middleware)と呼ばれる。
アプリケーションソフトの中でも、ファイルやフォルダの圧縮・解凍や、コンピュータウイルスの探知・駆除、記憶装置(メモリ・ストレージ)管理など、システムや他のソフトウェアの機能を補ったり、性能や操作性、安全性を向上させたりするものは「ユーティリティソフト」(utility software)と呼び、アプリケーションソフトとは別の分類とする場合もある。
アプリケーションソフトという用語や分類は、パソコンのように利用者が目的に応じて後からソフトウェアを追加して使用できる汎用コンピュータについて主に用いられ、組み込みソフトウェア(家電の制御ソフトなど)や特定用途の専用コンピュータなどでは、OSなどのシステム系のソフトウェアとアプリケーションソフトの区別や境目が明確でない場合もある。
プログラム ⭐⭐⭐
予定(表)、計画(表)、課程、式次第などの意味を持つ英単語。ITの分野では、コンピュータに行わせる処理を記述したコンピュータプログラムのことを略して単にプログラムということが多い。
コンピュータプログラム (computer program)
コンピュータが行うべき処理を順序立てて記述したもの。広義の「ソフトウェア」の一部であるが、実用上はプログラムとソフトウェアはほとんど同義のように扱われることが多い。
現代のコンピュータではプログラムは一定の形式に従ってデータとして表現され、記憶装置(メインメモリ)に格納される。実行時にはCPU(中央処理装置)がプログラムに記述された命令を順番に読み出して解釈・実行していく。
プログラムを作成する作業や工程を「プログラミング」(programming)、これを行う人や職種のことを「プログラマ」(programmer)という。人間がプログラムを記述する際には、人間が理解しやすい人工言語である「プログラミング言語」(programming language)を使うことが多い。プログラミング言語で記述されたプログラムを「ソースコード」(source code)という。
ソースコードはコンピュータが解釈・実行することができないため、コンパイラなどの変換ソフトによってコンピュータが解釈・実行できる機械語(マシン語)などで構成された「オブジェクトコード」(object code)に変換されてから実行される。スクリプト言語のように、この変換処理を開発時には行わず、実行時にインタプリタなどのソフトウェアによって動的に行う場合もある。