Como a RAM é capaz de acessar qualquer lugar na memória na velocidade O (1)
Somos ensinados que a abstração da memória RAM é uma longa matriz de bytes. E isso para a CPU leva a mesma quantidade de tempo para acessar qualquer parte dela. Qual é o dispositivo capaz de acessar qualquer byte dos 4 gigabytes (no meu computador) ao mesmo tempo? Como isso não parece uma tarefa trivial para mim.
Perguntei a colegas e professores, mas ninguém pode identificar como essa tarefa pode ser alcançada com simples portas lógicas, e se não é apenas uma combinação complicada de portas lógicas, então o que é?
Meu palpite pessoal é que você poderia acessar qualquer memória na velocidade O (log (n)), onde n seria o tamanho da memória. Como cada porta dividiria a memória em duas e enviaria as instruções de acesso à memória para a próxima dividir a memória em duas portas. Mas isso requer MUITOS portões. Não consigo pensar em nenhum outro palpite e nem sei o nome do dispositivo que devo procurar no Google.
Por favor, ajude minha angústia curiosidade e agradeço antecipadamente.
editar <Isto é o que eu aprendi!
citação do seu "a RAM pode enviar o valor da célula endereçada X para alguns pinos de saída", aqui é onde todos pulam (novamente) o que não é trivial para mim. Do jeito que eu vejo, para criar um gate que de 64 pinos decida qual byte de 2 ^ 64 obter, cada pin precisa dividir o intervalo geral possível de memória em dois. Se o bit no índice 0 for 0 ->, o endereço estará na memória 0-2 ^ 64/2, caso contrário, o endereço estará na memória 2 ^ 64 / 2-2 ^ 64. E assim por diante, no entanto, a quantidade de portas (vamos chamá-las) pelas quais a busca de memória passará será 64, (uma constante). No entanto, a quantidade de portas necessária é N, onde N é o número de bytes de memória existentes.
Só porque há 64 pinos, isso não significa que você ainda pode decodificá-lo em uma única busca a partir de um intervalo de 2 ^ 64. A memória de 4 gigabytes vem com portas de 4 gigabytes no controle de memória ???
agora isso pode ser melhorado, porque conforme eu leio cada vez mais furiosamente sobre como essa memória é arquitetada, se você colocar a memória em uma matriz com linhas sqrt (N) e colunas sqrt (N), a quantidade de portas que uma memória é buscada precisará passar por O (log (sqrt (N) * 2) e a quantidade de portas necessárias será de 2 * sqrt (N), o que é muito melhor, e acho que provavelmente é um segredo comercial.
/ edit <