ZASTOSOWANIE TRANSWERSALI HIPERGRAFÓW DO MINIMALIZACJI ROZMIARU PAMIĘCI JEDNOSTEK STERUJĄCYCH

Podobne dokumenty
PROJEKTOWANIE UKŁADÓW MIKROPROGRAMOWANYCH Z WYKORZYSTANIEM WBUDOWANYCH BLOKÓW PAMIĘCI W MATRYCACH PROGRAMOWALNYCH

SYNTEZA AUTOMATÓW SKOŃCZONYCH Z WYKORZYSTANIEM METOD KODOWANIA WIELOKROTNEGO

SYNTEZA JEDNOSTEK STERUJĄCYCH W STRUKTURACH PROGRAMOWALNYCH

Mikroprogramowany układ sterujący z współdzieleniem kodów oraz rozszerzonym formatem mikroinstrukcji

UKŁADY MIKROPROGRAMOWALNE

PROJEKT I OPTYMALIZACJA STRUKTURY LOGICZNEJ DYDAKTYCZNEGO SYSTEMU MIKROPROCESOROWEGO DLA LABORATORIUM PROJEKTOWANIA ZINTEGROWANEGO

SYNTEZA WSPÓLNYCH MODELI AUTOMATÓW SKOŃCZONYCH NA PLD

WYKORZYSTYWANIE WYJŚCIOWYCH MAKROKOMÓREK UKŁADU PLD W

Język opisu sprzętu VHDL

Problem kodowania w automatach

Literatura. adów w cyfrowych. Projektowanie układ. Technika cyfrowa. Technika cyfrowa. Bramki logiczne i przerzutniki.

Reprezentacje grafów nieskierowanych Reprezentacje grafów skierowanych. Wykład 2. Reprezentacja komputerowa grafów

2 Arytmetyka. d r 2 r + d r 1 2 r 1...d d 0 2 0,

Sławomir Kulesza. Projektowanie automatów asynchronicznych

Synteza logiczna dla struktur CPLD typu PAL wykorzystująca elementy XOR

Materiały pomocnicze do ćwiczeń z podstaw techniki cyfrowej (przygotował R.Walkowiak) Dla studiów niestacjonarnych rok AK 2017/18

Tab. 1 Tab. 2 t t+1 Q 2 Q 1 Q 0 Q 2 Q 1 Q 0

ANALIZA WPŁYWU WYBRANYCH PARAMETRÓW SYGNAŁU WYMUSZAJĄCEGO NA CZAS ODPOWIEDZI OBIEKTU

Synteza strukturalna automatów Moore'a i Mealy

Podstawowe moduły układów cyfrowych układy sekwencyjne cz.2 Projektowanie automatów. Rafał Walkowiak Wersja /2015

Synteza logiczna układu realizującego zespół funkcji przełączających z użyciem bramek XOR w strukturach CPLD

Wykład nr 3 Techniki Mikroprocesorowe. dr inż. Artur Cichowski

UKŁADY LOGICZNE. Prowadzi: Tadeusz ŁUBA, (GE pok. 472) Wykład dla specjalności: Elektronika i Inżynieria Komputerowa, Inżynieria Biomedyczna (ULOGE)

ZASTOSOWANIA UKŁADÓW FPGA W ALGORYTMACH WYLICZENIOWYCH APPLICATIONS OF FPGAS IN ENUMERATION ALGORITHMS

PODSTAWY UKŁADÓW LOGICZNYCH. Prowadzi: prof. dr hab. Tadeusz ŁUBA, (Nowowiejska 15/19, GE pok. 472)

Synteza strukturalna automatu Moore'a i Mealy

Układy sekwencyjne. 1. Czas trwania: 6h

Ochrona własności intelektualnej projektów w układach FPGA poprzez szyfrowanie danych konfiguracyjnych

DIGITAL LOGIC. Warsaw Information Technology Warsaw University of Technology. Digital Logic. Prof. Tadeusz Łuba

PAMIĘĆ RAM. Rysunek 1. Blokowy schemat pamięci

