Architektura systemów - Notatki - Informatyka, Notatki'z Informatyka. Opole University
Kowal_86
Kowal_868 March 2013

Architektura systemów - Notatki - Informatyka, Notatki'z Informatyka. Opole University

PDF (418.5 KB)
8 strona
2Liczba pobrań
748Liczba odwiedzin
Opis
Notatki dotyczące tematów z dziedziny informatyki: architektura systemów.
20punkty
Punkty pobierania niezbędne do pobrania
tego dokumentu
Pobierz dokument
Podgląd3 strony / 8
To jest jedynie podgląd.
Zobacz i pobierz cały dokument.
To jest jedynie podgląd.
Zobacz i pobierz cały dokument.
To jest jedynie podgląd.
Zobacz i pobierz cały dokument.
To jest jedynie podgląd.
Zobacz i pobierz cały dokument.

Architektura to atrybuty komputera widziane przez programistę • Zestaw instrukcji, bitowa reprezentacja danych, mechanizm wejścia-wyjścia, tryby

adresowania. • np. Czy dostępna jest instrukcja mnożenia ?

Organizacja to sposób realizacji architektury, odnosi się do jednostek operacyjnych i ich połączeń

• Sygnały sterowania, interfejsy, technologia pamięci. • np. Czy występuje dedykowana jednostka sprzętowa odpowiedzialna za operacje mnożenia,

czy jest ona realizowana poprzez wielokrotne dodawanie?

Komputery realizują następujące funkcje: • Przetwarzanie danych (Data processing) • Przechowywanie danych (Data storage) • Przenoszenie i duplikowanie danych (Data movement) • Sterowanie (Control)

Tasksonomii Flynna: SISD, MISD, NISD itd... Taksonomia Skillicorna: IP, DP, IM, DM

Mapa przestrzeni adresowej procesu użytkowego Cztery główne obszary - kod, dane statyczne, stos i sterta

Składniki modelu programowego • Zestaw rejestrów - liczba i funkcjonalność rejestrów procesora • Zestaw trybów adresowania - sposoby specyfikacji argumentów operacji • Model operacji warunkowych - sposób realizacji konstrukcji warunkowych • Lista instrukcji - zestaw operacji jakie może wykonać procesor

Funkcje rejestrów: • akumulator • rejestr adresowy • bazowy • indeksowy • wskaźnik stosu, ramki • licznik pętli

Minimalny zestaw rejestrów: PC, SP, akumulator, rejestr adresowy do adresowania struktur danych

RISC: • zredukowana liczba rozkazów do niezbędnego minimum • tylko dwa rodzaje instrukcji operują na pamięci: Load, Store • instrukcje arytmetyczne i logiczne operują tylko na danych w rejestrach i argumentach

natychmiastowych • proste instrukcje dają się wykonywać w prostej i szybkiej jednostce wykonawczej • instrukcje trójargumentowe • duży zestaw rejestrów • dłuższa postać binarna programu • wszystkie instrukcje mają taką samą długość obrazu binarnego

docsity.com

CISC: • Występowanie złożonych, specjalistycznych rozkazów (instrukcji) - które do wykonania

wymagają od kilku do kilkunastu cykli zegara • Szeroka gama trybów adresowania • Przeciwnie niż w architekturze RISC rozkazy mogą operować bezpośrednio na pamięci

(zamiast przesłania wartości do rejestrów i operowania na nich) • Powyższe założenia powodują iż dekoder rozkazów jest skomplikowany

Architektury Harvard Princeton Harvard-Princeton

Harvard

• oddzielne hierarchie pamięci programu i danych • wysoka wydajność dzięki możliwości równoczesnego pobierania instrukcji i operacji na

hierarchii pamięci danych • brak możliwości programowania

Princeton

• wspólna hierarchia pamięci programu i danych • możliwość programowania • wspólna hierarchia wyklucza równoczesne pobieranie instrukcji i danych

Harvard-Princeton

• Realizacja maszyny von Neumanna z oddzielnymi górnymi warstwami hierarchii pamięci i wspólnymi warstwami dolnymi.

