Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

Organização de Computadores 1
Aula 02
1
Introdução
• Um bit é a unidade de informação mais básica nos 
computadores.
– Representa um estado de “on” or “off” em um circuito 
digital.
– Também podem ser considerados estados de “alta” ou 
“baixa” voltagem.
2
“baixa” voltagem.
• Um byte é um grupo de 8 bits.
– Um byte é a menor unidade endereçável possível que se 
pode armazenar em um computador.
– O termo “endereçável” significa que este byte pode ser 
retornado a partir de sua posição de memória.
Introdução
• O termo word siginifica um grupo de bytes 
adjacentes.
– Pode ser composto por qualquer quantidade de bytes 
(ou bits).
Os tamanhos mais comuns são 16, 32, ou 64 bits.
3
– Os tamanhos mais comuns são 16, 32, ou 64 bits.
– Em um sistema em que os endereços são baseados no 
tamanho word, então esta é a menor unidade 
endereçável que pode ser armazenada.
Tipos de Dados Básicos
• Booleano [Boolean] (1 bit)
• Caractere [Characters] (1 byte)
• Inteiro [Integers] (4 bytes)
– Unsigned (sem sinal)
4
– Unsigned (sem sinal)
– Signed (com sinal)
• Ponto flutuante [Floating point] (4 to 8 bytes)
– Double
– Float
Booleanos
• Booleano valores: 0 and 1; V and F
• Booleano operações: AND, OR, NOT
• Também são armazenadas dentro do 
byte.
5
byte.
Tipos de Dados Básicos
• Booleano [Boolean] (1 bit)
• Caractere [Characters] (1 byte)
• Inteiro [Integers] (4 bytes)
– Unsigned (sem sinal)
Bit: 7 6 5 4 3 2 1 0
Binary value
6
– Unsigned (sem sinal)
– Signed (com sinal)
• Ponto flutuante [Floating point] (4 to 8 bytes)
– Double
– Float
• Código ASCII: 8 bits (Codificam 28 caracteres)
Códigos de Caracteres
7
• Exemplo: A (letra) é representada pelo número 65. 
Códigos de Caracteres
8
Caractere A código 65
• Como armazenar o número decimal 65 em binário 
com 8 bits ?
Caracteres representados com 8 bits
Bit: 7 6 5 4 3 2 1 0
Binary value
9
27 26 25 24 23 22 21 20
128 64 32 16 8 4 2 1
Binary value
Caractere A código 65
• Como armazenar o número decimal 65 em binário 
com 8 bits ?
Resposta:
65 = 64 + 1
Caracteres representados com 8 bits
Bit: 7 6 5 4 3 2 1 0
Binary value 0 1 0 0 0 0 0 1
10
65 = 64 + 1
27 26 25 24 23 22 21 20
128 64 32 16 8 4 2 1
Binary value 0 1 0 0 0 0 0 1
• Atualmente o padrão Unicode é o mais utilizado. 
Com 16 bits é capaz de codificar os caracteres 
de todas os idiomas do mundo.
– Na linguagem de programação Java e em alguns 
sistemas operacionais o Unicode é a representação de 
Códigos de Caracteres
11
sistemas operacionais o Unicode é a representação de 
caracteres padrão.
• Os códigos são divididos em seis partes. A 
primeira parte, por exemplo, é para os alfabetos 
ocidentais (inglês, grego, russo, etc.).
• A organização do 
padrão Unicode é 
representado na 
figura ao lado.
• Os caracteres 
Unicode de 
Códigos de caracteres
12
Unicode de 
numeração mais 
baixa (0000 – 1FFF) 
compreendem o 
código ASCII.
• A numeração mais 
alta (F000 - FFFE) é 
reservada para 
definição do usuário. 
Códigos de caracteres
• Booleano [Boolean] (1 bit)
• Caractere [Characters] (1 byte)
• Inteiro [Integers] (4 bytes)
– Unsigned (sem sinal)
Byte 3 Byte 2 Byte 1 Byte 0
13
– Unsigned (sem sinal)
– Signed (com sinal)
• Ponto flutuante [Floating point] (4 to 8 bytes)
– Double
– Float
Sistema de Numeração Posicional
• Os números armazenados nos Bytes utilizam a 
posição em cada bit para representar uma 
potência de 2.
– O sistema binário é também chamado de sistema de 
base 2.
14
base 2.
– Nosso sistema decimal é um sistema de base 10. Cada 
posição no número representa potências de 10.
– Um número inteiro ou decimal pode ser representado 
em binário (ou em qualquer outra base).
Sistema de Numeração Posicional
• O número decimal 947 em potências de 10 é:
• O número decimal 5836.47 em potências de 10 é:
9 × 10 2 + 4 × 10 1 + 7 × 10 0
15
• O número decimal 5836.47 em potências de 10 é:
5 × 10 3 + 8 × 10 2 + 3 × 10 1 + 6 × 10 0
+ 4 × 10 -1 + 7 × 10 -2
Sistema de Numeração Posicional
• O número binário 11001 em potências de 2 é:
• Quando a base for diferente de 10, esta será 
1 × 2 4 + 1 × 2 3 + 0 × 2 2 + 0 × 2 1 + 1 × 2 0 
= 16 + 8 + 0 + 0 + 1 = 25
16
• Quando a base for diferente de 10, esta será 
indicada.
– Base 10 será indicada somente para enfase:
110012 = 2510
Tipos de Dados Básicos
• Booleano [Boolean] (1 bit)
• Caractere [Characters] (1 byte)
• Inteiro [Integers] (4 bytes)
– Unsigned (sem sinal)
17
– Unsigned (sem sinal)
– Signed (com sinal)
• Ponto flutuante [Floating point] (4 to 8 bytes)
– Double
– Float
Representação de Ponto Flutuante
• Cálculos de ponto flutuante são realizados 
utilizando o formato inteiro. 
• Em alguns computadores ocorre a chamada de 
emulação de ponto flutuante. Neste caso 
programas fazem parecer como se valores de 
18
programas fazem parecer como se valores de 
ponto flutuante estivessem sendo usados.
• A maioria dos computadores de hoje são 
equipados com hardware especializado que 
executa aritmética de ponto flutuante sem 
necessidade de programa especial.
Representação de Ponto Flutuante
• Números de ponto flutuante podem utilizar 
muitas casas decimais. 
• Por exemplo a massa da Terra (número muito 
grande) ou a massa de uma átomo (número 
muito pequeno). E ainda podem ocorrer diversos 
dígitos repetidos (iguais a zero, por exemplo.) 
19
dígitos repetidos (iguais a zero, por exemplo.) 
– Por exemplo: 5.980.000.000.000.000.000.000.000
• O exemplo acima pode ser expresso por meio
da notação científica: 
– 5,98 × 1024
Representação de Ponto Flutuante
• Ainda sobre o exemplo anterior, seriam 
necessários 25 algarismos decimais. Em 
binário seriam muito mais. 
• Computadores usam a notação científica para 
representar números de ponto flutuante.
• Notação Científica:• Notação Científica:
– 3 componentes
• Número de ponto flutuante: 
– 3 campos de tamanho fixo
Sinal Expoente Parte significativa
20
Representação de Ponto Flutuante
• Mais exemplos de 
notação científica 
em decimal
21
Representação de Ponto Flutuante
• Convertendo os componentes da notação 
científica para binário, o número de ponto 
flutuante poder ser representado no 
computador como a seguir:computador como a seguir:
22
Modelo von Neumann
• Como as coisas foram feitas antes da invenção do 
modelo von Neumann:
– No ENIAC (primeira geração de computador), toda a 
programação era feita no nível da lógica digital.
– Programação do computador envolvia diversas – Programação do computador envolvia diversas 
mudanças de plugs e fios.
– Para cada problema era necessário uma configuração 
de hardware diferente.
• OBS.: Configurar o ENIAC para resolver um problema 
"simples" custava muitos dias de trabalho de técnicos 
qualificados.
23
Modelo von Neumann
• Os inventores do ENIAC, John Mauchley e J. Presper
Eckert, desenvolveram um computador capaz de 
armazenar instruções na memória.
• A invenção dessa ideia é atribuída ao matemático, 
John von Neumann, que divulgou amplamente este 
modelo. Contudo, os contemporâneos de vonmodelo. Contudo, os contemporâneos de von
Neumann (Mauchley e Eckert) já haviam documentado 
este modelo. Ou seja, tudo indica que eles são os 
verdadeiros criadores do modelo.
• Computadores com esta característica (stored-
program) tornaram-se conhecidos como arquitetura do 
modelo de von Neumann.
24
Modelo von Neumann
• O modelo de von-Neumann possui as seguintes 
características:
– Três sistemas de hardwares:
• Unidade Central de Processamento (UCP ou CPU)
• Sistema de Memória Principal
• Sistema de E/S• Sistema de E/S
– A capacidade de realizar o processamento sequencial de 
instruções (Program Counter).
– Um único caminho de dados entre a CPU e a memória 
principal. Força a alternância entre ciclos de busca e 
execução de instruções.
• Este único caminho é conhecido como o von Neumann bottleneck
(gargalo).
25
Modelo von Neumann• Segue uma descrição 
geral de um sistema 
de von Neumann:
• Computadores • Computadores 
utilizam um ciclo de 
busca, decodificação 
e execução para 
executar programas.
26
Modelo von Neumann
• A unidade de controle busca a próxima instrução na 
memória usando o contador de programa (Program
Counter) que indica onde a instrução está localizada.
27
Modelo von Neumann
• A instrução é decodificada de modo qua a ULA 
possa entender.
28
Modelo von Neumann
• Os dados dos operandos necessários para 
execução da instrução são obtidos na memória e 
colocados em registradores na CPU.
29
Modelo von Neumann
• A ULA executa a instrução e coloca os 
resultados em registradores ou na memória.
30
• Ao longo dos anos melhorias foram aplicadas 
no projeto de computadores para aumento do 
desempenho. 
• Estas melhorias incluem barramentos 
separados, memórias cache e etc.
Modelos não von Neumann
31
separados, memórias cache e etc.
• Melhorias mais significativas tendem a se 
afastar da arquitetura do modelo von 
Neumann clássico.
• Um exemplo é a inclusão de vários 
processadores, memória virtual, registradores 
para endereçamento, entre outros.
• Esta abordagem já havia sido aplicada em 1960 
nos primeiros computadores equipados com 
dois processadores.
• Em 1970 foram lançados supercomputadores 
com 32 processadores.
• Em seguida supercomputadores com 1000 
Modelos não von Neumann
32
• Em seguida supercomputadores com 1000 
processadores em 1980.
• Mais recentemente, em 2011, foi lançado o 
IBM Watson composto por um cluster de 90 
servidores Power750, cada um com 32 
processadores POWER7 (8 cores) 3.55GHz. 16 
Terabytes de RAM. Software Power Linux ☺.
• Processamento paralelo é um método para 
aumentar o poder computacional. Alguns 
sistemas precisam de processadores extra 
para gerenciar os demais processadores.
• Projetos que não precisam manter 
Modelos não von Neumann
33
• Projetos que não precisam manter 
compatibilidade com o modelo clássico usam 
modelos diferentes.
• Estes sistemas avançados incluem algortimos 
genéticos, computação quântica, computação 
paralela (computação distribuída é comum a 
todos estes).
• Tais modelos diferem em o quanto os 
componentes estão conectados durante sua 
atuação atuação. 
• Estes sistemas são úteis se houver 
programação adequada, ou seja, paralela. 
Modelos não von Neumann
34
programação adequada, ou seja, paralela. 
• Linguagens para plataformas paralelas 
incluem: 
– FP, J, NGL, Mercury, FL, ZPL, CUDA C/C++
Medidas de Desempenho
• Os princípios básicos estabelecidos pelo 
modelo de von Neumann permanecem 
essencialmente os mesmos.
• Porém, inovações no processo operacional 
buscam o aumento no desempenho dos buscam o aumento no desempenho dos 
computadores. 
• Este desempenho é dependente da 
velocidade de comunicação entre os 
diferentes componentes do sistema de 
computação (CPU, Memória, etc.).
35
Medidas de Desempenho
• Processador
– Desempenho medido em relação a velocidade de 
executar instruções.
– MIPS (Milhões de instruções por segundo)– MIPS (Milhões de instruções por segundo)
– MFLOPS (Milhões de operações de ponto 
flutuante por segundo)
36
Medidas de Desempenho
• Memória
– Desempenho medido em relação a velocidade de 
leitura e gravação de informações.
– Também relacionada com a interligação entre – Também relacionada com a interligação entre 
processador e memória (canal de interligação). 
– Medida chamada de tempo de acesso.
37
Medidas de Desempenho
• Transferência de dados E/S
– Velocidade com que um dispositivo de E/S recebe 
ou envia dados (para a CPU, por exemplo). 
– É a taxa de transferência que os dados trafegam – É a taxa de transferência que os dados trafegam 
pelo canal de ligação. 
– Em geral é medida em bits por segundo (bps).
38
Medidas de Desempenho
• Solicitação do usuário
– Mede desempenho mais global do sistema.
– Período de tempo entre o início de uma 
solicitação do usuário e a efetiva resposta solicitação do usuário e a efetiva resposta 
apresentada pelo sistema. 
– Medida conhecida como tempo de resposta.
39
Medidas de Desempenho
• Número de transações
– Quantidade de ações que o sistema pode realizar 
em determinada unidade de tempo. 
• Exemplo: Quantidade de atualizações possíveis em um • Exemplo: Quantidade de atualizações possíveis em um 
sistema de controle de estoque em um segundo.
– Medida conhecida como vazão (throughput)
40
Sistema de Computação
• Sistema em geral
– Conjunto de partes coordenadas que concorrem 
para a realização de um determinado objetivo.
– Sistema de circulatório, sistema econômico, 
sistema de transporte, etc.sistema de transporte, etc.
• Sistema de Computação
– Composto por hardware e software. 
– Software é um Sistema de Aplicação cuja a 
implementação (por meio de linguagem de 
programação) resulta em um programa de 
computador.
41
Sistema de Computação - Software
• Software 
– Conjunto de instruções executadas passo a passo 
(algoritmo).
• Exemplo • Exemplo 
– Algoritmo para somar 100 números
42
Sistema de Computação - Software
• Execução do programa (Processamento)
43
Sistema de Computação - Software
• Implementação de um programa
– É a formalização do algoritmo por meio de 
linguagem de programação.
– Exemplo de implementação na linguagem C (alto 
nível)nível)
44
Sistema de Computação - Software
• O mesmo algoritmo 
poderia ser 
implementado em 
linguagem assembly 
(baixo nível).(baixo nível).
– Quanto mais baixo o nível 
da linguagem, os 
programas se tornam 
maiores e mais difíceis de 
entender.
45
Sistema de Computação - Software
• A linguagem de máquina 
(em binário)
– É a linguagem que o 
computador utiliza para 
executar o programa.executar o programa.
– Esta é a que o computador 
é capaz de entender 
diretamente (código 
binário interpretado como 
tensão em volts pela parte 
eletrônica).
46

Mais conteúdos dessa disciplina