WSPOMAGANIE NAUCZANIA PRZEDMIOTU ALGORYTMY I STRUKTURY DANYCH Z WYKORZYSTANIEM SYMULATORA MASZYNY RAM. Piotr Miszczak, Wojciech Kozioł

Podobne dokumenty
1.2 Schemat blokowy oraz opis sygnałów wejściowych i wyjściowych

2. Architektura mikrokontrolerów PIC16F8x... 13

Wstęp do informatyki. Maszyna RAM. Schemat logiczny komputera. Maszyna RAM. RAM: szczegóły. Realizacja algorytmu przez komputer

Technika mikroprocesorowa. W. Daca, Politechnika Szczecińska, Wydział Elektryczny, 2007/08

Struktura i działanie jednostki centralnej

WPROWADZENIE Mikrosterownik mikrokontrolery

Architektura komputera. Cezary Bolek. Uniwersytet Łódzki. Wydział Zarządzania. Katedra Informatyki. System komputerowy

MIKROKONTROLERY I MIKROPROCESORY

Magistrala systemowa (System Bus)

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

Systemy operacyjne i sieci komputerowe Szymon Wilk Superkomputery 1

Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780

System mikroprocesorowy i peryferia. Dariusz Chaberski

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

Organizacja typowego mikroprocesora

Wstęp do informatyki. System komputerowy. Magistrala systemowa. Architektura komputera. Cezary Bolek

Programowanie Mikrokontrolerów

Programowanie w językach asemblera i C

Architektura systemów komputerowych Laboratorium 14 Symulator SMS32 Implementacja algorytmów

Systemy Wbudowane. Założenia i cele przedmiotu: Określenie przedmiotów wprowadzających wraz z wymaganiami wstępnymi: Opis form zajęć

Architektura komputera

CPU ROM, RAM. Rejestry procesora. We/Wy. Cezary Bolek Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki

Pośredniczy we współpracy pomiędzy procesorem a urządzeniem we/wy. W szczególności do jego zadań należy:

Techniki mikroprocesorowe i systemy wbudowane

Architektura komputerów. Układy wejścia-wyjścia komputera

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja. do ćwiczeń laboratoryjnych z przedmiotu: SYSTEMY CYFROWE 1.

UTK ARCHITEKTURA PROCESORÓW 80386/ Budowa procesora Struktura wewnętrzna logiczna procesora 80386

Opis procedur asemblera AVR

Schemat blokowy procesora rdzeniowego ATmega16. Głównym zadaniem JC jest zapewnienie poprawnego i szybkiego wykonywania programu.

Logiczny model komputera i działanie procesora. Część 1.

Temat: Pamięci. Programowalne struktury logiczne.

LEKCJA TEMAT: Zasada działania komputera.

Architektura typu Single-Cycle

Mikroprocesor Operacje wejścia / wyjścia

Laboratorium 1: Wprowadzenie do środowiska programowego. oraz podstawowe operacje na rejestrach i komórkach pamięci

PROJEKT I OPTYMALIZACJA STRUKTURY LOGICZNEJ DYDAKTYCZNEGO SYSTEMU MIKROPROCESOROWEGO DLA LABORATORIUM PROJEKTOWANIA ZINTEGROWANEGO

Komputer IBM PC niezależnie od modelu składa się z: Jednostki centralnej czyli właściwego komputera Monitora Klawiatury

Kurs Zaawansowany S7. Spis treści. Dzień 1

Budowa i zasada działania komputera. dr Artur Bartoszewski

Architektura komputerów

Ćwiczenie 5 Zegar czasu rzeczywistego na mikrokontrolerze AT90S8515

Zagadnienia zaliczeniowe z przedmiotu Układy i systemy mikroprocesorowe elektronika i telekomunikacja, stacjonarne zawodowe

1. Wprowadzenie Programowanie mikrokontrolerów Sprzęt i oprogramowanie... 33

Modułowy programowalny przekaźnik czasowy firmy Aniro.

Architektura komputerów

INFORMATYKA W SZKOLE. Podyplomowe Studia Pedagogiczne. Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227

Opracował: Jan Front

Technika Mikroprocesorowa

Wizualizacja stanu czujników robota mobilnego. Sprawozdanie z wykonania projektu.

dokument DOK wersja 1.0

Język programowania: Lista instrukcji (IL Instruction List)

Wstęp Architektura... 13

Liczniki, rejestry lab. 08 Mikrokontrolery WSTĘP

Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami

ARCHITEKTURA PROCESORA,

