In article <2cpur41022f7ug3ql1mknldgq88lebftju@4ax.com>, Jonathan Bromley <jonathan.bromley@MYCOMPANY.com> wrote:>On Tue, 17 Mar 2009 03:46:55 -0500, Hal Murray wrote: > >>You can simplify the hardware a lot by pushing >>the stack overflow problem back to the compiler. >>That is, the stack has a fixed size. The compiler >>can't generate code that overflows that limit. > >OK. > >Getting the compiler to limit the stack size is >clearly possible (Transputer, anyone? it had a >3-register stack). But this is certain to >cause more memory references to escape to >memory. It's a compromise, like everything else.This 3 level stack already covered a great deal of formulas to calculcate. There is also a one byte instruction to fetch one of 16 memory locations, probably located in on chip ram. You may think of those as registers, and below that as explicit microcoding.> >>>Unfortunately the stack cache trashes multi-threading >>>performance, because there is so much context to swap. >[...] >>I don't understand that comment. Multi-threading requires >>separate stacks. That's just more RAM in the CPU > >Yes, but if a large swath of CPU register space is used >to cache the top-of-stack, then that cache must be >saved and restored on a context switch. You can only >provide a finite number of stack spaces in the CPU's >on-chip RAM, so at some point a context switch is >sure to entail a large penalty as some other thread's >stack cache must be evicted to main memory. > >Shallower on-chip stack cache means slower single- >thread performance, but faster context switch and >the opportunity to keep more threads' stacks >on-chip. Compromises again.The shallow stack of the transputer is lost on context switches for equal priority task. Together with the limitation where context switches could occur (only on conditional jumps) this accounts for a very practical design. (I would like to see a Ghz transputer with all the modern chip design tricks.)>-- >Jonathan Bromley, ConsultantGroetjes Albert -- -- Albert van der Horst, UTRECHT,THE NETHERLANDS Economic growth -- like all pyramid schemes -- ultimately falters. albert@spe&ar&c.xs4all.nl &=n http://home.hccnet.nl/a.w.m.van.der.horst
Zero operand CPUs
Started by ●March 16, 2009
Reply by ●March 18, 20092009-03-18
Reply by ●March 18, 20092009-03-18
In article <ebc3acb0-d9d7-47aa-bc80-c120670cc03a@s20g2000yqh.googlegroups.com>, Antti.Lukats@googlemail.com <Antti.Lukats@googlemail.com> wrote:>On Mar 17, 5:09=A0pm, rickman <gnu...@gmail.com> wrote: >> On Mar 17, 9:58=A0am, "Antti.Luk...@googlemail.com" >> >> >> >> >> >> <Antti.Luk...@googlemail.com> wrote: >> > On Mar 17, 3:24=A0pm, Jacko <jackokr...@gmail.com> wrote: >> >> > > Hi >> >> > > Three cheers for Chuck Moore, and his hidden friend Keep Less ;-) >> >> > > Another zero operand CPUhttp://nibz.googlecode.com >> >> > > cheers jacko >> >> > > Now available in free licence of one core per ASIC/FPGA/CPLD, with tw= >o >> > > conditions. >> > > 1. A K Ring Technologies Logo must be printed atop the chip or close >> > > by on the PCB at any resolution. >> > > 2. Any documentation produced must acknowledge copyright and provide >> > > the URL. >> >> > > This licence is for those folks who do not like the BSD derived work >> > > restrictions. >> >> > the difference between zpu and nibz is that ZPU is supported >> > by GCC toolchain, while there are no tools to generate any >> > meaningful code for nibz >> >> > correct me if i am wrong >> >> > Antti >> >> Is that really the primary critera? =A0I think you are right. =A0But I >> have a similar CPU design that I expect to use on a project shortly >> and it will be programmed in assembly, but it will look a lot like >> Forth. =A0I consider that to be close enough to a high level language. >> >> BTW, ZPU may have a GCC compiler, but without a debugger, is that >> really useful? =A0There aren't many projects done in C that are debugged >> without an emulator. >> >> Rick- Hide quoted text - >> >> - Show quoted text - > >well assembler is GOOD if it exist :) > >so any soft-core with assembler is ok >but there is no assembler for nibz? so =3D=3D useless. >no C, no assembler, =3D=3D not possible to use :(I offer to write an assembler for euro 500 if it is of the complexity of an 68K, and for Euro 1000 if it is of the complexity of a DEC Alpha.>a non working somesort of forht partially adopted >but not really tested does not count as development tool. > >a simple assembler would. > >I personally dont like C, but unfortunatly can not fully avoid it >either > >AnttiNow we are at it, would it not be a nice inroad for Forth if we were to generate the back end of gcc by Forth Assemblers? [My post-it fix-up assembler could be beefed up to do BEGIN NAME HASH PLONK REPEAT where NAME fetches the next word, HASH does a perfect HASH (and takes care of numbers) and PLONK is a single toggle of bits into memory. There is no conditional code, except for error checking. Now the output of a compiler can be trusted ... ] Groetjes Albert -- -- Albert van der Horst, UTRECHT,THE NETHERLANDS Economic growth -- like all pyramid schemes -- ultimately falters. albert@spe&ar&c.xs4all.nl &=n http://home.hccnet.nl/a.w.m.van.der.horst
Reply by ●March 18, 20092009-03-18
On Mar 18, 8:45=A0am, rickman <gnu...@gmail.com> wrote:> On Mar 17, 7:06=A0pm, Jacko <jackokr...@gmail.com> wrote: > > > > > There is now a link on the instruction set page presenting an english > > text description of the BO instruction. All other instructions follow > > a similar symbology. > > Dude, you are really terrible at this. =A0In one place you tell people > about a CPU you designed with no specifics. =A0Another place you post a > link to a web page with very fuzzy descriptions of the instruction set > that is not usable. =A0Then here you post that you have added some more > explanation, but no link. =A0Are we supposed to search around to find > the link to your web page again? =A0I have no idea where to find it. > > I may not be very tactful, but I really am trying to help you, not be > insulting. =A0I hope it doesn't come off that way. > > RickYou are so right... I looked (again) the nibz web downloaded the most promising document (tagged FEATURED!) did not understand much, scrolled to the end of the document.. where on the last line stands: ".... ummmm ...." guess this is what we all should be doing: ummmmmmm now, if we compare nibz to Mproz3 then 1 mproz3 is MUCH smaller 2 has superiour docu 3 has VERY simple assembler with source code (single file just invoke gcc to compile it) mproz3 is now available in VHDL form, and succesfully working in Silicon Blue FPGA :) so it doesnt matter how many times the nibz may be better, without documentation and tools its useless for anybody except the author. Antti
Reply by ●March 18, 20092009-03-18
In comp.lang.forth Albert van der Horst <albert@spenarnc.xs4all.nl> wrote:> The shallow stack of the transputer is lost on context switches for > equal priority task. Together with the limitation where context > switches could occur (only on conditional jumps) this accounts for a > very practical design.Actually UNconditional jumps and lend (loop end). This was quite nice since you could prevent a context switch simply by ldc 0; cj L Andrew.
Reply by ●March 18, 20092009-03-18
\ FORTH Assembler for nibz \ \ Copyright (C) 2006,2007,2009 Free Software Foundation, Inc. \ This file is part of Gforth. \ Gforth is free software; you can redistribute it and/or \ modify it under the terms of the GNU General Public License \ as published by the Free Software Foundation, either version 3 \ of the License, or (at your option) any later version. \ This program is distributed in the hope that it will be useful, \ but WITHOUT ANY WARRANTY; without even the implied warranty of \ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the \ GNU General Public License for more details. \ You should have received a copy of the GNU General Public License \ along with this program. If not, see http://www.gnu.org/licenses/. \ \ Autor: Simon Jackson, BEng. \ \ Information: \ \ - Simple Assembler \ only forth definitions require asm/basic.fs also ASSEMBLER definitions require asm/target.fs HERE ( Begin ) \ The assembler is very simple. All 16 opcodes are \ defined immediate so they can be inlined into colon defs. \ primary opcode constant writers : BA 0 , ; immediate : FI 1 , ; immediate : RI 2 , ; immediate : SI 3 , ; immediate : DI 4 , ; immediate : FA 5 , ; immediate : RA 6 , ; immediate : SA 7 , ; immediate : BO 8 , ; immediate : FO 9 , ; immediate : RO 10 , ; immediate : SO 11 , ; immediate : SU 12 , ; immediate : FE 13 , ; immediate : RE 14 , ; immediate : SE 15 , ; immediate HERE SWAP - CR .( Length of Assembler: ) . .( Bytes ) CR
Reply by ●March 18, 20092009-03-18
Antti.Lukats@googlemail.com wrote:> On Mar 18, 8:45 am, rickman <gnu...@gmail.com> wrote: >> On Mar 17, 7:06 pm, Jacko <jackokr...@gmail.com> wrote: >> >> >> >>> There is now a link on the instruction set page presenting an english >>> text description of the BO instruction. All other instructions follow >>> a similar symbology. >> Dude, you are really terrible at this. In one place you tell people >> about a CPU you designed with no specifics. Another place you post a >> link to a web page with very fuzzy descriptions of the instruction set >> that is not usable. Then here you post that you have added some more >> explanation, but no link. Are we supposed to search around to find >> the link to your web page again? I have no idea where to find it. >> >> I may not be very tactful, but I really am trying to help you, not be >> insulting. I hope it doesn't come off that way. >> >> Rick > > You are so right... > I looked (again) the nibz web > > downloaded the most promising document (tagged FEATURED!) > > did not understand much, scrolled to the end of the document.. > where on the last line stands: > > ".... ummmm ...." > > guess this is what we all should be doing: ummmmmmm > > now, if we compare nibz to Mproz3 > > then > 1 mproz3 is MUCH smaller > 2 has superiour docu > 3 has VERY simple assembler with source code (single file just invoke > gcc to compile it) > > mproz3 is now available in VHDL form, and succesfully working in > Silicon Blue FPGA :) > > so it doesnt matter how many times the nibz may be better, without > documentation > and tools its useless for anybody except the author. > > Antti > > > >Antti - where did you find the mproz3 design? My google searches consistently turn up ftp://137.193.64.130/pub/mproz/mproz3.zip, but this server appears to be down. Do you know of a mirror for this. Also, from what I've been able to read, this design was originally a schematic design. Did you convert it? How does it compare to picoblaze in size, execution speed, and code density? -Urb
Reply by ●March 18, 20092009-03-18
On Mar 18, 2:36=A0pm, Jacko <jackokr...@gmail.com> wrote:> \ FORTH Assembler for nibz > \ > \ Copyright (C) 2006,2007,2009 Free Software Foundation, Inc. > > \ This file is part of Gforth. > > \ Gforth is free software; you can redistribute it and/or > \ modify it under the terms of the GNU General Public License > \ as published by the Free Software Foundation, either version 3 > \ of the License, or (at your option) any later version. > > \ This program is distributed in the hope that it will be useful, > \ but WITHOUT ANY WARRANTY; without even the implied warranty of > \ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. =A0See the > \ GNU General Public License for more details. > > \ You should have received a copy of the GNU General Public License > \ along with this program. If not, seehttp://www.gnu.org/licenses/. > \ > \ Autor: =A0 =A0 =A0 =A0 =A0Simon Jackson, BEng. > \ > \ Information: > \ > \ - Simple Assembler > > \ only forth definitions > > require asm/basic.fs > > =A0also ASSEMBLER definitions > > require asm/target.fs > > =A0HERE =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 ( Begin ) > > \ The assembler is very simple. All 16 opcodes are > \ defined immediate so they can be inlined into colon defs. > > \ primary opcode constant writers > > : BA 0 , ; immediate > : FI 1 , ; immediate > : RI 2 , ; immediate > : SI 3 , ; immediate > > : DI 4 , ; immediate > : FA 5 , ; immediate > : RA 6 , ; immediate > : SA 7 , ; immediate > > : BO 8 , ; immediate > : FO 9 , ; immediate > : RO 10 , ; immediate > : SO 11 , ; immediate > > : SU 12 , ; immediate > : FE 13 , ; immediate > : RE 14 , ; immediate > : SE 15 , ; immediate > > =A0HERE =A0SWAP - > =A0CR .( Length of Assembler: ) . .( Bytes ) CRJacko, if you want other to understand, please make simple example: 1) test source file: TEST.ASM =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D inset asm op codes to write value 0xAA55 to IO address 0x2233 here =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D 2) provide some executable file such that: jackocompiler.exe TEST.ASM >TEST.BIN produces a code ready to load into FPGA block ram and when executed will write AA55 to address 2233 saying this is part of GForth... so what is ? you are part of GForth? nibz is? your assembler is? looking at your 2 LETTER code style, i have hard times to understand how to MOV OUTPORT, DATA we all belive what you do does makes sense for you but for others to use, ? no docu, no examples, no use.. eh i read you donation record, 0.00 so far eh my paypal account is at 0 too, otherwise i would donate the 42$ what i did estimate to be your total earnings... you do not need to try to rush so much, just do something properly.... B16 is also stack based soft-core, but it HAS an assembler please take a look, look how others have done assembler for stack machine, its ok to look, you dont have to todo everything from scratch Antti
Reply by ●March 18, 20092009-03-18
Hi, rickman wrote:> I have been following the development of the ZPU, a zero operand > processor for FPGAs. The primary intent is to design a CPU that can > span a range of sizes from very space efficient to high speed while > being efficient at running C code.What do you expect from something that does not need operands or has only the operand "0" zero? It can not do much useful things - ok, it could heat the room it is inside. The purpose of a processor is to combine operational procedures with one or more operands. It does these operations one by one. If the CPU gets zero operands at all, it's very simple to make it high speed or space efficient. It could be targeted by every language that has a NOP operation. I know, I do understand this in the wrong way, but it had to be told anyway. Regards, -Helmar
Reply by ●March 18, 20092009-03-18
On Mar 18, 2:49=A0pm, Paul Urbanus <urbpub...@hotmail.com> wrote:> Antti.Luk...@googlemail.com wrote: > > On Mar 18, 8:45 am, rickman <gnu...@gmail.com> wrote: > >> On Mar 17, 7:06 pm, Jacko <jackokr...@gmail.com> wrote: > > >>> There is now a link on the instruction set page presenting an english > >>> text description of the BO instruction. All other instructions follow > >>> a similar symbology. > >> Dude, you are really terrible at this. =A0In one place you tell people > >> about a CPU you designed with no specifics. =A0Another place you post =a> >> link to a web page with very fuzzy descriptions of the instruction set > >> that is not usable. =A0Then here you post that you have added some mor=e> >> explanation, but no link. =A0Are we supposed to search around to find > >> the link to your web page again? =A0I have no idea where to find it. > > >> I may not be very tactful, but I really am trying to help you, not be > >> insulting. =A0I hope it doesn't come off that way. > > >> Rick > > > You are so right... > > I looked (again) the nibz web > > > downloaded the most promising document (tagged FEATURED!) > > > did not understand much, scrolled to the end of the document.. > > where on the last line stands: > > > ".... ummmm ...." > > > guess this is what we all should be doing: ummmmmmm > > > now, if we compare nibz to Mproz3 > > > then > > 1 mproz3 is MUCH smaller > > 2 has superiour docu > > 3 has VERY simple assembler with source code (single file just invoke > > gcc to compile it) > > > mproz3 is now available in VHDL form, and succesfully working in > > Silicon Blue FPGA :) > > > so it doesnt matter how many times the nibz may be better, without > > documentation > > and tools its useless for anybody except the author. > > > Antti > > Antti - where did you find the mproz3 design? > > My google searches consistently turn upftp://137.193.64.130/pub/mproz/mpr=oz3.zip, but this server appears to be> down. Do you know of a mirror for this. Also, from what I've been able > to read, this design was originally a schematic design. Did you convert i=t?> > How does it compare to picoblaze in size, execution speed, and code densi=ty?> > -Urbspeed LOWER code density WORSE but: resources LESS addressing space LARGER the FTP seems to work and the VHDL translated version is now available, just uploaded http://groups.google.com/group/antti-brain/files?hl=3Den cheers Antti
Reply by ●March 18, 20092009-03-18
On 18 Mar, 11:48, "Antti.Luk...@googlemail.com" <Antti.Luk...@googlemail.com> wrote:> On Mar 18, 8:45=A0am, rickman <gnu...@gmail.com> wrote: > > > > > > > On Mar 17, 7:06=A0pm, Jacko <jackokr...@gmail.com> wrote: > > > > There is now a link on the instruction set page presenting an english > > > text description of the BO instruction. All other instructions follow > > > a similar symbology. > > > Dude, you are really terrible at this. =A0In one place you tell people > > about a CPU you designed with no specifics. =A0Another place you post a > > link to a web page with very fuzzy descriptions of the instruction set > > that is not usable. =A0Then here you post that you have added some more > > explanation, but no link. =A0Are we supposed to search around to find > > the link to your web page again? =A0I have no idea where to find it. > > > I may not be very tactful, but I really am trying to help you, not be > > insulting. =A0I hope it doesn't come off that way. > > > Rick > > You are so right... > I looked (again) the nibz web > > downloaded the most promising document (tagged FEATURED!) > > did not understand much, scrolled to the end of the document.. > where on the last line stands: > > ".... ummmm ...." > > guess this is what we all should be doing: ummmmmmmThe umm does make sense in terms of what the document was describing. There is now a featured download of the instruction set at http://nibz.googlecode.com> now, if we compare nibz to Mproz3 > > then > 1 mproz3 is MUCH smaller > 2 has superiour docu > 3 has VERY simple assembler with source code (single file just invoke > gcc to compile it)And has a self modifying code tendancy.> mproz3 is now available in VHDL form, and succesfully working in > Silicon Blue FPGA :)Excellent.> so it doesnt matter how many times the nibz may be better, without > documentation > and tools its useless for anybody except the author.In general true. cheers jacko





