Файл: Процессор персонального компьютера. Назначение, функции, классификация процессора (Арифметико-логическое устройство).pdf
Добавлен: 31.03.2023
Просмотров: 133
Скачиваний: 1
СОДЕРЖАНИЕ
ГЛАВА 1. ЦЕНТРАЛЬНЫЙ ПРОЦЕССОР
ГЛАВА 2. СОСТАВ ЦЕНТРАЛЬНОГО ПРОЦЕССОРА
2.1 Арифметико-логическое устройство
2.2. Шина адреса и шина данных
2.6 Кэш центрального процессора
2.9 Математический сопроцессор
ГЛАВА 3. АРХИТЕКТУРА ЦЕНТРАЛЬНОГО ПРОЦЕССОРА
3.3 Суперскалярная архитектура
2.9 Математический сопроцессор
Сопроцессор – это специальный процессор, который увеличивается возможности ЦП, но реализованный в виде отдельного модуля.
Сопроцессор, предназначенный для процессоров без интегрированного модуля, увеличивающий множество команд центрального процессора, при этом обеспечивая его функционалом модуля операций с плавающей запятой, называют математическим сопроцессором.
Модуль операций с плавающей запятой (или с плавающей точкой; англ. floating point unit (FPU)) — часть процессора для выполнения широкого спектра математических операций над вещественными числами.
Простым «целочисленным» процессорам для работы с вещественными числами и математическими операциями требуются соответствующие процедуры поддержки и время для их выполнения. Модуль операций с плавающей запятой поддерживает работу с ними на уровне примитивов — загрузка, выгрузка вещественного числа (в/из специализированных регистров) или математическая операция над ними выполняется одной командой, за счёт этого достигается значительное ускорение таких операций.
ГЛАВА 3. АРХИТЕКТУРА ЦЕНТРАЛЬНОГО ПРОЦЕССОРА
Архитектура ЭВМ— это «многоуровневая иерархия аппаратно-программных средств, из которых строится ЭВМ. Каждый из уровнений допускается много вариантное построение и применение.» [7, c. 6] Понятие архитектуры ЭВМ является комплексным и включает в себя:
структурную схему ЭВМ;
средства и способы доступа к элементам структурной схемы;
организацию и разрядность интерфейсов ЭВМ;
набор и доступность регистров;
организацию и способы адресации памяти;
способы представления и форматы данных ЭВМ;
набор машинных команд ЭВМ;
форматы машинных команд;
обработку нештатных ситуаций (прерываний).
Архитектура центрального процессора— это «совокупность научных идей, структурных, организационных и технических решений, определяющих основные принципы функционирования процессора, его наблюдаемые характеристики и области практического применения.» [7, c. 6]
3.1 Архитектура фон Неймана
Большинство современных процессоров для персональных компьютеров в общем основаны на той или иной версии циклического процесса последовательной обработки информации, изобретённого Джоном фон Нейманом.
Д. фон Нейман придумал схему постройки компьютера в 1946 году.
Важнейшие этапы этого процесса приведены ниже. В различных архитектурах и для различных команд могут потребоваться дополнительные этапы. Например, для арифметических команд могут потребоваться дополнительные обращения к памяти, во время которых производится считывание операндов и запись результатов. Отличительной особенностью архитектуры фон Неймана является то, что инструкции и данные хранятся в одной и той же памяти.
Этапы цикла выполнения:
Процессор выставляет число, хранящееся в регистре счётчика команд, на шину адреса, и отдаёт памяти команду чтения;
Выставленное число является для памяти адресом; память, получив адрес и команду чтения, выставляет содержимое, хранящееся по этому адресу, на шину данных, и сообщает о готовности;
Процессор получает число с шины данных, интерпретирует его как команду (машинную инструкцию) из своей системы команд и исполняет её;
Если последняя команда не является командой перехода, процессор увеличивает на единицу (в предположении, что длина каждой команды равна единице) число, хранящееся в счётчике команд; в результате там образуется адрес следующей команды;
Данный цикл выполняется неизменно, и именно он называется процессом (откуда и произошло название устройства).
Во время процесса процессор считывает последовательность команд, содержащихся в памяти, и исполняет их. Такая последовательность команд называется программой и представляет алгоритм работы процессора. Очерёдность считывания команд изменяется в случае, если процессор считывает команду перехода — тогда адрес следующей команды может оказаться другим. Другим примером изменения процесса может служить случай получения команды останова или переключение в режим обработки прерывания.
Команды центрального процессора являются самым нижним уровнем управления компьютером, поэтому выполнение каждой команды неизбежно и безусловно. Не производится никакой проверки на допустимость выполняемых действий, в частности, не проверяется возможная потеря ценных данных. Чтобы компьютер выполнял только допустимые действия, команды должны быть соответствующим образом организованы в виде необходимой программы.
3.2 Конвейерная архитектура
Общая идея конвейера связана с разбиением некоторого процесса обработки объектов на независимые этапы и организацией параллельного выполнения во времени различных этапов обработки различных объектов, передвигающихся по конвейеру от одного этапа к другому. Поэтому основой разработки конвейера является разбиение процесса на независимые этапы. Рассмотрим такое разбиение на примере машинной команды умножения чисел с плавающей точкой.
Конвейерная архитектура (pipelining) была введена в центральный процессор с целью повышения быстродействия. Обычно для выполнения каждой команды требуется осуществить некоторое количество однотипных операций, например: выборка команды из ОЗУ, дешифрация команды, адресация операнда в ОЗУ, выборка операнда из ОЗУ, выполнение команды, запись результата в ОЗУ. Каждую из этих операций сопоставляют одной ступени конвейера. Например, конвейер микропроцессора с архитектурой MIPS-I содержит четыре стадии:
- получение и декодирование инструкции (Fetch)
- адресация и выборка операнда из ОЗУ (Memory access)
- выполнение арифметических операций (Arithmetic Operation)
- сохранение результата операции (Store)
После освобождения k-й ступени конвейера она сразу приступает к работе над следующей командой. Если предположить, что каждая ступень конвейера тратит единицу времени на свою работу, то выполнение команды на конвейере длиной в n ступеней займёт n единиц времени, однако в самом оптимистичном случае результат выполнения каждой следующей команды будет получаться через каждую единицу времени.
Действительно, при отсутствии конвейера выполнение команды займёт n единиц времени (так как для выполнения команды по-прежнему необходимо выполнять выборку, дешифрацию и т. д.), и для исполнения m команд понадобится единиц времени; при использовании конвейера (в самом оптимистичном случае) для выполнения m команд понадобится всего лишь n + m единиц времени.
Факторы, снижающие эффективность конвейера:
простой конвейера, когда некоторые ступени не используются (напр., адресация и выборка операнда из ОЗУ не нужны, если команда работает с регистрами);
ожидание: если следующая команда использует результат предыдущей, то последняя не может начать выполняться до выполнения первой (это преодолевается при использовании внеочередного выполнения команд, out-of-order execution);
очистка конвейера при попадании в него команды перехода (эту проблему удаётся сгладить, используя предсказание переходов).
Некоторые современные процессоры имеют более 30 ступеней в конвейере, что увеличивает производительность процессора, однако приводит к большому времени простоя (например, в случае ошибки в предсказании условного перехода.)
3.3 Суперскалярная архитектура
Способность выполнения нескольких машинных инструкций за один такт процессора. Появление этой технологии привело к существенному увеличению производительности.
3.4 CISC-процессоры
Complex Instruction Set Computer — вычисления со сложным набором команд. Процессорная архитектура, основанная на усложнённом наборе команд. Типичными представителями CISC является семейство микропроцессоров Intel x86 (хотя уже много лет эти процессоры являются CISC только по внешней системе команд).
3.5 RISC-процессоры
Для быстрого выполнения программы, написанной на языке высокого уровня, не нужны сложные машинные команды - гораздо более важно сократить время выполнения наиболее часто используемых команд. Этот принцип был положен в основу RISC-архитектуры, которая представляет собой улучшенный вариант неймановской архитектуры. Благодаря сокращению набора команд упрощаются аппаратные схемы, а значит, обеспечивается оптимизация выполнения часто используемых команд. Кроме того, за счет применения большого числа регистров уменьшается частота (число) доступов к памяти, что также позволяет повысить скорость выполнения команды.
Reduced Instruction Set Computer — вычисления с сокращённым набором команд. Архитектура процессоров, построенная на основе сокращённого набора команд. Характеризуется наличием команд фиксированной длины, большого количества регистров, операций типа регистр-регистр, а также отсутствием косвенной адресации. Концепция RISC разработана Джоном Коком (John Cocke) из IBM Research, название придумано Дэвидом Паттерсоном (David Patterson).
Среди первых реализаций этой архитектуры были процессоры MIPS, PowerPC, SPARC, Alpha, PA-RISC. В мобильных устройствах широко используются ARM-процессоры.
3.6 MISC-процессоры
Minimum Instruction Set Computer — вычисления с минимальным набором команд. Дальнейшее развитие идей команды Чака Мура, который полагает, что принцип простоты, изначальный для RISC-процессоров, слишком быстро отошёл на задний план. В пылу борьбы за максимальное быстродействие, RISC догнал и перегнал многие CISC процессоры по сложности. Архитектура MISC строится на стековой вычислительной модели с ограниченным числом команд (примерно 20-30 команд).
3.7 Параллельная архитектура
Архитектура фон Неймана обладает тем недостатком, что она последовательная. Какой бы огромный массив данных ни требовалось обработать, каждый его байт должен будет пройти через центральный процессор, даже если над всеми байтами требуется провести одну и ту же операцию. Этот эффект называется узким горлышком фон Неймана.
Для преодоления этого недостатка предлагались и предлагаются архитектуры процессоров, которые называются параллельными. Параллельные процессоры используются в суперкомпьютерах.
Возможными вариантами параллельной архитектуры могут служить (по классификации Флинна):
SISD — один поток команд, один поток данных;
SIMD — один поток команд, много потоков данных;
MISD — много потоков команд, один поток данных;
MIMD — много потоков команд, много потоков данных
ГЛАВА 4. ФУНКЦИИ ЦЕНТРАЛЬНОГО ПРОЦЕССОРА
Центральный процессор выполняет очень важную функцию в компьютере, поэтому от его мощности зависит корректность и скорость выполнения работы остальных компонентов компьютера. Например, при недостаточной мощности центрального процессора, программа не может стабильно просчитываться, что в свою очередь сказывается, например, на видеокарте, которая может в последствии не корректно себя проявить.
Когда логика программы доходит до процессора, то её выполнение неизбежно, т.к. команды, выполняемые на данном этапе находятся в самом нижайшем уровне управления, т.е., иначе говоря, на самом базовом, из возможных, уровне выполнения программы. На данном уровне невозможно перехватить на корректность выполнения или же возможность утери данных, команда выполняется по принципу «как есть», поэтому для устранения огромного количества проблем, необходимо создавать корректно организованные программы с учётом большинства возможных рисков.
Каждый цикл выполнения команды центральным процессором выполняется с определённой скоростью, которая задаётся тактовым генератором. Данный генератор, в свою очередь, задаёт равную последовательность импульсов с определённой частой, которая называется – тактовой частотой.
В общем случае основными функциями центрального процессора являются:
- выборка (чтение) выполняемых инструкций. Каждая команда сохраняется в памяти и имеет свой собственный адрес. Процессор запоминает этот адрес из программного счетчика, который отвечает за отслеживание того, какую инструкцию ЦП должен выполнить следующей.
- декодирование кода - все программы, которые должны быть выполнены, будут переведены на язык Ассемблер. Код Ассемблера выполнен в бинарных инструкциях, которые понятны процессору. Этот шаг называется декодированием.;
- вывод (чтение) данных из памяти или устройства ввода/вывода;
- ввод (запись) данных в память или устройство ввода/вывода;
- обработка данных (операндов), в том числе арифметические операции над ними;
- адресация памяти, то есть задание логического адреса памяти, с которым будет производиться обмен;
- обработка прерываний и режима прямого доступа;
- Выполнение. При выполнении инструкции, процессор может сделать одно из трех действий: передать инструкцию в АЛУ (арифметико-логическое устройство), переместить данные из одного места памяти в другое, или перейти к другому адресу;
- Исполнение. Процессор должен передать результаты после выполнения инструкции, эти выходные данные записываются в память.