Вы находитесь на странице: 1из 62

Organização e Arquitetura de

Computadores

Clarimar José Coelho


http://professor.ucg.br/siteDocente/home/professor.asp?key=5021
Ementa


Estudo dos componentes e de sua
organização em um computador digital, com a
análise do projeto de instruções, da hierarquia
de memória e de arquiteturas paralelas e
discussão das técnicas de aumento de
desempenho de processadores

2
Bibliografia

Básica
− Tanenbaum, A. S. Organização Estruturada
de Computadores, Prentice-Hall, Brasil, 2007.
− Satllings, W. Arquitetura e Organização de
Computadores, Prentice-Hall, 2002.

Complementar
− Hennessy, J. L. Patterson, D. A. Organização e
Projeto de Computadores, Campus, 2005.
− Weber, R. F. Fundamentos de Arquitetura de
Computadores, Sagra-Luzzatto, 2004.
− Monteiro, M. A. Introdução à Organização de
Computadores, LTC, 2001.
3
Conteúdo programático

Organização de 
Arquitetura RISC e CISC
computadores: arquitetura 
Pipeline, processadores
von Neumann, memórias,
superescalares e
unidades centrais de
superpipeline.
processamento, entrada e
saída 
Processadores com
múltiplos núcleos e

Modos de endereçamento,
múltiplas trheads
conjunto de instruções

Multiprocessadores.

Barramento,
Multicomputadores
comunicações, interfaces e
periféricos 
Paralelismo de baixa
granularidade

Organização de memória.
Memória auxiliar. 
Arquiteturas paralelas e
não convencionais 4
Avaliações

Primeira N1 - 30/08

Segunda N1 – 24/09

Primeira N2 – 17/10

Segunda N2 – 19/11

Terceira N2 - 13/12

5
Definições

A Arquitetura de Computadores trata do
comportamento funcional de um sistema
computacional, do ponto de vista do
programador
− Exemplo: tamanho de um tipo de dados – 32 bits
para um inteiro

A Organização de Computadores trata da
estrutura interna que não é visível para o
programador
− Exemplo: freqüência do relógio ou tamanho da
memória física

Existe um conceito de níveis na arquitetura de
computadores
− A idéia básica é que existem muitos níveis nos
quais o computador pode ser considerado

Do nível mais alto, onde o usuário executa programas

Ao nível mais baixo, que consiste de transistores e fios
6
O modelo von Neumann

Possui cinco componentes principais:
− (1) unidade de entrada
− (2) unidade de saída
− (3) unidade lógica aritmética
Unidade
− (4) unidade de memória de
memória
− (5) unidade de controle.

Unidade Unidade Unidade


de aritmética de
entrada e lógica saída

Unidade
de
controle
7
Tendências tecnológicas

1980 – Aperfeiçoamento dos circuitos
integrados
− Aumento do desempenho dos computadores
− Densidade

Quantos transistores e ligações pode ser colocados em
uma área fixa em um chip de silício
− Velocidade

Rapidez com que as portas lógicas básicas e dispositivos
de memória operam
− Área

Tamanho físico do maior circuito integrado que pode ser
fabricado

8
Lei de Moore

O aumento do desempenho dos computadores
nas últimas décadas é devido
− Ao crescimento do desempenho dos computadores
é geométrico e não linear

Em média, o número de transistores em chip
aumentou 50% ao ano

A velocidade do transistor aumentou tanto que
o atraso de uma porta lógica (E, OU) diminuiu
13% ao ano

Taxa de crescimento anual de 60%
− A quantidade de dados que pode ser armazenada
em um chip de memória RAM dinâmica
quadruplicou a cada 3 anos desde o final da
década de 70 9
Média geométrica versus aritmética

Quais são as médias aritmética e geométrica
dos valores 4,2,4,82?

A Média aritmética desta série é
42482
=23
4

A média geométrica é
4
 42482=7,16

10
Desempenho dos
microprocessadores

Do final de 1970 ao final de 1980
− O cresceu 35% ao ano devido ao aperfeiçoamento
na tecnologia de fabricação
− Efetivamente a taxa cresceu mais de 50% ao ano
− Embora a taxa de fabricação de semicondutores
tenha permanecido constante
− O aumento do desempenho tem sido devido a
melhorias na arquitetura e na organização de
computadores
− Com aumento da densidade

É possível acrescentar recursos aos microprocessadores
que aumenta o desempenho acima do aumento da
velocidade dos transistores
11
Exemplo

Ilustração da rapidez com que a tecnologia de
computadores está sendo aperfeiçoada

Se tivesse acontecido a mesmo
aperfeiçoamento com os carros

Assuma que um carro médio, em 1977, tinha
uma velocidade máxima de 160 km/h e
consumo médio de 6,4km/l

Se tivesse um aperfeiçoamento a uma taxa de
35% ao ano de 1977 a 1987

E de 50%, de 1987 a 2000

Qual seria a velocidade máxima e o consumo
12
de um carro em 1987? E em 2000?
Medindo desempenho

A melhor medida de desempenho é o tempo de execução
dos programas

MIPS – Milhões de Instruções por Segundo
− Taxa pela qual a máquina executa instruções
− Divisão do número de instruções de um programa pelo
seu tempo de execução

CPI – Ciclos Por Segundo
− Número de ciclos de relógio para executar cada
instrução
ciclos
CPI =
instruções

IPC – Instrução Por Ciclo

instruções
IPC=
ciclos
13
Considerações

Taxa MIPS
− Não leva em conta que diferentes sistemas precisam de
números diferentes de instruções para implementar um
programa

IPC - valores altos--> programa demorou menos ciclos--> bom
desempenho

CPI – valores altos --> foram usados mais ciclos --> fraco
desempenho


CPI/IPC (são usados em simuladores: quantos ciclos são
usados em uma dada arquitetura)

− Medidas menos úteis do que MIPS (t=nr. Instruções * MIPS)


− Não tem informação sobre a freqüência do relógio do
sistema
− Ou quantas instruções o sistema exige para executar uma
tarefa 14
Exemplo

Dado um programa com um laço de 100 instruções
executado 42 vezes. Se ele demora 16.000 ciclos

Quais são os valores de CPI e IPC?

Conjuntos de benchmark

MIPS e CPI/IPC tem limitações

Benchmark consiste em uma série de programas
típicos executados no sistema (SPECCPU 2000
Benchmark)

Baseado em tempos totais de execução não na taxa
de execução de instruções (média do desempenho
para vários programas)
15
Aceleração

Descreve como o desempenho de uma arquitetura muda
a medida que diferentes melhoramentos são feitos

Razão entre os tempos de execução antes e depois que
a mudança é feita

Tempo de execução antes


Aceleração=
Tempo de execução depois

Exemplo

Se um programa demora 25s numa arquitetura e 15s
em uma nova versão dessa mesma arquitetura

A aceleração geral é de?
16
Lei de Amdahl

Regra básica de projeto de computadores
− O mais comum deve ser rápido
− A freqüência com que o aperfeiçoamento é usado é
importante para o desempenho geral

[
Tempo de execuçãonovo =Tempo de execuçãoantigo × Parcelanão−usada
Parcelausada
Acelaraçãousada ]

Parcela_{não-usada}
− Parcela de tempo (não instruções) onde o aperfeiçoamento
não está em uso

Parcela_{usada}
− Parcela onde o aperfeiçoamento está em uso

Aceleração_{usada}
− Que acontece quando o aperfeiçoamento é usado

Parcela_{não-usada} e Parcela_{usada}
− São calculadas usando o tempo de execução antes que as 17
modificações sejam aplicadas
Lei de Amdahl reescrita
Tempo de execução antigo 1
Aceleração= =
Tempo de execuçãonovo Parcelausada
Parcelanão−usada
Acelaração usada

Exemplo

Suponha que uma arquitetura não tenha suporte para
multiplicações (adições repetidas)

Se a multiplicação por software demora 200 ciclos e quatro
ciclos por hardware

Qual a aceleração geral produzida pelo hardware para
multiplicação se um programa gasta 10% do seu tempo
fazendo multiplicação?

18
Exercícios

Se a versão de 1998 de um computador executa um programa em 200s a
versão fabricada no ano 2000 executa o mesmo programa em 150s, qual a
aceleração que o fabricante obteve ao longo de um período de 2 anos?

Quando está executando um programa em particular, o computador A
atinge 100MIPS e o computador B atinge 75MIPS. Porém, o computador A
demora 60s para executar o programa, enquanto o computador B demora
só 45s. Como isso é possível?

Qual o é IPC de um programa que executa 35.000 instruções e exige 17.00
ciclos para ser executado?

Suponha que, ao executar um dado programa, um computador gaste 90%
do seu tempo tratando um tipo especial de cálculo, e que seus fabricantes
façam um mudança que melhore o seu desempenho, naquele tipo de
cálculo, por um fator de 10.
− 1. Se o programa demorava, originalmente, 100s para executar, qual
será o seu tempo de execução depois da modificação?
− 2. Qual é a aceleração do sistema novo em relação ao antigo?
− Qual parte do seu tempo de execução o novo sistema gasta executando
o tipo de cálculo que foi aperfeiçoado? 19
Representação de dados e aritmética de
Computadores

De eletrons a bits
− A convenção de sinais de um sistema digital
determina como os sinais elétricos analógicos são
interpretados como valores digitais
Faixa de tensão que será Faixa de tensão que será
interpretada como 0 na interpretada como 1 na
entrada de um circuito entrada de um circuito

Tensão de
0V V 0L V IL V IH V 0H alimentação

Faixa legal para um 0 Região proibida Faixa legal para um 1


na saída de um na saída de um
circuito circuito
20
Comentários

 V 0L tensão mais alta que um circuito pode produzir


para gerar um zero lógico

V 0H tensão mais baixa que um circuito pode produzir
para gerar um valor lógico 1
 V 0H e V 0L devem estar mais próximos aos extremos da
faixa de tensão do que V IH e V IL

Os intervalos entre V 0Le V IL determinam as margens de
ruído do sistema digital
− Quantidade que um sinal de saída pode mudar
− Antes que seja interpretado por outro circuito como
o valor oposto
21
Exercício

Suponha que um sistema digital tenha

V DD =3,3 V ,V IL=1,2 V ,V 0L=0,7 V ,V IH 2,1 V ,V 0H=3,0 V.


Qual é a margem de ruído para esta convenção de
sinais?

22
Sistemas binários


Mapeiam cada sinal elétrico sobre dois valores

A informação que cada sinal carrega é chamada de
um bit

Sistema com mais valores por sinal são possíveis
− A complexidade de projetar circuitos para
representar essa convenções de sinais
− A redução nas margens de ruído que ocorre
quando a faixa de tensão é dividida em mais do
que dois valores
− Tornam esses sistemas difíceis de ser construídos

23
Representação binária de inteiros positivos


São representados usando o sistema binário de
numeração posicional base 2

Semelhante ao sistema posicional base 10
− O números são representados como a soma dos
múltiplos de cada potência de 10
1543=1×103 5×102 4×101 3×100 

Binário
100111=1×25 0×24 0×23 1×22 1×211×20 =39

Os número binários são precedidos pelo prefixo 0b
24
Valores representados

Decimal
− Um número decimal com n dígitos pode representar valores
de 0 até 10n−1

Binário
− Um número binário com n dígitos sem sinal pode
representar valores de 0 até 2n−1
− Exigem mais dígitos que os números decimais para
representar um certo inteiro

Hexadecimal
− 0 a 9 mesmos valores que na notação decimal
−A até F ou a até f são usados para representar os número
10 até 15

Exemplo
− Quais são as representações binárias e hexadecimal do 25

número 47?
Exercícios

Mostre como os seguintes inteiros seriam
representados por um sistema que utiliza inteiros de 8
bits sem sinal
− a) 37 b) 89 c) 4 d) 126 e) 298

Quais são as representações hexadecimais dos
seguintes inteiros?
− a) 67, b) 142 e c) 1348

26
Operações aritméticas com inteiros positivos

A aritmética base 2 é feita usando as mesmas
técnicas da aritmética base 10

Exemplo
− Calcule a soma de 9 e 5 usando números binários
em um formato de 4 bits -->9=0b1001 5=0b0101
Transporte do bit resultante
− 1 da adição (vai 1)
− 0b 1 0 0 1
Entrada 2 Entrada 1
− 0b 0 1 0 1
− 0b 1 1 1 0 Saída do Somador Entrada do
transporte completo transporte

Bit de
saída
27
Adição

O hardware usado nos computadores é muito
parecido com o procedimento mostrado antes

A velocidade do circuito é depende do tempo que
demora para propagar os sinais de transporte (vai 1)
por todos os somadores completos

Cada somador não pode executar sua parte no
cálculo até que todos os somadores à sua direita
tenha completado seu cálculo

O tempo cresce linearmente com o número de bits
nas entradas

Ganho de desempenho
− Fazer o máximo de cálculo em um somador antes
que cada entrada de transporte esteja disponível 28
Exercícios


Calcule as somas dos seguintes pares de inteiros sem
sinal:
− a) 0b11000100+0b00110110
− b) 0b00001110+0b10101010
− c) 0b11001100+0b00110011
− d) 0b01111111+0b00000001

Quantos bits são necessários para representar os
seguintes números decimais como inteiros binários
sem sinal?
− a) 12 b) 147 c) 384 d) 1497

29
Subtração

É tratada por métodos similares ao da adição

Usa módulos que calculam um bit da diferença entre
dois números
Inteiros negativos

A notação em complemento de 2 permite que a
subtração seja feita ao negar a segunda entrada e
fazer a soma

O mesmo hardware da soma pode ser usado
Multiplicação

De inteiros com sinal é feita igual é feita pelos seres
humanos
30
Exemplo
0b 1 0 1 1
0b 0 1 0 1
1011
0000
1011
00000
0110111 --> 0b110111

Problema

Na multiplicação de inteiros o produto de 2 número de
n bits pode exigir até 2n bits para ser representado

O produto de 2 números de 4 bits exige 6 bits para ser
representado

Isso é conhecido com transbordo (overflow) ou
transbordo negativo (underflow)
31
Divisão

Pode ser implementada subtraindo o divisor do dividendo

E contando o número de vezes que o divisor pode ser
subtraído do dividendo

Antes que o dividendo torne-se menor que o divisor

Não é prático construir hardware para fazer divisão por
subtração repetidas
31 30 30

2 dividido por 2 é 2 --> 2 subtrações

Em um computador com 1 Ghz, isso demoria quase 1s

Muito mais tempo do que qualquer operação aritmética

Os projetistas usam métodos baseados em pesquisa em
tabelas pré-geradas para implementar a divisão

32
Transbordo e transbordo negativo

A largura de bits de um computador limita o maior e o
menor número que pode ser representado como
inteiro
Inteiros sem sinal

Um número de n bits pode representar valores de 0
até 2n−1

Operações com números que podem ser
representados em um número de bits

Podem gerar resultados que não pode ser
representado nesse formato

Exemplo
− Somar dois inteiros de n bits pode produzir um
resultado de até 22n−1 o que não pode ser 33
representado em n bits
Exemplo cont.

Ao subtrair dois inteiros positivos é possível gerar resultados
negativos

Que não pode ser representado por um número de n bits sem sinal

Ocorre transbordo quando o resultado não pode ser armazenado no
formato de seus operandos

Overflow – o resultado é grande demais

Underflow – resultado é pequeno demais para ser representado
naquele formato

Alguns sistemas sinalizam um erro quando os transbordos ocorrem

Outros substituem o resultado pelo valor mais próximo que pode ser
representado naquele formato

No caso de ponto flutuante existe um conjunto de representações
especiais que especifica que ocorreu um transbordo chamados NaNs

34
Inteiros negativos

A notação de numeração posicional usada para
inteiros precisa ser expandida para indicar se um
número é positivo ou negativo

Representação sinal magnitude



O bit mais significativo de um número binário indica
se o número é positivo ou negativo

O resto do número indica o valor absoluto (ou
magnitude) do número

Usa o mesmo formato que a representação binária
sem sinal

Números de n bits em sinal e magnitude podem
representar quantidades de −2n−1−1 até2n−1−1 35
Representações para zero

Existem duas: com sinal de magnitude +0 e -0

+0 tem o valor 0 no campo de magnitude e o bit de sinal
positivo

O -0 tem um valor igual a 0 no campo de magnitude e o bit de
sinal negativo
Exemplo

A representação binária sem sinal em 16 bits de 152 é 0b0000
0000 1001 1000. Em um sistema de 16 bits em sinal e
magnitude, -152 seria representado como 0b1000 0000 1001
1000

Nesse representação é fácil formar o número negativo de um
número invertendo o bit de sinal

Verificar se o número é positivo ou negativo também é fácil

É fácil executar a multiplicação e a divisão
36

Não é fácil executar a soma e a subtração
Divisão e multiplicação

O hardware executa operações sem sinal na parte de
magnitude das entradas

Verifica os bits de sinal das entradas para determinar o bit de
sinal do resultado
Exemplo

Multiplique os números +7 e -5 usando inteiros de 6 bits em
sinal e magnitude
Soma e subtração

Exige um hardware mais complexo

Somar ou subtrair a representação binária de um número positivo e a
representação binária de um número negativo não dá o resultado correto

O hardware precisa levar em conta o valor do sinal de bit quando estiver
calculando cada bit de saída

É necessário hardware diferente para executar a adição e a subtração
37

Muito poucos sistemas usam sinal e magnitude
Exemplo

Qual é o resultado de tentarmos somar diretamente as
representações em 8 bits em sinal e magnitude de +10 e -4?


Exercícios

− Converta os seguintes números decimais para a


representação em 8 bits em sinal e magnitude:

a) 23, b) -23, c) -48, d) -65

38
Notação em complemento de 2


Nessa notação o número negativo é representado invertendo-
se cada bit da representação sem sinal do número somando 1

Descarta-se os bits de transbordo que excedam a largura da
representação

O nome complemento de 2 vem do fato que a soma sem sinal
de um número com n bits em complemento de 2 com o seu
negativo é 2n


Exemplo

− Qual é a representação em 8 bits, em complemento de 2, de


-12, e qual é o resultado sem sinal da soma das
representações de +12 e de -12?
39
Exemplos

Qual é o resultado de negar duas vezes a representação de +5, em 4
bits, em complemento de 2?

Some os valores +3 e -4 em notaçao de 4 bits em complemento de 2

Executar uma multiplicação direta das entradas, sem sinal, das
entradas em complemento de 2, não fornece o resultado correto

Extensão de sinal

Em aritmética de computadores, as vezes é preciso converter números
representados em um dado número de bits para uma representação que
utiliza um número maior de bits

Um programa pode precisar somar uma entrada de 8 bits a um valor de 32
bits

O valor sem sinal de 8 bits 0b10110110 torna-se o valor sem sinal de 16 bits
0b0000000010110110

A extensão de um número em sinal e magnitude é feita movendo o bit de
sinal da representação antiga para o bit de sinal da nova representação
40
preenchendo todos todos os bits adicionais na nova representação
Exemplo

Qual é a representação em 16 bits, em sinal e magnitude,
do valor em 8 bits, em sinal e magnitude, 0b10000111
(-7)?
Extensão em complemento de 2

A extensão de sinal de números em complemento de 2 é
mais complicada

Para fazer a extensão de sinal de um número em
complemento de 2 copie o bit mais significativo da antiga
representação para cada bit adicional da nova
representação

Os números negativos terão zeros em todos os bits
acrescentados ao ir para uma representação mais larga

Números negativos terão uns em todas estas posições de
de bit 41
Exemplo

Qual é a extensão de sinal de 16 bits do valor 0b10010010
(-110) em 8 bits, em complemento de 2?

Exercícios

Dê a representação com 8 bits, em complemento de 2, dos
valores
− a) 23 b) -23 c) -48 d) -65.

Dê a representação em 8 bits dos números 12 e -18, nas
notações em sinal e magnitude e em complemento de 2, e
mostre como estas representações têm o sinal estendido para
dar representações de 16 bits em cada notação

42
Organização de Computadores


A Organização de Computadores trata da
estrutura interna que não é visível para o
programador
− Exemplo: freqüência do relógio ou tamanho da
memória física

43
Organização de computadores
Computador Barramento de memória

Processador Comutador Sistema


de memória

Barramento de entrada e saída

Disco rígido CD-ROM Placa


vídeo de

Subsistemas: processador, memória e entrada e saída Monitor

44
Subsistemas


Processador
− Execução de programas

Memória
− Espaço de armazenamento para os programas e
dados

Entrada e saída
− Permite que o computador e a memória controlem
os dispositivos que interagem com o mundo
externo ou que armazena dados

45
Comutador x Processador

Na maioria dos sistemas tem um único barramento de
dados que é conectado ao módulo comutador
− Como a ponte PCI (Peripheral Component
Interconnect) encontrada na maioria dos sistemas

46
Comutador x Memória

