Buscar

Arquitetura de Computadores - Capítulo1

Prévia do material em texto

111
Introdução
Professora: Priscila Doria , M.Sc.
pdoria@area1.edu.br
22
Roteiro
• Marcos da arquitetura de computadores
• Zoológico dos computadores
• Exemplos de famílias de computadores
• Unidades métricas
• Organização estruturada de computadores
33
2700 A.C.: Ábaco
• Sumérios inventaram o ábaco na mesopotâmia (babilônia)
• Conhecido no mundo ocidental como tábua de cálculos
•http://www.britannica.com/EBchecked/topic/340/abacus
44
1638: Régua de Cálculo
• Padre inglês William Oughtred criou uma tabela para 
multiplicações muito grandes, a partir das pesquisas sobre 
logaritmos do escocês John Napier
•http://www.britannica.com/EBchecked/topic/340/abacus
555
1642–1945
Geração Zero
Computadores Mecânicos
Início da Fase Mecânica
66
1642: Máquina de Pascal
• Blaise Pascal construiu a 1ª máquina de calcular
• Projetada para ajudar o pai (coletor de impostos) 
• Funcionava com uma manivela operada a mão
• Efetuava as operações de adição e subtração
77
1672: Máquina mecânica de Leibniz
• Máquina mecânica que podia somar, subtrair, 
multiplicar e dividir
88
1820: Máquina diferencial de Charles 
Babbage
• Projetou e construiu a máquina diferencial
• Capaz de somar e subtrair
• Era usada para calcular tabelas de números úteis para navegação naval
• Executava um único algoritmo
• Método de saída: perfurava resultados sobre chapa de gravação de 
cobre (prenúncio de CD-Roms)
99
1834: Máquina Analítica de Charles Babbage
• Capaz de executar vários algoritmos 
– Possuía 4 componentes: 
• Armazenagem (memória)
• Moinho (unidade de cálculo)
• Entrada (leitora de cartões perfurados)
• Saída (cartões perfurados e impressora)
– A armazenagem consistia em 1000 palavras de 50 
algarismos decimais
– Faltou tecnologia à época e a máquina nunca foi 
construída
1010
• A matemática Ada Byron King criou sequências
para a máquina analítica executar
• Considerada a primeira programadora
1843: Sequências para a Máquina 
Analítica de Babbage
1111
1930: Calculadora automática Konrad Zuse
• Construiu uma série de máquinas calculadoras automática usando relés 
eletromagnéticos
• Não conhecia o trabalho de Babbage
• Em 1944, as máquinas de Zuse foram destruídas pelo bombardeio aliado 
de Berlim
• O trabalho de Zuse não teve nenhuma influência sobre as máquinas 
subsequentes
Replica do Z1
1212
John Atanasoff
• Projetou uma máquina super avançada para 
época
• Usava aritmética binária
• Memória tinha capacitores recarregados 
periodicamente para impedir fuga de carga
– Os chips modernos de memória dinâmica (DRAM) 
funcionam desse modo
• Infelizmente, a máquina nunca se tornou 
realmente operacional
1313
Howard Aiken
• Revisitou trabalho de Babbage 
e decidiu construir com relés 
um computador de uso geral
• Em 1944, Aiken construiu o 
Mark I
– Tinha 72 palavras de 23 
algarismos decimais cada
– Tempo de instrução de 6 s
• Aiken, construiu o Mark II
• Quando terminou, os 
computadores de relés 
estavam obsoletos
Mark I
Mark II
141414
1945 – 1955
Primeira Geração
Válvulas
Fim da Fase Mecânica
Início da Fase Eletrônica
•http://piano.dsi.uminho.pt/museuv/1946mtm3.html
• Programação em fios ou cartões perfurados
• Um programa por vez
• Consumiam muita energia
• Imensos e pesados
1515
1943: COLOSSUS
• Alan Turing ajudou a 
projetar o COLOSSUS
• Desenvolvido para 
decodificar mensagens 
nazistas
• Projeto do Governo 
Britânico
• Primeiro computador 
eletrônico (válvulas) 
programável
• Segredo militar durante 
30 anos
1616
1946: ENIAC
• John Mauchley e J. Presper
Eckert criaram o primeiro 
computador digital eletrônico
de grande escala
• Tinha 18.000 válvulas
• Começou a ser desenvolvido 
na 2ª Guerra mundial
– Necessidade de calcular 
trajetória de bombas e de 
decifrar mensagens secretas
1717
1952: Máquina de Von Neumann
• Conhecida como máquina 
IAS
• John projetou uma máquina 
que carregava programas 
na memória em vez de lê-
los de cartões perfurados
• Possuía 5 partes: 
– Memória
– Unidade Lógica e Aritmética
– Unidade de controle
– Equipamento de 
Entrada/Saída
• Base de todos os 
computadores digitais
1818
1952: Máquina de Von Neumann
• A unidade de lógica e aritmética e a unidade 
de controle formavam o “cérebro” do 
computador
• Nos computadores modernos elas são 
combinadas em um único chip chamado de 
CPU
• A máquina não tinha aritmética de ponto 
flutuante porque Von Neumann achava que 
qualquer matemático competente conseguiria 
acompanhar o ponto decimal de cabeça
1919
• Primeiro computador para empresas (13 ton.)
• 1000 cálculos por minuto!
1953: UNIVAC-1
•http://internetlooks.com/oncomputers.html
2020
• Primeiro computador de vendas bem sucedidas da IBM
• Programas já eram carregados em memória eletrostática
1953: IBM 701
•http://www.columbia.edu/cu/comptinghistory/701.html
212121
1960 – 1965
Segunda Geração
Consolidação dos Transistores
Fase Eletrônica
•http://www.tecmundo.com.br/o-que-e/3596-o-que-e-um-transistor-e-porque-ele-e-importante-para-o-computador-.htm
• 1947: Criação do Transistor
– Substituem as válvulas
– Consomem menos energia
– Mais leves
– Menores
– Mais baratos
2222
Segunda Geração (1955-1965)
• Em 1948, a Bell Labs inventou 
o transistor
• Revolucionou os 
computadores e tornou 
obsoleto os computadores de 
válvulas
• TX-0 e TX-2 primeiros 
computadores 
transistorizados
• PDP-1 surgiu em 1961 e podia 
executar 200.000 instruções 
por segundo
Console do TX-0
PDP-1
2323
1965: PDP-8
• Computador fabricado pela DEC (Digital)
• Inovação: 
– Barramento único (Omnibus)
• Barramento é um conjunto de fios paralelos usados para 
conectar os componentes de um computador
• Foi adotada para todos os outros computadores de pequeno 
porte
242424
1954: IBM 1401
•http://piano.dsi.uminho.pt/museuv/1946ibm1401.html
252525
1965 – 1971
Terceira Geração
Circuitos Integrados
Fase Eletrônica
• Milhares de transistores em um único chip
• Mais rápidos
• Mais barato
• Menor consumo de energia
262626
• Primeiro computador a admitir comandos através de digitação em 
uma máquina de escrever acoplada
• Introduziu os conceitos de multiprogramação
• Compatibilidade com programas legados dos computadores anteriores 
7094 e 1401
1965: IBM 360
272727
1971 – Hoje
Quarta Geração
Microprocessadores
Computadores Domésticos
Fase Eletrônica
• Circuitos integrados altamente miniaturizados, 
empacotados em um único chip
• Grande capacidade de processamento
• Baixo custo e popularização
• Computadores menores e mais rápido
282828
• Primeiro microprocessador
• Arquitetura em 4 bits
• 2.300 transistores empacotados em silício
• Para comparar, um Intel Core tem cerca de 560 milhões de 
transistores
1971: Intel 4004
•http://www.intel.com/content/www/us/en/history/historic-timeline.html
292929
• 1975:
– Surge o Altair, primeiro computador pessoal, com um Intel 8080 (de 8 
bits) e custava US$439,00
– Bill Gates e Paul Allen fundam Microsoft para fornecer BASIC para o Altair
Micro Computadores
•http://www.intel.com/content/www/us/en/history/historic-timeline.html
303030
• 1976: Steve Jobs e Steve Wozniak lançaram o Apple I por 
US$666,66
Micro Computadores
•http://www.intel.com/content/www/us/en/history/historic-timeline.html
3131
• O modelo IBM 5150 (IBM PC) foi uma reação ao Apple II
• Sucesso do MS-DOS, que a Microsoft vendia para a IBM
• Interface texto
1981: IBM PC
•http://www.intel.com/content/www/us/en/history/historic-timeline.html3232
1985: Windows
•http://www.intel.com/content/www/us/en/history/historic-timeline.html
333333
Quinta Geração
Computadores Invisíveis
3434
Quinta Geração – Computadores invisíveis
• A Internet está presente em todo lugar
• Processadores estão cada vez menores
• Podem ser embutidos em quase tudo
– Exemplo:
• PDAs, celulares, eletroeletrônicos, automóveis, relógios
Chip RFID embutido na mão 
3535
Marcos da Arquitetura de Computadores
3636
Marcos da Arquitetura de Computadores
3737
Roteiro
• Marcos da arquitetura de computadores
• Zoológico dos computadores
• Exemplos de famílias de computadores
• Unidades métricas
• Organização estruturada de computadores
3838
A gama dos computadores
Tipos de computador disponíveis atualmente. Os preços devem ser vistos com certa ponderação.
3939
Computador Pessoal
Organização Estruturada de Computadores
4040
Roteiro
• Marcos da arquitetura de computadores
• Zoológico dos computadores
• Exemplos de famílias de computadores
• Unidades métricas
• Organização estruturada de computadores
4141
Pentium 4
• O processador Pentium 4 evoluiu por muitas 
gerações
• O 80386 foi a primeira máquina de 32 bits
• Todas as máquinas subsequentes têm, em essência, 
a mesma arquitetura de 32 bits do 80386
• Alteração importante na arquitetura desde o 80386 
foi a introdução das instruções:
– MMX, SSE e SSE2
– As instruções MMX, SSE, SSE2 foram projetadas para 
melhorar o desempenho em aplicações multimídia
4242
Pentium 4
4343
UltraSPARC III
• Década de 1970
– Unix era popular em universidades, mas nenhum computador 
pessoal o executava
• Em 1981
– Estudante alemão Andy Benchtolshei construiu uma estação de 
trabalho Unix, SUN-1
• Em 1982, Andy e Vinod Khosla fundaram a Sun Microsystems
• Em 1987, a SUN decidiu projetar sua própria CPU chamada de 
SPARC
– Apenas definiu a arquitetura, diversos fabricantes fizeram suas 
implementações
4444
8051
• É usado em sistemas embutidos
• É um computador inteiro (CPU, memória e E/S) em 
um único chip
• Fabricado pela Intel
• Razões para o sucesso do 8051:
– Preço
– Concorrência 
– Liberdade de fornecedor
– Quantidade de software
– Quantidade de programadores e engenheiros de hardware
4545
Roteiro
• Marcos da arquitetura de computadores
• Zoológico dos computadores
• Exemplos de famílias de computadores
• Unidades métricas
• Organização estruturada de computadores
4646
Unidades Métricas
47
Estudo Independente
• Leitura:
– Capítulo 1 (Tanenbaum)
• Seções: 1.2, 1.3, 1.4 e 1.5
• Atividade:
– Lista de Exercícios Nº 1
• Questões: 8, 9, 10, 11 e 12
4848
Roteiro
• Marcos da arquitetura de computadores
• Zoológico dos computadores
• Exemplos de famílias de computadores
• Unidades métricas
• Organização estruturada de computadores
4949
Organização estruturada de computadores
• Um computador digital é uma máquina que 
pode resolver problemas para as pessoas
– Executando instruções que lhe são dadas
• Uma sequência de instruções que descreve 
como fazer uma tarefa é chamada de 
Programa
5050
Organização estruturada de computadores
• Os circuitos eletrônicos de cada computador 
podem reconhecer e executar diretamente 
um conjunto limitado de instruções simples
– Some dois números
– Verifique se um número é zero
– Copie dados de uma parte para outra da memória 
do computador
5151
Organização estruturada de computadores
• As instruções primitivas formam uma 
linguagem com as quais as pessoas podem se 
comunicar com o computador
– Essa linguagem é chamada de Linguagem de 
máquina
– Conjunto de instruções fundamentais que a 
máquina executa
– Expressa como um padrão de 0s e 1s
5252
Organização estruturada de computadores
• Preocupações dos projetistas de um novo 
computador:
– Decidir quais instruções devem ser incluídas em sua 
linguagem de máquina
– Tentar fazer com que as instruções primitivas sejam as 
mais simples possíveis
– Tentar ser coerentes com os requisitos de utilização e 
desempenho idealizados para o computador
• Objetivo: reduzir a complexidade e o custo da 
eletrônica necessária
5353
Linguagens, Níveis e Máquinas Reais
• A maioria das linguagens de máquina é bem simples, 
mas as pessoas acham difícil e entediante
• A idéia é projetar um conjunto de instruções que 
sejam mais convenientes para as pessoas usarem do 
que as instruções que já vem embutidas na máquina
– Linguagem de programação de alto nível (L1)
– Linguagem de máquina (L0)
– A máquina só pode executar os programas escritos em sua 
linguagem de máquina (L0)
5454
Linguagens, Níveis e Máquinas Reais
• Tradução
– Um programa escrito em L1 é traduzido instrução após 
instrução para uma sequência equivalente em L0
– O computador então executa o programa L0 em vez do 
antigo em L1
• Interpretação
– Um programa escrito em L0 considera um programa escrito 
em L1 como entrada de dados, examinando cada instrução 
por vez e executando diretamente a sequência equivalente 
de instruções em L0
– Essa técnica não requer uma geração prévia de um novo 
programa em L0
– O programa que a executa é chamado de interpretador
5555
Linguagens, Níveis e Máquinas Reais
• Tradução x Interpretação
– Semelhanças: 
• Em ambos os métodos, o computador executa instruções em L1 
que realizam sequências equivalentes de instruções em L0
– Diferenças:
• Tradução: Todo o programa L1 é convertido para L0. O programa 
L1 é descartado e então o novo programa L0 é carregado na 
memória do computador e executado. Durante a execução é o 
programa L0 recém-gerado que está rodando no computador
• Interpretação: Após a decodificação de cada instrução, a instrução 
é executada imediatamente. Nenhum programa traduzido é
gerado. O interpretador está no controle do computador. O 
programa L1 é apenas uma coleção de dados
5656
Máquinas multiníveis contemporâneas
• Os computadores atualmente são 
extremamente complexo para ser estudado 
de uma vez
• A solução é organizar a máquina em níveis, 
onde cada nível é definido em função do nível 
anterior
• A linguagem que fica mais embaixo é a mais 
simples e a que fica mais em cima é a mais 
sofisticada
5757
Máquinas Multiníveis Contemporâneas
Computador de seis níveis. O método de suporte para cada nível está indicado abaixo 
dele (junto com o nome do programa de suporte).
Dirigidos à
execução dos 
interpretadores e 
tradutores que dão 
suporte aos níveis 
mais altos
Desenvolvidos 
pelos 
programadores de 
sistemas
Voltados aos 
programadores de 
aplicação
Utilizam 
interpretadores e 
tradutores
Geralmente 
utilizam 
interpretadores
Níveis 1,2 e 3 
utilizam linguagem 
numérica
Níveis 4 e 5 
utilizam palavras na 
linguagem
5858
Máquinas Multiníveis Contemporâneas
• Nível de Dispositivo ( Abaixo do nível 0)
– Domínio da engenharia da eletricidade
– Projetista vê transistores individuais
– Elementos de nível mais baixo para os projetistas 
de computadores
5959
Máquinas Multiníveis Contemporâneas
• Nível Lógico Digital
– É o verdadeiro hardware da máquina
– Seus circuitos executam os programas em linguagem de máquina de 
nível 1
– Objetos de interesse são as portas
• Cada porta possui uma ou mais entradas digitais ( 0 ou 1) e computa como 
saída alguma função simples a partir das entradas
– Exemplo: E (AND) ou OU (OR)
– Um pequeno número de portas combinadas forma uma memória de 1 
bit ( 0 ou 1)
– As memórias de 1 bit podem ser combinadas em grupos de 16, 32 ou 
64 bits e formar os registradores
– Portas também podemser combinadas para formar o próprio 
mecanismo principal de computação
6060
Máquinas Multiníveis Contemporâneas
• Nível de Microarquitetura
– Formado por um conjunto de 8 a 32 registradores que 
formam uma memória local e um circuito ULA
– ULA (Unidade Lógica e Aritmética) é capaz de executar 
operações aritméticas simples
– Os registradores se conectam à ULA para formar um 
caminho de dados
– Operação básica do caminho de dados consiste em:
• Selecionar um ou dois registradores, fazendo com que a ULA
– efetue algo com eles (e.g., somar)
– Armazene o resultado em algum registrador
6161
Máquinas Multiníveis Contemporâneas
• Nível de Microarquitetura (Cont.)
– Em algumas máquinas a operação do caminho de dados é
controlada por um programa denominado microprograma, 
em outras é controlada diretamente por hardware
– Em máquinas controladas por software, o microprograma é
um interpretador para as funções de nível 2
• Exemplo: instrução ADD (SOME) 
– A instrução ADD é localizada
– Seus operando são lidos para dentro do registrador
– A soma é calculada na ULA
– O resultado é enviado ao local adequado
6262
Máquinas Multiníveis Contemporâneas
• Nível Arquitetura do Conjunto de Instruções (ISA)
– Conjunto de instruções que são executas por 
interpretação pelo microprograma ou diretamente pelos 
circuitos do hardware 
– Todo fabricante de computadores publica uma manual 
para cada um dos computadores que vende, intitulado 
“Manual de Referência de Linguagem de Máquina”
– Esses manuais tratam do nível ISA
6363
Máquinas Multiníveis Contemporâneas
• Nível de Máquina do Sistema Operacional
– Híbrido
• Há um conjunto de novas instruções
– Exemplo: 
» Organização diferente de memória
» Capacidade de executar dois ou mais programas ao 
mesmo tempo
• Grande parte das instruções do nível ISA
6464
Máquinas Multiníveis Contemporâneas
• Nível da Linguagem de Montagem (Assembly)
– Forma simbólica para uma das linguagens do nível 5
– Fornece um método para as pessoas escreverem 
programas para os níveis 1, 2 e 3 em uma forma não seja 
tão desagradável quanto a linguagem de máquina em si
– Os programas em linguagem de montagem são primeiro 
traduzidos para a linguagem de nível 1, 2 ou 3, e em 
seguida interpretados pela máquina
– Assembler é o programa que realiza essa tradução
6565
Máquinas Multiníveis Contemporâneas
• Nível de Linguagem Orientada a Problemas
– Consiste em linguagens projetadas para serem usadas pelos 
programadores de aplicação
– Denominadas linguagens de alto nível
• Exemplo: C, C++, JAVA, LISP, PROLOG
– Programas escritos nessas linguagens:
• Podem ser traduzidos para os níveis 3 ou 4 por tradutores 
conhecidos como compiladores
• Podem ser interpretados ao invés de traduzidos (e.g., PHP e ASP)
– Programas em JAVA costumam ser primeiro traduzidos para 
uma linguagem semelhante à ISA, denominada bytecode JAVA, 
para em seguida ser interpretada pela JVM
6666
Máquinas Multiníveis Contemporâneas
• Os computadores são projetados como uma série de 
níveis
• Cada nível é construído sobre seus antecessores
• Cada nível representa uma abstração distinta na qual 
estão presentes diferentes objetos e operações
• Arquitetura de Computadores é o estudo sobre como 
projetar as partes de um sistema de computador que 
sejam visíveis aos programadores
6767
Evolução das máquinas multiníveis
• Hardware: 
– Objetos tangíveis
– Exemplos:
• Placas de circuito impresso, 
cabos, fontes de energia
• Software:
– Idéias abstratas
– Exemplos:
• Programas
6868
Evolução das máquinas multiníveis
• Hardware e software são logicamente equivalentes
• Qualquer operação executada por software também 
pode ser realizada por hardware
• “Hardware é software petrificado”, Karen Panetta Lentz
• Qualquer instrução executada em hardware também 
pode ser realizada em software
Um chip de computador
6969
Evolução das máquinas multiníveis
• Invenção da microprogramação
–Década de 40:
• Primeiros computadores digitais tinham apenas 
dois níveis:
– Nível ISA, no qual era feita toda a programação
– Nível Lógico Digital, executava os programas
• Os circuitos do nível lógico digital eram 
complicados, difíceis de entender e de montar, 
e não eram confiáveis
7070
Evolução das máquinas multiníveis
• Invenção da microprogramação
– 1951:
• Maurice Wilkes, pesquisador de Cambridge, sugeriu projetar 
um computador de três níveis
– Objetivo: simplificar drasticamente o hardware 
• Essa máquina deveria ter:
– o nível ISA
– o nível de microprograma
– o nível lógico digital
• Simplificação do hardware reduzindo o número de válvulas e 
aumentando a confiabilidade
• Microprogramação atingiu seu apogeu na década de 1970
7171
Evolução das máquinas multiníveis
• Invenção do Sistema Operacional (S.O)
– No início da informática, grande parte dos 
computadores era ‘acessível a todos’
– O programador tinha de operar a máquina 
pessoalmente
– Os programas eram armazenados em cartões 
perfurados
7272
Evolução das máquinas multiníveis
• Invenção do Sistema Operacional (Cont.)
– Etapas para um programador executar um programa 
em FORTRAN
• Pegava os cartões do compilador FORTRAN em um armário de 
programas e colocava-o na leitora de cartões
• Colocava os cartões perfurados do programador
• Esperava o compilador traduzir o programa em FORTRAN para 
linguagem de máquina
• Esperava o compilador perfurar os cartões com o programa 
traduzido para a linguagem de máquina
• Colocava os cartões com o programa em linguagem de máquina 
na leitora de cartões
7373
Evolução das máquinas multiníveis
• Invenção do Sistema Operacional (S.O)
– Perto de 1960: Foi criado o Sistema Operacional
• Automatizar o trabalho do operador
• Minimizar o desperdício de tempo
– O programador produzia certos cartões de controle 
junto com o programa, para serem lidos e executados 
pelo sistema operacional
– O S.O. era mantido o tempo todo no computador
7474
Evolução das máquinas multiníveis
• Invenção do Sistema Operacional
– Nos anos que se seguiram a 1960, os S.Os tornaram-
se cada vez mais sofisticados
– Novas instruções, características e funções foram 
adicionadas ao nível ISA, até ele parecer um novo 
nível (o Nível de S.O)
– Nível do Sistema Operacional de máquina
• Instruções idênticas às do nível ISA
• Novas instruções (e.g., instruções de Entrada/Saída)
7575
Evolução das máquinas multiníveis
• Migração de Funcionalidade para Microcódigo
– Novas instruções acrescentadas, apenas ampliando o 
microprograma
• Podia-se acrescentar “hardware” (novas instruções de máquina) 
por programação
– Exemplo: instrução INC (mais rápida) vs. instrução ADD
– Instruções mais frequentes adicionadas ao microprograma
• Multiplicação e divisão de inteiros
• Aritmética para ponto flutuante
• Chamar e sair de procedimentos
• Acelerar loops (laços)
• Manipular cadeias de caracteres
7676
Evolução das máquinas multiníveis
• Migração de Funcionalidade para Microcódigo
– Pela facilidade de acrescentar novas instruções, outras 
características foram adicionadas ao microprograma
• Aceleração de cálculos que envolvessem vetores
• Movimentação de programas na memória após o início da 
execução (facilidade de relocação)
• Sistemas de interrupção que avisavam o computador tão logo 
uma operação de E/S estivesse concluída
• Comutação de processo – capacidade de interromper um 
programa e iniciar outro com um pequeno número de instruções
• Instruções especiais para processar arquivos de áudio, imagem e 
multimídia
7777
Evolução das máquinas multiníveis
• Eliminação da Microprogramação– Os microprogramas engordaram durante as décadas de 1960 e 
1970
• Tendiam a ficar cada vez mais lentos à medida que se tornavam mais 
volumosos
– Alguns pesquisadores perceberam que:
• Eliminando o microprograma
• Promovendo uma drástica redução no número de instruções
• Fazendo com que as instruções restantes fossem executadas 
diretamente
– As máquinas ficariam mais rápidas
– O projeto de computadores fechou um círculo, voltando ao 
ponto antes da invenção da microprogramação por Wilkes
7878
Exercícios
1. Qual é a diferença entre interpretação e 
tradução?
2. Desenhe e descreva os seis níveis das 
máquinas multiníveis. 
79
Estudo Independente
• Leitura:
– Capítulo 1 (Tanenbaum)
• Seção: 1.1
• Atividade:
– Lista de Exercícios Nº 1
• Questões: 1, 2, 3, 4, 5, 6 e 7

Outros materiais

Materiais relacionados

Perguntas relacionadas

Materiais recentes

Perguntas Recentes