ata8 acs что это

Архитектура ЭВМ

Компоненты ПК

Интерфейсы

Мини блог

Самое читаемое

ATA/IDE

Стандарты ATA

В настоящее время развитием интерфейса ATA занимается независимая группа, включающая в себя представителей различных компанийразработчиков ПК, жестких дисков и комплектующих. Эта группа, получившая название Технический комитет Т13, отвечает за развитие всех стандартов интерфейсов Serial и Parallel AT Attachment. Комитет Т13 входит в Интернациональный комитет по стандартам информационных технологий (International Committee on Information Technology Standards — INCITS), который работает в соответствии с правилами государственной организации ANSI (Национальный институт стандартизации США).Для создания стандартов SATA была сформирована группа, получившая название Serial ATA Workgroup (www.serialata.org), которая затем передала свои разработки Комитету T13 для завершения и официальной публикации. В последние стандарты ATA-7 и ATA-8 вошли требования к последовательному и параллельному интерфейсам ATA.

Правила, разрабатываемые этими комитетами, предназначены для согласования стандартов производителей, вовлеченных в этот технологический сектор рынка. В частности, Международный комитет стандартов информационных технологий (INCITS) разрабатывает стандарты систем обработки информации, в то время как Институт стандартизации ANSI утверждает процесс разработки этих стандартов и публикует их. Поскольку Комитет T13 по своей сути является общественной организацией, все рабочие проекты и их обсуждения открыты для публичного доступа.

На данный момент рассмотрены и утверждены следующие стандарты ATA.

Начиная с ATA-1, новые версии интерфейса ATA и обновленные версии BIOS обеспечивали поддержку более емких и быстрых накопителей, а также устройств других типов, отличных от жестких дисков. В стандарте ATA-2 и всех последующих исходный интерфейс ATA был улучшен в пяти направлениях:

Все версии стандарта ATA обратно совместимы, т.е. устройства ATA-1 или ATA-2 будут прекрасно работать с интерфейсом ATA-4 или ATA-5. Каждый последующий стандарт ATA основан на предыдущем. Это означает, что стандарт ATA-8, например, практически полностью соответствует функциональным особенностям ATA-7, но обладает дополнительными функциональными возможностями. Стандарты ATA-7 и ATA-8 содержат требования к параллельному и последовательному интерфейсам ATA.

В таблице представлены сведения о существующих стандартах ATA, а их более подробное описание приведено далее.

Таблица. Стандарты ATA

Стандарт Предложен, год Опубликован, год Прекращен выпуск новых продуктов, год PIO DMA UDMA Быстродействие параллельного ATA, Мбайт/с Быстродействие SATA, Мбайт/с Свойства
ATA1 1988 1994 1999 0-2 0 8,33 Поддержка дисков емкостью до 136,9 Гбайт, не встроенная в BIOS
ATA2 1993 1996 2001 0-4 0-2 16,67 Трансляция CHS/LBA
для работы с дисками емкостью до 8,4 Гбайт
ATA3 1995 1997 2003 0-4 0-2 16,67 Поддержка технологии
S.M.A.R.T., обязательная
поддержка LBA, исключение однословных
режимов DMA
ATA4 1996 1998 0-4 0-2 0-2 33,33 Режимы Ultra-DMA, поддержка дисков емкостью до 136,9 Гбайт
на уровне BIOS
ATA5 1998 2000 0-4 0-2 0-4 66,67 Режимы Faster UDMA, новый 80контактный кабель с автоопределение
ATA6 2000 2002 0-4 0-2 0-5 100,00 Режим UDMA с быстродействием 100 Мбайт/с; поддержка дисков емкостью до 144 Пбайт на уровне BIOS
ATA7 2001 2004 0-4 0-2 0-6 133,00 150 Режим UDMA с
быстродействием
133 Мбайт/с
ATA8 2004 0-2 300 Незначительные
изменения

SMART. Self-Monitoring, Analysis, and Reporting Technology (технология самоконтроля с анализом).
Пбайт. Петабайт; 1 Пбайт равен одному квадрильону байтов.
CHS. Cylinder Head Sector (система адресации типа цилиндр/головка/сектор).
LBA. Logical Block Address (адресация логических блоков).
UDMA — Ultra DMA (Direct Memory Access — прямой доступ к памяти).

Источник

Ata8 acs что это

ATA (AT Attachment) — параллельный интерфейс для подключения накопителей к ПК. В 90-е являлся стандартом, построенным на платформе IBM PC. В настоящее время стремительно вытесняется на рынке своим же последователем — SATA. С момента появления SATA, ATA переименовали в PATA (Parallel ATA).

История

Первоначально интерфейс получил предварительное название PC/AT Attachment («Соединение с PC/AT»), поскольку он предназначался для подключения к 16-битной шине ISA (известна как шина AT). В окончательной версии название переделали в «AT Attachment» во избежании проблем с торговыми марками.

Первая версия стандарта была разработана в 1986 году компанией Western Digital, она имела название IDE (Integrated Drive Electronics — «встроенная в привод электроника»). Название отображало существенное нововведение: контроллер привода располагался в нем самом, а не в виде отдельной платы расширения, как в предшествующем стандарте ST-506 и существовавших тогда интерфейсах SCSI и ST-412. Благодаря этому нововведению были улучшены характеристики накопителей. Меньшее расстояние до контроллера, упрощенное управление им, поскольку контроллер канала IDE абстрагировался от деталей работы привода, более дешевое производство.

Читайте также:  какой налог платит самозанятый таксист

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

Принцип адресации CHS заключается в следующем: прежде всего блок головок устанавливается позиционером на требуемую дорожку, после чего выбирается требуемая головка, а затем из требуемого сектора считывается информация.

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

Хоть эти аббревиатуры возникли в качестве торговых линеек, а не официальных названий стандарта, термины IDE и EIDE обычно употребляются вместо термина ATA.

После выхода стандарта Serial ATA («последовательный ATA»), который состоялся в 2003 году, традиционный ATA стал называться Parallel ATA, что подразумивало под собой ничто иное, как способ передачи данных по параллельному 40- или 80-жильному кабелю.

Первоначально, интерфейс применялся с жесткими дисками, однако затем стандарт был расширен для работы и с другими устройствами, преимущественно, со сменными носителями. На шину ATAPI подключали даже FDD. Такой расширенный стандарт получил название Advanced Technology Attachment Packet Interface (ATAPI), а полное наименование стандарта выглядит как ATA/ATAPI. ATAPI почти полностью совпадает со SCSI на уровне команд.

Сперва интерфейсы по подключению приводов CD-ROM не были стандартизованы, являясь исключительно частными разработками производителей приводов. По этой причине, для подключения CD-ROM необходимо было устанавливать отдельную плату расширения, настроенную под конкретного производителя. Некоторые версии звуковых карт, например Sound Blaster, оснащались именно такими портами. Выход на рынок ATAPI позволил стандартизировать всю периферию и дать возможность подключать ее к любому контроллеру.

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

Потоком данных в этой технологии управляет сам накопитель. Он считывает данные из памяти почти без участия процессора, а тот, в свою очередь, просто выдает команды на выполнение того или иного действия. При этом жесткий диск выдает сигнал запроса DMARQ на операцию DMA контроллеру. Если операция DMA возможна, контроллер посылает сигнал DMACK и жесткий диск выдает данные в 1-й регистр (DATA), с которого контроллер считывает их. Так, процессор практически не задействован в этой цепочке.

Операция DMA возможна только в том случае, если режим поддерживается одновременно BIOS, контроллером и операционной системой. В противном случае, возможен лишь режим PIO. При развитии стандарта (АТА-3), инженерами был введен дополнительный режим UltraDMA 2 (UDMA 33), который имеет временные характеристики DMA Mode 2. Однако, данные передаются и по переднему, и по заднему фронту сигнала DIOR/DIOW, что вдвое увеличивает скорость передачи данных по интерфейсу. Кроме того, введена проверка на четность CRC, что увеличивает надежность передачи.

История развития ATA включала в себя ряд барьеров (в частности, ограничения на максимальный размер диска в 504 МиБ, около 8 ГиБ, около 32 ГиБ, и 128 ГиБ), связанных с организацией доступа к данным. Большинство из этих барьеров, благодаря современным системам адресации, были преодолены. Впрочем, существовали и другие барьеры, в основном связанные с драйверами устройств, и организацией ввода/вывода в ОС, не работающих в ATA.

В оригинальной спецификации АТА предусматривался 28-битный режим адресации, что позволяло адресовать 2 28 (268 435 456) секторов по 512 байт каждый. Это давало максимальную емкость в 137 Гб (128 ГиБ). В стандартных PC BIOS поддерживал до 7,88 ГиБ (8,46 Гб), допуская максимум 1024 цилиндра, 256 головок и 63 сектора. Это ограничение на число цилиндров/головок/секторов CHS (Cyllinder-Head-Sector) в сочетании со стандартом IDE привело к ограничению адресуемого пространства в 504 МиБ (528 Мб). В целях преодоления этого ограничения была введена схема адресации LBA (Logical Block Address), что позволило адресовать до 7,88 ГиБ. Со временем, данное ограничение было снято. Это дало возможность адресовать сначала 32 ГиБ, а затем и 128 ГиБ, используя все 28 разрядов (в АТА-4) для адресации сектора. Запись 28-битного числа организована путем записи его частей в соответствующие регистры накопителя (с 1 по 8 бит в 4-й регистр, 9-16 в 5-й, 17-24 в 6-й и 25-28 в 7-й).

