Architektura Pentium Potok P5 i P6. Struktura potoku Pentium / Pentium MMX. Struktura potoku w architekturze P6

Wielkość: px
Rozpocząć pokaz od strony:

Download "Architektura Pentium Potok P5 i P6. Struktura potoku Pentium / Pentium MMX. Struktura potoku w architekturze P6"

Transkrypt

1 Architektura Pentium Potok P5 i P6 Struktura potoku Pentium / Pentium MMX BTB0 BTB1 IFU1 IFU2 ID0 ID1 RAT ROB R RS Port 4 Port 2 Port 3 Port 1 ROB W RRF Port 0 Struktura potoku w architekturze P TCNxtIP TC Fetch Dr All Rename Que Sch Disp RF EX Flg BrC Dr Cykle potoku Pentium 4 Janusz Biernat, AKII-Pentium-PowerPC (red), 16 czerwca 2010 PPC 1

2 $ &(' &%,+,+ Architektura Pentium Organizacja Pentium III! ) cache! "# # # # ) * # -CBA9=@?>=0<; 874/ /.- :: 9 HJ J% HJ J K $ K $ & # H ' H H( K % J L I& K FG& & M! + DN O E * FG& # store DE! + DJ EO P # Q # R ) cache cache Janusz Biernat, AKII-Pentium-PowerPC (red), 16 czerwca 2010 PPC 2

3 !" CJI! Architektura Pentium Organizacja Pentium IV #"! $ K J ONG Q R A@? 6% 45 2( 321=><< 0/,'.%-*,+(*)('&% ;0:9+%,&9'8.( 7 µ trace cache IJ JIV P P Q cache GTTU# G H BC B#F C B#F CSB#F CSB#F C D D D E # add store move mul CJI V bypass network K cache L M M prognoza pobrania Janusz Biernat, AKII-Pentium-PowerPC (red), 16 czerwca 2010 PPC 3

4 9: 87 4! Kontekst procesora (IA-32) Architektura Pentium Kontekst procesora opis bie cego stanu procesu (segment TSS) zawarto rejestrów roboczych, rejestrów stanu i rejestrów wyj tków [wska nik kontekstu pami ci - wska nik LDTR do tablicy LDT] wska niki dost pnych systemowych struktur danych (stosy 4 poziomów) wska nik powi zania z procesem wywołuj cym (LINK) dane specyficzne (np. tablica zezwole we/wy) pamięć 6 5!! " " " 3120 /. (,- + )* $( &' $% # /. <-#,#=+<;-')+ K N Q K N Q K Janusz Biernat, AKII-Pentium-PowerPC (red), 16 czerwca 2010 PPC 4

5 Kontekst pami ci Kontekst pami ci lokalny (LM) i globalny (GM) Aktualizacja kontekstu pami ci tylko w trybie nadzoru Architektura Pentium Kontekst pami ci (memory context) w tablicy opisów (deskryptorów) pami ci adresy i rozmiary bloków pami ci (segmentów) procesu i reguły dost pu do bloków pami ci procesu (deskryptory w LDT lub GDT) obecno bloków pami ci procesu w pami ci głównej PT PCB (K) PCB (N) PCB (Q) Kontekst K Kontekst N Kontekst Q dane specyficzne [ kontekst pami ci] rejestry robocze rejestry stanu CPU(K) [ struktury systemowe] [ powi zanie] adres wirtualny (K) LM(K) adres fizyczny bloku (1) reguły dost pu (rozmiar bloku) adres fizyczny bloku (n) reguły dost pu (rozmiar bloku) Janusz Biernat, AKII-Pentium-PowerPC (red), 16 czerwca 2010 PPC 5

6 Architektura Pentium Segment TSS I/O permissions LDT 0000 GS 0000 FS 0000 DS 0000 SS 0000 CS 0000 ES EDI ESI EBP ESP EBX EDX ECX EAX EFLAGS EIP CR SS (2) ESP (2) 0000 SS (1) ESP (1) 0000 SS (0) ESP (0) 0000 LINK Janusz Biernat, AKII-Pentium-PowerPC (red), 16 czerwca 2010 PPC 6

7 Architektura Pentium Ochrona danych Adres bazowy segmentu (A ) G D/B 0 AVL Rozmiar seg. (L ) P DPL DPL S t t t t/a Adres bazowy segmentu (A ) Adres bazowy segmentu (A15...0) Rozmiar segmentu (L15...0) t t t a segment zwykły (S = 1) t t t t segment systemowy (S = 0) 0h/8h segment danych, RWX = (r ) 0h, 8h nieokreślony 1h/9h segment danych, RWX = (r w ) 2h tablica LDT 2h/Ah segment danych (stos), RWX = (r ) 9h segment TSS dostępny (IA-32) 3h/Bh segment danych (stos), RWX = (r w ) 0Bh segment TSS zajęty (IA-32) 4h/Ch segment kodu, RWX = ( x) 9h (1h) segment TSS dostępny (80286) 5h/Dh segment kodu, RWX = (r x) 0Bh (3h) segment TSS zajęty (80286) 6h/Eh segment kodu zgodny, RWX = ( x) 4h...7h furtka * 7h/Fh segment kodu zgodny, RWX = (r x) 0Ch...0Fh furtka IA-32 ( ) * Struktura deskryptora pami ci i deskryptora systemowego: P bit obecno ci, DPL poziom uprzywilejowania deskryptora, S typ deskryptora, G ziarnisto adresu (1 rozmiar segmentu L podany w stronach 4 kb, 0 rozmiar L podany w bajtach), AVL dost pny, a bit u ywalno ci, D/B domniemany rozmiar adresu i operandu (1 32b, 0 16b) (format furtki pokazuje rys. A.7) selektor Nr deskryptora (13b) S RPL Janusz Biernat, AKII-Pentium-PowerPC (red), 16 czerwca 2010 PPC 7

8 Architektura Pentium Ochrona danych Przemieszczenie (d ) P DPL DPL S t 1 t a Liczba słów przekazywanych Selektor (wirtualny) Przemieszczenie (d15...0) t 1 t a deskryptor furtki (S = 0) t 0 t a segment danych kontekstowych 5h furtka zadania (task gate) 0h, 8h nieokreślony 0Ch (4h) furtka wywołania (cal gate) 2h tablica LDT 0Eh (6h) furtka przerwania (interrupt gate) 9h (1h) segment TSS dostępny 0Fh (7h) furtka potrzasku (trap gate) 0Bh (3h) segment TSS zajęty Struktura systemowego deskryptora furtki (w nawiasach kod dla trybu wirtualnego 80286) Janusz Biernat, AKII-Pentium-PowerPC (red), 16 czerwca 2010 PPC 8

9 Architektura Pentium Ochrona danych pamięć główna przełączenie zadania wywołanie zewn. CALL FAR JMP FAR LDT deskryptor furtki GDT (LDT) CALL FAR segment kodu adres selektor CS...x0bb...x1bb atrybuty selektor adres deskryptor pamięci atrybuty adres bazowy JMP FAR TSS wywołanie wewn. CALL FAR JMP FAR selektorcs adres deskryptor pamięci atrybuty adres bazowy segment pamięci Rys. A.1. U ycie furtki i deskryptora LDT deskryptory pami ci, furtki wywołania GDT furtki zadania, deskryptory TSS IDT furtki przerwania Janusz Biernat, AKII-Pentium-PowerPC (red), 16 czerwca 2010 PPC 9

10 Ochrona danych poziomy ochrony Architektura Pentium Każdy rozkaz programu jest wykonywany na określonym poziomie ochrony, zwanym bieżącym poziomem uprawnień CPL (Current Privilege Level). Poziom ten może być zmieniony tylko przez zmianę selektora CS, co jest możliwe wyłącznie przez wykonanie skoku lub wywołania międzysegmentowego. Kod wymaganego poziomu uprawnień (Requested Privilege Level, RPL) jest zapisany na dwóch bitach selektora CS. Informacja o bieżącym poziomie uprzywilejowania jest porównywana z poziomem uprzywilejowania deskryptora zapisanym w polu DPL (Descriptor Privilege Level). Jeśli wskazywany jest segment pamięci, wtedy pole DPL określa minimalny poziom uprzywilejowania, uprawniający do dostępu do tego segmentu. Jeśli wskazywana jest furtka, to pole DPL wskazuje najwyższy dozwolony poziom uprzywilejowania, uprawniający do użycia tej furtki (aby zadania bardziej uprzywilejowane nie mogły korzystać z usług niższego poziomu). W takim przypadku zostają zignorowane bity RPL selektora docelowego, a procedura może być wykonana, jeśli poziom ochrony zapisany w polu DPL deskryptora segmentu kodu tej procedury nie jest niższy niż bieżący poziom uprzywilejowania. Dostęp do pamięci jest zawsze realizowany: przez deskryptor pamięci do danych lub kodu własnego przez furtkę (zadanie, podprogram, przerwanie, pułapka) do kodu innego zadania lub jego udostępnionej części (procedury). Podczas dostępu do pamięci należy porównać poziom DPL ze wskaźnikami CPL oraz RPL. Zasady zmiany poziomów ochrony są następujące: 1. Można wykonać procedurę o wyższym poziomie uprzywilejowania nie można wykonać procedury mniej uprzywilejowanej (na niższym poziomie ochrony). Jeśli zadanie wykonywane na poziomie RPL korzysta z usługi na poziomie CPL to pole rpl selektora segmentu danych powinno zostać osłabione istotny jest słabszy poziom. 2. Można uzyskać dostęp do danych na niższym poziomie ochrony nie można uzyskać dostępu do danych bardziej uprzywilejowanych. Instrukcje we i wy mogą być wykonane tylko przez program, którego CPL jest nie niższy od wskazanego w polu IOPL (może być inne dla każdego zadania) lub tablicy zezwoleń we/wy (część opisu w segmencie TSS). Janusz Biernat, AKII-Pentium-PowerPC (red), 16 czerwca 2010 PPC 10

11 Stronicowanie 1 Architektura Pentium W architekturze IA-32 stronicowanie jest wtórnym mechanizmem adresowania wirtualnego. Segmentacja może być wyłączona tylko pozornie przez ustalenie dla każdego segmentu zerowego adresu bazowego i maksymalnego rozmiaru. Metoda ta jest określana jako płaski model pamięci (flat memory). Stronicowanie zostaje włączone po ustawieniu bitu 31 (PG) w rejestrze sterującym CR0. Rozmiar strony może być standardowy (4kB) lub rozszerzony (4MB). Dodatkowo ustawienie bitu rozszerzenia adresu fizycznego w rejestrze CR4 (b 5=PAE Physical Address Extension) umożliwia użycie stron o rozmiarze 2MB. W podstawowym trybie 10 najwyższych bitów adresu liniowego identyfikuje opis w katalogu, wskazujący aktywną tablicę stron, a 10 kolejnych aktualny opis strony w tablicy stron, a pozostałe 12 adres na stronie. W trybie rozszerzonym najwyższych 10 bitów adresu liniowego wskazuje opis strony w katalogu, który pełni teraz rolę tablicy stron, a pozostałe adres na stronie. Każdy opis strony jest 32-bitowy i zawiera 20- lub 10-bitowy numer strony fizycznej. Lokalizacja katalogu stron jest zapisana w rejestrze sterującym CR3. Deskryptor tablicy stron w katalogu oraz strony w tablicy mają taką samą strukturę. Najniższe 8 bitów deskryptora zawiera informacje o sposobie dostępu do strony (rys A.9), wyższe bity ( /35) są numerem (adresem) strony fizycznej. Dla strony można określić poziom uprzywilejowania (U/S=1 poziom użytkownika, odpowiadający najniższemu poziomowi uprzywilejowania w segmentacji, lub systemowy wszystkie pozostałe) (zarezerwowane) numer strony numer strony D A PCD PWT U/S R/W P Rys. A.2. Struktura 32/64-bitowego deskryptora strony Janusz Biernat, AKII-Pentium-PowerPC (red), 16 czerwca 2010 PPC 11

12 Stronicowanie Architektura Pentium W obszarze strony można lokalnie wyłączyć (PCD=1) użycie wewnętrznej pamięci podręcznej oraz ustalić tryb współpracy z zewnętrzną pamięcią podręczną (PWT). Bit D równy 1 wskazuje, że w obszarze strony dokonano zapisu, P jest bitem obecności strony w pamięci głównej. W opcji z rozszerzonym 36-bitowym adresem fizycznym 2 najwyższe bity adresu logicznego służą do wyboru jednego z 4 katalogów. Lokalizacja opisu tych katalogów jest wskazana w rejestrze sterującym CR3. W trybie podstawowym kolejnych 9 bitów wskazuje deskryptor w katalogu stron lokalizujący aktywną tablicę stron, następnych 9 identyfikuje w tej tablicy 64-bitowy deskryptor, który zawiera 24-bitowy numer strony standardowej. W trybie rozszerzonym 2 bity adresu wskazują katalog, zaś 9 kolejnych 64-bitowy deskryptor strony w tablicy stron. Strona ma tu rozmiar 2MB. 2 deskryptor wsk 9 katalog tablica strona 9 12L (21L) deskryptor deskryptor (strona 4kB) dana 32L CR3 (32b) 24H strona 4kB 24H strona 4kB 24H (15H) 2 deskryptor wsk 9 katalog deskryptor strona deskryptor 21L (strona 2MB) dana 32L CR3 (32b) 24H strona 4kB 15H strona 4kB Rys. A.3. Stronicowanie w trybie rozszerzonych adresów fizycznych Janusz Biernat, AKII-Pentium-PowerPC (red), 16 czerwca 2010 PPC 12

13 Architektura PowerPC Architektura podstawowa Jednostka rozgałęzień BPU Jednostka zmiennoprzecinkowa FPU dane adres Jednostka stałoprzecinkowa IU adres Pamięć podręczna kodu Pamięć podręczna danych Bufor DMA Układ sprzęgu z magistralą Janusz Biernat, AKII-Pentium-PowerPC (red), 16 czerwca 2010 PPC a

14 Architektura cechy Architektura PowerPC PowerPC zdefiniowano jako otwartą architekturę 64-bitową wszelkie adresy są 64-bitowe, argumenty obliczeń stałoprzecinkowych są także 64-bitowe. Procesor może jednak działać także w trybie 32-bitowym, a procesor 64-bitowy jest w stanie wykonać bezpośrednio kod wytworzony dla architektury 32-bitowej (przełączanie trybów jest dynamiczne). Otwartość architektury zapewnia przenośność programów i przejrzyste, spójne rozszerzenia 32-bitowej listy rozkazów dla wersji 64-bitowych. Jednym z założeń projektu PowerPC była optymalizacja architektury ze względu na łatwość tworzenia kodu wynikowego przez kompilatory. Cechami ułatwiającymi proces kompilacji i jego optymalizację są w szczególności: powiązania typu zmiennej z postacią kodu wynikowego stały rozmiaru kodu rozkazu, duża liczba rejestrów ułatwiająca tworzenie lokalnych powiązań zmiennych bezpieczne przechowywanie warunków dla rozkazów warunkowych. Zgodnie z postulatami koncepcji RISC, wszystkie rozkazy procesora o architekturze PowerPC, oprócz komunikacji z pamięcią (load i store), używają jako argumentów rejestrów procesora. Swobodny dostęp do rejestrów oraz trójoperandowe działania (wskazanie argumentów i wyniku w osobnych rejestrach) pozwalają wyeliminować kopiowanie rejestrów, a ich duża liczba (32 w jednostce stałoprzecinkowej oraz 32 zmiennoprzecinkowe) umożliwia ograniczenie komunikacji z pamięcią. Janusz Biernat, AKII-Pentium-PowerPC (red), 16 czerwca 2010 PPC b

15 Spójno pami ci Architektura PowerPC W architekturze POWER procesor nie testuje spójności danych w buforze pamięci podręcznej w części związanej z dostępem we/wy lub zawierającej kod (procesory POWER komunikują się z pamięcią główną tylko przez pamięć podręczną z jednym wyjątkiem, którym jest osobna przestrzeń, sygnalizowana przez ustawienie bitu T=1, interpretowana jako programowane we/wy). Testowanie musi być więc tam realizowane programowo. W PowerPC usunięto polecenia realizujące blokadę i śledzenie dostępu do danych, ponieważ mogłyby one utrudniać zarządzanie pamięcią. Model pamięci PowerPC jest też bardziej elastyczny niż w architekturze POWER. Atrybuty są kojarzone z każdą stroną przestrzeni wirtualnej, co umożliwia programową kontrolę rodzaju dostępu. Pozwala to na realizację spekulacyjnego trybu dostępu do każdej strony, chyba że ma ona przypisane cechy, które uniemożliwiają taka obsługę, na przykład przypisany atrybut we/wy. Pozostałe atrybuty wskazują, czy strona może być buforowana w cache i jaki jest tryb aktualizacji stron buforowanych. Pozwala to na jednolite odwzorowanie przestrzeni adresowej we/wy oraz przestrzeni pamięci (bez logicznej separacji tych przestrzeni). Ponieważ specyfikacja architektury nie przewiduje sprzętowego wspomagania protokołu MESI, ani żadnego innego, więc spójność pamięci podręcznej musi być kontrolowana programowo. Służą do tego nowe polecenia zarządzania buforami cache (sync, icbi, dcbt/dcbtst, dcbf, dcba, dcbi, dcbz). Instrukcja sync gwarantuje, że zanim zostanie podjęty następny rozkaz, wszystkie zainicjowane przez program dostępy do pamięci zostaną wykonane z zachowaniem wymagań spójności, uwzględniających działania innych procesorów w lokacjach docelowych. Instrukcji sync można też użyć w programie, aby przed zdjęciem blokady obszaru współdzielonych struktur danych upewnić się, że aktualizacja danych jest widziana przez inne procesory. Wykonanie instrukcji sync gwarantuje, że zakończyły działanie instrukcje zarządzające buforami cache (icbi, dcbz, dcbst, dcbf, dcba, dcbi) oraz instrukcja unieważniania bufora TLB. W celu wspomagania kontroli dostępu do współdzielonych bloków pamięci i ułatwienia implementacji mechanizmu semafora, w architekturze PowerPC zaprojektowano parę instrukcji komunikacji z pamięcią: czytaj i modyfikuj pamięć (lwarx/ldarx load word/ double word and reserve indexed), kopiuje zmienną kluczującą z pamięci do rejestru, zapisując adres tej zmiennej w specjalnym rejestrze rezerwacji. Wykonując warunkowy rozkaz zapisu stwcx/stdcx (store word/ double word conditional indexed procesor sprawdza, czy rezerwacja jest aktualna (zgodny adres). Jeśli tak, to zapis jest wykonany, a na pozycji EQ w polu CR0 jest wpisane 1. Jeśli rezerwację anulowano zostaje wpisane EQ=0. Ponieważ instrukcje lwarx i stwcx nie naruszają bitowej kompatybilności aplikacji POWER (można je nadal wykonywać bez użycia tych instrukcji), specyfikacja wymaga ich wpasowania na granicy słowa (word-aligned). Wynik niewpasowanego dostępu jest nieokreślony, więc kontrola wpasowania musi być programowa. Przyjęty słabo spójny model pamięci ułatwia niekolejne wykonanie rozkazów. Jeżeli dostęp do kolejnych lokacji musi być uporządkowany, na przykład dostęp do urządzeń we/wy, należy go wymusić instrukcją eieio (enforce in-order execution of I/O). Janusz Biernat, AKII-Pentium-PowerPC (red), 16 czerwca 2010 PPC c

16 Architektura PowerPC Lista rozkazów Wykonanie rozkazów arytmetycznych jest kontrolowane programowo. Stosownie do ustalonego typu argumentów zostaje dobrany wariant rozkazu stałoprzecinkowego a zapis cech wyniku w rejestrze warunków może być zablokowany. Syndromy wyniku działania arytmetycznego mogą być zapisane w rejestrach wyjątków, jeśli nie jest to zablokowane. Działanie stałoprzecinkowe może spowodować aktualizację w rejestrze XER bitu przeniesienia CA lub bitu nadmiaru OV. Bit nadmiaru skumulowanego SO po ustawieniu może być skasowany tylko w wyniku wykonania rozkazu sterującego. Wyjątki dla działań zmiennoprzecinkowych są notowane przez ustawienie bitów w rejestrze FPSCR, który jednocześnie jest rejestrem stanu jednostki FPU. Notowane są takie wyjątki jak: OX (nadmiar), UX (niedomiar), ZX (dzielenie przez zero), XX (błąd zaokrąglenia) oraz VX (błąd działania). Wyjątki te mogą być blokowane bitami masek (OE, UE, ZE, XE, VE). Bit VX jest sumą logiczną bitów wskazujących jedno z błędnych działań: VXSNAN (SNaN), VXISI ( ),VXIDI ( / ),VXZDZ (0/0), VXIMZ ( 0), VXVC (porównanie z NaN), VXCVI (błąd konwersji) oraz niedostępne w PowerPC 601 VXSOFT (inne błędne działanie) i VXSQRT (błąd liczenia pierwiastka kwadratowego). Porównanie Podstawowym sposobem wytwarzania warunku dla rozkazów warunkowych (rozgałęzień, pułapek) jest porównanie. Wariant rozkazu porównania jest dobierany odpowiednio do typu porównywanych argumentów. Porównanie arytmetyczne cmp odnosi się do liczb całkowitych, porównanie logiczne cmpl dotyczy liczb naturalnych (unsigned). Porównanie liczb zmiennoprzecinkowych może być standardowe fcmp lub rozszerzone fcmpu z wymuszaną sygnalizacją niedozwolonego działania. Wynik porównania jest zapisywany w polu rejestru kodów warunkowych CR w postaci bitów wskazujących wystąpienie relacji >, = lub <. Czwarty bit pola w porównaniu stałoprzecinkowym oznacza wystąpienie nadmiaru sumarycznego, a w porównaniu zmiennoprzecinkowym wskazuje niewykonalność operacji (jeden z argumentów jest nie-liczbą). Warunek może być też wytworzony automatycznie w polu CR0 jako efekt porównania wyniku stałoprzecinkowego działania arytmetycznego do zera. Działanie zmiennoprzecinkowe, inne niż porównanie, wytwarza w polu CR1 kody wyjątków. A.1.1. Działania stałoprzecinkowe Argumenty działań stałoprzecinkowych i zmienne składowe adresu efektywnego są umieszczane w rejestrach ogólnego przeznaczenia GPR0 GPR31. Jedna składowa adresu lub jeden z argumentów działania może być stałą natychmiastową. Janusz Biernat, AKII-Pentium-PowerPC (red), 16 czerwca 2010 PPC d

17 Architektura PowerPC Ponieważ wszystkie stałe są kodowane w formie skróconej, więc potrzebne są też rozkazy rozszerzania kodu na pełny rozmiar słowa. Są dwa sposoby rozszerzania: znakowe (odpowiada interpretacji kodu stałej jako dwójkowego uzupełnieniowego) oraz zerami (odpowiada naturalnej interpretacji kodu). W architekturze pomostowej PowerPC 601, oprócz rozkazów realizujących cztery podstawowe działania arytmetyczne, lista zawiera też usunięte ze specyfikacji rozkazy obliczania wartości bezwzględnej i odejmowania z nasycaniem (difference or zero). Dodawanie i odejmowanie W architekturze PowerPC jest wiele sposobów wykonania podstawowych działań arytmetycznych. Wariant wykonania jest zapisany w polu rozszerzenia kodu (rys. 3.5) i znajduje wyraz w mnemonice rozkazu. Podstawowy mnemonik rozkazu dodaj (add) lub odejmij (subf) jest uzupełniony symbolami wskazującymi sposób wykonania: (aktualizuj CR0 najniższy bit kodu b31(=rc)=1, Rc record), o (aktualizuj bitów OV, SO w rejestrze XER), c (aktualizuj bitu CA rejestrze XER), co (aktualizuj bitów CA, OV, SO w rejestrze XER), i (użyj stałej natychmiastowej immediate), is (dodaj stałą i sumę wpisz do górnej części rejestru ( 2 16 ) immediate and shift), e (uwzględnij jako argument bit CA z rejestru XER i ustaw CA), me (użyj jako argumenty 1 oraz CA z rejestru XER i ustaw CA), ze (użyj jako argumenty 0 oraz CA z rejestru XER i ustaw CA). Wariant rozkazu jest dobierany stosownie do typu danych. Jeśli argumenty są liczbami dodatnimi, to odpowiednie są rozkazy aktualizujące bit CA ( c), jeśli są liczbami ze znakiem, to odpowiednie są rozkazy aktualizujące bity OV i SO ( o). Jeśli realizowana jest arytmetyka rozszerzonej precyzji, właściwe są rozkazy używające jako dodatkowy argument zapamietany bit przeniesienia CA ( e). Rozkazy odejmowania od zera subfze umożliwiają zmianę znaku (uzupełnianie) argumentów całkowitych dowolnego rozmiaru, a rozkazy dodawania do zera addze ułatwiają korektę wyniku częściowego przeniesieniem z poprzedniej pozycji. Rozkazy używające argumentu 1 są użyteczne w realizacji arytmetyki resztowej. Mno enie i dzielenie Dostępne są dwa sposoby tworzenia iloczynu: mullw zapis do rejestru dolnej części iloczynu i mulhw zapis do rejestru górnej części iloczynu. Jakkolwiek wynik dolnego mnożenia argumentów całkowitych (signed) i naturalnych (unsigned) jest taki sam, Janusz Biernat, AKII-Pentium-PowerPC (red), 16 czerwca 2010 PPC e

18 Architektura PowerPC to sygnalizowany jest nadmiar, jeśli ignorowane górne bity pełnego iloczynu nie są bitami rozszerzenia arytmetycznego. Typ mnożenia górnego musi być dostosowany do typu argumentów (odpowiada mnożeniu ułamków). Standardowe dzielenie jest dzieleniem krótkim (divs), gdzie rozmiary dzielnej, dzielnika i ilorazu są jednakowe (wszystkie argumenty są w rejestrach stałoprzecinkowych GPR#). W architekturze pomostowej PPC 601 (tak jak w POWER) w mnożeniu całkowitym pełnym (liczby znakowane) górna część iloczynu jest wpisana do specjalnego rejestru MQ. Jeśli rejestr MQ nie zawiera tylko bitów rozszerzenia znakowego, następuje sygnalizacja przekroczenia zakresu (ustawienie bitu OV w rejestrze XER). Dzielenie może być też wykonane z użyciem MQ zawiera on wtedy górne bity dzielnej. A.1.2. Działania zmiennoprzecinkowe Podstawowym formatem zmiennoprzecinkowym w architekturze PowerPC jest format podwójnej precyzji (double IEEE 754). Implementowane są proste działania arytmetyczne, w wersji podstawowej (dodawanie, odejmowanie, mnożenie, mnożenie akumulacyjne z dodawaniem/odejmowaniem, porównanie, dzielenie) lub rozszerzonej (obliczanie odwrotności liczby, obliczanie pierwiastka kwadratowego, oszacowanie odwrotności pierwiastka) z użyciem sprzętowej wersji metody Newtona-Raphsona. Inne działania są emulowane programowo. Ograniczenie zakresu argumentów do pojedynczej precyzji nie daje przyśpieszenia wykonania, bo argumenty są rozszerzane do podwójnej precyzji (rys. 3.12). Sposób zaokrąglania wyniku zmiennoprzecinkowego jest zgodny ze standardem IEEE 754 i może być wybrany przez wpisanie kodu w polu RN rejestru FPSCR. Tryb domniemany to zaokrąglanie do najbliższej (kod 00). Kod 01 wymusza obcinanie, zaś kody 1X są używane w realizacji arytmetyki przedziałowej. Jednostki zmiennoprzecinkowe mogą też wykonywać działania w innym trybie niż ustalony w standardzie IEEE 754, jeśli zostanie ustawiony bit NI w rejestrze FPSCR. A.1.3. Rozgałęzienia i pułapki Podstawą decyzji o rozgałęzieniu jest warunek zapisany we wskazanym polu rejestru CR. Ponieważ użycie warunku może być w ten sposób odsunięte w czasie od jego wytworzenia, więc dzięki temu znacznie spada ryzyko przestoju potoku wskutek błędnej prognozy rozgałęzień. Prognozy wymagają tylko rozgałęzienia odnoszące się do pól aktualizowanych bezpośrednio przed ich użyciem. Rozgałęzienie warunkowe może też być odniesione do rejestru licznikowego CTR. Janusz Biernat, AKII-Pentium-PowerPC (red), 16 czerwca 2010 PPC f

19 Architektura PowerPC Dostępne są też rozkazy rozgałęzień bezwarunkowych, zwykłych oraz ze śladem (odpowiadające wywołaniu procedury). Śladem jest adres powrotu umieszczany w rejestrze powiązań (LR, link register). Jego zawartość jest argumentem specjalnego rozkazu rozgałęzienia (odpowiadającego powrotowi z procedury). Specyficzną formą rozgałęzień są pułapki programowe. Jeśli podany warunek nie jest spełniony, to rozkaz taki jest ignorowany ( nic nie wykonuj ), w przeciwnym razie następuje rozgałęzienie ze śladem. Procedura obsługi powinna dokładnie opisywać rozpoznane przyczyny wystąpienia sytuacji nadzwyczajnej, która w przetestowanych programach jest traktowana jako błąd wykonania. A.1.4. Działania logiczne i transformacje kodu Repertuar działań logicznych, oprócz zwykle implementowanych funkcji AND, OR i XOR, obejmuje też funkcje NAND, NOR i EQV oraz iloczyn i sumę logiczną z drugim argumentem zanegowanym ANDC oraz ORC. Bardzo rozbudowany jest zbiór rozkazów przesunięć. Przesunięcia cykliczne mogą być powiązane z maskowaniem bitów maska jest uporządkowanym (0 01 1) lub bitonicznym ( ) ciągiem bitów, a jej ustawienie jest argumentem rozkazu. Przesunięcia zwykłe, arytmetyczne (liczby ze znakiem) i logiczne (liczby bez znaku), odpowiadają skalowaniu przez potęgę dwójki. W architekturze pomostowej PowerPC 601 są implementowane także, usunięte ze standardowej specyfikacji PowerPC, tzw. przesunięcia długie (long), których argument jest złożeniem rejestru MQ i dowolnego rejestru stałoprzecinkowego GPR#. A.1.5. Kopiowanie do i z pamięci Repertuar rozkazów kopiowania do pamięci (store) oraz kopiowania z pamięci do rejestru (load) jest bardzo rozbudowany i obejmuje nie tylko transfery danych pełnego rozmiaru (32 lub 64 bity), lecz także kopiowanie argumentów skróconych. Podczas kopiowania argumentu niepełnego rozmiaru (bajtu, dwubajtu/ półsłowa) do pamięci zawartość wyższych bitów rejestru jest pomijana. Podczas kopiowania do rejestru, po skopiowaniu każdy bit rejestru musi mieć ustaloną wartość. Jest więc konieczne rozszerzanie argumentu: znakowe (odpowiadające liczbom całkowitym) lub zerami (odpowiadające liczbom dodatnie). Dostępne są także rozkazy kopiowania łańcucha słów z pamięci do bloku rejestrów (zestaw rejestrów o kolejnych numerach) lub z bloku rejestrów do pamięci oraz rozkazy kopiowania słów ze zmianą konwencji kolejności bajtów w słowie (BE na LE). Podczas kopiowania zmiennoprzecinkowego do rejestru argumenty pojedynczej precyzji są rozszerzane do podwójnej precyzji. Podczas kopiowania z rejestru, jeśli ma być wykonana konwersja na format pojedynczej precyzji, może wystąpić nadmiar lub niedomiar niesygnalizowany. Janusz Biernat, AKII-Pentium-PowerPC (red), 16 czerwca 2010 PPC g

20 AltiVec Architektura PowerPC Lista rozkazów nowszych generacji architektury PowerPC została rozbudowana o działania wektorowe, analogiczne do rozszerzeń MMX/SSE w architekturze Pentium. Działania te wykonuje jednostka AltiVec. Aby nie blokować potoku, jednostka ta nie generuje wyjątków, a obsługa problemów zmiennoprzecinkowych jest domniemana. Struktura kodu rozkazów jednostki AltiVec jest taka sama jak w architekturze podstawowej, a argumenty rozkazów, oprócz komunikacji z pamięcią, są umieszczone w rejestrach 128-bitowych v0...v31. Łańcuch 128 bitów umieszczonych w rejestrze, zależnie od potrzeb, jest interpretowany jako: argument 128-bitowy nieokre lonego typu (działania logiczne, kopiowanie) 4 argumenty zmiennoprzecinkowe pojedynczej precyzji (32-bitowe) zestaw niezale nych argumentów stałoprzecinkowych: 2 dwusłowa 64- bitowe, 4 słowa 32-bitowe, 8 półsłów 16-bitowych lub 16 bajtów. Repertuar podstawowych arytmetycznych działań stałoprzecinkowych jest nieco bogatszy niż w MMX/SSE (Pentium) i obejmuje: dodawanie i odejmowanie mno enie górne i dolne mno enie rekordów (pól) o numerach nieparzystych albo parzystych mno enie akumulacyjne górne i dolne Wyniki powyższych działań, z małymi wyjątkami, mogą być tworzone z odcinaniem wy szych bitów (modulo 2 k, k=8,16,32) z nasycaniem bez znaku (jednokierunkowym) (obci cie do (0,2 8 1)) z nasycaniem ze znakiem (dwukierunkowym) (obci cie do ( 2 k 1,2 k 1 1)). Oprócz wymienionych wyżej, dostępne są też działania specyficzne, takie jak: Janusz Biernat, AKII-Pentium-PowerPC (red), 16 czerwca 2010 PPC h

21 Architektura PowerPC wyznaczanie przeniesie z sum lub ró nic wyznaczanie warto ci minimalnych i maksymalnych obliczanie redniej z zaokr gleniem w gór. akumulowana suma iloczynów. Dostępne są też rozkazy porównania, testujące relację większości dla argumentów bez znaku i ze znakiem oraz relację równości. Lista AltiVec obejmuje też taki sam zestaw działań logicznych jak architektura podstawowa oraz rozkazy rotacji i przesunięć. Dostępne są też instrukcje specyficzne wewnątrzelementowe (interelement), takie jak splatanie i permutacja rekordów oraz spakowanie i rozpakowanie argumentu. Działania zmiennoprzecinkowe obejmują dodawanie, odejmowanie i mnożenie i szacowanie pierwszych przybliżeń dla iteracyjnych algorytmów dzielenia, obliczania pierwiastka kwadratowego i obliczania wartości funkcji elementarnych. Oszacowania odwrotności dzielnika i odwrotności pierwiastka są wystarczające, aby w jednym kroku iteracji metodą Newtona-Raphsona uzyskać przybliżenie faktycznej wartości z dokładnością do najniższego bitu reprezentacji zmiennoprzecinkowej. Wspomaganie współbie no ci obejmuje rozkazy synchronizacji potoku, dostępu do współdzielonego obszaru pamięci i wywołanie systemowe Janusz Biernat, AKII-Pentium-PowerPC (red), 16 czerwca 2010 PPC i

22 Architektura PowerPC Adresowanie pami ci Adresowanie danych w pamięci może nastąpić tylko podczas wykonania rozkazów load lub store. Adres logiczny określa jeden lub dwa wskaźniki. Jeden z nich powinien być zawartością rejestru ogólnego przeznaczenia (GPR0 GPR31), drugi może być albo stałą (zapisaną w formie skróconej) albo zawartością rejestru GPR# (z ewentualną automatyczną modyfikacją). Jeśli jako pierwszy argument jest specyfikowany rejestr GPR0, jego zawartość jest ignorowana (traktowana jak 0). Jeśli oba argumenty są w rejestrach, to obliczony adres wynikowy (suma zawartości rejestrów) jest zapisany w pierwszym rejestrze (adresowanie z automatyczną aktualizacją). Adresowanie kodu jest względne, z użyciem stałej przemieszczenia, określającej odległość lokalizacji kodu docelowego od bieżącej wartości licznika rozkazów. Można też wymusić interpretację przemieszczenia jako adresu bezwzględnego ze znakiem (przemieszczenie ujemne jest traktowane jako adres w górnym obszarze przestrzeni adresowej). Rozmiar i zakres stałej zależy od typu rozgałęzienia. Tryby adresowania We wszystkich rozkazach, oprócz rozkazów komunikacji z pamięcią (ld load oraz st store), występuje adresowanie rejestrowe bezpośrednie, gdzie numery rejestrów argumentów są specyfikowane w kodzie rozkazu, lub adresowanie zwarte, w którym argument jest domniemany (rozkazy sterujące). W rozkazach load i store adres logiczny danej jest wytwarzany przy użyciu najwyżej dwóch argumentów. W najprostszym trybie adres logiczny argumentu jest pobierany z rejestru ogólnego przeznaczenia GPR#. W adresowaniu dwuelementowym adres może być obliczany przez zsumowanie zawartości wskazanego rejestru adresującego i przemieszczenia, zapisanego w kodzie rozkazu jako liczba całkowita (rozszerzana znakowo podczas obliczania adresu) lub przez dodanie zawartości dwóch rejestrów adresujących GPR# (adresowanie bazowo-indeksowe). Jeśli jako pierwszy wskazany jest rejestr numer zero, jego zawartość jest traktowana jako wartość 0. Adresowanie dwuelementowe może być zrealizowane z aktualizacją i wtedy obliczony wynikowy adres logiczny jest zapisywany w rejestrze bazowym (pierwszy wyspecyfikowany na liście wskaźników). W jednostce AltiVec do adresowania należy zawsze wskazać dwa rejestry ogólnego przeznaczenia. Podstawowym trybem adresowania kodu jest adresowanie względem bieżącej zawartości licznika rozkazów. W niewielkim zakresie adresowanie kodu może być też bezwzględne zakres jest wyznaczony rozmiarem stałej. W 32-bitowej wersji PowerPC w rozgałęzieniach bezwarunkowych stała jest liczbą całkowitą 26-bitową (odpowiada to adresom z zakresu albo ), w rozgałęzieniach warunkowych stała jest 16-bitowa (adresy albo ). W wersji 64-bitowej zakres adresów jest taki sam, z uwagi na ustalony 32-bitowy rozmiar kodu rozkazu. Janusz Biernat, AKII-Pentium-PowerPC (red), 16 czerwca 2010 PPC j

23 Adresowanie wirtualne Architektura PowerPC W trybie 64-bitowym najwyższe 32+4 bity adresu stanowią efektywny identyfikator segmentu (ESID). Pięć najniższych bitów identyfikatora a w razie chybienia negacja tych bitów, wskazuje 8-elementową grupę segmentów STEG# (rys. B.2) w tablicy opisów segmentów (ST). Element każdej grupy (STE#) jest deskryptorem, którego pierwsze dwusłowo (8B) zawiera 36-bitowy wzorzec identyfikatora segmentu (ESID), bit 56 (V) jest wskaźnikiem ważności odwzorowania, bit 57 (T) wskazuje typ transferu (pamięć lub we/wy), bity 58 (ks system) i 59 (ku użytkownik) kodują uprawnienia dostępu. Drugie podwójne słowo zawiera 52-bitowy wirtualny identyfikator segmentu (VSID), który złożony z 28 niższymi bitami adresu logicznego (PI BO) tworzy 80-bitowy adres wirtualny. Jeśli we wskazanej grupie brak potrzebnego odwzorowania, poszukiwane jest odwzorowanie pod adresem zanegowanym. Najniższe 12 bitów (BO) jest adresem wewnętrznym na stronie (logicznej, wirtualnej i rzeczywistej)(rys. B.2). STEG00 STEG01 STEG02 Tablica segmentów ST STE0 STE1 STE2 STE7 STE0 STE1 STE2 STE0 STE ESID VSID V T ks ku STEG30 STEG31 STE0 STE0 STE1 STE1 STE2 STE2 STE7 STE7 5 chybienie ESID PI BO trafienie VSID Bufor TLB segmentów wirtualny adres strony PI 16 BO 12 Janusz Biernat, AKII-Pentium-PowerPC (red), 16 czerwca 2010 PPC k

24 Architektura PowerPC Adresowanie wirtualne 32b W trybie 32-bitowym najwyższe 4 bity adresu logicznego wskazują jeden spośród 16 rejestrów segmentów (analog tablicy segmentów w trybie 64-bitowym). Rejestr segmentu zawiera 32-bitowy deskryptor, którego najniższe 24 bity stanowią wirtualny numer segmentu VSID. Najwyższe bity to T, ks, ku, których znaczenie jest takie jak w trybie 64-bitowym. Wirtualny 24-bitowy numer segmentu po złożeniu z 28 niższymi bitami adresu logicznego (PI BO) tworzy 52-bitowy adres wirtualny. Najniższe 12 bitów adresu logicznego (i wirtualnego) jest adresem wewnętrznym na stronie (wirtualnej i rzeczywistej). Pozostałe, po przekształceniu funkcją haszującą, stanowią wskaźnik deskryptora strony w tablicy stron. Sposób przekształcenia jest podobny w obu trybach. Funkcją skrótu (haszującą) jest bitowa suma wykluczająca (XOR) rozszerzonego lewostronnie zerami numeru strony wirtualnej (PI) i niższych (19 lub 40) bitów wirtualnego numeru segmentu (VSID). Tak wyznaczone n niższych bitów kodu (10 n 19 w trybie 32-bitowym, 11 n 39 w trybie 64-bitowym) jest wskaźnikiem do tablicy stron zawierającej 2 n+3 deskryptorów stron PTE# (rys. B.3). Tablica stron PT PTEG..00 PTE0 PTE1 PTE2 PTE7 VSID API H V PTEG..01 PTEG..02 PTE0 PTE1 PTE0 PTE1 PTE2 RPN 000 RCWMIG00PP PTEG.2 n 2 PTEG.2 n 1 PTE0 PTE0 PTE1 PTE1 PTE2 PTE2 chybienie PTE7 PTE7 API n V VSID H API RPN 000 RCWMIG00PP trafienie Bufor TLB stron n #ID PI RPN VSIDH VSIDL PI BO Janusz Biernat, AKII-Pentium-PowerPC (red), 16 czerwca 2010 PPC l

25 Stronicowanie cd Architektura PowerPC W trybie 32-bitowym wynikiem funkcji skrótu jest kod 19-bitowy (VSID5: PI) zaś n= W trybie 64-bitowym kod wynikowy jest 39-bitowy (VSID13: PI) zaś n= Z uwagi na rozmiar deskryptora (64 lub 128-bitowy) adres w tablicy stron jest tworzony przez prawostronne rozszerzenie p zerami liczby n a tablica stron musi być umieszczona począwszy od adresu 2 n+p (w trybie 32-bitowym p=6, w trybie 64-bitowym p=7). Zaleca się, aby liczba grup wejść w tablicy PT była nie mniejsza od połowy liczby stron rzeczywistych (4 razy więcej stron wirtualnych niż rzeczywistych). Do identyfikacji deskryptora PTE# w grupie PTEG# (adresem grupy w tablicy jest n2 p ) wystarczy kilka najwyższych bitów (API) wirtualnego numeru strony (6 w trybie 32-bitowym lub 5 w 64-bitowym), bo kody identyfikatorów w jednym segmencie mogą się różnić najwyżej na 16 n pozycjach (16 n rozmiar API). Przeszukiwane są jednocześnie dwie grupy deskryptorów, odpowiadające prostej i inwersyjnej wartości funkcji haszującej. Bit H w deskryptorze wskazuje, czy opis jest związany z funkcją prostą (H=0 i wtedy następuje porównanie z bitami API), czy też inwersyjną (H=1 i wtedy następuje porównanie z zanegowanymi bitami API). Dzięki temu opis strony może być umieszczony w jednej z dwóch lokacji w tablicy stron. A.1.6. Translacja blokowa Adresowanie w trybie translacji blokowej umożliwia spójne odwzorowanie dużych bloków pamięci bez stronicowania. Blok musi zawierać 2 B bajtów (17 B 28) a jego rozmiar określa monotoniczna maska bitowa (0 01 1) w deskryptorze bloku. Fizyczny adres bajtu w bloku jest złożeniem 17+p niższych bitów adresu logicznego z bitami numeru bloku rzeczywistego oprócz p niższych (które są zerami, bo blok musi być wpasowany od adresu m 2 17+p ), gdzie p jest liczbą jedynek w masce. Opis translacji blokowej jest zapisany w deskryptorach umieszczonych w zestawie rejestrów specjalnego przeznaczenia. Deskryptor translacji zawiera numer bloku logicznego (BEPI), numer bloku rzeczywistego (BRPN), 11-bitową maskę rozmiaru (BLS), bity poziomu uprzywilejowania v u i v s, oraz analogiczne jak w stronicowaniu: bity ochrony PP i sterowania buforem cache (WIMG). Opis obejmuje 4 bloki (rys. B.4). Janusz Biernat, AKII-Pentium-PowerPC (red), 16 czerwca 2010 PPC m

26 Architektura PowerPC adres wirtualny VSID BEPI PI BO #ID 0 BEPI 0..0 BLS v s v u BRPN WIMG 0 PP TLB 3 BEPI BRPN BLS v s v u WIMG 0 PP chybienie maska BRPN 0..0 PI BO OR adres rzeczywisty BRPN PI BO RPN BO Rys. B.1. Translacja adresu wirtualnego w rzeczywisty Deskryptor dla trybu 64-bitowego różni się od deskryptora trybu 32-bitowego tylko rozmiarem pól BEPI i BRPN (dłuższe o 32 bity). Translacja blokowa jest priorytetowa wobec stronicowania. Przekształcony przez funkcję skrótu adres logiczny (bez 17 najniższych bitów) jest porównany z 4 opisami translacji blokowej. W razie trafienia translacji blokowej (rys. B.4) zostaje zaniechane stronicowanie. Janusz Biernat, AKII-Pentium-PowerPC (red), 16 czerwca 2010 PPC n

27 Architektura PowerPC A.1.7. Ochrona danych Ochrona danych jest opisana na poziomie segmentu i bloku albo strony. Obejmuje prawa zapisu i odczytu. Poziom ochrony jest określany na podstawie bitu generalnego uprzywilejowania PR (0 system, 1 użytkownik) w rejestrze stanu procesora MSR, kluczy ochrony k s i k u zapisanych w rejestrze lub deskryptorze segmentu oraz dwóch bitów ochrony bloku lub strony PP. Jeśli bity PP mają wartość 11, to możliwy jest tylko odczyt strony albo bloku. Jeśli PP=00, to w razie gdy k upr+k s(1 PR)=1 dostęp jest zakazany, w przeciwnym razie możliwy jest tylko odczyt. Gdy PP=10, to dozwolony jest odczyt i zapis, zaś przy PP=01 zapis jest dozwolony tylko wtedy, gdy k upr+k s(1 PR)=0. Podczas translacji blokowej sprawdzana jest dodatkowo ważność opisu bloku dla pracy (v s i v u) w trybie użytkownika lub nadzoru. Jeśli zachodzi zgodność, czyli wtedy, gdy v upr+v s(1 PR)=1, opis translacji blokowej jest ważny i następuje adresowanie blokowe. W przeciwnym razie jest realizowane stronicowanie. Dodatkowym elementem ochrony jest niespecyfikowany w podstawowej definicji architektury PowerPC bit N w rejestrze lub deskryptorze segmentu. Jego domniemaną wartością jest 0; wartość 1 uniemożliwia wykonanie kodu z danego segmentu. A.1.8. Przestrzeń we/wy Zalecanym sposobem komunikacji z urządzeniami we/wy jest komunikacja przez pamięć (odwzorowanie przestrzeni we/wy jako części przestrzeni pamięci). Takie odwzorowanie musi być jednak odpowiednio opisane w deskryptorze bloku lub strony za pomocą bitów WMIG. Należy zablokować kopiowanie do bufora pamięci podręcznej (I=1) i nakazać kontrolę transferu (G=1). Stan bitów WM nie jest krytyczny przy blokadzie bufora cache, lecz zaleca się ustalić zapis skrośny (W=1) oraz pomijanie testu spójności pamięci (M=0). W celu utrzymania kompatybilności z architekturą POWER możliwe jest jednak bezpośrednie odwzorowanie przestrzeni we/wy. Jest ono ustalone przez ustawienie bitu T=1 w rejestrze (lub deskryptorze) segmentu. W takim przypadku 9 bitów rejestru segmentu BUID (w trybie 32-bitowym) lub 7 bitów deskryptora segmentu (zgodne z BUID 2:8) jest identyfikatorem urządzenia, zaś inne 20 bitów rejestru lub deskryptora segmentu zawiera informacje dla sterownika urządzenia we/wy. Janusz Biernat, AKII-Pentium-PowerPC (red), 16 czerwca 2010 PPC o

28 Przerwania Architektura PowerPC W architekturze PowerPC każda sytuacja wymagająca specjalnej obsługi, w tym także żądania obsługi urządzeń peryferyjnych nazywa się wyjątkiem (exception). Wyjątki sygnalizowane są przez przerwania (interrupt). W konsekwencji pojęcia te są używane zamiennie w specyfikacji architektury jest zwykle mowa o przerwaniach a w podręcznikach programistów o wyjątkach. Ze względu na moment zgłoszenia wyróżnia się przerwania synchroniczne, związane z jakąś fazą wykonania instrukcji oraz asynchroniczne, których zgłoszenie jest skutkiem zdarzenia zewnętrznego. Ze względu na sposób obsługi wyróżnia się dwa rodzaje przerwań: precyzyjne (żądanie obsługi zdarzeń z otoczenia procesora lub błędów przetwarzania) i nieprecyzyjne, które są żądaniem obsługi zdarzeń grożących utratą spójności systemu. Spośród przerwań asynchronicznych dwa są nieprecyzyjne: błąd kontroli maszyny (machine check error) i żądanie wznowienia (reset). Pozostałe przerwania asynchroniczne są precyzyjne. Są to żądania obsługi urządzeń peryferyjnych lub sygnalizacja upływu czasu (decrementer). Przerwania wewnętrzne są synchroniczne. Niektóre z nich (błędy jednostki zmiennoprzecinkowej) można blokować programowo. Blokada polega na zerowaniu bitów w rejestrze stanu procesora MSR. Obsługa wszystkich przerwań jest realizowana w trybie nadzoru (supervisor mode). Wszystkie przerwania są wektoryzowane. Przekazany do procesora numer przerwania jest zamieniany na adres w tablicy przerwań. Istnieje możliwość obsługi 2 12 przerwań, na obsługę każdego przeznacza się nominalnie 256 bajtów pamięci (64 rozkazy), co wymaga zarezerwowania na ten cel 1MB pamięci. Faktyczne procedury obsługi mogą być oczywiście dłuższe niż 64 rozkazy. Lokalizacja tablicy przerwań zależy od stanu bitu IP w rejestrze MSR jeśli IP=0, to adresem bazowym jest 0x0, jeśli zaś IP=1, to adresem bazowym jest 0xFFF Zwykle podczas inicjalizacji systemu IP=1, później następuje przełączenie. Pierwsze 32 numery przerwań są zarezerwowane w specyfikacji architektury. W tej grupie mieszczą się oba przerwania nieprecyzyjne (żądanie wznowienia i błąd kontroli procesora), wewnętrzne przerwania precyzyjne takie jak: błąd dostępu do danych, błąd dostępu do kodu, błąd wpasowania kodu, wywołanie systemowe i przerwania zewnętrzne: sygnalizacja upływu czasu i błąd sprzęgu we/wy. Po rozpoznaniu przerwania następuje zapamiętanie stanu procesora i zależnie od przyczyny zapamiętanie adresu następnej instrukcji (przerwanie zewnętrzne) lub instrukcji, która spowodowała przerwanie (przerwanie wewnętrzne). Podczas obsługi przerwań adresy logiczne nie podlegają translacji i są traktowane jak adresy fizyczne. Pozwala to uniezależnić obsługę przerwań od struktury zadań w systemie. Janusz Biernat, AKII-Pentium-PowerPC (red), 16 czerwca 2010 PPC p

Procesor ma architekturę rejestrową L/S. Wskaż rozkazy spoza listy tego procesora. bgt Rx, Ry, offset nand Rx, Ry, A add Rx, #1, Rz store Rx, [Rz]

Procesor ma architekturę rejestrową L/S. Wskaż rozkazy spoza listy tego procesora. bgt Rx, Ry, offset nand Rx, Ry, A add Rx, #1, Rz store Rx, [Rz] Procesor ma architekturę akumulatorową. Wskaż rozkazy spoza listy tego procesora. bgt Rx, Ry, offset or Rx, Ry, A add Rx load A, [Rz] push Rx sub Rx, #3, A load Rx, [A] Procesor ma architekturę rejestrową

Bardziej szczegółowo

Schematy zarzadzania pamięcia

Schematy zarzadzania pamięcia Schematy zarzadzania pamięcia Segmentacja podział obszaru pamięci procesu na logiczne jednostki segmenty o dowolnej długości. Postać adresu logicznego: [nr segmentu, przesunięcie]. Zwykle przechowywana

Bardziej szczegółowo

Mikroinformatyka. Wielozadaniowość

Mikroinformatyka. Wielozadaniowość Mikroinformatyka Wielozadaniowość Zadanie Tryb chroniony przynajmniej jedno zadanie (task). Segment stanu zadania TSS (Task State Segment). Przestrzeń zadania (Execution Space). - segment kodu, - segment

Bardziej szczegółowo

Programowanie na poziomie sprzętu. Tryb chroniony cz. 1

Programowanie na poziomie sprzętu. Tryb chroniony cz. 1 Tryb chroniony cz. 1 Moduł zarządzania pamięcią w trybie chronionym (z ang. PM - Protected Mode) procesorów IA-32 udostępnia: - segmentację, - stronicowanie. Segmentacja mechanizm umożliwiający odizolowanie

Bardziej szczegółowo

Mikroinformatyka. Mechanizmy ochrony pamięci

Mikroinformatyka. Mechanizmy ochrony pamięci Mikroinformatyka Mechanizmy ochrony pamięci Mechanizmy ochrony pamięci Ochrona na poziomie segmentów: - limit - typ segmentu - selektor zerowy - poziom uprzywilejowania Ochrona na poziomie stronicowania:

Bardziej szczegółowo

Struktura i działanie jednostki centralnej

Struktura i działanie jednostki centralnej Struktura i działanie jednostki centralnej ALU Jednostka sterująca Rejestry Zadania procesora: Pobieranie rozkazów; Interpretowanie rozkazów; Pobieranie danych Przetwarzanie danych Zapisywanie danych magistrala

Bardziej szczegółowo

Mikroinformatyka. Tryb wirtualny

Mikroinformatyka. Tryb wirtualny Mikroinformatyka Tryb wirtualny Tryb wirtualny z ochroną Wprowadzony w 80286. Rozbudowany w 80386. - 4 GB pamięci fizycznej, - 64 TB przestrzeni wirtualnej, - pamięć podzielona na segmenty o rozmiarze

Bardziej szczegółowo

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW Projektowanie urządzeń cyfrowych przy użyciu układów TTL polegało na opracowaniu algorytmu i odpowiednim doborze i zestawieniu układów realizujących różnorodne funkcje

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Architektura komputerów Tydzień 5 Jednostka Centralna Zadania realizowane przez procesor Pobieranie rozkazów Interpretowanie rozkazów Pobieranie danych Przetwarzanie danych Zapisanie danych Główne zespoły

Bardziej szczegółowo

Programowanie Niskopoziomowe

Programowanie Niskopoziomowe Programowanie Niskopoziomowe Wykład 4: Architektura i zarządzanie pamięcią IA-32 Dr inż. Marek Mika Państwowa Wyższa Szkoła Zawodowa im. Jana Amosa Komeńskiego W Lesznie Plan Wstęp Tryby pracy Rejestry

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Architektura komputerów Wykład 3 Jan Kazimirski 1 Podstawowe elementy komputera. Procesor (CPU) 2 Plan wykładu Podstawowe komponenty komputera Procesor CPU Cykl rozkazowy Typy instrukcji Stos Tryby adresowania

Bardziej szczegółowo

Organizacja typowego mikroprocesora

Organizacja typowego mikroprocesora Organizacja typowego mikroprocesora 1 Architektura procesora 8086 2 Architektura współczesnego procesora 3 Schemat blokowy procesora AVR Mega o architekturze harwardzkiej Wszystkie mikroprocesory zawierają

Bardziej szczegółowo

architektura komputerów w. 8 Zarządzanie pamięcią

architektura komputerów w. 8 Zarządzanie pamięcią architektura komputerów w. 8 Zarządzanie pamięcią Zarządzanie pamięcią Jednostka centralna dysponuje zwykle duża mocą obliczeniową. Sprawne wykorzystanie możliwości jednostki przetwarzającej wymaga obecności

Bardziej szczegółowo

Technika mikroprocesorowa I Studia niestacjonarne rok II Wykład 2

Technika mikroprocesorowa I Studia niestacjonarne rok II Wykład 2 Technika mikroprocesorowa I Studia niestacjonarne rok II Wykład 2 Literatura: www.zilog.com Z80 Family, CPU User Manual Cykle magistrali w mikroprocesorze Z80 -odczyt kodu rozkazu, -odczyt-zapis pamięci,

Bardziej szczegółowo

Sprzętowe wspomaganie pamięci wirtualnej

Sprzętowe wspomaganie pamięci wirtualnej Sprzętowe wspomaganie pamięci wirtualnej Stanisław Skonieczny 6 grudnia 2002 Spis treści 1 Intel 2 1.1 Tryby pracy procesora............................... 2 1.2 Adresowanie liniowe................................

Bardziej szczegółowo

Technika mikroprocesorowa I Wykład 2

Technika mikroprocesorowa I Wykład 2 Technika mikroprocesorowa I Wykład 2 Literatura: www.zilog.com Z80 Family, CPU User Manual Cykle magistrali w mikroprocesorze Z80 -odczyt kodu rozkazu, -odczyt-zapis pamięci, -odczyt-zapis urządzenia we-wy,

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Architektura komputerów Tydzień 12 Wspomaganie systemu operacyjnego: pamięć wirtualna Partycjonowanie Pamięć jest dzielona, aby mogło korzystać z niej wiele procesów. Dla jednego procesu przydzielana jest

Bardziej szczegółowo

Architektura Systemów Komputerowych. Jednostka ALU Przestrzeń adresowa Tryby adresowania

Architektura Systemów Komputerowych. Jednostka ALU Przestrzeń adresowa Tryby adresowania Architektura Systemów Komputerowych Jednostka ALU Przestrzeń adresowa Tryby adresowania 1 Jednostka arytmetyczno- logiczna ALU ALU ang: Arythmetic Logic Unit Argument A Argument B A B Ci Bit przeniesienia

Bardziej szczegółowo

J. Ułasiewicz Komputerowe systemy sterowania 1. 1 Architektura PC Ogólna struktura systemu jednoprocesorowego

J. Ułasiewicz Komputerowe systemy sterowania 1. 1 Architektura PC Ogólna struktura systemu jednoprocesorowego J. Ułasiewicz Komputerowe systemy sterowania 1 1 Architektura PC 1.1. Ogólna struktura systemu jednoprocesorowego Już systemy jednoprocesorowe mogą być środowiskiem, w którym wykonywane jest wiele programów

Bardziej szczegółowo

Księgarnia PWN: Włodzimierz Stanisławski, Damian Raczyński - Programowanie systemowe mikroprocesorów rodziny x86

Księgarnia PWN: Włodzimierz Stanisławski, Damian Raczyński - Programowanie systemowe mikroprocesorów rodziny x86 Księgarnia PWN: Włodzimierz Stanisławski, Damian Raczyński - Programowanie systemowe mikroprocesorów rodziny x86 Spis treści Wprowadzenie... 11 1. Architektura procesorów rodziny x86... 17 1.1. Model procesorów

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Architektura komputerów Tydzień 4 Tryby adresowania i formaty Tryby adresowania Natychmiastowy Bezpośredni Pośredni Rejestrowy Rejestrowy pośredni Z przesunięciem stosowy Argument natychmiastowy Op Rozkaz

Bardziej szczegółowo

ARCHITEKTURA PROCESORA,

ARCHITEKTURA PROCESORA, ARCHITEKTURA PROCESORA, poza blokami funkcjonalnymi, to przede wszystkim: a. formaty rozkazów, b. lista rozkazów, c. rejestry dostępne programowo, d. sposoby adresowania pamięci, e. sposoby współpracy

Bardziej szczegółowo

Kod uzupełnień do dwóch jest najczęściej stosowanym systemem zapisu liczb ujemnych wśród systemów binarnych.

Kod uzupełnień do dwóch jest najczęściej stosowanym systemem zapisu liczb ujemnych wśród systemów binarnych. Kod uzupełnień do dwóch jest najczęściej stosowanym systemem zapisu liczb ujemnych wśród systemów binarnych. Jeśli bit znaku przyjmie wartość 0 to liczba jest dodatnia lub posiada wartość 0. Jeśli bit

Bardziej szczegółowo

Arytmetyka liczb binarnych

Arytmetyka liczb binarnych Wartość dwójkowej liczby stałoprzecinkowej Wartość dziesiętna stałoprzecinkowej liczby binarnej Arytmetyka liczb binarnych b n-1...b 1 b 0,b -1 b -2...b -m = b n-1 2 n-1 +... + b 1 2 1 + b 0 2 0 + b -1

Bardziej szczegółowo

Zarządzanie pamięcią operacyjną

Zarządzanie pamięcią operacyjną SOE Systemy Operacyjne Wykład 7 Zarządzanie pamięcią operacyjną dr inż. Andrzej Wielgus Instytut Mikroelektroniki i Optoelektroniki WEiTI PW Hierarchia pamięci czas dostępu Rejestry Pamięć podręczna koszt

Bardziej szczegółowo

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne Spis treści 5 Spis treœci Co to jest mikrokontroler? Wprowadzenie... 11 Budowa systemu komputerowego... 12 Wejścia systemu komputerowego... 12 Wyjścia systemu komputerowego... 13 Jednostka centralna (CPU)...

Bardziej szczegółowo

Architektura typu Single-Cycle

Architektura typu Single-Cycle Architektura typu Single-Cycle...czyli budujemy pierwszą maszynę parową Przepływ danych W układach sekwencyjnych przepływ danych synchronizowany jest sygnałem zegara Elementy procesora - założenia Pamięć

Bardziej szczegółowo

Zarządzanie zasobami pamięci

Zarządzanie zasobami pamięci Zarządzanie zasobami pamięci System operacyjny wykonuje programy umieszczone w pamięci operacyjnej. W pamięci operacyjnej przechowywany jest obecnie wykonywany program (proces) oraz niezbędne dane. Jeżeli

Bardziej szczegółowo

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych 1 Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych 1. Podstawowe operacje logiczne dla cyfr binarnych Jeśli cyfry 0 i 1 potraktujemy tak, jak wartości logiczne fałsz i prawda, to działanie

Bardziej szczegółowo

Zarządzanie pamięcią w systemie operacyjnym

Zarządzanie pamięcią w systemie operacyjnym Zarządzanie pamięcią w systemie operacyjnym Cele: przydział zasobów pamięciowych wykonywanym programom, zapewnienie bezpieczeństwa wykonywanych procesów (ochrona pamięci), efektywne wykorzystanie dostępnej

Bardziej szczegółowo

Architektura komputerów. Asembler procesorów rodziny x86

Architektura komputerów. Asembler procesorów rodziny x86 Architektura komputerów Asembler procesorów rodziny x86 Architektura komputerów Asembler procesorów rodziny x86 Rozkazy mikroprocesora Rozkazy mikroprocesora 8086 można podzielić na siedem funkcjonalnych

Bardziej szczegółowo

Układ sterowania, magistrale i organizacja pamięci. Dariusz Chaberski

Układ sterowania, magistrale i organizacja pamięci. Dariusz Chaberski Układ sterowania, magistrale i organizacja pamięci Dariusz Chaberski Jednostka centralna szyna sygnałow sterowania sygnały sterujące układ sterowania sygnały stanu wewnętrzna szyna danych układ wykonawczy

Bardziej szczegółowo

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Zasady arytmetyki stałoprzecinkowej oraz operacji arytmetycznych w formatach Q

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Zasady arytmetyki stałoprzecinkowej oraz operacji arytmetycznych w formatach Q LABORAORIUM PROCESORY SYGAŁOWE W AUOMAYCE PRZEMYSŁOWEJ Zasady arytmetyki stałoprzecinkowej oraz operacji arytmetycznych w formatach Q 1. Zasady arytmetyki stałoprzecinkowej. Kody stałopozycyjne mają ustalone

Bardziej szczegółowo

organizacja procesora 8086

organizacja procesora 8086 Systemy komputerowe Procesor 8086 - tendencji w organizacji procesora organizacja procesora 8086 " # $ " % strali " & ' ' ' ( )" % *"towego + ", -" danych. Magistrala adresowa jest 20.bitowa, co pozwala

Bardziej szczegółowo

LICZBY ZMIENNOPRZECINKOWE

LICZBY ZMIENNOPRZECINKOWE LICZBY ZMIENNOPRZECINKOWE Liczby zmiennoprzecinkowe są komputerową reprezentacją liczb rzeczywistych zapisanych w formie wykładniczej (naukowej). Aby uprościć arytmetykę na nich, przyjęto ograniczenia

Bardziej szczegółowo

Wprowadzenie do architektury komputerów systemy liczbowe, operacje arytmetyczne i logiczne

Wprowadzenie do architektury komputerów systemy liczbowe, operacje arytmetyczne i logiczne Wprowadzenie do architektury komputerów systemy liczbowe, operacje arytmetyczne i logiczne 1. Bit Pozycja rejestru lub komórki pamięci służąca do przedstawiania (pamiętania) cyfry w systemie (liczbowym)

Bardziej szczegółowo

Wybrane zagadnienia elektroniki współczesnej

Wybrane zagadnienia elektroniki współczesnej Wybrane zagadnienia elektroniki współczesnej y pracy, Marika Kuczyńska Fizyka Techniczna IV rok 20-03-2013, AGH prezentacji y pracy 1 2 y pracy 3 4 5 6 Jednostka wykonawcza, instrukcje (Marika) Rodzina

Bardziej szczegółowo

Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory

Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory Poniżej pozwoliłem sobie za cytować za wikipedią definicję zmiennej w informatyce.

Bardziej szczegółowo

CPU. Architektura FLAGS Bit: dr Paweł Kowalczyk; DPTNS, KFCS UŁ. SI 16 bit. 16 bit. 16 bit.

CPU. Architektura FLAGS Bit: dr Paweł Kowalczyk; DPTNS, KFCS UŁ. SI 16 bit. 16 bit. 16 bit. Architektura 8086 8086 posiada 4 rejestry ogólnego użytku AX, BX, CX, DX, 2 rejestry indeksowe SI, DI, 3 rejestry wskaźnikowe SP, BP, IP, 4 rejestry segmentowe CS, DS, SS i ES oraz rejestr flag FLAG AH

Bardziej szczegółowo

Kurs Zaawansowany S7. Spis treści. Dzień 1

Kurs Zaawansowany S7. Spis treści. Dzień 1 Spis treści Dzień 1 I Konfiguracja sprzętowa i parametryzacja stacji SIMATIC S7 (wersja 1211) I-3 Dlaczego powinna zostać stworzona konfiguracja sprzętowa? I-4 Zadanie Konfiguracja sprzętowa I-5 Konfiguracja

Bardziej szczegółowo

Podstawy Informatyki

Podstawy Informatyki Podstawy Informatyki Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 5 Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 5 1 / 23 LICZBY RZECZYWISTE - Algorytm Hornera

Bardziej szczegółowo

Działanie systemu operacyjnego

Działanie systemu operacyjnego Budowa systemu komputerowego Działanie systemu operacyjnego Jednostka centralna dysku Szyna systemowa (magistrala danych) drukarki pamięci operacyjnej I NIC sieci Pamięć operacyjna Przerwania Przerwania

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Architektura komputerów Wykład 4 Jan Kazimirski 1 Reprezentacja danych 2 Plan wykładu Systemy liczbowe Zapis dwójkowy liczb całkowitych Działania arytmetyczne Liczby rzeczywiste Znaki i łańcuchy znaków

Bardziej szczegółowo

UTK ARCHITEKTURA PROCESORÓW 80386/ Budowa procesora Struktura wewnętrzna logiczna procesora 80386

UTK ARCHITEKTURA PROCESORÓW 80386/ Budowa procesora Struktura wewnętrzna logiczna procesora 80386 Budowa procesora 80386 Struktura wewnętrzna logiczna procesora 80386 Pierwszy prawdziwy procesor 32-bitowy. Zawiera wewnętrzne 32-bitowe rejestry (omówione zostaną w modułach następnych), pozwalające przetwarzać

Bardziej szczegółowo

Kod U2 Opracował: Andrzej Nowak

Kod U2 Opracował: Andrzej Nowak PODSTAWY TEORII UKŁADÓW CYFROWYCH Kod U2 Opracował: Andrzej Nowak Bibliografia: Urządzenia techniki komputerowej, K. Wojtuszkiewicz http://pl.wikipedia.org/ System zapisu liczb ze znakiem opisany w poprzednim

Bardziej szczegółowo

3 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.06 Rok akad. 2011/2012 2 / 22

3 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.06 Rok akad. 2011/2012 2 / 22 ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH struktury procesorów ASK SP.06 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad. 2011/2012 1 Maszyny wirtualne 2 3 Literatura c Dr inż. Ignacy

Bardziej szczegółowo

Logiczny model komputera i działanie procesora. Część 1.

Logiczny model komputera i działanie procesora. Część 1. Logiczny model komputera i działanie procesora. Część 1. Klasyczny komputer o architekturze podanej przez von Neumana składa się z trzech podstawowych bloków: procesora pamięci operacyjnej urządzeń wejścia/wyjścia.

Bardziej szczegółowo

Sprzęt i architektura komputerów

Sprzęt i architektura komputerów Radosław Maciaszczyk Mirosław Łazoryszczak Sprzęt i architektura komputerów Laboratorium Temat: Mikroprocesory i elementy asemblera Katedra Architektury Komputerów i Telekomunikacji 1. MIKROPROCESORY I

Bardziej szczegółowo

dr inż. Jarosław Forenc

dr inż. Jarosław Forenc Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia stacjonarne I stopnia Rok akademicki 2010/2011 Wykład nr 7 (24.01.2011) dr inż. Jarosław Forenc Rok akademicki

Bardziej szczegółowo

Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych

Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych B.1. Dostęp do urządzeń komunikacyjnych Sterowniki urządzeń zewnętrznych widziane są przez procesor jako zestawy rejestrów

Bardziej szczegółowo

Rejestry procesora. Nazwa ilość bitów. AX 16 (accumulator) rejestr akumulatora. BX 16 (base) rejestr bazowy. CX 16 (count) rejestr licznika

Rejestry procesora. Nazwa ilość bitów. AX 16 (accumulator) rejestr akumulatora. BX 16 (base) rejestr bazowy. CX 16 (count) rejestr licznika Rejestry procesora Procesor podczas wykonywania instrukcji posługuje się w dużej części pamięcią RAM. Pobiera z niej kolejne instrukcje do wykonania i dane, jeżeli instrukcja operuje na jakiś zmiennych.

Bardziej szczegółowo

Wstęp do informatyki. System komputerowy. Magistrala systemowa. Architektura komputera. Cezary Bolek

Wstęp do informatyki. System komputerowy. Magistrala systemowa. Architektura komputera. Cezary Bolek Wstęp do informatyki Architektura komputera Cezary Bolek cbolek@ki.uni.lodz.pl Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki System komputerowy systemowa (System Bus) Pamięć operacyjna ROM,

Bardziej szczegółowo

MIKROKONTROLERY I MIKROPROCESORY

MIKROKONTROLERY I MIKROPROCESORY PLAN... work in progress 1. Mikrokontrolery i mikroprocesory - architektura systemów mikroprocesorów ( 8051, AVR, ARM) - pamięci - rejestry - tryby adresowania - repertuar instrukcji - urządzenia we/wy

Bardziej szczegółowo

Mikroprocesor Operacje wejścia / wyjścia

Mikroprocesor Operacje wejścia / wyjścia Definicja Mikroprocesor Operacje wejścia / wyjścia Opracował: Andrzej Nowak Bibliografia: Urządzenia techniki komputerowej, K. Wojtuszkiewicz Operacjami wejścia/wyjścia nazywamy całokształt działań potrzebnych

Bardziej szczegółowo

Zarządzanie pamięcią operacyjną

Zarządzanie pamięcią operacyjną Dariusz Wawrzyniak Plan wykładu Pamięć jako zasób systemu komputerowego hierarchia pamięci przestrzeń owa Wsparcie dla zarządzania pamięcią na poziomie architektury komputera Podział i przydział pamięci

Bardziej szczegółowo

Arytmetyka binarna - wykład 6

Arytmetyka binarna - wykład 6 SWB - Arytmetyka binarna - wykład 6 asz 1 Arytmetyka binarna - wykład 6 Adam Szmigielski aszmigie@pjwstk.edu.pl SWB - Arytmetyka binarna - wykład 6 asz 2 Naturalny kod binarny (NKB) pozycja 7 6 5 4 3 2

Bardziej szczegółowo

Zarządzanie pamięcią operacyjną zagadnienia podstawowe

Zarządzanie pamięcią operacyjną zagadnienia podstawowe Zarządzanie pamięcią operacyjną zagadnienia podstawowe Pamięć jako zasób systemu komputerowego Pamięć jest zasobem służący do przechowywania danych. Z punktu widzenia systemu pamięć jest zasobem o strukturze

Bardziej szczegółowo

Magistrala systemowa (System Bus)

Magistrala systemowa (System Bus) Cezary Bolek cbolek@ki.uni.lodz.pl Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki systemowa (System Bus) Pamięć operacyjna ROM, RAM Jednostka centralna Układy we/wy In/Out Wstęp do Informatyki

Bardziej szczegółowo

Adresowanie obiektów. Adresowanie bitów. Adresowanie bajtów i słów. Adresowanie bajtów i słów. Adresowanie timerów i liczników. Adresowanie timerów

Adresowanie obiektów. Adresowanie bitów. Adresowanie bajtów i słów. Adresowanie bajtów i słów. Adresowanie timerów i liczników. Adresowanie timerów Adresowanie obiektów Bit - stan pojedynczego sygnału - wejście lub wyjście dyskretne, bit pamięci Bajt - 8 bitów - wartość od -128 do +127 Słowo - 16 bitów - wartość od -32768 do 32767 -wejście lub wyjście

Bardziej szczegółowo

WOJSKOWA AKADEMIA TECHNICZNA

WOJSKOWA AKADEMIA TECHNICZNA WOJSKOWA AKADEMIA TECHNICZNA SYSTEMY WBUDOWANE Prowadzący: Paweł Janicki Autor sprawozdania: Pol Grzegorz Grupa szkoleniowa: I7X3S1 Numer ćwiczenia: Data oddania: 14.06.2009r. 1. Treść zadania Dokonać

Bardziej szczegółowo

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI Dr inż. Grażyna KRUPIŃSKA Grazyna.Krupinska@fis.agh.edu.pl D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI Wyrażenia 2 Wyrażenia w języku C są bardziej elastyczne niż wyrażenia w jakimkolwiek innym języku

Bardziej szczegółowo

Działanie systemu operacyjnego

Działanie systemu operacyjnego Działanie systemu operacyjnego Budowa systemu komputerowego Jednostka centralna Sterownik dysku Sterownik drukarki Sterownik sieci Szyna systemowa (magistrala danych) Sterownik pamięci operacyjnej Pamięć

Bardziej szczegółowo

Spis treúci. Księgarnia PWN: Krzysztof Wojtuszkiewicz - Urządzenia techniki komputerowej. Cz. 1. Przedmowa... 9. Wstęp... 11

Spis treúci. Księgarnia PWN: Krzysztof Wojtuszkiewicz - Urządzenia techniki komputerowej. Cz. 1. Przedmowa... 9. Wstęp... 11 Księgarnia PWN: Krzysztof Wojtuszkiewicz - Urządzenia techniki komputerowej. Cz. 1 Spis treúci Przedmowa... 9 Wstęp... 11 1. Komputer PC od zewnątrz... 13 1.1. Elementy zestawu komputerowego... 13 1.2.

Bardziej szczegółowo

Materiały do wykładu. 7.Architekturax86. Marcin Peczarski. Instytut Informatyki Uniwersytet Warszawski

Materiały do wykładu. 7.Architekturax86. Marcin Peczarski. Instytut Informatyki Uniwersytet Warszawski Materiały do wykładu 7.Architekturax86 Marcin Peczarski Instytut Informatyki Uniwersytet Warszawski 25maja2009 Narodziny 7.1 1978 Intel8086 architektura 16-bitowa 5 MHz, obudowa DIP40, 29000 tranzystorów

Bardziej szczegółowo

Pracownia Komputerowa wykład VI

Pracownia Komputerowa wykład VI Pracownia Komputerowa wykład VI dr Magdalena Posiadała-Zezula http://www.fuw.edu.pl/~mposiada 1 Przypomnienie 125 (10) =? (2) Liczby całkowite : Operacja modulo % reszta z dzielenia: 125%2=62 reszta 1

Bardziej szczegółowo

. III atyka, sem, Inform Symulator puterów Escape rchitektura kom A

. III atyka, sem, Inform Symulator puterów Escape rchitektura kom A Symulator Escape Konfiguracja ogólna Enable MUL and DIV Complete Set of Comp.Oper Sign Extension of B/H/W Memory Oper on B/H/W Program Program Dane Dane Załaduj konfigurację symulatora (File -> OpenFile)

Bardziej szczegółowo

Projektowanie. Projektowanie mikroprocesorów

Projektowanie. Projektowanie mikroprocesorów WYKŁAD Projektowanie mikroprocesorów Projektowanie układ adów w cyfrowych - podsumowanie Algebra Boole a Bramki logiczne i przerzutniki Automat skończony System binarny i reprezentacja danych Synteza logiczna

Bardziej szczegółowo

Architektura komputera. Cezary Bolek. Uniwersytet Łódzki. Wydział Zarządzania. Katedra Informatyki. System komputerowy

Architektura komputera. Cezary Bolek. Uniwersytet Łódzki. Wydział Zarządzania. Katedra Informatyki. System komputerowy Wstęp do informatyki Architektura komputera Cezary Bolek cbolek@ki.uni.lodz.pl Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki System komputerowy systemowa (System Bus) Pamięć operacyjna ROM,

Bardziej szczegółowo

Arytmetyka komputera. Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka. Opracował: Kamil Kowalski klasa III TI

Arytmetyka komputera. Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka. Opracował: Kamil Kowalski klasa III TI Arytmetyka komputera Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka Opracował: Kamil Kowalski klasa III TI Spis treści 1. Jednostki informacyjne 2. Systemy liczbowe 2.1. System

Bardziej szczegółowo

Działanie systemu operacyjnego

Działanie systemu operacyjnego Budowa systemu komputerowego Działanie systemu operacyjnego Jednostka centralna dysku Szyna systemowa (magistrala danych) drukarki pamięci operacyjnej sieci Pamięć operacyjna Przerwania Przerwania Przerwanie

Bardziej szczegółowo

Architektura komputerów. Komputer Procesor Mikroprocesor koncepcja Johna von Neumanna

Architektura komputerów. Komputer Procesor Mikroprocesor koncepcja Johna von Neumanna Architektura komputerów. Literatura: 1. Piotr Metzger, Anatomia PC, wyd. IX, Helion 2004 2. Scott Mueller, Rozbudowa i naprawa PC, wyd. XVIII, Helion 2009 3. Tomasz Kowalski, Urządzenia techniki komputerowej,

Bardziej szczegółowo

LEKCJA TEMAT: Współczesne procesory.

LEKCJA TEMAT: Współczesne procesory. LEKCJA TEMAT: Współczesne procesory. 1. Wymagania dla ucznia: zna pojęcia: procesor, CPU, ALU, potrafi podać typowe rozkazy; potrafi omówić uproszczony i rozszerzony schemat mikroprocesora; potraf omówić

Bardziej szczegółowo

UKŁADY MIKROPROGRAMOWALNE

UKŁADY MIKROPROGRAMOWALNE UKŁAD MIKROPROGRAMOWALNE Układy sterujące mogą pracować samodzielnie, jednakże w przypadku bardziej złożonych układów (zwanych zespołami funkcjonalnymi) układ sterujący jest tylko jednym z układów drugim

Bardziej szczegółowo

Mikroprocesory rodziny INTEL 80x86

Mikroprocesory rodziny INTEL 80x86 Mikroprocesory rodziny INTEL 80x86 Podstawowe wła ciwo ci procesora PENTIUM Rodzina procesorów INTEL 80x86 obejmuje mikroprocesory Intel 8086, 8088, 80286, 80386, 80486 oraz mikroprocesory PENTIUM. Wprowadzając

Bardziej szczegółowo

architektura komputerów w 1 1

architektura komputerów w 1 1 8051 Port P2 Port P3 Transm. szeregowa Timery T0, T1 Układ przerwań Rejestr DPTR Licznik rozkazów Pamięć programu Port P0 Port P1 PSW ALU Rejestr B SFR akumulator 8051 STRUKTURA architektura komputerów

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Architektura komputerów Wykład 5 Jan Kazimirski 1 Podstawowe elementy komputera. Procesor (CPU) c.d. 2 Architektura CPU Jednostka arytmetyczno-logiczna (ALU) Rejestry Układ sterujący przebiegiem programu

Bardziej szczegółowo

Adam Korzeniewski p Katedra Systemów Multimedialnych

Adam Korzeniewski p Katedra Systemów Multimedialnych Adam Korzeniewski adamkorz@sound.eti.pg.gda.pl p. 732 - Katedra Systemów Multimedialnych Sygnały dyskretne są z reguły przetwarzane w komputerach (zwykłych lub wyspecjalizowanych, takich jak procesory

Bardziej szczegółowo

Kod znak-moduł. Wartość liczby wynosi. Reprezentacja liczb w kodzie ZM w 8-bitowym formacie:

Kod znak-moduł. Wartość liczby wynosi. Reprezentacja liczb w kodzie ZM w 8-bitowym formacie: Wykład 3 3-1 Reprezentacja liczb całkowitych ze znakiem Do przedstawienia liczb całkowitych ze znakiem stosowane są następujące kody: - ZM (znak-moduł) - U1 (uzupełnienie do 1) - U2 (uzupełnienie do 2)

Bardziej szczegółowo

Procesory rodziny x86. Dariusz Chaberski

Procesory rodziny x86. Dariusz Chaberski Procesory rodziny x86 Dariusz Chaberski 8086 produkowany od 1978 magistrala adresowa - 20 bitów (1 MB) magistrala danych - 16 bitów wielkość instrukcji - od 1 do 6 bajtów częstotliwośc pracy od 5 MHz (IBM

Bardziej szczegółowo

Adam Korzeniewski p Katedra Systemów Multimedialnych

Adam Korzeniewski p Katedra Systemów Multimedialnych Adam Korzeniewski adamkorz@sound.eti.pg.gda.pl p. 732 - Katedra Systemów Multimedialnych Sygnały dyskretne są z reguły przetwarzane w komputerach (zwykłych lub wyspecjalizowanych, takich jak procesory

Bardziej szczegółowo

Programowanie w asemblerze Środowiska 64-bitowe

Programowanie w asemblerze Środowiska 64-bitowe Programowanie w asemblerze Środowiska 64-bitowe 24 listopada 2015 Nieco historii najnowszej Intel wraz z HP rozpoczynaja pracę nad procesorem 64-bitowym z wykorzystaniem technologii VLIW. Powstaje procesor

Bardziej szczegółowo

Naturalny kod binarny (NKB)

Naturalny kod binarny (NKB) SWB - Arytmetyka binarna - wykład 6 asz 1 Naturalny kod binarny (NKB) pozycja 7 6 5 4 3 2 1 0 wartość 2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 0 wartość 128 64 32 16 8 4 2 1 bity b 7 b 6 b 5 b 4 b 3 b 2 b 1 b 0 System

Bardziej szczegółowo

Ćwiczenie 3. Konwersja liczb binarnych

Ćwiczenie 3. Konwersja liczb binarnych 1 Laboratorium Architektury Komputerów Ćwiczenie 3 Konwersja liczb binarnych Komputery wykonują operacje przetwarzania danych na wartościach binarnych, podczas gdy współczesna cywilizacja posługuje się

Bardziej szczegółowo

Przykładowe pytania DSP 1

Przykładowe pytania DSP 1 Przykładowe pytania SP Przykładowe pytania Systemy liczbowe. Przedstawić liczby; -, - w kodzie binarnym i hexadecymalnym uzupełnionym do dwóch (liczba 6 bitowa).. odać dwie liczby binarne w kodzie U +..

Bardziej szczegółowo

Kurs Podstawowy S7. Spis treści. Dzień 1

Kurs Podstawowy S7. Spis treści. Dzień 1 Spis treści Dzień 1 I System SIMATIC S7 - wprowadzenie (wersja 1401) I-3 Rodzina sterowników programowalnych SIMATIC S7 firmy SIEMENS I-4 Dostępne moduły i ich funkcje I-5 Jednostki centralne I-6 Podstawowe

Bardziej szczegółowo

Mikrooperacje. Mikrooperacje arytmetyczne

Mikrooperacje. Mikrooperacje arytmetyczne Przygotowanie: Przemysław Sołtan e-mail: kerk@moskit.ie.tu.koszalin.pl Mikrooperacje Mikrooperacja to elementarna operacja wykonywana podczas jednego taktu zegara mikroprocesora na informacji przechowywanej

Bardziej szczegółowo

Mikroinformatyka. Koprocesory arytmetyczne 8087, 80187, 80287, i387

Mikroinformatyka. Koprocesory arytmetyczne 8087, 80187, 80287, i387 Mikroinformatyka Koprocesory arytmetyczne 8087, 80187, 80287, i387 Koprocesor arytmetyczny 100 razy szybsze obliczenia numeryczne na liczbach zmiennoprzecinkowych. Obliczenia prowadzone równolegle z procesorem

Bardziej szczegółowo

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Informatyka I Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2019 1 Plan wykładu

Bardziej szczegółowo

Układ wykonawczy, instrukcje i adresowanie. Dariusz Chaberski

Układ wykonawczy, instrukcje i adresowanie. Dariusz Chaberski Układ wykonawczy, instrukcje i adresowanie Dariusz Chaberski System mikroprocesorowy mikroprocesor C A D A D pamięć programu C BIOS dekoder adresów A C 1 C 2 C 3 A D pamięć danych C pamięć operacyjna karta

Bardziej szczegółowo

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015 Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015 1 Metody numeryczne Dział matematyki Metody rozwiązywania problemów matematycznych za pomocą operacji na liczbach. Otrzymywane

Bardziej szczegółowo

Procesory rodziny Intel

Procesory rodziny Intel Bibliografia: Urządzenia techniki komputerowej, K. Wojtuszkiewicz pl.wikipedia.org www.intel.com Procesory rodziny Intel Podstawowe własnow asności procesora Pentium Podstawowe własności procesora Pentium

Bardziej szczegółowo

Systemy operacyjne III

Systemy operacyjne III Systemy operacyjne III WYKŁAD Jan Kazimirski Pamięć wirtualna Stronicowanie Pamięć podzielona na niewielki bloki Bloki procesu to strony a bloki fizyczne to ramki System operacyjny przechowuje dla każdego

Bardziej szczegółowo

Programowanie Niskopoziomowe

Programowanie Niskopoziomowe Programowanie Niskopoziomowe Wykład 10: Arytmetyka całkowitoliczbowa Dr inż. Marek Mika Państwowa Wyższa Szkoła Zawodowa im. Jana Amosa Komeńskiego W Lesznie Plan Wprowadzenie Instrukcje przesunięcia bitowego

Bardziej szczegółowo

Przedmiot: Urządzenia techniki komputerowej Nauczyciel: Mirosław Ruciński

Przedmiot: Urządzenia techniki komputerowej Nauczyciel: Mirosław Ruciński Przedmiot: Urządzenia techniki komputerowej Nauczyciel: Mirosław Ruciński Temat: Systemy zapisu liczb. Cele kształcenia: Zapoznanie z systemami zapisu liczb: dziesiętny, dwójkowy, ósemkowy, szesnastkowy.

Bardziej szczegółowo

Wstęp do programowania. Reprezentacje liczb. Liczby naturalne, całkowite i rzeczywiste w układzie binarnym

Wstęp do programowania. Reprezentacje liczb. Liczby naturalne, całkowite i rzeczywiste w układzie binarnym Wstęp do programowania Reprezentacje liczb Liczby naturalne, całkowite i rzeczywiste w układzie binarnym System dwójkowy W komputerach stosuje się dwójkowy system pozycyjny do reprezentowania zarówno liczb

Bardziej szczegółowo

LICZBY ZMIENNOPRZECINKOWE

LICZBY ZMIENNOPRZECINKOWE LICZBY ZMIENNOPRZECINKOWE Liczby zmiennoprzecinkowe są komputerową reprezentacją liczb rzeczywistych zapisanych w formie wykładniczej (naukowej). Aby uprościć arytmetykę na nich, przyjęto ograniczenia

Bardziej szczegółowo

Budowa systemów komputerowych

Budowa systemów komputerowych Budowa systemów komputerowych Krzysztof Patan Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski k.patan@issi.uz.zgora.pl Współczesny system komputerowy System komputerowy składa

Bardziej szczegółowo

Technologie Informacyjne Wykład 4

Technologie Informacyjne Wykład 4 Technologie Informacyjne Wykład 4 Arytmetyka komputerów Wojciech Myszka Jakub Słowiński Katedra Mechaniki i Inżynierii Materiałowej Wydział Mechaniczny Politechnika Wrocławska 30 października 2014 Część

Bardziej szczegółowo

Budowa komputera Komputer computer computare

Budowa komputera Komputer computer computare 11. Budowa komputera Komputer (z ang. computer od łac. computare obliczać) urządzenie elektroniczne służące do przetwarzania wszelkich informacji, które da się zapisać w formie ciągu cyfr albo sygnału

Bardziej szczegółowo