Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler: i8080/8085/KP580
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
eganator
59 / 39 / 8
Регистрация: 13.11.2017
Сообщений: 259
Завершенные тесты: 1
1

Окно кэш-памяти

13.08.2018, 13:57. Просмотров 1172. Ответов 19
Метки нет (Все метки)

Добрый день! Знающие CompModel, подскажите, пожалуйста, следующее. В окне Кэш-память снизу пишется "статистика" и идёт перечисление:
Общее число обращений
из них по записи
Число кэш-попаданий
из них по записи
Число обратных записей
Для выполнения лабораторной работы мне нужны число обратных записей и число сквозных записей. Но сквозных записей нет! Даже при изменении режима записи в параметрах кэш-памяти всё равно стоит "число обратных записей" Подскажите, где брать число сквозных записей?
0
Миниатюры
Окно кэш-памяти  
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.08.2018, 13:57
Ответы с готовыми решениями:

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

Очистка кэш памяти ПК
как написать программу, которая очищала бы кэш память

Как вставить дополнительное окно с записем в кэш
Всем привет, есть один пример, который очень заинтересовал. Помогите сделать так-же? При первом...

Сколько нужно кэш памяти 1-2 уровней ?
Всем привет, подскажите пожалуйста сколько нужно кэш памяти для работы в VISUAL C 2008. А то я...

Моделирование работы кэш памяти, Not recently Used
Добрый день! Написал программу - модель кэша. Кэш состоит из групп. Группа состоит из...

19
R71MT
8574 / 1636 / 328
Регистрация: 29.07.2014
Сообщений: 2,679
Записей в блоге: 5
13.08.2018, 16:19 2
Цитата Сообщение от eganator Посмотреть сообщение
Для выполнения лабораторной работы мне нужны число обратных записей и число сквозных записей.
блин кто и зачем вообще придумал эту "CompModel" - это-же полный трэш!
в документации кэш-памяти вообще нет понятия "Обратная запись", и если эта Model придумана для начинающих, то разработчику нужно руки оторвать, чтобы не вводил в заблуждения пионеров на начальном этапе обучения.

кэш имеет 3 политики записи, и среди них нет обратной:
1. WT - Write Through - сквозная, сразу перезаписывает изменённые страницы из кэша в память ОЗУ.
2. WB - Write Back - отложенная, сначала копятся в L3, потом запись.
3. WC - Write Combining - смесь обоих.

Термин обратная здесь полностью уводит читателя от реальности, т.к. подразумевает абсолютно другое. На самом деле это не обратная, а отложенная запись Write-Back.
3
ОС
327 / 80 / 2
Регистрация: 21.07.2018
Сообщений: 112
Записей в блоге: 1
13.08.2018, 19:37 3
Кто придумал, тот и назвал режимы.
Имеет право.
0
R71MT
8574 / 1636 / 328
Регистрация: 29.07.2014
Сообщений: 2,679
Записей в блоге: 5
13.08.2018, 20:33 4
Цитата Сообщение от ОС Посмотреть сообщение
Кто придумал, тот и назвал режимы.
так если называешь, то нужно хотя-бы заглянуть в документацию,
а не переводить Write-Back дословно, как последний ламер

Добавлено через 3 минуты
что общего между обратной и отложенной записью?
куда она пишет обратно - с регистров обратно в регистры процессора чтоли?
1
13.08.2018, 20:33
Ethereal
7707 / 2264 / 310
Регистрация: 17.02.2013
Сообщений: 3,343
16.08.2018, 11:02 5
Если ты представляешь себя процессором, то твоя запись в память через кеш отложенная. А автор Компмодели видимо представлял себя памятью. И для него запись из памяти в кеш это "туда". А из кеша в память "обратно".

Добавлено через 1 минуту
Цитата Сообщение от R71MT Посмотреть сообщение
куда она пишет обратно - с регистров обратно в регистры процессора чтоли?
Ну точно. Ты представляешь себя процессором.
1
R71MT
8574 / 1636 / 328
Регистрация: 29.07.2014
Сообщений: 2,679
Записей в блоге: 5
16.08.2018, 14:32 6
Цитата Сообщение от Ethereal Посмотреть сообщение
А автор Компмодели видимо представлял себя памятью.
по большому счёту, мне по-барабану как он обозвал WB - я всё-равно никогда не пользовался этой моделью, правда открыл 1-раз чисто для интереса.

