Technologie Informacyjne - Mikroprocesor · Federico Faggin Zawarcie wszystkich podzespoów...

31
Model von Neumanna ALU CPU Cykl rozkazów Kodowanie rozkazów Programowanie Mikroprocesor Technologie Informacyjne Mikroprocesor Adam Krasuski Szkola Glówna Slużby Pożarniczej Zaklad Informatyki i Lączności November 7, 2016 Adam Krasuski Technologie Informacyjne

Transcript of Technologie Informacyjne - Mikroprocesor · Federico Faggin Zawarcie wszystkich podzespoów...

Page 1: Technologie Informacyjne - Mikroprocesor · Federico Faggin Zawarcie wszystkich podzespoów wchodzcych w skad CPU w jednym chipie dao pocztek ery mikroprocesorów. Federico Faggin

Model von Neumanna ALU CPU Cykl rozkazów Kodowanie rozkazów Programowanie Mikroprocesor

Technologie InformacyjneMikroprocesor

Adam Krasuski

Szkoła Główna Służby PożarniczejZakład Informatyki i Łączności

November 7, 2016

Adam Krasuski Technologie Informacyjne

Page 2: Technologie Informacyjne - Mikroprocesor · Federico Faggin Zawarcie wszystkich podzespoów wchodzcych w skad CPU w jednym chipie dao pocztek ery mikroprocesorów. Federico Faggin

Model von Neumanna ALU CPU Cykl rozkazów Kodowanie rozkazów Programowanie Mikroprocesor

1 Model von Neumanna

2 ALU

3 CPU

4 Cykl rozkazów

5 Kodowanie rozkazów

6 Programowanie

7 Mikroprocesor

Adam Krasuski Technologie Informacyjne

Page 3: Technologie Informacyjne - Mikroprocesor · Federico Faggin Zawarcie wszystkich podzespoów wchodzcych w skad CPU w jednym chipie dao pocztek ery mikroprocesorów. Federico Faggin

Model von Neumanna ALU CPU Cykl rozkazów Kodowanie rozkazów Programowanie Mikroprocesor

Programowanie wczesnych komputerów

Programowanie wczesnych komputerów (np. ENIAC) polegało na fizycznym przełączaniu przewodów.

Pamięć była wykorzystywana tylko do przechowywania danych przetwarzanych przez program.

Adam Krasuski Technologie Informacyjne

Page 4: Technologie Informacyjne - Mikroprocesor · Federico Faggin Zawarcie wszystkich podzespoów wchodzcych w skad CPU w jednym chipie dao pocztek ery mikroprocesorów. Federico Faggin

Model von Neumanna ALU CPU Cykl rozkazów Kodowanie rozkazów Programowanie Mikroprocesor

John von Neumann (1903 - 1957)

inżynier chemik, fizyk, matematyk i informatyk

Obecne komputery realizują model zaproponowany przez Johna Von Neumanna w 1946 r.:

- Procesor (Central Processing Unit CPU) wykonuje program zbudowany ze skończonej, zdefiniowanej dla danej architektury listy rozkazów.

- Program oraz dane są przechowywane w pamięci.

Komputer według Johna Von Neumanna

Adam Krasuski Technologie Informacyjne

Page 5: Technologie Informacyjne - Mikroprocesor · Federico Faggin Zawarcie wszystkich podzespoów wchodzcych w skad CPU w jednym chipie dao pocztek ery mikroprocesorów. Federico Faggin

Model von Neumanna ALU CPU Cykl rozkazów Kodowanie rozkazów Programowanie Mikroprocesor

We/Wy

magistrala sterująca

magistrala adresowa

magistrala danych

Elementy systemu mikroprocesorowego

MikroprocesorPamięć Układy Wejścia-Wyjścia

Adam Krasuski Technologie Informacyjne

Page 6: Technologie Informacyjne - Mikroprocesor · Federico Faggin Zawarcie wszystkich podzespoów wchodzcych w skad CPU w jednym chipie dao pocztek ery mikroprocesorów. Federico Faggin

Model von Neumanna ALU CPU Cykl rozkazów Kodowanie rozkazów Programowanie Mikroprocesor

Magistrale

Wszystkie moduły są połączone za pośrednictwem magistral, które służą do przesyłania:

- danych, - adresów, - sygnałów sterujących

magistrala danych

magistrala adresowa

magistrala sterująca

Szyna główna

Adam Krasuski Technologie Informacyjne

Page 7: Technologie Informacyjne - Mikroprocesor · Federico Faggin Zawarcie wszystkich podzespoów wchodzcych w skad CPU w jednym chipie dao pocztek ery mikroprocesorów. Federico Faggin

Model von Neumanna ALU CPU Cykl rozkazów Kodowanie rozkazów Programowanie Mikroprocesor

Schemat blokowy komputera

Układy We/wy Pamięć

Program

Dane

Mikroprocesor

Układsterowania

ALU

Rejestry

Dane

Sterowanie

Adam Krasuski Technologie Informacyjne

Page 8: Technologie Informacyjne - Mikroprocesor · Federico Faggin Zawarcie wszystkich podzespoów wchodzcych w skad CPU w jednym chipie dao pocztek ery mikroprocesorów. Federico Faggin

Model von Neumanna ALU CPU Cykl rozkazów Kodowanie rozkazów Programowanie Mikroprocesor

Arithmetic Logic Unit

ALU

Adam Krasuski Technologie Informacyjne

Page 9: Technologie Informacyjne - Mikroprocesor · Federico Faggin Zawarcie wszystkich podzespoów wchodzcych w skad CPU w jednym chipie dao pocztek ery mikroprocesorów. Federico Faggin

Model von Neumanna ALU CPU Cykl rozkazów Kodowanie rozkazów Programowanie Mikroprocesor

Rejestry przesuwające

R0 R1

R0 R1

OUT

IN

IN

OUT

R

L

SHR

SHL

8 bit in

8 bit in

8 bit out

8 bit out

CI

CI

CO

CO

Adam Krasuski Technologie Informacyjne

Page 10: Technologie Informacyjne - Mikroprocesor · Federico Faggin Zawarcie wszystkich podzespoów wchodzcych w skad CPU w jednym chipie dao pocztek ery mikroprocesorów. Federico Faggin

Model von Neumanna ALU CPU Cykl rozkazów Kodowanie rozkazów Programowanie Mikroprocesor

yab

EXOR

a b y0 0 00 1 11 0 11 1 0

yab

równe a większe

równe a większe

0001111100100000a

b

Adam Krasuski Technologie Informacyjne

Page 11: Technologie Informacyjne - Mikroprocesor · Federico Faggin Zawarcie wszystkich podzespoów wchodzcych w skad CPU w jednym chipie dao pocztek ery mikroprocesorów. Federico Faggin

Model von Neumanna ALU CPU Cykl rozkazów Kodowanie rozkazów Programowanie Mikroprocesor

EXOR

OR

AND

NOT

E

E

E

E

E

E

E

3x8

SHL

ADD

SHR

Z

a

b y

op

ci

co

a większe

równe

zero

ALU

ALU

op

ci

ba y

coa większerównezero

000 ADD Dodaj001 SHR Przesuń w prawo010 SHL Przesuń w lewo011 NOT Zaprzeczenie100 AND Iloczyn101 OR Suma110 XOR Exclusive or111 CMP Porównaj

Adam Krasuski Technologie Informacyjne

Page 12: Technologie Informacyjne - Mikroprocesor · Federico Faggin Zawarcie wszystkich podzespoów wchodzcych w skad CPU w jednym chipie dao pocztek ery mikroprocesorów. Federico Faggin

Model von Neumanna ALU CPU Cykl rozkazów Kodowanie rozkazów Programowanie Mikroprocesor

CPU

ALU

MAR

R1 R2 R3R0

RA

M

bus 1

TMP

A B

ACC

s e s e s e s e

CUUkład

sterowania

s

e

s

e

s

op

coa>eqz

s

źródło: na podstawie [1]

Adam Krasuski Technologie Informacyjne

Page 13: Technologie Informacyjne - Mikroprocesor · Federico Faggin Zawarcie wszystkich podzespoów wchodzcych w skad CPU w jednym chipie dao pocztek ery mikroprocesorów. Federico Faggin

Model von Neumanna ALU CPU Cykl rozkazów Kodowanie rozkazów Programowanie Mikroprocesor

Zegar

Clock

clk

clk d

clkclk d clk e

clk s

Clockclkclk eclk s

Adam Krasuski Technologie Informacyjne

Page 14: Technologie Informacyjne - Mikroprocesor · Federico Faggin Zawarcie wszystkich podzespoów wchodzcych w skad CPU w jednym chipie dao pocztek ery mikroprocesorów. Federico Faggin

