Baixe o app para aproveitar ainda mais
Prévia do material em texto
Aula 1 Organização de Computadores Profa. Débora Matos Visão Geral da Aula Apresentação do Plano de ensino Avaliação da disciplina Revisão e introdução aos componentes de um processador. 1 2 3 Quem são os alunos? Quem é o professor? Bem vindos ao novo semestre!! Objetivos a disciplina • Caracterização de desempenho das arquiteturas. Organização de processadores: bloco operacional e bloco de controle. • Organização serial e paralela (pipeline) da CPU Estudo de arquiteturas RISC e CISC (características e fundamentos). • Estudo de sistema de memória (hierarquia da memória, memória cache e memória virtual). • Métodos para aumento de desempenho: organização de pipelines, máquinas super- escalares. • Estudos de caso de processadores contemporâneos. Ferramentas para análise e projeto de organizações. Cronograma das aulas 04/AGO Apresentação da disciplina. Plano de ensino Revisão de conceitos e Introdução ao microprocessdaor MIPS. 11/AGO Avaliação de desempenho. CPI, MIPS, Tempo de CPU, análise de potência. 18/AGO Principais características das arquiteturas RISC e CISC, contexto histórico, vantagens e desvantagens de cada arquitetura. A realidade sobre as arquiteturas de microprocessadores atuais. 25/AGO Principais instruções do MIPS, aritméticas, lógicas e de acesso à memória. 01/SET Projetando a ULA do MIPS. Implementação em VHDL. 08/SET Caminho de dados do MIPS. Analisando instruções lógicas e aritméticas do MIPS. 15/SET Continuação do caminho dos dados do MIPS. Analisando instruções de desvio. Blocos Operacionais. 22/SET PROVA AREA 1 29/SET Correção da Prova. Unidade de Controle. Máquina de estados. Cronograma - continuação 06/OUT Máquina de estados e microprogramação. Projeto da unidade de controle em VHDL. 13/OUT Entendendo a melhora da performance com pipeline.. 20/OUT Conflitos de pipeline: Hazards de dados, harzards de controle. Soluções para os conflitos. 27/OUT Pipeline superescalar e dinâmico, Superpipeline. 03/NOV Hierarquia de memória. Memória cache. 10/NOV Continuação sobre hierarquia de memória. Memória virtual. 17/NOV Apresentação dos trabalhos e revisão para prova. 24/NOV PROVA 2 01/DEZ PROVA DE RECUPERAÇÃO 08/DEZ Divulgação das notas Avaliações • PROVA 1 (P1) • PROVA 2 (P2) • Exercícios de revisão primeira etapa (E1) • Exercícios de revisão segunda etapa (E2) • Trabalho final (T) • G1 = (P1 x 0.8 + E1 x 0.2) • G2 = (P2 x 0.8 + E2 x 0.2) • Nota final = (G1 + G2 + T)/3 Bibliografia Bibliografia Básica • PATTERSON, David A; HENNESSY, John L. Organização e Projeto de Computadores: a Interface Hardware/Software. 3. Ed. Rio de Janeiro: Elsevier, 2005. xvii, 484 p. • STALLINGS, W. Arquitetura e organização de computadores. 5° ed., São Paulo, 2010. Bibliografia Complementar • TANENBAUM, Andrew, Organização estruturada de computadores, 4º ed. • Hennessy, John. L.; Patterson, David A. Arquitetura de Computadores: Uma abordagem quantitativa, 4a Edição, 2007. Campus. Revisão de alguns conceitos • Arquitetura: refere-se aos atributos de um sistema que são visíveis para o programador, ou seja, aos atributos que tem impacto direto sobre a execução lógica de um programa. Exemplos: conjunto de instruções, número de bits utilizados para representar os tipos de dados, mecanismos de entrada e saída as técnicas de endereçamento à memória. Arquitetura X Organização • Organização: refere-se as unidades operacionais e suas interconexões que implementam as especificações da arquitetura. Exemplos: Detalhes de hardware transparentes aos programador: sinais de controle, periféricos, tecnologia de memória utilizada. Arquitetura X Organização • Definir se um computador deve ou não ter uma instrução de multiplicação é uma decisão do projeto de sua arquitetura. • Definir se essa instrução será implementada por uma unidade especial de multiplicação ou por um mecanismo que utiliza repetidamente sua unidade de soma é uma decisão do projeto da sua organização. Arquitetura X Organização Componentes de microcomputador E/S Memória Barramento CPU Registra- dores Unidade Lógica e Aritmética Intercone- xão interna da CPU Unidade de Controle CPU • Processadores • Memória principal • Sistema de Entrada/Saída • Controladores, barramentos e dispositivos periféricos; • Dispositivos periféricos (E/S) • Monitor de vídeo • CD, DVD • Teclado • Placa de Som • Portas seriais, paralelas, USB • Placa de rede. Componentes de microcomputador Quais são alguns exemplos de fabricantes de processadores: Microprocessadores: um breve histórico Microprocessadores: um breve histórico Lei de Moore A lei de Moore diz que a quantidade de transistores em um circuito integrado dobra a cada 18 meses. Lei de Moore • Um processador é um circuito integrado composto por milhões de transistores (ex. core i7 possui em o número de transistores próximo a 1 bilhão); • Estes transistores são agrupados para desempenharem determinadas funções (cálculos aritméticos, registro, condições lógicas...); • Sustentar a taxa de progresso definida pela lei de Moore durante mais de 40 anos exigiu incríveis inovações tecnológicas nas técnicas de fabricação. Microprocessadores: um breve histórico Quais os principais elementos que o compõem? Dispositivos de entrada Dispositivos de saída Memória Unidade Central de Processamento (CPU) Quais são alguns dos avanços que temos visto na arquitetura dos computadores? • Aumento da capacidade de armazenamento • Aumento da frequência de operação do processador • Aumento do número de núcleos de processamento Qual o objetivo desses avanços? • Acelerar as aplicações, aplicativos, softwares; • Prover maior capacidade de armazenamento; • Possibilitar o uso de mais recursos; O que afeta o desempenho de um computador? • HW e SW Algoritmos dos programas Linguagem de programação e compiladores Sistema Operacional O projeto do processador Sistema de entrada e saída, dispositivos •O hardware de um computador só pode executar instruções de baixo nível extremamente simples. •De uma aplicação complexa até as instruções simples, envolve várias camadas de SW que interpretam ou traduzem operações de alto nível em instruções simples de computador. HW x SW HW x SW APLICAÇÕES SW DE SISTEMA HW Exemplos de SW de sistema: Sistema Operacional Compilador Montadores Interpretador O que faz o Sistema Operacional? Gerencia os recursos do computador: manipula operações básicas de entrada e saída Aloca armazenamento e memória Possibilita e controla o compartilhamento do processador entre aplicações que rodam simultaneamente. O que fazem os compiladores? Realizam a tradução de um programa descrito em linguagem de programação de alto nível em linguagem de máquina. Função dos compiladores e montadores Programa em linguagem de alto nível Programa em assembly Programa binário compilador montador Programa em linguagem de alto nível (em C)Programa em linguagem assembly (para MIPS) Programa em linguagem de máquina (para MIPS) Função dos compiladores e montadores swap(int v[], int k) { int temp; temp = v[k]; v[k] = v[k + 1]; v[k + 1] = temp; } swap: multi $2, $5, 4 add $2, $4, $2 lw $15, 0($2) lw $16, 4($2) sw $16, 0($2) sw $15, 4($2) jr $31 00001010110000110101111001010100 10111001001000111001001010100100 01110101101010100101110101001010 10101001010101010101111101011111 00010100010001010101101111110100 01010100010010101010010101001001 01010010111001011110010101101000 Compilador Assembler/ Montador Organização de um Computador • Modelo Von Neumann (1945) – Conceito de programa armazenado – Separação da Unidade Aritmética e de Controle – Utilização de barramentos e registradores – Hardware de entrada e saída (I/O) Modelo Von Neumann Modelo Von Neumann Memória A memória é organizada em posições: 00 (00000000) 01 (00000001) 02 (00000010) ... FF (11111111) endereço Cada elemento da memória é armazenado em um endereço • Uma memória é dimensionada em bytes • O tamanho da memória é fornecida em bytes (Kbytes, Mbytes ou Gbytes) • Cada byte ocupa uma posição na memória • Cada posição de memória é identificada univocamente por um endereço • O endereço 0 (zero) corresponde a primeira posição da memória. Memória principal • A memória de um sistema computacional tem a função de armazenar dados e instruções: • Organizada em posições; • Podem ser visualizadas como elementos de uma matriz; • Cada elemento tem um endereço. • Então uma memória que tenha x posições: • Cada posição pode ser referenciada diretamente de acordo com a sua colocação na sequência; • Se uma memória tem 4096 posições existem posições de 0, ..., 4095; • Instruções são executadas em uma sequência determinada pela sua posição de memória Memória • Memória é formada por elementos armazenadores de informações; • É dividida em palavras; • Cada palavra é identificada unicamente por um endereço; • Conteúdo armazenado nas palavras da memória tanto pode representar dados como instruções; Memória • REM: registrador de endereços da memória • Contém o endereço do dado a ser lido ou escrito na memória • RDM: registrador de dados da memória • Contém o dado a ser escrito na memória (write) ou lido da memória (read) • Sinais de controle: • Read: leitura da memória –o conteúdo da posição de memória endereçada por REM é copiado em RDM; • Write: escrita na memória –a posição de memória endereçada por REM recebe o conteúdo de RDM; Memória •Quantas posições tem uma memória com endereçamento de 8 bits, e se fossem 6 bits? •Quantas instruções podem ser armazenadas na memória se são utilizados dois endereços por instrução e o endereçamento é de 8 bits? Memória • O endereço representa uma posição particular na memória e pode ser formado de várias maneiras; • A Unidade Lógica e Aritmética (ULA) é responsável por realizar ações indicadas nas instruções, executando operações numéricas (aritméticas) e não numéricas (lógica); • Preparação de informações de desvios do programa; • O controle do programa e a ULA formam a unidade central de processamento, ou simplesmente o processador. Princípios básicos Elementos funcionais básicos Exemplos: (1) (2) (3) (4) • Registradores: são elementos digitais com capacidade de armazenar dados. Apresenta sinais que determinam quando um novo conteúdo deve ser armazenado. • Contadores, multiplexadores, seletores, codificadores, somadores e portas lógicas: são elementos com capacidade de operar sobre dados: • Alterando-os ou fornecendo um novo dado como resultado Elementos funcionais básicos • Elementos digitais • Necessitam ser ativados ou habilitados para realizar uma determinada operação; • Sinais responsáveis pela ativação ou habilitação de componentes digitais são conhecidos como sinais de controle. • Barramentos (bus) • Transferem dados entre os elementos do computador; • Só podem receber dados de uma fonte por vez; • A largura em bits diz respeito ao tamanho dos elementos que trafegam nele. Elementos funcionais básicos Busca-Decodificação-Execução de instruções BUSCA: PC – (program counter) – contador de instruções contém sempre a posição da próxima instrução a ser executada. A instrução apontada pelo PC é trazida da memória para uma área de armazenamento chamada registrador de instruções. DECODIFICAÇÃO: Sinais de controle são gerados de acordo com a informação presente no campo de operação. EXECUÇÃO: A execução da instrução se dá ao final da operação determinada após a decodificação. Ao término da execução da instrução, o ciclo é repetido. Busca-Decodificação-Execução de instruções BUSCA: - Copia o apontador de programa (PC) para o registrador de programa (REM); - Lê a instrução da memória; - Copia o registrador de dados da memória (RDM) para o registrador de instruções (RI); - Atualiza o apontador do programa (PC); Busca-Decodificação-Execução de instruções DECODIFICAÇÃO: Normalmente realizada por lógica combinacional. EXECUÇÃO: Podem ser realizados: - Cálculo do endereço de operandos; - Busca de operandos na memória; - Seleção de operação da ULA; - Carga de registradores; - Escrita de operandos na memória; - Atualização do PC para desvios. O controle do ciclo busca-decodificação-execução é feito pela unidade de controle. • Unidade Operacional: • Executa as transformações sobre dados, especificadas pelas instruções do computador; • Componentes: ULA, registradores de uso geral e específico, barramentos. • Cada organização possui número, tamanho e registradores variados em cada organização. A quantidade e tipo de operações que a ULA realiza são alguns dos fatores que influenciam no poder de processamento de um computador. Elementos funcionais básicos – unidade operacional • Unidade Lógica e Aritmética (ULA) • Realiza operações lógicas e aritméticas; • Exemplo: Soma de dois operandos; • Negação de um operando; • Inversão de um operando; • Lógica de operando; • Rotação de um operando para a direita ou esquerda. • As operações da ULA geralmente são bem simples; • Funções complexas são realizadas pela ativação sequencial das várias operações básicas. Exemplo: multiplicação. Elementos funcionais básicos – unidade operacional • A ULA fornece o resultado das operações e também algumas indicações sobre a operação realizada; • Essas indicações são chamadas de códigos de condição; • Exemplos: • Overflow • Sinal • Carry • Zero Elementos funcionais básicos – unidade operacional • Acumulador • É um registrador e tem por função armazenar um operando e/ou um resultado fornecido pela ULA; • Em computadores muito simples só são encontrados um acumulador; • É ativado de acordo com o sinal de carga (load); • Cada novo sinal faz perder o valor antigo Elementos funcionais básicos – unidade operacional • Serve para fornecer sinais de controle: • Gerenciar o fluxo interno de dados e o instante preciso em que ocorrem as transferências entre umaunidade e outra • Cada unidade de controle comanda uma micro operação: • Responsável pela realização de uma carga em um registrador; • Seleção de dados para entrada; • Ativação de memória; • Seleção de uma operação da ULA. Elementos funcionais básicos – unidade de controle • Lógica combinacional: • os sinais de saída são função exclusiva dos sinais de entrada. • Lógica sequencial: • os sinais de saída são função dos sinais de entrada e do estado anterior. A unidade de controle utiliza máquinas de Estado Finitas (FSM). • As máquinas de estados são circuitos sequenciais que utilizam flip- flops com sinal de clock para que as informações armazenadas possam ser atualizadas sincronamente a intervalos regulares (a cada pulso de clock). • Existem várias formas de implementar a lógica sequencial. Porém duas são usuais: • Organização convencional • Organização microprogramada (por descrição de hardware). Elementos funcionais básicos – unidade de controle • Existem no computador alguns registradores com funções especiais. Depende da arquitetura e organização de cada máquina; • Tipos: • Apontador de instruções (PC) • Registrador de instruções (IR) • Registrador de estado (RST) Elementos funcionais básicos – registradores especiais • Apontador de Instruções (PC) • Tem como função manter atualizado o endereço de memória da próxima instrução; • Registrador de instrução (IR) • Armazena a instrução que está sendo executada. De acordo com o conteúdo, a unidade de controle determina quais sinais deve ser gerados; • Registrador de estado (RST) • Armazena códigos de condição gerados pela unidade lógica e aritmética; Elementos funcionais básicos – registradores especiais Arquitetura MIPS
Compartilhar