寄存器虚拟机

前面说到,虚拟机是真机的一种模拟,而栈虚拟机模拟的是基于栈计算的机器,和现在常见的基于寄存器的硬件机器不同,于是相应的也有基于寄存器的虚拟机,不过这个虚拟机可能跟真机差别比较大  

首先可以看看真机用寄存器的原因,计算机的存储有一个规律,访问速度越快的存储,单价(单位容量的成本)越高,因此实际实现的时候,容量会很受限,反之因为便宜而容量可以很大的存储,储存速度就慢,访问速度(或单价)从高到底大致是寄存器,cpu cache,内存,机械磁盘,磁带等,当然也有像ssd这种,介于内存和机械磁盘之间,为了减少耦合和简化设计,cpu的计算是面向寄存器(或类似的计算芯片,例如x86的FPU是基于栈实现,当然这个栈不是内存上的,是硬件内置),对于内存,主要是load和store操作,也就是说,做运算时将数据从内存load到寄存器,计算过后再store到内存里,编译器会分析出某些变量如果store后会被再次load,就不会load,因为已经在寄存器了;或者发现某些变量在一段代码中反复store到内存再load出来使用,可能直接把这些操作都优化了,只保留寄存器操作,可以大幅度提高执行速度。当然,寄存器越多,这种优化的空间就越大  

寄存器虚拟机的指令,和汇编指令差距不大,就不详细说明了,和栈虚拟机的指令的差别在于,运算大都是二地址或三地址指令  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值