O impacto dos computadores - Técnico Lisboa - Autenticação · Arquitectura de Computadores –...
Transcript of O impacto dos computadores - Técnico Lisboa - Autenticação · Arquitectura de Computadores –...
1
Introdução
• Evolução histórica• Arquitectura básica de um computador• Processo de desenvolvimento de um programa
Arquitectura de Computadores
Arquitectura de Computadores – LEICProf. Renato Nunes
2
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 datelevisã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.
3
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 sabeo que está a fazer!
4
Motivação para a divulgação dos computadores
• Antes dos computadores tudo era manual (mão-de-obra 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.
5
Primeiro objecto de cálculo
• Ábaco - desde 3000 A.C. • Usado ainda hoje (China, por exemplo)
6
Primeiro somador mecânico
• 1642 – Blaise Pascal (filho de um cobrador de impostos…)
• Primeiro “e vai um” automático
7
Primeira automatização
• 1801 – Joseph-Marie Jacquard
• Máquina de tecer com cartões perfurados
• Causou motins contra as máquinassubstituirem as pessoas
8
Primeira grande aplicação
• Recenseamento em 1890 nos EstadosUnidos
• Hollerith Tabulating Company
• Deu origem à IBM em1924
9
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
10
Funcionamento de um computador
• Um computador processa informação (manipulaçãosimbólica) de acordo com um conjunto de regrasdefinidas pela sua programação
ProcessamentoProcessamentoInformação
de entradaInformação
de entrada
Informação
de saídaInformação
de saída
11
Algoritmo• Qualquer processamento pressupõe um algoritmo
(conjunto de passos elementares para se atingir um dado objectivo).
• O mesmo processamento pode ser implementado poralgoritmos 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 algoritmosdiferentes para resolver o mesmo problema porquetêm capacidades específicas diferentes.
12
Componentes básicosde um computador
ProcessadorProcessadorMemória
de programaMemória
de programa
Interface
com o mundoInterface
com o mundo
Memória
de dadosMemória
de dados
13
Ciclo básico do processador
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óriade programa.
A vida de um computador é muito monótona!...
1. Lê uma instrução da memória de programa;
2. Interpreta a instrução (vê queoperação é preciso fazer);
3. Lê operandos da memória de dados;4. Executa a operação;5. Armazena o resultado na memória de
dados;
ProcessadorProcessador
Memória
de programaMemória
de programa
Interface
com o mundoInterface
com o mundo
Memória
de dadosMemória
de dados
14
Os computadores e as Pessoas
Bloco de
notas
Manual de
procedimentos
Cérebro
5 sentidos,
voz,
membros
ProcessadorProcessador
Memória
de programaMemória
de programa
Interface
com o mundoInterface
com o mundo
Memória
de dadosMemória
de dados
15
Arquitectura de um computador
Processador
Unidade
aritmética e
lógica
Unidade de
controlo
Memória de programaMemória de programa
Periféricos
(entradas/saídas)
Memória de dadosMemória de dados
• Arquitectura de Harvard– Memória de Programa separada da Memória de Dados
16
Arquitectura de von Neumann (1946)
• Um sistema de memória único que contém programa e dados
Processador
Unidade
aritmética
e lógica
Unidade
de
controlo
Periféricos
(entradas/saídas)
Memória
(programa + dados)Memória
(programa + dados)
17
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)
18
Das pessoas até aos computadores
ProgramadorLinguagem
de programaçãoLinguagem
de programaçãosaldo = saldo + 100;
CompiladorLinguagem
assemblyLinguagem
assemblyADD R1, 100
AssembladorCódigo máquinaCódigo máquina 10011011 01100100
"...depositar 100 euros..."Língua
naturalLíngua
natural
Ideia ou
conceitoIdeia ou
conceitoUtilizador M
anual
Au
tom
ático
Computador
Pessoa
Sistema gestão bancária
19
O ciclo típico de um programa
Compilador
Programa em assembly
Assembler
Código máquina
Linker
Programa executável
Módulo pré-compilado
(biblioteca)
Loader (SO)MemóriaRun (SO)
Processador
Editor
Programa em C
debugger
20
Ciclo de desenvolvimento de um programa para o P3
Programa em assembly
Código máquina
(programa executável)
LoaderMemóriaRunProcessador
Editor
debugger
AssemblerP3AS
P3SIM
21
Estrutura básica de um computador
Mem
óri
aM
emóri
a
Bus de endereços
Bus de dados
Bus de controlo
Per
ifér
ico
1P
erif
éric
o1
Per
ifér
ico
2P
erif
éric
o2
ProcessadorProcessador
Unidade de
controlo
Unidade de
dadosUnidade de
dados
Inte
rfac
e de
mem
óri
a
Inte
rfac
e de
mem
óri
a
22
E o que é um barramento?
• Conjunto de fios que circulam em paralelo (formandoum conjunto solidário).
• Forma simples de representar um conjunto de bits logicamente relacionados.
• Serve para transferir informação em conjuntos de bits.
• Bus ≡ barramento.
Mem
óri
aM
emóri
a
Bus de endereços
Bus de dados
Bus de controlo
Per
ifér
ico
1P
erif
éric
o1
Per
ifér
ico
2P
erif
éric
o2
ProcessadorProcessador
Unidade de controlo
Unidade de
dadosUnidade de
dados
Inte
rfac
e d
e
mem
óri
a
Inte
rfac
e d
e
mem
óri
a
23
Interligação dos módulos
• 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 datransferência, etc)
Mem
óri
aM
emó
ria
Bus de endereços
Bus de dados
Bus de controlo
Per
ifér
ico
1P
erif
éric
o1
Per
ifér
ico
2P
erif
éric
o2
ProcessadorProcessador
Unidade de
controlo
Unidade de
dadosUnidade de
dados
Inte
rfac
e d
e
mem
óri
a
Inte
rfac
e d
e
mem
óri
a
24
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 essencialmenteas 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!…
25
Periféricos• Comportam-se como pequenas
memórias cujos bits ligam aomundo exterior.
• Cada endereço designa-se porporto:– 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 paraentrada 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, …
Mem
óri
aM
emóri
a
Bus de endereços
Bus de dados
Bus de controlo
Per
ifér
ico
1P
erif
éric
o1
Per
ifér
ico
2P
erif
éric
o2
ProcessadorProcessador
Unidade de controlo
Unidade de
dadosUnidade de
dados
Inte
rfac
e d
e
mem
óri
a
Inte
rfac
e d
e
mem
óri
a
26
Barramento de endereços
• Permite endereçar palavrasou bytes individuais:– na memória– nos periféricos
• 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
• É unidireccional
Mem
óri
aM
emóri
a
Bus de endereços
Bus de dados
Bus de controlo
Per
ifér
ico
1P
erif
éric
o1
Per
ifér
ico
2P
erif
éric
o2
ProcessadorProcessador
Unidade de controlo
Unidade de
dadosUnidade de
dados
Inte
rfac
e d
e
mem
óri
a
Inte
rfac
e d
e
mem
óri
a
1K = 1024 = 210 (10 bits)
1M = 1K * 1K = 220 (20 bits)
1G = 1M * 1K =230 (30 bits)
1T = 1G * 1K = 240 (40 bits)
27
0000H
FFFFH
Esp
aço
de
ender
eçam
ento
(co
m 1
6 b
its)
Espaço de endereçamento• Conjunto de células
individualmenteendereçáveis peloprocessador:
Memória 2
Periférico 3
Periférico 2
Periférico 1
Memória 1
– Não pode haver duas célulasdiferentes no mesmo endereço!
• Nem todos os endereços têm de ter célula válida (leitura semcélula válida dá valor aleatório).
– A memória não tem que ser contígua.
– Cada periférico pode tervárias células
Mem
óri
aM
emóri
a
Bus de endereços
Bus de dados
Bus de controlo
Per
ifér
ico
1P
erif
éric
o1
Per
ifér
ico
2P
erif
éric
o2
ProcessadorProcessador
Unidade de controlo
Unidade de
dadosUnidade de
dados
Inte
rfac
e d
e
mem
óri
a
Inte
rfac
e d
e
mem
óri
a
28
Barramento de dados
• Permite ler e escrever dados:– na memória– nos periféricos
• É bidireccional• A sua largura em bits:
– é 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.
Mem
óri
aM
emóri
a
Bus de endereços
Bus de dados
Bus de controlo
Per
ifér
ico
1P
erif
éric
o1
Per
ifér
ico
2P
erif
éric
o2
ProcessadorProcessador
Unidade de controlo
Unidade de
dadosUnidade de
dados
Inte
rfac
e d
e
mem
óri
a
Inte
rfac
e d
e
mem
óri
a
29
Barramento de controlo
• Controla o acesso:– à memória– aos periféricos
• Sinais típicos(activos a zero):– Read (/RD)– Write (/WR)
Mem
óri
aM
emóri
a
Bus de endereços
Bus de dados
Bus de controlo
Per
ifér
ico
1P
erif
éric
o1
Per
ifér
ico
2P
erif
éric
o2
ProcessadorProcessador
Unidade de controlo
Unidade de
dadosUnidade de
dados
Inte
rfac
e d
e
mem
óri
a
Inte
rfac
e d
e
mem
óri
a
30
Ciclos de acesso à memória e aos periféricos
• O processador acede àmemória e aos periféricosatravés dos 3 barramentoscom um protocolo bemdefinido.
• Cada ciclo (de leitura ou de escrita) envolveessencialmente:– 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
Mem
óri
aM
emóri
a
Bus de endereços
Bus de dados
Bus de controlo
Per
ifér
ico
1P
erif
éric
o1
Per
ifér
ico
2P
erif
éric
o2
ProcessadorProcessador
Unidade de controlo
Unidade de
dadosUnidade de
dados
Inte
rfac
e d
e
mem
óri
a
Inte
rfac
e d
e
mem
óri
a
31
Ciclo de leitura
Relógio
Bus de
/RD
/WR
dados
endereços
Bus dedados
endereço
1. Coloca endereço2. Activa /RD3. Memória/periférico
activa bus de dados4. Lê dado5. Desactiva /RD
6. Retira endereço
7. Memória/periférico
desactiva bus de dados
• Este ciclo também éusado para ler instruções.
Mem
óri
aM
emóri
a
Bus de endereços
Bus de dados
Bus de controlo
Per
ifér
ico
1P
erif
éric
o1
Per
ifér
ico
2P
erif
éric
o2
ProcessadorProcessador
Unidade de controlo
Unidade de
dadosUnidade de
dados
Inte
rfac
e d
e
mem
óri
a
Inte
rfac
e d
e
mem
óri
a
32
Ciclo de escrita
1. Coloca endereço2. Activa bus de dados3. Activa /WR4. Desactiva /WR 5. Memória/periférico
memoriza dado6. Retira endereço7. Desactiva bus de dados
Relógio
/RD
/WR
dados
Bus dedados
Bus deendereços endereço
Mem
óri
aM
emóri
a
Bus de endereços
Bus de dados
Bus de controlo
Per
ifér
ico
1P
erif
éric
o1
Per
ifér
ico
2P
erif
éric
o2
ProcessadorProcessador
Unidade de controlo
Unidade de
dadosUnidade de
dados
Inte
rfac
e d
e
mem
óri
a
Inte
rfac
e d
e
mem
óri
a
33
Primeirocomputador
mecânico
• 1822 – Charles Babbage
• Difference
Engine
• Máquina paracalcular tabelas
34
Primeiro computadorelectromecâ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 umamultiplicação de 10 dígitos
35
Primeiro “bug” documentado
• 1945• Testes no Harvard
Mark II• Descobriram que
um relé não faziacontacto devido a uma traça.
• Este bug era real…
Traça em
fita-cola
36
Primeiro computadorelectró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 umamultiplicação de 10 dígitos)
37
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
38
Primeiro computadorcomercial
• 1952• UNIVAC• Fez uma
previsãocorrecta dos resultados daeleiçãopresidencialde 1952.
39
Primeiro minicomputador
• 1965• DEC PDP-8• Começo da
era do down-sizing
40
Nova revolução – o primeiromicroprocessador
• 1971• Nascimento da Intel (com
empregados da Motorola e Texas Instruments)
• 4004• Microprocessador 4 bits• 108 KHertz• 2300 transistores• Tecnologia 10 µ
41
Primeiro computador pessoal
• 1975• ALTAIR• Preço: $375• Memória:
256 bytes
• PCs (2005): 256 Mega bytes(2008: 2 GB)
42
Início da indústria do SW
• 1975• Compilador
de Basic parao Altair
• Bill Gates• Desistiu do
curso naUniversidadede Harvard
43
8086
• 1978• Microprocessador 16 bits• 5 MHertz• 29000 transistores• Tecnologia 3 µ• Primeiro microprocessador
“a sério”. Ainda hoje osPentiums são compatíveiscom o 8086.
44
Início da era IBM-PC
• 1981• PC - Personal
Computer, com um 8088• IBM: HW e SW não IBM.
Além disso, publicou osdetalhes (o que acaboupor permitir os “clones”).
• O PC foi declarado o “man of the year” de 1982 pela revista Time Magazine.
45
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!
46
A placa mãe (motherboard)(ou mainboard)
47
Placa de vídeo AGP (daughterboard)
48
Arquitectura do PC-AT
RAM
buffer
Slots ISA
Barramento de sistema
80x86Co-processador
matemático
Controlador
de
interrupções
Barramento local
Controlador
de
DMA
Barramento X
buffer
CMOS
RAM
+
RTC
Controlador
de
teclado
TimerPortos
paralelos
e série
ROM
BIOS
49
A evolução dos microprocessadores
1.5 µ134 K1216198280286
1.5 µ275 K3332198880386
0.8 µ1.4 M6632199280486
0.8 µ3.1 M166321996Pentium
0.25 µ7.5 M450321998Pentium II
0.13 µ55 M2200322002Pentium 4
3 µ29 K51619788086
TecnologiaTransistoresMHzBitsAnoMicro
50
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 famosorelatório que dizia que ostransistores não tinhamfuturo e o que era precisoera miniaturizar as válvulas!
51
Embalagem
• É um dos factores maiscruciais e caros num microprocessador
• Um Pentium podedissipar cerca de 20 W e ter mais de 400 pinos.
• Os sockets têmpassado por muitasgerações.
52
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 pormeio 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.