Permalänk
Datavetare

AMD är inte ensamma om CMT

Börjat jobba med Freescale PowerPC igen och efter att satt mig in i de senaste plattformarna visade sig att även Freescale har gjort en variant av CMT (Cluster level MultiThreading) i stället för att använda sig av SMT (Simultaneous MultiThreading), det Intel kallar Hyper-Threading, som är mer vanligt och tydligen ska komma i Zen.

CMT är egentligen ingen vedertagen term och förkortning är väldigt olycklig (eller är det medvetet?) då CMT normalt sätt tolkas som Chip level MultiThreading vilket är namnet på en enskild krets som innehåller flera CPU-kärnor, d.v.s. en vanligt multicore CPU. Freescale kallar sina kärnor för "dual-threaded" men påpekar att det ändå inte är vanligt SMT.

AMDs variant av CMT

består i att man duplicerar inhämtning, avkodning (sedan Steamroller), L1D$ samt heltalsenheterna medan man delar flyttaldelen, L1I$ och L2$. Resultatet blev något med väldigt dålig enkeltrådprestanda och något som kostade väldigt mycket fler transistorer än SMT.

Freescales e6500 kärna är uppdelad lite annorlunda men det är stora likheter med AMDs design. Varje "kärna" (Freescales ord, AMD kallar detta modul) består av två trådar där inhämtning, avkodning och slutförande av instruktioner är separerat medan man delar L1D$, L1I$, L2, heltal och flyttal. Totala "bredden" på heltalsdelen är 4 instruktioner, vilket är samma som Bulldozer som har 2+2 (heltal är separerade), fördelen här är att när bara en kärna körs får man bättre prestanda då kapaciteten är 4 instruktioner medan det aldrig blir mer än 2 på Bulldozer.

Det riktigt intressanta är att SMT gör att två kärnor kör typiskt på runt 60-65% effektivitet (två trådar utföra 120-130% av jobbet en kärna fixar), AMDs design ger runt 80-85% (två trådar utför 160-170% av en kärna). Freescales lösning ligger närmare AMDs än SMT, trots att man slapp lägga så mycket transistorer på att duplicera heltalsenheterna.

Faktum är att e6500 har "världsrekordet" i CoreMark/W och en IPC för enkeltrådat som är närmare Haswell än Steamroller/Jaguar (som faktiskt har nästa identisk IPC). Så verkar som AMDs CMT idé var inte helt galen, de gjorde bara ett väldigt dålig val i att separera heltalsdelarna vilket resulterade i många transistorer och väldigt dålig kapacitet när bara en av trådarna används. Kanske trist att man helt överger den designen i stället för att göra en lite större ommöblering och rätta missen i designen. Vi vet i.o.f.s. inte hur Zen kommer se ut ännu.

Fan vad trist att denna generations spelkonsoler inte höll kvar vid PowerPC. De plattformar med 12 kärnor / 24 trådar har en TDP på 30W vid 1.8GHz, tänk denna plattform med 4 kärnor / 8 trådar på 2.5GHz (vilket verkar vara ungefär så långt man kommer idag). Skulle ge ungefär dubbla prestanda per tråd mot vad dagens konsoler med ungefär samma TDP och detta är en CPU-design som precis som Jaguar designats från scratch för att kunna byggas in i systemkretsar.

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Medlem

Tänkte när man fick höra om Zen att ''skit i CMT nu snälla'' men nu plötsligt om det verkligen kan fungera bättre än SMT så kanske man hoppas att de bara gör om gör rätt.

Visa signatur

Ryzen 7 5800X3D | RX 7900 XT

Permalänk
Medlem
Skrivet av virtual void:

Börjat jobba med Freescale PowerPC igen och efter att satt mig in i de senaste plattformarna visade sig att även Freescale har gjort en variant av CMT (Cluster level MultiThreading) i stället för att använda sig av SMT (Simultaneous MultiThreading), det Intel kallar Hyper-Threading, som är mer vanligt och tydligen ska komma i Zen.

CMT är egentligen ingen vedertagen term och förkortning är väldigt olycklig (eller är det medvetet?) då CMT normalt sätt tolkas som Chip level MultiThreading vilket är namnet på en enskild krets som innehåller flera CPU-kärnor, d.v.s. en vanligt multicore CPU. Freescale kallar sina kärnor för "dual-threaded" men påpekar att det ändå inte är vanligt SMT.

AMDs variant av CMT
http://images.bit-tech.net/content_images/2011/10/amd-fx-8150...

består i att man duplicerar inhämtning, avkodning (sedan Steamroller), L1D$ samt heltalsenheterna medan man delar flyttaldelen, L1I$ och L2$. Resultatet blev något med väldigt dålig enkeltrådprestanda och något som kostade väldigt mycket fler transistorer än SMT.

Freescales e6500 kärna är uppdelad lite annorlunda men det är stora likheter med AMDs design. Varje "kärna" (Freescales ord, AMD kallar detta modul) består av två trådar där inhämtning, avkodning och slutförande av instruktioner är separerat medan man delar L1D$, L1I$, L2, heltal och flyttal. Totala "bredden" på heltalsdelen är 4 instruktioner, vilket är samma som Bulldozer som har 2+2 (heltal är separerade), fördelen här är att när bara en kärna körs får man bättre prestanda då kapaciteten är 4 instruktioner medan det aldrig blir mer än 2 på Bulldozer.
http://cache.freescale.com/files/graphic/block_diagram/T4240_...

Det riktigt intressanta är att SMT gör att två kärnor kör typiskt på runt 60-65% effektivitet (två trådar utföra 120-130% av jobbet en kärna fixar), AMDs design ger runt 80-85% (två trådar utför 160-170% av en kärna). Freescales lösning ligger närmare AMDs än SMT, trots att man slapp lägga så mycket transistorer på att duplicera heltalsenheterna.

Faktum är att e6500 har "världsrekordet" i CoreMark/W och en IPC för enkeltrådat som är närmare Haswell än Steamroller/Jaguar (som faktiskt har nästa identisk IPC). Så verkar som AMDs CMT idé var inte helt galen, de gjorde bara ett väldigt dålig val i att separera heltalsdelarna vilket resulterade i många transistorer och väldigt dålig kapacitet när bara en av trådarna används. Kanske trist att man helt överger den designen i stället för att göra en lite större ommöblering och rätta missen i designen. Vi vet i.o.f.s. inte hur Zen kommer se ut ännu.

Fan vad trist att denna generations spelkonsoler inte höll kvar vid PowerPC. De plattformar med 12 kärnor / 24 trådar har en TDP på 30W vid 1.8GHz, tänk denna plattform med 4 kärnor / 8 trådar på 2.5GHz (vilket verkar vara ungefär så långt man kommer idag). Skulle ge ungefär dubbla prestanda per tråd mot vad dagens konsoler med ungefär samma TDP och detta är en CPU-design som precis som Jaguar designats från scratch för att kunna byggas in i systemkretsar.

Dold text

Intressant läsning, tack för att du delar med dig!

Visa signatur

Nybörjare på Linux? Se hit! #15665841

Permalänk
Moderator
Festpilot 2020, Antiallo

Har alltid trott att CMT har haft många fördelar och mycket väl kan bli en värdig konkurrent om bara besvären med låg singeltrådsprestanda blir behandlad samtidigt som IPC ökas.

Visa signatur

 | PM:a Moderatorerna | Kontaktformuläret | Geeks Discord |
Testpilot, Skribent, Moderator & Geeks Gaming Huvudadmin

