QoS (palvelun laatu) suorittimessa: miten se vaikuttaa suorituskykyyn

QoS (palvelun laatu) suorittimessa

Termi "palvelun laatu" voi tuoda mieleen asioita, joilla ei ole mitään tekemistä laitteiston kanssa, joten se ei ole kovin yleinen termi laitteistomaailmassa. Kuitenkin QoS a prosessori on erittäin tärkeä tekijä suorituskyvyn kannalta moniytimisessä prosessorissa. Selitämme, mistä se koostuu ja mitkä tekijät vaikuttavat siihen.

Missä tahansa työjärjestelmässä, jossa on useita elementtejä, jotka toimivat keskenään, olivat ne sitten ihmisiä tai automatisoituja elementtejä, kuten koneita ja prosessoreita. Jokaisen elementin yksilöllinen suorituskyky ei ole vain tärkeää, vaan myös se, että niiden välinen viestintä on aina riittävää parhaan mahdollisen suorituskyvyn saavuttamiseksi. Tässä tulee esiin se, mitä tunnemme palvelun laaduna tai prosessorin QoS:nä.

Mitä ymmärrämme palvelun laadulla tai QoS:llä prosessorissa?

Velocidad-prosessorin kellokytkentä

Termi palvelun laatu prosessoreissa tulee tietoliikenteen maailmasta, jossa se viittaa puhelinverkon yleiseen suorituskykyyn ja siten kykyyn tarjota riittävä palvelu kyseiseen verkkoon osallistuville eri päätelaitteille. Tämä määritelmä on ekstrapoloitu moniytimien CPU:iden ja APU:iden maailmaan, jossa se viittaa prosessorin eri elementtien kommunikointiin keskenään ja RAM muisti yhteisen keskuskeskuksen kautta. Joka tunnemme perinteisesti Northbridgena ja siksi moniytimisen CPU:n QoS riippuu keskuskeskittimen suorituskyvystä, olipa kyseessä sitten klassinen kytkimien Crossbar Switch tai NoC:n verkkokortti tai SmartNIC.

Palvelun laadun ideana on, että eri ytimien lisäksi myös muilla prosessorin komponenteilla on tarvittavat tietoliikennelinjat toimiakseen moitteettomasti kaikkina aikoina. Siksi suunnittelussa on huolehdittava siitä, että koko sisäpuhelinjärjestelmä ei ole vain odotettavissa olevissa suoritushuipuissa. Mutta myös, että prosessorin sisäisessä viestinnässä ei ole epätasapainoa.

Monisäikeisessä järjestelmässä, jossa jokainen prosessori vastaa eri suoritussäikeestä, se, että prosessorin kullakin ytimellä ei ole viestintäongelmia muiden ytimien ja komponenttien kanssa, on tärkeää suorituskyvyn kannalta. Varsinkin ohjelman suoritusten eri säikeiden välisen vuorovaikutuksen vuoksi. Mutta tämä on tärkeää palvelinsuorittimille, jotka käyttävät useita käyttöjärjestelmiä virtualisoidulla tavalla useille etäasiakkaille.

Parkinsonin laki ja suorittimen QoS

Curva Ley Parkinson

Koska on selvää, että moniytiminen prosessori tarjoaa laadukasta palvelua, meidän on varmistettava, että kunkin elementin kaistanleveydet ja latenssit ovat riittävät maksimaalisen suorituskyvyn saavuttamiseksi. Nykyään ytimet ovat riippuvaisia ​​integroidusta Northbridgestä parhaan mahdollisen suorituskyvyn saavuttamiseksi tässä suhteessa. Miten tätä suorituskykyä mitataan? Vastoin laskennan suorituskyvyn lakeja, kuten Amdahlin lakia laskennassa, sovelletaan Parkinsonin lakia, jonka yleinen lausunto on seuraava:

Tehtävää työtä laajennetaan täyttämään sen valmistumiseen käytettävissä oleva aika.

