Глава 4 
Архитектура ПК


I поколение ЭВМ (1945-1954 гг.). Появились процессоры, состоящие из двух частей: арифметико-логического устройства и управляющего устройства. Появились ОЗУ, устройства ввода вывода. Машины первого поколения были основаны на лампах, программы писались на Assembler'е.

II поколение (1954-1964 гг.). Машины работали на транзисторах. Использовались языки Fortran, Algol, Cobol. Появились первые операционные системы. 

III поколение (1965-1970 гг.). Стали использоваться интегральные схемы. Появились мини-ЭВМ. Появилось совместимое программное обеспечение и пакеты прикладных программ. 

IV поколение (1970-1984 гг.). Появились большие и сверхбольшие интегральные схемы. В это же время появляются микропроцессоры, развивается супер-ЭВМ. 

V поколение (микропроцессорное) В 1976 году фирма INTEL разработала i 8086: регистры 16 бит, адресная шина 20 бит, поэтому i 8086 мог адресовать 1 Мб оперативной памяти. В 1982 году был создан i 80286. Этот процессор мог работать в двух режимах: реальном и защищенном, поддерживал многозадачность и виртуальную память. Адресная шина 24 бита - 16 Мб оперативной памяти. В 1985 году появился i 80386: регистры 32 бита, режим страничной адресации. Потом появился i 80486: параллельная обработка информации. В 1993 году появился Pentium: 2 конвейера, шина данных 64 бит. 

Архитектура, с точки зрения пользователя - совокупность основных характеристик, таких как система команд, организация памяти, система адресации, операции ввода-вывода. С точки зрения разработчика вычислительных систем, архитектура - принцип действия конфигурации, взаимное соединение основных логических узлов. В современных компьютерах используется архитектура Фон Неймана

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


