2015-07-01 3 views
1

Я вычислил график с частотой пропуска кеша (mr) и размером кеша (sc). Как можно вычислить CPI (цикл для каждой инструкции) для различных размеров кеша. Предположения:Расчет ИПЦ

Given cache miss latency (say 10) , 
base CPI of 1 and 
33.33% of instructions as memory operations. 

То, что я понимаю, что индекс потребительских цен можно рассчитать по следующей формуле. Является ли метод ниже правильным?

CPI = miss rate*(.3333)*10 + 1 

для MISS RATE: 2.700978 я получил следующий CPI

CPI: 1,090024

+0

Это не совсем понятно, что вы просите. Ваша формула выглядит правильно, но я не знаю, для чего нужен исходный код в вашем вопросе. –

+0

@GabrielSouthern Я не прошу ничего связанного с исходным кодом. У меня возникла путаница в отношении расчета ИПЦ с учетом упомянутых предположений. Простое объяснение, почему правильная или неправильная формула CPI = miss rate * (.3333) * 10 + 1 помогла бы. – Pan

+0

Если вы не спрашиваете о коде, зачем вы его включили? Что касается объяснения причин правильности формулы, вы написали: «Я понимаю, что CPI можно рассчитать по следующей формуле». Ваш вопрос можно было бы улучшить, объяснив, как вы получили эту формулу и что, по вашему мнению, запутывает. В противном случае, если вы просто спрашиваете, выглядит ли формула правильной, тогда да. –

ответ

1

Для расчета ИПЦ, когда данный базовый индекс потребительских цен и статистики об иерархии кэша можно использовать следующую формулу:

Effective CPI = Baseline CPI + CPI of memory accesses 

Ваш базовый индекс CPI равен 1 (данный в описании проблемы). Поэтому вам просто нужно найти CPI для доступа к памяти.

Если доступ к памяти является хитом в кеше, мы предполагаем, что CPI совпадает с индексом базовой линии. Если это промах, то это будет латентность пропусков.

У вас есть 33% инструкций, которые обращаются к памяти. Из тех, кто промахивается, потребуется 10 циклов. Таким образом, все это вместе:

CPI = miss rate*(.3333)*10 + 1 

Это то, что вы имеете в своем вопросе.

Что касается кода, который вы включили, и раздел «Ответ», я не знаю, о чем вы спрашиваете, или о том, в чем его цель.

+0

Я изменил свой вопрос в соответствии с вашим предложением. Я использовал формулу CPI, перейдя по некоторым ссылкам. Но я точно не знал, почему это было правильно. Приведенное выше объяснение действительно очень полезно – Pan

+0

Я рад, что мое объяснение помогло. Я видел, как многие люди вырезали и вставляли домашние задания без какой-либо информации о том, что они сделали для их решения. Когда вы задаете вопросы о stackoverflow, полезно попытаться сделать вопрос максимально ясным и объяснить, что вы сделали, чтобы попытаться найти ответ. –