Файл: Процессор персонального компьютера. Назначение, функции, классификации процессора.pdf
Добавлен: 29.03.2023
Просмотров: 288
Скачиваний: 1
Одна из важных составных частей всех компьютеров - это так называемый тракт данных, состоящий из регистров, арифметико-логического устройства (АЛУ) и нескольких соединительных шин. Для типичного фон-неймановского процессора тракт данных может быть проиллюстрирован схемой:
Содержимое регистров поступает во входные регистры АЛУ, и в них данные будут находится, пока АЛУ производит вычисления. После того, как результат вычислений получен, АЛУ помещает его в выходной регистр. Несмотря на то, что на приведенной выше схеме в выходном регистре АЛУ приведена операция сложения, АЛУ может выполнять и другие операции.
Большинство команд можно разделить на две группы:
- команды типа регистр-регистр;
- команды типа регистр-память.
Команды первого типа вызывают два операнда из регистров, помещают их во входной регистр АЛУ, где над ними выполняется та или иная арифметическая или логическая операция, и переносят результат обратно в один из регистров. Этот процесс называется циклом тракта данных, в какой-то степени он определяет, что может делать машина. Современные компьютеры оснащаются несколькими АЛУ, работающими параллельно и специализирующимися на разных функциях. Чем быстрее происходит цикл тракта данных, тем быстрее компьютер работает.
Выполнение команд в центральном процессоре происходит за несколько шагов:
1) команды вызывается из памяти и переносится в реестр команд;
2) положение счетчика команд меняется, для того, чтобы теперь он указывал на следующую команду;
3) определяется тип выбранной команды;
4) в том случае, если команда использует слово из памяти, то определяется, где находится это слово;
5) слово переносится, если это необходимо, в регистр центрального процессора;
6) команда выполняется;
7) процессор переходит к выполнению шага 1, чтобы начать выполнение следующей команды.
Описанная последовательность шагов (выборка - декодирование - исполнение) является основой работы всех компьютеров.
Рассматривая архитектуры процессоров нельзя не затронуть тему так называемых конвейеров.
Как известно, одним из главных препятствий высокой скорости выполнения команд является необходимость их загрузки из памяти. Чтобы решить это проблему, можно вызывать команды из памяти заранее и хранить их в специальном наборе регистров. Такая идея появилась еще в 1959 году при разработке компьютера Stretch компании IBM, сам набор регистров для хранения команд был назван буфером выборки с упреждением. Таким образом, когда требовалась определенная команда, она вызывалась прямо из буфера, минуя обращение к памяти. При таком подходе команда по сути выполнялась за два шага: выборка команды; выполнение команды.
В дальнейшем эта идея развилась в концепцию так называемых конвейеров, в которой выполнение команды происходит уже за большее количество шагов, каждый из которых реализуется определенным аппаратным компонентом, причем все эти компонент могут работать параллельно.
Рассмотрим пример пятиступенчатого конвейера, схема которого представлена ниже:
Изображенный конвейер состоит из пяти блоков, которые называются ступенями. Принцип работы ступеней конвейера таков:
- блок С1 (первая ступень) вызывает команду из памяти и помещает ее в буфер, в котором эта команда будет хранится до тех пор, пока не потребуется;
- блок С2 (вторая ступень) осуществляет декодирование этой команды, определяя ее тип и типы ее операндов;
- блок С3 (третья ступень) определяет местоположение операндов в памяти или регистрах и вызывает эти операнды;
- блок С4 (четвертая ступень) выполняет команду, обычно проводя операнды через тракт данных;
- блок С5 (пятая ступень) записывает результат в нужный регистр.
Также на схеме конвейера выше мы можем рассмотреть принцип его работы во времени и каким образом выполнение команд может осуществляться параллельного. Мы видим, что на схеме отображено 9 циклов, работа каждого блока осуществляется параллельно с другими. Например, когда блок С1 уже передал команду 1 в буфер, а блок С2 начал работу над ее декодирование, блок С1 в свою очередь может продолжить работу со следующими командами - например, обработать команду 2 и так же положить ее в буфер.
Конвейеры позволяют добиться компромисса между временем запаздывания (время выполнения одной команды) и пропускной способностью процессора (количество команд, выполняемых процессором в секунду). При отсутствии конвейера выполнение команды займёт n единиц времени (так как для выполнения команды по прежнему необходимо выполнять выборку, дешифрацию и т. д.), и для исполнения m команд понадобится
единиц времени; при использовании конвейера (в самом оптимистичном случае) для выполнения m команд понадобится всего лишь n + m единиц времени[9].
Глава 3. Классификация процессоров
Существующие на сегодняшний день процессоры можно классифицировать по различным признакам - по производителю, по количеству ядер, по сфере применения (процессоры для персональных компьютеров, мобильных устройств, процессор для сервера), по типу архитектуры. Рассмотрим для начала различные архитектуры процессоров.
Возможности центрального процессора определяются архитектурой набора инструкций, которых существует два вида - CISC (complex instruction set computing - компьютер с полным набором команд) и RISC (reduced instruction set computing - компьютер с сокращенным набором команд). CISC процессоры способны выполнять сложные многошаговые операции используя один набор инструкций. Таким образом, один набор инструкций способен выполнять много низкоуровневых операций, например, хранение данных, арифметические операции и загрузка данных из памяти. В свою очередь RISC архитектура основана на принципе упрощенного набора инструкций, что позволяет достичь более высокой производительности[10].
3.1. CISC архитектура
Рассмотрим более подробно CISC архитектуру. Ее основоположником является считается фирма IBM с архитектурой IBM/360 и данная архитектура исторически является одной из первых. При разработке этого подхода была совершена попытка минимизировать количество инструкций для программ, пожертвовав количеством циклов для конкретной инструкции. Основная цель такого подхода - сократить "стоимость памяти", поскольку большие программы требуют большего количества памяти. Для решения этой проблемы был предложен подход уменьшения количества инструкций, путем группировки простых операций в одну инструкцию, несмотря на то, что инструкции при таком подходе становились более сложными. Выполнение сколь угодно сложной программы из системы команд процессора реализовывается аппаратно внутри самого процессора. Схема CISC архитектуры представлена на рисунке ниже:
Кроме того, в CISC архитектуре стремятся иметь отдельную машинную команду для каждого возможного типового действия по обработке данных.
Исторически эта архитектура появилась в тот период, когда совершенствование процессоров шло по пути создания такой вычислительной машины, которая способна выполнять как можно больше разных команд. Это упрощало работу программистов, которые писали программы на языке ассемблера (то есть практически на уровне машинных команд). Использование сложных команд позволяло сократить размер и время разработки программы.
В результате, сложилось основные характерные черты CISC процессоров, к которым можно отнести:
- наличие большого количества различных машинных команд, каждая из которых может выполняться за несколько тактов центрального процессора;
- наличие устройства управления с программируемой логикой;
- небольшое количество регистров общего назначения;
- различные формы команд с разной длиной;
- преобладание двухадресной адресации (которая используется для выполнения операций с двумя операндами)[11];
- развитый механизм адресации операндов, включающий различные методы косвенной адресации[12].
Примеры процессоров, построенных на основе CISC архитектуры:
- IBM 370/168 - представлен в 1970 году. Это 32 битный процессор, обладавший также четырьмя 64 битными регистрами для чисел с плавающей точкой;
- VAX 11/780 - представлен в 1977 года компанией Digital Equipment Corporation. Это был 32 разрядный процессор, поддерживавший большое количество способов адресации и инструкций;
- Intel 80486 (также известный как i486) - процессор, выпускавшийся с 1989 по 2007 год, поддерживавший 235 инструкций.
CISC подход имеет также свои сложности и проблемы. Например, на практике выяснилось, что многие сложные команды часто не использовались при написании программ. Часть некоторых команд со временем стало невозможно выполнять чисто аппаратными средствами, поэтому в процессорах постепенно появились блоки, которые в ходе выполнения команды заменяли сложный блок на последовательность более простых. И наконец, поскольку команды обладают высокой сложностью, а самих таких команд достаточно много, то устройство управления вычислительной машиной приходилось строить только на основе программируемой логики, то есть с привлечением "медленной" управляющей памяти. Таким образом, все перечисленные недостатки привели в последствии к повороту в сторону RISC архитектуры, однако ряд достоинств CISC архитектуры сохраняет свою актуальность и сегодня, поэтому ведущие фирмы-производители (Intel, AMD, IBM) и сегодня не отказываются от CISC подхода.
3.2. RISC архитектура
Перейдем к рассмотрению RISC архитектуры. В процессорах с такой архитектурой быстродействие увеличивается за счет упрощения инструкций, чтобы их декодирование было более простым, а время выполнения - короче. Набор команд здесь ограниченный по сравнению с CISC архитектурой, и каждая команда должна выполняться за один машинный такт. Такой подход позволяет облегчить повышение тактовой частоты и позволяет добиться более эффективного распараллеливания (суперскалярности). Количество транзисторов в таких процессорах меньше, за счет это снижается их стоимость и энергопотребление. При этом, как правило, производительность их повышается. В основе современных высокопроизводительных ЭВМ как раз лежат процессоры с архитектурой RISC.
Впервые идея RISC архитектуры была предложена Джоном Коком из компании IBM Research в 1975 году, первая реализация же осуществилась в 1980 году. В основе концепции RISC - сведение набора команд вычислительной машины к наиболее употребительным простейшим командам. За счет этого можно упростить схемотехнику процессора и добиться резкого сокращения времени выполнения каждой из "простых" команд. В свою очередь, более сложные команды реализуются как подпрограммы, состоящие из нескольких "простых" команд.
Характерные черты процессоров с RISC архитектурой;
- команды имеют фиксированную длину;
- процессор имеет большое число регистров, операций типа регистр-регистр;
- более простая структура устройства управления, за счет чего его физический размер также уменьшается. В следствие этого появляется возможность разместить на кристалле большее число регистров центрального процессора. Кроме того, остается больше места для других узлов ЦП и для дополнительных устройств: кэш-памяти, блока арифметики с плавающей запятой, части основной памяти, блока управления памятью, портов ввода/вывода;
- ориентация на построение максимально эффективного конвейера команд, то есть такого, где все команды извлекаются из памяти и поступают в центральный процессор (ЦП) на обработку в виде равномерного потока, причем ни одна команда не должна находиться в состоянии ожидания, а ЦП должен оставаться загруженным на протяжении всего времени.
Все перечисленные факторы положительно сказываются на общем быстродействии вычислительной машины.
Из преимуществ RISC архитектуры следует и важный ее принципиальный недостаток - сокращенное число команд. Из-за этого на выполнение некоторых операций приходится тратить несколько команд вместо одной в CISC, что приводит к удлинению кода программы, увеличению загрузки памяти и трафика команд между памятью и центральным процессором. Исследования показали, что RISC-программа в среднем на 30% длиннее CISC-программы, реализующей те же функции.
Хотя большое число регистров дает существенные преимущества, само по себе оно усложняет схему декодирования номера регистра, тем самым увеличивается время доступа к регистрам.
Устройство управления с аппаратной логикой, реализованное в большинстве RISC-систем, менее гибко, более склонно к ошибкам, затрудняет поиск и исправление ошибок, уступает при выполнении сложных команд[13].