Протоколы общения с дисками

Узнали?

А это он — «винчестер» 🙂

Начнем с сокращений.

 HDD — Hard Disk Drive — диск для записи данных, он же «хард», он же «винчестер», он же «винт».

 Почему часто HDD называют «винчестером»? Или сокращенно «винт»? Фирма IBM в 1973 году выпустила жёсткий диск модели 3340, впервые объединивший в одном неразъёмном корпусе пластины диска и считывающие головки. Данный накопитель имел несменяемую емкость 30 Мбайт плюс столько же (30 Мбайт) в сменном отсеке.. Именно обозначение этого диска «30/30» дало повод называть его на сленге «Winchester» – аналогично известной модели американского ружья «Winchester 30-30». Да и звуки он похожие издавал — звук работы привода головок напоминал клацанье затвора ружья 🙂

 Называется ружье официально Winchester Model 1894 — одна из самых известных и популярных охотничьих винтовок с рычажным взводом. Она разработана американским конструктором Джоном Браунингом в 1894 году, производилась Winchester Repeating Arms Company до 1980 года, а потом компанией U.S. Repeating Arms, пока в 2006 году они не прекратили выпуск этих винтовок. Это было первое охотничье оружие, продавшееся в количестве более 7 млн штук. Миллионный по счёту Winchester Model 1894 был подарен президенту США Джону Калвину Кулиджу в 1927 году, полуторамиллионный по счёту — президенту США Гэрри Труману 8 мая 1948 года, двухмиллионный по счёту — президенту Дуайту Дэвиду Эйзенхаузеру в 1953 году. Это было первое охотничье оружие, использующее патроны с бездымным порохом. Название основного патрона (.30-30 Winchester) стало синонимом названия самой винтовки (эта модель выпускалась и под другие патроны).

 .30-30 Winchester  — винтовочный патрон американского происхождения; один из самых старых патронов, выпускаемых в настоящее время. Первоначально патрон назывался .30 WCF (англ. Winchester Center Fire — патрон Винчестера центрального боя). При этом .30 — обозначение калибра в сотых долях дюйма (0,30, то есть 7,62 мм, хотя настоящий калибр пули чуть больше — 7,82 мм). Название .30-30 появилось из-за принципиальной позиции фирмы Marlin Firearms, конкурировавшей с «Винчестером» — её руководство не желало употреблять имя фирмы-конкурента в названии патрона, под который она начала выпускать крупные партии оружия. Фирма «Марлин» поместила в название патрона вторую «тридцатку», означавшую вес порохового заряда в гранах (1,94 грамма).

В то же время за пределами США патрон .30-30 Winchester известен мало и в продаже практически не встречается. Оружие под него производят практически только американские фирмы, причём в большинстве своём это винтовки с рычажным взводом.

Т.е. такая «матрешка» — HDD назвали как ружье, а ружье назвали по типу патрона.

А вот и сам герой — IBM 3340 от 1973 года

Да, он помещался в двух шкафчиках высотой около 1 м. Кстати, он был еще и на колёсиках — его можно было перемещать по машинному залу (мобильность, однако). Накопитель рассматривался как научное «чудо». При плотности магнитной записи 1,7 Мбит на квадратный дюйм он оснащался маленькими аэродинамическими головками (то есть головки впервые стали «парить» над вращающейся магнитной поверхностью под действием аэродинамических сил) и герметичной «коробкой» («банкой»), в которой помещались пластины с головками. Это защищало диски от пыли и загрязнений и позволяло кардинально уменьшить рабочее расстояние между головкой и пластиной (высоту «полета»), что привело к существенному росту плотности магнитной записи. IBM 3340 по праву считают отцом современных жестких дисков, поскольку именно на этих принципах они и строятся.

ATA — Advanced Technology Attachment — интерфейс подключения накопителей
ATAPI — Advanced Technology Attachment Packet Interface — вариант интерфейса для подключения сменных устройств (CD/DVD ROM)

IDE — Integrated Device Electronics — дословно интегрированная электроника устройства — т.е. контроллер встроен в сам привод (см. ниже DMA)
DMA — Direct memory access — прямой доступ к памяти
PATA — Parallel Advanced Technology Attachment — параллельный интерфейс подключения накопителей, фактически другое название для IDE

