Há muitos pontos bons levantados nas outras respostas, mas um fator parece estar faltando: endereço de decodificação de latência.
O seguinte é uma grande simplificação de como funciona a decodificação de endereços de memória, mas dá uma boa idéia do motivo pelo qual os grandes chips DRAM são geralmente muito lentos.
Quando o processador precisa acessar a memória, ele envia um comando ao chip de memória para selecionar a palavra específica que deseja usar. Este comando é chamado de Seleção de endereço da coluna (por enquanto, ignoraremos endereços de linha). O chip de memória agora tem que ativar a coluna solicitada, o que faz enviando o endereço por uma cascata de portas lógicas para fazer uma única gravação que se conecta a todas as células na coluna. Dependendo de como ele é implementado, haverá uma certa quantidade de atraso para cada bit de endereço até que o resultado saia do outro lado. Isso é chamado de latência CAS da memória. Como esses bits devem ser examinados sequencialmente, esse processo demora muito mais do que um ciclo de processador (que geralmente tem apenas alguns transistores em seqüência para aguardar). Ele também demora muito mais do que um ciclo de barramento (que geralmente é algumas vezes mais lento que um ciclo de processador). Um comando CAS em um chip de memória típico provavelmente ocupa a ordem de 5 ns (IIRC - já faz um tempo desde que eu observei as temporizações), que é mais do que uma ordem de grandeza mais lenta que um ciclo de processador.
Felizmente, dividimos os endereços em três partes (coluna, linha e banco), o que permite que cada parte seja menor e processe essas partes simultaneamente, caso contrário, a latência seria ainda maior.
O cache do processador, no entanto, não possui esse problema. Não só é muito menor, então a tradução de endereços é um trabalho mais fácil, ele realmente não precisa traduzir mais do que um pequeno fragmento do endereço (em algumas variantes, nada disso) porque é associativo. Isso significa que, ao lado de cada linha de memória em cache, existem células de memória extras que armazenam parte (ou todas) do endereço. Obviamente, isso torna o cache ainda mais caro, mas significa que todas as células podem ser consultadas para ver se possuem a linha de memória específica desejada simultaneamente e, em seguida, a única (esperançosamente) que possui os dados corretos será despejada. em um barramento que conecta toda a memória ao núcleo principal do processador. Isso acontece em menos de um ciclo, porque é muito mais simples.