arquitetura de computadores i - dcc.ufrj.brgabriel/arqcomp/arquiteturabasica.pdf · a memória...

46
Universidade Federal do Rio de Janeiro Bacharelado em Ciência da Computação Organização Básica do Computador Gabriel P. Silva Arquitetura de Computadores I

Upload: doankiet

Post on 25-Sep-2018

238 views

Category:

Documents


0 download

TRANSCRIPT

Universidade Federal do Rio de JaneiroBacharelado em Ciência da Computação

Organização Básica do Computador

Gabriel P. Silva

Arquitetura de Computadores I

Ementa

Unidade 2: Organização Lógica e Funcional de uma UCP2.1 Modelo Von-Neumann2.2 Modelo de Barramento de Sistema2.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 Hardware2.5 Ciclo de Busca de Instruções2.6 Tipos de Arquitetura2.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 Endian2.8 Modos de Endereçamento2.9 Sinal de Relógio (Clock)

● 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

Modelo de Von Neumann

MEMÓRIA

ENTRADA SAÍDAARITMÉTICA

LÓGICA

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 e daí para os dispositivos de saída de dados.

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 entrada/saída.

Modelo de Barramento de Sistema

PROCESSADOR MEMÓRIA

Controle

Barramento de Endereço

Barramento de Dados

ENTRADA E

SAÍDA

Barramento de Sistema

Diagrama da Placa de Computador

Exemplo de Placa de Computador

Digrama de Placa de Computador

Digrama de Placa de Computador

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

como RESET ou interrupções.

Processador

Arquitetura Interna do Processador

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.

U.A.L. e Banco de Registradores

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.

e envia para o destino correto.

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 RISC.

Unidade de Controle Microprogramada

RelógioRelógio

Memória deMicroprograma

(ROM)

Memória deMicroprograma

(ROM)Palavra de ControlePalavra 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

Registrad

or de Instru

çõesRegistrad

or de In

struções

Decodificador de

Instruções

Decodificador de

Instruções

Unidade de Controle Direto pelo Hardware

RelógioRelógio

Palavra de ControlePalavra de Controle

Registrad

or de In

struções

Registrador d

e Instru

ções

Decodificador de

Instruções

Decodificador de

Instruções

Lógica deControle

(PLA)

Lógica deControle

(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;7) Volta ao passo 1 para executar a próxima instrução.

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

– Três operandos, podem todos estar na 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

Pop C Store C,r3

Arquitetura de Acumulador

Acumulador

ALU MemóriaEndereço

latch

latch

Example code: c = b+a;

load a; // acumulador é operando implícitoadd b;store c;

Arquitetura de Pilha

Exemplo: c = b+a;push a;push b;add;pop c;

aab a+b

push a push b add pop c

stack:

ALU Memoria

Pilha

Ap. pilha

latch

latch

latch

a+b

Operandos Inteiros

Operandos em Ponto Flutuante

Alinhamento

01234567

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 dosEndereços

Ordenação01234567

Aumento dosEndereços

0 (LSB)123 (MSB)

Ordenação Little-endian (byte com endereço menor

é colocado no byte menos significativo da palavra)

3 (MSB)210 (LSB)

Ordenação Big-endian (byte com endereço menor

é colocado no byte mais significativo da palavra)

4

Ordenação

Ordenação

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

imedImediato

Registrador reg

Campo da InstruçãoModo Banco de

Registradores Memória

Indireto reg

Direto(Absoluto)

ender

Deslocamento reg imed+

endereço “base”

deslocamento

Modos de Endereçamento

Campo da InstruçãoModo Banco de

Registradores Memória

Indexado reg1 reg2+

deslocamento

IndiretoVia Memória reg

endereço “base”

Pilha reg Ponteiro da Pilha

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 e em instruções de desvio do processador MIPS.

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.

T c=1f

Sinal de Relógio (Clock)

Banco de Registradores

(R0 R31)

U.A.L.

RD

RS1 RS2

32 32

RDM

RI

#RS1

#RS2

#RD

UNIDADE DE CONTROLE

INS

TR

ÃO

DA

DO

S

6

5

5

5

PC

EN

DE

RE

ÇO

16

4

Endereçode Desvio

RD = RS1 oper R2

oper

32

32+

Barramentode Dados

Barramentode Endereço

REM

EN

DE

RE

ÇO 32

32