Groups | Search | Server Info | Login | Register


Groups > comp.lang.forth > #23698

Re: OT (slightly) What is the "best" processor for a new project?

From Bernd Paysan <bernd.paysan@gmx.de>
Newsgroups comp.lang.forth
Subject Re: OT (slightly) What is the "best" processor for a new project?
Date 2013-06-17 14:19 +0200
Organization 1&1 Internet AG
Message-ID <kpmurr$7m2$1@online.de> (permalink)
References <42eda5c9-8e7e-4520-b612-55b93cbfb1b3@g8g2000yqa.googlegroups.com>

Show all headers | View raw


Hugh Aguilar wrote:
> I never said the ARM+C approach was a good idea for a battery monitor.

You said something about the b16 not being "powerful enough" or so.

> I wouldn't have even thought that a battery monitor needed a micro-
> controller at all, but that it could be done with non-computer
> electronics.

Which shows just how little you know.

> I actually mentioned the 8051 family as having a lot of
> low-cost low-power-consumption options available, although every chip
> manufacture has this niche covered pretty well.

Yes, and I told you that an 8051 in silicon is 10 times the price of a b16.

> I don't think it is a good idea to compete in the arena of tiny
> applications that don't need a 16-bit processor, and for which low-
> cost and low-power-consumption are the only criteria. There are
> abundant micro-controllers already in this niche. I mentioned the 8051
> family, but there is also the PIC family (not including the PIC24
> which is a 16-bit processor, or the PIC32 which is a 32-bit
> processor). There is the 6805, COP8, MSP430, etc. --- pretty much
> every chip manufacturer has a micro-controller that is low-cost and
> low-power-consumption.

You miss the point.  The b16 is *not* a standard off-the-shelf part packaged 
in its own package, which would be significantly more expensive than the die 
area the b16 consumes.  This is an *embedded core*.  You can buy some 
embedded cores, e.g. 8051s, but they are significantly larger and therefore 
more expensive and power-hungry than the b16.

I got good salary from the projects where I put the b16 in, so for me, it 
turned out to be a good idea.  I don't have to drive taxis or climb roof-
tops, though I like climbing.

> Some applications do require a powerful micro-controller. The laser
> etcher that the MiniForth was used in, for example, had to be very
> fast. Normally in motion-control, the programmer just puts a delay
> after every move (maybe 20 milliseconds) to allow the vibration to
> dampen down, and the calculations for the next move are done at this
> time. Such a big delay isn't possible in a laser etcher, because the
> laser is continuously running and it will burn a hole in the material
> if it sits in one place too long --- the laser has to be moved
> smoothly and continuously so that it burns a nice consistent line in
> the material. This requires an "uber-powerful" micro-controller. It
> doesn't have to be 32-bit, because the calculations are all 16-bit,
> but it does have to be very fast.

Fine, so for your project, being powerful was necessary.  Do what's needed.

> Developing the MiniForth took upwards of a year, although only the
> first 6 months were full-time work. All of this time included both
> developing the processor, and getting the motion-control program to
> run on it --- a processor is useless without an application program
> running on it, so developing the processor was closely tied to getting
> the application program to run --- if the application program couldn't
> run, then the processor was changed to make it possible for the
> application to run. By comparison, you developed the B16 without any
> application in mind, and then searched for applications that were
> undemanding enough for the B16 to be used.

No, the b16 was developed with the applications in mind we had, and for 
which we used embedded PICs and 8051s, which didn't quite fit, were a lot 
more pain to use and develop.  That way, I didn't have to search for 
applications; the next project was just another good fit.

> If you only spent a few days developing the B16 ($200 worth of labor),
> then why do you invest so much pride in it? You make statements such
> as: "I know you don't understand how business works, which is why you
> are a taxi-driver." --- you're attacking me because I said that the
> 8051 family (or PIC family, or whatever) is usually used for low-cost
> low-power-consumption applications, although everybody knows that this
> is true --- you act like I shot your dog (or ran over it with my taxi-
> cab).

All you can do is to hurt others, and I want to tell you that it will hurt 
you back.