Permalänk
Medlem
Skrivet av virtual void:

Börjat jobba med Freescale PowerPC igen och efter att satt mig in i de senaste plattformarna visade sig att även Freescale har gjort en variant av CMT (Cluster level MultiThreading) i stället för att använda sig av SMT (Simultaneous MultiThreading), det Intel kallar Hyper-Threading, som är mer vanligt och tydligen ska komma i Zen.

CMT är egentligen ingen vedertagen term och förkortning är väldigt olycklig (eller är det medvetet?) då CMT normalt sätt tolkas som Chip level MultiThreading vilket är namnet på en enskild krets som innehåller flera CPU-kärnor, d.v.s. en vanligt multicore CPU. Freescale kallar sina kärnor för "dual-threaded" men påpekar att det ändå inte är vanligt SMT.

AMDs variant av CMT
http://images.bit-tech.net/content_images/2011/10/amd-fx-8150...

består i att man duplicerar inhämtning, avkodning (sedan Steamroller), L1D$ samt heltalsenheterna medan man delar flyttaldelen, L1I$ och L2$. Resultatet blev något med väldigt dålig enkeltrådprestanda och något som kostade väldigt mycket fler transistorer än SMT.

Freescales e6500 kärna är uppdelad lite annorlunda men det är stora likheter med AMDs design. Varje "kärna" (Freescales ord, AMD kallar detta modul) består av två trådar där inhämtning, avkodning och slutförande av instruktioner är separerat medan man delar L1D$, L1I$, L2, heltal och flyttal. Totala "bredden" på heltalsdelen är 4 instruktioner, vilket är samma som Bulldozer som har 2+2 (heltal är separerade), fördelen här är att när bara en kärna körs får man bättre prestanda då kapaciteten är 4 instruktioner medan det aldrig blir mer än 2 på Bulldozer.
http://cache.freescale.com/files/graphic/block_diagram/T4240_...

Det riktigt intressanta är att SMT gör att två kärnor kör typiskt på runt 60-65% effektivitet (två trådar utföra 120-130% av jobbet en kärna fixar), AMDs design ger runt 80-85% (två trådar utför 160-170% av en kärna). Freescales lösning ligger närmare AMDs än SMT, trots att man slapp lägga så mycket transistorer på att duplicera heltalsenheterna.

Faktum är att e6500 har "världsrekordet" i CoreMark/W och en IPC för enkeltrådat som är närmare Haswell än Steamroller/Jaguar (som faktiskt har nästa identisk IPC). Så verkar som AMDs CMT idé var inte helt galen, de gjorde bara ett väldigt dålig val i att separera heltalsdelarna vilket resulterade i många transistorer och väldigt dålig kapacitet när bara en av trådarna används. Kanske trist att man helt överger den designen i stället för att göra en lite större ommöblering och rätta missen i designen. Vi vet i.o.f.s. inte hur Zen kommer se ut ännu.

Fan vad trist att denna generations spelkonsoler inte höll kvar vid PowerPC. De plattformar med 12 kärnor / 24 trådar har en TDP på 30W vid 1.8GHz, tänk denna plattform med 4 kärnor / 8 trådar på 2.5GHz (vilket verkar vara ungefär så långt man kommer idag). Skulle ge ungefär dubbla prestanda per tråd mot vad dagens konsoler med ungefär samma TDP och detta är en CPU-design som precis som Jaguar designats från scratch för att kunna byggas in i systemkretsar.

Oj du har luskat fram lite info. Frågan är hur zen är tänkt att fungera? skippar dom moduler eller kommer dom kunna fixa IPC.

I alla fall får man hoppas zen blir kraftigare per watt än bulldozer är och varit. Det tycker jag är det viktigaste.

Visa signatur

Min spel rigg:FD Define R4|VX 550W|i5 2500K|Corsair LP 4GBX2|Mammabräda P67 Extreme4|GTX 670 windforce|23tum u2312hm
Min gamla/HTPC:AMD 6000+|Ram 2GbX2|Radeon HD5770| XFX 450/nu XFX 550
Mitt bygge: ByggloggFri frakt INET:Fraktfritt sweclockers vid köp över 500kr

#Gilla inlägg som är bra & Använd citera/@"namn" vid snabbt svar

Permalänk
Medlem

Tror att det låg något i ryktet om "reversed hyperthreading". Känns som att det var meningen från början att en tråd skulle kunna använda alla enheterna i en modul. Ser inte mycket mening med att den matar 2+2 istället för 4 när det ändå är samma decoder, prefetch och cache som ska mata det hela. Sedan kan ju inte jag processordesign något vidare. Men hur rimligt kan man bedöma att det är så? Att det var menat att modulen skulle kunna arbeta som en enda bredare kärna?

Permalänk
Medlem

På x86 känns det nog ändå mer rätt med en "x86 front-end" per kärna. På andra arkitekturer kör man ofta i princip en front-end för hela multi-core kiseln. Front-end/avkodning var ju skadad i hela Bulldozer. Så pass att även Excavators dedikerade avkodare per tråd och dubbla FPUer inte gör någon större skillnad. Nytt behövdes nog för att gå vidare. Inte säker på att det är helt smart att satsa på custom ARM om de bara ska försöka få en del av mikroservermarknaden däremot för t.ex. nätverk och inbyggnad finns det lämpligare leverantörer. Konsumentmarknaden kan jag inte direkt se de på. Det tog ju Nvidia 5 år på marknaden för att hamna där de är i dag.

Permalänk
Datavetare
Skrivet av Aleshi:

Tror att det låg något i ryktet om "reversed hyperthreading". Känns som att det var meningen från början att en tråd skulle kunna använda alla enheterna i en modul. Ser inte mycket mening med att den matar 2+2 istället för 4 när det ändå är samma decoder, prefetch och cache som ska mata det hela. Sedan kan ju inte jag processordesign något vidare. Men hur rimligt kan man bedöma att det är så? Att det var menat att modulen skulle kunna arbeta som en enda bredare kärna?

Blev aldrig riktigt klok på vad AMD menade med "reversed hyperthreading", kör man SMT har man ju fördelen att alla ALU-enheter kan användas av en tråd i enkeltrådade program så det borde inte vara den aspekten man kallande för "reversed hyperthreading". Fick mer känslan att det är det som POWER8 och de SPARC T4/T5 har där man dynamiskt kan styra hur många trådar som ska vara aktiv per kärna, vettigt om man vill garantera att något specifikt enkeltrådat program får lägsta möjliga latens.

Enda fördelen med en 2+2 splitt är att man får mer konsekvent prestanda per tråd oavsett om två eller en tråd används per modul, problemet är att det är konsekvent låg prestanda p.g.a. av smal back-end då den är uppdelad. Ska man vara riktigt riktigt petig så är inte bredden 2 på Bulldozer, det finns 4 "heltals-pipelines" per CPU-tråd men 2 av dessa är extremt begränsade i vad de kan göra (kan i princip bara utföra "lea" load-effective-address) så i praktiken tar nära nog alla x86-instruktioner resurser från någon de två kapabla pipelines (som hanterar interna instruktioner, en x86 instruktion kan bli flera interna instruktioner). Att IPC även på Steamroller ligger i nivå med Jaguar, som verkligen är 2 bred, visar att den design man valde beter sig i alla fall som 2-wide.

Skrivet av Petterk:

På x86 känns det nog ändå mer rätt med en "x86 front-end" per kärna. På andra arkitekturer kör man ofta i princip en front-end för hela multi-core kiseln. Front-end/avkodning var ju skadad i hela Bulldozer. Så pass att även Excavators dedikerade avkodare per tråd och dubbla FPUer inte gör någon större skillnad. Nytt behövdes nog för att gå vidare. Inte säker på att det är helt smart att satsa på custom ARM om de bara ska försöka få en del av mikroservermarknaden däremot för t.ex. nätverk och inbyggnad finns det lämpligare leverantörer. Konsumentmarknaden kan jag inte direkt se de på. Det tog ju Nvidia 5 år på marknaden för att hamna där de är i dag.

Backar man ett gäng år så var en x86 front-end betydligt mer komplicerad jämfört med en relativt "ren" RISC som t.ex. PowerPC. Idag så finns det så mycket annat i front-end som tar transistorer, t.ex. branch-predictor, loop-detectors, olika former av mikrokod-cacher för att snabba upp loopar, register renaming etc. Så frågan är hur mycket transistorantalet skiljer sig i en high-end CPU mellan olika instruktionsuppsättningar.

Flaskhalsen i Haswell verkar vara just front-end i det lägen båda trådarna används då effektiviteten av HT i princip var helt opåverkad av dubblad cache-bandbredd, ökning av bredd på back-end från 6 (fram till IVB) till 8 mikroinstruktioner. e6500 är 4 bred då den maximal kan påbörja (issue) 4 instruktioner per kärna, men back-end har 5 heltalsenheter, 2 minnesenheter och en flyttalsenhet (AltiVec kapabel), en mix som ändå verkar kunna hantera två separata front-ends som kan avkoda upp till 4 instruktioner var.

AMD kunde tidigare hämta och avkoda 4 x86 instruktioner per modul och det borde vara 4 x86 instruktioner per CPU-tråd sedan Steamroller. Rent teoretiskt kan man sedan påbörja 4 interna instruktioner per cykel per CPU-tråd, men i praktiken blir det alltså bara 2. Förstår inte hur man trodde att separata avkodning skulle hjälpa Steamroller då det är steget efter som är flaskhalsen.

Och är inte en uppenbar nackdel med att två trådar delar "fetch" den att programräknaren för de två trådarna kommer typiskt vara på olika ställen så det blir väldigt svårt att effektivt hämta in instruktioner från två trådar via en enskild "fetch" enhet? Av den anledningen känns en separat "fetch" per CPU-tråd väldigt vettigt, mer rimligt att dela avkodning då. "fetch" är ju också den del som använder "branch-predictor" resultatet, så känns också som en uppenbar sak man vill ha separat per tråd innan man börjar dela på andra saker.

SMT är vettigt då det tar väldigt lite transistorer i anspråk, multicore är vettigt då kapaciteten ökar i stort sätt linjärt med antal kärnor. Frågan hur den vettigaste kompromissen mellan dagens SMT och multicore ser ut, verkar i alla fall som Freescale hittat en betydligt bättre kompromiss än AMD här men båda verkar haft samma utgångspunkt i varför man anser att SMT inte är optimalt.

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Medlem

Såg dessa diagram över pipeline.

Själv är jag nog lite mer intresserad över IBMs senaste PPC/Power. Ett problem som PPC har är att vektorenheten ligger så långt efter numera. För sin marknad presterar 64-bit Power/PPC bra, den har viktiga bitar integrerat. Rent generellt blir ju en fyrkärnor Intel snabbare. Nu har ju också i princip AppliedMicro övergett PPC. Broadcom och Cavium (cnMIPS är custom, med några egna instruktioner) har ju i princip övergett MIPS64, vilket fall får ARM (AArch64) den bästa platsen just nu. Får se hur konkurrensen blir i framtiden. ARM går hårt fram på de traditionella anpassade med en del prestanda inbyggda processorerna, t.ex. automotive och basstationer. Intel köpte/köper ju LSIs Axxia för basstationer också. De övergav PPC för senaste generationen hos LSI, Intel köpte också Mindspeeds femto och small cell chip/lösningar tidigare – de kör på ARM. Intel är en ganska säker Cortex-A57/53-användare framöver. O andra sidan kul att se "custom" från många av de andra på ARMv8.

Permalänk
Medlem

Jag har alltid tyckt man gjort det lite lätt för sig när man pekat ut CMT som boven i dramat för AMD, vilket denna tråd visar på.

Permalänk
Medlem

Det är "BD" som är trasigt från början, dela resurser bör gå, vill dock inte att man delar FPU på chip för PCs, när man väl behöver kraften är det mycket som förloras. Andra tillämpningar är det mer lämpligt för. Men det är mycket mer av hela arkitekturen som är för svag, hela idén med "smal processor" och hög klockfrekvens är lönlöst.

Serverspåret på BD lades ner helt i hållet (nästan) i och med att de inte tyckte det var värt att fortsätta lägga resurser där. En nerreviderad variant av Piledriver kom till server, men inte kretsen som var tänkt. Ny sockel skrotades också. Steamroller och Excavator kommer inte som något annat än APU för FM2+ och som bärbar krets på Sockel FP3. Resurser har lagts på sånt som Zen, K12 (ARM), samt deras small cores (Jaguar/Puma för närvarande). Kan Zen ge bättre prestanda, lite revansch på servermarknaden osv var det nog värt att hoppa lägga resurser på att göra 3:e och 4:e generation Bulldozer för server och desktop (icke APU). Även om de är utan produkt i 4-5 år.

10-kärnorsvariant av Piledriver var tänkt att komma till server (MCM för 20 kärnor). Tillsammans med ny sockel och chipset. Planerna lade de ner när det blev klart att de inte skulle kunna göra så mycket med BD. Vi får se hur väl de lyckas, en bättre produkt är så gott som garanterat iaf. Än ett tag tills vi ser AMDs Zen däremot. Vi får se om de vågar visa några demos innan de kör produktionskisel och visar upp inför lansering.

Permalänk
Datavetare
Skrivet av Viceroy:

Jag har alltid tyckt man gjort det lite lätt för sig när man pekat ut CMT som boven i dramat för AMD, vilket denna tråd visar på.

Det man kan konstatera är att det är helt rimligt antagande att det finns en mer optimal kompromiss mellan att duplicera hela CPU-kärnan och vad de flesta SMT-implementationer gör (duplicera enbart register). Väldigt mycket pekar dock på att AMD valde väldigt fel delar att duplicera, Freescale har bevisligen gjort ett bättre val med tanke på hur bra perf/W man får men inte alls säkert att de har hittat den mest optimala lösningen.

Är inte alls osannolikt att det blir lite olika mix på vad som bör dupliceras beroende på om man vill få maximal perf/W/CPU-tråd, total perf/W, total perf, perf/CPU-tråd, etc. Så det är definitivt ett område som borde undersökas mer då vi har nått en vägg i hur hög IPC man kan nå och även hur hög frekvens man kan nå.

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Datavetare
Skrivet av Petterk:

Det är "BD" som är trasigt från början, dela resurser bör gå, vill dock inte att man delar FPU på chip för PCs, när man väl behöver kraften är det mycket som förloras. Andra tillämpningar är det mer lämpligt för. Men det är mycket mer av hela arkitekturen som är för svag, hela idén med "smal processor" och hög klockfrekvens är lönlöst.

Serverspåret på BD lades ner helt i hållet (nästan) i och med att de inte tyckte det var värt att fortsätta lägga resurser där. En nerreviderad variant av Piledriver kom till server, men inte kretsen som var tänkt. Ny sockel skrotades också. Steamroller och Excavator kommer inte som något annat än APU för FM2+ och som bärbar krets på Sockel FP3. Resurser har lagts på sånt som Zen, K12 (ARM), samt deras small cores (Jaguar/Puma för närvarande). Kan Zen ge bättre prestanda, lite revansch på servermarknaden osv var det nog värt att hoppa lägga resurser på att göra 3:e och 4:e generation Bulldozer för server och desktop (icke APU). Även om de är utan produkt i 4-5 år.

10-kärnorsvariant av Piledriver var tänkt att komma till server (MCM för 20 kärnor). Tillsammans med ny sockel och chipset. Planerna lade de ner när det blev klart att de inte skulle kunna göra så mycket med BD. Vi får se hur väl de lyckas, en bättre produkt är så gott som garanterat iaf. Än ett tag tills vi ser AMDs Zen däremot. Vi får se om de vågar visa några demos innan de kör produktionskisel och visar upp inför lansering.

På serversidan är den uppenbart vilken katastrof BD var då AMD inte lyckats skapa något BD-baserat som definitivt klår Opteron "Magny-Cours" (K10 kärnor).

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Medlem
Skrivet av virtual void:

På serversidan är den uppenbart vilken katastrof BD var då AMD inte lyckats skapa något BD-baserat som definitivt klår Opteron "Magny-Cours" (K10 kärnor).

De har också själva talat om en fyra års period utan något pga misslyckandet. De har börjat talat om server igen med både Zen och K12, så det känns som de skifta om resurserna redan 2011 eller tidigt 12 någon gång, och nytt/gammalt folk togs ju in till nya arkitekturerna under 2012.

Hur som helst är fortfarande lite annorlunda att designa x86, förväntar mig inte att CMT syns där igen eller att de skär ner på FPU.

Permalänk
Skrivet av virtual void:

Blev aldrig riktigt klok på vad AMD menade med "reversed hyperthreading", kör man SMT har man ju fördelen att alla ALU-enheter kan användas av en tråd i enkeltrådade program så det borde inte vara den aspekten man kallande för "reversed hyperthreading". Fick mer känslan att det är det som POWER8 och de SPARC T4/T5 har där man dynamiskt kan styra hur många trådar som ska vara aktiv per kärna, vettigt om man vill garantera att något specifikt enkeltrådat program får lägsta möjliga latens.

Enda fördelen med en 2+2 splitt är att man får mer konsekvent prestanda per tråd oavsett om två eller en tråd används per modul, problemet är att det är konsekvent låg prestanda p.g.a. av smal back-end då den är uppdelad. Ska man vara riktigt riktigt petig så är inte bredden 2 på Bulldozer, det finns 4 "heltals-pipelines" per CPU-tråd men 2 av dessa är extremt begränsade i vad de kan göra (kan i princip bara utföra "lea" load-effective-address) så i praktiken tar nära nog alla x86-instruktioner resurser från någon de två kapabla pipelines (som hanterar interna instruktioner, en x86 instruktion kan bli flera interna instruktioner). Att IPC även på Steamroller ligger i nivå med Jaguar, som verkligen är 2 bred, visar att den design man valde beter sig i alla fall som 2-wide.

Backar man ett gäng år så var en x86 front-end betydligt mer komplicerad jämfört med en relativt "ren" RISC som t.ex. PowerPC. Idag så finns det så mycket annat i front-end som tar transistorer, t.ex. branch-predictor, loop-detectors, olika former av mikrokod-cacher för att snabba upp loopar, register renaming etc. Så frågan är hur mycket transistorantalet skiljer sig i en high-end CPU mellan olika instruktionsuppsättningar.

Flaskhalsen i Haswell verkar vara just front-end i det lägen båda trådarna används då effektiviteten av HT i princip var helt opåverkad av dubblad cache-bandbredd, ökning av bredd på back-end från 6 (fram till IVB) till 8 mikroinstruktioner. e6500 är 4 bred då den maximal kan påbörja (issue) 4 instruktioner per kärna, men back-end har 5 heltalsenheter, 2 minnesenheter och en flyttalsenhet (AltiVec kapabel), en mix som ändå verkar kunna hantera två separata front-ends som kan avkoda upp till 4 instruktioner var.

AMD kunde tidigare hämta och avkoda 4 x86 instruktioner per modul och det borde vara 4 x86 instruktioner per CPU-tråd sedan Steamroller. Rent teoretiskt kan man sedan påbörja 4 interna instruktioner per cykel per CPU-tråd, men i praktiken blir det alltså bara 2. Förstår inte hur man trodde att separata avkodning skulle hjälpa Steamroller då det är steget efter som är flaskhalsen.

Och är inte en uppenbar nackdel med att två trådar delar "fetch" den att programräknaren för de två trådarna kommer typiskt vara på olika ställen så det blir väldigt svårt att effektivt hämta in instruktioner från två trådar via en enskild "fetch" enhet? Av den anledningen känns en separat "fetch" per CPU-tråd väldigt vettigt, mer rimligt att dela avkodning då. "fetch" är ju också den del som använder "branch-predictor" resultatet, så känns också som en uppenbar sak man vill ha separat per tråd innan man börjar dela på andra saker.

SMT är vettigt då det tar väldigt lite transistorer i anspråk, multicore är vettigt då kapaciteten ökar i stort sätt linjärt med antal kärnor. Frågan hur den vettigaste kompromissen mellan dagens SMT och multicore ser ut, verkar i alla fall som Freescale hittat en betydligt bättre kompromiss än AMD här men båda verkar haft samma utgångspunkt i varför man anser att SMT inte är optimalt.

