Aula 2 – Sumário Transferências entre registos Notação utilizada Utilização de multiplexers, saídas tri-state e descodificadores Arquitectura básica de um processador A máquina de von Neumann Datapath Palavras de controlo
Transferências entre registos
Registos Registo Operações típicas Inicializar o registo a ‘0’s – Clear (ou Reset) Carregar o registo com novos dados – Load Deslocar os bits dentro do registo – Shift Registo Conjunto de flip-flops e portas lógicas que permite o armazenamento e a manipulação de informação
Registos Exemplo de um circuito Variáveis de controlo: L1 – Carregamento de R1 C1 – Clear de R1 (activo a low) L2 – Carregamento de R2 S – Selecção da operação: 0 – soma 1 – subtrai Linhas grossas são barramentos ou Bus
Registos Exemplos de operações C1 L1 L2 S Operação x R1 0 1 x R1 0 1 NOP (não faz nada) R2 Din R1 R1 + R2 R1 R1 – R2 R1 R1 + R2, R2 Din R1 R1 – R2, R2 Din
Conteúdo do endereço indicado pelo registo R1 Notação utilizada Designação Significado Exemplos Letras e números Registos R0; AC; PC; IR Carregamento R3 R2 + R1; R0 4 Vírgula Operações em simultâneo R1 R0, R2 R3+R1 M[x] Conteúdo da posição de memória x R0 M[1023]; R2 M[R1] Conteúdo do endereço 1023 Conteúdo do endereço indicado pelo registo R1 Operação Significado ~ Negação (bit-a-bit) + Adição & AND (bit-a-bit) – Subtracção | OR (bit-a-bit) Multiplicação XOR (bit-a-bit) << Deslocamento para a esquerda
Utilização de multiplexers Selecção da origem de dados Variáveis de controlo C2 C1 Função x --- 1 R0 R1 R0 R2
Utilização de multiplexers Exemplos de operações Operação C1 C0 L2 L1 L0 R0 R1 1 R0 R1, R2 R1 R1 Din R0 R1, R2 R0 Impossível Bus de dados externos (exemplo: vindos da memória)
Utilização de multiplexers Selecção das operações L0 S0 Função x --- 1 R0 ~R2 R0 R1 + R2
Utilização de saídas tri-state Princípio de funcionamento Y fica isolado de A (alta impedância) Enable A Y x --- 1 Y fica ligado a A
Utilização de saídas tri-state Registos bidireccionais Registo bidireccional com saídas tri-state Esquema Nota: existe uma saída tri-state por cada linha de dados
Utilização de saídas tri-state EN – Enable da saída Load – Carregamento Exemplos Operação E2 E1 E0 L2 L1 L0 R0 R1 1 R0 R1, R2 R1 R1 Din R0 R1, R2 R0 Impossível
Utilização de descodificadores Selecção do registo destino Selecção do registo fonte
Exemplo Fonte para o Bus B Destino Fonte para o Bus A De ou para a memória Fonte para o Bus A
Arquitectura básica de um CPU
Processador CPU (Central Processing Unit) É o principal responsável pela actividade de um computador Executa sequências de instruções definidas em programas Comunica com os restantes elementos do sistema através dos seus pinos, ligados a barramentos externos
A máquina de von Neumann John von Neumann (1903-1957) Propôs uma arquitectura de computadores conhecida posteriormente como Máquina de von Neumann CPU composto por 3 unidades principais Banco de registos Unidade funcional Unidade de controlo O CPU executa instruções carregadas em memória – o programa
Estrutura básica de um CPU Gera os sinais que seleccionam a fonte e o destino dos dados, assim como a operação a realizar Guardam vários tipos de dados Operações aritméticas Operações lógicas Operações de deslocamento
Estrutura básica de um CPU Datapath
Datapath Com mais pormenor… Unidade funcional Banco de registos
Datapath Em blocos:
Datapath Contudo, o esquema ainda não está operacional Falta-lhe a possibilidade de comunicar com o exterior Com uma memória RAM, por exemplo E a possibilidade de carregar constantes Como resolver? Uma hipótese será: Acrescentar mais multiplexers e mais sinais de controlo Os barramentos A, B e C passam a ter funcionalidades adicionais: Bus A – para endereçar a memória Bus B – para constantes e dados a escrever na memória Bus C – para dados lidos da memória Nota: Existem outras possibilidades para introduzir estas novas funcionalidades.
Comunicação Datapath-Memória Selecção de constantes Selecção de dados vindos da memória Controlo de escrita/leitura na memória
Palavras de controlo Palavra de controlo ou Micro-instrução Combinação binária correspondente ao conjunto de todos os sinais de controlo Possível estrutura de uma palavra de controlo (para o esquema anterior):
Execução de uma instrução Palavra de controlo Palavra de controlo Palavra de controlo Estado Estado Estado Endereço de instrução Instrução