
フロッピーディスク コントローラ( FDC ) は、コンピュータのフロッピー ディスク ドライブ(FDD) の読み取りと書き込みを指示および制御するハードウェア コンポーネントです。これは、1 つまたは複数の回路基板上の個別のコンポーネント セットから、専用集積回路(IC または「チップ」) またはそのコンポーネントに進化しました。FDC は、ホスト コンピュータから提示されたデータを読み取り、 FM エンコード(単密度) やMFM エンコード(倍密度)などのいくつかのエンコード方式のいずれかを使用してドライブのディスク上の形式に変換し、それらの形式を読み取って元のバイナリ値に戻す役割を担います。
プラットフォームに応じて、コントローラとホスト コンピュータ間のデータ転送は、コンピュータ独自のマイクロプロセッサ、またはMOS 6507やZilog Z80などの安価な専用マイクロプロセッサによって制御されます。初期のコントローラでは、クロック信号の提供やさまざまなオプションの設定などの特定のタスクを実行するために追加の回路が必要でした。後の設計では、コントローラにこの機能がさらに組み込まれ、外部回路の複雑さが軽減され、1980 年代後半にはシングル チップ ソリューションが一般的になりました。
1990 年代までに、フロッピー ディスクは、同様のコントローラを必要とするハード ドライブに取って代わられるようになりました。これらのシステムでは、コントローラは、どのコンピュータでも使用できるSCSIやIDEなどの標準化されたコネクタを介してデータ転送を処理するマイクロコントローラも組み合わせていることがよくありました。より現代的なシステムでは、FDC が存在する場合、通常は単一のスーパー I/Oチップによって提供される多くの機能の一部です。
歴史
最初のフロッピーディスクドライブコントローラ (FDC) は、最初のフロッピーディスクドライブ (IBM 23FD)と同様に、 IBM 2305固定ヘッドディスクドライブ用の IBM 2385 ストレージコントロールユニットのコンポーネントとして 1971 年に出荷されました。 [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の例には次のものがあります。
- 1973: IBM 3741の FDC は、システムのマイクロプロセッサ (IBM の用語では「MPU」) からのコマンドを受け入れ、接続された 33FD で可能な限り独立して実行するマイクロコントローラの一種です。選択/停止、チェック書き込み、下位シーク、上位シーク、データの読み取り、ID の読み取り、データの書き込み、制御書き込み、ID の書き込み、準備完了の設定、アクセス カウンターのリセット、および何もしない (no-op) の各コマンドを受け入れて実行します。これは、マザーボード上のIBM のMST ハイブリッド回路と、別のデータ セパレータ (VFO) PCB を使用して実装されました。 [5]この IBM FDC により、IBM タイプ 1 ディスケットが業界初の標準フロッピー ディスク メディアとして確立されましたが、ホスト マイクロプロセッサへのインターフェイスも 33FD へのインターフェイスも業界標準として採用されませんでした。
- 1974年: iCOMのFD360には、業界標準のメディアを生成し、業界標準のホストバスに接続し、業界標準のFDDをサポートする初期のFDCであるCF 360が搭載されていました。[6] [7]そのFDCは、30個のICを使用してステートマシンとして約12x9インチのPCB上に実装されました。[8]
- 1976年:8インチ×12インチの回路基板上に構築されたScientific Micro SystemsのFD0300 FDC [9]には、マイクロプロセッサと約50個の集積回路が含まれており、多数のホストバスに簡単に接続できるように設計されています。[10]
- 1976年: Shugart Associatesは、このフォームファクタ向けの最初の5¼インチフロッピーディスクドライブと、関連する最初のFDCであるSA4400を発表しました。[11] SA4400は、8ビットの汎用ホストインターフェイスを使用して、ホストシステムと最大3台のディスクドライブ間でデータを転送する制御機能を実行します。このインターフェイスは、修正されたIBM 3740タイプのメディアフォーマット仕様に従ってディスクをフォーマットします。FDCはマイクロプロセッサで制御され、45個のICを備えた5.75 x 9.50インチのPCBに実装されています。[12]ドライブインターフェイスとメディアフォームファクタは業界標準となり、メディアは時間の経過とともに進化し、さまざまなフォーマットをサポートするようになりました。
- 1977年: Apple Disc II FDC (「Woz Machine」)は、わずか8個のICで構築されました。[4] [13]これは、かなり前のIBM 3830 FDCと同様に、ホストプロセッサとファームウェアの使用によりコンポーネントの削減を実現しました。AppleホストとのインターフェイスとApple 5¼インチフロッピーディスクドライブとのインターフェイスは独特であり、業界標準として採用されませんでした。
特殊用途の集積回路として実装された最初のFDCは、1976年7月19日に発表されたWestern Digital FD1771 [14]です。 [15]初期の設計では単一のフォーマットをサポートし、追加の回路が必要でしたが、時間の経過とともに、ファミリとして設計はマルチソースになり、多くのフォーマットをサポートし、外部回路を最小限に抑えるように 進化しました。
NEC μPD765は1978年に発表され[16]、1979年にNECはμPD765とソフトウェア互換性があり、デジタルPLLを組み込んだμPD72068を発表しました。[17] μPD765は、オリジナルのIBM PC (1981年)に採用されたときに準業界標準になりました。FDCは、サポート回路とともに独自のアダプタカードに物理的に配置されていました。Intelなどの他のベンダーは互換性のある部品を製造しました。この設計は、時間の経過とともに、ほぼ完全なFDCをチップ上に提供するファミリに進化しました。[18]
1986年3月時点でシャープはFDC LH0110を商品化していた。[19]
1987年初頭、インテルは業界標準のPCコンピュータで使用するために82072 CHMOS高集積フロッピーディスクコントローラを発表しました。[20] [21]
最終的に、ほとんどのコンピュータシステムでは、FDCはスーパーI/Oチップまたはサウスブリッジチップの一部になりました。[18] [22] [23]しかし、その後のマザーボードでは、フロッピーディスクがパーソナルコンピュータユーザーによって段階的に廃止されたため、このインターフェイスは削除されました。一部のメーカーはUSBベースのフロッピーディスクコントローラを開発しました。 [24]
概要
フロッピーディスクは、バイナリ データを一連の値としてではなく、一連の値の変化として保存します。磁気記録媒体の極性に記録されるこれらの変化は、ディスク表面が回転して通過するときにドライブ ヘッドに電圧を誘導します。これらの極性の変化とその結果生じる電圧のスパイクのタイミングによって、元のデータの 1 と 0 がエンコードされます。コントローラの機能の 1 つは、書き込み時に元のデータを適切な極性パターンに変換し、読み取り時にそれを再作成することです。
ストレージはタイミングに基づいており、そのタイミングは機械的および電気的障害の影響を受けやすいため、データを正確に読み取るには、何らかの基準信号、つまりクロックが必要です。ディスク上のタイミングは常に変化しているため、クロック信号はディスク自体で提供する必要があります。これを行うには、元のデータに追加の遷移を加えて変更し、クロック信号をデータにエンコードできるようにしてから、読み取り中にクロック回復を使用して元の信号を再現します。一部のコントローラーでは、このエンコードを外部で実行する必要がありますが、ほとんどの設計では、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 を使用して実行されます。下の図は、業界標準アーキテクチャ(ISA) バスまたは同様のバスを介して CPU と通信し、34 ピン リボン ケーブルを使用してフロッピー ディスク ドライブと通信する従来のフロッピー ディスク コントローラを示しています。最近の設計では、より一般的になっている別の配置では、FDC がスーパー I/Oチップに組み込まれ、 Low Pin Count (LPC) バス を介して通信します。

フロッピー ディスク コントローラ (FDC) の機能のほとんどは集積回路によって実行されますが、一部は外部ハードウェア回路によって実行されます。それぞれによって実行される機能のリストを以下に示します。
フロッピーディスクコントローラ機能 (FDC)
- データビットをFM、MFM、M²FM、またはGCR形式に変換して記録できるようにします。
- シーク、読み取り、書き込み、フォーマットなどのコマンドを解釈して実行します。
- CRCのようなチェックサム生成と検証によるエラー検出
- 位相同期回路(PLL)でデータを同期する
外部ハードウェア機能
- アドレス指定するフロッピーディスクドライブ (FDD)の選択
- フロッピードライブモーターのスイッチオン
- フロッピーコントローラICのリセット信号
- フロッピー ディスク コントローラ (FDC) の割り込み信号と DMA 信号を有効/無効にする
- データ分離ロジック
- 事前補償ロジックを記述する
- コントローラへの信号用のラインドライバ
- コントローラからの信号用のラインレシーバー
一般的なx86-PCコントローラ用の入出力ポート
FDC には 3 つのI/Oポートがあります。これらは次のとおりです。
- データポート
- メインステータスレジスタ(MSR)
- デジタル制御ポート
最初の 2 つは FDC IC 内にあり、制御ポートは外部ハードウェアにあります。これら 3 つのポートのアドレスは次のとおりです。
データポート
このポートは、ソフトウェアによって 3 つの異なる目的で使用されます。
- FDC IC にコマンドを発行すると、このポートを介してコマンドとコマンド パラメータ バイトが FDC IC に発行されます。FDC IC は、さまざまなパラメータとコマンドを内部レジスタに保存します。
- コマンドが実行されると、FDC IC は一連のステータス パラメータを内部レジスタに保存します。これらは、このポートを介して CPU によって読み取られます。さまざまなステータス バイトは、FDC IC によって特定の順序で表示されます。
- データ転送のプログラム モードおよび割り込み モードでは、データ ポートは FDC IC と CPU IN または OUT 命令間のデータ転送に使用されます。
メインステータスレジスタ(MSR)
このポートは、ソフトウェアが FDC IC と FDD に関する全体的なステータス情報を読み取るために使用されます。フロッピー ディスク操作を開始する前に、ソフトウェアはこのポートを読み取り、FDC とディスク ドライブの準備状態を確認し、以前に開始したコマンドのステータスを確認します。このレジスタのさまざまなビットは、次のものを表します。
デジタル制御ポート
このポートは、ソフトウェアが特定の FDD および FDC IC 機能を制御するために使用されます。このポートのビット割り当ては次のとおりです。
フロッピーディスクドライブへのインターフェース
コントローラは、フラット リボン ケーブルを使用して 1 台以上のドライブに接続します。8 インチ ドライブの場合は 50 本のワイヤ、3.5 インチおよび 5.25 インチ ドライブの場合は 34 本のワイヤです。「ユニバーサル ケーブル」には 4 つのドライブ コネクタがあり、3.5 インチおよび 5.25 インチ ドライブ用にそれぞれ 2 つずつあります。[25] IBM PC ファミリーおよび互換機では、ケーブルのねじれを利用して、接続されているソケットによってディスク ドライブを区別します。すべてのドライブは同じドライブ選択アドレス セットでインストールされ、ケーブルのねじれによってソケットのドライブ選択ラインが入れ替わります。ケーブルの遠端にあるドライブには、信号品質を維持するために終端抵抗もインストールされます。[26]
- 代替の意味を含むインターフェース信号のより詳細な説明は、ドライブまたはホスト コントローラーの製造元の仕様に記載されています。
コントローラとディスクドライブが1つのデバイスとして組み立てられている場合、例えば、一部の外付けフロッピーディスクドライブ(例えば、コモドール1540やUSBフロッピーディスクドライブ)の場合のように、内部フロッピーディスクドライブとそのインターフェースは変更されませんが、組み立てられたデバイスはIEEE-488、パラレルポート、USBなどの異なるインターフェースを備えています。
データのフォーマット
相互に互換性のないフロッピー ディスク形式が多数考えられます。ディスク上の物理形式とは別に、互換性のないファイル システムも考えられます。
[38]
サイド:
密度:
- SD (または 1D) –単一密度( FM )
- DD (または 2D) –倍密度(ほとんどの場合MFM )
- QD (または 4D) –クアッド密度
- HD –高密度
- ED –超高密度
- TD –トリプル密度
3モードフロッピードライブ

主に日本では、通常の 2 つのモード (1440 KB (未フォーマットで 2 MB)、1.2 MB (未フォーマットで 1.6 MB)、および 720 KB (未フォーマットで 1 MB)) の代わりに 3 つのディスク フォーマット モードをサポートする 3.5 インチ高密度フロッピー ドライブが存在します。もともと、日本の 3.5 インチ フロッピー ドライブの高密度モードは、他の地域で使用されている 1440 KB の容量ではなく、1.2 MB の容量のみをサポートしていました。[39]より一般的な1440KBフォーマットは300rpmで回転するが、1.2MBフォーマットは360rpmで回転するため、5.25インチ高密度フロッピーディスクで以前使用されていた80トラック、トラックあたり15セクター、セクターあたり512バイトの1.2MBフォーマット、または8インチ倍密度フロッピーディスクで以前使用されていた77トラック、トラックあたり8セクター、セクターあたり1,024バイトの1.2MBフォーマットの形状に非常に似ている。その後の日本製フロッピードライブは高密度フォーマット(および倍密度フォーマット)の両方のサポートを組み込んだため、3モードと呼ばれている。一部のBIOSには、このモードをサポートするフロッピードライブでこのモードを有効にする構成設定がある。[40]
参照
- ウエスタンデジタル FD1771
- 統合ウォズマシン(IWM)
- ポーラ(Amiga コントローラー)
- フロッピーディスクドライブインターフェース
- フロッピーディスクのフォーマット一覧
参考文献
- ^ 「IBM 2835 ストレージ制御および IBM 2305 固定ヘッド ストレージ モジュール リファレンス マニュアル」(PDF)。1983 年 10 月。2022 年7 月 22 日閲覧。
制御ユニットには、制御ロジックのバックアップと非常駐マイクロ診断の保存用の読み取り専用ストレージを提供する小型直接アクセス デバイスが含まれています。記録媒体は、安価なマイラー コーティングされたディスク カートリッジです。
- ^ ab 「IBM メンテナンス ライブラリー – ストレージ制御、モデル 2、第 2 巻」(PDF)。1973 年 6 月 4 日。pp. MPL 25A、MPL 200、MPL 245、MPL 260 。2022年7 月 29 日に閲覧。
ハードウェアによってすでに 64 ワード (トラック 0、セクター 0) が追加されており、このマイクロプログラムは残りの制御ストレージをロードします。
- ^ Porter, James N. (1977 年 8 月)。1977 DISK/TREND REPORT – FLEXIBLE DISK DRIVES (レポート)。p. 26。
- ^ abc Gregg, Williams; Moore, Rob, eds. (1984). 「THE APPLE STORY, PART 2, An interview with Steve Wozniak」. Byte . 2022年8月6日閲覧。
当時、既存のフロッピーディスク コントローラはすべて 40 または 50 個のチップで構成されていました…
- ^ 3741データステーション、理論とメンテナンス。IBM。1974年5月15日。pp.14–2.14–15 (488/599) 。2022年8月9日閲覧。
- ^ 「マイクロコンピュータ用に作られた最初のフロッピーディスク周辺機器」。エレクトロニックデザイン。1974年9月27日。138ページ。 2022年8月11日閲覧。
- ^ 「CF 360 フロッピーディスク コントローラー」(PDF) . iCOM Microperipherals . 2022 年8 月 19 日閲覧。
コントローラーは IBM 3740 および 3540 と完全に互換性があり、すべてのフォーマットとデフォーマットがコントローラー内で自動的に実行されます。
- ^ 回路図とロジック図モデルFD360 (PDF) (レポート)。iCOM Microperipherals。1976年3月。pp.8、34 。 2022年8月11日閲覧。
- ^ 「ディスク」。INTERFACE AGE 1976年11月。pp.65-66 。 2022年7月24日閲覧。
- ^ 「FD0300 フロッピーディスクコントローラ」(PDF) . 1976 . 2022年7月24日閲覧。
ミニコンピュータ、マイクロプロセッサI/Oバス、CRT端末、計測器、TTL/MSIマイクロプロセッサ、産業用コントローラ、その他のバイト指向システムなどのホストシステムへの容易なインターフェイスとして、汎用ホストインターフェイスも提供されています。
- ^ 「State of the Art Disk Technology」(PDF) . Byte . 1976年12月. 2022年9月1日閲覧。
- ^ 「SA4400 ministreaker フロッピーディスク ドライブ コントローラー」(PDF) 1977年。 2022年9月1日閲覧。
- ^ Craig, David T (1978年4月). 「Apple II コンピュータファミリー情報、回路図: ディスク 2 インターフェースカード」(PDF) . 2022年8月6日閲覧。
- ^ Joe, Jaworski (1985). 「フロッピーディスクコントローラ」。1985 コントローラコンセプト – 第1巻(PDF) (技術レポート)。p. SEMI-1 (67/160) 。 2022年9月9日閲覧。
この分野の先駆者はWestern Digital Corporationで、1976年に最初のLSIフロッピーディスクコントローラであるFD1771のサンプル提供を開始しました。
- ^ 「最近のIC発表」。コンピューター。IEEE。1976年。 2022年8月6日閲覧。
- ^ 「μPD765 シングル/ダブル密度フロッピーディスクコントローラ」(PDF) . NEC. 1978年12月. 2022年9月9日閲覧。
- ^ 「NEC Electronics Inc. μPD72068 フロッピーディスク コントローラ」(PDF) 。 2024年1月24日閲覧。
- ^ ab Necasek, Michal (2011年5月26日). 「フロッピーコントローラの進化」 . 2022年9月2日閲覧。
- ^ 「シャープ 1986 半導体データブック」(PDF) pp. 279–295 . 2024年1月14日閲覧。
- ^ インテル社、「新製品の焦点コンポーネント: シングルチップ ディスク コントローラでより少ない機能により多くの機能を凝縮」、ソリューション、1987 年 1 月/2 月、14 ページ
- ^ Kearns, Patrick、Begur, Sridhar、および Fischer, Steve、「82072 を使用した高統合/高性能フロッピー ディスク コントローラ サブシステム」、Intel Corporation、Microcomputer Solutions、1987 年 11 月/12 月、20 ページ
- ^ Mueller, Scott (2005). 「マザーボードのコンポーネント」。Scott Muellers のラップトップのアップグレードと修理、第 2 版。2022年9 月 5 日閲覧。
- ^ 「FDC37C78 フロッピーディスクコントローラ」(PDF) 。SMSC。2007年。2007年12月13日時点のオリジナル(PDF)からアーカイブ。 2022年9月9日閲覧。
ライセンスCMOS 765Bフロッピーディスクコントローラ
- ^ 「USB フロッピー ディスク コントローラ USB97CFDC2-01」(PDF) . keil.com . 2001 年 12 月 13 日。
- ^ Davis, Larry (2015年6月13日). 「フロッピードライブのピン配列、信号名、ピン配列の説明、およびケーブルツイスト配線」. interfacebus.com . 2019年1月29日閲覧。
- ^ スコット・ミューラー著『PCのアップグレードと修理、第2版』、Que、1992年、ISBN 0-88022-856-3、487ページ
- ^ Fisher, Tim (2022年1月18日). 「フロッピーディスクドライブとは何か?」2022年9月20日閲覧。
- ^ Ableman, Genna (2005). Elert, Glenn (ed.). 「フロッピーディスクの角速度」. The Physics Factbook . 2022年1月25日閲覧。
- ^ 「C 64 Workshop / C= 8 Bit & Peripherals」. 1998年5月19日. 2016年4月18日閲覧。
- ^ abcdef "unifr.ch – sys/src/kernel/loppy.c". 2011年7月19日時点のオリジナルよりアーカイブ。2011年5月5日閲覧。
- ^ 「製品仕様 TM100-4 フレキシブルディスクドライブ 96、tpi」(PDF) 。 2022年1月8日閲覧。
- ^ ab iesleonardo.info – このディスケットチュートリアルでは、ディスケットに関する技術情報を提供しています。
- ^ ab oldskool.org – HD 5.25インチFDDを360rpmではなく300rpmで動作させる
- ^ ab intel.com – Intel 82077SL for Super Dense Floppies 2012年10月8日アーカイブ、Wayback Machine
- ^ Johnson, Herbert R. (2016年12月22日). 「フロッピードライブ技術情報」. 2017年1月14日閲覧。
- ^ yi.org – 高密度フロッピーディスク Mf2hd ディスク 3 5 1 パック[永久リンク切れ ]
- ^ mcamafia.de – IBM パーソナル システム/2、3.5 インチ ディスケット ドライブ、テクニカル リファレンス
- ^ "Linux-2.6.17/drivers/block/loppy.c". 2008年8月23日時点のオリジナルよりアーカイブ。090504 ジェラート.unsw.edu.au
- ^ books.google.com – Corey Sandler 著『Fix Your Own PC』
- ^ rojakpot.com – 3モードフロッピーサポート
さらに読む
- de Boyne Pollard、Jonathan (2003)。「3.5 インチのフロッピー ディスクなど存在しません。」よくある質問。
- ISO/IEC 8860-1:1987 倍密度 (DD)
- ISO/IEC 9529-1:1989 高密度 (HD)
- ISO 10994-1:1992 超高密度 (ED)
- ECMA-147
- NEC μPD72070 – フロッピーディスクコントローラ仕様バージョン2.0 (PDF)。2.0暫定版。NEC株式会社。1991年10月。 2017年3月20日時点のオリジナル(PDF)からアーカイブ。2017年3月20日閲覧。
- Shah, Katen A. (1996) [1992年9月、1992年4月]。Intel 82077SL for Super-Dense Floppies (PDF) (アプリケーションノート) (第2版)。Intel Corporation、IMDマーケティング。AP-358、292093-002。2017年6月19日時点のオリジナル(PDF)からアーカイブ。 2017年6月19日閲覧。
- ジョンソン、ハーブ (2009)。「CP/M および S-100 用の最初のフロッピー コントローラー?」。2022 年9 月 9 日閲覧。
外部リンク
- viralpatel.net フロッピーディスクコントローラのプログラミングに関するチュートリアル
- isdaman.com フロッピーディスクコントローラのプログラミング
