Urządzenia techniki komputerowej - rkpomoce · PDF fileTechnika cyfrowa jest w dzisiejszych...
Transcript of Urządzenia techniki komputerowej - rkpomoce · PDF fileTechnika cyfrowa jest w dzisiejszych...
Urządzenia techniki komputerowej
Cyfrowe układy funkcjonalne
Technika cyfrowa jest w dzisiejszych czasach obszarem wiedzy o całkowicie
interdyscyplinarnym obliczu. Jej zagadnienia kształtowane z jednej strony przez
języki opisu sprzętu, a z drugiej przez programowalne moduły logiczne, śmiało
mogą być zaliczone zarówno do Informatyki, Elektroniki jak i Telekomunikacji.
Dzisiejsze techniki projektowania układów cyfrowych polegają już nie tylko na
składaniu układu z dostępnych komponentów, a raczej na procesie formalnej,
abstrakcyjnej specyfikacji projektu w odpowiednim języku opisu sprzętu (HDL –
Hardware Description Language) oraz na transformacji tej specyfikacji przy
użyciu różnorodnych narzędzi komputerowego wspomagania projektowania
CAD (Computer Aided Design).
Ogromną rolę w zacieraniu różnicy między oprogramowaniem (software),
tradycyjnie zaliczanym do produktów informatyki, a sprzętem (hardware) jako
produktem tradycyjnie rozumianej elektroniki, spełniają układy programowalne
przez użytkownika. Stały się one podstawą powstania nowego rynku własności
intelektualnej, którego ofertą handlową są rdzenie projektowe (IP Core), czyli
sprzęt reprezentowany w postaci oprogramowania, docelowo przeznaczonego
do implementacji w układzie scalonym (programowalnym lub bezpośrednio
wykonywanym w krzemie), zamiast w komputerze.
Technika cyfrowa ma obecnie przemożny wpływ na wszystkie
obszary ludzkiej aktywności; między innymi radykalnie
przeobraziła metody i formy komunikacji społecznej zarówno w
ujęciu zbiorowym jak i indywidualnym, a układy cyfrowe można
dziś znaleźć niemal w każdym urządzeniu technicznym.
Obszarem, w którym technika cyfrowa doprowadziła do bardzo
istotnych zmian są urządzenia multimedialne.
Dzięki multimediom rozwinęły się niespotykane do tej pory
usługi teleinformatyczne takie jak: wirtualne usługi bankowe,
telenauczanie, wideokonferencje, itp. Masowe
zapotrzebowanie na te usługi tworzy atrakcyjny obszar
działalności przemysłowo-gospodarczej.
Rozwój techniki cyfrowej jest bezpośrednio związany z
rozwojem technologii mikroelektronicznych. Dzisiejsze
możliwości technologiczne są ogromne. Technologia dostarcza
konstruktorom układów cyfrowych specjalizowane układy
scalone (Application Specific Integrated Circuits) o zasobach
sprzętowych rzędu kilkudziesięciu milionów tranzystorów, co z
punktu widzenia techniki cyfrowej jest równoważne kilku
milionom bramek logicznych.
W zależności od
technologii i techniki
projektowania
specjalizowane układy
scalone klasyfikujemy w
następujących
kategoriach:
a. układy zamawiane przez użytkownika (Full Custom),
b. układy projektowane przez użytkownika (Semi Custom),
c. układy programowane przez użytkownika(FPLD – Field Programmable Logic Devices).
Największe układy ASIC są zwykle produkowane w wielkich seriach
i najczęściej całkowicie wykonywane przez producenta dla zamawiającego
(Full Custom). Rola zamawiającego ogranicza się do przedstawienia
wymagań (założeń projektowych), a do producenta należy wykonanie
projektu, prototypu, sprawdzenie działania prototypu oraz ostateczna
produkcja. Układy takie opłaca się produkować tylko w bardzo dużych
seriach (np. sprzęt powszechnego użytku, mikrokomputery) lub do
wyjątkowych zastosowań.
Cechą charakterystyczną układów Semi Custom jest wielokrotne
wykorzystywanie raz zaprojektowanych bloków funkcjonalnych, które są
przechowywane w bibliotece (w praktyce w pamięci komputera). Bloki takie
są często zwane komórkami bibliotecznymi. W układach Semi custom
typowym uproszczeniem projektowania jest standaryzacja komórek
bibliotecznych przez narzucanie jednolitych wymagań dotyczących kształtu,
wymiarów, rozmieszczenia szyn zasilania, wejść i wyjść, co pozwala w
znacznym stopniu zautomatyzować proces projektowania struktury
fizycznej układu.
Struktura fizyczna każdego układu zaprojektowanego
w stylu Full Custom lub Standard Cells wymaga przygotowania
projektów masek produkcyjnych i przeprowadzenia złożonego
procesu technologicznego. Oznacza to, że czas potrzebny do
otrzymania prototypowych egzemplarzy nowo
zaprojektowanego układu jest rzędu co najmniej kilku tygodni.
Z tych powodów coraz większą rolę w technice cyfrowej
odgrywają programowalne moduły logiczne (FPLD – Field
Programmable Logic Devices), krótko zwane układami
(strukturami) programowalnymi.
Układy programowalne to – z punktu widzenia struktury – układy
typu matrycowego lub komórkowego, jednak z możliwością
programowania połączeń na drodze elektrycznej. W ich przypadku proces produkcyjny jest odmienny – producent
dostarcza „prefabrykaty” projektantowi, który może je
zaprogramować u siebie „na biurku”.
Atrakcyjnośd układów FPLD jako alternatywy dla układów FullCustom i Semi Custom wynika przede wszystkim z połączenia naturalnych walorów układów programowalnych, które zapewniają krótki czas opracowania prototypu i łatwośd jego modyfikacji i są dostępne „z półki”, z coraz doskonalszymi parametrami użytkowymi – szybkością działania i pojemnością.
Rozwój technologii stymuluje rozwój komputerowych narzędzi
projektowania, co tym bardziej poszerza związek techniki
cyfrowej z Informatyką. Jest to zrozumiałe, gdyż sensowne
przetworzenie milionów bramek w zamierzenia konstruktora
układów cyfrowych nie może się odbyć bez udziału
komputerowych systemów projektowania wyposażonych
w edytor graficzny, tekstowy oraz kompilator.
Typowy komputerowy system projektowania jest wyposażony
w moduł syntezy funkcjonalnej, moduł syntezy logicznej, oraz
procedury odwzorowania technologicznego. Zadaniem
takiego systemu jest realizacja algorytmu przetwarzania
informacji cyfrowej w układzie scalonym zbudowanym z
milionów bramek logicznych.
Nie jest to zadanie łatwe i z tych powodów synteza układów logicznych jest
jednym z najważniejszych działów techniki cyfrowej. Trudności wynikają
przede wszystkim z faktu, iż inne były wymagania stawiane układom
logicznym wtedy, gdy były one konstruowane z pojedynczych tranzystorów
(lata 50.) lub wtedy, gdy cyfrowe układy scalone zwierały kilka bramek
(lata 70.). Wobec dzisiejszych milionów bramek zawartych w jednym,
reprogramowalnym i rekonfigurowalnym module scalonym, jest to postęp
ilościowy, który musiał całkowicie zmienić – i ciągle jeszcze zmienia – metody
syntezy układów logicznych.
Najważniejszymi zagadnieniami nowoczesnej syntezy logicznej
jakie rozwinęły się w ciągu ostatnich 20 lat w wyniku postępu
technologii są: synteza dwupoziomowa (two-level synthesis),
synteza wielopoziomowa (multi-level synthesis), minimalizacja
symboliczna, dekompozycja matryc PLA oraz dekompozycja
funkcjonalna.
Ze zrozumiałych względów komercyjne systemy projektowania nie
nadążają za rozwojem technologii. Dlatego powstają uniwersyteckie systemy
syntezy logicznej. Systemy te – często wykonywane w formie niezbyt wygodnej
do stosowania w bezpośredniej praktyce inżynierskiej – spełniają w dziedzinie
nowoczesnych metod syntezy układów cyfrowych nie mniejszą rolę niż firmowe
systemy komercyjne. Z założenia są to systemy przystosowane do obsługi
przez użytkownika o głębszej wiedzy w zakresie syntezy logicznej. Spełniają
więc rolę niejako „awaryjną”, tzn. są stosowane w tych przypadkach, w których
systemy komercyjne nie dają pozytywnych rezultatów ze względu na dużą
złożoność obliczeniową.
Drugą, nie mniej ważną rolą systemów uniwersyteckich jest zdobywanie wiedzy i doświadczenia w zakresie skuteczności procedur obliczeniowych. Tak więc z biegiem lat wiele programów i procedur obliczeniowych, stosowanych w systemach uniwersyteckich, weszło do wyposażenia systemów komercyjnych. Typowym przykładem mogą tu byd systemy opracowane na uniwersytecie kalifornijskim w Berkeley, na przykład ESPRESSO, oraz SIS. Dziś procedury minimalizacji funkcji boolowskich programu ESPRESSO są stosowane bezpośrednio (jako wbudowane do systemu) lub pośrednio (z możliwością wymiany danych) we wszystkich prawie systemach komputerowego projektowania układów cyfrowych.
Jeden z kierunków takich aplikacji określa koncepcja produktu wirtualnego –
systemu, funkcji lub układu scalonego, które nie istnieją w rzeczywistości
materialnej, ale mogą być potencjalnie w każdej chwili zrealizowane. Takie
układy wirtualne mogą być zarówno gotowymi produktami o zmiennych
funkcjach i właściwościach, jak również elastycznymi „klockami”, z których
można konstruować większe systemy. Z punktu widzenia gotowego produktu
wytwarzanego seryjnie możliwość modyfikacji i nadawania jego standardowej
konstrukcji indywidualnie wyspecjalizowanych funkcji i parametrów stwarza
wspaniałą perspektywę.
Wraz z wprowadzeniem języków HDL oraz
struktur programowalnych pojawiły się
nowe możliwości aplikacyjne dla techniki
cyfrowej. Wynikają one nie tylko z poprawy
parametrów funkcjonalnych i czasowych
oraz zmian w architekturze logicznej, ale
również z samej istoty reprogramowalności.
Podział układów logicznych
Układy logiczne dzielimy na:- układy kombinacyjne,- układy sekwencyjne,- układy asynchroniczne,- układy synchroniczne.
Układ kombinacyjny
DefinicjaUkładem kombinacyjnym nazywamy taki układ cyfrowy, w którym stan wejśd jednoznacznie określa stan wyjśd układu.
DefinicjaUkładem sekwencyjnym nazywamy taki układ cyfrowy, w którym stan wyjśd zależy od stanu wejśd oraz od poprzednich stanów układu.
Układ sekwencyjny
Układ asynchroniczny
DefinicjaUkładem asynchronicznym nazywamy taki układ cyfrowy, dla którego w dowolnym momencie jego działania stan wejśd oddziaływuje na stan wyjśd.
DefinicjaUkładem synchronicznym nazywamy taki układ cyfrowy, dla którego stan wejśd wpływa na stanwyjśd jedynie w określonych odcinkach czasu pracy układu zwanych czasem czynnym, natomiast w pozostałych odcinkach czasu zwanych czasem martwym stan wejść nie wpływa na stan wyjść.Odcinki czasu czynnego i martwego wyznaczane są przez podanie specjalnego sygnału zegarowego zwanego także taktującym.
Układ synchroniczny
Sygnał taktujący
Oznaczenia wejśd zegarowych układów cyfrowych
Asynchroniczny przerzutnik RS
DefinicjaPrzerzutnikiem nazywamy układ cyfrowy pozwalający zapamiętad jeden bit informacji.
Synchroniczny przerzutnik D typu „latach”
Cyfrowe układy funkcjonalne
RejestryDefinicjaRejestrem nazywamy układ cyfrowy przeznaczony do krótkoterminowego przechowywania niewielkich ilości informacji lub do zamiany postaci informacji z równoległej na szeregową lub odwrotnie.
DefinicjaWejś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.
DefinicjaWejściem cyfrowym szeregowym nazywamy takie wejście, które umożliwia wprowadzenie do układu cyfrowego bit po bicie. Każdy bit jest wprowadzany w jednym takcie zegarowym.
Uwaga: N-bitowe wejście równoległe jest n razy szybsze od wejścia szeregowego.
Rejestry dzielimy na następujące grupy:
-PIPO (ang. parallel input, parallel output) – rejestry z wejściem i wyjściem równoległym – rejestry buforowe typu „zatrzask”,
-SISO (ang. serial input, serial output) – rejestry z wejściem i wyjściem szeregowym – rejestry przesuwające,
-SIPO (ang. serial input, parallel output) – rejestry z wejściem szeregowym i wyjściem równoległym – stosowane w układach USART lub UART,
- PISO (ang. parallel input, serial output) – rejestry z wejściem równoległym i wyjściem szeregowym – stosowane w układach USART (ang. universal synchronous/asynchronousreceiver/transmiter) lub UART.
Bramka trójstanowa
Zasada działania magistrali
W systemach mikroprocesorowych istnieje koniecznośd zapewnienia komunikacji pomiędzy wieloma układami. Przykładami tych układów są: mikroprocesor, pamięd RAM, ROM i układywejścia/wyjścia. Połączenie wielu układów metodą „każdy z każdym” doprowadziłoby do nadmiernego skomplikowania architektury komputera i jest praktycznie nierealne. Dlatego stosujesię sposób połączenia tych układów przy pomocy tak zwanej magistrali.
DefinicjaMagistralą nazywamy zestaw linii oraz układów przełączających, łączących dwa lub więcej układów mogących byd nadajnikami lub odbiornikami informacji.
Zasada działania magistrali
Jednostka arytmetyczno – logiczna
DefinicjaJednostką arytmetyczno-logiczną (ALU, ang. Arithmetic-Logic Unit) nazywamy uniwersalny układ cyfrowy przeznaczony do wykonywania operacji arytmetycznych i logicznych.
Budowa i działanie mikroprocesora
Budowę prostego mikroprocesora
Oznaczenia:ALU – jednostka arytmetyczno-logicznaIR – rejestr rozkazówCU – jednostka sterującaEU – jednostka wykonawczaDek – dekoder rozkazów
Zadaniem jednostki wykonawczej EU ( ang. execution unit) jest przetwarzanie informacji, czyli wykonywanie wszelkich operacji arytmetycznych i logicznych. Rodzaj wykonywanych operacjizależy od wewnętrznych sygnałów sterujących wytwarzanych przez jednostkę sterującą CU (ang.control unit). W skład jednostki wykonawczej wchodzi jednostka arytmetyczno-logiczna orazzestaw współpracujących z nią rejestrów. Informacją wejściową części wykonawczej są dane, zaś wyjściową wyniki.
W skład jednostki sterującej CU wchodzą: rejestr rozkazów IR (ang. instruction register), dekoder rozkazów i układ sterowania. W rejestrze rozkazów przechowywany jest kod aktualnie wykonywanego rozkazu (instrukcji). Kody rozkazów pobierane są do rejestru rozkazów z pamięci.Ciąg rozkazów tworzy program wykonywany przez system.Po pobraniu z pamięci kod rozkazu jest dekodowany w dekoderze rozkazów. Zostaje rozpoznany rodzaj rozkazu i na jego podstawie układ sterowania wytwarza odpowiednie sygnały sterujące.
UKŁADY KONWERSJI KODÓW
Kody
Kod - sposób reprezentacji sygnału cyfrowego za pomocą
grupy sygnałów binarnych:
Sygnał cyfrowy ⇔ wektor bitowy
Gdzie np. sygnał cyfrowy:
znaki A..Z, a..z, 0..9, znaki specjalne, interpunkcyjne i in. - tzw.
Kody alfanumeryczne;
cyfra 0..9 - tzw. kody dwójkowo-dziesiętne;
wartość całkowita z pewnego przedziału, np. <- 128,+127>;
inne...
Klasyfikacje kodów
n - długość słowa kodowego (liczba bitów wektora)
P - pojemność kodu (liczba wszystkich dopuszczalnych
kombinacji kodu)
Kody zupełne i niezupełne
P = 2n⇒ kod zupełny
P < 2n⇒ kod niezupełny
Kody systematyczne (np. naturalny kod binarny) i
niesystematyczne (np.
alfanumeryczne)
Bardzo ważna klasa kodów systematycznych, kodujących liczby
- kody wagowe: każda
pozycja w słowie kodowym (bit) ma określoną i niezmienną
wartość - tzw. wagę.
Np.. Np. 3-bitowy naturalny kod binarny (NKB):
n=3
P = 8 = 2n⇒ kod zupełny
Kody dwójkowo-dziesiętne Jak zakodować binarnie cyfry 0...9?
P = 10
n = 4 .. 10 - różnie dla różnych kodów.
Najpopularniejsze (n = 4):
Kody o stałej liczbie jedynek: „k z n„
W słowie n bitowym dokładnie k bitów jest równych 1
Jeśli k= 1 ⇒ kod „1 z n" (zwany też kodem pierścieniowym,
prostym).
Dla kodów pierścieniowych P = n.
Np. kod 1 z 4:
0001
0010
0100
1000
Kod pseudopierścieniowy (Johnsona)
Systematyczny, ale niewagowy.
P = 2n.
Np. kod 4b (P = 8): 0000
0001
0011
0111
1111
1110
1100
1000
Kod Gray'aZupełny kod niewagowy, w którym każde dwa kolejne słowa
kodowe (także pierwsze i ostatnie) różnią się między sobą
dokładnie jednym bitem.
Inne kody
Detekcyjne i korekcyjne: transmisja i zapis danych, dodany
nadmiar umożliwia wykrycie lub wykrycie i korekcję określonej
klasy błędów; np. dodawanie bitu parzystości.
Alfanumeryczne, np. kod ASCII (7-bitowy); w komputerach PC
stosowany 8- bitowy tzw. kod ASCII rozszerzony (extended
ASCII), znaki o kodach powyżej 127 bywają różne.
Kody kompresji danych...
Układy konwersji kodów
Podstawowa klasyfikacja:
Enkoder (koder): kod WE jest kodem prostym („1 z n”).
Dekoder: kod WY jest kodem prostym („1 z n”).
Transkoder: żaden z kodów WE ani WY nie jest „1 z n”.
Enkoder priorytetowy: jeśli na WE zamiast kodu 1 z n pojawi się
więcej niż jedna jedynka, ustalona ranga priorytetów WE decyduje,
która z nich określa odpowiedź układu (np. najstarsza).
Dekoder pełny: kod WE jest zupełny (czyli m = 2n, gdzie n = liczba
WE, m = liczba WY).
Np. układ scalony TTL 7442
- dekoder kodu BCD 8421
Dekoder niepełny.
Dekodery NKB Ang. „k – to - n decoders” (2-to-4, 3-to-8 etc.)
Dekodery„2 na 4”
(a) postać kanoniczna (b) WY aktywne „0"
(c) realizacja uproszczona
Dekodery„3 na 8”
(a) postać kanoniczna
(b) regularna struktura na 2WE bramkach iloczynu (+negacje zmiennych WE)
Dekodery„4 na 16”
Dekodery„2 na 4” z sygnałem Enable
Kaskadowe łączenie dekoderów
Multipleksy i demultipleksy
Realizacji funkcji boolowskiej
1. MULTIPLEKSERY
multipleksery
dekodery
dekodery
REJESTRY