在 SoC架构设计中,Memory Bus 是一个关键的组成部分,它负责连接 SoC 中的各个模块(如 CPU、GPU、DMA、外设等)与外部存储器(如 DDR、NAND、Flash 等),起到连接处理器和存储器之间的桥梁作用,负责传输指令和数据以支持计算机系统的正常运行。它提供了一种标准化的接口,使处理器能够直接与内存和其他外部设备进行通信,从而实现数据的读取和写入。
主要功能:
系统存储总线有以下主要功能:数据传输:总线接口是 Memory Bus 与 SoC 模块之间的连接点。它负责将模块的请求和响应信号转换为 Memory Bus 的标准信号。然后再通过这些信号传输给DDR、NAND、Flash,再进行存储器地址数据的读取。控制:存储总线还负责控制数据传输和存储访问的时序和调度。它确保数据按照正确的顺序传输,并在需要时进行必要的同步和等待。寻址:存储总线使用地址信号来指示读取或写入的数据在内存中的位置。处理器通过发送地址信号来选择要读取或写入的特定内存位置。
通常各个模块所使用的总线协议会有所差异,这时候就要就需要一个适配器(adapter)或转换器(translator)来进行接口的转换。在Memory Bus后面接一个AXI3-to-AXI4(例)转换器的例化模块,并将信号串起来,从而达到一个统一的标准,使得使用不同版本AXI总线的设计能够相互配合工作,提高系统的兼容性和灵活性。在例化时需参考当前设计的访存总线设计计划,例如图2所示,其中箭头都是需要wire定义的信号,左侧为module,传入AXI BUS 的master端,再从slave端传出给到x2x桥的master端,再通过其slave端传到DDR、NAND、Flash等设备。例化时端口宽度需要额外注意,尤其是64位addr->32位addr,还有awid、wid、rid、bid、arid这几个位宽,还有AXI4与AXI3的连接时的len/lock这两个信号。AXI4 master可能有或没有wid信号。如果axi4 master中不存在wid信号,则slave的AXI wid信号可以连接到AXI4 master的awid信号。
在对信号进行连接过程中,可能会遇到mst_priority_m
和slv_priority
两个AXI4的信号,分别用于配置从设备和主设备的优先级。每个从设备和主设备都有一个对应的优先级位,当多个设备同时请求访问总线时,具有更高优先级的设备将优先获得访问权。通过设置mst_priority_m
和slv_priority
信号,可以影响总线仲裁的结果,从而控制数据传输的顺序。
The memory bus in a system-on-a-chip (SoC) is responsible for transferring data between the CPU and the memory subsystem. It acts as a communication channel for the processor to access and retrieve data from the memory.
In an SoC, the memory bus is typically integrated into the chip and connects the CPU to both the internal and external memory components. It provides the necessary pathways and protocols for data transfer, including addressing, data width, and timing control.
The primary function of the memory bus is to allow the CPU to read and write data to the memory subsystem. This includes fetching instructions, accessing data for execution, and storing the results back into memory. The bus also facilitates the transfer of data from external memory devices, such as RAM, ROM, and flash memory, to the CPU and vice versa.
The memory bus in an SoC is often designed to support multiple memory interfaces, such as DDR (Double Data Rate) RAM, SRAM (Static Random Access Memory), and flash memory. It may also incorporate features like cache controllers, memory controllers, and arbitration mechanisms to manage the access and transfer of data between different memory modules.
Efficient memory bus design is critical for achieving high-performance and low-latency data access in an SoC. It involves optimizing the bus width, clock frequency, and data transfer protocols to match the characteristics of the memory subsystem and the processing requirements of the CPU.
片上系统(SoC)中的内存总线负责在CPU和内存子系统之间传输数据。它充当处理器访问和检索存储器数据的通信通道。在SoC中,存储器总线通常集成在芯片中,并将CPU连接到内部和外部存储器组件。它为数据传输提供了必要的路径和协议,包括寻址、数据宽度和时序控制。内存总线的主要功能是允许CPU向内存子系统读写数据。这包括获取指令、访问数据以供执行,以及将结果存储回内存。总线还便于将数据从RAM、ROM和闪存等外部存储设备传输到CPU,反之亦然。SoC中的存储总线通常设计为支持多个存储接口,如DDR(双倍数据速率)RAM、SRAM(静态随机存取存储器)和闪存。它还可以包含缓存控制器、内存控制器和仲裁机制等功能,以管理不同内存模块之间的数据访问和传输。高效的内存总线设计对于在SoC中实现高性能和低延迟的数据访问至关重要。它涉及优化总线宽度、时钟频率和数据传输协议,以匹配内存子系统的特性和CPU的处理要求。