z
Wykład
Temat:
Model programowy komputera, część III:
stos, podprogramy, przerwania, układy sterowania, ewolucja komputerów
elektronicznych.
Treść wykładu:
1. Pamięć stosowa w komputerze
2. Wywołania podprogramów
3. Przerwania i wyjątki
4. Budowa układów sterowania komputerów
5. Zarys historii komputera elektronicznego
z
Pamięć stosowa w komputerze
Pamięć stosowa (ang. stack memory) jest specjalnym rodzajem pamięci
wykorzystywanym w komputerze dla tymczasowego przechowywania informacji, gdy
chcemy odczytywać informacje w dokładnie odwrotnym porządku w stosunku do
kolejności zapisu, nie zajmując się problemami adresacji informacji
Pamięć stosowa jest pamięcią szeregową ze szczególnymi ograniczeniami dostępu na
zapis i odczyt do tylko jednej komórki tej pamięci tzw. wierzchołka (szczytu) stosu (ang.
top of the stack).
z
Pamięć stosowa zachowuje się tak jak kolejka, w której informacja może być wpisywana
do wierzchołka stosu, powodując przesunięcie informacji przechowywanych w kolejnych
komórkach stosu o jedna pozycję w głąb tej kolejki.
Odczyt ze stosu jest możliwy tylko z wierzchołka stosu a więc można odczytać tylko
ostatnio zapisaną informację.
Odczyt powoduje usunięcie wiadomości ze szczytu stosu i wprowadzenie na jej miejsce
pierwszej informacji z głębi stosu, z przesunięciem wszystkich pozostałych informacji o
jedno miejsce w kierunku szczytu stosu.
Jest to więc kolejka typu Ostatni- Wpisany - Pierwszy - Odczytany (ang. Last-In-First-
Out).
z
Pamięć stosowa działa podobnie do magazynku karabinu, w którym wprowadzenie
kolejnego naboju wpycha pozostałe naboje w głąb magazynka, a użycie naboju powoduje
jego usunięcie i wprowadzenie na wierzch magazynka pierwszego naboju, który
znajdował się pod tym zużytym.
z
Dla obsługi pamięci stosowej używane są trzy rozkazy:
Wprowadz do stosu (ang. Push)
Czytaj wierzchołek stosu (ang. Read Stack)
Usuń ze stosu (ang. Pop )
Aby wpisać informację D do stosu wykonujemy operacje Push D.
Aby odczytać informacje z wierzchołka stosu wykonujemy operacje Read stack.
Aby usnąć informacje ze szczytu stosu wykonujemy operacje Pop.
z
Czasami stosowane są operacje arytmetyczne stosowe, które wykonują się na
argumentach zapisanych w dwu kolejnych komórkach na szczycie stosu. Po wykonaniu
operacji arytmetycznej wykonywana jest operacja Pop i wynik jest umieszczany na
szczycie stosu.
Wierz-
Wierz-
Wierz-
chołek
chołek
chołek
C D C
Dana C
B C B
Dana B
A B A
Dana A
A
Stan początkowy Po operacji
Po operacji
POP
PUSH D
(usuń ze
(wprowadz D
stosu)
do stosu)
z
Budowa pamięci stosowej
Pierwsze realizacje pamięci stosowej polegały na wykorzystaniu rejestrów, między
którymi informacja była przesuwana równolegle, przy operacjach Push i Pop.
Współcześnie pamięć stosowa jest realizowana w pamięci operacyjnej ze wspomaganiem
sprzętowym w postaci rejestrów obsługujących mechanizm dostępu do stosu.
Stos jest nieprzerwanym ciągiem komórek o kolejnych adresach zarezerwowanym w
pamięci operacyjnej przy pomocy dwu specjalnych rejestrów procesora, przechowujących
adresy komórek stanowiących górną i dolną granicę stosu. Są to tzw. rejestry podstawy
i granicy stosu (ang. stack base register, stack limit register).
Obszar pamięci pomiędzy tymi adresami jest wyłączony z innego wykorzystywania niż
dla realizacji pamięci stosowej.
Wierzchołek stosu jest określony przez adres przechowywany w trzecim rejestrze tzw.
rejestrze wskaznika stosu (ang. stack pointer register).
z
Przed rozpoczęciem wykonywania programów komputera, rejestr wskaznika stosu jest
ustawiany na zawartość rejestru podstawy stosu.
Po każdej operacji Push, zawartość rejestru wskaznika stosu jest zmieniana o liczbę
bajtów odpowiadających jednemu słowu stosu w kierunku adresu granicy stosu.
Po każdej operacji Pop, zawartość rejestru wskaznika stosu jest zmieniana o liczbę bajtów
odpowiadających jednemu słowu stosu w kierunku adresu podstawy stosu.
z
Pamięć operacyjna
Rejestry
specjalne
procesora
Rejestr granicy stosu
Rejestr wskaznika stosu
Obszar
Rejestr podstawy stosu
Stosu
Dane
zapisane
w stosie
Realizacja stosu w pamięci operacyjnej komputera wierzchołek stosu w pamięci
z
Rysunek powyżej pokazuje przypadek realizacji stosu w pamięci operacyjnej gdzie
wierzchołek stosu jest przechowywany bezpośrednio w pamięci.
Inne rozwiązanie , pokazane na rysunku poniżej, zakłada, że wierzchołek stosu oraz
komórka stosu bezpośrednio poniżej wierzchołka są przechowywane w specjalnych
rejestrach procesora: rejestr wierzchołka stosu i rejestr pod-wierzchołka stosu.
z
Rejestry
specjalne
procesora
Pamięć operacyjna
Rejestr wierzchołka stosu
Rejestr pod-wierzchołka stosu
Rejestr granicy stosu
Rejestr wskaznika stosu
Obszar
Rejestr podstawy stosu
Stosu
Dane
zapisane
w stosie
Realizacja stosu w pamięci operacyjnej z wierzchołkiem stosu w rejestrach
z
Wywołania podprogramów
Wśród sterujących rozkazów wewnętrznych komputera wyróżniliśmy rozkazy wywołania
podprogramów (ang. subroutine call) o symbolu Call i rozkazy powrotu z
podprogramu (ang. subroutine return) o symbolu Ret .
Podprogram (ang. subroutine) jest to sekwencja rozkazów zakończona rozkazem
powrotu Ret .
Z rozkazem wywołania podprogramu jest zawsze związany adres pierwszego rozkazu w
podprogramie, zwany adresem podprogramu.
Mechanizm wywoływania podprogramów i realizacja rozkazów Call i Ret opiera się
na wykorzystaniu stosu.
z
Wykonanie rozkazu wywołania podprogramu Call polega na:
1. wprowadzeniu do stosu bieżącej zawartości licznika rozkazów (a więc adresu powrotu
do rozkazu
następnego do wykonania po rozkazie Call ) poprzez operację Push ,
2. wpisaniu następnie do licznika rozkazów adresu podprogramu z rozkazu Call ,
3. pobranie rozkazu według nowej zawartości licznika rozkazów.
Adres zapisywany do stosu będzie wykorzystany przez rozkaz powrotu z podprogramu
Ret , do automatycznego powrócenia po wykonaniu podprogramu do następnego
rozkazu po rozkazie Call .
z
Wykonanie rozkazu powrotu z podprogramu Ret polega na:
1. odczytaniu z wierzchołka stosu zapisanego tam adresu powrotu (do rozkazu następnego
po rozkazie Call ),
2. wpisaniu tego adresu powrotu do licznika rozkazów,
3. wykonanie operacji Pop na stosie,
4. pobranie rozkazu według nowej zawartości licznika rozkazów.
Adres powrotu zapisywany do stosu przy wywołaniu podprogramu nazywany jest czasem
śladem(ang. trace) a rozkaz wywołania podprogramu nazywany jest inaczej skokiem ze
śladem .
z
Istnieją zagnieżdżone wywołania podprogramów (ang. nested calls)), tzn. z wywołanego
podprogramu można znowu wywołać następny podprogram, z niego następny, itd.
Mechanizm powrotu z podprogramu według śladu zapisanych w stosie zapewnia
automatyczne powroty do kolejnych podprogramów przy zachowaniu poprawnej
kolejności.
z
Pamięć operacyjna
Adresy
Program wiodący
000
Stos
Zapisz 101 do stosu
Stos
100 CALL 500
101
101
Podprogram 1
500
Stos
Zapisz 601 do stosu
601
600 CALL 900
101
601
Stos
Pobierz ze stosu
670 RET
101
Podprogram 2
900
Stos
Pobierz ze stosu
601
950
RET
101
Wykorzystanie stosu przy wywołaniach podprogramów
z
Rysunek powyżej przedstawia czynności związane z zagnieżdżonym wywołaniem
podprogramów z programu wiodącego.
Przy wywołaniu podprogramu 1 (Call 500 zapisany pod adresem 100) do stosu zostaje
wpisany adres 101 powrotu z wywołanego podprogramu.
Przy wywołaniu podprogramu 2 (Call 900 zapisany pod adresem 600) do stosu zostaje
wpisany adres powrotu 601.
Przy wykonaniu powrotu z podprogramu 2 ze stosu pobierany jest adres 601.
Przy wykonaniu powrotu z podprogramu 1 ze stosu pobierany jest adres 101.
z
Przerwania i wyjątki
Przerwania (ang. interrupts) umożliwiają sprzętową ingerencję z zewnątrz komputera w
przebieg wykonywania programu.
Procesor ma zazwyczaj 2 końcówki przerwań (końcówka maskowalna i niemaskowalna),
na które układy zewnętrzne w stosunku do komputera mogą wysłać sygnały w celu
wymuszenia wykonania programu obsługi przerwania.
Zgłoszenie przerwania powoduje ( po dokończeniu aktualnie wykonywanego rozkazu)
zawieszenie normalnego toku wykonywania bieżącego programu (następny rozkaz tego
programu nie jest wykonywany) a zamiast tego następuje sprzętowe wymuszenie
wywołania podprogramu obsługi przerwania spod adresu ustalonego w odpowiednim
specjalnym rejestrze lub tablicy w pamięci procesora.
z
Operacje związane z obsługą przerwania
Rozkaz
Rozkaz
Wywołanie podprogramu obsługi
Zapamiętanie stanu wybranych
rejestrów mikroprocesora w stosie
Wykonanie podprogramu
obsługi przerwania
Przywrócenie stanu rejestrów
mikroprocesora ze stosu
Powrót (RET)
Rozkaz
z
Podprogram obsługi przerwania zapamiętuje w stosie stan podstawowych rejestrów
procesora, które potrzebne będą do odtworzenia stanu wykonywanego programu przy
powrocie do jego wykonywania, tzw. kontekst programu. Są to licznik rozkazów, rejestr
stanu procesora, wskaznik stosu procesora, inne rejestry specjalne i często stan
akumulatora lub paru podstawowych rejestrów uniwersalnych zawierających dane.
Następnie wykonywany jest właściwy podprogram obsługi przerwania, który zwykle
wypełnia jakieś operacje wyższej konieczności ( bardziej priorytetowe niż bieżący
program) wywoływane asynchronicznie metodą zgłoszenia przerwania.
Po zakończeniu programu obsługi przerwania, zawartości rejestrów procesora potrzebne
do wznowienia przerwanego programu są jedna po drugiej pobierane ze stosu ( poprzez
wykonania rozkazów read stack do akumulatora oraz Pop oraz rozkazów przesłania
między rejestrem akumulatora i innymi rejestrami).
Po przywróceniu stanu potrzebnych rejestrów wykonywany jest rozkaz powrotu z
podprogramu przerwania, który pobiera rozkaz według licznika rozkazów.
z
Badanie obecności zgłoszenia przerwania odbywa się w cyklu wykonania rozkazów po
każdym rozkazie, po którym przerwania są dozwolone. Wydłuża to cykl rozkazowy o
trzecią fazę: fazę obsługi przerwań.
Nie po wszystkich rodzajach rozkazów przerwania są dozwolone. Przerwania nie są
dozwolone po rozkazach w których zbadano lub ustawiono stan komputera, który musi
być zachowany przy wykonaniu następnego rozkazu.
Rozkazy, po których nie może nastąpić obsługa przerwania są nazywane rozkazami
nieprzerywalnymi.
Obsługa przerwań może być zablokowana również w sposób programowy - poprzez
maskowanie przerwań w wyniku wykonania związanego z tym rozkazu wewnętrznego.
Nie dotyczy to jednak przerwań przychodzących na końcówkę przerwań
niemaskowalnych. Te muszą być zawsze obsłużone, jednak tylko po rozkazach
przerywalnych.
z
Obsługa przerwań a cykl wykonania rozkazów
Start
Faza pobierania rozkazu
Pobierz
następny
rozkaz
Faza wykonania rozkazu
Wykonaj
rozkaz
Przerwania
zablokowane
Przerwania
dozwolone
Sprawdz, czy
Faza obsługi przerwań
jest przerwanie:
obsłuż
przerwanie
Koniec
z
Na końcówkę przerwań może przychodzić sygnał, który jest sumą logiczną sygnałów
przerwań pochodzących z wielu zródeł.
Powstaje problem rozpoznania z jakich zródeł pochodzi dany sygnał przerwania i jeśli
tych zródeł jest wiele na raz , powstaje dalszy problem sygnał z którego zródła obsłużyć,
gdyż procesor może obsługiwać tylko jedno przerwanie w danej chwili.
Problemami tymi zajmują się tzw. kontrolery obsługi przerwań (ang. interupt
controllers), o których będzie mowa w wykładzie dotyczącym kontrolerów układów
wejścia/ wyjścia.
Obsługa przerwań może być zorganizowana z jednym lub wieloma poziomami
priorytetów przerwań pochodzących z różnych zródeł.
Kontrolery obsługi przerwań dostarczają do komputera oprócz sumarycznego sygnału
przerwania, również kod identyfikacyjny przerwania o najwyższym priorytecie.
z
Przy jednym poziomie priorytetu, programy obsługi przerwań nie są przerywalne przez
następne przychodzące przerwania.
Przy obsłudze przerwań z wieloma priorytetami, przerwania o wyższym priorytecie
przerywają obsługę przerwań o niższym priorytecie, na zasadzie zagnieżdżonego
wywoływania podprogramów obsługi z użyciem stosu na zapis stanów przerywanych
programów.
z
Zasada obsługi przerwań z jednym poziomem priorytetu
2
1
Obsługa
Obsługa Obsługa
przerwania 1
przerwania 2 przerwania 3
0
Priorytet przerwania 3 > priorytet przerwania 2 > priorytet przerwania 1
czas
Priorytet
Przerwanie 1
Przerwanie 2
Przerwanie 3
z
Zasada obsługi przerwań z wieloma poziomami priorytetów.
Priorytet przerwania 4 > priorytet przerwania 2 >
> priorytet przerwania 1 > priorytet przerwania 3
7
6
5
4
3
2
1
0
czas
Obsługa Obsługa
przerwania 1 przerwania 4
Obsługa przerwania 2
Obsługa przerwania 3
Priorytet
Przerwanie 3
Przerwanie 4
Przerwanie 1
Przerwanie 2
z
Wyjątki (ang. exceptions) są swego rodzaju przerwaniami wewnętrznymi komputera,
które są wywoływane bądz prze specjalne rozkazy wewnętrzne bądz przez wyjątkowe
sytuacje zagrażające integralności systemu , jakie mogą pojawiać się przy wykonywaniu
programów.
Wyjątki są obsługiwane podobnie jak przerwania przychodzące na końcówkę przerwań
niemaskowalnych.
z
Budowa układu sterowania komputera
Zadaniem układu sterowania (układu sterującego) komputera (ang. control unit) jest
pobieranie rozkazów programu z pamięci operacyjnej do rejestru rozkazów komputera i
generowanie na podstawie kodu operacyjnego rozkazów sygnałów sterujących
wykonaniem rozkazów. Sygnały te są rozsyłane do wszystkich bloków komputera, które
biorą udział w wykonaniu rozkazu.
W komputerach występują dwa typy układów sterowania:
" sprzętowe (układowe) układy sterowania (ang. hardwired control units)
" mikroprogramowane układy sterowania (ang. microprogrammable control units).
z
Schemat sprzętowego układu sterowania komputera
Rejestr rozkazów
Część operacyjna Część adresowa
Sygnał prostokątny
z zegara kwarcowego
Dekoder
rozkazów
Sygnały
Układ
sterujące
Generator Matryca
taktujący
dla układów
następnego sygnałów
wykonawczych
stanu ster. sterujących
Flagi i zmienne Sygnały zewnętrzne
z
Nazwa sprzętowy (układowy) układ sterujący pochodzi od tego, że część tego układu
generator sygnałów sterujących potrzebnych do wykonania rozkazów, jest zaszyty w
sprzęcie (ang. hardwired). Oznacza to, że pożądane sygnały sterujące są wytwarzane
przez specjalnie zaprojektowane sprzętowe układy logiczne, w których nie można zmienić
sposobu generowania sygnałów bez fizycznej zmiany (przebudowy) ich struktury.
Podstawowe dane dla generowania sygnałów sterujących są zawarte w części operacyjnej
rozkazu. Część operacyjna jest dekodowana w dekoderze rozkazów. Dekoder rozkazów
jest to w ogólności zespół wielu dekoderów dekodujących różne pola części operacyjnej
rozkazu. W wyniku zdekodowania rozkazu, zwykle kilka linii wychodzących z dekodera
rozkazów uzyskuje aktywną wartość sygnału.
Sygnały z tych linii są następnie stale podawane na wejście matrycy generującej sygnały
sterujące dla układów wykonawczych komputera. Matryca ta realizuje kombinacje
logiczne tych sygnałów z wyjściami matrycy wytwarzającej kolejne stany sterowania i z
sygnałami przychodzącymi z zewnątrz komputera, np. sygnałami przerwań. Jest ona
zbudowana podobnie do programowalnych układów logicznych.
z
Sygnały sterujące dla danego rozkazu muszą być wytwarzane zwykle nie w jednej chwili
lecz w przeciągu interwału czasowego zawierającego wiele taktów czasowych, który
odpowiada cyklowi wykonania danego rozkazu. Ten cykl jest zorganizowany w postaci
szeregu stanów, które osiąga układ sterowania.
Część sygnałów wyjściowych generowanych przez matryce sygnałów sterujących jest
podana zwrotnie na wejście matrycy generatora następnego stanu sterowania. Ta matryca
kombinuje te sygnały z sygnałami czasowymi wytwarzanymi w układach taktujących z
podstawowego przebiegu zegarowego dostarczanego zwykle w wyniku działania
generatora kwarcowego.
W momencie dostarczenia nowego rozkazu do układu sterującego, układ ten przebywa w
stanie inicjalnym - pobrania nowego rozkazu. Zdekodowanie rozkazu powoduje, poprzez
linie sprzężenia zwrotnego, przejście do pierwszego stanu wykonania danego rozkazu,
który trwa tak długo jak długo są niezmienione: sygnał taktujący lub inne sygnały
wejściowe: flagi i zmienne stanu komputera.
z
Po zmianie każdego wejść generatora, następuje zmiana stanu sterowania, która powoduje
wygenerowanie odpowiedniego wejścia dla matrycy generatora sygnałów sterujących.
Pojawienie się sygnału zewnętrznego : np. sygnału przerwania, spowoduje, że następnym
stanem sterowania, będzie stan związany z reakcja na ten sygnał zewnętrzny np.
przerwanie.
Wartości flag i zmiennych stanu komputera powodują wybranie odpowiednich stanów
cyklu wykonawczego rozkazu.
Ostatnimi stanami w cyklu są stany sterowania wywołujące pobranie następnego rozkazu
programu: przesłanie zawartości licznika rozkazów do rejestru buforowego adresu pamięci
operacyjnej a następnie odczyt z pamięci do rejestru rozkazów komputera.
Gdy wykonywanym rozkazem jest rozkaz stopu, kończący wykonanie programu, układ
sterowania zostaje wprowadzony w stan pracy systemu operacyjnego, w którym oczekuje
on na następną dyrektywę użytkownika.
z
Struktury mikroprogramowanych układów sterowania
Zasadniczą różnicą w budowie tych układów porównaniu ze sprzętowym układem
sterowania jest obecność pamięci sterowania, która służy do przechowywania słów
zawierających zakodowane sygnały sterujące, potrzebne dla wykonania rozkazów.
W mikroprogramowanym układzie sterowania kolejne rozkazy są pobierane do rejestru
rozkazów. Jednak część operacyjna rozkazu nie jest bezpośrednio dekodowana dla celów
generacji sygnałów sterujących, lecz stanowi adres początkowy mikroprogramu zawartego
w pamięci sterowania.
z
Działanie mikroprogramowanego układu sterowania z
jednopoziomowa pamięcią sterowania
W wyniku podania kodu z części operacyjnej rozkazu do pamięci sterowania (do jej
rejestru adresowego) odczytany jest do rejestru mikrorozkazów pierwszy mikrorozkaz z
mikroprogramu, który interpretuje (realizuje poprzez interpretację przez mikrorozkazy)
wykonanie tego rozkazu.
Mikrorozkaz zawiera w części operacyjnej zakodowane sygnały sterujące, przeważnie w
postaci wielu pól bitowych. Część operacyjna podlega dekodowaniu w zespole dekoderów
pól mikrorozkazu.
Oprócz części operacyjnej, w mikrorozkazie znajduje się adres następnego mikrorozkazu
w mikroprogramie interpretującym dany rozkaz oraz pole sterujące układem generacji
adresu mikrorozkazu.
z
Pole sterujące układem generacji adresu określa tryb adresowania (operacje adresowa) do
wykonania na adresie pochodzącym z bieżącego mikrorozkazu.
Przy mikrorozkazach z warunkowym trybem adresowania następnego mikrorozkazu,
adres jest modyfikowany przez wartości bitów z przerzutników warunków (flag), które
reprezentują informacje o stanie obliczeń w komputerze.
Ostatnim mikrorozkazem mikroprogramu danego rozkazu jest zwykle mikrorozkaz
pobrania następnego rozkazu z pamięci operacyjnej do rejestru rozkazów.
z
Schemat mikroprogramowanego układu sterowania z jednopoziomową pamięcią
sterowania
Z pamięci operacyjnej
Rejestr adresu
mikrorozkazu
Rejestr
rozkazów
Część operacyjna Adres
Pamięć sterowania
Dekoder
(mikroprogramów)
Rejestr
Część operacyjna Cz.ster. Adres
mikrorozkazów
Dekoder
Informacje
Układy
stanu
DEK1 DEKp generacji adresu
z układów
mikrorozkazu
wykonaw-
czych
Sygnały sterujące
z
W układzie sterowania z dwupoziomową pamięć sterowania, oprócz pamięci
mikrorozkazów, występuje pamięć tzw. nanorozkazów.
W takim układzie sterowania, mikrorozkazy nie zawierają zakodowanych sygnałów
sterujących. W miejsce tego, w części operacyjnej mikrorozkazu podany jest adres słowa
w pamięci nanorozkazów, które zawiera zakodowane sygnały sterujące.
Pamięć nanorozkazów zawiera wszystkie możliwe kombinacje sygnałów sterujących
występujące w mikroprogramach interpretujących zbiór wszystkich rozkazów danego
komputera, zapisane jednokrotnie w postaci nanorozkazów.
W ten sposób unika się wielokrotnego pamiętania tych samych części operacyjnych w
mikrorozkazach.
z
Słowo mikrorozkazu jest w tym przypadku znacznie krótsze niż przy jednopoziomowej
pamięci sterowania.
Daje to znacznie mniejszą objętość w bitach pamięci mikrorozkazów a w rezultacie
znacznie mniejszą objętość całej pamięci sterowania.
W pamięci mikrorozkazów zapisane jest sterowanie wybieraniem kolejnych
mikrorozkazów, natomiast sygnały sterujące są generowane na podstawie nanorozkazów.
W nanorozkazach sygnały sterujące są często zakodowane metodą 1 bit na 1 sygnał, co
eliminuje potrzebę dekodowania. Jednakże możliwe jest kodowanie sygnałów w polach
wielobitowych, wymagających wprowadzenia dekoderów.
z
Schemat mikroprogramowanego układu sterowania z dwupoziomową pamięcią
sterowania
Rejestr adresu Z pamięci operacyjnej
mikrorozkazu
Rejestr
rozkazów
Część operacyjna Adres
Pamięć mikrorozkazów Dekoder
Część operacyjna Cz.ster. Adres
Rejestr mikrorozkazów
Informacje
Układy
stanu
generacji adresu
z układów
mikrorozkazu
wykonawczych
Dekoder Pamięć nanorozkazów
Sygnały sterujące zakodowane w słowie nanorozkazu
z
Mikroprogramowane układy sterujące nie są rzadkością w wykorzystywanych obecnie
mikroprocesorach.
Mikroprocesory firmy Intel serii x86 (USA), wykorzystywane do budowy komputerów
personalnych typu IBM PC, mają układy sterowania z jednopoziomowymi pamięciami
sterowania.
Mikroprocesory firmy Motorola serii 68xxx (USA), wykorzystywane do budowy
komputerów personalnych typu Mackintosh firmy Apple, mają mikroprogramowane
układy sterowania z dwupoziomowymi pamięciami sterowania.
Mikroprocesory typu RISC firm DECAlpha, Hewlett-Packard, SUN mają sprzętowe
układy sterowania.
z
Zarys historii komputera elektronicznego
J. Atanasoff, (pochodzenia bułgarskiego),
Uniwersytet Iowa, USA, projekt komputera
binarnego, częściowo elektronicznego o
1935
architekturze zbliżonej do architektury von
Neumana, komputer ABC (1942) nie
zrealizowany do końca fizycznie.
K. Zuse, Niemcy, komputery Z1, Z2, Z3,
budowa mechaniczno-elektryczno -
przekaznikowa, arytmetyka binarna, Z3
1936-1942
sterowany taśmą perforowaną, 8 bitowe
instrukcje.
B. Williams, firma Bell Telephone, USA,
1937-1940
komputery zbudowane na przekaznikach.
z
H. Aiken, Uniwersytet Harvard, USA, komputer
Mark I (ASCC), automatyczny kalkulator, z
1937-1944
pamięcią danych na przekaznikach i pamięcią
rozkazów programu na kartach perforowanych.
J. Ragazzini, R,. Randall, F. Russel, USA,
1938-1947
komputer analogowy.
J. Mauchly, J.P. Eckert, Universytet
Pensylvania, USA, komputer ENIAC, pierwszy
komputer na lampach elektronicznych, stały
1943-1946
program programowany przewodami i
przełącznikami, 20 rejestrów.
J. Mauchly, J.P. Eckert, Universytet
Pensylvania, USA, komputer programowany
1948
tablicami - przewody + przełączniki, pamięć
312 słów 12 cyfrowych.
z
J von Neuman, (pochodzenia węgierskiego),
Uniwersytet Pensylvania, USA, komputer
EDVAC, komputer na lampach elektronicznych,
1945-1952
pamiętany wymienialny program w pamięci
operacyjnej, pamięć na rtęciowej linii
opózniającej, następnie komputer IAS.
M. Wilkes, Uniwersytet Cambridge, Anglia,
komputer EDSAC, elektroniczny z pamięcią
1946-1949
rtęciową, następnie komputer BINAC, USA, z
pamięcią rtęciową.
A. Turing, Uniwersytet Cambridge, Anglia,
komputer ACE, elektroniczny z pamięcią
1946-1955
rtęciową.
J. Eckert, J. Mauchly, firma i komputery
1946-1951
rynkowe UNIVAC, wzorowane na ENIAC
z
F. Williams, komputer z pamięcią na lampie
1947-1951
kineskopowej.
J von Neuman, Uniwersytet Princeton, USA,
model komputera ORDVAC z pamięcią na
1946-1952
lampie kineskopowej Williamsa.
MIT, Politechnika Massachussets, USA,
komputer WHIRLWIND I, z pamięcią na lampie
1947-1951
kineskopowej.
Sperry RAND, CALDIC, USA, komputery z
1948-1954
magnetyczną pamięcią bębnową.
NCR, RCA, USA, pierwsze komputery
1957
tranzystorowe.
DEC, USA, pierwszy minikomputer
1957
tranzystorowy PDP-1.
z
IBM, USA, komputery tranzystorowe 7090
(7094), z magnetyczną pamięcią rdzeniową
1960
RAM i centralnym przełączaniu dostępu
kanałów zewnętrznych do procesora.
IBM, USA, pierwszy komputer serii IBM
System 360, architektura oparta na centralnym
1965
przełączaniu kanałów.
DEC, USA, minikomputer PDP-8 ze strukturą
modularną opartą na centralnej magistrali
1965
systemowej, pamięć rdzeniowa.
INTEL, USA, mikroprocesor 4-bitowy Intel
1971
4004.
INTEL, USA, mikroprocesory 8-bitowe Intel
1972
8008 i Intel 8080.
z
DEC, USA, mikrokomputer PDP-8/A z
pamięcią półprzewodnikową i procesorem
1975
zmiennoprzecinkowym.
INTEL, USA, mikroprocesory 16-bitowe Intel
1978
8086.
Berkeley University, Kalifornia, USA,
1980
komputery RISC I i II .
Stanford University, Kalifornia, USA, komputer
1981
typu RISC Stanford MIPS.
IBM, USA, komputer personalny IBM PC XT,
1981
(Intel 8086 16-bitowy).
MIT, USA, komputer sterowany przepływem
1983
danych MIT Static Data Flow.
z
INTEL, USA, mikroprocesor 16-bitowy Intel
80286, stosowany w komputerach personalnych
1983
IBM PC AT.
INMOS, Anglia, pierwsze procesory
1985
transputerowe T414, potem T800.
INTEL, USA, mikroprocesory 32-bitowe Intel
80386, zewnętrzna pamięć cache i koprocesor
1985
zmiennoprzecinkowy.
INTEL, USA, mikroprocesory 32-bitowe Intel
80486, wbudowana pamięć cache i wewnętrzna
1989
jednostka zmiennoprzecinkowa, przetwarzanie
potokowe.
DEC, USA, początek rodziny mikroprocesorów
DECAlpha, 64-bitowych, model DECAlpha
1992
21064.
z
Hewlett-Packard, USA, początek rodziny
1992
mikroprocesorów PA-RISC, 32-bitowe
INTEL, USA, mikroprocesory 32-bitowe Intel
1993 Pentium, przetwarzanie superskalarne i
potokowe.
IBM/Motorola/Apple, USA, początek rodziny
1993 mikroprocesorów PowerPC, model PowerPC
601.
INTEL, USA, mikroprocesory 32-bitowe Intel
Pentium Pro, przetwarzanie superskalarne,
1995
konwersja instrukcji na RISC, przetwarzanie
out of order .
Japonia, pierwszy mikroprocesor RISC z
1998
zegarem 1GHz.
z
INTEL, USA, mikroprocesory 64-bitowe IA-64
2001 Itanium, architektura EPIC, format instrukcji
typu VLIW.
Wyszukiwarka
Podobne podstrony:
biologia model PR (2)wos model PRmatematyka model PRfizyka model prlacina model PRModel pr II(TAK9)fizyka model PRModel pr I(TAK8)geografia model PRcke 2014 15 model PR odpowiedzi?????polski model PRwięcej podobnych podstron