38
Microprocessors

Microprocessors - Universitas Brawijaya

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Microprocessors - Universitas Brawijaya

Microprocessors

Page 2: Microprocessors - Universitas Brawijaya

Outline

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

Page 3: Microprocessors - Universitas Brawijaya

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 Brawijaya

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 Brawijaya

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 Brawijaya

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 Brawijaya

8086PinAssignment

Page 8: Microprocessors - Universitas Brawijaya

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 Brawijaya

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 Brawijaya

Z80 CPU Pin Assignment

Page 11: Microprocessors - Universitas Brawijaya

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 Brawijaya

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 Brawijaya

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 Brawijaya

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 Brawijaya

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 Brawijaya

Z80 CPU

Page 17: Microprocessors - Universitas Brawijaya

Z80 Programming Model

Page 18: Microprocessors - Universitas Brawijaya

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 Brawijaya

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 Brawijaya

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 Brawijaya

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 Brawijaya

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 Brawijaya

Basic CPU Timing Example

Page 24: Microprocessors - Universitas Brawijaya

Opcode Fetch Bus Timings (M1 Cycle)

Page 25: Microprocessors - Universitas Brawijaya

The R register

•  Isincreasedateveryfirstmachinecycle(M1).

•  Bit7ofitisneverchangedbythis;onlythelower7bitsareincludedintheaddi7on.Sobit7staysthesame

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

butofcoursenottrulyrandom.

 theblockinstruc7onsdecreasethePCwithtwo,sotheinstruc7onsarere‐executed.

Page 26: Microprocessors - Universitas Brawijaya

Memory read/write cycle

Page 27: Microprocessors - Universitas Brawijaya

AddingOneWaitStatetoanM1Cycle

Page 28: Microprocessors - Universitas Brawijaya

AddingOneWaitStatetoAnyMemoryCycle

Page 29: Microprocessors - Universitas Brawijaya

IO read/write cycle

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

Page 30: Microprocessors - Universitas Brawijaya

Bus Request/Acknowledge Cycle

Page 31: Microprocessors - Universitas Brawijaya

Interrupt Request/Acknowledge Cycle

Two wait states are automatically added to this cycle

Page 32: Microprocessors - Universitas Brawijaya

Non-Maskable Interrupt Request Operation

Page 33: Microprocessors - Universitas Brawijaya

M1 Refresh Cycle

•  Takes4Tto6Ts•  Z80includesbuiltincircuitryforrefreshingDRAM

•  Thissimplifiestheexternalinterfacinghardware•  DRAMconsistsofMOStransistors,whichstoreInforma7onascapaci7vecharges;eachcellneedstobeperiodicallyrefreshed

•  DuringT3andT4(whenZ80isperforminginternalops),theloworderaddressisusedtosupplya7‐bitaddressforrefresh

Page 34: Microprocessors - Universitas Brawijaya

Wait Signal

•  theZ80samplesthewaitsignalduringT2iflowthenZ80addswait

•  statestoextendthemachinecycle

•  usedtointerfacememorieswithslowresponse7me

•  Slowmemoryislowcost

Page 35: Microprocessors - Universitas Brawijaya

Interrupts

Therearetwotypesofinterrupts:•  nonmask‐able(NMI)

– Couldnotbemasked– Jumpto0066Hofmemory

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

Page 36: Microprocessors - Universitas Brawijaya

Interrupt Modes

•  Mode0:–  An8bitopcodeisFetchedfromDataBUSandexecuted

–  Thesourceinterruptdevicemustput8bitopcodeatdatabus–  8bitopcodeusuallyisRSTpinstruc7ons

•  Mode1:–  Ajumpismadetoaddress0038h

–  Novalueisrequiredatdatabus•  Mode2:

–  Ajumpismadetoaddress(registerI×256+valuefrominterrup7ngdevicethatputsatbus)

–  Iishigh8bitofinterruptvector–  Valueislow8bitofinterruptvector

Page 37: Microprocessors - Universitas Brawijaya
Page 38: Microprocessors - Universitas Brawijaya

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