Що б не говорили прихильники SCSI, широке поширення IDE-пристроїв на сьогоднішній день - доконаний факт. Як порахували розумні люди з компанії Quantum, понад 90% РС-сумісних персональних комп'ютерів оснащені жорсткими дисками з інтерфейсом IDE. Біда, однак, у тому, що IDE або Integrated Device Electronic - поняття надто загальне і відноситься, взагалі кажучи, до будь-якого пристрою з інтегрованим контролером аж до електричного чайника з автоматичним відключенням при закипанні. У спробах якось конкретизувати, яку саме інтерфейс мається на увазі, було винайдено стільки різних назв, що при виборі жорсткого диска з інтерфейсом IDE у непідготовленої людини може піти обертом. Посудіть самі: є інтерфейси АТА з різними номерами, Fast ATA (теж з номерами), Ultra ATA (теж кілька), і, нарешті, EIDE! Чи дійсно всі ці інтерфейси різні, які з них сумісні і який краще? Спробуємо розібратися.
Для початку трохи історії. Після того, як компанія IBM випустила модель АТ (Advanced Technology), в 1984 році у компаній Compaq і Western Digital виникла ідея вмонтувати AT-сумісний контролер, який використовує 16-розрядну шину ISA, безпосередньо в електроніку жорсткого диска. Сказано зроблено. Вийшло вдало: ціна жорсткого диска збільшилася несуттєво, зате вартість всієї дискової підсистеми помітно знизилася. Так і народився на світ інтерфейс ATA (AT Attachment - в дослівному перекладі - "прикріплення до АТ"), який став широко відомий під назвою IDE. Так як шина ISA в моделі АТ була 16-бітної, інтерфейс, природно, вийшов теж 16-бітовим, причому ця розрядність збереглася до теперішнього часу, незважаючи на наступні поліпшення і додавання. Незабаром, проте, з'ясувалося, що різні виробники примудрялися робити несумісні між собою диски з інтерфейсом ATA. Якщо такі диски встановлювалися в парі master / slave на один канал IDE, то дискова підсистема просто не працювала. Для усунення цих неприємних явищ був прийнятий стандарт ANSI специфікації АТА. "Оригінальний" інтерфейс АТА мав наступні можливості:- Підтримка двох жорстких дисків. Один канал ділиться між двома пристроями, сконфігурованими як master і slave;
- PIO Modes. ATA включає підтримку PIO modes 0,1 і 2;
- DMA Modes. ATA включає підтримку single word DMA modes 0, 1 і 2 та multiword DMA mode 0.
- Більш швидкісні PIO Modes. У АТА-2 додана підтримка PIO modes 3 і 4;
- Більш швидкісні DMA Modes. АТА-2 підтримує multiword DMA modes 1 і 2;
- Block Transfer. ATA-2 включає команди, що дозволяють здійснювати обмін в режимі block transfer для підвищення продуктивності;
- Logical Block Addressing (LBA). АТА-2 вимагає підтримки жорстким диском протоколу передачі LBA. Зрозуміло, для використання цього протоколу необхідно, щоб його підтримував також і BIOS;
- Удосконалена команда Identify Drive. Збільшено обсяг інформації про характеристики, яку жорсткий диск видає по системним запитам.
Найбільшу плутанину викликають назви Fast ATA і Fast ATA-2, що належать перу відповідно Seagate і Quantum. Створюється цілком природне враження, що Fast ATA є деяким поліпшенням стандарту АТА, тоді як Fast ATA-2 базується на стандарті АТА-2. Але все, на жаль, не так просто. Насправді Fast ATA-2 є просто інша назва стандарту АТА-2, а Fast ATA відрізняється від нього лише тим, що не підтримує найшвидші режими - PIO mode 4 і DMA mode 2. При цьому обидві компанії нападають на компанію Western Digital і її стандарт EIDE за те, що він вносить ще більшу плутанину. У EIDE є свої недоліки, але про це трохи пізніше.
Спробою подальшого розвитку інтерфейсу АТА був проект стандарту АТА-3, в якому основна увага приділялася підвищенню надійності:- AТА-3 містить засоби, що підвищують надійність передачі даних з використанням високошвидкісних режимів, що дійсно є проблемою, оскільки кабель IDE / ATA залишився тим же, що і при народженні стандарту;
- АТА-3 включає Self-Monitoring Analysis and Reporting Technology (SMART).
Наступним кроком у розвитку інтерфейсу IDE / ATA з'явився стандарт Ultra ATA (він же Ultra DMA, він же ATA-33, він же DMA-33, його ж іноді називають АТА-3 (!)). Ultra ATA є стандартом де-факто використання найшвидшого режиму DMA - mode 3, що забезпечує швидкість передачі даних 33.3 МВ / сек. Для забезпечення надійної передачі даних по все тому ж кабелю використовуються спеціальні схеми контролю і корекції помилок, при цьому зберігається зворотна сумісність з попередніми стандартами - АТА і АТА-2. Тобто якщо ви, купивши жорсткий диск з інтерфейсом Ultra АТА, раптом виявили, що ваша системна плата його не підтримує, не засмучуйтеся - диск все одно буде працювати, хоча і повільніше :)
І, нарешті, останнє досягнення в цій галузі - інтерфейс Ultra ATA / 66, розроблений компанією Quantum, що дозволяє здійснювати передачу даних зі швидкістю 66МВ / сек.
У той час, коли розроблявся інтерфейс IDE / ATA, єдиним пристроєм, яке потребувало цьому інтерфейсі, був жорсткий диск, оскільки стриммери і зароджуються драйви CD-ROM мали власний інтерфейс (багато хто пам'ятає часи, коли CD-ROM підключався через інтерфейс на звуковій карті ). Однак незабаром стало ясно, що використання для підключення всіх пристроїв швидкого і відносно простого інтерфейсу IDE / ATA обіцяє значні вигоди, в тому числі і за рахунок своєї універсальності. Однак система команд інтерфейсу IDE / ATA була розрахована тільки на жорсткі диски, тому просто підключити, наприклад, CD-ROM до IDE-каналу не можна - працювати не буде (перевірялося мною особисто при спробі підключити CD-ROM замість завантажувального IDE-диска на 486 сервері Hewlett-Packard). Спочатку, по молодості років перебував в подиві: як так - шлейф підходить, а не працює?). Довелося розробити новий протокол - ATA Packet Interface або ATAPI. Цей протокол дозволяє іншим пристроям підключатися за допомогою стандартного шлейфу IDE і "поводитися" як IDE / ATA жорсткий диск. Насправді протокол ATAPI набагато складніше, ніж ATA, оскільки передача даних йде з використанням стандартних режимів PIO і DMA, а реалізація підтримки цих режимів істотно залежить від типу підключеного пристрою. Назва packet (пакетний) цей протокол отримав з тієї причини, що команди пристрою дійсно доводиться передавати групами або пакетами. Проте, з точки зору користувача, що, погодьтеся, найважливіше, немає різниці між IDE / ATA жорстким диском, ATAPI CD-ROMом або ZIP-драйвом. Сучасні BIOSи навіть підтримують завантаження з ATAPI-пристроїв.
Отже, основні (як офіційні, так і неофіційні) стандарти інтерфейсу IDE наведені в наступній таблиці.
ATA-2, Fast ATA-2, ATA-3, ATAPI. Ultra ATA, EIDE
Природно, мова йде про зовнішню швидкості передачі даних і визначає швидкість інтерфейсу, а не диска. Необхідно також враховувати (хоча зараз це вже навряд чи актуально), що PIO mode 3 і 4 вимагають використання шини VLB або PCI, так як шина ISA не може забезпечити швидкість передачі даних більше 10 МВ / сек. До появи режиму DMA-33 максимальна швидкість передачі даних у режимів PIO і DMA була однаковою. Головним недоліком режимів PIO є те, що передачею даних управляє процесор, що істотно збільшує його завантаження. Зате ці режими не вимагають спеціальних драйверів і ідеально підходять для однозадачних операційних систем. Схоже, однак, що це вимираючий вид ...
Direct Memory Access (DMA) - прямий доступ до пам'яті - збірна назва протоколів, що дозволяють периферійних пристроїв передавати інформацію безпосередньо в системну пам'ять без участі центрального процесора. Сучасні жорсткі диски використовують цю можливість в поєднанні з можливістю перехоплювати управління шиною і самостійно управляти передачею інформації (bus mastering детально обговорювалося в серії статей по шинам). Існує кілька режимів DMA (DMA modes), які наведені в таблиці. Варто відзначити, що так звані single word режими в даний час не використовуються і наведені тільки для порівняння.
Максимальна швидкість передачі (МВ / сек)
Ще одну кумедну річчю, пов'язаної з інтерфейсом IDE / ATA, є 32-розрядний доступ до диску. Як вже зазначалося вище, інтерфейс IDE / ATA був і залишається 16-бітовим. Резонне питання: А чому тоді при відключенні драйверів 32-розрядної доступу до диска в Windows швидкість роботи оного диска падає? Не менш резонне відповідь: По-перше, як працює Windows - окрема розмова. А по-друге, шина PCI, на якій зараз розташовуються IDE host-контролери, 32-розрядна. Тому 16-бітна передача по цій шині є марними витрачання пропускної здатності. У нормальних умовах host-контролер формує з двох 16-бітних пакетів один 32-бітний і пересилає його далі по шині PCI (повторюю, я не беруся пояснювати, як з диском працює Windows).
Вище зустрічався термін - режим block transfer. Насправді це всього-на-всього режим, що дозволяє передавати кілька команд читання / запису впродовж одного переривання. Сучасні IDE / ATA диски дозволяють передавати 16-> 32 сектора за "одне переривання". Оскільки переривання генеруються рідше, знижується завантаження процесора і зменшується частка команд в загальному обсязі переданих даних.
До кожного каналу IDE може бути підключено одне або два пристрої. У сучасних комп'ютерах, як правило, встановлюється два канали IDE (що відповідає специфікації EIDE), хоча теоретично можливо встановити до 4-х (!), Що дозволяє підключати 8 IDE пристроїв. Всі канали IDE є рівноправними. Використання системних ресурсів каналами приведено в таблиці.
Підтримка і можливі проблеми при використанні
1F0-1F7h і 3F6-3F7h
Використовується у всіх комп'ютерах з інтерфейсом IDE / ATA
170-177h і 376-377h
Широко поширений, присутній практично у всіх сучасних комп'ютерах.
1E8-1Efh і 3EE-3Efh
Використовується рідко. Можливі проблеми з софтом
168-16Fh і 36E-36Fh
Вкрай рідко використовується. Дуже ймовірні проблеми з софтом
Ресурси, що використовуються 3-м і 4-м каналами. можуть конфліктувати з іншими пристроями (так, IRQ 12 використовується мишею PS / 2, IRQ 10 - зазвичай зайнятий мережевою картою).
Як було сказано вище, кожен канал IDE / AТА інтерфейсу підтримує підключення двох пристроїв - master і slave. Конфігурація зазвичай задається перемичкою на задній стінці пристрою. Крім цих двох позицій там зазвичай присутній і третя - cable select. Що ж буде, якщо встановити перемичку в це положення? Виявляється, для роботи пристроїв в положенні перемички cable select потрібен спеціальний Y-подібний шлейф, центральний роз'єм якого підключається до системної плати. Крайні роз'єми такого кабелю нерівноправні - пристрій, підключений до одного роз'єму, автоматично стає master, до іншого - slave (аналогічно флоп А і В). При цьому перемички на обох пристроях повинні стояти в положенні cable select. Основна проблема такої конфігурації в тому, що вона екзотична, хоча і є стандартною, і не всіма підтримується, тому і Y-подібний шлейф знайти досить важко (я, наприклад, його не бачив, та й взагалі не зовсім зрозуміло, навіщо це потрібно) .
Якщо не брати до уваги цю екзотику, при конфігуруванні IDE / ATA пристроїв необхідно пам'ятати наступне:- Кожен канал в кожен момент часу може обробляти тільки один запит до одного пристрою. Наступний запит, нехай навіть до іншого пристрою, буде очікувати завершення поточного. Різні канали при цьому можуть працювати незалежно. Тому не варто підключати два активно використовуваних пристрої (наприклад, два жорсткі диски), до одного каналу. В ідеалі кожне IDE-пристрій коштує підключати до окремого каналу (в цьому, мабуть, полягає основна перевага SCSI).
- Практично всі сучасні чіпсети підтримують можливість використання різних режимів передачі даних для пристроїв, підключених до одного каналу. Однак зловживати цим все-таки не варто. Два пристрої, істотно розрізняються за швидкістю, краще все-таки рознести по різних каналах.
- Не рекомендується підключати до одного каналу жорсткий диск і ATAPI-пристрій (наприклад, CD-ROM). Як було сказано вище, протокол ATAPI використовує іншу систему команд, і, крім того, навіть найшвидші ATAPI-пристрої багато повільніше жорсткого диска, що може уповільнити роботу останнього.