首页 / 专利库 / 传感器与探测器 / 传感器 / 带有降低的页面交换开销的传感器中枢和存储器系统

带有降低的页面交换开销的传感器中枢和存储器系统

阅读:506发布:2020-05-08

专利汇可以提供带有降低的页面交换开销的传感器中枢和存储器系统专利检索,专利查询,专利分析的服务。并且描述了监督多个 传感器 的操作的传感器中枢方法,方法包含在具有程序代码的较高优先级代码和/或数据的较高优先级页面已在嵌入式 存储器 中保持闲置达第一时间期后,将较高优先级页面换出传感器中枢从中操作的嵌入式存储器。方法还包含在包括程序代码的较低优先级代码和/或数据的较低优先级页面已在嵌入式存储器中保持闲置达比第一时间期短的第二时间期后将较低优先级页面换出嵌入式存储器。,下面是带有降低的页面交换开销的传感器中枢和存储器系统专利的具体信息内容。

1.一种计算系统,包括:
a)多个通用处理核;
b)主存储器控制器
c)多个传感器
d)用以为所述传感器执行程序代码的传感器中枢;
e)耦合到所述传感器中枢的嵌入式存储器,所述传感器中枢用以从所述嵌入式存储器中执行所述程序代码;
f)用以存储所述程序代码的非易失性存储装置,所述程序代码包括指令,所述指令在由所述传感器中枢执行时促使所述传感器执行包括以下步骤的方法:
在包括所述程序代码的较高优先级代码和/或数据的较高优先级页面已在所述嵌入式存储器中保持闲置达第一时间期后,从所述嵌入式存储器中将所述较高优先级页面换出;
以及,
在包括所述程序代码的较低优先级代码和/或数据的较低优先级页面已在所述嵌入式存储器中保持闲置达比所述第一时间期短的第二时间期后,从所述嵌入式存储器中将所述较低优先级页面换出。
2.如权利要求1所述的计算系统,其中所述较高优先级页面不含有所述程序代码的较低优先级代码和/或数据。
3.如权利要求1所述的计算系统,其中所述较低优先级页面不含有所述程序代码的较高优先级代码和/或数据。
4.如权利要求1所述的计算系统,其中所述第一时间期大于一秒,并且所述第二时间期小于一秒。
5.如权利要求1所述的计算系统,其中所述方法进一步包括:
在包括所述程序代码的中等优先级代码和/或数据的中等优先级页面已在所述嵌入式存储器中保持闲置达比所述第一时间期小但比所述第二时间期大的第三时间期后,从所述嵌入式存储器中将所述中等优先级页面换出。
6.如权利要求1所述的计算系统,其中所述程序代码包括各自被指派到多个不同优先级别之一的多个页面,每个优先级别被指派有在符合从所述嵌入式存储器被驱逐前它被允许闲置在所述嵌入式存储器中的不同时间量。
7.如权利要求1所述的计算系统,其中所述传感器包含以下任何项:
温度计;
加速器;
换能器。
8.一种含有程序代码的机器可读存储介质,所述程序代码在由传感器中枢处理以监督多个传感器的操作时促使所述传感器中枢执行包括以下操作的方法:
在包括所述程序代码的较高优先级代码和/或数据的较高优先级页面已在嵌入式存储器中保持闲置达第一时间期后,将所述较高优先级页面换出所述传感器中枢从中操作所述程序的所述嵌入式存储器;以及,
在包括所述程序代码的较低优先级代码和/或数据的较低优先级页面已在所述嵌入式存储器中保持闲置达比所述第一时间期短的第二时间期后,将所述较低优先级页面换出所述嵌入式存储器。
9.如权利要求8所述的机器可读介质,其中所述较高优先级页面不含有所述程序代码的较低优先级代码和/或数据。
10.如权利要求8所述的机器可读介质,其中所述较低优先级页面不含有所述程序代码的较高优先级代码和/或数据。
11.如权利要求8所述的机器可读介质,其中所述第一时间期大于一秒,并且所述第二时间期小于一秒。
12.如权利要求8所述的机器可读介质,其中所述方法进一步包括:
在包括所述程序代码的中等优先级代码和/或数据的中等优先级页面已在所述嵌入式存储器中保持闲置达比所述第一时间期小但比所述第二时间期大的第三时间期后,将所述中等优先级页面换出所述嵌入式存储器。
13.如权利要求8所述的机器可读介质,其中所述程序代码包括各自被指派到多个不同优先级别之一的多个页面,每个优先级别被指派有在符合从所述嵌入式存储器被驱逐前它被允许闲置在所述嵌入式存储器中的不同时间量。
14.一种含有程序代码的机器可读介质,所述程序代码在由计算系统处理时促使所述计算系统执行包括以下操作的方法:
从用于多个传感器的相应程序提取程序代码和数据的较高优先级片段和程序代码的较低优先级片段;
将来自所述程序中的不同程序的程序代码和数据的某些较高优先级片段融合在相同高优先级页面上;
将来自所述程序中的不同程序的程序代码和数据的某些较低优先级片段融合在相同低优先级页面上;
指派所述高优先级页面将在嵌入式存储器中闲置的第一时间量;
指派所述低优先级页面将在嵌入式存储器中闲置的第二时间量,所述第二时间量小于所述第一时间量。
15.如权利要求14所述的机器可读介质,其中所述较高优先级片段未被写以被置于睡眠。
16.如权利要求14所述的机器可读介质,其中所述较低优先级片段被写以被置于睡眠。
17.如权利要求14所述的机器可读介质,其中所述较高优先级片段实现所述程序代码的主循环。
18.如权利要求14所述的机器可读介质,其中所述较低优先级片段执行专用高级计算。
19.如权利要求14所述的机器可读介质,进一步包括允许程序将所述高优先级页面标示为高优先级页面。
20.如权利要求14所述的机器可读介质,进一步包括允许程序将所述低优先级页面标示为低优先级页面。
21.一种半导体芯片,包括:
用以为多个传感器执行程序代码的传感器中枢;
耦合到所述传感器中枢的嵌入式存储器,所述传感器中枢用以从所述嵌入式存储器中执行所述程序代码,所述传感器中枢用以执行以下操作:
在包括所述程序代码的较高优先级代码和/或数据的较高优先级页面已在所述嵌入式存储器中保持闲置达第一时间期后,从所述嵌入式存储器中将所述较高优先级页面换出;
以及,
在包括所述程序代码的较低优先级代码和/或数据的较低优先级页面已在所述嵌入式存储器中保持闲置达比所述第一时间期短的第二时间期后,从所述嵌入式存储器中将所述较低优先级页面换出。
22.如权利要求21所述的半导体芯片,进一步包括通用处理核。
23.如权利要求22所述的半导体芯片,其中所述传感器被集成在外设控制中枢内。
24.如权利要求23所述的半导体芯片,其中所述较高和较低页面将被换出到存储器,所述存储器被耦合到嵌在所述半导体芯片上的存储器控制器。

