Architektura systemów komputerowych

Podobne dokumenty
MIKROKONTROLERY I MIKROPROCESORY

WPROWADZENIE Mikrosterownik mikrokontrolery

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

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

Organizacja typowego mikroprocesora

Rok akademicki: 2013/2014 Kod: EEL s Punkty ECTS: 2. Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne

Architektura mikroprocesorów TEO 2009/2010

Liczniki, rejestry lab. 08 Mikrokontrolery WSTĘP

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

Budowa Mikrokomputera

architektura komputerów w 1 1

Programowanie niskopoziomowe. dr inż. Paweł Pełczyński

Struktura i działanie jednostki centralnej

Architektura Systemów Komputerowych. Jednostka ALU Przestrzeń adresowa Tryby adresowania

KARTA PRZEDMIOTU. Architektura Komputerów C4

Układ wykonawczy, instrukcje i adresowanie. Dariusz Chaberski

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

LEKCJA TEMAT: Zasada działania komputera.

Projektowanie. Projektowanie mikroprocesorów

2. Architektura mikrokontrolerów PIC16F8x... 13

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

Architektura systemów komputerowych

Architektura komputerów wer. 7

Architektura komputerów

Wykład I. Podstawowe pojęcia. Studia Podyplomowe INFORMATYKA Architektura komputerów

Wykład Mikroprocesory i kontrolery

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

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

Techniki mikroprocesorowe i systemy wbudowane

Przykładowe pytania DSP 1

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

Architektura komputerów wer. 3

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Zapoznanie z technikami i narzędziami programistycznymi służącymi do tworzenia programów współbieżnych i obsługi współbieżności przez system.

Wstęp Architektura... 13

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

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2010/2011

Programowanie niskopoziomowe

Programowanie w językach asemblera i C

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

Architektura systemów komputerowych. dr Artur Bartoszewski

Magistrala systemowa (System Bus)

Krótka wycieczka do wnętrza komputera

Podstawy Techniki Mikroprocesorowej

Budowa i zasada działania komputera. dr Artur Bartoszewski

CYKL ROZKAZOWY = 1 lub 2(4) cykle maszynowe

ARCHITEKTURA PROCESORA,

Opis efektów kształcenia dla modułu zajęć

Architektura komputera

Mikrokontroler 80C51

imei Instytut Metrologii, Elektroniki i Informatyki

Systemy wbudowane. Paweł Pełczyński

Mikrokontrolery czyli o czym to będzie...

Maszyny liczace - rys historyczny

Procesor i jego architektura (CISC, RISC, 32/64 bity). Systemy wieloprocesorowe. wer Wojciech Myszka 16 pa«zdziernika 2008

Tworzenie nowego projektu w asemblerze dla mikroprocesora z rodziny 8051

Mikroprocesor Operacje wejścia / wyjścia

Technika Mikroprocesorowa Laboratorium 5 Obsługa klawiatury

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

Charakterystyka mikrokontrolerów. Przygotowali: Łukasz Glapiński, Mateusz Kocur, Adam Kokot,

START: ; start programu od adresu 0100H ; zerowanie komórek od 01H do 07FH ( 1 dec dec)

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

Systemy wbudowane Mikrokontrolery

Elektronika i Telekomunikacja I stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny)

Wprowadzenie do informatyki i użytkowania komputerów. Kodowanie informacji System komputerowy

Opracował: Jan Front

Układ sterowania, magistrale i organizacja pamięci. Dariusz Chaberski

PRZEWODNIK PO PRZEDMIOCIE

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

Mikroprocesory i Mikrosterowniki

Mikroprocesory i mikrosterowniki

IIPW_SML3_680 (Z80) przewodnik do ćwiczeń laboratoryjnych

Magistrala. Magistrala (ang. Bus) służy do przekazywania danych, adresów czy instrukcji sterujących w różne miejsca systemu komputerowego.

Mikroprocesory i Mikrosterowniki

Mikrokontrolery 8 bit - wprowadzenie

elektrotechnika I stopień (I stopień / II stopień) Ogólno akademicki (ogólno akademicki / praktyczny) Kierunkowy (podstawowy / kierunkowy / inny HES)

Hardware mikrokontrolera X51

Grzegorz Cygan. Wstęp do programowania mikrosterowników w języku C

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

XXXII Olimpiada Wiedzy Elektrycznej i Elektronicznej. XXXII Olimpiada Wiedzy Elektrycznej i Elektronicznej

Mikrokontroler ATmega32. Język symboliczny

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

Systemy operacyjne. wykład dr Marcin Czarnota laboratorium mgr Radosław Maj

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

Architektura mikrokontrolera MCS51

Architektura komputerów

Architektura mikrokontrolera MCS51

Elementy cyfrowe i układy logiczne

PRZEWODNIK PO PRZEDMIOCIE

System mikroprocesorowy i peryferia. Dariusz Chaberski

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Rejestry procesora. Nazwa ilość bitów. AX 16 (accumulator) rejestr akumulatora. BX 16 (base) rejestr bazowy. CX 16 (count) rejestr licznika

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

KARTA MODUŁU KSZTAŁCENIA

Systemy operacyjne. Wprowadzenie. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Architektura komputerów Wykład 2

Rok akademicki: 2030/2031 Kod: EIT s Punkty ECTS: 4. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

Systemy na Chipie. Robert Czerwiński

Transkrypt:

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ę!