“System wizualizacji działania pamięci hierarchicznej” prezentuje procesy, zachodzące podczas odwołania się procesora do pamięci komputera, takie jak:
· sposób translacji adresu logicznego na fizyczny
· sposób funkcjonowania pamięci podręcznej
· zawartość podstawowych struktur danych, biorących udział w obsłudze tego odwołania
Wizualizacja ma postać kolejno wykonywanych kroków. Przy każdym z nich wyświetlana jest informacja o wykonywanych w nim działaniach.
W symulacji przyjęto, że pamięć operacyjna ma pojemność 512KB, a pamięć wirtualna 1MB.
Ze względu na fakt, że system wizualizuje procesy związane z odwołaniami procesora do pamięci, obsługiwane są tylko rozkazy typu MOV, dotyczące przesłań danych do rejestrów ogólnego przeznaczenia.
1.
Uruchamianie apletu oraz aplikacji
System działa jako aplet Java lub jako aplikacja Java. Do jego uruchomienia jest potrzebna (dla apletu) przeglądarka internetowa zawierająca moduł rozszerzający Java Plug-in dla Java w wersji 1.2.0 lub wyższej lub (dla aplikacji) środowisko Java w wersji 1.2.0 lub wyższej.
1.1.
Uruchamianie
aplikacji w systemie Windows
W systemie Windows aplikację uruchamia się za pomocą pliku MemoVis.bat. W systemie operacyjnym powinna być zdefiniowana zmienna środowiskowa JAVA_HOME, wskazująca na katalog zawierający środowisko Java. Można również uruchomić aplikację z wiersza poleceń komendą:
%JAVA_HOME%/bin/java -classpath
“MemoVis.jar” wizualizacja/Main
1.2.
Uruchamianie
aplikacji w systemie Linux
W systemie Linux aplikację uruchamia się za pomocą skryptu MemoVis.sh. W systemie operacyjnym
powinna być zdefiniowana zmienna środowiskowa JAVA_HOME, wskazująca na katalog
zawierający środowisko Java. Można również uruchomić aplikację z wiersza
poleceń komendą:
$JAVA_HOME/bin/java -classpath MemoVis.jar wizualizacja/Main
Należy otworzyć
stronę MemoVis.html
w przeglądarce internetowej spełniającej warunki opisane na początku tego
rozdziału i na pytanie, czy chcemy zaufać uruchamianemu oprogramowaniu
odpowiedzieć Yes.
2. Ogólny opis okien wizualizacji
Interfejs użytkownika składa się z okna głównego oraz tabel, przedstawiających zawartość wybranych struktur danych. Poniżej znajduje się lista oraz krótki opis wyświetlanych okien:
· okno główne –wizualizuje procesy zachodzące podczas odwoływania się procesora do pamięci, umożliwia wpisanie przez użytkownika rozkazu do wykonania i sterowanie przebiegiem wizualizacji. Zawiera główne menu systemu.
· tabela pamięci operacyjnej (Operating Memory) – przedstawia zawartość pamięci operacyjnej
· tabela pamięci podręcznej danych (Cache Memory) – wyświetla zawartość pamięci podręcznej danych
· tabela tablicy stron (Page Table) – przedstawia zawartość tablicy stron
· tabela rejestrów (Registers) – wyświetla zawartość wybranych rejestrów
3.
Szczegółowy opis okien wizualizacji
Menu znajduje się na oknie głównym. Składa się z następujących elementów:
· File – podmenu sterujące.
o Exit - umożliwia zamknięcie aplikacji lub apletu:
· View – umożliwia zmianę systemu notacji liczb wyświetlanych w tabelach. Zawiera następujące elementy:
o Binary – zmienia system notacji liczb na binarny
o Decimaly – zmienia system notacji liczb na dziesiętny
o Hexadecimaly – zmienia system notacji liczb na szesnastkowy
· Algorithm – umożliwia zmianę algorytmu usuwania stron z pamięci operacyjnej oraz uruchomienie mechanizmów obliczania statystyk odwołań procesora do stron, wykorzystywanych przez te algorytmy. Zawiera następujące elementy:
o LRU – zmienia algorytm usuwania stron z pamięci operacyjnej na LRU (Least Recently Used - wybór strony najdawniej używanej)
o LFU – zmienia algorytm usuwania stron z pamięci operacyjnej na LFU (Least Freąuently Used – wybór strony najrzadziej używanej)
o Count statistics – uruchamia mechanizmy obliczania statystyk odwołań procesora do stron dla powyższych algorytmów
· Window – umożliwia włączanie oraz ukrywanie okien, zawierających tabele z zawartością wybranych struktur danych. Zawiera następujące elementy:
o Registers – włącza/ukrywa okno tabeli rejestrów
o Cache Memory – włącza/ukrywa okno tabeli pamięci podręcznej danych
o Operating Memory – włącza/ukrywa okno tabeli pamięci operacyjnej
o Page Table – włącza/ukrywa okno tabeli tablicy stron
· Help – umożliwia wyświetlenie podstawowych informacji dotyczących systemu wizualizacji oraz podręcznik użytkownika. Zawiera następujące elementy:
o About – wyświetla podstawowe informacje o systemie wizualizacji
o Help – wyświetla podręcznik użytkownika
Zawiera podstawowe elementy wizualizacji oraz menu (opisane powyżej).
Rysunek 21. Okno główne
Znajdują się na nim cztery panele:
· panel rozkazu – wyświetla komunikaty prezentujące informacje na temat danego kroku wizualizacji, zawiera pole umożliwiające wpisanie rozkazu przez użytkownika oraz następujące przyciski sterujące:
o Execute – rozpoczyna proces wizualizacji. Powoduje sprawdzenie poprawności wpisanego rozkazu. Jeżeli wpisany rozkaz jest poprawny, ukrywany jest przycisk Execute, a na jego miejscu pojawiają się przyciski sterowania przebiegiem wizualizacji (Play, Step, All) oraz wyłączana jest możliwość edycji pola treści rozkazu
o Play – rozpoczyna wykonywanie kolejnych kroków wizualizacji z jednosekundowym odstępem czasu
o Step – powoduje wykonanie jednego kroku wizualizacji
o All – powoduje wykonanie wszystkich kroków wizualizacji w sposób natychmiastowy
Rysunek 21. Panel rozkazu przed rozpoczęciem procesu wizualizacji
Rysunek 21. Panel rozkazu w trakcie wizualizacji
· panel segmentacji – przedstawia proces translacji adresu logicznego na adres liniowy (mechanizm segmentacji)
Rysunek 21. Panel segmentacji
· panel stronicowania – przedstawia proces translacji adresu liniowego na adres fizyczny (mechanizm stronicowania)
Rysunek 21. Panel stronicowania
· panel pamięci podręcznej danych – przedstawia sposób działania pamięci podręcznej danych
Rysunek 21. Panel pamięci podręcznej danych
3.3.
Tabela
pamięci operacyjnej
Wyświetla zawartość pamięci operacyjnej. Każdy wiersz tabeli odpowiada jednej linii pamięci (32 bajty). Pierwsza kolumna zawiera informację o numerze strony oraz numerze linii każdego wiersza. Gdy wykonywane są działania na pamięci operacyjnej, w tabeli zaznaczane są odpowiednie linie.
Rysunek 21. Tabela pamięci operacyjnej
3.4.
Tabela
pamięci podręcznej
Prezentuje zawartość pamięci podręcznej danych. Każdy wiersz tabeli odpowiada jednej linii pamięci (32 bajty). Pierwsza kolumna zawiera informację o numerze bloku (0, 1) oraz numerze linii wiersza. Druga kolumna przedstawia numer strony, zapisany w elemencie katalogu odpowiadającemu danej linii bloku. Gdy wykonywane są działania na pamięci podręcznej danych, w tabeli zaznaczane są odpowiednie linie.
Rysunek 21. Tabela pamięci podręcznej danych
Wyświetla zawartość tablicy stron. W symulacji pamięć wirtualna zajmuje 1MB (256*4kB, gdzie 4kB to rozmiar jednej strony) więc wymaga to tylko jednej tablicy stron (jedna tablica stron zawiera 1024 elementy, a wyświetlane jest z nich w tym wypadku jedynie 256). Tabela dla każdej strony pokazuje:
· fizyczny numer strony
· bit A (Accessed) automatycznie ustawiany przez procesor na 1, gdy następuje odwołanie do danej strony
· bit P (Present) sygnalizujący obecność (1) lub nieobecność (0) strony w pamięci operacyjnej
· wartość LRU wykorzystywaną w algorytmie usuwania stron z pamięci operacyjnej LRU. Pokazuje jak dawno dana strona była używana
· wartość LFU wykorzystywaną w algorytmie usuwania stron z pamięci operacyjnej LFU. Pokazuje jak często dana strona była używana
Rysunek 21. Tabela tablicy stron
Przedstawia zawartość wybranych rejestrów. Każdy wiersz odpowiada pojedynczemu rejestrowi. Pierwsza kolumna zawiera nazwy rejestrów, a druga ich wartości.
Rysunek 21. Tabela rejestrów
4.
Przykłady zastosowania
W symulacji możliwe są następujące sytuacje:
· podany przez użytkownika rozkaz jest poprawny lub niepoprawny
· strona z szukaną daną jest obecna lub nieobecna w pamięci operacyjnej
· linia pamięci z szukaną daną jest obecna w pamięci podręcznej danych.
o linia pamięci z szukaną daną jest zapisana w bloku 0 lub 1 pamięci podręcznej danych
· linia pamięci z szukaną daną nie jest obecna w pamięci podręcznej danych.
o linia pamięci z szukaną daną zostanie pobrana z pamięci operacyjnej i zapisana w bloku 0 lub 1 pamięci podręcznej danych
Jest to podstawowy przykład, opisujący działanie wizualizacji,
w oparciu o wykonanie pojedynczego rozkazu. Główny nacisk w przykładzie
jest położony na pokazaniu użytkownikowi prawidłowej obsługi. Warto zauważyć,
że w każdym momencie działania systemu wizualizacji istnieje możliwość
obejrzenia tabel pokazujących zawartość symulowanych pamięci oraz rejestrów,
poprzez wybór elementów menu Window.
W przykładzie tym, po uruchomieniu systemu wizualizacji, należy wpisać
rozkaz MOV AH, DS:15H w pole tekstowe, znajdujące się w prawym
górnym rogu okna głównego (pole rozkazu).
Rysunek 6. Panel rozkazu. Przycisk Execute
Następnie należy nacisnąć przycisk Execute, znajdujący się obok
pola treści rozkazu. Spowoduje to ukrycie przycisku Execute
i pojawienie się przycisków Play, Step oraz All.
Opis kolejnych kroków wizualizacji rozpoczyna się od wyjaśnienia działania
opcji najwolniejszej Step, która wymaga ręcznego
potwierdzenia każdego kroku (największe znaczenie edukacyjne). Następnie
zostanie przedstawiona opcja automatyczna Play,
w której użytkownik ma możliwość utrwalenia wiedzy o poznanych procesach (w
opcji Step). Dzięki ostatniemu
z przycisków All użytkownik ma możliwość
sprawdzenia własnej znajomości procesów zachodzących podczas odwołania
procesora do pamięci. (Uwaga: istnieje możliwość zrezygnowania z ciągłego
korzystania z przycisku Step poprzez skorzystanie w dowolnym momencie z
jednego z pozostałych dwóch przycisków).
Korzystanie z przycisku Step
Rysunek 7. Panel rozkazu. Przycisk Step
Najpierw jest pokazany mechanizm segmentacji, czyli translacja adresu logicznego na liniowy. Składa się on z następujących kroków:
· wyświetlenie zawartości rejestru GDTR, zawierającego adres globalnej tablicy deskryptorów GDT oraz wskazanie początku tej tablicy
· wyświetlenie zawartości rejestru LDTR, zawierającego numer deskryptora w tablicy GDT i pokazanie tego deskryptora
· wyświetlenie zawartości wskazanego deskryptora w tablicy GDT, zawierającego adres lokalnej tablicy deskryptorów LDT oraz wskazanie początku tej tablicy
· wyświetlenie zawartości rejestru segmentowego (podanego w rozkazie), który zawiera numer deskryptora w tablicy LDT
Rysunek 21. Panel segmentacji dla kroku wyświetlenia zawartości rejestru segmentowego
· pokazanie zawartości deskryptora w tablicy LDT, zawierającego liniowy adres początku segmentu
· wyświetlenie przesunięcia w obrębie segmentu, podanego przez użytkownika w rozkazie
· zsumowanie wartości początku segmentu oraz przesunięcia w jego obrębie, w celu obliczenia adresu liniowego szukanej komórki pamięci, a następnie wyświetlenie go na ekranie
Rysunek 21. Panel segmentacji dla kroku zsumowania wartości początku segmentu oraz przesunięcia w jego obrębie
Następnie prezentowany jest mechanizm stronicowania, czyli translacji adresu liniowego na fizyczny. Składa się on z następujących kroków:
· wyświetlenie adresu liniowego, uzyskanego w wyniku działania mechanizmu segmentacji
· wyświetlenie zawartości rejestru CR3, zawierającego numer strony w pamięci operacyjnej przechowującej katalog tablic stron i wskazanie początku tej tablicy
· wyodrębnienie z adresu liniowego tej jego części, która zawiera numer elementu w katalogu tablic stron i wskazanie go w tej tablicy
· wyświetlenie zawartości elementu katalogu tablic stron, zawierającego numer strony w pamięci operacyjnej przechowującej tablicę stron i wskazanie początku tej tablicy
· wyodrębnienie z adresu liniowego tej jego części, która zawiera numer elementu w tablicy stron i wskazanie go w tej tablicy
Rysunek 21. Panel stronicowania dla kroku wskazania elementu tablicy stron
· wyświetlenie wartości bitu P elementu tablicy stron. W tym przypadku wynosi on 1, więc strona jest obecna w pamięci operacyjnej. Jednocześnie jest zaznaczana linia tabeli tablicy stron zawierająca element opisujący tą stronę (aby zobaczyć wspomnianą tabelę, należy wybrać w menu: Window, PageTable)
Rysunek 8 Tabela tablicy stron
· wyświetlenie zawartości elementu tablicy stron, zawierającego numer strony w pamięci operacyjnej, w której znajduje się szukana komórka pamięci i zapisanie tego numeru w odpowiadającej mu części adresu
· wyodrębnienie z adresu liniowego tej jego części, która zawiera przesunięcie w obrębie strony i wpisanie go do odpowiedniej części adresu fizycznego na ekranie
Rysunek 21. Panel stronicowania dla kroku dla kroku wyznaczenia przesunięcia w obrębie strony
Następnie rozpoczyna się wizualizacja sposobu funkcjonowania pamięci podręcznej danych, składająca się z następujących kroków:
· wyodrębnienie z adresu fizycznego tej jego części, która zawiera numer linii szukanej komórki pamięci i wskazanie elementu o tym numerze w katalogu bloku 0
· wyświetlenie zawartości wskazanego elementu katalogu 0 i porównanie go z tą częścią adresu fizycznego, która zawiera numer strony
· wartości są różne, więc następuje sprawdzenie, czy szukana dana nie znajduje się w bloku 1. Następuje wyodrębnienie z adresu fizycznego tej jego części, która zawiera numer linii szukanej komórki pamięci i wskazanie elementu o tym numerze w katalogu bloku 1
· wyświetlenie zawartości wskazanego elementu katalogu 1 i porównanie go z tą częścią adresu fizycznego, która zawiera numer strony
Rysunek 21. Panel pamięci podręcznej danych dla kroku porównania zawartości elementu katalogu 1 z numerem strony zawartym w adresie fizycznym
Wartości elementu katalogu 1 i części adresu fizycznego, która zawiera numer strony są różne, więc szukana dana nie znajduje się w pamięci podręcznej. Należy pobrać linię pamięci, w której znajduje się szukana dana, z pamięci operacyjnej. Wizualizacja przechodzi z powrotem do obszaru przedstawiającego mechanizm stronicowania, prezentując następujące kroki:
· wskazanie początku strony, zawierającej szukaną daną, na podstawie numeru strony zawartego we wskazany wcześniej elemencie tablicy stron
Rysunek 9. Panel stronicowania dla kroku wskazania początku strony, zawierającej szukaną daną
· wyodrębnienie z adresu liniowego tej jego części, która zawiera przesunięcie w obrębie strony i wskazanie szukanej danej w wyświetlanej stronie. Jednocześnie jest zaznaczana linia tabeli pamięci operacyjnej, zawierająca linię pamięci, w której znajduje się szukana dana. Linia ta zostanie pobrana do pamięci podręcznej (aby zobaczyć wspomnianą tabelę, należy wybrać w menu: Window, Operating Memory)
Rysunek 10. Tabela pamięci operacyjnej
Następnie na obszarze
prezentującym sposób funkcjonowania pamięci podręcznej danych przedstawiane są następujące kroki:
· wyodrębnienie z adresu fizycznego tej jego części, która zawiera numer linii szukanej komórki pamięci i wyświetlenie bitu LRU związanego z tą linią. Wynosi on 0, wskazując na fakt, że pobrana z pamięci operacyjnej linia powinna zostać zapisana w bloku 0
· pokazanie zapisu w elemencie katalogu bloku 0 numeru strony pobranej z pamięci operacyjnej
· pokazanie linii pamięci zapisywanej w bloku 0. Jednocześnie jest zaznaczana linia tabeli pamięci podręcznej, zawierająca linię pamięci, w której znajduje się szukana dana (aby zobaczyć wspomnianą tabelę, należy wybrać w menu: Window, Cache Memory)
· wyodrębnienie z adresu fizycznego tych jego części, które zawierają numer linii oraz numer dwusłowa i wskazanie na ich podstawie dwusłowa w bloku 0, zawierającego szukaną komórkę
· wyświetlenie zawartości wskazanego dwusłowa na ekranie
Rysunek 21. Panel pamięci podręcznej danych dla kroku wyświetlenia zawartości wskazanego słowa
· zapisania pobranej z pamięci wartości, do rejestru AH (EAX)
Rysunek 11. Tabela rejestrów dla kroku zapisania danej do rejestru
· zakończenie wizualizacji
Rysunek 12. Okno główne wizualizacji
Korzystanie
z przycisku Play
Rysunek 13. Panel rozkazu. Przycisk Play
Użytkownik, który skorzysta z przycisku Play zobaczy wszystkie
kolejne kroki pokazywane w odstępach jednosekundowych.
Korzystanie
z przycisku All
Rysunek 14. Panel rozkazu. Przycisk All
Użytkownik, który skorzysta z opcji All zobaczy jedynie końcowy
efekt działania wizualizacji i będzie miał możliwość obejrzenia zawartości
wszystkich.
Przykład ten
przedstawia sytuację, w której wpisany rozkaz jest niepoprawny.
Po uruchomieniu
systemu wizualizacji, należy wpisać niepoprawny, lub nieobsługiwany przez
system wizualizacji, rozkaz (np.: MOV KD, DS:15H) w pole rozkazu.
Rysunek
15. Panel rozkazu dla
niepoprawnej treści rozkazu
W wyniku
naciśnięcia przycisku Execute zostanie wyświetlony komunikat, informujący o błędnej treści
rozkazu (pierwszego argumentu).
Rysunek
16. Komunikat informujący o
błędnej treści rozkazu
Przykład ten przedstawia sytuację, w której:
·
wpisany
rozkaz jest poprawny
·
strona
z szukaną daną nie jest obecna w pamięci operacyjnej
·
linia
z szukaną daną nie jest zapisana w pamięci podręcznej danych
W przykładzie tym, po uruchomieniu systemu wizualizacji, należy wpisać rozkaz MOV CL, CS:3106H w pole rozkazu.
Rozpoczyna się wizualizacja. Najpierw jest pokazany mechanizm segmentacji, którego wizualizacja przebiega podobnie jak w przykładzie 1:
· wyświetlenie zawartości rejestru GDTR, zawierającego adres globalnej tablicy deskryptorów GDT oraz wskazanie początku tej tablicy
· wyświetlenie zawartości rejestru LDTR, zawierającego numer deskryptora w tablicy GDT i pokazanie tego deskryptora
· wyświetlenie zawartości wskazanego deskryptora w tablicy GDT, zawierającego adres lokalnej tablicy deskryptorów LDT oraz wskazanie początku tej tablicy
· wyświetlenie zawartości rejestru segmentowego (podanego w rozkazie), który zawiera numer deskryptora w tablicy LDT
· pokazanie zawartości deskryptora w tablicy LDT, zawierającego liniowy adres początku segmentu
· wyświetlenie przesunięcia w obrębie segmentu, podanego przez użytkownika w rozkazie
· zsumowanie wartości początku segmentu oraz przesunięcia w jego obrębie, w celu obliczenia adresu liniowego szukanej komórki pamięci, a następnie wyświetlenie go na ekranie
Rysunek 21. Panel segmentacji
Następnie prezentowany jest mechanizm stronicowania. Warto zauważyć, że przebiega on inaczej niż w przykładzie 1 i składa się z następujących kroków:
· wyświetlenie adresu liniowego, uzyskanego w wyniku działania mechanizmu segmentacji
· wyświetlenie zawartości rejestru CR3, zawierającego numer strony w pamięci operacyjnej przechowującej katalog tablic stron i wskazanie początku tej tablicy
· wyodrębnienie z adresu liniowego tej jego części, która zawiera numer elementu w katalogu tablic stron i wskazanie go w tej tablicy
· wyświetlenie zawartości elementu katalogu tablic stron, zawierającego numer strony w pamięci operacyjnej przechowującej tablicę stron i wskazanie początku tej tablicy
· wyodrębnienie z adresu liniowego tej jego części, która zawiera numer elementu w tablicy stron i wskazanie go w tej tablicy
· wyświetlenie wartości bitu P elementu tablicy stron; w tym przypadku wynosi 0, więc strona nie jest obecna w pamięci operacyjnej. Zostaje uruchomiony, wybrany w menu Algorithm, algorytm usuwania stron z pamięci operacyjnej (LRU lub LFU), który znajduje zapisaną w pamięci operacyjnej stronę, która zgodnie z regułą danego algorytmu, ma najmniejsze prawdopodobieństw, że w najbliższym czasie będzie potrzebna. Wybrana strona zostaje usunięta z pamięci operacyjnej (jeśli był na niej wykonany zapis, to zostaje zapisana w pamięci masowej), a na jej miejsce sprowadzana jest z pamięci masowej potrzebna strona.
Rysunek 17. Panel stronicowania dla kroku sprawdzenia wartości bitu P elementu tablicy stron
Jednocześnie zaznaczane są elementy tabeli tablicy stron, opisujące stronę usuniętą (6H) z pamięci operacyjnej oraz stronę sprowadzoną (7H) na jej miejsce z pamięci masowej (aby zobaczyć wspomnianą tabelę, należy wybrać w menu: Window, Page Table)
Rysunek 18. Tabela tablicy stron, z zaznaczonymi elementami opisującymi stronę usuniętą z pamięci operacyjnej i stronę sprowadzoną na jej miejsce z pamięci masowej
· wyświetlenie zawartości elementu tablicy stron, zawierającego numer strony w pamięci operacyjnej, w której znajduje się szukana komórka pamięci i zapisanie tego numeru w odpowiadającej mu części adresu
· wyodrębnienie z adresu liniowego tej jego części, która zawiera przesunięcie w obrębie strony i wpisanie go do odpowiedniej części adresu fizycznego na ekranie
Rysunek 21. Panel stronicowania
Następnie rozpoczyna się wizualizacja sposobu funkcjonowania pamięci podręcznej danych, składająca się z następujących kroków:
· wyodrębnienie z adresu fizycznego tej jego części, która zawiera numer linii szukanej komórki pamięci i wskazanie elementu o tym numerze w katalogu bloku 0
· wyświetlenie zawartości wskazanego elementu katalogu 0 i porównanie go z tą częścią adresu fizycznego, która zawiera numer strony
· wartości są różne, więc następuje sprawdzenie, czy szukana dana nie znajduje się w bloku 1. Następuje wyodrębnienie z adresu fizycznego tej jego części, która zawiera numer linii szukanej komórki pamięci i wskazanie elementu o tym numerze w katalogu bloku 1
· wyświetlenie zawartości wskazanego elementu katalogu 1 i porównanie go z tą częścią adresu fizycznego, która zawiera numer strony
Rysunek 21. Panel pamięci podręcznej danych dla kroku porównania zawartości elementu katalogu 1 z numerem strony zawartym w adresie fizycznym
Wartości elementu katalogu 1 oraz części adresu fizycznego, która zawiera numer strony są różne, więc szukana dana nie znajduje się w pamięci podręcznej. Należy pobrać linię pamięci, w której znajduje się szukana dana, z pamięci operacyjnej. Wizualizacja przechodzi z powrotem do obszaru przedstawiającego mechanizm stronicowania, prezentując następujące kroki:
· wskazanie początku strony, zawierającej szukaną daną, na podstawie numeru strony zawartego we wskazany wcześniej elemencie tablicy stron
· wyodrębnienie z adresu liniowego tej jego części, która zawiera przesunięcie w obrębie strony i wskazanie szukanej danej w wyświetlanej stronie. Jednocześnie jest zaznaczana linia tabeli pamięci operacyjnej, zawierająca linię pamięci, w której znajduje się szukana dana. Linia ta zostanie pobrana do pamięci podręcznej
Następnie na obszarze prezentującym sposób funkcjonowania pamięci
podręcznej danych przedstawiane są
następujące kroki:
· wyodrębnienie z adresu fizycznego tej jego części, która zawiera numer linii szukanej komórki pamięci i wyświetlenie bitu LRU związanego z tą linią. Wynosi on 0, wskazując na fakt, że pobrana z pamięci operacyjnej linia powinna zostać zapisana w bloku 0
· pokazanie zapisu w elemencie katalogu bloku 0 numeru strony pobranej z pamięci operacyjnej
· pokazanie linii pamięci zapisywanej w bloku 0. Jednocześnie jest zaznaczana linia tabeli pamięci podręcznej, zawierająca linię pamięci, w której znajduje się szukana dana (aby zobaczyć wspomnianą tabelę, należy wybrać w menu: Window, Cache Memory)
· wyodrębnienie z adresu fizycznego tych jego części, które zawierają numer linii oraz numer dwusłowa i wskazanie na ich podstawie dwusłowa w bloku 0, zawierającego szukaną komórkę
Rysunek 19. Panel pamięci podręcznej dla kroku wskazywania dwusłowa zawierającego szukaną daną
· wyświetlenie zawartości wskazanego dwusłowa na ekranie
· zapisania pobranej z pamięci wartości, do rejestru CL (ECX)
Rysunek 20. Tabela rejestrów dla kroku zapisania danej do rejestru
· zakończenie wizualizacji
Rysunek 21. Okno główne wizualizacji