|
|
Invisible wrote:
> I've often wondered how a Harvard architecture machine would actually
> work. How do you get stuff into the code address space?
http://lewisshepherd.files.wordpress.com/2010/08/ibm-402-plugboard.jpg
And that picture tells you why von Neumann's invention was hailed as an
incredible time-saver. That's probably a program approximately as complex
as "add up the difference of these two columns of numbers." E.g., for
balancing an accounting ledger, as in show the difference between the sum of
the credits and the sum of the debits.
Alternately, you have a ROM in one half and a RAM in the other half of the
address space, and you don't let the program counter into the second half of
the address space.
Or actual hardware nowadays - do any of *your* programs write the the microcode?
Machines with changable microcode normally loaded the microcode off a
special device (e.g., a floppy disk) when they booted, and the actual
running program couldn't do so.
> (I presume that the Harvard architecture isn't just theoretical, and
> that people have actually built hardware this way...)
http://en.wikipedia.org/wiki/Unit_record_equipment
http://bit-player.org/2006/05
Turing machines are harvard architecture abstractions.
Plus, as I said, you're using a harvard architecture machine right now,
except the code part of the address space is in silicon wiring rather than
1/0 bits. Microcode (including what the 6502 had, for example) is harvard
architecture too. You've never seen of a hacker finding a hole that lets
them change the meaning of assembly language instructions.
>> The whole thing of DEP and base address randomization is a lame attempt
>> to enforce the Harvard architecture to a greater degree without having
>> to fix the unsafe languages.
>
> Backwards compatibility is evil.
Yes it is.
Note that while assembly language is not technically "unsafe", it most
definitely needs to be von neumann for any normal general purpose computer,
or you wouldn't be able to have any sort of JIT, compiler, demand paging,
etc. The only place you don't need von neumann architecture is where you
have a single-purpose device or a device where you're willing to change the
hardware to change the behavior.
--
Darren New, San Diego CA, USA (PST)
"How did he die?" "He got shot in the hand."
"That was fatal?"
"He was holding a live grenade at the time."
Post a reply to this message
|
|