Контроллер гибких дисков (, FDC) — это аппаратный компонент, который управляет чтением и записью данных на дисковод гибких дисков (, FDD) компьютера. Он эволюционировал от набора отдельных компонентов на одной или нескольких печатных платах до специализированной интегральной схемы («чипа») или её части. FDC отвечает за чтение данных, поступающих от хост-компьютера, и преобразование их в формат, используемый дисководом на диске, с помощью одной из схем кодирования, таких как FM кодирование (обычная плотность) или MFM-кодирование (двойная плотность), а затем чтения этих форматов и передаче данных в виде исходных двоичных значений.

В зависимости от платформы, передача данных между контроллером и хост-компьютером осуществлялась либо собственным микропроцессором компьютера, либо недорогим специализированным микропроцессором, таким как MOS 6507 или Zilog Z80. Ранние контроллеры требовали дополнительной схемы для выполнения таких задач, как генерация тактовых сигналов и настройка различных параметров. Более поздние модели интегрировали большую часть этой функциональности непосредственно в контроллер и уменьшили сложность внешних схем. К концу 1980-х годов стали распространены решения на одном чипе.

К 1990-м годам гибкие диски всё чаще уступали место жёстким димкам, для которых требовались схожие контроллеры. В таких системах контроллер часто объединялся с микроконтроллером для обработки передачи данных через стандартные разъёмы, такие как SCSI и IDE, которые могли использоваться с любым компьютером. В более современных системах контроллер гибких дисков, если он вообще присутствует, обычно является частью множества функций, предоставляемых одним суперконтроллером вводв-вывода.

__TOC__

История Первый контроллер гибких дисков, как и первый дисковод гибких дисков (IBM 23FD), был выпущен в 1971 году как компонент блока управления хранением данных IBM 2385 для дискового накопителя с фиксированными головками , а также для моделей и системы 370. Блок управления хранением данных IBM 3830, современный и весьма схожий контроллер, использует свой внутренний процессор для управления дисководом 23FD. Полученный FDC представляет собой простую реализацию на гибридных схемах IBM MST, размещённую на нескольких печатных платах. Накопитель, FDC и носители были собственностью IBM, и хотя другие производители выпускали ранние FDD до 1973 года, стандартов для FDC, накопителей или носителей не существовало.

В 1973 году IBM представила , которая установила базовый стандарт для восьмидюймовых односторонних дискет. Эти дискеты, получившие название «Type 1» («Тип 1»), в сочетании с растущей потребностью в недорогих сменных накопителях прямого доступа для множества небольших приложений, привели к значительному увеличению поставок дисководов и контроллеров.

До внедрения специализированных интегральных схем, большинство контроллеров гибких дисков состояли как минимум из одной печатной платы, реализованной с использованием 40 или более интегральных схем. Примерами таких FDC являются: 1973: FDC в системе ввода данных представлял собой микроконтроллер, который получал команды от микропроцессора системы (в терминологии IBM — «MPU») и выполнял их на подключённом накопителе 33FD максимально независимо. Он принимал и исполнял следующие команды: выбор/остановка, проверка записи, поиск ниже, поиск выше, чтение данных, чтение идентификатора, запись данных, запись управляющих сигналов, запись идентификатора, установка готовности, сброс счётчика доступа и бездействие (no-op). Реализация осуществлялась с использованием IBM гибридных микросхем MST на материнской плате, а также отдельной печатной платы разделения данных. Этот FDC от IBM установил формат дискеты IBM Type 1 как первый отраслевой стандарт для гибких дисков, однако ни его интерфейс к главному микропроцессору, ни его интерфейс к накопителю 33FD не были приняты в качестве отраслевых стандартов. 1974: Система FD360 компании iCOM содержала ранний контроллер гибких дисков CF 360 , который создавал диски, соответствующие отраслевым стандартам, подключался к стандартным шинам хоста и поддерживал стандартные дисководы гибких дисков. Этот FDC был реализован на печатной плате размером примерно 12x9 дюймов с использованием 30 интегральных схем и работал как конечный автомат. 1976: FDC компании Scientific Micro Systems FD0300, размещённый на печатной плате размером 8 на 12 дюймов, содержит микропроцессор и примерно 50 интегральных схем и предназначен для лёгкого подключения к ряду хост-шин. 1976: Компания представила первый 5¼-дюймовый дисковод гибких дисков и соответствующий ему первый контроллер гибких дисков для этого форм-фактора — SA4400. SA4400 выполняет функции управления передачей данных между хост-системой и тремя дисководами, используя 8-битный универсальный хост-интерфейс, который форматировал диски согласно модифицированными спецификациями формата носителя типа IBM 3740. Контроллер гибких дисков управляется микропроцессором и реализован на печатной плате размером 5,75 на 9,50 дюйма, содержащей 45 интегральных схем. Интерфейс дисковода и форм-фактор носителя стали отраслевыми стандартами, а сам носитель со временем развивался для поддержки различных форматов. 1977: Apple Disc II FDC, известный как , собран всего на 8 интегральных схемах. Подобно гораздо более раннему контроллеру IBM 3830, он добился сокращения компонентов за счёт использования центрального процессора и микропрограммного обеспечения. Его интерфейс с хостом Apple, а также его интерфейс с 5,25-дюймовым дисководом Apple являются уникальными и не были приняты в качестве отраслевого стандарта.

Первым контроллером гибких дисков, реализованным в виде специализированной интегральной схемы, был , анонсированный 19 июля 1976 года. Изначально он поддерживал один формат и требовал дополнительных схем. Со временам, как целое семейство, дизайн стал доступен от нескольких производителей и развился, чтобы поддерживать множество форматов и минимизировать внешние компоненты.