> Your B16 is a bad design, because it is limited to 32 instructions.
> This is way too restrictive, as it doesn't give you the opportunity to
> add new instructions without taking away existing instructions.

Or simply expand the slot to 6 bits... which had been done by my coworker 
for the first b16 project, because he wanted to add instructions, just like 
you.  This is a trivial exercise.  But remember Antoine de Saint-Exupéry: 
Perfection is not reached when there's nothing left to add, but when there's 
nothing left to take away.

> Normally in a Forth system, there are several hundred primitives.

A primitive is not necessarily an instruction.  And a threaded code system 
has many primitives just for performance reasons, since the high-level 
overhead is too high.  This doesn't apply to a Forth CPU.

> The
> MiniForth allowed for as many primitives as we wanted, until the
> 64Kword code memory was full (and the later versions of the MiniForth
> had 128Kword code memory). In MFX and the motion-control program,
> there were thousands of primitives written (although a lot of those
> were ghost primitives that never materialized because they were never
> used) --- anyway, you need at least one or two thousand primitives for
> any kind of serious application program.

The mind boggles.  But when I read what you do, the mind boggles all the 
time.  We make Forth look bad, because we don't do it your way.

> Your B16 is just hugely restrictive. You don't have local variables,
> you don't have a lot of things --- all you have are your 32 primitives
> that you decided somehow are the basis for everything. Apparently you
> used your big Forth expertise that you acquired from being a
> Forth-200x member to decide which 32 primitives are fundamental (like
> God deciding which elemental particles all matter can be made from).

Those are the 32 primitives which makes sense for the b16 applications, and 
they don't have anything to do with the big Forth experience.  For a big 
Forth, you need some other primitives; you need locals, you may need OOP and 
structure support instructions (fetch pointer+offset) and such.  For a 
typical b16 application, locals are not at all necessary.

> That is incredibly restrictive. Mark Wills showed me the design for
> some other guy's Forth processor which was similar, although it had 64
> primitives rather than just 32 --- I said the same thing, that this
> was too restrictive, but he didn't listen to me either --- all this
> stuff makes Forth look bad, giving WJ fuel for saying that Forth is
> only good for applications such as toilet flushers (or, in your case,
> battery monitors) which can actually be done with non-computer
> electronics (the venerable 555 timer).

This is just your knee-jerk reaction.  The battery chemistry of lithium ion 
batteries is not simple enough to just use a timer chip...  you have things 
like temperature- and aging-dependent residual capacity, which is 
unavailable.

> The MiniForth was designed in 1995. Would it really be that hard to do
> something similar now, two decades later, with the much improved
> hardware available in these modern times? And yet, I have never seen
> anything that compares to the MiniForth. Your B16 doesn't --- neither
> did that other guy's Forth processor, which had twice as many
> primitives as yours does --- and Chuck Moore's GA144 is just plain
> weird, and would not be usable for mundane applications such as motion-
> control. Nothing compares.

At least the b16 does motion control, with our LinuxTag demonstration 
roboter.  Not the same requirements as for a laser, though.

-- 
Bernd Paysan
"If you want it done right, you have to do it yourself"
http://bernd-paysan.de/

