Architektura komputerów. Komputer Procesor Mikroprocesor koncepcja Johna von Neumanna

Podobne dokumenty
Organizacja typowego mikroprocesora

end start ; ustawienie punktu startu programu i koniec instrukcji w assemblerze.

Architektura komputerów

organizacja procesora 8086

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

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

Sprzęt i architektura komputerów

Architektura komputerów

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

ARCHITEKTURA PROCESORA,

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

Sprzęt i architektura komputerów

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

Procesor Intel 8086 model programisty. Arkadiusz Chrobot

Zadanie Zaobserwuj zachowanie procesora i stosu podczas wykonywania następujących programów

J. Duntemann Zrozumieć Assembler Leo J. Scanlon Assembler 8086/8088/80286 S. Kruk Programowanie w Języku Assembler

Technika mikroprocesorowa I Studia niestacjonarne rok II Wykład 2

Układ wykonawczy, instrukcje i adresowanie. Dariusz Chaberski

Procesor Intel 8086 model programisty. Arkadiusz Chrobot

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

Architektura komputerów. Asembler procesorów rodziny x86

Technika mikroprocesorowa I Wykład 2

MIKROKONTROLERY I MIKROPROCESORY

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

Programowanie niskopoziomowe

Projektowanie. Projektowanie mikroprocesorów

LEKCJA TEMAT: Zasada działania komputera.

Rozszerzalne kody operacji (przykład)

Mikroprocesor Operacje wejścia / wyjścia

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

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

Budowa i zasada działania komputera. dr Artur Bartoszewski

Struktura i działanie jednostki centralnej

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

PODSTAWOWE ELEMENTY ASEMBLERA TRYBY ADRESOWANIA. OPERATORY ASEMBLERA

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

Podstawy techniki cyfrowej Mikroprocesory. Mgr inż. Bogdan Pietrzak ZSR CKP Świdwin

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

BUDOWA I DZIAŁANIE MIKROPROCESORA

Architektura typu Single-Cycle

architektura komputerów w 1 1

LEKCJA TEMAT: Współczesne procesory.

Podstawy techniki mikroprocesorowej. Dr inż. Grzegorz Kosobudzki p.311a A-5. Tel

Budowa komputera Komputer computer computare

Mikroprocesor Intel 8088 (8086)

Magistrala systemowa (System Bus)

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

CYKL ROZKAZOWY = 1 lub 2(4) cykle maszynowe

Adresowanie. W trybie natychmiastowym pole adresowe zawiera bezpośrednio operand czyli daną dla rozkazu.

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

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

Architektura systemów komputerowych

Programowanie Niskopoziomowe

Architektura komputerów

CPU. Architektura FLAGS Bit: dr Paweł Kowalczyk; DPTNS, KFCS UŁ. SI 16 bit. 16 bit. 16 bit.

4 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.01 Rok akad. 2011/ / 24

Programowanie Niskopoziomowe

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1

Procesory rodziny x86. Dariusz Chaberski

Mikroprocesory rodziny INTEL 80x86

WPROWADZENIE Mikrosterownik mikrokontrolery

Przykładowe pytania DSP 1

Budowa Mikrokomputera

Ćwiczenie nr 3. Wyświetlanie i wczytywanie danych

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

Lista instrukcji mikroprocesora Programowanie w assemblerze

dr inż. Rafał Klaus Zajęcia finansowane z projektu "Rozwój i doskonalenie kształcenia i ich zastosowań w przemyśle" POKL

Wstęp do informatyki. Architektura co to jest? Architektura Model komputera. Od układów logicznych do CPU. Automat skończony. Maszyny Turinga (1936)

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

Technika Mikroprocesorowa I Wykład 4

Architektura mikroprocesorów z rdzeniem ColdFire

Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych

Wprowadzenie do Architektury komputerów. Asembler procesorów rodziny x86

4 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.01 Rok akad. 2011/ / 27

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

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]

2 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.02 Rok akad. 2011/ / 24

Przedmiot : Programowanie w języku wewnętrznym. Ćwiczenie nr 4

Architektura komputerów

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

PROGRAMOWANIE NISKOPOZIOMOWE

Liczniki, rejestry lab. 08 Mikrokontrolery WSTĘP

SYSTEM MIKROPROCESOROWY

Model programowy komputera I: format rozkazów, lista rozkazów, tryby adresowania, cykl rozkazowy, realizacja programu w komputerze.

Stronicowanie w systemie pamięci wirtualnej

