Контроллер гибких дисков ( FDC ) — это аппаратный компонент, который управляет и контролирует чтение и запись на дисковод гибких дисков компьютера (FDD). Он развился из дискретного набора компонентов на одной или нескольких платах в специализированную интегральную схему (ИС или «чип») или ее компонент. FDC отвечает за чтение данных, представленных с хост-компьютера, и преобразование их в формат на диске привода с использованием одной из нескольких схем кодирования, таких как кодирование FM (одинарная плотность) или кодирование MFM (двойная плотность), а также за чтение этих форматов и возврат их к исходным двоичным значениям.
В зависимости от платформы, передача данных между контроллером и хост-компьютером будет контролироваться собственным микропроцессором компьютера или недорогим специализированным микропроцессором, таким как MOS 6507 или Zilog Z80 . Ранним контроллерам требовались дополнительные схемы для выполнения определенных задач, таких как предоставление тактовых сигналов и настройка различных параметров. Более поздние разработки включали больше этой функциональности на контроллере и уменьшали сложность внешней схемы; однокристальные решения были распространены к концу 1980-х годов.
К 1990-м годам дискета все больше уступала место жестким дискам , которым требовались аналогичные контроллеры. В этих системах контроллер также часто объединял микроконтроллер для обработки передачи данных через стандартизированные разъемы, такие как SCSI и IDE , которые можно было использовать с любым компьютером. В более современных системах FDC, если он вообще присутствует, обычно является частью множества функций, предоставляемых одной микросхемой суперввода/вывода .
Первый контроллер дисковода гибких дисков (FDC), как и первый дисковод гибких дисков (IBM 23FD), был поставлен в 1971 году как компонент в блоке управления хранилищем IBM 2385 для дисковода с фиксированной головкой IBM 2305 [1] и моделей System 370 155 и 165. Блок управления хранилищем IBM 3830, современный и довольно похожий контроллер, использует свой внутренний процессор для управления 23FD. [2] Полученный FDC представляет собой простую реализацию в гибридных схемах MST IBM на нескольких печатных платах. [2] Дисковод, FDC и носитель были собственностью IBM, и хотя другие производители поставляли ранние FDD до 1973 года, стандартов для FDC, приводов или носителей не существовало.
Представленная в 1973 году IBM система ввода данных 3740 создала базовый стандарт носителя для 8-дюймового одностороннего гибкого диска, дискеты IBM «Type 1» , что в сочетании с быстро растущими потребностями в недорогих съемных устройствах хранения данных с прямым доступом для многих небольших приложений вызвало резкий рост поставок дисководов и контроллеров. [3]
До появления версий интегральных схем специального назначения большинство FDC состояло как минимум из одной печатной платы, реализованной с 40 или более ИС. [4] Примерами таких FDC являются:
Первой микросхемой FDC, реализованной в виде специализированной интегральной схемы, стала Western Digital FD1771 [14], анонсированная 19 июля 1976 года. [15] Первоначальная конструкция поддерживала один формат и требовала дополнительных схем, но со временем, как семейство, конструкция стала многоисточниковой и развивалась для поддержки многих форматов и минимизации внешних схем.
NEC μPD765 был анонсирован в 1978 году [16], а в 1979 году NEC представила μPD72068, который был программно совместим с μPD765, включая цифровую ФАПЧ . [17] μPD765 стал квазиотраслевым стандартом, когда он был принят в оригинальном IBM PC (1981); FDC был физически расположен на собственной карте адаптера вместе с схемой поддержки. Другие поставщики, такие как Intel, производили совместимые детали. Эта конструкция со временем превратилась в семейство, предлагающее почти полный FDC на чипе. [18]
В марте 1986 года компания Sharp выпустила на рынок FDC LH0110. [19]
В начале 1987 года компания Intel представила интегрированный контроллер гибких дисков 82072 CHMOS для использования в стандартных промышленных компьютерах. [20] [21]
В конечном итоге в большинстве компьютерных систем FDC стал частью чипа Super I/O или чипа Southbridge . [18] [22] [23] Однако в более поздних материнских платах, поскольку дискеты постепенно вытеснялись пользователями персональных компьютеров, этот интерфейс был устранен. Некоторые производители разработали контроллеры дискет на базе USB . [24]
Дискета хранит двоичные данные не как ряд значений, а как ряд изменений значений . Каждое из этих изменений, записанных в полярности магнитного носителя записи, вызывает возникновение напряжения в головке привода , когда поверхность диска вращается мимо нее. Именно синхронизация этих изменений поляризации и возникающие в результате скачки напряжения кодируют единицы и нули исходных данных. Одна из функций контроллера — преобразовывать исходные данные в надлежащую схему поляризаций во время записи, а затем воссоздавать ее во время чтения.
Поскольку хранение основано на синхронизации, а на эту синхронизацию легко влияют механические и электрические помехи, для точного считывания данных требуется некий опорный сигнал, часы . Поскольку синхронизация на диске постоянно меняется, сигнал часов должен предоставляться самим диском. Для этого исходные данные модифицируются дополнительными переходами, чтобы позволить тактовому сигналу быть закодированным в данных, а затем использовать восстановление часов во время чтения для воссоздания исходного сигнала. Некоторые контроллеры требуют, чтобы это кодирование выполнялось извне, но большинство конструкций предоставляют стандартные кодирования, такие как FM и MFM .
Контроллер также предоставляет ряд других услуг для управления самим механизмом привода. Обычно они включают перемещение головки привода для центрирования над отдельными дорожками на диске, отслеживание местоположения головки и возврат ее в ноль, а иногда и функционально для форматирования диска на основе простых входных данных, таких как количество дорожек, секторов на дорожку и количество байтов на сектор.
Для создания полной системы контроллер должен быть объединен с дополнительной схемой или программным обеспечением, которое действует как мост между контроллером и хост-системой. В некоторых системах, таких как Apple II и IBM PC , это контролируется программным обеспечением, работающим на хост -микропроцессоре компьютера , а интерфейс привода подключается напрямую к процессору с помощью платы расширения . В других системах, таких как Commodore 64 и 8-битные компьютеры Atari , нет прямого пути от контроллера к хост-процессору, и для этой цели внутри привода используется второй процессор, такой как MOS 6507 или Zilog Z80 .
Оригинальный контроллер Apple II был в форме сменной платы на хост-компьютере. Он мог поддерживать два привода, и приводы исключали большую часть обычных бортовых схем. Это позволило Apple заключить сделку с Shugart Associates на упрощенный привод, в котором отсутствовала большая часть обычных схем. [4] Это означало, что общая стоимость одного привода и платы контроллера была примерно такой же, как в других системах, но второй привод можно было подключить за меньшую дополнительную стоимость. [ необходима цитата ]
IBM PC использовал более традиционный подход, их адаптерная карта могла поддерживать до четырех дисков; на ПК прямой доступ к памяти (DMA) для дисков осуществлялся с использованием канала DMA 2 и IRQ 6. На схеме ниже показан обычный контроллер гибких дисков, который взаимодействует с ЦП через шину Industry Standard Architecture (ISA) или аналогичную шину и взаимодействует с дисководом с помощью 34-контактного ленточного кабеля. Альтернативное расположение, которое более распространено в последних разработках, включает FDC в суперчип ввода-вывода , который взаимодействует через шину Low Pin Count (LPC).
Большинство функций контроллера гибких дисков (FDC) выполняются интегральной схемой, но некоторые из них выполняются внешними аппаратными схемами. Список функций, выполняемых каждой из них, приведен ниже.
FDC имеет три порта ввода/вывода . Это:
Первые два находятся внутри FDC IC, а порт управления — во внешнем оборудовании. Адреса этих трех портов следующие.
Этот порт используется программным обеспечением для трех различных целей:
Этот порт используется программным обеспечением для считывания общей информации о состоянии FDC IC и FDD. Перед началом операции с дискетой программное обеспечение считывает этот порт, чтобы подтвердить состояние готовности FDC и дисководов, чтобы проверить состояние ранее инициированной команды. Различные биты этого регистра представляют:
Этот порт используется программным обеспечением для управления определенными функциями FDD и FDC IC. Назначение битов этого порта следующее:
Контроллер подключается к одному или нескольким дискам с помощью плоского ленточного кабеля, 50 проводов для 8-дюймовых дисков и 34 провода для 3,5-дюймовых и 5,25-дюймовых дисков. «Универсальный кабель» имеет четыре разъема для дисков, по два для 3,5-дюймовых и 5,25-дюймовых дисков. [25] В семействе IBM PC и совместимых с ними устройствах скрутка кабеля используется для различения дисководов по разъему, к которому они подключены. Все диски устанавливаются с одинаковым набором адресов выбора дисковода, а скрутка кабеля меняет местами линии выбора дисковода в разъеме. Дисковод, который находится на дальнем конце кабеля, также будет иметь установленный оконечный резистор для поддержания качества сигнала. [26]
Когда контроллер и дисковод собраны как одно устройство, как это происходит с некоторыми внешними дисководами, например, Commodore 1540 и USB-дисководами, [27] внутренний дисковод и его интерфейс остаются неизменными, в то время как собранное устройство представляет собой другой интерфейс, такой как IEEE-488 , параллельный порт или USB .
Возможны многие взаимно несовместимые форматы дискет; помимо физического формата на диске, возможны также несовместимые файловые системы.
[38]
Стороны:
Плотность:
В Японии в основном используются 3,5-дюймовые дисководы высокой плотности, которые поддерживают три режима форматов дисков вместо обычных двух — 1440 КБ (2 МБ неформатированных), 1,2 МБ (1,6 МБ неформатированных) и 720 КБ (1 МБ неформатированных). Первоначально режимы высокой плотности для 3,5-дюймовых дисководов в Японии поддерживали только емкость 1,2 МБ вместо емкости 1440 КБ, которая использовалась в других местах. [39] В то время как более распространенный формат 1440 КБ вращался со скоростью 300 об/мин, форматы 1,2 МБ вместо этого вращались со скоростью 360 об/мин, тем самым очень напоминая геометрию либо формата 1,2 МБ с 80 дорожками, 15 секторами на дорожку и 512 байтами на сектор, ранее встречавшегося на 5,25-дюймовых дискетах высокой плотности, либо формата 1,2 МБ с 77 дорожками, 8 секторами на дорожку и 1024 байтами на сектор, ранее встречавшегося на 8-дюймовых дискетах двойной плотности. Более поздние японские дисководы включали поддержку обоих форматов высокой плотности (а также формата двойной плотности), отсюда и название 3-режимный. Некоторые BIOS имеют настройку конфигурации, позволяющую включить этот режим для дисководов, поддерживающих его. [40]
Блок управления содержит миниатюрное устройство прямого доступа, которое обеспечивает хранилище только для чтения для резервного копирования логики управления и хранения нерезидентной микродиагностики. Носитель записи — недорогой дисковый картридж с покрытием Mylar.
Оборудование уже добавило 64 слова (дорожка 0, сектор 0), и эта микропрограмма загрузит оставшуюся часть управляющей памяти.
В то время все существующие контроллеры гибких дисков состояли из 40 или 50 чипов …
полностью совместим с IBM 3740 и 3540, при этом все форматирование и деформатирование выполняются автоматически внутри контроллера.
Также предусмотрен универсальный хост-интерфейс для простого взаимодействия с хост-системами, такими как мини-компьютер, шины ввода-вывода микропроцессора, терминалы ЭЛТ, приборы, микропроцессоры TTL/MSI, промышленные контроллеры и другие байт-ориентированные системы.
Первопроходцем в этой области была корпорация Western Digital, которая в 1976 г. начала выпуск образцов первого контроллера гибких дисков LSI, FD1771.
Лицензированный CMOS 765B Floppy Disk Controller