SCSI-Интерфейс

Содержание



Общие сведения об интерфейсах…………………………………………2

Классификация интерфейсов……………………………………………..2

История создания интерфейса SCSI……………………………….……..3

Концепция SCSI……………………………………………………………4

Фазы работы шины SCSI…………………………………………………..5

Дополнительные средства спецификации SCSI-2……………………….7

Хост-адаптеры………………………………………………………………9

Характеристики современных хост-адаптеров………………………….10

Програмная поддержка SCSI устройств…………………………….…...11

Програмирование аппаратных средств периферийных устройств…….11 

Реализация протокола SCSI-шины……………………………………….12



















































































			Общие сведения об интерфейсах .



 	 Создание современных средств вычислительной техники связано с задачей обьединения в один комплекс различных блоков ВМ,устройств хранения и отображения информации	,аппаратупы данных и непсредственно ЭВМ. Эта задача возлагается на унифицированные системы сопряжения – интерфейсы. Под интерфейсом погимают совкупность схемо-технических средств,обеспечивающих непосредственное взаимодействие сосотавных элементов вычислительной сиситемы.Интерфейс обеспечивает  взаимосвязьМежду составными функциональными блоками или устройствами системы.

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

  

                    Классификация интерфейсов:



Машинные интерфейсы предназначены для организации связей между составными элементами ЭВМ, т.е. непосредственно для их построения и связи с внешней средой.

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

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

