Path: csiph.com!eternal-september.org!feeder.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Paul Rubin Newsgroups: comp.lang.forth Subject: Re: Ting's EP32 32 Bit Processor IP with eForth eBook is available now and the Project page started Date: Sun, 23 Apr 2017 19:09:45 -0700 Organization: A noiseless patient Spider Lines: 18 Message-ID: <87efwitv2u.fsf@nightsong.com> References: <87o9vm95mi.fsf@nightsong.com> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: mx02.eternal-september.org; posting-host="31f1087c76b8aada4fe154e7c0ed0e8b"; logging-data="19271"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18eAG2IIpuvEfHM9+CAMHCP" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) Cancel-Lock: sha1:ke+EfmhOLymGsGVHHJ9dXqxzBnk= sha1:n+Fmx2puUVfOmgWsc8qUvr+brRA= Xref: csiph.com comp.lang.forth:57942 rickman writes: > If usage were evenly distributed (which it isn't) 32 instructions > would each cover about 3% of the instruction usage. So unless you > have a very odd instruction requirement from your application 32 > instructions should be more than enough to cover the more frequently > used ones. You have to consider execution frequency and not just how often the instruction appears in the code. For example, if it's a DSP application and you don't have a multiplier, your code might call a small subroutine for multiplication, not changing the static instruction mix much, but executing a ton of shifts and adds at runtime. Therefore you might choose to use an FPGA with multiplier blocks and Forth primitives to use them. For other applications you might not want to commit those resources. Similarly if you're doing AES encryption, you can make a combinational circuit from a few hundred LUTs that does it in a few cycles instead of 1000s of Forth primitives, etc. That's what I mean by application-specialized instructions.