Beräkningsminne

Computational RAM ( C-RAM ) är ett slumpmässigt minne med bearbetningselement integrerade på samma chip. Detta gör att C-RAM kan användas som en SIMD -dator. Det kan också användas för att mer effektivt använda minnesbandbredden i ett minneschip.

Översikt

De mest inflytelserika implementeringarna av beräkningsminne kom från The Berkeley IRAM Project . Vector IRAM (V-IRAM) kombinerar DRAM med en vektorprocessor integrerad på samma chip.

Reconfigurable Architecture DRAM (RADram) är DRAM med omkonfigurerbara beräknings- FPGA- logikelement integrerade på samma chip. SimpleScalar-simuleringar visar att RADram (i ett system med en konventionell processor) kan ge storleksordningar bättre prestanda på vissa problem än traditionellt DRAM (i ett system med samma processor).

Vissa pinsamt parallella beräkningsproblem är redan begränsade av von Neumann flaskhalsen mellan CPU och DRAM. Vissa forskare förväntar sig att, för samma totala kostnad, en maskin byggd av beräkningsminne kommer att köra storleksordningar snabbare än en traditionell allmändator på den här typen av problem.

Från och med 2011, "DRAM-processen" (få lager; optimerad för hög kapacitans) och "CPU-processen" (optimerad för hög frekvens; vanligtvis dubbelt så många BEOL -lager som DRAM; eftersom varje ytterligare lager minskar utbytet och ökar tillverkningskostnaderna, sådana chips är relativt dyra per kvadratmillimeter jämfört med DRAM) är tillräckligt tydlig för att det finns tre metoder för beräkningsminne:

  • börja med en CPU-optimerad process och en enhet som använder mycket inbäddat SRAM, lägg till ytterligare ett processsteg (gör det ännu dyrare per kvadratmillimeter) för att tillåta ersättning av det inbäddade SRAM med inbäddat DRAM (eDRAM), vilket ger ≈3x areabesparingar på SRAM-områdena (och så sänker nettokostnaden per chip).
  • börja med ett system med ett separat CPU-chip och DRAM-chip(s), lägg till små mängder "samprocessor"-beräkningsförmåga till DRAM, arbeta inom gränserna för DRAM-processen och lägga till endast små mängder yta till DRAM, för att göra saker som annars skulle bromsas av den smala flaskhalsen mellan CPU och DRAM: nollfyll utvalda minnesområden, kopiera stora datablock från en plats till en annan, hitta var (om någonstans) en given byte förekommer i något datablock , etc. Det resulterande systemet – det oförändrade CPU-chippet och "smarta DRAM"-chips – är minst lika snabbt som det ursprungliga systemet, och potentiellt något lägre i kostnad. Kostnaden för den lilla mängden extra yta förväntas bli mer än betalad tillbaka i besparingar under dyr testtid, eftersom det nu finns tillräckligt med beräkningskapacitet på ett "smart DRAM" för att en wafer full av DRAM ska kunna utföra de flesta tester internt parallellt snarare än det traditionella tillvägagångssättet att helt testa ett DRAM-chip åt gången med en dyr extern automatisk testutrustning .
  • börja med en DRAM-optimerad process, justera processen för att göra den lite mer lik "CPU-processen", och bygg en (relativt lågfrekvent, men lågeffekts- och mycket hög bandbredd) CPU för allmänt ändamål inom gränserna för det bearbeta.

Vissa processorer som är designade för att bygga på en DRAM-processteknik (istället för en "CPU" eller "logisk" processteknik som är specifikt optimerad för processorer) inkluderar The Berkeley IRAM Project , TOMI Technology och AT&T DSP1 .

Eftersom en minnesbuss till off-chip-minne har många gånger så stor kapacitans som en on-chip-minnesbuss, kan ett system med separata DRAM- och CPU-chips ha flera gånger så mycket energiförbrukning som ett IRAM -system med samma datorprestanda .

Eftersom beräknings-DRAM förväntas bli varmare än traditionellt DRAM, och ökade chiptemperaturer resulterar i snabbare laddningsläckage från DRAM-lagringscellerna, förväntas beräknings-DRAM kräva mer frekvent DRAM- uppdatering .

Processor-i-/nära-minne

En processor-i-/nära-minne (PINM) hänvisar till en datorprocessor (CPU) som är tätt kopplad till minnet , vanligtvis på samma kiselchip .

Det främsta målet med att slå samman bearbetnings- och minneskomponenterna på detta sätt är att minska minneslatens och öka bandbredden . Alternativt att minska avståndet som data behöver flyttas minskar strömkraven för ett system. Mycket av komplexiteten (och därmed strömförbrukningen ) i nuvarande processorer härrör från strategier för att hantera att undvika minnesstopp.

Exempel

tillverkades en liten CPU som körde FORTH till ett DRAM- chip för att förbättra PUSH och POP. FORTH är ett stackorienterat programmeringsspråk och detta förbättrade dess effektivitet.

Transputern hade också ett stort minne på chip, eftersom den tillverkades i början av 1980-talet, vilket gör den i huvudsak till en processor i minnet .

Anmärkningsvärda PIM-projekt inkluderar Berkeley IRAM-projektet (IRAM) vid University of California, Berkeley -projektet och University of Notre Dame PIM-insats.

DRAM-baserad PIM-taxonomie

DRAM-baserade nära-minne- och in-memory-designer kan kategoriseras i fyra grupper:

  • Tillvägagångssätt på DIMM-nivå placerar processorenheterna nära minneskretsar. Dessa tillvägagångssätt kräver minimal/ingen förändring i datalayouten (t.ex. Chameleon och RecNMP ).
  • Logic-layer-level närmar sig inbäddade bearbetningsenheter i det logiska lagret av 3D-stackminnen och kan dra nytta av den höga bandbredden hos 3D-stackminnen (t.ex. TOP_PIM )
  • Tillvägagångssätt på banknivå placerar bearbetningsenheter inuti minnesskikten, nära varje bank. UPMEM och Samsungs PIM är exempel på dessa tillvägagångssätt
  • Subarray-nivå närmar sig processdata inuti varje subarray. Tillvägagångssätten på subarray-nivå ger den högsta åtkomstparallellen men utför ofta bara enkla operationer, såsom bitvisa operationer på en hel minnesrad (t.ex. DRISA ) eller sekventiell bearbetning av minnesraden med en ALU i en värld (t.ex. Fulcrum )

Se även

Bibliografi