lastscan5 (15)

lastscan5 (15)



Przykład braku ort ogon alnośct MC (MC - Motorola) 680x0 - jest instrukcja kopiowania typu 2 pamięć-pamięć (MOVE (A+), (A+)) ale nie ma instrukcji dodawania pamięć-pamięć

Przykład nieprzeźroczystoścr MC 680x0 instrukcja CLR (A) - poprzedzony zbędnym odczytem zapis zera do pamięci

Przykład niekompletności: realizacji funkcji AND, OR, NOT, nie zaś jedn ©funkcyjnego systemu pełnego (NAND. NOR) lub wszystkich 16 funkcji logicznych dwóch zmiennych

Przykład braku otwartości architektura procesorów Intel 80x86. wskutek czego kolejne wersje rozwojowe są niespójne z architekturą pierwotną

Przykład otwartości 32-bilowa architektura wewnętrzna procesora MC68000/R (z 8-bitową magistralą danych) umożliwia spójną rozbudowę listy rozkazów .

Rozdzielczość adresowania

Rozdzielczość adresowania jest cechą architektury mającą wpływ na organizację kompilatora Podstawową jednostką informacji jest słowo maszynowe Dane systemowe są tworzone w fol macie zgodnym z rozmiarem słowa maszynowego lub stanowiącym jego wielokrotność Nasuwa się więc wniosek iZ szerokość magistrali systemowej musi umożliwiać co najmniej przesłanie jednego słowa maszynowego w jednym cyklu pamięci W przypadku gdy rozdzielczość adresowania jest większa niZ rozmiar słowa lub szerokość magistrali jest wielokrotnością podstawowej jednostki adresowej powstaje problem wpasowania danych w strukturę pomięci. Problem ten powinien być rozwiązany podczas kompilacji programu

Umieszczenie danych o rozmiarze jednostkowym równym rozmiaiowi komórki pamięci jest dowolne, jeśli jednak słowo zajmuje dwie komórki pamięci to adres słowa powinien t*yć parzysty W przypadku gdy słowo zajmuje cztery komórki pamięci adres słowa powinien być podzietny przez cztery. Taki wpasowanie umożliwia dostęp do danej w pojedy nczym cyklu odczytu pamięci (rys 3 8 , folia)

Poziomy maszynowe

Ptty opisie cech funkcjonalnych komputera moZna wyróżnić charakterystyczne warstwy opis zwane 3 poziomami maszynowymi Wyróżniamy następujące poziomy maszynowe:

•    (L0) przetwornik sygnałów (układ elektroniczny - hardware)

•    (LI) struktura logiczna wraz z generatorem mikrorozkazów (ftrmware)

•    0-2) system operacyjny

•    (L3) język asemblerowy

•    (L4) język algorytmiczny    (język wysokiego poziomu)

•    (LS) język makropoleceń    (aplikacja)

Poszczególne warstwy są postrzegane poprzez pryzmat sprzężeń między nimi (rys 2.6, folia), umożliwiających dokonania konwersji pomiędzy poziomami.

Najni2szym poziomem dostępnym dla użytkownika jest poziom kodu maszynowego, który identyfikuje architekturę maszyny rzeczywistej Kod maszynowy rzadko zapisywany jest w postaci dwójkowej lub szesnastkowej Najczęściej stosuje się zapis przy pomocy mnemoników, które powiązane z jawnymi argumentami działania jednoznacznie identyfikują pojedyncze rozkazy procesora. Typowa posiać rozkazu w notacji mnemonicznej wygląda następująco:

