Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы_сиппо.doc
Скачиваний:
16
Добавлен:
22.04.2019
Размер:
230.91 Кб
Скачать
  1. Цикл команды процессора.

Программа в компьютере реализуется центральным процессором (ЦП) путем последовательного исполнения команд этой программы. Действия, требуемые для выборки (извлечения из оперативной памяти) и выполнения команды, называют циклом команды

Этапы цикла команды:

1) выборка команды (Instruction Fetch)

2) декодирование (Decode)

3) выполнение (Execute)

4) запись результата (Retire)

Этапы цикла команды:

1) выборка команды – процессор считывает команду из оперативной памяти или кэша по адресу, хранящемуся в специальном регистре – счетчике команд (IP – Instruction Pointer)

2) декодирование – считанная команда преобразуется в последовательность элементарных внутренних команд процессора – микроопераций

3) выполнение – происходят арифметические или логические операции над данными;

4) запись результата – полученный ответ записывается в оперативную память или кэш

2. Методы повышения производительности. Кэш-память. Конвейеризация. Суперскалярные процессоры.

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

Конвейеризация.

Идея конвейера (pipeline) можно не дожидаться завершения выполнения одной команды, а сразу переходить к следующей. Команда состоит из этапов, и за каждый этап отвечает отдельный блок процессора, образующий ступень конвейера. Для увеличения эффективности конвейера каждый этап делят на несколько подэтапов (суперконвейеризация). При использовании конвейера могут возникать конфликты.

1) Несколько команд одновременно обращаются к одному ресурсу (чаще всего к памяти).

2) Несколько команд обращаются к одной ячейке памяти в неверной последовательности.

3) неизвестно, какая команда будет выполняться после команды перехода.

Суперскалярные процессоры. В суперскалярных процессорах содержится несколько исполнительных блоков, работающих параллельно. Например, блоки целочисленной арифметики, арифметики с плавающей точкой, блоки чтения и записи из памяти. В таких процессорах обязателен блок диспетчеризации (Scheduler), отвечающий за распределение команд по исполнительным блокам. Наличие нескольких функциональных блоков приводит к тому, что наибольшая скорость выполнения может достигаться при внеочередном исполнении операций (Out-of-Order Execution). Более поздние операции могут исполняться перед ранними, если не зависят от порождаемых ими результатов. Механизм внеочередного исполнения позволяет в значительной степени сгладить эффект от ожидания считывания данных из кэшей верхних уровней и из оперативной памяти, что может занимать десятки и сотни тактов.