Kódování mezipaměti hodnot - Value cache encoding - Wikipedia

Spotřeba energie je pro oba stále důležitější vložený, mobilní výpočetní technika a vysoce výkonné systémy.[1] Bez čipu datová sběrnice spotřebovává významnou část energie systému. Je pozorováno, že off-chip datová sběrnice spotřebovává mezi 9,8% a 23,2% z celkového výkonu spotřebovaného Systém v závislosti na systému. Takže snížení Napájení spotřeba datové sběrnice mimo čip by snížila celkovou spotřebu energie.

Úvod

[2] Off-chip autobusy jsou spojeny s vyššími kapacita Hodnoty kapacit vnitřního uzlu, a proto jsou techniky pro minimalizační přepínání na externí adresu a datové sběrnice, i když na úkor mírného zvýšení přepínání na interních kapacitách, docela užitečné. Spotřebu energie mimo čip lze snížit alespoň těmito dvěma technikami: snížením počtu autobusových linek aktivovaných během přenos dat a snížením počtu bitových přechodů na aktivních linkách sběrnice. Kombinace obou těchto technik přináší optimální výsledek.
Kódování mezipaměti hodnot je schéma, které se používá ke snížení spotřeby energie v datové sběrnici mimo čip. V tomto schématu se mezipaměť na obou stranách datové sběrnice používá ke snížení dynamického ztrátového výkonu na datových sběrnicích mimo čip. Tyto mezipaměti jsou udržovány tak, aby jejich obsah byl po celou dobu stejný.

Podrobnosti schématu

V tomto protokolu zaměstnáváme malou mezipaměti (nazývaná mezipaměť hodnot, nebo zkráceně VC) na každé straně datové sběrnice mimo čip. Tyto mezipaměti hodnot sledují hodnoty dat, které byly nedávno přeneseny po sběrnici. Položky v těchto mezipaměti jsou konstruovány takovým způsobem, že obsah obou hodnotových mezipamětí je stále stejný. Když je třeba přes sběrnici přenášet hodnotu dat, nejprve zkontrolujeme, zda se nachází v mezipaměti hodnot odesílatel (ať už je to paměť nebo mezipaměť). Pokud ano, přenášíme pouze index dat (tj. Jeho adresu mezipaměti hodnot nebo index) namísto skutečné hodnoty dat a druhá strana (příjemce) může určit hodnotu dat pomocí tohoto indexu a jeho hodnotové mezipaměti .
Pro přenos dat v mezipaměti hodnot pomocí pouze 1 bitové přepínací aktivity je velikost mezipaměti hodnot omezena na šířku datové sběrnice. To znamená, že s 32bitovou sběrnicí může mít VC pouze 32 záznamů. Vzhledem k tomu, že mezipaměti hodnot používané naším výkonovým protokolem jsou velmi malé, je šířka hodnoty indexu mnohem menší než šířka skutečné hodnoty dat. V důsledku toho je třeba pro přenos aktivovat méně linek sběrnice mimo čip
Náš přístup se pokouší dosáhnout první možnosti využitím lokalit datových hodnot komunikovaných přes off-chip datovou sběrnici. Jakmile se však zmenší šířka dat (která je třeba přenášet), můžeme také očekávat snížení (obecně) průměrné aktivity přepínání bitů na jeden přenos. Kromě toho lze tuto přepínací aktivitu dále snížit použitím dobře známých schémat kódování sběrnice ve spojení s naší strategií

Konzistence mezipaměti

Na straně přijímače platí stejné zásady umístění a nahrazení pro VC jako pro odesílatele. Hodnota dat odeslaných po sběrnici se tedy zkopíruje do přijímače VC na stejném indexovém místě jako ve vysílači VC. K označení, zda jsou data odesílaná po sběrnici doslovná data nebo index do VC, používáme jeden další kontrolní bit. Aktivita zápisu do paměti je zpracována podobným způsobem.

Příklad

Předpokládáme, že původně hodnoty 100 a 200 nejsou ve VC přítomny. Během transakce č. 1 je z paměti odeslána do mezipaměti. Požadovaná datová položka uložená na nějaké adrese (řekněme adresa X paměti) má hodnotu 100. Paměťový řadič prohledá VC na hodnotu 100 a detekuje zmeškání. Proto se hodnota 100 odesílá přes datovou sběrnici mimo čip. Podle našeho energetického protokolu je také hodnota 100 uložena na stejném místě (řekněme 5) VC zdroje i cíle. U transakce č. 2 se řadič paměti hledá hodnotu 200, nemůže najít hodnotu ve VC a opakuje kroky popsané výše. V tomto okamžiku obsahují mezipaměti hodnot na obou koncích datové hodnoty 100 a 200. V transakci č. 3 řadič paměti zjistí, že je třeba odeslat hodnotu 100, aby bylo možné vyhovět požadavku na čtení (stejného umístění paměti jako dříve, nebo jiné místo v paměti, které má stejnou hodnotu). Všimněte si však, že hodnota 100 je již přítomna ve VC odesílatele v umístění 5 v důsledku transakce č. 1. Proto namísto odeslání hodnoty 100 paměťový řadič pouze odešle hodnotu indexu 5. Přijímač na druhé straně načte hodnotu skutečných dat (v tomto případě 100) z místa 5 jeho VC. Nakonec v transakci č. 4 chceme odeslat datovou položku D s hodnotou 200 do paměti (tj. Požadavek na zápis). Ale hodnota 200 je již uložena do mezipaměti v obou VC v důsledku transakce č. 2 z paměti do mezipaměti. V důsledku toho se index ke kopii v mezipaměti (přítomný ve VC) hodnoty 200 používá k dokončení transakce č. 4, ale v opačném směru. Tato poslední transakce ukazuje, že data umístěná ve VC během transakce v jednom směru mohou být znovu použita (z VC) během transakce v opačném směru.