MNEMONIK (argument 1 ]|, argument 2](.argument 3|

Konwersja pomiędzy poziomami programowymi może być dokonana jako kompilacja lub interpretacja. Kompilacja polega na przetłumaczeniu całego programu na sekwencję poleceń procesora co pozwala na wyeliminowanie pouiarzających się części tego programu i umożliwia wytworzenie optymalnego kodu wynikowego, lecz wymaga dużej pojemności pamięci Interpretacja potęga na osobnym tłumaczeniu każdego polecenia na sekwencję rozkazów procesora w chwili użycia tego polecenia, przez co wymaga niewielkiej ilości pamięci ale jest bardzo czasochłonna (rys 2.8, folia)

Architektura procesora - uproszczony opis działania podstawowych jednostek procesora

Zasadniczymi elementami funkcjonalnymi architektury procesora są:

•    procesor zawierający:

-    jednostkę sterującą (controI unii, CU)

-    jednostkę wykonawczą {executron unii, EU) jednostkę adresową (me mory unit, MU)

•    pamięć (storage) przechowująca dane

•    magistrala (bus) łącząca    jrrocesor    z    pamięcią

(rys 3.1, folia)

Jednostka wykonawcza wraz z jednostką adresową tworzy ścieżki przepływu danych

Jednostka wykonawcza składa się z rejestru rozkazów (instruction register, IR) w którym przechowywany jest kod rozkazu pobranego z pamięci głównej, licznika rozkazów [program coumer, PC) oraz z rejestru statusu {status register, SR) w którym przechowywany jest aktualny stan procesor*.

Przestrzenie adresowe

Ze względu na sposób adresowania wyróżnia się następujące przestrzenie adresowe

bszar roboczy - rejestry procesora 8mięć główna rzeslrzeń sterowania tos

rzestrzeń wejścia/wyjścia

ozdziclenie logiczne przestrzeni adresowych ©zdzielenie fizyczne przestrzeni adresowych

Rozdzielenie logiczne oznacza rozdzielenie na poziomie listy rozkazów Oznacza to, że przestrzeń adresową przypisano instrukcji. Rozdzielenie logiczne implikuje rozdzielenie fizyczne przestrzeni.

Rozdzielenie fizyczne nie jest widoczne z poziomu architektuiy i uwidacznia się dopiero na poziomie organizacji przez przypisanie adresom logicznym określonych adresów fizycznych Dostęp do różnych przestrzeni adresowych posiadają te same rozkazy, używając identycznie skonstruowanych wskaźników adresowych.

W skład jednostki wykonawczej wchodzi jednostka arytmetyczno-logiczna (arithmetic logical unit, Al.U) wraz z plikiem rejestrów roboczych (register file, R). Ze względu na fakt iż w danej chwili czasu może być realizowany co najwyżej jeden transfer między procesorem a pamięcią Al.U musi być wyposażona w rejestry robocze do przechowywania argumentów operacji wieloargumentowych. Informacja o poprawności wyniku wytworzonego w Al.U zapisywana jest do rejestru warunków (condition register. CR). AL.U jest zwykle rozdzielona na jednostkę staloprzecinkową (intereg unit. 1U) i jednostkę zmiennoprzecinkową (Jloattng point unit, FPU) które to jednostki korzystają zwykle z osobnych plików rejestrowych

Głównym elementem jednostki adresowej jest blok generatora adresu (memory atfress generator, MAG), który może zawierać plik rejestrów adresowych (address register. ADDR) wraz z wyróżnionym rejestrem wskaźnika stosu {stack pointer. SP).

Odpowiednio do lokalizacji i sposobu użycia operandów można wyróżnić 4 zasadnicze rodzaje architektur jednostki-arytmetyczno logicznej i procesora (rys 3.2, folia).

a)    akumulatorową, AC

b)    rejestr-pamięć, R/M (register memory )

c)    uniwersalna, R+M (rć egister or memory)

d)    rejestrową. L/S (load storę)

W architekturze akumulatorowej jeden z argumentów umieszczony musi być w specjalnym rejestrze, w którym również zostanie umieszczony wynik niszcząc Z tym samym operand tak że nie może on być wykorzystany powtórnie. Rejestr len nazywany jest akumulatorem (accumulator) Drugi operand pobierany jest z niedostępnego programowo rejestru TMP.

Architekturę rejestr-pamięć charakteryzuje to, iż jeden z operandów musi się znajdować w rejestrze procesora Drugi operand może być pobierany z pamięci lub innego rejestru procesora. Wynik lak jak drugi Operand może być umieszczony w pamięci łub innym rejestrze.

W architekturze uniwersalnej zarówno argumenty operacji jak i wynik są umieszczane w rejestrach procesor* lub pamięci

Architekturę rejestrową LS wyróżnia fakt iż działa ona tylko na rejestrach procesora. Wyjątkiem są rozkazy load i storę, które odpowiednio ładują rejestr wskazaną daną lub kopiują jego zawartość pod wskazany adres.

Wykład 3

Indeksowanie danych

Pamięć jest zbiorem komórek o jednakowych rozmiarach. Ka2da komórka zawiera jednostkę informacji zwaną słowem Komórki są indeksowane ten. każda komórka posiada unikatowy numer -adres. Sposób przydzielania indeksów (adresów) jest cechą architektury (ry s 3.7, folia). Stosowane są dwie konwencje numeracji bitów lub bajtów:

• ważniejszy niższy (big endian) - słowo (lub bit) zawierające bardziej znaczącą część informacji posiada niższy numer porządkowy (adres)

ażniejszy wyższy (linie endian) - słowo (lub bit) zawierające bardziej znaczącą część informacji posiada wyższy numer porządkowy


W architekturze Intel 80x86 obowiązuje konwencja linie endian, w architekturze PowerPC big endian, a w architekturze MC 680x0 numerowanie bajtów jest zgodne z konwencją big endian a bitów w konwencji liftle endian


Separacja przestrzeni adresowych powinna wykluczyć możliwość jednoczesnego wskazania danych z różnych przestrzeni adresowych lub dostępu do danej w różnych obszarach adresowych Powszechnie przyjętym odstępstwem od tej reguły jest implementacja stosu programowego w przestrzeni pamięci głównej, w wyniku czego te same dane są „widoczne" w dwóch różnych przestrzeniach

Adresowanie w separowanej przestrzeni adresowej powinno być jednolite