SATA — Serial Advanced Technology Attachment — последовательный интерфейс подключения накопителей



AHCI
 — Advanced Host Controller Interface — расширенный вариант (протокол) работы контроллера SATA

SSD — Solid State Drive — трердотельный диск (т.е диска как такового нет — только микросхемы памяти)

И соответственно протокол и разъемы специально для него.

NVMe (Non-Volatile Memory Host Controller Interface Specification) — логический интерфейс, намного более быстрый чем SATA (фактически замена SATA) и специально разработанный для доступа к твердотельным накопителям через разъемы M.2 (для бытовых ПК) и U.2 (в основном для серверов)

M.2 — ранее известный как Next Generation Form Factor — является более компактной реализацией SATA Express (предоставляет поддержку шин PCI Express 3.0 и SATA 3.0 — т.е. М.2 это название разъема, а не интерфейса), используется для SSD с высокопроизводительным драйвером NVMe, созданным для работы с быстрыми флеш-накопителями.
U.2 — разъем, он же MINI-SAS. Каждый разъем U.2 может использовать четыре линии PCI-E 3.0, то есть максимальная скорость передачи может достигать 4 ГБ/с.

Разъемы M.2, U.2 и интерфейс NVMe

И какая разница — M.2 или U.2?

Напомню, что SATA (самый обычный и привычный) имеет максимальную пропускную способность — 600 МБ/с. С учетом всяких погрешностей и передачи служебных данных — остается около 550-560 МБ/с, а это и есть предел по скорости для современных потребительских накопителей. Поскольку SATA не использует линии PCI-E скорость работы существенно ниже, чем у NVMe.

Вот тут подробнее — читать.

Теперь подробнее.

Важным этапом в развитии ATA стал переход от PIO (англ. Programmed input/output — программный ввод-вывод) к DMA (англ. Direct memory access — прямой доступ к памяти). При использовании PIO считыванием данных с диска управлял центральный процессор компьютера, что приводило к повышенной нагрузке на процессор и замедлению работы в целом. По причине этого компьютеры, использовавшие интерфейс ATA, обычно выполняли операции, связанные с диском, медленнее, чем компьютеры, использовавшие SCSI и другие интерфейсы. Введение DMA существенно снизило затраты процессорного времени на операции с диском.

Поначалу стандарт работал только с жёсткими дисками, но затем был изменен для работы и с другими устройствами. К таким устройствам относятся приводы CD и DVD-ROM, магнитооптические диски и ленточные накопители. Этот новый (расширенный) стандарт стал называться «Advanced Technology Attachment Packet Interface» (ATAPI), и поэтому полное его название выглядит как — «ATA/ATAPI».

Всю хронологию развития и достижений на пути становления ATA интерфейса можно представить в виде следующей сводной таблицы.

Скорости обмена данными через интерфейс постоянно увеличивались, что, в свою очередь, на этапе внедрения ревизии «Ultra ATA Mode 4» (он же — Ultra DMA/66 со скоростью передачи 66 мегабайт в секунду) вызвало необходимость внедрения нового интерфейсного кабеля с удвоенным количеством проводников (четвертая колонка в таблице). Раньше все кабели имели именно 40 жил. Но дело в том, что с ростом скоростей передачи данных резко возросла роль взаимных помех и наводок отдельных проводников в кабеле друг на друга.

Именно поэтому был введен новый кабель. Причем все дополнительные двадцать пар его проводов это — проводники заземления (Ground), чередующиеся с проводниками информационными. Такое чередование уменьшает емкостную связь между отдельными жилами и, таким образом, сокращает взаимные наводки. При возросших скоростях передачи данных появляется еще одно ограничение — на максимально допустимую длину кабеля. Стандарт ATA всегда устанавливал эту границу в 46 см. Самих контактов (штырьков) на устройстве осталось все так же 40 (без учета «ключа») — по одному на каждый провод. Последующим (более быстрым режимам) «UDMA5» и «UDMA6» также требовался 80-жильный кабель.

Параллельный интерфейс ATA (в том виде, в котором он существует на данный момент) уже не подходил для дальнейшего развития стандарта. Попытки увеличить его пропускную способность сводятся на нет возникающими вследствие возросших скоростей наводками в кабеле. И вот тут выходит новый стандарт передачи данных — «SATA» (Serial ATA).

