Architektura komputera
• Architektura komputera – sposób
organizacji elementów tworzących
komputer.
• Systemy komputerowe dzieli się ze
względu na różne czynniki, najczęściej
jednak pod pojęciem architektury rozumie
się organizację połączeń pomiędzy
pamięcią, procesorem i urządzeniami
wejścia-wyjścia.
• Architektura Komputera składa się z trzech
głównych elementów:
• Instruction set architecture, (ISA), jest to
abstrakcyjny obraz systemu
obliczeniowego widziany z poziomu języka
maszynowego lub asemblera.
– Zawiera ona zbiór instrukcji, sposób
adresowania pamięci, rejestry procesora
oraz adresy i formaty danych.
• Microarchitecture, lub organizacja
komputera stanowi opis systemu
uwzględniający:
– wszystkie jego części,
– połączenia między nimi
– oraz opis ich współdziałania dla
implementacji ISA.
• Np. rozmiar pamięci podręcznej komputera
stanowi problem organizacyjny nie mający
nic wspólnego z ISA.
• System Design, zawiera pozostałe
składniki sprzętowe systemu takie jak:
– system połączeń – szyny i przełączniki,
– kontrolery pamięci i hierarchie, mechanizmy
dostępu do pamięci
• np. direct memory access, problemy
Wieloprocesorowości
Koncepcja programu
przechowywanego w pamięci
• W początkowym okresie programy były fizycznie
wbudowywane do jednostki sterującej (control
unit) w CPU.
• Panował wówczas pogląd:
– pamięć główna przeznaczona jest dla danych,
– CPU dla programu (Harvard architecture).
• Paradygmat ten został przełamany kiedy ktoś
(Eckert, czy von Neumann?) wpadł na pomysł
przechowywania programu, podobnie jak
danych, w pamięci głównej.
Architektura von Neumanna
• Architektura von Neumanna - rodzaj architektury
komputera, przedstawionej po raz pierwszy w 1945 roku
przez von Neumanna stworzonej wspólnie z Johnem W.
Mauchly'ym i Johnem Presper Eckertem.
– Jest to realizacja idei Leibniza, 1671
• Podstawą tej koncepcji jest przechowywanie programu i
danych w pamięci komputera.
Koncepcja architektury von Neumanna polega na podziale
komputera na cztery podstawowe części:
– Jednostka Arytmetyczno Logiczna ALU wykonująca działania na
danych binarnych.
– Jednostka sterująca interpretująca i wykonująca rozkazy z
pamięci
– pamięć zawiera dane programu i sam program (rozkazy)
– urządzenia wejścia/wyjścia
Komputer von Neumanna
• Pamięć główna przechowuje dane i
program
• Jednostka arytmetyczno-logiczna (ALU)
działa na danych binarnych
• Jednostka sterująca interpretuje oraz
wykonuje rozkazy z pamięci
• Urządzeniami we/wy steruje jednostka
Sterująca.
Elementy składowe CPU:
– PC licznik rozkazów (Program Counter)
– IR rejestr instrukcji (Instruction Register)
– MAR rejestr adresów pamięci (Memory Address
Register), lub cache memory.
– MDR rejestr danych (Memory Data Register)
– Flag Registers to1-bitowy rejestr przechowujący bity
informacji o stanie (state information).
• Lokalna pamięć o dużej szybkości (High speed
local storage).
– Dostęp do niej (tzn. transfer zawartości do ALU) jest
dużo szybszy niż dostęp do pamięci głównej.
Pozostałe rejestry (General Registers)
– Rejestry ogólnego przeznaczenia
• dostępne dla programisty (lub częściej dla projektanta kompilatora) z
poziomu języka niskiego poziomu
• używane dla przechowywania zmiennych, tymczasowych wyników, adresów
operandów, ...
• Jednostka sterująca (Control Unit)
– Generuje sekwencję sygnałów sterujących, które powodują:
• przesuwanie danych pomiędzy rejestrami
• dostarczenie nowej instrukcji
• załadowanie operandów do rejestrów
• przechowywanie wyników operandów w pamięci głównej
• uruchamianie operacji arytmetycznych / logicznych.
– Sekwencja sygnałów sterujących generowanych dla danej instrukcji
zależy od niej samej oraz od zawartości rejestru stanu (flag
register).
Jednostka Arytmetyczno Logiczna
• Jednostka Arytmetyczno Logiczna
(Arithmetic and Logic Unit (ALU))
• ALU wykonuje praktycznie wszystkie
operacje przetwarzające dane i
operacje porównywania,
– np. obliczenia, operacje logiczne,
operacje przesuwania, etc.
• ALU posiada:
– dwa rejestry wejściowe,
– jeden rejestr wyjściowy,
– rejestr operacyjny,
– i kilka rejestrów flagowych.
• Można powiedzieć, że cała reszta
CPU stanowi urządzenia peryferyjne w
stosunku do ALU, które zajmują się
wyborem operandów,
przechowywaniem wyników i
sterowaniem kolejnością operacji
dokonywanych w ALU.
ALU wykonuje operacje określone przez
zawartość jego rejestru operacyjnego.
– Po załadowaniu rejestrów wejściowych ustawiony
zostaje rejestr operacyjny.
– Rejestr wyjściowy zostaje załadowany wartością
funkcji wynikającej z dwu rejestrów wejściowych.
• Może być to wynik dodawania, odejmowania, mnożenia,
przesunięcia w lewo, negacji, AND, OR, ...
– W przypadku operacji przetwarzania danych wyniki z ALU będą
składowane w rejestrach ogólnych lub w pamięci.
– W przypadku operacji porównywania wynik porównania będzie
złożony w jednym z rejestrów flagowych stanu (flag registers).
• ALU wykonuje w danej chwili pojedynczą
operację.
Cykl instrukcja-wykonanie w
detalach
• Z punktu widzenia programisty instrukcje są wykonywane kolejno
(sequentially) i całościowo (atomically).
– ‘atomically’ oznacza, że każda instrukcja stanowi niepodzielną jednostkę
• Jest to iluzoryczne wrażenie wynikające z faktu, że sprzęt nie
pozwala na przerwanie wykonywania instrukcji.
• W rzeczywistości, wykonywanie instrukcji składa się z szeregu
kroków, każdy z nich określa przeniesienie lub zmianę danych.
• W procesie tym zaangażowane są specjalne rejestry CPU:
– PC,
– IR,
– MAR,
– MDR.
Struktura komputera
•Jednostka centralna (CPU,
procesor)-steruje działaniem
komputera i realizuje funkcje
przetwarzania danych
•Pamięć główna-przechowuje
dane
•Wejście/Wyjście-przenosi
dane między komputerem a
światem zewnętrznym
•Połączenia systemu mechanizmy
zapewniające
łączność między procesorem,
pamięcią główną
wejściem/wyjściem
Architektura szynowa
• Struktura szynowa, wprowadzona
w minikomputerach w latach 70-
tych XX wieku stała się
standardową strukturą komputerów
– np. PDP11.
• Zasadniczym elementem tej
architektury jest szyna, czyli zespół
połączeń pomiędzy modułami.
• Komputer składa się z pewnej
liczby modułów :
– jednego lub kilku procesorów,
– bloków pamięci i sterowników
dołączonych do szyny
• Pamięci i sterowniki urządzeń są
widziane przez procesor jako
określone lokalizacje w przestrzeni
adresowej – podobnie jak pamięć
Znaczenie architektury szynowej
• Architektura szynowa stanowi bardzo wygodny
schemat logicznej struktury komputera.
• Większość współczesnych komputerów,
niezależnie od implementacji, działa w oparciu o
logiczny schemat architektury szynowej.
• Architektura szynowa do 1995 stanowiła
podstawowy model konstrukcji komputerów PC,
stacji roboczych i serwerów
Architektura dwuszynowa
• Architektura
dwuszynowa zawiera
dwie szyny:
– Krótka, szybka szyna,
łączy procesor lub
procesory z pamięcią
– Do szyny powolnej,
podłączone są
sterowniki urządzeń
zewnętrznych.
• Obie szyny łączy układ
mostu.
• Rozwiązanie
stosowano w
komputerach PC w
latach 1995-98
• Logicznie obie szyny widziane są jako
jedna.
• Ograniczenia
– Niektóre urządzenia zewnętrzne potrzebują
szybkiej transmisji danych
Architektura trójszynowa
• Architektura trójszynowa,
stosowana w komputerach PC
pod koniec lat 90-tych, zawiera:
– szynę CPU-pamięć
– dwie szyny urządzeń
zewnętrznych
• szybka,
• i wolna.
• W strukturze tej występują dwa
mosty, zwane od swego położenia
na schemacie blokowym:
– mostem północnym, który łączy
CPU szyną szybkich urządzeń,
• np. PCI,
– mostem południowym, który łączy
CPU z szyną wolnych urządzeń,
• np. ISA.
• Po 2002 roku powolna szyna stała się
zbędna.
– Szybkie łącze nie może być rozgałęzione
Architektura PCI
• CPU o dużej wydajności potrzebują
bezpośredniego, szybkiego dostępu do
pamięci bez urządzeń pośredniczących.
• Dla komputerów wieloprocesorowych
szyna PCI jest zbyt wolna.
• Idea rezygnacji z szyny i zastąpienie jej
połączeniami punkt-punkt
Współczesny komputer
•Sterownik pamięci
umieszczony jest w
procesorze.
•Most północny jest
wyposażony w indywidualne
łącza dla sterowników
urządzeń zewnętrznych,
zrealizowane w standardzie
PCI express.
•Most południowy jest
zintegrowanym
sterownikiem urządzeń
•Szyna PCI została
zachowana w celu
umożliwienia podłączenia
starszych sterowników
urządzeń.
Spróbujmy zdefiniować ilość
Informacji
P(a) = P(e) = (1/2)2
P(b) = P(c) = P(f) = (1/2)3
P(d) = P(g) = (1/2)4
• Jednostką informacji jest taka
jej ilość, którą uzyskujemy po
stwierdzeniu, że zaszło jedno z
dwu jednakowo
prawdopodobnych zdarzeń.
A więc:
– komunikaty a, e zawierają 2
jednostki,
– komunikaty b, c, f po 3
– komunikaty d,g po 4 jednostki.
Miara informacji
• Przyjmując definicję informacji jako
czynnika zmniejszającego niepewność,
Shannon wprowadził funkcję (informationgenerating
function) h(p), która jest
określona na zbiorze N niezależnych stanów
a1, ... ,aN i N odpowiadających im
prawdopodobieństw p1, ... ,pN i określa ilość
generowanej informacji.
Miara ilości informacji
• Można pokazać, że funkcją która spełnia postulowane
własności jest:
h(p) = logb(1/p) = – logb(p)
• Podstawa logarytmu „b” w formule Shannona jest
związana z jednostką informacji reprezentującą wybór
pomiędzy dwoma jednakowo prawdopodobnymi
możliwościami.
• Zakładając, że prawdopodobień...
plejusiek