Spis treúci. Księgarnia PWN: Krzysztof Wojtuszkiewicz - Urządzenia techniki komputerowej. Cz. 1. Przedmowa Wstęp... 11

Wykład II. Pamięci operacyjne. Studia stacjonarne Pedagogika Budowa i zasada działania komputera

43 Pamięci półprzewodnikowe w technice mikroprocesorowej - rodzaje, charakterystyka, zastosowania

Procesor ma architekturę rejestrową L/S. Wskaż rozkazy spoza listy tego procesora. bgt Rx, Ry, offset nand Rx, Ry, A add Rx, #1, Rz store Rx, [Rz]

Mikrokontrolery czyli o czym to będzie...

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

Przykładowe pytania DSP 1

Architektura systemów komputerowych Laboratorium 8 Symulator SMS32 Instrukcje skoku i pętle

Szkolenia specjalistyczne

KARTA PRZEDMIOTU. Egzamin / zaliczenie na ocenę*

Wykład Mikroprocesory i kontrolery

1. Informatyka - dyscyplina naukowa i techniczna zajmująca się przetwarzaniem informacji.

Języki formalne i techniki translacji

Cyfrowe układy scalone

Budowa komputera Komputer computer computare

PAMIĘCI. Część 1. Przygotował: Ryszard Kijanka

Alfanumeryczny wyświetlacz LCD

Lista rozkazów mikrokontrolera 8051

Mikrokontroler ATmega32. Język symboliczny

Architektura komputerów. Asembler procesorów rodziny x86

Podstawy Techniki Mikroprocesorowej

Kurs Podstawowy S7. Spis treści. Dzień 1

Podstawy działania i programowania procesorów. 1. Architektura emulatora maszyny RAM

Wstęp do informatyki. Interfejsy, urządzenia we/wy i komunikacja. Linie magistrali

Architektura komputera. Dane i rozkazy przechowywane są w tej samej pamięci umożliwiającej zapis i odczyt

Cyfrowe układy scalone

Kurs STARTER S5. Spis treści. Dzień 1. III Budowa wewnętrzna, działanie i obsługa sterownika (wersja 0504)

Bramki logiczne Podstawowe składniki wszystkich układów logicznych

Technologia informacyjna. Urządzenia techniki komputerowej

Architektura systemu komputerowego

Elementy składowe systemu komputerowego

Komputer. Komputer (computer) jest to urządzenie elektroniczne służące do zbierania, przechowywania, przetwarzania i wizualizacji informacji

KARTA PRZEDMIOTU. Programowanie niskopoziomowe, C2. Low Level Programming Informatyka

A Machine Architecture that is Really Intuitive and Easy. Dane: notacja dwójkowa, zapis w kodzie dopełnieniowym

1. Podstawowe wiadomości Możliwości sprzętowe Połączenia elektryczne Elementy funkcjonalne programów...

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Mikroprocesory i mikrosterowniki

PROGRAMOWALNE STEROWNIKI LOGICZNE

Kurs SIMATIC S7-300/400 i TIA Portal - Podstawowy. Spis treści. Dzień 1. I System SIEMENS SIMATIC S7 - wprowadzenie (wersja 1503)

RODZAJE PAMIĘCI RAM. Cz. 1

Adresowanie obiektów. Adresowanie bitów. Adresowanie bajtów i słów. Adresowanie bajtów i słów. Adresowanie timerów i liczników. Adresowanie timerów

Podstawy Informatyki JA-L i Pamięci

ICD Wprowadzenie. Wprowadzenie. Czym jest In-Circuit Debugger? 2. O poradniku 3. Gdzie szukać dodatkowych informacji? 4

Transkrypt:

WSPOMAGANIE NAUCZANIA PRZEDMIOTU ALGORYTMY I STRUKTURY DANYCH Z WYKORZYSTANIEM SYMULATORA MASZYNY RAM Piotr Miszczak, Wojciech Kozioł Państwowa Wyższa Szkoła Zawodowa w Krośnie Opiekun naukowy: dr hab. inż. Barbara Dębska, prof. PWSZ w Krośnie. Współpraca: mgr inż. Agnieszka Kubacka. Streszczenie: Artykuł ten prezentuje budowę maszyny RAM. Zawiera on wprowadzenie teoretyczne opisujące podstawowe założenia modelu, opis symulatora w postaci urządzenia elektronicznego oraz programu komputerowego. Zarówno symulator jak i program komputerowy dają możliwość pisania programów realizujących proste algorytmy za pomocą komend tejże maszyny. Abstract: This article shows construction of The RAM machine. It includes teoretic introcduction which describes the basic guidelines of model, the description of simulator which has form of an electric device and computer program.both simulator and computer program have a possibility to write programs which execute simple algorithms by means of the machine commands

