The Harvard architecture stores instructions and data in separate physical memory units. It originated from the Harvard Mark I computer which stored instructions on punched tape and data in electromechanical counters. In the Harvard architecture, the instruction and data memories can differ in width, timing, technology and addressing structures. Modern CPUs often use a modified Harvard architecture, containing separate instruction and data caches to improve speed by allowing parallel memory access.