Model von Neumanna ALU CPU Cykl rozkazów Kodowanie rozkazów Programowanie Mikroprocesor

StepperStepper

krok1

krok2

krok3

krok4

krok5

krok6

krok7

clk

reset

clk

krok 1

krok 2

krok 3

krok 4

krok 5

krok 6

krok 7

źródło: na podstawie [1]

Adam Krasuski Technologie Informacyjne

Page 15: Technologie Informacyjne - Mikroprocesor · Federico Faggin Zawarcie wszystkich podzespoów wchodzcych w skad CPU w jednym chipie dao pocztek ery mikroprocesorów. Federico Faggin

Model von Neumanna ALU CPU Cykl rozkazów Kodowanie rozkazów Programowanie Mikroprocesor

CU

Stepperclk

clk s

clk ereset

źródło: na podstawie [1]

1 2 3 4 5 6 7

Clock

RAM

ACC

R0

R1

R2

R3

R0

R1

R2

R3

TMP

RAM

ACC

MAR

doALU

bus1

Adam Krasuski Technologie Informacyjne

Page 16: Technologie Informacyjne - Mikroprocesor · Federico Faggin Zawarcie wszystkich podzespoów wchodzcych w skad CPU w jednym chipie dao pocztek ery mikroprocesorów. Federico Faggin

Model von Neumanna ALU CPU Cykl rozkazów Kodowanie rozkazów Programowanie Mikroprocesor

CU

Stepperclk

clk s

clk ereset

źródło: na podstawie [1]

1 2 3 4 5 6 7

Clock

RAM

ACC

R0

R1

R2

R3

R0

R1

R2

R3

TMP

RAM

ACC

MAR

doALU

bus1

Adam Krasuski Technologie Informacyjne

Page 17: Technologie Informacyjne - Mikroprocesor · Federico Faggin Zawarcie wszystkich podzespoów wchodzcych w skad CPU w jednym chipie dao pocztek ery mikroprocesorów. Federico Faggin

Model von Neumanna ALU CPU Cykl rozkazów Kodowanie rozkazów Programowanie Mikroprocesor

CPU

ALU

MAR

R1 R2 R3R0

RA

M

bus 1

TMP

A B

ACC

s e s e s e s e

CUUkład

sterowania

s

e

s

e

s

op

coa>eqz

s

źródło: na podstawie [1]

IRIARs e

s

Adam Krasuski Technologie Informacyjne

Page 18: Technologie Informacyjne - Mikroprocesor · Federico Faggin Zawarcie wszystkich podzespoów wchodzcych w skad CPU w jednym chipie dao pocztek ery mikroprocesorów. Federico Faggin

Model von Neumanna ALU CPU Cykl rozkazów Kodowanie rozkazów Programowanie Mikroprocesor

Cykl rozkazowy mikroprocesora

Pobierz rozkaz

Zwiększ licznik rozkazów

Zdekoduj rozkaz

Wykonaj rozkaz Faza wykonania

Faza pobrania

Adam Krasuski Technologie Informacyjne

Page 19: Technologie Informacyjne - Mikroprocesor · Federico Faggin Zawarcie wszystkich podzespoów wchodzcych w skad CPU w jednym chipie dao pocztek ery mikroprocesorów. Federico Faggin

Model von Neumanna ALU CPU Cykl rozkazów Kodowanie rozkazów Programowanie Mikroprocesor

CU

źródło: na podstawie [1]

Stepperclk

clk s

clk ereset

1 2 3 4 5 6 7

Clock

IAR

RAM

ACC ACC

IAR

MAR

doALU

bus1 IR

IR s

Adam Krasuski Technologie Informacyjne

Page 20: Technologie Informacyjne - Mikroprocesor · Federico Faggin Zawarcie wszystkich podzespoów wchodzcych w skad CPU w jednym chipie dao pocztek ery mikroprocesorów. Federico Faggin

Model von Neumanna ALU CPU Cykl rozkazów Kodowanie rozkazów Programowanie Mikroprocesor

Cykl rozkazów

MAR

IARACC

ALU

IR

bus11

MAR

IARACC

ALU

IR

bus1

MAR

IARACC

ALU

IR

bus1

1

2

3

Adam Krasuski Technologie Informacyjne

