Rekonfigurerbar maskinvare har i den siste tiden vist seg å være et særdeles nyttig verktøy i forbindelse med akselerasjon av forskjellige algoritmer. Spesielt gjelder dette algoritmer som enkelt lar seg parallellisere. Et av hovedproblemene med bruk av rekonfigurerbar maskinvare er at det tar relativt lang tid å rekonfigurere selve maskinvaren for en gitt algoritme-implementasjon (modul). Hvis en bruker flere forskjellige slike implementasjoner etter hverandre kan dette bli et veldig stort problem. Partiell rekonfigurering har lettet litt på dette problemet. Dette fordi partiell rekonfigurering gjør det enkelt å ha flere moduler lastet inn i maskinvaren samtidig. I tillegg er det mulig å ''skjule'' rekonfigureringstiden ved å rekonfigurere deler av maskinvaren mens resten jobber med en oppgave. Flere moduler på samme brikke betyr også at det er større sjanse for at en ikke trenger å rekonfigurerer maskinvaren før en gitt oppgave, siden det er en sjanse for at modulen allerede ligger konfigurert. I denne oppgaven presenterer vi et system som har mulighet til å ha 4 forskjellige moduler konfigurert til enhver tid. Denne oppgaven ser på muligheten til å benytte temporær lokalitet i bruksmønstret til de forskjellige modulene, til å avgjøre hvor i maskinvaren en ny modul skal lagres. Med dette mener vi å implementere et system som holder rede på hvor ofte de forskjellige modulene blir brukt. Denne informasjonen blir så benyttet til å bestemme hvilke moduler som skal få ligge i maskinvaren og hvilke som skal kastes ut når det blir nødvendig å laste inn en ny modul. Til dette benyttes en enkel LRU- (least recently used) algoritme, og systemets virkemåte har mange likhetstrekk med hvordan hurtig-buffer for minne fungerer på en vanlig PC. Med dette håper en å redusere antall rekonfigureringer og på denne måten redusere den totale rekonfigurasjonsforsinkelsen. Vi ser også på muligheten til å stokke om på rekkefølgen oppgavene blir sendt inn i, for å prøve å minimere antall rekonfigureringer. Systemet består av en programvaredel som holder rede på bruksmønsteret og tar avgjørelse om fordelingen av modulene. I tillegg så inneholder systemet også en maskinvaredel som tar seg av kommunikasjon mellom modulene og programvaren. Modulene ligger på egne datafiler som blir lest inn ved behov av brukerprogrammet. Brukeren sender inn oppgaver til systemet ved å spesifisere hvilken modul han/hun ønsker å benytte og hvilke data som skal sendes inn til den.
Identifer | oai:union.ndltd.org:UPSALLA1/oai:DiVA.org:ntnu-10210 |
Date | January 2005 |
Creators | Fredriksen, Tord Andreas |
Publisher | Norges teknisk-naturvitenskapelige universitet, Institutt for datateknikk og informasjonsvitenskap, Institutt for datateknikk og informasjonsvitenskap |
Source Sets | DiVA Archive at Upsalla University |
Language | Norwegian |
Detected Language | Norwegian |
Type | Student thesis, info:eu-repo/semantics/bachelorThesis, text |
Format | application/pdf |
Rights | info:eu-repo/semantics/openAccess |
Page generated in 0.0093 seconds