Back to comp.lang.forth | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Re: OT (slightly) What is the "best" processor for a new project? Hugh Aguilar <hughaguilar96@yahoo.com> - 2013-06-16 23:17 -0700
  Re: OT (slightly) What is the "best" processor for a new project? Bernd Paysan <bernd.paysan@gmx.de> - 2013-06-17 14:19 +0200
    Re: OT (slightly) What is the "best" processor for a new project? Hugh Aguilar <hughaguilar96@yahoo.com> - 2013-06-17 16:04 -0700
    Re: OT (slightly) What is the "best" processor for a new project? Hugh Aguilar <hughaguilar96@yahoo.com> - 2013-06-17 16:15 -0700
      Re: OT (slightly) What is the "best" processor for a new project? rickman <gnuarm@gmail.com> - 2013-06-18 00:01 -0400
        Re: OT (slightly) What is the "best" processor for a new project? Bernd Paysan <bernd.paysan@gmx.de> - 2013-06-19 15:33 +0200
          Re: OT (slightly) What is the "best" processor for a new project? rickman <gnuarm@gmail.com> - 2013-06-19 17:25 -0400
            Re: OT (slightly) What is the "best" processor for a new project? Hugh Aguilar <hughaguilar96@yahoo.com> - 2013-06-19 17:00 -0700
              Re: OT (slightly) What is the "best" processor for a new project? rickman <gnuarm@gmail.com> - 2013-06-20 18:35 -0400
          Re: OT (slightly) What is the "best" processor for a new project? Hugh Aguilar <hughaguilar96@yahoo.com> - 2013-06-19 17:38 -0700
            Re: OT (slightly) What is the "best" processor for a new project? Bernd Paysan <bernd.paysan@gmx.de> - 2013-06-20 12:51 +0200
              Re: OT (slightly) What is the "best" processor for a new project? anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-06-20 15:28 +0000
              Re: OT (slightly) What is the "best" processor for a new project? hughaguilar96@yahoo.com - 2013-06-20 18:39 -0700
                Re: OT (slightly) What is the "best" processor for a new project? Bernd Paysan <bernd.paysan@gmx.de> - 2013-06-21 14:50 +0200
                Re: OT (slightly) What is the "best" processor for a new project? hughaguilar96@yahoo.com - 2013-06-22 18:56 -0700
                Re: OT (slightly) What is the "best" processor for a new project? "WJ" <w_a_x_man@yahoo.com> - 2013-06-23 02:35 +0000
                Re: OT (slightly) What is the "best" processor for a new project? hughaguilar96@yahoo.com - 2013-06-22 20:48 -0700
                Re: OT (slightly) What is the "best" processor for a new project? Bernd Paysan <bernd.paysan@gmx.de> - 2013-06-23 14:49 +0200
                Re: OT (slightly) What is the "best" processor for a new project? hughaguilar96@yahoo.com - 2013-06-26 18:08 -0700
                Re: OT (slightly) What is the "best" processor for a new project? Bernd Paysan <bernd.paysan@gmx.de> - 2013-06-27 16:32 +0200
                Re: OT (slightly) What is the "best" processor for a new project? hughaguilar96@yahoo.com - 2013-06-30 10:10 -0700
                Re: OT (slightly) What is the "best" processor for a new project? rickman <gnuarm@gmail.com> - 2013-06-30 15:18 -0400
                Re: OT (slightly) What is the "best" processor for a new project? hughaguilar96@yahoo.com - 2013-06-30 16:01 -0700
                Re: OT (slightly) What is the "best" processor for a new project? rickman <gnuarm@gmail.com> - 2013-06-30 20:22 -0400
                Re: OT (slightly) What is the "best" processor for a new project? Bernd Paysan <bernd.paysan@gmx.de> - 2013-06-30 21:22 +0200
                Re: OT (slightly) What is the "best" processor for a new project? hughaguilar96@yahoo.com - 2013-06-30 15:52 -0700
                Re: OT (slightly) What is the "best" processor for a new project? Bernd Paysan <bernd.paysan@gmx.de> - 2013-07-01 02:02 +0200
                Re: OT (slightly) What is the "best" processor for a new project? hughaguilar96@yahoo.com - 2013-06-30 19:25 -0700
                Re: OT (slightly) What is the "best" processor for a new project? Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-07-01 02:34 -0500
                Re: OT (slightly) What is the "best" processor for a new project? rickman <gnuarm@gmail.com> - 2013-07-01 16:26 -0400
                Re: OT (slightly) What is the "best" processor for a new project? Bernd Paysan <bernd.paysan@gmx.de> - 2013-07-01 23:08 +0200
                Re: OT (slightly) What is the "best" processor for a new project? rickman <gnuarm@gmail.com> - 2013-07-01 18:10 -0400
                Re: OT (slightly) What is the "best" processor for a new project? "Elizabeth D. Rather" <erather@forth.com> - 2013-07-01 12:35 -1000
                Re: OT (slightly) What is the "best" processor for a new project? rickman <gnuarm@gmail.com> - 2013-07-01 18:42 -0400
                Re: OT (slightly) What is the "best" processor for a new project? "Elizabeth D. Rather" <erather@forth.com> - 2013-07-01 13:03 -1000
                Re: OT (slightly) What is the "best" processor for a new project? anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-07-02 07:20 +0000
                Re: OT (slightly) What is the "best" processor for a new project? "Elizabeth D. Rather" <erather@forth.com> - 2013-07-02 07:38 -1000
                Re: OT (slightly) What is the "best" processor for a new project? anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-07-02 07:24 +0000
                Re: OT (slightly) What is the "best" processor for a new project? Bernd Paysan <bernd.paysan@gmx.de> - 2013-07-02 13:02 +0200
                Re: OT (slightly) What is the "best" processor for a new project? "Rod Pemberton" <do_not_have@notemailnotq.cpm> - 2013-07-02 05:58 -0400
                Re: OT (slightly) What is the "best" processor for a new project? Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-07-02 03:34 -0500
                Re: OT (slightly) What is the "best" processor for a new project? hughaguilar96@yahoo.com - 2013-07-01 20:01 -0700
                Re: OT (slightly) What is the "best" processor for a new project? "WJ" <w_a_x_man@yahoo.com> - 2013-07-02 04:43 +0000
                Re: OT (slightly) What is the "best" processor for a new project? Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-07-02 03:41 -0500
                Re: OT (slightly) What is the "best" processor for a new project? "Rod Pemberton" <do_not_have@notemailnotq.cpm> - 2013-07-02 06:09 -0400
                Re: OT (slightly) What is the "best" processor for a new project? hughaguilar96@yahoo.com - 2013-07-02 13:51 -0700
                Re: OT (slightly) What is the "best" processor for a new project? daveyrotten <danw8804@gmail.com> - 2013-07-02 14:37 -0700
                Re: OT (slightly) What is the "best" processor for a new project? daveyrotten <danw8804@gmail.com> - 2013-07-02 14:56 -0700
                Re: OT (slightly) What is the "best" processor for a new project? Bernd Paysan <bernd.paysan@gmx.de> - 2013-07-03 00:30 +0200
                Re: OT (slightly) What is the "best" processor for a new project? Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-07-03 02:19 -0500
                Re: OT (slightly) What is the "best" processor for a new project? "Rod Pemberton" <do_not_have@notemailnotq.cpm> - 2013-07-03 05:18 -0400
                Re: OT (slightly) What is the "best" processor for a new project? hughaguilar96@yahoo.com - 2013-07-03 18:10 -0700
                Re: OT (slightly) What is the "best" processor for a new project? "Rod Pemberton" <do_not_have@notemailnotq.cpm> - 2013-07-03 05:30 -0400
                Static superinstructions(was: OT (slightly) What is the "best" ...) anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-07-03 14:33 +0000
                Re: Static superinstructions(was: OT (slightly) What is the "best" ...) Bernd Paysan <bernd.paysan@gmx.de> - 2013-07-04 00:41 +0200
                Re: OT (slightly) What is the "best" processor for a new project? hughaguilar96@yahoo.com - 2013-07-03 18:31 -0700
                Re: OT (slightly) What is the "best" processor for a new project? rickman <gnuarm@gmail.com> - 2013-07-02 16:44 -0400
                Re: OT (slightly) What is the "best" processor for a new project? "Rod Pemberton" <do_not_have@notemailnotq.cpm> - 2013-07-02 05:56 -0400
                Re: OT (slightly) What is the "best" processor for a new project? Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-07-02 05:58 -0500
                Re: OT (slightly) What is the "best" processor for a new project? "Rod Pemberton" <do_not_have@notemailnotq.cpm> - 2013-07-03 05:57 -0400
                Re: OT (slightly) What is the "best" processor for a new project? Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-07-03 06:43 -0500
                Re: OT (slightly) What is the "best" processor for a new project? rickman <gnuarm@gmail.com> - 2013-06-30 20:29 -0400
                Re: OT (slightly) What is the "best" processor for a new project? rickman <gnuarm@gmail.com> - 2013-06-27 10:58 -0400

csiph-web