Infra Estrutura e Hardware Grupo: 2010 Andrêsa Cibelly Cleyton Vanut Clébia Alves Ronnie E. Santos Será mostrado: Como construir o Caminho de Dados e a Unidade de Controle O Processador: Caminho de dados e controle 1 - Instruções de Referência à memória: Load word (lw) Store Word (sw) 2 - Instruções Artimética e Lógicas: add, sub, and, or e stl 3 - Intruções de Desvio: Beq e Jump O Processador: Caminho de dados e controle A implementação de outras instruções pode ser feita de maneira similar Para qualquer instrução, os dois primeiros passos são idênticos: 1 Enviar o valor armazenado no Program Counter (PC) para a memória. 2 Ler um ou dois registradores, usando os campos da instrução para selecionar os registradores. add $t0, $s1, $s2 Sub $t1, $s3, $s4 lw $t1, 8($s5) O Processador: Caminho de dados e controle Após estes dois passos as ações necessárias a completar a execução de uma instrução dependem da classe de instrução em pauta. Semelhanças: Todas as classes usam a ULA após a leitura dos registradores; Referência de Memória: efetuar cálculo de endereço; Instruções Aritméticas: Execução da própria operação; Desvios condicionais: Comparações. O Processador: Caminho de dados e controle Após usar a ULA, as instruções diferem: Referência de Memória: acessa a memória para escrever/ler um dado; Instruções Aritméticas: Escreve em um registrador o valor calculado pela ULA; add $t0, $s1, $s2 Desvios condicionais: Com base no resultado de uma comparação, pode modificar o endereço da próxima instrução O Processador: Caminho de dados e controle Principais Unidades Funcionais e conexões entre elas Dados P C Endereço Instrução Reg 1# Reg 2# Memória de Instrução Reg 3# ULA Endereço Memória de Dados Dados O Processador: Caminho de dados e controle Dados P C Endereço Instrução Reg 1# Reg 2# Memória de Instrução Reg 3# ULA Endereço Memória de Dados Dados O processo começa no PC, que fornece o endereço da instrução à Memória de Instrução Após busca da instrução, os operandos armazenados em registradores usados pela instrução, são especificados pelos campos da própria instrução O Processador: Caminho de dados e controle Dados P C Endereço Instrução Reg 1# Reg 2# Memória de Instrução Reg 3# ULA Endereço Memória de Dados Dados Uma vez que os operandos em registradores tenham sido buscados, podem ser operados para: calcular um endereço de memória, o resultado de ma operação aritmética ou fazer comparações Após busca da instrução, os operandos armazenados em registradores usados pela instrução, são especificados pelos campos da própria instrução O Processador: Caminho de dados e controle Dados P C Endereço Instrução Reg 1# Reg 2# Memória de Instrução Reg 3# ULA Endereço Memória de Dados Dados Se a instrução for... Aritmética Acesso à memória Desvios condicionais O resultado processado pela ULA deve ser escrito em um registrador. O resultado obtido na ULA é usado como endereço para armazenar valores vindos da memória nos registradores, ou o contrario Devem usar a saída da ULA para determinar o endereço da próxima instrução a ser executada O Processador: Caminho de dados e controle Ao discutir o projeto de máquina, deve-se decidir: Como a lógica que vai implementá-la deve operar Como será o esquema de Clock nela usado. Unidades Funcionais da implementação do MIPS são construídas a partir de dois tipos de elementos lógicos: Elementos que operam sobre dados Elementos que contêm estados. O Processador: Caminho de dados e controle Elementos que operam sobre dados (combinacionais) Sua saída depende das entradas presentes no momento, ou seja, em presença das mesmas entradas, sempre produz a mesma saída. ULA ULA: Exemplo de elemento combinacional O Processador: Caminho de dados e controle Elementos de Estados Um elemento contém estado (sequenciais) possui algum tipo de memória interna. Caso a máquina seja desligada, ao reinicializá-la os elementos de estado serão carregados com os mesmo valores que tinham antes. Dados P C Endereço Instrução Reg 1# Reg 2# Memória de Instrução Reg 3# ULA Endereço Memória de Dados Dados O Processador: Caminho de dados e controle Define quando os sinais podem ser lidos e quando podem ser escritos. Importante, pois se um sinal for lido e escrito ao mesmo tempo, o valor da leitura pode corresponder ao antigo, ao novo valor ou mesmo uma cominação dos dois. Para simplificar, trabalha-se com uma metodologia sensível às transições de sinal do clock. O Processador: Caminho de dados e controle Num projeto de caminho de dados é preciso examinar quais os componentes utilizados na execução de cada uma das classes de instruções do MIPS. Assim, iniciamos com os componentes do caminho de dados comum a todas as instruções. Construímos, a partir deles, as diversas seções do caminho de dados para cada classe de instruções. Nesta construção são mostrados os respectivos sinais de controle associados aos componentes. Baseamos esta construção nos seguintes passos de execução de uma instrução: Busca,Execução e Resultado. O Processador: Caminho de dados e controle O primeiro passo de uma instrução é o passo de busca. Ele é comum a qualquer instrução. Para realizar a busca são necessários três componentes: dois elementos de estado e um somador. Memória de Instruções O Processador: Caminho de dados e controle PC Somador Unidade de Memória: Armazenar as instruções; Programa Counter-PC: Armazena o endereço da próxima instrução a ser executada; Somador: Calcula o endereço da próxima instrução a ser executada. O Processador: Caminho de dados e controle O caminho de Dados para a realização da busca é a seguinte: O Processador: Caminho de dados e controle Todas instruções lógicas e aritméticas do processador MIPS precisam ler dois registradores, realizar a operação sobre o conteúdo dos registradores e escrever o resultado num terceiro registrador. Esta classe de instruções inclui operações como add, sub, slt, and, or. O Processador: Caminho de dados e controle Para realizar a execução das instruções do Tipo R ou Instruções Aritméticas-Lógicas como podemos chamar, precisamos do Banco de Registradores e da ULA. Banco de Registradores O Processador: Caminho de dados e controle ULA Banco de Registradores: conjunto de registradores que podem ser lidos ou escritos; ULA: operar sobre os valores lidos dos registradores. O Processador: Caminho de dados e controle O caminho de Dados para a realização das instruções do tipo R é a seguinte: O Processador: Caminho de dados e controle Considere as instruções de load word e store word, que têm a forma: lw $t1, deslocamento($t2) ou sw $t1, deslocamento($t2). Elas calculam um endereço de memória somando o conteúdo de um registrador-base ($t2) ao número de 16 bits sem sinal armazenado no campo de deslocamento da instrução. O registrador $t1 armazena o dado que vai ser lido ou escrito na memória. O Processador: Caminho de dados e controle Para realizar a execução de instruções de Load e Store precisamos do Banco de Registradores, da unidade de Memória, da ULA e ainda da unidade de extensão de sinal. Unidade de Memória O Processador: Caminho de dados e controle Unidade de Extensão do Sinal Banco de Registradores: Conjunto de registradores que podem ser lidos ou escritos; ULA: Para operar sobre os valores lidos dos registradores. Unidade de Memória: Onde poderemos ler e escrever os dados; Unidade de Extensão do Sinal: Para estender o campo de 16 bits do deslocamento para um valor de 32 bits com sinal. O Processador: Caminho de dados e controle O caminho de Dados para a execução para as instruções Load e Store é a seguinte: O Processador: Caminho de dados e controle Uma instrução de desvio condicional como, por exemplo: Beq $t1,$t2, deslocamento Possui três operandos. Dois registradores cujos conteúdos são comparados, e um deslocamento de 16 bits usado no cálculo do endereço alvo de desvio. Esse endereço é obtido somando o campo de deslocamento (com sinal estendido) da instrução ao valor armazenado no PC. O Processador: Caminho de dados e controle Existem dois detalhes que precisam ser lembrados: a arquitetura do conjunto de instruções estabelece que a base para o cálculo do endereço alvo do desvio é igual ao valor do PC atualizado (PC + 4, passo de busca); a arquitetura também define que o campo de deslocamento deve ser deslocado de 2 bits à esquerda. Isto significa um deslocamento relativo à palavra do processador. Este procedimento aumenta o alcance efetivo do campo de deslocamento por um fator de quatro. O Processador: Caminho de dados e controle Para realizar a execução de instruções de Desvio Condicional precisamos calcular o Endereço Alvo do desvio condicional,onde o caminho de dados vai possuir uma Unidade de Extensão do sinal, um Somador, um Banco de Registradores e da ULA . Campo de Deslocamento O Processador: Caminho de dados e controle O caminho de Dados para a execução do Desvio Condicional é a seguinte: O Processador: Caminho de dados e controle Definidos os caminhos de dados necessários a todas as classes de instruções, podendo ser combinadas em um único caminho de dados e acrescentar o controle para completar a implementação. Todos estes caminhos mostrados são blocos construtivos para a implementação que usa um único período de clock, muito longo para suportar a execução de todas as instruções. O Processador: Caminho de dados e controle Acesso à memória: lw e sw; Instruções lógicas e aritméticas: add, sub, and, or e slt; Controle de fluxo: beq. O Processador: Caminho de dados e controle Executar todas as instruções dentro de um único período de clock; Nenhum dos recursos pode ser utilizado mais de uma vez por instrução . O Processador: Caminho de dados e controle Para compartilhar um elemento do caminho de dados entre classes de instruções diferentes devemos utilizar um multiplexador; Um circuito digital com várias entradas e apenas uma saída. O Processador: Caminho de dados e controle O Processador: Caminho de dados e controle O Processador: Caminho de dados e controle Este caminho de dados precisa tanto de um somador quanto de uma ULA, uma vez que o somador é usado para incrementar o PC (Program Counter); É necessário também colocar um multiplexador adicional para selecionar o endereço a ser escrito no PC. O Processador: Caminho de dados e controle O Processador: Caminho de dados e controle A unidade de controle deve ser capaz de, a partir dos sinais de entrada, gerar os sinais de escrita para todos os elementos de estado, os sinais seletores de todos os multiplexadores e os sinais para o controle das operações da ALU. O Processador: Caminho de dados e controle Valores das três linhas de controle da ULA e as operações correspondentes na ULA. São usadas somente cinco das oito possíveis combinações. O Processador: Caminho de dados e controle São representados por um X; Saída: não importa o valor da saída gerado por determinada combinação de entradas; Entrada: aparecem quando uma saída depende somente de algumas das entradas, sendo essas representadas também por Xs, na parte da tabela-verdade reservada às entradas. O Processador: Caminho de dados e controle O Processador: Caminho de dados e controle O Processador: Caminho de dados e controle O Processador: Caminho de dados e controle O Processador: Caminho de dados e controle O Processador: Caminho de dados e controle O Processador: Caminho de dados e controle O Processador: Caminho de dados e controle Nome do Sinal Efeito – Ativo RegDst Número do registrador de destino vemNúmero do registrador de destino vem do do campo rt (20-16). campo rd (15-1). EscReg Nenhum O registrado na entrada Reg a ser Escrito é escrito com o valor presente na entrada de dados. UALFonte O segundo operando da ULA vem do segundo registrador d banco de registradores. O segundo operando da ULA é resultado da extensão de sinal dos 16 bits menos significativos da instrução. FontePC PC é substituído pelo valor presente na saída do somador (PC+4) PC é substituído pelo valor presente na saída do somador que calcula desvio condicional. LerMem Nenhum Conteúdo da memória de endereço é colocado na saída Dado Lido. EscMem Nenhum Conteúdo da memória de endereço é substituído pelo valor presente na entrada Dado a ser Escrito. MemParaReg O valor na entrada do registrador de O valor na entrada do registrador de escrita escrita vem da ULA. vem da memória de dados. O Processador: Caminho de dados e controle Efeito - Inativo O Processador: Caminho de dados e controle O projeto monociclo abordado possui um funcionamento correto e todas as instruções são executadas dentro de um único ciclo de clock. O problema com este projeto é sua ineficiência. A explicação para este fato está no tamanho do ciclo de clock utilizado para todas as instruções. O Processador: Caminho de dados e controle