• szybkie działanie dzięki równoległości dostępów • możliwość programowania

Co różni architektury Harward i Princeton? Architektura Harward posiada oddzielną strukturę pamięci instrukcji (IM -instruction memory) i strukturę pamięci danych(DM -data memory) (uniemożliwiona programowalność). Architektura Princeton posiada tylko jedną wspólną strukturę pamięci danych i instrukcji (istnieje niebezpieczeństwo samomodyfikacji kodu).

docsity.com

Tryby adresowania: • Natychmiastowy (Immediate) - wartość danej(argument) zapisana w instrukcji • Bezpośredni (Direct) - dana w pamięci, adres zapisany w instrukcji • Pośredni (Indirect) - dana jest zawarta w pamięci pod adresem którego składnik jest zawarty

w pamięci • Rejestrowy (Register) - argument operacji w rejestrze • Rejestrowy pośredni (Register Indirect) - Argument w pamięci , adres argumentu lub jego

składnik zapisany w rejestrze • Z przesunięciem (Displacement lub Indexed) • Stosowy (Stack)

Tryby adresowania proc. x86 32-bitowego Natychmiastowy MOV EAX,5 Rejestrowy ADD EAX, EBX Z przemieszczeniem MOV EAX, [245AH] Pośredni rejestrowy MOB EAX, [EBX] Baza-przemieszczenie MOV EAX, [EBX+4H] Index-skala-przemieszczenie MOV EAX, [EBX+ECX*4] baza-index-skala-przemieszczenie MOV EAX, [EBX*8+ECX+4]

Modele operacji warunkowych model ze znacznikami - W pierwszej fazie w wyniku wykonania operacji arytmetycznej lub logicznej zostają ustawione znaczniki – jednobitowe rejestry atrybutów wyniku. W drugiej fazie następuje wykonanie operacji zależne od stanu znaczników. model bez znaczników („porównaj i ...”) - pojedyncza instrukcja ewaluuje relację i wykonuje operację jeśli relacja jest spełniona np. „skocz jeśli zawartości rejestrów równe” model z predykatami - Predykaty – uogólnione znaczniki, mogą przechowywać wartość logiczną dowolnej wcześniej obliczonej relacji

Architektura x86: • CISC • Pierwotnie 16-bitowa, rozszerzona do 32 • Mały zestaw rejestrów uniwersalnych, 8 rejestrów, niektóre z przypisanymi funkcjami • Instrukcje głównie dwuargumentowe • Model operacji warunkowych ze znacznikami • Adres złożony z trzech składników [Rb+Ri*S+d]

Rb – rejestr bazowy – dowolny Ri – rejestr indeksowy – dowolny oprócz ESP S - skala 1,2,4,8 d – przemieszczenie lub adres absolut

• format instrukcji:

• Instrukcje skoku : bezwarunkowe, warunkowe

docsity.com

Architektura MIPS32: • RISC • Instrukcje o stałej długości – 32 bity • 32 rejestry stałopozycyjne • 32 rejestry zmiennopozycyjne f0..f31 • Brak sprzętowej realizacji stosu • 3 formaty instrukcji

Architektura ARM: • RISC, 32 bity • 16 rejestrów 32-bitowych • model operacji warunkowych z użyciem znaczników • warunkowe wykonanie niemal wszystkich instrukcji • dostępne operacje stosowe • Pierwotnie instrukcje 32-bitowe: trójargumentowe, większość instrukcji warunkowa –

instrukcje zawierają specyfikacje warunków wykonania • Współczesne procesory ARM mają drugi alternatywny zestaw instrukcji – Thumb,

instrukcje 16-bitowe - dwuargumentowe, ograniczony dostęp do części rejestrów, instrukcje warunkowe – tylko skoki

Procesor jednocyklowy: • Procesory o prostym modelu programowym można zrealizować w postaci układu

sekwencyjnego, który podczas każdej instrukcji zmienia stan tylko jeden raz – na końcu instrukcji