A comunicação é feita através de um
barramento
− Conjunto de linhas dedicadas que transfere dados
entre eles
Comutador x E/S

Um barramento de E/S distinto conecta o comutador
com os dispositivos de E/S

São usados barramentos separados

O E/S deve ser projetada para ser a mais flexível
possível

Para suportar vários tipos de dispositivos de E/S e
maior largura de banda possível entre o processador 47e
o sistema de memória
Programas
Nível de linguagem
Codificação do programa orientadas
para problemasTradução (compilador)

Tradução para linguagem de montagem Nível de linguagem


(compilação) de montagem
Tradução (montador)

Tradução para linguagem de máquina Nível de sistema operacional


(montagem) Interpretação parcial (so)

Nível de máquina
convencional
Geração do programa executável Interpretação (microprograma)
(ligação)

Nível de microprogramação
Os microprogramas executados diretamente pelo hardware
Carga do programa na memória
do computador
Nível de lógica digital

Execução do programa
Níveis presentes nos computadores 48
modernos
Sistemas operacionais

Administração dos recursos físicos do sistema

Carga e execução dos programas

Interface com os usuários

Sistemas dedicados
− Projetados para uma tarefa específica
− Geralmente não possuem um sistema operacional
− Executam um único programa

É um programa que sabe tudo sobre o hardware

É executado em modo privilegiado ou supervisor
− Isso permite que tenha acesso a todos os recursos
que os programas de usuário não pode controlar 49
Multiprogramação

A maioria dos computadores suporta multiprogramação
(multitarefa)

Técnica que permite ao sistema dar a ilusão que vários
programas estão sendo executados simultaneamente no
computador

Mesmo que tenha apenas um processador

A cada programa é dada uma fatia de tempo

Comutação de processo
− No final do tempo de cada programa o SO retira o programa
da memória
Fatia de tempo
Tempo

Programa1 Programa2 Programa 3 Programa 4 Programa 1 Programa 2 Programa 3 Programa 4

Programa sendo executado pelo processador


50
Proteção

Principal requisito do SO

O resultado do programa em um ambiente
multiprogramado deve ser o mesmo se ele estivesse
executando sozinh

Os programa não devem acessar os dados dos outros
programas

Oferecer proteção requer que o SO tenha controle sobre
os recursos físicos e a memória

Isso evita que um programa acesse a impressora ao
mesmo tempo

Essa técnica é a memória virtual que será estudada nesse
curso
51
Modo privilegiado


SO – roda em modo privilegiado

Outros programas – rodam em modo usuário

Tarefas como acessar dispositivos, fazer
comutação de processos exige que o SO esteja
em modo privilegiado

52
Processador
Dados para a memória Dados da memória Instruções da memória

Sinais de controle
Lógica de
controle
Banco de registradores

Unidade Unidade para


ponto
para
flutuante
inteiros

Processador

53
Blocos do processador

Unidades de execução

Banco de registradores e lógica de controle

A unidade de execução contém o hardware que executa as
instruções
− Isso inclui o hardware que busca e decodifica as instruções
− E unidades lógico-aritméticas (ULAS) que executam os
cálculos

Muitos sistema tem unidades diferentes para cálculo de inteiros
e ponto flutuante

O banco de registradores é uma pequena área de
armazenamento para os dados que o processador está usando
− Podem ser acessados mais rápido que os dados da
memória
54
O sistema de memória
 Receptáculo de armazenamento para os dados e programas
 Em geral, os sistemas tem dois tipos de memória
− Memória apenas de leitura
 Read Only Memory – ROM
 O conteúdo da ROM não pode ser modificado pelo

computador, mas pode ser lido


 Usada para manter um programa que é executado

automaticamente pelo computador quando é iniciado


 Este programa é chamado bootstrap

 O boostrap (erguendo-se por sua própria conta) instrui o

computador a carregar o SO do seu HD ou outro


dispositivo de E/S
− Memória de acesso aleatório
55
 Random Access Memory – RAM
Memória RAM
 Tanto pode ser lida como escrita
 É usada para manter os programas, o sistema operacional e os
dados exigidos pelo computador
 Volátil, isto é, os dados são apagados quando o computador é
desligado
 ROM e RAM são divididas em conjunto de posições de