Это — переработанный, и улучшенный вариант предыдущего стандарта. Несмотря на то, что последовательный способ передачи медленнее, в данном случае это компенсируется возможностью работы на более высоких частотах. Отпадает необходимость в синхронизации каналов. Также сам интерфейсный кабель гораздо более помехоустойчив (все его 7 жил отдельно экранированы). Это, в свою очередь, дало возможность довести максимальную длину кабеля до одного метра.

В стандарте «SATA» Изменился также сам принцип передачи данных. Он получил название LVDS — низковольтная дифференциальная передача сигналов (англ. low-voltage differential signaling). Повышение скорости передачи и использование самосинхронизирующихся кодов позволяют отправлять больше данных по меньшему количеству проводов, чем в случае параллельной шины. Каждое SATA устройство располагается на отдельном канале (контроллере), поэтому отпадает необходимость в их конфигурировании с помощью перемычек (джамперов).

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

  • SATA-1 = 1,5 ГБ/с
  • SATA-2 = 3,0 ГБ/с
  • SATA-3 = 6,0 ГБ/с

Мы все понимаем, что это максимальная теоретическая скорость для протокола. В реальности сильно ниже, зависит от:
— стандарта диска
— от производителя диска
— контроллера на материнской плате
— качества проводов SATA

Advanced Host Controller Interface (AHCI) — механизм, используемый для подключения накопителей информации по протоколу Serial ATA, позволяющий пользоваться расширенными функциями, такими, как встроенная очерёдность команд (NCQ) и горячая замена.

Самое главное — при наличии включенного режима AHCI:
— активируется режим TRIM в SSD (для Windows 7 и старше)
— появляется возможность обновления прошивки в SSD
— немного поднимается скорость работы связки контроллер-диск (+10%)

Как включить AHCI — можно посмотреть здесь.

Отличаются ли кабели SATA 2 от кабелей SATA 3 (кабели черного, синего, красного, белого цвета)?

С точки зрения стандарта SATA (Serial ATA) шлейфы ничем не отличаются:
— те же разъемы
— те же 7 экранированных жил

С точки зрения качества изготовления — провода отличаются. Если на кабеле написано SATA 3 (обычно черного или синего цвета), то кабель точно тестировали на соответствие скорости 6 Гбит/сек и качество экранирования там лучше. Еще на кабелях SATA 3 есть фиксирующие защелки. Поэтому кабели SATA 2 стоят 1 долл, а кабели SATA 3 уже 3 долл.

Как качество кабеля может влиять на скорость? Там же данные передаются в цифровом виде?

У любого кабеля есть паразитная емкость, зависящая от качества изготовления и частоты передачи данных. Чем частота и паразитная емкость выше — тем больше искажается передаваемый сигнал. Контролер на материнской плате, видя, что идут ошибки, СНИЖАЕТ скорость передачи до момента прекращения ошибок. Это будет особенно хорошо видно при использовании контроллера и диска стандарта SATA 3 и использования кабеля SATA 2. Т.е. шлейф SATA 2 почти такой же, только его не тестировали на скорость 6 Гбит/сек и экранирование жил там хуже.

Может быть даже ситуация, что контроллер SATA 2, диск SATA 2  и замена кабеля на SATA 3 увеличила скорость обмена с диском.
Это чудо? Нет — просто кабель SATA 2 был совсем уж низкого качества и собственно не обеспечивал передачу сигналов на соответствующих частотах. Установка кабеля SATA 3 позволила контроллеру нормально работать на своей скорости SATA 2.

Самый лучший вариант — использовать кабели SATA, который производитель материнской платы положил в комплекте 🙂 Если шлейфов в комплекте нет — лучше купить шлейфы стандарта SATA 3, там качество изготовления будет выше.

Вот можно сравнить скорости SSD Kingstone (один и тот же) на разных контроллерах SATA 2 (разные материнские платы) с включенный режимом AHCI и красным SATA 2 / черным SATA 3 проводом. Операционная система Windows 7, для первого варианта TRIM выключен.

ICH 8 без AHCI ICH 10R с AHCI (красный провод SATA 2) ICH 10R с AHCI (черный провод SATA 3)
 

 

