CN110928812A - 电子设备、电子系统和存储器控制器 - Google Patents
电子设备、电子系统和存储器控制器 Download PDFInfo
- Publication number
- CN110928812A CN110928812A CN201910878243.8A CN201910878243A CN110928812A CN 110928812 A CN110928812 A CN 110928812A CN 201910878243 A CN201910878243 A CN 201910878243A CN 110928812 A CN110928812 A CN 110928812A
- Authority
- CN
- China
- Prior art keywords
- path
- processor
- request
- memory controller
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1689—Synchronisation and timing concerns
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
根据一个整体方面,电子设备可包含经由第一路径和第二路径与存储器控制器耦接的处理器。第一路径可穿过连接存储器控制器与多个处理器的相干互连,多个处理器包含处理器。第二路径可绕过相干互连且具有相比于第一路径更低的时延。处理器可配置成将存储器访问请求发送到存储器控制器,且其中存储器访问请求包含采用第一路径或第二路径的路径请求。设备可包含存储器控制器,存储器控制器配置成履行存储器访问请求,且至少部分地基于路径请求,经由第一路径或第二路径将存储器访问结果的至少一部分发送到处理器。也提供一种电子系统和存储器控制器。
Description
相关申请案的交叉参考
本申请案主张2018年9月20日申请的标题为“异构SOC中的数据快速路径(DATAFAST PATH IN HETEROGENEOUS SOC)”的临时专利申请案第62/734,237号的优先权。这一先前提交的申请案的主题以引用的方式并入本文中。
技术领域
本说明书涉及计算机数据管理,且更具体地说涉及异构单片片上系统(system-on-a-chip;SOC)中的数据快速路径。
背景技术
芯片上的系统或片上系统(system on chip;SoC)是集成电路(integratedcircuit;IC),所述集成电路集成计算机或其它电子系统的所有(或大部分)组件。这些组件典型地包含中央处理单元(central processing unit;CPU)、存储器、输入/输出端口,且可能包含二级存储-上面所有组件在单个基底上。依据本申请案,这些组件可含有数字、模拟、混合信号以及常用射频信号处理功能。由于它们集成在单个电子基底上,因此相比于具有相等功能的多芯片设计,SoC消耗的功率以及占用的面积小得多。因为这一点,SoC在移动计算以及边缘计算市场中极为常见。片上系统通常用于嵌入式系统以及物联网。
存储器控制器是数字电路,所述数字电路管理进出于计算机的主存储器的数据流。存储器控制器可以是单独的芯片或集成到另一个芯片中,如放在相同的裸片上或作为微处理器的集成部分。存储器控制器含有读取且写入到动态随机存取存储器(dynamicrandom access memory;DRAM)所必需的逻辑。
在计算机架构中,高速缓存或存储器相干是最终存储于多个本地高速缓存中的共享资源数据的一致性。当客户在系统中维护共用存储器资源的高速缓存时,可能出现非相干数据的问题,特别是多处理系统中的CPU的情况。在具有用于每个处理器的单独高速缓存存储器的共享存储器多处理器系统中,可能具有共享数据的许多副本:一个副本在主存储器中以及一个副本在请求其的每个处理器的本地高速缓存中。当数据副本中的一个更改时,另一个副本必须反映那个更改。高速缓存相干性是确保共享操作数(数据)值的更改及时在整个系统中传播的规范。
发明内容
根据一个整体方面,电子设备可包含经由第一路径和第二路径与存储器控制器耦接的处理器。第一路径可穿过连接存储器控制器与多个处理器(包含处理器)的相干互连。第二路径可绕过相干互连且具有相比于第一路径更低的时延。处理器可配置成将存储器访问请求发送到存储器控制器,且其中存储器访问请求包含采用第一路径或第二路径的路径请求。电子设备可包含存储器控制器,所述存储器控制器配置成履行存储器访问请求,且至少部分地基于路径请求,经由第一路径或第二路径将存储访问的结果的至少一部分发送到处理器。
根据另一个整体方面,电子系统可包含经由至少一个慢速路径与存储器控制器耦接的异构多个处理器,其中经由慢速路径和快速路径两者将多个处理器的至少一个请求处理器与存储器控制器耦接,其中慢速路径穿过相干互连将存储器控制器与多个处理器连接,且其中快速路径绕过相干互连且具有相比于慢速路径更低的时延。电子系统可包含相干互连,所述相干互连配置成将多个处理器与存储器控制器连接且促进多个处理器之间的高速缓存相干性。电子系统可包含存储器控制器,所述存储器控制器配置成履行来自请求处理器的存储器访问请求,且至少部分地基于路径请求消息经由第一路径或第二路径将存储器访问的结果的至少一部分发送到请求处理器。
根据另一个整体方面,存储器控制器可包含慢速路径接口,所述慢速路径接口配置成响应于存储器访问将至少一响应消息发送到请求处理器,其中慢速路径穿过将存储器控制器与请求处理器连接的相干互连。存储器控制器可包含快速路径接口,所述快速路径接口配置成至少部分地响应于存储器访问将数据发送到请求处理器,其中快速路径将存储器控制器与请求处理器耦接且绕过相干互连,且其中快速路径具有比慢速路径更低的时延。存储器控制器可包含路径路由电路,所述路径路由电路配置成:作为存储器访问的一部分,接收来自相干互连的数据路径请求;至少部分地基于存储器访问和数据路径请求的结果而确定数据是否将经由慢速路径或快速路径发送。存储器控制器配置成:如果路径路由电路确定数据将经由慢速路径发送,那么数据和响应消息两者将经由慢速路径接口发送到请求处理器;以及如果路径路由电路确定数据将经由快速路径发送,那么数据将经由快速路径接口发送到请求处理器,且响应消息将经由慢速路径接口发送到请求处理器。
以下随附图式以及描述中阐述一或多个实施方案的细节。其它特征将从描述和图式且从权利要求书显而易见。
正如权利要求书中更完整地阐述,用于计算机数据管理且更具体地说用于异构单片片上系统(SOC)中的数据快速路径的系统和/或方法基本上如图式中所绘示和/或与图式中的至少一个结合所描述。
附图说明
图1是根据所公开主题的系统的实例实施例的框图。
图2A是根据所公开主题的系统的实例实施例的框图。
图2B是根据所公开主题的系统的实例实施例的框图。
图3是根据所公开主题的系统的实例实施例的框图。
图4是根据所公开主题的技术的实例实施例的流程图。
图5是可包含根据所公开主题的原理所形成的装置的信息处理系统的示意性框图。
各图式中的相同参考标号指示相同的元件。
附图标号说明
100、200、300:系统;
102、510:处理器;
103、105:时钟域交叉桥/桥;
104:相干互连/互连;
106:存储器控制器;
108:存储器系统;
112:读取请求消息/读取请求;
114:路径请求信号/路径请求消息/路径信号/路径请求/路径选择消息/请求;
114':新路径选择消息/路径请求消息/路径请求信号;
116:数据/消息;
118:读取响应消息/消息/响应/读取响应;
207、303:时钟域交叉桥;
210:快速路径/第二路径/路径;
218:消息/读取响应/第二读取响应/第二读取响应信号/信号/读取响应信号;
216:数据/信号;
220:路径/慢速路径;
226:数据/信号;
228:响应/读取响应消息/消息/额外信息/信号/读取响应信号/读取响应;
252:路径选择电路;
254、274:快速路径接口/接口;
256、276:慢速路径接口/接口;
262:路径补偿电路;
272:路径路由电路;
290:核心;
302:第二处理器/处理器;
312:读取请求;
316、318:信号;
400:技术;
402、404、406、408、410、412、414、416、418、420A、420B、456、466、470:框;
500:信息处理系统;
505:系统总线;
515:组合逻辑块;
520:易失性存储器;
530:非易失性存储器;
540:网络接口;
550:用户接口单元;
560:硬件组件;
570:软件组件。
具体实施方式
将在下文中参考随附图式更全面地描述各种实例实施例,随附图式中绘示了一些实例实施例。然而,本公开主题可以用许多不同形式实施,且不应解释为限于本文所阐述的实例实施例。确切地说,提供这些实例实施例使得本公开将是透彻和全面的,且将向本领域的技术人员充分地传达本发明所公开的主题的范围。在图式中,为了清楚起见可能会夸大层和区域的大小和相对大小。
将理解,当一个元件或层称作在另一元件或层“上”、“连接到(connected to)”、“耦接到(coupled to)”另一元件或层时,这个元件或层可直接在另一元件或层上、直接连接到或耦接到另一元件或层,或可能存在介入元件或层。相比之下,当一元件称作“直接”在另一元件或层“上”、“直接连接到(directly connected to)”、“直接耦接到(directlycoupled to)”另一元件或层时,不存在介入元件或层。相同标号始终指代相同元件。如本文中所使用,术语“和/或”包含相关联的所列项中的一或多个的任何和所有组合。
将理解,虽然本文中可使用术语第一、第二、第三等等来描述各种元件、组件、区域、层和/或区段,但这些元件、组件、区域、层和/或区段不应受到这些术语的限制。这些术语仅用于区分一个元件、组件、区域、层或区段与另一区域、层或区段。因此,在不脱离本公开主题的教示的情况下,下文所论述的第一元件、组件、区域、层或区段可称为第二元件、组件、区域、层或区段。
为易于描述,本文中可使用空间相对术语,如“在...下方”、“在...之下”、“低于”、“在...上方”、“高于”以及类似术语,以描述如图式中所说明的一个元件或特征与另一元件或特征的关系。将理解,空间相对术语既定涵盖装置在使用或操作中除图中描绘的定向外的不同定向。举例来说,如果图式中的装置倒过来,那么描述为在其它元件或特征“之下”或在其它元件或特征“下方”的元件将在其它元件或特征“上方”定向。因此,示范性术语“在...之下”可涵盖上方和下方两个定向。装置可以其它方式定向(旋转90度或处于其它定向),且本文中所用的空间相对描述词相应地进行解释。
类似地,为易于描述,可在本文中使用如“高”、“低”、“上拉”、“下拉”、“1”、“0”以及类似术语的电气术语来描述相对于其它电压电平或相对于如图式中所说明的另一元件或特征的电压电平或电流。应理解,电学相对术语意图涵盖装置在使用或操作中除图式中所描绘的电压或电流外的不同参考电压。举例来说,如果图式中的装置或信号反向或使用其它参考电压、电流或电荷,那么描述为“高”或“上拉”的元件与新参考电压或电流相比随后将为“低”或“下拉”。因此,示范性术语“高”可涵盖相对低或高的电压或电流。装置可以其它方式基于不同的电学参考帧,且本文中所使用的电学相对描述词相应地进行解释。
本文中所使用的术语仅出于描述特定实例实施例的目的,且并不意图限制本公开主题。如本文所使用,除非上下文另外明确指示,否则单数形式“一(a、an)”以及“所述”还意欲包含复数形式。将进一步理解,当用于本说明书中时,术语“包括(comprises)”和/或“包括(comprising)”指定存在所陈述的特征、整数、步骤、操作、元件和/或组件,但不排除存在或添加一或多个其它特征、整数、步骤、操作、元件、组件和/或其群组。
本文中参考作为理想化实例实施例(以及中间结构)的示意性图解的横截面图解来描述实例实施例。因而,应预期作为例如制造技术和/或公差的结果而从图解的形状的变化。因此,实例实施例不应当解释为限于本文中所说明的区域的特定形状,而应包含(例如)由制造引起的形状偏差。举例来说,图解说明为矩形的植入区通常将具有圆形或弯曲的特征和/或植入物浓度在其边缘处的梯度,而不是从植入区到非植入区的二元变化。类似地,由植入形成的埋入区可在埋入区与发生植入所在的表面之间的区域中产生一些植入。因此,图式中所说明的区域本质上是示意性的,且其形状并不意图说明装置的区域的实际形状且并不意图限制本公开主题的范围。
除非另外定义,否则本文中所使用的所有术语(包含技术和科学术语)具有本公开主题所属领域的普通技术人员通常所理解的相同意义。将进一步理解,如常用词典中所定义的术语等的术语应解释为具有与其相关技术的上下文中的含义一致的含义,且将不在理想化或过度正式意义上进行解释,除非明确地如此定义。
下文将参考随附图式详细解释实例实施例。
图1是根据所公开主题的系统100的实例实施例的框图。在所说明的实施例中,将系统100的操作描述为简化的、单处理器的、传统的使用案例。其它图式描述更复杂的使用案例。
在各种实施例中,系统100可包含片上系统。在另一实施例中,系统100可以是更传统的计算机系统中的一或多个离散组件,计算机系统例如膝上型计算机、台式计算机、工作台、个人数字助理、智能电话、平板计算机以及其它适当的计算机或虚拟机或其虚拟计算装置。
在所说明的实施例中,系统100可包含处理器102。处理器102可配置成实行一或多个指令。作为那些指令的一部分,处理器102可从存储器系统108请求数据。在所说明的实施例中,处理器102可将读取请求消息112发送或传输到存储器控制器以发起存储器访问。在这类实施例中,读取请求消息112可包含将读取的数据的存储器地址以及所请求的数据的量。在各种实施例中,读取请求消息112还可包含其它信息,如数据传递的方式、请求的时点等等。
在这一背景中,“存储器访问”可包含读取、写入、删除或相干性操作,例如探听或无效化。应理解,上述仅是并未限制所公开主题的一些说明性实例。
在所说明的实施例中,系统100可包含相干互连104。在各种实施例中,相干互连104可配置成耦接一或多个处理器102与存储器控制器106,且在一些实施例中,经由那些多个处理器提供或促进高速缓存或存储器相干性操作。在所说明的实施例中,只示出一个处理器102,且可忽略相干互连104的相干性功能。
然而,在各种实施例中,处理器102和相干互连104可在不同的时钟域或频率上操作。因而,系统100可包含时钟域交叉(clock-domain-crossing;CDC)桥103,所述时钟域交叉桥103配置成将来自一个时钟域(例如处理器102的)的数据同步到另一时钟域(例如相干互连104的),且反之亦然。在各种实施例中,CDC桥103可在简单实施例中包含一系列背对背触发器或在各种时钟域上操作的其它同步电路。举例来说,一个或两个背对背触发器可使用处理器102的时钟且随后使用相干互连104的时钟立刻紧接着两个背对背触发器。应理解,上述仅是并未限制所公开主题的一个说明性实例。
在所说明的实施例中,系统100可包含存储器控制器106。在各种实施例中,存储器控制器106可管理对存储器系统108的访问。在各种实施例中,存储器系统108可包含系统存储器(例如DRAM)、用于SOC的高速缓存或可包含数个存储器层。在任一情况下,出于处理器102目的,存储器系统108可以是存储大部分(如果并非所有)由系统100所用的数据之处或可通过其存储数据的存储库。在这类实施例中,存储器控制器106可以是所述存储库的网关。
再者,相干互连104和存储器控制器106可在不同时钟域内操作。在这类实施例中,系统100可包含CDC桥105,所述CDC桥105从存储器控制器106的时钟转化成相干互连104的时钟,且反之亦然。
当接收存储器访问或读取请求112时,存储器控制器106可发起读取存储器访问。假设读取操作无意外地发生,存储器系统108可将数据116传回到存储器控制器106。此外,读取响应消息118可由存储器控制器106产生。在各种实施例中,这个读取响应消息118可指示读取请求112是否成功,返回的数据是否拆分成多个消息,是否必须重试读取请求112,或有关读取请求112的成功和完成的大量其它信息。
在所说明的实施例中,存储器控制器106可将数据116和读取响应消息118发送回请求处理器102。在所说明的实施例中,这些消息116和消息118可在到达处理器102之前穿过CDC桥105、相干互连104以及CDC桥103。
这一传回路径通过数个电路,各个电路各自具有自身的延迟和时延。具体地说,CDC桥103以及CDC桥105各自增加仅将消息116和消息118同步到新时钟域的时延的多个时钟周期。这并非将忽略由互连104以及其它组件引发的延迟。在这一运行时间期间,处理器102停止操作(至少停止特殊读取请求操作)且浪费本身的资源。存储器访问时延是处理器性能中众人皆知的关键因素。
在所说明的实施例中,路径请求信号114设置为0或默认值,因为在这个实施例中仅有一个采用的路径。关于图2A更多地论述路径请求信号114。
图2A是根据所公开主题的系统200的实例实施例的框图。在所说明的实施例中,将系统200的操作描述为简化的、单处理器的使用情况。然而,系统200已扩展用于说明在请求处理器102与存储器控制器106之间通信的多个路径。
在所说明的实施例中,系统200可包含处理器102、CDC桥103、相干互连104、CDC桥105、存储器控制器106以及存储器系统108,如上文所描述。此外,在各种实施例中,处理器102可发出读取请求112,且使数据116和响应118经由从存储器控制器106穿过互连104且行进到处理器102的路径220传回。为清楚起见,穿过这个路径220的数据116和响应118已分别重新编号为数据226和响应228。在各种实施例中,这个路径220可称为慢速路径220。
在所说明的实施例中,系统200还可包含第二或快速路径210。在这类实施例中,快速路径210可绕过相干互连104,且因此避开穿过互连104和任何相关联的CDC桥(例如桥103和桥105)的时延。在这类实施例中,缺点可以是相干互连104可能无法执行涉及高速缓存或存储器相干性的职能。然而,在单处理器实施例(如系统200)中,这个缺点可能暂时忽略了。关于图3进行论述。
在所说明的实施例中,处理器102可做出读取请求112。然而,在这个实施例中,处理器102还可请求经由快速路径210而非慢速路径220将数据116发送给所述处理器。在这类实施例中,处理器102可经由路径请求消息或信号114设置或指示采用快速路径210。在各种实施例中,由路径信号114表示的信息可包含于读取请求消息112中。
在这类实施例中,一旦存储器控制器106已成功地接收数据116,且在一些实施例中成功地接收响应118,所述存储器控制器106可查看路径请求消息114以确定在传回数据116时将采用哪一路径(慢速路径220或快速路径210)。
如上文所描述,如果路径请求消息114指示将使用慢速路径220,那么存储器控制器106可传回数据226及响应228。
如果路径请求消息114指示将使用快速路径210,那么存储器控制器106可经由快速路径210传回数据116(现为数据216)。在所说明的实施例中,快速路径可绕过互连104且仅包含CDC桥207。在这类实施例中,时钟域交叉(CDC)桥207可配置成将来自一个时钟域(例如存储器控制器106的时钟域)的数据同步到另一时钟域(例如处理器102的时钟域)。在这类实施例中,可避免互连104和CDC桥103的时延。
在优选实施例中,在不考虑路径请求消息或信号114的状态的情况下,读取响应118可经由慢速路径220发送。在这类实施例中,这可进行以允许相干互连104执行在促进高速缓存相干性方面的职能。
然而,在各种实施例中,存储器控制器106可经由快速路径210发送回数据216及读取响应消息118(现为消息218)。在另一实施例中,存储器控制器106经由快速路径210发送回读取响应218,且经由慢速路径220发送回读取响应228的副本。在又一实施例中,存储器控制器106可发送回读取响应消息118的两个不同的版本。传统地格式化的版本,即读取响应消息228可经由慢速路径220传播且由相干互连104使所述读取响应消息可用。而包含稍微不同信息(额外信息或消息228的配对向下版本)的第二读取响应218可经由快速路径210传播以便由处理器102更快速处理。在各种实施例中,第二读取响应信号218可携带相干性信息,例如经由快速路径210返回的存储器行是否是唯一或共享状态。应理解,上述仅是并未限制所公开主题的一些说明性实例。
在所说明的实施例中,信号216和信号226以及信号218和信号228示出为物理地连接,但在各种实施例中,电路(例如多路分用器(DEMUX))可分离所述两种信号。在这类实施例中,未选择的信号可在非使用时设置为默认值。同样地,虽然信号216和信号226以及信号218和信号228在处理器102的分离端口处示出为到达,但在各种实施例中,可采用电路(例如多路复用器(MUX))或物理合并。应理解,上述仅是并未限制所公开主题的一些说明性实例。
图2B是根据所公开主题的系统200的实例实施例的框图。图2B绘示系统200的组件的固有电路中的一些。另外,绘示存储器控制器108的多端口版本。
在所说明的实施例中,处理器102可包含核心290,所述核心配置成实行指令,且包括数个逻辑块单元(logical block unit;LBU)或功能单元区块(functional unit block;FUB),如浮点单元、负荷存储单元等。
在所说明的实施例中,处理器102还可包含路径选择电路252。在这类实施例中,路径选择电路252可确定是否应该发送路径请求消息114,或是否应该请求将快速路径210用于读取请求112。在各种实施例中,路径选择电路252的确定可基于核心290的状态、读取请求的起因(例如预提取、意外需要等)以及处理器102的一般策略或设置。
如上文所描述,处理器102可送出读取请求112及路径请求114。
在所说明的实施例中,相干互连104可包含路径补偿电路262。在这类实施例中,路径补偿电路262可配置成按原样(例如允许在系统200中继续请求快速路径)传递路径选择消息114,或使用新路径选择消息114'代替、阻断或覆盖路径选择消息114。
在各种实施例中,相干互连104基本上可拒绝处理器102使用快速路径210的请求且用使用慢速路径220的请求代替所述使用快速路径的请求。举例来说,如果互连104感知到其它处理器的高速缓存中存在相同数据的副本(图3所示)或如果由读取请求112定为目标的存储器地址并不支持使用快速路径210,那么互连104可发送指示将使用慢速路径220的新路径选择消息114'。
在各种实施例中,每个快速路径感知支持组件(例如互连104、存储器控制器106)可能能够覆盖或拒绝(或准予)路径请求114。在一些实施例中,互连104或中介组件可能无法感知到快速路径。在这类实施例中,路径请求信号114可绕过所述组件。
同样地,存储器控制器106可包含自身的路径路由电路272。在这类实施例中,路径路由电路272可配置成确定数据应该经由快速路径210还是慢速路径220传回。在各种实施例中,路径路由电路272可实践路径请求消息114'。如果路径请求消息114'指示将采用慢速路径220,那么路径请求消息114'将使存储器控制器采用慢速路径220,且快速路径210也如此。
然而,如果请求快速路径210但路径路由电路272确定使用所述快速路径是不明智的或不合需要的,那么路径路由电路272可选择慢速路径220作为传回路径。举例来说,如果在从存储器系统108读取的期间发生不可校正的错误,那么路径路由电路272可选择使用慢速路径220且避开其它的不规则性。在另一实施例中,路径路由电路272可选择使用慢速路径220以便提供额外读取数据带宽,例如基本上可同步采用快速路径210及慢速路径220两者。存储器控制器可具有逻辑以负载均衡服务,一些请求使用数据快速路径(data fastpath;DFP),且另一些由普通路径最大化可用的数据带宽。应理解,上述仅是并未限制所公开主题的一个说明性实例。
在所说明的实施例中,存储器控制器106可包含快速路径接口274和慢速路径接口276。每个接口274和接口276可配置成经由各自的路径210和路径220传回数据116。此外,慢速路径接口276可配置成发送读取响应信号228。在一些实施例中,如果这类实施例采用信号218,那么快速路径接口274可配置成发送读取响应信号218。应理解,上述仅是并未限制所公开主题的一些说明性实例。
同样地,在所说明的实施例中,处理器102可包含快速路径接口254和慢速路径接口256。每个接口254和接口256可配置成经由各自的路径210和路径220接收数据116。慢速路径接口256也可配置成接收读取响应信号228。如果这类实施例采用信号218,那么快速路径接口254可配置成接收读取响应信号218。
图3是根据所公开主题的系统300的实例实施例的框图。在所说明的实施例中,描述多处理器使用情况的系统300的操作。
在所说明的实施例中,如上文所描述,系统300可包含处理器102、CDC桥103、相干互连104、CDC桥105、存储器控制器106以及CDC桥207。在各种实施例中,如上文所描述,系统300还可包含存储器系统106。
在所说明的实施例中,系统300还可包含第二处理器302和CDC桥303(类似于CDC桥103)。在所说明的实施例中,处理器102可感知数据快速路径或配置成使用数据快速路径(DFP)(例如图2A的快速路径210)。然而,第二处理器302可无法感知DFP或未配置成利用DFP。在各种实施例中,第二处理器302可以是传统的处理器,所述处理器设计成只使用穿过互连104的慢速路径(例如图2A的慢速路径220)。在处理器302的情况下,这个慢速路径将包含CDC桥303、互连104、CDC桥105以及存储器控制器106。
在各种实施例中,系统300可包含多个处理器,其中一些处理器可能够使用快速或慢速路径,而一些只能够采用慢速路径。在这类实施例中,系统300可包含处理器的异构组。在另一实施例中,所有处理器可感知快速和慢速路径,且系统300可包含用于每个处理器的快速和慢速路径。
在所说明的实施例中,每当第二处理器302发出读取请求312,都可采用慢速路径。在各种实施例中,如果处理器(例如处理器302)未发送路径请求信号,那么互连104可配置成产生请求慢速路径的路径请求信号114'。在另一实施例中,路径请求信号114'可具有默认值,当请求快速路径时,可覆盖所述默认值。
如上文所描述,响应于处理器302的读取请求312,存储器控制器106可收集所请求的数据116,生成读取响应118,且经由慢速路径(信号316和信号318)传输回信号或消息。在这类实施例中,相干互连104可使用读取响应228以促进处理器102与处理器302之间的高速缓存或存储器相干性。
同样地,当处理器102作出读取请求112且发出使用慢速路径的路径请求114时,数据116和读取响应118可经由信号226和信号228传回。在各种实施例中,如果相干互连104或存储器控制器106拒绝使用快速路径的请求114,那么这种情况还可发生。
在所说明的实施例中,如上文所描述,处理器102可发出读取请求112且指示(经由路径请求114)数据应经由快速路径传回。如上文所描述,存储器控制器106可经由快速路径将数据216发回至请求处理器102,且经由慢速路径发送读取响应228。
在这类实施例中,读取响应228将在数据216之后在数个循环内由处理器102接收。在这类实施例中,处理器102可配置成在由处理器102接收数据216时尽快(或在合理的时间内)利用数据216。在这类实施例中,数据216可传递到处理器102的核心且相关联的指令的实行可继续。
相反地,虽然处理器102可将数据216用于内部用途,但可避免将数据216用于外部用途。举例来说,在多处理器系统中,存储器相干性是重要考虑因素。通过提早(与数据经由慢速路径到达时相比)且经由快速路径来接收数据216,相干互连104和其它处理器(处理器302)可不具有保持处理器存储器恰当地相干的正确信息。在这类实施例中,这可能是读取响应118穿过慢速路径且数据216和读取响应228分叉的原因。在各种实施例中,即使经由快速路径发送类似的消息218,也可能发生这种情况。在这类实施例中,由于读取响应228由相干互连104(且,经由相干互连104的促进功能,即处理器302)处理,高速缓存或存储器可具有保持相干所需要的信息。
在这类实施例中,处理器102可避免外部使用或回复有关数据216的信息((例如探听请求),直到经由慢速路径接收到读取响应228为止。在这类实施例中,可同步关于处理器的高速缓存(未绘示)的信息,且可相干地维持高速缓存。
图4是根据所公开主题的技术的实例实施例的流程图。在各种实施例中,技术400可由系统(如图1、图2A、图2B或图3的系统)使用或生产。但应理解,上述仅是并未限制所公开主题的一些说明性实例。应理解,所公开的主题不限于由技术400说明的动作的次序或数目。
如上文所描述,框402说明在一个实施例中,请求处理器或实体可能希望发出读取请求。框404说明在一个实施例中,处理器或请求实体可确定数据快速路径(DFP)的使用是否合乎需要或甚至有可能。在各种实施例中,请求处理器可确定DFP在以下情况下不合乎需要,例如:在由于使用数据快速路径可消耗额外的能量,因此低功率比最小的存储器访问时延更重要的情况下;当DFP因为临时拥塞而节流时;或当请求程序想要具有额外带宽(同时具有DFP和普通路径)时。应理解,上述仅是并未限制所公开主题的一些说明性实例。
如上文所描述,框406说明在一个实施例中,如果采用DFP,处理器可发出或发送读取请求,且可包含要求采用快速路径的路径请求信号。相反地,如上文所描述,框456说明在一个实施例中,如果未采用DFP,处理器可发出或发送读取请求,且可包含要求采用慢速路径的路径请求信号。
如上文所描述,框408说明在一个实施例中,中介装置(例如相干互连)可确定是否允许、拒绝、准予或覆盖路径请求。
如上文所描述,框410说明在一个实施例中,如果准许使用DFP的请求,中介装置可转发或发送读取请求和路径请求信号。相反地,如上文所描述,框466说明在一个实施例中,如果未允许(框408)使用DFP的请求或从未请求(框456)所述使用DFP的请求,那么处理器可发出或发送读取请求,且可包含要求采用慢速路径的路径请求信号。
框412说明在一个实施例中,读取请求可通过从目标存储器地址读取进行处理。在各种实施例中,如上文所描述,这可包含从存储器系统或主存储器读取的存储器控制器。
框414说明在一个实施例中,存储器控制器可确定是否请求快速路径或是否应该使用所述快速路径。如上文所描述,存储器控制器可拒绝或准予采用快速路径的请求,且反而在慢速路径上发送回数据。
如上文所描述,框416说明在一个实施例中,如果使用快速路径,可经由快速路径传回数据。如上文所描述,框418说明在一个实施例中,即使将采用快速路径用于传回数据,但可采用慢速路径用于传回读取响应。在这类实施例中,如果慢速路径上的数据总线并不具有有效数据,那么信号(例如RdVal=0)可指示处理器或互连。
如上文所描述,框420A说明在一个实施例中,如果是使用快速路径,那么数据可由处理器首先接收或比在数据经由慢速路径行进的情况下更早地接收。如上文所描述,框420B说明在一个实施例中,即使使用快速路径,但读取响应可由处理器第二个接收或与在数据也经由慢速路径行进的情况下而接收数据的时间相同。
框468说明在一个实施例中,如果采用慢速路径,那么数据和读取响应都可经由慢速路径传输给处理器。在这类实施例中,如果慢速路径上的数据总线具有有效数据,那么信号(例如RdVal=1)可指示处理器或互连。框470说明在一个实施例中,数据和读取响应消息基本上都可由处理器同时接收。
图5是信息处理系统500的示意性框图,所述信息处理系统可包含根据所公开主题的原理形成的半导体装置。
参考图5,信息处理系统500可包含根据所公开主题的原理构建的装置中的一或多个。在另一实施例中,信息处理系统500可采用或实行根据所公开主题的原理的一或多种技术。
在各种实施例中,信息处理系统500可包含计算装置,例如膝上型计算机、桌上型计算机、工作站、服务器、刀片服务器、个人数字助理、智能手机、平板计算机以及其它适当的计算机或其虚拟机或虚拟计算装置。在各种实施例中,信息处理系统500可由用户(未绘示)使用。
根据所公开主题的信息处理系统500可进一步包含中央处理单元(CPU)、逻辑或处理器510。在一些实施例中,处理器510可包含一或多个功能单元块(functional unitblock;FUB)或组合逻辑块(combinational logic block;CLB)515。在这类实施例中,组合逻辑块可包含各种布尔逻辑操作(Boolean logic operation)(例如与非(NAND)、或非(NOR)、非(NOT)、异或(XOR))、稳定逻辑装置(例如触发器、锁存)、其它逻辑装置或其组合。这些组合逻辑操作可以简单或复杂的方式配置成处理输入信号以实现所需结果。应理解,在描述同步组合逻辑操作的几个说明性实例时,所公开主题不受如此限制且可包含异步操作或其混合。在一个实施例中,组合逻辑操作可包括多个互补金属氧化物半导体(complementary metal oxide semiconductor;CMOS)晶体管。在各种实施例中,这些CMOS晶体管可布置到执行逻辑操作的栅极中;但应理解,可使用其它技术且所述其它技术在所公开主题的范围内。
根据所公开主题的信息处理系统500可进一步包含易失性存储器520(例如随机存取存储器(RAM))。根据所公开主题的信息处理系统500可进一步包含非易失性存储器530(例如硬盘驱动器、光学存储器、与非(NAND)或快闪存储器)。在一些实施例中,易失性存储器520、非易失性存储器530或其组合或部分可称作“存储介质”。在各种实施例中,易失性存储器520和/或非易失性存储器530可配置成以半永久或基本上永久的形式存储数据。
在各种实施例中,信息处理系统500可包含一或多个网络接口540,所述网络接口540配置成使得信息处理系统500是通信网络的部分且经由通信网络通信。Wi-Fi协议的实例可包含(但不限于)电气和电子工程师学会(Institute of Electrical andElectronics Engineer;IEEE)802.11g、IEEE 802.11n。蜂窝协议的实例可包含(但不限于):IEEE 802.16m(也称为无线城域网(Metropolitan Area Network;MAN))进阶、长期演进(Long Term Evolution;LTE)进阶、全球移动通信系统(Global System for MobileCommunication;GSM)的增强数据速率演进(EDGE)、演进高速分组接入(Evolved High-Speed Packet Access;HSPA+)。有线协议的实例可包含但不限于IEEE 802.3(也称为以太网(Ethernet))、光纤信道(Fibre Channel)、电力线通信(Power Line communication)(例如HomePlug、IEEE 1901)。应理解,上述仅是并未限制所公开主题的一些说明性实例。
根据所公开主题的信息处理系统500可进一步包含用户接口单元550(例如显卡、触觉接口、人机接口装置)。在各种实施例中,这一用户接口单元550可配置成从用户接收输入和/或将输出提供到用户。其它种类的装置同样可用于提供与用户的交互;例如,向用户提供的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触感反馈;且来自用户的输入可以按任何形式接收,所述形式包含声学、语音或触感输入。
在各种实施例中,信息处理系统500可包含一或多个其它装置或硬件组件560(例如显示器或监测器、键盘、鼠标、相机、指纹读取器、视频处理器)。应理解,上述仅是并未限制所公开主题的一些说明性实例。
根据所公开主题的信息处理系统500可进一步包含一或多个系统总线505。在这种实施例中,系统总线505可配置成以通信方式连接处理器510、易失性存储器520、非易失性存储器530、网络接口540、用户接口单元550以及一或多个硬件组件560。由处理器510处理的数据或从非易失性存储器530外部输入的数据可存储在非易失性存储器530或易失性存储器520中。
在各种实施例中,信息处理系统500可包含或实行一或多个软件组件570。在一些实施例中,软件组件570可包含操作系统(operating system;OS)和/或应用程序。在一些实施例中,OS可配置成向应用程序提供一或多种服务,且管理或充当信息处理系统500的应用程序与各种硬件组件(例如处理器510、网络接口540)之间的中介。在这类实施例中,信息处理系统500可包含一或多种原生应用程序,所述原生应用程序可在本地(例如在非易失性存储器530内)安装,且配置成由处理器510直接执行且与OS直接交互。在这种实施例中,原生应用程序可包含预编译机器可执行码。在一些实施例中,原生应用程序可包含脚本解译器((例如C shell(csh)、AppleScript、AutoHotkey)或配置成将源代码或目标代码转译为随后由处理器510执行的可执行码的虚拟执行机(virtual execution machine;VM)(例如Java虚拟机(Java Virtual Machine)、微软公共语言运行库(Microsoft Common LanguageRuntime))。
上文所描述的半导体装置可使用各种封装技术来包封。举例来说,根据所公开主题的原理构建的半导体装置可使用以下技术中的任一种来包封:层叠封装(package onpackage;POP)技术、球栅阵列(ball grid array;BGA)技术、芯片尺寸封装(chip scalepackage;CSP)技术、塑料引线芯片载体(plastic leaded chip carrier;PLCC)技术、塑料双列直插式封装(plastic dual in-line package;PDIP)技术、华夫包装式裸片(die inwaffle pack)技术、晶片式裸片(die in wafer form)技术、板上芯片(chip on board;COB)技术、陶瓷双列直插封装(ceramic dual in-line package;CERDIP)技术、塑料公制四方扁平封装(plastic metric quad flat package;PMQFP)技术、塑料四方扁平封装(plastic quad flat package;PQFP)技术、小外形封装(small outline package;SOIC)技术、紧缩小外形封装(shrinksmall outline package;SSOP)技术、薄型小外形封装(thinsmall outline package;TSOP)技术、薄型四方扁平封装(thin quad flat package;TQFP)技术、系统级封装(system in package;SIP)技术、多芯片封装(multi-chip package;MCP)技术、晶片级构造封装(wafer-level fabricated package;WFP)技术、晶片级处理堆叠封装(wafer-level processed stack package;WSP)技术或如本领域的技术人员将已知的其它技术。
方法步骤可由执行计算机程序的一或多个可编程处理器来执行,以通过对输入数据进行操作且生成输出来执行功能。方法步骤也可由专用逻辑电路(例如现场可编程门阵列(field programmable gate array;FPGA)或专用集成电路(application-specificintegrated circuit;ASIC))来执行,且设备可实施为所述专用逻辑电路。
在各种实施例中,计算机可读介质可包含在实行时使得装置执行方法步骤的至少一部分的指令。在一些实施例中,计算机可读介质可包含在磁性介质、光学介质、其它介质或其组合(例如CD-ROM、硬盘驱动器、只读存储器、快闪驱动器)中。在这种实施例中,计算机可读介质可以是有形且非暂时性实施的制品。
在已参考实例实施例描述所公开主题的原理时,本领域的技术人员将显而易见的是可在不脱离这些公开概念的精神和范围的情况下对其作出各种改变以及修改。因此,应理解,上述实施例并非限制性的,而仅为说明性的。因此,所公开概念的范围将通过所附权利要求书和其等效物所最广泛容许的解释来确定,且不应受前文描述的约束或限制。因此,应理解,所附权利要求书意图覆盖如属于实施例范围内的所有这类修改和改变。
Claims (20)
1.一种电子设备,包括:
处理器,经由第一路径和第二路径与存储器控制器耦接,
其中所述第一路径穿过连接所述存储器控制器与多个处理器的相干互连,所述多个处理器包含所述处理器,且
其中所述第二路径绕过所述相干互连,且具有相比于所述第一路径更低的时延;
其中将所述处理器配置成将存储器访问请求发送到所述存储器控制器,且其中所述存储器访问请求包含采用所述第一路径或所述第二路径的路径请求;以及
所述存储器控制器,配置成履行所述存储器访问请求,且至少部分地基于所述路径请求,经由所述第一路径或所述第二路径将存储器访问的结果的至少一部分发送到所述处理器。
2.根据权利要求1所述的电子设备,还包含:
所述相干互连,其中所述相干互连基于预定义准则而配置成阻断所述路径请求或将所述路径请求转发到所述存储器控制器。
3.根据权利要求2所述的电子设备,还包含:
第二处理器,包含于所述多个处理器内;且
其中如果与所述存储器访问相关的数据副本由所述第二处理器存储,所述相干互连配置成阻断所述路径请求。
4.根据权利要求2所述的电子设备,其中所述第一路径穿过第一时钟域桥及第二时钟域桥,所述第一时钟域桥在由所述处理器采用的第一时钟与由所述相干互连采用的第二时钟之间同步数据,所述第二时钟域桥在由所述相干互连采用的所述第二时钟与由所述存储器控制器采用的第三时钟之间同步数据。
其中所述第二路径穿过第三时钟域桥,所述第三时钟域桥在由处理器采用的所述第一时钟与由存储器控制器采用的所述第三时钟之间同步数据。
5.根据权利要求1所述的电子设备,其中如果在履行所述存储器访问请求时发生错误,尽管路径请求采用所述第二路径,所述存储器控制器仍配置成经由所述第一路径履行所述存储器访问请求。
6.根据权利要求1所述的电子设备,其中当经由所述第二路径发送所述存储器访问的所述结果的至少部分时,所述存储器控制器配置成:
经由所述第二路径将与所述存储器访问相关的数据发送到所述处理器,以及
经由所述第一路径将与所述存储器访问相关的响应消息发送到所述处理器。
7.根据权利要求6所述的电子设备,其中所述处理器配置成:
在经由所述第二路径到达时消耗所述数据,但
在所述响应消息经由所述第一路径到达之前,未对与所述数据相关的探听请求作出响应。
8.根据权利要求6所述的电子设备,其中所述存储器控制器配置成经由所述第二路径将与所述存储器访问相关的第二响应消息发送到所述处理器。
9.根据权利要求1所述的电子设备,其中所述多个处理器包含异构的多个处理器,所述多个处理器包含:
所述处理器,配置成采用所述第一路径或第二路径进行存储器访问,以及
第二处理器,配置成仅采用所述第一路径进行存储器访问。
10.一种电子系统,包括:
多个处理器,至少经由慢速路径与存储器控制器耦接,
其中所述多个处理器中的至少一请求处理器经由所述慢速路径和快速路径与所述存储器控制器耦接,
其中所述慢速路径穿过连接所述存储器控制器与所述多个处理器的相干互连,以及
其中所述快速路径绕过所述相干互连,且具有相比于所述慢速路径更低的时延;
所述相干互连,配置成将所述多个处理器与存储器控制器连接,且促进所述多个处理器之间的高速缓存相干性;以及
所述存储器控制器,配置成履行来自所述至少一请求处理器的存储器访问请求,且至少部分地基于路径请求消息,经由所述慢速路径或所述快速路径将存储器访问的结果的至少一部分发送到所述至少一请求处理器。
11.根据权利要求10所述的电子系统,其中所述相干互连配置成在所述至少一请求处理器传输路径请求消息的情况下基于预定义准则而阻断所述路径请求消息或将所述路径请求消息转发到所述存储器控制器。
12.根据权利要求11所述的电子系统,其中所述相干互连配置成至少部分地基于所述快速路径与所述慢速路径之间的负载均衡来阻断所述路径请求消息。
13.根据权利要求11所述的电子系统,其中与所述多个处理器的相应处理器相关的相应慢速路径穿过第一时钟域桥和第二时钟域桥,所述第一时钟域桥在由所述相应处理器采用的第一时钟与由所述相干互连采用的第二时钟之间同步数据,所述第二时钟域桥在由所述相干互连采用的所述第二时钟与由所述存储器控制器采用的第三时钟之间同步数据,
其中所述快速路径穿过第三时钟域桥,所述第三时钟域桥在由所述相应处理器采用的所述第一时钟与由所述存储器控制器采用的所述第三时钟之间同步数据。
14.根据权利要求10所述的电子系统,其中如果所述存储器控制器检测到所述快速路径上的拥塞,尽管路径请求消息采用所述快速路径,所述存储器控制器仍配置成经由所述慢速路径履行所述存储器访问请求。
15.根据权利要求10所述的电子系统,其中当经由所述快速路径发送所述存储器访问的所述结果的至少一部分时,所述存储器控制器配置成:
经由所述快速路径将与所述存储器访问相关的数据发送到所述至少一请求处理器,以及
经由所述慢速路径将与所述存储器访问相关的响应消息发送到所述至少一请求处理器。
16.根据权利要求15所述的电子系统,其中将所述至少一请求处理器配置成:
在经由所述快速路径到达时消耗所述数据,但
在所述响应消息经由所述慢速路径到达之前,未对与所述数据相关的探听请求作出响应。
17.根据权利要求10所述的电子系统,其中所述存储器控制器配置成经由所述快速路径将与所述存储器访问相关的第二响应消息发送到所述至少一请求处理器。
18.根据权利要求10所述的电子系统,其中所述多个处理器包含第二处理器,所述第二处理器与所述慢速路径耦接但不与所述快速路径耦接,且配置成仅采用所述慢速路径进行存储器访问。
19.一种存储器控制器,包括:
慢速路径接口,配置成响应于存储器访问而将至少一响应消息发送到请求处理器,
其中所述慢速路径穿过连接所述存储器控制器与请求处理器的相干互连;
快速路径接口,配置成至少部分地响应于所述存储器访问而将数据发送到请求处理器;以及
其中所述快速路径将所述存储器控制器与所述请求处理器耦接且绕过所述相干互连,且其中所述快速路径具有比所述慢速路径更低的时延;
路径路由电路,配置成:
作为所述存储器访问的一部分,从所述相干互连接收数据路径请求,以及
至少部分地基于所述存储器访问和所述数据路径请求的结果,确定所述数据是否经由所述慢速路径或所述快速路径发送;且
其中所述存储器控制器配置成:
如果所述路径路由电路确定将经由所述慢速路径发送数据,那么所述数据和所述响应消息都将经由所述慢速路径接口发送到所述请求处理器,以及
如果所述路径路由电路确定所述数据将经由所述快速路径发送,那么所述数据将经由所述快速路径接口发送到所述请求处理器,且所述响应消息将经由所述慢速路径接口发送到所述请求处理器。
20.根据权利要求19所述的存储器控制器,其中所述路径路由电路配置成在所述存储器访问产生错误的情况下无论所述数据路径请求如何都确定所述数据将经由所述慢速路径发送。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862734237P | 2018-09-20 | 2018-09-20 | |
US62/734,237 | 2018-09-20 | ||
US16/200,622 | 2018-11-26 | ||
US16/200,622 US20200097421A1 (en) | 2018-09-20 | 2018-11-26 | Data fast path in heterogeneous soc |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110928812A true CN110928812A (zh) | 2020-03-27 |
Family
ID=69848690
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910878243.8A Pending CN110928812A (zh) | 2018-09-20 | 2019-09-17 | 电子设备、电子系统和存储器控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110928812A (zh) |
-
2019
- 2019-09-17 CN CN201910878243.8A patent/CN110928812A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20160019168A1 (en) | On-Demand Shareability Conversion In A Heterogeneous Shared Virtual Memory | |
US10509740B2 (en) | Mutual exclusion in a non-coherent memory hierarchy | |
US9680765B2 (en) | Spatially divided circuit-switched channels for a network-on-chip | |
US9355034B2 (en) | Removal and optimization of coherence acknowledgement responses in an interconnect | |
US9787571B2 (en) | Link delay based routing apparatus for a network-on-chip | |
TWI847235B (zh) | 可擴縮之系統單晶片 | |
JP5866488B1 (ja) | インテリジェントデュアルデータレート(ddr)メモリコントローラ | |
US20210294292A1 (en) | Method and apparatus for remote field programmable gate array processing | |
CN112148336A (zh) | 计算系统固件的安全更新 | |
US20240232115A1 (en) | High bandwidth core to network-on-chip interface | |
CN108572812B (zh) | 存储器加载和算术加载单元(alu)融合 | |
CN111723025B (zh) | 电子设备和电子系统 | |
US8549234B2 (en) | Memory controller and methods | |
TWI743400B (zh) | 用以避免負載填充衝突的設備以及系統 | |
US20200097421A1 (en) | Data fast path in heterogeneous soc | |
CN110928812A (zh) | 电子设备、电子系统和存储器控制器 | |
KR20150093461A (ko) | 시스템 인터커넥트 및 시스템 인터커넥트의 동작 방법 | |
US9170768B2 (en) | Managing fast to slow links in a bus fabric | |
TW202433271A (zh) | 可擴縮之系統單晶片 | |
CN115297169A (zh) | 数据处理方法、装置、电子设备及介质 | |
WO2018182848A1 (en) | Systems and methods for reducing memory power consumption via pre-filled dram values | |
JP2012118687A (ja) | 半導体集積回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200327 |