LISTA ROZKAZÓW i TRYBY ADRESOWANIA

PC 3 PC^ TIMER IN RESET PC5 TIMER OUT. c 3. L 5 c.* Cl* 10/H CE RO WR ALE ADO AD1 AD2 AD3 AD4 A05 A06 LTJ CO H 17 AD7 U C-"

Tranzystor JFET i MOSFET zas. działania

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

Architektura systemów komputerowych. dr Artur Bartoszewski

Zarządzanie pamięcią w systemie operacyjnym

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

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

Podstawy Projektowania Przyrządów Wirtualnych. Wykład 9. Wprowadzenie do standardu magistrali VMEbus. mgr inż. Paweł Kogut

Architektura komputerów

Podstawy Informatyki Układ sterujący

Metody obsługi zdarzeń

Architektura Systemów Komputerowych, Wydział Informatyki, ZUT

PROGRAMOWANIE NISKOPOZIOMOWE. Systemy liczbowe. Pamięć PN.01. c Dr inż. Ignacy Pardyka. Rok akad. 2011/2012

Transkrypt:

Architektura komputerów. Literatura: 1. Piotr Metzger, Anatomia PC, wyd. IX, Helion 2004 2. Scott Mueller, Rozbudowa i naprawa PC, wyd. XVIII, Helion 2009 3. Tomasz Kowalski, Urządzenia techniki komputerowej, Helion 2010 4. Paweł Bensel, Systemy i sieci komputerowe, Helion 2010 Komputer jest urządzeniem służącym do automatycznego przetwarzania danych. Jego istotną cechą jest możliwość programowania funkcje, które realizuje zależą nie tylko od rozwiązań sprzętowych lecz głównie od programu, który wykonuje. Procesor układ cyfrowy przetwarzający dane zgodnie z programem zapisanym w pamięci komputera w postaci ciągu instrukcji. Mikroprocesor procesor zintegrowany w jednym układzie scalonym wielkiej skali integracji. Instrukcje tworzące program są przechowywane w pamięci w taki sam sposób jak dane (komputer z zapamiętanym programem) koncepcja Johna von Neumanna Pamięć składa się z pewnej liczby ponumerowanych komórek, dostęp do pamięci następuje poprzez podanie przez procesor numeru komórki jej adresu. Komputer będzie pobierał kolejne instrukcje programu z kolejnych komórek pamięci (wykonywanie sekwencyjne programu) z wyjątkiem trzech sytuacji: - wykonanie instrukcji skoku (lub pętli), - wywołania podprogramu (procedury) i powrotu z niej, - zgłoszenia przerwania i powrotu po obsłudze tego zdarzenia. Adres komórki z której pobierany będzie następny rozkaz przechowywany jest w specjalnym rejestrze procesora liczniku rozkazów. 1

Schemat blokowy mikrokomputera Pamięć komputera powinna mięć dużą pojemność, dużą szybkość, niski koszt, przechowywać dane i programy w sposób trwały. Ze względu na sprzeczność tych wymagań w systemach komputerowych stosuje się hierarchiczny system pamięci. pojemność szybkość Hierarchia pamięci w systemie komputerowym 2

Komórka pamięci statycznej Komórka pamięci dynamicznej 3

Organizacja typowego mikroprocesora Architektura procesora 8086 4

Architektura współczesnego procesora Instrukcja i mikrooperacja Instrukcja najmniejsza jednostka programu, kod binarny określający sekwencję mikrooperacji Mikrooperacja zbiór wszystkich operacji wykonywanych przez mikroprocesor w pojedynczej fazie cyklu rozkazowego Lista instrukcji zbiór wszystkich instrukcji wykonywanych przez dany mikroprocesor Instrukcje są zewnętrzne w stosunku do mikroprocesora. Ciąg instrukcji w pamięci komputera, realizujący wybrany algorytm obliczeniowy jest nazywany programem. 5

Schemat blokowy procesora AVR Mega o architekturze harwardzkiej Wszystkie mikroprocesory zawierają podobne elementy: układ sterowania i synchronizacji, który kontroluje pracę procesora i wytwarza sygnały potrzebne do sterowania poszczególnymi elementami komputera arytmometr, czyli układ, który wykonuje operacje arytmetyczne i logiczne rejestry, tj. układy pamięci wewnętrzne szyny łączące elementy procesora Podstawowymi rejestrami, które znajdują się w każdym mikroprocesorze, są: licznik rozkazów - zawiera on adres następnego rozkazu do wykonania. Podczas cyklu rozkazowego automatycznie zwiększany o długość bieżącego rozkazu, chyba że ostatnim wykonywanym rozkazem był efektywny skok, wywołano podprogram lub przyjęto przerwanie. rejestr rozkazów - zawiera kod aktualnie wykonywanego rozkazu akumulator, jest używany w czasie wykonywania rozkazów arytmetycznych, logicznych, I/O i in.; niektóre procesory mają kilka takich rejestrów rejestr znaczników - zawiera dodatkowe informacje o wyniku operacji arytmetycznologicznych, np. "wynik równy zeru" 6

W procesorze układ sterowania działa cyklicznie, wykonując cykl rozkazowy. Cykl rozkazowy składa się z dwóch faz Fazy pobrania rozkazów. Fazy wykonania rozkazów. W fazie pobrania rozkazu na magistralę adresową wysyłana jest zawartość licznika rozkazów. Licznik rozkazów zawiera adres komórki pamięci zawierającej rozkaz, który ma być w danej chwili wykonany. Po odczytaniu z pamięci rozkaz wędruje magistralą danych do procesora i wpisuje się do rejestru rozkazów. Na końcu fazy pobrania rozkazów układ sterowania zwiększa zawartość licznika o liczbę pobranych bajtów. W fazie wykonania rozkazów układ sterowania odczytuje z rejestru rozkazów rozkaz, dokonuje jego dekodowania i w zależności od rodzajów rozkazów generuje odpowiednie sygnały sterujące. We współczesnych procesorach oba te cykle wykonywane są jednocześnie. W czasie wykonywania rozkazu pobierany jest już następny. Zbiór wszystkich możliwych do wykonania przez procesor rozkazów nazywamy listą rozkazów. Rozkazy te podzielone są na cztery grupy: służące do przesyłania informacji arytmetyczne i logiczne sterujące wykonaniem programu (rozkazy skoków) wejścia-wyjścia Na cykl rozkazowy składają się jeden lub kilka cykli maszynowych. Cykl maszynowy, to cykl, w którym następuje przesłanie danych (odczyt lub zapis) między jednostką centralną a pamięciową lub układem wejścia wyjścia, w zależności od rodzaju przesłania rozróżnia się cykl maszynowy: pobrania kodu operacji, odczytu i zapisu pamięci, odczytu i zapisu wejścia - wyjścia, przyjęcia przerwania itd. W każdym cyklu maszynowym następuje wysłanie: - adresu na magistralę adresową, - danych na magistralę danych, - sygnałów sterujących, informujących o rodzaju cyklu, na magistralę sterującą. Układy pamięci lub wejścia - wyjścia powinny w tym czasie wykonać odpowiednie czynności - zapisać dane lub wysłać je na magistralę danych. Jeden cykl maszynowy wykonywany jest w czasie jednego lub kilku (w zależności od procesora i rodzaju cyklu) taktów zegara. 7

Rejestry procesora 8086 8

9

Kodowanie rozkazów kod operacji adres lub wartość 2 argumentu adres 1 argumentu Struktura kodu rozkazu dwuargumentowego Rozkazy mikroprocesora 8086 są wielobajtowe. Liczba bajtów każdego rozkazu zależy od jego rodzaju i może wynosić od jednego do sześciu. 7 6 5 4 3 2 1 0 kod operacji MOD REG D W R/M Struktura kodu rozkazu procesora 8086 Pierwszy bajt zawiera sześciobitowy kod operacji oraz dwa bity (kierunku i szerokości). Bit D określa kierunek transmisji (0 - wynik operacji jest przesyłany z rejestru do pamięci, 1 - z pamięci do rejestru). W zależności od wartości tego bitu w rozkazie rozróżniane są operandy źródłowe i operandy przeznaczenia. Bit W określa szerokość operandu danego rozkazu (0 operacje bajtowe, 1 - operacje na słowie 16-bitowym). Jeżeli rozkaz jest wielobajtowy, to drugi bajt rozkazu określa sposób adresowania argumentów. Zawiera on trzy grupy bitów dwubitowa grupa MOD określa tryb adresowania trzybitowa grupa REG określa numer rejestru, w którym znajduje się operand trzybitowa grupa R/M określa sposób wyznaczenia miejsca operandu Jeżeli operandy znajdują się w rejestrach mikroprocesora (MOD = 11), to pola REG i R/M stanowią ich numery (odpowiednio pierwszego i drugiego operandu) REG R/M 000 001 010 011 100 101 110 111 W=0 W=1 AL CL DL BL AH CH DH BH AX CX DX BX SP BP SI DI 10

