Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы на вопросы.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.81 Mб
Скачать

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

 

Само по себе аппаратное обеспечение не может выполнять операции по обработке информации. Для согласованной работы устройств компьютера нужны программы. Без программ любая аппаратура – просто груда железа.

 

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

 

Программное обеспечение принято разделять на три класса: системное, прикладное и инструментальные средства.

Системные программы обеспечивают функционирование компьютера и создают “среду” для работы программ. Главную часть системного ПО составляет операционная система. Также к системным программам относятся сервисные программы (утилиты, драйверы, программы-оболочки, архиваторы, др.)

Прикладные программы предназначены для выполнения конкретных задач пользователя в различных областях деятельности, а также с их помощью проводится досуг. Наибольшей популярностью пользуются следующие программы: текстовые процессоры и издательские системы, табличные процессоры, системы управления базами данных (СУБД), графические редакторы, интегрированные системы, системы автоматизированного проектирования, экспертные системы, системы распознавания образов, бухгалтерские системы.

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

Организация системы прерываний

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

Каждое событие, требующее прерывания, сопровождается сигналом, оповещающим ЭВМ. Назовем эти сигналы запросами прерывания. Программу, затребованную запросом прерывания назовем прерывающей программой, противопоставляя ее прерываемой программе, выполнявшейся машиной до появления запроса.

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

Рис.1.5 Прерывание программы

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

Приоритеты прерываний

До окончания обработки прерывания обычно устанавливается запрет на обработку этого типа прерывания, чтобы процессор не входил в цикл обработки одного прерывания. Приоритизация означает, что все источники прерываний делятся на классы и каждому классу назначается свой уровень приоритета запроса на прерывание. Приоритеты могут обслуживаться как относительные и абсолютные[источник не указан 1902 дня].

  • Относительное обслуживание прерываний означает, что если во время обработки прерывания поступает более приоритетное прерывание, то это прерывание будет обработано только после завершения текущей процедуры обработки прерывания.

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

Контролер прерываний

Контроллер прерываний (англ. Programmable Interrupt Controller, PIC) — микросхема или встроенный блок процессора, отвечающий за возможность последовательной обработки запросов на прерывание от разных устройств.

Как правило представляет собой электронное устройство, иногда выполненное как часть самого процессора или же сложных микросхем его обрамления, входы которого присоединены электрически к соответствующим выходам различных устройств. Номер входа контроллера прерываний обозначается «IRQ». Следует отличать этот номер от приоритета прерывания, а также от номера входа в таблицу векторов прерываний (INT). Так, например, в IBM PC в реальном режиме работы (в этом режиме работает MS-DOS) процессора прерывание от стандартной клавиатуры использует IRQ 1 и INT 9.

В первоначальной платформе IBM PC используется очень простая схема прерываний. Контроллер прерываний представляет собой простой счётчик, который либо последовательно перебирает сигналы разных устройств, либо сбрасывается на начало при нахождении нового прерывания. В первом случае устройства имеют равныйприоритет, во втором устройства с меньшим (или большим при обратном счёте) порядковым номером обладают большим приоритетом[1].

Контроллеры и шины

онтроллер — это электронное устройство, предназначенное для подключения к магистрали компьютера разных по принципу действия, интерфейсу и конструктивному исполнению периферийных устройств К термину "контроллер" очень близок по смыслу другой термин —"адаптер". Назначение обоих одинаково, но контроллер несколько сложнее: "под­разумевается его некоторая активность — способ­ность к самостоятельным действиям после получе­ния команд от обслуживающей его программы. Сложный контроллер может иметь в своем составе и собственный процессор"". На уровне рядового пользователя данные понятия практически нераз­личимы и могут считаться синонимами.  И еще одним похожим устройством является сопроцессор. Сопроцессоры "помогают" основному{центральному) процессору, который исполняет программу, реализовыпать сложные специфи­ческие функции. Примером может служить графический сопроцессор, выполняющийгеометрические построения и обработку графических изображе­ний, — его вполне можно считать графическим контроллером. Несколько особняком стоит мате­матический сопроцессор, который выполняет свои функции "в одиночку", не управляя никакими внешними  устройствами. 

Шины  расширения  конструктивно  оформляются  в  виде  шелевых  разъемов (слотов) для  установки   плат  адаптеров.  Количество  и  тип  слотов  определяют  возможности  функционального  расширения  системы.    Как  уже  отмечалось,  совокупность  линий  по  которым  обмениваются  информацией  компоненты  и  устройства РС называются  шиной.   Шина  предназначена  для  обмена  информацией  между  двумя  и  более  устройствами.  Шина,  связывающая  только  два  устройства,  называется  портом                                                                                                               Линии  шины  делятся  на  три  группы  в  зависимости от  типа  передаваемых  данных:

Линии  данных (шина  данных)

Линии  адреса (шина  адреса)

Линии  управления (шина  управления)

 

Шины  различаются  по  своему  функциональному  назначению.

Системная  шина (или  шина  CPU) используется  микросхемами Chipset для  пересылки  информации  к и  от CPU.

Шина  кэш-памяти  предназначена  для  обмена  информации  между  CPU  и Кэш-памятью.

Шина  памяти  используется  для  обмена  информацией  между  оперативной  памятью  и  CPU

Шины  ввода\вывода  подразделяются  на  стандартные  и  локальные

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

Шины процессор-память

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

Шина ввода/вывода

 Локальная шина ввода/вывода — это скоростная шина, предназначенная для обмена информацией между быстродействующими периферийными устройствами (видеоадаптерами, сетевыми картами, картами сканера и др.) и системной шиной под управлением CPU. В настоящее время в качестве локальной шины используется шина PCI. Для ускорения ввода/вывода видеоданных и повышения производительности ПК при обработке трехмерных изображений корпорацией Intel была разработана шина AGP (Accelerated Graphics Port).

   Стандартная шина ввода/вывода используется для подключения к перечисленным выше шинам более медленных устройств (например, мыши, клавиатуры, модемов, старых звуковых карт). До недавнего времени в качестве этой шины использовалась шина стандарта ISA. В настоящее время — шина USB.

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

  • линии для обмена данными (шина данных);

  • линии для адресации данных (шина адреса);

  • линии управления данными (шина управления);

  • контроллер шины.

Системная шина

Системная шина (FSB) – канал, по которому процессор соединен с другими устройствами компьютера. К шине напрямую подключен только процессор, другие устройства компьютера подключены к ней через разнообразные контроллеры. Центральный процессор через Системную шину (FSB) подключается к системному контроллеру (Северный Мост или North Bridge). Северный мост оснащен контроллером ОЗУ (или же этот контроллер встроен в центральный процессор), а также контроллеры шин для подключения периферийных устройств. Иерархия шин

Устройства ВМ обладают различным быстродействием: наиболее высокоскоростными из них являются процессор и память, да и ПУ также функционируют с разной скоростью. Для наиболее эффективного взаимодействия устройств в современных ВМ используется иерархия шин, которая, как отмечается в /18/, выражается в том, что более медленная шина соединена с более быстрой шиной. Например, на рисунке 9.2 приведена структура взаимосвязей с двумя шинами.

Шина «процессор-память» обеспечивает непосредственную связь между процессором и памятью ВМ. Интенсивный трафик между процессором и памятью требует, чтобы пропускная способность данной шины была наибольшей. Для этого шина «процессор-память» всегда проектируется с учётом особенностей организации системы памяти, а длина шины делается по возможности минимальной. В настоящее время данная шина может работать на частотах 100, 133, 150 МГц и выше.

Рисунок 9.2 – Структура взаимосвязей с двумя шинами

Шина ввода-вывода для соединения процессора и памяти с УВВ. Такие шины работают на низких (8 МГц, 10 МГц) или средних (33 МГц, 66 МГц) скоростях, содержат меньше линий по сравнению с шиной «процессор-память», но длина линий может быть весьма большой. В связи с большим разнообразием УВВ, шины ввода-вывода унифицируются и стандартизируются. Типичными примерами таких шин в современных универсальных ВМ, в т.ч., персональных компьютерах, могут служить шины ISA, PCI, AGP.

Шины ISA (Industry Standard Architecture – архитектура промышленного стандарта) и EISA (Extended ISA – расширенная архитектура промышленного стандарта) работают на частотах 8,3 МГц и 10 МГц, соответственно, и являются на данный момент самыми медленными. Они идеально подходят для соединения ВМ с медленными ПУ (мышью, модемом, низкоскоростными сетевыми адаптерами и т.п.). Шина PCI (Peripheral Component Interconnect - взаимодействие периферийных компонентов) служит для соединения процессора и памяти с высокоскоростными ПУ (например, контроллерами дисков) и работает на частоте 33 МГц. Для передачи большого объёма видеоинформации используется специальная шина AGP (Accelerated Graphic Port – ускоренный графический порт), которая стандартно работает на частоте 66 МГц, но может работать на частоте 133 МГц. Через AGP подключается видеокарта.

