RISC simples. Aula 7. 31 de Março de 2005 1



Documentos relacionados
Arquitetura de Computadores

Organização e Arquitetura de Computadores I

Conflitos. Aula de Março de

Sistemas Processadores e Periféricos Aula 5 - Revisão

Implementação de pipelines

Computadores de Programação (MAB353)

Arquitetura de Computadores. Linguagem de Máquina

Organização e Arquitetura de Computadores I

SSC0114 Arquitetura de Computadores

Conjunto de Instruções e Arquitectura p.1

Conjunto de instruções. O Conjunto de Instruções. Conjunto de instruções. Instruções típicas. Instruções típicas. Instruções típicas

Aula 14: Instruções e Seus Tipos

Índice. Tudo! (datapath de um ciclo)

ARQUITECTURA DE COMPUTADORES

SSC0611 Arquitetura de Computadores

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

MODOS DE ENDEREÇAMENTO

Capítulo 3 Processadores de Propósito Geral: Software

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

O Nível ISA. Modelo de programação Arquitecturas CISC e RISC Introdução ao IA-32 da Intel

Introdução à Arquitetura de Computadores

Arquitetura de Computadores

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

Nível da Microarquitetura

Primeiros "computadores" digitais. Execução de um programa. Consolas. Primórdios dos computadores. Memória interna. Computadores com memória interna

Arquitecturas Alternativas. Pipelining Super-escalar VLIW IA-64

MIPS Implementação. sw) or, slt. Vamos examinar uma implementação que inclui um subconjunto de instruções do MIPS

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

Arquitectura de Computadores Unidade de Processamento

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

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES ARQUITETURAS RISC E CISC. Prof. Dr. Daniel Caetano

Computadores de Programação (MAB353)

Arquitectura de Computadores RECUPERAÇÃO DO 1º TESTE

Organização e Arquitetura de Computadores I

Caminho dos Dados e Atrasos

Organização ou MicroArquitectura

Anotações da 2a Edição

MICROPROCESSADORES Nuno Cavaco Gomes Horta Universidade Técnica de Lisboa / Instituto Superior Técnico

Implementação de um soft-core em VHDL baseado no conjunto de instruções MIPS-I

Componentes do Computador e. aula 3. Profa. Débora Matos

Organização de Computadores

Processador ( CPU ) E/S. Memória. Sistema composto por Processador, Memória e dispositivos de E/S, interligados por um barramento

Arquitetura de Computadores I

Microcontroladores e Interfaces

Sistemas Computacionais II Professor Frederico Sauer

Conjunto de. Instrução MIPS. Parte II. Instruções MIPS. Instruções MIPS. Instruções MIPS :: Instruções lógicas. :: Instruções lógicas

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM

Registradores na Arquitetura MIPS. 29/4/2016 MIPS - Instruction Set Architecture

Pipelining - analogia

Universidade Federal do Rio de Janeiro Pós-Graduação em Informática IM-NCE/UFRJ. Pipeline. Gabriel P. Silva. Microarquitetura de Alto Desempenho

ULA Sinais de Controle enviados pela UC

Arquiteturas RISC. (Reduced Instructions Set Computers)

Informática I. Aula 5. Aula 5-13/05/2006 1

O Processador: Caminho de Dados e Controle

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

ARQUITETURA DE COMPUTADORES

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

NOTAS DE AULA Prof. Antonio Carlos Schneider Beck Filho (UFSM) Prof. Júlio Carlos Balzano de Mattos (UFPel) Arquitetura de Von Neumann

Organização e Arquitetura de Computadores I

Visão Geral de Pipelining

Pipeline. Todos os estágios devem estar prontos ao mesmo tempo para prosseguir.

MIPS. Prof. Carlos Bazilio

RISC - Reduced Instruction Set Computer

Processadores BIP. Conforme Morandi et al (2006), durante o desenvolvimento do BIP, foram definidas três diretrizes de projeto:

A Unidade Central de Processamento é a responsável pelo processamento e execução de programas armazenados na MP.

Organização de Computadores 1

Introdução à Engenharia de Computação

Arquitetura de Computadores. Assembly Miscelâneas. Mário O. de Menezes.

Universidade Federal de Campina Grande Unidade Acadêmica de Sistemas e Computação Curso de Bacharelado em Ciência da Computação.

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

ULA- Unidade Lógica Aritmética. Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

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

BARRAMENTO DO SISTEMA

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

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

O Hardware Dentro da Unidade do Sistema

Estrutura de um Computador

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

Relembrando desempenho...

Arquitetura de Computadores I

Linguagem de Montagem Funcionamento de CPU e Assembly Rudimentar

Escola Secundária de Emídio Navarro

Arquitetura e Organização de Computadores 2

Arquitetura de Computadores RISC x CISC. Gustavo Pinto Vilar

lw, sw add, sub, and, or, slt beq, j

Arquitetura e Organização de Computadores

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I

ARQUITETURA DE COMPUTADORES

3º Trabalho de Laboratório. Unidade de Controlo Microprogramada

ARQUITETURA DE COMPUTADORES

Figura 1 - O computador

Transcrição:

RISC simples Aula 7 31 de Março de 2005 1

Estrutura desta aula Principais características dos processadores RISC Estrutura de um processador (MIPS) sem pipeline, de ciclo único O datapath ou circuito de dados A unidade de controlo Ref: Hennessy e Patterson, 2.12 31 de Março de 2005 Arquitectura de Computadores 2004/05 2 - Aula 7

Processadores RISC (1) Reduced Instruction Set Computer (RISC): conjunto de instruções reduzido mas completo ISA apenas com operações reg-reg modos de endereçamentos simples => nº reduzido de acessos à memória => unidade de controlo simples 31 de Março de 2005 Arquitectura de Computadores 2004/05 3 - Aula 7

Processadores RISC (2) Características de um processador RISC típico (MIPS): Instruções codificadas com formato fixo de 32 bits (3 formatos) registos GPR que suportam inteiros com 8-16-32-(64) bits organização little-endian por omissão registos FPR que suportam números em vírgula flutuante (FP) formato IEEE 754 com precisão simples e precisão dupla Operações do tipo reg-reg com 3 endereços Modos simples de endereçamento apenas para instruções load/store: imediato e indirecto por registo (base+ deslocamento) e acesso alinhado => não há indexações Condições simples de salto (Ra==Rb? ; Ra==0?) => não há registo de flags 31 de Março de 2005 Arquitectura de Computadores 2004/05 4 - Aula 7

Registos do MIPS64 (1) 32 registos GPR de 64 bits (registos inteiros) R0, R1,..., R31 R0 tem a constante 0 32 registos FPR (para vírgula flutuante, FP) de 64 bits F0, F1,..., F31 Cada FPR pode conter um número em FP de precisão simples (32 bits em metade do registo) ou um número em FP de precisão dupla (64 bits) Existem instruções para operar em 2 números de FP em precisão simples num registo FPR É possível transferir um dado entre um GPR e um FPR 31 de Março de 2005 Arquitectura de Computadores 2004/05 5 - Aula 7

Registos do MIPS64 (2) 31 de Março de 2005 Arquitectura de Computadores 2004/05 6 - Aula 7

Registos do MIPS64 (3) Os dados podem ser de 1 byte 2 bytes (meia palavra) 4 bytes (uma palavra) 8 bytes (dupla palavra) para inteiros 4 bytes (uma palavra) para números em FP e precisão simples 8 bytes (dupla palavra) para números em FP e precisão dupla Bytes, meias palavras e palavras são carregados nos GPR com zeros ou com réplicas do bit de sinal, por forma a preencher todos os 64 bits 31 de Março de 2005 Arquitectura de Computadores 2004/05 7 - Aula 7

