4.7 – Gerenciamento de Memória Cache

 

 

4.7.1 – Arquitetura de Memória Cache do Linux (Linux Flush Architecture)

 

O TBL é mais uma entidade virtual do que um modelo estrito quanto a Linux flush architecture e concernida. As característica única são isto mantem em ordem o mapeamento do processo kernel de algum modo, queira softivare ou hardware.

Código específico de arquitetura pode precisar ser modificado quando o kernel tiver mudado um processo/mapeamento kernel. O shell (um lugar seguro p/ guardar dinheiro ou coisas) esta entidade é essencialmente “memory state”/”estado da memoria” como o flush architecture o vê. Em geral isto tem as propiedades seguintes:

• Isto sempre vai segurar cópias de dados que podem ser visto como atualizado pelo processo local.
• O funcionamento próprio pode ser relacionado ao TLB e o mapeamento do processo/Kernel page de algum jeito, isto é
para dizer que eles podem depender um do outro.
• Isto pode, numa configuração cached virtual, causar problemas “aliasing” se uma página fisica é mapeada no mesmo
tempo da que duas páginas virtuais e por causa dos bits de um endereço usado para catalogar a linha cache, a mesma
porção do dedo pode acabar residindo no cache duas vezes, deixando resultados incompativéis.
• Projetos e DMA podem ou não ter capacidade para ver a cópia de um dedo mais atualizado que resida no cache do
processo local.
• Corretamente, é suposto que a coerência num ambiente multiprocessador é mantida pelo subsistema cache/memória.
Isto que dizer que, quando um processador requerer um dado no memory bus de maneira e um outro processador tem
uma cópia mais atualizada, de qualquer jeito o requesitor vai obter uma cópia atualizada que pertença um outro
processador.

(NOTA: SMP arquiteturas sem hardware cache conferece mechanísms são realmente possíveis, o arquitetura current flush não sustenta isto corretamente, se em algum ponto o Linux apontar em algum sistema onda isto é uma questão debatida, eu vou adicionar os ganchos necessários mas não vai ser bonito)

Sobre o que o Fluch Architecture se importa: sempre, a visão da administração de memória hardware de um conjunto de mapeamento do processo Kernel serão consistentes com aqueles do Kernel page tables.

Se o memory managemat kernel code faz uma modificação para a user process page modificando o dado via kernel space alias da página física subjacente, o fio controle de usuário vai ser o dado correto antes que é permitido continuar a execução, indiferente da cache architecture e/ou a semântica.

Em geral, quando o estado do espaço de endereço é mudado somente (em código genérico da administração da memória kernelnome de generic kernel management cade) o fluch architecture hook apropriado vai ser chamado descrevendo que o estado muda totalmente.

Sobre o que o flush architecture não importa: que o mapeamento do DMA “DMA/driver coerência. Isto inclui DMA mappings (no sentido do MMU mappings) e o cache/DMA dado consistência.

Estes tipos des assuntos não devem esta no flush architecture, veja embaixo como eles devem ser manuseados.

Split Instrution/data cache consistência com respeitro as modificações feito para processo de instrução de espaço realizado pelo código de sinal de despacho signal dispatch cade.

De novo, veja embaixo como isto devem ser manuseado de um outro jeito. As interfaces para a flushachitesture e como executá-los em geral todas as rotinas descritos embaixo vão ser chamados na sequência seguinte: Fluch-cache-foo(…); modify-address-space (); clush – tlb-foo (…)

a lógica aqui é: Isto pode ser ilegal num arquitetura dada por um pedaço de dado cache para ensitir quando o mapeamento por aquele dado não existe, portanto o flush deve ocorrer antes que a mudança é feita.

Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 13 14

Páginas ( 8 de 14 ): « Previous1234567 8 91011121314Next »