Organização e Arquitetura de Computadores

Slides:



Advertisements
Apresentações semelhantes
Sistemas Operacionais
Advertisements

Parte 1: Organização de Computadores
Capitulo 6: Entrada e Saída
CPU: Controle e processamento
Arquitetura de Computadores
Arquitetura e organização de computadores
Arquitetura e organização de computadores.
Entrada e Saída Introdução.
Técnicas para operações E/S
Organização de computadores Professora Marcela Santos Aula 8 – Conjunto de instruções.
Arquitetura de Computadores
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Ambientais Ciência da Computação Aula 03: Computador.
Software Básico Silvio Fernandes
ARQUITETURAS RISC E CISC
Arquitetura dos Microprocessadores 8086 e 8088
Arquitetura de Sistemas Operacionais
Arquitetura de Sistemas Operacionais
Sistemas Operacionais
Problemas com Entrada e Saída
SSC144 Arquitetura de Computadores Introdução
Professor: Erivelto Tschoeke – UDESC/CEPLAN
O MICROPROCESSADOR INTEL 8080
Arquitetura de Computadores
Implementação da CPU Análise de um computador simplificado Implementação da Unidade de Controle para o computador simplificado.
Arquitetura de Sistemas Operacionais
Processadores – Aula 3 Professor: André Luis Meneses Silva
Processadores – Aula 3 Professor: André Luis Meneses Silva
Sistemas Operacionais I
Introdução à Programação
Prof. Felipe Ferreira de Oliveira
Unidade Central de Processamento
Unidade Central de Processamento
Fundamentos da Arquitetura de Computadores
Representação de Instruções
Pipeline O throughput de um pipeline é determinado pela freqüência com que uma instrução sai do pipeline. Todos os estágios devem estar prontos ao mesmo.
Unidade Central de Processamento UCP
Arquitetura de computadores
Sistemas Operacionais
Sistemas Operacionais I
Organização de um computador
Agenda - Aula 2 Introdução (Computador Digital) Processadores
Processamento de dados na UCP e memória UCP
Unidade Central De Processamento: Processador
SISTEMAS OPERACIONAIS I Memória Virtual e Paginação
POLIMIG Curso Técnico em Informática Disciplina: Hardware
Computação L1: Infra-Estrutura Básica
Software Básico Nível ISA Capítulo 5 Mitsuo Takaki
Sistemas Operacionais
Unidade Central De Processamento: Processador
Unidade Central De Processamento: Processador
Capítulo 5 Entrada/Saída 5.1 Princípios do hardware de E/S
PIC Peripheral Interface Controller
8088 Assembly Software Básico Mitsuo Takaki.
Registradores.
Parte 3 Seção de Dados e Unidade de Controle
1. Introdução O processador é o componente vital do sistema de computação, responsável pela realização das operações de processamento (os cálculos matemáticos.
Introdução à Computação Componentes Básicos dos Computadores
Arquitetura de Microcomputadores
Funcionamento interno do computador
Arquitetura de computadores
Arquitetura de Sistemas Operacionais
ARQUITETURA DE COMPUTADORES Nível do Conjunto de Instruções
ARQUITETURA DE VON NEUMANN
Arquitetura do ARM RISC (Reduced Instruction Set Computer) – Conjunto relativamente grande de registradores – Modelo “load/store “de processamento Operações.
Capítulo 5 Entrada/Saída 5.1 Princípios do hardware de E/S
Introdução ao Processamento Vetorial
Organização de Computadores Implementação da UCP Construção do caminho de dados Controle Implementação monociclo.
 Todo processador é constituído de circuitos capazes de realizar algumas operações primitivas:  Somar e subtrair  Mover um dado de um local de armazenamento.
Construção de Via de dados Trabalho Avaliativo do Primeiro Bimestre. Marcos André de Sena Silva.
Transcrição da apresentação:

Organização e Arquitetura de Computadores Capítulo 11 Estrutura e Funções da CPU

Funcionalidades da CPU Registradores Ciclo de Instruções Parte I Funcionalidades da CPU Registradores Ciclo de Instruções

Organização da CPU

Funcionalidades da CPU Em um ciclo de instruções, envolve-se: Buscar instruções CPU lê uma instrução da memória Interpretar instruções Instrução é decodificada para determinar a ação requerida Buscar dados Busca dados na memória ou dispositivos de E/S Processar dados Execução de uma instrução sobre os dados Escrever dados Escrever dados na memória ou dispositivos 22

Registradores A CPU deve ter algum espaço para trabalho Registradores armazenamento temporário Registradores Número e funções dos registradores variam entre os projetos dos processadores Uma das mais importantes decisões de projeto Duas funções: Registradores visíveis ao usuário Registradores de controle e de estado 23

Registradores visíveis ao usuário Podem ser referenciados pela linguagem de máquina que a CPU executa Categorias: De propósito geral Dados Endereços Códigos de condição 24

Registradores de propósito geral Podem ser usados para uma variedade de funções Qualquer registrador pode conter um operando para uma instrução qualquer Excessões: Números em ponto flutuante Operações com a pilha Podem ainda ser utilizados para endereçamento 25

Registradores de Dados Usados apenas para dados Não podem ser utilizados no cálculo de endereço de operandos

Registradores de Endereço Utilizados para endereçamento Podem ser utilizados como registradores de propósito geral Exemplos: Registrador de segmento Registradores de Índices Apontador para o topo da pilha

Registradores de propósito geral: prós e contras Qual o limite entre definir registradores de propósito geral ou específicos? Propósito geral: maximiza a flexibilidade das instruções Propósito específico: a execução de operação busca o registrador específico, sendo necessário somente definir qual o registrador específico Não existe a melhor solução 26

Quantos registradores são suficientes? Mais registradores permite mais operandos serem tratados na CPU causam um aumento no tamanho do campo necessário para especificar o registrador na instrução Menos registradores mais referências a memória Ideal Entre 8 e 32 RISC (centenas) 27

Qual o tamanho do registrador? Devem ser capazes de armazenar o maior endereço usado no sistema Registradores de dados devem ser capazes de conter valores da maioria dos tipos de dados Por exemplo, não é necessário ter registradores de 64 bits se a maioria dos operações com dados utilizam operandos com 32 ou 16 bits 28

Registradores de Código de Condição Flags Conjunto de bits individuais e.x. resultado da última operação é zero Pode ser implicitamente lido por programas e.x. Jump se zero Não pode ser (normalmente) configurado por programas 29

Registradores de Controle e Status Registradores utilizados durante as fases de busca, decodificação e execução das instruções Muitos não são visíveis ao usuário Alguns são visíveis mas não podem ser alterados Modo de controle Sistema Operacional 30

Registradores de Controle e Status Contador de Programa Program Counter - PC Contém o endereço da instrução a ser buscada Registrador de Instrução Instruction Register – IR Contém a última instrução buscada 30

Registradores de Controle e Status Registrador de endereçamento à memória Memory address register - MAR Contém o endereço de uma posição de memória Registrador de armazenamento temporário de dados Memory Data/Buffer Register – MBR Contém uma palavra de dados a ser escrita na memória ou a palavra lida mais recentemente 30

Registradores de Controle e Status Palavra de estado de programa Program Status Word – PSW Contém informações de estado: Sinal: contém o bit de sinal da última operação Zero: indica se o resultado da última operação é zero “Vai-um” Igual: indica se uma comparação lógica resulta em igualdade Overflow: overflow aritmético Habilitar/Desabilitar interrupção Supervisor: indica se a CPU está executando em modo supervisor ou usuário 30

Outros registradores Outros registradores relacionados ao estado e controle Registrador para apontar para um bloco de memória que contém informação de estado adicional (ex., blocos de controle de processos) Vetor de interrupções Registrador indicador de topo de pilha Registrador para indicar tabela de páginas (no caso de memória virtual) 33

Ciclo de Instruções – Ciclo indireto

Ciclo Indireto Pode precisar da memória o acesso para buscar operandos Endereçamento indireto requer mais acessos de memória

Fluxo de dados (busca da instrução) PC contém o endereço da próxima instrução Endereço é movido para o MAR Endereço é colocado no barramento de endereço A UC requisita uma leitura na memória Resultado é colocado no barramento de dados e copiado ao MBR e para o IR Enquanto isso, o PC é incrementado de 1

Ciclo de busca

Fluxo de dados (busca de instruções) IR é examinado Se o endereçamento é indireto, o ciclo indireto é feito Os N bits mais significativos de MBR são transferidos para MAR A unidade de controle envia um pedido de leitura da memória O resultado (endereço ou operando) é movido para o MBR

Fluxo de dados (Diagrama do Ciclo Indireto)

Fluxo de dados (Execução) Pode ter várias formas Depende da instrução que está sendo executada Deve incluir escrita/leitura da memória Entrada/Saída Transferência entre registradores Operações da ULA

Fluxo de dados (interrupção) O PC atual é salvo para permitir que ele seja restabelecido depois da interrupção O conteúdo de PC é copiado para o MBR Uma posição especial da memória (stack pointer) é carregado para o MAR O MBR é copiado para a memória O PC é carregado com o endereço da rotina de tratamento de interrupção A próxima instrução (primeira da rotina de tratamento de interrupção) pode ser buscada

Fluxo de dados (diagrama com interrupção)

Estudo de Caso: x86 Gerais Segmentos PC Flags

PSW

PSW

Exercícios 11.1

Parte II Pipeline

Pipeline Evolução dos sistemas: Novos chips Mais registradores Cache Pipeline de Instruções

Pipeline Idéia semelhante a uma linha de montagem Várias etapas de produção Etapas podem ocorrer simultaneamente Novas entradas são aceitas antes que entradas previamente aceitas saiam como saídas Instruções possuem diversas etapas

Exemplo

Prefetch: busca antecipada Execução normalmente não necessita de acessoa à memória Durante a execução pode-se buscar uma nova instrução Performance é melhorada Mas não é duplicada Busca usualmente mais rápida do que a execução Qualquer jump ou desvio significa que instruções pré-buscadas não são instruções necessárias Mais estágios de pipeline para aumentar a performance 36

Pipelining BI - Busca de instruções DI - Decodificação de instruções CO - Cálculo de operandos BO - Busca de operandos EI - Execução de instruções EO –Escrita de Operando Sobreposição dessas operações 38

Timing of Pipeline Assume-se que: Problemas: Todas as instruções usem os 6 estágios Memória é compartilhada Todos os estágios possam ser executados em paralelo Problemas: Estágios possuem durações diferentes Operações de desvio Interrupção 39

Pipeline: efeito de uma instrução de desvio 40

Tratamento de Desvios e Interrupções

m : Atraso máximo de estágio Desempenho Tempo de ciclo  Tempo requerido para avançar um conjunto de instruções um estágio por meio de pipeline m : Atraso máximo de estágio k: número de estágios d: tempo de propagação de um estágio para outro

Desempenho Tempo de execução de n instruções: Speedup

Desempenho

Lidando com desvios Desvios: principal problema do uso de pipeline Algumas abordagens para amenizar o problema: Múltiplos Fluxos Antecipação de busca da instrução alvo do desvio Memória para laços de repetição Previsão de Desvios Atraso de Desvio (delayed branch) 41

Múltiplos Fluxos Duplicar estágios iniciais do pipeline Pré-buscar cada desvio em pipelines separadas Utilizar as pipelines apropriadas Problemas: Leva a contenção de registradores e do barramento Múltiplos saltos levam a futuras necessidades dos pipelines 42

Antecipação de busca Destino dos desvios são buscados antecipadamente Mantém destino em um registrador até que o desvio seja executado 43

Memória para laços de repetição Uma memória rápida armazena as últimas n instruções Checa-se esta memória antes de buscar da memória principal Muito bom para pequenos loops ou jumps Funcionamento semelhante a uma cache de instruções 44

Previsão de Desvios Várias técnicas: Prever que desvios nunca serão tomados Prever que desvios sempre serão tomados Prever se desvios serão tomados ou não baseado no código da operação Prever desvios com base em desvios tomados ou não tomados Prever desvios baseados em históricos 45

Previsão de Desvios Prever que desvios nunca serão tomados Sempre busca a próxima instrução Prever que desvios sempre serão tomados Assume que aquele jump irá acontecer Sempre busca a instrução de destino 45

Previsão de Branches Previsto pelo código de operação Algumas instruções são mais prováveis de resultarem em um jump do que outras Tem alta taxa de acerto Prever se desvios serão tomados ou não baseado no código da operação Baseado na história prévia Bom para loops 46

Previsão de Desvios Desvios atrasados Rearranja as instruções Só executa quanto necessário 47

Pipeline do 486 5 estágios: Busca de Instrução Decodificação 1 Execução de Instrução Escrita de Resultado

Exercícios (entregar final da aula) 11.1 11.2 11.3 11.6