Transcript Memória
Arquitetura Básica
Hardware
Hardware é a parte física do computador, ou seja, é o
conjunto de componentes eletrônicos, circuitos integrados e
placas, que se comunicam através de barramentos.
Exemplo: placa de som, vídeo, modem, placa de rede, placamãe, processador, etc.
2
Hardware
Periféricos
Os dispositivos de entrada e saída (E/S) ou input/output (I /O)
- periféricos: permitem a interação do processador com o
homem, possibilitando a entrada e/ou a saída de dados.
Dispositivos de entrada: codificam a informação que entra no
sistema para que possam ser processados pelo sistema digital
do computador.
Teclado, mouse, scanner, microfone, webcam, leitora de
código de barras...
3
Hardware
Dispositivos de saída: decodificam os dados em informação
que pode ser entendida pelo usuário.
Monitor, caixa de som, impressora...
Há dispositivos que funcionam tanto para entrada como para
saída de dados.
Modem, placa de rede, pendrive...
4
Esquema básico do hardware
Processamento e Controle
Unidade
de
Entrada
Armazenamento
Secundário (Memória
Auxiliar)
5
Unidade
de
Saída
Gabinete
Armazena:
- a placa-mãe,
- o disco rígido (HD),
- as diversas placas de extensão,
- a fonte de alimentação de energia elétrica, ...
6
Placa mãe
Motherboard
Placa interna que faz a conexão de uma grande quantidade de
componentes entre si, o processador e a memória.
Possui slots (encaixes) de expansão onde são encaixadas placas
de controle de dispositivos, tipo placa de vídeo, de som,
modem, etc.
Existem também placas-mãe com característica on-board, isto é,
na própria placa-mãe já estão controladores de dispositivos
tipo placa de som, modem, etc.
7
CPU
CPU: é o chip principal de interpretação de comandos de
um computador; processa as instruções, executa os
cálculos, gerencia o fluxo de informações pelo
computador, toma decisões de acordo com as instruções
armazenadas na memória.
Busca e executa as instruções existentes na memória - os
programas e os dados que ficam gravados no disco (HD ou
disquete) são transferidos para a memória. Uma vez
estando na memória a CPU pode executar os programas e
processar os dados.
8
“Cérebro” do
Computador
Realiza as operações
lógicas e aritméticas
CPU
Comanda as outras
unidades
Unidade de
Entrada
ULA
UC
Unidade de
Saída
Memória
Principal
Memória
Auxiliar
9
Armazena dados e
programas necessários
para a realização de um
trabalho
CPU: UC e ULA
Um programa se caracteriza por uma série de instruções
que o computador deve executar. Essas instruções, bem como
os dados necessários, são encaminhados a memória principal.
Para a UC (Unidade de controle) são trazidas, uma a uma,
essas instruções e, então, em relação a cada uma delas é feita
uma análise.
Depois da análise se for o caso de utilização de dados, esses
são buscados também na memória.
E a instrução é processada na ULA.
10
CPU
Unidade de Controle (UC)
Determina a execução e interpretação das instruções e
controla o fluxo de dados.
Coordena todas as atividades do computador.
Contém as instruções (lista de operações) da CPU para
executar comandos.
11
CPU
A UC contém as instruções da CPU para executar comandos;
O conj. de instruções embutidos nos circuitos da UC, é uma lista de
todas as operações que a CPU é capaz de executar;
A UC controla:
a E/S (entrada (input) e saída (output) I/O de informação;
executa operações;
comanda o funcionamento da ULA;
Informa as demais unidades o que fazer e quando fazer.
A UC assume toda a tarefa de controle das ações a serem realizadas pelo
computador, comandando todos os demais componentes de sua
arquitetura. É a UC que deve garantir a correta execução dos programas e
a utilização dos dados corretos nas operações que as manipulam.
12
CPU
Unidade Aritmética e Lógica (ULA)
A ULA executa operações lógicas e aritméticas requeridas
pelos programas - é a calculadora do Microprocessador.
Recebe os dados da memória para processá-los quando uma
instrução aritmética ou lógica é executada.
Quando a UC encontra uma instrução que envolve operações
aritméticas (+,-,*, /) ou lógicas (and,or not), ela passa o
controle para a ULA, que faz a operação aritmética ou lógica
sobre os dados e devolve para a UC.
13
Clock
A velocidade com que o microprocessador realiza suas
atividades internas é determinada por um relógio (clock).
O relógio gera pulsos a intervalos regulares de tempo.
A cada pulso, uma ou mais operações são realizadas.
No computador tudo tem que funcionar de maneira
sincronizada, para tal é gerado um pulso de clock, a fim de
sincronizar o funcionamento de todos os dispositivos que
realizam uma operação. A partir desse pulso, os dispositivos,
param e continuam o que estiverem fazendo no próximo ciclo.
15
Barramento
É uma via de comunicação existente na placa mãe, através da qual o
microprocessador transmite e recebe dados de outros circuitos.
Sua função é a interconexão entre componentes
Barramento de controle
diz se a operação é de leitura ou de
escrita
Processador
Barramento
de dados
por onde circulam os dados
Barramento de endereços
por onde o endereço a ser
acessado é fornecido
Memória
RAM
Barramento
É um grupo de linhas paralelas, cujo nº afeta a velocidade com a qual
os dados viajam de um componente a outro do hardware.
Como cada fio (linha metálica impressa na placa-mãe) transfere apenas
1 bit de cada vez; um barramento de 32 bits transfere 4 bytes por
vez; de 64 bits transfere 8 bytes e assim por diante.
Barramento – capacidade de transferência (medido em bits)
Quando dizemos que o Pentium tem um barramento de dados de 64
bits, significa que o acesso a memória será feito a 64 bits por vez.
Memória
Programadores sempre ambicionaram ter quantidades ilimitadas de
memória rápida.
Memórias rápidas são de alto custo e, normalmente, de pequena
capacidade também.
Solução: organização do sistema de memória em uma hierarquia,
com diversos níveis, onde memórias cada vez mais rápidas, menores
e com um custo por byte maior, são colocadas nos níveis mais altos.
Objetivo: fornecer um sistema de memória com um custo próximo
daquele do nível mais baixo da hierarquia, e velocidade próxima
daquela do nível mais alto.
Os níveis de hierarquia mais altos normalmente são um
subconjunto dos níveis mais baixos. À medida que a informação vai
sendo utilizada, ela vai sendo copiada para os níveis mais altos da
hierarquia de memória.
18
Menor Capacidade
Maior Custo
Mais Veloz
Registradores
Cache
Memória Principal
Memória Secundária
Maior Capacidade
Menor Custo
19
Menos Veloz
Tipo
Capacidade
Velocidade
Custo
Localização
Volatilidade
Registrador
Bytes
muito alta
muito alto
UCP
Volátil
Memória
Cache
Kbytes
alta
alto
UCP/placa
Volátil
Memória
Principal
Mbytes
média
médio
Placa
Volátil
Gbytes
baixa
baixo
Externa
Não Volátil
20
Registradores
21
Os registradores estão localizados no núcleo do processador.
São caracterizados por um tempo de acesso menor que um
ciclo de relógio e sua capacidade é da ordem de centenas de
bytes.
É o único nível da hierarquia que permite movimentações iguais
apenas ao tamanho da informação desejada.
Memória Cache
Processador
Cache
Memória Principal
Memória Cache: Elemento de memória intermediário entre o
Processador e a Memória Principal
22
Memória Cache
Memória de acesso muito rápido e pouca área de
armazenagem.
Agilizam o processamento.
Localizada entre o processador e a memória principal.
23
Memória Cache
O processador inicia a busca a instrução ou dados na memória
cache.
Se os dados ou a instrução estiverem na cache (denomina-se
acerto), a informação é transferida para o processador.
Se os dados ou a instrução não estiverem na memória cache
(chama-se falha), então o processador aguarda, enquanto a
instrução/dados desejados são transferidos da memória
principal para a cache e também para o processador.
Caso haja acerto, a informação armazenada na memória cache
é fornecida para o processador, evitando a ida à memória
principal.
As células de memória da cache são elaboradas com
tecnologia que permite um tempo de acesso menor que o
memória principal.
24
Memória Principal
A memória é um conjunto de circuitos onde o
microprocessador realiza dois tipos de operações: leitura
e escrita.
Sua principal finalidade é armazenar dados e instruções.
A memória pode ser considerada como a “mesa de
trabalho” do processador.
A memória tem um tamanho finito, especificados em
bytes (Kb, Mb, Gb, Tb).
25
Memória Principal
Memória RAM (Random Access Memory)
É a principal memória do computador.
Memória de leitura e gravação.
Memória do tipo volátil, isto é, necessita de energia
elétrica constante para manter as informações.
26
Memória Principal
Memória RAM (Random Access Memory)
27
Na memória RAM estão os dados, instruções dos
programas e sistema operacional.
Cada posição de memória possui um endereço único –
Endereçada.
A memória pode ser expandida adicionando novos
‘pentes’ de memória.
Memória Principal
Memória RAM (Random Access Memory)
Embora seja rápida, isto é, possui tempo de acesso
pequeno, e de acesso aleatório (mesmo tempo no acesso
a qualquer célula), a RAM possui a desvantagem de ser
volátil, ou seja, perde seu conteúdo quando a corrente
elétrica é interrompida.
28
Memória ROM
Memória ROM (Read Only Memory)
Memória apenas de leitura.
Memória do tipo não-volátil, isto é, não necessita de
energia elétrica constante para manter as informações.
29
Memória ROM
A memória ROM contém um conjunto de instruções de
inicialização (boot) que verificam se os periféricos
(mouse, teclado, vídeo, ...) estão funcionando
adequadamente, além de procurar pelo S.O. (Sistema
Operacional).
30
Outras Memórias
PROM (Programmable Read Only Memory = memória
programável apenas para leitura):
É um tipo de ROM que só pode ser gravada uma vez, através
de um equipamento especial.
EPROM (Erasable Programmable ROM = memória
programável e apagável apenas para leitura):
É uma ROM que pode ser apagada por raios ultravioleta e
posteriormente regravada.
EEPROM (Electrically Erasable Programmable ROM = memória
alterável eletricamente apenas para leitura):
Trata-se de uma ROM cujo conteúdo pode ser alterado
eletricamente.
31
Memória Secundária
A memória secundária é o último nível da hierarquia de
memória. É composta pelos dispositivos de armazenamento de
massa, normalmente discos rígidos, de grande capacidade e
menor custo por byte armazenado.
Os programas e arquivos são armazenados integralmente na
memória secundária, que são dispositivos de memória não
volátil.
Tipos:
Discos Magnéticos
Fitas Magnéticas
CD-ROM’s,
DVD´s,
Pen Drives, etc.
32
Memória Secundária
Dispositivos de Armazenamento de Dados
Magnéticos
Ópticos
Disquetes
Discos rígidos (HD ou winchester)
Fitas magnéticas
CD-ROM
CD-R (CD-RW)
DVD
Magneto-ópticos
34
Software
Conjunto de instruções/funções/tarefas que definem o
que o computador deve executar para chegar a um
determinado resultado;
As instruções em geral residem em um meio de
armazenamento;
Um conjunto de instruções é chamado Programa;
O software informa aos componentes físicos da máquina
o que eles devem fazer.
35
Software
Tipos de Software
Básico
Aplicativo
Sistema
Operacional
Editor de texto
Planilha Eletrônica
SGBD
Editoração Eletrônica
...
Linguagem de
programação
36
Software
Linguagens de Programação
A única verdadeira linguagem de computador é a
linguagem de máquina ou baixo nível (bits – 0 e 1)
Escrever um programa em linguagem de máquina é
difícil e suscetível e erros.
38
Software
Linguagens de Programação
Os programadores precisam de um intermediário
entre eles e a máquina, chamada linguagem de alto
nível, que é muito parecida com a linguagem natural
do ser humano.
Uma linguagem de programação é composta por
um conjunto finito e determinado de comandos
que ordenados indicam a sequência de passos a
serem executados pelo processador.
39
Software
Linguagens de Programação
Um programa de computador é uma seqüência
lógica e ordenada de comandos pré-definidos com
a finalidade de resolver uma tarefa.
Programa fonte é o programa escrito em linguagem
de alto nível.
40
Software
Linguagens de Programação
Algoritmos (pseudocódigo)
Programa Cálculo_média
algoritmo
Escreva “Digite a primeira nota”
Leia Nota1
Escreva “Digite a segunda nota”
Leia Nota2
Média = ( nota1 + nota2 ) / 2
Escreva “A média é: “
Escreva Média
Fim
41
Software
Linguagens de Programação
Linguagem BASIC
PRINT “Digite a primeira nota”
INPUT Nota1
PRINT “Digite a segunda nota”
INPUT Nota2
LET Media = ( nota1 + nota2 ) / 2
PRINT “A média é: “
PRINT Media
42
Software
Linguagens de Programação
Linguagem C
#include "stdio.h"
#include "math.h"
main(){
float nota1, nota2, media;
printf("Digite a primeira nota : ");
scanf ("%d", ¬a1);
printf("Digite a segunda nota : ");
scanf ("%d", ¬a2);
media = ( nota1 + nota2 ) / 2;
printf("A media e: %f", media );
}
43
Software
Linguagens de Programação
Linguagens Interpretadas
As linguagens interpretadas executam o programa fonte
comando a comando.
Caso ocorra um erro de formulação de um comando (erro
de sintaxe), o programa será interrompido.
Ex: BASIC
44
Software
Linguagens de Programação
Linguagens Compiladas
As linguagens compiladas criam um arquivo em linguagem
de máquina (executável) a partir do código fonte.
Consiste em dois passos: compilação e linkedição.
Ex: C, C++, Pascal, Delphi
45
Software
Linguagens de Programação
Linguagens Compiladas
Compilação: análise de erros de sintaxe e criação de um
código intermediário a partir do fonte.
Linkedição: adição das bibliotecas de funções da linguagem
ao código intermediário e criação do arquivo
executável em linguagem de máquina.
46
Transformação: C - Linguagem de máquina
47
Compilador
Montador
Transforma Linguagem de alto nivel em Assembly.
Linguagem de alto nível: maior produtividade e facilidade
Transforma Assembly em linguagem de máquina.
Ligador (Linker)
Ligador (linker) “monta” os programas como um único programa.
Carregador (Loader)
48
Realiza o carregamento do programa na memória.
Código C:
do
{
j = j + 1;
i++;
} while ( A[i] >= 10 || A[i] < 0);
$19 - i
$20 - j
$21 - &A
Assembler (MIPS):
Comentário:
Loop:
addi $20,$20,1
#j=j+1
add $9,$19,$19
# $9 = 2 * i
add $9,$9,$9
# $9 = 4 * i
add $9,$9,$21
# $9 = & A[i]
lw $8,0($9)
# $8 = A[i]
addi $19,$19,1
#i=i+1
slti $9,$8,10
# $9 = $8 < 10
(1 se menor ou 0 se maior ou igual)
beq $8,$0, Loop
# goto Loop
(se 0 = loop)
slti $9,$8, 0
# $9 = $8 < 0?
(1 se menor ou 0 se maior ou igual)
bne $8,$0, Loop
# goto Loop
(se 0 = loop)
49
Memória:
End.
Instrução
mem.
op
rs
rt
op
rs
rt
op
shamt
funct
Immediate
Endereço
addi $20,$20,1
8
20
20
2004
add $9,$19,$19
0
19
19
9
0
32
2008
add $9,$9,$9
0
9
9
9
0
32
2012
add $9,$9,$21
0
9
9
21
0
32
35
9
8
0
8
19
19
1
10
8
9
10
4
8
0
2000
10
8
9
0
5
8
0
2000
2000
2016
Loop:
rd
lw $8,0($9)
2020
addi $19,$19,1
2024
slti $9,$8,10
2028
beq $8,$0, Loop
2032
2036
50
slti $9,$8, 0
bne $8,$0, Loop
1
Memória:
End.
Instrução
mem.
op
rs
rt
op
rs
rt
op
rd
shamt
funct
Immediate
Endereço
addi $20,$20,1
001000 10100
10100
2004
add $9,$19,$19
000000 10011
10011
01001
00000 100000
2008
add $9,$9,$9
000000 01001
01001
01001
00000 100000
2012
add $9,$9,$21
000000 01001
01001
10101
00000 100000
2016
lw $8,0($9)
100011 01001
01000
0000 0000 0000 0000
2020
addi $19,$19,1
001000 10011
10011
0000 0000 0000 0001
2024
slti $9,$8,10
010000 01000
01001
0000 0000 0001 0000
2028
beq $8,$0, Loop
000100 01000
00000
0000 0111 1101 0000
2032
slti $9,$8, 0
010000 01000
01001
0000 0000 0000 0000
2036
bne $8,$0, Loop
000101 01000
00000
0000 0111 1101 0000
2000
51
Loop:
0000 0000 0000 0001
Unidade Central de
Processamento
Unidade Central de Processamento
Conjunto complexo de
circuitos eletrônicos.
Executa instruções de
programa armazenadas.
Duas partes:
Unidade de controle
Unidade Aritmética e
Lógica
53
Instruções
A CPU tem seu próprio conjunto de instruções:
Ciclo de máquina: a quantidade de tempo necessária
para executar uma instrução.
56
Aquelas instruções as quais a CPU pode entender e
executar.
Computadores pessoais executam-nas em menos de um
milionésimo de segundo.
Instruções
Passos das instruções:
57
Identificar na memória a instrução corrente;
Ler os registradores envolvidos;
Executar (UAL);
Escrever dado (memória ou registrador).
Instruções
58
Instruções - Resumindo
59
O Processador
Etapas: Memória (instrução e dados)
W/R
1
32
Endereço
Memória
32
Entrada/Saída
Informação
O Processador
Etapas: Banco de Registradores
W/R
1
Reg. Leit. 1
Reg. Leit. 2
5
5
32
Banco
Registrador
5
Reg, Escrita
32
Dado 1
32
Dado 2
O Processador
Etapas: Unidade Lógica e Aritmética
ALUop
3
32
1
Dado 1
ResultadoZero
Resultado
32
Dado 2
32
O Processador
Caminho dos dados:
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
000000 01001 01010 01000 00000 100000
ALUop
L/G
3
1
5
32
9
5
8
Banco
Reg
32
Dado para
Escrita
IR
Dado 1
1
Dado 2
10
5
add $8, $9, $10
32
ResultadoZero
Resultado
32
O Processador
Caminho de dados: lw
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
000000 00100 01000 0000000000010000
ALUop
L/G
5
32
4
Banco
Reg
ResultadoZero
Dado 1
1
32
32
Memória
5
8
16
IR
1
3
1
5
$8, 16($10)
32
Extensor
de sinal
Dado para
Escrita
Endereço
32
Entrada/Saída
Informação
Monociclo x Multiciclo
Implementação monociclo:
Na implementação multiciclo:
Vários passos executados no mesmo ciclo
Cada passo num ciclo
Cada unidade funcional pode ser usada mais de uma vez por instrução
Principais vantagens do multiciclo:
65
Instruções executadas em quantidades diferentes de períodos de clock
Capacidade de compartilhar unidades funcionais.
Monociclo x Multiciclo
Execução mono e multi-ciclos
Mono-ciclo
add
lw
add
lw
beq
beq
Multi-ciclo
tempo
20ns
40ns
60ns
Pipelining
Pipeline
Fadd
Dadd
Eadd
Madd
Wadd
Flw
Dlw
Elw
Mlw
W lw
Fbeq
Dbeq
Ebeq
Mbeq
18ns
W beq
36ns
tempo
54ns
60ns