Установка джамперов (перемычек) для дисков IDE и подключение шлейфов

Перед подключением шлейфа IDE необходимо правильно установить джамперы на устройствах. Каждый шлейф поддерживает два устройства, одно должно быть Master, второе — Slave.
Зачем это вообще нужно? ATA стандарт является по своей природе параллельным интерфейсом. Это значит, что каждый канал в любой момент времени может обрабатывать только один запрос к одному (от одного) устройства. Следующий запрос, даже к другому устройству, будет ожидать завершения выполнения текущего обращения. Разные IDE каналы при этом могут работать совершенно автономно. Чтобы контроллер «понимал» от «кого» пришел запрос (DVD или HDD) и нужны перемычки.

Джампер выглядит вот так — это специальная перемычка на два пина:

Проще всего для оптических накопителей, выбор из 3-х вариантов.

Иногда производитель вообще не указывает распиновку — но можно легко запомнить.
Ближние пины к колодке подключения IDE — MA (Master), джампер установлен
Средние пины — SL (Slave)
Крайние пины — CS (Cable Select).

Для жестких дисков выбор вариантов больше.

Мы видим знакомый выбор в первых трех вариантах и два дополнительных варианта:
Master with non-ATA compatible slave — ведущий с несовместимым ведомым (будет работать только Master)
Limit drive capaciti to 32 Gbytes — ограничить емкость диска 32 Гб (для старых материнских плат).

Теперь посмотрим на сам шлейф IDE , он выглядит вот так (на 80 жил):

Синия колодка (у правильных производителей) подключается к материнской плате, противоположный черный разъем к устройству Master и средний серый разъем к устройству Slave. Если цвет у колодок другой (у неправильных производителей) — то ориентируемся на спецификацию. Окончание более длинного отрезка кабеля подключается к материнской плате, а оставшиеся два разъема (на более коротком отрезке) — к устройствам. Причем «Master» находится всегда на конце кабеля, а «Slave» — ближе к середине.

Вот так:

Почему master всегда на конце кабеля?

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

Что такое  «Enable cable select», который мы видели при установке перемычек (сокращенно — «Cable select», совсем коротко — «CS»)? Это режим, при котором (в зависимости от расположения на шлейфе) «Master» и «Slave» определяются автоматически. Для его реализации нужен специальный шлейф с кабельной выборкой (разрыв 28 проводника).

Вот картинка для 40-жильного кабеля.

Вот фото реального кабеля с кабельной выборкой.

Таким образом, на одном из устройств контакт 28 оказывается заземленным (режим Master), а на другом — свободным (Slave). Этот режим корректно работает только при наличии двух устройств на кабеле и установленных перемычек в CS. На обычном кабеле этот режим не работает.

Еще есть экзотический вариант кабеля для режима Cable Select. Он симметричный, т.е. если его сложить пополам, то ровно посредине будет разъем. Именно он подключается к материнской плате, а обе оставшиеся крайние «колодки» — к устройствам IDE. Подобный режим не прижился.

Дополнительные метки для правильного подключения кабеля IDE.

На любом (стандартном) ATA кабеле первый пин (провод) всегда помечен (обычно — красным). Производители размещают на материнской плате наглядные подсказки, по которым можно сориентироваться.

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

Зачем все эти сложности и подсказки? Как можно неправильно подключить IDE (ATA) кабель, если он имеет «ключ» на своем разъеме?  Дело в том, что в период перехода от интерфейсного кабеля с 40-ка проводниками на 80-ти жильный (с дополнительным заземлением), первый из них не имел этого «ключа» и его можно было подключить в материнскую плату не той стороной. На фото ниже видно оба типа интерфейсного кабеля (слева 80-ти жильный имеет один отсутствующий контакт в середине разъема, справа — старый 40-жильный шлейф).

Корректное подключение нескольких устройств

Да, можно подключать несколько устройств как удобнее 🙂 Но с точки зрения быстродействия желательно:
— два активных устройства лучше подключить к разным шлефам
— IDE HDD и IDE DVD-ROM лучше подключить к разным шлейфам, т.к. протоколы разные (PATA / ATAPI) и быстродействие оптического привода на порядок ниже HDD