wpływ architektury procesora na system...

142
Wplyw architektury procesora na system operacyjny Michal Jurek Marcin Szumski Krzysztof Palinka 8 listopada 2008 Michal Jurek, Marcin Szumski, Krzysztof Palinka Wplyw architektury procesora na system operacyjny 1 / 56

Upload: vudien

Post on 28-Feb-2019

221 views

Category:

Documents


0 download

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

Google

Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 55 / 56

Mamy nadzieję, że prezentacja była interesująca

Michał Jurek, Marcin Szumski, Krzysztof Palinka Wpływ architektury procesora na system operacyjny 56 / 56