BCC 720 – Sistemas de Computação para Automação Aula 03 Organização e Arquitetura de Computadores Conteúdo – Organização e Arquitetura – Visão Funcional – Melhoria de Desempenho – Histórico x86 – Sistemas Embutidos – Processador ARM – Execução de Programas – Pipeline e Super-Escalaridade Organização e Arquitetura Arquitetura são os atributos visíveis ao programador. — Conjunto de instruções, número de bits usados para representação de dados, mecanismos de E/S, técnicas de endereçamento. — Por exemplo, existe uma instrução de multiplicação? Organização é como os recursos são implementados. — Sinais de controle, interfaces, tecnologia de memória. — por exemplo, existe uma unidade de multiplicação no hardware ou ela é feita pela adição repetitiva? — os subsistemas podem ser decompostos em níveis hierárquicos Organização e Arquitetura Exemplo: Toda a família Intel x86 compartilha a mesma arquitetura básica. •Isso gera compatibilidade de código: — Pelo menos, com a geração anterior. •A organização tende a ser diferente entre diferentes versões. Organização e Arquitetura Estrutura e função •Estrutura é o modo como os componentes são inter- relacionados. •Função é a operação individual de cada componente como parte da estrutura. Todas as funções do computador se resumem: — Processamento de dados. — Armazenamento de dados. — Movimentação de dados. — Controle. Visão Funcional Obs.: em algumas arquiteturas, permite-se processar e, em seguida, exportar via interface de E/S Mecanismos Movimentação De Dados Mecanismos de Controle Mecanismos de Armazenamento de Dados Mecanismos de Processamento de Dados Ambiente Operacional Movimentação de Dados Armazenamento de Dados Processamento (de/para armazenamento) Visão Funcional Computador CPU I/O Interconexão Memória CPU: - Registradores Inteiros Ponto-flutuante - ALU Manipulação de instruções de ordem lógica Manipulação de instruções de ordem aritmética - Unidade de Controle Lógica de Sequenciação Registradores e decodificadores da unidade de controle Memória de controle - Sistema de Interconexão Melhoria do Desempenho... - processador - acesso à memória / capacidade de armazenamento - transferência do barramento - diminuição tempo de I/O (ou diminuição de acessos ao sistema de I/O) Histórico linha x86 Evolução do x86 •8080 —Primeiro microprocessador de uso geral. —Caminho de dados de 8 bits. —Usado no primeiro computador pessoal. •8086 – 5MHz – 29 000 transistores. —Muito mais poderoso. —16 bits. —Cache de instruções, pré-busca poucas instruções. —8088 (barramento externo de 8 bits) usado no primeiro IBM PC. •80286 —16 MB de memória endereçável. —A partir de 1MB. Histórico linha x86 •80386 —32 bits. —Suporte para multitarefa. •80486 —Cache sofisticada e poderosa, pipeline sofisticado de instrução. —Coprocessador matemático embutido. Histórico linha x86 •Pentium —Superescalar. —Múltiplas instruções executadas em paralelo. •Pentium Pro —Organização superescalar aumentada. —Renomeação de registrador agressiva. —Previsão de desvio. —Análise de fluxo de dados. —Execução especulativa. •Pentium II —Tecnologia MMX. —Processamento de gráficos, vídeo e áudio. •Pentium III —Instruções adicionais de ponto flutuante para gráficos 3D. Histórico linha x86 •Pentium 4 —Melhorias adicionais de ponto flutuante e multimídia. •Core —Primeiro x86 com dual core. •Core 2 —Arquitetura de 64 bits. •Core 2 Quad – 3GHz – 820 milhões de transistores —Quatro processadores no chip. •Arquitetura x86 é dominante fora dos sistemas embarcados. •Organização e tecnologia mudaram drasticamente. •Arquitetura do conjunto de instruções evoluiu com compatibilidade. •~1 instrução acrescentada por mês. •500 instruções disponíveis. Sistemas Embutidos Sistemas embarcados ARM •ARM evoluiu dos princípios de projeto RISC. •Usada principalmente em sistemas embarcados. —Usada dentro do produto. —Não para computador de uso geral. —Função dedicada. –Por exemplo, freios ABS no carro. Sistemas Embutidos Requisitos dos sistemas embarcados •Diferentes tamanhos. —Diferentes restrições, otimização, reuso. •Diferentes requisitos. —Segurança, confiabilidade, tempo real, flexibilidade e legislação. —Tempo de vida —Condições ambientais. —Cargas estáticas versus dinâmicas. —Velocidades de lenta a rápida. —Uso intenso de computação (CPU bound) versus E/S (I/O bound). —Sistemas de evento discreto até dinâmica de tempo contínuo. Possível Estruturação de um Sistema Embutido Histórico ARM Evolução do ARM •Projetado pela ARM Inc., Cambridge, Inglaterra. •Licenciado aos fabricantes. •Alta velocidade, pequeno tamanho do die, baixos requisitos de potência. •PDAs, jogos portáteis, telefones. —P.e., iPod, iPhone •Acorn produziu ARM1 & ARM2 em 1985 e ARM3 em 1989. •Acorn, VLSI e Apple Computer fundaram a ARM Ltd. Categorias de sistemas de ARM •Embarcados de tempo real. •Plataformas de aplicação. —Linux, Palm OS, Symbian OS, Windows mobile. •Aplicações seguras. Execução de Programas O que é um programa? •Uma sequência de etapas. •Para cada etapa, é feita uma operação aritmética ou lógica. •Para cada operação, é necessário um conjunto diferente de sinais de controle. •Para cada operação, um código exclusivo é fornecido. —exemplo: ADD, MOVE. •Um segmento de hardware aceita o código e emite os sinais de controle. Execução de Programas Ciclos de Instrução: a) modo “simplório” Duas etapas: busca da instrução e execução Execução de Programas Ciclo de Busca •Contador de Programa (PC) mantém endereço da próxima instrução a buscar. •Processador busca instrução do local de memória apontado pelo PC. •Incrementar PC: —A menos que seja informado de outra forma. •Instrução carregada no Registrador de Instrução (IR). •Processador interpreta instrução e realiza ações exigidas. Execução de Programas Ciclo de Execução •Processador-memória: —Transferência de dados entre CPU e memória principal. •E/S do processador: —Transferência de dados entre CPU e módulo de E/S. •Processamento de dados: —Alguma operação aritmética ou lógica sobre dados. •Controle: —Alteração da sequência de operações. —eexemplo: salto. •Combinação dos itens anteriores. Execução de Programas Possíveis Ciclos Reais – Busca da instrução – Decodificação – Busca dos operandos – Execução – Escrita dos resultados (write-back) Pode-se executar essas etapas de forma paralela ou pseudo-paralela? – Resposta: PIPELINE e SUPER-ESCALARIDADE Execução de Programas Super-escalar Idéia básica: replicação de unidades funcionais Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 Slide 15 Slide 16 Slide 17 Slide 18 Slide 19 Slide 20 Slide 21 Slide 22 Slide 23