lastscan12 (8)

lastscan12 (8)




Prcesor

8088

8086

80286

80386

Bufor kolejki

411

6D

6B

I6B

Magistrala danych

8b

I6b

I6b

32b

Długość rozkazu

I-5B

1-6B

6B

MSB


•    synchronicznie, gdy są ustalone chwile pojawienia się każdego sygnału

•    asynchronicznie, gdy ustalone jest tylko następstwo sygnałów

•    pól synchronicznie, gdy ustalone jest następstwo i chwile występowania sygnałów

W przesłaniach synchronicznych chwile pojawienia się poszczególnych zdarzeń są ustalone w relacji do impulsów taktujących (CLK) niezależnie od {szybkości działania nadajnika i odbiornika (rys 7.4) Impulsu gotowości danych {dota ready - DR) oraz potwierdzenia (data accepttd - DA) mają ustaloną szerokość, ustalona jest teZ ich wzajemna relacja czasowa. Szybkość przesyłania jest teoretycznie największa (ponieważ mc występują opóźnienia sygnałów sterujących wynikające z ich następstwa) jedinak musi być ona dostosowana do obsługi najwolniejszego urządzenia. Inną wJdą jest brak możliwości potwierdzenia odbioru lub wystąpienia błędów. Metoda la jest stosowana niema) wyłącznie wtedy, gdy szerokości urządzeń współpracujących z magistralą są jednakowe. Aby zapewnić duZą niezawodność transferu, stosuje się kodowanie informacji kodami korekcyjnymi. Przesyłanie asynchroniczne jest realizowane zgodnie z jednym z trzech protokołów.

•    przesłania asynchroniczne niepowiązane

•    przesłania asynchroniczne częściowo powiązane

•    przesłania asynchroniczne w pełni powiązane (z polwierdzcniem)

