Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







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





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

Основные принципы компьютера Фон Неймана:

  • Принцип использования двоичной системы счисления для представления данных и команд.
  • Принцип программного управления. - Программа состоит из набора команд, которые выполняются процессором друг за другом в определенной последовательности.
  • Принцип однородности памяти. - Как программы (команды), так и данные хранятся в одной и той же памяти (и кодируются в одной и той же системе счисления — чаще всего двоичной). Над командами можно выполнять такие же действия, как и над данными.
  • Принцип адресуемости памяти. - Структурно основная память состоит из пронумерованных ячеек; процессору в произвольный момент времени доступна любая ячейка.
  • Принцип последовательного программного управления - Все команды располагаются в памяти и выполняются последовательно, одна после завершения другой.
  • Принцип условного перехода.

 

 

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

  • извлечение очередной команды машинного кода,
  • декодирование и выполнение команды

в автоматическом режиме. В результате глобально адресуемая память и счетчик команд создают поток команд, которые УУ декодирует, а АЛУ исполняют.

 

Управляющие стратегии вычислений

Команда выполняется, если предыдущая команда, определенная в машинном коде, выполнена (control flow).

• Команда выполняется, когда требуемые операнды готовы (data flow).

• Команда выполняется, когда ее результат требуется другой команде (demand driven).

• Команда выполняется, когда появляются частичные образы данных (pattern driven).

 

Узкие места архитектуры фон Неймана

Последовательное выполнение команд

Хранение данных и программы в одном ОЗУ

Один канал связи

 

Архитектурные усовершенствования

Оптимизация подсистемы памяти

• Контроллер памяти

• Высокоскоростная шина

• Кэш и иерархия памяти

• Виртуальная память

• Аппаратная предвыборка данных и команд

Оптимизация выполнения команд

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

• Упрощение набора команд

• Истинный параллелизм

– Данные (SIMD)

– Инструкции

– Потоки

– Программы

Иерархия памяти. Основной принцип построения иерархической памяти. Типичная схема иерархии памяти.

 

Идея иерархической (многоуровневой) организации памяти заключается в использовании на одном компьютере нескольких уровней памяти, которые характеризуются разным временем доступа к памяти и объемом памяти. (Время доступа к памяти это время между операциями чтения/записи, которые выполняются по случайным адресам.) Основой для иерархической организации памяти служит принцип локальности ссылок во времени и в пространстве.

Локальность во времени состоит в том, что процессор многократно использует одни и те же команды и данные.

Локальность в пространстве состоит в том, что если программе нужен доступ к слову с адресом A, то скорее всего, следующие ссылки будут к адресам, расположенным по близости с адресом A.

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

сокращению количества обращений к оперативной памяти

совмещению обработки текущего фрагмента программы и пересылки данных из основной памяти в буферную память.

Схема:

  • Регистровая память – 1 такт
  • Кэш 1-го уровня – 1-2 такта
  • Кэш 2-го уровня – 3-5 тактов
  • Кэш 3-го уровня – 6-11 тактов
  • Основная память – 12-55 тактов
  • Внешняя память - 106 тактов

 

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

 

Схема построения кэш-памяти

• Кэш-память построена на принципе локальности ссылок во времени и в пространстве.

• Кэш-контроллер загружает копии программного кода и данных из ОП в кэш-память блоками, равными размеру строки за один цикл чтения. Процессор читает из кэш-памяти по словам.

• Кэш-контроллер перехватывает запросы процессора к основной памяти и проверяет, есть ли действительная копия информации в кэш-памяти.

 

Запрос на чтение

М в М (R1): запрос на чтение приводит к кэш-попаданию, данные находятся в кэш-памяти и передаются в процессор.

Е в Е (R2): как и в предыдущем случае, запрос на чтение приводит к кэш-попаданию, данные находятся в кэш-памяти и передаются в процессор.

S в S (R3): запрос на чтение приводит к кэш-попаданию, данные находятся в кэш-памяти и передаются в процессор.

I в E (R4): запрос на чтение приводит к кэш-промаху, данных в кэш-памяти нет. Кэш-контроллер запускает внешний цикл чтения для того, чтобы прочитать информацию и переходит в эксклюзивное состояние

I в S (R5): как и в предыдущем случае

I в I (R6): запрос на чтение приводит к кэш-промаху, данных в кэш-памяти нет. Однако заполнение кэш-строки не может быть выполнено кэш-контроллером. Таким образом, строка остается недействительной.

Запрос на запись

М в М (W1): запрос на запись приводит к кэш-попаданию, данные находятся в кэш-памяти и перезаписываются. Это соответствует стратегии кэш-памяти с отложенной записью

Е в М (W2): запрос на запись приводит к кэш-попаданию. Кэш-контроллер перезаписывает кэш-строку и отмечает ее как модифицированную. Этот случай также соответствует стратегии кэш-памяти с отложенной записью.

