Infra-Estrutura de Hardware Máquinas Multiníveis Prof. Edilberto Silva www.edilms.eti.br edilms@yahoo.com Sumário Conceitos básicos Classificação de arquiteturas Tendências da tecnologia Família Pentium Conclusão
Conceitos básicos Arquitetura do computador O projetista de hardware preocupa-se com circuitos, componentes, temporização e facilidade de solução de erros. O arquiteto de computador preocupa-se com os componentes de alto nível, como eles se conectam, como eles trabalham de forma integrada para garantir performance Conceitos básicos Arquitetura do computador Visão tradicional: identificar os atributos de um sistema de computação na visão do programador, isto é, a estrutura conceitual e o comportamento funcional, em oposição à implementação física. Visão atual: entender as técnicas de projeto, estrutura das máquinas, fatores tecnológicos e métodos de avaliação que irão determinar a estrutura dos computadores no século 21 Arquitetura = Organização da máquina + Conjunto de instruções
Conceitos básicos Comunicação com o computador Programa em linguagem de alto nível Compilador Programa em linguagem Assembly Assembler Programa em linguagem de máquina Conjunto de sinais de controle Interpretação pela máquina temp = v[k]; v[k] = v[k+1]; v[k+1] = tempo; hv $15, 0($2) hv $16, 4($2) anv $16, 0($2) anv $15, 4($2) 1000 1100 0110 0010 0000 0000 0000 0000 1000 1100 1111 0010 0000 0000 0000 0100 1010 1100 1111 0010 0000 0000 0000 0000 1010 1100 0110 0010 0000 0000 0000 0100 ALUOP[0:3] InstReg[9:11] & MASK Conceitos básicos Conjunto de instruções Parte da arquitetura que é visível para o programador: Códigos de operação das instruções disponíveis Quantidades e tipos dos registradores Formatos das instruções Acesso à memória e modos de endereçamento
Conceitos básicos Conjunto de instruções Aplicações Compilador Microprograma Projeto da lógica digital Projeto de circuitos Sistema Operacional Sistema I/O Conceitos básicos Arquiteturas de alto desempenho Ênfase nos módulos e estruturas que permitem agilizar a velocidade de processamento Exemplos: Processadores RISC Pipelines Memória cache Multiprocessadores
Classificação de arquiteturas Classificação básica Máquinas von Neumann Máquinas não-von Neumann Máquinas von Neumann Três subsistemas básicos: CPU com três blocos principais: unidade de controle, unidade lógico-aritmética (ALU) e registradores, incluindose aí um registrador contador de programa (PC) Memória principal Sistema de E/S Programa armazenado representado em forma digital na memória do computador, juntamente com os dados Execução seqüencial de instruções Caminho único entre memória e unidade de controle Classificação de arquiteturas Máquinas von Neumann endereço CPU Memória Principal Registradores PC Unidade de Controle ULA Sistema de E/S dados/instruções
Classificação de arquiteturas Máquinas von Neumann Operação: a execução de um programa é uma seqüência de ciclos de máquina von Neumann, compostos por: Busca da instrução (fetch): transfere instrução da posição de memória apontada por PC para a CPU; Execução da instrução: a unidade de controle decodifica a instrução e gerencia os passos para sua execução pela ALU. Classificação de arquiteturas Máquinas não-von Neumann Máquinas paralelas: várias unidades de processamento executando programas de forma cooperativa, com controle centralizado (máquinas SIMD) ou não (máquinas MIMD) Máquinas de fluxo de dados: não executam instruções de um programa; realizam operações de acordo com a disponibilidade dos dados envolvidos Redes neurais artificiais: não executam instruções de um programa; resultados são gerados a partir de respostas a estímulos Processadores sistólicos (VLSI): processamento ocorre pela passagem de dados por arranjo de células de processamento executando operações básicas
Classificação de Flynn SI (Single Instruction) MI (Multiple Instruction) SD (Single Data) SISD Máquinas de von Neumann convencionais MISD Sem representante (até agora) MD (Multiple Data) SIMD Máquinas Array (CM-2, MasPar) MIMD Multiprocessadores e Multicomputadores (ncube, Intel Paragon, Cray T3D) Classificação de Flynn SI (Single Instruction) MI (Multiple Instruction) SD (Single Data) SISD MISD MD (Multiple Data) SIMD MIMD
Multiprocessadores Todos os processadores P acessam, através de uma rede de interconexão, uma memória compartilhada M; Possui apenas um espaço de endereçamento. Acesso uniforme a memória UMA A memória usada nessas máquinas é centralizada e encontra-se a mesma distância de todos os processadores;
Acesso uniforme a memória UMA Memória cache para amenizar a diferença de velocidade entre processador e memória Acesso não uniforme a Memória - NUMA A memória utilizada é distribuída, implementada com vários módulos que são associados um a cada processador; O espaço de endereçamento é único, e cada processador pode acessar toda a memória do sistema.
Simples Linguagem Complexa Nível n Nível 4 Nível 3 Nível 2 Nível 1 Máquina virtual M n, com linguagem de máquina L n Máquina virtual M 4, com linguagem de máquina L 4 Máquina virtual M 3, com linguagem de máquina L 3 Máquina virtual M 2, com linguagem de máquina L 2 Computador real M 1, com linguagem de máquina L 1 Os programas em L n ou são interpretados por um interpretador em execução em uma máquina de nível inferior, ou são traduzidos para a linguagem de máquina de uma máquina de nível inferior Os programas em L 3 ou são interpretados por um interpretador em execução em M 2, ou são traduzidos para L 2 Os programas em L 2 ou são interpretados por um interpretador em execução em M 1, ou são traduzidos para L 1 Os programas em L 1 podem ser executados diretamente pelos circuitos eletrônicos Linguagens, níveis e máquinas virtuais Um computador com n níveis pode ser considerado como n diferentes máquinas virtuais, cada uma delas com uma diferente linguagem de máquina Os termos nível e máquina virtual podem ser utilizados indistintamente Para escrever programas para a máquina virtual de nível n não há necessidade de conhecer os interpretadores e tradutores subjacentes A estrutura da máquina assegura que estes programas serão de algum modo executados
Linguagens, níveis e máquinas virtuais Nível 5 Nível 4 Nível 3 Nível 2 Nível 1 Nível 0 Linguagem orientada para problemas Tradução (compilador) Linguagem de montagem Tradução (montador) Sistema operacional Interpretação parcial (sistema operacional) Máquina convencional Interpretação (microprograma) Máquina de microprogramação Os microprogramas são executados diretamente pelo hardware Lógica digital contemporâneas As máquinas com controle programado no hardware não possuem o nível 1, pois as instruções do nível de máquina convencional são executadas diretamente pelos circuitos eletrônicos do nível 0 Os níveis 6 e superiores consistem em coleções de programas projetados para criar máquinas especialmente adequadas para aplicações específicas
Hardware, software e máquinas multinível O hardware é composto de objetos tangíveis - circuitos integrados, placas de circuito impresso, cabos, fontes de alimentação, memórias, leitoras de cartões, impressoras e terminais - em lugar de idéias abstratas, algoritmos ou instruções O software consiste em algoritmos (instruções detalhadas que dizem como fazer algo) e suas representações para o computador - ou seja, os programas podem estar representados em cartões perfurados, fita magnética, filme fotográfico e outros meios Hardware, software e máquinas multinível Qualquer operação efetuada pelo software pode também ser implementada diretamente em hardware, e qualquer instrução executada pelo hardware pode também ser simulada pelo software A decisão de se colocar certas funções em hardware e outras em software baseia-se em: Custo Velocidade Confiabilidade Freqüência esperada de alterações
Hardware, software e máquinas multinível Não há regras rígidas e diretas para se dizer que X deve ser implementado em hardware e Y deve ser programado explicitamente Projetistas com objetivos diferentes podem, e muitas vezes o fazem, tomar diferentes decisões Hardware, software e máquinas multinível Uma forma intermediária entre o hardware e o software é o firmware, que consiste do software embutido em dispositivos eletrônicos durante a fabricação Utilização do firmware: Quando se espera que os programas raramente ou nunca serão mudados (brinquedos ou instrumentos) Quando os programas não podem ser perdidos ao se acabar a alimentação (quando a bateria da boneca se descarrega) Em muitos computadores, o microprograma está em firmware
F I M Perguntas...