Главная / Содержание / Жёсткие диски

 

Жёсткие диски.

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

Действительно, ну подключен винчестер как-то там куда-то там, ну и что? Главное-то - скорость процессора, уж он-то, родимый, ускорит все, что только можно, уж он-то себя покажет, только замени его на более мощный…

Оши-ибочка, граждане, как говаривал Глеб Жеглов… На работу огромного количества приложений процессор оказывает очень незначительное влияние. Понятно, что если вы играете в 3D-action, то от процессора зависит многое, как, впрочем, и от памяти. Но вот, скажем, при работе с каким-нибудь MS Word, будь у вас хоть Intel 80486, вы не слишком большую разницу почувствуете по сравнению с Pentium 4. А вот от скорости работы диска и, главное, системной шины и интерфейса, через который диск подключается к этой шине, эту разницу можно прочувствовать, и еще как.

Не говоря уже о том, что если домашние компьютеры, ясен пень, нужны в первую очередь для игр, то офисные-то, прости, Господи, нужны в первую очередь для работы с офисными пакетами типа MS Excel и с разными там базами данных, исполнение задач которыми практически не зависит от производительности процессора (или зависит минимально), но зато любое ускорение работы диска - операций чтения/записи, а особенно операций передачи данных вызовет существенное ускорение всей работы. А директор фирмы с начальником IT-отдела (о, эти хитрые начальники IT-отделов, которые все всегда знают, но никому правды не говорят), знай себе, обсуждают чего бы такого купить для модернизации парка вычислительной техники: "четвертых пентиумов" или "селеронов" достаточно.

Разговаривал как-то с одной тетушкой, которой IT-служба поставила новый компьютер, "четвертый пень". Вся работа тетушки заключалась в наборе текста в MS Word и она была шибко довольна жизнью от того, что теперь и сама программа загружается гораздо быстрее, и файлы сохраняются тоже быстрее, и вообще - счастье. Я посоветовал тетушке просить теперь у начальства Intel Itanium…

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

Ну, а процессор… Скажу честно, между Pentium 4 и Pentium 2 разница огромная. Но! Эта разница заключается, в основном, в новом расширении набора команд. Поэтому существенную разницу при работе можно почувствовать только в том случае, если приложение использует эти новые команды. А на старых приложениях и Pentium 4, и Pentium 2 работают приблизительно одинаково. Зато разница между ATA-2 и ATA-6, в смысле ускорения работы компьютера, просто колоссальная. Что это такое? Вот об этом мы как раз сегодня и поговорим.

Интерфейс IDE

При характеристике жестких дисков чаще всего упор делают на скорость операций чтения/записи. И это правильно, ибо это - главный показатель эффективности работы диска. Однако с точки зрения компьютера, главным показателем является скорость обмена данными с жестким диском. Далеко не всегда быстрый "винт" сможет так же быстро передать данные. Скажем, получил контроллер жесткого диска задание от процессора на чтение порции данных. Ну, понятное дело, начал он управлять головками чтения/записи, получать бит за битом, формировать из них байты и по мере накопления очередной порции данных отсылать их куда надо. А куда он их отсылает? Вот тут-то самое интересное и начинается.

Собственно, куда контроллер жесткого диска может отсылать данные, кроме как не в системную шину? Если вы читали статью в Upgrade # 23 (113), то на этот счет каких-то особых вопросов быть не должно. Но взаимодействие с системной шиной контроллер жесткого диска осуществляет не непосредственно, а через специальный интерфейс устройств со встроенным контроллером - IDE (Integrated Drive Electronics).

Первый IBM PC, который появился в 1981 году, был, по нынешним представлениям, скажем так, не слишком-то мощной машиной: 64 кб памяти и никаких жестких дисков. Он оборудовался двумя дисководами на 5,25 дюйма для дискет объемом 360 кб (в том же 1981 году, кстати, компания Sony анонсировала первую 3,5-дюймовую дискету и дисковод для нее).