Но если автор представил себя памятью, то он в двойне не прав! Политика записи действительна только для выгрузки данных из кэша, но никак не загрузки их из памяти. CPU заполняет кэш в пакетном режиме 64-байтными линейками и тут нет никакой политики.

Если-же процессор изменит хоть 1-байт в загруженной кэш-линейке, то эта cache-line помечается как грязная, и её необходимо записать обратно в память для поддержки когерентности. Вот тут-то и применяют 'политики записи'. Если установлена сквозная запись, то изменённые кэш-линейки сбрасываются в ОЗУ сразу после их модификации - процессор прерывает свою работу, и запрашивает внешнюю шину для операции записи в память. Это явные тормоза, зато в ОЗУ всегда находятся достоверные данные.

Поэтому придумали 'отложенную запись', когда модифицированные строки не сразу перезаписываются обратно в ОЗУ, а копятся в кэше L3 - CPU продолжает выполнять текущую задачу, а когда освободится, тогда и запрашивает у контроллёра шины BIU операцию на запись в память. Скорость повышается, а когерентность падает.

Это в общих чертах.. но как-видно, сам термин 'обратная запись' здесь даже по смыслу не подходит. С таким-же успехом обратной можно назвать и сквозную запись, т.к. она тоже пишет обратно в ОЗУ. Ошибки подобного рода со-стороны разработчиков не простительны, тем-более что софт выставляется как учебное пособие для новичков.
2
politoto
143 / 134 / 9
Регистрация: 23.07.2018
Сообщений: 289
16.08.2018, 15:02 7
Это пособие, очевидно, не для изучения текущего состояния x86-64.
0
R71MT
8574 / 1636 / 328
Регистрация: 29.07.2014
Сообщений: 2,679
Записей в блоге: 5
16.08.2018, 19:30 8
Цитата Сообщение от politoto Посмотреть сообщение
не для изучения текущего состояния x86-64.
..тогда зачем вообще упоминать в этом пособии кэш (который кстати впервые появился только в i386)
и причём тут 64-бит? кроме тебя вроде никто о нём не говорит..
1
ОС
327 / 80 / 2
Регистрация: 21.07.2018
Сообщений: 112
Записей в блоге: 1
16.08.2018, 22:11 9
Цитата Сообщение от R71MT Посмотреть сообщение
..тогда зачем вообще упоминать в этом пособии кэш (который кстати впервые появился только в i386)
Раньше вообще не было??
Неужели IBM не придумала ничего подобного для своих "больших" ЭВМ?
Когда у них было примерно столько же памяти, она была наверно на ещё более тормозных core.
Или Вы не о том?
0
R71MT
8574 / 1636 / 328
Регистрация: 29.07.2014
Сообщений: 2,679
Записей в блоге: 5
17.08.2018, 06:52 10
Цитата Сообщение от ОС Посмотреть сообщение
Раньше вообще не было??
в сегменте рынка - не было.
кэш стал необходим, когда частота CPU начала превышать частоту ОЗУ. Пока они работали на одинаковых частотах, кэш был не нужен. Потом, по частоте CPU вырвалась вперёд и память стала узким местом в архитектуре - пришлось добавить кусочек шустрого кэш. Поэтому у 16-битных процессоров (все до i386) кэша не было ни в каком виде.

Добавлено через 5 минут
Код
16-битные процессоры
------------------------
• i8086 - 1978 год. Первый процессор для PC-XT.
Режим работы: Real Mode.
Регистры: 16-бит| шина данных: 16| шина адреса: 20| частота: 10 Мгц.
Память: 1 Мб, сегментная| непересекающихся сегментов: 16.

• 80286 - 1982 год. Первый процессор для PC-АT.
Режим работы: Real Mode \ Protected Mode.
Регистры: 16-бит| шина данных: 16| шина адреса: 24| частота: 20 Мгц.
Память: 16 Мб, сегментная. Введена расширенная память EMS.

