Author: Robert Hyatt
Date: 11:28:42 07/02/03
Go up one level in this thread
On July 02, 2003 at 01:13:25, Eugene Nalimov wrote: >On July 02, 2003 at 00:02:57, Tom Kerrigan wrote: > >>On July 01, 2003 at 22:19:38, Eugene Nalimov wrote: >> >>>On July 01, 2003 at 21:15:35, Tom Kerrigan wrote: >>> >>>>On July 01, 2003 at 20:29:58, Robert Hyatt wrote: >>>> >>>>>>Really? Which RISC computers don't use 32 bit instructions? POWER, Alpha, SPARC, >>>>>>PA-RISC, MIPS, ARM, and probably some others I'm forgetting all use 32 bit >>>>>>instructions. >>>>> >>>>>Look again. IE addresses stretch the instruction way beyond 32 bits for >>>>>those instructions that need addresses. The sparc is an easy to find >>>>>example of this. IE the 32 bit sparc had instructions > 32 bits. >>>> >>>>Really? Which ones? >>> >>>"Load high" is a kludge added to the instruction set of nearly every recent RISC >>>CPU to resolve exactly that problem -- "how we can load 32-bit value when all >>>the instructions are 32 bits in length"? Conceptually, "load high/add immediate" >>>is one instruction. >> >>Oh, God. I knew that one of these ISAs allowed a 32-bit immediate following the >>instruction. I didn't think most of them did. That violates the RISC philosophy >>in so many ways. >> >>I thought most of these ISAs just had a 2nd load immediate instruction that >>loaded the immediate operand into the upper order bits of a register? > >Sorry, I was not clear enough. I was talking about exactly those two >instructions. RISC developers ended with 2 instructions instead of one because >of the limitation "all instruction should have the same length". That is what >Bob was talking about -- sometimes you need more than 32 bits to encode the >instruction. Of course you can split instruction into two. You can implement >"prefix instruction". You can invent instruction that will use some bits of the >next instruction as operand bits. That are all kludges. > >RISC code is longer than it should be, mainly because of that limitation. You >yourself pointed out that for majority of instructions 32 bits are too much. >Nevertheless, "all instructions should have the same length", and due to the >fact that you need longer immediate operands (or offsets) instructions cannot be >short, even ones that do not require those extra bits. > >I personally think that ARM choose right way in their Thumb2 instruction set. >You need a mixture of 16- and 32-bit instructions (probably with 48-bit >instructions as well), and instruction length should be easily deduciable from >the first instruction word. This way you can have both fast instruction >fetch/decode and compact code. > >Thanks, >Eugene You would probably like Seymour Cray (RIP) and you'd probably like his ISA design. :) Bob > >>Takes two instructions to load a 32 bit value into a register, but it's not like >>the program's memory footprint is any bigger, and it's not like you have to load >>such big values into registers very often... >> >>-Tom
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.