Architektura Systemów Komputerowych

Podobne dokumenty
Wprowadzenie do architektury komputerów. Model programowy procesora i jego struktura Procesory CISC i RISC

2 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.02 Rok akad. 2011/ / 24

Architektura komputerów

Rejestry procesora. Nazwa ilość bitów. AX 16 (accumulator) rejestr akumulatora. BX 16 (base) rejestr bazowy. CX 16 (count) rejestr licznika

UTK Można stwierdzić, że wszystkie działania i operacje zachodzące w systemie są sterowane bądź inicjowane przez mikroprocesor.

Architektura komputerów

Architektura komputerów

Programowanie Niskopoziomowe

Programowanie Niskopoziomowe

organizacja procesora 8086

Struktura i działanie jednostki centralnej

Architektura Systemów Komputerowych, Wydział Informatyki, ZUT

Organizacja typowego mikroprocesora

Architektura komputerów. Asembler procesorów rodziny x86

Programowanie niskopoziomowe

CPU. Architektura FLAGS Bit: dr Paweł Kowalczyk; DPTNS, KFCS UŁ. SI 16 bit. 16 bit. 16 bit.

Architektura Systemów Komputerowych. Jednostka ALU Przestrzeń adresowa Tryby adresowania

Technika mikroprocesorowa I Studia niestacjonarne rok II Wykład 2

Sprzęt i architektura komputerów

Materiały do wykładu. 4. Mikroprocesor. Marcin Peczarski. Instytut Informatyki Uniwersytet Warszawski

Adresowanie. W trybie natychmiastowym pole adresowe zawiera bezpośrednio operand czyli daną dla rozkazu.

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

Procesor ma architekturę rejestrową L/S. Wskaż rozkazy spoza listy tego procesora. bgt Rx, Ry, offset nand Rx, Ry, A add Rx, #1, Rz store Rx, [Rz]

Sprzęt i architektura komputerów

Technika mikroprocesorowa I Wykład 2

Rozszerzalne kody operacji (przykład)

J. Duntemann Zrozumieć Assembler Leo J. Scanlon Assembler 8086/8088/80286 S. Kruk Programowanie w Języku Assembler

Programowanie Niskopoziomowe

Procesor Intel 8086 model programisty. Arkadiusz Chrobot

Układ wykonawczy, instrukcje i adresowanie. Dariusz Chaberski

4 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.01 Rok akad. 2011/ / 24

Podstawy techniki cyfrowej Mikroprocesory. Mgr inż. Bogdan Pietrzak ZSR CKP Świdwin

Projektowanie. Projektowanie mikroprocesorów

Architektura komputerów. Komputer Procesor Mikroprocesor koncepcja Johna von Neumanna

Procesor Intel 8086 model programisty. Arkadiusz Chrobot

Lista instrukcji mikroprocesora Programowanie w assemblerze

Architektura komputerów

Pytania. W obecnie wykorzystywanych komputerach osobistych jest stosowana architektura: jednoszynowa. pamięciowo-centryczna.

Architektura Systemów Komputerowych

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

Procesory rodziny x86. Dariusz Chaberski

MIKROKONTROLERY I MIKROPROCESORY

Metody Realizacji Języków Programowania

Architektura Systemów Komputerowych

Budowa i zasada działania komputera. dr Artur Bartoszewski

Podstawy programowania w języku C i C++

Język programowania: Lista instrukcji (IL Instruction List)

Przykładowe pytania DSP 1

Wprowadzenie do Architektury komputerów. Asembler procesorów rodziny x86

Programowanie Niskopoziomowe

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

Materiały do wykładu. 7.Architekturax86. Marcin Peczarski. Instytut Informatyki Uniwersytet Warszawski

end start ; ustawienie punktu startu programu i koniec instrukcji w assemblerze.

Lista Rozkazów: Język komputera

Wstęp do informatyki. System komputerowy. Magistrala systemowa. Architektura komputera. Cezary Bolek

