- •Алгоритм в широком смысле – это такая последовательность действий, предназначенная для некого исполнителя этих действий, при котором каждое действие понятно исполнителю.
- •Регистры общего назначения.
- •Сегментные регистры.
- •Регистры смещений.
- •Регистр флагов.
- •Динамическая память.
- •Внутренняя энергонезависимая память.
- •Предсказание условных переходов с последующим декодированием команд, находящихся в предсказанной ветви (branch prediction).
- •По принципу действия.
- •По физической природе элементной базы.
- •По этапам создания.
- •5. По архитектуре.
-
Динамическая память.
Основной метод построения оперативной памяти (RAM –Random Access Memory).
Ячейки представляют собой аналоги конденсаторов, образованных элементами полупроводниковых микросхем. При записи логической «1» конденсатор заряжается, при записи «0» - разряжается. Если к ячейке долго не обращаться, то за счет токов утечки конденсатор разряжается и информация теряется. Поэтому необходима постоянная подзарядка каждой ячейки, отсюда и название памяти – динамическая. Энергию необходимо тратить лишь для подзарядки конденсаторов, поэтому энергопотребление ниже, чем у статической памяти. Физически размер ячейки меньше, поэтому на одном кристалле удается размещать множество ячеек. Однако платой за это все является более сложный механизм работы. Конденсаторы расположены на пересечении горизонтальных и вертикальных шин матрицы. При считывании на микросхему памяти подается адрес строки матрицы, сопровождаемый сигналом RAS (строб адреса строки), затем через некоторое время – адрес столбца, с сигналом (CAS). Стоящий на пересечении этих строк и столбцов конденсатор разряжается через схему считывания, и если заряд был не нулевым – выставляется «1», затем, чтобы информация не потерялась, конденсатор подзаряжается до прежнего уровня.
Основные типы оперативной памяти:
FPM DRAM (Fast Page Mode) – динамическая память с быстрым страничным доступом. После выбора строки матрицы (RAS), он может удерживаться некоторое время, в течение которого может многократно меняться столбец (CAS). То есть если данные находятся внутри одной строки, быстродействие увеличивается. Время доступа 60-70 нс. Используется с МП 80386 и 80486.
RAM EDO (Extended Data Out) – динамическая память расширенного удержания. Удерживается последняя выбранная ячейка, что удобно при последовательном (блочном) считывании данных.
45 нс.
SDRAM (Synchronous DRAM) – память с синхронным доступом. В отличие от рассмотренных выше асинхронных типов памяти, в которых выборка нужной ячейки осуществляется только по сигналам RAS и CAS, память этого типа использует сигнал тактовой частоты системной шины. Это позволяет осуществлять конвейерный принцип работы: одновременно осуществлять считывание (запись) в одну ячейку, с поиском другой. За счет этого удается исключить такты ожидания. Работает, как правило, на частоте системной шины (100, 133 МГц). Но возможна и асинхронная работа по тому же принципу. Время доступа – 5-10 нс
DDR SDRAM (Double Data Rate) – тоже, что и SDRAM, но данные передаются по обоим фронтам (и верхним и нижним) тактового сигнала, что увеличивает максимальную пропускную способность в два раза. Частоты тоже увеличились и составляют 166, 200 (DDR400 или PC3200) МГц.
-
Внутренняя энергонезависимая память.
Хранит записанные данные и при отсутствии питающего напряжения. Основным режимом работы такой памяти является считывание данных. Запись информации, называемая программированием или «прошивкой», обычно значительно сложнее. Отсюда название – ПЗУ или ROM.
По возможностям программирования различают
- программируемые при изготовлении – масочные ПЗУ или ROM;
- программируемые однократно ППЗУ или PROM;
- программируемые многократно РПЗУ или EPROM в качестве них используется и флэш-память (память с электрическим стиранием).
ПЗУ используются для хранения неизменяемой информации, например, для хранения базовой системы ввода-вывода (BIOS), особенно удобна флэш-память, она позволяет прямо с «дискеты» обновлять BIOS. Флэш-память также используется в качестве внешней памяти. Быстродействие у ПЗУ меньше, чем у оперативной памяти, поэтому для увеличения быстродействия содержимое ПЗУ копируется в ОЗУ, эта копия, называемая теневой памятью ПЗУ, в последствии и используется.
Аппаратные методы ускорения обработки данных
Ключевыми методами являются распараллеливание операций, кэширование памяти и расширение системы команд.
Распараллеливание операций
Выделяют конвейерную и суперскалярную технологии.
Конвейеризация позволяет организовать параллельную обработку нескольких инструкций в одном исполнительном блоке (временное распараллеливание), а суперскалярная технология по нескольким исполнительным блокам (конвейерам).
При конвейеризации выполнение каждой инструкции разбивается на несколько этапов. Например, выборка очередной команды, ее декодирование, вычисление физический адресов операндов, загрузка их в исполнительные блоки, собственно, выполнение команды, запись полученных результатов. Каждый этап выполняется на своей ступени конвейера за один такт. Если длина конвейера n то одновременно могут выполняться n инструкций, и результат выполнения очередной инструкции выдается в каждый такт. Чем длинней конвейер, тем меньшая часть работы выполняется за время одного такта, и тем проще уменьшить время одного такта, то есть повысить тактовую частоту. Это бы увеличивало и производительность, если бы конвейер был всегда полностью загружен. Однако не всегда это удается по двум основным причинам:
-
Нарушение последовательности выполнения команд (из-за условных переходов).
-
Зависимость данных различных команд (когда одним из операндов одной инструкции является результат более ранней инструкции, которая еще не завершилась).
Если эти ситуации случаются, происходят остановы конвейера, вследствие чего, он очищается и начинает заполняться заново. То есть недовыполненные инструкции начинают выполняться заново. И чем длинней конвейер, тем больше теряется производительности (инструкции надо пройти все стадии конвейера), чтобы быть выполненной. Поэтому ищется компромиссная длина конвейера, когда выигрыш от распараллеливания все еще превышает потери из-за останова. В микроархитектуре процессоров PIII AMD K8 конвейер имеет 10-12 стадии, в микроархитектуре процессоров P4 число стадий увеличено до 20 (гиперконвейерная микроархитектура). В новых процессорах Intel Core Duo конвейер вновь небольшой (10-12 стадий).
Основными методами борьбы с остановами конвейера являются: