·

Cursos Gerais ·

Sistemas Digitais

Send your question to AI and receive an answer instantly

Ask Question

Preview text

MCTA024 Sistemas Digitais Datapath Caminho ou Fluxo de Dados Referência Bibliográfica Logic and Computer Design Fundamentals Mano Kime Introdução Especificação de um Computador Instruction Set Architecture ISA a especificação de um computador para um programador em seu nível mais baixo Computer Architecture uma descrição em alto nível do hardware que implementa o computador a partir da ISA Na realidade a arquitetura normalmente inclui especificações adicionais tais como velocidade custo e confiabilidade Logic and Computer Design Fundamentals Mano e Kime Sumário Datapath ou Caminho de Dados Introdução Exemplo de Datapath Arithmetic Logic Unit ALU Deslocador ou Shifter Register File Banco de Registradores Princípios para datapaths básicos O conjunto de registradores Coleção de registradores individuais Um conjunto de registradores com recursos de acesso comum chamado register file para armazenar resultados parciais Uma combinação dos itens acima Implementação de microoperação Um ou mais recursos compartilhados para implementar as microoperações Buses vias de transferências compartilhadas ArithmeticLogic Unit ALU recursos compartilhados para implementar microoperações aritméticas e lógicas Shifter recurso compartilhado para implementar microoperações de deslocamento Interação entre Datapath e Unidade de Controle Sinais de Controle são sinais binários que ativam as operações de processamento de dados A Unidade de Controle por sua vez recebe Sinais de Estado do Datapath títeis para a Unidade de Controle determinar a sequência específica de operações Tanto a Unidade de Controle quanto o Datapath podem interagir com outras partes do Sistema Digital como Memória lógica de InputOutput através das Entradas e Saídas de Dados e Controles etc Introdução continuação A arquitetura de um computador simples é decomposta por Datapath Caminho de Dados para realizar operações de transferência e processamento de dados Unidade de Controle para autorizar e determinar a sequência de operações do Datapath Um Datapath é especificado por Um conjunto de registradores Uma lógica digital Bus MUX Decoder ALU etc que implementa as microoperações nos dados armazenados nos registradores Uma interface de controle que supervisiona a sequência de operações no sistema Exemplo de uma Microoperação no Datapath Microoperação R0 R1 R2 Exemplo de uma Microoperação no Datapath Microoperação R0 R1 R2 Aplique 01 em A select para carregar o conteúdo de R1 no Bus A Exemplo de Datapath Quatro registradores com carga paralela Dois selecionadores de registradores baseados em mux Um decodificador de registrador de destino Mux B para entrada de uma constante externa Buses A e B com endereço externo e saídas de dados ALU e Shifter com Mux F para seleção de saída Lógica para geração de status bits V C N Z Overflow Carry Negative Zero Mux D para entrada de dado externo Logic and Computer Design Fundamentals Mano e Kime Exemplo de uma Microoperação no Datapath Microoperação R0 R1 R2 Aplique 01 em A select para carregar o conteúdo de R1 no Bus A Aplique 10 em B select para carregar o conteúdo de R2 em B data e aplique 0 em MB select para carregar B data no Bus B Exemplo de uma Microoperação no Datapath Microoperação R0 R1 R2 Aplique 01 em A select para carregar o conteúdo de R1 no Bus A Aplique 10 em B select para carregar o conteúdo de R2 em B data e aplique 0 em MB select para carregar B data no Bus B Aplique 0010 em G select para realizar a adição G Bus A Bus B Exemplo de uma Microoperação no Datapath Microoperação R0 R1 R2 Aplique 01 em A select para carregar o conteúdo de R1 no Bus A Aplique 10 em B select para carregar o conteúdo de R2 em B data e aplique 0 em MB select para carregar B data no Bus B Aplique 0010 em G select para realizar a adição G Bus A Bus B Aplique o tanto em MF select quanto em MD select para carregar G no Bus D Exemplo de uma Microoperação no Datapath Microoperação R0 R1 R2 Aplique 01 em A select para carregar o conteúdo de R1 no Bus A Aplique 10 em B select para carregar o conteúdo de R2 em B data e aplique 0 em MB select para carregar B data no Bus B Aplique 00010 em G select para realizar a adição G Bus A Bus B Aplique 0 tanto em MF select quanto em MD select para carregar G no Bus D Aplique 00 em Destination select para habilitar a entrada Load em R0 Aplique 1 em Load enable para forçar a entrada Load de R0 em 1 para que R0 seja carregado no próximo clock não mostrado A microoperação completa requer 1 ciclo de clock Logic and Computer Design Fundamentals Mano e Kime Exemplo de uma Microoperação no Datapath Microoperação R0 R1 R2 Aplique 01 em A select para carregar o conteúdo de R1 no Bus A Aplique 10 em B select para carregar o conteúdo de R2 em B data e aplique 0 em MB select para carregar B data no Bus B Aplique 00010 em G select para realizar a adição G Bus A Bus B Aplique 0 tanto em MF select quanto em MD select para carregar G no Bus D Aplique 00 em Destination select para habilitar a entrada Load em R0 Aplique 1 em Load enable para forçar a entrada Load de R0 em 1 para que R0 seja carregado no próximo clock não mostrado A microoperação completa requer 1 ciclo de clock Logic and Computer Design Fundamentals Mano e Kime Deslocador Combinacional O deslocamento de dados pode ser feito com um Registrador de Deslocamento porém três pulsos de clock são necessários para completar a operação um pulso para carregar o dado outro para fazer o deslocamento e um terceiro para enviar o resultado ao registrador de destino Em vez disso a transferência de um registrador de origem para um registrador de destino pode ser feita num único pulso de clock utilizandose um Circuito Combinacional construído com MUXes Com a Variável de Seleção S 00 B passa pelo Deslocador Combinacional sem mudanças Com S 01 ocorre um deslocamento para a direita Com S 10 ocorre um deslocamento para a esquerda Logic and Computer Design Fundamentals Mano e Kime Deslocador Circular Barrel Shifter Em algumas aplicações o dado precisa ser deslocado mais de uma posição num único pulso de clock O Deslocador Circular é um circuito combinacional que desloca ou roda um número de posições especificado por um valor binário No tipo de deslocador aqui considerado os bits provenientes da parte mais significativa MSB são enviados para a posição menos significativa LSB realizando um deslocamento de n posições para a esquerda ou direita note que o deslocamento de três posições para a esquerda corresponde ao deslocamento de uma posição para a direita Com as Variáveis de Seleção S1S0 00 D passa pelo Deslocador Circular sem mudanças Com S1S0 01 ocorre o deslocamento de uma posição para a esquerda D0 vai para Y1 D1 para Y2 etc Com S1S0 10 ocorre um deslocamento de duas posições para a esquerda e com S1S0 11 três posições para a esquerda D0 vai para Y3 D1 para Y0 D2 para Y1 e D3 para Y2 Logic and Computer Design Fundamentals Mano e Kime Datapath Register File Unidade Funcional Com uma estrutura hierárquica de representação é possível reduzir a complexidade aparente do Datapath agrupando os registradores e a Lógica de Seleção dos Registradores num Register File Banco de Registradores Numa Unidade Funcional são agrupados o Deslocador a ALU e os três MUXes Dessa forma a implementação de um módulo pode ser substituída por outra sem prejuízo da funcionalidade geral Na realidade um Register File é implementado normalmente como um tipo especial de Memória Rápida que permite a leitura ou escrita de mais de uma palavra simultaneamente Assim as entradas originais A select B select e Destination select se tornam três endereços como mostrados nesta figura A address acessa uma palavra a ser lida em A data B address acessa uma segunda palavra a ser lida em B data e D address acessa uma palavra proveniente de D data e D data a ser escrita todos estes acessos ocorrem no mesmo ciclo de clock A entrada Write é equivalente ao Load Enable anterior Quando Write 0 o conteúdo dos registradores não se altera Na Function Unit a entrada FS incorpora G H e MF select Logic and Computer Design Fundamentals Mano e Kime Register File Original Suponha um Register File com 16 registradores de 32 bits Para selecionar estes registradores seria necessário um MUX 16x1 de 32 bits Na prática este MUX seria muito ineficiente haveria a necessidade de 16x32 512 conexões para ligar os registradores ao MUX Problema de Congestionamento Além disso as entradas de dados para todos os 16 registradores criaria um problema de fanout com correntes muito pequenas para controlar os transistores Sem mencionar que conexões com baixas correntes tornam os dispositivos lentos gerando problemas de atrasos Os problemas de congestionamento fanout e atrasos descritos acima podem ser contornados considerandose que os registradores não são todos escritos ou lidos simultaneamente Digital Design Frank Vahid Um conjunto de registradores pode ser implementado de forma semelhante a uma memória com a mesma rapidez e acesso aos dados através de endereçamento As conexões internas entre os componentes são cuidadosamente planejadas de modo a contornar os problemas de congestionamento e fanout Quando Wen0 nenhum registrador poderá ser escrito porque as saídas do decodificador permanecem em 0 Quando Wen1 o decodificador decodifica o endereço em Waddr e coloca o no load de um dos registradores apenas No próximo ciclo de clock este registrador vai ser escrito com o valor de Wdata Para resolver o problema de fanout são utilizados drivers ou buffers cuja entrada é semelhante à saída porém com um sinal de saída mais forte corrente maior Para substituir os MUXes são usados threestate drivers ou threestate buffers