- 主题:DOS 函数调用的开销和协程切换的开销差不多啊。
协程切换的话:
1. 保存当前所有寄存器的值。
2. jmp
3. 恢复之前所有寄存器的值。
和普通的函数调用开销没差多少。80186 的话还有个 pusha/popa 可以使用。
--
FROM 59.61.197.*
有寄存器重命名之后切换开销应该低多了,不过不知道手写汇编的话能不能发挥出来
【 在 hgoldfish 的大作中提到: 】
: 协程切换的话:
: 1. 保存当前所有寄存器的值。
: 2. jmp
: ...................
--
FROM 124.16.158.*
寄存器重命名解决的是寄存器的Write after Read, Write after Write的依赖关系,
context switch代价主要在内存读写上
两者之间没有任何关系
【 在 tom6bj 的大作中提到: 】
: 有寄存器重命名之后切换开销应该低多了,不过不知道手写汇编的话能不能发挥出来
--
FROM 73.202.29.*
现代 CPU 如果能对协程加强支持就好了。
把 PUSHA/JMP/POPA 这个固定的代码模式做深度的优化。
【 在 BigCarrot 的大作中提到: 】
: 寄存器重命名解决的是寄存器的Write after Read, Write after Write的依赖关系,
: context switch代价主要在内存读写上
: 两者之间没有任何关系
: ...................
--
FROM 183.253.146.*