CPU: Controle e processamento WebDesign Redes de Computadores Aula 06
Introdução A CPU (Unidade Central de Processamento) é responsável por gerenciar todo o sistema computacional. Controla todas as operações realizadas pelas unidades funcionais A principal função da CPU é: Controlar e executar instruções presentes na memória principal. Somar, subtrair, comparar e movimentar dados
Sistema computacional Processador ULA Unidade de controle Registradores Memória Principal Dispositivos de E/S Barramento
Processador Unidade de controle ULA Registradores Gerencia as atividades de todos os componentes do computador; Ex. gravação de dados em disco, busca de instrução na memória. ULA Realiza operações lógicas e aritméticas Registradores Armazenam dados temporariamente Funcionam como uma memória de alta velocidade interna ao processador
Clock A sincronização de todas as funções do processador é realizada através do sinal de clock. O clock é um pulso gerado ciclicamente: A cada ciclo de clock uma instrução é executada no processador; t
Clock t 1 – Busca a instrução 2 – Decodifica a instrução 3 – Executa a instrução 4 - Armazena o resultado Quanto mais rápido for o clock melhor será a performance do processador
Classificação das arquiteturas Os sistemas computacionais podem ser classificados de acordo com a organização de seus componentes: Arquitetura von Neumann Arquitetura Harvard
Arquitetura von Neumman Há um único caminho entre a memória e a CPU
Arquitetura Harvard Há caminhos separados para dados e instruções entre a memória e a CPU
Construindo o caminho de dados O processador executa instruções sequencialmente; As instruções precisam estar armazenadas em uma memória => Memória de instruções; Para buscar as instruções na memória, precisamos endereçá-la; Registrador que armazena o endereço da instrução => Program Counter (PC); Precisamos incrementar o endereço, de modo a compor o endereço da próxima instrução;
Ciclo de instrução
Caminho de dados Busca de Instruções Memória de instruções lw $s0,8($s1) addi $s0,$s0,1 sw $s0,8($s1) 1 2 PC
Caminho de dados Busca de Instruções
Caminho de dados Instruções aritméticas Para executar operações aritméticas precisamos dos registradores que armazenam os operandos e o resultado da operação; Precisamos da ULA (Unidade Lógica Aritmética) para realizar as operações;
Caminho de dados Instruções aritméticas A instrução contém o endereço de 3 registradores add $s0,$t0,$t1 Dois desses registradores são lidos e passados para a ULA realizar a operação; O resultado é armazenado em um terceiro registrador; O controle da ULA determina a operação que será realizada;
Caminho de dados Instruções aritméticas
Caminho de dados Instruções de acesso à memória Para executar instruções de acesso à memória do tipo load e store são necessários: Uma memória de dados Um banco de registradores OK Para calcular o endereço da memória somamos o conteúdo de um registrador (32 bits) ao offset (16 bits) Uma ULA OK Módulo extensor de sinal (16 para 32 bits) Ex. lw $s0, 8($t0) Número de 16 bits
Instruções de acesso à memória Ex. lw $s0, 8($t0) Cálculo do endereço de memória: Endereço = 8 + $t0 Número de 16 bits Número de 32 bits
Caminho de dados Instruções de acesso à memória Memória de dados Extensor de sinal
Caminho de dados Escrita na memória O endereço de escrita é obtido pela soma de um registrador de base (registrador 1) com o deslocamento de 16 bits; O registrador 2 é escrito na memória;
Caminho de dados
Caminho de dados Leitura na memória Semelhante à escrita; Existe um caminho para escrever o valor lido no banco de registradores;
Combinando instruções Os recursos para instruções aritméticas e de acesso à memória são bastante semelhantes; Podemos combiná-los em um só;
Combinando instruções A segunda entrada da ULA é: Um registrador ,no caso de instruções aritméticas; É obtido a partir da extensão de sinal de 16 bits das instruções de acesso à memória; O valor a ser escrito no registrador destino é: A saída da ULA, no caso da operação aritmética; Vem da memória, no caso da instrução de acesso à memória;
Combinando instruções
Unidade de Controle
Unidade de Controle Exercício 1) A unidade de controle gera os sinais para que os blocos funcionem corretamente. Determine os sinais (Ctrl1, controle ULA, Memread, Memwrite, Ctrl2, RegWrite) para que as seguintes operações sejam executadas: add $s0, $s1, $s2 lw $t1,24($t2) sw $s3,8($t3) sub $s0, $s1, $s2 Operação ULA Controle da ULA 000 add 001 sub 010 or 011 and