CN110888675B - 硬件***和电子设备 - Google Patents
硬件***和电子设备 Download PDFInfo
- Publication number
- CN110888675B CN110888675B CN201811056568.XA CN201811056568A CN110888675B CN 110888675 B CN110888675 B CN 110888675B CN 201811056568 A CN201811056568 A CN 201811056568A CN 110888675 B CN110888675 B CN 110888675B
- Authority
- CN
- China
- Prior art keywords
- task
- cache access
- cache
- subunit
- access
- 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.)
- Active
Links
Images
Classifications
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30047—Prefetch instructions; cache control instructions
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请实施例公开了一种硬件***和电子设备。一种硬件***包括:中央处理器、数据缓存器、缓存访问单元和任务管理器。所述中央处理器与所述任务管理器和缓存访问单元连接;其中,所述数据缓存器与所述任务管理器和所述缓存访问单元连接。所述中央处理器用于,向所述任务管理器和所述缓存访问单元下发至少一个缓存访问任务。所述缓存访问单元,用于执行所述至少一个缓存访问任务以对所述数据缓存器进行访问;所述任务管理器用于,基于所述至少一个缓存访问任务,对所述缓存访问单元执行所述至少一个缓存访问任务进行监控。本申请实施例方案有利于提升硬件***的运转效率和减少中央处理器中断。
Description
技术领域
本申请涉及计算机技术领域,具体涉及了硬件***和电子设备。
背景技术
通常来讲,一个***内部的多个功能模块之间如果有数据交换的话,传统方案一般是通过一块共享的数据缓存来进行。传统方案中,一个功能模块将需要传递数据写入共享的数据缓存之后,需要中断中央处理器,然后由中央处理器通知另一个功能模块数据已经准备好,这样另一个功能模块就可从共享的数据缓存读取到它所需要的数据。
然而,实践过程发现,传统方案由于需不断的中断中央处理器,使得***的运转效率相对较低。
发明内容
本申请实施例提供一种硬件***和电子设备,以期提升硬件***的运转效率和减少中央处理器中断。
本申请第一方面提供一种硬件***,包括:
一种硬件***,其特征在于,包括:中央处理器、数据缓存器、缓存访问单元和任务管理器;
其中,所述中央处理器与所述任务管理器和缓存访问单元连接;
其中,所述数据缓存器与所述任务管理器和所述缓存访问单元连接;
其中,所述中央处理器用于,向所述任务管理器和所述缓存访问单元下发至少一个缓存访问任务;
所述缓存访问单元,用于执行所述至少一个缓存访问任务以对所述数据缓存器进行访问;
所述任务管理器用于,基于所述至少一个缓存访问任务,对所述缓存访问单元执行所述至少一个缓存访问任务进行监控。
在一些可能的实施方式中,所述至少一个缓存访问任务包括缓存访问任务T1和缓存访问任务T0,所述缓存访问任务T0为所述缓存访问任务T1所依赖的缓存访问任务;
所述任务管理器具体用于,在接收到来自所述缓存访问单元的针对所述缓存访问任务T1的访问请求q1之后,基于所述缓存访问任务T0的完成情况判决是否允许响应所述访问请求q1;
若判决允许响应所述访问请求q1,所述任务管理器向所述缓存访问单元发送用于响应所述访问请求q1的访问响应aq1,所述访问响应aq1用于指示允许所述缓存访问单元对所述数据缓存器执行所述缓存访问任务T1。
在一些可能的实施方式中,在基于所述缓存访问任务T0的完成情况判决是否允许响应所述访问请求q1时,
所述任务管理器具体用于,当所述缓存访问任务T0已完成,则判决允许响应所述访问请求q1;当所述缓存访问任务T0未完成,则将所述缓存访问任务T1所请求访问缓存的指针与所述缓存访问任务T0的当前指针进行指针比对,若指针对比通过,则判决允许响应所述访问请求q1;若指针对比未能通过,则判决不允许响应所述访问请求q1。
在一些可能的实施方式中,所述数据缓存器包括多个缓存片,所述缓存访问任务T1包括如下字段:
用于指示所访问缓存片的片标识的第一字段、用于指示所访问缓存片的起始地址的第二字段、用于指示所访问数据的长度的第三字段、用于指示缓存访问任务T1所依赖缓存访问任务T0的字段。
在一些可能的实施方式中,所述访问请求q1包括如下字段:所述第一字段和用于指示发出所述访问请求q1的缓存访问单元的单元标识的第四字段;
或者,
所述访问请求q1包括如下字段:所述第二字段、所述第三字段和所述第四字段;
或者,所述访问请求q1包括如下字段:所述第二字段、所述第三字段和用于指示所述缓存访问任务T1的任务标识的第五字段。
在一些可能的实施方式中,所述缓存访问单元包括如下访问子单元:外部数据读取子单元、外部数据回存子单元、内部数据读取子单元和内部数据回存子单元;
所述硬件***还包括外部存储器和运算单元;
其中,所述外部数据读取子单元和外部数据回存子单元连接于所述外部存储器和所述数据缓存器之间;所述内部数据读取子单元和内部数据回存子单元连接于所述运算单元和所述数据缓存器之间。
其中,所述外部数据读取子单元,用于将从所述外部存储器读取到的数据存入到所述数据缓存器中;
所述外部数据回存子单元,用于将从所述数据缓存器中读取到的数据存入到所述外部存储器中;
其中,所述内部数据读取子单元,用于将从所述数据缓存器读取到的数据提供给所述运算单元运算;
所述内部数据回存子单元,用于将所述运算单元运算得到的结果数据存入到到所述数据缓存器中。
在一些可能的实施方式中,中央处理器通过总线与所述任务管理器、所述外部数据读取子单元、所述外部数据回存子单元、所述内部数据读取子单元和所述内部数据回存子单元连接;
其中,所述中央处理器具体用于通过总线,向所述外部数据读取子单元下发所述外部数据读取子单元的缓存访问任务;并向所述外部数据回存子单元下发所述外部数据回存子单元的缓存访问任务;并向所述内部数据回存子单元下发所述内部数据回存子单元的缓存访问任务,并向所述外部数据回存子单元下发所述外部数据读取回存子单元的缓存访问任务;并向所述任务管理器下发所述外部数据读取子单元、所述外部数据回存子单元、所述内部数据读取子单元和所述内部数据回存子单元的缓存访问任务。
在一些可能的实施方式中,所述任务管理器包括:缓存访问控制器和缓存访问任务队列;
其中,所述缓存访问任务队列用于存储所述中央处理器下发的所述外部数据读取子单元、所述外部数据回存子单元、所述内部数据回存子单元和所述内部数据回存子单元的缓存访问任务;
其中,在基于所述缓存访问任务T1所依赖缓存访问任务T0的完成情况判决是否允许响应所述访问请求q1的方面,所述任务管理器中的所述缓存访问控制器用于,
当所述缓存访问任务T1所依赖缓存访问任务T0已完成,则判决允许响应所述访问请求q1;
当所述缓存访问任务T0未完成,则将所述缓存访问任务T1所请求访问缓存的指针与所述缓存访问任务T0的当前指针进行指针比对,若指针对比通过,则判决允许响应所述访问请求q1;若指针对比未能通过,则判决不允许响应所述访问请求q1。
在一些可能的实施方式中,所述缓存访问任务队列包括第一子队列、第二子队列、第三子队列和第四子队列:
其中,所述第一子队列用于存储所述中央处理器下发的所述外部数据读取子单元的缓存访问任务;
所述第二子队列用于存储所述中央处理器下发的所述外部数据回存子单元的缓存访问任务;
所述第三子队列用于存储所述中央处理器下发的所述内部数据读取子单元的缓存访问任务;
所述第四子队列用于存储所述中央处理器下发的所述内部数据回存子单元的缓存访问任务;
其中,所述缓存访问控制器包括:第一子控制器、第二子控制器、第三子控制器和第四子控制器:
所述第一子控制器为外部数据读取子单元的缓存访问控制器;所述第二子控制器为外部数据回存子单元的缓存访问控制器;所述第三子控制器为内部数据读取子单元的缓存访问控制器;所述第四子控制器为内部数据回存子单元的缓存访问控制器。
本申请第二方面提供一种电子设备,包括:壳体和容纳于所述壳体之中的硬件***,所述硬件***为第一方面提供的任意一种硬件***。
可以看出,上述硬件***中,引入了任务管理器这个区别于中央处理器的硬件,中央处理器主要用于向所述任务管理器和所述缓存访问单元下发缓存访问任务,而任务管理器则用于基于所述缓存访问单元的缓存访问任务,对所述缓存访问单元执行所述至少一个缓存访问任务进行监控。也就是说,缓存访问任务的执行不再需要中央处理器通过中断来控制,而是由任务管理器来负责进行数据缓存器的管理和缓存访问单元的调度,而这就有利于减少中央处理器的中断。由于缓存访问任务的执行可完全由中央处理器之外的其它硬件(即任务管理器)自动协同完成,即可实现中央处理器之外的专用硬件(即区别于中央处理器的任务管理器)自动管理数据缓存器和缓存访问单元,这相比于由中央处理器以兼职方式管理数据缓存器的传统技术(传统技术中,中央处理器除了其主要本职工作外,还需要分管数据缓存器的访问,那么对数据缓存器的管理工作,可认为是中央处理器的兼职工作),专用硬件来管理数据缓存器的响应速度相对更快,进而更有利于提升数据缓存器的利用率;并且由于减少了中央处理器的中断,那么中央处理器可更专注于与***运行相关的本职工作,这就有利于大大提高整个***的运行效率。
在缓存访问单元内部,可基于不同访问机制细分更多子单元,例如当缓存访问单元包括外部数据读取子单元、外部数据回存子单元、内部数据读取子单元和内部数据回存子单元等子单元,任务管理器可协调这些子单元之间的数据存取工作,进而有利于提升数据缓存器的存取效率,有利于进一步提升数据缓存器的利用率。
附图说明
下面对实施例描述中所使用的附图作简单地介绍。
图1-A为本申请实施例提供的一种硬件***架构示意图;
图1-B为本申请实施例提供的另一种硬件***架构示意图;
图1-C为本申请实施例提供的又一种硬件***架构示意图;
图1-D为本申请实施例提供的再一种硬件***架构示意图;
图2为本申请实施例提供的中央处理器通过任务总线向任务管理器和各个缓存访问单元下发任务的示意图;
图3为本申请实施例提供的一种任务管理器的内部架构示意图;
图4为本申请实施例提供的另一种任务管理器的内部架构示意图;
图5是本申请实施例提供的硬件***的一种处理方法的流程示意图;
图6-A和图6-B是本申请实施例提供的任务的两种数据格式的示意图;
图7-A是本申请实施例提供的任务管理器中各子队列缓存任务的一种情况的示意图;
图7-B是本申请实施例提供的任务管理器中各子队列缓存任务的另一种情况的示意图;
图8是本申请实施例提供的一些任务的执行关联关系的示意图。
具体实施方式
本申请实施例提供一种硬件***和电子设备,以期提升硬件***的运转效率和减少中央处理器中断。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本申请保护的范围。
以下分别进行详细说明。其中,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”和“第五”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如,包含了一系列步骤或单元的过程、方法、***、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请实施例力求设计一种硬件***,这种硬件***有利于减少中央处理器的中断和提升硬件***的运转效率。
参见图1-A,图1-A为本申请实施例提供的一种硬件***架构示意图。如图1-A举例所示,硬件***100主要包括:中央处理器110、数据缓存器120、缓存访问单元130和任务管理器140。
其中,中央处理器110与任务管理器140和缓存访问单元130连接。
其中,数据缓存器120与任务管理器140和缓存访问单元130连接。
其中,中央处理器110用于向任务管理器140和缓存访问单元130下发至少一个缓存访问任务(例如1个缓存访问任务或多个缓存访问任务)。
缓存访问单元130用于执行所述至少一个缓存访问任务以对所述数据缓存器120进行访问。
任务管理器140用于基于缓存访问单元130的至少一个缓存访问任务,对所述缓存访问单元130执行所述至少一个缓存访问任务进行监控。
可以看出,上述方案在硬件***中引入了任务管理器这个硬件,中央处理器主要用于向所述任务管理器和所述缓存访问单元下发缓存访问任务,而任务管理器则用于基于所述缓存访问单元的缓存访问任务,对所述缓存访问单元130执行所述至少一个缓存访问任务进行监控。也就是说,缓存访问任务的执行不再需要中央处理器通过中断来控制,而是由任务管理器来负责进行数据缓存器的管理和缓存访问单元的调度,那么这就有利于减少中央处理器的中断。由于缓存访问任务的执行可完全由中央处理器之外的其它硬件(即任务管理器)自动协同完成,即可实现中央处理器之外的专用硬件(即区别于中央处理器的任务管理器)自动管理数据缓存器和缓存访问单元,这相比于由中央处理器以兼职方式管理数据缓存器的传统技术(传统技术中,中央处理器除其主要本职工作外,还需分管数据缓存器的访问,那对数据缓存器的管理工作,可认为是中央处理器的兼职工作),专用硬件管理数据缓存器的响应速度相对更快,进而更有利于提升数据缓存器的利用率;并且由于减少了中央处理器的中断,那么中央处理器可更专注于与***运行相关的本职工作,这就有利于大大提高整个***的运行效率。
在一些可能实施方式中,中央处理器110、数据缓存器120、缓存访问单元130和任务管理器140中的至少两个组件之间可以通过总线连接。具体例如中央处理器110、数据缓存器120、缓存访问单元130和任务管理器140均通过总线来连接。
当然,硬件***100除了可包括图1-A举例所示的组件,也还可能进一步包括其它一些组件。例如参见图1-B,图1-B为本申请实施例提供的另一硬件***架构示意图。如图1-B举例所示,硬件***100还可包括运算单元150。如图1-B举例所示,缓存访问单元130可包括如下访问子单元:内部数据读取子单元133和内部数据回存子单元134。其中,所述内部数据读取子单元133和内部数据回存子单元133连接于所述运算单元150和所述数据缓存器120之间。
其中,所述内部数据读取子单元133可用于将从所述数据缓存器120读取到的数据提供给所述运算单元150运算。所述内部数据回存子单元134可用于将所述运算单元150运算得到的结果数据存入到到所述数据缓存器120中。
其中,运算单元150中可包括至少一个运算子单元,所述至少一个运算子单元例如可包括至少一个卷积运算子单元、至少一个加法运算子单元、至少一个减法运算子单元和/或至少一个其它运算子单元等。
参见图1-C,图1-C为本申请实施例提供的又一硬件***架构示意图。如图1-C举例所示,硬件***100还可包括外部存储器160。如图1-C举例所示,缓存访问单元130可包括如下访问子单元:外部数据读取子单元131和外部数据回存子单元132。所述内部数据读取子单元131和内部数据回存子单元132连接于所述外部存储器160和所述数据缓存器120之间。
其中,所述外部数据读取子单元131用于将从所述外部存储器160读取到的数据存入到所述数据缓存器120中。所述外部数据回存子单元132用于将从所述数据缓存器120中读取到的数据存入到所述外部存储器160中。
参见图1-D,图1-D为本申请实施例提供的再一硬件***架构示意图。如图1-D举例所示,硬件***100也可以既包括运算单元150,并且也还包括外部存储器160。
如图1-D举例所示,缓存访问单元130可包括如下访问子单元:外部数据读取子单元131、外部数据回存子单元132、内部数据读取子单元133和内部数据回存子单元134。其中,缓存访问单元130中的各访问子单元的工作机制参见上述举例描述。
在缓存访问单元内部可基于不同访问机制细分更多子单元,例如缓存访问单元130包括外部数据读取子单元131、外部数据回存子单元132、内部数据读取子单元133和内部数据回存子单元134等子单元,那么任务管理器140可协调这些子单元之间的数据存取工作,进而有利于提升数据缓存器的存取效率,有利于进一步提升数据缓存器120的利用率。
其中,外部存储器160为相对远离计算单元150的存储器,而数据缓存器120为相对靠近计算单元150的存储器。其中,外部存储器120例如可为片内随机存储器、片外随机存储器,具体例如可为双倍速率(double data rate)同步动态随机存储器(SDRAM,synchronousdynamic random access memory)或其它类型的随机存储器。
其中,在本申请的某一些实施例中,缓存访问单元例如可以使用dma(directmemory access,直接内存存取)技术来进行相关数据的访问。
其中,外部数据读取子单元131例如可为eidma(external input dma,外部输入直接内存存取),外部数据读取子单元131可将外部存储器160中的数据读取到数据缓存器120中。
外部数据回存子单元132例如可为eodma(external output dma,外部输出直接内存存取),外部数据回存子单元132可将数据缓存器120中的数据会存到外部存储器160中。
其中,内部数据读取子单元141例如可为idma(input dma,内部输入直接内存存取),内部数据读取子单元141可将数据缓存器120中的数据读取给运算单元150运算。
其中,内部数据回存子单元142例如可为odma(output dma,内部输出直接内存存取),内部数据回存子单元141可将运算单元150的运算结果回存到数据缓存器120中。
中央处理器110例如可包括中央处理单元(CPU,central processing unit)或其他处理器,如数字信号处理器(DSP,digital signal processor)、微处理器、微中央处理器或神经网络计算器等。在一些具体的应用中,硬件***的各组件例如可以通过总线***耦合在一起。其中,总线***除了可以包括数据总线之外,还可包括电源总线、控制总线和状态信号总线等。中央处理器110可能是一种集成电路芯片,具有信号的处理能力。在一些实现过程中,中央处理器110除了可包括执行软件指令的单元,也还可以包括其他硬件加速器,例如可以包括专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
其中,中央处理器110例如用于通过任务总线(task_bus)下发任务。任务管理器140(task manager)进行数据缓存器120的管理和各个缓存访问单元的协调同步管理。
参见图2,图2为中央处理器110通过任务总线(task_bus)向任务管理器和各个缓存访问单元下发任务的示意图。
下面举例任务管理器140协同管理缓存访问单元来访问数据缓存器的一些可能方式。
在一些可能实施方式中,任务管理器140可用于,在接收到来自缓存访问单元的针对缓存访问任务T1的访问请求q1之后,基于所述缓存访问任务T1所依赖缓存访问任务T0的完成情况判决是否允许响应所述访问请求q1。若判决允许响应所述访问请求q1,向所述缓存访问单元发送用于响应所述访问请求q1的访问响应aq1,所述访问响应aq1用于指示允许所述缓存访问单元针对所述数据缓存器执行所述访问请求q1。
例如在基于所述缓存访问任务T1所依赖缓存访问任务T0的完成情况判决是否允许响应所述访问请求q1的方面,任务管理器140可用于,当所述缓存访问任务T1所依赖缓存访问任务T0已完成,则判决允许响应所述访问请求q1;当所述缓存访问任务T0未完成,则可进一步将所述缓存访问任务T1所请求访问缓存的指针与所述缓存访问任务T0的当前指针进行指针比对,若指针对比通过,则判决允许响应所述访问请求q1;若指针对比未能通过,则可判决不允许响应所述访问请求q1。
其中,缓存访问任务T0的当前指针,落后于缓存访问任务T1所请求访问缓存的指针,表示指针对比通过;当缓存访问任务T0的当前指针,未落后于缓存访问任务T1所请求访问缓存的指针,表示指针对比未通过。
其中,缓存访问任务T1依赖于缓存访问任务T0,表示缓存访问任务T1的执行必须依赖于缓存访问任务T0的执行,即缓存访问任务T1的执行是以当缓存访问任务T0的成功执行为基础的,也即当缓存访问任务T0被成功执行之后,才能执行缓存访问任务T1。
例如,假设缓存访问任务T1是读数据缓存器120(data memory),而缓存访问任务T0为写数据缓存器120,那么,缓存访问任务T1从数据缓存器120所要读取的数据,则可能就是缓存访问任务T0向数据缓存器120写入的数据的部分或全部,只有当缓存访问任务T0成功执行后,缓存访问任务T1才能从数据缓存器120读取到相应数据,如果当缓存访问任务T0未成功执行,那么数据缓存器120不存在缓存访问任务T1所要读取的数据,那么,缓存访问任务T1也就无法成功执行,这种情况下说明缓存访问任务T1依赖于缓存访问任务T0。
其中,所述数据缓存器120可以包括多个缓存片(buffer)。
在一些可能实施方式中,缓存访问任务T1可包括如下字段:用于指示所访问缓存片的片标识(buffer ID)的字段、用于指示所访问缓存片的起始地址的字段、用于指示所访问数据的长度的字段、用于指示缓存访问任务T1所依赖缓存访问任务T0的字段等等。可以看出,缓存访问任务中包括的上述字段,有利于较清晰指示出对应所依赖缓存访问任务、所访问的缓存位置和所访问缓存空间长度。
在一些可能实施方式中,所述访问请求q1可包括如下字段:用于指示所访问缓存片的起始地址的字段、用于指示发出所述访问请求q1的缓存访问单元的单元标识的字段;
或者,所述访问请求q1可包括如下字段:用于指示所访问缓存片的起始地址的字段、用于指示所访问数据的长度的字段,用于指示发出所述访问请求q1的缓存访问单元的单元标识的字段;
或者,所述访问请求q1可包括如下字段:用于指示所访问缓存片的起始地址的字段、用于指示所访问数据的长度的字段,用于指示所述缓存访问任务T1的任务标识的字段。
在一些可能实施方式中,当中央处理器110通过总线与任务管理器140、所述外部数据读取子单元131、所述外部数据回存子单元132、所述内部数据读取子单元133和所述内部数据回存子单元134连接。那么,所述中央处理器110可具体用于通过总线,向所述外部数据读取子单元131下发所述外部数据读取子单元131的缓存访问任务;并向所述外部数据回存子单元132下发所述外部数据回存子单元132的缓存访问任务;并向所述内部数据回存子单元133下发所述内部数据回存子单元133的缓存访问任务,并向所述外部数据回存子单元134下发所述外部数据读取回存子单元134的缓存访问任务;并向所述任务管理器140下发所述外部数据读取子单元131、所述外部数据回存子单元132、所述内部数据回存子单元133和所述内部数据回存子单元134的缓存访问任务。
在一些可能实施方式中,参见图3,任务管理器140可包括:缓存访问控制器142和缓存访问任务队列141。其中,所述缓存访问任务队列用于存储所述中央处理器下发的所述外部数据读取子单元、所述外部数据回存子单元、所述内部数据回存子单元和所述内部数据回存子单元的缓存访问任务。
在基于所述缓存访问任务T1所依赖缓存访问任务T0的完成情况判决是否允许响应所述访问请求q1的方面,所述任务管理器140中的所述缓存访问控制器142可用于,当所述缓存访问任务T1所依赖缓存访问任务T0已完成,则判决允许响应所述访问请求q1;当所述缓存访问任务T0未完成,则将所述访问请求q1所请求访问缓存的指针与所述缓存访问任务T0的当前指针进行指针比对,若指针对比通过,则判决允许响应所述访问请求q1;若指针对比未能通过,则判决不允许响应所述访问请求q1。
参见图4,图4举例示出了任务管理器140包括的缓存访问任务队列141和缓存访问控制器142的情况。
其中,缓存访问任务队列141包括可第一子队列(如eidma task队列)、第二子队列(例如eodma task队列)、第三子队列(例如idma task队列)和第四子队列(如odma task队列)。其中,所述第一子队列用于存储所述中央处理器110下发的所述外部数据读取子单元的缓存访问任务。所述第二子队列用于存储所述中央处理器110下发的所述外部数据回存子单元的缓存访问任务。所述第三子队列用于存储所述中央处理器110下发的所述内部数据读取子单元的缓存访问任务。所述第四子队列用于存储所述中央处理器110下发的所述内部数据回存子单元的缓存访问任务。
可以理解,如果在缓存访问任务队列内部进一步进行子队列划分,使得不同子队列存储不同缓存访问子单元所需执行的缓存访问任务,那么将更便于实现缓存访问任务分类管理,有利于简化缓存访问任务的读取复杂度,进而提升缓存访问任务读取效率。
其中,所述缓存访问控制器142包括:
第一子控制器(如eidma缓存访问控制器)、第二子控制器(如eodma缓存访问控制器)、第三子控制器(如idma缓存访问控制器)和第四子控制器(如odma缓存访问控制器)。所述第一子控制器为外部数据读取子单元的缓存访问控制器。所述第二子控制器为外部数据回存子单元的缓存访问控制器;所述第三子控制器为内部数据读取子单元的缓存访问控制器;所述第四子控制器为内部数据回存子单元的缓存访问控制器。
可以看出,若每个缓存访问单元均配置一个对应缓存访问子控制器,那更有利于针对缓存访问单元进行独立控制,进而有利于进一步提高对数据访问单元的协同管控能力。
下面结合附图介绍硬件***的一些工作流程。
参见图5,下面结合图5来介绍硬件***100的另一些工作流程。下面通过举例数据访问任务协同执行过程,来描述中央处理器和任务管理器等部件之间如何协同工作,以完成数据缓存器的数据访问。
501、中央处理器110通过任务总线向任务管理器140、eodma 132、eidma 131、idma133和odma 134下发任务(task)。
其中,访问数据缓存器120的task,会被存入到任务管理器(task manager)140中各自对应的buffer task queue(缓存任务队列)中。其中,在一个实施例中,只有对数据缓存器120进行操作且相互之间有依赖关系的任务,才进入任务管理器140中的buffer taskqueue中。
其中,buffer task queue中的task可指示如下信息:
所访问buffer(缓存片)的buffer ID(缓存片的片标识)、所访问buffer的起始地址、访问的数据长度和当前任务所依赖的任务。
此外,若当前任务所依赖的任务是读data memory,task还可指示出当前任务的输入数据来自哪个单元(可称数据源单元)。若当前任务所依赖的任务写是data memory,task还可指示出当前任务的输出数据去往哪个单元(例如可称为数据目标单元)。
参见图6-A和图6-B,图6-A和图6-B举例介绍了任务的两种数据格式。任务可包括用于指示所访问buffer的bufferID的bufferID字段、用于指示所访问buffer的起始地址的地址字段、用于指示访问的数据长度的长度字段、用于记录当前任务所依赖的任务的依赖任务字段、用于记录数据源单元标识的数据源单元字段或用于记录数据目标单元的数据目标单元字段等。
假设中央处理器通过task_bus下发任务如下:eidma_task1:将数据data001从外部存储器读取到数据缓存器120的buf0中。idma_task1:读取eidma_task1写入buf0中的数据data001,并且,将读取到的数据data001并送入运算单元进行运算。odma_task1:将运算单元针对数据data001进行运算而得到的运算结果数据data002存入数据缓存器120的buf1中。eodma_task1:读取odma task1存入buf1中的运算结果数据data002,并将读取到的运算结果数据data002存入外部存储器中。
参见图7-A,图7-A举例示出了任务管理器中用于存储eodma、eidma、idma和odma的缓存访问任务的各子队列所缓存任务的一种情况。
其中,eodma task queue用于存储eodma的缓存访问任务,eidma task queue用于存储eidma的缓存访问任务。其中,idma task queue用于存储eodma的缓存访问任务,odmatask queue用于存储eodma的缓存访问任务。
502、eidma向任务管理器发送任务eidma_task1的memory request(任务执行请求)。
503、任务管理器接收针对任务eidma_task1的memory request,任务管理器中eidma缓存访问控制器读取eidma task queue中的任务eidma_task1,并判决是否响应针对任务eidma_task1的memory request。
其中,如果任务eidma_task1依赖的任务已经完成,那么就可以响应针对任务eidma_task1的memory request。如果任务eidma_task1所依赖的任务还没有完成,那么不响应针对任务eidma_task1的memory request。若当前request无法响应,那么data memory控制器可对发起请求的相应单元进行反压。其中,反压是指通知发起请求的相应单元延长等待相应响应的容忍时间,例如,正常等待相应响应的容忍时间是2秒,而通过反压则可通知发起请求的相应单元将等待相应响应的容忍时间延长至5秒或其它不少于两秒的时长。
此处以任务eidma_task1依赖的任务已完成为例。那么,任务管理器中的eidma缓存访问控制器可以通知data memory控制器响应任务eidma_task1的memory request,具体可以通过xxx_buf_rdy指令来进行通知。
504、eidma131按照eidma_task1的指引,将待处理数据data001从外部存储器120读取到数据缓存器120的buf0。
505、任务管理器140通知(例如xxx_buf_rdy指令)idma从数据缓存器120中读取数据data001。
506、idma133在接收到任务管理器140的通知后,将计算需使用的数据data001读取给运算单元150。相应的,运算单元150针对数据data001进行运算并且得到运算结果data002。
507、odma134将运算单元150针对数据data001进行运算而得到的运算结果data002回存到数据缓存器120的buf1中。
508、任务管理器140可通知eodma132将数据data002从数据缓存器120的buf1中读取到之后回存到外部存储器160。
509、当任务管理器140通知eodma132将数据data002从数据缓存器120中读取到之后回存到外部存储器160,那么,eodma132将数据data002从数据缓存器120中读取到之后回存到外部存储器160。
可以看出,在上述举例流程中,中央处理器通过任务总线(task_bus)将任务下给eidma、idma、odma、eodma和task manager。eidma、idma、odma和eodma则会根据下发的任务进行工作。其中,task manager则动态监控各个缓存访问单元(eidma、idma、odma和eodma),根据下发的任务进行各个存取单元任务执行的协同管理。
上述举例中,是以eidma、idma、odma、eodma中的每个单元只领取到一个任务为例来进行举例描述,当然,中央处理器也可给它们下发更多任务。例如中央处理器通过task_bus给每个单元的任务也可如下:
eidma_task1:将外部存储器中存储的初始数据data001读取到data memory的buf0中。
idma_task1:读取eidma task1写入buf0中的数据data001,并将读取到的数据data001送入process element进行计算。
odma_task1:将process element计算数据data001而得到的结果数据data002存入data memory的buf1中。
idma_task2:读取odma task1存入buf1中的数据data002,并将读取到的数据data002送入process element进行计算。
odma_task2:将process element计算数据data002而得到的结果数据data003存入data memory的buf0中。
idma_task3:读取odma task2存入buf0中的数据data003,并将读取到的数据data003送入process element进行计算。
odma_task3:将process element计算数据data003而得到的结果数据data004存入data memory的buf1中。
eodma_task1:读取odma task3存入buf1中的数据data004,并读取到的数据data004存入外部存储器。
参见图7-B,图7-B举例示出了任务管理中用于存储eodma、eidma、idma和odma的缓存访问任务的各子队列所缓存任务的另一种情况。
参见图8,图8中举例示出了这些任务的执行关联关系。虚线箭头表示了任务的执行先后顺序。
在图8所示举例中,首先执行eidma_task1,eidma_task1指示将data001写入buf0,依赖于eidma_task1的idma_task1执行于eidma_task1之后,其指示从buf0读取data001给计算单元计算。
odma_task1执行于idma_task1后,odma_task1指示将计算data001而产生的data002写入buf1;依赖于odma_task1的idma_task2执行于odma_task1后,其指示从buf1读取data002给计算单元计算。
odma_task2执行于idma_task2后,odma_task2指示将计算data002而产生的data003写入buf0,依赖于odma_task2的idma_task3执行于odma_task2后,其指示从buf1读取data002给计算单元计算。
odma_task3执行于idma_task3后,odma_task3指示将计算data003而产生的data004写入buf1,依赖odma_task3的eodma_task1执行于odma_task3后,其指示从buf1读取data004,并读取到的数据data004存入外部存储器。
可以理解,中央处理110所下发任务可是多种多样的,并不限于上述的几种举例。其他多个任务的执行过程,可参考上述实施例的举例执行过程,此处不再赘述。
以上所述,以上实施例仅用以说明本申请技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解的是:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (12)
1.一种硬件***,其特征在于,包括:中央处理器、数据缓存器、缓存访问单元和任务管理器,其中,所述任务管理器是区别于所述中央处理器的自动管理所述数据缓存器和所述缓存访问单元的专用硬件;
其中,所述中央处理器与所述任务管理器和缓存访问单元连接;
其中,所述数据缓存器与所述任务管理器和所述缓存访问单元连接;
其中,所述中央处理器用于,向所述任务管理器和所述缓存访问单元下发至少一个缓存访问任务;
所述缓存访问单元,用于执行所述至少一个缓存访问任务以对所述数据缓存器进行访问;
所述任务管理器用于,基于所述至少一个缓存访问任务,对所述缓存访问单元执行所述至少一个缓存访问任务进行监控;
所述缓存访问单元包括如下访问子单元:外部数据读取子单元、外部数据回存子单元、内部数据读取子单元和内部数据回存子单元;
所述硬件***还包括外部存储器和运算单元;
其中,所述外部数据读取子单元和外部数据回存子单元连接于所述外部存储器和所述数据缓存器之间;所述内部数据读取子单元和内部数据回存子单元连接于所述运算单元和所述数据缓存器之间;
其中,所述外部数据读取子单元,用于将从所述外部存储器读取到的数据存入到所述数据缓存器中;
所述外部数据回存子单元,用于将从所述数据缓存器中读取到的数据存入到所述外部存储器中;
其中,所述内部数据读取子单元,用于将从所述数据缓存器读取到的数据提供给所述运算单元运算;
所述内部数据回存子单元,用于将所述运算单元运算得到的结果数据存入到到所述数据缓存器中;
其中,
所述至少一个缓存访问任务包括缓存访问任务T1和缓存访问任务T0,所述缓存访问任务T0为所述缓存访问任务T1所依赖的缓存访问任务;
所述任务管理器具体用于,在接收到来自所述缓存访问单元的针对所述缓存访问任务T1的访问请求q1之后,基于所述缓存访问任务T0的完成情况判决是否允许响应所述访问请求q1;
若判决允许响应所述访问请求q1,所述任务管理器向所述缓存访问单元发送用于响应所述访问请求q1的访问响应aq1,所述访问响应aq1用于指示允许所述缓存访问单元对所述数据缓存器执行所述缓存访问任务T1;
其中,在基于所述缓存访问任务T0的完成情况判决是否允许响应所述访问请求q1时,
所述任务管理器具体用于,当所述缓存访问任务T0已完成,则判决允许响应所述访问请求q1;当所述缓存访问任务T0未完成,则将所述缓存访问任务T1所请求访问缓存的指针与所述缓存访问任务T0的当前指针进行指针比对,若指针对比通过,则判决允许响应所述访问请求q1;若指针对比未能通过,则判决不允许响应所述访问请求q1;
其中,
所述数据缓存器包括多个缓存片,所述缓存访问任务T1包括如下字段:
用于指示所访问缓存片的片标识的第一字段、用于指示所访问缓存片的起始地址的第二字段、用于指示所访问数据的长度的第三字段、用于指示缓存访问任务T1所依赖缓存访问任务T0的字段。
2.根据权利要求1所述的***,其特征在于,所述访问请求q1包括如下字段:所述第一字段和用于指示发出所述访问请求q1的缓存访问单元的单元标识的第四字段;
或者,
所述访问请求q1包括如下字段:所述第二字段、所述第三字段和所述第四字段;
或者,所述访问请求q1包括如下字段:所述第二字段、所述第三字段和用于指示所述缓存访问任务T1的任务标识的第五字段。
3.根据权利要求1至2任意一项所述的***,其特征在于,所述中央处理器通过总线与所述任务管理器、所述外部数据读取子单元、所述外部数据回存子单元、所述内部数据读取子单元和所述内部数据回存子单元连接;
其中,所述中央处理器具体用于通过总线,向所述外部数据读取子单元下发所述外部数据读取子单元的缓存访问任务;并向所述外部数据回存子单元下发所述外部数据回存子单元的缓存访问任务;并向所述内部数据回存子单元下发所述内部数据回存子单元的缓存访问任务,并向所述外部数据回存子单元下发所述外部数据读取回存子单元的缓存访问任务;并向所述任务管理器下发所述外部数据读取子单元、所述外部数据回存子单元、所述内部数据读取子单元和所述内部数据回存子单元的缓存访问任务。
4.根据权利要求1至2任意一项所述的***,其特征在于,
所述任务管理器包括:缓存访问控制器和缓存访问任务队列;
其中,所述缓存访问任务队列用于存储所述中央处理器下发的所述外部数据读取子单元、所述外部数据回存子单元、所述内部数据回存子单元和所述内部数据回存子单元的缓存访问任务;
其中,在基于所述缓存访问任务T1所依赖缓存访问任务T0的完成情况判决是否允许响应所述访问请求q1的方面,所述缓存访问控制器用于,
当所述缓存访问任务T1所依赖缓存访问任务T0已完成,则判决允许响应所述访问请求q1;
当所述缓存访问任务T0未完成,则将所述缓存访问任务T1所请求访问缓存的指针与所述缓存访问任务T0的当前指针进行指针比对,若指针对比通过,则判决允许响应所述访问请求q1;若指针对比未能通过,则判决不允许响应所述访问请求q1。
5.根据权利要求3所述的***,其特征在于,
所述任务管理器包括:缓存访问控制器和缓存访问任务队列;
其中,所述缓存访问任务队列用于存储所述中央处理器下发的所述外部数据读取子单元、所述外部数据回存子单元、所述内部数据回存子单元和所述内部数据回存子单元的缓存访问任务;
其中,在基于所述缓存访问任务T1所依赖缓存访问任务T0的完成情况判决是否允许响应所述访问请求q1的方面,所述缓存访问控制器用于,
当所述缓存访问任务T1所依赖缓存访问任务T0已完成,则判决允许响应所述访问请求q1;
当所述缓存访问任务T0未完成,则将所述缓存访问任务T1所请求访问缓存的指针与所述缓存访问任务T0的当前指针进行指针比对,若指针对比通过,则判决允许响应所述访问请求q1;若指针对比未能通过,则判决不允许响应所述访问请求q1。
6.根据权利要求4所述的***,其特征在于,所述缓存访问任务队列包括第一子队列、第二子队列、第三子队列和第四子队列:
其中,所述第一子队列用于存储所述中央处理器下发的所述外部数据读取子单元的缓存访问任务;
所述第二子队列用于存储所述中央处理器下发的所述外部数据回存子单元的缓存访问任务;
所述第三子队列用于存储所述中央处理器下发的所述内部数据读取子单元的缓存访问任务;
所述第四子队列用于存储所述中央处理器下发的所述内部数据回存子单元的缓存访问任务;
其中,所述缓存访问控制器包括:第一子控制器、第二子控制器、第三子控制器和第四子控制器:
所述第一子控制器为外部数据读取子单元的缓存访问控制器;所述第二子控制器为外部数据回存子单元的缓存访问控制器;所述第三子控制器为内部数据读取子单元的缓存访问控制器;所述第四子控制器为内部数据回存子单元的缓存访问控制器。
7.一种硬件***,其特征在于,包括:中央处理器、数据缓存器、缓存访问单元和任务管理器,其中,所述任务管理器是区别于所述中央处理器的自动管理所述数据缓存器和所述缓存访问单元的专用硬件;
其中,所述中央处理器与所述任务管理器和缓存访问单元连接;
其中,所述数据缓存器与所述任务管理器和所述缓存访问单元连接;
其中,所述中央处理器用于,向所述任务管理器和所述缓存访问单元下发至少一个缓存访问任务;
所述缓存访问单元,用于执行所述至少一个缓存访问任务以对所述数据缓存器进行访问;
所述任务管理器用于,基于所述至少一个缓存访问任务,对所述缓存访问单元执行所述至少一个缓存访问任务进行监控;
其中,
所述至少一个缓存访问任务包括缓存访问任务T1和缓存访问任务T0,所述缓存访问任务T0为所述缓存访问任务T1所依赖的缓存访问任务;
所述任务管理器具体用于,在接收到来自所述缓存访问单元的针对所述缓存访问任务T1的访问请求q1之后,基于所述缓存访问任务T0的完成情况判决是否允许响应所述访问请求q1;
若判决允许响应所述访问请求q1,所述任务管理器向所述缓存访问单元发送用于响应所述访问请求q1的访问响应aq1,所述访问响应aq1用于指示允许所述缓存访问单元对所述数据缓存器执行所述缓存访问任务T1;
所述任务管理器包括:缓存访问控制器和缓存访问任务队列;
其中,所述缓存访问任务队列用于存储所述中央处理器下发的外部数据读取子单元、外部数据回存子单元、内部数据回存子单元和内部数据回存子单元的缓存访问任务;
其中,在基于所述缓存访问任务T1所依赖缓存访问任务T0的完成情况判决是否允许响应所述访问请求q1的方面,所述缓存访问控制器用于,
当所述缓存访问任务T1所依赖缓存访问任务T0已完成,则判决允许响应所述访问请求q1;
当所述缓存访问任务T0未完成,将所述缓存访问任务T1所请求访问缓存的指针与所述缓存访问任务T0的当前指针进行指针比对,若指针对比通过,则判决允许响应所述访问请求q1;若指针对比未能通过,则判决不允许响应所述访问请求q1;
其中,在基于所述缓存访问任务T0的完成情况判决是否允许响应所述访问请求q1时,
所述任务管理器具体用于,当所述缓存访问任务T0已完成,则判决允许响应所述访问请求q1;当所述缓存访问任务T0未完成,则将所述缓存访问任务T1所请求访问缓存的指针与所述缓存访问任务T0的当前指针进行指针比对,若指针对比通过,则判决允许响应所述访问请求q1;若指针对比未能通过,则判决不允许响应所述访问请求q1;
其中,
所述数据缓存器包括多个缓存片,所述缓存访问任务T1包括如下字段:
用于指示所访问缓存片的片标识的第一字段、用于指示所访问缓存片的起始地址的第二字段、用于指示所访问数据的长度的第三字段、用于指示缓存访问任务T1所依赖缓存访问任务T0的字段。
8.根据权利要求7所述的***,其特征在于,
所述访问请求q1包括如下字段:所述第一字段和用于指示发出所述访问请求q1的缓存访问单元的单元标识的第四字段;
或者,
所述访问请求q1包括如下字段:所述第二字段、所述第三字段和所述第四字段;
或者,所述访问请求q1包括如下字段:所述第二字段、所述第三字段和用于指示所述缓存访问任务T1的任务标识的第五字段。
9.根据权利要求7至8任意一项所述的***,其特征在于,所述缓存访问单元包括如下访问子单元:外部数据读取子单元、外部数据回存子单元、内部数据读取子单元和内部数据回存子单元;
所述硬件***还包括外部存储器和运算单元;
其中,所述外部数据读取子单元和外部数据回存子单元连接于所述外部存储器和所述数据缓存器之间;所述内部数据读取子单元和内部数据回存子单元连接于所述运算单元和所述数据缓存器之间;
其中,所述外部数据读取子单元,用于将从所述外部存储器读取到的数据存入到所述数据缓存器中;
所述外部数据回存子单元,用于将从所述数据缓存器中读取到的数据存入到所述外部存储器中;
其中,所述内部数据读取子单元,用于将从所述数据缓存器读取到的数据提供给所述运算单元运算;
所述内部数据回存子单元,用于将所述运算单元运算得到的结果数据存入到到所述数据缓存器中。
10.根据权利要求9所述的***,其特征在于,所述中央处理器通过总线与所述任务管理器、所述外部数据读取子单元、所述外部数据回存子单元、所述内部数据读取子单元和所述内部数据回存子单元连接;
其中,所述中央处理器具体用于通过总线,向所述外部数据读取子单元下发所述外部数据读取子单元的缓存访问任务;并向所述外部数据回存子单元下发所述外部数据回存子单元的缓存访问任务;并向所述内部数据回存子单元下发所述内部数据回存子单元的缓存访问任务,并向所述外部数据回存子单元下发所述外部数据读取回存子单元的缓存访问任务;并向所述任务管理器下发所述外部数据读取子单元、所述外部数据回存子单元、所述内部数据读取子单元和所述内部数据回存子单元的缓存访问任务。
11.根据权利要求7所述的***,其特征在于,所述缓存访问任务队列包括第一子队列、第二子队列、第三子队列和第四子队列:
其中,所述第一子队列用于存储所述中央处理器下发的所述外部数据读取子单元的缓存访问任务;
所述第二子队列用于存储所述中央处理器下发的所述外部数据回存子单元的缓存访问任务;
所述第三子队列用于存储所述中央处理器下发的所述内部数据读取子单元的缓存访问任务;
所述第四子队列用于存储所述中央处理器下发的所述内部数据回存子单元的缓存访问任务;
其中,所述缓存访问控制器包括:第一子控制器、第二子控制器、第三子控制器和第四子控制器:
所述第一子控制器为外部数据读取子单元的缓存访问控制器;所述第二子控制器为外部数据回存子单元的缓存访问控制器;所述第三子控制器为内部数据读取子单元的缓存访问控制器;所述第四子控制器为内部数据回存子单元的缓存访问控制器。
12.一种电子设备,其特征在于,包括:壳体和容纳于所述壳体之中的硬件***,所述硬件***为如权利要求1至11任意一项所述的硬件***。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811056568.XA CN110888675B (zh) | 2018-09-11 | 2018-09-11 | 硬件***和电子设备 |
PCT/CN2018/124854 WO2020052171A1 (zh) | 2018-09-11 | 2018-12-28 | 硬件***和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811056568.XA CN110888675B (zh) | 2018-09-11 | 2018-09-11 | 硬件***和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110888675A CN110888675A (zh) | 2020-03-17 |
CN110888675B true CN110888675B (zh) | 2021-04-06 |
Family
ID=69745493
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811056568.XA Active CN110888675B (zh) | 2018-09-11 | 2018-09-11 | 硬件***和电子设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110888675B (zh) |
WO (1) | WO2020052171A1 (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6356963B1 (en) * | 1996-07-19 | 2002-03-12 | Compaq Computer Corporation | Long latency interrupt handling and input/output write posting |
CN108241509A (zh) * | 2016-12-27 | 2018-07-03 | 英特尔公司 | 用于高效地处理存储器排序缓冲器的分配的方法和装置 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1276372C (zh) * | 2000-09-29 | 2006-09-20 | 艾拉克瑞技术公司 | 智能网络存储接口***和装置 |
JP4390694B2 (ja) * | 2004-12-24 | 2009-12-24 | 富士通株式会社 | Dma回路及びこれを用いたディスクアレイ装置 |
US8458380B2 (en) * | 2008-03-26 | 2013-06-04 | Qualcomm Incorporated | Off-line task list architecture utilizing tightly coupled memory system |
CN101997777B (zh) * | 2010-11-16 | 2012-10-10 | 福建星网锐捷网络有限公司 | 中断处理方法、装置和网络设备 |
CN102073481B (zh) * | 2011-01-14 | 2013-07-03 | 上海交通大学 | 多核dsp可重构专用集成电路*** |
US8819045B2 (en) * | 2011-03-28 | 2014-08-26 | Citrix Systems, Inc. | Systems and methods of UTF-8 pattern matching |
US9804971B2 (en) * | 2012-01-17 | 2017-10-31 | International Business Machines Corporation | Cache management of track removal in a cache for storage |
CN102929714B (zh) * | 2012-10-19 | 2015-05-13 | 国电南京自动化股份有限公司 | 基于uC/OS-II的硬件任务管理器 |
CN103902364B (zh) * | 2012-12-25 | 2018-10-30 | 腾讯科技(深圳)有限公司 | 一种物理资源管理方法、装置及智能终端设备 |
US9519591B2 (en) * | 2013-06-22 | 2016-12-13 | Microsoft Technology Licensing, Llc | Latch-free, log-structured storage for multiple access methods |
CN105677455A (zh) * | 2014-11-21 | 2016-06-15 | 深圳市中兴微电子技术有限公司 | 一种设备调度方法及任务管理器 |
KR20160061726A (ko) * | 2014-11-24 | 2016-06-01 | 삼성전자주식회사 | 인터럽트 핸들링 방법 |
US10713210B2 (en) * | 2015-10-13 | 2020-07-14 | Microsoft Technology Licensing, Llc | Distributed self-directed lock-free RDMA-based B-tree key-value manager |
CN105511964B (zh) * | 2015-11-30 | 2019-03-19 | 华为技术有限公司 | I/o请求的处理方法和装置 |
-
2018
- 2018-09-11 CN CN201811056568.XA patent/CN110888675B/zh active Active
- 2018-12-28 WO PCT/CN2018/124854 patent/WO2020052171A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6356963B1 (en) * | 1996-07-19 | 2002-03-12 | Compaq Computer Corporation | Long latency interrupt handling and input/output write posting |
CN108241509A (zh) * | 2016-12-27 | 2018-07-03 | 英特尔公司 | 用于高效地处理存储器排序缓冲器的分配的方法和装置 |
Non-Patent Citations (1)
Title |
---|
基于Cache锁和直接缓存访问的网络处理优化方法;苏文等;《计算机研究与发展》;20140315;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110888675A (zh) | 2020-03-17 |
WO2020052171A1 (zh) | 2020-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7117285B2 (en) | Method and system for efficiently directing interrupts | |
US9606838B2 (en) | Dynamically configurable hardware queues for dispatching jobs to a plurality of hardware acceleration engines | |
US11093297B2 (en) | Workload optimization system | |
EP3090344B1 (en) | Dynamic checkpointing systems and methods | |
KR100977662B1 (ko) | 2-레벨 인터럽트 서비스 루틴을 제공하기 위한 방법 및 프로세서 | |
US8713287B2 (en) | Off-loading of processing from a processor blade to storage blades based on processing activity, availability of cache, and other status indicators | |
US20190188034A1 (en) | Thread pool and task queuing method and system | |
EP1770520A2 (en) | Operating cell processors over a network | |
US20120297216A1 (en) | Dynamically selecting active polling or timed waits | |
US10614004B2 (en) | Memory transaction prioritization | |
US20110219373A1 (en) | Virtual machine management apparatus and virtualization method for virtualization-supporting terminal platform | |
KR20180010951A (ko) | 데이터 스토리지 시스템의 낮은 쓰기 레이턴시를 얻는 방법 | |
US20110047550A1 (en) | Software program execution device, software program execution method, and program | |
US9286129B2 (en) | Termination of requests in a distributed coprocessor system | |
US8862786B2 (en) | Program execution with improved power efficiency | |
US7779411B2 (en) | System, method and medium for providing asynchronous input and output with less system calls to and from an operating system | |
CN110888675B (zh) | 硬件***和电子设备 | |
US20100205379A1 (en) | Cache-line based notification | |
CN116303132A (zh) | 一种数据缓存方法、装置、设备以及存储介质 | |
CN113076189B (zh) | 具有多数据通路的数据处理***及用多数据通路构建虚拟电子设备 | |
CN113076180B (zh) | 上行数据通路的构建方法及数据处理*** | |
EP3853724B1 (en) | I/o completion polling for low latency storage device | |
CN108958905B (zh) | 嵌入式多核中央处理器的轻量级操作*** | |
US20240160364A1 (en) | Allocation of resources when processing at memory level through memory request scheduling | |
US10788987B2 (en) | Data storage system employing service infrastructure for functional modules |
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 |