archi Flashcards
(39 cards)
Opisz krótko różnice między katalogiem stron a tablicą stron
Katalog stron zawiera wskaźniki do tablic stron, tablice stron przechowują adresy fizyczne stron ;
Wymień i opisz rejestry ogólnego przeznaczenia w architekturze x86
- 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;
Wymień i krótko opisz możliwe stany linii w modelu spójności MESI
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;
Opisz różnicę pomiędzy skalowanie silnym a słabym
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;
Czym się charakteryzują instrukcje serializujące w architekturze x86, podaj przykłady?
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;
Jakie działania należy podjąć w przypadku wystąpienia błędu braku strony?
- sprawdzić poprawność odwołania do strony w tablicy
- Znalezienie wolnej ramki pamięci w pamięci fizycznej
- Ściągnięcie strony z pamięci drugorzędnej
- Aktualizacja tablicy stron;
Podaj przykład braku ortogonalności w dowolnej architekturze komputera
dedykowane rejestry, eax:edx jako rejestr przechowujący wynik mnożenia w x86, licznik powtórzeń dla organizacji pętli ecx;
Wymień i krótko opisz klasy pamięci rozróżniane ze względu na sposób adresowania
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;
Na czym polega różnica między fragmentacją zewnętrzną a wewnętrzna? Podaj przykłady pojawiania się
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ć;
Czy przerwania różnią się od wyjątków?
Tak, przerwania są raczej zdarzeniami zewnętrznymi, a wyjątki wewnętrznymi;
Wymień i krótko opisz klasy możliwych argumentów instrukcji dostępnych w architekturze x86
- 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;
Wymień i krótko opisz algorytmy uprzedzającego (antycypowanego) pobierania danych
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;
Wymień i krótko opisz najczęściej używane flagi dostępne w rejestrze flag architektury x86
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;
Wymień główne elementy modelu komputera z programem przechowywany i podaj odpowiadające im elementy modelu maszyny Turinga
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;
Wymień i krótko opisz elementy składni języka asemblera (składnia AT&T)
data część z danymi zainicjowanymi, .bss część z danymi niezainicjowanymi, .text główny kod programu;
Wymień i krótko opisz różnice między architekturami RISC i CISC
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;
Wymień i krótko opisz różnice pomiędzy procesorem superpotokowym a super skalarnym
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;
Opisz krótko zjawisko szamotania
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;
Wymień i krótko opisz rodzaje konfliktów przetwarzania powodujących wstrzymanie potoku
- 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;
Opisz krótko różnicę pomiędzy przerwaniem precyzyjnym, a nie precyzyjnym
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;
Wymień elementy składające się na model programowy procesora
lista rozkazów, tryby adresowania, rejestry, typy danych, obsługa wyjątków i przerwań;
Wady i zalety odwróconej tablicy stron
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);
Opisz strukturę ramki stosu zdefiniowanej w ABI systemu V dla architektury x86
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
Opisz sposób obliczania adresu w pamięci i wymień wszystkie elementy, na podstawie których to przesunięcie jest obliczane
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);