20
Sisteme cu microprocesoare “Successful people never stop learning”- B.B.

Sisteme cu microprocesoare - users.utcluj.rousers.utcluj.ro/~apateana/02_cpuid.pdf · Identificarea si configurarea resurselor PC 1. Identificarea resurselor PC - CPUID p A N C A

  • Upload
    others

  • View
    6

  • Download
    1

Embed Size (px)

Citation preview

Sisteme cu microprocesoare

“Successful people never stop learning”- B.B.

1. Identificarea resurselor PC

- instructiunea CPUID

- CPU-Z, AIDA64

2. Configurarea resurselor PC

- BIOS, EFI, UEFI

Identificarea si configurarea resurselor PC

Cuprins

p

A N C A A P A T E A N - U T C N

2

Pt verificare :

http://ark.intel.com/Default.aspx

Si prin soft :

Cpu-z

-> http://www.cpuid.com

“system of the week” (Febr.2015) ->

CARACTERISTICILE PROCESOARELOR DIN FAMILIA INTEL X86

MICROPROCESOARE PE 64 BITI

p

A N C A A P A T E A N - U T C N3

Sistem S0I Core i7 gen 4

Processor (CPU)

CPU Name: Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz

Threading: 1 CPU - 4 Core - 8 Thread

Frequency: 4197.52 MHz (42 * 99.94 MHz)

Multiplier Current: 42 / Min: 8 / Max: 44

Architecture: Haswell / C0-Step (22 nm)

Cpuid: / Ext. .C.3 / 6.3C

IA Extensions MMX, SSE (1, 2, 3, 3S, 4.1, 4.2), EM64T, VT-x, AES, AVX, AVX2, FMA3, TSX

Caches: L1D : 32 KB / L2 : 256 KB / L3 : 8192 KB

Caches Assoc. :L1D : 8-way / L2 : 8-way / L3 : 16-way

Microcode: Rev. 0x0000019

TDP / Vcore : 88 Watts / 1.193 Volts

Type: Retail (Original Frequency : 4000 MHz)

Motherboard

Model: ASRock Z97 Extreme6

Socket: Socket 1150 LGA

North Bridge: Intel Haswell rev 06

South Bridge: Intel Z97 rev 00

BIOS : American Megatrends Inc. P1.20 (05/08/2014)

CARACTERISTICILE SISTEMULUI S0

Memory (RAM)

Total Size: 16384 MB

Type: Dual Channel (128 bit) DDR3-SDRAM

Frequency: 666.3 MHz - Ratio 1:5

Timings: 9-9-9-24 (tCAS-tRC-tRP-tRAS)

Slot #1 Module: Crucial Technology 8192 MB (DDR3-1337)

Slot #2 Module: Crucial Technology 8192 MB (DDR3-1337)

Graphic Card (GPU)

GPU #1 Type: Intel(R) HD Graphics 4600 @ 599 MHz

VRAM #1 Type: 2048 MB

GPU #2 Type: NVIDIA GeForce GTX 770 @ 1110 MHz

VRAM #2 Type: 1024 MB @ 3505 MHz

DirectX: 11.0

Storage (HDD/SSD)

Model #1: Western Digital WDC WD10EACS-22D6B0

Capacity #1: 1000 GB

Model #2: Western Digital WDC WD5000AAKS-22V1A0

Capacity #2 : 500 GB

I Core i7 gen 4

“cpu identification”

Documentatie:

[1] (Aug. 2017, Specification update)https://www.intel.com/content/dam/www/public/us/en/documents/specification-updates/7th-gen-core-family-spec-update.pdf

[2] (2016) 3-190 Vol. 2A,

https://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-software-developer-instruction-set-reference-manual-325383.pdf

[3] (Mai 2012)

https://www.scss.tcd.ie/~jones/CS4021/processor-identification-cpuid-instruction-

note.pdf

[4] https://en.wikipedia.org/wiki/CPUID

[5] https://software.intel.com/en-us/node/703006

INSTRUCTIUNEA CPUID

Informatii despre CPU

dar si despre:

- Cache (in gen, tot in CPU)

