Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Прямой доступ к памяти



Хотя ввод-вывод, управляемый прерываниями, более эффективен, чем про­стой программируемый ввод-вывод, он все еще занимает много процессорного времени для передачи данных между памятью и контроллером ввода-вывода (при этомчерез процессор должны пройти все пересылаемые данные). Таким об­разом, обе описанные формы ввода-вывода обладают двумя недостатками.

1. Скорость передачи данных при вводе-выводе ограничена скоростью, с кото­рой процессор может проверять и обслуживать устройство.

2. Процессор занят организацией передачи данных; при вводе-выводе для ка­ждой передачи данных должна быть выполнена определенная последова­тельность команд.

Для перемещения больших объемов данных может использоваться более эффективный метод — прямой доступ к памяти (direct memory access — DMA). Функции DMA выполняются отдельным контроллером системной шины или могут быть встроены в контроллер ввода-вывода. В любом случае метод работает следующим образом. Когда процессору нужно прочитать или записать блок данных, он генерирует команду для модуля DMA, посылая ему следующую информацию:

• указание, требуется ли выполнить чтение или запись;

• адрес устройства ввода-вывода;

• начальный адрес блока памяти, использующегося для чтения или записи;

• количество слов, которые должны быть прочитаны или записаны.

Передав полномочия по выполнению этих операций контроллеру DMA, процессор продолжает работу. Контроллер DMA слово за словом передает весь блок данных в память или из нее» не задействуй при этом процессор. После окончания передачи контроллер DMA посылает процессору сигнал прерывания. Таким образом, процессор участвует только в начале и в конце передачи (рис. 1.19,в).

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

РЕКОМЕНДУЕМАЯ ЛИТЕРАТУРА

Обсуждающиеся в этой главе темы детально описаны в книге [STAL00]. Кроме нее, имеется много других руководств по устройству и архитектуре компьютеров. В числе достойных внимания учебников можно отметить следующие: исчерпывающий обзор представлен в [РАТТ98]; [HENN96] — более специализи­рованная книгатех же авторов, в которой акцент делается на количественных аспектах, характеризующих структуру компьютера.

HENN96 Heiwesy J., Patterson D. Computer Architecture: A Quantitative Approach. — San Mateo, CA: Morgan Kaufmann.1996

PATT98 Patterson D., Hennesy J. Computer organization, and Design: The Hardware/Software Interface. — San Mateo, CA: Morgan Kaufmann,1998/

STAL00 Stallings W. Computer Organization and Architecture. 5th ed. — UpperSaddle River, NJ: Prentice Hall, 2000.

ЗАДАЧИ

1.1. В гипотетический машине, изображенной на рис. 1.3, кроме указанных име­ются команды:

0011— загрузить в аккумулятор данные, поступившие от устройства ввода-вывода;

0111 — вывести содержимое аккумулятора на устройство ввода-вывода. При использовании этих команд устройство идентифицируется с помощью 12-битового адреса. Изобразите схему исполнения (по аналогии со схемой, пред­ставленной на рис. 1.4) следующей программы.

1. Загрузить аккумулятор данными из устройства номер 5.

2. Добавить к аккумулятору содержимое ячейки памяти940.

3. Вывести содержимое аккумулятора на устройство номер 6.

Решите задачу при условии, что из устройства номер 5 поступит число 3, а в ячейке 940 находится число 2.

1.3. На рис. 1.4 исполнение программы разбито на шесть этапов. Расширьте это описание, добавив шаги с использованием регистров MAR и MBR.

1.3. Рассмотрим гипотетический 32-битовый микропроцессор, 32-битовые команды которого состоят из двух полей. В первом байте содержится код команды, а в остальной части команды — непосредственно операнд или его адрес.

а. Какова максимально возможная емкость адресуемой памяти (в байтах)?

б. Рассмотрите факторы, влияющие на скорость системы, если шина микро­процессора имеет (1) 32-битовую локальную адресную шину и 16-битовую локальную шину данных или (2) 16-битовую локальную адресную шину и 16-битовую локальную шину данных.

в. Сколько битов требуется для программного счетчика и регистра команд?

1.4. Рассмотрим гипотетический 32-битовый микропроцессор, генерирующий 16-битовые адреса (предположим, например, что программный счетчик и адрес­ные регистры имеют размер 16 бит) и обладающий 16-битовой шиной данных.

а. Какое максимальное адресное пространство может быть непосредственно доступно этому процессору, если он соединен с "16-битовой памятью"?

б. Какое максимальное адресное пространство может быть непосредственно доступно этому процессору, если он соединен с "8-битовой памятью"?

в. Какие особенности архитектуры позволят этому микропроцессору получить доступ к отдельному "пространству ввода-вывода"?

