Основные принципы архитектуры фон Неймана. Устройство центрального процессора. Устройство центрального процессора

Страницы работы

Содержание работы

Операционные системы

Что вы должны знать ?

Что представляет собой компьютер с точки зрения прикладного программиста?

Диск

Принтер

Центральный процессор

Основная память

Шина

Основные принципы архитектуры фон Неймана

  • John von Neuman (1903-1957)
  • Принцип хранимой программы. Данные и программы запоминаются в основной памяти.
  • Каждый элемент памяти имеет адрес.
  • Команды выполняются последовательно.
  • Организация компьютера:
    1. CPU: Control Unit и ALU
    2. Main memory

Основные принципы архитектуры фон Неймана

Управляющее устройство

Основная память

Передача управления

Передача данных

Устройство центрального процессора

Центральный процессор

Управляющее устройство

АЛУ

Регистр

Данные

Команды

Основная память

Выполнение машинной команды

1. Fetch instruction - FI

2. Program counter increment

3. Decode instruction - DI

4. Calculate operand address - CO

5. Fetch operand - FO

6. Execute instruction - EI

7. Write operand - WO

8. Перейти к шагу 1

Интерпретатор простого компьютера

public class Interpretation { static int PC; static int AC; static int instr; static int instr_type; static int data_loc; static int data; static boolean run_bit = true;

Интерпретатор простого компьютера

public static void interpret (int memory [], int starting_address) { PC = starting address; while (run_bit) { instr = memory [PC]; PC = PC + 1; instr_type = getInstrType (instr); data_loc = findData (instr, type_instr); if (data_loc >= 0) data = memory (data_loc); execute (instr_type, data); } }

Интерпретатор простого компьютера

private static int getInstrType (int addr) { … } private static findData (int instr, int type) { … } private static void execute (int type, int data) { … } }

Pipelining

Конвейерная обработка означает, что выполнение нескольких команд совмещается во времени. Фазы конвейера (pipe stage): FI, DI, CO, FO, EI, WO. Время, требуемое для перехода с одной фазы на другую, называется машинным тактом – one clock cycle.

Пример. Конвейер из двух фаз: FI и EI

Пример (продолжение)

Пусть T – время выполнения одной команды. Тогда время выполнения 7 команд: (T/2) * 8 = 4 T. Если мы рассмотрим конвейер из 6 фаз: FI, DI, CO, FO, EI, WO, то время выполнения 7 команд будет равно (T/6) * 12 = 2T.

Производительность

  • Понятно, что если у нас будет конвейер из N фаз,
  • то через N-1 такт конвейер будет заполнен.
  • Очевидно, что чем больше количество фаз, тем
  • выше производительность.
  • Однако,
  • большое количество фаз увеличивает накладные расходы на перенос информации между фазами и синхронизацию фаз
  • увеличивается сложность CPU

Примеры

  • Pentium:
    • 5-фазовый конвейер для целочисленной арифметики
    • 8-фазовый конвейер для арифметики с плавающей точкой
  • PowerPC:
    • 4-фазовый конвейер для целочисленной арифметики
    • 6-фазовый конвейер для арифметики с плавающей точкой

Риски сбоя конвейера (Pipeline hazards)

  • Структурный сбой (Structured hazard)
  • Сбой по данным (Data hazard)
  • Сбой по управлению (Control hazard)

Структурный сбой конвейера

Некоторый ресурс требуется более, чем одной команде в потоке.

Структурный сбой конвейера

Для уменьшения влияния структурного сбоя некоторые устройства дублируются

CPU

Main memory

Data cache

Сбой конвейера по данным

Одна из двух последовательных команд не может быть выполнена до тех пор, пока не закончится другая. MUL R2, R3 R2 = R2 * R3 ADD R1, R2 R1 = R1 + R2

Сбой конвейера по данным

Есть возможность уменьшить задержку на один такт, если аппаратура в состоянии определить, что результат выполнения команды является операндом следующей

Свойства устройства выбора команд (Fetch Unit)

Большинство процессоров используют достаточно хитроумные устройства выбора команды, которые выбирают команды впрок, т.е. до того как они реально потребуются, и запоминают их в очереди.

Кэш команд

Очередь команд

Fetch Unit

. . .

Свойства устройства выбора команд (Fetch Unit)

Устройство выбора команд способно распознать команду перехода и вычислить целевой адрес. Поэтому команда безусловного перехода может выполняться без потерь: устройство выбора команд вычисляет целевой адрес и затем продолжает выбирать команды, начиная с этого адреса.

Сбой конвейера по управлению

Рассмотрим команду безусловного перехода . . . B lab . . . lab . . .

Сбой конвейера по управлению. Безусловный переход.

Устройство выбора команды способно, распознать команду перехода и сформировать фактический адрес перехода. Таким образом, задержки могут быть уменьшены: устройство выбора команды вычисляет адрес перехода и продолжает извлекать команды, расположенные в памяти, начиная с этого адреса. Т.е. остаток конвейера получает продолжение потока команд без задержки.

Похожие материалы

Информация о работе