Eftersom inget Spring Intel Developer Forum äger rum i USA i år, vänder vi oss till International Solid-State Circuits Conference (ISSCC) för en uppdatering om Intels pågående FoU-projekt. Normalt skulle vi höra om den här typen av forskningsprojekt på den sista dagen av IDF, dessa dagar presenterad av Justin Rattner, men i år är saker och ting lite annorlunda. Huvudämnet i dag är ett av Intels datorprojekt i Tera-skala, men innan vi kommer till chippet i synnerhet bör vi se över pusselbitarna som ledde oss hit till att börja med.
Sammanfattning av Tera-problem
På Intels utvecklarforum våren 2005 beskrev Justin Rattner ett mycket allvarligt problem för framtidens flerkärniga chips: minnesbandbredd. Vi ser redan dessa problem idag, eftersom x86 singel-, dubbel- och fyrkärniga processorer för närvarande alla har samma mängd minnesbandbredd. Problemet blir ännu allvarligare när du har 8, 16, 32 och fler kärnor på ett enda chip.
Den uppenbara lösningen på detta problem är att använda bredare frontside- och minnesbussar som körs på högre frekvenser, men den lösningen är bara tillfällig. Intels bild ovan visar att en 6-kanals minneskontroller skulle kräva ungefär 1800 stift, och då hamnar du i allvarliga routing- och paketeringsbegränsningar. Att bara bredda minnesbussen och förlita sig på snabbare minne för att hålla jämna steg med skalningen av kärnor på processorer är inte tillräckligt för framtidens mikroprocessorer.
Så vad gör du när en CPU:s tillgång till data blir långsammare och mer begränsad? Du introducerar en annan nivå i minneshierarkin såklart. Varje nivå i minneshierarkin (registerfil, L1/L2/L3-cache, huvudminne, hårddisk) är utformad för att maskera latensen för åtkomst av data på nivån omedelbart under den. Den tydliga lösningen för att hålla massivt flerkärniga system matade med data är då att helt enkelt lägga mer minne på tärningen, kanske en L4-cache kanske?
Problemet du stöter på här är att processorutrymmet är dyrt, och mängden minne vi skulle behöva för att hålla tiotals kärnor matade är mer än ett par megabyte cache kan ge. Istället för att göra CPU-matrisen bredare föreslog Intel att stapla flera tärningar ovanpå varandra. En CPU-matris, sammansatt av många kärnor, skulle helt enkelt vara ett lager i ett chip som har integrerat DRAM eller Flash eller båda. Eftersom arean per tärning inte ökar, ökar inte antalet defekter per tärning.
Minnesbandbredden förbättras enormt, eftersom din DRAM-matris kan ha en extremt bred buss för att ansluta direkt till dina CPU-kärnor. Latency är också mycket förbättrad eftersom CPU:n inte behöver lämna paketet för att få data lagrad i något av minnesskikten.
Uppenbarligen kommer det fortfarande att finnas ett behov av huvudminne, eftersom Intel för närvarande uppskattar att ett enda lager skulle kunna rymma 256 MB minne. Med en handfull lager, och en ganska bred extern minnesbuss, går det nu in i möjligheterna att hålla en CPU med tiotals kärnor matade med data.
Ett och ett halvt år senare var Rattner tillbaka men den här gången tog han sig an en annan aspekt av teras era – bussbandbredd. Även om 3D-stackning hjälper till att hålla många kärnor på en enda stans matade med data, behöver CPU:n fortfarande kommunicera med omvärlden. FSB-teknik, särskilt från Intel, har varit relativt stillastående under de senaste åren. Om vi pratar om att bygga processorer med tiotals kärnor kommer de inte bara att behöva massor av minnesbandbredd utan de kommer också att behöva en mycket snabb anslutning till omvärlden.
Intels forskning om Silicon Photonics har producerat en funktionell hybridkisellaser som demonstrerades vid Intels utvecklarforum i slutet av förra året. Tanken är att optiska bussar kan erbjuda mycket bättre signaleringshastighet och energieffektivitet än deras elektriska motsvarigheter, vilket resulterar i den idealiska bussen för framtida massiva flerkärniga processorer.
Justin Rattners keynotes talade om några av Intels Tera-skala-projekt, med 3D-stackning som levererar terabyte av bandbredd som behövs för nästa decennium av processorer och kiselfotonik som möjliggör terabit I/O för att ansluta dessa processorer till resten av systemet. Den sista vektorn som Rattner talade om, levererade en teraflop av prestanda. CPU Rattner talade om var en anpassad design av Intel som innehöll 80 kärnor på en enda tärning, och idag avslöjade Intel mycket mer om sin Teraflop-processor, arkitekturen bakom den och var den passar in i framtiden för Intel-processorer.