background image

Architektura komputerów – Podstawy działania układów cyfrowych 
 

 

 

Cyfrowe układy funkcjonalne 

W tej części wykładu przedstawimy działanie wybranych bardziej rozbudowanych układów cyfrowych, 

zwanych  cyfrowymi  układami  funkcjonalnymi,  ze  szczególnym  uwzględnieniem  tych  układów,  których 

znajomość jest istotna dla zrozumienia zasady działania komputera.  

Omówimy  kolejno  działanie  prostych  układów  pamiętających  (rejestrów),  układów  związanych  z 

pojęciem magistrali, układów arytmetycznych, dekoderów, koderów oraz liczników. 

 Nazywamy je  układami  funkcjonalnymi, gdyż pełnią one w systemach cyfrowych określone funkcje, 

takie jak na przykład wykonywanie działań arytmetycznych, krótkoterminowe przechowywanie informacji 

czy dekodowanie adresów.  

Będą  one,  jak  poprzednio,  omawiane  w  większości  wypadków  jako  czarne  skrzynki,  nie  opisując 

sposobu, w jaki zostały one zrealizowane za pomocą elementów podstawowych.  

background image

Architektura komputerów – Podstawy działania układów cyfrowych 
 

 

 

 

1. Rejestry 

Definicja 

Rejestrem nazywamy układ cyfrowy przeznaczony do krótkoterminowego prze-
chowywania niewielkich ilości informacji lub do zamiany postaci informacji z 
równoległej na szeregową albo odwrotnie.

 

W definicji rejestru wystąpiło pojecie szeregowej i równoległej postaci informacji. Jest ono intuicyjnie 

dość jasne, poniżej podajemy jednak jego dokładniejsze określenie. 

Pojecie  postaci  informacji  jest  związane  z  wprowadzaniem,  wyprowadzaniem  i  przesyłaniem 

informacji. Określenie postaci informacji wystarczy podać dla jednego z tych przypadków, gdyż następnie 

łatwo je uogólnić na pozostałe przypadki. 

 

background image

Architektura komputerów – Podstawy działania układów cyfrowych 
 

 

 

 

 

Definicja 

Wejściem cyfrowym równoległym nazywamy takie wejście, które 

umożliwia wprowadzenie do układu cyfrowego wszystkich bitów 

słowa w jednym takcie zegarowym. 

Z określenia tego wynika, że ilość zacisków wejściowych w wejściu równoległym musi być równa 

ilości  bitów  we  wprowadzanym  słowie.  Równoległe  wprowadzanie  informacji  pokazane  jest  na  

rysunku 13. 

 

 

background image

Architektura komputerów – Podstawy działania układów cyfrowych 
 

 

 

 

 

Rysunek 13. Równoległe wprowadzanie informacji do układu 

background image

Architektura komputerów – Podstawy działania układów cyfrowych 
 

 

 

 

 

 

Definicja 

Wejściem cyfrowym szeregowym nazywamy takie wejście, które umożliwia 
wprowadzanie informacji do układu bit po bicie. Do wprowadzenia słowa n-bitowego 
potrzeba n taktów zegara

Wejście szeregowe wymaga wiec tylko jednego zacisku wejścia danych. Kolejne etapy wprowadzania 

do układu cyfrowego słowa 4-bitowego przedstawione są na rysunku 14. 

 

background image

Architektura komputerów – Podstawy działania układów cyfrowych 
 

 

 

 

 

Rysunek 14. Szeregowe wprowadzanie informacji do układu 

background image

Architektura komputerów – Podstawy działania układów cyfrowych 
 

 

 

 

Definicja 

Jeżeli informacje wprowadzamy, wyprowadzamy lub przesyłamy bit po bicie (jeden bit na 
jeden takt zegara), to taką postać informacji nazywamy szeregową. 
Jeżeli wprowadzamy, wyprowadzamy lub przesyłamy wszystkie bity słowa informacji 
jednocześnie, w jednym takcie zegara, to taką postać informacji nazywamy równoległą.

 

 

Ze sposobem wprowadzania i wyprowadzania informacji w rejestrach wiąże się podział rejestrów na 

