SpeedStep

**SpeedStep** (Algupäraselt koodnimega *Geyserville*, hiljem ka *Enhanced Intel SpeedStep Technology*, lühidalt *EIST*) on Inteli arendatud toitehaldustehnoloogia. Tehnoloogia on sisse ehitatud Inteli protsessoritele alates aastast 2000, ning võimaldab tarkvara abil muuta dünaamiliselt protsessori taktsagedust ning voolutarvet. Taktsageduse muutmine korreleerub protsessori töökiirusega ja võimaldab seega protsessori efektiivsema kasutamise. Tänu *SpeedStep* tehnoloogiale on Inteli protsessorid omanud märgatavalt paremat energiasäästlikust võrreldes konkurentide protsessoritega. 

## Ajalugu

Esimest korda demonstreeris Intel enda uut *Geyserville* tehnoloogiat 18. jaanuaril aastal 2000 korraldatud Inteli arendajate foorumil (*Intel Developer Foorum*). Päris esimese *Geyserville* abil muutis protsessor oma olekut automaatselt, olenevalt protsessori hetke koormusest. Peale demonstratsiooni ei läinud kaua, kui ilmus Inteli esimene *Geyserville* tehnoloogiaga varustatud protsessor. Lisatud oli seekord ka võimalus tarkvaraliselt muuta protsessori taktsagedust. Pentium III sai au olla esimene Inteli protsessor, mis võimaldas energiasäästlikuma arvuti kasutuse. Kuigi kasutatav *Geyserville* (*SpeedStep*) võimaldas protsessoril vahetada vaid kahe režiimi vahel – suuremate ja raskemate protsesside arvutamiseks mõeldud režiim (*Highest Frequency Mode*, ehk *HFM*) ning väiksemate ja vähem arvutusvõimsust vajavate protsesside jaoks mõeldud režiim (*Lowest Frequency Mode*, ehk *LFM*) - oli see siiski märkimisväärne edusamm ja eelis Inteli kasuks. Koos Pentium III protsessoriga nimetati ka siiani *Geyserville* nime kandud tehnoloogia ümber *SpeedStep*’iks. 

Peale Pentium III hakati *SpeedStep*’i järjest paremaks arendama ja juba aastal 2003 ilmus Inteli Pentium M protsessor, mis tõi kaasa ka *SpeedStep*’i arenenuma versiooni. *SpeedStep*’i uuem versioon lisas juurde erinevaid režiime ning analoogiliselt ka nende režiimide vahetusvõimaluse. Lisandunud režiimid tõid juurde paindlikust ning veelgi tõhusama energiakulutuse haldamisvõimaluse. See tehnoloogia sai aga alles nüüd hoo sisse ja arenes järgnevatel aastatel veelgi kiiremal sammul edasi. 

Aastal 2004 tutvustaski Intel taas uuenenud *SpeedStep*’i tehnoloogiat. Areng tõi kaasa ka uue ning teemakohasema nime, *Enhanced Intel SpeedStep Technology* või lühidalt *EIST*. *EIST* kujutas endast edasiarengut eelnevast versioonist ning võimaldas täpsema ning tõhusama dünaamilise pinge ja taktsageduse skaleerimise (*Dynamic Voltage and Frequency Scaling* ehk *DVFS*), millel oli ka parandatud taktsageduse automaatkontrolli vastavalt protsesside koormusele. Samal aastal jõudis Inteli *SpeedStep* tehnoloogia ka serverites kasutatavate protsessoriteni. Intelile tähendas see väga suurt edusammu. Serverite massiivset energiakulutust oli nüüdsest võimalik oluliselt paremini kontrollida ja sellega energiatõhusust oluliselt parandada. Kuna energiasääst oli reaalselt arvestatav kasutajate kuludes, lõi see pikaajalise turueelise ja julgustas Intelit *SpeedStep*’i järjest tõhusamaks arendama. 

Järgmine Inteli suurem edusamm leidis aset aastal 2005, kui Inteli Pentium M protsessor viidi kokku *EIST*’iga. Pentium M oli juba aastal 2003 Inteli poolt välja arendatud protsessor, mis oli energiatõhusamaid, kui mitte kõige tõhusam protsessor sellel ajal. Väga hea energiaefektiivsus ning sellega automaatselt kaasnev võrdlemisi väike soojusväljund tegid Pentium M-ist väga levinud ja kasutatud protsessori, mis oli eriti hinnatud mobiilsetes arvutusseadmetes, näiteks sülearvutites.  

