Você está na página 1de 10

Bibliografia

• MONTEIRO M. A. Introdução à Organização de


Computadores. 5ed. LTC. 2012.

Introduç
Introdução à Organizaç
Organização e • PATTERSON, D. A.; HENNESSY, J. L.
Organização e Projeto de Computadores. Rio
Arquitetura de Computadores de Janeiro: Elsevier, 2005.
- Organização e Arquitetura de
Computadores A -
• STALLINGS, W. Arquitetura e Organização de
Prof. Juliano F. Kazienko Computadores. Prentice Hall, 5ed., 2002.
UFSM-CTISM-CSTRC
kazienko@redes.ufsm.br
Juliano F. Kazienko
2
kazienko@redes.ufsm.br

Agenda Importância da OAC


• Estudo do hadware
• Importância da OAC • Grande variabilidade de tipos de computadores
– Classes de aplicações: desktop, etc
• Organização X Arquitetura – Famílias de computadores: Intel x86, PowerPC, etc.
• Classes de aplicações – Recursos: n. de núcleos, clock, etc.
• Rápida evolução
• Alfabeto dos computadores • Impacto no desempenho do software
• Componentes de um computador – Tamanho da palavra, grau de paralelismo, etc.
• Impacto no comportamento do software
• Evolução histórica dos computadores – Extremidade: Ordem de armazenamento de palavras
(bytes) na memória. Ex.:80AC12CD16

Juliano F. Kazienko Juliano F. Kazienko


3 4
kazienko@redes.ufsm.br kazienko@redes.ufsm.br

Análise do Computador Organização X Arquitetura


• Dois pontos de vista
• Exemplo: Família de computadores Intel x86:
– Organização do Computador 80386, 80486, Pentium, Pentium II, Pentium III,
• Aspectos de construção da máquina etc.
• Atributos relativos aos componentes físicos
(tecnologia de memória, frequência do relógio,
• O usuário troca de processador sem precisar
sinais de controle) alterar seus programas porque toda a família
• Entendimento é desnecessário pelo programador emprega a mesma arquitetura
– Arquitetura do Computador • No entanto, cada processador tem uma
• Aspectos que são visíveis p/ o programador (tipo e organização diferente, que afeta o seu
tamanho de dados, conjunto de instruções, modos desempenho
de endereçamento) vocabulário de instruções
entendidos por uma
determinada arquitetura
Juliano F. Kazienko Juliano F. Kazienko
kazienko@redes.ufsm.br
5 kazienko@redes.ufsm.br
6

1
Organização X Arquitetura Tecnologias Computacionais
• Estabelecer se um computador deve ou • TC estão em constante evolução
não ter uma instrução de multiplicação é − O custo da computação diminuiu
uma decisão de projeto de Arquitetura − Os computadores diminuíram (downsizing)
• Aplicações que eram economicamente inviáveis
passaram a ser possíveis, como:
• Definir se essa instrução será
– Caixas automáticos
implementada por uma unidade específica – Computação em automóveis
de multiplicação ou não é uma decisão de – Computadores Laptop
Organização – Projeto do Genoma Humano
– World Wide Web

Juliano F. Kazienko Juliano F. Kazienko


7 8
kazienko@redes.ufsm.br kazienko@redes.ufsm.br

Classes de Aplicações Classes de Aplicações


• Computadores Desktop
• De forma geral, os computadores são
– Bom desempenho a um único usuário por
usados em três diferentes classes de
aplicações [PATTERSON e HENNESSY, 2005] vez

– Computadores desktop – Rodam navegadores, editores de texto,

– Servidores imagens, etc.

– Computadores embarcados (embutidos) – Baixo custo

– Tem cerca de 30 anos Computador


Pessoal
Juliano F. Kazienko Juliano F. Kazienko
9 10
kazienko@redes.ufsm.br kazienko@redes.ufsm.br

Classes de Aplicações Classes de Aplicações


• Computadores Embarcados
• Servidores – Um computador dentro de outro
– Projetados para suportar grandes cargas de dispositivo, usado p/ executar uma
trabalho aplicação predeterminada ou uma coleção
de software
– Mesma tecnologia básica dos computadores Dispositivo
desktop, mas fornecem maior capacidade de – Maior classe de computadores Embarcado

expansão tanto da capacidade de – Número enorme de aplicações. Ex.:


• Microprocessadores encontrados em máquinas
processamento quanto de entrada/saída de lavar, carros, smartphones, televisão digital
– Ênfase em estabilidade, confiabilidade e – Hoje, são praticamente ubíquos
paralelismo – Normalmente, rodam poucas aplicações
– Servidores web, de e-mail, mainframes, etc. específicas
Juliano F. Kazienko Juliano F. Kazienko
kazienko@redes.ufsm.br
11 kazienko@redes.ufsm.br
12

2
Classes de Aplicações Conceito de Computação
• É a manipulação de dados para algum fim
• Cada classe possui requisitos • Nos seus primórdios
– Confiabilidade – Os dados eram números
– Escalabilidade – E as manipulações eram operações/funções
matemáticas
– Tempo de resposta • Atualmente, a computação diz respeito a um
– Tamanho universo bem mais abrangente
– Preço – Informação pode ser números, textos, datas, mapas,
imagens áudio, vídeo, etc.
– As manipulações podem incluir a análise de imagens,
tratamento de fotos, transmissão de dados, etc.

Juliano F. Kazienko Juliano F. Kazienko


13 14
kazienko@redes.ufsm.br kazienko@redes.ufsm.br

Alfabeto dos Computadores Alfabeto dos Computadores


• Uma aplicação pode possuir milhões de linhas • A comunicação em um computador
de código e se basear em bibliotecas de eletrônico é realizada através de sinais
software sofisticadas que implementam
elétricos
funções complexas no suporte da aplicação

• O hardware de um computador só pode • Os sinais mais fáceis de serem


executar instruções de baixo nível entendidos pelas máquinas são ligado
extremamente simples e desligado

Juliano F. Kazienko Juliano F. Kazienko


15 16
kazienko@redes.ufsm.br kazienko@redes.ufsm.br

Alfabeto dos Computadores Instruções


• O alfabeto dos computadores se resume • Computadores obedecem comandos
a apenas duas letras, cujos símbolos são denominados de instruções, que são
os números 0 e 1, comumente chamados coleções de bits
de números na base 2, ou binários
• Por exemplo, os bits 1000110010100000
• Cada “letra” é denominada de um dígito indicam a um certo computador para
binário ou bit somar dois números

Juliano F. Kazienko Juliano F. Kazienko


kazienko@redes.ufsm.br
17 kazienko@redes.ufsm.br
18

3
Primórdios da Montagem
Programação Dureza!
• A notação simbólica é traduzida para
• Os primeiros programadores escreviam binário por meio de um programa
programas em números binários denominado montador

• Invenção de uma notação que • Por exemplo, a instrução add A,B seria
posteriormente era traduzida para binário traduzida pelo montador como
1000110010100000

Juliano F. Kazienko Juliano F. Kazienko


19 20
kazienko@redes.ufsm.br kazienko@redes.ufsm.br

Linguagem Assembly Linguagem de Alto Nível


• A notação simbólica é denominada de
• Contudo, o ideal é escrever programas
linguagem assembly
usando uma notação mais natural para
seres humanos (linguagem de alto nível)
A linguagem assembly foi um avanço, mas ainda
exigia que o programador escrevesse uma linha
de código para cada instrução que a máquina
executasse, obrigando o programador a pensar
• Os programas que aceitam essa notação
como uma máquina! mais natural p/ seres humanos são os
compiladores

Juliano F. Kazienko Juliano F. Kazienko


21 22
kazienko@redes.ufsm.br kazienko@redes.ufsm.br

Resumo Componentes Básicos


• Para [PATTERSON e HENNESSY, 2005]
• Um compilador permite que um os cinco componentes básicos de um
programador escreva esta expressão computador são
em linguagem de alto nível:
A+B – Entrada

• O compilador compila para assembly: – Saída


add A,B – Memória
• O montador traduz para binário:
– Caminho de Dados
1000110010100000
– Controle
Juliano F. Kazienko Juliano F. Kazienko
kazienko@redes.ufsm.br
23 kazienko@redes.ufsm.br
24

4
Componentes Básicos Componentes Básicos
• Os dispositivos de entrada servem para • O caminho de dados realiza as operações
alimentar o computador com informações aritméticas
• Os dispositivos de saída servem para • O controle indica ao caminho de dados, à
que os resultados da computação sejam memória e aos dispositivos de E/S, o que
enviados aos usuários fazer de acordo com as instruções do
• A memória é onde os programas e os programa
dados são mantidos quando estão sendo • A combinação do caminho de dados e o
executados controle são denominados de processador

