用于处理结构中非投递式存储器写入事务的方法、装置和系统与流程

文档序号:24527882发布日期:2021-04-02 10:05阅读:79来源:国知局
用于处理结构中非投递式存储器写入事务的方法、装置和系统与流程

本申请为分案申请,其原申请是于2019年5月28日(国际申请日为2017年11月20日)向中国专利局提交的专利申请,申请号为201780073628.6,发明名称为“用于处理结构中非投递式存储器写入事务的方法、装置和系统”。

实施例涉及通信,更具体而言,涉及集成电路中的通信。



背景技术:

高性能和低功率段中的主流处理器芯片正越来越多地集成诸如图形、显示引擎、安全引擎等的附加功能。由于服务器、台式机、移动电话、嵌入式、超移动和移动互联网设备部分的不同要求,此类设计高度细分。不同的市场寻求使用单芯片片上系统(soc)解决方案,该解决方案将处理器内核、存储器控制器、输入/输出控制器和其他段特定加速元件中的至少一些组合到单个芯片上。然而,由于难以在单个管芯上集成不同的知识产权(ip)块,因此聚集这些特征的设计出现得很慢。之所以尤其会如此,是因为ip模块可以具有各种要求和设计唯一性,并且可能需要许多专用线、通信协议等以使它们能够并入soc中。结果,开发的每个soc或其他高级半导体器件需要大量的设计复杂性和定制以将不同的ip块合并到单个器件中。之所以会如此,是因为通常需要重新设计给定的ip块以适应给定soc的接口和信令要求。

许多计算机系统甚至这种系统内的集成电路都包含外围部件互连(pci)技术,其提供用于事务通信的规则和用于处理系统内的数据流的各种协议。在pci有序互连中,使用一些明确定义的语义处理生产者-消费者(p/c)流。最值得注意的是,这些语义包括:(1)来自生产者的写入始终是投递式的,因为这些写入在被源发送时被认为是完成的,而无需接收到明确的确认(也称为射后不理(fireandforget)事务);以及(2)系统确保在消费者使用数据之前已将写入处理到全局观察点。这些语义实现了pci有序互连的功能正确性。虽然这种布置很有效,但是当非基于pci的设备被并入具有pci有序互连的系统中时会出现困难,因为在确保满足这些语义时可能出现相当大的复杂性。

附图说明

图1是根据本发明实施例的基本互连架构的方框图。

图2是根据本发明实施例的互连架构的进一步细节的方框图。

图3是根据本发明实施例的soc的高级方框图。

图4是根据本发明另一实施例的系统的方框图。

图5是根据本发明实施例的边带互连的方框图。

图6是根据本发明实施例的可用于边带接口的信令的细节的方框图。

图7是根据本发明实施例的方法的流程图。

图8是根据本发明另一实施例的方法的流程图。

图9是可以使用实施例的示例性系统的方框图。

图10是代表性计算机系统的方框图。

图11是根据本发明实施例的系统的方框图。

具体实施方式

在各种实施例中,诸如处理器、片上系统(soc)以及其他根据基于外围部件互连(pci)的协议实施通信技术的集成电路被配置为实现额外的事务机制,即在这些设备中的非投递式存储器写入事务。尽管没有pci规范支持非投递式存储器写入事务的概念,也是如此。注意,在本文描述的实施例中,诸如soc内的端点的某些结构(fabric)和设备可以被配置为适应并处理这些非投递式存储器写入事务。但是,许多其他部件(例如其他结构实例、端点和传统种类的其他设备)可能没有配置用于处理这些事务。应理解非投递式存储器写入事务是由源发送并发往目标存储器或其他储存设备的源认为未完成的事务,直到源收到确认为止,例如以不包括数据的完成的形式,表示已全局观察到事务的数据。

注意,如本文所使用的,术语“pci”、“基于pci”或“pci兼容”是指符合一个或多个pci规范的诸如设备、结构、端点等的部件,所述pci规范包括例如,pci本地总线规范3.0版(2004年2月3日)和/或pci-express(pcie)基本规范3.1a版(2015年12月7日),以及支持这样的pci规范的事务排序规则。更具体而言,这种符合pci的结构因此是“pci排序的结构”。相应地,如本文所使用的,术语“非pci”、“非基于pci”或“不符合pci”用于指代不符合这些规范且不遵照这种规范的排序规则的部件。因此更具体而言,这些非pci结构不是pci排序的结构。作为示例,非pci设备可以包括被设计用于符合其他通信协议的设备,包括高级微控制器总线架构(amba)类型协议,诸如高级可扩展接口(axi)、开放核心协议(ocp)或其他专有协议或非专有协议。例如,诸如arteris和sonics的供应商的结构可以被认为是非pci结构。

在各种实施例中,pci排序系统被配置为通过使得能够在结构的主(primary)接口上支持非投递式写入事务类型来支持跨多个信道的p/c排序。非投递式写入事务符合所有pci排序规则,并且提供非投递式写入事务所需的显式确认语义(例如,通过没有数据的完成)。这种非投递式写入事务提供了确保跨pci排序结构中所有信道的p/c正确性的可扩展性,而无需在系统的其余部分中的任何额外的能力。还要理解本文描述的非投递式存储器事务是针对批量数据写入的。此类写入事务与非投递式输入/输出写入(iowr)和配置写入(cfgwr)事务形成对比。但是,这些其他非投递式事务从根本上写入不同的空间(不是存储器),并且大小限制为单个双字(dw)。相反,本文描述的存储器事务可以达到1024dw的完整pci最大有效载荷大小。

