Posts Tagged ‘opensparc’

Simply RISC

Thursday, September 14th, 2006

This is really cool – a group called Simply RISC have taken Sun’s UltraSPARC T1 design from OpenSPARC, stripped away 7 of the 8 cores to simplify the design and released the whole lot in a ready-to-go package to work with the Free Icarus Verilog suite that runs on Linux. Now that some of the complexity has been removed, the whole codebase is more managable (and it’ll fit onto smaller (read: cheaper) FPGAs, too). They’ve also added a Wishbone bridge, which makes it easy to add extra Wishbone-compliant modules from OpenCores.

I’m constantly frustrated by the lack of decent media centre motherboards out there (the best is the Via Epia-M series which feature on-board MPEG decoding, but unfortunately the MPEG hardware is seemingly not supported by ANY software AT ALL) so one day it’d be nice to see someone add MPEG decoding to Simply RISC on-chip and start selling motherboards featuring it. Sure this is probably about as commercially-viable as suing every Linux user on the planet in terms of a business model, but I live in hope… I’d love to be able to design and build such a thing myself, but I suspect I will always lack the necessary resources (read: money) :-(

So much to say, so little time…

Wednesday, April 5th, 2006

It has certainly been a while since I’ve posted here, since I’ve been incredibly busy. The next person who tells me how easy students have it is going to regret it.

Anyhow, there’s been loads I’ve wanted to post about over the last few months that I haven’t got around to doing, so here’s one of those really long posts where I blog about many seemingly random and unrelated things. If you really want to read it all, I’d suggest you grab a coffee (preferably a cappuccino) and a comfortable seat :-)

Way back in Februrary, the day before I flew out to FOSDEM in fact, I went to see Goldie Lookin Chain at the Manchester Academy. They were great as expected, the beer was warm as expected and the atmosphere in the venue was unpleasant as expected. That night of passive smoking (of various substances) no doubt contributed to the rather nasty cold I woke up with the next morning and which stayed with me all through FOSDEM, completely ruining it for me. It’ll certainly be much better once the smoking ban comes in. Oh and while I’m on the topic, Mr. Blair (or should I say Brown): can we have a ban on smoking in non-enclosed public places next please?

There was an article at the BBC way back in February entitled Copyright sings to a different tune which is essentially editorial making the case for not allowing the record companies to have our copyright terms extended. I’ve blogged about this before, but the message is still the same: the public domain used to be a very valuable resource, from which creators could take work which was no longer of commercial value and make something new out of it. Nowadays copyright terms are so long that little is entering it, meaning everything is protected by an aggressive copyright police. Big business must not be allowed to dictate our copyright policy like they do so easily in the US.

Also in February the US Patent Office granted a ridiculously broad and obviously-invalid-to-any-sane-person patent covering things like Flash (not that I care about Flash, since it’s proprietary) and the technology frequently touted as being the next big thing on the web, AJAX. The fact that such a patent could be granted in the face of clear and obvious prior art is beyond words. This is why we must fight to make sure we don’t get this kind of nonsense in Europe.

At the beginning of March was the barely-touched-on-by-the-media national strike of university lecturers. I was out and about on the day and took a few photos. They were striking over pay, since they were promised more and didn’t get it (whereas management did get it). Such strikes are a pain, but if that’s the only way lecturers can get the powers-that-be to pay attention then so be it. The strike isn’t however the end of it and they’re also refusing to mark coursework, publish marks for already marked coursework or invigilate exams until they agree a pay deal. What this means to me, since I graduate this year, is that I may not know my final grade for some months which will make it very difficult to get a job. It’s about time this whole mess was sorted out and lecturers were given the pay to which they are entitled.

During the past six months or so I’ve been trying to get a graduate job, so far with no success. It seems that graduate employers aren’t actually interested in graduates at all: they just want decent staff they can get away with paying very little. Basically if you don’t have a significant amount of work experience (which many graduates won’t have – I certainly don’t) you can’t get a graduate job, which kind of defeats the whole point of graduate jobs in my opinion. What is also very worrying, especially given the state of corporate IT in this country, is the fact that many employers are recruiting for technical jobs without assessing the technical ability of candidates at all – they seem to think soft-skills are more important and that they can teach technical skills, even to non-technical people….. somebody should break it to them that the real world doesn’t quite work like that. I’ll resist the temptation to rant about this too much, but I can’t resist the temptation to shamelessly ask that anyone reading this who knows of a Linux/networking/web dev/FPGA engineer job going gets in touch.