MIPS64: instruções Classes de Instruções Aritméticas e Lógicas DADD, DADDI, DAADU, DSUB, DSUBU, DMUL, DMULU, DDIV, DDIVU, MADD, AND, ANDI, OR, ORI, XOR, XORI, LUI De acesso à memória LB, LBU, LH, LHU, LW, LWU, LD, SB, SH, SW, SD, L.S, L.D, S.s, S.D De controlo J, JAL, JR, JALR, BEZ, BNEZ 31 de Março de 2005 Arquitectura de Computadores 2004/05 8 - Aula 7

Formato das instruções do MIPS64 O formato das instruções (todas com 32 bits) é: Tipo R 6 5 5 5 5 6 op rs rt rd shamt funct Registo-registo ALU: rd rs funct rt Tipo I 6 5 5 16 op rs rt Immediate Loads e Stores, Imediatos: rt rs op immediate Saltos condicionados (branches) dependem de rs e rt Jump registo, jump and link registo rs=destino, immediate=0, rt=0 Tipo J 6 26 op Jump, jump and link Trap, return from exception Offset adicionado a PC 31 de Março de 2005 Arquitectura de Computadores 2004/05 9 - Aula 7

Microarquitectura Data path - estrutura de interligação entre componentes ou unidades funcionais (estática) Controlo sequência de transferência de dados entre componentes (dinâmica) 31 de Março de 2005 Arquitectura de Computadores 2004/05 10 - Aula 7

Ciclo de instrução típico IF = instruction fetch Obtém instrução da memória (cache) de instruções (arquitectura de Harvard) ID = instruction decode Identifica opcode, gera sinais de controlo OF = operand fetch Lê registos, encaminha quantidade imediata EX = execute Executa operação, gera endereço,acede à memória (cache) de dados (Harvard) RS = result store Escreve registos, escreve memória NI = next instruction Incrementa PC ou actualiza PC com ender. próxima instrução 31 de Março de 2005 Arquitectura de Computadores 2004/05 11 - Aula 7

Classes de instruções do MIPS 31 de Março de 2005 Arquitectura de Computadores 2004/05 12 - Aula 7

Processador de ciclo único Pretende-se construir um caminho de dados (datapath) e um controlo que consigam executar uma instrução num ciclo de relógio Ou seja, um datapath com um ciclo por instrução (CPI) CPI = 1 Vantagens: Simples e de fácil compreensão Obtém-se directamente a partir do ISA (não muito flexível, difícil de alterar) Inconvenientes: Lllllllleeeeeennnnnnttttttoooooo OK, na próxima lição veremos como melhorar 31 de Março de 2005 Arquitectura de Computadores 2004/05 13 - Aula 7

Datapath e controlo (1) Tipos principais de instruções Operações aritméticas e lógicas (tipo R) add, sub, multiply, shift left, shift right, compare Leitura e escrita na memória de dados (tipo I) load, store Que mudam o fluxo de controlo (tipo J) Jumps (saltos incondicionais), branches (saltos condicionados) 31 de Março de 2005 Arquitectura de Computadores 2004/05 14 - Aula 7

Datapath e controlo (2) Principais unidades funcionais Register file memória rápida (array de registos, RAM?) Registos especiais - para o PC (Program Counter) e para resultados temporários (intermédios) ALU para processar as operações aritméticas e lógicas (e os cálculos sobre endereços?) Multiplexers e barramentos - para a ligação das unidades funcionais Lógica de controlo - para controlar o fluxo de dados e a operação das unidades funcionais O datapath serve de suporte à execução das instruções A lógica de controlo fornece os sinais de controlo requeridos pelo datapath 31 de Março de 2005 Arquitectura de Computadores 2004/05 15 - Aula 7

ALU 31 de Março de 2005 Arquitectura de Computadores 2004/05 16 - Aula 7

IFU Instruction Fetch Unit (1) Memória (cache) para guardar as instruções PC para apontar para a instrução corrente Somador para incrementar o PC (que passa a apontar para a instrução seguinte a ser adquirida e executada a seguir) Porquê? 31 de Março de 2005 Arquitectura de Computadores 2004/05 17 - Aula 7

IFU Instruction Fetch Unit (2) Para a arquitectura MIPS32, a maioria dos registos e barramentos tem 32 bits 31 de Março de 2005 Arquitectura de Computadores 2004/05 18 - Aula 7

