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.
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.
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.
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.
Speak for yourself.
Lots of different types of workloads are very parallel.
Just because whatever kinds of games you play are not does not mean this is commonly the case.
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.
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."
If only there was some way of running more than one program...
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)
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 :)
We are talking about a processor being as open as possible.
Unless you are running proprietary code - (Windows) why would you need x86 compatibility?
Granted there is some software out there that is difficult to port because of its size, complexity or willingness of anyone to put in the effort to make it run on anything but x86.
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.
Which is not what I said.
Basically anything anyone would ever want to run on a server will benefit from more cpus. Add in much of what power users and developers will do.
These tasks range from hosting databases to transcoding video, to compiling code, or just using many programs at once.
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
If only there was some way of running more than one program...
Or one virtualized image.
"Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
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).
It's beyond time to dump the x86. It was a bad processor from the beginning. I learned Motorola 6809 as my first assembly language processor and then when I went to learn Intel's x86, I was like WTF?! The inconsistent way the instructions and registers were used blew me away and made me appreciate the Motorola way a lot more. But the popularity of the PC kept the processor going and growing. I know things in x86 world have improved some, but it all still maintains that backward compatibility and the CISC legacy.
So it is just about time we introduce new processors and instruction sets. We are in a transitional state right now where computer/data handing is concerned. We are amidst a mobile revolution and all new processors (relatively speaking) are being used... no longer tied to compatibility and stuff like that. Perhaps it is even a little late as ARM is kind of the thing now.
But with various advances and lessons learned in chip and PC architecture, it makes sense that an 800MHz processor could take on a 3GHz processor and kick its butt. Each discrete processor instruction in x86 land still takes several clock cycles to execute. (I know, pipelining and multiple instructions are being processed at all times assembly line style so the effective instructions per cycle is different.) But if you combine current technology and design it from the ground up to do the kinds of things we do today, it would make sense that it would use less power and fewer cycles per instruction. The reason we aren't doing all that well today is that x86 things are crippled into doing things the x86 way because they are still needed to run x86 software.
So, while all other things are changing, why not take the opportunity and update the processor, OS and software along with the style of computing? I know Microsoft's answer is to adapt x86 Wintel into other forms. No one wants this other than Microsoft...
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.
Contrary to Linux zealots belief, Windows is not the only proprietary software on the planet.
Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
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 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.
So you're volunteering to write the compiler, right? And porting Linux to a completely new architecture?
Contrary to Linux zealots belief, Windows is not the only proprietary software on the planet.
I don't really use Linux, although that's going to change soon as I will be working with it daily.
I haven't used Windows in almost a decade.
But what other proprietary code do you have in mind?
How many proprietary operating systems are there?
Windows - already mentioned.
RTOS - if you need this - stay with i386.
OS X - license does not allow you to run on anything but Apple hardware - why would you care.
If you are amongst the remaining 0.1% using a niche proprietary OS then I guess x86 compatibility might be nice.
Any code optimized for x86 will run slower compared to an actual x86 processor, hell back in the early 90's Apple used to have an x86 processor add-on card.
If you are using proprietary code on an open source OS (eg. Flash on Linux) then x86 code execution would be nice, but in the long run - the ability (and documentation) to create an open source flash version has been available for years now. If anything - having a x86 proprietary Linux flash player has hampered development of FOSS flash implementations as there is less of a perceived need for it.
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
the x86 was only supposed to be around for about 5 or 6 years tops, it's almost 40 so I think it's time to say goodbye!
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.
A patent mine field ... I'd rather see say a wide bus to tie it to a FPGA. A couple 400-800 MHz hypertransport links would be nice (there is an open HT core for FPGAs) but I'd settle for a couple 32 bit wide ports with 400-800 MHz LVDS source synchronous signalling with DMA support, with the protocol handled completely in software.
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.
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.
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.
If you are using proprietary code on an open source OS (eg. Flash on Linux) then x86 code execution would be nice, but in the long run - the ability (and documentation) to create an open source flash version has been available for years now. If anything - having a x86 proprietary Linux flash player has hampered development of FOSS flash implementations as there is less of a perceived need for it.
Quartus, Maya, MATLAB... There's much more closed-source packages than just Flash. And all the upcoming Steam games for Linux will be binary x86.
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.
Oops. Replying to undo accidental down mod
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
Openness doesn't really help, the guy who produces your chip can still do the exact same thing intel can if they wanted to.
Unless you maintain the whole process yourself from start to finish, or verify it all, then you can't trust anything.
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.
Everything works wonderfully on other architectures.
For sufficiently small values of "wonderfully".
note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
I wish! B^>
Rgds
Damon
http://m.earth.org.uk/
he actually posted in the thread, he said the compiler is already done.
But with various advances and lessons learned in chip and PC architecture, it makes sense that an 800MHz processor could take on a 3GHz processor and kick its butt.
No, it doesn't actually. Not when the 3GHz processor is one of the world's most efficient (in terms of realized computational power per clock cycle) designs in existence. Not when the effort required to reach that pinnacle of complexity and performance is... astonishing. (Think: 5 year long design projects.)
Each discrete processor instruction in x86 land still takes several clock cycles to execute. (I know, pipelining and multiple instructions are being processed at all times assembly line style so the effective instructions per cycle is different.)
You don't have any clue anyways. Throughput on common x86 instructions often exceeds 1 per cycle on modern advanced x86 core designs. It hardly matters that the start-to-finish latency for individual instructions is many cycles due to pipelining; without pipelines no design could operate even as fast as 800 MHz.
But if you combine current technology and design it from the ground up to do the kinds of things we do today, it would make sense that it would use less power and fewer cycles per instruction.
This only makes "sense" if you're an armchair theorizer who has no real insight into the problem space. In reality, the worst problem with x86 as of x86-64 is that its instruction encoding is somewhat difficult to efficiently decode, due to the variable length instructions. A nicer encoding (even one with variable length, so long as it made it easy to detect total length from the first 2 bytes instead of having to scan the whole instruction like you do with x86) would basically save some power.. But not a lot. There isn't any revolution lurking the way you naively want to believe.
The reason we aren't doing all that well today is that x86 things are crippled into doing things the x86 way because they are still needed to run x86 software.
So, while all other things are changing, why not take the opportunity and update the processor, OS and software along with the style of computing? I know Microsoft's answer is to adapt x86 Wintel into other forms. No one wants this other than Microsoft...
Just how old are you? I'm thinking you can't possibly be very old if you aren't aware that all the way back in 1991 the Apple-IBM-Motorola consortium created PowerPC, which was going to eat the lunch of all of the x86 CPUs by being a clean new architecture designed on scientific RISC principles. Apple replaced 68K with PPC. Motorola ported Windows NT to PPC and touted how in the brave new world people would flock to PPC for far better performance which x86 could never provide.
It took all of about 5 minutes for the NT-on-PPC plans to flop. There wasn't a real performance advantage there, so no third party software vendors were interested in porting application software, so no users wanted to buy PPC NT machines just so they could wank off about how pure and wonderful their CPUs were. The first PPC Macs shipped in 1994. Apple was reasonably successful with it for a while, because Mac users had little choice but to switch and PPC performance at least generally kept up with x86 for a while, but eventually PPC began falling behind and Apple was forced to switch.
The problems with x86 weren't fatal in 1991, and they aren't fatal 20 years later either. A clean sheet design could indeed be slightly better, but not radically better.
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.
In fact games involve massively parallel tasks at the data level. It's why dedicated hardware for graphics use architectures with tens or hundreds of cores. IMHO games would benefit a lot from multiple lower-frequency CPU even for non-graphics tasks (think: simulating a unit in a some real-time strategy game using a thread).
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/
But with various advances and lessons learned in chip and PC architecture, it makes sense that an 800MHz processor could take on a 3GHz processor and kick its butt.
No, it doesn't actually. Not when the 3GHz processor is one of the world's most efficient (in terms of realized computational power per clock cycle) designs in existence. Not when the effort required to reach that pinnacle of complexity and performance is... astonishing. (Think: 5 year long design projects.)
But if a processor can do the same amount of work using less power and an 800MHz clock, then it is NOT the world's most efficient. That's kind of the point of efficiency. What's more, it's a requirement for progress. We can't make an artificial brain when we are saddled with huge power consumption. Speed alone is not the only factor.
Each discrete processor instruction in x86 land still takes several clock cycles to execute. (I know, pipelining and multiple instructions are being processed at all times assembly line style so the effective instructions per cycle is different.)
You don't have any clue anyways. Throughput on common x86 instructions often exceeds 1 per cycle on modern advanced x86 core designs. It hardly matters that the start-to-finish latency for individual instructions is many cycles due to pipelining; without pipelines no design could operate even as fast as 800 MHz.
I think it is you who doesn't have a clue. I went to school on much of this. What you are missing is that much of the processing in these pipelines is wasted as the execution is speculative. So long as every series of instructions are a single stream, uninterrupted and involve no conditional branches, then yes, you can realize multiple instructions per clock cycle. But really you can't. That's not how processors work... especially not x86 processors. ...naivite ...
If improvements are to be made, there much be a discard of things which are legacy whenever and wherever possible. We are in the midst of big changes in the way [inter]networking and data are made accessible to people. The "PC" is becoming less significant. We are using new OSes and new hardware platforms. It is only a matter of time before those OSes and platforms invade business space just as the PC invaded the business mainframe space.
PowerPC
The PowerPC was a great thing. Unfortunately, it lacked something... a few somethings. One, it lacked the backing of Microsoft which was the dominant and growing force behind the move to PCs in the work place. Another thing lacking was that it didn't address any "needs" which weren't answerable by current and available technology. A solution without a problem is less likely to be adopted. Lots of ideas are good on paper. Computer history is cluttered with "better things" which never caught on because there was not enough need behind it.
problems with x86 are not fatal.
I beg to differ. We are now entering a time in which x86 cannot be the answer to the problem. The problem is that people want more mobility. x86 can't deliver.
'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.
DisplayPort.
I know tobacco is bad for you, so I smoke weed with crack.