• Całe wykonanie instrukcji odbywa się w układzie kombinacyjny • rozdzielone pamięci programu i danych • Moduł wymiany danych z pamięcią jest bezczynny podczas instrukcji innych niż ładowanie

i składowanie danych • niska wydajność

Procesor wielocyklowy: • Architektura wielocyklowa minimalizuje liczbę bloków funkcjonalnych poprzez

wielokrotne wykorzystanie bloków podczas każdej instrukcji. Implikuje to konieczność rozbicia wykonania instrukcji na kilka faz - cykli

• Do sterowania wykonaniem służy skomplikowany układ sterujący będący złożonym automatem synchronicznym

• Wspólna pamięć programu i danych • wielofazowe wykonanie powoduje konieczność zapamiętania pobranej instrukcji • realizacja wielocyklowa jest nieco wolniejsza od jednocyklowej, niższe koszty

rekompensują niższą wydajność • CISC • W poszczególnych fazach wykonania instrukcji pracuje tylko część bloków wykonawczych

procesora • Przez większość czasu większość bloków procesora jest bezczynna • Pobieranie z wyprzedzeniem - prefetch

Prefetch: Realizacja pobierania z wyprzedzeniem – dodatkowe elementy procesora:

• dodatkowy rejestr PC, zwany scanPC umieszczony w jednostce interfejsu szyny

docsity.com

• rejestr instrukcji pobieranej „na zapas” (prefetch register) w jednostce interfejsu szyny • działanie: w fazie, w której interfejs szyny byłby bezczynny (zwykle faza dekodowania)

samoczynnie wykonuje on cykl pobrania instrukcji spod adresu zawartego w scanPC i zapisania jej do rejestru prefetch

• efekt: pominięcie fazy pobrania instrukcjiv Rozwinięcie: Instrukcje procesorów CISC mają różne długości. Podczas wykonywania instrukcji jednostka interfejsu szyny może być bezczynna przez kilka faz.Mogłaby ona pobierać kilka kolejnych słów, o ile byłoby gdzie je przechować.

• Rozwiązanie – zastąpienie pojedynczego rejestru prefetch buforem FIFO – tzw. kolejką instrukcji (instruction queue)

• Po wykonaniu skoku należy unieważnić zawartość kolejki i skopiować nextPC do ScanPC

Procesor potokowy: Sposób działania: cykl przetwarzania dzieli się na odrębne bloki przetwarzania, z których każdy oprócz pierwszego i ostatniego jest połączony z następnym. Dane po przejściu przez jeden blok trafiają do następnego, aż osiągną ostatni blok.

Podstawowym mankamentem techniki potoku są rozkazy skoku, powodujące w najgorszym wypadku potrzebę przeczyszczenia całego potoku i wycofania rozkazów, które następowały zaraz po instrukcji skoku i rozpoczęcie zapełniania potoku od początku od adresu, do którego następował skok

Superpotok: Potok wydłużony o długości powyżej 6 stopni jest nazywany superpotokiem

IF – Instruction First – początek pobierania Instrukcji IS – Instruction Second – zakończenie pobierania instrukcji RD – read -odczyt argumentów EX – Execute – odpowiednik ALU w R3000 DF – Data first – poczatek odwołania do danych DS – data second – Zakończenie transakcji z pamięcią danych DTC – Data Tag Check – finalizacja odwołania WB – Write Back – zapis wyniku do rejstru

• potrzeba zwiększenia liczby obejść

docsity.com

• opóźnienia mierzone w cyklach są większe niż w przypadku krótkiego potoku • odwołania do pamięci rozbite na dwie fazy. Pamięć ma budowę potokową dostęp następuje

w dwóch cyklach zegara. Równocześnie wykonywane są dwa dostępy do pamięci

Hazard R-A-W: Hazard wynika z umieszczenia w programie instrukcji odczytującej rejestr po instrukcji zapisującej rejestr np. addu $4, $3, $2 addu $6, $5, $4

Usuwanie hazardu R-A-W : • metoda” administarcyjna” : programiście nie wolno użyć takiej sekwencji instrukcji • wstrzymanie potoku po wykryciu hazardu • obejścia – to szyny poprowadzone ze stopni ALU i MEM do stopnia RD