Физическая реализация шин

Физическая реализация шин

Кратко остановимся на различных аспектах физической реализации шин в вычис­лительных машинах и системах.

Механические аспекты

Основная шина (рис. 4.8), объединяющая устройства вычислительной машины, обычно размещается на так называемой объединительной илиматеринской плате. Шину образуют тонкие параллельные медные полоски, поперек которых через небольшие интервалы установлены разъемы для подсоединения устройств ВМ. Подключаемые к шине устройства обычно также выполняются в виде печатных плат, часто называемых дочерними платами аламодулями. Дочерние платы встав­ляются в разъемы на материнской плате. В дополнение к тонким сигнальным ли­ниям на материнской плате имеются также и более широкие проводящие линии, по которым к дочерним платам подводится питающее напряжение. Несколько кон­тактов разъема обычно подключаются к общей точке — «земле». «Земля» на мате-

6 Зак.470

162 Глава4. Организация шин

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

Рис. 4.8. Организация объединительной шины

Контактные пружины в разъемах обеспечивают независимое подключение сиг­нальных линий, расположенных по обеим сторонам вставляемой в разъем дочер­ней платы. При создании соединительных разъемов прилагаются значительные усилия с тем, чтобы гарантировать надежный контакт после многократного извле­чения платы из разъема, а также при длительной (многолетней) эксплуатации разъема в загрязненной или коррозийной среде.

«Механические» спецификации шины обычно включают такие детали, как раз­меры плат, размеры и размещение направляющих для установки платы, разрешен­ное место для установки кабельного разъема, максимальная высота элементов на плате и т. д.

Электрические аспекты

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

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

Выделенные и мультиплексируемые линии

В некоторых ВМ линии адреса и данных объединены в единую мультиплексируемую шину адреса/данных. Такая шина функционирует в режиме разделения времени, по­скольку цикл шины разбит на временной интервал для передачи адреса и временной интервал для передачи данных. Структура такой шины показана на рис. 4.10.

Мультиплексирование адресов и данных предполагает наличие мультиплексора на одном конце тракта пересылки информации и демультиплексора на его дру-

Арбитраж шин 1 7 1

гом конце. Мультиплексоры и демультиплексоры играют роль коммутирующих устройств.

Мультиплексирование позволяет сократить общее число линий, но требует ус­ложнения логики связи с шиной. Кроме того, оно ведет к потенциальному сниже­нию производительности, поскольку исключает возможность параллельной пере­дачи адресов и данных, что можно было бы использовать в транзакциях записи, одновременно выставляя на ША адрес, а на ТТТД — записываемое слово.

Примером применения мультиплексируемой шины адреса/данных может слу­жить шина Futurebus+.

Арбитраж шин

Арбитраж шины

До этого момента мы неявно предполагали, что существует только одно задающее устройство шины — центральный процессор. В действительности микросхемы ввода-вывода могут становиться задающими устройствами при считывании информации из памяти и записи информации в память. Кроме того, они могут вызывать прерывания. Сопроцессоры также могут становиться задающими устройствами шины. Возникает вопрос: «Что происходит, когда задающим устройством шины становятся два или более устройства одновременно?» Чтобы предотвратить хаос, который может при этом возникнуть, нужен специальный механизм, называемый арбитражем шины.

Арбитраж может быть централизованным или децентрализованным. Рассмотрим сначала централизованный арбитраж. Простой пример централизованного арбитража показан на рис. 3.37, а. В данном примере один арбитр шины определяет, чья очередь следующая. Часто механизм арбитража встраивается в микросхему процессора, но иногда используется отдельная микросхема. Шина содержит одну линию запроса (монтажное ИЛИ), которая может запускаться одним или несколькими устройствами в любое время. Арбитр не может определить, сколько устройств запрашивают шину. Он может определить только факт наличия или отсутствия запросов.

Рис. 3.37. Одноуровневый централизованный арбитраж шины с последовательным опросом (а); двухуровневый централизованный арбитраж (б)

Когда арбитр обнаруживает запрос шины, он устанавливает линию предоставления шины. Эта линия последовательно связывает все устройства ввода-вы вода (как в елочной гирлянде). Когда физически ближайшее к арбитру устройство получает сигнал предоставления шины, это устройство проверяет, нет ли запроса шины. Если запрос есть, устройство пользуется шиной, но не распространяет сигнал предоставления дальше по линии. Если запроса нет, устройство передает сигнал предоставления шины следующему устройству. Это устройство тоже проверяет, есть ли запрос, и действует соответствующим образом в зависимости от наличия или отсутствия запроса. Передача сигнала предоставления шины продолжается до тех пор, пока какое-нибудь устройство не воспользуется предоставленной шиной. Такая система называется системой последовательного опроса. При этом приоритеты устройств зависят от того, насколько близко они находятся к арбитру. Ближайшее к арбитру устройство обладает наивысшим приоритетом.

Синхронный протокол

В синхронном протоколе все сигналы «привязаны» к импульсам единого центрального генератора тактовых импульсов. Тактовые импульсы распространяются по специальной сигнальной линии и представляют собой регулярную последовательность чередующихся единиц и нулей. Один период такой последовательности называется тактовым периодом шины . Именно он определяет минимальный квант времени на шине (временной слот). Все подключенные к шине устройства могут считывать состояние тактовой линии, и все события на шине отсчитываются от начала тактового периода. Изменение управляющих сигналов на шине обычно совпадает с передним или задним фронтом тактового импульса, иными словами, момент смены состояния на синхронной шине известен заранее и определяется тактовыми импульсами. Стартовый сигнал отмечает присутствие на линиях шины адресной или управ­ляющей информации. Когда ведомое устройство распознает свой адрес и находит затребованные данные, оно помещает эти данные и информацию о состоянии на шину и сигнализирует об их присутствии на шине сигналом подтверждения. Операция записи выглядит сходно. Отличие состоит в том, что данные выдаются ведущим устройством в тактовом периоде, следующем за периодом выставления адреса, и остаются на шине до отправки ведомым устройством сигнала подтверждения и информации состояния. Отметим, что в каждой транзакции присутствуют элементы чтения и записи, и для каждого направления пересылки имеется свой сигнал подтверждения достоверности информации на шине . Сигналы управления и адрес всегда перемещаются от ведущего устройства. Информация состояния всегда поступает от ведомого устройства. Данные могут перемещаться в обоих направлениях. Хотя скорость распространения сигналов в синхронном протоколе явно не фигурирует, она должна учитываться при проектировании шины . Тактовые импульсы обычно распространяются вдоль шины с обычной скоростью прохождения сигналов, и за счет определенных технических усилий можно добиться практически одновременной доставки тактовых импульсов к каждому разъему шины . Выбираться тактовая частота должна таким образом, чтобы сигнал от любой точки на шине мог достичь любой другой точки несколько раньше, чем завершится тактовый период, то есть шина должна допускать расхождение в моментах поступления тактовых импульсов. Поэтому, более короткие шины могут быть спроектированы на более высокую тактовую частоту. Синхронные протоколы требуют меньше сигнальных линий, они проще для реализации и тестирования. Поскольку для реализации синхронного протокола практически не требуется дополнительной логики, эти шины могут быть быстрыми и дешевыми. С другой стороны, они менее гибки, поскольку привязаны к конкретной максимальной тактовой частоте и, следовательно, к конкретному уровню технологии. По этой причине существующие шины часто не в состоянии реализовать потенциал производительности подключаемых к ним новых устройств. Кроме того, из-за проблемы перекоса синхросигналов синхронные шины не могут быть длинными, а ведущий должен работать со скоростью самого медленного из уча­ствующих в пересылке данных ведомых.

Асинхронный протокол

