Gå til innhold

Hyperthreading eller lignende hos AMD?


Anbefalte innlegg

Har vært temmelig borte fra hardwareverdenen en stund, men etter hva jeg kan lese på diskuter artikler ang. Intels lanserte Dualcore-CPUer så sier altså noen at AMD har Hyperthreading (eller lignende) de også nå. Mulig det ikke er aktivert da, men uansett, er det noe jeg ikke har fått med meg?

 

Glad hvis noen vil fortelle litt, har bare fulgt overfladisk med i hardware-verdenen de siste, 6-9 månedene.

Lenke til kommentar
Videoannonse
Annonse

Tror nok ikke det er snakk om hyperthreading i tradisjonell forstand. Det er mer snakk om å enable en bit i EDX registeret som gjør at dobbeltkjerneprosessorene til AMD kan gjøre nytte av programmer som er beregnet på hyperthreading. Altså at programmer beregnet på to logiske prosessorer (HT) kan nyttiggjøres på to fysiske prosessorkjerner (DC).

Endret av el-asso
Lenke til kommentar
Tror nok ikke det er snakk om hyperthreading i tradisjonell forstand. Det er mer snakk om å enable en bit i EDX registeret som gjør at dobbeltkjerneprosessorene til AMD kan gjøre nytte av programmer som er beregnet på hyperthreading. Altså at programmer beregnet på to logiske prosessorer (HT) kan nyttiggjøres på to fysiske prosessorkjerner (DC).

det høres mer fornuftig ut, er vel dette som må skje når dobbeltkjernene kommer på slutten av året

Lenke til kommentar
Tror nok ikke det er snakk om hyperthreading i tradisjonell forstand. Det er mer snakk om å enable en bit i EDX registeret som gjør at dobbeltkjerneprosessorene til AMD kan gjøre nytte av programmer som er beregnet på hyperthreading. Altså at programmer beregnet på to logiske prosessorer (HT) kan nyttiggjøres på to fysiske prosessorkjerner (DC).

Snakker du om det vanlige x86 (extended)DX-registeret? Visste ikke at det ble brukt til sånne ting..?

Lenke til kommentar
Tror nok ikke det er snakk om hyperthreading i tradisjonell forstand. Det er mer snakk om å enable en bit i EDX registeret som gjør at dobbeltkjerneprosessorene til AMD kan gjøre nytte av programmer som er beregnet på hyperthreading. Altså at programmer beregnet på to logiske prosessorer (HT) kan nyttiggjøres på to fysiske prosessorkjerner (DC).

Snakker du om det vanlige x86 (extended)DX-registeret? Visste ikke at det ble brukt til sånne ting..?

Sorry, bokstavene stokket seg litt her.

 

Uten HT

Athlon 64 Simple Core - CPUID (EAX = 1)

Hex (EDX) : 0x078bfbff

Bin (EDX) : 0b00000111100010111111101111111111

Hex (EBX) : 0x00000800

 

Med HT

Athlon 64 Dual Core - CPUID (EAX = 1)

Hex (EDX) : 0x178bfbff

Bin (EDX) : 0b00010111100010111111101111111111

Hex (EBX) : 0x00020800

 

Mer om dette her

Lenke til kommentar
Tror nok ikke det er snakk om hyperthreading i tradisjonell forstand. Det er mer snakk om å enable en bit i EDX registeret som gjør at dobbeltkjerneprosessorene til AMD kan gjøre nytte av programmer som er beregnet på hyperthreading. Altså at programmer beregnet på to logiske prosessorer (HT) kan nyttiggjøres på to fysiske prosessorkjerner (DC).

Snakker du om det vanlige x86 (extended)DX-registeret? Visste ikke at det ble brukt til sånne ting..?

Jo, alle registerene brukes til informasjon om CPU...

 

I assembly kan du kalle på ".cpuid" så setter prosessoren flere bit i registerene etter hva den er i stand til å gjøre. For eksempel støtte for SSE2 indikeres ved et bit i et register...

 

siden dual-core fra AMD støtter to fysiske prosessoren kan den jo også benytte seg av optimaliseringer for Intel HyperThreading, så da sier prosessoren til applikasjonene at de kan gjøre HT over de to fysiske prosessorene...

Lenke til kommentar
Raptor' date='20/04/2005 : 08:03'] Jo, alle registerene brukes til informasjon om CPU...

 

I assembly kan du kalle på ".cpuid" så setter prosessoren flere bit i registerene etter hva den er i stand til å gjøre. For eksempel støtte for SSE2 indikeres ved et bit i et register...

 

siden dual-core fra AMD støtter to fysiske prosessoren kan den jo også benytte seg av optimaliseringer for Intel HyperThreading, så da sier prosessoren til applikasjonene at de kan gjøre HT over de to fysiske prosessorene...

Dette er feil, for det første brukes ikke på langt nær alle registere til informasjon om CPUen når du kjører cpuid.

For det andre så skriver du at "alle registere brukes til informasjon om CPU..." uten å skrive at de kun gjør det når du kjører cpuid!

Lenke til kommentar
Raptor,20/04/2005 : 08:03] Jo, alle registerene brukes til informasjon om CPU...

 

I assembly kan du kalle på ".cpuid" så setter prosessoren flere bit i registerene etter hva den er i stand til å gjøre. For eksempel støtte for SSE2 indikeres ved et bit i et register...

 

siden dual-core fra AMD støtter to fysiske prosessoren kan den jo også benytte seg av optimaliseringer for Intel HyperThreading, så da sier prosessoren til applikasjonene at de kan gjøre HT over de to fysiske prosessorene...

Dette er feil, for det første brukes ikke på langt nær alle registere til informasjon om CPUen når du kjører cpuid.

For det andre så skriver du at "alle registere brukes til informasjon om CPU..." uten å skrive at de kun gjør det når du kjører cpuid!

Hallo flisespikking... :roll:

 

Jeg vet at ALLE registerene ikke brukes til å sette inn informasjon... De general purpose registerene som brukes til å indentifisere HT rellevante ting er EAX, EBX, ECX, og EDX...

 

Da kan jeg jeg begynne og...

 

jeg trodde faktisk at brukeren (programmereren) selv måtte enable en bit i edx for å slå på denne funksjonaliteten slik som du skrev det.

 

Det er nok helt feil....

 

Operativsystemet må også støtte HT, ellers ellers så er det ikke noe poeng...

 

CPUID setter Bit 28 i EDX hvis prosessoren støtter HyperThreading (flere tråder), i bit 23-16 i EBX kan du lese ut hvor mange logiske prosessoren som er tilgjenglig

 

CPUID instruksjonen kan også brukes til å manuelt flush'e pipelinen til CPU'en

 

Med en gang du er ferdig med å lese ut det du trenger og programmet eksekverer videre overskrives selvsagt alle gpr registerene med data fra applikasjonen som kjører...

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...