ZHCUAQ1F july 2015 – april 2023
C6000 系列的内部存储器因器件而异。请参阅相应的器件数据表,以确定特定器件中的存储器空间。本节讨论了如何编写代码以避免存储器组冲突。
大多数 C6000 器件使用交错式存储器组方案,如图 5-1 所示。图中的每个数字代表一个字节地址。来自地址 0 的加载字节 (LDB) 指令会加载组 0 中的字节 0。来自地址 0 的加载半字 (LDH) 会加载字节 0 和 1 中的半字值,这两个字节也位于组 0 中。来自地址 0 的加载字 (LDW) 会加载组 0 和 1 中的字节 0 至 3。
由于每个存储器组是单端口存储器,因此每个周期只允许对每个存储器组进行一次访问。在给定周期内对单个组进行两次访问会导致存储器停止,从而在从存储器读取第二个值的同时使所有流水线操作暂停一个周期。每个周期允许进行两次存储器操作,只要它们不访问同一个存储器组,就不会发生任何停止。
对于具有多个存储器空间的器件(图 5-2),对一个存储器空间中组 0 的访问不会干扰对另一个存储器空间中组 0 的访问,并且不会发生流水线停滞。