Introdução à Computação
e suas Aplicações
Eduardo Reck
Aula 03 - Introdução à Arquitetura e Organização de
Computadores & Sistemas de Numeração
Introdução à Arquitetura e Organização
de Computadores
 Sistemas Computacionais:
 Crescimento acelerado.
 Empregados em vários setores.
 Alguns mitos que se tornaram realidade:
Caixas Eletrônicos
Computação embarcada em automóveis.
Computadores Portateis.
Projeto do Genoma Humano
World Wide Web.
Sistemas Computacionais
 Classificação
 Desktop
 Servidores
 Computadores Embarcados.
Desktop
 Enfatizam o bom desempenho a um único usuário, por
um baixo custo e normalmente são usados para
executar software independente.
 Representa um dos maiores mercados para os
computadores e a evolução de muitas tecnologias de
computação é motivada por essa classe.
Servidores
 Forma moderna do que antes eram os mainframes,
minicomputadores e supercomputadores. Projetados
para suportar grandes cargas de trabalho, em
aplicações científicas ou em aplicações empresariais.
 São construídos a partir da mesma tecnologia básica
dos computadores desktop, mas fornecem uma maior
capacidade de expansão tanto no processamento
quanto na e/s de dados.
Servidores(2)
 Podem ser:
 Mini-servidores
 Menores que desktop e voltado para o armazenamento de dados
 Supercomputadores
 Constituído por centenas ou milhares de processadores, gigaBytes
ou teraBytes de memória e de teraBytes ou pentaBytes de
armazenamento.
 Voltados para resolução de cálculos científicas e de engenharia de
alta capacidade, tais como previsão do tempo, exploração de
petróleo, determinação da estrutura da proteína.
Servidores(2)
 Supercomputadores
 Blue Gene
 Primo do Deep Blue
 Possui 131.000 processadores
 360 trilhões de operações por
segundo
 31.634 vezes mais rápido que o
