0

Это предыдущие проблемы с домашней работой, но я использую их в качестве экзамена. Я изменяю числа вокруг от того, что на самом деле находится в этой проблеме. Я просто хочу убедиться, что я понимаю понятия. У меня уже есть ответы, просто нужно разъяснить, что я их понимаю. Это не домашнее задание, а обзор работы.понимание CPI и доступа к кешу

В любом случае, это основное внимание уделяется аспектам CPI

Проблема кулак:

приложение, работающее на 1 ГГц процессоре имеет 30% инструкции нагрузки магазина, 30% арифметику, а 40% инструкции ветвления , Индивидуальные ИПЦ равны 3 для хранения нагрузки, 4 для арифметики, 5 для инструкций филиала. Определите общий CPI этой программы для данного процессора.

Мой ответ: Общий индекс потребительских цен является суммой суб-ИВК, умножается на проценты, в которых они происходят, т.е. 3 * 0,3 + 4 * 0,3 + 5 * 0,4 = 0,9 + 1,2 + 2 = 4,1

Теперь процессор расширен для работы на частоте 1,6 ГГц. Индексы CPI инструкций филиала остаются неизменными, но индексы индекса нагрузки и арифметической инструкции увеличиваются до 6 циклов. Используется новый компилятор, который устраняет 30% команд ветвления и 10% загрузок. Определите новый общий индекс потребительских цен и коэффициент, с помощью которого приложение будет быстрее или медленнее.

Мой ответ: Вновь новый индекс потребительских цен - это всего лишь сумма его частей. Однако части изменились, и это необходимо учитывать. Инструкции на ветви упадут на 30% (0,4 * 0,7 = 0,28), а запасы груза упадут на 10% (0,3 * 0,9 = 0,27); арифметические инструкции теперь будут учитывать остальные инструкции (1-0,28-0,27 = 0,45), или 45%. Они будут умножаться на новые под-ИПЦ, чтобы получить: 6 * 0,45 + 6 * 0,27 + 5 * 0,28 = 5,72.

Теперь усиление процессора на 60% быстрее, а индекс CPI больше на (5.72-4.1) /4.1 = 39.5%. Таким образом, приложение будет работать примерно на 0,6 * 0,395 = 23,7% быстрее.

Теперь вторая проблема:

Новый процессор с загрузки/сохранения архитектуры имеет идеальный CPI 1,25. Типичными приложениями на этом процессоре являются сочетание 50% арифметических и логических, 25% условного разветвления и 25% загрузки/хранения. Доступ к памяти осуществляется через отдельный кеш данных и команд с 5% -ной пропускной способностью кеша и 10% -ной скоростью передачи данных. Штраф за пропущенный кеш составляет 100 циклов, а хиты не производят никаких штрафов.

Каков эффективный ИПЦ?

Мой ответ: эффективный CPI - это идеальный CPI, а также заторможенные циклы на инструкцию из-за доступа к кешу. Идеальный ИПЦ, как указано, 1.25. Замкнутые циклы на инструкцию составляют (0,1 * 100 * 0,25) + (0,05 * 100 * 1) = 7,5. 0.1 * 100 * 0.25 - это скорость передачи данных, умноженная на штраф за задержку цикла, который также умножается на процент загрузки/хранения (где происходит доступ к данным); 0,05 * 100 * 1 - это скорость пропуска инструкций, которая представляет собой частоту пропуска кеша команд, умноженную на штраф за задержку цикла, доступ к инструкциям осуществляется в 100% от программы, поэтому это умножается на 1. После этого эффективный ИПЦ 1,25 + 7,5 = 8,75.

Что такое пропуски на 1000 инструкций для типичных приложений и каково среднее время доступа к памяти (в тактовых циклах) для типичных приложений?

Мои ответы: промахи на 1000 инструкций равно забуксовавших циклов в инструкции из-за доступа к кэш-памяти (как указано выше: 7,5), деленное на 1000, что составляет 7,5/1000 = 0,0075

Когда обсуждая среднее время доступа к памяти (AMAT), сначала мы должны поговорить об общем количестве обращений здесь, то есть процент доступа к данным (25%) плюс процент доступа к инструкциям (100%) или 125% = 1,25. Доступ к данным равен .25/1.25, а доступ к инструкциям равен 1/1.25.

AMAT равняется проценту доступа к данным (0,25/1,25), умноженному на сумму времени удара (1) и скорости пропуска данных, умноженной на штраф за промах (0,1 * 100) или (.25/1.25) (1 + 0,1 * 100), и это добавляется к проценту доступа к инструкциям (1/1,25), умноженному на сумму времени атаки (1) и скорости пропуска команды, умноженной на штраф за промах (0,05 * 100) , или (1/1,25) (1 + 0,05 * 100). Положим вместе, AMAT (.25/1.25) (1 + 0,1 * 100) + (1/1,25) (1 + 0,05 * 100) = 7.

Еще раз, извините за стену с текстом. Если я ошибаюсь, попробуйте помочь мне понять как Я ошибаюсь. Я попытался показать всю свою работу, чтобы сделать ее максимально простой для понимания. Заранее спасибо.

ответ

0

В лат-части вашего вопроса есть ошибка. Когда они спрашивают:

What is the misses per 1000 instruction for typical applications and what is the average memory 
access time (in clock cycles) for typical applications? 

, что здесь нужно, это число промахов вы получите за каждые 1000 команд, которые в этом случае были бы 1000 * 1 * 0,05 для промахов кэша команд и 1000 * 0,25 * 0,1 для данных промахи кэша. Это равно 75 промахам на 1000 инструкций.

Для расчета Амата, можно использовать формулу Амата = хит время + (промах ставку * промах)

В этом случае ваша ставка промаха 75/1000 и ваш промах 100 циклов. Время срабатывания задается как 1,25 цикла (ваш идеальный ИПЦ!).

Надеюсь, что это поможет и все лучшее для вашего экзамена!