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

Page 18

Advertising
background image

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

Advertising
This manual is related to the following products: