This diagram illustrates the "internal communication network" of the RP2040, with the core logic as follows:
AHB-Lite Master (Upstream Port): It serves as the initiator of data requests, corresponding to four traffic initiators: two processor cores (Core0 and Core1), the read port of DMA, and the write port of DMA, which are responsible for sending read/write data requests to other modules.
AHB-Lite Crossbar (bus hub): It acts as a "traffic control center", which distributes the requests from 4 master devices to 10 "downstream ports"(i. e. the modules to which the data is to be delivered); it can complete up to 4 transmissions of 32-bit data per clock cycle, ensuring the efficiency of data interaction.
Downstream port (destination module): refers to the recipient of a data request, which falls into three categories:
Storage Class Module: Consists of ROM, Flash XIP, and the partitioned SRAM0~5 (each SRAM occupies an independent port). Splitting the SRAM into multiple ports is designed to enable "parallel access by multiple modules" — for example, when Core0 is accessing SRAM0, the DMA can access SRAM1 simultaneously — so as to avoid access congestion of storage resources.
High-speed peripheral modules: including "Fast AHB-Lite peripherals" such as PIO0, PIO1 and USB, which are directly connected to the bus hub to adapt to the requirements of high-speed data transmission.
Low-speed peripheral modules: These include peripherals such as UART, SPI, and I2C, which are connected to the bus hub via the "APB bridge" — the APB bridge acts as a "slow lane adapter", ensuring that communications from low-speed peripherals do not compromise the transmission efficiency of high-speed modules.