|
Authored by: PolR on Monday, July 23 2012 @ 05:30 PM EDT |
Plenty or architectures have separate data buses and program buses.
The two are
treated differently.
Do you refer to the modified
Harvard architecture? In these systems there is a single main memory where
both programs and data reside in a single address space. There is no separation
of program memory and data memory in main memory.
What may confuse you is
that there are separate buses between the CPU and separate cache memories which
are used for instructions and data. But cache memory only contains transient
copies of small extracts of main memory contents to help improve performance.
Cache memory must be synchronized with main memory at all time. There is a
single bus between the cache memories and the main memory. From a programmer
perspective cache memory is transparent. Everything works as if every
instruction and data comes from main memory.
Besides there are programs
which are not made of instructions executable by the CPU. Bytecode is a good
example. This kind of programs will always end up in the data cache and never in
the program cache.
[ Reply to This | Parent | # ]
|
|
Authored by: Anonymous on Monday, July 23 2012 @ 06:15 PM EDT |
So, I write a debugger. It is a "program" by your proposed definition.
It opens a data file ("c:command.com", say) which happens to contain
machine instructions. It inspects each instruction and emulates it.
The result of "executing" this "program" on this
"data" is indistinguishable (except for performance) from the result
of "executing" the "program" command.com. And the
"program" command.com was NEVER in "program" memory!
Just because an engineer has to make engineering distinctions in the HARDWARE
about what to put where in
ROM/RAM/Flash/Hard-disk/floppy-disk/CD/external-unspecified-device, doesn't mean
there's any logical distinction that can be made between the kinds of data.
You're saying, 1" long flathead screws can be considered different in
patent law than 2" long flathead screws, just because some carpenter put
them in different boxes for his own convenience.
You can patent your device for representing information in a particular kind of
material, by divulging how that information can be stored and retrieved. But
once you've patented that, it can't matter any more what kind of information you
store or retrieve. It's all just information, and the first such device you made
had the capability of storing any possible pattern of bits (up to size limits).
It is therefore prior art against ANY possible machine that stores any of those
possible patterns--because given the first patent, it's trivial to copy any of
those bit patterns into that memory.[ Reply to This | Parent | # ]
|
|
Authored by: Imaginos1892 on Wednesday, July 25 2012 @ 12:45 AM EDT |
Yeah, the Intel 8031 is one of 'em. I designed a board with an 8031; it had an
EPROM for programs, and a static RAM for data. Thing is, I also incorporated
a 16V8 PAL to mung the control signals, and included a provision whereby if
one of the I/O pins was driven LOW, it would switch the Program Fetch signal
to enable RAM Read. I could store data in the RAM, and then activate that I/O
pin and execute it as a program. So, did driving that pin LOW magically
transmogrify the data into a program? Or was it always just a bunch of bits?
Finally, I present to you: the self-extracting archive. Is it a program with
embedded data? Is it data with an embedded program? Or is the distinction
meaningless, and the act of asking the question indicative of a failure to
understand how computers work?
----------------------
Nobody expects the Spanish Inquisition!![ Reply to This | Parent | # ]
|
|
|
|
|