Dator med minne
Computing with Memory avser beräkningsplattformar där funktionssvar lagras i en minnesuppsättning, antingen en eller tvådimensionell, i form av uppslagstabeller (LUT) och funktioner utvärderas genom att hämta värdena från LUT:erna. Dessa beräkningsplattformar kan följa antingen en rent rumslig beräkningsmodell, som i fältprogrammerbar gate array (FPGA), eller en tidsberäkningsmodell, där en funktion utvärderas över flera klockcykler. Det senare tillvägagångssättet syftar till att minska omkostnaderna för programmerbar sammankoppling i FPGA genom att vika sammankopplingsresurser inuti ett datorelement. Den använder täta tvådimensionella minnesmatriser för att lagra stora LUT:er med flera ingångar med flera utgångar. Computing with Memory skiljer sig från Computing in Memory eller processor-in-memory (PIM)-koncept, som har undersökts brett i samband med att integrera en processor och minne på samma chip för att minska minneslatens och öka bandbredden. Dessa arkitekturer försöker minska avståndet som data färdas mellan processorn och minnet. Berkeley IRAM-projektet är ett anmärkningsvärt bidrag inom området PIM-arkitekturer.
Detaljer
Datorer med minnesplattformar används vanligtvis för att ge fördelarna med omkonfigurerbarhet av hårdvara. Omkonfigurerbara datorplattformar erbjuder fördelar i form av minskade designkostnader, tidig time-to-market, snabb prototypframställning och lätt anpassningsbara hårdvarusystem. FPGA presenterar en populär omkonfigurerbar datorplattform för implementering av digitala kretsar. De följer en ren rumslig beräkningsmodell. Sedan starten 1985 har den grundläggande strukturen för FPGA:erna fortsatt att bestå av tvådimensionell uppsättning av konfigurerbara logiska block (CLB) och en programmerbar sammankopplingsmatris. FPGA-prestanda och effektförlust domineras till stor del av den utarbetade arkitekturen för programmerbar sammankoppling (PI). Ett effektivt sätt att minska påverkan av PI-arkitekturen i FPGA är att placera små LUT:er i närheten (kallas kluster) och att tillåta kommunikation inom kluster med hjälp av lokala sammankopplingar. På grund av fördelarna med en klustrad FPGA-arkitektur har stora FPGA-leverantörer införlivat den i sina kommersiella produkter. Undersökningar har också gjorts för att minska overheaden på grund av PI i finkorniga FPGA:er genom att mappa större multi-input multi-output LUT till inbäddade minnesblock. Även om den följer en liknande rumslig beräkningsmodell, implementeras en del av logikfunktionerna med hjälp av inbäddade minnesblock medan den återstående delen realiseras med hjälp av mindre LUT. En sådan heterogen kartläggning kan förbättra området och prestandan genom att minska bidraget från programmerbara sammankopplingar.
I motsats till den rent rumsliga beräkningsmodellen av FPGA, har en omkonfigurerbar datorplattform som använder en tidsberäkningsmodell (eller en kombination av både temporal och rumslig) också undersökts i samband med att förbättra prestanda och energi jämfört med konventionell FPGA. Dessa plattformar, kallade Memory Based Computing (MBC), använder tät tvådimensionell minnesuppsättning för att lagra LUT:erna. Sådana ramverk bygger på att dela upp en komplex funktion ( f ) i små underfunktioner; representerar subfunktionerna som multi-input, multi-out LUTs i minnesuppsättningen; och utvärdering av funktionen f över flera cykler. MBC kan dra nytta av fördelarna med hög densitet, låg effekt och hög prestanda med nanoskala minne.
Varje beräkningselement innehåller en tvådimensionell minnesuppsättning för lagring av LUT, en liten styrenhet för sekvensevaluering av underfunktioner och en uppsättning temporära register för att hålla mellanutgångarna från individuella partitioner. Ett snabbt, lokalt routingramverk inuti varje datorblock genererar adressen för LUT-åtkomst. Flera sådana beräkningselement kan kopplas samman med hjälp av FPGA-liknande programmerbar sammankopplingsarkitektur för att möjliggöra kartläggning av stora funktioner. Den lokala tidsmultiplexade exekveringen inuti beräkningselementen kan drastiskt minska kravet på programmerbara sammankopplingar, vilket leder till stora förbättringar av energifördröjningsprodukter och bättre skalbarhet av prestanda över teknikgenerationer. Minnesarrayen inuti varje beräkningselement kan realiseras av innehållsadresserbart minne (CAM) för att drastiskt minska minneskravet för vissa applikationer.