Relembrando desempenho...

Documentos relacionados
Relembrando desempenho...

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

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

O Processador: Via de Dados e Controle

DataPath II Tomando o controle!

Arquiteturas de Computadores

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

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

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

SSC0114 Arquitetura de Computadores

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

Organização de Computadores

CAPÍTULO 4 CAMINHO DE DADOS E CONTROLE

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I

Infra-estrutura de Hardware

Infra-estrutura de Hardware

Organização e Projetos de Computadores. Capítulo 2. Organização e Projetos de Computadores. Instruções

SSC0611 Arquitetura de Computadores

MIPS ISA (Instruction Set Architecture)

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

Infraestrutura de Hardware. Instruindo um Computador

Sistemas de Computação. Instruções de Linguagem de Máquina

ção de Computadores II

Arquitetura de Computadores I. Prof. Ricardo Santos (Cap 2)

Organização de Unidades de Processamento

Exercícios resolvidos (aula de 4 de Maio) Resolução:

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

Tiago Alves de Oliviera

Organização de Computadores μarquitetura. Na Aula Anterior... Introdução. Nesta Aula. MIPS-Monociclo. Formas de Organização 17/10/2016

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

UNIVERSIDADE FEDERAL FLUMINENSE INSTITUTO DE COMPUTAÇÃO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO

Arquiteturas de Computadores

UCP: Construindo um Caminho de Dados (Parte I)

Prof. Marcos Quinet Universidade Federal Fluminense UFF Pólo Universitário de Rio das Ostras - PURO

Unidade Central de Processamento UCP (CPU)

Arquiteturas de Computadores

Microprocessadores CPU. Unidade de Controle. Prof. Henrique

Arquitetura de Computadores. Prof. Alexandro Baldassin. 1o semestre/2018

Microcontroladores e Interfaces

Capítulo 4. O Processador

Infraestrutura de Hardware. Funcionamento de um Computador

O Processador: Via de Dados e Controle (Parte C: microprogramação)

Introdução. Os mesmos princípios se aplicam a processadores. No MIPS as instruções são divididas normalmente em cinco etapas:

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

SSC0112 Organização de Computadores Digitais I

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

Operações de Controle de Fluxo e Acesso a Memória. Na Aula Anterior... Nesta Aula. Instruções de Controle de Fluxo. if then - else.

Arquitetura e Organização de Computadores

Arquitetura de Computadores I. Prof. Ricardo Santos (Cap 2)

Organização e Arquitetura de Computadores I

Disciplina: Arquitetura de Computadores

3. INSTRUÇÕES. Instrução é uma palavra da linguagem de máquina. Instruction Set do MIPS ( usado pela NEC, Nintendo, Silicon Graphics e Sony.

Anotações da 2a Edição

Prof. Leonardo Augusto Casillo

Conjunto de Instruções. Prof. Leonardo Barreto Campos 1

SSC0112 Organização de Computadores Digitais I

SSC510 Arquitetura de Computadores 1ª AULA

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

CPU Implementação. Multiciclo. Prof. Carlos Bazilio

Organização e Arquitetura de Computadores I

Capítulo 3. Instruções: Aritmética MIPS

Organização e Arquitetura de Computadores I

Organização ou MicroArquitectura

Especificação do Projeto de Processador RISC

Capítulo 3. This material may not be copied or distributed for commercial purposes without express written permission of the copyright holder.

Arquitetura de Computadores. Linguagem de Máquina

Organização de Computadores

Conjunto de Instruções MIPS Parte IV

Arquitetura e Organização de Computadores

O Porcessador: Via de Dados e Controle (Parte B: multiciclo) 1998 Morgan Kaufmann Publishers Ch5B 1

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

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

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

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

Data Path / Control Path Controle do MIPS

Arquitetura de Computadores I Prof. Ricardo Santos (Cap 2)

ORGANIZAÇÃO DE COMPUTADORES

Questionário Arquitetura e Organização de Computadores

Unidade Central de Processamento 2. Registradores

AULA 05: LINGUAGEM DE MONTAGEM: SUPORTE A PROCEDIMENTOS

Trabalhos Práticos Arquitetura de Computadores I Prof. Fabian Vargas

4. Modelo de Programação do DLX Introdução

Instruções. Maicon A. Sartin

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

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

Infraestrutura de Hardware. Instruindo um Computador Subrotinas, Tipos de Dados e Modos de Endereçamento

Capítulo MC10 Organização Básica de Processadores

Arquitetura de Computadores

Organização e Arquitetura de Computadores I

UNIDADE CENTRAL DE PROCESSAMENTO FELIPE G. TORRES

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

ESTRUTURA E FUNCIONAMENTO DO COMPUTADOR

Organização de Computadores 1

SSC0902 Organização e Arquitetura de Computadores

ARQUITECTURA DE COMPUTADORES CAPÍTULO II AULA VII

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

O Funcionamento do Processador

Otimização de Execução em Processadores Modernos. William Stallings - Computer Organization and Architecture, Chapter 12 [Trad. E.Simões / F.

Transcrição:

Parte 5 OBS: Essas anotações são adaptações do material suplementar (apresentações PPT) ao Livro do Hennessy e Patterson, 2ª e 3ª Ed. e do Livro do 5ª Ed. A parte final do material corresponde às aulas do Prof. José Luís Güntzel, UFSC, disponível em http://www.inf.ufsc.br/~guntzel/ine641400/ine641400.html 1

Relembrando desempenho... Depende de 3 fatores chave: Número de instruções Tempo de ciclo de clock Número de Clocks Por Instrução (CPI) A partir de agora: princípios e técnica usados para implementar um processador (CPU) Apenas um subconjunto das instruções será considerado inicialmente. 2

Estrutura interna da CPU Uma CPU deve: Buscar instruções Decodificar instruções Buscar operandos/dados Executar a instrução (processar dados/operandos) Escrever o resultado Esses passos básicos fazem parte do ciclo de busca e execução da arquitetura (aulas iniciais ) Outros passos poderiam ainda ser incluídos neste ciclo para cálculos de endereços de operandos, seja na fase de busca, seja na fase de escrita. 3

Ciclo de Busca-Execução 1000 1004 INSTR1 INSTR2 PC 1000 IR Unidade de controle MEM CPU Buscar instrução no endereço 1000 4

Ciclo de Busca-Execução 1000 1004 INSTR1 INSTR2 MEM PC 1000 INSTR1 IR CPU Unidade de controle Enviar Armazenar instrução instrução para ser decodificada no registrador na de Un.Controle instrução 5

Ciclo de Busca-Execução PC 1000 1004 INSTR1 INSTR2 1000 1004 INSTR1 INSTR1 IR Unidade de controle MEM CPU Incrementar PC 6

Ciclo de Busca-Execução 1000 1004 INSTR1 INSTR2 PC 1004 INSTR2 IR Unidade de controle MEM CPU Tudo outra vez... 7

Ciclo de Busca & Execução (Patterson & Hennessy) Busca instrução Decodifica instrução Busca Operandos Executa Guarda Resultados Obtém uma instrução do programa armazenado Determine as ações e o tamanho da instruções Localiza e obtém os dados (operandos) Calcula um valor do resultado ou status Armazena resultados na memória para uso futuro Próxima instrução Determina a próxima instrução 8

Na arquitetura MIPS Dois passos iniciais iguais para todas as instruções: 1. Enviar o PC para o endereço de memória que contém a próxima instrução e trazê-la da memória 2. Usar os campos (bits) da instrução para identificar qual (is) registrador(es) 1 ou 2, dependendo da instrução Passos seguintes dependem da classe (tipo) de instrução a ser executada No caso do MIPS, a vantagem é que as execuções são bastante parecidas, o que agiliza a execução, pois simplifica o hardware de controle. 9

CPU Estrutura Interna (Stallings, Cap.12) Registers 10

CPU e Barramentos (Stallings, Cap.12) Registers Comunicação com outras parte via barramentos: dados, controle, endereços 11

Arquitetura de (Hayes,1988) Unidade Lógica e Aritmética Acumulador Quociente Mult. Hardware LÓGICO E ARITMÉTICO Dispositivos de Entrada e Saída (E/S) MBR Instruções e dados IBR IR PC MAR Memória Principal Hardware de CONTROLE Sinais de controle Unidade de Controle Endereços 12

Visão da Arquitetura MIPS 13

Registradores Além da ULA e do controle, vários registradores ocupam boa parte da estrutura da CPU Fornecem espaço físico temporário para executar instruções Quantidade e funções variam entre processadores Isto é uma das decisões de projeto mais importantes! Arquiteturas RISC priorizam um grande de registradores. Estão no topo da hierarquia do sistema de memória: São os componentes de memória mais rápidos e mais escassos do computador Em termos de organização, 2 tipos: 1. Visíveis ao usuário e 2. Controle/status 14

Registradores visíveis ao usuário Registradores de Propósito Geral Variedade de funções pelo programador Qualquer opcode pode conter um operando armazenado nesses registradores Também usados em cálculos de endereços Registradores de Dados Armazenar dados (tipos definidos no ISA) Registradores de Endereços Ex: Ponteiros de segmento, pilha, índice Registradores de Códigos Condicionais Test & set (slt), test & branch (bne,beq) e outras instruções de desvio condicional. 15

Registradores de Uso Geral (1) Podem não ser exatamente de uso geral Ex: dedicados a ponto-flutuante / operações de pilha Seu uso pode ser restrito/especializado Podem ser usados por dados ou endereços Dados: Acumulador é um registrador especializado em algumas situações Endereços: O endereço calculado com o valor armazenado; acesso a segmentos de código (família x86) Uso-geral x especialização dos registradores Compromisso entre flexibilidade, tamanho das instruções, complexidade de decodificação, etc. Influência sobre o ISA 16

Quantos registradores de uso geral uso? Algo entre 8 32 nas arquiteturas atuais Máquinas RISC, load-store podem ter centenas de registradores Menos = mais referências à memória Mais garantia de redução de referências à memória 17

Comparação de alguns processadores (Stallings, Cap. 13) 18

Qual o tamanho de um registrador? Reg.endereços: Grande o suficiente para armazenar um endereço completo Reg.de dados: Grande o suficiente para armazenar uma palavra completa Em algumas situações é possível combinar 2 registradores de dados Ex. em C: long int a; MIPS: registradores 32 bits, que combinados por trabalhar com até 64 bits Multiplicação, operações ponto-flutuante, etc. 19

Registradores de Controle & Status Arquitetura de (Hayes, 1988): 1. Contador de Programa (PC) 2. Registrador de Instrução (IR) 3. Registrador de Endereço de Memória (MAR) 4. Registrador de Buffer de Memória (MBR) 5. Registrador de Buffer de Instrução (IBR) Cada um com função específica na arquitetura: Ex: MAR armazena o endereço da palavra de memória a ser acessada. 20

Arquitetura de (Hayes,1988) Unidade Lógica e aritmética Acumulador Quociente Mult. Hardware LÓGICO E ARITMÉTICO Dispositivos de Entrada e Saída (E/S) MBR Instruções e dados IBR IR PC MAR Memória Principal Hardware de CONTROLE Sinais de controle Unidade de Controle Endereços 21

Algumas Organizações de Registradores (Stallings, Cap.12) 22

CPU =Via de dados & Controle PROCESSADOR MIPS 23

RELEMBRANDO O QUE FOI VISTO NA PARTE 3: Conjunto de Instruções MIPS 24

Sumário instruções MIPS Instrução Significado add $s1,$s2,$s3 $s1 = $s2 + $s3 sub $s1,$s2,$s3 $s1 = $s2 $s3 lw $s1,100($s2) $s1 = Memory[$s2+100] sw $s1,100($s2) Memory[$s2+100] = $s1 bne $s4,$s5,l Prox. instr. label L se $s4!= $s5 beq $s4,$s5,l Prox. instr. label L se $s4 == $s5 j L Prox. instr. label L Somente 3 formatos possíveis: R op rs rt rd shamt funct I,J* op rs rt endereço 16 bit ou imediato J op endereço de 26 bits J* = desvio condicional 25

Sumário: Registradores MIPS Nome Exemplo Comentários $s0-$s7, $t0-$t9, $zero, Localizações rápidas de dados. No MIPS, os dados devem estar nos registradores 32 registradores $a0-$a3, $v0-$v1, $gp, aritméticos. O Registrador $zero no MIPS é sempre igual a 0. Registrador $at é $fp, $sp, $ra, $at reservado para o montador manipular constantes grandes. Memory[0], Acessado somento por instruções de transferência de dados. MIPS usa endereços de bytes, e palavras sequenciais diferenciam de 4. 2 30 memory Memory[4],..., Memória armazena estruturas de dados, como vetores, e registros encadeados, words Memory[4294967292] como aqueles salvos em procedure calls. 26

Sumário: Assembly MIPS Linguagem Assembly MIPS Categoria Instrução Exemplo Significado Comentário add add $s1, $s2, $s3 $s1 = $s2 + $s3 3 operandos; dados em registradores Arim ética subtract sub $s1, $s2, $s3 $s1 = $s2 - $s3 3 operandos; dados em registradores add immediate addi $s1, $s2, 100 $s1 = $s2 + 100 Usado para adicionar constantes load w ord lw $s1, 100($s2) $s1 = Memory[$s2 + 100] Palavra da memória para registrador Transf. de store w ord sw $s1, 100($s2) Memory[$s2 + 100] = $s1 Palavra do registrador para memória dados load byte lb $s1, 100($s2) $s1 = Memory[$s2 + 100] Byte da memória para registrador store byte sb $s1, 100($s2) Memory[$s2 + 100] = $s1 Byte do registrador para memória load upper lui $s1, 100 $s1 = 100 * 2 16 Carregar constante no 16 bits immediate superiores branch on equal beq $s1, $s2, 25 if ($s1 == $s2) go to PC + 4 + 100 Teste de igualdade; desvio PC-relativo Desvio branch on not equal bne $s1, $s2, 25 Condicional set on less than slt $s1, $s2, $s3 if ($s1!= $s2) go to PC + 4 + 100 if ($s2 < $s3) $s1 = 1; else $s1 = 0 Teste de Desigualdade; desvio PCrelativo Comparar menor que; para beq, bne set less than slti $s1, $s2, if ($s2 < 100) $s1 = 1; Constante comparação menor que immediate 100 else $s1 = 0 jump j 2500 go to 10000 Saltar para o endereço alvo Desvio jump register jr $ra go to $ra Para escolha, retorno de procedimento Incondicional jump and link jal 2500 $ra = PC + 4; go to 10000 Para chamada de procedimento 27

Projeto da CPU MIPS Foco na implementação do MIPS Projeto simplificado para dar suporte (apenas) às instruções: Referência à memória: lw, sw Lógicas e aritméticas: add, sub, and, or, slt Fluxo de controle: beq, j Implementação genérica: Usa o contador de programa (PC) para fornecer o endereço da instrução Pega a instrução na memória Lê e escreve registradores Usa campos da instrução para decidir exatamente o que fazer Todas as instruções usam a ULA após ler os registradores? referência à memória? Aritméticas? Fluxo de controle? 28

Detalhes da implementação Visão Geral: Data PC Address Instruction Registers ALU Instruction memory Register # Register # Register # Address Data memory Data Dois tipos de unidades funcionais: Elementos que processam valores de dados (log. combinacional) Elementos que armazenam estado (log. sequencial - memória) 29

Simplificação da Implementação Unidades funcionais básicas usadas na construção da CPU Instruction address Instruction PC Add Sum Instruction memory MemWrite a. Instruction memory b. Program counter c. Adder Address Write data Data memory Read data 16 Sign 32 extend Register numbers Data 5 Read 3 register 1 Read 5 data 1 Read 5 register 2 Registers Write register Write data Read data 2 Data ALU ALU control Zero ALU result MemRead a. Data memory unit b. Sign-extension unit RegWrite a. Registers b. ALU 30

Fluxo no caminho de dados Multiplexadores para selecionar as vias (entradas e saídas) PCSrc 4 Add Shift left 2 Add ALU result M u x PC Read address Instruction Instruction memory Read register 1 Read register 2 Write register Write data RegWrite Registers Read data 1 Read data 2 16 Sign 32 extend ALUSrc M u x 3 ALU operation Zero ALU ALU result Address Write data MemRead MemWrite Read data Data memory MemtoReg M u x 31

Controle Seleção de operações a serem realizadas (ALU, read/write, etc.) Controle do fluxo de dados (entradas dos multiplexadores) Informações codificadas com os 32 bits da instrução Exemplo: add $8, $17, $18 000000 10001 10010 01000 00000 100000 op rd rt rs shamt funct Operação da ULA é baseada no tipo de instrução (campo op) e no código da função (campo funct), para instruções do tipo R 32

Controle Execução de Instrução na ULA O que a ULA deveria fazer com a instrução abaixo? lw $1, 100($2) 35 2 1 100 op rs rt 16 bit offset Controle de entrada da ULA (define a operação aritmética) 000 AND 001 OR 010 add 110 subtract 111 set-on-less-than Outros bits: tipo de instrução: 00:lw, sw 01:beq 11:aritmética 33

Solução para HW de Controle da ULA 0 4 Add Instruction [31 26] Control RegDst Branch MemRead MemtoReg ALUOp MemWrite ALUSrc RegWrite Shift left 2 Add result ALU M u x 1 PC Read address Instruction memory Instruction [31 0] Instruction [25 21] Instruction [20 16] Instruction [15 11] 0 M u x 1 Read register 1 Write data Read data 1 Read register 2 Registers Read Write data 2 register 0 M u x 1 Zero ALU ALU result Address Write data Data memory Read data 1 M u x 0 Instruction [15 0] 16 32 Sign extend ALU control Instruction [5 0] Instruction RegDst ALUSrc Memto- Reg Reg Write Mem Read Mem Write Branch ALUOp1 ALUp0 R-format 1 0 0 1 0 0 0 1 0 lw 0 1 1 1 1 0 0 0 0 sw X 1 X 0 0 1 0 0 0 beq X 0 X 0 0 0 1 0 1 34

0 4 A d d I n s t r u c t i o n [ 3 1 2 6 ] C o n t r o l R e g D s t B r a n c h M e m R e a d M e m t o R e g A L U O p M e m W r i t e A L U S r c R e g W r i t e S h i f t l e f t 2 A d d A L U r e s u l t M u x 1 P C R e a d a d d r e s s I n s t r u c t i o n m e m o r y I n s t r u c t i o n [ 3 1 0 ] I n s t r u c t i o n [ 25 21 ] I n s t r u c t i o n [ 20 16 ] I n s t r u c t i o n [ 15 11 ] 0 M u x 1 R e a d r e g i s t e r 1 R e a d R e a d d a t a 1 r e g i s t e r 2 R e g i s t e r s R e a d W r i t e d a t a 2 r e g i s t e r W r i t e d a t a 0 M u x 1 Z e r o A L U A L U r e s u l t A d d r e s s W r i t e d a t a D a t a m e m o r y R e a d d a t a 1 M u x 0 I n s t r u c t i o n [ 1 5 0 ] 16 S i g n 32 e x t e n d A L U c o n t r o l I n s t r u c t i o n [ 5 0 ] 35

GOTO... Material Prof. José Luís Güntzel (UFSC) disponível em: http://www.inf.ufsc.br/~guntzel/ine641400/ine641400.html Parte 1: MIPS monociclo: instruções a serem implementadas, regime de clock, construção do bloco operativo: http://www.inf.ufsc.br/~guntzel/ine641400/aoc2_aula2.pdf Parte 2: MIPS monociclo: controle da ULA, execução das instruções, bloco de controle principal, desempenho de máquinas monociclo: http://www.inf.ufsc.br/~guntzel/ine641400/aoc2_aula3.pdf Parte 3: MIPS multiciclo: construção do bloco operativo, execução das instruções: http://www.inf.ufsc.br/~guntzel/ine641400/aoc2_aula4.pdf 36