- Placa de baza (mainboard)

- Memoria principala

( fila Memory si SPD)

- Placa grafica

- …

CE TIP DE INFORMATII ?Sistem S1

I Core i3 gen 5

la LAB

#include "stdio.h"

#include "stdafx.h"

int main (void)

{ int nr, neax0,nebx0,necx0,nedx0;

//printf ("Introduceti parametrul pt cpuid: \n");

//scanf ("%d ", &nr);

//switch to assembly

_asm

{ MOV EAX, 0

cpuid

mov neax0, eax

mov nebx0, ebx

mov necx0, ecx

mov nedx0, edx

}

printf ("EAX: %02d \t",0);

printf ("EAX: %08X \t",neax0);

printf ("EBX: %08X \t",nebx0);

printf ("ECX: %08X \t",necx0);

printf ("EDX: %08X \n",nedx0);

return 0;

}

CUM SE POT OBTINE ACESTE INFORMATII?

SUB VISUAL C++

Identificarea si configurarea resurselor PC

1. Identificarea resurselor PC - CPUID

p

A N C A A P A T E A N - U T C N

8

CPUID (CPU IDentification) = o instructiune x86 – Intel 1993 – inca de la unele 486↑

- codul operatiei (de la codificarea instructiunilor) = 0FA2h

- nu are operanzi, dar are PARAMETRII la INTRARE (inainte de executie): registrul EAX (uneori si ECX)- valoarea din registrul EAX – specifica informatia returnata

- este specifica arhitecturii x86 (Intel si AMD), alte arhitecturi furnizand registre “on-chip”

ce pot fi citite si interpretate pt a obtine acelasi tip de informatii

- poate determina tipul procesorului si prezenta caracteristicilor (precum FPU,MMX,SSE,PSN,…)

Prima data :

-CPUID trebuie executata cu EAX = 0

=> EAX=valoarea maxima suportata de CPUID = val max. acceptata pt functii standard

-CPUID trebuie executata cu EAX = 80000000h (b31=1)

=>EAX=valoarea maxima suportata de CPUID = val max. acceptata pt functii extinse

Sunt returnate 2 tipuri de informatie: Informatii despre functiile de baza si informatii despre functiile extinse

Ce se intampla daca executam cpuid cu o valoare mai mare in EAX decat val. max acceptata ?

Daca val. din EAX dinainte de executia instructiunii CPUID este > val maxima coresp functiilor std sau ext pt acel CPU, atunci pt acea intrarese returneaza aceeasi informatie ca si pt val maxima acceptata [2]

Exemplu: daca val din EAX e mai mare decat cea maxim admisa

Pt un CPU Intel Core i7: (CPUID.EAX=0 -> EAX=0Bh - val max pt functii std)

CPUID.EAX = 05H (* Returneaza MONITOR/MWAIT leaf. *)

CPUID.EAX = 0AH (* Returneaza Architectural Performance Monitoring leaf. *)

CPUID.EAX = 0BH (* Returneaza Extended Topology Enumeration leaf. *)

CPUID.EAX = 0CH (* INVALID: Returneaza aceeasi info ca si CPUID.EAX = 0BH. *)

(CPUID.EAX=80000000 -> EAX=80000008h - val max pt functii ext)

CPUID.EAX = 80000008H (* Returneaza linear/physical address size data. *)

CPUID.EAX = 8000000AH (* INVALID: Returneaza aceeasi info ca si CPUID.EAX = 0BH. *)

daca val din EAX e mai mica sau egala decat cea maxim admisa, dar pt acea intrare nu e suportata, se va returna 0 in toti registrii

A N C A A P Ă T E A N - U T C N

Identificarea si configurarea resurselor PC

1. Identificarea resurselor PC - CPUID

Identificarea si configurarea resurselor PC

1. Identificarea resurselor PC – CPUID (2)

p

A N C A A P A T E A N - U T C N

10

CPUID (CPU IDentification)Parametru Informatia returnata de CPUID

EAX=0 EAX val. maxima recunoscuta de CPUID pentru functiile standard

