390 likes | 559 Views
Mikroprotsessorid. Alvo Aabloo alvo@ut.ee. Kursuse eesmärgid. Anda sissejuhatus mikroprotsessoritesse ja nende rakenduste tutvustamine Omandada riistvara lähedast mõtlemist Omandada kogemusi assembler keeles Omandada oskused programmeerida mikrokontrollereid Z80 seeria näitel
E N D
Mikroprotsessorid Alvo Aabloo alvo@ut.ee
Kursuse eesmärgid • Anda sissejuhatus mikroprotsessoritesse ja nende rakenduste tutvustamine • Omandada riistvara lähedast mõtlemist • Omandada kogemusi assembler keeles • Omandada oskused programmeerida mikrokontrollereid Z80 seeria näitel • Omandada teadmised FPGA kontrolleritest ja nende programmeerimisest VHDL keelest
Omandatavad oskused • Oskus hinnata püstitatud ülesande teostatavust protsessorit sisalduva seadme abil • Oskus programmeerida lihtsat ülesannet mikroprotsessoril assembleris • Oskus kasutada FPGA kontrollerit • Oskus leida ja kasutada programmeerimiseks vajalikku informatsiooni
Keelekümblus • Tehniline dokumentatsioon on praegusel ajal valdavalt inglise keelne • Isegi kui levinud asjad tõlkida eesti keelde, on vaja selleks, et töötada valdkonnas, õppida lugema tehnilist dokumentatsiooni võõrkeeles
Töökorraldus • Loengud 3 tk Z80/assembler • Praktikum Z80/assembler (30% hindest) • Kontrolltöö (valiktest) (15% hindest, E) • Loeng FPGA/VHDL 5 tk • Praktikum FPGA/VHDL 5 tk (40% hindest) • Kontrolltöö (valiktest)(15% hindest, E) • Eksam(kontrolltööde järgi tegemine)
Veidi ajalugu • Mikroprotsessori areng on olulisel määral seotud integraallülituste arenguga • Aastal 1969 Jaapani insenerid firmast BUSICOM tegid INTELi firmale ettepaneku arendada lülitused kalkulaatorite tarbeks
Marcian Hoff • Oli tegelenud PDP8 arvuti arendusega • Pakkus välja uudse idee, mille jaapanlased aktsepteerisid • Frederico Fraggin • 9 kuud arendust
INTEL 4004 • Aasta 1971 • Ostsid õigused ära BUSICOM firmalt, kes ei saanud aru lahenduse võimsusest • 4-bit • 6000 op/sec
8 bitti • CTC tellis Intelilt ja Texas Instruments firmadelt 8 bitise protsessori • CTC loobus • TI aastal 1972 8008
TI 8008 • 8 bit • 16kB • 45 intruktsiooni • 300 000 op/sec
Intel 8080 • Aasta 1974 • 8 bit • 64kB mälu • 75 instruktsiooni • $360
6800 • Motorola • 8bit • Chuck Peddle • MOS Technology • 6502 • Hinnalangus Atari, Apple, Commodore
Zilog • Frederico Faggin • 1976 Z80 • 1975 8085 • Z80 >> 8085 • Personaalarvutite ajastu algus
16-bit protsessor • National SemiconductorIMP-16, 1973 • Digital Equipment Corporation (DEC)LSI-11jaPDP 11/03minicomputer • Fairchild Semiconductor MicroFlame 9440 • 1976 • single-chip 16-bit TI's TMS 9900 • 16-bit Intel 8086 - 80286
32-bit • Aga MC68000, in 1979 32 bit registrid • Fully-32-bit microprocessorAT&TBell Labs BELLMAC-32A, in 1980 • Intel's 32-bit microprocessor iAPX 432, in 1981 • 1985, 32-bit Intel 80386, personaalarvutid • Zilog Z8000, aga suri kiirelt
80’ndate mikroprotsessorite konkurents • Võitis x86, ja peamiselt Intel
64-bit • PowerPCprotsessorid, 90 algusel • AMD64, in September 2003 • Intel's x86-64 chips
Multicore • Üks chip, mitu mikroprotsessorit • 2005 dualcore • 2006 quadcore
RISC (Reduced Instruction Set) • 1980-1990 • MIPS technologies, R2000 32-bit • IBM POWER, Sun SPARC • AT&CRISP, AMD 29000, Interl i860, i960, DEC-ALPHA, Mototola 88000
Mikrokontroller versus mikroprotsessor • Peamine erinevus on funktsionaalsus • Mikroprotsessor kui seadme süda • Mikrokontroller kui seade • Piir udune • DSP, GPU jne..
Z80 • Zilog Corporation • Miks Z80? • Kirjandus: • The Z80 microprocessor, Ramesh S. Gaonkar, ISBN 0-13-025518-1 • http://www.z80.info • http://digi.physic.ut.ee->õppetö->mikroprotsessorid
Z80 • Kvartsi kiirus: Z80 - 2.5MHz, Z80A - 4MHz up to 25MHz • Võimsustarve: Z80 - 5V@60mA, Z80A - 5V@90mA • Instruktsioonide arv: 158 (78 neist ühilddub 8088) CISC (Complex Instruction Set Computing) • Registreid: 14 • 8-bit CPU, 16-bitine aadress, 64K mälu
Bit, Bait, Sõna • Bit ehk Binary Digit, Number kahendarvusüsteemis • Bait, bittide kogum, üldjuhul 8 bitti • Bittide nummerdamine • Sõna ehk word, arvutiandme ühik • 8bit, 16bit, 32-bit, 64-bit, 128-bit • 1 bait, 2 baiti, 4 baiti, 8, 16... • kb, KB, Mb, MB,mB?
Siin ehk Bus • Andmete, aga ka näiteks pinge edasikandmiseks vajalik alamsüsteem • Ehk Traat • Siini laius, bittides • Andmesiin • Juhtsiin • Aadresssiin
Mälu • ROM,RAM, EEPROM • Aadress CS RD WR A3 A2 A1 A0 Andmesiin
Pinumälu ehk Stack • LIFO moodi mälupiirkonna kasutamine • LIFO Last In First Out • Push • Pop
Register • Protsessoris asuv mälu • Tavaliselt omistatakse talle nimi, täht
Programmeeritav seade • Mälu • ROM,RAM, EEPROM • Adresseerimine,mäluruum • ALU • Registrid • I/O • Programm
Z80 • Instruktsioonide arv: 158 (78 neist ühilddub 8088) CISC (Complex Instruction Set Computing) • Registreid: 14 • 8-bit CPU, 16-bitine aadress, 64K mälu
Masinkeel • Binaarne kuju • 11011001 • 00010111 • Hexadecimal • 1Ah, 5Bh
0110 0001 1+32+64=97 118 0111 0110 1,2,4,8 16,32,64,128 256,512,1024,2048, 4096,8192,16384,32768 65536... Kahendsüsteemis arvutamine
A4 10*16+4=164 912 Int(912/256) =3 (912-768)=144 144/16 =9 390 1,16,256,4096,65536 Heksasüsteemis arvutamine
Konverteerimine • ABCD • 1010 1011 1100 1101
Assembler • Mnemonik • Hexadecimal • LD B, 32H; lae bait • Käsk ehk instruction ehk opcode • Operand, ehk parameeter
Assembleri näide ORG 8000H LD SP,0FFFFH PPI1 EQU 37H PORTB1 EQU 35H LD A,90H OUT (PPI1),A LOOP: LD A,0 OUT (PORTB1),A CALL TIMER1 LD A,0FFH OUT (PORTB1),A CALL TIMER1 JP LOOP TIMER1: LD E,0AH J50: LD B,0FFH J51: LD D,0FFH J52:DEC D JP NZ,J52 DEC B JP NZ,J51 DEC E JP NZ,J50 RET END
Assembler • Definitsioonid • Lipikud • Kommentaarid • Makrod • Käsud ehk Instruktsioonid • Direktiivid
Cross assembler • Tõlgib assembleri masinkoodi • Tõlgib definitsioonid ja lipikud • Paigutab programmikoodi mällu