quarta-feira, 2 de maio de 2012

Gestão de Memoria e DMA


A gestão da memória é um difícil compromisso entre os desempenhos (tempo de acesso) e a quantidade (espaço disponível). Deseja-se, com efeito, ter o máximo de memória disponível, mas deseja-se raramente que isto se faça em detrimento dos desempenhos. 

A gestão da memória deve desempenhar as seguintes funções:

  • permitir a partilha da memória (para um sistema multi-tarefas);
  • permitir atribuir blocos de memória às diferentes tarefas;
  • proteger os espaços memória utilizados (impedir, por exemplo, um utilizador de alterar uma tarefa executada por um outro utilizador);
  • optimizar a quantidade de memória disponível, nomeadamente por mecanismos de extensão da memória.




Gestão de memória é um complexo campo da ciência da computação e são constantemente desenvolvidas várias técnicas para torná-la mais eficiente a sua forma mais simples, está relacionada em duas tarefas essenciais:

Alocação: Quando o programa requisita um bloco de memória, o gerenciador o disponibiliza para a alocação;
Reciclagem: Quando um bloco de memória foi alocado, mas os dados não foram requisitados por um determinado número de ciclos ou não há nenhum tipo de referência a este bloco pelo programa, esse bloco é liberado e pode ser reutilizado para outra requisição.



DMA(Direct memory access)

O DMA permite que certos dispositivos de hardware num computador acedam a memória do sistema para leitura e escrita independentemente do CPU. Muitos sistemas utilizam DMA, incluindo controladores de disco, placas gráficas, de rede ou de som.O acesso direto da memória é utilizado igualmente para transferência de dados de núcleos em processadores multi-core, em especial nos sistema-em-microplaquetas do processador, onde seu elemento de processamento é equipado com uma memória local ,e o acesso direto da memória é usado para transferir dados entre a memória local e a memória principal. Os computadores que têm os canais de acesso direto a memória podem transferir dados aos dispositivos com muito menos perdas gerais de processamento do que computadores sem uma via de acesso direto à memória. Similarmente um elemento de processamento dentro de um processador multi-core pode transferir dados para e da sua memória local sem ocupar seu tempo de processamento e permitir a simultaneamente a transferência de dados. Sem acesso direto da memória, usando a modalidade programada de entrada/saída (E/S) para uma comunicação com os dispositivos periféricos, ou as instruções da troca no caso dos núcleos multi-core, o processador central é ocupado inteiramente para a leitura ou escrita da operação, e assim não se torna possível executar o outro afazer. Com acesso direto da memória, o processador central executa transferências, faz outras operações enquanto alguma transferência estiver em andamento, recebe uma interrupção do controlador de acesso direto da memória uma vez que a operação foi feita.

          


Bus mastering

Na informática, bus mastering é um recurso suportado por algumas arquitecturas de barramento, que permitem que um controlador - principalmente discos rígidos, unidades de CD-ROM e DVD-ROM, conectado a interface IDE ou SATA - se comunique directamente com outro dispositivo, ou seja, a memória. Quem controla essa operação não será o processador(o que além de melhorar o desempenho, não consumiria o CPU, que ficaria livre para fazer outras tarefas), e sim o chipset da placa mãe, ou seja, um conjunto de circuitos de apoio à placa mãe. As arquitecturas de barramentos modernas, incluindo PCI, suportam o bus mastering devido ao seu significante ganho de performance e actualmente quase todas as placa mães modernas suportam bus mastering.

Nenhum comentário:

Postar um comentário