Upload
vonga
View
225
Download
0
Embed Size (px)
Citation preview
Sumário
1. Introdução
2. Processador
1. Operações de Processamento
2. Unidade de Controle
3. Ciclos de uma Instrução
3. Memória
1. Memória Principal
2. Memória Secundária
3. Memória Cache
4. Dispositivos de Entrada e Saída
5. Barramento
6. Pipeline
7. RISC e CISC
1. Introdução
O hardware de um sistema computacional é um conjunto de circuitos eletrônicos interligados.
MemóriaPrincipal
Dispositivosde E/ S
Processador / UCP
Unidade Lógicae Aritmética
Registradores
Unidade deControle
A principal função do processador é controlar e executar instruções presentes na memória principal.
Componentes do processador:
1) A UC é responsável por gerenciar as atividades
de todos os componentes do computador.
2) A ULA realiza operações lógicas e aritméticas.
3) Os registradores armazenam dados temporariamente.
2. Processador
2.1. Processador Operações de Processamento
Carga (Load)
Cópia de memória em registrador.
Operação na ULA
Valores em registradores são processados pela ULA e armazenados em registrador.
Armazenamento (Store)
Cópia de registrador em memória.
Processador
Unidade de Controle Datapath
ULA
Registradores
IR PC
Controlador
Memória
I/O
Control
/Status
10 ...
...
10
+1
11
11
Ciclos de uma instrução – várias sub-operações (cada uma em um ciclo de relógio). Busca instrução: armazena
instrução em IR, atualiza PC.
Decodificação: determina o que a instrução significa.
Busca de operandos: cópia de dados da memória para registradores na unidade de processamento.
Execução: Processa dados na ULA.
Armazena resultados: escreve resultados de registrador na memória.
2.2. Processador Unidade de Controle
Processador
Unidade de Controle Datapath
ULA
Registradores
IR PC
Controlador
Memória
I/O
Control
/Status
10 ...
...
load R0, M[500] 500
501
100
inc R1, R0 101
store M[501], R1 102
R0 R1
2.2. Processador Unidade de Controle
Busca de instrução
Cópia da instrução em IR.
PC: contador de programa aponta para próxima instrução.
IR: armazena instrução que foi buscada.
Processador
Unidade de Controle Datapath
ULA
Registradores
IR PC
Controlador
Memória
I/O
Control
/Status
10 ...
...
load R0, M[500] 500
501
100
inc R1, R0 101
store M[501], R1 102
R0 R1 100 load R0, M[500]
2.2. Processador Unidade de Controle
Decodificação
Determina significado da instrução.
Processador
Unidade de Controle Datapath
ULA
Registradores
IR PC
Controlador
Memória
I/O
Control
/Status
10 ...
...
load R0, M[500] 500
501
100
inc R1, R0 101
store M[501], R1 102
R0 R1 100 load R0, M[500]
2.2. Processador Unidade de Controle
Busca de operandos
Cópia de dados da memória para registradores no datapath.
Processador
Unidade de Controle Datapath
ULA
Registradores
IR PC
Controlador
Memória
I/O
Control
/Status
10 ...
...
load R0, M[500] 500
501
100
inc R1, R0 101
store M[501], R1 102
R0 R1 100 load R0, M[500]
10
2.2. Processador Unidade de Controle
Execução
Processa dados na ULA.
Para esta instrução em particular nada acontece durante esta sub-operação.
Processador
Unidade de Controle Datapath
ULA
Registradores
IR PC
Controlador
Memória
I/O
Control
/Status
10 ...
...
load R0, M[500] 500
501
100
inc R1, R0 101
store M[501], R1 102
R0 R1 100 load R0, M[500]
10
2.2. Processador Unidade de Controle
Armazena resultados
Escreve dado de registrador em memória
Para esta instrução em particular nada acontece durante esta sub-operação.
Processador
Unidade de Controle Datapath
ULA
Registradores
IR PC
Controlador
Memória
I/O
Control
/Status
10 ...
...
load R0, M[500] 500
501
100
inc R1, R0 101
store M[501], R1 102
R0 R1 100 load R0, M[500]
10
2.3. Processador Ciclos de uma Instrução
Processador
Unidade de Controle Datapath
ULA
Registradores
IR PC
Controlador
Memória
I/O
Control
/Status
10 ...
...
load R0, M[500] 500
501
100
inc R1, R0 101
store M[501], R1 102
R0 R1
PC=100
10
Fetch
ops Exec. Store
results
clk
Fetch
load R0, M[500]
Decode
100 10
2.3. Processador Ciclos de uma Instrução
Processador
Unidade de Controle Datapath
ULA
Registradores
IR PC
Controlador
Memória
I/O
Control
/Status
10 ...
...
load R0, M[500] 500
501
100
inc R1, R0 101
store M[501], R1 102
R0 R1
10
PC=100
Fetch Decode Fetch
ops Exec. Store
results
clk
PC=101
inc R1, R0
Fetch Fetch
ops
+1
11
Exec. Store
results
clk
101
Decode
2.3. Processador Ciclos de uma Instrução
Processador
Unidade de Controle Datapath
ULA
Registradores
IR PC
Controlador
Memória
I/O
Control
/Status
10 ...
...
load R0, M[500] 500
501
100
inc R1, R0 101
store M[501], R1 102
R0 R1
11 10
PC=100
Fetch Decode Fetch
ops Exec. Store
results
clk
PC=101
Fetch Decode Fetch
ops Exec. Store
results
clk
PC=102
store M[501], R1
Fetch Fetch
ops Exec.
11
Store
results
clk
Decode
102
3. Memória
maiorcapacidade de
armazenamento
maior custo evelocidadede acesso
Memória Secundária
Memória Cache
Memória Principal
Registradores
3.1. Memória Memória Principal
Nesta memória são armazenados instruções e dados.
Composta por unidades de acesso chamadas células.
Cada célula é composta por um determinado número de bits.
célula = 8 bits
en
dere
ços
0
2 -116
2
1
instrução ou dado
3.1. Memória Memória Principal
O número de células endereçadas na memória principal é limitado pelo tamanho do registrador PC.
No caso do registrador possuir n bits – 2n
A memória principal pode ser classificada em função de sua volatilidade:
RAM (Random Access Memória): voláteis.
ROM (Read-Only Memória): não voláteis.
EPROM (Erasable Programmable ROM): não voláteis.
ROM - PROM D23128C numa placa de ZX Spectrum
EPROM - BIOS chip
RAM - 2GB DDR2 667MHz
3. Memória
maiorcapacidade de
armazenamento
maior custo evelocidadede acesso
Memória Secundária
Memória Cache
Memória Principal
Registradores
3.2. Memória Memória cache
O propósito do uso da memória cache é:
Minimizar a dissiparidade entre a velocidade de execução de instruções pelo processador e a velocidade de leitura e gravação de dados na memória principal.
A capacidade de armazenamento das memórias cache é limitada em função do seu alto custo.
A memória cache é uma memória volátil de alta velocidade. Pequena capacidade de armazenamento. Tempo de acesso é muito menor que na
memória principal.
3.2. Memória Memória cache
A memória cache armazena uma pequena parte do conteúdo da memória principal.
Toda vez que o processador faz referência a um dado armazenado em memória, é verificado, primeiramente se o mesmo encontra-se na memória cache.
Cache hit: Caso o processador encontre o dado, não há necessidade de acesso à memória principal, diminuindo assim o tempo de acesso.
Cache miss: Se a informação desejada não estiver na cache, o acesso a memória principal é obrigatório. Neste caso, o processador, a partir do dado referenciado, transfere um bloco de dados da memória principal para a cache.
3.2. Memória Memória cache
Existe um tempo adicional para a transferência de dados entre memórias quando ocorre o cache miss.
Contudo, existe um alto percentual de referências a endereços que são resolvidos posteriormente na cache devido ao princípio da localidade.
Princípio da localidade: tendência do processador referenciar instruções e dados na memoria principal localizados em endereços próximos.
Justificada pela alta incidêndia de sub rotinas (estruturas de repetição) e estruturas de dados (como arrays).
Após a transferência de um novo bloco da memória principal para a memória cache, haverá uma alta probabilidade de cache hits em futuras referências, otimizando, assim, o tempo de acesso ao dado.
3.2. Memória Memória cache
A maioria dos processadores apresenta uma arquitetura de memória cache com múltiplos níveis.
O funcionamento desta arquitetura tem como base o princípio de que quanto menor é a capacidade de armazenamento da memória cache, mais rápido é o acesso ao dado;
Contudo, a probabilidade da ocorrência de cache hits é menor.
A hierarquização da cache em múltiplos níveis é uma solução para aumentar o desempenho no funcionamento das memórias caches.
Hierarquia em dois níveis: • O nível mais alto é chamado L1 (Level 1), com
baixa capacidade e com altíssima velocidade de acesso.
• O segundo nível, L2 (Level 2), possui maior capacidade de armazenamento, porém com velocidade de acesso inferior ao L1.
• Quando a UCP necessita acessar um dado armazenado na memória principal, primeiramente é verificado se o dado encontra-se na cache L1. Caso não seja encontrado, a busca prossegue para L2. E assim por diante.
3. Memória
maiorcapacidade de
armazenamento
maior custo evelocidadede acesso
Memória Secundária
Memória Cache
Memória Principal
Registradores
3.3. Memória Memória Secundária
A memória secundária é um meio não volátil de armazenamento de programas e dados.
O acesso à memória secundária é lento, se comparado com o acesso à memória principal.
• O acesso à memória secundária é da ordem de milissegundos, já o acesso à memória principal é de nanossegundos.
Entretanto, o seu custo é baixo e sua capacidade de armazenamento é bem superior.
Exemplos de memória secundárias:
• Fita magnética, disco magnético e o disco óptico.
4. Dispositivos de E/S
MemóriaPrincipal
Dispositivosde E/ S
Processador / UCP
Unidade Lógicae Aritmética
Registradores
Unidade deControle
4. Dispositivos de E/S
Os dispositivos de entrada e saída (E/S) permitem a comunicação com o mundo externo e podem ser divididos em duas categorias:
1. Os que são utilizados como memória secundária; e
2. Os que servem para a interface usuário-máquina.
1) Os dispositivos utilizados como memória secundária podem ser:
Discos magnéticos, fitas magnéticas, discos óticos etc.
2) Os dispositivos que servem para a interface usuário-máquina têm como objetivo principal facilitar o uso do computador e podem ser:
Scanner, caneta ótica, plotter, mouse, impressora são alguns exemplos desses dispositivos.
5. Barramento
O barramento ou bus é um meio de comunicação compartilhado que permite a comunicação entre as unidades funcionais:
• Processador, memória principal e dispositivos de entrada e saída.
Um barramento possui três tipos de linhas de tráfego de informação.
• Linhas de controle: trafegam informações de sinalização como, por exemplo, o tipo de operação que está sendo realizada.
• Linhas de dados: trafegam informações como instruções e operandos.
• Linhas de endereços: trafegam endereços.
5. Barramento
Barramento processador-memória
Barr
am
ento
de E
/S
Barr
am
ento
de E
/S
Adaptador Adaptador
MemóriaPrincipal
UCP
Adaptador
Barr
am
ento
de b
ack
pla
ne
Na conexão dos barramentos existe um adaptador (bus adapter) que permite compatibilizar as diferentes velocidades dos barramentos.
O barramento de backplane integra os outros dois tipos de barramento.
6. Pipelining
Pipelining é a técnica de paralelismo mais utilizada. Ela permite ao processador executar múltiplas instruções paralelamente em estágios diferentes.
A execução completa de uma instrução pode ser dividida em duas fases:
• Busca da instrução + Execução da instrução.
Assim, o processador (ou processadores), por meio de suas várias unidades funcionais pipeline, funciona de forma a permitir que, enquanto uma instrução se encontra em fase de execução, uma outra instrução possa simultaneamente estar na fase de busca.
6. Pipelining
Quanto maior a quantidade de estágios (subtarefas), mais superposição e aumento de velocidade.
É importante, contudo, ressaltar que o tempo de duração de cada estágio deve ser o mais semelhante possível, de modo que um estágio não espere o término do outro para iniciar a execução seguinte, evitando gargalos indesejáveis.
6. Pipelining
Arquitetura Pipeline com Quatro Estágios
(decodificação) (busca) (busca operandos) (execução)
7. RISC e CISC
A linguagem de máquina é a linguagem que é realmente entendida pelo processador.
Cada fabricante define um conjunto de instruções de máquina suportadas pelo processador.
Um programa em linguagem de máquina pode ser diretamente executado pelo processador.
Não requer tradução ou relocação.
Um computador que possui uma arquitetura (incluindo conjunto de instruções) não pode executar um programa escrito em linguagem de máquina diferente da sua arquitetura.
7. RISC e CISC
Um processador de arquitetura RISC (Reduced Instruction Set Computer) se caracteriza por poucas instruções de máquina, em geral bastante simples, que são executadas diretamente pelo hardware.
Na sua maioria, essas instruções não acessam à memória principal, trabalhando principalmente com registradores.
UltraSPARC – Exemplo de processador RISC
Neste tipo de arquitetura, a implementação do pipelining é fácil.
Exemplos: UltraSPARC (Scalable Processador Architecture)
da Sun RS-6000 (RISC System) da IBM.
7. RISC e CISC
Os processadores com arquitetura CISC (Complex Instruction Set Computer) já possuem instruções complexas que são interpretadas por microprogramas.
O código executável de um processador CISC é interpretado por microprogramas (em memória ROM) durante sua execução, gerando microinstruções, que, finalmente, são executadas pelo hardware.
O número de registradores é pequeno, e qualquer instrução pode referenciar a memória principal.
Neste tipo de arquitetura, a implementação do pipelining é difícil.
Exemplos: VAX (DEC) e Pentium (Intel).
7. RISC e CISC
Utiltários
Circuitos Eletrônicos
Microprogramação
Linguagem de Máquina
Arq
uitetu
raRIS
C
Sistema Operacional
Aplicativos