Você está na página 1de 9

Introdução à Arquitetura de Computadores Sistema Computacional

• Hardware e software • Principais componentes de um sistema computacional:


• Organização de um computador: • Computador
• Processador: registradores, ALU, unidade de controle • Periféricos:
• Memórias
• Dispositivos de E/S
• Barramentos
• Dispositivos de E/S
• Linguagens de programação
• Geração de um programa executável
• Carga e execução de programa
• Instruções de máquina
• Ciclo de execução de instrução

1 3

Organização de um Computador Processador


• Principais componentes de um computador: • CPU: Central Processing Unit
• Processador (Unidade Central de Processamento – UCP)
• Executa programas armazenados na memória:
• Memórias
• Busca instruções na memória
• Portas de entrada e saída (E/S)
• Decodifica instruções
• Barramentos
• Executa instruções

• Composto por:
• Unidade de controle (UC) (Control Unit)
• Datapath (via de dados, caminho de dados):
• Unidade lógico-aritmética (ULA)
2 • Conjunto de registradores 4
Unidade de Controle Datapath
• Comanda datapath, memória e dispositivos de E/S sobre o que fazer, • Registradores:
de acordo com instruções do programa • Pequenas unidades capazes de guardar informações
(dados, endereços, instruções)
• Controla execução das instruções no processador:
• Dispositivos de armazenamento de rápido acesso ⇒
• Comanda busca na memória da próxima instrução a ser executada,
Custo elevado ⇒ Processador tem poucos registradores
trazendo-a para o processador
• Meio de armazenamento volátil
• Decodifica instrução (determina que operação ela representa)
• Registradores de propósito específico e de uso geral
• Comanda operação a ser realizada pelo datapath
• Variam de um tipo de processador para outro
• Quase todos os processadores têm registradores para:
• Endereço da próxima instrução a executar (PC – Program Counter)
• Próxima instrução a executar (IR – Instruction Register)
• Endereço do dado que está no topo da pilha de execução
(SP – Stack Pointer)
• Uso geral: realização de operações lógico-aritméticas
5 7

Datapath Processador Memória Principal


Conjunto de
• Realiza a execução das instruções Registradores • Memória Principal ou memória primária:
0
• Executa operações comandadas pela UC ..
.
• Armazena instruções e dados dos programas sendo executados
8
• Composto por: 9
..
. Memória RAM (Random-Access Memory):
• Unidade lógico-aritmética •

• Conjunto de registradores • Qualquer posição pode ser acessada com mesmo tempo de acesso
ALU
• Unidade lógico-aritmética (ULA):
• Realiza operações lógicas e aritméticas • Acesso mais lento que registradores ⇒
(comparação, soma, subtração, ...) PC Menor custo ⇒
IR Maior capacidade de armazenamento

Unidade de Controle
• Meio de armazenamento volátil
• Exemplo:
• UC busca na memória instrução a executar (por exemplo: add A, B)
• ALU realiza soma dos 2 operandos, produzindo um resultado 6 8
Memória Principal Dispositivos de Entrada e Saı́da
• Pode ser vista como estrutura unidimensional: • Dispositivos para comunicação entre usuário e computador:
• Cada posição é uma célula onde pode-se armazenar uma informação • Permitem que usuário forneça e receba dados ao/do computador
o
• Todas as células têm mesmo n de bits • Exemplos:
• Cada célula possui um endereço pelo qual é acessada • Teclado, vídeo, mouse, impressora

• Dispositivos de armazenamento secundário:


endereço Memória • Permitem que informações sejam armazenadas em um meio não volátil
0 célula • Exemplos:
1 • Disco magnético, fita magnética, disco ótico
2
3 • Denominados memória secundária em contraposição à memória principal
• Mais lentos que memória principal ⇒
.. ..
. . Menor custo ⇒
Maior capacidade de armazenamento
tamanho da
memória - 1
9 11

Sistema Computacional Dispositivos de Entrada e Saı́da


• Computador: • Compostos de 2 partes:
• Processador • Parte mecânica: Dispositivo realmente
• Memória • Parte eletrônica: Controlador de E/S
• Portas de E/S: conexões de E/S para periféricos • Circuito que controla operação do dispositivo de E/S
• Barramentos • Controlador fica conectado ao barramento
• Dispositivo é ligado ao controlador por um cabo
• Periféricos: dispositivos de E/S