通过在结构的主接口内支持非投递式写入事务语义,可以将来自非基于pci的知识产权(ip)逻辑的非投递式写入事务直接映射到主接口上的非投递式写入。如果非pciip逻辑使用多个信道,则所有此类信道在主接口上1:1映射,无需任何额外的自定义更改。因此,非基于pci的ip逻辑可以原生地自然集成到支持非投递式写入的结构中。非投递式写入事务还可以简化将多个信道用于服务质量(qos)的传统符合pci的ip逻辑的p/c握手。在一些实施例中,在结构中支持这种非投递式写入语义通过消除定制的跨信道握手技术而简化了整体逻辑复杂性。

实施例可以用于许多不同类型的系统。作为示例,本文描述的实施方式可以与半导体器件结合使用,所述半导体器件例如可以在单个半导体管芯上制造的处理器或其他半导体器件。在特定实施方式中,设备可以是片上系统(soc)或其他高级处理器或芯片组,其包括各种同构和/或异构处理代理,以及诸如网络部件的附加部件,例如路由器、控制器、桥接设备、设备、存储器等。

一些实施方式可以用于根据给定规范设计的半导体器件中,例如由诸如英特尔公司的半导体制造商发布的集成片上系统结构(iosf)规范,以提供标准化的管芯上互连协议,用于在芯片内连接知识产权(ip)块,包括soc。这样的ip块可以是各种类型的,包括通用处理器,例如有序或无序内核、固定功能单元、图形处理器、io控制器、显示控制器、媒体处理器等。通过标准化互连协议,因此实现了用于在不同类型的芯片中广泛使用ip代理的框架。因此,半导体制造商不仅可以在各种各样的客户群中有效地设计不同类型的芯片,而且还可以通过规范使第三方能够设计诸如ip代理之类的逻辑以包含到这些芯片中。此外,通过为互连协议的许多方面提供多种选择,有效地适应了设计的重用。尽管本文结合该iosf规范描述了实施例,但是应该理解,本发明的范围不限于此,实施例可以用于许多不同类型的系统中。

现在参考图1,示出了根据本发明实施例的基本互连架构的方框图。如图1所示,系统10可以是片上系统或任何其他半导体设备的一部分,例如高度集成的处理器复合体或集成io集线器(hub),并且包括用作各种部件之间的互连的结构20。在所示的实施方式中,这些部件包括ip代理30和40,它们可以是独立的ip块,以提供各种功能,例如计算能力、图形能力、媒体处理能力等。因此,在一个实施例中,这些ip代理是具有符合iosf规范的接口的ip块或逻辑设备。如进一步所见,结构20还与桥接器50接口连接。尽管为了便于说明,在图1的实施例中未示出,但应理解桥接器50可以用作与(例如在同一芯片上或在一个或多个不同芯片上的)其他系统部件的接口。

如下面将进一步描述的,图1中所示的每个元件,即,结构、ip代理和桥接器可以包括一个或多个接口,以处理各种信号的通信。这些接口可以根据iosf规范定义,iosf规范定义了在这些接口上进行通信的信号,用于代理之间信息交换的协议,用于启动和管理信息交换的仲裁和流控制机制,所支持的地址解码和转换能力,用于带内或带外通信的消息收发,电源管理,测试,验证和调试支持。

iosf规范包括可以为每个代理提供的3个独立接口,即主接口、边带消息接口及可测试性和调试接口(设计用于测试(dft),设计用于调试(dfd)接口)。根据iosf规范,代理可以支持这些接口的任何组合。具体而言,代理可以支持0-n个主接口,0-n个边带消息接口和可选的dfx接口。但是,根据规范,代理必须支持这3个接口中的至少一个。

结构20可以是在不同代理之间移动数据的硬件元件。注意,结构20的拓扑结构将是产品特定的。作为示例,结构可以实现为总线、分层总线、级联集线器等。现在参考图2,示出了根据本发明实施例的互连架构的进一步细节的方框图。如图2所示,iosf规范定义了三种不同的结构,即主接口结构112,dfx结构114和边带结构116。主接口结构112用于代理和存储器之间的所有带内通信,例如,在主机处理器(例如中央处理单元(cpu)或其他处理器)和代理之间。主接口结构112还可以实现代理和支持的结构之间的对等事务的通信。包括存储器、输入输出(io)、配置和带内消息收发的所有事务类型可以通过主接口结构112传送。因此,主接口结构可以用作用于在对等体之间传送的数据和/或与上游部件的通信的高性能接口。

在各种实施方式中,主接口结构112实现拆分事务协议以实现最大并发性。即,该协议提供请求阶段、授权阶段以及命令和数据阶段。在各种实施例中,主接口结构112支持三种基本请求类型:投递式、非投递式和完成。通常,投递式事务是这样一种事务,其在由源发送时就被源认为是完成的,并且源并不接收关于该事务的完成或其他确认消息。投递式事务的一个此类示例可以是写入事务。相反,源不认为非投递式事务已完成,直至接收到返回消息(即完成)。非投递式事务的一个示例是读取事务,其中源代理请求读取数据。因此,完成消息提供所请求的数据。

另外,主接口结构112支持不同信道的概念,以提供用于整个系统中的独立数据流的机制。如将进一步描述的,主接口结构112本身可以包括发起事务的主控(master)接口和接收事务的目标接口。主主控接口还可以细分为请求接口、命令接口和数据接口。请求接口可用于提供对事务命令和数据移动的控制。在各种实施例中,主接口结构112可以支持pci排序规则和列举。

相应地,边带接口结构116可以是用于传送所有带外信息的标准机制。通过这种方式,可以避免针对给定实施方式设计的专用线,增强了在各种芯片之间ip重用的能力。因此,与使用专用线来处理诸如状态、中断、电源管理、熔丝分配、配置阴影、测试模式等的带外通信的ip块相比,根据iosf规范的边带接口结构116标准化所有带外通信,促进不同设计之间ip重用的模块化并降低其验证要求。通常,边带接口结构116可以用于传送非性能关键信息,而不是用于性能关键数据传输(其通常可以通过主接口结构112传送)。

如图2中进一步所示,ip代理130、140和150均可以包括相应的主接口、边带接口和dfx接口。然而,如上所述,在一些实施例中,每个代理不需要包括这些接口中的每一个,并且给定的ip代理可以仅包括单个接口。

使用iosf规范,可以设计具有各种不同功能的各种类型的芯片。现在参考图3,示出了根据本发明实施例的soc的高级方框图。如图3所示,soc200可以包括各种部件,所有部件都可以集成在单个半导体管芯上,以提供高速和低功率的各种处理能力,消耗相对少量的占用面积。如图3所示,soc200包括多个内核2050-205n。在各种实施例中,内核205可以是相对简单的有序内核或更复杂的无序内核。或者,在单个soc中可以存在有序和无序内核的组合。如所见的,内核205可以通过一致性互连215互连,一致性互连215还耦合到高速缓冲存储器210,例如共享的最后一级高速缓存(llc)。尽管本发明的范围在此方面不受限制,但是在一个实施例中,一致性互连215可以根据可从intelcorporation,santaclara,california获得的quickpathinterconnect(qpi)tm规范。

如图3中进一步所见的,一致性互连215可以经由桥接器220与结构250通信,结构250可以是iosf结构。一致性互连215还可以经由集成存储器控制器215与片外存储器(为了便于图示图3的实施例而未示出)进一步通信,并进一步通过桥接器230与结构250通信。

如图3中进一步所见的,各种部件可以耦合到结构250,包括内容处理模块(cpm)240,其可以用于执行诸如安全处理、密码功能等的各种操作。另外,显示处理器245可以是为相关显示器呈现视频的媒体处理流水线的一部分。

如进一步所见,结构250可以进一步耦合到ip代理255。尽管为了便于在图3的实施例中图示而仅示出了单个代理,但应理解在不同实施例中多个这样的代理是可能的。另外,为了实现与其他片上设备的通信,结构250还可以与pcietm控制器260和通用串行总线(usb)控制器265通信,这两者都可以根据这些协议与各种设备通信。最后,图3的实施例中示出的是桥接器270,其可用于与其他协议的附加部件通信,所述其他协议例如ocp或amba协议。尽管在图3的实施例中示出了这些特定部件,但应理解,本发明的范围不以这种方式受限制,并且在不同的实施例中,可以存在附加的或不同的部件。

此外,应理解,尽管在图3中示出为单个管芯soc实施方式,但实施例还可以在多个芯片经由非iosf接口彼此通信的系统中实现。现在参考图4,示出的是根据本发明另一实施例的系统的方框图。如图4所示,该系统可以包括soc200',其可以包括类似于上面关于图3所讨论的那些部件的许多部件,及另外的管芯外接口275。因此,soc200'可以与另一个芯片280通信,其可以包括各种功能以实现这两个芯片之间以及与各种片外设备(例如根据一个或多个不同规范的不同外围设备)的通信。具体地,第二芯片280被示出为包括管芯外接口282,以便能够与soc200'通信,并且soc200'又与结构290通信,结构290可以是根据本发明实施例的iosf结构。如所见的,结构290还可以耦合到与片外设备通信的各种控制器,包括pcietm控制器292、usb控制器294和桥接器296。

如上所述,在各种实施例中,所有带外通信可以经由边带消息接口。现在参考图5,示出了根据本发明实施例的边带互连的方框图。如图5所示,边带接口系统175包括多个路由器180和190,它们在图5的实施例中示出为经由点对点(ptp)互连185耦合。每个路由器又可以耦合到各种端点,这些端点可以是例如ip代理或给定系统的其他部件。具体地,路由器180耦合到多个端点186a-186e,并且路由器190耦合到多个端点196x-196z。

现在参考图6,示出了根据本发明实施例的可用于边带接口的信令的细节的方框图。如图6所示,示出了路由器180和端点186之间的互连。如所见的,路由器180可以包括目标接口181和主控接口182。通常,目标接口181可以被配置为接收输入信号,而主控接口182可以被配置为传送输出信号。如所见的,端点186也包括主控接口187和目标接口188。

图6还示出了可用于边带接口的各种信令的细节,包括信用信息、放置信息、消息结束信令和数据。具体地,可以通过边带接口作为非投递式信用更新信号(npcup)和投递式信用更新信号(pccup)传送信用更新。另外,可以提供放置信号(npput和pcput)。此外,可以传送消息结束(eom)信号。最后,可以通过有效载荷分组传送数据,在一个实施例中,有效载荷分组可以通过字节宽的通信信道实现。尽管在图6的实施例中以这种特定实施方式示出,但是本发明的范围不限于此。每当信用放置信号为高时,这意味着正在返回信用。每当放置信号为高时,这意味着有效载荷(例如,数据)信号有效。每当放置和eom同时为高时,这意味着当前有效载荷是消息的最后一个有效载荷。注意,接口在同一时钟周期内既可以“放置”数据有效载荷,又可以“放置”信用。

