Trekärniga Phenom nästa år

Permalänk
Medlem

Det är min fria översättning från engelskans micro-code som bland annat används som term för de programalgoritmer som kontrollerar intern kommunikation i exempelvis mikroprocessorer. Implementering kan göras i hårdvaran och/eller i ett kommunikationsgränssnitt såsom BIOS.

Ordet maskinkod använder åtminstone jag som term för de instruktionsuppsättningar som blivit översätta av en kompilator/assemblator i ett högre lager för den specifika instruktionsuppsättning som den aktuella processorn stödjer utåt.

Även om de kan trampa på varandras tår i gränsnittet så innehåller "mikrokod" också algoritmer och instruktioner som inte är avsedda att anropas direkt av exempelvis operativsystemet eller drivrutinerna. Naturligtvis kan drivrutiner och OS gå "förbi" BIOS för direkt kommunikation med periferienheter via olika bussprotokoll men vad processorn anbelangar används endast de instruktioner och interrupt som processorarkitekturen stödjer.

Jag önskar att göra en åtskillnad mellan processorn instruktionsuppsättning som ändå kan uppfattas som relativt "högnivå" och de algoritmer som exempelvis styr timing i de interna lagren i CPU:n. Naturligtvis kommunicerar CPU:n via de olika bussarna på moderkortet och kan därför påverkas via modifiering av BIOS-programmet men i princip all viktig "micro-code" finns inuti CPU:n.

Dessutom betraktas delar av "mikrokod" som företagshemligheter (exempelvis hur cache logiken sköts på detaljnivå) En "enkel" matematisk algoritm kan ha tagit 10000-tals timmar att utveckla.

Som sammanfattning vill jag säga att maskinkod är i mina ögon "högnivå" och "mikrokod" huvudsakligen "lågnivå eller mycket lågnivå". Det förefaller då för mig som lämpligt att använda olika ord för dessa. Jag kan ha fel, och ändrar mig gärna om så är fallet.

PS:
Tackar för länken till Wikipedia. Skummade igenom texten. Jag verkar besitta en relevant definition av vad "mikrokod" respektive "maskinkod" är. Jag har haft programmering som passion i över 30 år nu. Däremot begränsas min "lågnivåprogrammeringserfarenhet" till kontrollprogram i assembler för enchipsdatorn på 80-talet.

Silikon borde rimligen heta kisel. Ursäkta svengelskan. Point taken.

Hare/PeSi

Permalänk
Medlem

Då har du läst lite för mycket computer sweden och fått det om bakfoten: maskinkod är det fysiska systemet för instruktioner och data som exekveras av en CPU. (översatt Wiki)

Sammanfattat så komplicerar du din bild för mycket och relaterar till för många olika saker. Enkelt uttryckt använder du "mikrokod" för maskinkod och "maskinkod" för programkod. Programkod är kompilerad källkod, källkod är den kod som programmerare skriver.

Gällande mikrokod så måste jag bara kommentera att Computer Sweden suger och är en amatörblaska.

EDIT - har också läst Wiki länken nu. Intressant, med tanke på att i den mängd av kurslitteratur jag har gått igenom så förekommer inte mikrokod som begrepp
EDIT (igen) - nu har jag läst: precis som jag trodde så är mikrokod som begrepp och metod föråldrad. Enklare uttryckt: lär inte finnas många som använder sig av mikrokod förutom de som tillverkar enkla "embedded" lösningar.

Visa signatur

[Asus P8H67] - [Intel i2500k] - [Corsair 4gb pc10600] - [Asus 560ti 1gb]

Permalänk
Medlem

Jag tror att det var ca 10 år sedan jag läste Computer Sweden. Jag tyckte att författarna favoriserade irriterande mycket sina egna favoritföretag och gav en snedvriden bild av marknaden. Slutade läsa blaskan i slutet på det förra årtusendet.

Om mikrokod och maskinkod:
Kompilatorn för ett valfritt icke interpretande språk konverterar och länkar källkoden till en uppsättning instruktioner som normalt lagras i exekverbara filer. Dessa instruktioner är anpassade för ett specifikt operativsystem eller protokoll som vid exekvering av filen/filerna konverterar dessa till maskinkod som i sin tur innehåller de instruktioner som processorns kan hantera.

Termen maskinkod används i den här bemärkelsen i de svenska programmeringsböcker jag läst (har någon hyllmeter bakom mig).

Den instruktionsuppsättning som processorn har måste eventuellt konvertera maskinkoden via "mikrokod" så att processorn kan utföra det som instruktionerna vill utföra. Så långt är det hela enkelt.

