[笨叔点滴2] 为啥子ARM32体系结构中每个处理模式都有一个单独的栈?

 各位小伙伴,我是小笨叔。笨叔尽量每天给大家分享一点点小东西,可能是笨笨的、傻傻的、甜甜的、酸酸的小点滴,记录这每一刻每一天的小感悟,就像小雨点一样,它会慢慢汇合到大江大海!

 上次提到LinuxCon大会,这种大会正如笨叔说的

   “听君一席话,胜读十年书”

笨叔有幸在北京拜访了Linux社区里面一位老前辈,聆听他当年在80~90年代做CPU处理器体系结构和Linux操作系统的鲜为人知的历史和对人生和技术的感悟,让笨叔大受启发。

在闲谈中,他提到为什么ARM32的处理器需要7种处理器模式,而且每一种处理器模式都需要一个单独的栈空间?比如irq模式,为什么ARM32的设计里需要一个单独的irq模式,而且这个irq模式只有12个字节?为什么不和SVC模式公用一个栈呢?比如x86等传统经典的处理器架构里,是没有为irq单独开辟一个栈的。

这些是非常好的问题,引发了笨叔回到上海继续思考。本文抛砖引玉,希望有兴趣的小伙伴可以在文章后面留言发表您的观点。

01 ARM32上的设计

我们来看一下ARM32上,如果发生了一个irq中断,ARM32处理器是怎么处理的?我们知道ARM32里面有一个奇葩的7个工作模式:

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值