L1 data and instruction cache

0

Nie wiem, czy wybrałem dobry dział - ale czy jest mi ktoś w stanie wytłumaczyć czym różni się pamięć podręczna L1 data od L1 instruction?

0

o_O bo jedna przechowuje dane na których procesor będzie wykonywał operacje (czyli to co wczyta sobie do rejestrów) a druga przechowuje instrukcje które procesor będzie chciał wykonywać (np. mov, cmp, jmp)?

0

Skoro przechowuje tylko instrukcje to dlaczego L1 I >> L1 D?

1

Nie jestem w tej dziedzinie specjalistą ale zgaduje że cache miss w przypadku instruction cache jest dużo bardziej bolesny bo procesor musi czekać na fetch rozkazu z pamięci. Cache miss w przypadku danych jest mniej bolesny bo procesor może korzystać z out-of-order execution i w czasie oczekiwania na dane wykonywać inne instrukcje które danych nie wymagają.
Jako że procesory aktualnie stosują metody predykcji przyszłych rozkazów (np. jesli w programie jest jakiś skok warunkowy to procesor nie wie jaka instrukcja nastąpi po skoku i musi to "przewidywać"), to możliwe że niektóre wrzucają do cache więcej niż jedną potencjalną ścieżkę wykonania, na wszelki wypadek gdyby ich predykcja nie była poprawna.

Poza tym sama operacje wybierania rozkazów do out-of-order execution też musi się "gdzieś" odbywać i żeby ją przeprowadzić musimy już mieć zdekodowane rozkazy.

0

Skoro przechowuje tylko instrukcje to dlaczego L1 I >> L1 D?

Widocznie robili pomiary i im wyszło, że to się bardziej opłaca niż odwrotnie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1