Toward An FSF-Endorsable Embedded Processor
lkcl writes about his effort to go further than others have, and actually have a processor designed for Free Software manufactured: "A new
processor is being put together — one that is
FSF Endorseable,
contains no proprietary hardware engines, yet an 800MHz 8-core version would,
at 38 GFLOPS, be powerful enough on raw
GFLOPS
performance figures to take on the 3ghz AMD Phenom II x4 940, the
3GHz Intel i7
920 and other respectable mid-range 100 Watt CPUs. The difference is: power
consumption in 40nm for an 8-core version would be under 3 watts. The core
design has been proven in 65nm, and is based on a hybrid approach, with its
general-purpose instruction set being designed from the ground up to help
accelerate 3D Graphics and Video Encode and Decode, an 8-core 800mhz
version would be capable of 1080p30 H.264 decode, and have peak 3D rates
of 320 million triangles/sec and a peak fill rate of 1600 million pixels/sec.
The unusual step in the processor world is being taken to solicit input
from the Free Software Community at large before going ahead with putting
the chip together. So have at it: if given carte blanche, what
interfaces and what
features would you like an FSF-Endorseable mass-volume processor to have?
(Please don't say 'DRM' or 'built-in spyware')."
There's some discussion on arm-netbook. This is the guy behind the first EOMA-68 card (currently nearing production). As a heads ups, we'll be interviewing him in a live style similarly to Woz (although intentionally this time) next Tuesday.
x86 compatible, that's what I'd like to see! Oh how I love to be able to pickup such a processor and build my main desktop rig with such a beast.
i would definitely buy this as a simple desktop/server linux computer, finally a platform you can fully trust through openness.
DRM, in some aspects - trusted computing - can be a positive thing.
My ideal system would have a root key I can set, that without software signed by it, it is a rock.
With the moves to put us more and more in walled gardens with tablets, smartphones, game consoles, and TV's we need open hardware. If we are going to keep the freedom we have to run "open" software we need platforms to run it on. Hurray!
IMHO, they really need to push this for scientific computing initially, as they tend to buy in bulk and are not very binary dependant. They are claiming it is so low power (2.7 W) that it would be easy to put an array, say, eight of them on a 1U motherboard for 64 cores.
I always wondered why it is always assumed that separate CPU and GPU are somehow the most efficient use of silicon. It just seemed counter intuitive to me. If the proposed processor is as efficient as claimed, it looks like I was right to wonder. This absolutely annihilates Intel and AMD on a performance per watt basis.
ok more than a little.
The guy who said the election was rigged won the presidency with the second-most votes.
Can we please move away from x86? That architecture is horribly outdated, loaded down with things that sort-of made sense in the 1970s. Today's x86 CPUs are just dressed up RISC machines; let's free up some of that chip space and just use RISC.
If you want to run x86 binaries, use a dynamic translation tool.
Palm trees and 8
Didn't see any mention of hardware floating point unit(s). Is that just a given these days?
"I bless every day that I continue to live, for every day is pure profit."
I may be way out of my field of expertise here, but I remember a nice trick that allowed to get information back from a live encrypted system by freezing the RAM http://www.zdnet.com/blog/security/cryogenically-frozen-ram-bypasses-all-disk-encryption-methods/900 .
It would be quite nice to have a end to end internally encrypted system. This kind of hack does not make a lot of sense from a personal use point of view, but when using a server, yes.
I couldn't care less if it is x86 compatible (I assume it is emphatically not). I'm sure the FSF does not care, either. I would use this in a heartbeat for my main desktop, and since I haven't had any significant dealings with Windows in at least 8 years, all I need is a free Posix OS (probably linux) and a C/C++ compiler.
...suck. Yes, it would suck.
You know, that's great that you can cram so many cores into these things, but if programs aren't designed to handle the multiple cores properly, it's only as good as the power of a single core.
I can't even begin to imagine why you would suppose so.
Why would that be the case?
Do you just like spouting gibberish?
Those performance numbers are pure fantasy. First off, the 38 GFlops is undoubtedly referring to single precision operations while the x86 processors mentioned in TFS are doing that much in *double* precision mode. Second off, the 38 GFlop number is a simple arithmetic estimate of what the magic chip could do IFF every functional unit on the chip operated at 100% perfect efficiency. Guess what: a real memory controller that could keep the chip fed with data at that rate will use > 3 watts all by itself. This chip won't have a real memory controller though, so you can bet the 38 GFlop performance will remain a nice fairytale instead of a real product.
AntiFA: An abbreviation for Anti First Amendment.
Show us the running hardware.
If this processor is going to be designed and licensed under GPLv3 - I guess one won't be able to build any license-compatible proprietary software for it either. Curious - but count me out :)
ah interesting. no, it wouldn't be. i believe there are two separate misunderstandings here.
first: i did actually look some time ago at LEONv..... v2 i think it is, which is LGPL licensed i think by Gaisler Research but the amount of work needed to turn it into a modern GPU/VPU-competitive processor would be too costly. then there is the stuff on http://opencores.org/ but it's not really ready for prime-time - i've been keeping an eye on the projects there for quite some time [none of them are SMP capable for example]
instead, i kept hunting, spoke to tensilica about their core (which is superb btw!), talked to synopsis about their core (ARC), and even came up with a way to do software-interrupt-driven SMP (yes i ran it by alan cox on LKML!). when this current design popped up, and i saw both its capabilities and that they are willing to respect the GPL regarding the toolchain, i jumped at the chance.
second misunderstanding is over design of *hardware* impacting what *software* it can run. it would be necessary to have a modified version of the GPL, stating "all and any software programs running on this hardware *must* be GPL licensed". the impact that this would have would be extremely problematic, as well as being rather fascist and not in the spirit of free software at all.... and, also, as it would be a modified version of the GPL, it wouldn't *be* the GPL, so could not be FSF-Endorsed.
with that as background, to answer the question directly: this is a proprietary design just like all other proprietary designs, using off-the-shelf completed and *tested* hard macros (including the core processor itself albeit only under the MVP Programme), where there is no restriction of any kind on the software that can be run on that processor, be it free software or proprietary software.
anyone can play, in other words.
The goal is mass production in 7 months. Good luck!
H.264 can't (legally) be encoded without paying for a license... interesting choice for an example. Yes, decoding is free at the moment, but these patents will be in effect until around 2020 or later and are part of the highly patented MPEG 4 standard.
I know Allwinner did a separate version of their A10 chip without HDMI (A13) to avoid heavy licensing costs, would the HDMI push the cost of the chip up much?
"I bless every day that I continue to live, for every day is pure profit."
Um, no? It's not like the program is linking with the processor, is it? (there has been a similar discussion regarding GPL bytecode interpreters long ago, as long as it's just the interpreter and not also libraries they're considered separate)
http://en.wikipedia.org/wiki/HIPPI
I want a REAL cryptographic quality random number generator based on thermal noise or some other quantum mumbo jumbo.
https://www.eff.org/rng-bug
Lets at least make the spooks have to work for a living :)
Would be a nice place for an engine.
If you're doing an open source processor include the hooks to easily do coprocessing in FPGA for application specific acceleration like video encoding and decoding, etc...
Also build in hardware support for multi-threading primitives and atomic memory operations.
Whatever they do, please DO NOT let Stallman into the clean room!
At least the basic operations (add, substract, multiply, divide, negate, compare) and conversion between integers and floats. This isn't counting memory accesses (i.e. operations between two registers).
With most proprietary software, you won't get the source code at all. You get a binary compiled by the vendor. With a completely new architecture, most software vendors won't bother to support it (that might change if you get to ARM or x86 levels of popularity).
Being compatible with proprietary licenses would be the least of your problems ;-)
C - the footgun of programming languages
From TFA:
>The deadline:
> July 2013 for first mass-produced silicon
>
>The cost:
> $USD 10 million
This poster has either no idea or is dreaming. In 6 months he will not have an SoC through potentially several tape-outs, having first done System Engineering, Design, Synthesis, Layout, Verification, Validation, Documentation, ... and seemingly all without an existing organization. Or are SoC manufacturers lately doing short-term build-to-order processors. And the 10 million are not going to cover the necessary cost for all of the above. The masks alone might be that expensive depending on the number of tape-outs necessary (which - without an existing organization and working design flow - will be a lot).
hardware support for free formats, as opposed to non-free?
"Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
"So have at it: if given carte blanche, what interfaces and what features would you like an FSF-Endorseable mass-volume processor to have?"
Standard size chip socket, with adapter springs and guides for using off the shelf cooling implements (like zalman fans, and watercooling), for other CPUs.
need PCI and PCI express, prefrably at least 24 lanes, hopefully as many as 48 lanes.
Behind this, fast northside/southside busses to keepup with the following, I think AMD open sourced hypertransport, so front side bussing should not be an issue.
If your still mulling over instruction set, a built in crypto proccessing chip would ROCK. implement intels AES-NI or something similar, plus more for twofish, serpent, and other fairly mainstream modern, unbroken Free/Open encryption algorythms. Then add hash instructions for the entire SHA family of hashes, MD6, whirlpool, tiger, RIPMED, and GOST
GOOD USB 3 support, with legacy suppoequivsrt for 1 and 2. Not only do I want some ports on the back, I want at least 3-4 banks of header pins on a theorhetical motherboard for front panel devices and ports. They shtheorheticalould be USB 1,2,3. Solid high speed memory controller at a preimium.
Universial SATA support for revisions 1,2 and 3 (1.5GB/s 3.0 GB/s and 6.0 GBs respectively), built in RAID controller. eSATA would help too.
scalable audio chipset capable of up to 8.1 surround, Stereo input, SPID/F and all the other great audio features.
DDR3 RAM, or something comparable.
Unlocked bootloader with firmware menu ala x86.
Atheros chipsets for wired ethernet(1GB fine, 10GB requested for future proofing), and wireless (every protocol up to N 600mbs, again future proof.)
split the graphics chipset into another PCI-E board, and sell it seperately, that works with x86.
I'd like to good support for ACPI tables, lots of hardware sensors, temp, fan speeds, intrusion, etc...
Compare it to a more modern processor. You want floating point performance? Take a look at a Sandy/Ivy Bridge. My 2600k, which I have set to run at 4GHz, gets about 90GFlops in Linpack. The reason is Intel's new AVX extension, which really is something to write home about for DP FP. Ivy Bridge is supposedly a bit more efficient per clock (I don't have one handy to test).
If you are bringing out a processor at some point in the future, you need to compare to the latest products your competitors have, since that is realistically what you face. You can't look at something two generations old, as the 920 is, and say "Well we compete well with that!" because if I'm looking at buying your new product, it is competing against other new products.
You also need a text editor for your hosts file!
APK
Off the top of my head:
0) A proper MMU and at least 1Meg of cache
1) 64bit - If not, there will be a need for yet another version at some point. Just do this.
2) Double precision floating point in hardware (for + - * / and preferably rsqrt)
3) GCC support.
4) LLVM support
5) LLVM-Pipe for OpenGL support
6) It would be nice if some instructions were optimized for running virtual machines.
I haven't looked into what makes sense for #6, but with all the VMs around it would be nice to have them run efficiently.
So will this 100% free processor follow a 100% free fabrication process? What is the use in being worried about dependencies on proprietary vendors' architectures in order to support 3rd, 4th generation processors when the ability to replace 3rd, 4th generation processors with an equivalent part requires production through a proprietary vendor manufacturing processes?
I feel like I'm married to VMware in a way because I'm always using it for one thing or another. Hardware virtualization is better.
LOL.
How about a small embedded, non-proprietary FPGA fabric and small bit of on-chip RAM that would be sufficient for certain useful tasks like, say, greatly accelerate decoding x86 or ARM or ??? instructions for emulation, handling custom high-speed i/o protocols, or performing filtering for software-defined radio. Maybe that's a bit too much to ask, but I've always wanted a CPU/FPGA hybrid that allows more dynamic application use off the FPGA side, rather than using external proprietary tools. Xilinx sort of had this for the virtex-II using a Java-based library but it's total abandonware now.
It seems fairly clear that http://icubecorp.com/products/ is the current generation of the cpu which he is hoping to shrink, extend and speed up. Does it exist in any products? Is it already suitable for FSF endorsement? Wasn't the loongson (e.g. Lemote Yeeloong) already FSF endorsed?
I need is a free Posix OS (probably linux) and a C/C++ compiler.
You also need a text editor for your hosts file!
Fools. Both of you. A text editor and C compiler are required by POSIX.
OS programmable FPGA.
memset, strlen, etc, instructions
mutex instructions
So you're volunteering to write the compiler, right? And porting Linux to a completely new architecture?
It's never steered me wrong and has more than enough power.
All of these new CPUs are pate.
I'd love to have the MUX instruction, as it is a pain to simulate.
So what is this to be attached to? A virtual motherboard with non-Nvidia / Intel / Marvel / Broadcom... virtual chipsets? This will be quite a long march to the desktop....
So you're volunteering to write the compiler, right?
the team's done it already.
And porting Linux to a completely new architecture?
and that, too. and android on top of that.
relax - it's been taken care of. come on - think, 007. would i *really* have put this up as a proposal if the compiler and the linux port hadn't already been done? doh! :)
A Memory Management Unit would be nice in today's CPU's
I'd like to see support for a small chunk of FPGA fabric to allow for specialized instructions. I have no idea if FPGAs can be implemented free of patents.
He must be because surely the GNU/Linux community will not jump on the chance to port to this thing...
Why would that be? The GPL would only cover the processor's design. So, unless you are removing the die from the case and grafting on additional logic gates to add some new proprietary function to the CPU you are fine. Running proprietary code on the processor is just using the processor. Saying your code has to be GPL would be like saying every document you write in a GPL'd office suite has to be GPL. It doesn't make any sense!
First a boatload of cores. 8 is a good start but I want 128 or 1024. One idea would be to have variable cores. That is a handful of crazy powerful cores and then another 1000 lightweight cores for all kinds of lightweight stuff.
But the difficult question is how compatible with existing things to make it. If you venture too far into the land of cool you might only end up with a tiny bunch of hardcore followers like Lisp and Erlang presently have. I am not saying that lisp or Erlang are good or bad but what strikes them from most people's toolsets is that they are too different from most people's norms. It is not too hard for a C++ person to wrap their head around Java or C# but ()))()()()())()()(Lisp)()())()))()()()() can be a bit hard to wrap a CPP::Brain(); around.
But at the same time if you stick with similar solution to ARM then why bother? I guess it all boils down to can Linux be ported to the new and cool or would a new and better ARM really be that much better?
I guess there is a third option. If a new CPU demanded a wholly new OS then maybe a whole new demand might be created. I have leafed through the Linux architecture and quite a bit of it seems legacy and often solving problems I don't have. Thus maybe the world is ready for a new OS/CPU. Strikes me as way too hard but for all I know this might be one of those "Wow it was so easy that we are puzzled someone didn't do this long ago" moments.
I woyuld recommend MMIX (thanks Knuth) with a GPU alongside.
Sent as ripples into the electromagnetic field. No single photon has been harmed in the process.
Remember OpenMoko, the open source cell phone? By the time it shipped, it was obsolete. And they didn't even have to do IC design.
There are parts such as the Allwinner family which have no US intellectual property. That's how they can ship a rather impressive ARM SOIC for $7.
Hmm, one problem I have with the full GPL is that it *is* by design rather intent on spreading itself virally and to the exclusion of other legitimate models, and thus a restriction on what software the hardware would be allowed to run would be unfortunately in keeping with the GPL.
I agree that that would be excessive, but then I think that the full GPL is generally excessive.
You may guess that I prefer to license my stuff under BSD licences to allow fully commercial uses. B^>
Rgds
Damon
http://m.earth.org.uk/
1. Built-in, externally SPI-programmable bootloader flash. Preferrably too small to work with any imaginable UEFI implementation, so it won't work in locked down devices with Windows RT, and if someone will stuff it there, bootloader would be easy to replace by the user.
2. If the chip contains anything more than the CPU itself, and any kind of ROM/flash, ship it with a matching flat device tree in a known location, so bootloaders and OS won't have to have those things hardcoded.
Contrary to the popular belief, there indeed is no God.
Isn't that just a = (b&mask) | (c& ~mask) ?
Octa-SPI interfaces -- two quad SPIs (each with its own clock) with DMA buffers on the same controller and combined interrupt logic, for fast communication with cheap FPGAs.
Contrary to the popular belief, there indeed is no God.
Anything advocated by Luke Kenneth Casson Leighton will never happen and never work. He has the Midas touch in reverse.
Hmm, one problem I have with the full GPL is that it *is* by design rather intent on spreading itself virally and to the exclusion of other legitimate models, and thus a restriction on what software the hardware would be allowed to run would be unfortunately in keeping with the GPL.
you are absolutely, absolutely dead wrong. waaayyyy off base.
I agree that that would be excessive, but then I think that the full GPL is generally excessive.
You may guess that I prefer to license my stuff under BSD licences to allow fully commercial uses. B^>
Rgds
Damon
and how's that working out in the android community? you've seen the list of GPL violations as people mistake "android equals linux", yeah? it's a serious problem, and it's why i started the whole rhombus-tech initiative: to get free software developers involved right from the beginning in the mass-volume industry, right the way through to sales in hypermarket retail stores. the "dream" if you will is for free software people to be able to walk into a supermarket and go go "fuckin'A! i helped write the software for that! you wanna buy one of these, grandma, i can replace the OS in no time, with something that i can manage remotely for you".
you have to remember that the BSD license was designed and written at a time when everyone trusted (because they knew them personally) everyone else in the industry. *everyone* shared source code. then fuckers like apple came along and went "thank you very much. BYE". at one point, microsoft's NT Team took the TCP/IP BSD-licensed stack, and put it directly into MSRPC (because winsock was so shit). it's almost 20 years later that Wine have finally reverse-engineered MSRPC. i really don't understand people who don't understand why the GPL is so necessary, i really don't.
They want their i7 920 back. 2009 want their Phenom 2 back as well.
I do actually. Its not a deal breaker, but I won't lie and say I don't use some x86 only binaries, both in WINE and some proprietary software.
Also, my favorite distros revolve around x86.
"So you're volunteering to write the compiler, right?"
more like "port of gcc".
" And porting Linux to a completely new architecture?"
make it #14 for linux. I can't imagine that it would be hard if you are able to design a CPU archetecure/CPU in the first place, specificly one with linux in mind. Specificly one you have all the specs and already have intimate knowledge with.
because it's not "so" necessary. Only purists and fanbois like you think it's the be-all-end-all
Parent is one of the best comments ever and only us AC's are likely to read it. Let's keep it that way XD /. at 0 is the only real /.
But I've had some of my code used in places where the user could not have deployed GPL code and where there was a pressing need but not necessarily much money. Those few lines redeployed made the world a slightly better place IMHO.
I *want* corporates to be able to use my code *as well as* for it to be used in FOSS. My agenda is more important than RMS's for my code, sorry.
Anyhow, this disagreement is not a new one, but I'm just pointing out that your horror about GPLed h/w excluding legitimate non-GPL s/w is to me not really distinguishable from GPLed code refusing to co-exist with non-GPLed code in common instances.
Regardless of licensing/philosophy disagreements, it looks like a fantastic project!
Rgds
Damon
http://m.earth.org.uk/
Slow day at work Mr Balmer?
On 6) instructions for virtual machines, there are probably many good ideas for this. One thing I've wanted since implementing my first VM in the early 1980s is to have a way to tell a processor to interpret a sequence of virtual instructions (8 or 16 bit) as calls to a jump table of real instructions. Or perhaps the instructions could be wider (like 64 bit or 128 bit) with extra data beyond the first 8 or 16 bits as a jump indirection being loaded automatically into registers. There would then be instructions to process the next virtual instruction or perhaps to jump to some toerh virtual instruction. This approach is somewhat analagous to "microcode" in the sense that you are defining what virtual instructions do. This kind of support would remove the inner loop speed penalty of a lot of interpretation which can cause programming language virtual machines to run several times slower than native code. I've long thought proprietary CPU vendors would never add such a feature since it makes CPU families more easily interchangeable.
You could talk to people who implement Forth, Smalltalk, and Java language VMs for some general ideas in this direction as well, as a broader area of dynamic language support. In particular, better support for dynamic stack frames (which are objects in themselves in Smalltalk, but usually can be on the CPU stack) could make a language like Smalltalk run faster. Anything that improved support for Smalltalk-like message passing would be a good thing. Basically, ask Chuck Moore, Dan Ingalls or the FONC project what he would like to see.
http://en.wikipedia.org/wiki/Charles_H._Moore
http://en.wikipedia.org/wiki/Daniel_Henry_Holmes_Ingalls,_Jr.#Work
http://vpri.org/mailman/listinfo/fonc
A 21st century issue: the irony of technologies of abundance in the hands of those still thinking in terms of scarcity.
So what is wrong with them that FSF doesn't like them? Mature and 'open'.
---- Booth was a patriot ----
One idea I had was to copy what Microsoft did on the XBOX 360 and have encrypted memory pages (i.e. a given page of memory is encrypted before it even gets to the RAM or virtual memory page file). Completely prevents attacks like the cold-boot read-the-old-contents-of-RAM attack. Note that I know nothing about how the 360 did it or how it could be done on a SoC like this, its just an idea.
I also like the idea of having the ability to directly extend the instruction set by adding a co-processor or FPGA.
And I like the idea of having hardware-level instructions for optimizing the most important/common encryption algorithms like AES, RSA and SHA.
And I also like the idea of having a hardware level trusted-computing type setup (one where the key storage is blank until the end-user decides to load keys in there)
You might want to talk to some of the people who actually do the work porting things before imagining it will be easy. Introducing a brand new processor (along with a brand new motherboard) is hard enough. It's a lot harder if there's no software that will run on it.
Reading the very sparse information you've provided I get the impression you're using an ARM core. That's not the same thing as implementing an entirely new instruction set, as some posters have suggested you should. Rereading, it does sound like the OP for this thread would be happy with an ARM processor and not a completely new one.
SATA-II, Gigabit Ethernet, HDMI 1.4, NAND Flash, DDR3 32-bit @ 1333mhz, USB-3, USB-OTG, I2S, I2C, RS232, SD/MMC, GPIO, PWMs and so on - all the things to be expected of a modern general-purpose mass-volume System-on-a-Chip.
This is going to be one very popular chip for embedded devices !
~ Best man at your service.
you have to remember that the BSD license was designed and written at a time when everyone trusted (because they knew them personally) everyone else in the industry. *everyone* shared source code. then fuckers like apple came along and went "thank you very much. BYE". at one point, microsoft's NT Team took the TCP/IP BSD-licensed stack, and put it directly into MSRPC (because winsock was so shit). it's almost 20 years later that Wine have finally reverse-engineered MSRPC. i really don't understand people who don't understand why the GPL is so necessary, i really don't.
The BSD license was created for the purpose of being compatible with closed source licenses.
Apple also contributes back to pretty much every OSS project they use. Saying they copied and disappeared is a flat out lie on your best day.
BSD's TCP/IP stack being basically the reference implementation for the entire world resulted in ... compatible networking. This is a good thing, yet you act like its horrible that everyone could be compatible by using the same code.
GPL isn't necessary. Thats a stupid statement. GPL, just like BSD license is a political statement. GPL is 'all scratch your back but then you have to scratch mine'. BSD code is 'here's a back scratcher, tell people where you got it from!'
End result?
Everyone uses BSD's back scratcher, GPL's back scratcher stays a niche tool for GPL fanboys who continue to be befuddled by the fact that it isn't the year of the Linux desktop.
Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
Is also crap. When is an open source BSD on the desktop going to happen? How about BSD on a smartphone?
Just sayin' each license has its place and uses. I still don't understand why there are so many others. BSD and GPL pretty much cover the two main philosophies, everything else seems to want to be some kind of sneaky open-source-except-for-we-who-can-take-it-closed.
I want a core operating system in ROM on the processor so it can never be root-kitted.
I wish! B^>
Rgds
Damon
http://m.earth.org.uk/
Hmm, one problem I have with the full GPL is that it *is* by design rather intent on spreading itself virally and to the exclusion of other legitimate models, and thus a restriction on what software the hardware would be allowed to run would be unfortunately in keeping with the GPL.
you are absolutely, absolutely dead wrong. waaayyyy off base.
No, he is not. And saying it with a funny accent does not make it so. It is by intent that GPL wants to spread "freedom", just read it.
Any license that forces some definition of "freedom" uppon others cannot be taken seriously. GPL is mostly unnecessary and none of your examples invalidate public domain or BSD: We know that some people won't share modifications, but you know what? We are okay with them doing it because our definition of freedom is not invented by a spoiled 6 year old brat that does not like to share.
he actually posted in the thread, he said the compiler is already done.
In fact, ICube has a really SoC base on their 2 cores 8 threads MVP core: http://icubecorp.com/products/
I've suggested this a few times, but given the FSF goals of forcing the source code to be always available, it seems that a VLIW/EPIC based CPU would be the perfect FSF flagship. In VLIW, there is no dynamic analysis happening within the CPU, so a lot of things that RISC CPUs do - branch prediction, speculative execution, register renaming, et al have to be done by the compiler. Which sounds perfect from the FSF POV - every time a new CPU is released, the software will have to be recompiled for the new platform if anything changes - #registers, #pipelines, et al. Now, they could just make the perfect gcc compilers for these, which shouldn't be difficult, since gcc compilers presumably already exist for Itanium, they'd be off to the races. Obviously, the job of fine-tuning the compiler would be left w/ the CPU maker. Also, the CPU might even prefer an EPIC architecture like Itanium, where flag bits may indicate which branch to preemptively execute, or which executed branch to retain if the CPU executes both branches and discards the other later.
Oh, and the HDL models of such CPUs - make them available under GPL3 or AGPL3. Anybody w/ the cash to blow and for whom the liberation of hardware and software both matters can take them, and try doing tape-outs, fab-outs... They could then do something like what Transmeta did, except that this time, they are running their native VLIW binaries, rather than translated x86 code.
Hmm, one problem I have with the full GPL is that it *is* by design rather intent on spreading itself virally and to the exclusion of other legitimate models, and thus a restriction on what software the hardware would be allowed to run would be unfortunately in keeping with the GPL.
Please engage brain before typing.
Simple thought experiment - can you compile closed source code with gcc? Can you write copyrighted text with Abiword? So why couldn't you run closed source code on a processor who's design was licenced under the GPL?
What licencing the processor under the GPL means is that any modified versions of that processor also have to be licenced under the GPL. No more, no less.
Watch this Heartland Institute video
Gee, thanks for your calm consideration.
Since (full) GPL software imposes conditions on stuff that just *links* to it without modifying it, never mind deriving from GPL-licensed types in (say) an OO language, and that turned out to be so toxic that the LGPL came to be, my point stands that a reasonable default view is that many other forms of usage that don't involve modification may be impacted unless shown otherwise.
Software running on such GPL hardware might be ensnared, and I wouldn't want to be the person dragged into court because I'd misunderstood.
(This is not theoretical: I had to unpick and redo a great deal of someone else's work because they hadn't noticed that one small library was GPL rather than LGPL, probably by accident; leaving it might have exposed trade secrets.)
Rgds
Damon
http://m.earth.org.uk/
'Cause my phone needs SATA-II and gig-E, right?
Karma: Poor (Mostly affected by lame karma-joke sigs)
I'm confused ... I rtfa'ed, and it says in the project costs section that of the $10m needed, "$1.5m will be for licensing of the modern interfaces such as DDR3, HDMI, SATA-II, USB-3 and RGMII." If those modern interfaces need to be licensed that way, don't they violate FSF endorsability, ipso facto? Or, is it that the licensing terms for such are compatible with e.g. GPLv3?
"Ahh! I see you're in that indeterminate Schrodinger state where - oh, uh
I though the Loongson was just this, it's what RMS uses.
Sam Flint flintfam.org/~swflint
I recommend looking at some of the Multics features, particularly the use of segmentation and paging instead of a more normal file system.
see http://www.multicians.org/features.html for an introduction to Multics features and the references for how they really work. Multics was written to run on an SMP system so a system with 1 processor was the special case.
I would also suggest looking into security, again both the permissions an perhaps the ring based permission levels. The more the cpu can help with building in security from the start the easier it will be in the long run.
You might also want to look into the NS32xxx series from National Semiconductor in the late 80's/90's( not sure exactly when). The NS3200 all had the same instruction set, however you could get the chip with 8bit, 16bit, and 32bit memory/data access. At this stage of CPU's I'd suggest looking into detaching the instruction set from the 'bit' size so the external access to memory/data was independent of the bit size. With a 32 bit data/address bus it may take 2 transfers to handle a 64 bit data item, but that can be done by the hardware without the software having to know about it. All the software sees is a 64 bit (or maybe later on with added instructions a 128bit) address/data path with the actual path width hidden by the hardware. A 64 bit program might run a little slower on a 32 bit bus, but it will run.
*rant* shitty window scaling algorithm *rant*
I know tobacco is bad for you, so I smoke weed with crack.