Memory Interface
SC140 DSP Core Reference Manual
2-55
2.4 Memory Interface
The SC140 core interfaces to memory via the following:
32-bit program memory address bus (PAB) and 128-bit program memory data bus (PDB)
32-bit data memory address bus A (XABA) and 64-bit data memory data bus A (XDBA)
32-bit data memory address bus B (XABB) and 64-bit data memory data bus B (XDBB)
Control signals such as read and write access strobes as well as access width control
The SC140 does not specify a memory subsystem architecture, only the minimum requirements for correct
execution of SC140 code. Listed below are requirements for all memory designs that interface with the
SC140 core.
The SC140 core supports only unified memory designs. Memory is regarded as a single space. There
is no distinction between program memory locations and data memory locations. Each memory
location possesses a unique address that can be accessible from either the program or data buses.
From the core’s perspective, there is only one memory address “a,” which can hold either data or
program information.
Data must be byte-addressable and accessible by the two data memory buses.
All data width accesses used by the SC140 core must be supported by the memory such as byte
(8 bits), word (16 bits), long word (32 bits), or double-long word and four-word (64 bits). One of
four control signals will indicate to the memory which access width is needed for each access.
Multi-byte memory accesses must support both endian modes.
Memory must resolve access ordering on a cycle by cycle basis. All accesses on a given cycle must
be completed before proceeding to accesses in the next cycle.
Multiple access rules in a given cycle are as follows:
— Multiple read or write accesses to different memory locations execute without any
predetermined sequence.
— In cases where multiple accesses to the same memory location occur, the access sequence is
program fetch, data read, and data write.
— If two write operations access the same byte in memory in the same cycle, the operation is illegal
and the result is undefined. The same byte may be written by different but overlapping words or
long words. The memory subsystem should be able to detect these cases and issue an imprecise
interrupt to the core. The use of this interrupt is optional. Refer to
Section 6.3.4.1, “Implicit
Push/Pop Memory Timing,”
for more details.
Accesses to non-existent memory locations are illegal and the result is undefined. The memory
subsystem can issue an imprecise interrupt to the core. The use of this interrupt is optional.
2.4.1 Memory Subsystem Example
Since the memory subsystem is external to the SC140 core and can be designed in many different ways,
this section provides an example of a hypothetical device. The design in this example is characterized as
having full speed with high bandwidth and low power, utilizing an efficient memory area.
Figure 2-19 shows the internal memory structure of the hypothetical device described in this section. The
memory is a two-dimensional array of small memory blocks (4 Kbyte) which are enabled individually to
provide high speed and low power. The dual address and data buses within the array allow two
simultaneous memory accesses within each memory group.