Você está na página 1de 20

CPU e BUS

Estrutura de um computador digital


CPU e BUS
Curso de Execuo de um Programa - um programa em execuo constitudo por um conjunto de instrues e dados armazenados na memria principal - o CPU extrai da memria e executa as instrues uma por uma; a prxima instruo a ser executada indicada por um registo interno PC (Program Counter) que normalmente aumenta 1 aps a execuo de cada instruo, criando assim um mecanismo automtico de execuo sequencial; -a instruo em execuo viaja do CPU para a memria atravs do BUS; descodificada pela unidade de controlo do CPU, que procede sua execuo - a execuo pode envolver a leitura ou escrita de dados em memria, dados esses que so transferidos entre o CPU e a memria tambm atravs do BUS

CPU : elemento principal, responsvel pela execuo das


instrues (armazenadas na memria principal)

- 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,

BUS : suporte de interligao entre os vrios elementos

Estrutura de um computador digital


Relao com as operaes de alto nvel main() {

int d, n;
cout << Numero: ; cin >> n; d = n * 2; ofstream f(teste); f << d; }

acesso a um perifrico (terminal, teclado,...)

ler um valor da memria, realizar uma operaao aritmtica no CPU (ou ...) escrever um valor na memria

escrever em memria secundria (disco)

linux> c++ prog.cpp o prog lunix> prog Numero:

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

Estrutura de um computador digital


ALU Unidade de lgica aritmtica
execuo da instruo ADDD X no MAC-1 operandos: contudo actual do ACumulador valor lido da posio de memria X - lido o contudo da posio de memria X para o interior do CPU, onde armazenado num registo temporrio (M) que recebe e guarda provisoriamente os operandos lidos da memria - os registos que contm os operandos, (AC) e (M), so transferidos para os registos de entrada da ALU que mantm o valor dos operandos estvel durante o tempo necessrio realizao da adio; -o resultado A+B formado num registo de armazenamento temporrio que recolhe a sada da ALU; - o resultado da operao transferido para o registo de destino (AC)

data path : hw de suporte execuo das operaes aritmticas e lgicas na CPU


constitudo por: - registos : guardar provisoriamente os dados e resultados das operaes em curso na ALU - ALU (Arithmetic Logic Unit) : realiza as operaes elementares- adio, subtraco, comparao lgica, etc - buses de interligao entre estes elementos;

Estrutura de um computador digital


data path cycle

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

Estrutura de um computador digital


instruction set Instruction Set Conjunto de instrues do processador duas filosofias

CISC Complex InstructionSet Computer

RSC Reduced InstructionSet Computer

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

Conjunto de instrues menor Instrues mais simples mas mais eficientes(rpidas)


ainda que precise de mais instruoes um programa pode ser mais rpido se essas instrues forem bastante mais rpidas

Estrutura de um computador digital


instrues : etapas de processamento

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 ...

Estrutura de um computador digital


instrues : acesso memria instrues registo registo instrues internas : no envolvem o acesso memria instrues registo memria envolvendo leitura de operandos / escrita de resultados na memria
exemplo: imaginemos uma mquina hipottica MAC-? com vrios registos internos A, B, C, etc register int i, s ; for ( i = 0, s = 0; i < 10; i ++) { s = s + i; } o ciclo pode ser compilado de forma e ser executado com um nmero mnimo de acessos memria LOAD I, A CLEAR A LOAD S,B CLEAR B ADD A, B INC A .... #carregar I no registo a #limpar o registo A (A=0) #carregar I no registo B #adiciona B a A (A += B) #incrementa A

modos de endereamento
mecanismos para indicao dos endereos

(no MAC-1) directo


endereo fixo indicado na sintaxe da instruo; ex: STOD 1000 #posio de memria 1000

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

Estrutura de um computador digital


paralelismo na execuo: pre-fetch

fetch

execuo

fetch

execuo tempo

fetch da prxma instruo em paralelo com a execuo da instruo em curso

separao da CPU em diferentes unidades operacionais,


neste caso: -unidade de fetch : recolha das instrues; manuteno de um pequeno buffer com 1+ das instrues seguintes - unidade(s) de execuo

Estrutura de um computador digital


paralelismo na execuo: pipeline

pipeline com uma unidade comum de fetch e diferentes unidades operacionais de execuo

Estrutura de um computador digital


paralelismo na execuo: pipeline

Estrutura de um computador digital


CPU : cricuito

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;

Estrutura de um computador digital


CPU : interrupes

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

Estrutura de um computador digital


CPU : bus

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,...

Estrutura de um computador digital


CPU : caractersticas nmero de linhas

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;

Estrutura de um computador digital


BUS : caractersticas largura de banda

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

Estrutura de um computador digital


BUS : caractersticas hierarquia de buses

Estrutura de um computador digital


BUS : arbitragem

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

arbitragem protocolo de regulao da atribuio do bus


master circuito que requer o bus, tomando a iniciativa de executar uma operao de trasferncia slave - circuito que, no contexto, funciona como destino da transferncia

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

Estrutura de um computador digital


BUS : arbitragem modelo daisy chain

Estrutura de um computador digital


BUS : arbitragem modelo daisy chain

circuito de arbitragm no CPU ou em cirucito externo

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

Você também pode gostar