następujące grupy: 

•  rejestry z wejściem i wyjściem równoległym - PIPO (ang. parallel input, parallel 

output)Rejestry te często nazywane są rejestrami buforowymi lub (w przypadku 

reagowania wejścia taktującego na poziom) rejestrami zatrzaskowymi (ang. latch) 

background image

Architektura komputerów – Podstawy działania układów cyfrowych 
 

 

 

 

 

• 

rejestry z wejściem i wyjściem szeregowym - SISO (ang. serial input, serial 

output). Są to tak zwane rejestry przesuwające

 

•  rejestry z wejściem szeregowym i wyjściem równoległym - SIPO (ang. serial 

input, parallel output) 

•  rejestry z wejściem równoległym i wyjściem szeregowym - PISO (ang. parallelinput, serial output) 

Przykłady zastosowania rejestrów buforowych  to przykład sposobu adresowania pamięci DRAM.  

 

 

 

 

background image

Architektura komputerów – Podstawy działania układów cyfrowych 
 

 

 

 

 

 

Rejestry SIPO i PISO stosuje się do zamiany postaci informacji z szeregowej na równoległą i odwrotnie. 

Potrzeba  takiej  zamiany  istnieje  przy  stosowaniu  układu  transmisji  szeregowej  (UART  lub  USART,  ang. 

universal  synchronous/asynchronous  receiver/transmitter).  Układ  ten  przesyła  informację  na  zewnątrz 

komputera w sposób

 

szeregowy. Z kolei wewnątrz systemu informacja przesyłana jest w sposób równoległy. 

Układ USART musi więc dokonać konwersji postaci informacji i mogą być do tego użyte rejestry SIPO i 

PISO. 

 

 

background image

Architektura komputerów – Podstawy działania układów cyfrowych 
 

 

 

10 

2. Bramki trójstanowe 

W  układach  cyfrowych,  a  szczególnie  w  układach  i  systemach  mikroprocesorowych  (a  wiec  i  w 

komputerach),  występuje  często  potrzeba  odseparowania  elektrycznego  dwóch  lub  więcej  punktów  w 

systemie, na przykład wyjścia pewnego układu  i wspólnego przewodu, po którym przesyłamy informację. 

Odseparowanie elektryczne oznacza, że wartości  wielkości  elektrycznych (takich jak napięcie czy prąd) w 

obydwu punktach nie wpływają wzajemnie na siebie i mogą przyjmować dowolne, dozwolone wartości.  

Inaczej  mówiąc,  w  układach  cyfrowych,  stan  logiczny  w  jednym  punkcie,  odseparowanym  od  innego 

punktu, nie wpływa na niego i nie jest z nim w żaden sposób związany. 

 

 

 

 

background image

Architektura komputerów – Podstawy działania układów cyfrowych 
 

 

 

11 

 

Układami  umożliwiającymi  odseparowanie  dwóch  punktów  w  układzie  są  tak  zwane  bramki 

trójstanowe. Schemat logiczny takiej bramki i tabela przedstawiająca jej działanie pokazane są na rysunku 

15 i w tabeli 7 . 

 

Rysunek 15. Schemat logiczny bramki  trójstanowej 

 

 

 

background image

Architektura komputerów – Podstawy działania układów cyfrowych 
 

 

 

12 

Tabela 7. Tabela prawdy bramki trójstanowej 

WE 

ENABLE 

WY 

Klucz (przełącznik) występujący w schemacie tej bramki jest oczywiście kluczem elektronicznym. Sposób 

elektronicznej realizacji bramek trójstanowych nie jest dla nas istotny i nie będziemy go opisywać. Stan Z 

występujący  w  tabeli  opisującej  działanie  bramki  trójstanowej  oznacza  tak  zwany  stan  wysokiej 

impedancji  czyli  właśnie  brak  wzajemnego  wpływu  wartości  elektrycznych  na  wejściu  na  wartości 

elektryczne na wyjściu bramki. Stan jest więc oprócz stanów l trzecim stanem, w którym może znaj-

dować się bramka, stąd też bierze się jej nazwa. W przypadku zamknięcia klucza  bramka ta transmituje 

