Todo processador é constituído de circuitos capazes de realizar algumas operações primitivas: ◦ Somar e subtrair ◦ Mover um dado de um local de armazenamento para outro ◦ Transferir um dado para um dispositivo de saída ◦ Etc... A função do processador é executar programas: ◦ Um programa executável é constituído de um conjunto de instruções de máquina seqüencialmente organizadas Para que a execução de um programa tenha início é necessário que: ◦ As instruções devem estar armazenadas em células sucessivas, na MP ou MC ◦ O endereço da primeira instrução deve estar armazenado no processador A partir daí, o processador: ◦ Busca uma instrução (op. de leitura), uma de cada vez, cujo endereço deve estar armazenado em um registrador específico ◦ Interpreta a instrução ◦ Busca os dados (operandos) onde estiverem armazenados, para trazê-los até o processador ◦ Executa efetivamente a operação com os dados buscados e guarda o resultado no local definido na instrução ◦ Reinicia o processo buscando uma nova instrução Os passos descritos formam um ciclo de instrução e ele é repetido até que seja encontrada uma instrução de parada ou até que ocorra algum erro Início Buscar a próxima instrução Interpretar instrução (decodificar) Executar instrução Armazenar resultados Buscar operandos Fim As atividades do processador estão divididas em duas categorias: ◦ Função de processamento ◦ Função de controle Busca, interpretação e controle da execução das instruções Controle dos componentes do sistema Para efeito didático, nosso processador executará as instruções sequencialmente ◦ Processo lento e pouco eficiente Os processadores atuais utilizam a técnica pipeline ◦ Execução de instruções em paralelo Veremos o funcionamento do pipeline em um módulo separado... Apenas para contextualizar, considere a seguinte situação: ◦ Processo de lavagem, secagem e armazenamento de 4 trouxas de roupas sujas (A, B, C e D); ◦ As trouxas não podem ser misturadas ◦ As roupas de determinada trouxa devem ser lavadas em uma máquina, secadas em outra, dobradas, e por último armazenadas (4 passos) ◦ Cada passo consome 30 minutos Lavagem de Roupas sem Pipeline Serão gastas 8 horas para lavar as 4 trouxas O tempo gasto para lavar cada trouxa é de 2 horas O que podemos fazer para otimizar o desempenho da lavagem de roupas? Será que podemos iniciar o processo de lavagem da segunda trouxa assim que a máquina for liberada pela lavagem da primeira trouxa? Lavagem de Roupas em Pipeline Com a sobreposição das 4 tarefas, as trouxas ficarão prontas em 3 horas e meia O tempo decorrido entre o momento em que um par de meias é colocado na lavadora até o momento em que ele estará seco, dobrado e guardado no armário não diminui com a técnica de pipeline ◦ O tempo gasto para lavar cada trouxa continua sendo de 2 horas O diagrama de blocos que veremos ilustra os principais componentes de um processador e sua organização lógica ◦ Não se trata de uma organização física Os componentes principais são: ◦ ULA (Unidade Lógica Aritmética) ◦ UC (Unidade Controle) ◦ Banco de Registradores Registradores específicos Registradores de propósito geral: 0 a ◦ RI - registrador de instrução: armazena instrução corrente em execução ◦ CI (contador de instruções) ou PC (Program Counter): armazena o endereço da próxima instrução ◦ ACC: acumulador ◦ RDM: registrador de dados da memória ◦ REM: registrador de endereço da memória R-1 Barramento de dados ACC ULA Registradores 0 a R-1 PC RDM REM Barramento de endereços RI Relógio UC Decodificador de instruções Barramento de controle Operações da ULA: Operação XOR Soma Multiplicação Subtração Divisão Operação AND Operação OR Deslocamento à direita Deslocamento à esquerda Incremento Decremento As operações podem utilizar: ◦ Dois operandos pois a ULA tem somente duas entradas ◦ Um operando no caso do incremento ou decremento A saída da ULA está ligada diretamente aos registradores, através do barramento interno A capacidade de processamento de uma CPU (velocidade que ela executa uma instrução) é determinado pelo tamanho da palavra O tamanho da palavra determina o tamanho da ULA, do barramento interno e dos registradores Para comparar processadores em relação ao tamanho da palavra, considere a seguinte operação: ◦ 3A25 + 172C ; que corresponde a (A + B) ◦ Ambos números inteiros, sem sinal com 16 bits de tamanho cada um Processador com palavra de 8 bits A operação de soma é realizada em duas etapas 8 bits CPU MP 8 bits 3A 25 + 2C 3A + 17 25 Regs de 8 bits 17 2C 8 bits Barramento de dados A B Processador com palavra de 16 bits A operação de soma dos mesmos números é realizada em uma etapa 16 bits CPU MP 8 bits 3A 3A25 + 172C 25 Regs de 16 bits 17 2C 16 bits Barramento de dados A B O tamanho da palavra influencia também no tamanho do barramento de dados ◦ Para melhor desempenho, o BD deve ter uma palavra de largura ◦ Se a largura do barramento for menor, por exemplo, metade da palavra, seriam necessários dois ciclos de tempo do barramento O tamanho da palavra influencia também na organização da memória ◦ A memória está organizada em bytes mas os dados que se movimentam entre processador e memória devem estar organizados em palavras Se isto não ocorrer, o processador ficará em estado de espera (wait state) até que a palavra completa seja transferida A transferência irá gastar mais de um ciclo de memória Dispositivo gerador de pulsos cuja duração é chamada de ciclo A quantidade de vezes que o pulso se repete em um segundo define a freqüência ◦ A freqüência é usada para definir a velocidade do processador Durante um ciclo de clock ocorre a realização de uma operação elementar do ciclo de instrução Como uma operação elementar não se realiza em um só passo, o ciclo de clock é dividido em ciclos menores (subciclos) Os passos de uma operação elementar denominam-se microoperações Processador: Relógio Um clock t0 e seus 5 subclocks Relógio t0 Gerador de tempo t1 t2 t3 t4 t5 Unidade de controle Início Buscar a próxima instrução Interpretar instrução (decodificar) Passo elementar que ocorre em um ciclo de clock Executar instrução Armazenar resultados Buscar operandos Fim Colocar o endereço da instrução a ser buscada no REM REM (PC) Incrementar o CI para armazenar o endereço da próxima instrução PC PC + N subciclo Microoperações Para a busca de uma instrução Buscar a próxima instrução O reg. de instruções recebe a instrução buscada RI RDM O RDM recebe a instrução RDM Mem REM ULA (PC) Barramento de dados ACC PC Registradores 0 a R-1 1000 RDM REM 1000 1000 RI Relógio UC Decodificador de instruções Barramento de controle 1000 Barramento de endereços CI ULA 1004 CI + N PC ACC Barramento de dados 1000 1004 Registradores 0 a R-1 RDM 1000 REM 1000 Barramento de endereços RI Relógio UC Decodificador de instruções Barramento de controle RDM ULA Mem ACC PC Registradores 0 a R-1 1004 Barramento de dados RDM A=B+C REM Barramento de endereços RI Relógio UC Decodificador de instruções Barramento de controle RI ULA RDM ACC PC Registradores 0 a R-1 1004 Barramento de dados RDM A=B+C REM A=B+C A = B + C RI Relógio UC Decodificador de instruções Barramento de controle Barramento de endereços