IDE


IDE




Михаил Тычков aka Hard



Доброго времени суток.

Для начала зададимся-ка мы вопросом: что такое интерфейс (interface)? Дословно это слово можно перевести так: междумордие :) Понятий термина "интерфейс" много. Так часто бывает в мире инфотехнологий, когда один термин может означать несколько понятий или технологий, и наоборот - одной технологии присваивают несколько названий (терминов). В нашем случае один термин "интерфейс" имеет несколько понятий. Короче говоря, закончим этот балаган на одном из подходящих для нас определении: интерфейс - устройство, обеспечивающее связь между двумя другими устройствами. Так вот IDE (Integrated Drive Electronics) - это интерфейс, обеспечивающий передачу данных между жестким диском и системой.

Существует несколько интерфейсов IDE в зависимости от используемой шины:

1. ATA IDE (шина ISA, 16-разрядная);

2. XT IDE (шина ISA, 8-разрядная);

3. MCA IDE (шина MCA, 16-разрядная);

В этой статье я расскажу только лишь об ATA IDE, так как остальные интерфейсы IDE уже не встречаются вследствие прекращения использования восьмиразрядной шины ISA и шины MCA. Ну, да и бог с ними :)

Первые ATA (AT Attachment) IDE накопители и разъемы для них были разработаны инженерами фирм Western Digital, Compaq и CDC в 1984 году. Но принят ATA IDE как стандарт институтом ANSI был лишь в 1989 году. К слову сказать, XT IDE и MCA IDE так никогда и не были приняты за стандарты. Наверно из-за их короткой "жизни". Для общей инфы скажу, что MCA IDE был разработан фирмой IBM в 1987 году, а XT ATA … фиг его знает, я не в курсе.

Сейчас я затрону тему некоторой путаницы, связанной с ATA IDE. Дело в том, что, как Вы понимаете, разработкой только стандарта ATA дело не закончилось. Существуют: ATA-1, ATA-2, ATA-3, ATA-4, EIDE, Fast ATA, Fast ATA-2, Ultra-DMA.

Теперь немного подробнее. Как я уже говорил выше, ATA приняли за стандарт к началу 1989 года, к 1994 году вымучили еще одну его версию ATA-1 (впрочем, ATA -1 - это и есть ATA), в 1995 году - ATA-2, а в 1997 году родили ATA-3. Чуть позже появился ATA-4. А что же такое за EIDE, Fast ATA, Fast ATA-2, Ultra-DMA? EIDE (Enchanced IDE) - это ATA-2 и ATA-3. Fast ATA, Fast ATA-2 - это собственные разработки компаний Quantum и Seagate и соответствуют они ATA и ATA-2 (за исключением мелких несущественных отличий). А Ultra-DMA (UDMA) - это ни что иное, как ATA-4. Короче говоря, путаница офигенная, многие авторы статей по-разному трактуют все эти названия технологий. Самое главное, не забивайте всей этой ерундой себе голову. Не это главное, к тому же большая часть из того, что я перечислил, уже не используется. Главное вот в чем: основное отличие всех интерфейсов IDE ATA заключается в том, что контроллер расположен на винте. Давайте рассмотрим упрощенную схему работы системы и жесткого диска. Как наверно многим из Вас известно, данные в компьютере передаются в цифровом виде. В таком формате они доходят до контроллера жесткого диска, а затем преобразовываются в аналоговые сигналы и в таком виде записываются на диски (принцип хранения данных на дисках магнитный, во всяком случае, пока магнитный). При считывании с дисков, данные до контроллера идут в аналоговом виде, а затем преобразовываются в цифровой формат и поступают в систему, то есть все наоборот. Знаете в чем главный недостаток аналоговой схемы? Низкая помехоустойчивость! Если Ваше IQ выше 1, то Вы наверно уже догадались, что чем ближе будет контроллер расположен к дискам, а точнее к считывающим/записывающим устройствам винта, тем лучше. Добавлю, что кроме контроллера, на микросхеме жесткого диска расположено еще несколько различного рода устройств, которые обмениваются командными данными с контроллером. Чем меньше расстояние между этими девайсами, тем шибчее работа винта.

IDE/ATA

В чем заключаются остальные отличия интерфейса IDE от других интерфейсов (ST-506/412, EISD). Отвечу: собственный контроллер позволяет производителям винтов не ограничиваться возможностями контроллеров расположенных на материнских платах, а это значит, что нет необходимости подгонять под них накопители (как было ранее). С IDE можно изготовить винт почти любой конфигурации, лишь бы подходил по размерам, и разработать подходящий под общие требования контроллер. Ну и сохранить конфигурацию разъемов. Сам же разъем представляет собой прямоугольную группу из 40 контактов (44 контакта для портативных компов). 20й контакт отсутствует и играет роль ключа предотвращающего неправильное подключения шлейфа. 28й контакт передает сигнал Cable Select (CSEL) предназначенный для определения очередности жестких дисков (Master или Slave). Реже по этому контакту передается сигнал Spindle Synchronization (SPSYNC) который синхронизирует вращение шпинделя. Таблицу с сигналами и контактами я приведу в конце статьи, а пока мы двинемся далее.

