38
Microprocessors

Microprocessors - Universitas Brawijayablog.ub.ac.id/rizal/files/2012/01/3-Microprocessors.pdf · Microprocessors • Microprocessors come in all ... 8085 8088/6 80186 80286 80386

  • Upload
    vutuyen

  • View
    234

  • Download
    4

Embed Size (px)

Citation preview

Page 1: Microprocessors - Universitas Brawijayablog.ub.ac.id/rizal/files/2012/01/3-Microprocessors.pdf · Microprocessors • Microprocessors come in all ... 8085 8088/6 80186 80286 80386

Microprocessors

Page 2: Microprocessors - Universitas Brawijayablog.ub.ac.id/rizal/files/2012/01/3-Microprocessors.pdf · Microprocessors • Microprocessors come in all ... 8085 8088/6 80186 80286 80386

Outline

• Microprocessors•  History•  Datawidth•  8086vs8088•  8086pindescrip7on•  Z80Pindescrip7on

Page 3: Microprocessors - Universitas Brawijayablog.ub.ac.id/rizal/files/2012/01/3-Microprocessors.pdf · Microprocessors • Microprocessors come in all ... 8085 8088/6 80186 80286 80386

Microprocessors •  Microprocessorscomeinallkindsofvarie7esfromthe

verysimpletotheverycomplex

•  DependondatabusandregisterandALUwidthuPcouldbe4‐bit,8‐bit,16‐bit,32‐bit,64‐bit

•  Wewilldiscusstwosampleofit–  Z80asan8‐bituP–  and8086/88asan16‐bituP

•  AlluPshave–  theaddressbus–  thedatabus–  RD,WR,CLK,RST,INT,...

Page 4: Microprocessors - Universitas Brawijayablog.ub.ac.id/rizal/files/2012/01/3-Microprocessors.pdf · Microprocessors • Microprocessors come in all ... 8085 8088/6 80186 80286 80386

History

Company 4 bit 8 bit 16 bit 32 bit 64 bit

intel 4004 4040

8008 8080 8085

8088/6 80186 80286

80386 80486

80860 pentium

zilog Z80 Z8000 Z8001 Z8002

Motorola 6800 6802 6809

68006 68008 68010

68020 68030 68040

Page 5: Microprocessors - Universitas Brawijayablog.ub.ac.id/rizal/files/2012/01/3-Microprocessors.pdf · Microprocessors • Microprocessors come in all ... 8085 8088/6 80186 80286 80386

Internal and External Bus

•  InternalbusisapathwayfordatatransferbetweenregistersandALUintheuPs

•  ExternalbusisavailableexternallytoconnecttoRAM,ROMandI/O

•  Int.andExt.Buswidthmaybedifferent

•  Forexample– In8088Int.Busis16‐bit,Ext.busis8‐bit– In8086Int.Busis16‐bit,Ext.busis16‐bit

Page 6: Microprocessors - Universitas Brawijayablog.ub.ac.id/rizal/files/2012/01/3-Microprocessors.pdf · Microprocessors • Microprocessors come in all ... 8085 8088/6 80186 80286 80386

8086 vs 8088

16_bit Data Bus 20_bit Address

8_bit Data Bus

20_bit Address

8088 8086

Only external bus of 8088 is 8_bit

Page 7: Microprocessors - Universitas Brawijayablog.ub.ac.id/rizal/files/2012/01/3-Microprocessors.pdf · Microprocessors • Microprocessors come in all ... 8085 8088/6 80186 80286 80386

8086PinAssignment

Page 8: Microprocessors - Universitas Brawijayablog.ub.ac.id/rizal/files/2012/01/3-Microprocessors.pdf · Microprocessors • Microprocessors come in all ... 8085 8088/6 80186 80286 80386

8086 Pin Description Vcc(pin40):Power

Gnd(pin1and20):Ground

AD0..AD7,A8..A15,A19/S6,A18/S5,A17/S4,A16/S3:20‐bitAddressBus

MN/MX’(input):IndicatesOpera7ngmode

READY(input,Ac7veHigh):takeuPtowaitstate

CLK(input):Providesbasic7mingfortheprocessor

RESET(input,Ac7veHigh):Atleast4clockcyclesCausestheuPimmediatelyterminateitspresentac7vity.

TEST’(input,Ac7veLow):ConnectthistoHIGH

HOLD(input,Ac7veHigh):ConnectthistoLOW

HLDA(output,Ac7veHigh):HoldAck

INTR(input,Ac7veHigh):Interruptrequest

INTA’(output,Ac7veLow):InterruptAcknowledgeNMI(input,Ac7veHigh):Non‐maskableinterrupt

Page 9: Microprocessors - Universitas Brawijayablog.ub.ac.id/rizal/files/2012/01/3-Microprocessors.pdf · Microprocessors • Microprocessors come in all ... 8085 8088/6 80186 80286 80386

8086 Pin Description

DEN’(output):DataEnable.ItisLOWwhenprocessorwantstoreceivedataorprocessorisgivingoutdata(to74245)

DT/R’(output):DataTransmit/Receive.WhenHigh,datafromuPtomemory

WhenLow,dataisfrommemorytouP(to74245dir)

IO/M’(output):IfHighuPaccessI/ODevice.IfLowuPaccessmemory

RD’(output):WhenLow,uPisperformingareadopera7on

WR’(output):WhenLow,uPisperformingawriteopera7on

ALE(output):AddressLatchEnable,Ac7veHighProvidedbyuPtolatchaddressWhenHIGH,uPisusingAD0..AD7,A19/S6,A18/S5,A17/S4,A16/S3asaddresslines

Page 10: Microprocessors - Universitas Brawijayablog.ub.ac.id/rizal/files/2012/01/3-Microprocessors.pdf · Microprocessors • Microprocessors come in all ... 8085 8088/6 80186 80286 80386

Z80 CPU Pin Assignment

Page 11: Microprocessors - Universitas Brawijayablog.ub.ac.id/rizal/files/2012/01/3-Microprocessors.pdf · Microprocessors • Microprocessors come in all ... 8085 8088/6 80186 80286 80386

Z80 Pin DescriptionA15-A0 : Address bus (output, active high, 3-state). Used for accessing the memory and I/O ports During the refresh cycle the I is put on this bus. D7-D0 : Data Bus (input/output, active high, 3-state). Used for data exchanges with memory, I/O and interrupts. RD: Read (output, active Low, 3-state) indicates that the CPU wants to read data from memory or I/O WR: Write (output, active Low, 3-state) indicates that the CPU data bus holds valid data to be stored at the addressed memory or I/O location.

Page 12: Microprocessors - Universitas Brawijayablog.ub.ac.id/rizal/files/2012/01/3-Microprocessors.pdf · Microprocessors • Microprocessors come in all ... 8085 8088/6 80186 80286 80386

Z80 Pin Description MREQ Memory Request (output, active Low, 3-state). Indicates memory read/write operation. See M1 IORQ Input/Output Request(output,active Low,3-state) Indicates I/O read/write operation. See M1 M1 Machine Cycle One (output, active Low). Together with MREQ indicatesopcode fetch cycle Together with IORQ indicates an Int Ack cycleRFSH Refresh (output, active Low). Together with MREQ indicates refresh cycle. Lower 7-bits address is refresh address to DRAM

Page 13: Microprocessors - Universitas Brawijayablog.ub.ac.id/rizal/files/2012/01/3-Microprocessors.pdf · Microprocessors • Microprocessors come in all ... 8085 8088/6 80186 80286 80386

Z80 Pin Description  INT

 Interrupt Request (input, active Low).  Interrupt Request is generated by I/O devices.  Checked at the end of the current instruction  If flip-flop (IFF) is enabled.

 NMI  Non-Maskable Interrupt  (Input, negative edge-triggered).  Higher priority than INT.  Recognized at the end of the current Instruction  Independent of the status of IFF  Forces the CPU to restart at location 0066H.

Page 14: Microprocessors - Universitas Brawijayablog.ub.ac.id/rizal/files/2012/01/3-Microprocessors.pdf · Microprocessors • Microprocessors come in all ... 8085 8088/6 80186 80286 80386

