Architektura komputerów

Slides:



Advertisements
Podobne prezentacje
Tryby adresowania Prawie każda operacja wykonywana przez mikroprocesor wykonywana jest na pewnych argumentach (lub argumencie). Sposoby wskazywania argumentów.
Advertisements

Wirtualizacja zasobów w systemach operacyjnych
Sieci komputerowe Protokół TCP/IP.
Wykonał : Marcin Sparniuk
Wykład 3: Jak działa typowy mikroprocesor?
Moduł 2. Struktury Systemów Komputerowych
SYSTEMY OPERACYJNE ZARZĄDZANIE PAMIĘCIĄ
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE
SYSTEMY OPERACYJNE ZARZĄDZANIE PAMIĘCIĄ OPERACYJNĄ
Lista rozkazów Działanie mikroprocesora jest kontrolowane poprzez rozkazy (instrukcje). Dla każdego typu mikroprocesora istnieje specyficzny zbiór rozkazów,
Systemy plików FAT12, FAT16, FAT32, NTFS.
Podstawowe składniki funkcjonalne procesora i ich rola.
Systemy operacyjne Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
Architektura Systemów Komputerowych
Wykład nr 7: Synchronizacja procesów
Systemy operacyjne Wykład nr 5: Wątki Piotr Bilski.
Wykład nr 1: Wprowadzenie. Pojęcia podstawowe
Systemy operacyjne Wykład nr 4: Procesy Piotr Bilski.
Wykład nr 10: Pamięć wirtualna
Wykład nr 9: Zarządzanie pamięcią
Wykład nr 2: Struktura systemu komputerowego a system operacyjny
Magistrala & mostki PN/PD
Procesory rodziny Intel
Komputer, procesor, rozkaz.
Procesory RISC.
Autorzy: Łukasz Sztandarski Bartłomiej Granat
Systemów Operacyjnych
Wieloprocesowy system operacyjny dla komputerów ATARI XL/XE
Mikroprocesory i mikrokontrolery
Systemy plików.
Systemy plików FAT12, FAT16, FAT32, NTFS.
Architektura komputerów
Podstawy programowania II
przykładowy 8-bitowy mikroprocesor uniwersalny CISC
Technika Mikroprocesorowa 1
Technika Mikroprocesorowa 1
Dekodery adresów.
Architektura komputerów
Mikrokontrolery PIC.
RODZAJE TRANSMISJI PRZESYŁANIE INFORMACJI W MODELU WARSTWOWYM
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE
Architektura komputerów
Podstawy działania wybranych usług sieciowych
Mikroprocesory mgr inż. Sylwia Glińska.
Jednostki w informatyce i system binarny (dwójkowy)
Systemy plików FAT, FAT32, NTFS
Informatyka I Wykład 4 Stałe Stałe liczbowe Stałe znakowe Stałe tekstowe Jerzy Kotowski Politechnika Wroclawska var = 5L - 0xA; -5.
Pamięć komputerowa S t r u k t u r a p a m i ę c i.
Jednostki używane w informatyce
Architektura PC.
Systemy operacyjne Zarządzanie pamięcią — przykłady realizacji
Wykład 9 Zarządzanie pamięcią operacyjną
Systemy plików Bibliografia: Windows XP. Komendy i polecenia. Praktyczne przykłady, P. Czarny Windows XP. Naprawa i optymalizacja, B. Danowski Windows.
Asembler MCS51. Budowa programu w asemblerze W ogólnym przypadku linia programu w asemblerze ma następującą budowę: na przykład: tuskocz:adda,r0 ;dodanie.
Procesor – charakterystyka elementów systemu. Parametry procesora.
WYKŁAD 3 Temat: Arytmetyka binarna 1. Arytmetyka binarna 1.1. Nadmiar
System plików.
Procesor, pamięć, przerwania, WE/WY, …
Pamięć DRAM.
Struktura wewnętrzna mikrokontrolera zamkniętego
Architektury procesorów rdzeniowych mikrokontrolerów.
Pamięć SRAM.
Procesy, wątki Program a proces Proces: Przestrzeń adresowa, kod, dane, stos (część pamięci do przechowania zmiennych lokalnych i niektórych adresów) Otwarte.
Tryby adresowania i formaty rozkazów mikroprocesora
SYSTEM PLIKÓW Źródło: Systemy operacyjne i sieci komputerowe - HELION.
Organizacja i Architektura Komputerów
Organizacja i Architektura Komputerów
Technika Mikroprocesorowa 1
Format rozkazu Tryby adresowania.
Zapis prezentacji:

Architektura komputerów Wykład nr 5: Sposoby adresowania Piotr Bilski

Skąd potrzeba różnych trybów adresowania? Przestrzeń pamięci rzeczywistej lub wirtualnej jest zwykle większa od przestrzeni adresowanej przez argument (zbyt mała liczba bitów) Konieczny jest kompromis pomiędzy zakresem adresów i prostotą uzyskiwania adresu

Adres rzeczywisty (efektywny) a adres wirtualny Adres rzeczywisty jest adresem fizycznego miejsca w pamięci Adres wirtualny (efektywny - AE) jest adresem przechowywanym jako argument rozkazu Proces translacji adresu wirtualnego na rzeczywisty jest zależny od organizacji pamięci

Konwencja zapisu AE – adres efektywny R – zawartość pola adresowego w rozkazie odnoszącym się do rejestru A – zawartość pola adresowego w rozkazie (X) – zawartość lokacji X

Tryby adresowania Natychmiastowy Bezpośredni Pośredni Rejestrowy Rejestrowy pośredni Z przesunięciem Stosowy

Tryb natychmiastowy 0 3 4 15 Kod operacji Wartość argumentu Argument jest przechowywany w rozkazie w postaci liczby o reprezentacji U2. Liczba ta nie może być zbyt duża

Tryb bezpośredni AE = A 0 3 4 15 Kod operacji Adres argumentu pamięć 0 3 4 15 Kod operacji Adres argumentu pamięć Argument AE = A

Tryb pośredni AE = (A) Możliwe zagnieżdżenia! 0 3 4 15 Kod operacji 0 3 4 15 Kod operacji Adres informacji o adresie argumentu pamięć AE = (A) Argument Możliwe zagnieżdżenia!

Tryb rejestrowy AE = R 0 3 4 15 Kod operacji Nazwa (numer rejestru) 0 3 4 15 Kod operacji Nazwa (numer rejestru) rejestry Argument AE = R

Tryb rejestrowy pośredni 0 3 4 15 Kod operacji Nazwa (numer) rejestru rejestry pamięć Adres Argument AE = (R)

Tryb z przesunięciem AE = (A)+(R) 0 3 4 15 Kod operacji 0 3 4 15 Kod operacji Nazwa (numer) rejestru Adres argumentu rejestry pamięć Adres Argument AE = (A)+(R)

Adresowanie z przesunięciem c.d. Adresowanie względne (R=PC) Adresowanie z rejestrem podstawowym (wygodne dla pamięci segmentowanej) – AE=R+A Indeksowanie (interpretacja pola rejestru i pola adresowego odwrotna niż w przypadku adresowania z rejestrem podstawowym) – AE=A+R

Adresowanie z przesunięciem c.d. Adresowanie z rejestrem podstawowym Indeksowanie (wykorzystuje dedykowany rejestr indeksowy) 0 3 4 15 Kod operacji Rejestr z adresem argumentu Wartość przesunięcia 0 3 4 15 Kod operacji Rejestr z przesunięciem Adres argumentu

Tryb stosowy 0 3 4 15 Kod operacji Adres argumentu stos rejestry 0 3 4 15 Kod operacji Adres argumentu stos rejestry Rejestr stosu

Typy adresów Fizyczny – umiejscowienie adresu w pamięci Logiczny – umiejscowienie adresu względem początku programu Bazowy – adres początku programu

Organizacja pamięci z poziomu systemu operacyjnego Pamięć stronicowana (model niewidzialny dla programisty) – podzielona jest na małe fragmenty (ramki stron), które przydzielane są fragmentom (stronom) programów Pamięć segmentowana (model dostępny dla programisty) – zapewnia odrębną przestrzeń adresową dla każdego procesu

