Ondanks voortdurende verbeteringen en incrementele upgrades met elke nieuwe generatie, hebben processors lange tijd geen veranderende ontwikkelingen in de industrie meegemaakt. De overgang van vacuümbuizen naar transistors was enorm. De overgang van losse componenten naar geïntegreerde schakelingen was enorm. Vergelijkbare paradigmaverschuivingen op deze schaal deden zich daarna echter niet voor.

Ja, transistors zijn gekrompen, chips zijn sneller en de prestaties zijn honderd keer verbeterd, maar we beginnen een afnemend rendement te zien ...

Dit is de vierde en laatste aflevering in onze CPU-ontwerpserie, die u een overzicht geeft van het ontwerp en de fabricage van computerprocessors. Van boven naar beneden hebben we gekeken hoe computercode wordt gecompileerd in assembleertaal en hoe deze wordt vertaald in binaire instructies die de CPU kan interpreteren. We hebben bekeken hoe de processors zijn ontworpen en hoe ze werken. Vervolgens hebben we gekeken naar de verschillende structuren waaruit een CPU bestaat.

Als we wat dieper gingen, zagen we hoe deze structuren werden gebouwd en hoe miljarden transistors samenwerken in een processor. We hebben gekeken hoe de processors fysiek worden gemaakt van onbewerkt silicium. We hebben de basis van halfgeleiders geleerd en hoe een chip er van binnen uitziet. Hier is een directory van de serie als je een van deze hebt gemist:

We gaan verder met het vierde deel. Aangezien bedrijven hun onderzoek of details van hun beschikbare technologie niet delen, is het moeilijk om precies te begrijpen wat er in de CPU op uw computer gebeurt. Maar wat we kunnen doen, is kijken naar het huidige onderzoek en waar de industrie naartoe gaat.




Een van de beroemde vertegenwoordigers van de verwerkende industrie is de wet van Moore. Dit verklaart hoe het aantal transistors in een chip ongeveer elke 18 maanden verdubbelt. Dit is al lang zo, maar het begint te vertragen. Transistors worden zo klein dat we de limiet naderen die de natuurkunde toelaat. Zonder een doorbraak in nieuwe technologie zullen we verschillende manieren moeten onderzoeken om toekomstige prestatieverhogingen te realiseren.




120 jaar wet van Moore




Een direct gevolg van deze crash is dat bedrijven het aantal cores gaan verhogen in plaats van de frequentie om de prestaties te verbeteren. Dit is de reden waarom we zien dat octa-core processors mainstream worden in plaats van 10 GHz dual-core chips. Naast het toevoegen van meer zaden, is er niet veel ruimte over om te groeien.




Op een heel andere toon, Quantum computing Het is een gebied dat veel ruimte belooft voor toekomstige groei. Ik ben hier geen expert op, en aangezien technologie nog steeds in ontwikkeling is, zijn er sowieso niet veel echte "experts". Quantum computing, rendering of iets dergelijks om een ​​mythe te verdrijven, is niet iets dat in het echte leven 1000 fps oplevert. Voorlopig is het belangrijkste voordeel van kwantumcomputers dat ze meer geavanceerde algoritmen mogelijk maken die voorheen niet mogelijk waren.




Een van IBM's Quantum Computer-prototypes

In een conventionele computer is een transistor die 0 of 1 vertegenwoordigt, ofwel open ofwel gesloten. superpositie is mogelijk, wat betekent dat de bit tegelijkertijd 0 en 1 kan zijn. Met deze nieuwe vaardigheid zullen computerwetenschappers in staat zijn om nieuwe rekenmethoden te ontwikkelen en problemen op te lossen waarvoor we momenteel geen rekenkracht hebben. Kwantumcomputers zijn niet zo verschillend als sneller, maar eerder een nieuw rekenmodel waarmee we verschillende soorten problemen kunnen oplossen.

De technologie hiervoor is nog een decennium of twee verwijderd van de mainstream, dus wat zijn enkele van de trends die we nu in echte processors beginnen te zien? Er zijn tientallen gebieden waarop actief onderzoek wordt gedaan, maar ik zal enkele gebieden noemen die naar mijn mening het meest effectief zijn.




De stijgende trend die we beïnvloeden heterogeen computergebruik. Dit is een manier om meerdere verschillende computerelementen in één systeem op te nemen. De meesten van ons gebruiken het in onze systemen als een speciale GPU. De CPU is zeer aanpasbaar en kan een breed scala aan berekeningen met een redelijke snelheid uitvoeren. Aan de andere kant is een GPU specifiek ontworpen om grafische berekeningen uit te voeren, zoals matrixvermenigvuldiging. Dit is echt goed en ordes van grootte groter dan een CPU in dergelijke instructies. We kunnen de werklast versnellen door enkele grafische berekeningen van de CPU naar de GPU te laden. Het is voor elke programmeur gemakkelijk om software te optimaliseren door een algoritme te wijzigen, maar het optimaliseren van hardware is veel moeilijker.

GPU's zijn echter niet het enige gebied waar accelerators veel voorkomen. De meeste smartphones hebben tientallen hardwareversnellers die zijn ontworpen om zeer specifieke taken te versnellen. Deze computerstijl, Zee van Accelerator en voorbeelden zijn onder meer cryptografieprocessors, beeldprocessors, versnellers voor machine learning, video-encoders / decoders, biometrische processors en meer.

Naarmate workloads meer en meer gespecialiseerd worden, voegen hardware-ontwerpers steeds meer accelerators toe aan hun chips. Cloudproviders zoals AWS zijn begonnen met het leveren van FPGA-kaarten voor ontwikkelaars om hun workloads in de cloud te versnellen. Terwijl traditionele computeritems zoals processors en GPU's een vaste interne architectuur hebben, is FPGA flexibel. Het is bijna als programmeerbare hardware die kan worden geconfigureerd volgens uw computerbehoeften.

Als u beeldherkenning wilt doen, kunt u deze algoritmen op de hardware toepassen. Als u wilt simuleren hoe een nieuw hardware-ontwerp zal presteren, kunt u het testen op de FPGA voordat u het daadwerkelijk gaat bouwen. Een FPGA biedt meer prestaties en energie-efficiëntie dan GPU's, maar nog steeds minder dan een ASIC (Application Specific Integrated Circuit). Andere bedrijven zoals Google en Nvidia ontwikkelen aangepaste ASIC's voor machine learning om beeldherkenning en -analyse te versnellen.

Die shots tonen de structuur van verschillende gangbare mobiele processors

Als we naar de die-shot van enkele redelijk nieuwe processors kijken, kunnen we zien dat de meeste CPU-ruimte niet echt de kern zelf is. Een toenemend aantal wordt opgevangen door alle soorten versnellers. Dit, naast het enorme energiebesparingsvoordeel, hielp zeer specifieke workloads te versnellen.

Historisch gezien zou je, als je videoverwerking aan een systeem wilde toevoegen, gewoon een chip toevoegen om dat te doen. Toch is dit nogal inefficiënt. Wanneer een signaal van de ene chip op een fysieke draad naar een andere chip moet gaan, is er per bit een grote hoeveelheid energie nodig. Op zichzelf lijkt een klein deel van een Joule misschien niet veel, maar het kan 3-4 magnitude efficiënter zijn om te communiceren in plaats van de chip in dezelfde chip te laten. We hebben de groei gezien van chips met ultralaag vermogen dankzij de integratie van deze versnellers in CPU's.

Versnellers zijn niet perfect. Naarmate we meer aan onze ontwerpen toevoegen, worden de chips minder flexibel en beginnen ze de algehele prestaties op te offeren voor de hoogste prestaties bij bepaalde workloads. Op een gegeven moment wordt de hele chip slechts een verzameling versnellers en is het niet langer een nuttige CPU. De balans tussen specifieke prestaties en algehele prestaties wordt altijd nauwkeurig afgesteld. Deze verbroken verbinding tussen gegeneraliseerde hardware en specifieke workloads, gebrek aan expertise.

Hoewel sommigen misschien denken dat we aan de top van een GPU / Machine Learning-bubbel staan, kunnen we waarschijnlijk verwachten dat meer van onze berekeningen op aangepaste accelerators worden geladen. Terwijl de cloud en AI blijven groeien, lijken GPU's onze beste oplossing om de enorme hoeveelheid computergebruik tot nu toe te realiseren.

Een ander gebied waar ontwerpers naar meer prestaties zoeken, is het geheugen. Traditioneel is het lezen en schrijven van waarden een van de grootste bottlenecks voor processors. Snelle, grote caches kunnen helpen, maar het uitlezen van RAM of uw SSD kan tienduizenden klokcycli duren. Daarom beschouwen ingenieurs geheugentoegang vaak als duurder dan het daadwerkelijke computergebruik zelf. Als uw processor twee getallen wil optellen, moet hij eerst de geheugenadressen berekenen waar de getallen zijn opgeslagen, uitzoeken welke geheugenhiërarchie gegevens bevat, de gegevens in de records lezen, de berekening uitvoeren, het adres berekenen. Voer het doel in en schrijf de waarde waar nodig. Voor eenvoudige instructies die misschien maar een of twee cycli in beslag nemen, is dit buitengewoon inefficiënt.

Een nieuw idee waar veel onderzoek naar is gedaan, Berekening van nabijheidsgeheugen. In plaats van kleine stukjes data uit het geheugen te halen om naar de snelle processor te brengen voor berekeningen, draaien de onderzoekers dit idee om. Ze proberen kleine processors rechtstreeks in de geheugencontrollers in uw RAM of SSD in te bouwen. Door de berekening dichter bij het geheugen te brengen, is er een enorm energie- en tijdbesparingspotentieel, aangezien de gegevens niet zo vaak hoeven te worden overgedragen. Rekeneenheden hebben rechtstreeks toegang tot de gegevens die ze nodig hebben omdat ze zich in het geheugen bevinden. Dit idee staat nog in de kinderschoenen, maar de resultaten zijn veelbelovend.

Een van de obstakels die moeten worden overwonnen met near-memory computing, zijn de beperkingen van het productieproces. Gedekt In hoofdstuk 3Het fabricageproces van siliconen is zeer complex met tientallen stappen. Deze processen zijn typisch gespecialiseerd om snelle logische elementen of compacte opslagelementen te produceren. Als je zou proberen een geheugenchip te maken met behulp van een computationeel geoptimaliseerd fabricageproces, zou je een zeer lage dichtheid op de chip hebben. Als u een processor probeert te bouwen met behulp van het opslaggeneratieproces, zult u zeer slechte prestaties en timing hebben.

3D-integratievoorbeeld met verticale verbindingen tussen transistorlagen.

Bekend als mogelijke oplossing voor dit probleem 3D-integratie. Traditionele processors hebben een hele grote laag transistors, maar dit heeft zijn beperkingen. Zoals de naam al doet vermoeden, is 3D-integratie het proces waarbij meerdere lagen transistors op elkaar worden gestapeld om de dichtheid te vergroten en de latentie te verminderen. Verticale kolommen die op verschillende fabricageprocessen zijn gebouwd, kunnen vervolgens worden gebruikt om de lagen met elkaar te verbinden. Dit idee werd lang geleden voorgesteld, maar de industrie heeft zijn interesse verloren vanwege enorme problemen bij de uitvoering. Onlangs hebben we 3D NAND-opslagtechnologie gezien en deze komt tot leven als een werkruimte.

Naast fysieke en architectonische veranderingen, is een trend die de hele halfgeleiderindustrie raakt, meer aandacht voor veiligheid. Tot voor kort werd de beveiliging in onze processors wat later overwogen. Dit is vergelijkbaar met hoe internet, e-mail en vele andere systemen die we vertrouwen, zijn ontworpen zonder rekening te houden met beveiliging. Elke beveiliging die momenteel beschikbaar is, is geopend om ons een veiliger gevoel te geven. Met processors is dit terug, vooral om bedrijven als Intel te bijten.

Spectre en Meltdown-bugs zijn misschien wel het bekendste voorbeeld van ontwerpers die functies toevoegen die een processor enorm versnellen, hoewel ze de beveiligingsrisico's niet volledig begrijpen. Het huidige processorontwerp legt veel meer nadruk op veiligheid als een belangrijk onderdeel van het ontwerp. Met verhoogde beveiliging komt vaak een prestatiehit, maar gezien de schade die deze grote beveiligingsbugs kunnen hebben, is het veilig om te zeggen dat we ons beter kunnen concentreren op zowel beveiliging als prestaties.

Eerder in deze serie hebben we technieken besproken zoals High Level Synthesis, die geavanceerde algoritmen heeft waarmee ontwerpers hun ontwerpen eerst kunnen specificeren in een programmeertaal op hoog niveau en vervolgens de optimale hardwareconfiguratie kunnen bepalen om deze functie uit te voeren. Omdat ontwerpcycli met elke generatie steeds duurder worden, zoeken ingenieurs naar manieren om hun ontwikkeling te versnellen. Verwacht dat deze trend in software-aangedreven hardware-ontwerp zal blijven groeien in hun mogelijkheden op de weg.

Hoewel het onmogelijk is om de toekomst te voorspellen, zouden de innovatieve ideeën en onderzoeksgebieden die we hier hebben genoemd moeten dienen als een routekaart die we kunnen verwachten in toekomstige processorontwerpen. Wat we zeker kunnen zeggen, is dat we het einde naderen van de reguliere verbeteringen in het productieproces. Om de prestaties van elke generatie te blijven verbeteren, zullen ontwerpers nog geavanceerdere oplossingen moeten vinden.

We hopen dat deze vierdelige serie uw interesse in processorontwerp, fabricage, validatie en meer heeft gewekt. Er is oneindig materiaal, en elk van deze artikelen zou een high-end universiteitscursus kunnen vullen als we proberen ze allemaal te behandelen. Hopelijk heb je iets nieuws geleerd en begrijp je beter hoe complex computers op alle niveaus zijn. Als je suggesties hebt voor onderwerpen waar je graag diep op ingaat, staan ​​we altijd open voor suggesties.

Masthead-tegoed: Computerprocessor Dan74 met abstracte verlichting