Architektura komputerów
•
Typy architektur – zestawienie
•
DMA
•
Podsumowanie pojęć
Architektura von Neumann-a
•
Podstawowe elementy
–
Centralna jednostka przetwarzająca (CPU) - procesor
•
Jednostka sterująca (CU)
•
Jednostka arytmetyczno-logiczna (ALU)
•
Rejestry
–
Pamięć operacyjna
•
Wspólna dla instrukcji i danych
–
Podsystem wejścia/wyjścia
•
Sekwencyjne przetwarzanie instrukcji
•
Jedna „ścieżka” pomiędzy pamięcią a jednostką centralną
–
„Von Neumann bottleneck”
Architektura von Neumann-a
Arithmetic-Logic
Unit
Control Unit
Program Counter
Acumulator
Registers
Central Processing Unit
Input/Output
Main
Memory
Architektura Harvard (Princeton)
Control Unit
Program Counter
Registers
Central Processing Unit
Data
Memory
Acumulator
Code
Memory
Modyfikacja architektury Harvard-
Princeton
•
Podstawowa architektura H-P
–
Dostęp do danych zawartych w kodzie programu
wymaga ich skopiowania do pamięci danych
•
Zmodyfikowana architektura H-P
–
Pamięć kodu programu może być traktowana jak
pamięć danych tylko do odczytu
Modyfikacja architektury Harvard-
Princeton
CPU
Data
Memory
Code
Memory
CPU
Data
Memory
Code
Memory
Podstawowa
Architektura Harvard-Princeton
Zmodyfikowana
Architektura Harvard-Princeton
Układ : DMA
Bezpośredni dostęp do pamięci
Bus
Bez DMA
Memory
CPU
I/O
Bus
Z DMA
DMA
Memory
I/O
CPU
Bezpośredni dostęp do pamięci -
DMA
•
Direct Memory Access
–
Odciąża procesor od przesyłów danych między
podsystemami
–
Przyjmuje zadania transmisji od procesora
•
Kanał
•
Adres
•
Rozmiar
•
Kierunek
–
Zgłasza status zakończenia zadania
Bezpośredni dostęp do pamięci -
DMA
•
Realizacje
–
Scentralizowane - dedykowany kontroler DMA
–
Rozproszone - strategia dostępu do magistrali
•
Transmisje są wykonywane blokowo
•
Metoda rozrzuć-zbierz (ang. scatter-gather)
–
Obsługa niespójnych obszarów pamięci
•
Z wielu buforów do strumienia
•
Z jednego strumienia do wielu buforów
–
Zamiast pojedynczego adresu – wektor adresów
18
Podstawowe pojęcia
•
Pamięć
–
w ogólnym znaczeniu – blok funkcjonalny do przechowywania
informacji na określonym nośniku (zwykle magnetycznym lub
półprzewodnikowym)
–
pamięć RAM – pamięć półprzewodnikowa zbudowana z przerzutników
(SRAM) lub tranzystorów MOS (DRAM)
•
Rejestr
–
pamięć o niewielkiej pojemności (najczęściej 8, 16, 32 lub 64 bitów)
wbudowana do procesora lub innego układu cyfrowego VLSI,
wykonana zwykle jako SRAM (zbiór przerzutników)
•
ALU (arithmetic-logic unit)
–
arytmometr, główny element bloku wykonawczego procesora zdolny
do realizacji podstawowych operacji arytmetycznych i logicznych
•
FP (floating-point)
–
zmiennoprzecinkowy zapis liczb (znak, mantysa, wykładnik)
19
Podstawowe pojęcia
cd.
•
Pamięć cache
–
nazywana podręczną lub kieszeniową – dodatkowa pamięć buforowa
umieszczona między główną pamięcią komputera (operacyjną) a
procesorem; jej zadaniem jest przyspieszenie komunikacji procesora z
pamięcią główną
•
Potok instrukcji (pipeline)
–
ciąg instrukcji (zwykle kilku lub kilkunastu) pobranych przez procesor i
wykonywanych etapami, tak jak na taśmie produkcyjnej
•
Procesor superskalarny
–
procesor z wieloma potokami instrukcji i wieloma układami
wykonawczymi (arytmometrami)
•
Zegar
–
generator impulsów taktujących bloki funkcjonalne systemu cyfrowego
20
Podstawowe pojęcia
cd.
•
Język asemblera
–
język programowania operujący elementarnymi instrukcjami
zrozumiałymi dla procesora
•
Język wysokiego poziomu (C, C++, Pascal, Java)
–
język programowania operujący złożonymi instrukcjami, niezrozumiałymi
dla procesora; program przed wykonaniem musi być przetłumaczony na
język asemblera
•
Szyna, magistrala
–
zbiór linii przesyłających sygnały między blokami cyfrowymi systemu
(adresy, dane, sygnały sterujące)
•
I/O – input/output
–
układy wejścia/wyjścia do komunikacji z otoczeniem
21
Podstawowe pojęcia
cd.
•
Architektura CISC (np. Pentium)
–
Complex Instruction Set Computer
–
procesor wykorzystujący bogaty zestaw (listę) instrukcji i liczne
sposoby adresowania argumentów; charakterystyczną cechą jest
zróżnicowana długość instrukcji (w bajtach) i czas ich wykonania
•
Architektura RISC (np. PowerPC)
–
Reduced Instruction Set Computer
–
procesor wykorzystujący niewielki zbiór elementarnych rozkazów o
zunifikowanej długości i takim samym czasie wykonania
23
Funkcje i główne bloki komputera
•
Funkcje
–
przechowywanie danych
–
przesyłanie danych
–
przetwarzanie danych
–
funkcje sterujące
•
Bloki funkcjonalne
–
pamięć
–
podsystem I/O
–
procesor (arytmometr)
–
procesor (układ sterujący)
24
Bloki funkcjonalne komputera
Od 1946 r. komputery niezmiennie składają się z 5 tych
samych bloków:
Sterowanie
Arytmometr
Pamięć
Procesor
Wejście
Wyjście
25
Struktura komputera
26
Operacja 1 – przesyłanie danych
(I/O)
27
Operacja 2 – pamiętanie danych
28
Przetwarzanie z/do pamięci
29
Przetwarzanie z pamięci do I/O
30
Struktura komputera – wysoki
poziom
Computer
Main
Memory
Input
Output
Systems
Interconnection
Peripherals
Communications
lines
Central
Processing
Unit
Computer
31
Struktura CPU
Computer
Arithmetic
and
Logic Unit
Control
Unit
Internal CPU
Interconnection
Registers
CPU
I/O
Memory
System
Bus
CPU
32
Struktura układu sterowania
CPU
Control
Memory
Control Unit
Registers and
Decoders
Sequencing
Logic
Control
Unit
ALU
Registers
Internal
Bus
Control Unit
33
Podsumowanie
•
Architektura komputera oznacza jego właściwości „widziane”
przez programistę (struktura rejestrów, lista instrukcji itp..)
•
Organizacja komputera oznacza konkretną implementację
(realizację) architektury przy użyciu określonych układów i
bloków cyfrowych
•
Komputer składa się z 5 podstawowych elementów: układu
wykonawczego, układu sterowania, pamięci, układów wejścia i
wyjścia
•
Układ wykonawczy i sterujący tworzą jednostkę centralną
(CPU)