Интерфейс SATA и PATA

     НАЦИОНАЛЬТЫЙ  ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ УКРАИНЫ  «КПИ» 
ФАКУЛЬТЕТ ПРИКЛАДНОЙ МАТЕМАТИКИ 
Кафедра специализированных компьютерных систем 
 
 
 
 
 
 
 
 
 
 
Реферат 
«Интерфейс SATA и PATA» 
 
 
 
 
 
 
 
                                                  
Выполнил студент 
                                                                                          
 

      
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

      
Киев 2011

     Содержание: 

  • Введение         
  • Преимущества интерфейса SATA над PATA   
  • Обратная совместимость SATA и PATA    
  • Общие данные интерфейса SATA    
  • Физический уровень       
  • Канальный уровень       
  • Транспортный и прикладной уровни    
  • Перспективы развития        
  • Используемая литература      

 

      Введение.

     ATA (Advanced Technology Attachment) — параллельный  интерфейс подключения накопителей  (жёстких дисков и оптических приводов) к компьютеру. В 1990-е годы был стандартом на платформе IBM PC; в настоящее время вытесняется своим последователем — SATA и с его появлением получил название PATA (Parallel ATA). Предварительное название интерфейса было PC/AT Attachment («Соединение с PC/AT»), так как он предназначался для подсоединения к 16-битной шине ISA, известной тогда как шина AT. Первоначальная версия стандарта была разработана в 1986 году фирмой Western Digital и по маркетинговым соображениям получила название IDE (англ. Integrated Drive Electronics — «электроника, встроенная в привод»). Оно подчеркивало важное нововведение: контроллер привода располагается в нём самом, а не в виде отдельной платы расширения, Следует отметить, что контроллер канала IDE правильнее называть хост-адаптером, поскольку он перешёл от прямого управления приводом к обмену данными с ним по протоколу.

     В стандарте АТА определён интерфейс  между контроллером и накопителем, а также передаваемые по нему команды. Интерфейс имеет 8 регистров, занимающих 8 адресов в пространстве ввода-вывода. Ширина шины данных составляет 16 бит. Количество каналов, присутствующих в системе, может быть больше 2. Главное, чтобы адреса каналов не пересекались с адресами других устройств ввода-вывода. К каждому каналу можно подключить 2 устройства (master и slave), но в каждый момент времени может работать лишь одно устройство.

     Принцип адресации CHS заложен в названии. Сперва блок головок устанавливается  позиционером на требуемую дорожку (Cylinder), после этого выбирается требуемая головка (Head), а затем считывается информация из требуемого сектора (Sector). 

