Интерфейсы ПК

       

Средства многозадачности (ДТА-4)


6.6. Средства многозадачности (ДТА-4)

Главным недостатком интерфейса АТА в многозадачных си- стемах является то, что когда одно устройство на шине ис- полняет команду, другое использоваться не может. В этом АТА существенно уступает SCSI, где устройства на время длительной внутренней операции могут освобождать шину и имеется эффективный механизм организации очередей про- цессов ввода/вывода. Спецификация АТА-4 определяет воз- можности параллельного выполнения команд обоими ус- тройствами и создания очередей.

Перекрытие команд - Overlapped Feature - позволяет устрой- ству, занятому длительной внутренней операцией, освобо- дить шину. Для этого устройство должно сбросить биты DRQ и BSY регистра состояния. По окончании выполнения опе- рации устройство устанавливает бит SERVB своем регистре состояния. Если хост намерен использовать шину для обра- щения к другому устройству, он должен запретить прерыва- ния от устройства, установив бит nIEN в регистре управле- ния. После того как хост вернется к обслуживанию устройства, он должен послать ему команду NOP с подко- мандой 01 для получения информации о состоянии. При этом он может разрешить прерывание, которое произойдет по готовности устройства к продолжению. Обнаружив уста- новленный бит SERV, хост посылает команду Service, кото- рая вызовет продолжение исполнения команды, во время которой шина освобождалась. Принятый механизм продол- жения менее эффективен, чем в SCSI, - он требует привле- чения хоста для обнаружения готовности устройства. Пере-

крытие допускается только для команд NOP (с подкоман- дой 01), Packet, Read DMA Queued, Service и Write DMA Queued.

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


Содержание раздела