ISA(Industry Standard Architecture)は、 1980年代にIntel 80286とその後継機種をベースにしたIBM PC/ATおよび類似のコンピュータで使用されていた16ビットの内部バスです。このバスは、 IBM PC/XTやIBM PC互換機を含む、8088ベースのIBM PCの8ビットバスと(ほぼ)下位互換性がありました。
当初はPCバス(8ビット)またはATバス(16ビット)と呼ばれていたが、 IBMではI/Oチャネルとも呼ばれていた。ISAという用語は、1980年代後半から1990年代初頭にかけて、IBMがATバスを新しい互換性のないマイクロチャネルアーキテクチャに置き換えようとしたことへの反発として、IBM PC互換機の製造業者によって後付けで作られた。
16ビットISAバスは、32ビットプロセッサでも数年間使用されていました。しかし、 32ビットに拡張しようとする試み( Extended Industry Standard Architecture (EISA))はあまり成功しませんでした。その後、 VESA Local BusやPCIなどのバスが代わりに使われるようになり、多くの場合、同じマザーボード上にISAスロットが併用されました。ATバス構造の派生形は、 ATA/IDE、PCMCIA規格、CompactFlash、PC/104バス、そしてSuper I/Oチップ内部で現在も使用されています。
ISAは長年前に一般消費者向けデスクトップPCからは姿を消しましたが、産業用PCでは依然として使用されており、PCIやPCI Expressに移行しなかった特定の特殊な拡張カードが用いられています。