Асинхронные протоколы представляют собой наиболее старый способ связи. Эти протоколы оперируют не с кадрами, а с отдельными символами, которые представлены байтами со старт-стоповыми символами. Асинхронные протоколы ведут свое происхождение от тех времен, когда два человека связывались с помощью телетайпов по каналу «точка-точка». С развитием техники асинхронные протоколы стали применяться для связи телетайпов, разного рода клавиатур и дисплеев с вычислительными машинами. Единицей передаваемых данных был не кадр данных, а отдельный символ. Некоторые символы имели управляющий характер, например символ CR предписывал телетайпу или дисплею выполнить возврат каретки на начало строки. В этих протоколах существуют управляющие последовательности, обычно начинающиеся с символа ESC. Эти последовательности вызывали на управляемом устройстве достаточно сложные действия - например, загрузку нового шрифта на принтер. В асинхронных протоколах применяются стандартные наборы символов, чаще всего ASCII или EBCDIC. Так как первые 32 или 27 кодов в этих наборах являются специальными кодами, которые не отображаются на дисплее или принтере, то они использовались асинхронными протоколами для управления режимом обмена данными. В самих пользовательских данных, которые представляли собой буквы, цифры, а также такие знаки, как и т. п., специальные символы никогда не встречались, так что проблемы их отделения от пользовательских данных не существовало. Постепенно асинхронные протоколы усложнялись и стали наряду с отдельными символами использовать целые блоки данных, то есть кадры. Например, популярный протокол XMODEM передает файлы между двумя компьютерами по асинхронному модему. Начало приема очередного блока файла инициируется символьной командой - принимающая сторона постоянно передает символ ASCII NAK. Передающая сторона, приняв NAK, отправляет очередной блок файла, состоящий из 128 байт данных, заголовка и концевика. Заголовок состоит из специального символа SOH (Start Of Header) и номера блока. Концевик содержит контрольную сумму блока данных. Приемная сторона, получив новый блок, проверяла его номер и контрольную сумму. В случае совпадения этих параметров с ожидаемыми приемник отправлял символ АСК, а в противном случае - символ NAK, после чего передатчик должен был повторить передачу данного блока. В конце передачи файла передавался символ ЕОХ. Как видно из описания протокола XMODEM, часть управляющих операций выполнялась в асинхронных протоколах посылкой в асинхронном режиме отдельных символов, в то же время часть данных пересылалась блоками, что более характерно для синхронных протоколов .

Назначения и разновидности периферийных устройств

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

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

  • Устройства вывода – предназначены для вывода информации в необходимом для оператора формате. К этому типу периферийных устройств относятся: принтер, монитор (дисплей), аудиосистема.

  • Устройства ввода – Устройствами ввода являются устройства, посредством которых можно ввести информацию в компьютер. Главное их предназначение - реализовывать воздействие на машину. К такому виду периферийных устройств относятся: клавиатура (входит в базовую конфигурацию ПК), сканер, графический планшет и т.д.

  • Дополнительные ПУ – такие как манипулятор «мышь», который лишь обеспечивает удобное управление графическим интерфейсом операционных систем ПК и не несет ярковыраженных функций ввода либо вывода информации; WEB-камеры, способствующие передаче видео и аудио информации в сети Internet, либо между другими ПК.

Устройство и функционирование в текстовом и графическом режиме

Текстовый режим

В этом режиме, называемом также символьным, экран разделяется на отдельные символьные позиции, в каждой из которых выводится один символ. Символьные позиции определяются двумя координатами: номер текстовой строки и номер текстового столбца. Начало координат находится в верхнем левом углу рабочей области экрана (рис. 5.2).

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 5.2. Логическое представление экрана в текстовом режиме

 

После загрузки компьютер всегда начинает работать в текстовом режиме. принимаемый по умолчанию текстовый режим ориентирован на ОС DOS. Процедуры вывода на экран ОС основаны на элементарных функциях BIOS, которые вызываются командой программного прерывания INT 10h.

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

Во всех видеосистемах персональных компьютеров, совместимых с IBM, применяется один и тот же формат хранения текстовых данных в видеобуфере. Каждый символ представлен двумя байтами.

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

Распространено два формата текстового режима 25´40 или 25´80 (строк ´ символов), то есть емкость видеобуфера составляет 2000 или 4000 байт (по 2 байта на символ). Эту область называют страницей.

Для вывода символа на экран необходимо поместить его код и атрибуты в определенную ячейку видеобуфера. Способ интерпретации байта атрибутов зависит от конкретного адаптера. В адаптере VGA для преобразования атрибутов в сигналы цветов предназначен форматер и ЦАП. Форматер дешифрирует атрибуты и образует 8-мибитные коды, которые передаются в ЦАП. ЦАП формирует аналоговые сигналы RGB, подаваемые в монитор. При этом используется 8-мибитный вход для выбора одного из 256 внутренних 18-битных регистров цвета. Каждый из них имеет 3 поля по 6 бит на каждый цвет. Эти поля выбранного регистра ЦАП отдельно преобразуются в аналоговые сигналы для монитора.

Графический режим

В этом режиме цветовое значение каждого пикселя хранится как один или несколько бит в видеобуфере и считывается на экран с дополнительным преобразованием. Графический режим называется еще режимом с двоичным или точечным отображением (bit – mapped display), т.к. в нем имеется взаимно однозначное соответствие между битами в видеобуфере и пикселями на экране. Говорят, что в видеобуфере хранится образ экрана.

Если в видеобуфере пиксель кодируется “n” битами, то одновременно на экране можно наблюдать 2n цветов. Число бит, отведенных для кодирования цвета, иногда называют числом цветовых плоскостей. Адаптеры EGA и VGAосуществляют дополнительные преобразования битовых полей пикселов с целью расширения отображаемой палитры. С помощью специальных схем n-битный код расширяется до m-битного, причем m>n. При этом получается палитра из 2m цветов, однако одновременно на экране можно наблюдать по-прежнему лишь 2n цветов.

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

Сравним объемы информации, с которыми приходится оперировать в текстовом и графическом режиме:

Основные характеристики памяти

Внутренняя память ПК обладает двумя основными свойствами: дискретностью и адресуемостью.

Дискретность – память состоит из битов (бит — элемент памяти, частица информации, хранит двоичный код 0 или 1. Слово бит произошло от англ. «binary digit» — двоичная цифра).

Бит – наименьшая частица памяти компьютера.

Следовательно, у слова «бит» есть два смысла: это единица измерения количества информации и частица памяти компьютера. Оба эти понятия связаны между собой следующим образом: В одном бите памяти хранится один бит информации.

Память – это упорядоченная последовательность двоичных разрядов(бит). Эта последовательность делится на группы по 8 разрядов. Каждая такая группа образует байт памяти.

Следовательно «бит» и «байт» обозначают не только названия единиц измерения количества информации, но и структурные единицы памяти ЭВМ. 1Кб = 210 байт =1024б 1Мб = 210 Кбайт =1024Кб 1Гб = 1024Мб

 Ячейка памяти – группа последовательных байтов внутренней памяти, вмещающая в себе информацию, доступную для обработки отдельной командой процессора. Содержимое ячейки памяти называется машинным словом. Байты внутренней памяти пронумерованы. Нумерация начинается с 0. Порядковый № байта называется адресом байта. Принцип адресуемости памяти заключается в том, что любая информация заносится в память и извлекается из нее по адресам, т.е. чтобы взять информацию из ячейки памяти или поместить ее туда, необходимо указать адрес этой ячейки. Адрес ячейки память равен адресу младшего байта, входящим в ячейку. Адресация памяти начинается с 0. Адреса ячеек кратны количеству байтов в машинном слове.

 

Структура оперативной памяти

 

Оперативная память(ОП) (ОЗУ)

Из ОП ЦП берет исходные данные для обработки, в нее записываются полученные результаты. Название «оперативная» память получила потому что работает быстро. Является энергозависимой, данные и программы сохраняются в ней только до тех пор, пока ПК включен, при выключении ПК содержимое ОП стирается. ОЗУ предназначена для хранения текущей, быстроменяющейся информации и допускает изменение своего содержимого в ходе выполнения процессором вычислений. Используется два основных типа оперативной памяти: статическая память (SRAM-Static RAM — КЭШ) и динамическая память (DRAM-Dynamic RAM — ОЗУ). Эти две разновидности памяти различаются быстродействием и удельной плотностью (емкостью) хранимой информации.

Быстродействие памяти характеризуется двумя параметрами: временем доступа(access time) и длительностью цикла памяти (cycle time). Эти величины, как правило, измеряются в наносекундах. Чем больше эти величины, тем больше быстродействие памяти. Время доступа представляет собой промежуток времени между формированием запроса на чтение информации из памяти и моментом поступления из памяти запрошенного машинного слова (операнда). Длительность цикла определяется минимальным допустимым временим между двумя последовательными обращениями к памяти.

В статической памяти элементы построены на триггерах — схемах с двумя устойчивыми состояниями. Для построения одного триггера требуется 4-6 транзисторов. После записи информации в статический элемент памяти он может хранить информацию сколь угодно долго (пока подается электрическое питание). Статическая память имеет высокое быстродействие и низкую плотность размещения хранящихся данных. Этот вид памяти дорог и энергоемок, следовательно, может происходить перегрев, что снижает надежность система, поэтому вся ОП не может быть построена по статическому принципу.

