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 wejścia-wyjścia. 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 laczenie nie może być rozgalezione
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
Polaczeniami punkt punkty
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ń zewnętrznych.
•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 jednostki,
-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ństwo wybrania jednego z dwu symboli S1 i S2 jest równe 50%, formuła Shannona, dla p= 0.5 daje h(0.5) = -logb(0.5) = logb(2) = 1 wynika
stąd wartość podstawy logarytmu b = 2.
• Komunikat którego prawdopodobieństwo wystąpienia wynosi p, zawiera h(p) jednostek ilości informacji
• Zastosowanie logarytmu o podstawie 2
sprawia, że ilość informacji jest wyrażana w
za pomocą jednostki zwanej bitem (ang. bit
= kawałek).
• Uwaga:
– Jeżeli źródło wysyła tylko jeden komunikat,
którego prawdopodobieństwo wynosi p=1, to
niesie on k = log2(1/1) = 0 bitów informacji.
Ilość informacji / symbol kodu
• Średnia wartość informacji przypadająca na jedensymbol w zbiorze symboli danego kodu.
H = p1h(p1) + p2h(p...
plejusiek