1 / 95

Arquitetura de Computadores 2009

Arquitetura de Computadores 2009. Roteiro da Aula. Introdução Operações Aritméticas Representação dos operandos Uso de registradores Representando as instruções Mais operações sobre dados Desvios condicionais Subrotinas MIPS Outros processadores Modos de Endereçamento MIPS

kyle
Download Presentation

Arquitetura de Computadores 2009

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Infra-estrutura Hardware Arquitetura de Computadores 2009

  2. Roteiro da Aula • Introdução • Operações Aritméticas • Representação dos operandos • Uso de registradores • Representando as instruções • Mais operações sobre dados • Desvios condicionais • Subrotinas • MIPS • Outros processadores • Modos de Endereçamento • MIPS • Outros processadores Infra-estrutura Hardware Arquitetura de Computadores 2009

  3. Conceitos Básicos de Arquitetura de Computadores Capítulo 2 Infra-estrutura Hardware

  4. Computador: Hardware + Software Arquitetura de Computadores 2009 Infra-estrutura Hardware

  5. Compilador Montador Sistema Operacional Windows Datapath & Control Digital Design Circuit Design transistors Computador: Hardware + Software • Coordenação de muitos níveis de abstração Aplicação Software Repertório de Instruções Arquitetura Hardware Processor Memory I/O system Infra-estrutura Hardware Infra-estrutura Hardware

  6. Representação da Informação lw $to, 0($2) lw $t1, 4($2) sw $t1, 0($2) sw $t0, 4($2) temp = v[k]; v[k] = v[k+1]; v[k+1] = temp; Programa em Linguagem de alto nível (e.g., C) Compilador Programa em linguagem assembly (e.g.,MIPS) Montador Programa em linguagem de Máquina (MIPS) 0000 1001 1100 0110 1010 1111 0101 1000 1010 1111 0101 1000 0000 1001 1100 0110 1100 0110 1010 1111 0101 1000 0000 1001 0101 1000 0000 1001 1100 0110 1010 1111 Interpretação Hardware Infra-estrutura Hardware Infra-estrutura Hardware ° °

  7. Interface entre hw e sw: Repertório de Instruções: software Repertório de Instruções hardware Infra-estrutura Hardware Infra-estrutura Hardware

  8. Executando um programa Busca instrução Incrementa PC Decodifica instrução Busca operando Executa instrução Armazena resultado Infra-estrutura Hardware

  9. Conjunto de registradores Tipos de Dados Acesso à memória Formato e Repertório de instruções Organização Escopo deste curso...... • Arquitetura • Tecnologia de memória • Interfaces • Implementação das instruções • interconexões Infra-estrutura Hardware

  10. Operações aritméticas • Aritméticas • add a,b,c a = b + c • a = b + c + d + e? • sub a,b,c a = b - c Todas as instruções aritméticas possuem 3 operandos: destino, fonte 1, fonte 2 A simplicidade é favorecida pela regularidade Infra-estrutura Hardware Infra-estrutura Hardware

  11. Expressões Aritméticas • f = (g + h) - (i + j) • Variáveis auxiliares: t0 e t1 • add t0,g,h • add t1,i,j • sub f,t0,t1 Infra-estrutura Hardware

  12. Operandos no Hardware • Para se garantir o desempenho.... • Operandos em registradores • Vantagens: • leitura e escrita em registradores são muito mais rápidas que em memória Quanto menor mais rápido Infra-estrutura Hardware Infra-estrutura Hardware

  13. Operandos no Hardware • Registradores • $s0, $s1, .... : armazenam variáveis do programa • $t0, $t1, .... : armazenam variáveis temporárias • f = (g + h) - (i + j)? • Variáveis g,h,i e j estão armazenadas nos registradores $s0, $s1, $s2 e $s3 Infra-estrutura Hardware

  14. Conceito Conceito Tipo de Dado Tipo de Dado Bits Bits Sinais elétricos Sinais elétricos Tipos de Dados Conceitual Ling. Progr. Arquitetura Físico Infra-estrutura Hardware Infra-estrutura Hardware

  15. Escalar números Inteiros Ponto-Flutuante (real) caracteres ASCII EBCDIC dados lógicos Tipos de Dados Infra-estrutura Hardware Infra-estrutura Hardware

  16. 1000000000001010 0000000000001010 1111111111110101 0000000000001010 111111111110110 0000000000001010 Inteiros • Representação binária • sinal-magnitude • complemento a 1 • complemento a 2 + 10 - 10 - 10 + 10 + 10 - 10 Infra-estrutura Hardware Infra-estrutura Hardware

  17. 0000000000000000 0000000000000001 Verdadeiro Falso 0000000000100000 Dados lógicos • Representação • Uma palavra • Um bit Falso Verdadeiro Infra-estrutura Hardware

  18. = = ´ ´ = = ´ ´ 1 1 0 0 3 3 , , 14 14 0 0 , , 314 314 10 10 3 3 , , 14 14 10 10 - - - - = = ´ ´ = = ´ ´ 5 5 6 6 0 0 , , 000001 000001 0 0 , , 10 10 10 10 1 1 , , 00 00 10 10 expoente mantissa (fração) sinal Ponto Flutuante • Representação Infra-estrutura Hardware Infra-estrutura Hardware

  19. Underflow negativo Underflow positivo Overflow negativo Num. negativos representáveis Num. positivos representáveis Overflow positivo Zero Ponto Flutuante • Padrão IEEE Infra-estrutura Hardware Infra-estrutura Hardware

  20. Escalar números Inteiros Ponto-Flutuante (real) caracteres ASCII dados lógicos Estruturas (Estático) Array Record Listas, Árvores (Dinâmico) Tipos de Dados Infra-estrutura Hardware

  21. Operandos na Memória • Manipulando arrays: • Armazenados na memória • Instruções que permitam transferência de informação entre memória e registrador Instruções de Transferência de Dados load word - lw Array: endereço inicial de memória elemento a ser transferido Infra-estrutura Hardware Infra-estrutura Hardware

  22. Operandos na Memória • Arrays no MIPS: • endereço inicial: • registrador • deslocamento: • valor na instrução • Instrução Load Word: • Copia conteúdo de palavra (32bits) de memória para registrador. • lw reg_dst, desl(reg_end_inicial) • g = h + A[8] onde g e h estão nos registradores $s1 e $s2 e end. Inicial de A está em $s3. • lw $t0, 8($s3) • add $s1, $s2, $t0 Infra-estrutura Hardware Infra-estrutura Hardware 2009

  23. A[0] A[1] Operandos na Memória • MIPS • Inteiros com 32 bits • Memória endereçada por byte 10 11 12 End (A[0]) = 10 End (A[1]) = 14 13 14 15 16 End(A[i]) = End-inicial + i x 4 17 Infra-estrutura Hardware Infra-estrutura Hardware

  24. Operandos na Memória • Escrita em Memória • Instrução Store Word: • Copia conteúdo de palavra (32bits) de registrador para memória. • sw reg_alvo, desl(reg_end_inicial) • A[12] = h + A[8] • endereço inicial de A em $s3 e h em $s2 • lw $t0, 32($s3) • add $t0, $s2, $t0 • sw $t0, 48($s3) Infra-estrutura Hardware

  25. Operandos na Memória • Array com variável de indexação • g = h + A[i] • endereço inicial de A em $s3 e g, h e i estão em $s1, $s2 e $s4 • add $t1, $s4, $s4 • add $t1, $t1, $t1 • add $t1, $t1, $s3 • lw $t0, 0($t1) • add $s1, $s2, $t0 Infra-estrutura Hardware

  26. Resumo • Operandos no MIPS • 32 registradores • $s0, $s1,... • $t0, $t1,... • 230 palavras de memória • palavras de 32 bits • endereçamento por byte Infra-estrutura Hardware

  27. Resumo • Linguagem de montagem do MIPS • Aritméticas • add regi, regj, regk • regi = regj + regk • sub regi, regj, regk • regi = regj - regk • Transferência de dados • lw regi, desl(reg_base) • regi = mem(reg_base+desl) • sw regi, desl(reg_base) • mem(reg_base+desl) = regi Infra-estrutura Hardware

  28. Computador de Programa Armazenado • Instruções e Dados possuem uma representação numérica na memória M e m o r y A c c o u n t i n g p r o g r a m ( m a c h i n e c o d e ) E d i t o r p r o g r a m ( m a c h i n e c o d e ) C c o m p i l e r ( m a c h i n e c o d e ) P r o c e s s o r P a y r o l l d a t a B o o k t e x t S o u r c e c o d e i n C f o r e d i t o r p r o g r a m Infra-estrutura Hardware

  29. 00000 op 0 10001 17 rs 10010 18 rt 01000 rd 8 00000 0 0 100000 funct 32 Representação das instruções • Informação tem uma representação numérica na base 2 • codificação das instruções • mapeamento de nomes de registradores para números • $s0 a $s7 : 16 a 23 • $t0 a $t7 : 8 a 15 • add $t0, $s1, $s2 Infra-estrutura Hardware 6 5 5 5 5 6

  30. 6 5 5 5 5 6 op rs rt rd shamt funct Representação das instruções • Instruções do MIPS • Aritméticas • Transferência de informação op rs rt deslocamento 6 5 5 16 Infra-estrutura Hardware

  31. Linguagem de Montagem vs. Linguagem de Máquina • A[300] = h + A[300] • lw $t0, 1200($t1) • add $t0, $s2, $t0 • sw $t0, 1200($t1) Infra-estrutura Hardware Arquitetura de Computadores 2009

  32. Exemplo: uma CPU simples... Infra-estrutura Hardware

  33. Transformação de formato Desempacotamento Empacotamento Movimentação de Dado Busca Armazenamento Mais operações sobre dados Infra-estrutura Hardware

  34. 1110000001010110 1 1100000010101100 0 Lógico/Aritmético 1 1100000010101101 Rotação Transformação de Formato • Afetam a localização dos bits • Deslocamento e rotação Direita Esquerda 0 0111000000101011 0 Lógico 1111000000101011 0 Aritmético 0111000000101011 0 Infra-estrutura Hardware Rotação

  35. Operações Aritméticas Operações Lógicas Resultado Operando Transformação de formato Desempacotamento Empacotamento Movimentação de Dado Busca Armazenamento Operações sobre Dados Infra-estrutura Hardware

  36. Operações Lógicas • AND, OR, XOR, NOT • Extração de grupos de bits R1 R2 1011011110111100 0000000011111111 0000000010111100 R1 and R2 Infra-estrutura Hardware

  37. Operações Aritméticas • Soma, subtração: • Tipos de dados • inteiros • ponto-flutuante • Exemplo: • Pode gerar resultados não representáveis (overflow e underflow) 00000101 + 00000110 00001011 Infra-estrutura Hardware

  38. Operações Aritméticas • Multiplicação • resultado: tamanho duplo • Divisão • dividendo: tamanho duplo • resultados: • quociente • resto Infra-estrutura Hardware

  39. Ling. alto nível Linguagem máquina • If ...then ...else • case • loop • go to • Desvio incondicional • Desvio condicional a comparações entre variáveis e/ou valores Controle de Fluxo • Alterar a sequência de execução das instruções: Infra-estrutura Hardware

  40. Linguagem máquina lw $S0,a lw $S1,b lw $S2,c beq $S0, $S1, end1 sub $t0, $S0, $S2 j end2 end1: add $t0, $S0, $S2 end2: sw $t0, a Ling. alto nível If a=b then a:= a+c else a:= a-c end if; Desvios no MIPS • Realizado por duas instruções • jump endereço • branch if equal reg1, reg2, endereço Infra-estrutura Hardware

  41. Desvios condicionais no MIPS • Instruções de comparação e desvio: • Beq regd, regs, deslocamento PC = PC + (deslocamento*4) se regd = regs, • Bne regd, regs, deslocamento PC = PC + (deslocamento*4) se regd <> regs, Infra-estrutura Hardware

  42. Desvios condicionais no MIPS • Instruções de Comparação: • set less than • slt regd, regs1, regs2 • Regd = 1 se regs1 menor que regs2, caso contrário regd = 0 • Registrador com constante zero • Desvio se maior ou igual??? • slt $t0, $s0, $s1 • beq $t0, $0, end Infra-estrutura Hardware

  43. Desvios no MIPS • Instruções de desvio: • j endereço PC = endereço • Instruções de desvio indireto: • jr reg PC = (reg) Infra-estrutura Hardware

  44. MIPS Infra-estrutura Hardware

  45. Subrotinas • Implementação de procedimentos e funções Ling. alto nível Programa principal Var i,j,k: integer Procedure A (var x: integer); ... Begin ...(corpo do procedimento) End; Begin ... A(k); (chamada do procedimento) .... End; O endereço de retorno deve ser salvo... mas onde? Retorno após a chamada Infra-estrutura Hardware

  46. topo da pilha end. ret. de C end. ret. de C end. ret. de B end. ret. de A Onde salvar o endereço de retorno? • registradores • só permite chamadas seriais • pilha • permite aninhamento e recursividade ... Procedure A begin Procedure B begin Procedure C begin ... C ... end ... Infra-estrutura Hardware

  47. Chamada de subrotina - MIPS • Instruções: • jal • guarda endereço de retorno em $ra (reg. 31) • muda fluxo de controle • jr - jump register • recupera endereço de retorno de $ra Infra-estrutura Hardware

  48. Implementando a pilha • Utiliza parte da memória como pilha • MIPS: stack-pointer (Reg 29) programas e dados 000...000 Memória Stack-Pointer (topo da pilha) pilha 111...111 Infra-estrutura Hardware

  49. Implementando a pilha • Instruções: • coloca registrador na pilha: • lw $28, QUATRO • sw reg, 0($29) • sub $29, $29, $28 • retira registrador da pilha • lw $28, QUATRO • add $29, $29, $28 • lw reg, 0($28) Infra-estrutura Hardware

  50. Chamada de subrotina em outras arquiteturas • Instruções: • call • empilha endereço de retorno • muda fluxo de controle • ret • recupera endereço de retorno • Outras instruções de suporte... • Salvar todos registradores na pilha • alocar parte da pilha para armazenar variáveis locais e parâmetros Infra-estrutura Hardware

More Related