EBX:EDX:ECX sirul ASCII al producatorului: (pt Intel avem “Genu”:“ineI”:“ntel”)

EAX=1 EAX semnatura CPU= cei mai semnificativi 32 biti (bitii 95-64) din cei 96 ai nr serial al CPU (PSN)

EBX Brand ID pe bitii 7..0, dimens liniei CLFLUSH (Val ∗ 8 = cache line size in bytes) pe bitii 15…8;

Nr max. de ID-uri adresabile pt CPU logice in pachetul fizic pe bitii 23…16; ID pt APIC initial pe bitii 31…24.

ECX,EDX flaguri de caracteristici ale CPU (! Nu e PSW), apoi EAX=7 -> EBX

EAX=2

(si 4, 9)EAX:EBX:ECX:EDX informatii despre memoria cache si descriptorii TLB (Translation Lookaside Buffer)

EAX=3

EAX=5, 6

EDX:ECX cei mai putin semnificativi 64 biti (bitii 63…32 si 31…0) din cei 96 ai nr serial al CPU (PSN)

– doar la Pentium III, altfel – sunt rezervati

5-MWAIT, 6- Thermal & Power Management

EAX=8000_0000h EAX val. maxima recunoscuta de CPUID pentru functiile extinse

EAX=8000_0001h EAX semnatura extinsa a procesorului si

ECX,EDX flaguri de caracteristici extinse ale procesorului

EAX=8000_0002/3/4h EAX:EBX:ECX:EDX numele procesorului (Processor Brand String)

EAX=8000_0005h EAX:EBX:ECX:EDX informatii despre memoria cache L1 / TLB

EAX=8000_0006h EAX:EBX:ECX:EDX informatii despre memoria cache L2 / TLB

EAX=8000_0007h EAX:EBX:ECX:EDX flaguri de caracteristici pentru controlul avansat al puterii

EAX=8000_0008h EAX:EBX:ECX:EDX dimensiunea adresei virtuale si fizice (liniara)

Identificarea si configurarea resurselor PC

1. Identificarea resurselor PC – CPUID (3)

p

A N C A A P A T E A N - U T C N

11

"AMDisbetter!" — primele AMD K5

"AuthenticAMD" — AMD

"CentaurHauls" — Centaur

"CyrixInstead" — Cyrix

"GenuineIntel" — Intel

"TransmetaCPU" — Transmeta

"GenuineTMx86" — Transmeta

"Geode by NSC" — National Semiconductor

"NexGenDriven" — NexGen

"RiseRiseRise" — Rise

"SiS SiS SiS " — SiS

"UMC UMC UMC " — UMC

"VIA VIA VIA " — VIA

"Vortex86 SoC" — Vortex

EAX=0 -> ID-ul producatorului (vendor ID)

= un sir ASCII de 12 caractere

preluat din continutul reg EBX, EDX, ECX in aceasta ordine !

Exemple:

Identificarea si configurarea resurselor PC

1. Identificarea resurselor PC – CPUID (3)

p

A N C A A P A T E A N - U T C N

12

EAX=1

EAX: Version : Type, Family, Model, Stepping ID

EBX: Brand ID pe bitii 7..0, dimens liniei CLFLUSH (Val ∗ 8 = cache line size in bytes) pe bitii 15…8;

Nr max. de ID-uri adresabile pt CPU logice in pachetul fizic pe bitii 23…16; ID pt APIC initial pe bitii 31…24*.

*The nearest power-of-2 integer that is not smaller than EBX[23:16] is the number of unique initial APIC IDs reserved for addressing different logical

processors in a physical package. This field is only valid if CPUID.1.EDX.HTT[bit 28]= 1. [2]

ECX,EDX flaguri de caracteristici ale CPU (! Nu e PSW)

EAX=3

“Processor serial number (PSN) is not supported in the Pentium 4 processor or later.

On all models, use the PSN flag (returned using CPUID) to check for PSN support before accessing the feature. “[2]

9. Identificarea si configurarea resurselor PC

1. Identificarea resurselor PC – CPUID (4)

p

13

Caracteristicile procesorului (flaguri)

Bit EDX ECX

