~~~~Main
Home
Contact

~~~~Projects
vee
Computer Merit Badge
PatchLodge.com
Projects Summary

~~~~My Bookmarks
ACM@LSU CS Resources
Programming
Operating Systems
Computer Architecture
Databases

 

Mon Jan 3 11:22:12 CST 2011

memory

--

Memory  is  a  funny thing. The simple fact that a system has it,
gives it a certain amount of computational power.

Finite Automata have their memory encoded in a  "read  only"  and
static  way  through  the  transition function. Given the current
state and an input "symbol", the transition function defines  un-
ambigiously  what  state is to be the next current state. Non-de-
terminism can be introducted by offering more than one  state  on
one  symbol, but this doesn't offer any more computational power.
It only allows one to express the finite state machine in a  more
compact way.

The  mere  presence  of memory offers no promise of computational
power. What offers the power is how the machine may store and re-
treive information. Pushdown Automata are non-determinstic finite
autmata with the addition of a single stack of memory. Memory op-
erations consist of "push" and "pop". There is no way to randomly
access the information - some information must  be  consumed  and
lost  before other information is accessed and able to be consid-
ered. This limits the PDA to a specific  class  of  computational
problems.

Full  computational power is realized through the Turing Machine.
A TM is a PDA with at least two stacks. Using both stacks, a  PDA
is  able to emulate the reading and writing of a formally defined
TM, which consists of a read head and a memory  tape.  The  point
behind  this formulation is that the machine is able to randomaly
access information with having to unrecoverably destroy  or  con-
sume  other  pieces of information. It allows information to per-
sist throughout the computation. Universal  TMs  are  "universal"
because  they  can emulate any conceivable Turning Machine - even
themselves. This allows general purpose machines to be built that
can accept a program to run - as long as it's "valid". This valid
program can itself be a special purpose TM or  another  universal
TM  -  the  encoding of the TM for input into the Universal TM is
what is commonly called a "program". People  who  write  programs
are  also  writing valid TMs. UTMs that run on UTMs could be con-
sidered system emulators or programming language interpreters.

It doesn't stop here. "Real" computers (whether digital, mechani-
cal,  analog, etc) are not trully Universal Turing Machines. UTMs
included an infinite amount of memory. Real computers  do  not  -
therefore,  real  computers are actually Linear Bounded Automata.
LBAs are TMs with a finite amount of memory.

So far there are several ways to affect memory, and therefore the
computational power of the "model"

* the fact that accessible memory does infact exists

* the methods in which this accessible memory is accessed

A single stack that allows push/pop requires data to be destroyed
while accessing data deeper in the stack. Adding a  second  stack
to  hold  that  data which would otherwise have been destroyed is
enough to emulate the random  access  memory  capabilities  of  a
Turning Machine.

So,  in reality, the power of a computation system depends on how
long data can persist in a *useful* form.

Modern computer systems store data in explicitly ways.  They  can
store  a  lot  of  memory, it's done so in an explict form. Human
memory can store a lot of information, too - but at many  levels,
this information is coelesced into many layers of implicit infor-
mation that may actually form new data  and  information  through
insights  gained  by "offline" processing.  A human mind that may
seem amazing at remembering exact, explicit  information  is  not
really that amazing if it can't use this recall ability to deter-
mine insights that are deeper than those  "normal"  human  brains
can  determine  through "average" recall ability. What determines
the intelligence of a person is  their  ability  to  connect  the
dots.  What  causes  others  to call a person a "genius" is one's
ability to determine insights that are non-obvious to the  normal
ability  to connect the dot and learn insightful facts based on a
body of "more" explicit information.

We are dealing with two issues here, so let's  get  back  to  the
first.  The  "shelf  life"  of data in a computational system for
modern computers is indefinite, but  they  don't  typically  give
rise  to more insights.  The "shelf life" of information in a av-
erage human's brain is not that  long  (e.g.,  it  degrades  over
time)  -  however, the human brain is very good at extracting in-
sights or intuition from this information (and experiences).  The
intuition  and  insights become internalized and perist; the data
that causes these original insights might be lost forever, howev-
er. A human brain that has amazing recall of exacting information
is limited in its usefulness - however if this long term  ability
to  recall  exact  information  is coupled with an abover average
ability to connect the dots and build intuition -  a  great  many
insights and discoveries could take place.

Does  this abilit of the human brain make it computationally more
powerful than a UTM? No. However, much like there are theoritical
ways  around the limitations placed on the ability of anything to
travel faster than the speed of light  (e.g.,  worm  holes,  warp
drives,  etc);  there are similarly theoretical ways for one uni-
versal computer to be more powerful than another in  some  sense.
It comes down to memory and how it is handled. All things consid-
ered equal, a computational system that allows one to  explicitly
store and retrieve "first level" (explicit) data without destroy-
ing innocent data in its wake (i.e., like the single  stack  PDA)
is  just  as  computationally  powerful as one that does the same
(thoguht one may be faster than the other). However, if one  sys-
tem  has  the ability to analyze the data for insightful informa-
tion that might make it easier to accomplish the purpose  of  the
currently  running program or other programs, then this resulting
improvement in efficience would result in on machine being better
at  another at a particular task - even if, perhaps, the original
explicity data degrades or disappears over time. If the  insights
determined  from  this  original  explicit data is good enough to
take its place, even if it's is just to provide  some  heuristics
or  hints, then while the explict data is technically "destroyed"
it still lives on and benefits the system in a much more implicit
higher-level way.

The  human  mind conceived of this hierarchy of computational ma-
chinery to explore the power of computation. The  lesson  learned
is  that,  it's  all about the memory. It's whether memory can be
stored (as in a stack or tape), how this memory can  be  accessed
(push/pop  or  random  access  even if emulated), how long memory
will persist (forever or fading over  time),  and  if  memory  is
coellesced through insight.  Any system that destroys data either
through access methods (i.e., via push/pop) or through loss  over
time  will be less powerful than systems that allow random access
memory and persistence. "Offline" processing provides a means  to
not  only  mitigate  the effect of data loss over time (as in the
human memory), but also to make the system seemingly more  compu-
tationally  powerful  by providing a means to encode the insights
of past data into improving the functioning of the system itself.
For  it  is the conversion of explicit data to implicit knowledge
encoded into the functionality of  the  system  (programs,  algo-
rithms, etc) that ultimately allow for more computationally "pow-
erful" entities to emerge. And technically it's no more powerful,
just  infinitely  more  efficient  since the need to perform "in-
tractable" computations is replaced  through  higher  level  data
"insights" and heuristics.

Unitl next time...


--
Powered by vee
Copyright © 2006-2011
FreeBSD
Perl
Qore