Periaatteessa se ei liity paljoakaan laskentaan, mutta on otettava huomioon, että prosessorin QoS riippuu siitä, miten tiedonsiirrot on järjestetty eri osapuolten välillä. Joten aivan kuten oikeassa elämässä, kun suunnittelemme jotain, ilmaantuu odottamattomia elementtejä, jotka viivästävät projektiamme. Suorittimen sisäisessä viestinnässä palvelun laadun takaamiseksi tapahtuu sama, joten kaikki elementit, jotka voivat lisätä latenssia ja vähentää sisäistä kaistanleveyttä, on otettava huomioon.

Uutta prosessoria suunniteltaessa kaikki palvelun laatua tarjoavat elementit eivät kuitenkaan riipu laitteistosta.

CPU:n palvelun laatua ei voida taata

Eficiencia-suorittimen QoS

Laitteistomme on hyödytön ilman ohjelmistoa ajettavaksi, ja samaan aikaan ohjelmisto ei ole mitään ilman laitteistoa sen suorittamiseen. Ne ovat siis kaksi osaa, jotka täydentävät toisiaan symbioottisella tavalla ja siksi laitteisto ei voi elää ilman ohjelmistoa ja päinvastoin. Tämä tarkoittaa, että ohjelmistossa on tekijöitä, jotka vaikuttavat laitteistoon ja myös prosessorin palvelun laatuun.

Laitteiston kannalta on elementtejä, kuten latenssi eri muistikuppien välillä epäyhtenäisessä osoitejärjestelmässä. Välimuistin kommunikaatio eri ytimien kanssa ja niiden käyttötapa. Muiden arkkitehtuuritason tekijöiden lisäksi, joita suunnittelun erilaisten rajoitusten vuoksi ei ole voitu toteuttaa paremmin.

QoS-laitteistoohjelmisto

Jos puhumme ohjelmistoista, meillä on, että eri ohjelmien suoritussäikeiden hallinnasta vastaava ohjelma on käyttöjärjestelmä, joten sen hallinta vaikuttaa CPU:n tarjoaman palvelun laatuun. Joten riippuen siitä, kuinka optimoitu ja siksi hyvin ohjelmoitu käyttöjärjestelmä on, näemme suorituskyvyn eri käyttöjärjestelmien välillä, jotka toimivat samalla prosessorilla.

Emme myöskään saa unohtaa ohjelmia kehitettäessä käytetyn koodin laatua. Voimme kirjoittaa miljoona erilaista ohjelmaa tietyn tehtävän suorittamiseen, mutta kaikki eivät käytä yhtä tehokkaita algoritmeja ja tietorakenteita, eivätkä niiden perustana olevat kolmannen osapuolen kirjastot ja ulkoiset API:t ole yhtä hyviä. Kaikki tämä tekee CPU:n palvelun laadusta nykyään mahdotonta saavuttaa ja on todella utopiaa.

Onko olemassa ihanteellinen QoS-suoritin?

PROSESSORI ? Kysyjä

Ensinnäkin on pidettävä mielessä, että ihanteellista palvelun laatua ei ole olemassa, koska on mahdotonta saavuttaa sen edellyttämiä teoreettisia maksimiarvoja, jotta eri osapuolten välinen kommunikaatiokyky olisi 100 %. Mitä pitäisi olla suorittimella, jolla on täydellinen palvelulaatu? No, seuraavat elementit:

  • CPU:n tietojen ja ohjeiden käytössä ei ole ongelmia, kaikki toimii oikein. Tiedämme, että se on mahdotonta CPU:n tiedonhaussa ja kaappauksessa.
  • Ei ole laitteisto- ja ohjelmistokeskeytyksiä, jotka pysäyttävät kaikki prosessit kerralla. Mikä on mahdotonta, koska ilman keskeytyksiä muu laitteisto ei voisi olla vuorovaikutuksessa suorittimen kanssa.
  • Käyttöjärjestelmällä on täydellinen koodi, kun on kyse CPU:n eri säikeiden hallinnasta järjestelmällisesti. Toinen asia, jota ei myöskään voida saavuttaa käyttöjärjestelmässä.

Ihanteellista QoS-suoritinta ei siis ole olemassa, mutta samalla se on haaste insinööreille saada paras mahdollinen suorituskyky.