Buffer de gravação - Write buffer
Um buffer de gravação é um tipo de buffer de dados usado em certas arquiteturas de cache de CPU , como Intel x86 e AMD64. Em sistemas com vários núcleos, os buffers de gravação destroem a consistência sequencial . Algumas disciplinas de software, como a liberdade de corrida de dados do C11 , são suficientes para recuperar uma visão sequencialmente consistente da memória.
Em um cache de CPU, um buffer de gravação pode ser usado para conter os dados que estão sendo gravados do cache para a memória principal ou para o próximo cache na hierarquia de memória . Esta é uma variação do cache de write-through chamada write-through em buffer .
O uso de um buffer de gravação dessa maneira libera o cache para atender às solicitações de leitura enquanto a gravação está ocorrendo. É especialmente útil para memória principal muito lenta, pois as leituras subsequentes podem prosseguir sem esperar por uma longa latência da memória principal. Quando o buffer de gravação está cheio (ou seja, todas as entradas do buffer estão ocupadas), as gravações subsequentes ainda precisam esperar até que os slots sejam liberados. As leituras subsequentes podem ser fornecidas a partir do buffer de gravação. Para mitigar ainda mais essa paralisação, uma otimização chamada mesclagem do buffer de gravação pode ser implementada. A mesclagem do buffer de gravação combina gravações que têm endereços de destino consecutivos em uma entrada de buffer. Caso contrário, eles ocupariam entradas separadas, o que aumenta a chance de travamento do pipeline.
Um buffer de vítima é um tipo de buffer de gravação que armazena linhas sujas removidas em caches de write-back para que sejam gravadas de volta na memória principal. Além de reduzir a paralisação do pipeline por não esperar que as linhas sujas escrevam de volta como um buffer de gravação simples faz, um buffer de vítima também pode servir como um armazenamento de backup temporário quando acessos subsequentes de cache exibem localidade , solicitando as linhas removidas recentemente, que ainda estão na vítima amortecedor.
O buffer da loja foi inventado pela IBM durante o Projeto ACS entre 1964 e 1968, mas foi implementado pela primeira vez em produtos comerciais na década de 1990.
Notas
| Este artigo de computação é um esboço . Você pode ajudar a Wikipedia expandindo-a . |
- ^ Owens, Scott, Susmit Sarkar e Peter Sewell. "Um modelo de memória x86 melhor: x86-TSO." Provando Teorema em Lógicas de Ordem Superior. Springer Berlin Heidelberg, 2009. 391-407.
- ^ Oberhauser, Jonas. "Um Teorema de Redução Mais Simples para x86-TSO." Software verificado: teorias, ferramentas e experimentos. Springer International Publishing, 2015. 142-164
- ^ https://dl.acm.org/ft_gateway.cfm?id=1283945&type=pdf