Arquitectura de Computadores
Introdução
• Evolução histórica
• Arquitectura básica de um computador
• Processo de desenvolvimento de um programa
Arquitectura de Computadores – LEIC
Prof. Renato Nunes
1
O impacto dos computadores
• O computador é um dos maiores feitos do Homem.
Tornou áreas de trabalho obsoletas, criou outras,
tornou possível coisas impossíveis.
• Mais do que a própria televisão, o computador é “a
caixa que mudou o mundo”.
• Melhoria das capacidades de comunicação e a
convergência do computador, dos telemóveis e da
televisão de alta definição permite:
– distribuição de informação multimédia;
– interacção global (internet, comunicação audio e video, TV
interactiva);
– processamento local de informação.
2
Os computadores são inteligentes?
• Um computador não tem nada de mágico nem pode
ser considerado um sistema inteligente.
• É fiável e determinístico (não se cansa nem erra) e é
muito rápido.
• Tem de ser exaustivamente programado pelo
utilizador, que tem de prever todas as situações.
• A inteligência aparente do computador é apenas a
inteligência do programador.
• Um computador limita-se a seguir cegamente as
regras que foram definidas (instruções do
programador). Não tem visão de conjunto nem sabe
o que está a fazer!
3
Motivação para a divulgação dos
computadores
• Antes dos computadores tudo era manual (mão-deobra intensiva).
• O computador permite:
– Automatizar tarefas repetitivas (sem nunca se cansar);
– Manipular grandes quantidades de informação (possui
grande capacidade de memória e de processamento);
– Executar operações com grande rapidez (milhões de vezes
mais rápido que o ser humano);
– Executar operações de forma fiável (o erro humano é muito
frequente);
– Redução de custos (o computador não recebe ordenado…).
Vantagens (ainda) das pessoas:
– inteligência, criatividade, trabalho físico especializado.
4
Primeiro objecto de cálculo
• Ábaco - desde 3000 A.C.
• Usado ainda hoje (China, por exemplo)
5
Primeiro somador mecânico
• 1642 – Blaise Pascal (filho de um cobrador de
impostos…)
• Primeiro “e vai um” automático
6
Primeira automatização
• 1801 – Joseph-Marie
Jacquard
• Máquina de tecer com
cartões perfurados
• Causou motins contra
as máquinas
substituirem as
pessoas
7
Primeira grande aplicação
• Recenseamento em
1890 nos Estados
Unidos
• Hollerith Tabulating
Company
• Deu origem à IBM em
1924
8
Primeiras aplicações de dados
• 1959
• ERMA
• Processamento
automático de dados
• Produção automatizada
de cheques
• Início do verdadeiro
impacto na sociedade e
no mercado de trabalho
9
Funcionamento de um computador
• Um computador processa informação (manipulação
simbólica) de acordo com um conjunto de regras
definidas pela sua programação
Informação
Informação
deentrada
entrada
de
Processamento
Processamento
Informação
Informação
desaída
saída
de
10
Algoritmo
• Qualquer processamento pressupõe um algoritmo
(conjunto de passos elementares para se atingir um
dado objectivo).
• O mesmo processamento pode ser implementado por
algoritmos diferentes.
• Exemplo: cálculo do perímetro de um rectângulo:
– Algoritmo 1: Somar os lados todos;
– Algoritmo 2: Somar um lado com outro diferente e depois
multiplicar a soma por dois.
• Pessoas e computadores podem usar algoritmos
diferentes para resolver o mesmo problema porque
têm capacidades específicas diferentes.
11
Componentes básicos
de um computador
Processador
Processador
Interface
Interface
comoomundo
mundo
com
Memória
Memória
deprograma
programa
de
Memória
Memória
dedados
dados
de
12
Ciclo básico do processador
Memória
1. Lê uma instrução da memória de
Memória
Processador
de programa
Processador
de programa
programa;
2. Interpreta a instrução (vê que
operação é preciso fazer);
Memória
Memória
Interface
de dados
Interface
de dados
com
o
mundo
3. Lê operandos da memória de dados;
com o mundo
4. Executa a operação;
5. Armazena o resultado na memória de
dados;
6. A memória de dados pode ser substituída pela interface com o
mundo exterior nos passos 3 ou 5 ou em ambos;
7. Volta ao passo 1 onde irá ler a instrução seguinte na memória
de programa.
A vida de um computador é muito monótona!...
13
Os computadores e as Pessoas
Processador
Processador
Interface
Interface
com o mundo
com o mundo
Memória
Memória
de programa
de programa
Memória
Memória
de dados
de dados
Manual de
procedimentos
Cérebro
Bloco de
notas
5 sentidos,
voz,
membros
14
Arquitectura de um computador
Processador
Memóriade
deprograma
programa
Memória
Unidade de
controlo
Memóriade
dedados
dados
Memória
Unidade
aritmética e
lógica
Periféricos
(entradas/saídas)
• Arquitectura de Harvard
– Memória de Programa separada da Memória de Dados
15
Arquitectura de von Neumann (1946)
• Um sistema de memória único que contém programa e
dados
Processador
Unidade
de
controlo
Unidade
aritmética
e lógica
Memória
Memória
(programa
dados)
(programa ++dados)
Periféricos
(entradas/saídas)
16
Representação de dados
• Pessoas:
– seres vivos que funcionam por processos químicos e
bioeléctricos, com valores contínuos e lógica difusa;
– Números: 10 dígitos decimais (0 a 9)
– Alfabeto: 26 letras (A a Z)
• Computadores:
– sistemas electrónicos, com base em tensões eléctricas, com
valores discretos (binários) e lógica booleana;
– Números: 2 dígitos binários (0 e 1) (cada dígito binário
designa-se por bit, 8 bits = byte)
– Alfabeto: não tem (solução: codificação das letras em
números códigos ASCII e Unicode)
17
Das pessoas até aos computadores
Pessoa
"...depositar 100 euros..."
Programador
saldo = saldo + 100;
Compilador
ADD R1, 100
Assemblador
10011011 01100100
Automático
Códigomáquina
máquina
Código
Sistema gestão bancária
Utilizador
Manual
Ideiaou
ou
Ideia
conceito
conceito
Língua
Língua
natural
natural
Linguagem
Linguagem
deprogramação
programação
de
Linguagem
Linguagem
assembly
assembly
Computador
18
O ciclo típico de um programa
Editor
Programa em C
Compilador
Programa em assembly
debugger
Assembler
Módulo pré-compilado
(biblioteca)
Código máquina
Processador
Linker
Run (SO)
Memória
Loader (SO)
Programa executável
19
Ciclo de desenvolvimento de um
programa para o P3
Editor
Programa em assembly
P3AS
Assembler
Código máquina
(programa executável)
P3SIM
debugger
Processador
Run
Memória
Loader
20
Estrutura básica de um
computador
Periférico
Periférico22
Bus de controlo
Periférico
Periférico11
Unidadede
de
Unidade
dados
dados
Bus de endereços
Interface
Interfacede
de
memória
memória
Unidade de
controlo
Memória
Memória
Processador
Processador
Bus de dados
21
E o que é um barramento?
Unidade de
Unidade
de
dados
dados
Periférico 2
Periférico 2
Bus de controlo
Memória
Memória
Bus de endereços
Interface de
Interface de
memória
memória
Unidade de
controlo
Periférico 1
Periférico 1
Processador
Processador
Bus de dados
• Conjunto de fios que circulam em paralelo (formando
um conjunto solidário).
• Forma simples de representar um conjunto de bits
logicamente relacionados.
• Serve para transferir informação em conjuntos de bits.
• Bus ≡ barramento.
22
Interligação dos módulos
Bus de controlo
Periférico
Periférico22
Unidadede
de
Unidade
dados
dados
Bus de endereços
Memória
Memória
Periférico
Periférico11
Unidade
de
controlo
Interface
Interfacede
de
memória
memória
Processador
Processador
Bus de dados
• Todos ligam aos 3 barramentos:
– O barramento de dados transfere a informação
– O barramento de endereços especifica:
• Qual o módulo de/para onde transferir (memória, periférico 1, …)
• Qual a célula de memória/registo envolvido na transferência
– O barramento de controlo estabelece o protocolo de
transferência (quando começa, quando acaba, sentido da
transferência, etc)
23
Funcionamento básico
• O processador é o mestre e comanda tudo.
• A memória e os periféricos são escravos que só “falam”
quando o mestre lhes pergunta alguma coisa.
• A execução de um programa envolve essencialmente
as operações seguintes por parte do processador:
–
–
–
–
–
–
Ler da memória as instruções do programa;
Ler da memória os operandos das instruções;
Fazer cálculos e tomar decisões;
Armazenar na memória os resultados das instruções;
Ler dados dos periféricos;
Escrever dados nos periféricos;
… e passa a vida a fazer isto!…
24
Periféricos
Unidade de
Unidade
de
dados
dados
Memória
Memória
Periférico 1
Periférico 1
Bus de endereços
Unidade de
controlo
Bus de controlo
Bus de dados
– Porto de entrada: lê os valores
dos bits do circuito externo;
– Porto de saída: o porto memoriza
o valor da última escrita. Os bits
dessa palavra ligam ao circuito externo;
– Alguns portos podem ser programados por software para
entrada ou saída (palavra a palavra ou bit a bit).
• Um periférico pode ter vários portos.
• Há periféricos mais inteligentes: controlador de disco,
controlador de ethernet, controlador gráfico, …
25
Barramento de endereços
Unidade de
Unidade
de
dados
dados
Bus de controlo
Memória
Memória
Bus de endereços
Periférico 2
Periférico 2
– na memória
– nos periféricos
Unidade de
controlo
Interface de
Interface de
memória
memória
• Permite endereçar palavras
ou bytes individuais:
Periférico 1
Periférico 1
Processador
Processador
Bus de dados
• A sua largura em bits:
– indica o espaço de endereçamento
do processador.
Exemplos:
• 16 bits 64K;
• 32 bits 4 G;
– é independente da largura do
barramento de dados
1K = 1024 = 210
1M = 1K * 1K = 220
1G = 1M * 1K =230
1T = 1G * 1K = 240
(10 bits)
(20 bits)
(30 bits)
(40 bits)
• É unidireccional
26
Periférico 2
Periférico 2
Processador
Processador
Interface de
Interface de
memória
memória
• Comportam-se como pequenas
memórias cujos bits ligam ao
mundo exterior.
• Cada endereço designa-se por
porto:
Espaço de endereçamento
– Não pode haver duas células
diferentes no mesmo endereço!
– A memória não tem que ser
contígua.
– Cada periférico pode ter
várias células
• Nem todos os endereços têm de
ter célula válida (leitura sem
célula válida dá valor
aleatório).
Unidade de
Unidade
de
dados
dados
Periférico 2
Periférico 2
Memória
Memória
Bus de controlo
Periférico 1
Periférico 1
Bus de endereços
Interface de
Interface de
memória
memória
Unidade de
controlo
Bus de dados
Espaço de endereçamento
(com 16 bits)
• Conjunto de células
individualmente
endereçáveis pelo
processador:
Processador
Processador
Memória 2
FFFFH
Periférico 3
Periférico 2
Periférico 1
Memória 1
0000H
27
Barramento de dados
• É bidireccional
• A sua largura em bits:
Unidade de
Unidade
de
dados
dados
Bus de controlo
Periférico 2
Periférico 2
Bus de endereços
Memória
Memória
Unidade de
controlo
Periférico 1
Periférico 1
– na memória
– nos periféricos
Processador
Processador
Interface de
Interface de
memória
memória
• Permite ler e escrever dados:
Bus de dados
– é igual à largura da palavra do processador
– é geralmente uma potência de 2 ≥ 8 (8, 16, 32, 64, …)
– define a gama de valores inteiros que é possível guardar
numa só célula
• Também serve para ler as instruções da memória
• As leituras/escritas só são efectuadas depois de o
barramento de endereços ter o valor correcto.
28
Barramento de controlo
• Sinais típicos
(activos a zero):
Unidade de
Unidade
de
dados
dados
Bus de controlo
Periférico 2
Periférico 2
Bus de endereços
Memória
Memória
Unidade de
controlo
Periférico 1
Periférico 1
– à memória
– aos periféricos
Interface de
Interface de
memória
memória
• Controla o acesso:
Processador
Processador
Bus de dados
– Read (/RD)
– Write (/WR)
29
Ciclos de acesso à memória e
aos periféricos
Unidade de
Unidade
de
dados
dados
Bus de controlo
Memória
Memória
Bus de endereços
Interface de
Interface de
memória
memória
Unidade de
controlo
Periférico 2
Periférico 2
• O processador acede à
memória e aos periféricos
através dos 3 barramentos
com um protocolo bem
definido.
• Cada ciclo (de leitura ou de escrita) envolve
essencialmente:
Periférico 1
Periférico 1
Processador
Processador
Bus de dados
– Colocar endereço no barramento de endereços (para
especificar a célula que quer ler/escrever)
– Activar sinais de controlo (/RD, /WR, etc.)
– Ler/escrever dado no barramento de dados
30
Ciclo de leitura
Bus de
endereços
endereço
Unidade de
Unidade
de
dados
dados
Periférico 2
Periférico 2
Bus de controlo
Memória
Memória
Relógio
Bus de endereços
Interface de
Interface de
memória
memória
Unidade de
controlo
Periférico 1
Periférico 1
Processador
Processador
Bus de dados
1. Coloca endereço
2. Activa /RD
3. Memória/periférico
/WR
activa bus de dados
4. Lê dado
Bus de
dados
5. Desactiva /RD
dados
6. Retira endereço
7. Memória/periférico
• Este ciclo também é
usado para ler instruções.
desactiva bus de dados
/RD
31
Ciclo de escrita
Bus de
endereços
endereço
/RD
/WR
Bus de
dados
dados
Unidade de
Unidade
de
dados
dados
Periférico 2
Periférico 2
Bus de controlo
Memória
Memória
Relógio
Bus de endereços
Interface de
Interface de
memória
memória
Unidade de
controlo
Periférico 1
Periférico 1
Processador
Processador
Bus de dados
1.
2.
3.
4.
5.
Coloca endereço
Activa bus de dados
Activa /WR
Desactiva /WR
Memória/periférico
memoriza dado
6. Retira endereço
7. Desactiva bus de dados
32
Primeiro
computador
mecânico
• 1822 – Charles
Babbage
• Difference
Engine
• Máquina para
calcular tabelas
33
Primeiro computador
electromecânico
• 1944
• Harvard Mark I
• Usado no cálculo de
tabelas matemáticas e
navegação
• Objectivo semelhante à
máquina de Babbage
• 3 segundos para uma
multiplicação de 10
dígitos
34
Primeiro “bug” documentado
• 1945
• Testes no Harvard
Mark II
• Descobriram que
um relé não fazia
contacto devido a
uma traça.
• Este bug era
real…
Traça em
fita-cola
35
Primeiro computador
electrónico
• 1946
• ENIAC
• 18000 válvulas
electrónicas
• 30 toneladas
• Sala com 30 metros
• Cada registo: 60 cm
• 1000 vezes mais
rápido que o Mark I
(3 ms para uma
multiplicação de 10
dígitos)
36
A revolução: o transistor
• 1947
• Tecnologia de
semicondutores
• Permitiu a
substituição das
válvulas
• Menor consumo
• Maior integração
• Deu um prémio
Nobel
37
Primeiro computador
comercial
• 1952
• UNIVAC
• Fez uma
previsão
correcta dos
resultados da
eleição
presidencial
de 1952.
38
Primeiro minicomputador
• 1965
• DEC PDP-8
• Começo da
era do
down-sizing
39
Nova revolução – o primeiro
microprocessador
• 1971
• Nascimento da Intel (com
empregados da Motorola e
Texas Instruments)
• 4004
• Microprocessador 4 bits
• 108 KHertz
• 2300 transistores
• Tecnologia 10 µ
40
Primeiro computador pessoal
•
•
•
•
1975
ALTAIR
Preço: $375
Memória:
256 bytes
• PCs (2005):
256 Mega bytes
(2008: 2 GB)
41
Início da indústria do SW
• 1975
• Compilador
de Basic para
o Altair
• Bill Gates
• Desistiu do
curso na
Universidade
de Harvard
42
8086
•
•
•
•
•
•
1978
Microprocessador 16 bits
5 MHertz
29000 transistores
Tecnologia 3 µ
Primeiro microprocessador
“a sério”. Ainda hoje os
Pentiums são compatíveis
com o 8086.
43
Início da era IBM-PC
• 1981
• PC - Personal
Computer, com um 8088
• IBM: HW e SW não IBM.
Além disso, publicou os
detalhes (o que acabou
por permitir os “clones”).
• O PC foi declarado o
“man of the year” de
1982 pela revista Time
Magazine.
44
O PC actual
• O site http://www.pctechguide.com contém
informação muito boa e actualizada sobre toda
a tecnologia PC. A não perder!
45
A placa mãe (motherboard)
(ou mainboard)
46
Placa de vídeo AGP
(daughterboard)
47
Arquitectura do PC-AT
Controlador
de
interrupções
Co-processador
matemático
80x86
Barramento local
buffer
Barramento de sistema
RAM
buffer
Slots ISA
Barramento X
Controlador
de
DMA
CMOS
RAM
+
RTC
Controlador
de
teclado
Timer
Portos
paralelos
e série
ROM
BIOS
48
A evolução dos
microprocessadores
Micro
Ano
Bits
MHz
Transistores
Tecnologia
8086
1978
16
5
29 K
3µ
80286
1982
16
12
134 K
1.5 µ
80386
1988
32
33
275 K
1.5 µ
80486
1992
32
66
1.4 M
0.8 µ
Pentium
1996
32
166
3.1 M
0.8 µ
Pentium II 1998
32
450
7.5 M
0.25 µ
Pentium 4 2002
32
2200
55 M
0.13 µ
49
VLSI – Very Large Scale Integration
• Fundamental para o
hardware de computadores
(que têm muitos circuitos).
• Longe vai o tempo do IBM
360 (chips com 4
transistores) e de um famoso
relatório que dizia que os
transistores não tinham
futuro e o que era preciso
era miniaturizar as válvulas!
50
Embalagem
• É um dos factores mais
cruciais e caros num
microprocessador
• Um Pentium pode
dissipar cerca de 20 W
e ter mais de 400 pinos.
• Os sockets têm
passado por muitas
gerações.
51
Conclusões
• Os computadores substituiram as pessoas nas
tarefas mais repetitivas e de mais baixo nível.
• Os computadores não entendem as pessoas
directamente. Têm de ser programados por
meio de um algoritmo, uma linguagem de
programação e um compilador.
• O modelo de computador mais usado é o de
von Neumann (processador, memória,
periféricos).
• A evolução dos computadores tem sido rápida
e profunda.
52
Download

O impacto dos computadores