Juliano F. Kazienko Juliano F. Kazienko


25 26
kazienko@redes.ufsm.br kazienko@redes.ufsm.br

Componentes Básicos Abstração


• Um conceito comum nas descrições de
• Processador ou Central Processor Unit
hardware e de software é que os detalhes de
(CPU) ou Microprocessador nível mais baixo são mantidos escondidos
• Parte ativa do computador que segue dos níveis mais altos
rigorosamente as instruções de um • Generalização, processo pelo qual se
programa. reconhecem caracteres comuns a vários
• Ele soma e testa números, sinaliza objetos singulares, resultado a formação de um
novo conceito ou ideia
dispositivos de E/S para serem ativados
• O uso dessas camadas ou abstrações é uma
e assim por diante
técnica importante empregada no projeto de
sistemas computacionais sofisticados
Juliano F. Kazienko Juliano F. Kazienko
27 28
kazienko@redes.ufsm.br kazienko@redes.ufsm.br

Níveis de Abstração Conjunto de Instruções


• Tornam sistemas complexos
simples/tratáveis • Uma das abstrações mais importantes é a
Softwares de aplicação
• Considere um software de arquitetura do conjunto de instruções,
Softwares de
aplicação, por exemplo... sistema que permite aos projetistas de computador
− Escrito em linguagem de alto-
nível (Java, Pascal, C, etc.) Hardware
pensarem em funções independente do
− Inclui chamadas de funções de hardware que as executa
bibliotecas
− Algumas funcionalidades
requerem auxílio do SO
− No nível mais baixo, tudo é
executado de fato no hardware

Juliano F. Kazienko Juliano F. Kazienko


kazienko@redes.ufsm.br
29 kazienko@redes.ufsm.br
30

5
Evolução Histórica dos Geração 0 – Mecânica
• Máquina de calcular de Pascal (1642)
Computadores – Calculadora mecânica criada por Blaise Pascal
– Operações adição e subtração, com “vai um”
1945 1965 1990 – Uso de engrenagens e funcionava
Geração 1 - válvulas Geração 3 - Geração 5 - ULSI manualmente com manivela
circuitos integrados

1642 1955 1980


Geração 0 - Geração 2 - Geração 4 - VLSI
mecânicos transistores

Juliano F. Kazienko Juliano F. Kazienko


31 32
kazienko@redes.ufsm.br kazienko@redes.ufsm.br

Geração 0 – Mecânica Geração 0 – Mecânica


• Leibniz (~1672) multiplicação e • Máquina Analítica
divisão – Avanço: 1°computador de propósito geral
• Babbage (~1822) Máquina de – Ainda era inteiramente mecânica (rodas dentadas e
engrenagens)
Diferenças
– 4 componentes
– Cálculo de tabelas de números úteis à • armazenamento (memória)
navegação naval • engenho (unidade de cálculo)
– Máquina calculadora programável (soma e • seção de entrada (leitora de cartões perfurados)
subtração) • seção de saída (saída perfurada e impressa)
– Permitia programação através de cartões
– Método de saída: perfuração dos perfurados. Seria possível executar algoritmos
resultados em uma placa de cobre com um – A máquina analítica nunca foi (completamente
buril de aço construída)
Juliano F. Kazienko Juliano F. Kazienko
33 34
kazienko@redes.ufsm.br kazienko@redes.ufsm.br

Geração 0 – Mecânica Geração 1 - Válvulas


• Relés eletromecânicos • Relés eram lentos. Num
• Aiken (1944, Harvard) computador, os bits trocam
de estado a todo instante. A
– Mark I computador de uso geral construído solução encontrada foi o uso
com relés de válvulas
• Relé: componente elétrico que funciona como • Válvula: tubo de vidro
uma chave que pode ser fechada ou aberta fechado sem ar em seu
através de corrente elétrica interior, que contém
eletrodos a fim de controlar
• Origem da computação digital o fluxo de elétrons
• Aqueciam bastante
Representação de
um bit 1 Representação de • Costumavam queimar com
um bit 0 facilidade
Início da era eletrônica!
Juliano F. Kazienko Juliano F. Kazienko
kazienko@redes.ufsm.br
35 kazienko@redes.ufsm.br
36

