POV-Ray : Newsgroups : povray.off-topic : Computer Security : Re: Computer Security Server Time
3 Sep 2024 11:23:07 EDT (-0400)
  Re: Computer Security  
From: Darren New
Date: 17 Feb 2011 12:57:58
Message: <4d5d61a6@news.povray.org>
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

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.