Читайте также:  auntie group что это

Новейшие спецификации ATA предполагают 48-битную адресацию, расширяя возможный предел до 128 ПиБ (144 петабайт).

Источник

Ata8 acs что это

Пожалуй, одной из основных задач разработчика ОС является работа с жесткими дисками и файловыми системами. В этой статье рассмотрим принципы работы с контроллерами ATA/ATAPI. Первая часть — способы поиска контроллеров дисков и проверка наличия на них устройств. Вторая часть — непосредственно чтение и запись данных на жёстких дисках с использованием всевозможных методов.

Вопросы, связанные с реализацией кэша и файловой системы, ищите в другом месте.

Содержание

Вступление

С развитием компьютера рос и объём жёсткого диска. Его геометрия менялась.

Сначала хватало способа адресации CHS (Cylinder-Head-Sector — Цилиндр-Головка-Сектор). Этот способ позволял адресовать до 8ГБ. Но такая адресация была до жути неудобной, и на смену ей тут же пришёл другой способ — LBA (Linear Block Addressing — линейная адресация сектора). Изначально родился стандарт LBA28, что позволяло использовать 28-битный адрес сектора, то есть максимальный объём диска мог достигать примерно 128ГБ. Однако, в последнее время объём данных на жёстких дисках превысил эту величину, вследствие чего появился стандарт LBA48 (с 48-битной адресацией секторов).

Способ адресации CHS долго использовался BIOS в прерываниях дискового сервиса. Но после появилось и расширение, способное адресовать через LBA.

С появлением PCI IDE контроллера расширился способ доступа к диску.

В дальнейшем появился SATA контроллер. Кто его звал? Все жили счастливо без него. Ну что же, примем как должное и будем программировать и его.

Поиск контроллеров и дисков на них

Как найти контроллер дисков? Собственно, как и любой другой. Надо знать, где искать. А искать будем на шине PCI.

Ищем контроллер по его базовому классу 01.

BCC SCC PI Тип
01h 00h 00h SCSI контроллер
01h xxh IDE контроллер, смотри рисунок
02h 00h Контроллер гибких дисков
03h 00h IPI контроллер
04h 00h RAID контроллер
05h 00h
06h 01h AHCI контроллер
80h 00h Устройство массовой памяти другого типа

Просто сканируем все устройства и проверяем их класс. Как это делается, читайте в статьях про PCI.

Нас, собственно, интересует три пункта:

Бит Тип Значение Описание
7 RO 1 Bus Master
6:4 RO 0 Зарезервировано
3 RO 1 Поддерживаемый типвторичного канала1-поддерживаются оба типа
2 RW/RO 1/0 Установленный режимвторичного каналарасширенный/устоявшийся
1 RO 1 Поддерживаемый типпервичного канала1-поддерживаются оба типа
0 RW/RO 1/0 Режим первичного канала

Имеем следующую табличку портов [1] [2] [3] :

Обозначение Наименование 10h-13h

Базовый адрес портов команд первичного канала

Базовый адрес порта контроля первичного канала

Базовый адрес портов команд вторичного канала

Базовый адрес порта контроля вторичного канала

Базовый адрес регистров для режима захвата шины

Надо сразу сказать, что контроллер может находиться в одном из двух состояний:

Если контролер работает в устаревшем режиме (Legacy), то для доступа к каналам используются следующие порты:

Первичный канал: порты команд 01F0h-01F7h
порт контроля 03F4h+2
прерывание IRQ14
Вторичный канал: порты команд 0170h-0177h
порт контроля 0374h+2
прерывание IRQ15

В конфигурационном пространстве PCI на месте BAR-регистров будет нулевой адрес, что будет говорить о том, что порты эти либо не используются, либо используются особые порты, как в нашем случае. При этом BM_BASE будет выставлен.

Найдя контроллеры и считав базовые порты, перейдем к определению дисков.

Чтобы не усложнять жизнь, каналы будем нумеровать с нулевого и до последнего, не различая номер контроллера (по идее, так проще).

Читайте также:  при каком государе было отменено местничество

Чтобы определить присутствие жесткого диска, нужно послать команду:

Для определения оптического диска или другого специфичного устройства, способного выполнять пакетные команды, нужно послать ему команду:

По стандарту ATA/ATAPI после команды EXECUTE DEVICE DIAGNOSTIC или DEVICE RESET устройством должна возвращаться сигнатура. Если подключен оптический дисковод, то должна вернуться сигнатура поддержки пакетных устройств ATAPI:

Для простых дисков ATA сигнатура следующая:

Помимо сигнатуры в регистр Error должен вернуться Diagnostic code код присутствия или отсутствия диска.

Когда мы посылаем команду EXECUTE DEVICE DIAGNOSTIC Slave-устройству, то на эту команду должен ответить Master. Если у нас есть Master, то он отвечает за Slave. Diagnostic_code=01h будет означать, что Slave есть, в противном случае его нет. Однако для Slave это не является достоверной информацией. If Device 1 is not present, the host may see the information from Device 0 even though Device 1 is selected. Если Master отсутствует, а Slave присутствует, то Slave сам ответит за себя.

Помимо прочего, существует несогласованность:

Приходится также проверять и результат команды DEVICE RESET.

Как уже было упомянуто, для Slave EXECUTE DEVICE DIAGNOSTIC не возвращает достоверной информации, поэтому необходимо делать дополнительную проверку.

Вызываем команду для получения параметров жестких дисков:

Практика показала, что SATA в случае эмуляции только Master-дисков при попытке обратиться к Slave будет возвращаться данные о состоянии Master-диска. Однако данные от команды не будут получены. Поэтому смотрим: если на запрос IDENTIFY DEVICE или IDENTIFY PACKET DEVICE вернулась ерунда или ошибка команды, или в Data регистре идут повторяющиеся слова, то считаем, что диска нет.

Вот мой исходник (компилятор — FASM). Громоздко вышло.

Выполнение команд, примеры чтения записи

Существует несколько классов команд. Но все протоколы можно разделить на два-три типа: с приемом блока данных, с передачей блока данных и без передачи блока данных.

Основной блок регистров — это Command Block. Ниже представлены мнемонические обозначения его структуры. Есть еще старые обозначения для CHS адресации, но их я опущу. Все регистры имеют разрядность 8 бит. Исключение составляет Date, в который запись и чтение идет словами (по 2 байта, то есть, 16 бит) или двойными словами (4 байта или 32 бита), так называемый режим PIO32.

Также следует обратить внимание на блок контроля: в нём задействованы только регистры со смещением 2. Поэтому часто, говоря о Control Block, подразумевают Device Control, и, следовательно, сразу считают базовый адрес относительно этого регистра.

Для начала разберемся в структуре регистра статуса.

Объясним значения битов:

Теперь понятно, как сделать вызов команды, не использующей передачу блока данных:

Для команд, работающих с передачей блока данных:

Резонный вопрос: как работать с LBA48, если все регистры имеют разрядность 8 бит?

При адресации через LBA48 запись адреса идет в те же регистры, но более хитрым способом. Сначала записывается старшая часть адреса и число секторов, а затем (во второй раз) в те же самые регистры записывается младшая часть.

Помимо этого, можно прочитать эти регистры, установив HOB-бит, чтобы прочитать старшую часть, или сбросив, если нужно прочитать младшую.

Все команды для LBA48 имеют суффикс EXT.

Если для адресации используется LBA48, то установка HOB=0 позволяет читать старшую часть адреса, а при HOB=1 из регистра Command Block доступна для чтения младшая часть адреса.

Посылка команды READ SECTOR(S)=20h Запрос

Посылка команды READ SECTOR(S) EXT =24h Запрос

Также важной характеристикой является максимальный адрес сектора. Код операций чтения для LBA28 и LBA48:

В ответ на команду READ NATIVE MAX ADDRESS=0F8h

После посылки команды READ NATIVE MAX ADDRESS EXT=027h

Напоминаю, что Device Control register — это порт контроля (к примеру, 03F4h+2). Читать из этого регистра нельзя, так как в нём хранятся другие данные. Бит устанавливается посылкой 80h (HOB=1) или 0h (HOB=0). Любая запись в Command Block приводит к сбросу HOB=0.

Связанные материалы

Первоисточник (прим. доступно черз зеркало)

Стандарты ATA/ATAPI

D1699r4a-ATA8-ACS.pdf D1699r4a-ATA8-ACS.pdf ATA/ATAPI-8 ACS-2 ATA/ATAPI-8 ACS-3

Внимание! Это незаконченная статья. Вы можете помочь доработать статью и наполнить ее материалом.

Для улучшения статьи необходимо: Перевести таблицы в вики-разметку Grindars 15:06, 15 августа 2008 (MSD)

Источник

Сказочный портал