Procesory Rozwój konstrukcji procesorów oraz związane z tym rodzaje pamięci operacyjnej. Pamięć operacyjna . Podczas pracy z komputerem PC użytkownik niemal cały czas styka się z zagadnieniem ilości dostępnej pamięci operacyjnej. Pamięć operacyjna zbudowana jest z układów RAM( Random Access Memory), co oznacza pamięć o dostępie swobodnym. RAM pozwala nie tylko na odczytanie z niej danych, ale i na ich zmianę,. Efektem tego jest wymaganie nieustannego podtrzymywania zasilania. Wyłączenie zasilania powoduje bezpowrotną utratę całej zawartości pamięci RAM. W pamięci operacyjnej przechowywane i przetwarzane są dane. To, że jej zawartość ulega skasowaniu w momencie wyłączenia komputera, spowodowało, że w powszechnym użyciu są dyski twarde. Zasadniczym jednak zadaniem wszelkiego rodzaju dysków czy dyskietek jest przechowywanie programów i danych do momentu gdy zostaną one załadowane do pamięci operacyjnej. Dopiero wówczas procesor zaczyna naprawdę z tych danych korzystać. W przypadku pamięci operacyjnej dla użytkownika istotne są następujące informacje: ilość pamięci operacyjnej, szybkość jej pracy i rodzaj zastosowanych do jej budowy układów, co ma bezpośredni wpływ na jej działanie. Parametrem, który określa szybkość pracy pamięci, jest tzw. czas dostępu, co oznacza dokładnie czas między umieszczeniem adresu komórki pamięci na szynie adresowej a pojawieniem się danych na szynie danych. W uproszczeniu można go określić jako czas potrzebny na odczytanie informacji z pamięci. Typową wartością dla pamięci DRAM, wykorzystywanej jako operacyjną, jest 70 ns. Każda płyta główna ma ściśle określone wymagania dotyczące czasu dostępu montowanych na niej układów. obecnie standardem są układy SIMM PS2. Wykorzystanie pamięci operacyjnej. Oprócz różnic fizycznych pomiędzy poszczególnymi “kościami” pamięciami występują też różnice w jej konfiguracji, tzn. sposobie wykorzystania przez system operacyjny, przez programy i użytkownika. Pamięć nie jest po prostu luźnym stosem bajtów, w których program może „szukać” do woli, by znaleźć to ,co komu potrzebne. Pamięć ta jest ściśle uporządkowana. Porządek ten polega na tym, że każdy bajt ma swój numer, czyli tzw. adres. Jeżeli posiadamy 4 MB pamięci, to posiadamy: 4x 1MB = 4 x 1024kB = 4x 1024 x 1024B = 4 194 304B. Jest to liczba stosunkowo duża i jeszcze IBM PC XT( procesor 8088/8086) nie był w stanie z niej korzystać. Mógł on adresować jedynie 1MB. Co więcej, mimo , że adresów pamięci było dość dla 1024kB, zarówno sam komputer, jak i programy do niego wykorzystywały zaledwie 640kB. Reszta przeznaczona zastała dla pamięci stałej ROM. Konstruktorzy kolejnych procesów, komputerów i programów z czasem zaczęli wykorzystywać znacznie więcej pamięci i już komputery klasy AT ( z procesorem 8086) mogły adresować 4MB, zaś 386DX ponad tysiąckrotnie więcej pamięci. Narzucone jednak przez poprzedników ograniczenia nie uległy, zapomnieniu. Jedynym powodem była potrzeba kompatybilności, czyli zgodności nowego sprzętu ze starym oprogramowaniem. Stopniowo pamięć była więc wykorzystywana coraz sprawniej, ale wciąż z pewnymi ograniczeniami. Komórki pamięci pod adresami od 0 do 655360, czyli 640KB nazywamy pamięcią konwencjonalną, a powyżej 1025KB ( 1MB) rozszerzoną. Przyjęły się dwa standardy korzystania z pamięci rozszerzonej: historycznie starszy EMS (expanded) oraz XMS (extended) . Obszar między pamięcią konwencjonalną a rozszerzona nazywamy UPPER MEMORY AREA i jest on zarezerwowany dla specjalnych zastosowań. Komputery PC mają cztery rodzaje pamięci RAM: konwencjonalną, górną, rozszerzoną i stronicowaną. Każdy z tych rodzajów pamięci służy innym celom i nie w każdym komputerze wszystkie one muszą występować. PAMIĘĆ KONWENCJONALNA Najpowszechniejszą i najważniejszą jest pamięć konwencjonalna. Jest to podstawowa pamięć używana przez MS_DOS i programy użytkowe. Jest ona ograniczona do 640kB. Powyżej pamięci konwencjonalnej wszystkie komputery PC mają pamięć górną. Zaczyna się ona od miejsca, gdzie kończy się pamięć konwencjonalna i zajmuje 384kB. Łącznie z pamięcią konwencjonalną daje to 1024 kB czyli 1MB. Pamięć górna jest używana do różnych celów np. do zapisu zawartości ekranu, do przechowywania informacji dotyczących współpracy z twardym dyskiem, na BIOS itp.. PAMIĘĆ ROZSZERZONA. W połowie lat osiemdziesiątych pamięć operacyjna licząca 640KB była w już w niektórych zastosowaniach zbyt mała. Mimo, że obszar pamięci górnej był nadal mało zajęty, to jednak nawet całkowite jego wypełnienie nie spełniało oczekiwań programistów. Potrzebna była pamięć operacyjna zawierająca kilka czy nawet kilkanaście MB. Przeszkodą w dołączeniu tak dużej pamięci było jednak ograniczenie w postaci 20-bitowej szyny adresowej wraz ze stosowanym algorytmem obliczania adresu . W tej sytuacji należało skonstruować zupełnie nowy procesor, który umożliwiałby dołączenie większej pamięci operacyjnej. Skonstruowano więc procesor 80286, który z jednej strony był w stanie dokładnie naśladować swego poprzednika 8086/88, a z drugiej strony posiadał cechy nowoczesnego procesora o 24 bitowej szynie adresowej co umożliwiało zaadresowanie do 16MB pamięci i innym algorytmie obliczania adresu fizycznego. Dlatego procesor ten mógł pracować dwoma sposobami, czyli procesor naśladował swego poprzednika nazwano to trybem rzeczywistym( real mode). drugi sposób nazwano trybem wirtualnym lub chronionym ( protected mode). Pamięć rozszerzona może być używana w komputerach wyposażonych w procesor 80286 lub jeden z jego następców. PAMIĘĆ STRONICOWANA. Gdy posiadamy komputer IBM PC/XT z procesorem 8088 zaproponowano inne rozwiązanie zwane pamięcią stronicowaną. Z tego powodu w systemie DOS.6.0 stworzono możliwość symulacji pamięci stronicowanej za pomocą pamięci rozszerzonej. Warunkiem stosowania tej symulacji jest jednak obecność procesora 386 lub 486. Symulację tę realizuje się za pomocą programu EMM386, którego instalacja następuje po włączeniu komputera. W pamięci operacyjnej przechowywane są instrukcje i dane wykonywanego programu wraz z systemem operacyjnym. Pamięć jak już wspomniano wyżej nazywana jest pamięcią RAM -pamięć o dostępie swobodnym. Najważniejszą własnością tej pamięci jest możliwość szybkiego zapisywania i odczytywania informacji. W aktualnie stosowanych pamięciach czas dostępu do informacji zapisanej w pamięci wynosi ok. 10-100ns(1ns=1/1 000 000 000s). Cała zawartość tej pamięci ulega jednak skasowaniu po wyłączeniu komputera. Rozwój procesorów. PROCESORY 8086/8088 Procesor 8086 został zaprezentowany przez firmę INTEL już w 1976 r. Był pierwszym procesorem 16bitowym o wielkiej na ówczesne czasy przestrzeni adresowej 1MB. W dziesięć lat później, kiedy rynek został opanowany przez 8-bitowe systemy PC, INTEL zaprojektował procesor 8088 będący odpowiednikiem 8086, ale mogący współpracować z magistralami 8-bitowymi. Ten hybrydowy procesor umożliwiał pracę oprogramowania wykorzystującego rejestry 16-bitowe, mogące mieć dostęp do pamięci do 1MB i to za cenę systemu 8-bitowego. Procesor 8088 stał się sercem systemów PC i PC XT. Częstotliwość zegara wynosiła w pierwszych modelach 4.77MHz w późniejszych 4.77/8MHz, a w ostatnich modelach 10MHz. PROCESORY 80186/80188 Procesory ‘186 i 188’ różnią się, podobnie jak ‘86 i ‘88, szerokością zewnętrznej magistrali danych. Procesor 80186 w stosunku do 8086 był zmodernizowaną wersją zawierająca w jednej obudowie kilkanaście komponentów, które w poprzednich systemach znajdowały się oddzielnie. Ideą konstrukcji było zmniejszenie liczby układów znajdujących się na płycie głównej. Procesory 8018X miały rozbudowany zestaw rozkazów. Jednak kłopoty, jakie pojawiły się przy budowie systemu, który byłby całkowicie kompatybilny z systemem zawierającym procesor 8086/88, spowodowały, że zrezygnowano ze stosowania tych układów. PROCESOR 80286 Procesor 80286 miał swoją premierę w 1981 r. Został wybrany przez IBM do nowej rodziny komputerów AT. Procesor jest kompatybilny ze wcześniejszymi układami co oznacza, że oprogramowanie napisane na procesory 8086/88 będzie poprawnie działać w systemie z procesorem 80286. Procesor 80286 ma dwa tryby pracy: tryb adresowania rzeczywistego i tryb pracy chronionej. W trybie rzeczywistym procesor 80286 jest kompatybilny z 8086 na poziomie kodu wynikowego, co oznacza, że procesor może wykonywać skompilowane programy z systemu 8086 bez dokonywania w nich jakichkolwiek zmian. PROCESORY 80386 I 80386SX. Procesor 80386 jest procesorem 32-bitowym przeznaczonym do pracy w systemach wielozadaniowych. Były rewolucją na rynku mikrokomputerów ze względu na swoje wielkie możliwości. Swoją premierę miał w 1985 r. a po raz pierwszy systemem komercyjnym w którym go zainstalowano, był komputer COMPAQ Deskpro 386.Procesor 80386 może wykonywać ten sam zestaw instrukcji co procesor 80286. Może być programowo przełączony w tryb pracy chronionej, jak i z pracy chronionej w tryb rzeczywisty. Jest to o tyle istotne, że 80286 przy przejściu z pracy chronionej w tryb rzeczywisty wymagał resetowania systemu. Procesor 386 może zaadresować 4GB pamięci fizycznej. Procesor 80386SX jest zmodyfikowaną wersją procesora 80386 mającą zmniejszoną szynę danych do 16-bitów i szynę adresową do 24-bitów. Jest więc wersją zapewniającą możliwości procesora 386, w tym tryb wirtualnej rzeczywistej, ale za cenę 286. Ze względu na wielkość magistrali adresowej może adresować 16MB pamięci fizycznej. PROCESOR 80486. Procesor 80486, wprowadzony na rynek w 1989 r. jest ulepszoną wersją procesora 80386. Z punktu widzenia oprogramowania 80486 jest szybszy od 80386,ma sześć instrukcji więcej. Jedna sama konstrukcja tego procesora zawiera sporo ulepszeń i nowości .Najciekawszą jest przetwarzanie potokowe. Procesor 80486 pracuje szybciej niż procesor 80386 przy tej samej częstotliwości zegara .Innym warunkiem zwiększenia częstotliwości, a więc i prędkości pracy, jest dalsze zmniejszenie rozmiarów elementów procesora. Procesor 80486 był jednym z pierwszych układów o szerokości ścieżek mniejszych od jednego mikrona( jednej milionowej metra).80486 zawiera wbudowaną pamięć cache, jak i koprocesor. 8kB pamięci cache może być podzielony na cztery 2kB bloki, które mogą być niezależnie wykorzystywane. Pamięć jest wykorzystywana w trybie write-through. W trakcie odczytu z pamięci najpierw sprawdzana jest pamięć cache. Jeśli potrzebne dane są w niej zawarte, są odczytywane, jeśli nie ,to odczytywany jest z pamięci cały blok o rozmiarze równym pojemności pamięci cache. W trakcie zapisu dane są jednocześnie zapisywane do pamięci cache i pamięci operacyjnej. Wiele płyt głównych wyposażonych jest w gniazdo umożliwiające zamianę lub rozbudowę procesora. To 169-końcówkowe gniazdo może być wykorzystywane w różnoraki sposób. W przypadku systemów z procesorem 80486DX, w to gniazdo wkładany jest układ z procesorem 80486DX2. Stary procesor jest automatycznie odłączany i jego funkcje przejmuje nowy. PROCESOR 80486SX. Nie wszystkie zastosowania wymagają oprócz szybkości dużej mocy obliczeniowej oferowanej przez koprocesor. Z myślą o tych zastosowaniach został zaprojektowany procesor 80486SX . Jest to w zasadzie procesor 80486DX bez koprocesora. Oferowany jest tylko z zegarem 20 i 25 MHz. Jednak jest o wiele szybszy od procesora 80386DX pracującego z tą samą częstotliwością . Brak koprocesora może być zniwelowany przez włożenie koprocesora 80487SX w gniazdo overdrive lub miejsce przewidziane przez producenta płyty.