Opis modelu teoretycznego 1. Wprowadzenie Maszyna RAM jest modelem ze swobodnym dostępem do pamięci (RAM Random Access Machine) - oznacza to, że wykonujący się program ma bezpośredni dostęp do każdej komórki tejże pamięci. Maszyna ta jest jednym z modeli obliczeń. Od modelu zależy zestaw dostępnych komend, które możemy użyć do napisania programu realizującego algorytm. 2. Budowa Maszyna RAM składa się z następujących elementów: taśmy wejściowej z której dane są tylko czytane, taśmy wyjściowej na którą dane są tylko zapisywane, pamięci w postaci zbioru rejestrów. Taśma wyjściowa Licznik rozkazów Program R0 R1 R2 R3... Rn Pamię Taśma wejściowa Rys. 1. Schemat maszyny (modelu) RAM Taśma wejściowa ma postać ciągu klatek. Każda klatka może zawierać liczbę całkowitą. Taśma wyjściowa również zawiera ciąg klatek. Na początku są one puste. Pamięć składa się z rejestrów R0, R1, R2, R3,..., Rn. Każdy z nich może przechowywać dowolną liczbę całkowitą. Liczba rejestrów nie ma górnego ograniczenia. Rejestr R0 jest nazywany sumatorem, w nim prowadzone są obliczenia. Program maszyny RAM stanowi ciąg poleceń (komend). Mogą być one poprzedzone etykietą. Licznik rozkazów zawiera numer kolejnego rozkazu do wykonania. 123

3. Programowanie w języku maszyny RAM W modelu RAM dostępne są komendy: arytmetyczne wejścia/wyjścia skoku bezwarunkowego i warunkowego Zestaw komend maszyny RAM zawiera Tabela 1. Komenda LOAD a STORE i STORE *i ADD a SUB a MULT a DIV a READ i READ *i WRITE a JUMP b JGTZ b JZERO b HALT Opis działania załadowanie wartości operandu a do rejestru R0 (sumatora) umieszczenie zawartości sumatora w rejestrze o numerze i umieszczenie zawartości sumatora w rejestrze znajdującym się pod adresem pośrednim suma zawartości rejestru R0 (sumatora) i wartości operandu a ; wynik zapisywany jest do sumatora różnica zawartości rejestru R0 (sumatora) i wartości operandu a ; wynik zapisywany jest do sumatora iloczyn zawartości rejestru R0 (sumatora) i wartości operandu a ; wynik zapisywany jest do sumatora iloraz zawartości rejestru R0 (sumatora) i wartości operandu a ; wynik zapisywany jest do sumatora wczytanie zawartości kolejnej klatki taśmy wejściowej do rejestru o numerze i wczytanie zawartości kolejnej klatki taśmy wejściowej do rejestru pod adresem pośrednim zapis wartości (zawartości) operandu a tej klatki taśmy wyjściowej, przy której aktualnie znajduje się głowica skok bezwarunkowy, licznik rozkazów jest ustawiany na komendę z etykietą b jeśli zawartość sumatora jest większa od zera, to licznik rozkazów jest ustawiany na komendę z etykietą b; w przeciwnym razie na komendę następną jeżeli w sumatorze jest wartość zero, to licznik rozkazów ustawiany jest na komendę z etykietą b; natomiast w przeciwnym razie na komendę następną zatrzymanie programu Tabela 1.Zestaw komend maszyny RAM Operand a może być typu: = i liczba całkowita i, tego typu operand jest nazywany literałem; i zawartość rejestru o numerze i ( i nie może być liczbą ujemną ); * i adresacja pośrednia, wartość operandu stanowi tutaj zawartość rejestru j, gdzie j jest liczbą nieujemną przechowywaną w rejestrze i. Przykładowy program sumuje wczytywane liczby do momentu wprowadzenia wartości zero. Po wprowadzeniu zera następuje wypisanie wartości sumy i wyjście z programu. 124

algorytm START S = 0 Wczytaj n n = 0 T N S = S+n Wypisz S STOP program realizujący powyższy algorytm Etykieta Komenda Adres Komentarz LOAD =0 ;Załadowanie wartości zero do sumatora STORE 2 ;I umieszczenie go w R2 sumuj: READ 1 ;Wczytanie liczby n do rejestru 1 LOAD 1 ;Załadowanie n do sumatora JZERO koniec ;Jeśli n = 0, to skocz do etykiety koniec LOAD 2 ;Jeśli nie, to załaduj S do sumatora ADD 1 ;Wykonanie operacji S + n STORE 2 ;Wynik umieszczony jest w R2 JUMP sumuj ;Dodanie do sumy następnej liczby n koniec: WRITE 2 ;Wypisanie zawartości rejestru R2 HALT ;Koniec programu W programie wykorzystywane są rejestry: R0 sumator R1 rejestr zawierający liczbę n R2 rejestr zawierający sumę S Wersja sprzętowa w postaci symulatora 125