В динамической памяти элементы памяти построены на основе полупроводниковых конденсаторов, занимающих гораздо более меньшую площадь, чем триггеры в статической памяти. Для построения динамического элемента памяти требуется 1-2 транзистора. Каждый бит ОП представляется в виде наличия или отсутствия заряда на конденсаторе, образованном в структуре полупроводникового кристалла. Ячейки динамической памяти очень компактны, но со временем конденсатор испытывает утечку заряда, поэтому периодически (приблизительно 1000 раз в сек.) выполняется автоматическое восстановление информации в каждой ячейке. Это снижает скорость работы динамической памяти и является основным ее недостатком.

ОП часто обозначают RAM (Random Access memory) – память с произвольным доступом (тип доступа к памяти при котором ячейки памяти пронумерованы, т.е. адресуемы и, следовательно, обращение к ним может производиться в произвольном порядке).

Термин «произвольный доступ» означает, что можно считать (записать) информацию в любой момент времени из любой ячейки.

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

От объема ОП, установленным на ПК напрямую зависит с каким ПО Вы сможете на нем работать. При недостатке ОП программы не запускаются, выдается сообщение: “Out of memory”, либо работают крайне медленно.

Чем больше ОП в ПК, тем лучше. При необходимости объем ОП можно нарастить (ограничивается параметрами ОП, поддерживаемой конкретной материнской платы, внимательно см.спецификацию к системной плате).

Иерархия памяти

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

 

 

Рисунок 1‑12. Иерархия памяти (Источник: Learning Materials for Information Technology Professionals (EUCIP-Mat))

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

Организация и управление оперативной памятью

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

Используемые в операционных системах алгоритмы распределения ОП многообразны. Причинами этого многообразия являются:

  • многоуровневая структура памяти (регистровая, оперативная, внешняя)

  • стремление обеспечить пользователя характеристиками, отличными от реальных (виртуальная память)

  • необходимость согласования распределения ОП с распределением центрального процессора

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

В любой момент времени все пространство ОП представляет собой чередующуюся последовательность из занятых (распределенных) и свободных (не распределенных в текущий момент) участков памяти. Последние также образно называют дырами.

Задача распределения ОП распадается на три взаимосвязанные задачи: учета, выделения, возврата.

Учету по определенным правилам подвергаются либо только дыры, либо, более часто, дыры и занятые участки.

Задача выделения заключается в выборе по некоторому правилу дыры подходящего размера. Поиск подходящей дыры при этом может производится по одному из трех алгоритмов: поиск от начала, поиск от конца, оптимальный поиск. В первых двух случаях производится выделение первой обнаруженной (при просмотре списка дыр от начала и от конца, соответственно) подходящей дыры, в последнем случае выбирается подходящая дыра наименьшего размера. Более сложные алгоритмы распределения предполагают выделение участка памяти даже в том случае, когда дыра подходящего размера в ОП отсутствует. В этом случае производится некоторое переупорядочение дыр, имеющее целью объединение множества мелких дыр в единое целое.

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

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

Блочная ОП

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

Рассмотрим пример блочной памяти с чередованием адресов по циклической схеме (рисунок 4), в котором для выбора банка используются два младших разряда адреса (А1, А0), а для выбора ячейки в банке – 7 старших разрядов (А8 – А2).

Рисунок 4 - Блочная память с чередованием адресов по циклической схеме

В каждом такте на шине адреса может присутствовать адрес только одной ячейки, поэтому параллельное обращение к нескольким банкам невозможно, но оно может быть организовано со сдвигом на один такт. Адрес ячейки запоминается в индивидуальном регистре адреса, и дальнейшие операции по доступу к ячейке в каждом банке протекают независимо. При большом количестве банков средее время доступа к памяти сокращается почти в В раз (В – количество банков), но при условии, что ячейки относятся к разным банкам. Если же запросы к одному тому же банку следуют друг за другом, каждый следующий запрос должен ожидать завершения обслуживания предыдущего. Такая ситуация называется конфликтом по доступу. При частых конфликтах данный метод становится неэффективным.

Много портовая ОП

    Многопортовая память - это статическое ОЗУ с двумя или более независимыми интерфейсами, обеспечивающими доступ к пространству памяти через разделенные шины адреса, данных и управления. Структура двухпортового статического ОЗУ (рис.1.) содержит единый массив памяти (COMMON CENTRAL MEMORY) и два независимых порта (PORT_L и PORT_R) для обращения к этому массиву. 

  Рис.1. Структура двухпортового статического ОЗУ

         В отличие от статического элемента обычного ОЗУ (рис.2,а) элементарная ячейка двухпортовой памяти реализована на шести транзисторах (рис.2,б). Основу ячейки составляет статический триггер, выполненный на транзисторах Q1, Q2. Ключевыми транзисторами Q3, Q4 триггер соединен с разрядными шинами P_L, P'_L, а ключевыми транзисторами Q5, Q6 - с разрядными шинами P_R, P'_R. По этим шинам к триггеру подводится при записи и отводится при считывании информация. Ключевые транзисторы затворами соединены с шинами выбора строки ROW SELECT_L и ROW SELECT_R соответственно. При возбуждении строки одним из сигналов выборки ключевые транзисторы открываются и подключают входы-выходы триггера к разрядным шинам. 

С расслоением обращений

а рисунках 2.4-2.6 приведены варианты подключения кэш-памяти и ОП в зависимости от принципов организации памяти (расслоения обращений) и структуры магистрали данных системного интерфейса. Рассмотрим четыре варианта:

  • ОП и СОЗУ данных без расслоения обращений;

  • ОП с расслоением обращений на ширину выборки строки, СОЗУ данных без расслоения обращений;

  • ОП и СОЗУ данных с расслоением обращений на ширину выборки строки.

  • ОП с расслоением обращений на ширину выборки строки, СОЗУ данных с расслоением обращений и двусторонним доступом.

Первый вариант схемы включения представлен на рисунке 2.4. Процедура обновления ОП требует 8 обращений к СОЗУ данных и 8 обращений для записи строки в ОП, т.е. потребуется 8 х Tозу+ 8 х tсозу дан. и столько же обращений для замещения строки кэш-памяти.

Второй вариант (рисунок 2.5) требует наличия на выходах ОП RgDO с выходами с z-состоянием или мультиплексора на 8 входов, а на входах соответственно демультиплексора и регистра RgDI. Тогда процедура обновления ОП потребует 8 x tсозу для чтения строки из СОЗУ данных и записи в RgDI через DMS и одного обращения Tозу к ОП для записи строки и столько же обращений для замещения строки кэш-памяти.

При третьем варианте организации ОП и СОЗУ данных потребуется 8 х n-разрядная MD, что приводит к нарушению стандарта системного интерфейса (разрядность системной магистрали данных должна быть n-разрядной). Поэтому этот вариант является неприемлемым и не рассматривается.

Статическая и динамическая память

Статическая и динамическая оперативная память