Opóźnienie wynikające z dostępu do pamięci • dana odczytana z pamięci będzie dostępna w stopniu MEM • obejścia redukują opóźnienie, ale go nie eliminują

Procesor z transkodowaniem instrukcji: Procesor IDT C6 jest najprostszym przykładem procesora x86 z transkodowaniem instrukcji. Proste instrukcje CISC są zamieniane w jedną lub kilka instrukcji RISC w stopniu translatora. Bardziej skomplikowane instrukcje są translowane w RISCową instrukcję wywołania procedury z wbudowanej pamięci ROM. Zwykłe instrukcje trafiają wprost z kolejki instrukcji do pamięci. Wywołania procedur powodują uruchomienie pobierania instrukcji RISCowych z pamięci ROM.

Budowa i działanie procesora superskalarnego: • Pierwsze stopnie pobierają i dekodują równocześnie kilka instrukcji • Stopień inicjujący wykonanie kieruje instrukcje do indywidualnych potoków

wykonawczych • Potoki wykonawcze wykonują pojedyncze instrukcje • Stopień porządkujący decyduje o zatwierdzeniu wykonania instrukcji i modyfikacji

widocznego programowo rejestru PC • Stopień zapisu dokonuje nieodwracalnej modyfikacji kontekstu programowego (rejestrów i

pamięci)

Rodzaje procesorów superskalarnych: • pseudosuperskalar • superskalar z kolejnym wykonaniem instrukcji (in-order-execution)

docsity.com

• superskalar z kolejnym rozpoczynaniem i niekolejnym kończeniem instrukcji (in-oreder issue, out-of-order completion)

• superskalar z niekolejnym wykonywaniem instrukcji (out-of-order execution) hazardem W-A-R i W-A-W

Przemianowanie rejestrów: • Każda instrukcja opuszczająca stopień szeregujący otrzymuje „nowy” fizyczny rejestr

docelowy, zastępujący numer rejestru programowego

Blok kontrolny procesu: • Identyfikator • Status • Priorytet • Licznik programu • Wskaźniki pamięci • Dane kontekstowe • Stan I/O • Ewidencja informacji

Szamotanie (ang. thrashing) • Zbyt wiele procesów w zbyt małej pamięci • System operacyjny zajmuje się głównie wymianą stron • Użyteczna pracy wykonywana w małym stopniu (nawet wcale nie wykonywana) • Ciągła praca dysku

Segmentacja: • Stronicowanie niewidoczne (zwykle) dla programisty • Segmentacja dostępna dla programisty • Upraszcza zarządzanie rosnącymi strukturami danych • Możliwe jest wspólne wykorzystywanie danych przez różne procesy

Jednostka zarządzania pamięcią:

docsity.com

Bufor translacji przechowuje pewną liczbę ostatnio używanych ważnych deskryptorów stron.. • W znaczny sposób przyspiesza przetwarzanie adresu wirtualnego . • Jest kieszenią pełnoasocjacyjną lub zbiorowo-asocjacyjną o wysokiej asocjacyjności.

Deskryptor strony opisujące położenie i właściwości strony..

Protokół MESI Stany linii: M – modified – linia ważna, jedyna aktualna kopia we własne kieszeni, zawartość pamięci nieaktualna E – exclusive – linia ważna, jedyna kopia we własnej kieszen identyczna z zawartością pamięci I – invalid – linia nieważna S – shared – linia ważna, jednakowa kopia u wszystkich, identyczna z zawartością pamięci O – owned – linia ważna, jednakowa kopia u wszystkich, u pozostałych stan S, zawartość pamięci nieaktualna

docsity.com

komentarze (0)
Brak komentarzy
Bądź autorem pierwszego komentarza!
To jest jedynie podgląd.
Zobacz i pobierz cały dokument.
Docsity is not optimized for the browser you're using. In order to have a better experience we suggest you to use Internet Explorer 9+, Chrome, Firefox or Safari! Download Google Chrome