На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Перед отправкой сообщения внимательно прочтите правила раздела!!!
1. Запрещается обсуждать написание вирусов, троянов и других вредоносных программ!
2. Помните, что у нас есть FAQ раздела Assembler и Полезные ссылки. Посмотрите, возможно, там уже имеется решение вашего вопроса.

3. Настоятельно рекомендуем обратить особое внимание на правила форума, которые нарушаются чаще всего:
  3.1. Заголовок темы должен кратко отражать её суть. Темы с заголовками типа "Срочно помогите!" или "Ассемблер" будут отправляться в Корзину для мусора.
  3.2. Исходники программ обязательно выделяйте тегами [code]...[/code] (одиночные инструкции можно не выделять).
  3.3. Нежелательно поднимать старые темы (не обновлявшиеся более года) без веской на то причины.

Не забывайте также про главные Правила форума!

Добро пожаловать и приятного вам общения!!! ;)
 
Модераторы: Jin X, Qraizer
  
> Определение микроархитектуры CPU
У меня тут задачка стоит - определить кодовое название микро/архитектуры процессора, например Prescott, Wolfdale, Haswell, SkyLake и т.д. Кто-нибудь сталкивался с подобным?

Я пытался найти какие-либо базы в сети, но тщетно и решил тупо создать свою.
По картинкам CPU-Z в гугле заметил закономерность, что кодовое название можно вычислить по "Family/Model/Stepping", которые возвращает инструкция CPUID.EAX=1 в регистре EAX. Кому не трудно, просьба скинуть мне данные своего процессора, как во-вложении.
ExpandedWrap disabled
             mov     eax,1
             cpuid
            cinvoke  printf,<'Family/Model/Stepping: %X',0>,eax

Прикреплённый файлПрикреплённый файлCPUZ.png (15,41 Кбайт, скачиваний: 9)

Эта тема была разделена из темы "Измерение времени выполнения кода"
Бог знает суть. Подробности нашёптывает дьявол.
Цитата Jin X @
Я думаю, только по Family/Model/Stepping и определяется как раз микроархитектура.

Проблема в том, что у одной архитектуры могут быть разные коды, в зависимости от модели процессора. У Агнера в растактовках есть небольшой список, плюс я добавил к нему что нашёл. На данный момент получил следующее:

"CPUID-code"

ExpandedWrap disabled
    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

Сообщение отредактировано: core-i7 -
Бог знает суть. Подробности нашёптывает дьявол.
https://www.intel.com/content/dam/www/publi...tion-manual.pdf

Таблица С-1 (страница 649)
Правильный обед должен состоять из 5 блюд приготовленных из 33 ингредиентов.
Цитата Pavia @
Таблица С-1 (страница 649)
Староватый ман, есть 2020-го года, хотя там вроде в этом месте не много отличий:
https://software.intel.com/content/dam/deve...tion-manual.pdf
(тут таблица D-1) :)

Добавлено
Кстати, новые маны (основные) вышли, наконец-то. Причём, написали, что от мая 2020, хотя я в июне смотрел, не было.
aeskeygenassist bndstx cmpxchg16b dpps endbr64 f2xm1 gf2p8affineinvqb haddps incsspq jrcxz kxnorw ldmxcsr mpsadbw nop orpd pclmulhqlqdq rdpmc sha256rnds2 tzcnt unpcklpd vp4dpwssds wrfsbase xgetbv
Спасибо за наводку!
блин, у меня оказывается тоже есть этот ман, а я ищу на стороне..

Поймал в сети такую доку - вроде список полный, но только для Интела
https://www.intel.com/content/dam/www/publi...te-guidance.pdf
Сообщение отредактировано: core-i7 -
Бог знает суть. Подробности нашёптывает дьявол.
Цитата core-i7 @
Кому не трудно, просьба скинуть мне данные своего процессора, как во-вложении.

Лови ... тезка моего камня :lol:

user posted image
Мои программные ништякиhttps://majestio.info
Цитата core-i7 @
Кому не трудно, просьба скинуть мне данные своего процессора, как во-вложении.
Есть более простой способ получения подобной инфы: http://www.cpu-world.com/cgi-bin/CPUID.pl ;)

Моё (AIDA64)
ExpandedWrap disabled
    --------[ ЦП ]----------------------------------------------------------------------------------------------------------
     
        Свойства ЦП:
          Тип ЦП                                            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 Кбайт, скачиваний: 8)

