logo
Лекции препода / Конспект лекций ЭВМ

9.6. Контроллеры накопителей на гибких дисках

Для хранения больших объемов данных в основном применяют дисковые и ленточ­ные накопители, хотя определенное распространение получает и ЦМД-память (память на цилиндрических магнитных доменах).Пока ленты и диски имеют такие преимущества по сравнению с ЦМД-памятью, как транспортабельность и емкость. Ленты имеют мень­шую удельную стоимость и более долговечны, но зато диски обеспечивают намного мень­шее время обращения. Выпускаются ленты и диски разнообразных размеров и форм, поэтому аппаратура считывания/записи также отличается разнообразием. Подробное рассмотрение магнитных внешних накопителей выходит за рамки настоящей книги; мы остановимся на самых популярных сейчас носителях для микросистем -гибких дисках (дискетахилифлоппи-дисках}.

Физическая конструкция гибкого диска и общий формат хранения данных представ­лены на рис. 9.42.Гибкий диск имеет майларовую основу с нанесенным на нее магнит­ным покрытием. В центре находится шпиндельное отверстие, а на некотором смещении от центра имеется минимум одно индексное отверстие. Назначение индексного отвер­стия —обеспечить накопителю отсчетную точку при считывании или записи данных. Гиб­кий диск помещен в квадратный чехол, в котором также имеются шпиндельное и ин-

Рис 941Типичная временны диа1рамма работы контроллера 8237