S в E (W3): запрос на запись приводит к кэш-попаданию. Поскольку исходная строка помечена как разделяемая, она может храниться и в других кэш-блоках. Согласно протоколу MESI, этот элемент должен быть объявлен недействительным, и кэш-контроллер поэтому запускает цикл записи через внешнюю шину. Таким образом, после этого строка будет находиться только в локальной кэш-памяти; в соответствии с циклом сквозной записи, элемент в основной памяти также обновляется. После этого кэш-строка объявляется эксклюзивной.

S в S (W4): в этом случае запрос на запись тоже приводит к кэш-попаданию. Однако W4 соответствует стратегии кэш-памяти со сквозной записью. По этой причине все последующие запросы на запись передаются на шину, что обеспечивает соблюдение стратегии сквозной записи; кэш-строка остается помеченной как разделяемая.

I в I (W5): запрос на запись приводит к кэш-промаху, данных в кэш-памяти нет. Нужный отсутствующий элемент данных из основной памяти в кэш-память не загружается. Кэш-строка остается недействительной.

Просмотр

M в S (S1): цикл проверки обнаруживает модифицированную кэш-строку, поэтому недействительной она не объявляется. Соответствующая кэш-строка перезаписывается в основную память.

M в I (S2): цикл проверки обнаруживает модифицированную кэш-строку; на этот раз она объявляется недействительной. Соответствующая кэш-строка перезаписывается в основную память.

E в S (S3): цикл проверки обнаруживает кэш-строку, помеченную как эксклюзивная. Она не изменялась и поэтому не должна перезаписываться в основную память. Эта операция служит для пересылки строки, которая вначале находилась только в одной кэш-памяти, во вторую.

E в I (S4): в цикле проверки была обнаружена кэш-строка, помеченная как эксклюзивная. Она не изменялась, поэтому ее также не надо перезаписывать в основную память. В противоположность предыдущему случаю, кэш-строка должна быть объявлена недействительной,

S в S (S5): в цикле проверки была обнаружена кэш-строка, помеченная как разделяемая.

S в I (S6): в цикле проверки была обнаружена кэш-строка, помеченная как разделяемая. Она не изменялась и поэтому не должна перезаписываться в основную память при последующем объявлении ее недействительной.

I в I (S7): в цикле проверки была обнаружена кэш-строка, помеченная как недействительная, т.е. не содержащая достоверной информации.

DLP

Векторные вычисления (SIMD) – SIMD

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

• Единообразная обработка массивов данных

Pentiumы II, III, IV

 

ILP-процессоры

Имеют несколько исполнительных устройств

• Исполняют несколько команд одновременно

 

TLP

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

Крупнозернистая многопоточность (Coarse-grained MT)

• 2 и более аппаратных контекстов

Регистры общего назначения

– Счетчик команд

– Буфер выборки инструкций

• Одновременно не более 1 нити

• Аппаратное переключение контекстов при прерывании

 

Мелкозернистая многопоточность (Fine-grained MT)

2 и более аппаратных контекстов

– Регистры общего назначения

– Счетчик команд

• Одновременно не более 1 нити

• Аппаратное переключение на каждом такте

 

Одновременная многопоточность (Simultaneous MT)

2 и более аппаратных контекстов

– Регистры общего назначения

– Буфер выборки инструкций

– Буфер переупорядочивания

– Стек возврата

• Привязка команд и нитей

• До нескольких нитей одновременно

• Контексты активны, переключения не происходит

CMP

• POWER 4

• Barcelona

• Clovertown

• Opteron

SMT

• Alpha 21464

• Pentium 4

• Itanium 2

ILP-процессоры

• Имеют несколько исполнительных устройств

• Исполняют несколько команд одновременно

 

Суперскалярные

Сложный конвейер

• Простой компилятор

• Меньше ресурсов процессора

– Регистры

– Исп. устройства

– Кэш

• Меньше команд за такт: 3, 4, 5 (<50%)

VLIW / EPIC

• Простой конвейер

• Сложный компилятор

• Больше ресурсов процессора

– Регистры

– Исп. устройства

– Кэш

• Больше команд за такт: 6 (>50%)

 

Itanium2 Эльбрус 2000 – VLIW/EPIC

Alpha Power – RISC суперскаляр

 

Параллелизм данных

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

 

 

Векторные вычисления (SIMD)

• Единообразная обработка массивов данных

 

SIMD-расширения были введены в архитектуру x86 с целью повышения скорости обработки потоковых данных. Основная идея заключается в одновременной обработке нескольких элементов данных за одну инструкцию.

 

• Векторно-конвейерные процессоры

– Cray

– Fujitsu VX/VP

– NEC SX

• Векторные расширения

– x86: MMX, 3DNow!, SSE, SSE2, …

– PowerPC: AltiVec

• Перспективные векторные процессоры

– STI Cell

– Intel Larabee

 

