Por que o acesso a endereços desalinhados incorre em 2 ou mais acessos?

As respostas normais para o porquê do alinhamento de dados é acessar com mais eficiência e simplificar o design da CPU.

Uma pergunta relevante e suas respostas sãoaqui. E outra fonte éaqui. Mas ambos não resolvem minha pergunta.

Suponha que uma CPU tenha uma granularidade de acesso de 4 bytes. Isso significa que a CPU lê 4 bytes de cada vez. O material que listei acima diz que, se eu acessar dados desalinhados, como endereço 0x1, a CPU precisará fazer 2 acessos (um dos endereços 0x0, 0x1, 0x2 e 0x3, um dos endereços 0x4, 0x5, 0x6 e 0x7) e combine os resultados. Não vejo o porquê. Por que a CPU não consegue ler dados de 0x1, 0x2, 0x3, 0x4 quando emito acessando o endereço 0x1. Não prejudicará o desempenho e incorrerá em muita complexidade nos circuitos.

Agradeço antecipadamente!

questionAnswers(4)

yourAnswerToTheQuestion