Перспективы интерфейса Sеriаl АТА
Интерфейс Sеriаl АТА является хост-центрическим, в нем определяется только взаимодействие хоста с каждым из подключенных устройств, а взаимодействие между ведущим и ведомым устройствами, свойственное традиционному интерфейсу АТА, исключается. Программно хост видит множество устройств, подключенных к контроллеру, как набор каналов АТА, у каждого из которых имеется единственное ведущее устройство. Имеется возможность эмуляции пар устройств (ведущее - ведомое) на одном канале, если такая необходимость возникнет. Программное взаимодействие с устройствами Sеriаl АТА практически совпадает с прежним, набор команд соответствует АТА/АТАРI-5.
В то же время аппаратная реализация хост-адаптера Sеriаl АТА сильно отличается от интерфейса АТА. В параллельном интерфейсе АТА хост-адаптер был простым средством, обеспечивающим программное обращение к регистрам, расположенным в самих подключенных устройствах. В Sеriаl АТА ситуация иная: хост-адаптер имеет блоки так называемых «теневых» регистров, совпадающих по назначению с обычными регистрами устройств АТА. Каждому подключенному устройству соответствует свой набор регистров. Обращения к этим теневым регистрам вызывают процессы взаимодействия хост-адаптера с подключенными устройствами и исполнение команд.
Каждое устройство, подключенное к адаптеру Serial ATA, представляется тремя блоками регистров, два из которых соответствуют традиционным регистрам ATA и называются «теневыми», третий блок является новым. Привязка адресов блоков к адресному пространству хоста стандартом не регламентируется. Для PСI-контроллера блоки задаются регистрами конфигурационного пространства и «теневые» регистры могут располагаться по стандартным адресам ATA.
Новый блок регистров SCR. Новый блок регистров SCR (Serial ATA Status and Control registers) состоит из 16 смежных 32-разрядных регистров SCR0-SCR15, из которых пока определены лишь 3 (остальные пока зарезервированы).
Регистр SStatus (SCR0) - регистр текущего состояния интерфейса хост адаптера (только чтение).
Биты [3:0] - поле DET, подключение устройств:
0000 - устройство не обнаружено, физической связи нет;
0001 - устройство обнаружено, но физическая связь не установлена;
0011 - устройство обнаружено, физическая связь установлена;
0100 - устройство отключено (запретом интерфейса или запуском внутреннего теста).
Биты [7:4] - SPD, скорость:
0000 - нет согласованной скорости (устройство не подключено или связь не установлена);
0001 - согласована скорость 1-го поколения.
Биты [11:8] - поле IPM, состояние энергопотребления интерфейса:
0000 - устройство не обнаружено, физической связи нет;
0001 - интерфейс в активном состоянии;
0010 - интерфейс в состоянии PARTIAL;
0110 - интерфейс в состоянии SLUMBER.
Остальные биты и значения полей зарезервированы.
Регистр SError (SCR1) - регистр диагностической информации, относящейся к интерфейсу. В регистре представлены ошибки, накапливающиеся с момента последней очистки регистра. Регистр очищается операцией сброса, отдельные биты можно сбрасывать операцией записи в регистр (единицы в позициях сбрасываемых бит).
Биты [15:0] - поле ERR, ошибки, обрабатываемые обычным программным обеспечением:
бит 9 - С - устойчивая неисправимая ошибка связи или нарушение целостности данных (может возникать при неправильном подключении, отказе или отключении устройства);
бит 11 - Е - внутренняя ошибка, обнаруженная хост-адаптером (если ошибка повторяется после сброса, она может быть признаком несовместимости адаптера и устройства);
бит 0 - I - исправленное нарушение целостности данных (не требует действий со стороны программного обеспечения, но может учитываться, например, для принятия решения о снижении скорости);
бит 1 - М - исправленная ошибка связи (может возникать при временном отключении устройства, потере синхронизации, не требует действий со стороны программного обеспечения);
бит 10 - Р - протокольная ошибка, требует сброса интерфейса и повтора операции (в случае устойчивости может быть признаком несовместимости устройства и адаптера);
бит 8 - Т - не исправленное нарушение целостности данных, требует повтора операции.
Биты [31:16] - поле DIAG, используемое диагностическим программным обеспечением:
бит 19 - В - ошибка декодирования 10В/8В;
бит 21 - С - ошибка CRC на канальном уровне;
бит 20 - D - ошибка паритета блоков данных (Disparity);
бит 26 - F - неопознанный тип FIS (ошибка, обнаруженная на транспортном уровне при корректном CRC-коде);
бит 17 - I - внутренняя ошибка физического уровня интерфейса;
бит 16 - N - сигнал готовности физического уровня менял состояние;
бит 22 - Н - ошибка подтверждения кадров (может возникать как следствие ошибок В, С, D);
бит 23 - S - ошибка последовательности состояний канального уровня;
бит 24 - Т - ошибка на транспортном уровне;
бит 18 - W - обнаружен пробуждающий сигнал Соmm Wake.
Остальные биты зарезервированы.
Регистр SControl (SCR2) - регистр управления интерфейсом (запись и чтение).
Биты [3:0] - поле DET, управление обнаружением и инициализацией устройств:
0000 - нет действий;
0001 - инициализация и установление соединения (эквивалентно аппаратному сбросу);
0100 - запрет интерфейса и перевод физического уровня в режим Offline.
Биты [7:4] - поле SPD, задает ограничение на скорость при согласовании соединений:
0000 - нет ограничений;
0001 - скорость не выше 1-го поколения.
Биты [11:8] - поле IPM, управление энергорежимом интерфейса:
0000 - нет ограничений;
0001 - запрет перехода в состояние PARTIAL,
0010 - запрет перехода в состояние SLUMBER;
0011 - запрет перехода в состояние PARTIAL и SLUMBER.
Остальные биты и значения полей зарезервированы.
Технологии интерфейса Serial ATA тeopeтичecки cпocoбны yдoвлeтвopить вce пoтpeбнocти жecткиx диcкoв в cкopocти пepeдaчи нa длительную перспективу, пока не будут предложены архитектуры дисковых подсистем нового типа, программно не совместимые с РАТА, что возможно увеличит шансы PCI Express в качестве альтернативы SATA.
Современные тенденции таковы, что шина PCI Express должна вскоре прийти на смену интерфейсу SATA 6 Гбит/с повсеместно – это заложено в наиболее свежей версии спецификации SATA 3.2. Дальнейшее развитие SATA предполагает, что SSD для настольных систем сохранят своё привычное исполнение, но будут подключаться по специальному интерфейсу SATA Express, который введёт в обращение новый тип разъёмов и кабелей. При этом SATA Express объединяет два интерфейса SATA 6 Гбит/с (они нужны для обратной совместимости со старыми накопителями) и несколько линий PCI Express. Порты SATA Express первого поколения, которые могут присутствовать в настоящее время на материнских платах на базе набора логики Intel Z97, предполагают использование двух линий PCI Express второго поколения, что означает рост пиковой пропускной способности современной реализации SATA Express до 1 Гбайт/с. Второй, предусмотренный спецификацией вариант подключения накопителей по шине PCI Express – это специализированные слоты M.2 (также известные как NGFF), ориентированные в первую очередь на мобильные применения. Такие слоты, имеющие сравнительно небольшой размер, и потому идеально подходящие для тонких и ультратонких ноутбуков, объединяют один интерфейс SATA 6 Гбит/с и несколько линий PCI Express.