г. Сколько портов ввода-вывода способен поддерживать этот микропроцессор, если в командах ввода и вывода задаются 8-битовые номера портов? Сколь­ко портов ввода-вывода он может поддерживать с 16-битовыми адресами? Поясните свой ответ.

1.5. Рассмотрим 32-битовый микропроцессор с 16-битовой внешней шиной данных, которая управляется синхронизатором с тактовой частотой 8 МГц. Пусть цикл шины этого микропроцессора по длительности равен четырем циклам синхро­низатора. Какую максимальную скорость передачи данных может поддержи­вать этот процессор? Что будет лучше для повышения производительности: сменить его внешнюю шину данных на 32-битовую или удвоить частоту сигна­ла синхронизатора, поступающего на микропроцессор? Внесите свое предложе­ние и обоснуйте его.

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

INPR — регистр входных данных,8 бит;

OUTR — регистр выходных данных, 8 бит;

FGI — флаг входа, 1 бит;

FGO — флаг выхода, 1 бит;

IEN — регистр разрешения прерываний, 1 бит.

Входной поток данных, поступающий от клавиатуры, и выходной, выводимый на принтер, контролируются модулем ввода-вывода. Телетайп кодирует алфавитно-цифровые символы в 8-битовые слова и декодирует 8-битовые слова в алфавитно-цифровые символы. Флаг входа устанавливается при вводе 8-битового слова с телетайпа во входной регистр; флаг выхода устанавливается при выводе слова на принтер.

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

б. Опишите, как это можно сделать более эффективно, используя регистр IEN.

1.7. Практически во всех системах, в которые входят контроллеры DMA, доступ DMA к основной памяти выполняется с более высоким приоритетом, чем доступ процессора. Почему?

1.8. Контроллер DMA передает символы из внешнего устройства в основную память со скоростью 9600 бит в секунду- Процессор может выбирать команды со скоростью 1млн команд в секунду. Насколько процессор замедлит свою работу из-за работы DMA?

1.9. Компьютер состоит из процессора и устройства ввода-вывода Л, подсоединенного к основной памяти М через совместно используемую шину, которая используется как шина данных и имеет ширину, равную одному слову. Макси­мальная производительность процессора — 106 команд в секунду. Команда включает в себя в среднем пять машинных циклов, для трех из которых ис­пользуется шина памяти. Операции чтения-записи в памяти включают в себя один машинный цикл. Предположим, что процессор все время выполняет про­граммы в фоновом режиме, что требует 95% его производительности, а в са­мих программах не содержится ни одной команды ввода-вывода. Пусть дли­тельность цикла процессора равна длительности цикла шины. Теперь предста­вим, что между М и Л следует переслать очень большой блок данных.

а. Оцените максимальную скорость передачи данных при выполнении опера­ций ввода-вывода, которые могут пройти через D, при использовании про­граммируемого ввода-вывода, если для операции передачи одного слова тре­буется выполнение двух команд. б. Оцените ту же скорость при передаче данных с использованием DMA.

1.10. Рассмотрим последовательность инструкций.

for (i = 0; i < 20; i++)

for (j = 0;-j <.10; j++)

a[i] = a[i] * j

а. Приведите пример пространственной локализации этой последовательности.

б. Приведите пример временной локализации этой последовательности.

1.11. Обобщите уравнения (1.1) и (1.2) из приложения А к данной главе для n-уровневой иерархической структуры памяти.

1.12. Рассмотрим основную память (т) и кэш (с), характеризующиеся следующими параметрами:


Тс=100ns Cc=0.01 цент/бит

Тm=1200ns Cm=0.001 цент/бит

а. Сколько стоит 1 Мбайт основной памяти?

б. Сколько стоит 1 Мбайт основной памяти, выполненной по технологии кэша?

в. Какова результативность поиска Н, если эффективное время доступа на 10% больше, чем время доступа к кэшу?

1.13. В компьютере есть кэш, основная память и диск, выступающие в роли виртуальной памяти. Если запрашиваемое слово находится не в кэше, а в основной памяти для его загрузки в кэш требуется 60 ns (сюда входит время, которое требуется для первоначальной проверки кэша). После этого происходит новый запрос. Если нет в оперативной памяти, чтобы получить его с диска, необходимозатратить 12 ms, а затем еще 60 ns, чтобы скопировать его в кэш; после этого происходит новый запрос. Результативность поиска в кэше равна 0.9, а результативность поиска в основной памяти — 0.6. Найти среднее время, которое требуется для полу­чения доступа к слову в данной системе.

1.14. Предположим, что при вызове процедур и возврате из них процессор использу­ет стек. Можно ли в такой схеме обойтись без программного счетчика, исполь­зуя вместо него вершину стека?





Дата публикования: 2014-11-29; Прочитано: 1118 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.01 с)...