6
Geração 1 - Válvulas Geração 1 - Válvulas
• Electronic Numerical Integrator and • ENIAC (Electronic Numerical Integrator And
Computer (ENIAC), Eckert e Mauchy Computer)
– Primeiro computador de propósito geral eletrônico
(1946)
– Criado inicialmente para a realização de cálculos
balísticos
– 18 mil válvulas, 10 mil capacitores, 70 mil resistores,
um peso de 30 toneladas, consumo de 140 quilowatts
e 800 km de cabos
– Programação feita em painéis, com manipulação de
chaves e cabeamento
– Programação em linguagem de máquina
– Dados podiam ser lidos de cartões perfurados
– Máquina decimal, com 20 registradores capazes de
armazenar um valor numérico de 10 dígitos
Juliano F. Kazienko Juliano F. Kazienko
37 38
kazienko@redes.ufsm.br kazienko@redes.ufsm.br

Geração 1 - Válvulas Arquitetura de Von Neumann:


• EDVAC (Electronic Discrete Variable Características
Automatic Computer)
• Computador eletrônico com
• Máquina IAS (1946) programa armazenado na memória
– Desenvolvida por John Von Neumann única
– Aritmética binária ao invés da decimal • Instruções gravadas em memória ao
– Propôs uma arquitetura de computadores com invés de fitas perfuradas
programa armazenado: Arquitetura de Von • Quase a mesma emprega até hoje
Neumann Para Von
• Ainda hoje é base de quase todos os computadores Neumann, o
computador Unidade de Memória
John Von Neumann
Físico e Matemático do Século XX
digitais (CPU, Memória, Entrada/Saída) deveria conter
unidade de

• UNIVAC I (1949, Mauchly e Eckert) memória,


processamento
e componentes
CPU
Unidade de
Dispositivo de Dispositivo de
– primeiro computador para fins comerciais de E/S. Entrada Controle Saída

• IBM-701 (1953), 704 (1956) e 709 (1958)


ULA

Juliano F. Kazienko Juliano F. Kazienko


39 40
kazienko@redes.ufsm.br kazienko@redes.ufsm.br

Geração 1 - Válvulas Geração 1 - Válvulas


• EDVAC (Electronic Discrete Variable
• IBM-701
Automatic Computer)

Juliano F. Kazienko Juliano F. Kazienko


kazienko@redes.ufsm.br
41 kazienko@redes.ufsm.br
42

7
Geração 2 - Transistores Geração 2 - Transistores
• Transistor
– Mais baratos • Inicialmente, os programas eram escritos
– Menores em cartões perfurados
– Menor consumo
– Aqueciam menos
– Mais confiáveis e duráveis
– Melhor desempenho do que as válvulas
– Popularização (década de 60)
– Dispositivo constituído de semicondutores a fim de controlar
a passagem de elétrons em um circuito
– Base da lógica digital ligar e desligar a corrente elétrica
em um dispositivo (2 estados)
– Surgimento de linguagens de programação de nível superior
às linguagens Assembly da época. Ex: Fortran

Juliano F. Kazienko Juliano F. Kazienko


43 44
kazienko@redes.ufsm.br kazienko@redes.ufsm.br

Geração 2 - Transistores Geração 3 – Circuitos


integrados
• IBM 7090 e 7094 - série transistorizada • Large Scale Integration (LSI)
– Dezenas de transistores colocados em uma única pastilha
– Computadores menores, mais rápidos e mais baratos
– Ideia de agrupar circuitos eletrônicos numa unidade, o chip
• Série 360 da IBM (1964)
– “Família” de máquinas com mesma linguagem de
montagem, mas com tamanhos e potências diferentes
– Usado tanto para área científica quanto comercial
– Surgimento da técnica de MULTIPROGRAMAÇÃO
– Sistema operacional OS/360 para gerenciar os recursos do
hardware
– Sistemas operacionais em lote e de tempo compartilhado
• Alta capacidade de armazenamento (16MB)
de processamento, e MP orientada a byte
Juliano F. Kazienko Juliano F. Kazienko
45 46
kazienko@redes.ufsm.br kazienko@redes.ufsm.br

Geração 3 – Circuitos Geração 4 - VLSIs


integrados • Very Large Scale Integration (VLSI)
• Série 360 da IBM (1964) – Milhões de transistores armazenados em uma
única pastilha
– Computadores cada vez menores e mais rápidos
– Anos 80

• Surgimento dos Computadores Pessoais (PC)


