Perl Программирования (созданный в соавторстве #22483 - хорошая работа Randal, у меня был мой для близости в 10 лет) был большим введением к Perl. Начиная с regex, режущий и ставя на карту массивы, ассоциативные массивы и т.д. Плюс whys и как имеет создание отчетов в Perl и ссылке на функцию.
я не уверен, в каком количестве это изменяется, он - третий выпуск, но я основывал бы курс о нем и использовал бы его в качестве учебника. Это довольно кратко и к точке. Плюс тогда Ваш курс соответствует Вашей документации.
Кэш состоит из данных и меток ОЗУ, организованных как компромисс между временем доступа и эффективностью, а также физической компоновкой. Вам не хватает важной характеристики: количество способов (сетов). У вас редко бывают односторонние кэши, поскольку они патологически плохо работают с простыми шаблонами. В любом случае:
1) Да, теги занимают дополнительное место. Это является частью компромисса проекта - вы не хотите, чтобы он составлял большую часть общей площади, и почему размер строки не просто 1 байт или 1 слово. Кроме того, все теги для индекса доступны одновременно, и это может повлиять на эффективность и структуру, если существует большое количество способов. Размер немного больше, чем вы оцениваете. Также обычно есть несколько битов, чтобы отметить правильность, а иногда и подсказки. Большее количество путей и меньших строк требует большей доли, занимаемой тегами, поэтому обычно строки большие (32+ байта), а пути маленькие (4-16).
2) Да. Некоторые кэши также выполняют выборку «сначала критическое слово», где они начинаются со слова, вызвавшего заполнение строки, а затем выбирают остальные. Это уменьшает количество циклов, в течение которых процессор ожидает данные, которые он фактически запрашивал. Некоторые кэши «записывают через» и не выделяют строку, если вы пропустите запись, что избавляет от необходимости сначала читать всю строку кэша перед записью в нее (это не всегда выигрыш).
3) Теги не будут хранить младшие 5 бит, так как они не нужны для соответствия строке кэша. Они просто индексируются в отдельные строки.
В Википедии есть довольно хорошая, хотя и немного напряженная, запись кешей: http://en.wikipedia.org/wiki/CPU_cache - см. «Реализация». Есть диаграмма того, как данные и теги разделены. Я думаю, что все должны изучить этот материал, потому что вы действительно можете улучшить производительность кода, когда знаете, на что способна базовая машина.
Различные процессоры реализуют кэширование очень по-разному. Для лучшего ответа на ваш вопрос, пожалуйста, дайте некоторые дополнительные сведения о конкретном процессоре (тип, модель и т. Д.), О котором вы говорите.