Você está na página 1de 62

Organizao e Arquitetura de

Computadores

Clarimar Jos Coelho


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

Ementa

Estudo dos componentes e de sua


organizao em um computador digital, com a
anlise do projeto de instrues, da hierarquia
de memria e de arquiteturas paralelas e
discusso das tcnicas de aumento de
desempenho de processadores

Bibliografia

Bsica
Tanenbaum, A. S. Organizao Estruturada
de Computadores, Prentice-Hall, Brasil, 2007.
Satllings, W. Arquitetura e Organizao de
Computadores, Prentice-Hall, 2002.
Complementar
Hennessy, J. L. Patterson, D. A. Organizao e
Projeto de Computadores, Campus, 2005.
Weber, R. F. Fundamentos de Arquitetura de
Computadores, Sagra-Luzzatto, 2004.
Monteiro, M. A. Introduo Organizao de
Computadores, LTC, 2001.
3

Contedo programtico

Organizao de
computadores: arquitetura
von Neumann, memrias,
unidades centrais de
processamento, entrada e
sada

Modos de endereamento,
conjunto de instrues
Barramento,
comunicaes, interfaces e
perifricos
Organizao de memria.
Memria auxiliar.

Arquitetura RISC e CISC


Pipeline, processadores
superescalares e
superpipeline.
Processadores com
mltiplos ncleos e
mltiplas trheads
Multiprocessadores.
Multicomputadores
Paralelismo de baixa
granularidade
Arquiteturas paralelas e
no convencionais

Avaliaes

Primeira N1 - 30/08

Segunda N1 24/09

Primeira N2 17/10

Segunda N2 19/11

Terceira N2 - 13/12

Definies

A Arquitetura de Computadores trata do


comportamento funcional de um sistema
computacional, do ponto de vista do
programador

A Organizao de Computadores trata da


estrutura interna que no visvel para o
programador

Exemplo: tamanho de um tipo de dados 32 bits


para um inteiro

Exemplo: freqncia do relgio ou tamanho da


memria fsica

Existe um conceito de nveis na arquitetura de


computadores

A idia bsica que existem muitos nveis nos


quais o computador pode ser considerado
Do nvel mais alto, onde o usurio executa programas

Ao nvel mais baixo, que consiste de transistores e fios

O modelo von Neumann

Possui cinco componentes principais:

(1) unidade de entrada


(2) unidade de sada
(3) unidade lgica aritmtica
(4) unidade de memria
(5) unidade de controle.
Unidade
de
entrada

Unidade
de
memria

Unidade
aritmtica
e lgica

Unidade
de
sada

Unidade
de
controle
7

Tendncias tecnolgicas

1980 Aperfeioamento dos circuitos


integrados

Aumento do desempenho dos computadores


Densidade

Velocidade

Quantos transistores e ligaes pode ser colocados em


uma rea fixa em um chip de silcio
Rapidez com que as portas lgicas bsicas e dispositivos
de memria operam

rea

Tamanho fsico do maior circuito integrado que pode ser


fabricado
8

Lei de Moore

O aumento do desempenho dos computadores


nas ltimas dcadas devido

Ao crescimento do desempenho dos computadores


geomtrico e no linear

Em mdia, o nmero de transistores em chip


aumentou 50% ao ano

A velocidade do transistor aumentou tanto que


o atraso de uma porta lgica (E, OU) diminuiu
13% ao ano

Taxa de crescimento anual de 60%

A quantidade de dados que pode ser armazenada


em um chip de memria RAM dinmica
quadruplicou a cada 3 anos desde o final da
dcada de 70

Mdia geomtrica versus aritmtica


Quais so as mdias aritmtica e geomtrica
dos valores 4,2,4,82?

A Mdia aritmtica desta srie

42482
=23
4

A mdia geomtrica
4

42482=7,16

10

Desempenho dos
microprocessadores

Do final de 1970 ao final de 1980

O cresceu 35% ao ano devido ao aperfeioamento


na tecnologia de fabricao
Efetivamente a taxa cresceu mais de 50% ao ano
Embora a taxa de fabricao de semicondutores
tenha permanecido constante
O aumento do desempenho tem sido devido a
melhorias na arquitetura e na organizao de
computadores
Com aumento da densidade

possvel acrescentar recursos aos microprocessadores


que aumenta o desempenho acima do aumento da
velocidade dos transistores
11

Exemplo

Ilustrao da rapidez com que a tecnologia de


computadores est sendo aperfeioada
Se tivesse acontecido a mesmo
aperfeioamento com os carros
Assuma que um carro mdio, em 1977, tinha
uma velocidade mxima de 160 km/h e
consumo mdio de 6,4km/l
Se tivesse um aperfeioamento a uma taxa de
35% ao ano de 1977 a 1987
E de 50%, de 1987 a 2000
Qual seria a velocidade mxima e o consumo
de um carro em 1987? E em 2000?

12

Medindo desempenho

A melhor medida de desempenho o tempo de execuo


dos programas
MIPS Milhes de Instrues por Segundo
Taxa pela qual a mquina executa instrues
Diviso do nmero de instrues de um programa pelo
seu tempo de execuo
CPI Ciclos Por Segundo
Nmero de ciclos de relgio para executar cada
instruo
CPI =

ciclos
instrues

IPC Instruo Por Ciclo


IPC=

instrues
ciclos
13

Consideraes

Taxa MIPS

No leva em conta que diferentes sistemas precisam de


nmeros diferentes de instrues para implementar um
programa

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


desempenho
CPI valores altos --> foram usados mais ciclos --> fraco
desempenho
CPI/IPC (so usados em simuladores: quantos ciclos so
usados em uma dada arquitetura)

Medidas menos teis do que MIPS (t=nr. Instrues * MIPS)


No tem informao sobre a freqncia do relgio do
sistema
Ou quantas instrues o sistema exige para executar uma
tarefa
14

Exemplo

Dado um programa com um lao de 100 instrues


executado 42 vezes. Se ele demora 16.000 ciclos
Quais so os valores de CPI e IPC?

Conjuntos de benchmark

MIPS e CPI/IPC tem limitaes


Benchmark consiste em uma srie de programas
tpicos executados no sistema (SPECCPU 2000
Benchmark)
Baseado em tempos totais de execuo no na taxa
de execuo de instrues (mdia do desempenho
para vrios programas)
15

Acelerao

Descreve como o desempenho de uma arquitetura muda


a medida que diferentes melhoramentos so feitos
Razo entre os tempos de execuo antes e depois que
a mudana feita
Tempo de execuo antes
Acelerao=
Tempo de execuo depois

Exemplo

Se um programa demora 25s numa arquitetura e 15s


em uma nova verso dessa mesma arquitetura
A acelerao geral de?
16

Lei de Amdahl

Regra bsica de projeto de computadores

O mais comum deve ser rpido

A freqncia com que o aperfeioamento usado


importante para o desempenho geral

Parcelausada
Tempo de execuonovo =Tempo de execuoantigo Parcelanousada
Acelaraousada

Parcela_{no-usada}
Parcela de tempo (no instrues) onde o aperfeioamento
no est em uso
Parcela_{usada}
Parcela onde o aperfeioamento est em uso
Acelerao_{usada}
Que acontece quando o aperfeioamento usado
Parcela_{no-usada} e Parcela_{usada}
So calculadas usando o tempo de execuo antes que as 17
modificaes sejam aplicadas

Lei de Amdahl reescrita


Acelerao=

Tempo de execuo antigo


=
Tempo de execuonovo

1
Parcelausada
Parcelanousada
Acelarao usada

Exemplo

Suponha que uma arquitetura no tenha suporte para


multiplicaes (adies repetidas)
Se a multiplicao por software demora 200 ciclos e quatro
ciclos por hardware
Qual a acelerao geral produzida pelo hardware para
multiplicao se um programa gasta 10% do seu tempo
fazendo multiplicao?
18

Exerccios

Se a verso de 1998 de um computador executa um programa em 200s a


verso fabricada no ano 2000 executa o mesmo programa em 150s, qual a
acelerao que o fabricante obteve ao longo de um perodo de 2 anos?
Quando est executando um programa em particular, o computador A
atinge 100MIPS e o computador B atinge 75MIPS. Porm, o computador A
demora 60s para executar o programa, enquanto o computador B demora
s 45s. Como isso possvel?
Qual o IPC de um programa que executa 35.000 instrues 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 clculo, e que seus fabricantes
faam um mudana que melhore o seu desempenho, naquele tipo de
clculo, por um fator de 10.

1. Se o programa demorava, originalmente, 100s para executar, qual


ser o seu tempo de execuo depois da modificao?

2. Qual a acelerao do sistema novo em relao ao antigo?

Qual parte do seu tempo de execuo o novo sistema gasta executando


19
o tipo de clculo que foi aperfeioado?

Representao de dados e aritmtica de


Computadores

De eletrons a bits

A conveno de sinais de um sistema digital


determina como os sinais eltricos analgicos so
interpretados como valores digitais
Faixa de tenso que ser
interpretada como 0 na
entrada de um circuito

0V

V 0L

Faixa legal para um 0


na sada de um
circuito

Faixa de tenso que ser


interpretada como 1 na
entrada de um circuito

V IL

V IH
Regio proibida

V 0H

Tenso de
alimentao

Faixa legal para um 1


na sada de um
circuito

20

Comentrios

V 0L tenso mais alta que um circuito pode produzir

para gerar um zero lgico

V 0H tenso mais baixa que um circuito pode produzir

para gerar um valor lgico 1

V 0H e V 0L devem estar mais prximos aos extremos da


faixa de tenso do que V IH e V IL

Os intervalos entre V 0Le V IL determinam as margens de


rudo do sistema digital

Quantidade que um sinal de sada pode mudar

Antes que seja interpretado por outro circuito como


o valor oposto
21

Exerccio

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 rudo para esta conveno de


sinais?

22

Sistemas binrios

Mapeiam cada sinal eltrico sobre dois valores


A informao que cada sinal carrega chamada de
um bit
Sistema com mais valores por sinal so possveis

A complexidade de projetar circuitos para


representar essa convenes de sinais

A reduo nas margens de rudo que ocorre


quando a faixa de tenso dividida em mais do
que dois valores

Tornam esses sistemas difceis de ser construdos


23

Representao binria de inteiros positivos

So representados usando o sistema binrio de


numerao posicional base 2
Semelhante ao sistema posicional base 10

O nmeros so representados como a soma dos


mltiplos de cada potncia de 10
1543=1103 5102 4101 3100

Binrio

100111=125 024 023 122 121120 =39

Os nmero binrios so precedidos pelo prefixo 0b


24

Valores representados

Decimal

Um nmero decimal com n dgitos pode representar valores


de 0 at 10n1

Binrio

Um nmero binrio com n dgitos sem sinal pode


representar valores de 0 at 2n1

Exigem mais dgitos que os nmeros decimais para


representar um certo inteiro

Hexadecimal

0 a 9 mesmos valores que na notao decimal

A at F ou a at f so usados para representar os nmero


10 at 15
Exemplo

Quais so as representaes binrias e hexadecimal do


nmero 47?

25

Exerccios

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 so as representaes hexadecimais dos
seguintes inteiros?
a) 67, b) 142 e c) 1348

26

Operaes aritmticas com inteiros positivos

A aritmtica base 2 feita usando as mesmas


tcnicas da aritmtica base 10
Exemplo

Calcule a soma de 9 e 5 usando nmeros binrios


em um formato de 4 bits -->9=0b1001 5=0b0101
1

0b 1 0 0 1

0b 0 1 0 1

0b 1 1 1 0

Transporte do bit resultante


da adio (vai 1)
Entrada 2 Entrada 1

Sada do
transporte

Somador
completo
Bit de
sada

Entrada do
transporte

27

Adio

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 no pode executar sua parte no
clculo at que todos os somadores sua direita
tenha completado seu clculo
O tempo cresce linearmente com o nmero de bits
nas entradas
Ganho de desempenho

Fazer o mximo de clculo em um somador antes


que cada entrada de transporte esteja disponvel

28

Exerccios

Calcule as somas dos seguintes pares de inteiros sem


sinal:

a) 0b11000100+0b00110110

b) 0b00001110+0b10101010

c) 0b11001100+0b00110011

d) 0b01111111+0b00000001

Quantos bits so necessrios para representar os


seguintes nmeros decimais como inteiros binrios
sem sinal?
a) 12 b) 147 c) 384 d) 1497
29

Subtrao

tratada por mtodos similares ao da adio


Usa mdulos que calculam um bit da diferena entre
dois nmeros

Inteiros negativos

A notao em complemento de 2 permite que a


subtrao seja feita ao negar a segunda entrada e
fazer a soma
O mesmo hardware da soma pode ser usado

Multiplicao

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 multiplicao de inteiros o produto de 2 nmero de


n bits pode exigir at 2n bits para ser representado
O produto de 2 nmeros de 4 bits exige 6 bits para ser
representado
Isso conhecido com transbordo (overflow) ou
transbordo negativo (underflow)
31

Diviso

Pode ser implementada subtraindo o divisor do dividendo


E contando o nmero de vezes que o divisor pode ser
subtrado do dividendo
Antes que o dividendo torne-se menor que o divisor
No prtico construir hardware para fazer diviso por
subtrao repetidas

30
30
2
dividido
por
2

-->
subtraes
2
2

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

Muito mais tempo do que qualquer operao aritmtica

31

Os projetistas usam mtodos baseados em pesquisa em


tabelas pr-geradas para implementar a diviso
32

Transbordo e transbordo negativo

A largura de bits de um computador limita o maior e o


menor nmero que pode ser representado como
inteiro

Inteiros sem sinal

Um nmero de n bits pode representar valores de 0


at 2n1
Operaes com nmeros que podem ser
representados em um nmero de bits
Podem gerar resultados que no pode ser
representado nesse formato
Exemplo

Somar dois inteiros de n bits pode produzir um


resultado de at 22n1 o que no pode ser
representado em n bits

33

Exemplo cont.

Ao subtrair dois inteiros positivos possvel gerar resultados


negativos
Que no pode ser representado por um nmero de n bits sem sinal
Ocorre transbordo quando o resultado no 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 prximo que pode ser
representado naquele formato
No caso de ponto flutuante existe um conjunto de representaes
especiais que especifica que ocorreu um transbordo chamados NaNs
34

Inteiros negativos

A notao de numerao posicional usada para


inteiros precisa ser expandida para indicar se um
nmero positivo ou negativo

Representao sinal magnitude

O bit mais significativo de um nmero binrio indica


se o nmero positivo ou negativo
O resto do nmero indica o valor absoluto (ou
magnitude) do nmero
Usa o mesmo formato que a representao binria
sem sinal
Nmeros de n bits em sinal e magnitude podem
representar quantidades de 2n11 at2n11

35

Representaes 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 representao binria 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 representao fcil formar o nmero negativo de um
nmero invertendo o bit de sinal

Verificar se o nmero positivo ou negativo tambm fcil

fcil executar a multiplicao e a diviso

No fcil executar a soma e a subtrao

36

Diviso e multiplicao

O hardware executa operaes 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 nmeros +7 e -5 usando inteiros de 6 bits em


sinal e magnitude

Soma e subtrao

Exige um hardware mais complexo


Somar ou subtrair a representao binria de um nmero positivo e a
representao binria de um nmero negativo no d o resultado correto
O hardware precisa levar em conta o valor do sinal de bit quando estiver
calculando cada bit de sada
necessrio hardware diferente para executar a adio e a subtrao
Muito poucos sistemas usam sinal e magnitude

37

Exemplo

Qual o resultado de tentarmos somar diretamente as


representaes em 8 bits em sinal e magnitude de +10 e -4?

Exerccios

Converta os seguintes nmeros decimais para a


representao em 8 bits em sinal e magnitude:

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

38

Notao em complemento de 2

Nessa notao o nmero negativo representado invertendose cada bit da representao sem sinal do nmero somando 1
Descarta-se os bits de transbordo que excedam a largura da
representao
O nome complemento de 2 vem do fato que a soma sem sinal
de um nmero com n bits em complemento de 2 com o seu
negativo 2n
Exemplo

Qual a representao em 8 bits, em complemento de 2, de


-12, e qual o resultado sem sinal da soma das
representaes de +12 e de -12?
39

Exemplos

Qual o resultado de negar duas vezes a representao de +5, em 4


bits, em complemento de 2?
Some os valores +3 e -4 em notaao de 4 bits em complemento de 2
Executar uma multiplicao direta das entradas, sem sinal, das
entradas em complemento de 2, no fornece o resultado correto

Extenso de sinal

Em aritmtica de computadores, as vezes preciso converter nmeros


representados em um dado nmero de bits para uma representao que
utiliza um nmero 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 extenso de um nmero em sinal e magnitude feita movendo o bit de
sinal da representao antiga para o bit de sinal da nova representao
preenchendo todos todos os bits adicionais na nova representao

40

Exemplo

Qual a representao em 16 bits, em sinal e magnitude,


do valor em 8 bits, em sinal e magnitude, 0b10000111
(-7)?

Extenso em complemento de 2

A extenso de sinal de nmeros em complemento de 2


mais complicada
Para fazer a extenso de sinal de um nmero em
complemento de 2 copie o bit mais significativo da antiga
representao para cada bit adicional da nova
representao
Os nmeros negativos tero zeros em todos os bits
acrescentados ao ir para uma representao mais larga
Nmeros negativos tero uns em todas estas posies de
41
de bit

Exemplo

Qual a extenso de sinal de 16 bits do valor 0b10010010


(-110) em 8 bits, em complemento de 2?

Exerccios

D a representao com 8 bits, em complemento de 2, dos


valores

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

D a representao em 8 bits dos nmeros 12 e -18, nas


notaes em sinal e magnitude e em complemento de 2, e
mostre como estas representaes tm o sinal estendido para
dar representaes de 16 bits em cada notao

42

Organizao de Computadores

A Organizao de Computadores trata da


estrutura interna que no visvel para o
programador

Exemplo: freqncia do relgio ou tamanho da


memria fsica

43

Organizao de computadores
Computador

Processador

Barramento de memria

Comutador

Sistema
de memria

Barramento de entrada e sada

Disco rgido

CD-ROM

Subsistemas: processador, memria e entrada e sada

Placa
vdeo de

Monitor
44

Subsistemas

Processador

Memria

Execuo de programas
Espao de armazenamento para os programas e
dados

Entrada e sada

Permite que o computador e a memria 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 mdulo comutador

Como a ponte PCI (Peripheral Component


Interconnect) encontrada na maioria dos sistemas

46

Comutador x Memria

A comunicao feita atravs 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
So usados barramentos separados
O E/S deve ser projetada para ser a mais flexvel
possvel
Para suportar vrios tipos de dispositivos de E/S e
maior largura de banda possvel entre o processador 47e
o sistema de memria

Programas
Codificao do programa

Traduo para linguagem de montagem


(compilao)

Nvel de linguagem
orientadas
para problemasTraduo (compilador)
Nvel de linguagem
de montagem
Traduo (montador)

Traduo para linguagem de mquina


(montagem)

Gerao do programa executvel


(ligao)

Nvel de sistema operacional


Interpretao parcial (so)

Nvel de mquina
convencional
Interpretao (microprograma)

Nvel de microprogramao
Carga do programa na memria
do computador

Os microprogramas executados diretamente pelo hardware

Nvel de lgica digital


Execuo do programa

Nveis presentes nos computadores


modernos

48

Sistemas operacionais

Administrao dos recursos fsicos do sistema

Carga e execuo dos programas

Interface com os usurios

Sistemas dedicados

Projetados para uma tarefa especfica

Geralmente no 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 usurio no pode controlar 49

Multiprogramao

A maioria dos computadores suporta multiprogramao


(multitarefa)
Tcnica que permite ao sistema dar a iluso que vrios
programas esto sendo executados simultaneamente no
computador

Mesmo que tenha apenas um processador

A cada programa dada uma fatia de tempo

Comutao de processo

No final do tempo de cada programa o SO retira o programa


da memria
Fatia de tempo

Programa1

Programa2

Programa 3

Tempo
Programa 4

Programa sendo executado pelo processador

Programa 1

Programa 2

Programa 3

Programa 4

50

Proteo

Principal requisito do SO
O resultado do programa em um ambiente
multiprogramado deve ser o mesmo se ele estivesse
executando sozinh
Os programa no devem acessar os dados dos outros
programas
Oferecer proteo requer que o SO tenha controle sobre
os recursos fsicos e a memria
Isso evita que um programa acesse a impressora ao
mesmo tempo
Essa tcnica a memria virtual que ser estudada nesse
curso
51

Modo privilegiado

SO roda em modo privilegiado

Outros programas rodam em modo usurio

Tarefas como acessar dispositivos, fazer


comutao de processos exige que o SO esteja
em modo privilegiado

52

Processador
Dados para a memria Dados da memria

Instrues da memria

Sinais de controle
Banco de registradores

Unidade
para
inteiros

