Aula 10 – Processadores de Propósito Geral Anderson L. S. Moreira [email protected] http://dase.ifpe.edu.br/~alsm Anderson Moreira Arquitetura de Computadores 1 O que fazer com essa apresentação Anderson Moreira Arquitetura de Computadores 2 O que é um microprocessador? Máquina completa de computação embutida em um único chip Primeiro microprocessador foi o Intel 4004 (1971). O 4004 não era muito poderoso, já que ele só podia somar e subtrair 4 bits por vez. Mesmo assim, era incrível ver tudo isso em um único chip naquela época. Anderson Moreira Arquitetura de Computadores 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 de largura; Anderson Moreira Arquitetura de Computadores 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. Anderson Moreira Arquitetura de Computadores Arquiteturas Anderson Moreira Arquitetura de Computadores Arquiteturas Anderson Moreira Arquitetura de Computadores Arquiteturas - CISC Anderson Moreira Arquitetura de Computadores Arquiteturas - RISC Anderson Moreira Arquitetura de Computadores Arquiteturas - RISC Anderson Moreira Arquitetura de Computadores Arquitetura do Pentium Anderson Moreira Arquitetura de Computadores Arquitetura do Pentium Anderson Moreira Arquitetura de Computadores 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). Anderson Moreira Arquitetura de Computadores Registradores do 8086/8088 15 8 7 0 AX BX AH AL CX BH BL CH CL DH DL DX acumulador base contador dado SP BP ponteiro para pilha ponteiro base SI índice fonte DI índice destino apontador de instruções flags IP Flags CS DS segmento de código segmento de dados SS segmento de pilha ES segmento extra Anderson Moreira Arquitetura de Computadores 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; Anderson Moreira Arquitetura de Computadores 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 na pilha Anderson Moreira Arquitetura de Computadores Registradores de segmentos • • • A memória do 8086 é dividida em unidades lógicas chamadas segmentos; 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; Anderson Moreira Arquitetura de Computadores Evolução dos microprocessadores - Intel Nome Data Transistores Mícron s Velocidade do clock Largura de dados MIPS 8080 1974 6.000 6 2 MHz 8 bits 0,64 8088 1979 29.000 3 5 MHz 16 bits 8-bit bus 0,33 80286 1982 134.000 1,5 6 MHz 16 bits 1 80386 1985 275.000 1,5 16 MHz 32 bits 5 80486 1989 1.200.000 1 25 MHz 32 bits 20 Pentium 1993 3.100.000 0,8 60 MHz 32 bits 64-bit bus 100 Pentium II 1997 7.500.000 0,35 233 MHz 32 bits 64-bit bus ~300 Pentium III 1999 9.500.000 0,25 450 MHz 32 bits 64-bit bus ~510 Pentium 4 2000 42.000.000 0,18 1,5 GHz 32 bits 64-bit bus ~1,700 Pentium 4 "Prescott" 2004 125.000.000 0,09 3,6 GHz 32 bits 64-bit bus ~7,000 Anderson Moreira Arquitetura de Computadores 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). Anderson Moreira Arquitetura de Computadores 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 um endereço de memória para outro; Pode tomar decisões e desviar para um outro conjunto de instruções baseado nestas decisões. Anderson Moreira Arquitetura de Computadores Diagrama de Funcionamento Anderson Moreira Arquitetura de Computadores Modos de endereçamento 8086 Modo Significado Imediato Operando na instrução Registrador Operando em registrador Direto Operando na memória, endereçado por deslocamento contido na instrução Registrador 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. Anderson Moreira Arquitetura de Computadores Modos de endereçamento 8086 • • • • • O endereço final de um operando é formado pela soma do registrador de segmento (estendido para 20 bits) com o endereço efetivo fornecido pelo modo de endereçamento; Exemplo com instrução ADD (soma) → primeiro operando = primeiro operando + segundo operando; Imediato: – ADD CH, 5F Registrador: – ADD BX, DX Direto: – ADD WVAR, BX Anderson Moreira Arquitetura de Computadores 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 • – • – • Anderson Moreira Arquitetura de Computadores Modos de Endereçamento Anderson Moreira Arquitetura de Computadores Modos de Endereçamento Anderson Moreira Arquitetura de Computadores Modos de Endereçamento Anderson Moreira Arquitetura de Computadores Modos de Endereçamento Anderson Moreira Arquitetura de Computadores Modos de Endereçamento Anderson Moreira Arquitetura de Computadores Detalhes Microprocessadores Intel Anderson Moreira Arquitetura de Computadores Intel 80286 • • • • • Primeiros modelos operavam a 6 MHz, depois passaram para 8, 10, 12,5 e 16 MHz; Internamente possui 4 unidades de processamento separadas operando 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. Anderson Moreira Arquitetura de Computadores 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 modo protegido; 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. Anderson Moreira Arquitetura de Computadores 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 Anderson Moreira Arquitetura de Computadores 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 Anderson Moreira Arquitetura de Computadores 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. Anderson Moreira Arquitetura de Computadores 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 de rede; Anderson Moreira Arquitetura de Computadores 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. Anderson Moreira Arquitetura de Computadores Análise Operacional S A0 K1 K4 K2 K5 K3 Kn T Anderson Moreira Arquitetura de Computadores C0 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 Anderson Moreira Arquitetura de Computadores Análise Operacional • Leis Operacionais (derived measures) Anderson Moreira Arquitetura de Computadores 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. O número total de transações que chegaram ao sistema é 1800. O sistema também finalizou a execução de 1800 transações no mesmo 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)? Anderson Moreira Arquitetura de Computadores Análise Operacional CPU: K=1 UCPU = BCPU/T = 36/60 = 0,6 = 60% T = 1 min A0 = 1800 transações C0 = 1800 transações BCPU = 36 s S0 = Si = BCPU / CCPU = 36/1800 = 0,02 s Obs.: Considerando S0 = Si = SCPU U0 = Ui = UCPU ʎ0 = ʎi = ʎCPU A0 = A1 B0 = B1 X0 = X1 = XCPU ʎ0 = ʎ1 = 1800/60 = 30 trs/s X0 = X1 = 1800/60 = 30 trs/s Anderson Moreira Arquitetura de Computadores Exercícios • • A banda passante de um link de comunicação é 56000 bps. Pacotes de 1500 bytes são transmitidos ao link a uma taxa de 3 pacotes por segundo. Qual é a utilização do link? Para ilustrar o conceito de Service Demand considere o caso em que 6 transações fazem 3 acessos (cada uma) a uma unidade de disco. Os tempos de cada acesso são apresentados em ms. Qual a Service Demand do sistema? Anderson Moreira Arquitetura de Computadores Exercícios • Considere que um Web Server foi monitorado por 10 min e que a CPU esteve ocupada por 90%. O log do Web Server registrou 30.000 solicitações processadas. Qual é a CPU Service Demand (DCPU) relativa as solicitações ao Web Server? • Procure informações sobre a Arquitetura do Pentium: – Operações em paralelo; – Cache; – BTB – Branch Target Buffer; – FPU; – Otimização; Anderson Moreira Arquitetura de Computadores Bibliografia • • • Arquitetura de Computadores Pessoais, Raul Weber, 2ª edição; Arquitetura de Computadores, Andrew S. Tannembaum, 8ª edição; Fundamentos de Arquitetura de Computadores, Saib e Weber, 4ª edição; Anderson Moreira Arquitetura de Computadores Dúvidas Anderson Moreira Arquitetura de Computadores 46