09 Unidade de controlo v0.1
Introdução Um micro-processador pode consistir apenas em alguns elementos: ALU Registers Lógica de controlo (ou unidade de controlo) 18 December 2014 Sistemas Digitais 2
Lógica de controlo I A lógica de controlo gere o fluxo de dados no processador Ler dados da memória para um registo Escrever de um registo para a memória Aplicar uma operação ao conteúdo de um ou mais registos Deixar o resultado num dado registo Etc.. 18 December 2014 Sistemas Digitais 3
Lógica de controlo II A unidade de controlo contém: Memoria não volatile (ROS read only store) Buffer (registo) de endereços Registo de instrução efetua as operações de: Descodificação de instruções Seleção de endereços 18 December 2014 Sistemas Digitais 4
Microprogramação I Uma função é especificada por uma instrução em código de máquina Essa função pode ser sub-dividida Por exemplo a multiplicação de 2 inteiros com sinal pode ser decomposta em: Transformar ambos os inteiros em positivos Multiplicar Determinar o sinal do resultado 18 December 2014 Sistemas Digitais 5
Para cada etapa: Microprogramação II Transformar ambos os inteiros em positivos Ignorar o bit de sinal Multiplicar Efetuar n adições sucessivas Determinar o sinal do resultado XOR com o bit de sinal dos dois operandos 18 December 2014 Sistemas Digitais 6
Para cada etapa: Microprogramação II Transformar ambos os inteiros em positivos Ignorar o bit de sinal Multiplicar Efetuar a multiplicação com shift como ----------------> Determinar o sinal do resultado XOR com o bit de sinal dos dois operandos 18 December 2014 Sistemas Digitais 7
Microprogramação III 1011 Multiplicando (11 dec) x 1101 Multiplicador (13 dec) 1011 produtos parciais: 0000 Nota: if multiplier bit is 1 copy 1011 multiplicand (place value) 1011 else zero 10001111 Produto (143 dec) 18 December 2014 Sistemas Digitais 8
Microprogramação IV Podemos usar o seguinte hardware: Tantos passos como o número de bits do multiplicador O resultado fica no multiplicador e no registo auxiliar 18 December 2014 Sistemas Digitais 9
Microprogramação V Assim uma instrução em código de máquinda como por exemplo: mult a,b É executada em várias fases 18 December 2014 Sistemas Digitais 10
Microprogramação VI A unidade de controlo executa um micro-programa para efetuar esta função Controlando como os dados se deslocam nos componentes do microprocessador (somador, shifter, registos) e como estes operam 18 December 2014 Sistemas Digitais 11
Seleção de endereços I Os endereços a serem acedidos são retirados da instrução em código de máquina e colocados no buffer de endereços. Depois são descodificados pela lógica de controlo sejam: Internos ao microprocessador (registos) Ou externos (memória) Buffer de endereços 18 December 2014 Sistemas Digitais 12
Seleção de endereços II Se for para aceder à memória são colocados no barramento de endereços e enviados para os chips de memória, juntamente com o sinal de controlo READ ou WRITE no barramento de controlo É possivel também gerar a a partir de um endereço o seguinte (util quando se está a ler as instruções de um programa em posições de memória consecutivas) Barramento de endereços Buffer de endereços 18 December 2014 Sistemas Digitais 13
Seleção de endereços III Acesso a endereços de memória. Address bus (binary address) A0 Ai Decoder i x 2 i Control bus Data bus Address select lines 18 December 2014 14
Seleção de endereços III Acesso a endereços de memória. Address bus (binary address) A0 Ai Control bus bit0 D0 Data bus Decoder i x 2 i Control bus bitj Dj Address select lines 18 December 2014 15
Seleção de endereços III Acesso a endereços de memória. Address bus (binary address) A0 Ai Control bus bit0 D0 Data bus Decoder i x 2 i Control bus bitj Dj Address select lines Memory location 0 18 December 2014 16
Seleção de endereços III Acesso a endereços de memória. Address bus (binary address) A0 Ai Control bus bit0 D0 Data bus Decoder i x 2 i 0 2 i Control bus bitj Dj Address select lines Memory location 0 Memory location 1 18 December 2014 17