The AIE-ML 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 64 KB. The AIE-ML accesses four 64 KB data memory blocks to create a 256 KB unit. These four memory blocks are located on each side of the AIE-ML and are divided and interleaved as odd and even banks (see the following figure).
In a logical representation the 256 KB memory can be viewed
as one contiguous 256 KB block or four 64 KB blocks, and each block can be divided
into odd and even banks. The memory can also be viewed as eight 32 KB banks (four
odd and four even). The AGU generates addresses for data memory access that span
0x3FFFF (256 KB).