– Série Intel de “chips” tornou-se padrão. Ex.: 8086,
8088, 80286, 80386, 80486, Pentium
– IBM PC adotou o chip Intel para CPU
– O Altair foi o primeiro microcomputador
Primeiro comercializado. Era baseado na CPU Intel 8080, c/
computad
or pessoal
processador de 8 bits
lançado • Tinha um interpretador da linguagem Basic (desenvolvido
comercial por Bill Gates e Paul Allen)
Juliano F. Kazienko
mente Juliano F. Kazienko
kazienko@redes.ufsm.br
47 kazienko@redes.ufsm.br
48

8
Geração 4 - VLSIs Geração 4 - VLSIs
• Computadores pessoais – PC
• Computadores pessoais – PC
– TK85
• Fabricante: Microdigital Eletrônica Ltda
– APPLE II
• País: Brasil • Fabricante: Apple Computer, Inc.

• Linha: Sinclair • País: Estados Unidos

• Compatibilidade: ZX-81 • Compatibilidade: Apple IIe

• Linguagem: Assembly e BASIC • Linha: Apple II

• Lançamento: Fev/1983 • Ano de lançamento: abril de 1984

• Processador: Z80 A (8 bits) • Processador: 65C02

• Clock: 3,25MHz • Clock: 1,4 MHz

• Memória RAM: 16 ou 48 Kbytes • Memória RAM: 128 Kbytes

• Sistema Operacional: P 1 • Memória ROM: 16 Kbytes

• Tela modo texto: 24 linhas x 32 colunas

Juliano F. Kazienko Juliano F. Kazienko


49 50
kazienko@redes.ufsm.br kazienko@redes.ufsm.br

Geração 4 - VLSIs Geração 4 - VLSIs


• Computadores pessoais – PC • Computadores pessoais – PC
– MSX – Microcomputadores se popularizam
• Fabricante: Gradiente
– Adequados p/ casas e pequenos escritórios
• País: Brasil
• Linha: MSX – Em 1981, a IBM lança o IBM PC
• Compatibilidade: MSX-1
• Ano de lançamento: Dez/1985 • Baseado na arq. 8086
• Processador: Z80 A, de 8 bits
• Tornou-se padrão de fato
• Clock: 3,58 MHz
• Memória RAM: 64 Kbytes • Fabricantes vendem PC-compatible
• Memória ROM: 32 Kbytes
• Modelos: 1.0 (XP-800), 1.1 (GPC-1), Plus, DD Plus
– PCs (XT, 286, 386... Pentium)
• Processador: 8086 8bits, 80286 16bits, 80386 32bits
• 80486 32bits PENTIUM 32bits, PENTIUM 64bits
Juliano F. Kazienko Juliano F. Kazienko
51 52
kazienko@redes.ufsm.br kazienko@redes.ufsm.br

Geração 5 - ULSIs Hoje


• Ultra Large Scale Integration (ULSI) • Sistemas multi-processados
• 1990 em diante – Processadores paralelos
• Evolução das aplicações
– Sistemas especialistas, sistemas multimídia, banco de – Cluster de máquinas x mainframes
dados distribuídos, inteligência artificial, redes neurais,...
– Necessidade de maior capacidade de processamento e – Computação de alto desempenho:
armazenamento de dados Clusters X Grades
• Novos paradigma no projeto de
computadores – Computadores pessoais multi-processados
– Arquiteturas Paralelas
– Processamento Distribuído nos Sistemas Operacionais
• Multi-core
– Redes de Alta Velocidade • Processadores de áudio
– Linguagens e metodologias de programação concorrentes
– Linguagens naturais: interface homem/máquina • Processadores de Vídeo - GPUs
Juliano F. Kazienko Juliano F. Kazienko
kazienko@redes.ufsm.br
53 kazienko@redes.ufsm.br
54

9
Hoje Hoje
• Supercomputadores • Miniaturização
– Computadores de grande – A partir dos anos 90
capacidade
• Processamento, memória, etc. – Ao mesmo tempo, a capacidade de
– Realizam trilhões de operações processamento e memória também aumentou
por segundo rapidamente
– Muitos processadores
interconectados
– Aplicações: previsão do tempo e
simulações científicas
– Bastante caros
Juliano F. Kazienko Juliano F. Kazienko
55 56
kazienko@redes.ufsm.br kazienko@redes.ufsm.br

Para onde vamos...


• Nanotecnologia
• Computação quântica
• .....

Juliano F. Kazienko
57
kazienko@redes.ufsm.br

10

Você também pode gostar