Load and Store Unit

Versal Adaptive SoC AI Engine Architecture Manual (AM009)

Document ID
AM009
Release Date
2023-08-18
Revision
1.3 English

The AI Engine has two load units and one store unit for accessing data memory. Data is loaded or stored in data memory.

Each of the load or store units has an address generation unit (AGU). AGUA and AGUB are the load units and the store unit is AGUS. Each AGU has a 20-bit input from the P-register file and a 20-bit input from the M-register file (refer to the pointer registers and the modifier registers in Register Files). The AGU has a one cycle latency.

An individual data memory block is 32 KB. The AI Engine accesses four 32 KB data memory blocks to create a 128 KB unit. These four memory blocks are located on each side of the AI Engine and are divided and interleaved as odd and even banks (see the following figure).

Figure 1. Interleaving in Data Memory (32 KB per Block)

In a logical representation the 128 KB memory can be viewed as one contiguous 128 KB block or four 32 KB blocks, and each block can be divided into odd and even banks. The memory can also be viewed as eight 16 KB banks (four odd and four even). The AGU generates addresses for data memory access that span from 0x0000 to 0x1FFFF (128 KB).