QoS (servicekvalitet) på CPU: hur det påverkar prestanda

QoS (servicekvalitet) på CPU

Uttrycket ”servicekvalitet” kan komma ihåg saker som inte har något att göra med hårdvara, så det är inte en mycket vanlig term i hårdvaruvärlden. Emellertid QoS av a CPU är ett mycket viktigt element när det gäller prestanda i en flerkärnig processor. Vi förklarar vad det består av och vilka faktorer som påverkar det.

I alla arbetssystem där det finns flera element som arbetar med varandra, oavsett om det är människor eller automatiserade element som maskiner och processorer. Inte bara är den individuella prestationen för vart och ett av elementen viktig, utan också att kommunikationen mellan dem alltid är tillräcklig för att ge maximal möjlig prestanda. Det är här det vi känner till som servicekvalitet eller QoS för en processor kommer till spel.

Vad förstår vi som servicekvalitet eller QoS i en CPU?

Velocidad procesador klockväxling

Uttrycket servicekvalitet i CPU: er kommer från telekommunikationsvärlden, där det hänvisar till den allmänna prestandan hos ett telefonnät och därför förmågan att tillhandahålla adekvat service till de olika terminalerna som deltar i nämnda nät. Denna definition är extrapolerad till världen av processorer med flera kärnor och APU: er, där den hänvisar till kommunikationen mellan de olika elementen i processorn med varandra och med RAM minne genom ett gemensamt centralt nav. Vilket vi traditionellt känner till som Northbridge och därför QoS för en flerkärnig CPU beror på prestanda för det centrala navet, vare sig det är den klassiska tvärstångsbrytaren för switcharna eller en NIC eller SmartNIC för en NoC.

Idén med servicekvalitet är att inte bara de olika kärnorna utan även resten av komponenterna i processorn har nödvändiga kommunikationslinjer för att fungera ordentligt hela tiden. Därför måste det tas hänsyn till i konstruktionen att hela intercom-systemet inte bara i de förväntade prestanda toppar. Men också att det inte finns några obalanser när det gäller intern kommunikation i en CPU.

I ett system med flera trådar där var och en av processorerna ansvarar för en annan tråd för exekvering, är det faktum att varje kärna i processorn inte har kommunikationsproblem med resten av kärnorna och komponenterna viktigt när det gäller prestanda. Speciellt på grund av samkommunikationen mellan de olika trådarna för programkörning. Men detta är viktigt för server-processorer som kör flera operativsystem på ett virtualiserat sätt för flera fjärrklienter.

Parkinsons lag och en processors QoS

Curva Ley Parkinson

Eftersom det är uppenbart för en flerkärnig processor att erbjuda servicekvalitet måste vi se till att bandbredderna och latenserna för vart och ett av elementen är tillräckliga för att uppnå maximal möjlig prestanda. Idag är kärnorna beroende av den integrerade Northbridge för att uppnå bästa möjliga prestanda i detta avseende. Hur mäter vi denna prestation? I motsats till lagarna om prestanda i datorer, såsom Amdahls lag i datorer, tillämpas Parkinsons lag, vars allmänna uttalande är följande:

Arbetet som ska utföras utvidgas för att fylla den tid som är tillgänglig för att det ska kunna slutföras.

I princip är det inte något som har mycket att göra med databehandling, men det måste tas i beaktande att QoS för en CPU beror på hur informationssändningarna är organiserade mellan de olika parterna. Så på samma sätt som i verkliga livet, när vi planerar något, visas oväntade element som försenar vårt projekt. I den interna kommunikationen för en CPU för att ge servicekvaliteten händer samma sak, så alla element som kan öka latensen och minska den interna bandbredden måste tas med i beräkningen.

Men när du utformar en ny processor beror inte alla element som tillhandahåller servicekvalitet på hårdvaran.

Kvaliteten på en CPU kan inte garanteras

Effektivitet CPU QoS

Vår hårdvara är värdelös utan programvara att köra och samtidigt är programvara inget utan hårdvara för att köra den. Så de är två delar som kompletterar varandra på ett symbiotiskt sätt och därför kan hårdvaran inte leva utan programvaran och vice versa. Detta innebär att det finns faktorer i programvaran som påverkar hårdvaran och även kvaliteten på en processor.

När det gäller hårdvara finns det element som latens mellan olika minnesbrunnar i ett icke-enhetligt adresseringssystem. Kommunikationen av cachen med de olika kärnorna och deras sätt att använda den. Förutom andra faktorer på arkitekturnivå som på grund av olika begränsningar i designen inte har kunnat implementeras på ett bättre sätt.

QoS hårdvaruprogram

Om vi ​​pratar om programvara har vi att det program som ansvarar för att hantera körningstrådarna för de olika programmen är operativsystemet, så det kommer att vara dess hantering som kommer att påverka servicekvaliteten som en CPU kan tillhandahålla. Så beroende på hur optimerat och därför välprogrammerat ett operativsystem är kommer vi att se en eller annan prestanda mellan olika operativsystem som körs på samma CPU.

Vi kan inte heller glömma kvaliteten på koden som används när vi utvecklar programmen. Vi kan skriva en miljon olika program för att göra en specifik uppgift, men inte alla använder lika effektiva algoritmer och datastrukturer, inte heller kommer tredjepartsbiblioteken och externa API: er som de bygger på att vara lika bra. Allt detta gör att servicekvaliteten i en CPU idag inte kan uppnås och är verkligen en utopi.

Finns det en idealisk QoS-processor?

CPU? Interrogante

Först och främst måste vi komma ihåg att den ideala kvaliteten på tjänsten inte existerar, eftersom det är omöjligt att nå de teoretiska maximum som krävs så att det blir 100% kommunikationsprestanda mellan de olika parterna. Vad måste en processor med perfekt servicekvalitet ha? Tja, följande element:

  • Det finns inga problem med att komma åt data och instruktioner från CPU: n, allt fungerar korrekt. Vilket vi vet är omöjligt vid sökning och infångning av information från CPU: n.
  • Det finns inga avbrott i hårdvara och programvara för att stoppa alla processer samtidigt. Vilket är omöjligt eftersom resten av hårdvaran utan avbrott inte skulle kunna interagera med processorn.
  • Operativsystemet har den perfekta koden när det gäller att hantera processornas olika trådar på ett ordnat sätt. En annan sak som det också är omöjligt att uppnå i ett operativsystem.

Så den idealiska QoS-processorn existerar inte riktigt, men samtidigt är det en utmaning för ingenjörer att få bästa möjliga prestanda.