декспос отверстие Кроме того, в чсхчс есть прорезь для контакгирования головки (чи тывания/записи с ювсрхпосгью дис1 а и вырез защитыoiзаписи

Данные хранятся в последовательной форме на концентрических окружностях, назы васмых дорожками,и группирую гся по дугам, называемымсекторамиВ некоторых на­копителя имеется одна головка считывания/записи и данные хранятся только на одной поверхности диска, а в других есть две головки и используются обе поверхности диск! Во втором случае пары дорожек, находящихся ч1 одном и том же расстоянии от ценгра дис1<а, называютсяцилиндрами

Стандаршые гибкие диски имеют размер стороны чехла 203и 133мм(минидиски) Различают диски спрограммным разделением на секторы,когда диск имеет одно ин декснос отверстие, и саппаратным<огда 'тело отверстий равно числу секторов Клж дый сектор должен начинаться со служебной информщии, которая отмечает начало сек тора, итолькопервый ^скгор на порожке отмечается индексным отверстием Во втором случае вес секторы отмечаюгся индексными отверстиями

Дорожки (и цилиндры) пронумерованы, причем внешняя дорожка имеет номер О Секторы 1акже нумеруются, и в диске с пр01раммным разделением на секторы первый .Сектор после индексною отверстия имеет номер 1Когда диск помещается в накопи­тель, шпиндель проходи! через отверстие, диск сцепляется со шпинделем и вращается В чехле со скоростью 360об/мин Подвижную головку считывания/записи можно позиt

—=—~Р чс ^ 4(1С\ \ )действий контроллера 8237«то состоякиям

Рис. 9.42.Конструкция гибкого диска

ционировать на любую дорожку, после чего вращательное движение заставляет все сек­торы выбранной дорожки проходить под головкой, обеспечивая тем самым доступ к отдельным секторам. Для выполнения записи или считывания головка опускается (загружается)на поверхность диска через прорезь в чехле и позиционируется на нуж­ную дорожку. В диске с программным разделением на секторы накопитель ожидает по­явления сигнала от индексного отверстия, а затем начинает считывать служебную инфор­мацию о формате сектора. После нахождения нужного сектора начинается собственно операция считывания или записи. В случае диска с аппаратным разделением на секторы требуемый сектор находится с помощью сигналов от индексных отверстий.

Необходимое для доступа к сектору время складывается из следующих составля­ющих:

Время загрузки.Для приведения головки в контакт с поверхностью диска.Время позиционирования.Для позиционирования головки на дорожку.Вращательное запаздывание.Для поворота диска до достижения требуемого сектора. Средние значения этих времен равны 16, 225и 80мс соответственно. Когда сектор найден, средняя скорость передачи данных составляет (байт/с) :

Чяспо байт в секторе >число (.ькюров на дорож] ^а (.короаов пб'с (здс<,ьучшывл ется время прохождения промежутковмежду данными)

Рассмотрим более подробно конкретный тип гибкие дльк^ 200ммл,искс при граммным разделением на секгоры, совместимый с накопителем 3740фирмыIBMДиск имеет 77дорожек с 15(одинарная плотность) или 26(двойная плотность) секто­рами, хотя в напшх примерах допустимое число секюров варьируется от 8до 26Обыч­ноиспользуются 7Ч дорожек 1с допк каются две д< фен тыс гро»ки Р-Ротаиг" дорож ки н", меруются от 0до 74

Форматы дорожки и сектора рассматриваемых дисков показаны на рис 9 43Межд> смежными секторами находятся промежутки, и сигнал от индексного отверстия должен появляться в промежутке между последним и первым сектором дорожки. Каждый сек­тор содержит поле идентификации и поле данных, оба из которых начинаются с поля синхронизации. Между двумя полями имеется промежуток, необходимый для коммута­ции головки на выполнение заданной операции. Поле идентификации начинается с мар­кера адреса, после которого следуют номер цилиндра (или дорожки),номер готовки, номер сектора, число байт данных в секторе и два байта контроля ошибок

Маркер адреса в пo^eидснтифик^чил первого сектора обычно огличается от марке­ров в других секторах, а маркеры адреса в полях идентификации отличаются от марке­ров в полях данных. Кроме того, маркеры адреса в полях данных различаются в зависи­мости о г того, содержит поле полезную информацию или занято байтами-заполнителями

Имеются два главных метода генерирования байт контроля ошибок Один из чих за­ключается в получении контрольной суммы посредством суммирования всех байт в по­ле, находящемся перед контрольной суммой (с игнорированием переносов).Во втором методе биты поля считаются коэффициентами одного двоичного полинома, а байты кон­троля ошибок являются остатком от деления эгого полинома на фиксированный поли-

Рж 94SОрг<шwr \} оп-pfiл ра накопителя на гибком диске

ном степени 1й (меюд наэывлеюя ц^кличе^, им иЛьпочным к^тролем (К( )Д.1 к;' предполагается применение методаCR<"

Hdрис 9 44показано цвоичнос представление последовательно хранимых дднньгх Информация группируется в элементы, каждый ич когорых разделен на четыре интерва ла; в первом интервале находичся импульс синхронизации 1рр1ий интервал предназн^ чен для бита данных и будет содержать импульс есчи биг ушных равен 1Гипично! зн>. чение временного отрезка элемента ^остаичяет 4мкс (при скор )ии 360об/мил)

Рис 945иллюстрируй ор)аниз.ш,ию шпичного кочтголчера чакопшеля на гиб)- (м диске, а рис 946показываег моего контроллера в подсистеме внешней память на 1 ,v;

ком диске. Из-за последовательного хранения информации входы и выходы накопи ie-ля представляют собой двоичные потоки. Поэтому входные байты принимаются в ре­гистр сдвига и затем передаются в буферный регистр данных, а выходные данные загру­жаются в регистр сдвига, из которого они выдвигаются в последовательной форме Вы­ходные схемы должны объединять импульсы со входа синхронизации записи и биты дан­ных так, чтобы получался формат, представленный на рис 9 44

P'ие 946Подсистема гибкого дискд

Jt^t и t WiiHh bOKOHS?Uilt1 <. h pu » » -l На ^i'jlttB ItfUlK Hi^^KU H ElM»t I t-KOI 1.

fJi^f^iih^KOiopbieконтакты ь^Нх роллера не-^кодимо зарезьрвироВйТь -^ я !иний вы

6iJi .* iS-^OtlriT^i Kp0*.i^ Т 5Г^ ^0„ ЛАЫ ОЫ^Ь ^а» И./ ВЫ>^ДЫ ь HdKt ^ItClb каг. ЛИ1 АЛ ИМ

1ч^аi^ar». 1оij, »iti^tо i^-южкамmям си/иаланлп^ h тичляшага р линия

L^ 1-П^ ^ «•И - 1<- U U\U^,I»\ u* ^аКЛ^ В >.J 4iu t LriIIWIbl ПО ^<Ub а ЙШИ^ НДХОЖ

^ i^ *v a„i t t л д,/ j t-к ^,, Hj^eu^uJu^it о аознишо $^нл1-01 Ka^d 11 i ^1ибки, ф» KOi

^ u »t'i^ И^ lКAv: ii>/i ri t-ll^ ill,» EiOM, 4TiUГИЬ1ЙЙда^КidlU lih...»! 3jaiH<t «t,ИC-l.,t.fc B^t t ^ wKBД^ tb ^ t ^Ob U /rtb ui J,C T^^Io 01 ИМ11^Jibi. »B lhh ^pU)i<jjdUM

ti8^ ^ о Ut. i 4Я^ ^л (1 мои' cp.uuBut юдстройки ч^пош коюоая фо-рмкр}^ си s гы uksu ii л1у t^iMy контроллер должен в ьщавать сигнал синхронизации V^^, Дтя J«^nrtCH ^аиых к^име чигил выходных данных требуются линии разреш.ния записи и мдлогс гокд ,iWii4i Mo. ли 1ока ip^ir^ a lhjh с тем, что npii записи ha вну^рошис зрожь а <их t щ а бо 1»>ш^ ^3) Лри леняетш м »1ьший ток

Lu^ 'ь.^г ий ди^1 имее -ь ^ктиров, ка кдый ^ктор ссдср^л! 1 28бай1 ^ скоросп ь^^т дL^^i^ чы ЗьО об/мш! средняя ^кирость передачи данных

2й Х 128Х 360/60^ 1996Ь байт/.

«^ ^li» иiepiо к^^ ьауся ^авны?.* прямsro 50Miс С уч^омiipOMeкуков ^сuibii^uiл<г^иодit»,i^atfiiСи^1дй].яе1j^ мь„ (1щи4»ikc на 6Hi) Хотя и р»»ижно хущ<. яв^^ть передач ^ гил^л скоритыо без <<онтроллер1 ПДП, применение контроллера икд^ьшлет^я Go^e•'эф<1'еюивным Поэтому контроллеры дисков обычно имею г г-игнати -»ачр01^ !1ДГ1, ид11^р)кд».н»1я ПДП и окончания счета Коотроллер ПДП оказывается лучшим решением еще и потому, что передачи с диска всегда связаны с передачами бло ков,dи» отдельных байт

