1.1 RAM Mux(Multiplexer Width)
RAM Mux 是指 RAM 中的多路复用器(Multiplexer)的宽度,描述了RAM 的数据路径和 I/O 数据路径之间的关系。多路复用器是一种硬件组件,用于选择不同数据路径中的数据。它决定了在同一个时钟周期内每个 I/O 端口可以访问多少数据。
-
含义:
- Mux 值代表了每个 I/O 端口的宽度与实际存储阵列宽度的比率。
- 假设一个 RAM 设计具有宽度为 64 位的输出总线,而 Mux 值为 4,这意味着每个时钟周期中将 4 个 16 位的存储数据聚合成 64 位输出。这通常涉及到在多次存取中将内部数据进行组合。
-
优点和缺点:
- 高 Mux 值:意味着在同一个 I/O 端口的宽度上,更多的数据被打包到同一个时钟周期。高 Mux 值可减少位线的数量,但可能导致更长的访问时间。
- 低 Mux 值:意味着更少的数据被打包到一个时钟周期,访问速度通常更快,但可能需要更多的 I/O 线路。
1.2 RAM Bank
RAM Bank 是指将 RAM 存储器分成多个独立的块,每个块称为一个“Bank”。每个 Bank 是一个独立的存储区域,通常可以同时进行读写操作。
-
含义:
- 在多 Bank 设计中,RAM 可以将不同的访问操作分配到不同的 Bank 中,从而提高并行性和数据吞吐量。
- Bank 的数量取决于设计目标和所需的并行性。更多的 Bank 数量可以提高访问效率,但也会增加布线复杂性和功耗。
-
优点和缺点:
- 多 Bank 设计:可以提高并行性和访问效率,但也可能增加设计的复杂性和功耗。
- 单 Bank 设计:简单但并行访问能力较低。
2. 如何选择 RAM Mux 和 RAM Bank 的值
2.1 选择 RAM Mux 的值
- 性能要求:如果对访问速度要求较高,应选择较小的 Mux 值,这样每个时钟周期的访问量会更小,速度会更快。如果希望减少 I/O 引脚的数量,或者对访问速度要求不高,可以选择更高的 Mux 值。
- 功耗和面积:较高的 Mux 值通常可以减少存储器位线和感应放大器的数量,降低功耗和面积。因此,如果功耗和面积是主要考虑因素,可以选择较高的 Mux 值。
- 常见的选择:通常,2、4、8 是比较常见的 Mux 值,可以根据具体设计要求进行调整。
2.2 选择 RAM Bank 的数量
- 并行性:如果系统需要高并行访问(如多核处理器共享存储器),应该选择更多的 Bank。更多的 Bank 可以同时支持多次并发访问,减少访问冲突。
- 访问模式:如果访问操作比较分散或随机,更多的 Bank 数量可以提高并行访问效率。如果访问是连续的或顺序的,较少的 Bank 可能就足够。
- 功耗和面积:更多的 Bank 会增加设计复杂性和功耗,因此需要在并行性和功耗之间进行权衡。一般来说,2、4、8、16 是常见的 Bank 数量。
3. 选择的技巧总结
- 高 Mux、少 Bank:适用于对面积和功耗敏感,但访问性能要求不是特别高的场景。
- 低 Mux、多 Bank:适用于对访问性能要求较高,需要同时进行多次并行访问的场景。
举例
假设你在设计一个嵌入式系统,其中 RAM 宽度为 64 位,数据访问要求较高,并且需要支持多核并行访问:
- RAM Mux:可以选择 Mux 值为 4,表示内部是 16 位宽度的数据,4 次复用成 64 位的输出,以兼顾性能和功耗。
- RAM Bank:可以选择 4 个 Bank,这样不同核可以同时访问不同的 Bank,从而提高并行访问效率。