1 / 119

Procesory rodziny Intel

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

lloyd
Download Presentation

Procesory rodziny Intel

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Bibliografia: Urządzenia techniki komputerowej, K. Wojtuszkiewicz pl.wikipedia.org www.intel.com Procesory rodziny Intel Opracował: Andrzej Nowak

  2. Podstawowe własności procesora Pentium

  3. Podstawowe własności procesora Pentium • 64 – bitowa magistrala danych i 32 – bitowa magistrala adresowa. • Praca w trzech trybach • tryb rzeczywisty • chroniony tryb wirtualny • tryb wirtualny 8086

  4. Podstawowe własności procesora Pentium • Sprzętowe mechanizmy ułatwiające projektowanie systemów operacyjnych, wspomagające: • pamięć wirtualną • pamięć wielozadaniową • ochronę zasobów • Architektura superskalarna: • praca potokowa • dwa potoki przetwarzania instrukcji stałoprzecinkowych • Przewidywanie realizacji rozgałęzień programu

  5. Podstawowe własności procesora Pentium • Segmentacja i stronicowanie pamięci • Wewnętrzna jednostka arytmetyki zmiennoprzecinkowej pracująca w trybie potokowym • Dwie wewnętrzne, rozdzielone pamięci podręczne (cache) • pamięć cache dla danych (ang. data cache) • pamięć cache dla kodu programu (ang. code cache, instruction cache) • Możliwości współpracy z pamięcią cache drugiego poziomu

  6. Schemat blokowy procesora Pentium

  7. Schemat blokowy procesora Pentium Data cache Code cache MMU Stronicowanie Stronicowanie Data TLB Code TLB Układ generacji adresu Prefetcher + BTB DB 64 Potok U Potok V Potok V Potok U Kolejka (64 B) Kolejka (64 B) ALU potoku U 32 AB BIU Dekoder Rejestry poziom 1 CB ALU potoku V poziom 2 Układ sterowania NPU ROM

  8. Schemat blokowy procesora Pentium - opis Data cache – blok pamięci przeznaczony do przechowywania danych i wyników działania programu. Code cache – blok pamięci zawierający kody instrukcji wykonywanego programu Zastosowanie rozdzielonych pamięci danych i programu umożliwia jednoczesne pobieranie kodu instrukcji i zapis/odczyt danych.

  9. Schemat blokowy procesora Pentium - opis Prefetcher – (układ wstępnego pobierania instrukcji) ma za zadanie wcześniejsze pobieranie kodów instrukcji programu i umieszczanie ich w kolejce rozkazów. BTB – bufor rozgałęzień (ang. Branch Target Buffer) jest częścią układu przewidywania realizacji rozgałęzień. Potok U i V – układy przetwarzające instrukcje potokowo, tzn. w ustalonej kolejności.

  10. Schemat blokowy procesora Pentium - opis Dekoder – układ dekodowania instrukcji, zawiera dwa dekodery, osobny dla potoku U i osobny dla potoku V. Współpracują one z kolejkami rozkazów wypełnianymi przez układ prefetchera. Układ generacji adresu – służy do generowania adresu fizycznego zarówno w trybie rzeczywistym, jak i chronionym. MMU– jednostka zarządzania pamięcią współpracująca z układem generacji adresu w trybie chronionym.

  11. Schemat blokowy procesora Pentium - opis Układy stronicowania TLB – (ang. Translation Look-aside Buffer) umożliwiają efektywną obsługę pamięci w trybie stronicowania Blok wewnętrznego koprocesora arytmetycznego NPU – realizuje wszelkie operacje arytmetyki zmiennoprzecinkowej. BIU – jednostka sterowania magistralami, zapewniająca komunikację procesora z otoczeniem.

  12. Magistrale zewnętrzne procesora Pentium

  13. Magistrale zewnętrzne procesora Pentium Procesor ma 64-bitową magistralę danych i 32 bitową magistrale adresową Magistrale danych można traktować jako zestaw ośmiu ścieżek bajtowych (8 – bitowych). Można nią przesyłać dane 8, 16, 24, 32, i 64-bitowe. Przesyłanie może następować po dowolnym zestawie ścieżek, pod warunkiem że ścieżki te przylegają do siebie. Przesyłanie 24 bitowe będzie występować w przypadku przesyłania dwusłowa (słowa 32-bitowego) położonego na granicy czterosłowa.

  14. Magistrale zewnętrzne procesora Pentium Do magistrali adresowej należą wyprowadzenia A31-A3 oraz BE7#-BE0#. Wewnątrz procesora generowany jest 32-bitowy adres A31-A0. Na zewnątrz wyprowadzane są jednak tylko bity A31-A3. Wybierają one określone czterosłowy (8-bajtów). Pozostałe bity adresu oraz wielkość przesyłanej danej decydują o tym, które sygnały BEx# zostaną uaktywnione. Powoduje to uaktywnienie określonych bajtów czterosłowa i przesłanie ich odpowiadającymi im ścieżkami magistrali danych.

  15. Magistrale zewnętrzne procesora Pentium

  16. Magistrale zewnętrzne procesora Pentium

  17. Blok sterowania magistralami (BIU)

  18. Blok sterowania magistralami (BIU) • W bloku sterowania magistralami możemy wyróżnić następujące układy: • bufor magistrali danych (transcivery) • układy wejściowe i wyjściowe magistrali adresowej • bufory zapisu • układy sterowania rodzajem cyklu magistrali (standardowy lub burst)

  19. Blok sterowania magistralami (BIU) • sygnały sterowania dostępem do magistral • układy komunikacji z zewnętrzną pamięcią cache • sygnały komunikacji z wewnętrzną pamięcią cache • układy generacji i kontroli parzystości

  20. Część wykonawcza

  21. Część wykonawcza Część wykonawcza zawiera dwie 32-bitowe jednostki arytmetyczno logiczne i zestaw współpracujących z nią rejestrów. Tworzą one następujące grupy:

  22. Rejestry ogólnego przeznaczenia EAX, EBX, ECX, EDX, EBP, EDI, ESI, ESP. Są to rejestry 32-bitowe, jednak każdy z nich zawiera rejestry AX, BX, CX i DX będące rejestrami 16-bitowymi. Każdy z nich może być z kolei używany jako dwa oddzielne rejestry 8-bitowe. Noszą one wówczas przykładowo oznaczenia AH, AL., BH, BL. Każdy z wymienionych rejestrów może zawierać dane, na których wykonujemy obliczenia (czyli operandy) oraz wyniki obliczeń. Część wykonawcza

  23. Ponadto poszczególne rejestry pełnią pewne dodatkowe funkcje. EAX – jest akumulatorem – pośredniczy w wymianie informacji z układami wejścia / wyjścia EBX (ang. base register) – może być używany jako rejestr bazowy w adresowaniu pośrednim ECX (ang. Count register) – może pełnić rolę licznika w instrukcji pętli Część wykonawcza

  24. Część wykonawcza • Rejestry EBP zwany wskaźnikiem bazy (ang. base pointer) oprócz przechowywania danych i wyników, umożliwia operacje na stosie bez zmiany zawartości rejestru ESP. • Jest to wykorzystywane do przekazywania poprzez stos argumentów do funkcji w języku C czy Pascal

  25. Rejestry ESI i EDI pełnią dodatkowe funkcje przy operacjach na łańcuchach danych. • Rejestr ESI (ang. source index) zawiera adres źródła, • a EDI (ang. destination index) zawiera adres docelowy dla danych przy operacjach łańcuchowych. • ESP (ang. stack pointer) jest wskaźnikiem stosu Część wykonawcza

  26. Część wykonawcza • FLAGS – rejestr flagowy składający się z flag : stanu, kontrolnych i systemowych • Rejestry CR0, CR2 – CR4 są rejestrami sterującymi pracą określonych układów procesora (na przykład trybem pracy procesora, sposobem pracy pamięci cache, włączaniem bądź wyłączaniem stronicowania).

  27. Rejestry DRx są rejestrami uruchomieniowymi (ang. Debug Register). Umieszczone są w nich adresy pułapek oraz ich status. • Rejestry TRx są rejestrami wspomagającymi testowanie procesora. • Rejestry TR6 i TR7 służą do testowania układu TLB, natomiast rejestry TR3 – TR5 są używane do testowania wewnętrznej pamięci cache. Część wykonawcza

  28. Rejestry MCAR i MCTR służą obsłudze błędnych cykli magistrali. • Rejestr MCAR (ang. Machine Check Address Register) zawiera adres nieudanej operacji, zaś rejestr MCTR (ang. Machine Check Type Register) jej typ. • W skład części wykonawczej wchodzą też dwie jednostki arytmetyczno-logiczne. Podobnie jak potoki, oznaczone są one także literami U i V. Wykonują operacje logiczne oraz stałoprzecinkowe operacje arytmetyczne dla potoków U i V. Część wykonawcza

  29. Praca procesora Pentium w trybie rzeczywistym

  30. Praca procesora Pentium w trybie rzeczywistym W trybie rzeczywistym procesor Pentium, podobnie jak wszystkie poprzednie procesory tej rodziny, zachowuje się jak bardzo szybki procesor 8086. Jedyną różnicą jest obecność fizycznej linii adresowej A20, powodującą brak zawijania się adresu dla tego procesora.

  31. Układ generacji adresu fizycznego

  32. Układ generacji adresu fizycznego w trybie rzeczywistym 15 0 3 0 15 0 CS = 1011001001101101 IP = 0100011111110011 Rejestr segmentowy Adres efektywny 0000 CS 0000 + IP Σ AF AF = 10110110111011000011 lub heksadecymalnie 19 0 B2D6 0 + 47F 3 Adres fizyczny jedno zero hex odpowiada czterem zerom binarnym B6EC3

  33. Układ generacji adresu fizycznego w trybie rzeczywistym Wszystkie rejestry procesorów 8086/88 były 16 bitowe i taką szerokość miała też magistrala danych. Natomiast magistrala adresowa była 20-bitowa. Wymagało to układu, który na podstawie 16-bitowych wartości pozwoliłby wygenerować 20-bitowy adres. 20-bitowy adres fizyczny obliczany jest jako suma dwóch składników: zawartości jednego z rejestrów segmentowych przemnożonej przez 16 (zawartości do której dopisano 4 zera w zapisie binarnym) oraz tak zwanego adresu efektywnego wynikającego z aktualnie wykonywanego fragmentu rozkazu i używanego trybu adresowania.

  34. Zestaw rejestrów segmentowych: • CS – rejestr segmentu programu • DS – rejestr segmentu danych • SS – rejestr segmentu stosu • ES, GS, FS – rejestry dodatkowych segmentów danych.

  35. Układ generacji adresu fizycznego w trybie rzeczywistym Każdy program może mieć cztery rodzaje segmentów. Segmenty te mogą być rozłączne lub mogą się częściowo, lub całkowicie pokrywać Interpretacja takiego sposobu generowania adresu fizycznego jest prosta.(patrz rysunek)

  36. Interpretacja adresowania pamięci w trybie rzeczywistym Adres 00000h Początek segmentu (zawartość rejestru segmentowego * 16) przesunięcie (adres efektywny) 64 kB 1 MB adresowana komórka pamięci okno, przez które widziana jest pamięć FFFFFh Pamięć

  37. Układ generacji adresu fizycznego w trybie rzeczywistym Zawartość rejestru segmentowego przemnożona przez 16 podaje nam adres początkowy danego segmentu w pamięci. Od tego początku odsuwamy się o ilość komórek podaną w adresie efektywnym. Ponieważ adres efektywny jest liczbą 16-bitową, maksymalna odległość odczytywanej komórki od początku segmentu wynosi 65536 B (bitów) – 64 KB. Pamięć jest więc widziana przez procesor poprzez okno wielkości 64 KB. Okno to można przesuwać, przeładowując rejestry segmentowe, jednakże ze skokiem nie mniejszym niż 16 B.

  38. Układ generacji adresu fizycznego w trybie rzeczywistym W ramach ustalonego okna komórkę, na której zostanie wykonana operacja, wybieramy przy pomocy adresu efektywnego. Wynikiem sumowania dwóch podanych wartości jest liczba 20-bitowa (bo do 16-bitowej wartości w rejestrze segmentowym dopisujemy 4 zera)

  39. Układ generacji adresu fizycznego w trybie rzeczywistym Z metody generacji adresu fizycznego wynika też sposób podawania adresu określany jako segment (przesunięcie),stosowany w wielu programach. Adres fizyczny podajemy jako dwie liczby, które należy zsumować zgodnie z regułą tworzenia adresu fizycznego. Sposób ten wprowadza pewną niejednoznaczność, ponieważ ten sam adres można zapisać na wiele sposobów.

  40. Układ generacji adresu fizycznego w trybie rzeczywistym Niejednoznaczność ta nie prowadzi do problemów, gdyż po pierwsze otrzymywany adres fizyczny jest w każdym przypadku taki sam, a w realnych sytuacjach w adresie segment (przesunięcie) podajemy zwykle rzeczywistą zawartość rejestru segmentowego, co jednoznacznie określa także przesunięcie.

  41. Układ generacji adresu fizycznego w trybie rzeczywistym Do rejestrów segmentowych mogą być ładowane dowolne wartości, co pozwala na różnorodne ustawienie segmentów względem siebie.

  42. Przykładowe rozmieszczenie segmentów w pamięci Adres 00000 2A000 Segment programu CS=2A00h DS=41FFh SS=4FFFh ES=4FFFh 41FF0 Segment danych nałożenie się adresów 4FFF0 Segment stosu i dodatkowy

  43. Układ generacji adresu fizycznego w trybie rzeczywistym O tym który segmentowy zostanie użyty do obliczenia adresu fizycznego, decydują określone reguły:

  44. Praca procesora w trybie chronionym

  45. Chroniony tryb wirtualny(ang. protected virtual mode). W trybie tym procesor wykorzystuje swoje pełne możliwości. Używa 32 bitów adresu, co pozwala zaadresować 4 GB fizycznej pamięci. Ponadto dostępne są sprzętowe mechanizmy wspomagające obsługę pamięci wirtualnej, pracy wielozadaniowej i ochrony zasobów. W trybie chronionym możliwe jest też użycie mechanizmu stronicowania przy adresowaniu pamięci.

  46. Praca procesora Pentium w trybie chronionym pozwala na efektywne stosowanie (implementację) przez systemy operacyjne mechanizmów pamięci wirtualnej.

  47. Logiczny model procesora

  48. Logiczny model procesora 1. RISC - pochodzi od (ang. Reduced Instruction Set Computing) – opisuje procesor zaprojektowany w taki sposób, że wykorzystywana jest zredukowana liczba instrukcji. RISC nie ma tak naprawdę zredukowanej listy instrukcji, ponieważ dzisiejsze procesory są bardzo złożone technologicznie.

  49. Cechy procesorów RISC • architektura odczytaj i zapisz • w wysokim stopniu regularne instrukcje, które w łatwy sposób mogą przechodzić przez kanał • wiele rejestrów • rejestry, szyna danych i szyna adresowa o szerokości co najmniej 32 bitów (lub więcej)

More Related