Рди чютрим подробнее типлчьый контроллер диска 8272фирмыIntelо;» анизлцияK^,uf0ionoKa-UddH-tрис 947В нем имеюгся два регистра которые мо» iадре ^виь

i ^ v^c.wOp р<.И,.^^ СОСТ.О) ЯИЯ, КО-ЮрЫЙ СЧИТЫВа^^Сд При АО = О И ГИГИ^р ВХиД> ^.IX/ri^I

xu ^tbix данных, ибращеии». к коюром' нроизводипя с АО 1 Формат;peiHc'ipdсопол иия прадстлвлен на рис 48 Через регистр входных/выходных данных можноа^рсг-овагь несколько друшх регистров управления, состояния и параметров, ат«п жеhl^koto ко ^пад^рйь Обращение кэтим регистрам и флажкам или випо-шениьввода вывода ^thLii"шредеп&етсмя^^ izi Ооатеяьносгьюдоступа

Bi-.i^ шя^-мые контрочлером операции paздe^яютo{на фазы приказлвыг о^.^ния и р^зулмага Во время фазь! приказа байгы передаюил в ри-истры упра^лен^я и флажки чсре.» регистр входнаЛ/вьц ьдныу данных Зато иiatj? выпотаенияpeaшз^^ч^я запро ш нная 011ерация, по завершении коюрои часху.аасг фаза резу платаkoi ^а троцесюр ^чкгывает информацию состояния Выв^дь^ в^ вр».мя фазы приказаi< вводы во вр^мя ф»зы резу 1ьтата выпочняются о побайтными п р^дачами лотя любыми пс 1^.дач1ми данttb.\ь^в^еляфазы вья олн н л обычноj правпяет контроллер ПДП

Уэ» ^^"^sp1^бко^ 4hд и »ei.tследую..дир приказы

Счш^ть ^ш ••iСчi.^ib^arfHbit- из иол>1 данных на гибком диске

janA-ait- винные^ дш п.аег дан ib e вноле данных на гибкомусе

Ottiit.ibудаленные данные. Считывает данные из поля, отмеченного как у ^ал-н {оь

Записать удаленные данные. Записьюает млркер адреса удаленных данные и по\киУ

ет симьо-ш заполнители в поле данных

Считать дорожку.Считывае! поля данных всей дорожки

Считать IDСчитывает поле идентификации

Форматировать дорожк}Записывает на д >рожку форма-ihp'юту ю информацию ис

пользуя выданные программой параметры форматирования

Рис 947Схема контроллера гибкого диска 8272

Рис 948Формат р1гистра состояния контрочлер1 8272

Сканировать до равно, сканировав до меньше или равно, сканиреааэь ч^ 1ч ьин 'ч равно. Сканируе! данные на ука данное условие и формирует запрос прерыванияш>г' условие удовлетйоряется.

Инициализировать.Вызывай} перемещение юловки на дорижкуU

