A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

1 1998 Morgan Kaufmann Publishers Processador Fluxo de Dados e Controle.

Apresentações semelhantes


Apresentação em tema: "1 1998 Morgan Kaufmann Publishers Processador Fluxo de Dados e Controle."— Transcrição da apresentação:

1 Morgan Kaufmann Publishers Processador Fluxo de Dados e Controle

2 Morgan Kaufmann Publishers Estamos prontos para realizarmos uma implementação do MIPS Simplificada para conter somente: –Instruções de referência à memória: lw, sw –Instruções aritméticas e lógicas: add, sub, and, or, slt –Instruções de fluxo de controle: beq, j Implementação genérica: –usar o contador de programa (PC) para fornecer o endereço da instrução –Ler a instrução da memória –ler registradores –Usar a instrução para decidir exatamente o que fazer Todas as instruções usam a ALU após a leitura dos registradores Por que? Referência a memória?Aritmética? Fluxo de controle? O processador: Fluxo de Dados & Controle

3 Morgan Kaufmann Publishers Resumo / Vista Simplificada: Dois tipos de unidades funcionais: –Elementos que operam sobre dados (combinacional) –Elementos que contêm estado (sequencial) Mais detalhes sobre a Implementação

4 Morgan Kaufmann Publishers Sem clock vs. com clock Clocks são usados em lógica síncrona – como um elemento que contem estado pode ser atualizado? Tempo de ciclo Borda de subida Borda de descida Elementos de Estado

5 Morgan Kaufmann Publishers preliminares Número ímpar de inversores em anel Número par de inversores em anel

6 Morgan Kaufmann Publishers O retentor (latch) set-reset –A saída depende das entradas atuais e também das entradas passadas Um elemento de estado sem clock S R Q Q

7 Morgan Kaufmann Publishers A saída é igual ao valor armazenado no elemento (não é necessário pedir permissão para ver o valor) A mudança de estado (valor) é baseada no clock Latch D: sempre que as entradas mudam, e o clock é acionado Flip-flop D: o estado muda somente na borda do clock (edge-triggered) Latch D e Flip-flop D

8 Morgan Kaufmann Publishers Duas entradas: –O valor do dado a ser armazenado (D) –O sinal de clock (C) indicando quando ler & escrever D Duas saídas: –O valor do estado interno (Q) e o seu complemento Latch D D C Q Q

9 Morgan Kaufmann Publishers flip-flop D A saída somente muda na borda do clock D C Q Q

10 Morgan Kaufmann Publishers Nossa Implementação Uma metodologia usando borda para o disparo ( trigger) Execução típica: –Ler conteúdo de certos elementos de estado, –Enviar valores através de alguma lógica combinacional –Escrever resultados a um ou mais elementos de estado

11 Morgan Kaufmann Publishers Construido usando D flip-flops Banco de Registradores (Register file)

12 Morgan Kaufmann Publishers Banco de Registradores Nota: ainda usamos o clock real para determinar quando escrever

13 Morgan Kaufmann Publishers Implementação simples Inclui as unidades funcionais que necessitamos para as instruções

14 Morgan Kaufmann Publishers multiplexador Seleciona uma das entradas para a saída, baseado numa entrada de controle S C A B 0 1 mux de 2-entradas A e B e controle S C A B C D S mux de 4 entradas C A B C D S 2 2

15 Morgan Kaufmann Publishers ALU Operando A Operando B resultado Flag de resultado zero

16 Morgan Kaufmann Publishers ALU de 32 bits 32 Seleção result a b ALU Linhas de controle: 000 = and 001 = or 010 = add 110 = subtract 111 = slt

17 Morgan Kaufmann Publishers Um dado imediato de 16 bits do MIPS é convertido para 32 bits em aritmética Copiar o bit mais significativo (o bit de sinal) para outros bits > > "sign extension" Convertendo um número de n bits em números de mais de n bits

18 Morgan Kaufmann Publishers Memória de instruções endereço de 32 bits pelo PC instrução de 32 bits

19 Morgan Kaufmann Publishers Memória de dados Para leitura: deve fornecer o endereço (Address) e acionar o controle de leitura (MemRead=1) Para escrita deve fornecer o endereço (Address), o dado a ser escrito no (Writedata) e acionar o controle de escrita (MemWrite=1)

20 Morgan Kaufmann Publishers Contador de programa endereço da próxima de instrução endereço da instrução corrente Quando é sequencial é o endereço da instrução corrente adicionado de 4 (memória de instruções constituída de bytes)

21 Morgan Kaufmann Publishers Construindo o Fluxo de Dados Usar os multiplexadores para juntar os elementos

22 Morgan Kaufmann Publishers Controle Selecionar as operações para executar (ALU, leitura/escrita, etc.) Controlar o fluxo de dados (entradas para o multiplexador) A informação vem de 32 bits da instrução Exemplo: add $8, $17, $18 Formato de Instrução: op rs rt rd shamt funct Operação da ALU baseada no tipo de instrução e código da função

23 Morgan Kaufmann Publishers P.ex., o que a ALU faz para essa instrução Example: lw $1, 100($2) op rs rt 16 bit offset Entrada de controle da ALU 000 AND 001OR 010add 110subtract 111set-on-less-than Por que o código da subtração é 110 e não 011? Controle

24 Morgan Kaufmann Publishers Deve descrever o hardware para computar a entrada de controle da ALU de 3-bit –Dado o tipo de instrução 00 = lw, sw 01 = beq, 10 = aritmética –Código de função para aritmética Descreve usando uma tabela verdade (que pode ser convertido em portas): ALUOp Computado do tipo de instrução Controle

25 Morgan Kaufmann Publishers Controle

26 Morgan Kaufmann Publishers Controle Lógica combinacional simples (tabela verdade)

27 Morgan Kaufmann Publishers Todas as lógicas são combinacionais Esperamos estabilizar tudo, e a operação certa a ser realizada –ALU não produz resposta certa imediatamente –Usamos os sinais de escrita sincronizados ao clock para determinar quando escrever O tempo de ciclo é determinado pelo circuito mais moroso Nossa estrutura de controle simples

28 Morgan Kaufmann Publishers Implementação em um ciclo Calcular o tempo de ciclo assumindo atrasos desprezíveis exceto: –Memória (2ns), ALU e somadores (2ns), acesso aos registradores (1ns)

29 Morgan Kaufmann Publishers Implementação de MIPS em um único ciclo

30 Morgan Kaufmann Publishers Onde estamos? Problemas de ciclo simples: –E se tivéssemos instruções mais complexas como ponto- flutuante? –Devastação de área Uma Solução: –usar um tempo de ciclo menor –Ter diferentes instruções levando diferentes números de ciclos –Um fluxo de dados de multiplos ciclos:

31 Morgan Kaufmann Publishers Estaremos usando as mesmas unidades funcionais –ALU é usada para computar o endereço e para incrementar PC –A memória é usada para instruções e dados Nossos sinais de controle não são determinados somente pelas instruções –P.ex., o que a ALU faria para uma instrução de subtração ? Usamos uma máquina de estado finito para o controle Técnica Multiciclo

32 Morgan Kaufmann Publishers Máquinas de estado finito: –Um conjunto de estados e –Função próximo estado (determinado pelo estado atual e entrada) –Função de saída (determinada pelo estado atual e possivelmente entrada) –Usaremos uma máquina Moore (saída baseada somente no estado atual) Revisão: máquinas de estado finito

33 Morgan Kaufmann Publishers Revisão: máquinas de estado finito Exemplo: B. 21 Um amigo gostaria de construir um olho eletrônico para uso em dispositivo de segurança. O dispositivo consiste de 3 luzes alinhados, controladas por saídas Esquerda, Central, e Direita, que, se acionadas, indicam que uma luz estaria acesa. Somente uma luz é acionada por vez, e a luz move da esquerda para a direita e, então, da direita para a esquerda, para assustar os ladrões que acreditam que os dispositivos estejam monitorando as suas atividades. Traçar a representação gráfica para a máquina de estado finito usada para especificar o olho eletrônico. Notar que a taxa de movimentação do olho será controlado pela velocidade do clock (que não deveria ser excessivamente grande) e que não existem essencialmente entradas.

34 Morgan Kaufmann Publishers Quebrar as instruções em passos, cada passo leva um ciclo –Balancear a quantidade de trabalhos a realizar –Restringir cada ciclo para usar somente uma unidade funcional No fim de um ciclo –Armazenar valores para serem usados nos ciclos posteriores –introduzir registradores internos adicionais Técnica multiciclo

35 Morgan Kaufmann Publishers Busca da instrução (Instruction Fetch) Decodificação da instrução e busca do registrador Execução, Computação do endereço de memória, ou conclusão de uma instrução de branch Acesso à memória ou conclusão de uma instrução R-type Passo de Write-back INSTRUÇÕES LEVEM DE CICLOS! Cinco passos de Execução

36 Morgan Kaufmann Publishers Usar o PC para a leitura da instrução e carga da mesma no registrador de instrução (Instruction Register). Incrementar o valor do PC por 4 e carregar o resultado no PC. Pode ser descrito sucintamente usando RTL "Register-Transfer Language" IR = Memory[PC]; PC = PC + 4; Podemos obter os valores dos sinais de controle? Quais as vantagens de atualizar o PC neste passo? Passo 1: Busca da instrução (Instruction Fetch)

37 Morgan Kaufmann Publishers Leitura dos registradores rs e rt Computar o endereço de branch no caso da instrução de branch RTL: A = Reg[IR[25-21]]; B = Reg[IR[20-16]]; ALUOut = PC + (sign-extend(IR[15-0]) << 2); Estamos acionando as linhas de controle baseadas no tipo de instrução (a instrução está sendo "decodificada" na lógica de controle) Passo 2: Decod. da Instrução e Busca de Registradores

38 Morgan Kaufmann Publishers ALU está realizando uma das três funções, baseadas no tipo de instrução Referência à memória: ALUOut = A + sign-extend(IR[15-0]); R-type: ALUOut = A op B; Branch: if (A==B) PC = ALUOut; Passo 3 (dependente da instrução)

39 Morgan Kaufmann Publishers Acesso à memória através de loads e stores MDR = Memory[ALUOut]; or Memory[ALUOut] = B; Fim das instruções R-type Reg[IR[15-11]] = ALUOut; A escrita é realizada no fim do ciclo, na borda Passo 4 (R-type ou acesso à memória)

40 Morgan Kaufmann Publishers Reg[IR[20-16]]= MDR; E as outras instruções? Passo Write-back

41 Morgan Kaufmann Publishers Resumo:

42 Morgan Kaufmann Publishers Quantos ciclos são necessários para o código? lw $t2, 0($t3) lw $t3, 4($t3) beq $t2, $t3, Label#assume not add $t5, $t2, $t3 sw $t5, 8($t3) Label:... O que acontece durante o oitavo ciclo de execução? Em que ciclo a soma de $t2 e $t3 é realizada? Questões simples

43 Morgan Kaufmann Publishers Os sinais de controle são dependentes de: –Que instrução está sendo executada –Que passo está sendo realizada Usar as informações acumuladas para especificar uma máquina de estado finito –Especificar uma máquina de estado finito graficamente, ou –usar microprogramação Implementando o Controle

44 Quantos bits de estado são necessários? Especificação da FSM

45 Morgan Kaufmann Publishers Implementação: Máquina de estado finito para controle

46 Morgan Kaufmann Publishers Implementação em PLA

47 Morgan Kaufmann Publishers ROM = "Read Only Memory" –Os valores das palavras de memória são fixas ao longo do tempo Uma ROM pode ser usada para implementar uma tabela verdade –Se o endereço é de m-bits, podemos endereçar 2 m entradas na ROM. –Nossas saídas são os bits de dados onde o endereço aponta. m é a altura", e n é a largura" Implementação em ROM mn

48 Morgan Kaufmann Publishers Quantas entradas existem? 6 bits para opcode, 4 bits para estado = 10 linhas de endereço (i.e., 2 10 = 1024 endereços diferentes) Quantas saídas existem? 16 saídas de controle do fluxo de dados, 4 bits de estado = 20 saídas ROM é 2 10 x 20 = 20K bits (um tamanho não usual) Implementação em ROM

49 Morgan Kaufmann Publishers Quebrar a tabela em duas partes 4 bits de estado fornecem as 16 saídas, 2 4 x 16 bits of ROM 10 bits fornecem o endereço para os 4 bits de estado seguinte, 2 10 x 4 bits of ROM Total: 4.3K bits de ROM PLA é menor pode compartilhar termos produtos são necessárias somente entradas que produzem saída ativa pode levar em conta os irrelevantes O tamanho é (#entradas #termos-produto) + (#saídas #termos- produto) Para esse exemplo = (10x17)+(20x17) = 460 células PLA Células PLA são de tamanho aproximado de uma célula de ROM (levemente maior) ROM vs PLA

50 Morgan Kaufmann Publishers Instruções complexas: o estado seguinte" é quase sempre o estado atual + 1 Um outro estilo de Implementação

51 Morgan Kaufmann Publishers Detalhes

52 Morgan Kaufmann Publishers Microprogramação O que são microinstruções ?

53 Morgan Kaufmann Publishers Uma metodologia de especificação –Apropriado se centenas de opcodes, modos, ciclos, etc. –sinais especificados simbolicamente usando microinstruções Duas implementações da mesma arquitetura tem o mesmo microcódigo? O que faria um microassembler? Microprogramação

54 Formato de Microinstrução

55 Morgan Kaufmann Publishers Sem codificação: –1 bit para cada operação do fluxo de dados –rápido, requer mais memória (lógica) –Usada para Vax K de memória! Muita codificação: –Enviar as microinstruções através de lógicas para a obtenção dos sinais de controle –Usa menos memória, lenta Contexto histórico do CISC: –Muita lógica a ser colocada num único chip –Usar uma ROM (ou mesmo RAM) para manter o microcódigo –Fácil para adicionar novas instruções Codificação Maximal vs. Minimal

56 Morgan Kaufmann Publishers Microcódigo: compromisso (Trade-offs) Vantagens da especificação: –Fácil de projetar e escrever –Projetar a arquitetura e o microcódigo simultaneamente Vantagens da Implementação (off-chip ROM) –Fácil de mudar se os valores estão em memória –Pode emular outras arquiteturas –Pode fazer uso de registradores internos Desvantagens da Implementação, MAIS LENTO que: –O controle seja implementado no mesmo chip como o processador –ROM não é mais rápido que RAM –Quando não existe necessidade para fazer mudanças

57 Morgan Kaufmann Publishers Exceções e Interrupções Exceções e interrupções – são eventos diferentes de branches e jumps que mudam o fluxo normal de execução de instruções. Exceção – evento inesperado que causa uma mudança no fluxo de controle, que tem origem dentro do processador (por ex. overflow aritmético) Interrupção –evento inesperado que causa uma mudança inesperada no fluxo de controle, que tem origem fora do processador. (por ex. digitação de um caracter no teclado) Observação: arquitetura 80x86 (ou IA-32, Intel) usa o termo Interrupção para todos esses eventos.

58 Morgan Kaufmann Publishers Exceções e interrupções TIPO DE EVENTOORIGEMTERMINOLOGIA MIPS Solicitação de dispositivo de E/S externa interrupção Chamada do SO pelo programa de usuário interna exceção Overflow aritmético interna exceção Uso de uma instrução indefinida interna exceção Mal funcionamento do hardware ambas exceção ou interrupção Exemplos:

59 Morgan Kaufmann Publishers Como manipular exceções e interrupções Ações básicas a serem tomadas pela máquina quando ocorre uma exceção : 1) salvar o endereço da instrução ofendida (instrução atual) num registrador especial EPC (Exception Program Counter). 2) transferir o controle (atualizar o conteúdo de PC) para um endereço específico, que possibilite ao computador executar a rotina de tratamento de exceção. ROTINA DE TRATAMENTO DE EXCEÇÃO: depende do tipo de exceção, por exemplo, reportar ao usuário que ocorreu um erro de overflow. Ações a serem tomadas após a execução do tratamento de exceção: -Depende do tipo de exceção: por ex. pode encerrar, ou continuar executanto, o programa que estava executando antes da exceção. -O EPC é usado para determinar o endereço de reinício da execução.

60 Morgan Kaufmann Publishers Como saber a causa da exceção Para o computador manipular uma exceção, ele deve conhecer a razão da exceção. A razão pode ser obtida de duas formas: 1) usar o registrador de status (cause register) que indica a razão 2) usar interrupção vetorizada, caso em que o endereço de desvio para executar a exceção é determinado pela causa da exceção

61 Morgan Kaufmann Publishers Implementação de exceção no MIPS Implementação de duas exceções: 1) overflow aritmético 2) instrução indefinida A causa é determinada pelo valor do registrador CAUSE de 32 bits: CAUSE = (em hexa), overflow aritmético CAUSE = (em hexa), instrução indefinida O endereço da instrução ofendida é guardada em EPC O endereço de desvio para o início da execução da rotina de tratamento de exceção é dado por C (em hexa).

62 Morgan Kaufmann Publishers Alterações no fluxo de dados Sinais de controle adicionais: EPCWrite, CauseWrite, IntCause Registradores adicionais: EPC, Cause

63 Morgan Kaufmann Publishers Alteração na máquina de estado


Carregar ppt "1 1998 Morgan Kaufmann Publishers Processador Fluxo de Dados e Controle."

Apresentações semelhantes


Anúncios Google