|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] RE: iSCSI CRC: A CRC-checking exampleSteve, You are right, but a minor point in assembly, this masking issue can be handled by a register designation rather than an actual instruction. This still leaves you with a 24 bit shift as an additional instruction to deal with. I was suggesting that we not change the current approach and would not support such a change. I questioned the need for the inversion of the stored CRC and if this is removed, it would mean fewer logic gates to implement or perhaps an exclusive-or rather than an inverter if you wished it to be programmable. I have no great concern one way of the other, but in reviewing all that is included in the CRC calculation, this inverted store is perhaps one area that is perhaps not needed if we were wishing to reduce complexity. Doug > > Just a small point - > If c is an unsigned 32 bit value and d is an unsigned 8 bit value, on > most machines for the non-reflected lookup I don't think the "&" is > necessary, is it? Shifting right 24 places ensures the first 24 bits > are 0. > > i.e For the non-reflected table lookup you have: > CRC32(c,d) (c=(c<<8)^crc32tab[(c>>24)^(d)]) > > and the same number of instructions as for the reflected case. > > As for all these issues about the reflection and the iversion, I suspect > we have all spent too much time worrying about this already. These must > be very minor issues - the important thing is that the specification > clearly state which way it is to be done. For those of us preparing to > implement the CRC in hardware, the arguments are very unsettling. Must > I now add even more gates to make the reflection and the inversion > programmable, in case the committee changes its mind? > > Steve > > > Douglas Otis wrote: > > > Follow on: > > > > Slight correction: > > > > For the non-reflected table lookup you have: > > CRC32(c,d) (c=(c<<8)^crc32tab[((c>>24)^(d))&0xFF]) > > > > For the reflected table lookup you have: > > CRC32(c,d) (c=(c>>8)^crc32tab[(c^(d))&0xFF]) > > > > Doug > >
Home Last updated: Tue Sep 04 01:03:56 2001 6315 messages in chronological order |