Архитектура компьютера

Функционирование памяти

Наша машина может взаимодействовать с памятью двумя способами: через порт с пословной адресацией (32-разрядный) и через порт с побайтовой адресацией (8-разрядный). Порт с пословной адресацией управляется двумя регистрами: MAR (Memory Address Register — адресный регистр памяти) и MDR (Memory Data Register — информационный регистр памяти), которые показаны на рис. 4.1. Порт с побайтовой адресацией управляется регистром PC, который записывает 1 байт в 8 младших битов регистра MBR (Memory Buffer Register — буферный регистр памяти). Этот порт может считывать данные из памяти, но не может записывать их в память.

Каждый из этих регистров, а также все остальные регистры, изображенные на рис. 4.1, запускаются одним из сигналов управления. Белая стрелка под регистром указывает на сигнал управления, который разрешает передавать выходной сигнал регистра на шину В. Регистр MAR не связан с шиной В, поэтому у него нет разрешающего сигнала управления. У регистра Н этого сигнала тоже нет, так как он является единственным возможным левым входом АЛУ и поэтому всегда разрешен.
Читать дальше »

Синхронизация тракта данных

Как происходит синхронизация этих действий, показано на рис. 4.2. Здесь в начале каждого цикла генерируется короткий импульс. Он может выдаваться задающим генератором, как показано на рис. 3.20, в. На спаде импульса устанавливаются биты, которые будут запускать все вентили. Этот процесс занимает определенный отрезок времени △w. Затем выбирается регистр, и его значение передается на шину В. На это требуется время △х. Далее АЛУ и схема сдвига начинают оперировать поступившими к ним данными. После промежутка △у выходные сигналы АЛУ и схемы сдвига стабилизируются. В течение следующего отрезка, △г, результаты проходят по шине С к регистрам, куда они загружаются на фронте следующего импульса. Загрузка должна запускаться фронтом сигнала и осуществляться мгновенно, так что даже в случае изменений каких-либо входных регистров изменения в шине С будут происходить только после полной загрузки регистров. На фронте импульса регистр, запускающий шину В, приостанавливает свою работу и ждет следующего цикла. На рисунке имеются еще регистры МРС и MIR, а также память. Их предназначение мы обсудим чуть позже.

Важно понимать, что хотя в тракте данных нет никаких запоминающих элементов, для прохождения сигнала по нему требуется определенное время. Изменение значения на шине В вызывает изменения на шине С не сразу, а только после паузы (это объясняется задержками на каждом шаге). Следовательно, даже если один из входных регистров изменяется, новое значение сохраняется в регистре задолго до того, как старое (и уже неправильное) значение этого регистра, помещенное на шину В, сможет достичь АЛУ.
Читать дальше »

Эквивалентность схем

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

В качестве примера использования булевой алгебры рассмотрим схему и таблицу истинности для функции АВ + АС (рис. 3.5, а). Хотя мы это еще не обсуждали, многие правила обычной алгебры имеют силу и в булевой алгебре. Например, выражение АВ + АС по дистрибутивному закону может быть преобразовано в А(В + С). На рис. 3.5, б показана схема и таблица истинности для функции А(В + С). Две функции являются эквивалентными тогда и только тогда, когда обе функции принимают одно и то же значение для всех возможных переменных. Из таблиц истинности на рис. 3.5 ясно видно, что функция А(В + С) эквивалентна функции АВ + АС. Несмотря на эту эквивалентность, схема на рис. 3.5, б проще, чем схема на рис. 3.5, а, поскольку содержит меньше вентилей.
Читать дальше »

Реализация булевых функций

Как было отмечено ранее, представление булевой функции в виде суммы максимум 2″ произведений делает возможной реализацию этой функции. На рис. 3.3, б входные сигналы А, В и С показаны с левой стороны, а функция М, полученная на выходе, — с правой. Поскольку необходимы дополнительные величины (инверсии) входных переменных, для их получения сигнал проходит через инверторы 1, 2 и 3. Чтобы сделать рисунок понятней, мы нарисовали 6 вертикальных линий, 3 из которых связаны с входными переменными, 3 другие — с их инверсиями. Эти линии обеспечивают передачу входного сигнала к вентилям. Например, вентили 5, 6 и 7 на входе получают сигнал А. В реальной схеме эти вентили, вероятно, будут непосредственно соединены проводом с А без каких-либо промежуточных вертикальных проводов.

Схема содержит четыре вентиля И, по одному для каждого члена в уравнении для М (то есть по одному для каждой строки в таблице истинности с результатом 1). Каждый вентиль И вычисляет одну из указанных строк таблицы истинности. В конце концов, все данные произведения суммируются (имеется в виду операция ИЛИ) для получения конечного результата.
Читать дальше »

Системы RISC и CISC

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

В компании IBM этой тенденции противостояла группа разработчиков во главе с Джоном Коком (John Cocke); они попытались воплотить идеи Сеймура Крея, создав экспериментальный высокоэффективный мини-компыотер 801. Хотя компания IBM не занималась сбытом этой машины, а результаты эксперимента были опубликованы только через несколько лет [170], весть быстро разнеслась по свету, и другие производители тоже занялись разработкой подобных архитектур.
Читать дальше »

Выполнение команд

Центральный процессор выполняет каждую команду за несколько шагов:

1. Вызывает следующую команду из памяти и переносит ее в регистр команд.

2. Меняет положение счетчика команд, который после этого указывает на следующую команду1.

3. Определяет тип вызванной команды.

4. Если команда использует слово из памяти, определяет, где находится это слово.

5. Переносит слово, если это необходимо, в регистр центрального процессора2.

6. Выполняет команду.

7. Переходит к шагу 1, чтобы начать выполнение следующей команды.

Такая последовательность шагов (выборка — декодирование – выполнение) является основой работы всех компьютеров.
Читать дальше »

VLIW-процессор TriMedia

В главе 5 на примере процессора Itanium 2 мы уже сталкивались с архитектурой VLIW. Теперь познакомимся с другим VLIW-процессором — TriMedia производства компании Philips. TriMedia — это встроенный процессор для устройств обработки изображений, а также аудио- и видеустройств, таких как CD-, DVD-и МРЗ-плееры, устройства записи CD и DVD, интерактивные телевизоры, цифровые фотокамеры, видеокамеры и т. д. Учитывая специализацию, нет ничего удивительного в многочисленных отличиях TriMedia от Itanium 2 — универсального процессора для высокопроизводительных серверов.

В состав одной TriMedia-команды может входить до пяти операций. В полностью оптимальных условиях за тактовый цикл запускается одна команда и выбирается пять операций. Номинальная тактовая частота процессора составляет 266 или 366 МГц, но так как за один цикл может выполняться до пяти операций, фактическое быстродействие в пять раз больше. При дальнейшем изложении мы будем исходить из характеристик реализации ТМ3260 процессора. Другие версии TriMedia имеют ряд малозначительных отличий.
Читать дальше »

Параллелизм на уровне команд

Параллелизм на уровне команд

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

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

Страничная организация памяти

Идею о разделении понятий адресного пространства и адресов памяти выдвинула группа ученых из Манчестера. Рассмотрим в качестве примера типичный компьютер того времени с 16-разрядным полем адреса в командах и 4096 словами памяти. Программа, работающая на таком компьютере, могла обращаться к 65 536 словам памяти (поскольку адреса были 16-разрядными, а 216 = 65 536). Обратите внимание, что число адресуемых слов зависит только от числа битов адреса и никак не связано с числом реально доступных слов в памяти. Адресное пространство такого компьютера состоит из чисел 0, 1,2,65 535, так как это — набор всех возможных адресов. Однако в действительности компьютер мог иметь гораздо меньше слов в памяти.

До изобретения виртуальной памяти приходилось проводить жесткое различие между адресами, меньшими 4096, и адресами, равными или большими 4096. Эти две части рассматривались как полезное адресное пространство и бесполезное адресное пространство соответственно (адреса выше 4095 были бесполезны-ми, поскольку они не соответствовали реальным адресам памяти). Никакого различия между адресным пространством и адресами памяти не проводилось, поскольку между ними подразумевалось взаимно-однозначное соответствие.
Читать дальше »

Виртуальная память

В первых компьютерах память была очень мала по объему и к тому же дорого стоила. IBM-650, ведущий компьютер того времени (конец 50-х годов), содержал всего 2000 слов памяти. Один из первых 60 компиляторов ALGOL был написан для компьютера с объемом памяти всего 1024 слова. Древняя система с разделением времени прекрасно работала на компьютере PDP-1, общий объем памяти которого составлял всего 4096 18-разрядных слов для операционной системы и пользовательских программ. В те времена программисты тратили очень много времени, пытаясь вместить свои программы в крошечную память. Часто приходилось использовать более медленный алгоритм только потому, что более быстрый не удавалось разместить в памяти компьютера.
Читать дальше »

 Страница 6 из 7 « 1  2  3  4  5  6  7 »
Архитектура ПК, персонального компьютера, ЭВМ