Barrel processor , trumprocessor, är en processor som efter varje cykel växlar mellan instruktionsströmmar . Denna processorarkitektur är också känd som "interfolierad" (interfolierad) eller "finkornig" (finkornig) temporär flertrådning . Till skillnad från simultan multithreading i moderna superskalära arkitekturer tillåter denna teknik inte att flera instruktioner exekveras i en cykel.
Som med förebyggande multitasking tilldelas varje exekveringstråd sin egen mjukvaruräknare och andra hårdvaruregister för att bevara varje tråds sammanhang. En barrel-processor kan garantera att varje tråd kommer att köras var n:e cykel, till skillnad från en förebyggande multitasking-processor, som vanligtvis kör en enda exekveringstråd i hundratals eller tusentals cykler medan alla andra trådar väntar på sin tur.
En designteknik som kallas C-slowdown kan, givet ett processorschema med en enda uppgift, generera ett motsvarande Barrel-processorschema. En n -trådad Barrel-processor som genereras på detta sätt fungerar precis som ett multiprocessorsystem sammansatt av n separata kopior av den ursprungliga single-tasking-processorn, som var och en körs med ungefär 1/ n av sin ursprungliga hastighet.
Ett av de äldsta exemplen på en trumprocessor var I/O-processorn i CDC 6000-serien superdator . Den kunde exekvera en enskild instruktion eller del av en komplex instruktion från var och en av 10 olika virtuella processorer, även kallade perifera processorer, innan den återvände till den första processorn. [ett]
Trumprocessorer kan också användas som centralenheter i stora system. Till exempel hade Tera MTA (1988) en Barrel-processor med 128 trådar per kärna. [2] [3] MTA-arkitekturen har vidareutvecklats i efterföljande produkter som YarcData uRiKA , som introducerades 2012, de är fokuserade på datautvinningsapplikationer . [fyra]
Barrel-processorer kan användas för att minska hårdvarukostnaderna. Xerox Alto -mikrokoden kördes på en fatprocessor som implementerade två processorer, en videokontroller, en Ethernet-kontroller, en diskkontroller och andra I/O-enheter. [5]
Barrel-processorer kan också hittas i inbyggda system, där de är särskilt användbara på grund av deras deterministiska trådprestanda i realtid Ett exempel är XMOS XCore XS1 (2007), en fatprocessor med åtta trådar per kärna. XS1 används i Ethernet, USB, ljud och andra kontroller där I/O-prestanda är avgörande. Barrel-processorer används också i specialiserade applikationer, såsom Ubicom IP3023 (2004) åtta-tråds nätverksprocessor.
En processor med en enda uppgift spenderar många cykler på NOOP- operationer, utan att göra någonting användbart, varje gång en cache-miss inträffar eller pipelinen är inaktiv . Fördelarna med att använda fatprocessorer framför single-tasking processorer är följande:
Det finns flera nackdelar med fatprocessorer .
Processor Technologies | Digital|||||||||
---|---|---|---|---|---|---|---|---|---|
Arkitektur | |||||||||
Instruktionsuppsättning arkitektur | |||||||||
maskinord | |||||||||
Parallellism |
| ||||||||
Genomföranden | |||||||||
Komponenter | |||||||||
Energihantering |