Another hardware Q

Lee Salzman lee.salzman at lvdi.net
Sat Mar 29 07:20:37 PST 2003


On Sat, Mar 29, 2003 at 09:52:15PM +1100, Glenn Alexander wrote:
> Hi again, 
>  
> I'm wondering is SIMD useful for languages like Slate, Smalltalk, et al. Or do  
> such systems have trouble effectively using this feature? If it isn't too  
> useful, I'll limit myself to 32-bit architectures since SIMD is the only use  
> for 64-bit in the sort of small system I am interested in building. It is  
> very unlikely I'll have over 4G memory in my system this decade! Particularly  
> if I'm running a properly written system with efficient code reuse and  
> storing most of my data on a remote server. 
>  
    SIMD would largely be a waste. However, how much does SIMD even
really help anything but scientific applications or the very occasional
3D game? I think maybe SIMD is a little overhyped, especially if you're
talking about a PDA. :)

    VLIW or superscalarness on the other hand is a lot more useful.

> On a related note, would 16MB be enough memory for the bulk of a running  
> system (including a decent GUI)? Assume I'm not running anything too big like  
> a web server - the device is intended as a PDA. Playing ogg/vorbis files out  
> of flash memory or small-screen video off a wireless network is about the  
> most intensive stuff it is likely to have to deal with. Maybe Voice-Over-IP?  
> Nah, I don't even IRC - I'm a messageboard type person! 
>  
> I want to use this 16MB as VERY fast cache-like memory tightly coupled to the  
> CPU and VM-swap in/out to a larger (say 128MB) flash memory (it would have to  
> be a soft-VM as a write-through cache mechanism would wear out the flash in a  
> few hours). In power-down, the DRAM is flushed to flash too so the system can  
> survive indefinitely with a dead battery (I have this strange aversion to  
> data loss). Upping the size of the 'cache' becomes very expensive in both  
> dollars and possible RAM speed. (Actually, there are a number of CPUs out  
> there with 1-2M on the CPU that can behave as  either L2 cache or very fast  
> regular memory. That is probably too tight, though.) The whole system doesn't  
> have to live in the fast ram area, just all the parts needed for whatever two  
> or three functions the user is using at the time (OS/GUI + 2 apps). I would  
> want to avoid VM-thrashing as it would wear out the Flash. Any memory block  
> should only be swapped out once in 10 minutes, on avearge, to get 4 years  
> from the flash (100,000 writes). Inteligent flash management can increase  
> this quite a bit, but I'd still like to avoid swaping memory except in the  
> case of closing one application (group of objects related to a particular  
> user task) and starting a different one. 
>  
    The trouble is that Smalltalks don't work like your average Unix.
You can't just swap out whole programs if you want to because there
really isn't such a clean notion of processes. All data is likely to be
strewn around the whole heap, so it can be anyone's guess where data is.

    You'd have to fit the whole system in 16 MB, and rather than swap
stuff just save it to the flash mem occasionally. If the flash mem
wasn't flash mem, you could do a lot more, by treating the 16 MB as a
real cache on the 128 MB, but since you're trying to minimize writes,
that doesn't leave a lot of options.

    And since the implementation is not quite done yet, I'm not entirely
sure what you can fit in 16 MB, although certainly enough to be useable.

>  
> Regards, 
> Glenn Alexander, hardware nutter. 
> 

Lee




More information about the Slate mailing list