как реализовать классификацию промахов кэша? - PullRequest
0 голосов
/ 22 октября 2018

Существует три типа промахов кеша: принудительный, емкий и конфликтный.Теперь мне нужно добавить функцию классификации пропусков в кеше.

Предположим, мы получили ошибку чтения или записи, помеченную tag .Я использую глобальный вектор V1 для имитации бесконечного кэша, другой вектор V2 для имитации полностью ассо.кэш. В V2 наименее использованный элемент (LRU) - это элемент head, который будет выгружаться, если V2 заполнен, и поддерживать размер V2 в реальном размере кеша CacheSize .

Моя идея ниже:

if (V1 does not contain tag):
    it is compulsory miss.
    add tag to V1.
    if (V2's size == CacheSize):
        remove head element of V2.
    add tag to V2 tail.

if not compulsory miss:
    if V2 does not contain tag:
        it is capacity miss.
        if (V2's size == CacheSize):
             remove head element of V2.
        add tag to V2 tail.
    else: // V2 contains tag, rearrange tag's position
        remote tag from V2 then add tag to V2 tail.

if this miss is not compulsory miss or capacity miss, then it is conflict miss. 

Я реализовал эту идею в своем коде, и принудительные пропуски верны, но нет пропусков пропускной способности.Где я сделал это неправильно?Благодаря.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...