А вот появившийся спустя два года IBM PC XT (eXTended PC - расширенный PC), уже имел 256 кб памяти и диск Seagate емкостью 10 Мб. Этот диск управлялся контроллером Xebec, помещенным на встроенной карте. Контроллер Xebec мог управлять сразу двумя дисками, хотя в 1983 году никому и в голову бы не пришло ставить второй жесткий диск: ну на что, скажите на милость, может понадобиться кому-нибудь 20 мегабайт дискового пространства?

Интерфейс, который обеспечивал подключение жесткого диска к системной шине PC XT, назывался ST-506/412 (не думаю, что его название вам сильно поможет в жизни, но так, для расширения общего кругозора). В принципе, на тот момент этот интерфейс всех устраивал. А что, если у всех остальных устройств контроллеры помещаются на отдельных, подключаемых к шине картах, то чем жесткий диск лучше? Но оказалось, что производители жестких дисков вовсе не собирались сидеть на месте и всю жизнь выпускать 10-ти мегабайтные диски, им хотелось делать диски больших объемов и с большими скоростями вращения. И в какой-то момент этот самый стандарт стал очень сильно всем мешать.

Вы никогда не задумывались, почему корпорация Intel, производя все новые процессоры со всем большим количеством транзисторов, так упорно держится за размер процессора a la спичечный коробок? Ну что такого, в самом деле, ну сделали бы процессор размером, скажем, с кассету VHS, зато бы уместили сразу целую кучу транзисторов. Думаете, все дело в том, что кассету VHS очень трудно разместить на системной плате? Или слишком проблематично будет ее обдувать? На самом деле один из самых существенных моментов, влияющих на желание сделать электронные устройства как можно меньше - общая длина внутренних магистралей транспортировки информации.

Когда счет идет на миллионы (а то и миллиарды) импульсов в секунду, т. е. когда скорость импульсов можно начинать сопоставлять со скоростью света, крайне желательно максимально уменьшить расстояние между элементарными схемами, из которых состоит процессор или память, или любая другая микросхема. Тут действует железное правило: "чем короче путь, тем быстрее выполняется операция".

Первоначально никто не думал, что данное обстоятельство может быть отнесено также и на счет жестких дисков - электромеханических устройств с очень низкой (по сравнению с процессором) скоростью работы. Но в какой-то момент скорости дисков так возросли, что у разработчиков возникло непреодолимое желание максимально уменьшить расстояние, которое должны проходить сигналы от магнитных головок до контроллера и обратно. Ну, а если кроме плат ST-506/412 (и появившегося чуть позже аналогичного интерфейса ESDI) ничего нет, то как выйти из этой ситуации?

Тогда появились странные симбиозы. Некоторые компании стали выпускать жесткие диски формата 3,5 дюйма и прикреплять их к платам контроллеров жестких дисков. А полученный девайс вставлялся в разъем шины. Представьте себе только, как у вас в компьютере работает жесткий диск, прилепленный к какому-нибудь прикрученному к корпусу одним винтиком хлипкому адаптеру, вставленному в разъем системной шины - наверное, бесподобные акустические эффекты. Решение пришло само собой - монтировать контроллер на корпусе жесткого диска, а сам жесткий диск закреплять в обычном отсеке, для этого предназначенном. Все-таки, что ни говорите, а люди всегда сумеют выкрутиться из любой ситуации.

Однако для соединения жесткого диска с системной шиной ему вовсе не требовались все 98 линий, имеющихся у шины ISA. Например, жесткий диск всегда "вешается" на одну линию IRQ (в машинах AT - это IRQ 14), и ему совершенно не нужны остальные пятнадцать. Ну, и там кое-какие еще контакты совершенно излишни.

