home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #16 / NN_1992_16.iso / spool / comp / arch / 8267 < prev    next >
Encoding:
Text File  |  1992-07-23  |  2.2 KB  |  45 lines

  1. Newsgroups: comp.arch
  2. Path: sparky!uunet!mcsun!Germany.EU.net!nixpbe!uranium!josef
  3. From: Josef Moellers <mollers.pad@sni.de>
  4. Subject: Re: CISC Microcode (was Re: RISC Mainframe)
  5. Sender: josef@nixpbe.sni.de (Moellers)
  6. Message-ID: <josef.711960222@uranium>
  7. Date: Fri, 24 Jul 1992 06:43:42 GMT
  8. References: <9207081402.AA25575@ucbvax.Berkeley.EDU> <GLEW.92Jul12214745@pdx117.intel.com> <BrE09F.4JK@metaflow.com> <1992Jul15.163217.434@urbana.mcd.mot.com> <BrM813.Du5@zoo.toronto.edu>
  9. Organization: Siemens Nixdorf Info.Sys. AG, Paderborn, Germany
  10. Lines: 33
  11.  
  12. In <BrM813.Du5@zoo.toronto.edu> henry@zoo.toronto.edu (Henry Spencer) writes:
  13.  
  14. >In article <1992Jul15.163217.434@urbana.mcd.mot.com> dfields@urbana.mcd.mot.com writes:
  15. >>There are several other cases in UNIX and I'm sure other OS's which
  16. >>are similar.  A block move that doesn't trash the cache is of great
  17. >>use to the OS.
  18.  
  19. >It's not obvious why you need special instructions for it, however.
  20. >If I recall correctly, the first MIPS chips had the physical address
  21. >space in their kernel virtual space *twice*:  the second was uncached,
  22. >specifically so you could do things like bulk data copying without
  23. >trashing the cache.
  24.  
  25. Not only "the first MIPS chips", but R2000/R3000/R4000 have two
  26. "segments" (kseg0 and kseg1), which are "unmapped", i.e. are a 1:1 image
  27. of the physical address space which is 512 MBytes.
  28. kseg0 is at virtual addresses 0x80000000 to v.a. 0x9fffffff
  29. kseg1 is at virtual addresses 0xa0000000 to v.a. 0xbfffffff
  30. kseg0 is cached, kseg1 is uncached.
  31. Both "map" to phisical addresses 0x00000000 to 0x1fffffff.
  32. BTW virtual addresses 0x00000000 to 0x7ffffffff is (mapped, cached) user
  33. space (kuseg), v.a. 0xc0000000 to 0xffffffff is (mapped, cached) kernel
  34. space (kseg2/ksseg-kseg3).
  35.  
  36. IMHO the main reason for having both is
  37. - to have the cached segment for normal data accesses to/from memory
  38. - to have the uncached segment for accesses to (among others) I/O
  39.   registers that are memory mapped. Imagine what would happen if You
  40.   continuously polled a cached I/O register B-{)
  41. -- 
  42. | Josef Moellers        | c/o Siemens Nixdorf Informationssysteme AG  |
  43. |  USA: mollers.pad@sni-usa.com    | Abt. STO-XS 113       | Riemekestrasse   |
  44. | !USA: mollers.pad@sni.de    | Phone: (+49) 5251 835124 | D-4790 Paderborn |
  45.