home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #20 / NN_1992_20.iso / spool / comp / sys / amiga / misc / 13796 < prev    next >
Encoding:
Text File  |  1992-09-12  |  4.0 KB  |  86 lines

  1. Newsgroups: comp.sys.amiga.misc
  2. Path: sparky!uunet!spool.mu.edu!darwin.sura.net!Sirius.dfn.de!tubsibr!duening
  3. From: duening@ibr.cs.tu-bs.de (Lars Duening)
  4. Subject: Re: 68010
  5. Message-ID: <1992Sep12.112215.10980@ibr.cs.tu-bs.de>
  6. Sender: postnntp@ibr.cs.tu-bs.de (nntp inews entry)
  7. Reply-To: duening@ibr.cs.tu-bs.de (Lars Duening)
  8. Organization: TU Braunschweig, Informatik (Bueltenweg), Germany
  9. References: <1992Sep6.180145.17394@cs.mun.ca> <starman.039m@crash.amigans.gen.nz> <4444@equinox.unr.edu> <1992Sep11.193814.58831@cc.usu.edu>
  10. Date: Sat, 12 Sep 1992 11:22:15 GMT
  11. Lines: 73
  12.  
  13. In <1992Sep11.193814.58831@cc.usu.edu> slb1b@cc.usu.edu (Holographic Banana)
  14. writes:
  15.  
  16. > In article <4444@equinox.unr.edu>, dollens@equinox.unr.edu (C Blake Dollens) writes:
  17. >> Someone on a local BBS suggested to me recently that a 68010 processor
  18. >> supports virtual memory.  My immediate response was no, because you
  19. >> need a PMMU for that purpose.  On the other hand, I realize that I
  20. >> know very little about the '010
  21.  
  22. > I was about to say NO when I pulled off Motorolla's Programmer's Reference
  23. > Manual. Page 1-8 (in part, I'm not typing the whole thing!)
  24.  
  25. > "...The MC68010/MC68012 provides hardware support for virtual memory with the
  26. > capability of suspending an instruction's execution when a bus error is
  27. > signaled and then completing the instruction after the physical
  28. > memory has been updated as necessary.
  29.  
  30. That's the important point: the 680x0 redo the failed access when
  31. returning from bus error exception. The good ol' 68000 just threw it
  32. away, thus aborting the whole program.
  33.  
  34. > "The MC68010/MC68012 uses instruction continueation rather than instruction
  35. > restart to support virtual memory.... when a page fault occurs the processor 
  36. > stores its internal state and then after the page fault is repaired, restores
  37. > that internal state and continues execution of the instruction. In order for
  38. > the MC68010/MC68012 to utilize instruction continuation, it stores
  39. > its internal state on the supervisor stack when a bus cycle is
  40. > terminated with a bus error signal. It then loads the program
  41. > counter from vector table entry number tow (offset $008) and resumes
  42. > program execution at the new address. When the bus error execption
  43. > hander routine has completed execution, and RTE instruction is
  44. > executed which reloads the MC68010/MC68012 with the internal state stored on
  45. > the stack, re-runs the faulted bus cycle, and continues the
  46. > suspended instruction....."
  47.  
  48. > This seems like a messy way to do it with MMUs available on the '020
  49. > and better. 
  50.  
  51. It's not messy at all - it's a must for utilizing a MMU. Hidden
  52. between the lines is that the bus error handler, a.k.a. swapper,
  53. determines the memory page of the failed access and loads it into
  54. memory (either by swapping it in from disk, or allocating it from
  55. scratch). The swapper then remaps the MMU to let the virtual address
  56. which caused the page fault point to the physical address space of the
  57. loaded page, and exits then. The instruction in question will now be
  58. continued, and since the memory accessed does now exist (at least
  59. virtually), the program will happily go on.
  60.  
  61. Another way to do would be that the bus error handler modifies the
  62. data dumped on the stack to allow continuation - but that's heavy and
  63. very evil magic.
  64.  
  65. > But an interesting intelectual exercize.  Am I wrong in thinking that
  66. > the entire 16Mb address area is mapped on the A500? If so, it would
  67. > render the aforementioned capability useless.
  68.  
  69. Yes and no: with an additional MMU it's possible to 'unmap' the
  70. address area.
  71.  
  72. > In a nutshell, VM is not available on the '010 in any practical sense.
  73.  
  74. Again yes and no: you need a MMU for real VM, and I am afraid that the
  75. available PMMU can't be used with the 68010. You have to built one
  76. yourself if you need it.
  77.  
  78. > ...
  79. > This is got to be one of the most controversial subject: '010 replacement vs.
  80. > leaving the bloody case on the A500 :-)
  81.  
  82. Add a 68010 and fast memory to your A500/A2000. If a program then runs from
  83. hard disk without errors, chances are that it'll run on every amiga.
  84.  
  85.  -- Lars
  86.