Budowa Mikrokomputera

Magistrala systemowa (System Bus)

Architektura komputera. Cezary Bolek. Uniwersytet Łódzki. Wydział Zarządzania. Katedra Informatyki. System komputerowy

PRYWATNA WYŻSZA SZKOŁA BUSINESSU, ADMINISTRACJI I TECHNIK KOMPUTEROWYCH S Y L A B U S

, " _/'--- " ~ n\l f.4e ' v. ,,v P-J.. ~ v v lu J. ... j -:;.",II. ,""", ",,> I->~" re. dr. f It41I r> ~ '<Q., M-c 'le...,,e. b,n '" u /.

Programowanie Niskopoziomowe

Jerzy Nawrocki, Wprowadzenie do informatyki

Mikrooperacje. Mikrooperacje arytmetyczne

Architektura systemów komputerowych. Lista instrukcji procesora

Zadanie Zaobserwuj zachowanie procesora i stosu podczas wykonywania następujących programów

Zarządzanie pamięcią operacyjną

Ćwiczenie nr 3. Wyświetlanie i wczytywanie danych

UTK jednostki wykonawczej EU (Ex ecution Unit), jednostki steruj c ej CU,

architektura komputerów w 1 1

Programowanie w asemblerze Środowiska 64-bitowe

Technika mikroprocesorowa. W. Daca, Politechnika Szczecińska, Wydział Elektryczny, 2007/08

Podstawy programowania skrót z wykładów:

Podstawy Techniki Mikroprocesorowej

BUDOWA I DZIAŁANIE MIKROPROCESORA

Konieczne odwzorowanie (mapping) obiektów: nazwa (+indeks) adres lokacja

Liczniki, rejestry lab. 08 Mikrokontrolery WSTĘP

Podstawy Informatyki

Kurs Zaawansowany S7. Spis treści. Dzień 1

Programowanie w asemblerze Wprowadzenie

Architektura systemów komputerowych. Arytmetyka maszyn cyfrowych

Architektura systemów komputerowych

CPU architektura i rejestry

Programowanie w języku Python. Grażyna Koba

Instrukcje warunkowe i skoku. Spotkanie 2. Wyrażenia i operatory logiczne. Instrukcje warunkowe: if else, switch.

Wstęp do informatyki. Maszyna RAM. Schemat logiczny komputera. Maszyna RAM. RAM: szczegóły. Realizacja algorytmu przez komputer

Architektura Systemów Komputerowych

Kod znak-moduł. Wartość liczby wynosi. Reprezentacja liczb w kodzie ZM w 8-bitowym formacie:

Architektura komputera. Dane i rozkazy przechowywane są w tej samej pamięci umożliwiającej zapis i odczyt

dr inż. Jarosław Forenc

Architektura systemu komputerowego. Działanie systemu komputerowego. Przerwania. Obsługa przerwań (Interrupt Handling)

1. Operacje logiczne A B A OR B

Logiczny model komputera i działanie procesora. Część 1.

ARCHITEKTURA PROCESORA,

Architektura potokowa RISC

Programowanie komputera

Jak wiemy, wszystkich danych nie zmieścimy w pamięci. A nawet jeśli zmieścimy, to pozostaną tam tylko do najbliższego wyłączenia zasilania.

Jednostka centralna. dr hab. inż. Krzysztof Patan, prof. PWSZ

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O

Architektura typu Single-Cycle

Transkrypt:

Architektura Systemów Komputerowych Wykład 4: Struktura użytkowego modelu programowego komputera Dr inż. Marek Mika Państwowa Wyższa Szkoła Zawodowa im. Jana Amosa Komeńskiego W Lesznie

Plan Pojęcie użytkowego modelu programowego Składniki modelu programowego Zestaw rejestrów procesora Tryby adresowania pamięci Model operacji warunkowych Lista instrukcji procesora

