Усматривать: процессор работает на 800 МГц и 200 МГц DDR RAM

StackOverflow https://stackoverflow.com/questions/4096049

Вопрос

У меня есть комплект оценки, который имеет реализацию сердечника Cortex-A8. Паспорт процессора утверждает, что у него есть

ARM Cortex A8 ™ Core, которая работает на скоростях до 800 МГц, а до 200 МГц DDR2 RAM.

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

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

Это было полезно?

Решение

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

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

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

Описание выше чрезмерно упрощенно; Кэш и Cache Management являются сложной областью. Нижняя строка заключается в следующем: если ваш код использует большие таблицы данных в памяти и доступ к ним в казалось бы, случайном порядке, то приложение будет медленным, потому что большую часть времени процессор будет просто ждать данных от основной памяти. С другой стороны, если ваш код может работать с небольшим количеством оперативной памяти, меньше нескольких десятков килобайт, а затем вероятность того, что он будет работать большую часть времени со внутренним кэшем, а внешняя скорость оперативной памяти не важна. Способность делать доступ к памяти таким образом, что хорошо работает с кешами, называется Местонаправленная ссылка.

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

(Большие предварительные столы представляли собой общую хитрость оптимизации в течение 80-х годов «потому что в то время процессоры не были быстрее, чем RAM, а доступ к одному циклическому памяти было правилом. давно ушли.)

Другие советы

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

Внутри процессора узкое местомерение памяти не будет влиять.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top