Organização de Computadores

Documentos relacionados
Organização de Computadores 1

Notas de Aula Guilherme Sipahi Arquitetura de Computadores. Arquitetura de von Neumann

3/9/2010. Ligação da UCP com o barramento do. sistema. As funções básicas dos registradores nos permitem classificá-los em duas categorias:

Fundamentos de Arquitetura e Organização de Computadores

Hardware: Componentes Básicos. Sistema de Computador Pessoal. Anatomia de um Teclado. Estrutura do Computador. Arquitetura e Organização

10. CPU (Central Processor Unit) Conjunto das instruções Estrutura interna Formato das instruções...

Organização e Arquitetura de Computadores I

Sistemas Operacionais. Rodrigo Rubira Branco

Antes de deixarmos o hardware (1) Nível da Arquitetura do Conjunto das Instruções

Oganização e Arquitetura de Computadores

Introdução. ULA: Faz os Cálculos UC: Como isso tudo ocorre?

Arquitetura de Computadores - Revisão -

O Processador: Via de Dados e Controle

Sistemas Operacionais. Revisando alguns Conceitos de Hardware

O Funcionamento do Processador

Introdução aos Computadores Introdução à Ciência de Computadores Outubro / 16

Organização e Arquitetura de Computadores. Ivan Saraiva Silva

Microcontroladores. Prof. Nivaldo T. Schiefler Jr. M.Eng Homepage:

Unidade Central de Processamento

Arquitetura de Computadores - Princípio de Funcionamento da CPU. Por Helcio Wagner da Silva

Unidade 1: O Computador

ARQUITETURA DE COMPUTADORES. Professor: Clayton Rodrigues da Siva

Componentes básicos de um sistema computacional. Cap. 1 (Stallings)

Sistemas Operacionais. Rodrigo Rubira Branco

Estrutura de um Computador

28/9/2010. Unidade de Controle Funcionamento e Implementação

Sistemas Operacionais

Arquitetura de Computadores. Prof. João Bosco Jr.

Data Path / Control Path Controle do MIPS

Nível da Microarquitetura

PROGRAMAÇÃO DE COMPUTADORES

Organização e Arquitetura de Computadores I

Controlador de DMA. Gustavo G. Parma

O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware

LISTA DE EXERCÍCIOS - Nro. 01

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini prof.andre.luis.belini@gmail.com /

Primeiro nível desenvolvido, historicamente Atualmente existente entre o nível da microarquitetura e do sistema operacional

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

Microprocessadores. Memórias

Univ ersidade Feder al do Rio de Janei ro Informáti ca DCC/IM. Pipeline. Gabriel P. Silva. Gabriel P. Silva

Edeyson Andrade Gomes

Sistemas Operacionais. Prof. Pedro Luís Antonelli Anhanguera Educacional

ANHANGUERA EDUCACIONAL. Capítulo 2. Conceitos de Hardware e Software

Unidade Central de Processamento (CPU) Processador. Renan Manola Introdução ao Computador 2010/01

Conteúdos: Debora, Edcarllos, livros! slides disponíveis!

Construção de uma via de dados, abordagem monociclo, multiciclo e pipeline

Unidade 11: A Unidade de Controle Prof. Daniel Caetano

4 Sistema Computacional:

Introdução à Organização de Computadores. Sistemas da Computação Prof. Rossano Pablo Pinto, Msc. rossano at gmail com 2 semestre 2007

ARQUITETURA DE COMPUTADORES

Flávia Rodrigues. Silves, 26 de Abril de 2010

Aula 03. Processadores. Prof. Ricardo Palma

Nivel de Linguagem de Montagem (Assembly)

Visão Geral de Sistemas Operacionais

Lista de Exercícios 1

2 Formalidades referentes ao trabalho

Introdução à Informática

TECNÓLOGO EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PROGRAMAÇÃO DE COMPUTADORES I

Microcontroladores e Microprocessadores

Sistemas Computacionais II Professor Frederico Sauer

Capítulo 4. MARIE (Machine Architecture Really Intuitive and Easy)

Processamento de Dados aplicado à Geociências. AULA 1: Introdução à Arquitetura de Computadores

MATA49 Programação de Software Básico

BIOS - Códigos de erro

Introdução à Organização de Computadores. Execução de Programas Prof. Rossano Pablo Pinto, Msc. rossano at gmail com 2 semestre 2007

ARQUITETURA DE COMPUTADORES

28/3/2011. Família Intel 80x86. Arquitetura dos Processadores Intel 80x86

Projetando um Computador Parte II Arquitetura do Processador BIP

Organização de Computadores 1

Mecanismo de Interrupção

Programação Orientada a Objetos SANTOS, Rafael

Aula 11: Desvios e Laços

