Architecture
MSC8144E Reference Manual, Rev. 3
Freescale Semiconductor
2-3
2.1.1 Data Arithmetic Logic Unit (Data ALU)
The Data ALU performs arithmetic and logical operations on data operands in the MSC8144E.
The data registers can be read or written to memory over the Xa data bus and the Xb data bus as
8-bit, 16-bit, or 32-bit operands. The 64-bit wide data buses Xa and Xb data bus support the
transfer of several operands on a single access. The source operands for the Data ALU, which
may be 16, 32, or 40 bits, originate either from data registers or from immediate data. The results
of all Data ALU operations are stored in the data registers. All Data ALU operations are
performed in one clock cycle. Up to four parallel arithmetic operations can be performed in each
cycle. The destination of every arithmetic operation can be used as a source operand for the
operation immediately following, without any time penalty.
The components of the Data ALU are as follows:
A bank of sixteen 40-bit registers
Four parallel ALUs, each ALU containing a MAC unit and a BFU with a 40-bit barrel
shifter
Eight data bus shifter/limiter circuits, to allow limiting four 16-bit fractional words over
each of the 64-bit data buses in a single cycle.
All the MAC units and BFUs can access all the Data ALU registers. Each register is partitioned
into three portions: two 16-bit registers (low and high portion of the register) and one 8-bit
register (extension portion). The 16-bit high and low register portions are typically used as an
inputs for arithmetic operations. The full 40-bit register can be used as an input operand, but is
generally used as an output operand for most instructions. The two 64-bit wide data buses that
connect between the Data ALU register file and the memory enable a very high data bandwidth
between memory and registers. Load and store instructions utilize the maximum width of the bus
according to the application requirement because there are different versions of the instructions
for different bandwidths:
move.b loads or stores bytes (8-bit)
move.4b loads or stores four bytes (32-bit)
move.w or move.f loads or stores integer or fractional words (16-bit)
move.l loads or stores long words (32-bit)
move.2w
or
move.2f loads or stores double-integers and double-fractions, respectively
(32-bit)
move.4w or move.4f loads or stores quad-integers and quad-fractions respectively (64-bit)
move.2l loads or stores two long words (64-bits total)
With the ability to execute any two
MOVE
instructions in parallel every clock cycle, a maximum
data throughput of 12.8 GBps/16.0 GBps (at 800/1000 MHz) can be achieved between the
memory and the register file.
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 ...