Интерфейсы распределенных ВС предназначены для интеграции средств обработки информации, размещенные на значительном расстоянии.

 

     Развитие интерфейсов осуществляется в направлении повышении уровня унификации интерфейсного оборудования и стандартизации условий совместимости, модернизации существующих интерфейсов, создания принципиально новых интерфейсов.











          История создания интерфейса SCSI







       Интерфейс SCSI уходит своими корнями в начало 1960-х годов. В то время в широко распространенных больших машинах корпорации IBM применялась байтовая параллельная шина В/В, называемая блок мультиплексным каналом и ориентированная на блочные передачи. Осознавая необходимость стандартизации интерфейсов, комитет X3T9.3 Американского национального института стандартов (ANSI) в начале 1980-х годов приступил к разработке подобного стандарта. Несмотря на широкую популярность блок-мультиплексного канала корпорации IBM, комитет решил не принимать его в неизменном виде  - отчасти, быть может, потому, что «это не наше», а отчасти под давлением конкурентов компании IBM. Стандарт, который разрабатывал ANSI, получил название интеллектуального периферийного интерфейса(IPI). Шина IPI представляла собой по существу функциональный эквивалент блок-мультиплексного канала с добавлением некоторых новых свойств. В качесиве альтернативы блок-мультиплексному каналу корпорации IBM другие группы специалистов в то время разрабатывали собственные параллельные шины В/В.

     Так фирма Shugart Associates разработала Системный интерфейс SASI (Shugart Associates System Interface). Эта фирма была одним из ведущих производителей дисковых накопителей, под влиянием чего ряд других изготовителей также применил этот интерфейс в своих изделиях. В результате интерфейс SASI получил относительно широкое распространение. Компания Shugart была исключительно заиртересована в том, чтобы комитет принял ее интерфейсную шину, а не шину IPI. Когда выяснилось, что интерфейс SASI может проиграть в этой борьбе, компания присвоила ему новое нименование SCSI и представила в комитет X3T9.2, который заинтересовался проблемами интерфейсов нижнего уровня, где конкуренция была менее жесткой.

     В 1984 г. комитет ANSI закончил разработку спецификацииSCSI-1, и она была опубликована в своем окончаиельном виде в 1986 г. Последующие дополнентя и усовершенствования привели к созданию спецификации SCSI-2.  

  	

  



                               Концепция SCSI.



        Шина SCSI – это шина ввода-вывода, а не системная шина и не интерфейс приборного уровня. Интерфейсные средства типа шины SCSI  особенно эффективны для машин, которые требуют подключения нескольких дисковых накопителей или других ПУ. Интерфейс SCSI повышает гибкость и вычислительную мощность системы, поскольку он позволяет подключить к одной шине несколько различных ПУ, которые могут непосредственно взаимодействовать друг с другом. Скорость передачи данных по шине безусловно не будет ограничивающим фактором, поскольку этот показатель для шины SCSI в настоящее время достигает 40Мбайт/с.

        Шина SCSI предусматривает возможность подключения до восьми устройств. На первый взгляд это может показаться довольно серьезным ограничением,однако, если учесть, что каждое устройство может представлять 

 восемь  логических блоков, а каждый логический блок – 256 логических подблоков, то очевидно, что возможности расширения здесь более чем предостаточные.

         Каждому из устройств шины SCSI должен бытьб назначен индивидуальный идентификатор ID, значение которого обычно задается при помощи коммутационных перемычек непосредственно в устройстве. Идентификатор ID выполняет две функции : он идентифицирует устройство на шине и определяет его приоритет в арбитраже за доступ к шине (чем больше номер устройства, тем выше его приоритет).

       Каждое из восьми возиожных устройств шины может играть роль инициатора(initiator), исполнителя(target), либо совмещать обе эти роли. Инициатор – это часть хост(главного) адаптера SCSI, который служит для подключения главного компьютера к шине SCSI. В типичной системе к одному инициатору подключается один или несколько исполнителей. Система повышенной сложности может содержать более одного хост- адаптера SCSI(много инициаторов). В таких системах могут устанавливаться взаимодействие не только любого процессора с любым ПУ, но также хост - адаптеров друг с другом, поскольку хост – адаптер сам является устройством шины SCSI и может играть роль как инициатора , так и исполнителя. Два ПУ(оба исполнителя), однако, не могут взаимодействовать друг с другом , поскольку только пара инициатор – исполнитель может вести обмен даннами по шине в каждый конкретный момент времени.

          Хост – адаптер содержит аппаратные и програмные средства для сопряжения с ЦП.

  Интерфейс контроллера SCSI и системной шины может быть как совсем простым (строится по принципу програмного опроса канала В/В), так и более сложным (предусматривающим высокоскоростные обмены даннами в режиме прямого доступа к памяти, ПДП). Такие контроллеры воспринимают высокоуровневые комманды и освобождают ЦП от необходимости обработки и контроля сигналов шины SCSI.

   Програмное обеспечение главного компьютера упрощается , поскольку ему не приходится учитывать физические характеристики конкретного устройства. Интерфейс SCSI предусматривает использование логических , а не физических адресов для всех блоков данных.

          

                         Фазы работы шины 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  и период передачи. Период передачи определяет интервал времени  между окончанием передачи очередного байта и началом передачи следующего. 

     



                     Дополнительные средства спецификации SCSI-2



     Хотя  исходная спецификация SCSI,  опублткованная в 1986г.(SCSI-1), представляла большой шаг вперед, у нее были инекоторые серьезные недостатки.  В частности не бало четкой регламентации всех аспектов, гарантирующих совместимость между устройствами  были ссылки на целый ряд различных комманд, однако в действительности она требовала  обязательной реализации только одной комманды  REQUEST SENSE («уточнить состояние»). В результате различные устройства поддерживали различные комманды , что существенно ограничивало число контроллеров, которые могли бы работать в любой SCSI- системе. Специалисты осознали это ограничение уже на завершающем этапе выработки спецификации  SCSI-1, поэтому была создана группа по разработке единого набора комманд (CCS), которая должна была решить данную проблему, предложив расширенный набор комманд SCSI.  Набор комманд был расширен с тем, чтобы устройство могло посылать и принимать более детальную информацию.  Подмножество всех возможных комманд  было  

