MIPS trådar kan schemaläggas. Programmeraren kan till exempel - schemat är programnmerbart - ange att var tionde klockcykel kan läggas på en viss tråd. Detta ger en periodisk tråd som kan användas för realtidsuppgifter. Den kan enligt MIPS ersätta en separat DSP.
Den andra tråden kan ta hand om mjukare bearbetning, kanske köra ett standardoperativsystem. Det går att använda multitrådade processorer i multiprocessorsystem. Då kan trådar dynamiskt flyttas mellan processorerna.
Du får kavla upp ärmarna och arbeta i assembler om du vill utnyttja den här typen av finesser idag, innan utvecklingsverktygen stöder dem. För realtidsprestanda kan du behöva se till att de två trådarna inte nyttjar gemensamma flercykliga instruktioner och låser ute varandra.
För dig som är mer bekväm finns som alternativ en multitrådhantering som är kompatibel med din existerande programvara för MIPS-multiprocessorer.
Multitrådning bygger på insikten att det räcker att dubblera bara vissa delar av en processorkärna för att i praktiken nästan uppnå samma effekt som en dubbelkärna.
Växla tråd mycket ofta
Programtrådar tillbringar mycket tid med att vänta på minnet. Då kan processorn växla till en annan tråd. En multitrådad processor kan växla tråd utan att tömma sin pipeline. Det tar bara en klockcykel.
Det gör det praktiskt möjligt att växla tråd med mycket hög frekvens. Trådväxling i hårdvara gör det också möjligt att byta tråd just när det behövs, hårdvaran vet när trådar måste vänta.
Instruktioner från olika trådar blandas i samma pipeline. Det betyder att bland annat registeruppsättning och programräknare är dubblerade.
Men cache och pipeline är gemensam, och de upptar det mesta av kiselytan. Så den tvåtrådade versionen MIPS 24K är bara cirka 8 procent större än den enkeltrådade. En tretrådad adderar bara ytterligare 3 procentenheter.
De första MIPS-processorerna med multitrådning dyker upp nästa år, tror MIPS.
Jan Tångring