Groups | Search | Server Info | Keyboard shortcuts | Login | Register
Groups > comp.lang.forth > #23860
| Newsgroups | comp.lang.forth |
|---|---|
| Date | 2013-06-22 18:56 -0700 |
| References | (4 earlier) <kpsbuj$qbe$1@online.de> <170e58ea-f4c1-42c9-be67-985b4aafa2ec@n5g2000yqa.googlegroups.com> <kpumru$pm2$1@online.de> <fb88f560-45a5-4ff7-9ee9-45db6b518ea8@googlegroups.com> <kq1i61$7gp$1@online.de> |
| Message-ID | <9395b6eb-21c2-40f2-bcb7-cbff77d0918c@googlegroups.com> (permalink) |
| Subject | Re: OT (slightly) What is the "best" processor for a new project? |
| From | hughaguilar96@yahoo.com |
On Friday, June 21, 2013 5:50:09 AM UTC-7, Bernd Paysan wrote: > hughaguilar96@yahoo.com wrote: > > Also, who cares if a 16 by 16 addition is complicated? After it is > > written, it is a black box to the user, just like your 16 by 16 addition > > which is written in VHDL > > Verilog... I suppose when a 16 by 16 addition is complicated, it won't be > that fast, *and*, what's more important to business, it will take a long > time to write. This is somewhat tolerable, if you have people working at > minimum wages for you... but time to market usually matters. Just because it was complicated, doesn't mean that it wasn't fast. As I said, my assembler packed instructions together up to 5 per opcode all of which executed in parallel (one clock cycle per opcode). If a primitive parallelizes well, it can be quite fast even it the source-code is long and complicated. Of course, addition is inherently sequential because the carry has to propagate through, so it is not going to parallelize completely. > > --- the user doesn't concern himself with the > > internal workings of all this stuff, whether it is assembly-language or > > VHDL. > > This is not the Forth philosophy. The user has a big picture of what > problem he's solving, and understands how he does it. This big picture is > what you always avoided. The big picture was getting the motion-control program for the laser-etcher to run. We didn't avoid that. > > It is much more robust to have an assembly language to write primitives > > --- then you can have hundreds or even thousands of primitives, without > > increasing the complexity of the processor at all. > > I still think this is a fundamental design mistake to write 100s or 1000s of > primitives in a complicated assembler. The thing my coworkers liked from > the b16 is that you write your code in something a bit higher level than the > common assembler - in Forth. There are no real "primitives" on a Forth CPU. You are not being self-consistent. First you say that it is "Forth philosophy" for the user to be concerned with the internal workings of primitives, rather than to think of them as black boxes (as I recommended). Then you say that your coworkers liked to avoid concerning themselves with the internal workings of primitives (the Verilog), and only write in high-level Forth. Which is it? > There are a lot of small problems, and Forth is particularly good at solving > small problems. If you like to solve big problems, go and use some other > language. Small processors, for small problems, for small minds! If you think that Forth is not appropriate for solving big problems, then you should immediately resign from the Forth-200x committee --- admit that you lack vision and that you are dragging the entire Forth community down to your own level of incompetence. I like solving big problems in Forth --- that is because I've done it --- for people such as yourself who have never solved big problems in Forth, then it seems impossible, and so you say: "If you like to solve big problems, go and use some other language." > We Forthers rather redefine the problem until it becomes small > enough to be solvable with Forth. Good luck redefining that motion-control problem until it becomes small enough to be solvable by your B16! That is not going to happen! Maybe you can tell the customer: "We have redefined the problem to be small enough to be solvable in Forth, but unfortunately our product no longer meets your specifications." --- count on your fingers how many minutes your customer continues to be your customer. BTW: Over the weekend I remembered something which I had forgotten about. When the MiniForth project first started, it was very similar to your B16. There were going to be a small set of Forth primitives implemented in hardware, and everything above that would be colon words written in terms of that small set of primitives and other colon words. It was quickly determined that 16 primitives was not enough, and that the PLD wasn't big enough to support 64 primitives, so we were pretty much obliged to have 32 primitives (just like you B16). We spent several days trying to figure out which 32 primitives we needed. We decided, for example, that DUP wasn't necessary so long as >R R@ and R> were available, because it can be written as: : DUP >R R@ R> ; On the other hand, if you have DUP, then you don't need R@, because R@ can be written as: MACRO: R@ R> DUP >R ; So we spent days trying to figure out which 32 primitives were necessary, such that no function was impossible to write. It was during this time that the processor got named the "MiniForth," which is a reference to it having a minimal number of Forth primitives (32) in hardware. We also had to consider efficiency though. DUP and R@, for example, are so commonly used in most Forth programs that we felt they both ought to be primitives. Unfortunately, it is difficult to predict which primitives are going to be more commonly used than others --- which deserve to be in hardware and which can be colon words or macros --- although I think Anton Ertl has compiled lists of Forth primitives and their relative frequency of use in "typical" Forth programs, which might be useful in deciding which 32 primitives get to be written in stone (silicon). We spent about one week dinking around with this foolishness, and then common-sense kicked in --- we realized that this design would just result in a toy processor only suitable for toy programs, and that it would never be able to support the motion-control program which was the goal. So we dropped that nonsense, and switched over to the design I have described above with the assembly-language, and multiple instructions packed together in each opcode, and Harvard Architecture, and all that other good stuff. The name "MiniForth" stuck, although it was no longer a good description because we now could have thousands of primitives (Testra has since renamed it the RACE processor, most likely because the name "MiniForth" seemed to imply that it had only 32 primitives). For Bernd Payson however, common-sense never kicks in. Two decades later, you have your B16 based upon a design that Testra rejected in 1995, you are using an FPGA rather than a PLD, and you say: "If you like to solve big problems, go and use some other language."
Back to comp.lang.forth | Previous | Next — Previous in thread | Next in thread | Find similar
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: Static superinstructions(was: OT (slightly) What is the "best" ...) "Rod Pemberton" <do_not_have@notemailnotq.cpm> - 2013-07-07 11:32 -0400
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? "Rod Pemberton" <do_not_have@notemailnotq.cpm> - 2013-07-07 11:28 -0400
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