Haswell Intela (a przynajmniej te, które zawierają procesor graficzny Iris Pro 5200) oraz POWER7 i POWER8 IBM, zawierają wbudowaną pamięć DRAM „eDRAM”.
Jedną ważną kwestią, która sprawiła, że eDRAM do niedawna nie był powszechny, jest to, że proces wytwarzania pamięci DRAM nie jest z natury kompatybilny z procesami logicznymi, dlatego należy uwzględnić dodatkowe kroki (które zwiększają koszty i zmniejszają wydajność), gdy pożądana jest eDRAM. Musi więc istnieć ważny powód, aby chcieć go włączyć, aby zrównoważyć tę niekorzystną sytuację ekonomiczną. Alternatywnie, pamięć DRAM można umieścić na osobnej matrycy, która jest produkowana niezależnie, ale następnie zintegrowana z tym samym pakietem co procesor. Zapewnia to większość korzyści płynących z lokalizacji bez trudności z produkcją obu w prawdziwie zintegrowany sposób.
Innym problemem jest to, że DRAM nie jest podobny do SRAM, ponieważ nie przechowuje swojej zawartości w nieskończoność podczas zasilania, a odczytanie go niszczy również przechowywane dane, które należy później zapisać. Dlatego należy go okresowo odświeżać i po każdym czytaniu. A ponieważ ogniwo DRAM jest oparte na kondensatorze, ładowanie lub rozładowywanie jest wystarczające, aby wyciek nie zniszczył jego wartości, zanim następne odświeżenie nie zajmie skończonej ilości czasu. Ten czas ładowania nie jest wymagany w przypadku SRAM, który jest tylko zatrzaskiem; w konsekwencji może być taktowany z taką samą szybkością jak procesor, podczas gdy pamięć DRAM jest ograniczona do około 1 GHz przy zachowaniu rozsądnego zużycia energii. Powoduje to, że DRAM ma większe nieodłączne opóźnienie niż SRAM, co sprawia, że nie warto używać go dla wszystkich oprócz największych pamięci podręcznych, w przypadku których zmniejszy się wskaźnik pominięć.
Ponadto, jeśli chodzi o opóźnienie, dużą część trudności stanowią fizyczne odległości, które muszą pokonać sygnały. Światło może przemieszczać się tylko 10 cm w okresie taktowania procesora 3 GHz. Oczywiście sygnały nie przemieszczają się w poprzek matrycy i nie rozprzestrzeniają się z prędkością zbliżoną do prędkości światła ze względu na potrzebę buforowania i rozkładania, co powoduje opóźnienia propagacji. Zatem maksymalna odległość, jaką pamięć może znajdować się od procesora w celu utrzymania 1 cyklu opóźnienia, wynosi najwyżej kilka centymetrów, ograniczając ilość pamięci, którą można pomieścić w dostępnym obszarze. Procesor Nehalem Intela faktycznie zmniejszył pojemność pamięci podręcznej L2 w porównaniu do Penryna, aby częściowo poprawić jego opóźnienie, co doprowadziło do wyższej wydajności. * Jeśli tak bardzo nie dbamy o opóźnienie, to nie ma powodu, aby umieszczać pamięć w pakiecie,
Należy również zauważyć, że wskaźnik trafień w pamięci podręcznej jest bardzo wysoki w przypadku większości obciążeń: znacznie powyżej 90% w prawie wszystkich praktycznych przypadkach i nierzadko nawet powyżej 99%. Tak więc korzyść z włączenia większych wspomnień do pamięci jest z natury ograniczona do zmniejszenia wpływu tych kilku procent braków. Procesory przeznaczone na rynek serwerów korporacyjnych (takie jak POWER) zwykle mają ogromne pamięci podręczne i mogą z korzyścią zawierać eDRAM, ponieważ przydatne jest dostosowanie do dużych zestawów roboczych wielu obciążeń korporacyjnych. Haswell ma go do obsługi GPU, ponieważ tekstury są duże i nie można ich umieścić w pamięci podręcznej. Są to obecnie przypadki użycia eDRAM, a nie typowe obciążenia komputerów stacjonarnych lub HPC, które są bardzo dobrze obsługiwane przez typowe hierarchie pamięci podręcznej.
Aby rozwiązać niektóre problemy poruszone w komentarzach:
Te pamięci podręczne eDRAM nie mogą być używane zamiast pamięci głównej, ponieważ zostały zaprojektowane jako pamięci podręczne ofiar L4. Oznacza to, że są one niestabilne i skutecznie adresowalne pod względem zawartości, dzięki czemu przechowywane w nich dane nie są traktowane jako rezydujące w żadnym konkretnym miejscu i mogą zostać odrzucone w dowolnym momencie. Te właściwości są trudne do pogodzenia z wymogiem, aby pamięć RAM była bezpośrednio odwzorowana i trwała, ale ich zmiana sprawiłaby, że pamięci podręczne byłyby bezużyteczne zgodnie z ich przeznaczeniem. Oczywiście możliwe jest osadzenie pamięci o bardziej konwencjonalnej konstrukcji, tak jak ma to miejsce w mikrokontrolerach, ale nie jest to uzasadnione w systemach z dużymi pamięciami, ponieważ małe opóźnienia nie są tak korzystne w pamięci głównej, jak w pamięci podręcznej, więc powiększanie lub dodanie pamięci podręcznej jest bardziej opłacalną propozycją.
Jeśli chodzi o możliwość bardzo dużych pamięci podręcznych o pojemności rzędu gigabajtów, pamięć podręczna musi być co najwyżej wielkości zestawu roboczego dla aplikacji. Aplikacje HPC mogą radzić sobie z zestawami danych terabajtowych, ale mają dobrą lokalizację czasową i przestrzenną, więc ich zestawy robocze zwykle nie są bardzo duże. Aplikacje z dużymi zestawami roboczymi to np. Bazy danych i oprogramowanie ERP, ale rynek procesorów zoptymalizowanych pod kątem tego rodzaju obciążenia jest ograniczony. O ile oprogramowanie tego naprawdę nie potrzebuje, dodanie większej ilości pamięci podręcznej zapewnia bardzo szybko zmniejszające się zwroty. Ostatnio widzieliśmy procesory zdobywające instrukcje pobierania wstępnego, więc pamięci podręczne mogą być używane bardziej wydajnie: można użyć tych instrukcji, aby uniknąć błędów spowodowanych nieprzewidywalnością wzorców dostępu do pamięci, a nie bezwzględnym rozmiarem zestawu roboczego,
* Poprawa opóźnień wynikała nie tylko z mniejszego rozmiaru pamięci podręcznej, ale również z powodu zmniejszenia asocjatywności. Nastąpiły znaczące zmiany w całej hierarchii pamięci podręcznej w Nehalem z kilku różnych powodów, z których nie wszystkie koncentrowały się na poprawie wydajności. Tak więc, chociaż wystarcza to na przykład, nie jest to pełne konto.