Стандарт EIDE (англ. Enhanced IDE — «расширенный IDE»), появившийся вслед за IDE, позволял использование приводов ёмкостью, превышающей 528 Мб (504 МиБ), вплоть до 8,4 Гб. Хотя эти аббревиатуры возникли как торговые, а не официальные названия стандарта, термины IDE и EIDE часто употребляются вместо термина ATA.

      SATA (Serial ATA) — последовательный интерфейс  обмена данными с накопителями  информации. SATA является развитием параллельного интерфейса ATA (IDE).

     Преимущества  интерфейса SATA над PATA.

     Прежде  всего, кабель у нового интерфейса принципиально  отличается от прежнего 40- или 80-жильного широкого плоского: количество сигнальных проводов кабеля сокращено до четырех (есть еще и земля), и до метра увеличена его допустимая длина. Это способствует более компактной упаковке и лучшим условиям охлаждения внутри корпуса компьютера, удешевляет конструкцию. Тут компактные семиконтактные разъемы соединяются узким уплощенным кабелем шириной примерно 8 мм и толщиной около 2 мм. Внутри кабеля Serial ATA находятся 2 пары сигнальных проводов (одна пара на прием, другая - на передачу), отделенных тремя жилами общего провода («земли»). На разъеме, расположенном на дисках и материнских платах, три «земляных» контакта выступают чуть дальше сигнальных контактов, чтобы облегчить «горячее» подключение (предусмотрено «горячее» подключение накопителей по Serial ATA без специальных адаптеров).

     Еще одно преимущество Serial ATA - большая полоса пропускания, чем у Parallel ATA. Первая версия интерфейса Serial ATA обладает пропускной способностью до 1,5 Гбит/с (это около 150 Мбайт/с для полезных данных против 100-130 Мбайт/с у параллельного интерфейса). Однако в дальнейшем второе и третье поколение Serial ATA (примерно через 3 и 6 лет) увеличат скорость до 3 и 6 Гбит/с соответственно.

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

     Кроме того, поскольку к каждому кабелю Serial ATA может быть подключен только один накопитель (к параллельным можно подключать два накопителя одновременно), то запас скорости интерфейса сейчас кажется очень большим.

       Действительно, если нынешние IDE-винчестеры  со скоростью чтения полезных  данных с пластин до 50 Мбайт/с  практически насытили интерфейс  UltraATA/100 (два таких диска на одном IDE-шлейфе уже не могут сосуществовать без теоретической потери скорости, поскольку реально UltraATA/100 дает примерно 90 Мбайт/с потоковой пропускной способности) и подступили вплотную к пределу интерфейса UltraATA/133, то добираться до 150 Мбайт/с одиночным дискам придется еще очень долго (по прикидкам - примерно лет 5, а то и больше), то есть даже первой версии Serial ATA обеспечена долгая жизнь. К тому же соседство на одном шлейфе больше не будет мешать дискам в силу устранения латентностей шины IDE на переключение между соседними устройствами, что также должно повысить скорость работы дисков в компьютерах при грамотной реализации контроллеров на системных платах.

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

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

     Обратная  совместимость SATA и PATA. 

     Обратная  совместимость последовательного ATA с параллельным  реализована двумя  способами:

     1. Объединением чипсетов, поддерживающих  параллельный ATA-интерфейс, с дискретными  компонентами, реализующими Serial ATA физически.  Эти дискретные компоненты стали доступны в 2001 году, а в 2002 году появились чипсеты со встроенными компонентами Serial ATA.

     2. Применением адаптеров (dongles), превращающих  параллельную шину АТА в последовательную, и наоборот (см. блок-схему).  

       

     Общие данные интерфейса SATA. 

     В первой версии стандарта Serial ATA (SATA 1.0) предусмотрена  максимальная пропускная способность 150 Мбайт/с, а об ограничениях на размеры  дисков можно просто забыть на ближайшие  лет десять. В следующих версиях SATA предусматривается удвоение скорости передачи, то есть сначала будет 300, а затем и 600 Мбайт/с.

     Как уже отмечалось, стандарт SATA подразумевает  последовательную передачу данных, а  потому в кабелях передачи данных используются всего две дифференциальные пары. Одна из них работает на передачу, а другая — на прием. Всего же в кабеле SATA допускается (опционально) использование семи проводников, три из которых «земля» (рис. 1 и 2). Максимальная длина кабеля при этом составляет 1 м. 

     

     Рис. 1 Структура кабеля передачи данных SATA. 

     

     Рис. 2 Разъем шлейфа данных и питания в устройствах SATA.

     

     Рис. 3 (a) модуль подключения кабеля передачи данных; (b) модуль подключения кабеля питания; (c) кабель передачи данных; (d) кабель питания; (e) схема подключения кабеля передачи данных, к модулю подключения (f);

     По  сравнению с традиционным параллельным интерфейсом интерфейс Serial ATA имеет  большую помехозащищенность и мало восприимчив к электромагнитным помехам благодаря использованию  низкоуровневых дифференциальных сигналов. Уровень сигнала измеряется не по отношению к «земле», а по отношению к уровню сигнала в соседнем проводе, то есть как разница сигналов в двух проводниках. Любая наведенная помеха сказывается на обоих сигналах, однако их дифференциальная разница при этом не меняется.  

     Физический  уровень.

     Физический  уровень занимается передачей битов по физическим каналам связи. Здесь определяются основные характеристики среды используемой для передачи данных и характеристики электрических сигналов.

     Сигналы. При современных технологиях использование 5-ти вольтовых сигналов стало очень затруднительно, и кроме того, с ростом скорости работы возникают дополнительные сложности при переключении из одного состояния в другое. С такой проблемой уже однажды столкнулась SCSI, и сейчас, в Serial ATA был использован тот же подход. Уровень сигналов снижен и составляет 250 мв.

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

     На  физическом уровне для передачи данных используется двухэтапное логическое кодирование 8b/10b.

     При логическом кодировании 8b/10b каждые 8 бит  исходной последовательности заменяются на 10 бит в соответствии с определенными  правилами. В результате для 256 возможных  комбинаций из 8 входных бит получаем 1024 возможные комбинации для 10 выходных бит. Но разрешенными из этих 1024 комбинаций являются только 256, а остальные — запрещенными. Как правило, такая избыточность используется для того, чтобы повысить помехоустойчивость кодирования (если при приеме обнаруживается запрещенная последовательность, то распознается ошибка передачи). Кроме того, незначительная избыточность улучшает спектральные характеристики сигнала, поскольку исключает возможность появления в цепочке передаваемых бит длинных последовательностей нулей и единиц. Также повышаются и самосинхронизирующие свойства кода. При приеме данных происходит декодирование 8b/10b, то есть каждой группе из 10 бит ставится в соответствие 8 бит, а лишние биты вырезаются.

     Однако  в случае протокола SATA разрешенных  к использованию комбинаций значительно больше, чем 256. При этом каждой входной последовательности может соответствовать несколько выходных, а какая именно выходная комбинация будет использована, зависит от контрольного сигнала rd, формируемого в процессе передачи. Рассмотрим подробнее два этапа кодирования.

     При кодировании 8 исходных бит разбиваются  на две подгруппы: из 5 бит и из 3 бит. На первом этапе подгруппа 5 бит  подвергается кодированию 5b/6b, то есть каждые 5 бит заменяются на 6. На втором этапе оставшиеся 3 бита подвергаются кодированию 3b/4b.

     Целесообразность  использования двухэтапного кодирования  вызвана тем, что при кодировании  каждой группы (сначала 5 бит, а потом  оставшихся 3 бит) формируется специальный  бинарный контрольный сигнал rd (Running Disparity), который может быть либо отрицательным (rd-), либо положительным (rd+).

     При кодировании 5b/6b для 32 возможных 5-битных комбинаций на входе существует 46 6-битных возможных комбинаций на выходе (не 32 и не 64, а именно 46!). Получаются эти 46 возможных комбинаций следующим образом: каждой из 32 возможных 5-битных комбинаций на входе ставится в соответствие две 6-битные выходные последовательности: прямая и инверсная, за исключением тех 6-битных последовательностей, для которых количество «1» совпадает с количеством «0» — отсюда именно 46 возможных комбинаций на выходе.

     При кодировании 3b/4b для 8 возможных 3-битных комбинаций на входе существует 14 возможных 4-битных комбинаций на выходе, которые  формируются так же, как и прежде.

     При кодировании 3b/4b, так же как и при 5b/6b, использование прямой или инверсной выходной последовательности определяется текущим значением контрольного сигнала rd. Если сигнал rd положителен, то используется прямая последовательность, а если отрицателен — то инверсная. При этом текущее значение сигнала rd определяется по предыдущей переданной последовательности из 6 или 4 бит.

     Правило для формирования сигнала rd достаточно простое. Сигнал положителен, если количество единиц больше количества нулей в  группе закодированных бит. Исключение составляют последовательности с равным количество нулей и единиц. Для последовательностей 000111 (подгруппа 6 бит) и 0011 (подгруппа 4 бит) сигнал считается положительным, а для последовательностей 111000 и 1100 — отрицательным. Во всех остальных случаях сигнал rd нейтрален и не меняет своего состояния.

     К примеру, если входная последовательность 5 бит 00001 подвергается кодированию 5b/6b, то при положительном текущем  сигнале rd+ последовательность 00001 будет  заменена на последовательность 100010. Если текущее значение сигнала rd отрицательно (rd-), то будет сформирована инверсная последовательность 011101. Но в обоих случаях последующее состояние сигнала rd изменится на противоположное, так как при rd+ в последовательности 100010 нулей больше, чем единиц, и, следовательно, сигнал rd примет отрицательное значение, а при rd- в последовательности 011101 единиц больше, чем нулей, и сигнал rd станет положительным.

     Аналогичному  кодированию в зависимости от текущего значения сигнала rd подвергается и подгруппа из 3 бит (кодированию 3b/4b), причем с учетом того, что сперва происходит кодирование 5b/6b, а потом 3b/4b, текущее значение сигнала rd при кодировании 3b/4b определяется по результату кодирования 5b/6b.

     Таким образом, в стандарте SATA предусмотрен довольно нетривиальный метод логического кодирования.

     Кроме логического двухэтапного кодирования, при передаче данных используется метод  циклического избыточного контроля CRC-32 (Cyclic Redundancy Check) с образующим 32-битным полиномом 

        

       и скрэмблирование с образующим  полиномом 

         

     На  физическом уровне используется потенциальный  код NRZ (Non Return to Zero).

     Другой  особенностью стандарта SATA является организация  взаимодействия между контроллером и диском по принципу «точка-точка» (peer-to-peer). Напомним, что стандарт Parallel ATA предусматривает подключение на один канал до двух устройств (Master и Slave); соответственно полоса пропускания для обоих устройств не превышает 133 Мбайт/с. В стандарте SATA к одному контроллеру можно подключить только один жесткий диск, поэтому каждому устройству стандарта SATA предоставляется вся полоса пропускания целиком.

     Физическая  среда. Ключевой момент, ради которого то все и было затеяно: используется не параллельная физическая шина, а последовательная, состоящая из 2-х пар проводов (одной передачи и одной на прием) и несколько нулевых. Всего семь. Провод которыми соединяются устройство последовательной ATA становится таким образом тонким и круглым, гибким и удобным в использовании, не препятствует воздухообмену. С другой стороны, изготовление провода функционирующего на столь высоких скоростях, как у Serial ATA, и при этом обладающего высокими механическими характеристиками, пусть и содержащего всего 7 проводов, обходится вряд ли дешевле, чем обычного 80-ти жильного. И если где-то и содержится возможность снижения стоимости пользования, как обещано разработчиками изначально, то вряд ли здесь. Зато безусловно задача согласования (терминирования) решается теперь намного дешевле. А длина кабелей может достигать 1 метра. SATA может быть не только интерфейсом внутренних устройств хранения, но и… внешниих…

     К тому же в стандарте SATA предусмотрена  поддержка технологии «hot swap» (использование  дисков с горячей заменой), которая  уже давно используется в дорогих серверных SCSI-дисках, а с появлением устройств Serial ATA станет стандартом для всех устройств хранения данных. 

     Канальный уровень. 

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

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

     Обнаружение и коррекция ошибок. В отличие от стандарта ATA, который различными механизмами обнаружения и коррекции ошибок обрастал по мере роста быстродействия, т.е. тогда, когда припирало и без них было не обойтись, в Serial ATA несколько механизмов заложены изначально. Во-первых, хорошей распознаваемостью обладает используемый на физическом уровне NRZ. Но это не главное, ряд ошибок может успешно его миновать. Как говорилось выше, применяется избыточное кодирование 8B/10B. Суть его проста: 8 бит исходных данных дополняются 2-мя дополнительными битами. Итого получается 10 бит - т.е. 1024 возможных битовых комбинаций может быть в получившемся коде, в то время как в исходном - только 256. Из результирующего кода отбирают 256 комбинаций, которые будут соответствовать 256-ти комбинациям исходного кода, а остальные считают запрещенными. Это позволяет распознавать искажение данных - если принята запрещенная последовательность, то при передаче произошла ошибка. Кроме того, в Serial ATA используется CRC код. Кстати то, что жесткие диски с SATA имеют максимальную скорость обмена по интерфейсу в 150 Мбайт в секунду, при том, что для SATA заявлена скорость передачи на физическом уровне в 1.5 Гбит/с, объясняется использованием избыточного 8B/10B кодирования, снижающего полезную пропускную способность интерфейса до 1.2 Гбит/с.

     Скремблирование. Код NRZ, используемый на физическом уровне не обладает свойством самосинхронизации, так как при последовательности нулей или единиц сигнал в линии просто превращается в постоянный сигнал определенного уровня. Скремблирование помогает бороться с этим явлением, перемешивая данные, подлежащие передаче определенным образом так, чтобы вероятность появления единиц и нулей на выходе была приблизительно одинаковой. Работает канальный уровень так: получает информационный кадр от транспортного, выполняя логическое кодирование и вычисление CRC, и спускает вниз - к физическому уровню. При получении данных от физического порядок действия обратный.  
 
 
 

     Транспортный  и прикладной уровни. 

     Задачей транспортного уровня является обеспечение  вышележащим протоколам передачи с  той степенью надежности, которая  им требуется. Он упаковывает поступившие  от прикладного уровня ATA команды  в кадры и предает их следующему, или распаковывает поступившие снизу данные и передает на прикладной уровень.

     Задачей прикладного уровня является организация  взаимодействия между драйвером  контроллера и всего программного, что за ним дальше стоит и самим  контроллером через блок регистров и портов. 

     Перспективы развития.

     Интерфейс SATA предоставляет пропускную способность  в 3 Гбит/с, чего пока вполне хватает  для нужд современных жестких  дисков и оптических приводов. Однако появление таких устройств, как  твердотельные накопители с их высокой производительностью, вполне могут в скором времени исчерпать предоставленный лимит. А значит, о разработке более скоростного варианта SATA нужно заботиться уже сегодня, так что организация Serial ATA International Organization (SATA-IO), ответственная за развитие последовательного интерфейса, готовит спецификации стандарта SATA 3.0, который будет способен на передачу данных на скорости до 6 Гбит/с. На данный момент близки к готовности спецификации физического уровня протокола. Пока известно, что существенных изменений в интерфейс разработчики вносить не планируют – максимальная длина кабеля составляет 1 метр, причем разъемы будут совместимы с ранними версиями SATA. Однако помимо увеличения скоростных показателей разработчики планируют также реализовать поддержку дополнительного набора команд, которые предназначены для повышения эффективности при передаче видео потока.  
Используемая литература:
 

     
  1. Скотт Мюллер Модернизация и ремонт ПК «Вильямс», 2007
  2. www.serialata.org (Спецификация интерфейса Serial ATA)
  3. “SATA Storage Technology: Serial ATA” Don Anderson.
Интерфейс SATA и PATA