Architektura systemów komputerowych Sławomir Mamica Wykład 1: Technikalia http://main5.amu.edu.pl/~zfp/sm/home.html
Plan a) O przedmiocie b) O systemie DSM-51 c) O mikrokontrolerze 8051 d) O asemblerze e) O emulatorze
O przedmiocie http://main5.amu.edu.pl/~zfp/sm/home.html
Architektura? Albo organizacja. Przykłady: Organizacja listy rozkazów: CISC vs. RISC. Organizacja pamięci: von Neuman vs. Harvard. Organizacja komunikacji: szyna systemowa. Mikroarchitektura procesora
Dwie architektury Harvard rozdzielenie pamięci danych i programu Von Neumana wspólna pamięć danych i programu
Architektura zbioru rozkazów Organizacja listy rozkazów (model programowy procesora, ang. Instruction Set Architecture): CISC (ang. Complex Instruction Set Computer), RISC (ang. Reduced Instruction Set Computer), VLIW (ang. Very Long Instruction Word), MISC (ang. Minimal Instruction Set Computer), ZISC (ang. Zero Instruction Set Computer). Mikroarchitektura procesora (ang. microarchitecture) wewnętrzna, sprzętowa implementacja danego modelu programowego, określająca sposób wykonywania operacji przez procesor, szczegółową budowę wewnętrzną procesora itd.
Dwie architektury CISC RISC Występowanie wielu złożonych, specjalistycznych rozkazów, których wykonanie zajmuje od kilku do kilkunastu cykli zegara. (Ich liczba sięga setek.) Szeroka gama trybów adresowania. Rozkazy mogą odwoływać się bezpośrednio na pamięci. Powyższe cechy powodują, iż dekoder rozkazów jest skomplikowany. Istotą architektury CISC jest to, iż pojedynczy rozkaz mikroprocesora wykonuje wiele operacji niskiego poziomu. Liczba rozkazów zredukowana do niezbędnego minimum (zwykle kilkadziesiąt), co znacznie upraszcza dekoder rozkazów. Redukcja trybów adresowania, dzięki czemu kody rozkazów są prostsze, bardziej zunifikowane. Ograniczenie komunikacji pomiędzy pamięcią a procesorem. Komunikacja z pamięcią tylko z pomocą dedykowanych instrukcji. Pozostałe instrukcje mogą pracować wyłącznie na rejestrach. Zwiększenie liczby rejestrów, co ma wpływ na zmniejszenie liczby odwołań do pamięci.
Dwie architektury CISC Procesor: 8051 Platforma: DSM-51 RISC Procesor: ARM Platforma: Raspberry Pi
Struktura zajęć Wykład: środa, 14:45-16:15, Audytorium Wschodnie Egzamin: Jeden z całości (8051 + Raspberry Pi) Jakaś pracownia? Nie. (Nie w tym roku.) Pracownia do przedmiotu Systemy Wbudowane (III sem.) składa się z 3 części: z czego jedna oparta jest na 8051, a druga na Raspberry Pi, (trzecia na sterownikach przemysłowych PLC, ale o tym przy innej okazji).
Literatura Podstawowa: Linda Null, Julia Lobur, Struktura organizacyjna i architektura systemów komputerowych, (Helion 2004) Uzupełniająca: Gareth Halfacree, Eben Upton, Raspberry Pi. Przewodnik użytkownika, (Helion 2013) Tomasz Starecki, Mikrokontrolery 8051 w praktyce, (BTC, 2002) Piotr Gałka, Paweł Gałka, Podstawy programowania mikrokontrolera 8051, (PWN 2013)
Na początek 8051 8051 Raspberry Pi Pierwsza połowa semestru
Wykład - 8051 Dr hab. Sławomir Mamica Zakład Fizyki Nanomateriałów, pok. 276, segment G, piętro II tel. 61 829 50 59, mamica@amu.edu.pl Dyżury studenckie: Środa: 11:00-12:00 Czwartek: 10:00-11:00
Materiały dla studentów Z pracowni: http://pec.home.amu.edu.pl/index.php/materialy-dla-studentow Ode mnie: http://main5.amu.edu.pl/~zfp/sm/home.html
Wykład - Raspberry Pi Dr hab. Wojciech Rudziński Zakład Fizyki Mezoskopowej, pok. 13, segment J, parter tel. 61 829 52 87, wojrudz@amu.edu.pl
Pracownia Elektroniki Cyfrowej Zagadnienia realizowane w ramach PEC: Architektura komputerów na przykładzie 8051 Programowanie sterowników przemysłowych (PLC) Projektowanie układów cyfrowych (VHDL)
Droga do celu Cel: Poznanie i zrozumienie architektury systemu komputerowego Droga: Programowanie mikrokontrolera 8051 w asemblerze Narzędzia: Dydaktyczny System Mikroprocesorowy 8051 (DSM-51)
O systemie DSM-51 http://main5.amu.edu.pl/~zfp/sm/home.html
Charakterystyka Możliwość uruchamianie programu z zewnętrznej (z punktu widzenia 8051) pamięci danych Możliwość wielokrotnego ładowania kodu programu użytkownika Współpraca z PC (wygoda programowania) Możliwość wprowadzenia kodu programu użytkownika z klawiatury DSM-51 Liczne układy I/O Możliwość podłączenia dodatkowych modułów zewnętrznych
Zasilanie Widok ogólny
Bezpośrednia komunikacja z użytkownikiem Sygnalizatory: dioda TEST i brzęczyk BUZZER Wyświetlacz LCD Klawiatura matrycowa Wyświetlacz 7-segmentowy + klawiatura przeglądana sekwencyjnie
Komunikacja z układami zewnętrznymi dwa kanały RS232 (COM1 i COM2) zewnętrzna magistrala systemowa wejścia/wyjścia izolowane galwanicznie wejścia/wyjścia cyfrowe wejścia/wyjścia analogowe
Układy sterujące Kontroler przerwań Dekoder adresów Watchdog
Oraz 8051
Praca z DSM-51 1. Napisać program w asemblerze Narzędzie: dowolny edytor plików tekstowych Plik wyjściowy: plik tekstowy (*.asm) 2. Dokonać asemblacji Narzędzie: dsm51ass Plik wejściowy: kod asemblerowy (*.asm) Pliki wyjściowe: program wynikowy (*.hex), listing (*.lst) 3. Przesłać program wynikowy do systemu DSM-51 Narzędzie: dsm51run lub DSM51 Plik wejściowy: program w kodzie maszynowym (*.hex), Dostępność PEC: Program assemblera 8051 dla systemu DSM-51
Monitor: DSM51.exe Możliwa praca krokowa uruchamianego programu z jednoczesnym śledzeniem zawartości rejestrów mikrokontrolera na ekranie komputera. (Plik *.hex!)
O mikrokontrolerze 8051 http://main5.amu.edu.pl/~zfp/sm/home.html
µ-procesor µ-komputer 3 x µ (zwany potocznie procesorem) układ logiczny wykonany jako pojedynczy układ scalony o wielkim stopniu integracji zdolny do wykonywania operacji logicznych według dostarczonego ciągu instrukcji. Mikroprocesor odpowiada za wykonanie większości obliczeń matematycznych i logicznych oraz operacji przetwarzania danych. komputer o niewielkich rozmiarach, z pojedynczym mikroprocesorem, pracujący oddzielnie lub jako jeden z elementów złożonego układu. Podstawowymi elementami mikrokomputera są: mikroprocesor, układy wejściawyjścia, pamięć, połączone ze sobą i komunikują się przez szynę sterującą, szynę adresową i szynę danych. µ-kontroler mikrokomputer jednoukładowy
Schemat mikrokontrolera Jarosław W. Kłos, Architektura komputerów i programowanie niskopoziomowe, Skrypt
Porty 8051 (I/O) Cztery rejestry specjale P0.. P3 adresowalne bitowo. P1 służy do bezpośredniej wymiany danych. Na portach P0 i P2 zbudowana jest zewnętrzna magistrala danych i zewnętrzna magistrala adresowa mikrokontrolera. Port P3 wykorzystywany jest do wymiany kilku sygnałów sterujących pracą zewnętrznych magistrali oraz sygnałów przerwań. Pozostałe końcówki portu P3 używane są przez układy licznikowe oraz port szeregowy. Jeśli porty P0, P2 i P3 nie są wykorzystywane do wyżej wymienionych celów mogą służyć do bezpośredniej wymiany danych tak jak port P1.
W systemie DSM-51 P1.4 Watchdog P1.5 Brzęczyk P1.6 Wyświetlacz 7-segmentowy P1.7 Dioda TEST UWAGA! 1 wyłącza, a 0 włącza urządzenie
Schemat mikroprocesora Jarosław W. Kłos, Architektura komputerów i programowanie niskopoziomowe, Skrypt
Rejestry Rejestry to komórki pamięci wbudowane w procesor. Charakteryzują się bardzo szybkim dostępem. Wyróżniamy rejestry specjalne oraz ogólnego przeznaczenia. Niektóre rejestry są niedostępne programowo. Długość rejestrów definiuje, na jakich liczbach operuje procesor (np. w procesorze 64-bitowym długość rejestru to 64 bity). W konsekwencji także ilość pamięci, jaką można zaadresować. Mikrokontroler 8051 posiada procesor 8-bitowy.
Rejestry 8051 Rejestry ogólnego przeznaczenia R0 R7 Rejestry specjalne: A (ACC) akumulator B akumulator pomocniczy PSW rejestr stanu PC licznik rozkazów IR rejestr rozkazów SP wskaźnik stosu DPTR wskaźnik danych, 16-bitowy, DPH + DPL MAR, MBR bufory adresów i danych IE, IP rejestry maski oraz priorytetów przerwań
Dlaczego 8051? Mikrokontroler kompletny system mikroprocesorowy Architektura mieszana (dwa w jednym) Niewielki zestaw rozkazów prosty asembler Asembler prosty = wymagający (implementacja algorytmu już taka prosta nie jest) Ograniczona ilość zasobów oszczędne nimi gospodarowanie Ciekawe narzędzie dydaktyczne: DSM-51
O asemblerze 8051 http://main5.amu.edu.pl/~zfp/sm/home.html
Dlaczego asembler? Co by student nie myślał, że w życiu jest łatwo Mikrokontroler wykonuje kod maszynowy: :03000000020100FA :1001000075303F75310675325B75334F75346675E2 :10011000356D75367D75370775387F75396F783071 :100120007A00D29612013C743FF2C296740A128190 :10013000120AEA75F00A84AAF0020122C0E0C0D0D7 :10014000C000EA2430F8E67838F2D000D0D0D0E011 :01015000228C :00000001FF
Dlaczego asembler? Mikrokontroler wykonuje kod maszynowy: Łatwiej zapamiętać mnemoniki: Asembler tłumaczy się 1:1 na kod maszynowy Programowanie bliskie sprzętu
Asembler 8051 Polecenia asemblera odpowiadają dokładnie rozkazom mikrokontrolera: mikrokontroler 8-bitowy 256 rozkazów (pomijając polecenia związane z organizacją kodu) Grupy rozkazów: Operacje arytmetyczne Operacje logiczne Operacje na bitach Przesyłanie danych Skoki NOP
Struktura polecenia Mnemonik [argumnet1 [, argument2 [, argument3 ] ] ] Przykład 1: Przykład 2: Przykład 3: Przykład 4: NOP SWAP A MOV R1, #20H CJNE R5, #5, 5
O emulatorze 8051 http://main5.amu.edu.pl/~zfp/sm/home.html
Emulator 8051 Marta Ratajczak Emulacja mikrokontrolera 8051 (praca magisterska) Dostępność: PEC: Emulator 8051 lub bezpośrednio: http://main5.amu.edu.pl/~zfp/emulator_8051/emulator.htm
Plik wejściowy:.hex
Działanie Plik pomocy pomoc.chm Restart programu.hex Tryby wykonania programu.hex
Go to Zaznaczenie rozkazu
Stan mikrokontrolera
Pamięć ROM Tu znajduje się program użytkownika. Zawartość ROM jest powtórzona w dwóch oknach. W każdym można ustawić inny obszar. 8051 jest 8-bitowy, więc komórki są 1-bajtowe. W emulatorze tworzone są tylko te komórki pamięci ROM, w których znajduje się program pozostałe nie istnieją! (W fizycznym mikrokontrolerze (oczywiście) istnieją wszystkie.)
Pamięć RAM i SFR Czyli pełna zawartość wewnętrznej pamięci RAM mikrokontrolera 8051 (Uwaga! Emulator nie posiada górnego RAMu.)
Zawartość rejestrów 8051: HEX szesnastkowo dalej bitowo MSB najstarszy (najbardziej znaczący) bit LSB najmłodszy (najmniej znaczący) bit Banki rejestrów tylko szesnastkowo Timery (układy czasowolicznikowe) TH, TL szesnastkowo Tryb - dwubitowo reszta - bitowo Kluczowe rejestry
Urządzenia zewnętrzne Takie jak: klawiatura matrycowa klawiatura przeglądana sekwencyjnie wyświetlacz siedmiosegmentowy dioda, brzęczyk wachdog + wszystkie linie portów (od strony emulatora działają jako wejścia)
O programowaniu dla DSM-51 http://main5.amu.edu.pl/~zfp/sm/home.html
Akumulator Operacje arytmetyczno-logiczne psują zawartość A i B!!! Tak więc akumulator to nie jest dobre miejsce do przechowywania informacji (podobnie rejestr B).
Rejestry Rx Przechowują tymczasowe informacje, na których mikroprocesor wykonuje się bieżące operacje. Mogą to być dane lub adresy. Zagadka: Ile jest rejestrów ogólnego przeznaczenia?
Jak pisać program Układ tekstu w pliku.asm ; komentarz po średniku do końca linii ; polecenie po tabulacji lub spacji(ach) - nie może zaczynać linii LJMP START ; polecenie i argument ORG 100H ; etykieta od początku linii START: ; to jest etykieta START MOV R0, #2 MOV A, #3 ADD A, R0 MOV @R0, A STOP: LJMP STOP
Początek programu Ze względu na specyficzną organizację pamięci w systemie DSM-51 początek programu musi zawierać skok pod adres 100H w pamięci programu. Skok do adresu zaznaczonego etykietą START Przesuń adres następnej instrukcji na 100H Etykieta adres w pamięci programu Tak więc na początku piszemy: LJMP START ORG 100H START: (tu dalsze instrukcje) Organizacja kodu to nie jest tłumaczone na kod maszynowy
Koniec programu Nie istnieje rozkaz zakończenia (zatrzymania) programu. Każdy program musi być zapętlony! Np. na końcu piszemy: Etykieta adres w pamięci programu STOP: Skok do adresu zaznaczonego etykietą STOP (tu wcześniejsze instrukcje) SJMP STOP Pusta, nieskończona pętla
Przykład PROG01.HEX :03000000020100FA :090100007802740328F6020106DE :00000001FF PROG01.LST 1 0000: 02 01 00 LJMP START 2 0100: ORG 100H 3 0100: START: 4 0100: 78 02 MOV R0, #2 5 0102: 74 03 MOV A, #3 6 0104: 28 ADD A, R0 7 0105: F6 MOV @R0, A 8 0106: STOP: 9 0106: 02 01 06 LJMP STOP prog01.asm LJMP START ORG 100H START: MOV R0, #2 MOV A, #3 ADD A, R0 MOV @R0, A STOP: LJMP STOP Emulator Jak widać, ilość argumentów polecenia asemblera może różnić się od ilości argumentów rozkazu procesora (tryby adresowania)
Pytania?
W następnym odcinku Układy logiczne Powtórzenie wiadomości z klasy czwartej Kodowanie dwójkowe Algebra Boole a i jej realizacja sprzętowa Bramki są dwie? Prosty przykład sumator Układy z pamięcią Proszę pamiętać o zadaniach domowych!
I to by było na tyle Dziękuję za uwagę!