2009-04-26 85 views
6

我在某处读取x86指令中的有效地址(如LEA指令中)是由“EU”计算的。什么是欧盟?准确计算有效地址涉及什么?我只学过MC68k指令集(UC Boulder先教导了这一点),我无法通过google = /找到一个好的x86网页。x86架构中的“EU”是什么? (计算有效地址?)

谢谢!

+0

请参阅[x86标记wiki](http://stackoverflow.com/tags/x86/info)以获取x86硬件详细信息的良好链接,特别是http://agner.org/optimize/ – 2016-08-04 04:10:53

回答

3

“EU”是执行单元的通用术语。 ALU是执行单元的一个例子。 FADD和FMUL(即浮点加法器或乘法器)是其他示例 - 因为对于负载和存储而言,这是存储单元。

相关LEA指令的欧盟的是ALU(加,减,AND/OR等)和AGU(地址产生单元)。该AGU与存储器管线,TLB,数据缓存等耦合。

当我编写第一个代码指南时,典型的Intel x86 CPU有2个ALU,1个加载管线连接到AGU,一个存储地址流水线绑定到第二个ALU和一个商店数据管道。截至2016年,大多数有3或4个ALU。

LEA是一个3输入指令 - BaseReg + IndexReg *比例+偏移量。就像x86的内存寻址模式,它实际上有一个第四个输入,它不是LEA计算的一部分。 3个输入的成本必须超过ADD所需的2个输入。

在一些机器上的ALU只能做2个输入操作。因此,LEA只能在AGU上执行,特别是用于加载的AGU(因为存储ALU不写入寄存器)。这可能意味着您不能在同一时间同时执行LEA或两个LEA,而您可以在同一个周期内执行两个添加和一个负载。

在其它机器上,LEA可以由一个或两个或三个来完成的ALU的。可能不是AGU--可能和ALU一样。这证明了更多的灵活性。

或者,可以在ALU上完成简单的LEA,例如规模+偏移量,而最大的LEA(例如,尺度+偏移量)可能受到限制,甚至可能分成两个uops。

(哎哟:。应用程序截断在< <,可能是一个HTML quotification错误我可以在PC解决啊 - 固定,通过改变< <为*)。

因此,问题归结为:欧盟(执行单位)负责处理哪些执法机构? ALU还是AGU?答案取决于机器。在优化指南

通用文本可以简单地说“欧盟”,而不是“AGU或ALU,取决于模型”或“取其欧盟能够处理特定LEA”。

3

EU =执行单位?

有效地址是如果LEA指令是一条实际执行某种算术或其他数据访问的指令,则该地址将被访问。它的“预期”用途是计算指针算术或数组索引操作产生的指针。但是,因为它可以执行乘法和加法的某种组合,所以它也用于优化一些常规计算。

0

多年来,单一家族内部处理器的内部已经发生了很大变化,因此需要用确切的cpu模型来澄清“EU”参考。作为您的m68k体验的一个类比,68000,010,020,030,040和060的指令集大部分是相同的,但它们的内部实际上是不同的,所以任何对内部名称的引用都需要附带它们的部件号。

6

英特尔自己的Software Developer's Manuals是x86上的一个很好的信息来源,虽然它们可能有些矫枉过正(而且更像参考而不是教程)。

欧盟(执行单位)的参考很可能与ALU(算术逻辑单元)相对,后者通常是负责算术和逻辑指令的处理器的一部分。但是,欧盟也具有(或具有)一些算术能力,用于计算存储器地址。 x86 LEA指令将这些功能传递给汇编程序员。

通常情况下,你可以提供一些非常复杂的内存地址的x86指令:

sub eax, [eax + ebx*4 + 0042] 

并且在ALU处理算术减法,欧盟负责生成地址。

随着LEA,可以利用有限的地址生成功能用于其他用途:

lea ebx, [eax + ebx*4 + 0042] 

比较:

mul ebx, 4 
add ebx, eax 
add ebx, 0042 

“第1卷”我的链接页面上有一个“3.7.5”dicussing寻址模式 - 可以提供给需要内存操作数(其中LEA是一个)的指令的内存地址类型,反映了EU(或任何存储器接口部分称为什么)的算术类型,是有能力的。

“第2卷”是指令集的参考,并包含有关所有指令(包括LEA)的确切信息。

+1

我想知道哪个更快/更高效;由于他们正在被不同的单位(EU/ALU)处理,所以lea指令或mul添加,添加组合。 – 2009-04-27 01:15:40

+2

今天的所有多级流水线,多核,多单元都很难说清楚。在ALU忙的时候,EU可以免费进行这样的计算,反之亦然。哎呀,我甚至不确定欧盟/ ALU的区别已经存在了。 – aib 2009-04-27 23:08:39

相关问题