Nu börjar en viss begreppsförvirring. Enligt Wikipedia vill man isolera vissa processorinstruktioner som "görs direkt i hårdvaran" såsom bearbetning av det som finns i processorns interna register såsom, addera, subtrahera, multiplicera, osv. från att inte "egentligen" vara mikrokod. De görs ju direkt i hårdvaran därför att mikrokoden är inbyggd i hårdvaran.

Man säger specifikt att man inte bör kalla FirmWare för mikrokod.

Däremot skulle "mikrokod" vara de algoritmer som ligger "mellan" de mera komplexa instruktionerna och det underliggande hårdvarulagret som utför uppgifter. Om detta är sant vad skall man då kalla de "komplexa instruktioner" som använder de "enklare instruktionerna" för sitt arbete?

Jag har svårt att se tydlig skillnad mellan ett arbete som utförs av en hårdvaru- eller mjukvarualgoritm. Om så skulle vara fallet måste man åtskilja bearbetning som utförs av ett program som ligger i BIOS-kretsen från det som ligger i RAM även om arbetet som utförs ändå är exakt detsamma.

Om man gör denna distinktion så saknar man plötsligt ord och begrepp när man vill referera till de specifika arbetsmoment som ändå omvandlar instruktionerna till ett faktiskt arbete i hårdvaran. I brist på andra ord kommer jag nog fortsätta att använda ordet "mikrokod" för det kompletta paketet som omvandlar processorns intruktionsuppsättning till faktiskt arbete helt oberoende på om detta görs direkt i hårdvaran eller via ett extra mjukvarusteg. Kalla mig fräck om ni vill.

EDIT:
Mikrokod används i alla komplexa CPU:er idag. Fördelen är att vissa typer av problem kan enklare fixas. Annars skulle man tvingas ta fram en ny revision för varje litet fel. Ingen kan tillverka dagens komplexa CPU:er utan felaktigheter. I bästa fall hittas och fixas fel redan under valideringsprocessen.

Intel var förutseende och byggde in "en slags mikrokodsmanipulering" i Core 2 Duo. De har kunnat fixa errata enkelt i det dolda. AMD använder också mikrokod men behöver fixa den via nya revisioner. En mjukvarulösning kan dra ner hastigheten märkbart medan Intels lösning kanske drar ner hastigheten 0,1%. När sedan Intel ändå tar fram en ny revision någon gång fixas problemet direkt på kislet "helt" utan prestandaförlust.

"Mikrokod" verkar vara ett nödvändigt ont i komplexa CPU:er.

Hare/PeSi

Permalänk
Hjälpsam

Jag har uppfattat det som om maskinkod är den kod som processorn matas med utifrån.
Asembler kan lätt översättas till maskinkod.
Microkod är det sätt som Processorn genomför instruktionerna inuti processorn och är inget som kan nås utifrån.
Förr gav en maskinkodsinstruktion upphov till att en rad mikrokodsinstruktioner utfördes efter varandra inuti CPU:n.
I dag implementeras mikrokoden i form av ofta i form av logiknät inne i CPU:n.
Tänk dig att en maskinkodsinstruktion säger åt en processor att addera två register, mikrokoden talar om hur denna addition uförs, steg för steg inuti processorn.

Visa signatur

AMD Ryzen 7 1700 | Saphire RX 5700 Pulse XT (Silent Mode) | 64 GB Kingston ECC | https://valid.x86.fr/z2ljhr | Stockkylaren | Bitfenix Whisper M 750W.
AMD Ryzen 9 5900X | AMD RX 5700 | 64 GB Micron ECC | https://valid.x86.fr/5krwxf
HTPC | https://valid.x86.fr/uuzli0 |

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av TinMann
EDIT (igen) - nu har jag läst: precis som jag trodde så är mikrokod som begrepp och metod föråldrad. Enklare uttryckt: lär inte finnas många som använder sig av mikrokod förutom de som tillverkar enkla "embedded" lösningar.

Microcode används fortfarande, ett bra exempel är när jag och en kompis optimerade kod, och vi timade med RTDSC.
På min AMD tog RDTSC ~6 klock och på kompisens P4a ~96 klock.
Inte förän x86_64 var _inc reg_ snabbare än _add reg, 1_

Ur Intels Core 2 Duo Errata
AE75. _Microcode_ Updates Performed During VMX Non-root Operation Could Result in Unexpected Behavior

Ofta brukar BIOS-kod patcha processorns mikrokod vid initiering.

Visa signatur

How do 'Do Not Walk on the Grass' signs get there ?

Permalänk
Avstängd

