Urządzenia techniki komputerowej - rkpomoce · PDF fileTechnika cyfrowa jest w dzisiejszych...

Post on 07-Feb-2018

226 views 2 download

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