В общем, что-то там посчитали и порешили, что для подключения к шине ISA жесткому диску за глаза хватит 40 контактов. Первой компанией, которая стала устанавливать в своих компьютерах специальный адаптер для перехода с 98-контактного разъема шины ISA, расположенного на системной плате, на 40-контактный разъем - была Compaq. Данные при таком подключении передаются блоками по 16 бит (шина ISA, напомню, была 16-битной) вплоть и до наших дней, даже если жесткий диск подключается через микросхему South Bridge (см. врезку).

На системной плате всегда имеется два 40-контактных IDE-разъема (это, собственно, специально адаптированные разъемы шины ISA), а жесткий диск подключается к ним при помощи 40-жильного ленточного кабеля, известного в народе под кличкой "шлейф". Контакт номер 20 на всех IDE-разъемах, как правило, заблокирован, чтобы предотвратить неверное подключение (20-й контакт обычно называют "ключом"). Длина шлейфа, во избежание искажения формы сигнала и увеличения уровня помех (и, как следствие, увеличения задержек), не должна превышать 46 см.

С помощью IDE-кабеля к одному IDE-разъему на системной плате можно подключить два IDE-устройства, поскольку кабель имеет один разъем для подключения к системной плате и два разъема для подключения устройств. Эти два устройства именуются главным (Master) и подчиненным (Slave).

Master подключается к крайнему разъему на шлейфе, а Slave - к среднему (этот разъем должен быть расположен не дальше, чем на 15,25 см от разъема для Master). Поскольку IDE-разъемов на системной плате два, то они именуются первичным (Primary) и вторичным (Secondary). Таким образом, всего в компьютере можно использовать четыре IDE-устройства, которые для BIOS будут именоваться: Primary Master, Primary Slave, Secondary Master и Secondary Slave.

Я почему об этом так подробно пишу, потому что сам когда-то никак не мог понять, что это такое. Неудобство заключается в том, что нужно самостоятельно выставлять джампера (перемычки) на корпусе диска, чтобы BIOS правильно опознал диск. Ну, да это не слишком сложно, поскольку на корпусе диска всегда есть картинка, показывающая как выставить Master, а как Slave. Да, чуть не забыл, чтобы жесткий диск (или CD-ROM) заработал, на него нужно подать питание путем подключения четырехжильного кабеля питания (две красных жилы, две черных и одна желтая). Тут и вовсе, по-моему, никаких вопросов возникнуть не может.

В конечном итоге аббревиатура IDE превратилась в некий обобщающий термин для любого дисковода со встроенным контроллером. Поэтому американский национальный институт стандартов - ANSI (American National Standards Institute) присвоил ему официальное название ATA (AT Attachment - AT-подключение), опубликовав в марте 1989 года стандарт CAM ATA. Таким образом, ATA и IDE - это синонимы, но в документациях используется именно ATA, поскольку существует уже несколько стандартов.

ATA, PIO, DMA, SATA и прочие чудеса

На сегодня существует шесть версий стандарта ATA. Что приятно, все они обратно совместимы, т. е. устройства ATA-1 будут распрекрасно работать с интерфейсом ATA-5. Каждый последующий стандарт ATA основан на предыдущем.

Версия ATA-1 была окончательно утверждена в 1994 году. Этот стандарт определяет интерфейс ATA, в частности: 40/44-контактный разъем и кабель; параметры выбора конфигурации диска - Master / Slave (Главный / Подчиненный); параметры сигналов для основных режимов PIO и DMA; трансляция параметров накопителей CHS и LBA.

Первые два пункта мы уже разобрали. А что обозначают загадочные аббревиатуры PIO, DMA, CHS и LBA? Режим программируемого ввода/вывода - PIO (Programmed I/O) указывает системе, с какой же скоростью производить обмен данными с жестким диском. Из самого названия следует, что можно выбирать различные скоростные режимы. В самом медленном режиме PIO-0 время передачи 16 бит (длительность цикла передачи) равняется 600 наносекундам (нс). При такой скорости за одну секунду можно передать максимум 3,3 Мб.