Page 21: Technologie Informacyjne - Mikroprocesor · Federico Faggin Zawarcie wszystkich podzespoów wchodzcych w skad CPU w jednym chipie dao pocztek ery mikroprocesorów. Federico Faggin

Model von Neumanna ALU CPU Cykl rozkazów Kodowanie rozkazów Programowanie Mikroprocesor

Kodowanie rozkazów - ALU

Operacja

000 - ADD001 - SHL010 - SHR011 - NOT100 - AND101 - OR110 - XOR111 - CMP

Rejestr Instrukcji

Rejestr A

00 - REG 001 - REG 110 - REG 211 - REG 3

Rejestr B

00 - REG 001 - REG 110 - REG 211 - REG 3

InstrukcjaALU

1

28=256 rozkazów

ADD REG1 REG21 000 01 10

10000110

Adam Krasuski Technologie Informacyjne

Page 22: Technologie Informacyjne - Mikroprocesor · Federico Faggin Zawarcie wszystkich podzespoów wchodzcych w skad CPU w jednym chipie dao pocztek ery mikroprocesorów. Federico Faggin

Model von Neumanna ALU CPU Cykl rozkazów Kodowanie rozkazów Programowanie Mikroprocesor

Kodowanie rozkazów - inne

0 - ŁADUJ1 - ZAPISZ

Rejestr Instrukcji

Rejestr A

00 - REG 001 - REG 110 - REG 211 - REG 3

Rejestr B

00 - REG 001 - REG 110 - REG 211 - REG 3

InstrukcjaŁADUJ/ZAPISZ

0

LD REG1 REG20 000 01 10

00000110

0 0

Adam Krasuski Technologie Informacyjne

Page 23: Technologie Informacyjne - Mikroprocesor · Federico Faggin Zawarcie wszystkich podzespoów wchodzcych w skad CPU w jednym chipie dao pocztek ery mikroprocesorów. Federico Faggin

Model von Neumanna ALU CPU Cykl rozkazów Kodowanie rozkazów Programowanie Mikroprocesor

CU

źródło: na podstawie [1]

Stepperclk

clk s

clk ereset

1 2 3 4 5 6 7

Clock

IAR

RAM

ACC ACC

IAR

MAR

doALU

bus1 IR

IR s

Układ

kombinacyjny

Adam Krasuski Technologie Informacyjne

Page 24: Technologie Informacyjne - Mikroprocesor · Federico Faggin Zawarcie wszystkich podzespoów wchodzcych w skad CPU w jednym chipie dao pocztek ery mikroprocesorów. Federico Faggin

Model von Neumanna ALU CPU Cykl rozkazów Kodowanie rozkazów Programowanie Mikroprocesor

CPU

ALU

MAR

R1 R2 R3R0

RA

M

bus 1

TMP

A B

ACC

s e s e s e s e

CUUkład

sterowania

s

e

s

e

s

op

s

źródło: na podstawie [1]

IRIARs e

s

CAEZ

Flagi

Adam Krasuski Technologie Informacyjne

Page 25: Technologie Informacyjne - Mikroprocesor · Federico Faggin Zawarcie wszystkich podzespoów wchodzcych w skad CPU w jednym chipie dao pocztek ery mikroprocesorów. Federico Faggin

Model von Neumanna ALU CPU Cykl rozkazów Kodowanie rozkazów Programowanie Mikroprocesor

Ta, daa!

Adam Krasuski Technologie Informacyjne

Page 26: Technologie Informacyjne - Mikroprocesor · Federico Faggin Zawarcie wszystkich podzespoów wchodzcych w skad CPU w jednym chipie dao pocztek ery mikroprocesorów. Federico Faggin

Model von Neumanna ALU CPU Cykl rozkazów Kodowanie rozkazów Programowanie Mikroprocesor

Program krok po kroku

Ale jak to działa?

Adam Krasuski Technologie Informacyjne

Page 27: Technologie Informacyjne - Mikroprocesor · Federico Faggin Zawarcie wszystkich podzespoów wchodzcych w skad CPU w jednym chipie dao pocztek ery mikroprocesorów. Federico Faggin

Model von Neumanna ALU CPU Cykl rozkazów Kodowanie rozkazów Programowanie Mikroprocesor

Programowanie

#include <stdio.h> main() { int a, b, c; a=1; b=2; c=a+b; if(c<10) { printf("c mniejsze od 10\n"); } }

