- •2. Классификация интерфейсов
- •4. Эволюция стандартов scsi
- •5. Как выглядит и из чего состоит scsi контроллер
- •6. Концепция scsi
- •7. Фазы работы шины scsi
- •8. Команды scsi
- •9. Хост - адаптеры
- •10. Кабели scsi
- •12. Программирование аппаратных средств периферийных устройств
- •11. Програмная поддержка scsi устройств
- •13. Scsi против ide
6. Концепция scsi
Шина SCSI – это шина ввода-вывода, а не системная шина и не интерфейс приборного уровня. Интерфейсные средства типа шины SCSI особенно эффективны для машин, которые требуют подключения нескольких дисковых накопителей или других ПУ. Интерфейс SCSI повышает гибкость и вычислительную мощность системы, поскольку он позволяет подключить к одной шине несколько различных ПУ, которые могут непосредственно взаимодействовать друг с другом. Скорость передачи данных по шине безусловно не будет ограничивающим фактором, поскольку этот показатель для шины SCSI в настоящее время достигает 40Мбайт/с.
Шина SCSI предусматривает возможность подключения до восьми устройств. На первый взгляд это может показаться довольно серьезным ограничением, однако, если учесть, что каждое устройство может представлять восемь логических блоков, а каждый логический блок – 256 логических подблоков, то очевидно, что возможности расширения здесь более чем предостаточные.
Каждому из устройств шины SCSI должен быть назначен индивидуальный идентификатор ID, значение которого обычно задается при помощи коммутационных перемычек непосредственно в устройстве. Идентификатор ID выполняет две функции: он идентифицирует устройство на шине и определяет его приоритет в арбитраже за доступ к шине (чем больше номер устройства, тем выше его приоритет).
Каждое из восьми возможных устройств шины может играть роль инициатора(initiator), исполнителя(target), либо совмещать обе эти роли. Инициатор – это часть хост(главного) адаптера SCSI, который служит для подключения главного компьютера к шине SCSI. В типичной системе к одному инициатору подключается один или несколько исполнителей. Система повышенной сложности может содержать более одного хост- адаптера SCSI(много инициаторов). В таких системах могут устанавливаться взаимодействие не только любого процессора с любым ПУ, но также хост - адаптеров друг с другом, поскольку хост – адаптер сам является устройством шины SCSI и может играть роль как инициатора , так и исполнителя. Два ПУ(оба исполнителя), однако, не могут взаимодействовать друг с другом , поскольку только пара инициатор – исполнитель может вести обмен даннами по шине в каждый конкретный момент времени.
Хост – адаптер содержит аппаратные и программные средства для сопряжения с ЦП.
Интерфейс контроллера SCSI и системной шины может быть как совсем простым (строится по принципу программного опроса канала В/В), так и более сложным (предусматривающим высокоскоростные обмены данными в режиме прямого доступа к памяти, ПДП). Такие контроллеры воспринимают высокоуровневые команды и освобождают ЦП от необходимости обработки и контроля сигналов шины SCSI.
Программное обеспечение главного компьютера упрощается, поскольку ему не приходится учитывать физические характеристики конкретного устройства. Интерфейс SCSI предусматривает использование логических, а не физических адресов для всех блоков данных.
7. Фазы работы шины scsi
Протокол шины SCSI предусматривает восемь отдельных фаз:
Bus Free – «Шина свободна»
Arbitration – «Арбитраж»
Selection – «Выборка»
Reselection – «Обратная выборка»
Command – «Команда»
Data – «Данные»
Status – «Состояние »
Message – «Сообщение»
Последние четыре фазы называются фазами передачи информации. Шина SCSI в каждый конкретный момент времени может находится только в одной из этих восьми фаз.
Фаза «Шина свободна» означает, что ни одно устройство в данный момент не работает с шиной SCSI в активном режиме, и шина свободна для обращения. Эта фаза обычно возникает после системного сброса или после сброса шины сигналом RST. Признаком фазы «Шина свободна» является отсутствие сигналов занятости BSY и выборки SEL.
Шина переключается в фазу – «Арбитраж», когда какое – либо SCSI- устройство хочет взять на себя управление шиной, т.е стать инициатором на шине. Это происходит в случаях, когда инициатор хочет выбрать исполнителя или исполнитель хочет произвести перевыборку запрашивавшего его ранее инициатора. В фазу «Арбитраж» шина может переключится только из фазы «Шина свободна». После того, как устройство определяет, что шина свободна, начинается фаза «Арбитраж». Для этого формируется сигнал BSY, на соответствующую линию данных
выдается идентификатор ID SCSI – устройства( ID – бит). При этом каждое
из восьми возможных устройств шины SCSI может выдавать свой ID - бит
только на закрепленную за ним линию данных как признак своего участия
в арбитраже. Устройство с максимальным значением идентификатора ID выигрывает арбитраж и берет на себя управление шиной.
Фаза «Выборка» дает возможность инициатору выбрать исполнителя, чтобы инициировать выполнение им соответствующей функции, например команды чтения READ или записи READ. Согласно протоколу спецификации SCSI-2 фаза «Выборка» всегда наступает после фазы «Арбитраж». В спецификации SCSI-1 предусматривается вариант системы с одним инициатором , где необходимость арбитража отсутствует, и в фазу выборки можно входить сразу же после фазы «Шина свободна». В обоих случаях для выборки исполнителя инициатор выдает его ID-бит на соответствующую линию данных шины SCSI и формирует сигнал выборки SEL.
Необязательная фаза перевыборка возможна, когда исполнитель хочет восстановить связь с тем инициатором, который ранее послал ему команду. Эта фаза в принципе напоминает фазу «Выборка», с тем исключением, что вместе с сигналом выборки SEL переходит в активное состояние линия I/O, что позволяет различать эти две фазы.
Фазы «Команда», «Данные», «Состояние » и «Сообщение» образуют группу фаз передачи информации, поскольку все они используются для передачи данных или управляющей информации по шине данных. Чтобы их различать, используются сигналы C/D – управление, I/O – ввод-вывод и MSG – сообщение, вырабатываемые исполнителями, который тем самым управляет всеми переходами из одной фазы в другую. Для управления передачей данных между исполнителем и инициатором в фазах передачи информации используются сигналы линий REQ/ACK – запрос/подтверждение (в версии SCSI-2 дополнительно применяются линии REQB/ACKB).
Реальный обмен данными может осуществляться синхронным и асинхронным способом. В обоих случаях для выполнения квитирования используются сигнальные линии ACK и REQ. Для исполнителя режим синхронной передачи является необязательным. Инициатор может потребовать, чтобы исполнитель осуществлял синхронную передачу, однако если последний отвергнет этот запрос, то будет использоваться асинхронный режим.
Чтобы передать данные инициатору в асинхронном режиме, исполнитель выдает их на линии данных шины SCSI вместе с сигналом REQ. Данные должны удерживаться на шине до тех пор, пока от инициатора не будет принят сигнал подтверждения ACK. После этого на шину выдаются следующие данные, и процесс повторяется. Если передача данных должна происходить в противоположном направлении, исполнитель выдает сигнал запроса REQ, говорящий о том, что он готов к приему данных . Инициатор выдает данные на линию данных шины SCSI, а за тем формирует сигнал ACK. Инициатор продолжает удерживать данные на шине до тех пор, пока линия REQ, не переключится в пассивное состояние. Затем исполнитель сбрасывает сигнал REQ, инициатор выдает новые данные, и процесс повторяется.
Если в фазе «Сообщения» устройства согласились использовать синхронный режим обмена, то исполнитель не будет ждать поступления сигнала подтверждения ACK перед выдачей сигнала REQ для приема следующих данных. Он может генерировать один или более импульсов REQ без ожидания соответствующих импульсов ACK(до заранее оговоренного максимума, называемого смещением REQ/ACK).
При выдаче всех запланированных импульсов REQ исполнитель сравнивает число запросов REQ и подтверждений ACK, чтобы удостовериться в том, что каждая группа данных принята успешно. При подготовке синхронного режима обмена устройства задают смещение REQ/ACK и период передачи. Период передачи определяет интервал времени между окончанием передачи очередного байта и началом передачи следующего.