Przesłanie nie powiązane charakteryzuje ustalony czas trwania sygnałów gotowości (DR) i potwierdzenia (DA) lub błędu (DE) oraz zależne od szybkości odbiornika opóźnienie potwierdzenia ti zależne od szybkości nadajnika opóźnienie zakończenia t* (rys. 7.5) Uaktywnienie sygnałów jest wzajemnie powiązane: po pojawieniu się sygnału DR odbiornik wystawia sygnał DA/DE, usunięcie danych z linii jest dozwolone dopiero po uaktywnieniu sygnału potwierdzenia odbioru DA. Wadą tej metody jea ustalona szerokość sygnałów DR i DA których odstęp t* jest zmienny. Istnieje możliwość zbył wczesnego usunięcia danych (je4!' nadajnik jest szybki) w czasie trwania sygnału DR. Podobnie zmienny czas reakcji nadajnika na potwierdzenie odbioru może również spowodować usunięcie danych przy aktywnym poziomie DA, skutkiem czego może być zbyt szybkie rozpoczęcie kolejnego transferu.

W przesłaniu częściowo powiązanym wyeliminowania została możliwość usunięcia danych podczas aktywnego poziomu sygnału gotowości DR. bo wysłanie nowych danych wymaga wcześniejszego wygaszenia sygnału DR, co jest możliwe dopiero po uaktywnieniu sygnału potwierdzenia DA. Nadał jednak istnieje możliwość zbyt wczesnego rozpoczęcia kolejnego transferu i zmiany danych podczas trwania aktywnego stanu DA ponieważ odbiornik nie otrzymuje potwierdzenia zakończenia odbioru (deaktywacja sygnału DA)

Problem len rozwiązuje protokół przesłań z potwierdzeniem (handshaking), w którym sygnały są w pełni powiązane Obowiązuje tu kasowanie sygnału DR po uaktywnieniu DA/DE (narastającym zboczem tego sygnału) i kasowanie sygnału DA/DE opadającym zboczem sygnału DR Nowy transfer moZe się rozpocząć dopiero po wygaszeniu sygnału potwierdzenia lub błędu DA/DE.

W komunikacji z jednym odbiornikiem protokół ten jest realizowany jako czterozboczowy (rys. 7.7).

Podczas transmisji do wielu odbiorników, w trybie rozgłaszania używa się dodatkowo sygnału ogólnej gotowości, zdefiniowanego jako iloczyn gotowości poszczególnych odbiorników. Tak określony protokół nazywa się sześciozboczouym przesyłaniem z potwierdzeniem.

Ponieważ w transmisji asynchronicznej z potwierdzeniem czas trwania wszystkich sygnałów jest zmienny, pojawia się ryzyko zawieszenia magistrali, czyli długiego okresu nieaktywności w oczekiwaniu na możliwość rozpoczęcia kolejnego transferu Aby tego uniknąć stosuje się dodatkowy sygnał upływu czasu (limę out), który wymusza przerwanie zbyt długiego transferu Ponieważ przerwanie przesyłania danych wskutek upływu czasu nie musi oznaczać niepoprawnego odbioru, a 2 może być jedynie skutkiem błędu braku potwierdzenia zakończenia transmisji, więc w takim przypadku konieczne jest testowanie statusu odbiornika. Jest to szczególnie ważne dla transferów w trybie rozgłaszania, gdy jest stosowany sześciozboczowy protokół przesłania z potwierdzeniem. Jeśli bowiem realizowany jest taki protokół, to przyczyną przekroczenia limitu czasu może być tylko brak sygnału ogólnej gotowości RDY, mimo że wszystkie odbiorniki potwierdziły przyjęcie danych.

5.    Arbitraż magistrali

W systemach, w których wiele urządzeń może pełnić funkcję zarządcy magistrali, pojawia się problem arbitrażu żądań dostępu Konflikty mogą być rozstrzygane:

•    statyczne

•    zgodnie z ustalonym    harmonogramem

•    dynamicznie na podstawie priorytetów zgłoszeń lub według zasady uczciwości (jednakowe

priorytety)

•    arbitraż mieszany w    którym    żądania najważniejsze rozstrzygane są według zasady wyższego

priorytetu, a żądania mniej ważne według zasady uczciwości.

W arbitrażu statystycznym poszczególnym zarządcom są przydzielane kwanty czasu użytkowania magistrali Skutkiem tej zasady jest cykliczne przejmowanie magistrali przez zarządcę, nawet wówczas gdy nic ma potrzeby wykonania transakcji. Jakkolwiek można stosować dowolny protokół transmisji, to protokołem najbardziej dopasowanym do arbitrażu statycznego jest przesłanie synchroniczne Ponieważ czas użycia magistrali jest dla każdego nadzorcy taki sam, więc podczas przesyłania synchronicznego każdy z nich może przeprowadzić określoną liczbę transakcji w przydzielonym mu kwancie czasu. Można zatem każdej grupie transakcji zagwarantować określoną przepustowość magistrali, zależną od przydzielonego czasu i długości cyklu synchronizacji.

Zaletą arbitrażu statycznego jest prostota. Poważną wadą są straty czasu, związane z wykonywaniem pozornych transakcji, gdy aktualny zarządca przejmuje magistralę mimo że nie potrzebuje dostępu. Zjawiska tego nie można praktycznie wyeliminować, bo podstawą statycznego przydziału jest wymagana przez poszczególnych zarządców szczytowa szybkość transferu

Wyeliminowanie strat spowodowanych transakcjami pozornymi jest możliwe w arbitrażu dynamicznym Jego zasadą jest przydzielanie magistrali zarządcom zgodnie ze zgłaszanymi potrzebami. Podstawowym problemem jest dobór algorytmu przydziału, który powinien zarówno wykluczać możliwość zagłodzenia któregokolwiek z potencjalnych nadzorców magistrali, jak też uwzględniać ważność (priorytet) żądań.

Wykład 9 - Architektura procesorów Intel P5, P6. PU. PIH

1. Bariery przepustowości i ewolucja systemu Intel x86

Pokonywanie barier przepustowości identyfikowanych na danym etapie rozwoju systemu komputerowego powoduje pojawienie się nowych ograniczeń które wcześniej nie miały takiego Znaczenia. We wczesnych fazach rozwoju mikroprocesorów podstawowym ograniczeniem przepustowości była szybkość procesora Szybki rozwój technologii wytwarzania układów scalonych wielkiej skali integracji oraz równie szybkie zwiększenie częstotliwości taktowania procesorów spowodowało pojawienie się ograniczeniem przepustowości przez stosunkowo długi czas dostępu do pamięci Zjawisko to zostało nazwane barierą przepustow ości pamięci.

Problem współpracy szybkiego procesora z wolną pamięcią rozwiązywano dwojako:

•    godząc się na zwolnienie szybkości przetwarzania przez dostosowanie szybkości transferów na magistrali do szybkości pamięci, zamiast jak to było wcześniej do szybkości procesora,

•    przez funkcjonalne i fizyczne rozdzielenie wolnych przesłań na magistrali od szybkich wewnętrznych operacji procesora

Pierwszy sposób po, na wydłużaniu cykli dostępu do pamięci poprzez dodanie cykli typu „Wall" podczas, których procesor nie wykonuje obliczeń.

Drugi sposób jest skutkiem obserwacji, żc w cyklach wewnętrznych procesor nie komunikuje się z magistralą. Można zatem poprzez odseparowanie jednostki wykonawczej od modułu sprzęgu magistralą równoległe z przetwarzaniem pobierać kody kolejnych rozkazów. Rozwiązanie takie wymusza także wyposażenie procesora w bufor kolejki rozkazów sprzężony z modułem sprzęgu z magistralą Bufor ten pełni funkcję podręcznej antycy powanej pamięci rozkazów {look-ahead cache). Rozmiar bufora jest dostosowany do formatu rozkazów (ł - 15 bajtów) i rozmiaru magistrali danych

Przewidywanie lokalizacji kolejnego rozkazu jest dość trafne co wynika 7 sekwencyjnej natury programu. Problem pojawia się gdy procesor napotyka na rozkaz skoku lub rozgałęzienia, wówczas kolejka musi zostać opróżniona i na nowo wy pełniona w cyklach połnanin kodu.

Dalsze przyśpieszenie przetwarzania wymaga skrócenia czasu dostępu ponieważ nie jest możliwe wyeliminowanie przesłań procesor - pamięć Rozwiązaniem jest zastosowanie szybkich pamięci podręcznych typu cache Użycie pamięci podręcznej zawierającej kopie pewnego spójnego obszaru pamięci głównej przewidziano już w systemach opartych o procesory 80386, dla których opracowano odpowiedni sterownik.

Dalsze zwiększenie wydajności procesora można uzyskać poprzez wbudowanie pamięci podręcznej 1,1 w struktury procesora, jak ma to miejsce w przypadku procesorów 486DX i późniejszych, oraz pamięci L2 tak jak w procesorze Pentium Pro (P6 - 256/512 kB)

Radykalne skrócenie czasu dostępu do pamięci przez użycie pamięci podręcznych uwidacznia kolejną barierę szybkości przetwarzania którą jest konieczność sekwencyjnego kierowania rozkazów do potoku przetwarzania Ponieważ jednak niektóre rozkazy mogą być wykonywane współbieżnie, to zastosowanie w Pentium podwojenie potoku (pojedynczego we wcześniejszych procesorach 80x86) umożliwia pewne przyśpieszenie przetwarzania Taki potok nazywamy super skalarnym

Związane z wykonywaniem rozkazów skoku i rozgałęzień opróżnianie kolejki rozkazów i wstrzymywanie potoku można zminimalizować przez prognozowanie skoków (hranch prediction) W przypadku potoku super skalarnego zamiast opróżnienia kolejki możliwie jest również przełączanie potoków, co eliminuje zwłokę związaną ż opróżnianiem kolejki

Innym niezależnym rozwiązaniem jest skrócenie zwłoki potoku które uzyskuje się dzięki zastosowania idei przetwarzania potokowego w poszczególnych fazach przetwarzania Rozwiązanie takie z.aslosowano w procesorze P6, w którym dzięki rozdzieleniu poszczególnych faz przetwarzania na podfazy w jednym cyklu zegara zakończonych może być więcej niż jedna instrukcja Takie przetwarzanie nazywamy superpotokowym

Dalsze zwiększenie przepustowości nic jest praktycznie możliwe w systemach jeduopioccsornwych Dła wiciu aplikacji sieciowych waz zadań typu kliciu-servei niezbędne jest wspomaganie mechanizmów współbieżności w realizacji wieloprocesorowych Możliwości takie zaimplementowano w procesorach P54C, P6, Pil i PHI

Opis architektury wewnętrznej procesora Pentium

Zasadniczymi elementami struktury funkcjonalnej procesora Pentium są

•    układ sprzęgu z magistralą

•    pamięć podręczna kodu wraz z układem stronicowania

•    generator uprzedzającego pobierania kodu    (prefetchcr)

•    współbieżne potoki stałoprzecinkowe

•    jednostka zmiennoprzecinkowa

•    pamięć podręczna danych wraz z układem    stronicowania

•    układ generacji adresu

Układ sprzęgu z magistralą zewnętrzną zawiera:

•    sterownik magistrali adresowej i odbiorniki stanu magistrali

•    bufory zapisu

•    dwukierunkowe bufory magistrali danych

•    logikę sterowania

•    sterowanie nadzorem magistrali

•    sterowanie zewnętrzną pamięcią podręczną

•    sterowanie wewnętrzną pamięcią podręczną

•    generatory i kontrolery parzystości

Adres dwusłowa 64-bitowego jest wyprowadzany na liniach A31-A3. Linie A31-A5 są dwukierunkowe tak aby możliwe było odczytywanie stanu magistrali w cyklach podglądania (cache snoop) niezbędnych do zapewnienia spójności pamięci podręcznej w systemach w których występuje więcej niż jeden układ nadzoru magistrali (bus master) jak na przykład procesor DMA

Logika sterowania magistrali nadz.oruje rodzaj transferu (standardowy lub blokowy) i generuje odpowiednie sygnały sterujące. Logika nadzoru magistrali przyjmuje i wysyła sygnały niezbędne do zwalniania dostępu do magistrali i przejmowania nadzoru nad magistralą

Układ sprzęgu z magistralą jest połączony 64-bitową magistralą danych i 27-bitową magistralą adresową z pamięcią podręczną danych i pamięcią podręczną kodu. Nie jest potrzebna cała szerokość magistrali ponieważ jednostką wymiany pomiędzy pamięcią podręczną a procesorem jest linia tejże pamięci która ma wielkość 2*B.

Wewnętrzna pamięć podręczna kodu i danych jest pamięcią trójportową, co zapewnia niezależny dostęp do niej każdemu z dwóch potoków oraz układowi sterowania wypełnianiem linii Każda z tych pamięci ma pojemność 8kB i posiada organizację dwudrożną o 32 bajtowej linii (2V). Wypełnienie linii wymaga jednego przesłania blokowego składającego się z 4 przesłań 8-bajlowych (64-bitowych)

Z podręczną pamięcią danych są sprzężone dwa 64-bilowe bufory zapisu (po jednym dla każdego potoku), które umożliwiają odłożenie operacji zapisu (szczególnie przy współpracy z pamięcią podręczną drugiego poziomu) w przypadku gdy realizowana jest inna operacja na magistral, na przykład zapis zwrotny przy opróżnianiu linii

Tylko odczytywalna pamięć podręczna kodu połączona magistralą 256-bitową 7 dwoma parami buforów wstępnego pobierania, co umożliwia przesianie pełnej linii pamięci w jednym cyklu

Generator wstępnego pobierania (prefetcher) generuje żądania pobrania pary kolejnych instrukcji i przesłania ich do aktywnych buforów W przypadku wystąpienia skoku lub rozgałęzienia generator wymusza przełączenie buforów i pobranie kolejnej pary instrukcji do buforów, które upizednio były nieaktywne. Jeśli adres rozkazu nie jest adresem najmniej znaczącego bajtu. to generator wymusza jednoczesne pobranie 16 bajtów z dwóch kolejnych linii pamięci podręcznej. Wynika to z konieczności pobrania pełnego kodu przynajmniej jednego rozkazu (MSB), który może nie mieścić się w całości w jednej linii

Dekoder rozkazów każdego z dwóch potoków U i V zawiera blok wstępnego dekodowania Dl oraz blok obliczania adresu operandu D2. Każda para buforów wstępnego pobierania jest połączona jednocześnie z wstępnymi dekoderami obu potoków. Użycie pary buforów umożliwia jednoczesne dekodowanie dwóch instrukcji, każdej w jednym potoku Wynikiem wstępnego dekodowania jest stwierdzenie czy instrukcje mogą być wykonywane współbieżnie w obu potokach (U i V)

W procesorze Pentium współbieżnie mogą być wykonywane tylko niektóre instrukcje nazywane przez Intela instrukcjami prostymi pod warunkiem że nie występują pomiędzy nimi zależności funkcjonalne Każdy blok obliczania adresu operngdu D2 jest skojarzony z szybkim układem generatora adresu

Michał Jur


Wyszukiwarka

Podobne podstrony:
assembler?86? 5 170 5. Rozkazy mikroprocesorów 8086/8088 Mikroprocesor 80286 W (rybie adresacji rz
img025 Tę część ćwiczenia wykonują studenci w ramach drugiej serii laboratorium.SKOKI W 8088 ( 8086
OBSŁUGA I/O spooling: bufor kolejkowy do obsługi powolnych urządzeńjip drukarki atrybuty
Slajd5 (105) Rodziny procesorów• Intel x86 (komputery PC): -    16 bitowe: 8086 88. 8
44937 Slajd34 (101) Pamięć w procesorach 16 bitowych Organizacja pamięci dla procesorów 8086. 80186.
lastscan22 Bufor fosforanowy to mieszanina roztworów diwodoroortofosforanu(V) sodu NaH,P04 i wodoroo
Zrozumiec Assembler4 Zrozumieć Asembler puterów osobistych. Jego następcami były mikroprocesory 808
assembler?86? 0 20 2. Mikroprocesory 8086/8088 Znacznik kierunku DF jest wykorzystywany przy wykon
assembler?86? 1 22 2. Mikroprocesory 8086/8088 jest niezależny od innych segmentów i jest programo
assembler?86? 2 24 2. Mikroprocesory 8086/8088 Rodzaj operacji realizowanej przez BIL Rejestr s

więcej podobnych podstron