CN111290856B - 数据处理装置和方法 - Google Patents

数据处理装置和方法 Download PDF

Info

Publication number
CN111290856B
CN111290856B CN202010207504.6A CN202010207504A CN111290856B CN 111290856 B CN111290856 B CN 111290856B CN 202010207504 A CN202010207504 A CN 202010207504A CN 111290856 B CN111290856 B CN 111290856B
Authority
CN
China
Prior art keywords
data
data queue
processed
queue
information
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
Application number
CN202010207504.6A
Other languages
English (en)
Other versions
CN111290856A (zh
Inventor
黄朝波
董伸
黄品章
邱模炯
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.)
Ucloud Technology Co ltd
Original Assignee
Ucloud Technology Co ltd
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 Ucloud Technology Co ltd filed Critical Ucloud Technology Co ltd
Priority to CN202010207504.6A priority Critical patent/CN111290856B/zh
Publication of CN111290856A publication Critical patent/CN111290856A/zh
Application granted granted Critical
Publication of CN111290856B publication Critical patent/CN111290856B/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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • 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/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • 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/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • 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

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 Security & Cryptography (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本申请提供一种数据处理装置和方法,该装置包括:全局寄存器模块,硬件处理模块和环境引擎模块,环境引擎模块将从内存读取的待处理数据队列的配置信息写入配置寄存器,并将状态寄存器存储的硬件处理模块处理后的数据队列的状态信息写入内存;内存存储所有数据队列的配置信息和状态信息;数据队列的配置信息和状态信息的存储地址根据全局寄存器模块存储的全局控制信息确定;硬件处理模块根据配置寄存器的配置信息处理每个数据队列的数据,并将处理后的数据队列的状态信息写入状态寄存器。本申请提供的数据处理装置由环境引擎模块实现寄存器的读写,硬件处理模块处理数据队列时不需要与CPU进行交互,从而有效的提高硬件处理模块的效率。

Description

数据处理装置和方法
技术领域
本发明涉及计算机技术领域,特别涉及一种数据处理装置和方法。
背景技术
现有的计算机系统一般包括运行各种软件的中央处理器,即CPU,以及若干个数据处理装置,用于根据预设的处理逻辑以及配置寄存器中的配置信息处理数据队列中的数据,并在处理后将数据队列的状态信息写入状态寄存器;其中,数据队列的配置信息用于控制该数据队列的数据被处理的过程,数据队列的状态信息表示该数据队列的数据被处理后的状态。
不同的数据队列的配置信息和状态信息也不相同。数据处理装置开始处理一个数据队列的数据前,需要由CPU将该数据队列的配置信息从内存写入配置寄存器,处理结束后,需要由CPU将该数据队列的状态信息从状态寄存器写入内存。
在有多个数据队列的数据需要处理的场景中,CPU执行上述读写操作的效率较低,进而降低了数据处理装置的处理效率。
发明内容
基于上述现有技术的缺点,本申请提供一种数据处理装置和方法,以提高数据处理装置的处理效率。
本申请提供一种数据处理装置,包括:全局寄存器模块,硬件处理模块和环境引擎模块,所述环境引擎模块包括配置寄存器和状态寄存器;
所述环境引擎模块用于将从内存读取的、且由所述硬件处理模块指定的待处理数据队列的配置信息写入所述配置寄存器,并将所述状态寄存器存储、且由所述硬件处理模块处理后的数据队列的状态信息写入所述内存;其中,所述内存存储每一个数据队列的配置信息和状态信息;所述数据队列的配置信息和状态信息的存储地址根据所述全局寄存器模块存储的全局控制信息确定;
所述硬件处理模块用于根据所述环境引擎模块的配置寄存器存储的所述待处理数据队列的配置信息处理所述待处理数据队列的数据,并将处理后的数据队列的状态信息写入所述状态寄存器。
可选的,所述环境引擎模块将所述硬件处理模块指定的待处理数据队列的配置信息写入所述配置寄存器时,具体用于:
接收所述硬件处理模块发送的所述待处理数据队列的队列标识;
利用所述待处理数据队列的队列标识,在预先从所述内存读取并缓存的多个配置信息中查找得到所述待处理数据队列的配置信息;
将所述待处理数据队列的配置信息写入所述配置寄存器。
可选的,所述环境引擎模块从所述内存读取并缓存配置信息的方式,包括:
所述环境引擎模块基于调度策略预测所述硬件处理模块的处理顺序,按时间先后读取并缓存前N个数据队列的配置信息;其中,N根据所述环境引擎模块的可用缓存空间确定;所述调度策略为所述硬件处理模块确定缓存的多个数据队列的处理顺序所依据的调度策略。
可选的,所述全局控制信息包括:
每一个所述数据队列的配置信息的存储地址,以及每一个所述数据队列的状态信息的存储地址;
其中,所述环境引擎模块从所述内存读取待处理数据队列的配置信息时,用于利用所述待处理数据队列的标识,从所述全局寄存器模块查找得到所述待处理数据队列的配置信息的存储地址;并从所述待处理数据队列的配置信息的存储地址读取所述待处理数据队列的配置信息;
所述环境引擎模块将所述硬件处理模块处理后的数据队列的状态信息写入内存时,用于利用所述处理后的数据队列的队列标识,从所述全局寄存器模块查找得到所述处理后的数据队列的状态信息的存储地址;再向所述处理后的数据队列的状态信息的存储地址写入所述处理后的数据队列的状态信息。
可选的,所述全局控制信息包括:
基准地址,每一个所述数据队列的信息存储空间以及每一个所述数据队列的配置信息的数据量;
其中,所述环境引擎模块从所述内存读取待处理数据队列的配置信息时,用于利用所述数据队列的标识,所述基准地址,以及每一个所述数据队列的信息存储空间计算得到所述数据队列的配置信息的存储地址;并从所述待处理数据队列的配置信息的存储地址读取所述待处理数据队列的配置信息;
所述环境引擎模块将所述硬件处理模块处理后的数据队列的状态信息写入内存时,用于利用所述处理后的数据队列的队列标识,基准地址,每一个所述数据队列的信息存储空间以及所述处理后的数据队列的配置信息的数据量计算得到所述处理后的数据队列的状态信息的存储地址;再向所述处理后的数据队列的状态信息的存储地址写入所述处理后的数据队列的状态信息。
可选的,所述全局控制信息包括每一个所述数据队列的开关信息,所述数据队列的开关信息用于控制对应的数据队列的数据是否被所述硬件处理模块处理。
本申请提供一种数据处理方法,应用于数据处理装置,其中,所述数据处理装置包括:全局寄存器模块,硬件处理模块和环境引擎模块,所述环境引擎模块包括配置寄存器和状态寄存器,所述控制方法包括:
所述环境引擎模块将所述硬件处理模块指定的待处理数据队列的配置信息写入所述配置寄存器,使所述硬件处理模块根据所述待处理数据队列的配置信息处理所述待处理数据队列的数据;其中,所述待处理数据队列的配置信息由所述环境引擎模块从内存读取,所述内存用于存储每一个所述数据队里的配置信息和状态信息;所述数据队列的配置信息和状态信息的存储地址根据所述全局寄存器模块存储的全局控制信息确定;
所述待处理数据队列的数据被所述硬件处理模块处理后,所述环境引擎模块从所述状态寄存器读取所述待处理数据队列的状态信息并将所述状态信息写入所述内存。
可选的,所述环境引擎模块将所述硬件处理模块指定的待处理数据队列的配置信息写入所述配置寄存器,包括:
所述环境引擎模块接收所述硬件处理模块发送的所述待处理数据队列的队列标识;
所述环境引擎模块利用所述待处理数据队列的队列标识在预先从内存读取并缓存的多个配置信息中查找得到所述待处理数据队列的配置信息;
所述环境引擎模块将所述待处理数据队列的配置信息写入所述配置寄存器。
可选的,所述环境引擎模块基于调度策略预测所述硬件处理模块的处理顺序,按时间先后读取并缓存前N个数据队列的配置信息;其中,N根据所述环境引擎模块的可用缓存空间确定;所述调度策略为所述硬件处理模块确定缓存的多个数据队列的处理顺序所依据的调度策略。
可选的,所述全局控制信息包括:
每一个所述数据队列的配置信息的存储地址,以及每一个所述数据队列的状态信息的存储地址;
其中,所述环境引擎模块从内存读取待处理数据队列的配置信息的过程,包括:
利用所述待处理数据队列的标识,从所述全局寄存器模块查找得到所述待处理数据队列的配置信息的存储地址;
从所述待处理数据队列的配置信息的存储地址读取所述待处理数据队列的配置信息;
所述环境引擎模块将所述待处理数据队列的状态信息写入内存的过程包括:
利用所述待处理数据队列的标识,从所述全局寄存器模块查找得到所述待处理数据队列的状态信息的存储地址;
向所述待处理数据队列的状态信息的存储地址写入所述数据队列的状态信息。
本申请提供一种数据处理装置和方法,该装置包括:全局寄存器模块,硬件处理模块和环境引擎模块,环境引擎模块将从内存读取的待处理数据队列的配置信息写入配置寄存器,并将状态寄存器存储的硬件处理模块处理后的数据队列的状态信息写入内存;内存存储所有数据队列的配置信息和状态信息;数据队列的配置信息和状态信息的存储地址根据全局寄存器模块存储的全局控制信息确定;硬件处理模块根据配置寄存器的配置信息处理每个数据队列的数据,并将处理后的数据队列的状态信息写入状态寄存器。本申请提供的数据处理装置由环境引擎模块实现寄存器的读写,硬件处理模块处理数据队列时不需要与CPU进行交互,从而有效的提高硬件处理模块的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种数据处理装置的结构示意图;
图2为本申请实施例提供的一种多个数据队列的环境信息的存储方式的示意图;
图3为本申请实施例提供的一种本申请提供的数据处理装置处理数据的方法的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了方便理解本申请提供的数据处理装置,下面首先对本申请所涉及的一些术语进行解释,并说明本申请所提供的数据处理装置的一种应用场景。
数据处理装置,泛指计算机系统中,专门用于实现某种特定的数据处理功能的硬件设备,包括但不限于视频解码装置,音频转换装置和数据加密装置。每一个数据处理装置均包含对应的用于处理数据的硬件处理模块,例如,视频解码装置包含的视频解码模块用于对视频数据进行解码,音频转换装置包含的音频转换模块用于将音频数据转换成模拟音频信号,数据加密装置包含的数据加密模块用于按预设的加密算法对加密输入数据。硬件处理模块所处理的数据可以由运行于计算机系统的中央处理器CPU的软件提供,例如,视频软件产生需要视频解码模块解码的视频数据,音乐播放器产生需要音频转换模块转换的音频数据,数据加密软件提供等待音频转换模块加密的数据;也可以由其他数据处理装置提供,也即是说,当前数据处理装置的输入数据可以是其他数据处理装置的输出数据。
数据队列,是一种硬件处理模块需要处理的数据在计算机中的存储形式。数据队列由软件创建,软件在计算机内存中创建了数据队列后,就可以将需要数据处理装置处理的数据从数据队列的队尾写入,数据处理装置则从数据队列的队头取出数据以进行处理。进一步的,存在多个数据队列时,数据处理装置可以实现针对每一个数据队列实现一个对应的硬件通道,每一个硬件通道用于处理一个对应的数据队列。
可以理解的,不同的软件使用的数据队列也不同。另外需要说明的是,同一个软件也可能创建多个数据队列,一般的,有多种具体处理方式存在差异的数据时,就需要对每一种处理方式的数据建立一个队列。以视频解码装置为例,视频解码装置可以支持多种解码格式,若一个软件提供了两个视频片段A和B,并且指定片段A的解码格式和片段B的解码格式不同,那么软件就会创建两个数据队列,分别用于存储片段A的数据和片段B的数据。
数据队列的寄存器上下文(context),也可以称为数据队列的环境信息,每一个数据队列均具有对应的环境信息,一个数据队列的环境信息又具体分为配置信息(也可以称为配置上下文,config context)和状态信息(也可以称为状态上下文,status context)两类。一个数据队列的配置信息用于控制这个数据队列被数据处理装置处理时的具体处理方式,状态信息则用于指示这个数据队列输出的数据被数据处理装置处理后的状态。
以支持多种解码格式的视频解码装置为例,数据队列的配置信息用于控制视频解码装置以哪一种解码格式解码这个数据队列的数据,状态信息则用于指示这个数据队列输出的数据是否解码成功。
显然,在一个数据队列的初始化阶段,也就是创建成功但未开始被数据处理装置处理的阶段,这个数据队列的状态信息为空,内存中只有创建这个数据队列的软件设置的这个数据队列的配置信息,在这个数据队列开始被数据处理装置处理后,内存中才会有这个数据队列的状态信息。
需要说明的是,当软件产生的数据需要依次经过多个数据处理装置进行处理时,数据队列中的数据既可以是软件写入的初始数据,也可以是前一个数据处理装置处理后的输出数据。
每个数据队列的配置信息和状态信息与数据队列一并存储于计算机内存中。数据处理装置开始处理一个数据队列的数据时,需要将这个数据队列的配置信息写入配置寄存器,才能控制硬件处理模块基于这个数据队列的配置信息所规定的处理方式处理数据,数据处理装置处理数据时实时的在状态寄存器中记录处理后的数据的状态信息,当数据处理装置停止处理这个数据队列的数据时,需要读取状态寄存器中这个数据队列的状态信息并写入内存,以便状态寄存器能够在处理其他数据队列时存储其他数据队列的状态信息。
云计算环境是本申请所提供的数据处理装置的一个重要的应用场景。云计算环境由多个通过互联网连接的计算机节点组成。用户登录至云计算环境的任意一个计算机节点之后,就可以通过网络使用其他任意一台计算机节点的处理资源。在多个用户同时登录至云计算环境时,会出现多个用户同时请求使用云计算环境中某个计算机节点的数据处理装置的情况,并且,可以理解的,不同用户对数据处理方式的要求往往存在差异,因此需要针对每个用户分别创建一个该用户的数据队列,在内存写入每个数据队列的配置信息,并分配每个数据队列的状态信息。
针对内存中同时存在多个数据队列的情况,数据处理装置需要逐个处理每个数据队列的数据。结合前文对硬件处理模块的介绍,数据处理装置每次切换当前处理的数据队列(即停止处理一个数据队列,并开始处理下一个数据队列)时,一方面需要将状态寄存器中停止处理的数据队列的状态信息写入内存,另一方面需要将下一个需要处理的数据队列的配置信息从内存写入配置寄存器。
在现有技术中,上述对配置寄存器的写入以及对状态寄存器的读取,均需要由CPU(也可以理解为由CPU运行的软件)操作,然而CPU的任务较多,往往无法及时执行上述寄存器的读写操作,存在多个数据队列需要硬件处理模块处理时,一方面CPU频繁的进行寄存器读写操作会大量消耗CPU的资源,另一方面每次数据处理装置切换数据队列都需要等待一定时间,导致数据处理装置的处理效率降低。
为了解决现有技术在多个数据队列之间切换时存在的问题,本申请实施例提供一种数据处理装置,通过数据处理装置的环境引擎模块直接管理配置寄存器和状态寄存器,使得硬件处理模块处理多个数据队列的过程中不需要与CPU进行交互,从而有效的提高硬件处理模块的处理效率。
请参考图1,本申请所提供的数据处理装置包括通过数据总线相互连接的环境引擎模块101,硬件处理模块102和全局寄存器模块103。
环境引擎模块是一个设置于数据处理装置内,用于执行硬件处理模块的配置寄存器和状态寄存器的读写操作的子模块。
其中,环境引擎模块101包括用于存储配置信息的配置寄存器和用于存储状态信息的状态寄存器;全局寄存器模块103的配置从接口slave通过数据总线与CPU连接,CPU可以通过数据总线设置全局寄存器模块中的全局控制信息,从而实现对本实施例所述的数据处理装置的全局控制;环境引擎模块101的环境主接口(context master)通过数据总线与计算机系统的内存连接,环境引擎模块可以通过环境主接口读取内存中每个数据队列的配置信息,在硬件处理模块需要时将对应的数据队列的配置信息写入配置寄存器,使得硬件处理模块可以从配置寄存器读取对应的数据队列的配置信息,并在硬件处理模块停止处理一个数据队列后,从状态寄存器读取硬件处理模块写入的,这个数据队列的状态信息,然后通过环境主接口将这个数据队列的状态信息写入内存。
应当指出的是,上述配置寄存器和状态寄存器,均是由多个寄存器组合成的寄存器组,而非单个寄存器。
本申请中,除了每个数据队列的环境信息以外,与硬件处理模块处理数据的过程相关的信息,均作为全局控制信息设置于全局寄存器模块中。具体的,根据作用的不同,全局控制信息可以分为地址信息和控制信息两类,环境引擎模块从内存读取数据队列的配置信息以及将状态信息写入内存时,可以利用地址信息确定数据队列的配置信息的存储地址和状态信息的存储地址,控制信息则可以控制硬件处理模块的开关,每个数据队列是否被硬件处理模块处理,以及硬件处理模块处理各个数据队列的顺序等。
可选的,本实施例提供的数据处理装置中,多个数据队列的环境信息的存储地址可以采用两种不同的方式分配,根据分配方式的不同,全局寄存器模块的地址信息以及环境引擎模块利用地址信息进行寻址的方式也不同,下面分别介绍两种存储地址的分配方式以及对应的寻址方式。
如图2所示,第一种分配方式中,可以预先在内存中分配一块连续的存储空间(例如,1024KB的存储空间)作为用于存储所有的数据队列的环境信息的环境信息队列,并预先规定每一个数据队列的用于存储环境信息的信息存储空间(例如,规定每个数据队列的信息存储空间的大小为16KB),然后从环境信息队列的起始地址开始按每个数据队列的信息存储空间逐一划分出多个子存储空间,结合前述例子,也就是从一端开始将1024KB的连续的存储空间划分为多个16KB的子存储空间,每个子存储空间对应于一个数据队列,数据队列的环境信息就存储于划分得到的对应的子存储空间中。在一个子存储空间中,可以从这个子存储空间的起始地址开始写入对应的数据队列的配置信息,配置信息存储完毕后剩余的存储空间则用于存储这个数据队列的状态信息。
在这种地址分配方式中,前述地址信息包括环境信息队列的起始地址(以下称为基准地址),预先规定的每个数据队列的信息存储空间,以及每个数据队列的配置信息的数据量。
对应于上述分配方式,环境引擎模块可以采用下述第一种寻址方式:
各个数据队列对应的子存储空间在环境信息队列中的顺序可以依据数据队列的队列标识(q_id)决定,例如,依次为内存中的各个数据队列分配0,1,2,3……作为数据队列的队列标识,从基准地址开始,数据队列0的环境信息存储于第一个子存储空间,第二个子存储空间存储数据队列1的环境信息,以此类推。
环境引擎模块在获得需要读取配置信息的数据队列的队列标识之后,就可以利用下述公式(1)计算得到这个数据队列的子存储空间的起始地址,由于数据队列的配置信息是从子存储空间的起始地址开始存储的,因此,子存储空间的起始地址就是这个数据队列的配置信息的存储地址(config_addr)
config_addr=context_base+q_id<<context_align_width (1)
公式(1)中,context_base就是前述基准地址,context_align_width是表示数据队列的子存储空间的大小所需的二进制位的数量,在前面地址分配方式所举的例子中,数据队列的子存储空间的大小为16KB,也就是16*1024,即16384byte,表示16384需要14个二进制位,因此context_align_width就等于14,q_id则是需要读取配置信息的数据队列的队列标识。
公式(1)中,q_id<<context_align_width表示将q_id左移context_align_width位,具体到前述例子中,得到的结果等于q_id乘以2的14次方,也就是q_id*16KB。
公式(1)的意思是,将基准地址向后移动N个子存储空间得到的地址,就是队列标识为N的数据队列的配置信息的存储地址,N等于非负整数。
可以理解的,第一个子存储空间中的配置信息的存储地址,等于环境信息队列的基准地址。
针对任意一个数据队列,用公式(1)计算得到这个数据队列的配置信息的存储地址后,就可以进一步用下述公式(2)计算得到这个数据队列的状态信息的存储地址:
status_addr=config_addr+config_size (2)
上述公式中,status_addr表示计算得到的某个数据队列的状态信息的存储地址,config_addr表示用前述公式(1)计算得到的,这个数据队列的配置信息的存储地址,config_size表示全局寄存器模块中存储的,这个数据队列的配置信息的数据量。
结合图2不难理解,计算得到一个数据队列的配置信息的存储地址config_addr后,将config_addr向后移动这个数据队列的配置信息的数据量,就可以得到存储这个数据队列的状态信息的存储空间的起始地址,也就是这个数据队列的状态信息的存储地址。
第二种分配方式是,软件每创建一个数据队列,就由软件在内存任意指定一块独立的环境信息存储空间用于存储这个数据队列的环境信息,并将数据队列的队列标识,数据队列的配置信息的存储地址以及状态信息的存储地址作为地址信息写入全局寄存器模块,各个数据队列的环境信息存储空间之间没有联系。
针对第二种分配方式,环境引擎模块可以采用如下的寻址方式,也就是确定需要读取配置信息的数据队列后,利用这个数据队列的队列标识直接从全局寄存器模块的地址信息中查找得到软件指定的这个数据队列的配置信息的存储地址;需要将某个数据队列的状态信息写入内存时,利用这个数据队列的队列标识直接从全局寄存器模块的地址中查找得到软件指定的这个数据队列的状态信息的存储地址。
本实施例提供的数据处理装置处理多个数据队列的过程是:
数据处理装置启动后,硬件处理模块先指定多个数据队列中的某一个数据队列作为待处理数据队列,然后向环境引擎模块发送待处理数据队列的队列标识,环境引擎模块收到队列标识后,将待处理数据队列的配置信息写入配置寄存器,硬件处理模块开始处理待处理数据队列的数据时,就可以利用待处理数据队列的队列标识从配置寄存器中找到待处理数据队列的配置信息,从而基于配置信息处理待处理数据队列中的数据。
一段时间后,硬件处理模块执行数据队列的切换,也就是停止处理当前被处理的数据队列,从其他的多个数据队列中指定一个新的待处理数据队列,并将新指定的待处理数据队列的队列标识发送给环境引擎模块。
环境引擎模块收到一个新的队列标识后,一方面读取从状态寄存器读取当前暂停处理的数据队列的状态信息,并将状态信息写入内存中对应的数据队列的状态信息存储地址,另一方面需要将新指定的待处理数据队列的配置信息写入配置寄存器,然后硬件处理模块利用配置寄存器中这个新指定的待处理数据队列的配置信息开始处理这个新指定的待处理数据队列的数据,之后每经过一段时间硬件处理模块就执行一次数据队列的切换,环境引擎模块则上述过程进行状态寄存器的读取和配置寄存器的写入,以此类推,直至每个数据队列的数据均被处理完毕。
环境引擎模块将状态信息写入内存时,需要确定读取的状态信息具体对应于哪个数据队列。针对这一点,一方面硬件处理模块可以将状态信息和对应的数据队列的队列标识一并写入状态寄存器,使环境引擎模块确定读取的状态信息是哪个数据队列的状态信息。另一方面环境引擎模块也可以在读取状态信息后,将前一个从硬件处理模块接收的队列标识所指示的数据队列确定为读取的状态信息对应的数据队列。
可以理解的,环境引擎模块将内存中存储的数据队列的配置信息写入配置寄存器,需要依次执行从内存读取配置信息,将读取得到的数据写入配置寄存器两个步骤。
可选的,环境引擎模块可以在每次收到待处理数据队列的队列标识后,再去内存中查找对应的数据队列的配置信息,然后读取并写入配置寄存器。另一方面,环境引擎模块也可以配置有一定的缓存空间,用于缓存多个数据队列的配置信息,在数据处理装置启动后的初始化阶段,环境引擎模块就预先从内存中读取N个数据队列的配置信息并存储于自身的缓存空间中,N的取值由可用缓存空间的大小以及配置信息的数据量决定,初始化结束后,环境引擎模块每次收到一个数据队列的队列标识,可以在自身的缓存空间中查找对应的配置信息,若查找到对应的配置信息,就可以直接执行写入的动作,而不需要再从内存中读取,从而缩短硬件处理模块等待的时间,提高硬件处理模块的处理效率。
可选的,全局寄存器模块的控制信息可以包括由软件设置的调度策略,使硬件处理模块按设置的调度策略决定各个数据队列的处理顺序。这种情况下,环境引擎模块就可以根据全局寄存器模块的调度策略预测硬件处理模块处理数据队列的顺序,然后在预先读取多个数据队列的配置信息时,按预测的处理顺序读取其中的前N个数据队列的配置信息。
进一步的,环境引擎模块每次将一个数据队列的配置信息写入配置寄存器后,可以从自身的缓存空间中删去这个数据队列的配置信息,然后按硬件处理模块的处理顺序从内存中读取未处理的数据队列中的处理顺序最靠前的数据队列的配置信息。
与前述从内存读取配置信息的方式类似,环境引擎模块将状态信息写入内存时,既可以每次从状态寄存器读取状态信息后就立即将其写入内存的指定地址,也可以每次从状态寄存器读取状态信息后先存储于自身的缓存空间中,缓存了多个数据队列的状态信息后,再将这些状态信息一并写入内存。
一种可选的调度策略是轮询,也就是在初始化时先将多个数据队列进行排序,为各个数据队列分别分配0,1,2……的非负整数作为队列标识,然后按队列标识的大小从小到大排序,队列标识较小的在前,较大的在后,开始处理时就按这一顺序逐个处理,对最后一个数据队列的处理停止后,再返回第一个数据队列,再次顺序处理,直至每个数据队列均没有需要处理的数据为止。
可选的,硬件处理模块可以每次处理一个数据队列时,都将这个数据队列当前的数据全部处理完再切换至下一个数据队列,在硬件处理模块处理其他数据队列时,软件(或者其他数据处理装置)再向空的数据队列中写入新的数据。
但是,上述方式会导致硬件处理模块长时间的持续处理一个数据队列,对应的,其他数据队列等待的时间较长,为了避免每个数据队列等待处理的时间过长,硬件处理模块一般采用分时复用的方式逐个处理这些数据队列。分时复用是指,将硬件处理模块的工作时间划分为多个时长相等的时间片,硬件处理模块启动后,用N个连续的时间片内处理第一个数据队列的数据,然后用N个连续的时间片处理下一个数据队列的数据,以此类推,每个数据队列每次只占用硬件处理模块的N个时间片,然后硬件处理模块就暂停当前处理的数据队列,开始处理下一个数据队列,直至每个数据队列不再有需要处理的数据为止。
可选的,在硬件处理模块处理各个数据队列的过程,软件还可以通过配置全局寄存器模块的控制信息的方式,控制各个数据队列的数据是否被硬件处理模块处理,其具体控制方式如下:
全局寄存器模块的控制信息可以包括每个数据队列的开关位(queue mask bit),数据队列的开关位是一个二进制位,数据队列的开关位可以由软件设置为1或0,在硬件处理模块指定了待处理数据队列之后,可以查看全局寄存器模块中这个待处理数据队列的开关位,若待处理数据队列的开关位是0,说明待处理数据队列当前处于可处理的状态,若待处理数据队列的开关位是1,就说明待处理数据队列当前处于不可处理的状态,于是硬件处理模块跳过这个数据队列,将下一个数据队列指定为待处理数据队列。
同时,若环境引擎模块从内存读取一个数据队列的配置信息时,发现这个数据队列的开关位被设置为1,则忽略这个数据队列,暂不读取这个数据队列的配置信息。
通过在全局寄存器模块中设置每个数据队列的开关位,在硬件处理模块工作过程中,若软件需要修改某个数据队列的配置信息,或者这个数据队列内的数据,就可以通过将这个数据队列的开关位设置为1的方式使硬件处理模块暂时忽略这个数据队列,等软件完成对应的修改后再将这个数据队列的开关位设置为0。
本申请实施例提供的数据处理装置中,环境引擎模块用于直接执行配置寄存器和状态寄存器的读写操作,使得硬件处理模块每次从一个数据队列切换至另一个数据队列时不需要与CPU进行交互。作为一个专门用于执行寄存器的读写操作的模块,环境引擎模块能够及时的完成配置信息的写入和状态信息的读取,从而有效的缩短每次硬件处理模块切换数据队列时需要等待的时间,提高了硬件处理模块的处理效率,同时,由于不需要频繁执行配置寄存器和状态寄存器的读写操作,CPU的资源消耗也大幅减少。
本申请实施例提供的数据处理装置的工作流程,可以参考图3所示的方法流程图:
S301、环境引擎模块初始化。
初始化阶段环境引擎模块预先读取多个数据队列的配置信息,同时软件向全局寄存器模块写入全局控制信息。
S302、硬件处理模块按调度策略决定的顺序指定第一个数据队列作为待处理数据队列。
S303、硬件处理模块向环境引擎模块发送待处理数据队列的队列标识。
S304、环境引擎模块向配置寄存器写入待处理数据队列的配置信息。
参考前述数据处理装置的说明,待处理数据队列的配置信息可以预先从内存读取并缓存在环境引擎模块的缓存空间中,也可以在收到队列标识后再从内存读取。
S305、硬件处理模块从配置寄存器读取待处理数据队列的配置信息。
S306、硬件处理模块用M个时间片处理当前的待处理数据队列的数据。
M的取值以及时间片的长短均由软件预先设定。
S307、硬件处理模块向状态寄存器写入待处理数据队列的状态信息。
如前文所述,待处理数据队列的状态信息,是硬件处理模块处理待处理数据队列的数据之后产生的,用于表示待处理数据队列中的数据的状态的信息。
S308、环境引擎模块从状态寄存器读取前一个数据队列的状态信息。
这里的前一个数据队列,是指,硬件处理模块当前指定的待处理数据队列之前的一个数据队列。
类似的,前一个数据队列的状态信息可以在读取后立即由环境引擎模块写入内存,也可以先缓存在环境引擎模块中,与后续的其他数据队列的状态信息一并写入内存。
可以理解的,步骤S304和步骤S308没有必然的先后顺序,并且,若在当前指定的待处理数据队列之前硬件处理模块未处理其他数据队列,则状态寄存器未存储状态信息,此时可以不执行步骤S308。
进一步的,在硬件处理模块切换了数据队列,也就是指定了新的待处理数据队列之后,在步骤S307中由硬件处理模块写入状态寄存器的当前的待处理数据队列的状态信息也会被环境引擎模块读取并写入内存。
S309、硬件处理模块判断是否有其他需要处理的数据队列。
若有需要处理的数据队列,则执行步骤S310,若没有其他需要处理的数据队列,返回执行步骤S306,直至当前的待处理数据队列的数据均处理完毕。
需要处理的数据队列,是指存在需要处理的数据的数据队列。
S310、硬件处理模块切换数据队列。
切换数据队列,就是停止处理当前的数据队列,然后将下一个需要处理的数据队列指定为待处理数据队列。
指定了新的待处理数据队列后,硬件处理模块返回执行步骤S303,开始处理这个新指定的待处理数据队列。
最后,为了更好的理解本申请提供数据处理装置,下面结合具体的应用场景说明本申请提供的数据处理装置的工作原理。
以数据加密场景为例,假设本申请提供的数据处理装置是一个用于按指定的密钥对输入数据进行加密的数据加密装置,当前有10个用户均需要利用数据加密装置进行加密,对应的需要建立10个数据队列(依次记为数据队列1至数据队列10),每个数据队列对应一个用户,数据队列包含对应的用户提供的需要加密的数据,数据队列的配置信息,就是该用户指定的用于加密的密钥,数据队列的状态信息,则用于指示数据队列中的数据是否加密成功。
假设本例中数据加密装置的环境引擎模块可以缓存5个数据队列的配置信息和状态信息。数据加密装置启动后,环境引擎模块根据全局寄存器模块的控制信息确定硬件处理模块的调度策略,从而预测出硬件处理模块处理各个数据队列的顺序是按队列标识从小到大逐个处理,然后从内存读取并缓存数据队列1至数据队列5的密钥。密钥在内存中的存储地址可以由环境引擎模块按前述两种寻址方式中的任意一种确定。
在环境引擎模块从内存读取上述数据队列的密钥并缓存时,若全局寄存器模块中某个数据队列的开关位被设置为1,说明当前CPU在修改内存中这个数据队列的密钥,该数据队列当前不可被处理,所以环境引擎模块跳过这个数据队列,继续读取之后的数据队列的密钥。
环境引擎模块缓存了前5个可处理的数据队列的密钥后,硬件处理模块启动,根据前述调度策略确定数据队列1是第一个需要处理的数据队列后,首先查询全局寄存器模块中数据队列1的开关位,若数据队列1的开关位被设置为0,表示数据队列1的数据当前可以处理,于是将数据队列1指定为待处理数据队列,将数据队列1的队列标识发送给环境引擎模块。环境引擎模块接收后,从自身的缓存中查找数据队列1的密钥,若查找发现缓存中有数据队列1的密钥,则将数据队列1的密钥写入配置寄存器,若发现缓存中没有数据队列1的密钥,则从内存读取数据队列1的密钥然后将其写入配置寄存器。写入成功后硬件处理模块就可以用数据队列1的队列标识从配置寄存器中找到数据队列1的密钥,然后利用密钥加密数据队列1的数据。
其中,若确定待处理数据队列时发现数据队列1的开关位设置为1,说明数据队列1的数据当前不可处理,于是硬件处理模块依次查询之后的各个数据队列的开关位,直至查找到开关位设置为0的数据队列,然后将这个数据队列指定为待处理数据队列。
数据队列1占用的时间片结束后,硬件处理模块在状态寄存器中记录述数据队列1的状态信息。若数据队列2当前处于可以处理的状态,也就是对应的开关位设置为0,则硬件处理模块将数据队列2确定为待处理数据队列,向环境引擎模块发送数据队列2的队列标识,环境引擎模块收到数据队列2的队列标识后,读取状态寄存器中的状态信息,然后将数据队列2的密钥写入配置寄存器,使硬件处理模块开始加密数据队列2的数据,具体写入过程与写入数据队列1的密钥的过程一致,不再赘述。
硬件处理模块加密数据队列2的数据时,环境引擎模块可以将读取的状态信息写入内存中预先配置的该状态信息对应的数据队列(在本例中,就是数据队列1)的状态信息存储地址。
环境引擎模块收到硬件处理模块发送的一个数据队列的队列标识,并将前一个硬件处理模块处理的数据队列的状态信息写入内存后,可以从缓存空间中将前一个硬件处理模块处理的数据队列的配置信息和状态信息删除,然后根据各个数据队列被硬件处理模块处理的顺序,从内存读取前N个数据队列中,配置信息未被环境引擎模块缓存的的数据队列的配置信息并缓存。
在本例中,环境引擎模块接收数据队列2的队列标识,并将数据队列1的状态信息写入内存后,可以删除自身缓存的数据队列1的配置信息和状态信息,根据前述数据队列的处理顺序,此时前5个需要处理的数据队列依次是数据队列2至数据队列6,其中数据队列6的配置信息未缓存于环境引擎模块中,于是环境引擎模块从内存读取并缓存数据队列6的配置信息。
其他的数据队列的处理过程与上述过程类似,不再赘述。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
需要注意,本发明中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种数据处理装置,其特征在于,包括:全局寄存器模块,硬件处理模块和环境引擎模块,所述环境引擎模块包括配置寄存器和状态寄存器;
所述环境引擎模块用于将从内存读取的、且由所述硬件处理模块指定的待处理数据队列的配置信息直接写入所述配置寄存器,以及用于直接从所述状态寄存器中读取所述状态寄存器存储的、且由所述硬件处理模块处理后的数据队列的状态信息并写入所述内存;其中,所述内存存储每一个数据队列的配置信息和状态信息;所述数据队列的配置信息和状态信息的存储地址根据所述全局寄存器模块存储的全局控制信息确定;
所述硬件处理模块用于根据所述环境引擎模块的配置寄存器存储的所述待处理数据队列的配置信息处理所述待处理数据队列的数据,并将处理后的数据队列的状态信息写入所述状态寄存器;其中,所述硬件处理模块处理各数据队列的过程中不需要与CPU进行交互。
2.根据权利要求1所述的装置,其特征在于,所述环境引擎模块将所述硬件处理模块指定的待处理数据队列的配置信息写入所述配置寄存器时,具体用于:
接收所述硬件处理模块发送的所述待处理数据队列的队列标识;
利用所述待处理数据队列的队列标识,在预先从所述内存读取并缓存的多个配置信息中查找得到所述待处理数据队列的配置信息;
将所述待处理数据队列的配置信息写入所述配置寄存器。
3.根据权利要求2所述的装置,其特征在于,所述环境引擎模块从所述内存读取并缓存配置信息的方式,包括:
所述环境引擎模块基于调度策略预测所述硬件处理模块的处理顺序,按时间先后读取并缓存前N个数据队列的配置信息;其中,N根据所述环境引擎模块的可用缓存空间确定;所述调度策略为所述硬件处理模块确定缓存的多个数据队列的处理顺序所依据的调度策略。
4.根据权利要求1所述的装置,其特征在于,所述全局控制信息包括:
每一个所述数据队列的配置信息的存储地址,以及每一个所述数据队列的状态信息的存储地址;
其中,所述环境引擎模块从所述内存读取待处理数据队列的配置信息时,用于利用所述待处理数据队列的标识,从所述全局寄存器模块查找得到所述待处理数据队列的配置信息的存储地址;并从所述待处理数据队列的配置信息的存储地址读取所述待处理数据队列的配置信息;
所述环境引擎模块将所述硬件处理模块处理后的数据队列的状态信息写入内存时,用于利用所述处理后的数据队列的队列标识,从所述全局寄存器模块查找得到所述处理后的数据队列的状态信息的存储地址;再向所述处理后的数据队列的状态信息的存储地址写入所述处理后的数据队列的状态信息。
5.根据权利要求1所述的装置,其特征在于,所述全局控制信息包括:
基准地址,每一个所述数据队列的信息存储空间以及每一个所述数据队列的配置信息的数据量;
其中,所述环境引擎模块从所述内存读取待处理数据队列的配置信息时,用于利用所述数据队列的标识,所述基准地址,以及每一个所述数据队列的信息存储空间计算得到所述数据队列的配置信息的存储地址;并从所述待处理数据队列的配置信息的存储地址读取所述待处理数据队列的配置信息;
所述环境引擎模块将所述硬件处理模块处理后的数据队列的状态信息写入内存时,用于利用所述处理后的数据队列的队列标识,基准地址,每一个所述数据队列的信息存储空间以及所述处理后的数据队列的配置信息的数据量计算得到所述处理后的数据队列的状态信息的存储地址;再向所述处理后的数据队列的状态信息的存储地址写入所述处理后的数据队列的状态信息。
6.根据权利要求1所述的装置,其特征在于,所述全局控制信息包括每一个所述数据队列的开关信息,所述数据队列的开关信息用于控制对应的数据队列的数据是否被所述硬件处理模块处理。
7.一种数据处理方法,其特征在于,应用于数据处理装置,其中,所述数据处理装置包括:全局寄存器模块,硬件处理模块和环境引擎模块,所述环境引擎模块包括配置寄存器和状态寄存器,所述方法包括:
所述环境引擎模块将所述硬件处理模块指定的待处理数据队列的配置信息直接写入所述配置寄存器,使所述硬件处理模块根据所述待处理数据队列的配置信息处理所述待处理数据队列的数据;其中,所述待处理数据队列的配置信息由所述环境引擎模块从内存读取,所述内存用于存储每一个所述数据队列的配置信息和状态信息;所述数据队列的配置信息和状态信息的存储地址根据所述全局寄存器模块存储的全局控制信息确定;
所述待处理数据队列的数据被所述硬件处理模块处理、且处理后的数据队列的状态信息被所述硬件处理模块写入所述状态寄存器后,所述环境引擎模块直接从所述状态寄存器读取所述待处理数据队列的状态信息并将所述状态信息写入所述内存;其中,所述硬件处理模块处理各数据队列的过程中不需要与CPU进行交互。
8.根据权利要求7所述的数据处理方法,其特征在于,所述环境引擎模块将所述硬件处理模块指定的待处理数据队列的配置信息写入所述配置寄存器,包括:
所述环境引擎模块接收所述硬件处理模块发送的所述待处理数据队列的队列标识;
所述环境引擎模块利用所述待处理数据队列的队列标识在预先从内存读取并缓存的多个配置信息中查找得到所述待处理数据队列的配置信息;
所述环境引擎模块将所述待处理数据队列的配置信息写入所述配置寄存器。
9.根据权利要求8所述的数据处理方法,其特征在于,所述环境引擎模块基于调度策略预测所述硬件处理模块的处理顺序,按时间先后读取并缓存前N个数据队列的配置信息;其中,N根据所述环境引擎模块的可用缓存空间确定;所述调度策略为所述硬件处理模块确定缓存的多个数据队列的处理顺序所依据的调度策略。
10.根据权利要求7所述的数据处理方法,其特征在于,所述全局控制信息包括:
每一个所述数据队列的配置信息的存储地址,以及每一个所述数据队列的状态信息的存储地址;
其中,所述环境引擎模块从内存读取待处理数据队列的配置信息的过程,包括:
利用所述待处理数据队列的标识,从所述全局寄存器模块查找得到所述待处理数据队列的配置信息的存储地址;
从所述待处理数据队列的配置信息的存储地址读取所述待处理数据队列的配置信息;
所述环境引擎模块将所述待处理数据队列的状态信息写入内存的过程包括:
利用所述待处理数据队列的标识,从所述全局寄存器模块查找得到所述待处理数据队列的状态信息的存储地址;
向所述待处理数据队列的状态信息的存储地址写入所述数据队列的状态信息。
CN202010207504.6A 2020-03-23 2020-03-23 数据处理装置和方法 Active CN111290856B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010207504.6A CN111290856B (zh) 2020-03-23 2020-03-23 数据处理装置和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010207504.6A CN111290856B (zh) 2020-03-23 2020-03-23 数据处理装置和方法

Publications (2)

Publication Number Publication Date
CN111290856A CN111290856A (zh) 2020-06-16
CN111290856B true CN111290856B (zh) 2023-08-25

Family

ID=71030293

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010207504.6A Active CN111290856B (zh) 2020-03-23 2020-03-23 数据处理装置和方法

Country Status (1)

Country Link
CN (1) CN111290856B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113626078A (zh) * 2021-07-13 2021-11-09 镕铭微电子(济南)有限公司 一种提高芯片设计模块性能的快速环境切换方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101753393A (zh) * 2008-12-19 2010-06-23 中国科学院沈阳自动化研究所 基于iec61158标准现场总线的通信芯片架构
CN101950282A (zh) * 2010-08-30 2011-01-19 中国科学院计算技术研究所 一种多处理器系统及其同步引擎
CN105934744A (zh) * 2013-12-06 2016-09-07 并发投资有限责任公司 用于在硬件中跨多个处理单元/处理器划分并同步处理任务的系统和方法
CN107613529A (zh) * 2017-07-31 2018-01-19 上海华为技术有限公司 消息处理方法以及基站
CN108475194A (zh) * 2015-10-23 2018-08-31 弩锋股份有限公司 在片上网络架构中的寄存器通信
CN109388584A (zh) * 2018-10-23 2019-02-26 江苏华存电子科技有限公司 一种透过不同映址空间实现弹性且快速存取硬件内存队列方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10761983B2 (en) * 2017-11-14 2020-09-01 International Business Machines Corporation Memory based configuration state registers

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101753393A (zh) * 2008-12-19 2010-06-23 中国科学院沈阳自动化研究所 基于iec61158标准现场总线的通信芯片架构
CN101950282A (zh) * 2010-08-30 2011-01-19 中国科学院计算技术研究所 一种多处理器系统及其同步引擎
CN105934744A (zh) * 2013-12-06 2016-09-07 并发投资有限责任公司 用于在硬件中跨多个处理单元/处理器划分并同步处理任务的系统和方法
CN108475194A (zh) * 2015-10-23 2018-08-31 弩锋股份有限公司 在片上网络架构中的寄存器通信
CN107613529A (zh) * 2017-07-31 2018-01-19 上海华为技术有限公司 消息处理方法以及基站
CN109388584A (zh) * 2018-10-23 2019-02-26 江苏华存电子科技有限公司 一种透过不同映址空间实现弹性且快速存取硬件内存队列方法

Also Published As

Publication number Publication date
CN111290856A (zh) 2020-06-16

Similar Documents

Publication Publication Date Title
TWI229806B (en) Method and system for data flow control of execution nodes of an adaptive computing engine (ACE)
JP6542909B2 (ja) ファイル操作方法及び装置
CN100590609C (zh) 一种基于非连续页的动态内存管理方法
JP2017102908A (ja) ソリッドステートドライブ及びその動作方法
CN112632069B (zh) 哈希表数据存储管理方法、装置、介质和电子设备
US8914415B2 (en) Serial and parallel methods for I/O efficient suffix tree construction
JP5426576B2 (ja) 仮想化技術を利用したデータ入出力方法及び装置
KR101835604B1 (ko) 메모리를 위한 스케줄러
KR100883655B1 (ko) 재구성 가능한 프로세서를 갖는 문맥 교환 시스템 및 방법
CN111290856B (zh) 数据处理装置和方法
US20120102012A1 (en) Cross-region access method for embedded file system
JP6951846B2 (ja) 計算機システム及びタスクの割当方法
WO2014100954A1 (zh) 数据控制方法及系统
WO2011078162A1 (ja) スケジューリング装置、スケジューリング方法及びプログラム
CN102467557B (zh) 重复数据删除的处理方法
KR102063281B1 (ko) 파일에 접근하기 위한 방법과 장치, 및 저장 시스템
JP2019525311A (ja) ネットワークアクセス可能なデータボリューム変更
JP2001005679A (ja) 電子計算機における処理の中断/再開方法
KR102076248B1 (ko) 선택 지연 가비지 컬렉션 방법 및 이를 이용한 메모리 시스템
JP2009199384A (ja) データ処理装置
JP2011039790A (ja) 仮想マシンイメージ転送装置及び方法及びプログラム
CN107168646B (zh) 一种分布式数据存储控制方法及服务器
KR20090049838A (ko) 저장 공간 할당 방법 및 장치
CN111865794A (zh) 一种逻辑端口的关联方法、系统、设备及数据传输系统
US20230393782A1 (en) Io request pipeline processing device, method and system, and storage medium

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