
フロッピーディスクコントローラ(FDC )は、コンピュータのフロッピーディスクドライブ(FDD)への読み書きを制御するハードウェアコンポーネントです。FDCは、1枚または複数枚の回路基板上の個別のコンポーネント群から、専用集積回路(ICまたは「チップ」)またはその構成要素へと進化してきました。FDCは、ホストコンピュータから送られてきたデータを読み取り、 FMエンコーディング(シングル密度)やMFMエンコーディング(ダブル密度)など、複数のエンコーディング方式のいずれかを使用してドライブのディスク上のフォーマットに変換し、そのフォーマットを読み取って元のバイナリ値に戻す役割を担います。
プラットフォームによっては、コントローラとホストコンピュータ間のデータ転送は、コンピュータ自身のマイクロプロセッサ、またはMOS 6507やZilog Z80のような安価な専用マイクロプロセッサによって制御されます。初期のコントローラでは、クロック信号の供給や各種オプションの設定といった特定のタスクを実行するために、追加の回路が必要でした。後の設計では、これらの機能の多くがコントローラに搭載され、外部回路の複雑さが軽減されました。1980年代後半には、シングルチップソリューションが一般的になりました。
1990年代までに、フロッピーディスクはハードディスクドライブに取って代わられつつあり、ハードディスクドライブにも同様のコントローラが必要となった。これらのシステムでは、コントローラはマイクロコントローラと組み合わされ、 SCSIやIDEといった標準化されたコネクタを介してデータ転送を処理することが多く、どのコンピュータでも使用できた。より現代的なシステムでは、FDCが存在する場合でも、通常は単一のスーパーI/Oチップが提供する多くの機能の一部となっている。
最初のフロッピーディスクドライブコントローラ(FDC)は、最初のフロッピーディスクドライブ(IBM 23FD)と同様に、1971年にIBM 2305固定ヘッドディスクドライブ用のIBM 2385ストレージコントロールユニット[ 1 ] 、およびSystem 370モデル155と165のコンポーネントとして出荷されました。同時期に登場した非常によく似たコントローラであるIBM 3830ストレージコントロールユニットは、内部プロセッサを使用して23FDを制御します。[ 2 ]結果として得られたFDCは、数枚のプリント基板上のIBMのMSTハイブリッド回路によるシンプルな実装です。 [ 2 ]ドライブ、FDC、およびメディアはIBM独自のものであり、1973年以前に他のメーカーが初期のFDDを提供していたものの、FDC、ドライブ、またはメディアの標準はありませんでした。
IBMが1973年に3740データ入力システムを発表したことで、8インチ片面フロッピーディスクの基本メディア規格であるIBMの「タイプ1」フロッピーディスクが確立され、多くの小規模アプリケーション向けに安価で取り外し可能な直接アクセスストレージに対する需要が急速に高まったことと相まって、ドライブとコントローラの出荷台数が劇的に増加した。[ 3 ]
特殊用途の集積回路バージョンが導入される以前は、ほとんどのFDCは40個以上のICで実装された少なくとも1つのプリント回路で構成されていました。[ 4 ]このようなFDCの例としては、次のものがあります。
特殊用途集積回路として実装された最初のFDCは、1976年7月19日に発表されたWestern Digital FD1771 [ 14 ]です。 [ 15 ]当初の設計では単一のフォーマットのみをサポートし、追加の回路が必要でしたが、時間の経過とともに、ファミリーとして設計はマルチソースとなり、多くのフォーマットをサポートし、外部回路を最小限に抑えるように進化しました。
のNEC μPD765は1978年に発表され[ 16 ]、1979年にはNECがμPD72068は、デジタルPLLを内蔵し、μPD765とソフトウェア互換性がありました。 [ 17 ] μPD765は、初代IBM PC(1981年)に採用されたことで準業界標準となりました。FDCは、サポート回路とともに、物理的には専用のアダプタカード上に配置されていました。Intelなどの他のベンダーも互換性のある部品を製造しました。この設計は、時間の経過とともに、ほぼ完全なFDCを1つのチップに搭載するファミリーへと進化しました。 [ 18 ]
1986年3月時点で、シャープはFDC LH0110を商品化していた。[ 19 ]
1987年初頭、インテルは業界標準のPCコンピュータで使用するための82072 CHMOS高集積フロッピーディスクコントローラを発表しました。[ 20 ] [ 21 ]
Intel 82078 シリーズ フロッピー ディスク コントローラは、業界標準の 82077AA/SL シリーズ フロッピー ディスク コントローラをサポートしています。これらのバージョンに応じて、1000 個単位で 1 個あたり 4 ~ 6 米ドルで入手可能でした。[ 22 ]
最終的に、ほとんどのコンピュータ システムでは、FDC はSuper I/OチップまたはSouthbridgeチップの一部になりました。[ 18 ] [ 23 ] [ 24 ]しかし、後のマザーボードでは、フロッピー ディスクがパーソナル コンピュータ ユーザーによって段階的に廃止されるにつれて、このインターフェースは削除されました。一部のメーカーは、 USBベースのフロッピー ディスク コントローラを開発しました。[ 25 ]
フロッピーディスクは、バイナリデータを値の連続ではなく、値の変化の連続として記録します。磁気記録媒体の極性に記録されたこれらの変化は、ディスク表面がドライブヘッドを通過する際に、ドライブヘッドに電圧を誘起します。この極性変化のタイミングと、それによって生じる電圧スパイクが、元のデータの1と0を符号化します。コントローラの機能の一つは、書き込み時に元のデータを適切な極性パターンに変換し、読み出し時にそれを再現することです。
ストレージはタイミングに基づいており、そのタイミングは機械的および電気的な障害の影響を受けやすいため、データを正確に読み取るには、クロックと呼ばれる何らかの基準信号が必要です。ディスク上のタイミングは常に変化するため、クロック信号はディスク自体から供給されなければなりません。そのため、クロック信号をデータにエンコードできるように、元のデータに遷移を追加して変更し、読み取り時にクロックリカバリを使用して元の信号を再現します。一部のコントローラでは、このエンコードを外部で行う必要がありますが、ほとんどの設計ではFMやMFMなどの標準的なエンコード方式が提供されています。
コントローラは、ドライブ機構自体を制御するための様々な機能も提供します。これらの機能には、ドライブヘッドをディスク上の各トラックの中央に移動させること、ヘッドの位置を追跡してゼロに戻すこと、そして場合によっては、トラック数、トラックあたりのセクター数、セクターあたりのバイト数といった簡単な入力に基づいてディスクをフォーマットする機能などが含まれます。
完全なシステムを構築するには、コントローラとホストシステム間の橋渡しとなる追加の回路またはソフトウェアをコントローラと組み合わせる必要があります。Apple IIやIBM PCなどの一部のシステムでは、これはコンピュータのホストマイクロプロセッサ上で動作するソフトウェアによって制御され、ドライブインターフェースは拡張カードを使用してプロセッサに直接接続されます。Commodore 64やAtari 8ビットコンピュータなどの他のシステムでは、コントローラからホストCPUへの直接的な経路はなく、この目的のためにドライブ内部にMOS 6507やZilog Z80などの第2のプロセッサが使用されます。
オリジナルの Apple II コントローラは、ホスト コンピュータに挿入するカードの形をしていました。2 つのドライブをサポートでき、ドライブによって通常のオンボード回路のほとんどが不要になりました。これにより、Apple はShugart Associatesと、通常の回路のほとんどを省略した簡素化されたドライブに関する契約を結ぶことができました。[ 4 ]これは、1 つのドライブとコントローラ カードの合計コストが他のシステムとほぼ同じであることを意味しますが、2 つ目のドライブはより少ない追加コストで接続できます。
IBM PC はより従来型の方式を採用しており、アダプタ カードは最大 4 台のドライブをサポートできました。PC では、ドライブへのダイレクト メモリ アクセス(DMA) は DMA チャネル 2 とIRQ 6 を使用して実行されました。下の図は、Industry Standard Architecture (ISA) バスまたは同様のバスを介して CPU と通信し、34 ピン リボン ケーブルでフロッピー ディスク ドライブと通信する従来型のフロッピー ディスク コントローラを示しています。最近の設計でより一般的な代替構成では、FDC はLow Pin Count (LPC) バスを介して通信するスーパー I/Oチップに含まれています。

フロッピーディスクコントローラ(FDC)の機能のほとんどは集積回路によって実行されますが、一部は外部ハードウェア回路によって実行されます。それぞれの機能の一覧を以下に示します。
FDCには3つのI/Oポートがあります。それらは以下のとおりです。
最初の2つのポートはFDC IC内部にあり、制御ポートは外部ハードウェアにあります。これら3つのポートのアドレスは以下のとおりです。
このポートは、ソフトウェアによって次の3つの異なる目的で使用されます。
このポートは、ソフトウェアがFDC ICとFDDに関する全体的なステータス情報を読み取るために使用されます。フロッピーディスク操作を開始する前に、ソフトウェアはこのポートを読み取り、FDCとディスクドライブの準備状態を確認し、以前に開始したコマンドのステータスを検証します。このレジスタの各ビットは、以下を表します 。
このポートは、ソフトウェアが特定のFDDおよびFDC ICの機能を制御するために使用されます。このポートのビット割り当ては次のとおりです。
コントローラは、フラットリボンケーブルを使用して 1 台以上のドライブに接続します。8 インチ ドライブの場合は 50 本のワイヤ、3.5 インチおよび 5.25 インチ ドライブの場合は 34 本のワイヤが使用されます。「ユニバーサル ケーブル」には 4 つのドライブ コネクタがあり、3.5 インチおよび 5.25 インチ ドライブ用にそれぞれ 2 つずつあります。[ 26 ] IBM PC ファミリーおよび互換機では、ケーブルのツイストを使用して、接続されているソケットによってディスク ドライブを区別します。すべてのドライブは同じドライブ選択アドレス セットでインストールされ、ケーブルのツイストによってソケットのドライブ選択ラインが入れ替わります。ケーブルの遠端にあるドライブには、信号品質を維持するために終端抵抗も取り付けられます。 [ 27 ]
コントローラとディスクドライブが1つのデバイスとして組み立てられている場合(例えば、Commodore 1540やUSBフロッピーディスクドライブなどの一部の外付けフロッピーディスクドライブの場合)[ 28 ] 、内蔵フロッピーディスクドライブとそのインターフェースは変更されず、組み立てられたデバイスはIEEE-488、パラレルポート、USBなどの異なるインターフェースを備えています。
フロッピーディスクには、互換性のないフォーマットが多数存在する。ディスク上の物理的なフォーマットだけでなく、互換性のないファイルシステムも存在する可能性がある。
側面:
密度:

