- •II. Pamięci
- •Pojedyncza I sieć jednostek pamięci (o wielu wejściach) zbudowanych na bramkach or
- •Komórka pamięci o pojemności 1 bit, po lewej sram, po prawej dram
- •Porównanie parametrów urządzeń pamięci
- •Struktura logiczna 1-bitowej komórki pamięci
- •Schemat (I symbol) fizycznej jednostki pamięci I jej łączy z zewnętrzem
- •Tablica wartości modułu sterującego pamięci
- •Przykład adresów I zawartości sześciu spośród 210 słów pamięci
- •Dekodowanie I demultipleksowanie adresów na kości dram 64k
- •Schemat logiczny pamięci rom
- •Struktura logiczna pamięci rom 25×8
- •Tabela wartości dekodera
- •Komórka pamięci rom – (Metal Oxide Semiconductor)
- •Typowa organizacja pamięci podręcznej
- •Przykład odwzorowania bloków pamięci ram na linie pamięci podręcznej
Przykład odwzorowania bloków pamięci ram na linie pamięci podręcznej
Na jedną linię pamięci podręcznej może zostać odwzorowany jeden z ustalonej liczby bloków RAM (na rysunku zaznaczonych tym samym kolorem). Ponieważ pamięć podręczna składa się z 8 linii więc na przykład do drugiej linii pamięci podręcznej może zostać przeniesiony 2-gi lub 9-ty lub 17-ty lub … blok pamięci RAM. Etykietę (tag) stanowi kilka najbardziej znaczących bitów adresu linii pamięci RAM, na rysunku powyżej są to 2 najbardziej znaczące bity. Trzy najmniej znaczące bity adresu charakteryzują blok pamięci.
Na bardziej realistycznym przykładzie omówimy odwzorowanie bezpośrednie, jego algorytm i regułę.
Założenia:
- pamięć podręczna ma 64KB,
- przepływ informacji między pamięcią główną a podręczną odbywa się blokami o objętość 4 bajty.
- pamięć podręczna składa się z 16K = 214 linii o pojemności 4 bajty każda, co razem daje 64KB,
- pamięć główna ma pojemność 16MB, jest adresowalna bezpośrednio za pomocą 24 bitowych adresów,
składa się z 4M bloków o pojemności 4 bajty każdy,
Przyjmujemy najprostsze odwzorowanie bezpośrednie (direct mapping), to znaczy jeden blok pamięci głównej jest odwzorowany na jedną linię pamięci podręcznej. Oznaczamy:
r = 14 bitów - numer linii pamięci podręcznej,
t = 8 bitów - etykieta (tag), najbardziej znacząca część adresu linii pamięci RAM,
s = r + s =22 bity - identyfikator jednego z 2s bloków pamięci RAM,
2 - najmniej znaczące 2 bity identyfikują poszukiwane słowo lub bajt.
Adres słowa pamięci głównej składa się z trzech pól o łącznej pojemności 24 bity:
Tag =etykieta(t) |
numer lini(r) |
słowo lub bajt |
8 bitów |
14 bitów |
2 bity |
Takie odwzorowanie gwarantuje, że nie ma dwóch bloków mających identyczne etykiety i numery linii. Sprawdzanie zawartości pamięci podręcznej dokonuje się przez przeszukiwanie etykiet.
numer inii pamięci podręcznej |
przypisane do niej bloki pamięci głównej |
0 |
0,m,2m,…,2sm |
1 |
1,m+1, 2m+1,…,2sm+1 |
. |
. |
. |
. |
. |
. |
m-1 |
m-1,2m-1, 3m-1,…,2sm-1 |
Tablica odwzorowania bloków pamięci RAM na numery linii pamięci cache
Organizacja odwzorowania
Przykład odwzorowania
Liczba linii pamięci cache jest znacznie mniejsza niż liczba bloków pamięci głównej wobec tego zdarzają się przypadki kiedy poszukiwanegoprzez procesor słowa nie ma w pamięci cache i trzeba to słowo pobrać z pamięci głównej wraz całym blokiem. Blok ten zostaje skopiowany do przypisanej mu linii pamięci podręcznej. Jeżeli linia już zawiera jakiś blok to zostaje on usunięty, a jej miejsce zajmuje informacja zawarta w odnalezionym bloku. Nie ma możliwości umieszczenia bloku np. w linii rzadko ostatnio odwiedzanej. Obniża to sprawność pamięci podręcznej. Zaletami odwzorowania bezpośredniego są prostota i niska cena.
Bardziej elastyczne postępowanie dopuszczają inne odwzorowania: asocjacyjne, tzw. set associative i inne. Jednak ceną jest komplikacja spowodowana koniecznością zastosowania algorytmu decydującego dokąd ma być skopiowany nowy blok.
Zazwyczaj komputery posiadają hierarchiczny zbiór kilku pamięci podręcznych różniących się fizyczną odległością od procesora, czasem dostępu i pojemnością.
Rejestry
Słowo rejestr jest używane w dwóch znaczeniach, jako fizyczna struktura półprzewodnikowa i jako słowo zapisane w tej strukturze. Rejestry w tym pierwszym znaczeniu jest to zbiór pamięci RAM i o bardzo małej pojemności(zazwyczaj jednego słowa) i o krótkim czasie dotępu, ulokowanych na tej samej kości co procesor. Rejestr w drugim znaczeniu to zbiór n komórek, z których każda może zapamiętać 1 bit informacji. Z punktu widzenia obwodów elektronicznych jest to zbiór flip-flopów. Stan rejestru to zbiór ‘0’ i ‘1’, który w zależności od kontekstu może reprezentować liczbę, symbol lub np. instrukcję. Na przykład 16-bitowy rejestr może znajdować się w jednym z 216 stanów, jednym z nich jest na przykład ‘1100001111001001’. Jeżeli stany tego rejestru mają reprezentować liczby całkowite, będzie to liczba 50 121, jeżeli rejestr ma zawierać symbole ASCII to pierwsze 8 bitów rejestru jest literą ‘C’ a drugie 8 literą ‘I’, itd. Wszystkie komórki rejestru pracują pod dyktando tego zamego zegara. Rejestr oprócz komórek pamięci (elementów flip-flop) może zawierać (combinational gates) bramki przetwarzające dane zawarte w ich pamięci.
Do współpracy rejestrów między sobą potrzebna jest łączność w postaci ścieżek przewodzących prąd elektryczny między nimi. Gdyby każdą parę rejestrów łączyła odrębna ścieżka to łącznie zajmowałyby zbyt dużą część fizycznej objętości procesora. Dlatego system połączeń ma strukturę o nazwie internal bus. System bus jest zbiorem tylu linii (ścieżek) ile bitów zawiera rejestr, w każdej chwili jedną linią przesyłany jest jeden bit informacji. Jednostka sterująca procesora wskazuje, którą ścieżkę w jednym cyklu zegara zajmuje każdy rejestr. System bus może być zbudowany z użyciem multiplekserów, które na podstawie sygnału sterującego otwierają odpowiedni rejestr, z którego informacja przepływa do odpowiedniej linii bus. Potrzebnych jest n multiplekserów (tyle bitów zawiera rejestr), rozmiar każdego z nich wynosi n.
Schemat logiczny fragmentu systemu bus dla 4 rejestrów
S1 |
S2 |
Przypisany rejestr |
0 |
0 |
A |
0 |
1 |
B |
1 |
0 |
C |
1 |
1 |
D |
Tablica wartości powyższego systemu magistrali
System magistrali może również być zbudowany z trójstanowych buforów. Bufor jest układem elektronicznym, który może znajdować się w jednym z trzech stanów. Dwa z nich reprezentują logiczne 0 i 1, a trzeci nie ma żadnej wartości logicznej, odpowiada otwartemu obwodowi (o nieskończonym oporze elektrycznym).
Symbol bufora obok tablica jego wartości
Dwa obwody o różnej wartości wejścia kontrolnego 'e', równoważne powyższemu
Schemat logiczny systemu magistrali dla bitu o numerze 0
Wybrane rejestry
Jedną z grup rejestrów tworzą rejestry przechowujące instrukcje, które są wywoływane do wykonania jedna po drugiej w zadanej kolejności. W jednym cyklu zegara jednostka sterująca odczytuje instrukcję i wykonuje nią. Sekwencyjność tego procesu wymaga istnienia licznika odczytującego w tym czasie adres następnej instrukcji. Potrzebny jest rejestr przechowujący kod instrukcji po pobraniu jej z pamięci. Grupy rejestrów są zróżnicowane ze względu na rozmiar przechowywanych wielkości, mają różną pojemność.
Przykład
Lista rodzajów rejestrów w zbiorze instrukcji w modelu architektury o nazwie Basic Computer
symbol i nazwa ang. |
liczba bitów |
nazwa |
funkcja |
DR(MDR) - data register |
16 |
rejestr danych |
zawiera operandy |
AR(MAR) - address register |
12 |
rejestr adresów |
zawiera adresy |
AC - accumulator |
16 |
akumulator |
rejestr procesora |
IR - instruction register |
16 |
rejestr instrukcji |
zawiera kody instrukcji |
PC - program counter |
12 |
licznik programów |
zawiera adresy instrukcji |
TR - temporary register |
16 |
rejestr tymczasowy |
zawiera dane tymczasowe |
INPR - input register |
8 |
rejestr wejść |
zawiera znaki wchodzące |
OUTR - output register |
8 |
rejestr wyjść |
zawiera znaki wychodzące |
Rejestr adresów ma długość12 bitów ponieważ tyle znaków ma adres komórki w pamięci RAM. Taką samą długość ma licznik programów ponieważ on także zawiera adres w pamięci instrukcji następnej po aktualnie wykonywanej. Rejestr wejścia zawiera 8-mio bitowe znaki przychodzące z wejścia, podobnie rejestr wyjścia zawiera tego typu znaki skierowane do wyjścia.
Synchronizacja czynności procesora (timing)
Każdy komputer posiada wewnętrzny zegar sterujący szybkością wykonywania instrukcji oraz synchronizujący pracę wszystkich składowych komputera. Zegar sterowany przez kryształ kwarcu generuje periodyczny, prostokątny sygnał elektryczny oznaczany zwykle 'clock ' lub 'clk'), który jest rozprowadzany w całym komputerze.
Sygnał generowany przez zegar, czas płynie z lewa na prawo
Urządzenia zazwyczaj reagują w fazie narastanie lub opadania napięcia sygnału.
Narastające i opadające fazy sygnału zegara
Dokładniej mówiąc sygnał zegara wyznacza chwilę kiedy w urządzeniu ma zajść jakiś proces, natomiast inne sygnały (z zewnątrz) decydują jaki to ma być proces. Na przykład jeżeli obwód ma dodać dwie liczby znajdujące się w rejestrach to wykonuje dodawanie i umieszcza wynik w rejestrze w chwili pojawienia się impulsu.
Okres sygnału (cykl - przedział czasu między sąsiednimi, identycznymi stanami sygnału) nie może być krótszy niż najdłuższy czas potrzebny na przejście dowolnego sygnału elektrycznego między dwoma składnikami CPU. Ponadto wykonanie jakiejkolwiek operacji przez układ elektroniczny również zabiera trochę czasu. Większość składników CPU to złożone logiczne urządzenia sekwencyjne to znaczy mogą przystąpić do wykonania następnej czynności dopiero po ukończeniu poprzedniej. Częstotliwość zegara (odwrotność okresu) musi być dostosowana do najwolniejszego urządzenia. Wykonanie jednej instrukcji zajmuje ustaloną liczbę cykli (okresów) zegara.
Obwody kombinacyjne i sekwencyjne
Według jednego z kryteriów dotychczas omawiane obwody dzielą się na dwie grupy kombinacyjne i sekwencyjne. Tym kryterium jest zależność stanu obwodu (zawartej w nim informacji) od czasu. Stan obwodu kombinacyjnego zależy wyłącznie od aktualnych sygnałów na wejściu.
Przykład obwodu kombinacyjnego
Przykładem bardziej złożonego obwodu kombinacyjnego jest dekoder.
Jeżeli do obwodu kombinacyjnego zostanie dołączony element pamięci, na przykład dwustanowy flip-flop to otrzymamy obwód sekwencyjny.
Przykład obwodu sekwencyjnego
W ogólności obwód sekwencyjny różni sie od kombinacyjnego tym, że jego stan zależy od nie tylko od sygnału na wejściu ale również od czasu. Ogólnie stan synchronicznego obwodu sekwencyjnego zależy od dyskretnej sekwencji czasowej stanów na wejściu i wyjściu. Stan obwodu synchronicznego może się zmieniać w dyskretnych odstępach czasu generowanych przez zegar.
