Processadores Características (Introdução) Interfaces Industriais 29-03-2006 Organização de sistema com microprocessador Memória Programa CPU Memória Dados D0:31 A0:31 I/O I/O Barramentos 2 2 1
Vários Sistemas Sistemas de computadores estão por todo o lado Muitas vezes pensamos em computadores PCs Secretária portáteis Servers Mas existe um tipo de sistema de computador muito mais comum... 3 3 Definição de Embebido (embedded) Sistemas Embebidos Sistemas de computadores embebidos em dispositivos electrónicos Numero de sistemas embebidos é muito superior ao da produção de PCs Há quem preveja num futuro próximo mais de 50 por pessoa Há quem defina como todos os sistemas que não sejam computadores (PCs) Computers are in here... and here... and even here... Lots more of these, though they cost a lot less each. 4 4 2
Exemplo de embebidos Anti-lock brakes Auto-focus cameras Automatic teller machines Automatic toll systems Automatic transmission Avionic systems Battery chargers Camcorders Cell phones Cell-phone base stations Cordless phones Cruise control Curbside check-in systems Digital cameras Disk drives Electronic card readers Electronic instruments Electronic toys/games Factory control Fax machines Fingerprint identifiers Home security systems Life-support systems Medical testing systems Modems MPEG decoders Network cards Network switches/routers On-board navigation Pagers Photocopiers Point-of-sale systems Portable video games Printers Satellite phones Scanners Smart ovens/dishwashers Speech recognizers Stereo systems Teleconferencing systems Televisions Temperature controllers Theft tracking systems TV set-top boxes VCR s, DVD players Video game consoles Video phones Washers and dryers 5 5 Processadores vendidos 1400 1300 1200 1100 1000 900 800 700 600 500 400 300 200 100 0 Other SPARC Hitachi SH PowerPC Motorola 68K MIPS IA-32 ARM 1998 1999 2000 2001 2002 6 6 3
Hierarquia Programa/Linguagens Programa (Aplicação) Linguagem de Alto nível (HLL) Independente da Máquina Linguagem Assembly Dependente da Máquina Linguagem Máquina 7 7 Assembly x Alto-Nível Linguagem Assembly e linguagem máquina Linguagem de baixo-nível especificada por meio de mnemónicas Linguagem é nativa do processador, por este facto não existe portabilidade A linguagem assembly está na relação de 1:1 com a linguagem máquina Como consequência da linguagem assembly, um programa tende a ser grande mas bastante eficiente Linguagem de alto-nível São fortemente estruturadas Definem estruturas de controlo de fluxo de programa Portabilidade 8 8 4
Assembly x Alto-Nível Eficiência/ Desempenho Assembly HLL (Java, C) Flexibilidade/ Complexidade 9 9 Exemplos INC MOV AND ADD IA-32 resultado numero,45 mascara,128 mascara,10 C resultado=resultado+1 numero=45 mascara=mascara&128 mascaro=mascara+10 10 10 5
Portabilidade do código Linguagem Assembly Não existe portabilidade entre processadores com ISA diferentes Linguagem de Alto-Nível existe portabilidade, se bem que com restrições 11 11 Portabilidade Código Fonte (HLL) ByteCodes/CLI Bytecodes/CLI Hardware (Plataforma.NET /JAVA) Hardware (Plataforma.NET /JAVA) 12 12 6
ISA Instruction Set Architecture Abstracção ISA descreve o funcionamento do processador de um ponto de vista lógico. específica como um processador funciona, que instruções executa, quais os modos de endereçamento que são suportados e que tipos de dados são suportados. 13 13 Exemplos de especificações ISA MIPS SPARC IA-32 JVM (Java Virtual Machine) Plataforma.Net Microprocessador virtual 14 14 7
Modos de endereçamento Ao modo como se especificam os operandos chama-se modos de endereçamento, Imediato Directo Registo indirecto Indirecto Deslocamento Indexado a registos PC relativo Absoluto. 15 15 Tipos de Instruções Instruções de transferência de dados, Instruções aritméticas e lógicas inteiras, Instruções de virgula flutuante, Instruções de deslocamento e rotação, Instruções de manipulação de bits, Instruções de controlo do fluxo do programa, Instruções de controlo do sistema, Instruções de Unidades de funções especiais, Instruções configuráveis, 16 16 8
Processadores CISC Complex Instruction Set Computer RISC Reduced Instruction Set Computer 17 17 Processador CISC Complexo e elevado conjunto de instruções Vários modos de endereçamento Instruções com vários tamanhos Não existe uniformidade no tempo de execução das instruções 18 18 9
Processador RISC Menos instruções Poucos modos de endereçamento Uniformidade no tamanho da instrução Uniformidade na execução load/store RISC = uniformidade e simplicidade 19 19 CISC versus RISC 20 20 10
CISC versus RISC Máquina CISC Máquina RISC ISA ISA Microprogram* (control) Hardware Hardware *-Microprogram é um pequeno programa intérprete que transforma instruções complexas em várias instruções simples a serem executadas pelo Hardware. 21 21 Numero de Operandos 3 operandos add T, T, B 2 operandos add T, B 1 operandos add T 0 operandos add 22 22 11
3 Operandos A = B + C * D E + F + A É convertido para o seguinte código: mult T, C, D ; T=C*D add T, T, B ; T=B+ C*D sub T, T, E ; T=B+ C*D - E add T, T, F ; T=B+ C*D E + F add A, T, A ; T=B+ C*D E + F + A 23 23 2 Operandos A = B + C * D E + F + A É convertido para o seguinte código load T, C ; T=C mult T, D ; T=C*D add T, B ; T=B+ C*D sub T, E ; T=B+ C*D E add T, F ; T=B+ C*D E + F add A, T ; T=B+ C*D E + A 24 24 12
1 Operando A = B + C * D E + F + A É convertido para o seguinte código load C ; Acc=C mult D ; Acc=C*D add B ; Acc=B+ C*D sub E ; Acc=B+ C*D E add F ; Acc=B+ C*D E + F add A ; Acc=B+ C*D E + A store A ; guarda acumulador em A 25 25 Sem Operandos 26 26 13
exemplo de 0 operandos A = B + C * D E + F + A É convertida para o seguinte código Push E ; E Push C ; C, E Push D ; D, C, E Mult ; C*D, E Push B ; B,C*D, E Add ; B+C*D,E Sub ; B+C*D-E Push F ; F, B+C*D-E Add ; F+B+C*D-E Push A ; A, F+B+C*D-E Add ; A+F+B+C*D-E Pop A 27 27 Comparação entre Máquinas 0 Operandos 1 Operando 2 Operandos 3 Operandos Número de Instruções Tamanho Instruções Acesso á memória 28 28 14
Formatos das Instruções 29 29 15