W przestrzeni adresowej pamięci niektóre obszary mogą być zastrzeżone przez producenta sprzętu lub systemu operacyjnego Wykorzystywane są one na przykład do inicjalizacji sprzętu po zerowaniu procesora (RESET). Zastrzeżenie takie może być tymczasowe i unieważnione poprzez przełączenie bloków pamięci dostępnych alternatywnie w tym samym obszarze adresowym Taki bloki pamięci nazywamy pamięcią przysłoniętą (shadow memory)

W procesorach rodziny Intel 80x86 przestrzeń peryferiali (wc/wy) oraz przestrzeń pamięci są rozdzielone logicznie i możliwe są ich różne odwzorowania.

•    separowane adresowanie pamięci i przestrzeni we/wy, przy którym są używane różne rozkazy dla każdej z przestrzeni

•    jednolite adresowanie - te same rozkazy są używane do adresowania przestrzeni we/wy i pamięci, przestrzenie są rozdzielone tylko fizycznie.

W procesorach 80486 i Pentium wydzielona została również przestrzeń adresowa stosu zmiennoprzecinkowego, obejmująca 8 80-cio bitowych lokacji Stosowa architektura jednostki zmiemroprzecinkowej, odmienna od architektury jednostki stałoprzecinkowej wymaga fizycznego rozdzielenia adresowej rejestrów zmiennoprzecinkowych. W procesorach Pentium MMX i Pentium 11 przestrzeń ta jest również wykorzystana jako rejestry robocze rozkazów rozszerzeń multimedialnych (MMX) Rys. 3.9, 3.10. 3.1 i, folie.


5. Tryby adresowania

Trybem adresowania nazywamy sposób w jaki wyliczany jest adres. Wyróżniamy następujące tryby

adresowania:

a)    adresowanie zeroełmentowe - adresow anie bezpośrednie adres nie jawny Dzielimy je na:

•    zwarte - operandy skojarzone z funkcją wykonywanego rozkazu

•    błyskawiczne - kod danej jest częścią kodu rozkazu

•    natychmiastowe - za pomocą licznika rozkazów Kod danej lub jego rozszerzenie jest umieszczony w pamięci bezpośrednio po kodzie rozkazu

b)    adreso%vanie jcdnoelemcntowe bezpośrednie

•    bezwzględne - skrócony adres danej w kodzie rozkazu lub pełny adres danej w rozszerzeniu kodu rozkazu

•    rejestrowe bezpośrednie - argument umieszczony w rejestrze, identyfikowanym w kodzie rozkazu

c)    adresowanie jcdnoelemcntowe pośrednie

•    bezwzględne pośrednie - adres danej jest słowem rozszerzenia kodu rozkazu

w    • rejestrowe pośrednie - adres danej umieszczony w rejestrze

identyfikowanym w kodzie rozkazu

•    rejestrowe pośrednie z modyfikacja - adres danej w rejestrze jest automatycznie zwiększany (inkrcmentacja) lub zninięjszany (dekremenlacja) po (czyli odpowiednio poslinkrcmentacja i postdekrementaęja) użyciu lub przed użyciem (preinkrcmentacja i predekremen tacja)

Adresowanie wieloelementowe jest zawsze adresowaniem pośrednim Wskaźnik adresu wyznaczany jest jako funkcja dwóch lub większej liczby składowych adresu Są nimi


Dana jest identyfikowana w przestrzeni przez swój adres, który jest wyznaczany zgodnie z trybem adresowania Szczególnym rodzajem danej nie pochodzącej z żadnej z wymienionych przestrzeni jest identyfikator przerwania, który jest wytwarzany jako odpowiedź na potwierdzenie przyjęcia obsługi zgłoszonego przerwania.

Przerwaniem nazywamy sygnał informujący o zdarzeniu którego obsługa jest konieczna ze względu na prawidłowe działanie systemu Typowym przykładem jest przerwanie zegara czasu rzeczywistego. Program obsługi tego przerwania uaktualnia na bieżące* czas systemowy.

4 Odwzorowanie przestrzeni adresowych

Aby adresowanie było jednoznaczne konieczne staje się rozdzielenie przestrzeni adresowych Możliwe są dwa następujące sposoby rozdzielenia przestrzeni adresowych


Michał Jur


Wyszukiwarka

Podobne podstrony:
41 (15) B 10. Które 7. następujących twierdzeń o cymctydyrie mc jes: prawdziwe: a/jest konkurencyjny
Zdj?cia 0025 (2) Przykład Zdania Pe*ien Koualsbjest łysy Peuien KoMulsh me jest łysy mc mogą toć jed
kral# i 4^ t/l Rys. 15. Przykłady wiązania murów płaszcza różnych grubości z cegieł
LastScan10 (15) uMiii 3.3.1. CHARAKTERYSTYKA WYBRANYCH ZANIECZYSZCZEŃ WÓD Wśród licznych zanieczyszc

więcej podobnych podstron