0 FPU Onboard x87 FPU SSE3 Prescott New Instructions (SSE3)

1 VME Virtual mode extensions (VIF) PCLMULQDQ PCLMULQDQ support

2 DE Debugging extensions (CR4 bit 3) DTES64 64-bit debug store (edx bit 21)

3 PSE Page size extensions MONITOR MONITOR and MWAIT instructions (SSE3)

4 TSC Time Stamp Counter DS_CPL CPL qualified debug store

5 MSR Model-specific registers VMX Virtual Machine eXtensions

6 PAE Physical Address Extension SMX Safer Mode Extensions (LaGrande)

7 MCE Machine Check Exception EST Enhanced SpeedStep

8 CX8 CMPXCHG8 (compare-and-swap) instruction TM2 Thermal Monitor 2

9 APIC Onboard Advanced PIC(ProgramableInterruptCtrller) SSSE3 Supplemental SSE3 instructions

10 (RESERVED) CNXT ID Context ID

11 SEP SYSENTER and SYSEXIT instructions SDBG

12 MTRR Memory Type Range Registers FMA Fused multiply-add (FMA3)

13 PGE Page Global Enable bit in CR4 CX16 CMPXCHG16B instruction

14 MCA Machine check architecture XTPR Can disable sending task priority messages

15 CMOV Conditional move and FCMOV instructions PDCM Perform & debug capability

16 PAT Page Attribute Table (RESERVED)

17 PSE36 36-bit page huge pages PCID Process context identifiers (CR4bit 17)

18 PSN Processor Serial Number DCA Direct cache access for DMA writes

19 CLFSH CLFLUSH instruction (SSE2) SSE4_1 SSE4.1 instructions

20 (RESERVED) SSE4_2 SSE4.2 instructions

21 DS Debug store: save trace of executed jumps X2APIC x2APIC support

22 ACPI Onboard thermal control MSRs for ACPI MOVBE MOVBE instr. (big-endian, Intel Atom)

23 MMX MMX instructions POPCNT POPCNT instruction

24 FXSR FXSAVE, FXRESTOR instructions,CR4 bit 9 TSCDEADLINE APIC -one-shot op. using a TSC deadline value

25 SSE SSE instr.(a.k.a. Katmai New Instructions) AESNI AESNI instruction set extension

26 SSE2 SSE2 instructions XSAVE XSAVE, XRESTOR, XSETBV, XGETBV

27 SS CPU cache supports self-snoop OSXSAVE XSAVE enabled by OS

28 HTT Hyper-threading AVX Advanced Vector Extensions

29 TM Thermal monitor autom. limits temperature F16C CVT16 instr. set (half-precision) FP support

30 IA64 IA64 processor emulating x86 RDRAND RDRAND (on-chip random no. generator)

