《在使用共享虚拟存储器的处理器中加速操作的装置和方法.pdf》由会员分享,可在线阅读,更多相关《在使用共享虚拟存储器的处理器中加速操作的装置和方法.pdf(30页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN104204990A43申请公布日20141210CN104204990A21申请号201280072078322申请日20120330G06F1/00200601G06F9/06200601G06F12/10200601G06F13/1420060171申请人英特尔公司地址美国加利福尼亚州72发明人E威斯曼KK凡塞纳坦Y扎克B靳兹伯格R罗恩74专利代理机构上海专利商标事务所有限公司31100代理人张东梅54发明名称在使用共享虚拟存储器的处理器中加速操作的装置和方法57摘要描述了用于将前端核耦合到加速器组件诸如图形加速器的装置和方法。例如,描述了一种装置,包括加速器,包括一个。
2、或多个执行单元EU用于执行特定的指令集;以及前端核,包括通信耦合到加速器的转换后备缓冲器TLB,并且向加速器提供存储器访问服务,存储器访问服务包括响应于加速器需要访问系统存储器,代表加速器执行TLB查找操作以将虚拟地址映射到物理地址。85PCT国际申请进入国家阶段日2014092986PCT国际申请的申请数据PCT/US2012/0316762012033087PCT国际申请的公布数据WO2013/147885EN2013100351INTCL权利要求书2页说明书13页附图14页19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书13页附图14页10申请公布号CN1042049。
3、90ACN104204990A1/2页21一种装置,包括加速器,包括一个或多个执行单元EU,用于执行特定的指令集;以及至加速器的前端核,包括通信耦合到所述加速器并与所述加速器共享的转换后备缓冲器TLB,并且向所述加速器提供存储器访问服务,所述存储器访问服务包括响应于加速器需要访问系统存储器,代表加速器执行TLB查找操作以将虚拟地址映射到物理地址,存储器层次结构,包括通信耦合到所述前端核和所述加速器且经由TLB查找操作提供的物理地址访问的系统存储器。2如权利要求1所述的装置,其特征在于,所述前端核还包括页步行器模块,用于在对于当前的存储器访问不存在TLB条目时确定虚拟至物理映射,所述页步行器模块。
4、访问系统存储器以确定所述加速器所需的映射。3如权利要求2所述的装置,其特征在于,所述页步行器模块更新TLB以包括虚拟至物理地址映射。4如权利要求3所述的装置,其特征在于,所述前端核还包括页错误处理器以重新开始未更新TLB之后导致页错误的指令。5如权利要求4所述的装置,其特征在于,所述前端核还包括TLB否决处理器,用于响应于检测到特定的页已经被限制由特定系统组件使用,执行TLB否决操作,所述TLB否决操作导致特定页的TLB条目被冲刷。6如权利要求1所述的装置,其特征在于,所述前端核包括用于执行X86操作系统代码的核。7如权利要求1所述的装置,其特征在于,所述加速器包括用于执行图形指令的图形加速器。
5、。8如权利要求7所述的装置,其特征在于,所述加速器包括用于执行图形指令的多个执行单元EU。9如权利要求8所述的装置,其特征在于,所述前端核包括用于调度在EU上执行图形指令的调度器。10如权利要求8所述的装置,其特征在于,所述加速器包括存储器管理器,用于生成将由前端核服务的TLB查找和TLB未命中信号。11一种装置,包括加速器装置,包括一个或多个执行单元EU,用于执行特定的指令集;以及至加速器装置的前端核装置,包括通信耦合到加速器并与加速器共享的转换后备缓冲器TLB,并且向所述加速器装置提供存储器访问服务,所述存储器访问服务包括响应于加速器需要访问系统存储器,代表加速器装置执行TLB查找操作以将。
6、虚拟地址映射到物理地址,存储器层次结构装置,包括通信耦合到所述前端核装置和所述加速器装置且经由TLB查找操作提供的物理地址访问的系统存储器。12如权利要求11所述的装置,其特征在于,所述前端核装置还包括页步行器装置,用于在对于当前的存储器访问不存在TLB条目时确定虚拟至物理映射,所述页步行器装置访问系统存储器以确定所述加速器装置所需的映射。13如权利要求12所述的装置,其特征在于,所述页步行器装置更新TLB以包括虚拟至权利要求书CN104204990A2/2页3物理地址映射。14如权利要求13所述的装置,其特征在于,所述前端核装置还包括页错误处理器以重新开始在已经更新TLB之后导致页错误的指令。
7、。15如权利要求14所述的装置,其特征在于,所述前端核装置还包括TLB否决处理器装置,用于响应于检测到特定的页已经被限制由特定系统组件使用,执行TLB否决操作,所述TLB否决操作导致特定页的TLB条目被冲刷。16如权利要求11所述的装置,其特征在于,所述前端核装置包括用于执行X86操作系统代码的核。17如权利要求11所述的装置,其特征在于,所述加速器装置包括用于执行图形指令的图形加速器。18如权利要求17所述的装置,其特征在于,所述加速器装置包括用于执行图形指令的多个执行单元EU。19如权利要求18所述的装置,其特征在于,所述前端核装置包括用于调度在EU上执行图形指令的调度器装置。20如权利要。
8、求18所述的装置,其特征在于,所述加速器装置包括存储器管理器,用于生成将由前端核装置服务的TLB查找和TLB未命中信号。21一种方法,包括将前端核通信耦合到加速器,所述前端核监视由所述加速器生成的存储器访问操作;确定转换后备缓冲器TLB条目是否存在于由所述前端核管理的TLB中,以服务由所述加速器生成的存储器访问操作;如果是,则将所述TLB条目提供给所述加速器;如果不是,则生成页步行操作以确定所述加速器所需的虚拟至物理映射;以及通信耦合存储器层次结构,所述存储器层次结构包括到所述前端核和所述加速器且使得能经由TLB查找操作提供的物理地址访问的系统存储器。22如权利要求21所述的方法,其特征在于,。
9、页步行操作包括访问系统存储器中的页以执行虚拟至物理映射。23如权利要求22所述的方法,其特征在于,还包括更新TLB以包括从系统存储器读取的虚拟至物理映射。24如权利要求23所述的方法,其特征在于,还包括导致所述加速器重新执行需要虚拟至物理存储器转换的指令;以及将映射从TLB提供给加速器。25如权利要求21所述的方法,其特征在于,还包括响应于确定特定的页已经被限制由特定组件使用,在前端核上执行TLB否决操作,所述TLB否决操作导致与该特定页相关联的条目从TLB冲刷。权利要求书CN104204990A1/13页4在使用共享虚拟存储器的处理器中加速操作的装置和方法发明领域0001本发明的实施例一般涉。
10、及计算机系统的领域。更具体地,本发明的实施例涉及在使用共享虚拟存储器的处理器中加速操作的装置和方法。背景技术0002指令集,或指令集架构ISA是涉及编程的计算机架构的一部分,并可以包括原生数据类型、指令、寄存器架构、寻址模式、存储器架构、中断、异常处理、以及外部输入和输出I/O操作。术语指令在本申请中一般表示宏指令,宏指令是被提供给处理器或指令转换器,该指令转换器例如,利用静态二进制转换、包括动态编译的动态二进制转换转换、变形、仿真或以其他方式将指令转换成将由处理器处理的一个或多个其他指令以供执行的指令作为对比,微指令或微操作“微操作”或“UOPS”是处理器的解码器解码宏指令的结果。0003I。
11、SA与微架构不同,微架构是实现该指令集的处理器的内部设计。具有不同微架构的处理器可共享共同的指令集。例如,奔腾四PENTIUM4处理器、酷睿CORETM处理器、以及来自加利福尼亚州桑尼威尔SUNNYVALE的超微半导体有限公司ADVANCEDMICRODEVICES,INC的诸多处理器执行几乎相同版本的X86指令集在更新的版本中加入了一些扩展,但具有不同的内部设计。例如,ISA的相同寄存器架构可以在不同的微架构中使用公知的技术以不同方法来实现,公知的技术包括专用物理寄存器、使用寄存器重命名机制例如,使用寄存器别名表RAT、重排序缓冲器ROB、以及引退寄存器组;使用多个寄存器映射和寄存器池的一个。
12、或多个动态分配物理寄存器,等等。除非另行指出,术语寄存器架构、寄存器组和寄存器在本文中用于指代对软件/编程者可见的寄存器以及指令指定寄存器的方式。在需要特殊性的场合,将使用定语逻辑的、架构的或软件可见的来指示寄存器架构中的寄存器/寄存器组,同时不同的定语将用于指示给定微架构中的寄存器例如物理寄存器、重排序缓冲器、引退寄存器、寄存器池。0004指令集包括一个或多个指令格式。给定指令格式定义多个字段位的数量、位的位置等以指定将要被执行的操作操作码以及该操作将要执行的操作数等等。通过定义指令模板或子格式,一些指令格式被进一步分解。例如,可将给定指令格式的指令模板定义成具有该指令格式的字段的不同子集所。
13、包括的字段通常是相同顺序,但至少一些由于包括更少的字段而具有不同的位位置和/或定义成对给定字段的解释不同。因此,利用给定指令格式而且如果定义,则按照该指令格式的指令模板中的给定一个模板来表达ISA的每个指令,并且ISA的每个指令包括用于指定其操作和操作数的字段。例如,示例性的ADD加法指令具有特定的操作码和指令格式,该指令格式包括用于指定该操作码的操作码字段和用于选择操作数源1/目的地和源2的操作数字段;并且该ADD指令在指令流中的出现将具有在操作数字段中的特定内容,该特定内容选择特定操作数。0005科学应用、金融应用、自动向量化通用应用、RMS识别、挖掘和合成应用以及视觉和多媒体应用诸如,2。
14、D/3D图形、图像处理、视频压缩/解压缩、语音识别算法和音频处说明书CN104204990A2/13页5理通常需要对大量数据项执行相同的操作被称为“数据并行性”。单指令多数据SIMD指的是使得处理器对多个数据项执行一操作的一种类型的指令。SIMD技术尤其适用于将寄存器中的多个位逻辑地划分成多个固定大小的数据元素的处理器,其中每个数据元素表示单独的值。例如,可将256位寄存器中的位指定为要进行操作的源操作数,作为4个单独的64位打包数据元素四字Q尺寸数据元素、8个单独的32位打包数据元素双字D尺寸数据元素、16个单独的16位打包数据元素字W尺寸数据元素、或32个单独的8位数据元素字节B尺寸数据元。
15、素。该数据类型可被称为打包数据类型或向量数据类型,并且该数据类型的操作数被称为打包数据操作数或向量操作数。换句话说,打包数据项或向量指的是打包数据元素的序列,而打包数据操作数或向量操作数是SIMD指令或称为打包数据指令或向量指令的源操作数或目的地操作数。0006作为示例,一种类型的SIMD指令指定了将要以纵向方式对两个源向量操作数执行的单个向量操作,用于生成具有相同尺寸的、具有相同数量的数据元素并且按照相同数据元素次序的目的地向量操作数也被称为结果向量操作数。源向量操作数中的数据元素被称为源数据元素,而目的地向量操作数中的数据元素被称为目的地或结果数据元素。这些源向量操作数具有相同尺寸并且包含。
16、相同宽度的数据元素,因此它们包含相同数量的数据元素。两个源向量操作数中的相同位位置中的源数据元素形成数据元素对也称为对应的数据元素;即,每个源操作数的数据元素位置0中的数据元素相对应,每个源操作数中的数据元素位置1中的数据元素相对应,以此类推。对这些源数据元素对中的每一个分别执行该SIMD指令指定的操作,以产生匹配数量的结果数据元素,并且因此每一对源数据元素具有相应的结果数据元素。由于该操作是纵向的,且由于结果向量操作数是相同尺寸、具有相同数量的数据元素并且结果数据元素按照与源向量操作数相同的数据元素顺序被存储,所以结果数据元素处于结果向量操作数中与它们在源向量操作数中的相应源数据元素对相同的。
17、位位置中。除了这种示例性类型的SIMD指令之外,存在各种各样其他类型的SIMD指令例如仅具有一个源向量操作数或具有超过两个源向量操作数、以横向方式操作、产生不同尺寸的结果向量操作数、具有不同尺寸的数据元素和/或具有不同的数据元素次序的SIMD指令。应当理解,术语目的地向量操作数或目的地操作数被定义为执行由指令指定的操作的直接结果,包括将该目的地操作数存储在一位置处可以是由该指令指定的寄存器或存储器地址处,使得它可作为源操作数由另一指令访问通过该另一指令指定同一位置。0007诸如具有包括X86、MMXTM、流式SIMD扩展SSE、SSE2、SSE3、SSE41以及SSE42指令的指令集的CORE。
18、TM处理器所采用的SIMD技术之类的SIMD技术已经实现了应用性能的重大改进。已经推出和/或发布了被称为高级向量扩展AVXAVX1和AVX2和利用向量扩展VEX编码方案的附加的SIMD扩展集参见例如2011年10月的64和IA32架构软件开发者手册;以及参见2011年6月的高级向量扩展编程参考。0008附图简述0009以下描述和附图用于示出本发明的实施例。在附图中0010图1A是示出根据本发明的实施例的示例性有序流水线以及示例性寄存器重命名的无序发布/执行流水线两者的框图;说明书CN104204990A3/13页60011图1B是示出根据本发明的各实施例的要包括在处理器中的有序架构核的示例性实。
19、施例和示例性的寄存器重命名的无序发布/执行架构核的框图。0012图2是根据本发明的实施例的具有集成的存储器控制器和图形器件的单核处理器和多核处理器的框图。0013图3示出根据本发明一个实施例的系统的框图;0014图4示出了根据本发明的实施例的第二系统的框图;0015图5示出了根据本发明的实施例的第三系统的框图;0016图6示出了根据本发明的实施例的片上系统SOC的框图;0017图7是根据本发明的实施例的对照使用软件指令转换器将源指令集中的二进制指令转换成目标指令集中的二进制指令的框图。0018图8示出用于在中央处理单元和图形处理单元共享虚拟存储器的系统处理页错误的当前实现;0019图9示出包括。
20、加速器组件和前端核的本发明的一个实施例;0020图10AC示出根据本发明的不同实施例的方法;0021图11A是根据本发明的实施例的单个处理器核以及它与管芯上互连网络的连接及其二级L2高速缓存的本地子集的框图;以及0022图11B是根据本发明的实施例的图11A中处理器核的一部分的展开图。0023详细描述0024示例性处理器架构和数据类型0025图1A是示出根据本发明的实施例的示例性有序流水线和示例性的寄存器重命名的无序发布/执行流水线的框图。图1B是示出根据本发明的各实施例的要包括在处理器中的有序架构核的示例性实施例和示例性的寄存器重命名的无序发布/执行架构核的框图。图1AB中的实线框示出了有序。
21、流水线和有序核,而可选增加的虚线框示出了寄存器重命名的、无序发布/执行流水线和核。给定有序方面是无序方面的子集的情况下,将描述无序方面。0026在图1A中,处理器流水线100包括取出级102、长度解码级104、解码级106、分配级108、重命名级110、调度也称为分派或发布级112、寄存器读取/存储器读取级114、执行级116、写回/存储器写入级118、异常处理级122和提交级124。0027图1B示出了包括耦合到执行引擎单元150的前端单元130的处理器核190,且执行引擎单元和前端单元两者都耦合到存储器单元170。核190可以是精简指令集计算RISC核、复杂指令集计算CISC核、超长指令字。
22、VLIW核或混合或替代核类型。作为又一选项,核190可以是专用核,诸如例如网络或通信核、压缩引擎、协处理器核、通用计算图形处理器单元GPGPU核、或图形核等等。0028前端单元130包括耦合到指令高速缓存单元134的分支预测单元132,该指令高速缓存单元耦合到指令的地址转换后备缓冲器TLB136,该转换后备缓冲器耦合到指令取出单元138,指令取出单元耦合到解码单元140。解码单元140或解码器可解码指令,并生成从原始指令解码出的、或以其他方式反映原始指令的、或从原始指令导出的一个或多个微操作、微代码进入点、微指令、其他指令、或其他控制信号作为输出。解码单元140可使用各种不同的机制来实现。合适。
23、的机制的示例包括但不限于查找表、硬件实现、可编程逻辑阵说明书CN104204990A4/13页7列PLA、微代码只读存储器ROM等。在一个实施例中,核190包括例如,在解码单元140中或否则在前端单元130内的用于存储某些宏指令的微代码的微代码ROM或其他介质。解码单元140耦合至执行引擎单元150中的重命名/分配器单元152。0029执行引擎单元150包括重命名/分配器单元152,该重命名/分配器单元152耦合至引退单元154和一个或多个调度器单元156的集合。调度器单元156表示任何数目的不同调度器,包括预留站、中央指令窗等。调度器单元156耦合到物理寄存器组单元158。每个物理寄存器组单。
24、元158表示一个或多个物理寄存器组,其中不同的物理寄存器组存储一种或多种不同的数据类型,诸如标量整数、标量浮点、打包整数、打包浮点、向量整数、向量浮点、状态例如,作为要执行的下一指令的地址的指令指针等。在一个实施例中,物理寄存器组单元158包括向量寄存器单元、写掩码寄存器单元和标量寄存器单元。这些寄存器单元可以提供架构向量寄存器、向量掩码寄存器、和通用寄存器。物理寄存器组单元158与引退单元154重叠以示出可以用来实现寄存器重命名和无序执行的各种方式例如,使用重新排序缓冲器和引退寄存器组;使用将来的文件、历史缓冲器和引退寄存器组;使用寄存器映射和寄存器池等等。引退单元154和物理寄存器组单元1。
25、58耦合到执行群集160。执行群集160包括一个或多个执行单元162的集合和一个或多个存储器访问单元164的集合。执行单元162可以对各种类型的数据例如,标量浮点、打包整数、打包浮点、向量整型、向量浮点执行各种操作例如,移位、加法、减法、乘法。尽管一些实施例可以包括专用于特定功能或功能集合的多个执行单元,但其他实施例可包括全部执行所有功能的仅一个执行单元或多个执行单元。调度器单元156、物理寄存器组单元158和执行群集160被示为可能有多个,因为某些实施例为某些类型的数据/操作创建分开的流水线例如,标量整型流水线、标量浮点/打包整型/打包浮点/向量整型/向量浮点流水线,和/或各自具有其自己的调。
26、度器单元、物理寄存器组单元和/或执行群集的存储器访问流水线以及在分开的存储器访问流水线的情况下,实现其中仅该流水线的执行群集具有存储器访问单元164的某些实施例。还应当理解,在使用分开的流水线的情况下,这些流水线中的一个或多个可以为无序发布/执行,并且其余流水线可以为有序发布/执行。0030存储器访问单元164的集合耦合到存储器单元170,该存储器单元包括耦合到数据高速缓存单元174的数据的地址TLB单元172,其中数据高速缓存单元耦合到二级L2高速缓存单元176。在一个示例性实施例中,存储器访问单元164可包括加载单元、存储地址单元和存储数据单元,其中的每一个均耦合至存储器单元170中的数据。
27、TLB单元172。指令高速缓存单元134还耦合到存储器单元170中的第二级L2高速缓存单元176。L2高速缓存单元176耦合到一个或多个其他级的高速缓存,并最终耦合到主存储器。0031作为示例,示例性寄存器重命名的、无序发布/执行核架构可以如下实现流水线1001指令取出138执行取出和长度解码级102和104;2解码单元140执行解码级106;3重命名/分配器单元152执行分配级108和重命名级110;4调度器单元156执行调度级112;5物理寄存器组单元158和存储器单元170执行寄存器读取/存储器读取级114;执行群集160执行执行级116;6存储器单元170和物理寄存器组单元158执行写。
28、回/存储器写入级118;7各单元可牵涉到异常处理级122;以及8引退单元154和物理寄存器组单元158执行提交级124。0032核190可支持一个或多个指令集例如,X86指令集具有与较新版本一起添加说明书CN104204990A5/13页8的一些扩展;加利福尼亚州桑尼维尔市的MIPS技术公司的MIPS指令集;加利福尼州桑尼维尔市的ARM控股的ARM指令集具有诸如NEON等可选附加扩展,其中包括本文中描述的各指令。在一个实施例中,核190包括用于支持打包数据指令集扩展例如,AVX1、AVX2和/或先前描述的一些形式的一般向量友好指令格式U0和/或U1的逻辑,从而允许很多多媒体应用使用的操作能够使。
29、用打包数据来执行。0033应当理解,核可支持多线程化执行两个或更多个并行的操作或线程的集合,并且可以按各种方式来完成该多线程化,此各种方式包括时分多线程化、同步多线程化其中单个物理核为物理核正在同步多线程化的各线程中的每一个线程提供逻辑核、或其组合例如,时分取出和解码以及此后诸如用超线程化技术来同步多线程化。0034尽管在无序执行的上下文中描述了寄存器重命名,但应当理解,可以在有序架构中使用寄存器重命名。尽管所示出的处理器的实施例还包括分开的指令和数据高速缓存单元134/174以及共享L2高速缓存单元176,但替代实施例可以具有用于指令和数据两者的单个内部高速缓存,诸如例如一级L1内部高速缓存。
30、或多个级别的内部高速缓存。在一些实施例中,该系统可包括内部高速缓存和在核和/或处理器外部的外部高速缓存的组合。或者,所有高速缓存都可以在核和/或处理器的外部。0035图2是根据本发明的各实施例可能具有一个以上核、可能具有集成存储器控制器、以及可能具有集成图形器件的处理器200的框图。图2中的实线框示出具有单个核202A、系统代理210、一个或多个总线控制器单元216的集合的处理器200,而虚线框的可选附加示出具有多个核202AN、系统代理单元210中的一个或多个集成存储器控制器单元214的集合以及专用逻辑208的替代处理器200。0036因此,处理器200的不同实现可包括1CPU,其中专用逻辑。
31、208是集成图形和/或科学吞吐量逻辑其可包括一个或多个核,并且核202AN是一个或多个通用核例如,通用的有序核、通用的无序核、这两者的组合;2协处理器,其中核202AN是旨在主要用于图形和/或科学吞吐量的多个专用核;以及3协处理器,其中核202AN是多个通用有序核。因此,处理器200可以是通用处理器、协处理器或专用处理器,诸如例如网络或通信处理器、压缩引擎、图形处理器、GPGPU通用图形处理单元、高吞吐量的集成众核MIC协处理器包括30个或更多核、或嵌入式处理器等。该处理器可以被实现在一个或多个芯片上。处理器200可以是一个或多个衬底的一部分,和/或可以使用诸如例如BICMOS、CMOS或NM。
32、OS等的多个加工技术中的任何一个技术将处理器200实现在一个或多个衬底上。0037存储器层次结构包括在各核内的一个或多个级别的高速缓存、一个或多个共享高速缓存单元206的集合、以及耦合至集成存储器控制器单元214的集合的外部存储器未示出。该共享高速缓存单元206的集合可以包括一个或多个中间级高速缓存,诸如二级L2、三级L3、四级L4或其他级别的高速缓存、末级高速缓存LLC、和/或其组合。尽管在一个实施例中,基于环的互连单元212将集成图形逻辑208、共享高速缓存单元206的集合以及系统代理单元210/集成存储器控制器单元214互连,但替代实施例可使用任何数量的公知技术来将这些单元互连。在一个实。
33、施例中,可以维护一个或多个高速缓存单元206和核202AN之间的一致性COHERENCY。0038在一些实施例中,核202AN中的一个或多个核能够多线程化。系统代理210包括说明书CN104204990A6/13页9协调和操作核202AN的那些组件。系统代理单元210可包括例如功率控制单元PCU和显示单元。PCU可以是或包括用于调整核202AN和集成图形逻辑208的功率状态所需的逻辑和组件。显示单元用于驱动一个或多个外部连接的显示器。0039核202AN在架构指令集方面可以是同构的或异构的;即,这些核202AN中的两个或更多个核可能能够执行相同的指令集,而其他核可能能够执行该指令集的仅仅子集或。
34、不同的指令集。0040图36是示例性计算机架构的框图。本领域已知的对膝上型设备、台式机、手持PC、个人数字助理、工程工作站、服务器、网络设备、网络集线器、交换机、嵌入式处理器、数字信号处理器DSP、图形设备、视频游戏设备、机顶盒、微控制器、蜂窝电话、便携式媒体播放器、手持设备以及各种其他电子设备的其他系统设计和配置也是合适的。一般地,能够包含本文中所公开的处理器和/或其它执行逻辑的多个系统和电子设备一般都是合适的。0041现在参考图3,所示出的是根据本发明一个实施例的系统300的框图。系统300可以包括一个或多个处理器310、315,这些处理器耦合到控制器中枢320。在一个实施例中,控制器中枢。
35、320包括图形存储器控制器中枢GMCH390和输入/输出中枢IOH350其可以在分开的芯片上;GMCH390包括存储器和图形控制器,存储器340和协处理器345耦合到该存储器和图形控制器;IOH350将输入/输出I/O设备360耦合到GMCH390。或者,存储器和图形控制器中的一个或两者可以被集成在处理器内如本文中所描述的,存储器340和协处理器345直接耦合到处理器310以及控制器中枢320,控制器中枢320与IOH350处于单个芯片中。0042附加处理器315的任选性质用虚线表示在图3中。每一处理器310、315可包括本文中描述的处理核中的一个或多个,并且可以是处理器200的某一版本。00。
36、43存储器340可以是例如动态随机存取存储器DRAM、相变存储器PCM或这两者的组合。对于至少一个实施例,控制器中枢320经由诸如前端总线FSB之类的多分支总线、诸如快速通道互连QPI之类的点对点接口、或者类似的连接395与处理器310、315进行通信。0044在一个实施例中,协处理器345是专用处理器,诸如例如高吞吐量MIC处理器、网络或通信处理器、压缩引擎、图形处理器、GPGPU、或嵌入式处理器等等。在一个实施例中,控制器中枢320可以包括集成图形加速器。0045在物理资源310、1315之间可以存在包括架构、微架构、热、和功耗特征等的一系列品质度量方面的各种差异。0046在一个实施例中,。
37、处理器310执行控制一般类型的数据处理操作的指令。协处理器指令可嵌入在这些指令中。处理器310将这些协处理器指令识别为应当由附连的协处理器345执行的类型。因此,处理器310在协处理器总线或者其他互连上将这些协处理器指令或者表示协处理器指令的控制信号发布到协处理器345。协处理器345接受并执行所接收的协处理器指令。0047现在参考图4,所示为根据本发明的一实施例的更具体的第一示例性系统400的框图。如图4所示,多处理器系统400是点对点互连系统,并包括经由点对点互连450耦合的第一处理器470和第二处理器480。处理器470和480中的每一个都可以是处理器200的某一版本。在本发明的一个实施。
38、例中,处理器470和480分别是处理器310和315,而协说明书CN104204990A7/13页10处理器438是协处理器345。在另一实施例中,处理器470和480分别是处理器310和协处理器345。0048处理器470和480被示为分别包括集成存储器控制器IMC单元472和482。处理器470还包括作为其总线控制器单元的一部分的点对点PP接口476和478;类似地,第二处理器480包括点对点接口486和488。处理器470、480可以使用点对点PP电路478、488经由PP接口450来交换信息。如图4所示,IMC472和482将各处理器耦合至相应的存储器,即存储器432和存储器434,这。
39、些存储器可以是本地附连至相应的处理器的主存储器的部分。0049处理器470、480可各自经由使用点对点接口电路476、494、486、498的各个PP接口452、454与芯片组490交换信息。芯片组490可以可选地经由高性能接口439与协处理器438交换信息。在一个实施例中,协处理器438是专用处理器,诸如例如高吞吐量MIC处理器、网络或通信处理器、压缩引擎、图形处理器、GPGPU、或嵌入式处理器等等。0050共享高速缓存491可以被包括在任一处理器之内,或被包括在两个处理器外部但仍经由PP互连与这些处理器连接,从而如果将某处理器置于低功率模式时,可将任一处理器或两个处理器的本地高速缓存信息存。
40、储在该共享高速缓存中。0051芯片组490可经由接口496耦合至第一总线416。在一个实施例中,第一总线416可以是外围组件互连PCI总线,或诸如PCIEXPRESS总线或其它第三代I/O互连总线之类的总线,但本发明的范围并不受此限制。0052如图4所示,各种I/O设备414可以连同总线桥418耦合到第一总线416,总线桥将第一总线416耦合至第二总线420。在一个实施例中,诸如协处理器、高吞吐量MIC处理器、GPGPU的处理器、加速器诸如例如图形加速器或数字信号处理器DSP单元、现场可编程门阵列或任何其他处理器的一个或多个附加处理器415耦合到第一总线416。在一个实施例中,第二总线420可。
41、以是低引脚计数LPC总线。各种设备可以被耦合至第二总线420,在一个实施例中这些设备包括例如键盘/鼠标422、通信设备427以及诸如可包括指令/代码和数据430的盘驱动器或其它大容量存储设备的存储单元428。此外,音频I/O424可以被耦合至第二总线420。注意,其它架构是可能的。例如,代替图4的点对点架构,系统可以实现多分支总线或其它这类架构。0053现在参考图5,所示为根据本发明的实施例的更具体的第二示例性系统500的框图。图4和图5中的相同部件用相同附图标记表示,并从图5中省去了图4中的某些方面,以避免使图5的其它方面变得模糊。0054图5示出处理器470、480可分别包括集成存储器和I。
42、/O控制逻辑“CL”472和482。因此,CL472、482包括集成存储器控制器单元并包括I/O控制逻辑。图5不仅示出存储器432、434耦合至CL472、482,而且还示出I/O设备514也耦合至控制逻辑472、482。传统I/O设备515被耦合至芯片组490。0055现在参照图6,所示出的是根据本发明一个实施例的SOC600的框图。在图2中,相似的部件具有同样的附图标记。另外,虚线框是更先进的SOC的可选特征。在图6中,互连单元602被耦合至应用处理器610,该应用处理器包括一个或多个核202AN的集合以及共享高速缓存单元206;系统代理单元210;总线控制器单元216;集成存储器控制器单。
43、元214;一组或一个或多个协处理器620,其可包括集成图形逻辑、图像处理器、音频处理器说明书CN104204990A108/13页11和视频处理器;静态随机存取存储器SRAM单元630;直接存储器存取DMA单元632;以及用于耦合至一个或多个外部显示器的显示单元640。在一个实施例中,协处理器620包括专用处理器,诸如例如网络或通信处理器、压缩引擎、GPGPU、高吞吐量MIC处理器、或嵌入式处理器等等。该协处理器或者支持与应用处理器相同的ISA,或者具有控制指令或控制寄存器接口的不同类型和方法。0056本文公开的机制的各实施例可以被实现在硬件、软件、固件或这些实现方法的组合中。本发明的实施例可。
44、实现为在可编程系统上执行的计算机程序或程序代码,该可编程系统包括至少一个处理器、存储系统包括易失性和非易失性存储器和/或存储元件、至少一个输入设备以及至少一个输出设备。0057可将程序代码诸如图4中示出的代码430应用于输入指令,以执行本文描述的各功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。为了本申请的目的,处理系统包括具有诸如例如数字信号处理器DSP、微控制器、专用集成电路ASIC或微处理器之类的处理器的任何系统。0058程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理系统通信。在需要时,也可用汇编语言或机器语言来实现程序代码。事实上,本文中描述的。
45、机制不限于任何特定编程语言的范围。在任一情形下,该语言可以是编译语言或解释语言。0059至少一个实施例的一个或多个方面可以由存储在机器可读介质上的表示性指令来实现,指令表示处理器中的各种逻辑,指令在被机器读取时使得该机器制作用于执行本文所述的技术的逻辑。被称为“IP核”的这些表示可以被存储在有形的机器可读介质上,并被提供给多个客户或生产设施以加载到实际制造该逻辑或处理器的制造机器中。0060这样的机器可读存储介质可以包括但不限于通过机器或设备制造或形成的物品的非瞬态的有形安排,其包括存储介质,诸如硬盘;任何其它类型的盘,包括软盘、光盘、紧致盘只读存储器CDROM、紧致盘可重写CDRW以及磁光盘。
46、;半导体器件,例如只读存储器ROM、诸如动态随机存取存储器DRAM和静态随机存取存储器SRAM之类的随机存取存储器RAM、可擦除可编程只读存储器EPROM、闪存、电可擦除可编程只读存储器EEPROM;相变存储器PCM;磁卡或光卡;或适于存储电子指令的任何其它类型的介质。0061因此,本发明的各实施例还包括非瞬态的有形机器可读介质,该介质包含指令或包含设计数据,诸如硬件描述语言HDL,它定义本文中描述的结构、电路、装置、处理器和/或系统特征。这些实施例也被称为程序产品。0062在一些情况下,指令转换器可用来将指令从源指令集转换至目标指令集。例如,指令转换器可以变换例如使用静态二进制变换、包括动态。
47、编译的动态二进制变换、变形、仿真或以其它方式将指令转换成将由核来处理的一个或多个其它指令。指令转换器可以用软件、硬件、固件、或其组合实现。指令转换器可以在处理器上、在处理器外、或者部分在处理器上且部分在处理器外。0063图7是根据本发明的各实施例的对照使用软件指令转换器将源指令集中的二进制指令转换成目标指令集中的二进制指令的框图。在所示的实施例中,指令转换器是软件指令转换器,但作为替代,该指令转换器可以用软件、固件、硬件或其各种组合来实现。图7示出可以使用X86编译器704来编译利用高级语言702的程序,以生成可以由具有至少一个X86指令集核的处理器716原生执行的X86二进制代码706。具有。
48、至少一个X86指令集说明书CN104204990A119/13页12核的处理器716表示任何处理器,这些处理器能通过兼容地执行或以其他方式处理以下内容来执行与具有至少一个X86指令集核的英特尔处理器基本相同的功能1英特尔X86指令集核的指令集的本质部分,或2目标为在具有至少一个X86指令集核的英特尔处理器上运行的应用或其它程序的目标代码版本,以便取得与具有至少一个X86指令集核的英特尔处理器基本相同的结果。X86编译器704表示用于生成X86二进制代码706例如,目标代码的编译器,该二进制代码706可通过或不通过附加的链接处理在具有至少一个X86指令集核的处理器716上执行。类似地,图7示出可。
49、以使用替代的指令集编译器708来编译利用高级语言702的程序,以生成可以由不具有至少一个X86指令集核的处理器714例如具有执行加利福尼亚州桑尼维尔市的MIPS技术公司的MIPS指令集、和/或执行加利福尼亚州桑尼维尔市的ARM控股公司的ARM指令集的核的处理器原生执行的替代指令集二进制代码710。指令转换器712被用来将X86二进制代码706转换成可以由不具有X86指令集核的处理器714原生执行的代码。该转换后的代码不大可能与替代性指令集二进制代码710相同,因为能够这样做的指令转换器难以制造;然而,转换后的代码将完成一般操作并由来自替代指令集的指令构成。因此,指令转换器712通过仿真、模拟或任何其它过程来表示允许不具有X86指令集处理器或核的处理器或其它电子设备执行X86二进制代码706的软件、固件、硬件或其组合。指令转换器712的二进制代码或者基于X86指令集或者基于非X86指令集。它表示从X86至替换指令的实际转换,或者发生在X86处理器上或者在没有X86支持的处理器上。0064在使用共享虚拟存储器的处理器中加速操作的装置和方法0065由本专利申请的受让人以及可能的其它人设计的未来处理器将使用中央处理单元CPU和图形处理单元GPU之间的共享虚拟存储器SVM。图8示出一种这样的实现,其中运行在GPU820上的代码示为用户空间851内的图形线程GTHREAD810使用运行在C。