32-битные процессоры
------------------------
• 80386 - 1985 год. Первый 32-разрядный процессор.
Режим работы: Real Mode \ Protected Mode \ Virtual Mode.
Регистры: 32-бит| шина данных: 32| шина адреса: 32| частота: 40 Мгц.
Память: 4 Гб, виртуальная. Добавлена внешняя кэш-память. 

• 80486 - 1989 год. Первый процессор со-встроенным FPU.
Режим работы: Real Mode \ Protected Mode \ Virtual Mode.
Регистры: 32-бит| шина данных: 32| шина адреса: 32| частота: 133 Мгц.
Память: 4 Гб, виртуальная.
Добавлена внутреняя кэш-память первого уровня, и конвейер. 

• Pentium (80586) - 1993 год. Шина данных расширена до 64-бит
Режим работы: Real Mode \ Protected Mode \ Virtual Mode.
Регистры: 32-бит| шина данных: 64| шина адреса: 32| частота: 166\200 Мгц.
Память: 4 Гб, виртуальная. Внутренний кэш 16k.
Имеет 3 модуля для обработки команд, спекулятивное выполнение команд, два конвейера. 

• Pentium Pro - 1995 год. Процессор с 2-мя кэшами.
Режим работы: Real Mode \ Protected Mode \ Virtual Mode.
Регистры: 32-бит| шина данных: 64| шина адреса: 36| частота: 180\200 Мгц.
Память: 68 Гб, виртуальная. Внутренний кэш второго уровня 1М.
3
politoto
143 / 134 / 9
Регистрация: 23.07.2018
Сообщений: 289
17.08.2018, 09:05 11
http://gunkies.org/wiki/VAX-11/780
1978 год
VAX-11
от 2 до 64МB памяти
Cache: 8KB

Возможно, и раньше можно найти примеры.
Основная память построена на "быстродействующих" магнитных сердечниках с разрушающим считыванием, а центральный процессор собран уже на интегральных микросхемах.
Процессор с регистрами на лампах, большая часть памяти на магнитных барабанах.

Ясно, что отложенная запись - чуть более понятное название, чем Write Back, и, намного более удачное, чем "обратная запись".

Но, пока мы тут занимаемся лингвистическим умничаньем,
знатоки на вопрос так и не ответили...
1
R71MT
8574 / 1636 / 328
Регистрация: 29.07.2014
Сообщений: 2,679
Записей в блоге: 5
17.08.2018, 09:19 12
Цитата Сообщение от politoto Посмотреть сообщение
VAX-11
это вообще из другой оперы
Цитата Сообщение от politoto Посмотреть сообщение
на вопрос так и не ответили.
удали эту компмодель со-своего компа, и никогда о ней не вспоминай
лучше скачать нормальный отладчик и изучать процессор по нему.
1
politoto
143 / 134 / 9
Регистрация: 23.07.2018
Сообщений: 289
17.08.2018, 09:22 13
нормальный отладчик не позволяет, например, придумать свою команду и реализовать её на уровне микрокоманд
0
R71MT
8574 / 1636 / 328
Регистрация: 29.07.2014
Сообщений: 2,679
Записей в блоге: 5
17.08.2018, 10:00 14
politoto, изучай на здоровье,
просто ты спросил мнение - я тебе ответил
1
politoto
143 / 134 / 9
Регистрация: 23.07.2018
Сообщений: 289
17.08.2018, 10:51 15
R71MT, вопрос изначально задал eganator.
Вот ему-то никак наши рассуждения не помогли.
0
R71MT
8574 / 1636 / 328
Регистрация: 29.07.2014
Сообщений: 2,679
Записей в блоге: 5
17.08.2018, 13:39 16
Цитата Сообщение от politoto Посмотреть сообщение
вопрос изначально задал eganator.
ты уж определись как-нибудь,
ато встреваешь в тему, а потом - мол "я тут ни при чём"
1
ОС
327 / 80 / 2
Регистрация: 21.07.2018
Сообщений: 112
Записей в блоге: 1
17.08.2018, 18:16 17
Лучший ответ Сообщение было отмечено eganator как решение

Решение

Я не играл с CompModel, но попробую помочь. Кто знает лучше поправит.
Цитата Сообщение от eganator Посмотреть сообщение
Общее число обращений
из них по записи

