home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #26 / NN_1992_26.iso / spool / comp / sys / atari / st / tech / 5528 < prev    next >
Encoding:
Text File  |  1992-11-08  |  4.8 KB  |  95 lines

  1. Newsgroups: comp.sys.atari.st.tech
  2. Path: sparky!uunet!pipex!bnr.co.uk!bnrgate!corpgate!crchh327!bnr.ca!grier
  3. From: grier@bnr.ca (Brian Grier)
  4. Subject: Re: Falcon Bus
  5. Message-ID: <1992Nov07.223544.24829@bnr.ca>
  6. Sender: news@bnr.ca (News on crchh327)
  7. Nntp-Posting-Host: 131.253.206.80
  8. Organization: Bell Northern Research
  9. Date: Sat, 07 Nov 1992 22:35:44 GMT
  10. Lines: 83
  11.  
  12. > What do you mean by this? It is my understanding of the 68k that the bus has
  13. > always been asynchronous -- there is no fixed slot in the bus timing for
  14. > reading or writing. The processor simply waits until the data has been
  15. > transferred, when the peripheral asserts various lines to inform the 68k
  16. > that it's finished.
  17.  
  18. > Do you mean burst mode, used for cache filling?
  19.  
  20. The 68030 supports two memory access methods syncronous, and asyncronous.
  21. The memory controller uses a signal to inform the 68030 which type of
  22. memory access it will support. 
  23.  
  24. Syncronous memory accesses require 4 timing states to complete the access,
  25. while asyncronous memory accesses require 6 timing states. At 16 Mhz a
  26. timing state is 31.25 nanoseconds. Therefore using syncronous memory accesses
  27. the CPU can accesses memory every 125 nanoseconds, while using asyncronous 
  28. memory accesses the CPU can access memory every 187.5 nanoseconds. 
  29.  
  30. The 68030 instruction cache is filled by the CPU recognizing processor 
  31. states that will not access memory and will perform a memory read in advance
  32. based on the program counter. The 68030 data cache is filled only on reads
  33. to data space and they can not be anticipated.
  34.  
  35. I am not sure how Atari has implemented Burst Mode on the TT, but a typcial
  36. implementation with nibble-mode-ram is as follows:
  37.    1) On first access perform normal memory access, syncronous or asyncronous
  38.          memory access with as many wait states as needed.
  39.    2) On subsequent accesses, if they are sequential, remove the proper
  40.          number of wait states, and possible switch to syncronous access.
  41. This is actually implemented in the memory controller not the CPU.
  42.  
  43. > >My best guess is that when people get to the Falcon in the REAL world
  44. > >they increase the number of bits per pixel, causing a lot of extra time
  45. > >to be spent drawing things, like letters and numbers. You will pay a big
  46. > >price in performance for more bits per pixel on Atari systems. Refer to
  47. > >the description of pixel memory in either the developer docs or the Abacus
  48. > >internals guide.
  49.  
  50. > Please elaborate -- why do we pay for more bits per pixel on Atari systems?
  51.  
  52. Video memory consists of some number of bit planes. The video memory designer
  53. has several choices of memory organization, a pixel can be represented as
  54. a bit, a nibble, a byte, or a word. resulting in 16, 4, 2, or 1 pixels per
  55. word respectively. Which translates to 1, 4, 8, or 16 bits per pixel. Atari's
  56. chose to use the pixel is represented by one the bit per pixel method, 
  57. allowing 16 pixels per word in memory. This means that for the ST high res
  58. you need 1 32k byte section of memory. ST medium res requires 2 16k byte
  59. sections of memory, and ST low res requires 4 8k byte sections of memory.
  60. The video shifter is told what mode is being displayed and get the memory
  61. according to its pre-programmed algorithm.
  62.  
  63. Now that every one has the basic concepts of ST video memory lets look at
  64. what it takes to places a single dot on the screen. The X-Y co-ordinate
  65. is turned into an offset in memory, (X*Y)/16, next the correct bit in that
  66. word is determined, (X*Y) modulus 16, then that bit is either set or cleared 
  67. to give the desired result. Now we have only taken care of a 1 bit per pixel
  68. system. If you are in ST high res your done, if not then you have to take
  69. care of the remaining bits per pixel. We already have the memory offset and 
  70. the bit offset so be same bit set/clear operation must be repeated at each
  71. of the other sections of memory that comprise your display.
  72.  
  73. To summarize, to plot a pixel the offest, memory and bit, need to be calculated.
  74. Then for each bit plane the base address of that bit planes section is added 
  75. to the offset and the correct bit is set/cleared.
  76.  
  77. If you chose a memory configuration where all of the bits for a given pixel
  78. are contained in the same word the number of memory access is greatly reduced.
  79. Therefore if Atari had choosen a different implementation, 8bits/16 bits per
  80. pixel with all the bits for a given pixel in the same word MOST applications
  81. would run much faster.
  82.  
  83. So why would anyone implement video memory the way Atari did? The best reason
  84. would be CAD/CAM packages, where your drawings exist in many different planes.
  85. I can only guess at Atari's reason, so I wont. This memory organization does
  86. have other benefits. Software blitting of sections of the screen will be faster,
  87. horizontal lines can be drawn 16 pixels at a time, and polygons can be filled
  88. with amazing speed.
  89.  
  90. Brian, WS1S
  91. Bell Northern Research
  92. Research Triangle Park, NC
  93. bjgrier@bnr.ca
  94.  
  95.