Budowa urządzenia Budowę symulatora przedstawia Rys.2. Urządzenie to zawiera cztery główne moduły. MODUŁ WYŚŚWIIETLACZY LCD MODUŁ MIIKROKONTROLERA MODUŁ PAMIIĘCII MODUŁ KLAWIIATURY Rys. 2. Schemat blokowy symulatora Moduły symulatora są opisane w kolejnych punktach. Moduł mikrokontrolera Mikrokontroler jest mikrokomputerem jednoukładowym, to znaczy, że w jednym układzie scalonym znajdują się wszystkie elementy kompletnego komputera. W chwili pisania artykułu w module tym zastosowany jest mikrokontroler 8051 rodziny MCS 51. W układzie scalonym 8051 zawarto: rdzeń mikroprocesora CPU z 8-bitową jednostką arytmetyczno-logiczną (ALU); pamięć typu ROM, w której zawarty jest program działania mikrokontrolera; pamięć typu RAM jest to tzw. pamięć danych; uniwersalne dwukierunkowe porty wejścia/wyjścia, służące do komunikacji z peryferiami poprzez zapisywanie jak i odczyt przez nie danych cyfrowych ; programowany szeregowy port transmisji dwukierunkowej ; 126

układ wewnętrznego oscylatora, który ogranicza do minimum konieczność stosowania zewnętrznych elementów do pojedynczego rezonatora kwarcowego oraz dwóch kondensatorów ceramicznych; dwa uniwersalne liczniki/timery; układ generowania przerwań systemowych, zawierający także możliwość generowania przerwań zewnętrznych. Moduł pamięci Mikrokontroler 8051 daje możliwość dołączenia zewnętrznej pamięci o łącznej pojemności 64kB. W tym konkretnym przypadku układowym przestrzeń adresowa podzielona jest na dwa 32kB bloki. Pierwszy z nich stanowi pamięć programu sterującego pracą mikrokontrolera. Adresy tej pamięci należą do przedziału od 0000h do 7FFFh. Jako pamięć programu może być zastosowana pamięć typu: EPROM (Erasable Programmable ROM) pamięć z możliwością kasowania dotychczasowej zawartości promieniami ultrafioletowymi i programowania nowej zawartości za pomocą zewnętrznego programatora. Flash - jest nowym typem pamięci elektronicznej kasowanej elektrycznie. Drugi blok to pamięć na program maszyny RAM. Pamięć ta jest obsługiwana w zakresie adresów od 8000h do FFFFh. Blok ten zrealizowany jest w oparciu o pamięć SRAM (Static Random Access Memory) pamięć statyczna RAM. Moduł klawiatury Moduł ten składa się z dwóch zasadniczych części: klawiatury matrycowej; kontrolera, który jest pewnego rodzaju pomostem pomiędzy klawiaturą matrycową a resztą systemu. Przedstawia to Rys.3. Kod znaku KONTROLER KLAWIIATURA MATRYCOWA Rys. 3. Budowa modułu klawiatury Kontroler przegląda stan klawiatury i w oparciu o wynik przeglądania wysyła odpowiedni kod do głównego mikrokontrolera oraz do modułu wyświetlaczy LCD. Rolę kontrolera klawiatury pełni mikrokontroler rodziny AVR ATMEGA8515 127