Partycjonowanie z ustalonym rozmiarem Jest to podział pamięci na fragmenty o ustalonych rozmiarach (stałych lub zmiennych) 16 MB (SO) 16 MB 16 MB (SO) 4 MB 8 MB 16 MB

Partycjonowanie z rozmiarem dynamicznym Jest to podział pamięci na fragmenty o rozmiarach zależnych od zapotrzebowania procesów 16 MB (SO) 48 MB wolne 16 MB (SO) Proces 1 (20 MB) 28 MB wolne 16 MB (SO) Proces 1 (20 MB) Proces 2 (16) MB 12 MB wolne 16 MB (SO) Proces 3 (18 MB) Proces 2 (16) MB 12 MB wolne

Stronicowanie Proces A: pamięć pamięć Strona 0 Strona 1 11 Strona 2 11 12 13 14 15 16 17 18 11 12 13 14 15 16 17 18 Strona 0 Strona 1 Tablica stron procesu A: 11 12 15 Wolne ramki: 11 12 15 16 18 Strona 2

Adresy fizyczne i logiczne w strukturze stron pamięć Adres logiczny Adres fizyczny 11 12 13 14 15 16 17 18 Strona 0 1 30 12 30 Strona 1 Tablica stron procesu A: 11 12 15 Strona 2

Translation Lookaside Buffer Pamięć podręczna dla ostatnich translacji adresów w pamięci Bardzo szybka i mała TLB współpracuje z „prawdziwą” pamięcią podręczną Niewłaściwy projekt prowadzi do problemów w systemie (patrz procesory Phenom)!

Bufor translacji adresów (TLB) START TAK Zapis w TLB? Sprawdzanie TLB Aktualizacja TLB NIE Dostęp do tablicy stron Generacja adresu fizycznego NIE Obsługa błędu strony Strona w pamięci? TAK STOP

Segmentacja Prostota zarządzania strukturami danych o zmiennej wielkości Możliwość indywidualnego przypisywania praw procesom do poszczególnym segmentom Możliwość użytkowania segmentu przez wiele procesów Adresowanie: numer segmentu + adres względny

Przestrzenie adresowe Pentium Niesegmentowana pamięć niestronicowana (adres wirtualny = adres fizyczny) - sterowniki Niesegmentowana pamięć stronicowana (BSD) Segmentowana pamięć niestronicowana Segmentowana pamięć stronicowana (UNIX System V)

Segmentacja w Pentium II Adres wirtualny Odniesienie do segmentu Adres względny 16 bitów 32 bity 2 bity odniesienia do segmentu przeznaczone na mechanizm ochrony Adres względny pozwala adresować 232 = 4 GB pamięci Całkowita ilość adresowanej pamięci wynosi 216 x 232 = 64 TB Dostęp procesu do segmentu zależny jest od poziomu dostępności (oznaczany cyfrą od 0 – najwyższy do 3 - najniższy)

Selektor i deskryptor segmentu 16 3 2 1 0 Indeks TI PRV 31 D/B AVL Baza 31-24 GS 19-16 G P DPL S Type Baza 23-16 Baza 15-0 Granica segmentu 15-0

Stronicowanie w Pentium II Istnieje katalog stron o długości 1024 wpisów, dzielący pamięć na tyleż grup stron Każda grupa stron zawiera do 1024 wpisów Każda strona ma rozmiar 4 kB lub 4MB (w zależności od wartości bitu PSE) Tablice stron mogą być przechowywane w pamięci wirtualnej Bufor translacji adresów zawiera do 32 zapisów tablic stron dla określonego katalogu stron

Stronicowanie/segmentacja w Pentium II

Tryby adresowania Pentium Pentium posiada sześć rejestrów segmentowych (SR) do przechowywania adresów początkowych segmentów Z rejestrem segmentowym związany jest rejestr deskryptora segmentu (zawiera prawa dostępu do segmentu i jego długość) Dodatkowe rejestry (podstawowy i indeksowy) pomagają budować adres

