ASK 06 Ster

background image

1. Własny system operacyjny

1/34

1

2

3

4

5

Procesor – wybrane

zagadnienia

zaawansowane

offset

DS
SS
ES
FS
GS

Rej. Segment.

CS

+

Instrukcja...

16

Szyna
adresowa

16

20

background image

1. Własny system operacyjny

2/34

1

2

3

4

5

Obsługa szyny adresowej: banki vs segmenty

offset

DS
SS
ES
FS
GS

Rej. Segment.

CS

+

Instrukcja...

16

Szyna
adresowa

16

20

Szyna
adresowa

8

offset

Instrukcja...

7

STATUS.RP0

LSb

MSb

1

Banki pamięci, przykład Microchip PIC

Segmenty pamięci, przykład 8086

2 Α 8 7

1 0 0 5

2 Β 8 7 5

+

segment:

offset:

adres fizyczny:

1

0011010

STATUS.RP0:

offset:

adres fizyczny:

10011010

background image

1. Własny system operacyjny

3/34

1

2

3

4

5

BIOS i start systemu

BIOS – Basic Input/Output System – oprogramowanie wbudowane w chip na płycie

głównej komputera PC.

1. Wykonuje procedurę POST – Power-On Self Test, w celu

inicjalizacji i testowania urządzeń

2. Ładuje system operacyjny (boot OS)

IPL Device – Initial Program Load Device – urządzenie umożliwiające załadowanie

systemu operacyjnego

BAID – BIOS Aware IPL Device – urządzenie IPL, które do załadowania systemu

potrzebuje odpowiedniego kodu obsługującego w BIOS.

background image

1. Własny system operacyjny

4/34

1

2

3

4

5

BIOS i start systemu

1. Procesor wykonuje instrukcje zaczynając od

adresu F000:FFF0 (zazwyczaj jmp)

2. Instrukcje dotyczą procedury POST

3. Po zakończeniu POST wywoływane jest

przerwanie 19h

4. Przerwanie 19h podejmuje próbę załadowania

systemu operacyjnego zgodnie z tablicą IPL

5. Jeśli próba się nie powiedzie, wywoływane jest

przerwanie 18h

6. Przerwanie 18h przekazuje sterowanie do

przerwania 19h, jeśli IPL Table posiada
kolejen wpisy, lub wyświetla komunikat o
błędzie

background image

1. Własny system operacyjny

5/34

1

2

3

4

5

BIOS i start systemu z dyskietki

Procesor pracuje w trybie rzeczywistym x86

Załadowanie 512 bajtów do pamięci pod adresem 0000h:7C00h z dysku z lokalizacji:

head 0, cylinder 0,

sector 1

http://www.howtodothings.com/computers/a1015-making-your-own-operating-system.html

Każda strona dyskietki FDD ma swoją głowicę (heads 0...1).
Każda strona składa się z 80 cylindrów, każdy cylinder
składa się z 18 sektorów. Każdy sektor składa się z 512
bajtów.

Łączny rozmiar dyskietki: 2 x 80 x 18 x 512 = 1,474,560

background image

1. Własny system operacyjny

6/34

1

2

3

4

5

BIOS i start systemu z dyskietki

LEA SI,

msg

MOV AH, 0Eh
pisz:

MOV AL, [SI]
CMP AL, 0
JZ done
INT 10h.
INC SI
JMP pisz

done:

MOV AH, 0
INT 16h
JMP done

new_line EQU 13,

10

msg DB ‘moj pierwszy system operacyjny!'

DB new_line, ‘Nacisnij klawisz', 0

background image

1. Własny system operacyjny

7/34

1

2

3

4

5

DOS – szablon programu

.model small
.386

.data

tekst byte „czesc”, 0Ah, 0Dh, „$”

.stack 100h

.code

.startup
MOV dx, offset tekst
MOV ah, 09h
INT 21h
.exit

end

background image

1. Własny system operacyjny

8/34

1

2

3

4

5

Segmenty i modele pamięci

.model small
.386

dane segment para

tekst byte „czesc”, 0Ah, 0Dh, „$”

dane ends

moj_stos

segment stack para

word 10 dup (?)

moj_stos

ends

program segment para ‘code’

assume cs:program, ds:dane

.startup
MOV dx, offset tekst
MOV ah, 09h
INT 21h
.exit

program ends
end

ASSUME segRegister:segLocation [...]

name SEGMENT [align][READONLY]...

.....

name ENDS

background image

1. Własny system operacyjny

9/34

1

2

3

4

5

Budowa pliku .exe

exe_data_start = exe.header_paragraphs * 16L;

http://www.delorie.com/djgpp/doc/exe/

background image

2. Tryb chroniony x86

10/34

1

2

3

4

5

Tryb pracy procesorów x86 (IA-32)

Tryb rzeczywisty – tryb zgodny z najstarszym z rodziny 8086

Tryb chroniony – tryb przeznaczony do pracy „wielozadaniowej” pod kontrolą

systemu operacyjnego. Adresowanie może być w modelu płaskim (bez
segmentacji), segmentowy (podobnie do trybu rzeczywistego) oraz adresowanie
logiczne (oparty na tablicy deskryptorów i selektorach).

