Escolar Documentos
Profissional Documentos
Cultura Documentos
Computadores
Estudo dos componentes e de sua
organização em um computador digital, com a
análise do projeto de instruções, da hierarquia
de memória e de arquiteturas paralelas e
discussão das técnicas de aumento de
desempenho de processadores
2
Bibliografia
Básica
− Tanenbaum, A. S. Organização Estruturada
de Computadores, Prentice-Hall, Brasil, 2007.
− Satllings, W. Arquitetura e Organização de
Computadores, Prentice-Hall, 2002.
Complementar
− Hennessy, J. L. Patterson, D. A. Organização e
Projeto de Computadores, Campus, 2005.
− Weber, R. F. Fundamentos de Arquitetura de
Computadores, Sagra-Luzzatto, 2004.
− Monteiro, M. A. Introdução à Organização de
Computadores, LTC, 2001.
3
Conteúdo programático
Organização de
Arquitetura RISC e CISC
computadores: arquitetura
Pipeline, processadores
von Neumann, memórias,
superescalares e
unidades centrais de
superpipeline.
processamento, entrada e
saída
Processadores com
múltiplos núcleos e
Modos de endereçamento,
múltiplas trheads
conjunto de instruções
Multiprocessadores.
Barramento,
Multicomputadores
comunicações, interfaces e
periféricos
Paralelismo de baixa
granularidade
Organização de memória.
Memória auxiliar.
Arquiteturas paralelas e
não convencionais 4
Avaliações
Primeira N1 - 30/08
Segunda N1 – 24/09
Primeira N2 – 17/10
Segunda N2 – 19/11
Terceira N2 - 13/12
5
Definições
A Arquitetura de Computadores trata do
comportamento funcional de um sistema
computacional, do ponto de vista do
programador
− Exemplo: tamanho de um tipo de dados – 32 bits
para um inteiro
A Organização de Computadores trata da
estrutura interna que não é visível para o
programador
− Exemplo: freqüência do relógio ou tamanho da
memória física
Existe um conceito de níveis na arquitetura de
computadores
− A idéia básica é que existem muitos níveis nos
quais o computador pode ser considerado
Do nível mais alto, onde o usuário executa programas
Ao nível mais baixo, que consiste de transistores e fios
6
O modelo von Neumann
Possui cinco componentes principais:
− (1) unidade de entrada
− (2) unidade de saída
− (3) unidade lógica aritmética
Unidade
− (4) unidade de memória de
memória
− (5) unidade de controle.
Unidade
de
controle
7
Tendências tecnológicas
1980 – Aperfeiçoamento dos circuitos
integrados
− Aumento do desempenho dos computadores
− Densidade
Quantos transistores e ligações pode ser colocados em
uma área fixa em um chip de silício
− Velocidade
Rapidez com que as portas lógicas básicas e dispositivos
de memória operam
− Área
Tamanho físico do maior circuito integrado que pode ser
fabricado
8
Lei de Moore
O aumento do desempenho dos computadores
nas últimas décadas é devido
− Ao crescimento do desempenho dos computadores
é geométrico e não linear
Em média, o número de transistores em chip
aumentou 50% ao ano
A velocidade do transistor aumentou tanto que
o atraso de uma porta lógica (E, OU) diminuiu
13% ao ano
Taxa de crescimento anual de 60%
− A quantidade de dados que pode ser armazenada
em um chip de memória RAM dinâmica
quadruplicou a cada 3 anos desde o final da
década de 70 9
Média geométrica versus aritmética
Quais são as médias aritmética e geométrica
dos valores 4,2,4,82?
A Média aritmética desta série é
42482
=23
4
A média geométrica é
4
42482=7,16
10
Desempenho dos
microprocessadores
Do final de 1970 ao final de 1980
− O cresceu 35% ao ano devido ao aperfeiçoamento
na tecnologia de fabricação
− Efetivamente a taxa cresceu mais de 50% ao ano
− Embora a taxa de fabricação de semicondutores
tenha permanecido constante
− O aumento do desempenho tem sido devido a
melhorias na arquitetura e na organização de
computadores
− Com aumento da densidade
É possível acrescentar recursos aos microprocessadores
que aumenta o desempenho acima do aumento da
velocidade dos transistores
11
Exemplo
Ilustração da rapidez com que a tecnologia de
computadores está sendo aperfeiçoada
Se tivesse acontecido a mesmo
aperfeiçoamento com os carros
Assuma que um carro médio, em 1977, tinha
uma velocidade máxima de 160 km/h e
consumo médio de 6,4km/l
Se tivesse um aperfeiçoamento a uma taxa de
35% ao ano de 1977 a 1987
E de 50%, de 1987 a 2000
Qual seria a velocidade máxima e o consumo
12
de um carro em 1987? E em 2000?
Medindo desempenho
A melhor medida de desempenho é o tempo de execução
dos programas
MIPS – Milhões de Instruções por Segundo
− Taxa pela qual a máquina executa instruções
− Divisão do número de instruções de um programa pelo
seu tempo de execução
CPI – Ciclos Por Segundo
− Número de ciclos de relógio para executar cada
instrução
ciclos
CPI =
instruções
IPC – Instrução Por Ciclo
instruções
IPC=
ciclos
13
Considerações
Taxa MIPS
− Não leva em conta que diferentes sistemas precisam de
números diferentes de instruções para implementar um
programa
IPC - valores altos--> programa demorou menos ciclos--> bom
desempenho
CPI – valores altos --> foram usados mais ciclos --> fraco
desempenho
CPI/IPC (são usados em simuladores: quantos ciclos são
usados em uma dada arquitetura)
Conjuntos de benchmark
MIPS e CPI/IPC tem limitações
Benchmark consiste em uma série de programas
típicos executados no sistema (SPECCPU 2000
Benchmark)
Baseado em tempos totais de execução não na taxa
de execução de instruções (média do desempenho
para vários programas)
15
Aceleração
Descreve como o desempenho de uma arquitetura muda
a medida que diferentes melhoramentos são feitos
Razão entre os tempos de execução antes e depois que
a mudança é feita
Exemplo
Se um programa demora 25s numa arquitetura e 15s
em uma nova versão dessa mesma arquitetura
A aceleração geral é de?
16
Lei de Amdahl
Regra básica de projeto de computadores
− O mais comum deve ser rápido
− A freqüência com que o aperfeiçoamento é usado é
importante para o desempenho geral
[
Tempo de execuçãonovo =Tempo de execuçãoantigo × Parcelanão−usada
Parcelausada
Acelaraçãousada ]
Parcela_{não-usada}
− Parcela de tempo (não instruções) onde o aperfeiçoamento
não está em uso
Parcela_{usada}
− Parcela onde o aperfeiçoamento está em uso
Aceleração_{usada}
− Que acontece quando o aperfeiçoamento é usado
Parcela_{não-usada} e Parcela_{usada}
− São calculadas usando o tempo de execução antes que as 17
modificações sejam aplicadas
Lei de Amdahl reescrita
Tempo de execução antigo 1
Aceleração= =
Tempo de execuçãonovo Parcelausada
Parcelanão−usada
Acelaração usada
Exemplo
Suponha que uma arquitetura não tenha suporte para
multiplicações (adições repetidas)
Se a multiplicação por software demora 200 ciclos e quatro
ciclos por hardware
Qual a aceleração geral produzida pelo hardware para
multiplicação se um programa gasta 10% do seu tempo
fazendo multiplicação?
18
Exercícios
Se a versão de 1998 de um computador executa um programa em 200s a
versão fabricada no ano 2000 executa o mesmo programa em 150s, qual a
aceleração que o fabricante obteve ao longo de um período de 2 anos?
Quando está executando um programa em particular, o computador A
atinge 100MIPS e o computador B atinge 75MIPS. Porém, o computador A
demora 60s para executar o programa, enquanto o computador B demora
só 45s. Como isso é possível?
Qual o é IPC de um programa que executa 35.000 instruções e exige 17.00
ciclos para ser executado?
Suponha que, ao executar um dado programa, um computador gaste 90%
do seu tempo tratando um tipo especial de cálculo, e que seus fabricantes
façam um mudança que melhore o seu desempenho, naquele tipo de
cálculo, por um fator de 10.
− 1. Se o programa demorava, originalmente, 100s para executar, qual
será o seu tempo de execução depois da modificação?
− 2. Qual é a aceleração do sistema novo em relação ao antigo?
− Qual parte do seu tempo de execução o novo sistema gasta executando
o tipo de cálculo que foi aperfeiçoado? 19
Representação de dados e aritmética de
Computadores
De eletrons a bits
− A convenção de sinais de um sistema digital
determina como os sinais elétricos analógicos são
interpretados como valores digitais
Faixa de tensão que será Faixa de tensão que será
interpretada como 0 na interpretada como 1 na
entrada de um circuito entrada de um circuito
Tensão de
0V V 0L V IL V IH V 0H alimentação
Qual é a margem de ruído para esta convenção de
sinais?
22
Sistemas binários
Mapeiam cada sinal elétrico sobre dois valores
A informação que cada sinal carrega é chamada de
um bit
Sistema com mais valores por sinal são possíveis
− A complexidade de projetar circuitos para
representar essa convenções de sinais
− A redução nas margens de ruído que ocorre
quando a faixa de tensão é dividida em mais do
que dois valores
− Tornam esses sistemas difíceis de ser construídos
23
Representação binária de inteiros positivos
São representados usando o sistema binário de
numeração posicional base 2
Semelhante ao sistema posicional base 10
− O números são representados como a soma dos
múltiplos de cada potência de 10
1543=1×103 5×102 4×101 3×100
Binário
100111=1×25 0×24 0×23 1×22 1×211×20 =39
Os número binários são precedidos pelo prefixo 0b
24
Valores representados
Decimal
− Um número decimal com n dígitos pode representar valores
de 0 até 10n−1
Binário
− Um número binário com n dígitos sem sinal pode
representar valores de 0 até 2n−1
− Exigem mais dígitos que os números decimais para
representar um certo inteiro
Hexadecimal
− 0 a 9 mesmos valores que na notação decimal
−A até F ou a até f são usados para representar os número
10 até 15
Exemplo
− Quais são as representações binárias e hexadecimal do 25
número 47?
Exercícios
Mostre como os seguintes inteiros seriam
representados por um sistema que utiliza inteiros de 8
bits sem sinal
− a) 37 b) 89 c) 4 d) 126 e) 298
Quais são as representações hexadecimais dos
seguintes inteiros?
− a) 67, b) 142 e c) 1348
26
Operações aritméticas com inteiros positivos
A aritmética base 2 é feita usando as mesmas
técnicas da aritmética base 10
Exemplo
− Calcule a soma de 9 e 5 usando números binários
em um formato de 4 bits -->9=0b1001 5=0b0101
Transporte do bit resultante
− 1 da adição (vai 1)
− 0b 1 0 0 1
Entrada 2 Entrada 1
− 0b 0 1 0 1
− 0b 1 1 1 0 Saída do Somador Entrada do
transporte completo transporte
Bit de
saída
27
Adição
O hardware usado nos computadores é muito
parecido com o procedimento mostrado antes
A velocidade do circuito é depende do tempo que
demora para propagar os sinais de transporte (vai 1)
por todos os somadores completos
Cada somador não pode executar sua parte no
cálculo até que todos os somadores à sua direita
tenha completado seu cálculo
O tempo cresce linearmente com o número de bits
nas entradas
Ganho de desempenho
− Fazer o máximo de cálculo em um somador antes
que cada entrada de transporte esteja disponível 28
Exercícios
Calcule as somas dos seguintes pares de inteiros sem
sinal:
− a) 0b11000100+0b00110110
− b) 0b00001110+0b10101010
− c) 0b11001100+0b00110011
− d) 0b01111111+0b00000001
Quantos bits são necessários para representar os
seguintes números decimais como inteiros binários
sem sinal?
− a) 12 b) 147 c) 384 d) 1497
29
Subtração
É tratada por métodos similares ao da adição
Usa módulos que calculam um bit da diferença entre
dois números
Inteiros negativos
A notação em complemento de 2 permite que a
subtração seja feita ao negar a segunda entrada e
fazer a soma
O mesmo hardware da soma pode ser usado
Multiplicação
De inteiros com sinal é feita igual é feita pelos seres
humanos
30
Exemplo
0b 1 0 1 1
0b 0 1 0 1
1011
0000
1011
00000
0110111 --> 0b110111
Problema
Na multiplicação de inteiros o produto de 2 número de
n bits pode exigir até 2n bits para ser representado
O produto de 2 números de 4 bits exige 6 bits para ser
representado
Isso é conhecido com transbordo (overflow) ou
transbordo negativo (underflow)
31
Divisão
Pode ser implementada subtraindo o divisor do dividendo
E contando o número de vezes que o divisor pode ser
subtraído do dividendo
Antes que o dividendo torne-se menor que o divisor
Não é prático construir hardware para fazer divisão por
subtração repetidas
31 30 30
2 dividido por 2 é 2 --> 2 subtrações
Em um computador com 1 Ghz, isso demoria quase 1s
Muito mais tempo do que qualquer operação aritmética
Os projetistas usam métodos baseados em pesquisa em
tabelas pré-geradas para implementar a divisão
32
Transbordo e transbordo negativo
A largura de bits de um computador limita o maior e o
menor número que pode ser representado como
inteiro
Inteiros sem sinal
Um número de n bits pode representar valores de 0
até 2n−1
Operações com números que podem ser
representados em um número de bits
Podem gerar resultados que não pode ser
representado nesse formato
Exemplo
− Somar dois inteiros de n bits pode produzir um
resultado de até 22n−1 o que não pode ser 33
representado em n bits
Exemplo cont.
Ao subtrair dois inteiros positivos é possível gerar resultados
negativos
Que não pode ser representado por um número de n bits sem sinal
Ocorre transbordo quando o resultado não pode ser armazenado no
formato de seus operandos
Overflow – o resultado é grande demais
Underflow – resultado é pequeno demais para ser representado
naquele formato
Alguns sistemas sinalizam um erro quando os transbordos ocorrem
Outros substituem o resultado pelo valor mais próximo que pode ser
representado naquele formato
No caso de ponto flutuante existe um conjunto de representações
especiais que especifica que ocorreu um transbordo chamados NaNs
34
Inteiros negativos
A notação de numeração posicional usada para
inteiros precisa ser expandida para indicar se um
número é positivo ou negativo
Exercícios
38
Notação em complemento de 2
Nessa notação o número negativo é representado invertendo-
se cada bit da representação sem sinal do número somando 1
Descarta-se os bits de transbordo que excedam a largura da
representação
O nome complemento de 2 vem do fato que a soma sem sinal
de um número com n bits em complemento de 2 com o seu
negativo é 2n
Exemplo
Extensão de sinal
Em aritmética de computadores, as vezes é preciso converter números
representados em um dado número de bits para uma representação que
utiliza um número maior de bits
Um programa pode precisar somar uma entrada de 8 bits a um valor de 32
bits
O valor sem sinal de 8 bits 0b10110110 torna-se o valor sem sinal de 16 bits
0b0000000010110110
A extensão de um número em sinal e magnitude é feita movendo o bit de
sinal da representação antiga para o bit de sinal da nova representação
40
preenchendo todos todos os bits adicionais na nova representação
Exemplo
Qual é a representação em 16 bits, em sinal e magnitude,
do valor em 8 bits, em sinal e magnitude, 0b10000111
(-7)?
Extensão em complemento de 2
A extensão de sinal de números em complemento de 2 é
mais complicada
Para fazer a extensão de sinal de um número em
complemento de 2 copie o bit mais significativo da antiga
representação para cada bit adicional da nova
representação
Os números negativos terão zeros em todos os bits
acrescentados ao ir para uma representação mais larga
Números negativos terão uns em todas estas posições de
de bit 41
Exemplo
Qual é a extensão de sinal de 16 bits do valor 0b10010010
(-110) em 8 bits, em complemento de 2?
Exercícios
Dê a representação com 8 bits, em complemento de 2, dos
valores
− a) 23 b) -23 c) -48 d) -65.
Dê a representação em 8 bits dos números 12 e -18, nas
notações em sinal e magnitude e em complemento de 2, e
mostre como estas representações têm o sinal estendido para
dar representações de 16 bits em cada notação
42
Organização de Computadores
A Organização de Computadores trata da
estrutura interna que não é visível para o
programador
− Exemplo: freqüência do relógio ou tamanho da
memória física
43
Organização de computadores
Computador Barramento de memória
44
Subsistemas
Processador
− Execução de programas
Memória
− Espaço de armazenamento para os programas e
dados
Entrada e saída
− Permite que o computador e a memória controlem
os dispositivos que interagem com o mundo
externo ou que armazena dados
45
Comutador x Processador
Na maioria dos sistemas tem um único barramento de
dados que é conectado ao módulo comutador
− Como a ponte PCI (Peripheral Component
Interconnect) encontrada na maioria dos sistemas
46
Comutador x Memória
A comunicação é feita através de um
barramento
− Conjunto de linhas dedicadas que transfere dados
entre eles
Comutador x E/S
Um barramento de E/S distinto conecta o comutador
com os dispositivos de E/S
São usados barramentos separados
O E/S deve ser projetada para ser a mais flexível
possível
Para suportar vários tipos de dispositivos de E/S e
maior largura de banda possível entre o processador 47e
o sistema de memória
Programas
Nível de linguagem
Codificação do programa orientadas
para problemasTradução (compilador)
Nível de máquina
convencional
Geração do programa executável Interpretação (microprograma)
(ligação)
Nível de microprogramação
Os microprogramas executados diretamente pelo hardware
Carga do programa na memória
do computador
Nível de lógica digital
Execução do programa
Níveis presentes nos computadores 48
modernos
Sistemas operacionais
Administração dos recursos físicos do sistema
Carga e execução dos programas
Interface com os usuários
Sistemas dedicados
− Projetados para uma tarefa específica
− Geralmente não possuem um sistema operacional
− Executam um único programa
É um programa que sabe tudo sobre o hardware
É executado em modo privilegiado ou supervisor
− Isso permite que tenha acesso a todos os recursos
que os programas de usuário não pode controlar 49
Multiprogramação
A maioria dos computadores suporta multiprogramação
(multitarefa)
Técnica que permite ao sistema dar a ilusão que vários
programas estão sendo executados simultaneamente no
computador
Mesmo que tenha apenas um processador
A cada programa é dada uma fatia de tempo
Comutação de processo
− No final do tempo de cada programa o SO retira o programa
da memória
Fatia de tempo
Tempo
SO – roda em modo privilegiado
Outros programas – rodam em modo usuário
Tarefas como acessar dispositivos, fazer
comutação de processos exige que o SO esteja
em modo privilegiado
52
Processador
Dados para a memória Dados da memória Instruções da memória
Sinais de controle
Lógica de
controle
Banco de registradores
Processador
53
Blocos do processador
Unidades de execução
Banco de registradores e lógica de controle
A unidade de execução contém o hardware que executa as
instruções
− Isso inclui o hardware que busca e decodifica as instruções
− E unidades lógico-aritméticas (ULAS) que executam os
cálculos
Muitos sistema tem unidades diferentes para cálculo de inteiros
e ponto flutuante
O banco de registradores é uma pequena área de
armazenamento para os dados que o processador está usando
− Podem ser acessados mais rápido que os dados da
memória
54
O sistema de memória
Receptáculo de armazenamento para os dados e programas
Em geral, os sistemas tem dois tipos de memória
− Memória apenas de leitura
Read Only Memory – ROM
O conteúdo da ROM não pode ser modificado pelo