ЦП имеет кэш с прямым отображением 32 КБ и размером блока 128 байт. Предположим, что A — это двумерный массив размером 512 × 512 с элементами, каждый из которых занимает 8 байтов. Рассмотрим следующие два сегмента кода C, P1 и P2.
P1:
|
P2:
|
P1 и P2 выполняются независимо с одинаковым начальным состоянием, а именно, массив A не находится в кэше, а i, j, x находятся в регистрах. Пусть число пропущенных кеш-памяти для P1 равно M1, а для P2 — M2.
Значение М1:
(А) 0
(Б) 2048
(С) 16384
(D) 262144
Ответ: (с)
Объяснение: [P1] запускает циклы таким образом, что обращается к элементам A в главном порядке строк, а [P2] обращается к элементам в главном порядке столбцов.
Нет блоков кэша = CacheSize / BlockSize = 32 КБ / 128 байт = 256
Число элементов массива в каждом блоке = BlockSize / ElementSize = 128 байт / 8 байт = 16
Всего промахов для [P1] = ArraySize * (количество элементов массива в каждом блоке) / (количество блоков кеша) = 512 * 512 * 16/256 = 16384
Рекомендуемые посты:
- ВОРОТА | Sudo GATE 2020 Mock I (27 декабря 2019) | Вопрос 52
- ВОРОТА | Sudo GATE 2020 Mock I (27 декабря 2019) | Вопрос 65
- ВОРОТА | Sudo GATE 2020 Mock I (27 декабря 2019) | Вопрос 64
- ВОРОТА | Sudo GATE 2020 Mock I (27 декабря 2019) | Вопрос 53
- ВОРОТА | Sudo GATE 2020 Mock I (27 декабря 2019) | Вопрос 54
- ВОРОТА | Sudo GATE 2020 Mock I (27 декабря 2019) | Вопрос 55
- ВОРОТА | Sudo GATE 2020 Mock I (27 декабря 2019) | Вопрос 56
- ВОРОТА | Sudo GATE 2020 Mock I (27 декабря 2019) | Вопрос 57
- ВОРОТА | Sudo GATE 2020 Mock I (27 декабря 2019) | Вопрос 58
- ВОРОТА | Sudo GATE 2020 Mock I (27 декабря 2019) | Вопрос 59
- ВОРОТА | Sudo GATE 2020 Mock I (27 декабря 2019) | Вопрос 60
- ВОРОТА | Sudo GATE 2020 Mock I (27 декабря 2019) | Вопрос 61
- ВОРОТА | Sudo GATE 2020 Mock I (27 декабря 2019) | Вопрос 62
- ВОРОТА | Sudo GATE 2020 Mock I (27 декабря 2019) | Вопрос 63
- ВОРОТА | Sudo GATE 2020 Mock II (10 января 2019 года) | Вопрос 65
0.00 (0%) 0 votes