wartość sygnału logicznego z wejścia na wyjście. 

Przykładowe użycie bramek trójstanowych zostanie pokazane w przy omawianiu pojęcia magistrali. 

background image

Architektura komputerów – Podstawy działania układów cyfrowych 
 

 

 

13 

3. Pojęcie magistrali 

Zasada działania magistrali 

W systemach mikroprocesorowych istnieje konieczność zapewnienia komunika cji pomiędzy wieloma 

układami.  Przykładami  tych  układów  są:  mikroprocesor,  pamięć  RAM,  ROM  i  układy 

wejścia/wyjścia.  Połączenie  wielu  układów  metodą  każdy  z  każdym  doprowadziłoby  do  nadmiernej 

ilości  połączeń  i  jest  praktycznie  nierealne.  Dlatego  stosuje  się  sposób  połączenia  tych  układów  przy 

pomocy  tak  zwanej  magistrali.    Magistrala  jest  wspólną  drogą,  dzięki  której  komunikują  się  pomiędzy 

sobą  poszczególne  układy  wchodzące  w  skład  systemu.  Aby  jednak  zapewnić  poprawne  jej 

funkcjonowanie i  brak  kolizji  pomiędzy  połączonymi  nią układami,  magistrala obsługiwana  jest  według 

ściśle określonych, podanych w definicji reguł. 

 

background image

Architektura komputerów – Podstawy działania układów cyfrowych 
 

 

 

14 

 

 

 

Definicja 

Magistralą nazywamy zestaw linii oraz układów przełączających, łączących dwa lub więcej 
układów mogących być nadajnikami lub odbiornikami informacji. Przesyłanie informacji 
zachodzi zawsze pomiędzy dokładnie jednym układem będącym nadajnikiem a dokładnie 
jednym układem będącym odbiornikiem, przy pozostałych układach odseparowanych od 
linii przesyłających. 

 

 

 

 

background image

Architektura komputerów – Podstawy działania układów cyfrowych 
 

 

 

15 

 

 

Jak wynika z powyższej definicji, układy dołączone do magistrali muszą mieć możliwość elektrycznego 

odseparowania się od linii, którymi przesyłana jest informacja. Wynika to miedzy innymi z konieczności 

zapewnienia jednoznacznego stanu każdej z linii. W przypadku jednoczesnego dołączenia do linii przesyłającej 

dwóch nadajników, mógłby wystąpić konflikt, gdyby przykładowo jeden z nich próbował wymusić stan 

logiczny linii równy , a drugi 1.Układami zapewniającymi możliwość separacji są właśnie bramki 

trójstanowe, opisane w poprzednim podpunkcie. Przykładowy rejestr z takim wyjściem przedstawiony jest na 

rysunku 16a. Idea współpracy kilku układów za pośrednictwem  magistrali zilustrowana jest  

na rysunku 16b

background image

Architektura komputerów – Podstawy działania układów cyfrowych 
 

 

 

16 

 

 

Rysunek 16. Idea działania magistrali 

background image

Architektura komputerów – Podstawy działania układów cyfrowych 
 

 

 

17 

4. Dwukierunkowe wzmacniacze buforowe (transcivery) 

Pomiędzy  układem  będącym  w  danym  momencie  nadajnikiem  na  magistrali  a  układem-odbiornikiem 

stosuje się zwykle układy buforowe, pośredniczące w wymianie informacji. Zadaniem tego typu układów jest 

zmniejszenie  obciążenia  nadajnika  przez  odbiornik,  zwiększenie  prądu  wyjściowego  i,  co  za  tym  idzie, 

poprawa kształtu zboczy (poprzez szybsze przeładowywanie pojemności pasożytniczych).  

W przypadku magistral, po których informacja może być przesyłana w obydwu kierunkach, takich jak na 

przykład magistrala danych , układy wzmacniaczy buforowych muszą działać w obydwu kierunkach. Nazywane 

są  one  wówczas  nadajnikami/odbiornikami  lub  transciverami  (ang.  transmitter-receiver).  Dodatkowo 