Użytkowy model programowy Jest to zestaw zasobów logicznych komputera dostępnych dla programisty piszącego program użytkowy w języku niskiego poziomu lub dla kompilatora translującego program użytkowy napisany w języku wysokiego poziomu do postaci asemblerowej Inne nazwy: Aplikacyjny model programowy Model programowy użytkownika Model programowy nie jest bezpośrednio związany z budową wewnętrzną procesora i komputera Czasami zamiast określenia model programowy używa się pojęcia architektura Oprócz modelu użytkowego istnieje model systemowy (będzie omawiany później)

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

Kompozycja modelu programowego Wszystkie składniki modelu programowego są ze sobą ściśle powiązane - nie da się zaprojektować jednego ze składników w oderwaniu od pozostałych Model ten jest często silnie powiązany z planowaną implementacją strukturą wewnętrzną procesora Dość często po latach się okazuje, że dany model programowy musi być zrealizowany w zupełnie innej strukturze procesora niż ta, dla której był projektowany (np. x86)

Funkcje rejestrów Akumulator: A A op src Rejestry adresowe: Bazowy Indeksowy Wskaźniki stosu / ramki Licznik pętli

Architektury zestawu rejestrów Brak (pamięć pamięć) Minimalny Mały zestaw rejestrów specjalizowanych Mały zestaw rejestrów uniwersalnych Duży zestaw rejestrów uniwersalnych Zestaw rejestrów jako bufor ramki stosu Stosowy zestaw rejestrów

Architektury bezrejestrowe Muszą zawierać 1 3 rejestrów (w tym PC) Operacje na danych typu pamięć-pamięć Obecnie prawie niespotykane Architektura move Lokacje przestrzeni adresowej odwzorowane w rejestry ( ukryte pod postacią komórek pamięci) Współczesny przykład: mikrokontrolery MAX Q firmy Maxim

Minimalny zestaw rejestrów PC licznik rozkazów SP wskaźnik stosu Akumulator (pełniący rolę rejestru wartości) Rejestr adresowy (do adresowania struktur danych) Przykład: Mikrokontrolery 8-bitowe Freescale (dawniej Motorola) rodziny 68HC08

Minimalny zestaw rejestrów CPU08 H A F X Akumulator Rejestr znaczników Rejestr adresowy SP PC Wskaźnik stosu Licznik rozkazów

Mały zestaw rejestrów specjalizowanych 6 8 rejestrów pełniących różne, sztywno określone funkcje Przykład x86 w trybie 16-bitowym Brak możliwości efektywnego wykorzystania rejestrów przez kompilator służą one wyłącznie do obliczeń i przechowywania wyników pośrednich

Rejestry x86 (tryb 16-bitowy) AX akumulator DX rozszerzenie akumulatora dla mnożenia i dzielenia CX licznik iteracji BX główny rejestr adresowy SP wskaźnik stosu BP wskaźnik ramki SI, DI pomocnicze rejestry adresowe IP licznik rozkazów FLAGS rejestr znaczników

Mały zestaw rejestrów uniwersalnych 6 8 rejestrów uniwersalnych Przykład x86 w trybie 32-bitowym 8 rejestrów (EAX, EDX, ECX, EBX, ESP, EBP, ESI, EDI) Wszystkie rejestry mogą służyć jako akumulatory i rejestry adresowe Wszystkie poza ESP, jako rejestry indeksowe 3 4 rejestry mogą być użyte dla zmiennych lokalnych lub parametrów Alokacja obiektów lokalnych w rejestrach przyspiesza wykonanie kodu

Duży zestaw rejestrów uniwersalnych 16 lub 32 rejestry uniwersalne Przykłady: MIPS, IBM Power 32 rejestry AMD64, IBM S/360, z Series 16 rejestrów Rejestry używane do przekazywania kilku parametrów i przechowywania kilku zmiennych lokalnych Znacząca redukcja odwołań do pamięci

