Sei sulla pagina 1di 4

Organizao e Arquitetura de Computadores

Sistemas Computacionais
Carlos Augusto de S. Almeida
prof . c augusto almeida @gmail.com
Instituto Federal de Sergipe (IFS) Campus Itabaiana
Setembro de 2012
Roteiro da Aula
2
Arquitetura de Von Neumann (1946)
Umcomputador formado por 5 componentes:
1. Unidade de Entrada: prov os dados de entrada do sistema.
2. Unidade de Sada: prov sada para o resultado do sistema.
3. Unidade de Memria: armazena os dados do sistema.
4. Unidade Lgica e Aritmtica(ULA): executa as operaes (instrues).
5. Unidade de Controle(UC): determinar a sequencia das instrues a serem
executadas e gera os sinais de controle para as outras unidades.
A arquitetura bsica de qualquer
computador atual ainda segue o
modelo de Von Neumann, com
algumas modificaes
(modernizado).
Unidade Lgicae Aritmtica(ULA) ==
ArithmeticandLogicUnit (ALU)
Unidade de Controle (UC) ==
Control Unit
Unidade Central de Processamento (UCP) ==
Central ProcessingUnit (ALU)
3
Arquiteturas
(4) Unidade
Lgica e
Aritmtica (ULA)
(5) Unidade de
Controle (UC)
Unidade Central de
Processamento (UCP)
(1) Unidade
de Entrada
(3)
Unidade
de
Memria
(2) Unidade
de Sada
Arquitetura de Von Neumann
Conceitos Bsicos:
Conceito de Programa Armazenado
Um programa uma sequencia de instrues a serem executadas.
Dadose Instruesso armazenados em uma nica memriade
leitura e escrita.
Uma instruo definida por: operao & conjunto operandos.
P.ex. i nc x (== x :=x +1 )
O contedo dessa memria indexado por posio (um endereo).
Similar a umvetor na programao.
A execuo do programa
sequencial, uma instruo aps
outra.
Existe um nico caminho entre
a memriae a UCP(ou CPU).
4
Arquiteturas
(4) Unidade
Lgica e
Aritmtica (ULA)
(5) Unidade de
Controle (UC)
Unidade Central de
Processamento (UCP)
(1) Unidade
de Entrada
(3)
Unidade
de
Memria
(2) Unidade
de Sada
Arquitetura de Harvard
similar a Arquitetura de Von Neumann, mas possui 2 memrias
distintas e independentes;
1 memria para Dados e outra para Instrues;
Acessadas atravs de 2 barramentos independentes.
+Isso permite a CPU acessar as 2 memrias simultaneamente.
A CPU pode buscar 1-instruo na memria de Instrues,
enquanto est obtendo dados na memria de Dados;
Enquanto a CPU est executando uma instruo, ela j pode buscar as
prximas instrues/dados a serem executadas.
5
Arquiteturas :: Arquitetura de Von Neumann
(4) Unidade
Lgicae
Aritmtica(ULA)
(5) Unidade de
Controle (UC)
Unidade Central de
Processamento (UCP)
(1)
Unidade
de Entrada
(2)
Unidade
de Sada
Memriade
Instrues
Memriade
Dados
2Memrias
distintas
Processador (CPU)
Funo do Processador: executar a sequencia de instrues contida no programa.
Mas como ele faz isso ?
A execuo bsica de umprograma consiste de 2 etapas:
1. Buscar a instruo (ou ciclo de busca), envolve:
Buscar a instruo em si;
Interpretar a operao a ser executada;
Buscar os operandos (se houver).
2. Executar a instruo (ou ciclo de execuo)
Se a instruo encerra o programa, v para fim, seno
volte ao passo 1 (buscar prxima instruo).
Ciclo de Instruo =ciclo de busca +ciclo de execuo.
6
(1) Buscar
instruo
(2) Executar
instruo
Incio
Fim
Processador (CPU)
Funo do Processador: executar a sequencia de instrues contida no programa.
Mas como ele faz isso ?
A execuo bsica de umprograma consiste de 2 etapas:
Ciclo de Instruo =ciclo de busca +ciclo de execuo.
Uma instruo implica emuma ao:
Processador <=>Memria: transferncia de dados do processador para a
memria, e vice-versa.
Processador <=>E/S: transferncia de dados do processador para um dispositivo
de entrada/sada, e vice-versa.
Processamento de dados: o processador pode realizar alguma operao
aritmtica ou lgica sobre os dados.
Controle: uma instruo pode solicitar um desvio na execuo do programa. P.ex.
a instruo atual 100 e solicita que o programa seja desviado para a instruo 200.
Os itens anteriores, podem estar combinados em uma nica instruo.
7
Barramento
Um barramento pode ser visto sobre 2 pontos de vista:
Fsico: um conjunto de fios paralelos que permite a interconexo entre
os componentes do computador.
Trabalham por difuso (broadcast)
Apenas um nico dispositivo pode transmitir por vez.
Cada fio capaz de transmitir um bit por vez, como so vrios fios, um
conjunto de bits pode ser transmitido em paralelo.
Lgico: conjunto de vias (linhas) que formam um canal de comunicao
compartilhado entre os diversos subsistemas do computador.
CPU <=>Memria
CPU <=>Dispositivos de E/S
Dispositivos de E/S <=>Memria
8
Barramento
Embora seja comum representar graficamente o barramento como uma nica
via. Essa via internamente dividida em 3 conjuntos principais:
Barramento de Dados: vias usadas para a transferncia de dados entre os
mdulos dos sistema.
Barramento de Endereo: vias usadas para designar a origem ou destino dos
dados transferidos.
Barramento de Controle: vias usadas para controlar o acesso e o uso dos
barramentos de dados e endereos.
Entre outros: p.ex. barramento de energia, para alimentar os dispositivos.
9
Operaessobreo Barramento
Envio de dados entre 2 mdulos, X e Y, do sistema:
1. X solicita atravs do Barramento de Controle (BC) acesso a Y;
2. Em caso afirmativo, X recebe uma resposta OK tbatravs do BC;
3. X sinaliza Y atravs do BC qual operao ir realizar
(leitura ou escrita, no caso do envio de dados escrita);
4. X envia para Y atravs do Barramento de Endereo (BE), onde o dado a ser
enviado, deve ser escrito.
5. X envia para Y atravs do Barramento de Dados (BD), o dado a ser escrito.
Recebimento de dados similar ao envio de dados.
10
Barramento
Problemado usode um Barramentonico
Quando muitos dispositivos esto conectados a um mesmo barramento,
a eficcia do barramento fica prejudicada:
Quanto mais dispositivos esto conectados ao barramento, maior ser o
barramento, e portanto, maior ser o atraso na propagao dos dados;
Quanto mais dispositivos conectados, maior ser a taxa de transferncia
exigida para o barramento. Mas essa taxa de transferncia no pode ser
aumentada indefinidamente, existe um limite.
Soluo
Ao invs de usar um nico barramento, os computadores usam diversos:
Barramento Traseiro (ou Local) (BackSideBus) :: CPU Memria Cache
Barramento do Sistema (FrontSideBus) :: Mem. Principal Memria Cache
Barramento de Alta Velocidade ::
Entre a Memria Cache e diversos outros dispositivos
(SCSI, FireWire, Placa de Vdeio, LAN)
Barramento de Expanso :: estende o Barramento de Alta Velocidade
11
Barramento
BarramentoMltiplo
12
Barramento
Avaliao de Desempenho
Fatores que influenciamo desempenho vs Atributos do sistema
I
c
: nm. de instrues do prog.
p : nm. de ciclos p/ decodificar e executar uma instruo
m: nm. de referncias a memria feitas pelo prog.
k : (tempo de ciclo da memria) / (tempo de ciclo do processador)
t : tempo de 1 ciclo de clock
13
Avaliao de Desempenho
Tempo de Resposta: mede o tempo gasto desde o instante de tempo que
foi feita a solicitao at sua resposta.
Tempo de Respostas =(instante de tempo que o sistema apresentou a
resposta ao usurio) (instante de tempo que o usurio fez a solicitao)
Tempo de Acesso: mede a quantidade de tempo necessria para uma
memria atender uma solicitao de LEITURA.
Em geral, est relacionado a memrias (principal, secundria, cache);
Tempo de Acesso =(instante de tempo que a memria recebe a
solicitao) (instante de tempo que atende a solicitao)
Throughput (vazo): mede a quantidade tempo necessria para um
sistema concluir uma tarefa.
Em geral, est relacionada a sistemas.
14
Avaliao de Desempenho
CPI (CyclesPer Instruction, Ciclos por Instruo) [ uma mdia]
Nm. de Ciclos mdio por Instruo
Se todas as instrues fossem executadas com o mesmo nm. de ciclos de
clock, ento a CPI seria uma constante entre os processadores.
Porm, at em um mesmo processador, cada instruo exige um nm.
diferente de ciclos de clock
md|a CPI =
nm Jc ciclos poro instr_i (nm Jc instr_i cxccutoJos)
nm totol Jc ciclos cxccutoJos
Dessa forma, o tempo de execuo de um programa pode ser calc. por
[ignorando os tempo de: (i) acesso a memria; e (ii) decodificar as instrues]
tempu exec prug = nm instr cxcc CPI (tcmpo Jc 1 ciclo clock)
15
Avaliao de Desempenho
CPI (CyclesPer Instruction, Ciclos por Instruo) [ uma mdia]
Nm. de Ciclos mdio por Instruo
Refinando a eq. do slide anterior, para considerar, os tempos de
(i) acesso a memria; e (ii) decodificar as instrues. Tem-se:
tempu exec prug = nm instr cxcc

nm ciclos poro
JccoJiicor 1 instr

nm rc o
mcmorio

rcq Jo mcmorio
rcq Jo proccssoJor
16
Avaliao de Desempenho
MIPS(MillionOf InstructionPer Second) [ uma mdia]
uma medida comum para expressar o desempenho de um processador.
Taxa MIPS =
num instr cxccutoJos
tcmpo cxcc prog 1u
6
=
rcq Jo proccssoJor
CPI 1u
6
MFLOPS(MillionOf Floating-Point Per Second) [ uma mdia]
uma medida mais usada para medir o desempenho do processador
para aplicaes cientificas e jogos.
Taxa MFLOPS =
num Jc opcrocs Jc ponto lutuontc cxccutoJos
tcmpo Jc cxccuo Jo prog 1u
6
17
Avaliao de Desempenho
Benchmarks
Medidas como MIPS e MFLOPS provaram ser inadequadas para avaliar o
desempenho dos processadores.
Ex.: RISC vsCISC, para fazerem uma mesma coisa:
Processadores CISC requerem poucas instrues;
Processadores RISC requerem muitas instrues;
Para somar dois inteiros (result :=a +b):
CISC: add mem( a) , mem( b) , mem( r esul t )
RISC: l oad mem( b) , r eg( 1)
l oad mem( b) , r eg( 1)
add r eg( 1) , r eg( 2) , r eg( 3)
st or e r eg( 3) , r eg( r esul t )
Ento se a mq. CISC for classificada como 1 MIPS, a RISC seria 4 MIPS.
No exemplo, o RISC aparentemente foi mais rpido (4 MIPS), mas na verdade
ambas as mquinas fizeram a mesmo trab. no mesmo tempo.
18
Avaliao de Desempenho
Benchmarks
Benchmark um padro, que estabelece um conjunto de programas
teste que devem ser executados afim de verificar o desempenho de um
processador (ou sistema).
O pacote benchmark mais conhecido o SPEC (System Performance
EvaluationCorporation), um consrcio criado pela indstria.
Existem pacotes SPEC para:
Avaliar o desempenho de aplicaes Java: SPECjvm98
Aplicaes de Comercio Eletrnico baseadas em Java: SPECjbb2000
Avaliar o desempenho de servidores WWW: SPECweb99
...
19
Avaliao de Desempenho
Benchmarks
O benchmark d o tempo de execuo para cada programa teste.
Mas com isso apenas, no possvel saber qual a maquina mais rpida.
De posso dos resultados do pacote benchmark, existem diversas formas
p/ comparar o desempenho das mquinas:
Media Aritmtica: problema, no deixa claro o tempo de execuo.
Mdia Harmnica: equivale ao inverso da Mdia Aritmtica dos inversos
dos N valores. P.ex. 2, 6, 8
MH =
12 + 14 + 16
S
=3,78
Mdia Geomtrica: equivale a raiz N do produto de N valores. P.ex. 1, 2, 4.
MG =
n
1 2 4 =2
Mtrica de Velocidade: mede o tempo da CPU para executar 1 tarefa.
Mtrica de Taxa: mede o tempo da CPU para executar N tarefas.
20
Avaliao de Desempenho
Benchmarks
Medidas mais usadas:
Mtrica de Velocidade: mede o tempo da CPU para executar 1 tarefa,
p.ex. um benchmark (que possui um conjunto (um pacote) de programas
de referncia)
A mtrica uma mdia das n razes obtidas a partir da execuo dos n
programas de teste do conjunto.
Onde uma razo obtida por:
iazo_i =
tempo ue exec uo piogiama_i no sistema ue iefeincia
tempo ue exec uo piogiama_i no sistema em teste
A mtrica =mdia( razo_1, razo_2, ..., razo_n)
A mdia pode ser (aritmtica, harmnica, ou geomtrica);
O SPEC usa mdia geomtrica.
21
Avaliao de Desempenho
Benchmarks
P.ex. para executar um programa test: (i) um sistema da Sun leva 934 seg.;
(ii) enquanto no sistema de referncia leva 22,136.
Ento a razo
1
=22,136 / 934 => 23,7
A mtrica de velocidade: (i) usando a mdia geomtrica; e
(ii) considerando apenas 1 razo :
Mdia Geomtrica =equivale a raiz N do produto de N valores;
Mtrica Velocidade =
1
2S,7 =23,7
Mas se forem consideras mais razes (ver Tabela), computadas a partir de
outros testes, a Mtrica de Veloc. ser:
Mtrica Velocidade =
6
17,S 14 1S,7 17,6 14,7 18,6 =15,89
22
Avaliao de Desempenho
Benchmarks
Medidas mais usadas:
Mtrica de Taxa: similar a mtrica de velocidade, mas mede o tempo da
CPU para executar N tarefas, executadas simultaneamente.
Mais usada em processadores multi-core, onde o nm. de tarefas =
nm. de ncleos
A razo obtida por:
iazo_i =
N (tempo ue exec uo piog_i no sistema ue iefeincia
tempo ue exec uo piog_i no sistema em teste
23
Calc. Melhorias de Desempenho
Lei de Amdahl
Foi proposta inicialmente para medir o ganho obtido com o uso do
processamento paralelo, mas depois foi generalizada para medir o ganho de
desempenho em qualquer item de um projeto.
A Lei de Amdhal: permite calcular o ganho de desempenho (o speedup)
adquirido com o uso de mltiplos processadores em comparao com um
nico processador.
processamento paralelo vs processamento sequencial
speeuup =
(tempo ue exec ANTES ua melhoiia)
(tempo ue exec BEP0IS ua melhoiia)
speeuup =
(tempo ue exec com um nico piocessauoi)
(tempo ue exec com N piocessauoies em paialelo)
speeuup =
1
1 fiao melhoiaua +
fiao melhoiaua
ganho ue execuo
24
Calc. Melhorias de Desempenho
Lei de Amdahl
P.ex. supondo que depois de melhorias adicionadas ao sistema
as operaes de ponto-flutuante passaram a executar 2x mais rpidas,
porm apenas 10%das instrues de um programa so de ponto-
flutuante.
Qual foi o ganho de melhoria executando este programa?
Soluo
speeuup =
1
1 fiao melhoiaua +
fiao melhoiaua
ganho ue execuo
speeuup =
1
1 u,1 +
u,1
2
=
1
u,9S
= 1,uSS
Aps a melhoria do sistema, o programa executou 1,053x mais rpido,
uma melhoria de 5,3%.
25
Calc. Melhorias de Desempenho
Lei de Amdahl
Teoria vsPrtica
Na prtica, a Lei de Amdahl vlida at um certo "limite".
26

Potrebbero piacerti anche