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