Viewing 1 to 9 (9 Total)
What processor would you make?

paula@tensilica.com

Total Posts: 1
Joined: Feb 2010

Jim, Wait a minute. With Tensil

Jim,
Wait a minute. With Tensilica, you don't have to create your own custom tools. For every change anyone makes to an Xtensa processor, our Processor Generator automatically creates a full matching tool chain. We have several patents on this and wouldn't be selling so well if we didn't offer this service. See http://www.tensilica.com/products/hw-sw-dev-tools.htm. And you can get emulators and all sorts of tools from our partners and they work with any modifications to the processor, too.
Your points about inserting a custom instruction so people can copy your design are spot on! Several of our customers have done just this.
Paula Jones - Tensilica

Posted on 2010-02-09 18:57:32 at 2010-02-09 18:57:32

kevin

kevin
Total Posts: 87
Joined: Apr 2009

Jim Turley told us that we could very well stop complaining about our processor, and just design one instead (click here for article).

If you could make your own processor, what would you do?

Posted on 2010-02-11 15:58:59 at 2010-02-11 15:58:59
Display Messages: Threaded     Flat
8 Replies

SPLatMan

Total Posts: 1
Joined: Feb 2010

Jim, In a sense we have been

Jim,

In a sense we have been making our own processor for many years, by implementing a Virtual Machine (VM) inside a COTS microcontroller chip. In our case it is a VM optimized for embedded logic control made in a 8-bit chip. The result is very slow (but fast enough for most of our applications) but very comfortable and extremely memory efficient. Our motivation was to make something that could be used easily by non-experts. In that sense it has been very successful. We made our own tool chain, including a user-friendly simulator. The object code generator is more of an assembler than a compiler. It is assembling quite powerful (and domain specific) "native" instructions, so it wasn't a monster job.

We are presently developing a new product range built on ARM7. In this case we have opted again for a VM, but with an otherwise rather different approach. The VM this time is based on Forth (a very interesting and under-rated language that actually is available as a native chip). However, the end-user won't see Forth but a more user-friendly "SPLatBASIC" and a table-based state machine modeler/designer. In this case we have a genuine compiler, which generates VM code.

Significant in both instances is that all the heavy lifting for multitasking and the like is done deep down inside the VM. The RTOS is tightly integrated to the architecture, and the application language is inherently multitasking. The performance of this "Next Generation" product is orders of magnitude faster than the "Classic" one, largely because the ARM chip gives a lot more grunt. Forth style threaded code is more efficient of CPU cycles. Again, the object code is very compact. And again we are designing for comfort as much as for speed. This is a huge undertaking because we are writing the tool chain from scratch. The result, though, will be outstanding. Sneak preview here: http://splatco.com/splatbasic/ includes some performance figures.

I have sometimes wondered about a completely custom processor. For us the decider is always cost. I can buy 5 or more ARM7 chips, loaded with peripherals, for the price of one FPGA capable of being a native SPLat processor.

If I were working at the other end of the comfort/performance spectrum I would be very inclined towards a specialised processor, especially if there were certain frequent operations that could be given custom instructions.

David Stonier-Gibson http://splatco.com

PS: The Tensilica URL is broken because it acquired a trailing period.

Posted on 2010-02-11 19:53:11 at 2010-02-11 19:53:11

ashishbanerjee

ashishbanerjee
Total Posts: 2
Joined: Dec 2009

Jim, Very timely article indeed

Jim,
Very timely article indeed. Every engineer dreams of creating their own processor, I have been nurturing this pang since 22 years, from the time I started my career as a design engineer then I ventured into software development.
Recently, during weekends, I had been digging into the OpenSPARC Verilog source code, and hope to realize my 2 decade old dream.
I have been putting my thoughts on my blog,
http://fpga.ashishbanerjee.com/opensparc
The idea I am toying with is that what if we choose to create FPGAs synthesizable design of a popular virtual machine, that is literally drop the word virtual. For example, take the Java Virtual Machine and design a processor that can be synthesized into a FPGA? Then, you won't have to create your own tool chains, compilers and applications!

