• Nenhum resultado encontrado

03/12/2020. Processadores

N/A
N/A
Protected

Academic year: 2021

Share "03/12/2020. Processadores"

Copied!
25
0
0

Texto

(1)

8086

Processadores

(2)

8086

• Registos de 16 bits

• Barramento de dados de 16 bits

• Bus de endereços de 20 bits

– 16 linhas partilhadas de dados. – Capacidade para endereçar

220=1MiB de memória

• Ciclo de barramento de 4

períodos de clock.

Registos 8086

(3)

Arquitectura 8086

Endereçamento 8086

• Endereçamento imediato MOV AL, #13 MOV AH, #0xD MOV DL, 0Ah + 3 ADD AL, #3Ch

MOV AL, George * 2 - 1

MOV AX, #304Ch • Endereçamento directo. MOV DX, [1234h] MOV CL, [1220h] MOV AL, DS:[8088h] MOV AL, [1234h] MOV [1002h], AL • Endereçamento indirecto. MOV AL, [BX] MOV BL, 12h[BX] MOV BL, 1000h[BP] ADD DX, [BX + 8] MOV [BP + SI], DL INC BYTE [0x100 + CS:DI]

MOV BX, #100h MOV SI, #20h

MOV AL, [BX + SI + 3]

(4)

Segmentação

• Em todos os acessos à memória do x86 está

implícito o conceito de segmento.

Registos de Segmento

• Code Segment (CS) – implícito em todas as buscas

(fetch) de instruções.

• Stack Segment (SS) – implícito nas operações com a

stack (push, pop, etc.) e no endereçamento indirecto

com BP e com o Stack Pointer (SP)

• Data Segment (DS) – implícito nas restantes

operações de acesso a dados na memória principal.

• Extra Segment (ES) – pode ser seleccionado

(explicitamente) para acesso a dados na memória

principal.

(5)

Code Segment

16-bit Segnment Base Address 0000

16-bit Offset Address

20-bit Physical Address CS

IP

Segmentos

(6)

Exemplo 8086

.model small .stack

.data

message db "Hello world, I'm learning Assembly !!!", "$" .code

main proc

mov ax, seg message mov ds, ax mov ah, 09 lea dx, message int 21h mov ax, 4c00h int 21h main endp end main

Exemplo 8086

mov ax, 2812h mov ds, ax mov ax, 3600h mov ss, ax mov dx, 2244h mov ax, [dx] ; [ 2812h*10h + 2244h ] ; [ 2A364h ] mov ax, [ss:dx] ; [ 3600h*10h + 2244h ] ; [ 38244h ] 14

(7)

8086 / 8088

MAXIMUM MODE MINIMUM MODE 1 40 20 21 8088 GND A14 A13 A12 A11 A10 A9 A8 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 NMI INTR CLK GND Vcc A15 A16,S3 A17,S4 A18,S5 A19,S6 MN,/MX /RD /RQ,/GT0 /LOCK /S2 /S1 /S0 QS0 QS1 /TEST READY RESET /RQ,/GT1 HOLD /WR IO/M DT/R /DEN ALE /INTA HLDA high /SS0 MAXIMUM MODE MINIMUM MODE 1 40 20 21 8086 GND AD14 AD13 AD12 AD11 AD10 AD9 AD8 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 NMI INTR CLK GND Vcc AD15 A16,S3 A17,S4 A18,S5 A19,S6 /BHE,S7 MN,/MX /RD /RQ,/GT0 /LOCK /S2 /S1 /S0 QS0 QS1 /TEST READY RESET /RQ,/GT1 HOLD /WR IO/M DT/R /DEN ALE /INTA HLDA

8086

Nome Descrição Tipo

Vcc / GND Alimentação

AD0-AD15 Data / Address Bus Bidirecional / tristate

Durante o primeiro período de clock de um ciclo de barramento, contêm os 16 bits menos significativos do address bus. Durante os outros períodos corresponde ao data bus.

A16 / S3,

A17 / S4 Address / Identificador de Segmento Output / tristate

Durante o primeiro período de clock de um ciclo de barramento, contêm os bits 16 e 17 do endereço. Nos outros períodos contêm informação de status.

A18 / S5 Address / Interrupt enable status Output / tristate

Durante o primeiro período de clock de um ciclo de barramento, contém o bit 18 do endereço. Nos outros períodos contém o estado da flag Interrupt enable.

A19 / S6 Address / status Output / tristate

Durante o primeiro período de clock de um ciclo de barramento contém o bit 19 do endereço.

