Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > темпиратура процессора


Автор: IGanja 21.3.2008, 14:49
Есть ли функция возвращающая темпиратуру процессора, как например возвращают время?

Автор: Andrey44 21.3.2008, 15:21
Общей функции для получения температуры процессора нет.
Есть WMI - Win32_TemperatureProbe но я пробовал никаких данных оно не получает.
Читал где-то снимают дамп памяти биоса и как-то ищут там.
Сам как-то перерыл весь инет , но ничего путного не нашел.

Автор: andrew_121 21.3.2008, 15:52
Это пройденый этап.
Читаю любой параметр.
IGanja, Могу сделать, за N сумму, пиши в личку.

Автор: Andrey44 21.3.2008, 16:09
andrew_121,  толкни тогда хоть в нужную сторону

Автор: andrew_121 21.3.2008, 16:18
Не могу.
Модераторы угрожают. Говорят что пост не соответствует - чему-то ТАМ ...)))

Автор: MAKCim 21.3.2008, 16:27
Andrey44, 
IGanja, 
если ядро имеет встроенный цифровой датчик температуры, его значение можно прочитать из MSR регистра IA32_THERM_STATUS
проверка его наличия осуществляется проверкой бита CPUID.06H.EAX[0]
естественно, такой способ работает только для интеловских процессоров
вполне вероятно, что для AMD есть другое решение

Автор: andrew_121 21.3.2008, 16:41
MAKCim:
Цитата

Support for the Thermal Monitor can be determined by executing the CPUID instruction with EAX set equal to 1. If TM1 is supported, the CPUID instruction will return a value of 1 in bit position 29 of EDX. If TM2 is supported, and enabled with the ENABLE_VRAMP fuse, then the CPUID instruction will return a value of 1 in bit position 8 of ECX.


Добавлено через 8 минут и 26 секунд
Вот, в Лине работает, а в ВиндАвЗ - не знаю, хотя, asm, должно работать.
Код

thermal_status:
mov ecx, 19Ch
rdmsr
test eax, 80000000h
jz @F
shr eax, 16
and eax, 7Fh ; в eax значение температурного датчика относительно максимальной Tj
ret
@@:
xor eax, eax
dec eax
ret 


Автор: MAKCim 21.3.2008, 16:57
Цитата(andrew_121 @  21.3.2008,  16:41 Найти цитируемый пост)
Вот, в Лине работает, а в ВиндАвЗ - не знаю, хотя, asm, должно работать.

копирайт кто будет ставить?  smile 
не с ЛОРа ли этот код, и не человек ли по имени rei3er его автор?  smile 

Автор: andrew_121 21.3.2008, 17:06
Цитата

Вот, в Лине работает, а в ВиндАвЗ - не знаю, хотя, asm, должно работать.

Если ты об этой строке говоришь, то я ее САМ только-что написал.
Если о коде, то ДА "rei3er" на http://www.linux.org.ru/view-message.jsp?msgid=2421724
Но я не об этом коде говорил выше. У меня есть либа кросс. дает полную инфу о состоянии...

Автор: MAKCim 21.3.2008, 17:12
Цитата(andrew_121 @  21.3.2008,  17:06 Найти цитируемый пост)
У меня есть либа кросс. дает полную инфу о состоянии... 

если не секрет, напиши в ЛС принцип работы (меня код не интересует, интересует принцип)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)