home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #16 / NN_1992_16.iso / spool / comp / arch / 8335 < prev    next >
Encoding:
Internet Message Format  |  1992-07-26  |  4.2 KB

  1. Path: sparky!uunet!charon.amdahl.com!amdahl!JUTS!cd.amdahl.com!jjs40
  2. From: jjs40@cd.amdahl.com (John Sullivan)
  3. Newsgroups: comp.arch
  4. Subject: Translating ML (was Re: MVC and MVCL)
  5. Message-ID: <65D202Zn1bIR01@JUTS.ccc.amdahl.com>
  6. Date: 26 Jul 92 17:56:03 GMT
  7. References: <1992Jul24.172258.22178@raid.dell.com> <1992Jul14.181115.1@eagle.wesleyan.edu> <e83w02h719R301@JUTS.ccc.amdahl.com> <BrM7Mw.DIp@zoo.toronto.edu> <1992Jul19.212901.8857@bcars64a.bnr.ca> <BrrBvA.E0w@zoo.toronto.edu> <1992Jul24.190506.6168@PA.dec.com>
  8. Sender: netnews@ccc.amdahl.com
  9. Organization: Amdahl Corporation, Sunnyvale CA
  10. Lines: 68
  11.  
  12. In article <dec.com>, ed@weir.pa.dec.com (Ed Gould) writes:
  13. >> And since most of the code is written in assembly language to begin
  14. >> with, compiler optimizations are moot.
  15. >
  16. >I don't think this necessarily follows.  For example, one of the compiled
  17. >languages for Alpha is Macro-32, i.e., VAX Assembly.  It's unusual to think
  18. >of what started out as an assembly language to be run through a compiler,
  19. >but there's nothing magic about it.
  20.  
  21. As I understand it, the ability to translate VAX assembly code to Alpha is
  22. highly dependent on the "good behavior" of the original VAX code, such
  23. as seperate data/code segments, no self-modifying code, well behaved OS calls,
  24. etc.  Obviously it's possible to handle these cases, but then your
  25. compile-time translation degenerates to run-time emulation with a big
  26. performance hit (and a lot of added complexity.)
  27.  
  28. Unfortunately for IBM/370 customers, very few of the above properties are
  29. guaranteed to hold for a given program.  Mixed code/data is very common and
  30. self-modifying code also happens frequently enough to be a concern.  This
  31. is a headache for our cache system - fortunately, we can spend the extra gates
  32. in a mainframe CPU to handle these cases quickly.
  33.  
  34. The IBM/370 also has a fairly-frequently used instruction called EX (for
  35. "execute") which basically feteches an instruction from a specified memory
  36. address and executes it, and then continues on to the next sequential
  37. instruction after the EX instruction.  This would be a major headache in
  38. translated code, because you'll have to jump in to emulation mode every
  39. time you encounter an EX instruction.  There are orders of magnitude of
  40. added complexity in trying to get this right over simple translation.
  41.  
  42. On a side note: To a pipelined IBM/370 CPU, EX just looks like a branch
  43. instruction, so it is handled very fast.  But, there are enough odd side
  44. effects that it still causes a lot of problems (solved, of course, by spending
  45. extra gates) for CPU designers.  For the curious RISC devotee, you can get
  46. the same effect as an EX - executing a single instruction in an arbitrary
  47. location - by executing two sequential delayed branch instructions.
  48.  
  49. As far as the OS goes, some IBM/370 applications tend to think of themselves
  50. as running on a full-fledged virtual machine (not just a user-state process)
  51. of their own (under the control of IBM's operating system, VM) and thus have
  52. control over page-tables, and user/supervisor states within the application.
  53. This is good for application performance (apparently, the ability to perform
  54. your own memory mapping and scheduling is good for very large databases.) but
  55. bad news for anyone trying to port to a new architecture. (Exactly as IBM 
  56. has always intended.)
  57.  
  58. --
  59.  
  60. Here's an interesting philosphical question:  If a new architecture
  61. (say, Alpha)
  62. is primarily used by customers to run translated code from an older 
  63. architecture (say, VAX) then what kind of synthetic effect will this
  64. have on 
  65. the priorities of the CPU designers in designing higher-performance
  66. future
  67. generations of their machine?  
  68.  
  69. For example, if translated code makes a lot of use of "compatibility" type
  70. features that were never intended to be very fast, will these features win
  71. out in gates in future versions of the CPU as opposed to spending the gates
  72. on improving the "better" features from the new architecture?  Will architects
  73. have to "dirty" their architecture in future versions by adding new features
  74. (say, byte-wide or unaligned loads) to support better performance on 
  75. translated code?
  76.  
  77. -- 
  78. John Sullivan, Engineer/Computer Development.   Email: jjs40@cd.amdahl.com.
  79. Amdahl Corporation, Sunnyvale CA.               Phone: (408)746-4688.
  80.