Z80 Pin Description  BUSREQ

 Bus Request (input, active Low).  higher priority than NMI  recognized at the end of the current machine cycle.  forces the CPU address bus, data bus, and MREQ, IORQ, RD, and WR to high-imp.

 BUSACK  Bus Acknowledge (output, active,Low)  indicates to the requesting device that address, data, and control signals MREQ, IORQ, RD, and WR have entered their high-impedance states.

Page 15: Microprocessors - Universitas Brawijayablog.ub.ac.id/rizal/files/2012/01/3-Microprocessors.pdf · Microprocessors • Microprocessors come in all ... 8085 8088/6 80186 80286 80386

Z80 Pin Description RESET Reset (input, active Low). RESET initializes the CPU as follows: Resets the IFF Clears the PC and registers I and R Sets the interrupt status to Mode 0. During reset time, the address and data bus go to a high-impedance state And all control output signals go to the inactive state. must be active for a minimum of three full clock cycles before the reset operation is complete.

Page 16: Microprocessors - Universitas Brawijayablog.ub.ac.id/rizal/files/2012/01/3-Microprocessors.pdf · Microprocessors • Microprocessors come in all ... 8085 8088/6 80186 80286 80386

Z80 CPU

Page 17: Microprocessors - Universitas Brawijayablog.ub.ac.id/rizal/files/2012/01/3-Microprocessors.pdf · Microprocessors • Microprocessors come in all ... 8085 8088/6 80186 80286 80386

Z80 Programming Model

Page 18: Microprocessors - Universitas Brawijayablog.ub.ac.id/rizal/files/2012/01/3-Microprocessors.pdf · Microprocessors • Microprocessors come in all ... 8085 8088/6 80186 80286 80386

Register Set

•  A:AccumulatorRegister•  F:Flagregister•  Twosetsofsixgeneral‐purposeregisters

– maybeusedindividuallyas8‐bitAFBCDEHL(A’F’B’C’D’E’H’L’)

– orinpairsas16‐bitregistersAFBCDEHL(AF’BC’DE’HL’)•  TheAlterna7veregisters(A’F’B’C’D’E’H’L’)notvisibletotheprogrammerbutcanaccessvia:– EXX(BC)<‐>(BC'),(DE)<‐>(DE'),(HL)<‐>(HL')– EXAF,AF’(AF)<‐>(AF')whatisthisinstruc7onusefulfor?

Page 19: Microprocessors - Universitas Brawijayablog.ub.ac.id/rizal/files/2012/01/3-Microprocessors.pdf · Microprocessors • Microprocessors come in all ... 8085 8088/6 80186 80286 80386

Register Set(cont) •  416‐bitregistersholdmemoryaddress(pointers)

–  indexregisters(IX)and(IY)are16‐bitmemorypointers

–  16bitstackpointer(SP)–  Programcounter(PC)

•  Programcounter(PC)–  PCpointstothenextopcodetobefetchedfromROM

–  whentheµPplacesanaddressontheaddressbustofetchthebytefrommemory,itthenincrementstheprogramcounterbyonetothenextloca7on

•  Specialpurposeregisters–  I:Interruptvectorregister.–  R:memoryRefreshregister

Page 20: Microprocessors - Universitas Brawijayablog.ub.ac.id/rizal/files/2012/01/3-Microprocessors.pdf · Microprocessors • Microprocessors come in all ... 8085 8088/6 80186 80286 80386

Flag Register

S SignFlag(1:nega-v)*Z ZeroFlag(1:Zero)H HalfCarryFlag(1:CarryfromBit3toBit4)**P ParityFlag(1:Even)V OverflowFlag(1:Overflow)*N Opera-onFlag(1:previousOpera-onwassubtrac-on)**C CarryFlag(1:CarryfromBitn‐1toBitn,

withnlengthofoperand)

*: 2‐complementnumberrepresenta-on**:usedinDAA‐opera-onforBCD‐arithme-c

Page 21: Microprocessors - Universitas Brawijayablog.ub.ac.id/rizal/files/2012/01/3-Microprocessors.pdf · Microprocessors • Microprocessors come in all ... 8085 8088/6 80186 80286 80386

DAA - Decimal Adjust Accumulator

before DAA after DAA

Op N C Bits 4-7 H Bits 0-3 A=A+.. C

ADD ADC

0 0 0-9 0 0-9 00 0 0 0 0-8 0 A-F 06 0 0 0 0-9 1 0-3 06 0 0 0 A-F 0 0-9 60 1 0 0 9-F 0 A-F 66 1 0 0 A-F 1 0-3 66 1 0 1 0-2 0 0-9 60 1 0 1 0-2 0 A-F 66 1 0 1 0-3 1 0-3 66 1

SUB SBC NEG

1 0 0-9 0 0-9 00 0 1 0 0-8 1 6-F FA 0 1 1 7-F 0 0-9 A0 1 1 1 6-F 1 6-F 9A 1

Adjusts the content of the Accumulator A for BCD addition and subtraction operations such as ADD, ADC, SUB, SBC, and NEG according to the table:

Page 22: Microprocessors - Universitas Brawijayablog.ub.ac.id/rizal/files/2012/01/3-Microprocessors.pdf · Microprocessors • Microprocessors come in all ... 8085 8088/6 80186 80286 80386

Instruction cycles, machine cycles and “T-states”

•  Instruc7oncycleisthe7metakentocompletetheexecu7onofaninstruc7on

•  Machinecycleisdefinedasthe7merequiredtocompleteoneopera7onofaccessingmemory,accessingIO,etc.

•  T‐state=1/f(f:Z80ClockFrequency)– f=4MHZT‐state=0.25uS

Page 23: Microprocessors - Universitas Brawijayablog.ub.ac.id/rizal/files/2012/01/3-Microprocessors.pdf · Microprocessors • Microprocessors come in all ... 8085 8088/6 80186 80286 80386

Basic CPU Timing Example

Page 24: Microprocessors - Universitas Brawijayablog.ub.ac.id/rizal/files/2012/01/3-Microprocessors.pdf · Microprocessors • Microprocessors come in all ... 8085 8088/6 80186 80286 80386

Opcode Fetch Bus Timings (M1 Cycle)

Page 25: Microprocessors - Universitas Brawijayablog.ub.ac.id/rizal/files/2012/01/3-Microprocessors.pdf · Microprocessors • Microprocessors come in all ... 8085 8088/6 80186 80286 80386

The R register

•  Isincreasedateveryfirstmachinecycle(M1).

•  Bit7ofitisneverchangedbythis;onlythelower7bitsareincludedintheaddi7on.Sobit7staysthesame

•  Bit7canbechangedusingtheLDR,Ainstruc7on.•  LDA,RandLDR,AaccesstheRregisteraneritisincreased•  Risonenusedinprogramsforarandomvalue,whichisgood

butofcoursenottrulyrandom.

 theblockinstruc7onsdecreasethePCwithtwo,sotheinstruc7onsarere‐executed.

Page 26: Microprocessors - Universitas Brawijayablog.ub.ac.id/rizal/files/2012/01/3-Microprocessors.pdf · Microprocessors • Microprocessors come in all ... 8085 8088/6 80186 80286 80386

Memory read/write cycle

Page 27: Microprocessors - Universitas Brawijayablog.ub.ac.id/rizal/files/2012/01/3-Microprocessors.pdf · Microprocessors • Microprocessors come in all ... 8085 8088/6 80186 80286 80386

AddingOneWaitStatetoanM1Cycle

Page 28: Microprocessors - Universitas Brawijayablog.ub.ac.id/rizal/files/2012/01/3-Microprocessors.pdf · Microprocessors • Microprocessors come in all ... 8085 8088/6 80186 80286 80386

AddingOneWaitStatetoAnyMemoryCycle

Page 29: Microprocessors - Universitas Brawijayablog.ub.ac.id/rizal/files/2012/01/3-Microprocessors.pdf · Microprocessors • Microprocessors come in all ... 8085 8088/6 80186 80286 80386

IO read/write cycle

During I/O operations a single wait state is automatically inserted