Jeżeli jeden z operandów znajduje się w pamięci, to pola MOD i R/M określają jego adres R/M MOD = 00 MOD = 01 MOD = 10 000 001 010 011 100 101 110 111 BX+SI BX+DI BP+SI BP+DI SI DI p16 BX BX+SI+p8 BX+DI+p8 BP+SI+p8 BP+DI+p8 SI+p8 DI+p8 BP+p8 BX+p8 BX+SI+p16 BX+DI+p16 BP+SI+p16 BP+DI+p16 SI+p16 DI+p16 BP+p16 BX+p16 Znaczenie bitów R/M zależy od wartości bitów w polu MOD. Jeżeli MOD!= 11, to grupa R/M określa rejestry adresujące. Jeżeli natomiast MOD == 11, to R/M określa rejestr (podobnie jak REG) drugiego operandu. Jeżeli rozkaz tego wymaga, to po drugim bajcie rozkazu może występować jeden lub dwa bajty przemieszczenia. Jeden bajt przemieszczenia występuje w sytuacji, gdy MOD == 01, natomiast przemieszczenie dwubajtowe występuje, gdy MOD == 10. Organizacja pamięci operacyjnej Wyróżnione obszary Pamięci Operacyjnej OBSŁUGA PRZERWAŃ 1024 B 1024 KB 0 3FF 400 PAMIĘĆ BAZOWA 640 KB PAMIĘĆ GÓRNA 384 KB 9FFFF A0000 F8000 BIOS 32 KB ( ROM ) FFFFF RESET CS = FFFF FFFF0 IP = 0000 11

Adresowanie pamięci operacyjnej, segmentacja 19 15 0 0 0 3 REJESTR SEGMENTU 19 0 0 0 0 + 16 15 0 PRZESUNIĘCIE 0 0 0 0 19 0 ADRES FIZYCZNY rejestr segmentu : CS, DS, SS, ES przesunięcie : IP, SP, ARG ( BX, BP, SI, DI ) początki segmentów co 16 bajtów max długość segmentu : 64 kb max wielkość pamięci : 1 MB Wykorzystanie rejestrów segmentów : CS segment rozkazów, przesunięcie z IP DS segment danych, przesunięcie z ARG SS segment stosu, przesunięcie z ARG ( SP ) ES segment danych dodatkowych, przesunięcie z ARG 16-bitowy adres segmentu (co 16 bajtów) Obszar zajęty przez system operacyjny 20-bitowy adres pamięci 00000H CS Segment kodu IP Segment kodu DS Segment danych SI Segment danych DI ES SS Segment stosu SP Segmenty mogą mieć różne rozmiary i mogą się zakładać 12 0FFFFFH

Instrukcje przesyłania danych Podstawową instrukcją przesyłania danych jest instrukcja mov dst, src Pozwala ona przesłać do miejsca przeznaczenia (rejestru, komórki pamięci) zawartość ze źródła (rejestru, komórki pamięci lub wartość liczbowa). Istnieją przy tym pewne ograniczenia, np. nie można wpisać bezpośrednio wartości liczbowej do rejestru segmentowego, dlatego używamy dwóch instrukcji: mov ax, data mov ds, ax Nie można wpisać wartości do licznika rozkazów (rejestru CS:IP) służą do tego rozkazy skoku lub wywołania podprogramu. Przykłady wykorzystania rozkazu mov dst, src mov AX, 0B00h mov DS, AX mov CL, A mov CH, 01101001b mov BX, 15Eh mov [BX], CX Tryby adresowania Trybem adresowania nazywamy sposób wyznaczania adresu operandu, którego to mianem określamy argumenty i wyniki operacji. Adres operandu obliczany jest zgodnie z równaniem EA = BR + IR + p gdzie: EA - adres efektywny BR - rejestr bazowy IR - rejestr indeksowy p - przemieszczenie Adres efektywny EA jest adresem logicznym "widzianym" przez program. Na podstawie EA układy segmentacji obliczają adres rzeczywisty w pamięci operacyjnej. Rejestrem bazowym może być rejestr BP lub BX, a rejestrem indeksowym może być rejestr SI lub DI. Przemieszczenie jest zawarte w rozkazie i może mieć długość ośmiu lub szesnastu bitów. Mikroprocesor 8086 realizuje następujące tryby adresowania: natychmiastowe rejestrowe bezpośrednie pośrednie bazowe indeksowe indeksowo-bazowe adresowanie względne 13

