Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Хотя ввод-вывод, управляемый прерываниями, более эффективен, чем простой программируемый ввод-вывод, он все еще занимает много процессорного времени для передачи данных между памятью и контроллером ввода-вывода (при этомчерез процессор должны пройти все пересылаемые данные). Таким образом, обе описанные формы ввода-вывода обладают двумя недостатками.
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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!