Introdução à Computação
e suas Aplicações
Eduardo Reck
Aula 03 - Introdução à Arquitetura e Organização de
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.
Introdução à Arquitetura e Organização
de Computadores
Sistemas Computacionais
Classificação
Desktop Servidores
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.
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.
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.
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.
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
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.
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 Organização
Tempo de vida relativamente curto.
Muda com a evolução da tecnologia. Pode mudar sem afetar a arquitetura
Transparente ao programador Pode sobreviver por muitos anos.
Isso garante compatibilidade de software.
Arquitetura Organização
Tempo de vida relativamente curto.
Muda com a evolução da tecnologia. Pode mudar sem afetar a arquitetura
Transparente ao programador Pode sobreviver por muitos anos.
Isso garante compatibilidade de software.
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)
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
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
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
Estágios de Evolução da Arquitetura de
Computadores
Seymour Cray
CDC 6600 - 1964
processamento paralelo
outros processadores ajudando a CPU principal
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.
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
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
ULA: Unidade Lógica e Aritmética ACC: Acumulador
RI: Registrador de Instrução CP: Contador de Programa
REM: Registrador de End. de Memória RDM: Registrador de Dados de Memória UCP Memória Principal Dispositivos de E/S
...
ULA ACC RI CP Regis- tradores de Uso Geral REM RDM Cache L1 Unidade de Controle Memória Cache L2 BE BD BC Decodificador de InstruçõesComo funciona um computador simples
Vídeo TecladoMemória
Programas + Dados E/S Buffers ALU PC IR Gerai s MAR MBR Unid. processamento Unid. controle IR – Instruction Register PC – Program Counter MAR – Memory Address RegisterComo funciona um computador?
Busca a próxima instrução Executa a instrução Início TérminoEvoluçã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
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.
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.
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, FSistemas de Numeração
Número Base 2 Base 8 Base 10 Base 16 Zero 0 0 0 0 Um 1 1 1 1 Dois 10 2 2 2 Três 11 3 3 3 Quatro 100 4 4 4 Cinco 101 5 5 5 Seis 110 6 6 6 Sete 111 7 7 7 Oito 1000 8 8 Nove 1001 9 9 Dez 1010 10 A Onze 1011 11 B Doze 1100 12 C Treze 1101 13 D Quatorze 1110 14 E Quinze 1111 15 F
• Existem 10 tipos de pessoas, as que
conhecem sistemas binários e as que não
conhecem sistemas binários!
8 bits = 1 Byte
Múltiplos em potências de 2 (210 = 1024):
1 KiloByte KB = 1024 Bytes (210 Bytes)
1 MegaByte MB = 1024 KB (220 Bytes) 1024*1024 1 GigaByte GB = 1024 MB (230 Bytes) 1024*1024*1024 1 TeraByte TB = 1024 GB (240 Bytes) 1 PetaByte PB = 1024 TB (250 Bytes) 1 ExaByte EB = 1024 PB (260 Bytes) 1 ZettaByte ZB = 1024 EB (270 Bytes) 1 YottaByte YB = 1024 ZB (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)
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;
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.
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)
Representação nas bases – Base decimal
74847484 = 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
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
Representação de octal na base 10
546218546218 = 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
Representação de hexadecimal na base 10
39741163974116 = 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 Mudança da base 10 para binário
714 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 1Sistemas de Numeração
= 1011001010 Mudança da base 10 para binário
714 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 1714 = 1011001010
2Sistemas de Numeração
Mudança da base 10 para octal
714 714 |_8_ 2 89 |_8_ 1 11 |_8_ 3 1714 = 1312
8Sistemas 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=15Sistemas de Numeração
Mudança da base binária para decimal (10)
101100101020 x 2
0= 0
1 x 2
1= 2
0 x 2
2= 0
1 x 2
3= 8
0 x 2
4= 0
0 x 2
5= 0
1 x 2
6= 64
1 x 2
7= 128
0 x 2
8= 0
1 x 2
9= 512
= 0+2+0+8+0+0+64+128+0+512 = 714Sistemas de Numeração
1 0 1 1 0 0 1 0 1 0
2512+128+64+8+2 = 714
32768 16384 8192 4096 2048 1024 512 256 128 64 32 16 8 4 2 1
0 0 0 0 0 0 1 0 1 1 0 0 1 0 1 0
• Mudança da base octal para decimal (10)
1 3 1 2
82 x 8
0= 2
1 x 8
1= 8
3 x 8
2= 192
1 x 8
3= 512
= 2+8+192+512 = 714
Sistemas de Numeração
• Mudança da base hexadecimal para decimal
2 C A
16A x 16
0= 10 x 16
0= 10
C x 16
1= 12 x 16
1= 192
2 x 16
2= 512
= 10+192+512 = 714
Sistemas de Numeração
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 = 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 = 10110011 e 1000001 14 e 22 511 1023 32767 65535 2AA 81 7FF 999 10000000000001011000011001010 1111101011011010101100001010 101110101101110010100000 1100101011011110101011010000