1.Wiadomości wstępne_C. Babbage przewidział możliwość jednoczesnego generowania kilku wyników w projektowanej przez siebie maszynie Analytical Engine. Posłużył się on przykładem mnożenia wielocyfrowych liczb, cechującego się powtarzającym się cyklem identycznych i niezależnych operacji. Analytical Engine miała zawierać jednostkę arytmetyczną i pamięć operacyjną. Wprowadzanie danych i wyprowadzanie miało odbywać się za pomocą kart dziurkowanych. Projekt Analytical Engine nie został nigdy zakończony. Von Neuman - matematyk współpracował między innymi przy budowie ENIACA'a i EDVAC'a, twórca tzw. architektury Neumanowskiej:
Maszyna Von Neumana. Pobieranie, dekodowanie i wykonywanie instrukcji
Wspólną dla wszystkich komputerów zasadę działania, na bazie której konstruktorzy stworzyli później wiele różnorodnych wariantów organizacji systemu komputerowego, wprowadził Von Neumann. Elementarne operacje arytmetyczne, logiczne i inne, których wykonania może od komputera żądać programista, odpowiadają rozkazom kodowanym w tym samym systemie co dane i umieszczonym we wspólnej pamięci. Praca komputera polega najogólniej na wielokrotnym wykonywaniu kolejnych faz cyklu komputera:
● wyprowadzenie adresu kolejnego rozkazu z licznika rozkazów na linie adresów pamięci; stanowi to tzw. fazę adresowania;
wprowadzenie do układu sterowania procesora rozkazu pobranego z zaadresowanej komórki pamięci: tzw. faza wprowadzania;
wykonanie wprowadzonego rozkazu pod kontrolą układu wykonawczego - faza wykonania.
Fazę adresowania i fazę wprowadzania rozkazu obejmuje się wspólną nazwą pobierania rozkazu. Fazy pobierania i wykonania rozkazu składają się na cykl komputera. W najprostszym przypadku do realizacji rozkazu może wystarczyć jedno - związane z pobraniem kodu rozkazu - odwołanie do pamięci operacyjnej. Jeżeli jednak wymagane jest odczytanie z pamięci danej, to wykonanie takiego rozkazu wymaga co najmniej drugiego odwołania. W fazie adresowania nastąpi wyprowadzenie adresu danej i dana ta zostanie odczytana z pamięci, po czym dopiero może nastąpić właściwe wykonanie rozkazu.
2.Główne części komputera.
*procesora - z układem sterowania, blokami rejestrów, arytmometrem. Procesor steruje wszystkimi procesami wykorzystywanymi przez komputer, analizuje działanie wszystkich układów i synchronizuje ich działanie, wykonuje wszystkie prace matematyczne.
*bloku pamięci głównej RAM(pamięć operacyjna) - pamięć z możliwością zapisu lub odczytu dowolnej komórki (czyli pamięć adresowalna). Każdy program, który ma być wykonany musi być do tej pamięci załadowany. Wykonanie programu polega na przesyłaniu do procesora zawartości kolejnych komórek pamięci i wykonaniu działań określonych przez zawartość komórki.
*bloku pamięci ROM(pamięć tylko do odczytu) - z programem BIOS. BIOS odpowiada za wszystkie funkcje komputera dostępne bez załadowania systemu operacyjnego(Basic Input Output System).
pamięci masowej - jest to pamięć zachowująca dane pomimo wyłączenia napięcia. W odróżnieniu od pamięci operacyjnej ta pamięć nie pozwala na dostęp do pojedynczej jednostki informacyjnej, a jedynie do całego bloku. Typowymi przykładami są dyskietki, dyski twarde.
monitora i układów nim sterujących - zespół elementów wyjściowych komputera służących do komunikowania użytkownika o stanie komputera i pozwalających na ujrzenie efektów pracy.
klawiatury - iest standardowym urządzeniem wyjściowym pozwalającym na przekazywanie informacji do komputera. Umożliwia sterowanie komputerem, wprowadzanie danych, uruchamianie programów i definiowanie ich wykonania.
zasilacz - zasila wszystkie wymienione powyżej elementy energią elektryczną.
3.RÓZNICA MIĘDZY KOMPUTEREM A KONTROLEREM
komputer (maszyna cyfrowa), rodzaj maszyny liczącej, programowalne urządzenie elektroniczne przetwarzające dane zakodowane w postaci binarnej. Można powiedzieć że istnieją cztery typy komputerów, odpowiadające z grubsza ich rozmiarowi oraz przeznaczeniu. Podobnie jest w przypadku kontrolerów, w zależności od przeznaczenia mamy do czynienia z różnego rodzajami kontrolerów.
Np. Układ scalony 8288 jest kontrolerem, który spełnia rolę pośrednika między samym procesorem a systemową magistralą sterującą. Jego głównym zadaniem jest dekodowanie sygnałów S0-S2 procesora 8086 (pracującego w trybie maksymalnym; jak wiemy, w trybie minimalnym niezbędne sygnały sterujące magistralami wytwarza sam procesor) i przetwarzanie ich na właściwe sygnały składowe magistrali sterującej, tj. IOWC, IORC, MWTC, MRDC, INTA oraz statusu procesora. Steruje on również pracą rejestrów zatrzaskowych buforów magistrali adresowej i danych. Stosowanie tego rodzaju rejestrów jest niezbędne, bowiem dane i adresy muszą być utrzymywane na szynach tak długo, jak długo jest to potrzebne dla prawidłowego zakończenia operacji transmisji danych. W przeciwnym przypadku mogłoby się zdarzyć, że wystawione przez pamięć lub układy wejścia-wyjścia na szynę danych słowo zniknęłoby z niej, zanim procesor zdążyłby je przejąć. To samo obowiązuje oczywiście przy operacji wysyłania danych przez procesor. A więc główna różnica między kontrolerem a komputerem polega na tym, że na komputerze możemy wykonywać różnego rodzaju operacje, w przeciwieństwie do kontrolera, którego głównym zadaniem jest wykonywanie(kontrola) ściśle określonych operacji.
6.Mikroprocesory 16 bitowe. MP. Struktura, bloki EU, BIU.
Procesor ten przedstawiony przez firmę Intel w 1978r został utworzony w technologii 3.0 mikronów, przy użyciu 29000 tranzystorów. Posiadał 16-bitową szynę danych (wewn i zewn) i mógł adresować 1 MB pamięci. Był montowany w komputerach XT i mógł być taktowany zegarem o częst. max 10 MHz. Procesory 16-bitowe miały 20-bitową magistralę adresową, 64-kilobajtową przestrzeń adresową we-wy.
8086 składa się z dwóch bloków : kontroli magistrali (BIU) i wykonawczego (EU). Do pierwszego należy wyznaczanie adresu pamięci, pobieranie kodów rozkazów do wew. pamięci RAM tworzącej 6-bitową kolejkę; oraz przesyłanie z i do pamięci argumentów na żądanie układu EU.
Podstawowym zadaniem układu wykonawczego jest dekodowanie i wykonywanie rozkazów pobieranych z kolejki. Układy te w większości przypadków mogą pracować niezależnie, co umożliwia równolegle w czasie wykonanie rozkazu bieżącego w układzie EU i pobieranie przez BIU następnych rozkazów do kolejki.
Układ EU zawiera 16-bitową jednostkę ALU, układ sterowania z rejestrem rozkazów i zestaw rejestrów dostępnych w programie. Rejestry robocze 16-bitowe AX,BX,CX,DX (lub 8-bitiowe AH,BH,CH,DH,AL.,BL,CL,DL) i inne SP,BP,SI,DI oraz F- rejestr znaczników.
W skład BIU wchodzą między innymi 4 rejestry segmentów pamięci CS,DS,SS,ES oraz rejestr IP.
Dane |
8 PAMIEC DYNAMICZNA I STATYCZNA. ODŚWIERZANIE PAM. DYNAMICZNEJ I JEJ ORGANIZACJA.STATYCZNA- Static RAM-jako element pamiętający wykorzystuje przerzutnik, nie występuje więc konieczność odświeżania komórek. Okupione jest to ogólnie zwiększonym poborem mocy. Pamięci SRAM, ze względu na krótki czas dostępu są często stosowane jako pamięć podręczna. Dzięki jej użyciu możliwe jest zwiększenie szybkości dostępu procesora do informacji przechowywanych w pamięci operacyjnej: dane i kod programu, „na których „ procesor obecnie pracuje, wcześniej trafiają do tego bufora, przez co czas dostępu do nich jest bardzo krótki.DYNAMICZNA- Dynamic RAM- bazuje na tzw. pojemnościach pasożytniczych (kondensator).
Charakteryzuje się niskim poborem mocy , jednak związana z tym skłonność do samorzutnego rozładowywania się komórek sprawia , że konieczne staje się odświeżanie zawartości impulsami pojawiającymi się w określonych odstępach czasu. Częste cykle pociągają za sobą zmniejszenie szybkości przetwarzania informacji, a także powodują większe zużycie energii. RODZAJE PAMIĘCI
DRAM Fast Page Mode RAM. Czas dostępu wynosi zazwyczaj 70 lub 60 ns. Układy te charakteryzują się niską wydajnością, dane przesyłane są jako seria 5-3-3-3 w cyklach pracy procesora. Proces odczytu z pamięci FPM rozpoczyna się od wybrania odpowiedniego wiersza sygnałem RAS, po czym w celu zaadresowania kolumny następuje uaktywnienie sygnału CAS. W czasie cyklu CAS, gdy sygnał CAS przyjmuje poziom wysoki wyjścia danych są zablokowane. Jest to istotne z tego względu, że zmiana sygnału na wysoki poziom może nastąpić tylko po zakończeniu przesyłania danych.
EDO RAM-to pamięć w której można zaadresować komórkę jeszcze wtedy gdy następuje z niej odczyt. Pracuje przesyłając dane w serii 5-2-2-2
BEDO RAM- posiada wew. licznik adresów, kontroler pamięci odwołuje się tylko do pierwszej komórki pamięci, a pozostałe bity przesyła samoczynnie układ logiki. Cykl pracy 5-1-1-1.
SYNCHRONICZNA DRAM-zastosowano tu synchroniczne przesyłanie danych równocześnie z taktem zegara. Funkcjonalnie SDRAM przypomina typową DRAM, zawartość pamięci musi być odświeżana. Jednak znaczne udoskonalenia, takie jak wewnętrzny pipelining czy przeplot sprawiają że pamięć ta ma dużą wydajność.
Odświeżanie- Pojedyncza komórka pamięci DRAM jest to kondensator sterowany tranzystorem CMOS. By zapobiec utracie danych typowa pamięć DRAM musi być odświeżana co kilka milisekund. Ponieważ każda kolumna DRAM-u ma własny wzmacniacz ładunku, odświeżanie może być przeprowadzone dla całego rzędu. Zazwyczaj pamięci DRAM mają równą liczbę rzędów i kolumn. Odświeżanie może być przeprowadzone przy użyciu tylko sygnału RAS w takiej sytuacji wysyłane są tylko adresy rzędów. Ponieważ CAS nie jest nigdy aktywowany żadne dane nie są czytane ani zapisywane. Dodatkowo każda operacja napamięci odświeża rząd z którego czytaliśmy bądź do którego zapisywaliśmy dane.
Asynchroniczne odświeżanie-kontroler odmierza odcinki czasu, po upływie którego żąda cyklu odświeżania. Gdy na linii WAIT pojawia się poziom 1 następuje wczytanie do pamięci aktualnego wiersza z licznika i generowanie impulsu odświeżania na tym wierszu, w tym momencie zwiększ się wartość licznika o jeden.
Wymuszenie żądanej liczby cykli odświeżania co 2 ms - w takim rozwiązaniu dodatkowy licznik odmierza czas, po upływie którego jest generowany sygnał przerwania, powodujący wejście procesora w procedurę cyklu odświeżania. Powoduje ona wygenerowanie 128 cykli maszynowych, w których procesor nie odwołuje się do pamięci DRAM, lecz są generowane cykle odświeżania.
Synchroniczne odświeżanie- następuje wówczas, gdy procesor nie żąda dostępu do pamięci, czyli odświeżanie nie spowalnia pracy mikroprocesora.
10.Pamięć dynamiczna FPM,EDO,BEDO.
FPM - eliminacja z procesu adresowania jednego cyklu zegara, dzięki temu, że tylne zbocze sygnału przyjęcia adresu wiersza (RAS) było również taktowane jako przyjęcia adresu kolumny (CAS).(proces odczytu z pamięci FPM : wybierany jest odpowiedni wiersz sygnałem RAS, po czym w celu zaadresowania kolumny, następuje uaktywnienie sygnału CAS. Każdy cykl sygnału CAS zawiera wybranie adresu kolumny, oczekiwanie na dane, przekazanie danych do systemu i przygotowanie do następnego cyklu. W czasie cyklu CAS, gdy sygnał CAS przyjmuje poziom wysoki, wyjścia danych są zablokowane, tzn. przed wyznaczeniem następnej komórki, czyli zaadresowaniu jej w danej kolumnie, musi zakończyć się operacja na danych). Używany na etapie 386,486,we wczesnym Pentium. Dł. czas dostępu -70ns. Praca stanów oczekiwania do częstotliwości szyny rzędu 28,5 MHz (Fast Page Mode) 5-3-3-3 (pierwsza liczba ile cyklinie zbędnych do uzyskania pierwszych danych, kolejne - liczby cykli dla kolejnych słów)
EDO(Extended Data Out - szybsza- możliwość podawania adresu dostępu do komórki pamięci jeszcze w czasie przesyłania danych rozpoczętego w poprzedniej operacji. Taki rezultat dzięki zmodyf. CAS i nie blokowaniu wyjść (data-out) w czasie transmisji (przy wysokim zboczu CAS). Czas dostępu 50ns. Praca stanów do f=40 MHz. (Mogą nawet do 83 MHz). 5-2-2-2
BEDO(Burst EDO DRAM) - zachodzenie na siebie kolejnych cykli, technika pipeline - podstawa pracy w trybie BURST(stąd nazwa Burst EDO). Dopiero ten zysk pozwala na taktowanie pamięci bez cykli oczekiwania. Każdy cykl zegara pamięci wyzwala 1 cykl odczytu. 5-1-1-1.(dane po wyznaczeniu adresu przesyłane są następująco: BEDO posiada wewnętrzny licznik adresów, kontroler pamięci odwołuje się tylko do pierwszej komórki pamięci, a pozostałe bity przesyła samoczynnie układ logiki) Inne modyfikacje wpływające na wydajność:
skrócenie między zboczami CAS
i opóźnienia między RAS i CAS
11.System przerwań. Mechanizm realizacji przerwań.
Procesor ma dwa wejścia przerwań. Wejście INTR jest wejściem przerwań maskowalnych , oraz NMI jest wejściem przerwania niemaskowalnego mającego wyższy priorytet niż INTR. Po przejęciu przerwania INTR procesor wykonuje dwa cykle potwierdzenia przyjęcia przerwania, w drugim cyklu odczytuje 8 - bitowy numer wektora przerwania, który następnie służy do określenia adresu wektora w tablicy wektorów przerwań. W rezultacie rozkaz INTR działa tak samo jak rozkaz INTn. Rozkaz NMI ma przydzielony wektor o numerze 2, a zatem działą tak samo jak rozkaz INT2. Gdy przychodzi przerwanie któregoś z wymienionych rodzajów, licznik rodzaju i znaczniki stanu zostają zapisane na stosie, po czym program przechodzi do tablicy wektorów umieszczonej w obrębie pierwszych 1024 bajtów pamięci. Urządzenie które spowodowało przerwanie, musi po otrzymaniu sygnału potwierdzenia przekazać bajt informacji na szynę danych, celem wskazania w tablicy właściwego wektora. Dla każdego wektora potrzebne są cztery bajty danych: pierwsza para to dane dane rejestru CS, dotyczące segmentu pamięci, druga oznacza wartość licznika rozkazów. Wektor ten pozwala wyznaczyć efektywny adres wskazujący początek właściwej procedury obsługi przerwania. W celu przesłania do tablicy wektorów, dane z urządzenia wejścia - wyjścia są czterokrotnie multipleksowane, tworząc w tablicy wektorów odpowiedni adres pamięci. Przeznaczenie wektorów w pamięci jest następujące. Wektor 0 jest związany z procedurą błędu dzielenia przez zero, wektor 1 dotyczy procedury pracy w trybie krokowym. Tryb pracy krokowej jest w gruncie rzeczy procesem przerwań programowych, zainicjalizowanych ustawieniem odpowiedniego znacznika w rejestrze stanu.
generacja syngnału potwierdzenia przerwania INIA.
zawartość RF (rejestru flagowego) ,zapisuje się na stos.
zawartość CS zapisuje się na stos.
zawartość wektora przerwań (CS odpowiedniego INTO), zapisuje się do rejestru CS.
zawartość IP zapisuje się na stos.
zawartość wektrora przerwań INTO (IP) zapisuje się do rejestru IP.
przekazywanie sterowania pod adres CS i IP.
Pytanie 12 MP 80286, architektura, rejestry ogólnego przeznaczenia
Mikroprocesor Intel 80286 jest wersją o wzbogaconych możliwościach 16-bitowego procesora 8086. Układ 80286 zapewnia zwiększoną szybkość działania i jest zdolny pracować w środowisku z pamięcią wirtualną.
Mikroprocesor 80286 może pracować w dwu odmiennych trybach, określanych jako tryb adresowania rzeczywistego i wirtualnego. W trybie rzeczywistym może on być traktowany przez użytkownika po prostu jako szybsza wersja procesora 8086. Podobnie jak w tym ostatnim, zespół rejestrów zawiera cztery rejestry ogólnego przeznaczenia, AX, BX, CX, DX, rejestry segmentowe CS, SS, DS i ES oraz 16-bitowy rejestr licznika rozkazów. Niemniej, po przełączeniu w tryb adresowania wirtualnego stają się dostępne dalsze rejestry, pozwalające sterować działaniem procesora w środowisku z pamięcią wirtualną.
Mikroprocesor 80286 może obsługiwać 256 różnych zdarzeń wyjątkowych (przerwań programowych), a ich wektory są przechowywane w specjalnej tablicy. W przypadku pracy w trybie rzeczywistym tablica zawiera po cztery bajty dla każdego wektora. W trybie adresowania wirtualnego natomiast, pozycja odpowiadająca jednemu wektorowi ma długość ośmiu bajtów, a dane te są zawarte w tablicy deskryptora przerwań.
Mikroprocesor 80386 jest układem z rodzin i APX 86, rozszerzającym funkcje i możliwości układu 80286.
13 Mikroprocesor 80386 jest układem z rodzin iAPX 86, rozszerzającym funkcje i możliwości układu 80286. Do najbardziej charakterystycznych cech 80386 należą :
-32-bitowa architektura :jednostki ALU , możliwości adresowe, wewnętrzna i zewnętrzna szyna ,typy danych,
-wewnętrzny układ MMU z możliwością tworzenia 1 lub więcej segmentów 1.. 4 GB i dwupoziomowym mechanizmem stronicowania,
-przepustowość szyny 32 MB/s przy częstotliwości zegara 16 MHz do 60 MHz,
- możliwość korzystania z liniowej przestrzeni adresowej i mechanizmów segmentacji
-dynamiczna zmiana rozmiaru danej (16/32 bity) przesyłanej po szynie dla ułatwienia współpracy z układami we-wy
-średni czas wykonania rozkazu - 4,4 okresu zegara,
-moc przetwarzania 3...5 MIPS,
-sprzętowe mechanizmy testowania,
-technologia HCMOS III - upakowanie tranzystorów 1,5 μm
To co zostało:
-architektonicznie nie różnią się od 16 - bitowych poprzedników
-gniazda kart rozszerzających mają wyprowadzone w dalszym ciągu jedynie 16 linii danych i 24 linie adresowe
-tempo pracy procesora nadal określa zegar umieszczony na płycie głównej
Mikroprocesor 80386 składa się z 8 podstawowych bloków funkcjonalnych:
-interfejsu,
-wprowadzania rozkazów,
-dekodera rozkazów
-sterowania
-przetwarzania danych,
-segmentacji,
-stronicowania
-kontroli dostępu.
Blok interfejsu realizuje zlecenia wprowadzania kodu i przekazywania danych miedzy CPU a otoczeniem.
Blok wprowadzania rozkazów wydaje zlecenia dla bloku interfejsu ,dążąc do zapełnienia kolejki rozkazów.
Dekoder przygotowuje rozkazy dla bloku realizacji programu. Z pobranego z kolejki dekodera rozkazu blok sterowania wydziela adresy początkowe procedur wewnętrznych. Zadaniem bloku segmentacji jest wyliczenie adresu efektywnego dla zlecenia dostępu do pamięci wygenerowanego przez blok realizacji programu i przetworzenie adresu logicznego na liniowy.
Blok stronicowania przetwarza adres liniowy dostarczany przez blok segmentacji lub blok wprowadzania rozkazów na adres fizyczny.
14.Rejestry ogólnego przeznaczenia MP 80386 i ich wykorzystanie.
Rejestry można podzielić na trzy funkcjonalne grupy : ogólnego przeznaczenia, segmentowe, statusowe i sterujące.
Rejestry ogólnego przeznaczenia:
AX - odpowiednik akumulatora, pamięć tego rejestru jest wykorzystywana przez arytmometr, AX jest rejestrem używanym w operacjach logicznych, arytmetycznych i do odkładania wyników wielu operacji.
BX - rejestr bazowy, służący do adresowania.
CX - rejestr zliczający ( jest licznik w pętlach ).
DX - rejestr danych, umożliwia przekazywanie i odbieranie danych z portów.
SI - rejestr źródła ciągów łańcuchów danych.
DI - rejestr przeznaczenia ciągów łańcuchów danych.
SP - wskaźnik stosu.
BP - wskaźnik bazy.
15Rejestry segmentowe MP 80386 i ich przeznaczenie
Procesor 386 ma zespół ośmiu rejestrów 32 - bitowych ogolnego przeznaczenia EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP, które mogą przechowywać dane albo adresy. Mymy równierz sześć rejestrów segmentowych CS, SS, DS., ES, FS i GS. Stosuje się je w połączeniu z adresami zapisanymi w rejestrach ogólnego przeznaczenia lub w rejestrze lub w rejestrze wskaźnika rozkazów (EIP) do uzyskania fizycznego adresu na szynie adresowej. Rejestr CS (segment kodu ) z rejestrem wskaźnika rozkazów określa fizyczny adres do pobrania rozkazu, a rejestr SS (segment stosu) jest używany do określenia adresu stosu. Inne rejestry segmentowe stosuje się zwykle do adresacji danych. Każdy z rejestrów segmentowych jest związany z rejestrem deskryptorów segmentów, niewidocznych dla programisty. Przy czym :
EAX - Akumulator
EBX - Rejestr bazowy
ECX - Rejestr licznika
EDX - Rejestr danych
ESI - Indeks źródłowy
EDI - Indeks przeznaczenia
ESP - Wskaźnik stosu
EBP - Wskaźnik bazowy
EIP - Wskaźnik rozkazu
EFL - Znacznik stanu
CS - Segment kodu
SS - Segment stosu
DS - Segment danych
ES - Segment danych
FS - Segment danych
GS - Segment danych
16.Rejestry MP80386 flagowy i licznik komend .
Znaczniki zawierają logiczne wyniki operacji wykonywanych przez procesor . Wszystkie znaczniki znajdują się w jednym 16 - bitowym rejestrze :
CF(carry flag ) - znacznik przeniesienia . Przyjmuje wartość 1 , gdy przy odejmowaniu nastąpiła pożyczka , lub gdy przy dodawaniu wystąpiło przeniesienie . Do rejestru CF przechodzi bit przesunięty poza rejestr lub komórki w wyniku operacji przesunięcia bitowego
Zawartość CF można zmieniać instrukcjami :
CLC - wpisuje 0 do CF
STC - wpisuje 1 do CF
CMC - neguje zawartość CF
PF( partiary flag ) - znacznik parzystości . Przyjmuje wartość 1 , gdy wynik operacji ma parzystą liczbę bitów o wartości 1 ,w przeciwnym wypadku przyjmuje wartość 0 .
AF( auxilary carry flag ) - pomocniczy znacznik przeniesienia . działa podobnie jak CF lecz „reaguje” na przeniesienie / pożyczkę z bitu 3 na 4 . Wykorzystywany przy operacjach na spakowanych liczbach dziesiętnych .
ZF( zero flag ) - znacznik zera . Przyjmuje wartość 1 , gdy wynik operacji jest zerem , w przeciwnym wypadku przyjmuje wartość 0 .
SF( sign flag ) - znacznik znaku .Przyjmuje wartość 1 , gdy wynik operacji jest liczbą ujemną , w przeciwnym wypadku przyjmuje 0 .
TF(trap flag ) - znacznik pracy krokowej . Wykorzystywany przez debugery .
IF(interrupt ) - znacznik przerwań . Gdy IF = 0 to procesor ignoruje przerwania .
Zawartość IF można zmieniać za pomocą :
CLI - wpisuje 0 do IF
STI - wpisuje 1 do IF
DF( direction flag ) - znacznik kierunku . Steruje zmianą rejestrów indeksowych przy operacjach powtarzających . Jeśli DF = 1 to zawartość rejestrów będzie zmniejszana , w przeciwnym wypadku będzie zwiększana .
Zawartość DF można można zmieniać za pomocą instrukcji :
CLD - wpisuje 0 do DF
SRD - wpisuje 1 do DF
OF (overflow flag ) - przyjmuje wartość 1 gdy , wynik operacji nie mieści się w rejestrze lub komórce pamięci oraz gdy zmieniony zostanie bit znaku argumentu po wykonaniu operacji przesunięcia bitów , w przeciwnym wypadku przyjmuje wartość 0 .
Rejestr komend
Bity 15-10 - zarezerwowane ;
Bit 9 - bit określający , czy inicjator może inicjować transakcje w trybie fast back-to-back ;
Bit 8 - bit określający , czy urządzenie ma sygnalizować wystąpienie błędu krytycznego .Po inicjacji błąd powinien mieć wartość 0 ;
Bit 7 - bit określający , czy urządzenie jest w stanie wystawić adres bądź dane w jednym cyklu zegara , czy wymaga dodatkowych cykli oczekiwania przed wystawieniem adresu i danych ;
Bit 6 - bit określający , czy urządzenie ma sygnalizować wystąpienie błędu parzystości ;
Bit 5 - umożliwia jednoczesną zmianę palet w kilku kartach graficznych podłączonych do jednej magistrali
Bit 4- określa , czy inicjator może wykorzystywać komendę Write and Invalidate zamiast komendy Write podczas dostępu do cache'owanych obszarów pamięci
Bit 3 - bit określający czy urządzenie ma monitorować cykl specjalny
Bit 2 - określa czy urządzenie może przejmować kontrolę nad magistralą
Bit1- określa czy urządzenie mające zaimplementowany dekoder adresów ma dostęp do przestrzeni adresowej magistrali PCI
Bit0- określa czy urządzenie mające zaimplementowane dekoder adresów we/wy ma dostęp do przestrzeni adresowej we/wy magistrali PCI
18.Płyta główna komputera. Części funkcyjne. Złącza rozszerzające.
Płyta główna składa się z:
gniazda procesora
czterech 72-pinowych modułów SIMM - dwa banki pamięci po dwa moduły
jednego 168-pinowego modułu DIMM obsługującego SDRAM/EDO DRAM/Page Mode DRAM lub inne.
gniazda modułu cache np.( zawierającego, w opcjach, moduły 256KB lub 512KB pipeline burst SRAM).
trzech gniazd PCI Local Bus oraz czterech 16 bitowych gniazd ISA Bus.
kontrolera DMA., Kontrolera przerwań sprzętowych.
Interfejsów magistrali, Interfejsu programowalnego.
Programowalnego układu czasowego.
dwóch łączy IDE zapewniających połączenie z napędem dysków twardych.
łącza ze stacji dysków elastycznych.
chip Multi-I/O obsługujący dwa złącza szeregowe oraz jedno równoległe
łącze PS/2, BIOS systemowy, złącza uniwersalnego
przyłącze zasilania oraz bateryjny system podtrzymywania funkcji BIOS.
19Tryb adresownia rzeczywistego. Sterowanie linią A20 pamięć konwencjonalna, wysoka, górna.
W trybie rzeczywistym maksymalna dostępna przeszczeń adresowa wynosi
bajtów, czyli 1 MB. Pamięć operacyjna podzielona jest na 64 - kilobajtowe, nierozłączne obszary zwane segmentami. Adres logiczny dowolnej komórki pamięci składa się z dwóch elementów : 16 - bitowego członu, określającego numer segmentu oraz przesunięcia (offsetu), wskazującego konkretną komórkę w segmencie. Aby podać adres fizyczny poszczególnych komórek RAM -u , należy pomnożyć numer segmentu przez 16, a do otrzymanej liczby dodać offset. W taki sposób podczas pracy w trybie rzeczywistym adresują pamięć wszystkie procesory Intela należące do serii x86. Dotyczy to nawet procesorów Pentium - one także mają wówczas dostęp do 1 MB pamięći.
Pamięć konwencjonalna - jest to pamięć bezpośredniego dostępu tylko do pierwszych 640 kB pamięci operacyjnej. Może ona być obsługiwana przez wszystkie stosowanw typy procesorów.
Pamięć górna - (UMA,Upper Memory Area), jest to pamięć w obszarze adresowania od 640 kB do 1 MB. Może być częściowo wykorzystywana do celów systemowych.
Pamięć wysoko - (HMA, High Memory Area), jest to pierwsze 64 kB powyżej 1 MB. Może być wykorzystywana do celów systemowych.
20.Tryb rzeczywisty i tryb chroniony.
tryb rzeczywisty (real mode) ; procesor 32 bitowy przełącza się w stan odwzorowujący zachowanie jednostki 16 bitowej. Zawartość rejestru segmentowego przesuwana jest o 4 pozycje binarne w lewo i dodawana do zawartości rejestru przesunięcia (16xSegment+Offset). Wynik stanowi liczbę 20 bitową, która jest po prostu wystawiana na magistralę adresową. Metoda ta prowadzi do wieloznaczności. Różne pary liczb Segment:Offset mogą dawać jednakowy wynik i odwoływać się do tej samej komórki pamięci. W trybach chronionych jest to z różnych względów wykluczone. Ze względu na 20 bitową magistralę adresową w trybie tym można normalnie zaadresować tylko 1 MB pamięci
tryb chroniony (protected mode); Tryb ten wprowadzony został (począwszy od modelu 80286) w celu ochrony poszczególnych zadań pracujących pod kontrolą wielozadaniowego (multitasking) systemu operacyjnego. Całość jest zaimplementowana jako czteropoziomowy system uprawnień. Układy sprzętowe wbudowane w procesor kontrolują odwołania do danych oraz kodu i wydają (lub odmawiają) zewzwolenia na dostęp. Wzrotst bezpieczeństwa okupuje się stosunkowo dużą komplikacją w obliczeniu adresu.
Stronicowanie pamięci.
Stronicowanie (paging) stanowi specyficzną funkcję odwzorowującą ogrom przestrzeni wirtualnej na stosunkowo wąskie pole pamięci RAM plus obszar udostępniany przez pamięć masową. Odwzorowywanie to odbywa się za pośrednictwem małych porcji zwanych stronami (Pages). Rozmiar stron jest stały i wynosi 4 kB ( w niektórych procesorach np. Pentium możliwa jest zmiana rozmiaru strony na 4 MB). Procesor może ale nie musi korzystać z mechanizmu stronicowania.
W procesie stronicowania adres logiczny podlega dwustopniowym przekształceniom. W pierwszej fazie odbywa się proces segmentacji. 16 bitowy selektor segmentu wskazuje na rekord adresowy w tablicy deskryptorów. Do uzyskanego w ten sposób adresu podstawy dodaje się 32 bitowe przesunięcie. Dopiero generowany w powyższy sposób adres liniowy podlega transformacji na fizyczny adres obiektu. 32 bitowe słowo adresowe podzielone jest na trzy grupy. W pierwszych dziesięciu najstarszych bitach przechowywany jest numer rekordu w katalogu stron (Page Directory). Katalog zawiera 1024 takich rekordów a każdy z nich wskazuje na tablicę stron (Page Tables). Pierwszy rekord w katalogu stron wskazuje adres bazowy tablicy stron o numerach 0-1023, drugi dotyczy tablicy 1024-2047 a ostatni odnosi się do stron o numerach 1047552-1048575. 10 kolejnych bitów adresu liniowego (Page) wskazuje na jeden z 1024 rekordów w danej tablicy. Same rekordy w tablicach stron stanowią z kolei wskaźniki do stron, z których każda ma wymiar 4 kB. Adresowany obiekt ulokowany jest w obrębie danej strony. Jego dokładna pozycja ustalana jest na podstawie pola Offset tj. dwunastu najmłodszych bitów adresu liniowego (2^14=4 kB).
21.Tryb adresowania wirtualnego. Selektory , deskryptory, tablica deskryptor. GDT,LDT,IDT
Deskryptor - specjalny obszar pamięci z której pobierany jest 24-bitowy adres początku segmentu.
Deskryptory przechowywane są w tablicy deskryp. Każdy deskryptor ma długość 8 bajtów: 3 z nich to adres początku segmentu, a 2 określają jego rozmiar. Odległość konkretnego deskryptora od początku tablicy deskryptorów zawarta jest w części pierwszego członu adresu logicznego, tzw. selektorze. Ma on długość 16 bitów - pierwszych 13 to indeks, 14 to indykator tablicowy TI, a dwa pozostałe bity służą do ustalania poziomu uprzywilejowania i zabezpieczeń RPL.
Tablice deskryptorów: GDT- (Global Description Table) - globalna tablica deskryptorów zawierająca deskryptory dostępne dla wszystkich zadań realizowanych w systemie, LDT(Local) - lokalna tablica deskryptorów zawierająca deskryptory związane z określonym zadaniem. W specjalnej tablicy deskryptorów przerwań IDT(Interrpt Description Table) zawarte są deskryptory procedur obsługi przerwań i pupłapek.
22.Tryb adresowania wirytualnego <swapping>W trybie wirtualnym możliwe jest udostępnienie procesom większej pamięci operacyjnej, niż fizycznie zainstalowana w systemie. Umożliwia to procedura swappingu. Jeśli proces żąda przydzielenia pamięci, a pamięć operacyjna jest całkowicie zapełniona, wtedy możliwe jest odesłanie na dysk segmentów (stron, jeśli korzystamy z tego mechanizmu), które w danej chwili nie są wykorzystywane przez żaden proces. Fakt umieszczenia segmentu (strony) na dysku, a nie w pamięci operacyjnej, odnotowany zostaje w deskryptorach segmentów, lub w tablicy stron. Powstałe w ten sposób miejsce może być przydzielone do procesu, który zgłasza zapotrzebowanie na pamięć. Jeśli proces potrzebuje danych, które zostały odesłane na dysk, dane te są przenoszone do pamięci operacyjnej (w razie potrzeby, na dysk zostają odesłane inne nieużywane segmenty). Strony do umieszczenia na dysku wybierane są wg jednego kryteriów: czas jaki upłynął od ostatniego dostępu, liczba odwołań, czas jaki upłynął od załadowania. Mechanizm swappingu pozwala zwiększyć ilość dostępnej pamięci w systemie, jednak czas dostępu do danych umieszczonych na dysku jest wielokrotnie dłuższy, niż do danych umieszczonych w pamięci.
23.Tryb adresowania wirtualnego. Poziomy uprzywilejowania procesów.
Podczas pracy w trybie wirtualnym pamięć operacyjna także podzielona jest na segmenty które są rozłączne - nie zachodzą na siebie. Każdy z nich ma swój adres początkowy (adres bazowy) oraz określony rozmiar mieszczący się w granicach od 1 bajta do 64 kB. W czasie pracy w trybie adresowania wirtualnego fizyczny adres komórki jest liczbą trzybajtową. Komputer potrafi więc zaadresować
bajtów, czyli 16 MB pamięci fizycznej.
Adres logiczny - podobnie jak w trybie rzeczywistym - składa się z dwóch elementów: segmentu i offsetu. 24 - bitowy adres początku segmentu pobierany jest z obszaru pamięci zwanego deskryptorem segmentu. Zestaw wszystkich deskryptorów to tablica deskryptorów segmentu. Adres początkowy tej tablicy przechowywany jest w dwóch rejestrach mikroprocesora - LDTR i GDTR. Poziomy uprzywilejowania w procesorach wykorzystuje się do zabezpieczania „ważniejszych” procedur przed mniej ważnymi w obrębie jednego zadania. Z tego względu segmenty jednego zadania mogą otrzymać jeden z czterech poziomów uprzywilejowania (0 .. 3). Najwyższy priorytet ma zerowy poziom uprzywilejowania włąściwy dla jądra systemu operacyjnego. Poziom trzeci najniższy, przydzielono programom użytkowym.
24.TRYB ADRESOWANIA WIRTUALNEGO. PROCES OBLICZANIA ADRESU LINIOWEGO.
Podczas pracy w trybie wirtualnym pamięć operacyjna jest podzielona na segmenty. Segmenty te są rozłączne. Każdy z nich ma swój adres początkowy (bazowy) oraz określony rozmiar od 1bajtu do 64 KB. W czasie pracy w trybie adresowania wirtualnego fizyczny adres komórki jest liczbą trzybajtową. Komputer potrafi więc zaadresować
bajtów, czyli 16 MB pamięci fizycznej. Adres logiczny składa się z dwóch elementów: segmentu i offsetu. 24 bitowy adres początku segmentu pobierany jest z obszaru pamięci, zwanego deskryptorem segmentu. Obliczanie adresu. Zamiana adresu logicznego na fizyczny - najpierw mikroprocesor odczytuje z zawartego w rejestrze segmentowym selektora, z którą tablica deskryptorów ma być skojarzony indeks. Potem do adresu bazowego tablicy deskryptorów (który jest w rejestrach LDTR lub GDTR) dodawana jest zawartość indeksu pomnożona przez 8. W ten sposób wyliczany jest adres właściwego deskryptora w odpowiedniej tablicy. Następnie z deskryptora odczytywany jest trzybajtowy adres bazowy segmentu po dodaniu do niego szesnastobitowego offsetu mikroprocesor otrzymuje adres fizyczny.
(Adres początku DT+ +8*indeks) = adres deskryptora w odp. Tablicy adres fizyczny = offset + odczytanie 3 -bajtowego adresu bazowego segmentu. 25 Adres logiczny - podobnie jak w trybie rzeczywistym - składa się z dwóch elementów: segmentu i offsetu. 24 - bitowy adres początku segmentu pobierany jest z obszaru pamięci zwanego deskryptorem segmentu. Zestaw wszystkich deskryptorów to tablica deskryptorów segmentu. Adres początkowy tej tablicy przechowywany jest w dwóch rejestrach mikroprocesora - LDTR i GDTR Schemat zamiany adresu logicznego na fizyczny w trybie chronionym przebiega w trzech fazach. Najpierw mikroprocesor odczytuje z zawartego w rejestrze segmentowym selektora, z którą tablicą deskryptorów (lokalną czy globalną) ma być skojarzony indeks. Następnie do adresu bazowego tablicy deskryptorów (znajdującego się w rejestrze LDTR lub GDTR) dodawana jest zawartość indeksu pomnożona przez osiem. W ten sposób wyliczany jest adres właściwego deskryptora w odpowiedniej tablicy. Wreszcie z tego deskryptora odczytywany jest trzybajtowy adres bazowy segmentu: po dodaniu do niego szesnastobitowego offsetu mikroprocesor otrzymuje adres fizyczny
27 MP80386 ARCHITEKTURA BLOKI FUNKCYJNE
Procesor 80386DX ma zespół ośmiu rejestrów 32-bitowych ogólnego przeznaczenia EAX, EBX, ECX, EDX, ESI, EDI, EBP i ESP, które mogą przechowywać dane albo adresy. Aby była zachowana zgodność z wcześniejszym 8086 lewa część każdego rejestru może być traktowana jako rejestr 16-bitowy AX, BX, CX, DX, SI, DI, BP i SP. Dalej, rejestry AX, BX, CX i DX mogą być podzielone na rejestry 8-bitowe AH, AL, BH, BL itd. Sześć rejestrów segmentowych CS, SS, DS, ES, FS i GS stosuje się, w połączeniu z adresami zapisanymi w rejestrach ogólnego przeznaczenia lub w rejestrze wskaźnika rozkazów (EIP) do uzyskania fizycznego adresu na szynie adresowej. Rejestr CS (segment kodu) z rejestrem wskaźnika rozkazów określa fizyczny adres dla pobrania rozkazu, a rejestr SS (segment stosu) jest używany do określenia adresu stosu. Inne rejestry segmentowe stosuje się zwykle do adresacji danych. Każdy z rejestrów segmentowych jest związany z rejestrem deskryptorów segmentów, niewidocznych dla programisty. Rejestr deskryptora przechowuje adresy bazowe, wielkości segmentów i pewne bity atrybutów związane z segmentem. Gdy procesor pracuje w trybie rzeczywistym, wielkość każdego segmentu jest ograniczona do 64 KB, ale w trybie wirtualnym (chronionym) wielkość segmentu może wynosić do 4 GB. 32-bitowy rejestr warunków zawiera znaczniki przeniesienia, zera, przeniesienia pośredniego, parzystości, znaku, kierunku transmisji i nadmiaru. Dwa bity wykorzystuje się w przerwaniach i pracy krokowej (znaczniki Interrupt Enable i Trap). Inny znacznik (Resume) jest przydatny przy testowaniu programu. Pozostałe znaczniki stosuje się do sterowania pracą systemu, wskazują tryb wirtualny, zadanie zagnieżdżone i poziom ochrony operacji wejścia-wyjścia.
Architektura
Procesor 386 ma zespół 8 rejestrów 32-bitowych ogólnego przeznaczenia EAX, EBX, ECX, EDX, ESI, EDI, EBP i ESP, które mogą przechowywać dane albo adresy. Dla zgodności z wcześniejszym procesorem 8086 lewa część każdego rejestru może być traktowana jako rejestr 16-bitowy AX, BX, CX, DX, SI, DI, BP i SP. Dalej, rejestry AX, BX, CX i DX mogą być podzielone na rejestry 8-bitowe AH, AL, BH, BL itd.
Sześć rejestrów segmentowych CS, SS, DS, ES, FS i GS stosuje się, w połączeniu z adresami zapisanymi w rejestrach ogólnego przeznaczenia lub rejestrze wskaźnika rozkazów do uzyskania fizycznego adresu na szynie adresowej. Rejestr CS (segment kodu) z rejestrem wskaźnika rozkazów określa fizyczny adres pobrania rozkazu, a rejestr SS (segment
stosu) jest używany do określenia adresu stosu. Inne rejestry segmentowe stosuje się zwykle do adresacji danych. Każdy z rejestrów segmentowych jest związany z rejestrem deskryptorów segmentów, niewidocznych dla programisty. Rejestr deskryptora przechowuje adresy bazowe, wielkości segmentów i pewne bity atrybutów związane z segmentem. Gdy procesor pracuje w trybie rzeczywistym, wielkość każdego segmentu jest ograniczona do 64 KB ale w trybie wirtualnym (chronionym) wielkość segmentu może wynosić do 4 GB.
32-bitowy rejestr warunków zawiera znaczniki przeniesienia, zera, przeniesienia pośredniego, parzystości, znaku, kierunku transmisji i nadmiaru. Dwa bity wykorzystuje się w przerwaniach i pracy krokowej (Interrupt i Trap). Inny znacznik (Resume) jest przydatny przy testowaniu programu. Pozostałe znaczniki stosuje się do sterowania pracą systemu, wskazują tryb wirtualny, zadanie zagnieżdżone i poziom ochrony operacji wejścia-wyjścia.
Mikroprocesor 80386 składa się z 8 podstawowych bloków funkcjonalnych
-interfejsu,
-wprowadzania rozkazów,
-dekodera rozkazów
-sterowania
-przetwarzania danych,
-segmentacji,
-stronicowania
-kontroli dostępu.
Bloki przetwarzania danych, kontroli dostępu, sterowania tworzą blok realizacji programu. Poszczególne bloki MP 80386 funkcjonują w dużej mierze autonomicznie ,co umożliwia jednoczesne wykonywanie wielu czynności , a zatem zminimalizowanie czasu realizacji programu.
BLOK INTERFEJSU - BIU Blok interfejsu realizuje zlecenia wprowadzania kodu i przekazywania danych miedzy CPU a otoczeniem. Zlecenia są wystawiane przez bloki wprowadzania rozkazów, stronicowania i segmentacji .Blok BIU ma możliwość stosowania priorytetów w przypadku jednoczesnego zgłoszenia wielu różnorodnych zleceń, co zapewnia efektywne wykorzystanie szyny zewnętrznej.
Typowo , każda operacja na szynie jest realizowana podczas 2 cykli zegara .Istnieje jednak specjalny tryb pracy w którym efektywny czas pracy jest krótszy .W trybie tym ,adresy związane z następną operacja są podawane na szynę adresowa jeszcze przed zakończeniem bieżącej operacji. Jest to możliwe przy zastosowaniu dwóch niezależnych banków pamięci, w czasie gdy jest realizowana operacja na jednym banku pamięci jest przetwarzany adres odnoszący się do drugiego banku. Tego typu rozwiązanie jest szczególnie wygodne w przypadku wykorzystania pamięci dynamicznych, dostęp do których wymaga przetworzenia liniowego adresu komórki pamięci na adres rzędu i kolumny. Pod koniec cyklu dostępu do pamięci dynamicznej adres jest przechowywany w zatrzaskach interfejsu z pamięcią i nie ma potrzeby utrzymywania adresu na szynie MP. Może wiec znaleźć się na niej adres odnoszący się do drugiego banku pamięci. Procesor może przechodzić do pracy w trybie zakładkowym w sposób dynamiczny na żądanie zgłoszone przez blok interfejsu
W skład linii interfejsu z otoczeniem wchodzą :
-szyna danych
-szyna adresowa
-szyna kontrolno-sterująca
-szyna interfejsu z koprocesorem
-linie zgłoszeń przerwań i sterowania dostępu do magistrali
Szyna kontrolno sterująca zawiera linie definiujące typ wykonywanego cyklu (operacja we-wy/ pamięć, odczyt /zapis itp.).Linie sterujące realizowany cykl umożliwiają wydłużenie czasu trwania operacji oraz dynamiczne określenie rozmiarów przesyłanej danej (16/32 bity) w sposób przezroczysty dla programu.
W celu połączenia komputera z wysokoefektywnymi systemami, interfejs szyny 80386 umożliwia potokową obróbkę danych, dynamiczne rezerwowanie szyny danych i proste sygnały BYTE ENABLE...
28 BLOK SEGMENTACJI
Zadaniem bloku segmentacji jest wyliczenie adresu efektywnego dla zlecenia dostępu do pamięci wygenerowanego przez blok realizacji programu i przetworzenie adresu logicznego na liniowy. Adres liniowy jest przesyłany do bloku stronicowania razem parametrami określającymi rodzaj operacji dostępu. W bloku segmentacji umieszczono szybką pamięć z tablicami deskryptorów segmentów.
Blok segmentacji zapewnia cztery poziomy obrony do izolacji i ochrony urządzeń oraz systemów operacyjnych jeden od drugiego. Konstrukcja mikroprocesora umożliwia połączenie wszystkich systemów w jedno pole.
BLOK STRONICOWANIA
Blok stronicowania przetwarza adres liniowy dostarczany przez blok segmentacji lub blok wprowadzania rozkazów na adres fizyczny. Stronicowanie jest realizowane z użyciem dwupoziomowej tablicy zawierającej katalogi i adresy ramek. Tablica ta jest umieszczona w pamięci systemu. Aby przyspieszyć generację adresów fizycznych w bloku stronicowania umieszczono 32-pozycyjny podręczny bufor - TLB ( translation look-aside buffer ) zawierający ostatnio wykorzystywane pozycje tablicy. Jeżeli odwołanie do pamięci wykorzystuje informacje zawarte w TLB, to czas translacji adresu wynosi tylko pól cyklu zegara .Łączny czas przetwarzania adresu logicznego na fizyczny zajmuje 2 cykle zegara . Stosowanie bufora TLB powoduje znaczne przyspieszenie generacji adresu w porównaniu z przypadkiem w którym jest konieczne korzystanie z tablic umieszczonych w pamięci zewnętrznej. Jeżeli jest wygenerowane odwołanie do pamięci , którego parametry nie znajdują się w buforze TLB , to wprowadzenie niezbędnych danych do bufora TLB (32 pozycje ) zapewniają współczynnik trafień 98%. Bloki stronicowania , segmentacji i kontroli dostępu tworzą łącznie z procesorem blok zarządzania pamięcią MMU. Umieszczenie bloku MMU w układzie MP stwarza kolejną możliwość pracy nakładkowej : adres fizyczny jest przygotowywany w czasie gdy BIU realizuje jeszcze poprzednią operację i może być podany na szynę adresową natychmiast po jej zakończeniu . Zwiększa to w istotny sposób efektywność współpracy z otoczeniem.
30.ZARZĄDZANIE ZASOBAMI PAMIĘCI. STRUKTURA DESKRYPTORA KODU I DANYCH.
Dostęp do pamięci. Zadaniem procesora jest przetwarzanie danych złożonych w pamięci; tam też znajduje się kod realizowanego programu. CPU bardzo intensywnie współpracuje z układami pamięciowymi i bez nich nie może się obejść. Wykonywane operacje mają charakter dwukierunkowy: zapis lub odczyt. Przy zapisie procesor wystawia słowo na magistralę danych a stosowny adres na magistralę adresową. Podczas odczytu końcówki adresowe CPU definiują punkt odniesienia w pamięci a zawartość tej właśnie komórki zdejmowana jest przez procesor z magistrali danych. Nad sprawnym przebiegiem takich operacji czuwają oczywiście różne układy towarzyszące. których rytm pracy wyznaczają sygnały kontrolno-sterujące wytwarzane przez sam procesor. Procesory 16-bitowe pierwszej generacji (począwszy na modelu 8088 a skończywszy na układzie 80186) miały 20 końcówek adresowych. Architektura logiczna wyznaczała podział pamięci na 64 kB segmenty. Mechanizm adresowania składał się z dwóch rejestrów 16-bitowych: jeden określał początek segmentu (Segment) a drugi odległość punktu od tego początku (Offset). Para rejestrów Segment i Offset wyznaczała tzw. adres logiczny. Konieczność dopasowania tej logicznej struktury (16+16) do wymiaru 20-bitowej magistrali adresowej wyznaczyła następujący sposób przeliczenia:
Adres fizyczny = 16 x Segment + Offset Generowany według powyższej formuły adres fizyczny (tutaj 20-bitowy) wystawiany był na magistralę adresową. Powstające z prawej strony dodatkowe pozycje wypełnia się zerami a do uzyskanej w ten sposób liczby 20-bitowej dodaje się zawartość rejestru Offset.
adres liniowy. Stanowi on działania mechanizmu segmentacji w trakcie przetwarzania adresu logicznego. Adres jest liniowy dlatego, ponieważ bezpośredni system adresowania segmentu (w rejestrze segmentowym zawarty jest adres segmentu) gwarantuje, iż segment o adresie wyższym znajduje się fizycznie wyżej w pamięci. Aktywacja przestrzeni wirtualnej powoduje, iż mechanizm stronicowania odwzorowuje adres liniowy w adres fizyczny. Generacja procesorów 16-bitowych wyposażonych w 20-końcówkową magistralę adresową operowała w przestrzeni fizycznej o rozmiarze 1 MB. Procesory 32-bitowe (począwszy od 80386DX) mają już 32 końcówki adresowe co pozwala na pokrycie zakresu 4 GB
Wyróżnić należy trzy podstawowe tryby pracy procesora:
· Tryb rzeczywisty (Real Mode). Procesor 32-bitowy przełącza się w stan odwzorowujący zachowanie jednostki 16-bitowej. Zawartość rejestru segmentowego przesuwana jest o 4 pozycje binarne w lewo i dodawana do zawartości rejestru przesunięcia (l6xSegment + Offset). Wynik stanowi liczbę 20-bitową, która jest po prostu wystawiana na magistralę adresową. Proszę zwrócić uwagę, iż konstrukcja adresu według takiej reguły prowadzi do wieloznaczności. Różne pary liczb Segment:Offset mogą dawać jednakowy wynik i odwoływać się do tej samej komórki pamięci. W trybach chronionych jest to z różnych względów wykluczone.
· Tryb chroniony (Protected Mode). Tryb ten wprowadzony został (począwszy od modelu 80286) w celu ochrony poszczególnych zadań pracujących pod kontrolą wielozadaniowego (nrultitasking) systemu operacyjnego. Całość jest zaimplementowana jako czteropoziomowy system uprawnień. Układy sprzętowe wbudowane w procesor kontrolują odwołania do danych oraz kodu i wydają (lub odmawiają) zezwolenia na dostęp. Wzrost bezpieczeństwa okupuje się stosunkowo dużą komplikacją w obliczaniu adresu.
· Tryb wirtualny procesora 8086 (Virtual 8086 Mode). Tryb dostępny jest w układach rodziny Intel począwszy od modelu 80386. Koncepcja trybu wirtualnego stanowi kombinację dwóch wcześniej omówionych trybów. System operacyjny wykorzystujący tą możliwość pracy stawia do dyspozycji wykonywanych programów bardzo interesujące środowisko. Każdy z programów użytkowych widzi swój własny procesor 8086 pracujący w trybie rzeczywistym. System jako całość dysponuje jednak zaczerpniętymi z trybu chronionego mechanizmami gwarantującymi odpowiedni dobór praw dostępu do zasobów i uniemożliwiającymi wzajemne kolizje pomiędzy współ-uczestniczącymi zadaniami.
Adresowanie
Znana z trybu rzeczywistego prosta projekcja zawartości rejestrów segmentowych i przesunięcia na adres fizyczny zatraca się wyraźnie w chronionych trybach pracy. Wspomniane rejestry są od siebie całkowicie odseparowane i chociaż nadal dostępne programowo, interpretacja ich zawartości jest zupełnie inna.
Rejestr segmentowy stanowi teraz selektor segmentu a nie wprost jego adres. 13 najstarszych pozycji tego rejestru stanowi wskaźnik do 8-bajtowej struktury opisującej dany segment (Segment Descriptor). Z pozostałych trzech bitów dwa poświęcone zostały na implementację czteropoziomowego systemu praw dostępu do segmentu a jeden określa czy wspomniany powyżej wskaźnik odnosi się do tzw. tablicy lokalnej czy globalnej. Rekordami w tych tablicach są właśnie deskryptory segmentów. Każdy z nich zawiera jednoznaczną informację o lokalizacji segmentu w pamięci i jego rozmiarach. W ten sposób definiowany jest spójny obszar o adresie początkowym wyznaczanym liczbą 32bitową. Na liczbę określającą rozmiar takiego bloku przeznaczone zostało pole 20-bitowe. Istnieją dwie możliwości interpretowania liczby w tym polu. W trybie I:l (granulacja 1 B) rozmiar maksymalny wynosi po prostu 2'°=1 1-IB. Gdyby jednak przyjąć jednostkę 4kB (granulacja 4 kB), rozmiar segmentu może osiągnąć do 4 GB. Informacja o tym, która z konwencji jest aktualne obowiązująca jest w deskryptorze.
Segmenty l MB (granulacja bajtowa) pozwalają na utworzenie przestrzeni wirtualnej o rozmiarze 16 GB. Duża pamięć wirtualna realizowana jest jako złożenie małej i szybkiej pamięci RAM i obszernej pamięci masowej.
System operacyjny nadzoruje mechanizm składowania ustawiając odpowiednie znaczniki w tabelach deskryptorów. Jeśli procesor żąda dostępu do takiego "odłożonego na bok" segmentu, sprzęt wyzwala tzw. wyjątek (Exception), będący odpowiednikiem przerwania 0x0b. Wzywany jest podprogram obsługi przerwania, który sprowadza potrzebny segment z dysku do pamięci.
31.Sposoby logicznej organizacji pamięci. Praca w trybie chronionym.
Podczas pracy w trybie wirtualnym pamięć operacyjna także podzielona jest na segmenty które są rozłączne - nie zachodzą na siebie. Każdy z nich ma swój adres początkowy (adres bazowy) oraz określony rozmiar mieszczący się w granicach od 1 bajta do 64 kB. W czasie pracy w trybie adresowania wirtualnego fizyczny adres komórki jest liczbą trzybajtową. Komputer potrafi więc zaadresować
bajtów, czyli 16 MB pamięci fizycznej. Adres logiczny - podobnie jak w trybie rzeczywistym - składa się z dwóch elementów: segmentu i offsetu. 24 - bitowy adres początku segmentu pobierany jest z obszaru pamięci zwanego deskryptorem segmentu. Zestaw wszystkich deskryptorów to tablica deskryptorów segmentu. Adres początkowy tej tablicy przechowywany jest w dwóch rejestrach mikroprocesora - LDTR i GDTR
Schemat zamiany adresu logicznego na fizyczny w trybie chronionym przebiega w trzech fazach. Najpierw mikroprocesor odczytuje z zawartego w rejestrze segmentowym selektora, z którą tablicą deskryptorów (lokalną czy globalną) ma być skojarzony indeks. Następnie do adresu bazowego tablicy deskryptorów (znajdującego się w rejestrze LDTR lub GDTR) dodawana jest zawartość indeksu pomnożona przez osiem. W ten sposób wyliczany jest adres właściwego deskryptora w odpowiedniej tablicy. Wreszcie z tego deskryptora odczytywany jest trzy bajtowy adres bazowy segmentu: po dodaniu do niego szesnastobitowego offsetu mikroprocesor otrzymuje adres fizyczny.
32.TYPY DANYCH MP80386 TYPY DANYCH KOPROCESORA ARYTMETYCZNEGO.
Dane w 80386 mogą mieć rozmiar bitów, obszarów bitów, bajtów, słów 16-bitowych, długich słów 32-bitowych i poczwórnych słów 64-bitowych. Dane mogą mieć format liczb bez znaku i ze znakiem, upakowanych lub rozpakowanych liczb w kodzie BCD, bajtów znaków i łańcuchów znaków. Układy współpracujące: 80387Koprocesor arytmetyczny
W systemach z 80386 można stosować układy wspomagające opracowane dla mikroprocesora 8086 i większość z 8-bitowych układów stosowanych w systemach z mikroprocesorem 8085A.Tryb pracy procesora (rzeczywisty, chroniony, wirtualny 8086) nie ma wpływu na działanie koprocesora, gdyż koprocesor operuje na rozkazach i danych przekazanych przez procesor. Struktura koprocesora 80387 jest znacznie bardziej skomplikowana niż struktura wcześniejszych koprocesorów. W układzie 80387 można wyróżnić trzy mogące pracować niezależnie bloki:
· układu sterowania magistrali (ang. bus control logicy;
· układu sterowania z układem sprzężenia magistral (ang. data interface and control unit);
- układu obliczeń numerycznych (ang. numeric execution unit).
Układ sterowania magistrali zapewnia komunikację koprocesora z mikroprocesorem. Procesor traktuje ten układ jak układ wejścia-wyjścia o adresach portów 0f0h-0ffh- koprocesor nie ma bezpośredniego dostępu do pamięci (za dostęp do pamięci odpowiada procesor). Układ sterowania magistrali musi pracować synchronicznie z procesorem. Układ sterowania z układem sprzężenia magistral jest odpowiedzialny za przesyłanie danych do i z układu obliczeń numerycznych, pobieranie i dekodowanie rozkazów oraz sterowanie ich wykonaniem. Układ obliczeń numerycznych został poważnie zmodyfikowany - koprocesory 80386 i lepsze mogą obliczać wartości funkcji trygonometrycznych.
32,34,35. FORMATY DANYCH:
Liczby całkowite. Układ 8086(koprocesor:8087)i wyższe operować trzema typami liczb całkowitych dwójkowych. Różnią się one między sobą tylko długością. Bit najbardziej znaczący jest interpretowany jako bit znaku. liczba. Liczby ujemne są zapisywane w notacji uzupełnienia do dwóch. Wartość zera jest interpretowana jako liczba dodatnia, a więc wszystkie bity są wówczas zerowe. Liczby całkowite mają dwie reprezentacje: dwójkową oraz dziesiętną. Układ 8087 może operować trzema typami liczb całkowitych dwójkowych. Zdefiniowane one są w następujący sposób: 1) dwubajtowa liczba całkowita (WORD INTEGER), 2) krótka liczba całkowita ( 4 bajtowa SHORT INTEGER), 3) długa liczba całkowita (8 bajtowa LONG INTEGER).
Liczby całkowite dziesiętne(BCD) są stosowane przez układ 8087, jak i wyższe w postaci upakowanej (PACKED DECIMAL), a więc z dwiema cyframi dziesiętnymi w jednym bajcie z wyjątkiem bajtu najbardziej znaczącego, (postać nieupakowana to 1 liczba na bajt). W bajcie tym najbardziej znaczący bit równy 0 oznacz że liczba jest dodatnia, bit równy zero oznacza że liczba jest ujemna. Pozostałe bity w bajcie są pomijane. Liczby ujemne nie są przechowywane w formacie uzupełnienia dwójkowego i różnią się od liczb dodatnich tylko bitem znaku. Cyfrą najbardziej znaczącą w liczbie całkowitej dziesiętnej jest cyfra leżąca najbardziej na lewo. Wszystkie cyfry muszą być z zakresu 0H...9H
KOD BCD. 1) nieupakowany - każda liczba zajmuje 1 bajt, 2) upakowany(cyfra:4 bity).
Format Zmiennoprzecinkowy. Reprezentacja zmiennoprzecinkowa służy do przedstawienia ograniczonego przedziału liczb rzeczywistych. Ponieważ nawet ograniczony przedział osi liczb rzeczywistych. Liczba w omawianej reprezentacji jest najczęściej zapisywana w notacji naukowej. Liczba składa się z części znaczącej nazywana także mantysą i wykładnika. Każdą liczbę w reprezentacji zmiennoprzecinkowej można zapisać w postaci: X=(-1)S *C*2E . Symbol S służy do oznaczenia względnej wartości liczby. S=1 oznacz liczbę ujemną, S=0 liczbę dodatnią. Symbol C oznacza znaczące cyfry liczby (mantysę). Składa się z dwóch części- części całkowitej i części ułamkowej liczby. Dla liczb znormalizowanych część całkowita liczby zawsze wynosi 1. Wartość wykładnika spełnia nierówność: W(MIN)<W<W(MAX). Liczby W(MIN)+1 i W(MAX) określają najmniejszy i największy wykładnik liczby zapisanej w danym formacie. Wartość W(MAX) jest zarezerwowana dla reprezentacji symboli a wartość W(MIN) dla zera i liczb zdenormalizowanych. Liczby w reprezentacji zmiennoprzecinkowej są zapamiętywane w kilku formatach, różniących się miedzy sobą liczbą bitów mantysy i liczbą bitów wykładnika. Oznacza to, że formaty różnią się liczbą cyfr znaczących i zakresem dynamicznym. W dwójkowej reprezentacji zmiennoprzecinkowej stosowanej w koprocesorach arytmetycznych zdefiniowane są trzy formaty zmiennoprzecinkowe:
35.FORMATY DANYCH. FORMAT ZMIENNOPOZYCYJNY .OPERACJE MATEMATYCZNE
Elektroniczne układy cyfrowe, z których są zbudowane komputery, mogą znajdować się tylko w dwóch stanach. Układy te można obrazowo przedstawić jako przełączniki, które są albo otwarte (rozwarcie), albo zamknięte (przewodzenie). Stan rozwarcia oznacza 0, a stan przewodzenia 1. Grupa takich dwustanowych elektronicznych obwodów tworzy kombinację stanów, tj. kombinację zer i jedynek. Przy ustalonym sposobie kodowania taka kombinacja zer i jedynek może reprezentować liczbę, literę lub znak. Istnieją różne kody do zapisu liter i znaków ; dwa kody stosowane w mikrokomputerach: ASCII i EBCDIC. Kod używany do przedstawiania liczb za pomocą zer i jedynek nazywa się kodem binarnym(bi = 2), kodem dwójkowym lub kodem o podstawie 2. Cyfrę binarną nazywa się bitem. Jest to skrót angielskiego terminu binary digit. Wykonywanie działań w kodzie binarnym jest dużo łatwiejsze niż w kodzie dziesiętnym. W kodzie binarnym występują tylko 2 cyfry (0 i 1), podczas gdy w kodzie dziesiętnym jest ich aż 10 (od 0 do 9). Do reprezentacji liczb ujemnych w komputerze stosuje się kod uzupełnień do 2. (U2) Wadą systemu binarnego jest bardzo duża, w porównaniu z systemem dziesiętnym, długość liczb. W celu ułatwienia posługiwania się takimi długimi liczbami wprowadzono kilka terminów, m.in. określenie bit, oznaczający cyfrę binarną. Liczba 10111 składa się więc z 5 bitów. Liczbę binarną jako całość nazywa się słowem. Ważną cechą komputera jest długość słowa, tzn. liczba bitów, którą słowo zawiera. Grupę 8 bitów nazywa się bajtem, a grupę 4 bitów tetradą lub półbajtem.
Liczby rzeczywiste
Przedstawienie nieskończonych zbiorów wszystkich liczb rzeczywistych za pomocą skończonej liczby bitów nie jest możliwe. W algorytmach numerycznych używa się skończonych podzbiorów liczb przedstawianych za pomocą pewnej reprezentacji. Reprezentacja ustala sposób przyporządkowania danej liczbie kombinacji bitów - kodu dwójkowego liczby. Obecnie, w większości systemów komputerowych, obliczenia wykonywane są zgodnie ze standardem IEEE-754. Jest to komputerowy standard zapisu i działań arytmetycznych na liczbach zmiennoprzecinkowych.
LICZBY CAŁKOWITE
Liczbą całkowitą jest taka grupa bitów, którą interpretujemy jako liczbę. Amerykańskie stowarzyszenie inżynierów elektryków i elektroników (IEEE) przyjęło taką interpretację danych w systemie dwójkowym, że bit pierwszy z lewej strony jest bitem znaku. Na rysunku poniżej przedstawiono liczby dwójkowe i ich reprezentacje. W przemyśle mikrokomputerowym ustaliły się pewne standardy dotyczące wymiarów danych:
Znak: jednostka 4-bitowa; zakres liczby bez znaku od 0 do +15, w uzupełnieniu do dwóch od -8 do +7
Bajt: jednostka 8-bitowa; zakres liczby bez znaku od 0 do +255, w uzupełnieniu do dwóch od -32768 do +32767
Słowo: jednostka 16-bitowa; zakres liczby bez znaku od 0 do 65535, w uzupełnieniu do dwóch od -32768 do +32767
Podwójne słowo: jednostka 32-bitowa; zakres liczby w uzupełnieniu do dwóch od -2 147 483 648 do + 2 147 483 647
Poczwórne słowo: 64-bitowa; zakres liczby w uzupełnieniu do dwóch od -9223372038854775808 do +9223372038854775807
Liczby zmiennoprzecinkowe
Ogólną postać liczby zmiennoprzecinkowej można zapisać następująco:
x = (-1)s * Mx * 2C-P
gdzie s oznacza wartość bitu na pozycji znaku, Mx jest binarnie zakodowaną (i znormalizowaną) mantysą , C - cecha spolaryzowana, a przesunięcie P zależy od tego w jakim formacie zapisana jest liczba. Z wielu możliwych zapisów liczby zmiennoprzecinkowej najbardziej korzystny jest taki, który przy ustalonej długości mantysy zawiera najwięcej cyfr znaczących (zera wiodące nie są znaczące). Kryterium to spełnia znormalizowana postać mantysy. Istnieje kilka konwencji wg których normalizowana jest mantysa Mx. Często stosuje się normalizację Mx w formie 0,1fffff; jednak, w standardzie IEEE-754 wykorzystuje się postać 1,fffff.Ponieważ dysponujemy skończoną liczbą bitów mantysy, powstaje problem co robić ze wszystkimi tymi bitami, które nie mogą zostać zapamiętane. Są dwie techniki:
- odrzucanie (ang. truncation), polegające na ignorowaniu najmniej znaczących bitów
- zaokrąglanie (ang. rounding), polegające na dodaniu jedynki, w przypadku, gdy najbardziej znaczący z odrzucanych bitów jest jedynka. Jeśli jest on zerem, to wykonuje się odrzucanie.
Na przykład, jeśli mamy 1,01010101 i potrzebujemy zapamiętać jako liczbę binarną z 3 miejscami po przecinku, to pomijając pozostałe bity uzyskamy 1,010 a zaokrąglając 1,011. W standardzie IEEE-754 stosuje się zaokrąglenia.
32-bitowa reprezentacja zmiennoprzecinkowa (DWORD)
Dla 32-bitowej reprezentacji zmiennoprzecinkowej (pojedyncza precyzja) zgodnie ze standardem IEEE-754 obowiązuje następujący format:
seeeeeee efffffff ffffffff ffffffff.
S |
8 bitów cechy |
23bity mantysy |
3231 30 23 22 0
Pole wykładnika liczy Ne = 8 bitów a Nf = 23 bity przeznaczono na ułamkową część mantysy.
Przesunięcie (bias) wynosi 01111111 binarnie czyli 127 dziesiętnie. Dwie skrajne kombinacje bitów zostały zarezerwowane aby umożliwić przedstawienie zera oraz wielkości specjalnych (∞, „nie liczby”).
Ponieważ mantysa liczy w sumie 24 bity (jeśli uwzględnimy bit ukryty) i jest zaokrąglana, błąd względny nie przekracza: 2-24 = 5,96... * 10-8 .
64-bitowa reprezentacja zmiennoprzecinkowa (QWORD)
Zgodnie ze standardem IEEE-754 64-bitowa reprezentacja zmiennoprzecinkowa (podwójna precyzja) przyjmuje następujący format:
seeeeeee eeeeffff ffffffff....ffffffff.
Pole wykładnika liczy Ne = 11 bitów, a Nf = 52 bity ułamkowa część mantysy. Polaryzacja 01111111111 bin = 1023 dziesiętnie. Aby umożliwić reprezentację wielkości specjalnych (∞) dwie skrajne kombinacje bitów zostały zarezerwowane. Ponieważ mantysa liczy 53 bity (razem z bitem „ukrytym”) i jest zaokrąglana, błąd względny nie przekracza 2-53 = 1,11... *10-16 Oznacza to 16 cyfr dziesiętnych precyzji.
Największa liczba dodania w tym formacie:
1,11111111....11111111111 * 21023 = 1,797693... * 10308.
Najmniejsza dodatnia liczba:
1,00000000....00000000000 * 2-1022 = 2,225074... * 10-308.
36. MP80486,architektura,bloki funkcyjne. Rejestry ogólnego przeznaczenia i ich wykorzystanie.
Bloki funkcyjne:
1)jednostkę arytmetyczno-logiczną ( ALU - Arithmetic/Logic Unit) wraz z zestawem rejestrów wewnętrznych, 2)jednostkę rozkazową ( IU - Instruction Unit), 3)układ wykonawczy ( EU- Executing Unit),
4)układ adresujący ( AU - Addresing Unit), 5)układ sterowania magistralami ( BIU - Bus Interface Unit) zblokowany z podręczną kolejką rozkazów( nie każdy procesor wyposażony jest w kolejkę rozkazów).
Jest to procesor z 32-bitowymi szynami danych i adresów. 80486 zawiera w jednym układzie jednostkę stałopozycyjną, jednostkę zmiennopozycyjną, jednostkę zarządzania pamięcią i pamięć podręczną. Procesor 486 ma zespół ośmiu 32-bitowych rejestrów ogólnego przeznaczenia :
EAX-akumulator,EBX-rejestr bazowy,ECX-rejestr licznika,EDX-rejestr danych,ESI-indeksowanie źródła,EDI-indeksowanie danych,ESP-wskaźnik stosu,EBP-wskaźnik bazowy,oraz oddzielony EFL-rejestr rozszerzony flagowy. Służą do przechowywania danych lub adresów.
Dla zgodności z wcześniejszym procesorem 8086 lewa część każdego rejestru może być traktowana jako rejestr 16-bitowy AX, BX, CX, DX, SI, DI, BP, SP.
„Sześć rejestrów segmentowych CS-segment kodu, SS-segment stosu,DS.-segment danych,ES-segment dodatkowy,FS, GS stosuje się, w połączeniu z adresami zapisanymi w rejestrach ogólnego przeznaczenia lub rejestrze wskaźnika rozkazów (EIP) do uzyskania fizycznego adresu na szynie adresowej. Rejestr CS (segment kodu) z rej. wskaźnika rozkazów określa fizyczny adres rozkazu, a rejestr SS (segment stosu) jest używany do określenia adresu stosu. Inne rejestry segmentowe stosuje się zwykle do adresacji danych. Każdy z rejestrów segmentowych jest związany z rejestrem deskryptorów segmentów, niewidocznych dla programisty. Rejestr deskryptora przechowuje adresy bazowe, wielkości segmentów i pewne bity atrybutów związane z segmentem. Gdy procesor pracuje w trybie rzeczywistym, wielkość każdego segmentu jest ograniczona do 64kB, ale w trybie chronionym wielkość segmentu może wynosić do 4GB.
32-bitowy rejestr warunków zawiera znaczniki przeniesienia, zera, przeniesienia pośredniego, parzystości, znaku, kierunku transmisji i nadmiaru.”-nie koniecznie
37.MP 80486,architektura, struktura pamięci podręcznej CACHE.Tryby pracy (writethrough) i (writeback).Pamięć podręczna zorganizowana jest w linijki o rozmiarach 16 lub 32 b. Jest to najmniejsza porcja informacji, jaką pamięć podręczna wymienia z pamięcią główną. Pamięć podręczna widzi pamięć główną jako zbiór linijek te z kolei pogrupowane są w zespoły zwane stronami. Informacja o tym które z linijek RAM znajdują się aktualnie w pamięci CACHE przechowywana jest w katalogu pamięci podręcznej TRAM. Istnieją trzy sposoby odwzorowywania linijek i stron pamięci głównej: mapowanie bezpośrednie, pełna asocjacja, asocjacja zespołowa. W asocjacji zespołowej występuje tryb pracy writethrough i writeback. Reakcja pamięci podręcznej na żądanie udostępnienia danych zależy od implementacji oraz od faktu, czy poszukiwane dane są w niej istotnie zawarte.Obecność danych w pamięci CACHE nazywa się trafieniem i nie wymaga sięgania do pamięci głównej. W sytuacji odwrotnej uruchamiana jest magistrala pamięciowa i do pamięci podręcznej wprowadzana jest nowa linijka. Cykle zapisu do pamięci mogą uwzględniać na swej drodze obecność pamięci CACHE (writeback) lub ją omijać(writethrough).
WRITE TROUGH - Implementacja tego typu powoduje iż zapis wyzwala zawsze cykl dostępu do pamięci głównej, niezależnie od tego czy dana linijka obecna jest w CACHE czy nie.
WRITE BACK Pamięć podręczna pracująca w tym trybie zbiera wszystkie cykle zapisu i aktualizuje swoją zawartość ale nie zawartość pamięci głównej. Dzieje się to dopiero na konkretne żądanie wyrażone przez konkretną instrukcję programową, sygnał sprzętowy na linii ~FLUSH lub w wyniku braku trafienia w fazie odczytu. Zapis do pamięci ma miejsce w czasie gdy wolna jest szyna systemowa.
38 Pentium archtektura, SMMparametry techniczne
Cechy architektury pozwalają zaliczyć PENTIUM do grupy CISC. Jądro procesora jest superskalarne i wyposażone w dwa potoki przetwarzające instrukcje stałoprzecinkowe oraz jednostkę zmiennoprzecinkową. Jeśli spełnione są wymogi narzucone przez mechanizm parowania, procesor przetwarza w każdym cyklu zegarowym dwie instrukcje: każdy z potoków (U i V) kompletuje po jednej z nich. Należy jednak podkreślić iż potoki są bardzo silnie ze sobą powiązane i pracują wyłącznie w trybie synchronicznym. Żaden z nich nie może wybiegać naprzód w procesie przetwarzania. Jakkolwiek zahamowanie w jednej z linii powoduje natychmiastowe zatrzymanie drugiego potoku. Superpotokowy" (superpipelined) to "kolejne magiczne pojęcie w nowoczesnej technologii procesorowej. Oznacza ono rozłożenie pojedynczego rozkazu na kilka jeszcze mniejszych części, które są potem przetwarzane potokowo niczym na taśmie produkcyjnej. Dzięki takiemu rozwiązaniu w przypadku Pentium Pro można stosować wyższe częstotliwości taktowania.
Charakterystyczne cechy Pentium:
Struktura superskalarna i przetwarzanie danych dwupotokowe powodują, że procesor ten może
wykonywać więcej niż jeden rozkaz w ciągu jednego cyklu zegarowego
Udoskonalone procedury zmiennopozycyjnej umożliwiają szybsze wykonywanie programów
wymagających intensywnych obliczeń
Para ulepszonych i wydajniej funkcjonujących wewnętrznych bloków pamięci podręcznej -
pierwszy z nich przechowuje dane, drugi natomiast kod rozkazu - pozwala na pełne wyzyskanie szybkości procesora
Specjalnie zaprojektowany dla rozkazów rozgałęzienia układ przewidujący, odgadujący adres
wykonywanego następnie rozkazu powinien zwiększyć wydajność procesora
Wewnętrzna kontrola parzystości pozwala wykrywać błędy przetwarzania danych powstałe
wewnątrz procesora
Praca w trybie oszczędnym pozwala na niski pobór energii przez system i zastosowanie dodatkowych
mechanizmów bezpieczeństwa
Pentium Pro może osiągać wysoką wydajność dzięki dynamicznemu wykonywaniu instrukcji (Dynamic Execution). Jest to kombinacja 3 technik :
echanizm prognozowania skoku: procesor analizuje wcześniej kilka instrukcji danego programu i
decyduje, które rozgałęzienia mogą zostać wybrane z największym prawdopodobieństwem, oraz które grupy instrukcji będą prawdopodobnie przetwarzane w pierwszej kolejności; takie rozwiązanie zapewnia procesorowi prace jeszcze przed wykonywaniem kolejnych instrukcji
Analiza przepływu danych: kolejny etap pracy procesora polega na sprawdzeniu, które instrukcje są
zależne od innych wyników oraz danych; w tym celu procesor tworzy optymalny harmonogram do przetwarzania poszczególnych rozkazów; pierwotna kolejność instrukcji wcale jednak nie musi zostać otrzymana: często wykorzystywany jest mechanizm przetwarzania poza kolejnością; w ten sposób można uniknąć niepożądanych sytuacji, które w przypadku działającego sekwencyjnie procesora Pentium powodowały częste przerwy w pracy
Mechanizm spekulatywnego wykonywania instrukcji: na podstawie utworzonego harmonogramu poszczególne rozkazy są wykonywane w sposób, który zapewnia stałe obciążenie procesora
39 Pentium (P55C MMX),przetwarzanie „pipelining”, arytmetyka nasycenia, technologia SIMD.
Ideą MMX było przetwarzanie równoległe. Nie chodzi jednak o równoległe wykonywanie dowolnych rozkazów ale o grupowanie danych w większe grupy. Zamiast kolejnego przetwarzania pojedynczych jednostek informacji (bajtów, słów, itd.) szybciej jest brać po kilka porcji na raz i załatwić sprawę jednym rozkazem maszynowym. Technikę taką nazywamy SIMD (Single Instruction Multiple Data). Najistotniejszą zmianą architektury procesora stanowi odmienne traktowanie stanu przepełnienia podczas operacji SIMD (bit przepełnienia przelewa się na sąsiadujący wyższy bajt). Aby komputer mógł wydajnie przetworzyć dane w myśl założeń SIMD wymaga pogrupowania ich w porcje o możliwie dużej długości.
W procesorach MMX pamięć podręczna (first level cache) dla danych jak i rozkazów została zwiększona do 16 kB i pracuje z poczwórną asocjacją. Każdy z dwóch potoków przetwarzających rozkazy może wystąpić jednocześnie z żądaniami dostępu do pamięci i obydwa będą buforowane. (Nowa instrukcja) BPU (Branche Prediction Unit) zwiększa prawdopodobieństwo zapełnienia potoków tymi instrukcjami, które będą faktycznie wykonywane. Błędne przewidywanie skutków rozgałęzienia powoduje, że jeden z potoków musi wstrzymać przetwarzanie. W okresie niezbędnym do ponownego załadowania, drugi z potoków znajduje się w stanie oczekiwania i traci czas. Dłuższe potoki przetwarzania instrukcji (Pipe Lines). Długość rozkazów maszynowych jest zmienna i waha się w przedziale od 1 do 15 bajtów. Fakt ten stanowił problem dla P54C, ponieważ żmudne określenie adresu następnego rozkazu (aby przekazać go dekoderowi instrukcji) zajmuje stosunkowo dużo czasu. Dekoder jest w stanie przyjmować do dwóch instrukcji w jednym cyklu zegarowym. Aby pokonać ten problem obie linie przetwarzania zostały wydłużone o brakujący stopień zlokalizowany pomiędzy punktem pobierania a dekoderem. Oba potoki pracują nadal synchronicznie. Wypełnione rozkazami o różnym czasie trwania blokują się wzajemnie, a odnoga która zostanie opróżniona musi czekać na zakończenie przetwarzania w drugiej. Jednostka arytmetyczno - logiczna jest odpowiedzialna za bezpośrednią manipulację danymi, tj. dodawanie, odejmowanie, porównywanie itd. Połączenie ze światem zewnętrznym zapewniają magistrale (szyny) : adresowa, danych i sterująca.
Pipelining - określenie to oznacza płynny dostęp do pamięci i odnosi się do takiego sposobu jej adresowania, w którym następna komórka adresowana jest jeszcze w trakcie trwania poprzedniego cyklu. Dekodery pamięci przetwarzają więc kolejny adres, podczas gdy magistrala danych transportuje wynik poprzedniej operacji.
40 Pentium Pro, architektura superskalarna i superpotokowa (14 stopniowa) ,niekolejna realizacja instrukcji i zmiana nazw rejestrów, przewidywanie skoków itd. Pozwoliły wykonywać do trzech instrukcji w jednym cyklu zegara. Na szybkość pracy procesora wpływa również fakt, iż zastosowano tu oprócz 8 kB podręcznej pamięci dla instrukcji i 8 kB podręcznej pamięci danych również 256 lub 512 kB pamięci podręcznej drugiego poziomu (ang. second level cache).
Zmianie uległa również magistrala zewnętrzna. Pentium Pro komunikuje się z urządzeniami zewnętrznymi dzięki tzw. magistrali transakcyjnej, dzięki czemu stało się możliwe obsługiwanie wielu zaległych zgłoszeń. Na przykład gdy występuje po sobie wiele dostępów do pamięci procesor wysyła zgłoszeni nie czekając na odpowiedź każdego z nich. Zmiana tej magistrali umożliwiła stworzenie systemów wieloprocesorowych do czterech połączonych ze sobą procesorów.
41.Procesory rodziny PENTIUM. Charakterystyka ogólna.
Architektura Pentium stanowi rozwinięcie architektury 486. Procesory te mają 2 pracujące równolegle pięciostopniowe potoki oznaczone symbolicznie U i V. Struktura potoków jest bardzo podobna do struktury potoku proc.486. W miarę możliwości w każdym cyklu proc. są kierowane do wykonania 2 instr., po jednej do każdego z potoków. W procesorach P zastosowano przewidywanie skoków przy użyciu bufora docelowego skoków. Procesory P mają rozdzielone kieszenie kodu i danych (tzw. architektura Harward-Princeton), co umożliwia równoczesny dostęp jednostki wykonawczej do kodu programu i do przetwarzanych danych. Zgodnie z wymogami programowymi architektury X86, zawartość kieszeni kodu podlega uspójnianiu z zawartością kieszeni danych, co umożliwia ograniczoną automodyfikację kodu. Architektura proc. jest 32 bitowa, a zewnętrzna szyna danych ma szerokość 64 bitów, co umożliwia sprawny transfer danych pomiędzy kieszeniami wew. procesora i otoczeniem. W procesorach tych zaimplemetowano też tzw. VME(Virtual Mode Extensions) - rozszerzenie trybu wirtualnego, znacznie podnoszące wydajność systemów operacyjnych emulujących środowisko systemu MS DOS dla programów napisanych dla tego systemu. Kontynuację P stanowi P Pro. Jednostka wykonawcza proc. P Pro wykorzystuje wiele technik przyspieszających wykonanie programu. Należy do nich: dekompozycja instrukcji architektury x86 na mikrooperacje przypominające instrukcje proc. RISC, dynamiczne wykonywanie instrukcji wykorzystujących mechanizm stacji rezerwacyjnych i starzenia wyniku - umożliwia zamianę kolejności wykonania instr. Programu w celu lepszego wykorzystania jednostki wykonawczej, przemianowywanie rej. - niezbędne dla zapewnienia równoległego wykonania instr. w wielopotokowej jednostce wykonawczej, dynamiczne przewidywanie skoków - P Pro ma rozdzielone kieszenie wew. pierwszego poziomu dla kodu i danych o pojemności po 8 kB. W proc. P Pro istnieją trzy jednostki : stałopozycyjna IEU, zmiennopozycyjna FEU i generacji adresów AGU. Pracują one równolegle i są to tzw. 3 potoki superskalarne. Została tu wprowadzona też tzw. superskalarność, czyli możliwość wykonywania potoków rozkazów. Kolejnym klonem P jest PMMX. Zawiera on 57 nowych instrukcji wspierających przetwarzanie grafiki, nowe rejestry MM0-MM7 i została tam zastosowana arytmetyka nasycenia.
42. MAGISTRALE I ICH ROLA W STRUKTURZE KOMPUTERA. STANDARDY MAGISTRALI.
Magistrale służą do komunikowania się wszystkich (oprócz generatora sygnału taktującego) elementów płyty głównej z procesorem oraz wszystkich kart zewnętrznych. Rozróżnia się następujące rodzaje magistrali: 1) lokalna, zawierająca linie adresowe i linie danych, połączonych bezpośrednio z procesorem, 2) systemowa, która jest ustabilizowaną częściową „kopią” magistrali lokalnej. Magistrala systemowa zawiera wszystkie linie lokalnej szyny danych oraz linie lokalnej szyny adresowej, 3) magistrala X, przez którą realizowana jest komunikacja z ROM-BIOS oraz z portami układów umieszczonych na płycie głównej, 4) pamięciowa, łącząca linie magistrali systemowej z obwodami pamięci dynamicznej poprzez układy adresowania wierszy i kolumn pamięci, 5) magistrala L, wyprowadzająca linie magistrali lokalnej do gniazd rozszerzających, 6) magistrala zewnętrzna, która stanowi wyprowadzenie systemowej szyny adresowej , szyny danych i większości sygnałów systemowych szyny sterującej. Standardy: ISA (Industry Standard Architecture), EISA (Extended Industry Standard Architecture), MCA (Micro Channel Archtecture), PCI (Peripherial Component Interconnect), AGP (Accelerated Graphic Port).
43. ARCHITEKTURA MAGISTRALI ISA, EISA, MCA. PARAMETRY TECHNICZNE.
ISA (Industry Standard Architecture). Wprowadzony model komputera o architekturze AT (ISA) zawiera następujące elementy: 1) taktowanie zegarem o wyższej częstotliwości np. 80286 taktowany sygnałem 25 MHz, 2) 24-bitowa magistralę adresową pokrywającą przestrzeń do 16MB, 3) koprocesor arytmetyczny 80287 współpracujący z procesorem 80286, 4) magistralę lokalną (24 linie adresowe i 16 linii danych połączonych bezpośrednio z procesorem), 5) magistralę systemową, 6) magistralę X (komunikacja z ROM-BIOS), 7) magistralę pamięciową (łączy linie magistrali systemowej z obwodami pamięci dynamicznej poprzez układy adresowania wierszy i kolumn pamięci), 8) magistralę L (wyprowadzenia linii magistrali lokalnej do gniazd rozszerzających), 9)magistralę zewnętrzną (wyprowadzenie 24-bitowej systemowej szyny adresowej, 16-bitowej szyny danych i większości sygnałów szyny sterującej), 10) 15 kanałów IRQ, 11) system DMA obsługujący transmisje 16-bitowe, 12) 64 bajty pamięci konfiguracyjnej. Płyty procesorów 80386, 80486 i Pentium cechują 32-bitowe magistrale systemowe (danych i adresowa). Częstotliwość taktowania magistrali zewnętrznej w procesorze 486DX - 50 MHz 6 - 8 MHz. Wprowadzony wraz z magistralą standard ISA wyznacza maksymalną częstotliwość pracy na 8.33 MHz.
EISA (Extended Industry Standard Architecture). Możliwość współpracy z dotychczas stosowanymi peryferiami ISA. Kontroler magistrali decyduje każdorazowo, czy podczas bieżącej operacji można wykorzystywać 32-bitowy, czy też należy symulować 16-bitowy tryb pracy. Wyposażenie płyty EISA w karty standardu EISA udostępnia dopiero pełne możliwości systemu. Dowolny kontroler umieszczony na jednej z kart rozszerzających EISA ma nieograniczone możliwości sterowania magistralą systemową. Kontroler DMA jest 32-bitowy i umożliwia obsługę urządzeń 8-, 16-, i 32-bitowe. System EISA dysponuje 15 kanałami IRQ, wymaga aktywnego poziomu sygnału. Karty rozszerzające EISA mają do dyspozycji 32 bity systemowej szyny adresowej i 32 bity systemowej szyny danych. Na magistralę zewnętrzną EISA składa się 98 dotychczasowych sygnałów standardu ISA oraz 90 nowych linii. Procesory 80386 i 80486 użytkują magistrae w trybie burst, dostęp do adresowanego obiektu w jednym takcie zegarowym. Magistrala zewnętrzna EISA pracuje z maksymalną prędkością 8.33 MHz, natomiast dostęp do pamięci odbywa się już z pełną częstotliwością zegara CPU. Pamięć konfiguracji płyty głównej i zainstalowanych na niej kart w standardzie EISA wynosi 4kB. Konfigurowanie systemu odbywa się całkowicie programowo.
MCA (Micro Channel Architecture). MCA jest ukierunkowana na potrzeby systemów wielozadaniowych i 32-bitowych procesorów 80386 i 80486. Przepustowość magistrali zewnętrznej 20 MB/s. Magistrala systemowa ma szerokość 32 bitów, taktowana zegarem 10 MHz na każdą transmisję przypadają dwa cykle zegarowe. W transmisjach DMA używany jest zawsze pełny 32-bitowy adres pokrywający całą przestrzeń adresową systemu. System przerwań sprzętowych, dzięki realizacji idei wyzwalania poziomem i przydziału jednego kanału wielu urządzeniom, zapewnia obsługę 255 urządzeń. Centralny procesor na płycie głównej może być wspomagany przez dodatkowe mikroprocesory umieszczone na kartach rozszerzających, a dla potrzeb wzajemnej komunikacji między nimi uwzględniono specjalną 4-bitową szynę sterującą. Na karcie brak jest jakichkolwiek zwór i przełączników. Informacja o konfiguracji karty przechowywana jest w systemowej pamięci CMOS, również pojedyncze gniazda magistrali zewnętrznej. W systemie mogą być na stałe zamontowane wykluczające się wzajemnie karty. Konstrukcja złącz MCA umożliwia stosowanie nie tylko Kart 32-bitowych, ale i uproszczonych wersji o szerokości 8 i 16 bitów.
44. ARCHITEKTURA MAGISTRALI PCI. PARAMETRY TECHNICZNE.
PCI (Peripherial Component Interconnect). Magistrala PCI jest 32-bitowym rozwiązaniem szyny lokalnej, jest niezależna od typu procesora. Daje możliwość tworzenia złożonych systemów. W jednym systemie może współpracować do 256 magistrali PCI, przy czym każda z nich może obsługiwać do 32 urządzeń PCI, a każde urządzenie może pełnić do 8 funkcji. W produkowanych obecnie komputerach klasy PC opartych na architekturze PCI wykorzystywana jest tylko jedna magistrala PCI, obsługująca około 10 urządzeń. Magistrala PCI może pracować z częstotliwością od 0 do 33 MHz (wersja 2.1 standardu dopuszcza częstotliwości od 0 do 66 MHz), co daje przepustowość w granicach 132 MB/s. Magistrala PCI pracuje w trybie burst. Zdefiniowane jest również 64-bitowe rozszerzenie magistrali PCI, które umożliwia transfer danych z prędkością do 264 MB/s pomiędzy 64-bitowymi urządzeniami PCI. Wymiana danych pomiędzy urządzeniami 64- i 32-bitowymi jest wolniejsza niż na 32-bitowej magistrali PCI ze względu na wyprowadzenie dodatkowego cyklu umożliwiającego rozpoznanie sposobu transmisji danych. Sygnały magistrali PCI wyprowadzone są do gniazd, w których można umieszczać karty rozszerzające. Na płytach głównych umieszcza się zwykle 4 gniazda magistrali PCI, przy czym na każdej karcie rozszerzającej może być umieszczone do 8 urządzeń PCI. Na ogół, oprócz 32- bitowych złącz PCI, umieszczane są na płycie dwa lub trzy gniazda 16-bitowej magistrali ISA. Gniazda magistrali PCI mogą mieć kilka wariantów. Zależnie od poziomu napięci zasilającego magistralę rozróżnia się gniazdo 32-bitowej zasilanej napięciem 3,3 V i gniazdo 64-bitowej magistrali PCI zasilanej napięciem 5 V. System PCI dysponuje tylko czterema kanałami przerwań sprzętowych, ale każdy kanał może być dzielony przez kilka urządzeń. Za prawidłową obsługę przerwań sprzętowych odpowiedzialny jest programowalny router przerwań, który przekłada przerwania sprzętowe magistrali PCI na niewykorzystywane kanały IRQ magistrali ISA. Urządzenia PCI wyposażone są w 256-bajtową pamięć konfiguracyjną, w której przechowywane są informacje niezbędne do pracy urządzenia. Urządzenia PCI nie mają zwór konfiguracyjnych. Konfiguracja przebiega automatycznie, przez wpisanie odpowiednich wartości do rejestrów urządzeń PCI. Możliwość zmiany wartości tych rejestrów umożliwia rekonfigurację urządzeń po dołączeniu do systemu nowego urządzenia. Urządzenia podłączone do magistrali PCI są automatycznie wykrywane i konfigurowane przez oprogramowanie systemowe przed rozpoczęciem testów POST. Na podstawie wartości zapisanych w rejestrach urządzeń PCI oprogramowanie systemowe decyduje o przydzieleniu kanałów przerwań i przydzieleniu obszarów pamięci. Oprogramowanie systemowe zapewnia konfigurację umożliwiającą uruchomienie komputera. Po uruchomieniu systemu konfiguracja urządzeń PCI może być zmieniona przez system operacyjny.
45. ARCHITEKTURA MAGISTRALI AGP. PARAMETRY TECHNICZNE.
AGP (Accelerated Graphic Port). Nowy port AGP stanowi pewne przedłużenie magistrali PCI. Nie ma płyt głównych z wieloma gniazdami AGP bowiem jedynym urządzeniem umieszczonym w takim gnieździe może być akcelerator 3D. Magistrala AGP nie przyspiesza operacji graficznych, pozwala na bardziej wydajną pracę procesora graficznego. Sprawuje on jako Master wyłączną władzę nad magistralą i kieruje swe żądania w stronę pamięci operacyjnej. Dzięki technice AGP kontroler graficzny widzi znacznie więcej pamięci lokalnej niż jest jej zainstalowanej. W ten sposób dla celów graficznych używana jest tania pamięć operacyjna. Gniazdo AGP umieszczane jest na płycie głównej nieopodal złącz PCI, ale z pewnym przesunięciem wynikającym z innych rozmiarów kart AGP. AGP bazuje na specyfikacji PCI w wersji 2.1, która nie zdobyła nigdy nadmiernej popularności, jako że przytłaczająca większość wyprodukowanych dotychczas kart gwarantowała niezawodne funkcjonowanie jedynie w zakresie do 33 MHz. AGP rozszerza standard bazowy o dodatkowe funkcje, zmienia znaczenie niektórych dotychczasowych sygnałów oraz wprowadza szereg nowych. Magistrala AGP może pracować w jednym z trzech trybów oznaczonych symbolicznie 1x, 2x i 4x. Określenia tych trybów są następujące: 1) Tryb 1x. Podwojenie częstotliwości pracy zegara taktującego do wysokości 66 MHz. Maksymalny transfer 264 MB/s (66 MHz x 4 B). 2) Tryb 2x. Pozorny wzrost częstotliwości zegara do wysokości 133 MHz. Przepustowość magistrali 532 MB/s (133 MHz x 4B). Obniżenie poziomów napięć z 5 V do 3,3 V łagodzi wymagania na stromość zboczy coraz to krótszych sygnałów. Transfer zgodny z protokołem 2x inicjowany może być wyłącznie przez kontroler graficzny, a płyta musi odpowiadać na żądania wyrażone w tym trybie. 3) Tryb 4x. Pracuje na znacznie obniżonych poziomach napięć (1,5 V). Tak spłaszczone przebiegi mają dostatecznie strome zbocza by podołać wymogom bardzo szybkiej transmisji. Magistrala przesyła podwójną ilość danych. Przepustowość równa 1064 MB/s (266 MHz x 4 B). Specyfikacja dopuszcza istnienie uniwersalnego gniazda AGP, które jest w stanie rozróżniać i obsługiwać karty obydwu standardów: zarówno 3,3 V jak i 1,5 V.
46. Architektura systemów wieloprocesorowych MPP i UMA
Architektura MPP jest typem architektury z pamięcią rozszerzoną tzn. każdy proces posiada własną pamięć operacyjną, a komunikacja pomiędzy procesorami odbywa się poprzez pakiety, tworzone przez odpowiednie oprogramowanie np.: na bazie protokołów PVM lub MPI. W architekturze tej łączy się za pomocą odpowiedniej magistrali bloki procesorowe - węzły. Każdy węzeł posiada własną pamięć, a dzięki magistrali ma dostęp także do pamięci operacyjnej dowolnego innego węzła wchodzącego w skład danego systemu - tak więc architektura MPP jest typem architektury ze wspólną pamięcią dzieloną.
W MPP łączy się najczęściej bardzo duże ilości procesorów co zapewnia potężne moce obliczeniowe. Wykorzystanie tych mocy możliwe jest dzięki zastosowaniu odpowiedniego oprogramowania. Jeżeli dana aplikacja pracująca na systemie a architekturą MPP będzie wymagała zbyt dużo nakładów na komunikację między procesorami lub będzie zbyt często odwoływała się do pamięci różnych węzłów, efektywność systemu będzie bardzo niska ze względu na duży czas komunikacji i rozstrzygania konfliktów przy dostępie do pamięci.
Architektury tego typu są stosowane najczęściej do przetwarzania równoległego zagadnień związanych z obliczeniami numerycznymi, modelowaniem zjawisk przyrodniczych, generowaniem złożonych obrazów graficznych.
Rys z kartki 8
Architektura UMA jest oparta na modelu z pamięcią wspólna - współdzieloną. W modelu tym każdy z procesów ma dostęp do dowolnego fragmentu pamięci tzn. cała pamięć operacyjna jest w zasięgu każdego z procesorów. Takie rozwiązanie nakłada na system operacyjny dodatkowe wymagania dotyczące rozstrzygania konfliktów przy dostępie do pamięci. Architektura UMA jest w praktyce architekturą symetryczną tzn. każdy z procesów może być odpowiedzialny za obsługą przerwań, może dokonać dowolny fragment aplikacji - wszystkie procesory są równouprawnione. Architektura charakteryzuje się dużą łatwością w przenoszeniu aplikacji ze środowisk jednoprocesorowych - w wielu przypadkach wystarczy zastosować kompilatory zrównoleglające. Niewątpliwa wadą systemów opartych na UMA jest bardzo szybkie osiąganie maksymalnej mocy obliczeniowej tzn. dodawanie nowych procesorów do systemu nie zwiększa jego wydajności. Dzieje się tak dlatego, że wspólna magistrala pamięciowa nie jest w stanie zapewnić odpowiedniego poziomu przepływu danych. Pewną poprawę efektywności systemu przynosi zastosowanie pamięci podręcznej (cache). Obecnie wszystkie procesory wyposażone są w pamięć poziomu pierwszego L1. Dodatkowo więc na płycie głównej zainstalowany jest duży cache poziomu drugiego (L2-cache). Dzięki zastosowaniu pamięci cache w architakturze UMA magistrala pamieciowa zostaje odciążona, gdyż każdy z procesorów przechowuje najczęściej wykorzystywane dane w swojej pamięci podręcznej.
Architektury UMA znajdują zastosowanie jako serwery baz danych, są stosunkowo tanie (przykładem może być system oparty na czterech Pentium II).
Rys z kartki 9
47. Architektura systemów wieloprocesorowych opartych na procesorach PENTIUM
W pogoni za coraz to większą mocą obliczeniową komputerów poszukuje się coraz to nowszych rozwiązań. Jednym z nich jest rozdział ogólnych zadań całego systemu pomiędzy pewną liczbę współpracujących ze sobą procesorów. Architektury tego typu wymagają od projektantów założenia na samym początku ogólnych decyzji choćby co do sposobu korzystania z pamięci przez odpowiednio zorganizowaną współprace jednostki CPU. W ramach tego zagadnienia występują co najmniej dwa podstawowe punkty podejścia do przedstawionego po części zagadnienia:
każdy z procesorów stanowi niezależną jednostkę obliczeniową i dysponuje własną pamięcią operacyjną. Model ten jest określany mianem pamięci rozproszonej. Koordynacja pracy poszczególnych podsystemów odbywa się na drodze wymiany wiadomości, najczęściej w formie pakietów (jako standardy przyjęto protokoły MPI i PVM). Czas dostępu do danych może się znacznie wydłużać, jeżeli leżą one w obszarze zarządzanym przez inny procesor;
cała pamięć systemowa jest ogólnodostępna i leży w zasięgu działania każdego z procesorów. Czas dostępu do danych jest jednakowy dla każdej z jednostek, jednakowoż protokół dostępu musi uwzględniać możliwości występowania kolizji.
Bardzo ważną sprawą staje się komunikacja z pamięcią systemów opartych na architekturze UMA (częściej używanych) - bardzo szybko osiągają one nasycenie mocy obliczeniowej pomimo dodawania kolejnych procesorów (liczba ta jako graniczna w literaturze wynosi osiem procesorów). Wspólna magistrala pamięciowa staje się wąskim gardłem skutecznie tamującym wymianę danych. Jak zawsze w takim przypadku, pewne rozładowanie przynosi zastosowanie pamięci podręcznej (Cache). W małą pamięć podręczną tzw. poziomu pierwszego (L1 Cache) wyposażone są wszystkie współczesne procesory. Istotną rolę jednak w tym przypadku odgrywa pamięć cache wyższego poziomu.
Procesory Pentium korzystają w tym wypadku z zainstalowanej na płycie głównej pamięci L2, w rozmiarze 256-512 kB (rys.1). Wspólny bufor L2, który muszą dzielić między sobą poszczególne jednostki stawia pod znakiem zapytania możliwość profesjonalnego zastosowania tego typu CPU w systemach multiprocesorowych. Maksymalna częstotliwość taktowania pamięci buforowej L2 sięga (w zależności od typu CPU) 66 MHz.
Następna generacja procesorów (Pentium Pro oraz Pentium II) jest już pozbawiona tej wady (rys.2). Każdy z procesorów ma do swojej dyspozycji własny bufor L2 co zdecydowanie przemawia za ich stosowaniem w systemach wieloprocesorowych. Rysunki z kartki 9.
48.Układy DMA DMA (Direct Memory Access) oznacza bezpośredni dostęp do pamięci dla urządzeń peryferyjnych. W pierwowzorze komputerów AT-386 i 486 zastosowano 8-bitowy kontroler DMA typu 8237A. Stanowiło to w tamtych czasach znaczne ułatwienie pracy procesorów 8-bitowych przy realizacji cykli dostępu do pamięci, zdejmując z nich obowiązek bezpośredniej realizacji transmisji między blokowymi urządzeniami peryferyjnymi a pamięcią oraz przeadresowywania bloków pamięci. Procesory 80386 i 80486, dysponujące 32-bitową szyną danych, stały się tak szybkie, że realizowane w mikro-kodzie procesora rozkazy transmisji blokowej typu rep movsw są bardziej wydajne niż transmisje blokowe w cyklu DMA. Co gorsza, kilka generacji wzwyż od IBM PC, tj. w nowoczesnych AT, doskonała skądinąd idea DMA napotyka na wąskie gardło 8-bitowych kontrolerów DMA (spowalnianych dodatkowo stosowaniem zegara 4.77 MHz), które powstały dla potrzeb procesorów 8086/88.
Począwszy od IBM PC/AT dodano drugi kontroler 8237A, co pozwoliło na realizację obsługi urządzeń 16-bitowych. Dopiero jednak systemy EISA i MCA, o odmiennej architekturze, powróciły do stosowania "na poważnie" idei DMA, wykorzystując szybkie, 32-bitowe układy scalone nowej generacji.
Tryby pracy kontrolera DMA
tryb spoczynkowy "I" (Idle) - podczas każdego cyklu zegara DMA testowane są stany wejść programowo nie maskowalnych;
tryb "S" (Single) - w tym trybie pracy dokonywane jest pojedyncze przesłanie. Wewnętrzny licznik transmisji jest zmniejszany o 1, a rejestr adresowy, zależnie od zaprogramowania, o 1 zwiększany lub zmniejszany;
tryb "B" (Block) - transmisja trwa nieprzerwanie do momentu wystąpienia zewnętrznego sygnału EOP (koniec transmisji) od urządzenia lub osiągnięcia przez licznik transmisji wartości FFFFh;
tryb "D" (Demand) - tryb ten jest podobny do trybu "B". Różnica polega na tym, że transmisja trwa do czasu zaniknięcia sygnału DREQn (urządzenie zewnętrzne żąda obsługi), pojawienia się sygnału EOP, wykonania zadanej w liczniku transmisji liczby przesłań lub nadejścia żądania obsługi o wyższym priorytecie. Czasowa dezaktywacja sygnału żądania na wejściu DREQn powoduje wstrzymanie (ale nie zakończenie) transmisji;
tryb "C" (Cascade) - w trybie tym przekazywane są tylko sygnały sterujące od układu nadrzędnego (Master). Układ pracujący jako podporządkowany (Slave) nie wystawia na szyny systemowe adresów ani sygnałów sterujących;
tryb "V" (Verify) - układ pracuje tak, jak przy transmisji, tzn. wytwarza adresy, reaguje na sygnał EOP i inne sygnały, ale nie generuje sygnałów dostępu do pamięci i urządzeń wejścia wyjścia. Tryb ten służy do diagnostyki wewnętrznej układu i nie ma nic wspólnego z weryfikacją danych.
Pyt 49
Programy uruchomieniowe debug.exe debug32.exe. Polecenia podstawowe
Służą do usuwania błędów / testowania programów.
Polecenia debug.exe:
? - pomoc
A [adres] - asemblacja
C zakres adres - porównaj
D [zakres] - zrzucenie zawartości pamięci na ekran
E adres [lista] - wprowadz (???)
F lista zakresu - wypełnienie pamięci wartością
G [=adres] [adresy] - idz do
H wartość1 wartość2 - konwersja z dec na hex
I port - pobranie bajtu z portu
L [adres] [dysk] [lierwszy sektor] [liczba] - załaduj (load)
M zakres adres - przenieś
N [sciezka] [lista arg] - ustalenia dla load/write
0 port bajt - wysłanie bajtu na port
P [=adres] [liczba] - przejdz (pod adres ?)
Q - koniec
R [rejestr] - zawartość rejestrów i flag
S zakres lista - szukaj
T [=adres] [wartosc] - śledź
U [zakres] - deasemblacja
W [adres] [dysk] [pierwszy sektor] [liczba] - zapis na dysk
debug32.exe - debuger trybu chronionego
Pytanie 50.
Przez wiele lat dominował standard ST412/506, którego nazwa wywodziła się od pierwszych modeli tego systemu. W miarę upływu czasu i wzrostu wymagań stawianych dyskom twardym, zwłaszcza w dziedzinie zastosowań profesjonalnych, opracowane zostały nowocześniejsze systemy(IDE, ESDI, SCSI). Jednemu z nich - standardowi IDE nazywanemu również AT-BUS - udało się zdominować rynek komputerów powszechnego użytku. Wszystko wskazuje na to, że został on wyparty przez standard Enhanced IDE (EIDE), który stanowi jego rozwinięcie.
Fizyczna organizacja danych zapisanych na dysku twardym jest analogiczna jak dla dyskietki. (obowiązuje podział na ścieżki i sektory) Główna różnica polega na tym, że w obudowie dysku twardego znajduje się nie jeden, lecz kilka talerzy powleczonych warstwą nośnika magnetycznego i obsługiwanych przez odpowiednie zespoły głowic, poruszane jednym mechanizmem. Z tego też względu w przypadku dysków twardych nie mówi się o pojedynczych ścieżkach, ale o tzw. cylindrach, w skład których wchodzą ścieżki o tym samym numerze, położone na kolejnych talerzach. Sektor zawiera 512 bajtów.
IDE jest skrótem od angielskiego Intelligent Drive Electronics, (spotykane jest również. tłumaczenie tego skrótu jako Integrated Device Electronics, oznaczające zintegrowanie układów kontrolera i mechanizmów napędu w jednej obudowie).
Parametry dysków tego nowego systemu mieszczą się pomiędzy ST412/506 a modelami SCSI i ESDI. Standard IDE dopuszcza obsługę dwóch dysków twardych. Jeden z nich musi być wtedy oznaczony jako Master, a drugi jako Slave. Ustaleń tych dokonuje się za pomocą zwór konfiguracyjnych.
Standard AT-BUS zdominował w ciągu kilku ostatnich lat rynek komputerów klasy PC. Jednak, w miarę rozwoju technologii, coraz dotkliwiej dają znać o sobie ograniczenia tego systemu:
· ograniczona pojemność dysków (do 504 MB),
· ograniczona szybkość transmisji
· możliwość podłączenia dwóch dysków twardych,
· brak możliwości podłączenia innych urządzeń niż dyski twarde.
Standard EIDE (Enhanced IDE) ma za zadanie usunięcie tych ograniczeń, zapewniając przy tym zgodność ze standardem IDE (dyski IDE powinny współpracować z Host Adapterem EIDE, zaś urządzenia EIDE powinny współdziałać z Host Adapterem IDE).
Standard EIDE przewiduje rozwiązanie problemu ograniczenia pojemności na dwa sposoby:
adresowanie liniowe - LBA;
rozszerzony model adresowania CHS - XCHS.
51.Logical Block Address (LBA)
W trybie LBA każdy sektor ma swój kolejny numer obliczany ze wzoru:
LBA=(numer cylindra * liczba głowic na cylinder + numer głowicy) * liczba sektorów na ścieżkę + numer sektora -1
Sektory adresowane są za pomocą 28-bitowej liczby. Poszczególne pozycje bitowe adresu w trybie LBA tworzone są z następujących składowych:
LBA 0-7 : rejestr numeru sektora
LBA 8-15 : rejestr numeru cylindra, część rejestru 1F5h (składowa LSB)
LBA 16-23 : rejestr numeru cylindra, część rejestru 1F4h (składowa MSB)
LBA 24-27 : odpowiadają bitom 0-3 z rejestru napęd/głowica
Przełączenie z klasycznego trybu adresowania na tryb LBA odbywa się poprzez ustawienie bitu 6 w rejestrze napęd/głowica.
PYTANIE 52 - system kodowania
FM (Frequency Modulation) - jest to bardzo prosty i zarazem mało wydajny sposób kodowania informacji na nośniku magnetycznym.
Pamiętajmy, że tylko zmiana namagnesowania podłoża magnetycznego dyskietki niesie z sobą informację. Stałe namagnesowanie nośnika nie wywołuje impulsów w głowicy napędu. Źródłem impulsów jest zmiana namagnesowania nośnika, przy czym stan początkowy namagnesowania nie ma absolutnie znaczenia.
Ideę zapisu magnetycznego FM można wyrazić następująco:
na ciąg danych przeznaczonych do zapisywania nakładany jest prostokątny przebieg zegarowy, którego okres „pokrywa” jeden bit informacji wejściowej;
każdy impuls zegara powoduje zmianę namagnesowania podłoża (Z);
jeżeli w danym cyklu zegara ciąg danych wejściowych reprezentuje jedynkę, pomiędzy impulsami pochodzącymi od zegara wprowadzany jest dodatkowy impuls (D).
Rys z kartki 10
Obecnie powszechnie stosowaną metodą zapisu danych na dyskietkach stał się konkurencyjny do systemu FM system MFM ( Modified Frequency Modulation).
Zapis MFM rządzi się następującymi regułami:
na ciąg danych przeznaczonych do zapisywania nakładany jest prostokątny przebieg zegarowy, którego okres „pokrywa” jeden bit informacji wejściowej. Impuls przemagnesowania dla jednego bitu (impulsu zegara) może pojawić się tylko raz;
impuls zegara powoduje zmianę namagnesowania podłoża tylko wtedy, gdy stowarzyszony z nim bit danych i poprzedni bit danych mają wartość zero (Z);
jeżeli w danym cyklu zegara ciąg danych wejściowych reprezentuje jedynkę, to generowany jest impuls do przemagnesowania nośnika (D).
W obydwu metodach kodowania na ciąg impulsów wyjściowych będących źródłem przemagnesowania podłoża składają się impulsy pochodzące od zegara (Z) i odkodowanych danych (D).
Widać wyraźnie, że liczba zmian namagnesowania nośnika przypadających na jeden bit informacji jest większa (teoretycznie dwukrotnie) dla zapisu FM. Materiał magnetyczny, którym pokryta jest dyskietka, wykazuje ziarnistość; istnieje ściśle określona dolna granica - wielkości obszaru, który można indywidualnie przemagnesować. W przypadku dyskietek HD ta granica to około 2 μm. Na tej samej długości ścieżki można więc w formacie MFM zmieścić dwukrotnie więcej informacji.
53 ( Run Lenght Limited).
Istota kodowania RLL polega na całkowitej rezygnacji ze składowej Z (w systemach FM i MFM). Układy logiczne dekodera muszą wtedy obliczać, na podstawie odległości dzielących kolejne impulsy, liczbę zer przypadających między nimi. System taki może poprawnie funkcjonować w warunkach rzeczywistych jedynie w pewnych granicach, tzn. gdy liczba następujących po sobie zer strumienia danych nie jest zbyt duża. Dlatego należy je tak zakodować, aby spełniały określone warunki. W najbardziej rozpowszechnionym wariancie systemu RLL liczba zer zawiera się w przedziale od 2 do 7. Stąd wywodzi się nazwa systemu - RLL(2,7). Wejściowy strumień danych poddawany jest wstępnie takiemu przekodowaniu, które gwarantuje spełnienie tego wymogu. Proces ten używa specjalnej tablicy przekodowań. Stosowanie tej tablicy wydłuża ciąg wejściowy o 100%, jednak dokładna analiza matematyczna systemu RLL(2,7) dowiodła, że pomijanie składowej Z prowadzi średnio do trzykrotnej redukcji liczby przemagnesowań nośnika. Ponieważ jednak nic nie ma za darmo, płaconą za to ceną jest znaczna komplikacja układów kontrolera.
Stosunkowo rzadko spotykane są pokrewne warianty systemu RLL(2,7) ukrywające się pod wspólną nazwą ARLL (Advanced RLL). Do grupy tej należą przykładowo systemy RLL(1,7) i RLL(3,9), które pozwalają na jeszcze większy wzrost wydajności, ale nakładają dużo ostrzejsze wymagania na precyzję wykonania mechaniki napędu.
54 kod CRC służący do kontroli poprawności transmisji danych .
Najprostszą, ale i najmniej efektywną metodą kontroli jest tzw. kontrola parzystości. Każdy bajt danych otrzymuje dodatkowy, dziewiąty bit informujący o tym, czy liczba jedynek w bajcie jest parzysta lub nieparzysta (w zależności od umowy). Łatwo zauważyć, że w najbardziej niesprzyjających warunkach można, bazując jedynie na informacji o parzystości, cały zanegowany bajt (przekłamanie na wszystkich pozycjach) uznać za poprawny. Podobnie ma się sprawa z przekłamaniem każdej parzystej liczby jedynek. W związku z tym opracowano wiele innych, bardziej efektywnych sposobów rozwiązania tego problemu.
Magnetyczne systemy cyfrowego zapisu informacji posługują się generalnie tzw. kodami CRC (ang. Cyclic Redundancy Check).
Budowa kodu CRC
Rozpatrzmy klasyczne dzielenie dwóch liczb całkowitych. Bez względu na podstawę systemu (dziesiętny, binarny czy inny) obowiązuje zasada:
dzielna : dzielnik = iloraz + reszta
Posługując się liczbami w systemie binarnym, wyniki mogą być tylko dwa: dzielna jest większa od dzielnika i częściowy iloraz równa się 1, lub też dzielnik jest większy od dzielnej, a iloraz wynosi zero (dzielenie jest tu zastąpione przez porównywanie).
Przykład:
324d : 19d = 101000100b : 10011b = 17d = 10001b, reszta 1
101000100:10011=10001
10011
000010
00000
00101
00000
01010
00000
10100
10011
00001 <- reszta
Do realizacji powtarzających się w tym algorytmie operacji odejmowania używamy oczywiście zwykłej arytmetyki binarnej, tj. uwzględniamy przeniesienia na sąsiednie pozycje podczas odejmowania liczby większej od mniejszej. Komplikuje to w istotny sposób obliczenia, gdyż wynik na danej pozycji bitowej zależy również od pozycji poprzedniej. Nie jest tak natomiast w tzw. arytmetyce modulo 2. Zastosujmy operację bitowej różnicy symetrycznej (XOR). Oto tablica prawdy dla tej operacji.
x y x XOR y
0 0 0
0 1 1
1 0 1
1 1 0
Tak zdefiniowane dodawanie i odejmowanie daje ponadto te same wyniki.
Wróćmy do naszego przykładu, zastępując klasyczne odejmowanie nowo zdefiniowanym działaniem.
101000100:10011=10111
10011
001110
000000
11101
10011
011100
10011
011110
10011
------------
01101 <- reszta
56 Szybkość transmisji PIO0-PIO3
Przy przesyłaniu danych z kontrolera do pamięci PC dyski AT-BUS wykorzystują klasyczny tryb przekazu z udziałem portu danych (PIO). W kontrolerach IDE wykorzystywany był tryb PIO 0, zapewniający przesłanie w jednym cyklu, trwającym 280 ns, 16 bitów danych (3,33 MB/s)
Ta prędkość transmisji jest z jednej strony znacznie niższa od maksymalnej prędkości magistrali ISA (8,3 MB/s), a z drugiej strony wyższa niż maksymalna prędkość transmisji danych z głowicy do kontrolera.
Postęp technologiczny sprawił, że prędkość transferu danych z głowicy do kontrolera przekroczyła możliwości interfejsu IDE. Aby temu zaradzić zostały zdefiniowane kolejne tryby PIO 1-3.
57 Pamięć dynamiczna
RAM to akronim od słów RANDOM ACCESS MEMORY. Pamięć ta jest najbardziej uniwersalna, ponieważ pozwala na wielokrotne zapisywanie i odczytywanie z niej informacji. Ze względu na rodzaj podzespołów jakich używa się do jej budowy można wyróżnić dwa rodzaje RAM - u: SRAM oraz DRAM
SRAM w dzisiejszych PC - etach, nie jest wykorzystywana jako pamięć główna, tylko jako szybka pamięć podręczna (tzw. CACHE) o bardzo krótkim czasie dostępu, służąca do tymczasowego zapamiętania potrzebnych danych. Pamięć SRAM jest pamięcią statyczną. Czas dostępu jest to czas jaki upłynie od podania adresu do mementu odczytania danych. W jej budowie wykorzystywane są przerzutniki. Pamięć ta zużywa dużo mocy w porównaniu z pamięcią typu DRAM. Jej produkcja jest niestety bardzo kosztowna. Wykonuje się ją głównie w technologii CMOS.
Od roku 1996 w powszechnym użyciu znajdują się pamięci typu SDRAM. SDRAM - y (synchroniczne dynamiczne pamięci RAM) różnią się zasadniczo od swych poprzedników - pracują synchronicznie i są taktowane częstotliwością magistrali. Obecnie dostępne są one w postaci 168 - pinowych DIMM - ów.
DIMM to akronim od słów Dual Inline Memory Module, co oznacza, że styki na obu stronach układu doprowadzają różne sygnały. Ponadto każdy DIMM współpracuje z 64 - bitową magistralą, tak więc moduły tych pamięci możemy umieszczać pojedynczo na płycie głównej. Na pytkach tych pamięci umieszczany jest układ o nazwie SPD-EEPROM w których znajdują się informacje na temat parametrów modułu. Dzięki temu w BIOS- ie użytkownik nie musi już konfigurować RAM -u.
58.Pamięć ROM i EPROM, FLASHROM BIOS.
Pamięć ROM czyli pamięć tylko do odczytu (Read Only Memory) jest to pamięć stała. Przechowywane mogą być w niej proste programy, systemy operacyjne, programy obsługi urządzeń, interpretery poleceń itp. W pamięciach tych (najczęściej) producent musi na początku umieścić dane, które mają być potem odczytywane. W pamięci tej niemożliwa jest żadna zmiana. Jeśli są tam błędy pamięć można wyrzucić. Jednak w pochodnych typach tej pamięci stałej mamy inne możliwości:
EPROM - Pamięci stałe reprogramowalne. Programowania pamięci dokonuje użytkownik za pomocą specjalnego programatora, jednak w tym typie pamięci możliwa jest zmiana zmiana wpisanego programu. Zawartość pamięci można wymazać przez naświetlenie promieniami ultrafioletowymi, po czym możliwe jest jej ponowne zaprogramowanie.
EEPROM - Jest to odmiana pamięci EPROM z tą tylko różnicą, że kasowanie odbywa się za pomocą przyłożonego napięcia.
FLASHROM BIOS - pamięć BIOS-u , BIOS to także część software , pamięć tylko do odczytu w pełni programowalna, większa niż DRAM. Shadow BIOS -BIOS z ROM-u przepisuje się do DRAM-u.
Pierwsze maszyny równolegle do zastosowań ogólnych zaczęto budować już w latach sześćdziesiątych. O ich rozwoju w znacznej mierze zdecydowały: naturalna równoległość wielu procesów i zjawisk, z którymi mamy do czynienia w przyrodzie; lawinowy rozwój technologii elementów i zespołów elektronicznych o dużej i bardzo dużej skali integracji oraz nieustannie rosnące zapotrzebowanie na zwiększanie mocy obliczeniowej maszyn cyfrowych.
W 1985 r. firma INMOS rozpoczęła produkcje transputerów. Nazwa wywodzi się z połączenia dwóch słów TRANSmitter i comPUTER, co podkreśla, ze urządzenie jest jednoukładowym komputerem, w którym oprócz zagadnień obliczeniowych szczególna uwagę poświecono problematyce komunikacji.
W transputerach występują dwa priorytety procesów.
Procesy o wyższym priorytecie nie mogą zostać przerwane. Mogą się zatrzymać jedynie w oczekiwaniu na jakieś zdarzenie (np. upływ czasu). Procesy o niższym priorytecie wykonywane są tylko wtedy, gdy nie ma żądnych o wyższym. Są one okresowo wywłaszczane i przenoszone na koniec kolejki oczekujących.
Jeśli rozwiązanie naszego problemu trwa za długo, na jednym transputerze wystarczy połączyć ze sobą ich kilka lub kilkanaście. łączenie wykonuje się przy użyciu wbudowanych łączy szeregowych zwanych linkami.
Do komunikacji pomiędzy procesami stosuje się kanały, którymi można przesyłać dowolne informacje. Są to połączenia jednokierunkowe typu punkt-punkt. Podczas komunikacji następuje synchronizacja procesów nadającego i odbierającego. Kanały mogą łączyć procesy zarówno na tym samym, jak i na różnych transputerach. Na każdym linku można umieścić jednak tylko dwa kanały, po jednym w każdym kierunku.
Podstawowym językiem programowania transputerow jest OCCAM. Pozwala on na sekwencyjne lub współbieżne wykonywanie procesów. Komunikacja pomiędzy procesami może zachodzić tylko poprzez kanały, nie można do tego celu używać zmiennych dzielonych. Na uwagę zasługuje konstrukcja umożliwiającą niedeterministyczny wybór. W zależności od spełnienia zdarzenia zostanie wykonana odpowiadającą mu część programu. Zdarzeniem może być przyjście informacji przez kanał, wystąpienie przerwania lub upływ określonego czasu. OCCAM daje łatwe możliwości zmiany programu na inna liczbę transputerów.
Programista ma możliwość wybrania innych języków oprogramowania np. C, C++, MODULA, FORTRAN, PASCAL. Do języka C dołączana jest biblioteka do programowania równoległego dająca większość możliwości języka OCCAM. Występują w niej funkcje do tworzenia procesów, dodawania ich do kolejek procesów oczekujących, czekania na zakończenie grupy procesów, tworzenia i komunikowania się przez kanały. Dodatkowo zastosowano możliwość komunikacji przez pamięć dzielona oraz synchronizacje przez semafory. Transputery są wykonane w technologii RISC (zminimalizowana liczba instrukcji). Ładowanie programu może następować z ROM-u lub poprzez jeden z linów. Początkowe modele były 16-bitowe i posiadały dwa szeregowe, dwukierunkowe łącza zwane linkami, umożliwiające łączenie transputerów ze sobą lub dołączenie innych urządzeń zewnętrznych. Obecnie większość modeli jest 32-bitowa i posiada cztery linki. Daje to znacznie większe możliwości konfiguracji połączeń transputerów. Przy dwóch łączach możliwe było utworzenie tylko pierścienia. W modelu transputera T800 dodano 64-bitowa jednostkę zmiennoprzecinkowa. W najnowszym modelu T9000 rozwiązano problem komunikacji procesów znajdujących się na różnych transputerach. Znajduje się tam procesor kanałów wirtualnych. Umożliwią on istnienie wielu kanałów wirtualnych w jednym linku fizycznym oraz tworzenie kanałów pomiędzy nie sąsiadującymi bezpośrednio ze sobą transputerami. Zmiany te spowodowały konieczność łączenia modelu T9000 z pozostałymi modelami poprzez specjalne układy. T9000 pracuje z częstotliwością 50 MHz i osiąga przy niej 200 MIPS i 25 MFLOPS. Należy pamiętać, ze moc obliczeniowa można łatwo zwiększyć stosując większą liczbę transputerów. Transputery mogą być wykorzystywane tam, gdzie zachodzi potrzeba przetwarzania dużej ilości informacji. Zostały zastosowane do zbierania, wstępnego przetwarzania i przesyłania danych do centralnego komputera w cyklotronie. Na uczelniach angielskich są prowadzone prace nad zastosowaniem ich w grafice i rzeczywistości wirtualnej. Transputer oprócz procesora i podręcznej pamięci RAM zawiera również bardzo szybkie łącza komunikacyjne
Pyt 59 Transputer, podstawowe pojęcia
Transputer jest wykonanym w technice VLSI układem scalonym, zaprojektowanym głównie z myślą o wykorzystaniu go do przetwarzania równoległego. W jego skład wchodzą przede wszystkim:
procesor;
pamięć RAM;
układ komunikacji, obsługujący cztery dwukierunkowe, szeregowe łącza, wykorzystywane do bezpośrednich połączeń z innymi transputerami.
Łącza komunikacyjne transputerów pozwalają na łączenie ich w liniowe tablice, pierścienie, siatki (ang. mesh), lub inne konfiguracje.
Połączenia z innymi transputerami służą do konstrukcji systemów wieloprocesorowych, prowadzących obliczenia równoległe. Przetwarzanie równoległe może być realizowane również w pojedynczym transputerze. Jest to możliwe dzięki uniwersalnemu językowi programowania Occam, opracowanym dla potrzeb przetwarzania równoległego z uwzględnieniem przesyłania komunikatów. U podstaw języka Occam leży opracowana koncepcja notacji CSP, umożliwiającej zapis procesów współbieżnych. Równolegle z rozwojem języka prowadzono prace projektowe nad układem, który wykorzystywałby Occam w sposób efektywny. Konstrukcje pierwszego modelu nazwano właśnie transputerem.
60. Konfiguracja komputera . Opcja Setup
Program SETUP służy do konfigurowania komputera (zapisu, odcztu i modyfikacji danych ulokowanych w CMOS-RAM) i umieszczony jest wraz z procedurami BIOS-u w pamięci stałej komputera. BIOS - (Basic Input Output System ) Jest to prosty system operacyjny zapewniający dwukierunkową komunikację pomiędzy sprzętem a właściwym systemem operacyjnym. W czasie startu BIOS może nie tylko rozpoznać i poprawnie zainstalować różne urządzenia, ale od czasu wprowadzenia magistrali PCI i technologii Plug & Play spoczywa na nim obowiązek rozdziału zasobów systemowych. Wymagane do tego informacje o konfiguracji sprzętu zapisane są w obszarze ESCD.
Przykładowe opcje zawarte w BIOS-ie
Virus Warning - uniemożliwia zapis danych w boot sektorze ;
CPU internal cache - wł/wył pamięci cache;
External cache - wł/wył zewnętrznej pamięci cache;
Quick Power ON Self test-pominięcie niektórych testów;
Swap Floppy Floppy Drive zmiana kolejności napędów bez zmiany kolejności podłączenia do taśmy informacyjnej;
Boot Up Floppy Seek -(jeśli disabled (wyłączone))zaniechanie prób uruchomienia napędu dysków elastycznych przez procedury POST;
Boot Up Num Lock Status - inicjowanie do pracy w trybie Num Lock;
Boot up system speed- high - komputer pracuje w trybie turbo;
Memory Partrity Check (disabled) -wyłączenie kontroli parzystości pamięci;
Security option - hasło zawsze lub tylko przy wejściu do setap-u;
Video Shadow Bios-Rom - bios karty graficznej może być skopiowany do ram. Czterokrotne przyspieszenie operacji;
C8000-DFFFF Shadow zawartość pamięci ROM przechowującej Bios dodatkowych kart kart rozszerzających możliwości systemu może być skopiowana do ram-u;
Power Managment - wybranie trybu oszczędzania energii;
Primary/Secondary IDE INT# określa przerwania PCI przypisane kontrolerom
dysków twardych;
Auto Configuration - system dobiera automatycznie stosowne parametry, bazując na własnych danych o zainstalowanym sprzęcie;
Non Cachable Block 1-definiuje obszar pamięci , który nie będzie podlegał działaniu pamięci podręcznej;
DRAM Speed Selection szybkość zainstalowanych modułów pamięci
8/16 Bit I/O Recovery Time -ile cykli oczekiwania ma być wstawianych pomiędzy próbami dostępu do magistrali ISA;
Memory Hole At 15M-16M zarezerwowanie pamięci między 15 a 16 MB dla kart rozszerzeń przeznaczonych dla magistrali ISA;
AGP Aperure Size- ile pamięci system ma przeznaczyć dla kart AGP;
Modem Use IRQ- jeśli do komputera podłączony jest modem możemy w tym miejscu określić numer przerwania, na którym ma pracować;
1
6
I / O
złącze
Pamięć
cache
cache
CPU
CPU
...