W jaki sposób pamięć RAM może uzyskać dostęp do dowolnego miejsca w pamięci przy prędkości O (1)
Uczy się nas, że abstrakcja pamięci RAM to długa tablica bajtów. A dla procesora zajmuje tyle samo czasu, aby uzyskać dostęp do dowolnej jego części. Jakie jest urządzenie, które ma możliwość dostępu do dowolnego bajtu z 4 gigabajtów (na moim komputerze) w tym samym czasie? Ponieważ nie wydaje mi się to trywialnym zadaniem.
Pytałem kolegów i moich profesorów, ale nikt nie może wskazać, w jaki sposób to zadanie można osiągnąć za pomocą prostych bramek logicznych, a jeśli nie jest to tylko skomplikowana kombinacja bramek logicznych, to co to jest?
Domyślam się, że można uzyskać dostęp do dowolnej pamięci w prędkości O (log (n)), gdzie n będzie wielkością pamięci. Ponieważ każda brama dzieliłaby pamięć na dwie części i wysyłałaby instrukcje dostępu do pamięci do następnej podzielonej pamięci w dwóch bramkach. Ale to wymaga ALOT wielu bramek. Nie mogę wymyślić innego wykształconego zgadywania, a nawet nie znam nazwy urządzenia, które powinienem znaleźć w Google.
Proszę, pomóż mojej udręczonej ciekawości i dziękuję z góry.
edit <Tego się nauczyłem!
cytat z twojej „pamięć RAM może wysłać wartość z komórki zaadresowanej X do niektórych pinów wyjściowych”, tutaj wszyscy pomijają (znowu) to, co dla mnie nie jest trywialne. Sposób, w jaki to widzę, Aby zbudować bramę, która z 64 pinów decyduje, który bajt z 2 ^ 64 uzyskać, każdy pin musi podzielić ogólny możliwy zakres pamięci na dwa. Jeśli bit o indeksie 0 wynosi 0 ->, adres jest w pamięci 0-2 ^ 64/2, w innym przypadku adres jest w pamięci 2 ^ 64 / 2-2 ^ 64. I tak dalej, jednak liczba bramek (nazwijmy je), przez które pobierana jest pamięć, wyniesie 64 (stała). Jednak potrzebna ilość bramek to N, gdzie N jest liczbą bajtów pamięci.
Tylko dlatego, że jest 64 pinów, nie oznacza to, że nadal możesz dekodować go do pojedynczego pobrania z zakresu 2 ^ 64. Czy pamięć 4 gigabajtów ma 4 gigabajtowe bramki w kontroli pamięci ??
teraz można to poprawić, ponieważ gdy czytam z wściekłością coraz więcej o tym, jak ta pamięć jest architekturowana, jeśli umieścisz pamięć w macierzy z wierszami sqrt (N) i sqrt (N), ilość bramek, które pobiera pamięć będzie musiał przejść przez O (log (sqrt (N) * 2), a ilość bramek, które będą wymagane, będzie wynosić 2 * sqrt (N), co jest o wiele lepsze i myślę, że jest to prawdopodobnie tajemnica handlowa.
/ edit <