- •Многоуровневая компьютерная организация.
- •Пример современной многоуровневой вычислительной машины с шестью уровнями
- •Типы структур вычислительных машин и систем
- •Структуры вычислительных машин
- •Структуры вычислительных систем
- •Глава 2. Цифровой логический уровень
- •Представление информации в вычислительных системах
- •Представление числовых данных в вм.
- •Числа в форме с фиксированной точкой.
- •Числа в форме с плавающей точкой
- •Размещение числовых данных в памяти
- •Представление нечисловой информации в вм
- •Символьная информация
- •Видеоинформация
- •Система кодирования чисел.
- •Прямой код.
- •Обратный код.
- •Модифицированные коды.
- •Физическое представление информации в вм.
- •Вентили, интегральные схемы.
- •Основные элементы эвм
- •Триггер.
- •Регистры.
- •Сумматоры
- •Счетчики.
- •Тактовые генераторы.
- •Микросхемы процессоров и шины
- •Микросхемы процессоров. Цоколевка типичного цп
- •Разрядность.
- •Типы процессоров
- •Регистры процессора
- •Типы шин Системные шины. Локальные шины
- •Системные шины
- •Локальные шины.
- •Иерархия шин
- •Вычислительная машина с одной шиной
- •Вычислительная машина с двумя видами шин.
- •Вычислительная машина с тремя видами шин
- •Принципы работы шины
- •Система прерываний.
- •Память.
- •Организация памяти.
- •Основные принципы.
- •Основные технические характеристики зу.
- •Иерархическая структура памяти.
- •Основная память.
- •Классификация устройств основной памяти.
- •Основные запоминающие устройства
- •Внешняя память
- •Конвейеры
- •Время
- •6.2.2 Суперскалярная архитектура.
архитектура и набор команд.
Под архитектурой вычислительной машины обычно понимают логическое построение ВМ, то есть то, какой машина представляется программисту. Впервые термин «архитектура вычислительной машины» был употреблен фирмой IBM при разработке машин семейства IBM 360 для описания тех средств, которыми может пользоваться программист, составляя программу на уровне машинных команд. Подобную трактовку называют «узкой», и охватывает она перечень и формат команд, формы представления данных, механизмы ввода/вывода, способы адресации памяти, определяет необходимые регистры, стеки.
Типы процессоров
Система команд – представляет собой совокупность команд, которые способен выполнить МП. Она включает полный список кодов операций, для каждой из которых указывается число операндов и допустимые способы их адресации.
В зависимости от набора и порядка выполнения команд процессоры подразделяются на четыре класса:
CISC (Complex Instruction Set Computer)-традиционная архитектура, в которой центральный процессор использует микропрограммы для выполнения исчерпывающего набора команд. Для CISC – архитектуры типичны:
наличие в процессоре сравнительно небольшого числа регистров общего назначения;
большое количество машинных команд, некоторые из них аппаратно реализуют сложные операторы языков высокого уровня;
разнообразие способов адресации;
множество форматов команд различной разрядности;
наличие команд, где обработка совмещается с обращением к памяти.
К типу CISC можно отнести практически все ВМ, выпускавшиеся до середины 1980-х годов, и значительную часть производящихся в настоящее время. В течении долгих лет разрабатывались всё более сложные и полные системы команд, однако анализ работы процессора показал, что в течении примерно 80 % времени выполняется примерно 20 % большого набора команд. В тоже время объем аппаратных средств, для реализации дополнительных команд, возрастает весьма существенно. Поэтому было решено оптимизировать выполнение небольшого по числу, но часто используемых команд.
RISC (Reduced Instruction Set Computer) - процессор, функционирующий с сокращённым набором команд. Современные процессоры RISC характеризуются:
упрощённый набор команд, имеющих одинаковую длину;
большинство команд выполняется за один такт процессора;
отсутствуют макрокоманды, усложняющие структуру процессора и уменьшающие скорость его работы;
взаимодействие с оперативной памятью ограничивается операциями пересылки данных;
резко уменьшается число способов адресации памяти (не используется косвенная адресация);
используется конвейер команд;
применяется высокоскоростная память.
Такой подход к архитектуре значительно сократил площадь процессора на кристалле. Это позволило увеличить число регистров, их более 100, и на 20-30 % уменьшить число обращений к оперативной памяти. RISC -технологии стали внедряться, начиная с процессора Pentium.
MISC- процессор, работающий с минимальным набором длинных команд.
Увеличение разрядности процессоров привело к идее укладки нескольких команд в одно слово (связку, bound) размером 128 бит. Это позволило использовать возросшую производительность компьютера и его возможность обрабатывать одновременно несколько потоков данных. Группа команд выполняется за один цикл работы процессора, порядок выполнения команд распределяется таким образом, чтобы в максимальной степени загрузить маршруты, по которым проходят потоки данных (суперскалярная архитектура), отбор групп происходит непосредственно в ходе выполнения прикладной программы.
VLIW (Very Long Instruction Word)- процессор, работающий с системой команд сверхбольшой разрядности.
Процессоры такой архитектуры имеют несколько операционных блоков различного либо одинакового назначения, которые могут работать параллельно. Для повышения эффективности загрузки операционных блоков создаётся специальный компилятор планирования, который перед выполнением прикладной программы проводит её анализ, и по множеству ветвей последовательности операций определяет группу команд, которые могут выполняться параллельно. Каждая группа образует одну сверхдлинную команду.
Процессор VLIW имеет следующие особенности:
большое количество регистров: 128 64-разрядных регистров общего назначения (целочисленных), 128 80-разрядных регистров арифметики с плавающей запятой, 64 1-разрядных предикатных 7регистра;
явный параллелизм в машинном коде (поиск зависимостей между командами производит не процессор, а компилятор);
предикация – команды из разных ветвей условного ветвления снабжаются предикатными полями (полями условий) и запускаются на выполнение параллельно;
данные из медленной основной памяти загружаются заранее (загрузка по предложению).
В таблице 2.6 приводится сравнительная оценка наиболее существенных различий в архитектуре CISC, RISC, VLIW.
Таблица 2.6
Характеристика |
CISC |
RISC |
VLIW |
Длина команды |
Варьируется |
Единая |
Единая |
Расположение полей в команде |
Варьируется |
Неизменное |
Неизменное |
Количество регистров |
Несколько (часто специализированных) |
Много регистров общего назначения |
Много регистров общего назначения |
Доступ к памяти |
Может выполняться как часть команд различных типов |
Выполняется только специальными командами |
Выполняется только специальными командами |
Регистры процессора
Во всех компьютерах имеется несколько регистров, которые видны на уровне команд. Они нужны там для того, чтобы контролировать выполнение программы, хранить временные результаты, а также для некоторых других целей. Обычно регистры, которые видны на микроархитектурном уровне, не видны на уровне команд.
Регистры уровня команд можно разделить на две категории: специальные регистры и регистры общего назначения. Специальные регистры включают счётчик команд и указатель стека, а также другие регистры с особой функцией. Регистры общего назначения содержат ключевые локальные переменные и промежуточные результаты вычислений. Их основной функцией является обеспечение быстрого доступа к часто используемым данным (обычно избегая обращений к памяти). Машины RISC с высокоскоростными процессорами и относительно медленной памятью обычно содержат как минимум 32 регистра общего назначения, а в новых процессорах их количество постоянно растёт. Регистры общего назначения могут быть симметричны и взаимозаменяемы, либо специализированы.
Кроме регистров, доступных на уровне команд, всегда существуют довольно большое количество специальных регистров, доступных только в привилегированном режиме. Эти регистры контролируют различные блоки кэш – памяти, основную память, устройства ввода – вывода и другие элементы аппаратного обеспечения машины. Данные регистры используются только операционной системой, поэтому компиляторам и пользователям необязательно знать об их существовании.
Есть один регистр управления, который представляет собой привилегированно – пользовательский гибрид. Это флаговый регистр, или PSW (Program State Word) – слово состояния программы. Этот регистр содержит различные биты, которые нужны ЦП. Самые важные биты – это коды условия. Они устанавливаются в каждом цикле АЛУ и отражают состояние результата предыдущей операции. Биты кода условия включают:
N – устанавливается, если результат был отрицательным ( Negative);
Z – устанавливается, если результат был равен 0 (Zero);
V – устанавливается, если результат вызвал переполнение (oVerflow);
C – устанавливается, если результат вызвал выход переноса самого левого бита (Carry out);
A – устанавливается, если произошёл выход переноса бита 3 (Auxiliary carry – служебный перенос);
P – устанавливается, если результат чётный (Parity).
Коды условия используются при сравнении и в условных переходах.
Содержимое флагового регистра меняется от машины к машине. Дополнительные поля указывают режим машины (например, пользовательский или привилегированный), трассовый бит (который используется для отладки), уровень приоритета процессора, а также статус разрешения прерываний.
Режимы процессора.
Расширение системы команд продолжается во всех новых моделях, в каждой новой модели вводятся дополнительные архитектурные решения такие как:
встроенный блок управления ОП, работающий в виртуальном режиме (что позволило увеличить предельно допустимый объем виртуальной памяти до 4 Гбайт при 16 Мбайт физической);
блоки, позволяющие реализовать мультизадачность;
блок защиты ОП;
блок проверки уровня привилегий, присваиваемых каждой задаче;
конвейер команд;
встроенный блок управления ОП;
микропрограммное управление операциями;
прогнозирование переходов по командам условной передачи управления;
скалярная архитектура ЦП (арифметический конвейер) и мультискалярная архитектура (несколько параллельно работающих арифметических конвейеров, одновременно выполняющих несколько машинных операций, благодаря чему появляется возможность за один такт МП выполнять более одной машинной операции) и т.д.
Все эти усовершенствования позволяют сделать ВМ мультипрограммной, многопользовательской и многозадачной. Процессоры разных типов значительно отличаются друг от друга по количеству и размерности регистров, размерности адресных шин. Для совмещения программ, написанных для разных типов процессоров, стали использовать несколько режимов работы процессора. Pentium II имеет 3 операционных режима, в двух из которых он работает как 8086.
Все 32-разрядные процессоры Intel (и совместимые с ними), начиная с 80386-го, могут выполнять программы в нескольких режимах. В зависимости от режима процессора изменяется схема управления памятью системы и задачами. Процессоры могут работать в трёх режимах:
реальном;
виртуальном;
защищённом.
Реальный режим. В первых IBM PC использовался процессор i8086, который мог использовать 16-разрядные внутренние регистры, выполнять 16-разрядные команды и адресовать 1 Мбайт (220 байт) памяти, используя 20 разрядов для адреса. Всё программное обеспечение разрабатывалось с учётом этих аппаратных особенностей. Последующие процессоры, начиная с i80286, имеют увеличенную ширину адресной шины (24, 32 и 64 разряда) и 32-х (64) - разрядные внутренние регистры, но все они обязаны поддерживать данный режим, т.е. использовать только 16-разрядные команды и 20 разрядные адреса.
В реальном режиме все особенности, которые были добавлены к процессорам со времён системы 8088, отключаются и PentiumII работает как простой компьютер 8088. Для программного обеспечения этого типа обычно используется однозадачный режим (одновременно может выполняться только одна задача), нет встроенной защиты памяти (при выполнении нескольких задач одна программа может испортить код или данные другой программы). Если программа совершает ошибку, то происходит полный отказ системы. В реальном режиме вся основная память (ОП) делится на сегменты (длина сегмента - 64 Кбайта). Адрес ОП разделяется на две части: номер сегмента в ОП (база сегмента) и номер ячейки внутри данного сегмента (смещение относительно начала сегмента). Базовый адрес сегмента образуется добавлением к номеру сегмента справа четырех нулей. Поскольку последние четыре разряда абсолютного (физического) адреса сегмента всегда нулевые, то они отбрасываются, при этом сегмент может начинаться не с любой ячейки ОП, а только с «параграфа» - начала 16-байтного блока ОП.
Номер ячейки внутри сегмента (смещение) называется также исполнительным адресом. В большинстве случаев в адресной части команды указывается именно исполнительный адрес - номер сегмента чаще всего подразумевается по умолчанию. Однако допускается указание и полного адреса ОП в виде префиксной структуры: «сегмент: смещение». Если сегмент в команде не указывается, значит, работа ведется внутри текущего сегмента (характер выполняемой работы и какой из сегментных регистров определяет текущую базу сегмента, зависят от вида выполняемой команды).
Номер сегмента так же, как и смещение, имеет длину 2 байта. При вычислении физического адреса ОП сегмент и смещение суммируются, но сегмент перед суммированием сдвигается влево на 4 бита. В результате суммирования образуется физический адрес ОП длиной 20 бит.
Виртуальный режим. На следующей ступени находится виртуальный режим 8086, который делает возможным выполнение старых программ, написанных для 8088, с защитой. Чтобы запустить старую программу 8088, операционная система создаёт специальную изолированную среду, которая работает как процессор 8088, за исключением того, что если программа даёт сбой, операционной системе передается соответствующая информация и полного отказа системы не происходит. Когда пользователь WINDOWS начинает работу с MS-DOS, то программа, которая действует там, запускает в виртуальном режиме 8086, чтобы программа WINDOWS не могла вмешаться в программы MS-DOS.
Механизм страничной виртуальной памяти позволяет разместить часть оперативной памяти на диске. При этом размер виртуальной памяти, предоставляемый программам, ограничивается размером свободной памяти на диске.
Защищённый режим. Начиная с процессора 80286, появляется возможность работать в защищённом режиме, имеется аппаратная поддержка многозадачных операционных систем, значительно ускоряющая и упрощающая процесс переключения задач. Это поддержка активно используется всеми мультизадачными операционными системами и оболочками, разработанными для компьютера IBM PC.
Для увеличения адресного пространства до 16 Мбайт в процессоре 80286 пришлось добавить ещё 4 адресные линии (24) и линии управления для них. Новый метод адресации позволил изолировать адресные пространства отдельных задач друг от друга. При этом прикладная программа, работающая в среде операционной системы, не может случайно или намерено разрушить целостность самой операционной системы.
В защищённом режиме программа может записывать данные только в те области, которые выделены ей операционной системой.
Процессоры 80386 и выше имеют 32- разрядные регистры, число адресных линий увеличено до 32(4 Гбайт), в них реализована концепция страничной виртуальной памяти, возможной только в защищённом режиме.
В этом режиме доступны 4 уровня привилегий, которые управляются битами во флаговом регистре. Уровень 0 соответствует привилегированному режиму на других компьютерах и имеет полный доступ к машине. Этот уровень используется операционной системой. Уровень 3 предназначен для пользовательских программ. Он блокирует доступ к определённым командам и регистрам управления, чтобы ошибки какой-нибудь пользовательской программы не привели к поломке всей машины. Уровни 1 и 2 используются редко.
Pentium II имеет огромное адресное пространство. Память разделена на 16384 сегмента, каждый из которых идёт от адреса 0 до адреса 232-1. Однако большинство операционных систем (включая UNIX и все версии WINDOWS) поддерживают только один сегмент, поэтому большинство прикладных программ видят линейное адресное пространство в 232 байтов, а иногда часть этого пространства занимает сама операционная система. Каждый байт в адресном пространстве имеет свой адрес. Слова состоят из 32 битов. Байты нумеруются справа налево, то есть самый первый адрес соответствует младшему байту. В защищенном режиме базовые адреса сегментов хранятся в дескрипторных таблицах и имеют длину 24 или 32 бита (в зависимости от типа МП). В сегментных же регистрах хранится селектор, содержащий номер дескрипторной таблицы и дескрипторное смещение, т.е. порядковый номер дескриптора (в котором и хранится базовый адрес сегмента) в данной дескрипторной таблице.
Компьютерные шины. Характеристики шин.
Шина – набор параллельно соединенных проводов для связи компонентов компьютера, по которым передаются адреса, данные и сигналы.
Шины можно разделить на две группы в соответствии с выполняемыми функциями:
внутренние - используются для передачи данных в АЛУ и из АЛУ;
внешние - связывают процессор с памятью и УВВы.
Шина памяти
Контроллер
шины
Память
Центральный
процессор
Шина ввода-вывода
Модуль ввода -
вывода
Модуль ввода -
вывода
Рис.
2.28 Компьютерная система с несколькими
шинами
Первые ПК имели одну внешнюю шину, которая называлась системной шиной. Она состояла из нескольких медных проводов (от 50 до 100), которые встраивались в материнскую плату. На материнской плате находились разъемы на одинаковом расстоянии друг от друга для микросхем памяти и УВВы. Современные ПК обычно содержат специальную шину между центральным процессором и памятью и, по крайней мере, ещё одну шину для УВВы (рис. 2.28). Часть шин скрыта внутри интегральной схемы или доступна только в пределах печатной платы. Некоторые шины имеют выходы, доступные для подключения дополнительных устройств (гнезда подключения соответствуют определенным стандартам для возможности подсоединения к шине устройств различных производителей). На схемах шины изображают в виде широких стрелок, указывая тем самым, что информация передается одновременно по параллельным проводам.
Английский эквивалент термина «шина» - «bus» восходит к латинскому слову omnibus, означающему «для всего»8. Этим стремятся подчеркнуть, что шина является магистралью, способной обеспечить всевозможные виды трафика.
Упрощенно шину можно представить как совокупность сигнальных линий, объединенных по их назначению (данные, адреса, управление). Каждая линия способна передавать сигналы, представляющие двоичные цифры 1 и 0. При совместном использовании несколько линий могут обеспечить одновременную (параллельную) передачу двоичных чисел. Физически линии шины реализуются в виде отдельных проводников, как полоски проводящего материала на монтажной плате либо как алюминиевые или медные проводящие дорожки на кристалле микросхемы.
Операции на шине называются транзакциями. Шинная транзакция состоит из двух частей: посылку адреса и прием (или посылку) данных. Устройство, инициировавшее обмен и управляющее им, называют ведущим (bus master). Устройство, необладающее свойством инициирования транзакции, называется ведомым.
Шины характеризуются следующими основными параметрами:
Ширина шины - количество адресных и управляющих линий в шине. Ширина шины адреса определяет максимально возможный размер адресного пространства. Чем больше адресных линий, тем к большему объёму памяти может обращаться процессор. Если шина содержит n адресных линий, тогда процессор может использовать её для обращения к 2n различным ячейкам памяти. Для памяти большой ёмкости необходимо много адресных линий. Чем больше ширина шины, тем больше требуется проводов и физического пространства (разъёмы большего размера). Ширина шины данных определяет количество битов информации, которое может быть передано по шине за одну транзакцию (цикл шины). Типовая ширина шины данных 32, 64 или 128 бит, т.е. кратная целому числу байтов.
Синхронизация шин. Синхронная шина содержит линию, которая запускается кварцевым генератором. Синхронная передача быстрая. Синхронные протоколы требуют меньше сигнальных линий, проще для реализации и тестирования, но привязаны к конкретной максимальной тактовой частоте и из-за проблемы перекоса синхросигналов не могут быть длинными. По синхронному протоколу обычно работают шины «процессор-память». Недостатком синхронной шины можно считать то, что если шина соединяет ряд устройств, работающих с разной скоростью, то шина подстраивается под самое медленное устройство и более быстрые не могут использовать свой полный потенциал.
Асинхронная шина не содержит задающего генератора. Начало очередного события на шине определяется не тактовым импульсом, а предшествующим событием и следует непосредственно за этим событием. Каждая совокупность сигналов, помещаемых на шину, сопровождается соответствующим синхронизирующим сигналом, называемым стробом. Скорость асинхронной пересылки данных диктуется ведомым. Асинхронные протоколы по своей сути являются самосинхронизирующимися, поэтому шину могут совместно использовать устройства с различным быстродействием, построенные на базе старых или новых технологий. Шины ввода/вывода обычно реализуются как асинхронные.
Арбитраж шин – определение порядка обработки прерываний от микросхем ввода/вывода, центрального процессора.
Принципы работы шины. Шины могут работать с использованием нескольких типов циклов работы. Обычно задающее устройство (обычно центральный процессор) считывает информацию из подчиненного устройства (обычно из памяти) или записывает в него информацию, при этом за раз передаётся одно слово. При использовании кэш-памяти вызывается вся строка КЭШа (16последовательных 32-битных слов), появляются новые дополнительные сигналы. Другим важным циклом является цикл обработки прерываний (работа с контроллером прерываний), когда при работе с устройствами ввода-вывода центральный процессор ожидает прерывания после завершения работы.
Существуют чёткие правила работы шины – протокол шины, а также технические требования на платы, выпускаемые различными производителями
Типы шин Системные шины. Локальные шины
По целевому назначению шины подразделяются на три группы:
шины «процессор-память»;
шины ввода/вывода;
системные шины.
Шина «процессор-память» обеспечивает непосредственную связь между центральным процессором и основной памятью. Эту шину часто называют шиной переднего плана FSB (Front-Side Bus). Интенсивный обмен информацией между процессором и памятью требует, чтобы полоса пропускания шины (количество информации, походящей по шине в единицу времени) была наибольшей. Роль этой шины иногда выполняет системная шина, но выгоднее, если обмен между ЦП и ОП ведется по отдельной шине. Для связи процессора с кэш-памятью второго уровня используется шина заднего плана – BSB (Back-Side Bus), позволяющая вести обмен с большей скоростью, чем FSB.
Шина ввода/вывода служит для соединения процессора (памяти) с устройствами ввода/вывода (УВВ). Ввиду разнообразия таких устройств шины ввода/вывода унифицируются и стандартизируются. Связи с большинством УВВ (кроме видеосистем) не требуют от шины высокой пропускной способности, учитывается стоимость конструктива и соединительных разъемов. В шинах используется меньше линий, длина линий может быть весьма большой.
Память
Устройства ввода
Устройства вывода
ЦП
Рис.
2.29 Структура системной шины
Системная шина служит для физического и логического объединения всех устройств вычислительной машины. Основные устройства машины, как правило, размещаются на одной монтажной плате. Системная шина состоит из нескольких сотен линий, которые можно подразделить на три функциональные группы (рис. 2.29): шину адреса, шину данных и шину управления. Для передачи данных от одного модуля к другому модуль должен получить в свое распоряжение шину и передать по ней данные. Для получения модулем данных от другого модуля он должен получить доступ к шине, с помощью соответствующих линий управления и адреса передать в другой модуль запрос, ожидать данных от запрашиваемого модуля. Физически системная шина представляет собой совокупность параллельных электрических проводников (металлические полоски на печатной плате). Шина подводится ко всем модулям, каждый из них подсоединяется ко всем или некоторым ее линиям. Если ВМ конструктивно выполнена на нескольких платах, то все линии шины выводятся на разъемы, объединяемые проводниками на общем шасси.
Среди стандартизованных системных шин универсальных ВМ наиболее известны шины Unibus, Fastbus, Futurebus, VME, NuBus, Multibus-II. Персональные компьютеры, как правило, строятся на основе системной шины в стандартах ISA, EISA или MCA.
Системные шины
Шина ISA . Системная шина IBM PC и IBM PC XT была предназначена для одновременной передачи 8 бит информации и 20 разрядов адреса. Для работы с внешними устройствами в этой шине были предусмотрены также 8 линий аппаратных прерываний и 4 линии для требования прямого доступа в память. Для подключения плат расширения использовались специальные 62-контактные разъемы. Системная шина и микропроцессор синхронизировались от одного тактового генератора с частотой 4,77 МГц. Теоретически скорость передачи данных могла достигать более 4,5 Мбайт/с.
В компьютерах PC AT, использующих микропроцессор i80286, впервые стала применяться новая системная шина ISA (Industry Standart Architecture). Она отличалась наличием дополнительного 36-контактного разъема для соответствующих плат расширения. Теперь можно было передавать параллельно уже 16 разрядов данных, а благодаря 24 адресным линиям напрямую обращаться к 16 Мбайтам системной памяти. Количество линий аппаратных прерываний в этой шине было увеличено с 8 до 16, а каналов DMA – с 4 до 8. Шина ISA стала работать асинхронно с процессором на частоте 8 МГц, что соответствовало максимальной скорости передачи 16 Мбайт/с.
Системная шина EISA (Extended Industry Standart Architecture) обеспечила 32-разрядную адресацию памяти, 32-разрядную передачу данных, в том числе и в режиме DMA, улучшенную систему прерываний и арбитраж DMA, автоматическую конфигурацию системы и плат расширения. В EISA-разъем на системной плате компьютера помимо специальных EISA-плат может вставляться либо 8-, либо 16-разрядная плата расширения, предназначенная для обыкновенной PC AT с шиной ISA. EISA-разъемы имеют два ряда контактов, один из которых (верхний) использует сигналы шины ISA, а второй (нижний) – соответственно EISA. Контакты в соединителях EISA расположены так, что рядом с каждым сигнальным контактом находится контакт «земля». Благодаря этому сводится к минимуму вероятность генерации электромагнитных помех, а также уменьшается восприимчивость к таким помехам.
Шина EISA позволяет адресовать 4-Гбайтное адресное пространство, доступное современным микропроцессорам. Однако доступ к этому пространству могут иметь не только центральный процессор, но и платы управляющих устройств типа bus master – главного абонента (то есть устройства, способные управлять передачей данных по шине), а также устройства, имеющие возможность организовать режим DMA. Теоретически максимальная скорость передачи по шине EISA в так называемом пакетном режиме (burst mode) может достигать 33 Мбайт/с.
EISA работает с частотой около 8–10МГц, а скорость передачи увеличивается в основном благодаря увеличению разрядности шины.
Шина MCA (Microchanel - Микроканал) появилась в 1987году, разработана компанией IBM.Имеется два вида: 16- и 32- разрядная шина. 32- разрядная шина работает с частотой 10 МГц, со скоростью передачи данных до 20 Мб/с, позволяет адресовать до 4-х гигабайт. Карта расширения могла быть самостоятельно распознана и автоматически (программным путём) конфигурирована компьютером. Основным недостатком является несовместимость с шиной ISA, для которой были разработаны основные устройства, поэтому данная архитектура не нашла широкого распространения Шина в основном используется в мощных файл-серверах, где требуется обеспечение высоконадёжного производительного ввода/вывода.
Локальные шины.
Пропускная способность шин ISA, EISA и MCA оказалась недостаточной для программ с графическим пользовательским интерфейсом, решением этого вопроса явились локальные шины.
Локальная шина (local bus) обеспечивает непосредственный доступ микропроцессора к периферийным устройствам, минуя системную шину. Шина работает с частотой, соответствующей частоте процессора. Передачей данных управляет не центральный процессор, а плата расширения (мост), который высвобождает микропроцессор для выполнения других работ. Локальная шина обслуживает наиболее быстрые устройства: память, дисплей, дисковые накопители (обслуживание сравнительно медленных устройств - мышь, модем, принтер и др.- производится системной шиной типа ISA, EISA). Наибольшее распространение получили две локальные шины VL-Bus и PCI
Шина VL-Bus является как бы продолжением процессорной шины. Стандарт шины VL 1.0 поддерживает 32-разрядный тракт данных. Стандарт 2.0 рассчитан на 64 – битовую шину. Эта локальная шина проста, имеет низкую стоимость.
Известны два промышленных стандарта локальных шин: шина VL-bus (или VLB), предложенная ассоциацией VESA (Video Electronics Standards Association), и шина PCI (Peripheral Component Interconnect), разработанная фирмой Intel. Обе эти шины позволяют таким периферийным устройствам, как видеоадаптеры и контроллеры накопителей, работать с тактовой частотой до 66 МГц и выше.
Если VL-bus является, по сути, расширением шины процессора, то PCI по своей организации более тяготеет к системным шинам. В качестве устройств, подключаемых к VL-bus, выступают контроллеры накопителей, видеоадаптеры и сетевые платы. Конструктивно VL-bus выглядит как короткий соединитель типа МСА (112 контактов), установленный, например, рядом с разъемами расширения ISA или EISA. При этом 32 линии используются для передачи данных и 30 – для передачи адреса. Максимальная скорость передачи по шине VL-bus теоретически может составлять около 130 Мбайт/с. Стандарт VL-bus (версия 2) предусматривает использование 64-разрядной шины данных и увеличение количества разъемов расширения (предположительно, три разъема на 40 МГц и два на 50 МГц). Ожидаемая скорость передачи теоретически составляет 400 Мбайт/с. Количество подключаемых устройств обычно не превышает 2 – 3. Данный тип шины широко использовался в основном для компьютеров на базе 486-х микропроцессоров.
Шина PCI (взаимосвязь периферийных компонентов) занимает особое место в архитектуре ПК, являясь мостом между локальной шиной процессора и шиной ввода/вывода ISA/EISA и MCA (Т:мост PCI связывает ЦП, память и шину PCI). Эта шина разрабатывалась для Pentium-системы, но хорошо сочетается с 486 процессорами и не INTEL'овскими процессорами.
Спецификация шины PCI обладает несколькими преимуществами перед основной версией VL-bus. Так, использовать РСI можно вне зависимости от типа процессора. Именно поэтому данная шина может использоваться и в иных компьютерных платформах. К шине PCI могут подключаться до 10 устройств. В отличие от VL-bus, шина PCI работает на фиксированной тактовой частоте 33 МГц и предусматривает режим автоконфигурации адаптеров. Шина PCI может использовать 124-контактный (32-разрядная) или 188-контактный разъем (64-разрядная передача данных), при этом теоретически возможная скорость обмена составляет соответственно 132 и 264 Мбайт/с. В современных компьютерах на базе процессоров Pentium используется в основном шина PCI.
Шина AGP (Accelerated Graphics Port-порт ускоренного графического вывода) была разработана фирмой Intel специально для работы с видеокартой (повышение разрешающей способности и цветности монитора привело к необходимости повышение скорости передачи до 250 Мбит/с), при частоте 66 Мгц имеет 32-разрядную шину данных. Шина позволяет использовать конвейеризацию обращений, то есть посылать данные в виде непрерывных пакетов. Имеется возможность постановки в очередь до 256 запросов и поддержания двух очередей для операций чтения/записи с высоким и низким приоритетом. Сдвоенная передача позволяет иметь пропускную способность при частоте 66 Мгц до 528 Мбайтс, работать на частоте до 100 Мгц и выше с более высокой пропускной способностью. Учетверенная передача позволяет передавать до 1056 Мбайтс. Схемы AGP взаимодействуют непосредственно с четырьмя источниками информации:
процессор (кэш-память второго уровня);
оперативная память;
графическая карта AGP;
шина PCI.
AGP функционирует на скорости процессорной шины.
Шина UMA (Unified Memory Architecture – унифицированная архитектура памяти) используется для работы с видеокартами и позволяет использовать для видеопамяти часть оперативной памяти, выделяет ее динамически в зависимости от того, сколько ее потребуется.
Шина USB. В середине 90-х годов представители 7 компаний (Compaq, DEC, IBM, Intel, Microsoft, NEC, Northen Telecom) разработали протокол согласования для новой шины, оптимально подходящую для подсоединения к низкоскоростным устройствам.
Некоторые требования проекта:
пользователь не должен открывать компьютер, чтобы установить новые УВВ;
должен быть только один вид кабеля, подходящий для подсоединения всех устройств;
устройства ввода-вывода должны получать питание через кабель;
возможность подключения до 127 устройств;
система должна поддерживать режим реального времени (например, звук, телефон);
новое устройство можно устанавливать во время работы компьютера, без последующей его перезагрузки;
производство новой шины и УВВ для неё не должно требовать больших затрат.
Результатом их работы стала шина USB (Universal Serial Bus – универсальная последовательная шина). Она работает с клавиатурой, мышью, фотоаппаратом, сканером, цифровым телефоном и другими низкоскоростными устройствами. Общая пропускная способность шины 1,5Мбайт/с. Шина USB может работать в двух режимах: в низкоскоростном, в котором работают клавиатура, мышь и т.д., со скоростью передачи 190 Кбайт/с, и высокоскоростном режиме, со скоростью до 1 Мбайт/с, что позволяет работать с максимальной скоростью принтера.
Ш
Иерархия шин
При подключении к шине большого числа устройств ее пропускная способность падает, так как слишком частая передача прав управления шиной от одного устройства к другому приводит к ощутимым задержкам. Это явилось причиной использования во многих ВМ нескольких шин, образующих иерархию.
Вычислительная машина с одной шиной
В структурах ВМ с одной шиной имеется одна системная шина, которая обеспечивает обмен информацией между процессором и памятью, между УВВ и процессором или памятью (рис. 2.30).
Системная шина
Процессор
Память
Устройства
ввода/вывода
Рис.
2.30 Структура взаимосвязей с одной
шиной
Данная структура взаимосвязей является простой и имеет низкую стоимость, но не в состоянии обеспечивать высокие интенсивность и скорость транзакций, является «узким местом» ВМ.
Вычислительная машина с двумя видами шин.
В данном случае используются системная шина, связывающая процессор и память, несколько шин ввода/вывода (рис. 2.31). УВВ подключаются к шинам ввода/вывода, которые обеспечивают основной трафик, не связанный с выходом на процессор или память. Адаптеры шин обеспечивают буферизацию данных при их пересылки системной шиной и контроллерами УВВ. Это позволяет ВМ поддерживать работу большого числа устройств ввода/вывода, обеспечивает обмен информации с УВВ, существенно снижает нагрузку на скоростную шину процессор – память, способствует повышению общей производительности ВМ.
Системная шина
Процессор
Память
Устройства
ввода/вывода
Рис.
2.31 Структура взаимосвязей с двумя
шинами
Вычислительная машина с тремя видами шин
Для подключения быстродействующих периферийных устройств в систему шин может быть добавлена высокоскоростная шина расширения (рис. 2.32).
Шины ввода/вывода подключаются к шине расширения, далее через адаптер к шине «процессор - память». Данный подход в еще большей степени снижает нагрузку на шину «процессор - память».
Процессор
Память
Шина
ввода/вывода
Шина
ввода/вывода
Устройства
ввода/вывода
Рис.
2.32 Структура взаимосвязей с тремя
шинами
Принципы работы шины
При стандартном цикле шины задающее устройство (обычно центральный процессор) считывает информацию из подчиненного устройства (обычно из памяти) или записывает в него информацию, при этом передается одно слово.
При использовании кэш – памяти желательно вызывать всю строку кэш – памяти, то есть 16 последовательных 32-битных слова. Часто передача блоками может быть более эффективной, чем такая последовательная передача информации. Когда начинается чтение блока, задающее устройство (ведущий) сообщает подчиненному устройству, сколько слов надо передать. В ответ по одному слову выдается информация до тех пор, пока не будет передано требуемое количество слов.
В многопроцессорных системах предусмотрен специальный цикл шины, который дает возможность любому процессору считать слово из памяти, проверить и изменить его, записать обратно в память, причем весь этот процесс происходит без освобождения шины. Такой цикл не дает возможности другим центральным процессорам использовать шину и мешать работе первого процессора.
Цикл для осуществления прерываний – когда центральный процессор командует устройству ввода/вывода произвести какое-либо действие, то он ожидает прерывания после завершения работы. Для передачи сигнала прерывания требуется шина. Одновременно несколько устройств могут захотеть произвести прерывания, то есть может возникнуть конфликтная ситуация. Чтобы избежать подобных проблем каждому устройству приписывается определенный приоритет, используется централизованный арбитр для распределения приоритетов. Существует стандартный контроллер прерываний (микросхема Intel 8259A), который определяет на какой именно вход поступил сигнал прерывания и помещает номер входа на информационную шину. Центральный процессор использует этот номер для обращения в таблицу указателей (таблица векторов прерывания), чтобы найти адрес процедуры, производящей соответствующее прерывание.
Система прерываний.
Ситуация, требующая каких – либо действий (реакции) микропроцессора при возникновении определенного события, называется прерыванием (interrupt).
Необходимую реакцию на события обеспечивает система прерывания.
Под системой прерывания понимают комплекс аппаратных и программных средств, обеспечивающих выявление и обработку прерываний.
Аппаратные прерывания обеспечивают реакцию процессора на события, происходящие асинхронно по отношению к исполняемому коду программы. Процессоры семейства х86 поддерживают таблицу, содержащую определения до 256 процедур обслуживания прерываний (таблица векторов прерываний, размещается в начальных ячейках оперативной памяти).
Прерывания делятся на следующие категории:
Внешние аппаратные прерывания (маскируемые и немаскируемые) – возникают в результате событий вне МП (нажатие клавиши клавиатуры).
Внутренние аппаратные прерывания – вырабатываются самим процессором или сопроцессором (попытка деления на нуль).
Программно-вызываемые прерывания – инициируются выполняемой программой (любые функции ввода – вывода информации, которые требуют сервисных услуг DOS).
Последний тип прерываний в прямом смысле прерыванием не является, поскольку представляют собой лишь специфический способ вызова процедур – не по адресу, а по номеру в таблице.
Обработка прерываний сводится к приостановке исполнения программы, вместо которой начинает выполняться программа, называемая обработчиком прерываний. После её реализации выполнение прерванной программы может быть продолжено, что зависит от типа прерывания.
Основные действия обработчика прерываний сводятся к следующему:
условия возникновения прерывания проверяются процессором на границе инструкций. Это означает, что все шинные операции текущей инструкции будут завершены до начала обработки прерывания;
процессор сохраняет в стеке слово состояния (регистры флагов, кодового сегмента, указатель следующей инструкции), сбрасывает флаг разрешения прерываний (IF) и вызывает процедуру обработки, точка входа в которую описана в таблице прерываний, хранящейся в ОЗУ;
выполнение процедуры обработки. Процедура обработки завершается инструкцией (IRET), по которой из стека восстанавливаются автоматически сохраненные регистры (в регистре флагов прерывания разрешены);
процессор начинает выполнение инструкции, следующей за той, после которой исполнялось прерывание.
Если имеется только одно устройство ввода-вывода, то сложностей с обработкой прерываний не возникает. Однако в реальных условиях существует некоторая вероятность, что во время выполнения процедуры обработки прерывания одного устройства другое устройство ввода-вывода тоже захочет произвести свое прерывание. Для разрешения подобной ситуации каждому из устройств приписывается определенный приоритет (высокий для более критичных и низкий для менее критичных устройств). Центральный процессор тоже должен иметь приоритеты, которые определяются по одному из полей слова состояния программы.
Если выполняется процедуры обработки прерывания с приоритетом n , то попытка другого устройства с более низким приоритетом будет игнорироваться, пока процедуры обработки прерывания не завершится и пока центральный процессор не возвратиться к выполнению программы более низкого приоритета. С другой стороны, прерывания, поступающие от устройств с более высоким приоритетом, должны выполняться без задержек.
Со времен процессора 8088 все процессоры Intel имеют два уровня (приоритета) прерываний: маскируемые и немаскируемые прерывания. Немаскируемые прерывания обычно используются только для сообщения об очень серьезных ситуациях, например об ошибках четности в памяти. Все устройства ввода- вывода используют одно маскируемое прерывание.
Память.
Организация памяти.
Основные принципы.
Память компьютера предназначена для кратковременного и долговременного хранения информации – кодов команд и данных. Информация в памяти хранится в двоичных кодах, каждый бит – элементарная ячейка памяти - может принимать значения «0» или «1». Каждая ячейка памяти имеет свой адрес, однозначно её идентифицирующий в определенной системе координат. Минимальной адресуемой ячейкой хранения информация в памяти обычно является байт, состоящий, как правило, из 8 бит.
Существуют процессоры и компьютеры с разрядностью обрабатываемого слова не кратной 8 (например: 5, 7, 9 …), и их байты не восьмибитные. Обычно длина машинного слова составляет от 16 до 64 бит. Последовательные байты имеют адреса 0, 1, 2 и т.д. при этом старшие байты слова имеют больший адрес, чем младшие (адресом слова является адрес его младшего байта). Это так называемый обратный порядок байтов, он стал использоваться в 8088 процессоре с шиной данных в один байт.
Со времени появления больших (по размеру) компьютеров сложилось деление памяти на внутреннюю и внешнюю. Под внутренней подразумевалась память, расположенная внутри процессорного «шкафа» (или плотно к нему примыкающая). Классификация памяти применительно к ПК:
процессорная память – наиболее скоростной вид памяти (регистры, кэш-память первого уровня) обычно размещается на общем кристалле с центральным процессором, регистры общего назначения вообще считаются частью ЦП;
внутренняя память – электронная (полупроводниковая) память, устанавливаемая на системной плате или на платах расширения. К внутренней памяти относят основную память, кэш-память второго и последующих уровней;
внешняя память – медленные запоминающие устройства большой емкости, реализованные в виде устройств с различными принципами хранения информации и обычно с подвижными носителями, называют внешней память, поскольку к ядру ВМ они подключаются аналогично устройствам ввода/вывода.
В настоящее время в состав внешней памяти входят устройства магнитной (дисковой и ленточной) памяти, оптической и магнитооптической памяти, память на звуковой плате, память у принтера и т.д., то есть память периферийных устройств. Устройства внешней памяти могут размещаться как в системном блоке компьютера, так и в отдельных корпусах.
Для процессора непосредственно доступной является внутренняя память, доступ к которой осуществляется по адресу, заданному программой. Большинство компьютеров имеют линейное адресное пространство, которое простирается от адреса 0 до обычно 232 байтов или 264 байтов. Для внутренней памяти характерен одномерный (линейный) адрес, который представляет собой одно двоичное число определенной разрядности.
Внутренняя память подразделяется на оперативную, информация которой может изменяться процессором в любой момент времени, и постоянную, информацию которую процессор может только считывать. Когда предполагается, что программа будет находиться в памяти постоянно, она обычно располагается в постоянном запоминающем устройстве (ПЗУ, ROM - Read Only Memory - память только для считывания). ПЗУ обычно является кристаллом интегральной микросхемы с неизменяемой программой.
Оперативная память - это основная часть внутренней памяти, служит для хранения информации и для дальнейшей ее передачи процессору, жесткому диску, другим внешним устройствам. Она располагается в специальных разъемах на материнской плате. В оперативной памяти хранятся программы и данные, с которыми работает центральный процессор. Оперативная память обозначают как RAM (Random Access Memory - память с произвольным доступом).Понятие произвольного доступа означает, что можно обращаться к ячейкам оперативной памяти, начиная с любого адреса в любом порядке, причем как по чтению, так и по записи.
Оперативная память изготавливается в виде микросхем, крепящихся на специальных пластинах. При включении ВМ операционная система загружается в оперативную память, затем в нее загружаются программы приложения (например Word) и данные (например документы). Центральный процессор управляет загрузкой программы, данных в оперативную память и далее работает с данными, находящимися в оперативной памяти, а не на жестком диске. Если требуются данные с жесткого диска, то информация предварительно загружается в оперативную память, после обработки ЦП она вначале загружается в оперативную память и затем переносится на жесткий диск. То есть центральный процессор работает с инструкциями и данными, которые находятся в оперативной памяти, а все другие устройства (диски, магнитная лента, модемная связь и пр.) действуют через нее.
Внешняя память адресуется более сложным образом - каждая её ячейка имеет свой адрес внутри некоторого блока, который, в свою очередь, имеет многомерный адрес. Во время физических операций обмена данный блок может быть считан или записан только целиком. В случае одиночного дискового накопителя адрес блока будет трехмерным: номер поверхности (головки), номер цилиндра и номер сектора. В современных накопителях этот трехмерный адрес часто заменяют линейным номером – логическим адресом блока, а его преобразованием в физический адрес занимается внутренний контроллер накопителя. Поскольку дисковых накопителей в компьютере может быть несколько, то в адресации дисковой памяти участвует и номер накопителя, и номер канала интерфейса. С такой сложной системой адресации процессор справляется только с помощью программного драйвера, в задачу которого в общем случае входит копирование некоторого блока данных из оперативной памяти в дисковую и обратно. Дисковая память является внешней памятью с прямым доступом, что подразумевает возможность обращения к блокам (но не ячейкам) в произвольном порядке. Память на ленточных носителях имеет последовательный способ доступа. В ней информация хранится в виде блоков фиксированной или переменной длины, в пределах одного носителя эти блоки имеют последовательные адреса. Для доступа к какому-либо блоку устройство должно найти маркер начала ленты (тома), после чего последовательным холостым чтением блока за блоком дойти до требуемого места и только тогда производить сами операции обмена данными.
Основные технические характеристики зу.
Ёмкость ЗУ – характеризуется числом битов либо байтов, которое может храниться в ЗУ.
Единица пересылки. Для основной памяти единица пересылки определяется шириной шины данных и обычно равна длине слова. Для внешней памяти единица пересылки – блок.
Методы доступа к данным. Устройства оперативной памяти различаются на:
адресные ЗУ – каждый элемент памяти имеет адрес (код адреса), соответствующий его пространственному расположению в ЗУ. После приема код дешифрируется и производится выборка из элементов конкретной группы битов или слов. По данному методу доступа работают устройства основной памяти;
ассоциативные ЗУ – поиск данных происходит по конкретному содержимому (поиск ячеек, содержащих такую информацию, в которой значение отдельных битов совпадает с состоянием одноименных битов в заданном образце), независимо от его адреса. Ассоциативные ЗУ, хотя и являются более сложными, обеспечивают более быстрый поиск и выбор хранимых данных, используются в кэш-памяти.
Для устройств внешней памяти характерны:
последовательный доступ – информация хранится в виде последовательности блоков памяти (записей). Для доступа к нужному элементу необходимо прочитать все предшествующие ему данные. Время доступа зависит от местоположения требуемой записи на носителе информации. Пример: ЗУ на магнитной ленте;
прямой доступ – каждая запись имеет свой уникальный адрес, отражающий ее физическое размещение на носителе информации. При обращении осуществляется адресный доступ к началу записи с последующим последовательным доступом к определенной единице информации внутри записи. Данный способ доступа используется для магнитных дисков.
Быстродействие. Для количественной оценки используются 3 параметра:
время доступа. Для памяти с произвольным доступом это интервал времени от момента поступления адреса до момента, когда данные заносятся в память или становятся доступными;
длительность цикла памяти или период обращения (ТЦ). Минимальное время между двумя последовательными обращениями к памяти (интервал от момента подачи в ЗУ управляющих сигналов записи/считывания до окончания процессов, связанных с записью/считыванием информации).
скорость передачи данных в память и из неё. Для памяти с произвольным доступом она равна 1/ТЦ.
Примечание: быстродействие часто характеризуется временами поиска (tп ), записи (tз) и считывания (tсч), т.е. время обращения к ЗУ равно tобр= tп + tЗ .
Удельная стоимость хранения единицы данных – цена накопителя (с носителями), отнесённая к единице хранения (байту или мегабайту). Минимальную стоимость хранения имеют ленточные устройства, самая дорогая оперативная память.
Надежность ЗУ определяется помехоустойчивостью, нечувствительностью к изменению температуры внешней среды, некритичностью к режимам работы схем, отсутствием взаимного влияния на сохранение информации при обращении к соседним ячейкам. Надежность работы ЗУ обычно оценивается вероятностью безотказной работы в течение определенного интервала времени или средним временем безотказной работы.
Иерархическая структура памяти.
Память часто называют «узким местом » фон-неймановских ВМ из-за её серьёзного отставания по быстродействию от процессоров. Производительность процессоров возрастает вдвое примерно каждые 1,5 года, для микросхем памяти прирост быстродействия не превышает 9% в год (удвоение за 10 лет), т.е. увеличение разрыва в быстродействии между процессором и памятью примерно на 50% в год.
При создании системы памяти постоянно приходится решать задачу обеспечения требуемой ёмкости и высокого быстродействия за приемлемую цену. Наиболее распространенным подходом является иерархический принцип.
Иерархическая структура памяти является традиционным решением проблемы хранения большого количества данных. Иерархическая память состоит из ЗУ различных типов (рис. 4.1).
Ёмкость,
время доступа
Сотни
байтов/10нс
Регистры
Команды,
операнды (1-8 байт)
Кэш-память (L1)
64-128 Кбайт,10 -15 нс
Блоки (1-128 байт)
Неограниченная,
секунды-минуты
1-8 Мбайт, 50-100 мкс
500-1000 Мбайт,20-40мкс
256-512 Кбайт,15 –30
нс нс
Файлы
(мегабайты)
Файлы
(мегабайты)
Страницы (0,5-8Кбайт)
Страницы (0,5-8Кбайт)
Блоки (1-128 байт)
Кэш-память (L2)
Основная память
Дисковая кэш-память
Магнитные диски
Оптические диски
ЗУ на магнитных
лентах
20-4000 Мбайт,8-10 мс
0,7-8 Гбайт, >50 мс
Рис.4.1
Иерархия запоминающих устройств
Уровни иерархии взаимосвязаны: все данные на одном уровне могут быть найдены на более низком уровне, и все данные на этом более низком уровне могут быть найдены на следующем нижележащим уровне и т.д. Четыре верхних уровня иерархии образуют внутреннюю память ВМ, а все нижние уровни – это внешняя или вторичная память. По мере движения вниз по иерархической структуре:
уменьшается соотношение «стоимость/бит»;
возрастает ёмкость;
растёт время доступа (меньшее быстродействие);
уменьшается частота обращения к памяти со стороны центрального процессора;
увеличивается надежностью хранения информации.
В основе большинства ВМ лежит трехуровневая организация памяти: сверхоперативная (СОЗУ), оперативная (ОЗУ), внешняя (ВЗУ). СОЗУ и ОЗУ могут непосредственно взаимодействовать с процессором, ВЗУ взаимодействует только с ОЗУ.
СОЗУ обладает максимальным быстродействием (равным процессорному), небольшим объемом (101 - 105 байтов) и, как правило, располагается на одном кристалле с процессором. В СОЗУ размещаются наиболее часто используемые на данном участке программы данные (указатели адресов, промежуточные результаты вычислений), иногда – фрагменты программы.
Быстродействие ОЗУ может быть ниже процессорного (не более чем на порядок), объем - 106 – 109 байтов. В ОЗУ располагаются выполняемые программы и их данные. Связь между процессором и ОЗУ осуществляется по системной шине.
Информация, находящаяся в ВЗУ не может быть непосредственно использована процессором. Для использования программ и данных, расположенных в ВЗУ, их необходимо предварительно переписать в ОЗУ. Процесс обмена информацией между ВЗУ и ОЗУ осуществляется средствами специального канала, реже под управлением процессора. Объем ВЗУ практически неограничен, а быстродействие на 3- 6 порядков ниже процессорного.
Схематически взаимодействие между процессором и уровнями памяти представлено на рис. 4.2. Положение ЗУ в иерархии памяти ВМ определяется возможностью доступа процессора к данным, расположенным в ЗУ.
При организации памяти современных ВМ особое внимание уделяется сверхоперативной памяти и принципам обмена информацией между ОЗУ и ВЗУ.
Процессор
ОЗУ
Данные
СОЗУ
Канал
ВЗУ
Рис.4.2.
Взаимодействие
ЗУ различных уровней в составе ВМ
Основная память.
Классификация устройств основной памяти.
Основная память это единственный вид памяти, к которой ЦП может обращаться непосредственно. Информация, хранящаяся на внешних ЗУ, доступна процессору только после записи ее в основную память.
Основная память
ОЗУ
(RAM)
ПЗУ
(ROM)
Рис.4.3.
Классификация
основной памяти
Основную память образуют запоминающие устройства с произвольным доступом двух типов (рис.4.3): оперативные запоминающие устройства (ОЗУ) и постоянные запоминающие устройства (ПЗУ). Такие ЗУ образованы как массив ячеек, произвольный доступ означает, что обращение к любой ячейки занимает одно и то же время и может производиться в произвольной последовательности. Каждая ячейка содержит фиксированное число запоминающих элементов и имеет уникальный адрес, позволяющий однозначно различать ячейки при обращении к ним.
Преимущественную долю основной памяти образует ОЗУ, называемое оперативным (RAM – Random Access Memory-память с произвольным доступом). Оно допускает запись и считывание информации. Логическая структура оперативной памяти достаточно определена. Первый мегабайт оперативной памяти имеет следующее распределение: в самом начале находятся таблица векторов прерываний (IVT), данные для BIOS или DOS, операционная система. Затем следует область памяти, используемая для пользовательских программ. Область памяти от 0 до 640 Кбайт называют стандартная базовая память или Base Memory (доступна DOS и программам реального времени). Область памяти от 640 Кбайт до 1 Мбайта (UMA – Upper Memory Area, верхняя область памяти) выделена для видеобуфера BIOS и других целей операционной системы. Область памяти от 1 Мбайта до 4 Гбайт – XMA (Extended Memory Area, область расширенной памяти) непосредственно доступна только в защищенном режиме. Область памяти в несколько килобайт выделена для постоянной памяти адресах до или после 1Мбайта.
Постоянная память обычно содержит такую информацию, которая не должна меняться в ходе выполнения микропроцессором различных программ. Постоянная память имеет собственное название – RОМ (Read Only Memory), которое указывает на то, что обеспечиваются только режимы считывания и хранения. Постоянная память обладает тем преимуществом, что может сохранять информацию и при отключенном питании. Это свойство получило название энергонезависимости. Все микросхемы постоянной памяти по способу занесения в них информации (программированию) делятся на масочные (RОМ), программируемые изготовителем, однократно программируемые пользователем (Programmable RОМ) и многократно программируемые пользователем ЕРRОМ (Erasable PRОМ). Последние, в свою очередь, подразделяются на стираемые электрически или с помощью ультрафиолетового облучения. К элементам ЕРRООМ с электрическим стиранием информации относятся и микросхемы флэш-памяти (flash). От обычных ЕРRОМ они отличаются высокой скоростью доступа и быстрым стиранием записанной информации. Данный тип памяти сегодня широко используется для хранения ВIOS.
Основные запоминающие устройства
Большинство из применяемых в настоящее время типов микросхем оперативной памяти не в состоянии сохранять данные без внешнего источника энергии, то есть являются энергозависимыми (volatile memory). По сравнению с энергонезависимыми ОЗУ(non-volatile memory) они обладают: большей ёмкостью, низким энергопотреблением, более высоким быстродействием и невысокой себестоимостью хранения единицы информации
Энергозависимые ОЗУ подразделяют на две основные подгруппы: динамическую память (DRAM- Dynamic Random Access Memory) и статическую память (SRAM- Static Random Access Memory).
В статических ОЗУ запоминающий элемент может хранить записанную информацию неограниченно долго (при наличии питающего напряжения). Запоминающий элемент динамического ОЗУ способен хранить информацию в течение достаточно короткого промежутка времени, после которого информацию нужно восстанавливать, иначе она будет потеряна.
Роль запоминающего элемента в статических ОЗУ играет триггер, имеющий два устойчивых состояния. Обычно триггер состоит из четырех либо шести транзисторов (триодов). Схема с четырьмя транзисторами обеспечивает большую емкость микросхемы, но обладает большим током утечки, чувствительна к воздействию внешних источников излучения. Наличие дополнительных двух транзисторов снижают уровень упомянутых недостатков и, главное, увеличивают быстродействие памяти.
Запоминающий элемент динамического ОЗУ состоит из одного конденсатора и запирающего транзистора. Наличие или отсутствие заряда в конденсаторе интерпретируется как 1 или 0 соответственно. Простота схемы позволяет достичь высокой плотности размещения ЗЭ и снизить стоимость. Главным недостатком являются токи утечки, среднее время утечки заряда ЗЭ составляет сотни и даже десятки миллисекунд, поэтому периодическое восстановление заряда ЗЭ (регенерация) осуществляется каждые 2-8 мс. Операции разрядки-перезарядки занимают определенное время, которое снижает скорость работы динамической памяти. Это является, пожалуй, одним из основных недостатков динамической памяти, так как по критерию, учитывающему информационную емкость, стоимость и энергопотребление, данный тип памяти во многих случаях предпочтительнее статической.
Область применения статической и динамической памяти определяется скоростью и стоимостью. Главным преимуществом SRAM является высокое быстродействие, примерно на порядок выше, чем у DRAM. Быстрая синхронная SRAM со временем доступа к информации, равным времени одного тактового импульса процессора. Малая емкость и высокая стоимость ограничивает применение статической памяти использованием основном в кэш- памяти, имеющей небольшой объем.
Динамической памяти в вычислительной машине значительно больше, чем статической. DRAM используется в качестве основной памяти ВМ. Как и SRAM, динамическая память состоит из ядра (массива ЗЭ) и интерфейсной логики (буферных регистров, усилителей чтения данных, схемы регенерации и др.). Ячейки памяти динамического типа конфигурируются обычно в матрицу строк и столбцов, причем процесс считывания организуется таким образом, что содержимое целой строки переносится в некий буфер. После считывания соответствующего бита содержимое буфера перезаписывается в ту же строку ячеек динамической памяти, то есть производится перезаряд тех конденсаторов, которые до считывания были в заряженном состоянии. Количество видов DRAM уже превысило два десятка, но ядро у них организованно практически одинаково, главные различия в интерфейсной логике в основном обусловлены областью применения микросхем. Различают две основные сферы применения динамических ОЗУ: микросхемы для основной памяти и микросхемы для видеоадаптеров.
Данные необходимо постоянно регенерировать, после каждой операции чтения данные должны быть восстановлены (при считывании информации из одной ячейки фактически выдаются данные сразу всей выбранной строки, но используются только находящиеся в интересующем столбце, а все остальные игнорируются, операция чтения из одной ячейке приводит к разрушению всей строки). Регенерация данных после чтения выполняется автоматически интерфейсной логикой микросхемы сразу же после считывания строки.
КЭШ-память.
Основная память, реализуемая на микросхемах динамической памяти слишком медленна, требует тактов ожидания процессора (wait states) в циклах обращения к памяти. Статическая память, построенная, как и процессор на триггерных ячейках, способна догонять процессор по быстродействию, но она дорогая и имеет малую плотность упаковки. Экономически приемлемое решение этой проблемы было предложено М. Уилксом в 1965 году в процессе разработки ВМ Atlas и заключается оно в использовании двухуровневой памяти, когда между ОП и процессором размещается небольшая быстродействующая буферная память. В процессе работы такой системы в буферную память копируются те участки ОП, к которым производится обращение со стороны процессора. Основная идея – в кэш-памяти находятся слова, которые чаще всего используются. Если процессору требуется какое-либо слово, то сначала он обращается в кэш-память. Только если слова там нет, он обращается к основной памяти. Эффективность кэш-памяти зависит от того, какая часть слов находится в ней. Кэш-память (cache - убежище, тайник) является подчиненным видом памяти, она обычно скрыта от программиста в том смысле, что он не может ее адресовать.
Одной из самых эффективных технологий одновременного увеличения пропускной способности и уменьшения времени ожидания является применение нескольких блоков кэш-памяти, при этом:
вводятся отдельные кэш-памяти для команд и данных, имеющие независимый доступ к основной памяти, с объёмом от 16 до 64Кбайт.
между разделенной кэш-памятью и основной памятью помещается объединенная (программа + данные) кэш-память 2-ого уровня. Она соединяется с процессором скоростным трактом данных. Её объём от 512 Кбайт до 1Мбайта. Находится в одном корпусе с процессором.
кэш-память 3-его уровня находится на одной плате с процессором, обычно состоит из статического ОЗУ в несколько Мбайт.
обычно всё содержимое кэш-памяти 1-ого уровня находится в кэш-памяти 2-ого уровня, а всё содержимое кэш-памяти 2-ого уровня
находится
в кэш-памяти 3-его уровня.
.
На рисунке 4.8 представлена схема размещения трехуровневой кэш-память на системной плате ВМ. Реальная эффективность использования кэш-памяти зависит от характера решаемых задач, однако, установлено, что для большинства задач близкой к оптимальной является кэш-память емкостью от 1 до 512 Кбайт.
Во всех типах кэш-памяти основную память разделяют на блоки фиксированного размера, которые называются строками кэш-памяти, именно этими строками и оперирует контроллер кэш-памяти.
Строка кэш-памяти состоит из нескольких последовательных байтов. Наиболее близким к оптимальному считается размер строки, равный 4 – 8 адресуемым единицам. На практике размер строки обычно выбирают равным ширине шины данных. Строки нумеруются, начиная с нуля, т.е. если размер строки 32 байта, то строка 0 – это байты с 0 по 31, строка 1 – это байты с 32 по 63 и т.д. С каждой строкой кэш-памяти связана информация об адресе скопированного в неё блока основной памяти и признаки её состояния.
Возможен вариант секторированного КЭШа, при котором одна строка содержит несколько смежных ячеек - секторов, размер которых соответствует минимальной порции обмена данных КЭШа с основной памятью.
На рис.4.9 приведена структура системы с основной и кэш-памятью. Основная память состоит из 2n адресуемых слов, где каждое слово имеет свой уникальный n-разрядный адрес. Эта память рассматривается как М блоков фиксированной длины по К слов в каждом (М=2n /К). Кэш-память состоит из С блоков аналогичного размера, причём С значительно меньше М. При считывании слова из какого-либо блока ОП этот блок копируется в определённую строку кэша. Поскольку число блоков ОП больше числа строк, отдельная строка не может быть выделена постоянно одному и тому же блоку ОП. Каждой строке кэш-памяти соответствует тег (признак), содержащий сведения о том, копии какого блока ОП в данный момент хранится в данной строке. Номеру блока соответствует номер тега (уникальное 16-битное значение, указывающее соответствующую строку памяти, из которой поступили данные).
Рис.4.9.
Структура
системы с основной и
кэш-памятью:
а) основная память, б) кэш-память, длина
строки равна K
слов, в) основная память с разбивкой
на теги, размер тега равен C
блоков по К
слов
В зависимости от способа определения взаимного соответствия строки кэш-памяти и области основной памяти различают три архитектуры кэш-памяти:
кэш-память прямого отображения (direct-mapped cache);
полностью ассоциативная кэш-память (fully associative cache);
комбинация первых 2-х - частично или наборно-ассоциативная кэш-память (set associative cache).
Кэш-памяти прямого отображения.
Для каждого блока оперативной памяти, имеющего фиксированный размер, выделяется одна строка. Последовательные строки основной памяти помещаются в последовательные элементы кэш-памяти. Адрес строки i кэш-памяти, на которую может быть отображен блок j из ОП, однозначно определяется выражением: i = j mod m, где m – общее число строк в кэш-
памяти. В примере, приведенном на рис. 4.9 количество строк равно 128, номер строки i = j mod 128, где i может принимать значения от 0 до 127, адрес блока j – от 0 до 16383. В строке i может быть отображен каждый 128-й блок ОП, если отсчет начинать с блока, номер которого равен i.
На рисунке 4.10 основная память представлена в виде двухмерного массива блоков, в котором количество рядов равно числу строк в кэш-памяти, а в каждом ряду последовательно перечислены блоки, переадресуемые на одну и ту же строку кэш-памяти.
Каждая строка кэш-памяти состоит из трех частей:
бит достоверности определяет, есть ли достоверные данные в строке или нет. Когда система загружается, то все элементы маркируются как недостоверные;
тег состоит из уникального 16-битного значения, указывающего соответствующую строку памяти, из которой поступили данные;
данные содержат копию данных основной памяти, вмещает одну строку кэш-памяти в K слов (один блок).
В кэш-памяти конкретное слово с конкретным адресом может храниться только в одном месте. Если его нет в определенном месте, то его вообще нет в кэш-памяти. Для хранения и удаления данных из кэш-памяти адрес разбивается на 4 поля (рис. 4.10, в). Поле строки указывает на строку кэш-памяти, куда может быть отображен блок с заданным адресом. Поле тега определяет, какой именно из возможных блоков, закрепленных за данной строкой кэша, будет отображен. Когда блок фактически заносится в память данных кэша, бит достоверности выставляется в единицу, в память тегов кэш-памяти необходимо записать тег этого блока.
Примерный алгоритм поиска данных в кэш-памяти (приведен на рис. 4.11):
формирование номера строки из величины конкретного адреса;
доступ к нужному слову очень быстрый, так как известен адрес и точное нахождение слова в КЭШе (если оно имеется в КЭШе). Слово считывается из строки;
проверка достоверности строки - заполнена ли требуемая строка;
если строка достоверна, слово считывается из памяти и доставляется процессору, одновременно с этим устанавливается правильное ли это слово (проверка номера тега, т.е. имеется ли требуемая строка с нужным словом в кэш-памяти);
если слова нет в кэш-памяти, то ведется его поиск в ОЗУ. При наличии коррекции информации в «старой» строке она переписывается в ОЗУ. Производится перезагрузка элемента кэш-памяти.
Простое
отображение – простой и недорогой в
реализации способ отображения. Основной
его недостаток – жесткое закрепления
за определенными блоками ОП одной строки
кэш-памяти. Поэтому если программа
поочередно обращается к словам из двух
разных блоков, отображаемых на одну и
ту же строку кэш-памяти, постоянно станет
происходить обновление данной строки
и вероятность попадания будет низкой.
Внешняя память
Доступ к данным, расположенным в разноуровневой памяти, существенной отличается по времени. Доступ к регистровой памяти измеряется несколькими наносекундами, к основной памяти – десятками наносекунд, к вторичной или внешней памяти доступ может измеряться секундами, даже минутами.
К внешней памяти относятся устройства, позволяющие автономно сохранять информацию для последующего использования независимо от состояния (включен или выключен) компьютера. Эти устройства обладают различными физическими принципами хранения информации. По методу доступа к информации устройства внешней памяти разделяются на устройства с прямым (непосредственным) доступом и последовательным доступом. Все устройства внешней памяти оперируют блоками памяти, обычно имеющими фиксированный размер, кратный степени числа 2, в некоторых устройствах с последовательным доступом размер блока может быть переменным. Прямой доступ подразумевает возможность обращения к блокам по их адресу в произвольном порядке. В памяти с последовательным доступом каждый блок информации тоже может иметь свой адрес, но для обращения к нему устройство хранения должно сначала найти некоторый маркер начала ленты (тома), после чего последовательным холостым чтением блока за блоком дойти до требуемого места и только тогда произвести операцию обмена данными. Наиболее распространенные виды внешней памяти – это магнитные и оптические диски и магнитоленточные устройства.
Параллелизм и конвейеризация вычислений. Параллелизм на уровне команд
Возможности по совершенствованию элементной базы уже практически исчерпаны, дальнейшее повышение производительности ВМ лежит в плоскости архитектурных решений. На сегодняшний день основное условие повышения производительности процессоров - методы параллелизма. Как известно, микропроцессор обрабатывает последовательность инструкций (команд), составляющих ту или иную программу. Если организовать параллельное (то есть одновременное) выполнение инструкций, общая производительность существенно вырастет. Решается проблема параллелизма методами конвейеризации вычислений, применением суперскалярной архитектуры и предсказанием ветвлений.
Параллелизм на уровне команд
Параллелизм осуществляется в пределах отдельных команд и обеспечивает выполнение большого количества команд в секунду.
Конвейеры
Конвейеризация - процесс, посредством которого различные фазы обработки накладываются по времени одна на другую. Это означает разбиение команды на отдельные этапы и исполнение получившихся микроинструкций различными элементами процессора с передачей данных одного этапа следующему. Однако разбиение команд и контроль за исполнением каждого шага усложняет управляющие цепи и требует на каждом шаге памяти для временного хранения промежуточных данных (конвейерные регистры).
Производительность при конвейеризации возрастает благодаря тому, что одновременно на различных ступенях конвейера выполняются несколько операций. Конвейеризация эффективна только тогда, когда загрузка конвейера близка к полной, а скорость подачи новых операндов соответствует максимальной производительности конвейера. Если происходит задержка, то параллельно будет выполняться меньше операций и суммарная производительность снизится.
Обработка команды может быть разделена на несколько основных этапов (5 микрокоманд), каждый из которых выполняется определенной частью аппаратного обеспечения. Каждая операция требует для своего выполнения времени, равного такту генератора процессора. Вызов команд из памяти является главным препятствием высокой скорости выполнения команд, т.к. этот этап не может быть выполнен за 1 такт. Поэтому команды вызываются из памяти заранее, чтобы они имелись в наличии в тот момент, когда будут необходимы. Эти команды помещаются в набор регистров (буфер выборки с упреждением). Когда требуется определённая команда, она вызывается прямо из буфера.
Рассмотрим конвейер из 5 блоков
С1- вызывает команду из памяти и помещает её в буфер, где она хранится до тех пор пока не будет нужна;
С2- декодирует эту команду, определяя её тип и тип операндов, над которыми она будет производить определённые действия;
С3- определяет местонахождение операндов и вызывает их или из регистров или из памяти;
С4- выполняет команду;
С5- записывает результат обработки в нужный регистр.
Действие конвейера во времени (рис.6.6):
1
2
3
4
5
6
7
8
C1
9
1
2
3
4
5
6
7
8
7
6
5
C2
1
2
3
4
5
6
1
2
3
4
5
1
2
3
4
1 2
3 4 5 6
7 8 9 Рис.6.6.
Состояние каждой стадии в зависимости
от количества пройденных циклов.
Показано 9 циклов
C3
C4
C5Время
Цикл 1: С1 вызывает 1-ую команду из памяти;
Цикл 2: С2 декодирует команду 1,С1 вызывает 2-ую команду из памяти;
Цикл 3: С3 вызывает операнды для команды 1, С2 декодирует команду 2,С1 вызывает 3-ью команду из памяти;
Цикл 4: С4 выполняет команду 1, С3 вызывает операнды для команды 2, С2 декодирует команду 3, С1 вызывает 4-ую команду из памяти;
Цикл 5: С5 записывает результат выполнения команды 1 обратно в регистр, другие стадии работают над следующими командами (С4 выполняет команду 2, С3 вызывает операнды для команды 3, С2 декодирует команду 4, С1 вызывает 5-ую команду из памяти).
Для повышения эффективности работы конвейера возможно разбиением каждой ступени конвейера на n «подступеней» при одновременном повышении тактовой частоте внутри конвейера также в n раз, либо включением в состав процессора n конвейеров, работающих с перекрытием.
Первый из этих подходов впервые был применен в 1988 году, он известен как суперконвейеризация. Каждая из ступеней стандартного конвейера разбивается на n более простых подступеней. Выполнение операции в подступенях занимает n-ую часть тактового периода, благодаря чему на каждой ступени конвейера за один такт выполнить n команд.
Суперконвейеризация сводится к увеличению количества ступеней конвейера за счет добавления новых ступеней и путем дробления имеющихся ступеней на несколько простых подступеней. Основное требование – возможность реализации операции в каждой подступене наиболее простыми техническими средствами, следовательно, с минимальными затратами времени. Второе условие – одинаковость задержки во всех подступенях.
Критерием для причисления процессора к суперконвейерным служит наличие не менее шести ступеней в конвейере команд. Длина конвейера команд в популярных микропроцессорах колеблется от 8 до 20. Удлинение конвейера приводит к возрастанию вероятности конфликтов, усложняется логика взаимодействия ступеней конвейера. Создателям ВМ удается справляться с большинством из этих проблем.
6.2.2 Суперскалярная архитектура.
Конвейеры в процессорах компании Intel появились, только начиная с 486-ой модели, содержавшей один конвейер. Pentium содержит 2 конвейера из 5 стадий (рис.6.7), причём главный конвейер U-конвейер может выполнять произвольные команды, второй- V-конвейер может выполнять только простые команды и одну команду с плавающей точкой (FXCH).
С1
С2 С3 С4
С5
Блок
выборки команд
Блок декодирования
Блок
выборки операндов
Блок
выполнения команд
Блок
возврата
Блок декодирования
Блок
выборки операндов
Блок выполнения команд
Блок
возврата
Рис.6.7. Двойной
конвейер из пяти стадий с общим отделом
вызова команд
В процессорах Intel все операции с плавающей точкой выполняет специальное устройство FPU с собственными регистрами и набором команд, начиная с 486 оно встроено в основной процессор, ранее сопроцессор FXCH.
Имеются сложные правила определения совместимости пар команд. Pentium содержит особые компиляторы, которые объединяют совместимые команды в пары и могут порождать программы, выполняющиеся быстрее чем в предыдущих версиях процессоров.
Переход к большему количеству конвейеров возможен, но требует создания громоздкого аппаратного обеспечения, поэтому используется другой подход. Основная идея – один конвейер с большим количеством функциональных блоков, для обозначения этого подхода был введён термин суперскалярная архитектура. Стадия 3 выпускает команды значительно быстрее, чем стадия 4 способна их выполнять, поэтому вводится несколько функциональных блоков 4 стадии. Большинство функциональных блоков 4-ой стадии для выполнения требуют значительно больше времени, чем занимает один цикл (это блоки доступа к памяти, блок выполнения операция с плавающей точкой).
Основной объем вычислительной нагрузки приходятся на скалярные вычисления, то есть на обработку одиночных операндов. Для подобных вычислений дополнительный параллелизм реализуется значительно сложнее и, в частности, возможен при использовании суперскалярных процессоров.
С
уперскалярным
называется центральный процессор,
который одновременно выполняет более
чем одну скалярную операцию. Это
достигается за счет включения в
центральный процессор нескольких
самостоятельных функциональных
(испольнительных) блоков, каждый из
которых отвечает за свой класс операций
и может присутствовать в процессоре в
нескольких экземплярах (рис.6.8).
Блок
выборки команд
Блок декодирования
Блок
выборки операндов
АЛУ
АЛУ
Блок
загрузки
Блок
сохранения
Блок
с плавающей точкой
Блок
возврата
Рис.6.8. Суперскалярный
процессор с пятью функциональными
блоками
Суперскалярные процессоры конца 90-х годов могли исполнять до 4-6 инструкций за один машинный цикл. На практике они выполняют в среднем 1,5 инструкции за такт. «Продвинутые» суперскалярные процессоры (Advanced superscalar) смогут выполнять от 16 до 32 инструкций за такт. Чем это обернется на практике, пока сказать трудно, но и для «суперскалярной» архитектуры существенным ограничением является поток обрабатываемых данных.
В общем виде «продвинутая» суперскалярная архитектура состоит из 24-48 высокооптимизированных конвейерных блоков (например, блоков, выполняющих операции с плавающей точкой или обрабатывающих целые числа). Как и в простых суперскалярных архитектурах, каждый блок получает свою собственную «резервацию» - временное место хранения, где накапливается очередь инструкций, выполняемых данным блоком.
Более совершенное предсказание ветвлений - еще одна задача ближайшего будущего, и она тесно связана с предсказанием адресации: процессор попытается предсказать адреса ячеек памяти, которые будут затребованы последующими инструкциями, и вызвать их содержимое заранее.
1 Подобные решения были приняты разработчиками ЭВМ различных фирм с учётом требований программистов.
2При использовании комбинации обоих методов обычно производится трансляция программы, создаётся новая программа, в которой простые команды выполняются на языке нулевого уровня непосредственно (например: команда сдвига регистра на 1разряд), а сложные команды (например: команда умножения) интерпретируются, т.е. запускается на выполнение микропрограмма этой команды.
3 Полужирным шрифтом здесь и далее выделен знак числа.
4 В некоторых источниках статический способ представления информации называют импульсным, динамический способ - потенциальным.
5 Количество сигналов, их последовательность, временные выдержки между сигналами определяется в протоколах согласования работы узлов ВМ.
6 Такт-это время выполнения одной элементарной операции
7 Предикация-способ обработки условных ветвлений, компилятор указывает, что обе ветви выполняются на процессоре параллельно.
8 Омнибусами в Англии стали называть двухэтажные автомобили, которые стали первым общественным транспортом в Лондоне, т.е. транспортом для всех. В дальнейшем вторая часть слова омнибус стала основой для появления таких названий как автобус, троллейбус, а теперь и названием шины ВМ.