Микросхема NEC μPD765 была представлена в 1978 году, а в 1979 году компания NEC выпустила μPD72068, которая была программно совместима с μPD765 и включала цифровую фазовую автоподстройку частоты (, PLL). Микросхема μPD765 стала своего рода отраслевым стандартом, когда была использована в оригинальном компьютере IBM PC (1981), в котором контроллер гибких дисков располагался на отдельной плате вместе с вспомогательными схемами. Другие производители, такие как Intel, выпускали совместимые компоненты. Со временем эта разработка развилась в семейство, предлагающее практически полный контроллер гибких дисков на одном чипе.

По состоянию на март 1986 года компания Sharp выпустила на рынок контроллер гибких дисков LH0110.

В начале 1987 года компания Intel представила высокоинтегрированный контроллер гибких дисков 82072 CHMOS для использования в стандартных ПК.

Контроллер гибких дисков серии 82078 компании Intel поддерживает стандартные контроллеры гибких дисков серии 82077AA/SL. Они продавались по цене от 4 до 6 долларов США за штуку при покупке партий по 1000 единиц, в зависимости от конкретной версии. 82078-1 имеет QFP корпуса с 44 и 64 выводами. Модель поддерживает скорость передачи до 2-МБ/с. 82078SL имеет QFP корпуса с 44 и 64 выводами. Модель поддерживает напряжение 3,3 вольт и имеет улучшенное управление питанием, позволяющее снизить потребление до менее чем 50 мкА.

В большинстве компьютерных систем контроллер гибких дисков в конечном итоге стал частью микросхемы Super I/O или южного моста. Однако на более поздних материнских платах, по мере того как пользователи персональных компьютеров отказывались от гибких дисков, этот интерфейс был упразднён. Некоторые производители разработали контроллеры гибких дисков на базе USB.

Обзор Дискета хранит двоичные данные не как последовательность значений, а как последовательность изменений значений. Каждое из этих изменений, записанное в полярности магнитного носителя, вызывает наведение напряжения в головке привода, когда поверхность диска вращается мимо неё. Именно временные интервалы этих изменений полярности и возникающие в результате всплески напряжения кодируют единицы и нули исходных данных. Одной из функций контроллера является преобразование исходных данных в соответствующий шаблон полярностей при записи, а затем их восстановление при чтении.

Поскольку хранение данных основано на временных интервалах и эти интервалы легко подвергаются механическим и электрическим помехам, аккуратное считывание данных требует некоторого рода управляющего, тактового сигнала. Поскольку временные параметры на диске постоянны, тактовый сигнал должен быть обеспечен самим диском. Для этого исходные данные модифицируются дополнительными переходами, что позволяет закодировать тактовый сигнал в данных и затем использовать при чтении для воссоздания исходного сигнала. Некоторые контроллеры требуют выполнения этого кодирования извне, но большинство конструкций предусматривают стандартные методы кодирования, такие как FM и MFM.

Контроллер также предоставляет ряд других услуг для управления самим приводным механизмом. Обычно это включает перемещение головки привода для центрирования над отдельными дорожками на диске, отслеживание положения головки и её возврат в нулевое положение, а иногда и функции форматирования диска на основе простых входных данных, таких как количество дорожек, секторов на дорожку и количество байтов на сектор.

Для создания полноценной системы контроллер должен быть объединён с дополнительными электронными компонентами или программным обеспечением, которые служат связующим звеном между контроллером и основной системой. В некоторых системах, таких как Apple II и IBM PC, этот процесс управляется программным обеспечением, работающим на центральном микропроцессоре компьютера, а интерфейс дисковода подключается напрямую к процессору через плату расширения. В других системах, таких как Commodore 64 и 8-битные компьютеры Atari, отсутствует прямое соединение между контроллером и центральным процессором, и для этой цели внутри дисковода используется второй процессор, такой как MOS 6507 или Zilog Z80.

Оригинальный контроллер Apple II имел вид съёмной платы. Он мог работать с двумя дисководами, которые благодаря своей конструкции исключали большую часть стандартной бортовой электроники. Это позволило Apple договориться с о создании упрощённого дисковода, лишённого большей части своей обычной схемы. В результате общая стоимость одного дисковода с картой контроллера была примерно такой же, как и в других системах, но подключение второго дисковода требовало меньшей дополнительной цены.

В IBM PC использовался более традиционный подход, их плата адаптера могла поддерживать до четырех дисков. На PC прямой доступ к памяти (, DMA) для дисководов осуществлялся через канал DMA 2 и прерывание IRQ 6. Приведённая ниже схема демонстрирует стандартный контроллер гибких дисков, который взаимодействует с центральным процессором через шину или аналогичную шину а с самим дисководом – посредством 34-контактного шлейфа. Альтернативное решение, более распространённое в современных разработках, предполагает интеграцию контроллера дисковода в чип super I/O, который обменивается данными через шину Low Pin Count (LPC, «Малое число выводов»).

Большинство функций контроллера гибких дисков выполняются интегральной схемой, но некоторые реализуются внешними аппаратными схемами. Список функций, выполняемых каждым из них, приведён ниже.

Функции контроллера гибких дисков Преобразует биты данных в форматы FM, MFM, или GCR для их записи Интерпретирует и выполняет команды, такие как поиск, чтение, запись, форматирование и т.д. Осуществляет обнаружение ошибок путём генерации и проверки контрольных сумм, например CRC Синхронизирует данные с помощью фазовой автоподстройки частоты (, PLL)

Функции внешнего оборудования Выбор дисковода гибких дисков для обращения Включение двигателя дисковода гибких дисков Сигнал сброса для микросхемы контроллера гибких дисков