Secondary storage is usually not directly accessible by the CPU, and data needs to be transferred to primary storage to be available. Secondary storage includes hard drives and non-volatile random-access memory. Tertiary storage is used for archival and backup; very often it is copied to secondary storage before use. Software is sometimes distributed by tertiary media such as magnetic tape and CD-ROM.