fattar inte, deras fyrkärniga är kassa, varför skulle en 3 kärnig vara något att hoppas på

Visa signatur

All datorprestanda kan jämföras i kronor och ören (kr/poäng). Exempel: Prestanda/krona på grafikkort | www.intrnet.se

Permalänk
Hjälpsam
Citat:

Ursprungligen inskrivet av michael123
fattar inte, deras fyrkärniga är kassa, varför skulle en 3 kärnig vara något att hoppas på

Kommer inte ha den hemska buggen när dom släpps.
Kommer bli billigare än 4 kärnor.
Mindre varma per klock än 4 kärnor.
De flesta program använder i dag inte 4 kärnor bra, i dessa fall kommer 3 kärnor prestera lika bra med samma klock.

Kan kanske klockas högre än 4 kärnor?

Visa signatur

AMD Ryzen 7 1700 | Saphire RX 5700 Pulse XT (Silent Mode) | 64 GB Kingston ECC | https://valid.x86.fr/z2ljhr | Stockkylaren | Bitfenix Whisper M 750W.
AMD Ryzen 9 5900X | AMD RX 5700 | 64 GB Micron ECC | https://valid.x86.fr/5krwxf
HTPC | https://valid.x86.fr/uuzli0 |

Permalänk
Medlem

Jag hoppas bara att det inte blir någon grej AMD och Intel gör för att få en linjär ökning av kärnor istället för exponentiell.

Visa signatur

How do 'Do Not Walk on the Grass' signs get there ?

Permalänk
Medlem

AMD och inte

Citat:

Ursprungligen inskrivet av Dyluck
Jag hoppas bara att det inte blir någon grej AMD och Intel gör för att få en linjär ökning av kärnor istället för exponentiell.

AMD och Intel sammarbeta?(!)

Visa signatur

In the end what separates a man from a slave?
Money? Power? No... A man chooses, a slave obeys.
ASUS Z170M-PLUS || Intel Core i7 6700k @ 4,7GHz || 64GB 2133MHz Corsair RAM || MSI NVIDIA RTX 2070 Gaming Z 8GB || Bifenix Prodigy M || 2x CZ TR150 480GB RAID 0 || BeQuiet DarkRock Pro

Permalänk
Medlem

För mig som är relativ lekman på området känns det geometriskt och anslutningsmässigt rätt naturligt med ett system för tre kommunicerande enheter. I alla fall så länge man tänker sig att chippen är tvådimensionella.

Tänk att man står tre pers och håller hand. Alla är i direktkontakt med varandra, och man kan ha gemensamma resurser i mitten som alla kan komma åt och dela på.

Ska fyra stycken stå i ring kring en gemensam resurs får man klara sig med att personen mitt emot är två 'hopp' bort, eller så får man skaffa extra armar och förändra geometrin till något där det inte känns lika lätt att dela på en gemensam resurs.

Visa signatur

Gammal och gnällig

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av lollol7
AMD och Intel sammarbeta?(!)

Apar efter varandra...

X86, MMX, SSE, NX, 64bit ext, flera kärnor per "die".
Inte en slump att du kan köra samma program på en AMD som en Intel.

Visa signatur

How do 'Do Not Walk on the Grass' signs get there ?

Permalänk
Avstängd
Citat:

Ursprungligen inskrivet av Dyluck
Apar efter varandra...

X86, MMX, SSE, NX, 64bit ext, flera kärnor per "die".
Inte en slump att du kan köra samma program på en AMD som en Intel.

"apar efter varandra" kallas även tekniska framsteg.

Visa signatur

/RainesXenox\ [eac]MasterZerg(P_1)
Amd x2 6000+ | scyte katana 2 | Gigabyte GA-M57SLI-S4 | TwinX DDR2 PC6400 CL4 4x1GB | xfx geforce 8800 gts 640mb | Logitech G11 | Razer Copperhead | spinpoint 320gb 16mb | antec nine hundred | syncmaster 226bw 22" | Apevia ATX-AS520W

Permalänk
Avstängd
Citat:

Ursprungligen inskrivet av lincoln
För mig som är relativ lekman på området känns det geometriskt och anslutningsmässigt rätt naturligt med ett system för tre kommunicerande enheter. I alla fall så länge man tänker sig att chippen är tvådimensionella.

Tänk att man står tre pers och håller hand. Alla är i direktkontakt med varandra, och man kan ha gemensamma resurser i mitten som alla kan komma åt och dela på.

Ska fyra stycken stå i ring kring en gemensam resurs får man klara sig med att personen mitt emot är två 'hopp' bort, eller så får man skaffa extra armar och förändra geometrin till något där det inte känns lika lätt att dela på en gemensam resurs.