在一个实施例中,非投递式写入事务类型可以包括不同的寻址模式,包括32位地址非投递式存储器写入请求(npmwr32)和64位地址非投递式存储器写入请求(npmwr64)。这些非投递式写入可以配置为使用非投递式流请求类型,并且将返回不含数据的单个完成(cpl)作为响应。

在一些实施例中,可以允许多个未完成的非投递式写入请求。如果在投递式和非投递式写入之间需要任何排序,则可以将代理配置为在发出任何投递式写入请求之前等待未完成的非投递式存储器写入请求的全部完成。该语义确保了写入数据的一致性,因为根据排序规则,投递式写入可以超越非投递式写入。非投递式存储器写入可以遵循与任何其他非投递式请求相同的排序规则,并且还遵循与任何其他存储器事务相同的规则。

在实施例中,如果针对非基于pci的结构或设备,则可以仅从根联合体发送非投递式写入。在所有其他基于pci的结构(例如pcie交换结构或集成设备结构)中,不支持非投递式写入。在这种情况下,要路由到不支持非投递式写入的基于pci的结构的非投递式写入事务可以由根联合体或其他知晓(aware)非投递式写入事务的结构转换或终止。

例如,如果代理提供对不支持非投递式存储器写入请求的传统根联合体集成端点的访问,则结构可以简单地返回不支持的请求完成。现有代理不会发生任何更改,因为主结构中的错误处理程序可以处理此完成。

在另一示例中,代理可以提供对不支持非投递式存储器写入的结构的访问。例如,当pcie根端口可以提供对pcie层级结构的访问时,虚拟根端口可以提供对不支持非投递式存储器写入的集成设备结构或传统主结构的访问,桥接代理可以将非投递式存储器写入事务映射到投递式存储器写入事务(例如,mwr32或mwr64),并生成完成以发送给原始请求者。这确保了互操作性和向后兼容性。

使用实施例,可以更容易且灵活地将第三方非基于pci的ip逻辑集成到基于pci的客户端、服务器和设备中。此外,实施例还可以简化在多个信道上实现p/c排序的pci排序结构的设计。通过为受支持的结构和设备中的所有信道定义和支持非投递式写入事务,具有用于qos的附加虚拟信道的ip逻辑不必添加任何额外的握手以确保正确的处理。这样,本文描述的实施例提供了非投递式写入事务能力,其是用于跨任何信道的p/c排序的自然可扩展的机制。结果,实施例可以通过支持可以实现复杂qos机制的pci和非pciip逻辑来增强可扩展性。

实施例可以基于pci排序规则提供支持非投递式写入事务的排序规则。对于下面的表1,列表示第一个发出的事务,行表示随后发出的事务。表条目指示两个事务之间的排序关系。

表1

在表1中:投递式请求是存储器写入请求或消息请求;非投递式读取请求是配置读取请求、i/o读取请求或存储器读取请求;非投递式写入请求是存储器写入请求;具有数据的npr(非投递式请求)是配置写入请求、i/o写入请求或原子操作请求;非投递式请求是读取请求或具有数据的npr。

每个表条目指示两个事务之间的排序关系。表条目定义如下:(1)是-必须允许第二个事务(行)越过第一个(列)以避免死锁。发生阻塞时,需要第二个事务越过第一个事务。公平被理解为防止饥饿(starvation)。如果没有针对该消息类型的信用,则会阻塞消息;(2)否-必须不允许第二个事务(行)越过第一个(列)事务;以及(3)是/否-没有要求,使得第二个事务可任选地越过第一个事务。

下面的表2提供了上表1中的每个条目的解释。

表2

a2a不准投递式请求越过另一个投递式请求,除非a2b适用。

a2b允许具有ro集的投递式请求越过另一个投递式请求。如果两个请求者id不同,则允许具有ido集的投递式请求越过另一个投递式请求。

a3、a4投递式请求必须能够越过非投递式请求以避免死锁。

a5a允许投递式请求越过完成,但除非a5b适用,否则无需能够越过完成。

a5b在pciexpress至pci/pci-x桥接器内部,其pci/pci-x总线段以传统pci模式运行,对于沿pciexpress至pci方向传输的事务,投递式请求必须能够越过完成以避免死锁。

b2a不准读取或写入请求越过投递式请求,除非b2b适用。

b2b如果两个请求者id不同,则允许具有ido集的读取或写入请求越过投递式请求。

c2a除非c2b适用,否则不准具有数据的npr越过投递式请求。

c2b允许具有数据和ro集的npr越过投递式请求。如果两个请求者id不同,则允许具有数据和ido集的npr越过投递式请求。

b3、b4,

c3、c4允许非投递式请求越过另一个非投递式请求。

b5、c5允许非投递式请求越过完成。

d2a除非d2b适用,否则不准完成越过投递式请求。

d2b允许i/o或配置写入完成越过投递式请求。允许具有ro集的完成越过投递式请求。如果完成的完成者id与投递式请求的请求者id不同,则允许具有ido集的完成越过投递式请求。

d3、d4完成必须能够越过非投递式请求以避免死锁。

d5a允许具有不同事务id的完成越过彼此。

