Execution Units
MSC8144E Reference Manual, Rev. 3
Freescale Semiconductor
26-63
address to write to KEU Key Data Registers[3–4] while using the KEU exclusively for the F9
integrity function.
Reading from either of these registers will result in an address error being reflected in the KEU
Interrupt Status Register.
26.4.6.16 KEU FIFOs
KEU uses an input FIFO/output FIFO pair to hold data before and after the encryption process.
Normally, the channels control all access to these FIFOs. For core processor-controlled
operation, a write to anywhere in the KEU FIFO address space enqueues data to the KEU input
FIFO, and a read from anywhere in the KEU FIFO address space dequeues data from the KEU
output FIFO.
Writes to the input FIFO go first to a staging register which can be written by byte, 4 bytes, or 8
bytes. When all 8 bytes of the staging register have been written, the entire 8 bytes are
automatically enqueued into the FIFO. If any byte is written twice between enqueues, it causes an
error interrupt of type AE from the EU. When writing the last portion of data, it is not necessary
to write all 8 bytes. Any last bytes remaining in the staging register are automatically padded with
zeros and forced into the input FIFO when the KEU End_of_Message Register is written.
The output FIFO is readable in byte, 4-byte, or 8-byte increments. When all 8 bytes of the header
are read, that 8 bytes is automatically dequeued from the FIFO so that the next 8 bytes (if any)
becomes available for reading. If any byte is read twice between dequeues, it causes an error
interrupt of type AE from the EU.
Overflows and underflows caused by reading or writing the KEU FIFOs are reflected in the KEU
Interrupt Status Register.
The KEU fetches data 64 bits at a time from the KEU Input FIFO. During F8 processing, the
input data is XORed with the generated keystream and the results are placed in the KEU Output
FIFO. During F9 processing, the input data is hashed with the integrity key and the resulting
MAC is placed in the KEU data out register. The output size is the same as the input size.
26.4.7 Random Number Generator (RNG)
The RNG is an execution unit capable of generating 64-bit random numbers. It is designed to
comply with the FIPS-140 standard for randomness and non-determinism. A linear feedback shift
register (LSFR) and cellular automata shift register (CASR) are operated in parallel to generate
pseudo-random data.
The RNG consists of six major functional blocks:
Bus interface unit (BIU)
Linear feedback shift register (LFSR)
Summary of Contents for MSC8144E
Page 1: ...MSC8144E Reference Manual Quad Core Media Signal Processor MSC8144ERM Rev 3 July 2009 ...
Page 48: ...MSC8144E Reference Manual Rev 3 xlviii Freescale Semiconductor ...
Page 86: ...MSC8144E Reference Manual Rev 3 1 38 Freescale Semiconductor Overview ...
Page 168: ...MSC8144E Reference Manual Rev 3 3 60 Freescale Semiconductor External Signals ...
Page 242: ...MSC8144E Reference Manual Rev 3 5 26 Freescale Semiconductor Reset ...
Page 314: ...MSC8144E Reference Manual Rev 3 8 24 Freescale Semiconductor General Configuration Registers ...
Page 414: ...MSC8144E Reference Manual Rev 3 10 14 Freescale Semiconductor MSC8144E SC3400 DSP Subsystem ...
Page 452: ...MSC8144E Reference Manual Rev 3 11 38 Freescale Semiconductor Internal Memory Subsystem ...
Page 520: ...MSC8144E Reference Manual Rev 3 12 68 Freescale Semiconductor DDR SDRAM Memory Controller ...
Page 1070: ...MSC8144E Reference Manual Rev 3 21 28 Freescale Semiconductor Timers ...