Первой SIMD-расширение ввела фирма Intel - это расширение MMX. Оно стало использоваться в процессорах Pentium MMX и Pentium II. Расширение MMX работает с 64-битными регистрами MM0-MM7, физически расположенными на регистрах сопроцессора, и включает 57 новых инструкций для работы с ними. 64-битные регистры логически могут представляться как одно 64-битное, два 32-битных, четыре 16-битных или восемь 8-битных упакованных целых

 

Расширение 3DNow! - Технология 3DNow! была введена фирмой AMD в процессорах K6. Расширение работает с регистрами 64-битными MMX, которые представляются как два 32-битных вещественных числа с одинарной точностью. Система команд расширена 21 новой инструкцией, среди которых есть команда выборки данных в кэш L1.

Расширение SSE

С процессором Intel Pentium III впервые появилось расширение SSE. Это расширение работает с независимым блоком из восьми 128-битных регистров XMM0-XMM7. Каждый регистр XMM представляет собой четыре упакованных 32-битных вещественных числа с одинарной точностью. Команды блока XMM позволяют выполнять как векторные, так и скалярные операции. Кроме инструкций с блоком XMM в расширение SSE входят и дополнительные целочисленные инструкции с регистрами MMX, а также инструкции управления кэшированием.

 

Расширение SSE2

В процессоре Intel Pentium 4 набор инструкций получил очередное расширение - SSE2. Оно позволяет работать с 128-битными регистрами XMM как с парой упакованных 64-битных вещественных чисел двойной точности, а также с упакованными целыми числами: 16 байт, 8 слов, 4 двойных слова или 2 учетверенных (64-битных) слова. Введены новые инструкции вещественной арифметики двойной точности, инструкции целочисленной арифметики, 128-разрядные для регистров XMM и 64-разрядные для регистров MMX. Ряд старых инструкций MMX распространили и на XMM (в 128-битном варианте).

4-я лаба

 

Недостатки

  • Долгое время планирования потока команд.
  • Невозможность учесть динамику исполнения программы.

 

Примеров данной архитектуры является Itanium

 

Явный ILP (параллелизм на уровне команд)

  • Компилятор объединяет команды процессора в связки по три, которые могут быть

выполнены параллельно.

  • Процессор обеспечивает большое число ресурсов для реализации ILP.

Способы увеличения ILP

  • Явная спекуляция по данным и управлению (уменьшает задержки по памяти).
  • Предикатное исполнение команд (устраняет ветвления).
  • Аппаратная поддержка программной конвейеризации циклов.
  • Предсказание ветвлений.

Простой широкий конвейер

  • Много команд за такт (до 6)

Способы увеличения ILP

  • Явная спекуляция по данным и управлению (уменьшает задержки по памяти).
  • Предикатное исполнение команд (устраняет ветвления).
  • Аппаратная поддержка программной конвейеризации циклов.
  • Предсказание ветвлений.

Простой широкий конвейер

  • Много команд за такт (до 6)

CMP

• POWER 4

• Barcelona

• Clovertown

• Opteron

SMT

• Alpha 21464

• Pentium 4

• Itanium 2

CMP + SMT

• POWER 5

• UltraSPARC T2

• Keifer

 

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

Основные принципы компьютера Фон Неймана:

  • Принцип использования двоичной системы счисления для представления данных и команд.
  • Принцип программного управления. - Программа состоит из набора команд, которые выполняются процессором друг за другом в определенной последовательности.
  • Принцип однородности памяти. - Как программы (команды), так и данные хранятся в одной и той же памяти (и кодируются в одной и той же системе счисления — чаще всего двоичной). Над командами можно выполнять такие же действия, как и над данными.
  • Принцип адресуемости памяти. - Структурно основная память состоит из пронумерованных ячеек; процессору в произвольный момент времени доступна любая ячейка.
  • Принцип последовательного программного управления - Все команды располагаются в памяти и выполняются последовательно, одна после завершения другой.
  • Принцип условного перехода.

 

 

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

  • извлечение очередной команды машинного кода,
  • декодирование и выполнение команды

в автоматическом режиме. В результате глобально адресуемая память и счетчик команд создают поток команд, которые УУ декодирует, а АЛУ исполняют.

 







ЧТО ПРОИСХОДИТ, КОГДА МЫ ССОРИМСЯ Не понимая различий, существующих между мужчинами и женщинами, очень легко довести дело до ссоры...

Конфликты в семейной жизни. Как это изменить? Редкий брак и взаимоотношения существуют без конфликтов и напряженности. Через это проходят все...

Что вызывает тренды на фондовых и товарных рынках Объяснение теории грузового поезда Первые 17 лет моих рыночных исследований сводились к попыткам вычис­лить, когда этот...

ЧТО ТАКОЕ УВЕРЕННОЕ ПОВЕДЕНИЕ В МЕЖЛИЧНОСТНЫХ ОТНОШЕНИЯХ? Исторически существует три основных модели различий, существующих между...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.