
- •1. Функциональные роли компьютеров в сети
- •2. Шины и интерфейсы.
- •3. Сегментная организация оп и виртуальная память.
- •5. Архитектура современных процессоров, проблемы роста производительности.
- •512 Кбайт
- •6. Связь компьютера с периферийным устройством.
- •7. Методы адресации
- •№9. Архитектура фон Неймана – основные признаки.
- •10. Регистры процессора и его программная модель.
- •11. Классификация архитектур по параллельной обработке данных
- •12. Интерфейсы жд, эволюция производительности.
- •13. Система команд и архитектура эвм.
- •14. Способы организации кэш-памяти.
- •1. Где может размещаться блок в кэш-памяти?
- •2. Как найти блок, находящийся в кэш-памяти?
- •3. Какой блок кэш-памяти должен быть замещен при промахе?
- •4. Что происходит во время записи?
- •15. Многопроцессорные системы, классификация Флинна.
- •16. Магистрально-модульный способпостроения эвм
- •17. Тракт данных типичного процессора, система команд
- •18. Синхронный и асинхронный обмен данными, обмен по прерыванию.
- •19. Конвейерная и суперскалярная обработка данных.
- •20.Связь двух компьютеров.
- •21. Структура современного пк, взаимодействие основных блоков.
- •Материнская плата - основные электронные компоненты, определяющие структуру компьютера (Mother board)
- •Основные внешние устройства компьютера
- •22. Архитектурные особенности современных процессоров, Hyper Threading и мультиядерность.
- •23. Smp архитектура и ее развитие
- •24.Логическая организация памяти эвм.
- •Виртуальная память
- •Страничная организация памяти
- •Сегментная организация памяти.
- •25. Структура кэш – памяти процессораi486.
- •26. Топология физических связей компьютеров в сети.
- •Простейшие виды связи сети передачи данных
- •27. АрхитектураNuma.
- •28. Формат команды процессораi486 и адресация операндов.
- •30. Кластерные архитектуры и проблема связи процессоров в кластерной системе Кластерная архитектура
- •Проблемы выполнения сети связи процессоров в кластерной системе.
- •33. Пропускная способность и ее связь с методами кодирования.
- •34. Конвейерная обработка данных
- •№36. Анализ производительности эвм, пути развития. Увеличение производительности эвм, за счет чего?
- •Параллельные системы
- •Использование параллельных вычислительных систем
- •Закон Амдала и его следствия
- •№37. Архитектура «клиент-сервер».
- •35. Когерентность кэШей.
- •37. Архитектура клиент-сервер
- •38. Отличительные особенностиRisc– архитектуры
- •№42. Основные принципы построения систем ввода/вывода.
- •Физические принципы организации ввода-вывода
- •Интерфейс
- •Магистрально-модульный способ построения эвм
- •Структура контроллера устройства
- •Опрос устройств и прерывания. Исключительные ситуации и системные вызовы
- •Организация передачи данных
- •Прямой доступ к памяти (Direct Memory Access – dma)
- •Логические принципы организации ввода-вывода
- •Структура системы ввода-вывода
- •Буферизация и кэширование
- •39. Оперативная память эвм, основные параметры.
- •45. Дисковые массивы и уровни raid
- •51. Внешняя память компьютера
- •54. Классификация компьютерных сетей
- •55. Содержание понятий – транслятор, интерпретатор, компилятор и их связь с организацией вычислительного процесса
- •56. Технология Hyper-Threading
- •59. Закон Амдала и его следствия.
- •61. Производительность процессора и методы ее увеличения
34. Конвейерная обработка данных
Выполнение каждой команды складывается из ряда последовательных этапов (шагов, стадий), суть которых не меняется от команды к команде. С целью увеличения быстродействия процессора и максимального использования всех его возможностей в современных микропроцессорах используется конвейерный принцип обработкиинформации. Этот принцип подразумевает, что в каждый момент времени процессор работает над различными стадиями выполнения нескольких команд, причем на выполнение каждой стадии выделяются отдельные аппаратные ресурсы. По очередному тактовому импульсу каждая команда вконвейерепродвигается на следующую стадию обработки, выполненная команда покидаетконвейер, а новая поступает в него.
Конвейеризация (или конвейерная обработка) в общем случае основана на разделении подлежащей исполнению функции на более мелкие части, называемые ступенями, и выделении для каждой из них отдельного блока аппаратуры. Производительность при этом возрастает благодаря тому, что одновременно на различных ступенях конвейера выполняются несколько команд. Конвейерная обработка такого рода широко применяется во всех современных быстродействующих процессорах. Выполнение типичной команды можно разделить на следующие этапы:
С 1 – выборка команды (по адресу, заданному счетчиком команд, из памяти извлекается команда и помещается в буфер);
С 2 – декодирование команды (определение КОП и типа операндов);
С 3 – выборка операндов (определение местонахождения операндов и вызов их из регистров);
С 4 – выполнение команды;
С 5 – запись результата в нужный регистр.
Работу конвейера можно условно представить в виде временной диаграммы на которой обычно изображаются выполняемые команды, номера тактов и этапы выполнения команд. В качестве примера рассмотрим конвейерную машину с пятью этапами выполнения операций, которые имеют длительность 50, 50, 60, 50 и 50 нс соответственно. Пусть накладные расходы на организацию конвейерной обработки составляют 5 нс. Тогда среднее время выполнения команды в не конвейерной машине будет равно 260 нс. Если же используется конвейерная организация, длительность такта будет равна длительности самого медленного этапа обработки плюс накладные расходы, т.е. 65 нс. Это время соответствует среднему времени выполнения команды в конвейере. Таким образом, ускорение, полученное в результате конвейеризации, будет равно отношению:
Среднее время
выполнения команды в не конвейерном
режиме:
260
------- = 4 Среднее время выполнения команды в конвейерном режиме: 65
Рис. 12.2 Диаграмма работы простейшего конвейера
Рис. 12.3 Эффект конвейеризации – четырехкратное ускорение
Мы уже упоминали, что параллелизм нижнего уровня реализуется на однопроцессорных машинах. Название однопроцессорные предполагает, что подобные архитектуры выполняют только один поток команд. Классическим примером однопроцессорной архитектуры является архитектура фон Неймана со строго последовательным выполнением команд. По мере развития вычислительной техники архитектура фон Неймана обогатилась сначала конвейером фаз операций, а затем многофункциональной обработкой и получила обобщенное название SISD. Оба вида средств низкоуровнего параллелизма впервые были введены в компьютерах Control Data 6600 и 7600 в начале 70-х годов и с тех пор применяются во всех компьютерах повышенного быстродействия. Наибольшее развитие идеи SISD-параллелизма получили в RISC-архитектурах.
Однако, при конвейерной обработке часто возникают конфликты, которые препятствуют выполнению очередной команды в предназначенном для нее такте. Конфликты могут иметь различное происхождение, но в целом их можно охарактеризовать как структурные, поуправлениюи поданным.
Структурные конфликтывозникают в том случае, когда аппаратные средства процессора не могут поддерживать все возможные комбинации команд в режиме одновременного выполнения с совмещением. Эту ситуацию можно было бы ликвидировать двумя способами. Первый предполагает увеличение временитактадо такой величины, которая позволила бы все этапы любой команды выполнять за одинтакт. Однако при этом существенно снижается эффект конвейерной обработки, так как все этапы всех команд будут выполняться значительно дольше, в то время как обычно несколькихтактовтребует выполнение лишь отдельных этапов очень небольшого количества команд. Второй способ предполагает использование таких аппаратных решений, которые позволили бы значительно снизить затраты времени на выполнение данного этапа (например, использовать матричные схемы умножения). Но это приведет к усложнению схемы процессора и невозможности реализации на этой БИС других, функционально более важных, узлов.
Наиболее эффективным методом снижения потерь от конфликтов по управлениюслужитпредсказание переходов. Суть данного метода заключается в том, что при выполнении команды условного перехода специальный блок микропроцессора определяет наиболее вероятное направление перехода, не дожидаясь формирования признаков, на основании анализа которых этот переход реализуется. Процессор начинает выбирать из памяти и выполнять команды по предсказанной ветви программы (так называемоеисполнение по предположению, или "спекулятивное" исполнение). Однако так как направление перехода может быть предсказано неверно, то получаемые результаты с целью обеспечения возможности их аннулирования не записываются в память или регистры (то есть для них не выполняется этапWB), а накапливаются в специальном буфере результатов. Если после формирования анализируемых признаков оказалось, что направление перехода выбрано верно, все полученные результаты переписываются из буфера по месту назначения, а выполнение программы продолжается в обычном порядке. Если направление перехода предсказано неверно, то буфер результатов очищается. Также очищается иконвейер, содержащий команды, находящиеся на разных этапах обработки, следующие за командой условного перехода. При этом аннулируются результаты всех уже выполненных этапов этих команд.Конвейерначинает загружаться с первой команды другой ветви программы. Так как конвейерная обработка эффективна при большом числе последовательно выполненных команд, то перезагрузка конвейера приводит к значительным потерям производительности. Поэтому вопросам эффективного предсказания направления ветвления разработчики всех микропроцессоров уделяют большое внимание.
Методы предсказания переходов делятся на статические и динамические. При использовании статических методов до выполнения программы для каждой команды условного перехода указывается направление наиболее вероятного ветвления. Это указание делается или программистом с помощью специальных средств, имеющихся в некоторых языках программирования, по опыту выполнения аналогичных программ либо результатам тестового выполнения программы, или программой-компилятором по заложенным в ней алгоритмам. Методы динамического прогнозирования учитывают направления переходов, реализовывавшиеся этой командой при выполнении программы. Например, подсчитывается количество переходов, выполненных ранее по тому или иному направлению, и на основании этого определяется направление перехода при следующем выполнении данной команды. В современных микропроцессорах вероятность правильного предсказания направления переходов достигает 90-95 %.
Конфликты по даннымвозникают в случаях, когда выполнение одной команды зависит от результата выполнения предыдущей команды. Устранениеконфликтов по даннымтиповWARиWAWдостигается путем отказа от неупорядоченного исполнения команд, но чаще всего путем введения буфера восстановления последовательности команд.