Deep Blue (256 co-processadores,
capazes de analisar
aproximadamente 200 milhões de
posições por segundo.
Computadores Embarcados
 Maior classe de computadores e abrangem a faixa mais
ampla de aplicações e desempenho.
 São projetados para executar uma aplicação ou um
conjunto de aplicações relacionadas como um único
sistema.
 Normalmente possuem necessidades específicas que
combinam um desempenho mínimo com limitações
rígidas em relação a custo ou potência.
 Computadores embutidos, em geral, possuem menor
tolerância a falhas, pois é comum seu emprego em
sistemas de tempo real.
Tipos de computadores
 Supercomputadores (grande capacidade de
processamento, paralelismo, pesquisas científicas):
CRAY
 Mainframes (grande porte, centenas de usuários):
IBM, DEC, UNISYS
 Minicomputadores (versão menor dos mainframes,
vários usuários)
 Microcomputadores (potência limitada, 1 usuário):
PC (downsizing!)
 Cluster: Agrupamento de computadores agregando uma
grande capacidade de processamento.
• O Cray CX1 tem 8 nós e 16 processadores Intel Xeon, dual ou quad core.
Cada nó pode ter 64 gigabytes de RAM e há um RAID com 4 terabytes de
disco.
• O preço vai de US$25.000,00 a US$ 60.000,00.
• Quem quiser se candidatar pode encontrar informações técnicas completas
aqui.
Tipos de computadores
Quanto ao número de processadores
Monoprocessamento: apenas 1 processador, 1
memória principal, vários programas podem
compartilhar o mesmo processador (ex: “time-sharing” cada programa tem um tempo para usar o
processador);
Multiprocessamento: mais de um processador,
podem compartilhar memória ou não, podem executar
vários programas ao mesmo tempo ou dividir a
execução de um.
Arquitetura X Organização
 Arquitetura
 São os atributos de um sistema que são visíveis para o
programador, ou seja, que possuem impacto direto sobre a
execução lógica de um programa.
 Exemplos: conjunto de instruções, número de bits usado para
representar os tipos de dados, mecanismos de E/S, técnicas de
endereçamento de memória.
 Organização
 São às unidades operacionais e suas interconexões que
implementam as especificações da sua arquitetura.
 Exemplos: sinais de controle, interfaces entre o computador e os
periféricos, tecnologia de memória utilizada.
Arquitetura X Organização
 Mais exemplos:
 Definir se um computador deve ou não ter uma instrução de
multiplicação.
 Decisão de Arquitetura
 Definir se uma instrução de multiplicação será implementada por
uma unidade especial de multiplicação ou por um mecanismo
que utiliza repetidamente sua unidade de soma.
 Decisão de Organização
Arquitetura X Organização
Arquitetura
Organização
Transparente ao programador
Pode sobreviver por muitos anos.
Tempo de vida relativamente curto.
Isso garante compatibilidade de software.
Pode mudar sem afetar a arquitetura
Muda com a evolução da tecnologia.
Arquitetura X Organização
Arquitetura
Organização
Transparente ao programador
Pode sobreviver por muitos anos.
Tempo de vida relativamente curto.
Isso garante compatibilidade de software.
Pode mudar sem afetar a arquitetura
Muda com a evolução da tecnologia.
Arquitetura X Organização
 Outras características:
 Organização
 Tempo de vida relativamente curto.
 Muda com a evolução da tecnologia.
 Pode mudar sem afetar a arquitetura
 Transparente ao programador
 Arquitetura
 Pode sobreviver por muitos anos.
 A família Intel X86 possui a mesma arquitetura básica
 A família IBM System/370 também.
 Isso garante compatibilidade de software.
 Pelo menos retro-compatibilidade
 Em microcomputadores a relação entre arquitetura e
organização é mais estreita.
 Mudanças tecnológicas, em geral, também influenciam a
arquitetura.
Aplicações & Utilitários
Sistema Operacional
Basic Input Output System (BIOS)
Hardware
Estágios de Evolução da Arquitetura de
Computadores.
Geração Mecânica (1642-1945)
 Blaise Pascal
 Calculadora mecânica
 Só efetuava somas e subtrações.
 Wilhelm Von Leibniz
 Calculadora mecânica que efetuava as quatro
operações aritméticas
Estágios de Evolução da Arquitetura de
Computadores
 Charles Babbage
 Máquina Diferencial - Só somava e subtraia
 Realizava um único algoritmo.
 Método das diferenças finitas usando polinômios
 Saída era dada através da perfuração de pratos de cobre.
 Máquina Analítica (1834)
 Possuía memória, unidade de processamento, unidade de entrada
e saída.
Estágios de Evolução da Arquitetura de
Computadores
 Ada Augusta Lovelace
 Primeira desenvolvedora de software da história
 Produziu software para a máquina analítica de
Babbage
 Infelizmente a máquina não funcionou
corretamente devido a limitações da época.
Estágios de Evolução da Arquitetura de
Computadores
 Konrad Zuse
 máquina de calcular usando relés – 1930
 John Atanasoff
 Aritmética binária e memória com capacitores
 Howard Aiken




descobriu os trabalhos de Babbage
Mark I - 1944
6 segundos para executar uma instrução
Marcou o fim da geração de computadores mecânicos
Estágios de Evolução da Arquitetura de
Computadores
Geração das Válvulas (1945-1955)
 COLOSSUS - 1943
 1º computador eletrônico digital do mundo
 Mauchley e Eckert
 ENIAC - 1946
 18mil válvulas, 1500 relés e 6mil chaves
 Marco da história do computador moderno
 Fundaram uma empresa (hoje, Unisys)
Estágios de Evolução da Arquitetura de
Computadores
 John von Neumann
 Máquina de von Neumann - 1952
 programas representados em forma binária na memória do
computador (programa armazenado)
 uso da aritmética binária para representar números memória,
unidade aritmética, unidade de controle,
 dispositivo de entrada e dispositivo de saída
 Registrador especial: Acumulador
 Maioria dos computadores atuais ainda é projetada segundo essas
premissas
Estágios de Evolução da Arquitetura de
Computadores
Estágios de Evolução da Arquitetura de
Computadores
Geração dos transistores (1955-1965)
 Invenção do transistor - 1948
 PDP-1 - 1961 - Digital Equipament Corp.
 Vídeo de 512x512 pixels
 IBM 7090
 Computador mais rápido da época
 Início do domínio da IBM
 PDP-8
 Barramento único
 Surgimento dos minicomputadores
Estágios de Evolução da Arquitetura de
Computadores
 Seymour Cray
 CDC 6600 - 1964
 processamento paralelo
 outros processadores ajudando a CPU principal
 surgimento dos supercomputadores
Estágios de Evolução da Arquitetura de
Computadores
Circuitos Integrados (1965-1980)
 Surgimento do Circuito Integrado - 1958
 Robert Noyce
 Co-fundador da Intel
 Gordon Moore
 Lei de Moore: O número de transistores em um chip
dobra a cada 18 meses
Estágios de Evolução da Arquitetura de
Computadores
 IBM System/360
 Mesma arquitetura em máquinas com diferentes poder de
processamento.
 Surgimento do conceito de multiprogramação
 Utilizava a microprogramação para emular outros computadores da
IBM.
 DEC lança o PDP-11.
Estágios de Evolução da Arquitetura de
Computadores
Integração de Circuitos em Escala muito Alta (1980 - ?)
 Circuitos integrados VLSI
 Milhões de transistores em um único chip
 Surgimento dos microcomputadores
 Apple e Apple II - Macintosh
 IBM PC
 Início da computação pessoal
Definições de Siglas
 PC - Program counter – indica a próxima instrução a ser executada.
 IR - Instruction register – recebe a instrução a ser decodificada pela
CPU.
 AC – Acumulador (registrador auxiliar) - Guarda
temporariamente valores que estão sendo calculados.
 MAR – Memory Address Register - Registrador que indica a
próxima posição de memória a ser referenciada. Conectado ao barramento
de endereços.
 MDR – Registrador usado para receber ou transmitir dados. Conectado ao
barramento de dados.
 ALU (ULA) – Unidade Lógica Aritmética
Organização de um SC
UCP
Registradores Cache
de
L1
Uso
Geral
ULA
ULA:
ACC:
RI:
CP:
REM:
RDM:
Unidade Lógica e Aritmética
Acumulador
Registrador de Instrução
Contador de Programa
Registrador de End. de Memória
Registrador de Dados de Memória
ACC
RI
CP
Memória
Cache L2
Decodificador
de Instruções
Unidade
de
Controle
...
Dispositivos
de E/S
REM
RDM
BD
BE
BC
Memória
Principal
Como funciona um computador simples
IR – Instruction Register
PC – Program Counter
MAR – Memory Address
Register
MBR – Memory Bus Register
Unid. controle
IR
PC
MAR
Memória
Programas
+
Dados
Teclado
MBR
Gerai
s
Vídeo
ALU
E/S
Unid. processamento
Buffers
Como funciona um computador?
Início
Busca a próxima
instrução
Executa a instrução
Término
Evolução das
Linguagens
http://www.scriptol.com/program
ming/chronology.php
Computador – Sistema Binário
 Desenvolvido em 1679 por Leibniz
(co-criador do Cálculo)
 Possui apenas dois algarismos
 Componentes eletrônicos possuem dois estados
elétricos: “ligado” ou “desligado”
 Armazenamento e manipulação mais simples
 Representação dos números mais longa
 Um circuito contendo um sinal elétrico é chamado
de “bit” (binary digit)
Sistemas de Numeração
• bit – menor partícula de informação no
computador, pode representar 0 ou 1. Esses
dois símbolos são opostos e mutuamente
exclusivos.
• Byte – conjunto de 8 bits.
Sistemas de Numeração
 Existiram e existem diversos sistemas de
numeração.
 No computador, serve para questões de
endereçamento, armazenamento, conteúdo
de tabelas e representações gráficas.
 Bases diferentes usadas nos mais diversos
computadores.
Sistemas de Numeração
Bases
 Binária
0, 1
 Octal
0, 1, 2, 3, 4, 5, 6, 7
 Decimal
0, 1, 2, 3, 4, 5, 6, 7, 8, 9
 Hexadecimal
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
Número
Zero
Um
Dois
Três
Quatro
Cinco
Seis
Sete
Oito
Nove
Dez
Onze
Doze
Treze
Quatorze
Quinze
Base 2
0
1
10
11
100
101
110
111
1000
1001
1010
1011
1100
1101
1110
1111
Base 8
0
1
2
3
4
5
6
7
Base 10
Base 16
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
• Existem 10 tipos de pessoas, as que
conhecem sistemas binários e as que não
conhecem sistemas binários!
Sistemas de Numeração
8 bits = 1 Byte
Múltiplos em potências de 2 (210 = 1024):
1 KiloByte
KB = 1024 Bytes
1 MegaByte
MB = 1024 KB
1 GigaByte
GB = 1024 MB
1 TeraByte
TB = 1024 GB
1 PetaByte
PB = 1024 TB
1 ExaByte
EB = 1024 PB
1 ZettaByte
ZB = 1024 EB
1 YottaByte
YB = 1024 ZB
(210 Bytes)
(220 Bytes) 1024*1024
(230 Bytes) 1024*1024*1024
(240 Bytes)
(250 Bytes)
(260 Bytes)
(270 Bytes)
(280 Bytes)
Sistemas de Numeração
Padrões de caracteres – EBCDIC
Extended Binary-Coded Decimal Interchange Code
 Criada pela IBM em 1964
 Utiliza 8 bits para representar um caractere, permite 256
caracteres
 Ainda utilizada em computadores de grande porte
(mainframes)
Sistemas de Numeração
Padrões de caracteres – ASCII
American Standard Code for Information Interchange
 Começou a tornar-se padrão em 1967
 Utilizava 7 bits para representar um caractere, permitia
128 caracteres
 Gerou diversas extensões e variações:
 ASCII Extended – 256 caracteres;
 ISO 8859 – 256 caracteres;
 UTF-8 – mais de 1 milhão de caracteres;
Sistemas de Numeração
Usos comuns
 Páginas de código das páginas Web:
 Pode dificultar a exibição de caracteres acentuados e símbolos
especiais.
 A codificação pode ser configurada nos navegadores
(browsers).
 Anexos de e-mail, às vezes, são convertidos em
seqüências de caracteres ASCII para permitir a
transmissão sem perda:
 UUencode, Base64, BinHex ou MIME.
Sistemas de Numeração
 Representação nas bases
1011012 - 101101 na base 2 (binária)
7528 - 752 na base 8 (octal)
651 - 651 na base 10 (decimal)
Quando não é indicada a base, a base é decimal. Mas
poderia ser representado assim: 65110
42316 - 423 na base 16 (hexadecimal)
Sistemas de Numeração
 Representação nas bases – Base decimal
7484
7484 = 7 x 1000 + 4 x 100 + 8 x 10 + 4
7484 = 7 X 103 + 4 X 102 + 8 X 101 + 4 X 100
 Representação em polinômio genérico
Número = dn10n + dn-110n-1 + ... d1101 + d0100
Sistemas de Numeração
 Representação de binário na base 10
11010012
11010012 = 1 x 26 + 1 x 25 + 0 x 24 + 1 x 23 + 0 x 22 + 0 x
21 + 1 x 20
11010012 = 64 + 32 + 0 + 8 + 0 + 0 + 1
11010012 = 10510
 Representação em polinômio genérico
Número = bn2n + bn-12n-1 + ... b121 + b020
Sistemas de Numeração
 Representação de octal na base 10
546218
546218 = 5 x 84 + 4 x 83 + 6 x 82 + 2 x 81 + 1 x 80
546218 = 20480 + 2048 + 384 + 16 + 1
546218 = 2292910
 Representação em polinômio genérico
Número = on8n + on-18n-1 + ... o181 + o080
Sistemas de Numeração
 Representação de hexadecimal na base 10
3974116
3974116 = 3 x 164 + 9 x 163 + 7 x 162 + 4 x 161 + 1 x 160
3974116 = 196608 + 36864 + 1792 + 64 + 1
3974116 = 23532910
 Representação em polinômio genérico
Número = hn16n + hn-116n-1 + ... h1161 + h0160
Sistemas de Numeração
 Mudança da base 10 para binário
714 = 1011001010
714 |_2_
0 357 |_2_
1 178 |_2_
0 89 |_2_
1 44 |_2_
0 22 |_2_
0 11 |_2_
1 5 |_2_
1 2 |_2_
0 1
Sistemas de Numeração
 Mudança da base 10 para binário
 714
714 = 10110010102
714 |_2_
0 357 |_2_
1 178 |_2_
0 89 |_2_
1 44 |_2_
0 22 |_2_
0 11 |_2_
1 5 |_2_
1 2 |_2_
0 1
Sistemas de Numeração
Mudança da base 10 para octal
714
714 |_8_
2 89 |_8_
1 11 |_8_
3 1
714 = 13128
Sistemas de Numeração
 Mudança da base 10 para hexadecimal
714
714 |_16_
10 44 |_16_
12 2
714 = 2CA16
Hexadecimal
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
A=10 , B=11 , C=12 , D=13 , E=14 , F=15
Sistemas de Numeração
 Mudança da base binária para decimal (10)
10110010102
= 0+2+0+8+0+0+64+128+0+512 = 714
0 x 20 = 0
1 x 21 = 2
0 x 22 = 0
1 x 23 = 8
0 x 24 = 0
0 x 25 = 0
1 x 26 = 64
1 x 27 = 128
0 x 28 = 0
1 x 29 = 512
1 0 1 1 0 0 1 0 1 02
32768
16384
8192
4096
2048
1024
512
256
128
64
32
16
8
0
0
0
0
0
0
1
0
1
1
0
0
1 0 1 0
0
0
0
0
0
0
512
0
128
64
0
0
8
512+128+64+8+2 = 714
4
0
2
2
1
0
Sistemas de Numeração
• Mudança da base octal para decimal (10)
1 3 1 28
= 2+8+192+512 = 714
2 x 80 = 2
1 x 81 = 8
3 x 82 = 192
1 x 83 = 512
Sistemas de Numeração
• Mudança da base hexadecimal para decimal
2 C A16
= 10+192+512 = 714
A x 160 = 10 x 160 = 10
C x 161 = 12 x 161 = 192
2 x 162 = 512
Exercícios
Converta 179 e 65 para a base binária
Converta 1110 e 10110 para a base decimal
Qual é o maior número decimal que podemos representar com
a) 9 bits
b) 10 bits
c) 15 bits
d) 16 bits
Converter os seguintes dígitos binários para hexadecimal
a) (1010101010)2
b) (10000001)2
c) (11111111111)2
d) (100110011001)2
Qual o equivalente binário dos seguintes números hexadecimais
a) (1000B0CA)16
b) (FADAB0A)16
c) (BADCA0)16
d) (CADEAD0)16
Respostas
Converta 179 e 65 para a base binária = 10110011 e 1000001
Converta 1110 e 10110 para a base decimal = 14 e 22
Qual é o maior número decimal que podemos representar com
a) 9 bits = 511
b) 10 bits = 1023
c) 15 bits = 32767
d) 16 bits = 65535
Converter os seguintes dígitos binários para hexadecimal
a) (1010101010)2 = 2AA
b) (10000001)2 = 81
c) (11111111111)2 = 7FF
d) (100110011001)2 = 999
Qual o equivalente binário dos seguintes números hexadecimais
a) (1000B0CA)16 = 10000000000001011000011001010
b) (FADAB0A)16 = 1111101011011010101100001010
c) (BADCA0)16 = 101110101101110010100000
d) (CADEAD0)16 = 1100101011011110101011010000
Download

Sistemas de Numeração