Bufor wierzchołka stosu Duży zestaw rejestrów (32 128), który z założenia ma pełnić prawie całą ramkę stosu (bez zmiennych strukturalnych) Dwa rozwiązania: Okna rejestrów SPARC Bufor stosu Am29k, IA-64 (Itanium) Wykonanie procedury niemal bez odwołań do pamięci

Stosowy zestaw rejestrów 3 8 rejestrów tworzących stos Często brak nazw rejestrów Operacje wykonywane na wierzchołku stosu rejestrów Bezargumentowe / jednoargumentowe Argumenty pobierane z wierzchołka stosu Wynik odkładany na stos Przykłady: Transputery Jednostka zmiennopozycyjna x87

Tryby adresowania Pojęcie tryb adresowania oznacza sposób specyfikacji argumentu operacji W zawężonym ujęciu oznacza sposób określenia (obliczenia) danej w pamięci W szerszym ujęciu odnosi się również do rejestrów i stałych

Tryby adresowania nieodnoszące się do pamięci Natychmiastowy wartość danej zapisana w instrukcji Rejestrowy bezpośredni argument operacji w rejestrze

Tryby rejestrowe pośrednie Argument w pamięci, adres argumentu lub jego składnik zapisany w rejestrze Jest to tak zwany rejestr bazowy Warianty: Rejestrowy pośredni (prosty) adres w rejestrze Rejestrowy pośredni z przemieszczeniem adres jest sumą zawartości rejestru i stałej zapisanej w instrukcji Dwurejestrowy pośredni adres jest sumą zawartości dwóch rejestrów

Minimalny zestaw trybów adresowania Do efektywnej realizacji HLL są potrzebne tryby: Natychmiastowy Rejestr bezpośredni Jeden z rejestrowych pośrednich (zwykle rejestrowy pośredni z przemieszczeniem) niezbędny do wyliczania zmiennych adresów (np. tablica, ramka stosu)

Tryb absolutny (bezpośredni) Dana w pamięci, adres w instrukcji Najprostszy sposób adresowania skalarnych danych statycznych Nie jest niezbędny może być zastąpiony przez tryb rejestrowy pośredni z przemieszczeniem

Tryb z bazą w PC Tryby rejestrowe pośrednie, dla których rejestrem bazowym jest PC Wygodne do adresowania tablic adresów kodu (np. instrukcja switch) Dostępne w niektórych architekturach (MSP430, M68k) Mogą zastępować tryb absolutny Mogą być pożyteczne w procesorach 64-bitowych (AMD64)

Tryby indeksowe Adres powstaje przez zsumowanie adresu efektywnego odnoszącego się do pamięci (uzyskanego z innego trybu adresowania) z wartością rejestru, opcjonalnie pomnożoną przez stałą (skalę) będącą potęgą liczby 2 Rejestr nosi nazwę rejestru indeksowego Skala 1, 2, 4, 8, ew. 16 Mnożenie przez przesuwanie w lewo Przy skali 1 tryb nazywany jest indeksowym skalowalnym

Tryby z automodyfikacją bazy Tryby rejestrowe pośrednie, w których wartość rejestru bazowego jest modyfikowana o długość przesyłanej danej przed lub po wykonaniu przesłania danej Preinkrementacja, postinkrementacja, predekrementacja, postdekrementacja Niejawnie korzystają z nich operacje stosowe (przy realizacji stosu schodzącego PUSH predekrementacja, POP postinkrementacja)

Tryby pamięciowe pośrednie Dana jest zawarta w pamięci pod adresem, którego składnik jest zawarty w pamięci Dwukrotne odwołanie do pamięci Pożyteczne przy np. tablicach wskaźników Możliwość modyfikacji adresu przez dodanie przemieszczenia lub indeksowanie Obecnie rzadko spotykane kosztowne czasowo Dostępne w klasycznych architekturach CISC (np. VAX, M68k od modelu MC68020)

