Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Спасибо за наводку, анатомия кеша F120 - интересное чтиво, местами даже смешное (+)

Отправлено CD_Eater 07 февраля 2007 г. 02:47
В ответ на: посмотрите на реализацию F120 от SiLabs отправлено <font color=gray>koyodza_home</font> 06 февраля 2007 г. 23:27

читая про методы заполнения слотов кеша, я упал под стол :)
Там реализованы два метода, и оба тупые:
1) заполнять таблицу слотов туда-обратно (как шарик, поочерёдно отскакивающий от противоположных стен)
2) заполнять в псевдослучайные ячейки (метод деда Рандома)
Какова эффективность этих методов? Хуже не бывает.

Немного о "теории кешестроения". В идеале кеш должен учитывать счётчик обращений к кешируемой локации и время после последнего обращения к ней (её свежесть). На основании этих данных алгоритм кеша должен определять наименее нужную из закешированных ячеек и освобождать её для новых данных. При одинаковом счётчике обращений освобождается более старая ячейка, а вот при выборе между старой ячейкой с большим счётчиком и свежей ячейкой с малым счётчиком ситуация неоднозначна, здесь возможны варианты в зависимости от интеллектуальности кеша. Так работают софтовые кеши (например, кеш винчестера).
Понятно, что для реализации такого поведения в железе понадобится слишком много дополнительного кремния, поэтому алгоритм делают менее эффективным (по проценту кеш-попаданий), но зато более простым по количеству транзисторов. Можно привести как пример алгоритм кеша, эмулирующего очередь с ранжированием по свежести без учёта счётчика обращений (не знаю, реализован ли он где-нибудь). Вновь записанные слоты становятся в хвост очереди, при каждом кеш-попадании слот переставляется из середины в хвост очереди, а при необходимости получить свободный слот берём из головы очереди. Только корректно учитывать отслеживать позицию в очереди, перебрасывая указатели на соседей слева и справа при каждой перестановке весьма хлопотно с точки зрения аппаратной реализации. Нужно что-то ещё проще.
Очень удачный компромисс, на мой взгляд, достигнут в кеше процессора i486 (в нём имеется несколько Кб кеш-памяти программ и данных 1-го уровня). Несмотря на разницу в объёмах кешей i486 и FА120, его можно применить и для МК, он требует всего несколько дополнительных бит на каждый кеш-слот, алгоритм замены простой и легко реализуемый (кому не лень, посмотрите какой-нибудь справочник по 486 процессору, в инете такие есть в эл.виде). Алгоритм кеша 486 менее эффективен, чем описанная выше очередь, но более удачен, чем то, что заложено в F120.

Вернёмся к первоначальному вопросу. Чтобы избежать неопределённости в количестве тактов, ДШ F120 предлагает два варианта:
1) явно зафиксировать выбранные локации в кеше для быстрого выполнения "узких мест" программы,
2) отключить кеш вообще, чтобы читать код программы напрямую из флеша (частота работы флеша в 4 раза меньше частоты ядра)
Оба варианта плохие.

А существуют ли МК, в которых эта проблема решена: и волки сыты (ядро работает быстрее флеша), и овцы целы (нет неопределённости при подсчёте времени выполнения в тактах), и пастух трезвый (всё работает естественно и без кропотливых предварительных настроек типа занесения в кеш списка адресов) ? Вроде бы, грамотное предсказание переходов должно помочь, но этот метод требует слишком больших жертв (например, он сложен в отладке - вспомним про пень-2-целероны, которые из-за ошибки в предсказателе переходов часто попадают в кеш-промах). Хочется чего-то простого и естественного.

Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 63:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru