Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.227.24.209] |
|
Сообщ.
#1
,
|
|
|
У меня тут задачка стоит - определить кодовое название микро/архитектуры процессора, например Prescott, Wolfdale, Haswell, SkyLake и т.д. Кто-нибудь сталкивался с подобным?
Я пытался найти какие-либо базы в сети, но тщетно и решил тупо создать свою. По картинкам CPU-Z в гугле заметил закономерность, что кодовое название можно вычислить по "Family/Model/Stepping", которые возвращает инструкция CPUID.EAX=1 в регистре EAX. Кому не трудно, просьба скинуть мне данные своего процессора, как во-вложении. mov eax,1 cpuid cinvoke printf,<'Family/Model/Stepping: %X',0>,eax Прикреплённый файлCPUZ.png (15,41 Кбайт, скачиваний: 521) Эта тема была разделена из темы "Измерение времени выполнения кода" |
Сообщ.
#2
,
|
|
|
Проблема в том, что у одной архитектуры могут быть разные коды, в зависимости от модели процессора. У Агнера в растактовках есть небольшой список, плюс я добавил к нему что нашёл. На данный момент получил следующее: "CPUID-code" AMD K7 Athlon 6 6 - Step. 2, rev. A5 AMD K8 Opteron F 5 - Stepping A AMD K10 Opteron 10 2 - 2350, step. 1 AMD Liano 12 1 - A4-3400, step 0 AMD Bulldozer Bulldozer, Zambezi 15 1 - FX-6100, step 2 AMD Piledriver Piledriver 15 2 - FX-8350, step 0. And others AMD Steamroller Steamroller, Kaveri 15 30 - A10-7850K, step 1 AMD Excavator Bristol Ridge 15 65 - A10-9700E, step 1 AMD Ryzen Zen 17 1 - Ryzen 7 1800X, step 1 AMD Bobcat Bobcat 14 1 - E350, step. 0 AMD Kabini Jaguar 16 0 - A4-5000, step 1 Intel Pentium P5 5 2 Intel Pentium MMX P5 5 4 - Stepping 4 Intel Pentium II P6 6 6 Intel Pentium III P6 6 7 Intel Pentium 4 Netburst F 2 - Stepping 4, rev. B0 Intel Pentium 4 EM64T Netburst,Prescott F 4 - Xeon. Stepping 1 Intel Pentium M Dothan 6 D - Stepping 6, rev. B1 Intel Core Duo Yonah 6 E - Not fully tested Intel Core 2 (65 nm) Merom,Conroe 6 F - T5500, Step. 6, rev. B2 Intel Core 2 (45 nm) Wolfdale 6 17 - E8400, Step. 6 Intel Core i7 Nehalem 6 1A - i7-920, Step. 5, rev. D0 Intel 2nd gen. Core Sandy Bridge 6 2A - i5-2500, Step 7 Intel 3rd gen. Core Ivy Bridge 6 3A - i7-3770K, Step 9 Intel 4th gen. Core Haswell 6 3C - i7-4770K, step. 3 Intel 5th gen. Core Broadwell 6 4F - i7-6950K, step 1 Intel 5th gen. Core Broadwell 6 56 - D1540, step 2 Intel 6th gen. Core Skylake 6 5E - Step. 3 Intel 7th gen. Core Skylake-X 6 55 - Step. 4 Intel 9th gen. Core Coffee Lake 6 9E - Step. B Intel Atom 330 Diamondville 6 1C - Step. 2 Intel Bay Trail Silvermont 6 37 - Step. 3 Intel Apollo Lake Goldmont 6 5C - Step. 9 Intel Gemini Lake Goldmont Plus 6 7A - Step. 1 Intel Xeon Phi Knights Landing 6 57 - Step. 1 |
Сообщ.
#3
,
|
|
|
Сообщ.
#4
,
|
|
|
Цитата Pavia @ Староватый ман, есть 2020-го года, хотя там вроде в этом месте не много отличий:Таблица С-1 (страница 649) https://software.intel.com/content/dam/deve...tion-manual.pdf (тут таблица D-1) Добавлено Кстати, новые маны (основные) вышли, наконец-то. Причём, написали, что от мая 2020, хотя я в июне смотрел, не было. |
Сообщ.
#5
,
|
|
|
Спасибо за наводку!
блин, у меня оказывается тоже есть этот ман, а я ищу на стороне.. Поймал в сети такую доку - вроде список полный, но только для Интела https://www.intel.com/content/dam/www/publi...te-guidance.pdf |
Сообщ.
#6
,
|
|
|
Цитата core-i7 @ Кому не трудно, просьба скинуть мне данные своего процессора, как во-вложении. Лови ... тезка моего камня |
Сообщ.
#7
,
|
|
|
Цитата core-i7 @ Есть более простой способ получения подобной инфы: http://www.cpu-world.com/cgi-bin/CPUID.pl Кому не трудно, просьба скинуть мне данные своего процессора, как во-вложении. Моё (AIDA64) --------[ ЦП ]---------------------------------------------------------------------------------------------------------- Свойства ЦП: Тип ЦП QuadCore Intel Core i5-2500K, 3700 MHz (37 x 100) Псевдоним ЦП Sandy Bridge-DT Степпинг ЦП D2 Наборы инструкций x86, x86-64, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AES Исходная частота 3300 МГц Мин./макс. множитель ЦП 16x / 57x Engineering Sample Нет Кэш L1 кода 32 КБ per core Кэш L1 данных 32 КБ per core Кэш L2 256 КБ per core (On-Die, ECC, Full-Speed) Кэш L3 6 МБ (On-Die, ECC, Full-Speed) Физическая информация о ЦП: Тип корпуса 1155 Contact FC-LGA Размеры корпуса 37.5 mm x 37.5 mm Число транзисторов 1160 млн. Технологический процесс 32 nm, CMOS, Cu, High-K + Metal Gate Размер кристалла 216 mm2 Типичная мощность 95 W Производитель ЦП: Фирма Intel Corporation Информация о продукте https://ark.intel.com/content/www/us/en/ark/search.html?q=Intel%20Core%20i5-2500K Обновление драйверов http://www.aida64.com/goto/?p=drvupdates Multi CPU: ID системной платы ALASKA A M I CPU #1 Intel(R) Core(TM) i5-2500K CPU @ 3.30GHz, 3303 МГц CPU #2 Intel(R) Core(TM) i5-2500K CPU @ 3.30GHz, 3303 МГц CPU #3 Intel(R) Core(TM) i5-2500K CPU @ 3.30GHz, 3303 МГц CPU #4 Intel(R) Core(TM) i5-2500K CPU @ 3.30GHz, 3303 МГц --------[ CPUID ]------------------------------------------------------------------------------------------------------- Свойства CPUID: Производитель CPUID GenuineIntel Имя ЦП CPUID Intel(R) Core(TM) i5-2500K CPU @ 3.30GHz Версия CPUID 000206A7h Идентификатор марки IA 00h (Неизвестно) Идентификатор платформы 47h / MC 02h (LGA1155) Версия обновления микрокода 2Eh SMT / CMP 0 / 4 Температура Tjmax 98 °C (208 °F) CPU Thermal Design Power (TDP) 95 W CPU IA Cores Thermal Design Current 300 A CPU GT Cores Thermal Design Current 300 A CPU Max Power Limit Unlimited Power / Unlimited Time CPU Power Limit 1 (Long Duration) 1000 W / Unlimited Time (Unlocked) CPU Power Limit 2 (Short Duration) 1200 W / Unlimited Time (Unlocked) Max Turbo Boost Multipliers 1C: 37x, 2C: 37x, 3C: 37x, 4C: 37x Наборы инструкций: 64-бит x86-расширение (AMD64, Intel64) Поддерживается AMD 3DNow! Не поддерживается AMD 3DNow! Professional Не поддерживается AMD 3DNowPrefetch Не поддерживается AMD Enhanced 3DNow! Не поддерживается AMD Extended MMX Не поддерживается AMD FMA4 Не поддерживается AMD MisAligned SSE Не поддерживается AMD SSE4A Не поддерживается AMD XOP Не поддерживается Cyrix Extended MMX Не поддерживается Enhanced REP MOVSB/STOSB Не поддерживается Enqueue Stores Не поддерживается Galois Field New Instructions (GFNI) Не поддерживается Float-16 Conversion Instructions Не поддерживается IA-64 Не поддерживается IA AES Extensions Поддерживается IA AVX Поддерживается, Разрешено IA AVX2 Не поддерживается IA AVX-512 (AVX512F) Не поддерживается IA AVX-512 4x Fused Multiply-Add Single Precision (AVX512_4FMAPS)Не поддерживается IA AVX-512 4x Neural Network Instructions (AVX512_4VNNIW)Не поддерживается IA AVX-512 52-bit Integer Multiply-Add Instructions (AVX512_IFMA)Не поддерживается IA AVX-512 BF16 (AVX512_BF16) Не поддерживается IA AVX-512 Bit Algorithm (AVX512_BITALG) Не поддерживается IA AVX-512 Byte and Word Instructions (AVX512BW) Не поддерживается IA AVX-512 Conflict Detection Instructions (AVX512CD)Не поддерживается IA AVX-512 Doubleword and Quadword Instructions (AVX512DQ)Не поддерживается IA AVX-512 Exponential and Reciprocal Instructions (AVX512ER)Не поддерживается IA AVX-512 Intersection (AVX512_VP2INTERSECT) Не поддерживается IA AVX-512 Neural Network Instructions (AVX512_VNNI)Не поддерживается IA AVX-512 Prefetch Instructions (AVX512PF) Не поддерживается IA AVX-512 Vector Bit Manipulation Instructions (AVX512_VBMI)Не поддерживается IA AVX-512 Vector Bit Manipulation Instructions 2 (AVX512_VBMI2)Не поддерживается IA AVX-512 Vector Length Extensions (AVX512VL) Не поддерживается IA AVX-512 VPOPCNTDQ Не поддерживается IA BMI1 Не поддерживается IA BMI2 Не поддерживается IA FMA Не поддерживается IA MMX Поддерживается IA SHA Extensions Не поддерживается IA SSE Поддерживается IA SSE2 Поддерживается IA SSE3 Поддерживается IA Supplemental SSE3 Поддерживается IA SSE4.1 Поддерживается IA SSE4.2 Поддерживается Vector AES (VAES) Не поддерживается VIA Alternate Instruction Set Не поддерживается Инструкция ADCX / ADOX Не поддерживается Инструкция CLDEMOTE Не поддерживается Инструкция CLFLUSH Поддерживается Инструкция CLFLUSHOPT Не поддерживается Инструкция CLWB Не поддерживается Инструкция CLZERO Не поддерживается Инструкция CMPXCHG8B Поддерживается Инструкция CMPXCHG16B Поддерживается Инструкция Conditional Move Поддерживается Инструкция Fast Short REP MOV Не поддерживается Инструкция INVPCID Не поддерживается Инструкция LAHF / SAHF Поддерживается Инструкция LZCNT Не поддерживается Инструкция MCOMMIT Не поддерживается Инструкция MONITOR / MWAIT Поддерживается Инструкция MONITORX / MWAITX Не поддерживается Инструкция MOVBE Не поддерживается Инструкция MOVDIR64B Не поддерживается Инструкция MOVDIRI Не поддерживается Инструкция PCLMULQDQ Поддерживается Инструкция PCOMMIT Не поддерживается Инструкция PCONFIG Не поддерживается Инструкция POPCNT Поддерживается Инструкция PREFETCHWT1 Не поддерживается Инструкция PTWRITE Не поддерживается Инструкция RDFSBASE / RDGSBASE / WRFSBASE / WRGSBASEНе поддерживается Инструкция RDPRU Не поддерживается Инструкция RDRAND Не поддерживается Инструкция RDSEED Не поддерживается Инструкция RDTSCP Поддерживается Инструкция SKINIT / STGI Не поддерживается Инструкция SYSCALL / SYSRET Не поддерживается Инструкция SYSENTER / SYSEXIT Поддерживается Trailing Bit Manipulation Instructions Не поддерживается Инструкция VIA FEMMS Не поддерживается Инструкция VPCLMULQDQ Не поддерживается Инструкция WBNOINVD Не поддерживается Функции безопасности: Advanced Cryptography Engine (ACE) Не поддерживается Advanced Cryptography Engine 2 (ACE2) Не поддерживается Control-flow Enforcement Technology - Indirect Branch Tracking (CET_IBT)Не поддерживается Control-flow Enforcement Technology - Shadow Stack (CET_SS)Не поддерживается Запрет исполнения данных (DEP, NX, EDB) Поддерживается Enhanced Indirect Branch Restricted Speculation Не поддерживается Hardware Random Number Generator (RNG) Не поддерживается Hardware Random Number Generator 2 (RNG2) Не поддерживается Indirect Branch Predictor Barrier (IBPB) Поддерживается Indirect Branch Restricted Speculation (IBRS) Поддерживается L1D Flush Поддерживается MD_CLEAR Не поддерживается Memory Protection Extensions (MPX) Не поддерживается PadLock Hash Engine (PHE) Не поддерживается PadLock Hash Engine 2 (PHE2) Не поддерживается PadLock Montgomery Multiplier (PMM) Не поддерживается PadLock Montgomery Multiplier 2 (PMM2) Не поддерживается Серийный номер процессора (PSN) Не поддерживается Protection Keys for User-Mode Pages (PKU) Не поддерживается Read Processor ID (RDPID) Не поддерживается Safer Mode Extensions (SMX) Не поддерживается Secure Memory Encryption (SME) Не поддерживается SGX Launch Configuration (SGX_LC) Не поддерживается Software Guard Extensions (SGX) Не поддерживается Single Thread Indirect Branch Predictors (STIBP) Поддерживается Speculative Store Bypass Disable (SSBD) Поддерживается Supervisor Mode Access Prevention (SMAP) Не поддерживается Supervisor Mode Execution Protection (SMEP) Не поддерживается Total Memory Encryption (TME) Не поддерживается User-Mode Instruction Prevention (UMIP) Не поддерживается Функции электропитания: APM Power Reporting Не поддерживается Application Power Management (APM) Не поддерживается Automatic Clock Control Поддерживается Configurable TDP (cTDP) Не поддерживается Connected Standby Не поддерживается Core C6 State (CC6) Не поддерживается Digital Thermometer Поддерживается Dynamic FSB Frequency Switching Не поддерживается Enhanced Halt State (C1E) Поддерживается, Разрешено Enhanced SpeedStep Technology (EIST, ESS) Поддерживается, Разрешено Frequency ID Control Не поддерживается Hardware P-State Control Не поддерживается Hardware Thermal Control (HTC) Не поддерживается LongRun Не поддерживается LongRun Table Interface Не поддерживается Overstress Не поддерживается Package C6 State (PC6) Не поддерживается Parallax Не поддерживается PowerSaver 1.0 Не поддерживается PowerSaver 2.0 Не поддерживается PowerSaver 3.0 Не поддерживается Processor Duty Cycle Control Поддерживается Running Average Power Limit (RAPL) Не поддерживается Software Thermal Control Не поддерживается SpeedShift (SST, HWP) Не поддерживается Термодиод Не поддерживается Thermal Monitor 1 Поддерживается Thermal Monitor 2 Поддерживается Thermal Monitor 3 Не поддерживается Thermal Monitoring Не поддерживается Thermal Trip Не поддерживается Voltage ID Control Не поддерживается Функции виртуализации: AMD Virtual Interrupt Controller (AVIC) Не поддерживается Decode Assists Не поддерживается Encrypted Microcode Patch Не поддерживается Encrypted State (SEV-ES) Не поддерживается Extended Page Table (EPT) Поддерживается Flush by ASID Не поддерживается Guest Mode Execute Trap Extension (GMET) Не поддерживается Hypervisor Нет Инструкция INVEPT Поддерживается Инструкция INVVPID Поддерживается LBR Virtualization Не поддерживается Memory Bandwidth Enforcement (MBE) Не поддерживается Nested Paging (NPT, RVI) Не поддерживается NRIP Save (NRIPS) Не поддерживается PAUSE Filter Threshold Не поддерживается PAUSE Intercept Filter Не поддерживается Secure Encrypted Virtualization (SEV) Не поддерживается Secure Virtual Machine (SVM, Pacifica) Не поддерживается SVM Lock (SVML) Не поддерживается Virtual Transparent Encryption (VTE) Не поддерживается Virtualized GIF (vGIF) Не поддерживается Virtualized VMLOAD and VMSAVE Не поддерживается Virtual Machine Extensions (VMX, Vanderpool) Поддерживается Virtual Processor ID (VPID) Поддерживается VMCB Clean Bits Не поддерживается Функции CPUID: 1 GB Page Size Не поддерживается 36-bit Page Size Extension Поддерживается 5-Level Paging Не поддерживается 64-bit DS Area Поддерживается Adaptive Overclocking Не поддерживается Address Region Registers (ARR) Не поддерживается Code and Data Prioritization Technology (CDP) Не поддерживается Core Performance Boost (CPB) Не поддерживается Core Performance Counters Не поддерживается CPL Qualified Debug Store Поддерживается Data Breakpoint Extension Не поддерживается Debug Trace Store Поддерживается Debugging Extension Поддерживается Deprecated FPU CS and FPU DS Не поддерживается Direct Cache Access Не поддерживается Dynamic Acceleration Technology (IDA) Не поддерживается Dynamic Configurable TDP (DcTDP) Не поддерживается Extended APIC Register Space Не поддерживается Fast Save & Restore Поддерживается Hardware Lock Elision (HLE) Не поддерживается Hybrid Boost Не поддерживается Hybrid CPU Не поддерживается Hyper-Threading Technology (HTT) Не поддерживается Instruction Based Sampling Не поддерживается Invariant Time Stamp Counter Поддерживается L1 Context ID Не поддерживается L2I Performance Counters Не поддерживается Lightweight Profiling Не поддерживается Local APIC On Chip Поддерживается Machine Check Architecture (MCA) Поддерживается Machine Check Exception (MCE) Поддерживается Memory Configuration Registers (MCR) Не поддерживается Memory Type Range Registers (MTRR) Поддерживается Model Specific Registers (MSR) Поддерживается NB Performance Counters Не поддерживается Page Attribute Table (PAT) Поддерживается Page Global Extension Поддерживается Page Size Extension (PSE) Поддерживается Pending Break Event (PBE) Поддерживается Performance Time Stamp Counter (PTSC) Не поддерживается Physical Address Extension (PAE) Поддерживается Platform Quality of Service Enforcement (PQE) Не поддерживается Platform Quality of Service Monitoring (PQM) Не поддерживается Process Context Identifiers (PCID) Поддерживается Processor Feedback Interface Не поддерживается Processor Trace (PT) Не поддерживается Restricted Transactional Memory (RTM) Не поддерживается Self-Snoop Поддерживается Time Stamp Counter (TSC) Поддерживается Time Stamp Counter Adjust Не поддерживается Turbo Boost Поддерживается, Разрешено Turbo Boost Max 3.0 Не поддерживается Virtual Mode Extension Поддерживается Watchdog Timer Не поддерживается x2APIC Не поддерживается XGETBV / XSETBV OS Enabled Поддерживается XSAVE / XRSTOR / XSETBV / XGETBV Extended States Поддерживается XSAVEOPT Поддерживается Прикреплённый файлcpuid.png (83,4 Кбайт, скачиваний: 581) p.s. Думаю, пока снова разделять тему |
Сообщ.
#8
,
|
|
|
Цитата Jin X @ p.s. Думаю, пока снова разделять тему Не не не - норм тема! Вон Core-i7 фильтрует датабазы - это нужное дело. А если еще он потом подгонит сорцы по изысканиям - ваще будет православненько! |
Сообщ.
#9
,
|
|
|
Цитата JoeUser @ А если еще он потом подгонит сорцы без проблем, только пока без AMD но можно добавлять поиск табличный, и без степпинга - мне нужно было определить только архитектуру: format pe console include 'win32ax.inc' entry start ;--------- .data table dd 0x006d,dohan, 0x006e,yonah, 0x006f,conroe,0x00f2,netburst dd 0x1067,wolf, 0x106a,bloom, 0x106e,lynn, 0x206c,gulf dd 0x2065,arra, 0x206e,neh, 0x206f,west, 0x3067,silver dd 0x206a,sandy, 0x206d,sandy, 0x306a,ivy, 0x306e,ivy dd 0x306c,hass, 0x306f,hass, 0x4065,hass, 0x4066,hass dd 0x306d,broad, 0x4067,broad, 0x406f,broad, 0x5066,broad dd 0x406e,sky, 0x5065,sky, 0x506e,sky, 0x00f4,pres dd 0x506c,apollo,0x806e,kaby, 0x906e,coffe, 0x706a,gemini dd 0x406a,merri, 0x406c,charry,0x406d,avoton,0x5067,phi dd 0x506c,brox, 0x506a,moor, 0x506f,denver,0x606e,cougar tableLen = ($ - table)/8 dohan db 'Dothan',0 yonah db 'Yonah',0 conroe db 'Conroe',0 netburst db 'Netburst',0 pres db 'Prescott',0 wolf db 'Wolfdale',0 bloom db 'Bloomfield',0 lynn db 'Lynnfield',0 gulf db 'Gulftown',0 arra db 'Arrandale',0 neh db 'Nehalen',0 west db 'Westmere',0 silver db 'Silvermont',0 sandy db 'Sandy-Bridge',0 ivy db 'Ivy-Bridge',0 hass db 'Haswell',0 broad db 'Broadwell',0 sky db 'Sky-Lake',0 apollo db 'Apollo-Lake',0 kaby db 'Kaby-Lake',0 coffe db 'Coffe-Lake',0 gemini db 'Gemini-Lake',0 merri db 'Merrifield',0 charry db 'Charry View',0 avoton db 'Avoton',0 phi db 'Phi-Lnights',0 brox db 'Broxton',0 moor db 'Moorefield',0 denver db 'Denverton',0 cougar db 'Cougar-Montain',0 unk db 'Unknown',0 buff db 0 ;//--------- .code start: mov eax,1 cpuid push eax ; shr eax,4 ; степпинг не нужен xchg eax,ebx ; EBX = Family/Model mov esi,table ; таблица mov ecx,tableLen ; её длина @@: lodsd ; ищем код в таблице.. cmp ebx,eax je @found add esi,4 loop @b mov esi,unk ; прокол jmp @prn ; @found: mov esi,[esi] ; иначе: взять адрес строки @prn: pop eax ; ..и код cinvoke printf,<10,'CPUID code: %X --> %s',0>,eax,esi cinvoke gets,buff cinvoke exit,0 ;//********************************** section '.idata' import data readable library msvcrt,'msvcrt.dll' import msvcrt, printf,'printf',exit,'exit',gets,'gets' |
Сообщ.
#10
,
|
|
|
CPUID code: 206A7 --> Sandy-Bridge Угадал Добавлено У меня такой вопрос, кстати. Функция eax=1 для cpuid всегда существует? Или бывает такое, что есть только eax=0 ? Или минимум вообще где-то ещё дальше единицы (скажем, eax=3)? |
Сообщ.
#11
,
|
|
|
Не мог пройти мимо и не соптимизировать таблицу
format pe console include 'win32ax.inc' entry start ;--------- .data archtable dw 0x006d, 0x006e, 0x006f, 0x00f2, 0x1067, 0x106a, 0x106e, 0x206c dw 0x2065, 0x206e, 0x206f, 0x3067, 0x216a, 0x206d, 0x316a, 0x306e dw 0x316c, 0x316f, 0x4165, 0x4066, 0x316d, 0x4167, 0x416f, 0x5066 dw 0x416e, 0x5165, 0x506e, 0x00f4, 0x506c, 0x806e, 0x906e, 0x706a dw 0x406a, 0x406c, 0x406d, 0x5067, 0x506c, 0x506a, 0x506f, 0x606e ; 0x?1?? - флаг повтора строки (т.е. когда имя архитектуры для следующего кода то же) archtablelen = ($-archtable)/2 archnames: doеhan db 'Dothan',0 yonah db 'Yonah',0 conroe db 'Conroe',0 netburst db 'NetBurst',0 wolfdale db 'Wolfdale',0 bloomfield db 'Bloomfield',0 lynnfield db 'Lynnfield',0 gulftown db 'Gulftown',0 arrandale db 'Arrandale',0 nehalem db 'Nehalem',0 westmere db 'Westmere',0 silvermont db 'Silvermont',0 sandybridge db 'Sandy Bridge',0 ivybridge db 'Ivy Bridge',0 haswell db 'Haswell',0 broadwell db 'Broadwell',0 skylake db 'Skylake',0 prescott db 'Prescott',0 apollolake db 'Apollo Lake',0 kabylake db 'Kaby Lake',0 coffeelake db 'Coffee Lake',0 geminilake db 'Gemini Lake',0 merrifield db 'Merrifield',0 cherryview db 'Cherry View',0 avoton db 'Avoton',0 phiknights db 'Phi Knights',0 broxton db 'Broxton',0 moorefield db 'Moorefield',0 denverton db 'Denverton',0 cougarmount db 'Cougar Mountain',0 unknown db 'Unknown',0 ;//--------- .code start: mov eax,1 cpuid push eax shr eax,4 ; Stepping не нужен and ah,0xF0 ; Type тоже не нужен xchg ebx,eax ; EBX = Family/Model cld mov edi,archnames ; имена микроархитектур mov esi,archtable ; таблица mov edx,archtablelen ; кол-во элементов таблицы xor eax,eax ; обнуляем старшую часть EAX .next: lodsw mov ecx,eax ; CH and 1 = флаг повтора строки and ah,0xF0 ; удаляем флаг повтора строки cmp ebx,eax ; проверяем код из таблицы je .found shr ch,1 ; проверяем флаг повтора строки jc @F ; та же строка salc ; AL = 0 repne scasb ; пропускаем строку (ECX достаточно велик) @@: dec edx jnz .next .found: pop eax ; код Family/Model/Stepping cinvoke printf,<'CPUID code: %X --> %s',10>, eax, edi cinvoke getch cinvoke exit,0 ;//********************************** section '.idata' import data readable library msvcrt,'msvcrt.dll' import msvcrt, printf,'printf',exit,'exit',getch,'_getch' Вообще, есть вопросы по поводу некоторых названий. К примеру, Cherry View, как я понял, это вообще планшет, Moorefield - смартфон, а Avoton - какое-то серверное название в микроархитектуре Silvermont. А вот Goldmont, Tremont, Ice Lake, Tiger Lake и пр. нет в списке вообще. https://en.wikipedia.org/wiki/List_of_Intel...roarchitectures core-i7, откуда этот список? Добавлено Плюс, есть микроархитектуры, а есть кодовые имена. К примеру, есть кодовые имена Sandy Bridge и Ivy Bridge, оба они относятся к микроархитектуре Sandy Bridge. https://en.wikipedia.org/wiki/List_of_Intel_codenames Короче, минимум поллитра нужно |
Сообщ.
#12
,
|
|
|
Цитата Jin X @ Или минимум вообще где-то ещё дальше единицы (скажем, eax=3)? EAX=0 же возвращает максимум: and eax,0 cpuid cinvoke printf,<10,'Max old: 0x0000000%X',0>,eax mov eax,0x80000000 cpuid cinvoke printf,<10,'Max new: 0x%X',0>,eax Цитата Jin X @ А вот Goldmont, Tremont, Ice Lake, Tiger Lake и пр. нет в списке вообще. поэтому я и просил, чтобы отписали свои данные... в манах Интела по оптимизации - там вообще всего 6 архитектур Цитата Jin X @ откуда этот список? см.линк в сообщении #5 (вчера добавил) Цитата Jin X @ Поправил так же опечатки в названиях, сенкью |
Сообщ.
#13
,
|
|
|
Цитата core-i7 @ Это понятно.EAX=0 же возвращает максимум Мне интересно, есть ли смысл проверять этот максимум на значение >= 1 или меньше, чем 1 не бывает, т.е. EAX=1 всегда работает? p.s. Skylake вот так пишется, слитно. |
Сообщ.
#14
,
|
|
|
Цитата Jin X @ т.е. EAX=1 всегда работает? наверно.. если-уж предоставляют максимум, значит должны все работать в этом диапазоне |
Сообщ.
#15
,
|
|
|
Вопрос не про диапазон, а про минимальное значение EAX.
Бывает ли такое, что только EAX=0 работает, а EAX=1 нет? Добавлено Ну и про 0x80000001 тоже интересно, конечно... |