Fundamentos de Programação. Diagrama de blocos

Arquitetura de Computadores - Operação da Unidade de Controle. por Helcio Wagner da Silva

Professor Léo Matos TI para Concursos

Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Aula 03

Módulo 8 Entradas Digitais 24 Vdc Monitorado. Os seguintes produtos devem ser adquiridos separadamente para possibilitar a utilização do produto:

O processador é composto por: Unidade de controlo - Interpreta as instruções armazenadas; - Dá comandos a todos os elementos do sistema.

Gerenciamento de Entrada e Saída. Ciclo 6 AT1. Prof. Hermes Senger

Projetando um Computador

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 03 Conceitos de Hardware e Software parte 01. Cursos de Computação

Linguagem de Montagem Funcionamento de CPU e Assembly Rudimentar

Conjunto de instruções do CPU. Arquitectura de um computador. Definição das instruções (1) Definição das instruções (2)

Entradas/Saídas. Programação por interrupções Conceitos gerais Programação da porta série Transmissão

ARQUITETURA DE COMPUTADORES

Conteúdo programático

Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores.

Interrupções. As interrupções são casos especiais de chamadas de procedimentos.

Microprocessadores. Cap. 2 Microprocessador, operação de hardware e computação

SIS17 - Arquitetura de Computadores

Arquitetura de Computadores. Tipos de Instruções

Arquitetura e Organização de Computadores

Cap. 5 - Microprocessadores

SISTEMAS OPERACIONAIS. 3ª. Lista de Exercícios

Arquitetura e Organização de Computadores

Arquitetura de Computadores Paralelismo, CISC X RISC, Interpretação X Tradução, Caminho de dados

William Stallings Arquitetura e Organização de Computadores 8 a Edição

Introdução à Engenharia de Computação

Arquitetura de Computadores II MIPS64. Prof. Gabriel P. Silva

Introdução. Nível da Linguagem de Montagem. Linguagem de Montagem (2) Linguagem de Montagem (1) Linguagem de Montagem

Transcrição:

Organização de Computadores Aula 27 Estrutura e Função da CPU Rodrigo Hausen 17 de novembro de 2011 http://cuco.pro.br/ach2034 1/33

Apresentação 1. Bases Teóricas 2. Organização de computadores... 2.5. Subsistema de Entrada/Saída (I/O) 2.6. Conjunto de Instruções 2.7. Estrutura e Função da CPU Aula de hoje: Stallings (5a. Edição), Capítulo 11 2/33

Estrutura da CPU CPU deve: Obter instruções Interpretar instruções Obter dados (da memória/dispositivos) Processar dados Escrever dados (para a memória/dispositivos) 3/33

CPU e o Barramento do Sistema ULA registradores Unid. de Controle Barramento de Controle Barramento de Dados Barramento de Endereço Barramento do Sistema 4/33

Estrutura Interna da CPU Unid. Lógico-Aritmética Reg. de Estado Deslocador Complementador Lógica Booleana e Aritmética Barramento Interno da CPU Registradores Unid. de Controle Sinais de Controle 5/33

Registradores CPU deve possuir um espaço de trabalho (armazenamento temporário) Denominado registradores Número e função variam entre projetos de processadores Uma das decisões de projeto mais importantes Nível superior da hierarquia de memória 6/33

Registradores Visíveis ao Usuário Aquele que pode ser acessado por meio da linguagem de máquina que a CPU executa (por usuário, entende-se programador) de Propósito Geral: usados pelo programador para uma variedade de funções de Dados: apenas para dados que não podem ser usados para cálculo de endereços de operandos de Endereço de segmento, de índices, apontador de topo de pilha, etc. de Códigos de Condição: bits atualizados pelo hardware que indicam o resultado de operações (flags) 7/33

Registradores Visíveis ao Usuário de Propósito Geral Podem ser verdadeiramente de propósito geral. Ou nem tanto: registradores usados apenas para operações de ponto flutuante ou operações envolvendo a pilha Podem ser usados para dados ou endereçamento Podem ser usados para dados ou cálculo de endereçamento Acumulador regs. de segmento: contém o end. base de um segmento regs. de índice: usados para endereçamento indexado apontador de topo de pilha 8/33

Registradores Visíveis ao Usuário de Propósito Geral - Decisões Torná-los de propósito verdadeiramente geral: Mais flexibilidade e opções para programador Aumenta tamanho e complexidade das instruções Torná-los especializados: Permite referências implícitas aos registradores Instruções menores e menos complexas (mais rápidas) Menor flexibilidade Tendência atual: mais registradores especializados 9/33

Registradores Visíveis ao Usuário de Propósito Geral - Decisões Quantos registradores? Número adequado: entre 8 e 32 (empírico) Poucos registradores mais referências à memória Muito mais não reduz significativamente referências à memória e complica o projeto da CPU Abordagem RISC: centenas de registradores 10/33

