1/11
Arquitetura de Computadores
José Filho
2/11
Sistemas Computacionais
3/11
Sistemas Computacionais
4/11
Estudo de Sistemas (Computacionais)
• Os sistemas (incluindo os computacionais) são
extremamente complexos se forem estudados em
todos seus detalhes – SOLUÇÃO Diferentes níveis de ABSTRAÇÃO
• Abstração: distinção entre as propriedades externas
de um componente e os detalhes internos de sua
construção. – Exemplo:
• Utilizamos dispositivos elétricos sem entender a sua tecnologia
• Beneficiamo-nos de serviços de terceiros sem conhecer com
detalhes suas atividades
• Ubiquidade é um desejo ainda não atingido para sistemas
computacionais
5/11
Introdução a Organização de Computadores
• Campo com mudanças rápidas: – Tubo de vácuo transistor CI VLSI
– Dobrando a cada 1,5 anos: • Capacidade de memória
• Velocidade do processador
• Lei de Moore
• Algumas Coisas que serão aprendidas: – Como computadores funcionam: fundamentação básica
– Como analisar seus desempenhos (ou como não fazer isso!)
– Questões que influenciam computadores recentes (caches, pipelines)
• Por que aprender isso? – Você quer ser um “cientista da computação”
– Você quer construir softwares (necessidade de desempenho)
– Você precisa tomar decisões ou oferecer “expertise” na área
6/11
O que é um Computador?
• Componentes:
– Entrada (mouse, teclado, USB)
– Saída (monitor, impressora)
– Memória (disk drives, DRAM, SRAM, CD, DVD, flash
memory)
– Rede
• Foco inicial: o processador (controle e via de dados)
– Implementado usando milhões de transistores
– Impossível entender “olhando cada transistor”
– Precisamos de...
7/11
Abstração
• Removendo camadas
temos mais informação
• Uma abstração omite
detalhes desnecessários,
ajudando a reduzir a
complexidade
• Quais detalhes nos
parecem familiares nessas
abstrações ao lado?
8/11
Instruction Set Architecture
• Instruction Set Architecture = Conjunto de
Instruções
– Uma abstração muito importante • Interface entre nível de hardware e software de baixo nível
• Padroniza instruções, padrões de bits da linguagem de
máquina, etc.
• Vantagem: Implementações diferentes da mesma arquitetura
• Desvantagem: As vezes dificulta o uso de “novas invenções”
– Conjunto de Instruções relativamente recentes: • 80x86/Pentium/K6, PowerPC, DEC Alpha, MIPS, SPARC, HP
VEREMOS EM PRÓXIMAS AULAS
9/11
Arquitetura Básica dos Computadores Atuais
10/11
Mas Nem Sempre Foi Assim...
• De onde surgiram os computadores atuais?
• Já ouviu falar em ábaco e hollerith?
• Ábaco
– Original do oriente médio
– Calculador decimal manual
• Herman Hollerith (1860-1929)
– Funcionário do Departamento de Recenseamento dos
Estados Unidos
– Construiu sua Máquina de Recenseamento ou Máquina
Tabuladora - 1866
• Utilizava cartão perfurado
• Reduziu de 10 para 3 anos o período de realização de censo
de 1890
11/11
Computadores Mecânicos
• Maquina de Pascal: Blaise Pascal (1623-
1662)
– Operações: Soma e Subtração
– Manivela
12/11
Computadores Mecânicos
• Maquina Analítica: Charles
Babbage(1792-1871) • Componentes
• Armazenamento
• Engenho
• Seção de Entrada
• Seção de Saída
– Cartões Perfurados (similar aos utilizados em
teares inglêses)
– Resolvia polinômios.
13/11
Computadores Mecânicos
• Maquina Diferencial, 1822:
– Para Calcular automaticamente tabelas matemáticas,
necessárias sobretudo para a navegação.
14/11
Computadores Mecânicos
• Máquina Analítica, 1834:
– Programável. As instruções entravam por
meio de cartões perfurados; tinha memória
para 1000 números de 50 algarismos, tinha
uma unidade aritmética, impressão
automática, uma operação aritmética por
segundo. Usava base 10, era uma maquina
“mecânica”, trabalhava a vapor.
15/11
Ada, Condessa de Lovelace
• Primeira
Programadora.
• Desenvolveu
algoritmos que
permitiriam à maquina
Analítica de Babbage
computar os valores
de funções
matemáticas.
16/11
Computador Elétrico
• Advento da Energia Elétrica
• Desenvolvimento da tecnologia Eletrônica
– Dispositivos eletromagnéticos.
– Relés
• Automatização dos processos mecânicos.
17/11
Maquina Enigma
• Enigma é o nome por que é conhecida uma máquina
electro-mecânica de criptografia com rotores, utilizada
tanto para criptografar como para descriptografar
mensagens secretas, usada em várias formas na
Europa a partir dos anos 1920. A sua fama vem de ter
sido adaptada pela maior parte das forças militares
alemãs a partir de cerca de 1930. A facilidade de uso e
a suposta indecifrabilidade do código foram as principais
razões para a sua popularidade. O código foi, no
entanto, decifrado, e a informação contida nas
mensagens que ele não protegeu é geralmente tida
como responsável pelo fim da Segunda Guerra Mundial
pelo menos um ano antes do que seria de prever.
18/11
Maquina Enigma
19/11
COLOSSUS
20/11
Alan Turing (1912-1954)
21/11
Alan Turing (1912-1954)
22/11
Mark I - 1944
• Primeiro computador eletromecânico
– Desenvolvido pela Universidade de
Harvard, com apoio da IBM
– Medidas: • 700.000 peças
• 800.000 metros de fios
• 17 metros de comprimento por 2 metros de altura
• 70 toneladas
• Soma – 0,3 segundos
• Multiplicação – 6 segundos
23/11
1ª Geração (1945-1955)
• ENIAC – 1945 (Eletronic Numeral Integrator and Computer)
– Primeiro computador eletrônico.
– Desenvolvido na Universidade de Pensilvânia.
– Projeto do exército dos Estados Unidos para o cálculo da trajetória de
projéteis.
– Alguns números:
• 17.000 válvulas.
• 50.000 comutadores.
• 70.000 resistências.
• Soma – 0,0002 segundos.
• Multiplicação – 0,003 segundos.
• 111 m3.
• 27 toneladas.
• Consumo – 100.000 a 200.000 watts.
– Programação – conexão de fios tipo painel de telefonista.
24/11
1ª Geração (1945-1955)
25/11
1ª Geração (1945-1955)
26/11
1ª Geração (1945-1955)
27/11
1ª Geração (1945-1955)
28/11
John Von Neumman (1903-1957)
29/11
John Von Neumman (1903-1957)
30/11
1ª Geração (1945-1955)
31/11
Máquina de von Neumann
• Máquina de von Neumann
– Proposta em 1946
– Máquina composta por:
• Memória (MEM)
– Armazena dados, onde alguns destes dados são interpretados como instruções
de um programa a ser executado pela CPU
– A característica fundamental da máquina de von Neumann é quedados e
programas estão armazenados numa mesma memória!
• Unidade Central de Processamento (CPU)
– Unidade de controle (UC)
– Unidade de cálculos aritméticos e lógicos (UAL)
– Registrador de instrução (IR)
– Ponteiro de instrução (IP)
– Registrador de uso geral (acumulador - ACC)
• Dispositivos de Entrada e Saída
Base para a maioria das arquiteturas atuais
32/11
Voltando à Arquitetura Básica dos Computadores Atuais
33/11
1ª Geração (1945-1955)
34/11
2ª Geração (1955-1965)
35/11
2ª Geração (1955-1965)
36/11
3ª Geração (1965-1980)
37/11
3ª Geração (1965-1980)
38/11
4ª Geração (1980-?)
39/11
4ª Geração (1980-?)
40/11
Arquitetura de Computadores
Estudar Arquitetura de
Computadores é essencial para o
entendimento do funcionamento
dos recursos computacionais.
Arquiterura
• “... Atributos que têm impacto
direto sobre a execução lógica
de um programa”. (stallings 2002)
• Visualizar o estágio final mesmo antes de construir.
41/11
42/11
Arquitetura de Computadores
43/11
Como se fazer entender pelo computador?
• “Linguagem” do computador : 100011000001 (bits)
– Números binários: base da teoria computacional
1. Primórdios: uso da linguagem nativa em binário!!!
2. Linguagem de Montagem (Assembly)
– Montador: traduz uma versão simbólica das instruções para sua representação
binária na arquitetura
add A, B montador 100011000001
1. Linguagem de Programação de alto-nível
– Compilador: traduz instruções de alto-nível para instruções binárias diretamente
ou via um montador
A + B compilador add A, B montador 100011000001 ou
A + B compilador 100011000001
44/11
Mas é só isso?
• Existe ainda um programa que gerencia os recursos da máquina
durante a execução dos programas: o SISTEMA OPERACIONAL
(SO)
• Operações de Entrada/Saída (E/S), “carga” do programa na
memória, exceções, etc.
• O SO funciona como um gerente dos recursos, escondendo o
acesso direto ao hardware dos usuários
• Mais ainda: multiprocessamento, gerência de arquivos,
processamento distribuído, ...
• Assim, existem diversas camadas e serviços disponíveis para
auxiliar nossa comunicação com a máquina:
– Um modelo em camadas e serviços é uma forma interessante de abstração para
a comunicação
Organização
• Refere-se às unidades operacionais e
suas interconexões.
• Desta forma, uma mesma arquitetura
pode ser implementada por meio de
diferentes organizações. * Tecnologia de fabricação: Memória optica, magnética,
semicondutores.
45/11
46/11
Arquitetura dos Micros do Padrão PC
Barramentos
• Praticamente todos os componentes de um computador,
como processadores, memórias, placas de vídeo e
diversos outros, são conectados à placa-mãe a partir do
que chamamos de barramento. Sem entrar em termos
técnicos, ele é o encaixe de que cada peça precisa para
funcionar corretamente.
• Há barramentos específicos para praticamente todos os
componentes conectados ao sistema, geralmente em
siglas muito conhecidas pelos usuários, mas que não
são atreladas diretamente à função que realizam.
47/11
Barramento
• Na literatura os barramentos costumam
ser representados por setas grossas,
bidirecionais ou unidirecionais indicando o
sentido do fluxo dos dados ou
informações; em algumas situações
associa-se a essas setas um número que
diz quantas vias (fios, linhas etc.) o
barramento em questão disponibiliza para
o tráfego de informações (usualmente
binárias).
48/11
Barramento
• Em verdade, o barramento de um sistema de
computação é o elemento responsável pela
interligação dos componentes, conduzindo, de
modo sincronizado, o fluxo de informações
(dados, endereços e controle) de uns para os
outros de acordo com uma programação de
atividades previamente definida pela unidade de
controle (UC – em inglês CU) do
microprocessador.
49/11
Barramentos e funções
• Há três funções distintas nos principais barramentos de um
computador, que, em termos simples, conectam o processador, a
memória e os outros componentes conectados a ele pelo que
chamamos de barramentos de entrada e saída.
• Barramento de dados – como o próprio nome já deixa a entender, é
por este tipo de barramento que ocorre as trocas de dados no
computador, tanto enviados quanto recebidos.
• Barramento de endereços – indica o local onde os processos
devem ser extraídos e para onde devem ser enviados após o
processamento.
• Barramento de controle – atua como um regulador das outras
funções, podendo limitá-las ou expandi-las em razão de sua
demanda.
50/11
Barramentos de entrada e saída
• Além da comunicação entre o computador e a memória,
você pode adicionar diversos outros dispositivos à sua
placa-mãe, com um barramento especial para cada um
deles. Alguns dos formatos mais conhecidos neste
quesito são o PCI, o AGP e até mesmo o USB,
amplamente utilizado em pendrives, impressores,
teclados, mouses e outros periféricos.
• Há dezenas de explicações e termos mais técnicos para
barramentos e suas especificidades em computação.
Este pequeno artigo serve apenas de introdução para o
tema, apresentando apenas os conceitos mais básicos
sobre ele.
51/11
Interface
• Interface é o nome dado ao circuito que
controla um dispositivo de entrada ou
saída, enviando ou recebendo,
informações do processador ou do chipset
agindo como um adaptador chipset,
agindo como um adaptador desse
dispositivo.
52/11
Portas
• As portas são caminhos por onde
passa a informação entre o pc
computador e um periférico. Cada
porta tem um número e é dedicada a
uma função em particular.
Por exemplo, a maioria do tráfego da
Web passa pela porta número 80 ou
3128.
53/11
Periféricos
• são aparelhos ou placas de expansão que
enviam ou recebem informações do
computador. Na informática, o termo "periférico"
aplica-se a qualquer equipamento ou acessório
que seja ligado à CPU (unidade central de
processamento), ou, num sentido mais amplo,
ao computador. Exemplos de periféricos são:
impressoras, digitalizadores, leitores e
gravadores (drives) de CDs e DVDs, leitores de
cartões de memória e disquetes, mouses,
teclados, câmeras de vídeo, entre outros. 54/11