Wykład
Temat:
Struktura blokowa komputera, mikroprocesory,
mikrokomputery, stacje robocze, serwery.
Rozdziały wykładu:
1. Struktura blokowa komputera
2. Pojęcie i architektura mikroprocesora
2.1 Ewolucja układów półprzewodnikowych
2.2 Ewolucja mikroprocesorów
2.3 Architektura mikroprocesorów 8 bitowych
2.4 Układy arytmetyczno-logiczne mikroprocesorów
2.5 Parametry mikroprocesorów
2.6 Mikroprocesory 16 i więcej bitowe
3. Pojęcie i architektura mikrokomputera
4. Mikroprocesory i mikrokomputery segmentowe
5. Pojęcie i architektura stacji roboczej i serwera
Struktura blokowa komputera
Podstawowy schemat blokowy komputera von Neumana zawiera cztery bloki
składowe:
•
układ sterujący
•
układy arytmetyczno logiczne
•
pamięć operacyjna
•
układy wejścia/wyjścia
Bloki te są połączone na schemacie liniami ciągłymi i przerywanymi, które
symbolizują drogi przesyłania danych i sygnałów sterujących.
Ogólny schemat blokowy komputera o modelu architekturalnym von
Neumana
Układy
we/wy
Pamięć operacyjna
Układ sterujący
Układy
arytmetyczno – logiczne
(ALU)
dane
sygnały sterujące
Jednostka
centralna
- procesor
(CPU)
Układ sterujący, układy arymetyczno-logiczne oraz zespół rejestrów
komputera składają się na tzw. procesor komputera inaczej jednostkę
centralną, centralny procesor (ang. processor, central processing unit,
central processor - CPU).
Układ sterujący
Układ sterujący (ang. control unit) pobiera rozkazy języka wewnętrznego z
pamięci operacyjnej, dekoduje je i wytwarza sygnały sterujące dla
pozostałych trzech bloków komputera.
Układ sterujący przesyła dane do bloku arytmetyczno-logicznego lub układów
wejścia/wyjścia, wtedy np. gdy zdekodował instrukcję zawierającą w sobie
bezpośrednio dane.
Układ sterujący pobiera dane z układów arytmetyczno-logicznych jeśli wynik
ich działania ma wpływ na przebieg sterowania w programie, np. stany
przerzutników kontrolnych istotne dla instrukcji warunkowych, np. skoku
warunkowego.
Układ sterujący zawiera w sobie rejestry adresowe (ang. address registers)
służące do przechowywania adresów pamięci w trakcie wykonywania
programu.
Układ sterujący zawiera zwykle dodatkowe rejestry służące do tymczasowego
przechowywania informacji o stanie obliczeń w komputerze: (rejestr stanu –
ang. status register), wskaźniki do ważnych obszarów pamięci operacyjnej
(rejestry wskaźników ang. pointer registers), itp.
Układ sterujący przesyła dane do pamięci komputera, gdy wykonuje
instrukcje związane ze sterowaniem w programie, np. instrukcję skoku do
podprogramu, gdy adres powrotu musi być zapamiętany w stosie
(zrealizowanym w pamięci) lub też przy obsłudze przerwań, gdy trzeba
zapamiętać w stosie stan procesora i adres powrotu do przerywanego
programu.
Układ sterujący może zawierać, obecnie już powszechną w komputerach,
pamięć podręczną lub inaczej pamięć schowkową (ang. cache memory), w
której przechowywane są bieżące instrukcje wykonywanego programu. Może
to być pamięć schowkowa wspólna dla instrukcji i danych albo odrębna
pamięć schowkowa instrukcji.
Pamięć operacyjna
Pamięć operacyjna komputera (ang. operational memory) stanowi pamięć,
która przechowuje przechowuje aktualnie wykonywane programy wraz z ich
danymi.
Pamięć operacyjna może dostarczać dane (lub być źródłem danych) dla
wszystkich trzech pozostałych bloków komputera.
Dla wielu instrukcji (np. instrukcji sterujących wykonaniem programu, takich
jak np. instrukcje skoku do podprogramu, powrotu z podprogramu) danymi są
adresy pamięci operacyjnej.
Pamięć operacyjna
Układy arytmetyczno-logiczne (ang. arithmetical/logical units - ALU)
otrzymują od układu sterującego zdekodowane instrukcje do wykonania.
Układy arytmetyczno-logiczne zawierają w sobie bloki wykonawcze,
wykorzystywane do realizacji instrukcji arytmetycznych i logicznych
komputera.
Układy arytmetyczno-logiczne zawierają w sobie robocze rejestry
uniwersalne (ang. general purpose registers) służące do tymczasowego
przechowywania danych potrzebnych dla wykonania operacji arytmetycznych
i logicznych.
Układy arytmetyczno-logiczne wykorzystują obecnie już powszechnie
pamięć podręczną (schowkową) danych, którą umiejscawiamy w tym
bloku.
Jeśli instrukcja wymaga pobrania (odesłania) danych z (do) pamięci
operacyjnej, układ sterujący realizuje sprzętowo odpowiednią operację z tym
związaną, przekazując dane do pamięci podręcznej i rejestrów roboczych.
Układ arytmetyczno-logiczny otrzymuje od układu sterującego dane
natychmiastowe z instrukcji oraz odsyła do układu sterującego informacje o
stanie wykonywania programu (bity z przerzutników warunków) generowane
po operacjach arytmetycznych i logicznych.
Układy arytmetyczno-logiczne wykonują (w niektórych mniej
rozbudowanych komputerach) operacje arytmetyczne związane z
adresowaniem instrukcji następnych do wykonania.
Układy wejścia/wyjścia
Układy wejścia/wyjścia (ang. input/output units) realizują współpracę
komputera z tzw. urządzeniami zewnętrznymi lub inaczej peryferyjnymi
(ang. external devices lub peripheral devices).
Do urządzeń zewnętrznych zaliczamy urządzenia, które pozwalają
wprowadzać informacje (dane, programy, polecenia) do komputera oraz
urządzenia do wyprowadzania wyników programów (dane i programy).
Urządzeniami zewnętrznymi są klawiatura, myszka, joy-stick, monitor,
wszelkie urządzenia wyświetlające obrazy (np. telewizor, rzutnik obrazu),
wszelkie urządzenia wprowadzające obrazy (np. kamery video, telewizory,
czytniki płyt CD, DVD), wszelkie urządzenia dźwiękowe (głośniki,
rejestratory dźwięku), urządzenia do transmisji informacji (np. modemy,
sterowniki sieciowe), itd.
Do urządzeń zewnętrznych zaliczamy wszelkie typy pamięci dodatkowej lub
inaczej pamięci peryferyjnej (ang. secondary store (memory) lub
peripheral memory (store)) komputera takich jak pamięć magnetyczna na
dyskach elastycznych i sztywnych, pamięci magnetyczne taśmowe, pamięć
optyczna na dyskach kompaktowych (CD), pamięć DVD, itp.
Układy wejścia/wyjścia zawierają sprzętowe układy sterowników
(wyposażone co najmniej w rejestry a często tez inne formy pamięci nawet o
dużych pojemnościach), które z jednej strony są dostępne dla komputera a z
drugiej strony dla urządzeń zewnętrznych.
Układy wejścia/wyjścia realizują instrukcje wejścia/wyjścia umieszczane w
programach (w języku wewnętrznym) komputera.
W wyniku instrukcji wejścia/wyjścia następuje wymiana informacji między
urządzeniami pamięciowymi układów wejścia/wyjścia a pamięcią komputera.
Pojęcie i architektura mikroprocesora
Procesor zbudowany w technologii układów scalonych (ang. integrated
circuit technology), przeważnie w postaci jednego układu scalonego,
nazywamy mikroprocesorem (ang. microprocessor).
Zanim procesory były budowane w postaci układów scalonych, były one
budowane w tzw. technologii układów dyskretnych, przy której czynne
elementy elektroniczne składające się na układy cyfrowe, takie jak diody,
tranzystory, oraz bierne elementy takie jak oporności, kondensatory, itp. były
wytwarzane w postaci osobnych części, które były następnie montowane na
płytach.
Początkowo połączenia między elementami prowadzone były postaci
przewodów a później w postaci połączeń wytwarzanych w postaci pasków
metalu na tzw. płytach drukowanych, do których elementy były
wlutowywane.
Technologia układów scalonych wytwarza wszystkie elementy czynne
układu w bardzo zminiaturyzowanej postaci (rozmiary mierzone w mikronach
czyli tysięcznych częściach milimetra) metodą domieszkowania
zachodzących na siebie obszarów na powierzchni płytki zrobionej
półprzewodnika przeważnie krzemu.
Elementy czynne są rozmieszczane na w układzie jedynie w dwu wymiarach
na powierzchni krzemu.
Połączenia są tworzone na ogół jako napylane paski metalu albo odpowiednio
przetworzonego półprzewodnika w kilku warstwach na powierzchni układu.
Zmodyfikowana płytka półprzewodnika jest następnie umieszczana w
obudowie z nóżkami, które mogą być między sobą łączone.
Przy wytwarzaniu układów scalonych występują silne ograniczenia
technologiczne, co powoduje, że nie jest możliwe wytwarzanie układów
scalonych o dowolnej wielkości (stopniu skomplikowania) na skalę
przemysłową.
Rozwój technologii układów scalonych następuje krokowo, poprzez
stopniowe ulepszenia procesu produkcji i rozwój aparatury stosowanej do
produkcji, zmierzając do coraz to większej liczby czynnych elementów
(bramek logicznych) w jednym układzie scalonym.
Ewolucja układów półprzewodnikowych
Ewolucja techniki realizacji mikroprocesorów jest ściśle związana z historią
rozwoju technologii układów scalonych.
Historia ta rozpoczyna się od wynalezienia w 1948 roku podstawowego
elementu czynnego układów scalonych - tranzystora, który wyparł następnie
z użycia powszechnie stosowane (również do produkcji komputerów)
próżniowe lampy elektronowe.
Historia układów półprzewodnikowych
1948
Tranzystor bipolarny
1960
I-szy układ scalony
1962
Tranzystor unipolarny MOS
1964
TTL SSI, Texas Instruments
1970
MOS LSI, Intel, Texas Instr.
1971
Intel 4004 – mikroprocesor 4-bitowy PMOS
1972
Intel 8008 – mikroprocesor 8-bitowy PMOS
1973
Intel 8080 – mikroprocesor 8-bitowy NMOS
1974
Motorola 6800 – mikroprocesor 8-bitowy NMOS
Historia układów półprzewodnikowych (cd)
1976
TMS 9900 - mikroprocesor 16-bitowy NMOS (Texas Instr.)
1978
Intel 8086 - mikroprocesor 16-bitowy HMOS
1981
Intel APX432 - mikroprocesor 32-bitowy
1981
Komputer personalny IBM PC
1989
Intel 80860 - mikroprocesor 64-bitowy
Ewolucja mikroprocesorów
W 1971 roku firma INTEL uzyskała zamówienie na zrealizowanie scalonego
procesora specjalizowanego do obsługi monitora ekranowego.
W 1972 procesor oparty na arytmetyce na liczbach 8-biowych był gotowy,
jednak firma zamawiająca nie przyjęła produktu, ze względu na to, że nie
spełnił on wysokich wymagań szybkościowych.
INTEL udostępnił ten procesor jako produkt rynkowy o nazwie Intel 8008.
Procesor znalazł wielu zainteresowanych, w związku z tym INTEL opracował
ulepszoną wersję tego procesora, który wprowadził na rynek pod nazwą Intel
8080.
Procesor ten znalazł bardzo wielu nabywców, szczególnie wśród firm
elektronicznych, które w oparciu on procesor rozpoczęły produkcję
komputerów 8-bitowych.
Dwa lata później, podobny 8-bitowy procesor scalony wprowadziła na rynek
inna firma amerykańska - MOTOROLA. Był to początek ery
mikroprocesorów i rozwoju opartych na nich komputerów.
W pierwszej połowie lat 70-tych, rozwój mikroprocesorów przebiegał w
trzech kierunkach:
•
kontynuacja produkcji procesorów 4-bitowych, głownie dla potrzeb
kalkulatorów elektronicznych,
•
rozwój linii mikroprocesorów 8-bitowych w kierunku ulepszenia ich cech
architekturalnych (liczba rejestrów uniwersalnych, lista instrukcji, struktura
połączeń z pamięcią i urządzeniami wejścia/wyjścia).
•
rozwój mikroprocesorów segmentowych, pozwalających na budowanie
komputerów o dowolnej długości słowa.
Ewolucja mikroprocesorów
LSI (1970)
Kalkulatory, Intel 4004 dla kalkulatora (1971)
Intel 8008 dla obsługi monitora (1972)
na zlecenie DataPoint z San Diego CA
Intel 8080 uniwersalny (1973)
Mikroprocesory 4-bitowe
Mikroprocesory segmentowe
Mikroprocesory 8-bitowe (1973)
Mikroprocesory 16-bitowe (1978)
Mikroprocesory 32-bitowe (1981)
Mikroprocesory 64-bitowe (1989)
Architektura mikroprocesorów 8-bitowych
Podstawowy schemat blokowy
Rejestr rozkazów
(RR)
Dekoder rozkazów
Generator
sygnałów
sterujących
Selektor rejestru
Rejestr danych (B)
Licznik rozk. (LR)
(LR)
Układ
następnika
ALU
Akumulator (A)
Rejestr warunków
Wewnętrzna szyna sterowania
Wewnętrzna szyna adresowa
Zespół rejestrów
uniwersalnych
i specjalnych
Układ sterowania
Rejestr
przejściowy
Rej. stanu proc.
Taktowanie
Przerwania
R
ej
es
tr
bu
fo
ro
w
y
da
ny
c
h
(
R
B
D
)
R
ej
es
tr
bu
fo
ro
w
y
adr
es
u (
R
B
A
)
Sprzężenie z szynami
zewnętrznymi
Wewnêtrzna szyna danych
Zewnętrzna
szyna
sterowania
Zewnętrzna
szyna
adresowa
Zewnętrzna
szyna
danych
Układ arytmetyczno – logiczny (ALU)
Rej. wsk. stosu
Rej. adresowy
Podstawowe składniki struktury blokowej mikroprocesora 8-bitowego to
cztery podstawowe podzespoły:
•
układ sterujący,
•
zespół rejestrów,
•
układ arytmetyczno-logiczny
•
układ sprzężenia z szyną zewnętrzną.
Te cztery podzespoły są podłączone do trzech szyn (magistral):
wewnętrznej szyny danych (ang. local data bus),
szyny adresowej (ang. address bus),
szyny sterującej (ang. control bus).
Zespół trzech szyn (magistral) łącznie tworzy umowną szynę systemową (
ang. system bus).
Trzy szyny są wyprowadzone na zewnątrz mikroprocesora w postaci
zewnętrznej szyny systemowej, aby umożliwić podłączenie do
mikroprocesora pozostałych zasadniczych podzespołów komputera: pamięci
(traktowanej jako pamięć operacyjna i pamięć podręczna) i układów
wejścia/wyjścia.
Szyna danych służy do wymiany informacji między trzema blokami
pokazanymi na rysunku jak również tymi blokami a pamięcią komputera i
układami wejścia/wyjścia. Te informacje stanowią dane lub rozkazy
wewnętrzne.
Szyna adresowa służy do przesyłania adresów między rejestrami
mikroprocesora a pamięcią operacyjną i układami wejścia/wyjścia.
Szyna sterująca służy do przekazywania sygnałów sterujących między
wszystkimi podzespołami komputera.
Układ sterujący pokazany na rysunku jest typu sprzętowego, w odróżnieniu
od układu mikroprogramowanego.
W skład układu sterującego, pokazanego na schemacie powyżej, wchodzi:
•
rejestr rozkazów,
•
dekoder rozkazów
•
generator sygnałów sterujących rozsyłanych do wszystkich pozostałych
zespołów komputera.
Do generatora sygnałów sterujących doprowadzone są sygnały taktujące,
pochodzące ze stale działających układów wytwarzających prostokątne
sygnały o różnych wzorcach czasowych, potrzebne do sterowania działaniem
komputera.
Sygnały taktujące wytwarzane są w oparciu o jednolity sygnał prostokątny,
generowany przez generator kwarcowy, tzw. zegar (ang. clock).
W skład układu sterowania wchodzi również układ obsługi przerwań (na
schemacie włączony do generatora sygnałów sterujących).
Układ obsługi przerwań ma dwa wejścia, na które urządzenia zewnętrzne w
stosunku do komputera, mogą podawać sygnały przerwań. Te sygnały
powodują przerwanie przez procesor aktualnie wykonywanego programu i
wykonanie programu obsługi przerwania.
Wśród końcówek przerwań wyróżniamy końcówkę przerwań
niemaskowalnych i maskowalnych.
Reakcje na sygnały przychodzące do końcówki przerwań maskowalnych
mogą być zamaskowane (unieczynnione) przez procesor.
W skład zespołu rejestrów wchodzą
•
rejestry uniwersalne (ogólnego przeznaczenia) (ang. general purpose
registers)
•
rejestry specjalne takie jak: licznik rozkazów (ang. program counter),
rejestry adresowe (ang. address registers), rejestr wskaźnika stosu
(ang. stack pointer register), rejestr stanu procesora (ang. status register)
i inne..
W skład układu sprzężenia z szyną zewnętrzną wchodzą dwa rejestry
buforowe: rejestr buforowy danych i rejestr buforowy adresów.
Pośredniczą one miedzy wewnętrznymi szynami mikroprocesora a
zewnętrznymi szynami, przechowując tymczasowo (buforując) dane
przesyłane w obu kierunkach: do i na zewnątrz mikroprocesora.
Układy arytmetyczno-logiczne mikroprocesorów
Prosty układ arytmetyczno-logiczny (ALU) składa się z:
•
jednostki arytmetyczno-logicznej,
•
podstawowych rejestrów, które przechowują tymczasowo argumenty
operacji tej jednostki, takie jak rejestr akumulatora i rejestr przejściowy
•
rejestru bitów warunków, który przechowuje wyniki testów na rezultatach
obliczeń ALU.
Cztery struktury połączenia jednostki arytmetyczno-
logicznej z rejestrami i szynami procesora.
Rejestr R
0
Rejestr R
1
Rejestr R
N
Akumulator
ALU
Zespół rejestrów
Ze
w
n
ę
trzn
a
sz
y
n
a da
ny
ch
Wewnętrzna szyna danych
Jednoszynowa struktura podłączenia ALU do zespołu rejestrów
Najprostsza struktura jest struktura jednoszynowa. Oparta jest ona na
wykorzystaniu pojedynczej szyny danych, przez którą są przesyłane zarówno
argumenty jaki wynik operacji ALU. Taka struktura wymaga wprowadzenia
rejestru, który tymczasowo przechowa jeden argument operacji ALU, gdy
drugi będzie pobierany przez szynę danych. Rejestrem tym jest rejestr
akumulatora, który zgodnie ze swoją definicją, przechowuje zarówno
argument jak i wynik tej samej operacji ALU. Jeden argument ALU jest
pobierany z akumulatora, drugi bezpośrednio z szyny danych. Wynik operacji
ALU jest przesyłany do akumulatora lub rejestru uniwersalnego przez tę samą
szynę danych. Akumulator, który jest wykorzystywany do przechowania
zarówno argumentu operacji jak i wyniku, stwarza dodatkowy problem
synchronizacji odczytu i zapisu. Ponieważ wszystkie elementy układu są
podłączone do tej samej szyny danych, która jak wiadomo, umożliwia tylko
jedno przesłanie na raz. Poprawna praca układu jest możliwa pod warunkiem
bardzo starannej synchronizacji przesłań argumentów i wyników ALU (z
bardzo małymi marginesami dopuszczalnych odchyleń sygnałów w czasie).
Jednoszynowa struktura podłączenia ALU z rejestrem przejściowym
Rejestr R
0
Rejestr R
1
Rejestr R
N
Zespół rejestrów
Akumulator
ALU
Rejestr
buforowy
akumulatora
Rejestr
przejściowy
Ze
wn
ę
trz
n
a
szyn
a
da
ny
ch
Wewnętrzna szyna danych
Praca ALU podłączonego do jednej szyny danych będzie łatwiejsza dzięki
wprowadzeniu dodatkowych rejestrów buforowych na wejściach ALU, co
umożliwia statyczne przechowywanie obu argumentów operacji ALU i
eliminuje potencjalny konflikt na szynie danych między przesłaniem
argumentów i wyniku operacji.
Dodatkowe zbuforowanie rejestru akumulatora poprzez rejestr pośredniczący
uwalnia układ sterujący od bardzo precyzyjnego sterowania zapisem
/odczytem do /z rejestru akumulatora.
Dwuszynowa struktura podłączenia ALU
Inne układy
(pamięci, we/wy)
Rejestr R
0
Rejestr R
N
ALU
Rejestr
przejściowy
Szyna danych A
Szyna D (przesyłanie wyników)
W strukturze z dwiema szynami danych: szyną argumentów (górna) i szyną
wyników (dolna) jest znacznie łatwiejsze sterowanie pracą układu.
W tym przypadku można zrezygnować z wydzielenia w układzie rejestru
akumulatora, którego rolę może pełnić dowolny rejestr uniwersalny. Jednakże
niezbędne jest wprowadzenie jednego rejestru tymczasowego dla
przechowania jednego argumentu operacji ALU w czasie, gdy drugi jest
pobierany przez szynę.
Trójszynowa struktura podłączenia ALU
Inne układy
(pamięci, we/wy)
Rejestr R
0
Rejestr R
N
ALU
Wskaźniki
Szyna danych A
Szyna danych B
Szyna D (przesyłanie wyników)
W przypadku, gdy ALU jest on podłączony do trzech wewnętrznych szyn
danych sterowanie pracą jest jeszcze łatwiejsze.
Wówczas, nie ma potrzeby wprowadzania żadnego rejestru tymczasowego
argumentów ALU, gdyż obydwa argumenty mogą być przesłane jednocześnie
przez dwie szyny.
Wynik operacji może być przesłany do dowolnego rejestru uniwersalnego
przez niezależną szynę.
Struktury blokowe trzech mikroprocesorów 8-bitowych: Intel 8080, Motorola
6800 i Zilog Z80. Jednoszynowe podłączenie ALU do zespołu rejestrów.
Rejestr rozkazów
Dekoder
W
Z
B
C
D
E
H
L
SP
PC
±
1
ALU
Akumulator
Rejestr
Rejestr
Wskaźniki
Szyna sterowania
Szyna adresowa
Szyna danych
Generator sygnałów
sterujących
Schemat blokowy mikroprocesora Intel 8080
Rejestr rozkazów
Dekoder
SP
IR
PC
ALU
A
B
Wskaźniki
Szyna sterowania
Szyna adresowa
Szyna danych
T1
Generator sygnałów
sterujących
Schemat blokowy mikroprocesora Motorola 6800
Rejestr rozkazów
Dekoder
Generator sygnałów
sterujących
ALU
A
A'
Wskaźniki
Szyna sterowania
Szyna adresowa
Szyna danych
B
C
D
E
H
L
IX
I
B'
C'
D'
E'
H'
L'
R
IY
SP
PC
Bufor
adresu
TMP
Schemat blokowy mikroprocesora Z-80 firmy ZILOG
Parametry mikroprocesorów
Podstawowe parametry mikroprocesorów
Cechy architekturalne
Parametry techniczne
Liczba i cechy bloków
wykonawczych
Częstotliwość zegara
Struktura i parametry pamięci Technologia
Cechy i parametry listy rozkazów
Liczba tranzystorów
Liczba i rozmiary rejestrów danych
Napięcie zasilania
Liczba i rozmiary rejestrów
adresowych
Pobór mocy
Szerokości szyn danych i adresów
Obudowa
Cechy układu przerwań
Dołączalne koprocesory
Cechy architekturalne
Cechy i liczba bloków wykonawczych to liczba jednostek wykonujących
operacje określone w instrukcjach programu w języku wewnętrznym oraz ich
cechy funkcjonalne.
Struktura i parametry pamięci to przede wszystkim liczba poziomów
pamięci: w tym liczba poziomów pamięci podręcznej, organizacja
zapisywanej informacji, pojemności.
Cechy i parametry listy rozkazów to typy i format instrukcji języka
wewnętrznego, dostępne tryby adresowania, metoda realizacji instrukcji
wejścia/wyjścia.
Rozmiar rejestrów danych i adresów oraz szerokości szyn danych i
adresów określają wydajność obliczeniową mikroprocesora.
Przebieg zmian tych cech architekturalnych procesorów omówiony zostanie
przy omawianiu rodzin procesorów typu RISC i CISC w dalszych wykładach.
Parametry techniczne mikroprocesorów
Podstawowym parametrem jest częstotliwość zegara (ang. clock frequency),
którym są taktowane wszystkie operacje komputera (ściślej sygnały sterujące,
które te operacje wyzwalają).
Częstotliwość zegara decyduje o szybkości wykonywania operacji w
komputerze.
Od pierwszych mikroprocesorów w roku 1973 częstotliwość zegara zmieniła
się z 1 MHz do 2 GHz , a więc wzrosła około 2 tys. razy.
Rok
1975 1980 1990 1995 1998 2000 2002
Częstotliwość
zegara
3
MHz
10
MHz-
50
MHz
150
MHz
450
MHz
800
MHz
2.4
GHz
W podobnym stopniu wzrosła szybkość obliczeniowa procesorów, co
pokazuje następna tabelka.
Rok
1975 1980 1990 1995 1998 2000 2002
Szybkość
obliczeń
(MIPS)
0.75 3 30 120 330 600
1600
Rodzaj technologii jest to metoda wytworzenia układu scalonego
mikroprocesora.
Charakteryzuje ją szereg cząstkowych parametrów takich jak:
•
stopień scalenia układu
•
sposób budowy elementów czynnych i układów logicznych z (tzw.
technologia integracji)
•
liczba bramek w jednym układzie scalonym
•
liczba tranzystorów w jednym układzie scalonym.
Liczba tranzystorów w układzie scalonym mikroprocesora
Rok 1975 1980 1990 1995 1998 2000 2002
Liczba
tranzystoró
w (mln)
0.01 0.1 1.5 5.5 7.5 10 40
Stopnie scalenia (skala integracji) lub stopnie integracji (ang. integration
scale) spotykane w zintegrowanych układach cyfrowych
Skala integracji
Liczba tranzystorów w
jednym układzie (max)
Liczba bramek w jednym
układzie (max)
mała
(SSI) – Small
Scale Integration
100 10
średnia
(MSI) - Medium
Scale Integration
1000 200
duża
(LSI) – Large
Scale Integration
100 000
10 000
wielka
VLSI – Very
Large Scale
Integration
50 milionów
do 12 milionów
Czasami używane terminy:
•
ultra wielka skala integracji –ULSI – (ang. Ultra Large Scale
Integration) upakowaniu powyżej 10 mln tranzystorów w jednym
układzie
•
gigantyczna skala integracji – GSI - (ang. Gigantic Scale Integration)
upakowaniu powyżej 1 biliona tranzystorów w jednym układzie
scalonym, odpowiednio.
Rodzaje układów logicznych realizowane za pomocą pojedyńczego
układu scalonego w danej skali integracji.
Skala integracji
Układy kombinacyjne
zawarte w jednym układzie
scalonym
Układy sekwencyjne
zawarte w jednym układzie
scalonym
mała
(SSI)
bramki logiczne
przerzutniki
średnia
(MSI)
dekodery, enkodery,
multipleksery,
demultipleksery, sumatory
elementarne
rejestry, liczniki
duża
(LSI)
bloki funkcjonalne, pamięci
ROM,
PROM, EPROM
bloki pamięci RAM, małe
mikroprocesory, układy
PLA, układy PAL, małe
kontrolery we/wy
wielka
(VLSI)
bardzo duże pamięci ROM
duże mikroprocesory, duże
kontrolery we/wy,
układy FPGA
Technologia integracji
Jest to sposób wytwarzania tranzystorów i innych elementów elektronicznych
z półprzewodników oraz sposób budowy z nich bramek i innych cyfrowych
układów jak przerzutniki, pamięci itp.
Technologia decyduje o szybkości realizacji operacji, wielkości układu,
liczbie bramek i innych układów w układzie scalonym, ilości wydzielanego
ciepła przez układ (ważne dla układu chłodzenia).
Technologia TTL
Technologia TTL (ang. Transistor-Transistor-Logic) polega na
wykorzystywaniu tzw. tranzystorów bipolarnych (nośnikami prądu są w
nich elektrony i elementy dodatnie).
Bramki logiczne są realizowane w oparciu o wielowejściowe tranzystory,
które w sposób naturalny realizują funkcje negacji, NAND i NOR,
wykorzystując reprezentację binarnych wartości logicznych w postaci
ustalonych wartości napięć (technika napięciowa).
Technologia TTL charakteryzuje się średnimi i wysokimi szybkościami
działania i średnimi wartościami wydzielanej mocy (ciepła) z układu.
Technologia ECL
Technologia ECL (ang. Emitter-Coupled Logic) oparta jest na
wykorzystaniu tranzystorów bipolarnych z połączonymi emiterami.
Realizacja funkcji logicznych jest w technice prądowej, tzn. reprezentacja
binarnych wartości logicznych jest w postaci przepływu i braku przepływu
prądu.
Realizacja funkcji logicznych polega na przełączaniu stale płynących dużych
prądów między tranzystorami.
Taka technika zapewnia bardzo wysokie szybkości działania, ze względu na
brak opóźnień wynikających z ładowania pojemności w układach, które
występują przy wykorzystaniu techniki napięciowej.
Ze względu na stale płynące prądy o stosunkowo dużych wartościach,
technika ECL charakteryzuje się bardzo silnym wydzielaniem mocy z
układów, w związku z tym duże komputery oparte na tej technice wymagają
specjalnych układów chłodzenia np. za pomocą rur z wodą lub ciekłym
azotem.
Technologia CMOS
Nazwa technologii MOS (ang. Metal Oxide Semiconductor) i CMOS, (ang.
Complementary Metal Oxide Semiconductor), pochodzi od materiałów, z
których budowane są takie układy elektroniczne.
Technologia ta jest oparta na wykorzystaniu tranzystorów unipolarnych, w
których wykorzystuje się nośniki prądu jednego rodzaju (elektrony lub
ładunki dodatnie).
Sterowanie przepływem prądów polega na dynamicznym tworzeniu w
półprzewodniku, metodą oddziaływania elektrostatycznego elektrody
zwanej bramką, tzw. kanałów między normalnie odizolowanymi obszarami.
Kanały umożliwiają przepływ prądu między tymi obszarami.
Reprezentacja binarnych wartości logicznych jest napięciowa. Po
wysterowaniu bramki, stworzenie kanału zmienia napięcie na wyjściu układu
na przeciwny. Naturalna jest więc realizacja negacji logicznej.
Technologii CMOS wykotzystuje specjalną technikę wykorzystywania par
tzw. tranzystorów komplementarnych (z nośnikami elektronowymi i
dodatnimi).
Pozwala to na bardzo szybką prace tych układów przy bardzo niskich
wartościach wydzielanych mocy.
Ze względu na te zalety technologia CMOS w wielu dodatkowych wariantach
jest obecnie powszechnie wykorzystywana do budowy współczesnych
mikroprocesorów.
Mikroprocesory 16 i więcej bitowe
Rozwój architektury mikroprocesorów w dalszych latach następujących po
mikroprocesorach 8-bitowych wprowadził do wewnętrznego schematu
blokowego mikroprocesora następujące elementy:
•
Powiększenie długości słowa, szerokości rejestrów i ich liczby,
•
Powiększenie szerokości dróg przesyłania informacji – szyn (magistral),
•
Wprowadzenie pamięci podręcznej - często wielopoziomowej,
•
Wprowadzenie równoległego pobierania rozkazów z wyprzedzeniem,
•
Wprowadzenie równoległego dekodowania wielu instrukcji na raz,
•
Wprowadzenie wielu równolegle działających bloków wykonawczych,
włączając w to:
•
specjalizowane jednostki do obliczeń zmienno-przecinkowych,
•
bloki obsługi i konwersji adresów pamięci wirtualnej,
•
bloki zarządzania pamięcią,
•
bloki realizacji komunikacji z pamięcią.
•
Wprowadzenie potokowej realizacji wykonania rozkazów,
•
Wprowadzenie bloku przewidywania skoków w programach,
•
Wprowadzenie wykonywania rozkazów ze zmianą porządku,
•
Wiele innych ulepszeń architekturalnych zwiększających wydajność.
Uproszczony schemat blokowy mikroprocesora 16-bitowego
Mikroprocesor 16-bitowy posiada 16-bitową jednostkę arytmetyczno-
logiczną.
Zespół rejestrów składa się z 16-bitowych uniwersalnych rejestrów danych
oraz z pewnej liczby rejestrów specjalizowanych: licznik rozkazów, rejestr
stanu i warunków, rejestry adresowe.
Szyna danych jest 16-bitowa. Szyna adresowa jest szerokości większej niż 16
bitów, podobnie jak i rejestry adresowe.
Na rysunku poniżej szyna danych i adresów jest wspólna. Szerokość tej
wspólnej szyny jest większa niż 16-bitów. Dla przesyłania danych 16-
bitowych wykorzystuje się część linii tej szyny. Dla przesyłania adresów
wykorzystuje się wszystkie linie szyny.
Wspólnej szyny danych i adresów stosowane w pierwszych modelach
mikroprocesorów 16-bitowych.
Bloki wspomagania konwersji adresów wirtualnych, związane z
wprowadzeniem w tych procesorach pamięci wirtualnej opartej na
segmentacji.
Blok wspomagania wykonywania rozkazów rozgałęzień warunkowych - .
rejestruje historię wykonania instrukcji rozgałęzień (warunek spełniony/
niespełniony - True/False) i na tej podstawie przewiduje kierunek przebiegu
sterowania w przypadku powtórnego wykonania instrukcji, dla których miał
zarejestrowaną historię poprzednich wykonań.
Schemat blokowy prostego mikroprocesora 16-bitowego
Układ konwersji
adresów wirtualnych
Zbiór rejestrów
wskaźników segmentów
Rejestry uniwersalne
danych oraz
rejestry adresowe
Licznik rozkazów (LR)
Rejestr wskaźnika stosu (SP)
Szyna pomocnicza
ALU
(16-bitowe)
Rejestr warunków
i stanu procesora
Wewnętrzna szyna danych i adresów
Rejestr rozkazów i układ
przewidywania rozgałęzień
Dekoder rozkazów
Generator sygnałów sterujących
Bufory adresów/danych
Szyna sterująca
Adres/Dane
(AD0-AD15)
Pozostałe bity
adresu
Zewnętrzna szyna
danych i adresów
INT
Pojęcie i architektura mikrokomputera
Mikrokomputerem (ang. microcomputer) nazywamy komputer zbudowany
w oparciu o mikroprocesor czyli procesor zintegrowany (zrealizowany w
postaci układu scalonego).
Ogólna metoda budowy mikrokomputerów polega na dołączaniu do układu
szyn mikroprocesora dodatkowych podzespołów takich jak pamięci i
sterowniki urządzeń zewnętrznych (układów wejścia/wyjścia).
Schemat blokowy najprostszego mikrokomputera jest przedstawiony na
rysunku poniżej. Widzimy tam mikroprocesor, z którego wyprowadzone są
trzy szyny: danych, adresowa i sterująca. Do tych trzech szyn podłączone
są:
•
pamięć operacyjna składająca się z pamięci z zapisem RAM i pamięci typu
tylko odczyt RAM,
•
układy wejścia/wyjścia, do których podłączone są z kolei urządzenia
zewnętrzne
Ogólny schemat blokowy prostego mikrokomputera
Mi
k
r
o
p
ro
ce
so
r
ROM
RAM
Układy wejścia/wyjścia
Urządzenia zewnętrzne
Magistrala (szyna)
adresowa
Magistrala (szyna)
danych
Magistrala (szyna)
sterująca
Pamięć operacyjna
Bardziej rozbudowany schemat blokowy mikrokomputera
Podłączonych jest znacznie więcej układów wejścia/wyjścia:
•
kontroler przesłań równoległych,
•
kontroler przesłań szeregowych,
•
kontroler przerwań,
•
układ liczników/zegarów,
•
kontroler bezpośredniego dostępu do pamięci - DMA,
•
inne specjalizowane kontrolery wejścia/wyjścia.
Pełniejszy schemat blokowy prostego mikrokomputera
Mikroprocesor
Pamięć RAM/ROM
Układy równoległego
wejścia/wyjścia
Układy szeregowego
wejścia/wyjścia
Układy
liczników / zegarów
Programowalny
kontroler przerwań
dane
adres
Równoległe
urządzenia
zewnętrzne,
np. drukarka
Generatory
i odbiorniki
sygnałów
Linie
zgłoszeń i
potwierdzeń
przerwań
Szeregowe
urządzenia
zewnętrzne,
np. modem
Inne układy wejścia/wyjścia
Układ
DMA
Szyny:
sterująca,
danych,
adresowa
Urządzenia
zewnętrzne,
np. pamięć
dodatkowa
Kontroler przesłań równoległych obsługuje wymianę informacji z
urządzeniami zewnętrznymi, które przesyłają dane w postaci równoległych.
Przykładami takich urządzeń są drukarki, monitor ekranowy, pamięci
dyskowe na dyskach sztywnych i elastycznych, klawiatura.
Pracą kontrolera steruje mikroprocesor, który interweniuje przy każdym
przesyłaniu porcji informacji, wykonując odpowiednie instrukcje odczytu lub
zapisu informacji z (do) kontrolera.
Kontroler steruje przesłaniami ze swojej pamięci wewnętrznej (rejestrów) do
urządzeń zewnętrznych.
Kontroler przesłań szeregowych obsługuje wymianę informacji z
urządzeniami zewnętrznymi, które przesyłają dane w postaci szeregowej.
Przykładami takich urządzeń są myszka, modemy do połączeń poprzez sieć
telefoniczną.
Kontroler realizuje sprzętową konwersję informacji szeregowej na równoległą
i odwrotnie (za pomocą odpowiednich rejestrów szeregowo-równoległych).
Pracą kontrolera steruje mikroprocesor, który interweniuje po każdym
zakończeniu konwersji postaci przesyłanej informacji, wykonując
odpowiednie instrukcje odczytu lub zapisu informacji z (do) kontrolera.
Kontroler przerwań obsługuje przyjmowanie przerwań od wielu
jednocześnie zgłaszających się urządzeń zewnętrznych.
Zadaniem jego jest przyjmowanie zgłoszeń przerwań, rejestrowanie ich,
dokonywanie selekcji w celu wybrania jednego, które ma być obsłużone przez
procesor, komunikacja z procesorem w celu przesłania identyfikatora
wybranego przerwania i wymiany sygnałów sterujących.
Pracą kontrolera steruje mikroprocesor, który po przyjęciu przerwania od
kontrolera wykonuje program obsługi tego przerwania.
Układ liczników/zegarów realizuje operacje odmierzania czasu i
generowania sygnałów o zadanych wzorcach przebiegu w czasie. Pracą
kontrolera steruje mikroprocesor.
Kontroler bezpośredniego dostępu do pamięci (DMA) - (ang. Direct
Memory Access) obsługuje równoległą wymianę informacji między
urządzeniami zewnętrznymi a pamięcią operacyjną komputera, bez udziału
procesora.
Kontroler DMA umożliwia autonomiczne przesłania danych do/z pamięci
operacyjnej. Przesłania te nie angażują procesora, który może jednocześnie
prowadzić obliczenia.
Mikroprocesory i mikrokomputery segmentowe
Idea mikroprocesorów segmentowych wynikła z potrzeby budowania
mikrokomputerów o dowolnej długości słowa danych w czasach, gdy nie
pozwalał na to stan rozwoju technologii układów scalonych (budowano wtedy
zaledwie mikroprocesory 8-bitowe a co najwyżej 16-bitowe).
Koncepcja segmentacji mikroprocesora polega na podziale zbioru rejestrów
danych i jednostki arytmetyczno-logicznej na segmenty o ustalonej liczbie
przetwarzanych i przechowywanych bitów danych, np. 2-bity lub 4-bity.
Segmenty buduje się w postaci układu wielkiej skali integracji w taki sposób,
aby można było łączyć je w kaskadę.
Otrzymuje się wielosegmentowe rejestry oraz wielosegmentowa jednostkę
ALU, działające w odpowiedzi na sygnały sterujące przykładane do
wszystkich segmentów równolegle.
W połączonym zespole segmentów następują równoległe zapisy i odczyty
bitów danych do/z rejestrów, nastepuje rownoległa realizacja operacji
arytmetyczno-logicznych na bitach zwiazanych z segmentami oraz zachodzi
propagacja przeniesień między segmentami ALU.
Rej. danych
ALU
We
Wy
weW
S
yg
na
ły
st
er
u
ją
ce
Rejestr
wskaźników
ALU
Rejestry danych
Podział rejestrów i ALU na segmenty N-bitowe
Wielobitowy i wielosegmentowy układ obliczeniowo-rejestrowy podłącza się
do wspólnego układu sterującego, który pobiera rozkazy z pamięci i generuje
na ich podstawie sygnały sterujące dla wszystkich segmentów.
Układy sterowania stosowane dla segmentów były mikroprogramowane, tzn.
sygnały sterujące były generowane na podstawie mikrorozkazów
odczytywanych z pamięci sterowania.
Wykonanie rozkazu odbywało się przez wykonanie mikroprogramu
zapisanego w pamięci sterowania.
Mikroprogram był adresowany (wybierany) przez podanie do pamięci
sterowania kodu operacyjnego rozkazu jako adresu pierwszego mikrorozkazu
.
Schemat blokowy mikrokomputera segmentowego
Rejestr instrukcji
Układ szeregujący
(sekwenser)
Pamięć stała
mikroprogramów
Segment
N-bitowy
(1)
Segment
N-bitowy
(2)
Segment
N-bitowy
(P)
Adres
Dane
Kod operacyjny
instrukcji
Sterowanie
A
d
re
s m
ikr
o
inst
ruk
cj
i
Wielosegmentowe ALU i rejestry danych (PxN bitowe)
Układ sterowania
Komputerem personalnym nazywamy mikrokomputer, którego konfiguracja
została dostosowana do potrzeb przeciętnego pojedyńczego użytkownika
zamierzającego wykorzystywać komputer jako narzędzie do stosunkowo
prostych obliczeń, przetwarzania tekstu oraz podstawowych zastosowań
multimedialnych.
Współczesny komputer personalny jest wyposażony w:
szybki mikroprocesor,
pamięć operacyjną o stosunkowo małej pojemności (128 – 512 MB),
pamięć na dyskach sztywnych (ang. hard disk),
pamięć na dyskach elastycznych (ang. floppy disk),
pamięć na dyskach kompaktowych CD (od ang. compact disk) – czytnik
lub nagrywarkę z czytnikiem,
monitor ekranowy o średnim rozmiarze ekranu (15-17 cali),
kontroler graficzny (and. graphics controler) obrazu monitora,
kartę dźwiękową (ang. audio controler),
skaner obrazów (ang. scanner),
drukarkę (ang. printer),
często karę telewizyjną (ang. TV card),
kartę sieciową (ang. network adapter) lub modem (ang. modem) do
współpracy z siecią Internet.
Komputer personalny jest wyposażony w bogate oprogramowanie użytkowe
(ang. application software), które umożliwia użytkownikom wygodne,
wspomagane komputerem, wykonywanie różnorodnych aplikacji bez
potrzeby samodzielnego pisania programów.
Przykładem takiego oprogramowania jest Microsoft Office, który umożliwia
rozwinięte przetwarzanie tekstu, tworzenie obrazów graficznych, manipulacje
na zbiorach danych, obsługę poczty elektronicznej, współpracę z siecią
Internet, łączącą komputery na skalę światową, itp.
Komputer personalny jest wyposażony w system operacyjny (ang. operating
system), który udostępnia funkcje związane ze sterowaniem wykonywania
programów, edycję tekstu programów i zbiorów w kodzie ASCII,
zarządzaniem zbiorami użytkownika i zasobami komputera.
System ten zwykle umożliwia również wiele funkcji zapewniających
różnorodne manipulacje na zbiorach użytkownika (wyszukiwanie,
porównywanie, kopiowanie i tworzenie struktur plików.
Komputer personalny jest zwykle wyposażony w kompilatory podstawowych
języków programowania wysokiego rzędu.
Stacją roboczą nazywamy mikrokomputer, który jest przystosowany do
intensywnych obliczeń i rozwiniętej wizualizacji wyników.
Współczesna stacja robocza posiada zestaw elementów składowych zbliżony
do komputera personalnego, jednakże o znacznie podwyższonych
parametrach ilościowych, wydajnościowych i jakościowych;
pamięć operacyjna stacji roboczej ma pojemność mierzoną w GB,
duży dysk sztywny,
monitor ekranowy o wielkości od 19 cali wzwyż i rozdzielczości powyżej
1200x1200 punktów,
bardzo wydajny kontroler graficzny z dużą pamięcią obrazu,
skaner o podwyższonej rozdzielczości.
Ze stacją roboczą mogą współpracować;
•
specjalizowane kontrolery przyspieszające obliczenia
(ang. accelerator cards)
•
rozwinięte urządzenia do wprowadzenie i wyprowadzanie informacji, jak:
•
drukarki dużych obrazów (ang. plotter),
•
szybkie skanery dużych obrazów,
•
urządzenia projekcyjne (ang. projectors).
System operacyjny stacji roboczej jest zwykle wyposażony w rozbudowany
zestaw funkcji do manipulacji zbiorami i uruchamiania programów.
Stacja robocza jest zwykle wyposażona w bogaty zestaw kompilatorów
języków wysokiego poziomu, często optymalizujących produkowany kod
wynikowy. Jest ona też przeważnie wyposażana w bardzo zaawansowane i
specyficzne oprogramowanie użytkowe.
Serwerem (ang. server) nazywamy mikrokomputer, który jest przystosowany
do wykonywania zleceń wysyłanych zdalnie przez wielu użytkowników.
Odróżniamy:
•
serwery obliczeniowe (ang. computation server) przeznaczone dla
udostępniania mocy obliczeniowej
•
serwery plików (ang. file server) przeznaczone dla przechowywania i
udostępnianie zbiorów.
Serwery obliczeniowe charakteryzują się bardzo dużą pojemnością pamięci
operacyjnej i bardzo często wieloma procesorami pracującymi ze wspólną
pamięcią.
Serwery plików charakteryzują się pamięcią na dyskach sztywnych o bardzo
dużej pojemności, często opartą na wielu równoległe pracujących stacjach
dysków sztywnych (ang. hard disk drive).
Obydwa typy serwerów są wyposażone w bardzo szybkie i często
zwielokrotnione połączenie z siecią łączącą komputery.
Serwer posiada system operacyjny wyposażony w rozbudowane funkcje
współpracy ze zdalnymi użytkownikami, jednocześnie zgłaszającymi swoje
żądania otrzymania usług, dlatego jest system pracującym w trybie
wieloprogramowym (ang. multi-program) oraz trybie
wieloużytkownikowym (ang. multi-user).