Write Case: Se você tiver algo para gravar na memória e tiver um bom controlador de memória, ignorando todo o cache, tudo o que você precisa fazer é enviar uma transação para o controlador de memória com os dados quer escrito. Por causa das regras de ordenação de memória, assim que a transação deixa o núcleo, você pode passar para a próxima instrução porque pode assumir que o hardware está cuidando da gravação na memória. Isso significa que uma gravação praticamente não leva tempo.
Caso de leitura: Por outro lado, uma leitura é uma operação totalmente diferente e é muito assistida pelo armazenamento em cache. Se você precisar ler os dados, não poderá continuar com o próximo passo do programa até ter os dados em mãos. Isso significa que você precisa verificar os caches primeiro e depois a memória para ver onde estão os dados. Dependendo de onde os dados estão, sua latência sofrerá de acordo. Em um sistema sem pré-busca, sem pipelining, você está apenas gravando ciclos centrais esperando que os dados voltem para que você possa passar para a próxima etapa. O cache e a memória são ordens de magnitude mais lentas que a velocidade do núcleo / espaço de registro. É por isso que a leitura é muito mais lenta do que uma gravação.
Voltando à transação de gravação, o único problema com que você pode se deparar com velocidade é se você estiver fazendo leituras depois de uma transação de gravação para o mesmo endereço. Nesse caso, sua arquitetura precisa garantir que a sua leitura não atrapalhe sua gravação. Se isso acontecer, você receberá os dados errados de volta. Se você tiver uma arquitetura realmente inteligente, como essa gravação está se propagando em direção à memória, se uma leitura para o mesmo endereço aparecer, o hardware pode retornar o caminho de dados antes que ele saia da memória. Mesmo nesse caso de leitura após gravação, não é a gravação que leva um tempo da perspectiva do núcleo, é a leitura.
De uma perspectiva de RAM: Mesmo se não estamos falando de um núcleo e estamos falando apenas de RAM / controlador de memória, fazer uma gravação no MC resultará no armazenamento do MC em um buffer e enviando uma resposta dizendo que a transação está completa (mesmo que não seja). Usando buffers, não precisamos nos preocupar com as velocidades reais de gravação de DIMM / RAM, porque o MC cuidará disso. A única exceção a esse caso é quando você está fazendo grandes blocos de gravações e vai além dos recursos do buffer do MC. Nesse caso, você precisa começar a se preocupar com a velocidade de gravação da RAM. E é isso que o artigo vinculado está se referindo. Então você tem que começar a se preocupar com as limitações físicas de ler vs escrever velocidades que a resposta de David toca. Geralmente isso é uma coisa estúpida para um núcleo fazer de qualquer maneira; é por isso que o DMA foi inventado. Mas isso é outro assunto.