(The ideas are personal)

Posted on 2010-02-12 08:52:07 at 2010-02-12 08:52:07

Lord Loh.

Lord Loh.
Total Posts: 7
Joined: Dec 2009

I designed my first processor in

I designed my first processor in a grad class. A very basic one that just did arithmetic operations. But I was happy. I did what I wanted to do since my 12th grade.

What I really want is a processor with a FPGA block built into it so I may design my own peripherals. The closest I have seen to that is the ZMS-05 processor used in the Zii Egg.

I spoke about this with a professor and he told me that he had spoken about this with a TI guy. What the TI guy told him was that the fabrication technology required for processors and FPGAs are way different making it extremely hard to build on the same die.

I am not picky. I do not mind a non-monolithic chip if some one is fabricating it and is inexpensive enough for me to buy off the shelf.

Posted on 2010-02-15 11:01:14 at 2010-02-15 11:01:14

Jim Turley

Jim Turley
Total Posts: 18
Joined: Dec 2009

Paula- You're absolutely righ

Paula-

You're absolutely right about Tensilica's compiler auto-generating support for new instructions, and that's why I tossed in the comment to that effect. My point was that customizable processors don't enjoy the kind of independant third-party compiler support that "normal" fixed-ISA processors have. That's not necessarily a bad thing -- after all, how many compilers do you need? -- but it severely limits choice. And many programmers are quite fond of their compilers, which they'd have to give up with a customizable CPU.

Posted on 2010-02-16 11:11:02 at 2010-02-16 11:11:02

Jim Turley

Jim Turley
Total Posts: 18
Joined: Dec 2009

SPlatCo- Interesting story ab

SPlatCo-

Interesting story about your custom VMs; thanks for sharing that and good luck on the new one.

I agree with your final comment about cost. It's often tempting to design a custom processor for a specific job but it's rarely cost-effective. That's the old engineering-versus-business dilemma. Volume trumps everything, and the high volume of commercial processors (and their support tools) makes them very attractive, even if they're not perfect for the task. That's why we buy off-the-rack clothes, cars, and houses. You can't custom-design everything or you'd never get any work done! Or make any money...

Posted on 2010-02-16 11:17:01 at 2010-02-16 11:17:01

Jim Turley

Jim Turley
Total Posts: 18
Joined: Dec 2009

Ashishbanerjee- Let me save y

Ashishbanerjee-

Let me save you some time on that Java design -- don't do it.

It's impossible (IMHO) to design a native Java processor. It's been tried many times before by smart people with nearly infinite resources and it's failed every time.

Java is just too awkward, convoluted, and hideous to ever implement in hardware. Oh sure, you can make Java "accelerator" chips that help some parts of the language, but that's true of any microprocessor. Making a true Java processor is impossible. And pointless; software JVMs do just fine.

Even Sun Microsystems (now Oracle), the company that invented Java and had a strongly vested interest in seeing it succeed, developed three different Java processors and then killed off all three before they ever saw production. Nearly a dozen other companies did the same thing. If they all gave up, what does that tell us?

Posted on 2010-02-16 11:24:13 at 2010-02-16 11:24:13

Jim Turley

Jim Turley
Total Posts: 18
Joined: Dec 2009

Loh- There's good news and ba

Loh-

There's good news and bad news.

The good news is, there are companies that make the combo CPU-FPGA you're looking for. Check out Actel, Atmel, and Triscend (now part of Xilinx), and Altera.

The bad news is, your professor is right: CPUs and FPGAs do require different kinds of design and fabrication technology. Sort of. Implementing a CPU in a normal FPGA's programmable logic is a bad idea because the logic types don't match up well. But putting a CPU on the same chip as an FPGA is a different thing. They're quite happy to coexist on the same silicon die, side by side.

Posted on 2010-02-16 11:28:16 at 2010-02-16 11:28:16