🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.arch
Article #22895

Re: self-modifying code [(Re: TOP 10 (names in comp.sci)]

#22895
From: Andrea Chen
Date: Sun, 09 Aug 1998 00:00
106 lines
6323 bytes
Terje Mathisen wrote:
> 
> Andrea Chen wrote:
> >         Electronic associative memories are possible and I believe do exist in
> > certain caches.  Extending the size of the data held within and allowing
> > the programmer direct use of these mechanisms could allow a flexible
> > highlevel (call by name) system.
> 
> Yes, but if that api is only used once, then it is (almost by
> definition) not timecritical, if you use it many times, then you will
> still be better off to do a one-time lookup of the actual address and
> then patch that in, i.e. standard link/load behaviour for any os.
> 


	The issue I was addressing was self modifying code.  It may be true
that associative memory would have little value in this, but I do feel
that for some programming problems direct associative addressing does
allow real time links to code and flexibility in structure.  
	I also think it possible to build a machine with literally tens of
thousands of associative members in which this high level structure can
contain much of the problem. Like McCartneys original lisp design or
Turings model and a number of other little logics, associative
structures can (theoretically) solve all computable problems with a set
of 7 or 8 basic operators (though others are needed for practical
purposes).  I find the associative logics to be more practical in
actually solving problems than others.
	During the seventies there was a lot of talk about "high level"
machines and later non Von Neumann architectures.

 
> > > >> [...]
> > > >Perhaps most important, it's hard to make a good marriage
> > > >between on-the-fly compilation and any kind of portability
> > > >even between this and next year's CPU chip, let alone across
> > > >platforms.
> >
> >         Is portability the long term direction?  It seems to me an alternative
> > would be increasingly specialized architectures devoted to certain
> > problems.

> Sorry, no again: The really fast TPC test results all come from very
> well-balanced systems, speeding up just one part of it, like the
> compilation of SQL statements, will not result in significant
> improvements.


	People buy multiprocessors solely to run databases.  They don't do
graphics, they don't do much numerical calculation (and if so decimal is
more practical since it doesn't require 2 conversions and can be done
relatively quickly with tables.)  My belief is that computers will (in
the long run) evolve to increasingly resemble the human brain with many
specialized parts each assigned to various tasks.  There is already some
development along this line with graphic cards and for a lot of data
processing problems disk logic is more crucial than CPU.  There are many
places where a "well balanced" system isn't crucial.  In the work I've
done parallel pipelines which can do a floating point operation in a few
cycles are of little value.  We have this notion of a "general purpose"
computer, the problems for which it's optimized tend to be numeric.     
Incidently the example I gave had nothing to do with the "compilation"
of SQL statements (the last I checked it wasn't even a compiled
language.)  It had to do with the running of such statements.
It had to do with the processing.  If I could load a set (or a large
part of it) into the central processor this would be 1 memory operation
per member.  If the other set could then be compared it would take 1
memory operation to bring each member up.  Incidently because we are
dealing with order independant data there is great possibility for
parallelism.  This is a very important subset of computing (the software
alone is a 10 billion + plus industry).  If it's possible to design an
architecture which speeds up this small set of operations by an order of
magnitude or more; then it (seems to me) that it doesn't matter if it's
well balanced.  A lot of companies might be better off going for
lucrative niches rather than competing with well balanced
architectures.    
> The Word Count utility I wrote in asm about 8 years ago (486-optimized)
> could handle a user-specified set of word and line separator characters,
> and it still ran faster than the disk transfer speed from a RAM-disk,
> i.e. more than 10MB/s on a 486-33.


	This is interesting.  I'm not a hardware expert, but I thought 8 years
ago the memory cycle was something like 70 nanoseconds.  Assuming (and I
believe it an incorrect assumption especially with RAM disk) that you
could get a 4 byte word up every cycle this gives me something in the
range 6  megabytes per second.  
	I haven't studied 486 architecture but unless it has something like I
described the operations to examine a dozen or so delimiters would take
something like a dozen CPU cycles.  Not to mention the costs of noting
the results and putting them someplace useful (eg. back in memory.)    

> 
> The only real bottleneck on problems like these is the need for a
> (small) lookup table to do text classification.

	Which would be an argument for at least some programmer controlled
associative memory.  
> 
> The same code today gets more than 100 MB/s on a PII, again making io
> the speed limiter.
> 
> Terje
> 
> --
> - <Terje.Mathisen@hda.hydro.com>
> Using self-discipline, see http://www.eiffel.com/discipline
> "almost all programming can be viewed as an exercise in caching"
Technical Details
Message-ID: <35CD5DD7.15F5@earthlink.net>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail
References: <35CBC067.1AE7@bell-labs.com> <35cbf0c4.0@news.victoria.tc.ca> <35CD1E11.DC1@earthlink.net> <35CD3F0D.47DB@hda.hydro.com>

Show Full Headers
Complete Article Headers
X-Google-Language: ENGLISH,ASCII-7-bit
X-Google-Thread: 102b75,d09ffd69cf7f3874
X-Google-Attributes: gid102b75,public
X-Google-Thread: 1045ed,8105d7145cc1eb4f
X-Google-Attributes: gid1045ed,public
X-Google-Thread: 10461e,8105d7145cc1eb4f
X-Google-Attributes: gid10461e,public
X-Google-Thread: 111b20,8105d7145cc1eb4f
X-Google-Attributes: gid111b20,public
From: Andrea Chen <fallinghawks@earthlink.net>
Subject: Re: self-modifying code [(Re: TOP 10 (names in comp.sci)]
Date: 1998/08/09
Message-ID: <35CD5DD7.15F5@earthlink.net>
X-Deja-AN: 379353566
Content-Transfer-Encoding: 7bit
References: <35CBC067.1AE7@bell-labs.com> <35cbf0c4.0@news.victoria.tc.ca> <35CD1E11.DC1@earthlink.net> <35CD3F0D.47DB@hda.hydro.com>
Content-Type: text/plain; charset=us-ascii
Organization: EarthLink Network, Inc.
Mime-Version: 1.0
Newsgroups: comp.arch,bionet.neuroscience,comp.ai,alt.memetics