выбрано таким  образом, чтобы его могли без особого труда реализовать изготовители ПУ.  Ограничение числа комманд,  на которые должно реагировать  SCSI -устройство,  увеличивает вероятность того, что все  эти  комманды будут реализованы.  Хотя документ CCS  включен в спецификацию SCSI-1, он был опубликован,  и его принципы были  рекомендованы как стандарт де-факто, которому должны следовать  

изготовители устройств с интерфейсом SCSI. Благодаря этому уменшился 

уровень несовместимости  SCSI-устройств, не позволяющий использовать готовые ПУ в системе без дополнительных доработок.

     Принципы SCSI были включены в спецификацию SCSI-2,  где  команды    

делятся на три  категории : обязательные, факультативные и определяемые изготовителем. SCSI -устройства должны поддерживать как минимум,  все обязательные комманды устройств своего типа.  В спецификации  SCSI -2    были описаны комманды для ПУ непосредственного доступа(дисковых накопителей), последовательного доступа(НМЛ), принтеров, процессоров, устройств памяти  с однократной записью(оптических дисковых накопителей), ПЗУ на базе компакт-дисков, сканеров, устройств оптической памяти, устройств савтоматической сменой носителя  икоммуникационных устройств.

     В спецификацию SCSI -2   была включена также еще одна концепция, предложенная в документе CCS, а именно -  концепция   обратной выборки,  или перевыборки. Согласно протоколу SCSI –1, если инициатор посылает комманду исполнителю, он будет занимать шину до тех пор, пока  исполнитель не завершит выполнение этой комманды. Когда исполнитель выполнит комманду, он через механизм арбитража потребует  доступа к шине с целью перевыборки инициатора,  который  выдал  ему эту комманду. Операция завершается передачей исполнителем соответствующих данных и статуса. Таким образом инициатору не приходится ждать, пока исполнитель закончит текущую комманду, и он может в принципе посылать комманды другим исполнителям с целью их параллельного выполнения.

      Это может быть полезно для системы, содержащей более одного исполнителя ,  однако чаще бывает необходимо послать следующую комманду тому же самому исполнителю. Спецификация SCSI-1 предусматривает передачу только одной комманды от инициатора логическому устройству SCSI-контроллера исполнителя . При работе с дисковыми накопителями такой режим может быть весьма неэффективным. Предположим , например , что у ЦП имеются четыре отдельных запроса от операцирнной системы на чтение секторов диска, размещающихся на дорожках 1,50,2 и 52. Поскольку ЦП работает

c устройствами шины SCSI в терминах логических блоков данных , он не имеет представления о том , где( или каким образом) эти данные хранятся в устройстве), и , следовательно, не в состоянии оптимизировать последовательность комманд перед их выдачей в SCSI- устройство. Такая

возможность, называемая формированием очереди или цепочки комманд, предусмотрена в спецификации SCSI-2( в очередь могут быть установлены до 256 команд).        	              

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

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

IDENTIFY, посылается двухбайтовое сообщение тега очереди QUEUE TAG, которое содержит нужную команду очереди и идентификатор инициатора. Когда контроллер исполнителя производит производит перевыборку инициатора , это сообщение с тегом посылается после идентификатора устройства. Команды,посылаемые без тега очереди, выполняются  в порядке поступления , однако при этом ожидать выполнения  может только одна команда , что регламентируется стандартным протоколом SCSI-1.

       В спецификации SCSI-2 предусмотрено также существенное увеличение скорости передачи данных , максимальное значение которой чогласно спецификпции SCSI-1 составляло 5Мбайт/с. Проблема повышения скорости была разрешена двумя различными способами . Наиболее  простым способом является увеличение числа разрядов шинны данных. В настоящее время широкое распространение получили 16- и 32- разрядные процессоры, на фоне которых 8- разрядная шина SCSI -1 выглядит просто примитивно. В связи с этим в с спецификацию SCSI -2 был введен «широкий » многоразрядный вариант шины(WIDE), предусматривающий  введение дополнительно 24 линий данных , т.е увеличения их общего числа до 32. Для повышения пропускной способности шины также было предложено увеличить тактовую частоту обмена в два раза . Это составляет суть «быстрого» (высокоскоростного) варианта (FAST) шины SCSI -2.

       Сочетание быстрого и широкого вариантов реализации шины SCSI дает возможность передавать данные с максимальной пропускной способностью 40 Мбайт/с. Это может показаться весьма впечатляющим, однако для большинства обычных приложений шины SCSI столь высокая пропускная способность просто не требуется . В конце  концов, такая скорость нужна только для дискового накопителя! Устройства с интерфейсом SCSI обычно содержат буферы памяти, так что 

