Re: How to develop a random number generation device



John Larkin wrote:
On Sun, 16 Sep 2007 11:33:21 -0700, MooseFET <kensmith@xxxxxxxxx>
wrote:

On Sep 15, 11:09 am, John Larkin
<jjlar...@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> wrote:
[....]
architecture. In a few years we'll have, say, 1024 processors on a
chip, and something new will be required to manage them. It will be a
thousand times simpler and more reliable than Windows.
I think that the number of virtual cores will grow faster than the
number fo real cores. With extra register banks and a bit of clever
design, a single ALU can look like two slightly slower ones.

I expect to see multicore machines with less actual floating point
ALUs than actual integer ALUs.


Sounds sort of like Sun's Niagra chips, which have (IIRC) 8 cores, each with 4 threads, but only a few floating point units. For things like web serving, it's ideal.


Yup. Low-horsepower tasks can just be a thread on a multithread core,
and many little tasks don't need a dedicated floating-point unit.

My point/fantasy is that OS design should change radically if many,
many real or virtual CPUs are available. One CPU would be the manager,
and every task, process, or driver could have its own, totally
confined and protected, CPU, and there would be no context switching
ever, and few interrupts in fact.


That's not going to work for Linux, anyway - there is a utility thread spawned per cpu at the moment (work is underway to avoid this, because it is a bit of a pain when you have thousands of cpus in one box).

However, there is no point in having a cpu (or even a virtual cpu) dedicated to each task. Many sorts of tasks spend a lot of time sleeping while waiting for other events - a cpu in this state is a waste of resources. Multiple cpus is a good thing, and faster context switching would be a good thing too (multiple virtual cpus per real cpu is part of this), but there is little to be gained by going overboard. There comes a point when the die space used for all these extra cpus would be better spent on cache or other sorts of buffers.


John

.



Relevant Pages

  • Virtual SCSI performance
    ... 512MB RAM, 1.0 cpu, 4 virtual cpus ... When observing disk throughput on partition 1 during ... I/O operations like creating an LV copy, ...
    (comp.unix.aix)
  • Re: mobile_step_chip=> cheap results ?
    ... > if coordinating (the works of different CPU) it by a separated thread ... Hyperthreading came about as a result of studies ... compete for the functional units in the core, so having both virtual CPUs ...
    (microsoft.public.dotnet.languages.vc)
  • Re: mobile_step_chip=> cheap results ?
    ... > only utilized about 30% of the CPU core capacity and were largely bound by ... A hyperthreading CPU still has only 1 set of functional ... > compete for the functional units in the core, so having both virtual CPUs ...
    (microsoft.public.dotnet.languages.vc)
  • Re: [PATCH 1/3] Introduce cpuid_on_cpu() and cpuid_eax_on_cpu()
    ... With these changes powernow-k8 driver could run correctly on OpenVZ kernels ... with virtual cpus enabled. ... This means openvz has multiple virtual CPU levels? ...
    (Linux-Kernel)
  • Re: [PATCH 1/3] Introduce cpuid_on_cpu() and cpuid_eax_on_cpu()
    ... With these changes powernow-k8 driver could run correctly on OpenVZ kernels ... with virtual cpus enabled. ... This means openvz has multiple virtual CPU levels? ...
    (Linux-Kernel)