d5b不准具有相同事务id的完成越过彼此。这确保与单个存储器读取请求关联的多个完成将保持升序地址顺序。

现在参考图7,示出了根据本发明实施例的方法的流程图。具体而言,图7中所示的方法300是用于生成在给定信道上要从诸如端点的代理输出的非投递式存储器写入事务,以及在代理中的多个未决事务之间进行仲裁的方法。这样,方法300可以由给定代理的硬件电路、软件、固件和/或其组合来执行,例如接口电路,其可以包括仲裁器以执行方法300的至少一部分。如图所示,方法300开始于选择存在于端点的非投递式队列中的非投递式写入事务(框310)。作为示例,代理的主接口(其可以是被配置用于支持非投递式存储器写入事务的基于pci的ip逻辑或具有这种支持的非pci设备)可以根据各种仲裁技术选择该非投递式存储器写入事务,所述仲裁技术例如循环法(roundrobin),基于优先级的仲裁等。控制接下来传递到框320,其中可以从端点发出非投递式写入事务。作为一个示例,该事务可以在给定信道(例如,第一信道)上发出到上游设备,例如经由到结构的直接通信或经由中间桥接器或其他设备。此时,这个非投递式存储器写入事务是未完成的,并且在接收到完成之前保持未完成状态,以指示对该写入事务的全局观察。

仍然参考图7,代理内可以发生附加操作。如图所示,在菱形框330处,可以确定在端点的投递式队列内是否存在投递式写入事务。如果不存在,则控制传递到菱形框340,其中可以确定在端点的非投递式队列中是否存在另外的非投递式(读取或写入)事务。如果是,则控制返回到框310,其中也可以继续从代理发送该事务。即,可以在一个或多个非投递式写入事务未完成(即尚未接收到完成)的同时发出一个或多个非投递式事务。

仍然参考图7,相反,如果确定在投递式队列中存在投递式写入事务,则控制传递到菱形框350以确定是否在端点中接收到针对非投递式写入事务的完成。如果没有,将保留这个投递式写入事务,直到接收到这种完成。因此,如图所示,当确定接收到完成时,控制从菱形框350传递到框360,其中可以选择投递式写入事务用于输出,并且因此在框370处,从端点发出该投递式写入事务。注意,没有关于投递式写入事务的进一步处理,因为在全局观察该事务时没有之后接收到完成,因为这种投递式写入事务是射后不理操作。应理解,尽管在图7的实施例中以这种高级别示出,但许多变化和替代方案是可能的。

现在参考图8,示出了根据本发明另一实施例的方法的流程图。更具体而言,图8中所示的方法400可以由硬件电路、软件、固件和/或其组合来执行。更具体而言,方法400是用于处理被配置为支持非投递式写入事务的结构或其他接收设备中的非投递式写入的方法。这样,在实施例中,方法400可以由结构的控制逻辑执行。

如图所示,方法400开始于从端点接收结构中的非投递式写入事务(框410)。注意,在一些情况下,端点可以直接耦合到结构,而在其他情况下,可以存在一个或多个中间设备,例如耦合在端点和结构之间的桥接器或其他设备。控制接下来传递到菱形框420以确定该非投递式写入事务是否发往耦合到知晓非投递式写入的设备的存储器。如本文所述,此类设备可包括各种不同的基于pci和非基于pci的设备,其被配置为支持如本文所述的非投递式写入事务。如果确定事务发往支持的设备,则控制传递到框430,其中将非投递式写入事务路由到设备。作为示例,可以将该事务路由到存储器控制器,该存储器控制器又耦合到存储器。在其他情况下,可以将事务路由到一个或多个中间设备,这些中间设备又耦合到存储器。在任何情况下,控制传递到框440,其中从设备接收完成以指示已全局观察到非投递式存储器写入事务。此后在框450处,可以将该完成路由到端点。请注意,在端点处收到该完成时,存储器写入事务从端点的角度来看完成了,因此不再是未完成的,因此投递式写入事务或具有关于该非投递式写入事务的排序要求的其他事务可以继续。

仍然参考图8,相反,如果确定非投递式写入事务发往耦合到不知晓非投递式写入的设备的存储器,则控制传递到菱形框460,其中结构确定是否允许将该非投递式写入事务转换为投递式写入事务。该确定可以基于结构是否能够转换事务。如果不允许,则控制传递到框470,其中可以终止事务。在某些情况下,不支持的消息可以作为完成发送回请求者。相反,如果确定允许转换,则控制传递到框480,其中可以将事务转换为投递式写入事务并路由到设备。更进一步,应理解,结构可以生成完成并将该完成发送回端点,以使端点能够完成其非投递式存储器写入事务(框490)。注意,可以在最后的可能位置生成该完成,例如在连接到不支持非投递式存储器写入事务的代理的端口上的出口(egress)之前。应理解,尽管在图8的实施例中以这种高级别示出,但许多变化和替代方案是可能的。

现在参考图9,示出了可以使用实施例的示例性系统的方框图。在图9的图示中,系统1300可以是移动低功率系统,例如平板电脑,2:1平板电脑,平板手机设备或其他可转换或独立平板电脑系统。如图所示,存在soc1310并且可以被配置为作为设备的应用处理器操作。soc1310可以包括代理和结构以支持本文所述的pci上下文内的非投递式存储器写入事务。

