ENGENHARIA DE SISTEMAS MICROPROCESSADOS · Computadores do tipo IBM-PC são os mais populares e...

43
ENGENHARIA DE SISTEMAS MICROPROCESSADOS PROF. PIERRE VILAR DANTAS AULA 10 – 01/11/2017 TURMA: 0040-A HORÁRIO: 4N PIERREDANTASBLOG.WORDPRESS.COM 1/43

Transcript of ENGENHARIA DE SISTEMAS MICROPROCESSADOS · Computadores do tipo IBM-PC são os mais populares e...

ENGENHARIA DE SISTEMAS MICROPROCESSADOSPROF. P I ERRE V I LAR DANTAS

A U L A 1 0 – 0 1 / 1 1 / 2 0 1 7

TURMA: 0040 -A

HORÁR IO : 4N

P IERREDANTASBLOG .WORDPRESS .COM

1/43

Objetivos da Aula§Conhecer conceitos de processadores de propósito geral.

2/43

Processadores de Propósito GeralP R I N C I P A L R E F E R Ê N C I A D E S T A A U L A : HTTP : / /DASE . I FPE .EDU .BR/~ALSM

3/43

Roteiro§Microprocessador

§Arquitetura◦ RISC◦ CISC◦ PENTIUM

§Registradores

§Funcionamento

§Modos de Endereçamento

§Análise Operacional

4/43

O que é um microprocessador?

Máquina completa de computação embutida em um único chip

Primeiro microprocessador foi o Intel 4004 (1971). O 4004não era muito poderoso, jáque ele só podia somar esubtrair 4 bits por vez.Mesmo assim, era incrível vertudo isso em um único chipnaquela época.

5/43

Introdução

• Computadores do tipo IBM-PC são os mais populares e mais difundidos mundialmente;

• São usados preferencialmente no estudo de arquitetura de computadores;

• Intel 8086:– Lançado em 78 foi o primeiro a utilizar 16 bits.

6/43

Microprocessador

Primeiro microprocessador de um computador pessoal foi o Intel 8080;Era um computador de 8 bits completo dentro de um chip (1974);Primeiro microprocessador que se tornou realmente popular foi o Intel 8088 (1979) e incorporado em um PC IBM - que apareceu em 1982.

7/43

Arquiteturas

8/43

Arquiteturas

9/43

Arquiteturas - CISC

10/43

Arquiteturas - RISC

11/43

Arquiteturas - RISC

12/43

Arquitetura do Pentium

13/43

Arquitetura do Pentium

14/43

Registradores do 8086/8088

• Possuem 8 registradores de uso geral:– 4 de dados: AX, BX, CX, DX;– 4 registradores de endereços: SP, BP, SI, DI;

• 4 registradores de segmentos:– CS, DS, SS, ES.

• 1 apontador de instruções (IP);

• 1 registrado de flags (F).

15/43

Registradores de dados

• Os quatro registradores de dados são denominados A, B, C, D:– A = acumulador– B = base– C = contador– D = dados

• Quando usados como registradores de 16 bits acrescenta o “X”– Quando usados para 8 bits ganha o “H” (High) e o “L” (Low)

para indicar o byte dentro da palavra;

16/43

Registradores de endereço

• Acessam operandos da memória:– SP – ponteiro da pilha (stack pointer)– BP – ponteiro base (base pointer)– SI – índice de operando fonte (source index)– DI – índice de operando destino (destination

index)

• Registradores SP e BP são usados para operações napilha

17/43

Registradores de segmentos

• A memória do 8086 é dividida em unidades lógicas chamadassegmentos;

• Cada segmento tem 64 Kbytes de comprimento;– Processador acessa 4 segmentos de cada vez através de 4

registradores de segmentos;• Os registradores armazenam os 16 bits mais significativos do

endereço de 20 bits;– Endereço base é sempre múltiplo de 16;

18/43

Evolução dos microprocessadores - Intel

~7,00032 bits64-bit bus3,6 GHz0,09125.000.0002004Pentium 4

"Prescott"

~1,70032 bits64-bit bus1,5 GHz0,1842.000.0002000Pentium 4

