Уточнение: процессор работает на частоте 800 МГц и 200 МГц DDR RAM - PullRequest
2 голосов
/ 04 ноября 2010

У меня есть оценочный комплект с реализацией ядра ARM Cortex-A8. В паспорте процессора указано, что он имеет

Ядро ARM Cortex A8 ™, работающее на скоростях до 800 МГц и до 200 МГц ОЗУ DDR2.

Что я могу ожидать от этой системы? Правильно ли я предположить, что доступ к памяти будет узким местом, поскольку он работает только на частоте 200 МГц?

Нужно больше информации о том, как это интерпретировать.

Ответы [ 2 ]

3 голосов
/ 04 ноября 2010

Процессор работает с внутренним кешем (собственно, несколькими), к которому он может получить доступ на «полной скорости».Кэш-память небольшого размера (обычно от 8 до 32 килобайт) и заполняется частями («строками кэша») из внешней оперативной памяти (строка кэша будет состоять из нескольких десятков последовательных байтов).Когда коду нужны какие-то данные, которых в данный момент нет в кеше, процессору придется извлечь строку из основного ОЗУ;это называется потеря кеша .

Как быстро строка кэша может быть получена из основного ОЗУ, описывается двумя параметрами, называемыми latency и bandwidth .Задержка - это промежуток времени между моментом, когда процессор выдает запрос, и моментом получения первого байта строки кэша.Типичные задержки составляют около 30 нс.При 800 МГц 30 нс означают 24 такта.Пропускная способность описывает, сколько байтов в наносекундах может быть отправлено на шину.«200 МГц DDR2» означает, что тактовая частота шины будет работать на частоте 200 МГц.Оперативная память DDR2 может отправлять два элемента данных за цикл (следовательно, 400 миллионов элементов в секунду).Пропускная способность зависит от количества проводов между процессором и оперативной памятью: с 64-битной шиной и 200 МГц оперативной памятью DDR2 вы можете рассчитывать на 3,2 ГБ / с в идеальных условиях.Таким образом, хотя получение первого байта занимает довольно много времени (задержка высока в отношении возможностей процессора), остальная часть строки кэша читается довольно быстро.

В другом направлении:CPU записывает некоторые данные в свой кэш, а некоторые схемы распространяют модификацию в основное ОЗУ на досуге.

Приведенное выше описание слишком упрощено;кеши и управление кешем - сложная область.Суть в следующем: если ваш код использует большие таблицы данных в памяти и получает к ним доступ, казалось бы, случайным образом, то приложение будет работать медленно, потому что большую часть времени процессор будет просто ждать данных из основной памяти.С другой стороны, если ваш код может работать с небольшим объемом ОЗУ, менее нескольких десятков килобайт, то есть вероятность, что он будет работать большую часть времени с самым внутренним кешем, а скорость внешней ОЗУ будет неважной.Способность осуществлять доступ к памяти способом, который хорошо работает с кэшами, называется местность ссылок .

См. Страницу Википедии о кэшах для ознакомления и указателей навопрос кеширования.

(Большие предварительно вычисленные таблицы были распространенным приемом оптимизации в 80-е годы, потому что в то время процессоры были не быстрее ОЗУ, а доступ к памяти за один цикл был правилом. Вот почему 8МГц процессор Motorola 68000 не имел кеша. Но эти времена давно прошли.)

0 голосов
/ 04 ноября 2010

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

...