2012-06-19 12 views

Odpowiedz

27

Kolejka invalidate jest bardziej jak bufor sklepu, ale to część systemu pamięci, nie procesor. Zasadniczo jest to kolejka, która śledzi unieważnienia i zapewnia ich prawidłowe wypełnianie, tak aby pamięć podręczna mogła przejąć na własność linię pamięci podręcznej, aby mogła następnie zapisać tę linię. Kolejka ładunkowa jest spekulacyjną strukturą, która śledzi obciążenia podczas lotu w procesorze nieczynnym. Na przykład, następujący może wystąpić

  1. CPU spekulacyjnie wystawić obciążenie od X
  2. To obciążenie było w porządku programu po sklepu do Y, ale adres Y nie jest jeszcze rozwiązany, więc sklep nie kontynuuje.
  3. Y jest rozwiązany i okazuje się być równy X. W momencie rozstrzygnięcia magazynu na Y, ten magazyn przeszukuje kolejkę ładunkową pod kątem obciążeń spekulacyjnych, które zostały wydane, ale są obecne po magazynie w Y w programie zamówienie. Zwróci uwagę na obciążenie X (które jest równe Y) i musi zgnieść te instrukcje, zaczynając od obciążenia X i następnych.

Bufor sklepu to spekulatywna struktura, która istnieje w CPU, podobnie jak kolejka ładowania i umożliwia procesorowi spekulowanie w sklepach. Bufor łączący zapis jest częścią systemu pamięci i zasadniczo zajmuje kilka małych zapisów (8 bajtowych zapisów) i pakuje je do pojedynczej większej transakcji (64-bajtowej linii podręcznej) przed wysłaniem ich do systemu pamięci. Te zapisy nie są spekulatywne i są częścią protokołu koherencji. Celem jest ograniczenie przepustowości magistrali. Zazwyczaj bufor zapisu jest używany do zapisu w pamięci podręcznej do urządzeń wejścia/wyjścia (często w przypadku kart graficznych). Typowo w urządzeniach wejścia/wyjścia wykonuje się szereg programowania rejestrów urządzeń, wykonując 8-bajtowe zapisy, a bufor do zapisu pozwala na łączenie tych zapisów w większe transakcje podczas wysyłania ich poza pamięć podręczną.

+19

Właśnie zauważyłem pytanie i zamierzałem odpowiedzieć na to pytanie - heck, wymyśliłem kombinację zapisu i ładowania Intela, lub przynajmniej moje nazwisko jest na wielu patentach - ale powyższa odpowiedź jest całkowicie w porządku. –

+7

Bufory sklepów = nie zawsze spekulacyjne, nie zawsze wewnątrz procesora. Mogą istnieć bufory przechowywania poza procesorem, np. pomiędzy zapisaniem przez L1 i L2. –

+9

Bufory obciążenia (1) utrzymują ładunki po obliczeniu adresów obciążenia, ale do momentu, gdy ładunek jest naprawdę gotowy do wykonania; lub, po próbie uruchomienia obciążenia, ale ustaliła, że ​​wystąpił problem, taki jak brak pamięci podręcznej lub wcześniejszy magazyn pod tym samym adresem, który nie jest jeszcze gotowy na dane. (2) może być użyty do sprawdzenia, czy ładunki poza-porządkowe są poprawnie spekulowane, jak opisuje Martin. –