~51032 bits64-bit bus450 MHz0,259.500.0001999Pentium III

~30032 bits64-bit bus233 MHz0,357.500.0001997Pentium II

10032 bits64-bit bus60 MHz0,83.100.0001993Pentium

2032 bits25 MHz11.200.000198980486

532 bits16 MHz1,5275.000198580386

116 bits6 MHz1,5134.000198280286

0,3316 bits8-bit bus5 MHz329.00019798088

0,648 bits2 MHz66.00019748080

MIPSLargura de dados

Velocidade do clock

MícronsTransistoresDataNome

~7,00032 bits64-bit bus3,6 GHz0,09125.000.0002004Pentium 4

"Prescott"

~1,70032 bits64-bit bus1,5 GHz0,1842.000.0002000Pentium 4

~51032 bits64-bit bus450 MHz0,259.500.0001999Pentium III

~30032 bits64-bit bus233 MHz0,357.500.0001997Pentium II

10032 bits64-bit bus60 MHz0,83.100.0001993Pentium

2032 bits25 MHz11.200.000198980486

532 bits16 MHz1,5275.000198580386

116 bits6 MHz1,5134.000198280286

0,3316 bits8-bit bus5 MHz329.00019798088

0,648 bits2 MHz66.00019748080

MIPSLargura de dados

Velocidade do clock

MícronsTransistoresDataNome

19/43

Dentro de um Microprocessador

Para entender o funcionamento de um microprocessador, temos de entender a lógica utilizada para se criar um;Neste processo, vamos aprender um pouco de linguagem assembly (a língua nativa de um microprocessador).

20/43

Funcionamento

Um microprocessador executa uma série de instruções de máquina que dizem a ele o que fazer. As três funções básicas de um processador são: Utilizando ULA, o microprocessador pode

executar operações matemáticas como adição,subtração, multiplicação e divisão;

Um microprocessador pode mover dados de umendereço de memória para outro;

Pode tomar decisões e desviar para um outroconjunto de instruções baseado nestas decisões.

21/43

Diagrama de Funcionamento

22/43

Modos de endereçamento 8086

Modo SignificadoImediato Operando na instruçãoRegistrador Operando em registradorDireto Operando na memória, endereçado por

deslocamento contido na instruçãoRegistrador indireto

Operando na memória, endereçado por deslocamento contido em registrador

Indexado (ou base)

Operando na memória, endereçado pela soma do registrador de índice (ou base) com o deslocamento contido na instrução

Base e indexado com deslocamento

Operando na memória, endereçado pela soma do registrador de índice com o conteúdo do registrador base e com o deslocamento contido na instrução.

23/43

Modos de endereçamento 8086

• O endereço final de um operando é formado pela soma doregistrador de segmento (estendido para 20 bits) com o endereçoefetivo fornecido pelo modo de endereçamento;

• Exemplo com instrução ADD (soma) → primeiro operando = primeirooperando + segundo operando;

• Imediato:– ADD CH, 5F

• Registrador:– ADD BX, DX

• Direto:– ADD WVAR, BX

24/43

Modos de endereçamento 8086

– Registrador indireto:• ADD CX, [BX]

– Indexado:• ADD [SI+6], AL

– Base e indexado com deslocamento• ADD [BX+DI+5], DX

25/43

Modos de Endereçamento

26/43

Modos de Endereçamento

27/43

Modos de Endereçamento

28/43

Modos de Endereçamento

29/43

Modos de Endereçamento

30/43

DetalhesMicroprocessadores Intel

31/43

Intel 80286

• Primeiros modelos operavam a 6 MHz, depois passaram para 8, 10,12,5 e 16 MHz;

• Internamente possui 4 unidades de processamento separadasoperando em paralelo;– EU – unidade de execução de instruções– BU – unidade de acesso e controle do barramento (dados e

instruções)– IU – unidade de decodificações de instruções– AU – unidade de formação de endereços (cálculo de endereço

físico)• 286 a 6 MHz = 5X 8086 a 4,77 Mhz• Capacidade de gerenciar até 1GB de memória virtual;• Dois modos de operação modo real e modo protegido.

