arquitetura_de_computadores
TRANSCRIPT
![Page 1: arquitetura_de_computadores](https://reader030.vdocuments.pub/reader030/viewer/2022020207/5571f8f749795991698e7e54/html5/thumbnails/1.jpg)
Organização e Arquitetura de Computadores
Clarimar José Coelho
http://professor.ucg.br/siteDocente/home/professor.asp?key=5021
![Page 2: arquitetura_de_computadores](https://reader030.vdocuments.pub/reader030/viewer/2022020207/5571f8f749795991698e7e54/html5/thumbnails/2.jpg)
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
![Page 3: arquitetura_de_computadores](https://reader030.vdocuments.pub/reader030/viewer/2022020207/5571f8f749795991698e7e54/html5/thumbnails/3.jpg)
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.
![Page 4: arquitetura_de_computadores](https://reader030.vdocuments.pub/reader030/viewer/2022020207/5571f8f749795991698e7e54/html5/thumbnails/4.jpg)
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
![Page 5: arquitetura_de_computadores](https://reader030.vdocuments.pub/reader030/viewer/2022020207/5571f8f749795991698e7e54/html5/thumbnails/5.jpg)
5
Avaliações
Primeira N1 - 30/08
Segunda N1 – 24/09
Primeira N2 – 17/10
Segunda N2 – 19/11
Terceira N2 - 13/12
![Page 6: arquitetura_de_computadores](https://reader030.vdocuments.pub/reader030/viewer/2022020207/5571f8f749795991698e7e54/html5/thumbnails/6.jpg)
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
![Page 7: arquitetura_de_computadores](https://reader030.vdocuments.pub/reader030/viewer/2022020207/5571f8f749795991698e7e54/html5/thumbnails/7.jpg)
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
![Page 8: arquitetura_de_computadores](https://reader030.vdocuments.pub/reader030/viewer/2022020207/5571f8f749795991698e7e54/html5/thumbnails/8.jpg)
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
![Page 9: arquitetura_de_computadores](https://reader030.vdocuments.pub/reader030/viewer/2022020207/5571f8f749795991698e7e54/html5/thumbnails/9.jpg)
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
![Page 10: arquitetura_de_computadores](https://reader030.vdocuments.pub/reader030/viewer/2022020207/5571f8f749795991698e7e54/html5/thumbnails/10.jpg)
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
![Page 11: arquitetura_de_computadores](https://reader030.vdocuments.pub/reader030/viewer/2022020207/5571f8f749795991698e7e54/html5/thumbnails/11.jpg)
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
![Page 12: arquitetura_de_computadores](https://reader030.vdocuments.pub/reader030/viewer/2022020207/5571f8f749795991698e7e54/html5/thumbnails/12.jpg)
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?
![Page 13: arquitetura_de_computadores](https://reader030.vdocuments.pub/reader030/viewer/2022020207/5571f8f749795991698e7e54/html5/thumbnails/13.jpg)
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
![Page 14: arquitetura_de_computadores](https://reader030.vdocuments.pub/reader030/viewer/2022020207/5571f8f749795991698e7e54/html5/thumbnails/14.jpg)
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
![Page 15: arquitetura_de_computadores](https://reader030.vdocuments.pub/reader030/viewer/2022020207/5571f8f749795991698e7e54/html5/thumbnails/15.jpg)
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)
![Page 16: arquitetura_de_computadores](https://reader030.vdocuments.pub/reader030/viewer/2022020207/5571f8f749795991698e7e54/html5/thumbnails/16.jpg)
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
![Page 17: arquitetura_de_computadores](https://reader030.vdocuments.pub/reader030/viewer/2022020207/5571f8f749795991698e7e54/html5/thumbnails/17.jpg)
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
![Page 18: arquitetura_de_computadores](https://reader030.vdocuments.pub/reader030/viewer/2022020207/5571f8f749795991698e7e54/html5/thumbnails/18.jpg)
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
![Page 19: arquitetura_de_computadores](https://reader030.vdocuments.pub/reader030/viewer/2022020207/5571f8f749795991698e7e54/html5/thumbnails/19.jpg)
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?
![Page 20: arquitetura_de_computadores](https://reader030.vdocuments.pub/reader030/viewer/2022020207/5571f8f749795991698e7e54/html5/thumbnails/20.jpg)
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
![Page 21: arquitetura_de_computadores](https://reader030.vdocuments.pub/reader030/viewer/2022020207/5571f8f749795991698e7e54/html5/thumbnails/21.jpg)
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
![Page 22: arquitetura_de_computadores](https://reader030.vdocuments.pub/reader030/viewer/2022020207/5571f8f749795991698e7e54/html5/thumbnails/22.jpg)
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?
![Page 23: arquitetura_de_computadores](https://reader030.vdocuments.pub/reader030/viewer/2022020207/5571f8f749795991698e7e54/html5/thumbnails/23.jpg)
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
![Page 24: arquitetura_de_computadores](https://reader030.vdocuments.pub/reader030/viewer/2022020207/5571f8f749795991698e7e54/html5/thumbnails/24.jpg)
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
![Page 25: arquitetura_de_computadores](https://reader030.vdocuments.pub/reader030/viewer/2022020207/5571f8f749795991698e7e54/html5/thumbnails/25.jpg)
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
![Page 26: arquitetura_de_computadores](https://reader030.vdocuments.pub/reader030/viewer/2022020207/5571f8f749795991698e7e54/html5/thumbnails/26.jpg)
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
![Page 27: arquitetura_de_computadores](https://reader030.vdocuments.pub/reader030/viewer/2022020207/5571f8f749795991698e7e54/html5/thumbnails/27.jpg)
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
![Page 28: arquitetura_de_computadores](https://reader030.vdocuments.pub/reader030/viewer/2022020207/5571f8f749795991698e7e54/html5/thumbnails/28.jpg)
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
![Page 29: arquitetura_de_computadores](https://reader030.vdocuments.pub/reader030/viewer/2022020207/5571f8f749795991698e7e54/html5/thumbnails/29.jpg)
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
![Page 30: arquitetura_de_computadores](https://reader030.vdocuments.pub/reader030/viewer/2022020207/5571f8f749795991698e7e54/html5/thumbnails/30.jpg)
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
![Page 31: arquitetura_de_computadores](https://reader030.vdocuments.pub/reader030/viewer/2022020207/5571f8f749795991698e7e54/html5/thumbnails/31.jpg)
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
![Page 32: arquitetura_de_computadores](https://reader030.vdocuments.pub/reader030/viewer/2022020207/5571f8f749795991698e7e54/html5/thumbnails/32.jpg)
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
![Page 33: arquitetura_de_computadores](https://reader030.vdocuments.pub/reader030/viewer/2022020207/5571f8f749795991698e7e54/html5/thumbnails/33.jpg)
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
![Page 34: arquitetura_de_computadores](https://reader030.vdocuments.pub/reader030/viewer/2022020207/5571f8f749795991698e7e54/html5/thumbnails/34.jpg)
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
![Page 35: arquitetura_de_computadores](https://reader030.vdocuments.pub/reader030/viewer/2022020207/5571f8f749795991698e7e54/html5/thumbnails/35.jpg)
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
![Page 36: arquitetura_de_computadores](https://reader030.vdocuments.pub/reader030/viewer/2022020207/5571f8f749795991698e7e54/html5/thumbnails/36.jpg)
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
![Page 37: arquitetura_de_computadores](https://reader030.vdocuments.pub/reader030/viewer/2022020207/5571f8f749795991698e7e54/html5/thumbnails/37.jpg)
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
![Page 38: arquitetura_de_computadores](https://reader030.vdocuments.pub/reader030/viewer/2022020207/5571f8f749795991698e7e54/html5/thumbnails/38.jpg)
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
![Page 39: arquitetura_de_computadores](https://reader030.vdocuments.pub/reader030/viewer/2022020207/5571f8f749795991698e7e54/html5/thumbnails/39.jpg)
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
![Page 40: arquitetura_de_computadores](https://reader030.vdocuments.pub/reader030/viewer/2022020207/5571f8f749795991698e7e54/html5/thumbnails/40.jpg)
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
![Page 41: arquitetura_de_computadores](https://reader030.vdocuments.pub/reader030/viewer/2022020207/5571f8f749795991698e7e54/html5/thumbnails/41.jpg)
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
![Page 42: arquitetura_de_computadores](https://reader030.vdocuments.pub/reader030/viewer/2022020207/5571f8f749795991698e7e54/html5/thumbnails/42.jpg)
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
![Page 43: arquitetura_de_computadores](https://reader030.vdocuments.pub/reader030/viewer/2022020207/5571f8f749795991698e7e54/html5/thumbnails/43.jpg)
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
![Page 44: arquitetura_de_computadores](https://reader030.vdocuments.pub/reader030/viewer/2022020207/5571f8f749795991698e7e54/html5/thumbnails/44.jpg)
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
![Page 45: arquitetura_de_computadores](https://reader030.vdocuments.pub/reader030/viewer/2022020207/5571f8f749795991698e7e54/html5/thumbnails/45.jpg)
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
![Page 46: arquitetura_de_computadores](https://reader030.vdocuments.pub/reader030/viewer/2022020207/5571f8f749795991698e7e54/html5/thumbnails/46.jpg)
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
![Page 47: arquitetura_de_computadores](https://reader030.vdocuments.pub/reader030/viewer/2022020207/5571f8f749795991698e7e54/html5/thumbnails/47.jpg)
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
![Page 48: arquitetura_de_computadores](https://reader030.vdocuments.pub/reader030/viewer/2022020207/5571f8f749795991698e7e54/html5/thumbnails/48.jpg)
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
![Page 49: arquitetura_de_computadores](https://reader030.vdocuments.pub/reader030/viewer/2022020207/5571f8f749795991698e7e54/html5/thumbnails/49.jpg)
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
![Page 50: arquitetura_de_computadores](https://reader030.vdocuments.pub/reader030/viewer/2022020207/5571f8f749795991698e7e54/html5/thumbnails/50.jpg)
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
![Page 51: arquitetura_de_computadores](https://reader030.vdocuments.pub/reader030/viewer/2022020207/5571f8f749795991698e7e54/html5/thumbnails/51.jpg)
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
![Page 52: arquitetura_de_computadores](https://reader030.vdocuments.pub/reader030/viewer/2022020207/5571f8f749795991698e7e54/html5/thumbnails/52.jpg)
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
![Page 53: arquitetura_de_computadores](https://reader030.vdocuments.pub/reader030/viewer/2022020207/5571f8f749795991698e7e54/html5/thumbnails/53.jpg)
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
![Page 54: arquitetura_de_computadores](https://reader030.vdocuments.pub/reader030/viewer/2022020207/5571f8f749795991698e7e54/html5/thumbnails/54.jpg)
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
![Page 55: arquitetura_de_computadores](https://reader030.vdocuments.pub/reader030/viewer/2022020207/5571f8f749795991698e7e54/html5/thumbnails/55.jpg)
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
![Page 56: arquitetura_de_computadores](https://reader030.vdocuments.pub/reader030/viewer/2022020207/5571f8f749795991698e7e54/html5/thumbnails/56.jpg)
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
![Page 57: arquitetura_de_computadores](https://reader030.vdocuments.pub/reader030/viewer/2022020207/5571f8f749795991698e7e54/html5/thumbnails/57.jpg)
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
![Page 58: arquitetura_de_computadores](https://reader030.vdocuments.pub/reader030/viewer/2022020207/5571f8f749795991698e7e54/html5/thumbnails/58.jpg)
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
![Page 59: arquitetura_de_computadores](https://reader030.vdocuments.pub/reader030/viewer/2022020207/5571f8f749795991698e7e54/html5/thumbnails/59.jpg)
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
![Page 60: arquitetura_de_computadores](https://reader030.vdocuments.pub/reader030/viewer/2022020207/5571f8f749795991698e7e54/html5/thumbnails/60.jpg)
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
![Page 61: arquitetura_de_computadores](https://reader030.vdocuments.pub/reader030/viewer/2022020207/5571f8f749795991698e7e54/html5/thumbnails/61.jpg)
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
![Page 62: arquitetura_de_computadores](https://reader030.vdocuments.pub/reader030/viewer/2022020207/5571f8f749795991698e7e54/html5/thumbnails/62.jpg)
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?