
Philips Semiconductors
DSPCPU Architecture
File: arch.fm5, modified 7/23/99
PRELIMINARY INFORMATION
3-7
each operation requires an issue slot that has an
instance of the appropriate functional unit type
attached
functional units should be ‘recovered’ from any prior
operation issues
Writeback constraint:
No more than 5 results should be simultaneously
written to the register le at any point in time (write-
back occurs ‘latency’ cycles after issue)
Figure 3-3 shows all functional units of TM1100, includ-
ing the relation to issue slots, and each functional unit’s
latency (e.g. 1 for CONST, 3 for FALU, etc.). With the ex-
ception of FTOUGH, each functional unit can except an
operation every clock cycle, i.e. has a recovery time of 1.
The binding of operations to functional unit types is sum-
tional unit and unit latency.
3.4
MEMORY AND MMIO
TM1100 defines four apertures in its 32-bit address
space: the memory hole, the DRAM aperture, the MMIO
memory hole covers addresses 0..0xff. The DRAM and
MMIO apertures are defined by the values in MMIO reg-
isters; the PCI apertures consist of every address that
does not fall in the other three apertures.
3.4.1
Memory Map
DRAM is mapped into an aperture extending from the
address
in
DRAM_BASE
to
the
address
in
DRAM_LIMIT. The maximum DRAM aperture size is 64
MB.
The MMIO aperture is located at address MMIO_BASE
and is fixed 2 MB in size.
In the default operating mode, all memory accesses not
going to either the hole, DRAM or MMIO space are inter-
preted as PCI accesses. This behavior can be overrid-
The MMIO aperture and the DRAM aperture can be at
any naturally aligned location, in any order, but should
not overlap; if they do, the consequences are undefined.
The
values
of
DRAM_BASE,
DRAM_LIMIT,
and
MMIO_BASE are set during the boot process. In the
case of a PCI host assisted boot, the values are deter-
mined by the host BIOS. In case of stand-alone boot (i.e.,
TM1100 is the PCI host), the values are taken from the
tails.
DSPCPU
update
of
DRAM_BASE
and
MMIO_BASE is possible, but not recommended, see
3.4.2
The Memory Hole
The memory hole from address 0 to 0xff serves to protect
the system from performance loss due to speculative
loads. Due to the nature of C program references, most
speculative loads issued by the DSPCPU fall in the
range covered by the hole. The hole, which is activated
by default upon RESET, serves to ensure that these
speculative loads do NOT cause PCI read accesses and
slow down the system. The value returned by any data
load from the hole is 0. The hole only protects loads.
Store operations in the hole do cause writes to PCI,
SDRAM or MMIO as determined by the aperture base
address values. If the SDRAM aperture overlaps the
memory hole, the memory hole is ignored.
The hole can be temporarily disabled through the
DC_LOCK_CTL register. This is described in
Section3.4.3
MMIO Memory Map
Devices are controlled through memory-mapped device
registers, referred to as MMIO registers. To ensure com-
patibility with future devices, any undefined MMIO bits
should be ignored when read, and written as zeroes.
Table 3-8. Functional Unit Operations
unit type
operation category
const
immediate operations
alu
32 bit arithmetic, logical, pack/unpack
dspalu
dual 16 bit, quad 8 bit multimedia arithmetic
dspmul
dual 16 bit and quad 8 bit multimedia multiplies
dmem
loads/stores
dmemspec
cache coherency, cache control, prefetch
shifter
multi-bit shift
branch
control ow
falu
oating point arithmetic & conversions
ifmul
32 bit integer and oating point multiplies
fcomp
single cycle oating point compares
ftough
iterative oating point square root and division
hole
256byte
0x0000 0000
PCI
MMIO_BASE
MMIO Aperture
DRAM_LIMIT
DRAM_BASE
DRAM Aperture
0xFFFF FFFFF
PCI
2MB
1MB–64MB
PCI
Figure 3-4. TM1100 Memory Map.