Notatkidowykładuz architekturykomputerów Marcin Peczarski InstytutInformatyki UniwersytetWarszawski 17lutego2008 Architektura a organizacja komputera Architekturakomputera,wedługStallingsa[1],toteatrybutykomputera,któresąwidzialnedlaprogramisty i mają bezpośredni wpływ na logiczne wykonanie programu.natomiast organizacja komputera jest to sposóbrealizacjiarchitektury.przykładamiatrybutów architekturysą:listarozkazów,sposóbreprezentacjiliczb, metodyadresowaniaargumentów.przykładamiatrybutów organizacjisą: sposób realizacjiinstrukcji,rozwiązania sprzętowe niewidoczne dlaprogramisty,technologie wykonaniaposzczególnych podzespołów.z powyższymi pojęciami wiąże się pojęcie kompatybilności.architekturajest czymś trwalszym niż organizacja.ta sama architektura może być oferowana w różnychmodelachkomputerów,różniącychsię organizacją,któraz kolei determinuje np.wydajność i cenę.niezmiennaarchitektura może być oferowanaprzez producentaprzez wiele lat,umożliwiając łatwe przenoszenie istniejącego już oprogramowania.natomiast kolejne modele komputerów mogą mieć zupełnie inną organizację,która może zmieniać się dowolnie częstowraz z rozwojem technologii. Zgodniez powyższymidefinicjami,a niecowbrew tytułowi,wykładtenpoświęconyjest zarównoarchitekturze, jakiorganizacjisystemów komputerowych. 1 Przeglądarchitektur 1.1 Model von Neumanna a model współczesnego komputera John vonneumannopublikował w 1945 propozycję opracowanianowegokomputera.zasadnicząnowością była koncepcjaprzechowywania programuw pamięci.komputermiał składać się z czterech bloków funkcjonalnych: pamięć przechowującaprogramdowykonaniaidanedlaniego; jednostkaarytmetyczno-logicznazawierającarejestryac(accumulator),mq(multiplier-quotier),mbr (memorybufferregister); jednostkasterującazawierającalicznikprogramu PC(program counter),rejestradresowymar(memory address register)ipomocnicze rejestryibr(instructionbufferregister),ir(instructionregister); urządzeniawejścia-wyjścia. Składnikiwspółczesnego komputera: (mikro)procesor,zawierającyco najmniejjedną jednostkę arytmetyczno-logiczną,jednostkę sterującairejestry; pamięć operacyjna; urządzeniawejścia-wyjścia(klawiatura,mysz, kartagraficzna,pamięcidyskowe itp.); układbezpośredniegodostępudopamięci(ang.dma direct memoryaccess); układprzerwań. Urządzeniawejścia-wyjściasame też mogąbyć skomplikwanymiukładamimikroprocesorowymiizawierać w swoim wnętrzumikroprocesor,pamięć operacyjną,układywejścia-wyjścia itd.układdma jest specjalizowanym procesorem odciążającym procesor główny przyoperacjach przesyłaniadużych bloków danych między pamięcią operacyjną aukładamiwejścia-wyjścia.komunikacja pomiędzyposzczególnymiskładnikami odbywasię za pomocąszyn(zwanychteż magistralami):danych,adresowych,sygnałów sterujących. 1.2 Architektury typu Princeton i Harward Architektura typuprinceton posiadawspólnąhierarchię pamięciprogramuidanych,jakopisanotow modeluvon Neumanna.Architektura typuharward poleganarozdzieleniupamięciprogramuodpamięci danych.stosowana jest dlazwiększenia wydajności w pamięciach podręcznych oraz w systemach wbudowanych(np.sterownikach urządzeń AGD,gdzie kod programu nie zmienia się przez całe życie urządzenia lub zmienia się rzadko). 1.3 KlasyfikacjaFlynna KlasyfikacjaFlynnama obecnie znaczenie historyczne, niemniejskrótyw niejzdefiniowanesąw powszechnym użyciuinależyjeznać.poniższa tabelaprzedstawiarozszerzonąklasyfikację Flynna oryginalnaniezawiera kolumny 0iwiersza 0. liczbastrumienidanych liczba strumieni instrukcji 0 1 >1 0 NISD NIMD 1 automat SISD SIMD >1 automat MISD MIMD Skrótyoznaczająodpowiednio:NI noinstruction,si singleinstruction,mi multipleinstruction,sd singledata,md multiple data.maszynytypynisdinimdnie sąobecnie konstruowane,ale samo podejście sterowania przepływemdanych(ang.dataflow) jest używane domodelowaniaprocesów informacyjnych.model SISDtoklasycznamaszynavonNeumanna.ModelSIMDtonp.procesorywektorowe, którezostanąomówione w dalszej części wykładu.trudnojestwskazać jakieś praktyczne zastosowanie modelumisd.model MIMD to różnegorodzajuarchitekturywieloprocesorowe. Urządzeniabez strumienidanychniesąkomputerami można tuumieścićniektóreautomaty. 1.4 Architekturywieloprocesorowe Podział architekturwieloprocesorowychze względuna stopień powiązania: superkomputer,ang.massivelyparallelprocessing; klaster,grono,ang.cluster; konstelacja,ang.constellation; siatka,ang.grid. Podział architekturwieloprocesorowychze względuna dostęp do pamięci: procesormadostęptylkodopamięcilokalnej; SMP(Symmetric Multi-Processing),UMA(Uniform MemoryAccess, UniformMemoryArchitecture) wszystkie procesorymająrównoprawnydostępdowspólnejpamięci; NUMA(Non-UniformMemoryAccess, Non-UniformMemoryArchitecture) dostępdopamięcilokalnej jest bardziejefektywnyniżdostęp do pamięci innych procesorów; COMA(Cache Only MemoryArchitecture) pamięć lokalnapełnifunkcję pamięcipodręcznej dlawszystkichprocesorów; architekturymieszane. 1 2 2 Podstawytechnikicyfrowej 2.1 Układycyfrowe Sygnałemnazywamyfunkcję opisującą zmiany wielkości fizycznejw czasie.sygnałemanalogowymnazywamysygnał przyjmujący nieskończoną(wg innej definicji nieprzeliczalną)liczbę wartości,na ogół z ciągłego przedziału. Sygnałemdyskretnym(nazywanym też: ziarnistym, skwantowanym, cyfrowym) nazywamysygnałprzyjmujący skończoną(wginnejdefinicji przeliczalną)liczbę wartości.układamianalogowyminazywamy urządzeniaprzetwarzające sygnałyanalogowe. Układamicyfrowyminazywamyurządzeniaprzetwarzające sygnałydyskretne. Przymiotnikcyfrowypochodzizapewne stąd,że wartościom sygnałów dyskretnych naogół przypisujemycyfry w pewnym systemie liczenia,naogół dwójkowym.należy pamiętać, że podziałnaurządzeniaanalogowe icyfrowe odzwierciedlasposóbinterpretacjisygnałów.w układachfizycznychsygnałydyskretne są reprezentowane przez sygnałyanalogowe. Jeśliuwzględnić zjawiskakwantowe, tosygnałyanalogowe przyjmujątylko wartości dyskretne. Wśród układów cyfrowych dominujące znaczenie mająukładybinarne(dwójkowe),w których sygnały przyjmują tylkodwie wartości.te dwie wartościoznaczane są cyframi0i1.wartości sygnałów binarnychsą, naogół, reprezentowaneprzez dwapoziomypotencjałuelektrycznego. SątopoziomwysokioznaczanyliterąHipoziom niskioznaczanyliterąl.wartość potencjałuelektrycznegoreprezentującego poziom wysokijest zawsze większa niż wartość potencjałuelektrycznegoreprezentującegopoziom niski.wkonwencjilogicznejdodatniejpoziomowi wysokiemu przypisujesię cyfrę 1,apoziomowiniskiemucyfrę0.Wkonwencjilogicznejujemnejjest odwrotnie, poziomowiwysokiemuprzypisujesię cyfrę 0,apoziomowiniskiemucyfrę 1. 2.2 Bramkilogiczne Podstawowe bramkilogiczne:and,nand,or,nor,ex-or,not. Pomocnicze bramkicyfrowe: bramka transmisyjna,bufortrójstanowy. PrawadeMorganadlabramek. 2.3 Układykombinacyjne Układemkombinacyjnymnazywamyukładcyfrowy,wktórymsygnaływyjściowesąjednoznacznieokreślone przez aktualne wartości sygnałów wejściowych.układkombinacyjny on wejściachimwyjściachjestw pełni opisanyprzezpodaniefunkcjiprzełączającejf:x Y,gdzieX {0,1} n jestzbioremdopuszczalnychstanów wejść,ay {0,1} m jestzbioremmożliwychstanówwyjść.jeślix={0,1} n,tofunkcjaprzełączającajest zupełna. Systemfunkcjonalniepełnytozestaw typów bramek,z którychmożna zbudować dowolnyukładkombinacyjny. Przykładynajważniejszych systemów bramekfunkcjonalnie pełnych: AND,OR,NOT; NAND; NOR. Przykładyukładów kombinacyjnych:sumator,multiplekser,demultiplekser. Hazardwukładachkombinacyjnych. 2.4 Układysekwencyjne Układemsekwencyjnymnazywamyukładcyfrowy,w którymsygnaływyjściowe zależą nie tylko od wartości sygnałów wejściowych w danej chwili,ale również odwartości sygnałów wejściowych w przeszłości. Układ sekwencyjny o n wejściach i mwyjściach można symbolicznie opisać jako piątkę Q,X,Y,δ,λ,gdzie: Y {0,1} m jestzbioremmożliwychstanówwyjść; δ:q X Qjest funkcjąprzejść; λ:q X Yjestfunkcjąwyjść. Układsekwencyjny jest często nazywanydeterministycznymautomatemskończonym. Ogólnyschemat budowyukładusekwencyjnego. Grafprzejść układusekwencyjnego. Układsekwencyjnynazywamyasynchronicznym,gdyspełnionyjestwarunek x X q,s Q(δ(s,x)=q δ(q,x)=q) Tenwarunekgwarantuje stabilność ioznacza,że w układzie asynchronicznym zmianastanuwewnętrznego lub stanuwyjśćmożenastąpićjedyniepodwpływemzmianystanuwejść. Przykładukładuasynchronicznego: przerzutnikrs. Hazardw układachasynchronicznych. Układsekwencjnynazywamysynchronicznym,gdyzmianastanuwewnętrznegoistanuwyjść jest synchronizowanasygnałem taktującym,zwanym też sygnałem zegara.impulsytaktujące dzielączas na odcinkizwane taktami,które wyznaczają dyskretnyczas t Zimamyqt+1 =δ(qt,xt)oraz yt=λ(qt,xt) Układ synchroniczny może zmieniać stan wewnętrzny i stanwyjść pod wpływem samego tylko sygnału taktującego bez zmianystanu wejść. Momentzmianywyznacza poziom sygnałuzegarowego wyzwalaniepoziomem, częściej jednakzmiananastępuje przyzmianie poziomusygnałuzegarowego z niskiegonawysoki wyzwalane zboczemnarastającymlubz wysokiegona niski wyzwalanezboczemopadającym.układsynchronicznymożna uważać zaszczególny przypadek układuasynchronicznego,jeśliuwzględnićsygnałzegara jakojedenz sygnałów wejściowych. Przykładukładusynchronicznego: przerzutnikd. 2.5 Aspektytechnologiczne Projektowanie iwytwarzanie układów cyfrowychpodlegapewnym ograniczeniom: fan-in maksymalnaliczbawejść pojedynczejbramki; fan-out maksymalnaliczbawejść bramek,które można podłączyć do jednego wyjścia bramki; margines zakłóceń; czas propagacji determinujemaksymalnączęstotliwość przełączania; pobieranamoc. Polepszeniejednegozpowyższychparametrówzwyklewiążesięzpogorszenieminnego. Moc Ppobieranąprzez układcyfrowyw zależności odnapięciazasilaniauiczęstotliwości przełączania(taktowania)fmożna wyrazić wzorem P=(G+Cf)U 2. Ze względuna wartościstałychg i C technologie wytwarzaniaukładów cyfrowychmożna podzielić natrzy kategorie: G>0,C>0 np.bardzopopularnewubiegłymwiekuukładyttl; G >0,C 0 np.ciągle jeszcze używane w specyficznych zastosowaniach układyecl; G 0,C>0 np.dominująceobecnieukładycmos. Qjestzbioremstanówwewnętrznych,naogółQ {0,1} p ; X {0,1} n jestzbioremdopuszczalnychstanówwejść; 3 4
Technologie realizacjibramek zwykłosię porównywać na podstawie czasów propagacjitpi mocy zasilania Pbpojedynczej bramki oraz iloczynu tych wielkości.iloczyn tppbma wymiar energii i jest adekwatny do porówywaniatechnologii,dlaktórychstałagdominujenadstałąc(stałacmazaniedbywalnywpływna pobieranąmoc). Jeślitaknie jest, tonależy określić częstotliwość, dlaktórejdokonywanejestporównanie.jeśli stała CdominujenadstałąG,tolepszym kryteriumporównawczym jest energiajednegocykluprzełączania bramkicu 2. Energia elektryczna pobierana przez elektroniczny układ cyfrowy jest prawie w całości zamienianana ciepło. Wdanychkatalogowych producencipodająmaksymalnątemperaturę obudowytc(lubstrukturypółprzewodnikowej),przyktórejukładmoże pracować poprawnie.temperaturatc,temperaturaotoczeniato iwydzielana wukładziemocpsązwiązanewzorem Tc =To +RthP, gdzierthjestrezystancjątermicznąobudowa-otoczenie(lubstruktura-otoczenia),wyrażanąwk W 1.Jako temperaturętonależyprzyjąćtemperaturęwewnątrzobudowykomputera.temperaturatajestnaogółwyższa odtemperaturypanującejna jejzewnątrz.we współczesnychkomputerach niewielkaczęść ciepła wydzielanego w jego układach zostaje odprowadzonaprzez promieniowanie lubnaturalną konwekcję.większość musi zostać odprowadzonaprzez wymuszenie przepływuczynnika chłodzącego, najczęściejpowietrza lub wody.wydzielana mocp ww,szybkośćprzepływuczynnikachłodzącegoqwkg s 1,ciepłowłaściweczynnikachłodzącego (przystałymciśnieniu)cpwj kg 1 K 1 iprzyrosttemperaturyczynnikachłodzącego TwKzwiązanesą zależnością P=qcp T. Za pomocątegowzorumożna obliczyć przyrosttemparaturywewnątrz obudowykomputera,jakrównież w serwerowni.należywtedyjakopprzyjąć łącznąmoc wszystkichurządzeńznajdujacychsię w pomieszczeniu,a jako qwydajnośćukładuwentylacjilubklimatyzacji.ciepłowłaściwepowietrzawynosi1,01 10 3 J kg 1 K 1,awody 4,18 10 3 J kg 1 K 1.Szybkośćprzepływumożnazamienićzkg s 1 nam 3 s 1,uwzględniającgęstośćczynnika chłodzącego.dlawodywynosionawprzybliżeniu10 3 kg m 3 iwniewielkimstopniuzależyodtemperatury, natomiastdlapowietrza zależyodtemperaturyiciśnienia,ale dlaobliczeńprzybliżonychmożnaprzyjąć,że wynosiniecoponad1kg m 3,cojestłatwozapamiętać. Podsumowując,w celuzapewnienia właściwych warunków pracy układustosuje się następujące rozwiązania: radiatorzmniejszarth; specjalna pasta termoprzewodząca między obudową a radiatorem zmniejsza Rth; wentylatorzmniejsza To; chłodzenie cieczą może drastycznie zmniejszyć To. Zwiększanie częstotliwościtaktowaniaukładunaogół nieuchronnieprowadzido zwiększaniailości wydzielanego w nimciepła.można temu przeciwdziałać, np.zmniejszając napięcie zasilania.niestety zmniejszanie napięcia zasilaniapowoduje wzrost czasu propagacji,copowodujeograniczenie maksymalnejczęstotliwościtaktowania. Zmniejszanie napięcia zasilaniazmniejsza też margines zakłóceń, co czyniukładcyfrowymniejodpornym na zakłócenia elektromagnetyczne.znalezienie właściwego kompromisu jest jednym z istotnych problemów w technologiiukładówcyfrowych. 2.6 PrawoMoore a W 1965rokuGordonMoore sformułował prawodotyczące tempa rozwoju mikroelektroniki:liczba elementów, któremożnaumieścićwukładziescalonym,minimalizująckosztprodukcjinajedenelement,rośniewykładniczo w czasie.prawo to nadalobowiązuje.czas potrzebny napodwojenie liczbyelementów szacuje się obecnie na 18 do24miesięcy. 2.7 Układy wrażliwe na ładunki elektrostatyczne Większość produkowanychobecnie układów scalonychjestwrażliwanaładunkielektrostatyczne(ang.esd electrostatic sensitive devices). Uszkodzeniapowstające naskutekniekontrolowanego gromadzenia się irozładowywaniaładunków elektrostatycznychsąbardzotrudnedozlokalizowania,gdyż błędne działanie układu może wystąpić długopo zaistnieniuprzyczynyuszkodzeniai może objawiać się tylko odczasudo czasu.esdi moduły je zawierające są oznaczane przez umieszczenie na opakowaniu specjalnego symbolu. 5 Opakowaniaprzeznaczone doprzechowywaniai przenoszeniaesdsą wykonywane z tworzyw ułatwiających łagodne odprowadzanie ładunków elektrostatycznych.należy przestrzegać następującychzaleceń: Powierzchniastołu,naktórymwykonujesię montaż idemontaż ESD,powinnabyć pokrytatworzywem przewodzącym,ale nie metalowa.warstwaprzewodząca powinnabyć uziemiona. Masywszystkich urządzeńznajdujących się nastole powinny być połączone galwanicznie z powierzchnią przewodzącąstołu. ESDniewolnoprzenosić bez odpowiedniegoopakowania. Przedwyjęciem ESDz opakowanialubwłożeniem ESDdoopakowanianależywyrównać potencjałyprzez dotknięcieopakowaniadowarstwyprzewodzącejstołu. Osobapracującaz ESDpowinnamieć naręce opaskę odprowadzającąładunkielektrostatyczne. Ze względów bezpieczeństwa opaska powinnabyć połączona z uziemieniem przez dużą rezystancję. Wpomieszczeniach,gdzie pracuje się z ESD,należy stosować antystatyczne wykładzinypodłogowe. 3 Reprezentacjadanych 3.1 Liczbycałkowite Rozważmyciągn-bitowy bn 1bn 2...b2b1b0. Ciągtenmoże oznaczać różne liczbyw zależnościodprzyjętego sposobukodowania: naturalnykodbinarny(nkb) modułzeznakiem(mz) n 1 bi2 i ; ( 1) bn 1 n 2 bi2 i ; n 2 uzupełnieniowydodwójki(u2) bn 12 n 1 + bi2 i ; uzupełnieniowydojedynek(u1) spolaryzowany(ang.biased) BCD(ang.binarycodeddecimal)dlanpodzielnegoprzez4 Poniższatabelazawieraprzykładydlan=8. n 2 (bi bn 1)2 i ; n 1 B+ bi2 i ; n/4 1 j=0 b7...b1b0 NKB MZ U2 U1 B=127 BCD 00000000 0 0 0 0 127 0 00000001 1 1 1 1 126 1 01111110 126 126 126 126 1 01111111 127 127 127 127 0 10000000 128 0 128 127 1 80 10000001 129 1 127 126 2 81 11111110 254 126 2 1 127 11111111 255 127 1 0 128 6 3 bi+4j2 i 10 j. 3.2 Liczbyzmiennopozycyjne Obecnie najczęściej stosowana jest norma binarnejarytmetykizmiennopozycyjnejieee-754.definiuje ona m.in. 32-bitowyformatpojedynczyi64-bitowyformatpodwójny.Wformacie pojedynczym bity0 22tworzączęść ułamkowąmantysym,bity23 30tworząwykładnikW,bit31kodujeznakS,aprzesunięcie wykładnika (polaryzacja)wynosib= 127.W formacie podwójnym bity0 51tworzą część ułamkową mantysym,bity 52 62tworząwykładnikW,bit63kodujeznakS,aprzesunięcie wykładnika(polaryzacja)wynosib=1023. Wartość liczby można określić za pomocąponiższychreguł. pole wykładnika pole mantysy rodzajliczb wartość 1 W 11...102 liczbyznormalizowane W B ( 1) S 1,M 2 W=0 M 0 liczbyzdenormalizowane 1 B ( 1) S 0,M 2 W=0 M=0 zera 0 W=11...112 M=0 nieskończoności ( 1) S W=11...112 M 0 nieliczbyaktywneipasywne,wartośćnieokreślona nan,nan 3.3 Napisy Donajczęściej stosowanychmetodkodowanianapisów należą: ASCII(AmericanStandardCode for Information Interchange)i jego rozszerzenia np.iso 8859-1, ISO 8859-2,...,cp1250itd.; EBCDIC(ExtendedBinaryCodedDecimalInterchangeCode); UTF-8(8-bitUnicodeTransformationFormat). UTF-8jestsposobemkodowaniaznakówzdefiniowanychwnormachUnicode(np.ISO/IEC10646Universal Multiple-Octet CodedCharacterSet). zakres znaków(szesnastkowo) liczba bitów sekwencja oktetów UTF-8 0 7F 7 0xxxxxxx 80 7FF 11 110xxxxx10xxxxxx 800 FFFF 16 1110xxxx10xxxxxx10xxxxxx 10000 10FFFF 21 11110xxx10xxxxxx10xxxxxx10xxxxxx Dokładniejszyopis można znaleźć w RFC 3629.Zauważmy,że oktetyowartościach szesnastkowych C0,C1,F5 doffniewystępująwtymkodowaniu. 3.4 Porządekbajtów Wprzyrodzie występująmaszyny: cienkokońcówkowe(ang.little-endian); grubokońcówkowe(ang.big-endian); dwukońcówkowe(ang.bi-endian). 3.5 Porządekbitów Bitymogą być numerowaneodnajmniejznaczącego donajbardziejznaczącego lubodwrotnie.numeracjabitów może zaczynać się od 0 albo od 1.Kolejność bitów jest szczególnie istotna przy szeregowym przesyłaniu danych. 3.6 Wyrównywaniedanych Wyrównywaniedanychstosujesięwceluzwiększeniawydajności.Danereprezentującetypprostysąumieszczanepodadresempodzielnymprzezjegorozmiar.Strukturysąwyrównywanewtakisposób,żebymogłybyć elementami tablicy.pola strukturysąwyrównywanezgodnie z ichrozmiarami. 7 3.7 Przedroski w informatyce Przedrostkikilo,mega,giga,teraoznaczająodpowiedniowielokrotności10 3,10 6,10 9,10 12 jednostekpodstawowych.winformatycemogąoneteżoznaczaćodpowiednio2 10,2 20,2 30,2 40.Zdarzasięteżmieszaniepotęg 2i10.Obowiązująpewnezwyczajowereguły: Wielkość pamięciokreśla się,stosując potęgi 2. Przepływnośćokreślasię,stosującnaogółpotęgi10:wmodemie56kb/sto56000b/s,wEthernecie100 Mb/sto10 8 b/s,alenp.przepływnośćłączaoznaczanegoe1(czasems2)częstookreślasięjako2mb/s, podczas gdyrzeczywistawartość wynosi2048000 b/s ipoprawnie należałobynapisać 2,048 Mb/s. Pojemności dysków twardychokreśla się,stosując potęgi10. Przyokreślaniupojemności innych pamięci masowychpanujebałagan:dladyskietki1,44mbmega oznacza 10 3 2 10,dlapłytyCDmegajestbliższe2 20,dlapłytyDVDgigajestbliższe10 9. 4 Mikroprocesor 4.1 Długość słowa, rozmiar szyny danych i szyny adresowej Słowo maszynowe topodstawowaporcjaprzetwarzaniainformacji w systemachkomputerowych,określonaprzez rozmiarrejestrów procesora.jest tojedenz podstawowych parametrów zarównokomputerajakiprocesora, tzw. bitowość. Większość operacjiwewnątrz procesora oraz przesyłanie danychmiędzyprocesorem ainnymi składnikamisystemukomputerowegosą wykonywane nasłowach(przynajmniejtakwidzitoprogramista).aby zwiększyć elestyczność oprogramowania,procesorzwykle umożliwia też wykonywanie operacjinaargumentach, którychrozmiarjestpodwielokrotnością lubwielokrotnością rozmiarusłowa.obecnie słowomaszynowe ma zwyklerozmiar8,16,32lub64bity.wprzeszłości konstruowanorównież komputeryoinnych długościach słowamaszynowego, przykładowo:4,12,24,36, 39,40bitów. Rozmiarszyny danych,podawany w bitach,określa w jakich maksymalnie porcjach dane mogąbyć przesyłane z i do pamięcioperacyjnej.wąskim gardłem jest zwłaszcza szybkość przesyłaniadanych ikoduprogramu z pamięci doprocesora.stądobserwuje się tendencjędostosowaniacoraz szerszychszyndanych. Rozmiarszyny adresowej,również podawanyw bitach,określa maksymalnyrozmiarfizycznejpamięcioperacyjnej,jakamożebyćadresowana. Poniższa tabelazawiera zestawienie mikroprocesorów oróżnychdługościach słowamaszynowego. Zestawienie toświadczy o pewnejumowności tegopojęcia ibrakujegozwiązkuz rozmiaramiszyndanychiadresowej. długość procesor rozmiaryargumentów szerokość szyny szerokość szyny fizycznaprzestrzeń słowa operacji(rejestrów) danych adresowej adresowa 8 8080 8,(16) 8 16 64kB 8 Z80 8,16 8 16 64kB 16 8088 8,16 8 20 1MB 16 8086 8,16 16 20 1MB 16 68000 8,16,32 16 24 16MB 32 386SX 8,16,32 16 24 16MB 32 386DX 8,16,32 32 32 4GB 32 P4 8,16,32,64,80,128 64 36 64GB 64 P4EM64T 8,16,32,64,80,128 64 36 64GB 64 PowerPC620 8,16,32,64 64,128 40 1TB 64 Opteron 8,16,32,64,80,128 64,128 40 1TB 4.2 Rejestry Możemywyróżnićnastępujące rodzaje rejestrów: danych służą tylko do przechowywania argumentów i wyników operacjiarytmetyczno-logicznych; adresowe służą do przechowywaniaadresów i do operacjiarytmetycznych na adresach; 8
ogólnegoprzeznaczenia mogą pełnić rolę zarównorejestrów danych,jakiadresowych; specjalizowane pełniąściśle określonąfunkcję, np.akumulator,czy wskaźnikstosu; stanu,znaczników przechowuje jednobitowe znacznikistanuisterowaniaprocesora; licznikprogramu zawiera adres bieżącejinstrukcji,która ma być wykonana; zmiennopozycyjne służądoprzechowywania liczbw formacie zmiennopozycyjnym; wektorowe przechowująwektor(tablicę)wartości; segmentowe służądoimplementacjisegmentowanegomodelupamięci. Ponadtomogą występować różnegorodzajurejestry,którenie są widoczne dlaprogramistylubsąwidoczne tylkowtrybieuprzywilejowanym.sątorejestrysłużącedo: zarządzaniapamięcią; debugowania. Ze względunaliczbę isposóbużywaniarejestrów możemywyróżnić następujące architektury: bezrejestrowe Rejestrynie przechowujądanych,służą wyłącznie do przechowywaniaadresów.każda operacjanadanychwymagadostępudopamięci. minimalny zestaw rejestrów Sątonajczęściej akumulator,wskaźnik stosu,licznikprogramu i rejestr adresowy.przyoperacjach dwuargumentowych jedenargumentjest w pamięci,adrugiargumenti wynik są zapamiętywane w akumulatorze. Przykładem byłaarchitekturakomputeraiaszaproponowanaprzez vonneumanna. mały zestaw rejestrów specjalizowanych Naogół jest tokilkarejestrów osztywnookreślonejfunkcji. Przykładem jest architektura x86 w trybie 16-bitowym,posiadająca następujące rejestry:ax,dx,cx, BX,SP,BP,SI,DI,IP,FLAGS. mały zestaw rejestrów uniwersalnych Podobnaliczba rejestrów jak wyżej,ale każdyrejestrmoże wystąpić wdowolnejfunkcji.architekturax86wtrybie32-bitowym(ia-32)zrejestramieax,edx,ecx,ebx, ESP,EBP,ESI,EDI,EIP,EFLAGSjestprawiedobrymprzykładem. buforwierzchołka stosu Umożliwia przechowywanie jednejdokilku ramek stosuw szybkiejpamięci rejestrowejiwykonanie procedurybez odwołańdopamięci. stosowy zestaw rejestrów Operacje wykonywane są nawierzchołkustosu.strukturata jest przystosowana doimplementacjiodwrotnejnotacjipolskiej.przykładem jestjednostkazmiennopozycyjnax87. Jakzobaczymy później,liczba i rodzaj fizycznie istniejących w procesorze rejestrów może się różnićodtego,co widziprogramista. 4.3 KodmaszynowyaAsembler Kodmaszynowyjestbinarnymsposobemopisurozkazówprocesora.Każdytypprocesoramaswójunikalnykod maszynowy.programowanie przez bezpośrednieużycie kodumaszynowego jestniewygodne.dlatego wymyślono Asembler,któryjest językiem programowanianiskiegopoziomu.jednopolecenie Asembleraodpowiadazwykle jednemurozkazowimaszynowemu.każdaarchitektura ma swójunikalnyasembler.nazwąasemblerokreśla się też programtłumaczącyasemblernakodmaszynowy. 4.4 Listainstrukcji Instrukcje procesora możemypodzielić na aplikacyjne,któremogąbyć zawsze wykonane i systemowe, które mogąbyćwykonanetylkowtrybieuprzywilejowanym.otrybieuprzywilejowanymbędziemowawdalszej części.instrukcje aplikacyjnemożemy podzilićna: instrukcje przesyłaniadanych; instrukcje arytmetyczne; operacje bitowe; operacje nanapisach; instrukcjesterującewykonaniemprogramu. dużyzestaw rejestrów uniwersalnych Typowowystępuje od32do128rejestrów.przykładem jestarchitekturacrayx1e. Instrukcjesterującewykonaniemprogramu,czyliinstrukcjewarunkowe,mogąbyćinstrukcjamiskoku,warunkowego przypisanialubwarunkowegowykonaniajakiejśoperacji.instrukcje warunkowegowykonaniaoperacji umożliwiająimplementację bez skoków krótkichsekwencjiif-else,comoże wydatniepoprawić szybkość działania programu.instrukcjewarunkowesąrealizowanewgjednegoznastępującychmodeli: ze znacznikami Operacja warunkowa jest realizowanadwufazowo,pierwszainstrukcja modyfikujejednobitowyznaczniklubkilka jednobitowychznaczników,druga instrukcjawykonuje skokwarunkowyw zależności od wartościznacznika lub znaczników.modeltenumożliwiarozdzielenie w czasie wykonaniatych instrukcji,druga instrukcja nie musiwystępować w kodzie programu bezpośredniopopierwszej.przykładem tego modelusąarchitekturyx86,ia-32, x86-64. bezznaczników Jednainstrukcjasprawdzawarunekiwzależnościodjegowynikuwykonujeskok.Model tenjestpopularny w architekturach RISC. z predykatami Predykatjestuogólnionym znacznikiem,mogącym przechowywać wartość logicznąwcześniejobliczonego warunku.instrukcje warunkowe specyfikują numer predykatu.model tenzostał zaimplementowany w architekturze IA-64. Możnawyróżnić dwa stylerealizacjidwuargumentowychoperacjiarytmetycznych(dodawanie,mnożenie itp.): jedenzargumentówźródłowychjestjednocześnieargumentemwynikowym, np.addr1,r2oznaczar1:=r1+r2lubr2:=r1+r2; argumentwynikowymoże być różnyodargumentów źródłowych, np.addr1,r2,r3oznaczar1:=r2+r3lubr3:=r1+r2. 4.5 Trybyadresowaniaargumentów Trybadresowania określa sposóbspecyfikacjiargumentuoperacji. Nazwa i opis Typowe oznaczenia Przykłady w IA-32 natychmiastowy(argument w kodzie instrukcji) 7 movdword[1000],7 bezpośredni(adresargumentuwkodzieinstrukcji) [1000] movdword[1000],7 pośredni(adres argumentuw pamięci) [[1000]] nie występuje rejestrowybezpośredni(argumentw rejestrze) r1 moveax,[ebx] rejestrowy pośredni(adres argumentuw rejestrze) [r1] moveax,[ebx] indeksowy [r1+8],[r1+r2] moveax,[ebx+4*ecx+8] stosowy(względem wartościwskaźnikastosu) [sp],[sp+4] pusheax;popeax; mov[esp+2*ecx+4],eax względny(względem wartościlicznikarozkazów) ip+8,pc+9 jcprzesunięcie rejestrowypośredniz preinkrementacją [+r1] rejestrowypośredniz postinkrementacją [r1+] movs;popeax rejestrowypośredniz predekrementacją [-r1] loop;pusheax rejestrowypośredniz postdekrementacją [r1-] movs Wzasadzie w każdym mikroprocesorze występujątrybyadresowanianatychmiastowy,rejestrowybezpośredni irejestrowypośredni.wwiększościwspółczesnychmikroprocesorów występuje jakiśwarianttrybuindeksowego. Trybwzględnyteżwystępujewwielumikroprocesorach,aległówniewinstrukcjachskoków. 9 10 4.6 Cyklpracymikroprocesora Mikroprocesorysą cyfrowymiukładamisynchronicznymi.ichpracajest synchronizowanasygnałem zegarowym. Mikroprocesor,z punktuwidzeniaprogramisty,wykonuje zaprogramowane instrukcje w sposóbsekwencyjny. Wykonywanie programu przez pierwsze mikroprocesory można podzielić na następujące cykle.cyklrozkazowy (ang.instructioncycle)jestokresem czasupotrzebnym dopobraniaiwykonaniapojedynczejinstrukcji.cykl ten,zależnie odinstrukcji,składasię z jednegodokilkucykliprocesora(ang.machinecycle).każdyodczytlub zapis pamięci wymagajednegocykluprocesora.każdycyklprocesoraskładasię z kilkutaktów zegara(ang. clockperiod).wykonanieinstrukcjimożezabraćdodatkowycyklprocesoralubmożebyćzawartewjednym z cyklidostępudopamięci. We współczesnychmikroprocesorachwystępujewyraźne oddzielenie fazykomunikacjiz pamięciąodfazywykonaniainstrukcji,takabynp.możliwe byłopobieranie kolejnych instrukcjiprzedzakończeniem wykonania poprzednich.mamycyklwspółpracyzpamięcią,składającysięzjednegodokilkutaktówzegaraorazcyklwykonania instrukcji,składający się z jednego do nawetkilkuset cykli zegara.przy czym częstotliwości obu zegarów mogąbyćróżne. 4.7 Pomiarwydajności Wydajność procesorów na ogół mierzysię za pomocąnastępującychjednostek: IPS(instructionspersecond) obecniezwykleużywasięwielokrotnościmips=10 6 IPS; FLOPS(floatingpointoperations persecond) obecnie zwykle używa się wielokrotnościmflops = 106 FLOPS,GFLOPS=109 FLOPS,TFLOPS=1012 FLOPSitd. 4.8 Metodyzwiększaniawydajności Naturalnypomysł zwiększaniawydajnościobliczeniowej procesora polegający nazwiększaniuczęstotliwości taktowaniajest ograniczony przez różnego rodzaju bariery technologiczne: wydzielanieciepła; czas propagacji sygnałów w układachcyfrowych. Zwiększenie wydajnościuzyskuje się,stosującnastępujące rozwiązania: pobieranieinstrukcjinazakładkę; kolejka(bufor)instrukcji; przetwarzanie potokowe; zrównoleglanie wykonywaniainstrukcji. Kolejny istotnyproblem hamującywzrost wydajności systemów komputerowychjestspowodowanynienadążaniem wzrostu szybkość pracypamięci za wzrostem szybkościpracyprocesorów.uwidacznia się tow postaci różnychczęstotliwościtaktowania iróżnychnapięć zasilającychukładywewnętrzne procesora ijegoukłady współpracyz szynami.możliwe rozwiązaniategoproblemuto: stosowaniewielopoziomowychpamięci podręcznych,początkowozewnętrznych,aobecnie wykonywanych wjednymukładziescalonymzprocesorem; zwiększanie szerokościszynydanych; konstrukcjapamięciumożliwiającychpobieranie danychcojedencyklzegara,anawetdwarazyw jednym cykluzegara. 11 4.9 Przetwarzaniepotokowe Zasadnicza ideaprzetwarzaniapotokowegopoleganarozłożeniuwykonaniapojedynczejinstrukcjinaciągprostychetapów,zktórychkażdymożebyćwykonanywjednymcykluzegara.wykonywanieinstrukcjiprzypomina taśmę produkcyjną.w każdym cykluzegara instrukcje przemieszczają się wzdłuż potokudonastępnegoetapu. Mimo,żewykonaniejednejinstrukcjimożewymagaćwieluetapów,towkażdymcyklurozpoczynasięikończy wykonywaniejednejinstrukcji.wpraktycetakiwyidealizowanymodelniemożebyćzrealizowany.powodem jest występowanie zależności między danymi,zależnościsterowaniaizależnościzasobów.ponadtoposzczególne instrukcje mogą wymagać różnejliczbyetapów.trzebateż uwzględnićobsługęsytuacjiwyjątkowych.czas wykonaniainstrukcjiprzyprzetwarzaniupotokowym jestdłuższy niż przyjejwykonaniuw sposóbsekwencyjny,ale średniczas wykonania jednejinstrukcjiprzywykonywaniudostatecznie długiegociąguinstrukcjijestkrótszy. Rozróżniamynastępujące typyzależności międzydanymi: RAW odczytpozapisie load-use moveax,7 addebx,eax WAR zapis po odczycie addeax,ebx movebx,4 WAW zapis pozapisie addeax,ebx andecx,edx define-use addeax,3 mulebx pusheax subesp,16 (wtymprzykładziewystępujeteżzależnośćraw) Zależności typuraw usuwa się przez data bypassing i data forwarding.zależności typu WAR i WAW są zależnościami fałszywymi. Usuwa się je przez przemianowanie rejestrów.fizycznych rejestrów jest więcej, niż widziprogramistaisąoneprzydzielanewmiarępotrzeby. Zależności sterowaniarozwiązuje się przez: pobieranie docelowego rozkazuz wyprzedzeniem; równoległe przetwarzanie obugałęzi programu; predykcjaskoków(przewidywanierozgałęzień): zawsze następujeskok, nigdynienastępujeskok, decydujekodinstrukcji(kompilator), jakprzyostatnimwykonaniu, tablicahistoriiskoków; buforpętli; opóźnionerozgałęzianie. Przyprzetwarzaniupotokowym stosuje się podziałskomplikowanychinstrukcjinamikrooperacje(ang.µops). Mikroperacje jestłatwiejpotokować. 4.10 Architektury superskalarnai wektorowa, procesory z bardzo długim słowem instrukcji Przetwarzanie potokowe umożliwia zbliżenie się dogranicywykonywaniaśredniojednej(prostej)instrukcji (mikrooperacji)w jednym cykluzegara. Dalsze przyspieszenie możliwe jestprzez zrównoleglenie wykonywania instrukcji.zrównoleglenie wymaga zwiększenialiczbypotoków ijednostekwykonawczych(alu arithmeticlogicunit,agu address generatorunit,fpu floatingpointunit,lsu load-storeunititp.).poszczególne potokimogąbyć specjalizowane.można wyróżnić następujące sposobywykorzystaniatejrównoległości(wielopotokowości): 12
architekturasuperskalarna zrównoleglenie napoziomie wykonania układywewnątrzprocesoradecydują ozrównolegleniu(hyperthreadingteżtupodpada); architekturawektorowa(znanateżjakosimd singleinstructionmultipledata) zrównolegleniena poziomie algorytmu nie wszystkie algorytmydająsię efektywniezwektoryzować; procesoryz bardzo długim słowem instrukcji(vliw very long instructionword) zrównoleglenie na poziomie kompilatora pojedyncza instrukcjaopisuje,comająrobić poszczególnejednostkiwykonawcze. Przywielupotokachmamydoczynieniaz następującymizagadnieniami: wydawanieinstrukcjiwinnejkolejnościniżzapisanowprogramie scheduler; kończenie instrukcjiw innejkolejności niżzapisanow programie re-orderbuffer. 4.11 Architektury RISC i CISC RISC ReducedInstructionSetComputers Zawierają ograniczony,prosty zbiór instrukcji. Zawierajądużą liczbę uniwersalnych rejestrów. Instrukcje arytmetyczno-logiczne wykonywane są na rejestrach. Kodyinstrukcjisąstałej długości,typowo4bajty, imająstałe rozmieszczenie pól,coułatwiadekodowanie. Posiadająmałąliczbętrybówadresowania. Dozwolone jest tylko adresowanie wyrównane. 4.12 Systemprzerwań Przerwaniasprzętowe maskowalne niemaskowalne Przerwaniaprogramowe Pracakrokowa Wyjątki Tablicaprzerwań 4.13 Sprzętowe wsparcie dla systemów operacyjnych Translacjaadresów segmentacja stronicowanie,prostaiodwrotnatablicastron Poziomyochrony wewnętrzny,nadzorcy,uprzywilejowany zewnętrzny,aplikacji Wywoływanieusługsystemuoperacyjnego przerwania specjalnainstrukcja(syscall) CISC ComplexInstructionSetComputers Występująskomplikowaneinstrukcje wspierające językiwysokiegopoziomu. Zawierają małą liczbą rejestrów i/lub rejestry specjalizowane. Instrukcje arytmetyczno-logiczne mogą pobierać argumentyz pamięciiumieszczać wynikw pamięci. Kodyinstrukcjimajązmiennądługość,typowood jednegodo kilkunastubajtów.występuje prefiksowanieinstrukcji utrudniające dekodowanie. Posiadajądużąliczbętrybówadresowania. Dozwolone jest adresowanieniewyrównane. 4.14 Urządzeniawejścia-wyjścia Metodyadresowaniaurządzeńwejścia-wyjścia Transmisjaprocesorowa(PIO)ibezpośrednidostępdopamięci(DMA) Sterownikiurządzeń 5 Pamięci Hierachiapamięci: rejestryprocesora; pamięć podręczna,dotrzechpoziomów; pamięć operacyjna,pamięć główna; pamięć wirtualna,zrealizowana w oparciuo zewnętrznąpamięć masową; system plików,zewnętrzna pamięć masowa; nośnikiwymienne,zasobysieciowe. Wgórętejhierarchiirośnieszybkość,awdółrośniepojemność. 5.1 Pamięcipółprzewodnikowe Pamięcipółprzewodnikowe można podzielić z uwzględnieniem wielukryteriów: trwałość przechowywanejinformacji ulotne nieulotne spsóbadresowania adresowanie poszczególnychbajtów lubsłów bezadresowe(np.pamięci FIFO) adresowanie zawartością,asocjacyjne liczbamagistral jednobramowe,jednodostępne wielobramowe,wielodostępne sposóbwprowadzaniaiwyprowadzaniainformacji równoległe szeregowe szeregowo-równoległe rodzajsynchronizacji asynchroniczne synchroniczne organizacjawewnętrzna liczbamatryc rozmiarmatrycy liczbabitówpamiętanawpojedynczejkomórce 13 14 Parametryużytkowe pamięci: pojemność szybkość dostarczania danych kosztnajedenbit ziarnistość minimalna wielkość pamięci,októrą można zwiększyć pamięć systemu organizacja(zewnętrzna) liczbabitówwkościrazyliczbakościwmodulerazyliczbaadresówwkości razyliczbamodułów czas dostępu najmniejszy przedziałczasupotrzebnydoodczytania lubzapisaniapojedynczejporcji (słowa)informacji czas cyklu najmniejszy przedziałczasumiędzy początkiem dwóchkolejnychoperacjidostępudopamięci 5.1.1 Pamięci nieulotne Pamięcinieulotnezachowujązawartość powyłączeniuzasilania.wpamięciach nieulotnychczas zapisuinformacji jestdłuższy od czasu odczytu,czasem nawet okilka rzędów wielkości.pamięci nieulotne dzielisię ze względunasposóbzapisuinformacjioraz możliwość jejzmiany: MROM,ROM(maskprogrammablereadonlymemory) zawartośćjestustalanawczasieprodukcji; PROM(programmablereadonlymemory) zawartość może być zaprogramowanajednokrotnie przez użytkownikaprzez przepalenie połączeńwewnętrznych; UV-EPROM,EPROM(erasable programmable readonlymemory) zawartość może być wielokrotnie programowana przez użytkownika,programowanieprzez umieszczenie ładunkuelektrycznegow izolowanej bramce tranzystora,kasowanie za pomocą światła ultrafioletowego; OTPROM(onetimeprogrammablereadonlymemory) wersjauv-epromwtaniejobudowiebez okienkadokasowania,możebyćzaprogramowanatylkojednokrotnie; EEPROM(electrically erasable programmable read only memory) zawartość pojedynczejkomórkimoże byćzmienianazapomocąsygnałówelektrycznych; FLASH zawartość całegosektora może być zmienianazapomocąsygnałów elektrycznych. 5.1.2 Pamięci odostępieswobodnym Omawianew tym podrozdziale układyram(ang.randomaccess memory)sąpamięciami ulotnymi,gdyż tracą zawartość powyłączeniuzasilania.czasy zapisuiodczytuw tych pamięciachsąjednakowe.pamięci odostępie swobodnym są wytwarzane w dwóch technologiach: pamięcistatyczne(ang.sram); pamięcidynamiczne(ang.dram). NaustalonymetapierozwojutechnologiiukładySRAMsąszybszeodukładówDRAM,alemająwiększykoszt najedenbit.wynikatozfaktu,żewukładachsrampotrzeba6tranzystorów(orazpołączeniamiędzynimi)do zapamiętaniajednegobitu,aw układachdrampotrzebnyjest jedentranzystorijedenkondensator.dlatego układydram są stosowane do konstrukcji pamięci głównychkomputerów,aukłady SRAMdo konstrukcji pamięcipodręcznych.wukładachsramraz zapisnainformacjapozostaje niezmieniona aż dozapisania nowej informacjilubwyłączenia zasilania.natomiast w układachdramzapisanainformacjaulegasamozniszczeniu popewnymczasieiwkażdymprocesieodczytu.stądwukładachdraminformacjamusibyćcyklicznie odświeżana.współcześnie produkowane DRAMzawierająwbudowanyukładodświeżania. Wzrost szybkości pamięci DRAMnienadążazawzrostem szybkości procesorów.wymusza tostosowaniezaawansowanychrozwiązańukładowych: FPMDRAM(fastpagemodeDRAM),EDODRAM(extendeddataoutDRAM); 15 SDRAM(synchronousDRAM); VRAM(video RAM),SGRAM(synchronous graphisc RAM); DDRSDRAM(doubledatarateDRAM),DDR2SDRAM(doubledataratetwoSDRAM); RambusDRAM. 5.1.3 Pamięci podręczne Sposób odwzorowaniaadresów pamięci wyższego poziomu na adresy pamięci podręcznej: bezpośredni,1-skojarzeniowy; sekcyjno-skojarzeniowy,n-skojarzeniowy(n >1); skojarzeniowy,w pełni skojarzeniowy,asocjacyjny. Zjawisko migotaniapamięci podręcznej. Przyodwzorowaniuinnym niż bezpośrednie stosujesię następujące algorytmy zastępowania: LRU(leastrecentlyused,najdawniejostatnioużywany) zastępowanyjest tenblok,którypozostawał w pamięci podręcznejnajdłużejbez odwoływaniasię do niego; FIFO(firstinfirstout,pierwszywchodzipierwszywychodzi) zastępowanyjest tenblok,którypozostawał w pamięci podręcznejnajdłużej; LFU(leastfrequentlyused,najrzadziejużywany) zastępowany jest ten blok,doktóregobyłonajmniej odwołań; zastępowanyjestlosowowybranyblok. Sposóbuzgadniania zawartości pamięci wyższego poziomuz pamięcią podręczną podczas zapisu: zapis jednoczesny(ang.write through); zapis opóźniony(ang.copy/writeback); zapisinclusive; zapisexclusive. Algorytmyzapewnianiazgodnościpamięci podręcznych: MESI; MSI; MOSI; MOESI. Poszczególne literyw nazwie algorytmuoznaczajądopuszczalnystan,w którym może znaleźć się blok(linia) pamięcipodręcznej: M modified mam ważną kopię bloku,któryzostał zmodyfikowany; O owned jestem właścicielem, ponosząodpowiedzialność za wszystkie odwołania do tego bloku; E exclusive mam ważnąkopiębloku,którynie zostałzmodyfikowany; S shared wszyscy mająkopiętegobloku; I invalid blokzawieranieważne dane. 16
5.2 Pamięcimasowe Pamięcimasowe nazywane są też pamięciamizewnętrznymi.pamięć masowa ma większą pojemność idłuższy czas dostępuniż pamięć operacyjna.z punktuwidzenia procesorapamięć masowa jest urządzeniem wejściawyjścia.oznacza to,że procesornieposiadainstrukcjibezpośredniooperującychzawartościątejpamięci,tak jakzawartością pamięci operacyjnej.innąwspólnącechąpamięci masowych,odróżniającąje odpamięcioperacyjnych,jest operowanie nienapojedynczychbajtachanablokach,sektorach danychotypowym rozmiarze od512bajtów dokilkudziesięci kilobajtów.z uwaginastosowane technologiewyróżniamy obecnie następujące rodzajepamięcimasowych: magnetyczne: dyskowe(dyskitwarde,dyskietki)i taśmowe; optyczne: CompactDisc: CD ROM,CD R,CD RW; DigitalVideo/VersatileDisc:DVD ROM,DVD R,DVD RW,DVD+R,DVD+RW,DVD RAM; Blu-rayDisc:BD; HighDefinitionDVD:HDDVD; magnetyczno-optyczne. Ze względunasposóbdostępu,dopamięci zewnętrznych(masowych)należałobyteż zaliczyć kartypamięci FLASH(pendrive,flash drive, USB key),które są pamięciami półprzewodnikowymi. Budowadyskutwardego: dyskiwykonywane są z aluminiumlubszkłaipokrywanemateriałem magnetycznym; w jednejhermetycznejobudowie może być umieszczonychnawspólnejosiodjednegodokilku wirujących dysków; zapis iodczytwykonywanesąza pomocą zespoługłowic poruszającychsię w przybliżeniuwzdłuż promieniadysków; doprzechowywaniainformacjimoże być wykorzystanajednalubobiestronykażdegodysku,łącznaliczba wykorzystanychstronjestrównaliczbiegłowic; dane rozmieszczone są nakoncentrycznychścieżkach(cylindrach); każda ścieżka podzielona jest nasektory,liczba sektorów naścieżce może być stała lub zmienna; formatsektora: przerwa; identyfikacja synchronizacja,nrścieżki,nrsektora,korekcjabłędów; przerwa; dane synchronizacja,właściwe dane,korekcjabłędów; przerwa; czas dostęputosuma czasukoniecznegodoprzesunięciagłowicy,czyliznalezieniaodpowiedniejścieżki, czasu związanego z opóźnieniem obrotowym iczasu potrzebnegodoprzesłania danych; stosuje się przeplotdlaskróceniaczasów dostępu. Zapis iodczyt informacji na dyskachoptycznychwykonywany jest za pomocąlasera.wdyskachtypurominformacjazapisywanajestprzezwykonywaniezapomocąmatrycyzagłębień(ang.pit)wstosunkudootaczającej powierzchnimateriału(ang.land).w dyskachzapisywalnychwykorzystuje się zjawiskozmianywłasnościoptycznych nośnikawskuteknaświetlanialaserem o zmiennejmocy promieniowania.moc promieniowania używanego dozapisujest większa niż moc używanadoodczytu.wprowadzenie kolejnejtechnologiidysków optycznych wiązałosię z opracowaniem tanichlaserów o coraz krótszejdługościfalipromieniowania:780nm dlacd,650 nmdladvd,405nmdlabdihddvd.nawiększościdyskówoptycznychstosujesięjednąspiralnąścieżkę. Wyjątkiem jest np.dvd RAMposiadającyorganizację podobnądodysków twardych,czylikoncentryczne ścieżkipodzielonenasektoryojednakowym rozmiarze kątowym.stosowanie jednejspiralnejścieżkizwiększa gęstość zapisukosztem zwiększeniaczasudostępu. Odczyt informacjiz dysków magnetyczno-optycznych wykonywany jest za pomocą lasera.wykorzystuje się zjawiskozmiany własnościoptycznychośrodkamagnetycznegow zależności odkierunkunamagnesowania.do zapisuinformacjiwykorzystuje się przejście między ferromagnetykiem aparamagnetykiem w temperaurze Curie. Laserpodgrzewa lokalnie warstwę magnetyczną powyżej temperaturycurie,a głowica magnetyczna wytwarza odpowiedniepolemagnetyczne.obniżenietemperaturyponiżejpunktucuriepowodujeutrwalenieustawienia domenmagnetycznychw nośniku.nadyskachmagnetyczno-optycznychstosujesię organizację podobnądo stosowanejnadyskachtwardych. W pamięciachmasowych stosujesię następujące metodyzapisuinformacjioraz metody ichzapisywanialub odczytywania: CAV(ConstantAngularVelocity),stałaprędkość kątowa,stosowanaw dyskachtwardychoraz wielu komputerowychnapędach nośników optycznychdlazmniejszenia czasu dostępu; CLV(ConstantLinearVelocity),stała prędkość liniowa,zastosowananp.w pierwotnejspecyfikacjicd (1,2m/s); ZCLV(ZonedCLV),dyskpodzielonyjest nastrefyostałych prędkościachliniowych,zastosowananp. wspecyfikacjidvd; CAA(ConstantAngularAcceleration),odmiana CLV,w którejprędkość kątowazmienia się krokowoze stałym przyspieszeniem(opóźnieniem),stosowanaw odtwarzaczachcdw celuwyeliminowaniapewnych artefaktówpowodowanychprzezmetodęclv. Uwaga,w nośnikach optycznych należy wyraźnie odróżnić opisanąw specyfikacjimetodęzapisu(przechowywania)informacjinanośnikuodstosowanejprzez napędmetodyjejzapisulubodczytu.dyskcd,którego specyfikacja określa stałąprędkość liniowązapisu informacji,może być odczytywany(izapisywany)ze stałą prędkością kątową,cooznacza,że szybkość odczytu(zapisu)jestzmiennaw funkcjipromienia. 5.3 RAID Patrznp.[1]lub[9]. 6 Magistrale i interfejsy Składniki komputera komunikują się za pomocą magistral,nazywanychteż szynami (ang.bus).komputer możezawieraćwielemagistral,któremogąbyćpołączonehierarchicznie.magistralamożeskładaćsięzwielu równoległychlinii sygnałowych.każdąlinią mogą być przesyłane sygnałybinarne.domagistralimoże być podłączonychwiele urządzeń.tylkojednoz tychurządzeń może sterować liniamimagistraliw danym momencie. Liniemagistralowemogąbyć: dedykowane trwaleprzypisanedojednejfunkcji, multipleksowane funkcjajest określanaprzez stanliniisterujących multipleksowanie czasowe. Podłączenie wieluurządzeń do magistraliwymaga zastosowaniaarbitrażu,którymoże być: centralny, rozproszony. Ze względunasposóbkoordynacjiczasowejmagistrale dzielimyna: synchroniczne, asynchroniczne. 17 18 Urządzeniawchodzące w składsystemukomputerowego komunikują się za pomocąinterfejsów.pojęcie interfejsu bywa używane zamiennie z pojęciem łącza.należy rozróżniać pewną subtelną różnicę międzyłączema złączem. Interfejsy(łącza)dzielimyna: szeregowe, równoległe. Interfejsymogą być: dwupunktowe(ang.point-to-point) łącządwaurządzenia, wielopunktowe(ang.multi-point) łącząwiele urządzeń,są częstomagistralami. Trybypracyinterfejsów: simplex transmisjajednokierunkowa, halfduplex transmisjadwukierunkowanaprzemienna, fullduplex transmisjadwukierunkowajednoczesna. 6.1 Magistralasystemowa We współczesnychkomputerachmagistralasystemowa łączyprocesor(y)z pamięciągłówną isterownikami innychmagistral(np.pci).z każdym modelem procesorazwiązanajest specyficznadlaniegomagistralasystemowa.magistralasystemowazawiera: liniedanych, linie adresowe, linie sterowania. 6.2 PCI MagistralaPCI(PeripheralComponentInterconnect)wyparłapoprzednioużywanemagistrale ISA(Industry Standard Architecture),EISA(ExtendedISA),VLB(VESALocal Bus VideoElectronics Standards AssociationLocalBus) imca(microchannelarchitecture). SpecyfikacjaPCI określawymiaryzłącza,charakterystykielektryczne iprotokół.magistralapci zawiera m.in. następująceliniesygnałowe: systemowe CLK sygnałzegara RST reset adresów idanych AD multipleksowane linie adresów idanych C/BE multipleksowanelinie rozkazów magistralowychizezwoleniabajtów arbitrażu każdeurządzeniemawłasnąparętychlinii REQ żądanie dostępudomagistrali GNT przyznanie dostępudomagistrali sterowaniainterfejsem FRAME liniaaktywowanaprzez urządzenie,które uzyskało dostępdomagistrali istało się urządzeniem nadrzędnym,wskazujepoczątekikoniec transakcji 19 IRDY liniagotowościurządzenianadrzędnego,podczas odczytuwskazuje,że urządzenie jestgotowe przyjąćdane,apodczaszapisu,żedanenaliniachadsąważne TRDY liniagotowościurządzeniapodrzędnego,podczas odczytuwskazuje,że danenaliniachad są ważne,apodczas zapisu,że urządzenie jest gotowe przyjąć dane zgłaszania przerwań INTA,INTB, INTC, INTD SpecyfikacjaPCI określa: częstotliwość taktowania na 33MHz lub66mhz, szerokość szynydanychna32lub64bity, 32-bitowąprzestrzeńadresową, 32-bitowąprzestrzeńwejścia-wyjścia, 256bajtowąprzestrzeńkonfiguracyjną, zasilanie napięciem 3,3V lub5v. Integralną częścią protokołu PCI jest funkcjonalność plug and play.oprogramowanie rozpoznaje urządzenia podłączone do magistralipci i przydziela im obszar(y)adresów pamięci,obszar(y)adresów wejścia-wyjścia inumer przerwania.urządzenie PCI może też zawierać opcjonalnieromzawierający kod wykonywalny(ang. firmware). RozwójstandarduPCI: PCI-X specyfikuje częstotliwościtaktowania 133MHz; PCI-X 2.0specyfikuje częstotliwościtaktowania266 MHz i 533MHz,rozszerza przestrzeńkonfiguracyjną do4096bajtów,dodaje16-bitowąwersjęinterfejsuizasilanie1,5v; MiniPCItowersjaPCI2.2doużytkuw laptopach; CardbustowersjaPCMCIAspecyfikacjiPCI(33MHz i32-bity); AGP(Accelerated Graphics Port,AdvancedGraphics Port) interfejs dwupunktowydedykowanydokart graficznych; PCIExpress. 6.3 SCSI SCSI(SmallComputerSystem Interface) jestintefejsem służącym dopodłączania:dysków twardych,napędów taśmowych,skanerów,drukarek,napędów CD/DVDitp. FazypracymagistraliSCSI: wolna żadneurządzenie nie korzystaz magistrali, arbitraż przejęcie sterowaniamagistraląprzez jednourządzenie, wybór inicjatorwybieraadresata, powtórnywybór ponownepołączeniesięprzezadresatazinicjatoremwceluzakończeniauprzednio rozpoczętejprzez inicjatora lecz zawieszonejprzez adresata operacji, fazytransferuinformacji: rozkaz, dane, stan, komunikat. 20
SCSI umożliwiatransferasynchroniczny:wystawienie danychsygnalizowane jest sygnałem REQ,aodczytanie potwierdzane sygnałem ACK.W fazie transferudanychmożliwe jestwynegecjowanietrybusynchronicznego: wystawienie kolejnychsłów sygnalizowanejest sygnałem REQ,którypełnifunkcję sygnałuzegarowego,apotwierdzenieodczytaniamusipojawićsięwokreślonymczasie,aleniemusinastępowaćpokażdymsłowie. Magistrala(szyna)SCSI musibyć zakończonaz obustronterminatorami.terminatoryzapobiegająpowstawaniu odbićsygnałunakońculiniimagistralowej,co mogłobyprowadzić doprzekłamań transmisji.terminatorymogą byćpasywne(rezystory)lubaktywne(stabilizatornapięcia)imogąbyćzewnętrznelubwbudowanewurządzenie. RozwójstandarduSCSI: SCSI(SCSI-1) 8bitów,5MHz,5MB/s; FastSCSI(SCSI-2) 8bitów,10MHz,10MB/s; WideSCSI(SCSI-2) 16bitów,10MHz,20MB/s; UltraSCSI(SCSI-3) 8bitów,20MHz,20MB/s; UltraWideSCSI(SCSI-3) 16bitów,20MHz,40MB/s; Ultra-2SCSI 8bitów,40MHz,40MB/s; Ultra-2Wide SCSI 16bitów,40MHz,80MB/s; Ultra-160SCSI 16bitów,40MHzDDR,160MB/s; Ultra-320SCSI 16bitów,80MHzDDR,320MB/s; Ultra-640SCSI 16bitów,160MHzDDR,640MB/s. Przyszłość SCSI: iscsi umożliwiaużywanierozkazówscsiprzezsiećtcp/ip, SerialSCSI szeregowawersjainterfejsu. 6.4 ATA ATA(AdvancedTechnologyAttachment)jestinterfejsem służącym dopodłączaniapamięci masowych.inną spotykanąnazwątego standardujest IDE(IntegratedDrive Electronics).Pierwotnie interfejsbyłprzeznaczony tylkodowspółpracy z dyskami twardymi.rozszerzenie standardu nazywane ATAPI(ATAPacket Interface) obejmuje obsługę napędów dysków optycznych,napędów taśmowych iróżnego rodzajunapędów dyskietek odużejpojemności. Przyszłość ATA: SATA(SerialATA) całkowicie nowy,szeregowyinterfejsdourządzeńdyskowych. 6.5 RS-232 RS-232 jest jednym z najstarszych i nadaljeszcze używanych interfejsów szeregowych.pełna asynchroniczna wersjatego interfejsuspecyfikuje 9drutów(8 sygnałów imasa). Jest też wersja specyfikująca24 druty,mogąca pracowaćrównieżwtrybiesynchronicznyminazywanav.24.wnajprostszymprzypadkuwystaczyużycietylko 3drutówitakawersjazostanieomówiona.Te3drutyto: TxD(TransmittedData) danenadawane, RxD(ReceivedData) dane odbierane, GND(Ground) masa. Występujądwatypyurządzeń: 21 DTE(DataTerminalEquipment) np.komputer,terminal, DCE(DataCommunicationEquipment,DataCircuit-terminatingEquipment) np.modem. Oznaczeniasygnałów TD irdodnosząsię dourządzeniatypudte.wurządzeniudceliniatd służydo odbiorusygnałów,aliniarddonadawaniasygnałów.występująwięc dwatypykabli: prosty łączącyurządzeniedtezurządzeniemdce,liniatdwdtejestpołączonazliniątdwdce, aliniardwdtejestpołączonazliniąrdwdce; skrzyżowany łączący dwa urządzenia DTE,linia TD jednego urządzenia jest połączona z linią RD drugiegourządzenia. Sygnalizacja odbywa się za pomocąnapięcia owartości bezwzględnejod3 V do 25V w stosunku do masy. Typowe napięciasygnalizacyjne to:5v,10 V,12V,15 V.Używane są dwa poziomynapięcia: napięcie ujemne to sygnałmark,logiczna1,stanoff; napięciedodatnietosygnałspace,logiczne0,stanon. Transmisja odbywa się w następujący sposób: 1bitstartowy,space,czylilogiczne 0; 5do9bitów danych,najpierw najmniejznaczący(lsb); opcjonalnybitparzystości, łącznaliczbajedynekmoże być parzysta(biteven)lubnieparzysta(bitodd); 1bitlub1,5bitalub2bitystopu,mark,czylilogicznajedynka. Pomiędzy kolejnymi transmisjamimogąwystępować dowolnie długie przerwy.stosowane są prędkości transmisji od50bitów/s do76800 bitów/s,aczasem więcej. 6.6 USB USB(UniversalSerialBus) jestuniwersalnym interfejsem szeregowym.aktualnawersjaspecyfikacjito2.0. Interfejselektrycznyskładasięz4przewodów: Vbus napięcie zasilające(nominalnie +5 V), GND masa, D+,D paraprzewodów sygnalizacyjnych(skrętka),sygnalizacjaróżnicowa,naprzemienna(half duplex). Zdefiniowanesątrzyprędkościtransmisji: high-speed 480Mb/s, full-speed 12Mb/s, low-speed 1,5Mb/s. Bity kodowane są zapomocą kodunrzi(ang.nonreturnto zero inverted).jedynka reprezentowana jest przez brak zmianypoziomusygnału,zero reprezentowane jest przez zmianę(inwersję) poziomusygnału.wceluzapewnieniasynchronizacjistosowanejestnadziewaniebitami.pokażdychkolejnychsześciujedynkachwstawiane jestdodatkowezero.odebraniesiedmiukolejnychjedynektraktowanejestjakobłądtransmisji.danetransmitowane są w pakietach.początek pakietuwyznaczasekwencja synchronizacyjna(ang.sync pattern).koniec pakietu wyznaczasekwencjaeop(ang.endofpacket).bajty transmitowanesą w porządkulittle-endian,abity w obrębiebajtuw porządkuod najmłodszego(lsb)do najstarszego(msb). StandardUSBdefiniujedwatypyurządzeń: 22 hub, function. USBma topologię drzewa.takakonfiguracjawymuszanajest przez kształt złączy.rozgałęzienia tworzą urządzenia typu hub.liśćmi są urządzenia typu function.w korzeniu znajduje się host controller i root hub.maksymalna wysokość drzewawynosi7,włączając w tokorzeńiliście. UrządzeniapodłączanedoUSBmogąmiećwłasneautonomicznezasilaniealbomogąbyćzasilanezinterfejsu.Protokół USB przewiduje mechanizm zarządzania zasilaniem(ang.power management)obejmującynp. możliwość przejścia w stanuśpienia(ang.suspend)i powrotudonormalnej pracy(ang.resume). Podłączanie iodłączanie urządzeń(todo). USBumożliwiateż połączenie ze sobądwóch równorzędnych urządzeń,np.dwóchkomputerów.łączone urządzenia musząobsługiwać protokół hosta iurządzeniatypufunction(ang.dualroledevices). Donegocjacji, którezurządzeńpełniwdanymmomenciefunkcjęhosta,służyhostnegotiationprotocol. 6.7 Inneinterfejsyszeregowe W przyrodzie występująsetki różnego rodzaju interfejsów szeregowych.omówmy dwa obecnie dość powszechne. FireWiretonazwahandlowaopracowanegoprzez Appleinterfejsuszeregowego.Standardzostałopisanyw IEEE- 1394iIEEE-1394b.Wsprzęcie audiowystępująjegomodyfikacje oznaczane jakoi.linklubdv.szybkość transmisjiwynosiod100mb/sdo400mb/s(3200mb/swprzypadkuieee-1394b).interfejszawiera6przewodów: dwie skrętkidotransmisji w dwukierunkachoraz zasilanieimasę.interfejs umożliwiazasilanie podłączonych doniegourządzeń. DVI(DigitalVisualInterface)służydoprzesyłaniadanych z kartygraficznejdomonitora.występują trzy rodzajezłącz: DVI-D doprzesyłaniasygnałów cyfrowych, DVI-I doprzesyłaniasygnałów cyfrowych i analogowych, DVI-A doprzesyłaniatylkosygnałów analogowych(rzadkoużywane). Złącze DVI-D zawiera24końcówki,trzyrzędypo8sygnałów.interfejs zawiera6jednokierunkowych,szeregowychłączy cyfrowych.standardowowykorzystywanesą 3łącza, każde doprzesyłaniainformacjiojednej z barwpodstawowych.wwersjiduallinkdoprzesyłaniakażdegoz kolorów używasię dwóchinterfejsów, podwajając tym samym przepływność.dodatkowointerfejs zawierałącze umożliwiające przesyłanie informacji z monitora,np.w celuidentyfikacjimodelu i parametrów.złącze DVI-I posiadadodatkowo końcówkido przesyłaniasygnałów analogowych kompatybilnych z występującymiw używanym dawniejzłączud-sub(służącym wtedydopodłączania monitorów CRT).Sątosygnałytrzechkolorów(czerwony,zielony,niebieski)oraz sygnał synchronizacji poziomej(hsync,vsync przesyłanyjest na końcówce cyfrowej nr8). 7 Przykładyarchitektur Naliście Top500[8]publikowanejestdwarazydorokuzestawienie największychkomputerów naświecie. Omówimytenajpopularniejszeitenajbardziejegzotycznearchitekturyztejlisty.Opróczsuperkomputerów, mikroprocesorywystępująobecnie w prawie każdym urządzeniuelektrycznym.omówimyteż itakie architektury. 7.1 IA-32, x86-64, EM64T Wyczerpujące informacje można znaleźć nastronach internetowych[5]i[7]w następujących manualach: IA-32IntelArchitectureSoftwareDeveloper smanual Volume 1:Basic Architecture Volume 2A:InstructionSetReference,A-M 23 Volume 2B: InstructionSetReference, N-Z Volume 3A:System ProgrammingGuide,Part1 Volume3B:SystemProgrammingGuide,Part2 AMD64Architecture Programmer s Manual 7.2 Power TODO Volume 1,ApplicationProgramming Volume 2,System Programming Volume3,General-PurposeandSystemInstructions Volume 4,128-BitMediaInstructions Volume 5,64-BitMediaandx87Floating-PointInstructions 7.3 CrayX1E Więcejinformacjimożnaznaleźć nastronie internetowej[6]w następującychpozycjach: CrayX1EDatasheet CrayX1Series System Overview OptimizingApplicationsonCrayX1Series Systems CrayAssembly Language(CAL)forCraySystems Reference Manual FirmaCrayoferujeteż computeryobardziejtradycyjnejarchitekturze.dlaporównaniapatrz: CrayXT3 Datasheet CrayXD1Datasheet 7.4 Mikrokomputeryjednoukładowe TODO 7.5 Mikroprocesory do zastosowań specjalnych Procesorygraficzne isygnałowe TODO Literatura [1]W.Stallings,Organizacjaiarchitektura systemukomputerowego,zawierawiększość materiałuomawianego nawykładzie. [2] J. Baranowski,B. Kalinowski,Z.Nosal,Układyelektroniczne,częśćIII,układyisystemycyfrowe,pozycja nadprogramowa. [3]W.Traczyk,Układycyfrowe,podstawyteoretyczneimetodysyntezy,pozycjanadprogramowa. [4]R.Goczyński,M.Tuszyński,Mikroprocesory80286,80386 ii486,opisujeniecoarchaiczneprocesory,ale stanowidobre wprowadzenie dopoznaniaarchitekturyia-32. [5] AMD,http://www.amd.com, zawierawyczerpujące informacje natemat procesorów firmyamd. [6] Cray,http://www.cray.com, zawierawyczerpujące informacje natemat komputerów firmycray. 24
[7] Intel,http://www.intel.com, zawiera wyczerpujące informacje natematprocesorów firmy Intel. [8]ListaTop500,http://www.top500.org,publikuje dane onajwiększychkomputerachnaświecie. [9]Wikipedia,http://en.wikipedia.org,całkiem dużoinformacji,czasem dość ogólnych,ale przystępnie podanych. 25