Moduł wyświetlaczy LCD W skład tego modułu wchodzą cztery alfanumeryczne wyświetlacze LCD. Wyświetlają one odpowiednio: Kod programu Zawartość rejestrów Zawartość klatek taśmy wejściowej Zawartość klatek taśmy wyjściowej Wyświetlacz LCD oprócz pola odczytowego zawiera moduł sterujący. W skład takiego modułu wchodzi specjalizowany układ scalony nazywany kontrolerem sterującym wyświetlacza (lub inaczej sterownikiem). Sterownik Hd44780 zawiera: CG ROM (ang. Chracter Generator ROM) - generator znaków. Fizycznie jest to wbudowana w strukturę sterownika Hd44780 pamięć typu ROM z umieszczonymi kombinacjami zgaszonych i zapalonych kropek w matrycy znaku. Dlatego podając tylko kod danej litery lub symbolu, wybiera się z CG ROM konkretny układ matrycy tej litery. CG RAM (ang. Chracter Generator RAM) - pamięć generatora znaków użytkownika. Pamięć ta przechowuje informację o utworzonych znakach użytkownika (użytkownik może zdefiniować 8 własnych znaków, tyle właśnie może pomieścić pamięć CG RAM). DD RAM (ang. Display Data RAM) - pamięć wyświetlania. Obszar pamięci DD RAM stanowi bufor wyświetlacza. Niezależnie od rodzaju wyświetlacza, a w zasadzie od jego wielkości, czyli ilości znaków w wierszu i ilości linii (wierszy), pojemność DD RAM jest zawsze taka sama i wynosi 80 znaków (80 bajtów). Dlatego maksymalnie jednocześnie można zapisać do modułu wyświetlacza 80-znakową informację. Chcąc wyświetlić znak należy go umieścić(jego kod) w buforze wyświetlacza, (czyli w DD RAM) poprzez szynę danych (linie D0... D7). Wersja programowa Wersja ta podobnie jak i sprzętowa symuluje działanie maszyny RAM. Kod napisany został w języku C w środowisku Lcc przy użyciu funkcji WinApi. Program składa się z dwóch części: Pierwsza z nich zawiera edytor do wpisania kodu wykonywanego na maszynie oraz listy ewentualnych błędów podczas interpretacji wpisanego w edytorze kodu. 128

Rys. 4. Okno edytora kodu Druga część przedstawia maszynę RAM, która zawiera taśmy wejściową i wyjściową, zbiór rejestrów, pole oraz numer aktualnie wykonywanego rozkazu. W tym oknie symulowane jest działanie maszyny RAM według kodu napisanego w edytorze. Pasek narzędziowy oprócz standardowych narzędzi zawiera dwa dodatkowe przyciski, które obsługują działanie maszyny RAM. Przycisk PLAY wywołuje funkcję interpretacji kodu napisanego w edytorze oraz przechodzi do okna symulatora maszyny, jeśli nie wystąpił żaden błąd. Program jest wykonywany. Drugi przycisk realizuje powrót do edytora kodu w celu wprowadzania zmian w programie. W najbliższej przyszłości planuje się dodać debugger, który będzie realizował pracę krokową oraz możliwość ustawienia dowolnej wartości opóźnienia w celu ułatwienia podglądnięcia wykonywanego programu w czasie jego pracy. Zostanie również zmieniona okładka graficzna programu, gdyż w tej chwili jest on w stanie surowym. Autorzy chcą też dodać algorytm obliczania złożoności czasowych i pamięciowych wykonywanego programu. Użytkownik pracujący na maszynie RAM będzie miał możliwość sam wprowadzić obliczone przez siebie złożoności w celu porównania ich ze złożonościami obliczonymi przez program automatycznie. 129

Rys. 5.Maszyna RAM w trakcie wykonywania programu Plany na przyszłość: W przyszłości planujemy dalszą rozbudowę symulatora zarówno w wersji sprzętowej jak i programowej. W części programowej rozbudowa zmierzać będzie w kierunku dodania możliwości automatycznego obliczania złożoności czasowych i pamięciowych. W części sprzętowej dodawane będą kolejne moduły odpowiedzialne za różne funkcje. Całość projektu rozwijać się będzie pod kątem dydaktycznym, aby finalna jego wersja stanowiła jak najlepszą pomoc dla studentów w celu lepszego zrozumienia algorytmów i ich złożoności oraz ułatwić pracę ludziom prowadzącym zajęcia z tego przedmiotu. Szczególne podziękowania kierujemy w stronę: dr hab. inż. Barbary Dębskiej, prof. PWSZ za pomoc naukową, wszelkie rady i konsultacje. mgr inż. Agnieszki Kubackiej za współpracę przy tworzeniu projektu. Literatura: [1] Alfred V. Aho, John E. Hopcroft, Jeffrey D. Ullman Projektowanie i analiza algorytmów, Wydawnictwo Helion [2] Wojciech Głocki Układy cyfrowe, Wydawnictwa Szkolne i Pedagogiczne, Warszawa 1998 130

[3] Andrzej Rydzewski Mikrokomputery jednoukładowe rodziny MCS 51, Warszawa Wydawnictwa Naukowo Techniczne. [4] Mariusz Zaleski, Application Programming Interface Win 32 Api 2004 [5] Dokumentacja dołączona ze środowiskiem języka Lcc. [6] http://www.atmel.com - strona producenta mikrokontrolerów AVR. 131