Page 30: Microprocessors - Universitas Brawijayablog.ub.ac.id/rizal/files/2012/01/3-Microprocessors.pdf · Microprocessors • Microprocessors come in all ... 8085 8088/6 80186 80286 80386

Bus Request/Acknowledge Cycle

Page 31: Microprocessors - Universitas Brawijayablog.ub.ac.id/rizal/files/2012/01/3-Microprocessors.pdf · Microprocessors • Microprocessors come in all ... 8085 8088/6 80186 80286 80386

Interrupt Request/Acknowledge Cycle

Two wait states are automatically added to this cycle

Page 32: Microprocessors - Universitas Brawijayablog.ub.ac.id/rizal/files/2012/01/3-Microprocessors.pdf · Microprocessors • Microprocessors come in all ... 8085 8088/6 80186 80286 80386

Non-Maskable Interrupt Request Operation

Page 33: Microprocessors - Universitas Brawijayablog.ub.ac.id/rizal/files/2012/01/3-Microprocessors.pdf · Microprocessors • Microprocessors come in all ... 8085 8088/6 80186 80286 80386

M1 Refresh Cycle

•  Takes4Tto6Ts•  Z80includesbuiltincircuitryforrefreshingDRAM

•  Thissimplifiestheexternalinterfacinghardware•  DRAMconsistsofMOStransistors,whichstoreInforma7onascapaci7vecharges;eachcellneedstobeperiodicallyrefreshed

•  DuringT3andT4(whenZ80isperforminginternalops),theloworderaddressisusedtosupplya7‐bitaddressforrefresh

Page 34: Microprocessors - Universitas Brawijayablog.ub.ac.id/rizal/files/2012/01/3-Microprocessors.pdf · Microprocessors • Microprocessors come in all ... 8085 8088/6 80186 80286 80386

Wait Signal

•  theZ80samplesthewaitsignalduringT2iflowthenZ80addswait

•  statestoextendthemachinecycle

•  usedtointerfacememorieswithslowresponse7me

•  Slowmemoryislowcost

Page 35: Microprocessors - Universitas Brawijayablog.ub.ac.id/rizal/files/2012/01/3-Microprocessors.pdf · Microprocessors • Microprocessors come in all ... 8085 8088/6 80186 80286 80386

Interrupts

Therearetwotypesofinterrupts:•  nonmask‐able(NMI)

– Couldnotbemasked– Jumpto0066Hofmemory

•  mask‐able(INT)– Has3mode– CanbesetwiththeIMxInstruc7on– IM0setsInterruptmode0– IM1setsInterruptmode1– IM2setsInterruptmode2

Page 36: Microprocessors - Universitas Brawijayablog.ub.ac.id/rizal/files/2012/01/3-Microprocessors.pdf · Microprocessors • Microprocessors come in all ... 8085 8088/6 80186 80286 80386

Interrupt Modes

•  Mode0:–  An8bitopcodeisFetchedfromDataBUSandexecuted

–  Thesourceinterruptdevicemustput8bitopcodeatdatabus–  8bitopcodeusuallyisRSTpinstruc7ons

•  Mode1:–  Ajumpismadetoaddress0038h

–  Novalueisrequiredatdatabus•  Mode2:

–  Ajumpismadetoaddress(registerI×256+valuefrominterrup7ngdevicethatputsatbus)

–  Iishigh8bitofinterruptvector–  Valueislow8bitofinterruptvector

Page 37: Microprocessors - Universitas Brawijayablog.ub.ac.id/rizal/files/2012/01/3-Microprocessors.pdf · Microprocessors • Microprocessors come in all ... 8085 8088/6 80186 80286 80386
Page 38: Microprocessors - Universitas Brawijayablog.ub.ac.id/rizal/files/2012/01/3-Microprocessors.pdf · Microprocessors • Microprocessors come in all ... 8085 8088/6 80186 80286 80386

Z80 CPU Instruction Description

•  158 different instruction types •  Including all 78 of the 8080A CPU. •  Instruction groups

–  Load and Exchange –  Block Transfer and Search –  Arithmetic and Logical –  Rotate and Shift –  Bit Manipulation (Set, Reset, Test) –  Jump, Call, and Return –  Input/Output –  Basic CPU Control