Linked by Thom Holwerda on Mon 28th Sep 2009 23:15 UTC, submitted by poundsmack
Microsoft It seems like Microsoft Research is really busy these days with research operating systems. We had Singularity, a microkernel operating system written in managed code, and late last week we were acquainted with Barrelfish, a "multikernel" system which treats a multicore system as a network of independent cores, using ideas from distributed systems. Now, we have a third contestant, and it's called Helios.
Thread beginning with comment 386742
To view parent comment, click here.
To read all comments associated with this story, please click here.
dragSidious
Member since:
2009-04-17


But I think the point of these research OSs are just that - research. When discussing distributed and network programming, one can easily begin to see that a modern day desktop is, in many ways, a distributed system. A video card has dedicated CPU's and main memory, hard drives are getting their own processors for internal encryption, shoot even the computer's main memory is not straight forward anymore - not with virtual memory/memory management units, etc... Thus far we've managed to wrap these hardware devices underneath a single kernel, but that's only because we were thinking inside the box - going along with tradition.


Well actually with hardware development its going opposite of what your saying. Everything is getting sucked into the CPU and generic.


Its all about Moore's law.

Moore's law says the number of transistors in a processor double about every 2 years. This is due to the improvements in lithography, quality of silicon ingots, and shrinking processes.

As the quality of silicon goes up, wafers get larger. Larger wafers mean less waste and cheaper production. Higher purity increases yields. Shrinking processes and higher quality lithography mean more elements can be stuck in a smaller and smaller area.

The best CPU design people have been able to create so far is a RISC design, which is fundamentally very small and very fast core. Modern x86 processors are RISC at their core and use extra silicon to create a machine code translation layer for the legacy CISC machine code.

And such since the best cpu design is relatively small core that runs fast with large cache then using all the extra silicon area for more and more cpu cores was the logical conclusion.

However there is a limit to that usefulness. People just are not that multitask oriented.

Then on top of that you have memory limitations and the amount of I/O pins you can squeeze into a Mainboard-to-cpu interface is fundamentally limited.

So the next step is just sucking in more and more motherboard functionality into the processor. AMD did it with the memory controller, Intel has recently followed suit.

The next step is to suck the GPU and most of the northbridge into the central processor. Intel is already doing that with the newer Atom designs in order to be competitive with ARM.

The age of the discrete video card is passing. There will be no special physics cards, no audio acceleration, no nothing.

On modern architectures even the entire term "hardware acceleration" is a misnomer. Your OpenGL and DirectX stacks are almost pure software, or at least will be in the next generation stuff. All hardware acceleration is nowadays is just software that is optimized to use both the graphical processor and central processor.

Pretty soon memory bandwidth requirements and latency issues will mean that sticking a huge GPU and video ram on the far end up a PCI Express bus will become prohibitively expensive and cause too much overhead. So the GPU will just be another core on your central processor. (well.. actually more then likely just larger blobs of dozens and dozens of tiny extremely-risc cores that will get described as "the gpgpu cores")


The future of the PC is "SoC" (system on a chip), which is already the standard setup for embedded systems due to the low price and high efficiency that design offers.

Instead of having the CPU, North Bridge, South Bridge, CPU, etc etc. all the same functionality will be streamlined and incorporated into a single hunk of silicon.

Then your motherboard will exist as a mere break-out board with all the I/O ports, a place to plug in memory, and voltage regulation.

It'll be cheaper, faster, and more reliable. The only difference between Desktop PC, Smart Phone, and Laptop would be one of form factor, the types of I/O included by default, and energy usage.

The discrete GPU will exist as mostly high-end systems for a long time, but even that will pass as modern NUMA architectures mean you can still pretty much unlimited numbers of multicore CPU/GPUs in a single system.
(There exist high-end Linux systems with over 4000 cpu cores on a single computer)

----------

What your talking about is a extremely old fashioned computer design.

The mainframe system had a bare OS in the central running on a relatively weak central processor. The central processor box had a number of different connections that could be used for almost anything and often multiplexed for a wide variety of very intellegant hardware. Network boxes, tape boxes, DASD units, etc etc. Each with their own complex microcode that offload everything. This means that mainframes have massive I/O capabilities that can be fully utilized with very little overhead.

