archi Flashcards

(39 cards)

1
Q

Opisz krótko różnice między katalogiem stron a tablicą stron

A

Katalog stron zawiera wskaźniki do tablic stron, tablice stron przechowują adresy fizyczne stron ;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Wymień i opisz rejestry ogólnego przeznaczenia w architekturze x86

A
  • EAX użuwany głownie w czasie operacji arytmetycznych,
  • EBX rejestr bazowy, wraz z rejestrem segmentowym DS tworzą wskaźnik na przestrzeń danych,
  • ECX rejestr służący głównie jako licznik w zapętlonych sytuacjach,
  • EDX rejestr danych, używanych do operacji arytmetycznych oraz obsługi wyjścia/wejścia,
  • ESP wskaźnik wierzchołka stosu,
  • EBP wskaźnik ramki stosu,
  • ESI rejestr indeksowy, wskaźnik źródła,
  • EDI rejestr indeksowy, wskaźnik przeznaczenia;
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Wymień i krótko opisz możliwe stany linii w modelu spójności MESI

A

Zmodyfikowany to pamięć podręczna została zmodyfikowana,

Nieważny to wiersz w pamięci nie ma ważnych danych,

Wspólny to wiersz w pamięci podręcznej może być w innej pamięci podręcznej oraz jest taki jak w pamięci głównej,

Wyłączny to wiersz w pamięci podręcznej występuje w pamięci głównej oraz nie występuje w innych pamięciach podręcznych;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Opisz różnicę pomiędzy skalowanie silnym a słabym

A

Skalowanie silne to ustalony rozmiar problemu rozdzielane w pracy na coraz więcej procesorów

Skalowanie słabe to ustalany rozmiar problemu jest skalowany na jeden procesorów;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Czym się charakteryzują instrukcje serializujące w architekturze x86, podaj przykłady?

A

Są to instrukcje pilnujące porządku w potoku danego typu instancji, tj.wszystkie instrukcje danego typu przed instrukcją serializującą wykonają się przed instrukcjami, które są po niej, np sfence, cpuid;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Jakie działania należy podjąć w przypadku wystąpienia błędu braku strony?

A
  1. sprawdzić poprawność odwołania do strony w tablicy
  2. Znalezienie wolnej ramki pamięci w pamięci fizycznej
  3. Ściągnięcie strony z pamięci drugorzędnej
  4. Aktualizacja tablicy stron;
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Podaj przykład braku ortogonalności w dowolnej architekturze komputera

A

dedykowane rejestry, eax:edx jako rejestr przechowujący wynik mnożenia w x86, licznik powtórzeń dla organizacji pętli ecx;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Wymień i krótko opisz klasy pamięci rozróżniane ze względu na sposób adresowania

A

Pamięć o dostępnie sekwencyjnym SAM, swobodnym RAM, adresowanym zawartoscia CAM. SAM wystawia adres na magistrale, sygnał odczytu/zapisu i po jakimś czasie pamięć zwraca dane spod adresu. RAM po wystawieniu adresu w jednym cyklu, w następnym cyklu zegara zakłada że otrzyma dane po odczycie, zapis robimy w jednym cyklu. W CAM wykorzystywany jest wzorzec, działa podobnie do swobodnej;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Na czym polega różnica między fragmentacją zewnętrzną a wewnętrzna? Podaj przykłady pojawiania się

A

Zewnętrzna fragmentacja polega na zapełnianiu dziur po segmentach, w niewykorzystywane obszary pamięci są wrzucane mniejsze bloki.

Wewnętrzna fragmentacja pojawia się przy stronicowaniu. Strony mają określony rozmiar i niezależnie ile mamy danych bloki pamięci mogą się marnować;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Czy przerwania różnią się od wyjątków?

A

Tak, przerwania są raczej zdarzeniami zewnętrznymi, a wyjątki wewnętrznymi;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Wymień i krótko opisz klasy możliwych argumentów instrukcji dostępnych w architekturze x86

A
  • Wartość argumentu może zostać podana jako stała zakodowana w kodzie rozkazu, jako wpisanie stałej przy mnemoniku (np. $4) bądź jako symbol.
  • Argumentem może być wartość znajdująca się w jakimś rejestrze, wówczas w rozkazie zostaje zakodowany adres rejestru.
  • Argumentem może być wartość komórki w pamięci, której adres może być podany jako stała(np. poprzez symbol), jako adres znajdujący się w rejestrze bądź jako kombinację tych dwóch możliwości(w sumie może to być suma stałej, rejestru i 2-, 4- lub 8-krotności rejestru;
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Wymień i krótko opisz algorytmy uprzedzającego (antycypowanego) pobierania danych

A

Automatyczne, czyli inicjowane podczas każdej próby dostępu.

Implikowane w razie chybienia.

Markowane, czyli pobierana zostaje kolejna linia podczas pierwszego odwołania do tej linii;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Wymień i krótko opisz najczęściej używane flagi dostępne w rejestrze flag architektury x86

A

Carry informuje o wystąpieniu przeniesienia, zdecydowanie najczęściej używana, do działań arytmetycznych,

overflow przepełnienie,

sign znak,

interrupt informuje o wystąpieniu przerwania,

parity o parzystości;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Wymień główne elementy modelu komputera z programem przechowywany i podaj odpowiadające im elementy modelu maszyny Turinga

A

Procesor czyli centralna jednostka obliczeniowa, Pamięć, rozróżniamy na cashe, przy procesorze, pamięć główną RAM oraz większe wolniejsze pamięci dyskowe, możemy mieć osobno pamięć na dane i na kod czyli architektura Harwardzka, Magistrale do komunikacji między elementami.

W modelu maszyny Turinga mamy głowicę czyli wskaźnik na pamięć. Sama pamięć to jedna lub więcej taśm po których porusza się głowica;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Wymień i krótko opisz elementy składni języka asemblera (składnia AT&T)

A

data część z danymi zainicjowanymi, .bss część z danymi niezainicjowanymi, .text główny kod programu;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Wymień i krótko opisz różnice między architekturami RISC i CISC

A

RiSC ma stałą długość rozkazu, ograniczoną moc wykonawczą rozkazu (np architektura rejestrowa z instrukcjami load store), większość rozkazów jest jednocyklowa.

CISC ma różnej długości rozkazy, co utrudnia potokowanie, rozkazy mogą wiele zrobić jednym opcodem, ale trwają różny czas;

17
Q

Wymień i krótko opisz różnice pomiędzy procesorem superpotokowym a super skalarnym

A

Superskalarne to kilka jednostek wykonawczych i kilka instrukcji na raz.

Superpotokowe wykorzystują potok głęboki, ma wile krótkich etapów, częstsze cykle. Oba mają zagrożenie opóźnienia;

18
Q

Opisz krótko zjawisko szamotania

A

Szamotanie występuje, gdy proces ma mniej ramek niż liczba używanych stron. Jest ich za mało więc trzeba sprowadzić z pamięci nową usuwając jedną z załadowanych już stron, ta strona za chwilę będzie potrzebna;

19
Q

Wymień i krótko opisz rodzaje konfliktów przetwarzania powodujących wstrzymanie potoku

A
  • Konflikt sterowania, czyli możliwa zmiana ścieżki przetwarzania przez rozgałęzienia.
  • Konflikt danych, czyli użycie tej samej danej przez 2 kolejne instrukcje.
  • Konflikt strukturalny, czyli niemożność jednoczesnego użycia jednego zasobu;
20
Q

Opisz krótko różnicę pomiędzy przerwaniem precyzyjnym, a nie precyzyjnym

A

Przerwanie precyzyjne jest z mniej złych powodów, można rozpocząć jego obsługę po wykonaniu bieżącego zadania.

Przerwanie nieprecyzyjne występuje z krytycznych powodów, musiało się stać coś bardzo złego, obsługa musi się rozpocząć od razu, ma wysoki priorytet;

21
Q

Wymień elementy składające się na model programowy procesora

A
lista rozkazów, 
tryby adresowania, 
rejestry, 
typy danych, 
obsługa wyjątków i przerwań;
22
Q

Wady i zalety odwróconej tablicy stron

A

jest tylko jedna i zawiera tyle wpisów, ile jest ramek w pamięci fizycznej. W każdym wpisie odwróconej tablicy stron jest informacja, która strona jest w konkretnej ramce przechowywana. W momencie odwołania się do adresu wirtualnego, należy w tej tablicy wyszukać ten wiersz, w którym znajduje się adres wirtualny związany z konkretną stroną. Jeżeli nie ma tego wpisu to wyjątek braku strony i musimy wymienić stronę.

Zalety: jedna, dość mała struktura

Wady: trzeba przeszukiwać (czasami sprawdzić wszystkie wpisy – setki tysięcy, miliony);

23
Q

Opisz strukturę ramki stosu zdefiniowanej w ABI systemu V dla architektury x86

A

ramka stosu jest to fragment stosu zaalokowany dla określonej funkcji. Każdy parametr funkcji może zostać odczytany jako indeksowany względem %ebp(wskaźnik obecnej ramki stosu), aktualna ramka stosu jest ograniczona przez dwa rejestry, czyli wskaźnik ramki stosu %ebp oraz wskaźnik stosu %esp, Stos rośnie w dół i dokładamy do dołu, dane wyrównane do 32 bitów

24
Q

Opisz sposób obliczania adresu w pamięci i wymień wszystkie elementy, na podstawie których to przesunięcie jest obliczane

A

Przesunięcie (offset) względem początku segmentu. Wyrażenie, które jest obliczane na podstawie przemieszczenia (jakaś liczba), do którego dodawana jest zawartość rejestru bazowego i dodawana jest zawartość rejestru indeksowanego pomnożonego przez odpowiednią skalę. w AT&T
disp(base,index,scale),
np. 16(eax,ebx,4);

25
Wymień i opisz sytuacje w których linia pamięci podręcznej zostanie wypełniona
- Wyłącznie na chybieniu przy odczycie (jeżeli chybiamy, wypełniamy linie, przechodzimy do jakiegoś stanu), - Pobranie uprzedzające to pobierana jest zawsze kolejna linia i razem z nią następna - Pobieramy linie, ale zaznaczamy, żeby nie pobierać następnej (żeby nie było dużego ruchu na magistrali);
26
Wymień i krótko opisz rodzaje konfliktów danych
RAR to odczyt po odczycie: 2 jednostki chcą odczytać to samo, ale jest to nie możliwe w danym systemie, RAW to czekamy na odczytanie aż poprawna jednostka się tam zapisze, WAR to czekamy aż poprzednia instrukcja odczyta z danego pola, WAW to czekamy na właściwą kolejność zapisu;
27
Wymień i krótko opisz rodzaje nadmiaru, które należy wprowadzić do systemu w celu poprawy jego niezawodności.
- Nadmiar informacji to kody CRC, bity parzystości. Pozwala sprawdzać a czasami nawet odtwarzać dane utracone w wyniku dodatkowych bitów. - Nadmiar czasu to więcej czasu na przesłanie danych, mniejsza szansa błędu. - Nadmiar sprzętu to redundancja, pozwala na większą niezawodność gdyż umożliwia działanie pomimo awarii 1 z urządzeń
28
Wymień i krótko opisz możliwe tryby pracy układu DMA(podział magistrali)
Blokowy to przesyłamy wszystko co ustaliliśmy, Pojedynczy to przesyłamy małymi blokami, Przezroczysty to przesyłamy kiedy procesor nic nie robi na magistrali;
29
Opisz funkcje prologu i epilogu
Prolog jest to sekwencja instrukcji którą należy wykonać podczas tworzenia funkcji w jej skład wchodzą : - odłożyć na stos %ebp wskaźnik ramki (. Przechowuje wartość wskaźnika stosu z chwili tuż po wejściu do nowej funkcji), - przenieść %esp (wskaźnik stosu, wyznacza dolną granicę) do %ebp to ustawić nowy wskaźnik ramki, - odłożyć na stos rejestry %edi,%esi,%ebx żeby zachować ich niezmienność, Epilog odwrotnie, czyli podczas zakończenia funkcji:;
30
Omów krótko zalety i wady całkowicie skojarzeniowych pamięci podręcznych
- można wpisać dowolnie długi fragment pamięci, - migotanie niemal nie występuje, rzadko wymienia się linie ( dopiero jak się skaczą linie), - są drogie, - największy współczynnik trafień, - długo się szuka bo trzeba porównywać etykiety linii z adresem do którego chcemy się dostać;
31
Opisz krótko czym jest i co zawiera kontekst procesu
Są to wszystkie informacje potrzebne do wznowienia zawieszonego wcześniej procesu. Obejmuje:, zawartość wszystkich rejestrów procesora (kontekst procesora), wartość wszystkich zmiennych (kontekst pamięci). Kontekst procesu jest statyczną strukturą danych;
32
Omów krótko ideę skoku opóźnionego. W jakim celu jest stosowany?
Skok opóźniony jest sprzętową metodą minimalizacji blokad wskutek rozgałęzień warunkowych i polega na tym że instrukcja po rozkazie skoku jest zawsze wykonywana;
33
Opisz krótko na czym polega strategia optymalnej wymiany stron
Stronicowanie na żądanie jest to sprowadzanie strony do pamięci operacyjnej tylko wtedy, gdy jest ona potrzebna. Nazywa się to także procedurą leniwej wymiany. Takie rozwiązanie zmniejsza liczbę wykonywanych operacji wejścia/wyjścia i zapotrzebowanie na pamięć operacyjną, ponieważ nie sprowadza się niepotrzebnych stron (pojedyncze wywołanie dużego wielofunkcyjnego programu może wymagać sprowadzenia jedynie niewielkiej części jego kodu). Dzięki temu zmniejsza się czas reakcji systemu. Można też obsłużyć większą liczbę użytkowników;
34
Opisz krótko pełny mechanizm translacji adresu stosowany w architekturze x86
Adres logiczny programu tłumaczony w procesie segmentacji na adres liniowy, który jest sumą adresu początkowego segmentu oraz przesunięcia względem segmentu. Adres liniowy w procesie stronicowania jest tłumaczony na adres fizyczny. Składa się on z fizycznego adresu strony oraz przesunięcia wewnątrz strony;
35
Co to stronicowanie?
podzielenie pamięci procesu na strony o ustalonym rozmiarze i adresach podzielnych przez ten rozmiar ✓ strona jest zawsze wyrównana do swojego rozmiaru ✓ musimy mieć znacznie więcej struktur danych ✓ dla każdej strony możemy ustawiać osobno prawa dostępu ✓ możemy procesowi przydzielić tylko kilka stron i wymieniać je w razie potrzeby ✓ znacznie większa kontrola nad przydziałem pamięci ✓ strony są wpisywane w dowolne miejsce pamięci fizycznej, tylko w tych strukturach danych mówiących, gdzie jest dana strona wpisuje się odpowiedni adres ramki (strony są zawartością ramek), a segmenty wymagają ciągłego obszaru pamięci, w który możemy go przypisać
36
Co to wektor?
Wektor przerwania – adres (indeks) procedury obsługi przerwania w tablicy przerwań (w niej znajdują się adresy procedury obsługi przerwań albo rozkazy skoku do procedury obsługi przerwania); liczba identyfikująca procedurę obsługi przerwania w tablicy wektorów przerwań Tablica wektorów przerwań jest umieszczana na początku przestrzeni adresowej (od adresu 0 zaczynają się wektory obsługi przerwań, a kod po resecie jest uruchamiany od adresu najwyższego – samych F (16)); w momencie przyjścia żądania przerwania wewnętrzne układy na podstawie tego, które to przerwanie, generują odpowiedni wektor tego przerwania i jest wykonywany skok do procedury obsługi tego przerwania.
37
Co to segmentacja?
Segment – ciągły blok pamięci, który ma adres początkowy, rozmiar, prawa dostępu Segmentacja w pigułce: 1. Selektor wskazuje na deskryptor w tablicy deskryptorów 2. W deskryptorze jest rozmiar, adres początkowy 3. Adres początkowy jest dodawany do przesunięcia 4. Po wytworzeniu adresu sprawdzane są wszystkie prawa (czy nie wykroczyliśmy poza rozmiar segmentu i czy możemy wykonać operację) 5. Tworzymy adres liniowy i przekazujemy do stronicowania (można je wyłączyć w intelu)
38
Rodzaje fragmentacji i opis.
Schematy przydziału • W pamięci stronicowanej: o Fragmentacjawewnętrzna(stronamaustalonyrozmiar,nieważneiledanych przechowujemy, zawsze jest przydzielona w całości) • W pamięci segmentowanej: o Fragmentacjazewnętrzna(zapełnieniedziurposegmentach,któretworzą bloki o małych rozmiarach i są porozrzucane)
39
Co to wyjątki i przerwania?
Przerwanie – sygnalizowane zdarzenie pojawiające się dookoła procesora, zgłaszane poprzez ustawienie sygnału na wyprowadzeniu procesora; mogą być zgłaszane np. zboczem albo poziomem; zdarzenie NIEZWIĄZANE z procesorem; asynchroniczne na zewnątrz procesora Wątek – sygnalizowane zdarzenie wewnątrz procesora, sygnalizujące, że coś się bardzo nie udało (dzielenie przez 0 np.); instrukcja zachowała się w sposób niemożliwy do zrealizowania