Кроме того, винты IDE/ATA (вот Вам еще одна путаница: нет никакой разницы в написании ATA IDE, ATA/IDE, IDE/ATA, IDE ATA) продаются уже отформатированными на низком уровне, а это оч удобно, так как форматирование низкого уровня есть дело геморройное. Поэтому, лучше будет, если эту фигню сделает за пользователя сам производитель жесткого диска.

Еще одно отличие - это использование ZBR (Zone Bit Recording) или говоря русским языком метода зонно-секционной записи. "А это что еще за фигня такая?" - воскликнет нетерпеливый читатель :) Чтобы не растроить Ваши желудки расскажу как можно проще! Диски разбиты на дорожки, которые в свою очередь разделены на сектора. На дальних от центра дорожках количество секторов больше, чем на внутренних (от 150 на внешних до 56 на внутренних, но Вы должны понимать, что могут быть и отличия от приведенных цифр). Поскольку диски вращаются с одинаковой скоростью, то поток данных с дисков будет неравномерен. Для компенсации неравномерности применяют такую фишку: диск делится на зоны и скорость работы специального канала преобразования поступающих данных то же неоднородна и изменяется в зависимости от скорости потока данных. Для этого используют перестраиваимые частотные фильтры и однокристальные микроконтроллеры. Все ясно? :) Двигаемся дальше. Но системный BIOS до того туп, что работать может тока с винтами, у которых количество секторов на каждой дорожке одинаково. Чтобы не случилось геморроя, применили такую штуку, как пересчет секторов.

Немного отвлечемся. Итак, жесткий диск состоит из нескольких дисков, насажанных на одну ось. На каждую сторону каждого диска приходится одна головка считывания/записи данных. Диски, в свою очередь, разделены на цилиндры, а на их, дисках, поверхностях расположены дорожки, состоящие из секторов.

ATA IDE

Общее количество секторов можно высчитать по формуле: C*H*S, где C - количество цилиндров, H - количество головок, S - количество секторов на дорожке. Если, допустим, Ваш винт имеет 600 цилиндров, 8 головок и 100 секторов (цифры взяты с потолка), то в случае со старыми, до IDE/ATA, жесткими дисками Вам при их конфигурации пришлось бы вписывать именно эти данные и никак иначе. Теперь же этого делать не надо! Теперь можно использовать для системы любое количество цилиндров, головок и секторов на дорожке. Важно лишь то, чтобы общее количество секторов не менялось. Давайте рассмотрим пример с уже приведенными данными: 600*8*100=480000 секторов. Теперь изменим: 300*16*100=480000, еще изменим: 1200*8*50=480000. Короче, как не крути, а результат тот же. Вот это и есть режим пересчета секторов. Правда, у этого режима есть недостаток - нельзя изменить коэффициенты чередования и смещения секторов заданные при изготовлении винта.

На сим и закончу. Правда это не означает, что я закрываю тему IDE. Много еще чего не сказано, но не хочется перегружать Ваш мозг :) Так что, до встречи!

P.S. Как и обещал, в конце статьи таблица контактов разъема:

Название сигнала

Контакт

Контакт

Название сигнала

-RESET

1

2

ОБЩИЙ

ДАННЫЕ, бит 7

3

4

ДАННЫЕ, бит 8

ДАННЫЕ, бит 6

5

6

ДАННЫЕ, бит 9

ДАННЫЕ, бит 5

7

8

ДАННЫЕ, бит 10

ДАННЫЕ, бит 4

9

10

ДАННЫЕ, бит 11

ДАННЫЕ, бит 3

11

12

ДАННЫЕ, бит 12

ДАННЫЕ, бит 2

13

14

ДАННЫЕ, бит 13

ДАННЫЕ, бит 1

15

16

ДАННЫЕ, бит 15

ДАННЫЕ, бит 0

17

18

ДАННЫЕ, бит 15

ОБЩИЙ

19

20

КЛЮЧ

DRQ3

21

22

ОБЩИЙ

-IOW

23

24

ОБЩИЙ

-IOR

25

26

ОБЩИЙ

IO CH RDY

27

28

SPSYNC/SCEL

-DACK3

29

30

ОБЩИЙ

IRQ14

31

32

-IOCS16

АДРЕС, бит 1

33

34

-PDIAG

АДРЕС, бит 0

35

36

АДРЕС, бит 2

-CS1FX

37

38

-CS2FX

-DA/SP

39

40

ОБЩИЙ

ПИТАНИЕ +5

41

42

ПИТАНИЕ +5

ОБЩИЙ

43

44

-TYPE

14.05.03

читать еще по теме