В большинстве современных жестких дисков поддерживается режим PIO-4 с временем цикла 120 нс и скоростью передачи 16,67 MBps (Мб/сек). Однако для того, чтобы жесткий диск работал в этом режиме и даже в режиме PIO-3 (180 нс и 11,11 MBps), необходимо чтобы IDE-порт компьютера относился к локальной шине, то есть работал через LV-Bus или PCI.

Большинство современных системных плат поддерживают оба эти режима, но на некоторых устаревших "мамах" к локальной шине PCI подключается только первичный (Primary) вывод IDE, а Slave обычно подключается к шине ISA и поэтому может поддерживать работу только режимов 0,1 и 2 (для режимов PIO-1 и PIO-2 характеристики длительность цикла/скорость передачи следующие: 383/5,2 и 240/
8,3, соответственно).

Режимы PIO устанавливаются при помощи стандартной утилиты CMOS Setup, которую можно вызвать, нажав клавишу Del в момент старта компьютера (для BIOS некоторых разработчиков нужно нажимать F1 или F2, либо еще какую-нибудь клавишу). Скажем, для утилиты славной корпорации Award Software, INC, установка режимов PIO производится в разделе Chipset features. Для каждого из четырех IDE-устройств (начиная с IDE Primary Master) можно установить режимы от PIO-0 до PIO-4. Однако тут есть одна загвоздка.

Если установить скорость обмена (PIO) больше, чем та, на которую диск рассчитан, то ни записать, ни прочитать с этого диска вы ничего не сможете. Так что лучше выбрать режим автоматического (AUTO) определения скорости передачи (по умолчанию, скорее всего, он уже установлен). Хотя, можете поэкспериментировать. Вообще-то я не знаю, для чего может понадобиться переводить диск в режим пониженного PIO, но мало ли чего не бывает?

Кстати, в том же самом разделе есть еще и режим запрета/разрешения (disabled/enabled) блочного режима передачи (соответствующий пункт, скорее всего, называется IDE HDD Block Mode). Чтобы понять, для чего нужен этот режим, остановимся кратко на том, как происходит чтение данных с диска.

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

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

Закончив передачу, контроллер диска по линии IRQ 14 уведомляет процессор о том, что передача завершена (запись данных осуществляется, в общем-то, точно так же). Это очень и очень упрощенная схема, а на самом деле во все концы постоянно летят прерывания (от контроллера процессору - аппаратные, от процессора контроллеру - программные). Обработка каждого прерывания требует какого-то времени. Так вот, блочный режим передачи данных - Block Mode PIO, позволяет существенно сократить количество прерываний в адрес центрального процессора, что, понятное дело, уменьшает время чтения/записи.

Режимы PIO, как явствует из выше сказанного, осуществляют передачу данных в память через процессор. Но поскольку процедуры чтения/записи в принципе заключаются в том, чтобы загрузить какую-то область в системной (оперативной) памяти данными с диска, или же записать на диск данные из какой-либо области данных, то можно всю эту работу переложить на другие микросхемы, а процессор "освободить" для выполнения других операций. Микросхему, которая обеспечивает работу контроллера непосредственно с памятью, в обход процессора, назвали микросхемой прямого доступа к памяти - DMA (Direct Memory Access).

Первые режимы DMA были не слишком-то быстрыми и, уж во всяком случае, не превосходили режим PIO-4. Начиная со спецификации стандарта ATA-4, интерфейс IDE стал поддерживать режимы скоростной передачи Ultra-DMA. Самый "медленный" режим Ultra-DMA 0 поддерживал такую же скорость, что и режим PIO-4 (16,67 Мб/с), а самый "быстрый" Ultra-DMA 5 обеспечивает передачу 100 Мб в секунду. Поскольку режимы DMA входят в спецификации стандартов ATA, то часто эти режимы называют Ultra-ATA. Причем для режимов Ultra-DMA с 0-го по 2-й (16,67, 25 и 33,33 Мб/с соответственно) используют название Ultra-ATA/33; для режимов с 3-го по 4-й (44,44 и 66,67 Мб/с) - Ultra-ATA/66, ну а 5-й режим (время цикла 40 нс и передача 100 Мб/с) называют Ultra-ATA/100.

