Конвейерная организация.
Существует тенденция выполнять в 1 момент времени более, чем 1 команду.
Суть в совмещении базовых операций – выполняется более, чем 1 базовая операция.
Базовые операции:
чтение кода команды, выборка команды ВК; - дешифрация кода ДК;
чтение операнда ОП; - выполнение команды В; -запись результата ЗР.
Некот. опер. могут быть повт.
выборка команды1 |
дешифрация команды1 |
оп.1, оп 2, … команды1 |
выполнение1 |
запись результата1 |
|
|
ВК 2 |
ДК 2 |
ОП 2 |
В 2 |
ЗР 2 |
|
|
ВК 3 |
ДК 3 |
ОП 3 |
В3 ЗР3 |
|
|
|
ВК 4 |
ДК 4 |
ОП 4 В4 |
|
|
|
|
ВК 5 |
… |
Ресурсы, используемые отдельными компонентами, различны. Обращение к памяти может потребовать общих ресурсов (например, при обращении к общей шине вв/выв). На сколько разрешим конфликт ресурсов, на столько больше ступеней можно организовать конвейер. В приведенном выше конвейере может выполняться до 5-ти команд.
Возможные конфликты:
структурные (связанные со структурой);
конфликты по данным (результат предыдущей команды влияет на выполнение следующей);
по управлению.
Решение структурных конфликтов:
- стараются уменьшать влияние - приостановка конвейера на 1 такт (pipeline bubble);
12.03.01
- дублирование – 1 шина на ввод, 2-я – на вывод.
Решение конфликтов по данным:
WAR – запись после чтения;
RAW – чтение после записи;
WAW – запись после записи.
1) вводятся дополнительные пути (пути обхода). Результат не записывается в регистр, а идет напрямую в исполнительное устройство. Т. е. в конвейере –1 такт.
2) дублирование – дополнительный набор регистров.
Не все конфликты по данным можно обойти, особенно в архитектурах с расширенным набором команд.
Для решения этих проблем используют методы планирования работы конвейера.
1-й вариант связан с упорядочением команд программными средствами – интерпретатор, компилятор.
2-й вариант – динамическая оптимизация:
обнаружение конфликтов на начальной стадии работы конвейера (при дешифрации команд);
использование буфера команд, т. е. команды анализируются не по одной, а в буфер помещается сразу набор команд, еще не выполненных. В буфере они перестанавливаются т. о., чтобы не было конфликта.
переименование регистров (дублирование). Должен существовать набор регистров, которые могут в процессе работы переименовываться => для выполнения одной команды – 1 набор регистров, а для другой конфликтующей команды – тот же набор, но другими именами.
Решение конфликтов по управлению
Эти конфликты дают наиболее существенные потери:
сброс конвейера (наипростейшее решение), однако это снижает производительность, т. к. в программе часты переходы.
Пути решения:
предсказание переходов;
дублирование вычислений.
Предсказание переходов.
Наиболее часты переходы вперед (60-70%). Переходы часто связаны с циклами. Высока вероятность повторных переходов => если хранить протоколы переходов, то их можно предсказать. Если переход 1-й раз выполнен в одном направлении, то вероятнее всего, что и в следующий раз – в том же, а в 3-й, 4-й и т. д. еще вероятнее. Каждому переходу в программе определяется признак (знак), который определяет, правильно или нет угадан предыдущий переход. С каждым циклом этот признак может ув. или ум. Имея 2-хразрядный признак, удается предсказать до 95% следующий переход.
Всовременных процессорах разработаны специальные блоки предсказания переходов, в состав которых входит сверхоперативная память, организованная по ассоциативным признакам (по типу кэш-памяти).
Примерная структура современного процессора (ссылка на структуру процессора, 26.02.01):
Ресурс кэш-памяти (внутренний) – до 32 кбайт. В кэше команд помещаются все команды, которые связаны с выполняемой процедурой. В очереди накапливается цепочка команд, которые анализируются планировщиком. CISC->RISC: расширенный набор обязательно перекодируется в систему команд ограниченного набора, т. к. для этого вида архитектуры конвейер работает более эффективно.
ОУ (операционное устройство) выполняет все операции. ОУ: РОНы, устройство целочисленной арифметики (м. б. > чем 1 блок), блок расширенной арифметики (с плавающей точкой), блоки векторной арифметики (MMX) и др.
Т. к. блоков несколько, то и работать они могут одновременно => одновременно могут выполняться > 1 команды => должен работать планировщик.
УУВ (УУ ветвлениями и переходами, устройство предсказания переходов).
КЭШ В (память, где хранится протокол ветвлений, переходов) помнит 4-8 тыс. точек переходов.
Система памяти
Назначение – хранение информации, в том числе и управляющей.
Классификация памяти:
I. По типу запоминающей среды.
1. Электронные компоненты – использующие транзисторы и др. Может быть статическая память (на триггерах) и запоминающие элементы (хранения заряда).
2. Магнитная среда и магнитные элементы (магнитные домены). Носители – лента, кубы, диски.
3. Оптическая среда (оптические диски). Свет – элемент воздействия на среду. Используются свойства материалов преломлять, поглощать, отражать фотоны.
19.03.01
4. Смешанные типы носителей (магнитооптические диски).
II. По способам доступа к информации (вопрос организации информации, способ записи, чтения и обработки).
Технология изготовления памяти.
Технология использования – аппаратные требования ВС (произвольная, последовательная выборка).
Способы доступа:
последовательный доступ (магнитная лента);
произвольный доступ – каждый элемент памяти может быть индивидуально адресован без перебора;
ассоциативный: доступ к элементам информационного поля происходит на основе некоторых признаков этой информации. При этом реальное размещение, адрес не используется;
смешанный (магнитооптические диски).
III. По функциональному назначению (с какой целью информация будет использоваться).
Сверхоперативная память – самая быстрая и близкая к процессору;
Оперативная память (используется для функционирования ПО);
Долговременная, внешняя (энергонезависимая, но не всегда) – магнитные, оптические диски, флэш-память.
Эта классификация не очень хорошо отражает особенности функционирования памяти, то есть здесь не отражены моменты передачи информации, ее назначения и использования.
Информация в процессе функционирования с 1 эл. памяти на др., поэтому развитие технологии схем памяти диктует разделение информации в процессе использования на отдельные элементы, т.е. на те, которые используются непосредственно в данный момент времени, и те, которые в данный момент не используются (но могут быть использованы).
Это привело к тому, что система памяти стала многоуровневой:
самый верхний уровень – сверхоперативная память (самая быстрая, дорогая, маленькая);
на следующем уровне – кэш. Доступ на этом уровне смешанный. Кэш также может быть несколькоуровневым (доступ к элементам на разных уровнях разный);
электронная оперативная память, в которой хранятся программы и данные. Ее размер гораздо больше. Здесь также может быть несколько уровней. В основном используется произвольный доступ.
внешняя память, в качестве которой используется магнитная, оптическая, электронная. Наиболее типичен последовательный доступ.