Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы к экзамену по информатике.docx
Скачиваний:
16
Добавлен:
14.04.2019
Размер:
806.14 Кб
Скачать

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

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

  • многопроцессорные;

  • магистральные;

  • матричные.

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

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

Рис. 2.10. Матричная архитектура ЭВМ

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

27 Центральный процессор.

Центральный процессор (CPU, Central Processing Unit) — функционально законченное программно-управляемое устройство обработки информации, выполненное на одной или нескольких СБИС. Центральный процессор в общем случае содержит:

  • арифметико-логическое устройство;

  • шины данных и шины адресов;

  • регистры;

  • счетчики команд;

  • кэш — очень быструю память малого объема;

  • математический сопроцессор чисел с плавающей точкой.

Современные процессоры выполняются в виде микропроцессоров. Первый микропроцессор Intel 4004 был создан фирмой Intel в ноябре 1971 года. Он состоял из 2250 транзисторов, размещенных на кристалле размером не более шляпки гвоздя. В апреле 1974 года компания Intel совершила новый качественный скачок: был создан первый универсальный восьмиразрядный микропроцессор 8080 с 4500 транзисторами. С тех пор развитие микропроцессорной техники происходило поистине с фантастической скоростью: современный микропроцессор Pentium 4 содержит около 30 млн. транзисторов, т. е. является очень сложным техническим устройством.

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

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

  • полная система команд переменной длины — Complex Instruction Set Computer (CISC);

  • сокращенный набор команд фиксированной длины — Reduced Instruction Set Computer (RISC).

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

Процессор RISC-архитектуры работает необычайно быстро и способен выполнить любую из своих немногочисленных команд за один машинный такт, в то время как обычно на выполнение простой операции требуется 4—5 тактов. Так как RISC-архитектура оперирует очень ограниченным набором команд, то если нужной команды не оказывается, ее приходится реализовывать с помощью нескольких команд из имеющегося набора, что увеличивает размер командного кода.

Микропроцессор осуществляет следующие основные функции:

  • выборку команд из ОЗУ;

  • декодирование команд, т. е. определение их назначения;

  • выполнение операций, закодированных в командах;

  • управление пересылкой информации между своими внутренними регистрами, оперативной памятью и внешними устройствами;

  • обработку процессорных и программных прерываний;

  • обработку сигналов от внешних устройств и реализацию соответствующих прерываний;

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

Что же представляет собой микропроцессор с точки зрения программиста? Для программиста любой процессор состоит из набора регистров памяти различного назначения, которые определенным образом связаны между собой и обрабатываются в соответствии с некоторой системой правил. Наиболее важными регистрами микропроцессора являются счетчик адреса команд, указатель стека и регистр состояния.

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

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

Приведем наиболее распространенные варианты адресации:

  • данные находятся в одном из регистров микропроцессора;

  • данные входят непосредственно в состав команды, т. е. размещаются после кода операции;

  • данные находятся по адресу ОЗУ, а сам этот адрес содержится в одном из регистров микропроцессора;

  • данные находятся по адресу, который вычисляется по формуле адрес = базовый адрес + смещение.

Базовый адрес хранится в одном из регистров, а смещение может быть либо некоторой константой, либо содержимым другого регистра. Часто такой способ доступа к ОЗУ называют индексным, т. к. это похоже на нахождение элемента в одномерном массиве по его индексу.

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

Важную роль в работе микропроцессора играют прерывания. События, вызывающие прерывания делятся на две группы: фатальные и нефатальные. Фатальные события влекут прекращение выполнения программы, реакция на нефатальные события может быть отложена. Например, сложение с переполнением разрядной сетки — фатальное событие, после которого остановка неизбежна; попытка вывода на принтер, не готовый к приему информации, может быть отложена.

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

  • запоминает в стеке текущее состояние счётчика команд и содержимое регистра состояния;

  • передает управление на программу обработки данного прерывания;

  • после ее выполнения восстанавливает из стека значения своих регистров и продолжает выполнение прерванной программы.

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

Способ обмена микропроцессора с внешними устройствами может быть одним из двух следующих:

  • устройства ввода/вывода включаются в общее адресное пространство;

  • устройства ввода/вывода имеют своё собственное адресное пространство.

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

28 Система команд.

Система команд - соглашение о предоставляемых архитектурой средствах программирования, а именно: определённых типах данных, инструкций, системы регистров, методов адресации, моделей памяти, способов обработки прерываний и исключений, методов ввода и вывода.

1Команды пересылки данных

2Арифметические команды

3Логические команды

4Команды переходов

1)Команды пересылки данных занимают очень важное место в системе команд любого процессора. Они выполняют --следующие важнейшие функции:

-загрузка (запись) содержимого во внутренние регистры процессора;

-сохранение в памяти содержимого внутренних регистров процессора;

-копирование содержимого из одной области памяти в другую;

-запись в устройства ввода/вывода и чтение из устройств ввода/вывода.

2)Арифметические команды рассматривают коды операндов как числовые двоичные или двоично-десятичные коды. Эти команды могут быть разделены на пять основных групп:

-команды операций с фиксированной запятой (сложение, вычитание, умножение, деление);

-команды операций с плавающей запятой (сложение, вычитание, умножение, деление);

-команды очистки;

-команды инкремента и декремента;

-команда сравнения.

3)Логические команды выполняют над операндами логические (побитовые) операции, то есть они рассматривают коды операндов не как единое число, а как набор отдельных битов. Этим они отличаются от арифметических команд. -------Логические команды выполняют следующие основные операции:

-логическое И, логическое ИЛИ, сложение по модулю 2 (Исключающее ИЛИ);

-логические, арифметические и циклические сдвиги;

-проверка битов и операндов;

-установка и очистка битов (флагов) регистра состояния процессора (PSW).

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

Команды переходов без возврата делятся на две группы:

-команды безусловных переходов; (вызывают переход в новый адрес независимо ни от чего)

-команды условных переходов.( вызывают переход не всегда, а только при выполнении заданных условий)