Instruções do tipo R Exemplo: ADD R1,R2,R3 Precisa da Register File e da ALU 31 de Março de 2005 Arquitectura de Computadores 2004/05 19 - Aula 7

Exemplo: ADD R1,R2,R3 ADD R1,R2,R3 31 de Março de 2005 Arquitectura de Computadores 2004/05 20 - Aula 7

Instruções do tipo I Loads e Stores (únicas para acesso à memória (cache) de dados Exemplo: LW R4,10(R2) 31 de Março de 2005 Arquitectura de Computadores 2004/05 21 - Aula 7

Exemplo: LW R4,10(R2) LW R4,10(R2) 31 de Março de 2005 Arquitectura de Computadores 2004/05 22 - Aula 7

Exemplo: LW R4,10(R2) LW R4,10(R2) 31 de Março de 2005 Arquitectura de Computadores 2004/05 23 - Aula 7

Exemplo: LW R4,10(R2) LW R4,10(R2) 31 de Março de 2005 Arquitectura de Computadores 2004/05 24 - Aula 7

Extensão do sinal 31 de Março de 2005 Arquitectura de Computadores 2004/05 25 - Aula 7

Exemplo: SW R4,10(R2) SW R4,10(R2) 31 de Março de 2005 Arquitectura de Computadores 2004/05 26 - Aula 7

Instruções do tipo J Jumps e Branches (saltos condicionados) Não há flags Exemplo: BEQ R2,R3,offset Comparação efectuada por subtracção (R2-R3) e detecção de 0 31 de Março de 2005 Arquitectura de Computadores 2004/05 27 - Aula 7

Mais um somador Mais um somador para calcular o endereço alvo BEQ R2,R3,offset 31 de Março de 2005 Arquitectura de Computadores 2004/05 28 - Aula 7

Datapah para instr. R e memória Muxs necessários 31 de Março de 2005 Arquitectura de Computadores 2004/05 29 - Aula 7

Datapath (quase) completo 31 de Março de 2005 Arquitectura de Computadores 2004/05 30 - Aula 7

Sinais de controlo do datapath 31 de Março de 2005 Arquitectura de Computadores 2004/05 31 - Aula 7

Atenção Assegure-se que o datapath contém todas as unidades funcionais que são necessárias para implementar as instruções do ISA Ex., precisa de uma ALU, de um somador para calcular o próximo PC, e de um 2º somador para calcular o endereço de salto Se não o fizer, pode ter surpresas desagradáveis Assegure-se que tem todos os sinais de controlo para cada unidade funcional do datapath, e que sabe o que esses sinais fazem Alguns são directos ; por ex, o sinal que escreve num registo Outros são indirectos ; por ex., os sinais que dizem à ALU o que ela deve fazer NÃO estão incluídos na instrução, é preciso gerá-los com um bocado de lógica combinatória 31 de Março de 2005 Arquitectura de Computadores 2004/05 32 - Aula 7

Datapaths em silício - Pentium 31 de Março de 2005 Arquitectura de Computadores 2004/05 33 - Aula 7

Datapaths em silício - Alpha 31 de Março de 2005 Arquitectura de Computadores 2004/05 34 - Aula 7

Datapaths em silício Power PC 31 de Março de 2005 Arquitectura de Computadores 2004/05 35 - Aula 7

Formato dos datapaths (1) Possuem todos sensivelmente o mesmo formato: alto e estreito 31 de Março de 2005 Arquitectura de Computadores 2004/05 36 - Aula 7

Formato dos datapaths (2) Lógica dominada por barramentos com muitos bits (32 ou 64 bits) 31 de Março de 2005 Arquitectura de Computadores 2004/05 37 - Aula 7

Formato dos datapaths (3) Lógica dominada por barramentos com muitos bits (32 ou 64 bits) 31 de Março de 2005 Arquitectura de Computadores 2004/05 38 - Aula 7

Formato dos datapaths (4) Lógica dominada por barramentos com muitos bits (32 ou 64 bits) 31 de Março de 2005 Arquitectura de Computadores 2004/05 39 - Aula 7

Controlo em silício - Pentium Notar controlo desordenado, característico de um controlo discreto 31 de Março de 2005 Arquitectura de Computadores 2004/05 40 - Aula 7

Controlo em silício Power PC Outro exemplo: ainda com controlo discreto 31 de Março de 2005 Arquitectura de Computadores 2004/05 41 - Aula 7

Processador embebido (1) 31 de Março de 2005 Arquitectura de Computadores 2004/05 42 - Aula 7

Processador embebido (2) Ampliação do processador anterio Notar o controlo desordenado, característico de um controlo discreto 31 de Março de 2005 Arquitectura de Computadores 2004/05 43 - Aula 7

Microarquitectura Voltemos ao esquema geral da microarquitectura do datapath e do controlo Como organizar o controlo? 31 de Março de 2005 Arquitectura de Computadores 2004/05 44 - Aula 7

Controlo microprogramado (1) Uma solução usa microprogramação A lógica de estado seguinte e a lógica de saída vêm numa tabela em ROM 31 de Março de 2005 Arquitectura de Computadores 2004/05 45 - Aula 7

Controlo microprogramado (2) 31 de Março de 2005 Arquitectura de Computadores 2004/05 46 - Aula 7

Controlo microprogramado (3) Exemplo de microprograma 31 de Março de 2005 Arquitectura de Computadores 2004/05 47 - Aula 7

Controlo microprogramado (4) Exemplo de microprograma (cont.) 31 de Março de 2005 Arquitectura de Computadores 2004/05 48 - Aula 7

Controlo microprogramado (5) Primeira tentativa de solução (ex.) 31 de Março de 2005 Arquitectura de Computadores 2004/05 49 - Aula 7

Controlo microprogramado (6) Tamanho da ROM com o microprograma MIPS: w = 6+2 c = 17 s =? no. de estados por opcode = 4 a 6 + sequência de fetch no. total de estados = (4 ciclos por opcode) x n. de opcodes + + sequência de fetch comum = 4 x 8 + 10 estados = 42 estados => s = 6 Tamanho ROM de controlo = 2(8+6) x 23 bits ~ 48 Kbytes 31 de Março de 2005 Arquitectura de Computadores 2004/05 50 - Aula 7

Controlo microprogramado (7) ROM de controlo tem que ser rápida => dispendiosa Redução da altura da ROM (menos bits de endereço) Reduzir as entradas recorrendo a lógica externa Cada bit de entrada duplica o tamanho da ROM Reduzir o número de estados, agrupando opcodes Encontrar sequências comuns de microcódigo Condensar os bits de estado (entrada) Combinar todas as excepções numa única, por ex., excepção /ausência de excepção Redução da largura da ROM (palavras mais curtas) Restringir a codificação do estado seguinte Codificar os sinais de controlo em determinados campos (microprogramação vertical) 31 de Março de 2005 Arquitectura de Computadores 2004/05 51 - Aula 7

Controlo microprogramado (8) Microprogramação vertical 31 de Março de 2005 Arquitectura de Computadores 2004/05 52 - Aula 7

Microprogramação horizontal Micro-programação horizontal 1 bit por cada linha de controlo Várias microoperações podem ser realizadas simultaneamente Mas: Há microoperações que nunca acontecem simultaneamente Podem-se codificar diversas microoperações que nunca acontecem em simultâneo 31 de Março de 2005 Arquitectura de Computadores 2004/05 53 - Aula 7

Microprogramação vertical Por exemplo, não há instruções que envolvam simultaneamente operações na ALU e na memória (Load/Store) Micro-programação vertical Mais compacta Potencialmente mais lenta 31 de Março de 2005 Arquitectura de Computadores 2004/05 54 - Aula 7

Próxima aula RISC multiciclo Comparação com os RISC de ciclo único RISC com pipeline simples Estrutura de um pipeline típico com 5 andares 31 de Março de 2005 Arquitectura de Computadores 2004/05 55 - Aula 7