Kommer VISC (http://www.softmachines.com/) påverka detta på något sätt?

Visa signatur

så mycket att vilja göra, så lite tid

Permalänk
Datavetare
Skrivet av sweloop64:

Kommer VISC (http://www.softmachines.com/) påverka detta på något sätt?

Som presentationen från 17 oktober 2014 säger: "Coming out of stealth mode at last week’s Linley Processor Conference". Väldigt få har nog hunnit bilda sig en uppfattning om detta än, hade själv aldrig hört talas om detta tidigare så STORT tack för länken!

Nästan alla individuella delar som VISC innehåller har gjorts tidigare, men själva mixen de försöker sig på är unik vilket gör det väldigt intressant att följa utvecklingen kring detta.

Det jag däremot helt saknar i presentationen är varför deras angreppssätt skulle ge bättre enkeltrådprestanda än vad t.ex. Intel Haswell, IBM POWER8 och till mindre del även Nvidia Denver och Apple Cyclone får. Problemet med att öka enkeltrådprestanda har helt enkelt att göra med att det bara finns en begränsad parallellism i varje enskild instruktionsström, det man kan göra är att titta längre och lägre fram men ju mer man gör det ju mer måste man gissa vad programmet kommer göra och när man gissar fel har man spenderat ström på något helt meningslöst. Haswell och POWER8 har upp till ca 200 instruktioner de undersöker.

Modellen att använda enkla distribuerade schemaläggare är definitivt inte ny, man vet att detta är strömsnålare än en central schemaläggare så i princip alla CPU-designer optimerade för låg strömförbrukning, t.ex. ARM Cortex A15, Qualcomm Krait & Intel Silvermont använder sig av detta. En central schemaläggare ger bättre total prestanda men kostar väldigt mycket mer transistorer, används av t.ex. Intel Haswell, AMD Steamroller & IBM POWER8.

Modellen att analysera koden och transformera den till en annan uppsättning instruktioner är inte heller ny, Transmeta var nog först med den tekniken men Nvidias Denver kommer också använda sig av detta. Tanken här är intressant, genom att översätta och till viss del ordna om instruktionerna så kan man göra en enklare out-of-order eller helt enkelt köra en in-order design (vilket Nvidia Denver gör). Out-of-order back-ends kostar väldigt mycket mer transistorer jämfört men in-order, men normalt sätt blir det helt meningslöst att göra en "bred" in-order design då man nästan aldrig kan utnyttja bredden då det kräver en ganska specifik ordning av instruktioner som ska till de tillgängliga ALU och minnesenheterna. Blir väldigt spännande att se hur bra/dåligt Nvidia Denver kommer hantera en 7-wide in-order design baserat på att man gör en analys av ARM-instruktioner och konverterar till de interna instruktioner som Denver förstår (är 7 sådana som kan köras).

Det Soft Machines kallar "kärna" tycker jag mer ser ut vad man skulle kalla en "pipeline" i en symmetrisk back-end. Grejen är att ingen gör symmetriska back-ends längre, sista var nog AMD K7, K8 och K10 som hade 3 pipelines som kunde göra allt. Intel har alltid kör med en asymmetrisk back-end sedan deras första superskalära design, Pentium.

Ser inte riktigt hur Soft Machine skulle kunna få en IPC som kliver förbi Haswell eller POWER8 med den förklaring de ger här. Visst kan man låta 4 eller till och med 8 kärnor jobba på samma tråd, men de säger ju själva att det är väldigt snabb "diminishing returns" på det. POWER8 är ju 10-bred i backend, Haswell är 8-bred men ändå har de inte speciellt mycket högre IPC än Core2 som var 5-bred i backend eller Nehalem->Ivy som var 6-bred.

Bredd är inte allt, Apple Cyclone är 6-dispatch, d.v.s. den kan verkligen påbörja 6 instruktioner per cykel men ingen vet hur bred back-end den har (utom Apple då). Som jämförelse är Haswell är 4-dispatch, d.v.s. den kan bara köra 4 x86 instruktioner per cykel, men back-end kan peak:a på 8 interna instruktioner på en cykel. Silvermont är bara 2-dispatch men tack vare att en sådan är så mycket enklare kan man klocka den mycket högre än Cyclone vid samma strömförbrukning och i slutändan är Cyclone och Silvermont väldigt jämna i enkeltråd-prestanda.

Det man kan tänka sig med Soft Machines är att varje kärna är enkel -> kan klockas högt + man kan slå ihop många för hög total bredd -> hög IPC. Rätt säker på att det gör att göra benchmarks som ger fantastisk prestanda, är väldigt mycket mer skeptiskt till att det presterar bra i "riktigt" applikationer. ARM Cortex A15 och till mindre del Apple Cyclone är väldigt bra exempel på designer som är helt fantastiska med laster som inte har komplicerade data-beroenden via pekare, d.v.s. brutala Geekbench-resultat, men som faller ganska platt i mer komplicerade applikationer.

Har tillgång och jobbat med ARM Cortex A7, A15 och Silvermont. A15 är snabbast på av alla dessa på triviala saker, men den är totalt chanslös i lite mer komplicerade applikationer mot Silvermont, ibland får den en IPC helt i nivå med A7 som är en mycket enklare och strömsnålare design. Får väldigt mycket känslan att VISC kan bli som Cortex A15, fantastisk på pappret men en besvikelse i verkligheten. Ser gärna att jag får fel på den punkten dock!

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Datavetare
Skrivet av sweloop64:

Kommer VISC (http://www.softmachines.com/) påverka detta på något sätt?

Ruggigt bra rapport från The Linley Group som Soft Machine länkar till.
http://www.softmachines.com/wp-content/uploads/2014/10/MPR-11303.pdf

Man tar upp exakt flera av de saker jag själv skulle sätta fingret på, t.ex.

"Although these results are impressive, they require some caveats to put them into perspective. A shorter CPU pipeline reduces branch penalties and other pipeline haz- ards, thereby improving IPC compared with a longer pipe- line. In addition, a low CPU speed reduces the effective latency of caches and main memory (measured in CPU cycles), again improving IPC relative to a CPU with a faster clock."

Skulle vilja lägga till här att man jämför en IPC på 2.1 för ARMv7 instruktioner mot en IPC på 1.4 för x86 instruktioner, det går inte att jämföra direkt IPC mellan olika ISA man måste där jämföra antal cykler för att utföra en specifik uppgift. T.ex. så är en read-operation-write, t.ex. addera ett till en minnesposition 3 instruktioner på ARMv7 men det är 1 x86 instruktion. Däremot är tar det lika många ARM och x86 instruktioner att utföra mattematiska beräkningar om argumenten redan finns i register. Rent generellt gör en CISC mer arbete, framförallt om arbetet kräver minnesaccess, per cykel än vad en RISC gör.

"Soft Machines has run many tests and simulations of its VISC technology. It estimates the second core improves performance by an average of 50–60% across a variety of benchmarks. This factor implies that the test chip would achieve about 1.3 IPC when using a single core—consider- ably higher than Cortex-A15. This higher IPC includes the effects of the lower clock speed and shorter pipeline"

Att man har en kort pipeline driver upp IPC rejält, men det betyder också att man inte kan klocka speciellt högt. Trots denna korta pipeline så får man 50-60% effektivitet, vilket via Ahmdal's lag ger precis det som Soft Machines simuleringar visar, effekten av att lägga till fler kärnor faller snabbt och enligt Ahmdal's lag så skulle man inte få mer än 3x även om antal kärnor var oändligt. Förlänger man pipeline, vilket är ett krav för högre klockfrekvens, 1GHz lär man inte nå med 10 steg, så kommer effekten av kärna två bli ännu mindre. Så här ligger nog akilleshälen i denna design, den kan bli grym i designer som ska maximera perf/W genom t.e.x 4 kärnor med väldigt kort pipeline och låg frekvens men det kommer inte bli något som matchar Haswell/POWER8 i absolut perf/CPU-tråd.

Det jag verkligen gillar med VISC är möjligheten till M-till-N mappning av front-end och back-end, d.v.s. M CPU-trådar kan i stort sätt steglöst läggas ut över N fysiska kärnor. Den delen av designen tror jag på, problemet ligger nog i effektiv kommunikation där man slår ihop resultaten från den olika fysiska kärnor till CPU-trådar igen, känns allt annat än trivialt och frågan om komplexiteten där växer linjärt eller (mer troligt) exponentiellt med antal CPU-trådar man hanterar.

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk

Jag är inte helt insatt i hw på den här nivån, så räkna med tankevurpor.

Går det att göra VISC optimerad för ett tiotal program eller blir det tom med den omfattningen redan för komplicerat?
Eller löser man det med en specialversion av någon kompilator?
För man ser i benchmark-testen att så fort VISC inte är optimerat på något av del-testen så faller den ner till ca 50% prestandaökning mot A15(vilket iofs i sig inte är fy skam).

Med ett fåtal program som den levererar mkt bra i så finns det iaf en marknad. Fast för desktops är det nog inte så aktuellt.

Är det en logisk sammanfattning?
Om det är det, hur vågar man satsa så smalt, eller är det så att det finns stora viktiga applikationer som är i stort sett enkeltrådade?
Lite spontant så känns det som att VISC hade gjort ett bra mycket större avtryck om den kommit för 10år sedan, fast kan ha fel.

Får se hur det utvecklar sig vartefter mer dokumentation släpps.

Visa signatur

så mycket att vilja göra, så lite tid

Permalänk
Datavetare
Skrivet av Petterk:

Såg dessa diagram över pipeline.

http://i.imgur.com/38O9sdm.png

http://i.imgur.com/SQYxX9V.jpg

http://i.imgur.com/GOGE6HQ.png

Själv är jag nog lite mer intresserad över IBMs senaste PPC/Power. Ett problem som PPC har är att vektorenheten ligger så långt efter numera. För sin marknad presterar 64-bit Power/PPC bra, den har viktiga bitar integrerat. Rent generellt blir ju en fyrkärnor Intel snabbare. Nu har ju också i princip AppliedMicro övergett PPC. Broadcom och Cavium (cnMIPS är custom, med några egna instruktioner) har ju i princip övergett MIPS64, vilket fall får ARM (AArch64) den bästa platsen just nu. Får se hur konkurrensen blir i framtiden. ARM går hårt fram på de traditionella anpassade med en del prestanda inbyggda processorerna, t.ex. automotive och basstationer. Intel köpte/köper ju LSIs Axxia för basstationer också. De övergav PPC för senaste generationen hos LSI, Intel köpte också Mindspeeds femto och small cell chip/lösningar tidigare – de kör på ARM. Intel är en ganska säker Cortex-A57/53-användare framöver. O andra sidan kul att se "custom" från många av de andra på ARMv8.

Insåg att jag slarvade med namngivning ovan så det blev inte rätt, skrev "issue" där det borde stått "dispatch".

fetch/decode-width: antal instruktioner (eller bytes för x86 då instruktioner har variabel längd) man kan läsa in per cykel
dispatch-width: antal instruktioner som front-end kan köa till back-end
issue-width: antal instruktioner som kan påbörjas av back-end per cykel
retire-width: antal instruktioner som kan färdigställas per cykel, sällan man hittar denna information

En nackdel man verkar få på e6500 med separata front-end är relativt låg decode-width, så det borde bli en flaskhals när bara en tråd används. Å andra sidan är en IPC på närmare 2.0 fantastiskt bra även för "big-core" och med tanke på kapaciteten på back-end så kanske man kan komma ganska nära vad front-end fixar.

Man ser också på dessa bilder att storleken på out-of-order fönstret inte alls ligger på samma nivå som för Haswell och POWER8, så Freescale har naturligtvis valt lite tillrättalagda exempel när de visar hur effektiv deras design är. Men ett väldigt effektivt sätt att hålla back-end sysselsatt trots mindre OoO-fönster är ju olika former av SMT, så designen ser riktigt bra ut.

Man ser också att man valt distribuerade schemaläggare mot back-end, precis som i andra designer som optimerar för låg strömförbrukning. Inte fullt lika effektivt som en central schemaläggare som t.ex. Haswell och POWER8 använder dock.

AltiVec var bättre än SSE fram till SSE3 ungefär, men utvecklingen har nästan stått stilla på AltiVec medan den fortsatt i väldigt hög fart för SSE/AVX. Man ser att Freescale inte riktigt brytt sig speciellt mycket om flyttal då det bara finns 1 ALU för detta per två CPU-kärnor. Tror ändå detta hade varit en bättre design för spelkonsoler än Jaguar då den dels går att klocka högre med samma TDP och dels så verkar många spel vara begränsade i AI och liknande som är heltalsintensivt.

Vad det gäller IBM och PowerPC så har de (väll?) helt lämnat det spåret. De har en den kontrakt kvar till saker med stora volymer, fått för mig att de fortfarande har ett finger i spelet med i PS3, Xbox360 samt Wii-U. Man annars är det bara POWER som gäller framöver, även om POWER och PowerPC numera är binärkompatibla med varandra. POWER är high-end och har mer funktioner lämpliga för server medan PowerPC är inbyggda-system och har funktioner mer lämpliga där.

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Datavetare
Skrivet av sweloop64:

Jag är inte helt insatt i hw på den här nivån, så räkna med tankevurpor.

Går det att göra VISC optimerad för ett tiotal program eller blir det tom med den omfattningen redan för komplicerat?
Eller löser man det med en specialversion av någon kompilator?
För man ser i benchmark-testen att så fort VISC inte är optimerat på något av del-testen så faller den ner till ca 50% prestandaökning mot A15(vilket iofs i sig inte är fy skam).

Med ett fåtal program som den levererar mkt bra i så finns det iaf en marknad. Fast för desktops är det nog inte så aktuellt.

Är det en logisk sammanfattning?
Om det är det, hur vågar man satsa så smalt, eller är det så att det finns stora viktiga applikationer som är i stort sett enkeltrådade?
Lite spontant så känns det som att VISC hade gjort ett bra mycket större avtryck om den kommit för 10år sedan, fast kan ha fel.

Får se hur det utvecklar sig vartefter mer dokumentation släpps.

Den man säger är att VISC inte behöver stöd från kompilatorn, man tar en "vanlig" ARM binär och VISC översätter den on-the-fly till "sitt" språk internt. Nvidias Denver tar detta ännu ett steg lägre, även där består programmet av en "vanlig" ARM binär som översätts till ett eget format, men här kan det egna formatet även sparas utanför CPUn och på så sätt bli externt synligt. Finns det redan en översättning och den "vanliga" binären inte har ändras så kör man den direkt. Man måste därför köra ett program ett par gånger på Denver innan man når maximal prestanda.

Det jag refererade till att VISC kanske presterar illa på vissa typer av program är att det finns flera CPU-designer, t.ex. Cortex A15, som ser riktigt bra ut på pappret (den borde vara snabbare än Silvermont och Jaguar) och den prestandan ser man också i vissa program som är väldigt "snälla". Däremot är många riktigt program, framförallt server-programvara, rätt "elaka" i bemärkelsen att de använder stora mängder data och läser/skriver data på ett sätt som är väldigt svårt för CPUn att förutse. En CPU som hanterar detta dåligt kommer då bara "trampa vatten" och inte göra något vettigt oavsett teoretisk kapacitet, ser inte riktigt hur man angriper detta problem i VISC mer än väldigt låg frekvens och kort pipeline (som båda effektivt hjälper till men hindrar hög absolut perf/tråd).

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Medlem

IBM har inte helt lämnat PowerPC, deras nätverksprocessor A2 beskrivs som PowerPC. Dock är PowerPC och Power samma sak, samma ISA och samma funktioner numera. Även om det i detta fall inte handlar om något Power6/7/8 derivat. A2 är en nätverksprocessor främst, men används också i BlueGene/Q. Tidigare körde BlueGene (/P och /L) på kretsar byggda kring PPC 450 och 440. Detta efter att AppliedMicro tagit över de flesta PPC400-processorerna. IBM hjälpte även till att designa 470-serien efter detta, och licensierar ut äldre parallellt med AppliedMicro. Det är IBM som designat Cell, Xenon och Espresso i princip. Espresso (Wii U) verkar vara en variant av PPC 750CL. De tillverkar Espresso, även om GloFo tar över East Fishkill nu.

e6500 är ju inte heller PPC eftersom det inte finns någon uppdelning längre, samma ISA som POWER8. e5500 och e500-mc hade samma ISA som POWER7 och PowerPC A2. Senaste PPC-specifikationen var väl 2005 med PowerPC ISA 2.02 som egentligen var Power4/5 och senaste innan det var 2002 vad det gäller Book E och liknande, sedan Power ISA 2.03 finns det bara en specifikation.

Så i huvudsak är de väl utanför inbyggnads och licensieringsmarknaden nu, 440 och derivat kan du licensiera från AMCC oberoende av IBM. De/Deras fab har haft några designer tillgängliga som hard macro. Fast du kan fortfarande licensiera/köpa A2. Som är relativt ny då. Andra leverantörer har börjat använda POWER8 nu med nya programmet där det ska vara öppnare. Då köper de direkt från IBM. Annars är det ju Freescale för inbyggnad främst när andra börjar trilla bort (som LSI/Intel med flera). Det är ju dock ingen skillnad på ISA/funktion på det sättet utan ska följa samma specifikation som POWER-chippen från IBM.

När det gäller konsoler så behöver ju tillverkarna inte behöva underhålla GCC/MSVC för Power när de väljer x86. Nintendo måste ju göra detta, och stödja alla specialinstruktioner. Det kan jag tänka mig hjälper en del och innebär att de kan lägga resurser på annat. Annars är det nog ingen stor sak, och det är ju specifika OS/miljöer vilket som. För programmerarna kan jag tänka mig att det underlättar att inte behöva skriva assembler för specialanpassade-Power-chip, vet dock inte vad de använder för assembler/variant vet jag dock inte fast på X1 kan vi nog nästan gissa MASM.

Skruvar man upp frekvenserna så kan man för den delen lika gärna använda ARM på konsoler. ST-E och ST (och GloFo som process/tillverkningspartner I guess) höll på med högklockade FD-SOI-chip på ARM Cortex A9 innan de lade ner det spåret. De han dema kisel innan det avvecklades. ARMv8 kom dock lite sent för den här generationen. Det handlar mycket om process/anpassningar där också, A9 kunde köras kring 2.5-3GHz. Vi får se hur hårt de serverinriktade går på Cortex A57. Denver är ju också en arkitektur på process för högprestandachip.

Permalänk
Datavetare
Skrivet av Aleshi:

Tror att det låg något i ryktet om "reversed hyperthreading". Känns som att det var meningen från början att en tråd skulle kunna använda alla enheterna i en modul. Ser inte mycket mening med att den matar 2+2 istället för 4 när det ändå är samma decoder, prefetch och cache som ska mata det hela. Sedan kan ju inte jag processordesign något vidare. Men hur rimligt kan man bedöma att det är så? Att det var menat att modulen skulle kunna arbeta som en enda bredare kärna?

Ju mer jag tänker på det ju mer övertygad blir jag över att "reversed hyperthreading" kommer av att någon på AMD försade sig kring tekniken som Soft Machine jobbar på, AMD är ju med på listan över investerare. Tror vi att det bara är AMDs ARM-design "K12" som kör med teknik från detta eller hinner de även få in något i Zen? Ser inte riktigt poängen för Soft Machine att jobba med x86 om inte AMD eller Intel är intresserade då ingen annan riktigt har tillgång till den teknik som krävs för att göra en x86 CPU idag.

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Datavetare
Skrivet av Petterk:

IBM har inte helt lämnat PowerPC, deras nätverksprocessor A2 beskrivs som PowerPC. Dock är PowerPC och Power samma sak, samma ISA och samma funktioner numera. Även om det i detta fall inte handlar om något Power6/7/8 derivat. A2 är en nätverksprocessor främst, men används också i BlueGene/Q. Tidigare körde BlueGene (/P och /L) på kretsar byggda kring PPC 450 och 440. Detta efter att AppliedMicro tagit över de flesta PPC400-processorerna. IBM hjälpte även till att designa 470-serien efter detta, och licensierar ut äldre parallellt med AppliedMicro. Det är IBM som designat Cell, Xenon och Espresso i princip. Espresso (Wii U) verkar vara en variant av PPC 750CL. De tillverkar Espresso, även om GloFo tar över East Fishkill nu.

e6500 är ju inte heller PPC eftersom det inte finns någon uppdelning längre, samma ISA som POWER8. e5500 och e500-mc hade samma ISA som POWER7 och PowerPC A2. Senaste PPC-specifikationen var väl 2005 med PowerPC ISA 2.02 som egentligen var Power4/5 och senaste innan det var 2002 vad det gäller Book E och liknande, sedan Power ISA 2.03 finns det bara en specifikation.

Så i huvudsak är de väl utanför inbyggnads och licensieringsmarknaden nu, 440 och derivat kan du licensiera från AMCC oberoende av IBM. De/Deras fab har haft några designer tillgängliga som hard macro. Fast du kan fortfarande licensiera/köpa A2. Som är relativt ny då. Andra leverantörer har börjat använda POWER8 nu med nya programmet där det ska vara öppnare. Då köper de direkt från IBM. Annars är det ju Freescale för inbyggnad främst när andra börjar trilla bort (som LSI/Intel med flera). Det är ju dock ingen skillnad på ISA/funktion på det sättet utan ska följa samma specifikation som POWER-chippen från IBM.

När det gäller konsoler så behöver ju tillverkarna inte behöva underhålla GCC/MSVC för Power när de väljer x86. Nintendo måste ju göra detta, och stödja alla specialinstruktioner. Det kan jag tänka mig hjälper en del och innebär att de kan lägga resurser på annat. Annars är det nog ingen stor sak, och det är ju specifika OS/miljöer vilket som. För programmerarna kan jag tänka mig att det underlättar att inte behöva skriva assembler för specialanpassade-Power-chip, vet dock inte vad de använder för assembler/variant vet jag dock inte fast på X1 kan vi nog nästan gissa MASM.

Skruvar man upp frekvenserna så kan man för den delen lika gärna använda ARM på konsoler. ST-E och ST (och GloFo som process/tillverkningspartner I guess) höll på med högklockade FD-SOI-chip på ARM Cortex A9 innan de lade ner det spåret. De han dema kisel innan det avvecklades. ARMv8 kom dock lite sent för den här generationen. Det handlar mycket om process/anpassningar där också, A9 kunde köras kring 2.5-3GHz. Vi får se hur hårt de serverinriktade går på Cortex A57. Denver är ju också en arkitektur på process för högprestandachip.

Håller med dig om att man lika gärna kan använda Aarch64 i stället för PPC, men 32-bitars ARM är en smärre katastrof om målet är en multicore-design som ska klockas högt, där är PPC ett långt bättre val. Var ju inte heller någon som hade en ARM-design i tid för lansering av PS4/XBO, e6500 har ju funnits på marknaden sedan 2012.

Du har helt rätt att distinktionen POWER och PPC är inte relevant, så det jag menar är att IBM i stort sätt bara fokuserar på POWER för servers sedan några år tillbaka. Tidigare hade ju IBM rätt mycket för inbyggdasystem-marknaden, 400-serien t.ex.

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Medlem

400-serien var som sagt inte helt död, 470 (PPC476) kom till 2009 från IBM. Användes främst av LSI för en serie som Intel köpt upp.

A2 i BlueGene/Q och PowerEN-serien (nätverks-processor) kallas PowerPC A2 och är ett modernt spår som inte är för deras vanliga servrar.

Annars går de flesta över till ARM mer eller mindre, Freescale även så till står del även om de fortsätter med "PPC". För tredje part är det nog 400-serien som gäller än, om man inte skulle göra deal med IBM gällande A2 eller någon form av Power-serie derivat. Nintendos är ju mer eller mindre ett derivat från 750-serien, men det betyder ju att de blir fast på en 32-bit maskin från G3-eran även om den säkert har en del kraft. De som kört custom MIPS64 har ju gått på custom ARMv8/AArch64, så överhuvudtaget blir det nog mest ARM på inbyggnadsmarknaden. Rymd-marknaden bör få strålningshärdad e5500 från BAE dock.

Permalänk
Datavetare
Skrivet av Petterk:

400-serien var som sagt inte helt död, 470 (PPC476) kom till 2009 från IBM. Användes främst av LSI för en serie som Intel köpt upp.

A2 i BlueGene/Q och PowerEN-serien (nätverks-processor) kallas PowerPC A2 och är ett modernt spår som inte är för deras vanliga servrar.

Annars går de flesta över till ARM mer eller mindre, Freescale även så till står del även om de fortsätter med "PPC". För tredje part är det nog 400-serien som gäller än, om man inte skulle göra deal med IBM gällande A2 eller någon form av Power-serie derivat. Nintendos är ju mer eller mindre ett derivat från 750-serien, men det betyder ju att de blir fast på en 32-bit maskin från G3-eran även om den säkert har en del kraft. De som kört custom MIPS64 har ju gått på custom ARMv8/AArch64, så överhuvudtaget blir det nog mest ARM på inbyggnadsmarknaden. Rymd-marknaden bör få strålningshärdad e5500 från BAE dock.

LSI hann ju konvertera sin Axxia-serie till ARM (Cortex A15 för tillfället i AXM5500-serien) i sin Axxia serie innan uppköpet. Har kört en del på topp-modellen av AXM550 med 16st Cortex A15 och där är ett exempel på hur väldigt illa det blir med 32-bitars ARM i enheter med många CPU-kärnor och där man vill ha lite pulver under huven. CPU-mässigt blir den plattformen mosad av 8-kärnors Rangeley ("nätverksvarianten" av Avoton) om plattformarna har ungefär samma TDP. Ok, IBM var med kring designen av ACP3400, jag räknade den designen till LSI. Vet att Ericsson kör (eller man ska kanske säga körde) väldigt mycket med PowerPC från LSI. Får se hur snabbt Intel lyckas konvertera Axxia-serien till Atom, för det måste ju en av de saker som händer framöver.

Tycker 32-bitars ARM fungerar bra i dual-core designer, men har inte jobbat med någon ARM-baserad plattform som fungerar speciellt bra förbi dual-core. Allt kommer naturligtvis inte från ISA, men tittar man på hur ARM agerade kring kompilatorstöd för ISO-C2011/ISI-C++2011 där multicore-stöd för första gången kom in som del i standaren så känns det som även ARM insåg problemen med 32-bitars ARM och de pekar bara på att 64-bitars ARM inte har dessa problem (på pappret är 64-bitars ARM en extremt bra match för 2011 års C/C++ standarder kring multicore).

Men du har rätt att IBM finns kvar även inom inbyggda-system. Har jobbat i områden där PowerPC används rätt frekvent och tidigare såg man en hel del IBM-baserade lösningar, t.ex. 440, men på senare tid har det bara varit LSI och framförallt Freescale. Tycker det är lite konstigt att jag inte sett A2 då många projekt är nätverkscentrerade. Plus att jag är säker på att IBM har sagt att man på sikt vill ut ur embedded, men hittar inte någon sådan artikel via lite snabb googling.

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Medlem

Gör ett inlägg med en lite tydligare bild på pipeline/diagram över e6500 och några tidigare generationer.

Att LSI frångått PPC476FP peka jag på i mitt första inlägg, men där måste ju LSI/Avago eller Intel (vem det nu blir som fortsätter leveranser av tidigare produkter) förse nuvarande kunder med komponenter ett tag till. Ska den som utvecklar lösningar med Power fortsätta köra Power förväntar jag mig mer eller mindre att de då väljer/byter till Freescale. Särskilt inom basstationer. Förväntar mig snarare att Intel flyttar LSI Axxia och Mindspeed Transcede basstation, femto och small cell-lösningarna och serierna till ARM Cortex A57 och A53 för att ta de till en något mer presterande plattform och 64-bit. Med ordentligt multicorestöd och stöd för mer minne. Jag har inte uppfattat att det skulle vara relevant i närtid att bygga sådana integrerade lösningar på Atom i dagsläget. Dessutom räknar jag med att de aldrig kommer gå till Atom eller Quark på (Wireless/Ex-Infineon) modem-sidan.

e6500 blockdiagram

Något förenklat blockdiagram över e5500

e500mc (32-bit)

e500

Prestandamässigt bör väl e6500 ligga kring 3.3 DMIPS/MHz per tråd för att använda ett välkänt begrepp och prestandatest. Prestandaförbättringarna om vi bortser från AltiVec som tillkommer är små över e5500 (som bör ligga på 3.0 DMIPS/MHz per kärna). Utöver tillkomsten av AltiVec är det ju just de extra exekveringsenheterna och dubbla trådarna som ger mer prestanda. e500mc ligger väl i 2.5 DMIPS/MHz-klassen. AltiVec-stödet är i princip inte mycket utbyggt över 7400/G4/e600. Tyvärr. Känns som de behöver göra mer där för att inte bli omsprungna av ARMv8-designer. Det är dock starkt med tanke på arvet och att inte allt för mycket verkar ha hänt i arkitekturen. MIPS tycker jag utvecklingsmässigt när det gäller mikroarkitektur känns mer stagnerat, och det känns mer som det är integration och egna utökningar av ISA som gjort att det överlevt. PWRficient PA6T från PA Semi – det team som blev kärnan som byggde Apples processorer tillsammans med fd Intrinscitygänget (antar att de samlade en stor del av sin kompetens i Austin, en del i Kalifornien), hade varit extra intressant om det hade fått en fortsättning, då det var en riktigt stark krets för inbyggnad.

Även om Intel kommer fortsätta driva X-Gold/XMM-modemen med ARM (precis som jag inte skulle förvänta mig att de ersätter ARC-processorn i deras chipset som bland annat används för management/iAMT-funktionerna) så förväntar jag mig integrerade modem i Atomlösningar snarare än fler-chip lösningar. Det påverkar egentligen inte hur de utvecklar modemen. Sen har ju Intel visat att de vill vara del av wirelessbranschen på infrastruktursidan också. Där är det väl inte så sannolikt med nya PPC-designer, men Intels egna processorarkitektur är mer på off-the-self sidan där serverhårdvara kan användas. 476FP kan säkert göra lite till, men de tvingar väl hellre över alla basstationsutvecklare till ARM. Intel är dessutom investerad i både Linux och äger VxWorks, (som dessa plattformar använder) så tycker inte man ska se det som ett rent x86-företag bara för att de väljer bort Itanium, sålde sina applikationsprocessorer till Marvell o.s.v. VxWorks, WindRiver Linux med mera måste ändå stödja ARM, PPC, MIPS utöver x86. Det är ju dessutom dikterat av kunden på sådana marknader. Quark är ju mer en IoT-lösning än att ersätta inbyggda processorer i alla deras produkter. Längre fram kan det säkert komma intressanta lösningar på x86 för den typen av applikationer som basstationsmarknaden också. Ser bara inte i närtid eller att de skulle behöva ersätta ARM. Sen är de såklart upptagna med att bygga lösningar som konkurrerar på alla "wireless"-områden de investerat i, inte i migrationer.