日本では主に、通常の2種類ではなく3種類のディスクフォーマットモード(1440KB ( フォーマットなし2MB)、1.2MB ( フォーマットなし1.6MB)、 720KB( フォーマットなし1MB))をサポートする高密度3.5インチフロッピーディスクドライブが普及している。当初、日本の高密度3.5インチフロッピーディスクドライブは、他国で使用されていた1440KB ではなく、1.2MBの容量しかサポートしていなかった。 [ 40 ]より一般的な 1440 KB フォーマットは 300 rpm で回転するのに対し、1.2 MB フォーマットは 360 rpm で回転するため、以前の 5.25 インチ高密度フロッピー ディスクで使用されていた 80 トラック、1 トラックあたり 15 セクタ、1 セクタあたり 512 バイトの 1.2 MB フォーマット、または以前の 8インチ倍密度フロッピー ディスクで使用されていた 77 トラック、1 トラックあたり 8 セクタ、1 セクタあたり 1,024 バイトの 1.2 MB フォーマットのいずれかのジオメトリに非常に近いものとなる。後の日本製フロッピー ドライブは、両方の高密度フォーマット (および倍密度フォーマット) をサポートするようになったため、3 モードと呼ばれるようになった。一部のBIOS には、このモードをサポートするフロッピー ドライブでこのモードを有効にする設定がある。[ 41 ]
コントロール ユニットには、制御ロジックのバックアップと非常駐マイクロ診断の保存のための読み取り専用ストレージを提供する小型の直接アクセス デバイスが含まれています。記録媒体は、安価なマイラー コーティング ディスク カートリッジです。
ハードウェアは既に64ワード(トラック0、セクター0)を追加しており、このマイクロプログラムは残りの制御ストレージをロードします。
当時、既存のフロッピーディスクコントローラはすべて40個または50個のチップで構成されていた…
コントローラは IBM 3740 および 3540 と完全に互換性があり、すべてのフォーマットと変形はコントローラ内で自動的に実行されます。
ミニコンピュータ、マイクロプロセッサI/Oバス、CRT端末、計測機器、TTL/MSIマイクロプロセッサ、産業用コントローラ、その他のバイト指向システムなどのホストシステムとの容易なインターフェースのために、汎用ホストインターフェースも提供されています。
この分野の先駆者となったのは Western Digital Corporation で、1976 年に最初の LSI フロッピーディスクコントローラである FD1771 のサンプル出荷を開始しました。
ライセンス取得済みCMOS 765Bフロッピーディスクコントローラ