Для выполнения лабораторной работы мне нужны ... число сквозных записей. Но сквозных записей нет! Даже при изменении режима записи в параметрах кэш-памяти всё равно стоит "число обратных записей" Подскажите, где брать число сквозных записей?
В режиме сквозной записи любая попытка записать в память должна писать и туда, и туда.
Значит сквозных записей столько, сколько обращений по записи было в этом режиме.
Так получается?
1
R71MT
8574 / 1636 / 328
Регистрация: 29.07.2014
Сообщений: 2,679
Записей в блоге: 5
17.08.2018, 20:54 18
Цитата Сообщение от ОС Посмотреть сообщение
должна писать и туда, и туда. Так получается?
если под 'и туда, и туда' имеется в виду кэш и память, то всё верно.
Это и есть поддержка коггерентности, когда в любой момент времени данные и в кэш и в памяти одинаковы. Если программа работает с устройствами, то может получится так, что устройство обратится за данными к памяти, а эти данные изменил процессор и не скинул изменённый вариант обратно в память - получится глюк, и устройство считает не корректные данные. Поэтому проц должен сразу перезаписать 'глязную' строку в ОЗУ, при этом оставив их и у себя в кэш.

А вообще, здесь нужно уточнить, о каком вообще процессоре идёт речь?
К примеру, если CPU имеет многоуровневый кэш L1-2-3, то каждый уровень может придерживаться своей политики записи. Узнать политику своего проца можно в программе по сбору инфы 'PC-Wizard', вот что она нарыла о кэше моего процессора:
Код
 [Cache and TLB]
  L1-Data:            Write-Through,  32   KBytes  (сквозная)
  L1-Instruction:     Write-Through,  32   KBytes
  L2-Unified:         Write-Through,  256  KBytes
  L3-Unified:         Write-Back,     2048 KBytes  (отложенная)

  TLB Instruction:    2Mb/4Mb Pages,  8  entries
  TLB Data:           4 Kb Pages,     64 entries
Кэш организован так, что записать из L1 сразу в память не получится - там нет обходных путей, поэтому данные проходят через все уровни кэша. Как показывает отчёт, грязная строка не задерживается в L1, а политикой WT сразу отправляется в L2, ..и тот её сразу отфутболивает в L3, где строка уже тормозится по Write-Back.

Если окунуться в детали, то WB устроен следующим образом..
Модифицированная строка помечается флагом Dirty (грязная). Когда периферийное устройство обращается к памяти, кэш-контроллёр проверяет - находится-ли соответствующий адрес в кэш-памяти и если да, то по флагу определяет: грязная она или нет? Грязные ячейки выгружаются в ОЗУ, а их флаг устанавливается в состояние Clear (чисто). То есть строки выгружаются из кэша только по требованию, что сводит на нет бессмысленные обращения на запись в память.
3
eganator
59 / 39 / 8
Регистрация: 13.11.2017
Сообщений: 259
Завершенные тесты: 1
18.08.2018, 12:51  [ТС] 19
ОС, Спасибо. Я за это время немного почитал в интернете. То есть число сквозных записей будет равно общему числу обращений по записи, а не числу кэш-попаданий по записи?
1
ОС
327 / 80 / 2
Регистрация: 21.07.2018
Сообщений: 112
Записей в блоге: 1
18.08.2018, 14:06 20
Выходит так.
Кэш попадание на запись будет, если пишем по адресу, который уже в кэше.
Если кэш пустой или не попали, то можно не считывать старое из памяти, а сразу писать новое в кэш и в память.

Сквозная запись будет, и когда попали, и когда не попали.
1
18.08.2018, 14:06
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.08.2018, 14:06

Увеличение производительности за счет кэш-памяти и конвейерности процессора
Читаю тут одну книгу и не понимаю. Перемножают матрицы. И говорят. Ну вот, если будем перемножать...

Наиболее эффективный алгоритм замещения для кэш-памяти большего объёма
Добрый день, интересует такой вопрос: Какой алгоритм замещения будет наиболее эффективным если...

Определить наличие кэш памяти процессора и его параметров (ассемблерные вставки)
Необходимо определить наличие кэш памяти процессора и его параметров с ассемблерными вставками. Из...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru