Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
_Alexey_
0 / 0 / 0
Регистрация: 08.12.2015
Сообщений: 10
1

Ассоциативность КЭШа

09.05.2016, 13:38. Просмотров 800. Ответов 27
Метки нет (Все метки)

Подскажите пожалуйста, как определить ассоциативность КЭШа второго уровня, использую cpuid ?

У меня есть код вызова моей функции из dll библиотеки:

C
1
2
3
4
5
//Информацию о КЭШе
int CacheInfo[4];
 
//Вызываем функцию и получаем информацию о КЭШе
gPrInf(CacheInfo, ?);
Что надо передать, чтобы получить нужную мне информацию?

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// Определяем наличие Ассоциативности
extern "C" __declspec(dllexport)
void cpuid(int rgs[4], int func)
{
    int ieax, iebx, iecx, iedx;
    __asm
    {
        mov eax, func
        cpuid
        mov ieax, eax
        mov iebx, ebx
        mov iecx, ecx
        mov iedx, edx
    }
    rgs[0] = ieax;
    rgs[1] = iebx;
    rgs[2] = iecx;
    rgs[3] = iedx;
}
Как правильно обработать результат?

Облазил кучу сайтов, но так ничего не нашел.

P.s. В программировании новичок.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.05.2016, 13:38
Ответы с готовыми решениями:

Как на ассемблере организовать чтение кэша
Собственно вопрос, как на ассемблере организовать чтение кэша (сайт работает,...

Коммутативность и ассоциативность
domains s=symbol predicates paralel1(s,s) paralel2(s,s) ...

Ассоциативность операции на множестве
Пусть a, b, c - элементы множества A. И на этом множестве задана операция *....

Ассоциативность произведения матриц
Если A, B и C - матрицы, то истинно ли A*B*C\equiv \left(A*B\right)*C?

Ассоциативность инкремента декремента
Всем привет. Вот такую табличку недавно нашел -...

27
R71MT
5309 / 1470 / 313
Регистрация: 29.07.2014
Сообщений: 2,511
Записей в блоге: 5
10.05.2016, 14:29 21
shmkv, 0х8.. это разве не AMD? У ТС проц INTEL
0
_Alexey_
0 / 0 / 0
Регистрация: 08.12.2015
Сообщений: 10
10.05.2016, 14:31  [ТС] 22
R71MT, тогда получается, что ассоциативности нет. Хотя CPU-Z показывает обратное.
0
Constantin Cat
2982 / 1116 / 376
Регистрация: 28.02.2015
Сообщений: 2,453
Завершенные тесты: 1
10.05.2016, 14:40 23
shmkv,
Assembler
1
469778755h = 1 1100 0000 0000 0100 0001 0100 0011
Цитата Сообщение от _Alexey_ Посмотреть сообщение
Здесь 9 бит равен 1 -> ассоциативность есть.
В этом коде ТС должен проверить 9-ый бит(он так считает), ну какая там маска?

Добавлено через 8 минут
_Alexey_, проблема в том, что общепринятая нумерация бит начинается с нуля. Т.е. Вы неверно определили номер бита. Номер бита 8. И маска 256.
0
shmkv
1749 / 431 / 59
Регистрация: 21.07.2015
Сообщений: 1,127
10.05.2016, 14:46 24
Цитата Сообщение от R71MT Посмотреть сообщение
shmkv, 0х8.. это разве не AMD? У ТС проц INTEL
Для сомневающихся Intel® 64 and IA-32 Architectures Software Developer’s Manual Volume 2 (2A, 2B & 2C):
Instruction Set Reference, A-Z. стр 258.
0х8.. придумано как раз интелом, но работает и с амд. Это просто набор расширенных функций. Кстати не все они могут поддерживаться, для определения что поддерживается по уму надо проверять содержимое других функций. Корчое объяснять лениво, кому надо читайте нормальные мануалы, там все написано.

Добавлено через 1 минуту
Цитата Сообщение от _Alexey_ Посмотреть сообщение
R71MT, тогда получается, что ассоциативности нет.
Полное содержимое ECX приведи от функции 0x8...6.

Добавлено через 1 минуту
Цитата Сообщение от Constantin Cat Посмотреть сообщение
В этом коде ТС должен проверить 9-ый бит(он так считает), ну какая там маска?
Причем тут код. Если надо проверить 9й бит маска всегда 0x200. Нумерация битов с нуля конечно же.

Добавлено через 35 секунд
Цитата Сообщение от Constantin Cat Посмотреть сообщение
Т.е. Вы неверно определили номер бита. Номер бита 8. И маска 256.
Ну если номер бита неверно определен, то это дрогой вопрос.

Добавлено через 1 минуту
Однако на картинке во втором посту фигурирует именно бит 9. Хотя я крайне не рекомендую использовать недокументированные функции..
0
R71MT
5309 / 1470 / 313
Регистрация: 29.07.2014
Сообщений: 2,511
Записей в блоге: 5
10.05.2016, 14:48 25
_Alexey_, ты видимо читаешь не ту инфу. Я ж тебе давал ссылку..
Чтоб получить точные данные от CPUID, нужно сперва: узнать какой проц, сколько он поддерживает команд, выбрать из них нужную и т.п, и т.д.
А ты сразу читаешь от фонаря и неизвестно что. Ознакомься хорошо с этой функцией..
0
_Alexey_
0 / 0 / 0
Регистрация: 08.12.2015
Сообщений: 10
10.05.2016, 15:36  [ТС] 26
R71MT, поддерживает 13 функций. Только что это значит я не понимаю, и там, куда вы мне дали ссылку, ничего не написано про это.

Добавлено через 15 минут
И, кажется, я опять ошибся с переводом числа. Не мой день(
Код
469778755 = 100 0110 1001 0111 0111 1000 0111 0101 0101
9 бит стоит на 1 -> ассоц. есть.
Далее я умножаю побитово на 0х200 и получаю ноль, хотя должен 1, если я снова не ошибаюсь.
C
1
int cacheAssoc = CacheInfo[0] & 0x200;
Код
200 = 1000000000
0
shmkv
1749 / 431 / 59
Регистрация: 21.07.2015
Сообщений: 1,127
10.05.2016, 15:39 27
_Alexey_, ты читаешь, что тебе пишут?
Цитата Сообщение от _Alexey_ Посмотреть сообщение
469778755
Цитата Сообщение от _Alexey_ Посмотреть сообщение
9 бит стоит на 1
0 там стоит в 9м бите (нумерация битов с 0).
0
_Alexey_
0 / 0 / 0
Регистрация: 08.12.2015
Сообщений: 10
10.05.2016, 15:53  [ТС] 28
Цитата Сообщение от R71MT Посмотреть сообщение
..да, биты считаются справа-налево, начиная с нуля.
Писали так.
0
10.05.2016, 15:53
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.05.2016, 15:53

проанализировать ассоциативность, коммутативность
Задано алгебру А(М;*), де М=а 0 0 0...

Проверка массива на ассоциативность
Вообщем я получаю какой-то массив: array(1, 2, 3, 8, 2) или array('w' =>...

Доказать ассоциативность симметрической разности
не очень получается, может кто-то уже сталкивался с таким?


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

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

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