układy te potrafią przejść także w stan wysokiej impedancji, separując nawzajem od siebie łączone układy.  

Przykład tego typu układu, wykonanego jako pojedynczy układ scalony,  INTEL 8286, przedstawiono na 

rysunku  17..  Oczywiście  układy  transciverów  mogą  wchodzić  w  skład  większych  układów  scalonych  (np. 

chipsetów). 

background image

Architektura komputerów – Podstawy działania układów cyfrowych 
 

 

 

18 

 

 

 

Rysunek 17. Układ transcivera (nadajnika/odbiornika) 18286 

background image

Architektura komputerów – Podstawy działania układów cyfrowych 
 

 

 

19 

 

 

5.Układy arytmetyczne 

Cyfrowe układy arytmetyczne służą do wykonywania działań arytmetycznych na liczbach binarnych 

(na  liczbach  binarnych  ze  znakiem,na  liczbach  binarnych  zapisanych  w  różnych  formatach-np. 

zmiennoprzecinkowych). My ograniczymy się tylko do krótkiego omówienia ALU 

 

 

 

background image

Architektura komputerów – Podstawy działania układów cyfrowych 
 

 

 

20 

 

Jednostka arytmetyczno-logiczna 

 

Definicja 

Jednostką arytmetyczno-logiczna (ALU, ang. Arithmetic-Logic Unit) nazywamy 
uniwersalny układ cyfrowy przeznaczony do wykonywania operacji arytmetycznych i 
logicznych

Przykładowy symbol oznaczający jednostkę arytmetyczno-logiczna (niestety istnieje tu pewna 

dowolność) przedstawiono na rysunku 18

 

 

background image

Architektura komputerów – Podstawy działania układów cyfrowych 
 

 

 

21 

 

Rysunek 18. Symbol jednostki arytmetyczno-logicznej 

 

background image

Architektura komputerów – Podstawy działania układów cyfrowych 
 

 

 

22 

Słowo  „uniwersalny"  w  definicji  ALU  oznacza,  że  zestaw  operacji,  które  potrafi  zrealizować  jednostka 

arytmetyczno-logiczna, powinien być funkcjonalnie pełnyZestaw operacji jest funkcjonalnie pełny, jeżeli za 

jego pomocą jesteśmy w stanie zrealizować dowolny algorytm przetwarzania informacji. 

 

Do  zestawu  operacji  wykonywanych  przez  jednostkę  arytmetyczno-logiczna  należą  najczęściej: 

dodawanie  i  odejmowanie  algebraiczne,  przesuwanie  bitów  słowa  w  prawo  i  w  lewo,  porównywanie 

(komparacja)  wartości  dwóch  słów,  operacje  iloczynu  i  sumy  logicznej,  negacji  i  alternatywy 

wykluczającej.  Oczywiście  dokładna  lista  wykonywanych  operacji  zależy  od  konkretnego  typu  jednostki 

arytmetyczno-logicznej. W naszych rozważaniach  interesujemy się jednostką arytmetyczno-logiczna głównie 

jako elementem składowym mikroprocesora. Wówczas jej „umiejętności" decydują o dość dużym fragmencie 

tak zwanej listy rozkazów procesora, o której dokładniej powiemy  przy omawianiu architektury procesora. 

 

background image

Architektura komputerów – Podstawy działania układów cyfrowych 
 

 

 

23 

 

Aby  możliwe  było  dokonanie  wyboru  operacji  realizowanej  w  danym  momencie  przez  jednostkę 

arytmetyczno-logiczna,  musi  ona  posiadać  zestaw  wejść  zwanych  wejściami  sterującymi.  Pozwalają  one 

dokonać tego wyboru na drodze elektrycznej, przez podanie na te wejścia określonej kombinacji zer i jedynek 

przyporządkowanej żądanej operacji. 

Jednostka arytmetyczno-logiczna nie ma własnych układów pamiętających, dlatego musi współpracować 

z pewnym zestawem rejestrów. Dwa z nich pełnią szczególne funkcje i dlatego też mają swoje nazwy. 

 Rejestr,  który  zawiera  jeden  z  argumentów  operacji  i  do  którego  ładowany  jest  wynik  wykonywanej 