32/43

Intel 80386

• Apresenta características de mainframes em computadores pessoais:– Memória virtual, multiprogramação e multitarefa.

• Vantagem: poder executar programas do 8086 sem sair do modoprotegido;

• Arquitetura de 32 bits (registradores de 32 bits);• Barramento externo de endereço: 30 bits;• Barramento externo de dados: 32 bits configuráveis para 16 bits;• Suporte de até 64 Tbytes de memória virtual;• Proteção de memória.

33/43

Intel 80386

• Apresenta 6 unidades de processamento:– EU – unidade de execução– BU – unidade de acesso e controle do barramento– IU – unidade de decodificações de instruções– PU – unidade de pré-busca– PgU – unidade de formação de endereços (paginação)– SU – unidade de formação de endereços (segmentos)

• Duas últimas responsáveis pelo gerenciamento de memória virtual

34/43

Intel 80486

• Cache interna de 8 Kbytes;• FPU com as mesmas funções de um coprocessador 8087;• Acesso à memória em modo rajada (simultânea);• Processador disponível em 4 modelos básicos:

– DX– SX– DX2– DX4

35/43

Pentium

• Primeiro com barramento de 64 bits;• Suporta implementação de protocolo de coerência

de cache em ambiente multiprocessado;• Dois pipelines para processamento de inteiros;• Um pipeline para processamento FPU;• Operações em paralelo.

36/43

Análise Operacional

• Análise de uso de determinados recursos de máquina;

• Aplicável principalmente em CPU;

• Pode ser usada em outras medições, cálculo de estimativa derede;

37/43

Análise Operacional

• Variáveis operacionais para um determinado sistema (S)– T: Período de observação– K: Número de recursos do sistema– Bi: Tempo de ocupação do recurso i no período T.– Ai: Número total de solicitações (ex:.chegadas) do recurso i no

período T.– A0: Número total de solicitações (ex:.chegadas) ao sistema no

período T.– Ci: Número total de serviços finalizados pelo recurso i no período

T.– C0: Número total de serviços finalizados pelo sistema no período

T.

38/43

Análise Operacional

S

K1 K2 K3

K5K4 Kn

T

A0 C0

39/43

Análise Operacional

• Métricas derivadas (derived measures)– Si: Tempo médio de serviço por finalização relativa ao

recurso i; Si = Bi/Ci– Xi: throughput (ex.: finalizações por unidade de tempo) do

recurso i; Xi = Ci/T– ʎi: taxa de chegada (ex.: chegadas por unidade de tempo) ao

recurso i; ʎi = Ai/T– X0: throughput do sistema; X0 = C0/T– Vi: Número médio de visitas ao recurso i por solicitação; Vi =

Ci/C0

40/43

Análise Operacional

• Leis Operacionais (derived measures)

41/43

Análise Operacional

• Exercícios resolvidos– Suponha que ao se monitorar uma processador por um período

de 1 min, verificou-se que o recurso esteve ocupado por 36s. Onúmero total de transações que chegaram ao sistema é 1800. Osistema também finalizou a execução de 1800 transações nomesmo período.

• 1. Qual a taxa de chegada ao sistema (ʎ0)?• 2. Qual é o throughput do sistema (X0)?• 3. Qual é a utilização da CPU(UCPU)?• 4. Qual é o tempo médio por transações finalizadas

pelo sistema (S0)?

42/43

Análise Operacional

CPU:T = 1 minA0 = 1800 transaçõesC0 = 1800 transaçõesBCPU = 36 s

K = 1A0 = A1

B0 = B1

ʎ0 = ʎ1 = 1800/60 = 30 trs/s

X0 = X1 = 1800/60 = 30 trs/s

UCPU = BCPU/T = 36/60 = 0,6 = 60%

S0 = Si = BCPU / CCPU = 36/1800 = 0,02 s

Obs.: Considerando

S0 = Si = SCPU

U0 = Ui = UCPU

ʎ0 = ʎi = ʎCPU

X0 = X1 = XCPU

43/43