Järnlag för processorprestanda

I datorarkitektur beskriver järnlagen för processorprestanda (eller helt enkelt järnlagen för prestanda) prestandaavvägningen mellan komplexitet och antalet primitiva instruktioner som processorer använder för att utföra beräkningar. Denna formulering av avvägningen stimulerade utvecklingen [ citat behövs ] av Reduced Instruction Set Computers (RISC) vars instruktionsuppsättningsarkitekturer (ISA) utnyttjar en mindre uppsättning kärninstruktioner för att förbättra prestandan. Termen myntades av Douglas Clark baserat på forskning utförd av Clark och Joel Emer på 1980-talet.

Förklaring

En processors prestanda är den tid det tar att köra ett program: . Detta kan ytterligare delas upp i tre faktorer:

Val av en instruktionsuppsättningsarkitektur påverkar m bestäms till stor del av tillverkningstekniken. Classic Complex Instruction Set Computer (CISC) ISA optimerade genom att tillhandahålla en större uppsättning av mer komplexa CPU-instruktioner . Generellt sett ökar dock komplexa instruktioner antalet klockcykler per instruktion eftersom de måste avkodas till enklare mikrooperationer som faktiskt utförs av hårdvaran. Efter att ha konverterat X86 binär till de mikrooperationer som används internt är det totala antalet operationer nära vad som produceras för en jämförbar RISC ISA. Processorprestandas järnlag gör denna avvägning explicit och driver på för optimering av som helhet, inte bara en enda komponent.

Även om järnlagen är krediterad för att ha startat utvecklingen av RISC-arkitekturer, [ citat behövs ] innebär det inte att en enklare ISA alltid är snabbare. Om så vore fallet skulle den snabbaste ISA bestå av enkel binär logik. En enskild CISC-instruktion kan vara snabbare än motsvarande uppsättning RISC-instruktioner när den möjliggör att flera mikrooperationer kan utföras i en enda klockcykel. I praktiken tillät emellertid regelbundenheten hos RISC-instruktioner en pipelined implementering där den totala exekveringstiden för en instruktion var (vanligtvis) ~5 klockcykler, men varje instruktion följde den föregående instruktionen ~1 klockcykel senare [ citation needed ] . CISC-processorer kan också uppnå högre prestanda med hjälp av tekniker som modulära tillägg, prediktiv logik, komprimerade instruktioner och makrooperationsfusion.

Se även