operacji, zwany jest akumulatorem

 

 

background image

Architektura komputerów – Podstawy działania układów cyfrowych 
 

 

 

24 

 Rejestr zawierający pewne dodatkowe cechy wyniku wykonywanej operacji, takie jak przeniesienie czy 

też przekroczenie  zakresu dla działań  w  kodzie U2  są przechowywane w postaci  określonych bitów (np. o 

nazwach CY czy OV) rejestrze flagowym

 

Pewnych wyjaśnień wymaga realizacja przez jednostkę arytmetyczno-logiczna operacji logicznych. 

W sposób naturalny operacje te dotyczą pojedynczych bitów (l lub O możemy interpretować jako 

prawdę lub fałsz). Jednakże nie każda jednostka arytmetyczno-logiczna potrafi operować na pojedynczych 

bitach. Jak więc operacje te są wykonywane w przypadku argumentów będących słowami (np. bajtami)? 

Wyjaśnienie znajduje się na rysunku 19

 

 

 

background image

Architektura komputerów – Podstawy działania układów cyfrowych 
 

 

 

25 

 

Rysunek 19. Sposób wykonywania przez ALU działań logicznych na bajtach 

Jak widzimy, przykładowa realizacja operacji mnożenia logicznego w przypadku argumentów bajtowych 

jest równoznaczna obliczeniu ośmiu iloczynów logicznych. 

 

background image

Architektura komputerów – Podstawy działania układów cyfrowych 
 

 

 

26 

 

6.  Dekodery i kodery priorytetu 

Dekodery  i  kodery  pełnią  w  systemach  mikroprocesorowych  ważne  funkcje  pomocnicze.  Dekodery 

stosowane  są  w  tych  miejscach,  gdzie  za  pomocą  liczby  zwanej  adresem  wybieramy  jeden  z  wielu 

obiektów, na  przykład określone  miejsce  w  pamięci  czy  też  określony  układ  wejścia/wyjścia.    Układy  te 

spotkamy  przykładowo w pamięciach półprzewodnikowych zaś układ kodera priorytetu występuje w takich 

układach jak sterownik przerwań czy sterownik DMA. 

 

 

 

background image

Architektura komputerów – Podstawy działania układów cyfrowych 
 

 

 

27 

 

Dekodery 

Definicja 

Dekoderem nazywamy układ cyfrowy mający n wejść oraz k wyjść, przy czym k < 2 

n

Na wejście dekodera podajemy zakodowany numer wyjścia, na którym ma pojawić się 
wyróżniony sygnał o wartości np. 0. Na pozostałych wyjściach dekodera powinien 
występować stan przeciwny do sygnału wyróżnionego o wartości np. 1. 

Symbol dekodera przedstawiony jest na rysunku 20. Podana tam jest też pewna kombinacja sygnałów 

wejściowych i odpowiadające im sygnały wyjściowe

background image

Architektura komputerów – Podstawy działania układów cyfrowych 
 

 

 

28 

 

Rysunek 20. Symbol dekodera wraz z przykładową kombinacją sygnałów 

 
 

background image

Architektura komputerów – Podstawy działania układów cyfrowych 
 

 

 

29 

Działanie dekodera jest proste. Na jednym z jego wyjść pojawia się wyróżniona wartość (może to być 

O  lub  1).  Na  pozostałych  wyjściach  występują  wartości  przeciwne  do  wyróżnionej.  O  tym,  na  którym 

wyjściu  pojawi  się  wartość  wyróżniona,  decyduje  kombinacja  sygnałów  podawana  na  wejście. 

Kombinacja  ta  jest  zakodowanym  numerem  wyjścia,  na  którym  wystąpi  wyróżniony  sygnał. 

Teoretycznie numer ten może być zakodowany w dowolnym kodzie. Praktycznie w dekoderach używa się 

niemal wyłącznie kodu NKB (jako najprostszego). 

 

W  przykładowym  dekoderze  przedstawionym  na  rysunku  20  występuje  dodatkowe  wejście 