Ну, и наконец, CHS и LBA - это системы указания контроллеру областей диска - они называются секторами - которые нужно прочитать (или записать). CHS (Cylinder Head Sector) использует систему указания конкретного диска через номер: цилиндра, считывающей головки и собственно сектора.

CHS существенно ограничивает доступную емкость диска максимумом в 127 Гб (о чем будет подробно рассказано в следующей статье), поэтому для дисков повышенной емкости используется трансляция в длинные адреса блоков - LBA (Large Block Address), которая позволяет работать с дисками емкостью до 144 квадрильонов байт. Квадрильон в тысячу раз больше триллиона, а тот во столько же раз превышает миллиард, стало быть, LBA позволяет работать с дисками емкостью до 144 миллионов миллиардов байт.

Вы еще таким не обзавелись? Ну что вы, очень напрасно, настоятельно рекомендую. Одним таким диском вы замените сразу миллион дисков по 
134 Гб. Представляете сколько игрушек, музыки и видео можно записать? Уговорил? Тогда срочно идите на ближайшую барахолку железа и спрашивайте диск на 144 Петабайта.

Ну ладно, вернемся к стандартам ATA. Стандарт ATA-2 был опубликован в 1996 году. Его иногда еще называют Fast-ATA или, даже, Fast-ATA-2 (не путать со SCSI-2 - Fast-SCSI). Существенным добавлением к свойствам ATA-1 стала поддержка PC Card (PCMCIA) - миниатюрных, размером в телефонную карту, разработанную Международной ассоциацией плат памяти для PC (PC Memory Card International Association). Сегодня трудно представить портативные компьютеры без PC Card. Тем более, что PC Card давно уже стали многофункциональными, на них монтируются даже миниатюрные жесткие диски (а то зачем бы поддержку PC Card включать в стандарт ATA?).

Стандарт ATA-3, последовавший в 1997 году, содержал схему защиты паролем, а также технологию самоконтроля с анализом S.M.A.R.T. (Self Monitoring Analysis and Report Technology). Стандарты ATA-2 и ATA-3 часто называют улучшенным IDE (Enhanced IDE - EIDE). Начиная с ATA-3, появился интерфейс ATAPI (ATA Packet Interface), позволяющий подключать к IDE-разъему также CD-ROM и накопитель на магнитной ленте (вот как бы вы, интересно, пользовались накопителем на магнитной ленте без ATAPI?).

Некоторые продвинутые специалисты, правда, рекомендуют различные типы устройств IDE ставить на разные каналы, т. к. старые наборы микросхем чаще всего не поддерживают различных скоростей передачи, а это значит, что канал настраивается на скорость самого медленного устройства. Так что, не поленитесь и загляните в нутро вашего клона, дабы проверить, не висит ли на одном шлейфе CD-ROM и "винт", и, если что, повесьте их на разные линии ("винт" на Pri-mary, а CD-ROM - на Secon-dary). Не исключено, что в результате вы будете приятно удивлены возросшим быстродействием вашего жесткого диска (и, как следствие, скоростями выполнения очень многих программ, включая саму операционную систему).

ATA/ATAPI-4 появился в 1998 году и в нем был реализован режим Ultra-DMA (UDMA) со скоростью передачи до 33 Мб/с. ATA/ATAPI-5 (начало 2000 г.) поддерживал уже UDMA/66 (Ultra-ATA/66). Поскольку скорости передачи дико возросли, начиная с ATA/ATAPI-4 появился новый 80-жильный кабель. Для чего и почему? Текущий в проводнике ток порождает вокруг себя магнитное поле (об этом рассказывали еще в школе на уроках физики).

