This course focusses on the main challenges for the design of modern semiconductor storage systems under the aspect of rapidly growing data storage requirements. Current, volatile and non-volatile memory types will be covered from the fundamental semiconductor technology level up to higher levels of system-level abstraction, with a focus on reliability and protection of stored data. Furthermore, Processing-in-Memory Architectures (PIM) based on conventional and 3D-stacked memories are analyzed, taking into account aspects such as low latency and energy consumption.