zezwalające (sterujące) ENABLE. Brak zezwolenia, czyli w naszym przypadku wartość l, powoduje, że 

dekoder jest nieaktywny i na żadnym z jego wyjść nie ma stanu wyróżnionego. 

Warunek na wartość k, występujący w definicji, wynika stąd, że musimy mieć co najmniej tyle różnych 

numerów, ile jest wyjść dekodera, zaś ilość różnych liczb n-bi-towych wynosi 2

n

background image

Architektura komputerów – Podstawy działania układów cyfrowych 
 

 

 

30 

Koder priorytetu 

Koder priorytetu jest pewną modyfikacją układu zwanego koderem, dlatego najpierw przedstawimy 

działanie kodera, a następnie kodera priorytetu. 

Działanie kodera jest w pewnym sensie odwrotne do działania dekodera 

Definicja 

Koderem nazywamy układ cyfrowy o n wyjściach i k < 2 

n

 wejściach, przy czym na wyjściu 

pojawia się zakodowany numer tego wejścia, na którym ten sygnał występuje. 

Podobnie  jak  dla  dekoderów  na  wyjściu,  dla  koderów  zakładamy,  że  na  ich  wejściu  pojawia  się  tylko 

jeden wyróżniony sygnał. 

W systemach cyfrowych zachodzi niejednokrotnie potrzeba przyjmowania sygnałów zgłoszeń od wielu 

urządzeń i następnie zdecydowania, które z nich będzie obsługiwane. Realizację tych czynności umożliwia 

układ kodera priorytetu. 

background image

Architektura komputerów – Podstawy działania układów cyfrowych 
 

 

 

31 

 

 

Definicja 

Koderem priorytetu nazywamy układ kodera, w którym wprowadzono następujące 
zmiany: 
1.  Na jego wejściu może pojawić się więcej niż jeden sygnał wyróżniony. 
2.  Każdemu wejściu przyporządkowano pewien stopień ważności, zwany  
      priorytetem. 
3.  Na wyjściu pojawia się zakodowany numer tego wejścia z wyróżnionym 
        sygnałem, które posiada najwyższy priorytet. 

Symbol  kodera  priorytetu  wraz  z  przykładową  kombinacją  sygnałów  wejściowych  i  wyjściowych, 

przedstawione są na rysunku 21

Na wyjściu układu z rysunku 21 pojawił się kod liczby 5, ponieważ wyróżniony sygnał jest podany na 

wejścia o numerach 3 i 5 i spośród nich wejście 5 ma najwyższy priorytet. 

background image

Architektura komputerów – Podstawy działania układów cyfrowych 
 

 

 

32 

 

 

Rysunek 21. Symbol i przykładowe wartości sygnałów dla kodera priorytetu. 

background image

Architektura komputerów – Podstawy działania układów cyfrowych 
 

 

 

33 

 

Liczniki 

Definicja 

Licznikiem nazywamy układ cyfrowy, na którego wyjściu pojawia się zakodowana 
liczba impulsów podanych na wejście zliczające licznika, zliczona przez licznik. 

Definicja  ta  wymaga  pewnych  dodatkowych  założeń.  Po  pierwsze  zakładamy,  że  licznik  zawsze 

zaczyna liczyć od tej samej wartości początkowej, najczęściej od zera. Po drugie założyliśmy, że licznik 

może zliczyć dowolną ilość impulsów, co w praktyce nie jest prawdą. 

 

 

 

background image

Architektura komputerów – Podstawy działania układów cyfrowych 
 

 

 

34 

 

Podstawowymi parametrami charakteryzującymi licznik są jego pojemność oraz kod, w którym jest 

podawana ilość zliczanych impulsów.  

Pojemność  określa  maksymalną  ilością  impulsów,  którą  może  zliczyć  licznik.  Po  przekroczeniu  tej 

wartości licznik zaczyna zliczanie impulsów od początku. 

Liczniki  w  systemach  mikroprocesorowych  są  w  zasadzie  układami  pomocniczymi.  Pewną  formą 

licznika jest tak zwany wskaźnik instrukcji, pełniący bardzo ważną funkcje w działaniu mikroprocesora.