Lgica de
controle

Unidade para
ponto
flutuante

Processador
53

Blocos do processador

Unidades de execuo

Banco de registradores e lgica de controle

A unidade de execuo contm o hardware que executa as


instrues

Isso inclui o hardware que busca e decodifica as instrues

E unidades lgico-aritmticas (ULAS) que executam os


clculos

Muitos sistema tem unidades diferentes para clculo 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 rpido que os dados da


memria

54

O sistema de memria

Receptculo de armazenamento para os dados e programas

Em geral, os sistemas tem dois tipos de memria

Memria apenas de leitura

Read Only Memory ROM


O contedo da ROM no 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 prpria conta) instrui o
computador a carregar o SO do seu HD ou outro
dispositivo de E/S
Memria de acesso aleatrio

Random Access Memory RAM

55

Memria RAM

Tanto pode ser lida como escrita


usada para manter os programas, o sistema operacional e os
dados exigidos pelo computador
Voltil, isto , os dados so apagados quando o computador
desligado
ROM e RAM so divididas em conjunto de posies de
armazenamento e cada uma pode manter 1 byte (8 bits) de dados
As posies de armazenamentos so numeradas e o nmero de uma
posio de armazenamento (chamada de endereo)
usado para dizer ao sistema de memria a quais posies o
processador quer fazer referncia
Uma caracterstica importante de um sistema a largura dos
endereos que ele utiliza, o que limita a capacidade de memria que
um computador pode enderear
A maioria dos computadores atuais usam
endereos
de 32 e 64 bits 56
32
64
Isso permite o endereamento de 2 e 2 bytes de memria

Memria - grande folha de papel

A memria pode ser vista como uma grande folha de papel pautado

Cada linha na pgina representa um local de armazenamento para um byte

Para armazenar um valor na memria, conta-se de cima para baixo na


pgina at que se atinja a linha especificada pelo endereo
0
1
2
3

Uma operao de leitura e escrita opera sobre uma quantidade de dados


igual largura de bits do sistema
O endereo enviado ao sistema de memria especifica a posio do byte de
dados de endereo 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 operao, nos 4 bytes que comeam com o endereo da
operao
De modo que uma carga a partir da localizao 424 retornaria uma
quantidade de 32 bits contendo os bytes das localizaes 424, 425, 426 e
427

57

Cargas e armazenamentos alinhados

Para simplificar o projeto do sistema de memria,


alguns computadores exigem que as cargas e
armazenamento sejam alinhados
Significa que o endereo de uma referncia de uma
memria precisa ser um mltiplo do tamanho do dado
que est sendo carregado ou armazenado
A carga de 4 bytes precisa ter um endereo que seja
mltiplo de 4
Um armazenamento de 8 bytes precisa ter um
endereo que seja um mltiplo de 8 e assim por diante
Sistemas com cargas e armazenamentos
desalinhados so lentos
58

Little endian versus big endian

Questo adicional com cargas e armazenamentos de vrios bytes a


ordem em que eles so escritos na memria
Little endian

ef

cd

ab

90

90

ab

cd

ef

Palavra = 0x90abcdef
Endereo: 0x1000
Big endian

Sistema little endian

O byte menos significativo (o valor menor) de uma palavra escrito no


byte de endereo mais baixo e os outros byts escritos na ordem
crescente de significncia

Sistema big endian

A ordem inversa, com o byte mais significativo sendo escrito no byte


de memria com o endereo com o endereo mais baixo

Os outros bytes so escritos na ordem crescente de significncia

Programadores

No precisam saber a ordem dos bytes no sistema com que estejam


trabalhando

59

Comentrios

Um armazenamento de um byte igual a 0, na localizao


0x1000, fosse executado nos sistemas apresentados na
figura anterior
Uma carga subseqente 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 seqncia 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 faa a interface com uma ampla gama de
dispositivos de E/S

Sem ter que implementar uma interface especfica para


cada um

Os barramentos podem suportar um nmero varivel


de dispositivos permitindo que os usurios
acrescentem outros depois

Padro PCI e outros

61

Exerccios

Se um computador de 800Mhz faz 60 comutaes 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 execuo 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 iluso de
que vrios programas esto sendo executados
simultaneamente? Quais os fatores que fazem com que
esta iluso seja prejudicada?
62

Você também pode gostar