Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учеб Пособ_Гончаровский.doc
Скачиваний:
1317
Добавлен:
29.03.2015
Размер:
3.65 Mб
Скачать

Задания

1. Конвейеризация

Рассмотрим таблицу распределения конвейера на рис.8. Предположим, что процессор располагает логикой продвижения, которая способна сказать, что команда A записывает в тот же регистр, из которого читает команда B и, следовательно, результат, записанный командой A, может быть прямо продвинут в АЛУ не дожидаясь завершения записи. Предположим, что логика продвижения не тратит времени.

Дать исправленную таблицу распределения. Сколько циклов потеряют пузыри?

2. Иерархия памяти

1. Рассмотрим функцию compute_variance для вычисления дисперсии целых чисел из массива data.

1 int data[N];

2

3 int compute_variance() {

4 int sum1 = 0, sum2 = 0, result;

5 int i;

6

7 for(i=0; i < N; i++) {

8 sum1 += data[i];

9 }

10 sum1 /= N;

11

12 for(i=0; i < N; i++) {

13 sum2 += data[i] * data[i];

14 }

15 sum2 /= N;

16

17 result = (sum2 - sum1*sum1);

18

19 return result;

20 }

Предположим, что программа выполняется на 32-разрядном процессоре с кэш прямого отображения с параметрами (m; S; E; B) = (32; 8; 1; 8). Сделаем следующие допущения:

• целое представляется 4 байтами;

• sum1, sum2, result, и I сохраняются в регистрах;

• data сохраняется в памяти, начиная с адреса 0x0;

Необходимо ответить на следующие вопросы:

1) Рассмотрим случай, когда N = 16. Сколько промахов кэш будет в этом случае?

2) Предположим N = 32. Вычислить новое значение числа промахов.

3) Рассмотрим выполнение для N = 16 и 2-входовой кэш с параметрами

(m; S; E; B) = (32; 8; 2; 4). Сколько промахов кэш будет в этом случае?

2. Кэш использует среднюю часть бит адреса как множество индексов, а старшую как тэг. Почему так сделано? Как изменится производительность кэш, если средние биты использовать как тэг, а старшие как индекс?

3. Рассмотрим программу на Си и упрощенное отображение памяти 16-разрядного микроконтроллера как показано на рисунке.

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

Можно допустить, что в этой системе целые являются 16-битными, нет операционной системы, защиты памяти и что программа была откомпилирована и загружена в область C памяти.

1) Для каждой переменной n, m, и a показать, где в памяти (A, B, C, или D) переменные будут сохраняться.

2) Определить, что будет делать программа, если содержимое адреса 0x0010 при старте равно 0.

3) Определить, что будет делать программа, если содержимое адреса 0x0010 при старте равно 1.

3. Базовые устройства ввода-вывода встроенных систем

1. Предположим, что 4-х разрядный ADC-преобразователь работает по принципу последовательных приближений. Диапазон входного сигнала от Vmin=1 В (=0000) до Vmax=4.75 В (=1111). Какое количество шагов используется для преобразования значений 2.25 В, 3.75 В, and 1.8 В? Изобразить временную диаграмму преобразования этих значений.

4. Язык проектирования аппаратуры VHDL

  1. Пусть дана реализация шины как на рисунке.

Какое значение из множества IEEE 1164 std_logic для VHDL будет на шине (bus), если оба разрешающих входа установить в ’0’ (ena1 = ena2 = ’0’)?

Какое значение из множества IEEE 1164 std_logic для VHDL будет на шине (bus), если ena1 = ’0’, ena2 = ’1’ and f 2 = ’1’?