On Tuesday, July 6, 2021 at 1:42:17 AM UTC-7, Ilya Tarasov wrote:
> > I have found, when trying to discuss MFX and the out-of-ordering of the instructions,
> > that people will say this is easy, and they read a magazine article about it, etc..
> > Maybe easily done by Chuck Norris! lol In practice, not done by anybody other than me.
> There are a lot of things which cannot be done from a first attempt. Yes, out-of-order
> is not an easy thing, and certainly require some exercices to get at least experience.
Well, I solved the out-of-ordering of the instructions for the MiniForth on the first attempt.
I had a solution that worked, anyway.
Steve Brault complained that in some cases my assembler's solution was not optimal.
It was possible to hand-code machine-language that did the same thing but was more
efficient in the sense of having fewer NOP instruction inserted.
I said that it was necessary for the assembly-language programmer to help the assembler
by writing his code in a "riscified" manner. Steve Brault complained that this was not
documented anywhere and he did not know what I meant.
I said that this was very similar to what Michael Abrash described in:
"Zen of Code Optimization" that covered the Pentium with its U and V pipes.
The idea is simple. You hold values in registers for as long as possible. You don't load a
register and then immediately use the register. You load the register, you do something
unrelated, then you use the register --- the idea is that the unrelated code will parallelize
with loading the register and/or with using the register. I never heard any further complaints
from Steve Brault, so I assume he understood what I was telling him --- I never saw any of
his assembly-language code though (except the function that did 16-bit integer addition),
so I don't know what quality level he was achieving. I never saw any of the motion-control
code written in MFX because the motion-control program was proprietary to Testra.
John and Tom Hart were very afraid that I would steal it and go start my own company
selling motion-control boards in competition with Testra. That was paranoia. I wasn't
going to do that, and this was way beyond my ability anyway.
> It's funny many hobbyists expect that any problem will be solved by itself, simply
> because the Forth will be used.
Programmers tend to be overly focused on the programming language, and not
focused enough on algorithms --- but algorithms can be ported between languages.
Telling people about writing MFX doesn't impress them. They always tell me that
they don't use Forth so all of this is irrelevant --- they are C programmers.
In actuality, a VLIW processor could be built to run C code, and my assembler
ideas would transfer over to it smoothly. Nobody ever builds VLIW processors though.
You are the only person I am acquainted with who knows what a VLIW processor is.
Quite a lot of people use the term VLIW as a synonym for "super-duper."
We had a thread with this hilarious title: "Zero Instruction Computing?"
https://groups.google.com/g/comp.lang.forth/c/dPvjIMFtRVA/m/PEPLhCtvBgAJ
On Sunday, December 27, 2020 at 11:59:07 PM UTC-7,
gnuarm.del...@gmail.com wrote:
> It is a VLIW format with individual control points.
Whatever!