1. A method for protecting data in a PCI-Express device, comprising: (a) receiving data at a PCI-Express Transaction Handler (“PTH”) Module for the PCI-Express device; (b) verifying a first error correction code (“ECC”) for the received data; (c) before data is aligned by the PTH module, generating ECC for every byte of data that is received in step (a); (d) aligning the data after the ECC is generated in step (c); (e) without having to regenerate ECC for the aligned data, verifying the ECC generated in step (c) after the data is aligned; and (f) before sending the data to a destination, generating ECC code for a data block size, wherein the data block size depends on the destination of the data.