6 pseudo-von neumann memory access -16 – Maxim Integrated MAXQ7666 User Manual
Page 18

1.2.3.6 Pseudo-Von Neumann Memory Access
The pseudo-Von Neumann memory mapping is straightforward if there is no memory overlapping among the program, utility ROM, and
data memory segments. However, for applications requiring large-size program memory, the paging scheme can be used to selectively
activate those overlapped memory segments. The UPA bit can be used to activate the upper half of the physical program code (P2 and
P3) for program execution. When accessing the program memory as data, the CDA bits can be used to select one of the four program
pages as needed. Full data memory access to any of the four physical program memory pages is based on the assumption that the max-
imum physical data memory is in the range of 16k x 16. The other restriction for accessing the pseudo-Von Neumann map is that when
program execution is in a particular memory segment, the same memory segment cannot be simultaneously be accessed as data.
When executing from the lower 32k program space (P0 and P1):
• The upper half of the code segment (P2 and P3) is accessible as program if the UPA bit is set to 1.
• The physical data memory is available for accessing as a code segment with offset at A000h if the UPA bit is 0.
• Load and Store operations addressed to physical data memory are executed as normal.
• The utility ROM can be read as data, starting at 8000h of the data space.
When executing from the utility ROM (only allowable when UPA = 0):
• The lower 32k program space (P0 and P1) functions as normal program memory.
• The upper half of the code segment (P2 and P3) is not accessible as program (since UPA = 0).
• The physical data memory is available for accessing as a code segment with offset at A000h.
• Load and Store operations addressed to physical data memory are executed as normal.
• One page (byte access mode) or two pages (word access mode) can be accessed as data with offset at 8000h as determined
by the CDA1:0 bits.
When executing from the data memory (only allowable when UPA = 0):
• Program flows freely between the lower 32k user code (P0 and P1) and the utility ROM segment.
• The upper half of the code segment (P2 and P3) is not accessible as program (since UPA = 0).
MAXQ7665/MAXQ7666 User’s Guide
1-16
Physical Program
(P0)
PHYSICAL DATA
0000h
8000h
9000h
0100h
DATA MEMORY
0
15
LOGICAL SPACE
MAXQ7665/MAXQ7666 MEMORY MAP (DEFAULT CONDITION, UPA = 0)
PHYSICAL DATA
0000h
8000h
FFFFh
0000h
0100h
8000h
9000h
DATA MEMORY
PROGRAM MEMORY
15
0
0
15
LOGICAL SPACE
LOGICAL SPACE
MAXQ7665/MAXQ7666 MEMORY MAP (UPA = 1, CDA IS DON’T CARE)
LOGICAL UTILITY ROM
P2
P3
PHYSICAL PROGRAM
(P3)
PHYSICAL PROGRAM
(P2)
PHYSICAL PROGRAM
(P1)
PHYSICAL PROGRAM
(P0)
FFFFh
FFFFh
PHYSICAL PROGRAM
(P0)
UTILITY ROM
LOGICAL SPACE
0000h
8000h
A000h
FFFFh
A100h
9000h
PROGRAM MEMORY
15
0
LOGICAL SPACE
PHYSICAL PROGRAM
(P1)
Figure 1-4. Pseudo-Von Neumann Memory Map (MAXQ7665/MAXQ7666 Default)
Maxim Integrated