Nu är det ju så att varje processor isåfall har 3 armar eller mer, det går alltså utmärkt att vara 4.

Rent geometriskt är 3 mycket sämre än 4 då det blir svårt att lägga tre kvadrater i en fyrkant. Blir spilkisel här och där alternativt mycket arbete att deigna om det.

Permalänk
Medlem

Intressant tråd det här blev då. Mycket matnyttig info, tackar för det, ni som känner er träffade!

@lincoln, tanken på en cpu formad som en triangel låter inte omöjlig. Men även jag är lekman ; )

Visa signatur

Lenovo Thinkpad T14 gen 2 - i7 1165G7 - 32Gb ram - 512Gb OPAL2 ssd - 300 nit 1080p

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av -Boris-
Nu är det ju så att varje processor isåfall har 3 armar eller mer, det går alltså utmärkt att vara 4.

Rent geometriskt är 3 mycket sämre än 4 då det blir svårt att lägga tre kvadrater i en fyrkant. Blir spilkisel här och där alternativt mycket arbete att deigna om det.

Jo, jag förstår det... Som jag skrev så kändes det naturligt i två dimensioner. Har du fem parter - fyra kärnor plus cache/gemensamma resurser - som ska kommunicera point-to-point, så får du per definition korsande ledningsgator.

CPU som triangel... Intressant - Hade inte tänkt så långt själv - tänkte mig en vanlig fyrkantig bricka, fast med en kvadrant bestående av cachen.

Visa signatur

Gammal och gnällig

Permalänk
Avstängd
Citat:

Ursprungligen inskrivet av lincoln
Jo, jag förstår det... Som jag skrev så kändes det naturligt i två dimensioner. Har du fem parter - fyra kärnor plus cache/gemensamma resurser - som ska kommunicera point-to-point, så får du per definition korsande ledningsgator.

CPU som triangel... Intressant - Hade inte tänkt så långt själv - tänkte mig en vanlig fyrkantig bricka, fast med en kvadrant bestående av cachen.

Du behöver inte oroa dig för korsade ledningsbanor. Angående en kvadrat med cachen, det blir inte mycket cache för att vara L3. Och om det ska vara L2 blir latenserna lite väl dåliga. Och desgina en triangulär processor är ju möjligt, men det blir ett jäkla jobb. Och jag vet inte om verktygen skär ut annat än kvadratiska formar ur waffersen ändå.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av -Boris-
Du behöver inte oroa dig för korsade ledningsbanor. Angående en kvadrat med cachen, det blir inte mycket cache för att vara L3. Och om det ska vara L2 blir latenserna lite väl dåliga. Och desgina en triangulär processor är ju möjligt, men det blir ett jäkla jobb. Och jag vet inte om verktygen skär ut annat än kvadratiska formar ur waffersen ändå.

Det ända man kan göra idag är fyrkantiga och runda masker.

Man behöver inte göra kvadratiska processorkärnor.
Rektangulära, L formade och korsformade går bra.

Skulle jag göra en trekärning processor skulle jag ha L-formade kärnor och fyrkantigt cache i mitten.

Ska bli intressant att se sen om det är en äkta trekärns processor eller en fyrkärnig med en deaktiverad. Kan tänka mig båda delarna. Men med tanke på vad det kostar att göra en mask och alla processsteg tror jag inte att man vill "slänga bort" ca:<25% av kiselarean....

Edit: Det nämdes att man har stängt av pipes och dyl på grafikkort.
Vad jag vet så var det endast en serie som man gjort detta på och detta som en nödlösning då man hade allvarliga problem i processen. Jag tänker på 6800 serien.

Visa signatur

Ryzen 9 5950X, 32GB 3600MHz CL16, SN850 500GB SN750 2TB, B550 ROG, 3090 24 GB
Har haft dessa GPUer: Tseng ET6000, Matrox M3D, 3DFX Voodoo 1-3, nVidia Riva 128, TNT, TNT2, Geforce 256 SDR+DDR, Geforce 2mx, 3, GT 8600m, GTX460 SLI, GTX580, GTX670 SLI, 1080 ti, 2080 ti, 3090 AMD Radeon 9200, 4850 CF, 6950@70, 6870 CF, 7850 CF, R9 390, R9 Nano, Vega 64, RX 6800 XT
Lista beg. priser GPUer ESD for dummies

Permalänk
Avstängd
Citat:

Ursprungligen inskrivet av Herr Kantarell
Det ända man kan göra idag är fyrkantiga och runda masker.

Man behöver inte göra kvadratiska processorkärnor.
Rektangulära, L formade och korsformade går bra.

