Engineer-To-Engineer Note EE-19
Technical Notes on using Analog Devices’ DSP components and development tools
Phone: (800) ANALOG-D, FAX: (781) 461-3010, EMAIL: dsp.support@analog.com, FTP: ftp.analog.com, WEB: www.analog.com/dsp
Copyright 1999, Analog Devices, Inc. All rights reserved. Analog Devices assumes no responsibility for customer product design or the use or application of customers’ products
or for any infringements of patents or rights of others which may result from Analog Devices assistance. All trademarks and logos are property of their respective holders.
Information furnished by Analog Devices Applications and Development Tools Engineers is believed to be accurate and reliable, however no responsibility is assumed by Analog
Devices regarding the technical accuracy of the content provided in all Analog Devices’ Engineer-to-Engineer Notes.
Boot Paging II: Maximizing
Boot-Memory Efficiency on the
ADSP-21xx family DSP’s
(excluding the ADSP-218x)
Contributed by: Dan L.
Last Modified: 10/20/97
routine that loads 24-bit program memory (PM) into
internal RAM from an 8-bit boot memory device.
Booting can occur automatically when the DSP is
reset and/or while the DSP is running. Boot
memory is divided into eight pages. Each page holds
an entire memory image of the DSP’s internal PM.
When configured to load PM from boot memory at
reset, the DSP automatically loads boot-page 0.
Introduction
This document provides various strategies to
increase the efficiency and usefulness of standard
boot memory in 21xx systems (excluding the ADSP218x). The following topics are covered:
• Maximizing the efficiency of boot-page allocation
within the boot memory of your ADSP-21xx
system.
• Selecting the smallest boot memory device
possible for your ADSP-21xx system.
• Creating multi-bank boot-page systems with 16
and 32 boot-pages.
• Mapping program memory and data memory
into boot memory for large amounts of 8-bit
wide storage.
• Modifying the boot memory image file.
• Description of an example system using all of
the above concepts.
These methods can be complicated to implement,
yet can effectively streamline certain applications.
For more information on boot-pages, see section 10.4
of the ADSP-21xx Family User’s Manual, or the
following Analog Devices Engineers Note: Boot
Paging I: FAQ - Boot Pages on the 21xx Family
DSP’s (excluding 218x & CSP01), #XXX.
Boot Memory Overview
The Analog Devices ADSP-21xx family of Digital
Signal Processors (DSP) have a built-in booting
Each 24-bit program memory word is stored in 4
bytes of boot memory. Therefore, the length of a
boot-page (in bytes) is always 4 times the number of
PM words stored within it.
This boot memory device is most commonly a ROM
of some sort but can be any memory device (FLASH
RAM, static RAM, or another processor) as long as
it is fast enough and compatible with the DSP’s
external memory interface.
Basic Boot Memory Interface
The standard method used to connect an ADSP21xx DSP to boot memory is to connect pins A0-A13
of the external DSP bus to pins A0-A13 of the boot
memory and pins D22 and D23 of the DSP to pins
A14 and A15 of the boot memory. Pins A0-A12 cycle
through the 8192 locations of each page. Pins A13,
D22 and D23 select the page. This interface
requires a minimum of 512 Kbits of boot memory.
The ADSP-21xx family DSPs built-in boot-page
loading hardware assumes that the boot pages will
be 8 Kbytes apart in boot memory. For example,
boot page 0 starts at boot memory address 0, boot
page 1 starts at boot memory address 0x2000(hex),
etc. If your system uses a DSP that has less than
2Kwords of program memory, there is unused
memory within each boot page in the boot memory.
For instance, the ADSP-2115 has only 512 words of
PM and requires 2 Kbytes of boot memory space per
boot page. This leaves 6 Kbytes of boot memory
unused per boot page. If the ADSP 2115 system
uses all eight boot pages with this addressing
scheme, the system requires 512 Kbits of boot
a
memory. This 512 Kbit boot memory has a
maximum of 2K x 8 = 16 Kbytes worth of boot data
and a minimum of 6K x 8 = 48 Kbytes of unused
data. Figure 2 shows a memory map of this
allocation scheme.
Removing Unused Memory
By rewiring the address lines from the DSP to the
boot memory, the unused memory (a minimum of
6K x 8 = 48 Kbytes) is removed.
A DSP with 512 bytes of PM such as the ADSP2105, 2115, 2163 and 2164, need only 2048 bytes to
be read from each boot page because the internal
PM is only 512 words long. By removing pins A11
and A12 from the boot memory and reconnecting
pins A13, D22, and D23 (boot-page select lines) on
the DSP to A11, A12 and A13 respectively, on the
boot memory, the 6Kbytes per boot page that was
previously unused is now eliminated and the pages
are packed next to each other. The result is 8 boot
pages stored in 128 Kbits of boot memory as opposed
to the original 512 Kbits.
In a system that uses a DSP with 1K of PM such as
the ADSP-2101, 2103, 2161, 2162 and 2111, each
boot page is 4096 bytes in length because the
internal PM is 1024 words long. Only pin A12 is
removed and pins A13, D22 and D23 move down one
address line. The result is 8 boot pages stored in 256
Kbits of boot memory verses the original 512 Kbits.
Table 1 summarizes these relationships. For more
information, see Section 5.4 in the ADSP-2100
Assembler Tools and Simulator Manual.
Total PM
in DSP
(words)
512 128 A11, A12
Min. Size
of BM
(Kbits)
Address
Lines Left
Disconnected
unused address line added as the most-significant
unused address line of the boot memory. These
unused lines can be tied to a memory mapped flipflop in a DSP system.
To load a boot page from another bank first write to
the flip-flop and specify the bank, then write to the
System Control Register (SYSCON) and write the
boot-page number. The unused bits may also be
connected to hard switches, or to an entirely
separate system. To connect these unused bits, the
actual boot memory image file(s) created by the
21xx splitter must be modified. See “Modifying the
Boot Memory Image file” section later in this
article.
Mapping PM or DM Space into Boot Memory
With a little logic between the ADSP-2115 and boot
memory, it is possible to map PM and/or DM into
unused portions of the boot memory. Although this
data is only 8-bits wide, it can store other data such
as function look-up tables and/or data constants.
To map PM and/or DM into unused portions of the
boot memory, both the boot memory select pin
(BMSL) and data or program memory select
(PMSL) pins must logically select different sections
of the boot memory.
In addition, the 14 address lines from the DSP must
connect directly to the 14 least significant address
lines of the boot memory. Less than 14 address lines
can be used to allocate a smaller block of PM or DM
but they should be contiguously connected on both
the DSP and boot memory. If no memory-efficient
allocation scheme is used this method is not
necessary (page packing). If this scheme is used,
additional logic is needed to allow BM, DM and PM
accesses to function correctly.
1024 256 A11
2048 512 (none)
Table 1 : DSP Boot Memory Sizes
Creating Multiple Boot-Page ‘Banks’
To create a system that uses more than 8 boot
pages, the boot memory must be an order of 2x
larger than the minimum size of boot memory as
defined in Table 1. A boot memory size of 2x yields
16 boot pages: 4x yields 32 boot pages. Every time
the boot memory is increased 2x, there is one
EN-19 Page 2
Technical Notes on using Analog Devices’ DSP components and development tools
Phone: (800) ANALOG-D, FAX: (781) 461-3010, FTP: ftp.analog.com, EMAIL: dsp.support@analog.com
Modifying the Boot Memory Image file
If you alter the configuration of the address lines
between the DSP and the boot memory, the ASCII
boot memory image file (*.bnm) created by the
splitter must also be modified to reflect these
changes. In many cases a simple text editor macro
can perform all of the required modifications. Below
are descriptions of the various boot memory image
file modifications required for the various schemes
described throughout this document.