Если на проводник воздействует внешнее магнитное поле, то сопротивление такого проводника увеличивается и, как следствие, скорость передачи по нему снижается. При больших скоростях передачи расположенные друг возле друга линии в шлейфе стали плохо влиять друг на друга. Поэтому был разработан новый кабель, в котором каждая передающая жила чередовалась с заземляющей линией, что помогает снижать помехи. Вот таким образом и появился 80-жильный шлейф, но разъемов у него по-прежнему сорок.

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

80-жильный шлейф всегда можно подключать вместо 40-жильного - хуже от этого не будет (но и лучше для ATA-1,2,3 - тоже вряд ли). Но вот начиная с ATA/ATAPI-5 (режим UDMA/66) подключать вместо 80-жильного 40-жильный категорически нельзя - жесткий диск может взорваться (шучу, "винт", конечно, не взорвется, просто сильно упадет скорость передачи). Разумеется, чтобы использовать режимы UDMA/33 и UDMA/66 нужно, чтобы этот режим поддерживал и интерфейс, и накопитель, и BIOS, и шлейф (для UDMA/33 80-жильный шлейф все же лучше 40-жильного).

В 2001 году была создана последняя версия стандарта ATA - ATA/ATAPI-6. Помимо поддержки расширения адресации секторов диска LBA, был добавлен режим передачи UDMA со скоростью 100 Мб/с. Возможные названия этой спецификации, которые встречаются: ATA/100, UDMA/100, Ultra-ATA/100. Судя по всему, это не только самая быстрая, но и самая последняя версия стандарта параллельного ATA. Почему?

Как уже было сказано в предыдущей статье цикла, дальнейшее увеличение частот в параллельных шинах стало приводить к обратному результату - замедлению из-за нарушения синхронности параллельной передачи в силу разных наводок (почему, собственно, и понадобился 80-жильный шлейф). Поэтому разработчики обратили свои взоры на последовательные интерфейсы. В феврале 2000 года на официальном Форуме разработчиков Intel было объявлено о формировании рабочей группы по созданию стандарта последовательного ATA - SATA (Serial ATA).

В ноябре 2000 г. первая спецификация SATA 1.0 была официально представлена всем заинтересованным лицам. В феврале 2002 года была сформирована рабочая группа Serial ATA II (последняя встреча прошла в мае сего года), которая продолжает заниматься дальнейшим развитием SATA.

В SATA используется 7-жильный кабель для обмена данными, обмен происходит по 1 биту за такт (в кабеле 1 линия для приема и 1 - для передачи) и 15-жильный силовой кабель. Одним кабелем можно подключить только одно устройство, что отменяет необходимость устанавливать перемычки (джампера) для устройства Master/Slave.

Узкий кабель в гораздо большей мере, чем шлейф параллельного ATA, способствует циркуляции воздуха внутри корпуса PC. Но самое главное - это скорость. Стандарт SATA-150 осуществляет передачу со скоростью 150 Мб/с, что в полтора раза выше, чем UDMA/100. Но SATA-300 и SATA-600 предполагают скорости 300 MBps и 600 MBps соответственно. Поэтому, видимо, можно предположить, что постепенно будет происходить процесс вытеснения параллельного ATA его последовательным собратом SATA.

Но не спешите менять ваши девайсы ATA. SATA сегодня, равно так же, как и Intel Itanium, - это серверные решения. А для домашних, менее мощных машин вполне достаточно даже ATA-4 (не говоря уже про офисные компьютеры). Позднее можно посвятить отдельную статью классам программ, которые зависят от дисков и тем, которые зависят от процессоров. 

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

 

Главная / Содержание / Жёсткие диски

 

 

Используются технологии uCoz