- •Глава 29. Методы повышения производительности процессоров
- •29.1. Основные подсистемы компьютера
- •29.2. Последовательность действий процессора при выполнении команд
- •29.3. Структура ядра процессора при последовательном выполнении этапов команды
- •Время выполнения команды равно сумме времен всех ее этапов.
- •29.4. Методы повышения производительности ядер процессоров
- •29.5. Контрольные вопросы
Глава 29. Методы повышения производительности процессоров
29.1. Основные подсистемы компьютера
Упрощенная блок-схема компьютера и процессора представлена на рис. 29.1.
Рис. 29.1. Структура компьютера и процессора
29.2. Последовательность действий процессора при выполнении команд
При обработке машинной команды процессор выполняет следующие операции:
Чтение команды — процессор считывает команду из оперативной памяти.
Дешифрация команды, — процессор расшифровывает команду и определяет, какие действия ему предстоит выполнить.
Чтение данных — читаются данные из регистров или оперативной памяти.
Выполнение — выполняется заданная в команде операция над операндами.
Запись результата операции — результат операции записывается в регистр или оперативную память.
Подготовка адреса следующей команды - изменение содержимого счетчика команд.
Прерывание.
На первом шаге в фазе «Чтение команды», называемой также "Выборка из подсистемы памяти очередной команды", из ячейки оперативной памяти, адрес которой содержится в счетчике команд (регистре номера команды), извлекается команда и помещается в соответствующий регистр (буфер) для последующего декодирования. Содержимое регистра счетчика команд обычно определяет, какая следующая команда будет выбираться. Первоначально предполагается, что команды программы при последовательном алгоритме размещаются в ячейках оперативной памяти с последовательными адресами. Эта последовательность размещения команд интуитивно понимается как порядок написания команд программистом при формулировании им алгоритма решаемой задачи с помощью предоставленного набора команд процессора. Поэтому для определения адреса следующей команды процессор увеличивает содержимое счетчика команд на количество байт выполненной команды, или заменяет содержимое адресом перехода в случае выполнения команд условного или безусловного перехода.
На следующем шаге, называемом "Дешифрация" команда расшифровывается (декодируется).
Дальнейшие действия процессора зависят от типа команды, кода операции, типа адресов операндов и результата.
В простейшем случае, когда операнды и результат операции заданы в регистрах, в фазе «Выполнение» читаются операнды из регистров, выполняется операция над ними и результат заносится в указанный регистр.
В случае, когда один из операндов (или результат операции) задан в оперативной памяти, то выполняется фаза «Чтение данных» из оперативной памяти. Для этого в соответствии с заданным способом адресации формируется адрес операнда, который посылается в подсистему памяти. В ответ из подсистемы памяти через некоторое время процессор получает операнд. После этого фазе «Выполнение» выполняется заданная операция над операндами.
В фазе «Запись результата операции» результат операции заносится по заданному адресу.
После записи результата операции выполняется фаза «Подготовка адреса следующей команды» - содержимое счетчика команд увеличивается на величину, равную числу байтов выполняемой команды, т.е. готовится адрес следующей команды.
В завершающей фазе выполнения команды проверяется наличие запросов на прерывание от внешних источников. При наличии запроса на прерывание от внешнего источника и при разрешении выполняется фаза «Прерывание». Анализируется тип запроса на прерывание, определяется адрес программы обработки этого прерывания, и управление передается программе обслуживания запроса на прерывание.