Model operacji warunkowych Określa sposób realizacji przez procesor operacji warunkowych Warianty: Model ze znacznikami Model bez znaczników ( porównaj i ) Model z predykatami

Model ze znacznikami Znaczniki jednobitowe rejestry atrybutów wyniku ostatnio wykonanej operacji (zwykle zgrupowane w jeden kilkubitowy rejestr) Operacja warunkowa realizowana za pomocą dwóch instrukcji: Ustawienie znaczników Instrukcja warunkowa zależna od ustawienia znaczników

Znaczniki Z (zero) zero Przyjmuje wartość 1 jeżeli wynik operacji wynosi 0 N/M (negative/minus) znak Kopia najbardziej znaczącego bitu wyniku operacji C/CY (carry) przeniesienie/pożyczka Przeniesienie wychodzące z najbardziej znaczącego bitu wyniku O/V/OV (overflow) nadmiar Nadmiar w kodzie U2 AC/HC (auxillary/ half carry) przeniesienie pomocnicze BCD Przeniesienie pomiędzy najmniej znaczącymi tetradami P (parity) parzystość Przyjmuje stan 1 jeśli liczba jedynek w najmniej znaczącym bajcie wyniku operacji jest parzysta

Zasady ustawiania znaczników Szczegółowe zasady ustawiania znaczników są zdefiniowane w dokumentacji modelu programowego danego procesora Wszystkie znaczniki są ustawiane przez podstawowe dwuargumentowe instrukcje arytmetyczne i logiczne Inne instrukcje (np. jednoargumentowe) nie zawsze wszystkie znaczniki W niektórych architekturach znaczniki zera i znaku są również ustawiane przez instrukcje przesłań (np. M68k. HC08)

Instrukcje warunkowe Instrukcja specyfikuje warunek wykonania Jeśli warunek nie jest spełniony instrukcja wykonuje się jako pusta Skoki warunkowe dostępne we wszystkich architekturach Przesłania warunkowe dostępne w nowszych procesorach Umożliwiają eliminację części skoków i przyspieszenie wykonania kodu Ustawienie (SET cc) Zamienia wartość logiczną warunku na wartość danej całkowitej Architektury z warunkowym wykonaniem większości instrukcji (np. ARM) Eliminacja znaczącej części skoków w rozwinięciach krótkich konstrukcji typu if then else

Warunki wykonania instrukcji Specyfikowanie jako wartości jednego znacznika lub wyrażenie logiczne na wartościach kilku znaczników Symboliczne oznaczenie nazwy warunku stanowi część nazwy instrukcji warunkowej (np. JNZ jump if not zero)

Rejestr znaczników w x86 12 11 10 9 8 7 6 5 4 3 2 1 0 OF SF ZF AF PF CF» OF nadmiar» SF znak» ZF zero» AF przeniesienie pomocnicze» PF parzystość» CF przeniesienie Znaczniki umieszczone są w rejestrze stanu procesora - EFLAGS

Warunki w x86 Nazwa cc Nazwa ~cc Definicja cc O NO OF C, B, NAE NC, NB, AE CF Z, E NZ, NE ZF BE, NA NBE, A CF or ZF S NS SF P,PE NP, PO PF L, NGE NL, GE SF and OF LE, NG NLE, G (SF and OF) or ZF

Model operacji warunkowych bez znaczników Pojedyncza instrukcja wartościuje relację i wykonuje operację jeśli relacja jest spełniona Np. skocz jeśli zawartości rejestrów są równe Charakterystyczny dla prostych procesorów RISC, np. MIPS

Model z predykatami Predykaty uogólnione znaczniki, mogą przechowywać wartość logiczną dowolnej wcześniej obliczonej relacji Duża liczba predykatów w procesorze możliwość równoczesnego przechowywania wartości wielu relacji Instrukcje w większości warunkowe, specyfikują numer predykatu jako warunek wykonania Model zaimplementowany w architekturze IA-64 (Itanium)

DZIĘKUJĘ ZA UWAGĘ!