Оперативная память — совокупность специальных электронных ячеек, каждая из которых может хранить конкретную 8-значную комбинацию из нулей и единиц — 1 байт (8 бит). Каждая такая ячейка имеет адрес (адрес байта) и содержимое (значение байта). Адрес нужен для обращения к содержимому ячейки, для записи и считывания информации. Оперативное запоминающее устройство (ОЗУ) хранит информацию только во время работы компьютера. Емкость оперативной памяти современного компьютера 32-138 Мбайт. При выполнении микропроцессором вычислительных операций должен быть в любой момент обеспечен доступ к любой ячейке оперативной памяти. Поэтому ее называют памятью с произвольной выборкой — RAM (Random Access Memory). Оперативная память выполнена обычно на микросхемах динамического типа с произвольной выборкой (Dynamic Random Access Memory, DRAM). Каждый бит такой памяти представляется в виде наличия (или отсутствия) заряда на конденсаторе, образованном в структуре полупроводникового кристалла. Другой, более дорогой тип памяти — статический (Static RAM, SRAM) в качестве элементарной ячейки использует так называемый статический триггер (схема которого состоит из нескольких транзисторов). Статический тип памяти обладает более высоким быстродействием и используется, например, для организации кэш-памяти. Статическая память Статическая память (SRAM) в современных ПК обычно применяется в качестве кэш-памяти второго уровня для кэширования основного объема ОЗУ. Статическая память выполняется обычно на основе ТТЛ-, КМОП- или БиКМОП-микросхем и по способу доступа к данным может быть как асинхронной, так и синхронной. Асинхронным называется доступ к данным, который можно осуществлять в произвольный момент времени. Асинхронная SRAM применялась на материнских платах для третьего — пятого поколения процессоров. Время доступа к ячейкам такой памяти составляло от 15 нс (33 МГц) до 8 нс (66 МГц). Для описания характеристик быстродействия оперативной памяти применяются так называемые циклы чтения/записи. Дело в том, что при обращении к памяти на считывание или запись первого машинного слова расходуется больше тактов, чем на обращение к трем последующим словам. Так, для асинхронной SRAM чтение одного слова выполняется за 3 такта, запись — за 4 такта, чтение нескольких слов определяется последовательностью 3—2—2—2 такта, а запись — 4—3—3—3. Синхронная память обеспечивает доступ к данным не в произвольные моменты времени, а синхронно с тактовыми импульсами. В промежутках между ними память может готовить для доступа следующую порцию данных. В большинстве материнских плат пятого поколения используется разновидность синхронной памяти — синхронно-конвейерная SRAM (Pipelined Burst SRAM), для которой типичное время одиночной операции чтения/записи составляет 3 такта, а групповая операция занимает 3—1—1—1 такта при первом обращении и 1—1—1—1 при последующих обращениях, что обеспечивает ускорение доступа более, чем на 25%. Динамическая память Динамическая память (DRAM) в современных ПК используется обычно в качестве оперативной памяти общего назначения, а также как память для видеоадаптера. Из применяемых в современных и перспективных ПК типов динамической памяти наиболее известны DRAM и FPM DRAM, EDO DRAM и BEDO DRAM, EDRAM и CDRAM, Synchronous DRAM, DDR SDRAM и SLDRAM, видеопамять MDRAM, VRAM, WRAM и SGRAM, RDRAM. В памяти динамического типа биты представляются в виде отсутствия и наличия заряда на конденсаторе в структуре полупроводникового кристалла. Конструктивно она выполняется в виде модуля SIMM (Single in line memory module). Каждый бит информации записывается в отдельной ячейке памяти, состоящей из конденсатора и транзистора. Наличие заряда на конденсаторе соответствует 1 в двоичном коде, отсутствие — 0. Транзистор при переключении дает возможность считывать бит информации или записывать новый бит в пустую ячейку памяти. Поиск ячейки по адресу осуществляется специальными дешифрующими схемами, которые образуют матрицу, то есть пересекают кристалл памяти двумя полосами — по горизонтали и вертикали. Когда центральный процессор сообщает адрес ячейки, горизонтальные дешифраторы указывают нужный столбец, а вертикальные — строку. На пересечении находится искомая ячейка. После нахождения ячейки происходит выборка их нее байта данных. 

Буферная память

В вычислительных системах используются подсистемы с различным быстродействием, и, в частности, с различной скоростью передачи данных (рис. 4.13). Обычно обмен данными между такими подсистемами реализуется с использованием прерываний или канала прямого доступа к памяти. В первую очередь подсистема 1 формирует запрос на обслуживание по мере готовности данных к обмену. Однако обслуживание прерываний связано с непроизводительными потерями времени и при пакетном обмене производительность подсистемы 2 заметно уменьшается. При обмене данными с использованием канала прямого доступа к памяти подсистема 1 передает данные в память подсистемы 2. Данный способ обмена достаточно эффективен с точки зрения быстродействия, но для его реализации необходим довольно сложный контроллер прямого доступа к памяти.

Организация кэш-памяти

Мы уже не раз отмечали, что оперативная память вычислительных систем реализуется на относительно медленных  микросхемах динамической памяти. Если процессор работает непосредственно с памятью такого типа, требуется  вводить такты ожидания для процессора. В этом случае процессор частично простаивает. Статическая память, построенная  на триггерах,  имеет то же быстродействие, что и процессоры и использование такой памяти позволило бы работать процессору без тактов ожидания, но параметр цена/производительность диктует поиски другого выхода из этой ситуации.       Разумным компромиссом для построения экономичных и производительных систем явился иерархический способ построения  памяти.  Обмен процессора с оперативной памятью производится при помощи промежуточной относительно небольшой кэш-памяти на быстродействующих микросхемах SRAM.      В переводе слово кэш (cache) означает склад или тайник. Для выполняемой программы он не представляет собой дополнительной адресуемой памяти. Он выполняет роль  быстродействующего хранилища копий блоков информации основной памяти, к которым в ближайшее время ожидается обращение. Объем кэш  во много раз меньше объема оперативной памяти. Контроллер кэш памяти ведет каталог и при каждом обращении к кэш памяти по каталогу проверяет, есть ли действительная копия затребованных данных в кэше? Если она там есть, то это случай кэш попадания (cache hit), и обращение за данными происходит только к кэш-памяти. Если действительной копии там нет, то это случай кэш-промаха (cache miss), и данные берутся из основной памяти.      Отношение   числа попаданий к общему  числу обращений к памяти называется коэффициентом эффективности поиска. Если этот коэффициент достаточно высок, большая часть времени затрачивается на обращение к кэш-памяти, что  эквивалентно использованию быстродействующей основной памяти при выполнении программы. Обычно коэффициент эффективности поиска превышает 95%.     Обращение к основной памяти может начинаться одновременно с поиском данных в каталоге кэш, и в случае попадания - прерывается (архитектура Look Aside). При параллельном поиске из - за параллельного обращении к оперативной памяти возрастают затраты энергии.      В другом варианте обращение к внешней памяти начинается только после фиксации случая промаха (архитектура Look Through), на этом теряется, по крайней мере, один такт процессора, зато значительно экономится энергия.      В современных процессорах кэш обычно строится по двухуровневой схеме. Первичный кэш (L1 Cache)  имеет сравнительно небольшой объем и для повышения производительности обычно используется  раздельный кэш для данных и команд  (так называемая Гарвардская архитектура - противоположность Принстонской, использующей общий кэш для команд и данных). Вторичный кэш (L2 Cache) тоже включается в микросхему микропроцессора, но не разделяется на кэш команд и данных. Работает встроенный кэш на внутренней тактовой частоте процессора. 

Постоянное запоминающее устройство

Кроме оперативной памяти, под термином "память" мы будем подразумевать постоянную и CMOS - память.

К постоянной памяти относят постоянное запоминающее устройство, ПЗУ (в англоязычной литературе - Read Only Memory, ROM, что дословно перводится как "память только для чтения"), перепрограммируемое ПЗУ, ППЗУ (в англоязычной литературе – Programmable Read Only Memory, PROM), и флэш-память (flash memory). Название ПЗУ говорит само за себя. Информация в ПЗУ записывается на заводе-изготовителе микросхем памяти, и в дальнейшем изменить ее значение нельзя. В ПЗУ хранится критически важная для компьютера информация, которая не зависит от выбора операционной системы. Программируемое ПЗУ отличается от обычного тем, что информация на этой микросхеме может стираться специальными методами (например, лучами ультрафиолета), после чего пользователь может повторно записать на нее информацию. Эту информацию будетневозможно удалить до следующей операции стирания информации.

Элементы пзу

В зависимости от элемента памяти (ЭП) микросхемы ОЗУ подразделяют на статические и динамические. В статических ОЗУ элементом памяти является триггер на биполярных или полевых транзисторах. В динамических ОЗУ элементом памяти является конденсатор, в качестве которого обычно используется затвор полевого транзистора.

На принципиальных схемах обычно используют обозначения выводов микросхемы в соответствии с сигналами, присутствующими на этих выводах: А – адрес, С – тактовый, ST – строб,CAS – выбор адреса столбца, RAS – выбор адреса строки, CS – выбор кристалла, E – разрешение, WR – запись, RD – считывание, WR/RD – запись-считывание, OE – разрешение выхода, D – данные (информация), DI – входные данные, DO – выходные данные, REF – регенерация, PR – программирование, ER – стирание, UPR – напряжение программирования, UCC  –  напряжение питания,0V – общий.

Организация ПЗУ

Программы, хранящиеся в ПЗУ, представляют собой чрезвычайно важную компоненту IBM/PC, поскольку являются основой управляющей программы, делающей ПЭВМ эффективным инструментом обработки данных. Сам факт их размещения в ПЗУ превращает эти программы в стабильный и надежный инструмент - они не могут быть стерты или уничтожены. Кроме того, они доступны для любой программы, выполняемой на IBM/PC, независимо от специфики используемой операционной системы. Большинство программ обслуживания, размещаемых в ПЗУ, допускают перемещение. Эти программы написаны таким образом, что при необходимости их можно легко переместить, соответственно перестроив обращение к ним. Специфика обращения к программам ПЗУ состоит в том, что их активизация производится всегда через систему прерываний. Изменив таблицу векторов прерываний, можно легко изменить точку входа в ту или иную программу обслуживания. Эти вопросы уже рассматривались нами при изучении материала главы 3.

Адресация памяти

Адресация — осуществление ссылки (обращение) к устройству или элементу данных по его адресу[1]; установление соответствия между множеством однотипных объектов и множеством их адресов; метод идентификации местоположения объекта[2].

Организация виртуальной памяти

