II Konferencja Naukowa KNWS'05 "Informatyka- sztuka czy rzemios o" 15-18 czerwca 2005, Z otniki Luba skie SNTEZA AUTOMATÓW SKOŃCZONCH Z WKORZSTANIEM METOD KODOWANIA WIELOKROTNEGO Arkadiusz Bukowiec Instytut Informatyki i Elektroniki, Uniwersytet Zielonogórski 65-246 Zielona Góra, ul. odgórna 50 e-mail: a.bukowiec@iie.uz.zgora.pl STRESZCZENIE W referacie zostan przedstawione i porównane metody sprz towej optymalizacji układu automatu sko czonego z wyj ciami typu Mealy ego realizowanego w strukturach programowalnych. Zaprezentowane metody bazuj na realizacji dwupoziomowego automatu, w którym zostanie zastosowane kodowanie wielokrotne. Zaprezentowane metody kodowania wielokrotnego polegaj na przypisaniu ró nych kodów stanom przej lub zbiorom mikrooperacji dla poszczególnych podzbiorów tych parametrów. odział na podzbiory dokonywany jest na bazie aktualnego stanu lub aktualnie wykonywanej mikrooperacji. 1. WROWADZENIE Skończone automaty stanów (ang. Finite State Machine, FSM), a w szczególność automat z wyjściami typu Mealy ego [1, 6], są wciąż jedną z najpopularniejszych metod realizacji jednostek sterujących. rogramowalne układy LD (ang. rogrammable Logic Device, LD) takie jak CLD lub FGA są bardzo często stosowane do realizacji układu logicznego takiego automatu [5]. Wysoki koszt realizacji takiego układu powoduje, że optymalizacja wykorzystywanych zasobów sprzętowych stanowi wciąż ważny problem. Jednym z rozwiązań tego problemu jest synteza układu z zastosowaniem struktur wielopoziomowych [2]. Metody takie wymagają utworzenia dodatkowych zmiennych wewnętrznych oraz bardzo często wykorzystania dodatkowych zasobów sprzętowych. W referacie został przedstawiony sposób wielokrotnego kodowania mikroinstrukcji lub stanów wewnętrznych umożliwiający zmniejszenie liczby funkcji boolowskich realizowanych przez część kombinacyjną układu, co prowadzi do zmniejszenia wymaganych zasobów sprzętowych potrzebnych do implementacji danego układu w strukturach programowalnych. 2. DEFINICJE I IDEA KODOWANIA WIELOKROTNEGO Automat skończony z wyjściami typu Mealy ego może zostać opisany za pomocą tablicy przejść-wyjść automatu [1, 6] z kolumnami: a m, K(a m ), a s, K(a s ), X h, h, h, h. a m A jest 17
aktualnym stan automatu; K(a m ) jest binarnym kodem stanu a m, zakodowanym na R = ]log 2 M[ bitach, reprezentowanych przez zmienną r = { 1,, R }; a s A stanowi następny stan automatu a K(a s ) jest jego kodem binarnym; X h jest koniunkcją pewnych elementów ze zbioru warunków logicznych X = {x 1,, x L }, powodującą przejście a m, a s ; h stanowi zbiór mikrooperacji (mikroinstrukcja) formowany podczas przejścia a m, a s, gdzie jest zbiorem wszystkich mikrooperacji; h stanowi zbiór funkcji wzbudzeń, które są równe 1 i powodują przełączenie pamięci automatu z K(a m ) na K(a s ); h= 1,, H jest liczbą przejść automatu. Automat Mealy ego opisany w taki sposób może zostać zrealizowany jako jednopoziomowy układ cyfrowy (automat-) [2], w którym układ kombinacyjny realizuje system funkcji wyjść automatu: = (, X), (1) i system funkcji wzbudzeń: = (, X). (2) natomiast pamięć automatu stanowi rejestr, zbudowany z przerzutników typu D. Niech w tablicy przejść-wyjść automatu występuje T różnych mikroinstrukcji t. Zakodujmy każdy taki zbiór t binarnym kodem K( t ) na R 1 = ]log 2 T[ bitach. Do reprezentacji tego kodu wykorzystamy zmienną z Z = { z, K, z } r 1 R 1. W takim przypadku automat Mealy ego może zostać przedstawiony jako dwupoziomowa struktura automat- (rys. 1) [2]. X Z Rys. 1. Schemat automatu- W przypadku takim układ kombinacyjny realizuje system funkcji wzbudzeń (2) oraz system kodujący mikroinstrukcje: Z = Z(, X), (3) Natomiast układ pełni funkcję dekodowania mikroinstrukcji i realizuje funkcję: = (Z). (4) 18
Ideą zastosowania kodowania wielokrotnego, przedstawionego w tym referacie, jest zmniejszenie liczby wyjść układu kombinacyjnego. Metody kodowania wielokrotnego polegają na przypisaniu różnym parametrom wewnętrznym, tj. stanom przejść lub mikroinstrukcją, różnych kodów dla poszczególnych podzbiorów tych parametrów. odział na podzbiory dokonywany jest na bazie aktualnego stanu lub aktualnie wykonywanej mikroinstrukcji. 3. METOD KODOWANIA WIELOKROTNEGO 3.1. Metoda z wielokrotnymi kodami mikroinstrukcji Metoda ta bazuje na przypisaniu wielokrotnych kodów mikroinstrukcją [4]. odział zbioru mikroinstrukcji h na podzbiory dokonywany jest poprzez aktualny stan a m. Niech h (a m ) będzie zbiorem mikroinstrukcji realizowanych podczas przejść ze stanu a m A i h (a m ) = T m. rzez T 0 oznaczmy maksymalną liczbę mikroinstrukcji realizowanych w jednym stanie a m : ( T ) T = max 1,,. (5) 0 K T M Zakodujmy każdy zbiór mikrooperacji t h (a m ) binarnym kodem K m ( t ). Kod ten będzie posiadła R 2 = ]log 2 T 0 [ bitów i do jego reprezentacji wykorzystane zostaną zmienne ze zbioru Ψ = { ψ, K, ψ } 1 R 2. W sytuacji takiej kod mikroinstrukcji K( t ) będzie reprezentowany przez wielokrotny kod mikroinstrukcji K m ( t ) oraz kod aktualnego stanu K(a m ): K( t ) = K m ( t ) K(a m ). (6) Automat Mealy ego z takim kodowaniem może zostać zrealizowany w dwupoziomowej strukturze 0 (rys. 2). X Ψ Rys. 2. Schemat automatu- 0 W przypadku takim układ realizuje system funkcji wzbudzeń (2) i system : Ψ = Ψ(, X). (7) Układ implementuje zaś funkcje konwertera kodu: = (Ψ,). (8) 19
Gdy zachodzi warunek: R 2 < R 1 (9) struktura ta pozwala na zmniejszenie liczby wyjść układu w porównaniu z automatem- do t( 0 ) = R 2 + R. (10) 3.2. Metody z wielokrotnymi kodami stanów wewnętrznych Metody ta bazują na przypisaniu wielokrotnych kodów stanom wewnętrznym automatu. ierwsza metoda dokonuje podziału zbioru stanów wewnętrznych A automatu na podzbiory ze względu na aktualnie wykonywaną mikroinstrukcję t [3]. Druga metoda jako parametr dzielący zbioru stanów wewnętrznych A obiera aktualny stan a m. Niech A( t ) A będzie zbiorem możliwych stanów wewnętrznych dla mikroinstrukcji t i A( t ) = B t. rzez B 0 oznaczmy maksymalną liczbę różnych stanów przejść dla mikroinstrukcji t : ( B ) B = max 1,,. (11) 0 K B T Zakodujmy każdy stan a s A( t ) R 3 -bitowym kodem K t (a s ) gdzie R 3 = ]log 2 B 0 [. Do reprezentacji tego kodu wykorzystane zostaną zmienne ze zbioru τ { τ, K, τ } =. W sytuacji 1 R 3 takiej każdy stan a s A( t ) będzie reprezentowany przez wielokrotny kod stanu wewnętrznego K t (a s ) i kod mikroinstrukcji K( t ): K(a s ) = K t (a s ) K( t ). (12) Struktura takiego dwupoziomowego automatu Mealy ego może zostać zrealizowana jako automat- (rys. 2a). a) b) X Z X Z υ τ CC CC Rys. 3. Schematy a) automatu- b) automatu-a rzy takiej strukturze układ realizuje system funkcji (3) oraz: τ = τ(, X). (13) Układ funkcjonuje tak samo jak w strukturze i realizuje system (4). Wprowadzony zostaje dodatkowy układ CC konwersji kodu realizujący funkcję: 20
= (Z, τ). (14) Gdy zachodzi warunek: R 3 < R (15) struktura pozwala na zmniejszenie liczby wyjść układu w porównaniu z automatem- do t() = R 1 + R 3. (16) rzy drugim sposobie wielokrotnego kodowania stanów wewnętrznych niech A(a m ) A będzie zbiorem stanów przejść ze stanu a m A i A(a m ) = B m. rzez B 0 oznaczmy maksymalną liczbę różnych stanów przejść z jednego stanu a m : B ( B',, ' ) ' 0 max 1 K B M = (17) i niech R 4 = ]log 2 B 0 [. Zakodujmy każdy stan a s A(a m ) R 4 -bitowym kodem K m (a s ). Niech kod ten będzie reprezentowany przez zmienne ze zbioru υ { υ, K, υ } =. W przypadku takim 1 R 4 kod K(a s ) każdego stan a s jest reprezentowany: K(a s ) = K m (a s ) K(a m ). (18) Automat Mealy ego z takim kodowaniem stanów wewnętrznych może zostać zrealizowany jako automat-a (rys. 3b). W sytuacji tej układ realizuje system funkcji (3) oraz: υ = υ(, X), (19) układ realizuje system (4), Natomiast układ CC realizujący funkcję: = (, υ). (20) Gdy zachodzi warunek: R 4 < R (21) struktura A pozwala na zmniejszenie liczby wyjść układu w porównaniu z automatem- do t(a) = R 1 + R 4. (22) Aby struktura A była efektywniejsza od struktury musi zachodzić warunek: t(a) < t(). (23) 3.3. Metoda z wielokrotnymi kodami mikroinstrukcji i stanów wewnętrznych Należy tu jednak wspomnieć, że struktura A posiada jedną przewagę nad strukturą. W strukturze tej istnieje możliwość dalszej modyfikacji, poprzez dodanie wielokrotnego kodowania mikroinstrukcji. Zabieg taki doprowadzi do powstania automat-a 0 (rys. 4). 21
X Ψ υ CC Rys. 4. Schemat automatu-a 0 Metody kodowani i reprezentacji zmiennych są analogiczne z tymi przedstawionymi w rozdziałach 3.1. i 3.2. W strukturze tej układ realizuje funkcje (7) i (19), układ system (8), natomiast układ CC funkcję (20). W strukturze tej liczba wyjść układ wynosi: t(a 0 ) = R 2 + R 4. (24) 4. ZAKO CZENIE Metody z wielokrotnymi kodami zaprezentowane w referacie, w pewnych warunkach, zapewnią zmniejszenie liczby wyjść układu, co prowadzi do zmniejszenia wymaganych zasobów sprzętowych potrzebnych do jego implementacji. rzeprowadzone badania analityczne, w oparciu o wyniki pracy [2], wykazały, że proponowane metody są lepsze od standardowej. Zysk osiąga 5%-20% w zależności od parametrów układu i doboru metody. LITERATURA [1] S. Baranov: Logic Synthesis for Control Automata, Kluwer Academic ublishers, Dordrecht, 1994 [2] A. Barkalov: Structures of the multilevel circuits of microprogram automata on LA, Cybernetics and System Analysis, No. 4, 1994, s. 22-29 [3] A. Bukowiec: Synteza automatów Mealy'ego z wielokrotnymi kodami stanów wewnętrznych, Materiały konferencji naukowej Informatyka sztuka czy rzemiosło KNWS 04, Zielona Góra, 2004, s. 29-34 [4] A. Bukowiec: Synteza automatów skończonych Mealy'ego z wielokrotnymi kodami stanów wewnętrznych lub zbiorów mikrooperacji, Archiwum Konferencji TETiS VI Międzynarodowe Warsztaty Doktoranckie OWD 04, Gliwice, 2004, Vol. 19, z. 5, s. 367-372 [5] T. Łuba, et. al.: Synteza układów cyfrowych, Wydawnictwa Komunikacji i Łączności, Warszawa, 2003 [6] D. Gajski: rinciples of Digital Design, rentice Hall, New Jersey 1997 22