Datapath Datapath

10 12
swap(int v[], int k)
Linguagens de High-level
{int temp;
Barramentos language
temp = v[k];
Programação program v[k] = v[k+1];
(in C) v[k+1] = temp;
• Conjunto de fios por onde trafegam informações do processador para }
memória e para dispositivos de E/S e vice-versa • Linguagem alto nível
• Informações podem ser: • Tradutor: Compilador Compiler

• Dados
• Endereços de memória swap: muli $2, $5,4
Assembly add $2, $4,$2
language lw $15, 0($2)
• Sinais de controle • Linguagem de montagem program lw $16, 4($2)
(for MIPS) sw $16, 0($2)
• Tradutor: Montador sw $15, 4($2)
jr $31

Assembler

• Linguagem de máquina
00000000101000010000000000011000
Binary machine 00000000000110000001100000100001
language 10001100011000100000000000000000
program 10001100111100100000000000000100
(for MIPS) 10101100111100100000000000000000
10101100011000100000000000000100
13 0000001111100000000000000000100015

Linguagens de Programação Geração do Programa Executável

14 16
Independência de Máquina
Geração do Programa Executável
do Programa em Linguagem Alto Nı́vel
• A partir do programa fonte em uma linguagem alto nível (por exemplo C):

C source Assembly Object


Compiler Assembler
file file file

Executable
Linker file

C source Assembly Object


Compiler Assembler
file file file Library
object file

• Passos:
• Compilação
• Montagem
• Link-edição
17 19

Passos para Geração do Programa Executável Execução do Programa


• Compilação: • Programa armazenado em memória:
• Realizada pelo programa compilador • Programa precisa ser carregado na memória para ser executado
• Traduz programa fonte da linguagem alto nível • Instruções de máquina e dados do programa são armazenados na
para programa em linguagem de montagem memória, da onde são lidos para registradores do processador
• Pode gerar diretamente programa em linguagem de máquina: quando necessário
• Módulo objeto (ainda não é o programa executável)
• Carga do programa executável na memória realizada pelo programa loader
• Montagem:
Executable Program
• Realizada pelo programa montador (assembler) file Loader
in memory
• Traduz programa fonte da linguagem de montagem (assembly language)
para programa em linguagem de máquina, gerando módulo objeto • Execução do programa:
• Link-edição: • Programa é executado através da execução das suas instruções de
• Realizada pelo programa linker (link-editor ou ligador) máquina, uma a uma
• Une vários módulos objeto e bibliotecas, gerando programa executável
• Para cada instrução do programa a ser executada,
18 processador realiza ciclo de execução de uma instrução 20
Instruções de Máquina Exemplo 1: Execução de um Programa
• Instrução de máquina: • Em C:
• Codificada como seqüencia de bits b = a + a ;
• Representa comando que é interpretado e executado pelo processador • Supondo que compilador associou variáveis a e b aos endereços 200 e 204
• Em linguagem de montagem:
• Exemplo:
load R8, 200 % R8 := Mem[200]
• Em C:
add R9, R8, R8 % R9 := R8 + R8
• Comando: a = b + c ;
store R9, 204 % Mem[204] := R9
• a, b, c são variáveis do programa
• Em linguagem de máquina (de um processador hipotético):
• Em linguagem de montagem:
00010001000000000000000011001000
• Instrução: add R8, R9, R10
• R8, R9, R10 são registradores do processador load R8 200
00000101000010000100100000000000
• Em linguagem de máquina:
add R8 R8 R9
• Instrução: 00000001001010100100000000100000
00010101001000000000000011001100
• Instrução de máquina dividida em campos que indicam operação e
operandos store R9 204
21 23

Ciclo de Execução de uma Instrução Exemplo 1: Computador


Processador Memória Principal
• Processador realiza os passos:
Conjunto de 0
• Busca instrução: UC lê da memória próxima instrução a executar Registradores ..
.
0
(cujo endereço está em PC) e copia-a para IR ..
.
• Decodifica instrução: UC determina qual é a instrução, 8 100
9
investigando conteúdo de IR .. 104
.
• Busca operandos: Caso instrução precise de operandos na memória, 108
..
UC lê operandos da memória .
ALU
• Executa instrução: ALU executa operação indicada pela instrução,
200
utilizando operandos e gerando resultado
PC 204
• Escreve resultado: Caso instrução precise que resultado fique na ..
.
memória, UC escreve resultado na memória IR