Registradores Visíveis ao Usuário de Propósito Geral - Decisões Qual o tamanho de cada registrador? Grande o suficiente para armazenar o maior endereço Grande o suficiente para conter uma palavra Geralmente é possível combinar dois registradores de dados para representar palavras de tamanho maior em linguagem C: float versus double int versus long int ou long long int 11/33

Registradores Visíveis ao Usuário de Códigos de Condição Conjuntos de bits individuais que indicam o resultado de operações (flags) resultado da última operação lógica/aritmética foi zero, divisão por zero, overflow, etc. Podem ser lidos (geralmente implicitamente) por programas p. ex. em desvios condicionais, como Jump if Zero (JZ) Geralmente, não podem ser escritos diretamente por programas 12/33

Regs. de Controle e Estado Utilizados pela Unid. de Controle para controlar a operação da CPU e pelo Sistema Operacional para controlar a execução de programas Maioria deles não é visível ao usuário PC (Program Counter) IR (Instruction Register) MAR (Memory Address Register) MBR (Memory Buffer Register) I/O AR, I/O BR 13/33

Program Status Word (PSW) PSW = Palavra de Estado de Programa: conjunto de bits que contém os códigos de condição (flags) e outras informações de estado: Signal: sinal do último resultado Zero: indica se último resultado foi zero Carry: último vai-um Equal: indica se os últimos operandos eram iguais Overflow Interrupções habilitadas ou desabilitadas Modo supervisor ou usuário: para uso do SO. Permite que instruções privilegiadas executem (modo supervisor, ring 0 ou kernel mode), limita instruções, acesso à memória e registradores (modo usuário, ring 3, user mode). 14/33

Outros Registradores Dependendo da CPU, pode haver uma variedade de outros registradores de uso específico: blocos de controle de processo (para uso do SO) vetores de interrupção (para uso do SO) topo de pilha, base da pilha controle de operações de entrada/saída Vários fatores influenciam decisões de projeto de registradores; principalmente, suporte a sistemas operacionais. 15/33

Exemplos: Organizações de Regs. Motorola 68000 (usado no Mega Drive) Registradores separados, mas de uso misto (mais flexibilidade) Regs. de endereçamento e dados separados. Regs. de dados também usados para índices Dados (e índices): acessíveis em 8, 16, 32 bits (depend. opcode) A7 usado para apontador de pilha (um para usuário, um para SO, dependendo do modo de execução corrente) 16/33

Exemplos: Organizações de Regs. Intel 8086 (usado no PC XT) Registradores de uso especial, alguns podem também ser de propósito geral (menos flexibilidade) Regs. de dados: acessíveis em 8, 16 bits (dependendo do prefixo da instrução) Regs. apontadores/índices: 16 bits Regs. de segmento: 16 bits 17/33

Exemplos: Organizações de Regs. Intel 80386 até Pentium II Modos de execução: modo real (8086), modo protegido do 80286, modo protegido do 80386 Regs. de dados: acessíveis em 8, 16 ou 32 bits (depende do modo de execução, do prefixo da instrução e/ou do opcode) Regs. apontadores/índices: acessíveis em 16 ou 32 bits (depende do do modo de execução, prefixo da instrução e/ou do opcode) Regs. de segmento (não mostrados): 16 ou 32 bits, dependendo do modo de execução 18/33

Ciclo de Instrução Fetch (busca) Decode Execute sem interrupções, sem endereçamento indireto 19/33

Ciclo de Instrução Verificação e Process. de Interrupção interrupções desabilitadas Fetch (busca) Decode interrupções habilitadas Execute com interrupções, sem endereçamento indireto 20/33

Ciclo de Instrução Fetch (busca) Verificação e Process. de Interrupção interrupções desabilitadas Decode Process. de end. indireto interrupções Execute habilitadas com interrupções, com endereçamento indireto 21/33

Diagrama de Estados indireção indireção Busca de Instrução Busca de Operando Armazenamento de resultado Cálculo de endereço de Instrução Decodificação de Instrução múltiplos operandos Cálculo de endereço de operando Execução da Operação múltiplos resultados Cálculo de endereço de Operando Verificação Interrupção Process. Interrupção busca da próxima instrução 22/33

Fluxo de Dados (1) Depende do projeto da CPU. Em geral: Busca de instrução: PC contém endereço da próxima instrução Endereço em PC movido para MAR, endereço no MAR colocado no barramento de endereço Unidade de controle requisita leitura à memória Memória coloca conteúdo no barramento de dados, que é copiado para o MBR Copia instrução lida no MBR para o IR PC é incrementado de 1 unidade (prepara para próxima) Decodificação: IR é examinado pela unidade de controle Busca de operando: se endereçamento indireto, ciclo de indireção é executado. N bits menos significativos do MBR transferidos ao MAR Unidade de controle requisita leitura à memória Resultado (endereço do operando) movido para MBR 23/33

