- •Экзаменационные вопросы по курсу Архитектура эвм и систем
- •4. Физические основы эвм: понятие транзистора, электронные логические вентили.
- •16.Память эвм: операции доступа к памяти
- •17.Архитектура Intel ia-32.
- •17.Система команд микропроцессора на примере Intel ia-32
- •19.Режимы адресации памяти в архитектуре Intel ia-32.
- •20.Организация ветвлений и циклов на языке ассемблера Intel ia-32.
- •21. Организация памяти эвм, кэширование.
- •22.Кэширование. Прямое и ассоциативное отображение
- •23.Кэширование. Множественно-ассоциативное отображение
- •24.Кэширование. Алгоритмы замещения
- •25.Организация памяти эвм, виртуальная память
- •26. Виртуальная память, преобразование адресов.
- •28. Прерывания. Векторы прерываний, приоритеты прерываний, маскирование прерываний.
- •29. Прямой доступ к памяти
- •30. Суперскалярная обработка команд
- •31.Сегментация памяти для семейства процессоров ia-32. Реальный и защищенный режим.
- •32.Конвейерная обработка команд.
- •33. Основы мультитредовой архитектуры
- •34. Способы оценки производительности процессоров
- •35. Большие компьютерные системы: параллельная обработка.
- •36.Большие компьютерные системы: архитектура многопроцессорных систем
29. Прямой доступ к памяти
Прямой доступ к памяти (англ. Direct Memory Access, DMA) —режим обмена данными между устройствами или же между устройством и основной памятью (RAM) безучастия Центрального Процессора (ЦП). В результате скорость передачи увеличивается, так как данные непересылаются в ЦП и обратно.
Кроме того, данные пересылаются сразу для многих слов, расположенных по подряд идущим адресам, чтопозволяет использование т. н. «пакетного» (burst) режима работы шины — 1 цикл адреса и следующие заним многочисленные циклы данных. Аналогичная оптимизация работы ЦП с памятью крайне затруднена.
В оригинальной архитектуре IBM PC (шина ISA) был возможен лишь при наличии аппаратного DMA-контроллера (микросхема с индексом Intel 8237).
DMA-контроллер может получать доступ к системной шине независимо от центрального процессора.Контроллер содержит несколько регистров, доступных центральному процессору для чтения и записи.Регистры контроллера задают порт (который должен быть использован), направление переноса данных(чтение/запись), единицу переноса (побайтно/пословно), число байтов, которое следует перенести.
ЦП программирует контроллер DMA, устанавливая его регистры. Затем процессор даёт команду устройству(например, диску) прочитать данные во внутренний буфер. DMA-контроллер начинает работу, посылаяустройству запрос чтения (при этом устройство даже не знает, пришёл ли запрос от процессора или отконтроллера DMA). Адрес памяти уже находится на адресной шине, так что устройство знает, куда следуетпереслать следующее слово из своего внутреннего буфера. Когда запись закончена, устройство посылаетсигнал подтверждения контроллеру DMA. Затем контроллер увеличивает используемый адрес памяти иуменьшает значение своего счётчика байтов. После чего запрос чтения повторяется, пока значение счётчикане станет равно нулю. По завершении цикла копирования устройство инициирует прерывание процессора,означающее завершение переноса данных. Контроллер может быть многоканальным, способнымпараллельно выполнять несколько операций.
30. Суперскалярная обработка команд
Конвейеризация обеспечивает параллельную обработку команд. При использовании этой технологии конвейер содержит несколько команд, находящихся на разных ступенях выполнения. Пока первая команда производит операцию АЛУ, вторая декодируется, а третья выбирается из памяти. Команды поступают в конвейер в том порядке, в каком они располагаются в программе. При отсутствии конфликтов на каждом такте в конвейере завершается выполнение очередной команды и появляется новая команда. Таким образом, максимальная пропускная способность конвейера равна одной команде за такт.
С целью повышения производительности процессор может быть оборудован несколькими обрабатывающими устройствами, чтобы на каждом из них обрабатывалось параллельно несколько команд. При такой организации процессора на одном такте может быть запущено на выполнение нескольких команд. Процессоры такого типа называются суперскалярными.Суперскалярную архитектуру имеют многие современные высокопроизводительные процессоры.
Чтобы поддерживать очередь команд заполненной, процессор должен иметь возможность выбирать из кэша несколько команд за раз. Это особенно важно для суперскалярного режима выполнения команд, которому требуется более широкое соединение с кэш-памятью и несколько блоков выполнения. В частности, целочисленным командам и командам с плавающей запятой в суперскалярном процессоре отведены раздельные блоки выполнения.
На рис. 9.9 приведен пример процессора с двумя блоками выполнения: для целочисленных операций и операций с плавающей запятой. Блок выборки команд способен считывать из кэша по две команды за раз и сохранять их в очереди. На каждом такте блок диспетчеризации извлекает из очереди и декодирует одну или две команды. Если одна из команд обрабатывает целочисленные значения, а другая — числа с плавающей запятой, при отсутствии конфликтов обе команды диспетчеризируются на одном такте.
В суперскалярном процессоре конфликты сильнее влияют на производительность, чем в обычном конвейерном процессоре. Компилятор предотвращает многие конфликты, оптимальным образом выбирая и переупорядочивая команды. Например, для процессора, показанного на рис. 9.9, он может обеспечить чередование операций с плавающей запятой и целочисленных операций. Это позволит блоку диспетчеризации поддерживать непрерывную работу целочисленного арифметического устройства и арифметического устройства с плавающей запятой. В общем случае предельное повышение производительности достигается за счет такого переупорядочения команд компилятором, при котором максимально используются возможности всех доступных устройств.
