Você está na página 1de 2

Acesso direto memria

O termo DMA um acrnimo para a expresso em ingls Direct memory access. O DMA permite que certos dispositivos de hardware num computador acedam a memria do sistema para leitura e escrita independentemente da CPU. Muitos sistemas utilizam DMA, incluindo controladores de disco, placas grficas, de rede ou de som.O acesso direto da memria usado igualmente para transferncia de dados de ncleos em processadores multicore, em especial nos sistema-em-microplaquetas do processador, onde seu elemento de processamento equipado com uma memria local ,e o acesso direto da memria usado para transferir dados entre a memria local e a memria principal. Os computadores que tm os canais de acesso direto a memria podem transferir dados aos dispositivos com muito menos perdas gerais de processamento do que computadores sem uma via de acesso direto memria. Similarmente um elemento de processamento dentro de um processador multi-core pode transferir dados para e de sua memria local sem ocupar seu tempo de processamento e permitir a simultaneidade de transferncia de dados. Sem acesso direto da memria, usando a modalidade programada de entrada/sada (E/S) para uma comunicao com os dispositivos perifricos, ou as instrues da troca no caso dos ncleos multi-core, o processador central ocupado inteiramente para a leitura ou escrita da operao, e assim no se torna possvel executar o outro afazer. Com acesso direto da memria, o processador central executa transferncias, faz outras operaes enquanto alguma transferncia estiver em andamento, recebe uma interrupo do controlador de acesso direto da memria uma vez que a operao foi feita.

Princpio
O DMA uma caracterstica essencial dos computadores modernos. Normalmente o nico componente que acessa a memria RAM da mquina o processador. O recurso DMA permite que outros componentes tambm acessem a memria RAM diretamente, como discos rgidos, o que aumenta o desempenho na transferncia de grande quantidade de dados. De outra maneira, a CPU teria que copiar todos os dados da fonte at o destino. Isto tipicamente mais lento do que copiar blocos de dados dentro da memria, j que o acesso a dispositivo de I/O atravs de barramentos perifricos mais lento que a RAM. Durante a cpia dos dados a CPU ficaria indisponvel para outras tarefas. Uma transferncia por DMA essencialmente copia um bloco de memria de um dispositivo para outro. A CPU inicia a transferncia, mas no executa a transferncia. Para os chamados third party DMA, como utilizado normalmente nos barramentos ISA, a transferncia realizada pelos controladores DMA que so tipicamente parte do chipset da placa me. Projetos mais avanados de barramento, como o PCI, tipicamente utilizam bus-mastering DMA, onde o dispositivo toma o controle do barramento e realiza a transferncia de forma independente. Um uso tpico do DMA ocorre na cpia de blocos de memria da RAM do sistema para um buffer de dispositivo. Estas operaes no bloqueiam o processador que fica livre para realizar outras tarefas. Transferncias DMA so essenciais para sistemas embarcados de alto desempenho. Tambm fundamental na implementao de drivers de perifricos, roteamento de pacotes de rede, execuo de udio e vdeo por streaming Existem 8 portas de DMA e, como acontece com os

pedidos de interrupo, dois dispositivos no podem compartilhar o mesmo canal DMA, caso contrrio haver um conflito. Os 8 canais DMA so numerados de 0 a 7, sendo nos canais de 0 a 3 a transferncia de dados feita a 8 bits e nos demais a 16 bits. O uso de palavras binrias de 8 bits pelos primeiros 4 canais de DMA visa manter compatibilidade com perifricos mais antigos. Justamente por serem muito lentos, os canais de DMA so utilizados apenas por perifricos lentos, como drives de disquete, placas de som e portas paralelas padro ECP. Perifricos mais rpidos, como discos rgidos, utilizam o Bus Mastering, uma espcie de DMA melhorado. O Canal 2 de DMA nativamente usado pela controladora de disquetes. Uma placa de som geralmente precisa de dois canais de DMA, um de 8 e outro de 16 bits, usando geralmente o DMA 1 e 5. O DMA 4 reservado placa me. Ficamos ento com os canais 3, 6 e 7 livres. Caso a porta paralela do micro seja configurada no Setup para operar em modo ECP, precisar tambm de um DMA, podemos ento configur-la para usar o canal 3,

Memria cache problema de coerncia


DMA pode guiar para memria cache problemas de coerncia. Imagine um CPU equipado com uma memria cache e uma memria externa que possam ser acessadas diretamente por dispositivos usando DMA. Quando o CPU acessa a localizao X na memria, o corrente valor est armazenado em outro local na cache. Subseqentemente operaes sero efetuadas com o valor X tais como disposio e atualizao, a memria cache copia X. Se a cache no esguichado memria antes do fim prxima vez que um dispositivo tenta acessar X, o dispositivo capta um stale valor de X. Da mesma forma, se a memria cache copiar de X , o valor corrente no o correto pois quando um dispositivo escreve um novo valor na memria, depois o CPU opera um valor incorreto de X. Esta edio pode ser endereada de duas maneiras no projeto de sistema: os sistemas posio-coerentes executam um mtodo no hardware por meio de que o dispositivo esterno escreve sinalizado ao controlador do esconderijo qual executa ento uma invalidao da posio-esconderijo (para o acesso direto da memria l) ou resplendores (para o acesso direto da memria escreve) as linhas da posio na pergunta. Os sistemas sem coerncia deixam este processo ao software, onde o Sistema Operacional deve ento se assegurar de que as linhas da posio estejam niveladas antes que alguma transferncia parta utilizando acesso direto da memria, e que estejam estes acessos se j decorridos sejam invalidados antes que uma escala da memria afetada por transferncia durante acesso direto da memria comprometida. O Sistema Operacional deve certificar-se de que a escala da memria no seja comprometida por nenhuma das linhas correntes. A ltima aproximao introduz algumas despesas gerais operao do acesso direto da memria, porque a maioria do hardware exige que um lao invalide individualmente cada linha da posio-esconderijo. Os hbridos igualmente existem, onde a posio-esconderijo L2 secundrio coerente quando o posioesconderijo L1 (tipicamente na CPU) for controlado pelo software.

Você também pode gostar