Upload
higor-nucci
View
326
Download
1
Embed Size (px)
Citation preview
Organização e Arquitetura de Computadores
Clarimar José Coelho
http://professor.ucg.br/siteDocente/home/professor.asp?key=5021
2
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
3
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.
4
Conteúdo programático Organização de
computadores: arquitetura von Neumann, memórias, unidades centrais de processamento, entrada e saída
Modos de endereçamento, conjunto de instruções
Barramento, comunicações, interfaces e periféricos
Organização de memória. Memória auxiliar.
Arquitetura RISC e CISC
Pipeline, processadores superescalares e superpipeline.
Processadores com múltiplos núcleos e múltiplas trheads
Multiprocessadores. Multicomputadores
Paralelismo de baixa granularidade
Arquiteturas paralelas e não convencionais
5
Avaliações
Primeira N1 - 30/08
Segunda N1 – 24/09
Primeira N2 – 17/10
Segunda N2 – 19/11
Terceira N2 - 13/12
6
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
7
O modelo von Neumann Possui cinco componentes principais:
− (1) unidade de entrada − (2) unidade de saída− (3) unidade lógica aritmética− (4) unidade de memória− (5) unidade de controle.
Unidade aritméticae lógica
Unidade de entrada
Unidade de controle
Unidade de saída
Unidade de memória
8
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
9
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
10
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 é
A média geométrica é
424824
=23
442482=7,16
11
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
12
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
de um carro em 1987? E em 2000?
13
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
IPC – Instrução Por Ciclo
CPI=ciclos
instruções
IPC=instruçõesciclos
14
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
15
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)
16
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
Se um programa demora 25s numa arquitetura e 15s em uma nova versão dessa mesma arquitetura
A aceleração geral é de?
Aceleração=Tempodeexecuçãoantes
Tempode execuçãodepois
Exemplo
17
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
Tempode execuçãonovo=Tempode execuçãoantigo×[Parcelanão−usadaParcelausada
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 modificações sejam aplicadas
18
Lei de Amdahl reescrita
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?
Aceleração=Tempodeexecuçãoantigo
Tempodeexecuçãonovo
=1
Parcelanão−usadaParcelausada
Acelaraçãousada
Exemplo
19
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?
20
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
0V V 0L V IL V IH V 0H
Tensão de alimentação
Faixa de tensão que será interpretada como 0 na entrada de um circuito
Faixa de tensão que será interpretada como 1 na entrada de um circuito
Região proibidaFaixa legal para um 0 na saída de um circuito
Faixa legal para um 1 na saída de um circuito
21
Comentários
tensão mais alta que um circuito pode produzir para gerar um zero lógico
tensão mais baixa que um circuito pode produzir para gerar um valor lógico 1
devem estar mais próximos aos extremos da faixa de tensão do que
Os intervalos entre e 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
V 0L
V 0H
V 0H eV 0L
V IH eV IL
V 0L V IL
22
Exercício Suponha que um sistema digital tenha
V DD=3,3V ,V IL=1,2V ,V 0L=0,7V ,V IH 2,1V ,V 0H=3,0V.
Qual é a margem de ruído para esta convenção de sinais?
23
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
24
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
Binário1543=1×1035×1024×1013×100
100111=1×250×240×231×221×211×20=39
Os número binários são precedidos pelo prefixo 0b
25
Valores representados Decimal
− Um número decimal com n dígitos pode representar valores de 0 até
Binário
− Um número binário com n dígitos sem sinal pode representar valores de 0 até
− 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 número 47?
10n−1
2n−1
26
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
27
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
− 1− 0b 1 0 0 1− 0b 0 1 0 1− 0b 1 1 1 0
Transporte do bit resultante da adição (vai 1)
Entrada 2 Entrada 1
Saída do transporte
Entrada do transporte
Bit de saída
Somador completo
28
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
29
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
30
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
31
Exemplo
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)
0b 1 0 1 1 0b 0 1 0 1 1 0 1 1 0 0 0 0 1 0 1 1 0 0 0 0 0 0 1 1 0 1 1 1 --> 0b110111
Problema
32
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
dividido por 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
231 230 230
33
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é 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é o que não pode ser representado em n bits
2n−1
22n−1
34
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
35
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−1até2n−1−1
36
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
Não é fácil executar a soma e a subtração
37
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
Muito poucos sistemas usam sinal e magnitude
38
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
39
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 é
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?
2n
40
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 preenchendo todos todos os bits adicionais na nova representação
41
Exemplo Qual é a representação em 16 bits, em sinal e magnitude,
do valor em 8 bits, em sinal e magnitude, 0b10000111 (-7)?
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
Extensão em complemento de 2
42
Exemplo
Qual é a extensão de sinal de 16 bits do valor 0b10010010 (-110) em 8 bits, em complemento de 2?
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
Exercícios
43
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
44
Organização de computadores
Processador Comutador Sistema de memória
Disco rígido CD-ROM Placa de vídeo
Computador
MonitorSubsistemas: processador, memória e entrada e saída
Barramento de entrada e saída
Barramento de memória
45
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
46
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
47
Comutador x Memória A comunicação é feita através de um
barramento − Conjunto de linhas dedicadas que transfere dados
entre elesComutador 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 e o sistema de memória
48
Programas
Codificação do programa
Tradução para linguagem de montagem (compilação)
Tradução para linguagem de máquina(montagem)
Geração do programa executável(ligação)
Carga do programa na memória do computador
Execução do programa
Nível de linguagem orientadas para problemas
Nível de linguagem de montagem
Nível de sistema operacional
Nível de máquina convencional
Nível de microprogramação
Nível de lógica digital
Tradução (compilador)
Tradução (montador)
Interpretação parcial (so)
Interpretação (microprograma)
Os microprogramas executados diretamente pelo hardware
Níveis presentes nos computadores modernos
49
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
50
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
Programa1 Programa2 Programa 3 Programa 4 Programa 1 Programa 2 Programa 3 Programa 4
Programa sendo executado pelo processador
Fatia de tempoTempo
51
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
52
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
53
Processador
Banco de registradores
Unidade para inteiros
Unidade para ponto flutuante
Lógica de controle
Dados para a memória Dados da memória
Processador
Instruções da memória
Sinais de controle
54
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
55
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 Random Access Memory – RAM
56
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 endereços de 32 e 64 bits− Isso permite o endereçamento de bytes de memória232e264
57
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
012
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 427
58
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
59
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
ef cd ab 90
90 ab cd ef
Little endian
Big endian
Palavra = 0x90abcdefEndereço: 0x1000
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 trabalhando
60
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
61
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
62
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?