Tryby adresowania Pentium c.d. Natychmiastowy (Arg = A) Rejestrowy (AL = R) Z przesunięciem (AL = (SR) + A) Z rejestrem podstawowym (AL = (SR) + (B)) Z rejestrem podstawowym z przesunięciem (AL = (SR) + (B) + A) Skalowane indeksowanie z przesunięciem (AL = (SR) + (I) x S + A) Z rejestrem podstawowym z indeksem i przesunięciem (AL = (SR) + (B) + (I) + A) Z rejestrem podstawowym ze skalowanym indeksem i przesunięciem (AL = (SR) + (I) x S + (B) + A) Względny (AL = (PC) + A)

Ilustracja trybów adresowania Pentium Rejestr segmentu Rejestr indeksowy Rejestr bazowy Selektor Pamięć Adres bazowy segmentu Skala Przemieszczenie Adres liniowy Rejestr deskryptora Granica

Zarządzanie pamięcią w PowerPC Implementacja zależna jest od architektury (32- lub 64-bitowej – prostsza lub bardziej złożona segmentacja) Mechanizm translacji adresu bloku stosowany jest jako alternatywa dla mechanizmu stronicowania – pozwala ominąć stronicowanie dla dużych bloków pamięci Posiada 16 rejestrów segmentowych

Adres efektywny i rzeczywisty PowerPC Adres rzeczywisty 0 3 4 19 20 31 Segment Strona Selektor bajtu 0 19 20 31 Numer strony rzeczywistej Wyrównanie bajta

Tryby adresowania PowerPC Pośredni (AE = (BR) + D ) Pośredni indeksowany (AE = (BR) +(IR)) Adresowanie rozgałęzień Bezwzględny (AE = I) Względny (AE = (PC) +I) Pośredni (AE = (LR/CR)) Rejestrowy stałopozycyjny (AE = GPR) Natychmiastowy (Arg = I) Rejestrowy zmiennopozycyjny (AE = FPR)

Format rozkazu Długość rozkazu jest ograniczona przez szerokość stosowanych magistral Długość rozkazu powinna być równa szerokości magistrali lub jej wielokrotności Konieczny jest kompromis pomiędzy liczbą bitów przeznaczoną na kod rozkazu a przestrzenią adresową Rozkazy zawierające kody o zmiennej długości są bardziej elastyczne

Kryteria projektowania rozkazów Liczba trybów adresowania Liczba argumentów Liczba rejestrów i ich zestawów Zakres adresów Stopień granulacji adresu (adresowanie po bajcie, czy po słowie?)

Przykład formatu w PDP-8 Rozkazy i dane o długości 12 bitów Jeden rejestr – akumulator Pamięć jest podzielona na strony o długości 27 = 128 słów Ósmy bit jest znacznikiem numeru strony

Rozkazy PDP-8 Rozkazy z odniesieniem do pamięci 0 2 3 4 5 11 Operacja D/I Z/C Przemieszczenie Rozkazy wejścia/wyjścia 0 2 3 8 9 11 1 1 0 Urządzenie Kod operacji Mikrooperacje i rozkazy z odniesieniem do rejestrów 0 3 4 5 6 7 8 9 10 11 1 1 1 x CLA CLL CMA CML RAR RAL BSW IAC

Rozkazy PDP-10 Elementy instrukcji są ortogonalne Adresowanie wyłącznie bezpośrednie 36-bitowy rozkaz i dane 0 8 9 12 13 14 17 18 35 Operacja Rejestr I Rejestr indeksowy Adres w pamięci

Format rozkazów Pentium 0-4 B 1-2 B 0-1 B 0-1 B 0-4 B 0-4 B Przedrostki Kod operacji ModR/M SIB Przesunięcie Natychmiastowe Specyfikator adresu

Format rozkazów PowerPC 6 b 5 b 5 b 16 b Operacja Opcje/rejestr Opcje/rejestr przeznaczenia źródłowy Wszystkie rozkazy mają długość 32 bitów!