Of course all of this means they are huge, expensive, difficult to maintain, difficult to program for, and are largely now legacy items running software that would be prohibitively expensive to port to other architectures.

Edited 2009-09-29 05:30 UTC

Reply Parent Score: 4

renox Member since:
2005-07-06

Modern x86 processors are RISC at their core


This sentence isn't correct: a RISC is a kind of Instruction Set (visible by the compiler) which allow efficient hardware usage by the compiler.
An x86 compiler cannot access the 'core RISC' inside an x86 CPU so it's not a 'core RISC', it's just that both RISCs CPU and x86 CPU share a lot of silicon.

However there is a limit to that usefulness. People just are not that multitask oriented.


Uh? You can also use multiple core to accelerate one single software, but it's difficult to program yes.

The age of the discrete video card is passing. There will be no special physics cards, no audio acceleration, no nothing.


Probably, but note that GPUs now have a cheap, huge memory bandwith (thanks to it's fixed on board memory configuration) that the GCPU won't have at first..
It's possible to use different algorithms to use less memory bandwith, but first generation GCPU won't be competitive with high end GPUs.

Reply Parent Score: 3

dragSidious Member since:
2009-04-17



This sentence isn't correct: a RISC is a kind of Instruction Set (visible by the compiler) which allow efficient hardware usage by the compiler.
An x86 compiler cannot access the 'core RISC' inside an x86 CPU so it's not a 'core RISC', it's just that both RISCs CPU and x86 CPU share a lot of silicon.


Your splitting hairs. To paraphrase what your saying is

The core of the modern x86 is not "risc", it just is the same design as "risc" cpus. Its a design philosophy in my eyes. Instead of a lot of complex instructions you use a cpu that has a small set of fast instructions and your depending on your compiler to get it right.

Intel and AMD processors have logic that takes the x86 instruction sets and break them down into RISC-like instructions that are then executed by the rest of the processor. You can think of it as a hardware just-in-time compiler or something like that.



Uh? You can also use multiple core to accelerate one single software, but it's difficult to program yes.


So your agreeing with me then.


Probably, but note that GPUs now have a cheap, huge memory bandwith (thanks to it's fixed on board memory configuration) that the GCPU won't have at first..
It's possible to use different algorithms to use less memory bandwith, but first generation GCPU won't be competitive with high end GPUs.


Yes memory bandwidth is a issue with IGP.

But the problem with the current design is that with more and more applications using the GPU as a "GPGPU" you will never really have enough dedicated memory on that. On a modern composited desktop your looking at massive amounts of video RAM needed to cache out all those application window textures and whatnot.

Its the same reason why on a modern system with 8GB of RAM OSes still insist on having swap files and swap partitions. To make things go faster you want to use as much RAM as possible.


So all that latency stuff adds up.

So Instead of burning out hundreds of thousands of cycles on BOTH your cpu and gpu shoveling megabytes worth of data back and forth over PCI Express during normal application you end up with all the cores sharing the same cache.

Then instead of spending 200 dollars or whatever on a dedicated external video card they can spend that money on increasing the memory bandwidth from main memory to the processor and make all that fast dedicated video ram a part of your normal main memory.


edit:

Imagine a application that uses GPGPU instructions and CPU instructions in the same execution loop.

Since the GPGPU is only fast at certain things it would be desirable to easily program using both the GPU and the CPU.

So with a dedicated separate video card each time you execute a loop in that program your burning through much more cycles just moving data back and forth over the PCI Express bus then what it actually costs to execute it.

By integrating the GPU and the CPU into the same processor as seperate cores and then using the same memory and cache for both things a much slower cpu and gpu could massively outperform a otherwise faster dedicated video card for that sort of thing.

And be much easier to program for...

Edited 2009-09-29 15:32 UTC

Reply Parent Score: 1

OSbunny Member since:
2009-05-23

@dragSidious: Very nicely described. I was also thinking about win modems and how increasingly even expansion cards offload processing onto CPUs. Also in the past you used to have separate math co-processors but these days they are all built into the CPU. So things have been heading in this direction for quite a while now.

But I still think integrating the GPU into the CPU will take a lot of time. Intel doesn't seem to be as good at making GPUs as it is at CPUs. So the likes of Nvidia and ATI will have the edge for many years to come.

Edited 2009-09-30 01:10 UTC

Reply Parent Score: 1