эффективность использования шины SCSI определяется обьемом данных, 

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

Увеличивать стоимость и скорость шины SCSI, реализуя  «быстрый» 

 или «широкий»  ее варианты, если главная система не может воспользоваться увеличенной пропускной способностью.    







                                    Хост – адаптеры 



     Хост-адаптер реализует функции  сопряжения шины SCSI с системными ресурсами, прежде всего с системной шиной и операционной системой компьютера. Он, как правило выполняет роль инициатора на  шине SCSI , хотя в сложных( например, в мультипроцессорных и мультимашинных) SCSI-системах может динамически изменяться (инициатор/исполнитель).

     К числу основных функций хост-адаптера, определяющих его структуру и характеристики, относятся:

реализация протокола шины SCSI, а также физических и электрических спецификаций стандарта;

сопряжение с аппаратными ипрограмными системными ресурсами

  

      Реализация протокола шины SCSI, как правило, осуществляется специализированной БИС контроллера шины SCSI. Обычно эта схема обеспечивает и реализацию электрических спецификаций стандарта.

      Сопряжение с аппаратными системными средствами предполагает прежде всего согласование разрядности и пропускной способности шины SCSI и системной шины хост-системы, а также реализацию развитых средств доступа к системной памяти. Структура узла согласования разрядности шин зависит от назначения хост-адаптера и используемой версии стандарта SCSI(8 разрядов для SCSI-1;16 или 32 разряда для 

SCSI-2). Основным средством согласования пропускной способности системной и SCSI-шин является буфферная память, реализуемая обычно в виде буффера FIFO, либо двухпортового ОЗУ. Наиболее распротраненный алгоритм доступа к системной памяти – прямой доступ, реализуемый чаще всего с помощью контроллера ПДП хост-системы.

      Сопряжение с програмными системами предполагает наличие SCSI- драйвера для конкретной ОС.

                         

                          

                        Характеристики  современных хост-адаптеров.



       Среди используемых БИС SCSI-контроллеров для шины AT доминирует модели фирмы NCR. Следом идут известные WD33C93 фирмы  Western Digital и ALC 6250/60 фирмы Adaptec(США). Хост-адаптером чаще всего  поддерживают как синхронный, так и асинхронный

режимы  обмена  по шине  SCSI. Скорость обмена существенно зависит от типа используемого контроллера. В простых хост-адаптерах она колеблется от 0,25 до 1 Мбайт/с в ассинхронном режиме и сихронном режимах соответственно.

        Размер буфера данных также варьируется в достаточно широких пределах: от использования внутренних буферов БИC SCSI-контроллера небольшой емкости, до ОЗУ значительной емкости (1Мбайт). Наличие большого буфера существенно увеличивает стоимость хост-адаптера.  





            	Програмная поддержка SCSI устройств.



 Задача програмирования SCSI систем и устройств является многоуровневой и  может быть разделена следующие относительно независимые подзадачи:

- Програмирование аппаратных средств периферийных устройств. 

- Реализация протоколов SCSI шины.

- Реализация SCSI комманд.