armazenamento e cada uma pode manter 1 byte (8 bits) de dados
 As posições de armazenamentos são numeradas e o número de uma
posição de armazenamento (chamada de endereço)
 É usado para dizer ao sistema de memória a quais posições o
processador quer fazer referência
 Uma característica importante de um sistema é a largura dos
endereços que ele utiliza, o que limita a capacidade de memória que
um computador pode endereçar
 A maioria dos computadores atuais usam
32
endereços
64
de 32 e 64 bits 56
− Isso permite o endereçamento de 2 e 2 bytes de memória
Memória - grande folha de papel
 A memória pode ser vista como uma grande folha de papel pautado
 Cada linha na página representa um local de armazenamento para um byte
 Para armazenar um valor na memória, conta-se de cima para baixo na
página até que se atinja a linha especificada pelo endereço
0
1
2
3
 Uma operação de leitura e escrita opera sobre uma quantidade de dados
igual à largura de bits do sistema
 O endereço enviado ao sistema de memória especifica a posição do byte de
dados de endereço mais baixo a ser carregado ou armazenado
 Por exemplo, um sistema de 32 bits carrega ou armazena 32 bits (4 bytes)
de dados em cada operação, nos 4 bytes que começam com o endereço da
operação
 De modo que uma carga a partir da localização 424 retornaria uma
quantidade de 32 bits contendo os bytes das localizações 424, 425, 426 e 57
427
Cargas e armazenamentos alinhados
 Para simplificar o projeto do sistema de memória,
alguns computadores exigem que as cargas e
armazenamento sejam alinhados
 Significa que o endereço de uma referência de uma
memória precisa ser um múltiplo do tamanho do dado
que está sendo carregado ou armazenado
 A carga de 4 bytes precisa ter um endereço que seja
múltiplo de 4
 Um armazenamento de 8 bytes precisa ter um
endereço que seja um múltiplo de 8 e assim por diante
 Sistemas com cargas e armazenamentos
desalinhados são lentos
58
Little endian versus big endian
 Questão adicional com cargas e armazenamentos de vários bytes é a
ordem em que eles são escritos na memória
Little endian ef cd ab 90
Palavra = 0x90abcdef
Endereço: 0x1000
Big endian 90 ab cd ef

 Sistema little endian


− O byte menos significativo (o valor menor) de uma palavra é escrito no
byte de endereço mais baixo e os outros byts escritos na ordem
crescente de significância
 Sistema big endian
− A ordem é inversa, com o byte mais significativo sendo escrito no byte
de memória com o endereço com o endereço mais baixo
− Os outros bytes são escritos na ordem crescente de significância
 Programadores
− Não precisam saber a ordem dos bytes no sistema com que estejam 59
trabalhando
Comentários
 Um armazenamento de um byte igual a 0, na localização
0x1000, fosse executado nos sistemas apresentados na
figura anterior
 Uma carga subseqüente de 32 bits a partir de 0x1000,
retornaria 0x90abcd00 no sistema little endian e
0x00abcdef no sistema big endian
 A ordem dos bytes é um problema quando se transmite
dados entre sistemas de computadores diferentes
− Eles interpretam a mesma seqüência de bytes como
palavras diferentes de dados nos sistemas little endian
ou big endian
− Os dados precisam ser processados para serem
convertidos de um sistema para outro
60
Sistema de E/S
 Subsistema que o computador usa para comunicar com o
mundo externo e para armazenar dados
− Discos, monitores de video, impressoras e acionadores
de fita
− O uso de um barramento de E/S permite que um
computador faça a interface com uma ampla gama de
dispositivos de E/S
− Sem ter que implementar uma interface específica para
cada um
− Os barramentos podem suportar um número variável
de dispositivos permitindo que os usuários
acrescentem outros depois
− Padrão PCI e outros 61
Exercícios

Se um computador de 800Mhz faz 60 comutações de
contexto por segundo, quantos ciclos existem em cada
fatia de tempo?

Explique por que a qualidade de um compilador tem mais
impacto sobre o tempo de execução de um programa
desenvolvido utilizando o compilador do que a qualidade
de um montador tem sobre programas desenvolvidos
utilizando um montador?

Como um sistema multiprogramado apresenta a ilusão de
que vários programas estão sendo executados
simultaneamente? Quais os fatores que fazem com que
esta ilusão seja prejudicada?
62