Powiedzmy, że 4 wątki działają na 4 oddzielnych rdzeniach procesora wielordzeniowego x86 i nie udostępniają żadnych danych, czy możliwe jest progresywne wykonanie 4 rdzenie wykorzystują oddzielne i predefiniowane części współużytkowanej pamięci podręcznej L2.Czy możliwe jest przypisanie części współużytkowanych pamięci podręcznych L2 do różnych rdzeni?
Odpowiedz
Używajmy dwóch terminów, ekskluzywnych i współdzielonych pamięci podręcznych zamiast pamięci podręcznych L1, L2, L3, L4. Różne rodziny procesorów zaczynają udostępniać pamięć podręczną na różnych poziomach. W przedstawionych terminach pierwotne pytanie brzmi: czy możliwe jest dzielenie współużytkowanej pamięci podręcznej na części, z których każda będzie używana wyłącznie przez jeden z procesorów/rdzeni? Nie ma jednoznacznej odpowiedzi. Ponadto istnieją dwie odpowiedzi naprzeciwko siebie.
1) Pierwsza i ogólna odpowiedź: NIE. Pamięć podręczna jest zaprojektowana w sprzęcie. Dostępnych jest tylko kilka dźwigni sterujących pamięci podręcznej w oprogramowaniu, takich jak włączanie/wyłączanie pamięci podręcznej dla całej pamięci lub określonego regionu pamięci, stosowanie określonych zasad dla spłukiwania pamięci podręcznej (zapisywanie/zapisywanie). NIE w zasadzie ze względu na fakt, że został zaprojektowany do zarządzania sprzętem. Nie ma więc użytecznych interfejsów, które pozwolą na wygodne zarządzanie oprogramowaniem.
2) Druga odpowiedź: Tak. Tak naprawdę pamięć podręczna zaprojektowana w taki sposób, że każda linia pamięci podręcznej może zapisywać dane z określonego zestawu linii pamięci. W związku z tym, jeśli menedżer pamięci zapewnia gwarancję, że ten sam procesor jest używany przez jeden procesor/rdzeń i używa wszystkich linii pamięci przypisanych wyłącznie do tej samej linii pamięci podręcznej, wówczas menedżer pamięci zapewnia, że ta linia pamięci podręcznej będzie używana wyłącznie przez ten procesor. Jest to bardzo trudne rozwiązanie. Ma on bardzo ograniczone korzyści i ma poważne wady: układ pamięci jest bardzo pofragmentowany, wykorzystanie pamięci podręcznej jest niezrównoważone, skomplikowane zarządzanie pamięcią, bardzo zależne od oprogramowania typu "hadrware" (szczegóły można znaleźć w artykule dostarczonym przez "MetallicPriest").
Życiorys: jest to możliwe w teorii i prawie niemożliwe w praktyce.
- 1. Dlaczego jest możliwe przypisanie znaku stałego * do znaku *?
- 2. Czy możliwe jest przypisanie pól, które można przypisać tylko raz?
- 3. Czy jest możliwe (legalne) przypisanie anonimowego związku w literale złożonym?
- 4. Kopiowanie bloków pamięci do innej części pamięci
- 5. Jak korzystać z wielu pamięci podręcznych w szynach?
- 6. Czy możliwe jest wymuszenie jawnej implementacji interfejsu (lub jego części)?
- 7. Ile bajtów kontroler pamięci podręcznej pobiera czas z pamięci głównej do pamięci podręcznej L2?
- 8. Czy jest możliwe utworzenie adresu URL wskazującego obiekt w pamięci?
- 9. Pobierz do pamięci wewnętrznej możliwe?
- 10. Pamięć podręczna L2 w Kepler
- 11. Czy jest możliwe stosowanie różnych typów zwracania dla przeciążonej metody?
- 12. Używanie elementów współużytkowanych przejścia między działaniami o różnych orientacjach
- 13. Czy jest możliwe przypisanie tej samej wartości do wielu kluczy w obiekcie Dict jednocześnie?
- 14. IntelliJ IDEA zawiesza się podczas "Zakończono zapisywanie pamięci podręcznych"
- 15. Czy jest możliwe zrównoleglenie dekompresji bz2?
- 16. Resharper: Możliwe przypisanie wartości null do encji oznaczonej atrybutem notnull
- 17. czy możliwe jest dostarczanie różnych obrazów dla UIImageView w różnych klasach rozmiarów
- 18. Czy przypisanie lub warunkowe powiązanie jest silniejsze?
- 19. Czy jest możliwe prekompilowanie jsp do zaćmienia?
- 20. MEF: Przekazywanie różnych parametrów konstruktora do części przy użyciu CreationPolicy.NonShared
- 21. C#: Czy to przypisanie pola jest bezpieczne?
- 22. PHP: Przypisanie obiektu do właściwości statycznej, czy jest to nielegalne?
- 23. Czy jest możliwe utworzenie wielu magazynów pamięci podręcznej przy użyciu abstrakcji pamięci podręcznej Spring z redis?
- 24. Zderzenia nazw współużytkowanych bibliotek
- 25. Czy możliwe jest równoległe testowanie Pythona równolegle, jak nos?
- 26. Inny kolor dla różnych części tytułu MATLAB
- 27. Dlaczego przypisanie do listy zmiennych jest niespójne?
- 28. Jak ustawić numer executora iskier, rdzeni i pamięci executora?
- 29. wartość Przypisanie do tablicy char
- 30. Czy możliwe jest pocięcie mapy bitowej na małe kawałki bez załadowania całej rzeczy do pamięci?
Oto jeden interesujący artykuł na ten temat, http://www.eecg.toronto.edu/~tamda/papers/softpart.pdf – MetallicPriest
Szczególnie podoba mi się termin * problematycznie * ... ;-) – Axel
Oh, Nie widziałem, aby zalecenie sprawdzania pisowni było problematyczne, gdy pisałem programowo, LOL! – MetallicPriest