12.07.2015 Views

Barramentos da placa de CPU.pdf

Barramentos da placa de CPU.pdf

Barramentos da placa de CPU.pdf

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Capítulo 12 – <strong>Barramentos</strong> <strong>da</strong> <strong>placa</strong> <strong>de</strong> <strong>CPU</strong> 12-41falta <strong>de</strong> papel e outros erros. Devido à operação por pooling, o processadorfica totalmente ocupado quando envia <strong>da</strong>dos à impressora. Po<strong>de</strong>mosinclusive notar algumas para<strong>da</strong>s no processamento normal durante aimpressão. Interfaces paralelas mo<strong>de</strong>rnas, operando nos modos EPP/ECPtransmitem e recebe <strong>da</strong>dos a ca<strong>da</strong> intervalo <strong>de</strong> 40 ciclos, e a única opçãoviável <strong>de</strong> funcionamento é a E/S por DMA. A E/S programa<strong>da</strong> por pooling<strong>de</strong>ixaria o processador monopolizado durante a impressão.Interfaces <strong>de</strong> re<strong>de</strong> a 10 Mbits/s oferecem 256 ciclos entre <strong>da</strong>dos consecutivos(barramento <strong>de</strong> 100 MHz), ou um número menor ain<strong>da</strong> nos barrametos maislentos. Por isso as interfaces <strong>de</strong> re<strong>de</strong> operam com E/S por DMA ou com E/Sprograma<strong>da</strong> por pooling. Para não monopolizar o uso do processador aooperar com pooling, as interfaces <strong>de</strong> re<strong>de</strong> utilizam um buffer que armazenaum bloco inteiro <strong>de</strong> <strong>da</strong>dos. Assim consegue uma utilização mais eficiente. Aotransmitir <strong>da</strong>dos, o processador os coloca rapi<strong>da</strong>mente no buffer e dispara atransmissão, ficando assim liberado. A interface <strong>de</strong> re<strong>de</strong> vai interromper oprocessador quando terminar a transmissão do bloco <strong>de</strong> <strong>da</strong>dos. Da mesmaforma durante a chega<strong>da</strong> <strong>de</strong> <strong>da</strong>dos a interface os armazena no seu buffer einterrompe o processador quando o bloco inteiro estiver pronto. O uso <strong>de</strong>buffers para acelerar o <strong>de</strong>sempenho, ocupando menos o processador, einterrupções apenas para sinalizar o término <strong>da</strong> operação, é possível apenaspara interfaces orienta<strong>da</strong>s por blocos, ou seja, que transmitem sempre blocos<strong>de</strong> <strong>da</strong>dos, como é o caso <strong>da</strong> interface <strong>de</strong> re<strong>de</strong>. Em contraste temos osdisposivos orientados a bytes ou caracteres, como os mo<strong>de</strong>ms, teclados eimpressoras, que requerem atenção individual do processador para ca<strong>da</strong>byte que transita. Interfaces <strong>de</strong> re<strong>de</strong> <strong>de</strong> 100 Mbits/s po<strong>de</strong>m operar com osmesmos métodos usados pelas interfaces <strong>de</strong> 10 Mbits/s.Dispositivos mais velozes não suportam a E/S programa<strong>da</strong> por interrupções.Devem usar DMA ou E/S programa<strong>da</strong> por pooling. Veja por exemplo o caso<strong>da</strong> interface IDE operando em PIO Mo<strong>de</strong> 4. Com apenas 19 ciclos entre<strong>da</strong>dos consecutivos, tem tempo suficiente para fazer um pooling: receber o<strong>da</strong>do, guar<strong>da</strong>r na memória, incrementar os contadores, testar se chegou oúltimo <strong>da</strong>do e caso não tenha chegado, voltar ao pooling para esperar opróximo <strong>da</strong>do. A seguir mostramos um trecho <strong>de</strong> programa (linguagemAssembly) no qual é feita uma leitura por pooling. O método é usado tantopara interfaces IDE como para outras que operem <strong>de</strong>sta forma. As diferençasficam por conta do número <strong>de</strong> bytes <strong>de</strong> ca<strong>da</strong> bloco, dos en<strong>de</strong>reços <strong>de</strong> <strong>da</strong>dose status e do bit indicador <strong>de</strong> <strong>da</strong>do pronto....MOV CX, 512MOV DI, BUFFER; Vai ler 512 bytes; DI aponta para o <strong>de</strong>stino

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!