0 + 0 = 0, = 1, = 1, = 0.

SWB - Projektowanie synchronicznych układów sekwencyjnych - wykład 5 asz 1. Układy kombinacyjne i sekwencyjne - przypomnienie

Technologie Informacyjne

Programowanie Układów Logicznych kod kursu: ETD6203 W dr inż. Daniel Kopiec. Pamięć w układach programowalnych

Laboratorium przedmiotu Technika Cyfrowa

FPGA, CPLD, SPLD. Synteza systemów reprogramowalnych 1/27. dr inż. Mariusz Kapruziak pok. 107, tel

Def. Kod jednoznacznie definiowalny Def. Kod przedrostkowy Def. Kod optymalny. Przykłady kodów. Kody optymalne

Grafem nazywamy strukturę G = (V, E): V zbiór węzłów lub wierzchołków, Grafy dzielimy na grafy skierowane i nieskierowane:

Układy kombinacyjne Y X 4 X 5. Rys. 1 Kombinacyjna funkcja logiczna.

WYKORZYSTANIE LOGIKI SEKWENTÓW GENTZENA DO SYMBOLICZNEJ ANALIZY SIECI PETRIEGO

Wprowadzenie do informatyki i użytkowania komputerów. Kodowanie informacji System komputerowy

Matematyka dyskretna. Andrzej Łachwa, UJ, /14

Kolorowanie wierzchołków

Algorytmy grafowe. Wykład 1 Podstawy teorii grafów Reprezentacje grafów. Tomasz Tyksiński CDV

Definicja układu kombinacyjnego była stosunkowo prosta -tabela prawdy. Opis układu sekwencyjnego jest zadaniem bardziej złożonym.

Matematyczne Podstawy Informatyki

Teoretyczne Podstawy Informatyki

Kodowanie i kompresja Tomasz Jurdziński Studia Wieczorowe Wykład Kody liniowe - kodowanie w oparciu o macierz parzystości

1. Synteza automatów Moore a i Mealy realizujących zadane przekształcenie 2. Transformacja automatu Moore a w automat Mealy i odwrotnie

Rijndael szyfr blokowy

Według raportu ISO z 1988 roku algorytm JPEG składa się z następujących kroków: 0.5, = V i, j. /Q i, j

12. Wprowadzenie Sygnały techniki cyfrowej Systemy liczbowe. Matematyka: Elektronika:

Teoria Informacji - wykład. Kodowanie wiadomości

T. Łuba, B. Zbierzchowski Układy logiczne Podręcznik WSISiZ, Warszawa 2002.

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott

Sterowniki Programowalne (SP) Wykład 11

Spis treści 1. Wstęp 2. Ćwiczenia laboratoryjne LPM

TEORETYCZNE PODSTAWY INFORMATYKI

ID1UAL1 Układy arytmetyczno-logiczne Arithmetic logic systems. Informatyka I stopień ogólnoakademicki stacjonarne

Elementy cyfrowe i układy logiczne

Bezpieczeństwo informacji oparte o kryptografię kwantową

Laboratorium. Szyfrowanie algorytmami Vernam a oraz Vigenere a z wykorzystaniem systemu zaimplementowanego w układzie

Technika cyfrowa Synteza układów kombinacyjnych (I)

KATEDRA INFORMATYKI TECHNICZNEJ. Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych. ćwiczenie 204

KARTA PRZEDMIOTU. Podstawy elektroniki cyfrowej B6. Fundamentals of digital electronic

Matematyka dyskretna. Andrzej Łachwa, UJ, /14

Podstawy Informatyki Układ sterujący

EGZAMIN MATURALNY Z INFORMATYKI

Lista zadań nr 5. Ścieżka projektowa Realizacja każdego z zadań odbywać się będzie zgodnie z poniższą ścieżką projektową (rys.

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Zasady arytmetyki stałoprzecinkowej oraz operacji arytmetycznych w formatach Q

Wprowadzenie do algorytmiki

Spis treści. Przedmowa Wykaz oznaczeń Wstęp Układy kombinacyjne... 18

Metody Programowania

Tranzystor JFET i MOSFET zas. działania

Realizacja bezpiecznego programowalnego sterownika logicznego z wykorzystaniem języków HDL

xx + x = 1, to y = Jeśli x = 0, to y = 0 Przykładowy układ Funkcja przykładowego układu Metody poszukiwania testów Porównanie tabel prawdy

Problemy optymalizacyjne - zastosowania

Zadanie 1. Suma silni (11 pkt)

Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Olimpiada O Diamentowy Indeks AGH 2017/18. Informatyka Etap III

Wstęp do Techniki Cyfrowej... Teoria automatów

Technika cyfrowa Synteza układów kombinacyjnych

Rys. 2. Symbole dodatkowych bramek logicznych i ich tablice stanów.

Podstawy Automatyki. Wykład 15 - Projektowanie układów asynchronicznych o programach liniowych. dr inż. Jakub Możaryn. Instytut Automatyki i Robotyki

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Pascal typy danych. Typy pascalowe. Zmienna i typ. Podział typów danych:

ROLA I ZNACZENIE SYNTEZY LOGICZNEJ W TECHNICE CYFROWEJ UKŁADÓW PROGRAMOWALNYCH

XV International PhD Workshop OWD 2013, October Hipergrafy w selekcji podsieci automatowych

PROGRAMOWANIE SIECIOWE. METODA ŚCIEŻKI KRYTYCZNEJ

Kody splotowe (konwolucyjne)

Wojewódzki Przedmiotowy Konkurs z informatyki dla uczniów szkół gimnazjalnych ETAP REJONOWY 2013/2014 TEST

IZ1UAL1 Układy arytmetyczno-logiczne Arithmetic logic systems. Informatyka I stopień ogólnoakademicki niestacjonarne

Lista 4. Kamil Matuszewski 22 marca 2016

Metody przeszukiwania

Uniwersytet Zielonogórski Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Sterowania i Systemów Informatycznych

Elektronika cyfrowa i mikroprocesory. Dr inż. Aleksander Cianciara

Kodowanie i kompresja Streszczenie Studia dzienne Wykład 9,

Arytmetyka komputera. Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka. Opracował: Kamil Kowalski klasa III TI

Temat: Algorytm kompresji plików metodą Huffmana

Drzewa spinające MST dla grafów ważonych Maksymalne drzewo spinające Drzewo Steinera. Wykład 6. Drzewa cz. II

Transkrypt:

II Konferencja Naukowa KNWS'05 "Informatyka- sztuka czy rzemios o" 15-18 czerwca 2005, Z otniki Luba skie ZASTOSOWANIE TRANSWERSALI HIPERGRAFÓW DO MINIMALIZACJI ROZMIARU PAMIĘCI JEDNOSTEK STERUJĄCYCH Monika Wiśniewska, Remigiusz Wiśniewski Instytut Informatyki i Elektroniki, Uniwersytet Zielonogórski 65-246 Zielona Góra, ul. Podgórna 50 e-mail: m.wisniewska@um.zielona-gora.pl r.wisniewski@iie.uz.zgora.pl STRESZCZENIE W artykule zaprezentowany został nowy sposób optymalizacji rozmiaru mikrooperacji, cz ciowo opieraj cy si na rozwi zaniach klasycznych. Metoda bazuje na wykorzystaniu transwersali hipergrafów do minimalnego wyznaczenia klas kompatybilno ci mikroinstrukcji. Mikroinstrukcje, które s parami kompatybilne mog zosta zakodowane z wykorzystaniem mniejszej liczby bitów. Dzi ki temu rozmiar pami ci układu mikroprogramowanego b dzie w znacznym stopniu zmniejszony. Idea metody zostanie zilustrowana przykładem. Pokazane zostan wszystkie kroki, jakie s niezb dne do zaprojektowania zmodyfikowanego układu pami ci. Dokonana zostanie analiza porównawcza układu standardowego oraz zamodelowanego z wykorzystaniem proponowanej metody w strukturach FPGA. Słowa kluczowe: hipergraf, transwersala, klasy kompatybilno ci, układ mikroprogramowany, mikrooperacja, mikroinstrukcja, minimalizacja rozmiaru pami ci. 1. WPROWADZENIE Jednostka sterująca jest ważną częścią projektowanego systemu cyfrowego. Standardowa metoda implementacji jednostki sterującej w postaci skończonego automatu stanów [2, 11] często pochłania zasoby układów programowalnych, które mogą być w efektywniejszy sposób wykorzystane przez inne bloki projektowanego systemu. Coraz częściej spotykanym rozwiązaniem jest ponownie układ mikroprogramowany [4], w którym zastosowano dekompozycję jednostki sterującej na część zarządzającą (adresującą) oraz pamięć, w której przechowywane są mikroinstrukcje kontrolera. Problemem może być implementacja układu mikroprogramowanego ze względu na ograniczenia rozmiaru słowa pamięci dostępnych w układach programowalnych [10]. Dlatego optymalizacja rozmiaru mikroinstrukcji, generowanych przez układ mikroprogramowany, jest bardzo ważnym etapem projektowania systemów cyfrowych [1]. 23

W niniejszym artykule zaproponowana zostanie nowatorska metoda zmniejszenia wielkości mikroinstrukcji przechowywanych w pamięci mikroprogramowanego układu sterującego, oparta na strukturalnej syntezie blokowej automatu cyfrowego. Metoda bazująca na formalnej dekompozycji funkcji logicznych zarysowana została w pracach [12] oraz [6]. Pokazany sposób optymalizacji rozmiaru pamięci jednostki sterującej zostanie zobrazowany przykładem. 2. PODSTAWOWE DEFINICJE Aby przedstawić algorytm optymalizacji rozmiaru mikroinstrukcji, niezbędne będzie wprowadzenie podstawowych pojęć związanych z mikroprogramowanym układem sterującym oraz hipergrafami. 2.1. Mikroprogramowany układ sterujący Jednostka sterująca może zostać zrealizowana jako mikroprogramowany układ sterujący [4, 11]. Podstawową cechą takiego systemu jest podział mikrokontrolera na część zarządzającą oraz część przechowującą i generującą mikrooperacje. Mikroprogramowany układ sterujący o strukturze podstawowej przedstawiony został na rys. 1. Х τ CC Ф СТ T CM y 0 Y ψ RG Rys. 1. Struktura mikroprogramowanego układu steruj cego W układzie zilustrowanym poprzez rys.1. układ kombinacyjny CC oraz rejestr RG tworzą uproszczony skończony automat stanów. Automat ten jest odpowiedzialny za wyznaczanie funkcji wzbudzeń dla licznika CT. Licznik oraz pamięć układu CM tworzą blok przechowujący oraz generujący mikroinstrukcje. Struktura oraz sposoby projektowania mikroprogramowanego układu sterującego są szczegółowo opisane w literaturze [5, 13]. Podstawową zaletą tak zaprojektowanego systemu jest możliwość implementacji pamięci mikroprogramowanego układu sterującego w dedykowanych pamięciach struktur FPGA [11]. Pozostałe bloki realizowane są z wykorzystaniem podstawowych elementów logicznych matryc FPGA bloków LUT (ang. Look-Up Tables). Takie rozwiązanie pozwala znacznie zaoszczędzić ilość wykorzystanych elementów LUT, w porównaniu do klasycznej realizacji 24

jednostki sterującej [4]. Problemem może być wielkość pamięci układu mikroprogramowanego. Bardzo często rozmiar mikroinstrukcji przekracza rozmiar słowa pamięci dostępnych w układach FPGA. Niezbędna jest wówczas optymalizacja pamięci jednostki sterującej. W niniejszym artykule zaproponowana zostanie metoda zmniejszenia rozmiaru mikroinstrukcji opierająca się na badaniu hipergrafu. 2.2. Organizacja pamięci mikroprogramowanego układu sterującego Niech dany będzie algorytm sterowania, przedstawiony za pomocą sieci działań Γ [3], składającej się ze zbioru bloków operacyjnych B={b 1,, b k }, zbioru bloków decyzyjnych X={x 1,, x L }. Każdy blok operacyjny b k B zawiera mikroinstrukcję, będącą zbiorem mikrooperacji Y(b k ) Y, gdzie Y={y1, y N } jest zbiorem wszystkich mikrooperacji. Każdy blok decyzyjny sieci działań zawiera warunek logiczny X i, będący elementem zbioru warunków logicznych X={x 1,, x L }. Przykładowa sieć działań Γ 1 przedstawiona została na rys. 2. START y 1, y 5 b 1 x 1 y 1, y 3 b 2 y 2, y 4 b 4 y 0, y 4 b 3 KONIEC Rys. 2. Przykładowa sie działa 1 Z powyższej sieci działań można w bardzo łatwy sposób wyznaczyć zawartość mikroprogramowanego układu sterującego. Mikroinstrukcje generowane w kolejnych blokach operacyjnych są adresowane z wykorzystaniem naturalnego kodu binarnego. Przykładowo dla sieci działań przedstawionej na rys. 2 zawartość pamięci będzie wyglądać tak, jak przedstawiono w tabeli 1. 25

Tab. 1. Zawarto pami ci mikroprogramowanego układu steruj cego dla sieci działa Γ 1 b k Adres (b k ) Mikroinstrukcja K y 0 y 1 y 2 y 3 y 4 y 5 b 1 00 0 1 0 0 0 1 1 b 2 01 0 1 0 1 0 0 2 b 3 10 1 0 0 0 1 0 3 b 4 11 0 0 1 0 1 0 4 W przedstawionej tabeli poprzez b k oznaczono kolejne węzły operacyjne sieci działań Γ 1. Adres (b k ) to kod poszczególnych węzłów operacyjnych [5]. Kolejna kolumna tabeli przedstawia rzeczywistą zawartość pamięci mikroporgramowanego układu sterującego. Przedstawiono wartości poszczególnych mikrooperacji w danym węźle operacyjnym. Mikrooperacje tworzą w ten sposób mikroinstrukcje przyszłego układu mikroprogramowanego. Poprzez K oznaczono kolejne wiersze tabeli. 2.3. Podstawowe definicje związane z hipergrafami Hipergraf jest rozszerzeniem pojęcia grafu. Jego krawędzie mogą być incydentne do dowolnej liczby wierzchołków [9], w odróżnieniu od grafu, w którym krawędzie mogą być incydentne maksymalnie do 2 wierzchołków. Hipergraf może być reprezentowany przez macierz incydencji, w której wiersze odpowiadają wierzchołkom, a kolumny krawędziom hipergrafu. Jeśli element macierzy jest równy 1 to j-ta krawędź jest incydentna do wierzchołka. W przeciwnym przypadku element ten jest równy 0. Na rys. 3 przedstawiono przykładowy hipergraf oraz jego reprezentację w postaci macierzy incydencji [9]. 1 a 2 c 5 d 4 b e 3 A = a b c d e 1 0 1 0 0 1 1 0 0 1 0 1 1 0 1 0 0 0 1 0 0 1 1 1 0 1 2 3 4 5 Rys. 3. Hipergraf oraz jego macierz incydencji Minimalną transwersalą hipergrafu jest najmniejsza liczba krawędzi incydentnych do wszystkich wierzchołków hipergrafu. Transwersale wyznacza się analizując kolumny i wiersze macierzy incydencji hipergrafu, korzystając z przedstawionych poniżej definicji. 26

Istotna kolumna istotna krawędź jest to taka krawędź, dla której istnieje wiersz z pojedynczą jedynką tzn. jedyna krawędź incydentna z wierzchołkiem. Istotne kolumny (krawędzie) muszą być częścią każdego pokrycia. Kolumna dominuje inną kolumnę, gdy elementy poprzedniej kolumny są większe lub równe elementom następnej. Analogicznie krawędź dominuje inną krawędź, jeżeli jest incydentna do co najmniej wszystkich wierzchołków incydentnych do innej krawędzi. Zdominowane kolumny (krawędzie) można pominąć w dalszych rozważaniach. Wiersz dominuje inny wiersz, gdy elementy poprzedniego wiersza są większe lub równe odpowiednim elementom następnego Analogicznie wierzchołek dominuje inny wierzchołek, jeżeli jest incydentny do co najmniej wszystkich krawędzi incydentnych do innego wierzchołka. Dominujące wiersze (wierzchołki) można zaniedbać, ponieważ każde pokrycie zbioru zdominowanego jest pokryciem pełnego zbioru. Przykład minimalnej transwersali hipergrafu przedstawiono na rys. 4. 1 a 2 1 a 2 c b e b 5 3 5 3 d d 4 4 Rys. 4. Hipergraf oraz jego minimalna transwersala 3. MINIMALIZACJA PAMI CI MIKROPROGRAMOWANEGO UKŁADU STERUJ CEGO Z WYKORZYSTANIEM HIPERGRAFÓW Rozmiar pamięci mikroprogramowanego układu sterującego bardzo często przekracza zasoby dedykowanych bloków pamięci dostępnych w układach FPGA [8]. W niniejszym rozdziale przedstawiony zostanie algorytm optymalizacji rozmiaru mikroinstrukcji a w efekcie rozmiaru pamięci mikrokontrolera. Minimalizacja rozmiaru pamięci mikroprogramowanego układu sterującego może zostać podzielona na następujące etapy: 1. Wyznaczenie klas kompatybilności (zgodności) mikrooperacji dla pamięci mikroprogramowanego układu sterującego. W tym punkcie określone zostaną klasy kompatybilności mikroinstrukcji wchodzących w skład pamięci mikroprogramowanego układu sterującego. Mikrooperacje są parami 27

kompatybilne jeśli nie występują w tych samych mikroinstrukcjach. Formalnie kompatybilność mikrooperacji można zapisać następująco [7]: 1 kompatybilność d = { k i n (1) 0 brak kompatybilności j gdzie ki K oznacza i-tą mikroinstrukcję (słowo) zapisaną w pamięci mikroprogramowanego układu sterującego; nj N mikrooperacja na j-tym miejscu w i-tej mikroinstrukcji. Przykładowo dla mikrooperacji zapisanych w pamięci przedstawionej w tabeli 1 można wyznaczyć następujące zbiór C={C 1,...,C 4 } czterech klas kompatybilności: C 1 =[y 0, y 1, y 2 ], C 2 =[y 0, y 2, y 3, y 5 ], C 3 =[y 1, y 4 ], C 4 =[y 3, y 4, y 5 ]. 2. Określenie wag klas kompatybilności. Waga klasy to minimalna liczba bitów, jakie są niezbędne do reprezentacji wchodzących w jej skład mikrooperacji. Waga klasy może zostać w bardzo łatwy sposób wyznaczona ze wzoru: L i = ]log2 C i + 1[ (2) gdzie C i oznacza i-tą klasę kompatybilności, L i - wartość wagi klasy C i. Nadmiarowy bit jest niezbędny do określenia stanu, w którym nie jest wykonywana żadna mikroinstrukcja. W opisywanym przykładzie poszczególne klasy będą miały następujące wagi: C 1 =]log 2 3+1[=2; C 2 =]log 2 4+1[=3; C 3 =]log 2 2+1[=2; C 4 =]log 4 2+1[=2. 3. Utworzenie macierzy incydencji hipergrafu dla wyznaczonych klas kompatybilności. Kolejny krok to utworzenie macierzy incydencji hipergrafu H 1. Kolumny macierzy określają klasy kompatybilności, wiersze zaś mikrooperacje. Jeśli na przecięciu kolumny i wiersza pojawia się wartość 1 oznacza to, że dana mikrooperacja należy do danej klasy kompatybilności. Zawartość macierzy dla rozpatrywanego przykładu przedstawiono za pomocą tabeli 2. 28

Tab. 2. Macierz incydencji hipergrafu H 1 Mikrooperacje Klasy kompatybilno C1 C2 C3 C4 ci y0 1 1 0 0 y1 1 0 1 0 y2 1 1 0 0 y3 0 1 0 1 y4 0 0 1 1 y5 0 1 0 1 Hipergraf ilustrujący klasy kompatybilności zapisane w tabeli 2 pokazany został na rys. 5. Dla uproszczenia poszczególne mikrooperacje oznaczone zostały cyframi {0,,5}. Klasy kompatybilności oznaczone są jako krawędzie hipergrafu. C 1 C 4 5 C 2 C 3 3 Rys. 5. Hipergraf H1 4. Wyznaczenie minimalnej transwersali hipergrafu. W tym etapie należy wyznaczyć minimalną transwersalę hipergrafu [9]. W przypadku hipergrafu przedstawionego na rys. 5 minimalna transwersala może zostać zrealizowana na dwa sposoby: poprzez klasy C 1 i C 4 lub C 2 i C 3. Aby wybrać optymalne rozwiązanie należy zsumować wagi wchodzące w skład danej transwersali. Suma wag klas C 1 oraz C 4 wynosi 4, natomiast suma wag klas C 2 i C 3 jest równa 5. Do dalszych rozważań należy więc wybrać pokrycie składające się z klas C 1 oraz C 4. 5. Kodowanie klas kompatybilności realizujących minimalną transwersalę hipergrafu. Kolejny krok to zakodowanie klas kompatybilności. Liczba zmiennych Q niezbędnych do realizacji tego zadania wynika bezpośrednio z wag przypisanych tym klasom. Suma wag klas C 1 i C 4 wynosi 4, tak więc w tym przypadku należy wykorzystać 4 zmienne Q={q 1, q 2, q 3, q 4 }. Ponieważ klasa C 1 ma wagę 2, tak więc do jej zakodowania potrzebne będą dwie zmienne (q 1 oraz q 2 ). Analogicznie klasa C 4 zakodowana zostanie z wykorzystaniem dwóch 29

zmiennych q 3 i q 4. Dobór kodu jest dowolny, aczkolwiek przypisanie pierwszego kodu (składającego się wyłącznie z 0) jest zalecany dla tych wierszy, w których nie jest generowana żadna mikrooperacja. W tabeli 3 przedstawiono przykładowe kodowanie klas C 1 i C 4. Tab. 3. Przykładowe kodowanie klas kompatybilno ci Klasa C1 Kod Klasa C4 Kod y0 y1 y2 q1 q2 y3 y4 y5 q3 q4 K 0 1 0 0 1 0 0 1 0 1 1 0 1 0 0 1 1 0 0 1 0 2 1 0 0 1 0 0 1 0 1 1 3 0 0 1 1 1 0 1 0 1 1 4 6. Wyznaczenie pamięci mikroprogramowanego układu sterującego z zakodowanymi klasami kompatybilności. Zawartość pamięci określana jest poprzez zestawienie wszystkich zmiennych otrzymanych w punkcie 5. Wynika stąd, że rozmiar słowa pamięci (mikroinstrukcji) po optymalizacji jest równy sumie wag wszystkich klas wykorzystanych do minimalnego pokrycia. Dla rozpatrywanego przykładu suma wag C 1 i C 4 jest równa 4, wobec tego rozmiar mikroinstrukcji nowej pamięci będzie równy 4. W tabeli 4 przedstawiono zawartość pamięci układu mikroprogramowanego po optymalizacji. Tab. 4. Zawarto pami ci mikroprogramowanego układu steruj cego po optymalizacji Bk Adres Mikroinstrukcja (bk) q1 q2 q3 q4 K b1 00 0 1 0 1 1 b2 01 0 1 1 0 2 b3 10 1 0 1 1 3 b4 11 1 1 1 1 4 Jak widać, wielkość pamięci mikroprogramowanego układu sterującego po optymalizacji jest znacznie mniejszy niż pierwotnie. Rozmiar pamięci przedstawionej w tabeli 2 jest równy 24 bity, natomiast rozmiar pamięci pokazanej w tabeli 4 to 16 bitów. Oznacza to, że wielkość pamięci została zredukowana aż o 33%. W tym miejscu należy dodać, iż pamięć, która została poddana procesowi optymalizacji zawiera zakodowane mikroinstrukcje mikrokontrolera. Niezbędne jest więc zdekodowanie pierwotnych mikrooperacji. Ten problem może zostać rozwiązany na wiele sposobów (na przykład poprzez zastosowanie dekodera) i nie jest przedmiotem niniejszego artykułu. 30

4. PODSUMOWANIE W artykule zaproponowano metodę optymalizacji rozmiaru pamięci mikroprogramowanego układu sterującego. Minimalizacja długości mikroinstrukcji przechowywanych w pamięci mikrokontrolera jest realizowana poprzez odpowiednie zakodowanie mikrooperacji wchodzących w skład klas kompatybilności, wyznaczonych z wykorzystaniem hipergrafów. Badania przeprowadzone przez autorów wykazały, że efektywność proponowanej metody jest ściśle uwarunkowana od stopnia kompatybilności mikrooperacji zapisanych w pamięci mikroprogramowanego układu sterującego. Formalnie można to określić następującym wzorem: t = S L i i = 1 1 100 % N (3) gdzie t oznacza zysk (w %) zajętości pomięci w stosunku przed i po optymalizacji; S - liczba klas kompatybilności realizujących minimalne pokrycie; Li- waga i-tej klasy wchodzącej w skład minimalnego pokrycia; N- pierwotny rozmiar mikrooperacji. Testy przeprowadzone na podstawie (3) wykazały, że metoda jest najbardziej przydatna w przypadku, gdy liczba mikrooperacji wchodzących wkład klas realizujących minimalne pokrycie jest jak największa, a osiągnięty zysk może wynosić nawet do 70-80%. LITERATURA [1] M. Adamski: Metodologia projektowania reprogramowalnych sterowników logicznych z wykorzystaniem elementów CPLD i FPGA, Materiały I KKN RUC, Szczecin: 1998, s. 15-22 [2] I. Ahmed, M. K. Dhodhi: State assignment of finite state machines, IEE Proceedings: Computers and Digital Techniques, 1, 2000 - s. 15-22 [3] S. Baranov: Logic Synthesis for Control Automata, Kluwer Academic Publishers, 1994 s. 312 [4] A. A. Barkalov, A. V. Palagin: Synthesis of microprogram control units, Kiev: IC NAS of Ukraine, 1997 [5] A. A. Barkalov: Synthesis of control units on programmable logic devices, Donetsk: DNTU, 2002 s. 262 [6] G. Borowik, M. Rawski: Effective Implementation of Sequential Circuits using FPGAs with Embedded Memory Blocks, IFAC Proceedings: Programmable Devices and Systems, Kraków, 2004 s. 175 180 31

[7] R. K. Brayton, G. D. Hachtel, C. T. McMullen, A. L. Sangiovanni-Vincentelli: Logic Minimization Algorithms for VLSI Synthesis, Kluwer Academic Publishers, Dordrecht, 1984 [8] S. Dasgupta: The Organization of Microprogram Stores, Computing Surveys, 1979 [9] G. De Micheli: Synthesis and Optimization of Digital Circuits, McGraw Hill: NY, 1994 [10] R. Grushnitsky, A. Mursaev, E. Ugrjumov: Development of systems on chips with programmable logic, SPb: BHV Petersburg, 2002 s. 608 [11] T. Łuba (Praca zbiorowa pod redakcją prof. Tadeusza Łuby): Synteza układów cyfrowych, Warszawa: WKŁ, 2003 s. 296 [12] T. Łuba, H. Selvaraj: A General Approach to Boolean Function Decomposition and its Applications in FPGA-based Synthesis, VLSI Design, Special Issue on Decompositions in VLSI Design, vol. 3. Nos. 3-4, 1995 - s. 289-300 [13] R. Wisniewski: Design of compositional microprogram control units with sharing of the codes, Gliwice: Archiwum Konferencji PTETiS, 2004 - Vol. 19, z. 4, s. 217-220 32