Der Arbeitsspeicher oder Hauptspeicher (engl.: core, main memory, main store, primary memory) ist die Bezeichnung für den Speicher, der die gerade auszuführenden Programme oder Programmteile und die dabei benötigten Daten enthält. Der Hauptspeicher ist eine Komponente der Zentraleinheit. Da der Prozessor unmittelbar auf den Hauptspeicher zugreift, beeinflussen dessen Leistungsfähigkeit und Größe in wesentlichem Maße die Leistungsfähigkeit der gesamten Rechenanlage.
Arbeitsspeicher wird charakterisiert durch die Zugriffsgeschwindigkeit und (damit verbunden) die Datenübertragungsrate sowie die Größe.
Der Arbeitsspeicher des Computers ist ein durch Adressen (in Tabellenform) strukturierter Bereich, der Binärwörter fester Größe aufnehmen kann. Durch die binäre Adressierung bedingt hat Arbeitsspeicher praktisch immer eine 'binäre' (auf Potenzen von 2 basierende) Größe, da andernfalls Bereiche ungenutzt blieben.
Der Arbeitsspeicher moderner Computer ist flüchtig, d. h. dass alle Daten nach dem Abschalten der Energieversorgung verloren gehen – der Hauptgrund dafür liegt in der Technologie der DRAMs. Verfügbare Alternativen wie etwa MRAM sind allerdings für die Verwendung als Arbeitsspeicher noch zu langsam.
Die häufigste Bauform für den Einsatz in Computern ist das Speichermodul. Es ist zwischen verschiedenen RAM-Typen zu unterscheiden. Waren in den 1980ern noch übliche Bauweisen Speicher in Form von ZIP-, SIPP- oder DIP-Modulen, so wurden in den 1990ern vorwiegend SIMMs mit FPM- oder EDO-RAM genutzt. Heute kommen in Computern in erster Linie DIMMs mit z. B. SD-, DDR-SD-, DDR2-SD-, DDR3-SD oder DDR4-SDRAMs zum Einsatz.
Zugriffe auf den Arbeitsspeicher durch den Hauptprozessor werden zumeist über ein oder mehrere Pufferspeicher oder Cache-RAMs (kurz „Cache“) optimiert. Im Cache hält und benutzt der Rechner die am häufigsten angesprochenen Speicherbereiche, stellvertretend für die originären Hauptspeicherbereiche. Der Cache ist im Verhältnis zu anderen Speichern sehr schnell, da er möglichst direkt am Prozessor angebunden ist (bzw. sich in modernen Prozessoren direkt auf dem Die befindet). Allerdings ist er in der Regel nur wenige Megabyte groß.
Bei geringem Speicherbedarf können Programme oder Teile davon fast ausschließlich im Cache laufen, ohne dass der Hauptspeicher angesprochen werden muss.
Der Cache ist als Assoziativspeicher ausgeführt, kann also entscheiden, ob die Daten einer Adresse schon im Cache gespeichert sind oder noch vom Arbeitsspeicher geholt werden müssen. Dann wird ein anderer Teil des Caches aufgegeben. Der Cache wird dabei stets mit mehreren aufeinander folgenden Worten gefüllt, beispielsweise stets mit mindestens 256 Bit (so genannter Burst-Modus), da es sehr wahrscheinlich ist, dass in Kürze auch Daten vor oder hinter den gerade benötigten gelesen werden sollen.