Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Newbie questions regarding CPU design.

112 views
Skip to first unread message

Aleksandar Kuktin

unread,
Jun 5, 2013, 8:36:54 PM6/5/13
to
Hello everyone!

I'm currently trying to make a CPU and I have a few questions regarding
that.

I am doing this because I want to make industrial robots (CNC machines to
be exact), and they will obviously need some method to control them.
Although I first considered making dumb circuts to do this, I eventually
settled on the computer aproach.

I am also trying to make a new CPU out of thin air instead of taking an
existing one because I know very little about the internal designs and
constrains of existing CPUs and that will give me big problems when
interfacing and itegrating it with the rest of the command and control
circuts. It will also expose me to royalties and other non-goodies and I
want to skirt around that, if anyhow possible.

And besides, how hard can it be? :-) I only need like 5-6, or 12
instructions, tops. :-)

The CPU is meant to run on FPGA-s and PLD-s, at least for some time.

So, the questions.

1. Are there any currently existing, documented, royalty-free instruction
sets that already have assemblers (and hopefully compilers, but that is
optional) implemented, AND are simple to implement?
For example, I know that the PDP-11 ISA is sufficiently old to be free(-
as-in-freedom), and it has good compilers and assemblers (GCC was
originaly written for PDP-11), but its instructions are humongous. RISC
was invented to get rid of such bloated instructions.

2. Has anyone ever gotten away with implementing a hardware LISP
interpreter? I'm toying with this idea in my head right now. The reason
this idea (however zany it may be) is making rounds in my head is
because, AFAIK, LISP was invented because writing an interpreter for it
was sufficiently simple plus the language was (and still is) ludicrously
expresive. I still haven't gotten around to actually reading the original
LISP papers so I'm not sure if this is all merely conjecture on my part
or if it is all really that simple.

3. Has anyone ever gotten away with making a double-pumped CPU? IOW, a
CPU which executes an instruction every clock change, that is, two
instructions per clock cycle.

William Clodius

unread,
Jun 5, 2013, 10:47:50 PM6/5/13
to
While not strictly hardware LISP interpretters there were processors
developed specifically to run LISP, with instructions some of which
mapped to the equivalent of statically typed LISP instructions.

http://en.wikipedia.org/wiki/Lisp_machine

MitchAlsup

unread,
Jun 6, 2013, 12:13:28 AM6/6/13
to
On Wednesday, June 5, 2013 7:36:54 PM UTC-5, Aleksandar Kuktin wrote:
> 1. Are there any currently existing, documented, royalty-free instruction
> sets that already have assemblers (and hopefully compilers, but that is
> optional) implemented, AND are simple to implement?
> For example, I know that the PDP-11 ISA is sufficiently old to be free(-
> as-in-freedom), and it has good compilers and assemblers (GCC was
> originaly written for PDP-11), but its instructions are humongous. RISC
> was invented to get rid of such bloated instructions.

Err, no, RISC was meant to get rid of the bloat from VAX not PDP-11. The
only real problem with PDP-1 is address space.

> 3. Has anyone ever gotten away with making a double-pumped CPU? IOW, a
> CPU which executes an instruction every clock change, that is, two
> instructions per clock cycle

MIPS R4000

Tom Gardner

unread,
Jun 6, 2013, 4:43:37 AM6/6/13
to
The FPGA manufacturers have their own "soft cpu" cores
which are implemented inside FPGAs, typically in C.

Consider the processing power that you actually need.
There are many remarkably cheap remarkably capable
processors available off the shelf.

Consider the hardware that you need, both for the functions
your application requires and also to "harden" the hardware
so it can function in a difficult physical environment.
There are many off-the-shelf processor and processor+FPGA
boards out there.

Don't underestimate the time required to re-invent tools,
e.g. compilers, debuggers.

Creating your own processor is great fun and you will
learn a lot, but it probably isn't cost-effective.

Terje Mathisen

unread,
Jun 6, 2013, 4:53:59 AM6/6/13
to
The fast core of the Pentium-4?

