FEUP
Mestrado em Gestão de Informação
Computadores e Redes de Comunicação
Introdução aos
Computadores
Baseado em:
❏
Hennessy, Patterson. Computer Organization and Design — the
Hardware/Software Interface, Morgan Kaufmann Publishers, 1994
❏
William Stallings, Computer Organization and Architecture,
Prentice Hall, 1996
João Correia Lopes
José Carlos Alves
FEUP/INESC
[email protected], [email protected]
v 1.1, Setembro de 1998
João Correia Lopes, José Carlos Alves
Introdução aos Computadores (v1.1, Set. 1998) — 1
Índice
❏
❏
❏
❏
❏
❏
❏
❏
❏
❏
❏
Gerações de computadores, história e características
Representação de dados
Representação de programas
Níveis de abstracção
Organização
Periféricos de E/S
Memória primária
Processador
ALU
Memória secundária
Redes
João Correia Lopes, José Carlos Alves
João Correia Lopes
Introdução aos Computadores (v1.1, Set. 1998) — 2
1
FEUP
Mestrado em Gestão de Informação
Computadores e Redes de Comunicação
Gerações de Computadores
Geração
Datas
Tecnologia
Características
1
1946-1957
válvulas
computadores electrónicos
2
1958-1964
transistores
computadores baratos
3
1965-1971
circuitos integrados
minicomputadores
4
1972-198?
5
199?-20??
LSI, VLSI
microprocessadores
ULSI
PCs e workstations,
computadores de secretária
processadores paralelos e
computadores portáteis
LSI - Large Scale Integration - 10,000 transistores
VLSI - Very Large Scale Integration - 1,000,000 transistores
ULSI - Ultra Large Scale Integration - 100,000,000 transistores
João Correia Lopes, José Carlos Alves
Introdução aos Computadores (v1.1, Set. 1998) — 3
ENIAC, o primeiro computador electrónico
❏
ENIAC - Electronic Numerical Integrator And Computer
✽ desenvolvido em 1943 (início) para calcular trajectórias de projécteis
✽ aplicação do BRL (Ballistics Research Laboratory, do exército dos EUA)
◆
◆
✽
✽
200 pessoas com calculadoras de secretária a calcular tabelas para novas armas
1 pessoa várias horas ou dias para efectuar os cálculos para uma arma
terminado em 1946 (tarde demais…), foi usado no desenvolvimento da bomba H
características
◆
◆
◆
◆
◆
◆
◆
30 toneladas, 1,600 m2
18,000 válvulas
140 KW
5000 adições por segundo
memória: 20 acumuladores, cada um composto por 10 dígitos decimais
um dígito representado por 10 válvulas, uma só ligada de cada vez
programado manualmente por interruptores e ligando ou desligando cabos
João Correia Lopes, José Carlos Alves
João Correia Lopes
Introdução aos Computadores (v1.1, Set. 1998) — 4
2
FEUP
Mestrado em Gestão de Informação
Computadores e Redes de Comunicação
História
❏
❏
❏
“computadores” mecânicos
✽ ábaco (2500 AC); círculos de proporção (1633) (→ régua de cálculo)
✽ calculadora de discos de Pascal (1642)
✽ máquina de diferenças (Babbage, 1822)
✽ máquina analítica (Babbage, 1833) (programada por Ada Lovelace)
✽ tabuladora Hollerith (1890) (leitor de cartões perfurados)
✽ Harvard MARK I (Aiken, 1944) (hardware electromecânico, aritmética decimal,
leitor de fita perfurada com instruções A1 A2 OP — A1 ← A1 OP A2)
1ª geração (1946–1957) (válvulas)
✽ UNIVAC 1 (1951) IBM 793 (1953)
✽ programação em linguagem máquina; sem S.O.; memória reduzida
2ª geração (1958–1964) (transistores)
✽ IBM 7090
✽ memória de ferrite
✽ Fortran, COBOL
✽ S.O.
✽ Multiprogramação (timesharing)
João Correia Lopes, José Carlos Alves
Introdução aos Computadores (v1.1, Set. 1998) — 5
História (cont.)
❏
❏
❏
3ª geração (1965–1971) (circuitos integrados)
✽ IBM System/360 (mainframe); Cyber CDC (supercomputador); DEC PDP-8 (mini)
✽ memória de semicondutores
✽ microprogramação
✽ paralelismo e concorrência
✽ redes; S.O. eficientes
✽ BASIC, PASCAL
4ª geração (1972) (microprocessador)
✽ INTEL 4004, 80xxx, MOTOROLA 680xx, IBM 3090
✽ tecnologia VLSI
✽ micros; supercomputadores (CRAY); workstations (terminais gráficos)
✽ VMS, UNIX, CP/M, MS-DOS
✽ floppies, discos winchester
5ª geração (actual)
✽ paralelismo, pipelining, super-escalares
✽ memória associativa, discos ópticos
João Correia Lopes, José Carlos Alves
João Correia Lopes
Introdução aos Computadores (v1.1, Set. 1998) — 6
3
FEUP
Mestrado em Gestão de Informação
Computadores e Redes de Comunicação
Características de Computadores Comerciais
Ano
Nome
1951 UNIVAC
tamanho potência desempenho memória
m2
watts
somas/s
KB
preço
124500
1,900
48
$1,000,000 1
$4,533,607
1964 IBM S360 6
10000
500,000
64
$1,000,000 263
$3,756,502
1965 PDP-8
0.8
500
330,000
4
$16,000
$59,947
1976 Cray-1
5.8
60000
166,000,000
32,768
$4,000,000 21,842
$7,675,591
1981 IBM-PC
0.15
150
240,000
256
$3,000
42,105
$3,702
1991 HP 9000
0.2
500
50,000,000
16,384
$7,400
3,556,188
$7,400
hoje
0.2
<400
>100,000,000 >65,536
<$1,000
>52,630,000 $600
PC
100
$/desemp. preço
vs UNIVAC. 1991
João Correia Lopes, José Carlos Alves
10,855
Introdução aos Computadores (v1.1, Set. 1998) — 7
A Revolução Continua
❏
❏
❏
❏
❏
❏
ATMs
✽ computadores na parede de um banco a distribuir e a recolher dinheiro (PCs)
✽ difícil nos anos 50 quando custava $500,000 e era maior do que um carro
Computadores em automóveis
✽ controlo do motor reduz o consumo e a poluição, “obrigatório” nos carros de hoje
✽ ABS, air-bag, suspensão activa,sistemas de navegação
✽ possibilitado pela evolução dramática da microelectrónica
Laptops
✽ computadores pessoais portáteis, trabalho em viagens e nas escolas
Projecto human genome
✽ o custo dos computadores usados no mapeamento de sequências da DNA
humano eleva-se a centenas de milhões de dólares nos anos 90
Aplicações de simulação
✽ avaliar com rigor antes de fabricar: automóveis, aviões, barcos, circuitos,…
de cada vez que o custo melhora num factor de 10 multiplicam-se as novas
oportunidades
João Correia Lopes, José Carlos Alves
João Correia Lopes
Introdução aos Computadores (v1.1, Set. 1998) — 8
4
FEUP
Mestrado em Gestão de Informação
Computadores e Redes de Comunicação
Funções
❏
❏
❏
❏
Processamento de dados
✽ operações aritméticas e lógicas
✽ comparações e pesquisas
✽ centenas de milhões de operações por segundo (MIPs, MOPs, MFLOPs)
Armazenamento de dados
✽ grande capacidade de armazenar dados de forma permanente
✽ dezenas de Gigabytes (1 Giga = 1,073,741,824 caracteres)
Movimentação de dados
✽ entre diferentes tipos de unidades de armazenamento
✽ entre unidades periféricas
✽ dezenas ou centenas de Mbytes/segundo (vídeo@30 fps >67 Mbytes/s)
Controlo das funções anteriores
✽ Sistema Operativo
✽ programação de aplicações
João Correia Lopes, José Carlos Alves
Introdução aos Computadores (v1.1, Set. 1998) — 9
Representação de Dados (num computador digital)
❏
❏
Representação binária de informação
✽ apenas dois estados: ligado ou desligado
✽ simplificação dos circuitos electrónicos, imunidade ao ruído
Dispositivo elementar: transistor como um interruptor controlado por electricidade
✽ operadores lógicos elementares: AND, OR, NOT
✽ rapidez é condicionada pelo tempo necessário para comutar entre 0 e 1
◆
✽
◆
◆
❏
a 450 MHZ um circuito lógico tem de trocar de estado em menos de 0.22 ns
tecnologia CMOS (Complementary Metal-Oxide Semiconductor)
baixo consumo de energia, cresce com a frequência de trabalho
tipicamente AND e OR = 4 transistores, NOT = 2 transistores
Microprocessadores actuais têm vários
milhões de transistores num único chip
✽ 80486
1.2
(Q1 1989)
✽ Pentium
3.1
(Q1 1993)
✽ Pentium II
5.5
(Q3 1995)
NAND (NOT-AND)
símbolo lógico
expressão lógica
circuito CMOS
Vdd
Y=A&B
A
Y
B
Vss
João Correia Lopes, José Carlos Alves
João Correia Lopes
Introdução aos Computadores (v1.1, Set. 1998) — 10
5
FEUP
Mestrado em Gestão de Informação
Computadores e Redes de Comunicação
Representação de dados (cont.)
❏
❏
❏
❏
❏
❏
num computador digital toda a informação é codificada em binário
✽ números em base 2: 0 e 1, binary digits ou bits
representação de valores numéricos (inteiros)
01011
base 2 (binário):
11 = 0x24+1x23+0x22+1x21+1x20
013
base 8 (octal):
11 = 0x82+ 1x81+3x80
0B
base 16 (hexadecimal):
11 = 0x161+ 11x160
instruções; colecções de bits
1000110010100000
linguagem assembly
ADD A,B
caracteres
01000001
0000000001000001
A=10,…,F=15
(adicionar 2 números)
(adicionar 2 números)
(’A’ em ASCII)
(’A’ em UNICODE)
um byte
8 bits: representa um caracter, inteiros entre 0 e 255, inteiros entre -128 e +127
João Correia Lopes, José Carlos Alves
Introdução aos Computadores (v1.1, Set. 1998) — 11
Representação de Programas
linguagem de alto nível
(texto)
swap(int v[], int k);
{
int temp;
temp = v[k];
v[k] = v[k+1];
v[k+1] = temp;
}
Compilador
linguagem assembly
(texto)
swap:
multi $2,
add $2,
lw
$15,
lw
$16,
sw
$16,
sw
$15,
jr
$31
$5,4
$4,$2
0($2)
4($2)
0($2)
4($2)
Assembler
linguagem máquina
(binário)
João Correia Lopes, José Carlos Alves
João Correia Lopes
00000000101000010000000000011000
00000000100011100001100000100001
10001100011000100000000000000000
10001100111100100000000000000100
10101100111100100000000000000000
10101100011000100000000000000100
00000011111000000000000000001000
Introdução aos Computadores (v1.1, Set. 1998) — 12
6
FEUP
Mestrado em Gestão de Informação
Computadores e Redes de Comunicação
Estrutura em Camadas
utilizador
software de
aplicação
software de
sistema
hardware
software
software
de aplicação
LaTeX
…
software
de sistema
sistema
operativo
compiladores
gcc
assembler
…
…
as
memória
virtual
sistema de drivers de
ficheiros
E/S
…
…
João Correia Lopes, José Carlos Alves
…
…
…
…
Introdução aos Computadores (v1.1, Set. 1998) — 13
Organização do Computador
controlo
CPU
UC
MEMÓRIA
ENTRADA
PORTAS de
E/S
SAÍDA
ALU
FPU
dados
barramentos
João Correia Lopes, José Carlos Alves
João Correia Lopes
Introdução aos Computadores (v1.1, Set. 1998) — 14
7
FEUP
Mestrado em Gestão de Informação
Computadores e Redes de Comunicação
Periféricos de E/S
❏
❏
dispositivos de entrada
✽ teclado
✽ rato
✽ scanner
✽ OCR - optical character recognition
✽ …
dispositivos de saída
✽ CRT - o mais comum
refresh rate de 30 a 75 Hz
a imagem é composta de uma matriz de pixel representados num bit map
◆ 1 bit por pixel para P&B; 8 bits para gray-scale e 3x8 bits para côr (RGB)
◆ frame buffer : memória que contém o bit map
◆
◆
✽
✽
✽
impressoras
plotters (em desuso, substituídos por impressoras laser, jacto-de-tinta)
…
João Correia Lopes, José Carlos Alves
Introdução aos Computadores (v1.1, Set. 1998) — 15
Memória Primária (RAM)
❏
❏
❏
❏
cr
es
ac
es
so
de
po
de
da
ci
pa
ca
te
m
de
João Correia Lopes
s
de
da
10
registos
103
cache
106
memória principal
106
cache de disco
109
disco magnético
banda magnética
João Correia Lopes, José Carlos Alves
i
un
ce
nt
e
❏
implementada por circuitos integrados
volátil (geralmente)
para programas em execução pelo CPU e os seus dados
DRAM
✽ 50 a 150 nanosegundos de tempo de acesso
memória cache
✽ mais rápida (7 ns), pode ser interna ao CPU
✽ associativa
✽ aproveita a localidade
hierarquia de memória
dos dados
disco óptico
109
Introdução aos Computadores (v1.1, Set. 1998) — 16
8
FEUP
Mestrado em Gestão de Informação
Computadores e Redes de Comunicação
Capacidade dos Chips de Memória
100000
16M
10000
capacidade (Kbit)
4M
1M
1000
256k
64k
100
16k
10
1976
1978
1980
1982
1984
1986
1988
1990
1992
Ano de introdução
João Correia Lopes, José Carlos Alves
Introdução aos Computadores (v1.1, Set. 1998) — 17
Processador
❏
❏
❏
❏
❏
❏
Unidade de execução do computador
Segue à letra as instruções do programa (o computador nunca se engana!)
Instruções
✽ conjunto limitado de operações elementares
✽ adicionar, testar, comunicar com dispositivos de E/S, mover,...
Unidade de controlo
Unidade aritmética e lógica, unidade de vírgula flutuante
Arquitectura (instruction set architecture)
✽ inclui tudo o que os programadores necessitam saber para construir programas
em linguagem máquina: conjunto de instruções, registos, modos de funcionamento
✽ constitui uma abstracção das camadas inferiores
✽ uma implementação da arquitectura é hardware que obedece à abstracção
João Correia Lopes, José Carlos Alves
João Correia Lopes
Introdução aos Computadores (v1.1, Set. 1998) — 18
9
FEUP
Mestrado em Gestão de Informação
Computadores e Redes de Comunicação
Execução de programas
❏
❏
Instruções executadas em sequência, uma (ou mais) de cada vez
Execução de uma instrução
Instruction
fetch
❏
❏
Instruction
decode
Pipelining
Instruction
Instruction
fetch
decode
✽ aumento do desempenho
Instruction
fetch
✽ depende da sequência de instruções
✽ obriga a ordenar as instruções (scheduling)
Execution
Data
memory
Write
back
Instruction
fetch
Execution
Data
memory
Write
back
Instruction
decode
Execution
Data
memory
Write
back
Instruction
fetch
Instruction
decode
Execution
Data
memory
Instruction
decode
Write
back
Interrupções da execução sequencial de um programa
✽ provocadas por acções exteriores ao CPU (utilizador, periféricos, relógio)
guarda o ambiente de execução (registos do CPU, regiões da memória)
executa a rotina de serviço da interrupção para atender ao pedido
◆ retorna ao programa original
◆
◆
✽
permite que um CPU realize duas ou mais tarefas “em simultâneo”
◆
3 tarefas executadas em “paralelo”
João Correia Lopes, José Carlos Alves
Introdução aos Computadores (v1.1, Set. 1998) — 19
ALU - Arithmetic Logic Unit
❏
❏
❏
responsável pela execução de operações aritméticas e lógicas
operações básicas: aritmética inteira, operações lógicas, manipulação de bits
FPU - Floating-point unit: unidade de cálculo para números em vírgula flutuante
✽ antigamente suportada por co-processadores (chips externos ao CPU)
◆
versões mais baratas faziam as contas FP por software
actualmente a FPU é geralmente integrada no CPU
representação de quantidades numéricas (inteiros, vírgula fixa)
✽
❏
✽
binário, complemento para dois
1345 = 00000101 01000001 (2 bytes)
-1345 = 11111010 10111111 (2 bytes)
1345 = 00000001 00000011 00000100 00000101 (4 bytes)
BCD (binary-coded decimal)
1345 = 00010011 01000101 (2 bytes)
packed BCD
✽ decimal em ASCII
1345 = 00110001 00110011 00110100 00110101 (4 bytes)
representação de números em vírgula flutuante
✽
✽
❏
0 10000100 10100010000000000000000
sinal expoente
João Correia Lopes, José Carlos Alves
João Correia Lopes
= 0.11010001 x 2100 = 13.0625
mantissa
Introdução aos Computadores (v1.1, Set. 1998) — 20
10
FEUP
Mestrado em Gestão de Informação
Computadores e Redes de Comunicação
Memória Secundária
❏
Discos
✽ não volátil, grande capacidade de armazenamento
✽ desde 1965: primeiros discos do tamanho de mesas de café, poucos MBytes
✽ rodam a 3600 – 5400 rpm
✽ pratos de metal cobertos de material magnético
◆
◆
✽
cada lado tem várias pistas concêntricas, cada pista vários sectores
um sector é a unidade mínima de informação lida ou escrita
cabeça de leitura
◆
uma móvel para todas as pistas ou uma fixa para cada pista
“voa” sobre a superfície do disco (Winchester) ou toca-a (floppies)
✽ 5 a 20 milisegundos de tempo de acesso (seek time + rotational latency)
✽ custo reduzido (gigabytes por dezenas de contos)
✽ recentemente: ópticos regraváveis, discos magneto-opticos, CD-ROM, DVD
Bandas magnéticas
✽ acesso sequencial, lento
✽ hoje usada exclusivamente para backups (cópias de segurança)
✽
❏
João Correia Lopes, José Carlos Alves
Introdução aos Computadores (v1.1, Set. 1998) — 21
Barramentos
❏
interligam componentes
✽ transportam dados, endereços ou sinais de controlo
João Correia Lopes, José Carlos Alves
João Correia Lopes
Introdução aos Computadores (v1.1, Set. 1998) — 22
11
FEUP
Mestrado em Gestão de Informação
Computadores e Redes de Comunicação
Redes
❏
❏
❏
❏
❏
comunicação entre utilizadores
partilha de recursos
acesso remoto
Ethernet
✽ até 1 km no máximo
✽ 10 MB/s
✽ LAN
Internet
✽ milhões de computadores interligados entre si na Terra
João Correia Lopes, José Carlos Alves
João Correia Lopes
Introdução aos Computadores (v1.1, Set. 1998) — 23
12
Download

handouts