-  Доступ к SCSI устройствам ОС и прикладных задач.

   

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



         I. Програмирование аппаратных средств периферийных устройств.



    Конечным звеном средств програмной поддержки ПУ в силу специфичности физических принципов их реализации неизбежно являются узкоспециализированные программы низкого уровня.Из-за того, что программирование на таком уровне сложно даже для общесистемных, не говоря уже о прикладных програмистах, имеется тенденция к повышению уровня средств программирования ПУ за счет маскирования специфики ПУ на уровне так называемого firmware( внутреннего  

програмного обеспечения –ВПО). Примером может служитть маскирование функций непосредственного управления дисковыми накопителями на уровне внутренних комманд дисковых контроллеров WD2010,8272 и др.

    Однако на уровень регистров контроллеров выходят только специализированные программы. В настоящее время ПУ как правило, програмируются на уровне функций системной BIOS, а прграммы более высокого уровня вообще используют стандартные функции ОС.

     Использование интерфейса SCSI еще более повышает уровень программирования ПУ за счет использования определенного стандартом набора комманд общего вида. Для прикладного програмиста использование стандартных функций BIOS становится при этом практически невозможным.      

    Однако как элементуправления устройствомони,естественно, 

сохраняются на уровне ВПО контроллера ПУ и реализуется либо локальнам микропроцессором (МП) контроллера, либо микроконтроллером, встроенным в базовую БИС контроллера ПУ.

      В целях сохранения наработанных програмных средств управления электроникой ПУ, в настоящее время широко используется эмуляция стандартных интерфейсов ПУ, предполагающая преобразование логических адресов SCSI в физические адреса конкретного устройства. Примером может служить контроллер SmartConnex/ISA фирмы Distributed Proccessing Е Technology. Он использует интерфейс известного дискового контроллера WD1003 фирмы Western Digital, в результате чего компьютер “видит” контроллер как обычное устройство, совместимое с интерфейсом ST-506.

    Реально эмуляцию интерфейса выполняет невидимый для пользователя драйвер , запоминаемый при форматировании в последнем блоке НМД. Соответствующие драйверы имеются для наиболее распространенных ОС 

(MS-DOS,OS/2,Xenix/Unix,Novell NetWare). Установка контроллера SmartConnex

в систему осуществляется с помощью специальной утилить, поставляемой фирмой.

        В известных контроллерах WD 33C92/93 фирмы Western Digital имеется даже встроенная комманда преобразования форматов логических адресов в физические.

        Таким образом, для реализации различных ПУ в стандарте SCSI могут 

использоваться фрагменты готовых программ, поддерживающие такие стандартные функции управления ПУ в MS-DOS, как INT 13, INT 11 и др.

Следует отметить, что такой подход, видимо не в полной мере соответствует идеологии SCSI, и в перспективе будут использоваться специальные программы непосредственного управления SCSI устройством на базе SCSI-комманд.

	

                     II. Реализация протокола SCSI-шины       	



	При использовании интерфейса SCSI на ВПО хост-адаптера или контролера ПУ возлагается также функция  поддержки SCSI – операций.

При этом степень необходимой прграмной поддержки зависит отуровня интеллектуальности используемой БИС контроллера SCSI-шины. По некоторым оценкам, при использовании БИС SCSI-контроллеров  первого, второго и третьего поколений обьем необходимого для реализации SCSI-протокола ВПО составляет около 400,2500 и несколько сотен комманд соответственно.

  Контроллеры разных поколений отличаются числом и сложностью возлагаемых на них функций принятия решения по ситуациям в SCSI-

системе.

     Например, контроллер первого поколения NCR 5380работает на уровне обработки и формировании логических сигналов SCSI-шины. Функции анализа ситуаций и принятия решений полностью возлагаются на ВПО. Такой режим характеризуется большим обьемом управляющего кода, высокой интенсивностью прерываний на уровне ВПО и, как следствие, высокими накладными расходами на время выполнения операций.

     Подобная схема используется в SCSI-подсистемах ПК Macintosh фирмы Apple. Для программирования SCSI-подсистем фирмой разработано специальное програмное  средство – Mac’s SCSI Manager,   включающее    