p.s. Думаю, пока снова разделять тему :lol:
aeskeygenassist bndstx cmpxchg16b dpps endbr64 f2xm1 gf2p8affineinvqb haddps incsspq jrcxz kxnorw ldmxcsr mpsadbw nop orpd pclmulhqlqdq rdpmc sha256rnds2 tzcnt unpcklpd vp4dpwssds wrfsbase xgetbv
Цитата Jin X @
p.s. Думаю, пока снова разделять тему

Не не не - норм тема! Вон Core-i7 фильтрует датабазы - это нужное дело.
А если еще он потом подгонит сорцы по изысканиям - ваще будет православненько! :lol:
Мои программные ништякиhttps://majestio.info
Цитата JoeUser @
А если еще он потом подгонит сорцы

без проблем, только пока без AMD но можно добавлять
поиск табличный, и без степпинга - мне нужно было определить только архитектуру:
ExpandedWrap disabled
    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'
Бог знает суть. Подробности нашёптывает дьявол.
ExpandedWrap disabled
    CPUID code: 206A7 --> Sandy-Bridge

Угадал :)

Добавлено
У меня такой вопрос, кстати.
Функция eax=1 для cpuid всегда существует?
Или бывает такое, что есть только eax=0 ?
Или минимум вообще где-то ещё дальше единицы (скажем, eax=3)?
aeskeygenassist bndstx cmpxchg16b dpps endbr64 f2xm1 gf2p8affineinvqb haddps incsspq jrcxz kxnorw ldmxcsr mpsadbw nop orpd pclmulhqlqdq rdpmc sha256rnds2 tzcnt unpcklpd vp4dpwssds wrfsbase xgetbv
Не мог пройти мимо и не соптимизировать таблицу :)

ExpandedWrap disabled
    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'
Поправил так же опечатки в названиях, типа Nehalen → Nehalem, Coffe → Coffee, Lnights → Knights, Montain → Mountain, Charry → Cherry.
Вообще, есть вопросы по поводу некоторых названий. К примеру, 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
Короче, минимум поллитра нужно :D
Сообщение отредактировано: Jin X -
aeskeygenassist bndstx cmpxchg16b dpps endbr64 f2xm1 gf2p8affineinvqb haddps incsspq jrcxz kxnorw ldmxcsr mpsadbw nop orpd pclmulhqlqdq rdpmc sha256rnds2 tzcnt unpcklpd vp4dpwssds wrfsbase xgetbv
Цитата Jin X @
Или минимум вообще где-то ещё дальше единицы (скажем, eax=3)?

EAX=0 же возвращает максимум:
ExpandedWrap disabled
        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 @
Поправил так же опечатки в названиях,

сенкью ;)
Сообщение отредактировано: core-i7 -
Бог знает суть. Подробности нашёптывает дьявол.
Цитата core-i7 @
EAX=0 же возвращает максимум
Это понятно.
Мне интересно, есть ли смысл проверять этот максимум на значение >= 1 или меньше, чем 1 не бывает, т.е. EAX=1 всегда работает?

p.s. Skylake вот так пишется, слитно.
aeskeygenassist bndstx cmpxchg16b dpps endbr64 f2xm1 gf2p8affineinvqb haddps incsspq jrcxz kxnorw ldmxcsr mpsadbw nop orpd pclmulhqlqdq rdpmc sha256rnds2 tzcnt unpcklpd vp4dpwssds wrfsbase xgetbv
Цитата Jin X @
т.е. EAX=1 всегда работает?

наверно..
если-уж предоставляют максимум, значит должны все работать в этом диапазоне
Бог знает суть. Подробности нашёптывает дьявол.
Вопрос не про диапазон, а про минимальное значение EAX.
Бывает ли такое, что только EAX=0 работает, а EAX=1 нет?

Добавлено
Ну и про 0x80000001 тоже интересно, конечно...
aeskeygenassist bndstx cmpxchg16b dpps endbr64 f2xm1 gf2p8affineinvqb haddps incsspq jrcxz kxnorw ldmxcsr mpsadbw nop orpd pclmulhqlqdq rdpmc sha256rnds2 tzcnt unpcklpd vp4dpwssds wrfsbase xgetbv
1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
0 пользователей:


Рейтинг@Mail.ru
[ Script Execution time: 0,2069 ]   [ 23 queries used ]   [ Generated: 5.07.20, 03:22 GMT ]