各种设备可以耦合到soc1310。在所示的图示中,存储器子系统包括耦合到soc1310的闪存1340和dram1345。此外,触摸板1320耦合到soc1310以提供显示能力和通过触摸的用户输入,包括在触摸板1320的显示器上提供虚拟键盘。为了提供有线网络连接,soc1310耦合到以太网接口1330。外围集线器1325耦合到soc1310以实现与各种外围设备的接口连接,例如可以通过各种端口或其他连接器中的任何一种耦合到系统1300。

除了soc1310内的内部电源管理电路和功能之外,pmic1380耦合到soc1310以提供基于平台的电源管理,例如,基于系统是由电池1390供电还是通过ac适配器1395进行ac供电。除了基于电源的电源管理之外,pmic1380还可以基于环境和使用条件执行平台电源管理活动。更进一步,pmic1380可以将控制和状态信息传送到soc1310,以在soc1310内引起各种电源管理操作。

仍然参考图9,为了提供无线能力,wlan单元1350耦合到soc1310并且进而耦合到天线1355。在各种实施方式中,wlan单元1350可以根据一个或多个无线协议提供通信。

如进一步所示,多个传感器1360可以耦合到soc1310。这些传感器可以包括各种加速度计、环境和其他传感器,包括用户手势传感器。最后,音频编解码器1365耦合到soc1310以提供到音频输出设备1370的接口。当然应理解,尽管在图9中以该特定实施方式示出,但许多变化和替代方案是可能的。

现在参考图10,示出了代表性计算机系统的方框图,所述代表性计算机系统例如笔记本电脑、ultrabooktm或其他小型系统。在一个实施例中,处理器1410包括微处理器、多核处理器、多线程处理器、超低电压处理器、嵌入式处理器或其他已知处理元件。在所示实施方式中,处理器1410用作主处理单元和中央集线器,用于与系统1400的各种部件中的许多部件通信,并且可以包括如本文所述的电源管理电路。作为一个示例,处理器1410被实现为soc,并且可以包括支持如本文所述的非投递式存储器写入事务的代理和结构。在一个实施例中,处理器1410与系统存储器1415通信。作为说明性示例,系统存储器1415通过多个存储器设备或模块实现,以提供给定的系统存储器量。

为了提供诸如数据、应用程序、一个或多个操作系统等信息的持久储存,大容量储存器1420也可以耦合到处理器1410。在各种实施例中,为了能够实现更薄更轻的系统设计以及提高系统响应性,可以通过ssd实现该大容量储存器,或者可以主要使用硬盘驱动器(hdd)并带有少量ssd储存器充当ssd高速缓存来实现大容量储存器,以实现在断电事件期间的上下文状态和其他此类信息的非易失性储存,以便在重新启动系统活动时可以发生快速上电。还如图10所示,闪存设备1422可以例如经由串行外围接口(spi)耦合到处理器1410。该闪存设备可以提供系统软件(包括基本输入/输出软件(bios)以及系统的其他固件)的非易失性储存。

各种输入/输出(i/o)设备可以存在于系统1400内。在图10的实施例中具体示出的是显示器1424,其可以是高清lcd或led面板,其进一步提供触摸屏1425。在一个实施例中,显示器1424可以经由显示器互连耦合到处理器1410,显示器互连可以实现为高性能图形互连。触摸屏1425可以经由另一互连耦合到处理器1410,在一个实施例中,该互连可以是i2c互连。如图10中进一步所示,除了触摸屏1425之外,通过触摸的用户输入也可以经由触摸板1430进行,触摸板1430可以配置在机架内并且还可以耦合到与触摸屏1425相同的i2c互连。

出于感知计算和其他目的,各种传感器可以存在于系统内并且可以以不同的方式耦合到处理器1410。某些惯性和环境传感器可以通过传感器集线器1440(例如经由i2c互连)耦合到处理器1410。在图10所示的实施例中,这些传感器可以包括加速计1441、环境光传感器(als)1442、罗盘1443和陀螺仪1444。其他环境传感器可以包括一个或多个热传感器1446,在一些实施例中,热传感器1446经由系统管理总线(smbus)总线耦合到处理器1410。

还参见图10,各种外围设备可以经由低引脚数(lpc)互连耦合到处理器1410。在所示的实施例中,各种部件可以通过嵌入式控制器1435耦合。这些部件可以包括键盘1436(例如,经由ps2接口耦合)、风扇1437和热传感器1439。在一些实施例中,触摸板1430也可以经由ps2接口耦合到ec1435。另外,诸如可信平台模块(tpm)1438的安全处理器也可以经由该lpc互连耦合到处理器1410。

系统1400可以以各种方式(包括无线方式)与外部设备通信。在图10所示的实施例中,存在各种无线模块,每个无线模块可以对应于配置用于特定无线通信协议的无线电设备。用于诸如近场的短距离的无线通信的一种方式可以是经由nfc单元1445,其可以在一个实施例中经由smbus与处理器1410通信。注意,经由该nfc单元1445,彼此靠近的设备可以通信。

如图10中进一步所见,附加的无线单元可以包括其他短距离无线引擎,包括wlan单元1450和bluetoothtm单元1452。使用wlan单元1450,可以实现wi-fitm通信,而经由bluetoothtm单元1452,可以进行短距离bluetoothtm通信。这些单元可以经由给定链路与处理器1410通信。