14 программ, обслуживающих различные фазы протокола SCSI шины.    Среди них:  чтение/запись  данных в различных режимах, участие  в арбитраже, обработка комманд,статуса, сообщений, и др.   

Все перечисленные функции реализуются путем непосредственного программирования аппаратных устройств SCSI-контроллера. Поскольку во всех компьютерах семейства Mac используются хост-адаптеры SCSI-шины на базе контроллера NCR 5380, ВПО для всех моделей строится по одному принципу.Однако имеются нюансы, существенные для программирования на нижнем уровне.Например, в разных моделях ПК контроллер 5380 имеет разные адреса. Кроме того, по-разному используются   некоторые режимы работы контроллера 5380. В частности,имеется отличие в реализации 

операции чтения/зыписи данных в синхронном режиме, что обусловлено различной степенью аппаратной поддержки процедуры «рукопожатия» в различных моделях семейства Мас. Если в модели Мас Plus синхронный режим требует полного програмного контроля линий чтения/записи и данных,то а машинах Мас SE  и Мас II реализована порлная аппаратная  поддержка данного режима. Особенностью мождели Мас IIfx является использование специальной заказной БИС – SCSI-контроллера ПДП, в состав которой входит контроллер 5830.

      Похожие функции выполняет и програмный интерфейс ASPI (Advanced SCSI programming interface), предлагаемый фирмой  Adaptec для програмирования SCSI- устройств в среде MS-DOS. Интерфейс ASPI  также обеспечивает выполнение нижнего уровня протокола SCSI-штны  и включает шесть команд, позволяющих выполнить следующие функции:

определение числа хост –адаптеров в составе системы;

определение типа периферийного SCSI- устройства;

определение операции ввода/вывода на SCSI-шине;

преккращение выполнения SCSI-операции;

сброс устройств на  SCSI-операции;

установка параметров хост-адаптера.

      

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

набор команд , которые, во-первых упрощают процесс программирования, а,  во –вторых , маскируют типичные для контроллеров первогопоколения прерывания при смене фаз на SCSI шине.

       К третьему поколению однокристальных SCSI-когтроллеров можно отнести БИС NCR 53С700 NCR53C710 фирмы NCR, в которых внедрена новая програмная концепция фирмы NCR – так называемый Script- процессор. Оба контроллера содержат мощный встроенный процессор производительностью 2 млн. операций в секунду, обеспечивающий автономное управление операциями на SCSI-шине, а также управление ПДП.

     Script- алгоритм включает программы управления такими операциями, как Выбор/Перевыбор; Отсоединение/Повторное соединение; Изменение фазы SCSI-шины; Передача информации и др.

      Реализация развитых управляющих алгоритмов, естественно, требует большого обьема памяти. Если этот алгоритм выполняется средствами хост-системы(по типу BIOS), он становится зависимым от типа системной 

шины и, следовательно теряет свою инвариантность. Если же он 

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

     Набор Script-команд включает три основных типа операций:

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

 Командды ввода-вывода выполняющие различные операции на SCSI шине и напрямую адресующие узлы SCSI-ядра контроллера.

 Команды управления позволяющее сравнить содержимое  внутренних регистров с сигналами на SCSI-шине либо с первым байтом передаваемой последовательности. По результатам сравнения 

управление может быть передано по другому адресу. Таким образом, все типы переходов (jump,call,return) в Script программе могут быть основаны на непосредственном сравнении фаз SCSI-шины, что удобно для принятия решений в реальном времени. 

          Мощные Script-команды существенно сокращают накладные расходы SCSI шины. Например, при использовании команд блочной 

пересылки при работе с рассредоточенными блоками данных за одну

 команду может быть передана страница данных  для программы пользователя.



    

      

     





8