Программа пишется на языке высокого уровня или Assembler'е и затем переводится на машинный язык с помощью программы-транслятора. Программа представляет собой последовательность машинных команд. Каждая команда состоит из кода команды и может содержать операнды (обрабатываемые данные). Операндами могут быть непосредственно данные, адреса в оперативной памяти, имена регистров и т. д.. При запуске программы системный загрузчик COMMAND.COM загружает программу в оперативную память, после чего процессор начинает ее исполнение.
Процессор состоит из двух частей:
-Шинного интерфейса 
-Операционного устройства 
Шинный интерфейс выбирает данные и команды из памяти. Он же записывает результаты в оперативную память. Операционная часть процессора состоит из двух частей: арифметико-логического устройства (АЛУ) и устройства управления (УУ). АЛУ выполняет арифметические и логические операции. УУ управляет порядком выборки команд и данных и записи результатов. В процессоре находятся регистры. Регистр - небольшая (32 бита), но очень быстродействующая область памяти. К регистрам, в отличии от ячеек оперативной памяти, обращаются не по адресам, а по именам. Все вычисления и выборка команд производятся только с помощью регистров, причем за некоторыми командами закреплены определенные регистры. 
Особенности архитектуры процессоров i 80486 и семейства Pentium
Суперскалярная архитектура
Конвейер - специальное устройство, которое разбивает выполнение команды на несколько этапов: 
Выборка команд из памяти и оперативной памяти. 
Декодирование команды (разбиение на микрокоманды). 
Генерация адреса, при которой определяются адреса операндов в памяти. 
Выполнение команды с помощью АЛУ 
Запись результата. 
Конвейер позволяет ускорить работу процессора, так как команда переходит из устройства выборки в устройство декодирования, и в устройство выборки можно поместить новую команду. В результате одновременно на конвейере может находиться 5 команд. Процессоры, имеющие 1 конвейер (i 80486), называются скалярными, а 2 и более (Pentium - 2 конвейера, семейство P6 (Pentium Pro/II/III) - 3 конвейера) - суперскалярными. 
Особенности архитектуры процессоров семейства P6
Раздельное кэширование кода и данных
Кэширование - способ увеличения быстродействия системы, за счет хранения данных и команд в кэше (очень быстрой памяти), находящемся внутри процессора. Pentium содержит 2 блока кэш-памяти первого уровня (L 1) по 8 Кб: один для данных, другой для команд. Данные в кэш первого (L 1) поступают из кэша второго уровня (L 2) по 64-битной шине. 
Предсказание правильного адреса перехода
Переход - запланированное изменение последовательного выполнения программы, обычно в каждых 6-8 командах содержится 1 команда перехода. Поэтому через каждые 6-8 команд приходится очищать конвейер и заполнять его заново. Поэтому в архитектуру Pentium'а был введен блок предсказания перехода. Имеется буфер меток перехода, который хранит информацию о последних 256 переходах. Блок предсказания перехода предполагает, что пройденная ветвь будет пройдена снова, соответствующая команда загружается на конвейер. Правильность предсказаний составляет 80%. 
Динамический анализ потока данных
Проводится анализ зависимости команд от данных и регистров, для того чтобы оптимизировать поток команд. Главное - максимальная загрузка конвейера, ради этого нарушается порядок выполнения команд. Однако сбоев в выполнении программы не происходит, так как логика исполнения программы будет сохранена. 
Интеллектуальное исполнение
Обозначает способность процессора выполнять неупорядоченные команды, а затем восстанавливать исходный порядок команд. Все промежуточные команды хранятся во временных регистрах, блок удаления и восстановления постоянно просматривает буфер команд, ищет те, которые уже выполнены и не имеют связи с другими командами. Такие команды удаляются, а сформированные ими данные помещаются в оперативную память или регистры, в том порядке, который предусмотрен программой.
Порядок работы конвейера в процессорах семейства P6 
Устройство шинного интерфейса посылает запросы оперативной памяти по системной шине. 
Считываемые данные помещаются в кэш второго уровня (L 2). 
Из кэша второго уровня (L 2) данные поступают в кэш данных первого уровня (L 1), а команды в кэш команд первого уровня (L 1).
Запросы шинному интерфейсу на операнды команд посылаются устройством связи с памятью и буфером переупорядочивания запросов памяти. Устройство связи с памятью определяет какие операнды необходимы, а буфер переупорядочивания запросов памяти ищет их сначала в кэше данных первого уровня (L 1), затем в кэше второго уровня (L 2), а затем заставляет шинный интерфейс формировать запрос к оперативной памяти.
Устройство выборки команд извлекает из кэша команд первого уровня (L 1) 32-байтную строку. 
Если среди выбранных команд встретилась команда перехода, то посылается запрос блоку вычисления адреса следующей команды. В этом блоке из команды считывается адрес перехода, и такой адрес ищется в буфере меток перехода. В буфере меток перехода хранится информация о последних 256 переходах. 
Если метка не найдена, тогда загружающиеся из памяти команды последовательно идут по конвейеру, пока команда перехода не дойдет до исполнительного устройства. Исполнительное устройство выполняет эту команду и определяет правильно ли была выполнена команда. Если да, то команда продолжает выполняться; если нет, то адрес перехода записывается в буфер меток перехода, конвейер очищается и загружается команда соответствующая адресу перехода. 
Если метка найдена в буфере меток перехода, предполагается, что пройденная ветвь будет пройдена снова, и загружается команда по адресу перехода. После выполнения команды перехода исполнительным устройством правильность перехода подтверждается или нет. 
Из устройства выборки команд команда попадает в устройство декодирования. 
В устройстве декодирования находится 3 декодера. Простые команды преобразуются в одну микрокоманду, а сложные в 2-4. Информация о преобразовании команд в микрокоманды хранится в устройстве командного управления. После декодирования микрокоманды могут выполняться в произвольном порядке и могут обращаться к одним и тем же регистрам. Во избежание конфликта используется набор из 40 временных регистров.
Микрокоманды поступают в таблицу регистровых алиасов, где микрокомандам присваивается информация о соответствующих временных регистрах. 
Микрокоманды помещаются в буфер переупорядоченных команд. 
Буфер микрокоманд готовых к исполнению. 
Буфер микрокоманд готовых к исполнению просматривает буфер переупорядоченных команд и ищет готовые микрокоманды и посылает их в исполнительное устройство. Результаты выполнения команд снова помещаются в блок переупорядоченных команд.
Команды выполняются с помощью пяти исполнительных устройств. Целочисленное устройство кроме вычислений определяет правильность перехода. 
Блок удаления и восстановления просматривает блок переупорядоченных команд, находит выполненные команды и удаляет их. 
Удаленные микрокоманды восстанавливаются в исходном порядке и результаты вычисления записываются в регистры и оперативную память.

Hosted by uCoz