Fluxo de Dados (2): Execução As instruções podem assumir várias formas Depende da instrução em execução Pode incluir: Operação de leitura/escrita na memória Operação de entrada/saída Transferências entre registradores Operações com a ULA 24/33

Fluxo de Dados(3): Interrupção PC atual é gravado para, após processamento da interrupção, permitir retorno ao ponto anterior Conteúdo do PC copiado para MBR Posição especial de memória (p. ex. stack pointer = SP) copiado para MAR MBR escrito na memória PC é carregado com endereço da rotina de tratamento de interrupção (handler) Próxima instrução (primeira do handler) pode ser obtida 25/33

Pré-Busca (Prefetch) Busca da próxima instrução acessa a memória principal Comumente, execução não acessa a memória principal Portanto, geralmente a CPU pode buscar a próxima instrução a ser executada ao mesmo tempo em que etá executando a instrução corrente Esta otimização chama-se instruction prefetch. Requer maior complexidade da CPU Fazem prefetch: Intel do 8086 até dias atuais; ARM; microcontroladores Atmel AVR e Microchip PIC Não faz: Z80 (versão atualizada ez80, lançada em 2001, faz) 26/33

Prefetch: Aumento de Desempenho O prefetch de instruções aumenta o desempenho, mas não o dobra Subciclo de busca, em geral, é mais curto que o de execução Em casos de desvios na execução do programa (jump/branch), a instrução pré-buscada não é a que será executada Pode-se adicionar mais estágios para aumentar o desempenho: pipelining 27/33

Linha de Montagem de Carros Ciclo de montagem de carro é composto por: 1) Fusão e moldagem dos componentes do carro 2) Montagem dos componentes mecânicos no chassis (direção, embreagem, motor, etc) 3) Montagem das laterais, portas, capô, teto 4) Montagem da parte elétrica: bateria, fios, ignição eletrônica 5) Montagem do painel 6) Montagem dos bancos 7) Montagem dos vidros 8) Pintura 9) Limpeza 10) Regulagem e controle de qualidade. 11) Montagem de acessórios: ar, vidros elétricos, alarme, etc. Em uma fábrica, etapas são feitas paralelamente em uma linha de montagem (refinada e popularizada por Henry Ford) 28/33

Pipeline: uma linha de montagem Se possível, faça as seguintes operações em paralelo: Busca de instrução Decodificação de instrução Cálculo de endereço(s) de operando(s) Busca de operando(s) Executa instrução Cálculo de endereço(s) de operando(s) destino Escrita do(s) resultado(s) Instruction prefetch é um tipo simples de pipeline com apenas 2 estágios: busca e execução em paralelo Aumenta mais o desempenho, mas complica ainda mais o projeto da CPU Implementado nos processadores da Intel desde o 80386 29/33

Pipeline: Diagrama de Tempo FI = Fetch Instruction, DI = Decode Instruction, CO = Cálculo de Operando, FO = Fetch Operand, EI = Execução Instrução, WO = Write Operand 30/33

Pipeline: Efeito de um Desvio FI = Fetch Instruction, DI = Decode Instruction, CO = Cálculo de Operando, FO = Fetch Operand, EI = Execução Instrução, WO = Write Operand 31/33

Para Casa Exercício 3.1 é sobre fluxo de dados dentro da CPU e para fora dela. Use Register Transfer Notation (modo preferido de mostrar fluxo de dados), de acordo com o que foi mostrado na lousa. Ler 11.1, 11.2, 11.3. Ler introdução do 11.4, incluindo estratégia de pipeline (não precisa ler de desempenho do pipeline até o final da seção). Ler 11.5 e 11.6 apenas como cultura geral. Fazer exercícios: 11.1 e 11.2 32/33

ATENÇÃO!!! Será permitida consulta na P2, de acordo com as seguintes regras: 1 folha (frente e verso) de papel formato A4 sem pauta (você pode fazer a pauta a lápis se achar necessário) texto escrito em caneta vermelha não pode colocar resolução de exercícios ou questões coloque o seu nome e número USP na folha Não vou aceitar: folha de caderno, folha rasgada ou recortada, texto a lápis ou escrito em outra cor, folhas com soluções de exercícios, folha sem nome. Prepare a sua folha de consulta com antecedência!!! Aproveite enquanto estuda e faça um resumo. Seja esperto: não é necessário colocar especificações técnicas de barramentos, processadores, etc. Estas serão fornecidas na prova, se necessário. 33/33