Universidade Federal do Rio de Janeiro
Bacharelado em Ciência da Computação
Organização Básica do Computador
Gabriel P. Silva
Ementa
Unidade 2: Organização Lógica e Funcional de uma UCP
2.1 Modelo Von-Neumann
2.2 Modelo de Barramento de Sistema 2.3 Processador
2.3.1 Unidade Artimética e Lógica 2.3.2 Registradores
2.3.3 Apontador de Instruções 2.3.4 Registrador de Instrução 2.4 Unidade de Controle
2.4.1 Unidade de Controle Microprogramada 2.4.2 Unidade de Controle Direto por Hardware 2.5 Ciclo de Busca de Instruções
2.6 Tipos de Arquitetura 2.7 Operandos
2.7.1 Inteiros
2.7.2 Ponto Flutuante
2.7.3 Alinhamento na Memória
2.7.4 Ordenação Big Endian e Little Endian 2.8 Modos de Endereçamento
● Introduziu o conceito do computador controlado
por programa armazenado.
● Todo computador é formado por 5 partes básicas:
a memória principal, a unidade lógica e aritmética, a unidade de controle e os dispositivos de entrada e saída.
● As operações a serem realizadas pelo computador
são definidas pelos dados e instruções do programa carregado na memória.
● Maiores detalhes em http://goo.gl/AAPlKP
Modelo de Von Neumann
MEMÓRIA
ENTRADA ARITMÉTICA LÓGICA SAÍDA
UNIDADE DE CONTROLE
Modelo de Von Neumann
● A unidade aritmética e lógica é a parte do
computador onde são feitas as operações aritméticas e lógicas com os dados.
● O tipo de operação a ser executado é determinado
por sinais vindos da unidade de controle.
● A memória é onde ficam armazenados os dados e
instruções que vão ser utilizados pela UAL e pela unidade de controle.
● Os dados a serem operados são lidos dos
dispositivos de entrada para a memória.
● Os resultados obtidos são enviados para a memória
Modelo de Barramento de Sistema
● É um refinamento do modelo de Von Neumann e
possui o processador (que integra ULA,
registradores e unidade de controle), memória e unidade de entrada/saída.
● Os registradores são elementos de memória
colocados junto da ULA para armazenamento de valores temporários.
● A comunicação entre as diversas unidades é feita
através do barramento de sistema, que é composto pelos barramentos de endereço, dados e controle.
● Em algumas arquiteturas pode haver também
barramentos adicionais conectados à unidade de entrada/saída, chamados de barramentos de
Modelo de Barramento de Sistema
PROCESSADOR MEMÓRIA Controle Barramento de Endereço Barramento de Dados ENTRADA E SAÍDABarramento de Sistema
Memória Principal
● A unidade de memória primária é formada pela memória
volátil e pela memória não volátil.
● As informações armazenadas na memória volátil podem ser
alteradas durante a execução de um programa. São também usadas para armazenar os resultados intermediários e finais das operações realizadas pelo processador.
● A memória não volátil é usada para armazenar informações
que não necessitam ser alteradas no decorrer do
processamento. É utilizada para iniciar o funcionamento do computador, realizando os testes iniciais e cópia do sistema operacional para a memória.
● A memória volátil recebe o nome de memória principal e a
memória não volátil é conhecida como BIOS nos computadores baseados no IBM/PC.
Entrada/Saída
● A unidade de entrada e saída contém os circuitos
de interface necessários para prover a comunicação entre os dispositivos de ENTRADA e SAÍDA com as demais partes do computador.
● Toda a informação é convertida de/para o formato
binário pela unidade de entrada/saída.
● Exemplos de dispositivos de entrada/saída são o
disco rígido, teclado, terminal de vídeo, mouse, impressora, entre outros.
Memória Secundária
● A memória secundária é onde os programas e dados,
incluindo aqueles do sistema operacional, são armazenados de uma forma persistente no computador.
● Hoje em dia é constituída, principalmente, pelo conjunto de
discos magnéticos do computador e também, cada vez mais, pelos discos de estado sólido.
● A principal característica da memória secundária é o
armazenamento da informação de uma forma permanente, mesmo quando o computador é desligado.
● Há vários outros tipos de dispositivos, removíveis ou não, que
podem ser considerados parte da memória secundária, tais como fitas magnéticas, discos óticos, entre outros.
● Uma das características da memória secundária é o alto
volume de dados e o baixo custo de armazenamento por byte quando comparado com a memória principal.
Processador
● É o conjunto da unidade lógica e aritmética,
registradores e da unidade de controle.
● Sua função é executar os programas armazenados
na memória principal, buscando suas instruções, examinando as, e então executando uma após a outra.
● O processador é responsável pela realização de
uma série de funções:
Busca de instruções e dados na memória.
Programa a transferência de dados entre a memória e os
dispositivos de entrada/saída.
Decodifica as instruções.
Realiza as operações lógica e aritméticas.
Responde a sinais enviados por dispositivos de entrada/saída
Unidade Aritmética e Lógica
● A Unidade Aritmética e Lógica pode realizar diversas
operações.
● A seguir citamos algumas delas:
● Adição
● Subtração
● Operações lógicas: E, OU, XOR, INVERSÃO, etc. ● Deslocamento (à esquerda e à direita)
● Comparação ● Desvios
● Multiplicação ● Divisão
Unidade Aritmética e Lógica
● A largura da arquitetura de um processador (8, 16,
32 ou 64 bits) é definida pela largura em bits do maior operando inteiro que pode ser utilizado em uma única operação pela UAL.
Unidade Aritmética e Lógica
● A largura de uma arquitetura NÃO é definida:
– Pelo tamanho em bits da instrução;
– Pela largura do barramento de dados interno ou
externo;
– Pela largura em bits dos operandos da unidade de
ponto flutuante;
– Pela largura em bits do apontador de instruções (PC)
ou do barramento de endereços.
● Como consequência direta, a largura em bits do
maior operando admitido pela UAL irá determinar, normalmente, a largura em bits do acumulador e dos registradores de uso geral do processador. Não há sentido para que sejam maiores ou menores do que isso.
Registradores
● O processador contém elementos de memória, de
pequena capacidade mas de alta velocidade, usados para armazenar resultados temporários, chamados de registradores.
● O conjunto desses registradores é denominado banco de
registradores.
● Os registradores são referenciados explicitamente pelas
instruções lógicas, aritméticas e de transferência de dados.
● Existe um registrador invisível ao programador,
chamado de registrador de instrução (RI), que armazena a instrução que está sendo executada.
● Existe um registrador especial denominado apontador
de instruções (PC), que contém o endereço da próxima instrução que vai ser executada.
Unidade de Controle
● A unidade de controle é responsável pela coordenação
da atividade de todos os componentes do processador.
● Ela busca a instrução na memória e coloca no
registrador de instruções (RI).
● A unidade de controle faz a decodificação da instrução
que está no RI:
Determina qual o tipo de operação vai ser realizada pela U.A.L. Determina quantos e quais são os operandos de leitura, e qual o
registrador de destino, se houver.
Lê os operandos necessários para a execução da instrução e os
coloca na entrada da U.A.L.
● A unidade de controle lê o resultado da saída da U.A.L.
Unidade de Controle
●
Há duas formas de se implementar a unidade de
controle:
Através de microprogramação
Controle direto pelo hardware (PLA, ROM)
●
As unidades de controle
microprogramadas
são
características das arquiteturas do tipo
CISC
.
●
O controle diretamente pelo
hardware
é
encontrado normalmente nas arquiteturas do tipo
Unidade de Controle
Microprogramada
Relógio Relógio Memória de Microprograma (ROM) Memória de Microprograma(ROM) Palavra de Controle
Palavra de Controle Gerador de Endereço Inicial e de Desvios Gerador de Endereço Inicial e de Desvios Apontador de Micro Instruções (µPC) Apontador de Micro Instruções (µPC) Códigos de Condição Códigos de Condição R eg ist ra d or d e In st ru çõ es R eg is tr ad or d e In st ru çõ es Decodificador de Instruções Decodificador de Instruções
Unidade de Controle
Direto pelo Hardware
Relógio Relógio Palavra de Controle Palavra de Controle R eg ist ra d or d e In st ru çõ es R eg ist ra do r d e In st ru çõ es Decodificador de Instruções Decodificador de Instruções Lógica de Controle (PLA) Lógica de Controle (PLA) Códigos de Condição Códigos de Condição
Ciclo de Busca de Instruções
● O processador executa uma instrução em uma
série de etapas:
1) Busca a próxima instrução que está localizada na memória para o registrador de instrução;
2) Atualiza o apontador de instruções (PC) para que ele aponte para a próxima instrução a ser executada.
3) Determina o tipo de instrução e o número de operandos;
4) Busca os operandos, se houver, para os registradores do processador;
5) Executa a instrução;
6) Armazena os resultados;
Tipos de Arquitetura
● Arquitetura de Acumulador
– Um operando (em registrador ou memória), o acumulador é
usado como operando ímplicito a maioria das vezes
● Arquitetura de Pilha
– Nenhum operando: todos operandos são implícitos no topo da
pilha
● Arquitetura de Registrador (load / store) – Três operandos, todos nos registradores
– loads e stores são as únicas instruções que fazem acesso à
memória
● Arquitetura Registrador-Memória – Dois operandos, um em memória ● Arquitetura Memória-Memória
Tipos de Arquitetura
C:=A+B: Arquitetura de Pilha Arquitetura Acumulador Registrador-Memória Memória-Memória Registrador (load-store)Push A Load A Load r1,A Add C,B,A Load r1,A Push B Add B Add r1,B Load r2,B
Add Store C Store C,r1 Add r3,r1,r2
Arquitetura de Acumulador
Acumulador ALU Memória Endereço latch latchExample code: c = b+a;
load a; // acumulador é operando implícito add b;
Arquitetura de Pilha
Exemplo: c = b+a; push a; push b; add; pop c; a a b a+bpush a push b add pop c stack: ALU Memoria Pilha Ap. pilha latch latch latch a+b
Alinhamento
0 1 2 3 4 5 6 7 4 1 Palavra alinhada (endereço múltiplo de 4).Palavra não alinhada (endereço múltiplo de 1). 2
Palava não alinhada (endereço múltiplo de 2).
Aumento dos Endereços
Ordenação
0 1 2 3 4 5 6 7 Aumento dos Endereços 0 (LSB) 1 2 3 (MSB) Ordenação Little-endian (byte com endereço menoré colocado no byte
menos significativo da palavra) 3 (MSB)
2 1
0 (LSB)
Ordenação Big-endian (byte com endereço menor
é colocado no byte
mais significativo da palavra) 4
Modos de Endereçamento
● Na sintaxe na coluna em linguagem de montagem os parenteses
( ) indicam acesso à memória.
● Na sintaxe RTL à direita, [ ] denota acesso a um elemento de um
vetor, com a Memória.
Modo Exemplo Significado (RTL)
Imediato add r4, r4, #3 R4 R4+3 Registrador add r4, r4, r3 R4 R4+R3 Direto ou
Absoluto
add r1, (1001) R1 R1+M[1001] Indireto Reg. add r4, (r1) R4 R4+M[R1] Deslocamento ld r4, 100(r1) R4 MEM[100+R1] Indexado add r3, (r1+r2) R3 R3+M[R1+R2] Indireto Mem. add r1, @(r3) R1 R1+M[M[R3]] Pilha pop r1 R1 M[SP]
Modos de Endereçamento
imed Imediato Registrador reg Campo da InstruçãoModo RegistradoresBanco de Memória
Indireto reg Direto
(Absoluto) ender
Deslocamento reg imed + endereço “base”
Modos de Endereçamento
Campo da Instrução
Modo RegistradoreBanco de s Memória
Indexado reg1 reg2
+
deslocamento
Indireto
Via Memória reg
endereço “base”
Pilha reg
Modos de Endereçamento
● Existem ainda modos especiais de endereçamento que
utilizam o apontador de instruções (PC).
● O mais comum deles é o endereçamento relativo ao PC,
onde o endereço do operando é um endereço relativo à localização da própria instrução.
● O apontador de instruções é utilizado como um registrador
de base e o deslocamento, isto é, a distância entre o operando e o PC é utilizado no código da instrução.
● Esse modo é utilizado, por exemplo, no processador ARM
Sinal de Relógio (Clock)
●
O processador tem seu funcionamento
sincronizado por um sinal elétrico periódico
denominado relógio.
●
O relógio cadencia a execução das instruções
em suas diversas fases.
●
Quanto mais rápido (maior a frequência) for o
sinal de relógio, mais rápido as instruções, e por
consequência os programas, serão executados.
●
Os componentes básicos do processador
(portas lógicas, flip-flops, etc.) limitam a
frequência máxima que o relógio pode ter.
Sinal de Relógio (Clock)
●
A frequência e o tempo do ciclo do relógio estão
relacionados pela seguinte equação:
●
O uso de técnicas como o pipeline permitem
aumentar consideravelmente a frequência do
relógio.
●
Quanto maior a frequência de relógio maior é o
consumo de energia e dissipação de calor do
processador.
●
Isso também impõe limites práticos sobre a
maior frequência que um processador pode ter.
Tc=1 f
Banco de Registradores (R0 R31) U.A.L. RD RS1 RS2 32 32 RDM RI #RS1 #RS2 #RD UNIDADE DE CONTROLE IN S T R U Ç Ã O D A D O S 6 5 5 5 PC E N D E R E Ç O 16 4 Endereço de Desvio RD = RS1 oper R2 oper 32 32 + Barramento de Dados Barramento de Endereço REM E N D E R E Ç O 32 32