UCP: Caminho de Dados (Parte II)

Documentos relacionados
UCP: Construindo um Caminho de Dados (Parte III)

Aula 19: UCP: Construindo um Caminho de Dados (Parte III)

UCP: Construindo um Caminho de Dados (Parte I)

Aula 17: UCP: Construindo um Caminho de Dados (Parte I)

Processador: Conceitos Básicos e Componentes

Aula 16: UCP: Conceitos Básicos e Componentes

Infraestrutura de Hardware. Implementação Monociclo de um Processador Simples

Aula 15: Ciclo de Execução e Introdução ao Pipeline

Solução Lista de Exercícios Processadores

Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores

Aula 12: Memória: Barramentos e Registradores

Unidade Central de Processamento UCP (CPU)

Processador. Processador

ção de Computadores II

Introdução à Computação: Arquitetura von Neumann

2. A influência do tamanho da palavra

ORGANIZAÇÃO DE COMPUTADORES CAPÍTULO 6: PROCESSADORES. Prof. Juliana Santiago Teixeira

Organização de Computadores

Arquitetura de Computadores. Ciclo de Busca e Execução

2. A influência do tamanho da palavra

SSC0112 Organização de Computadores Digitais I

CPU. Funções: Componentes: Processamento; Controle. UC (Unidade de Controle); Registradores; ALU s, FPU s etc. Arquitetura de Computadores 3

ORGANIZAÇÃO DE COMPUTADORES

PSI3441 Arquitetura de Sistemas Embarcados

Arquitetura e Organização de Computadores

ORGANIZAÇÃO DE COMPUTADORES

Todo processador é constituído de circuitos capazes de realizar algumas operações primitivas:

Instruções de Máquina

COMPUTADOR. Adão de Melo Neto

PSI3441 Arquitetura de Sistemas Embarcados

Infra-estrutura de Hardware

Organização de Sistemas de Computadores

COMPUTADOR 2. Professor Adão de Melo Neto

William Stallings Arquitetura e Organização de Computadores 8 a Edição. Capítulo 12 Estrutura e função do processador

Conceitos Básicos Processador

SSC510 Arquitetura de Computadores 1ª AULA

ARQUITETURA DE COMPUTADORES

Aula 21: UCP: Instrução Jump, Monociclo vs. Multiciclo, Pipeline

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA

Organização e Arquitetura de Computadores I

Instruções. Maicon A. Sartin

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I

Infraestrutura de Hardware. Implementação Multiciclo de um Processador Simples

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA

COMPUTADOR. Adão de Melo Neto

PARTE II - CONJUNTO DE INSTRUÇÕES ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR

William Stallings Organização de computadores digitais. Capítulo 14 Operação da Unidade de Controle

INTRODUÇÃO A ARQUITETURA DE COMPUTADORES FELIPE G. TORRES

ção de Computadores I

Arquiteturas de Computadores

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 7

CAPÍTULO 4 CAMINHO DE DADOS E CONTROLE

Unidade II. Organização de Computadores. Prof. Renato Lellis

Disciplina: Arquitetura de Computadores

Organização e Arquitetura de Computadores I

Aula 25: E/S: Controladoras, Mapeamentos e Técnicas

Organização e Arquitetura de Computadores INTRODUÇÃO

Arquitetura de Computadores Aula 10 - Processadores

Barramento. Prof. Leonardo Barreto Campos 1

Organização de Computadores

Microprocessadores CPU. Unidade de Controle. Prof. Henrique

Organização e Arquitetura de Computadores I

Universidade Federal do Rio de Janeiro Bacharelado em Ciência da Computação. Arquitetura de Computadores I. Organização Básica do Computador

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

Primeiro Trabalho de POO Emulador para o Processador Winter

X Y Z A B C D

FUNCIONAMENTO DO COMPUTADOR. Adão de Melo Neto

O Nível da Microarquitetura. Um Exemplo de Microarquitetura. Um Exemplo de Microarquitetura. Um Exemplo de Microarquitetura

Infraestrutura de Hardware. Instruindo um Computador

Implementação da UCP. Construção do caminho de dados Controle Implementação monociclo. Organização de Computadores

William Stallings Computer Organization and Architecture

Aula 14 Funcionamento de Processadores (Visão específica)

Organização Básica de Computadores (Parte I)

Infraestrutura de Hardware. Funcionamento de um Computador

Arquitetura de Computadores Unidade Central de Processamento CPU

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO ORGANIZAÇÃO COMPUTACIONAL

CONJUNTO DE INSTRUÇÕES

Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 10

1. A pastilha do processador Intel possui uma memória cache única para dados e instruções. Esse processador tem capacidade de 8 Kbytes e é

