Urządzenia techniki komputerowej

Transkrypt

Urządzenia techniki komputerowej
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 Full
Custom 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.
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.
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ę.
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
Definicja
Układem kombinacyjnym nazywamy taki układ cyfrowy,
w którym stan wejśd jednoznacznie określa stan wyjśd
układu.
Układ sekwencyjny
Definicja
Ukł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 asynchroniczny
Definicja
Ukł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.
Układ synchroniczny
Definicja
Układem synchronicznym nazywamy taki układ cyfrowy, dla którego stan
wejśd wpływa na stan
wyjś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.
Sygnał taktujący
Oznaczenia wejśd zegarowych układów
cyfrowych
Asynchroniczny przerzutnik RS
Definicja
Przerzutnikiem nazywamy układ cyfrowy pozwalający zapamiętad
jeden bit informacji.
Synchroniczny przerzutnik D typu „latach”
Cyfrowe układy funkcjonalne
Rejestry
Definicja
Rejestrem 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.
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.
Definicja
Wejś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/asynchronous
receiver/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łady
wejś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 stosuje
się sposób połączenia tych układów przy pomocy tak zwanej
magistrali.
Definicja
Magistralą 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
Definicja
Jednostką arytmetyczno-logiczną (ALU, ang. Arithmetic-Logic Unit)
nazywamy uniwersalny układ cyfrowy przeznaczony do wykonywania
operacji arytmetycznych i logicznych.
Budowa i działanie mikroprocesora
Oznaczenia:
ALU – jednostka arytmetyczno-logiczna
IR – rejestr rozkazów
CU – jednostka sterująca
EU – jednostka wykonawcza
Dek – dekoder rozkazów
Budowę prostego mikroprocesora
Zadaniem jednostki wykonawczej EU ( ang. execution unit) jest
przetwarzanie informacji, czyli wykonywanie wszelkich operacji
arytmetycznych i logicznych. Rodzaj wykonywanych operacji
zależ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 oraz
zestaw 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'a
Zupeł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
(a) postać kanoniczna
Ang. „k – to - n decoders” (2-to-4, 3-to-8 etc.)
Dekodery„2 na 4”
(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