片上系统和调节电压和频率的方法与流程

文档序号:29248919发布日期:2022-03-15 23:35阅读:188来源:国知局
片上系统和调节电压和频率的方法与流程

1.本公开涉及芯片领域,具体而言,涉及一种片上系统和调节电压和频率的方法。


背景技术:

2.集成电路的小型化趋势使得处理器制造商对如何降低功耗充满热情。自适应电压与频率调节(adaptive voltage frequency scaling,avfs)是处理器降低功耗的方法之一。自适应电压与频率调节通过传感器实时测量检测数据决定供电电压。
3.在小型的片上系统中,可以通过测量片上系统的检测数据决定供电电压。但是针对大型的片上系统,提供统一的供电电压可能很难获得很好的节能效果。例如,一个包括多个异构的处理单元、存储设备的片上系统,如果按照片上系统提供供电电压,很难使得处理单元和存储设备达到较佳的节能效果。


技术实现要素:

4.有鉴于此,本公开的目的是提供一种片上系统和调节电压和频率的方法,以解决现有技术中的问题。
5.第一方面,本公开实施例提供一种片上系统,包括:
6.至少一个处理单元;
7.多个传感器组件,每个传感器组件与一个处理单元耦接,每个传感器组件用于测量与其耦接的处理单元的检测数据;
8.avfs控制器,与所述多个传感器组件耦接,用于从所述多个传感器组件收集所述至少一个处理单元的检测数据,并根据每个处理单元的检测数据决定每个处理单元的供电电压;
9.片上总线,用于耦接所述至少一个处理单元和所述avfs控制器。
10.可选地,所述avfs控制器包括链控制器,所述链控制器与所述多个传感器组件耦接成环形结构,所述环形结构指示从所述链控制器出发,经由所述多个传感器组件回到所述链控制器的数据传输路径。
11.可选地,所述链控制器按照乱序从所述数据传输路径上的多个传感器组件收集所述检测数据。
12.可选地,所述链控制器发送读数据请求,所述读数据请求包含指定标识信息,所述多个传感器组件中的第一传感器组件在确定所述指定标识信息与所述第一传感器组件的标识信息相同的情况下,将所述第一传感器组件的检测数据与所述第一传感器组件的标识信息一并发送出去,则所述链控制器根据所述第一传感器组件的标识信息识别出所述第一传感器组件的检测数据。
13.可选地,所述链控制器发送写数据请求,所述写数据请求包含指定标识信息,所述多个传感器组件中的第二传感器组件在确定所述指定标识信息与所述第二传感器组件的标识信息相同的情况下,根据所述写数据请求中的配置信息执行校准或配置操作。
14.可选地,所述多个传感器组件中的第三传感器组件主动地、周期性地将所述第三传感器组件的检测数据与所述第三传感器组件的标识信息一并发送出去,所述链控制器根据所述第三传感器组件的标识信息识别出所述第三传感器组件的检测数据。
15.可选地,所述avfs控制器包括电压计算单元,用于根据每个处理单元的检测数据确定其供电电压。
16.可选地,所述avfs控制器还包括标签分配单元,所述标签分配单元用于设置多个标签,每个标签对应一个电压计算规则,在接收到一个处理单元的检测数据时,为该检测数据指定所述多个标签中的第一标签,从而所述电压计算单元采用所述第一标签对应的电压计算规则确定该处理单元的供电电压。
17.可选地,所述标签分配单元根据电源管理电路提供的多个电压域设置多个标签。
18.可选地,所述标签分配单元为异构的处理器分配不同的标签。
19.可选地,所述avfs控制器还包括统计单元,用于计算调频调压操作的统计数据。
20.可选地,所述传感器组件为:温度传感器组件、工艺传感器组件和电压传感器组件中的一种。
21.第二方面,本公开实施例提供一种调节电压和频率的方法,包括:
22.采用多个传感器组件测量与其耦接的至少一个处理单元的检测数据;
23.采用avfs控制器收集所述至少一个处理单元的检测数据,并根据每个处理单元的检测数据决定每个处理单元的供电电压。
24.可选地,所述多个传感器组件与所述avfs控制器耦接成环形结构,所述环形结构指示从所述avfs控制器出发,经由所述多个传感器组件回到所述avfs控制器的数据传输路径。
25.可选地,所述avfs控制器按照乱序从所述数据传输路径上的多个传感器组件收集所述检测数据。
26.可选地,所述avfs控制器发送读数据请求,所述读数据请求包含指定标识信息,所述多个传感器组件中的第一传感器组件在确定所述指定标识信息与所述第一传感器组件的标识信息相同的情况下,将所述第一传感器组件的检测数据与所述第一传感器组件的标识信息一并发送出去,则所述avfs控制器根据所述第一传感器组件的标识信息识别出所述第一传感器组件的检测数据。
27.可选地,所述多个传感器组件中的第三传感器组件主动地、周期性地将所述第三传感器组件的检测数据与所述第三传感器组件的标识信息一并发送出去,所述avfs控制器根据所述第三传感器组件的标识信息识别出所述第三传感器组件的检测数据。
28.可选地,所述avfs控制器设置多个标签,每个标签对应一个电压计算规则,在接收到一个处理单元的检测数据时,为该检测数据指定所述多个标签中的第一标签,从而采用所述第一标签对应的电压计算规则确定该处理单元的供电电压。
29.第三方面,本公开实施例提供一种片上系统,包括:
30.至少一个处理单元;
31.多个传感器组件,每个传感器组件与一个处理单元耦接,每个传感器组件用于测量与其耦接的处理单元的检测数据;
32.avfs控制器,与所述多个传感器组件耦接,用于从所述多个传感器组件收集所述
至少一个处理单元的检测数据,并根据每个处理单元的检测数据决定每个处理单元的供电电压;
33.片上总线,用于耦接所述至少一个处理单元和所述avfs控制器;
34.与所述avfs控制器耦接的电源管理电路。
35.第四方面,本公开实施例提供一种计算装置,包括:
36.上述任一项所述的片上系统;
37.片外总线;
38.通过所述片外总线与所述片上系统耦接的存储设备;
39.与所述avfs控制器耦接的电源管理电路。
40.与现有的根据片上系统的检测数据决定供电电压相比,本公开实施例的根据每个处理单元的检测数据决定每个处理单元的供电电压能够达到更好的节能效果。
附图说明
41.通过参考以下附图对本公开实施例的描述,本公开的上述以及其它目的、特征和优点将更为清楚,在附图中:
42.图1是本公开第一实施例所应用的片上系统的结构示意图;
43.图2是本公开第二实施例所应用的片上系统的结构示意图;
44.图3是本公开第三实施例所应用的片上系统的结构示意图;
45.图4是本公开实施例提供的调节电压和频率的方法的流程图;
46.图5是本公开实施例所应用的通用计算机系统的结构示意图;
47.图6是本公开实施例所应用的嵌入式系统的结构示意图。
具体实施方式
48.以下基于实施例对本公开进行描述,但是本公开并不仅仅限于这些实施例。在下文对本公开的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本公开。为了避免混淆本公开的实质,公知的方法、过程、流程没有详细叙述。另外附图不一定是按比例绘制的。
49.本公开实施例的片上系统
50.图1是本公开第一实施例所应用的片上系统100的结构示意图。
51.参考图上所示,处理单元101和高速内存103、高速缓存104耦接到片上总线102。片上总线102例如为axi总线。axi总线是arm公司提出的amba(advanced microcontroller bus architecture)3.0及以上协议中最重要的部分,它是面向于高性能、高带宽、低延迟的片内总线。aix总线将地址/控制和数据相位分离,支持不对齐的数据传输,同时支持突发传输和乱序传输,因此满足了超高性能和复杂的片上系统设计的需求。处理单元101可以为任意具有不同电路结构的处理单元,例如为微处理器、微控制器、数字处理单元(dsp)、处理器核、图形处理单元(gpu)、神经网络处理单元,等等。不同于设置在片上系统中的高速内存103,位于片外的存储器可以容量更大但速度较慢、成本较低。在一些实现中,高速内存103和104可以为静态随机存取存储器(sram),而片外的存储器为dram(动态随机存取存储器)和闪存(flash)存储器。
52.如图上所示,avfs控制器105耦接到片上总线102上。avfs控制器105还分别与时钟管理单元106、位于片外的电源管理电路211耦接。
53.片上总线102还包括未被示出的接口电路,通过接口电路与片外的外部设备耦接。外部设备例如可以为文字、音频和视频的输入/输出设备和各种存储器。处理单元101可通过接口电路访问片外的外部设备。
54.片上系统100还可内嵌基本软件和应用程序(未示出),基本软件例如为片上系统的操作系统,应用程序是一些专有目的的程序。另有其他的应用程序可以存储在片上系统100之外的存储器中,这些应用程序可以通过接口电路拷贝到片上系统100中的高速内存104中,或者通过接口电路访问片上系统100中的资源。
55.处理单元101负责读取各种指令,并对指令进行译码和执行。在本实施例中,处理单元101在执行操作系统的可执行代码时经由片上总线102按照设定时间间隔周期性地向avfs控制器105发送调频调压指令。
56.avfs控制器105可根据处理单元101或其他部件的调频调压指令执行调频调压操作。具体地,avfs控制器105接收到调频调压指令,生成调频信号regf和调压信号regv,将调频信号regf发送给时钟管理单元106,将调压信号regv发送给电源管理电路211,由时钟管理单元106调节处理单元101的时钟频率fcpu,由电源管理电路211调节向处理单元101的供电电压vcpu。
57.进一步地,如图上所示,avfs控制器105包括用于存储频率点表1051的寄存器组、链控制器1052、电压计算单元1053和变频控制单元1054。
58.频率点表1051包括多个频率,该多个频率通常经过验证,并能够使处理单元101正常工作。频率点表1051可根据来自处理单元101或其他部件的频率配置指令生成,频率点表1051还可以在产品制造阶段就被刻录在avfs控制器105中。链控制器1052与处理单元101上的六个传感器se耦接,用于从六个传感器se收集检测数据。电压计算单元1053基于预定义的电压计算规则根据检测数据和目标频率确定要提供给处理单元101的供电电压的电压值。目标频率通常来自调频调压指令。电压计算单元1053或变频控制单元1054判断目标频率是否包含在频率点表1051内,如果是,说明目标频率合法,如果不是,则说明目标频率非法,在目标频率合法的情况下,电压计算单元1053根据计算出来的电压值生成调压信号regv,变频控制单元1054根据目标频率生成调频信号regf,在目标频率非法的情况下,变频控制单元1054和电压计算单元1053不产生调频信号和调压信号。可选地,avfs控制器105还可以包括告警单元(未示出),用于在目标频率非法或其他异常的情况下,进行告警。
59.进一步地,如图上所示,六个传感器组件se与链控制器1052首尾相连,组成环形的、单向的数据传输路径,图上使用箭头表示数据传输路径。六个传感器组件se与链控制器1052之间可采用相同或不同的物理连接单元。例如,六个传感器组件se与链控制器1052都采用片上总线107连接,再例如,链控制器1052与处理单元101之间通过片上总线107连接,各个传感器组件se之间使用集成电路既有的扫描链108耦接。无论何种物理连接单元,这种将传感器组se串接成链路的方式都有利于节约处理单元101上的布线空间。需要说明的是,通常符合边界扫描协议(例如ieee 1149.1)的芯片中都包含扫描链(scan chains),它主要用于帮助测试人员从集成电路的外部控制和观测集成电路内部的信号变化。而本实施例中,则可以利用传感器组件se内部的扫描链串接传感器组件se。
60.链控制器1052按照数据传输路径向一个或多个传感器组件se发送各种请求并从一个或多个传感器组件se接收反馈信息。例如,链控制器1052向一个或多个传感器组件se发送读数据请求和写数据请求,读数据请求是请求从一个或多个传感器组件se读取检测数据,写数据请求是要向一个或多个传感器组件se上写入数据。
61.每个传感器组件se包括传感器(未示出)和传感器控制器(未示出)。传感器采集模拟信号的检测数据。传感器控制器包括模数转换电路,用于将模拟信号转换为数字信号。传感器控制器还用于接收各种请求并进行处理。例如,第一传感器控制器接收读数据请求,判断读数据请求是否属于第一传感器组件,,如果不是,则将读数据请求继续发送给往下一个传感器组件,如果是,则停止发送读数据请求,并启动第一传感器获取检测数据,将数字化的检测数据发送给下一个传感器组件se。再例如,第二传感器控制器接收写数据请求,判断写数据请求是否属于第二传感器组件,如果不是,则将写数据请求继续发送给往下一个传感器组件se,如果是,则从写数据请求中获得配置信息,并存储在寄存器中。在读数据请求和写数据请求之外,系统还定义了数据传输请求。数据传输请求由可由一个或多个传感器组件se发起,例如,第三传感器组件se主动地、周期性地向链控制器发送数字化的检测数据。应理解,这里的第一传感器组件、第二传感器组件和第三传感器组件可以指代多个传感器组件se中的任意一个传感器组件se。
62.传感器组件se可以为温度、工艺或电压传感器组件,分别获取实时温度、工艺偏差和系统电压,在此情况下,电压计算单元1053基于预定义的电压计算规则根据实时温度和工艺偏差确定供电电压,或者基于预定义的电压计算规则根据实时温度确定供电电压后再根据工艺偏差做电压偏置。而电压计算单元1053确定的供电电压还可与通过电压传感器组件获得的系统电压进行比对,以确定调压操作是否成功。
63.本公开实施例的片上系统包括单一处理单元和avfs控制器,avfs控制器利用多个传感器组件测量该处理单元的检测数据,并按照该处理单元的检测数据决定该处理单元的供电电压,如此提供的供电电压更加适合该处理单元。
64.图2是本公开第二实施例所应用的片上系统200的结构示意图。如图上所示,高速内存103和高速缓存104耦接到片上总线102上。高速缓存103和104的相关描述可参见上文,这里就不再重复。
65.n个处理单元11-1n耦接到片上总线102上,n为大于或等于2的整数。其中,n个处理单元11-1n中的任意一个可以为具有不同电路结构的处理单元,例如为微处理器、微控制器、数字处理单元(dsp)、处理器核、图形处理单元(gpu)、神经网络处理单元,等等。n个处理单元11-1n可以均为相同结构的处理单元,例如均为处理器核,也可以为不同结构的处理单元,例如某些为微处理器,某些为图形处理单元。
66.如图上所示,处理单元11-1n中的任意一个都包括至少一个传感器组件se。多个传感器组件se与链控制器2052首尾相连,组成环形的、单向的数据传输路径,图上使用箭头表示数据传输路径。多个传感器组件se与链控制器2052之间可采用相同或不同的物理连接单元。例如,六个传感器组件se与链控制器2052都采用片上总线107连接,再例如,链控制器2052与处理单元101之间通过片上总线107连接,每个处理单元内部的各个传感器组件se之间使用集成电路的扫描链108连接。
67.链控制器2052按照数据传输路径向一个或多个传感器组件se发送各种请求并从
一个或多个传感器组件se接收反馈信息。例如,链控制器2052向一个或多个第一传感器组件se发送读数据请求,每个第一传感器组件se的传感器控制器接收到读数据请求之后,判断读数据请求是否属于第一传感器组件,如果不是,则将读数据请求继续发送给往下一个传感器组件se,如果是,则停止发送读数据请求,并启动第一传感器获取检测数据,将数字化的检测数据发送给下一个传感器组件se。再例如,第二传感器控制器接收写数据请求,判断写数据请求属于第二传感器组件,如果不是,则将写数据请求继续发送给往下一个传感器组件se,如果是,则停止发送写数据请求,并从写数据请求中获得配置信息,并存储在第二传感器组件中的传感器控制器。在读数据请求和写数据请求之外,系统还定义了数据传输请求。数据传输请求由传感器组件se主动发起。
68.在本实施例中,多个处理单元内部的多个传感器组件与链控制器通过连接单元首尾相连,组成环形的、单向的数据传输路径,从而不仅有助于节省处理单元上的布线空间,而且有助于解决由于布线距离过长导致时序不好收敛的问题。
69.继续参考图上,n个处理单元11-1n中的任意一个可向avfs控制器205发送调频调压指令。调频调压指令可包括处理单元标识和目标频率,用于指示调整一个或多个处理单元的供电电压和时钟频率。频率点表2051包括经过验证的、使处理单元11-1n能够正常工作的多个频率。电压计算单元2053或变频控制单元2054可基于目标频率和处理单元标识检索频率点表2051,如果存在符合条件的记录,说明目标频率合法,如果不是,则说明目标频率非法,在目标频率合法的情况下,电压计算单元2053根据计算出来的电压值生成调压信号,变频控制单元2054根据目标频率生成调频信号,在目标频率非法的情况下,变频控制单元2054和电压计算单元2053不产生调频信号和调压信号。示例性地,图上示出了由电压计算单元2053生成的调压信号regv1-regvn,电源管理电路221根据调压信号regv1-regvn生成电压信号vcpu1-vcpun提供给处理单元11-1n,同样,时钟管理单元206根据调频信号regf1-regfn调整处理单元11-1n的时钟频率fcpu1-fcpun。
70.图3是本公开另一实施例提供的片上系统300的结构示意图。与图2的区别在于,在图3中,电源管理电路221设置在片上系统的内部。
71.在一些实施例中,avfs控制器205包括标签分配单元,标签分配单元用于配置多个标签,每个标签对应一个电压计算规则,标签分配单元将接收到的一个处理单元的检测数据指定一个标签,电压计算单元采用该处理单元的标签对应的电压计算规则根据所述检测数据确定该处理单元的供电电压。应理解,电压计算规则既可以是检测数据和供电电压的电压计算公式,还可以是关于检测数据和供电电压的条件表达式。
72.下面说明标签分配单元采用条件语句的一个示例。
73.标签分配单元根据电源管理单元提供的多个电压域设置多个标签,每个标签对应一个电压域,每个标签对应条件表达式,如果一个处理单元的检测数据满足某个标签的设定条件,则该处理单元可采用该标签对应的电压域提供供电电压。举例说明,假设电源管理单元提供1.5v和3v的电压域,标签分配单元为此设定标签1和标签2,如果一个处理单元实时测量的检测数据(例如实时测量的温度)小于第一值时,则该检测数据被归类为标签1,则向该处理单元提供1.5v的供电电压,如果一个处理单元实时测量的检测数据大于或等于第一值时,则归类为标签2,向该处理单元提供3v的供电电压。如此,标签分配单元能够根据接收到的一个处理单元的检测数据迅速向该处理单元提供的供电电压。
74.在一些实施例中,标签分配单元在设置标签时同时兼顾处理单元的结构或工艺上的不同,例如针对两个处理器核的检测数据,当该两个处理器核基于相同工艺且检测数据符合设定范围,将该两个处理器核归类为标签1,当该两个处理器核的工艺不同,在检测数据符合设定范围的情况下,将该两个处理器核分别归类到标签1和标签2。
75.在一些实施例中,基于上述片上系统,avfs控制器205还包括统计单元,用于获取调压操作的统计数据,统计单元例如统计调频调压操作执行的次数、调节后的供电电压、等等,统计数据可以作为后续调频调压的参考。
76.在上述片上系统中,读数据请求、写数据请求和数据传输请求是自定义的传输类型,请求的传输形式可以如下表所示。
77.表格1
78.序号读数据请求写数据请求数据传输请求1cmd_vldcmd_vldcmd_vld2cmd_typecmd_typecmd_type3reg_indexreg_indexsensor index4sensor indexsensor indexrdata5wdata
--
79.其中,cmd_vld表示请求有效,cmd_type表示请求类型,reg_index表示寄存器编号,sensor index表示传感器标识,wdata和rdata表示检测数据。
80.基于上述传输形式,链控制器可向一个或多个传感器组件发送数据帧,每个传感器组件接收到数据帧之后,根据cmd_vld判断请求是否有效,根据cmd_type判断请求类型。在请求有效且请求类型为读数据请求时,按照读数据请求的规范解析数据帧,从中得到sensor index,根据sensor index判断是否属于自己的请求,如果不是,则不作处理,如果是,则读取请求中的信息并进行相应处理,包括:读取reg_index的值,根据该值对传感器组件进行校准或配置,并在配置或校准之后启动传感器采集检测数据,将检测数据插入到数据帧的wdata的位置,然后继续传送数据帧。在请求有效且请求类型为写数据请求时,按照写数据请求的规范解析数据帧从中得到sensor index,根据sensor index判断是否属于自己的请求,如果不是,则不作处理,如果是,则读取请求中的信息并进行相应处理,包括:读取reg_index的值,根据该值对传感器组件进行校准或配置。任意传感器组件也可向链控制器传输数据帧。此时数据帧采用表格1中的数据传输请求的格式。在该格式中,通过sensor index指明数据帧来自哪个传感器组件,通过rdata指明携带的检测数据。
81.基于上述传输形式可知,由于传输的数据帧中包含了标识信息(即sensor index),使得链控制器能够根据标识信息识别接收到的检测数据来自哪个传感器组件,因此,链控制器可以按照乱序从数据传输路径上的多个传感器组件上收集该多个传感器组件的检测数据。例如,链控制器可以随机地向多个传感器组件发送读数据请求,在后收到读数据请求的传感器组件可以先传输检测数据,而无需等待在先收到读数据请求的传感器组件传输完检测数据,或者,任意一个传感器组件,无论该传感器组件处于数据传输路径的任何位置,都可以随时且主动地向链控制器发送带有标识信息的检测数据。
82.我们知道,由于多个传感器组件的型号和结构不同,因此多个传感器组件之间的检测效率也不相同,如果多个传感器组件按固定顺序传输检测数据,会导致检测效率较高
的传感器组件必须等待检测效率较低的传感器组件发送完检测数据之后才能够发送检测数据,而本公开实施例通过数据帧中携带传感器标识,使多个传感器组件可随机发送检测数据,由此检测效率较高的传感器组件能够先发送检测数据,从而有助于提高检测数据的传输效率,并进而提高avfs控制器的处理效率。
83.本公开实施例的调节电压和频率的方法
84.图4是本公开实施例提供的调节电压和频率的方法的流程图。如图上所示,该方法包括以下步骤。
85.在步骤s401中,采用多个传感器组件测量与其耦接的至少一个处理单元的检测数据。
86.在步骤s402中,采用avfs控制器收集至少一个处理单元的检测数据,并根据每个处理单元的检测数据决定每个处理单元的供电电压。
87.本公开实施例的方法在一个计算装置中执行,该计算装置包括至少一个处理单元和avfs控制器,每个处理单元至少耦接一个传感器组件,该方法利用多个传感器组件测量与其耦接的处理单元的检测数据,然后avfs控制器根据每个处理单元的检测数据决定每个处理单元的供电电压,由此得到的每个处理单元的供电电压与其自身的检测数据匹配,从而针对计算装置达到更好的节能效果。
88.在可选的实施例中,多个传感器组件与avfs控制器耦接成环形结构,所述环形结构指示从avfs控制器出发,经由多个传感器组件回到avfs控制器的数据传输路径。
89.在可选的实施例中,avfs控制器按照乱序从数据传输路径上的多个传感器组件收集所述检测数据。例如,avfs控制器发送读数据请求,读数据请求包含指定标识信息,多个传感器组件中的第一传感器组件在确定指定标识信息与第一传感器组件的标识信息相同的情况下,将第一传感器组件的检测数据与第一传感器组件的标识信息一并发送出去,则avfs控制器根据第一传感器组件的标识信息识别出所述第一传感器组件的检测数据。
90.再例如,多个传感器组件中的第三传感器组件主动地、周期性地将所述第三传感器组件的检测数据与所述第三传感器组件的标识信息一并发送出去,所述链控制器根据所述第三传感器组件的标识信息识别出所述第三传感器组件的检测数据。
91.在可选的实施例中,avfs控制器配置多个组,每个组配置一个电压计算规则,并根据接收到的一个处理单元的检测数据将该处理单元分配在多个组的一个组内,从而采用每个处理单元所在组的电压计算规则确定该处理单元的供电电压。
92.片上系统的具体应用
93.图5是本公开实施例所应用的通用计算机系统的结构示意图。如图上所示,计算机系统500可以包括一个或多个处理器12,以及存储器14。其中,上述实施例提供的片上系统可用作处理器12。
94.计算机系统500中的存储器14可以主存储器(简称为主存或内存)。用于存储由数据信号表示的指令信息和/或数据信息,例如存放处理器12提供的数据(例如为运算结果),也可以用于实现处理器12与外部存储设备16(或称为辅助存储器或外部存储器)之间的数据交换。
95.在一些情形下,处理器12可能需要访问存储器14,以获取存储器14中的数据或对存储器14中的数据进行修改。由于存储器14的访问速度较慢,为了缓解处理器12与存储器
14之间的速度差距,计算机系统500还包括与总线11耦合的高速缓冲存储器18,高速缓冲存储器18用于对存储器14中的一些可能会被反复调用的程序数据或者报文数据等数据进行缓存。高速缓冲存储器18例如由静态随机存储器(static random access memory,简称为sram)等类型的存储装置实现。高速缓冲存储器18可以为多级结构,例如具有一级缓存(l1 cache)、二级缓存(l2 cache)和三级缓存(l3 cache)的三级缓存结构,也可以是三级以上的缓存结构或其他类型缓存结构。在一些实施例中,高速缓冲存储器18的一部分(例如一级缓存,或一级缓存和二级缓存)可以集成在处理器12内部或与处理器12集成于同一片上系统中。
96.基于此,处理器12可以包括指令执行单元121、内存管理单元122等部分。指令执行单元121在执行一些需要修改内存的指令时发起写访问请求,该写访问请求指定了需要写入内存中的写入数据和相应的物理地址;内存管理单元122用于将这些指令指定的虚拟地址转译为该虚拟地址映射的物理地址,写访问请求指定的物理地址与相应指令指定的物理地址可以一致。
97.存储器14和高速缓冲存储器18之间的信息交互通常按块来组织。在一些实施例中,高速缓冲存储器18和存储器14可以按照相同的空间尺寸被划分成数据块,数据块可以作为高速缓冲存储器18和存储器14之间的数据交换的最小单位(包括预设长度的一个或多个数据)。为了表述简洁清晰,下面将高速缓冲存储器18中的各个数据块简称为缓存块(可以称为cacheline或高速缓存线),且不同的缓存块具有不同的缓存块地址;将存储器14中的各个数据块简称为内存块,且不同的内存块具有不同的内存块地址。缓存块地址例如包括用于定位数据块的物理地址标签。
98.由于受到空间和资源的限制,高速缓冲存储器18无法对存储器14中的全部内容都进行缓存,即高速缓冲存储器18的存储容量通常小于存储器14,高速缓冲存储器18提供的各个缓存块地址无法对应存储器14提供的全部内存块地址。处理器12在需要访问内存时,首先经总线11访问高速缓冲存储器18,以判断所要访问的内容是否已被存储于高速缓冲存储器18中,如果是,则高速缓冲存储器18命中,此时处理器12直接从高速缓冲存储器18中调用所要访问的内容;如果处理器12需要访问的内容不在高速缓冲存储器18中,则高速缓冲存储器18,处理器12需要经总线11访问存储器14,以在存储器14中查找相应的信息。因为高速缓冲存储器18的存取速率非常快,因此当高速缓冲存储器18命中时,处理器12的效率可以显著提高,进而也使整个计算机系统500的性能和效率得以提升。
99.此外,计算机系统500还可以包括存储设备16、显示设备13、音频设备19、鼠标/键盘15等输入/输出设备。存储设备16例如是通过相应接口与总线11耦合的硬盘、光盘以及闪存等用于信息存取的设备。显示设备13例如经相应的显卡与总线11耦合,用于根据总线11提供的显示信号进行显示。
100.计算机系统500通常还包括通信设备17,因此可以通过各种方式与网络或其他设备通信。通信设备17例如可以包括一种或多种通信模块,作为示例,通信设备17可以包括适用于特定的无线通信协议的无线通信模块。例如,通信设备17可以包括wlan模块,用于实现符合电气和电子工程师协会(ieee)制定的802.11标准的wi-fitm通信;通信设备17也可以包括wwan模块,用于实现符合蜂窝或其他无线广域协议的无线广域通信;通信设备17还可以包括蓝牙模块等采用其它协议的通信模块,或其它自定义类型的通信模块;通信设备17
也可以是用于串行传输数据的端口。
101.当然,不同的计算机系统根据主板、操作系统和指令集架构的不同,其结构也可能有所变化。例如目前很多计算机系统设置有连接在总线11和各个输入/输出设备之间的输入/输出控制中心,且该输入/输出控制中心可以集成于处理器12之内或独立于处理器12。
102.图6是本公开实施例所应用的嵌入式系统的结构图。上述实施例提供的片上系统可用作处理器601。
103.虽然嵌入式系统在硬件结构上与计算机系统具有高度相似性,但是嵌入式系统应用上的特点致使嵌入式系统在硬件的组成和实现形式上与通用计算机系统又有较大区别。
104.首先,为满足嵌入式系统600在速度、体积和功耗上的要求,操作系统、应用软件、特殊数据等需要长期保存的数据,通常不使用磁盘这类具有大容量且速度较慢的存储介质,而大多使用随机存储器602或闪存(flash memory)603。
105.另外,在嵌入式系统600中,需要a/d(模拟/数字转换)接口605和串行接口606,用于测控的需要,这在通用计算机中用得很少。a/d接口605主要完成测试中所需要的模拟信号到数字信号的转换、和数字信号到模拟信号的转换。嵌入式系统600应用于工业生产时经常需要测试。由于单片机产生的是数字信号,在测试时需要转换成模拟信号用于测试,因此,与通用计算机不同,需要a/d(模拟/数字转换)接口605完成相关转换。另外,工业中经常需要多个嵌入式系统串接在一起,完成相关功能,因此需要用于将多个嵌入式系统串联的串行接口606,而在通用计算机中则大多不需要。
106.另外,嵌入式系统600作为一个基本的处理单元,常常在工业设计中需要将多个嵌入式系统600联成网络,因此需要将嵌入式系统600联入网络的网络接口607。这在通用计算机中大多也不需要。此外,根据实际应用和规模的不同,有些嵌入式系统600要采用外部总线604。随着嵌入式系统600应用领域的迅速扩张,嵌入式系统600越来越趋于个性化,根据自身特点采用总线的种类也越来越多。另外,为了对嵌入式处理器601内部电路进行测试,处理器芯片普遍采用了边界扫描测试技术。为了适应该测试,采用了调试接口608。
107.随着超大规模集成电路(very large scale integration)和半导体工艺的迅速发展,上述的嵌入式系统的部分或者全部可实现在一个硅片上,即为嵌入式片上系统(soc)。
108.本公开实施例的商业价值
109.本公开实施例提供的片上系统针对多个处理单元中的每个处理单元提供相应的供电电压能够更有效的降低功耗。此类片上系统可形成多种场景使用的计算装置,例如数据中心数量庞大的云服务器,在此场景下,通过降低每个处理器的功耗从而降低每个云服务器的功耗,进而降低每个云服务器和整个数据中心的运行成本;再例如,日常生活中使用的电子设备,包括诸如笔记本和手机等终端设备以及某些消费型电子产品,通过降低功耗来提高电子设备的系统续航时间,从而提升用户体验。由此可见,本公开实施例的片上系统以及由该片上系统构建的计算装置在具有实用价值的基础上,具备了商业价值和经济价值。
110.本领域的技术人员能够理解,本公开可以实现为系统、方法和计算机程序产品。因此,本公开可以具体实现为以下形式,即完全的硬件、完全的软件(包括固件、驻留软件、微代码),还可以实现为软件和硬件结合的形式。此外,在一些实施例中,本公开还可以实现为
一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
111.可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如但不限于为电、磁、光、电磁、红外线或半导体的系统、装置或器件,或其他任意以上的组合。计算机可读存储介质的更具体的例子包括:具体一个或多个导线的电连接,便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或者闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器、磁存储器或者上述任意合适的组合。在本文中,计算机可读的存储介质可以是任意包含或存储程序的有形介质,该程序可以被处理单元、装置或者器件使用,或者与其结合使用。
112.计算机可读信号介质可以包括在基带中或者作为截波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或者其他任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质之外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令系统、装置或器件使用或者与其结合使用的程序。
113.计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、rf等等,以及上述任意合适的组合。
114.可以以一种或者多种程序设计语言或者组合来编写用于执行本公开实施例的计算机程序代码。所述程序设计语言包括面向对象的程序设计语言,例如java、c++,还可以包括常规的过程式程序设计语言,例如c。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络包括局域网(lan)或广域网(wan)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
115.以上所述仅为本公开的优选实施例,并不用于限制本公开,对于本领域技术人员而言,本公开可以有各种改动和变化。凡在本公开的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1