home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #27 / NN_1992_27.iso / spool / comp / arch / 10892 < prev    next >
Encoding:
Text File  |  1992-11-18  |  3.9 KB  |  81 lines

  1. Newsgroups: comp.arch
  2. Path: sparky!uunet!ferkel.ucsb.edu!taco!rock!concert!decwrl!adobe!usenet
  3. From: zstern@adobe.com (Zalman Stern)
  4. Subject: Re: DEC Alpha architecture issues
  5. Message-ID: <1992Nov19.002740.7914@adobe.com>
  6. Sender: usenet@adobe.com (USENET NEWS)
  7. Organization: Adobe Systems Incorporated
  8. References: <1992Nov18.112407.2518@doug.cae.wisc.edu>
  9. Date: Thu, 19 Nov 1992 00:27:40 GMT
  10. Lines: 69
  11.  
  12. In article <1992Nov18.112407.2518@doug.cae.wisc.edu> keiths@cae.wisc.edu  
  13. (Keith Scidmore) writes:
  14. > 1. The DEC Alpha includes a conditional move instruction that they claim
  15. >    can be used to avoid using branches and the associated branch  
  16. penalties.
  17. >    I'm trying to evaluate the usefulness of this feature.  Can someone  
  18. tell
  19. >    me where I might find articles that discuss this or raw data that can  
  20. be
  21. >    used to calculate the advantages of such an instruction.  I'm not into
  22. >    compilers, and I need to know what kinds of situations an optimizing
  23. >    compiler could make use of this instruction.  Is it even practical?   
  24. Are
  25. >    there any compiler writers out there with opinions on this?
  26.  
  27. I don't have a good answer to your question, but conditional moves do seem  
  28. to be a win. SPARC version 9 includes them. The HP precision architecture  
  29. already has features that do much the same thing. And rumour has it some  
  30. MIPS architecture types like them too...
  31.  
  32. While on the subject, would it be a win to use a dummy memory location and  
  33. conditional move to optimize stores through pointers? For example, "if  
  34. (result != NULL) *result = 0" could be compiled into:
  35.     ; result in r4
  36.     ; dummy is in r5
  37.     cmoveq    r4, r5, r4    ; if (r4 == 0) r4 = r5
  38.     stl    r31, 0(r4)    ; *r4 = 0 (r31 is wired zero)
  39.  
  40. The dummy location could be allocated at the bottom of the stack frame or at  
  41. the global pointer location to save calculation of the pointer into a  
  42. register.
  43.  
  44. > 2. The Alpha architecture also includes a feature they call PALcode that
  45. >    allows the chip to have a sort of rom-bios.  Why is it useful to have
  46. >    this feature?  Supposedly Operating systems can make use of this for
  47. >    the implementation of certain system calls.
  48.  
  49. From the user visible instruction set architecture level, PALcode looks like  
  50. any other system call trap. The difference is in usage, and in an unwritten  
  51. promise to make PALcall fast enough to emulate certain operations. Usage  
  52. wise, DEC specifies a set of bindings from PALcall numbers to functions  
  53. which are supposed to be provided "by the hardware." That is they are below  
  54. the OS. These bindings a different for VMS and OSF/1. This is supposed to  
  55. allow hardware design flexibility while running the exact same OS binary.
  56.  
  57. I note two things about PALcode. First, you could do this with most other  
  58. architectures and application programs would be totally unaffected. (And in  
  59. fact there are prior examples of doing so. E.g. The cache flush system calls  
  60. on MIPS platforms.) Secondly the idea that PALcode comes with the hardware  
  61. is dubious. Its fine so long as the hardware builder and the OS vendor are  
  62. nice and cozy. If not, the OS vendor has to supply their own PALcode. When  
  63. new hardware comes out the OS will not run without new PALcode which will  
  64. have to be written by the OS vendor. No different than current OS  
  65. technology, but no better. The abstraction PALcode supports is good, but it  
  66. does not require as much hardware support..
  67.  
  68. > 3. Cray has annouced intention to build a 300 Teraflop machine based on  
  69. the
  70. >    alpha.  What is the word for 1000 teraflops?
  71.  
  72. The prefix for 10^15 is "Peta" hence it is a petaflop machine. The prefix  
  73. for 10^18 is "Exa" which you will need to know to describe the maximum  
  74. virtual address space of a 64 bit machine (16 or 18 exa bytes depending on  
  75. whether you think exabyte means 2^60 or 10^18).
  76.  
  77. --
  78. Zalman Stern           zalman@adobe.com            (415) 962 3824
  79. Adobe Systems, 1585 Charleston Rd., POB 7900, Mountain View, CA 94039-7900
  80.   "Yeah. Ask 'em if they'll upgrade my shifters too." Bill Watterson
  81.