memória - Computação UFCG

Propaganda
Profs.:
Joseluce de Farias Cunha
Roberto Medeiros de Faria
Ulrich Schiel
Carga Horária:
60 h
O COMPUTADOR E SUAS UTILIDADES
• Substitução de tarefas repetitivas
• Tarefas altamente complexas (cálculos
científicos e de engenharia)
• Processos de tomada de decisão
• Informática no Ensino
• Projetos de Engenharia e Arquitetura (CAD)
• Robótica
• Análises estatísticas
• Comunicação local e a distância - Internet
• Substituição do papel
• Interatividade (redes sociais, e-mail, vídeo,
música)
História:
• Ábaco
• Blaise Pascal (1623-1667) – Pascaline:
máquina de somar e subtrair
História:
Charles Babbage
(1792-1871) –
Calculador analítico:
uso de cartões
perfurados e
registradores.
Impressora.
Herman Hollerith
(1860-1929): Uso de
cartões perfurados.
Censo de 1890.
Empresa: IBM.
História:
Konrad Zuse: computador eletro-mecânico
(Z1) – primeira máquina programável.
- Aiken – MARC I. 120m2.
- ENIAC - 18 mil válvulas e 1.500 relés, pesava 30
toneladas e consumia 140 quilowatts de
energia.
História:
- John von Neumann – arquitetura do
computador ~ cérebro humano
Computador e Computação
• O Hardware
• O Software
7

Computador
 Máquina eletrônica capaz de realizar uma grande
variedade de tarefas com rapidez e precisão
 Computadores processam dados a partir de conjuntos
de instruções denominadas programas
 Um programa é um conjunto especificado/pré-
determinado de operações lógicas/aritméticas e
fornecer o resultado destas operações
8

Os computadores executam quatro tipos de
operações
 Entrada
(Input)
 Processamento
 Saída
(Processing)
(Output)
 Armazenamento
(Storage)
Ciclo IPOS
9

Ciclo IPOS
Entrada
Processamento
Saída
Armazenamento
10

Sistema de Computação
 Integração
de componentes atuando como uma
entidade, com o propósito de processar dados,
para a produzir informações
11

Componentes de um Sistema Computacional
Peopleware
Hardware
Software
12

Componentes de um Sistema Computacional
 Peopleware
Componente humana de um sistema de
computação, i.e.
 programadores e
 usuários

13

Componentes de um Sistema Computacional
 Hardware

Componentes físicas de um sistema de
computação, i.e. todos os equipamentos
utilizados como teclado, mouse, Unidade
Central de Processamento, Unidade de
disco, Impressora, etc.
14

Componentes de um Sistema Computacional
 Software

Componente lógica de um sistema de
computação, i.e. séries de instruções que
fazem o computador funcionar
programas do usuário e
 programas básicos)
15
Unidade Central de Processamento
Dispositivos
de Entrada
Unidade
de Controle
ULA
Dispositivos
de Saída
Memória Principal
Memórias
Secundárias
16
Partes funcionais de um computador digital:
 Unidade de Entrada

Obtenção da informação a partir de dispositivos de entrada
(e.g. teclado, mouse, entrada de áudio, microfone)
 Unidade de Saída

Apresenta a informação em dispositivos de saída (e.g.
monitor, impressora, CD/DVD, áudio)
 Unidade de Memória Secundária
 Armazenamento barato, de alta capacidade e longa
duração
 Armazenamento de programas inativos
17
 Unidade Central de Processamento – UCP (Central Processing
unit - CPU)

Supervisão e coordenação das demais unidades que
compõem o computado


Unidade de Contrôle
Unidade Aritmético-Lógica
 Unidade de Memória Principal (Primária)

Acesso rápido, de baixa capacidade e armazenamento da
informação obtida pelos dispositivos de entrada
18



Conjunto complexo de circuitos
eletrônicos.
Executa instruções de programa
armazenadas.
Duas partes:



Unidade de Controle
Unidade Lógica e Aritmética
(ULA)
Memória Central
19
Direciona o sistema do computador a executar
instruções de programa armazenadas.
 Deve comunicar-se com a memória e com a
ULA.
 Envia dados e instruções do armazenamento
secundário para a memória, quando
necessário.

20
Executa todas as operações aritméticas e
lógicas.
 Operações aritméticas:



Adição, subtração, multiplicação, divisão.
Operações lógicas:


Compara números, letras ou caracteres especiais.
Testa uma de três condições:
Condição de igualdade (igual a)
 Condição menor que
 Condição maior que

