PTM – Materiały na kolosa 1. Rola DMA + tryby pracy. DMA (Direct
Transkrypt
PTM – Materiały na kolosa 1. Rola DMA + tryby pracy. DMA (Direct
PTM – Materiały na kolosa 1. Rola DMA + tryby pracy. DMA (Direct Memory Access) – jest jest mechanizmem pozwalającym przesyłać dane pomiędzy urządzeniami a pamięcią z pominięciem procesora (żeby go nie obciążać). Kontroler DMA może blokować procesorowi dostęp do pamięci. Wyróżniamy 3 tryby pracy: - Blokowy - DMA przesyła całą porcję danych na dłuższy czas blokując dostęp procesora do pamięci. (DMA się cieszy. Procesor jest smutny) - Wykradanie taktów - DMA przesyła dane tylko gdy procesor nie potrzebuje pamięci (procesor nie stoi bezradny) - Zgodnie z zapotrzebowaniem - procesor ustala ile danych może przesłać DMA jeżeli po zakończeniu tego przesyłania procesor dalej nie potrzebuje pamięci to DMA kontynuuje przesyłanie (przesyła kolejny blok). 2. Tryby pracy liczników. Układ czasowo-licznikowy – INTEL 8253 - odmierzanie uzależnień czasowych. 16-bitowe. Liczą w BCD (dziesiętny kodowany dwójkowo) albo NB. Liczą w dół. Maksymalna częstotliwość 2MHz. Tryby pracy: Tryb 0 - odliczanie jednorazowe - liczy do zera i powoduje przerwanie. Kiedy bramka jest nieaktywna to nie liczy. Tryb 1 - generator pojedynczego impulsu - dopóki liczy- na wyjściu 0. Kiedy bramka jest nieaktywna to reset licznika. Tryb 2 - dzielnik częstotliwości - miedzy chwilą kiedy licznik ma wartość 1 a chwilą kiedy ma wartość 0 na wyjściu jest stan niski. Gdy doliczy do końca to wraca na początek. Tryb 3 - generator fali prostokątnej - jeżeli wartość początkowa jest parzysta to generuje na zmianę stan niski/ wysoki każdy o długości 2 razy mniejszej niż wartość początkowa (zmniejsza licznik o 2 za każdym razem). Jeżeli wartość początkowa jest nieparzysta to dla stanu wysokiego zmniejsza licznik najpierw o 1 a potem o 2 w każdym cyklu a dla stanu niskiego najpierw o 3 a potem o 2 w każdym cyklu. Stan wysoki jest o jeden cykl dłuższy niż niski a okres jest równy wartości początkowej licznika. Tryb 4 - generator impulsu wyzwalanego programowo - zaczyna liczyć po zapisaniu wartości. Nieaktywny gate wstrzymuje licznik. Tryb 5 - generator impulsu wyzwalanego sprzętowo - zaczyna liczyć po podniesieniu bramki. Wyłączenie bramki powoduje liczenie od początku. 3. Współadresowanie i adresowanie izolowane. Współadresowanie: Układy I/O są dostępne w przestrzeni adresowej (zachowana jest ciągłość adresowania, a pozwala to zwiększyć sztucznie wielkość pamięci. czasy dostępu są takie same) Adresowanie izolowane: Rejestry urządzeń I/O dostępne są w odrębnej przestrzeni adresowej zwanej przestrzenią adresową wejścia/wyjścia lub przestrzenią portów. Dostęp do tych rejestrów uzyskuje się specjalnymi rozkazami (IN, OUT). 4. Odczyt ROM i zapis SRAM. Odczyt: „procedura” wstawiamy adres na linie adresową czekamy ściągamy CE (chip enable) ściągamy RD (read enable) oraz OE (output enable) po pewnym czasie (czas dostępu) na linii danych pojawią się dane podnosimy CE i RD możemy przestać wystawiać adres Wersja opisowa: Pierwsza faza jest ustawienie adresu zczytanego w strukturze pamięci (linie adresowe). Uaktywnienie linii MEMREQ na podstawie adresu, a także linii CE (logicznego wyboru danego układu pamiętającego) – stanem niskim. Następnie uaktywnia się linie odczytu i pobiera dane. Zapis: „procedura” wystawiamy adres na linie adresową ściągamy CS wystawiamy dane na linie danych czekamy ściągamy WR (write) czekamy (znowu czas dostępu) dane mogą już zniknąć podnosimy CS i WR możemy przestać wystawiać adres Wersja opisowa: W zapisie do pamięci RAM adres i wybór układu pozostaje jak w odczycie. Zamiast linii odczytu (RD) ustawiamy stan niski na linii zapisu (WR) i pobieramy dane od procesora, który musi udostępnić je na tak długi czas, aby zapis został ukończony. 5. Koprocesor. Koprocesor arytmetyczny: wbudowany w procka, kiedyś osobny układ. Procek przekazuje mu instrukcje adresowane do niego, koprocesor sam nie umie dobrać się do pamięci - realizuje za niego to procek, nie obsługuje I/O i przerwań, ma osobne rejestry. 6. Transputery. Transputer to mikroprocesor w jednym układzie scalonym, zaprojektowany specjalnie do obliczeń równoległych (szybka komunikacja i łatwość połączenia z innymi transputerami). Wraz z nim został opracowany jerzyk programowania równoległego OCCAM. W skład transputera wchodzi procesor typu RISC, wewnętrzna pamięć RAM oraz łącze pamięci zewnętrznej, która umożliwia adresowanie w przestrzeni 4 GB. Do komunikacji z innymi transputerami wykorzystywane są cztery kanały DMA. 7. Tryby specjalne DRAM - odczyt-modyfikacja-zapis – adres kolumny nie musi zostać zestrobowany, można natomiast użyć adresu z impulsów /CAS niskiego potencjału i następnie dokonać zapisu w przeciągu kilku nanosekund. - tryb stronicowy – wiersz DRAM pozostaje otwarty przez utrzymywanie niskiego potencjału /RAS w trakcie trwania odczytów bądź zapisów odosobnionym impulsem CAS. - tryb nakładkowy – cztery impulsy CAS maja dostęp do czterech sekwencyjnych lokacji w wierszu. 8. Działanie portu równoległego Nadawanie i odbiór słowa. 4 adresy, 3 porty: A, B, C i 1 adres na sterowanie. porty nie mają przypisanych linii adresowych na stałe, więc kiedy są one potrzebne port C jest odłączany. 3 tryby: 0 - niestrobowane wjeście/wyjście, brak sprawdzania poprawności np. diody. 1 - strobowane I/O, sprawdzanie poprawności po każdej linii. kanały jednokierunkowe. linie handshakingowe do sprawdzania. zgłaszanie przerwania gdy trzeba odebrać dane z portu. 2 - Dwukierunkowa magistrala danych. Po 2 pary połączeń - na wejście i wyjście. Coś jak sklejone dwa tryby 1. 9. Odświeżanie DRAM Odświeżanie DRAM jest potrzebne ze względu na sposób przechowywania danych – są one trzymane w kondensatorach, a jak wiadomo, ich ładunek z czasem się traci. Nie byłoby potrzeby odświeżania pamięci, gdybyśmy zawsze używali całej pamięci. Jednakże, nasz zapis czy odczyt musi nastąpić w to samo miejsce. Odświeżanie może niebezpiecznie „dociążyć” procesor. Wyróżniamy trzy sposoby odświeżania: - tylko sygnałem RAS (RAS only refresh) – tylko adres wiersza zostaje zatwierdzony po sygnale RAS. Nie ma potrzeby używania CAS, ale potrzebny jest zewnętrzny licznik do iteracji po wierszu. - ukryte – użycie obu linii CAS i RAS, najpierw następuje synchronizacja wiersza, potem kolumny. - CAS przed RAS – gdy brak sygnału na /CAS przed /RAS, DRAM ignoruje adresy i używa wewnętrznego licznika. 10. Pamięć Cache, organizacja , sposoby usuwania/zastępowania. Cache, czyli pamięć podręczna, służy do tego, aby przechowywać tymczasowo dane dla procesora. Warto zauważyć, ze cache jest kompletnie przezroczyste dla procesora - procesor sięga pod dany adres pamięci i nie interesuje się tym, czy dane przyjdą z cache, czy z pamięci. Istnieje coś takiego jak hit ratio i miss ratio. Są to współczynniki, odpowiednio, trafień w cache i chybień w cache. Trafienie w cache następuje wtedy, gdy procesor sięga po coś do pamięci, ale owo „coś” znajduje się już w cache, wiec w ostateczności zostaje do procesora wysłane z cache, a nie z samej pamięci. Chybienie – wiadomo, danych nie ma w cache, wiec muszą zostać pobrane z pamięci. Organizacja: - Direct Mapping Cache – dla ustawionego rozmiaru „skoku” (s), tj. odległości relatywnej w pamięci głównej, mamy sytuacje taka, ze linia (i) pamięci Cache może odwoływać się do linii (i), (s+i) oraz (2s+i) w pamięci głównej. - Fully Associative Cache – każda linia pamięci cache może odwoływać się do dowolnej linii pamięci głównej. - Set Associative Cache – dzielimy pamięć cache na zbiory. Jest to schemat podobny do DMC, jeśli chodzi o skoki. Natomiast w każdym secie możemy dowolnie przydzielić linie z pamięci głównej, z ustalonego zakresu, zdeterminowanego numerem setu. Sposoby usuwania/zastępowania: Zastępowanie danych dzielimy ze względu na fakt uwzględniania informacji z tagów: z uwzględnieniem informacji: – MIN – usuwane jest to co najdłużej nie będzie potrzebne (bo było niedawno używane) – LRU – usuwane jest to co najdłużej nie było potrzebne (używane) bez uwzględnienia informacji: – FIFO – to co zostało wczytane wcześniej, wcześniej wypadnie z cache – Random – wbrew pozorom, nie jest to metoda najgorsza! Tego nie było na wykładzie, ale warto zauważyć, ze nie wymaga przechowywania jakichkolwiek informacji o tym, kiedy linia została wrzucona do cache bądź kiedy była ostatnio używana, oraz nie wymaga żadnego systemu przewidującego. 11. Pipeling – przetwarzanie potokowe. Przetwarzanie potokowe jest jednym ze sposobów sekwencyjnego (szeregowego) przetwarzania danych. Sposób działania: - cykl przetwarzania dzieli się na odrębne bloki przetwarzania, z których każdy oprócz ostatniego jest połączony z następnym - dane po przejściu przez jeden blok trafiają do następnego, aż osiągną ostatni blok Dzięki temu, ze przetwarzanie odbywa się w rozdzielonych blokach, każdy z nich może wnieść swoja logikę (np. 1. blok sortuje dane, 2. usuwa sąsiadujące duplikaty) bez konieczności wbudowywania jej na poziomie całego systemu. Bloki-następniki są zależne od pracy swoich (niekoniecznie bezpośrednich) poprzedników. 12. Architektura SIMD SIMD – maszyna dedykowana, wykonuje to samo zadanie dla różnych danych. Architektury systoliczne, to architektury specjalizowane do implementacji operacji macierzowych, przetwarzania sygnałów i obrazów w czasie rzeczywistym. Globalnie synchronizowane procesory elementarne są połączone w regularna siatkę. Każdy procesor jest połączony tylko z najbliższymi sąsiadami. Struktura wewnętrzna procesora, w zależności od postawionego zadania, może być bardzo prosta lub dążyć do stopnia skomplikowania współczesnych mikroprocesorów. Wyniki przetwarzania są uzyskiwane stopniowo. 13. Omów działania jakie podejmuje procesor po przyjęciu zgłoszenia przerwania. W momencie, gdy procesor przyjmie zgłoszenie przerwania, wykonywane są następujące działania: 1. Identyfikacja linii urządzenia wysyłającego przerwanie – ze względu na rożne priorytety przerwań (arbitraż programowy, arbitraż sprzętowy, tj. równoległy, szeregowy bądź mieszany). 2. Zapamiętanie stanu systemu – rejestry specjalne i ogólne zapamiętywane są albo na stosie (przełączenie danych) albo w innym banku pamięci (przełączenie kontekstu) w sposób automatyczny. 3. Wykonanie procedury obsługi z adresu uzyskanego podczas identyfikacji źródła. 14. Omów cykl zapisu i odczytu DRAM. Odczyt: „procedura” wystawiamy na linie adresową adres wiersza ściągamy RAS (row adres strobe) czekamy wystawiamy na linie adresową adres kolumny ściągamy CAS i RD czekamy zczytujemy z linii danych dane podnosimy RD CAS oraz RAS wystawiamy kolejny adres wiersza […] Wersja opisowa: Pierwsza faza zadania odczytu z pamięci stanowi pobranie adresu wiersza, w którym znajduje się komórka i zatwierdzeniu tego adresu, po ustabilizowaniu się stanu szyny adresowej sygnałem RAS (Row Address Strobe). Następnie na szynę adresowa pamięci podawany jest adres kolumny zawierającej zadana komórkę, który zatwierdzany jest sygnałem CAS (Column Address Strobe). Odstęp czasu pomiędzy sygnałami CAS i RAS wynika z konstrukcji pamięci i musi zapewnić czas nie tylko na ustabilizowanie się stanu szyny adresowej, lecz także na wysterowanie wiersza do odczytu. Zapis: „procedura” to samo tylko ściągamy WR zamiast RD, i wystawiamy dane na linie danych przed ściągnięciem WR Wersja opisowa: Pierwsza fazę zapisu stanowi pobranie adresu, pod który będziemy zapisywać. Następnie następuje synchronizacja RAS wiersza w pamięci i CAS kolumny. Mając pełny adres, wyzwalamy sygnał na linii WR, by ostatecznie zapisać dane. 15. Omów zasady transmisji synchronicznej i asynchronicznej realizowanej portem szeregowym. Nadawanie i odbiór bit po bicie. Tryby pracy: asynchroniczny: - składanie połączenia - ustalanie kształtu ramki - jest zegar - start ramki w takcie zegara synchroniczny: - zestawianie łącza - ustalenie słów synchronizacji (1 lub 2 znaki) - jest zegar - dane zaczepione do słowa synchronizacji - po przerwie w transmisji konieczna synchronizacja i zestawienie łącza - co ileś ramek sprawdzenie 16. Omów podstawowe cechy architektur MIMD. Multiple Instruction Multiple Data to rodzaj architektury, w której przetwarzanie równoległe zachodzi zarówno na poziomie danych jak i instrukcji. Komputery zbudowane w architekturze MIMD posiadają wiele procesorów, zwykle SIMD, pracujących niezależnie i asynchronicznie. Mogą one korzystać ze wspólnej pamięci dzielonej lub ozywać modelu rozproszonego w którym każdy z nich posiada prywatna przestrzeń adresowa. W ramach MIMD wyróżniamy trzy kategorie: MIMD–SM, MIMD–DM, MIMD–HDSM. Pytania „z dawnych lat”: 1. Rola DMA + tryby pracy. 2. Tryby pracy liczników. 3. Współadresowanie i adresowani izolowane. 4. Odczyt ROM i zapis SRAM. 1. Koprocesor. 2. Transputery. 3. Tryby specjalne DRAM (?) 1. Co to jest DMA i w jakich trybach może pracować 2. Opisać cykl odczytu ROM i zapisu SRAM 3. Współadresowanie i adresowanie izolowane pamięci i układu I/O 4. Opisać tryby pracy układu czasowo-licznikowego 1. Cos z portem rownoleglym. 2. Odswiezane DRAM 3. Pamieci Cache , organizacja , sposoby usuwania/zastepowania. 4. Pipeling 1. Pipelining 2. Specjalne tryby pracy DRAM 3. Wspolpraca koprocesora z procesorem 4. Architektura SIMD 1. Omów podstawowe tryby pracy portu równoległego. 2. Omów mechanizmy odświeżania pamięci DRAM. 3. Omów organizację pamięci cache i mechanizmy zastępowania danych w pamięci cache. 4. Omów zasadę przetwarzania potokowego. 1. Omów działania jakie podejmuje procesor po przyjęciu zgłoszenia przerwania. 2. Omów cykl zapisu i odczytu DRAM. 3. Omów zasady transmisji synchronicznej i asynchronicznej realizowanej portem szeregowym. 4. Omów podstawowe cechy architektur MIMD.