18/10/2010. Unidade de Controle Controle. UC Microprogramada

a) Obtenha a tabela verdade das operações com 01 bit

Elementos Físicos do SC e a Classificação de Arquiteturas

Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 06

Hardware e Software. Prof. Paulo Cesar F. de Oliveira, BSc, PhD

AULA 03: FUNCIONAMENTO DE UM COMPUTADOR

Organização de Computadores Aula 05

Microcontroladores e Interfaces

FUNDAMENTOS DE ARQUITETURAS DE COMPUTADORES SISTEMAS DE COMPUTAÇÃO. Cristina Boeres

INTRODUÇÃO A ARQUITETURA DE COMPUTADORES FELIPE G. TORRES

UNIDADE CENTRAL DE PROCESSAMENTO FELIPE G. TORRES

18/08/2015. Capítulo 2: Manipulação de dados. Arquitetura de Computadores. Capítulo 2: Manipulação de Dados

Nível da Microarquitetura

Organização e Projeto de Computadores

Tiago Alves de Oliviera

Organização de Computadores

Relembrando desempenho...

LISTA 01 DE EXERCÍCIOS DO 4º BIMESTRE PARA ESTUDO NOME: NOME:

Prof. Leonardo Augusto Casillo

Transcrição:

UCP: Caminho de Dados (Parte II) Cristina Boeres Instituto de Computação (UFF) Fundamentos de Arquiteturas de Computadores Material baseado nos slides de Fernanda Passos Cristina Boeres (IC/UFF) UCP: Caminho de Dados (II) FAC 1 / 26

Na Aula Passada... Definimos alguns conceitos: Caminho de dados: hardware que efetivamente executa as instruções. Realiza a transformação dos dados. Unidade de controle: hardware que comanda o caminho de dados. Diz o que este tem que fazer. Define as linhas de controle dos seus componentes. Ilustraremos o funcionamento destes dois macro-componentes projetando passo a passo um processador. Simplificado. Mas capaz de rodar programas interessantes. Cristina Boeres (IC/UFF) UCP: Caminho de Dados (II) FAC 2 / 26

Estrutura Organizacional Macroscópica Objetivo desta etapa Determinar mais claramente algumas especificações de hardware. Funcionamento de certos componentes e.g., quais linhas de controle eles possuem e.g., quantos bits em cada entrada/saída Também definiremos algumas quantidades de componente como quantos registradores no processador Cristina Boeres (IC/UFF) UCP: Caminho de Dados (II) FAC 3 / 26

Número de Registradores Quantos/quais registradores serão necessários ao nosso processador? Vamos dividir a questão em duas partes: Registradores especiais (i.e., que tem papel no controle ou execução de tarefas do internas ao processador) Demais registradores Cristina Boeres (IC/UFF) UCP: Caminho de Dados (II) FAC 4 / 26

Registradores Especiais Vamos manter o mínimo necessário para o funcionamento do nosso processador: PC: (program counter) - o contador de programa armazena sempre o endereço da próxima instrução a ser executada IR: registrador de instrução Necessário para guardarmos a instrução atual Precisaremos fazer coisas como decodificar o opcode Bits da instrução precisam ser guardados em algum lugar MAR e o MBR Associados a interface com a memória Cristina Boeres (IC/UFF) UCP: Caminho de Dados (II) FAC 5 / 26

Registradores de Propósito Geral Registradores usados pelos programas Há um compromisso: Mais registradores mais informação é armazenada dentro da CPU Menos registradores menor custo, menor complexidade de projeto Se tivermos a liberdade de realizar esta escolha de projeto, precisamos pesar este compromisso Cristina Boeres (IC/UFF) UCP: Caminho de Dados (II) FAC 6 / 26

Registradores de Propósito Geral Ao especificar o formato de instruções e quantos bits são necessários para identificar um registrador: O número de registradores está sendo implicitamente definido Por que? No formato adotado, 5 bits identificam um registrador 5 bits 2 5 = 32 combinações possíveis Não adianta colocar mais registradores Ter menos, é um desperdício de bits. Cristina Boeres (IC/UFF) UCP: Caminho de Dados (II) FAC 7 / 26

Registradores de Propósito Geral Por outra lado, o arquiteto pensa na arquitetura e daí, especifica o formato de instuções Para ter n registradores, precisaremos de log2 n bits no formato de instrução Conclusão: O formato de instrução está interconectado com a organização do processador Cristina Boeres (IC/UFF) UCP: Caminho de Dados (II) FAC 8 / 26