21

Dois tipos de armazenamento:
 Armazenamento
primário (memória):
 Armazena
informações temporariamente.
 A CPU referencia-o tanto para obtenção de instruções
de programa como de dados.
 Armazenamento
secundário:
 Armazenamento
de longo prazo.
 Armazenado em mídia externa; por exemplo, um
disco.
22

A CPU não pode processar dados diretamente do disco ou
de um dispositivo de entrada:



Primeiramente, eles devem residir na memória.
A unidade de controle obtém dados do disco e transfere-os para a
memória.
Dados e instruções permanecem na memória até serem
enviados a um dispositivo de saída ou armazenamento, ou
o programa ser fechado.
23


Registradores
Memória central
24

Campos de armazenamento temporário de
alta velocidade.
 Localizações
de armazenamento situadas dentro
da CPU.

Funcionam sob direção da unidade de controle:


Recebem, guardam e transferem Instruções ou dados.
Controlam onde a próxima instrução a ser executada ou os
dados necessários serão armazenados.
25

Também conhecida como memória primária,
memória principal ou memória central.


memória de acesso aleatório (RAM).
Não faz parte da CPU.
Retém dados e instruções para serem
processados.
 Armazena informações somente enquanto o
programa está em operação.

26
Quatro etapas são executadas para cada
instrução:



Ciclo de máquina: a quantidade de tempo necessária
para executar uma instrução.
Computadores pessoais executam-nas em menos de
um bilionésimo de segundo.
Supercomputadores executam-nas em menos de um
trilionésimo de segundo.
Cada CPU tem seu próprio conjunto de
instruções:

Aquelas instruções as quais a CPU pode entender e
executar.
27
1.
2.
3.
4.

Captar.
Decodificar
Executar
Armazenar
O clock de sistema
sincroniza as operações.
28
Também chamado de I-time.
1. A unidade de controle recebe a instrução
da memória e a coloca em um registro.
2. A unidade de controle decodifica a
instrução e determina qual é a localização
na memória para os dados necessários.

29
1.
A unidade de controle transfere dados da
memória para registros na ULA.
1.
2.
A ULA executa instruções relativas aos dados.
A unidade de controle armazena o
resultado da operação na memória ou em
um registro.
30
1.
EXEMPLO
CHA R1 (carrega a entrada no registrador R1)
CHA 2
(carrega a entrada no endereço 2)
SUM 2 (soma o valor no endereço 2 ao registrador)
PRT R1 (Imprime o conteúdo do registrador R1)
31

Cada localização de memória tem um
endereço:


Pode conter somente uma instrução
ou peça de dados:


Um número único, como em uma
caixa postal.
Quando dados são reescritos na
memória, o conteúdo anterior desse
endereço é destruído.
Referenciado pelo número:

As linguagens de programação usam
um endereço simbólico (nomeado), tal
como Horas ou Salário.
32
Os computadores entendem
duas coisas: ligado e
desligado.
 Dados são representados na
forma binária:



Sistema numérico binário (base 2).
Contém somente 2 dígitos: 0 e 1.

Corresponde a dois estados:
ligado e desligado.
33



Bit
Byte
Palavra (32 bits ou 64 bits)
(~átomo)
(~molécula)
(~célula)
34

Abreviação de binary digit (dígito binário).
 Dois
valores possíveis: 0 e 1.
 Nunca pode estar vazio.

Unidade básica para armazenar dados:
0
significa desligado; 1 significa ligado.
35

Um grupo de 8 bits.
 Cada

Para texto, armazena um caractere:
 Pode

byte tem 256 (28) valores possíveis.
ser letra, dígito ou caractere especial.
Dispositivos de memória e armazenamento
são medidos em número de bytes.
36

O número de bits que a CPU processa como
uma unidade.
 Tipicamente,
um número inteiro de bytes.
 Quanto maior a palavra, mais potente é o
computador.
 Computadores pessoais tipicamente têm 32 ou 64
bits de extensão de palavras.
37

Kilobyte: 1024 (210) bytes.


Megabyte: aproximadamente, um milhão (220) de bytes.



Memória de computadores pessoais antigos.
Dispositivos de armazenamento portáteis (disquetes, CD-ROMs).
Gigabyte: aproximadamente, um bilhão (230) de bytes.



