[Referat]Systemy mikroprocesorowe – budowa, architektura, zastosowania

Usługi pogrzebowe w Lublinie. Zakład Pogrzebowy działający na ...

Spis Tre¶ci

1. Wstêp

2. Architektura

2.1 Budowa Procesora
2.2. Wnêtrze procesora
2.3. Obudowy zewnêtrzne procesorów
2.4. Ch³odzenie procesora

3. Zasada dzia³ania

4. Dodatki multimedialne


5. Budowa typowego procesora
5.1.Budowa przyk³adowego procesora (AMD-K6)
5.2. Rejestry
5.3. Uk³ad logiczny skoków
5.4. Pamiêæ podrêczna (cache), wstêpne wywo³anie rozkazów (instruction prefetch) i bity dekodowania wstêpnego (predecode bits)
5.4.1. Pamiêæ podrêczna (cache)
5.4.2. "Opuszczenia" pamiêci podrêcznej (cache misses)
5.4.3. Wstêpne pobranie informacji (prefetching)
5.4.4. Bity dekodowania wstêpnego (predecode bits)

6. Wywo³anie i dekodowanie rozkazów
6.1. Wywo³anie rozkazów
6.2. Dekodowanie rozkazów

7. Centralny program szereguj±cy operacje (scheduler)
7.1. Jednostki wykonawcze
7.2. Docelowy bufor skokowy
7.3. Stos z adresami skoków powrotnych.
7.4. Modu³ wykonywania skoków

8. Rodzaje socketów


1. Wstêp
Procesor (CPU - centralna jednostka wykonawcza ang. Central Procesing Unit) to uk³ad scalony, którego dzia³anie polega na wykonywaniu instrukcji programów. Nadzoruje on i synchronizuje prace wszystkich urz±dzen w komputerze. Charakterystyczne cechy, które odró¿niaj± procesory od siebie to:
    larchitektura (CISC lub RISC)l lliczba bitów przetwarzana w jednym takciel lczêstotliwo¶æ taktowania podawana w MHzl
Wszystkie wspó³czesne procesory maja podobna architekturê oparta na superskalarnym j±drze RISC (architektura procesora o uproszczonej li¶cie rozkazów). Jeszcze kilka lat temu procesory zaliczano do rodziny CISC (architektura procesora wykorzystuj±ca z³o¿on± listê rozkazów). Dzisiaj, dziêki zastosowaniu w nich techniki przekodowywania rozkazów, uzyskano ogromne zwiêkszenie wydajno¶ci procesora, a RISC-owa konstrukcja umo¿liwia stosowanie wysokich czêstotliwo¶ci zegara.

2. Architektura

2.1 Budowa procesora
Procesor (Central Procesing Unit) jest najwa¿niejszym elementem komputera. Istnieje wiele ró¿nych typów procesorów, ale prym wiod± produkty kompatybilne z rodzin± x86 pochodz±ce od firm Intel, AMD i ostatnio VIA. Wykonuje on wszelkiego rodzaju obliczenia, jakie wystêpuj± w systemie.

Choæ dzisiejsze procesory posiadaj± bardzo z³o¿on± architekturê to jednak mo¿na wyró¿niæ kilka najwa¿niejszych bloków, s± nimi: jednostka arytmetyczno logiczna (ALU), uk³ad sterowania i bloki rejestrów. ALU odpowiedzialna jest za wykonywanie obliczeñ, których wyniki po¶rednie i koñcowe przechowywane s± w rejestrach. Wszystkim tym zarz±dza jednostka steruj±ca, która pobiera rozkazy z pamiêci dekoduje je i wykonuje.

Ogólny schemat procesora
http://img401.imageshack.us/img401/4036/prostyxj5.jpg

Procesor sk³ada siê z:
    lzespo³u rejestrów do przechowywania danych i wyników;l ljednostki arytmetycznej (arytmometr) do wykonywania prostych operacji na danych;l luk³adu steruj±cego przebiegiem obliczeñ;l lrejestru rozkazów, czyli operacji podstawowych.l

2.2. Wnêtrze procesora
Prêdko¶æ operacji procesora jest mierzona w ich ilo¶ci na sekundê i podawana w MHz. Od tej warto¶æ zale¿y moc naszego procesora. Nie jest to jednak jedyny wyznacznik sprawno¶æ i choæ dzisiejsze procesory przeznaczone dla PC- tów s± bardzo zbli¿one, je¿eli chodzi obudowê wewnêtrzn± to jednak producenci stosuj± ró¿ne rozwi±zania techniczne i te widoczne go³ym okiem i te g³êboko ukryte w strukturze uk³adu.

Dzisiejsze procesory wykonywane s± w technologii 0,25 i 0,18 mikrometra, czyli tyle wynosi szeroko¶æ ¶cie¿ek ³±cz±cych poszczególne elementy (na jednym milimetrze zmie¶ci³oby siê ich ponad 5500!!), a liczba tych drugich siêga milionów na pojedynczej p³ytce krzemu. Stosowane s± tak¿e jednostki zmienno-przecinkowe (nawet kilka takich uk³adów), które s± wyspecjalizowane w obliczeniach dokonywanych na liczbach zmiennoprzecinkowych. Od wydajno¶ci tych uk³adów zale¿y prêdko¶æ przetwarzania danych w grach i programach wspomagaj±cych projektowanie.

Procesor komunikuje siê z otoczeniem poprzez magistralê systemow± z czêstotliwo¶ci± zale¿n± od jego typu np. 66, 100, 133 MHz. Jest to warto¶æ kilkakrotnie ni¿sza ni¿ czêstotliwo¶æ pracy samego procesora, co powodowa³oby oczekiwanie przez niego na dane i rozkazy przesy³ane z pamiêci systemowej. Nale¿y dodaæ, ¿e wspó³czesne procesory posiadaj± j±dro superskalarne typu RISC (zredukowana liczba rozkazów), które umo¿liwia pracê potokow± tzn. nim zakoñczy siê procedura obs³ugi jednego rozkazu rozpoczyna siê ju¿ przetwarzanie nastêpnego (do 20). Wszystko to powoduje, ¿e procesor przetwarza ogromne ilo¶ci danych.

Aby skróciæ czas oczekiwania procesory wyposa¿ono w pamiêæ podrêczn± (L1, L2) pracuj±c± z czêstotliwo¶ci procesora. Stanowi ona swego rodzaju bufor tzn. dane s± do niej ³adowane nim procesor siê o nie upomni. Oczywi¶cie sprawa jest du¿o bardziej skomplikowana, bo stosowane s± ró¿nego rodzaju uk³ady prognozowania tego, jakie dane procesor bêdzie potrzebowa³.

Przyk³ad skomplikowanej budowy wewnêtrznej:
http://img401.imageshack.us/img401/4...mage037vs8.gif

2.3. Obudowy zewnêtrzne procesorów
Zewnêtrzne ró¿nice w budowie procesorów – to oczywi¶cie rodzaj obudowy i typ z³±cza. Tak zwany Slot 1 przeznaczony jest dla procesorów firmy Intel tj. Pentium II/III i pierwszych Celeronów, pó¼niejsze modele pracuj± na z³±czu Socket 370. Stosuj±c odpowiedni± przej¶ciówkê mo¿na procesor ze z³±czem Socket zainstalowaæ w gnie¼dzie Slot. Konkurencyjna firma AMD stosuje dla jednostek K6-2/3 gniazdo Socket 7, a najnowszy Athlon z³±cze typu Slot A.

Ró¿norodno¶æ gniazd powoduje to, ¿e stosowane s± niezamiennie dedykowane dla danego procesora p³yty g³ówne. Dlatego zakup danego procesora determinuje architekturê p³yty g³ównej i pó¼niejsz± mo¿liwo¶æ rozbudowy. Poni¿ej na zdjêciach przedstawiono ró¿ne typy obudów procesorów.

Ró¿ne typy obudów procesorów:
http://img442.imageshack.us/img442/4848/obudowyxg9.jpg

2.4. Ch³odzenie procesora
Mimo i¿ napiêcia zasilania procesorów s± niskie (oscyluj± wokó³ 1,5V), moc wydzielana przez uk³ad jest znaczna np. Pentium ok. 15W, a Athlon przy poborze pr±du rzêdu 27A wydziela ponad 30W. I choæ struktury pó³przewodnikowe wytrzymuj± ok. 150 stopni to jednak wzrost temperatury ponad zalecan± przez producenta mo¿e powodowaæ zawieszanie siê systemu, a nawet uszkodzenie procesora.. Dlatego bardzo wa¿n± spraw± jest ch³odzenie.

Czasami stosowane wentylatory nie wystarczaj±, nale¿ zadbaæ o to, aby styk procesor-radiator wykazywa³ nisk± oporno¶æ termiczna. Pomagaj± w tym specjalne pasty silikonowe, którymi smarujemy powierzchniê styku. Jest to szczególnie wa¿ne w przypadku podkrêcania procesora i w tym wypadku nale¿y bezwzglêdnie monitorowaæ temperaturê uk³adu.
3. Zasada dzia³ania

Ze wzglêdu na przep³yw danych i rozkazów w procesorze, mo¿na wyró¿niæ w nim kilka zasadniczych modu³ów:

1. Blok wstêpnego pobierania i dekodowania instrukcji. Odpowiada on za dostarczenie kolejnych poleceñ z pamiêci operacyjnej i przekazanie ich do odpowiedniej jednostki wykonawczej.
2. G³ówny blok wykonawczy to jednostka arytmetyczno-logiczna ALU. Zapewnia ona prawid³owe przetworzenie wszystkich danych sta³oprzecinkowych. ALU wyposa¿ony jest w niewielka zintegrowana pamiêæ, nazywana zestawem rejestrów. Ka¿dy rejestr to pojedyncza komórka u¿ywana do chwilowego przechowywania danych i wyników.
3. FPU, czyli koprocesor wykonuj±cy wszystkie obliczenia zmiennoprzecinkowe.
4. Po zakoñczeniu "obliczeñ" dane bêd±ce wynikiem przetwarzania trafiaj± do modu³u wyj¶ciowego procesora. Jego zadaniem jest przekierowanie nadchodz±cych informacji np. do odpowiedniego adresu w pamiêci operacyjnej lub urz±dzenia wej¶cia/wyj¶cia.

4. Dodatki multimedialne

Producenci nowoczesnych procesorów za podstawowy kierunek rozwoju technologicznego obrali rozszerzenie multimedialnych mo¿liwo¶ci uk³adu. Poszerzone listy rozkazów operuj±ce na stalo- i zmiennoprzecinkowych macierzach znacz±co przyspieszaj± obróbkê grafiki, d¼wiêku czy generowanie obrazów 3D.

MMX
Pierwszym wprowadzonym rozszerzeniem multimedialnym, wbudowanym we wszystkie obecnie produkowane modele procesorów, jest zestaw 57 instrukcji arytmetyki sta³oprzecinkowej typu SIMD, znany pod nazwa MMX.

3DNow!
Firma AMD wprowadzi³a 21 nowych instrukcji zmiennoprzecinkowych typu SIMD-FP zorientowanych na wspomaganie grafiki trójwymiarowej. By³ to pierwszy przypadek wprowadzenia tak istotnych zmian do architektury procesora przez firmê inna ni¿ Intel. SIMD-FP procesorów AMD wykorzystuje do dzia³ania po³±czone w pary 64-bitowe rejestry MMX - co niestety, utrudnia automatyczna optymalizacje kodu programu, gdy¿ wymagany jest podzia³ danych na dwa segmenty.

SSE
Równie¿ Intel wprowadzi³ w swoich procesorach Pentium III, instrukcje zmiennoprzecinkowe SIMD-FP. Instrukcje te s± wykonywane przez wyspecjalizowana jednostkê operuj±c± na o¶miu 128-bitowych dedykowanych rejestrach - co sprzyja optymalizacji kodu programu.

SSE2
Zestaw instrukcji SSE poszerzony o 144 nowe rozkazy umo¿liwiaj±ce operacje na 128-bitowych rejestrach (XMM0..15) zawieraj±cych liczby zmiennoprzecinkowe o pojedynczej (32 bit) i podwójnej (64 bit) precyzji oraz 128-bitowych operandach sta³opozycyjnych. Technologia ta zosta³a wprowadzona w procesorach rodziny Pentium 4.

SSE3
Kolejny zestaw instrukcji SIMD wykorzystywany w architekturze IA-32. SSE3 wprowadza 13 nowych poleceñ w stosunku do swojego poprzednika SSE2. Intel wprowadzi³ SSE3 2 lutego 2004 roku wraz z procesorem Pentium 4 Prescott, natomiast firma AMD w procesorach Athlon 64 od wersji E.

SSSE3
Supplemental Streaming SIMD Extension 3 (SSSE3) jest to zestaw instrukcji SSE czwartej generacji. SSSE3 jest znane równie¿ jako SSE4., wprowadza on 16 nowych instrukcji w stosunku do swojego poprzednika SSE3

AMD64 (tylko AMD)
(x86-64 lub x64) to 64-bitowa architektura procesorów firmy AMD, przeznaczona dla komputerów osobistych (procesory AMD Athlon 64, Athlon 64 FX, Athlon 64 X2, najnowsze wersje procesorów Sempron), komputerów przeno¶nych (Sempron, Turion 64, Turion 64 X2) oraz serwerów i wydajnych stacji obliczeniowych (AMD Opteron). Jest ona rozszerzeniem architektury x86 g³ównie o 64-bitowe rozkazy oraz rejestry. Umo¿liwia tak¿e bezpo¶rednie wykonywanie 16- i 32-bitowego kodu x86.

EM64T (tylko Intel)

Extended Memory 64-bit Technology to nazwa implementacji technologii firmy AMD x86-64 zrealizowana przez firmê Intel. S± to na³o¿one na architekturê x86 dodatkowe instrukcje umo¿liwiaj±ce obs³ugê 32- i 64-bitowych aplikacji.
5. Budowa typowego procesora
Mikroprocesor jest to arytmetyczno-logiczna jednostka centralna komputera. Termin mikroprocesor zosta³ u¿yty po raz pierwszy w 1972 r., jednak¿e "era" mikroprocesorów rozpoczê³a siê w 1971 r. wraz z wprowadzeniem przez firmê Intel uk³adu 4004 -mikroprogramowalnego komputera jednouk³adowego. W uk³adzie tym umieszczono 4 bitowy sumator, 16 czterobitowych rejestrów, akumulator i stos, czyli podstawowe podzespo³y jednostki centralnej systemu komputerowego. Uk³ad 4004, sk³adaj±cy siê z 2300 tranzystorów, móg³ wykonywaæ 445 ró¿nych instrukcji, przy czym architektura by³a zbli¿ona do uk³adów kalkulatorowych.

Mikroprocesor nie jest jednostk± zdoln± do samodzielnej pracy, lecz wymaga po³±czenia z innymi uk³adami systemu komputerowego, takimi jak pamiêæ oraz uk³ady wej¶cia/wyj¶cia. Uk³ady te s± po³±czone szynami: adresow±, danych i steruj±c±. Procesor realizuje operacje arytmetyczno - logiczne i koordynuje pracê ca³ego systemu. Pamiêæ przechowuje program w postaci ci±gu instrukcji oraz dane niezbêdne do realizacji wykonywanego programu i wyniki koñcowe.

Uk³ady We/Wy po¶rednicz± w przekazywaniu informacji pomiêdzy procesorem, pamiêci± a urz±dzeniami zewnêtrznymi lub innymi obiektami bêd±cymi ¼ród³em lub odbiorc± informacji przetwarzanych w systemie.

W standardowym procesorze mo¿emy wyró¿niæ trzy bloki po³±czone systemem szyn wewnêtrznych. S± to sekcja arytmetyczno - logiczna, blok rejestrów i sekcja sterowania. Struktura ta przedstawiona jest na rysunku.

5.1. Budowa przyk³adowego procesora (AMD-K6)

Mikroarchitektura RISC86 procesora AMD-K6 MMX Enhanced oparta jest na projekcie superskalarnym z odsprzê¿onym dekodowaniem i wykonywaniem instrukcji, który umo¿liwia wysokie osi±gi procesora tej klasy przy pe³nej zgodno¶ci z oprogramowaniem typu x86. Projekt zawiera liczne innowacyjne technologie, jak przyk³adowo dekodowanie wielokrotne rozkazów x86, wewnêtrzne operacje RISC wykonywane w jednym cyklu zegara, nieuporz±dkowane przetwarzanie, dalsze przekazywanie danych, spekulacyjne wykonywanie operacji i przemianowywanie rejestrów.

Ponadto procesor AMD-K6 operuje na równoleg³ych uk³adach dekoduj±cych i zawiera centralny program szereguj±cy operacje RISC86 (scheduler) oraz siedem jednostek wykonawczych, umo¿liwiaj±cych superskalarne przetwarzanie rozkazów typu x86. Te elementy zawarte s± w szybkiej, sze¶ciostopniowej jednostce przetwarzania potokowego (six-stage pipeline). Mikroarchitektura RISC86 firmy AMD przetwarza wewnêtrznie zbiór rozkazów x86 na operacje RISC86. Argumenty operacji o sta³ej d³ugo¶ci, ujednolicone bloki rozkazów i obszerny zestaw rejestrów gwarantuj± osi±gniecie pe³nej mocy RISC bez konieczno¶ci rezygnowania z kompatybilno¶ci z systemem x86.

Mikroarchitektura RISC86 umo¿liwia budowê szybkiego rdzenia procesora i u³atwia bezpo¶rednie rozszerzenia z my¶l± o przysz³ych projektach. Zamiast bezpo¶redniego, kompleksowego przetwarzania rozkazów x86 o sta³ych d³ugo¶ciach od 1 do 15 bajtów, procesor AMD-K6 wykonuje proste operacje RISC86 o sta³ej d³ugo¶ci, nie naruszaj±c przy tym optymalnych ustawieñ w programach bazuj±cych na systemie x86.

Uk³ad logiczny prognozowania skoków procesora AMD-K6 pracuje w oparciu o tabelê z histogramem skoków, zawieraj±c± 8.192 wpisy, oraz docelowy bufor skokowy i stos z adresami skoków powrotnych. Zapewniaj± one ponad 95 % celno¶æ prognozowania.
Uk³ad dekoduj±cy.

Przed zape³nieniem pamiêci podrêcznej rozkazów (instruction cache), zintegrowanej w uk³adzie scalonym, nastêpuje zdekodowanie wstêpne rozkazów x86. Uk³ad logiczny dekodowania wstêpnego ustala d³ugo¶æ rozkazu x86 przez przeliczenie bajtów. Ta informacja zapamiêtywana jest wraz z rozkazem x86 w pamiêci podrêcznej rozkazów (instruction cache) w celu dalszego wykorzystania przez uk³ady dekoduj±ce. Uk³ady dekoduj±ce przetwarzaj± w jednym cyklu zegarowym maksymalnie dwa rozkazy x86 na operacje RISC. Podczas dekodowania rozró¿niane s± trzy klasy rozkazów:
    lrozkazy krótkie - do nich nale¿± najbardziej popularne rozkazy x86l lrozkazy d³ugie - ta klasa obejmuje popularne oraz mniej popularne rozkazyl lrozkazy wektorowe - w tej klasie znajduj± siê kompleksowe rozkazy x86l
Centralny program szereguj±cy operacje (scheduler) / blok sterowania rozkazami (instruction control unit). Centralny program szereguj±cy operacje (scheduler) wraz z buforem jest zarz±dzany przez blok sterowania rozkazami ICU (instruction control unit). Blok ICU dokonuje buforowania, a równocze¶nie steruje maksymalnie 24 operacjami RISC. Wielko¶æ buforu na 24 operacje RISC jest optymalnie dostosowana do korzystania z sze¶ciostopniowej jednostki przetwarzania potokowego RISC86 (six-stage RISC86 pipeline) oraz z siedmiu równoleg³ych jednostek wykonawczych.

Centralny program szereguj±cy operacje przejmuje równocze¶nie maksymalnie cztery operacje RISC z uk³adów dekoduj±cych. Blok ICU jest w stanie przekazaæ podczas jednego cyklu zegarowego maksymalnie sze¶æ operacji RISC do jednostek wykonawczych.

5.2. Rejestry
Podczas zarz±dzania 24 operacjami RISC centralny program szereguj±cy wykorzystuje 48 rejestrów fizycznych, zawartych w mikroarchitekturze RISC86 procesora. Rejestry te znajduj± siê w uniwersalnym zbiorze rejestrów i dziel± siê na 24 rejestry ogólne (general register) oraz
24 rejestry mianowalne (renaming register).

5.3. Uk³ad logiczny skoków.
Procesor AMD-K6 dysponuje dynamicznym uk³adem logicznym skoków, umo¿liwiaj±cym minimalizacjê opó¼nieñ powodowanych przez rozkazy rozga³êzienia (skoku), zwyczajowo stosowane w oprogramowaniu typu x86. Ten udoskonalony uk³ad logiczny skoków pracuje w oparciu o tabelê z histogramem skoków, tabelê prognoz oraz docelowy bufor skokowy i stos z adresami skoków powrotnych. W procesorze zawarty jest ponadto dwustopniowy schemat prognozowania skoków, bazuj±cy na tabeli z histogramem skoków z miejscem na 8.192 wpisy, w której zawarte s± dane prognozowane o rozga³êzieniach (skokach) warunkowych.

Prognozowane adresy docelowe nie wchodz± do tabeli histogramowej ze wzglêdu na oszczêdno¶æ miejsca, lecz ustalane s± bezpo¶rednio podczas dekodowania rozkazu przez specjalne modu³y arytmetyczno-logiczne (ALU), s³u¿±ce do obliczeñ adresowych. Docelowy bufor skokowy przyspiesza prognozowanie skoków, poniewa¿ pozwala on na unikniecie dodatkowego cyklu podczas odczytu pamiêci podrêcznej. Po dokonaniu prognozy skoku docelowy bufor skokowy przekazuje uk³adowi dekoduj±cemu pierwsze 16 bajtów rozkazów docelowych.

5.4. Pamiêæ podrêczna (cache), wstêpne wywo³anie rozkazów (instruction prefetch) i bity dekodowania wstêpnego (predecode bits)
Pamiêæ podrêczna Level-1-Write-Back-Cache procesora AMD-K6 obejmuje po 32 KB na rozkazy i dane z podwójn± asocjacj± czê¶ciow±. Linie pamiêci podrêcznej zape³niane s± z pamiêci operacyjnej przez potokow± operacjê cz±stkow± z wielokrotnym przyspieszeniem (pipelined burst transaction). Podczas wype³niania pamiêci podrêcznej rozkazów ka¿dy bajt rozkazu sprawdzany jest przez uk³ad logiczny dekodowania wstêpnego pod wzglêdem wystêpowania granic rozkazu. Metoda ta pozwala na racjonalne zdekodowanie kilku rozkazów w jednym stopniu jednostki przetwarzania potokowego.

5.4.1. Pamiêæ podrêczna (cache).
Pamiêæ podrêczna procesora jest podzielona na sektory. Ka¿dy sektor zawiera 64 bajty, skonfigurowane w dwóch liniach 32-bajtowych. Linie pamiêci podrêcznej posiadaj± wspólny oznacznik, lecz wykorzystuj± odrêbne pary bitów MESI (Modified, Exclusive, Shared, Invalid), nadzoruj±cych stan poszczególnych linii pamiêci podrêcznej.

5.4.2. "Opuszczenia" pamiêci podrêcznej (cache misses).
O ile rozkazy lub dane niezbêdne do wykonania nie wystêpuj± w pamiêci Level-1-Cache, procesor odczytuje podczas operacji blokowej ("burst") dane z pamiêci. W celu optymalizacji tej operacji procesor stwierdza, które z czterech poczwórnych s³ów w wierszu pamiêci podrêcznej zawiera niezbêdne dane lub potrzebny rozkaz. To poczwórne s³owo zwracane jest jako pierwsze do pamiêci Level-1-Cache, aby procesor móg³ jak najszybciej kontynuowaæ przetwarzanie. Ta metoda zmiany kolejno¶ci transmisji zwiêksza osi±gi procesora, poniewa¿. skraca ona czas oczekiwania, gdy rozkazy lub dane nie s± dostêpne w pamiêci podrêcznej.

5.4.3. Wstêpne pobranie informacji (prefetching).
Procesor AMD-K6 pobiera wstêpnie informacje z pamiêci podrêcznej tylko podczas zmiany sektora pamiêci. Dlatego te¿ najpierw wype³niana jest niezbêdna linia pamiêci podrêcznej, po czym nastêpuje pobranie informacji z drugiej linii pamiêci. Na magistrali zewnêtrznej obie transmisje z linii pamiêci podrêcznej pojawiaj± siê jako dwa sprzê¿one, 32-bajtowe cykle odczytu blokowego lub - je¶li jest to dozwolone - jako cykle potokowe (pipelined cycles).

5.4.4. Bity dekodowania wstêpnego (predecode bits)
Dekodowanie rozkazów typu x86 jest szczególnie trudne, poniewa¿. chodzi tu o rozkazy wielobajtowe o d³ugo¶ci od 1 do 15 bajtów. Uk³ad logiczny dekodowania wstêpnego dostarcza bity dekodowania wstêpnego przynale¿ne do ka¿dego bajta rozkazu. Bity te wskazuj±; miedzy innymi liczbê; bajtów do pocz±tku nastêpnego rozkazu typu x86. Bity dekodowania wstêpnego s± zapamiêtywane razem z ka¿dym bajtem rozkazu x86 w rozszerzonej pamiêci podrêcznej rozkazów. Nastêpnie przekazywane s± one wraz z bajtami rozkazu do uk³adów dekoduj±cych w celu uproszczenia dekodowania równoleg³ego i odpowiedniego zwiêkszenia szeroko¶ci pasma.


6. Wywo³anie i dekodowanie rozkazów

6.1. Wywo³anie rozkazów.
Procesor AMD-K6 MMX Enhanced jest w stanie wywo³aæ z pamiêci podrêcznej rozkazów lub z docelowego buforu skokowego maksymalnie 16 bajtów na cykl zegarowy. Wywo³ane informacje przekazywane s± przez 16-bajtowy bufor rozkazowy bezpo¶rednio do uk³adu dekoduj±cego. Wywo³anie mo¿e nast±piæ w jednej sekwencji z maksymalnie siedmioma zaleg³ymi skokami. Uk³ad logiczny wywo³ania rozkazów mo¿e przygotowaæ dowolne 16 powi±zanych bajtów informacyjnych w ramach granicy 32-bajtowej. Nie jest potrzebny dodatkowy cykl karny po wyj¶ciu 16 bajtów rozkazu poza granicê wiersza pamiêci podrêcznej. Bajty rozkazu s± wprowadzane do buforu rozkazowego, gdy uk³ady dekoduj±ce s± w stanie je przetwarzaæ.

6.2. Dekodowanie rozkazów.
Uk³ad logiczny dekodowania jest w stanie przetworzyæ kilka rozkazów typu x86 podczas jednego cyklu zegarowego. Przejmuje on bajty rozkazów x86 oraz przynale¿ne bity dekodowania wstêpnego z buforu rozkazowego, odszukuje granice rozkazów i przetwarza te rozkazy na operacje RISC86. Operacje RISC86 posiadaj± sta³y format i s± wykonywane najczê¶ciej w trakcie jednego cyklu zegarowego. Ka¿da funkcja zbioru rozkazów x86 mo¿e sk³adaæ siê z operacji RISC86. Dla niektórych rozkazów x86 nie jest wymagana operacja RISC86, a niektóre z nich wymagaj± wy³±cznie jednej operacji RISC86. Kompleksowe rozkazy x86 s± rozbijane na kilka operacji RISC86.

W celu przetworzenia rozkazów x86 na operacje RISC86 procesor AMD-K6 wykorzystuje ro¿ne uk³ady dekoduj±ce. Uk³ad scalony zawiera cztery uk³ady dekoduj±ce:

dwa równolegle uk³ady dekoduj±ce na rozkazy krótkie - Uk³ady te przetwarzaj± najprostsze rozkazy x86 na zero, jedn± lub dwie operacje RISC86. Mo¿e nastêpowaæ tu równie¿. równolegle dekodowanie dwóch rozkazów x86 na cykl zegarowy. uk³ad dekoduj±cy na rozkazy d³ugie - Uk³ad ten przetwarza zwyk³e rozkazy x86 na maksymalnie cztery operacje RISC86. uk³ad dekoduj±cy wektorowy - Uk³ad ten przetwarza wszystkie inne rozkazy x86, przy czym przynale¿ne sekwencje operacji RISC86 wywo³ywane s± z ROM-u zintegrowanego w uk³adzie scalonym.

Wszystkie popularne i niektóre nieliczne z mniej stosowanych rozkazów zmiennoprzecinkowych przetwarzane s± w ramach krótkich operacji, które ze swojej strony generuj± operacjê zmiennoprzecinkow± RISC86 oraz - opcjonalnie - asocjacyjn± operacjê zmiennoprzecinkow± lub operacjê w pamiêci. Dekodowanie rozkazów zmiennoprzecinkowych lub ESC (Escape) jest dozwolone wy³±cznie w pierwszym uk³adzie dekoduj±cym krótkim, a rozkazy, które nie stanowi± rozkazów ESC (za wyj±tkiem rozkazów MMX), mog± byæ równie¿ przetwarzane równolegle w drugim uk³adzie dekoduj±cym krótkim.

Wszystkie rozkazy MMX przetwarzane s± w ramach operacji krótkich. Wtedy generowana jest operacja RISC86-MMX i - opcjonalnie - asocjacyjna operacja MMX ³adowania lub pamiêci. Rozkazy MMX mo¿na przetwarzaæ wy³±cznie w pierwszym uk³adzie dekoduj±cym krótkim, dozwolone jest jednak równie¿ równolegle dekodowanie rozkazów, które nie stanowi± rozkazów MMX b±d¼ ESC, w drugim uk³adzie dekoduj±cym krótkim.

7. Centralny program szereguj±cy operacje (scheduler).
Centralny program szereguj±cy operacje (scheduler) jest sercem procesora AMD-K6. Zawiera on uk³ad logiczny, który s³u¿y do sterowania i zarz±dzania nieuporz±dkowanym przetwarzaniem, dalszym przekazywaniem danych, przemianowywaniem rejestrów, równoleg³ym przekazywaniem i wydawaniem operacji RISC86 oraz spekulacyjnym wykonywaniem operacji. Bufor centralnego programu szereguj±cego operacje zawiera maksymalnie do 24 operacji RISC86.

Centralny program szereguj±cy mo¿e przekazywaæ równocze¶nie operacje RISC86 do ka¿dej dostêpnej jednostki wykonawczej (jednostki pamiêci, ³adowania, rozga³êzieñ skoków, liczb ca³kowitych, liczb ca³kowitych, multimediów lub jednostki zmiennoprzecinkowej). W trakcie jednego cyklu zegarowego mo¿e nast±piæ przekazanie do wykonania ogó³em sze¶ciu operacji RISC i przejecie wyników maksymalnie czterech operacji.

Centralny program szereguj±cy operacje wraz z buforem posiada do dyspozycji w dowolnym okresie czasu "okienko" w formie 12 rozkazów kontrolnych x86. Ta zaleta wynika stad, ze program szereguj±cy przetwarza operacje RISC86 równolegle i pozwala procesorowi AMD-K6 na dynamiczne dysponowanie przetwarzaniem rozkazów w celu optymalizacji wykonania programu. Mimo ¿e program szereguj±cy mo¿e przekazywaæ operacje RISC86 do wykonywania nieuporz±dkowanego, wyniki przejmuje on zawsze w uporz±dkowanej kolejno¶ci.

7.1. Jednostki wykonawcze
Procesor AMD-K6 zawiera siedem niezale¿nych jednostek wykonawczych do przetwarzania operacji RISC86:

1. modu³ ³adowania - odczytuje dane z pamiêci operacyjnej za pomoc± dwustopniowego uk³adu potokowego (pipeline); dane te znajduj± siê na wyj¶ciu po dwóch cyklach zegarowych

2. modu³ pamiêci - wykonuje operacje zapisu danych i obliczenia w rejestrach za pomoc± dwustopniowego uk³adu potokowego (pipeline); operacje zapisu danych z buforów w pamiêci oraz w rejestrach s± dostêpne po up³ywie jednego cyklu zegarowego

3. modu³ liczb ca³kowitych X - wykonuje operacje arytmetyczno-logiczne (ALU), mno¿enia, dzielenia, przesuniêcia i cykliczne

4. modu³ multimediów - wykonuje wszystkie rozkazy MMX(TM)

5. modu³ liczb ca³kowitych Y - zajmuje siê; przetwarzaniem zasadniczych operacji arytmetyczno-logicznych (ALU) na s³owach lub s³owach podwójnych

6. modu³ zmiennoprzecinkowy - wykonuje wszystkie rozkazy zmiennoprzecinkowe

7. modu³ rozga³êzieñ (skoków) - inicjuje skoki warunkowe po ich analizie
Uk³ad logiczny prognozowania skoków

Zadaniem udoskonalonego uk³adu logicznego skoków procesora AMD-K6 jest maksymalna eliminacja opó¼nieñ spowodowanych zmianami w normalnym przebiegu programu. Rozga³êzienia (skoki) w programach typu x86 dziel± siê na dwie kategorie: rozga³êzienia (skoki) bezwarunkowe (które zawsze zmieniaj± przebieg programu) oraz rozga³êzienia (skoki) warunkowe (które mog±, lecz nie musza zmieniæ przebiegu programu). O ile skok warunkowy nie nast±pi, procesor kontynuuje proces dekodowania i przetwarzania rozkazów nastêpnych w pamiêci.

Typowe aplikacje zawieraj± do 10 % rozga³êzieñ (skoków) bezwarunkowych i dalsze 10 - 20 % rozga³êzieñ (skoków) warunkowych. Uk³ad logiczny skoków procesora AMD-K6 jest tak zaprojektowany, aby wp³yw skoków na przetwarzanie rozkazów (tzn. opó¼nienie przez wywo³ywanie rozkazów i ja³ow± pracê uk³adu potokowego) by³ jak najmniejszy.

7.2. Docelowy bufor skokowy
Na unikniecie cyklu karnego podczas wywo³ywania rozkazu do prognozowania skoku pozwala przekazanie pierwszych 16 bajtów rozkazów ze zintegrowanego, docelowego buforu skokowego bezpo¶rednio do buforu rozkazowego. Docelowy bufor skokowy obejmuje 16 wpisów po 16 bajtów ka¿dy. Uk³ad logiczny prognozowania skoków zapewnia ogó³em ponad 95 % celno¶æ prognozowania.

7.3. Stos z adresami skoków powrotnych.

Stos z adresami skoków powrotnych optymalizuje wykonywanie parami operacji CALL i RET. W celu oszczêdno¶ci miejsca oprogramowanie tworzone jest z zasady na bazie podprogramów standardowych, do których nastêpuje bezpo¶redni dostêp z ro¿nych miejsc w programie. Wej¶cie do podprogramu standardowego odbywa siê przy wykorzystaniu rozkazu CALL. Gdy procesor rozpozna rozkaz RET, uk³ad logiczny skoków wydobywa adres skoku powrotnego ze stosu i odczytuje nastêpne rozkazy od tego miejsca w pamiêci. Przy wykonywaniu rozkazów CALL i RET adresy skoków powrotnych wprowadzane s± do pamiêci stosowej w celu unikniêcia opó¼nieñ, spowodowanych dostêpem do pamiêci operacyjnej.

7.4. Modu³ wykonywania skoków
Modu³ ten umo¿liwia szybkie, spekulacyjne wykonywanie operacji, poniewa¿ zezwala on procesorowi na kontynuacje przetwarzania poza warunkowymi rozga³êzieniami (skokami) jeszcze zanim nast±pi stwierdzenie, czy prognoza skoku by³a prawid³owa. Procesor AMD-K6 uaktualnia rejestry x86 i miejsca w pamiêci dopiero po rozwi±zaniu wszystkich, wykonywanych spekulacyjne, warunkowych rozkazów skoku. Mo¿liwe jest zapamiêtanie maksymalnie siedmiu zaleg³ych rozga³êzieñ (skoków).
8. Rodzaje socketów
http://img442.imageshack.us/img442/6181/soketydc6.jpg
Bibliografia
http://klub.chip.pl
http://www.wikipedia.pl
http://www.dzikie.net
http://ocforum.pl
http://www.idg.pl
Jestem pod wra¿eniem, wysoko stawiasz poprzeczkê :mrgreen:
Ja te¿ mia³em robiæ recenzje, ale a¿ zw±tpi³em po ujrzeniu tego...
Mike, nie zniechêcaj siê :)

Poka¿, ¿e, nawet je¿eli, przypu¶æmy, Twój artyku³ nie zosta³by MiniArtyku³em Miesi±ca, warto spróbowaæ, warto podzieliæ siê opini± na temat danego sprzêtu z innymi :)
:zdziwko: dzisiaj zacz±³em moj pierwszy mini artyku³ ale chyba sobie odpuszcze...bo az wstyd :( z czym stakim sie wypusciæ dark_reaver za³ama³em sie....
ale ja wam powiem, ¿e nie robilem tego dla potrzeb forum ;) robi³em to ¿eby zaliczyæ przedmiot w szkole :D

No i ch³opaki nie za³amujcie sie! Jak wspomnia³ Allen poprzeczka jest do¶æ wysoko ale to nie oznacza, ¿e macie zrezygnowaæ! Do roboty! I pamiêtajcie o jednym "Nie liczy siê ilo¶æ ale jako¶æ"
No i jak tak wszyscy bêd± rezygnowac to zostane sam na placu boju :/

doYczekebana nie wiem o czym chcia³e¶ pisaæ ale napisz to! To samo tyczy siê ciebie Mike ;)

mam nadzieje, ¿e moje pieprzenie was choæ troche zmobilizuje ;)
nie no masakra gratuluje zapalu i checi jak i efektu koncowego :)
bardzo ciekawy artykul :)
hmm no to ja od razu odpadam :pruchno:

pamiêtajcie, ¿e bêdzie g³osowanie jeszcze ;)

p.s. good work
dobra robora :D

P.S. szkoda ze w "rodzaje socketow" zapomniales o AM2 :2green:
Bardzo dobry artyku³, zw³aszcza dla osoby, która dopiero rozpoczyna kontakt z komputerem. Respekt!!
Pozdrawiam
W±tek powraca, a kwestia plagiatów zosta³a wyja¶niona w w±tku o dyskusji. Tam te¿ proszê kierowaæ cenne uwagi dotycz±ce ewentualnych nie¶cis³o¶ci.
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • konstruktor.keep.pl