• Atualiza PC: UC atualiza PC, para apontar para próxima instrução a


Unidade de Controle
executar

...
22 24
Barramento
Exemplo 1: Programa carregado na memória Exemplo 1: Instrução load – Executa instrução
Processador Memória Principal Processador Memória Principal
Conjunto de 0 Conjunto de 0
Registradores .. Registradores ..
. .
0 0
.. ..
. .
8 100 load R8, 200 instruções de 8 5 100 load R8, 200
9 9
.. 104 add R9, R8, R8 máquina e não .. 104 add R9, R8, R8
. .
108 store R9, 204 de montagem 108 store R9, 204
.. ..
. .
ALU ALU

200 5 200 5

PC 100 204 PC 100 204


.. ..
. .
IR IR load R8, 200

Unidade de Controle Unidade de Controle

... ...
25 27
Barramento Barramento

Exemplo 1: Instrução load – Busca instrução Exemplo 1: Instrução load – Atualiza PC


Processador Memória Principal Processador Memória Principal
Conjunto de 0 Conjunto de 0
Registradores .. Registradores ..
. .
0 0
.. ..
. .
8 100 load R8, 200 8 5 100 load R8, 200
9 9
.. 104 add R9, R8, R8 .. 104 add R9, R8, R8
. .
108 store R9, 204 108 store R9, 204
.. ..
. .
ALU ALU

200 5 200 5

PC 100 204 PC 104 204


.. ..
. .
IR load R8, 200 IR load R8, 200

Unidade de Controle Unidade de Controle

... ...
26 28
Barramento Barramento
Exemplo 1: Instrução add – Busca instrução Exemplo 1: Instrução add – Atualiza PC
Processador Memória Principal Processador Memória Principal
Conjunto de 0 Conjunto de 0
Registradores .. Registradores ..
. .
0 0
.. ..
. .
8 5 100 load R8, 200 8 5 100 load R8, 200
9 9 10
.. 104 add R9, R8, R8 .. 104 add R9, R8, R8
. .
108 store R9, 204 108 store R9, 204
.. ..
. .
ALU ALU

200 5 200 5

PC 104 204 PC 108 204


.. ..
. .
IR add R9, R8, R8 IR add R9, R8, R8

Unidade de Controle Unidade de Controle

... ...
29 31
Barramento Barramento

Exemplo 1: Instrução add – Executa instrução Exemplo 1: Instrução store – Busca instrução
Processador Memória Principal Processador Memória Principal
Conjunto de 0 Conjunto de 0
Registradores .. Registradores ..
. .
0 0
.. ..
. .
8 5 100 load R8, 200 8 5 100 load R8, 200
9 10 9 10
.. 104 add R9, R8, R8 .. 104 add R9, R8, R8
. .
108 store R9, 204 108 store R9, 204
.. ..
. .
ALU ALU

200 5 200 5

PC 104 204 PC 108 204


.. ..
. .
IR add R9, R8, R8 IR store R9, 204

Unidade de Controle Unidade de Controle

... ...
30 32
Barramento Barramento
Exemplo 1: Instrução store – Executa instrução Sistema Computacional
Processador Memória Principal
• Principais componentes:
Conjunto de 0
Registradores .. • Computador
.
0
..
.
• Periféricos: Dispositivos de E/S
8 5 100 load R8, 200
9 10
.. 104 add R9, R8, R8
.
108 store R9, 204
..
.
ALU

200 5

PC 108 204 10
..
.
IR store R9, 204

Unidade de Controle

...
33 35
Barramento

Exemplo 1: Instrução store – Atualiza PC Placa Mãe (Motherboard) e Chip do Processador


Processador Memória Principal
Conjunto de 0
Registradores ..
.
0
..
.
8 5 100 load R8, 200
9 10
.. 104 add R9, R8, R8
.
108 store R9, 204
..
.
ALU

200 5

PC 112 204 10
..
.
IR store R9, 204

Unidade de Controle

...
34 36
Barramento

Você também pode gostar