Capacidade de memória dos computadores pessoais mais antigos.
Dispositivos de armazenamento (discos rígidos).
Capacidade de memória de computadores pessoais, mainframes e
servidores de rede atuais.
Terabyte: aproximadamente, um trilhão (240) de bytes.

Dispositivos de armazenamento para sistemas muito grandes ou
discos rígidos de armazenamento externo.
38

Provêem uma maneira comum para
representar um caractere de dados.
 Necessários
para os computadores poderem
intercambiar dados.

Esquemas comuns:
 ASCII
 EBCDIC
 Unicode
39
Sigla de American Standard Code for
Information Interchange.
 O padrão mais amplamente usado.
 Usado virtualmente em todos os computadores
pessoais.
 Exemplos: ASCII(048) = 0, ASCII(065) = A

 ASCII(135)
=ç
 ASCII(146) = Æ
 ASCII(185) = ╣
40
041=)*+,-./012
051=3456789:;<
061==>?@ABCDEF
071=GHIJKLMNOP
EXEMPLO:
Alt135 = ç
081=QRSTUVWXYZ
091=[\]^_`abcd
101=efghijklmn
111=opqrstuvwx
121=yz{|}~⌂Çüé
131=âäàåçêëèïî
141=ìÄÅÉæÆôöòû
151=ùÿÖÜø£Ø׃á
41

Sigla de Extended Binary Coded Decimal
Interchange Code.
 Usado
principalmente em mainframes IBM
compatíveis com IBM.
e
42
Projetado para acomodar alfabetos com mais
de 256 caracteres.
 Usa 16 bits para representar um caractere.

 65.536

valores possíveis.
Exige duas vezes mais espaço para armazenar
dados.
43

Abriga os componentes eletrônicos do sistema
de computador:
 Placa-mãe
(motherboard)
 Dispositivos de armazenamento
44

Placa de circuitos plana
que contém os circuitos
do computador.

A unidade central de
processamento
(microprocessador) é o
componente mais importante.
45
Memória central (armazenamento temporário)
 Memórias secundárias (Armazenamento de
longo prazo ).

 Dados
não se perdem quando o computador é
desligado.
 discos rígidos (HD), disquetes, DVD-ROMs.
46
Unidade central de
processamento impressa
em chip de silício.
 Contém dezenas de milhões
de minúsculos transistores.
 Componentes-chave:




Unidade central de processamento.
Registradores.
Clock do sistema.
47

Comutadores eletrônicos que podem permitir
ou não a passagem de corrente elétrica.
 Se
a corrente elétrica passar, o comutador estará
ativado, representando um bit 1.
 Caso contrário, o comutador estará desativado,
representando um bit 0.
48

A Intel produz uma família de processadores:




Processadores Pentium 4, Pentium Dual Core, Core 2 Duo, i3
e i5, na maioria dos PCs.
Processador Celeron e Atom vendidos para PCs de baixo
custo.
Opteron, Xeon, Itanium, Core 2 Extreme, Core 2 Quad e i7,
para estações de trabalho high-end e servidores de rede.
Outros processadores:



A Cyrix e a AMD produzem microprocessadores compatíveis
com Intel.
Chips PowerPC são usados principalmente em computadores
Macintosh.
O microprocessador Alpha, da Compaq, é usado em
servidores high-end.
49
RAM e ROM
 Tecnologias:

 Memória
semicondutora
 Memória Flash
50

Usada pela maioria dos computadores
modernos:


Confiável, barata e compacta.
Volátil: exige corrente elétrica contínua.


Se a corrente for interrompida, os dados se perdem.
Semicondutor Complementar de Óxido de Metal –
Complementary Metal Oxide Semiconductor (CMOS).
Retém informação quando a energia é desligada.
 Usado para armazenar informações necessárias quando o
computador é inicializado.

51
Memória Flash
• um chip re-escrevível que, ao contrário de uma memória RAM
convencional, preserva o seu conteúdo sem a necessidade de fonte de
alimentação

Os chips de memória flash assemelham-se aos cartões de crédito.

Menores do que uma unidade de disco e requerem menos energia.
52
Memória de Acesso Aleatório – RandomAccess Memory (RAM)
 Memória Somente de Leitura – Read-Only
Memory (ROM)

53

Dados temporários que podem ser
acessados aleatoriamente:

O endereço de memória 10 pode ser acessado
tão rapidamente quanto o endereço de memória
10.000.000.
54
 Contém
programas e dados registrados
permanentemente na memória pela
fábrica.
 Não
pode ser alterada pelo usuário.
 Não-volátil: o conteúdo não desaparecerá
quando houver queda de energia.
55
Percursos elétricos paralelos que
transportam dados entre a CPU e a
memória.
 Largura de barramento:

O
número de percursos elétricos para
transportar dados.
 Medida em bits.

Velocidade de barramento:
 Medida
em megahertz (MHz).
56
Tipicamente, a mesma largura do tamanho
de palavra da CPU.
 Com um tamanho de barramento maior,
a CPU pode:




Transferir mais dados simultaneamente:
 Torna o computador mais rápido.
Referenciar números de endereço de memória maiores:
 Permite mais memória.
Suportar um número e uma variedade maiores de
instruções.
57
Quanto maior a velocidade de barramento,
mais rapidamente os dados viajarão por meio
do sistema.
 Computadores pessoais têm velocidades de
barramento de 400 MHz, 533 MHz, 800 MHz
ou 1066 MHz.

58
 Adiciona
dispositivos periféricos ao
sistema:
 Placa
de expansão
 Porta
59

Conectam-se a slots
(encaixes) de
expansão ou à
placa-mãe.

São usadas para
conectar dispositivos
periféricos.
60
Conectores externos para plugar periféricos,
como, por exemplo, impressoras.
 Três tipos de portas:


Seriais: transmitem dados à base de um bit a cada vez.


Paralelas: transmitem grupos de bits em conjunto, lado a
lado.


Usadas para dispositivos lentos, como o mouse e o teclado.
Usadas para dispositivos mais rápidos, como impressoras e
scanners.
Porta Universal Serial Bus (USB):

Permite conectar muitos dispositivos em série na porta USB.
61

As velocidades de instrução são medidas
em segundos:
 Milissegundo:
um milésimo de segundo.
 Microssegundo: um milionésimo de segundo.
 Nanossegundo: um bilionésimo de segundo.
 Computadores
 Picossegundo:
modernos atingiram essa velocidade.
um trilionésimo de segundo.
62

Medida da velocidade de clock do sistema:


Quantos pulsos eletrônicos o clock produz por segundo.
Usualmente, expressa em gigahertz (GHz).
Billhões de ciclos de máquina por segundo.
 Alguns PCs antigos mediam em megahertz (MHz).


Uma comparação de velocidades de clock
somente é significativa entre
microprocessadores idênticos.
63

MIPS – Um Milhão de Instruções por
Segundo.
 Computadores
pessoais de alta velocidade
podem executar mais de 500 MIPS.
 Tipicamente, uma medida de desempenho mais
acurada do que a velocidade de clock.

Megaflop – um milhão de operações em
ponto flutuante por segundo.
 Mede
a capacidade do computador para
executar operações matemáticas complexas.
64
 Uma
área de armazenamento temporário:
 Agiliza
a transferência de dados dentro do
computador.
 Memória
cache
 Cache de processador
© 2004 by Pearson Education
65

Um pequeno bloco de memória de alta velocidade:


Armazena os dados e as instruções usados com mais
freqüência e mais recentemente.
O microprocessador procura primeiramente na
memória cache os dados de que necessita:


Transferidos da cache muito mais rapidamente do que da
memória.
Se não estiverem na cache, a unidade de controle
recupera-os da memória.

Quanto mais “presença de dados” na cache, mais rápido é o
desempenho do sistema.
66

Cache interna (Nível 1) embutida no
microprocessador.


Acesso mais rápido, porém custo mais elevado.
Cache externa (Nível 2) em um chip
separado.

Incorporada ao processador e alguns
microprocessadores atuais.
67






Que usa múltiplos processadores simultaneamente
O processador de controle divide o problema em
partes:
Cada parte é enviada a um processador distinto.
Cada processador tem sua própria memória.
O processador de controle monta os resultados.
Alguns computadores que usam processamento
paralelo operam em termos de teraflops: trilhões de
instruções com ponto flutuante por segundo.
68
É
um conjunto de programas
 Um programa são instruções eletrônicas
que informam ao computador como
realizar determinadas tarefas
 Existem duas classes de software:
Software Básico
Software Aplicativo
69
O
software básico tem como finalidade
possibilitar a operação e o uso do
computador, seja qual for a aplicação (o
foco está na máquina) – o software
básico se concentra na necessidades
gerais de grande parte dos usuários
70
TIPOS:
 sistemas
operacionais,
 compiladores,
 Utilitários:
 Office
 Comunicação
 Compactação
 SGBD,
 Tocadores
etc.
e editores de áudio, vídeo,
71
 solução
de um problema específico,
utilizando o computador como
ferramenta (o foco está na aplicação)
 Exemplos:
 Folha
de pagamento
 Controle de vendas
 Venda de passagens
 Sistema de biblioteca
72
 Customizado
 Aplicações
originais desenvolvidas por
analistas e programadores
 Pronto
 Free
(Domínio público, código aberto,..)
 Shareware
73
Linguagens de Programação
 Linguagens


de baixo nível
Primeira geração: Linguagem de máquina
Segunda geração: Linguagem de montagem (Assembler)
 Linguagens
de alto nível
 Terceira
geração: Linguagens procedurais
 Quarta geração: Linguagens aplicativas
74
Linguagens de Programação
 Linguagens
de baixo nível
1ª geração: (exemplo – n-ésimo número de Fibonacci)
8B542408
83FA0077
06B80000
0000C383
FA027706
B8010000
00C353BB
01000000
B9010000
008D0419
83FA0376
078BD98B
C84AEBF1
5BC3
75
Linguagens de Programação
Linguagem x86 MASM:
 Linguagens
de
baixo nível
2ª geração:
ESTRUTURA GERAL:
[<endereço>]: <instrução>
<argumento(s)>
fib: mov edx, [esp+8]
cmp edx, 0
ja @f
mov eax, 0
ret
@@: cmp edx, 2
ja @f
mov eax, 1
ret @@: push ebx
mov ebx, 1
mov ecx, 1
@@: lea eax, [ebx+ecx]
cmp edx, 3
jbe @f
mov ebx, ecx
mov ecx, eax
dec edx
jmp @b @@: pop ebx
ret
76
Linguagens de Programação
Linguagens
de alto nível
unsigned int fib(unsigned int n)
{ if (n <= 0) return 0;
else if (n <= 2) return 1;
else {
int a,b,c;
a = 1; b = 1;
while (true)
{ c = a + b;
if (n <= 3) return c;
a = b;
b = c;
n--; }
}
}
}
77
 Sistemas
Cliente/Servidor
 Redes locais (LAN)
 Redes a distância (WAN)
 Redes de redes (Internet)
78
 Mídias
 Com
de Comunicação
fio
 Cabos
coaxiais
 Fibra ótica
 Sem
fio
 Micro-ondas
/ Satélite
 Semfio – IrDA, Bluetooth
79
 Padrões
de comunicação
Protocolo TCP/IP (transporte/rede)
HTTP: HyperText Transfer Protocol
(aplicação)
 Topologia da Rede:
Estrela
Anel
Barramento
80
 Topologias
da Rede:
Estrela
Anel
Barramento
81
 Aplicações
 Aplicações
distribuídas
 Correio eletrônico (e-mail)
 FAX e FTP
 Teleconferência
 A Internet e a Web

82
É uma rede de redes mundial
 Web
(é um sistema de hiper-documentos e
serviços interligados na Internet)
 HTTP: Protocolo de comunicação na Web
 URL: Endereço de um membro da Internet
 http://www.dsc.ufcg.edu.br/~icc
 (protocolo://nome
do computador/end local
83
Navegadores
 Mozilla-Firefox; Chrome; Explorer
 Mecanismo de busca na WEB

 Um
Banco de Dados de todos endereços da
Web indexados por palavras-chave
 Google, Yahoo, Bing, ..
84
 Aplicações
 Procura
por assuntos
 Comércio eletrônico
 Pagamentos
 Serviços Bancários
 Portais e home-pages
 Blogs e redes sociais
 Notícias
85
ned int fib(unsigned int n) { if (n <= 0) return 0; else if (n <= 2) return 1; else { int a,b,c; a = 1; b = 1; while (true) { c = a + b; if (n <= 3) return c; a = b; b = c; n--; } } }
EXERCÍCIO
1. Dado a linguagem:
LER n (coloca a entrada no endereço n)
LER R (coloca a entrada no registrador R)
SUB n (subtrai o conteúdo de n de R e coloca o
resultado em R)
SENEG end se o registrador for negativo, ir para end)
ESCREV “texto” (escreve o que está em texto)
FIM
(encerra o programa)
Faça um programa que lê dois números, calcula a
diferença e escreve “negativo” ou “positivo” dependendo do
resultado
2. Desenhe uma rede de 7 computadores interligados em
forma de anel. Suponha que dois deles quebraram, mostre quais
dos restantes ainda podem comunicar entre si.
86
Download