Виртуа́льная па́мять (англ. Virtual memory) — технология управления памятью ЭВМ, разработанная для многозадачных операционных систем. При использовании данной технологии для каждой программы используются независимые схемы адресации памяти, отображающиеся тем или иным способом на физические адреса в памяти ЭВМ. Позволяет увеличить эффективность использования памяти несколькими одновременно работающими программами, организовав множество независимых адресных пространств (англ.), и обеспечить защиту памяти между различными приложениями. Также позволяет программисту использовать больше памяти, чем установлено в компьютере, за счет откачки неиспользуемых страниц на вторичное хранилище (см. Подкачка страниц).

При использовании виртуальной памяти упрощается программирование, так как программисту больше не нужно учитывать ограниченность памяти или согласовывать использование памяти с другими приложениями. Для программы выглядит доступным и непрерывным все допустимое адресное пространство, вне зависимости от наличия в ЭВМ соответствующего объёма ОЗУ.

Применение механизма виртуальной памяти позволяет:

  • упростить адресацию памяти клиентским программным обеспечением;

  • рационально управлять оперативной памятью компьютера (хранить в ней только активно используемые области памяти);

  • изолировать процессы друг от друга (процесс полагает, что монопольно владеет всей памятью).

Страничная адресация

Линейный адрес, который формируется процессором из логического адреса, соответствует адресу из линейного непрерывного пространства памяти. В обычном режиме в это пространство могут попадать области памяти, в которые нежелательно разрешать запись, — системные таблицы и процедуры, ПЗУ BIOS и т.д. Чтобы этого избежать, система может разрешать программам создавать только небольшие сегменты, но тогда теряется такая привлекательная идея flat-памяти. Сегментация — не единственный вариант организации памяти, который поддерживают процессоры Intel. Существует второй, совершенно независимый механизм — страничная адресация (pagination).

Сегментация памяти

Сегмент - это маленькая часть большого целого. Сегментация - это деление памяти на сегменты. С точки зрения разработчиков программного обеспечения, сегментация дает удобный способ совместного использования информации несколькими процессами. Конкретный сегмент может использоваться совместно с другими без нарушения требований его защиты.

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

С точки зрения разработчиков аппаратного обеспечения, сегментация обозначает также разделение памяти на физические блоки, называемые ПЗУ и ОЗУ. Если, например, каждое ПЗУ имеет объем 64К, тогда и размер каждого сегмента составляет 64К. Дополнительные цепи. физические регистры, триггеры-фиксаторы и прочее оборудование компонуется вокруг этих сегментов.

При разработке МП 8080 была реализована возможность адресации вплоть до 65536 байтов (64К), и это число определило максимальный размер памяти. В течение сравнительно длительного периода времени величина 64К служила стандартом при разработке микропроцессоров. МП 8086 изменил ситуацию, введя программную сегментацию, с помощью которой сегменты размером 64К отображались на адресное пространство объемом более 1 Мбайт.

При использовании МП 80386 сегменты физических адресов могут иметь размеры от 1 байт до 4 Гбайт. В виртуальной памяти МП 80386 допустима адресация до 64 Тбайт, причем каждому сегменту придается индивидуальный уровень защиты или приоритета.

Модели архитектур совместно используемой памяти

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

Вычислительные системы с общей памятью, где доступ любого процессора к памяти производится единообразно и занимает одинаковое время, называют системами с однородным доступом к памяти и обозначают аббревиатурой UMA (Uniform Memory Access). Это наиболее распространенная архитектура памяти параллельных ВС с общей памятью.

Технически UMА-системы предполагают наличие узла, соединяющего каждый из n  процессоров с каждым из m модулей памяти. Простейший путь построения таких ВС - объединение нескольких процессоров (P) с единой памятью (Mp) посредством общей шины - показан на рисунке ниже (а). В этом случае, однако, в каждый момент времени обмен по шине может вести только один из процессоров, то есть процессоры должны соперничать за доступ к шине. Когда процессор Рi, выбирает из памяти команду, остальные процессоры Pj (i не равно j) должны ожидать, пока шина освободится. Если в систему входят только два процессора, они в состоянии работать с производительностью, близкой к максимальной, поскольку их доступ к шине можно чередовать; пока один процессор декодирует и выполняет команду, другой вправе использовать шину для выборки из памяти следующей команды. Однако когда добавляется третий процессор, производительность начинает падать. При наличии на шине десяти процессоров кривая быстродействия шины (рисунок ниже - в) становится горизонтальной, так что добавление 11-го процессора уже не дает повышения производительности. Нижняя кривая на этом рисунке иллюстрирует тот факт, что память и шина обладают фиксированной пропускной способностью, определяемой комбинацией длительности цикла памяти и протоколом шины, и в многопроцессорной системе с общей шиной эта пропускная способность распределена между несколькими процессорами. Если длительность цикла процессора больше по сравнению с циклом памяти, к шине можно подключать много процессоров. Однако фактически процессор обычно намного быстрее памяти, поэтому данная схема широкого применения не находит.

 

Модели архитектур распределенной памяти

В системе с распределенной памятью каждый процессор обладает собственной памятью и способен адресоваться только к ней. Некоторые авторы называют этот тип систем многомашинными ВС или мульткомпьютерами, подчеркивая тот факт, что блоки, из которых строится система, сами по себе являются небольшими вычислительными системами с процессором и памятью. Модели архитектур с распределенной памятью принято обозначать как архитектуры без прямого доступа к удаленной памяти (NORMA, No Remote Memory Access). Такое название следует из того факта, что каждый процессор имеет доступ только к своей локальной памяти. Доступ к удаленной памяти (локальной памяти другого процессора) возможен только путем обмена сообщениями с процессором, которому принадлежит адресуемая память.

Подобная организация характеризуется рядом достоинств. Во-первых, при доступе к данным не возникает конкуренции за шину или коммутаторы — каждый процессор может полностью использовать полосу пропускания тракта связи с собственной локальной памятью. Во-вторых, отсутствие общей шины означает, что нет и связанных с этим ограничений на число процессоров: размер системы ограничивает только сеть, объединяющая процессоры. В-третьих, снимается проблема когерентности кэш-памяти. Каждый процессор вправе самостоятельно менять свои данные, не заботясь о согласовании копий данных в собственной локальной кэш-памяти с кэшами других процессоров.

 

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

·        требуется время для того, чтобы сформировать и переслать сообщение от одного процессора к другому;

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

 

Симметричные мультипроцессорные системы и архитектура

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

Современные системы SMP архитектуры состоят, как правило, из нескольких однородных серийно выпускаемых микропроцессоров и массива общей памяти, подключение к которой производится либо с помощью общей шины, либо с помощью коммутатора (рис. 1.1).

Рис. 1.1. Архитектура симметричных мультипроцессорных систем.

Наличие общей памяти значительно упрощает организацию взаимодействия процессоров между собой и упрощает программирование, поскольку параллельная программа работает в едином адресном пространстве. Однако за этой кажущейся простотой скрываются большие проблемы, присущие системам этого типа. Все они, так или иначе, связаны с оперативной памятью. Дело в том, что в настоящее время даже в однопроцессорных системах самым узким местом является оперативная память, скорость работы которой значительно отстала от скорости работы процессора. Для того чтобы сгладить этот разрыв, современные процессоры снабжаются скоростной буферной памятью (кэш-памятью), скорость работы которой значительно выше, чем скорость работы основной памяти. В качестве примера приведем данные измерения пропускной способности кэш-памяти и основной памяти для персонального компьютера на базе процессора Pentium III 1000 Мгц. В данном процессоре кэш-память имеет два уровня:

  • L1 (буферная память команд) - объем 32 Кб, скорость обмена 9976 Мб/сек;

  • L2 (буферная память данных) - объем 256 Кб, скорость обмена 4446 Мб/сек.

В то же время скорость обмена с основной памятью составляет всего 255 Мб/сек. Это означает, что для 100% согласованности со скоростью работы процессора (1000 Мгц) скорость работы основной памяти должна быть в 40 раз выше!

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

С большим или меньшим успехом эти проблемы решаются в рамках общепринятой в настоящее время архитектуры ccNUMA (cache coherent Non Uniform Memory Access). В этой архитектуре память физически распределена, но логически общедоступна. Это, с одной стороны, позволяет работать с единым адресным пространством, а, с другой, увеличивает масштабируемость систем. Когерентность кэш-памяти поддерживается на аппаратном уровне, что не избавляет, однако, от накладных расходов на ее поддержание. В отличие от классических SMP систем память становится трехуровневой:

  • кэш-память процессора;

  • локальная оперативная память;

  • удаленная оперативная память.

Кластерные вычислительные системы