Tamanho da Palavra Qual o tamanho da palavra do nosso processador? a quantidade de bits armazenada em cada endereço/célula Outra vez, podemos analisar a especificação das instruções. Por exemplo, add immediate: a constante especificada (imediato) é de 16 bits então, uma informação/valor é armazenada em 16 bits Logo, não faz sentido termos uma palavra de menos de 16 bits. Registradores, barramentos, etc, devem, ao menos, suportar o número de bits da constante Cristina Boeres (IC/UFF) UCP: Caminho de Dados (II) FAC 9 / 26

Tamanho da Palavra No entanto, ainda temos que analisar outro fato: as instruções têm 32 bits Idealmente, o barramento de comunicação com a MP deve ser largo o suficiente para trazer de uma só vez todos os bits da instrução Não é estritamente necessário, mas é vantajoso Além disso, o IR necessariamente terá 32 bits Manter os demais registradores do mesmo tamanho parece razoável/fácil para o projeto Enfim, temos um processador de 32 bits Cristina Boeres (IC/UFF) UCP: Caminho de Dados (II) FAC 10 / 26

Tamanho da Palavra Dado o tamanho da palavra, definimos os tamanhos de algumas estruturas do processador/computador: Largura do barramento de dados com a memória: 32 bits. Largura de todos registradores: 32 bits. Largura das entradas/saída da ALU: 32 bits. Número de bits usados para endereçar a MP: 32 bits. Importante: Neste projeto, estamos decidindo usar o tamanho da palavra para todas estas estruturas. Nem todos os processadores são assim. e.g., alguns registradores maiores/menores. e.g., barramentos mais largos. Cristina Boeres (IC/UFF) UCP: Caminho de Dados (II) FAC 11 / 26

Codificação de Números Negativos Decisão que também já apareceu nos formatos de instrução. Especificamente, nas instruções load word, store word e branch on equal. Vamos utilizar sempre Complemento a 2. Cristina Boeres (IC/UFF) UCP: Caminho de Dados (II) FAC 12 / 26

A Unidade Lógica-Aritmética Com um conjunto de instruções é restrito, a ALU poderia ser simplificada Cinco tipos de operação lógica/aritmética: soma, subtração, Ou, E e set on less than. Trataremos a ALU como uma caixa preta Saberemos quais são as entradas e saídas, mas não como as funcionalidades são implementadas ALU Entradas: duas, cada uma de 32 bits Manipulação de números com sinal: Complemento a 2 Saídas: Resultado de operação lógica/aritmética (32 bits) Bit indicando se resultado é zero Cristina Boeres (IC/UFF) UCP: Caminho de Dados (II) FAC 13 / 26

A Unidade Lógica-Aritmética Linhas de controle: Quatro. Vide tabela ao lado. Note que nem todas as funcionalidades disponibilizadas pela ALU são úteis para o nosso conjunto de instruções. As operações desnecessárias (como a NOR) serão apenas ignoradas. Utilizaremos apenas as demais. Linhas de Controle Função 0000 AND 0001 OR 0010 add 0110 subtract 0111 set on less than 1100 NOR Cristina Boeres (IC/UFF) UCP: Caminho de Dados (II) FAC 14 / 26

Banco de Registradores No nosso conjunto de instruções, as que acessam mais registradores são as do tipo R. Dois registradores lidos e um escrito. Adicionalmente, note que: Nenhuma instrução lê mais que dois registradores. Nenhuma instrução escreve mais que um registrador. Logo, o banco de registradores precisa dar suporte a: Leitura de dois registradores. Escrita em um. Cristina Boeres (IC/UFF) UCP: Caminho de Dados (II) FAC 15 / 26

Banco de Registradores (II) Resumindo: Quatro entradas. Identificadores dos dois registradores de leitura. Identificador do registrador para escrita. Valor a ser escrito. Duas saídas: Valores dos registradores lidos. Linhas de controle: Discutidas posteriormente. Cristina Boeres (IC/UFF) UCP: Caminho de Dados (II) FAC 16 / 26

Interconectando Componentes Fase de implementar a lógica de funcionamento da arquitetura Precisamos garantir que cada instrução faça tudo o que deve fazer e.g., uma instrução de branch não deve alterar registradores Nosso projeto será realizado de forma incremental. Inicialmente: funcionalidades básicas Adicionaremos mais complexidade/funcionalidade aos poucos De forma concomitante: Partes da unidade de controle. Partes do caminho de dados. Cristina Boeres (IC/UFF) UCP: Caminho de Dados (II) FAC 17 / 26