A17 / S4 A16 / S3 Segmento

0 0 Extra Segment

0 1 Stack Segment

1 0 Code Segment

1 1 Data Segment

(8)

8086

Nome Descrição Tipo

BHE / S7 High-order byte / status Output / tristate

Durante o primeiro período de clock de um ciclo de barramento, contém BHE. BHE é zero durante as sequências de leitura, de escrita e de interrrupt acknowledge em que devem ser lidos os 8 bits superiores do data bus.

RD Controlo de leitura Output / tristate

READY Wait state request Input

TEST Wait for test Input

Quando a instrução WAIT é executada, o processador pára até que a linha TEST seja activada.

INTR Pedido de interrupção Input

NMI Pedido de interrupção não mascarável Input

RESET Reset Input

CLK Clock Input

MN/MX Modo mínimo / Modo máximo Input

Modo mínimo

Nome Descrição Tipo

M / IO Acesso à memória ou I/O Output / tristate

WR Controlo de escrita Output / tristate

ALE Address Latch Enable Output

DT / R Data Transmite / Receive Output / tristate

DEN Data Enable Output / tristate

INTA Interrupt acknowledge Output / tristate

HOLD Hold request Input

HLDA Hold achnowledge Output

8086

MN / MX + Vcc

(9)

8086- módo mínimo

80 86 C P U F/C AEN1 AEN2 Clock generator +5V RES Wait-State Generator CLK READY RESET M/IO INTA RD WR PCLK MN/MX +5V STB OE 8282 Latch ALE AD0-AD15 A16-A19 BHE BHE D0 - D15 8286 DT/R DEN T OE 16 A0 - A19 Address Bus Control Bus

8086 – Modo Máximo

8 0 8 6 C P U Clock generator Wait-State Generator CLK READY RESET MN/MX AD0-AD15 A16-A19 BHE STB OE 8282 Latch A0 - A19 Address Bus +5V RES S0 S1 S2 CLK S0 S1 S2 DATA 8286 Transceiver T OE ALE Gnd DEN DT/R MRDC MWTC IORC IOWC AIOWC AMWC INTA 8 2 8 8 B u s C o n tr o lle r 8086 MN / MX 4 1 c m

2

\S2 \S1 \S0 Estado 0 0 0 Interrupt Acknoledge 0 0 1 I/O Read 0 1 0 I/O Write 0 1 1 Halt 1 0 0 Instruction fetch 1 0 1 Memory Read 1 1 0 Memory Write 1 1 1 Inactive QS0 QS1 Estado 0 0 No operation 0 1 Primeiro byte 1 0 Limpeza da fila 1 1 Bytes seguintes

Nome Descrição Tipo

S0,S1,S2 Machine cycle status Output/tristate

RQ/GTO, RQ/GT1

Local Bus priority control Bidirecional

QS0,QS1 Instruction queue status Output

LOCK Bus hold control Output/tristate 20

(10)

Bus controller

8288 Bus Controller DIR DEN# DT/R# 74HC245 EN# 74HC245 EN# DIR DIR CPU [D15:D8] CPU [D7:D0] Buffered [D15:D8] Buffered [D7:D0] T o M e m o ry a n d I/ O S ys te m s

8288 Bus Controller also generates Direction and Enable signals for Bi-Directional Transeivers Supports Buffering the

System Data Bus

BHE

BHE# A0 Selection

0 0 Whole word (16-bits)

0 1 High byte to/from

endereço impar

1 0 Low byte to/from

endereço par 1 1 No selection Higher Address Bank (512K x 8) ODD Lower Address Bank (512K x 8) EVEN A1-A19 Address Bus Data Bus (D0 - D15) D8-D15 D0-D7 BHE A0 22

(11)

BHE

FFFFF FFFFD FFFFB FFFF9 00005 00003 00001 ODD Addresses (8086) FFFFE FFFFC FFFFA FFFF8 00004 00002 00000 EVEN Addresses (8086) A19..A1 A19..A1 D15:D8 D7:D0 FFFFF FFFFE FFFFD FFFFC 00002 00001 00000 Byte-Wide addressing (8088) BHE# A0/BLE#

Endereços ímpares Endereços pares

Little Endian

• O Byte menos significativo de uma Word (16bits) é guardado no endereço de memória mais baixo. • O Byte mais significativo é guardado no

endereço seguinte. MOV AX, [...00110]

AX := 1C43h Little Endian !!

MOV BX, [...01101]