说明书全文

带有降低的页面交换开销的传感器中枢和存储器系统

发明领域

[0001] 本发明领域一般涉及计算机科学,并且更具体地说,涉及带有降低的页面交换开销的传感器中枢和存储器系统。

背景技术

[0002] 计算系统正被设计成变得越来越注意到它们的周围环境。正因如此,系统设计人员感兴趣于发现新的方式来将各种传感器及它们的管理集成到他们在设计的系统中。附图说明
[0003] 结合下面的附图,从下面的详细描述中能够获得本发明的更好理解,附图中:图1示出具有传感器中枢和嵌入式存储器的计算系统;
图2示出用于编译从嵌入式存储器中要由传感器中枢执行的程序代码的方法;
图3示出要由从嵌入式存储器中操作的传感器中枢执行的程序代码的不同优先级别的不同特性;
图4a示出页面交换方法;
图4b示出功率节约页面驱逐方法;
图4c示出用于进入S0ix状态的过程。

具体实施方式

[0004] 图1示出具有集成传感器中枢102的计算系统100的描绘。集成传感器中枢102可被实现为嵌入式处理器或嵌入式控制器,其执行特定于被集成到计算系统100中的各种传感器103_1至103_M的程序代码。在这里,传感器能够包含对计算系统的周围环境作出反应的任何装置。示例包含温度计(对计算机的环境温度作出反应)、加速计(对计算机的物理定向和/或移动作出反应)、换能器(对施加到计算机的压/力作出反应)等。
[0005] 每个此类传感器103典型地具有关联的装置驱动程序软件或类似固件。传感器中枢101能够因此被视为专用处理器,其从计算机的通用CPU核104_1至104_N卸载传感器有关程序代码执行的负担/任务。通过这样做,例如,通用CPU 104能够被置于睡眠,而集成传感器中枢101保持活跃。正因如此,计算系统能节省功率(CPU核是睡眠的),而同时保持其传感器有关功能运作。正因如此,仅作为一种可能性,计算机100可以通过其通用CPU处于睡眠而在延长的时间期节省大量的功率,而同时完全注意和认识到其周围环境。
[0006] 与其它处理器一样,集成传感器中枢101执行来自存储器的程序代码。更具体地说,集成传感器中枢101在它需要程序代码指令时从存储器读取它们。类似地,集成传感器中枢101从存储器读取由程序代码对其进行操作的数据,并且对此类数据的更新能够被写回到存储器。
[0007] 如技术领域所熟知,用于处理器的软件/固件程序的程序代码和数据二者被存储为处理器的存储器内的“页面”。在这里,处理器的存储器具有有限的容量(与处理器能执行的所有软件关联的所有程序代码和数据不能装入存储器)。在传统计算系统中,通用处理器核104将从含有它目前需要或认为它将需要的程序代码指令和数据的非易失性大容量存储装置107(例如,盘驱动器)调用页面并且将它们放置到主存储器105(也称为系统存储器105)中。同样地,通用处理器104将促使目前在主存储器105中但其关联的程序代码和数据被认为不是迫切需要的页面被推出主存储器105并且写回到非易失性大容量存储装置107中。因此,在传统计算系统中,计算机的主存储器105与大容量存储装置102之间存在页面交换行为。
[0008] 根据一个实施例,集成传感器中枢101从作为其主处理器存储器的本地嵌入式存储器102(例如,静态随机存取存储器(SRAM)或嵌入式动态随机存取存储器(eDRAM)存储器)中操作,并且使用计算系统的主存储器105(例如,双数据率(DDR)动态随机存取存储器(DRAM))作为大容量存储高速缓存。因此,页面交换行为110在本地嵌入式存储器102与计算系统的主存储器105之间进行。具体而言,传感器中枢101迫切需要(或者认为它将迫切需要)的程序代码和/或数据的页面被从计算系统的主存储器105调用并且输入本地存储器102中。相比之下,传感器中枢101不需要(或者不认为它需要)的程序代码和/或数据的页面被推出本地嵌入式存储器102并且写回到计算系统的主存储器105中。
[0009] 根据另一实施例,传感器中枢101还能够从计算系统的主存储器105中操作。在此情况下,传感器中枢具有两个可操作的存储器区:1)第一较快访问存储器区101(本地嵌入式存储器);以及2)第二较慢访问存储器区105(DRAM计算机主存储器)。
[0010] 在这里,说传感器中枢101“从存储器中操作”(或“从存储器中执行”)意思是由传感器中枢101执行的存储器读/写指令能够由存储器直接贡献(如果无中间处理器高速缓存具有对项的寻求的话)。一般地,此类访问比大容量存储装置访问是更细粒的。例如,存储器请求一般地与存储器地址空间的更细粒量有关(例如,由保持在例如十六个、八个或更少存储器地址的数据/代码组成的高速缓存行,字节可寻址操作由存储器写指令指定等)。相比之下,对大容量存储装置107的访问典型地与消耗更大得多的量的存储器地址空间的代码/数据的更大得多的“”或“扇区”有关。
[0011] 无论主存储器105是被用作大容量存储高速缓存(上面所描述的第一实施例)还是用作传感器中枢101从中操作的存储器的第二区(上面所描述的第二存储器),如果传感器中枢101最常访问的页面在延长的时间期内被保持在嵌入式存储器102中,则总体系统将在性能/效率方面表现得更佳。也就是说,由于从传感器中枢101的度而言,嵌入式存储器102具有比主存储器105更低的访问时间,因此,传感器中枢101将能最有效地执行传感器有关的程序代码。另外,如果传感器中枢从主存储器105中操作,则一般倾向于有更多的功率消耗,因为主存储器控制器106和主存储器105必须被开启/是活跃的。相比之下,如果传感器中枢101仅从嵌入式存储器102操作,则主存储器控制器106和主存储器105能够被关闭。
因此,存在将具有更经常被访问的代码/数据的页面移到嵌入式存储器102的动机,而不论传感器中枢是能够从两个存储器102、105中操作还是能够仅从嵌入式存储器102中操作。
[0012] 不幸地,一般在主存储器105与嵌入式存储器102之间的页面交换行为110本身是一种低效率的形式(将数据/代码移到计算机中的新位置消耗功率,传感器中枢101在等待位于正被换入的页面上的数据/代码时可能停止,等等)。通过最小化进/出存储器102、105的页面交换行为110,因此获得操作效率。
[0013] 然而,在其中嵌入式存储器102尺寸小和/或与SRAM一样消耗大量的功率的实现中,存在挑战/问题。在这些环境中,由于嵌入式存储器102小的尺寸而存在从其换出页面(潜在地甚至经常被访问的页面)的倾向性。如果嵌入式存储器102被设计成使其存储体(bank)中的各种存储体动态关闭以节约功率,则嵌入式存储器102的容量还被进一步降低,这加剧了问题。
[0014] 因此,在各种实施例中,提出了如下的机制:将传感器中枢101最经常访问的代码/数据保持在嵌入式存储器102内,并且尽可能地阻止此类高优先级代码/数据被换出嵌入式存储器102。在这里,简单的最近最少使用页面驱逐策略(驱逐已经驻留在嵌入式存储器102中最长时间而传感器中枢101一直未对其进行访问的页面)本身可能没有准确地反映哪个代码/数据被传感器中枢101最经常访问(例如,在处理器的长运行时间内)。
[0015] 因此,在各种实施例中,编译传感器中枢的程序代码的编译器有意地简化处理构建的代码,使得代码/数据的更经常被访问项将比代码/数据的不太经常被访问项保持在嵌入式存储器102中更长的时间期,即使代码/数据的一些更经常被访问项展现出在其中它们未被传感器中枢101访问的扩展的时间期。
[0016] 根据第一代码构造过程,由编译器构造的不同页面的每一个被赋予数字或优先级别中的给定一个。在运行时间期间,具有较高优先级别的页面被允许比较低优先级页面在不被访问的情况下保持在嵌入式存储器102中更长的时间期。在这里,根据标称后台过程,如果嵌入式存储器102是满的,并且新页面需要从计算机的主存储器105被换入嵌入式存储器102,则传感器中枢101和/或在传感器中枢102上执行的代码将不得不选择哪个页面将被换出嵌入式存储器102。如上面所间接提到的,类似的问题传统上一直通过驱逐最近最少使用项来处置。
[0017] 然而,根据一个实施例,如果页面被赋予高优先级,则除非在该页面处于闲置(未被传感器中枢101访问)的某一延长的时间期已过去,否则,它并不符合被换出嵌入式存储器102,其中该延长的时间期比其他较低优先级页面在符合从嵌入式存储器102移除前被允许闲置的时间量更长。因此,即使较高优先级页面已闲置在嵌入式存储器102中比较低优先级页面更长的时间期,较低优先级页面可被换出嵌入式存储器102,而较高优先级页面保持在嵌入式存储器102中。
[0018] 作为示例,除非最高优先级页面已闲置在嵌入式存储器102中至少3秒,否则,最高优先级页面设置可不允许它被换出嵌入式存储器102,而最低优先级页面设置没有此类条件(例如,最低优先级页面如果保持闲置.5秒,则它符合被换出)。在此情况下,只要较高优先级页面未闲置超过3秒,则即使最低优先级页面比最高优先级页面已闲置更短的时间期,最低优先级页面也将始终被选择成被换出嵌入式存储器102。
[0019] 根据备选或组合的实施例,编译器有意地将较高优先级程序代码和数据放置在高优先级页面上,并且有意地将较低优先级程序代码和数据放置在低优先级页面上。因此,编译器有意地构造带有“设计用于的”优先级别的传感器中枢的程序代码的代码/数据。在这里,较高优先级代码和数据一般是编译器理解/认为将更经常被访问的代码和数据,而较低优先级代码和数据一般是编译器理解/认为将不太经常被访问的代码和数据。
[0020] 在这里,要由传感器中枢101执行的总软件/固件可以是不同软件程序的组合,诸如用于多个不同传感器中的每一个的不同装置驱动程序软件/固件程序的组合。然而,传统编译器将构造页面,使得仅来自相同传感器的驱动程序的代码/数据被置于相同页面上,相比之下,改进的方案允许编译器合并(“融合”)来自不同驱动程序的较高优先级代码片段和数据到相同页面上。在这里,片段可以被视为例如与能够在单个页面上装入的代码/数据的总量相比,程序代码/数据的更细粒、更小区段(section)。因此,例如,用于不同装置驱动程序的代码和数据的更经常被访问的片段可被放置在如由编译器构造的高优先级页面上。
[0021] 这样做理想地阻止了既具有高优先级代码/数据也具有低优先级代码/数据的页面的存在。在这里,如果存在的具有高优先级和低优先级代码/数据二者的页面的数量超过嵌入式存储器102的容量,则系统将不断地“抖动”(thrash)页面交换操作110,因为它将以也含有高优先级代码/数据并且将需要被换出嵌入式存储器以便为在被换入的页面留出空间的另一页面为代价,反复地需要换入具有高优先级代码/数据的页面。
[0022] 图2示出用于包含上面所描述的特征的集成传感器中枢的软件/固件的软件编译过程200。在这里,用于不同传感器的相应软件程序(例如,用于不同传感器的装置驱动程序)被细分成代码和数据的相应较高优先级片段以及代码和数据的较低优先级片段,201。随后,来自跨不同软件程序的程序代码和数据的较高优先级片段被合并到较高优先级页面上,并且来自相同的不同软件程序的程序代码和数据的较低优先级片段被合并到较低优先级页面上,202。
[0023] 页面中的每一页面被标示相应优先级标识符并且为每个优先级别指派在嵌入式存储器中允许的闲置时间,203。还将策略代码插入软件中,传感器中枢使用该策略代码来确定在其中页面需要被换入嵌入式存储器102中但在嵌入式存储器102中无自由空间存在以容纳新页面(它被填充有其它页面)的情况下,将哪个页面换出嵌入式存储器102。注意,上面所描述的参数中的各种参数(例如,给特定页面的特定优先级别的指派,给特定优先级别的特定闲置时间的指派)可由程序员提供,可由编译器自动指派,或者二者的某一组合。
[0024] 在其它实施例中,仅将具有相同优先级值的代码和数据的片段放置在相同页面上。因此,不允许将具有不同优先级别的代码/数据的片段放置在相同页面上,这将防止由于低优先级代码驻留在也含有经常被使用的一小段代码/数据的页面上,大量的低优先级代码消耗宝贵的嵌入式存储器空间。在其它实施例中,努力尽可能地将具有相同优先级别的代码/数据的片段放置在相同页面上。如果任何(例如,最后剩余的)页面具有不同优先级值的代码/数据的片段,则该页面被指派其较高优先级代码/数据的优先级别。
[0025] 图3示出清晰地表达不同代码/数据优先级别的特性并标识用于每个优先级别的允许的闲置时间策略的优先级方案的实施例。如在图3中所观察到的,在实施例中,为始终活跃(“始终开启”或从未被置于睡眠)的程序代码预留了最高优先级别P0。此类型的程序代码通常具有传感器中枢本身的深的、基本的、核心的操作的特性(例如,传感器中枢的实时操作系统、传感器中枢的应用软件的主循环、包含用来确定哪个页面要换出嵌入式存储器的插入的代码的页面交换程序代码、传感器中枢的存储器管理(例如,监督由传感器中枢的软件唤起的哪些地址映射到嵌入式存储器和外部主存储器中的哪些物理地址的代码)、传感器中枢功率管理程序代码)。
[0026] 为可以被置于睡眠但仍经常被使用的程序代码预留下一最高优先级别P1。此类型的程序代码通常具有各个传感器本身的基本例程的特性(例如,特定传感器的装置驱动程序的主循环、用于特定传感器的功率管理程序代码、基本状态程序代码(例如,醒着/活着的看狗计时器等)或经常被使用的传感器(例如,加速计)的全部例程。某些传感器还可以具有比其它传感器的更高优先级。因此,例如,与一个传感器关联的程序代码可被指派有始终比指派到另一传感器的程序代码的(一个或多个)优先级别更高的(一个或多个)优先级别。
[0027] 为可以被置于睡眠并且不被经常使用的程序代码预留最低优先级别P2。此类型的程序代码通常具有仅响应于极少的机会而活跃的传感器中枢或各个传感器的例程的特性(例如,年度维护/校准程序代码、专用/操作模式程序代码(例如,如果传感器遇到极端环境条件则被使用的特定高级算法等))。
[0028] 图3中还描绘的是用于每个优先级别的示例性闲置期间,其指定具有特定优先级别的页面在它符合被换出嵌入式存储器前可保持在嵌入式存储器中多长时间。如在图3中所能够看到的,相比较低优先级页面,较高优先级页面在符合从嵌入式存储器中驱逐前被允许闲置在嵌入式存储器中更长的时间期。在实施例中,闲置时间阈值被配置为到传感器中枢的页面交换程序代码算法中的设置。另外,页面它们本身具有关联的元数据,所述元数据包含指定每个页面已被指派什么优先级别的信息。此信息也由传感器中枢的页面交换程序代码参考。
[0029] 在各种实施例中,通过在监督编译过程的程序员提供的暗示和/或特定指示,完成程序代码/数据到特定优先级别的指派。也就是说,程序员可以例如基于上面所讨论的特性来为更大程序的某些段(segment)单独指派某些优先级别。备选地或组合地,编译器还可以基于代码的特性来自动指派优先级别。例如,高优先级代码的标记可以包含其分支跳到大的程序代码区段的基本代码循环的程序、在嵌入式存储器与外部存储器之间移动页面的程序代码、访问计算机(而非传感器)的部分的程序代码(其可以指示操作系统或其它核心过程等等)。
[0030] 在进一步的实施例中,传感器中枢101具有不同性能状态,每个性能状态具有在性能与功率消耗之间的其自己的折中(其中一般地,在性能中的每个递升对应于在功率消耗中的对应递升)。例如,在一个实施例中,嵌入式存储器102具有多个存储器存储体。在最高性能状态中,嵌入式存储器102的所有存储体是活跃的,而在最低性能状态,一个存储体或无存储体是活跃的(在后者的情况下,如果传感器中枢101被架构成直接从主存储器105中操作,则即使所有嵌入式存储器存储体是不活跃的,传感器中枢101仍能够执行程序代码)。
[0031] 在最高性能状态中的操作期间,分页算法将页面带入嵌入式存储器102中而不驱逐任何页面,直至嵌入式存储器102充满页面。一旦嵌入式存储器102充满页面,则上面提及的基于优先级的换出策略被用来换入任何下一页面。
[0032] 在其中传感器中枢101不能直接从主存储器105中操作并且只能够直接从嵌入式存储器102中操作的实施例中,如果嵌入式存储器已满,则在传感器中枢代码的执行期间的任何页面未命中将以从嵌入式存储器102驱逐页面为代价,促使下一页面从主存储器105被换入嵌入式存储器102中。在其中传感器中枢101能够直接从主存储器105中操作的实施例中,根据一种方案,如果要从中被操作的页面驻留在主存储器105中并且比在嵌入式存储器102中的页面具有较高优先级,则较高优先级页面与较低优先级页面被交换(要被换出的特定较低优先级页面能够被标识为在嵌入式存储器102中具有最长当前闲置时间的最低优先级页面)。
[0033] 在传感器中枢101的低功率操作模式中,在各种实施例中,传感器中枢101积极地尝试最小化活跃的嵌入式存储器存储体的数量。在此情况下,如果嵌入式存储器102中的任何页面具有超过针对该页面的优先级别的阈值的闲置期间,则传感器中枢将从嵌入式存储器102驱逐页面。传感器中枢101可随后将存留下的页面合并成尽可能少的存储体以“腾空”存储体(使得它没有页面)并且随后停用该存储体。
[0034] 至少在其中传感器中枢101直接从嵌入式存储器102而不是主存储器105操作的实施例中,如果传感器中枢101需要不在嵌入式存储器102中的页面(页面未命中)上的数据/代码,则需要的页面从主存储器105被调用并且放置在嵌入式存储器102中。如果嵌入式存储器102中的所有预存在页面还在它们的分配的闲置阈值内,则新调用的页面将被加入在嵌入式存储器102中已经存在的页面的集合。如果在激活的嵌入式存储器存储体的集合中没有足够可用空间,则另一嵌入式存储器存储体被激活以容纳新调用的页面。在其中传感器中枢101也能直接从主存储器105中操作的备选实施例中,最高/较高优先级页面可被调用到嵌入式存储器102,但较低优先级页面不被调用(至少在低功率模式中,传感器中枢101直接从主存储器105访问在低优先级页面上的数据/代码)。
[0035] 注意,在各种实施例中,主存储器105可以通过比传统FLASH更快并且因此适合用于主/系统存储器应用的新兴非易失性存储器技术(例如,具有由硫化物组成的存储单元的非易失性存储器、电阻随机存取存储器(ReRAM)、电随机存取存储器(FeRAM)、磁性随机存取存储器(例如,自旋转移力矩RAM(STT-RAM))等)来被部分或完全实现。此类非易失性存储器可以是三维的(例如,在半导体管芯的冶金(metallurgy)中的堆栈存储单元)并且能作为真系统存储器(例如,是字节可寻址的,以数据的高速缓存行在物理上访问)而不是传统大容量存储装置(其通过数据的更大“扇区”或“块”而在物理上访问)来操作。
[0036] 即使如此,在其中传感器中枢101仅从嵌入式存储器102中操作的实施例中,此类非易失性主存储器实际上仿真用于传感器中枢和嵌入式存储器处理器/存储器系统的大容量存储资源。也就是说,页面被换入要在上面操作的易失性嵌入式存储器并在不被需要时被换出易失性嵌入式存储器且存储在非易失性存储装置资源中。当页面被换出嵌入式存储器102并且写回到非易失性主存储器105时,即使存在系统功率失效,该页面的状态也被保留。
[0037] 注意,关于图1,CPU核104、主存储器控制器106、图形处理器单元(GPU)、主存储器控制中枢和外设控制器(其包含传感器中枢101和嵌入式存储器102)中的任何项可以被集成在相同半导体芯片(例如,片上系统(SoC))上。在其它实施例中,传感器中枢可以被集成在缺乏这些组件中的各种组件(诸如GPU或包含仅一个通用核)的半导体芯片上。此类精简的SoC或其它半导体芯片可以是被集成在与传统计算机不同的智能设备内的半导体芯片。
[0038] 在处理器的集成传感器中枢101(或具有指令执行流线以执行程序代码的其它功能块)上执行的软件和/或固件可以执行上面所描述的功能的任一项。由传感器中枢执行的软件/固件可以永久性地被存储或准永久性地被存储在计算系统的非易失性存储器或存储装置中。例如,如在图1中所观察到的,由传感器中枢101执行的软件/固件可以被存储在诸如FLASH存储器的存储计算系统的基本输入/输出系统(BIOS)的相同非易失性存储器111中。在系统启动期间,可以从非易失性存储器111读并且在嵌入式存储器102和/或主存储器105中存储由传感器中枢101执行的软件/固件。
[0039] 图4a、4b和4c示出用于从嵌入式存储器102而不是主存储器105中执行的传感器中枢的不同方法学。图4a的方法学与标称(较高功率)性能状态有关,在该状态中传感器中枢未在积极尝试以其最低功率运行嵌入式存储器。根据图4a的方法学,如果存在页面未命中(传感器中枢所希望的代码/数据不在嵌入式存储器中),401,则如果在嵌入式存储器中存在自由空间,402,那么具有希望的代码/数据的页面被换入,404。相比之下,如果在嵌入式存储器中不存在自由空间,402,则传感器中枢将从嵌入式存储器中换出在嵌入式存储器中已保持闲置最长的最低优先级页面,403,并且随后将希望的页面换入嵌入式存储器中,404。
[0040] 图4b的方法学与较低性能状态操作有关,在该状态操作中传感器中枢积极尝试以其最低功率运行嵌入式存储器。根据图4b的方法学,传感器中枢周期性地扫描嵌入式存储器,寻求换出(一个或多个)闲置页面。这里,计时器设置扫描的周期性。在计时器期满和关联的中断时,401,传感器中枢扫描嵌入式存储器,寻求已经闲置超过已被分配用于它们相应优先级别的时间量的任何页面,402。如果无此类页面存在,则在下一计时器期满时,该过程被重复进行。如果此类页面存在,则它们被换出嵌入式存储器,并且如果任何嵌入式存储器存储体能够由于空间因为(一个或多个)页面被换出而在嵌入式存储器中被腾出而被关闭,则(一个或多个)存储体被关闭。
[0041] 图4c示出传感器中枢可以根据其进行操作的极低功率或最低功率操作功率状态。在这里,如本技术领域所知道的,不同计算系统组件具有不同功率状态,其中例如,S0状态是唯一可操作状态,并且S1、S2等功率状态对应于日益更深的睡眠状态,在这些睡眠状态中组件通过每个更深睡眠状态而消耗更少功率,但也花费更长时间以返回到活跃S0状态。称为“S0ix”状态的另一功率状态是用于“活跃闲置”的系统功率状态。尽管在此状态中,该更大计算系统典型地未在执行任何实际工作(例如,由提供到计算系统的外部刺激所产生的),但同时保持了某些基本/主要功能活着/活跃,以便例如如果突然外部刺激被提供,则消耗极少的时间来使组件以增大的性能能力作出响应。
[0042] 在该情况下,在系统进入S0ix状态时,在各种实施例中,除最高优先级P0页面外的所有传感器中枢页面被从嵌入式存储器降级到外部存储器421。如上所讨论的,许多P0例程用于始终开启的基本/基础功能。在实质上仅此类例程在嵌入式存储器中的情况下,传感器中枢应在很大程度上是闲置的(不执行任何实际工作),但倘若需要存在,则能快速开始执行实际工作。在系统闲置在S0ix状态中时传感器中枢闲置的情况下,倘若系统突然不得不对一些外部刺激作出响应并且返回到其正常S0功率状态,如果传感器中枢突然需要执行实际工作,则含有用来实现实际工作的程序代码/数据的较低优先级页面能够被快速从外部存储器调用并且放置到嵌入式存储器中。在各种实施例中,系统由于最近的用户和/或网络无活动而进入S0ix状态,但系统的无线网络调制解调器保持活跃,以防止系统突然收到任何新无线通信。图4c的方法的备选实施例可以不具体地与S0ix状态关联,而是与某一其它(例如,非工业标准)低功率闲置状态关联。
[0043] 本发明的实施例可以包含如上面所阐述的各种过程。过程可以在机器可执行指令中被实施。指令能够被用来促使通用或专用处理器(诸如上面所提及的集成传感器中枢)执行某些过程。备选地,这些过程可以由含有用于执行过程的硬连线或可编程的逻辑电路的特定硬件组件执行,或由此类逻辑和/或处理器组件的任何组合执行。具体地关于传感器中枢,上面所描述的由传感器中枢软件执行的各种方法可以转而由传感器中枢通过专用硬连线或可编程的逻辑电路而在硬件中执行。
[0044] 本发明的元素还可以被提供为用于存储机器可执行指令的机器可读介质。机器可读介质可以包含但不限于软盘、光盘、CD-ROM、以及磁光盘、FLASH存储器、ROM、RAM、EPROM、EEPROM、磁或光学卡、传播介质或适合用于存储电子指令的其它类型的介质/机器可读介质。例如,本发明可作为计算机程序被下载,所述计算机程序可以经由通信链路(例如,调制解调器或网络连接),作为在载波或其它传播介质中体现的数据信号而从远程计算机(例如,服务器)被转移到请求计算机(例如,客户端)。
[0045] 在前述说明书中,本发明已参照其特定示例性实施例被描述。然而,将明显的是,在不脱离如随附权利要求中所阐述的本发明的更广泛的精神和范围的情况下,可以对其进行各种修改和更改。因此,要以说明性而不是限制性的意义来考虑说明书和附图。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