How did Harvard Mark I separate data and instruction?

I have read the article in Wikipedia but I didn't understand how data and instruction was separated using a punched paper tape. It said

"The Mark I read its instructions from a 24 channel punched paper tape and executed the current instruction and then read in the next one. It had no conditional branch instruction. This meant that complex programs had to be physically long. A loop was accomplished by joining the end of the paper tape containing the program back to the beginning of the tape (literally creating a loop)."

then said

"This separation of data and instructions is known as the Harvard architecture"

I didn't understand this line, it reads instructions from the paper tape but where is the data?

  • Without any doubt, the question belongs to the "Cultures and historical practices" of the FAQ. So, its closing was totally unfair.
    – Gangnus
    Apr 8, 2013 at 6:53
  • 1
    I think this is a bit too technical for a 'cultural practice'. By-example, this question is mis-tagged as :architecture: because [here] that is a topic of buildings. This question can only be well-answered by an engineer. AS such, it should be asked on ElectricalEngineering.SE or Stackoverflow.SE. It is a valuable question. It's nice that Yannis answered it. Apr 15, 2013 at 17:54
  • Some of the answers to this StackOverflow question address this issue.
    – T.E.D.
    Apr 15, 2013 at 18:14
  • 1
    "Can only be well-answered by an engineer"?!? This is a proper historical question, which can be answered by a historian with the normal use of primary or secondary historical sources. Most other questions around here cannot be answered precisely, but this one has a chance - this is the only difference I see.
    – kubanczyk
    Apr 23, 2013 at 10:49
  • Can the question be migrated to a better place?
    – user904
    Jan 6, 2014 at 13:34

1 Answer 1


From your same link.

The Mark I read its instructions from a 24-channel punched paper tape. It executed the current instruction and then read in the next one. A separate tape could contain numbers for input, but the tape formats were not interchangeable. Instructions could not be executed from the storage registers.

A different tape is used for data.

Why is this?

In the Harvard architecture, code and the data the code operates on are physically separated. This prevents some catastrophic bugs and security exploits, because code can't be rewritten as data like it would be in a buffer overflow. The Harvard architecture is also more costly, because unused memory for code can't be used for extra data. Any memory that isn't used can't be used by the other section.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.