Считать состояние прерывания.Гчтывае! информацию состояньяri3 М'' ы .. '<„ 1;

рываний, вызванных изменением линии тоговносш и спер.Щп.й гож sa

Определить., Усканаьли^.л с^ирсс чшаи51?i4->rioe'<Hр. »^ яi^hpy•^ ,ч"д, „iiловки, вримд загрузки юловки и режим ПДП

Считать состояние накопителя.Вводи! состояние накопи геля из 5ГЗ.

Искать.Позиционирует головку на указанную дорожку.

В качестве примера на рис. 9,49приведен^ последовагельносгь, необходи лдя дляw полнения четырех приказов. Приказ считывания данных включае! в себя все грифлзи приказ поиска ~ только фазы приказа и выполнения, приказ считывания сосюяния Чч копителя -фазы приказа и резулыата, а приказ определений -только фазу приказ, Во всех случаях приказы должны выполняться целиком (включая и фазу результата, и ли она применима),иначе они считаются незаконченными. При получении недействитель­ного приказа контроллер возвращает байт состоянияSTOв ответ на следующий ввод из регистра входных/выходных данных

Рис. 9.49.Типичные приказы контроллера 8272

Несколько приказов требуют, чтобы на их фазах результатов считывались некоторые из байт состояния STO,ST1,ST2 иST3. Биты в этих регистрах показывают ошибкиCRC, ошибки перегрузки, выбранный накопитель, конец поиска, является ли гибкий диск двусторонним или нет и т. д.

В качестве примера рассмотрим конгроллер 8272,четный адрес которого равен ОП2А. Его можно инициализировать на скорость шагов 6мс на дорожку, время разгруз­ки головки 48мс, время загрузки юловки 16мс и режим ПДП следующей последова-юльностыо приказов.

%СНЕСК (2АН.80Н)

MOV AL.03H OUT 2BH,AL %СНЕСК (2АН,80Н)

MOV AL.63H OUT 2BH,AL %СНЕСК <2АН,80Н)

MOV AL,10H OUT 2BH,AL

Макрокоманда %СНЕСК имеет такое определение:

%*DEFlNE (CHECK (PORT, STAT)) LOCAL AGAIN (%AGAIN: IN AL,%PORT

AND AL.OCOH

XOR AL.%STAT ) JNE %AGAIN

Причина необходимости макрокоманды %СНЕСК перед каждым выводом заключается в том, что перед записью в контроллер 8272байта каждого приказа старшие два бита регистра состояния должны содержать 10.На фазе результата перед считыванием из регистра данных каждого байта эти два бита должны содержать 11. Последовательность приказа поиска

%СНЕСК (2АН.80Н)

MOV AL,OFH

OUT 2BH,AL %СНЕСК (2АН.80Н)

MOV AL,02H

OUT 2BH,AL %CHECK (2AH.80H)

MOV AL,30

OUT 2BH,AL

.производит в накопителе 1перемещение головки на цилиндр 30и выбор головки 0.

На рис. 9.50определены две макрокоманды для выполнения приказа считывания данных. Предполагается, что перед вызовом макрокомандыREAD_COMнаходятся команды

IDLE- IN AL,2AH TEST AL,12H JNZ IDLE

Они проверяют доступность требуемого накопителя (которым в этом примере служит накопитель 1).Перед вызовом макрокомандыREAD_COMнеобходимо инициализиро­вать контроллер ПДП, чтобы передачи ПДП начинались сразу по окончании операции

Рис. 9.50.Макрокоманды для выполнения приказов считывания данных

считывания. Предполагается, что вызов макрокоманды READSTATделается только после фазы выполнения и при условии завершения считывания (например, после воз­никновения прерывания по завершению считывания).