Adresowanie natychmiastowe W adresowaniu natychmiastowym argument pobierany jest bezpośrednio z rozkazu. np. mov AX, 100 w rejestrze AX zostanie zapisana liczba 100. Adresowanie rejestrowe W adresowaniu rejestrowym operandy znajdują się w rejestrach wewnętrznych mikroprocesora. np. mov AX, BX w rejestrze AX zostanie zapisana zawartość rejestru BX. Adresowanie bezpośrednie W adresowaniu bezpośrednim adres operandu znajduje się bezpośrednio w rozkazie. np. mov AX, [100] w rejestrze AX zostanie zapisana zawartość komórki pamięci (segment danych) o adresie 100. Standardowy adres operandu jest przesunięciem w segmencie danych (DS), można to nadpisać poprzez wskazanie innego segmentu. Np. mov AX, CS:[40] w rejestrze AX zostanie zapisana zawartość z komórki pamięci (segment programu(kodu)) o offsecie 40. Adresowanie pośrednie W trybie adresowania pośredniego w rozkazie znajduje się nie adres argumentu lecz adres miejsca, gdzie znajduje się argument operacji. Np. mov AX, [BX] w rejestrze AX zostanie zapisana zawartość komórki pamięci o adresie, który znajduje się w rejestrze BX. Wszystkie rejestry wskazują offset w segmencie danych (DS), poza rejestrem BP, który jest przesunięciem w segmencie stosu (SS). Można to zmienić określając segment w rozkazie. np. mov AX, SS:[BX] w rejestrze AX zostanie zapisana zawartość komórki pamięci z segmentu stosu o adresie, który znajduje się w rejestrze BX. Pobieranie adresu zmiennej Istnieje możliwość pobrania adresu zmiennej za pomocą instrukcji LEA (Load Effective Address) lub operatora OFFSET. Jest to wykorzystywane przy adresowaniu pośrednim oraz przy przekazywaniu parametrów do procedur. Przykład: org 100h lub z operatorem OFFSET mov AL, zmx lea BX, zmx org 100h mov byte ptr [BX], 55h mov AL, zmx mov AL, zmx mov BX, offset zmx ret mov byte ptr [BX], 55h mov AL, zmx zmx DB 22h ret end zmx DB 22h end 14

Instrukcja LEA jest bardziej elastyczna niż operator OFFSET gdyż pozwala pobrać adres zmiennej z indeksem np. lea BX, tablica[4] Adresowanie bazowe Adresowanie bazowe jest to rodzaj adresowania pośredniego, gdzie rozkaz wskazuje na jeden z rejestrów bazowych BX lub BP i może zawierać 8- lub 16-bitową wartość stanowiącą lokalne przemieszczenie. Adresem efektywnym jest suma zawartości rejestru bazowego i lokalnego przemieszczenia. Np. mov AX, [BP+2]. Adresowanie indeksowe Adresowanie indeksowe jest rodzajem adresowania pośredniego, gdzie adres efektywny jest sumą zawartości rejestru indeksowego SI lub DI i lokalnego przemieszczenia. Np. mov AX, [SI+3]. Adresowanie bazowo-indeksowe W adresowaniu bazowo-indeksowym, adres efektywny jest sumą zawartości jednego z rejestrów bazowych, jednego z rejestrów indeksowych i lokalnego przemieszczenia. Np. mov AX, [SI+BP+4]. Adresowanie względne Jest stosowane w skokach służy do przeniesienia sterowania o pewną liczbę pozycji względem aktualnie wykonywanej instrukcji. Rozkazy operujące na ciągach słów Rozkazy operujące na ciągach słów posługują się rejestrami indeksowymi. Rejestry SI i DI zawierają adresy efektywne pierwszego słowa odpowiednio w ciągu źródłowym i wynikowym. Po każdej transmisji rejestry indeksowe są automatycznie inkrementowane lub dekrementowane w zależności od ustawienia bitu DF w rejestrze znaczników. Rozkazy operujące na rejestrach WE/WY Rozkazy operujące na rejestrach WE/WY (in oraz out) zawierają adres WE/WY (adres natychmiastowy) lub posługują się zawartością rejestru DX (adresowanie pośrednie). 15