henry@utzoo.UUCP (Henry Spencer) (03/14/86)
The latest "Hewlett-Packard Journal" (Jan 1986 issue) has an article on their new RISCish machine, which sounds moderately interesting. It has a relatively simple instruction set with pipelining at least semi-visible. It does not have overlapping register windows, but its compilers make a considerable effort to exploit its registers effectively; it sounds like they have put a lot of work into optimization. The most interesting part of the article is a section entitled "Addressing RISC Myths", which spends some time knocking down some of the standard objections. A summary follows; note that I'm summarizing HP's views rather than my own, although I agree with most of it. "An architected [i.e. microprogrammed] procedure call instruction is necessary for efficient procedure calls." Nope. Intelligent compilation on a RISC architecture can do better, by exploiting knowledge about register usage to produce non-worst-case code customized to the particular situation. One thing HP's compilers do is to identify "leaf" procedures which don't call anything else, and use a drastically streamlined calling convention for them. Things like register usage patterns of non-leaf procedures are also tailored for call speed. "The simple instructions available in RISC result in significant code expansion." Nope. Complex operations can be implemented in "millicode" (procedures with extremely streamlined calling conventions). Since this is normal executable code, it can be written using normal tools, stored in ordinary memory, and upgraded easily. Also, since it's not bound by most of the restrictions commonly found in microcode, it's much more practical to use customized millicode to exploit detailed knowledge of specific situations. E.g., a bulk-move operation can exist in a number of different versions so that the compiler can exploit knowledge of things like overlap, alignment, size, etc., rather than forcing microcode to rediscover this information at run time. Also, complex instructions are seldom used; millicode costs only when it is actually used. "RISC machines must implement integer multiplication as successive additions." Most integer multiplications in real programs are by small constants. A carefully-designed RISC machine with a good compiler can execute such multiplications *faster* than a CISC which has only a fully-general multiply instruction. HP's new machine has a few specialized instructions to help, notably "add" instructions which first shift one operand by 1-3 bits. Given these, "...multiplications by most constants with absolute values less than 1040 can be accomplished in fewer than five cycles". The millicode routines that handle more general cases still make an attempt to detect small operands, resulting in an average multiplication time of 20 cycles, comparable to a CISC iterative implementation. "RISC machines cannot support commercial applications languages." They mean COBOL, in particular. Nope. Most of the peculiar COBOL-oriented instructions in, say, the 370 are very seldom executed even by COBOL code. COBOL programs spend most of their time inside the operating system and other subsystems. Millicode is used for most low-level COBOL-oriented operations, again with the compiler working hard to exploit knowledge of the operands to pick the most streamlined millicode. HP has also provided some instructions to help the millicode. The result is compact and fast. -- Henry Spencer @ U of Toronto Zoology {allegra,ihnp4,linus,decvax}!utzoo!henry
kludge@gitpyr.UUCP (Scott Dorsey) (03/16/86)
If anyone out there has seen the HP spectrum and looked carefully at it, I'd like to hear your comments. From a cursory inspection it looks like an HP3000 (which has an interesting, albeit slow, stack architecture), with a mode bit, which, when set, puts the user into some sort of RISC mode. With the mode bit off, it runs HP3000 software at about the same speed as a 3000, and with it on, it runs some nonstandard kind of RISC software. It looks possible to run both modes at the same time for different processes, but I haven't seen the software support yet. MPE, maybe? I'd also like to see if they kept the 'privileged segments' concept on the RISC half... it was interesting to set one of the bits in your program header (usually using the disk editor), so that when the loader picked it up, it gave it privileged mode. Worst security I've seen lately. -- ------- Disclaimer: Everything I say is probably a trademark of someone. But don't worry, I probably don't know what I'm talking about. Scott Dorsey " If value corrupts Kaptain_kludge then absolute value corrupts absolutely" ICS Programming Lab (Where old terminals go to die), Rich 110, Georgia Institute of Technology, Atlanta, Georgia 30332 ...!{akgua,allegra,amd,hplabs,ihnp4,seismo,ut-ngp}!gatech!gitpyr!kludge USnail: Box 36681, Atlanta GA. 30332
daver@hp-pcd.UUCP (daver) (03/19/86)
> If anyone out there has seen the HP spectrum and looked carefully at >it, I'd like to hear your comments. From a cursory inspection it looks >like an HP3000 (which has an interesting, albeit slow, stack architecture), Dave Patterson, of Berkeley, wrote the first paper proposing a RISC architecture after spending some time working at HP, and, except for the register windows, which resemble a feature of the TI 9900 processor, his proposed machine closely resembled the micro-machine in the old HP3000s, even to the names of the fields in an instruction. In effect, his RISC machine had user programs written in microcode. It shouldn't be surprising if a RISC machine resembles the HP3000. Dave Rabinowitz hplabs!ho-pcd!daver
hansen@mips.UUCP (Craig Hansen) (03/21/86)
> > If anyone out there has seen the HP spectrum and looked carefully at > >it, I'd like to hear your comments. From a cursory inspection it looks > >like an HP3000 (which has an interesting, albeit slow, stack architecture), > > Dave Patterson, of Berkeley, wrote the first paper proposing a RISC > architecture after spending some time working at HP, and, except for the > register windows, which resemble a feature of the TI 9900 processor, his > proposed machine closely resembled the micro-machine in the old HP3000s, even > to the names of the fields in an instruction. In effect, his RISC machine > had user programs written in microcode. It shouldn't be surprising if a RISC > machine resembles the HP3000. > > Dave Rabinowitz > hplabs!ho-pcd!daver Spectrum (ahem, "Precision") isn't a stack architecture, and doesn't have an instruction set that resembles the HP3000. I won't comment on how Spectrum executes HP3000 code except to say that Spectrum doesn't have a mode bit (In "Soul of a New Machine" parlance, a bag on the side of the machine). Craig Hansen | "Evahthun' tastes MIPS Computer Systems | bettah when it ...decwrl!glacier!mips!hansen | sits on a RISC"
faunt@spar.UUCP (Doug Faunt) (03/21/86)
The HP-Spectrum has no HP3000 stack architecture mode. It is a register-to-register architecture with no support whatsoever for HP3000 emulation. Nevertheless, using one of three strategies involving different amounts of work on the part of the user, HP can get either comparable, or 2 times, or 5 times the performance of the fastest HP3000 (simulate, smart 'simulate', or recompile respectively).
kludge@gitpyr.UUCP (Scott Dorsey) (03/22/86)
In article <410@mips.UUCP> hansen@mips.UUCP (Craig Hansen) writes: >Spectrum (ahem, "Precision") isn't a stack architecture, and doesn't >have an instruction set that resembles the HP3000. >I won't comment on how Spectrum executes HP3000 code except to say >that Spectrum doesn't have a mode bit (In "Soul of a New Machine" >parlance, a bag on the side of the machine). Hmmm... the box runs code for a machine utterly unlike itself, without a mode bit. Sounds like software emulation to me, which is precisely what the HP rep screamed about it not using. I'm not even going to ask about this one... -- ------- Disclaimer: Everything I say is probably a trademark of someone. But don't worry, I probably don't know what I'm talking about. Scott Dorsey " If value corrupts kaptain_kludge then absolute value corrupts absolutely" ICS Programming Lab (Where old terminals go to die), Rich 110, Georgia Institute of Technology, Box 36681, Atlanta, Georgia 30332 ...!{akgua,allegra,amd,hplabs,ihnp4,seismo,ut-ngp}!gatech!gitpyr!kludge
cdshaw@watdragon.UUCP (Chris Shaw) (03/23/86)
After reading the article in March 3, Electronics, the HP people make much of the millicode concept.. i.e. small bursts of RISC instructions that do some higher-level task. In 3000 emulation, millicode would emulate individual instructions. I don't know exactly how 3000 emulation is done, but this seems to be the missing clue. All that's required is a small interpreter underneath the "3000 interface" to translate 3000 instructions to millicode lookup. Details were rather lacking in the Electronics article, but a little intuition leads to the conclusion above. Can anyone at HP comment? Chris Shaw watmath!watrose!cdshaw or cdshaw@watmath University of Waterloo Bogus as HELL !!!