Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Różnicowanie pamięci RAM i ROM: praktyczne implikacje w programowaniu

Ostatnio zmodyfikowano 2023-11-30 22:34
Autor Wiadomość
jamila2
Temat założony przez niniejszego użytkownika
Różnicowanie pamięci RAM i ROM: praktyczne implikacje w programowaniu
» 2023-11-29 11:29:13
Badam podstawowe pojęcia dotyczące pamięci RAM i ROM w systemach komputerowych i zastanawiam się nad ich praktycznymi implikacjami w programowaniu. Oto fragment kodu dla kontekstu:

# Python code involving memory operations
data = [1, 2, 3, 4, 5]
result = sum(data)
print("Sum of data:", result)

Chociaż kod jest prosty, interesuje mnie zrozumienie praktycznych różnic między pamięcią RAM i ROM oraz ich wpływu na operacje takie jak ta w tym kodzie. Czym różni się przechowywanie danych, szybkość dostępu i zmienność w pamięci RAM od nieulotnej natury pamięci ROM i jak te rozróżnienia wpływają na decyzje programowe? Przeglądając kilka witryn, takich jak Scaler[1], zastanawiam się również, czy są jakieś szczególne sytuacje, w których użycie pamięci RAM lub ROM staje się niezbędne dla uzyskania najlepszej możliwej szybkości i niezawodności kodu.


[1]Scaler: https://www.scaler.com/topics/difference-between-ram-and-rom/
P-180511
pekfos
» 2023-11-29 17:01:09
Ale bzdury są na tym Scalerze. Co ma python do pamięci ROM? Na zwykłym komputerze nie masz kontaktu z pamięcią ROM (strony read-only w RAM się nie liczą), więc dam lepszy kontekst: mikrokontroler z 2MB flash jako ROM i 512kB RAM. Flash jest tu wielokrotnego zapisu, ale przez programator - procesor ma dostęp tylko do odczytu. Czas dostępu do flash 100x większy niż do RAM. Wiedząc to:
  • Trzymasz program we flashu (bo innej opcji nie ma)
  • Trzymasz zmienne w pamięci RAM (bo innej opcji nie ma). Jeśli są zainicjalizowane to w ten czy inny sposób są też na ROM.
  • Kod uruchamia się prosto z flash (nie licząc cache procesora), co ma wpływ na wydajność. To samo w przypadku stałych. Krytyczne wydajnościowo procedury i stałe możesz skopiować do RAM i uruchomić stamtąd, o ile procesor na to pozwala. To w zasadzie jedyna decyzja jaka przychodzi mi do głowy, w innych przypadkach możesz zrobić coś tylko w jednej albo drugiej pamięci, więc nie ma o czym decydować.
P-180512
DejaVu
» 2023-11-30 14:12:13
Czas dostępu do flash 100x większy niż do RAM.
Wydaje mi się, że chciałeś napisać, że RAM jest 100 x szybszy niż flash, a nie na odwrót?
P-180513
pekfos
» 2023-11-30 16:08:29
A nie napisałem tak?
P-180514
jankowalski25
» 2023-11-30 21:50:03
Język naturalny bywa kapryśny i niejednoznaczny. Czy "większy" czas dostępu oznacza, że jest on "dłuższy", czyli "wolniejszy"? Czy raczej, że jest "lepszy", bo daje "większe" możliwości?

Przykład: czas dostępu do X wynosi jedną minutę. Czas dostępu do Y jest 60x większy. Wynosi zatem jedną godzinę, czy może jedną sekundę? Czy to jest czas taki, jaki podajesz do "sleep(time)", czy może raczej coś a'la "frequency", czyli bardziej na zasadzie odwrotności czasu, czyli częstotliwości (liczonej w Hz jako 1/s albo podobnie)?
P-180515
pekfos
» 2023-11-30 22:34:52
Co wy wymyślacie? Czas jest wielkością fizyczną. W jakim kontekście "100 razy większy" miałoby znaczyć że jest mniejszy? Jakie miałbyś bardziej jednoznaczne słowo na to że wartość liczbowa tej wielkości fizycznej jest... większa?
P-180516
« 1 »
  Strona 1 z 1