Wpływarchitektury procesoranasystem operacyjny Prezentacjęprzygotowali: ŁukaszJagielski MaciejPazurkiewicz
Wpływarchitekturyprocesoranasystemoperacyjny Podziałprocesorów Treśćprezentacji ogólnieoprocesorach procesoryciscarisc przetwarzaniepotokowe wielordzeniowość 64 bitowość ogólnieoarchitekturach64 bitowych x86 64jakopowszechnaarchitektura64 bitowa 64 bitowesystemyoperacyjne
Wpływarchitekturyprocesoranasystemoperacyjny Procesor
Wpływarchitekturyprocesoranasystemoperacyjny Podziałprocesorów Podziałprocesorów długośćsłowamaszynowego liczbardzeni architektura przeznaczenie taktowaniezegara wielkośćcache
Wpływarchitekturyprocesoranasystemoperacyjny Procesorasystemoperacyjny Procesorasystemoperacyjny systemoperacyjnybudowanyjestzmyśląo konkretnejplatformiesprzętowej popularnośćkonkretnychprocesorówzależyw głównejmierzeodtego,jakiesystemy operacyjnebędąnanichdziałać procesorwpływaprzedewszystkimna szybkośćdziałaniasystemuoperacyjnego
Wpływarchitekturyprocesoranasystemoperacyjny CISC CharakterystykaCISC dużyzbiórinstrukcji dużo(nieużywanych)trybówadresowania kodyinstrukcjiozmiennejdługości wyspecjalizowanerejestry łatwiejszekodowaniewjęzykach asemblerowych
Wpływarchitekturyprocesoranasystemoperacyjny CISC PrzykładyCISC VAX PDP 11 Motorola68000 x86
Wpływarchitekturyprocesoranasystemoperacyjny RISC CharakterystykaRISC małaliczbainstrukcji prostetrybyadresowania kodinstrukcjimieszczącysięwsłowie procesora dużouniwersalnychrejestrówprocesora jedyniestoreiloadnadanychwpamięci potokowanie
Wpływarchitekturyprocesoranasystemoperacyjny RISC PrzykładyRISC CDC6600(74instrukcje) RISC I,RISC II(32/39instrukcji) MIPS PlayStation,PlayStation2,Nintendo64, PSP ARM AppleiPhone,iPod,GameBoy Advance,niektóretelefonyNokiaiSony Ericsson Power Macintosh,Xbox360,PlayStation3
Wpływarchitekturyprocesoranasystemoperacyjny Przetwarzanieskalarne źródłohttp://eng.wikipedia.org
Wpływarchitekturyprocesoranasystemoperacyjny Przetwarzaniepotokoweinstrukcji Przetwarzaniepotokowe technikaskracającaczaswykonaniaciągu instrukcji poleganapodzialeinstrukcjinaniezależne fazy,któremogąbyćwykonywane jednocześniedlaosobnychinstrukcji zapoczątkowanawprocesorachrisc
Wpływarchitekturyprocesoranasystemoperacyjny FazyklasycznegopotokowaniaRISC KlasycznepotokowanieRISC instructionfetch(pobanieinstrukcji) instructiondecode(interpretacjainstrukcji) execute(wykonanieobliczeń,obliczenie adresu...) memoryaccess(np.odczytdanychdlaload) writeback(zapiswyniku)
Wpływarchitekturyprocesoranasystemoperacyjny KlasycznepotokowanieRISC źródłohttp://eng.wikipedia.org
Wpływarchitekturyprocesoranasystemoperacyjny Przetwarzanesuperskalarne źródłohttp://eng.wikipedia.org
Wpływarchitekturyprocesoranasystemoperacyjny Przetwarzaniepotokowe:hazardy Hazardyprzyprzetwarzaniupotokowym realizacjaniektórychetapówmożepowodowaćkonflikty dostępudopamięci jeśliczasytrwaniaposzczególnychetapówmogąbyć niejednakowe,tonaróżnychetapachwystąpipewne oczekiwanie wprogramiewystępująskoki(rozgałęzienia)warunkowe wystąpienieprzerwaniasprzętowegolubwyjątkuprocesora stanowizdarzenienieprzewidywalneirównieżpogarsza przetwarzaniepotokowe
Wpływarchitekturyprocesoranasystemoperacyjny Przetwarzaniepotokowe:metodyrozwiązywaniazastojów Metodyrozwiązywaniazastojów zmianakolejnościinstrukcji przenazwanierejestrów rozwijaniepętli zgadywaniedalszejkolejnościrozkazów optymalizacjakodu
Wpływarchitekturyprocesoranasystemoperacyjny Rodzajezrównolegleniaobliczeń Zrównoleglanieobliczeń napoziomieinstrukcji(potokowanie,vliw, przetwarzaniesuperskalarne) napoziomiedanych napoziomieprocesów,wątków HyperThreading wielordzeniowość klastry,superkomputery,grid...
Wpływarchitekturyprocesoranasystemoperacyjny Procesorywielordzeniowe:przyczynypowstania Przyczynyrozwojuwielordzeniowości memorywall szybszyrozwójprocesorówodpamięci instructionlevelparallelismwall(ilpwall) brakmożliwościdalszegozrównoleglaniapoprzez potokowanie powerwall corazwiększypobórmocywrazze wzrostemmocyobliczeniowej
Wpływarchitekturyprocesoranasystemoperacyjny Procesorywielordzeniowe:cotojest? Cotojestprocesorwielordzeniowy? kilkamikroprocesorówzintegrowanychna jednejmatrycy każdyzmikroprocesorówposiadawłasną pamięćpodręczną dostępdozasobówkomputerawspólnydla mikroprocesorów
Wpływarchitekturyprocesoranasystemoperacyjny Procesorywielordzeniowe:przykłady Przykłady AMDAthlon64,Athlon64FX,Athlon64X2, SempronX2,TurionX2 Power4,Power5,Power6 IntelCoreDuo,Core2Duo,Core2Quad, Corei7,Itanium2,PentiumD NvidiaGeForce
Wpływarchitekturyprocesoranasystemoperacyjny Procesorywielordzeniowe:systemoperacyjny Wielordzeniowośćasystemoperacyjny możliwośćobsługiwiększejliczbyprocesów bezkoniecznościprzełączaniakontekstu szybszapracaprzywieluprocesach możliwośćzrównolegleniaobliczeńnapoziomie instrukcjipomiędzyprocesorami
Wpływarchitekturyprocesoranasystemoperacyjny Procesorywielordzeniowe:zastosowania Zastosowania silnikigraficznegierwspierająceobliczeniana wielordzeniowychprocesorach bibliotekipozwalającetworzyćprogramy rozproszone: Clik++ OpenMP MPI
Wpływarchitekturyprocesoranasystemoperacyjny 64 bitowość 64 bitowość cotoznaczy,żeprocesorjest64 bitowy? historiaprocesorów64 bitowych x86 64jakoprzykładpowszechnej architektury64 bitowej 64 bitowesystemyoperacyjne przykłady:windows,linux zalety wadyiproblemy
Wpływarchitekturyprocesoranasystemoperacyjny 64 bitowość:cotoznaczy? 64 bitowyprocesor(wteorii): 64 bitowerejestryogólnego przeznaczenia 64 bitoweszyny(adresówidanych) 64 bitoweintegeryiadresy 64 możezaadresowaćpamięćrozmiaru2
Wpływarchitekturyprocesoranasystemoperacyjny 64 bitowość:cotoznaczy? 64 bitowyprocesor(wpraktyce): szerokośćszynod32do64bitów odpowiedniomniejszaadresowalna przestrzeń Czasemnazywasiętaknawetprocesory32 bitowe o64 bitowejszyniedanych!
Wpływarchitekturyprocesoranasystemoperacyjny 64 bitowość:historia jużwlatach60.64 bitowecpuw superkomputerach(tymczasemarchitektura32 bitowajakostandarddopieroodlat80.) odpoczątkulat90.64 bitoweprocesorycoraz częściejwserwerachistacjachroboczych opartychnaarchitekturzerisc od2003powszechnewkomputerach domowychdziękiarchitekturompowerpc64i x86 64
Wpływarchitekturyprocesoranasystemoperacyjny 64 bitowość:architekturax86 64 Architekturax86 64 zaprojektowanaprzezamd wprowadzonaprzezintelapodnazwąem64t obecnieamd64iintel64 powszechnawewspółczesnychpecetach: IntelCore2 AMDAthlon64,Turion64,Opteron
Wpływarchitekturyprocesoranasystemoperacyjny 64 bitowość:architekturax86 64 Najważniejszecechy: nadzbiórinstrukcjiirejestrów 32 bitowejarchitekturyx86 8zupełnienowychrejestrów istniejąceimplementacjemają: wirtualnąprzestrzeńadresowąrozmiaru ażdo256tb fizycznąprzestrzeńadresowąrozmiaru1tb (ograniczeniewynikazrozmiaruszynyadresowej) ostatniąwartośćmożnazwiększyćdo4pb (ograniczeniewynikazalgorytmustronicowania)
Wpływarchitekturyprocesoranasystemoperacyjny 64 bitowość:architekturax86 64 Trybypracy Tryb Long 64 bit Compatibility Legacy System 64 bitowy 16lub32 bitowy Konieczność Domyślny przekompilowa rozmiar niaaplikacji adresu Domyślny Rozmiar rozmiar rejestrów operandów2 ogólnych Rozszerzone rejestry1 Tak 64 32 64 Tak Nie 16lub32 16lub32 32 Nie Nie 16lub32 16lub32 16lub32 Nie 1 dostępdo8dodatkowychrejestrówogólnegoprzeznaczenia(r8 R15) 2 rozmiarmożnaoczywiściemodyfikowaćprzezustawienieodpowiedniegobitubądź używanieprefiksówinstrukcji
Wpływarchitekturyprocesoranasystemoperacyjny 64 bitowość:windowsx64 Windowsx64:najważniejszecechy: 8TBprzestrzeniadresowejdlakażdego procesuużytkownika 8TBprzestrzeniadresowejdlajądra możnazaadresowaćod128gbdo1tb RAMu(wzależnościodwersji) modeldanychllp64: 32 bitoweintegeryilongi 64 bitowewskaźniki
Wpływarchitekturyprocesoranasystemoperacyjny 64 bitowość:windowsx64 Windowsx64:uruchamianieprogramów: wszystkieprocesytrybujądramusząbyć64 bitowe(niemożnainstalować32 bitowych sterowników) możnauruchamiać32 bitoweprocesy działającewtrybieużytkownika jeślisąskompilowanezopcją'largeaddressaware'będą mogłykorzystaćz4gbprzestrzeniadresowejzamiast2 GBdomyślnychdlaWindows
Wpływarchitekturyprocesoranasystemoperacyjny 64 bitowość:linux Linux:najważniejszecechy: wsparciedlaprocesorów64 bitowychod wersji2.4jądra fizycznaprzestrzeńadresowaażdo64tb wirtualnaprzestrzeńadresowaażdo128tb modeldanychlp64: 32 bitoweintegery 64 bitowelongi 64 bitowewskaźniki
Wpływarchitekturyprocesoranasystemoperacyjny 64 bitowość:zalety Zalety64 bitowegosoczyli... To nieprawda, że 64-bitowy system jest przydatny tylko wtedy, gdy ma się więcej niż 4 GB RAMu!
Wpływarchitekturyprocesoranasystemoperacyjny 64 bitowość:zalety Wirtualnaprzestrzeńadresowa częśćprzestrzeniadresowejprocesujest rezerwowananabibliotekiikomponentysystemu operacyjnego dlategoteżw32 bitowym systemieprocesymająmniejniż4gb dlasiebie wwindowsachdomyślnieprocesmadodyspozycji 2GB,wLinuxachokoło3GB uniemożliwiatonaprzykładmapowaniedużych plikównapamięć
Wpływarchitekturyprocesoranasystemoperacyjny 64 bitowość:zalety Fizycznaprzestrzeńadresowa w32 bitowymsystemiemożnazaadresowaćco najwyżej4gbpamięcifizycznej jednakczęśćadresówpotrzebnajesturządzeniom wejścia/wyjścia(np.pci,pciexpress) pozostałychadresówmożewięcbyćzamało,aby zaadresować4,anawet3gbpamięcifizycznej pozostanieonaniewykorzystana Tychograniczeńniemaw64 bitowych systemachoperacyjnych!
Wpływarchitekturyprocesoranasystemoperacyjny 64 bitowość:zalety Innezalety szybszewniektórychzadaniachobliczeniowych silniedużychliczb dodwóchrazyszybciej szyfrowaniedanych nawetkilkukrotnieszybciej wydajniejszewmanipulacjidanymidużego rozmiaru ogromnebazydanych obliczenianaukowe obróbkawideo sprawniejszejeślichodziowielozadaniowośći pracęprzydużymobciążeniu
Wpływarchitekturyprocesoranasystemoperacyjny 64 bitowość:wadyiproblemy Wadyiproblemy puchnięciedanychiprogramów 32 bit:sizeof(structtask_struct)~2000 64 bit:sizeof(structtask_struct)~4000 uwaganawyrównaniedanych structstr{ void*p; intm; }; structstrtab[4]; 32 bit sizeof(tab)=32 64 bit sizeof(tab)=64
Wpływarchitekturyprocesoranasystemoperacyjny 64 bitowość:wadyiproblemy Wadyiproblemy brakniektórychprogramówisterownikówwwersjach 64 bitowych np.adobeflashplayer czasemproblemyzesprzętem czasemaplikacje32 bitowemogądziałaćwolniej x86 64 różnicaprawieniezauważalna(poprostunieużywa sięniektórychrejestrówiinstrukcji) Itaniumiinnearchitekturywpełni64 bitowe różnicamoże byćznacząca(potrzebaemulowaćśrodowisko32 bitowe)
Wpływarchitekturyprocesoranasystemoperacyjny 64 bitowość:wadyiproblemy Problemyprzyprzenoszeniuaplikacji używanie magicznychliczb alokowaniepamięci size_tarraysize=n*4; long*array=(long*)malloc(arraysize); arytmetyka longl=0^0x80000000; printf("%ld\n",l); 32 bit 2147483648=LONG_MIN 64 bit(lp64) 2147483648=?
Wpływarchitekturyprocesoranasystemoperacyjny 64 bitowość:wadyiproblemy Problemyprzyprzenoszeniuaplikacji indeksowanietablic inti=0; while(ogromnatablica[i]!=id) i++; toniezadziaładlatablicwiększychodint_max operacjenabitach ptrdiff_tsetbit(ptrdiff_tval,unsignedbitnum){ ptrdiff_tmask=1<<bitnum; returnval mask; } setbit(0,32)=0x0!=0x100000000 niedziała,bo 1 jesttypuintiprzyshifcienastępuje przepełnienie
Wpływarchitekturyprocesoranasystemoperacyjny 64 bitowość:wadyiproblemy Problemyprzyprzenoszeniuaplikacji projektującaplikacjęna64 bitowysystemoperacyjny należypamiętaćotym,żebyćmożeużytkownikbędzie chciałkorzystaćzbardzodużychzestawówdanych (prawdopodobniedlategowłaśniezainstalowałtaki system) tabliceoponadint_maxelementach plikiwiększeniż4gb należytouwzględnićtakżewczasietestów,gdyżniektóre błędymogąsięujawnićdopieroprzydanychbardzo dużychrozmiarów patrzprzykładynapoprzednichslajdach należypamiętaćteżotym,żebyćmożeprzyjdzieczas architektur128 bitowych!
Wpływarchitekturyprocesoranasystemoperacyjny Źródła Źródła Wikipedia http://en.wikipedia.org/ http://pl.wikipedia.org/ RISCArchitecture http://cse.stanford.edu/class/sophomore-college/projects-00/risc/ Zarządzaniepamięciąw32 i64 bitowychsystemach Windows http://www.microsoft.com/poland/technet/article/art0092_01.mspx AMD,x86 64TMTechnologyWhitePaper www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/x86-64_wp.pdf AMD64FAQ http://www.amd.com/us-en/processors/productinformation/0,,30_118_9331_13278,00.html 20issuesofportingC++codeonthe64 bitplatform http://www.codeproject.com/kb/architecture/20issues64bit.aspx