wpływ architektury procesora na system...
TRANSCRIPT
Wpływ architektury procesora na systemoperacyjny
Michał Jurek Marcin Szumski Krzysztof Palinka
8 listopada 2008
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 1 / 56
Plan prezentacji
Klasyfikacja procesorów
Klasyczne potokowanie procesora RISC
Potokowanie instrukcji w procesorze
Czy 64-bitowe adresowanie to dzisiaj konieczność?
Wielordzeniowość procesora
Jakiego typu aplikacje potrafią najlepiej wykorzystaćwielordzeniowość.
Co powinien zapewniać system operacyjny aby wykorzystaćnowe możliwości procesora.
Przykłady 64 bitowych edycji systemów. Wady i zalety,problemy praktyczne w zastosowaniu tych edycji.
Bibliografia
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 2 / 56
Plan prezentacji
Klasyfikacja procesorów
Klasyczne potokowanie procesora RISC
Potokowanie instrukcji w procesorze
Czy 64-bitowe adresowanie to dzisiaj konieczność?
Wielordzeniowość procesora
Jakiego typu aplikacje potrafią najlepiej wykorzystaćwielordzeniowość.
Co powinien zapewniać system operacyjny aby wykorzystaćnowe możliwości procesora.
Przykłady 64 bitowych edycji systemów. Wady i zalety,problemy praktyczne w zastosowaniu tych edycji.
Bibliografia
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 3 / 56
Klasyfikacja procesorów
Procesory można sklasyfikować na wiele różnych sposobów.
Ze względu na zestaw instrukcji
CISCRISCInne, ekscentryczne wynalazki: MISC, OISC, ZISC, . . .
Ze względu na sposób wykonywania instrukcji
Procesory superskalarneProcesory wektoroweVLIW
Taksonomia Flynn’aSISD MISDSIMD MIMD
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 4 / 56
Klasyfikacja procesorów
Procesory można sklasyfikować na wiele różnych sposobów.Ze względu na zestaw instrukcjiCISCRISCInne, ekscentryczne wynalazki: MISC, OISC, ZISC, . . .
Ze względu na sposób wykonywania instrukcji
Procesory superskalarneProcesory wektoroweVLIW
Taksonomia Flynn’aSISD MISDSIMD MIMD
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 4 / 56
Klasyfikacja procesorów
Procesory można sklasyfikować na wiele różnych sposobów.Ze względu na zestaw instrukcjiCISCRISCInne, ekscentryczne wynalazki: MISC, OISC, ZISC, . . .
Ze względu na sposób wykonywania instrukcjiProcesory superskalarneProcesory wektoroweVLIW
Taksonomia Flynn’aSISD MISDSIMD MIMD
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 4 / 56
Klasyfikacja procesorów
Procesory można sklasyfikować na wiele różnych sposobów.Ze względu na zestaw instrukcjiCISCRISCInne, ekscentryczne wynalazki: MISC, OISC, ZISC, . . .
Ze względu na sposób wykonywania instrukcjiProcesory superskalarneProcesory wektoroweVLIW
Taksonomia Flynn’aSISD MISDSIMD MIMD
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 4 / 56
Klasyfikacja procesorów
Ze względu na długość słowa
Popularne obecnie architektury 32 i 64-bitoweOdchodzące w przeszłość konstrukcje 8-bitowe i16-bitowe, choć w pewnych specyficznychzastosowaniach nadal jeszcze spotykane.Konstrukcje 4, 24-bitowe (i wiele innych)
31-bitowy IBM System/370-XA mainframe, upgrade zarchitektury 24-bitowejW 1970 roku, 48-bitowy komputer BESM-6(Bol~xa� �lektronno-Sq�tna� Maxina) używanybył do obliczania parametrów orbity Soyuz-a —zajmowało mu to 1 minutę, podczas gdy analogiczneobliczenia dla apollo stronie amerykańskiej zajmowałypół godziny.
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 5 / 56
Klasyfikacja procesorów
Ze względu na długość słowaPopularne obecnie architektury 32 i 64-bitoweOdchodzące w przeszłość konstrukcje 8-bitowe i16-bitowe, choć w pewnych specyficznychzastosowaniach nadal jeszcze spotykane.Konstrukcje 4, 24-bitowe (i wiele innych)
31-bitowy IBM System/370-XA mainframe, upgrade zarchitektury 24-bitowejW 1970 roku, 48-bitowy komputer BESM-6(Bol~xa� �lektronno-Sq�tna� Maxina) używanybył do obliczania parametrów orbity Soyuz-a —zajmowało mu to 1 minutę, podczas gdy analogiczneobliczenia dla apollo stronie amerykańskiej zajmowałypół godziny.
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 5 / 56
Klasyfikacja procesorów
Ze względu na długość słowaPopularne obecnie architektury 32 i 64-bitoweOdchodzące w przeszłość konstrukcje 8-bitowe i16-bitowe, choć w pewnych specyficznychzastosowaniach nadal jeszcze spotykane.Konstrukcje 4, 24-bitowe (i wiele innych)
31-bitowy IBM System/370-XA mainframe, upgrade zarchitektury 24-bitowej
W 1970 roku, 48-bitowy komputer BESM-6(Bol~xa� �lektronno-Sq�tna� Maxina) używanybył do obliczania parametrów orbity Soyuz-a —zajmowało mu to 1 minutę, podczas gdy analogiczneobliczenia dla apollo stronie amerykańskiej zajmowałypół godziny.
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 5 / 56
Klasyfikacja procesorów
Ze względu na długość słowaPopularne obecnie architektury 32 i 64-bitoweOdchodzące w przeszłość konstrukcje 8-bitowe i16-bitowe, choć w pewnych specyficznychzastosowaniach nadal jeszcze spotykane.Konstrukcje 4, 24-bitowe (i wiele innych)
31-bitowy IBM System/370-XA mainframe, upgrade zarchitektury 24-bitowejW 1970 roku, 48-bitowy komputer BESM-6(Bol~xa� �lektronno-Sq�tna� Maxina) używanybył do obliczania parametrów orbity Soyuz-a —zajmowało mu to 1 minutę, podczas gdy analogiczneobliczenia dla apollo stronie amerykańskiej zajmowałypół godziny.
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 5 / 56
Klasyfikacja procesorówA co linuks wie o architekturach?
Na przykładzie jądra 2.6.26.5
Katalog arch zawiera 24 podkatalogi odpowiadająceróżnym architekturomW ramach wielu z nich można by wyodrębnić kolejnepodarchitekturyPrzykładowo w katalogu x86 można znaleźć różny kod dlaarchitektur x86 oraz x86 64W katalogu powerpc, który jest największym ze wszystkichw arch (7.85MB dla powerpc w porównaniu z 4.01MB dlax86), różnorodność podarchitektur jest jeszcze większa
W katalogu include znajdują się się katalogi asm-*odpowiadające 24 architekturom z arch
Zatem kod zależny od architektury zajmuje bardzo pokaźnączęść źródeł jądra (około 1
4 objętości źródeł).
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 6 / 56
Klasyfikacja procesorówA co linuks wie o architekturach?
Architektura x86 wykorzystuje dwupoziomową translacjęadresów, x86 64 już czteropoziomową
Bardzo duże różnice tego dotyczące widać na przykładzieplików pgtable 32.h oraz pgtable 64.h znajdujących sięw katalogu include/asm-x86/ źródeł linuksa. W drugimz nich od linii 193 wyraźnie widać definicje makr dającychdostęp do wszystkich czterech poziomów drzewastronicowania. W plikach page64.h oraz page32.hznajduje się definicja PAGETABLE LEVELS, określającaodpowiednio 4 poziomy tablic, oraz 2 lub 3 dla architektury32-bitowej, w zależności od używania rozszerzeń PAE.
Architektura x86 64 usuwa możliwość wykonywaniahardware’owego przełączania kontekstu (zobacz [1]) —chociaż linuks (windows też) i tak od dawna używałsoftware’owego przełączania
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 7 / 56
Klasyfikacja procesorówA co linuks wie o architekturach?
Architektura x86 wykorzystuje dwupoziomową translacjęadresów, x86 64 już czteropoziomowąBardzo duże różnice tego dotyczące widać na przykładzieplików pgtable 32.h oraz pgtable 64.h znajdujących sięw katalogu include/asm-x86/ źródeł linuksa. W drugimz nich od linii 193 wyraźnie widać definicje makr dającychdostęp do wszystkich czterech poziomów drzewastronicowania. W plikach page64.h oraz page32.hznajduje się definicja PAGETABLE LEVELS, określającaodpowiednio 4 poziomy tablic, oraz 2 lub 3 dla architektury32-bitowej, w zależności od używania rozszerzeń PAE.
Architektura x86 64 usuwa możliwość wykonywaniahardware’owego przełączania kontekstu (zobacz [1]) —chociaż linuks (windows też) i tak od dawna używałsoftware’owego przełączania
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 7 / 56
Klasyfikacja procesorówA co linuks wie o architekturach?
Architektura x86 wykorzystuje dwupoziomową translacjęadresów, x86 64 już czteropoziomowąBardzo duże różnice tego dotyczące widać na przykładzieplików pgtable 32.h oraz pgtable 64.h znajdujących sięw katalogu include/asm-x86/ źródeł linuksa. W drugimz nich od linii 193 wyraźnie widać definicje makr dającychdostęp do wszystkich czterech poziomów drzewastronicowania. W plikach page64.h oraz page32.hznajduje się definicja PAGETABLE LEVELS, określającaodpowiednio 4 poziomy tablic, oraz 2 lub 3 dla architektury32-bitowej, w zależności od używania rozszerzeń PAE.
Architektura x86 64 usuwa możliwość wykonywaniahardware’owego przełączania kontekstu (zobacz [1]) —chociaż linuks (windows też) i tak od dawna używałsoftware’owego przełączania
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 7 / 56
Klasyfikacja procesorówWieloprocesory
Kolejnym istotnym aspektem jest ilość procesorów w systemie.Przykładem różnic między systemami jedno a wielo procesorowymimogą być spinlocki.
W architekturach jednoprocesorowych spinlocki sąNOP-ami (nie licząc odmian blokujących przerwania, iwersji działających w wywłaszczalnym jądrze, którenop-ami nie są, ale nie robią zbyt wiele)
To rozróżnienie spinlocków między UP a SMPwyraźnie widać w pliku include/linux/spinlock.h
Różnice są też w operacjach atomowych (typ atomic t itp.) oczym nieco dalej.W przypadku wieloprocesorów istotny jest też sposób dostępu dopamięci.
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 8 / 56
Klasyfikacja procesorówWieloprocesory
Kolejnym istotnym aspektem jest ilość procesorów w systemie.Przykładem różnic między systemami jedno a wielo procesorowymimogą być spinlocki.
W architekturach jednoprocesorowych spinlocki sąNOP-ami (nie licząc odmian blokujących przerwania, iwersji działających w wywłaszczalnym jądrze, którenop-ami nie są, ale nie robią zbyt wiele)
To rozróżnienie spinlocków między UP a SMPwyraźnie widać w pliku include/linux/spinlock.h
Różnice są też w operacjach atomowych (typ atomic t itp.) oczym nieco dalej.W przypadku wieloprocesorów istotny jest też sposób dostępu dopamięci.
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 8 / 56
Klasyfikacja procesorówWieloprocesory
Kolejnym istotnym aspektem jest ilość procesorów w systemie.Przykładem różnic między systemami jedno a wielo procesorowymimogą być spinlocki.
W architekturach jednoprocesorowych spinlocki sąNOP-ami (nie licząc odmian blokujących przerwania, iwersji działających w wywłaszczalnym jądrze, którenop-ami nie są, ale nie robią zbyt wiele)
To rozróżnienie spinlocków między UP a SMPwyraźnie widać w pliku include/linux/spinlock.h
Różnice są też w operacjach atomowych (typ atomic t itp.) oczym nieco dalej.W przypadku wieloprocesorów istotny jest też sposób dostępu dopamięci.
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 8 / 56
Klasyfikacja procesorówWieloprocesory
Kolejnym istotnym aspektem jest ilość procesorów w systemie.Przykładem różnic między systemami jedno a wielo procesorowymimogą być spinlocki.
W architekturach jednoprocesorowych spinlocki sąNOP-ami (nie licząc odmian blokujących przerwania, iwersji działających w wywłaszczalnym jądrze, którenop-ami nie są, ale nie robią zbyt wiele)
To rozróżnienie spinlocków między UP a SMPwyraźnie widać w pliku include/linux/spinlock.h
Różnice są też w operacjach atomowych (typ atomic t itp.) oczym nieco dalej.
W przypadku wieloprocesorów istotny jest też sposób dostępu dopamięci.
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 8 / 56
Klasyfikacja procesorówWieloprocesory
Kolejnym istotnym aspektem jest ilość procesorów w systemie.Przykładem różnic między systemami jedno a wielo procesorowymimogą być spinlocki.
W architekturach jednoprocesorowych spinlocki sąNOP-ami (nie licząc odmian blokujących przerwania, iwersji działających w wywłaszczalnym jądrze, którenop-ami nie są, ale nie robią zbyt wiele)
To rozróżnienie spinlocków między UP a SMPwyraźnie widać w pliku include/linux/spinlock.h
Różnice są też w operacjach atomowych (typ atomic t itp.) oczym nieco dalej.W przypadku wieloprocesorów istotny jest też sposób dostępu dopamięci.
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 8 / 56
Klasyfikacja procesorówPamięć wieloprocesorów
Obecnie pamięć jest dużo wolniejsza od procesoraW tradycyjnym SMP jest jeden kontroler pamięci z któregokorzystają wszystkie procesoryPamięć staje się wąskim gardłem wydajności. Już przyczterech procesorach występują z tym spore problemyPróba przesłania naraz zbyt dużej ilości danych możedoprowadzić do zapchania systemu
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 9 / 56
Klasyfikacja procesorówPamięć wieloprocesorów
Obecnie pamięć jest dużo wolniejsza od procesoraW tradycyjnym SMP jest jeden kontroler pamięci z któregokorzystają wszystkie procesoryPamięć staje się wąskim gardłem wydajności. Już przyczterech procesorach występują z tym spore problemyPróba przesłania naraz zbyt dużej ilości danych możedoprowadzić do zapchania systemu
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 9 / 56
Klasyfikacja procesorówNUMA
Częściowym rozwiązaniem problemu jest architektura NUMA (NonUniform Memory Access)
Widoczna jest jedna spójna przestrzeń adresowa
Każdy procesor ma swój lokalny kontroler pamięci, któryodpowiada za swoją część pamięciDostęp procesora do pamięci lokalnej jest szybki, jednak dopamięci innych procesorów już dużo wolniejszy
To jest kolejny powód, dla którego system w takiejarchitekturze nie powinien przerzucać procesu z jednegoprocesora na innyPierwszy powód był podany na wykładzie ;-)
cache
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 10 / 56
Klasyfikacja procesorówNUMA
Częściowym rozwiązaniem problemu jest architektura NUMA (NonUniform Memory Access)
Widoczna jest jedna spójna przestrzeń adresowa
Każdy procesor ma swój lokalny kontroler pamięci, któryodpowiada za swoją część pamięciDostęp procesora do pamięci lokalnej jest szybki, jednak dopamięci innych procesorów już dużo wolniejszyTo jest kolejny powód, dla którego system w takiejarchitekturze nie powinien przerzucać procesu z jednegoprocesora na innyPierwszy powód był podany na wykładzie ;-)
cache
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 10 / 56
Klasyfikacja procesorówNUMA
Częściowym rozwiązaniem problemu jest architektura NUMA (NonUniform Memory Access)
Widoczna jest jedna spójna przestrzeń adresowa
Każdy procesor ma swój lokalny kontroler pamięci, któryodpowiada za swoją część pamięciDostęp procesora do pamięci lokalnej jest szybki, jednak dopamięci innych procesorów już dużo wolniejszyTo jest kolejny powód, dla którego system w takiejarchitekturze nie powinien przerzucać procesu z jednegoprocesora na innyPierwszy powód był podany na wykładzie ;-) cache
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 10 / 56
Klasyfikacja procesorówNUMA
System operacyjny musi dbać o to, aby pamięć procesuznajdowała się w obszarze przydzielonym procesorowi naktórym się on wykonuje, aby nie tracić na wydajności
Linuks posiada wsparcie dla numa. Dość krótki opis obecnegostatusu numa pod linuksem znajduje się wDocumentation/vm/numa. Można z niego wywnioskować, żeobsługa tej architektury pozostawia jeszcze troszkę dożyczenia.
cpuset-y dają pewną możliwość manualnej kontroli, nadprzydziałem węzłów pamięci do procesów. Można nawetstworzyć sztuczne węzły numa w systemie uma (patrzDocumentation/x86/x86 64/fake-numa-for-cpusets)
Procesory AMD Opteron mają zintegrowane kontrolerypamięci — dokładamy procesor ≡ dokładamy kontrolerpamięci ⇒ NUMA
students pracuje w tej architekturze
A Xeon-y nadal się dławią na dzielonej szynie FSB ;-)
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 11 / 56
Klasyfikacja procesorówNUMA
System operacyjny musi dbać o to, aby pamięć procesuznajdowała się w obszarze przydzielonym procesorowi naktórym się on wykonuje, aby nie tracić na wydajnościLinuks posiada wsparcie dla numa. Dość krótki opis obecnegostatusu numa pod linuksem znajduje się wDocumentation/vm/numa. Można z niego wywnioskować, żeobsługa tej architektury pozostawia jeszcze troszkę dożyczenia.cpuset-y dają pewną możliwość manualnej kontroli, nadprzydziałem węzłów pamięci do procesów. Można nawetstworzyć sztuczne węzły numa w systemie uma (patrzDocumentation/x86/x86 64/fake-numa-for-cpusets)
Procesory AMD Opteron mają zintegrowane kontrolerypamięci — dokładamy procesor ≡ dokładamy kontrolerpamięci ⇒ NUMA
students pracuje w tej architekturze
A Xeon-y nadal się dławią na dzielonej szynie FSB ;-)
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 11 / 56
Klasyfikacja procesorówNUMA
System operacyjny musi dbać o to, aby pamięć procesuznajdowała się w obszarze przydzielonym procesorowi naktórym się on wykonuje, aby nie tracić na wydajnościLinuks posiada wsparcie dla numa. Dość krótki opis obecnegostatusu numa pod linuksem znajduje się wDocumentation/vm/numa. Można z niego wywnioskować, żeobsługa tej architektury pozostawia jeszcze troszkę dożyczenia.cpuset-y dają pewną możliwość manualnej kontroli, nadprzydziałem węzłów pamięci do procesów. Można nawetstworzyć sztuczne węzły numa w systemie uma (patrzDocumentation/x86/x86 64/fake-numa-for-cpusets)
Procesory AMD Opteron mają zintegrowane kontrolerypamięci — dokładamy procesor ≡ dokładamy kontrolerpamięci ⇒ NUMA
students pracuje w tej architekturze
A Xeon-y nadal się dławią na dzielonej szynie FSB ;-)
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 11 / 56
Klasyfikacja procesorówNUMA
System operacyjny musi dbać o to, aby pamięć procesuznajdowała się w obszarze przydzielonym procesorowi naktórym się on wykonuje, aby nie tracić na wydajnościLinuks posiada wsparcie dla numa. Dość krótki opis obecnegostatusu numa pod linuksem znajduje się wDocumentation/vm/numa. Można z niego wywnioskować, żeobsługa tej architektury pozostawia jeszcze troszkę dożyczenia.cpuset-y dają pewną możliwość manualnej kontroli, nadprzydziałem węzłów pamięci do procesów. Można nawetstworzyć sztuczne węzły numa w systemie uma (patrzDocumentation/x86/x86 64/fake-numa-for-cpusets)
Procesory AMD Opteron mają zintegrowane kontrolerypamięci — dokładamy procesor ≡ dokładamy kontrolerpamięci ⇒ NUMAstudents pracuje w tej architekturze
A Xeon-y nadal się dławią na dzielonej szynie FSB ;-)
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 11 / 56
Plan prezentacji
Klasyfikacja procesorów
Klasyczne potokowanie procesora RISC
Potokowanie instrukcji w procesorze
Czy 64-bitowe adresowanie to dzisiaj konieczność?
Wielordzeniowość procesora
Jakiego typu aplikacje potrafią najlepiej wykorzystaćwielordzeniowość.
Co powinien zapewniać system operacyjny aby wykorzystaćnowe możliwości procesora.
Przykłady 64 bitowych edycji systemów. Wady i zalety,problemy praktyczne w zastosowaniu tych edycji.
Bibliografia
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 12 / 56
Klasyczne potokowanie RISC (ang. Classic RISC pipeline)
prostszy od dzisiejszego potokowania
składa się z 5. etapów
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 13 / 56
Klasyczne potokowanie RISC (ang. Classic RISC pipeline)
prostszy od dzisiejszego potokowania
składa się z 5. etapów
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 13 / 56
Klasyczne potokowanie RISC (ang. Classic RISC pipeline)
prostszy od dzisiejszego potokowania
składa się z 5. etapów
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 13 / 56
5 faz potokowania RISC
1 faza = 1 cykl zegara
Lista faz:1 Ściąganie instrukcji (IF)2 Dekodowanie (ID)3 Wykonanie (EX)4 Dostęp (MEM)5 Zapis (WB)
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 14 / 56
5 faz potokowania RISC
1 faza = 1 cykl zegaraLista faz:1 Ściąganie instrukcji (IF)2 Dekodowanie (ID)3 Wykonanie (EX)4 Dostęp (MEM)5 Zapis (WB)
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 14 / 56
Faza pierwsza: Ściąganie instrukcji (ang. Instruction fetch)
licznik rozkazów wysyłany dopamięci w celu ściągnięciainstrukcji z cache
równocześnie przewidywanie -zwiększenie licznika instrukcjio 4
w przypadku rozgałęzieńbłędne
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 15 / 56
Faza pierwsza: Ściąganie instrukcji (ang. Instruction fetch)
licznik rozkazów wysyłany dopamięci w celu ściągnięciainstrukcji z cache
równocześnie przewidywanie -zwiększenie licznika instrukcjio 4
w przypadku rozgałęzieńbłędne
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 15 / 56
Faza pierwsza: Ściąganie instrukcji (ang. Instruction fetch)
licznik rozkazów wysyłany dopamięci w celu ściągnięciainstrukcji z cache
równocześnie przewidywanie -zwiększenie licznika instrukcjio 4
w przypadku rozgałęzieńbłędne
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 15 / 56
Faza pierwsza: Ściąganie instrukcji (ang. Instruction fetch)
licznik rozkazów wysyłany dopamięci w celu ściągnięciainstrukcji z cache
równocześnie przewidywanie -zwiększenie licznika instrukcjio 4
w przypadku rozgałęzieńbłędne
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 15 / 56
Faza druga: Dekodowanie (ang. Decode)
myląca nazwa- niewiele dekodowania
wczytywanierejestrów (max 2)sprawdzeniemożliwości wykonaniainstrukcji + ew.wstrzymanie wykonaniawyliczanie adresurozgałęzienia lub skoku
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 16 / 56
Faza druga: Dekodowanie (ang. Decode)
myląca nazwa- niewiele dekodowaniawczytywanierejestrów (max 2)
sprawdzeniemożliwości wykonaniainstrukcji + ew.wstrzymanie wykonaniawyliczanie adresurozgałęzienia lub skoku
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 16 / 56
Faza druga: Dekodowanie (ang. Decode)
myląca nazwa- niewiele dekodowaniawczytywanierejestrów (max 2)sprawdzeniemożliwości wykonaniainstrukcji + ew.wstrzymanie wykonania
wyliczanie adresurozgałęzienia lub skoku
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 16 / 56
Faza druga: Dekodowanie (ang. Decode)
myląca nazwa- niewiele dekodowaniawczytywanierejestrów (max 2)sprawdzeniemożliwości wykonaniainstrukcji + ew.wstrzymanie wykonaniawyliczanie adresurozgałęzienia lub skoku
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 16 / 56
Faza trzecia: Wykonanie (ang. Execute)
trzy różne klasy instrukcji:
jednocyklowe -dodawanie, odejmowanie,op. logicznedwucyklowe - ładowaniez pamięciwielocyklowe - mnożenie,dzielenie, op.zmiennoprzecinkowe
zadania wielocykloweprzekazywane do specjalnejjednostki mnożącej lubdzielącej
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 17 / 56
Faza trzecia: Wykonanie (ang. Execute)
trzy różne klasy instrukcji:jednocyklowe -dodawanie, odejmowanie,op. logiczne
dwucyklowe - ładowaniez pamięciwielocyklowe - mnożenie,dzielenie, op.zmiennoprzecinkowe
zadania wielocykloweprzekazywane do specjalnejjednostki mnożącej lubdzielącej
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 17 / 56
Faza trzecia: Wykonanie (ang. Execute)
trzy różne klasy instrukcji:jednocyklowe -dodawanie, odejmowanie,op. logicznedwucyklowe - ładowaniez pamięci
wielocyklowe - mnożenie,dzielenie, op.zmiennoprzecinkowe
zadania wielocykloweprzekazywane do specjalnejjednostki mnożącej lubdzielącej
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 17 / 56
Faza trzecia: Wykonanie (ang. Execute)
trzy różne klasy instrukcji:jednocyklowe -dodawanie, odejmowanie,op. logicznedwucyklowe - ładowaniez pamięciwielocyklowe - mnożenie,dzielenie, op.zmiennoprzecinkowe
zadania wielocykloweprzekazywane do specjalnejjednostki mnożącej lubdzielącej
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 17 / 56
Faza trzecia: Wykonanie (ang. Execute)
trzy różne klasy instrukcji:jednocyklowe -dodawanie, odejmowanie,op. logicznedwucyklowe - ładowaniez pamięciwielocyklowe - mnożenie,dzielenie, op.zmiennoprzecinkowe
zadania wielocykloweprzekazywane do specjalnejjednostki mnożącej lubdzielącej
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 17 / 56
Faza czwarta: Dostęp (ang. Access)
jednocyklowe przekazywane do następnej fazy
wczytanie danych z wyliczonych wcześniej adresówpamięci:
jeśli dane są w cache to ładowaniejeśli nie ma, to trzeba zawiesić procesor (Cache MissHandling)
zapisanie danych:
sprawdzenie, czy dane są w cachew przypadku braku analogiczne zawieszenie procesoradane umieszczane w Store Data Queue
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 18 / 56
Faza czwarta: Dostęp (ang. Access)
jednocyklowe przekazywane do następnej fazywczytanie danych z wyliczonych wcześniej adresówpamięci:jeśli dane są w cache to ładowanie
jeśli nie ma, to trzeba zawiesić procesor (Cache MissHandling)
zapisanie danych:
sprawdzenie, czy dane są w cachew przypadku braku analogiczne zawieszenie procesoradane umieszczane w Store Data Queue
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 18 / 56
Faza czwarta: Dostęp (ang. Access)
jednocyklowe przekazywane do następnej fazywczytanie danych z wyliczonych wcześniej adresówpamięci:jeśli dane są w cache to ładowaniejeśli nie ma, to trzeba zawiesić procesor (Cache MissHandling)
zapisanie danych:
sprawdzenie, czy dane są w cachew przypadku braku analogiczne zawieszenie procesoradane umieszczane w Store Data Queue
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 18 / 56
Faza czwarta: Dostęp (ang. Access)
jednocyklowe przekazywane do następnej fazywczytanie danych z wyliczonych wcześniej adresówpamięci:jeśli dane są w cache to ładowaniejeśli nie ma, to trzeba zawiesić procesor (Cache MissHandling)
zapisanie danych:sprawdzenie, czy dane są w cache
w przypadku braku analogiczne zawieszenie procesoradane umieszczane w Store Data Queue
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 18 / 56
Faza czwarta: Dostęp (ang. Access)
jednocyklowe przekazywane do następnej fazywczytanie danych z wyliczonych wcześniej adresówpamięci:jeśli dane są w cache to ładowaniejeśli nie ma, to trzeba zawiesić procesor (Cache MissHandling)
zapisanie danych:sprawdzenie, czy dane są w cachew przypadku braku analogiczne zawieszenie procesora
dane umieszczane w Store Data Queue
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 18 / 56
Faza czwarta: Dostęp (ang. Access)
jednocyklowe przekazywane do następnej fazywczytanie danych z wyliczonych wcześniej adresówpamięci:jeśli dane są w cache to ładowaniejeśli nie ma, to trzeba zawiesić procesor (Cache MissHandling)
zapisanie danych:sprawdzenie, czy dane są w cachew przypadku braku analogiczne zawieszenie procesoradane umieszczane w Store Data Queue
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 18 / 56
Faza piąta: Zapis (ang. Writeback)
wyniki jedno- idwucyklowych instrukcji sązapisywane do plikurejestru
ewentualna obsługawyjątków
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 19 / 56
Faza piąta: Zapis (ang. Writeback)
wyniki jedno- idwucyklowych instrukcji sązapisywane do plikurejestruewentualna obsługawyjątków
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 19 / 56
Problemy z klasycznym potokowaniem RISC
wyjątki
instrukcje w bieżącym potoku anulowanelicznik instrukcji ustawiany na kod do obsługi wyjątków
Cache Miss Handling
trzeba wstrzymać procesor do czasu ściągnięcia danychdwie strategie:globalny sygnał wstrzymaniawykorzystanie mechanizmu wyjątków
rozgałęzienia — cztery rozwiązania:zawsze przewiduj brak rozgałęzieniazawsze przewiduj rozgałęzienienajpierw wykonaj instrukcje (niezależne) zarozgałęzieniemzgadywanie istnienia rozgałęznienia i jego celuwykonywane równocześnie z pobieraniem instrukcji
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 20 / 56
Problemy z klasycznym potokowaniem RISC
wyjątkiinstrukcje w bieżącym potoku anulowane
licznik instrukcji ustawiany na kod do obsługi wyjątkówCache Miss Handling
trzeba wstrzymać procesor do czasu ściągnięcia danychdwie strategie:globalny sygnał wstrzymaniawykorzystanie mechanizmu wyjątków
rozgałęzienia — cztery rozwiązania:zawsze przewiduj brak rozgałęzieniazawsze przewiduj rozgałęzienienajpierw wykonaj instrukcje (niezależne) zarozgałęzieniemzgadywanie istnienia rozgałęznienia i jego celuwykonywane równocześnie z pobieraniem instrukcji
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 20 / 56
Problemy z klasycznym potokowaniem RISC
wyjątkiinstrukcje w bieżącym potoku anulowanelicznik instrukcji ustawiany na kod do obsługi wyjątków
Cache Miss Handling
trzeba wstrzymać procesor do czasu ściągnięcia danychdwie strategie:globalny sygnał wstrzymaniawykorzystanie mechanizmu wyjątków
rozgałęzienia — cztery rozwiązania:zawsze przewiduj brak rozgałęzieniazawsze przewiduj rozgałęzienienajpierw wykonaj instrukcje (niezależne) zarozgałęzieniemzgadywanie istnienia rozgałęznienia i jego celuwykonywane równocześnie z pobieraniem instrukcji
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 20 / 56
Problemy z klasycznym potokowaniem RISC
wyjątkiinstrukcje w bieżącym potoku anulowanelicznik instrukcji ustawiany na kod do obsługi wyjątków
Cache Miss Handling
trzeba wstrzymać procesor do czasu ściągnięcia danychdwie strategie:globalny sygnał wstrzymaniawykorzystanie mechanizmu wyjątków
rozgałęzienia — cztery rozwiązania:zawsze przewiduj brak rozgałęzieniazawsze przewiduj rozgałęzienienajpierw wykonaj instrukcje (niezależne) zarozgałęzieniemzgadywanie istnienia rozgałęznienia i jego celuwykonywane równocześnie z pobieraniem instrukcji
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 20 / 56
Problemy z klasycznym potokowaniem RISC
wyjątkiinstrukcje w bieżącym potoku anulowanelicznik instrukcji ustawiany na kod do obsługi wyjątków
Cache Miss Handlingtrzeba wstrzymać procesor do czasu ściągnięcia danych
dwie strategie:globalny sygnał wstrzymaniawykorzystanie mechanizmu wyjątków
rozgałęzienia — cztery rozwiązania:zawsze przewiduj brak rozgałęzieniazawsze przewiduj rozgałęzienienajpierw wykonaj instrukcje (niezależne) zarozgałęzieniemzgadywanie istnienia rozgałęznienia i jego celuwykonywane równocześnie z pobieraniem instrukcji
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 20 / 56
Problemy z klasycznym potokowaniem RISC
wyjątkiinstrukcje w bieżącym potoku anulowanelicznik instrukcji ustawiany na kod do obsługi wyjątków
Cache Miss Handlingtrzeba wstrzymać procesor do czasu ściągnięcia danychdwie strategie:globalny sygnał wstrzymaniawykorzystanie mechanizmu wyjątków
rozgałęzienia — cztery rozwiązania:zawsze przewiduj brak rozgałęzieniazawsze przewiduj rozgałęzienienajpierw wykonaj instrukcje (niezależne) zarozgałęzieniemzgadywanie istnienia rozgałęznienia i jego celuwykonywane równocześnie z pobieraniem instrukcji
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 20 / 56
Problemy z klasycznym potokowaniem RISC
wyjątkiinstrukcje w bieżącym potoku anulowanelicznik instrukcji ustawiany na kod do obsługi wyjątków
Cache Miss Handlingtrzeba wstrzymać procesor do czasu ściągnięcia danychdwie strategie:globalny sygnał wstrzymaniawykorzystanie mechanizmu wyjątków
rozgałęzienia — cztery rozwiązania:zawsze przewiduj brak rozgałęzieniazawsze przewiduj rozgałęzienienajpierw wykonaj instrukcje (niezależne) zarozgałęzieniemzgadywanie istnienia rozgałęznienia i jego celuwykonywane równocześnie z pobieraniem instrukcji
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 20 / 56
Plan prezentacji
Klasyfikacja procesorów
Klasyczne potokowanie procesora RISC
Potokowanie instrukcji w procesorze
Czy 64-bitowe adresowanie to dzisiaj konieczność?
Wielordzeniowość procesora
Jakiego typu aplikacje potrafią najlepiej wykorzystaćwielordzeniowość.
Co powinien zapewniać system operacyjny aby wykorzystaćnowe możliwości procesora.
Przykłady 64 bitowych edycji systemów. Wady i zalety,problemy praktyczne w zastosowaniu tych edycji.
Bibliografia
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 21 / 56
Potokowanie instrukcji w procesorze
Jak wszyscy po kursie z architektury wiedzą, potokowanie wprocesorze polega na podziale procesu wykonania instrukcji napewne etapy, z których każdy ma swoją własną jednostkęwykonawczą. Gdy dana jednostka wykonawcza zakończyprzetwarzanie jednej instrukcji, może rozpocząć przetwarzaniekolejnej.
Dzięki takiemu podejściu znacząco skraca się średni czasprzetwarzania jednej instrukcji
Zależności danych / zasobów / sterowania mogą popsuć tenpiękny obrazek
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 22 / 56
Potokowanie instrukcji w procesorze
Jak wszyscy po kursie z architektury wiedzą, potokowanie wprocesorze polega na podziale procesu wykonania instrukcji napewne etapy, z których każdy ma swoją własną jednostkęwykonawczą. Gdy dana jednostka wykonawcza zakończyprzetwarzanie jednej instrukcji, może rozpocząć przetwarzaniekolejnej.
Dzięki takiemu podejściu znacząco skraca się średni czasprzetwarzania jednej instrukcji
Zależności danych / zasobów / sterowania mogą popsuć tenpiękny obrazek
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 22 / 56
Potokowanie instrukcji w procesorze
Jak wszyscy po kursie z architektury wiedzą, potokowanie wprocesorze polega na podziale procesu wykonania instrukcji napewne etapy, z których każdy ma swoją własną jednostkęwykonawczą. Gdy dana jednostka wykonawcza zakończyprzetwarzanie jednej instrukcji, może rozpocząć przetwarzaniekolejnej.
Dzięki takiemu podejściu znacząco skraca się średni czasprzetwarzania jednej instrukcji
Zależności danych / zasobów / sterowania mogą popsuć tenpiękny obrazek
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 22 / 56
Potokowanie instrukcji w procesorze
Zależności sterowania mogą bardzo dużo popsuć, gdyżwykonanie skoku może wymagać wyczyszczenia całego potoku
Procesory często zawierają algorytmy branch predictionProcesorowi można nieraz podpowiadać czy ma przewidziećskok czy nie — często stosowane w jądrze linuksa makralikely oraz unlikely
Wiele procesorów implementuje Out-of-order execution
Może to zniwelować skutki zależności między danymi /zasobówOoOE wprowadza jednak pewne problemy. Są sytuacje kiedywykonanie instrukcji w ściśle określonej kolejności jestkluczowe dla poprawności działania systemu
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 23 / 56
Potokowanie instrukcji w procesorze
Zależności sterowania mogą bardzo dużo popsuć, gdyżwykonanie skoku może wymagać wyczyszczenia całego potoku
Procesory często zawierają algorytmy branch predictionProcesorowi można nieraz podpowiadać czy ma przewidziećskok czy nie — często stosowane w jądrze linuksa makralikely oraz unlikely
Wiele procesorów implementuje Out-of-order executionMoże to zniwelować skutki zależności między danymi /zasobówOoOE wprowadza jednak pewne problemy. Są sytuacje kiedywykonanie instrukcji w ściśle określonej kolejności jestkluczowe dla poprawności działania systemu
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 23 / 56
Potokowanie instrukcji w procesorzeProblemy z Out-of-order execution
Rozważmy następujący przykład:
CPU #1
loop:load the value in location f, \if it is 0 goto loop
print the value in location x
CPU #2
store the value 42 into location xstore the value 1 into location f
Wartość x początkowo wynosi 0. Chociaż procesor 1 nigdy nie powinienwypisać wartości 0, OoOE sprawia, że może się tak stać. Jeśli jednostkawykonawcza zamieni faktyczną kolejność wykonania store na procesorze2, to procesor 1 może zobaczyć te zmiany w złej kolejności co doprowadzido wypisania 0.
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 24 / 56
Potokowanie instrukcji w procesorzeProblemy z Out-of-order execution
Problem jest równie istotny na systemach jednoprocesorowych— występuje przecież komunikacja z urządzeniamiperyferyjnymi. Jednym z podejść do rozwiązania problemu sąbariery pamięci.
Linuks definiuje kilka mark z tym związanych, między innymi:mb, rmb, wmb. Dość ciekawy i wyczerpujący opis zagadnieniamożna znaleźć w dokumentacji jądra linuksa, w plikumemory-barriers.txt.
Bariery pamięci są wykorzystywane w wielu miejscach jądra:
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 25 / 56
Potokowanie instrukcji w procesorzeOoOE, operacje atomowe
Operacje atomowe na architekturzewieloprocesorowej korzystają z barier pamięci.
Uwaga: czasem przed / po operacji atomowejjawnie musi się pojawić bariera pamięci.
obj->dead = 1;smp mb before atomic dec();atomic dec(&obj->ref count);
Brak bariery pamięci może doprowadzić do tego,że inne procesoru zobaczą obj->dead = 1przed zmniejszeniem licznika ref count.
Sparc32 nie posiada wsparcia sprzętowego dlapewnych blokad. Z tego powodu do jądra 2.6.3typ atomic t dawał tylko 24-bity dlaużytkownika.
Nieco więcej informacji można znaleźć w plikuDocumentation/atomic ops.txt.
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 26 / 56
Potokowanie instrukcji w procesorzeOoOE, operacje atomowe
Operacje atomowe na architekturzewieloprocesorowej korzystają z barier pamięci.Uwaga: czasem przed / po operacji atomowejjawnie musi się pojawić bariera pamięci.
obj->dead = 1;smp mb before atomic dec();atomic dec(&obj->ref count);
Brak bariery pamięci może doprowadzić do tego,że inne procesoru zobaczą obj->dead = 1przed zmniejszeniem licznika ref count.
Sparc32 nie posiada wsparcia sprzętowego dlapewnych blokad. Z tego powodu do jądra 2.6.3typ atomic t dawał tylko 24-bity dlaużytkownika.
Nieco więcej informacji można znaleźć w plikuDocumentation/atomic ops.txt.
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 26 / 56
Potokowanie instrukcji w procesorzeOoOE, operacje atomowe
Operacje atomowe na architekturzewieloprocesorowej korzystają z barier pamięci.Uwaga: czasem przed / po operacji atomowejjawnie musi się pojawić bariera pamięci.
obj->dead = 1;smp mb before atomic dec();atomic dec(&obj->ref count);
Brak bariery pamięci może doprowadzić do tego,że inne procesoru zobaczą obj->dead = 1przed zmniejszeniem licznika ref count.
Sparc32 nie posiada wsparcia sprzętowego dlapewnych blokad. Z tego powodu do jądra 2.6.3typ atomic t dawał tylko 24-bity dlaużytkownika.
Nieco więcej informacji można znaleźć w plikuDocumentation/atomic ops.txt.
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 26 / 56
Potokowanie instrukcji w procesorzeOoOE, operacje atomowe
Operacje atomowe na architekturzewieloprocesorowej korzystają z barier pamięci.Uwaga: czasem przed / po operacji atomowejjawnie musi się pojawić bariera pamięci.
obj->dead = 1;smp mb before atomic dec();atomic dec(&obj->ref count);
Brak bariery pamięci może doprowadzić do tego,że inne procesoru zobaczą obj->dead = 1przed zmniejszeniem licznika ref count.
Sparc32 nie posiada wsparcia sprzętowego dlapewnych blokad. Z tego powodu do jądra 2.6.3typ atomic t dawał tylko 24-bity dlaużytkownika.
Nieco więcej informacji można znaleźć w plikuDocumentation/atomic ops.txt.
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 26 / 56
Potokowanie instrukcji w procesorzeOoOE, operacje atomowe
Operacje atomowe na architekturzewieloprocesorowej korzystają z barier pamięci.Uwaga: czasem przed / po operacji atomowejjawnie musi się pojawić bariera pamięci.
obj->dead = 1;smp mb before atomic dec();atomic dec(&obj->ref count);
Brak bariery pamięci może doprowadzić do tego,że inne procesoru zobaczą obj->dead = 1przed zmniejszeniem licznika ref count.
Sparc32 nie posiada wsparcia sprzętowego dlapewnych blokad. Z tego powodu do jądra 2.6.3typ atomic t dawał tylko 24-bity dlaużytkownika.
Nieco więcej informacji można znaleźć w plikuDocumentation/atomic ops.txt.
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 26 / 56
Potokowanie instrukcji w procesorzeOoOE, operacje atomowe
Operacje atomowe na architekturzewieloprocesorowej korzystają z barier pamięci.Uwaga: czasem przed / po operacji atomowejjawnie musi się pojawić bariera pamięci.
obj->dead = 1;smp mb before atomic dec();atomic dec(&obj->ref count);
Brak bariery pamięci może doprowadzić do tego,że inne procesoru zobaczą obj->dead = 1przed zmniejszeniem licznika ref count.
Sparc32 nie posiada wsparcia sprzętowego dlapewnych blokad. Z tego powodu do jądra 2.6.3typ atomic t dawał tylko 24-bity dlaużytkownika.
Nieco więcej informacji można znaleźć w plikuDocumentation/atomic ops.txt.
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 26 / 56
Plan prezentacji
Klasyfikacja procesorów
Klasyczne potokowanie procesora RISC
Potokowanie instrukcji w procesorze
Czy 64-bitowe adresowanie to dzisiaj konieczność?
Wielordzeniowość procesora
Jakiego typu aplikacje potrafią najlepiej wykorzystaćwielordzeniowość.
Co powinien zapewniać system operacyjny aby wykorzystaćnowe możliwości procesora.
Przykłady 64 bitowych edycji systemów. Wady i zalety,problemy praktyczne w zastosowaniu tych edycji.
Bibliografia
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 27 / 56
Czy 64-bitowe adresowanie to dzisiaj konieczność?
Adresowanie 32-bitowe ogranicza fizyczną przestrzeń adresowądo 4GB, z czego w trybie użytkownika dostępne jest 3GB
„Gdzie się podziało moje pół giga ramu??” — nieuczciwym /głupim sprzedawcom zdarza się obecnie sprzedawać laptopy z≥4GB ram-u i 32-bitowym windowsem.
Kto widział działającego 64-bitowego windowsa??
Na 32-bitowym systemie istnieje teoretycznie możliwośćwykorzystania do 64GB ram-u, ale wykorzystuje torozszerzenia PAE dostępne od Pentium Pro, kilka brudnychsztuczek hardware’owo–software’owych, jest nieefektywne ipraktycznie nieużywane
Podsumowując — adresowanie 64-bitowe nawet dla zwykłegoużytkownika staje się dziś koniecznością. Ale. . .
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 28 / 56
Czy 64-bitowe adresowanie to dzisiaj konieczność?
Adresowanie 32-bitowe ogranicza fizyczną przestrzeń adresowądo 4GB, z czego w trybie użytkownika dostępne jest 3GB„Gdzie się podziało moje pół giga ramu??” — nieuczciwym /głupim sprzedawcom zdarza się obecnie sprzedawać laptopy z≥4GB ram-u i 32-bitowym windowsem.
Kto widział działającego 64-bitowego windowsa??
Na 32-bitowym systemie istnieje teoretycznie możliwośćwykorzystania do 64GB ram-u, ale wykorzystuje torozszerzenia PAE dostępne od Pentium Pro, kilka brudnychsztuczek hardware’owo–software’owych, jest nieefektywne ipraktycznie nieużywane
Podsumowując — adresowanie 64-bitowe nawet dla zwykłegoużytkownika staje się dziś koniecznością. Ale. . .
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 28 / 56
Czy 64-bitowe adresowanie to dzisiaj konieczność?
Adresowanie 32-bitowe ogranicza fizyczną przestrzeń adresowądo 4GB, z czego w trybie użytkownika dostępne jest 3GB„Gdzie się podziało moje pół giga ramu??” — nieuczciwym /głupim sprzedawcom zdarza się obecnie sprzedawać laptopy z≥4GB ram-u i 32-bitowym windowsem.Kto widział działającego 64-bitowego windowsa??
Na 32-bitowym systemie istnieje teoretycznie możliwośćwykorzystania do 64GB ram-u, ale wykorzystuje torozszerzenia PAE dostępne od Pentium Pro, kilka brudnychsztuczek hardware’owo–software’owych, jest nieefektywne ipraktycznie nieużywane
Podsumowując — adresowanie 64-bitowe nawet dla zwykłegoużytkownika staje się dziś koniecznością. Ale. . .
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 28 / 56
Czy 64-bitowe adresowanie to dzisiaj konieczność?
Adresowanie 32-bitowe ogranicza fizyczną przestrzeń adresowądo 4GB, z czego w trybie użytkownika dostępne jest 3GB„Gdzie się podziało moje pół giga ramu??” — nieuczciwym /głupim sprzedawcom zdarza się obecnie sprzedawać laptopy z≥4GB ram-u i 32-bitowym windowsem.Kto widział działającego 64-bitowego windowsa??
Na 32-bitowym systemie istnieje teoretycznie możliwośćwykorzystania do 64GB ram-u, ale wykorzystuje torozszerzenia PAE dostępne od Pentium Pro, kilka brudnychsztuczek hardware’owo–software’owych, jest nieefektywne ipraktycznie nieużywane
Podsumowując — adresowanie 64-bitowe nawet dla zwykłegoużytkownika staje się dziś koniecznością. Ale. . .
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 28 / 56
Czy 64-bitowe adresowanie to dzisiaj konieczność?
Adresowanie 32-bitowe ogranicza fizyczną przestrzeń adresowądo 4GB, z czego w trybie użytkownika dostępne jest 3GB„Gdzie się podziało moje pół giga ramu??” — nieuczciwym /głupim sprzedawcom zdarza się obecnie sprzedawać laptopy z≥4GB ram-u i 32-bitowym windowsem.Kto widział działającego 64-bitowego windowsa??
Na 32-bitowym systemie istnieje teoretycznie możliwośćwykorzystania do 64GB ram-u, ale wykorzystuje torozszerzenia PAE dostępne od Pentium Pro, kilka brudnychsztuczek hardware’owo–software’owych, jest nieefektywne ipraktycznie nieużywane
Podsumowując — adresowanie 64-bitowe nawet dla zwykłegoużytkownika staje się dziś koniecznością. Ale. . .
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 28 / 56
Czy 64-bitowe adresowanie to dzisiaj konieczność?
Obecne implementacje architektury x86 64 ograniczająfizyczną przestrzeń adresową do 40 bitów, a adresy wirtualnedo 48 bitów. Ale to i tak dużo. Chyba że do sprawy podejdziesię nieco inaczej . . .
64-bitowe adresowanie daje więcej możliwości niż tylkomożliwość włożenia większej ilości ram-u.
Architektura Power wykorzystuje 64-bitowe adresy efektywne,oraz 78-bitową przestrzeń wirtualną! Umożliwia to zupełnieinne podejście do zarządzania pamięcią.
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 29 / 56
Czy 64-bitowe adresowanie to dzisiaj konieczność?
Obecne implementacje architektury x86 64 ograniczająfizyczną przestrzeń adresową do 40 bitów, a adresy wirtualnedo 48 bitów. Ale to i tak dużo. Chyba że do sprawy podejdziesię nieco inaczej . . .64-bitowe adresowanie daje więcej możliwości niż tylkomożliwość włożenia większej ilości ram-u.
Architektura Power wykorzystuje 64-bitowe adresy efektywne,oraz 78-bitową przestrzeń wirtualną! Umożliwia to zupełnieinne podejście do zarządzania pamięcią.
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 29 / 56
Czy 64-bitowe adresowanie to dzisiaj konieczność?
Obecne implementacje architektury x86 64 ograniczająfizyczną przestrzeń adresową do 40 bitów, a adresy wirtualnedo 48 bitów. Ale to i tak dużo. Chyba że do sprawy podejdziesię nieco inaczej . . .64-bitowe adresowanie daje więcej możliwości niż tylkomożliwość włożenia większej ilości ram-u.Architektura Power wykorzystuje 64-bitowe adresy efektywne,oraz 78-bitową przestrzeń wirtualną! Umożliwia to zupełnieinne podejście do zarządzania pamięcią.
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 29 / 56
Czy 64-bitowe adresowanie to dzisiaj konieczność?Możliwości dużych przestrzeni adresowych
System AS/400 (iSeries)
Wszystkie procesy działają w jednej dużej wirtualnejprzestrzeni adresowej. Jeden adres wirtualny nigdy pozwolnieniu nie zostanie przydzielony powtórnie.
Eliminuje to problem fragmentacji pamięci wirtualnejwystępującej w architekturach x86.Używana jest odwrotna tablica stron do translacji adresów —w podejściu stosowanym w architekturze x86, tablice stron dlatak dużej przestrzeni adresowej były by ogromne.A jak zabraknie nam adresów wirtualnych?
Alokując 1 TB (240 bajtów) na sekundę, 278 bajtów wystarczyna ponad 8 tysięcy lat.
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 30 / 56
Czy 64-bitowe adresowanie to dzisiaj konieczność?Możliwości dużych przestrzeni adresowych
System AS/400 (iSeries)
Wszystkie procesy działają w jednej dużej wirtualnejprzestrzeni adresowej. Jeden adres wirtualny nigdy pozwolnieniu nie zostanie przydzielony powtórnie.Eliminuje to problem fragmentacji pamięci wirtualnejwystępującej w architekturach x86.Używana jest odwrotna tablica stron do translacji adresów —w podejściu stosowanym w architekturze x86, tablice stron dlatak dużej przestrzeni adresowej były by ogromne.A jak zabraknie nam adresów wirtualnych?
Alokując 1 TB (240 bajtów) na sekundę, 278 bajtów wystarczyna ponad 8 tysięcy lat.
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 30 / 56
Czy 64-bitowe adresowanie to dzisiaj konieczność?Możliwości dużych przestrzeni adresowych
System AS/400 (iSeries)
Wszystkie procesy działają w jednej dużej wirtualnejprzestrzeni adresowej. Jeden adres wirtualny nigdy pozwolnieniu nie zostanie przydzielony powtórnie.Eliminuje to problem fragmentacji pamięci wirtualnejwystępującej w architekturach x86.Używana jest odwrotna tablica stron do translacji adresów —w podejściu stosowanym w architekturze x86, tablice stron dlatak dużej przestrzeni adresowej były by ogromne.A jak zabraknie nam adresów wirtualnych?Alokując 1 TB (240 bajtów) na sekundę, 278 bajtów wystarczyna ponad 8 tysięcy lat.
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 30 / 56
Czy 64-bitowe adresowanie to dzisiaj konieczność?Możliwości dużych przestrzeni adresowych
W obecnej wersji systemy iSeries wykorzystują „ jedynie”64-bitową wirtualną przestrzeń adresową, chociaż sam systemjest 128 -bitowy, co w przyszłości pozwoli bezproblemowozwiększyć przestrzeń adresową.
Wykorzystanie odwrotnej tablicy stron i jednej wirtualnejprzestrzeni adresowej dla wszystkich procesów eliminujekonieczność unieważniania TLB przy zmianie kontekstu, dziękiczemu operacja ta jest szybsza i częściej można jąwykonywać, zwiększając responsywność systemu przy wieludziałających procesach.
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 31 / 56
Czy 64-bitowe adresowanie to dzisiaj konieczność?Możliwości dużych przestrzeni adresowych
W obecnej wersji systemy iSeries wykorzystują „ jedynie”64-bitową wirtualną przestrzeń adresową, chociaż sam systemjest 128 -bitowy, co w przyszłości pozwoli bezproblemowozwiększyć przestrzeń adresową.
Wykorzystanie odwrotnej tablicy stron i jednej wirtualnejprzestrzeni adresowej dla wszystkich procesów eliminujekonieczność unieważniania TLB przy zmianie kontekstu, dziękiczemu operacja ta jest szybsza i częściej można jąwykonywać, zwiększając responsywność systemu przy wieludziałających procesach.
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 31 / 56
Plan prezentacji
Klasyfikacja procesorów
Klasyczne potokowanie procesora RISC
Potokowanie instrukcji w procesorze
Czy 64-bitowe adresowanie to dzisiaj konieczność?
Wielordzeniowość procesora
Jakiego typu aplikacje potrafią najlepiej wykorzystaćwielordzeniowość.
Co powinien zapewniać system operacyjny aby wykorzystaćnowe możliwości procesora.
Przykłady 64 bitowych edycji systemów. Wady i zalety,problemy praktyczne w zastosowaniu tych edycji.
Bibliografia
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 32 / 56
Wielordzeniowość
umieszczenie wielu jednakowych jednostekobliczeniowych w jednym układzie scalonym
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 33 / 56
Wielordzeniowość
umieszczenie wielu jednakowych jednostekobliczeniowych w jednym układzie scalonym
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 33 / 56
Czemu wielordzeniowość?
rozwój procesorównatrafił na barierętechnologiczną
procesory zaczęły sięprzegrzewać
dostęp do pamięci był”wąskim gardłem”
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 34 / 56
Czemu wielordzeniowość?
rozwój procesorównatrafił na barierętechnologiczną
procesory zaczęły sięprzegrzewać
dostęp do pamięci był”wąskim gardłem”
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 34 / 56
Czemu wielordzeniowość?
rozwój procesorównatrafił na barierętechnologiczną
procesory zaczęły sięprzegrzewać
dostęp do pamięci był”wąskim gardłem”
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 34 / 56
Wieloprocesorowość, Hyperthreading, Superskalarność
wieloprocesorowość, to nie to samo, cowielordzeniowość:
procesory w osobnych układach scalonychwymagają wieloprocesorowych płyt głównych
hyperthreading:
procesor widziany przez system jako dwainstrukcje ”drugiego procesora” wykonywane wmomencie błędnego przewidzenia rozgałęzienia
superskalarność:
wiele jednostek wykonujących konkretne operacjeale nie cały procesor zdublowany (jeden procesor zpunktu widzenia systemu)szybkość zależy od zależności pomiędzy instrukcjami
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 35 / 56
Wieloprocesorowość, Hyperthreading, Superskalarność
wieloprocesorowość, to nie to samo, cowielordzeniowość:procesory w osobnych układach scalonychwymagają wieloprocesorowych płyt głównych
hyperthreading:
procesor widziany przez system jako dwainstrukcje ”drugiego procesora” wykonywane wmomencie błędnego przewidzenia rozgałęzienia
superskalarność:
wiele jednostek wykonujących konkretne operacjeale nie cały procesor zdublowany (jeden procesor zpunktu widzenia systemu)szybkość zależy od zależności pomiędzy instrukcjami
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 35 / 56
Wieloprocesorowość, Hyperthreading, Superskalarność
wieloprocesorowość, to nie to samo, cowielordzeniowość:procesory w osobnych układach scalonychwymagają wieloprocesorowych płyt głównych
hyperthreading:procesor widziany przez system jako dwainstrukcje ”drugiego procesora” wykonywane wmomencie błędnego przewidzenia rozgałęzienia
superskalarność:
wiele jednostek wykonujących konkretne operacjeale nie cały procesor zdublowany (jeden procesor zpunktu widzenia systemu)szybkość zależy od zależności pomiędzy instrukcjami
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 35 / 56
Wieloprocesorowość, Hyperthreading, Superskalarność
wieloprocesorowość, to nie to samo, cowielordzeniowość:procesory w osobnych układach scalonychwymagają wieloprocesorowych płyt głównych
hyperthreading:procesor widziany przez system jako dwainstrukcje ”drugiego procesora” wykonywane wmomencie błędnego przewidzenia rozgałęzienia
superskalarność:wiele jednostek wykonujących konkretne operacjeale nie cały procesor zdublowany (jeden procesor zpunktu widzenia systemu)szybkość zależy od zależności pomiędzy instrukcjami
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 35 / 56
Dual Core vs. Dual Processor
przewagi wielordzeniowości:
istotnie tańsza (cena płyty głównej)szybsze ”porozumiewanie się” procesorów
przewagi wieloprocesorowości:
łatwiejsze chłodzenielepsza skalowalność
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 36 / 56
Dual Core vs. Dual Processor
przewagi wielordzeniowości:istotnie tańsza (cena płyty głównej)szybsze ”porozumiewanie się” procesorów
przewagi wieloprocesorowości:
łatwiejsze chłodzenielepsza skalowalność
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 36 / 56
Dual Core vs. Dual Processor
przewagi wielordzeniowości:istotnie tańsza (cena płyty głównej)szybsze ”porozumiewanie się” procesorów
przewagi wieloprocesorowości:łatwiejsze chłodzenielepsza skalowalność
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 36 / 56
Typy programów dobrze radzących sobie zwielowątkowością
archiwizery
szyfrowanie
kodowanie wideo, muzyki
gry
arkusze kalkulacyjne
ogólnie wszystko, co da się w miarę równopodzielić na wątki
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 37 / 56
Typy programów dobrze radzących sobie zwielowątkowością
archiwizery
szyfrowanie
kodowanie wideo, muzyki
gry
arkusze kalkulacyjne
ogólnie wszystko, co da się w miarę równopodzielić na wątki
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 37 / 56
Typy programów dobrze radzących sobie zwielowątkowością
archiwizery
szyfrowanie
kodowanie wideo, muzyki
gry
arkusze kalkulacyjne
ogólnie wszystko, co da się w miarę równopodzielić na wątki
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 37 / 56
Typy programów dobrze radzących sobie zwielowątkowością
archiwizery
szyfrowanie
kodowanie wideo, muzyki
gry
arkusze kalkulacyjne
ogólnie wszystko, co da się w miarę równopodzielić na wątki
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 37 / 56
Typy programów dobrze radzących sobie zwielowątkowością
archiwizery
szyfrowanie
kodowanie wideo, muzyki
gry
arkusze kalkulacyjne
ogólnie wszystko, co da się w miarę równopodzielić na wątki
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 37 / 56
Typy programów dobrze radzących sobie zwielowątkowością
archiwizery
szyfrowanie
kodowanie wideo, muzyki
gry
arkusze kalkulacyjne
ogólnie wszystko, co da się w miarę równopodzielić na wątki
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 37 / 56
Przykłady: Peazip
część kompresji jest wciążjednowątkowajednak czasem wzrostprawie dwukrotnypoprawa nigdy nie jestdwukrotnazależy od formatukompresji
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 38 / 56
Przykłady: Peazip
część kompresji jest wciążjednowątkowa
jednak czasem wzrostprawie dwukrotnypoprawa nigdy nie jestdwukrotnazależy od formatukompresji
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 38 / 56
Przykłady: Peazip
część kompresji jest wciążjednowątkowajednak czasem wzrostprawie dwukrotnypoprawa nigdy nie jestdwukrotna
zależy od formatukompresji
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 38 / 56
Przykłady: Peazip
część kompresji jest wciążjednowątkowajednak czasem wzrostprawie dwukrotnypoprawa nigdy nie jestdwukrotnazależy od formatukompresji
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 38 / 56
Przykłady: MySql
czytanie z bazy rośnie praktycznie liniowo wraz zewzrostem ilości procesorówprzy zapisywaniu wzrost wolniejszy, a nawet jegozatrzymanie
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 39 / 56
Przykłady: MySql
czytanie z bazy rośnie praktycznie liniowo wraz zewzrostem ilości procesorów
przy zapisywaniu wzrost wolniejszy, a nawet jegozatrzymanie
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 39 / 56
Przykłady: MySql
czytanie z bazy rośnie praktycznie liniowo wraz zewzrostem ilości procesorówprzy zapisywaniu wzrost wolniejszy, a nawet jegozatrzymanie
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 39 / 56
Przykłady: MySql cd.
test read-only, ale read-write dawał podobne wynikinajlepsze wyniki, gdy ilość wątków równa ilości procesorówprzy większej ilości wątków wydajność spada
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 40 / 56
Przykłady: MySql cd.
test read-only, ale read-write dawał podobne wyniki
najlepsze wyniki, gdy ilość wątków równa ilości procesorówprzy większej ilości wątków wydajność spada
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 40 / 56
Przykłady: MySql cd.
test read-only, ale read-write dawał podobne wynikinajlepsze wyniki, gdy ilość wątków równa ilości procesorów
przy większej ilości wątków wydajność spada
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 40 / 56
Przykłady: MySql cd.
test read-only, ale read-write dawał podobne wynikinajlepsze wyniki, gdy ilość wątków równa ilości procesorówprzy większej ilości wątków wydajność spada
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 40 / 56
Gdzie znajdziemy wielordzeniowość w linuksie
/proc/cpuinfo
informacje o procesorachw systemiemożna rozróżnić, czyhyperthreading, czywielordzeniowość(wartości syblings,cpucore)
kolejkowanie procesów(omawiane na wykładzie)
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 41 / 56
Gdzie znajdziemy wielordzeniowość w linuksie
/proc/cpuinfoinformacje o procesorachw systemiemożna rozróżnić, czyhyperthreading, czywielordzeniowość(wartości syblings,cpucore)
kolejkowanie procesów(omawiane na wykładzie)
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 41 / 56
Gdzie znajdziemy wielordzeniowość w linuksie
/proc/cpuinfoinformacje o procesorachw systemiemożna rozróżnić, czyhyperthreading, czywielordzeniowość(wartości syblings,cpucore)
kolejkowanie procesów(omawiane na wykładzie)
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 41 / 56
Plan prezentacji
Klasyfikacja procesorów
Klasyczne potokowanie procesora RISC
Potokowanie instrukcji w procesorze
Czy 64-bitowe adresowanie to dzisiaj konieczność?
Wielordzeniowość procesora
Jakiego typu aplikacje potrafią najlepiej wykorzystaćwielordzeniowość.
Co powinien zapewniać system operacyjny aby wykorzystaćnowe możliwości procesora.
Przykłady 64 bitowych edycji systemów. Wady i zalety,problemy praktyczne w zastosowaniu tych edycji.
Bibliografia
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 42 / 56
Co powinien zapewniać system operacyjny aby wykorzystaćnowe możliwości procesora.
wieloprocesorowość, wielordzeniowość
SIMD
adresowanie 64-bitowe
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 43 / 56
Architektury wieloprocesorowe
SMP - Simmetric Multiprocessing
NUMA - Non-Uniform Memory Access
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 44 / 56
Wsparcie dla wieloprocesorowosci - Windows
Windows 95, 98, Me - brak
Windows NT, 2000, XP, Vista - wsparcie dla SMP
Windows XP Proffesional x64, 2003 Server, Vista wspierająNUMA...
...chociaż bywają z tym problemy.
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 45 / 56
Wsparcie dla wieloprocesorowosci - Windows
Windows 95, 98, Me - brak
Windows NT, 2000, XP, Vista - wsparcie dla SMP
Windows XP Proffesional x64, 2003 Server, Vista wspierająNUMA...
...chociaż bywają z tym problemy.
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 45 / 56
Wsparcie dla wieloprocesorowości - Linux
SMP wspierane od wersji 2.0
Poważne ulepszenia do wersji 2.6...
...również wsparcie dla NUMA
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 46 / 56
SIMD
SSE - Streaming SIMD Extensions
Po raz pierwszy w Intel Pentium 3
Rozszerzona wersja w AMD64 i EM64T
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 47 / 56
Wsparcie dla SSE - Linux
SSE wspierane od wersji 2.4
Do wcześniejszych wersji dostępne łatki.
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 48 / 56
Wsparcie dla SSE - Windows
Windows 95 wspiera
NT 4 wymaga łatki
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 49 / 56
Systemy 64-bitowe
Mialo wystarczać 640kB...
32-bitowo można zaadresować do 4GB
”w podskokach” nawet do 64GB (PAE)
64-bitowo mozna teoretycznie zaadresować 16777216 TB
W praktyce hardware-owe ograniczenia do ok. 1TB
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 50 / 56
Systemy 64-bitowe
Mialo wystarczać 640kB...
32-bitowo można zaadresować do 4GB
”w podskokach” nawet do 64GB (PAE)
64-bitowo mozna teoretycznie zaadresować 16777216 TB
W praktyce hardware-owe ograniczenia do ok. 1TB
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 50 / 56
Systemy 64-bitowe
Mialo wystarczać 640kB...
32-bitowo można zaadresować do 4GB
”w podskokach” nawet do 64GB (PAE)
64-bitowo mozna teoretycznie zaadresować 16777216 TB
W praktyce hardware-owe ograniczenia do ok. 1TB
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 50 / 56
Microsoft Windows XP 64-bit
Architektura IA-64
dwie edycje: 2002 i 2003
Maksymalnie 16 TB pamięci wirtualnej
Maksymalnie 128 GB pamięci fizycznej
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 51 / 56
Windows Server 2003
oparty na XP
2 edycje
Enterprise: 64 GB pamięci fizycznej, 16 TB wirtualnej
Datacenter: 512 GB pamięci fizycznej, 16 TB wirtualnej
następca: Windows Server 2008
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 52 / 56
Windows Vista
Home Basic 8GB
Home Premium 16GB
Ultimate, Buisness, Enterprise ponad 128GB
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 53 / 56
Linux 64-bitowy
Istnieje wiele 64 bitowych wersii
DesktopBSD 1.0
Ubuntu 6.06 (równierz Kubuntu)
SUSE Linux 10.1 Beta9
Frugalware
Kororaa64, Gororaa64
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 54 / 56
Bibliografia
AMD64 Architecture, Programmer’s Manual, Volume 2:System Programming
Power ISATM, Version 2.05
Kody jądra linuksa oraz ich dokumentacja
Wikipedia
Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 55 / 56