Escolar Documentos
Profissional Documentos
Cultura Documentos
- a instruo em execuo assim como outros dados intermdios necessrios para a sua execuo so armazenados em registos internos na CPU - as operaes aritmticas envolvidas na execuo da instruo, por exemplo adio de operandos, so realizados na ALU,
int d, n;
cout << Numero: ; cin >> n; d = n * 2; ofstream f(teste); f << d; }
ler um valor da memria, realizar uma operaao aritmtica no CPU (ou ...) escrever um valor na memria
compilao : produzir o programa em linguagem mquina a partir da fonte em lingagem de alto nvel
chamar o programa: carregar o programa executvel de um ficheiro em disco para a memria principal
data path cycle ciclo de movimentao dos operandos e produo do resultado de uma operao na ALU
- quando mais rpido for o data path cycle mais rpida ser a mquina -as instrues de clculo mais rpidas so as que podem ser realizadas s com um ciclo - instrues mais complexas podem envolver vrios ciclos...
Exemplos supondo a implementao do MAC-1 com uma nica ALU addd x : AC = AC + m[x] - obteno do 2 operando - soma dos dois operandos (data path) addl x : AC = AC + m[SP+x] - clculo do endereo (SP+X) para obteno do 2 operando (data path) - obteno do 2 operando - soma dos dois operandos (data path) implementao de uma unidade de multiplicao com base numa ALU de adio / subtraco: utilizao repetitiva da data path
Maior conjunto de instrues Instrues mais potentes -mais complexas (demoradas) de executar
Muitas vezes suportadas num mecanismo de interpretao -as instrues do processador so por sua vez, elas prprias, executadas por um programa com microinstrues que lidam com o hw da mquina
fetch
extraco da prxima instruo da memria para o interior da CPU (a prxima instruo indicada pelo Program Counter, que automaticamente incrementado, podendo depois vir a ser alterado se a instruo for um jump) descodificar a instruo: a estrutura da instruo contm uma conjunto de bits que indicam o tipo de instruo (op-code); ex: em muitos casos, no mac-1 os primeiros 4 bits identificam a instruo; ex 0111 ... => loco
decode
operand fetch
se for o caso, ir outra vez memria extrair um operando: ex: lodd ....
execuo
execuo da instruo, se for o caso, passando pela ALU :movimentao dos operandos e extraco do resultado pela data path
write back
se for o caso, acesos memria para escrita do resultado: ex: stod ...
modos de endereamento
mecanismos para indicao dos endereos
local
endereo indexado ao topo do stack; ex: STOL 3 #posio de memria SP+3
indirecto
endereo armazenado num registo(endereo calculado) ex: POPI #posio de memria indicada no registo AC
fetch
execuo
fetch
execuo tempo
pipeline com uma unidade comum de fetch e diferentes unidades operacionais de execuo
linha de endereo : atravs das quais endereada a memria m linhas => 2m posies de memria enderevel linhas de dados : atravs dos quais circulam os dados entre cpu e memria; tamanho de palavra do pocessador (ex: 32 bits);
linhas de controlo: atravs das quais o CPU recebe / envia sinais de controlo de / para os restantes circuitos; ex: r/w para a memria;
mecanismo de interrupes - o hw externo activa um pedido de interrupo - o processador interrompe a execuo do programa em curso, salvaguarda o contexto (registos...) no stack e executa uma subrotina de servio de interrupo podendo depois retomar o programa em curso ou seguir outra aco determinada pela subrotina de servio da interrupo
BUS
uma estrutura de ligao (um conjunto de linhas) partilhada entre vrios circuitos, que em determinado momento implementa a ligao selectiva entre dois deles;
us protocol especificao do bus em termos de largura, funcionalidade de cada uma das linhas, velocidade, etc; asos familiares: EISA, PCI, USB FireWire,...
mero de linhas do bus, em particular nmero de linhas de endereo dados exemplo: evoluo da largura do bus de endereos em arquitecturas IMB/PC
multiplexed bus partilhar as lnhas de dados e endereo - primeiro coloca-se o endereo para acesso memria; - depois as mesmas linhas (ou parte delas) servem para transferir os dados; -vantagem : evitar o aumento de linhas; -desvantagem: velocidade;
largura de banda - velocidade a que se conseguem transmitir dados atravs do bus proporcional -largura (nmero de linhas) -velocidade de operao do bus velocidades tpicas dos bus externos mais usados ~10-100 KHz (muito menor que a velocidade tpica de um processador actual) EX: um bus a 33KHz com 32 linhas de dados, tem uma largura de banda de 33*32 KBits/s (ou seja, permite, na melhor das hipteses transferir dados entre circuitos ligados atravs dele a esta velocidade mxima) num computador actual coexistem diferentes buses, com diferentes caractersticas, em geral com maior largura de banda quando mais prximos do processador
um bus uma estrutura de ligaao partilhada entre vrios circuitos, permitindo, em cada momento, fazer a ligao entre dois deles o bus , assim, um recurso limitado; os circuitos presentes competem entre si pela atribuio do bus quando precisam de transferir dados
o mesmo circuito pode, em diferentes momentos, actuar como master ou slave Exemplos: - leitura / escrita de uma instruo da memria - leitura do disco (iniciar a operao) - dma (transferncia directa disco / memria) Memria Master CPU CPU Slave Memria Controlador Controlador
mecanismo de arbitragem - todos os circuitos esto ligados a uma linha de pedido ( request) do bus (logicamente equivalente a um OR de todas as ligaes nessa linha) - o circuito que pretende o bus activa a linha de pedido do bus - o rbitro activa a linha de atribuio grant do bus que passa por todos os circuitos - um circuito que no tenha feito continua a transmisso do sinal grant para os circuitos seguintes um circuito que tenha feito um pedido descontinua a transmisso do sinal de grant, e toma conta do bus assim, neste esquema privilegiado o circuito que se encontra mais prximo do rbitro para evitar esta situao pode haver vrias linhas de request, com prioridades diferentes, privilegiando primeiro os circuitos com maior prioridade