Terje
--
- <Terje.Mathisen at tmsw.no>
"almost all programming can be viewed as an exercise in caching"

Noob

unread,
Jun 6, 2013, 5:13:38 AM6/6/13
to
Aleksandar Kuktin wrote:

> I'm currently trying to make a CPU and I have a few questions regarding
> that.
>
> I am doing this because I want to make industrial robots (CNC machines to
> be exact), and they will obviously need some method to control them.
> Although I first considered making dumb circuts to do this, I eventually
> settled on the computer aproach.

I think comp.arch.embedded is a better place for this kind of question.

Regards.

Paul A. Clayton

unread,
Jun 6, 2013, 8:26:27 AM6/6/13
to
On Jun 6, 12:13 am, MitchAlsup <MitchAl...@aol.com> wrote:
> On Wednesday, June 5, 2013 7:36:54 PM UTC-5, Aleksandar Kuktin wrote:
[snip]
>> 3. Has anyone ever gotten away with making a double-pumped CPU? IOW, a
>> CPU which executes an instruction every clock change, that is, two
>> instructions per clock cycle
>
> MIPS R4000

Really? I thought the R4000 was just hyperpipelined (for
the time), i.e., using a faster clock, not using both phases
of a clock (which seems to be what the OP is asking about).
Even the Pentium4's "fireball" ALU section used (if I
understand and recall correctly) a second double-speed clock.

Perhaps some early 8-bit microprocessors used two clock
phases to avoid needing a clock multiplier, but those would
probably not even have been pipelined (so less than one
instruction per transition).

Robert Swindells

unread,
Jun 7, 2013, 2:29:36 PM6/7/13
to
On Wed, 05 Jun 2013 20:47:50 -0600, William Clodius wrote:

> Aleksandar Kuktin <aku...@gmail.com> wrote:
>> 2. Has anyone ever gotten away with implementing a hardware LISP
>> interpreter? I'm toying with this idea in my head right now. The reason
>> this idea (however zany it may be) is making rounds in my head is
>> because, AFAIK, LISP was invented because writing an interpreter for it
>> was sufficiently simple plus the language was (and still is)
>> ludicrously expresive. I still haven't gotten around to actually
>> reading the original LISP papers so I'm not sure if this is all merely
>> conjecture on my part or if it is all really that simple.
>
> While not strictly hardware LISP interpretters there were processors
> developed specifically to run LISP, with instructions some of which
> mapped to the equivalent of statically typed LISP instructions.
>
> http://en.wikipedia.org/wiki/Lisp_machine

There was not very much special hardware in Lisp Machines, at least the
MIT/LMI/Texas Instruments ones, just an easy way of extracting 16 bit
macroinstructions from 32 bit memory words and support for fast switch
instructions, other than this they were 3 address load/store machines.

There are several CPU architectures that have FPGA implementations and
modern Lisp compilers available - MIPS, SPARC, 68k etc...

Robert Swindells

Joe Pfeiffer

unread,
Jun 8, 2013, 8:16:54 PM6/8/13
to
Aleksandar Kuktin <aku...@gmail.com> writes:

> Hello everyone!
>
> I'm currently trying to make a CPU and I have a few questions regarding
> that.
>
> I am doing this because I want to make industrial robots (CNC machines to
> be exact), and they will obviously need some method to control them.
> Although I first considered making dumb circuts to do this, I eventually
> settled on the computer aproach.
>
> I am also trying to make a new CPU out of thin air instead of taking an
> existing one because I know very little about the internal designs and
> constrains of existing CPUs and that will give me big problems when
> interfacing and itegrating it with the rest of the command and control
> circuts. It will also expose me to royalties and other non-goodies and I
> want to skirt around that, if anyhow possible.
>
> And besides, how hard can it be? :-) I only need like 5-6, or 12
> instructions, tops. :-)

What's the real goal of the project? If it's really industrial robots,
you're going just about as far out of your way to make things difficult
for yourself as possible. The interface requirements for processors
that are aimed at the industrial control market are well documented and
easy to achieve. Just pick one and be done with it.
0 new messages