Кластер - группа взаимно соединенных вычислительных систем (узлов), работающих совместно и составляющих единый вычислительный ресурс, создавая иллюзию наличия единственной ВМ. Для связи узлов используется одна из стандартных сетевых технологий (Fast/Gigabit Ethernet, Myrinet) на базе шинной архитектуры или коммутатора. Примеры кластерных вычислительных систем: NT-кластер в NCSA, Beowulf-кластеры.

Одно из самых современных направлений в области создания вычислительных систем - кластеризация. Помимо термина «кластерные вычисления», достаточно часто применяют такие названия: кластер рабочих станций (workstation cluster), гипервычисления (hypercomputing), параллельные вычисления на базе сети (network-based concurrent computing), ультравычисления(ultracomputing). Изначально перед кластерами ставились две задачи: достичь большой вычислительной мощности и обеспечить повышенную надежность ВС. Пионером в области кластерных архитектур считается корпорация DEC, разработавшая первый коммерческий кластер в начале 80-х годов прошлого века. Архитектура кластерных систем во многом похожа на архитектуру МРР-систем. Тот же принцип распределенной памяти, использование в качестве вычислительных узлов законченных вычислительных машин, большой потенциал для масштабирования системы и целый ряд других особенностей. В первом приближении кластерную технологию можно рассматривать как развитие идей массовых параллельных вычислений. С другой стороны, многие черты кластерной архитектуры дают основание считать ее самостоятельным направлением в области MIMD-систем. В качестве узла кластера может выступать как однопроцессорная ВМ, так и ВС типа SMP (логически SMP-система представляется как единственная ВМ). Как правило, это не специализированные устройства, приспособленные под использование в вычислительной системе, как в МРР, а серийно выпускаемые вычислительные машины и системы. Еще одна особенность кластерной архитектуры состоит в том, что в единую систему объединяются узлы разного типа, от персональных компьютеров до мощных ВС. Кластерные системы с одинаковыми узлами называют гомогенными кластерами, а с разнотипными узлами - гетерогенными кластерами. Использование машин массового производства существенно снижает стоимость ВС, а возможность варьирования различных по типу узлов позволяет получить необходимую производительность за приемлемую цену. Важно и то, что узлы могут функционировать самостоятельно и отдельно от кластера. Для этого каждый узел работает под управлением своей операционной системы. Чаще всего используются стандартные ОС: Linux, FreeBSD, Solaris и версии Windows, продолжающие на-правление Windows NT. Узлы в кластерной системе объединены высокоскоростной сетью. Решения могут быть простыми, основанными на аппаратуре Ethernet, или сложными с высокоскоростными сетями пропускной способности в сотни мегабайтов в секунду (Мбит/с). К последней категории относятся сети SCI компании Scali Computer (≈100 Мбит/с) и Mirynet (≈120 Мбит/с). В принципе, за основу кластерной системы может быть взята стандартная локальная сеть (или сеть большего масштаба), с сохранением принятых в ней протоколов (правил взаимодействия). Аппаратурные изменения могут не потребоваться или, в худшем случае, сводятся к замене коммуникационного оборудования на более производительное. При соединении машин в кластер почти всегда поддерживаются прямые межмашинные связи. Вычислительные машины (системы) в кластере взаимодействуют в соответствии с одним из двух транспортных протоколов. Первый из них, протокол TCP (Transmission Control Protocol), оперирует потоками байтов, гарантируя надежность доставки сообщения. Второй - UDP (User Datagram Protocol) пытается посылать пакеты данных без гарантии их доставки. В последнее время применяют специальные протоколы, которые работают намного лучше, например Virtual Interface Architecture (VIA). При обмене информацией используются два программных метода: передачи сообщений и распределенной, совместно используемой памяти. Первый опирается на явную передачу информационных сообщений между узлами кластера. В альтернативном варианте также происходит пересылка сообщений, но движение данных между узлами кластера скрыто от программиста.

Системы массовой параллельной обработки

Система с массовой параллельной обработкой (МРР, Massively Parallel Processing) - система, состоящая из однородных вычислительных узлов, обладающих всеми средствами для независимого функционирования. В MPP-архитектуре реализована модель распределенной памяти.

Основные причины появления систем с массовой параллельной обработкой - это, во-первых, необходимость построения ВС с гигантской производительностью и, во-вторых, стремление раздвинуть границы производства ВС в большом диапазоне производительности и стоимости. Для МРР-системы, в которой количество вычислительных узлов может меняться в широких пределах, всегда реально подобрать конфигурацию с заранее заданной вычислительной мощностью и финансовыми вложениями. МРР-система состоит из множества однородных вычислительных узлов, число которых может исчисляться тысячами. Узел содержит полный комплекс устройств, необходимых для независимого функционирования (процессор, память, подсистему ввода/вывода, коммуникационное оборудование), то есть, по сути, является полноценной вычислительной машиной. Узлы объединены коммуникационной сетью с высокой пропускной способностью и малыми задержками. Работу узлов МРР-системы координирует главная управляющая вычислительная машина (хост-компьютер). Это может быть отдельная ВМ, как, например, в Cray T3D, или один из узлов системы. В последнем случае функции главной ВМ возлагаются на какой-то определенный узел ВС (в течение всего сеанса вычислений). В SMP-системе особые полномочия одному из ПЭ придаются только на время загрузки системы, после чего он опять становится равноправным элементом системы. Если система содержит выделенный хост-компьютер, то полноценная операционная система (ОС) функционирует только на нем, а на узлы устанавливается ее урезанный вариант, поддерживающий лишь функции ядра ОС. При отсутствии главной ВМ полноценная ОС устанавливается на каждый узел МРР-системы. Таким образом, каждый узел функционирует под управлением собственной операционной системы. Хост-компьютер (или его заменитель из числа узлов) распределяет задания между множеством подчиненных ему узлов. Схема взаимодействия в общих чертах довольно проста:

  • хост-компьютер формирует очередь заданий, каждому из которых назначается некоторый уровень приоритета;

  • по мере освобождения узлов им передаются задания из очереди;

  • узлы оповещают хост-компьютер о ходе выполнения задания; в частности о завершении выполнения или о потребности в дополнительных ресурсах;

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

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

Матричные вычислительные системы

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

Назначение матричных вычислительных систем - обработка больших массивов данных. В основе матричных систем лежит матричный процессор (array processor), состоящий из массива процессорных элементов (ПЭ). Такие системы имеют общее управляющее устройство, генерирующее поток команд, и большое число ПЭ, работающих параллельно и обрабатывающих каждый свой поток данных. Однако на практике, чтобы обеспечить достаточную эффективность системы при решении широкого круга задач, необходимо организовать связи между процессорными элементами так, чтобы наиболее полно загрузить процессоры работой. Именно характер связей между ПЭ и определяет разные свойства системы. Подобная схема применима и для векторных вычислений. Между матричными и векторными системами есть существенная разница. Матричный процессор интегрирует множество идентичных функциональных блоков (ФБ), логически объединенных в матрицу и работающих в SIMD-стиле. Не столь существенно, как конструктивно реализована матрица процессорных элементов - на едином кристалле или на нескольких. Важен сам принцип - ФБ логически скомпонованы в матрицу и работают синхронно, то есть присутствует только один поток команд для всех. Векторный процессор имеет встроенные команды для обработки векторов данных, что позволяет эффективно загрузить конвейер из функциональных блоков. В свою очередь, векторные процессоры проще использовать, потому что команды для обработки векторов - это более удобная для человека модель программирования, чем SIMD. Параллельную обработку множественных элементов данных обеспечивает массив процессорных элементов (МПЭ). Единый поток команд, управляющий обработкой данных в МПЭ, генерируется контроллером массива процессорных элементов (КМП). КМП выполняет последовательный программный код, реализует операции условного и безусловного переходов, транслирует в МПЭ команды, данные и сигналы управления. Команды обрабатываются процессорными элементами в режиме жесткой синхронизации. Сигналы управления используются для синхронизации команд и пересылок, а также для управления процессом вычислений, в частности определяют, какие ПЭ массива должны выполнять операцию, а какие - нет. Команды, данные и сигналы управления передаются из КМП в массив процессорных элементов по шине широковещательной рассылки. Поскольку выполнение операций условного перехода зависит от результатов вычислений, результаты обработки данных в массиве процессоров транслируются в КМП по шине результата. Для обеспечения пользователя удобным интерфейсом при создании и отладке программ в состав подобных ВС обычно включают фронтальную ВМ (front-end computer). В роли такой ВМ выступает универсальная вычислительная машина, на которую дополнительно возлагается задача загрузки программ и данных в КМП. Кроме того, такая загрузка может производиться и напрямую с устройств ввода/вывода, например с магнитных дисков. После загрузки КМП приступает к выполнению программы, транслируя в МПЭ по широковещательной шине соответствующие SIMD-команды. Рассматривая массив ПЭ, следует учитывать, что для хранения множественных наборов данных в нем, помимо множества процессорных элементов, должно присутствовать и множество модулей памяти. Кроме того, в массиве должна быть реализована сеть взаимосвязей, как между ПЭ, так и между процессорными элементами и модулями памяти. Таким образом, под терминоммассив процессорных элементов понимают блок, состоящий из собственно процессорных элементов, модулей памяти и сети соединений. Дополнительную гибкость при работе с рассматриваемой системой обеспечивает механизм маскирования, позволяющий вовлекать в операции лишь определенное подмножество ПЭ массива. Маскирование возможно как на стадии компиляции, так и на этапе выполнения, при этом ПЭ, исключенные путем установки в ноль соответствующих битов маски, во время выполнения команды простаивают.