Skulle jag göra en trekärning processor skulle jag ha L-formade kärnor och fyrkantigt cache i mitten.

Ska bli intressant att se sen om det är en äkta trekärns processor eller en fyrkärnig med en deaktiverad. Kan tänka mig båda delarna. Men med tanke på vad det kostar att göra en mask och alla processsteg tror jag inte att man vill "slänga bort" ca:<25% av kiselarean....

Edit: Det nämdes att man har stängt av pipes och dyl på grafikkort.
Vad jag vet så var det endast en serie som man gjort detta på och detta som en nödlösning då man hade allvarliga problem i processen. Jag tänker på 6800 serien.

Med cache i mitt en med tre kärnor, skulle inte T vara bättre form då. L har ju bara två axlar från cachen i mitten liksom. Eller jag är inte helt med på vad du menar kanske.

Hursomhelst. Avstängda pipes är vanligt. Och man har gjort det många gånger, kändaste exemplet är väl ATI 9500 som var lätt att låsa upp. Ofta kunde du få ett 9700pro till priset av ett sketet 9500-non pro. Det är som att köpa ett 8600 idag och få ett 8800GTX.
Efter den serien har man varit noggrannare med att se till att det inte går att låsa upp kretsarnas pipes.
Idag vet jag inte hur det är. Jag vet inte om GTS är cripplade GTX, men det är mycket möjligt att de är.
8800GT och nya 8800GTS ska ju båda bygga på G92. Frågan är om det är identiska chip med några pipes avstängda i 8800GT eller om det faktiskt är olika chip båda baserade på arkitekturen G92. Det är lurigt det där, man vet inte om G92 är kodnamnet för ett specifikt chip med spikat antal pipes, eller om det bara är kodnamn för arkitetkuren.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av -Boris-
Med cache i mitt en med tre kärnor, skulle inte T vara bättre form då. L har ju bara två axlar från cachen i mitten liksom. Eller jag är inte helt med på vad du menar kanske.

Ja T går också bra eller någon annan form med 90gradiga vinklar.
L var bara som ett exempel. Jag förstår inte dig på många sätt och du förstår nog inte mig heller.

Citat:

Ursprungligen inskrivet av -Boris-
Hursomhelst. Avstängda pipes är vanligt. Och man har gjort det många gånger, kändaste exemplet är väl ATI 9500 som var lätt att låsa upp. Ofta kunde du få ett 9700pro till priset av ett sketet 9500-non pro.

Det var ju Sweet!

Antagligen är lägre klockade exemplar av GPU/CPU chip från batchen som inte klarade verifikationen av den högsta klockhastigheten.

Citat:

Ursprungligen inskrivet av -Boris-
Det är som att köpa ett 8600 idag och få ett 8800GTX.
Efter den serien har man varit noggrannare med att se till att det inte går att låsa upp kretsarnas pipes.

Nu tar du väl ändå i lite? Det är ju två olika processorer! G80/G92 vs G84
Skiljer på väldigt många sätt!
http://en.wikipedia.org/wiki/GeForce_8_Series

Men om du vet hur man gör ett 8600 till ett 8800GTX så är jag väldigt intresserad

Citat:

Ursprungligen inskrivet av -Boris-
Idag vet jag inte hur det är. Jag vet inte om GTS är cripplade GTX, men det är mycket möjligt att de är.
8800GT och nya 8800GTS ska ju båda bygga på G92. Frågan är om det är identiska chip med några pipes avstängda i 8800GT eller om det faktiskt är olika chip båda baserade på arkitekturen G92. Det är lurigt det där, man vet inte om G92 är kodnamnet för ett specifikt chip med spikat antal pipes, eller om det bara är kodnamn för arkitetkuren.

Om båda är G92 så är det samma chip. Det skiljer några shader processorer? Om det inte rör sig om defekta så borde de gå att låsa upp.

Visa signatur

Ryzen 9 5950X, 32GB 3600MHz CL16, SN850 500GB SN750 2TB, B550 ROG, 3090 24 GB
Har haft dessa GPUer: Tseng ET6000, Matrox M3D, 3DFX Voodoo 1-3, nVidia Riva 128, TNT, TNT2, Geforce 256 SDR+DDR, Geforce 2mx, 3, GT 8600m, GTX460 SLI, GTX580, GTX670 SLI, 1080 ti, 2080 ti, 3090 AMD Radeon 9200, 4850 CF, 6950@70, 6870 CF, 7850 CF, R9 390, R9 Nano, Vega 64, RX 6800 XT
Lista beg. priser GPUer ESD for dummies