搜索
写经验 领红包

安腾2处理器(安腾处理器用什么主板)

在生活中,很多人可能想了解和弄清楚说说安腾处理器的双栈设计的相关问题?那么关于安腾2处理器的答案我来给大家详细解答下。

安腾2处理器(安腾处理器用什么主板)

去年的时候,我曾提到,在安腾(Itanium)处理器上有两个栈。传统上的”栈”(包括SP寄存器所指的那个栈)是一个手动管理的内存块,函数可以从中分配空间以在执行期间使用。举个例子,如果你声明一个局部变量:TCHAR szBuffer[MAX_PATH];

那么,这个缓冲区将会在上面所说的栈中分配内存。但是,不是所有的局部变量都分配在这个栈中。

回想一下,安腾处理器上有大量的寄存器,其中大部分都参与函数调用。 因此,许多局部变量被放置在寄存器中而不是栈中,当调用函数时,这些寄存器被处理器所占用,而在函数返回时释放。 他们在哪里得到这些内存空间? 处理器通常可以将它们存储到其他未使用的寄存器中,这项技术比较复杂晦涩,我暂时不细说 (那些仍然感兴趣的人,可以阅读英特尔关于该主题的文档。)如果处理器用完了这些寄存器,它就会转为使用主存储器,进入一个称为“寄存器后备存储”的地方。 这是另一个与传统栈类似栈内存块。

如前所述,这种双栈设计模型的一个结果是,栈溢出不会破坏函数返回地址,因为返回地址没有保存在传统栈上,相反,它保存在寄存器中或(在寄存器不够的情况下)在寄存器后备存储中。

双栈设计另一个结果是,各种定位堆栈开始的技巧只会找到其中一个堆栈。 如果你认为对该栈进行前后偏移,能找到所有可访问的对象引用,那么错过另一个栈将导致问题。

安腾架构挑战了许多假设,并且对各种技术上非法但没有人会真正执行的恶作剧更加不会宽容,其中一些我在之前的文章中已经讨论过。今天可以在这个列表中加上新的主题了,我将其命名为:”第二个栈”。

总结

安腾:不好意思,我设计过于先进导致提前结束了生命周期。F22:我也一样哈。

最后

Raymond Chen的《The Old New Thing》是我非常喜欢的博客之一,里面有很多关于Windows的小知识,对于广大Windows平台开发者来说,确实十分有帮助。本文来自:《The Itanium’s so-called stack》

温馨提示:通过以上关于说说安腾处理器的双栈设计内容介绍后,相信大家有新的了解,更希望可以对你有所帮助。