Векторные вычислительные системы

Векторные вычислительные системы - системы класса SIMD, в которых одна и та же заданная операция выполняется сразу над всеми компонентами векторов.

В задачах моделирования реальных процессов и объектов, для которых характерна обработка больших массивов чисел в форме с плавающей запятой, массивы представляются матрицами и векторами, а алгоритмы их обработки описываются в терминах матричных операций. Как известно, основные матричные операции сводятся к однотипным действиям над парами элементов исходных матриц, которые, чаще всего, можно производить параллельно. В универсальных вычислительных системах, ориентированных на скалярные операции, обработка матриц выполняется поэлементно и последовательно. При большой размерности массивов последовательная обработка элементов матриц занимает слишком много времени, что и приводит к неэффективности универсальных ВС для рассматриваемого класса задач. Для обработки массивов требуются вычислительные средства, позволяющие с помощью единой команды производить действие сразу над всеми элементами массивов - средства векторной обработки. В средствах векторной обработки под вектором понимается одномерный массив данных (обычно в форме с плавающей запятой), размещенных в памяти ВС. Количество элементов массива называется длиной вектора. Многомерные массивы считаются наборами одномерных массивов-векторов. Действия над многомерными массивами учитывают специфику их размещения. Способ размещения многомерного массива влияет на шаг изменения адреса элемента, выбираемого из памяти. Так, если матрица расположена в памяти построчно, адреса соседних элементов строки различаются на единицу, а для элементов столбца шаг равен четырем. При размещении матрицы по столбцам единице будет равен шаг по столбцу, а четырем - шаг по строке. В векторной концепции для обозначения шага, с которым элементы вектора извлекаются из памяти, применяют термин шаг по индексу (stride).

Понятие вектора и размещения данных в памяти

В средствах векторной обработки под вектором понимается одномерный массив однотипных данных (обычно в форме с плавающей запятой), регулярным образом размещенных в памяти ВС. Если обработке подвергаются многомерные массивы, их также рассматривают как векторы. Такой подход допустим, если учесть, каким образом многомерные массивы хранятся в памяти ВМ. Пусть имеется массив данных А, представляющий собой прямоугольную матрицу раз-мерности  4×5 . При размещении матрицы в памяти все ее элементы заносятся в ячейки с последовательными адресами, причем данные могут быть записаны строка за строкой или столбец за столбцом .С учетом такого размещения много-мерных массивов в памяти вполне допустимо рассматривать их как векторы и ориентировать соответствующие вычислительные средства на обработку одно-мерных  массивов  данных  (векторов). Действия над многомерными массивами имеют свою специфику. В дву-мерном массиве обработка может вестись как по строкам, так и по столбцам.    Это выражается в том, с каким шагом должен меняться адрес очередного вы-    бираемого из памяти элемента. Если рассмотренная в примере матрица распо-ложена в памяти построчно, то адреса последовательных элементов строки раз-личаются на единицу, а для элементов столбца шаг равен пяти. При размеще-   нии матрицы по столбцам единице будет равен шаг по столбцу, а шаг по строке   – четырем. В векторной концепции для обозначения шага, с которым элементы вектора  извлекаются  из  памяти,  применяется  термин  шаг  по  индексу  (stride). Еще одной характеристикой вектора является число составляющих его элементов – длина  вектора.   Векторный процесс

Обобщенная структура векторного процессора приведена на рис. 7.6. На схеме показаны основные узлы процессора, без детализации некоторых связей между  ними. Обработка всех n компонентов векторов-операндов задается одной век- торной командой. Элементы векторов представляются числами в форме с пла-вающей запятой (ПЗ). АЛУ векторного процессора может быть реализовано в виде единого конвейерного устройства, способного выполнять все предусмот-ренные операции над числами с ПЗ. Однако более распространена иная струк-тура, в которой АЛУ состоит из отдельных блоков сложения и умножения, а иногда и блока для вычисления обратной величины, когда операция деления       реализуется в виде . Каждый из таких блоков также конвейеризирован. Кроме того, в состав векторной вычислительной системы обычно включается     и скалярный процессор, что позволяет параллельно выполнять векторные и скалярные  команды. Для хранения векторов-операндов вместо множества скалярных регист-   ров используются векторные регистры, представляющие собой совокупность скалярных регистров, объединенных в очередь типа FIFO, способную хранить  50–100 чисел с плавающей запятой. Набор векторных регистров (Va, Vb, Vc,…) имеется в любом векторном процессоре. Система команд векторного процес-  сора поддерживает работу с векторными регистрами и обязательно включает в себя  команды:

Структура типа память-память и регистр-регистр

Принципиальное различие архитектур векторных процессоров проявляется в том, каким образом осуществляется доступ к операндам. При организации «память-память» элементы векторов поочередно извлекаются из памяти      и сразу же направляются в функциональный блок. По мере обработки получающиеся элементы вектора результата сразу же заносятся в память. В архитектуре типа «регистр-регистр» операнды сначала загружаются в векторные регистры, каждый из которых может хранить сегмент вектора (например 64 элемента).

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

Преимущество ВП с режимом «память-память» состоит в возможности обработки длинных векторов, в то время как в процессорах типа «регистр-регистр» приходится разбивать длинные векторы на сегменты фиксированной длины. К сожалению, за гибкость режима «память-память» приходится расплачиваться относительно большим временем запуска, представляющим собой временной интервал между инициализацией команды и моментом, когда первый результат появится на выходе конвейера. Большое время запуска в процессорах типа «память-память» обусловлено скоростью доступа к памяти, которая намного меньше скорости доступа к внутреннему регистру. Однако когда конвейер заполнен, результат формируется в каждом цикле. Модель времени работы  векторного процессора  имеет  вид:

                                                       

где s – время  запуска, α – константа, зависящая  от  команды (обычно 1/2, 1 или 2)          и  N – длина  вектора.

Архитектура типа «память-память» реализована в векторно-конвейерных ВС Advanced Scientific Computer фирмы Texas Instruments Inc., семействе вычислительных систем фирмы Control Data Corporation, прежде всего, Star 100, серии Cyber 200 и ВС типа ETA-10. Все эти вычислительные системы появились в середине 70-х прошлого века после длительного цикла разработки, но к середине 80-х годов от них отказались. Причиной послужило слишком большое время запуска – порядка 100 циклов процессора. Это означает, что операции с короткими векторами выполняются очень неэффективно, и даже при длине векторов в 100 элементов процессор достигал только половины потенциальной производительности.

В вычислительных системах типа «регистр-регистр» векторы имеют сравнительно небольшую длину (в ВС семейства Cray – 64), но время запуска значительно меньше, чем в случае “память-память». Этот тип векторных систем гораздо более эффективен при обработке коротких векторов, но при операциях над длинными векторами векторные регистры должны загружаться сегментами несколько раз. В настоящее время ВП типа «регистр-регистр» доминируют на компьютерном рынке. Это вычислительные системы фирмы Cray Research Inc.,    в частности модели Y-MP и C-90.

Аналогичный подход заложен в ВС фирм Fujitsu, Hitachi и NEC. Время цикла в современных ВП варьируется от 2,5 нс (NEC SX-3) до 4,2 нс (Cray C-90), а производительность измеренная по тесту LINPACK,  лежит  в  диапазоне  от  1000  до  2000 MFLOPS (от  1  до  2 GFLOPS).

Обработка длинных векторов и матриц

Аппаратура векторных процессоров типа “регистр-регистр» ориентирована на обработку векторов, длина которых совпадает с длиной векторных регистров (ВР), поэтому обработка коротких векторов не вызывает проблем.

Если размер векторов превышает емкость ВР, используется техника разбиения исходного вектора на сегменты одинаковой длины, совпадающей с емкостью векторных регистров (последний сегмент может быть короче), и последовательной обработки полученных сегментов. В английском языке этот прием называется strip-mining. Процесс разбиения обычно происходит на стадии компиляции, но в ряде ВП данная процедура производится по ходу вычислений с помощью аппаратных средств на основе информации, хранящейся в регистре максимальной  длины  вектора.