Pozycyjne systemy liczbowe:
Przechowywanie, przetwarzanie i przesyłanie informacji stanowią od wieków przedmiot ludzkiego zainteresowania. Przechowywanie (pamiętanie) realizuje się przez operację zapisu. Najprostsze informacje zapisuje się przy użyciu pojedyńczych znaków, takich jak cyfry i litery.
Bardziej złożone informacje zapisuje się w postaci odpowiednio dłuższych
łańcuchów znakowych. Aby wykonać operację zapisu, najpierw należy utworzyć alfabet i język nad tym alfabetem.
Alfabet definiuje się jako skończony, niepusty zbiór różnych znaków
(np. A={a,b......,z}, D={0,1....,9}, który zazwyczaj jest uporządkowany, tzn. dana jest kolejność znaków alfabetu. Jeżeli alfabet zawiera tylko 2 znaki, to nosi on nazwę alfabetu dwójkowego (binarnego). Mogą to być dowolne dwa różne znaki, np. a i b, L i H, lecz najczęściej stosuje się cyfry 0,1 i wówczas alfabet dwójkowy oznacza się symbolem B={0,1}.
Językiem nazywa się niepusty, skończony zbiór różnych słów nad danym alfabetem.
System binarny:
Liczbę w systemie dwójkowym (binarnym) możemy rozpisać jako sumę kolejnych potęg liczby 2.
Przykład:
10010110=1x27 + 0x26 + 0x25 + 1x24 + 0x23 + 1x22+1x21 + 0x20
Współczynniki stojące przy potęgach znów są cyframi używanymi przez system dwójkowy i tworzą liczbę 10010110. W urządzeniach cyfrowych najczęściej jest stosowany naturalny kod dwójkowy, oznaczany literami NB (ang. Natural Binary). Kod dwójkowy kojarzy się zwykle z prawami G.Boole’a oraz C.E. Shannona. Pozycyjny, dwójkowy system numeracji jest najłatwiejszy i najprostszy. Reguły działań dla tego systemu są podane niżej w tabelach:
a b a+b a b a+b
0 0 0 0 0 0
0 1 1 0 1 0
1 0 1 1 0 0
1 1 10 1 1 1
System heksadecymalny:
układ liczbowy o podstawie 16, składający się z czterech cyfr lub bitów informacji, gdzie najmniej znaczący bit ma wartość 1, a najbardziej znaczący 8. Liczby w kodzie szesnastkowym przedstawiane są za pomocą cyfr 0-9 i liter A-F, co odpowiada dziesiętnemu zakresowi 0-15. Bajt informacji zawierający wartość 0-255 dziesiętnie zawiera się w przedziale
00-FF szesnastkowo.
Kody dwójkowo-dziesiętne (BCD).
Aby liczby dziesiętne mogły być użyte w systemie cyfrowym, muszą być przetworzone na kod dwójkowy lub zapisane w kodach dwójkowych noszących wspólną nazwę kodów BCD (ang. Binary Coded-Decimal).
W kodzie BCD każda cyfra liczby dziesiętnej jest oddzielnie kodowana dwójkowo w postaci odpowiedniego słowa. Cała liczba dziesiętna jest kodowana dwójkowo przez złożenie słów dwójkowych, reprezentujących wszystkie cyfry tej liczby.
KODY BCD
ND 8421 2421(Aikena) XS3-Graya 2z5(42210) 2z7(5043210)
0 0000 0000 0010 11000 0100001
1 0001 0001 0110 00011 0100010
2 0010 0010 0111 00101 0100100
3 0011 0011 0101 00110 0101000
4 0100 0100 0100 01001 0110000
5 0101 1011 1100 01010 1000001
6 0110 1100 1101 01100 1000010
7 0111 1101 1111 10001 1000100
8 1000 1110 1110 10010 1001000
9 1001 1111 1010 10100 1010000
ND 1z10(pierścieniowy)
0 0000000001
1 0000000010
2 0000000100
3 0000001000
4 0000010000
5 0000100000
6 0001000000
7 0010000000
8 0100000000
9 1000000000
Najpopularniejszy jest kod BCD 8421, obejmujący pierwsze 10 liczb z 4-bitowego naturalnego kodu dwójkowego. Kody 2421 i XS3 są kodami „samouzupełniającymi” w tym sensie, że uzupełnienie do 1 liczb
dwójkowych w tych kodach daje uzupełnieni do 9 odpowiednich liczb dziesiętnych. Upraszcza to wykonywanie niektórych operacji arytmetycznych.
Specjalnym rodzajem kodu BCD jest kod „1 z 10” (pierścieniowy). Kod ten jest najprostszym koncepcyjnie kodem do wprowadzenia do układu cyfrowego cyfr kodu dziesiętnego przez 10 wmnie wyłączalnych klawiszy lub do wyświetlania przez układ jednej z dziesięciu cyfr kodu dziesiętnego. Zastosowania takie są powszechne w relacjach człowiek-układ (system) cyfrowy. Stąd też przyjęto w technice cyfrowej określenia:
koder - układ służący do przemiany liczb w kodzie pierścieniowym na liczby w innym kodzie BCD i dekoder - układ służący do przemiany liczb w
niepierścieniowym kodzie BCD na liczby w kodzie pierścieniowym.Układy służące do wszystkich pozostałych przemian między słowami w różnych
kodach okresla się zwyczajowo, lecz niezbyt ściśle, jako konwertery kodów (p. 1.1).
Zalicza się do nich konwertery NB-BCD i BCD-NB. Typowe zastosowanie konwerterów kodów w systemie cyfrowym przedstawioneo na rys. 1.1.
Aby uniknąć konwersji BCDNB-NBBCD często w niewielkich urządzeniach cyfrowych (np. w kalkulatorach) wykonuje się przetwarznie danych w kodzie BCD.
Rys. 1.1
Typowe zastosowanie przetworników kodu w systemie cyfrowym.
BCD NB
urządzenia
zewnętrzne
BCD NB
REPREZENTACJA NIEKTÓRYCH LICZB W RÓŻNYCH KODACH NATURALNYCH
Kod dziesiętny Naturalny kod Kod szesnastkowy
(ND) dwójkowy (NB) (HEX)
0 0 0
1 1 1
2 10 2
3 11 3
4 100 4
5 101 5
6 110 6
7 111 7
8 1000 8
9 1001 9
10 1010 A
100 1100100 64
1000 1111101000 3E8
Operacje arytmetyczne na liczbach dwójkowych.
Poniższe działania będą omówione w odniesieniu do liczb całkowitych, lecz są one słuszne także dla liczb ułamkowych i ogólnie biorąc, ujemnych liczb rzeczywistych.
Dodawanie
W celu dodania dwu liczb dwójkowych P i Q dokonuje się sumowania par bitów na poszczególnych pozycjach, rozpoczynając od najmniej znaczącejgo bitu. Podobnie jak w arytmetyce dziesiętnej należy przy sumowaniu bitów na każdej (i-tej) pozycji uwzględnić bit przeniesienia.
Przykład
P = 1001 L(P) = 9
Q = 1101 L(Q) = 13
wynik Y = 10110 L(Y) = 22
W zasadzie liczby dwójkowe mogą być dodawane tylko parami, tzn., nie można dodawać „słupków” utworzonych z liczb dwójkowych. Dodawanie większej liczby argumentów dwójkowych wykonuje się zazwyczaj przez sekwencję dodawania poszczególnych argumentów. Na przyklłd, w celu dodania liczb A, B, C, D dodaje się najpierw A+B=W1, a następnie W1+C=W2 i W2+D=W. Taki proces sumowania kolejnych argumentów określa się jako sumowanie akumulacyjne.
Odejmowanie
W dwójkowym systemie liczbowym nie ma operacji odejmowania analogicznej do tej, która jest powszechnie używana w dziesiętnym systemie liczbowym. W zwiazku z tym również układy cyfrowe nie mogą wykonywać takiej operacji odejmowania - mogą tylko ddodawać. Dlatego, aby wykonać operację odejmowania liczb dwójkowych, należy dokonac zabiegu, który umożliwi wykorzystanie do tego celu operacji dodawania.
Zabiegiem takim jest przedstawienie odjemnika w jednym z kodów uzupełnieniowych i nastepnie wykonanie operacji dodawania z odjemna.
Czyli: należy zanegować odejmną, następnie dodać jeden do odejmnej (A),
powstał odejmnik, który należy dodać do odjemnej, na końcu odtrącić pierwszy nieznaczacy bit.
Przykład:
10 1010
- 8 1000
2 0010
A = 1000 0111 1000
+ 1 + 1010
A = 0111 1000 1 0010
Mnożenie
Podstawowa metoda mnożenia liczb dwójkowych jest podobna do mnożenia liczb dziesiętnych i polega na określeniu, a następnie dodaniu iloczynów częściowych. Operacja mnożenia polega zatem na realizacji ciagu przesunięć w lewo i akumulujących dodawań.
Przykład:
12 1100
* 10 * 1010
00 0000
+ 12 1100
0000
120 + 1100
1111000
Algebra logiki, funktory logiczne.
Algebra Boole’a ogólnie nazywamy co najmniej dwuelementowy zbiór zamknięty ze względu na dwa działania dwuargumentowe, jedno działanie jednoargumentowe i dwa działania zeroargumentowe, taki, że dla jego wszystkich elementów spełniony jest określony zespół aksjomatów. Nazwa algebry pochodzi od jednego z jej twórców (George Boole, 1815-1864).
W dalszym tekście pod nazwą „algebra Boole’a” będzie rozumiana zerojedynkowa algebra sygnałów binarnych, sformułowana do tego celu przez C.E. Shannona w 1938 r. W algebrze tej operację sumy oznacza się symbolem + lub , operację iloczynu symbolem lub i operację negacji (uzupełnienia) znakiem ` lub ‘. W dalszym tekście będą przyjęte operatory binarne „” i „”aby uniknąć dwuznaczności przy jednoczesnym
stosowaniu operatorów arytmetycznych. Stąd operator „+” będzie oznaczać wyłącznie dodawanie arytmetyczne, a do oznaczenia operacji mnożenia arytmetycznego będzie służyć znak „x”. Znaki „”będą w tekście pomijane, jeżeli nie utrudni to właściwej interpretacji danego zapisu. Operator unarny „` ” oznacza negację (uzupełnienie).
Z uwagi na silny związek algebry sygnałów binarnych z rachunkiem zdań (zwanym również rachunkiem logicznym) przy operowaniu algebra Boole’a często stosuje się przymiotnik „logiczny” w znaczeniu „boolowski” (np. iloczyn logiczny, mnożenie logiczne, stan logiczny, logiczne „0” i „1”).
Operator „”(„kubeczek”) wymawia się jako „plus” (logiczny) albo „lub”, np. a b czytamy „a plus b” (wiedząc, że jest to dodawanie logiczne) albo „a lub b”. Operator „” wymawia się jako „razy” (mnożenie logiczne) albo „i”, np. ab czytamy „ab” lub „a razy b” (wiedząc,że jest to mnożenie logiczne) albo „a i b”. Symbol negacji „` ” wymawia się jako „nie”, np. a czytamy „nie a”.
Zerojedynkowa algebra Boole’a sygnałów binarnych jest zatem opisana przez system , gdzie B = {0,1} jest zbiorem, w którym są określone operacje dwuargumentowe „” i „ ” i operacja jednoargumentowa „ ` ”. Tak więc dla dowolnych zmiennych boolowskich, tj. zmiennych przyjmujących wartości ze zbioru B, np. x, y, z, otrzymujemy następujące prawa algebry Boole’a:
1) x x = x, x x = x (idempotentność),
2) x y = y x, x y = y x (przemienność),
3) x (y z) = (x y) z
x (y z) = (x y) z (łaczność),
4) x (y z) = (x y) (x z)
x (y z) = (x y) (x z) (rozdzielność),
5) x (x y) = x, x (x y) = x (pochłanianie),
6) x 0 nośc x 1 = x (własności stałych),
7) x 1 = 1, x 0 = 0 (dalsze własje di stałych),
8) x x = 1, x x = 0 (własności negacji),
9) x = x (podwójna negacja),
10) x y = x y, x y = x y (prawa De Morgana).
Podstawowe funkcje logiczne:
1) OR - bramka OR, funkcja logiczna „lub” - jest to układ sumy logicznej,
który daje na wyjściu sygnał jeden, jeżeli tę wartość ma conajmniej
jeden z sygnałów. Oznacza to, że zero pojawia się wtedy i tylko wtedy,
kiedy oba sygnały są wartości zero,
A B W A
0 0 0
0 0 1 W
1 0 1 B
1 1 1
„0”
„1”
A
B
+
A
-
2) AND - bramka AND czyli funkcja ligiczna „i”, jest to układ logiczny
iloczynu, który spełnia następujące funkcje: na wyjściu pojawia się
sygnał 1 wtedy i tylko wtedy kiedy oba sygnały wejściowe posiadają
wartość logiczną jeden,
A B W A
0 0 0 W
1 0 0
0 1 0 B
1 1 1
A B
+
W
-
3) NOT - bramka NOT, funkcja logiczna „nie”, inwenter, jest to układ
zmieniający wartość logiczną sygnału na przeciwną tzn. , dając na
wejściu sygnał jeden na wyjściu pojawia się zero i odwrotnie,
A W
0 1 A W
1 0
Funkcje logiczne złożone:
1) NOR - bramka NOR, funkcja logiczna „nie-lub” , układ sumy
zanegowanej, jest to układ na którego wyjściu pojawia się sygnał jeden
wtedy i tylko wtedy gdy na wszystkich wejściach istnieje sygnał zero,
A B W A
0 0 1
0 1 0 W
1 0 0
1 1 0
B
A
W
B
2) NAND - bramka NAND, funkcja logiczna „nie-i”, jest to układ
logiczny iloczynu zanegowanego, dajacy na wyjściu wartość zero
wtedy i tylko wtedy gdy na wejściu wszystkie sygnały mają wartość
jeden,
A B W A
0 0 1
1 0 1
0 1 1 W
1 1 0 B
A
W
B
ELEMENTY I UKŁADY FUNKCJONALNE
Podstawowe układy cyfrowe stosowane w technice komputerowej.
Układy cyfrowe są w praktyce realizowane różnymi technikami. W prostych urządzeniach automatyki powszechnie stosowane są układy elektryczne, wykorzystujące przekaźniki jako podstawowe elementy przełączające. Są stosowane również cyfrowe układy pneumatyczne i hydrauliczne. Złożoność logiczna i szybkość działania takich układów jest jednak relatywnie niewielka, natomiast ich rozmiary, ciężar, pobór mocy i koszt są duże. Najpowszechniej stosowane układy cyfrowe wytwarzane są technologią mikoroelektroniczną jako układy scalone.
Układ scalony (ang. integrated circuit - IC) stanowi fizycznie wykonany mikrominiaturowy układ elektroniczny, którego część lub wszystkie elementy i ich połączenia są wytworzone we wspólnym procesie technologicznym, wewnątrz lub na powierzchni wspólnego podłoża. W czasie procesu technologicznego wytwarza się jednocześnie wiele takich struktur układowych w postaci kostek (płatków, ang. chip) półprzewodnikowych, najczęściej krzemowych, które po przetestowaniu umieszcza się w odpowiednich obudowach (znacznie większych od struktur). Obudowy te chronią struktury od szkodliwych wpływów otoczenia i ułatwiają realizację połączeń zewnętrznych. Do celów aplikacyjnych układem(modułem) scalonym nazywa się półprzewodnikowczonrukturę układową, umieszczoną w obudowie, z wyprowadzonymi końcówkami.
Cyfrowe układy scalone są wytwarzane wyłącznie jako układy monolityczne. Cyfrowe układy scalone, które jako elementy czynne wykorzystują tranzystory bipolarne (npn lubpnp),nazywasię bipolarnymi.Podobnie układy z tranzystorami unipolarnymi określa się jako unipolarne.
Niżej wymienione jest siedem klas cyfrowych ukladów scalonych, z których pierwsze cztery osiągnęły wysoki poziom technologiczny i znaczne upowszechnienie rynkowe oraz w dalszym ciągu są ulepszane jakościowo i rozszerzane asortymentowo. Nazewnictwo klas wywodzi się z terminologii angielskiej, związanej z charakterystycznymi cechami konfiguracji elektronicznej podsawowego funktora logicznego lub z użytą technologią.
Są to następujące klasy:
- TTL (ang. Transistor-Transistor Logic ) - układy TTL,
- ECL (ang. Emitter - Coupled Logic) - układy o sprężeniu emiterowym,
- MOS (ang. Metal-Oxide-Semiconductor) - układy MOS,
- CMOS (ang. Complementary MOS) - układy komplementarne MOS,
- I2 L (ang. Integrated Injection Logic) - układy iniekcyjne,
- CTD (ang. Charge Transfer Device) - układy o sprzężeniu ładunkowym,
- GaAs MESFET (ang. Gallium Arsenide Metal-Semiconductor Field-Effect
Transistor) - układy GaAs.
Klasy TTL, ECL, I2 L obejmują układy bipolarne, a pozostałe klasy dotyczą układów unipolarnych. Układy MOS dzielą się na dwie główne podklasy PMOS i NMOS, zależnie od typu przewodnictwa kanału użytych tranzystorów. W układach CMOS stosowane są tranzystory MOS w obydwu typach przewodnictwa (p i n).
Elementy układów scalonych.
Podstawowymi elementami aktywnymi układów scalonych są tranzystory. Ogólnie dzieli się tranzystory na: bipolarne i unipolarne (polowe). W cyfrowych układach scalonych jako elementy bierne stosuje się diody i rezystory, natomiast kondensatory w zasadzie nie są wykorzystywane. Wyjątek stanowią dynamiczne układy unipolarne, a w szczególności pamięci dynamiczne MOS.
Rezystory układów scalonych są również elementami półprzewodnikowymi, gdyż są wykonywane w postaci pasków odpowiednio domieszkowanego półprzewodnika.
UKŁADY TTL
Zależnie od stopnia scalenia układy TTL dzieli się na układy o małym stopniu scalenia (MSI) i dużym stopniu scalenia (LSI). Jednakże te ostatnie są często układami TTL tylko końcówkowo, natomiast ich struktura wewnętrzna wykorzystuje inne konfiguracje układowe, np. ECL lub ISL.
W praktyce inżynierskej układy TTL są traktowane jako układy uniwersalne. Dzięki dużemu asortymentowi typów i wielu odmian serii układy TTL dominują w zastosowaniach sprzętowych, wykorzystujących układy SSI i MSI. Konkurensyjne do nich są układy CMOS, a zwłaszcza ich odmiany szybkie (HCMOS i ACL).
UKŁADY ECL
Klasa układów ECL znanych w polskim nazewnictwie jako układy o sprzężeniu emiterowym, obejmuje kilka rodzin i serii układów scalonych. Ich najważniejszą i najbardziej charakterystyczną cechą systemową jest bardzo duża szybkość działania. Typowe czasy propagacji nowoczesnych układów z tej klasy wynoszą 0.72 ns, a ich maksymalna częstotliwość pracy 150 Mhz1.5 Ghz.
Interesujące jest porównanie układów ECL z układami TTL-S pod względem odporności na zakłócenia:
- układy ECL nie generują zkłóceń wewnętrznych, wywołanych zmianami
prądu zasilania przy przełączeniu (pod warunkiem symetrycznego,
jednakowego obciążenia), natomiast układy TTL-S produkują takie
zakłócenia,
- odporność układów ECL na zakłócenia zewnętrzne jest znacznie mniejsza
niż w układach TTL-S, gdyż impedancje wyjściowe układów obydwóch
klas są podobne, a wartości marginesów zakłóceń różnią się znacznie na
korzyść układów TTL-S,
- odporność układów ECL i TTL-S na zakłócenia przesłuchowe są podobne,
biorąc pod uwagę uwagę podobny stosunek marginesu zakłóceń do
wielkości ampitudylogicznej,
- niekompensowane układy ECL są bardziej wrażliwe na wpływ zmian
temperatury i napięcia zasilającego.
UKŁADY MOS
Zależnie od typu przewodnictwa kanału w strukturach polowych, układy MOS dzieli się na dwie podklasy: PMOS i NMOS. Technologia wytwarznia układów NMOS jest trudniejsza. Dlatego najpierw opracowano i upowszechniono układy PMOS. Dopiero po osiągnięciu wystarczjąco dobrego poziomu technologicznego, zaczęto produkować seryjnie układy NMOS, które zapewniają większą szybkość działania, większą gęstość integracji i kompatybiloności współpracy z układami TTL. W związku z tym nowoczesne układy MOS są niemal wyłącznie układami NMOS.
Cyfrowe układy MOS są realizowane w dwojaki sposób: jako układy statyczne (stanowią pod względem budowy logicznej dość wierne odbicie analogicznych układów bipolarnych, wadami są: relatywnie duża moc strat i duża złożoność układowa) lub dynamiczne (umożliwiają redukcję tych wad, jednak wymagają odpowiedniej synchronizacji pracy).
UKŁADY CMOS
Układy komplementarne CMOS stanowią specyficzną podklasę układów MOS. Wyróżniają się one charakterystyczną techniką układową, wykorzystującą komplementarne tranzystory PMOS i NMOS do budowy układów cyfrowych bez jakichkolwiek elementów rezystorowych. Asortyment układów CMOS jest bardzo szeroki i obejmuje wszystkie stopnie scalenia: SSI, MSI, LSI i VLSI. Układy te są szeroko stosowane zarówno w elektronice profesjonalnej, jak też w sprzęcie elektronicznym masowego użytku.
Układy CMOS można podzielić na cztery główne kategorie:
1. Układy do zastosowań masowych, o niewielkiej szybkości działania.
Układy te nie są objęte ogólnie przyjętą standaryzacją typów.
2. Uniwersalne układy cyfrowe SSI i MSI, stanowiace funkcjonalne
odpowiedniki układów TTL. Są one wytwarzane w dużym asortymencie,
w czterech zasadniczych rodzinach: 4000B, HCMOS, ACMOS (FACT)
i ACL. Dominacja nowoczesnych układów CMOS nad układami TTL
jest wyraźna, również w odniesieniu do zdolności sterownia dużych
obciążeń.
3. Uniwersalne układy cyfrowe LSI i VLSI, głównie układy mikroproce-
sorowe i pamięciowe. Napięcie zasilania tych ukladów było pierwotnie
ustalane jako równe 5 V + /- 0.5 V, aby zapewnić pełną kompatybilność
zasilania z układami TTL.
4. Układy specjalizowane (ASIC - ang. Application Specific Integrated
Circuits), takie jak matryce bramkowe i komórkowe.
Zasadnicze parametry cyfrowych układów scalonych.
Z punktu widzenia projektanta wykorzystującego cyfrowe układy scalone, istotne są następujące parametry:
- szybkość działania,
- moc strat,
- odporność na zakłócenia,
- zgodność łączeniowa i obciążalność.
Pamięci półprzewodnikowe.
Układy pamięci półprzewodnikowych generalnie są wykonywane w technologii bipolarnej i unipolarnej. Większość pamięci wytwarza się przy użyciu technologii MOS i CMOS, które zapewniają największe pojemności i najniższy koszt w przeliczeniu na bit. Pamięci bipolarne są tradycyjnie stosowane tam, gdzie wymagana jest możliwie największa szybkość dzialania, na przykład do budowy bloków pamięci buforowej (ang. cach) w szybkich komputerach. Łączne wykorzystanie technologii bipolarnej i CMOS (technologia Bi-CMOS) umożliwia osiągnięcie stopnia scalenia zbliżonego do układów MOS i jednocześnie zwiększenie szybkości działania do poziomu bliskiego układom bipolarnym. Dużą szybkość oferują również układy pamięciowe wytwarzane na bazie arsenku galu (GaAs), lecz duże trudności technologiczne i bardzo duży koszt ograniczają praktyczne zastosowanie tej technologii.
Łączenie układów pamięci scalonych w bloki o różnych organizacjach.
System cyfrowy składa się z odpowiedniej liczby połączonych ze sobą układów scalonych. Im większy i bardziej złożony jest system, tym większa jest liczba użytych układów scalonych, przy czym często ze względów technicznych i ekonomicznych należy ze sobą łączyć układy scalone z różnych serii i klas. Stąd zdolność bezpośredniej współpracy różnych rodzajów cyfrowych układów scalonych stanowi ich istotny parametr techniczny. Układy A są zgodne łączeniowo (kompatybilne) z układami B, jeśli zarówno bezpośrednie połączenie wyjścia układu A z wejściem układu B, jak i bezpośrednie połączenie wyjścia układu B z wejściem układu A zapewnia elektrycznie porawną współpracę obydwóch łączonych układów.
Cyfrowe układy scalone są projektowane głównie do współpracy z układami z tej samej serii. Do szacowania ilościowego możliwości takiej współpracy jest wprowadzone pojęcie znormalizowanego obciążenia N.
Obciążenie to jest miarą liczby wejść układów z tej samej serii, które są przyłączone jednocześnie do jednego wyjścia. Maksymalna wartość Nmax jest określana jako obciążalność wyjściowa lub po prostu obciążalność. W układach scalonych TTL jest ona standardowo równa 10, co wynika z ograniczeń wywołanych obciążeniem statycznym. W układach ECL, MOS i CMOS obciążalność statyczna jest znacznie większa, lecz praktycznie dopuszczalna liczba N zależy od wartości pojemności obciążenia, która ogranicza szybkość procesorów przełączania.
Przy wzajemnym łączeniu układów scalonych z różnych serii, lecz w obrębie jednej klasy, należy uwzględnić odpowiednie poprawki, zwiększające lub zmniejszające wartośc Nmax.
Przy łączeniu układów scalonych z różnych klas często występuje konieczność stosowania odpowiednich układów pośredniczących (translatorów) lub dodatkowych elementów, umożliwiających sprzężenie układów o różnym trybie pracy i różnych napięciach wejściowych i wyjściowych (zarówno na niskim, jak i na niskim poziomie logicznym).
Najczęściej jest stosowane określenie zgodności łączeniowej z układami TTL, co się tłumaczy bardzo szerokim upowszechnieniem tej klasy. Zdolność bezpośredniej współpracy z układami TTL, co stanowi dużą zaletę, mają układy NMOS i CMOS (przy uwzględnieniu określonych katalogowo ograniczeń, dotyczących Nmax).
SYSTEMY MIKROPROCESOROWE
Archtektura mikroprocesorów.
Jeśli obiektem sterowania jest cyfrowy blok funkcjonalny lub ich zespół służący do arytmetycznego lub/i logicznego przetwarzania informacji to cały zespół funkcjonalny nazywa się układem przetwarzającym lub krótko procesorem. Jeśli taki zespół jest wykonywany jako układ scalony, to nazywa się go mikroprocesorem (przedrostek „mikro” związany jest z mikroelektroniką).
Architektura popularnych mkroprocesorów 8086/8088 firmy Intel, powszechnie stosowanych w komputerach osobistych IBM PC/XT i kompatybilnych, może być omówiona w oparciu o funkcjonalny schemat blokowy z rys. 1.2. Na rysunku tym są pokazane wszystkie rejestry robocze, dostępne programiście na poziomie języka asemblera. Zasadnicze przeznaczenie każdego rejestru ujęte jest bezpośrednio w nazwie, co wiąże się z użytym trybem adresowania i rodzajem argumentów operacji. Główne tryby adresowania są następujące (po przecinku zdefiniowano argument n lub jego adres a w pamięci M):
- natychmiastowy, n
- bezpośredni, M(a)
- zawartością rejestru, M(B) lub M(I)
- bazowy, M(B+d)
- indeksowy, M(I+d)
- indeksowo-bazowy, M(I+B+d).
Symbol B dotyczy rejestrów bazowych (BX lub BP), podobnie I - rejestrów indeksowych (SI lub DI), natomiast d oznacza przesunięcie 8- lub 16bitowe, które może być ujęte w formacie rozkazu po polu operacji. Pole to zajmuje jeden lub dwa bajty, a argumenty operacji najwyżej cztery bajty, czyli rozkaz może zawierać od jednego do sześciu bajtów.
Zbiór rozkazów mikropricesora 8086/8088 umożliwia następujące operacje:
- przesłanie typu rejestr-rejestr, rejestr-pamięć, stos-rejestr, rejestr-stos,
rejestr-we/wy, we/wy-rejestr,
- operacje aytmetyczne: dodawanie, odejmowanie, porównywanie,
mnożenie i dzielenie dwójkowych liczb całkowitych bez znaku lub ze
znakiem, jak również liczb dziesietnych,
- operacje logiczne AND, OR, XOR i NOT,
- operacje tekstowe (gdy słowa danych są traktowane jako łańcuchy
znakowe): przepisywanie ciągu słów z jednego obszaru pamięci do
drugiego, szukanie i porównywanie słów,
- różne rodzaje skoków,
- sterowanie stanem mikroprocesora.
Rys. 1.2
Funkcjonalny schemat blokowy mikroprocesora 8086/8088 firmy Intel
ksero
strona 721
zakryć numer rysunku w książce i napis też
Szyny i sygnały sterujące.
Jedną z miar mocy mikroprocesora jest szerokość jego szyny danych (ang. data bus). Stanowi ona elektroniczna autostradę przepływu informacji - im szersza szyna (więcej „pasów”),
tym wiecej danych może być przenoszonych w tym samym czasie. Mikroprocesor ma zarówno wewnetrzną, jak i zewnętrzną szynę danych. Wewnętrzna szyna danych przenosi dane pomiędzy wewnętrznymi składnikami mikroprocesora. Zewnętrzna szyna danych służy do komunikacji między mikroprocesorem a innymi częściami komputera, takimi jak stacje dysków, karty rozbudowy i pamięć.
Inną miarą mocy mikroprocesora jets szerokość jego szyny adresowej (ang. address bus). Szerokość szyny adresowej mikroprocesora określa ilość pamięci, do której ten mikroprocesor może mieć dostęp. Na przykład 8086, ze swoją 20-bitową szyną adresową, może mieć dostęp do 1 MB pamięci. 80286 natomiast, mający 24-bitową szynę adresową, może się odwoływać do 16 MB pamięci, a także ma 16-bitowe szyny danych: zaróno wewnętrzną jak i zewnętrzną.
Termin bity jest powszechnie stosowany do określania szerokości szyny danych mikoroporocesora. Na przykład, 8086 jest nazywany mikroprocesorem 16-bitowym, ponieważ ma 16-bitową wewnętzną szynę danych. W pierwszych PC użyto mikroprocesora Intel 8088, jest on znany jako mikroprocesor 8/16-bitowy. Wynika to z tego, że w 8088 jest 8-bitowa zewnętrzna szyna danych, ale 16-bitowa wewnętrzna szyna danych.
Niezależnie od różnic technicznych, zarówno 8088, jak i 8086 maja 20-bitową szynę adresową i mogą mieć dostęp do 1 MB pamięci. Maksymalna ilość pamięci, do której może mieć dostęp dany mikroprocesor, określana jest jako przestrzeń adresowa (ang. address space) tego mikroprocesora.
Mikroporocesor 80386 ma 32-bitowe szyny danych: tak wewnętrzną jak i zewnętrzną. Jets on zgodny z 80286 i 8086, lecz ma 32-bitową szynę adresową, dzięki czemu może mieć dostęp do zadziwiającej liczby 4096 MB pamięci.
Mikroprocesor 80386SX ma 32-bitową wewnętrzną szynę danych i cały czar pamięci 80386. Mimo to 80386SX jest nazywany mikroprocesorem 16/32-bitowym; ma tylko 16-bitowa szynę danych.
Mikroprocesor i486 ma 32-bitowe szyny zarówno danych, jak i adresową. Jeśli chodzi o pamięć działa on tak samo jak 80386 i 80386SX.
Przestrzeń adresowa, rejestry i sposoby adresowania pamięci.
Przestrzeń adresowa.
Całkowita pojemnośc pamięci, którą mikroprocesor jest w stanie zaadresować. 8088/8086 ma przestrzeń 1 MB, 80286 ma przestrzeń 16 MB, zaś ‘386 ma przestrzeń adresową 4096 MB (z wyjątkiem 80386SX, majacego przestrzeń adresową 16 MB).
Rejestry.
W praktyce rejestr jest to szereg komórek pamięci, które znajdują się w obudowie procesora, a nie na zewnątrz, w osobnym układzie scalonym. Grupy tych komórek mają ściśle określone nazwy i przeznaczenie.
A oto ich przeznaczenie:
- rejestry AX, BX, CX, DX są rejestrami ogólnego przeznaczenia. Są
wykorzy stywane do przechowywania danych w zasięgu segmentu,
- w komputerach 32-bitowych rejestry EAX, EBX, ECX, EDX pełnią rolę
rejestrów ogólnego przeznaczenia,
- rejestry SP i BP (ESP i EBP) są rejestrami wskaźnikowymi, są używane
do adresowania pamięci,
- rejestry SI, DI (ESI, EDI) służą do adresowania danych, wykonywania
operacji logicznych, arytmetycznych itp.,
- rejestr CS wskazuje segment programu, z którego pobierane są rozkazy do
wykonania,
- rejestr DS wskazuje segment, w którym znajdują się dane zadeklarowane
w programie,
- rejestr ES wskazuje dodatkowy segment danych,
- rejestr SS wskazuje segment, w którym jest zdefiniowany stos,
- rejestr IP (EIP) wskazuje aktualnie wykonywaną instrukcję programu,
- rejesrtr TR służy do przechowywania segmentu stanu aktualnie wykony-
-wanego zadania.
Generalnie rejestry dzieli się na dostępne dla programisty i niedostępne, czyli na których jawnie operują określone rozkazy maszynowe lub nie.
Rejestry dostępne programowo dzieli się z kolei na uniwersalne, które mogą być wykorzystywane do różnych celów (np. jako pamięć podręczna), oraz specjalne, których funkcje są ściśle określone. Do rejestrów niedostępnych programowo zalicza się przykładowo rejestr rozkazów IR i dodatkowy rejestr pomocniczy TR.
Sposoby adresowania pamięci.
Istnieje wiele sposobów adresowania. Sposoby te związane są z konkretnym typem mikroprocesora.
Najprostsze jest adresowanie natychmiastowe (proste), gdy w formacie rozkazu po słowie operacji następuje bezpośrednio argument, czyli nia ma potrzeby pobierać go ani z pamięci, ani z żadnego rejestru procesora (rys. 1.3a).
Drugim popularnym trybem adresowania jest adresowanie rejestrowe (rys. 1.3b). Żądany rejestr roboczy zazwyczaj jest wybierany przez wydzielone pole w słowie operacji.
Jeśli w rejestrze roboczym jest umieszczony nie argument, lecz jego adres zwany wskaźnikiem argumentu, to otrzymuje się adresownie wskażnikowe, określane również jako rejestrowe pośrednie (rys. 1.3c).
W adresowaniu bezpośrednim adres argumentu jest umieszczony wprost w części adresowej rozkazu (rys. 1.3d). Na rysunku pokazano przypadek typowy dla mikroprocesorów 8-bitowych, gdy 16-bitowy adres efektywny stanowi złożenie dwóch bajtów, stanowiących część adresową rozkazu.
Adresowanie indeksowe pokazano na rysunku 1.3e. Nazwa ta pochodzi od typowego zastosowania, związanego z operacjami na tablicach. Wówczas adrse początku tablicy umieszcza się w części adresowej rozkazu, a pozycję (indeks) elementu tablicy określa zawartość rejestru indeksowego, którą można łatwo modyfikować (np. cyklicznie zwiększać lub zmniejszać o 1).
Na rysunku 1.3d przedstawiono analogiczny tryb adresowania względnego (bazowego), w którym rejestr bazowy zawiera adres początku struktury (np. rekordu), natomiast część adresowa rozkazu zawiera odpowiednie przesunięcie tego adresu.
W praktyce nazwy trybów: indeksowy i względny (bazowy) są niekiedy mylone. Można przyjąć generalną zasadę, że adresowanie względne ma miejsce wówczas, gdy część adresowa rozkazu jest za krótka do zaadresowania dowolnej komórki pamięci. Czasem nazwę trybu względnego odnosi się tylko do przypadku, gdy adres efektywny otrzymuje się przez dodanie zawartości licznika rozkazów do części adresowej rozkazu.
Rys. 1.3
Podstawowe sposoby adresowania:
a) natychmiastowe, b) rejestrowe, c) wskaźnikowe, d)bezpośrednie, e)indeksowe, f) względne (bazowe).
sstrona 695 zkryć numer rysunku i napis
Organizacja pamięci podręcznej.
Pod pojęciem podręcznej pamięci dyskowej należy rozumieć program podstawowy oraz część pamięci wydzieloną do odczytywania i przechowywania informacji o dysku, aby w ten sposób przyspieszyć działanie programów lub operacji na zbiorach. Programy typu disk-caching przejmują i obsługują zapotrzebowanie programu na uzyskanie informacji na dysku. Często program typu disk-caching jest w stanie wykonać wyżej wymienione zadanie znacznie szybciej niż BIOS czy DOS, który normalnie zajmuje się takimi zadaniami i dostarcza na żądanie wykonywanego przez komputer programu dane, plus, w dodatku do początkowych wymagań programu, pewną partię informacji o dysku. Te dodatkowe dane są przechowywane w pamięci, w przewidywaniu, że program może ich właśnie zażądać.
Podręczny bufor pamięci może mieć postać sterownika urządzenia, który dołączasz do swojego pliku CONFIG.SYS lub programu rezydentnego, który uruchamiarz poleceniem DOS lub poprzez plik AUTOEXEC.BAT.
Pamięci podręcznej dysku nie należy mylić z RAM dyskiem, tymczasowym dyskiem wirtualnym utworzonym w obszarze pamięci. RAM dysk, choć na zapis i odczyt reaguje tak szybko jak na to tylko pozwala system i pamięć, nie zapewnia trwałego przechowywania danych, chyba, że po zakończeniu pracy skopiujesz ten plik na dyskietkę lub twardy dysk.
Środki ostrożności przy korzystaniu z pamięci podręcznej.
Buforowanie danych, które mają być zapisane na dysku nie jest całkiem pozbawione ryzyka, narażając cię na ich utratę w razie wystąpienia jakichkolwiek błędów pamięci lub najdrobniejszej awarii systemu podczas tego krótkiego okresu czasu, gdy informacje są przechowywane w pamięci podręcznej, lecz nie zostały jeszcze zapisane na dysku. Zalecamy stosowanie bardzo krótkiego interwału czasu między zapisami na dysku, jeżeli oprogramowanie pamięci podręcznej pozwala na ustawienie tej wartości. Podczas pracy pamięci podręcznej ma miejsce kilka milionów operacji procesora i zapewne działaja też inne programy. Każde zwiększenie interwału zapisu ponad jedną lub dwie sekundy naraża dane na rosnące ryzyko utraty.
Wiele programów zaleca, by dyskowa pamięć podręczna, a zwłaszcza buforowanie zapisu, było wyłączone podczas pewnych operacji programów użytkowych, włącznie z formatowaniem niskiego poziomu, testowaniem i wykrywaniem usterek twardego dysku, sortowaniem i kompresją plików i katalogów (defragmentacją plików).
Ogólnie rzecz biorąc, dyskowa pamięć podręczna jest efektywną metodą polepszenia osiągów systemu poprzez ominięcie zwłoki, narzuconej przez BIOS, DOS. Aby przyspieszyć działanie dysku elastycznego lub twardego należy użyć podręcznej pamięci dyskowej.
Organizacja pamięci.
Pamięć operacyjna RAM, która jest wykorzystywana przez komputer, nie jest traktowana przez DOS jako obszar ciągły. DOS nie pozwala na to ze względów historycznych. Jedynie nieliczne programy dodające specjalną warstwę do systemu, tzw, „DOS-extendery” umożliwiają taką pracę.
Struktura pamięci jest ściśle zdefiniowana:
- pierwsze 640 KB pamięci (pamięć główna lub pamięć podstawa) jest
przeznaczona do ładowania wszystkich programów niezbędnych do
funkcjonowania systemu operacyjnego i do ładowania programów
aplikacyjnych;
- im więcej miejsca zajmie system operacyjny, tym mniej miejsca zostanie
dla programów aplikacyjnych;
- część zawarta między 640 KB a 1 MB jest nazywana górnym obszarem
pamięci. Zawiera ona w szczególności pamięć ekranu monitora (tekst
i grafikę), pamięć stałą (ROM) sterującą urządzeniami zewnętrznymi itd.;
- pamięć powyżej 1 MB, zwana jest pamięcią rozszerzoną. Każdy komputer
może jej mieć dość dużo (komputer z procesorem 286 może mieć 16 MB,
a z procesorem 386 aż 4 GB).
Podział operacji wejścia/wyjścia.
Mikroprocesor (jednostka centralna) ma następujące wejścia i wyjścia:
-wejście zerujące,
- wejścia/wyjścia równoległe,
- wejścia przerywjące.
Wejście zerujące umożliwia rozpoczęcie wykonywania programu od określonego adresu pamięci programu.
Wejścia i wyjścia równoległe to magistrale: adresowa, danych i sterująca, przez które mikroprocesor komunikuje się z pamięciami i modułami sprzęgającymi.
Moduły sprzęgające we/wy (ang. interface units) można podzielić na następujące grupy:
- uniwersalne moduły sprzęgające, umożliwiające równoległe przesyłanie
informacji między mikroprocesorem a dowolnym urządzeniem
zewnętrznym;
- specjalizowane moduły sprzęgające do dysku elastycznego, klawiatury i
wyświetlacza, monitora ekranowego itp.;
- moduł transmisji szeregowej, umożliwiający szeregowe przesyłanie
informacji między mikroprocesorem a urządzeniem zewnętrznym;
- moduł bezpośredniego dostępu do pamięci (DMA), umożliwiający przesy-
łanie informacji między urządzeniem zewnętrznym a pamięcią bez udziału
procesora;
- moduły czasowe (timery);
- moduły przerwań.
Zasady współpracy mikroprocesora z układami zewnętrznymi.
Procedura przesyłania informacji między mikroprocesorem a złożonym urządzeniem zewnętrznym nosi nazwę przesyłania z potwierdzeniem (ang. hand-shaking). Istota jej jest następująca:
- źródło informacji zawiadamia odbiornik o gotowości informacji do odczy-
tania;
- odbiornik odczytuje te informację i potwierdza jej odebranie;
- sygnał potwierdzenia jest jednocześnie żądaniem podania nowej informacji
przez źródło.
Procedura komunikacji jest następująca:
- urządzenie wejściowe podaje informację na szynę danych modułu
sprzęgającego i wysyła sygnał potwierdzenia 1;
- sygnał ten wpisuje informacje do rejestru buforowego i ustawia wskaźnik
stanu (ang. status flag) w rejestrze stanu; ustawienie wskaźnika stanu
informuje mikroprocesor, że może on odczytać informację z bufora;
- odczytanie przez mikroprocesor informacji z rejestru buforowego zeruje
wskaźnik stanu.
Tryby pracy: rzeczywisty, wirtualny, ochrona zasobów.
W trybie rzeczywistym, mikroprocesor 80286 działa dokładnie jak 8088;
może używać tylko 1 MB RAMa, a pamięć typu extended nie może być używana do uruchamiania programów. W trybie chronionym, 80286 uwalnia się. Może mieć dostęp do 16 MB RAMa i uruchamiać programy w dowolnym miejscu. Pamięć typu extended jest szeroko otwarta dla mikroprocesora.
‘386 ma tryby rzeczywisty i chroniony, dokładnie tak samo, jak 80286.
W trybie rzeczywistym, ‘386 działa jak bardzo szybki 8088, lecz w trybie chronionym ‘386 może mieć dostęp do 4096 MB RAMa przeznaczonych do uruchamiania programów i zapisywania informacji. Poza tym, przy pracy w systemie operacyjnym dopuszczającym tryb chroniony, ‘386 ma tzw. tryb wirtualny 8086 lub V-86. W trybie tym system operacyjny może wykonywać wiele programów na raz. Każdy z tych programów wierzy, że działa na oddzielnym mikroprocesorze 8088 ze swoją własną, niepowtarzalną przestrzenią adresową 1 MB.
PŁYTY GŁÓWNE
Procesory.
W znajdujących się obecnie w użyciu mikrokomputerach zgodnych z
IBM PC stosowane są różne procesory należące do wielkiej rodziny nazywanej „80x86”. Jak dotąd wszyscy jej przedstawiciele - począwszy od 8086, a skończywszy na Pentium Pro - są procesorami typu CISC (ang. Complex Instruction Set Computing), jednak wszystko wskazuje na to, że kolejni jej przedstawiciele (o roboczym znaczeniu P7) będą procesorami typu RISC (ang. Reduced Instruction Set Computing).
W każdym procesorze można wyróżnić następujące bloki:
- jednostkę arytmetyczno-logiczną wraz z zestawem rejestrów wewnę-
trznych,
- jednostkę rozkazową,
- układ wykonawczy,
- układ adresujący,
- układ sterowania magistralami, zblokowany z podręczną kolejką rozkazów
Rys. 1.4
Zestaw rejestrów procesorów 80x86 dostępnych dla programisty:
Procesory Procesory
8086, 8088, 8186, 386,486,
8188, 286 Pentium
16- 32-
15 87 16-bitowe 31 23 15 87 0 bitowe bitowe
AH AL AX AH AL AX EAX
rejestry
BH BL BX BH BL BX EBX
ogólneg CH CL CX CD CL CX ECX
przezna- DH DL DX DH DL DX EDX
czenia BP BP EBP
SI SI ESI
DI DI EDI
SP SP ESP
rejestry CS CS
segmento- SS SS
we DS DS
ES ES
FS
GS
rejestry FLAGS EFLAGS
statusowe IP EIP
i sterujące
Rys.1.5
Rodzina procesorów Intel 80x86
Szerokość Szerokość Prze- Maksymalna Koopro- Często- Zasto-
Pro- magistrali magistrali strzeń częstotli- cesor nu- tlowość ta- sowanie
cesor danych adresowej adre- wość ta- meryczny ktująca koo- w mo-
[bit] [bit] sowa ktująca[MHz] procesora demach
8088 8 20 1MB 10 8087 jak procesora PC, XT
8086 16 20 1MB 10 8087 jak procesora XT
80188 8 20 1MB 10 8087 jak procesora Laptop
80186 16 20 1MB 10 8087 jak procesora Laptop
80286 16 24 16MB 12 80287 2/3 procesora AT
80386 16 24 16MB 20 80387 jak procesora AT
SX SX
80386 32 32 4MB 33 80387 jak procesoraAT, PS/2,
DX DX EISA,
VL Bus
80486 32 32 4GB 25 80487 jak procesoraAT, PS/2,
SX SX EISA,
VL Bus
80486 32 32 4GB 50 wbudo- AT, PS/2,
DX wany EISA, VL
Bus,PCI
80486 32 32 4GB 66 wbudo- AT, PS/2,
DX2 wany EISA, VL
Bus, PCI
80486 32 32 4GB 100 wbudo- AT, PS/2,
DX4 wany EISA, VL
Bus, PCI
Pentium 64 32 4GB 133 wbudo- AT, PS/2,
wany EISA, VL
Bus, PCI
Pentium 64 36 64GB 150 wbudo- PCI
Pro wany
Gniazda rozszerzeń - standard ISA, magistrala Vesa Local-Bus, magistrala PCI.
Standard ISA.
Posiada on 8-bitową („któtszą) lub 16-bitową („dłuższą”) linię danych. Standardy te spotykane są prawie na każdej płycie głównej.
Slot ISA 8-bitowy składa się m.in. z 20 linii adresowych i 8 linii danych, zaś slot 16-bitowy składa się z 24 linii adresowych i 16 linii danych. Do niedawna były to najpopularniejsze typy slotów stosowanych w komputerach klasy PC. Pochodnym typem slotów od slotów typu ISA jest slot typu EISA posiadający 32-bitową szynę adresową i danych.
Magistrala Vesa Local-Bus.
Pod nazwą VESA (Video Electronics Standards Association) kryje się system 32-bitowej szyny lokalnej dedykowanej w zasadzie obsłudze tylko dwóch urządzeń karty sterownika monitora i kontrolera dysków.
Struktura magistrali VESA jest bezpośrednio połączona z magistralą lokalną procesora i486.
Magistrala zewnętrzna VESA taktowana jest zegarem procesora, którego częstotliwość nie może przekraczać 40 Mhz. Złącze VESA nie jest niczym innym jak dodatkowym gniazdem umieszczonym w jednej linii z gniazdem ISA. Daje to możliwość użytkowania w takim gnieździe zarówno kart nowego standardu, które sięgają swymi stykami do dodatkowego gniazda jak jak i zwyczajnych kart ISA nie czerpiących korzyści z rozszerzenia architektury.
Zaletą tej magistrali jest możliwość podłączenia bezpośrednio do procesora nie tylko szybkiego urządzenia graficznego, ale także innych urządzeń I/O.
Do wad trzeba zaliczyć niestety zależność od procesora (wskazane jest używanie i486, ale spotyka się rozwiązania z 386). Druga wada polega na tym, że procesor musi być wstrzymany na czas transferu danych do/z pamięci.
Magistrala PCI.
Magistrala PCI (Peripherial Component Interconnect) opracowana przez firmę Intel jest najnowszym rozwiązaniem 32-bitowej szyny lokalnej. Pomimo zbliżonych parametrów w dość krótkim czasie wyparła magistralę VESA. Ponieważ magistrala VESA oparta jest na magistrali lokalnej procesorów 386, i486 i karty rozszerzeń są dostosowane do współpracy z tymi procesorami. Magistrala PCI jest niezależna od typu procesora - dzięki temu wykorzystywana jest również w komputerach opartych o procesory Power PC.
Magistrala PCI daje możliwość tworzenia złożonych systemów. W jednym systemie może współpracować do 256 magistrali PCI, przy czym każda z nich może obsługiwać do 32 urządzeń PCI, a każde urządzenie może pełnić do 8 funkcji. O możliwości architektury PCI może świadczyć fakt, że w produkowanych obecnie komputerach klasy PC opartych na architekturze PCI wykorzystywana jest jest tylko jedna magistrala PCI, obsługująca około 10 urządzeń.
Na płytach głównych umieszcza się zwykle 4 gniazda magistrali PCI (standard dopuszcza 32 gniazda), przy czym na każdej karcie rozszerzającej może być umieszczone do 8 urządzeń PCI. Na ogół, oprócz 32-bitowych złącz PCI, umieszczane są na płycie dwa lub trzy gniazda 16-bitowej magistrali ISA.
Złącza i zworki na płytach głównych.
Na rynku komputerów coraz częściej pojawiają się płyty główne, które zawierają podane złącza wbudowane w płytę. Takie płyty zawierają również sterowniki grafiki, a czasami możemy znaleźć na nich karty sieciowe zgodne ze standardem Ethernet.
Złącze szeregowe 9-pinowe.
Jest to złącze DB-9P zgodne ze standardem RS 232. Może być używane przez takie urządzenia zewnętrzne jak np. myszka.
1
6 9
1. Sygnalizacja przesyłu danych.
6. Wstawienie sygnału gotowości do odbioru danych.
9. Wskaźnik pierścieniowy.
Złącze równoległe Centronics.
Jest to złącze DB-25S męskie. Pozwala ono na pseudo-dwukierunkowy przepływ danych i jest najczęściej używanym złączem do drukarek.
1
25 14
1. Sygnałstrobu.
14. Automatyczny wysuw papieru.
18-25. Masa.
Złącze szeregowe 25-pinowe.
Jest to złącze DB-25P żeńskie zgodne ze standardem RS 232. Jest ono wykorzystywane przy urządzeniach zewnętrznych, takich jak drukarki szeregowe, plotery lub skanery.
1
25 14
1. Masa.
9-14. Złącz niewykorzystane.
23-25. Złącza niewykorzystane.
Blok pamięci komputera:Moduły SIMM.
Ang. Single In-line Memory Module (jednorzędowy mikropakiet pamięci).
Bank kości RAMa, zainstalowanych razem na mini-karcie rozbudowy, wielkości połowy kieszonkowego grzebienia.
Struktura pamięci RAM .
Istnieją dwa podstawowe rodzaje pamięci komputera: RAM i ROM.
Przeważająca część pamięci komputera jest to tzw. pamięć o dostępie swobodnym (ang. -random access memory, RAM). RAM jest to pamięć, w której komputer może czytać i na którą może zapisywać. RAM jest pamięcią „ulotną” - gdy tylko wyłączy się komputer, wszelkie informacje zapamiętane w RAMie zostaną stracone. Są dwa rodzaje RAMa: RAMy dynamiczne (DRAMy) i RAMy statyczne (SRAMy).
DRAMy cechują się dużą pojemnością i małym poborem prądu. Ich komórki pamięci są w zasadzie kondensatorami, które można wyobrazić sobie jako niewyobrażalne małe akumulatorki. Obecność lub nieobecność ładunku w kondensatorze jest interpretowana jako logiczne 1 lub 0. Ponieważ kondensatory mają tendencję do tracenia ładunku, DRAMy wymagają okresowego doładowania - elektronicznego „zastrzyku” - aby utrzymać dane. Ten cykl odświeżania spowalnia działanie DRAMów.
SRAMy przechowują 1 i 0 korzystając z innej metody - nie wymagającej odświeżania. Są one szybsze od DRAMów, ale mają mniejszą pojemność i są drogie w produkcji. Z tych powodów, SRAMy są rzadko używane w PC. Większość, jeżeli nie wszystkie kości RAMa w komputerze, to kości DRAM. Kość RAMa jest klasyfikowana przez ilość bitów, które może zawierać. Są kości RAMa 16-Kb (kilobity), 64-Kb, 128-Kb, 256-Kb i
1-Mb (megabit). Kości te przechowują pojedyncze bity, a nie całe bajty. Dlatego, ponieważ kości RAM w IBM PC i komputerach zgodnych są uporządkowane w bankach (rzędach).
Pamięć konwencjonalna.
Jest to obszar, gdzie DOS ładuje i wykonuje Twoje programy. Dolna pamięć konwencjonalna zarezerwowana jest do użytku komputera, lecz mniej więcej od punktu 2 KB aż do 640 KB, możesz uruchamiać aplikacje. Nie oznacza to jednak, że całe 640 KB jest dostępne dla wszystkich aplikacji. DOS sam pozostaje w pamięci konwencjonalnej, zbierając od 18 KB do 90 KB w zależności od wersji.
Ponad DOSem są pewne obszary przechowywania danych (ang.-data storage areas) - miejsca, które DOS wykorzystuje do obsługi wszystkich otwartych plików, plus dowolnych drajwerów urządzeń ładowanych przez CONFIG.SYS oraz wszystkich programów rezydentnych ładowanych przez AUTOEXEC.BAT. Na zakończenie, nad tym wszystkim, znajduje się program użytkowy (aplikacja) i wszystkie pliki załadowane przez użytkownika potrzebne danej aplikacji, takie jak dokument czy arkusz kalkulacyjny.
Pamięć górna - Upper Memory.
IBM zarezerwowało górne 384 KB pamięci PC dla celów przyszłych rozwiązań lub dla ROMa. Oryginalny PC uzywał tylko skrawka tej pamięci dla swojego BIOSa, Podstawowego Systemu Wejścia/Wyjścia, zapewniającego PC instrukcje niskiego poziomu do sterowania urządzeniami peryferyjnymi, takimi jak stacje dysków i klawiatura. Jeszcze jeden mały kawałek był używany dla pamięci monitora, gdzie były przechowywane informacje, które miały być wyświetlone na monitorze monochromatycznym lub kolorowym. A i tak pozostał cały tłum miejsca dla przyszłych rozszerzeń.
Obecnie pamięć górna nadal nie jest wypełniona ROMem. Pierwsze 128 KB jest przeznaczone dla pamięci monitora: systemów grafiki monochromaty-
cznej, CGA, EGA lub VGA w większości PC. Następne 128 KB jest zarezerwowane dla ROMów instalowanych, takich jak ROM monitora i ROM kontrolera stacji dysków. Ostatnich 128 KB jest zarezerwowane dla ROM-BIOSu. Na rys.1.5 pokazano, w jaki sposób pamięć ta jest przydzielana, używając tradycyjnej ikony PC, czyli mapy pamięci.
Blok pamięci górnej (UMB) sa to niewykorzystane obszary górnej pamięci, które zostały zapełnione RAMem. Programy zarządzania pamięcią tworzą UMB przez odwzorowanie pamięci typu expanded do niewykorzystanych obszarów pamięci górnej. Gdy są wypełnione RAMem, UMB mogą być użyte do przechowywania drajwerów urządzeń i programów rezydentnych.
Rys. 1.5
Mapa pamięci PC.
1 MB
896 KB ROM BIOS
Górna
pamięć
ROM twardego
dysku
768 KB
ROM monitora
RAM monitora
640 KB
pamięć RAM
konwen - przeznaczony
cjonalna dla aplikacji DOS i obszar
gdzie DOS
zarządza dowolny-
mi otwartymi plikami
Zarezerwowane dla
dla użytku komputera
0 KB
Pamięć dodatkowa - Expanded Memory.
Pamięć typu expanded wykorzystuje nieużywany kawałek górnej pamięci, rezerwując jeden 64-kilobajtowy blok pamięci zwany ramką strony (ang. - page frame). (Rys. 1.6). Pamięć typu expanded jako taka mieści się - poza główną pamięcią w PC - na karcie rozbudowy w jednym z gniazd rozszerzenia PC.
Drajwer EMM udostępnia pamięć typu expanded oprogramowaniu aplikacji w postaci czterech 16-KB stron mieszczących się w ramce strony. Pamięć ta jest blokami przełączana zarówno sprzętowo, jak i programowo, co oznacza, że 16-KB strony w miarę potrzeby mogą być przerzucane do i z ramki strony. Po umieszczeniu w ramce strony, strona staje się dostępna dla mikroprocesora, ponieważ mieści się ona w 1 MB przestrzeni adresowej.
Rys. 1.6
Adresowanie pamięci typu expanded.
Górna pamięć Pamięć typu expanded
1 MB
ramka stro-
ny
jedna strona
640 KB
jedna strona
Pamięć rozszerzona - Extended Memory
Jest to, podstawowo, RAM ponad i poza znacznikiem 1 MB w PC opartym o 80286 lub ‘386. 80286 może mieć dostęp aż do 16 MB RAMa; ‘386 może mieć dostęp aż do 4096 MB.
Dowolna pamięć ponad znacznik 1 MB jest to tzw. pamięć typu extended.
Rys. 1.7 pokazuje mapę pamięci dla typowego komputera opartego o 80286 lub ‘386 z pamięcią typu extended.
Największym problemem w przypadku pamięci typu extended jest fakt, że znajduje się ona ponad przestrzenią adresową 8088 - czyli DOS nie może bezpośrednio z niej korzystać. Aby korzystać z pamięci typu extended, program musi przełączyć mikroprocesor na tzw. tryb chroniony a następnie, przed wyjściem, ponownie przełączyć na tzw. tryb rzeczywisty. Pierwsze programy, które tę technikę wykorzystywały, były to dyski wirtualne.
Ponieważ pamięć typu expanded została wprowadzona przed pamięcią typu extended, jest więcej programów zaprojektowanych do korzystania z pamięci typu expanded aniżeli z pamięci typu extended. Jednakże się to zmienia.
Rys. 1.7
Mapa pamięci dla komputera opartego o 80286 lub ‘386 z pamięcią typu extended.
pamięć typu
extended
1 MB
- pamięć górna
640 KB
- pamięć konwencjo-
nalna
0 KB
Pamięć podręczna Cache.
Pamięć typu cache jest to mała ilość (z zasady 32 lub 64 KB) bardzo szybkiej pamięci SRAM znajdującej się między mikroprocesorem i pamięcią główną. Gdy mikroprocesor wczytuje dane z lub zapisuje je do pamięci głównej, są one również zapisywane w pamięci typu cache. Jeżeli mikroprocesor będzie ponownie tych danych potrzebować, odczyta je raczej z pamięci typu cache aniżeli z powolnej pamięci głównej. Intel wbudował bezpośrednio do mikroprocesora i486 8KB pamięci typu cache.
Ponieważ pamięć typu cache zawiera SRAMy, jest ona droga, lecz przyspieszenie jest wręcz dramatyczne. Do komputera nie można dodać pamięci typu cache, trzeba kupić system, który ma już zainstalowaną pamięć tego typu, ponieważ jest ona integralną częścią płyty głównej.
Pamięć stała EPROM i EEPROM.
Programy BIOS Setup.
BIOS (ang. Basic Input Output System) jest tym dla komputera, czym dusza dla ciała, podobnie z komputerem. Bez tego jądra jest on stertą tranzystorów, układów scalonych i innych drucików.
BIOS jest pomostem między tą stertą tranzystorów a programistą. Dzięki niemu przeciętny użytkownik w ogóle nie musi się martwić o szczeg óły swojej konfiguracji, np. jaką kartę graficzną ma zainstalowaną, jakiego producenta, jaki system komunikacji z użytkownikiem wymyślił ów producent, jaki sterownik dysków jest zainstalowany, jak uruchomić silnik napędu dysków, itd. Ze zrozumiałych względów BIOS zapisany jest w pamięci stałej (ROM) komputera i nie jest wymienialny, tak jak jest to z systemem operacyjnym.
W szczególności rola BIOS’u sprowadza się do załadowania systemu operacyjnego z dyskietki znajdującej się w napędzie A: lub na dysku twardym. W większości komputerów (szczególnie 8-bitowych) system jest jeden, zapisany na stałe do pamięci RAM, ewentualnie znajduje się na dyskietce, lecz jest tylko jednego producenta i jest tylko „przedłużeniem” pamięci komputera. Natomiast w komputerach klasy IBM PC system operacyjny może napisać dowolna firma (i tak też się robi), wszystko co jest jej potrzebne, zawarte jest właśnie w systemie BIOS. Warto wiedzieć, że oryginalny BIOS jest zastrzeżony w urzędzie patentowym i niemożliwe jest jego kopiowanie. Można tylko napisać coś co z zewnątrz będzie wyglądało tak samo (realizowało te same funkcje), lecz w środku musi być inne.
POST (ang. Power On Self Test - Test zaraz po włączeniu) jets programem zawartym w BIOS’ie, służącym do testowania komputera. POST wykonuje następujące czynności:
- odczytuje ustawienie zworek (w XT) lub CMOS (w AT) i sprawdza, czy
jest ono zgodne z rzeczywistością. Następnie ustawia bajt wyposażenia;
- sprawdza pamięć RAM (na ekranie obserwujemy szybko zmieniające się
cyferki);
- sprawdza główne komponenty systemu: kanały DMA, sterownik przer-
wań, sterownik klawiatury i inne;
- instaluje oprogramowanie przechowywane w pamięci ROM, a umieszczo-
ne tam przez producenta, inicjalizuje cały osprzęt;
- uruchamia program zawarty w BOOT-sektorze dysku A:.
Współpraca z klawiaturą.
Generalnie współpraca z klawiaturą zależy od typu komputera. Rozróżnia się dwa sposoby pracy - zgodnie z XT i zgodnie z AT. Klawiatury które są przystosowane do dwóch rodzajów pracy, mają przełącznik XT/AT. W sposób programowy nie można zmienić trybu pracy.
Klawiatura XT od strony komputera była obsługiwana bezpośrednio przez BIOS, na lini IRQ 1. Od strony klawiatury, za jej działanie odpowiedzialny był układ 8048.
Klawiatura AT obsługiwana jest przez specjalny sterownik INTEL 8042, będący pomostem pomiędzy BIOS’em a klawiaturą. Ponieważ używany jest specjalizowany układ, większe są też możliwości samej klawiatury. Można ustawić czas opóźnienia (czas po jakim - jeżeli cały czas jest wciśnięty klawisz - wysyłany jest sygnał, jakby klawisz został dopiero co naciśnięty.