BX := 710Eh Acesso não alinhado!!

requer 2 ciclos de acesso à memória.

Exemplo: Intel 8x86 7Fh 88h 43h 1Ch A5h 0Eh 71h D3h 5Bh 94h A0h ...00100 ...00101 ...00110 ...00111 ...01100 ...01101 ...01110 ...01111 ...10000 ...10010 ...10011 24

(12)

Big Endian

• O Byte mais significativo de uma Word (16bits) é guardado no endereço de memória mais baixo. • O Byte menos significativo é guardado no

endereço seguinte.

MOVE D2, [...00110]

D2 := 431Ch Big Endian !!

MOVE D3, [...01101]

D3 := 0E71h Acesso não alinhado!!

requer 2 ciclos de acesso à memória.

Exemplo: Motorola 68k 7Fh 88h 43h 1Ch A5h 0Eh 71h D3h 5Bh 94h A0h ...00100 ...00101 ...00110 ...00111 ...01100 ...01101 ...01110 ...01111 ...10000 ...10010 ...10011

Clock Generator

26

(13)

8086 Interrupt

8086 8 INTR INTA Clear + Pedido de interrupção D Q FF D D A T A B u s OE IVB

8086 Interrupt Vector

Mem 8086 32 bit 000h 004h 008h 00Ch 010h 014h 080h 3FFh INTR Int Ve ctor B yte(IV B) [IV*4] INTA Mem Rd(IVB* 4) Mem Rd(IVB *4+2) Call [iv*4+2]:[iv*4] t [IV*4+ 2] CS IP Div by 0 Single Step INT de 1 Byte Overflow Reserved Reserved Reserved NMI 28

(14)

Controlador de Interrupções

D Q Clr D Q Clr D Q Clr D Q Clr D Q Clr D Q Clr D Q Clr D Q Clr 5 8086 INTR INTA Pedido de interrupção DATA Bus D Q Clr Desc 3/8 Encod 8/3 FF D OE + >1 E IVB

PIC 8259

PRIORITY RESOLVER IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7 INTERRUPT REQUEST REG (IRR)

INTERRUPT MASK REG (IMR) CONTROL LOGIC INTERNAL BUS INT DATA BUS BUFFER CASCADE BUFFER COMPARATOR CAS 0 CAS 1 CAS 2 READ/ WRITE LOGIC SP/EN WR RD INTA IN -SERVICE REG (ISR) CS 30

(15)

Cascata 8259

CS 82C59A SLAVE A CAS 0 CAS 1 CAS 2 INT A0 D7 - D0 INT A SP/EN 7 6 5 4 3 2 1 0 GND 7 6 5 4 3 2 1 0 CS 82C59A SLAVE B CAS 0 CAS 1 CAS 2 INT A0 D7 - D0 INT A SP/EN 7 6 5 4 3 2 1 0 GND 7 6 5 4 3 2 1 0 CS MASTER 82C59A CAS 0 CAS 1 CAS 2 INT A0 D7 - D0 INTA SP/EN 7 6 5 4 3 2 1 0 VCC 7 6 5 4 3 2 1 0 INT REQ DATA BUS (8) CONTROL BUS ADDRESS BUS (16) INTERRUPT REQUESTS

PC - PIC

IRQ USUAL FUNCTION/DEVICE

0 System Timer

1 Keyboard

2 2nd IRQ controller

3 COM2:

4 COM1:

5 Free (used by LPT2: or sound card)

6 Floppy disk

7 LPT1:

8 Real Time Clock (RTC)

9 Free (may be labeled/appear as IRQ 2)

10 Free (often used by sound cards)

11 Free

12 PS/2 mouse

13 Math coprocessor on CPU (used)

14 Primary IDE

15 Secondary IDE

(16)

DMA

• Direct Memory Access

• Implementa transferências de dados:

– De dispositivos para memória

– Da memória para dispositivos

– Sem ocupar o CPU

DMA

periférico memória Controlador DMA CPU 1 4 2 5 3 HOLDA HOLD DREQ# DACK# HRQ HLDA Transferências

Escrita (Write transfers)

transfere dados de um dispositivo de I/O para a memória. activa MEMW e IOR simultaneamente.

Leitura (Read transfers)

transfere dados da memória para um dispositivo de I/O. activa MEMR e IOW simultaneamente.

Memory-to-Memory

Transfere palavra da memória para registo Temp (via canal 0). Escreve Temp para memória, (via canal 1).

(17)

36

Processo de DMA

Time

I/O Device DMAC Memory Processor