I’ve been following the Sun UltraSPARC T1 developments for a while now, so I should mention that Sun have finally made their processor available on opensparc.net under the GPL. I’ve grabbed myself a copy and taken a brief look and it looks pretty useful. My course pretty much winds up over the next few months so after that I should have some spare time to get it running in a simulator and see what I can do with it.

A few weeks ago I saw a story which really made me laugh: ‘Sandal and ponytail set’ cramping Linux adoption?. Apparently the relaxed approach to clothing taken by Linux/FLOSS hackers is harming the uptake of Linux. What a load of old nonsense. Firstly, technical people are most often not customer facing, so nobody cares how they dress since they’re typically damm good behind-the-scenes technical people. I myself am not a stereotypical geek with a ponytail, sandals and long beard (maybe in twenty-or-so years) but like most geeks I do take a relaxed attitude to clothing (i.e. it’s purely functional – geeks don’t do fashion) and have never found it to be a problem. After all, decent clothes would certainly be ruined by all the ferreting around under desks and in comms cabinets. In any case, any business or government who wants to use Linux isn’t going to go to a Linux hacker for advice, they’re going to go to a suit-wearing consultancy filled with the kind of people geeks try to avoid at all costs. One quote really summarises the whole article:

"Open source has an unprofessional appearance, and the community needs to be more business-savvy in order to start to make inroads in areas traditionally dominated by commercial software vendors."

This guy seems to be living in a dream-world: the community doesn’t care about business. The community cares about producing good software and having fun doing it.

That’s all for now; I should get back to posting more frequently from now onwards.

UltraSPARC T1 to be GPL’d?

Thursday, February 9th, 2006

It seems that Sun are looking at using the GPL for their soon-to-be-open-sourced UltraSPARC T1 processor. I figured I should write something more about the processor, since they added me to the blogroll on opensparc.net.

They’ve also started a public consultation on which license they should use. This is great, because I suspected that they’d just release it under the CDDL and leave the users to like it or lump it, like they did with OpenSolaris.

Sun summarise the reason for open sourcing the processor as the following:

The goal in simplest terms, given the fact that Niagara is a breakthrough technology, is to offer it to everyone (as it is a compelling invitation for people to adopt) so that it becomes the industry standard for 64-bit CMT.
New designs/chips/SOCs for new uses that can be brought quicker to market by leveraging something that works.

In English, that translates into:

We want everyone to be able to use it, in both free and proprietary systems. We want to beat Intel/AMD, but we know that SPARC as an architecture is declining (I’m guessing here, but it’s probably true) so we need another way to do it.

If they want it to be usable as part of non-free systems, they should be using the LGPL rather than the GPL. I think the LGPL is the right license because it: -

  • allows free, unrestricted distribution of the code
  • ensures modifications are made available (if the modified code is distributed)
  • allows use as part of non-free systems without requiring the rest of the system to be under the same license

The GPL would require the rest of any system the code is incorporated into to also be released under the GPL. This would either: increase the amount of free hardware out there OR stop people from using the processor, thus reducing the community around it and slowing down the development of it.

While I’m somewhat extremist when it comes to Free Software (insofar as I believe that the GPL is always the right license for software), hardware is a different matter. There are a number of important differences between hardware and software, the key ones being: -

  • Hardware modules are not dependent on each other – each module is essentially independent and doesn’t require anything external to do it’s job (accept inputs, do some form of processing, set outputs). Software is modular too, but most software modules are built to work with other modules.
  • Most hardware systems developed as code are developed in proprietary development environments (when I say proprietary in this case, I don’t just mean non-free – I mean you have to sign an NDA just to use them). This could cause all sorts of legal issues relating to the publication of the finished system (under any license).
  • Most hardware is distributed on custom ICs – if your hardware has a bug, you can’t just get the source, recompile and off you go. You need the right software and hardware to be able to do anything. This doesn’t necessarily mean that access to source code isn’t as important for hardware as it is for software, but it’s worth considering.
  • In Europe, software can’t be patented (in theory at least), but hardware can.

Given these differences, perhaps no existing license is right for hardware – maybe we need the GNU Hardware Public License to address the unique issues associated with it.