另外,例如,可以经由wwan单元1456进行根据蜂窝或其他无线广域协议的无线广域通信,wwan单元1456又可以耦合到订户身份模块(sim)1457。此外,为了能够接收和使用位置信息,还可以存在gps模块1455。注意,在图10所示的实施例中,wwan单元1456和诸如相机模块1454的集成捕获设备可以经由给定链路进行通信。

为了提供音频输入和输出,可以经由数字信号处理器(dsp)1460实现音频处理器,其可以经由高清晰度音频(hda)链路耦合到处理器1410。类似地,dsp1460可以与集成编码器/解码器(codec)和放大器1462通信,后者又可以耦合到可以在机箱内实现的输出扬声器1463。类似地,放大器和codec1462可以耦合以从麦克风1465接收音频输入,在一个实施例中,麦克风1465可以经由双阵列麦克风(例如数字麦克风阵列)来实现,以提供高质量的音频输入以实现系统内各种操作的语音激活控制。还要注意,音频输出可以从放大器/codec1462提供给耳机插孔1464。尽管在图10的实施例中用这些特定的部件示出,但应理解本发明的范围不限于此。

可以在许多不同的系统类型中实现实施例。现在参考图11,示出的是根据本发明的实施例的系统的方框图。如图11所示,多处理器系统1500是点对点互连系统,并且包括经由点对点互连1550耦合的第一处理器1570和第二处理器1580。如图11所示,处理器1570和1580中的每一个可以是多核处理器,包括第一和第二处理器内核(即,处理器内核1574a和1574b以及处理器内核1584a和1584b),尽管在处理器中可能存在更多的内核。每个处理器可以包括pcu(1575、1585)或其他电源管理逻辑以执行基于处理器的电源管理。这样的处理器可以进一步被配置为处理本文所述的pci上下文内的非投递式存储器写入事务。

仍然参考图11,第一处理器1570还包括存储器控制器集线器(mch)1572和点对点(p-p)接口1576和1578。类似地,第二处理器1580包括mch1582和p-p接口1586和1588。如图10所示,mch1572和1582将处理器耦合到各自的存储器,即存储器1532和存储器1534,它们可以是本地附接到相应处理器的系统存储器(例如,dram)的一部分。第一处理器1570和第二处理器1580可以分别经由p-p互连1562和1564耦合到芯片组1590。如图11所示,芯片组1590包括p-p接口1594和1598。

此外,芯片组1590包括接口1592,以通过pp互连1539将芯片组1590与高性能图形引擎1538耦合。相应地,芯片组1590可以经由接口1596耦合到第一总线1516。如图10所示,各种输入/输出(i/o)设备1514可以耦合到第一总线1516,以及将第一总线1516耦合到第二总线1520的总线桥接器1518。在一个实施例中,各种设备可以耦合到第二总线1520,包括例如,键盘/鼠标1522、通信设备1526和数据储存单元1528,诸如可包括代码1530的盘驱动器或其他大容量储存设备。此外,音频i/o1524可以耦合到第二总线1520。实施例可以结合到其他类型的系统中,包括诸如智能蜂窝电话、平板电脑、上网本、ultrabooktm等的移动设备。

以下示例涉及其他实施例。

在一个示例中,soc形成有半导体管芯,半导体管芯包括:多个代理,包括向存储器发出非投递式存储器写入事务的第一端点;以及用于耦合多个代理的结构,该结构包括具有多个信道的主接口,该结构包括基于pci的结构,该结构包括控制逻辑,用于将非投递式存储器写入事务引导到存储器,从存储器接收非投递式存储器写入事务的完成,并将完成路由到第一端点。

在示例中,第一端点在发出投递式写入事务之前等待接收完成,以确保写入数据一致性。

在示例中,完成不包括数据。

在示例中,结构经由第一端点的第一信道接收非投递式存储器写入事务,并且经由映射到第一端点的第一信道的结构的第一信道将非投递式存储器写入事务引导到存储器。

在示例中,第一端点在非投递式存储器写入事务未完成时发出第二非投递式存储器写入事务。

在示例中,第一端点在发出投递式写入事务之前等待接收第二非投递式存储器写入事务的第二完成,以确保写入数据一致性。

在示例中,第一端点包括非pci逻辑以原生地支持非投递式写入事务。

在示例中,该结构包括集成的片上系统结构,其中,集成的片上系统结构的协议并不原生地支持非投递式存储器写入事务。

在示例中,结构将非投递式存储器写入事务转换为投递式写入事务,并将投递式写入事务发送到不支持非投递式存储器写入事务的基于pci的结构。

在示例中,该结构将非投递式存储器写入事务转发到包括非基于pci的结构的第二结构,该非基于pci的结构原生地支持非投递式存储器写入事务。

在示例中,该结构阻止非投递式存储器写入事务越过投递式写入事务。

在另一示例中,一种方法包括:从soc的端点向soc的主结构发送非投递式存储器写入事务,以使主结构能够将非投递式写入事务引导到耦合到soc的存储器,端点包括基于pci的端点,主结构支持pci排序规则;当投递式写入事务存在于端点的投递式队列中时,确定端点是否接收到非投递式存储器写入事务的完成;并且阻止将投递式写入事务从端点发送到主结构,直到确定端点已经接收到非投递式存储器写入事务的完成。

在示例中,该方法还包括在端点接收到非投递式存储器写入事务的完成之前,将第二非投递式存储器写入事务从端点发送到主结构。

在示例中,该方法还包括在由端点发送的一个或多个先前的非投递式存储器写入事务未完成的同时,将多个非投递式存储器写入事务从端点发送到主结构。

