Klaszteranalízisre optimalizált alkalmazás-specifikus mikroprocesszor fejlesztése

OData támogatás
Konzulens:
Dr. Horváth Péter
Elektronikus Eszközök Tanszéke

A félvezetőipar robbanásszerű fejlődése lehetővé teszi egyre több funkció integrálását egy szilícium lapkára. A System on Chip (SoC) megoldások teljes funkcionális rendszert valósítanak meg egy chipen. Egy ilyen rendszerben az egyes feladatokat fix funkcionalitású alkalmazás-specifikus integrált áramkörrel (Application Specific Integrated Circuit, ASIC) valósítják meg. Az ASIC áramkörök kedvező fogyasztás és gyors működési sebesség mellett nehezen bővíthetőek új funkciókkal, új SoC rendszerbe nehezen illeszthetőek. Erre a problémára egy megoldást az alkalmazás-specifikus mikroprocesszorok (Application Specific Instruction-set Processor, ASIP) használata nyújt. Ezek a processzorok egy problémakörre optimalizált speciális utasításkészlettel és mikroarchitektúrával rendelkeznek. Az ASIP processzorok az ASIC áramkörök kedvező tulajdonságait kiegészítik a programozhatósággal, ezáltal rugalmasabban használhatóak.

A diplomamunkám célja klaszteranalízisre optimalizált ASIP processzor tervezése volt. A klaszteranalízis távolságmetrika alapján vizsgálja meg az egyes adatok ``hasonlóságát''. A sok összehasonlítás számításigénye nagy, ezért a távolság kiszámításnak felgyorsításával a teljes alkalmazás is sokat gyorsulhat.

A munkám során a digitális rendszereknél megszokott tervezési lépéseket alkalmaztam, így a diplomatervezés első felévében utasításkészlet specifikáció alapján egy ASIP viselkedési modellt (funkcionális szimulátort) terveztem C++ nyelven. Ebben a magas szintű modellben a programozói nézet (programozó számára is látható erőforrások, például regisztertömbök, flagek, regiszterek) viselkedését implementáltam. A funkcionális szimulátorhoz terveztem egy assemblert is, így assembly programok futtatására is lehetőség nyílt.

A diplomatervezés második félévében VHDL nyelven implementáltam, és a processzor RTL (Register Transfer Level) modelljéhez illesztettem egy gyorsító áramkört, amely Minkowski-távolságot képes hatékonyan kiszámítani egy regisztertömbben tárolt paraméterek alapján. Az áramkör működését külön, illetve a processzor mellé helyezve tesztbench alapú tesztekkel ellenőriztem. A felmerülő hibák kiküszöbölése után szintetizáltam az áramkört, és az ASIP-ot is, valamint időzítési szimulációval ellenőriztem a szintetizált áramkör viselkedését. A gyorsító áramkör és a processzor sebességének összehasonlításához implementáltam a Minkowski-távolságot kiszámító algoritmust assemblyben, és megvizsgáltam azonos adatok esetén a gyorsító áramkör és a program futásidejét.

Letölthető fájlok

A témához tartozó fájlokat csak bejelentkezett felhasználók tölthetik le.