CN108647046A - 用于控制执行流程的设备和方法 - Google Patents

用于控制执行流程的设备和方法 Download PDF

Info

Publication number
CN108647046A
CN108647046A CN201810440040.6A CN201810440040A CN108647046A CN 108647046 A CN108647046 A CN 108647046A CN 201810440040 A CN201810440040 A CN 201810440040A CN 108647046 A CN108647046 A CN 108647046A
Authority
CN
China
Prior art keywords
instruction
core
processor core
page
lower power
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
Application number
CN201810440040.6A
Other languages
English (en)
Other versions
CN108647046B (zh
Inventor
E.塔米尔
B-Z.弗里伊德曼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Priority to CN201810440040.6A priority Critical patent/CN108647046B/zh
Publication of CN108647046A publication Critical patent/CN108647046A/zh
Application granted granted Critical
Publication of CN108647046B publication Critical patent/CN108647046B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/329Power saving characterised by the action undertaken by task scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3293Power saving characterised by the action undertaken by switching to a less power-consuming processor, e.g. sub-CPU
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3814Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Power Sources (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Advance Control (AREA)

Abstract

本发明的名称是用于控制执行流程的设备和方法。各种实施例一般涉及用于在更高功能核与更低功率核之间的协作以最小化在指令的当前执行流程中中断的影响的技术。设备可包括:包括第一指令流水线的更低功率核,更低功率核停止在第一指令流水线中的第一执行流程,并且在第一指令流水线中执行处理程序例程的指令,以执行处理中断的第一任务;以及包括第二指令流水线的更高功能核,更高功能核在第一任务的执行后,在第二指令流水线中调度处理中断的第二任务的指令的执行在第二指令流水线中的第二执行流程后进行,第一任务比第二任务更加时间敏感。本文也描述和主张了其它实施例。

Description

用于控制执行流程的设备和方法
本申请是申请号为201510838847.1、申请日为2015年11月26日、发明名称为“用于在非对称处理器核之间的协作式执行的技术”的发明专利申请的分案申请。
技术领域
本公开涉及用于在非对称处理器核之间的协作式执行的技术。
背景技术
在计算装置内采用包含一个或更多个相对高功能核的处理器组件,这已变得很常见。此类更高功能核可包含许多处理特征以形成相对深的流水线,其中,多个可执行指令可同时处在执行的各种级。作为确保进入流水线以供执行的随后可执行指令在需要时更容易从此类高速缓存内可用于核的一部分,此类更高功能核也可包含和/或耦合到一个或更多个相对大的高速缓存以加快数据和可执行指令的检索和存储。此类更高功能核可还通过相对成熟形式的分支预测,采用相对成熟的指令预取算法,以增大在高速缓存内可用的可执行指令包括要执行的随后可执行指令的可能性。然而,由于诸如硬件中断和例外等要求指令的当前执行流程更改的事件,对高功能处理器核的体系结构的许多此类添加和改进可能完全消除。
发明内容
按照本公开第一方面的一种控制执行流程的设备,包括:处理器组件的更低功率核,更低功率核包括第一指令流水线,并且更低功率核停止在第一指令流水线中的第一执行流程,并且在第一指令流水线中执行处理程序例程的指令,以执行处理中断的第一任务;以及处理器组件的更高功能核,更高功能核包括第二指令流水线,并且更高功能核在第一任务的执行后,调度在第二指令流水线中处理中断的第二任务的指令的执行在第二指令流水线中的第二执行流程后进行,第一任务比第二任务更加时间敏感。
按照本公开第二方面的一种用于控制执行流程的计算机实现的方法,包括:响应中断,停止在处理器组件的更低功率核的第一指令流水线中的第一执行流程;响应中断,由更低功率核检索处理程序例程的地址;在第一指令流水线中执行处理程序例程的指令以执行处理中断的第一任务;以及在由更低功率核执行第一任务后,由处理器组件的更高功能核调度在更高功能核的第二指令流水线中处理中断的第二任务的指令的执行在第二指令流水线中的第二执行流程后进行,第一任务比第二任务更加时间敏感。
按照本公开第三方面的一种控制执行流程的设备,包括:处理器组件的更低功率核,更低功率核包括第一指令流水线,并且更低功率核停止在第一指令流水线中的第一执行流程,并且在第一指令流水线中执行页面故障处理程序例程的指令,以执行处理页面故障的第一任务;以及处理器组件的更高功能核,更高功能核包括第二指令流水线,并且更高功能核在第二指令流水线中执行来自更高速存储装置的应用程序例程的指令,并且响应要由更高功能核执行的应用程序例程的指令的下一页面在更低速存储装置中而不是在更高速存储装置中的存储,提供页面故障的指示到更低功率核。
按照本公开第四方面的一种设备,包括用于执行上述方法的部件。
按照本公开第五方面的至少一种存储指令的机器可读存储介质,指令在由计算装置执行时使得计算装置执行上述方法。
按照本公开第六方面的一种用于控制执行流程的计算机实现的设备,包括:用于响应中断,停止在处理器组件的更低功率核的第一指令流水线中的第一执行流程的部件;用于响应中断,由更低功率核检索处理程序例程的地址的部件;用于在第一指令流水线中执行处理程序例程的指令以执行处理中断的第一任务的部件;以及用于在由更低功率核执行第一任务后,由处理器组件的更高功能核调度在更高功能核的第二指令流水线中处理中断的第二任务的指令的执行在第二指令流水线中的第二执行流程后进行的部件,第一任务比第二任务更加时间敏感。
附图说明
图1示出处理系统的一示例实施例。
图2示出在处理器组件的核之间中断的处理的示例分布。
图3A、3B和3C一起示出处理与经网络接收数据相关联的硬件中断的一示例实施例。
图4A、4B、4C、4D和4E一起示出处理页面故障和与从存储装置接收页面相关联的硬件中断的示例实施例。
图5和6每个示出根据一实施例的逻辑流程。
图7示出根据一实施例的处理体系结构。
具体实施方式
各种实施例一般涉及用于在处理器组件的更高功能核与更低功率核之间的协作以最小化在指令的当前执行流程中中断的影响的技术。为清晰起见,考虑到在各种不同计算体系结构中属于字词“中断”的不同含意,术语“中断”在本文中使用时表示由耦合到处理器组件的硬件组件生成的硬件中断和由处理器组件本身的内部逻辑生成的例外,包括至少页面故障。至少一些中断涉及可具有比更高功能核更简单体系结构的更低功率核,包括比更高功能核更小的高速缓存和/或复杂性更低的指令流水线。更低功率核可执行与收到中断相关联的处理程序例程的指令,以执行一个或更多个相对时间敏感的任务和/或要求频繁接入非有序地址位置的任务。此类任务可涉及移动相对小量的数据,与硬件组件的状态和/或控制寄存器的交互和/或协议转换。在这种情况下,更低功率核可汇集或不汇集属于更大量的数据的分开的更小量的数据的列表,和/或可确定那些更小量的数据将被引导到的目的地。在一些实施例中,在此类任务执行后,更低功率核可向更高功能核发送信号,信号带有与一个或更多个收到中断相关联的另外任务将由更高功能核执行的指示。在其它实施例中,更低功率核可以某种方式使更高功能核执行另外任务需要的信息可用,该方式允许更高功能核在由更高功能核在其通常调度的任务之间进行的轮询期间定位该信息。要由更高功能核执行的此类另外任务可以不像更低功率核执行的那些任务一样对时间敏感,使得更高功能处理器核可能能够在执行部分的操作系统和/或部分的一个或更多个应用程序例程中在任务的其正常调度中包括另外的任务。
更低功率核和更高功能核可作为匹配对均包含到单个处理组件中。在一些实施例中,处理器组件可以允许在各种时间使用更低功率核和更高功能核做任意之一或两者的方式构建架构,而由处理器组件执行的操作系统、装置驱动器和/或应用程序例程在任何给定时间不知道这两个核的哪个(些)核在执行每个的指令。然而,在其它实施例中,引导使用哪个核的可能是操作系统本身,或者可甚至引导使用两个核。在一些实施例中,更高功能核和更低功率核可具有执行实质相同的指令集的能力。然而,在其它实施例中,在更低功率核与更高功能核每个执行的指令集之间可存在一定程度的不同。例如,更高功能核可具有高数指令和/或更低功率核不支持的其它特定指令。操作系统、装置驱动器和/或特定应用程序例程可知道这两个核的存在和/或当前在操作一个或另一个核以及知道在每个核支持的指令集中的不同。在每个这些实施例中,操作系统赋予处理器组件访问可存储用于操作系统、装置驱动器和/或特定应用程序例程的可执行指令的地址的各种范围的许可可同样适用于这两个核。因此,更低功率核和更高功能核任意之一可能能够访问相同的存储指令和/或相同的存储数据。更低功率核和更高功能核可在其之间采用多种类型的通信的任何通信,以确保在执行指令中在其之间的相干性。
更低功率核可包含比更高功能核更小的高速缓存和/或比可具乱序执行能力的更高功能核带有更少级的更简单指令流水线。因此,甚至在更低功率核可具有与更高功能核执行实质上相同指令集的能力的实施例中,更低功率核的此类执行可以更低速率消耗电功率,并且处在更低速度。然而,通过更小的高速缓存和/或更简单的指令流水线,在执行当前执行流程的指令时由中断造成的效率损耗不如对更高功能核一样大。处理器组件可配置成在各个模式中操作,包括只操作更低功率核和更高功率核的一个或另一个核的模式。在此类模式期间,可从未操作的这两个核之一取消电功率和/或处理器时钟信号,以降低功耗和/或控制处理器组件消散的热量。然而,处理器组件也可配置成在可同时操作这两个核的模式中操作。此外,处理器组件可基于对处理资源的当前需求,在这些模式外的两个模式之间交换。在更低功率核和更高功能核执行实质上相同指令集的实施例中,处理器组件可在此类模式之间自动实现更改而不涉及操作系统或装置驱动器。然而,在其它实施例中,在此类模式之间的更改可在操作系统的引导下进行,操作系统可被认为对于监视在选择要更改的模式和/或何时进行此类更改方面可能需要考虑在内的因素具有更佳能力。
例如,在操作更高功能核,但对更高功能核的处理资源有着相对低的需求时,可将处理器组件交换(在处理组件的控制下或在操作系统的控制下)到停止操作更高功能核并且操作更低功率核以代替更高功能核来执行操作系统、装置驱动器和应用程序例程的指令的模式。以后,在对处理资源的需求增大,达到更低功率核不能支持的级别时,则可将处理器组件交换到再次操作更高功能核的模式。此外,更高功能核的此类操作可以是除继续操作更低功率核外,通过两个核协作,以更低功率核接收中断的执行,并且至少执行与那些中断相关联的时间敏感的任务的方式处理中断。
作为更低功率核和更高功能核协作处理中断的示例,源于网络接口控制器(NIC),指示数据的接收的中断的指示可被路由到更低功率核以便更低功率核至少在最初时处理。更低功率核可通过访问中断描述表(IDT)以确定与来自NIC的中断相关联的处理程序例程,开始中断的处理,并且随后可开始执行在该地址开始的处理程序的指令。在这种情况下,更低功率核可访问在网络分组缓冲器内由NIC在NIC和处理器组件均可访问的存储位置集存储的数据的一个或更多个收到的分组。更低功率核可检查一个或更多个分组的报头以检索进程、例程、线程或指令的其它类型的执行流程的标识符,并且可采用此类标识符的表格来确定作为一个或更多个分组内数据的预期目的地的执行流程。在更低功率核从网络分组缓冲器中存储的每个分组的报头检索此类标识符时,对于识别为目的地的每个不同执行流程,更低功率核可生成到网络分组缓冲器内目的地为该执行流程的分组的指针的链接列表。
在一些实施例中,在更低功率核确定用于目的地为特定执行流程的数据的足够分组的阈值已达到时,更低功率核可向更高功能核发送信号,信号带有数据已接收以供特定执行流程使用的指示,并且可为更高功能核提供对用于那些分组的链接列表的访问权,以及提供哪个执行流程是链接列表中指向的分组的目的地。响应指示,在执行与网络栈相关联的一部分操作系统中,更高功能核随后可使用链接列表从链接列表指向的一个或更多个收到分组提取数据,并且可在与该执行流程相关联的数据缓冲器(例如,与应用程序例程相关联的数据缓冲器)内存储该数据。然而,在其它实施例中,按照预定计划,更高功率核可循环轮询由更低功率核为不同执行流程建立的分组的一个或更多个链接列表。在更高功能核确定用于目的地为特定执行流程的数据的足够分组的阈值已达到时,更高功能核随后可使用与该特定执行流程相关联的链接列表,从链接列表指向的一个或更多个分组中提取数据,并且可在与该执行流程相关联的缓冲器内存储该数据。
在一些实施例中,在执行与来自NIC的中断相关联的处理程序例程时,更低功率核可通过暂时禁用NIC发出其它中断的能力,限制其它中断的频率。此操作可防止由于接收更多分组而来自NIC的另一中断,更低功率核响应来自NIC的一个中断而执行的任务被中止。相反,更低功率核可暂时参与轮询NIC是否有接收更多分组的指示。在完成处理来自NIC的当前中断时,更低功率核可重新启用NIC发出中断的能力。在使用中断以获得事件的通知(例如,接收其它分组)和使用轮询进行此操作之间的此类切换或称为“半轮询”。
在作为处理中断的一部分,更低功率核向更高功能核发送信号以执行一个或更多个任务的实施例中,更高功能核的此类信令可通过多各h机制的任何机制进行。例如,可在了在核到核中断或消息传递功能性。此外,此类信令可由更高功能核以像中断的方式处理。例如,更高功能核可通过在要由更高功能核执行的可与处理任何中断完全无关的其它任务之间,调度要由更高功能核执行的处理程序有关的任务,响应更低功率核的此类信令。
通过一般性参照本文中使用的符号和术语,可根据在计算机或计算机网络上执行的程序过程,介绍随后的部分详细描述。这些过程描述和表示由本领域技术人员用于最有效地将其工作内容传达给本领域其它技术人员。过程在此处且一般被视为产生所需结果的自相一致的操作序列。这些操作是那些需要物理量的物理操控的操作。这些数量通常但不一定采用能够存储、传输、组合、比较及以其它方式操控的电、磁或光信号的形式。将这些信号称为比特、值、元件、符号、字符、项、数字或诸如此类证明有时是方便的,主要是常见用法的原因。但应注意的是,所有这些和类似的术语要与适当的物理量相关联,并且只是应用到那些量的方便标志。
此外,这些操控经常称为诸如添加或比较等术语,这些术语通常与操作人员执行的心理操作相关联。然而,在大多数情况下,在形成一个或更多个实施例的一部分的本文中所述的任何操作中,操作人员的此类能力不是必需或所希望的。相反,这些操作是机器操作。用于执行各种实施例的有用机制包括如通过在其内存储的根据本文中的教导编写的计算机程序选择性激活或配置的通用数字计算机,和/或包括为要求的目的而专门构建的设备。各种实施例也涉及用于执行这些操作的设备或系统。这此f设备可为要求的目的而专门构建,或者可包括通用计算机。用于多个这些机器的要求的结构将出现在给出的描述中。
现在参照图形,其中,类似的标号用于在通篇指类似的元件。在下面的描述中,为便于解释,陈述了许多细节以便提供其详尽理解。然而,可明白的是,实践新颖的实施例能够不需要这些特定细节。在其它情况下,熟知的结构和装置以框图形式示出以便有利于其描述。本发明要涵盖在权利要求的范围内的所有修改、等效物和备选。
图1示出包含存储装置60、远程装置90和计算装置500的一项或更多项的处理系统1000的一实施例的框图。计算装置500可经通过存储接口控制器565的耦联,与存储装置60交换数据块36形式的数据36,而计算装置500通过存储接口控制器565可控制存储装置60的操作。在各种实施例中,存储装置60可在计算装置500的外部,或者可包含到计算装置500中(如虚线所示)。备选或另外,计算装置500可通过使用多种协议的任何协议的网络接口控制器(NIC) 595,经网络999与远程装置90交换数据39,包括部分数据39在网络分组中交换的协议。
可操作计算装置500以执行一个或更多个应用程序例程740以执行多种任务的任何任务。每个应用程序例程740可以是多种类型的应用程序的任何应用程序,包括但不限于字处理程序、电子表格编辑器、CAD/CAM软件、网站浏览器、音频/视觉记录和/或播放软件、照片编辑器等。作为启用一个或更多个应用程序例程740的此类执行的一部分,也可操作计算装置500以执行操作系统340。操作系统340可以是提供操作环境以支持包括一个或更多个应用程序例程740等各种例程的执行的多种类型的操作系统的任何操作系统。可还操作计算装置500以执行一个或更多个装置驱动器,装置驱动器可扩展该操作环境的功能性以利用计算装置500的一个或更多个组件(例如,存储接口控制器565和/或NIC 595)和/或可耦合到计算装置500的一个或更多个其它装置(例如,存储装置60和/或远程装置90)。
更普遍地说,每个这些装置60、90和500可以是多种类型的计算装置的任何装置,包括但不限于台式计算机系统、数据录入终端、膝上型计算机、上网本计算机、平板计算机、手持式个人数据助理、智能电话、智能眼镜、智能腕表、数码摄像机、包含处理器组件的智能卡、包含到衣服中的体佩计算装置、集成到运载工具(例如,汽车、自行车、轮椅等)中的计算装置、服务器、服务器集群、服务器农场等。
如所示和讨论的一样,至少远程装置90和计算装置500可交换输送数据的信号,并且此类交换可通过网络999进行。然而,这些计算装置之一或两者也可经网络999与还有的其它计算装置(未示出)交换数据。在各种实施例中,至少网络999可以是可能限于在单个建筑物或其它相对有限区域内扩展的单个网络、可能扩展相当长距离的连接网络的组合,和/或可包括因特网。因此,至少网络999可基于多种通信技术(或其组合)的任何技术,信号可通过这些技术交换,包括但不限于采用电和光传导布线的有线技术和采用红外、射频或其它形式的无线传送的无线技术。
在各种实施例中,计算装置500可包含处理器组件550、存储装置560、控制520、中断路由器555、显示器580、将计算装置500耦合到存储装置60的存储控制器565及将计算装置500耦合到网络的NIC 595的一项或更多项。处理器组件550可包含更高功能核551和更低功率核552的一项或更多项。由存储位置的地址范围组成的部分存储装置560可被指定为系统上下文360和一个或更多个用户上下文760。在系统上下文360内,可存储操作系统340、页面表335、页面缓冲器366、网络队列缓冲器369、中断描述符表(IDT) 235、转换表266、流程表269、存储装置驱动器146、网络装置驱动器149、块缓冲器166及网络分组缓冲器169的一项或更多项。如图所示,操作系统340可包括模式控制器345。此外,虽然在一些实施例中,存储装置驱动器146和/或网络装置驱动器149可由与操作系统340的供应商不同的供应商提供,但根据它们交互的方式,存储装置驱动器146和/或网络装置驱动器149可被视为操作系统340的组件,如图所示。在一个或更多个用户上下文760的每个上下文内,可存储应用程序例程740和应用程序数据缓冲器730之一或两者。在应用程序数据缓冲器730内,可指定有在其内可存储至少部分数据36和/或39的副本的位置。
更高功能核551和更低功率核552可均具执行实质相同指令集的能力,由此允许核551和552任意之一或两者执行一个或更多个应用程序例程740、操作系统340和/或诸如存储装置驱动器146和/或网络装置驱动器149等装置驱动器任一项的指令。备选,可存在指令的子集,子集可由更高功能核551或更低功率核552之一执行,不能由另一核执行。如前面讨论的一样,处理器组件550可以允许在各种时间使用核551和核552任意之一或两者的方式构建架构,而诸如操作系统340等由可执行指令组成的例程在任何给定时间不知道核551和/或552的哪个核在执行指令。备选,装置驱动器、操作系统340的组件和/或应用程序例程740可在各种时间引导核551和552任意之一或两者的使用。同样地,赋予处理器组件550访问可存储可执行指令的地址的各种范围的许可可同样适用于核551和552,使得每个核551或552可以能够访问相同的存储指令和/或相同的存储数据。
更低功率核552可不具有与更高功能核551在处理资源方面提供同样多资源的能力,但更低功率核552可通过以比更高功能核551更低速率消耗电功率而具节省电功率的能力。操作系统340的模式控制器345可通过响应在计算装置500的操作期间由操作系统340和/或各种装置驱动器观测到的各种条件,使处理器组件550置于不止一个模式的任何模式中,利用在更低功率核552与更高功能核551之间的此类不同。在这些模式之间,可存在操作只操作更高功能核551以执行指令的模式、只操作更低功率核552以执行指令的模式和操作核551和552两者以执行指令的模式。
在一些实施例中,模式控制器345可监视对处理资源的需求的级别,并且可根据该级别动态地使处理器组件550置于多个模式的任何模式。例如,在对处理资源的需求降到能够由更低功率核552单独提供的级别的情况下,模式控制器345可使处理器组件550置于更低功率核552执行指令但更高功能核551不执行的模式中。此外,在对处理资源的需求上升到接近更低功率核552能够提供的上限的级别的情况下,模式控制器345可使处理器组件550置于更高功能核551和更低功率核552均以协作方式执行指令(包括与中断的处理相关联的指令)的模式中。
图2更详细示出其中更高功能核551和更低功率核552以此类协作方式执行指令的处理器组件550的模式的一示例实施例的方面。如图所示,更高功能核551和更低功率核552每个可分别包含指令流水线5511和5521。如本领域技术人员可认识到的一样,每个指令流水线5511和5521可包含指令执行逻辑的各种部分,每个部分完成执行由执行流程组成的一系列可执行指令的各种方面,如操作系统340的例程、应用程序例程740之一、装置驱动器等。还如图所示,更高功能核551和更低功率核552每个可分别包含高速缓存5512和5522。此外,核551和552可通过核内互连553链接,通过互连,一个核可向另一核发送信号,信号带有在其之间协调指令的执行需要的信息。如图进一步所示,存储接口控制器565和NIC 595每个可分别包含一个或更多个寄存器5651和5951,以控制功能性的各种方面和/或监视每个的状态。
在更高功能核551的指令流水线5511中,每个指令的执行可细分成由比在更低功率核552的指令流水线5521中执行逻辑的相应更大量的独特级执行的更大量的级。备选或另外,更高功能核551的指令流水线5511的每个级可比更低功率核552的指令流水线5521的每个级具有同时执行更大数量的指令的执行级的能力。此类能力可以是由于在更高功能核551内使用了更宽寄存器和/或在更高功能核551内提供了同时支持指令的执行的更多线程的能力。备选或另外,在更高功能核551内可存在多个指令流水线5511,并且更高功能核551内流水线指令5511的数量可大于在更低功率核552内流水线指令5521的数量(例如,可存在不止一个指令流水线5511与单个指令流水线5521)。作为另一备选,指令流水线5511可采用多种技术的任何技术以尝试尽可能多地保持参与执行指令的指令流水线5511的级,包括可采取分支的指令的推测执行和/或指令的乱序执行。
更高功能核551的高速缓存5512可以是能够比更低功率核552的高速缓存5522支持更多指令的预取和/或存储的更大高速缓存。高速缓存5512的高速缓存行可更宽,和/或可在高速缓存5512内比在高速缓存5522中存在更大数量的高速缓存行。备选或另外,可通过更高功能核551的高速缓存5512比通过更低功率核552的高速缓存5522采用更成熟的预取算法和/或组织体系结构。例如,更高功能核551可采用更成熟的分支预测算法,能够更准确地确定在更大的多种情况下要预取的指令。又如,高速缓存5512可以是16路集关联,而高速缓存5522可以是仅4路集关联。
由于此类差别,更高功能核551可更好地适应以某种方式执行多个例程,其中,调度每个那些例程的一个或更多个执行流程的执行,使得在从执行一个执行流程的指令到执行另一执行流程的指令的转变中存在较高程度的可预测性。此类更高可预测性可产生流水线的更佳利用,能够在任何给定时间执行“飞行中的”更多指令。此类更高可预测性也可允许更好地使用分支预测以选择要预取的指令,和/或可产生更大高速缓存的高速缓存行的更有效使用。因此,在操作核551和552两者以执行指令时,似乎希望由更高功能核551(如图所示)而不是由更低功率核552执行一个或更多个应用程序例程740的指令。
相应地,由于此类差别,对于响应中断的更不可预测发生而可能要求执行的处理程序例程,更低功率核552可更好地适应执行其至少更加时间敏感的部分。同样地,在本文中使用时,术语“中断”表示可由处理器组件550从其它硬件组件(例如,存储接口控制器565或NIC 595)接收的硬件中断和由处理器组件550的内部逻辑本身生成的包括页面故障的例外。消除使用有更少级的广度更小的流水线在任何给定时间进行“在飞行中的”更少指令的执行,这可降低由于因处理中断而从执行一个执行流程到执行另一执行流程的每次转变产生的效率低下。类似地,在更小高速缓存中的更少高速缓存行的逐出也可降低由于进行此类转变以处理中断而发生的由在高速缓存中存储的数据缺乏使用产生的效率低下。因此,在操作核552和551两者以执行指令时,似乎希望由更低功率核552(如图所示)而不是由更高功能核552执行操作系统340和/或装置驱动器的处理程序例程的至少更加时间敏感部分的指令。然而,处理程序例程的更易控制以便以更具计划性的方式执行的其它部分可由更高功能核551执行(也如图所示)。
作为在可操作核551和552的不同核以执行指令的各种模式的任何模式中允许处理器组件550的操作的一部分,模式控制器345可另外用于向中断路由器指示向核551和552任意之一和两者路由的中断。这可包括通过中断路由器555从诸如存储接口控制器565和NIC 595等计算装置500的硬件组件传递到处理器组件550的硬件中断。这也可包括在处理器组件550内内部生成的例外,如页面故障。例如,在处理器组件550已被模式控制器345置于操作核551或552之一以执行指令而不操作另一核的模式中时,模式控制器345可向中断路由器555发送信号,指示将所有中断路由到如此操作的核551或552的一个核。在处理器组件550已被模式控制器345置于操作核551和552两者以执行指令的模式中的其它时间,模式控制器345可向中断路由器555发送信号,指示将收到的所有中断路由到核551或552之一或另一核,或者以多种方式的任何方式在核551和552之间分布不同的中断。如前面讨论的一样,模式控制器345可基于对处理资源的需求的级别的更改,动态改变处理器组件550的当前模式和在核551和552之间分布中断的方式。
回到图1,如本领域技术人员可认识到的一样,操作系统340可将存储装置560的一部分定义为系统上下文360,在其内可通过访问许可的特定集,至少存储操作系统340的组件和/或由操作系统340保持的各种缓冲器/表格,访问许可至少限制一个或更多个应用程序例程740能够读取和/或修改操作系统340的那些组件和/或那些缓冲器/表格的程度。此外,操作系统340也可定义用户上下文760的一个单独上下文单独存储一个或更多个应用程序例程740的每个例程,每个用户上下文带有访问许可集,访问许可至少限制一个或更多个应用程序例程740每个可访问和/或修改彼此和/或由每个用户上下文(如果有不止一个用户上下文760)保持的数据的任何缓冲器/表格的程度。此类量度可被视为是限制可由有缺陷和/或恶意例程采取的不合需要的动作的范围所需的。
也如本领域技术人员可认识到的一样,操作系统340、一个或更多个应用程序例程740的每个例程及包括存储装置驱动器146和/或网络装置驱动器149的每个装置驱动器可例示,保持和/或利用一个或更多个缓冲器或表格支持每个执行的功能。一些此类缓冲器可允许在进程之间和/或在存储装置560内定义的分开的上下文之间(例如,在系统上下文360与一个或更多个用户上下文760之间,和/或如果有不止一个用户上下文,则在不同的用户上下文760之间)传递例程的数据和/或副本。此外,一些此类表格可提供单个位置,在该位置,地址和/或其它形式的索引可用于跟踪数据的各种碎片和/或各种例程的可执行指令集的状态和/或位置。作为示例,操作系统340可例示和保持IDT 235以将中断的标识符和可存储相关联处理程序例程的存储装置560内的地址相关。备选或另外,操作系统340或每个应用程序例程740可例示和/或保持一个或更多个用户上下文760的每个上下文内的应用程序数据缓冲器730,在用户上下文内,一个或更多个应用程序例程740的一个单独例程可存储为允许数据和/或指令传送到每个用户上下文760中或从中传送出的机制。
作为又一示例,操作系统340和/或存储装置驱动器146可实现一个或更多个缓冲器/表格以作为实现虚拟寻址方案的一部分,在该方案中,在需求驱动的基础上,可在一个或更多个更高速易失性存储组件(例如,至少一部分存储装置560的组件)与一个或更多个更低速非易失性存储装置(例如,存储装置60)之间传送(例如,“交换”)数据的页面和/或可执行指令。具体而言,操作系统340可例示和/或保持页面缓冲器366以在更高速易失性与更低速非易失性存储装置之间缓冲数据的页面和/或指令的传送。在支持采用至少存储装置60作为更低速非易失性存储装置中,存储装置驱动器146可例示和/或保持块缓冲器166,以缓冲与数据的页面和/或指令相关联的数据块和/或指令向和/或从存储装置60的存储和/或检索。操作系统340也可例示和/或保持页面表335,以将在更高速易失性存储装置内存储的数据的页面和/或指令的虚拟地址和该存储装置内其存储位置的物理地址相关。此外,在各种实施例中,操作系统340或存储装置驱动器146任一项可例示和/或保持转换表266以将在更低速非易失性存储装置内存储的数据的页面和/或指令的虚拟地址和该存储装置内存储那些页面的标识符相关。
作为又一示例,操作系统340和/或网络装置驱动器149可实现一个或更多个缓冲器/表格以作为实现网络栈的一部分,由此可经网络(例如,网络999)在计算装置500与一个或更多个其它装置之间交换数据和/或可执行指令。具体而言,操作系统340可例示和/或保持由地址的一个或更多个队列组成的网络队列缓冲器369,在这些地址,作为缓冲数据和/或指令通过网络999在计算装置500与另一装置之间的传送的一部分,可检索收到的分组。在一些实施例中,每个此类队列可实现为用于指向存储的分组的链接列表或多种其它类型的数据结构的任何结构。在支持至少采用网络接口控制器595作为到网络999的接口以实现此类传送中,网络装置驱动器149可例示和/或保持网络分组缓冲器169以缓冲经网络999向和/或从另一装置输送数据和/或指令的分组的传送和/或接收。此外,在各种实施例中,操作系统340或网络装置驱动器149任一项可例示和/或保持执行流程的标识符的流程表269以帮助将分组和组成操作系统340和/或一个或更多个应用程序例程740的可执行指令的执行流程相关。
图3A-3C一起示出在处理器组件550的核551和552之间在处理由经网络999接收来自远程装置90的数据39引起的中断中协作的示例实施例。如本领域技术人员可认识到的一样,通过网络传送的数据可先被细分成数据的多个更小碎片,每个碎片在分组中通过该网络单独传送,分组包括提供有关每个该分组的预期目的地装置的信息的报头。虽然可以某个顺序传送组成数据的分组,该顺序对应于将组合数据的那些更小碎片以在目的地重新形成数据的顺序,但可通过网络沿不同通路输送那些分组的不同分组,从而在目的地装置可乱序接收它们。因此,在此示例实施例中,可在不可预测的时间和以不可预测的顺序在NIC595接收输送数据39的碎片的分组,这可促使NIC 595在不可预测的时间生成不止一个硬件中断。如现在将解释的一样,处理器组件550的核551和552可协作以执行不同指令集,以有效最小化对操作系统340和/或一个或更多个应用程序例程740的执行流程的破坏的方式处理此类中断。
转到图3A,NIC 595可接收输送数据的碎片之一的分组之一,数据39在通过网络999传送前由远程装置90细分成碎片。响应接收分组,NIC 595可在网络分组缓冲器169内存储该分组的内容,并且可发出可由中断路由器555接收的中断(例如,硬件中断)。如本领域技术人员可认识到的一样,硬件中断的发出可要求交换在至少NIC 595与中断路由器555之间延伸的导电体上的电压电平,或者通过在其之间延伸的总线传送中断消息。在使用导电体的情况下,中断路由器555可在多个此类导电体上接收硬件中断,每个导电体可指定有标识符,该标识符变成中断本身的标识符,并且该标识符可和特定处理程序例程相关。在使用中断消息的情况下,消息本身可指定标识符。无论中断路由器555接收来自NIC 595的此中断的确切方式如何,中断路由器555可将中断发生的指示及中断的标识符的指示符传递到处理器组件550。
如已讨论的一样,模式控制器345可具有控制更高功能核551和更低功率核552哪个接收由处理器组件550接收的一些或所有中断的能力。同样地,模式控制器345可通过引导中断路由器555将各种中断分布到核551和552之一或另一个核或两者来进行此操作。在一些实施例中,中断路由器555可由多个导电体的一个导电体将中断路由到核551或552之一或另一个核,通过该导电体传递该中断。在其它实施例中,中断控制器555可将中断消息传送到处理器组件550,在消息中可指定核551或552的哪个核将接收该中断。模式控制器345可引导中断路由器555将收到的所有中断路由到更低功率核552,或者将特定中断路由到更低功率核552,同时将其它中断路由到更高功能核551。无论中断路由器555在核551和552之间路由中断的确切性质如何,在示例实施例中,由中断路由器555从NIC 595传递到处理器组件550的此中断由中断路由器555路由到更低功率核552。
响应通过中断路由器555接收来自NIC 595的此特定中断,更低功率核552可使用该中断的附带标识符,参照IDT 235以获得在与该标识符相关联的处理程序例程的存储装置560中的地址。同样地,IDT 235可以是将中断的标识符和与每个那些标识符相关联的处理程序例程的地址相关的表格。如图所示,可与此特定中断的标识符相关联的处理程序例程可以是组成网络装置驱动器149的可执行指令的一部分的处理程序例程1491。同样地,存储装置560可存储网络装置驱动器149,为操作系统340增强利用NIC 595的能力和/或添加其它形式的更普遍支持到操作系统340以便经网络与其它装置进行通信。在存储至少一部分的处理程序例程1491的存储装置560内检索地址时,更低功率核552可实现到该地址的跳,以开始执行处理程序例程1491的指令。
应注意的是,在计算装置500的一些实施例中,多个硬件组件可共享与来自NIC595的中断相关联的中断标识符。在采用导电体将中断从NIC 595输送到中断路由器555的情况下,该同一导电体可与也可使用该导电体将硬件中断输送到中断路由器555的计算装置500的一个或更多个其它硬件组件共享。因此,与来自NIC 595的此特定中断相关联的标识符可和多个处理程序例程的多个地址相关,那些处理程序例程的每个例程与不同硬件组件相关联。因此,虽然在与特定标识符相关联的特定导电体上硬件中断的接收可在一定程度上缩小该中断的可能来源,但某一形式的测试可需要进行以验证它是在该导电体上传送了硬件中断的指示的NIC 595,并且不是网络接口控制器595可与其共享该导电体的一个或更多个其它硬件组件。此类测试可要求执行组成与共享该导电体的多个硬件组件的每个硬件组件相关联的每个处理程序例程的一部分指令,其中,那些部分的每个部分包括要执行的测试。
在每个处理程序例程内的该测试可包括在与该硬件组件相关联的特定地址相关联硬件组件的寄存器的读取,以校验可指示该组件是否发出了硬件中断的比特值。因此,NIC 595的一个或更多个寄存器5951可在一个或更多个地址供更低功率核552访问,并且可包括能够由更低功率核552读取以确定NIC 595是否在它与一个或更多个其它硬件组件共享的该导电体上传送了硬件中断的指示的至少单个比特。因此,并且通过简单地再参照图2,更低功率核552可通过执行指令,指令执行有关NIC 595的此类测试,从而促使更低功率核552访问一个或更多个寄存器5951至少之一以确认经该导电体发出硬件中断的是NIC595,开始执行处理程序例程1491的指令。
转到图3B,在确认NIC 595发出了硬件中断时,更低功率核552可继续执行处理程序例程1491的指令,由此促使更低功率核552访问网络分组缓冲器169,以检查一个或更多个收到分组的报头,确定什么执行流程是计算装置500内那些分组的每个分组的内容的目的地。更具体地说,执行操作系统340和/或一个或更多个应用程序例程740的每个例程可要求在与操作系统340和/或一个或更多个应用程序例程740的每个例程相关联的一个或更多个执行流程中执行指令。在计算装置500与一个或更多个其它计算装置之间经网络进行的通信中可涉及的那些执行流程的至少一些执行流程可指派有标识符,并且那些标识符可列在流程表269内。
如果指派有此类标识符的执行流程将对数据或其它响应的请求经网络传送到另一装置,则该执行流程的标识符可包括在该请求中。因此,如果由NIC 595响应从计算装置500传送的请求而接收输送数据39的一个或更多个分组,则那些一个或更多个分组的报头可包括计算装置500内提出该请求的执行流程的标识符的指示。因此,作为确定引导一个或更多个收到分组的内容到目的地的一部分,更低功率核552可从一个或更多个分组的报头检索此类标识符的指示。更低功率核552随后可使用那些标识符以从流程表269检索哪个执行流程是分组的内容要引导到的目的地的指示。流程表269可将执行流程的标识符和那些标识符指派到的执行流程相关。在此示例实施例中,被识别为用于在网络分组缓冲器169内存储的分组的至少某个子集的目的地的执行流程可以是应用程序例程740之一的执行流程。
在更低功率核552由于执行处理程序例程1491的指令而促使其从报头检索执行流程的标识符,并且识别可将一个或更多个接收分组的数据引导到的一个或更多个执行流程时,更低功率核552可构建到因此与作为用于在网络分组缓冲器169内存储的分组至少之一的目的地的每个执行流程相关联的分组的指针队列(例如,链接列表)。对于被识别为用于在一个或更多个分组中数据的目的地的每个执行流程,更低功率核552可在网络队列缓冲器369内存储此类队列。因此,对于将数据39从远程装置90输送到NIC 595的分组,更低功率核可生成到网络分组缓冲器169内分组的指针队列及数据39的目的地是哪个执行流程的指示,每个分组输送数据39的一部分。
在更低功率核552执行标识符的此类检索和/或生成指针的一个或更多个此类队列时,NIC 595可继续经网络999接收来自远程装置90的输送更多数据39的更多分组。在一些实施例中,每次收到另一此类分组时,网络接口控制器595可发出新硬件中断,这可导致促使处理程序例程1491的执行开始的更早描述方式的频繁重复。如本领域技术人员可认识到的一样,这可被认为不合需要的,因为它可促使已经在进行的分组的接收的处理被更多硬件中断反复中止,每个硬件中断也意味着促使分组的接收的处理。为解决此问题,在一些实施例中,在更低功率核552检查分组报头和/或从一个或更多个分组提取目的地的标识符时,更低功率核552可由于执行处理程序例程1491的指令而促使其至少暂时禁用NIC 595发出更多此类中断的能力。这可要求促使更低功率核552将某个值写入NIC 595的一个或更多个寄存器5951的一个或更多个比特以至少暂时禁止从中传送硬件中断。然而,为确保在处理程序例程1491的执行期间未忽略更多分组的接收,可进一步促使更低功率核552参与循环轮询网络分组缓冲器169和/或NIC 595的一个或更多个寄存器5951是否有已收到更多分组的指示。响应在执行报头的分析和/或指针队列的生成的同时接收其它分组,这些此类活动可扩展到其它那些收到的分组。在完成检查分组报头和/或生成到当前在网络分组缓冲器169内所有分组的指针队列时,和/或在完成处理程序例程1491的执行时,更低功率核552可开始访问网络接口控制器595的一个或更多个寄存器5951,以重新启用NIC 595向中断路由器555传送中断的能力。同样地,在中断的使用与检测网络分组的到达的轮询之间的此类切换可称为“半轮询”。
如已经所述的一样,可在一个或更多个分组中由NIC 595接收数据39。如本领域技术人员可认识到的一样,网络999可采用多个网络协议的任何协议,其中,通过其传送的数据(例如,数据39)和/或中断先被细分成数据的更小碎片,每个碎片可在单独的分组内通过网络传送。此外,在数据39的细分中,可在那些分组的报头中指示必须组合那些更小的数据39的碎片以重新形成数据39的顺序,使得网络接口控制器595收到的分组可在其报头中包括必须组合数据39的碎片以在计算装置500内重新形成数据39的顺序的指示。在那些分组之间顺序的此类指示可以是必需的,这是因为远程装置90传送分组的顺序可以不是NIC595接收它们的顺序。如本领域技术人员可认识到的一样,输送数据39的碎片的每个分组可通过网络999采用不同路径,使得不同的分组可使用不同量的时间到达NIC 595。因此,数据可不以将组合其内容以重新形成数据39的顺序接收,并且可因此类似地乱序存储在网络分组缓冲器169内。
在各种实施例中,网络分组缓冲器169可由包含到网络接口控制器595本身中的存储位置组成,或者可在存储装置560内的存储之间定义。因此,在访问收到的分组中,更低功率核552可在访问一部分NIC 595或一部分存储装置560。无论实现网络分组缓冲器169的确切方式如何,网络分组缓冲器169可具有相对有限的容量来存储分组。在一些实施例中,如果允许网络分组缓冲器169变满,从而不可在其中存储更多分组,则NIC 595可使用协议拒绝经网络接受来自其它装置的更多分组,协议促使那些其它装置对那些被拒绝分组的重传成为获得更多时间以便检查在网络分组缓冲器169内已经存储的分组的报头和提取其内容,从而可清除和/或改写那些分组的机制。因此,至少在执行在网络分组缓冲器169内存储的一个或更多个分组的报头的此类检查方面,处理程序例程1491的执行可以是时间敏感任务,从而可认为采用中断的使用以促使至少一部分处理程序例程1491的执行更快进行是适当的。
在生成指针的每个队列中,更低功率核552可尝试组织在每个队列中列出到分组的指针的方式,以遵循在那些分组之间其报头中存在的顺序的指示。因此,更低功率核552可尝试在队列中以在每个分组中输送的数据39的碎片将要重组以重新形成数据39的顺序,列出输送数据39的碎片的分组。然而,在其它实施例中,更低功率核552可不为每个目的地执行流程进行组织在每个队列内分组的列表的此类尝试。在接收输送数据39的一定量的分组并且生成和在网络队列缓冲器369中存储列出那些分组的队列时,更低功率核552可向更高功能核551发送信号,信号带有多个分组已从网络999收到并且已存储在网络分组缓冲器169内的指示,使得更高功能核551要执行复制操作以将多个分组的内容复制到与已被识别为那些内容的目的地的一个或更多个流程相关联的缓冲器。向更高功能核551的此类指示也可包括网络分组缓冲器169和/或网络队列缓冲器369的地址的指示。
多种机制的任何机制可由更低功率核552用于将此类指示输送到更高功能核551。更低功率核552可经核到核互连553,将核到核中断输送到更高功能核551。然而,作为由更低功率核552处理原来从NIC 595收到的中断的一部分,可认为优选的是更低功率核552向更高功能核551传送消息或其它指示,消息或其它指示不要求更高功能核551停止执行当前执行流程的指令以开始执行此类复制操作的另一执行流程。相反,可认为优选的是允许更高功能核551调度执行流程,以便在操作系统340和/或一个或更多个应用程序例程740的其它执行流程之间执行此类复制操作。
作为还有的另一备选,可以是更低功率核552不向更高功能核551提供有多个分组,从中需要复制内容到目的地执行流程的任何此类直接指示。相反,可已经由操作系统340促使更高功能核551在预定的循环基础上检查网络队列缓冲器369是否有更高功能核551可在执行此类复制操作中使用的一个或更多个队列已准备好的指示。响应定位列出足够数量的一定量的分组以满足用于执行此类复制操作的阈值的一个或更多个此类队列,更高功能核551可调度那些分组的内容到其目的地执行流程的此类复制。
避免使用中断以便因此通知更高功能核551,并且允许更高功能核551调度其执行与处理来自NIC 595的中断相关联的指令,这可被认为是更有效地利用更高功能核551的各种特征。换而言之,可促使更低功率核552和更高功能核551在响应来自NIC 595的中断中协作,这样,在直接处理中断更有效的更低功率核552如此操作以执行与处理中断相关联的一个或更多个时间敏感任务,而允许更高功能核551调度与处理可不具时间敏感性或者可不认为是时间敏感的中断相关联的其它任务的执行。
无论使更高功能核551知道在网络分组缓冲器169内存储的分组中已收到至少一部分数据39及在网络队列缓冲器369中其目的地执行流程的身份的指示的确切方式如何,一旦知道后,更高功能核551便可执行数据传送组件341的指令以执行复制操作。转到图3C,在如此执行数据传送组件341中,可促使更高功能核551从在网络分组缓冲器169中存储的输送数据39并且在包括那些分组的网络队列缓冲器369的队列中列出的一个或更多个分组中复制数据39的碎片。更高功能核551在执行此类复制操作中,可将那些数据39的碎片复制到与包括在队列中指示为用于数据39的目的地的执行流程的应用程序例程740之一相关联的应用程序数据缓冲器730。在这种情况下,并且如图所示,由更高功能核551在执行数据传送组件341中对至少一部分数据39的此类复制可要求利用可以是系统上下文360内数据传送组件341的更高许可,以修改包括该应用程序数据缓冲器730的用户上下文760之一的内容。
图4A-4E一起示出在处理在应用程序例程740之一的执行期间由页面故障引起的一对中断(来自处理器组件550内的页面故障的指示和来自存储接口控制器565的硬件中断)中处理器组件550的核551与552之间协作的一示例实施例。同样地,在本文中使用时,术语“中断”指源于硬件组件而不是处理器组件550的硬件中断和源于处理器组件550内,包括页面故障的例外。如本领域技术人员可认识到的一样,在采用虚拟存储器方案的计算装置中,基于使用每个那些页面的内容的频率和/或最近多久前使用了那些内容,在更高速易失性存储装置与更低速非易失性存储装置之间交换数据的页面和/或可执行指令。因此,可出现作为执行例程(例如,应用程序例程740之一)的一部分,可需要执行已从更高速易失性存储装置(例如,一部分存储装置560)传送到更低速非易失性存储装置(例如,存储装置60)的数据和/或页面内的指令的情况,但在数据的该页面和/或指令传送回更高速易失性存储装置前,不能进行此类执行。此情况可称为页面故障,并且可导致当前执行流程的中断以促使进行回到更高速易失性存储装置的传送。如现在将解释的一样,处理器组件550的核551和552可协作以执行不同指令集,以有效最小化对操作系统340和/或一个或更多个应用程序例程740的指令执行的破坏的方式执行不同指令集。
转到图4A,更高功能核551可参与在存储装置560内定义的其相关联的一个用户上下文760内执行应用程序例程740之一。然而,在这种情况下,到达在当前未存储在存储装置560内的页面内该应用程序例程740的一部分指令,和/或需要来自当前未存储在存储装置560内,而是更早传送到存储装置60的页面的数据。在更高功能核551执行操作系统340的页面管理器组件342期间,在通过参照页面表366以将该页的虚拟地址和存储装置560内用于该页的物理地址相关,尝试检索该页的数据和/或指令,并且发现在存储装置560内当前无用于该页的此类物理地址时,这可由其确定为是该情况。更高功能核551可在响应中向更低功率核552发送信号,信号带有页面故障的指示(例如,该对中断的第一中断)。响应接收页面故障的此指示,更低功率核552可开始执行组成操作系统340的可执行指令的一部分的页面故障处理程序例程343。
转到图4B,在开始页面故障处理程序例程343的指令的执行中,更低功率核552可参照转换表266以将页面的虚拟地址和可包括该页面的内容的存储装置60内一个或更多个数据块的一个或更多个标识符相关。如图所示,页面(指定为页面35)可更早已存储在存储装置60内多个块33内。然而,如本领域技术人员可认识到的一样,在各种实施例中,页面35是否占用一个或更多个块33可至少取决于页面35和每个块的相对大小(例如,以比特或字节为单位)。因此,占用不止一个块33的至少一部分的页面35的此图示不应视为限制。在已从转换表266检索与页面35相关联的一个或更多个块33的标识符的情况下,更低功率核552在继续执行页面故障处理程序例程343的指令时,可通过存储装置驱动器146向存储接口控制器565输送从在存储装置60中页面在其内存储的一个或更多个块33中检索页面35的请求。存储接口控制器565在响应中可请求来自存储装置60的一个或更多个块33的内容。应注意的是,虽然存储接口控制器565和存储装置60示为单独的组件,但控制器集成到存储装置中或者存储装置集成到控制器中的其它实施例是可能的。
转到图4C,存储接口控制器565可接收来自存储装置60的一个或更多个块33的内容。响应接收一个或更多个块33,存储接口控制器565可在块缓冲器166内存储那些块的内容,并且可发出可由中断路由器555接收的硬件中断,并且可与中断的标识符的指示一起传递到处理器组件550。假定模式控制器345已经配置,使得此中断被路由到更低功率核552,更低功率核552可通过使用该中断的附带标识符,参照IDT 235以获得在与标识符相关联的处理程序例程的存储装置560中的地址,响应接收此硬件中断。同样地,IDT 235可以是将中断的标识符和与每个那些标识符相关联的处理程序例程的地址相关的表格。如图所示,可与此特定硬件中断的标识符相关联的处理程序例程可以是组成存储装置驱动器146的可执行指令的一部分的处理程序例程1461。在存储至少一部分的处理程序例程1461的存储装置560内检索地址时,更低功率核552可实现到该地址的跳,以开始执行处理程序例程1461的指令。
然而,再一次可以是多个硬件组件与用于将中断传送到中断路由器555的存储接口控制器565共享相同导电体。由于此情况或另一情况,与此硬件中断相关联的特定标识符可和多个处理程序例程的多个地址相关,那些处理程序例程的每个例程与不同硬件组件相关联,并且某一形式的测试可需要进行以验证它是发出此特定中断的存储接口控制器565。同样地,此类测试可要求执行组成一个或更多个处理程序例程的每个例程的一部分指令,并且为允许通过处理程序例程1461进行此类测试,存储控制器565的一个或更多个寄存器5651可在一个或更多个地址是由更低功率核552可达的,以确定它是否发起了此硬件中断的存储接口控制器565。
因此,并且转到图4D,更低功率核552可通过执行指令,指令执行有关存储接口控制器565的此类测试,从而促使更低功率核552访问一个或更多个寄存器5651至少之一以确认发出硬件中断的是该存储接口控制器565,开始执行处理程序例程1461的指令。在确认存储接口控制器565发出了硬件中断时,更低功率核552可继续执行处理程序例程1461的指令,由此促使更低功率核552访问块缓冲器166以从其中存储的一个或更多个块33中检索页面35,并且可在页面缓冲器366内存储页面35。
如本领域技术人员可认识到的一样,各种情况可导致一个或更多个块33以非连续方式分布在存储装置60内。此外,在存储装置60接收来自存储接口控制器565的向其提供一个或更多个块33的请求时,诸如磁头相对于盘片的位置和/或当前在访问存储装置60内的哪组固态存储组件可导致一个或更多个块33以对将需要如何组合其内容以重新形成页面35而言是乱序的方式检索和提供到存储接口控制器。因此,在块33的非连续块通过存储接口控制器565由块缓冲器166接收并且存储在其内时,更低功率核552可从块缓冲器166检索页面35的非连续部分。此外,块缓冲器166可具有有限容量,使得从块33中检索其中存储的页面35的部分可以是时间敏感的任务,因此,使用硬件中断表明一个或更多个块33的接收可被认为是适当的。
在从块缓冲器166检索页面35的部分,并且在页面缓冲器366内存储这些部分中,更低功率核552可以其适当的顺序组合页面35的部分以重新形成页面35。在页面缓冲器366内页面35的此类重新形成后,更低功率核552可随着在不同实施例中采用各种不同动作。
在一些实施例中,页面故障的处理的完成可包括更高功能核551从系统上下文360中的页面缓冲器366复制页面35,并且复制到在促使需要检索页面35的执行流程中在执行的应用程序例程740所处的用户上下文760中。在一些此类实施例中,更低功率核可向更高功能核551发送信号,信号带有页面35已存储在页面缓冲器366内的指示。同样地,多种机制的任何机制可由更低功率核552用于将此类指示输送到更高功能核551。此外,再次作为还有的另一备选,也可根本无此类由更低功率核552提供到更高功能核551的指示,并且通过页面缓冲器366的循环轮询,更高功能核551可知道至少一部分页面35已存储在页面缓冲器366内。还可认为合乎需要的是至少避免在核551与552之间使用导致更高功能核551进行的指令的当前执行流程中断的某种形式的中断,以有利于允许更高功能核551在它的其它正常调度的执行流程之间调度其对页面在页面缓冲器366内存储的响应。
无论更高功能核551知道至少一部分页面35已存储在页面缓冲器366内的确切方式如何,一旦知道后,更高功能核551便可在响应中执行页面管理器组件342的指令。转到图4E,在如此执行页面管理器组件342中,可促使更高功能核从系统上下文360内的页面缓冲器366复制页面35,并且复制到可指派成用户上下文760的一部分的存储装置560内的一系列存储位置,在用户上下文中,应用程序例程740在由更高功能核551执行以提供被认为不可用的该应用程序例程740的随后指令以供执行和/或被认为不可用的应用程序例程740需要的数据,由此允许此类执行继续。
然而,在其它实施例中,页面故障的处理的完成可包括更低功能核552或更高功能核551从系统上下文360重新映射提供页面35当前占用的页面缓冲器366的部分的存储装置560的存储位置,并且重新映射到在执行应用程序例程740的用户上下文760。换而言之,不从存储装置560的一个部分复制页面35到另一部分以将页面35从一个上下文传送到另一上下文,而是可只简单地将页面35已经占用的存储装置560的部分从一个上下文重新映射到另一上下文。在更低功率核552执行此重新映射的情况下,它可作为执行页面故障处理程序343的指令的一部分进行,页面故障处理程序343可接收页面35已经在页面缓冲器366中存储,因而它可用于如此重新映射的指示。在此类重新映射后,更低功率核552可向更高功能核551发送有关此类重新映射的信号,以允许更高功能核551返回执行页面管理器组件342的指令,以促使加载指令和/或页面35的数据,提供应用程序例程740的随后指令和/或该数据到更高功能核551以供执行。然而,在更高功能核551执行此重新映射的情况下,它可作为执行页面管理器组件342的一部分进行,一旦页面35存储在页面缓冲器366内,更低功率核552便可向更高功能核551发送信号,以允许更高功能核551执行页面管理器组件342的指令,以执行此类重新映射。
在各种实施例中,存储装置560可基于范围广泛的多种信息存储技术的任何技术,可能包括要求不间断提供电功率的易失性技术,并且可能包括要求使用可以是或不是可拆卸的机器可读存储介质的技术。因此,这些存储装置每个可包括范围广泛的多种类型(或类型的组合)的存储装置的任何存储装置,包括但不限于只读存储器(ROM)、随机存取存储器(RAM)、动态RAM (DRAM)、双数据率DRAM (DDRAM)、同步DRAM (SDRAM)、静态RAM (SRAM)、可编程ROM (PROM)、可擦除可编程ROM (EPROM)、电可擦除可编程ROM (EEPROM)、闪存、聚合物存储器(例如,铁电聚合物存储器)、双向存储器、相变或铁电存储器、硅氧化氮氧化硅(SONOS)存储器、磁卡或光学卡、一个或更多个单独的铁磁性磁盘驱动器或组织成一个或更多个阵列的多个存储装置(例如,组织成独立磁盘冗余阵列或RAID阵列的多个铁磁性磁盘驱动器)。应注意的是,虽然这些存储装置每个示为单个块,但一个或更多个这些存储装置可包括多个存储装置,这些存储装置可基于不同的存储技术。因此,例如,每个这些所示存储装置的一个或更多个存储装置可表示通过其可在某一形式的机器可读存储介质上存储和输送程序和/或数据的光盘驱动器或闪存卡读取器、在相对长的期间内在本地存储程序和/或数据的铁磁性磁盘驱动器及允许相对快地访问程序和/或数据的一个或更多个易失性固态存储器装置(例如,SRAM或DRAM)的组合。也应注意的是,每个这些存储装置可由基于相同存储技术,但由于使用的专门化而单独保持的多个存储组件(例如,用作主存储装置的一些DRAM装置,而用作图形控制器的独特帧缓冲器的其它DRAM装置)组成。
在各种实施例中,网络接口控制器595可实现到网络999的接口,接口可采用范围广泛的多种信令技术的任何技术,从而如已描述的一样,允许这些计算装置耦合到其它装置。每个这些接口包括提供允许此类耦联的至少一些必要功能性的电路。然而,每个这些接口也可至少部分通过由处理器组件的对应组件执行的指令序列实现(例如,以实现协议栈或其它特征)。在采用导电和/或光导布线的情况下,这些接口可采用符合多种工业标准的任何标准的信令和/或协议,包括但不限于RS-232C、RS-422、USB、以太网(IEEE-802.3)或IEEE-1394。在需要使用无线信号传送的情况下,这些接口可采用符合多种工业标准的任何标准的信令和/或协议,包括但不限于IEEE 802.11a、802.11b、802.11g、802.16、802.20(通常称为“移动宽带无线接入”)、蓝牙、ZigBee;或诸如带e通用分组无线电服务(GSM/GPRS)的GSM、CDMA/1xRTT、全球演进型增强数据率(EDGE)、仅演进数据最优化(EV-DO)、数据和话音演进(EV-DV)、高速下行链咱分组接入(HSDPA)、高速上行链中t分组接入(HSUPA)、4G LTE等。
图5示出逻辑流程2100的一个实施例。逻辑流程2100可表示本文中所述一个或多个实施例执行的一些或所有操作。更具体地说,逻辑流程2100可示出在执行至少一部分操作系统340和/或一个或更多个装置驱动器中由处理器组件550执行和/或由计算装置500的其它组件执行的操作。
在2110,计算装置的处理器组件的更低功率核(例如,计算装置500的处理器组件550的更低功率核552)可接收源于计算装置的硬件组件的中断。同样地,本文中使用时,术语“中断”包括由处理器组件外的硬件组件生成的硬件中断和由处理器的内部逻辑生成的例外,包括页面故障。在此情况下,中断是硬件中断。如前面讨论的一样,操作系统可包括模式控制器,模式控制器可动态确定将一个或更多个硬件中断路由到更低功率核或更高功能核(例如,模式控制器345和更高功能核551)哪个核,并且可引导中断路由器(例如,中断路由器555)进行此操作。
在2120,更低功率核可使用收到中断的标识符检索与可能是硬件中断的一个或更多个可能来源的一个或更多个ISR的一个或更多个地址。如前面讨论的一样,在一些计算装置中,多个硬件组件可共享沿其传送硬件中断的指示的单个导电体的使用,因而可需要识别硬件中断的来源。
在2130,在有关中断源可存在模糊性的实施例中,更低功率核可执行一个或更多个处理程序例程每个的指令子集,这促使更低功率核执行测试以确定与每个那些处理程序例程相关联的硬件组件是否是此硬件中断的来源。在2132,此类测量的执行促使更低功率核将已接收来自网络的一个或更多个分组的计算的网络接口控制器(NIC)识别为更低功率核收到的硬件中断的来源(例如,NIC 595)。
在2140,更低功率核检测网络接口控制器已将收到分组存储到的分组缓冲器内收到分组的报头。更具体地说,且如前面讨论的一样,更低功率核可从那些报头检索信息的一个或更多个碎片,包括作为每个分组的内容(例如,在输送的数据和/或指令)的预期目的地的执行流程的标识符。在2142,作为计算装置内的例程的执行的一部分,更低功率核可采用检索的标识符识别目的地执行流程(例如,属于可由更低功率核或更高功能核任意之一执行的操作系统340或应用程序例程740的一部分的执行流程)。同样地,为如此识别目的地执行流程,更低功率核可使用此类标识符的表格以将标识符和目的地执行流程相关。
在2150,更低功率核可为识别为一个或更多个分组的内容的目的地的每个执行流程生成到由如预期用于该执行流程的其标识符指示的分组的指针队列。在2152,更低功率核随后可存储在网络队列缓冲器内如此生成的一个或更多个队列和用于相关联目的地执行流程的每个队列的指示。如前面讨论的一样,由于可能无法控制何时将收到下一分组,因此,检查报头和/或生成在网络队列缓冲器中存储的队列以允许从分组检索收到分组的内容并且提供到目的地执行流程可以是时间敏感任务。
在2160,更低功率核可向更高功能核发送信号,信号带有在网络数据缓冲器内存储的一个或更多个分组之间一个或更多个碎片输送的至少一部分数据和/或指令的指示及从何处检索到那些分组的指针队列的指示和/或目的地执行流程的指示。备选且已讨论的是,更低功率核可根本不提供此类提示到更高功能核,相反,更高功能核可检测到列出满足网络队列缓冲器内阈值的一定量的分组的队列的存储。在2162,更高功能核随后可采用其更有效复制数据的能力,按该队列中分组列出的顺序将在所列分组内存储的部分(或全部)数据和/或指令从网络缓冲器复制到用户上下文或系统上下文内的某个位置,而目的地执行流程能够从中访问它。
图6示出逻辑流程2200的一个实施例。逻辑流程2200可表示本文中所述一个或多个实施例执行的一些或所有操作。更具体地说,逻辑流程2200可示出在执行至少一部分操作系统340、应用程序例程740和/或一个或更多个装置驱动器中由处理器组件550执行和/或由计算装置500的其它组件执行的操作。
在2210,计算装置的处理器组件的更低功率核(例如,计算装置500的处理器组件550的更低功率核552)可接收在由处理器组件的更高功能核(例如,更高功能核551)执行应用程序例程(例如,一个或更多个应用程序例程740之一)的指令期间由页面故障的产生引发的中断。如前面讨论的一样,作为操作处理器组件的更低功率核和更高功能核两者以执行指令的一部分,可将由更高功能核的内部逻辑生成的页面故障引导到更低功能核以至少处理其更加时间敏感的方面。
在2220,更低功率核可在计算的存储接口控制器(例如,存储装置60和存储接口控制器565)的控制下请求来自存储装置的所需页面。如前面讨论的一样,在向存储接口控制器565提出请求中,更低功率核可通过使用由更低功能核通过转换表和页面的虚拟地址相关的块的标识符,请求在包括页面(例如,一个或更多个块33和页面35)的存储装置内检索一个或更多个块(例如,一个或更多个块33和页面35)。
在2230,存储接口控制器可接收其内可存储页面的一个或更多个块,并且可在存储接口控制器接收它们时在块缓冲器中存储那些块。在2232,存储接口控制器可将硬件中断传送到处理器组件以促使相对于现在占用可能是块缓冲器内有限空间的块采取动作。如前面讨论的一样,此硬件中断变成与页面故障的出现相关联的第二中断,第一中断是从更高功能核到更低功率核的页面故障本身的指示。也如前面讨论的一样,从块缓冲器内存储的块中检索数据和/或指令可以是时间敏感任务,这是因为存储接口控制器可很快需要接收和存储来自存储装置的更多块。
在2240,更低功率核可接收由存储接口控制器发起的硬件中断。在2242,更低功率核可使用收到硬件中断的标识符检索与存储接口控制器相关联的处理程序例程的地址。然而,同样地,可能需要执行测量以确定计算装置的哪个硬件组件发起了此硬件中断。因此,同样地,基于与硬件中断相关联的标识符,可从IDT检索用于多个处理程序例程的多个地址,可需要由更低功率核执行实现一个或更多个此类测试的一个或更多个这些处理程序例程的指令,以确定此硬件中断的来源(在此示例中,存储接口控制器)。
在2250,更低功率核可从迄今为止已收到并且在块缓冲器内存储的一个或更多个块内检索需要的页面的碎片,并且随后在2252可在页面缓冲器内存储那些碎片。如前面讨论的一样,更低功率核可在它在页面缓冲器内存储页面的碎片时,尝试重组该页面。
在2260,更低功率核可向更高功能核发送信号,信号带有页面存储在页面缓冲器内的指示。备选且已讨论的是,更低功率核可根本不提供此类提示到更高功能核,相反,更高功能核可通过循环轮询检测到页面在页面缓冲器本身内的存储。在2262,更高功能核随后可采用其更有效的复制数据的能力将在页面缓冲器内存储的页面提制到指派到应用程序例程的用户上下文内的某个位置,以允许应用程序的执行继续。或者,在2262,更高功能核随后可重新映射由需要页面占用的页面缓冲器的部分从页面缓冲器存在的系统上下文,并且重新映射到应用程序例程的用户上下文,并且随后可继续在该重新映射的页面内应用程序例程的执行。然而,作为还有的另一备选,执行此类重新映射的可以是更低功率核,并且随后,更低功率核可向更高功能核表明页面已进行如此重新映射,因此,现在它在该用户上下文内可供使用以便执行其指令。
图7示出适合用于实现如前面所述各种实施例的示范处理体系结构3000的一实施例。更具体地说,处理体系结构3000(或其变型)可实现为一个或更多个计算装置500的一部分,和/或实现为控制器的一部分。应注意的是,处理体系结构3000的组件带有标号,标号中,最后两个数位与更早所示并且描述为计算装置500及控制器的一部分的至少一些组件的标号的最后两个数位一致。这样是为了有助于使每个的组件相关。
处理体系结构3000包括在数字处理中通常采用的各种元件,包括但不限于一个或更多个处理器、多核处理器、协处理器、存储器单元、芯片集、控制器、外设、接口、振荡器、定时装置、视频卡、音频卡、多媒体输入/输出(I/O)组件、电源等等。在本申请中使用时,术语“系统”和“组件”要指在其中执行数字处理的计算装置的实体,该实体是硬件、硬件和软件的组合、软件或在执行中的软件,其示例由此示出的示范处理体系结构提供。例如,组件能够但不限于是在处理器组件上运行的进程、处理器组件本身、可采用光学和/或磁性存储介质的存储装置(例如,硬盘驱动器、呈阵列的多个存储驱动器等)、软件对象、可执行指令序列、执行的线程、程序和/或整个计算装置(例如,整个计算机)。作为说明,在服务器上运行的应用程序和服务器均能够是组件。一个或更多个组件能够驻留在执行的进程和/或线程内,并且组件能够位于一个计算装置上和/或分布在两个或更多个计算装置之间。此外,组件可通过各种类型的通信介质以通信方式相互耦合以协调操作。协调可涉及信息的单向或双向交换。例如,组件可以通过通信介质传递的信号形式传递信息。信息能够实现为分配到一个或更多个信号线路的信号。消息(包括命令、状态、地址或数据消息)可以是此类信号之一,或者可以是多个此类信号,并且可通过多种连接和/或接口的任何连接和/或接口串行或大致并行传送。
如图所示,在实现处理体系结构3000中,计算装置至少包括处理器组件950、存储装置960、到其它装置的接口990和耦联959。如将解释的一样,视实现处理体系结构3000的计算装置的各种方面而定,包括其预期使用和/或使用的条件,此类计算装置可还包括另外的组件,诸如但不限于显示接口985。
耦联959包括一个或更多个总线、点到点互连、收发器、缓冲器、交叉点开关和/或以通信方式耦合至少处理器组件950到存储装置960的其它导体和/或逻辑。耦联959可还将处理器组件950耦合到接口990、音频子系统和显示接口985的一项或更多项(视这些和/或其它组件的哪些组件也存在而定)。在处理器组件950通过耦联959如此耦合的情况下,处理器组件950能够为上述计算装置中实现处理体系结构3000的任一计算装置执行上面充分描述的各种任务。耦联959可通过多种技术的任何技术或技术的组合实现,信号通过技术以光学和/或电气方式输送。此外,至少部分耦联959可采用符合范围广泛的多种工业标准的任何标准的定时和/或协议,包括但不限于加速图形端口(AGP)、CardBus、扩展工业标准体系结构(E-ISA)、微信道体系结构(MCA)、NuBus、外设组件互连(扩展)(PCI-X)、PCI Express(PCI-E)、个人计算机存储卡国际协会(PCMCIA)总线、HyperTransport™、QuickPath及诸如此类。
如前面讨论的一样,处理器组件950(对应于处理器组件550)可包括范围广泛的多种商用处理器的任何处理器,采用范围广泛的多种技术的任何技术,并且通过以多种方式的任何方式物理组合的一个或更多个核实现。
如前面讨论的一样,存储装置960(对应于存储器560)可基于范围广泛的多种技术的任何技术或技术的组合,由一个或更多个独特存储装置组成。更具体地说,如图所示,存储装置960可包括易失性存储装置961(例如,基于一种或更多种形式的RAM技术的固态存储装置)、非易失性存储装置962(例如,不要求持续提供电功率以保留其内容的固态、铁磁性或其它存储装置)和可拆卸介质存储装置963(例如,通过其可在计算装置之间输送信息的可拆卸光盘或固态存储卡存储装置)。如可能包括多个不同类型的存储装置的存储装置960的此图示是认识到计算装置中使用不止一种类型的存储装置是常见的,其中,一种类型提供相对迅速的读取和写入能力,允许处理器组件950更迅速的操控数据(但可能使用持续要求电功率的“易失性”技术),而另一类型提供相对高密度的非易失性存储装置(但可能提供相对慢的读取和写入能力)。
鉴于采用不同技术的不同存储装置经常有不同的特性,此类不同存储装置耦合到不同存储控制器耦合到计算装置的其它部分也是常见的,而存储控制器通过不同接口耦合到其不同存储装置。作为示例,在易失性存储装置961存在,并且基于RAM技术的情况下,易失性存储装置961可通过提供到易失性存储装置961的适当接口的存储控制器965a,以通信方式耦合到耦联959,易失性存储装置961可能采用行列寻址,并且其中,存储控制器965a可执行行刷新和/或其它维护任务以有助于保持在易失性存储装置961内存储的信息。作为另一示例,在非易失性存储装置962存在,并且包括一个或更多个铁磁性和/或固态磁盘驱动器的情况下,非易失性存储装置962可通过提供到非易失性存储装置962的适当接口的存储控制器965b,以通信方式耦合到耦联959,非易失性存储装置962可能采用信息块和/或柱面和扇区寻址。作为还有的另一示例,在可拆卸介质存储装置963存在,并且包括采用一件或更多件有形机器可读存储介质969的一个或更多个光学和/或固态磁盘驱动器的情况下,可拆卸介质存储装置963可通过提供到可拆卸介质存储装置963的适当接口的存储控制器965c,以通信方式耦合到耦联959,可拆卸介质存储装置963可能采用信息块寻址,并且其中存储控制器965c可以特定方式协调读取、擦除和写入操作,以延长有形机器可读存储介质969的使用期限。
易失性存储装置961或非易失性存储装置962之一或另一存储装置可包括机器可读存储介质形式的制品,视每个存储装置所基于的技术而定,存储装置上可存储包括可由处理器组件950执行的指令序列的例程。作为示例,在非易失性存储装置962包括基于铁磁的磁盘驱动器(例如,所谓的“硬盘驱动器”)的情况下,每个此类磁盘驱动器一般采用一个或更多个旋转盘片,磁响应颗粒的涂层淀积在盘片上并且以各种模式磁定向,以类似于诸如软盘等存储介质的方式存储诸如指令序列等信息,作为另一示例,非易失性存储装置962可由多组固态存储装置组成,以类似于压缩闪存卡的方式存储诸如指令序列等信息。同样地,在不同时间在计算装置中采用不同类型的存储装置存储可执行例程和/或数据是常见的。因此,包括要由处理器组件950执行的指令序列的例程可最初存储在有形机器可读存储介质969上,并且可拆卸介质存储装置963可随后用于将该例程复制到非易失性存储装置962以便更长期存储而不要求持续存在有形机器可读存储介质969和/或易失性存储装置961,以允许在执行该例程时处理器组件950的更快速访问。
如前面讨论的一样,接口990可采用对应于多种通信技术的任何技术的多种信令技术的任何技术,这些通信技术可用于将计算装置以通信方式耦合到一个或更多个其它装置。同样地,各种形式的有线或无线信令的一种或两种信令可用于允许处理器组件950可能通过网络(例如,网络999)或互连的网络集与输入/输出装置(例如,示出的示例键盘920或打印机925)和/或其它计算装置交互。鉴于认识到任何一个计算经常必须支持的多个类型的信令和/或协议的经常大不相同的特点,接口990示为包括多个不同接口控制器995a、995b和995c。接口控制器995a可采用多种类型的有线数字串行接口或射频无线接口的任何接口接收来自诸如示出的键盘920等用户输入装置的串行传送的消息。接口控制器995b可采用多种基于布线或无线信令、定时和/或协议的任何信令、定时和/或协议,通过示出的网络999(可能由一个或更多个链路、更小的网络组成的网络,或可能因特网)访问其它计算装置。接口995c可采用多种导电布线的任何布线,允许使用串行或并行数据传送以将数据输送到示出的打印机925。可通过接口990的一个或更多个控制器以通信方式耦合的装置的其它示例包括但不限于监视人的声音以接受经他们可能说出的话音或发出的其它声音传达的命令和/或数据的麦克风、遥控器、书写笔、读卡器、指纹读取器、虚拟现实交互手套、图形输入板、操纵杆、其它键盘、retina扫描仪、触摸屏的触摸输入组件、轨迹球、各种传感器、监视人的移动以接受那些人经手势和/或面部表情传达的命令和/或数据的摄像头或摄像头阵列、激光打印机、喷墨打印机、机器人、铣床等。
在计算装置以通信方式耦合到(或可能实际包含)显示器(例如,示出的示例显示器980)的情况下,实现处理体系结构3000的此类计算装置也可包括显示接口985。虽然在以通信方式耦合到显示器中可采用更普遍类型的接口,但在显示器上视觉显示各种形式的内容中经常要求的稍微专业化的另外处理及使用的基于布线的接口的稍微专业化的性质经常希望提供独特的显示接口。在显示器980的通信耦合中可由显示接口985采用的有线和/或无线信令技术可利用符合多种工业标准的任何标准的信令和/或协议,包括但不限于多种模拟接口、数字视频接口(DVI)、DisplayPort等的任何接口。
更普遍地说,本文中描述和示出的计算装置的各种元件可包括各种类型的硬件元件、软件元件或其组合。硬件元件的示例可包括装置、逻辑装置、组件、处理器组件、微处理器、电路、处理器、电路元件(例如,晶体管、电阻器、电容器、电感器等等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD),、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、存储器单元、逻辑门、寄存器、半导体装置、芯片、微芯片、芯片集等等。软件元件的示例可包括软件组件、程序、应用程序、计算机程序、系统程序、软件开发程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、功能、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或其任何组合。然而,确定实施例是否使用硬件元件和/或软件元件实现可根据给定实现的需要,根据任何数量的因素而变化,如所需的计算速率、功率电平、耐热度、处理周期预算、输入数据率、输出数据率、存储器资源、数据总线速度及其它设计或性能约束。
一些实施例可使用表述“一个实施例”或“一实施例”及其派生词进行描述。这些术语表示结合实施例描述的特定特征、结构或特性包括在至少一个实施例中。在说明书中各个位置出现的“在一个实施例中”词语不一定全部指同一实施例。此外,一些实施例可使用表述“耦合”和“连接”及其派生词描述。这些术语不一定是彼此的同义词。例如,一些实施例可使用术语“连接”和/或“耦合”描述,以指示两个或更多个元件相互的直接物理或电接触。然而,术语“耦合”也可指两个或更多个元件相互不直接接触,但仍相互合作或交互。此外,可组合来自不同实施例的方面或元件。
要强调的是,本公开内容的摘要部分提供用于允许读者快速确定本技术公开内容的本质。它是在将不用于解释或限制权利要求范围或含意的理解下提交。另外,在上述具体实施方式中,可看到各种特性在单个实施例中组合在一起以便简化公开内容。此公开方法不可解释为反映要求保护的实施方式需要比每个权利要求项明确所述更多特征的用意。相反,如下述权利要求所反映的一样,发明的主题依赖比单个公开实施方式所有特征更少的特征。因此,下述权利要求在此结合到具体实施方式中,其是每个权利要求项本身保持为单独的实施方式。在随附权利要求中,术语“包括”和“其中”分别用作相应术语“包含”和“之中”的等效物。另外,术语“第一”、“第二”、“第三”等只用作标签,并无意对其物体强加数字要求。
上述内容包括公开的体系结构的示例。当然,不可能描述组件和/或方法的每种可想到的组合,但本领域技术人员可认识到其它组合和置换是可能的。相应地,新颖的体系结构是要将在随附权利要求精神和范围内的所有此类备选、修改和变化包涵在内。详细公开内容现在转到提供涉及其它实施例的示例。下面提供的示例无意于限制。
在示例1中,设备包括:处理器组件的更低功率核,更低功率核包括第一指令流水线,并且更低功率核停止在第一指令流水线中的第一执行流程,并且在第一指令流水线中执行处理程序例程的指令,以执行处理中断的第一任务;以及处理器组件的更高功能核,更高功能核包括第二指令流水线,并且更高功能核在第一任务的执行后,在第二指令流水线中调度处理中断的第二任务的指令的执行在第二指令流水线中的第二执行流程后进行,第一任务比第二任务更加时间敏感。
在包括示例1的主题的示例2中,更低功率核以比更高功能核更低的速率消耗电功率。
在包括示例1-2的任何示例的主题的示例3中,第二指令流水线可包括比第一指令流水线更大数量的指令执行级或执行第一指令流水线不支持的指令的乱序执行的能力的至少之一。
在包括示例1-3的任何示例的主题的示例4中,更低功率核可包括第一高速缓存,更高功能核包括第二高速缓存,并且第二高速缓存包括比第一高速缓存更大数量的高速缓存行或比第一高速缓存更大的集关联性的至少之一。
在包括示例1-4的任何示例的主题的示例5中,设备可包括模式控制器,以基于处理器组件对资源的需求级别,动态将处理器组件置于其中操作更低功率核和更高功能核两者以执行指令的第一模式和其中操作更低功率核以执行指令,并且不操作更高功能核执行指令的第二模式至少之一中。
在包括示例1-5的任何示例的主题的示例6中,模式控制器可基于是将处理器组件置于第一模式还是第二模式中,选择将中断引导到的更低功率核和更高功能核之一。
在包括示例1-6的任何示例的主题的示例7中,中断可包括硬件中断,并且设备可包括耦合到处理器组件的中断路由器,以通过中断路由器将硬件中断的接收的指示传递到模式控制器选择的更低功率核和更高功能核的一个核。
在包括示例1-7的任何示例的主题的示例8中,设备可包括:网络分组缓冲器;网络接口控制器(NIC),耦合处理器组件到网络,并且响应接收来自网络的分组,在分组缓冲器内存储分组,并且将中断传送到处理器组件;以及中断路由器,接收来自NIC的中断的传送,并且将中断的接收的指示与作为中断的来源的NIC的标识符一起传递到处理器组件。
在包括示例1-8的任何示例的主题的示例9中,设备可包括中断描述符表(IDT),更低功率核可采用标识符从IDT检索多个处理程序例程的多个地址,多个处理程序例程可包括该处理程序例程,多个地址可包括该处理程序例程的地址,更低功率组件可采用多个地址的每个地址在第一指令流水线中执行多个处理程序例程的每个处理程序例程的指令,以将NIC识别为中断的来源。
在包括示例1-9的任何示例的主题的示例10中,在第一指令流水线中执行处理程序例程的指令时,更低功率核可从网络分组缓冲器内存储的多个分组的每个分组检索标识符,并且标识符可指示多个分组的每个分组被引导到的执行流程。
在包括示例1-10的任何示例的主题的示例11中,在第一指令流水线中执行处理程序例程的指令时,更低功率核可生成列出与目的地执行流程相关联的多个分组的一个或更多个分组的队列,以及可在网络队列缓冲器中存储队列。
在包括示例1-11的任何示例的主题的示例12中,设备可包括操作系统的数据传送组件,供更高功能核执行,以作为第二任务,检索队列和将队列中列出的来自一个或更多个分组的数据从网络数据缓冲器复制到在与操作系统的系统上下文分开的用户上下文中存储的应用程序例程的应用程序数据缓冲器,应用程序例程包括目的地执行流程。
在包括示例1-12的任何示例的主题的示例13中,设备可包括:操作系统的页面管理器组件,由更高功能核执行以将在更高速存储装置中应用程序例程的指令的页面提供到更高功能核执行;页面故障处理程序例程,由更低功率核响应页面故障而执行,在页面故障中,要由更高功能核执行的应用程序例程的指令的下一页面存储在更低速存储装置中,而不是存储在更高速存储装置中。
在包括示例1-13的任何示例的主题的示例14中,可由于更高功能核尝试从更高速存储装置中检索下一页面的指令的失败,由更高功能核检测到页面故障。
在包括示例1-14的任何示例的主题的示例15中,设备可包括耦合处理器组件到更低速存储装置的存储接口控制器,并且在执行页面故障处理程序例程的指令时,更低功率核可请求从更低速存储装置检索下一页面。
在包括示例1-15的任何示例的主题的示例16中,设备可包括:块缓冲器;以及中断路由器,接收来自存储接口控制器的中断的传送,并且将中断的接收的指示与作为中断的来源的存储接口控制器的标识符一起传递到处理器组件,存储接口控制器将中断传送到中断路由器,并且响应接收来自更低速存储装置的某个数据块,在块缓冲器中存储该数据块,该数据块包括下一页面的一部分。
在包括示例1-16的任何示例的主题的示例17中,设备可包括中断描述符表(IDT)、采用标识符从IDT检索多个处理程序例程的多个地址的更低功率核、包括该处理程序例程的多个处理程序例程、包括该处理程序例程的地址多个地址、采用多个地址的每个地址在第一指令流水线中执行多个处理程序例程的每个处理程序例程的指令,以将存储接口控制器识别为中断的来源的更低功率组件。
在包括示例1-17的任何示例的主题的示例18中,在第一指令流水线中执行处理程序例程的指令时,更低功率核可从块缓冲器内存储的多个块中检索数据的多个碎片,并且以重新形成下一页面的顺序在页面缓冲器中存储多个数据块,并且多个数据块可包括该数据块。
在包括示例1-18的任何示例的主题的示例19中,作为由更低功率核在页面缓冲器中重新形成下一页面后的第二任务,页面管理器将下一页面从页面缓冲器复制到在与操作系统的系统上下文分开的用户上下文中存储的应用程序例程的应用程序数据缓冲器。
在包括示例1-19的任何示例的主题的示例20中,作为由更低功率核在页面缓冲器中重新形成下一页面后的第二任务,页面管理器可将下一页面从操作系统的系统上下文内的页面缓冲器重新映射到应用程序例程的用户上下文。
在包括示例1-20的任何示例的主题的示例21中,更低功率核可将下一页面从操作系统的系统上下文内的页面缓冲器重新映射到应用程序例程的用户上下文,并且在由更低功率核重新映射下一页面后,更高功能核可跳到下一页面以继续应用程序例程的执行。
在示例22中,计算实现的方法可包括:响应中断,停止在处理器组件的更低功率核的第一指令流水线中的第一执行流程;响应中断,由更低功率核检索处理程序例程的地址;在第一指令流水线中执行处理程序例程的指令,以执行处理中断的第一任务;在更低功率核执行第一任务后,由处理器组件的更高功能核在更高功率核的第二指令流水线中调度处理中断的第二任务的指令的执行在第二指令流水线中的第二执行流程后进行,第一任务比第二任务更加时间敏感。
在包括示例22的示例的主题的示例23中,方法可包括基于处理器组件对资源的需求级别,动态将处理器组件置于其中操作更低功率核和更高功能核两者以执行指令的第一模式和其中操作更低功率核以执行指令,并且不操作更高功能核执行指令的第二模式至少之一中;以及基于是将处理器组件置于第一模式还是第二模式中,选择将中断引导到的更低功率核和更高功能核之一。
在包括示例22-23的任何示例的主题的示例24中,方法可包括在更低功率核接收来自将处理器组件耦合到网络的网络接口控制器(NIC)的中断的传送和作为中断的来源的NIC的标识符,NIC响应接收来自网络的分组而传送中断。
在包括示例22-24的任何示例的主题的示例25中,方法可包括由更低功率核使用标识符从中断描述符表(IDT)检索多个处理程序例程的多个地址,其中,多个处理程序例程可包括该处理程序例程,并且多个地址可包括该处理程序例程的地址;以及在第一指令流水线中执行在多个地址的多个处理程序例程的每个处理程序例程的指令,以将NIC识别为中断的来源。
在包括示例22-25的任何示例的主题的示例26中,方法可包括在第一指令流水线中执行处理程序例程的指令时,从网络分组缓冲器内存储的多个分组的每个分组检索标识符,标识符可指示多个分组的每个分组被引导到的执行流程。
在包括示例22-26的任何示例的主题的示例27中,方法可包括在第一指令流水线中执行处理程序例程的指令时,更低功率核可生成列出与目的地执行流程相关联的多个分组的一个或更多个分组的队列;以及在网络队列缓冲器中存储队列。
在包括示例22-27的任何示例的主题的示例28中,方法可包括在第二指令流水线中执行第二任务的指令时,检索队列;并且在第二指令流水线中执行第二任务的指令时,将队列中列出的来自一个或更多个分组的数据从网络数据缓冲器复制到在与操作系统的系统上下文分开的用户上下文中存储的应用程序例程的应用程序数据缓冲器,应用程序例程包括目的地执行流程。
在包括示例22-28的任何示例的主题的示例29中,方法可包括:在第二指令流水线中执行应用程序例程的指令时,从更高速存储装置中检索应用程序例程的指令的页面以便在第二指令流水线中执行;在第二指令流水线中执行应用程序例程的指令时,检测到页面故障,其中,在第二指令流水线中要执行的应用程序例程的指令的下一页面存储在更低速存储装置中而不是在更高速存储装置中;以及在第一指令流水线中执行页面故障处理程序例程的指令时,响应页面故障,向将处理器组件耦合到更低速存储装置的存储接口控制器请求从更低速存储装置检索下一页面。
在包括示例22-29的任何示例的主题的示例30,方法可在更低功率核接收来自存储接口控制器的中断的传送及作为中断的来源的存储接口控制器的标识符,并且存储接口控制器可响应接收来自更低速存储装置的某个数据块而传送中断。
在包括示例22-30的任何示例的主题的示例31中,方法可包括由更低功率核使用标识符从中断描述符表(IDT)检索多个处理程序例程的多个地址,其中,多个处理程序例程可包括该处理程序例程,并且多个地址可包括该处理程序例程的地址;以及在第一指令流水线中执行在多个地址的多个处理程序例程的每个处理程序例程的指令,以将存储接口控制器识别为中断的来源。
在包括示例22-31的任何示例的主题的示例32中,方法可包括:在第一指令流水线中执行处理程序例程的指令时,由存储接口控制器从块缓冲器内存储的多个数据块中检索数据的多个数据块;并且在第一指令流水线中执行处理程序例程的指令时,以重新形成下一页面的顺序在页面缓冲器中存储多个数据块,多个数据块包括该数据块。
在包括示例22-32的任何示例的主题的示例33中,方法可包括在第二指令流水线中执行第二任务的指令时,作为在页面缓冲器中重新形成下一页面后的第二任务,将下一页面从页面缓冲器复制到在与操作系统的系统上下文分开的用户上下文中存储的应用程序例程的应用程序数据缓冲器。
在包括示例22-33的任何示例的主题的示例34中,方法包括在第二指令流水线中执行第二任务的指令时,作为在页面缓冲器中重新创建下一页面后的第二任务,将下一页面从操作系统的系统上下文内的页面缓冲器重新映射到应用程序例程的用户上下文。
在示例35中,设备包括:处理器组件的更低功率核,更低功率核包括第一指令流水线,并且更低功率核停止在第一指令流水线中的第一执行流程,并且在第一指令流水线中执行页面故障处理程序例程的指令,以执行处理页面故障的第一任务;以及处理器组件的更高功能核,更高功能核包括第二指令流水线,并且更高功能核在第二流水线中执行来自更高速存储装置的应用程序例程的指令,并且响应要由更高功能核执行的应用程序例程的指令的下一页面在更低速存储装置中而不是在更高速存储装置中的存储,提供页面故障的指示到更低功率核。
在包括示例35的主题的示例36中,更低功率核以比更高功能核更低的速率消耗电功率。
在包括示例35-36的任何示例的主题的示例37中,第二指令流水线可包括比第一指令流水线更大数量的指令执行级或执行第一指令流水线不支持的指令的乱序执行的能力的至少之一。
在包括示例35-37的任何示例的主题的示例38中,更低功率核可包括第一高速缓存,更高功能核包括第二高速缓存,并且第二高速缓存可包括比第一高速缓存更大数量的高速缓存行或比第一高速缓存更大的集关联性的至少之一。
在包括示例35-38的任何示例的主题的示例39中,设备可包括耦合处理器组件到更低速存储装置的存储接口控制器,并且在执行页面故障处理程序例程的指令时,更低功率核请求从更低速存储装置检索下一页面。
在包括示例35-39的任何示例的主题的示例40中,设备可包括:块缓冲器;以及中断路由器,接收来自存储接口控制器的中断的传送,并且将中断的接收的指示与作为中断的来源的存储接口控制器的标识符一起传递到处理器组件,存储接口控制器可将中断传送到中断路由器,并且响应接收来自更低速存储装置的某个数据块,在块缓冲器中存储该数据块,该数据块包括下一页面的一部分。
在包括示例35-40的任何示例的主题的示例41中,设备可包括中断描述符表(IDT),并且更低功率核可采用标识符从IDT检索与存储接口控制器相关联的处理程序例程的地址。
在包括示例35-41的任何示例的主题的示例42中,在第一指令流水线中执行处理程序例程的指令时,更低功率核可从块缓冲器内存储的多个块中检索数据的多个碎片,并且可以重新形成下一页面的顺序在页面缓冲器中存储多个数据块,并且多个数据块可包括该数据块。
在包括示例35-42的任何示例的主题的示例43中,在由更低功率核在页面缓冲器中重新形成下一页面后,更高功能核可将下一页面从操作系统的系统上下文内的页面缓冲器重新映射到应用程序例程的用户上下文。
在包括示例35-43的任何示例的主题的示例44中,在页面缓冲器中重新形成下一页面后,更低功率核可将下一页面从操作系统的系统上下文内的页面缓冲器重新映射到应用程序例程的用户上下文,并且在由更低功率核重新映射下一页面后,更高功能核可跳到下一页面以继续应用程序例程的执行。
在示例45中,至少一种机器可读存储介质包括指令,指令在由处理器组件执行时可促使处理器组件:响应中断,停止在处理器组件的更低功率核的第一指令流水线中的第一执行流程;响应中断,由更低功率核检索处理程序例程的地址;在第一指令流水线中执行处理程序例程的指令,以执行处理中断的第一任务;在更低功率核执行第一任务后,由处理器组件的更高功能核在更高功率核的第二指令流水线中调度处理中断的第二任务的指令的执行在第二指令流水线中的第二执行流程后进行,第一任务比第二任务更加时间敏感。
在包括示例45的示例的主题的示例46中,可促使处理器组件基于处理器组件对资源的需求级别,动态将处理器组件置于其中操作更低功率核和更高功能核两者以执行指令的第一模式和其中操作更低功率核以执行指令,并且不操作更高功能核执行指令的第二模式至少之一中;以及基于是将处理器组件置于第一模式还是第二模式中,选择将中断引导到的更低功率核和更高功能核之一。
在包括示例45-46的任何示例的主题的示例47中,可促使处理器组件在更低功率核接收来自将处理器组件耦合到网络的网络接口控制器(NIC)的中断的传送和作为中断的来源的NIC的标识符,NIC响应接收来自网络的分组而传送中断。
在包括示例45-47的任何示例的主题的示例48中,可促使处理器组件通过更低功率核,使用标识符从中断描述符表(IDT)检索多个处理程序例程的多个地址,其中,多个处理程序例程可包括该处理程序例程,并且多个地址可包括该处理程序例程的地址,以及在第一指令流水线中执行在多个地址的多个处理程序例程的每个处理程序例程的指令,以将NIC识别为中断的来源。
在包括示例45-48的任何示例的主题的示例49中,可促使处理器组件在第一指令流水线中执行处理程序例程的指令时,从网络分组缓冲器内存储的多个分组的每个分组检索标识符,并且标识符可指示多个分组的每个分组被引导到的执行流程。
在包括示例45-49的任何示例的主题的示例50中,可促使处理器组件在第一指令流水线中执行处理程序例程的指令时,更低功率核可生成列出与目的地执行流程相关联的多个分组的一个或更多个分组的队列;以及在网络队列缓冲器中存储队列。
在包括示例45-50的任何示例的主题的示例51中,可促使处理器组件在第二指令流水线中执行第二任务的指令时,检索队列;并且在第二指令流水线中执行第二任务的指令时,将队列中列出的来自一个或更多个分组的数据从网络数据缓冲器复制到在与操作系统的系统上下文分开的用户上下文中存储的应用程序例程的应用程序数据缓冲器,应用程序例程包括目的地执行流程。
在包括示例45-51的任何示例的主题的示例52中,可促使处理器组件在第二指令流水线中执行应用程序例程的指令时,从更高速存储装置中检索应用程序例程的指令的页面以便在第二指令流水线中执行;在第二指令流水线中执行应用程序例程的指令时,检测到页面故障,其中,在第二指令流水线中要执行的应用程序例程的指令的下一页面存储在更低速存储装置中而不是在更高速存储装置中;以及在第一指令流水线中执行页面故障处理程序例程的指令时,响应页面故障,从将处理器组件耦合到更低速存储装置的存储接口控制器请求从更低速存储装置检索下一页面。
在包括示例45-52的任何示例的主题的示例53,可促使处理器组件在更低功率核接收来自存储接口控制器的中断的传送及作为中断的来源的存储接口控制器的标识符,并且存储接口控制器可响应接收来自更低速存储装置的某个数据块而传送中断。
在包括示例45-53的任何示例的主题的示例54中,可促使处理器组件通过更低功率核,使用标识符从中断描述符表(IDT)检索多个处理程序例程的多个地址,其中,多个处理程序例程可包括该处理程序例程,并且多个地址可包括该处理程序例程的地址,以及在第一指令流水线中执行在多个地址的多个处理程序例程的每个处理程序例程的指令,以将存储接口控制器识别为中断的来源。
在包括示例45-54的任何示例的主题的示例55中,可促使处理器组件:在第一指令流水线中执行处理程序例程的指令时,由存储接口控制器从块缓冲器内存储的多个数据块中检索数据的多个数据块;并且在第一指令流水线中执行处理程序例程的指令时,以重新形成下一页面的顺序在页面缓冲器中存储多个数据块,多个数据块包括该数据块。
在包括示例45-55的任何示例的主题的示例56中,可促使处理器组件在第二指令流水线中执行第二任务的指令时,作为在页面缓冲器中重新形成下一页面后的第二任务,将下一页面从页面缓冲器复制到在与操作系统的系统上下文分开的用户上下文中存储的应用程序例程的应用程序数据缓冲器。
在包括示例45-56的任何示例的主题的示例57中,可促使处理器组件在第二指令流水线中执行第二任务的指令时,作为在页面缓冲器中重新创建下一页面后的第二任务,将下一页面从操作系统的系统上下文内的页面缓冲器重新映射到应用程序例程的用户上下文。
在示例58中,至少一种机器可读存储介质可包括在由控制器处理器组件执行时,促使计算装置执行任何上述操作的指令。
在示例59中,设备可包括用于执行任何上述操作的部件。

Claims (25)

1.一种设备,包括:
第一处理器核,所述第一处理器核用于执行第一指令流水线中的第一指令;以及
耦合到所述第一处理器核的第二处理器核,所述第二处理器核用于响应所述第一指令的执行而执行第二指令流水线中的第二指令。
2.如权利要求1所述的设备,所述第二指令要求所述第一指令的执行作为执行的先决条件。
3.如权利要求1所述的设备,所述第一指令比所述第二指令更加时间敏感。
4.如权利要求1所述的设备,所述第一处理器核用于响应收到中断而执行所述第一指令。
5.如权利要求4所述的设备,包括:
处理器组件,所述处理器组件包括所述第一处理器核和所述第二处理器核;
第一存储装置,包括多个页面;
接口控制器,用于耦合所述处理器组件到所述第一存储装置和到第二存储装置,所述第一处理器核用于响应所述第一指令的执行,从所述第一存储装置上的所述多个页面中检索至少一个页面,并且将所述至少一个页面存储在所述第二存储装置上。
6.如权利要求5所述的设备,由所述第二处理器核响应页面故障而生成所述中断,所述页面故障响应尝试访问所述第二存储装置上的所述至少一个页面。
7.如权利要求1所述的设备,包括处理器组件,所述处理器组件包括所述第一处理器核和所述第二处理器核,所述第一处理器核是比所述第二处理器核更低功率的核。
8.如权利要求1所述的设备,所述第一处理器核包括比所述第二处理器核更小的指令集。
9.一种系统,包括:
计算装置,包括多个处理器核;
耦合到所述计算装置的存储装置,包括多个指令,所述指令在由所述多个处理器核中的一个或多个处理器核执行时,使得所述多个处理器核中的所述一个或多个处理器核:
经由所述多个处理器核中的第一处理器核执行第一指令流水线中的第一指令;以及
响应所述第一指令的执行,经由所述多个处理器核中的第二处理器核执行第二指令流水线中的第二指令。
10.如权利要求9所述的系统,所述计算装置包括处理器组件,所述处理器组件至少包括所述第一处理器核和所述第二处理器核。
11.如权利要求10所述的系统,所述第一处理器核是比所述第二处理器核更低功率的核。
12.如权利要求10所述的系统,所述第一处理器核包括比所述第二处理器核更小的指令集。
13.如权利要求10所述的系统,所述计算装置是服务器刀片。
14.如权利要求9所述的系统,所述第二指令要求所述第一指令的执行作为执行的先决条件。
15.如权利要求9所述的系统,所述第一指令比所述第二指令更加时间敏感。
16.如权利要求9所述的系统,所述第一处理器核用于响应收到中断而执行所述第一指令。
17.如权利要求16所述的系统,所述存储装置是包括多个页面的第一存储装置,所述系统包括用于耦合所述多个处理器核到所述第一存储装置和到第二存储装置的接口控制器,所述第一处理器核用于响应所述第一指令的执行,从所述第一存储装置上的所述多个页面中检索至少一个页面,并且将所述至少一个页面存储在所述第二存储装置上。
18.如权利要求17所述的系统,由所述第二处理器核响应页面故障而生成所述中断,所述页面故障响应尝试访问所述第二存储装置上的所述至少一个页面。
19.一种包括多个指令的非暂时性计算机可读存储介质,所述指令在由多个处理器核中的一个或多个处理器核执行时,使得所述多个处理器核:
经由所述多个处理器核中的第一处理器核执行第一指令流水线中的第一指令;以及
响应所述第一指令的执行,经由所述多个处理器核中的第二处理器核执行第二指令流水线中的第二指令。
20.如权利要求19所述的非暂时性计算机可读介质,所述第一处理器核是比所述第二处理器核更低功率的核。
21.如权利要求19所述的非暂时性计算机可读介质,所述第一处理器核包括比所述第二处理器核更小的指令集。
22.如权利要求19所述的非暂时性计算机可读介质,所述第二指令要求所述第一指令的执行作为执行的先决条件。
23.如权利要求19所述的非暂时性计算机可读介质,所述第一指令比所述第二指令更加时间敏感。
24.如权利要求19所述的非暂时性计算机可读介质,包括指令,所述指令在由所述多个处理器核中的一个或多个处理器核执行时,使得所述多个处理器核中的所述第一处理器核响应所述第一指令的执行,从第一存储装置上的多个页面中检索至少一个页面,并且将所述至少一个页面存储在第二存储装置上。
25.如权利要求24所述的非暂时性计算机可读介质,所述第一处理器核用于响应收到中断而执行所述第一指令,由所述第二处理器核响应页面故障而生成所述中断,所述页面故障响应尝试访问所述第二存储装置上的所述至少一个页面。
CN201810440040.6A 2014-12-26 2015-11-26 用于控制执行流程的设备和方法 Active CN108647046B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810440040.6A CN108647046B (zh) 2014-12-26 2015-11-26 用于控制执行流程的设备和方法

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US14/583,308 US9563431B2 (en) 2014-12-26 2014-12-26 Techniques for cooperative execution between asymmetric processor cores
US14/583308 2014-12-26
CN201510838847.1A CN105739949B (zh) 2014-12-26 2015-11-26 用于控制执行流程的设备和方法
CN201810440040.6A CN108647046B (zh) 2014-12-26 2015-11-26 用于控制执行流程的设备和方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201510838847.1A Division CN105739949B (zh) 2014-12-26 2015-11-26 用于控制执行流程的设备和方法

Publications (2)

Publication Number Publication Date
CN108647046A true CN108647046A (zh) 2018-10-12
CN108647046B CN108647046B (zh) 2023-11-21

Family

ID=56117277

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201510838847.1A Active CN105739949B (zh) 2014-12-26 2015-11-26 用于控制执行流程的设备和方法
CN201810440040.6A Active CN108647046B (zh) 2014-12-26 2015-11-26 用于控制执行流程的设备和方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201510838847.1A Active CN105739949B (zh) 2014-12-26 2015-11-26 用于控制执行流程的设备和方法

Country Status (4)

Country Link
US (3) US9563431B2 (zh)
KR (1) KR101744126B1 (zh)
CN (2) CN105739949B (zh)
DE (1) DE102015119894B4 (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104197299A (zh) * 2014-08-21 2014-12-10 浙江生辉照明有限公司 照明装置及基于该装置的语音播报系统及方法
US9563431B2 (en) * 2014-12-26 2017-02-07 Intel Corporation Techniques for cooperative execution between asymmetric processor cores
US9715268B2 (en) * 2015-05-08 2017-07-25 Microsoft Technology Licensing, Llc Reducing power by vacating subsets of CPUs and memory
US10541958B2 (en) 2015-08-05 2020-01-21 Facebook, Inc. Controlling a device cloud
US10567479B2 (en) * 2015-08-05 2020-02-18 Facebook, Inc. Managing a device cloud
US10652594B2 (en) 2016-07-07 2020-05-12 Time Warner Cable Enterprises Llc Apparatus and methods for presentation of key frames in encrypted content
US10334334B2 (en) * 2016-07-22 2019-06-25 Intel Corporation Storage sled and techniques for a data center
CN106095696B (zh) * 2016-07-26 2018-11-09 上海航天测控通信研究所 一种基于自适应路由及调度策略的高速缓存装置
CN110731070A (zh) 2017-03-29 2020-01-24 芬基波尔有限责任公司 通过多个交替数据路径进行分组喷射的无阻塞的任意到任意数据中心网络
US10565112B2 (en) 2017-04-10 2020-02-18 Fungible, Inc. Relay consistent memory management in a multiple processor system
WO2019014237A1 (en) * 2017-07-10 2019-01-17 Fungible, Inc. ACCESS NODE FOR DATA CENTERS
US10725825B2 (en) 2017-07-10 2020-07-28 Fungible, Inc. Data processing unit for stream processing
US10958948B2 (en) * 2017-08-29 2021-03-23 Charter Communications Operating, Llc Apparatus and methods for latency reduction in digital content switching operations
US10939142B2 (en) 2018-02-27 2021-03-02 Charter Communications Operating, Llc Apparatus and methods for content storage, distribution and security within a content distribution network
CN108446174B (zh) * 2018-03-06 2022-03-11 苏州大学 基于资源预分配与公共引导代理的多核作业调度方法
US20190041950A1 (en) * 2018-03-28 2019-02-07 Intel Corporation System, Apparatus And Method For Data Driven Low Power State Control Based On Performance Monitoring Information
US10785306B1 (en) * 2019-07-11 2020-09-22 Alibaba Group Holding Limited Data transmission and network interface controller

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1877536A (zh) * 2006-06-30 2006-12-13 浙江大学 嵌入式sram操作系统中断的实现方法
CN101354664A (zh) * 2008-08-19 2009-01-28 中兴通讯股份有限公司 多核处理器中断负载均衡方法和装置
US7734895B1 (en) * 2005-04-28 2010-06-08 Massachusetts Institute Of Technology Configuring sets of processor cores for processing instructions
CN102934084A (zh) * 2010-06-29 2013-02-13 英特尔公司 用于通过将第一核类型与第二核类型耦合来提高功率性能的装置、方法和系统
WO2013085794A1 (en) * 2011-12-06 2013-06-13 Advanced Micro Devices, Inc. Method and apparatus for servicing page fault exceptions
WO2013090605A2 (en) * 2011-12-14 2013-06-20 Advanced Micro Devices, Inc. Saving and restoring shader context state and resuming a faulted apd wavefront
CN103218029A (zh) * 2013-04-09 2013-07-24 电子科技大学 一种超低功耗处理器流水线结构
US20130297909A1 (en) * 2005-09-30 2013-11-07 Brian V. Belmont Dynamic core swapping
US20140068289A1 (en) * 2012-08-28 2014-03-06 Noah B. Beck Mechanism for reducing interrupt latency and power consumption using heterogeneous cores
CN103782272A (zh) * 2011-09-06 2014-05-07 马维尔国际贸易有限公司 在异构核之间切换任务
CN103842933A (zh) * 2011-09-30 2014-06-04 英特尔公司 多核平台中的受约束引导技术
WO2014084919A1 (en) * 2012-11-28 2014-06-05 Intel Corporation Instruction and logic to provide pushing buffer copy and store functionality
CN104049941A (zh) * 2013-03-15 2014-09-17 英特尔公司 跟踪指令的控制流程
US20140304474A1 (en) * 2013-04-04 2014-10-09 Advanced Micro Devices, Inc. Conditional Notification Mechanism

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6298431B1 (en) * 1997-12-31 2001-10-02 Intel Corporation Banked shadowed register file
JP3097648B2 (ja) * 1998-02-04 2000-10-10 日本電気株式会社 情報処理装置及び情報処理方法
US6898696B1 (en) * 1999-06-14 2005-05-24 International Business Machines Corporation Method and system for efficiently restoring a processor's execution state following an interrupt caused by an interruptible instruction
US6725354B1 (en) * 2000-06-15 2004-04-20 International Business Machines Corporation Shared execution unit in a dual core processor
US7865703B2 (en) * 2006-05-05 2011-01-04 International Business Machines Corporation Method and apparatus for executing instrumentation code within alternative processor resources
JP2007328461A (ja) 2006-06-06 2007-12-20 Matsushita Electric Ind Co Ltd 非対称マルチプロセッサ
US20080263324A1 (en) 2006-08-10 2008-10-23 Sehat Sutardja Dynamic core switching
WO2008114975A1 (en) * 2007-03-20 2008-09-25 Min Hur Method and system for managing online shopping mall of lottery type
US8527709B2 (en) * 2007-07-20 2013-09-03 Intel Corporation Technique for preserving cached information during a low power mode
US7996663B2 (en) * 2007-12-27 2011-08-09 Intel Corporation Saving and restoring architectural state for processor cores
DE102008010943A1 (de) * 2008-02-25 2009-09-03 Fujitsu Siemens Computers Gmbh Verfahren zur Behandlung von Unterbrechungsaufforderungen bei einem Prozessor
US8615647B2 (en) * 2008-02-29 2013-12-24 Intel Corporation Migrating execution of thread between cores of different instruction set architecture in multi-core processor and transitioning each core to respective on / off power state
US20090327556A1 (en) * 2008-06-27 2009-12-31 Microsoft Corporation Processor Interrupt Selection
US8892916B2 (en) * 2008-08-06 2014-11-18 International Business Machines Corporation Dynamic core pool management
JP5169731B2 (ja) * 2008-10-24 2013-03-27 富士通セミコンダクター株式会社 マルチプロセッサシステムlsi
US7996595B2 (en) * 2009-04-14 2011-08-09 Lstar Technologies Llc Interrupt arbitration for multiprocessors
US9727388B2 (en) * 2011-12-29 2017-08-08 Intel Corporation Migrating threads between asymmetric cores in a multiple core processor
US8984200B2 (en) * 2012-08-21 2015-03-17 Lenovo (Singapore) Pte. Ltd. Task scheduling in big and little cores
US9411641B2 (en) * 2012-10-04 2016-08-09 Lawrence J. Dickson Method and apparatus implemented in processors for real-time scheduling and task organization based on response time order of magnitude
US9135183B2 (en) * 2013-03-13 2015-09-15 Samsung Electronics Co., Ltd. Multi-threaded memory management
KR20140139371A (ko) * 2013-05-27 2014-12-05 한국전자통신연구원 멀티 코어 시스템 반도체 제어 장치 및 방법
US20150007196A1 (en) * 2013-06-28 2015-01-01 Intel Corporation Processors having heterogeneous cores with different instructions and/or architecural features that are presented to software as homogeneous virtual cores
US9398118B2 (en) * 2013-09-24 2016-07-19 Innovask, Inc. Processing apparatus for bus data
US10386900B2 (en) * 2013-09-24 2019-08-20 Intel Corporation Thread aware power management
US9858115B2 (en) * 2013-10-30 2018-01-02 Mediatek Inc. Task scheduling method for dispatching tasks based on computing power of different processor cores in heterogeneous multi-core processor system and related non-transitory computer readable medium
US20150186160A1 (en) * 2014-01-02 2015-07-02 Advanced Micro Devices, Inc. Configuring processor policies based on predicted durations of active performance states
US10417149B2 (en) * 2014-06-06 2019-09-17 Intel Corporation Self-aligning a processor duty cycle with interrupts
US9563431B2 (en) * 2014-12-26 2017-02-07 Intel Corporation Techniques for cooperative execution between asymmetric processor cores

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7734895B1 (en) * 2005-04-28 2010-06-08 Massachusetts Institute Of Technology Configuring sets of processor cores for processing instructions
US20130297909A1 (en) * 2005-09-30 2013-11-07 Brian V. Belmont Dynamic core swapping
CN1877536A (zh) * 2006-06-30 2006-12-13 浙江大学 嵌入式sram操作系统中断的实现方法
CN101354664A (zh) * 2008-08-19 2009-01-28 中兴通讯股份有限公司 多核处理器中断负载均衡方法和装置
CN102934084A (zh) * 2010-06-29 2013-02-13 英特尔公司 用于通过将第一核类型与第二核类型耦合来提高功率性能的装置、方法和系统
CN103782272A (zh) * 2011-09-06 2014-05-07 马维尔国际贸易有限公司 在异构核之间切换任务
CN103842933A (zh) * 2011-09-30 2014-06-04 英特尔公司 多核平台中的受约束引导技术
WO2013085794A1 (en) * 2011-12-06 2013-06-13 Advanced Micro Devices, Inc. Method and apparatus for servicing page fault exceptions
WO2013090605A2 (en) * 2011-12-14 2013-06-20 Advanced Micro Devices, Inc. Saving and restoring shader context state and resuming a faulted apd wavefront
US20140068289A1 (en) * 2012-08-28 2014-03-06 Noah B. Beck Mechanism for reducing interrupt latency and power consumption using heterogeneous cores
WO2014084919A1 (en) * 2012-11-28 2014-06-05 Intel Corporation Instruction and logic to provide pushing buffer copy and store functionality
CN104049941A (zh) * 2013-03-15 2014-09-17 英特尔公司 跟踪指令的控制流程
US20140304474A1 (en) * 2013-04-04 2014-10-09 Advanced Micro Devices, Inc. Conditional Notification Mechanism
CN103218029A (zh) * 2013-04-09 2013-07-24 电子科技大学 一种超低功耗处理器流水线结构

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
舒生亮: "Matrix DSP中断处理系统与自适应多线程模块的设计与实现", 中国优秀硕士学位论文全文数据库 信息科技辑, pages 137 - 45 *

Also Published As

Publication number Publication date
US20160188344A1 (en) 2016-06-30
US10346175B2 (en) 2019-07-09
DE102015119894A1 (de) 2016-06-30
DE102015119894B4 (de) 2024-07-11
US20190278609A1 (en) 2019-09-12
KR20160079646A (ko) 2016-07-06
CN105739949B (zh) 2018-06-05
KR101744126B1 (ko) 2017-06-07
CN108647046B (zh) 2023-11-21
US10782978B2 (en) 2020-09-22
US9563431B2 (en) 2017-02-07
US20170212762A1 (en) 2017-07-27
CN105739949A (zh) 2016-07-06

Similar Documents

Publication Publication Date Title
CN105739949B (zh) 用于控制执行流程的设备和方法
CN104380258B (zh) 对图形硬件实施调度操作
CN102473109B (zh) 利用批调度的线程调度方法及装置
CN109154924A (zh) 多个上行链路端口设备
CN101727414B (zh) 用于在计算机系统中传递中断的技术
EP3368989B1 (en) Intelligent coded memory architecture with enhanced access scheduler
CN101071403B (zh) 动态更新自适应的空闲计时器
CN102207916A (zh) 一种基于指令预取的多核共享存储器控制设备
CN104520932A (zh) 闪存存储器控制器
CN100489770C (zh) 处理指令的系统和方法
KR20050051672A (ko) 스케일러블 멀티채널 메모리 액세스를 위한 방법 및 메모리제어기
CN109844725A (zh) 点对点互连中的非对称通道
TW200910096A (en) Reordering data responses
CN106991073A (zh) 用于向量运算的数据读写调度器及保留站
CN106557442A (zh) 一种芯片系统
CN110275840A (zh) 在存储器接口上的分布式过程执行和文件系统
CN110447075A (zh) 多内核管芯上存储器微控制器
CN113485643B (zh) 用于数据存取的方法及数据写入的控制器
CN107003944A (zh) 跨分布式存储器的指针追踪
CN105824604B (zh) 多输入多输出处理器流水线数据同步装置及方法
CN105874431A (zh) 减少数据交换负载的计算系统以及相关的数据交换方法
US9952991B1 (en) Systematic method on queuing of descriptors for multiple flash intelligent DMA engine operation
CN107113252A (zh) 用于片上网络的并行方向解码电路
CN109426562A (zh) 优先级加权轮转调度器
JPS61286959A (ja) 分散処理方法

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