[comp.sys.amiga] AdSpeed

maxc0849@ucselx.sdsu.edu (InnerTangent) (10/21/90)

	I just got my "Compute - Special Amiga Edition" and I saw an AD
by ICD's new product line.  There were a flicker removing hardware, a
new SCSI interface for A2000, and (here is) AdSpeed!!!

	Here is the article copied ...
	"  3 new products from ICD "

	(some stuffs here about the "Flicker Free Video")
	
	"ADSpeed (tm)"
ICD expands its line of innovative enhancement products for the Amiga with the
introduction of *AdSpeed*, a full featured 14.3 MHz 68000 accelerator for all
68000-based Amiga computers.  AdSpeed differs from other accelerators by using
an intelligent 16K static RAM cashe to allow zero wait state execution of many 
operations at twice the regular speed.  All programs will show improvement.
AdSpeed will make your Amiga run faster then any 68000 or 68020 accelerator
without on-board RAM.  AdSpeed works with all 68000 based Amiga computers,
including the 500, 1000, and 2000.  Installation is simple and require no
soldering.  AdSpeed has a software selectable true 7.16 MHz 68000 mode for
100% compatibility -- Your computer will run as if the stock CPU was installed.
32K of high speed static RAM is used for 16K of data/instruction cache and
16K of cache tag memory.  A full read and write - through cache provides 
maximum speed.

	(Other stuffs about AdSCSI 2080 <for A2000>) 

	my question are, What does the stuffs in the last two line of the
"AdSpeed"'s introduction saying?  Does the "AdSpeed" use the existing RAM
in the A500 to do the cashe (what does data/instruction cashe and cache tag
memory mean?).

	Also, since the 14MHz processor can only be software switched (??)
between 68000 (7MHz) and 14MHz, what about some autoboot games that won't
let me change it's startup-sequence (if there is one)?  Any side effects
for 14MHz speed (clock? / video? / disk access?) ?

	Thanks in advance for any help. 


-- 

 [][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]
[]  Only Amiga makes it Possible..  | InnerTangent: maxc0849@ucselx.sdsu.edu  []
[]  Mind is the basis of reality.   | In Real Life: Bill Chiu                 []

daveh@cbmvax.commodore.com (Dave Haynie) (10/24/90)

In article <1990Oct21.013920.8600@ucselx.sdsu.edu> maxc0849@ucselx.sdsu.edu (InnerTangent) writes:

>	I just got my "Compute - Special Amiga Edition" and I saw an AD
>by ICD's new product line.  There were a flicker removing hardware, a
>new SCSI interface for A2000, and (here is) AdSpeed!!!

>	my question are, What does the stuffs in the last two line of the
>"AdSpeed"'s introduction saying?  

It sounds like they're claiming a 16K static writethrough cache, which is
what you would expect.  This isn't a bad approach for a 16MHz 68000.  The
16MHz 68000 is slow enough to use cheap static RAM for caching, but it should
give you more than the basic 10% speedup that a 16MHz CPU without any cache
or full-speed memory would provide.

>Does the "AdSpeed" use the existing RAM in the A500 to do the cashe (what 
>does data/instruction cashe and cache tag memory mean?).

This is a hardware cache, such as built into the 68020 or 68030.  Cache is a
special kind of memory that basically acts as a fast automatic backup for
slower memory.  The first time you read a location, it will come from main 
memory, but also be "cached".  Next time, as long as it's still in the cache,
you'll get a fast read from your cache memory rather than slower external 
memory.  "Write-through" means that writes always go into main, slow, memory.
The mentioned "Cache-Tag" is simply indicating a rather non-important feature
of the cache.  When you cache something, you not only have to store what you
cached (the data), but somehow also store the location of that data.  When 
you read a location, you need to be able to figure out if that location is
in the cache.  Obviously, if you store 16K worth of data items, you can't
compare every one against the current address to see if it's the item cached.
So you simplify things.  The easiest solution is a "direct-mapped" cache.
68000 addresses are 24 bit addresses, but really just 23 bits if you make
sure that read cycles always do a full read (the 68030 does this too).  So
you set aside one 16K chunk of memory for your actual data.  To pick one out
of 8K (words), I need 13 different addresses, let's take A1..A13.  Now let's 
take another memory chip, might as well use another 8K wordwide RAM.  We'll
make A14..A23 be data bits in that part, and run the same A1..A13 to the 
address lines.  Perhaps the extra data bits can be function codes if we need 
to consider different data spaces differently, or just ignored.  And one of
the data lines can tell us whether this location is valid.  This RAM is
the "tag" RAM.  When a location is read, we get a data chunk and an address
chunk.  If the validity bit is ture, a comparator chip compares the high 
order address from the tag RAM with the high order address from the bus.  If
a match occurs, we have a cache hit.  If not, we run an external memory
cycle and, when data is valid, write that datum and the high order address to
the cache location picked by the low order address.  And of course, a 
validity tag.  The cache may be invalidated in software simply by writing 
the validity bit 0 in all locations of the tag RAM.

This is a very simple explanation.  At high speeds, these functions can't be
done as efficiently with generic memory chips, so memory companies have made
fast memories optimized as cache tag memory, and in some cases cache 
controllers designed to use only external static memory.  For a relatively
slow processor like the 68000, standard Fast static RAM is probably just 
dandy.

>	Also, since the 14MHz processor can only be software switched (??)
>between 68000 (7MHz) and 14MHz, what about some autoboot games that won't
>let me change it's startup-sequence (if there is one)?  Any side effects
>for 14MHz speed (clock? / video? / disk access?) ?

They could certainly make the 7MHz mode the power-up default, but in general,
speed isn't a problem for Amiga games.  Most get their timing from the video
display timing or one of the CIA chip timers.  The real thing to be avoided 
is that you don't want the cache enabled on startup, which can cause problems
with poorly programmed games using self-modifying code (a no-no on the Amiga
and in general, the 68000 and any other system that supports caches).  This
kind of cache must be initialized in software anyway, so it's no problem for
autoboot.  Since the 68000 doesn't go off-board at 14MHz, it should be no
trouble for other Amiga devices if properly designed.  They will have to
manage support for DMA hard disks somehow, since caching of external memory
that gets changed by DMA is a problem.  There are various ways to handle
this...

>[]  Mind is the basis of reality.   | In Real Life: Bill Chiu                 []
-- 
Dave Haynie Commodore-Amiga (Amiga 3000) "The Crew That Never Rests"
   {uunet|pyramid|rutgers}!cbmvax!daveh      PLINK: hazy     BIX: hazy
	Standing on the shoulders of giants leaves me cold	-REM