.file "helo.c" .section .rodata .LC0: .string "c mniejsze od 10\n" .text .globl main .type main, @function main: pushl %ebp movl %esp, %ebp subl $24, %esp andl $-16, %esp movl $0, %eax subl %eax, %esp movl $1, -4(%ebp) movl $2, -8(%ebp) movl -8(%ebp), %eax addl -4(%ebp), %eax movl %eax, -12(%ebp) cmpl $9, -12(%ebp) jg .L2 subl $12, %esp pushl $.LC0 call printf addl $16, %esp .L2: leave ret .size main, .-main

001010101010101101101110101011101010101001010110101010101001000101010100101001010101001001101010101001011101010100101010101010100010000010100101000011000000101010100010101010101111000111101010101101010111110101111101110001111101010111101011

Język wysokiego poziomu Kod Asemblera Kod maszynowy

Kompilator

Asembler

(C, Java, Pascal, Perl, ...)

Adam Krasuski Technologie Informacyjne

Page 28: Technologie Informacyjne - Mikroprocesor · Federico Faggin Zawarcie wszystkich podzespoów wchodzcych w skad CPU w jednym chipie dao pocztek ery mikroprocesorów. Federico Faggin

Model von Neumanna ALU CPU Cykl rozkazów Kodowanie rozkazów Programowanie Mikroprocesor

Microprocesor

Zawarcie wszystkich podzespołów wchodzących w skład CPU w jednym chipie dało początek ery mikroprocesorów.

Pierwszy komercyjny mikroprocesor o nazwie Intel 4004 zaprojektowany został przez Federico Faggina w 1971 roku.

Parametry:- zegar 108 kHz - 0,09 MIPS - szyna danych 4 bity- ilość tranzystorów 2 300, - wymiar technologiczny 10 mikronów - pamięć adresowalna 640 bajtów - pamięć programu 4 kilobajty

używany w kalkulatorach Busicom

Pierwszym na świecie procesorem był ściśle tajny "chip" F14 CADC używany w samolocie Grumman F-14 Tomcat. Informacja ta została podana do publicznej wiadomości w 1998 roku

Adam Krasuski Technologie Informacyjne

Page 29: Technologie Informacyjne - Mikroprocesor · Federico Faggin Zawarcie wszystkich podzespoów wchodzcych w skad CPU w jednym chipie dao pocztek ery mikroprocesorów. Federico Faggin

Model von Neumanna ALU CPU Cykl rozkazów Kodowanie rozkazów Programowanie Mikroprocesor

Federico Faggin

Zawarcie wszystkich podzespołów wchodzących w skład CPU w jednym chipie dało początek ery mikroprocesorów.

Federico Faggin (ur. 1941 r.)włoski fizyk, specjalista

inżynierii elektrycznej, uważany za jednego z twórców

mikroprocesora.

W 1970 wspólnie z trzema innymi inżynierami (Marcianem Hoffem, Stanleyem Mazorem i Masatoshim Shimą) opracował pierwszy 4-bitowy mikroprocesor, Intel 4004. Współtworzył także pierwszy procesor 8-bitowy, Intel 8008

Faggin opuścił Intel aby założyć firmę Zilog, producenta Z80.

Adam Krasuski Technologie Informacyjne

Page 30: Technologie Informacyjne - Mikroprocesor · Federico Faggin Zawarcie wszystkich podzespoów wchodzcych w skad CPU w jednym chipie dao pocztek ery mikroprocesorów. Federico Faggin

Model von Neumanna ALU CPU Cykl rozkazów Kodowanie rozkazów Programowanie Mikroprocesor

Mikrokontroler AVR

AVRCPU

MAGISTRALA DANYCH

RA

M

FLA

SH

EEP

RO

M

WE/WY TIMER

Pośrednie i bezpośrednie adresowanie

Pobierz rozkaz

Zwiększ licznik rozkazów

Zdekoduj rozkaz

Wykonaj rozkaz

Adam Krasuski Technologie Informacyjne

Page 31: Technologie Informacyjne - Mikroprocesor · Federico Faggin Zawarcie wszystkich podzespoów wchodzcych w skad CPU w jednym chipie dao pocztek ery mikroprocesorów. Federico Faggin

Model von Neumanna ALU CPU Cykl rozkazów Kodowanie rozkazów Programowanie Mikroprocesor

Adam Krasuski Technologie Informacyjne