home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #19 / NN_1992_19.iso / spool / comp / dcom / cellrel / 492 < prev    next >
Encoding:
Text File  |  1992-09-04  |  3.2 KB  |  93 lines

  1. Newsgroups: comp.dcom.cell-relay
  2. Path: sparky!uunet!stanford.edu!ames!sgi!rigden.wpd.sgi.com!rpw3
  3. From: rpw3@rigden.wpd.sgi.com (Rob Warnock)
  4. Subject: Re: AAL5-CRC32
  5. Message-ID: <pee6ubc@sgi.sgi.com>
  6. Sender: rpw3@rigden.wpd.sgi.com
  7. Organization: Silicon Graphics, Inc.  Mountain View, CA
  8. Date: Fri, 4 Sep 1992 18:30:18 GMT
  9. Lines: 82
  10.  
  11. de@fokus.gmd.de (Dirk Elias) writes:
  12. +---------------
  13. | I've got some questions and comments concerning AAL5-CRC32 calculation.
  14. | 1. Does anybody know something of fast software algorithms to compute CRC32?
  15. | The fastest I know is based on look-up tables and will take 16 instructions
  16. | per 32 bit. This results in about 70 MIPS for a bitrate of 150 Mbps!
  17. +---------------
  18.  
  19. Well, the fastest byte-at-a-time method I know (with a 1024-byte table) is:
  20.  
  21.     for (i = 0; i < size; ++i)
  22.         crc = (crc >> 8) ^ table[ (crc & 0xff) ^ data[i] ];
  23.  
  24. That's about 9 cycles/byte (or more), or 36 cycles/word. I suppose you could
  25. cut that in half if you used a 256 KB table and did it 16 bits at a time.
  26.  
  27. +---------------
  28. | Definitely to slow. So, if there is no possible software solution, let's 
  29. | take a look on the hardware, exclusively for AAL5-CRC32. You will need a
  30. | CRC-chip and glue-logic, consuming "lots" of board space and wasting power
  31. | for almost nothing!
  32. +---------------
  33.  
  34. Why do you say "lots" of board space? A similar parallel algorithm can be
  35. done is a small gate array, in less space than the buffers to drive the
  36. host bus.
  37.  
  38. +---------------
  39. | ...there are two major ways to calculate CRC by hardware. One is "on-the-fly"
  40. | while receiving a cell from the ATM layer... I just want to point out that
  41. | "context-switching" after every cell is lots of work, just to calculate CRC.  
  42. +---------------
  43.  
  44. BUT YOU HAVE TO DO IT ANYWAY! You have to extract a *lot* more "context" per
  45. cell than just the previous CRC. You need the buffer pointers & counts (or
  46. limits), descriptor-ring pointer (for some architectures), etc. The 32 bits
  47. for the CRC is "just" another pair of "by 16" SRAMs, indexed the same way
  48. as all the rest.
  49.  
  50. +---------------
  51. | Has anybody knowledge of CRC hardware, performing "context-switching" on
  52. | it's own? (something with integrated memory and some kind of control
  53. | interface)
  54. +---------------
  55.  
  56. Again, you have to do it anyway. Tacking the CRC task on the side is a fairly
  57. small thing...
  58.  
  59. +---------------
  60. | the other is "fly-by" upon transmitting a reassembled packet from the AAL
  61. | layer to the next higher layer... If I would like to have about 100 VC's
  62. | using AAL5 and I had to store every packet till it's completed, I would
  63. | have to allocate 64 KBytes for every VC.
  64. +---------------
  65.  
  66. Memory's cheap.
  67.  
  68. +---------------
  69. | Since there is still no CPCS-PDU header defined for AAL5, where a packet-size
  70. | information could be transmitted, I have to assume the maximum CPCS-PDU size!
  71. +---------------
  72.  
  73. Not necessarily. You could allocate "chunks" of buffer as the cells arrive
  74. (a simple linked list).
  75.  
  76. +---------------
  77. | This would result in several MBytes of interface-board memory. (Sometimes
  78. | I remember that S-BUS card size in my nightmares)
  79. +---------------
  80.  
  81. It's small, but so is "several MBytes" of RAM.
  82.  
  83.  
  84. -Rob
  85.  
  86. -----
  87. Rob Warnock, MS-9U/510        rpw3@sgi.com
  88. Silicon Graphics, Inc.        (415)390-1673
  89. 2011 N. Shoreline Blvd.
  90. Mountain View, CA  94043
  91.  
  92.