31 PBE Pending Break Enable (PBE# pin) wakeup HYPERVISOR Running on a hypervisor (=0 on a real CPU)

EAX=1

flag

uri

de

cara

cter

isti

cial

e C

PU

Analizati si retineti:

“A processor with VT technology does not guarantee that virtualization works on your system.

The VT technology requires a computer system with a chipset, BIOS, enabling software and/or

operating system, device drivers and applications designed for that feature.

If your BIOS includes a setting to enable or disable support for Intel VT, make sure it is enabled.”

[Intel, for VT-Virtualization Technology]

http://www.intel.com/support/processors/sb/cs-030729.htm

Pentru ca o tehnologie sa functioneze pe PC ...

A N C A A P Ă T E A N - U T C N

- In Sistemele de Calcul (SC) –> COMPROMIS intre densitate si viteza:

- ideal ar fi memorie cat mai mica (dpdv al dimensiunii fizice) dar cat mai mare (dpdv al capacitatii),

- de viteza cat mai crescuta -> nu prea e posibil fara costuri ridicate

- => sistem cu performante bune la pret bun : o combinatie de memorii

Organizarea ierarhica a memoriei = nivele diferite de mem cu timp de acces si capacitate diferite

Capacitatea

mem fol in SC,

timpul de acces,

densitatea

cresc cu

distanta fata de

CPU

Nivel 0

Nivel 2

Nivel n

Capacitatea memoriei (folosita in

Sist de calcul) la fiecare nivel

CPU

Performanta,

viteza de acces,

dar si

pret per bitNivel 1

Un posibil exemplu:Nivel 0 – registrele CPU

Nivel 1 = cache nivel 1 - SRAM

(inclus in procesor)

Nivel 2 = cache nivel 2 - SRAM

(extern sau inclus)

Nivel 3 = mem. Principala- DRAM

(module pe placa de baza)

Nivel 4 = unitate disc magnetic - HDD

(in cutie, on-line)=mem. SecundaraNivel 5 = mem. optica - CD-ROM

(near-line)

Nivel 6 = caseta/banda magnetica

(off-line, pentru back-up)

Nivel 7 = biblioteci - casete/CD/DVD

(shelf=raft automatizat)

MEMORIA SI INTERFATAREA EI IN PC

IERARHIA DE MEMORII

A N C A A P A T E A N - U T C N

t accesCum se respecta

ierarhia de memorii

in sistemul vostru ?

Cache L1

Cache L2

Cache L3

RAM

Memoria si interfata ei in PC

LAB Identificarea caracteristicilor memoriei cache prin instructiunea cpuid

A N C A A P A T E A N - U T C N

Instrucţiunea CPUID returnează şi informaţii despre mărimea şi caracteristicile memoriei cache interne:

când registrul EAX este initializat cu 2, instrucţiunea CPUID încarcă regiştrii EAX, EBX, ECX şi EDX

cu descriptori ce arată caracteristicile cache-ului procesorului.

Cei 8 biţi “low” din registrul EAX (adica registrul AL) conţin o valoare care

identifică de câte ori trebuie executată instrucţiunea CPUID

pentru a obţine o imagine completă a cache-ului procesorului.

Exemplu: pentru un procesor Pentium Pro

se obtine valoarea 1 în partea AL din registrul EAX

=> instrucţ CPUID trebuie executată o singură dată (cu EAX=2) pt a obţine o imagine completă a cache-ului procesorului

Restul registrului EAX şi regiştrii EBX, ECX şi EDX conţin pe cate 8 biţi descriptori valizi (daca bitul 31=0).

Memoria si interfata ei in PC

LAB Identificarea caracteristicilor memoriei cu ajutorul aplicatiei CPU-z

A N C A A P A T E A N - U T C N

I Core 2Duo

Sistem S3

https://ark.intel.com/products/31728

Memoria si interfata ei in PC

LAB Identificarea caracteristicilor memoriei cache prin instructiunea cpuid (2)

A N C A A P A T E A N - U T C N

Restul registrului EAX şi regiştrii EBX, ECX şi EDX conţin pe cate 8 biţi descriptori valizi (daca bitul 31=0).

Exemplu:

Pentru un procesor Sistem S3, Pentium 4, dupa executia instructiunii cpuid se returneaza urmatoarele valori in registrii EAX, EBX, ECX, EDX:

EAX= 665B5001h -> b31=0 => descriptori valizi , AL=01 -> trebuie executata o sg data

EBX=00000000h

ECX=00000000h

EDX=007A7040h

Valoarea

descriptor

Descriere cache

00h Nul

01h Instrucţiune TLB, pagini de 4k, asociativ 4 căi, 32 intrări

02h Instrucţiune TLB, pagini de 4M, full asociativ, 2 intrări

03h Date TLB, pagini de 4k, asociativ 4 căi, 64 intrări

04h Date TLB, pagini de 4M, asociativ 4 căi, 8 intrări

06h Cache Instructiuni, 8k, asociativ 4 căi, linii de lungime 32 octeţi

08h Cache Instructiuni,16k, asociativ 4 căi, linii de lungime 32 octeţi

0Ah Cache date, 8k, asociativ pe 2 căi, linii de lungime 32 octeţi

0Ch Cache date, 16k, asociativ pe 4 căi, linii de lungime 32 octeţi

40h Nu are cache de nivel L2 (la familia P6 ) sau L3 (la P4)

41h Cache unificat, linii de lungime 32 octeţi, asociativ pe 4 căi, 128k

42h Cache unificat, linii de lungime 32 octeţi, asociativ pe 4 căi, 256k

43h Cache unificat, linii de lungime 32 octeţi, asociativ pe 4 căi, 512k

44h Cache unificat, linii de lungime 32 octeţi, asociativ pe 4 căi, 1M

45h Cache unificat, linii de lungime 32 octeţi, asociativ pe 4 căi, 2M

Valoarea

descriptor

Descriere cache

50h TLB Instructiuni, pagini de 4Ko/2Mo/4Mo , total asoc, 64 intrari

51h TLB Instructiuni, pagini de 4Ko/2Mo/4Mo, total asoc, 128 intrari

52h TLB Instructiuni, pagini de 4Ko/2Mo/4Mo, total asoc, 256 intrari

5bh TLB date, pagini de 4Ko/4MB, total asociativ, 64 intrari

5ch TLB date, pagini de 4Ko/4MB, total asociativ, 128 intrari

5dh TLB date, pagini de 4Ko/4MB, total asociativ, 256 intrari

66h Cache date 8ko, sectorizat, asociativ pe 4 căi, linii de lungime 64o

70h Cache Trace de instrucţiuni 12ko uOps, asociativ pe 4 căi

79h Cache L2 128k, asociativ pe 8 căi, linii de lungime 64 octeţi

7ah Cache L2 256k, asociativ pe 8 căi, linii de lungime 64 octeţi

7bh Cache L2 512k, asociativ pe 8 căi, linii de lungime 64 octeţi

7ch Cache L2 1M, asociativ pe 8 căi, linii de lungime 64 octeţi

82h Cache unificat, linii de lungime 32 octeţi, asociativ pe 8 căi, 512k

84h Cache unificat, linii de lungime 32 octeţi, asociativ pe 8 căi, 1M

85h Cache unificat, linii de lungime 32 octeţi, asociativ pe 8 căi, 2M

Evolutia procesoarelor (de la aparitia primului sistem PC in 1981) a vizat urmatoarele:

• cresterea nr de tranzistoare si densitatea lor (nr de tranzistoare pe suprafata ocupata)

• cresterea vitezei/frecventei ciclurilor de ceas

• cresterea dimensiunii registrelor interne (nr de biti)

• cresterea numarului de miezuri (nuclee) pe chip

În cele 4 decenii de la aparitia 4004:

Tehnologia de fabricare (dimensiunea) a tranzistorului a scăzut de aproape 500 ori :

22nm vs 10microm => 10*10-6/22*10-9=454

numărul de tranzistori pe un cip a crescut cu 6 ordine de marime:

cateva miliarde =1.2G vs 2.3K (K-> M->G)

iar frecvența de operare a crescut cu aproape 4 ordine de mărime:

4G vs 740k (740k -> 7,4M -> 74M -> 740M -> 7,4G)

Nici un alt domeniu al ingineriei nu a inregistrat progrese atat de uimitoare într-un timp atat de scurt !

ISTORIA MICROPROCESOARELOR DIN FAMILIA INTEL X86

CONCLUZII

p

A N C A A P A T E A N - U T C N19

CPU (sau UCP)

• Familia Core (Intel)

• 8th Gen Intel® Core™ i7Ex: Intel® Core™ i7-8700K Processor cu 12 MB Cache, 6 Cores, 12 Threads – 330$

• 8th Gen Intel® Core™ i5Ex: Intel® Core™ i5-8600K Processor cu 9 MB Cache, 6 Cores, 6 Threads – 235$

• 8th Gen Intel® Core™ i3Ex: Intel® Core™ i3-8350K Processor cu 8 MB Cache, 4 Cores, 4 Threads – 169$

• Intel® Core™ X-Series sau Core™ i9

• – “the ultimate tool for gaming and virtual reality experience”• Pana la 18 cores (nuclee) -> 36 threaduri (fire de executie)

Ex: Intel® Core™ i9-7960X cu 22 MB Cache, 16 Cores, 32 Threads – 1570$