Hier geht ja alles durcheinander!
Timdaroxxa schrieb:
hab hier gerade in meinem Vorlesungskript zur Programmierung gelesen, dass man Speicher, bei dem auf jede Speicherzelle unter gleichem Zeitaufwand unabhängig von ihrer Lokalisierung zugegriffen werden kann, als "random-access-memory" bezeichnet.
Ja, so ist es und daher die Abkürzung RAM.
Timdaroxxa schrieb:
Kann man sogesehen sagen, dass eine SSD auch "RAM" ist?
Nein. Außerdem müsste man wenn, dann nicht die SSD sondern ehr das NAND Flash darin betrachten, wobei die Antwort immer noch Nein ist.
Penislebra schrieb:
Eine SSD ist ein statischer Speicher, d.h. die in ihr gespeicherten Daten bleiben erhalten, auch wenn man Sie vom Versorgungsstrom trennt. RAm ist volatil/flüchtig, nach dem die Versorgungsspannung erlischt geht der Inhalt des RAM verloren. (Dynamischer Speicher)
Kraut und Rüben! Es gibt statisches und dynamisches RAM, aber beide sind flüchtig. Der Unterschied ist, dass das dynamische RAM auch bei anliegender Spannung seinen Inhalt verliert und daher regelmäßig aufgefrischt (Refresh) werden muss. Beim statischen RAM bleibt der Inhalt auch ohne refresh so lange erhalten, wie die Versorgungsspannung anliegt. Ohne Versorgungsspannung verlieren beiden den Inhalt, sind also flüchtig.
Bei Flash bleibst der Inhalt auch ohne eine Spannungsversorgung erhalten bis er explizit gelöscht wird. Flash ist also ein nicht flüchtiger Speicher und somit kann es kein dynamischer Speicher (also einer der einen Refresh bracht) sein, weshalb es die Unterscheidung von statisch und dynamisch auch nur bei flüchtigem Speicher gibt!
MyPVR schrieb:
Ich denke nicht:
- SSDs bestehen aus Flash-Speicher, der zwar einen Random-Acces-Read auf eine Speicherzelle, aber keinen "wahlfreien" Write erlaubt.
Das stimmt auch nicht, wie HisN schon geschrieben hat:
HisN schrieb:
Eine SSD besteht aus nichtflüchtigem, dafür aber langsamen, Speicher und wird im Gegensatz zum RAM blockweise angesprochen, während RAM zeilenweise adressiert wird und flüchtig ist.
Das stimmt aber auch nur zu Hälfte, denn auch das Lesen geht nicht wahlfei.
NAND-Flash wie es in SSD verbaut wird, unterscheidet sich ja genau darin vom
NOR-Flash, welches wirklich linear adressierbar ist.
Deshalb ist SSD!=RAM. Praktisch genügt aber heute RAM auch nicht mehr der Definition: "auf jede Speicherzelle unter gleichem Zeitaufwand unabhängig von ihrer Lokalisierung zugegriffen" seid es in den CPUs Caches gibt. Bei den heute üblichen bis zu 3 Cacheleveln ist die Zugriffszeit also schon mal stark davon abhängig, ob und wo die Daten der Adresse gecacht sind. Man kann aber auch argumentieren, dass innerhalb des gleiche Cache Levels der Zugriff auf alle Adressen wieder gleich schnell ist. Dann kann man aber auch sagen, dass man innerhalb eines Flashbausteins ja auch auf alle Pages gleich schnell zugreifen kann, nur eben nicht auf die Bytes einer Page, weil das eben nur seq. erfolgt und damit die Zeit davon abhängt, ob die Byte am Anfang oder Ende der Page steht.
Deshalb ist eine NAND Page letztlich wie ein Sektor einer HDD, von dem man auch nicht ein einzelnes Byte adressieren kann, auch wenn man weiß wo es steht. Außerdem kommen sowohl beim Magnetscheiben als auch bei NAND immer wieder mal Fehler vor. Es wird also ab und an mal ein Bit falsch gelesen und daher verwenden beide eine Fehlerkorrektor (ECC). Das sind Prüfsummen über einen bestimmen Datenmenge die es erlauben den Fehler zu erkennen und in Grenzen auch zu korrigieren. Man muss aber den Datenblock und diese ECC-Daten lesen und verarbeiten, bevor man die einzelnen Bytes darauf verwerten kann. Das machen eben die Controller, entweder der HDD, der SSD oder bei Compute NAND direkt im NAND Chip.
Man sieht: Definitionen aus der Computer Steinzeit auf moderne Systeme 1:1 anwenden zu wollen, ist sehr problematisch.