Architektura Systemów Komputerowych Układy logiczne Architektura Systemów Komputerowych mgr inż. Michał Misiak
Technologie współczesnej mikroelektroniki Przenikanie się oprogramowania i sprzętu tzw. Soft-Hardware Zastosowanie metod komputerowego wspomagania projektowania złożonych układów (CAD – Computer Aided Design) Korzystanie z języków specyfikacji sprzętu tzw. Hardware Description Language zamiast składaniu z dostępnych komponetnów
Tranzystor Tranzystor unipolarny (FET) i bipolarny Metal-Oxide-Semiconductor FET Dren oraz źródło – silnie domieszkiwane obszary z doprowadzonymi kontaktami Przepływ prądu pomiędzy źródłem, a drenem występuje po przez kanał Sterowanie prądem następuje po przez zmiany napięcia bramka- źródło Stany tranzystora: Nasycony: UDS >= UDSsat Nienasycony: UDS < UDSsat UDSsat = UGS - UT Źródło: http://www.chip.pl/arts/archiwum/n/printversion/printversion_58937.html UGS – napięcie bramka-źródło UT – napięcie progowe (tworzenie kanału) UDS – napięcie źródło-dren UDSat – napięcie nasycenia Uwaga! Możliwość uszkodzenia tranzystora MOS ze względu na przebicie elektrostatyczne izolatora
Tranzystory MOS Tranzystory tego typu charakteryzują się: małym poborem mocy, odpornością na zakłócenia dużą częstotliwością przełączania Prostą konstrukcją – duże możliwości miniaturyzacji
CMOS – Complemenrtary MOS Technologia półprzewodnikowa krzemowych układów scalonych Układy zbudowane z tranzystorów MOS Połączone w taki sposób, że w ustalonym stanie logicznym przewodzi tylko jeden Układ nie pobiera w stanie jałowym prądu Problem przy wysokich częstotliwościach – przeładowywanie pojemności Bardzo tanie w realizacji Zapewniają dużą gęstość tranzystorów – w nowoczesnych układach powierzchnia tranzystora to 1um Niewystarczająca szybkość przełączania CMOS – zastępują je rozwiązania na arsenku galu Układ wykonany W technologii CMOS Obwody CMOS zostały wynalezione w 1963 przez Franka Wanlassa z firmy Fairchild Semiconductor. Pierwszy układ scalony wykonany w technologii CMOS powstał w firmie RCA w 1968 pod okiem Alberta Medwina. Oryginalnie układy CMOS stanowiły oszczędną alternatywę do energochłonnych układów TTL
Miniaturyzacja układów Minimalny wymiar charakterystyczny - głównym wyznacznikiem stopnia miniaturyzacji Minimalny wymiar charakterystyczny definiowany jest przez rozdzielczość procesu litograficznego i procesu trawienia MWC – przeważnie jest to wymiar pojedynczego tranzystora MOS W drugiej połowie ’90 powszechnie przemysłową technologią była 0,35um, przy średnicy podłoża 200 nm
Proces wytwarzania mikroprocesorów Wykonanie monolitycznego krzemowego walca Pozbawienie walca wszelkich zanieczyszczeń po przez proces odwirowywania Cięcie walca na części – najczystsze są wewnętrzne części tzw. wafla (ang. silicon wafer) Pokrycie wafla warstwami domieszek Przeprowadzenie procesu litografii Przykrycie warstwą miedzi, która będzie stanowiła serię wyprowadzeń Cięcie wafla w celu uzyskania rdzeni procesorów
Proces litografii Wyrysowanie na płytce krzemu pokrytej światłoczułym lakierem Naświetloną część lakieru łatwo zmyć odkrywając części do wytrawienia Maszyną do litografii jest skaner litograficzny Wykorzystywany efekt przesunięcia fali Prowadzone badania nad długościami fali światła pozwalające produkować tranzystory o 0,07 mikrona Długości fali światła wynoszącej 248 nm lub w nowszych urządzeniach 193 nm
Clean Room Zachowanie wysokiej czystości Norma ISO 14644-1: 2 cząsteczki wielkości 2um na 1 metr sześcienny Żółty kolor oświetlenia utrzymywany ze względu na procesy litograficzne
Złożoność procesorów http://en.wikipedia.org/wiki/Transistor_count
Technologie układów programowalnych Rozwój technologii pozwolił na budowę układów programowalnych przez użytkownika tzw. PLD/FPGA Ulepszenie procesu technologicznego: redukowaniu wymiarów elementów półprzewodnikowych zwiększenie liczby warstw metalizowanych połączeń powstanie nowych technik programowania FPLD (Field Programmable Logic Devices) – układy z możliwością programowania i rekonfiguracji Technologie wykorzystywane do tworzenia FPLD: pamięć SRAM, FLASH i ROM Są to odpowiednio zorganizowane systemy pamięci pozwalające realizować zmienne funkcje przetwarzania Aktualnie układy FPLD pozwalają realizować projekty o złożoności kliku milionów bramek Możliwość rekonfiguracji statycznej i online pozwalającej zmienić strukturę w trakcie działania
FPGA w rzeczywistości Dwaj duzi dostawcy: Altera i Xlinix. Źródło: http://web.mit.edu/skd/www/mas/images/fpga.jpg Dwaj duzi dostawcy: Altera i Xlinix.
Cechy układów PLD/FPGA Układy produkowane w dużych seriach: niska cena, wysoka jakość Nie jest wymagane zamawianie ich u producenta (w przeciwieństwie do układów ASIC) Układy nie realizują żadnej specyficznej funkcji W porównaniu do procesorów układy te oferują: większą szybkość, niższy koszt i wyższą niezawodność Słabo nadają się do realizacji bardzo złożonych systemów
Zastosowanie FPGA/PLD Aparaty i urządzenia produkowane w małych seriach Zastępowanie układów małej i średniej skali integracji Zastosowanie wymagające wielokrotnego programowania: Prototypy, emulatory, symulatory Programowalne i rekonfigurowalne koprocesory, procesory specyficzne Kontrolery wymagające adaptacji
Metody komputerowego wspomagania projektowania Narzędzia te umożliwiają: Modelowanie Budowę wirtualnych prototypów Symulację i analizę Automatyczną syntezę Wykorzystywanie gotowych projektów (desing reuse): rdzeni mikroprocesorów, mikrokontrolerów, procesorów sygnałowych, etc … Przykłady ALTERA MAXII+
Komputerowe wspomaganie projektowania układów Problem: gęstość upakowania elementów w najnowszych układach sięga 100 mln tranzystorów/10 mln bramek Wykorzystanie komputerowych systemów projektowania Stworzenie języków opisu sprzętu (Hardware Description Language) Narzędzia te umożliwiają: Modelowanie Budowę wirtualnych prototypów Symulację i analizę Automatyczną syntezę Wykorzystywanie gotowych projektów (desing reuse): rdzeni mikroprocesorów, mikrokontrolerów, procesorów sygnałowych, etc …
Hardware Description Langauge Umożliwienie projektantowi układów scalonych opisywanie: funkcji, struktury i parametrów na wyższym poziomie abstrakcji Specyfikacja powinna zapewniać opis: zachowania systemu ograniczeń strukturalnych i fizycznych System powinien umożliwić symulację oraz animację modelowanego systemu w celu analizy lub weryfikacji różnych charakterystyk Języki HDL znacznie bardziej skomplikowane niż języki programowania Opis zawiera skomplikowane informacje na temat struktury i parametrów Układy wykonują operacje współbieżne na bardzo niskim poziomie abstrakcji (w programowaniu dane w układach przetwarzane są szeregowo) Postanie koncepcji produktu wirtualnego Biblioteki funkcjonalne
Synteza układów Specyfikacja układu w języku HDL Kompilacja do opisu przesłań rejestrowych Kompilacja do poziomu sieci logicznej Synteza i optymalizacja logiczna Odwzorowanie technologiczne Synteza fizyczna lub programowanie układu
Układy logiczne Układy kombinacyjne
Układy kombinacyjne Podstawowy układ logiczny umożliwiający realizacje funkcji boolowskich Składa się z elementów logicznych Jest elementem złożonych układów cyfrowych
Funkcja boolowska Odwzorowanie zbioru wektorów (ciągów binarnych) z X w zbiór wektorów Y, gdzie X i Y są podzbiorami n-krotnego iloczynu kartezjańskiego B={0,1} Jeśli X = Bn, to funkcję nazywamy zupełną. Jeśli funkcja dla danego wektora jest nieokreślona to oznaczmy to przez „-”
Funkcja boolowska może być przedstawiona w postaci tablicy o n+1 kolumnach i 2n wierszach W kolejnych wierszach zapisywane są wszystkie wartości ciągu x1, x2, … xn, czyli wszystkie wektory x W ostatniej kolumnie podana jest wartość Y Funkcję można zapisać podając zbiory wektorów dla których funkcja przyjmuje odpowiednie wartości F={x: f(x)=1} R={x: f(x)=0} D={x: f(x)=-}
Funkcje boolowskie Reprezentacja funkcji boolowskich w postaci formuł ułatwia realizację elementów logicznych (bramki logiczne) Operatory: AND, OR, NOT Przykład formuły X1 x2 x3 f 1 2 3 4 5 6 7
Inne operatory a b 0 0 0 1 1 0 1 1 1 NOR NAND EXOR EQ
Synteza dwupoziomowa Zaletą formuł boolowskich jest możliwość upraszczania wyrażeń, a co za tym idzie minimalizacji liczby wykorzystanych bramek Upraszczanie zgodnie z prawami alegebry Bool’a Możliwość reprezentacji funkcji za pomocą różnych wyrażeń boolowskich – reprezentacja formułami równoważnymi Najprostszy sposób to: Generacja implikantów Slekecja implikantów prostych Jest to jednak najbardziej złożony algorytm, gdyż należy do zbioru problmów NPZupełnych
Dekompozycja Transformacja pojedynczego wyrażenia na zbiór kilku nowych wyrażeń Realizacja na 9 bramkach Realizacja na 8 bramkach
Układy sekwencyjne Modelem układu sekwencyjnego jest automat. Definicja automatu: Zbiór liter wejściowych X i wyjściowych Y Zbiór stanów wewnętrznych S Funkcja przejść Funkcja wyjść Automaty Mealy’ego i Moore’a
Zapraszam na kolejne wykłady ;) Dziękuje! Zapraszam na kolejne wykłady ;)