spacer.png, 0 kB
Volg Cursor via Twitter Volg Cursor via Facebook Cursor RSS feed
spacer.png, 0 kB

spacer.png, 0 kB


Scheikundestudent Eelco de Visser koos voor een afstudeerstage bij de vakgroep Procesontwikkeling.
Cursor in PDF formaatCursor als PDF
PrintE-mail Tweet dit artikel Deel dit artikel op Facebook
Sneller en efficiënter taken verdelen in steeds complexere chips
18 oktober 2007 - Op apparaten zoals mobiele telefoons en spelcomputers zitten steeds meer toepassingen, die allemaal capaciteit vergen van eveneens steeds complexere microchips. Tegelijkertijd moet de ontwikkeling van die producten alsmaar sneller. Promovendus ir. Sander Stuijk (28) ontwikkelde een ontwerpmethode waarmee het vertalen van programmacode naar taken die zijn toebedeeld aan componenten van een chip veel sneller kan. En dat met een keiharde garantie dat je ook altijd beeld hebt op je Playstation.
Op de centrale chip van de Playstation 3 zitten al negen processors.

Vroeger, toen waren chips nog eenvoudig. Je had een processor, wat geheugens om data op te slaan en een zogenoemde ‘bus’ om de zaak te verbinden. Binnenkort is dat grotendeels verleden tijd, zeker voor chips in consumentenelektronica.
Tot nu toe kwamen chipfabrikanten aan de vraag om meer capaciteit tegemoet door de snelheid van de processor op te voeren. Maar de grens is wat dat betreft wel bereikt. De nieuwe oplossing is meerdere processors op een chip plaatsen. En dan het liefste nog verschillende ook. Vergelijk het met het verschil tussen een groep algemene bouwvakkers die een huis bouwen en een team van specialisten, illustreert Sander Stuijk. “Een loodgieter zal altijd sneller leidingen leggen dan een algemene bouwvakker.” Dus is de loodgieter sneller klaar en gebruikt minder energie. Zo is ook met de nieuwe generaties chips. Op de centrale chip van de Playstation 3 zitten al negen processors en in de nabije toekomst komen er IC’s met meer dan honderd. Die kun je natuurlijk ook niet meer zo gemakkelijk verbinden. Daarom wordt tegenwoordig een internetsysteem mee ingebakken in de chips. Het contact tussen al die processors -en natuurlijk ook de bijbehorende geheugens- verloopt net als bij het internet via routers. Die in dit geval ook in de chip zitten. En dat maakt het weer gemakkelijk om een bestaand type chip uit te breiden: je stopt er een paar processors en routers bij, en voilà, klaar. Dat laatste is vooral gunstig omdat het tegenwoordig te duur en te tijdrovend is om chips from scratch te ontwerpen. Er wordt daarom voortgeborduurd op bestaande chips.
Daarmee zijn we bij het onderwerp dat Stuijk onder de loep nam: multiprocessor system-on-chip (MP-SoC) verbonden door network-on-chip (NoC). Dit soort chips krijgen in de nieuwe generaties multimediaproducten steeds meer toepassingen tegelijkertijd te verwerken, zoals video, telefoon, agenda, internet en mp3-speler. En we verwachten als gebruiker dat alles gewoon werkt, zonder enige hapering. Dat wil zeggen dat alle taken die de chips hiervoor moeten uitvoeren allemaal netjes op tijd aan de beurt moeten komen. Het verdelen van die taken over de verschillende processors en geheugens van de chip heet ‘mapping’. En dat wordt steeds complexer, want de enorme berg taken kan op steeds meer verschillende manieren verdeeld worden, doordat er meer processors en geheugens in chips zitten.
Om ervoor te zorgen dat alle taken op tijd aan de beurt komen, krijgen alle applicaties elk maar een beperkte capaciteit van de processors en geheugens toegewezen. Die verdeling is dusdanig dat alle applicaties tegelijk aan de beurt kunnen zijn, anders kun je niet voor honderd procent garanderen dat alles op tijd wordt uitgevoerd. En dat is precies wat Stuijk wél wilde: keiharde garanties dat alles op tijd gebeurt.

Tetris
Hij boog zich onder meer over het probleem van het minimaliseren van de toegewezen capaciteit van de geheugens. Immers: hoe minder je hoeft toe te wijzen, hoe meer applicaties je tegelijkertijd aankan. Het is net zoals Tetris, vergelijkt de aio. Je moet proberen zoveel mogelijk blokjes in een beperkte ruimte te passen. Hij ontwikkelde een techniek die in staat is om voor alle datadoorstroomsnelheden de minimaal benodigde combinatie van opslagruimte te bepalen.
Ook keek de onderzoeker naar de taakverdeling over de processors en de geheugens. Hij bedacht, samen met een collega, een techniek die bepaalt welke taak naar welk component moet en in welke volgorde de taken aan de beurt komen. Zijn techniek bestaat eruit dat programmacode eerst wordt gemodelleerd met zogenaamde ‘grafen’, een soort van wiskundige blokdiagrammen. Het voordeel van grafen is dat het tijdsgedrag van de applicaties nu geanalyseerd kan worden. Na het modelleren wordt de graaf ‘gemapt’ op de processors en geheugens. “Voorafgaand aan dit proefschrift was dit een tijdrovend proces waarvoor je dagen of weken nodig had. Nu kunnen we dat in een paar seconden”, vertelt Stuijk. Als toefje op de taart wist hij zijn technieken ook nog te vertalen naar een computerprogramma dat ontwikkelaars bij de hand neemt en ze door het mapping-probleem loodst. Zijn software is online beschikbaar en wordt inmiddels gebruikt door meerdere andere universiteiten.
Eigenlijk had Stuijk nog verder willen gaan. De verdeling van processor- en geheugencapaciteit die hij nu hanteert, is al heel efficiënt, maar wel statisch. Elke applicatie krijgt een stukje capaciteit waarmee ze haar taken zeker kan uitvoeren. Daardoor blijft een deel van de totaal beschikbare capaciteit van geheugens en processors vaak ongebruikt. Het zou mooier zijn als de toewijzing dynamisch wordt, waardoor de Tetrisblokjes nog beter op elkaar passen. “Dat vergt nog een aantal jaren werk”, denkt Stuijk. Maar als het eenmaal zover is, is er geen weg meer terug. “Als we daarmee successen gaan boeken, dan zul je dit soort technieken terugzien in heel veel multimediale systemen.”/.