For example, does having multiple modules on the same chip mean that they’re a single work even if they’re completely unrelated and don’t talk to each other? If two modules on a chip do talk to each other, are they classed as a single work or as two seperate works? What constitutes source code – the original source in the hardware description language, the compiled form ready to be burnt to a chip or a diagram of the individual gates on the chip? As far as existing licenses are concerned, all could be classed as source code yet they’re very different things. Let’s not forget patent issues as well – in Europe software is not patentable, so the original source code for hardware cannot be covered by patents. However there is nothing to stop you from patenting hardware – what happens if there’s a patent which only applies to the finished hardware? For example, by using and distributing source code you don’t violate the patent, but as soon as you burn it to a chip, you do (e.g. the patent is for ‘A piece of hardware which does X’). These issues mean that should existing licenses be used for hardware source code, the freedoms we though the license was guaranteeing are no longer guaranteed.

To summarise, I believe that of the existing licenses, source code for hardware should be licensed under the LGPL. But what we really need is a GPL-like license specifically for hardware, because it is my belief that existing software licenses are not sufficient. I don’t have all (or even many) of the answers, but what I do know is that open hardware, like open software, is the future and we should be working to encourage its development and use.

Open Hardware

Wednesday, December 7th, 2005

One of the things I’m doing at Uni is digital systems design. This involves writing code in a hardware description language (Verilog in my case, which is like a cross between C and Pascal) which can then be burnt to an FPGA chip or sent away for fabrication onto a custom IC.

This is pretty cool because it allows someone like myself, who can succeed in screwing up anything they put a soldering iron near, to design and build hardware using source code.
A typical example is the following, which would be a very simple adder:

module adder (in1, in2, out);
input in1, in2;
output out;

assign out = in1 + in2;

endmodule

That simply declares two one-bit inputs and a one-bit output. It then specifies that the output should always be equal to in1 added to in2.
As hardware can be created with source code, this source code can of course be made free/open source. OpenCores is a site containing freely-licensed source code for hardware components, everything from ethernet controllers and hardware encryption devices to full microprocessors. Most seem to be licensed under the LGPL. The great thing is that people can go over to OpenCores and pick up ready-made, freely-usable modules which can be plugged into their projects. There’s quite possibly enough code on there for someone to build most of a computer in totally open hardware.

As if that wasn’t good enough, Sun have announced that they’re releasing the Verilog sources to their latest-and-greatest processor, the UltraSPARC T1. This code, when released, won’t actually be of much practical use to hobbyists looking to build open hardware though, since it is naturally HUGE and would require an FPGA costing upwards of £5k. FPGAs also aren’t terribly well-suited to such tasks: their main advantage is that they can be reprogrammed quickly (one minute you have a USB controller, next minute you have an encryption device) – they’re not designed for huge projects such as this. It would be possible for anyone to pick up the code and send it off for fabrication onto a real chip, but the costs (especially for a one-off or small batch) would be much more than buying a ready-made processor from Sun.
Where I think the real potential is is in the possibilities for people to take the code and build custom hardware with it. It would be possible for example to rip out many of the hardware instructions and build in MPEG encoding/decoding if you wanted a media device. The end-result would be a lot smaller, so the price of the required FPGA comes down drastically.

However what I think would be more useful is if Sun released the code for some of their older 32-bit or early 64-bit processors. These processors will naturally be much smaller and easier for hobbyists to handle. The fastest 32-bit processor they did I believe was 150MHz. That may not be useful for the average desktop system, but it would be very useful for people building embedded devices who can make it offer excellent performance for their specific task by extending the instruction set.

I don’t however understand quite why Sun have done this. There are not many people out there with sufficient skills to use the source code (in fact I believe there is a worldwide shortage of such people) so they aren’t going to get many (if any) third-parties contributing to the design of the processor. That said, there aren’t really many disadvantages in doing it: Intel and AMD aren’t going to learn very much, since SPARC is RISC and x86 is CISC. Also, it’s not as if there are many people in the world with sufficient resources to start mass-producing the processors on-the-cheap and undercuting Sun.
There’s an interesting blog entry which talks about some of the reasons behind it, which seem to centre around the idea that they’d like third-parties to be able to do interesting things and contribute to the design, but I’m not convinced these are the real reasons…

In any case it will certainly be very interesting to see what community projects spring up around this and whether it’ll prompt any more companies to think about opening their hardware (probably not, but you never know).

Edit: Since I posted this someone from Sun told me that 32-bit microSPARC code is already available, under their Community Source Licensing scheme. Why didn’t I hear about this before?!