CN109983805A - Wifi存储器功率最小化 - Google Patents
Wifi存储器功率最小化 Download PDFInfo
- Publication number
- CN109983805A CN109983805A CN201780072487.6A CN201780072487A CN109983805A CN 109983805 A CN109983805 A CN 109983805A CN 201780072487 A CN201780072487 A CN 201780072487A CN 109983805 A CN109983805 A CN 109983805A
- Authority
- CN
- China
- Prior art keywords
- page
- memory
- processor
- host
- chip
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3275—Power saving in memory, e.g. RAM, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3287—Power saving characterised by the action undertaken by switching off individual functional units in the computer system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3293—Power saving characterised by the action undertaken by switching to a less power-consuming processor, e.g. sub-CPU
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3296—Power saving characterised by the action undertaken by lowering the supply or operating voltage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0215—Addressing or allocation; Relocation with look ahead addressing means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/123—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/128—Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
-
- 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/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4418—Suspend and resume; Hibernate and awake
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/01—Probabilistic graphical models, e.g. probabilistic networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W52/00—Power management, e.g. TPC [Transmission Power Control], power saving or power classes
- H04W52/02—Power saving arrangements
- H04W52/0209—Power saving arrangements in terminal devices
- H04W52/0261—Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level
- H04W52/0274—Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level by switching on or off the equipment or parts thereof
- H04W52/028—Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level by switching on or off the equipment or parts thereof switching on or off only a part of the equipment circuit blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/602—Details relating to cache prefetching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/62—Details of cache specific to multiprocessor cache arrangements
- G06F2212/621—Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/654—Look-ahead translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Medical Informatics (AREA)
- Computational Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Algebra (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computer Hardware Design (AREA)
- Power Sources (AREA)
Abstract
本公开内容涉及在空闲时段期间,使WiFi片上系统(SOC)的功耗最小化。公开的架构包括用于能够独立加电/断电的WiFi SoC的嵌入式处理器的存储体以及将虚拟地址转换成物理地址并生成异常以处理对没有对应物理地址的虚拟地址的存取的存储器管理单元(MMU)。该架构能够实施需求分页方案,由此因存取不在嵌入式存储器之内的代码/数据造成的MMU错误导致处理器从片外辅助存储器抓取代码/数据。为了使页面错误最小化,该架构在嵌入式处理器的存储器之内存储以小周期反复存取或不容忍存取代码/数据的延迟的WiFi客户端代码/数据。
Description
相关申请的交叉引用
本申请要求享有2016年11月28日提交的,题为“WIFI MEMORY POWERMINIMIZATION”的美国临时专利申请No.62/427,107和2017年10月31日提交的,题为“WIFIMEMORY POWER MINIMIZATION”的美国实用专利申请No.15/799,601的优先权,据此以引用方式将上述申请的内容并入本文。
技术领域
概括地说,下文涉及无线通信,更具体而言,涉及用于使WiFi客户端的存储器功率需求最小化的系统和方法。
背景技术
无线通信系统得到广泛部署,以提供各种类型的通信内容,例如语音、视频、分组数据、消息传送、广播等。Wi-Fi或WiFi(例如,IEEE 802.11)是允许电子设备连接到无线局域网(WLAN)的技术。WiFi网络可以包括接入点(AP),该接入点可以与一个或多个其它计算设备通信。AP可以耦合到网络,例如因特网,并可以使连接的设备能够经由网络进行通信或与其它耦合到AP的设备进行通信。
移动电子设备(例如,蜂窝电话、平板计算机、膝上型计算机等)在普及性和使用方面已经取得发展。为了跟上消费需求增加的步伐,移动设备已经变得特征更加丰富,并且现在通常包括多个片上系统(SOC),这些SOC包括WiFi SoC。在一些情况下,移动设备可能具有有限量的电池电量。于是,WLAN中未主动经由网络发射/接收信息的移动设备的无线客户端可以进入休眠(或空闲状态)以节省功率,其中无线客户端在休眠状态中不主动发送/接收信息。这些无线客户端可以进一步周期性地唤醒一短时间段,以检查消息,例如,AP发送的信标帧,以通告存在WLAN。
发明内容
对于移动WiFi产品而言,突发活动业务之间的空闲时段期间的功耗是主要的竞争性性能标杆。在待机时,WiFi客户端能够休眠简短的间隔,但必须要周期性唤醒以侦听WiFi客户端所关联的WiFi接入点发送的信标。WiFi客户端能够通过智能算法来最小化侦听信标所需要的功率,该智能算法实现尽可能晚的开始侦听信标、尽可能早的终止侦听、使用低功率RF硬件进行侦听、在硬件之内对所接收的信标进行基本处理以及仅侦听每个第N个信标,而非侦听每个信标。这些信标接收功率优化,统称为“DTIM模式”,允许WiFi客户端的嵌入式处理器休眠延长的时间,并仅在看到特别感兴趣的信标时才唤醒。
有了这些DTIM模式功率优化,对WiFi客户端的待机功耗的最大剩余贡献者中的一个贡献者就是维持WiFi客户端的嵌入式处理器的存储器内容所需的功率。在系统仅仅侦听每个第N个信标时,这个问题变得尤其严重。例如,在“DTIM10”操作模式中,其中,WiFi客户端唤醒以侦听接入点发送的每个第10个信标,WiFi客户端的嵌入式处理器使用的存储器的泄露电流可能很容易贡献WiFi系统功耗的50%以上。对于具有代码从其中运行的片上SRAM存储器的离散/SoC的WiFi解决方案,这是一个特别的问题。进一步优化WiFi客户端待机功耗需要使维持客户端的嵌入式处理器的存储器的内容所需的功率最小化。
一种解决方案是将待机模式期间WiFi嵌入式处理器使用的代码烧入只读(ROM)存储器中,从成本和功率的角度讲,这中解决方案相对于RAM存储器是更廉价的。部分由于ROM存储器的性质,这种解决方案可能是不充分的。例如,ROM内容是不可改变的;从而在WiFi嵌入式处理器的待机模式代码之内修改错误或添加新特征变得极其复杂。ROM仅适合于永不改变的代码或数据。从本质上讲,WiFi嵌入式处理器使用的绝大部分数据会改变;WiFi嵌入式处理器的数据中的大部分数据需要存储在读/写存储器中,以允许WiFi嵌入式处理器修改其自己的数据。随着产品的ROM代码由于错误或不足的特征而变得过时,能够执行ROM写入,其中新制造的设备被赋予更新的ROM内容。不过,这给商业支持具有过时的ROM内容的旧设备和具有更新的ROM内容的新设备两个造成了巨大困难。
另一解决方案是经由诸如PCIe的连接桥接直接存取辅助存储器之内的代码或数据,辅助存储器通常是作为更大平台一部分的双倍数据速率(DDR)存储体。这种解决方案也有一些缺点。作为一个示例,存在安全风险:某个其它处理器或外围设备将能够通过修改存储于辅助存储器中的WiFi嵌入式处理器的代码而破坏WiFi嵌入式处理器。为了避免这种风险,辅助存储器必须不能被其它处理器或外围设备存取。不过,在很多WiFi系统中,提供受保护的辅助存储器是不可行的。作为另一示例,对于存取辅助存储器会涉及唤醒休眠主/应用处理器的系统而言,在辅助存储器中存储WiFi嵌入式处理器的代码或数据的解决方案不能在主/应用处理器休眠时的操作模式期间使用。通常地,存取辅助存储器,例如DDR存储体需要更大的平台以退出最低功率状态。不过,那些待机时段精确地是WiFi嵌入式处理器会需要依赖于辅助存储器的时候,以使WiFi嵌入式处理器自己的存储器消耗的功率最小化。
在一些实施例中,由公开的用于使诸如WiFi片上系统(SOC)的WiFi客户端在空闲时段期间功耗最小化的系统和技术解决除其它问题之外的上述问题。公开的技术提供了一种全新的用于节省存储器功率的架构,这种架构能够减少50%的泄露,还能够动态调整。该架构能够包括用于能够独立加电/断电的WiFi SoC的嵌入式处理器的存储体。该架构能够包括存储器管理单元(MMU)以将虚拟地址转换成物理地址,并生成例外以处理对没有对应物理地址的虚拟地址的存取。该架构能够实施需求分页方案,由此存取不在嵌入式存储器之内的代码/数据造成的MMU错误导致处理器从芯片外辅助存储器抓取代码/数据。为了使页面错误最小化,该架构能够识别以短周期(例如,相继存取之间流逝的少量时间)反复存取的WiFi客户端代码/数据或者识别存在不能容忍存取代码/数据的延迟,并在嵌入式处理器的存储器之内存储这样的代码/数据的情况。能够静态或动态地做出这种反复存取代码/数据的确定。该架构还能够从嵌入式处理器的存储器去除未存取的页面并使空置存储体断电。该架构还允许WiFi SoC有几条路线存取平台DDR,从而避免该过程中涉及应用处理器的此前系统中看到的显著功率影响。
因此,一个方面涉及一种系统,包括:主机系统,其包括主机存储器和被配置为在活动模式和待机模式中操作的主机处理器,相比于在活动模式中,该主机处理器在操作于待机模式中时消耗较低功率;WiFi系统,其包括存储用于控制WiFi系统的操作的指令的计算机可读存储器,被配置为用于存储WiFi系统操作期间可使用的代码和数据中的一者或两者的嵌入式存储器,以及嵌入式处理器,其由计算机可读存储器中的指令配置以执行以下操作:在主机处理器正操作于待机模式中时,识别响应于对不在嵌入式存储器中的页面的请求的页面错误,使用机器学习转变概率模型,识别预测在页面之后门限量的时间之内被请求的预测的页面,作为单个批次从主机存储器抓取页面并预抓取所预测的页面,以及在嵌入式存储器中存储该页面和该预测的页面;以及被配置为在主机存储器和嵌入式存储器之间至少传输该页面和该预测的页面的通信总线。
另一方面涉及一种方法,包括在一个或多个计算设备的控制下进行以下操作:在片上系统的嵌入式处理器和主机系统之间建立通信,片上系统和主机系统在设备之内协作操作,片上系统包括嵌入式处理器和包括可分页存储器的嵌入式存储器,主机系统包括主机存储器和被配置为至少在待机模式中操作的主机处理器;经由片上系统识别主机处理器正操作于待机模式中;以及响应于识别主机处理器正操作于待机模式中,识别对不在嵌入式存储器中的页面的请求,使用机器学习转变概率模型识别预测在该页面之后门限量的时间之内被请求的预测的页面,从主机存储器抓取该页面并一起预抓取所预测的页面,并在嵌入式存储器中存储该页面和所预测的页面。
另一方面涉及一种片上系统,包括:存储用于控制系统的操作的指令的计算机可读存储器;被配置为用于存储在系统操作期间可使用的代码和数据中的一者或两者的嵌入式存储器,嵌入式存储器包括驻留存储器部分和可分页存储器部分;以及嵌入式处理器,其由计算机可读存储器中的指令配置,以执行以下操作:经由通信总线,确定片上系统外部的主机系统的主机处理器是否正操作于待机模式或者活动模式中,以及响应于确定主机处理器正操作于待机模式中,在请求至少一个预测的页面以由在片上系统上运行的程序使用之前,从主机系统的主机存储器向可分页存储器部分中预抓取至少一个预测的页面。
另一方面涉及一种设备,包括:主机系统,其包括被配置为在休眠状态中操作的主机处理器和主机存储器;片上系统,其包括存储用于控制片上系统操作的指令的计算机可读存储器,被配置为用于存储片上系统操作期间可使用的页面的嵌入式存储器,以及嵌入式处理器,其由计算机可读存储器中的指令配置,以执行以下操作:响应于确定主机处理器正操作于休眠状态,在请求预测的页面以由在片上系统上运行的程序使用之前,从主机存储器向嵌入式存储器中预抓取预测的页面;以及被配置为至少在片上系统的嵌入式存储器和主机存储器之间提供数据通信的通信信道。
附图说明
图1示出了可以采用本公开内容的方面的示例性无线通信系统。
图2示出了本文所述的存储器功率最小化架构的高级示意方块图。
图3示出了用于管理不同功率模式下WiFi嵌入式处理器存储器之内页面的示例性技术。
图4示出了页面错误状况期间的示例性存储器功率成本。
图5是示出根据本文公开的系统和方法的网络数据流的示例的图。
图6A和6B示出了根据本公开内容处于待机和活动模式中的存储器各部分的示例性使用。
图7示出了如本文所述的用于预测的页面抓取的机器学习系统的高级示意方块图。
图8示出了根据本公开内容的用于向待机模式中的存储器中预抓取页面的示例性过程的流程图。
图9示出了根据本公开内容的修改的最近最少使用(LRU)方案中的示例性步骤的图示。
具体实施方式
本公开内容的各方面涉及用于减少WiFi系统或其它片上系统(SOC)中存储器消耗的功率量的系统和技术。例如,WiFi系统能够是与包括主机处理器和主机存储器的主机设备系统耦合的SoC。在设备未经由无线网络主动发送数据时,主机系统能够进入休眠模式以节省功率。该WiFi系统还能够例如通过延长尝试检测来自其它设备的无线信号之间的时间而进入低功率模式。在这样的低功率模式中,维持嵌入在WiFi系统中的存储体可能是WiFi系统的显著功耗中的一种功耗。因此,公开的系统和技术能够管理嵌入式WiFi存储器,从而在未使用时清空部分并使部分断电,由此进一步减小低功率模式中的功耗。存储器能够包括两段:连续存储代码和/或数据,从而连续加电的“驻留”存储器,以及根据需要存储代码和/或数据的页面的“可分页”存储器。使嵌入式WiFi存储器的部分断电能够涉及识别应当保存在连续加电的驻留存储器中的代码和数据以及识别能够暂时存储在可分页存储器的一部分中,然后被清空以使该部分断电的其它代码和数据。WiFi系统能够存取辅助存储器(主系统的存储器)中的数据或代码,例如,以抓取这一数据或代码,以暂时存储于可分页存储器中。公开的系统和技术能够存取辅助存储器而不唤醒主机处理器,由此避免为主机处理器加电所需的功率尖峰。
公开的系统和技术能够实施需求分页的修改版本(本文称为“功率优化需求分页”)以实现一些公开的功率减小。分页是一种存储器管理方案,系统通过该方案存储并从辅助存储器获取数据,以在主存储器,例如称为页面的块中使用,由此使用辅助存储器以允许程序超过可用物理存储器的大小。需求分页是分页的形式,通过这种分页,系统仅在如果尝试存取数据的页面且该页面并非已经在存储器中(称为“页面错误”)的情况下,才向物理存储器中复制数据的页面。处理器能够在物理存储器中没有数据的任何一页的情况下开始执行,并可能会发生很多页面错误,直到处理器的做工页面集合的大部分页面集合位于物理存储器中为止。通常地,实施需求分页以相对于固定量的存储器来管理数据,以便减小存储成本。能够使用如本文所述的功率优化需求分页以从可分页存储器的特定部分或存储体清空未使用的代码和数据,并接下来使那些部分或存储体断电,直到再次需要它们为止。例如,功率优化需求分页技术能够识别可分页存储器的WiFi系统低功率模式中当前未使用的一个或多个存储体中的页面,从可分页存储器驱逐或清空那些页面,并使一个或多个存储体断电。在一些实施例中,将不常使用的页面存储到例如辅助存储器,而不唤醒与辅助存储器一起布置的主机处理器。功率优化需求分页能够在需要暂时存储代码或数据时,加电已经断电的存储体。
用于使WiFi客户端的嵌入式处理器的存储器在待机模式期间消耗的功率最小化的所公开的系统和技术能够包括以下特征。
各方面能够针对WiFi客户端的能够独立加电/断电的嵌入式处理器提供存储体。例如,能够在未使用时对可分页存储器的部分或存储体断电,并在需要时加电。
各方面能够包括存储器管理单元(MMU),其能够将虚拟地址转换成物理地址,这样能够生成异常以处理对当前没有对应物理地址的虚拟地址的存取。例如,MMU能够响应于尝试存取WiFi系统的嵌入式存储器之内当前不存在的代码或数据而生成错误(本文也称为页面错误)。
各方面能够实施功率优化需求分页方案以根据需要关闭未用的可分页存储器并加电可分页存储器的部分。例如,页面错误可能导致嵌入式处理器的操作系统从芯片外的辅助存储器(例如,主机设备的存储器)抓取所存取的代码或数据页面,如果暂时存储页面需要,则为可分页存储器的一部分加电,并在可分页存储器的存储体中存储页面。一旦WiFi系统不再使用该页面,功率优化需求分页方案就能够从可分页存储体驱逐该页面,并且如果其未存储任何其它使用中的页面,则使该存储体断电。
各方面能够针对每页面实施安全签名,以确认在该页面处于辅助存储器中时没有修改页面。在一些实施例中,安全签名能够由专用硬件(HW)引擎(整个页面上)或在页面中抓取的直接存储器存取(DMA)引擎的部分(在向内流传输时)验证。在一些实施例中,安全签名能够由运行于嵌入式处理器上的软件(SW)代码来验证。各方面能够通过DMA HW、嵌入式WiFi处理器、辅助嵌入式处理器或HW安全引擎中的一者或多者联机验证每个抓取到的页面的安全签名。
各方面能够识别需要持久驻留在嵌入式处理器的驻留存储器之内的WiFi客户端代码和数据。例如,由于不能容忍存取代码或数据的延迟,能够识别这种客户端代码/数据。作为另一示例,这能够包括以足够小的周期反复存取的WiFi客户端代码和数据,以使通过在嵌入式处理器的存储器之内保持代码或数据持久存在所消耗的功率,由从辅助存储器向嵌入式处理器的存储器中反复抓取代码或数据的页面所消耗的功率超过。各方面还能够在实现功率节省的同时,识别能够从可分页存储器抓取、存储到可分页存储器中和从可分页存储器清除的代码和数据。在一些实施例中,能够例如基于对WiFi低功率模式期间代码和数据使用情况的研究,人工执行这种识别。一些实施例能够包括概要分析引擎,其能够记录代码和数据的使用情况并动态确定相对于处在可分页存储器中,什么代码和数据应当处在驻留存储器中。在又另一实施例中,能够动态学习对频繁存取的代码子集的确定并然后始终保持在嵌入式处理器的存储器中且不会交换到辅助存储器中。因此,各实施例能够识别页面错误和错误页面传输对于给定系统的功率成本,并能够调节WiFi系统驻留存储器之内持久保存的驻留图像的占用大小。能够调谐这种调节以便使页面错误之间的时间分开,以便将这一时间保持大于收回页面错误/转变所消耗的能量所需的最小时间量。
各方面能够在活动模式和待机模式之间进行区分,以管理可分页存储器。例如,在活动模式中,WiFi系统能够保持在活动模式期间嵌入式处理器的存储器之内存在的当前未使用的页面,以达到嵌入式处理器的存储器具有用于暂时未使用页面的空间的程度。在待机模式期间,WiFi系统能够跟踪哪些页面未受存取,从嵌入式可分页存储器去除这些未存取的页面,并使这样被清空的存储体断电。例如,图3示出了在活动(“FullMem”)状态和待机(“LowPowerMem”)状态中如何以不同方式管理WiFi嵌入式处理器的存储器之内的页面。各方面能够部分基于来自主机/应用处理器的无线唤醒(WoW)通知,来确定是操作于活动模式还是待机模式,该WoW通知嵌入式处理器主机处理器何时开始并停止省电休眠。如本文使用的,WoW是指主机处理器休眠延长的时段而WiFi系统自主处理任何后台业务的模式。例如,主机设备的功耗可能很大,因此在主机设备处理器活动时,公开的WiFi系统可能不执行公开的省电技术。一些实施例能够部分基于存在或不存在通往对等WiFi客户端的直接连接确定操作于活动模式还是待机模式。
各方面能够选择非活动时间极限,使得基于从辅助存储器抓取页面的成本,从嵌入式处理器的存储器驱逐未存取页面。这样一来,在从辅助存储器抓取页面成本低的系统中,能够从嵌入式处理器的存储器强力驱逐未使用页面。在从辅助存储器抓取页面成本高的系统中,能够在嵌入式处理器的存储器之内将未使用页面在其上次使用之后维持较长时段。存储器低功率算法的目标能够是确保页面抓取尖峰中消耗的能量至少通过在关闭存储体配置(其中使一个或多个可分页存储体断电)中保持足够长时间来回收,使得功率节省匹配所消耗的页面抓取能量。将要认识到,将优选在关闭存储体配置中保持长得多的时间,从而看到更大的节省。
各方面能够经由系统之内的机制提供替代或额外的功率节省,该机制使得嵌入式处理器能够从(主机系统之内的)辅助存储器抓取页面而不需要来自当前休眠的主机处理器的干预。考虑示例性系统,其中,WiFi系统和主机系统经由外围组件交换快速(PCIe)总线耦合,在一些实施例中,这能够通过提供除主机处理器之外的总线主控器来完成,该总线主控器例如是主机系统之内的,与主机处理器的消耗相比,消耗更低功率的另一处理器。总线主控器通常是单个实体。在一个优选实施例中,这项技术建议主机平台中的多个总线主控器,这些总线主控器利用它们之间关于所有规则的适当握手信号来非同时地操作于总线上。在另一实施例中,第二总线主控器能够是较低功率的处理器;在又另一实施例中,能够与不需要处理器或软件支持的硬件状态机一起整体实现第二总线主控器。在一些实施例中,这能够通过防止PCIe总线进入低功率状态来完成,该低功率状态将要求总线主控器的干预来恢复主线活动。
能够在多个不同功率状态中操作PCIe链路的一个或两个方向。功率状态L0为满操作状态,功率状态L2为低功率休眠状态,L3状态为链路关闭状态,以及电气空闲或待机(L1、L1ss或L0s)状态为未主动传输数据但以比L2状态少的延时进入L0状态的中间状态。在L0状态中,该链路在其准备模式中完全活动,并消耗最大的活动功率。在没有链路活动的逻辑空闲短间隔期间,该链路可以以极低的退出延时(几百纳秒)转变到L0s状态以进行小的功率减小。在空闲/待机(L1、L1ss或L0s)状态中,参考时钟组件完全活动,除非由时钟功率管理(使用CLKREQ#)许可。根据L1状态中任选活动设备的数量,能够限制空闲/待机模式中的功率节省。从空闲/待机状态的退出延时在特定条件下可以是微秒量级的。在L2休眠状态中,将串行总线时钟减慢甚至停止,并且关闭主电源,从而提供最高的空闲状态功率节省。不过,在特定条件下,退出延时可能非常长(在毫秒的量级)。
为了进入L2状态,SOC能够首先从主机系统请求许可以进入更深的功率节省状态。在确认之后,SOC和主机系统都将关闭其发射机并进入电气空闲。从L2返回可能需要SOC和主机系统两者都经历链路恢复过程。通常地,这样的通信需要PCIe链路与急需功率的主机处理器通信,这要求这个处理器如果处于休眠状态,则要唤醒该处理器。
各方面能够针对到DDR(双倍数据速率-本文用于标识可以通过PCIe总线存取WiFiSOC的芯片外存储器)的端点存取提供从L2(低功率休眠状态)到L0(满操作状态)的PCIe链路状态转变的替代路线,而不需要主机处理器干预以及开启(加电)系统组织。该替代路线能够提供自动收缩回平台保持状态以及具有可配置HW超时的PCIe-L2。一些实施例能够提供替代路线,由此将平台暂停连接到PCIe L1ss状态(不传输数据但能够相对较快恢复正常操作的PCIe链路状态)而不是L2状态。
一些实施例能够提供替代路线,由此能够切换L1ss时钟请求信号(CLKREQ)以直接向平台功率监测电路抛掷中断,从而使平台从保持唤醒并针对要由总线端点存取的资源使时钟和组织稳定。在这样的实施例中,PCIe通信总线对主机平台的功率管理器具有直接决定权,使得PCIe总线能够进入主机系统存储器中而不唤醒主机处理器。
一些实施例能够提供替代路线,由此能够将L1ss CLKEREQ作为中断路由到主机系统的较低功率处理器(而不是主机系统的主应用处理器)。这一较低功率的处理器能够运行代理PCIe根复合驱动器以使PCIe进入L0状态并使组织时钟稳定化。此外,较低功率处理器中的最小PCIe根复合驱动器将使系统返回保持状态并使PCIe返回L1ss。如果在辅助主控器处于拥有总线的过程中的同时,存在对主主控器的唤醒,这一辅助主控器(较低功率处理器)还将使得PCIe桥接的所有权切换到主主控器(主应用处理器)。
各方面能够利用嵌入式WiFi处理器自身以在其自己的存储器和辅助存储器之间传输代码或数据的页面,这依赖于一个或多个HW DMA引擎(也称为“复制引擎”)或依赖于另一处理器内核以进行传输。
一些实施例能够使用均匀的存储体大小,其中能够选择存储体大小以优化存储体数量最小化和存储体所需功率电路最小化之间的折中关系,相对于通过允许对多大存储器进行加电进行粒度控制,来最小化存储器。一些实施例能够使用不均匀的存储体大小,包括利用小存储体保存嵌入式处理器的存储器的不同逻辑内容的初始和/或最后部分,由此因为填充到对准约束,而使未使用的存储器浪费的功率最小化。
一些实施例能够使用均匀具体尺寸的页面,其中选择页面尺寸以在仅抓取嵌入式处理器实际需要的代码或数据与最小化在辅助存储器和嵌入式处理器的存储器之间传输页面所花费功率量之间实现最佳折中。一些实施例能够使用不均匀的页面尺寸。
各方面能够仅在存取代码或数据页面时抓取它们,或者可以预抓取预期在不久的将来要存取的代码或数据页面。预抓取机制的一个实施例包括静态识别在不久的将来可能要存取哪些页面。预抓取机制的另一实施例利用动态学习推断在不久的将来可能要存取哪些页面。预抓取机制的第三实施例利用了静态识别在不久的将来可能要存取的页面以及增强或取代动态识别在不久的将来可能要存取哪些页面的混合组合。
在自从上次使用每个页面的时间超过非活动时间极限时,各方面能够单独地驱逐非活动页面,或者简单地将这样的页面标记为可驱逐,并等待直到同一存储体之内的所有其它页面都变得可驱逐为止,然后一起驱逐所有存储体的页面。
各方面能够使用不同的方法选择使用WiFi嵌入式处理器的存储器之内的哪些页面帧以存储新抓取的页面,包括选择已经加电的存储体之内未占用的页面帧、选择已经加电的存储体之内的非活动页面以及从当前关闭的存储体选择页面帧。在选择非活动页面以利用新页面替换时,不同的方法能够识别哪个非活动页面是最不适当的,包括考虑自从该页面上次活动的时间,该页面是否包含代码或数据,并且如果该页面包含数据,则自从向WiFi嵌入式处理器的存储器中抓取该页面,是否修改过该数据。
各方面能够针对不同类型的页面使用不同的非活动超时。在一个实施例中,这将包括针对脏数据页面相对于清洁数据页面使用不同的非活动时间极限。
如本文所使用的,片上系统(SOC)是指向单个衬底中集成或嵌入系统的组件的集成电路(也称为“IC”)。SOC的衬底是指材料(例如,硅、二氧化硅、氧化铝、蓝宝石、锗、砷化镓(GaAs)、硅和锗的合金或磷化铟(InP))的薄的、平面晶片,晶片用作基础,在其上沉积SOC的电子组件(例如,晶体管、二极管、电子电路)。该衬底能够是半导体材料。于是,SOC包括提供有电子组件的单个衬底,电子组件形成如下文更详细所述的SOC的存储器和处理组件。这样一来,将SOC的存储器和处理组件称为“嵌入”SOC芯片中。
尽管主要在操作于低功率或休眠模式中的WiFi系统的语境之内进行公开,但应当理解,能够实施公开的功率优化需求分页以在诸如其它SOC系统的其它种类的电子系统中以及在操作于正常模式、休眠模式或另一模式的系统中实现功率节省。
示例性网络环境概述
图1示出了可以采用本公开内容的各方面的示例性无线通信系统100。该无线通信系统100可以遵循诸如802.11ah标准的无线标准进行操作。
在一些实施方式中,WLAN包括各种设备,该设备是存取无线网络的组件。例如,可以有两种类型的设备:与客户端(也称为站,或“STA”)106通信的接入点(“AP”)104。AP 104和STA 106可以彼此之间发送/接收信息。此外,未在无线网络中主动发送/接收信息的设备可以进入休眠状态以节省功率,其中设备在休眠状态中不主动发送/接收信息。这些设备可以进一步利用公开的系统和技术使休眠状态中的存储器功耗最小化。
AP可以包括,实现为或称为节点B、无线网络控制器(“RNC”)、演进型节点B、基站控制器(“BSC”)、基站收发机(“BTS”)、基站(“BS”)、收发机功能(“TF”)、无线路由器、无线收发机或某种其它术语。AP 104可以充当基站并在基本服务区(BSA)102中提供无线通信覆盖。AP 104连同与AP 104相关联的且使用AP 104进行通信的STA 106一起可以称为基本服务集(BSS)。应当指出,无线通信系统100可以没有中央AP 104,而是可以用作STA 106之间的对等网络。因此,本文描述的AP 104的功能可以替代地由STA 106中的一个或多个STA执行。
STA 106可以包括,例如膝上型计算机106c、电视106b、无线设备106d和移动通信设备106a。本文公开的系统和方法可以应用于多种STA,包括录音机、视频摄像机、音频播放器(例如,运动图片专家组-1(MPEG-1)或MPEG-2音频层3(MP3)播放器)、视频播放器、音频录制机、台式计算机、膝上型计算机、个人数字助理(PDA)、游戏系统等。一种电子设备是可以与另一设备通信的通信设备。通信设备的示例包括电话、膝上型计算机、台式计算机、蜂窝电话、智能电话、无线或有线调制解调器、电子阅读器、平板设备、游戏系统、蜂窝电话基站或节点、接入点、无线网关和无线路由器等。在一些配置中,本文公开的系统和方法可以应用于使用卫星与另一设备通信的通信设备。
STA也可以包括,实现为或称为接入终端(“AT”)、用户站、用户单元、移动站、远程站、远程终端、用户终端、用户代理、用户装置、用户设备或某种其它术语。在一些实施方式中,接入终端可以包括蜂窝电话、无绳电话、会话发起协议(“SIP”)电话、无线本地环路(“WLL”)站、个人数字助理(“PDA”)、具有无线连接能力的手持设备或连接到无线调制解调器的某种其它适当的处理设备。因此,本文教导的一个或多个方面可以并入到电话(例如,蜂窝电话或智能电话)、计算机(例如,膝上型计算机)、便携式通信设备、耳机、便携式计算设备(例如,个人数据助理)、娱乐设备(例如,音乐或视频设备或卫星无线电装置)、游戏设备或系统、全球定位系统设备或被配置为经由无线介质通信的任何其它适当设备中。
可以使用各种过程和方法在无线通信系统100中在AP 104和STA 106之间进行传输。例如,可以根据OFDM/OFDMA技术在AP 104和STA 106之间发送和接收信号。如果是这种情况,无线通信系统100可以称为OFDM/OFDMA系统。替代地,可以根据CDMA技术在AP 104和STA 106之间发送和接收信号。如果是这种情况,无线通信系统100可以称为CDMA系统。
促成从AP 104向STA 106的一个或多个STA进行传输的通信链路可以称为下行链路(DL)108,并且促成从STA 106的一个或多个STA向AP 104进行传输的通信链路可以称为上行链路(UL)110。替代地,下行链路108可以称为正向链路或正向信道,并且上行链路110可以称为反向链路或反向信道。
AP 104可以经由诸如下行链路108的通信链路向系统100的其它节点STA 106发送信标信号(或简称为“信标”),该信标信号可以帮助其它节点STA 106与AP 104同步其定时,或者该信标信号可以提供其它信息或功能。可以周期性发送这样的信标。在一个方面中,可以将依次传输之间的时段称为超帧。信标的传输可以分成多个组或间隔。在一个方面中,信标可以包括但不限于,诸如以下内容的信息:用于设置公共时钟的时间戳信息、对等网络标识符、设备标识符、能力信息、超帧持续时间、传输方向信息、接收方向信息、邻居列表和/或扩展邻居列表,在下文中进一步详细描述了上述信息中的一些信息。于是,信标可以包括几个设备之间公共(例如,共享)的信息以及特定于给定设备的信息。
在一些方面中,可能要求STA 106与AP 104相关联,以便向AP 104发送通信和/或从AP 104接收通信。在一个方面中,用于关联的信息包括在由AP 104进行广播的信标中。为了接收这样的信标,STA 106例如可以在覆盖区域上进行广泛的覆盖搜索。搜索也可以由STA 106通过以例如灯塔方式扫掠覆盖区域来执行。在接收到用于关联的信息之后,STA106可以向AP 104发送参考信号,例如关联询问或请求。在一些方面中,AP 104可以使用例如回程服务以与更大的网络进行通信,该更大的网络例如是因特网或公共交换电话网(PSTN)。
本文所述的WLAN中的设备可以根据某些工业标准操作,例如国际电信联盟(ITU)标准和/或电气和电子工程师协会(IEEE)标准(例如,Wi-Fi标准,如802.11a、802.11b、802.11g、802.11n和/或802.11ac)。通信设备可以遵循的标准的其它示例包括IEEE 802.16(例如,微波接入全球互通或“WiMAX”)、第三代合作伙伴计划(3GPP)、3GPP长期演进(LTE)、全球移动通信系统(GSM)和其它标准(其中,通信设备例如可以称为例如用户设备(UE)、节点B、演进型节点B(eNB)、移动设备、移动站、用户站、远程站、接入点、站、接入终端、移动终端、终端、用户终端、用户单元等)。尽管可以结合一种或多种标准描述本文公开的系统和方法中的一些系统和方法,但这不应当限制本公开内容的范围,因为该系统和方法可以适用于很多系统和/或标准。本文描述的各方面可以应用于任意通信标准,例如无线协议。
在一些方面中,可以根据802.11ah协议,使用正交频分复用(OFDM)、直接序列扩展频谱(DSSS)通信、OFDM和DSSS通信的组合或其它方案,发送亚吉赫兹频带中的无线信号。802.11ah协议的实施方式可以用于传感器、计量和智能网格网络。有利地,实施802.11ah协议的某些设备的各方面可以比实施其它无线协议的设备消耗较少功率,和/或可以用于跨越相对较长范围,例如大约一千米或更长距离,来发送无线信号。
示例性存储器功率减小系统和技术的概述
图2示出了如本文所述的存储器功率最小化架构200的高级示意方块图。图2示出了经由PCIe链路235附接到主机设备平台205的WiFi SOC 240。尽管在WiFi SOC 240的示例性语境中描述,但能够在其它类型的片上系统中实施参照WiFi SOC 240描述的硬件、软件和固件。
能够将存储器功率最小化架构200整合到较大的计算系统、设备或电器中。例如,能够将存储器功率最小化架构200整合到智能电话、平板计算机或膝上型计算机、诸如手表、眼镜或健康跟踪饰品的智能附件、或诸如家用电器的物联网(“IoT”)设备中。有利地,将公开的功率优化的WiFi SOC 240结合到IoT电器中能够使这样的电器能够符合能源效率的国际标准。
WiFi SOC 240能够是集成低功率无线芯片,包括片上(本文也称为嵌入式)WLAN硬件260、静态随机存取存储器(SRAM)255和中央处理单元(CPU)245。WiFi SOC 240能够如本文所述的被配置为操作于正常模式和低功率模式中。WLAN硬件260能够包括用于实现无线通信的硬件,在一些实施例中,该硬件能够包括基带和无线收发机,例如802.11b无线电单元。除其它处理器之外,CPU 245能够包括一个或多个处理器,由WiFi固件(FW)存储器250中存储的指令来配置该处理器以实施本文所述的WiFi系统功率节省技术。CPU 245能够与应用处理器210一起操作或自主地从应用处理器210中进行操作。WiFi FW存储器250能够包括例如编程为控制WiFi SOC 240的操作的操作系统。在一些示例中,WiFi SOC 240的一些实施例能够包括额外的片上闪存存储器和/或应用处理器。
SRAM 255能够包括可分页存储器255A和驻留存储器255B。在一些实施方式中,根据一些实施例,SRAM 255能够包括多个相同或不同大小的不同存储体,例如,各为256kB的15个存储体。在一个示例中,驻留存储器255B能够包括4-5个存储体(~1-1.5MB的存储器),而可分页存储器255能够包括能够按需断电的5-6个存储体(~1.5-2MB的存储器)。
PCIe链路235能够是高速串行计算机扩展总线。在其它实施例中,能够使用其它适当的通信总线和数据传输连接。通常地,在PCIe链路进入低功率模式中时,需要来自应用处理器210的软件干预以在WiFi SOC 240和主机设备205之间重新建立链路。这可能会由于唤醒主机处理器而导致功耗的大尖峰,如图4所示。因此,WiFi SOC 240的一些方面能够被配置为使低功率模式期间与使用PCIe链路235相关联的功率尖峰最小化。
主机设备205能够包括应用处理器210,该应用处理器210能够是主机设备205的主处理器。在一些示例中,应用处理器210能够被配置为通过存储器中存储的WLAN主机驱动器215指令与WiFi SOC 240以及WLAN的AP进行通信。主机设备205的一些实施例可以任选地包括在操作期间比应用处理器210消耗更低功率的额外处理器220。主机设备205还能够包括具有DDR存储器225和唤醒HW 230的存储器。DDR存储器225能够是实施双倍数据速率(DDR)的同步动态随机存取存储器(SDRAM)。SDRAM是在集成电路之内的独立电容器中存储每个比特的数据的随机存取存储器的类型。电容器能够充电或放电,采用这两种状态来代表比特的两个值,常规上称为0和1。由于即使“不导电”的晶体管也会有少量泄露,所以电容器将缓慢放电,并且存储的信息最终会消退,除非周期性地刷新电容器电荷。因为这种刷新要求,SDRAM是一种动态存储器,与静态随机存取存储器(SRAM)和其它静态类型的存储器相反。SDRAM是易失性存储器(与非易失性存储器相比),因为在去除电力时其会丢失其数据,尽管其确实呈现出有限的数据保持性。这样一来,尽管未示出,主机设备205能够包括非易失性存储器,在使架构200的设备断电时,能够(从DDR 225和/或SRAM 255)向该非易失性存储器传输某些页面。
唤醒HW 230能够是存储持久软件指令的只读存储器,并且能够被视为主机设备205的电源管理单元,该电源管理单元控制处理器220的操作模式(并因此控制向处理器220提供的功率量)。如本文所述,主机设备205能够被配置为操作于正常模式和低功率模式,在低功率模式中,至少应用处理器210进入休眠模式。
如上所述,能够识别需要频繁存取和/或无延迟存取以操作WiFi系统的特定数据和代码,并在驻留存储器255B中长期存储。驻留存储器255B即使在WiFi SOC 240的休眠模式期间也能够保持加电。驻留代码和数据的示例包括(1)本质上必须存在于芯片上的代码和数据,例如管理分页的代码和数据必须要驻留在芯片上;(2)不能容忍延时的代码和数据,尤其是不能承担页面错误(如果其是可分页的而非驻留的)的可能延时的代码和数据和/或不能承担PCIe读取(如果其是远程的而非驻留的)的可能延时的数据;以及(3)在WoW模式期间频繁使用的代码和数据。如上所述,在WoW模式中,主机设备能够进入低功率模式,并且WiFi SOC能够自主操作以管理WLAN的交互。
能够识别需要断续存取和/或具有可许可延迟存取的其它数据和代码(例如,页面),存储在DDR 225中,并进行抓取以暂时存储在可分页存储器255A的一部分中。根据该功率优化需求分页方案,暂时存储的持续时间能够是WiFi SoC使用该页面的时间,在此之后能够从可分页存储器225A驱逐该页面。如本文所述,能够使可分页存储器225A的未用部分断电,以实现功率节省。
整个RAM保持在WoW中(又名为“APPS暂停状态”)影响总体的DTIM KPI-尤其是更高阶的DTIM。如果不是更长的话,卸载的特征需要在WoW模式中保持相同时间。图2的架构能够在未用的“CODE”和“DATA”分段的WoW模式中选择RAM关闭。该系统可能发生页面错误,但目标是具有足够的“CODE”和“DATA”以维持低功率存储器模式,使得页面错误之间的间隔(TP_FAULT)比最小驻留(TRESIDENCY)时间多得多,以便至少与页面错误的成本打成平手。
能够经由代表WiFi SOC 240的SRAM 255和经由PCIe链路235的DDR 225之间的连接的直接资源投票(DRV)路线265完成页面抓取。如本文所述,能够使用各种技术进行页面抓取以使应用处理器210的功率使用最小化。
在第一实施例中,WiFi SOC 240能够被配置为经由外围组件互连快速直接资源投票(PCIe-DRV)来减小页面错误的成本,该PCIe-DRV是WiFi SOC能够通过其到达DDR 225而不唤醒应用处理器210的机制。PCIe-DRV能够充当主机设备205的对电源管理块的直接资源投票,以交换/DDR存取和自动返回平台的Vdd最小化/XO关闭。
对于如本文所述的SRAM减小有几项考虑。从APPS/HLOS(高级操作系统)的角度讲,没有像“DTIM模式”这样的固件模式。HLOS卸载预计不会唤醒的特征集合。于是,FW需要封装有至少一样量的代码(和关联数据)以维持DTIM模式和确保APPS/HLOS能够保持在暂停状态中的各种卸载的特征。保持例如1MB的最小量的DTIM模式中的SRAM,可能是实现DTIM模式中降低泄露的关键。能够选择1MB中的SW内容,以某种方式在以下期间最小化页面错误:(1)DTIM功率关键性能指示符(KPI)观察窗口(例如,通常为1-10分钟)和(2)使用度量的天数(例如,通常为4-8小时)。DoU是指正常最终用户跨越待机模式/dtim模式和活动模式对设备的使用情况,例如,页面浏览、视频回放等。任何页面错误都将导致平台唤醒以达到DDR——每次这样的唤醒花费的能量优选至少由观察窗口期间的等价节省补偿。没有等价节省的观察窗口之内的多个页面错误将不仅影响DTIM功率KPI而且还影响DoU度量。静默且轻量地处理页面错误可能对于总体DTIM和DoU功率度量是必要的。为此,针对PCIe链路复原涉及主机/APPS可能不是有效的解决方案,因为它可能导致大量的功率影响和功能故障,例如对于要已经卸载到WiFi SoC的特征而言的HLOS/APPS唤醒。
因此,公开的存储器功率节省技术包括SW和PCIE-DRV选项中的需求分页框架,以路由到DDR而不涉及主机。下文更详细描述了三种选项:(1)PCIe-DRV,(2)低功率处理器辅助,(3)HLOS/Apps SW辅助。
第一页面抓取选项,PCIE-DRV,能够允许WiFi SOC建立直接的硬件到硬件连接,以从辅助存储器向嵌入式存储器传输数据,而不唤醒或涉及任何休眠的主机处理器。例如,PCIe-DRV能够允许WiFi SOC在保持在DTIM模式中的SRAM的较低存储器占用(例如,1MB)之外进行操作,同时能够从HLOS角度满足协议/特征卸载的巨大阵列。在一个实施例中,举几个示例,卸载能够包括ARP、NS、IPV6/RA、NAT-KA、Google扫描、PNO扫描、NLO扫描、测距卸载、漫游卸载、GTK卸载、Android分组过滤器卸载、NAN卸载和802.11ax广播TWT卸载中的一种或多种。这些卸载的大部分能够在20-30s间隔中生效,它们中的一些卸载是HLOS配置的(1分钟到5分钟),而一些大于五分钟。PCIE/CLKREQ充当向资源功率管理器(RPM)中的直接投票,并且不涉及任何主机应用处理器。在唤醒之后,从DDR抓取页面,并且一旦完成,公开的WiFiSOC去除DRV。RPM转变到针对平台的XO-SD和Vdd最小化状态。这样能够提供最快、静默且最有功率效率的方式以实现DTIM和DoU KPI。
第二种页面抓取选项,即低功率处理器辅助的页面抓取,能够调用主机设备的辅助处理器(其消耗比主应用处理器少的功率)作为唤醒待机PCIe链路的代理。例如,能够将PCIE-CLKREQ中断路由到辅助处理器,导致唤醒辅助处理器并对PCIE进行加电,使其进入L0。这能够包括不涉及主要主主机处理器(APPS)。辅助处理器能够充当代理以关闭XO(即,XO-SD状态)并允许平台的VDD最小化。有利地,低功率处理器辅助的页面抓取需要最小的硬件改变,不过,这种方式可能携带非常高的SW操作量和/或风险。
第三页面抓取选项,如图4所示,是APPS/HLOS SW辅助的。使用APPS/HLOS SW辅助的页面抓取,能够将PCIE-WAKE#路由到APPS,并将PCIe链路复原到L0。发生HLOS恢复(高级操作系统退出待机模式并恢复操作)。重新进入暂停的HLOS能够得到控制,并且在一些示例中,它能够在最长大约2秒的时间内是活动的。在一些实施例中,由于HLOS暂停超时(在大部分HLOS中,>1s)导致高的TRESIDENCY,这可能是最不希望的选项。
存在不同可能程度的“频繁使用”,该不同可能程度的“频繁使用”能够用于将代码或数据分类为驻留。不同的实施方式能够使用不同的多少代码+数据应当驻留,相对于多少应当仅在需要时进行分页的定义。通常,驻留相对于可分页之间的折中取决于将存储器的页面(从PCIe总线和可能的主机处理器)暂时抓取到SRAM中的功率成本相对于在SRAM中(由于保持额外的SRAM期间的泄露电流)持久存储代码+数据的功率成本的比较。这一折中部分取决于该目标是否能够存取PCIe总线而不唤醒主机处理器。在“PCIe直接资源投票”(又名PCIe-DRV)系统中,这是可能的,而在非PCIe-DRV系统中,PCIe总线存取能够唤醒主机处理器。一些WiFi SOC产品将具有PCIe-DRV,而其它则没有。WiFi SOC 240PCIe-DRV系统能够通过使用低功率存储器模式(MinMem)的代码+数据的更排他性定义来节省功率。WiFi SOC240非PCIe-DRV系统将需要通过使用MinMem代码+数据的更包含性的定义来抵消页面错误的更大功率成本,以减小页面错误的频率。
在WiFi SOC 240的PCIe-DRV版本示例中,用于处理在大致每60秒之内发生的WLAN事件的代码和数据将是MinMem的驻留存储器的部分。在WiFi SOC 240的非PCIe-DRV版本的一个示例中,用于处理大致每4分钟之内发生的WLAN事件的代码和数据将是MinMem的驻留存储器的部分。
在一些实施例中,能够经由分析WoW模式期间的ETM追踪来完成识别以什么周期使用哪些WLAN代码+数据。指嵌入式追踪宏单元的ETM是经由专用追踪管脚的指令追踪。ETM逐条指令地记录程序的执行(“追踪”)。该追踪指示在系统中哪里已经存储代码,代码如何到达那里,以及代码已经在那里多久。除了其它事情之外,ETM可能对于代码覆盖分析和软件概况有用。在一些实施例中,WiFi SOC 240能够装备有例如结合机器学习技术的分析引擎,该分析引擎能够记录代码和数据的存取和使用,识别趋势,并基于识别的趋势智能地管理驻留和可分页存储器以优化功率节省。前一项技术依赖于静态配置,而后一项技术依赖于运行时间调整。
除了管理驻留和可分页存储器并关闭未用的可分页存储器之外,一些实施例能够通过将线程数量最小化,例如从13个减少到5个,实现额外的功率节省。这样的实施例能够包括用于有条件地编译要应对的代码或编译单个线程之内或独立线程中的更多信号集合的机制。潜在并行性的任何作为结果的减小都可能影响性能,不过,这样的影响与功率节省相比能够忽略不计。又另一实施例能够是动态添加和删除软件线程,以便释放与未计划在存储器低功率模式中触发的线程相关联的存储器。作为示例,本领域技术人员能够放弃仅在严重依赖平台/HLOS处于活动状态的性能模式中相关的线程。
一些实施例能够通过使每线程的存储器最小化来实现额外的功率节省。例如,能够针对该线程的要求来裁剪每个线程的堆栈大小而非针对所有线程使用相同的最坏情形堆栈大小,并能够针对该特定线程需要的大小类似地裁剪线程的消息FIFO,并因此在一些示例中能够将给定线程的存储器消耗从14KB显著减少。
一些实施例能够通过在LowPowerMem状态期间关闭未用的MAC实例来实现额外的功率节省。这样的技术能够用于采用双mac模拟模式的产品中,其中第二mac的数据结构与低功率存储器模式不相关。
一些实施例能够通过允许对LowPowerMem期间不需要的基础设施软件(例如,BSP)缓存进行页面调出而实现额外的功率节省。能够释放不适用于LowPowerMem状态的几十KB,例如主要在平台/HLOS处于活动状态时使用的RCINIT缓存和大的诊断缓存。
一些实施例能够通过分配驻留存储器中的少量本地帧rx缓存而实现额外的功率节省;将其余部分分配在“可收缩”可分页存储器中。例如,WiFi SOC 240能够保持一些在驻留存储器之内接收少量信标帧、管理帧和单个数据帧必需的rx缓存,并能够在可收缩存储器中分配本地rx缓存的其余部分,其中这将不会不利于MinMem大小。一些实施例能够通过即使扫描未在进行中,也将每次信标rx期间存取的WLAN扫描事件处理程序对象的部分移动到独立对象中,来实现额外的功率节省。这样能够通过不需要在MinMem中包括整个WLAN扫描事件处理程序分配,在一些示例中节省数个KB的存储器。
图3示出了用于管理不同功率模式中的WiFi嵌入式处理器存储器之内的页面的示例性周期300。例如,图3示出了在活动功率模式305(FullMem)状态中相对于在待机/低功率模式315(LowPowerMem)中,如何不同管理WiFi嵌入式处理器的存储器之内的页面,还示出了在从活动功率模式305进入低功率模式315时的准备模式310(LowPowerPrep)。
箭头342代表嵌入式处理器使存储器从活动功率模式305转变到准备模式310。例如,这能够响应于WOW_START命令,并可能涉及刷新L2高速缓存、从可分页存储器330驱逐页面以及配置诊断工具(例如,wdiag工具)以在SOC本地存储数据,例如在循环缓冲区中,而不是向主机处理器上载诊断信息。
箭头344代表嵌入式处理器使存储器从准备模式310转变到活动功率模式305。这能够响应于例如WOW_STOP命令,并可能涉及配置诊断工具(例如,wdiag工具)以向主机处理器上载诊断信息,而不是在本地存储诊断信息。
箭头346代表嵌入式处理器使存储器从准备模式310转变到低功率模式315。这可能涉及启用SRAM功率收缩以及页面非活动性驱逐,以及来自无线站虚拟设备(STA vdev)的软件输送业务指示消息(SW DTIM)条目。
箭头348代表嵌入式处理器使存储器从低功率模式315转变到活动功率模式305。这能够响应于例如WOW_STOP命令,并可能涉及禁用SRAM功率收缩和页面非活动性驱逐,以及配置诊断工具(例如,wdiag工具)以向主机处理器上载诊断信息而非在本地存储诊断信息。
图3中的虚线320代表主机设备的高级操作系统(HLOS)正在运行时(图3中线320上方的部分),例如,在应用处理器210在使用中时,发生的操作,与HLOS处于暂停状态时发生的操作(图3中线320下方的部分)之间的划分。对于在虚线320的第一侧322发生的操作(例如,在HLOS运行时发生的操作),PCIe链路能够操作于L0或L1SS功率模式中,并且高速缓存缺失可能是可接受的。对于发生在虚线320的第二侧324的操作(例如,在HLOS暂停时发生的操作),对于使用直接资源投票(DRV)的实施方式,PCIe链路能够操作于L0或L1SS功率模式中,并且对于不使用直接资源投票(非DRV)的实施方式,PCIe链路能够操作于L0、L1SS或L2功率模式中。对于这些操作而言,高速缓存缺失可能是不可接受的。
每种模式都包括驻留存储器325和可分页存储器330的存储和功率状态的至少一个图形表达。在活动功率模式305中,WiFi SOC的驻留存储器325和可分页存储器330都能够完全加电,例如,用于通过WLAN管理活动数据传输。能够根据页面需求方案基于容量要求从可分页存储器330丢弃页面。
如图所示,在一些实施例中,能够在HLOS从运行转变到暂停时发生准备模式310,如线320所示。为了从活动功率模式305转变到准备模式310,WiFi SOC能够驱逐可分页存储器330中的任何内容,关闭可分页存储器330并保持驻留存储器325加电。
在低功率模式315中,WiFi SOC能够自主操作,因为HLOS是暂停的。如果断续使用的数据和/或代码需要,WiFi SOC能够对可分页存储器330的部分重新加电。在不再使用断续使用的数据和/或代码时,WiFi SOC能够从可分页存储器330驱逐页面,并再次使可分页存储器330中保存被驱逐页面的部分断电。
作为示例,能够在低功率模式315中在可分页存储器330中暂时保存对地址解析协议(ARP)做出响应所需的代码和数据。WiFi SOC能够存取诸如主机DDR的辅助存储器,以获得指示WiFi SOC如何对请求做出响应的代码,以及对该请求做出响应的数据。能够在WiFiSOC处理响应的同时,在可分页存储器330中存储包括这种代码和数据的页面。例如,WiFiSOC能够识别可分页存储器330中已经加电并具有用于该页面的容量的存储体,或者如果没有这样的加电存储器可用,则能够对存储体加电。在完成响应之后,WiFi SOC能够从可分页存储器330驱逐页面,并关闭存储体(如果存储体中当前未存储其它使用中的指令)。
作为另一示例,WiFi SOC能够被配置为在低功率模式315中处理保持活动网络查验,以允许HLOS保持暂停。为了进行说明,网络能够发送查验以查看WiFi SOC的设备是否仍然在单个地址之内的复合多个连接中使用地址。WiFi SOC能够存取辅助存储器以获得指示WiFi SOC如何对请求做出响应的代码以及对请求做出响应的数据。能够在WiFi SOC正在处理响应时,在可分页存储器330中存储包括该代码和数据的页面,并且在完成响应之后,WiFi SOC能够从可分页存储器330驱逐该页面并关闭存储体。如果检测到保持活动查验超过门限频率,WiFi SOC能够转而在驻留存储器325中存储该页面。
图4示出了页面错误状况期间的示例性存储器功率成本的曲线图400。在示出的示例中,在WiFi SOC和主机设备处理器两者操作于低功率模式中时,作为示例,基线功率成本可能是300μA。在发生页面错误时,如果唤醒主机处理器(例如,以对已经进入待机模式的PCIe链路进行初始化)以对辅助存储器和WiFi SRAM之间的数据传输进行辅助,则作为示例,页面错误期间的功率成本能够是约86mA。页面错误能够持续大约1.17ms。在等待时间间隔TRESIDENCY之后,从利用关闭的可分页存储器的部分进行操作中节省的功率等于页面错误所花费的能量。如果页面错误之间的时间TF超过TRESIDENCY,那么该系统能够执行另一页面错误,同时仍然节省功率。与针对页面错误唤醒主机处理器的实施方式相比,公开的用于存取DDR或其它辅助存储器而不唤醒主机处理器的技术能够显著减小TRESIDENCY间隔的长度并实现提高的功率节省。
所公开的存储器功率节省技术的一个方面涉及选择非活动时间极限,该时间极限基于从辅助存储器抓取页面的成本,使得要从嵌入式处理器的存储器驱逐未被存取的页面。能够执行该操作,使得在针对从辅助存储器抓取页面成本低的系统中,积极地从嵌入式处理器的存储器驱逐未用页面,而在从辅助存储器抓取页面成本高的系统中,在未用页面的上次使用之后更长时段中,在嵌入式处理器的存储器之内保持该未用页面。
考虑TRESIDENCY和TFAULT之间的折中有助于选择防止页面错误过于频繁(以及从平台存储器抓取代码时关联的功率尖峰)所需的最少驻留代码。存储器低功率算法的一个目标可能是:确保尖峰中耗费的能量是通过保持在关闭存储体配置中足够长时间所回收的最小能量。不过,希望在关闭存储体配置中保持长得多的时间,使得看到实际的节省。
在一个实施例中,能够静态地完成对Tresidency相对于Tfault的分析,并能够预先配置驻留代码图像。在另一实施例中,能够动态地完成Tresidency相对于Tfault的分析。例如,系统能够观察行为运行时间并识别错误之间的平均时间(Tfault)是否发生得过于频繁,以至抵消了存储器低功率方案的益处。在这样的实施例中,该系统能够改变驻留图像的占用大小。在又另一实施例中,能够经由采用机器学习元素的学习软件完成这样的动态行为。一些系统能够实施这些实施例的两个或更多个实施例的组合。
在图4中能够看出,尖峰越低,设计越好。一些实施例能够如本文下面所解释的那样实施PCIE-DRV方案,其中与传统平台相反,显著降低了尖峰的成本。
在一些实施例中,关键性折中参数能够是保持多少存储器以分开相继的页面错误,使得泄露能量的节省补偿并超过页面抓入过程中使用的能量。
方程1示出了用于公开的存储器功率管理系统的折中参数的示例性模型。
TRESIDENCY=(PAPPS+PSNOC+PDDR+PPCIE_RC+PNAPALI_MISC+PPCIE_NPR)*TACTIVE_ON/PSRAM_LEAKAGE_RECLAIMED
方程(1)
TRESIDENCY为两次相继的页面错误之间的最小间距(TF)设置了下限,使得电池处消耗的能量与泄露节省持平。如果TRESIDENCY=TF,则发生零和状况。如果TF<TRESIDENCY,则可能对DoU功率有害。如果TF>>TRESIDENCY,则对于DTIM和DoU功率能够觉察到益处,并且在一些实施例中,TF=10xTRESIDENCY可能是优选的起点。在足够长的窗口(TOBSERVATION,从5分钟到数小时)上观察时,这样的益处是可察觉的。
在一些实施例中,能够对所有页面固定驱逐计时器。在一些实施例中,能够跨越页面对超时时间加权以为特定页面赋予更多的片上驻留。在一些实施例中,每个超时时间都能够静态(每图像)选择或者能够基于页面动荡而调整。
LPMem状态机与DTIM条目一起生效。WiFi FW仅能看到两种模式——FullMem模式和MinMem模式——并且转变能够由LPMem SM管理。PartialMem状态能够对WiFi FW透明,并整体由板级支持包(BSP)代码管理。不过,可能需要回调到WiFi FW。能够由具有假页面错误触发器的周期性FW评估计时器或通过HW加速来为每个页面维持LRU计时器。
图5示出了示例性时间线500期间主机555的AP 530、WiFi HW 535、WiFi处理器540、PCIe 545和辅助存储器550之间的示例性数据通信。该时间线500还示出了在系统进入待机状态以及处理待机状态之内的事件时,WiFi嵌入式处理器的存储器的加电部分如何随时间变化。
该时间线500示出了第一线条505和第二线条510,第一线条505代表填充的WiFiSOC SRAM的量,第二线条510代表在活动模式515(FullMem)、准备模式520(LowPowerPrep)和低功率模式525(LowPowerMem)的每个模式期间加电的WiFi SOC SRAM的量。如线条505、510所示,在活动模式515中,SRAM完全加电,并填充了很大百分比。在准备模式520中,SRAM完全加电,但很多所填充的SRAM,例如通过刷新数据高速缓存和驱逐页面而被腾空。然后关闭供应给空置SRAM的功率,并且WiFi SOC进入低功率模式525。
时间线500示出了在低功率模式525期间与组临时密钥(GTK)相关的AP 530和WiFiSOC之间的通信。如线条505、510所示,对这一请求做出响应涉及填充和加电的SRAM的量暂时增加。在页面非活动超时时段之后,SRAM的填充和加电的量返回到针对低功率模式525的基线水平。在低功率模式525中保持填充和加电的SRAM的量能够包括对诸如GTK M1请求的请求做出响应所需的驻留存储器和任意可分页存储器。
在时间线的底部,主机向WiFi SOC发送WoW唤醒信号,指出其HLOS和应用处理器正在恢复活动,例如,以管理经由WLAN的通信。此时,如线条510所示,对SRAM加电并如线条505所示逐渐填充SRAM。
预测性预抓取和页面使用跟踪的概述
图6A和6B示出了根据本公开内容处于待机和活动模式中的存储器部分的示例性使用。图6A示出了作为在主机处理器处于待机模式中时操作的存储器640A的第一实施例的第一配置600A,存储器640A例如是SOC的SRAM 255或另一嵌入式存储器。图6A还示出了在主机处理器操作于活动模式中时存储器的第二配置600B。
在第一配置600A中,存储器640A包括未用于存储页面(例如,空置)的可分页存储器的关闭部分605。在第一配置中,不为关闭部分605提供功率。如上所述,存储器640A能够包括SRAM。SRAM是一种形式的易失性存储器,只要给该易失性存储器供电,就在其存储器中例如使用双稳态锁存电路或其它适当的触发器电路存储每个比特来保持数据比特。于是,关闭的部分605(和存储器640A的其它部分)在关闭供应给这个部分的功率时可能会丢失数据。如本文所述,如果需要,能够选择性地给关闭部分605的部分加电,以适应未锁定的使用中页面的增加。
第一配置600A中的存储器640A还包括在待机模式中加电的使用中的页面部分610、频繁使用的页面驻留存储器部分615以及不可分页存储器驻留部分620。使用中页面部分610是存储未锁定使用中页面的可分页存储器,未锁定使用中页面例如是,在不使用时可以从本地存储器驱逐的当前或最近在待机模式中使用的页面。组合关闭部分605和使用中页面部分610的总大小能够固定,尽管这些部分605、610的个体大小能够在待机模式期间改变。例如,如本文所述,能够基于LRU超时时间,在预定量时间之后,或者能够基于系统页面管理规则周期性地,从使用中页面部分610驱逐页面。在驱逐页面时,能够对不再用于存储页面的使用中页面部分610的部分进行断电,从而增加关闭部分605的大小并减小使用中页面部分610的大小。相反,在发生页面错误和/或预测性地预抓取页面时,能够对关闭部分605的部分加电,以存储这些页面,从而增大使用中页面部分610的大小并减小关闭部分605的大小。
频繁使用的页面驻留存储器部分615和不可分页存储器驻留部分620包括驻留存储器。如本文所述,驻留存储器维持存储代码或其它数据的驻留页面的加电易失性存储器。驻留页面的示例包括(1)存储器的操作所需的页面,例如,管理分页的代码的页面;(2)不容忍延时的页面(例如,需要比从外部存储器抓取它们所将花费的时间量快);以及(3)以足够大频率和/或周期性使用的页面,使得保持频繁使用的页面驻留存储器部分615和不可分页存储器驻留部分620加电所需的能量的量少于抓取页面将需要的能量的量。频繁使用的页面驻留存储器部分615能够用于存储系统(例如,WiFi SOC)频繁使用的页面,例如,用于在待机模式中控制存储器640A的操作的页面。不可分页存储器驻留部分620能够用于存储不可分页的页面,例如内核级别的代码。尽管被示为独立部分,但在一些实施例中,频繁使用的页面驻留存储器部分615和不可分页存储器驻留部分620可以是单个驻留存储器部分。
在活动模式中,能够根据第二配置600B操作存储器640A。在第二配置600B中,加电用于存储未锁定(例如,可分页且动态地存储)页面的使用中页面部分610扩展到先前由关闭部分605占用的空间中。例如,在活动模式中,通过使可分页存储器的未用部分断电来实现的功率减小可能由页面错误的功率成本抑制,并因此如第二配置600B中所示,能够对整个可分页存储器加电。驻留存储器部分615、620能够如上文所讨论的待机模式中那样同样保持在活动模式中。于是,在存储器640A的该实施例中,能够在频繁使用的页面驻留存储器部分615中持久存储页面,该页面在待机模式期间如此频繁地使用,以至于在存储器640A中存储该页面的功率成本小于抓取该页面的功率成本。
图6B示出了作为在主机处理器处于待机模式中时操作的存储器640B的第二实施例的第三配置600C,存储器640B例如是SRAM 255或SOC的另一嵌入式存储器,以及在主机处理器操作于活动模式中时存储器640B的这一实施例的第四配置600D。图6B的存储器实施例能够针对频繁使用的待机页面(例如,在待机模式中操作主机处理器时频繁使用的代码和数据)实施基于模式的预测性预抓取。因此,与图6A的实施例相比,能够减少存储器640B的总量,如虚线框630所示,该虚线框630代表存储器640A的第一实施例占用而未被存储器640B的第二实施例占用的存储器的容量。
在第三配置600C中,存储器640B包括未用于存储页面(例如,空置)的可分页存储器的关闭部分605。在第三配置中,未给关闭部分605提供功率。如上所述,该存储器能够是只要对其供电,就在其存储器中保持数据比特的易失性存储器。于是,该部分605在关闭对这个部分的功率时,可能丢失数据。如图所示,存储器640B的关闭部分605能够比存储器640A的关闭部分605小虚线框630所示的存储器的减小量。
在第三配置600C中,存储器640B包括在待机模式中加电的使用中页面部分610、锁定页面存储器部分625和驻留存储器部分635。使用中页面部分610是存储未锁定使用中页面的可分页存储器,该使用中页面例如是当前或最近在待机模式中使用而在不使用时可以从本地存储器驱逐的页面。如上文参考图6A所述,组合的关闭部分605和使用中页面部分610的总大小能够是固定的,尽管这些部分605、610的各个大小在待机模式期间基于未锁定使用中页面的数量(和比特容量)能够改变。
锁定页面存储器部分625是存储与当前操作模式相关联的锁定页面集合的可分页存储器。例如,在进入待机模式之后,能够向锁定页面存储器部分625中预测性预抓取待机模式页面集合(例如,在待机模式中频繁使用或由于其它原因对于控制待机模式操作而言重要的代码或数据的页面)。例如,待机模式页面能够包括代表用于抓取和驱逐未锁定使用中页面的指令的代码、代表用于对关闭部分605和使用中页面部分610的部分加电或关闭的指令的代码、代表用于跟踪页面使用的指令的代码以及这些过程中使用或生成的任何数据。尽管在待机模式的示例中论述,但锁定页面存储器部分625也能够用于存储其它模式特定的页面集合。能够基于页面使用数据的分析,例如,使用机器学习系统,预先确定和/或动态确定模式特定的页面集合,如本文参照图7和8所述。
在待机和活动模式两者中都存储于第一实施例640A中的驻留存储器部分615中的页面在第二实施例640B中能够替代地是可分页的,其中,在进入待机模式时预抓取这样的页面,并且在待机模式持续时间期间这些页面锁定在位置中。因为待机模式页面能够预抓取并在待机模式持续时间中锁定在锁定页面部分625中,所以在活动模式600D期间这些页面不需要存在于本地存储器中。这样一来,即使在活动模式600B中操作存储器640A时,虚线框630示出的存储器减少量也能够对应于用于存储频繁使用的待机页面的存储器640A的频繁使用的页面驻留存储器部分615的大小。本地存储器中的这种减少相对于存储器640A有益地降低了存储器640B的成本和待机功耗。即使在存储器640A和存储器640B中能够在待机模式期间为相同量的本地存储器加电,但较低量的本地存储器保持未用和关闭。因为关闭存储器的功耗实际上不是零,所以减小未用存储器的量减小了存储器640B的待机功耗。
驻留存储器部分635维持着存储代码或其它数据的驻留页面的加电易失性存储器。驻留存储器部分635能够存储与上述不可分页驻留存储器620类似的页面,例如(1)存储器的操作所需的页面;(2)不容忍延时的页面,以及(3)以足够大频率和/或周期性使用的页面,使得保持驻留存储器部分635加电所需的能量的量少于抓取页面将需要的能量的量。
在活动模式中,能够根据第四配置600D操作存储器640B。在第四配置600D中,加电以用于存储未锁定(例如,可分页且动态存储的)页面的使用中页面部分610扩展到先前由关闭部分605占用的空间中。此外,使用中页面部分610扩展到先前由锁定页面部分625占用的存储器640B的部分中。例如,能够通过在进入活动模式之后,驱逐待机模式页面来从锁定页面部分625驱逐任何模式特定的页面集合。驻留存储器部分635能够与上述待机模式中同样保持在活动模式中。
将要认识到,能够修改一开始根据第一实施例640A配置的存储器以实施如参照第二实施例640B所述的基于模式的预测性预抓取,尽管没有虚线框630所示的对应存储器减少。
在一些实施例中,本文描述的预抓取(动态和/或模式化)还能够涉及填充可分页存储器的任何加电的存储体。例如,对于动态预抓取而言,嵌入式处理器能够被配置为识别已经加电的可分页存储体的剩余大小或识别将要加电以存储下一抓取页面的关闭的可分页存储体的总大小。嵌入式处理器然后能够将页面抓取集合(包括请求的页面和预测的页面)的存储器大小与所识别的存储体大小进行比较。如果页面抓取集合的存储器大小小于所识别的存储体大小,嵌入式处理器可以例如基于有高概率在门限量时间之内受请求的其它页面,选择所需要的许多额外页面以填充所识别的存储体大小。对于模式化预抓取,嵌入式处理器能够基于这个集合具有填充将被加电以存储该集合的任意可分页存储体的存储器大小,识别模式特定的页面的集合。将要认识到,“填充”存储体可能不使用存储体中每个可用的比特,但未用比特的数量应当少于存储额外页面(“页面帧”)所需的比特的数量。不过,在一些情况下,可能存在留下加电存储体之内的一些页面帧为空置或空白的原因。例如,如果使用任何更多页面的概率足够小,可能不值得花费额外功率将考虑中的页面从辅助存储器复制到嵌入式存储器的页面帧中。在其它示例中,与期望页面一起抓取额外页面所需的功率可能很小,因此可能值得填充存储体,甚至值得利用具有小的使用概率的页面填充存储体。
图7示出了如本文所述的用于预测性页面抓取的系统700的高级示意方块图。系统700包括设备705、远程计算系统730和机器学习系统740。如参照图6B所述,机器学习系统740的一些实施例能够用于预测模式特定页面集合。机器学习系统740的一些实施例用于基于实时页面使用数据(例如,关于抓取页面时或在页面使用的同时或页面刚使用之后所收集和分析的页面使用的数据)动态预测下一页或页面集合。
设备705能够是例如包括图2的存储器功率最小化架构200的设备。如上文参照图2所述,设备705包括具有主机存储器712和主机处理器714的主机系统710,并且还包括具有嵌入式存储器722和嵌入式处理器724的片上系统720。主机存储器712能够是上文描述的DDR 225或另一适当的电子数据存储器结构。主机处理器714能够是上文描述的处理器220或另一适当的电子处理单元。嵌入式存储器722能够是上文描述的SRAM 255、存储器640A或存储器640B,或片上系统720中嵌入的另一适当的电子存储器。嵌入式处理器724能够是上文描述的CPU 245或片上系统720中嵌入的另一适当的电子处理单元。主机系统710和片上系统720通过通信总线750通信。
在一些实施例中,设备705(或多个设备705)能够通过网络715与远程计算系统730通信。网络715能够是因特网、局域网(例如,WiFi网络)、卫星通信网(例如,蜂窝网络)、其它适当网络或不同类型网络的组合。远程计算系统730能够是服务器或多个服务器,并能够包括多个不同的地理上远离的计算设备。远程计算系统730包括远程存储器732和远程处理器734。远程存储器732能够是一个或多个被配置为存储页面使用数据、表示用于训练机器学习模型的指令的代码以及如下文更详细所述的已训练模型参数的电子存储器。远程处理器734能够是一个或多个电子处理器。适当的处理器能够包括通用处理器或在其它实施例中能够包括针对训练和/或使用机器学习模型优化的图形处理单元(GPU)或专用集成电路(ASIC)。
机器学习系统740包括页面使用数据储存库742、模型训练模块744和转变概率模型746。如下文更详细所述,机器学习系统740能够实现于一个或多个存储数据和计算机可执行指令的电子存储器以及一个或多个执行指令的硬件处理器中,该计算机可执行指令用于执行所述的训练和/或预测功能。
如图2中所示,机器学习系统740中的部分或全部能够位于系统700之内多个不同位置中的一个或多个位置中。例如,页面使用数据储存库742能够并入片上系统720的嵌入式存储器722中以存储代表特定设备705上的该特定片上系统720上的页面使用的数据。作为另一示例,页面使用数据储存库742能够额外地或替代地并入主机系统710的主机存储器712中。在片上系统720和主机系统710两者中都具有页面使用数据存储库742的部分的实施例中,例如,能够根据预定调度和/或在用于存储页面使用数据的嵌入式存储器722的大小(例如,占用的总存储器或占用的嵌入式存储器722的百分比)达到某个门限时,从嵌入式存储器722向主机存储器712周期性传输页面使用数据。此外,页面使用数据存储库742能够并入远程计算系统730的远程存储器732中,例如,以存储从主机存储器712和/或多个不同设备705的嵌入式存储器722传输的汇总页面使用数据。
模型训练模块744能够实现为存储于存储器连同执行指令的处理器中的用于训练指定机器学习模型的计算机可读指令。机器学习模型能够是马尔科夫链模型、隐马尔科夫链模型、回归神经网络、线性系统、扩展卡尔曼滤波器或适于识别顺序数据中相继点之间相关性的另一机器学习模型。模型训练模块744能够使用来自页面使用数据存储库742的历史页面使用741以生成机器学习模型的经训练的参数745,其中,这样的经训练的参数代表页面序列之间的相关性。
例如,模型能够是马尔科夫链模型,该模型可能很适合代表页面序列的统计规律的任务。马尔科夫链模型是由具有关联概率的多个状态和转变集合定义的。根据本公开内容,多个状态能够对应于片上系统720使用的可能页面集合中的多个页面。可能页面集合能够预先选择为所有可用页面,能够基于作为待机模式期间实际使用的页面的使用模式来确定,或者能够基于作为待机模式期间使用的超过某个门限数量的时间或频率的页面的使用模式来确定。在一些实施例中,状态能够额外或替代地对应于两个或更多个页面的序列。于是,能够将如本文描述的马尔科夫链模型的状态定义为单个页面或页面序列。
从给定状态开始的转变定义接下来的可能状态上的分布。在一阶马尔科夫链中,给定状态的概率仅取决于前一状态。公开的马尔科夫链模型还能够定义最终状态,允许该模型代表不同长度序列上的分布以及对以某些状态结束序列的偏好。
为了训练马尔科夫模型,该模型训练模块744能够使用一些或全部历史数据使用741来确定该模型的概率参数。确定概率参数的一种适当方式涉及最大似然估计。例如,该模型训练模块744能够使用这种方式基于历史页面使用741中状态b的发生次数以及历史页面使用741代表的序列中的总页面数,对状态a之后的状态b的概率建模。另一适当的方式能够替代地实施贝叶斯方法,例如,拉普拉斯估计或m估计。例如,该模型训练模块744能够使用这样的方法至少部分地基于历史页面使用741中状态b跟随状态a的次数、历史页面使用741代表的序列中的页面总数以及拉普拉斯估计或m估计模型的额外参数,对状态b跟随状态a的概率进行建模。
在一些实施例中,可以仅针对可能(等于或大于门限概率百分比,例如90%)在预定时间窗口之内的接下来的序列中(例如,下一毫秒)发生的页面执行预测性预抓取。于是,马尔科夫模型的训练可以基于识别和分析预定时间窗口之内发生的历史页面使用741中的页面序列。
能够将马尔科夫模型的被训练概率参数表示为转变概率的曲线图或数据库(例如,转变概率模型746)并存储于嵌入式存储器722中。在一些实施例中,仅有满足可能性和时间窗口标准的概率(例如,页面1可能有90%或更大概率在一毫秒之内跟随页面2)能够包括在转变概率模型746中,以便使转变概率模型746在嵌入式存储器722中占用的空间量最小化。有利地,使转变概率模型746中的总数据量最小化使得嵌入式存储器722在待机模式中存储转变概率模型746所需的功率量最小化。在一些实施例中,转变概率模型746可以存储于存储器640A的驻留存储器部分615或存储器640B的锁定页面可分页存储器部分625中。
在使用时,在存取本地存储器中已经有的页面时或在发生页面错误时,嵌入式处理器724能够存取存储的模型并查找所请求的页面(或页面序列)以识别是否有应当预测性预抓取的下一页面或页面序列(例如,页面预测747)。例如,嵌入式处理器724能够沿转变概率模型746的曲线图的当前状态轴查找所请求的页面。嵌入式处理器724然后能够沿预测状态轴进行检查以识别是否有预计在任意预定时间窗口之内和/或以任何门限置信度水平接下来被请求的任何预测的后续页面。作为另一示例,嵌入式处理器724能够在转变概率模型746的数据库的当前状态列或行中查找所请求的页面,然后扫描对应的行或列以识别是否有预计在任意预定时间窗口之内和/或以任何门限置信度水平接下来被请求的任何预测的后续页面。
如果有这样的预测后续页面,嵌入式处理器724能够检查以查看是否这些页面已经存储于嵌入式存储器722中。如果未存储,则能够向可分页存储器中预测性预抓取页面预测747。在页面错误触发嵌入式处理器724生成页面预测747的实施例中,能够从辅助存储器一起抓取所请求的初始页面和任意预测的页面。有利地,在如预测的接下来使用预测的页面的情形中,这样能够节省额外页面错误的功率成本。如果并未如预测的接下来使用页面,在待机模式中,预测性预抓取可能由于直到驱逐预测的页面为止,都在可分页存储器的加电部分中存储预测的页面,而造成暂时的不需要的功率增加。例如,能够基于预测的页面的使用的额外机器学习分析及其在页面使用数据742中的预测概率,动态地调谐马尔科夫模型的概率门限,使得页面错误减少中的功率节省和由于存储未用预测的页面导致的功率成本之间的平衡最终实现净功率节省。
作为另一示例,该模型能够是前馈神经网络或回归神经网络,上述神经网络是适于识别顺序数据中的模式的人工神经网络的形式。人工神经网络通常具有多层节点。输入层具有输入节点,该输入节点经由到隐藏节点层的连接发送输入数据,然后经由通过任意额外隐藏节点层的更多连接向输出节点的输出层发送输入数据。每个节点都能够通过连接,与很多其它节点,例如与相邻层中的一些或所有节点逻辑连接。在对与当前节点相关联的功能的输入值包括与先前层中的节点相关联的功能的输出时,可以将节点视为“连接的”,乘以与当前节点和先前层中的节点之间的个体“连接”相关联的权重。连接可以存储称为权重的参数,权重能够操控计算中的数据。隐藏层中的激活功能和模式能够被视为如何对网络进行编程以识别输入的显著特征的编码。
节点连接的强度通常是在训练过程期间从数据学习的。神经网络能够反复处理输入训练数据,并且能够修改神经网络的参数(例如,节点连接强度的权重矩阵),直到该模型产生(或“收敛于”)训练期间向神经网络提供的正确或优选输出为止。可以通过称为“反向传播”的过程执行权重值的修改。反向传播包括确定预期模型输出与所获得模型输出之间的差异,然后确定如何修改该模型的一些或所有参数的值以减小预期模型输出与所获得模型输出之间的差异。
模型训练模块744能够使用历史页面使用741的窗口训练神经网络以生成输入数据以及在这些窗口之后的后续页面或页面序列,作为预期输出数据。输入数据能够包括对应于神经网络输入层的n个节点的n个独立的数据元或“维度”(其中n是某一正整数)。输入层(和输出层)的每个节点都能够对应于片上系统720使用的可能页面集合中的特定页面(或预定页面序列)。提供给输入层的每个数据元可以是数值,例如浮点数或整数,例如,对应于窗口743之内发生页面的1以及代表窗口743之内未发生页面的0。输出节点的值能够是0和1之间的值,例如,每个值各代表在该序列中接下来(或在预定时间之内)将使用特定页面的概率。
模型训练模块744能够训练神经网络的参数(例如,隐藏层的权重矩阵)以从输入预测预期输出。一旦经过训练,训练的参数745代表可能页面集合中页面顺序模式的编码,并能够作为转变概率模型746存储;能够通过经训练的模型传递页面使用的当前窗口743来生成概率。替代地,能够使用经训练的模型针对一些或所有可能的输入页面生成概率集合,并且能够将这些预生成的概率(或这些预生成的概率的满足概率门限要求的子集)存储为用于转变概率模型746的曲线图或数据库。
在一些实施例中,能够基于预期输出数据中的页面是否发生于页面使用数据742中的先前页面或页面序列的预定时间间隔(例如,毫秒或几毫秒)之内,而识别预期输出数据中的页面。这样能够使得由神经网络生成的预测能够反映对发生于针对映射到输入节点的页面的请求的这种时间间隔之内的针对映射到输出节点的页面的请求的概率。
上述训练和所得转变概率模型746主要涉及页面的动态预抓取,亦即,响应于当前页面请求或使用中页面而发生的预抓取。在一些实施例中,能够修改这样的机器学习分析(或其它适当的机器学习分析)以仅基于页面使用数据742中对应于在特定模式中操作设备705的同时使用的页面的部分。该模式可以是主机处理器714的待机模式、通信总线750的功率状态或模式的组合(例如,主机处理器714处于待机模式,PCIe总线操作于L2动态中)。所得的数据能够是可能在该特定模式中使用的页面集合。例如,由机器学习系统740进行的统计分析能够识别待机模式期间历史上使用的任何页面,或者使用超过门限次数或超过门限频率的这种页面的子集。能够基于页面使用数据742的额外分析来调节门限以优化用于获取从页面集合省略的页面的页面错误的成本与所得页面集合的数据大小(以及在嵌入式存储器722中存储这样的数据所需的对应功率量)之间的功率平衡。能够向嵌入式存储器722提供针对特定模式(或针对多种特定模式)的页面集合的索引,以实现在进入对应模式之后,预抓取这样的模式化页面集合,如参照图6B所述。将要认识到,该片上系统720能够被配置为实施本文所述的动态预抓取和模式化预抓取中的一者或两者。
如上所述,转变概率模型746是具有在由模型训练模块744进行训练之后设置的机器学习模型参数的机器学习模型,并且能够实现为电子存储的经训练的参数和计算机可读指令,以用于通过机器学习模型的经训练的参数与执行指令的处理器一起处理数据。给定输入页面(页面使用的当前窗口743),嵌入式处理器724能够使用转变概率模型746以确定可能跟随当前请求或使用的页面之后的特定页面,连同对应的概率。一些实施例能够额外预测的页面使用的当前窗口743和预测的页面之间的时间量。这些页面能够输出为页面预测747,并且如果它们并未已经在嵌入式存储器722的可分页存储器部分或驻留存储器部分中存在,则预测性地预抓取这些页面。
类似于页面使用数据存储库742,该模型训练模块744能够并入片上系统720、主机系统710和远程计算系统730中的一个或多个系统中。转变概率模型746由片上系统720使用,并因此能够并入片上系统720中,不过也能够由主机系统710和/或远程计算系统730生成并(暂时或持久)存储经训练的模型。下文更详细地讨论了机器学习系统740跨越系统700的各组件的各种分布。
在一些实施例中,能够例如在主机处理器714操作于活动模式中时,由片上系统720在片上训练公开的页面预测机器学习模型。所得的经训练的过渡概率模型746能够存储在嵌入式存储器722中并用于在主机处理器714操作于待机模式中时,由片上系统720预测性预抓取。在其它实施例中,能够向该片上系统720提供由主机系统710或远程计算系统730生成的经训练的转变概率模型746。
因为机器学习模型训练可能在计算方面是昂贵的,所以在一些实施例中,由于片上系统720相对于主机系统710较有限的存储器和处理能力,该模型训练模块744能够不并入片上系统720中。在这样的实施例中,能够由主机系统710间断地或周期性地训练公开的页面预测机器学习模型,同时将经训练的模型推送回片上系统720,以在预测性页面抓取时使用。
此外,在一些实施例中,由于主机系统710相对于远程计算系统730的较有限的存储器和处理能力,该模型训练模块744可能不并入主机系统710中。在这样的实施例中,能够由远程计算系统730间断地或周期性地训练公开的页面预测机器学习模型,同时将经训练的模型通过网络715推送回片上系统720,以在预测性页面抓取时使用。
有利地,该远程计算系统730能够从设备705和多个其它设备705收集页面使用数据742,无论它们是否实施公开的功率优化需求分页。这样一来,由远程计算系统730生成的转变概率模型746能够基于来自多个不同设备的汇聚数据或基于来自单一不同设备的使用数据。在该设备705没有或具有有限的使用数据以用于训练转变概率模型746的情形中,这可能是有益的。在这些情形中,在没有由来自其它设备705的数据实现训练的情况下,设备705可能不能使用转变概率模型746。所得的转变概率模型仍然能够使设备705能够相对于没有任何预测性预抓取的情况下的操作实现功率节省。在一些实施例中,能够从远程计算系统730向设备705发送汇聚数据(或来自单个不同设备的数据),以用于基于这样的数据在本地训练转变概率模型746。
在其它实施例中,片上系统720、主机系统710和远程计算系统730中的任意系统都能够仅基于来自特定设备705的使用数据生成个性化的转变概率模型746。这样的个性化转变概率模型746能够反映该特定设备705的实际使用模式,并因此可以更可能导致精确的页面预测和对应的较高功率节省。
在一些实施例中,能够为新设备705的嵌入式存储器722提供基于来自一个或多个其它设备705的页面使用数据742生成的转变概率模型。这一模型可以在积累足够量的页面使用数据742之后,基于设备705的使用,稍晚由新设备705(或由远程计算系统730)更新。在其它实施例中,新设备705可以等待直到该新设备705已经积累了足够量的页面使用数据742以生成新设备705自己的模型为止。
图8示出了根据本公开内容的用于向待机模式中的存储器中预抓取页面的示例性过程800的流程图。在一些实施例中,过程800能够由架构200或设备705实施。这样一来,下文提到的嵌入式处理器能够是CPU 245、嵌入式处理器724或另一适当的处理器,下文提到的嵌入式存储器能够是SRAM 255、嵌入式存储器722或另一适当的存储器,下文提到的主机处理器能够是处理器220、主机处理器714或另一适当的处理器,并且下文提到的主机存储器能够是DDR 225、主机存储器712或另一适当的存储器。
过程800可以响应于事件以如下方式开始:例如以预定的或动态确定的调度,在由系统管理员或特定软件模块发起时按需求,或响应于某种其它事件。在发起过程800时,可以向嵌入式存储器或片上处理器的存储器(例如,随机存取存储器或“RAM”)中加载一个或多个非临时性计算机可读介质(例如,片上非易失性存储器或主机系统中的存储器)上存储的可执行程序指令的集合。可执行指令然后可以被片上系统或计算设备的基于硬件的计算机处理器(例如,CPU 245、嵌入式处理器724)执行。在一些实施例中,可以在多个计算设备和/或多个处理器上,串行或并行地实施过程800或其部分。
在方块805处,嵌入式存储器能够确定主机处理器操作于待机模式还是另一低功率模式(例如,不是最高功率的活动操作模式)中。这能够涉及在主机处理器进入待机模式时,查验包括主机处理器的主机系统或存取由主机系统提供的存储数据。如果主机处理器不是在待机模式中操作,过程800可以循环到方块850以对可分页存储器的任何关闭部分加电。不过,如果该设备先前未操作于待机模式中,过程800能够替代地绕过方块850并结束,恢复。过程800可以在发生特定事件之后或根据预定调度,再次恢复。
在方块810处,响应于确定主机处理器操作于待机模式中,嵌入式处理器能够从可分页嵌入式存储器驱逐任何所确定的页面,并使可分页存储器的未用部分断电。如上所述,这能够包括可分页存储器中的所有页面或满足各种驱逐标准的这种页面的子集。在一些实施例中,方块810可以在方块825之后执行。
在方块815处,嵌入式处理器能够确定是否选择特定模式以操作片上系统或主机设备的任何部分。这能够包括在方块805处识别的待机模式,和/或其它操作模式(例如,PCIe链路的功率状态)。
方块820、825和830代表针对模式化预抓取的子过程的示例性方块。在方块820处,响应于确定存在被选择的特定操作模式,主机处理器能够识别该模式期间频繁使用的页面。例如,主机处理器能够存取嵌入式存储器或主机存储器中存储的这种页面的索引。能够基于来自该设备和/或至少一个额外设备的历史页面使用数据的机器学习分析来预先生成这种索引,并可以基于新的页面使用数据来周期性或断续地进行更新。作为一个示例,模式化页面集合可以是在主机处理器处于待机模式中时使用的页面。
在方块825处,主机处理器能够抓取所识别的模式化页面集合,对可分页存储器的一部分加电(或如果稍后执行方块810,则不使可分页存储器的这个部分断电),并在可分页存储器中存储页面。主机处理器能够进一步例如通过与这种模式化页面相关联地存储指示符而将这些页面“锁定”到可分页存储器中,该指示符指示这些页面不受LRU超时时间或其它驱逐标准的影响。
在方块830处,主机处理器能够确定已经完成了所选择的模式中的操作。在一些实施例中,这可能涉及迭代方块805,然后转变到方块850,以对可分页存储器的任何关闭的部分加电,以在活动模式中操作。
方块835、840和845代表用于动态预抓取的子过程的示例性方块。在方块835处,响应于嵌入式处理器在方块815处确定未选择任何模式(或者替代地响应于确定已经预抓取了模式化页面且该模式中的操作在继续),嵌入式处理器能够分析页面使用的当前模式。如上文参照图7所述,这可能涉及通过经训练的机器学习模型传递当前请求/使用的页面/页面序列或在由这样的机器学习模型预先生成的转变概率模型中查找当前请求/使用的页面/页面序列。
在方块840处,如果嵌入式处理器基于方块835的结果预测在当前请求/使用的页面/页面序列的任何门限时间之内是否将需要任何预测的页面。例如,嵌入式处理器能够识别在下一毫秒、多个毫秒、秒等之内以50%或更大、75%或更大、90%或更大、95%或更大等概率需要的任何页面。如上所述,能够基于预测的页面的历史页面使用数据的分析设置这些门限,以便优化功率节省。
在方块845处,嵌入式处理器能够例如使用单个页面错误向可分页存储器中预抓取所请求的页面和任何所识别的预测的页面,以获取包括所请求的页面和预测依序跟随所请求页面的一个或多个页面的多个页面。为了进行说明,该嵌入式处理器能够识别已经发生了事件X且预测接下来发生事件Y,并能够连同抓取针对事件X的页面一起预抓取针对事件Y所需的页面。一些实施例能够预测多个后续事件,并相应地抓取针对一些或全部这些后续事件的页面。从功耗的角度看,这种批量抓取能够比独立抓取这些事件所需的页面更有效率。替代地,嵌入式处理器能够预测特定页面而非特定事件,而不是预测如果页面M被使用,则预测下一个将使用页面N。在这样的实施例中,嵌入式处理器能够与页面M一起预抓取页面N,从而再次实现了比多个个体页面传输更有功率效率的批量抓取。值得注意的是,在动态预抓取中抓取的页面可能未锁定到可分页存储器中,并因此可能被识别成后续收到驱逐。
在操作于待机模式中时,过程800能够通过方块835到845循环任意次数。于是,在完成方块845之后,该过程能够循环回到方块805以检查主机处理器是否仍然操作于待机模式中。如果是,能够响应于预定事件,例如页面错误,再次执行方块835。
图9示出了根据本公开内容的修改的最近最少使用(LRU)方案中的示例性步骤900A-900F的图示。通常地,LRU过程是在与使用页面的数量相比,存在有限数量的页面表中的条目时实施的。页面表用于存储最近使用的页面的索引。例如,如果存取了本地存储器中存在(例如,在片上存储器的可分页部分或驻留部分中或抓取到可分页存储器中)但在页面表中未标识的页面,这将触发异常,以添加被存取页面的标识符的条目。这能够包括与被存取页面的标识符相关联地存储时间戳或顺序排序号,或通过页面表中的不同的位置从最近使用的位置向最近最少使用的位置移动页面标识符。在一些实施例中,这种异常能够由将由SOC的操作系统软件服务的嵌入式处理器创建。如果被存取页面的标识符在页面表中,能够更新时间戳或者能够将该标识符移动到最近使用的位置。如果页面表条目是满的,新异常也触发SOC的操作系统从页面表驱逐旧条目。具有最旧时间戳(或在最近最少使用位置)的页面是最近最少使用的页面,并且这是要驱逐的页面。在从页面表驱逐页面标识符时,这能够充当LRU超时时间,这还导致要从可分页存储器驱逐该页面的代码或数据。在存在比序列中存取的页面数量小得多的页面表的大小时,这样的技术是有用的,因为这保持页面表由最近使用的页面填充。
不过,在待机模式期间,本公开内容的计算操作能够使用比活动模式中少的页面,导致待机序列中的页面数量比页面表中存在的条目少。这样一来,根据现有的LRU方案,可能永远都不会从页面表驱逐页面,这将允许操作系统软件推断哪些页面最近已经使用过,而哪些页面未使用过。
图9中所示的示例性过程通过如下方式解决了这个问题:令SOC OS软件周期性地使页面表中的条目失效,使得下次存取特定页面将产生异常,连同通过在页面表中提供针对被存取页面的有效条目而处理这一异常(以及任选地将该页面标记为当前使用中)。
在步骤900A处,该片上系统请求页面0。页面0并非已经在页面表910中,因此这会触发异常,并将页面0添加到页面表910的页面索引列914的第一行916。将时间代码“1”添加到页面表910的时间代码列912,代表当前页面序列中首先请求页面0。替代实施例能够替代地使用时间戳,例如,代表片上系统的时钟上的时间。
类似地,在步骤900B处,该片上系统请求页面4。页面4并非已经在页面表910中,因此这会触发异常,并且页面4被添加到页面表910的页面索引列914的下一行。时间代码“2”添加到页面表910的时间代码列912,代表页面4是当前页面序列中第二个受到请求的。为了附图简单清晰起见,从步骤900B-900F省略了在步骤900A处针对页面表910所示的附图标记,不过,将要认识到,该页面表910在每个步骤都包括相同的列。
在步骤900C处,该片上系统请求页面1。页面1并非已经在页面表910中,因此这会触发异常,并且页面1添加到页面表910的页面索引列914的下一行。时间代码“3”添加到页面表910的时间代码列912,代表页面1是当前页面序列中第三个受到请求的。
在步骤900D处,该片上系统再次请求页面0,从而将页面表910的时间代码列912中的值更新为4,代表页面0在当前页面序列中是最近第四个受到请求的。在一些实施例中,类似于现有LRU技术执行步骤900A-900D。不过,在步骤900D处,在页面0再次受到请求时,如图9中所示,在页面表910中仍然有很多空行。例如,在如下情形中这可能是有益的:页面表910是硬件页面表,并且活动模式中的LRU操作需要更多条目,因为实施过程900的设备通常会在活动模式中比在待机模式中使用多很多的页面。尽管在待机模式中可以使用超过三个示例性图示的页面,但步骤900A-900D提供了如何在待机模式中使用比硬件页面表中存在的条目少的页面的示例性图示。于是,将不会从页面表910驱逐页面,并且对应地,该片上系统将没有导致要从可分页存储器驱逐的页面数据的LRU超时时间。
为了解决这个问题,步骤900E示出了公开的技术随即如何操作以人为减小硬件页面表大小的一个示例。在步骤900E处,SOC使页面表910中的条目无效。如图所示,SOC能够马上使所有条目无效,有效地擦除页面表910中的条目。在替代实施例中,SOC能够循环通过使用中的页面,一次使页面表910中的一个条目失效,以分散由存取没有页面表910中的条目的页面造成的异常的性能影响。一些实施例能够一次使页面组无效,并能够一次一组地循环通过使用中页面的组。这种无效还可以触发LRU超时时间,并且如果这样的话,可以从可分页存储器驱逐对应的页面数据。这种无效将导致下一次存取页面会产生异常,并且SOC能够通过为被存取页面提供页面表910中的有效条目并将该页面标记为当前使用中,来处理该异常。于是,即使在待机模式中使用的页面数量少于页面表910中的条目数量时,SOC仍然能够跟踪最近已经使用过哪些页面以及哪些未使用,使得SOC能够从可分页存储器驱逐未用的页面并使可分页存储器中未用于存储页面的对应部分断电。
某些实施例的概述
能够根据以下条款描述本公开内容的实施例。
1、一种系统,包括:
主机系统,其包括被配置为在休眠状态中操作的主机处理器和主机存储器;
WiFi系统,包括:
计算机可读存储器,其存储指令以控制WiFi系统的操作;
嵌入式处理器,其由计算机可读存储器中的指令配置;以及
嵌入式存储器,其被配置为用于存储在WiFi系统的操作期间可使用的代码和数据中的一者或两者,该嵌入式存储器包括驻留存储器部分和可分页存储器部分;以及
通信总线,其被配置为至少在嵌入式存储器和主机存储器之间提供数据通信;
其中,该指令配置嵌入式处理器以将页面从主机存储器抓取到可分页存储器部分中,而不将主机处理器从休眠状态唤醒。
2、根据条款1的系统,其中,WiFi系统包括片上WiFi系统,并且其中,计算机可读存储器、嵌入式处理器和嵌入式WiFi存储器是集成到芯片中的。
3、根据条款1-2的任一项的系统,其中,指令配置嵌入式处理器以使可分页存储器的空置部分断电。
4、根据条款1-4的任一项的系统,其中,指令配置嵌入式处理器以至少在满功率状态和较低功率状态中操作通信总线。
5、根据条款4的系统,其中,指令配置嵌入式处理器以通过向主机系统中的在操作期间比主机处理器消耗更低功率的额外处理器发送时钟请求信号,使通信总线在较低功率状态和满功率状态之间转变。
6、根据条款5的系统,其中,额外处理器被配置为在主机处理器正在休眠状态中操作时充当代理总线主控器,而不唤醒主机处理器。
7、根据条款1-6的任一项的系统,其中,主机系统包括功率管理器,并且其中,通信总线包括被配置为向主机系统的功率管理器发送直接投票的PCIe通信总线。
8、根据条款7的系统,其中,指令配置嵌入式处理器通过向主机系统的功率管理器发送来自PCIe通信总线的直接投票,从主机存储器抓取页面,而不将主机处理器从休眠状态唤醒。
9、一种方法,包括在一个或多个计算装置的控制下进行以下操作:
经由片上系统的嵌入式处理器,确定从包括主机存储器和被配置为在休眠状态中操作的主机处理器的主机系统的主机存储器抓取页面;
识别主机处理器正操作于休眠状态中;以及
响应于识别主机处理器正操作于休眠状态中,将页面从主机存储器抓取到片上系统的嵌入式存储器中,而不将主机处理器从休眠状态唤醒。
10、根据条款9的方法,其中,抓取页面包括操作通信总线以从主机存储器向片上系统的嵌入式存储器中传输页面。
11、根据条款10的方法,其中,操作通信总线包括使通信总线从低功率状态转变到满功率状态。
12、根据条款11的方法,其中,使通信总线转变包括向主机系统中在操作期间比主机处理器消耗更低功率的额外处理器发送时钟请求信号,其中,额外处理器被配置为在主机处理器正在休眠状态中操作时,充当代理总线主控器而不唤醒主机处理器。
13、根据条款10-12的任一项的方法,其中,主机系统包括功率管理器,并且其中,通信总线包括被配置为向主机系统的功率管理器发送直接投票的PCIe通信总线,其中,从主机存储器抓取页面而不将主机处理器从休眠状态唤醒包括从PCIe通信总线向主机系统的功率管理器发送直接投票。
14、一种片上系统,包括:
计算机可读存储器,其存储指令以控制系统的操作;
嵌入式处理器,其由计算机可读存储器中的指令配置;以及
嵌入式存储器,其被配置为存储在系统的操作期间可使用的代码和数据中的一者或两者,该嵌入式存储器包括驻留存储器部分和可分页存储器部分;
其中,指令配置嵌入式处理器以经由通信总线在可分页存储器部分和片上系统外部的主机系统的辅助存储器之间传输页面,而不唤醒与辅助存储器相关联的主机处理器。
15、根据条款14的片上系统,其中,指令配置嵌入式处理器以执行以下操作:
至少在满功率状态和较低功率状态中操作通信总线;以及
通过向主机系统中在操作期间比主机处理器消耗更低功率的额外处理器发送时钟请求信号,使通信总线在较低功率状态和满功率状态之间转变,其中,额外处理器被配置为在主机处理器正在休眠状态中操作时,充当代理总线主控器而不唤醒主机处理器。
16、根据条款14-15的任一项的片上系统,其中,主机系统包括功率管理器,其中,通信总线包括被配置为向主机系统的功率管理器发送直接投票的PCIe通信总线,并且其中,指令配置嵌入式处理器以通过从PCIe通信总线向主机系统的功率管理器发送直接投票而从主机存储器抓取页面,而不将主机处理器从休眠状态唤醒。
17、根据条款14-17的任一项的片上系统,其中,芯片包括片上系统,其中,芯片包括单个半导体材料的晶片,并且其中,嵌入式处理器和嵌入式存储器是形成为半导体材料中的电子组件的。
18、根据条款14-17的任一项的片上系统,其中,指令配置嵌入式处理器以使可分页存储器的空置部分断电。
19、根据条款18的片上系统,其中指令配置嵌入式处理器以执行以下操作:
响应于识别系统操作期间需要页面,将页面从辅助存储器抓取到可分页存储器部分中;以及
响应于确定不再需要页面,从可分页存储器驱逐页面。
20、一种设备,包括:
主机系统,其包括被配置为在休眠状态中操作的主机处理器和主机存储器;
片上系统,包括:
计算机可读存储器,其存储指令以控制片上系统的操作;
嵌入式处理器,其由计算机可读存储器中的指令配置;以及
嵌入式存储器,其被配置为用于存储在片上系统操作期间可使用的页面;以及
通信信道,其被配置为至少在片上系统的嵌入式存储器和主机存储器之间提供数据通信;
其中,指令配置嵌入式处理器以在嵌入式存储器和主机存储器之间传输页面而不将主机处理器从休眠状态唤醒。
21、根据条款20的系统,其中,芯片包括片上系统,其中,芯片包括单个半导体材料的晶片,并且其中,嵌入式处理器和嵌入式存储器是形成为半导体材料中的电子组件的。
22、根据条款21的系统,其中,片上系统包括WiFi系统。
23、根据条款20-22的任一项的系统,其中,嵌入式存储器包括驻留存储器部分和可分页存储器部分,其中,指令配置嵌入式处理器以使可分页存储器的空置部分断电。
24、根据条款23的系统,其中,指令配置嵌入式处理器以执行以下操作:
响应于识别在系统操作期间需要页面,将页面从辅助存储器抓取到可分页存储器部分中;以及
响应于确定不再需要页面,从可分页存储器驱逐页面。
25、根据条款20-24的任一项的系统,其中,指令配置嵌入式处理器以至少在满功率状态和较低功率状态中操作通信总线。
26、根据条款25的系统,其中,指令配置嵌入式处理器以通过向主机系统中在操作期间比主机处理器消耗更低功率的额外处理器发送时钟请求信号,使通信总线在较低功率状态和满功率状态之间转变。
27、根据条款26的系统,其中,在主机处理器正在休眠状态中操作时,额外处理器被配置为充当代理总线主控器,而不唤醒主机处理器。
28、根据条款20-27的任一项的系统,其中,主机系统包括功率管理器,并且其中,通信总线包括被配置为向主机系统的功率管理器发送直接投票的PCIe通信总线。
29、根据条款28的系统,其中,指令配置嵌入式处理器以通过向主机系统的功率管理器发送来自PCIe通信总线的直接投票,从主机存储器抓取页面,而不将主机处理器从休眠状态唤醒。
30、根据条款29的系统,其中,指令配置嵌入式处理器以经由PCIe通信总线直接存取主机存储器中的页面。
31、一种系统,包括:
主机系统,其包括主机存储器和被配置为在活动模式和待机模式中操作的主机处理器,其中,相比于在活动模式中,主机处理器在操作于待机模式中时消耗更低功率;以及
WiFi系统,包括:
计算机可读存储器,其存储指令以控制WiFi系统的操作;
嵌入式存储器,其被配置为用于存储在WiFi系统的操作期间可使用的代码和数据中的一者或两者,该嵌入式存储器包括驻留存储器部分和可分页存储器部分;以及
嵌入式处理器,其由计算机可读存储器中的指令配置,该指令配置嵌入式处理器以响应于确定主机处理器正操作于待机模式中,使可分页存储器的未映射部分断电。
32、根据条款31的系统,其中,WiFi系统包括WiFi片上系统,并且其中,计算机可读存储器、嵌入式处理器和嵌入式WiFi存储器是集成到芯片中的。
33、根据条款31-32的任一项的系统,其中,指令配置嵌入式处理器以将页面从主机存储器抓取到可分页存储器部分中,而不将主机处理器从待机模式唤醒。
34、根据条款31-33的任一项的系统,其中,指令配置嵌入式处理器以执行以下操作:
在主机处理器正操作于待机模式中时,继续使可分页存储器的任何新的未映射部分断电;
在主机处理器正操作于待机模式中时,向驻留存储器提供功率;以及
在主机处理器恢复在活动模式中操作时,向驻留存储器和整个可分页存储器提供功率。
35、根据条款31-34的任一项的系统,其中,在主机处理器正操作于待机模式中时,指令配置嵌入式处理器以执行以下操作:
识别针对不在可分页存储器中的被请求页面的页面错误状况;以及
从主机存储器抓取页面。
36、根据条款35的系统,其中,在主机处理器正操作于待机模式中时,指令配置嵌入式处理器以执行以下操作:
对可分页存储器的一部分加电以存储页面;
执行与页面相关的过程;以及
响应于结束过程以及确定针对页面已过去最近最少使用(LRU)超时时间,执行以下操作:
从可分页存储器驱逐页面,以及
使可分页存储器的部分断电。
37、根据条款36的系统,其中,指令配置嵌入式处理器以至少部分地基于硬件页面表中条目的周期性无效,确定针对页面已经过去LRU超时时间。
38、根据条款37的系统,其中,WiFi系统包括硬件页面表。
39、一种方法,包括在一个或多个计算设备的控制下进行以下操作:
在片上系统的嵌入式处理器和主机系统之间建立通信,该片上系统和该主机系统在设备之内协作操作,该片上系统包括嵌入式处理器和包括可分页存储器的嵌入式存储器,该主机系统包括主机存储器和被配置为至少在待机模式中操作的主机处理器;
经由片上系统,识别主机处理器正操作于待机模式中;以及
响应于识别主机处理器正操作于待机模式中,使可分页存储器的未映射部分断电。
40、根据条款39的方法,还包括驱逐先前存储于可分页存储器的部分中的页面。
41、根据条款39-40的任一项的方法,还包括允许先前存储于可分页存储器的部分中的页面的数据或代码由于使可分页存储器的部分断电而丢失。
42、根据条款39-41的任一项的方法,还包括:
经由嵌入式处理器,确定要从具有在待机模式中操作的主机处理器的主机系统的主机存储器抓取页面;以及
将页面从主机存储器抓取到片上系统的嵌入式存储器中,而不将主机处理器从休眠状态唤醒。
43、根据条款39-42的任一项的方法,还包括:
在主机处理器正操作于待机模式中的同时,使可分页存储器的任何未映射部分断电;
接收主机处理器已经恢复在活动模式中进行操作的指示;以及
响应于接收到指示,向整个可分页存储器提供功率。
44、根据条款39-43的任一项的方法,还包括:
针对不在可分页存储器中的被请求页面,识别页面错误状况;以及
从主机存储器抓取页面。
45、根据条款44的方法,其中,抓取页面还包括:
对可分页存储器中对应于页面的数据大小的一部分加电;以及
在可分页存储器的部分中存储页面。
46、根据条款45的方法,还包括:
执行与页面相关的过程;
结束过程;
确定针对页面已经过去最近最少使用(LRU)超时时间;以及
响应于结束以及确定已经过去LRU超时时间,执行以下操作:
从可分页存储器驱逐页面,以及
使可分页存储器的部分断电。
47、根据条款46的方法,还包括至少部分地基于硬件页面表中条目的周期性无效,针对页面确定已经过去LRU超时时间。
48、一种片上系统,包括:
计算机可读存储器,其存储指令以控制系统的操作;
嵌入式存储器,其被配置为存储在系统操作期间可使用的代码和数据中的一者或两者,该嵌入式存储器包括驻留存储器部分和可分页存储器部分;以及
嵌入式处理器,其由计算机可读存储器中的指令配置以执行以下操作:
经由通信总线确定片上系统外部的主机系统的主机处理器是否正操作于待机模式或活动模式中,以及
响应于确定主机处理器正操作于待机模式中,使可分页存储器的未用部分断电。
49、根据条款48的片上系统,其中,响应于确定主机处理器正操作于待机模式中,指令配置嵌入式处理器以维持向驻留存储器部分的功率。
50、根据条款48-49的任一项的片上系统,其中,指令配置嵌入式处理器以执行以下操作:
确定要从具有操作于待机模式中的主机处理器的主机系统的主机存储器抓取页面;以及
将页面从主机系统的主机存储器复制到可分页存储器中,而不将主机处理器从休眠状态唤醒。
51、根据条款48-50的任一项的片上系统,其中,指令配置嵌入式处理器以执行以下操作:
识别针对不在可分页存储器中的被请求页面的页面错误状况;以及
从主机系统的主机存储器抓取页面。
52、根据条款51的片上系统,其中,为了抓取页面,指令配置嵌入式处理器以执行以下操作:
对可分页存储器中对应于页面的数据大小的一部分加电;以及
在可分页存储器的部分中存储页面。
53、根据条款52的片上系统,其中,指令配置嵌入式处理器以执行以下操作:
执行与页面相关的过程;
结束过程;
针对页面确定已过去最近最少使用(LRU)超时时间;
从可分页存储器驱逐页面;以及
使可分页存储器的部分断电。
54、根据条款53的片上系统,其中,指令配置嵌入式处理器以至少部分地基于硬件页面表中条目的周期性无效,针对页面确定已过去LRU超时时间。
55、一种设备,包括:
主机系统,其包括被配置为在休眠状态中操作的主机处理器和主机存储器;
片上系统,其包括:
计算机可读存储器,其存储指令以控制片上系统的操作;
嵌入式处理器,其由计算机可读存储器中的指令配置;以及
嵌入式存储器,其被配置为用于存储在片上系统的操作期间可使用的页面;以及
通信信道,其被配置为至少在片上系统的嵌入式存储器和主机存储器之间提供数据通信;
其中,指令配置嵌入式处理器以响应于确定主机处理器正操作于待机模式中,使嵌入式存储器的未映射部分断电。
56、根据条款55的系统,其中,芯片包括片上系统,其中,芯片包括半导体材料的单个晶片,并且其中,嵌入式处理器和嵌入式存储器是形成为半导体材料中的电子组件的。
57、根据条款56的系统,其中,片上系统包括WiFi系统。
58、根据条款55-57的任一项的系统,其中,嵌入式存储器包括驻留存储器和可分页存储器,其中,指令配置嵌入式处理器以执行以下操作:
在主机处理器正操作于待机模式中时,使可分页存储器的空置部分断电;以及
在主机处理器正操作于待机模式中时,维持向驻留存储器部分的功率。
59、根据条款58的系统,其中,指令配置嵌入式处理器以执行以下操作:
响应于识别在系统操作期间需要页面,将页面从主机存储器抓取到可分页存储器中,其中,抓取页面包括对可分页存储器中对应于页面的数据大小的一部分加电;以及
响应于确定不再需要页面,从可分页存储器驱逐页面,其中,驱逐页面包括使可分页存储器的部分断电。
60、根据条款59的系统,片上系统包括硬件页面表,其中,指令配置嵌入式处理器以在检测到与页面相关联的最近最少使用(LRU)超时时间之后,从可分页存储器驱逐页面,其中,检测LRU超时时间包括周期性地使硬件页面表的条目无效。
61、一种系统,包括:
主机系统,其包括主机存储器和被配置为在活动模式和待机模式中操作的主机处理器,相比于在活动模式中,该主机处理器在操作于待机模式中时消耗更低功率;
WiFi系统,包括:
计算机可读存储器,其存储指令以控制WiFi系统的操作;
嵌入式存储器,其被配置为用于存储在WiFi系统的操作期间可使用的代码和数据中的一者或两者;以及
嵌入式处理器,其由计算机可读存储器中的指令配置,以在主机处理器正操作于待机模式中时,执行以下操作:
识别响应于对不在嵌入式存储器中的页面的请求的页面错误;
使用机器学习转变概率模型,识别预测在页面之后门限量的时间之内被请求的预测的页面;
作为单个批次从主机存储器抓取页面并预抓取所预测的页面,以及
在嵌入式存储器中存储页面和所预测的页面;以及
通信总线,其被配置为在主机存储器和嵌入式存储器之间至少传输页面和所预测的页面。
62、根据条款61的系统,其中,WiFi系统包括WiFi片上系统,并且其中,计算机可读存储器、嵌入式存储器和嵌入式处理器是集成到芯片中的。
63、根据条款61-62的任一项的系统,其中,机器学习转变概率模型包括基于历史页面使用数据生成的页面转变概率的集合。
64、根据条款63的系统,其中,WiFi系统被配置为在主机处理器正操作于待机模式中时,基于WiFi系统使用的页面,记录历史页面使用数据。
65、根据条款64的系统,其中,主机系统和WiFi系统中的一者被配置为在主机处理器正操作于活动模式中时,使用历史页面使用数据,训练机器学习转变概率模型。
66、根据条款63-65的任一项的系统,其中,历史页面使用数据代表在与不同WiFi系统相关联的不同主机处理器正操作于待机模式中时,由不同WiFi系统使用的页面,其中,远程计算设备被配置为基于历史页面使用数据,训练机器学习转变概率模型,并且其中,WiFi系统通过网络接收机器学习转变概率模型。
67、根据条款66的系统,其中,WiFi系统被配置为基于在主机处理器正操作于待机模式中时由WiFi系统使用的页面,记录额外的历史页面使用数据,并且其中,主机系统和WiFi系统中的一者被配置为在主机处理器正操作于活动模式中时,使用额外的历史页面使用数据,重新训练机器学习转变概率模型。
68、根据条款63-67的任一项的系统,其中,页面转变概率集合是基于历史页面使用数据的马尔科夫模型分析生成的。
69、根据条款61-68的任一项的系统,其中,指令配置嵌入式处理器以从主机存储器向嵌入式存储器中抓取页面和所预测的页面,而不将主机处理器从待机模式唤醒。
70、根据条款61-69的任一项的系统,其中,指令配置嵌入式处理器以执行以下操作:
确定使用页面和所预测的页面的过程已经完成;
从嵌入式存储器驱逐页面和所预测的页面;以及
使对先前用于存储页面和所预测的页面的嵌入式存储器的一部分断电。
71、一种方法,包括在一个或多个计算设备的控制下进行以下操作:
在片上系统的嵌入式处理器和主机系统之间建立通信,该片上系统和该主机系统在设备之内协作操作,该片上系统包括嵌入式处理器和包括可分页存储器的嵌入式存储器,该主机系统包括主机存储器和被配置为至少在待机模式中操作的主机处理器;
经由片上系统识别主机处理器正操作于待机模式中;以及
响应于识别主机处理器正操作于待机模式中,执行以下操作:
识别对不在嵌入式存储器中的页面的请求;
使用机器学习转变概率模型,识别预测在页面之后门限量的时间之内被请求的预测的页面;
从主机存储器抓取页面并一起预抓取所预测的页面;以及
在嵌入式存储器中存储页面和所预测的页面。
72、根据条款71的方法,还包括将机器学习转变概率模型生成为页面转变概率集合,页面转变概率集合的页面转变概率中的至少一个页面转变概率代表在第一页面之后门限量的时间之内请求所预测的页面的概率。
73、根据条款72的方法,其中,门限量的时间为一毫秒,方法还包括基于概率是至少90%来识别所预测的页面。
74、根据条款72-73的任一项的方法,还包括基于向历史页面使用数据应用马尔科夫模型来生成页面转变概率集合。
75、根据条款74的方法,还包括基于在主机处理器正操作于待机模式中时由片上系统使用的页面,来记录历史页面使用数据。
76、根据条款75的方法,其中,主机系统和WiFi系统中的一者被配置为在主机处理器正操作于活动模式中时,使用历史页面使用数据,训练机器学习转变概率模型,相比于在待机模式中,该主机处理器在操作于活动模式中时消耗较大功率。
77、根据条款71-76的任一项的方法,还包括响应于识别主机处理器正操作于待机模式中,执行以下操作:
驱逐先前存储于可分页存储器中的页面;
识别响应于对页面的请求的页面错误;以及
识别响应于识别页面错误的所预测的页面。
78、一种片上系统,包括:
计算机可读存储器,其存储指令以控制系统的操作;
嵌入式存储器,其被配置为用于存储在系统操作期间可使用的代码和数据中的一者或两者,嵌入式存储器包括驻留存储器部分和可分页存储器部分;以及
嵌入式处理器,其由计算机可读存储器中的指令配置,以执行以下操作:
经由通信总线确定片上系统外部的主机系统的主机处理器是否正操作于待机模式中或是活动模式中;以及
响应于确定主机处理器正操作于待机模式中,在请求至少一个预测的页面以由在片上系统上运行的程序使用之前,从主机系统的主机存储器向可分页存储器部分中预抓取至少一个预测的页面。
79、根据条款78的片上系统,其中,为了预抓取至少一个预测的页面,由计算机可读存储器中的指令配置嵌入式处理器以执行以下操作:
识别响应于对不在嵌入式存储器中的页面的请求的页面错误;
使用机器学习转变概率模型,将至少一个预测的页面识别为预测在页面之后门限量的时间之内被请求;
作为单个批次从主机存储器抓取页面并预抓取至少一个所预测的页面;以及
在可分页存储器部分中存储页面和至少一个所预测的页面。
80、根据条款78-79的任一项的片上系统,其中,为了预抓取至少一个预测的页面,由计算机可读存储器中的指令配置嵌入式处理器,以执行以下操作:
识别包括至少一个预测的页面的待机模式页面集合;以及
从主机存储器预抓取待机模式页面集合;以及
在可分页存储器部分中存储待机模式页面集合。
81、根据条款80的片上系统,其中,嵌入式处理器由计算机可读存储器中的指令配置以在主机处理器操作于待机模式的情况下开始待机模式操作之前,从主机存储器预抓取待机模式页面集合。
82、根据条款80-81的任一项的片上系统,其中,计算机可读存储器和驻留存储器中的一者被配置为维持包括待机模式页面集合的索引的数据库,该索引是基于代表主机处理器正操作于待机模式中的同时,由片上系统使用的页面的历史页面使用数据的机器学习分析而生成的。
83、根据条款80-82的任一项的片上系统,其中,响应于确定主机处理器正操作于待机模式中,指令配置嵌入式处理器以维持向驻留存储器部分的功率,维持向可分页存储器的任何使用部分的功率,并使可分页存储器部分的任何未用部分断电。
84、根据条款83的片上系统,其中,指令配置嵌入式处理器以至少部分地通过选择足够的页面以填充可分页存储器的使用部分中的任意存储体来识别待机模式页面集合。
85、根据条款78-84的任一项的片上系统,其中,指令配置嵌入式处理器以将至少一个预测的页面从主机存储器预抓取到可分页存储器部分中,而不将主机处理器从待机模式唤醒。
86、一种设备,包括:
主机系统,其包括被配置为在休眠状态中操作的主机处理器和主机存储器;
片上系统,包括:
计算机可读存储器,其存储指令以控制片上系统的操作;
嵌入式存储器,其被配置为存储在片上系统的操作期间可使用的页面;以及
嵌入式处理器,其由计算机可读存储器中的指令配置,以响应于确定主机处理器正操作于休眠状态中,在请求预测的页面以由在片上系统上运行的程序使用之前,将预测的页面从主机存储器预抓取到嵌入式存储器中;以及
通信信道,其被配置为至少在片上系统的嵌入式存储器和主机存储器之间提供数据通信。
87、根据条款86的设备,其中,芯片包括片上系统,其中,芯片包括半导体材料的单个晶片,并且其中,嵌入式处理器和嵌入式存储器是形成为半导体材料中的电子组件的。
88、根据条款87的设备,其中,片上系统包括WiFi系统。
89、根据条款86-88的任一项的设备,其中,为了预抓取所预测的页面,由计算机可读存储器中的指令配置嵌入式处理器以执行以下操作:
识别响应于对不在嵌入式存储器中的页面的请求的页面错误;
使用机器学习转变概率模型,将预测的页面识别为预测在页面之后门限量的时间之内被请求;
作为单个批次从主机存储器抓取页面并预抓取至少一个所预测的页面;以及
在嵌入式存储器中存储页面和至少一个所预测的页面。
90、根据条款86-89的任一项的设备,其中,为了预抓取所预测的页面,由计算机可读存储器中的指令配置嵌入式处理器以执行以下操作:
识别包括至少一个预测的页面的待机模式页面集合;以及
从主机存储器预抓取待机模式页面集合;以及
在嵌入式存储器中存储待机模式页面集合。
91、根据条款90的设备,其中,片上系统被配置为维护包括待机模式页面集合的索引的数据库,索引是基于代表在主机处理器正操作于休眠状态中的同时,由片上系统使用的页面的历史页面使用数据的机器学习分析而生成的。
术语
在以上描述中,可能已经结合各个术语使用了附图标记。在结合附图标记使用术语的情况下,这可能意味着指在附图中的一个或多个附图中示出的特定元件。在不带附图标记使用术语的情况下,这可能通常意味着在不限于任何特定附图的情况下提及术语。
术语“确定”涵盖很宽范围的各种动作,并且因此,“确定”能够包括计算、运算、处理、推导、调差、查找(例如,在表格、数据库或另一数据结构中查找)、确认等。而且,“确定”能够包括接收(例如,接收信息)、存取(例如,存取存储器中的数据)等。而且,“确定”能够包括解析、选择、挑选、建立等。
短语“基于”不意味着“仅基于”,除非另行明确指定。换言之,短语“基于”描述“仅基于”和“至少基于”两者。
如本文使用的,指代项目列表中的“至少一个”的短语是指那些项目的任意组合,包括单个成员。例如,“a、b或c中的至少一个”旨在覆盖:a、b、c,a-b,a-c,b-c和a-b-c。
上文描述的方法的各种操作可以由能够执行操作的任何适当单元执行,例如各种硬件和/或软件组件、电路和/或模块。通常,图中所示的任何操作都可以由能够执行操作的对应功能模块执行。
可以利用被设计为执行本文所述功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列信号(FPGA)或其它可编程逻辑器件(PLD)、分立门或晶体管逻辑、分立硬件组件或其任意组合,来实现或执行结合本公开内容所述的各种说明性逻辑方块、模块和电路。通用处理器可以是微处理器或任何商业可用的处理器、控制器、微控制器或状态机。处理器也可以实现为计算设备的组合(例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器结合DSP内核或任何其它这样的配置)。
在一个或多个方面中,描述的功能可以在硬件、软件、固件或其任意组合中实现。如果在软件中实现,该功能可以作为计算机可读介质上的一个或多个指令或代码来存储或传输。
本文所述的功能可以在处理器可读或计算机可读介质上作为一个或多个指令存储。术语“计算机可读介质”是指能够由计算机或处理器存取的任何可用介质。以示例而非限制的方式,这样的介质可以包括RAM、ROM、EEPROM、闪速存储器、CD-ROM或其它光盘存储器、磁盘存储器或其它磁存储设备,或能够用于以指令或数据结构的形式存储期望的程序代码并能够由计算机或处理器存取的任何其它介质。如本文使用的,磁盘或光盘包括压缩光盘(CD)、激光光盘、光盘、数字多功能光盘(DVD)、软盘和 光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光以光学方式再现数据。应当指出,计算机可读介质可以是有形和非临时性的。术语“计算机程序产品”是指计算设备或处理器结合代码或指令(例如,“程序”),该代码或指令可以由计算设备或处理器执行、处理或计算。如本文使用的,术语“代码”可以指可由计算设备或处理器执行的软件、指令、代码或数据。
软件或指令也可以通过传输介质发送。例如,如果使用同轴电缆、光纤光缆、双绞线、数字用户线(DSL)或诸如红外线、无线电和微波的无线技术从网站、服务器或其它远程源传输软件,那么同轴电缆、光纤光缆、双绞线、DSL或诸如红外线、无线电和微波的无线技术包括在传输介质的定义中。
本文公开的方法包括用于实现所述方法的一个或多个步骤或动作。可以彼此交换方法步骤和/或动作而不脱离权利要求的范围。换言之,除非描述的方法的正常操作需要步骤或动作的具体次序,否则可以修改特定步骤和/或动作的次序和/或用途而不脱离权利要求的范围。
应当理解,权利要求不限于上文说明的精确配置和组件。可以在本文所述的系统、方法和装置的布置、操作和细节方面做出各种修改、改变和变化而不脱离权利要求的范围。
Claims (31)
1.一种系统,包括:
主机系统,其包括主机存储器和被配置为在活动模式和待机模式中操作的主机处理器,相比于在所述活动模式中,所述主机处理器在操作于所述待机模式中时消耗更低功率;
WiFi系统,包括:
计算机可读存储器,其存储指令以控制所述WiFi系统的操作;
嵌入式存储器,其被配置为用于存储在所述WiFi系统的操作期间可使用的代码和数据中的一者或两者;以及
嵌入式处理器,其由所述计算机可读存储器中的所述指令配置,以在所述主机处理器正操作于所述待机模式中时执行以下操作:
识别响应于对不在所述嵌入式存储器中的页面的请求的页面错误;
使用机器学习转变概率模型,识别预测在所述页面之后的门限量的时间之内被请求的预测的页面;
作为单个批次从所述主机存储器抓取所述页面并预抓取所预测的页面,以及
在所述嵌入式存储器中存储所述页面和所预测的页面;以及
通信总线,其被配置为在所述主机存储器和所述嵌入式存储器之间至少传输所述页面和所预测的页面。
2.根据权利要求1所述的系统,其中,所述WiFi系统包括WiFi片上系统,并且其中,所述计算机可读存储器、所述嵌入式存储器和所述嵌入式处理器是集成到所述芯片中的。
3.根据权利要求1所述的系统,其中,所述机器学习转变概率模型包括基于历史页面使用数据生成的页面转变概率集合。
4.根据权利要求3所述的系统,其中,所述WiFi系统被配置为在所述主机处理器正操作于所述待机模式中时,基于由所述WiFi系统使用的页面,来记录历史页面使用数据。
5.根据权利要求4所述的系统,其中,所述主机系统和所述WiFi系统中的一者被配置为在所述主机处理器正操作于所述活动模式中时,使用所述历史页面使用数据,训练所述机器学习转变概率模型。
6.根据权利要求3所述的系统,其中,所述历史页面使用数据代表在与不同WiFi系统相关联的不同主机处理器正操作于所述待机模式中时,由所述不同WiFi系统使用的页面,其中,远程计算设备被配置为基于所述历史页面使用数据,训练所述机器学习转变概率模型,并且其中,所述WiFi系统通过网络接收所述机器学习转变概率模型。
7.根据权利要求6所述的系统,其中,所述WiFi系统被配置为基于在所述主机处理器正操作于所述待机模式中时,由所述WiFi系统使用的页面,来记录额外的历史页面使用数据,并且其中,所述主机系统和所述WiFi系统中的一者被配置为在所述主机处理器正操作于所述活动模式中时,使用所述额外的历史页面使用数据,重新训练所述机器学习转变概率模型。
8.根据权利要求3所述的系统,其中,所述页面转变概率集合是基于所述历史页面使用数据的马尔科夫模型分析生成的。
9.根据权利要求1所述的系统,其中,所述指令配置所述嵌入式处理器以将所述页面和所述预测的页面从所述主机存储器抓取到所述嵌入式存储器中,而不将所述主机处理器从所述待机模式唤醒。
10.根据权利要求1所述的系统,其中,所述指令配置所述嵌入式处理器以执行以下操作:
确定使用所述页面和所预测的页面的过程已经完成;
从所述嵌入式存储器驱逐所述页面和所预测的页面;以及
使先前用于存储所述页面和所预测的页面的所述嵌入式存储器的一部分断电。
11.一种方法,包括在一个或多个计算设备的控制下进行以下操作:
在片上系统的嵌入式处理器和主机系统之间建立通信,所述片上系统和所述主机系统在设备之内协作操作,所述片上系统包括嵌入式处理器和包括可分页存储器的嵌入式存储器,所述主机系统包括主机存储器和被配置为至少在待机模式中操作的主机处理器;
经由所述片上系统识别所述主机处理器正操作于所述待机模式中;以及
响应于识别所述主机处理器正操作于所述待机模式中,执行以下操作:
识别对不在所述嵌入式存储器中的页面的请求;
使用机器学习转变概率模型识别预测在所述页面之后的门限量的时间之内被请求的预测的页面;
从所述主机存储器抓取所述页面并一起预抓取所述预测的页面;以及
在所述嵌入式存储器中存储所述页面和所述预测的页面。
12.根据权利要求11所述的方法,还包括将所述机器学习转变概率模型生成为页面转变概率集合,所述页面转变概率集合中的页面转变概率中的至少一个页面转变概率代表在所述第一页面之后的门限量的时间之内请求所述预测的页面的概率。
13.根据权利要求12所述的方法,其中,所述门限量的时间为一毫秒,所述方法还包括基于至少为90%的所述概率,识别所述预测的页面。
14.根据权利要求12所述的方法,还包括基于向历史页面使用数据应用马尔科夫模型,生成所述页面转变概率集合。
15.根据权利要求14所述的方法,还包括基于在所述主机处理器正操作于所述待机模式中时,由所述片上系统使用的页面,记录所述历史页面使用数据。
16.根据权利要求15所述的方法,其中,所述主机系统和所述WiFi系统中的一者被配置为在所述主机处理器正操作于活动模式中时,使用所述历史页面使用数据,训练所述机器学习转变概率模型,相比于在所述待机模式中,所述主机处理器在操作于所述活动模式中时消耗较多功率。
17.根据权利要求11所述的方法,还包括响应于识别所述主机处理器正操作于所述待机模式中,执行以下操作:
驱逐先前存储于所述可分页存储器中的页面;
识别响应于对所述页面的所述请求的页面错误;以及
识别响应于识别所述页面错误的所述预测的页面。
18.一种片上系统,包括:
计算机可读存储器,其存储指令以控制所述系统的操作;
嵌入式存储器,其被配置为用于存储在所述系统的操作期间可使用的代码和数据中的一者或两者,所述嵌入式存储器包括驻留存储器部分和可分页存储器部分;以及
嵌入式处理器,其由所述计算机可读存储器中的指令配置,以执行以下操作:
经由通信总线,确定所述片上系统外部的主机系统的主机处理器是否正操作于待机模式或者活动模式中;以及
响应于确定所述主机处理器正操作于所述待机模式中,在请求至少一个预测的页面以由在所述片上系统上运行的程序使用之前,将所述至少一个预测的页面从所述主机系统的主机存储器预抓取到所述可分页存储器部分中。
19.根据权利要求18所述的片上系统,其中,为了预抓取所述至少一个预测的页面,所述嵌入式处理器由所述计算机可读存储器中的所述指令配置以执行以下操作:
识别响应于对不在所述嵌入式存储器中的页面的请求的页面错误;
使用机器学习转变概率模型,识别作为预测在所述页面之后门限量的时间之内请求的所述至少一个预测的页面;
作为单个批次从所述主机存储器抓取所述页面并预抓取所述至少一个预测的页面;以及
在所述可分页存储器部分中存储所述页面和所述至少一个预测的页面。
20.根据权利要求18所述的片上系统,其中,为了预抓取所述至少一个预测的页面,所述嵌入式处理器由所述计算机可读存储器中的所述指令配置以执行以下操作:
识别包括所述至少一个预测的页面的待机模式页面集合;以及
从所述主机存储器预抓取所述待机模式页面集合;以及
在所述可分页存储器部分中存储所述待机模式页面集合。
21.根据权利要求20所述的片上系统,其中,所述嵌入式处理器由所述计算机可读存储器中的所述指令配置以在所述主机处理器操作于所述待机模式的情况下开始待机模式操作之前,从所述主机存储器预抓取所述待机模式页面集合。
22.根据权利要求20所述的片上系统,其中,所述计算机可读存储器和所述驻留存储器中的一者被配置为维持包括所述待机模式页面集合的索引的数据库,所述索引是基于代表所述主机处理器正操作于所述待机模式中的同时,由所述片上系统使用的页面的历史页面使用数据的机器学习分析而生成的。
23.根据权利要求20所述的片上系统,其中,响应于确定所述主机处理器正操作于所述待机模式中,所述指令配置所述嵌入式处理器以维持向所述驻留存储器部分的功率,维持向所述可分页存储器的任何使用部分的功率,并使所述可分页存储器部分的任何未用部分断电。
24.根据权利要求23所述的片上系统,其中,所述指令配置所述嵌入式处理器以至少部分地通过选择足够的页面以填充所述可分页存储器的所述使用部分中的任意存储体来识别所述待机模式页面集合。
25.根据权利要求18所述的片上系统,其中,所述指令配置所述嵌入式处理器以将所述至少一个预测的页面从所述主机存储器预抓取到所述可分页存储器部分中,而不将所述主机处理器从所述待机模式唤醒。
26.一种设备,包括:
主机系统,其包括被配置为在休眠状态中操作的主机处理器和主机存储器;
片上系统,包括:
计算机可读存储器,其存储指令以控制所述片上系统的操作;
嵌入式存储器,其被配置为用于存储在所述片上系统的操作期间可使用的页面;以及
嵌入式处理器,其由所述计算机可读存储器中的所述指令配置,以响应于确定所述主机处理器正操作于所述休眠状态中,在请求预测的页面以由在所述片上系统上运行的程序使用之前,将所述预测的页面从所述主机存储器预抓取到所述嵌入式存储器中;以及
通信信道,其被配置为至少在所述片上系统的所述嵌入式存储器和所述主机存储器之间提供数据通信。
27.根据权利要求26所述的设备,其中,芯片包括所述片上系统,其中,所述芯片包括半导体材料的单个晶片,并且其中,所述嵌入式处理器和所述嵌入式存储器是形成为所述半导体材料中的电子组件的。
28.根据权利要求27所述的设备,其中,所述片上系统包括WiFi系统。
29.根据权利要求26所述的设备,其中,为了预抓取所述预测的页面,所述嵌入式处理器由所述计算机可读存储器中的所述指令配置以执行以下操作:
识别响应于对不在所述嵌入式存储器中的页面的请求的页面错误;
使用机器学习转变概率模型,识别作为预测在所述页面之后门限量的时间之内请求的所述预测的页面;
作为单个批次从所述主机存储器抓取所述页面并预抓取所述至少一个预测的页面;以及
在所述嵌入式存储器中存储所述页面和所述至少一个预测的页面。
30.根据权利要求26所述的设备,其中,为了预抓取所述预测的页面,所述嵌入式处理器由所述计算机可读存储器中的所述指令配置以执行以下操作:
识别包括所述至少一个预测的页面的待机模式页面集合;以及
从所述主机存储器预抓取所述待机模式页面集合;以及
在所述嵌入式存储器中存储所述待机模式页面集合。
31.根据权利要求30所述的设备,其中,所述片上系统被配置为维持包括所述待机模式页面集合的索引的数据库,所述索引是基于代表所述主机处理器正操作于所述休眠模式中的同时,由所述片上系统使用的页面的历史页面使用数据的机器学习分析而生成的。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662427107P | 2016-11-28 | 2016-11-28 | |
US62/427,107 | 2016-11-28 | ||
US15/799,601 US20180150125A1 (en) | 2016-11-28 | 2017-10-31 | Wifi memory power minimization |
US15/799,601 | 2017-10-31 | ||
PCT/US2017/059574 WO2018097942A1 (en) | 2016-11-28 | 2017-11-01 | Wifi memory power minimization |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109983805A true CN109983805A (zh) | 2019-07-05 |
CN109983805B CN109983805B (zh) | 2022-03-25 |
Family
ID=62190078
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780072488.0A Active CN110024449B (zh) | 2016-11-28 | 2017-11-01 | Wifi存储器功率最小化 |
CN201780072465.XA Active CN109997388B (zh) | 2016-11-28 | 2017-11-01 | Wifi存储器功率最小化 |
CN201780072487.6A Active CN109983805B (zh) | 2016-11-28 | 2017-11-01 | Wifi存储器功率最小化 |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780072488.0A Active CN110024449B (zh) | 2016-11-28 | 2017-11-01 | Wifi存储器功率最小化 |
CN201780072465.XA Active CN109997388B (zh) | 2016-11-28 | 2017-11-01 | Wifi存储器功率最小化 |
Country Status (4)
Country | Link |
---|---|
US (3) | US10539996B2 (zh) |
CN (3) | CN110024449B (zh) |
TW (3) | TW201828743A (zh) |
WO (3) | WO2018097941A1 (zh) |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10539996B2 (en) | 2016-11-28 | 2020-01-21 | Qualcomm Incorporated | WiFi memory power minimization |
CN110413545B (zh) * | 2018-04-28 | 2023-06-20 | 伊姆西Ip控股有限责任公司 | 存储管理方法、电子设备和计算机程序产品 |
US10509762B2 (en) * | 2018-04-30 | 2019-12-17 | Intel IP Corporation | Data rate-adaptive data transfer between modems and host platforms |
CN109151782B (zh) * | 2018-08-14 | 2020-12-22 | 深圳市沃特沃德股份有限公司 | 基于智能家居设备的wifi信号中继方法及系统 |
US10942562B2 (en) | 2018-09-28 | 2021-03-09 | Intel Corporation | Methods and apparatus to manage operation of variable-state computing devices using artificial intelligence |
CN109766229B (zh) * | 2018-12-05 | 2022-02-11 | 华东师范大学 | 一种面向综合电子系统的异常检测方法 |
US10838869B1 (en) * | 2018-12-11 | 2020-11-17 | Amazon Technologies, Inc. | Predictive prefetch of a memory page |
WO2020153934A1 (en) * | 2019-01-21 | 2020-07-30 | Hewlett-Packard Development Company, L.P. | Fault prediction model training with audio data |
US10838870B2 (en) * | 2019-04-17 | 2020-11-17 | EMC IP Holding Company LLC | Aggregated write and caching operations based on predicted patterns of data transfer operations |
DE102019112084A1 (de) * | 2019-05-09 | 2020-11-12 | Miele & Cie. Kg | Haushaltsgerät |
US10925001B2 (en) * | 2019-05-09 | 2021-02-16 | Cisco Technology, Inc. | Machine learning-based target wake time negotiation optimization for wireless networks |
US11073894B2 (en) * | 2019-05-24 | 2021-07-27 | Qualcomm Incorporated | System power management for peripheral component interconnect express (PCIE)-based devices |
GB2586279B (en) * | 2019-08-16 | 2022-11-23 | Siemens Ind Software Inc | Routing messages in a integrated circuit chip device |
US20210133990A1 (en) * | 2019-11-05 | 2021-05-06 | Nvidia Corporation | Image aligning neural network |
GB2590389A (en) * | 2019-12-16 | 2021-06-30 | Nokia Technologies Oy | Method and apparatus for control of memory banks |
KR20210079637A (ko) * | 2019-12-20 | 2021-06-30 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그 동작 방법 |
US11372585B2 (en) * | 2020-05-05 | 2022-06-28 | Micron Technology, Inc. | Asynchronous process topology in a memory device |
US11137823B1 (en) * | 2020-05-20 | 2021-10-05 | Western Digital Technologies, Inc. | Systems and methods for power management in a data storage device |
US11543996B2 (en) | 2020-05-20 | 2023-01-03 | Western Digital Technologies, Inc. | Systems and methods for power management in a data storage device |
CN113810346A (zh) * | 2020-06-16 | 2021-12-17 | 中兴通讯股份有限公司 | 加速引擎、数据报文传输系统、设备、方法和存储介质 |
CN112947996B (zh) * | 2021-05-14 | 2021-08-27 | 南京芯驰半导体科技有限公司 | 基于虚拟映射的片外非易失性存储器动态装载系统及方法 |
US11860788B2 (en) * | 2021-09-08 | 2024-01-02 | Red Hat, Inc. | Prefetching data in a distributed storage system |
US12040914B2 (en) | 2021-12-31 | 2024-07-16 | Samsung Electronics Co., Ltd. | System and method for detecting network services based on network traffic using machine learning |
JP2024014337A (ja) * | 2022-07-22 | 2024-02-01 | キオクシア株式会社 | メモリシステム |
WO2024119505A1 (zh) * | 2022-12-09 | 2024-06-13 | Oppo广东移动通信有限公司 | 通信方法及通信装置 |
US20240211409A1 (en) * | 2022-12-21 | 2024-06-27 | International Business Machines Corporation | Dynamic management of larger pages during runtime |
CN115664600B (zh) * | 2022-12-22 | 2023-03-21 | 广州市天奕信息技术股份有限公司 | 一种基于数据分析的数据远程交互检测管控系统 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040068627A1 (en) * | 2002-10-04 | 2004-04-08 | Stuart Sechrest | Methods and mechanisms for proactive memory management |
CN1729462A (zh) * | 2002-12-24 | 2006-02-01 | 英特尔公司 | 用于确定动态随机存取存储器页面管理实现的方法和装置 |
US20070294496A1 (en) * | 2006-06-19 | 2007-12-20 | Texas Instruments Incorporated | Methods, apparatus, and systems for secure demand paging and other paging operations for processor devices |
CN101576918A (zh) * | 2009-06-19 | 2009-11-11 | 用友软件股份有限公司 | 具备负载均衡功能的数据缓存系统 |
CN102736988A (zh) * | 2011-04-12 | 2012-10-17 | 索尼公司 | 存储器管理装置、存储器管理方法和控制程序 |
CN103049387A (zh) * | 2012-12-06 | 2013-04-17 | 深圳市江波龙电子有限公司 | 一种分页存储器件的压缩管理方法及装置 |
CN104662583A (zh) * | 2012-09-10 | 2015-05-27 | 高通股份有限公司 | 用于避免页面错误的gpu存储缓冲器预提取和预备份信令 |
US20160124490A1 (en) * | 2014-10-30 | 2016-05-05 | Intel Corporation | Dynamically Controlling Power Management Of An On-Die Memory Of A Processor |
US20160259732A1 (en) * | 2015-03-04 | 2016-09-08 | Cavium, Inc. | Managing reuse information for memory pages |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6055603A (en) * | 1997-09-18 | 2000-04-25 | Emc Corporation | Method and apparatus for performing pre-request operations in a cached disk array storage system |
US8346971B2 (en) * | 1999-05-04 | 2013-01-01 | At&T Intellectual Property I, Lp | Data transfer, synchronising applications, and low latency networks |
US7073099B1 (en) * | 2002-05-30 | 2006-07-04 | Marvell International Ltd. | Method and apparatus for improving memory operation and yield |
US7065659B2 (en) | 2002-06-28 | 2006-06-20 | Microsoft Corporation | Power management architecture for defining component power states under a global power state and maintaining a power state floor for a specified component if a power state for the specified component under a new global power state is below the power state floor |
US20070006000A1 (en) | 2005-06-30 | 2007-01-04 | Sandeep Jain | Using fine-grained power management of physical system memory to improve system sleep |
US7849334B2 (en) * | 2006-09-29 | 2010-12-07 | Intel Coporation | Transitioning a computing platform to a low power system state |
US7757039B2 (en) * | 2007-09-18 | 2010-07-13 | Nikos Kaburlasos | DRAM selective self refresh |
US9146892B2 (en) * | 2007-10-11 | 2015-09-29 | Broadcom Corporation | Method and system for improving PCI-E L1 ASPM exit latency |
KR20100032504A (ko) * | 2008-09-18 | 2010-03-26 | 삼성전자주식회사 | 공유 버스를 갖는 불휘발성 메모리와 멀티포트 반도체 메모리 장치를 채용한 멀티 프로세서 시스템 |
KR20100041309A (ko) * | 2008-10-14 | 2010-04-22 | 삼성전자주식회사 | 각 프로세서들의 어플리케이션 기능을 모두 활용 가능한 멀티 프로세서 시스템 |
US8751843B2 (en) * | 2008-12-16 | 2014-06-10 | The Regents Of The University Of Michigan | Computer energy conservation with a scalable PSU configuration |
US7930519B2 (en) * | 2008-12-17 | 2011-04-19 | Advanced Micro Devices, Inc. | Processor with coprocessor interfacing functional unit for forwarding result from coprocessor to retirement unit |
US8799692B2 (en) * | 2009-09-23 | 2014-08-05 | Broadcom Corporation | Method and system for no buffered traffic indication for wireless local area network (WLAN) power save |
US8321703B2 (en) | 2009-12-12 | 2012-11-27 | Microsoft Corporation | Power aware memory allocation |
US8589667B2 (en) * | 2010-04-19 | 2013-11-19 | Apple Inc. | Booting and configuring a subsystem securely from non-local storage |
US9003171B2 (en) | 2010-06-23 | 2015-04-07 | Apple Inc. | Page fault prediction for processing vector instructions |
CN102779120B (zh) * | 2011-05-09 | 2014-12-10 | 北京百度网讯科技有限公司 | 确定站点的领域信息以及相关性判定方法、系统及设备 |
US9052899B2 (en) * | 2011-08-10 | 2015-06-09 | Intel Corporation | Idle power reduction for memory subsystems |
US8230247B2 (en) * | 2011-12-30 | 2012-07-24 | Intel Corporation | Transferring architectural functions of a processor to a platform control hub responsive to the processor entering a deep sleep state |
RU2633112C2 (ru) * | 2012-05-15 | 2017-10-11 | ЭлДжи ЭЛЕКТРОНИКС ИНК. | Способ и устройство для сканирования с пониженным потреблением мощности в системе wlan |
US9585091B2 (en) * | 2012-08-17 | 2017-02-28 | Qualcomm Incorporated | Systems and methods for low power wake up signal and operations for WLAN |
CN103874186B (zh) * | 2012-12-18 | 2017-11-17 | 华为技术有限公司 | 高速专用物理控制信道的功率控制方法及设备 |
US9396070B2 (en) * | 2014-09-11 | 2016-07-19 | Qualcomm Incorporated | System and method for system-on-a-chip subsystem external access detection and recovery |
US20160091957A1 (en) * | 2014-09-26 | 2016-03-31 | Suketu R. Partiwala | Power management for memory accesses in a system-on-chip |
JP6444264B2 (ja) * | 2015-05-29 | 2018-12-26 | キヤノン株式会社 | 通信装置、制御方法及びプログラム |
US10114440B2 (en) | 2016-06-22 | 2018-10-30 | Razer (Asia-Pacific) Pte. Ltd. | Applying power management based on a target time |
US9946325B2 (en) * | 2016-06-30 | 2018-04-17 | Intel IP Corporation | Interprocessor power state transitions |
US10282292B2 (en) | 2016-10-17 | 2019-05-07 | Advanced Micro Devices, Inc. | Cluster-based migration in a multi-level memory hierarchy |
US10539996B2 (en) | 2016-11-28 | 2020-01-21 | Qualcomm Incorporated | WiFi memory power minimization |
-
2017
- 2017-10-31 US US15/798,778 patent/US10539996B2/en active Active
- 2017-10-31 US US15/799,601 patent/US20180150125A1/en not_active Abandoned
- 2017-10-31 US US15/799,481 patent/US20180150124A1/en not_active Abandoned
- 2017-11-01 CN CN201780072488.0A patent/CN110024449B/zh active Active
- 2017-11-01 WO PCT/US2017/059568 patent/WO2018097941A1/en active Application Filing
- 2017-11-01 WO PCT/US2017/059563 patent/WO2018097940A1/en active Application Filing
- 2017-11-01 CN CN201780072465.XA patent/CN109997388B/zh active Active
- 2017-11-01 WO PCT/US2017/059574 patent/WO2018097942A1/en active Application Filing
- 2017-11-01 CN CN201780072487.6A patent/CN109983805B/zh active Active
- 2017-11-27 TW TW106141128A patent/TW201828743A/zh unknown
- 2017-11-28 TW TW106141285A patent/TW201820153A/zh unknown
- 2017-11-28 TW TW106141281A patent/TW201826134A/zh unknown
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040068627A1 (en) * | 2002-10-04 | 2004-04-08 | Stuart Sechrest | Methods and mechanisms for proactive memory management |
CN1729462A (zh) * | 2002-12-24 | 2006-02-01 | 英特尔公司 | 用于确定动态随机存取存储器页面管理实现的方法和装置 |
US20070294496A1 (en) * | 2006-06-19 | 2007-12-20 | Texas Instruments Incorporated | Methods, apparatus, and systems for secure demand paging and other paging operations for processor devices |
CN101576918A (zh) * | 2009-06-19 | 2009-11-11 | 用友软件股份有限公司 | 具备负载均衡功能的数据缓存系统 |
CN102736988A (zh) * | 2011-04-12 | 2012-10-17 | 索尼公司 | 存储器管理装置、存储器管理方法和控制程序 |
CN104662583A (zh) * | 2012-09-10 | 2015-05-27 | 高通股份有限公司 | 用于避免页面错误的gpu存储缓冲器预提取和预备份信令 |
CN103049387A (zh) * | 2012-12-06 | 2013-04-17 | 深圳市江波龙电子有限公司 | 一种分页存储器件的压缩管理方法及装置 |
US20160124490A1 (en) * | 2014-10-30 | 2016-05-05 | Intel Corporation | Dynamically Controlling Power Management Of An On-Die Memory Of A Processor |
US20160259732A1 (en) * | 2015-03-04 | 2016-09-08 | Cavium, Inc. | Managing reuse information for memory pages |
Non-Patent Citations (1)
Title |
---|
M.A.FRANKLIN AND R.L.GUPTA: "Computation of page fault probability from program transition diagram", 《COMMUNICATIONGS OF THE ACM》 * |
Also Published As
Publication number | Publication date |
---|---|
CN110024449B (zh) | 2022-05-13 |
TW201820153A (zh) | 2018-06-01 |
CN109997388B (zh) | 2022-05-13 |
WO2018097940A1 (en) | 2018-05-31 |
US10539996B2 (en) | 2020-01-21 |
WO2018097942A1 (en) | 2018-05-31 |
WO2018097941A1 (en) | 2018-05-31 |
CN110024449A (zh) | 2019-07-16 |
US20180150124A1 (en) | 2018-05-31 |
CN109997388A (zh) | 2019-07-09 |
US20180150125A1 (en) | 2018-05-31 |
TW201828743A (zh) | 2018-08-01 |
US20180150123A1 (en) | 2018-05-31 |
TW201826134A (zh) | 2018-07-16 |
CN109983805B (zh) | 2022-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109983805A (zh) | Wifi存储器功率最小化 | |
US8286014B2 (en) | Power management for a system on a chip (SoC) | |
CN102869077B (zh) | 基于ZigBee协议的无线传感网络的数据采集传输方法 | |
CN102273166A (zh) | 用于执行目标动作的唤醒触发器 | |
CN101686474B (zh) | 无线蜂窝网络中的移动台实现小区快速选择方法 | |
TW202034216A (zh) | 用於預測系統回應的聚合隨機方法 | |
CA2644962A1 (en) | Resource allocation and outage control for renewable energy wlan infrastructure mesh node | |
Chatterjee et al. | Dynamic and adaptive data caching mechanism for virtualization within sensor-cloud | |
CN107820611A (zh) | 事件处理系统调页 | |
CN110045809A (zh) | 信息处理方法、装置、计算机设备和计算机可读存储介质 | |
Lim et al. | Power-aware optimal checkpoint intervals for mobile consumer devices | |
CN110574014A (zh) | 节能的高速缓存存储器使用 | |
CN109076454A (zh) | 使能波束扫描传输的接收的方法和设备 | |
Sigrist et al. | Harvesting-aware optimal communication scheme for infrastructure-less sensing | |
CN106471433A (zh) | 用于支持到存储器的常通路径的超低功率架构 | |
Jiang et al. | Cooperative caching in fog radio access networks: A graph‐based approach | |
CN109992375B (zh) | 信息处理方法、装置、计算机设备和计算机可读存储介质 | |
CN110018905A (zh) | 信息处理方法、装置、计算机设备和计算机可读存储介质 | |
Jeon et al. | Harvnet: resource-optimized operation of multi-exit deep neural networks on energy harvesting devices | |
CN109547945A (zh) | 无线局域网的通信方法、装置、接入点设备和站点设备 | |
CN108305024A (zh) | 一种物流跟踪方法、物流业务平台和终端 | |
CN104812036B (zh) | 一种能量获取传感器网络的休眠调度方法和系统 | |
Huaifeng et al. | Context aware sensornet | |
CN106547517B (zh) | 一种控制等待时间的方法及装置 | |
Wang | Design of minimizing expected energy of multisource wireless cooperative network based on multiobjective optimization |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |