Application-Specific Instruction Set Processor for Medical Ultrasound Beamforming
Abstract
Ultralyd er en sikker, presis og fleksibel medisinsk bildeteknologi. Teknologien har evne til å avbile menneskelig vev i 2D og 3D. Ultralyd kan også gi informasjon om blodhastighet, vevsstivhet og andre egenskaper i menneskelig vev.
En helt sentral del av et ultralydsystem er systemet for styring av ultralydekko fra forskjellige transducer-elementer i de samme fokuspunktene. Dette refereres ofte til som stråleforming. Algoritmer som utfører stråleforming i moderne ultralydsystemer er komplekse av natur da de håndterer store mengder data og er basert på beregning av forsinkelsesverdier. Denne kompleksiteten, kombinert med strenge tidsfrister i sanntids-ultralydapplikasjoner, har vist seg å være en reell utfordring ved utvikling av ultralydsystemer.
I tradisjonelle ultralydsystemer har store deler av stråleformingen blitt håndtert av analoge, elektroniske systemer. I sammenheng med at teknologien har utviklet seg over de siste tiårene, har en større del av denne funksjonaliteten blitt flyttet til digitale systemer. Application-Specific Integrated Circuits (ASICer) brukes ofte for å maksimere ytelse, men de gir svært begrenset fleksibilitet og er dyre å produsere. General Processing Units (GPUer) gir fleksibilitet men de er ikke egnet for små, bærbare systemer da de vanligvis er store og har et høyt energiforbruk.
Et system i brytningspunktet mellom GPUer og ASICer er sannsynligvis det optimale. Siden det finnes få slike systemer i litteraturen, vil denne masteroppgaven presentere en programmerbar Application-Specific Instruction Set Processor. Prosessorarkitekturen kjører på et standard instruksjonssett som er utvidet med optimaliserte instruksjoner for forsinkelsesverdiberegning. Dette gjør den svært effektiv til å beregne forsinkelsesverdier, samtidig som den gir generell funksjonalitet for videre utvikling av stråleformings-algoritmer i software.
For en programvareapplikasjon som beregner forsinkelsesverdier for 32 transducer-elementer, gir den presenterte prosessoren en gjennomsnittlig effektivisert kjøretid med x2.77 sammenlignet med en prosessor som kjører på et standard instruksjonssett. Prosessor-arkitekturen er videre optimalisert for mest mulig effektiv forflytning av dataelementer i en assembly-implementasjon. For denne arkitekturen ble det observert en ytterligere gjennomsnittlig økt kjørehastighet på x2.49. Arkitekturen som presenteres er svært skalerbar ettersom parallelle strukturer kan legges til arkitekturen for å øke ytelsen ytterligere. Dette fører i gjengjeld til økt areal og effektforbruk. Ultrasound is a safe, precise and flexible medical imaging technique. It has the capability of real-time modelling of human tissue in 2D and 3D and can also give information about blood velocity, tissue stiffness and other properties of human tissue.
Steering and focusing ultrasound echoes from different transducer elements in the same focal points is often referred to as beamforming. This is a crucial part of all ultrasound systems. Beamforming algorithms in modern ultrasound systems are complex in nature as they handle a big amount of data and are based on calculation of delay values. This complexity mixed with strict timing demands in real-time ultrasound applications has proven a real challenge.
In traditional ultrasound systems a lot of this processing has been done in analog electronic systems, but in recent years there has been a trend in moving this functionality into digital systems. Application-Specific Integrated Circuits (ASICs) are often used to maximize performance, but they provide very limited flexibility and are costly to produce. General Processing Units (GPUs) provide flexibility but they are not suited for small, portable systems as they are typically large and consume a lot of power.
A solution between GPUs and ASICs is probably the optimal one. As there exist few such solutions in literature, a programmable Application-Specific Instruction Set Processor architecture has been developed and is presented in this thesis. The architecture runs on a standard base instruction set extended with highly optimized instructions for delay value calculation. This makes it very efficient at calculating delay values, while providing general functionality for further beamforming algorithm implementations in software.
For a software application calculating delay values for 32 transducer elements, the customized instruction set processor provides an average speedup of x2.77 compared to a processor running on a base instruction set. For an assembly implementation running on a datapath optimized version of the architecture, a further average speedup of x2.49 was observed. The architecture presented is highly scalable due to parallel structures that can be added to the architecture to meet specific performance demands. The speedup when adding such parallel structures is even more pronounced but comes with an area and power tradeoff.