EDT621 Datorarkitekturer med operativsystem 7,5 HP 2015-12-05 Schemaläggnings metoderna AMP & SMP i en Multiprocessor Författare: Simon Plato
Sammanfattning Rapporten beskriver två schemaläggnings metoder. De aktuella metoderna är symmetric multiprocessing(smp) och asymmetric multiprocessing(amp). Rapporten avlutas med en kort jämförelse mellan de olika metoderna. Olika termer som multi-core och cache coherence uppkommer i rapporten och beskrivs kortfattat i kapitel 2.1. Nyckelord: SMP, AMP, Multiprocessor
Innehållsförteckning 1 Inledning... 1 1.1 Bakgrund:... 1 1.2 Syfte:... 1 1.3 Frågeställning:... 1 1.4 Metod:... 1 2 Teknisk bakgrund... 2 2.1 Grundläggande termer... 2 2.2 Symmetric multiprocessing (SMP)... 2 2.3 Asymmetric multiprocessing (AMP)... 3 3 Jämförelse och Resultat... 3 4 Referenser... 5
1 Inledning 1.1 Bakgrund: Tekniken i dagens samhälle går snabbt framåt och multi-core processorarkitektur är en vanlig teknik som förekommer. Men vad innebär det med en multi-core processor? Förr använde man sig av en CPU som gjorde allt jobb.(signle-core processor) Men det blev en dyr och komplicerad lösningen när man ville hantera enorma mängder data. Genom att använda sig av flera kärnor/processorer som delar upp arbetet så kan man få samma prestanda till ett billigare pris, samtidigt som komplexiteten inte ökar. En sak som man inte får glömma är att en multi-core processor inte blir bättre genom att använda sig av fler kärnor utan är begränsad till processorns minnesbandbred. Därför kommer denna rapport att presentera grunderna för två olika schemaläggnings metoder för multi-core processorer. 1.2 Syfte: Syftet med rapporten är att förklara grunderna för schemaläggnings metoder symmetric multiprocessing(smp) och asymmetric multiprocessing(amp). Rapporten ska även ge en förståelse om vad en termer som multi-core processor betyder. Rapporten ska avslutas med en kort jämförelse mellan de två olika metoderna för att se vad som skiljer dem. 1.3 Frågeställning: I denna rapport ska följande frågor besvaras: Vad är symmetric multiprocessing? Vad är asymmetric multiprocessing? 1.4 Metod: Informationssökningen i denna rapport består av två typer av källor. Den första typen av källa som har används är webbsidor på nätet som Wikipedia. Man ska vara källkritisk när man använder källor som Wikipedia. Informationen som är tagen från Wikipedia används bara i kapitel 2 för att beskriva olika termer som används för att beskriva SMP och AMP. Den andra källan som används är två vetenskapliga artiklar. Artiklarna hittades med hjälp av lubserach och anses pålitliga. 1
2 Teknisk bakgrund 2.1 Grundläggande termer I detta kapitel kommer olika termer förklaras för att ge bättre förståelse. Multi-core: Är ett system som har en processor som sedan har två eller fler centralprocessorer(kärnor) som kan arbeta tillsammans för att läsa och skriva instruktioner. Genom att upp dela upp arbete i de olika kärnorna så kan processorns prestanda öka samtidigt som man kan sänka klockfrekvensen för att minska belastningen på processorn. Multiprocessor: Är ett system som har flera processorer som delar main memory och kringutrustning. Föredel med multiprocessor är precis samma som i multi-core. Genom att dela upp jobbet i flera processorer så får man få gjort jobbet snabbare. Om alla CPU:er har samma arkitektur så kallas det "Homogeneous Multi-Cores", Men om system består av olika CPU så kallas det "Heterogeneous Multi-cores" Cache coherence: Är ett protokoll som man använder sig av i en multi -core/- processor. Protokollet ska kontrollera att delade resurser från main memory uppdateras i alla processorer i de fall resursen är lagrad på flera olika cachar. Annars uppstår ett problem som kan ge osammanhängande värden. Bus sniffing/snooping: Används för att övervaka busstransaktioner och för att upprätthålla cache coherency i det delade minnet. Detta sker genom att när en kärna/processor skriver till primärminnet så förmedlas de övriga kärnorna/processorerna att uppdatera sina cache minne så de inte använder osammanhängande värden. 2.2 Symmetric multiprocessing (SMP) Grunderna i symmetric multiprocessing(smp) är ett system med fler processorer som delar på samma huvudminnet samt alla I/O enheter. Använder systemet en multi-core processor så kommer SMP arkitekturen se de olika kärnorna som separata processorer. SMP tillämpar en teknik som kallas "pararllel programming" som innebär att man använder flera processorer för att lösa ett problem. I SMP arkitekturen tilldelar ett OS uppgifter till varje processor. Detta kan ske genom ett gemensamt schema bland processorerna, eller så tilldelar varje processor ett eget separat schema. Det finns en del fördelar och nackdelar med SMP. Strösta fördelen SMP är att man på ett kostnadseffektivt sätt för att öka flödet av data genom att dela upp arbetet i de olika processorerna. Men det finns en del begränsningar som sätter gränser på SMP som cashe coherence och objekt som är delade i olika processorers cache. Man använder sig av buss sniffing för att kontrollera så att cache coherence upprätthåll. 2
2.3 Asymmetric multiprocessing (AMP) Asymmetric multiprocessing är en äldre typ av schemaläggnings metoder som används vid multiprocessing. I AMP använder man sig av en kärna/processor som fungerar som en master medans de övriga processorerna agerar som slaves. Detta göra att master processor har kommunikation med alla processorer i systemet och kontrollerar dem. De processorer som är slaves behöver inte heller vara kopplade till varandra utan får alla instruktioner från master processorn. I AMP kan varje kärna/ processor arbeta med ett eget OS, så alla processorer behöver inte arbete med instruktioner som är relevanta till varandra. 3 Jämförelse Det finns en del skillnader och likheter mellan SMP och AMP. Kollar man på figur 1 så kan man få en bild på hur de olika metoderna är uppbyggda. I ett AMP-system så kan man ha igång flera olika applikationer i processorerna som behandlar olika uppgifter medans i ett SMP-system så delar man på uppgifter från en applikation som sedan fördelas i de identiska processorerna. [1] Figur 1 illustrerar skillnaden mellan AMP system och SMP system. [1] 3
En annan skillnad mellan SMP och AMP är när man vill fördela en uppgift i en processor. I SMP så kommer inte accesstiden vara beroende på vilken processor man väljer utan förblir det samma. Medans i ett AMP-system så kan accesstiden påverkas. Detta beror på att i ett AMP applikation så vill man optimera prestandan genom att välja den processor som är anpassad för uppgiften. Detta innebär att man får lägga tid på både schemaläggning och fördelning av uppgifter till rätt processor[2] Asymmetric multiprocessing är en smartare lösning att använda sig av för fabrikat med en begränsad strömförsörjningen, som en mobil. Ett AMP-system kan vara ett heterogeneous multi-core system. Vilket innebär att man använder sig av olika typer av processorer som kan i detta fall fördela arbetet på ett energisnålt sätt. Genom att använda sig av de processorer som drar mycket ström när man använder mobilen och kravet på prestanda är hög och sedan använda de processorer som drar lägre ström när man inte använder mobilen för bakgrunds arbete, så kan man förbättrar livslängden på ett batteri i en mobil. 4
4 Referenser [1] Wei Kin, W, Tze Ming, N, Chu Kiong, L, Ying Wei, L, & Eng Kean, L 2010, Implementation of asymmetric multiprocessing framework in humanoid robot, 2010 IEEE Conference On Robotics Automation & Mechatronics (RAM), p. 188, Publisher Provided Full Text Searching File, EBSCOhost, viewed 3 December 2016. [2] Karam, L, AlKamal, I, Gatherer, A, Frantz, G, Anderson, D, & Evans, B 2009, Trends in Multicore DSP Platforms, IEEE Signal Processing Magazine, 26, 6, p. 38, Publisher Provided Full Text Searching File, EBSCOhost, viewed 4 December 2016. Webblänkar [3] AMP & SMP. Lauterbach 2016 http://www.lauterbach.com/smporamp.pdf (hämtad 05/12-2016) [4] AMP & SMP. Embedded 2016 http://www.embedded.com/design/mcus-processors-and-socs/4429496/multicore-basics (hämtad 05/12-2016) [5] AMP & SMP. Techdifferences 2016 http://techdifferences.com/difference-between-symmetric-and-asymmetric-multiprocessing.html (hämtad 05/12-2016) [6] SMP. Wikipedia 2016 https://en.wikipedia.org/wiki/symmetric_multiprocessing (hämtad 05/12-2016) [7] Multi-core. Wikipedia 2016 https://en.wikipedia.org/wiki/multi-core_processor (hämtad 05/12-2016) [8] AMP. Wikipedia 2016 https://en.wikipedia.org/wiki/asymmetric_multiprocessing (hämtad 05/12-2016) [9] Cache coherence. Wikipedia 2016 https://en.wikipedia.org/wiki/cache_coherence (hämtad 05/12-2016) [10] Multi processor. Wikipedia 2016 https://en.wikipedia.org/wiki/multiprocessing (hämtad 05/12-2016) [11] Bus snooping. Wikipedia 2016 https://en.wikipedia.org/wiki/bus_snooping (hämtad 05/12-2016) 5