オリジナルの PC バスは、1981 年に IBM PC プロジェクトの一環としてIBMのMark Dean率いるチームによって開発されました。 [ 2 ]これはIBM System/23 Datamasterシステムの I/O バスをベースとした 8 ビット バスで、同じ物理コネクタ、類似の信号プロトコル、ピン配置を使用していました。[ 3 ] 16 ビット版のIBM ATバスは、1984 年に IBM PC/AT のリリースとともに導入されました。AT バスは、PC バスのほぼ後方互換性のある拡張であり、 AT バス コネクタは PC バス コネクタの上位互換でした。1988 年に、Compaq を含む PC 互換メーカーのGang of Nineグループによって 32 ビット EISA 標準が提案されました。Compaqは、 PC 互換に代わる用語としてIndustry Standard Architecture (ISA)を作成しました。[ 4 ]その過程で、 IBMのPCおよびPC/ATシステムの商標を侵害しないように(そして主要な競合相手であるIBMに無料の宣伝をしないように)するため、ATバスをISAに遡及的に改名した。
IBMは、IBM PCおよびPC/XTに搭載されたIntel 8088 (16/8ビット)CPUのマザーボードバスへのバッファ付きインターフェースとして、8ビット版を設計しました。このインターフェースには、優先順位付き割り込みとDMAチャネルが追加されています。16ビット版は、IBM ATで使用されたIntel 80286 CPUのマザーボードバス(および拡張された割り込みとDMA機能)のアップグレード版であり、バスマスタリングのサポートが向上しています。そのため、ISAバスは、チップセットによって高度なバッファリング方式が実装され、ISAをより高速なCPUに接続できるようになるまでは、CPUクロックと同期していました。
ISAは、周辺機器カードをマザーボードに接続するために設計され、バスマスタリングを可能にします。メインメモリの最初の16MBのみがアドレス指定可能です。オリジナルの8ビットバスは、 IBM PCおよびPC/XTの8088 CPUの4.77MHzクロックで動作しました。オリジナルの16ビットバスは、IBM PC/ATコンピュータの80286のCPUクロックで動作し、 初期モデルでは6MHz、 後期モデルでは8MHzでした。IBM RT PCも16ビットバスを使用しました。ISAは、Motorola 68kベースのApollo (68020)およびAmiga 3000 (68030)ワークステーション、短命に終わったAT&T Hobbit、後期のPowerPCベースのBeBoxなど、IBM互換ではないマシンでも使用されました。
Dellのような企業はAT バスのパフォーマンスを向上させたが[ 5 ]、1987 年に IBM は AT バスを独自のMicro Channel Architecture (MCA) に置き換えた。MCA は ISA で当時明らかだった多くの制限を克服したが、同時に IBM が PC アーキテクチャと PC 市場の支配権を取り戻そうとする試みでもあった。MCA は ISA よりはるかに高度で、後に PCI に採用される多くの機能を備えていた。しかし、MCA はクローズド スタンダードであったのに対し、IBM は ISA の完全な仕様と回路図を公開していた。コンピュータメーカーは MCA に対抗してExtended Industry Standard Architecture (EISA) と、後にVESA Local Bus (VLB) を開発した。VLB は、部品メーカーが既に製造できる設備を備えていたため、元々は MCA 用に設計された電子部品の一部を使用した。EISA と VLB はどちらも AT (ISA) バスの下位互換性のある拡張であった。
ISAベースのマシンを使用するユーザーは、システムに追加するハードウェアに関する特別な情報を知っておく必要がありました。ごく一部のデバイスは基本的にプラグアンドプレイでしたが、これは稀でした。ユーザーは、新しいデバイスを追加する際に、IRQライン、I/Oアドレス、DMAチャネルなどのパラメータを設定する必要がありました。MCAはこの複雑さを解消し、PCIはMCAで最初に検討された多くのアイデアを実際に取り入れましたが、EISAからより直接的に派生したものでした。
こうした設定上の問題がきっかけとなり、最終的にISA PnPが誕生した。ISA PnPは、ハードウェア、システムBIOS、およびオペレーティングシステムソフトウェアへの変更を組み合わせることで、リソース割り当てを自動的に管理するプラグアンドプレイシステムである。しかし実際には、ISA PnPは問題が多く、アーキテクチャが終焉を迎えるまで十分なサポートは得られなかった。
PnP ISA、EISA、またはVLBデバイスには、デバイスを識別するための5バイトのEISA ID(3バイトの製造元ID + 2バイトの16進数)が付与されている場合があります。例えば、CTL0044はCreative Sound Blaster 16/32 PnPに対応します。
PCIスロットは、物理的に互換性のない拡張ポートとして初めてISAをマザーボードから直接排除したものでした。当初、マザーボードは少数のPCIスロットを含め、ほとんどがISAでした。1990年代半ばまでに、2種類のスロットはほぼ同数になり、ISAスロットはすぐにコンシューマーシステムの少数派となりました。MicrosoftのPC -99仕様ではISAスロットを完全に削除することが推奨されましたが、システムアーキテクチャ上、フロッピーディスクドライブやシリアルポートなどを処理するために、内部的にISAが何らかの形で残余的に存在する必要があったため、ソフトウェア互換のLPCバスが作成されました。ISAスロットはその後数年間残り、2000年代初頭には、中央処理装置の近くにAGP( Accelerated Graphics Port)があり、PCIスロットのアレイがあり、最後に1つか2つのISAスロットがあるシステムを見るのが一般的でした。2008年後半には、フロッピーディスクドライブやシリアルポートさえも姿を消し始め、チップセットから残余ISA(当時はLPCバス)が消滅する兆しが見えていました。
PCIスロットはISAスロットと比べて回転しており、 PCIカードは基本的に上下逆さまに挿入されるため、ISAコネクタとPCIコネクタがマザーボード上でぴったりと収まるようになっている。各スロットでは2つのコネクタのうち1つしか同時に使用できないが、これにより柔軟性が向上した。
AT Attachment (ATA) ハードディスク インターフェースは、PC/AT の 16 ビット ISA から直接派生したものです。ATA の起源は、IBM PC AT 用の標準的なデュアル機能フロッピー ディスク コントローラおよびハードディスク コントローラ カードである IBM Personal Computer Fixed Disk and Diskette Adapter にあります。このカードの固定ディスク コントローラは、ATA インターフェースの基礎となるレジスタ セットと基本コマンド セットを実装しました (これは、IBM の PC XT 用固定ディスク コントローラ カードのインターフェースとは大きく異なっていました)。ATA の直接の前身は、ハードディスク ドライブ(HDD) とハードディスク コントローラ(HDC) を 1 枚のカードに統合したサードパーティ製の ISAハード カードでした。ISA スロットは HDD のような重いデバイスをサポートするように設計されていなかったため、これはせいぜい扱いにくいか、最悪の場合はマザーボードに損傷を与える可能性がありました。次世代のIntegrated Drive Electronicsドライブでは、ドライブとコントローラの両方をドライブ ベイに移動させ、リボン ケーブルと非常にシンプルなインターフェース ボードを使用して ISA スロットに接続しました。 ATAは基本的にこの構成を標準化し、ドライブ内のHDCとソフトウェアがインターフェースするための統一されたコマンド構造を追加したものです。ATAはその後ISAバスから分離され、通常はチップセットへの統合によってローカルバスに直接接続され、ISAがサポートできるよりもはるかに高いクロックレートとデータスループットを実現しました。ATAは、16ビット転送サイズ、PIOモードの信号タイミング、割り込みおよびDMAメカニズムなど、16ビットISAの明確な特徴を備えています。
PC /XTバスは、 1980年代のIBM PCおよびIBM PC XTでIntel 8086およびIntel 8088システムで使用された8ビットISAバスです。62ピンの中には、8088プロセッサの8本のデータ線と20本のアドレス線のデマルチプレクサと電気的にバッファリングされたバージョンに加え、電源線、クロック、読み書きストローブ、割り込み線などがありました。電源線には、pMOS回路や、ダイナミックRAMなどの拡張モードnMOS回路を直接サポートするために、-5Vと±12Vが含まれていました。XTバスアーキテクチャは、単一のIntel 8259 PICを使用し、8本のベクトル化され優先順位付けされた割り込み線を提供します。元々はIntel 8237によって提供されていた4つのDMAチャネルがあります。DMAチャネルのうち3つはXTバス拡張スロットに引き出され、そのうち2つは通常、マシン機能(フロッピーディスクドライブとハードディスクコントローラ)に既に割り当てられています。
PC /ATバスは、 PC/XTバスの16ビット(または80286)バージョンで、 IBM PC/ATとともに導入されました。このバスは、 IBMによって正式にI/Oチャネルと呼ばれていました。 [ 6 ]これは、8ビットXTバスコネクタとインラインで2番目の短いエッジコネクタを追加することでXTバスを拡張したもので、8ビットXTバスコネクタは変更されておらず、ほとんどの8ビットカードとの互換性が維持されています。2番目のコネクタは、アドレスラインを4本追加して合計24本に、データラインを8本追加して合計16本にします。また、2番目の8259 PIC(最初のラインの1つに接続)と4つの16ビットDMAチャネルに接続された新しい割り込みライン、および8ビットまたは16ビット転送を選択するための制御ラインも追加されます。
16ビットATバススロットは、初期のIBM PC/ATマシンでは標準のエッジコネクタソケットを2つ使用していました。しかし、ATアーキテクチャと16ビットISAバスの普及に伴い、メーカーは2つのソケットを1つのユニットに統合した専用の98ピンコネクタを導入しました。これらは、1980年代半ば以降に製造されたほぼすべてのATクラスPCに搭載されています。ISAスロットコネクタは通常黒色です(茶色のEISAコネクタや白色のPCIコネクタと区別するため)。
マザーボード上のデバイスには専用のIRQ(割り込みキュー)があります(スロットには搭載されていません)。16ビットデバイスは、PCバスまたはPC/ATバスのIRQを使用できます。そのため、8ビットIRQを1つずつ使用するデバイスを最大6台、16ビットIRQを1つずつ使用するデバイスを最大5台接続できます。同時に、8ビットDMAチャネルを1つずつ使用できるデバイスは最大4台、16ビットDMAチャネルを1つずつ使用できるデバイスは最大3台まで接続可能です。
当初、バスクロックはCPUクロックと同期していたため、市場に出回っていた多くの異なるIBMクローン間でバスクロック周波数が異なり(時には16MHzまたは20MHzにも達した )、特定のISAカードが設計されていないバス速度で動作した場合にソフトウェアまたは電気的なタイミングの問題が発生した。後のマザーボードまたは統合チップセットでは、独立したクロックジェネレータまたはクロックディバイダが使用され、ISAバス周波数を4MHz、6MHz、または8MHzに固定するか [ 7 ] 、 BIOS設定でユーザーが周波数を調整できるようにした。より高いバス周波数で使用すると、一部のISAカード(特定のHercules互換ビデオカードなど)は大幅なパフォーマンス向上を示すことができた。
8ビットまたは16ビット転送モードを選択するためのメモリアドレスのデコードは128KB セクションに制限されていたため、8ビットカードと16ビットカードを同じ128KB領域に混在させると問題が発生しました 。これは、MEMCS16ラインがLA17-23の値のみに基づいて設定される必要があったためです。
ISAは今日でも特殊な産業用途で使用されています。2008年、IEI TechnologiesはIntel Core 2 Duoプロセッサ用の最新マザーボードを発売しました。このマザーボードは、他の特殊なI/O機能に加えて、2つのISAスロットを備えています。これは、PCIバスバージョンでは入手できない高価な専用ISAバスアダプタに投資していた産業および軍事ユーザー向けに販売されました。[ 8 ]
同様に、ADEK Industrial Computers は 2013 年初頭に Intel Core i3/i5/i7 プロセッサ用の最新のマザーボードをリリースしました。このマザーボードには (DMA 非対応) ISA スロットが 1 つ搭載されています。[ 9 ]また、MSI は 2020 年にSkylakeおよびKaby Lake Intel プロセッサで使用するための ISA スロットが 1 つ搭載された最新のマザーボードをリリースしました。[ 10 ]公式仕様によると、32 ビット版Windows 7 のインストール内でアクセスできます。[ 11 ] DFIもCoffee Lake Intel プロセッサで使用するための ISA スロットが 2 つ搭載されたマザーボードをリリースしました。[ 12 ]この例では、ISA の歴史的な性質上、KVMベースの仮想マシン内でのみアクセスできます。[ 13 ]
産業用および組み込みアプリケーションで使用されるPC /104バスは、ISAバスの派生型であり、異なるコネクタで同じ信号線を使用しています。LPCバスは、現在のマザーボード上の従来のI/Oデバイスへの接続としてISAバスに取って代わりました。物理的にはかなり異なりますが、LPCはソフトウェアから見るとISAとまったく同じように見えるため、16MiBのDMA制限(これは、オリジナルのIBM ATで使用されていたIntel 80286 CPUの全アドレス空間に相当します)などのISA特有の機能は、しばらくの間残ると思われます。
歴史のセクションで説明したように、ISA は ATA (別名 IDE) ハードディスクで使用されるATAインターフェースの開発の基礎となりました。物理的には、ATA は基本的に ISA の単純なサブセットであり、16 ビットのデータ、正確に 1 つの IRQ と 1 つの DMA チャネルのサポート、および 3 ビットのアドレスを備えています。この ISA サブセットに、ATA は 2 つの IDE アドレス選択 (「チップ選択」) ライン (つまり、アドレス デコード、実質的にはアドレス ビットに相当) と、ATA/IDE ハードディスクに固有のいくつかの独自の信号ライン (ケーブル選択/スピンドル同期ラインなど) を追加します。物理インターフェース チャネルに加えて、ATA は、すべての ATA (IDE) ドライブに実装される一連の物理デバイス レジスタと、これらのレジスタを使用して固定ディスク ドライブを制御するための完全なプロトコルとデバイス コマンドのセットも指定することで、ISA の範囲をはるかに超えています。 ATAデバイスレジスタへのアクセスは、ATA物理インターフェースチャネルのアドレスビットとアドレス選択信号を使用して行われ、ATAハードディスクのすべての操作は、ATAコマンドセットを介してATAで規定されたプロトコルを使用して実行されます。ATA規格の初期バージョンでは、いくつかの単純なプロトコルと、MFMおよびRLLコントローラ(ATAコントローラの前身)のコマンドセットに匹敵する基本的なコマンドセットが特徴でしたが、最新のATA規格では、オプションのコマンドとプロトコルを含む、はるかに複雑なプロトコルと命令セットが採用されており、大容量の隠しシステムストレージ領域、パスワードによるセキュリティロック、プログラム可能なジオメトリ変換などの高度なオプション機能を提供しています。
1990年代半ば、ATAホストコントローラ(通常はチップセットに統合されている)はPCI形式に移行した。[ 14 ] ISAとATAのもう1つの違いは、ISAバスが(下位ハードウェア互換性のために)単一の標準クロックレートに固定されていたのに対し、ATAインターフェースはさまざまな速度モードを提供し、接続されたドライブがサポートする最大速度に合わせてモードを選択でき、ATA規格の後のバージョンでより高速な速度を追加し続けたことである(最新のATA-6では最大133 MB/s)。ほとんどの形式では、ATAはISAバスよりも高速なローカルバス(たとえば、サウスブリッジに統合されたIDEインターフェース)に直接接続されていれば、ISAよりもはるかに高速に動作した。
16ビットATA/IDEインターフェースが登場する以前は、ハードディスク用の8ビットXT-IDE(XTAとも呼ばれる)インターフェースが存在しました。ATAほど普及したわけではなく、現在ではXT-IDEハードウェアを見つけるのはかなり困難です。一部のXT-IDEアダプタは8ビットISAカードとして販売されており、XTAソケットはAmstradの後期XTクローンや、短命に終わったPhilips製ユニットのマザーボードにも搭載されていました。XTAのピン配置はATAと非常によく似ていましたが、使用されるデータラインは8本、アドレスラインは2本のみで、物理デバイスレジスタの意味は全く異なっていました。一部のハードドライブ( Seagate ST351A/Xなど)は、ジャンパーで選択することでどちらのタイプのインターフェースもサポートできました。
後期のAT(およびATの後継)マザーボードの多くは、内蔵ハードドライブインターフェースを持たず、ISA/EISA/VLBスロットに接続する別のハードドライブインターフェースに依存していた。さらに、80486ベースのユニットの中には、普及が進むAT-IDEではなく、MFM/RLLインターフェースとドライブを搭載して出荷されたものもあった。
コモドールは、 SCSIドライブもサポートするAmiga 500および500+コンピュータ向けに、XT-IDEベースの周辺ハードドライブおよびメモリ拡張ユニットA590を製造しました。後のモデルであるA600、A1200、およびAmiga 4000シリーズでは、AT-IDEドライブが使用されています。
PCMCIA規格はATA規格の上位互換と見なすことができます。PCMCIAフラッシュドライブを含むPCMCIAハードディスクインターフェースの規格では、ポートとドライブをATAモードで相互に構成することが可能です。事実上の拡張機能として、ほとんどのPCMCIAフラッシュドライブは、1本のピンをローにすることで有効化できるシンプルなATAモードも備えているため、ATAポートに接続してATAドライブとして使用する場合、PCMCIAハードウェアやファームウェアは不要です。そのため、PCMCIAフラッシュドライブをATAに変換するアダプタはシンプルで安価ですが、すべての標準PCMCIAフラッシュドライブで動作することが保証されているわけではありません。さらに、PCMCIAインターフェースはATAよりもはるかに複雑なため、このようなアダプタを汎用PCMCIAポートとして使用することはできません。
現代のコンピュータのほとんどは物理的なISAバスを備えていませんが、IA-32やx86-64といったほぼすべてのPCには、物理アドレス空間内にISAバスが割り当てられています。一部のサウスブリッジやCPU自体は、ISAデバイスとしてISAバスを介して温度監視や電圧測定などのサービスを提供しています。
IEEEは1985年にISAバスの標準化を開始し、P996仕様と呼ばれるようになった。しかし、P996仕様に関する書籍が出版されたにもかかわらず、公式にはドラフト段階から進展することはなかった。[ 15 ]
古いコンピュータを使用しているユーザー層がまだ存在するため、USBポートを備えたISAカード[ 16 ]や、最新のプロセッサ、USB 3.0、SATAをベースにした完全なシングルボードコンピュータ[ 17 ]などがまだ製造されています。