在示例中,该方法还包括:将第二非投递式存储器写入事务从soc的第二端点发送到主结构,第二端点包括非基于pci的ip逻辑,并且主结构包括基于pci的结构,配置为支持非投递式存储器写入事务。

在示例中,该方法还包括:在端点中从请求者接收第二非投递式存储器写入事务;将第二非投递式存储器写入事务转换为投递式写入事务并将投递式写入事务发送到耦合到所述端点的第二结构,所述第二结构包括未配置为支持非投递式存储器写入事务的基于pci的结构;并将第二非投递式存储器写入事务的完成发送给请求者。

在另一示例中,包括指令的计算机可读介质用于执行任何上述示例的方法。

在另一示例中,包括数据的计算机可读介质由至少一个机器用于制造至少一个集成电路以执行以上示例中的任一个的方法。

在另一个示例中,一种装置包括用于执行以上示例中的任一个的方法的模块。

在又一示例中,一种系统包括:soc和耦合到soc的存储器。soc可以包括:一个或多个内核以执行指令;一致性互连,耦合到一个或多个内核;存储控制器,耦合到一致性互连;多个代理,包括:第一端点,发出非投递式存储器写入事务,第一端点包括基于pci的端点;第二非基于pci的端点,发出第二非投递式存储器写入事务;以及结构,耦合多个代理中的至少一些代理,该结构包括控制逻辑,用于将至少第一非投递式存储器写入事务引导到存储器,接收第一非投递式存储器写入事务的第一完成,并且将第一完成路由到第一端点。

在示例中,第二端点包括第三方ip逻辑。

在示例中,结构将第二非投递式存储器写入事务转发到第二结构,第二结构包括非基于pci的结构。

在示例中,第一端点在第一非投递式存储器写入事务未完成时发出另一个非投递式存储器写入事务,并且阻止发出投递式写入事务直到第一端点接收到所述完成和另一个非投递式存储器写入事务的另一个完成。

在又一示例中,一种装置包括:用于将非投递式存储器写入事务从端点发送到主结构以使主结构能够将非投递式写入事务引导到存储器的模块,该端点包括基于pci的端点,主结构支持pci排序规则;用于确定端点是否接收到非投递式存储器写入事务的完成的模块;以及用于阻止将存储在端点的投递式队列中的投递式写入事务从端点发送到主结构直到端点已经接收到非投递式存储器写入事务的完成的模块。

在示例中,该装置还包括用于在端点接收到非投递式存储器写入事务的完成之前,将第二非投递式存储器写入事务从端点发送到主结构的模块。

在示例中,该装置还包括用于在由端点发送的一个或多个先前的非投递式存储器写入事务未完成的同时,将多个非投递式存储器写入事务从端点发送到主结构的模块。

在示例中,该装置还包括用于将第二非投递式存储器写入事务从第二端点发送到主结构的模块,第二端点包括非基于pci的ip逻辑,并且主结构包括基于pci的结构,配置为支持非投递式存储器写入事务。

在示例中,该装置还包括:用于在端点中从请求者接收的第二非投递式存储器写入事务的模块;用于将第二非投递式存储器写入事务转换为投递式写入事务并将投递式写入事务发送到耦合到所述端点的第二结构的模块,所述第二结构包括未配置为支持非投递式存储器写入事务的基于pci的结构;以及用于将第二非投递式存储器写入事务的完成发送给请求者的模块。

应理解,上述实例的各种组合是可能的。

注意,术语“电路”和“电路系统”在本文中可互换使用。如本文所使用的,这些术语和术语“逻辑”用于指代单独的或以任何方式组合的模拟电路、数字电路、硬连线电路、可编程电路、处理器电路、微控制器电路、硬件逻辑电路、状态机电路和/或任何其他类型的物理硬件部件。实施例可以用在许多不同类型的系统中。例如,在一个实施例中,通信设备可以被布置为执行本文描述的各种方法和技术。当然,本发明的范围不限于通信设备,相反,其他实施例可以涉及用于处理指令的其他类型的装置,或者包括指令的一个或多个机器可读介质,指令响应于在计算设备上执行而使设备执行本文描述的一种或多种方法和技术。

实施例可以以代码实现,并且可以存储在其上存储有指令的非暂时性储存介质上,所述指令可以用于对系统进行编程以执行指令。实施例还可以以数据实现,并且可以存储在非暂时性储存介质上,数据如果由至少一个机器使用,则使至少一个机器制造至少一个集成电路以执行一个或多个操作。更进一步的实施例可以以包括信息的计算机可读储存介质实现,当制造到soc或其他处理器中时,所述信息用于配置soc或其他处理器执行一个或多个操作。储存介质可以包括但不限于任何类型的盘,包括软盘、光盘、固态驱动器(ssd)、紧致盘只读存储器(cd-rom)、可重写紧致盘(cd-rw),和磁光盘、半导体器件,诸如只读存储器(rom)、随机存取存储器(ram)(诸如动态随机存取存储器(dram)、静态随机存取存储器(sram))、可擦除可编程只读存储器(eprom)、闪存、电可擦除可编程只读存储器(eeprom)、磁卡或光卡,或适用于存储电子指令的任何其他类型的介质。

尽管已经关于有限数量的实施例描述了本发明,但是本领域技术人员将从中意识到许多修改和变化。所附权利要求旨在覆盖属于本发明的真实精神和范围内的所有这些修改和变化。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1