x86 - Rewizja procesorów z rodziny x86 (by MeMeK, 07.08.06) @ wyklady.net

[12:27] <MeMeK> wiec ja jestem MeMeK
[12:27] <MeMeK> i poprowadze dzisiaj dla was wyklad
[12:27] <MeMeK> o architekturze x86
[12:27] <MeMeK> pomowimy sobie o ogolnej zasadzie
[12:27] <MeMeK> i pare spraw "szczegolnych"
[12:27] <MeMeK> wiec na poczatek..
[12:27] <MeMeK> czym w ogole jest procesor
[12:28] <MeMeK> dobrze mowi angielska definicja
[12:28] <MeMeK> CPU
[12:28] <MeMeK> Central Processing Unit
[12:28] <MeMeK> czyli centralna jednostka wykonawcza
[12:29] <MeMeK> gdy piszemy jakies slowo na irc ;) to ono sie od razu (prawie) pojawia
[12:29] <MeMeK> na ekranie
[12:29] <MeMeK> wlasnie za sprawa cpu
[12:29] <MeMeK> zasadniczo cpu ma 3 zadania
[12:29] <MeMeK> 1: pobrac dane
[12:29] <MeMeK> 2: wykonac rozkaz
[12:30] <MeMeK> 3: zapamietac wynik
[12:30] <MeMeK> zacznijmy od polozenia cpu w komputerze
[12:30] <MeMeK> oczywiscie blokowo

[12:31] <MeMeK> jest to architektura von Neumanna
[12:31] <MeMeK> czyli widac ze cpu jest polaczony z pamiecia i uzadzeniami i/o
[12:31] <MeMeK> polaczenie to jest zrealizowane
[12:32] <MeMeK> za pomoca magistral
[12:32] <MeMeK> ang. buses
[12:32] <MeMeK> i tak wyrozniamy 3 magistrale
[12:32] <MeMeK> adresowa
[12:32] <MeMeK> danych
[12:32] <MeMeK> i sterujaca
[12:32] <MeMeK> istnieje jeszcze inna architektura
[12:33] <MeMeK> harwardzka
[12:33] <MeMeK> bo wymyslili ja w harwardzie
[12:33] <MeMeK> jednak sie nie przyjela
[12:33] <MeMeK> ona wyroznia jeszcze jedna magistrale
[12:33] <MeMeK> magistrale instrukcji
[12:33] <MeMeK> ale nie bedziemy o tym mowic
[12:34] <MeMeK> zanim sobie powiemy jak dzialaja magistrale
[12:34] <MeMeK> musimy wiedziec z czego wlasciwie jest to wszystko zrobione
[12:34] <MeMeK> znaczy sie magistrale to oczywiscie zwykle polaczenia
[12:34] <MeMeK> ale pamiec, cpu...
[12:35] <MeMeK> jak wiemy mamy kilka operacji logicznych
[12:35] <MeMeK> (bo to sa urzadzenia logiczne0
[12:35] <MeMeK> or, xor, and, neg ...itp
[12:36] <MeMeK> moznaby zbudawac dla kazdej z nich odpowiedni uklad
[12:36] <MeMeK> ktory by wykonywal odpowiednie dzialanie
[12:36] <MeMeK> ale przy duzej skali integracji
[12:36] <MeMeK> to jest trudne
[12:36] <MeMeK> dlatego na scenie pojawia sie cos nowego
[12:36] <MeMeK> bramka nand

[12:37] <MeMeK> to jej symbol
[12:37] <MeMeK> pozostale _HIPOTETYCZNE_ bramki maja takie symbole

[12:38] <MeMeK> hipotetyczne dlatego ze sie ich nie stosuje
[12:38] <MeMeK> wszystkie operacja (or, xor, and...)
[12:38] <MeMeK> mozna wykonac za pomoca tej bramki, a raczek odpowiedniej kombinacji takich bramek
[12:38] <MeMeK> wiec to bardzo nam upraszcza sprawe
[12:39] <MeMeK> krotko o budowie pamieci (tej zwanej RAMem i rejestrach)
[12:39] <MeMeK> wiec okazalo sie ze prezydaloby sie gdzies zapamietac wyniki obliczen
[12:39] <MeMeK> ;>
[12:40] <MeMeK> dlatego za pomoca bramek nand powstaly przerzytniki
[12:40] <MeMeK> *przerzutniki
[12:40] <MeMeK> najprostszy to przerzutnik SR

[12:41] <MeMeK> pozwala on na zapisanie odpowiedniej wartosci gdzies dalej (w kondensatorze)
[12:42] <MeMeK> jako ze brami nand maja stosunkowa prosta budowe

[12:42] <MeMeK> dlatego takie pamieci sa latwe do zrobienia i szybkie
[12:43] <MeMeK> na obrazku widac schemat ideowy bramki nand
[12:43] <MeMeK> na wejsciu jest uklad logiczny AND
[12:43] <MeMeK> zlozony z dwoch diod d1 i d2
[12:44] <MeMeK> diody te sa zasilane z napiecia Ec
[12:44] <MeMeK> poprzez rezystory R1 i R2
[12:44] <MeMeK> Tranzystor (to okragle) pelni w ukladzie role separatora
[12:45] <MeMeK> i jednoczesnie wykonuje funkcje logiczna NOT
[12:45] <MeMeK> tak nawiasem jest to najbardziej "grzejacy" sie element
[12:46] <MeMeK> to on jest odpowiedzialny za duza czesc ciepla wydzielanego przez te uklady

[12:46] <MeMeK> jest to pojedyncza komorka pamieci ram
[12:47] <MeMeK> SYNCHRONICZNEJ
[12:47] <MeMeK> czyli jest wspolbierzna z zegarem

[12:48] <MeMeK> z przerzutnika RS powstal przerzutnik D
[12:48] <MeMeK> ktory daje nam synchronizacje w rejestrach z zegarem
[12:48] <MeMeK> ale co to ten zegar
[12:48] <MeMeK> no wiec
[12:48] <MeMeK> zegar
[12:49] <MeMeK> to uklad ktory generuje na lini sygnal 1 0
[12:49] <MeMeK> czyli pzrelacza stan wzbudzony na stan niski i na odwrot
[12:49] <MeMeK> w celu synchronizacji systemu
[12:49] <MeMeK> robi to bardzo szybko
[12:50] <MeMeK> miliony a teraz juz miliardy razy na sek
[12:50] <MeMeK> wiec posiada czestotliwosc
[12:50] <MeMeK> mierzona w hercach
[12:50] <MeMeK> Hz
[12:51] <MeMeK> 1MHz (mega herc) to milion hercow
[12:51] <MeMeK> a 1 GHZ (giga herc) to miliard hercow
[12:51] <MeMeK> dlatego jeden takt zegarowy (czas przelaczenia z 1 na 0 i z powrotem)
[12:51] <MeMeK> jest bardzo krotki
[12:52] <MeMeK> jest to wartosc 1 / f
[12:52] <dragon> re
[12:52] <MeMeK> czyli odwrotnosc czestotliwosci
[12:52] <MeMeK> sa to wartosci rzedu nanosekund
[12:53] <MeMeK> czesto mowi sie ze "ja to mam procesor 32 bit a ty masz 64 bit"
[12:53] <MeMeK> co to znaczy
[12:53] <MeMeK> czym jest szerokosc procesora
[12:54] <MeMeK> jest to ilosc danych jaka procesor moze przyjac/wyslac za jedym zamachem
[12:54] <MeMeK> czyli po prostu wielkosc magistrali danych
[12:54] <MeMeK> nastepna magistrala sterujaca
[12:55] <MeMeK> to tak naprawde zbior sygnalow
[12:55] <MeMeK> mowiacej o aktualnym stanie procesora i innych urzadzen
[12:55] <MeMeK> wyszczególniają kierunek przepływu danych.inne sygnały zwierają system taktowania,linie
[12:55] <MeMeK> przerwań,linie stanu itd
[12:56] <MeMeK> sa tam dwie ciekawe linie
[12:56] <MeMeK> odczyt i zapis
[12:56] <MeMeK> gdy cpu nie zapisuje ani nie odczytuje danych sa ustawione na 1
[12:57] <MeMeK> gdy np zapisuje to linia zapisu jest na 0
[12:57] <MeMeK> a odczytu na 1
[12:57] <MeMeK> magistrala adresowa
[12:58] <MeMeK> czyli droga ktora procesor wysyla adres do pamieci by ta mu zwrocila dane
[12:58] <MeMeK> jej wielkosc moze nam powiedziec ile mozna zaadresowac danych
[12:59] <MeMeK> starsze cpu maily 20 bitowa magistrale adresowa
[12:59] <MeMeK> wiec mogly zaadresowac 2^20 roznych lokacji
[12:59] <MeMeK> ]dokladnie 1MB
[12:59] <MeMeK> pozniej bylo coraz lepiej
[12:59] <MeMeK> 24 bit
[12:59] <MeMeK> 32 bit
[13:00] <MeMeK> 32 bit pozwala na 4GB pamieci
[13:00] <MeMeK> jednak urzadzenia i/o tez musza miec jakies adresy
[13:00] <MeMeK> dlatego one tez urzywaja magistrali adresopwej
[13:01] <MeMeK> poza tym moga urzywac pamieci do swoich celow
[13:02] <MeMeK> dobra pomowy o wymianie danych miedzy cpu a pamiecia
[13:02] <MeMeK> wiec gdy cpu wysyla zadanie o jakas dana z pamieci
[13:02] <MeMeK> robi to w jednym cyklu zegarowym
[13:02] <MeMeK> i oczekuje w tym samym cyklu na odpowiedz
[13:03] <MeMeK> ale nie jest tak rozowo
[13:03] <MeMeK> pamiec jest wolna
[13:03] <MeMeK> a poza tym dekoder i cache (o ktorym powiem pozniej)
[13:03] <MeMeK> tez zwalniaja sprawe
[13:04] <MeMeK> dlatego np procesor 1GHz ma czas cyklu ok
[13:04] <MeMeK> 0,1 ns
[13:04] <MeMeK> duze wyzwanie dla pamieci
[13:04] <MeMeK> moze nie zdazyc
[13:04] <MeMeK> wiec wysyla specjalny sygnal WAIT
[13:05] <MeMeK> i wtedy cpu grzecznie poczeka do nastepnego cykly
[13:05] <MeMeK> *cyklu
[13:05] <MeMeK> dlatego wazna sprawdz jest odpowiednie dobranie pamieci
[13:05] <MeMeK> aby mogla sie swobodnie komunikowac z cpu
[13:06] <MeMeK> dobra koniec biadolenia o sprawach malo waznych ;>
[13:06] <MeMeK> wejdzmy bardzie do srodka
[13:06] <MeMeK> jak wiadomo
[13:07] <MeMeK> czesto sa uzywane dane z jednego obszaru pamieci
[13:07] <MeMeK> a pamiec jest wolna
[13:07] <MeMeK> przydalo by sie miec jakies miejsce zeby mozna bylo "odlozyc cos na bok"
[13:07] <MeMeK> dlatego wymyslono cahce
[13:08] <MeMeK> cache jest bardzo szybki wiec praktycznie nie ma oczekiwania na jego odpowiedz

[13:09] <MeMeK> jest to jeden ze sposobow dolaczenia cache do cpu
[13:09] <MeMeK> nazywa sie Look_throught
[13:09] <MeMeK> mozna to zrobic na oddzielnej magistrali
[13:10] <MeMeK> magistarli BSB
[13:10] <MeMeK> wtedy mamy backside
[13:10] <MeMeK> czyli "od tylu"
[13:11] <MeMeK> wiec jak jest zorganizowana pamiec cache
[13:11] <MeMeK> zawiera ona linijki
[13:11] <MeMeK> najczesciej 256 bitowe
[13:12] <MeMeK> w ktorych jest umieszczana odpowiednia dana]
[13:12] <MeMeK> w intelach jest oddzielny cache dla danych i dal kodu
[13:13] <MeMeK> linijki sa skupione w 2 katalogach
[13:13] <MeMeK> ckatalog oprocz danych zawiera rozne inne rzeczy
[13:13] <MeMeK> znaczniki i tzw MESI
[13:14] <MeMeK> czym jest znacznik
[13:14] <MeMeK> ano jest to 20 najstarszych bitow z adresu
[13:14] <MeMeK> (czyli 2 czlony w stronicowaniu.. o tym pozniej)
[13:15] <MeMeK> Skrót MESI używany do określania bitów w katalogu cache, został utworzony od pierwszych liter angielskich określeń czterech możliwych stanów linijki (Modified, Exclusive, Schared, Invalid)
[13:15] <MeMeK> czyli
[13:15] <MeMeK> zmodyfikowany, wylaczony, wspolny, niwazny
[13:16] <MeMeK> sluzy to do okreslania trafien
[13:16] <MeMeK> czyli czy to czego potzrebuje procesor jest w cache czy nie
[13:16] <MeMeK> ale jesli procesor pracuje na cache'u to nie zapisuje do pamieci?
[13:17] <MeMeK> to by bylo zle
[13:17] <MeMeK> wiadomo ze inne urzadzenia tez korzystaja z pamieci np katra graf
[13:17] <MeMeK> mozna wyroznic dwa sposoby rozwazania tego problemu
[13:17] <MeMeK> Write Trougch (zapis jednoczesny)
[13:18] <MeMeK> i Wirte Back (zapis opóźniony)
[13:18] <MeMeK> w trybie Write Trougch
[13:18] <MeMeK> za kazdym razem cpu uaktualnia dane w cache i w pamieci
[13:18] <MeMeK> to wolne rozwiazanie
[13:18] <MeMeK> dlatego uzywa sie Write Back
[13:19] <MeMeK> tutaj zapisuje dane tylko na zadanie
[13:19] <MeMeK> żądanie
[13:19] <MeMeK> czyli mw przypadku braku trafienia
[13:19] <MeMeK> lub gdy otrzyma specjalny sygnal
[13:20] <MeMeK> np od karty graf
[13:20] <MeMeK> rozwiazuje to problem i wszyscy sa happy
[13:21] <MeMeK> jakies pytania
[13:21] <MeMeK> to na priv
[13:21] <MeMeK> jak nie ma to lecimy dalej
[13:22] <MeMeK> wiec istnieja niejako 2 sposoby konstrukcji cpu
[13:22] <MeMeK> cisc i risc


[13:23] <MeMeK> jak widac rozia sie tym ze risc komunikuje sie zawsze przez magistarle wewnetrzna
[13:24] <MeMeK> natomiast cisc z kazdego modulu moze sie komunikowac
[13:24] <MeMeK> z reszta swiata
[13:24] <MeMeK> jakie sa cechy risc
[13:25] <MeMeK> RISC (Reduced Instruction Set Computing ? architektura o uproszczonej liście rozkazów)
[13:25] <MeMeK> rozbudowane instrukcje
[13:25] <MeMeK> tfu
[13:25] <MeMeK> nie rozbudowane tylko uproszczone
[13:26] <MeMeK> operacje ALU tylko na rejestrach
[13:26] <MeMeK> prosty tryb adresowania - uproszczone odwołania do pamięci
[13:26] <MeMeK> wszystkie instrukcje identycznej długości (32 bity)
[13:26] <MeMeK> znacznie prostsza konstrukcja procesora
[13:27] <MeMeK> jednak odpija sie to na programowaniu takiego prcesora
[13:27] <MeMeK> np instrukcja z cisc'a
[13:27] <MeMeK> add EAX, 1234h ;EAX = EAX+1234h
[13:27] <MeMeK> musi byc zapisana jako
[13:27] <MeMeK> mov EBX, 1234h ;EBX = 1234h
[13:28] <MeMeK> add EAX, EBX ;EAX = EAX+EBX
[13:28] <MeMeK> jednak dolozono troche krzemu i dodano dekoder
[13:28] <MeMeK> wiec mozna stosowac tak jak w cisc'u
[13:29] <MeMeK> CISC (Complex Instruction Set Computing ? architektura o złożonej liście rozkazów)
[13:29] <MeMeK> rozbudowane instrukcje
[13:29] <MeMeK> możliwość zawansowanego programowania w języku maszynowym
[13:29] <MeMeK> znaczne różnice czasu wykonania poszczególnych instrukcji
[13:29] <MeMeK> dlatego nie stosuje sie cosc'ow
[13:30] <MeMeK> sa tez trudniejsze w budowie

[13:31] <MeMeK> zacznijmy mawiac po koleji
[13:31] <MeMeK> chronologicznie
[13:31] <MeMeK> dawno, dawno temu
[13:31] <MeMeK> w procesorach 8086
[13:31] <MeMeK> byly tylko 2 moduly
[13:31] <MeMeK> zespołu wykonawczego EU (execution unit),
[13:32] <MeMeK> i zespół
[13:32] <MeMeK> łącza z magistralą systemową BIU (bus interface unit
[13:33] <MeMeK> EU zawiera
[13:33] <MeMeK> alu
[13:33] <MeMeK> czyli
[13:33] <MeMeK> jednostke arytmetuczno-logiczna
[13:34] <MeMeK> i rejestry znacznikowe
[13:34] <MeMeK> - CF (znacznik przeniesienia
[13:34] <MeMeK> - PF (znacznik parzystości
[13:35] <MeMeK> - AF (znacznik przeniesienia połówkowego)
[13:35] <MeMeK> - ZF (znacznik zera)
[13:35] <MeMeK> - SF (znacznik znaku)
[13:35] <MeMeK> - TF (znacznik pułapki)
[13:35] <MeMeK> - IF (znacznik przerwań)
[13:36] <MeMeK> - DF (znacznik kierunku)
[13:36] <MeMeK> i znacznik przepelnienia
[13:36] <MeMeK> OF
[13:37] <MeMeK> BIU zas zawiera
[13:37] <MeMeK> ? blok rejestrów segmentowych,
[13:37] <MeMeK> licznik rozkazów,
[13:37] <MeMeK> sumator,
[13:37] <MeMeK> układ kolejki rozkazów,
[13:37] <MeMeK> układ sterowania,
[13:41] <MeMeK> sic wywalilo mnie
[13:41] <MeMeK> dobra
[13:42] <MeMeK> lecimy
[13:42] <MeMeK> dalej bylo
[13:42] <MeMeK> i286
[13:42] <MeMeK> miał swoją premierę w 1981
[13:42] <MeMeK> ciewkawsze zmiany
[13:43] <MeMeK> wbudowany układ ochrony pamięci, wspierający system operacyjny w izolacji zadań
[13:43] <MeMeK> układ zarządzania pamięcią
[13:43] <MeMeK> dekoder znakow
[13:43] <MeMeK> uklad adresacji
[13:44] <MeMeK> Ważnym ulepszeniem procesora 8286 w stosunku do procesora 886 jest kolejka rozkazów
[13:44] <MeMeK> znaczy
[13:44] <MeMeK> ze zpu w wolnych chwilach (czyt. gdy nie uzywal data bus)
[13:45] <MeMeK> pobieral sobie kolejne instrukcje
[13:45] <MeMeK> do kolejki
[13:45] <MeMeK> jednak gdy sie uzwalo duzo skokow
[13:45] <MeMeK> wtedy kolejka musiala byc czyscczona
[13:45] <MeMeK> i zapelniana od nowa
[13:46] <MeMeK> DEKODER ROZKAZÓW
[13:46] <MeMeK> - Rozwija kody rozkazów otrzymywanych z BU w słowa sterujące i zapisuje je do trzypoziomowej kolejki
[13:46] <MeMeK> fajan sprawo jest tez
[13:46] <MeMeK> to ze
[13:46] <MeMeK> BIU może pobrać dwie instrukcje w jednym cyklu zegarowym i zacząć dekodowanie
[13:46] <MeMeK> drugiej podczas wykonywania pierwszej.
[13:49] <MeMeK> ten procesor stal sie hitem
[13:49] <MeMeK> mogl adresowac do 4gb pamieci
[13:50] <MeMeK> jednostka adresacji dostala kilka nowych ciekawych elementow
[13:50] <MeMeK> najwazniejsze uklad stronicowania
[13:51] <MeMeK> i kilka dodatkowych rejestrow
[13:51] <MeMeK> czymze jest owo magiczne stronicowanie
[13:51] <MeMeK> jako ze praca w trybie chronionym (o tym za chwile)
[13:51] <MeMeK> umozliwia dowolne mapowianie
[13:52] <MeMeK> adresow logicznych
[13:52] <MeMeK> wiec cala pamiec dzielona jest na bloki
[13:52] <MeMeK> cala MOZLIWA PAMIEC
[13:52] <MeMeK> nie sostepna
[13:52] <MeMeK> to wane
[13:52] <MeMeK> wazne
[13:53] <MeMeK> strony maja najczesciej 4kb
[13:53] <MeMeK> (windows server 2k3 i vista maja wicej 2mb or 4 mb
[13:54] <MeMeK> wiec taki adres w trybie stronicowania
[13:54] <MeMeK> dzieli sie na 3 czlony
[13:54] <MeMeK> 10 bitowy index w katalogu stron
[13:54] <MeMeK> 10 bitowy index strony w tablicy stron
[13:55] <MeMeK> i przesuniecie (offset) w obrebie trony
[13:55] <MeMeK> strony
[13:55] <MeMeK> Zatem adres fizyczny na który zamapowano adres logiczny jest wyznaczany z dwóch składników
[13:55] <MeMeK> adresu fizycznego strony i przesunięcia
[13:56] <MeMeK> wspomianlem o trybie chronionym
[13:56] <MeMeK> ale najpierw powiem o trybie rzeczywistym ;>
[13:57] <MeMeK> tryb ten byl p[ierwszy
[13:57] <MeMeK> W trybie tym jest brak ochrony pamięci przed użyciem przez inny proces i brak obsługi wielozadaniowości
[13:57] <MeMeK> czyli w tym trybie procowalo sie na DOSie w latach 80
[13:58] <MeMeK> dlatego teraz uzywa sie lepszego
[13:58] <MeMeK> trybu chronionego
[13:59] <MeMeK> Tryb chroniony (protected mode) to tryb pracy procesora w którym jedno zadanie nie ma dostępu do danych wykorzystywanych przez inne zadanie
[13:59] <MeMeK> Uniemożliwia to stosowanie popularnych wcześniej sztuczek programistycznych
[13:59] <MeMeK> polegających np. na bezpośrednim zapisie danych do pamięci karty graficznej.
[14:00] <MeMeK> jest jeszcze jeden
[14:00] <MeMeK> tryb wirtualny
[14:00] <MeMeK> p-owstal dla kompatybilnosci
[14:00] <MeMeK> jest specjalnym trybem pracy procesora dostępnym w trybie chronionym
[14:01] <MeMeK> umożliwia uruchamiania programów przeznaczonych dla trybu rzeczywistego
[14:01] <MeMeK> dostep do portow cpu
[14:01] <MeMeK> i tak strzeze system operacyjny
[14:02] <MeMeK> ciekaweostka staly sie potoki
[14:02] <MeMeK> ktos pomyslal ze instrukcje moza podzielic na kikla czesci
[14:02] <MeMeK> Pobranie opcodu
[14:02] <MeMeK> Dekodowanie opcodu i (równolegle) wstępne pobranie możliwego 16 bitowego operandu
[14:02] <MeMeK> obliczanie złożonego trybu adresowania
[14:03] <MeMeK> obliczanie wyniku
[14:03] <MeMeK> przechowanie wyniku w rejestrze przeznaczenia
[14:03] <MeMeK> wiec mozna robic kilka instrukcji "jednoczesnie"
[14:03] <MeMeK> jednak trezba pamietac
[14:03] <MeMeK> ze niektore moga uzywac magistral
[14:04] <MeMeK> a tego jednoczesnie nie zrobia
[14:04] <MeMeK> dlatego powstaje nam spor magistral
[14:04] <MeMeK> jego rozwiazaniem jest kolejka potoku
[14:04] <MeMeK> CPU, kiedy zaistnieje spór
[14:04] <MeMeK> magistral, daje priorytet dalszym instrukcjom w potoku
[14:05] <MeMeK> to powoduje
[14:05] <MeMeK> ze pozostale musza czekaj
[14:05] <MeMeK> czekac
[14:05] <MeMeK> dalo to duze przyspieszenie pracy cpu
[14:06] <MeMeK> pozniej przyszedl czas na i486
[14:07] <MeMeK> powstal w 1989r
[14:07] <MeMeK> jako nastepca 386
[14:07] <MeMeK> dostal 6 nowych rozkazow
[14:08] <MeMeK> dluzsza kolejke rozkazow
[14:08] <MeMeK> teraz 32 bajty
[14:08] <MeMeK> zintegrowano w nim koprocesor
[14:08] <MeMeK> e) zmodyfikowano współpracę procesora z magistralą systemową
[14:09] <MeMeK> spojrzmy jeszcze raz

[14:10] <MeMeK> nie opsialem jeszcze MMU
[14:10] <MeMeK> memory managment unit
[14:11] <MeMeK> czyli jednostka zarzadzania pamiecia
[14:11] <MeMeK> wspolpracuje z AU
[14:11] <MeMeK> czyli ma zadanie rozkodowywac adresy
[14:11] <MeMeK> wspolpracuje tez z cachem
[14:11] <MeMeK> a raczej z kontrolerem cach'u
[14:13] <MeMeK> no i tym sposobem mamy omowione wszystkie podstawowe moduly cpu
[14:13] <MeMeK> omawiac pentium nawet nie zaczynam,
[14:14] <MeMeK> bo to zajmie za duzo czasu
[14:14] <MeMeK> z reszta i tak juz chyba przekroczylem limit
[14:14] <MeMeK> podsumowujac
[14:15] <MeMeK> dzisiejsze komputery sa zbudawane w oparciu
[14:15] <MeMeK> o architekure von Neumanna
[14:15] <MeMeK> cpu laczy sie przez magistrale z pamiecia i i/o
[14:15] <MeMeK> sa 3 magistrale
[14:15] <MeMeK> adresowa
[14:15] <MeMeK> danych
[14:15] <MeMeK> (ona okresla szerokosc procesora)
[14:15] <MeMeK> i strujaca
[14:16] <MeMeK> (rozne flagi i stany)
[14:16] <MeMeK> wszystko zbudowane z bramek nand i kondensatorow
[14:16] <MeMeK> w srodku cpu jest podzielone na logiczne moduly
[14:17] <MeMeK> mamy 2 rodzaje cpu
[14:17] <MeMeK> cisc i risc
[14:17] <MeMeK> dzisiaj sie uzywa risc z dekoderem instrukcji
[14:17] <MeMeK> zeby sie programowalio tak jak w cisc
[14:17] <MeMeK> procesor ma kolejke instrukcji
[14:18] <MeMeK> posiada tez mozliwosc
[14:18] <MeMeK> wykonywania kilku instrukcji na raz
[14:18] <MeMeK> dziki przetwarzaniu potokowemu
[14:18] <MeMeK> do pilnowania jest kolejka potokow
[14:19] <MeMeK> jednostka wykonawcza wykonuje operacje matematyczne
[14:19] <MeMeK> wszystko w postaci binarnej
[14:20] <MeMeK> sa jeszcze inne *(MMX, SSE, 3DNow (amd))
[14:20] <MeMeK> ale to juz wykracza poza ten wyklad
[14:20] <MeMeK> no to by bylo na tyle
[14:20] <MeMeK> dzieki za uwage
[14:22] <Gynvael> ja dodam dwie ciekawostki od siebie ;>
[14:23] <Gynvael> 1) oprocz real mode i protected mode
[14:23] <Gynvael> jest jeszcze tzw unreal mode
[14:23] <Gynvael> jest to w sumie bug procesora ;> albo niedociagniecie
[14:23] <Gynvael> zabawa polega na tym ze wchodzi sie na chwile w protected mode, ustawia pare rzeczy po czym wychodzi do real mode spowtorem
[14:23] <Gynvael> i ma sie dostep do 4gb pamieci z real mode ;>
[14:24] <Gynvael> proponuje na google sterownika dosowego unreal.com poszukac jesli kogos to ciekawi ;>
[14:24] <Gynvael> 2) bylo wspomniane o stronach
[14:24] <Gynvael> jako ciekawostke podam ze dostep do zmiennej (np 32 bitowej) ktora lezy na danej stronie jest bardzo szybki
[14:24] <DJ_cool_> tak
[14:24] <Gynvael> natomiast jesli zmienna umiesci sie miedzy stronami (tak ze 2 bajty sa na jednej stronie a 2 na drugiej)
[14:24] <Gynvael> dostep sie wydluza prawie 10 razy
[14:24] <Gynvael> ;>
[14:24] <Gynvael> k