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.