Technologie Informacyjne - Mikroprocesor · Federico Faggin Zawarcie wszystkich podzespoów...
Transcript of Technologie Informacyjne - Mikroprocesor · Federico Faggin Zawarcie wszystkich podzespoów...
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
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
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
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
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
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
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
Model von Neumanna ALU CPU Cykl rozkazów Kodowanie rozkazów Programowanie Mikroprocesor
Arithmetic Logic Unit
ALU
Adam Krasuski Technologie Informacyjne
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Model von Neumanna ALU CPU Cykl rozkazów Kodowanie rozkazów Programowanie Mikroprocesor
Ta, daa!
Adam Krasuski Technologie Informacyjne
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
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
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
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
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
Model von Neumanna ALU CPU Cykl rozkazów Kodowanie rozkazów Programowanie Mikroprocesor
Adam Krasuski Technologie Informacyjne