[原创+讨论]goto语句有时存在硬件效率问题吗?



个人理解。goto即jump指令,跳转速度之快。但存在硬件效率问题吗?

以某个CPU架构为例:
CPU---MMU--高速缓存

CPU访问内存时,MMU内存管理单元加载一部分相邻的页内存放入TLB中(为了避免每次都要访问页目录和一级页表的物理内存,TLB也是一种高速缓存,这样提高效率),
然后通过TLB查询到页框地址(即数据/指令存放的真正物理地址),使用该地址去访问物理内存,但为了提高访问速率,设计一块高速缓存,用户提前加载相邻的内存进入高速缓存。这样提高访问效率。
若goto语句跳转的跨度太大,甚至超过了一个TLB中存放的页内存或一个高速缓存的大小,即TLB或高速缓存会反复访问物理内存,降低效率。
注意:TLB/高速缓存 与物理内存的数据一致性同步机制,处理器中已有一整套的解决方案。(当然现在高速缓存和TLB都是M级的,也就没有跳转M级的goto指令,所以现实中可能也不存在硬件效率问题)
待下一篇CPU-MMU-高速缓存交互流程


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值