宽总线配置下传输32字节数据块所需周期数计算咨询
问题背景
宽总线配置参数如下:
- 发送地址的周期数(未给出具体数值)
- 总线传输周期=2 cycles
- Memory Access = 30 cycles
问题
传输32字节的数据块需要多少cycles?本人假设总线传输和内存访问均单次完成,算出30+2=32 cycles,但无法理解总线宽度的影响及如何结合其计算周期。
解答
总线宽度的核心作用是决定单个总线传输周期能承载的数据字节数,这直接决定了传输32字节数据块需要多少轮总线传输,进而影响总周期数。
以下结合常见总线宽度举例计算(题目未给出发送地址周期数,暂不计入):
- 若总线宽度为64位(8字节):
需传输轮数 = 32字节 ÷ 8字节/轮 = 4轮
总周期 = 内存访问周期 +(总线传输周期 × 传输轮数)= 30 + (2×4) = 38 cycles - 若总线宽度为32位(4字节):
需传输轮数 = 32字节 ÷ 4字节/轮 = 8轮
总周期 = 30 + (2×8) = 46 cycles - 若总线宽度为16位(2字节):
需传输轮数 = 32字节 ÷ 2字节/轮 = 16轮
总周期 = 30 + (2×16) = 62 cycles
你之前得出的32 cycles,本质是默认总线宽度≥32字节(比如256位总线),此时仅需1轮总线传输,总周期为30+2=32 cycles,但这类超宽总线在常规场景中并不常见。
补充说明:内存访问周期(30 cycles)是从地址发送完成到内存准备好第一块数据的延迟,对于连续数据块的突发传输,内存仅需一次访问延迟,后续每轮总线传输无需重复等待内存访问。
内容的提问来源于stack exchange,提问作者Eimon
相关产品推荐
相关产品推荐

