Уровень микроархитектуры персонального компьютера

Физика билеты к экзамену
 
Элементы интерфейса
Панель инструментов
Операции с документом
Вспомогательные средства
работы
Палитра Navigator
Структура растровых
изображений
Цвета и оттенки
Плашечные цвета
Индексированный цвет
Формат PCD
Инструмент Eyedropper
Профиль монитора
Рисование и заливка
Создание узора
Использование слоев
Прозрачность и режим
наложения
Инструмент Magic Eraser
Удаление каймы
Эффекты
Текст в оболочке
Атрибуты
Тоновая коррекция
Последовательность коррекции
Эффект внутренней тени
Эффект складок
Описание контуров
Затемнение фрагмента
Фильтр Cracelure (Кракелюры)
Немного о технологии
Параметры растрирования
Формат JPEG
Определение состояний
Операции
Вложенные операции
Панель инструментов
Наборы слоев
Маски
Контур и выделение
Редактирование контура
Коррекция тонового интервала
Коррекция по цветовым
каналам
Растровые изображения
Цифровые и аналоговые сигналы
Мультимедиа
Анимация
Дифференциальное и
интегральное исчисление
Математический анализ
Пределы примеры вычислений
Производные и дифференциалы
Комплексные числа
Линейные пространства
Нахождение производной функции
Точки разрыва функции
Инженерная графика
Параллельные компьютерные
архитектуры
OrCAD Capture редактор схем
Уровень микроархитектуры

Над цифровым логическим уровнем находится уровень микроархитектуры. Его задача — интерпретация команд уровня 2 (уровня архитектуры команд). Строение уровня микроархитектуры зависит от того, каков уровень архитектуры команд, а также от стоимости и назначения компьютера. В настоящее время на уровне архитектуры команд обычно находятся простые команды, которые выполняются за один цикл Тракт данных — это часть центрального процессора, состоящая из АЛУ (арифметико-логического устройства), его входов и выходов Некоторые комбинации сигналов АЛУ и соответствующие им функции Синхронизация тракта данных Функционирование памяти Наша машина может взаимодействовать с памятью двумя способами: через порт с пословной адресацией (32-разрядный) и через порт с побайтовой адресацией (8-разрядный).

Микрокоманды Выходной сигнал шины До сих пор мы рассказывали об управлении трактом данных и не касались вопроса о том, какой именно сигнал управления и на каком цикле должен устанавливаться. Для этого существует контроллер последовательности, который отвечает за последовательность операций, необходимых для выполнения одной команды. Когда микрокоманда попадает в MIR, в тракт данных поступают различные сигналы. Значение определенного регистра помещается на шину В, а АЛУ узнает, какую операцию нужно выполнять Синхронизирующий сигнал делится на подциклы, хотя внешние изменения этого сигнала происходят только на спаде, с которого начинается цикл, и на фронте, который загружает регистры и триггеры N и Z Чтобы продолжить изучение нашего примера, введем уровень архитектуры набора команд (ISA), которые должна интерпретировать микропрограмма машины IJVM Но стек используется для хранения не только локальных переменных, но и операндов во время вычисления арифметических выражений. Такой стек называется стеком операндов. Фрейм локальных переменных. Эта область предназначена для хранения переменных во время выполнения процедуры. Она, как уже отмечалось, называется фреймом локальных переменных Каждая команда состоит из кода операции и иногда из операнда (например, смещения адреса или константы). Некоторые команды имеют сложный формат, допускающий краткую форму записи для часто используемых версий.

Посмотрим, что происходит перед вызовом процедуры Фрагмент программы на языке Java Пример реализации микроархитектуры Мы подробно описали микро- и макроархитектуру. Осталось осуществить реализацию. Другими словами, нам предстоит узнать, что собой представляет и как работает программа уровня микроархитектуры, интерпретирующая микрокоманды. Помните, что в каждой микрокоманде должен быть явно указан адрес следующей микрокоманды. Однако часто бывает так, что микрокоманда вызывается только одной микрокомандой, причем именно той, которая находится в предыдущей строке. Эта запись сообщает микроассемблеру, что нужно использовать значение value для поля NEXT_ADDRESS Микрокоманда Операции Добавление к байту дополнительного знакового разряда и запись значения в стек Ожидание вызова следующего кода операции В определенные моменты в каждом из этих регистров обязательно находится определенное значение. Значение регистра PC увеличивается, после чего он содержит адрес первого байта после кода операции. Все эти действия выполняются в первом цикле Теперь рассмотрим команду IL0AD. В этой команде за кодом операции также следует байт, но этот байт представляет собой индекс (без знака), используемый для того, чтобы найти в пространстве локальных переменных слово, которое нужно поместить в стек Команда WIDE декодируется обычным способом Далее мы рассмотрим команду LDCW. Смещения, которые используются в команде goto

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

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

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

Динамическое прогнозирование ветвлений Ясно, что точные прогнозы очень ценны, поскольку позволяют процессору работать с полной скоростью. В настоящее время проводится множество исследований, целью которых является усовершенствование алгоритмов прогнозирования ветвлений Существует несколько вариантов организации данной таблицы. Фактически они полностью аналогичны вариантам организации кэш-памяти. Рассмотрим машину с 32-разрядными командами, которые расположены таким образом, что два младших бита каждого адреса памяти равны 00. Статическое прогнозирование ветвлений Все технологии прогнозирования ветвлений, которые обсуждались до сих пор, являются динамическими, то есть выполняются во время работы программы. Исполнение с изменением последовательности и подмена регистров Следить за состоянием регистров призвано специальное устройство — счетчик обращений (scoreboard), впервые появившийся в системе CDC 6600

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

Примеры уровня микроархитектуры В этом разделе в свете материала, изучаемого в этой главе, мы рассмотрим три современных процессора. Наше изложение будет кратким, поскольку компьютеры чрезвычайно сложны, содержат миллионы вентилей и у нас нет возможности давать подробное описание. Процессоры, предлагаемые в качестве примеров, те же, что и раньше, — Pentium 4, UltraSPARC III и 8051. В состав подсистемы памяти входит объединенный кэш второго уровня (L2), а также логика доступа к внешнему ОЗУ по шине памяти. В первом поколении Pentium 4 объем L2 составлял 256 Кбайт; во втором — 512 Кбайт; в третьем — 1 Мбайт. L2 представляет собой 8-входовую ассоциативную кэш-память с 128- байтным строками Конвейер NetBurst Встретившись с командой безусловного перехода, блок декодирования ищет предсказанный объект перехода в буфере объектов перехода (Branch Target Buffer, ВТВ) первого уровня и продолжает декодирование с соответствующего адреса. В кэше буфера объектов перехода первого уровня сохраняются 4000 последних переходов. Блок распределения и подмены помещает готовые к выполнению операции в одну из двух очередей. Четыре планировщика ответственны за извлечение микрокоманд из очередей. Каждый планировщик регламентирует обращения к тем или иным ресурсам

Микроархитектура процессора UltraSPARC III Серия процессоров UltraSPARC, произведенная компанией Sun, — это реализация версии 9 архитектуры SPARC. Блок исполнения операций с плавающей точкой состоит из 32 регистров и трех независимых АЛУ, предназначенных для выполнения операций сложения/вычитания, умножения и деления, соответственно. Этот же блок выполняет графические операции. Конвейер UltraSPARC III Операции загрузки и хранения, а также специальные операции. Ощутимые различия есть как между АЛУ для выполнения целочисленных операций, так и между АЛУ для выполнения операций с плавающей точкой и графических операций. В обоих случаях различаются наборы команд, которые способны выполнять те или иные АЛУ. На ступени D состояние целочисленных регистров и регистров с плавающей точкой фиксируется в соответствующих архитектурных регистровых файлах. При возникновении исключения или прерывания видимыми становятся именно эти значения, а не содержимое рабочих регистров

В 8051 предусмотрены независимые модули памяти для размещения данных и кода. Емкость ОЗУ для размещения данных составляет 128 (модель 8051) или 256 (модель 8052) байт; соответственно, 8-разрядного регистра RAM ADDR вполне достаточно для полной адресации этой памяти. Сравнение процессоров Pentium, UltraSPARC и 8051 Основным компонентом любого компьютера является тракт данных. Он содержит несколько регистров, одну, две или три шины, а также один или несколько функциональных блоков, например АЛУ и схему сдвига. В основном цикле вызываются несколько операндов из регистров и передаются по шинам к АЛУ и другому функциональному блоку на выполнение. После завершения операции результаты вновь сохраняются в регистрах. Каким будет новый ассемблерный код при условии, что компилятор является оптимизирующим? Команда ISHR (целочисленный арифметический сдвиг вправо) Компьютер содержит двухуровневую кэш-память

Adobe Photoshop редактор для работы с графикой