Tryb SMM (System Management Mode) – tryb zarządzania sprzętem przez system

operacyjny

IA-32 – Intel Architecture 32 bit.

Tryb wirtualny 8086 – wersja trybu chronionego do wykonywania programów w

trybie rzeczywistym

background image

2. Tryb chroniony x86

11/34

1

2

3

4

5

Tryb chroniony procesora 80386 - adresowanie

Intel IA-32 Software Developer;s Manual, August 2007

background image

2. Tryb chroniony x86

12/34

1

2

3

4

5

Tryb chroniony procesora 80386 –

adresowanie model płaski

Intel IA-32 Software Developer;s Manual, August 2007

background image

2. Tryb chroniony x86

13/34

1

2

3

4

5

Tryb chroniony procesora 80386 – zmiana zadań

Intel IA-32 Software Developer;s Manual, August 2007

background image

2. Tryb chroniony x86

14/34

1

2

3

4

5

Architektura IA-32

szybkie spojrzenie

Intel IA-32 Software Developer;s Manual, August 2007

background image

2. Tryb chroniony x86

15/34

1

2

3

4

5

Windows – szablon programu

.model flat, stdcall
option casemap :none

include windows.inc
include user32.inc
include kernel32.inc

includelib user32.lib
includelib kernel32.lib

.data

Tytul_okna byte „moje okno”, 0
Tekst_w_oknie byte „czesc!”, 0

.code
start:

invoke MessageBox, NULL, ADDR Tekst_w_oknie, ADDR Tytul_okna, MB_OK
invoke ExitProcess, NULL

end start

background image

2. Tryb chroniony x86

16/34

1

2

3

4

5

Przerwa na przemyślenia

.model flat, stdcall
option casemap :none

include windows.inc
include user32.inc
include kernel32.inc

includelib user32.lib
includelib kernel32.lib

.data

Tytul_okna byte „moje okno”, 0
Tekst_w_oknie byte „czesc!”, 0

.code
start:

invoke MessageBox, NULL, ADDR Tekst_w_oknie, ADDR Tytul_okna, MB_OK
invoke ExitProcess, NULL

end start

background image

3. Maszyna stanów procesora

17/34

1

2

3

4

5

Maszyna stanów – procesor x86

Intel IA-32 Software Developer;s Manual, August 2007

background image

3. Maszyna stanów procesora

18/34

1

2

3

4

5

Maszyna stanów –

procesor Renesas

SH-2

RENESAS, SH7040 Hardware Manual, 2003

background image

19/34

1

2

3

4

5

4. Układ sterujący

Układ sterujący - synteza

G. De Micheli, Synteza i optymalizacja układów cyfrowych, WNT 1998

background image

20/34

1

2

3

4

5

4. Układ sterujący

Układ sterujący – kod wertykalny/horyzontalny

Kodowanie horyzontalne (poziome)

Kodowanie wertykalne (pionowe)

Kodowanie mieszane

background image

21/34

1

2

3

4

5

4. Układ sterujący

Układ sterujący – struktura hierarchiczna

background image

5. System przerwań + DMA

22/34

1

2

3

4

5

Mechanizm przerwań - PIC

Microchip, PIC16F84A datasheet

org 4h

; - - - - - - - ;czy TMR0 - - - - - - - -

INI_TMR0_MAIN

bcf INTCON, T0IF

; - - - - - - - ;czy RB - - - - - - - - -

INI_RB_MAIN

bcf INTCON, RBIF

; - - - - - - - - - - - - - - - - - - - - - -

retfie

;koniec obslugi vektora przerwan

1)

Zatrzymywane jest wykonanie programu

2)

Odkładana jest wartość rejestru PC na stos

3)

PC przyjmuje nową wartość 04h

4)

Procedura obsługi przerwania kończy się z instr.
RETFIE

WYKONANIE PROCEDURY OBSŁUGI
PRZERWANIA MUSI TRWAĆ KRÓTKO !!!

background image

5. System przerwań + DMA

23/34

1

2

3

4

5

Mechanizm przerwań - podział

Sytuacje wyjątkowe (exception interrupts) – zdarzenia o największym znaczeniu

dla działania programu. Nie można ich odłożyć na później. Na przykład błąd
dzielenia przez zero (divide-by-zero exception) lub przerwanie niemaskowalne
(non-maskable interrupt).

Maskowalne przerwania sprzętowe (event interrupts) – przerwania pochodzące od

urządzeń peryferyjnych. Mogą być blokowane i mogą mieć różne priorytety. Na
przykład przerwanie od układu Timera.

Przerwania programowe (software interrupts) – wywoływane są przez

umieszczenie w programie instrukcji wywołania przerwania (umieszczane przez
programistę). Wykorzystywane czasem do zapewnienia wsparcie sprzętowego dla
priorytetów wykonania pewnych fragmentów kodu lub częściej do implementacji
funkcji systemowych (np.. BIOS).

Pułapki (traps) – stosowane do śledzenia wykonania programu w fazie testowania

(breakpoints).

background image

5. System przerwań + DMA

24/34

1

2

3

4

5

Mechanizm przerwań - ARM

background image

5. System przerwań + DMA

25/34

1

2

3

4

5

Mechanizm przerwań - PC

background image

5. System przerwań + DMA

26/34

1

2

3

4

5

Mechanizm przerwań – Intel 8259A

background image

5. System przerwań + DMA

27/34

1

2

3

4

5

1) Urządzenie zgłasza chęć przerwania na linii IRx

2) Sprawdzane jest zezwolenie na przerwanie i

priorytety przerwań

3) Wystawiany jest sygnał na linii INT

4) Procesor odpowiada sygnałem na linii INTA

5) Procesor po raz drugi daje sygnał na INTA, na który

kontroler wystawia na szynę danych numer
przerwania

6) Numer przerwania jest dla procesora indeksem w

tablicy adresów do funkcji obsługi

7) Jeśli kontroler pracuje w trybie automatycznym, sam

odznacza wykonanie przerwania w rejestrze statusu
przerwań, w innym przypadku program użytkownika
musi to zrobić.

Mechanizm przerwań – Intel 8259A

background image

5. System przerwań + DMA

28/34

1

2

3

4

5

DMA - Direct Memory Access, zysk

1)

Procesor odczytuje bajt z portu IO
i zapamiętuje w akumulatorze

2)

Procesor wpisuje wartość z
akumulatora do pamięci

1)

Bajt wystawiany jest przez urządzenie
i wpisywany bezpośrednio do pamieci.
Szyna adresowa i sterująca
kontrolowana przez kontroler DMA.

background image

5. System przerwań + DMA

29/34

1

2

3

4

5

DMA na komputerze PC

1)

Urządzenie per. gdy ma dane do wysłania wystawia sygnał na DREQx (DMA Request)

2)

Układ DMA wystawia żądanie przejęcia szyny na linie HRQ (Hold Request)

3)

Procesor/kontroler szyny odpowiada zezwoleniem na przejęcie szyny na HLDA (Hold Ack)

4)

Układ DMA informuje urządzenie per. o przejęciu kontroli nad szyną na linii DACKx i
rozpoczyna transmisję (IOR/IOW/MEMR/MEMW/EOP)

background image

5. System przerwań + DMA

30/34

1

2

3

4

5

Tryby pracy kontrolera DMA

„I” (Idle) – tryb spoczynkowy, oczekuje na nadejście żądania transmisji DMA

„S” (Single) – pojedyncze przesłanie. Rejestr adresowy zmniejszany/zwiększany o

jeden.

„B” (Block) – transmisja trwa nieprzerwanie aż do zewnętrznego sygnału EOP od

urządzenia per. Każde przesłanie pomniejsza/powiększa rejestr adresowy o jeden.

„D” (Demand) – podobny do trybu „B”. Pozwala na przerwanie transmisji po

określonej maksymalnej liczby cykli lub wystąpienia żądania transmisji DMA o
wyższym priorytecie.

„C” (Cascade) – kontrolery połączone w kaskadę przekazują informację do

urządzenia Master nie przejmując samodzielnie kontroli na szynie.

„V” (Verify) – tryb diagnostyczny. Wystawia do urządzenia właściwe sygnały ale nie

przejmuje kontroli nad szyną.

background image

5. System przerwań + DMA

31/34

1

2

3

4

5

DMA – połączenie kaskadowe i podłączanie do szyny

background image

5. System przerwań + DMA

32/34

1

2

3

4

5

DTC – Data Transfer Controller,

przykład Hitachi SH-2

background image

5. System przerwań + DMA

33/34

1

2

3

4

5

Polecana literatura

1) E. Wróbel, Asembler, Helion 2004

Rozdział 1-15

2) G. Syck, Turbo Assembler Biblia użytkownika, LT&P 1996

Rozdział 1-7

3) G. De Micheli, Synteza i optymalizacja układów cyfrowych, WNT 1998

Rozdział 4

6) Intel IA-32 Software Developers Manual, August 2007

4) P. Metzger, Anatomia PC, Helion 2001

Rozdział 6, 7

5) R. Pełka, Mikrokontrolery, architektura, programowanie, zastosowania, WKŁ 2000

Rozdział 2

background image

5. System przerwań + DMA

34/34

1

2

3

4

5

KONIEC

dr inż. Mariusz Kapruziak

mkapruziak@wi.ps.pl

pok. 107, tel. 449 55 44


Wyszukiwarka

Podobne podstrony:
ASK 06 PawelKopec AdrianMakuch
lab06 ASK 06 PawelKopec AdrianM Nieznany
ASK 06 Postfix
ASK 06 PiotrGębala MateuszMacięga
ASK 06 Postfix
MT st w 06
Kosci, kregoslup 28[1][1][1] 10 06 dla studentow
06 Kwestia potencjalności Aid 6191 ppt
06 Podstawy syntezy polimerówid 6357 ppt
06
06 Psych zaburz z somatoformiczne i dysocjacyjne
GbpUsd analysis for July 06 Part 1
Probl inter i kard 06'03
06 K6Z4

więcej podobnych podstron