DMA Request

Hold Request

Hold Acknowledge DMA Acknowledge

Data Transfer

Hold Request End

Hold Ack End Cycle Stealing Time Interval Data Transfer 37

Controlador de DMA

36

(18)

38

DMA Fetch and Deposit

Processor

Control Bus (M/IO#, W/R#, and D/C# Signals)

Address Bus Memory I/O Device Data Bus Tri-state Control DMAC Interface Hold Req

Hold Ack DMAC

DMA Req DMA Ack Tri-state Control Tri-state Control Tri-state Control Tri-state Control Tri-state Control P I C Int TC (Transfer Complete) DMA Fetch-and-Deposit Data Transfer Mem

DMA Fetch and Deposit

(19)

40

DMA Fly-by

Processor

Control Bus (M/IO#, W/R#, and D/C# Signals)

Address Bus Memory I/O Device Data Bus Tri-state Control DMAC Interface Hold Req

Hold Ack DMAC

DMA Req DMA Ack Tri-state Control Tri-state Control Tri-state Control Tri-state Control Tri-state Control P I C Int TC (Transfer Complete)

DMA “Fly-by” Data Transfer

DMAC activa IORD e MEMWR em simultâneo ! Mais eficiente !

Mem

DMA Fly-by

(20)

DMA – Configuração 1

• Single Bus, Detached DMA controller

• Cada transferência usa 2 ciclos de barramento

– I/O para DMA + DMA para memory

CPU DMAController I/ODevice I/ODevice Main Memory

DMA Configuração 2

• Single Bus, Integrated DMA controller

• Cada transferência usa um ciclo de barramento

– DMA para memória ou I/O directo para memória (fly-by)

CPU DMAController Main Memory

I/O Device DMA Controller I/O Device DMA Controller I/O Device I/O Device 42

(21)

DMA Configuração 3

• Barramento de I/O independente

• Cada transferência usa:

– um ciclo de barramento de I/O

• I/0 para DMA

– um ciclo de barramento de memória

• DMA para memória

CPU DMA Controller I/O Device I/O Device Main Memory I/O Device I/O Device

8237

A4 - A7 EOP RESET CS READY CLK AEN ADSTB MEMR MEMW IOR IOW TIMING AND CONTROL DREQ0 -HLDA HRQ DACK0 -PRIORITY ENCODER AND ROTATING PRIORITY LOGIC DACK3 4 DREQ3 4 COMMAND (8) MASK (4) REQUEST (4) MODE (4 x 6) STATUS (8) TEMPORARY (8) INTERNAL DATA BUS DECREMENTOR

COUNT REG (16) TEMP WORD

INC/DECREMENTOR

REG (16)

TEMP ADDRESS BUFFER IO 16-BIT BUS READ BUFFER ADDRESS BASE (16) WORD BASE COUNT (16)

READ WRITE BUFFER

ADDRESS CURRENT (16) WORD CURRENT COUNT (16) 16-BIT BUS BUFFER WRITE BUFFER READ A 8 A 1 5 BUFFER OUTPUT CONTROL COMMAND D0 - D1 A0 - A3 BUFFER IO D B 0 D B 7 44

(22)

8086 - 8237

Cascata 8237

80C86/88 MICRO-PROCESSOR HRQ HLDA DREQ DACK DREQ DACK 1ST LEVEL 82C37A HRQ HLDA 82C37A HRQ HLDA 82C37A ADDITIONAL DEVICES 2ND LEVEL INITIAL DEVICE 46

(23)

Família x86

Data de Introdução Clock Data

Bus Número de Transistores Memória Endereçavel Memória Virtual Descrição 4004 15/11/71 108 KHz 4 bits 2 300 (10 microns) 640 Bytes First microcomputer chip Arithmetic manipulation

8008 1/4/72 108 KHz 8 bits 3 500 16 KBytes Data/character manipulation 8080 1/4/74 2 MHz 8 bits 6 000 (6 microns) 64 KBytes 10X the performance of the 8008 8086 8/6/78 5 MHz 8 MHz 10 MHz 16 bits 29 000 (3 microns) 1 MiB 10X the performance of the 8080 8088 1/6/79 5 MHz 8 MHz 8 bits 29 000 (3 microns) 1 MiB Identical to 8086

except for its 8-bit external bus

80186 1982 6 MHz 16 bits 1 MiB

80188 1982 6 MHz 8 bits 1 MiB

Identical to 80186 except for its 8-bit

external bus 80286 1/2/82 8 MHz 10 MHz 12 MHz 16 bits 134 000

(1.5 microns) 16 MiB 1 GiB

3-6X the performance of the 8086

Família x86 (IA32)

Introduction Date Clock Bus Width Number of Transistors Addressable Memory Virtual

Memory Brief Description

Intel386DX 17/10/85 16 - 33 MHz 32 bits 275 000

(1 micron) 4 GiB 64 TiB

First X86 chip to handle 32 bit data sets

Intel386SX 16/6/88 16 MHz

20 MHz 16 bits

275 000

(1 micron) 16 MiB 64 TiB

16-bit address bus enabled low-cost 32 bit

Processing Intel486DX 10/4/89 25 MHz 33 MHz 50 MHz 32 bits 1 200 000 (1 micron, .8 micron with 50 MHz)

4 GiB 64 TiB Level 1 cache on chip

FPU on chip Intel486SX 22/4/91 16 - 33 MHz 32 bits 1 185 000 (.8 micron) 4 GiB 64 TiB identical in design to Intel486 DX but without math coprocessor

Pentium 22/3/93 60-166MHz 32 bits 3.1 million

(.8 micron) 4 GiB 64 TiB superscaler architecture, 5X the performance of the 33 MHz Intel486 DX Pentium Pro 27/3/95 150MHz 180MHz 200MHz 32 bits 5.5 million

(.32 micron) 4 GiB 64 TiB

dynamic execution architecture drives highperforming

processor

(24)

8086 / 8088

U? 8086MIN MN 33 READY 22 CLK 19 RESET 21 INTR 18 HLDA 30 HOLD 31 NMI 17 TEST 23 AD0 16 AD1 15 AD2 14 AD3 13 AD4 12 AD5 11 AD6 10 AD7 9 AD8 8 AD9 7 AD10 6 AD11 5 AD12 4 AD13 3 AD14 2 AD15 39 A16/S3 38 A17/S4 37 A18/S5 36 A19/S6 35 BHE/S7 34 DEN 26 DT/R 27 M/IO 28 RD 32 WR 29 ALE 25 INTA 24 U? 8088MIN MN 33 READY 22 CLK 19 RESET 21 INTR 18 HLDA 30 HOLD 31 NMI 17 TEST 23 AD0 16 AD1 15 AD2 14 AD3 13 AD4 12 AD5 11 AD6 10 AD7 9 A8 8 A9 7 A10 6 A11 5 A12 4 A13 3 A14 2 A15 39 A16/S3 38 A17/S4 37 A18/S5 36 A19/S6 35 SSO 34 DEN 26 DT/R 27 IO/M 28 RD 32 WR 29 ALE 25 INTA 24 51

80186/80188

• Evolution of 8086/8088 80186/80188

• Increased instruction set

• On-chip system components (Clock generator,

DMA, Interrupt, Timers…)

• Unsuccessful in PCs

• Popular in embedded systems…

• Also known as iAPX186

(25)

Intel 80186/8

- Controlador de barramento integrado - Controlador de Interrupções integrado - Controlador de DMA integrado

Referências

Documentos relacionados

Configuração Ajustes remotos [depende do controle remoto] Função IR Ligar Desligar Utilizador1 [depende do modelo] [(*) para Tipo 2 (12 IO) apenas] HDMI 2* VGA 2* Modelo de

Logo, conclui-se que a intervenção psicopedagógica, com o objetivo de não apenas apontar as dificuldades ou traçar estratégias, mas que busca uma parceira entre

Apostando na proposta de Talal Asad e Saba Mahmood, as referências mais recorrentes, o secularismo é apontado como um projeto normativo e ideológico do liberalismo político

Ela está gritando para nós pararmos, mas seu corpo está implorando para que não, seus quadris se movem com meus impulsos, seu peito empurra na boca de Ridge, e a visão de

Dispõe sobre a participação, hospedagem, entrada em locais onde se realizarão os eventos relacionados aos Jogos Rio 2016 e circulação em viagens pelo Brasil das crianças

• As atividades práticas serão realizadas em sala de aula (transmitido para os alunos que estrão no formato REMOTO), pela professora.. Os Relatórios deverão estar

• Documentação necessária para pedido de outorga: Requerimento de outorga; Número do Cadastro Nacional de Usuários de Recursos Hídricos – CNUA; Identificação do requerente

O/A discente que, após as Avaliações Regulares, alcançar nota média final inferior a sete e igual ou superior a cinco, será submetido a uma avaliação final que será