Zásady výměny

[3]LRU se používá jako politika nahrazení v obou mezipaměti. Implementuje se pomocí referenčního bitu a n-bitu časové razítko pro každou hodnotu uloženou v mezipaměti. Když se na vstupu objeví hodnota, nastaví se referenční bit. V pravidelných intervalech je referenční bit posunut přímo do pozice bitů vyššího řádu n-bitového časového razítka, což způsobí, že všechny bity v časovém razítku budou také posunuty doprava a bit nejnižšího řádu v časovém razítku bude vyřazen. Například časové razítko 000 znamená, že se tato hodnota neobjevila během posledních tří časových intervalů, časové razítko 100 znamená, že se právě zobrazilo v posledním intervalu, a časové razítko 000 se sadou referenčních bitů znamená, že se vyskytne v aktuálním časovém úseku.
Výše uvedená operace se provádí u všech záznamů obou mezipamětí se všemi referenčními bity resetovanými. Toto časové razítko tedy udržuje historii výskytů hodnot za posledních n časových období.
Je-li požadován záznam a má být vyřazena hodnota, je zvolen záznam s nejmenším časovým razítkem a jasným referenčním bitem. Nová hodnota je vložena s novým referenčním bitem a časovým razítkem (všech 0) v této vybrané položce.

Typ hodnotové mezipaměti

Po popisu protokolu nyní uvidíme dva přístupy k udržování mezipaměti:

  1. Obě mezipaměti lze inicializovat pomocí pevné sady hodnot v závislosti na frekvenci výskytu hodnot v předchozím spuštění.
  2. Při spuštění programu lze zachovat měnící se sadu častých hodnot. Obsah tabulek častých hodnot se tedy přizpůsobuje změnám častých hodnot pro různé části provádění.
    Výhodou vyplnění mezipaměti pevnou hodnotou je, že kodéry nemusí dynamicky měnit obsah tabulky, čímž snižují runtime režii. Vyžaduje však, aby byly hodnoty známy předem a jiný program potřebuje jiné hodnoty. Druhá metoda naproti tomu nepotřebuje apriorní informace o datových hodnotách a nerozlišuje mezi různými programy. S těmito funkcemi platíme cenu

identifikace častých hodnot za běhu.

Jiná aplikace

Protokol, o kterém jsme diskutovali, byl aplikován na sběrnici, jejíž jeden konec je mezipaměť na čipu a druhý konec byl mimo čip Paměť, je možné přizpůsobit naši strategii i pro práci s mezipamětí L2 mezipaměti. Kromě toho lze také použít napájecí protokol ke snížení aktivity přepínání mezi mezipamětí L1 na čipu a mezipamětí L2 na čipu (i když výsledky by nebyly tak dobré jako u sběrnice mimo čip). Ve skutečnosti lze naši strategii použít mezi libovolnými dvěma komunikovat zařízení v systému (s podporou VC). Dále nás neomezují konfigurace typu point-to-point. To znamená, že náš přístup může být proveden pro práci v prostředí, kde více zařízení komunikuje přes sdílenou (energeticky náročnou) datovou sběrnici.
Je zřejmé, že v tomto případě bychom mimo jiné potřebovali koherenční mechanismus (jehož diskuse je nad rámec tohoto článku). Nevýhodou naší strategie je prostor navíc, který potřebují dvě mezipaměti hodnot (jedna na čipu a druhá mimo čip). V tomto článku nepředkládáme podrobnou studii dopadů našeho přístupu na obvodový prostor. Jak bude uvedeno v části s experimentálními výsledky, i malý VC (128 záznamů) generuje přiměřeně dobré energetické chování; takže můžeme očekávat, že prostor nad hlavou bude způsoben naším optimalizace nebude nadměrné.

Viz také

Reference

  1. ^ Protokol napájení: Snížení ztrát energie na datových sběrnicích mimo čip http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=1176262
  2. ^ Dinesh C Suresh; Banit Agrawal; Jun Yang; Walid Najjar (28. června 2005). „Laditelný kodér sběrnice pro datové sběrnice mimo čip“ (PDF). Citováno 2015-04-22.
  3. ^ Jun Yang; Gupta, R. (2001). Msgstr "FV kódování pro nízkoenergetický datový I / O". ISLPED'01: Proceedings of the 2001 International Symposium on Low Power Electronics and Design (IEEE Cat. No.01TH8581). ieeexplore.ieee.org. str. 84–87. doi:10.1109 / LPE.2001.945379. ISBN  1-58113-371-5.