The Harvard architecture is a computer architecture with separate storage and signal pathways for instructions and data. It contrasts with the von Neumann architecture, where program instructions and data share the same memory and pathways. The term originated from the Harvard Mark I relay-based computer, which stored instructions on punched tape (24 bits wide) and data in electro-mechanical counters. These early machines had data storage entirely contained within the central processing unit, and provided no access to the instruction storage as data. Programs needed to be loaded by an operator; the processor could not initialize itself. Modern processors appear to the user to be von Neumann machines, with the program code stored in the same main memory as the data. For performance reasons, internally and largely invisible to the user, most designs have separate processor caches for the instructions and data, with separate pathways into the processor for each. This is one form of what is known as the modified Harvard architecture. Memory details In a Harvard architecture, there is no need to make the two memories share characteristics
La arquitectura de Harvard es una arquitectura informática con almacenamiento separado y caminos de señales para instrucciones y datos. Se contrasta con la arquitectura de von Neumann, donde las instrucciones del programa y los datos comparten la misma memoria y caminos. El término proviene de la computadora basada en relay de Harvard Mark I, que almacenaba instrucciones en cinta punzada (24 bits de ancho) y datos en contadores electro-mecánicos. Estas primeras máquinas tenían almacenamiento de datos completamente contenidos dentro de la unidad central de procesamiento, y no proporcionaban acceso al almacenamiento de instrucciones como datos. Los programas necesitaban ser cargados por un operador; el procesador no podía iniciarse a sí mismo. Los procesadores modernos parecen al usuario ser máquinas de von Neumann, con el código del programa almacenado en la misma memoria principal que los datos. Por razones de rendimiento, internamente y en gran medida invisibles al usuario, la mayoría de los diseños tienen cachés separados para las instrucciones y los datos, con caminos separados al proces