Busca da Próxima Instrução Qual é a primeira etapa no ciclo de execução de uma instrução? Busca da instrução na MP Passos que devem ser realizados: Instrução apontada pelo PC é trazida da MP para o IR leitura da MP no endereço indicado por PC Ao mesmo tempo, PC é incrementado. Pode-se aproveitar e projetar a arquitetura para que as duas funções sejam realizadas Incrementar o PC é apontar para a próxima instrução a ser executada Na maioria das vezes, a próxima instrução está no endereço seguinte. Cristina Boeres (IC/UFF) UCP: Caminho de Dados (II) FAC 18 / 26

Busca da Próxima Instrução Componentes para implementar esta funcionalidade Obviamente, o registrador PC Endereço é lido dele Ele é incrementado Para incrementar o PC, também precisamos de um somador Também precisamos acessar a memória, i.e., de uma interface com a MP Cristina Boeres (IC/UFF) UCP: Caminho de Dados (II) FAC 19 / 26

Busca da Próxima Instrução PC 4 S o m a d or Memória de Instruções Instrução Lida Endereço RI Conectamos a saída do PC a duas entradas: interface com a memória um somador A interface com a memória lê a instrução e a coloca na saída. A outra entrada do somador é conectada a um sinal constante, representando o número 4. Por que 4, e não 1? Cristina Boeres (IC/UFF) UCP: Caminho de Dados (II) FAC 20 / 26

Busca da Próxima Instrução PC 4 S o m a d or Memória de Instruções Instrução Lida Endereço RI Conectamos a saída do PC a duas entradas: interface com a memória um somador A interface com a memória lê a instrução e a coloca na saída. A outra entrada do somador é conectada a um sinal constante, representando o número 4. Por que 4, e não 1? Porque nossa memória é endereçada em bytes e uma instrução tem 4 bytes (32 bits) Cristina Boeres (IC/UFF) UCP: Caminho de Dados (II) FAC 20 / 26

Busca da Próxima Instrução: Outros Detalhes PC 4 S o m a d or Memória de Instruções Instrução Lida Endereço RI Note que estamos realimentando o PC com base no seu próprio valor (mais 4) Para que isto funcione, este diagrama está subentendendo alguns detalhes Existe um gerador de clock No início de um período do clock, PC coloca seu valor na saída Apenas depois ocorre a atualização para o valor na entrada Cristina Boeres (IC/UFF) UCP: Caminho de Dados (II) FAC 21 / 26

Execução de instruções do Tipo R Instruçao foi buscada: é do tipo R São as instruções lógicas/aritméticas. Operação é realizada na ALU Os dois operandos de entrada: estão em registrador A saída também é armazenada em registrador Cristina Boeres (IC/UFF) UCP: Caminho de Dados (II) FAC 22 / 26

Instruções do Tipo R: Busca de Operandos RI RI[25-21] RI[20-16] RI[15-11] Registradores Valor Lido 1 Valor Lido 2 Registrador de Leitura 1 Registrador de Leitura 2 Registrador de Escrita Valor Escrito Operando 1 Operando 2 Todos os operandos são registradores. E todos estão identificados por conjuntos de 5 bits na instrução: Operando 1: bits 21 a 25. Operando 2: bits 16 a 20. Resultado: bits 11 a 15. Temos que separar estes bits e usá-los como entrada do banco de registradores. Cristina Boeres (IC/UFF) UCP: Caminho de Dados (II) FAC 23 / 26

Instruções do Tipo R: Execução Identificados os operandos, a operação é realizada pela ALU Logo, temos que conectar as saídas do banco de registradores às entradas da ALU. Registradores Registrador de Leitura 1 Valor Lido 1 Valor Lido 2 Registrador de Leitura 2 Registrador de Escrita Valor Escrito Controle Zero ALU Resultado Cristina Boeres (IC/UFF) UCP: Caminho de Dados (II) FAC 24 / 26

Instruções do Tipo R: Armazenando o Resultado Em instrução tipo R, resultado deve ser armazenado em um registrador Este resultado é gerado pela ALU é a saída da ALU Identificador especificado em bits da instrução Logo, temos que conectar a saída da ALU à entrada do banco de registradores Da Instrução Da Instrução Da Instrução Registradores Valor Lido 1 Valor Lido 2 Registrador de Leitura 1 Registrador de Leitura 2 Registrador de Escrita Valor Escrito Controle Zero ALU Resultado Cristina Boeres (IC/UFF) UCP: Caminho de Dados (II) FAC 25 / 26

Instruções do Tipo R: Juntando Tudo RI S o m a d or Registradores 4 RI[25-21] Registrador de Leitura 1 PC Memória de Instruções Endereço RI[20-16] Valor Lido 1 Valor Lido 2 Registrador de Leitura 2 Zero ALU Resultado Instrução Lida RI[15-11] Registrador de Escrita Valor Escrito Controle Cristina Boeres (IC/UFF) UCP: Caminho de Dados (II) FAC 26 / 26