Unlike general-purpose computing systems, multicore embedded systems are designed with a specific application in mind. The memory access patterns for the application can be used to customize the memory architecture of the device. This chapter presents a synopsis of memory types and architecture commonly used in multicore embedded systems. It examines the many trade-offs that can be considered when designing the memory architecture. It considers factors such as whether the memory should be shared or distributed among the multiple cores; will the cores benefit from memory cache and what should the cache configuration be; is there a cache coherency protocol used; should there be other memory types on the device such as scratch pad SRAMs and eDRAMs; does the device use a DMA for memory transfers, and other factors. It provides guidance to the embedded system designers to tailor the memory architecture to their needs.