Hyper Threading Intels implementation av SMT Datorarkitekturer med operativsystem - EITF60 Felix Danielsson IDA2
Sammanfattning Simultaneous multithreading (SMT) är en teknik som används i processorer för att effektivisera och maximera användandet utav en hårdvarans resurser. Tekniken gör det möjligt för processorn att hantera flera trådar parallellt per fysisk kärna. Detta genom att dela upp den fysiska kärnan i två logiska kärnor. En av de vanligare implementationerna av den här tekniken är Intels Hyper Threading Technology, vilket är den teknik denna rapport sätter i fokus. Rapporten berör bakgrunden, funktionen samt jämför fördelar och nackdelar mot den alternativa tekniken Symmetrical multiprocessing (SMP). Vilket innebär att man istället utökar antalet fysiska kärnor och på så vis kan hantera fler trådar parallellt. 1
Bakgrund Första gången Intel presenterade Hyper Threading-tekniken var vid lanseringen av sin nya Pentium 4-processor år 2002. Istället för att utöka antalet fysiska kärnor för att nå högre prestanda så lanseras HT för att på ett bättre sätt kunna utnyttja den kapacitet som finns tillgänglig hos existerande kärnor. Tekniken har sedan lanseringen 2002 återanvänds i många av Intels processorer och finns bland annat på åtskilliga modeller av processorerna i Intel-serierna Core och Xeon. Funktion Hyper Threading är en implementation av tekniken Simultaneous multithreading (SMT) skapad av Intel och är optimerad både för deras server- och för konsumentprocessorer. Teknologin fungerar på så vis att den delar den fysiska kärnan i två logiska kärnor. Det kräver dock vissa justeringar på hårdvaran. Man dubblar registeruppsättningen i processorn men resterande resurser i processorn såsom beräkningsenhet, delas sedan av de två logiska kärnorna. Eftersom att minnesaccesser tar upp stor del av tiden under exekvering så kan de två logiska kärnorna då turas om att använda resurserna när den andra laddar från minnet och vice versa. I och med detta gör man de möjligt för operativsystemet och andra program att kunna identifiera processorn som flerkärnig, vilket i sin tur möjliggör för exekvering av flera trådar parallellt. Men för att implementeringen av SMT ska få maximal effekt så kan även krävas en del justeringar i mjukvaran. Programvara som utnyttjar flera trådar är det som kommer att kunna dra störst nytta av Hyper Threading. 2
Figur 1 I figur 1 här ovan så kan man se en väldigt förenklad bild av hur man med hjälp av Hyper Threading kan få två trådar att exekveras på ett effektivare och snabbare vis. De gröna och de röda rutorna motsvarar alltså två olika trådar och vita rutor ska föreställa att processorns beräkningsenheter för tillfället står outnyttjad. SMP - Symmetrical multiprocessing Ett alternativ till Hyper Threading och andra implementationer utav SMT är SMP. Vilket är en annan metod för att kunna utföra exekvering av parallella trådar. SMP innebär att man istället utökar antalet fysiska kärnor i processorn. En nackdel med detta är dock att det blir en högre kostnad än vad exempelvis Hyper Threading innebär. En annan är att de vita outnyttjade beräkningsenheterna från figur 1 förblir outnyttjade, dvs effektivitetsgraden ökar inte som den gör vid HT. Men SMP har även en del fördelar gentemot SMT och Hyper Threading. Till dessa hör bland annat att prestandaökningen inte är oändlig med Hyper Threading. Tillslut så måste antalet fysiska kärnor öka för att kunna höja prestandan ytterligare, vilket det tydligt går att se på de senaste årens processorer. Funktion 3
Diskussion Att Hyper Threading och andra typer av Simultaneous multithreading förbättrar prestandan samt ökar effektiviteten står konstaterat sedan länge. Intel fortsätter att utveckla tekniken och kontinuerligt och den implementeras på nya processorer varje år. Eftersom fler och fler processorer stödjer tekniken så utnyttjar även mer och mer programvara möjligheten med effektivare multitrådning. Detta i kombination med fler fysiska kärnor är nog det som kommer stå för även den kommande prestandaökningen bland processorer för konsumenter. Diskussion 4
Referenser Magro, W, Petersen, P, & Shah, S 2002, 'Hyper-Threading Technology: Impact on Compute-Intensive Workloads', Intel Technology Journal, 6, 1, p. 1, Business Source Complete, EBSCOhost, visad 4 December 2017. The performance model of Hyper-Threading Technology in Intel Nehalem microarchitecture 2010, 2010 3Rd International Conference On Advanced Computer Theory And Engineering(ICACTE), Advanced Computer Theory And Engineering (ICACTE), 2010 3Rd International Conference On, IEEE Xplore Digital Library, EBSCOhost, visad 4 December 2017. The impact of hyper-threading on processor resource utilization in production applications 2011, 2011 18Th International Conference On High Performance Computing, High Performance Computing (Hipc), 2011 18Th International Conference On, p. 1, IEEE Xplore Digital Library, EBSCOhost, visad 4 December 2017. Hyper Threading Technology https://www.intel.com/content/www/us/en/architecture-andtechnology/hyper-threading/hyper-threading-technology.html [2017-12-04] Will Hyper-Threading Improve Processing Performance? Januari 2014, https://www.dasher.com/will-hyper-threading-improve-processing-performance/ [2017-12-04] 5