Peale *EIST*’i on Intel jätkanud samal tehnoloogial põhineva tarkvara arendamist, lisades uusi funktsionaalsusi iga uue versiooniga. *EIST*’i järglane ilmus aastal 2008 ja kandis nime *[https://en.wikipedia.org/wiki/Intel%20Turbo%20Boost Turbo Boost Technology]*, aastal 2015 arenes see edasi *Speed Shift* tehnoloogiaks ning kõige hilisem väljalase on *[https://en.wikipedia.org/wiki/Adaptive%20voltage%20scaling Adaptive Voltage/Frequency Scaling]* (*AVFS*), mis ilmus aastal 2019.  

## Tööpõhimõte

*SpeedStep*’i missioon seisneb protsessori taktsageduse ja tööpinge dünaamilises muutmises, mis võimaldab protsessoril töötada väiksema võimsusega, kulutades nii vähem elektrit ja pikendades vastavalt ka protsessori enda eluiga. Väiksema koormusega protsesside jaoks pole vaja kasutada protsessori täis võimsust, samas saab suuremate koormuste jaoks võimsust kasvatada vastavalt vajadusele. 

##### Taktsageduse reguleerimine

*SpeedStep*’i üks kahest tähtsaimast tehnikast on *[https://en.wikipedia.org/wiki/Dynamic_frequency_scaling Dynamic Frequency Scaling]* (*DFS*), mis on protsessori taktsageduse kontrollimisele mõeldud toitehaldustehnika. *DFS*’i tööpõhimõte on kohandada protsessori taktsagedust vastavalt *CPU* hetke töökoormusele. Protsessori töökoormust reguleerib *Power Management Unit* (*PMU*) mikrokontroller, mis jälgib muuhulgas ka näiteks *CPU* temperatuuri ning integreeritud kiipide konfiguratsiooni.  

Taktsageduse muutmise protsessi võib kõige üldisemalt kirjeldada kui valikut erinevate fikseeritud olekute vahel. *Speedstep*’i  võimalike olekute täpsustatud määratlemine on pidevalt paranenud, aga nendest ajas kõige esimesed ja kõige tähtsamad on *HFM* (*Highest Frequency Mode*) ja *LFM* (*Lowest Frequency Mode*). Nende kahe äärmuse vahel on defineeritud rida teisi spetsiifilisi olekuid.

##### Pinge reguleerimine

*DFS*’ile lisaks kasutab *SpeedStep* ka tehnikat nimega *[https://en.wikipedia.org/wiki/Dynamic_voltage_scaling Dynamic Voltage Scaling]* (*DVS*), mis on sarnaselt *DFS*’ile, protsessori pinge kontrollimiseks ja reguleerimiseks mõeldud toitehaldustehnika. *DVS* kasutab *PMU* tagasisidet, kuid lisaks sellele on ka teisi informatsiooni allikaid.  

Protsessor saab vajaliku pinge *VID* (*Voltage Identification*) pinnide abil. *VID* pinnid suhtlevad emaplaadiga ning edastavad omavahel teavet protsessori hetke pingest ning soovitud pingest. Töökoormuse muutus kajastub pinnide ja emaplaadi suhtluses ja loob sealtkaudu sisendi protsessori pingemuutuse arvestamiseks *DVS* ja ka *DFS* tehnoloogiale, mille tulemus ongi dünaamilise pinge ning sageduse reguleerimise. 

##### Olekud (''P-states'' ja ''C-states'')

*SpeedStep*’i tööpõhimõte seisneb erinevate olekute vahetamises. Neid olekuid nimetatakse *[https://en.wikipedia.org/wiki/ACPI#Performance_state Performance State]*’ideks (*P-states*). Igal *P-state*’il on oma teatud taktsagedus millele vastab teatud pinge. *P-state*’id pole muidugi juhuslikult valitud, vaid on *ACPI* (*[https://en.wikipedia.org/wiki/ACPI Advanced Configuration and Power Interface]*) standardiseeritud olekud. *Performance state*’ide vaheline liikumine on kirjeldatav järgmiselt: 

*  Arvuti töökoormus tõuseb või kahaneb, mille tagajärjel pärib opsüsteem protsessorilt oleku vahetamist. Päring on mõeldud just taktsageduse vahetamiseks. 

* Protsessor võib keelduda päringust või võtta päringu vastu. 

* Kui päring võetakse vastu, kirjutatakse see protsessori *MSR*’i (*[https://en.wikipedia.org/wiki/Model-specific%20register Model-Specific Register]*), mis annab käsu taktsageduse muutmiseks. Sageduse genereerib automaatselt *[https://en.wikipedia.org/wiki/Phase-locked%20loop Phase Locked Loop]* (*PPL*) sagedussüntesaator. Peale seda muudab protsessor sageduse põhjal automaatselt ka kalkuleeritud pinge. 

*Performance State*’ide vahetamine toimub väga kiiresti, kuna olekute vahel on madal ülemineku latentsusaeg, mis tähendab, et protsessor võib vahetada oma olekute mitmeid kordi sekundis.  

Taktsagedust saab loomulikult muuta ainult riistvara tehnilistele omadusele vastavates piirides ja igal protsessoril on vastavalt oma baassagedusele ainult teatul määral *P-state*’e.

*SpeedStep* tehnoloogia toetab ka *C-state*’e (*CPU state*), mis võimaldab protsessoril lülitada välja teatuid funktsionaalsusi. Tavaliselt kasutab süsteem *C-state*’e ainult siis, kui arvuti on näiteks unerežiimil või puhkerežiimil, ehk siis, kui tehtavaid protsesse on vähe või neid polegi.

## Vaata ka
Intel

Pentium III

Protsessor

## Viited