[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

CN109298884B - 一种通用字符操作加速处理硬件装置及控制方法 - Google Patents

一种通用字符操作加速处理硬件装置及控制方法 Download PDF

Info

Publication number
CN109298884B
CN109298884B CN201810995831.5A CN201810995831A CN109298884B CN 109298884 B CN109298884 B CN 109298884B CN 201810995831 A CN201810995831 A CN 201810995831A CN 109298884 B CN109298884 B CN 109298884B
Authority
CN
China
Prior art keywords
data
character string
character
string
comparator
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
CN201810995831.5A
Other languages
English (en)
Other versions
CN109298884A (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.)
Suzhou Ruixin Integrated Circuit Technology Co ltd
Original Assignee
Beijing Zhongke Ruixin Technology Group 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 Beijing Zhongke Ruixin Technology Group Co ltd filed Critical Beijing Zhongke Ruixin Technology Group Co ltd
Priority to CN201810995831.5A priority Critical patent/CN109298884B/zh
Publication of CN109298884A publication Critical patent/CN109298884A/zh
Application granted granted Critical
Publication of CN109298884B publication Critical patent/CN109298884B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • 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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30134Register stacks; shift registers
    • 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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30138Extension of register space, e.g. register cache

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

本发明提供了一种通用字符串加速处理硬件装置与控制方法,涉及针对大数据应用中普遍存在的字符串操作实现基于3D存储计算机制的通用硬件加速体系结构,通过将字符串加速体系结构和3D存储集成在一起,并提供相应的用户编程接口,可在应用程序中实现对字符串操作在硬件加速体系结构的控制和使用。其中,字符串硬件加速体系结构包括字符串对比加速结构和字符串写操作加速结构,可针对大数据应用中普遍存在的字符串对比操作和字符串位置互换操作进行加速。本发明的技术方案可以显著提高大数据应用中的字符串操作执行效率,并降低整个应用执行的功耗。

Description

一种通用字符操作加速处理硬件装置及控制方法
技术领域
本发明涉及大数据应用及硬件加速技术领域,具体来说,涉及针对大数据处理领域中的普遍存在的基本字符操作,通过硬件加速结构实现可集成现有通用处理器的字符串处理通用硬件加速装置及其控制方法。
背景技术
在大数据处理应用中,字符操作是最基本的一类操作,几乎所有的高级语言中都有针对字符操作的基本函数库。在搜索引擎和社交网络等应用逐渐占据人们大部分生活的今天,字符操作变得尤其重要。例如,网络服务、云计算、网络数据包安全检测、数据库查询、自然语言处理中的词法语法分析、生物计算中的DNA序列比对以及蛋白质氨基酸序列比对等等。字符操作已经深入到大数据应用的各个方面。
随着大数据应用处理的数据量的剧增,通用处理器在面向数据量巨大的大数据应用处理中效率并不高,其主要原因是传统通用处理器在设计之初是面向科学计算类型应用,强调数据复杂运算大于数据存取。而迅速发展的大数据应用的主要特征在于数据存取,数据计算反而趋于简单。因此,导致了目前通用处理器在大数据应用处理方面的低效率以及高能耗。进一步说明,一方面,现代高性能处理器的复杂计算流水对字符类操作来说太过冗余;另一方面,数据从存储器到计算单元需要经过较长的传输通路(包括片上网络、各级Cache等),而大数据应用更侧重于数据的搬运,进一步造成了大数据应用处理的低效率与高能耗。综上所述,用流水线复杂的高性能处理器去处理计算简单但数据量巨大的大数据字符类操作将会造成处理效率低下且浪费了大量的功耗。随着集成电路工艺的进步,硅穿孔(TSV)技术使得3D存储成为现实,例如HBM、HMC等3D存储器。在3D存储中,通过硅穿孔技术来实现的多片RAM的堆叠,如图1所示,其中每片RAM会划分为多个存储区域,在垂直方向上的多个存储区域便形成一个Vault 105结构,每个Vault结构可以实现独立的读取访问。3D存储器可将简单的计算单元与存储单元紧密的结合在一起,显著提高访存的带宽,缩短数据传输的时间,被称为内存计算(processing-in-memory,PIM)。因此,如何借助PIM技术实现高效率、低功耗的字符串处理结构成为亟需解决的问题。
发明内容
针对现有技术中存在的上述问题,本发明提供了一种通用字符串加速处理硬件装置及其控制方法,具体而言,本发明提供了一下技术方案:
一方面,本发明提供了一种通用字符串加速处理硬件装置,所述装置集成于3D存储器内,该装置包括PIM使能控制单元、简单处理器核,以及集成在所述3D存储器逻辑层上的字符串加速结构;
所述字符串加速结构、简单处理器核与主处理器相连;
在主处理器端,对需要使用所述装置的字符串操作调用接口函数,所述接口函数唤醒所述PIM使能控制单元,所述PIM使能控制单元将需要操作的字符串操作的控制信息发送至所述3D存储器的控制器;
所述简单处理器核对所述控制信息进行解析,并依据数据分布的位置,将所述控制信息发送至该位置所在Vault对应的字符串加速结构中;
所述字符串加速结构接收到所述简单处理器核发送的控制信息后,执行字符串操作,并将操作结果返回所述简单处理器核。
优选地,所述字符串加速结构固定访问属于每个Vault的存储颗粒。
优选地,所述简单处理器核对所述控制信息进行解析,当所述控制信息对应的操作类型为字符比较操作时,将所述控制信息发送至所述字符串加速结构中,所述字符串加速结构将所述控制信息在译码器和所述控制器中进行解析,并对其所在的Vault的存储器分片发出数据读请求,将读取的数据存入缓存中,并对所述3D存储器的分片执行预取操作,获得预取的数据;
将所述读取的数据与所述预取的数据进行比较操作,并返回结果。
优选地,对所述3D存储器的分片执行预取操作后,将所述缓存中存储的读取的数据送入移位操作寄存器中,并将所述预取的数据存入所述缓存中。
优选地,所述比较操作在字符比较器中执行;所述字符比较器包括三个:字符比较器1、字符比较器2、字符比较器3,所述字符比较器1用于对比字符串内容,所述比较器2、比较器3用于检测是否字符串已结束。
优选地,所述返回结果,返回至所述简单处理器核。
优选地,所述简单处理器核对所述控制信息进行解析,当所述控制信息对应的操作类型为字符串互换操作时,将所述控制信息发送至所述字符串加速结构中,所述字符串加速结构将所述控制信息在译码器和所述控制器中进行解析,并对其所在的Vault的存储器分片发出数据读请求,将读取的数据存入缓存中,并对所述3D存储器的分片执行预取操作,获得预取的数据;
将所述读取的数据与所述预取的数据进行比较操作,并将比较后的数据执行写回目标地址操作。
优选地,对所述3D存储器的分片执行预取操作后,将所述缓存中存储的读取的数据送入移位操作寄存器中,并将所述预取的数据存入所述缓存中。
优选地,所述比较操作在字符比较器中执行;所述字符比较器包括两个:字符比较器4、字符比较器5,所述比较器4、比较器5用于检测是否字符串已结束。
优选地,所述移位操作寄存器用于对数据进行移位操作。
此外,本发明还提供了一种通用字符串加速处理方法,所述方法应用于通用字符串加速处理硬件装置,所述装置包括PIM使能控制单元、简单处理器核,以及集成在所述3D存储器逻辑层上的字符串加速结构;所述字符串加速结构、简单处理器核与主处理器相连;所述方法包括:
步骤1、通过接口函数唤醒所述PIM使能控制单元;
步骤2、所述PIM使能控制单元接收字符串控制命令,并直接发送至所述3D存储器的控制器,所述控制器将所述字符串控制命令发送至所述简单处理器核;
步骤3、所述简单处理器核对所述字符串控制命令进行解析,生成指令控制消息;
步骤4、所述字符串加速结构基于对所述控制消息的解析,向所述3D存储器发出数据读请求;
步骤5、将所述步骤4中读取的数据存储在缓存中,并基于对所述控制消息的解析,对读取的字符串进行相应的操作;
步骤6、判断所述步骤5所述的操作是否满足判断条件,并在满足判断条件时,结束所述操作。
优选地,所述步骤4进一步包括:对所述控制消息的解析的结果,包括字符串比较操作、字符串互换操作。
优选地,当所述解析的结果为字符串比较操作时,所述步骤5进一步包括:
步骤501、将读取的数据分别存储在缓存一、缓存二中,同时对所述3D存储器的分片执行预取操作,并在下一拍将所述缓存一、缓存二中的数据传输给移位操作寄存器一、移位操作寄存器二中,并将预取的数据继续存入缓存一、缓存二中;
步骤502、在所述移位操作寄存器中经过移位对齐后,在字符比较器中进行数据对比,完成字符串比较操作。
优选地,所述步骤502中,所述字符比较器至少包括用于对比字符串内容的字符比较器、用于检测字符串是否结束的字符比较器。
优选地,所述步骤502之后还包括:
步骤503、当按照字符串最短的数据的长度执行等长度对比操作时,则字符串中在本次未做对比操作的字符串部分进入下一次对比操作;当未指定长度时,则检测数据结束符号,所述数据结束符号包括EOF、字符串结束符。
优选地,当所述解析的结果为字符串比较操作时,所述步骤6之后还包括:
步骤601、将比对结果执行结果返回操作,返回给流水线;
步骤602、对于本次比对未执行完成的操作,继续进入下一次比对操作,直至比对结束,并将结果写回所述简单处理器核。
优选地,所述比对结果包括大于、等于、小于,和/或匹配的位置,和/或匹配的数量。
优选地,当所述解析的结果为字符串互换操作时,所述步骤5进一步包括:
步骤511、将读取的数据存储在缓存三中,同时对所述3D存储器的分片执行预取操作,并在下一拍将所述缓存三中的数据传输给移位操作寄存器三中,并将预取的数据继续存入缓存三中;
步骤512、在所述移位操作寄存器中经过移位处理后,执行数据的互换操作。
优选地,所述步骤512进一步包括:
步骤5121、利用源地址和当前数据地址,计算剩余数据的长度;
步骤5122、在未指定长度时,在移位处理之后,数据在对比器中执行对比操作,以判断要写入的字符串是否结束;和/或,则检测数据结束符号,以判断要写入的字符串是否结束。
此处需要指出的是,以下的两个具体实施方式虽然分别列举出了在进行字符串比较操作和字符串互换操作时的不同的执行过程,但是,其中所涉及到的缓存一/二/三、译码器、移位操作寄存器等模块/部件结构,是完全可以在不同的执行过程中复用的,表述中虽然通过不同的标号对该些可复用的部件进行了不同的标注,但仅是为了区分开不同的执行过程,便于理解和说明,避免因相同的标号造成理解困难,因此,相似功能的部件虽然用了不同的标号加以区分,但是并不代表两者是不能够复用的,除非本发明说明书中给予了明确的说明,两者作为完全独立的模块/结构,而不能相互复用,否则本领域技术人员完全可以基于常规的技术以及本发明的技术构思,对上述模块/结构安排合理的复用,以节省运算资源。
本发明相比于现有技术,有效地简化了字符串处理操作中,数据的调用流程,节省了运算资源,并且有效提高了字符串处理的速度,有效地降低整个应用执行的功耗。
附图说明
图1为本发明实施例的基于3D存储技术的字符串处理加速体系结构设计原理图;
图2为本发明实施例的字符串处理加速体系结构逻辑框图;
图3为本发明实施例的字符加速处理结构中的字符串比较操作加速结构示意图;
图4为本发明实施例的字符加速处理结构中的字符串写操作加速结构示意图;
图5为本发明实施例的字符加速处理流程示意图。
具体实施例
下面将结合本发明实施例中的图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
此处需要指出的是,以下的两个具体实施方式虽然分别列举出了在进行字符串比较操作和字符串互换操作时的不同的执行过程,但是,其中所涉及到的缓存、译码器、移位操作寄存器等硬件结构,是完全可以在不同的执行过程中复用的,例子中虽然通过不同的标号对该些可复用的部件进行了不同的标注,但仅是为了区分开不同的执行过程,便于理解和说明,避免因相同的标号造成理解困难,因此,相似功能的部件虽然用了不同的标号加以区分,但是并不代表两者是不能够复用的,除非本发明说明书中给予了明确的说明,两者作为完全独立的模块/结构,而不能相互复用,否则本领域技术人员完全可以基于常规的技术以及本发明的技术构思,对上述模块/结构安排合理的复用,以节省运算资源。
实施例1
在一个具体的实施方式中,本发明的通用字符串加速处理硬件装置,基于3D存储器,实现硬件加速处理结构集成于3D存储器内部,实现字符串加速处理。硬件加速处理装置分为字符串对比加速结构和字符串互换加速结构。加速结构直接从存储器中读取数据进行字符串的处理,并将结果写回。
在具体设置时,在主处理器端添加加速处理结构硬件控制结构以及在编程接口中提供加速处理结构调用函数,共用户选择使用。在3D存储器端需要添加简单的处理器核执行控制作用,包括接收从主处理器端发来的执行命令,解析命令并控制各个字符加速结构执行相应的操作,收集执行结果并返回给主处理器端。
此外,用户可以指定需要对比的字符串的长度,或者对比加速结构根据字符串结束标识“/0”或文件结束标识“EOF”,自动判断字符串对比结束与否。
字符串对比器从其所属的3D存储器分片中直接读取数据,字符串对比操作可以按照数据读取的速度执行流式的对比,无需等待字符串全部到达再对比。
字符串互换操作加速结构从其所属的3D存储器分片中读取字符串数据,本次读取的有效字符串将会在本次操作中写入目的地址,剩余字符串在则会在随后的操作中写入目的地址,以此实现流式的字符串写入操作。
下面结合附图,以一个更为具体的实施方式为例,说明本发明的核心技术方案:
如图1所示,为在传统的处理器与3D存储器(以美光公司的HMC存储器为例)之上添加了用于字符操作加速处理的结构,包括简单处理器核103(简核)以及集成在逻辑层106上的字符串加速结构104。整个HMC处理器分为采用3D技术实现了N层存储颗粒的叠加(图中为8层),所有的存储以立体的方式分为多个Vault结构105,如图所示的例子为每个vault结构包括8层立体存储颗粒。本发明提出的字符串加速处理结构(Sting ACC)设置在逻辑层106,固定访问属于每个Vault的立体存储颗粒。
如图2所示为本发明提出的字符操作加速处理硬件装置逻辑结构图,深灰色即为添加的控制部件,包括PIM使能控制单元(PIM Enable Unit,
PEU)203,简单处理器核(简核)209,字符串加速处理结构(String ACC)212。首先,在主处理器201端,用户程序需要做出修改,对需要使用String ACC 212的字符串操作调用特殊的接口函数执行。调用字符串处理接口函数的操作会唤醒PEU 203单元,PEU单元将需要操作的字符串操作的执行类型、执行的地址范围等控制信息直接发送至HMC控制器207,略过各缓存层级(L1,L2,LLC)。之后,字符串操作控制信息会传送至HMC存储器208中添加的简核209,简核会对控制信息进行解析并根据数据分布在哪一个Vault 211中,即将操作控制信息发送至此Vault的String ACC 212中。String ACC 212接到简核209发来的操作后便开始执行字符串操作,并将操作结果返回值简核209中。
如图3所示,为字符串比较操作加速装置String ACC。简核301对从主处理器端接收到的消息进行解析,当操作类型为字符比较操作时,便将控制消息302发送至String ACC装置。字符串比较加速器根据接收到的指令的控制信息在译码器&控制器305中进行解析,并对其所在的Vault304的DRAM存储器分片303发出数据读请求。读回的数据缓存在1和2中,同时对DRAM分片执行预取操作。在缓存中的数据会根据需求执行移位等操作,这主要是考虑对齐的问题。因为所需的数据不一定是一次存储访问所能对齐的数据,例如读取一个字符,8bits。通常,存储器会根据地址将对齐的几个字节读取至缓存。因此需要做相应的移位处理,获取我们所需的内容。经过移位对齐操作之后,执行数据对比操作。按照字符串最短的数据的长度执行等长度的对比操作。字符串本次未做操作的字符串进入下一次对比操作。在对比阶段存在三个比较器,分别比较的内容为string1与string2,string1与“/0”或EOF,string2与“/0”或EOF。第一个比较器对比字符串内容,后两个字符串分别检测是否某个字符串已经结束。如果已经结束时,则将最后的对比结果“>,==,<”或者匹配的位置pos或者匹配的数量计数器执行结果返回操作,返回给简核301。其中判断是否结束时,也可以根据两个字符串的长度len1和len2的值进行判断,即程序指定的对比长度已结束。此时结果也需要返回给简核301。对于本次对比为执行完成的操作继续进入下一次对比操作,直到按照某个条件判断结束。因为数据从DARM分片303读取时,受访存带宽的影响,因此整个字符串比较操作会通过流水数据操作方式执行,即来到数据即可执行,无需等待,以提高执行效率。
图4所示为,字符串互换操作处理加速结构。此结构与图3的字符串比较加速处理装置为合并在一起的统一结构,许多操作会复用相同的硬件资源,区别为逻辑控制和功能实现不一样。如图所示,首先字符操作需求会从主机端发送至HMC存储中的简核401,简核通过分析操作类型(字符比较,字符交换)然后发送相应的控制消息402至加速处理结构中。字符串交换加速器根据接收到的指令的控制信息在译码器&控制器405中进行解析,并对其所在的Vault 404的DRAM存储器分片403发出数据读请求。读回数据存放在缓存406中,同时对DRAM分片执行预取操作。在缓存中的数据会根据需求执行移位等操作,这主要是考虑对齐的问题。因为所需的数据不一定是一次存储访问所能对齐的数据,例如读取一个字符,8bits。通常,存储器会根据地址将对齐的几个字节读取至缓存。因此需要做相应的移位处理,获取我们所需的内容。经过移数据筛选之后,执行数据写回目标地址操作。数据长度len为可选项,若不指定len长度,则根据字符串结束标识符“/0”结束本次操作,两个比较器409以及410即分别用来判断结束条件是否成立。
图5为字符加速处理流程示意图。用户通过在程序中使用字符串加速处理接口501来启动String ACC加速结构工作。首先用户通过接口函数时,PIM使能单元PEU 502便会启动,使得字符处理命令越过缓存层级,直接发送至HMC存储器中添加的简核503。简核对字符处理里的命令进行解析,解析后生成字符串处理命令发送至String ACC加速处理结构,处理结构根据指令区分字符比较或字符互换操作。若为字符串对比操作505,加速处理结构接收到指令后,首先需要对要处理的字符串的地址进行解析,按照解析后的地址执行访存操作507,对于访存回的数据,由于对齐等原因,无法保证字符串的首地址即为访存回来的数据的首位数据,因此需要执行相应的移位操作509。之后进行对比器进行数据的比对511。本次比对结束后,一方面需要积累比对的结果515,另一方面需要判断是否比对结束513。若结束,则将结果写回简核517,若未结束,则继续进行访存和数据的对比515。若为字符串写操作,则执行类似的操作。首先对地址进行解析并发起访存操作508,对于返回的数据进行移位等操作510。之后执行写入操作512。每次写入操作需要判断是否结束514,若未结束则记录已经执行的字符串的长度,并继续发起访存操作516,若结束,则完成本次操作518。
实施例2
在又一个具体的实施例中,通过两类具体的字符串操作执行流程,来说明本发明的核心技术方案。
如图2所示,本发明基于传统的处理器系统以及3D存储器HMC之上,增加了PIM使能单元PEU 203,简核209,字符串加速处理结构212,通过直接从DRAM分片213中请求数据,进行字符串的处理。加速结构212与Vault控制器集成在一起,通过从其控制的DRAM分片中读取数据进行字符串操作。
以下为各功能模块具体操作步骤:
如图3所示,为字符串比较操作加速装置。字符比较操作步骤:
步骤1:用户在编程时需要读设计字符串对比和互换操作的代码采用专用的接口函数进行实现,专用的接口函数用来使能PEU结构,进而激活字符串加速处理器结构。
步骤2:PIM使能单元PEU在接受到处理核202发来的操作命令后,将字符串控制命令越过缓存层级,直接发送至HMC控制器,进而发送至HMC存储器中的简核209。
步骤3:简核301根据主处理器中的PIM使能单元PMU发来的命令,进行命令的解析,生成调用字符加速处理结构String ACC的指令控制消息302。
步骤4:字符串加速结构的译码和控制单元305根据接收到的指令进行解析并向DRAM分片303发出数据读请求。
步骤5:读回的数据缓存在缓存308和309中,同时对DRAM分片执行预取操作,下一拍缓存308和309中的数据送入移位操作寄存器306和307中后,预取的数据继续放入缓存308和309中。
步骤6:缓存中的数据会根据需求在寄存器306和307中进行一定的移位操作,这主要是考虑对齐的问题。因为所需的数据不一定是一次存储访问所能对齐的数据,例如读取一个字符,8bits。通常,存储器会根据地址将对齐的几个字节读取至片上。因此需要做相应的移位处理,获取我们所需的内容。
步骤7:经过移位对齐操作之后,在字符比较器310、311以及312中执行数据对比操作。在对比阶段存在三个比较器,分别比较的内容为string1与string2,string1与“/0”或EOF,string2与“/0”或EOF。第一个比较器对比字符串内容,后两个字符串分别检测是否某个字符串已经结束。
步骤8:如果按照字符串最短的数据的长度执行等长度的对比操作,则字符串本次未做操作的字符串进入下一次对比操作。如果未指定长度,则检测是否指定EOF,则根据是否对比到EOF进行判断结束为止。如果都未指定,则根据“/0”判断是否结束。
步骤9:如果已经结束时,则将最后的对比结果“>,==,<”或者匹配的位置pos或者匹配的数量counter执行结果返回操作。返回给流水线Regs。
步骤10:对于本次对比未执行完成的操作继续进入下一次对比操作,直到按照某个条件判断结束,结果写回简核301。因为数据从存储器读取时,受访存带宽的影响,因此整个字符串比较操作会通过流水数据操作方式执行,即来到数据即可执行,无需等待,以提高执行效率。
图4所示为,为字符串互换操作处理加速结构,具体步骤:
步骤1:用户在编程时需要读设计字符串对比和互换操作的代码采用专用的接口函数进行实现,专用的接口函数用来使能PEU结构,进而激活字符串加速处理器结构。
步骤2:PIM使能单元PEU在接受到处理核202发来的操作命令后,将字符串控制命令越过缓存层级,直接发送至HMC控制器,进而发送至HMC存储器中的简核209。
步骤3:简核401根据主处理器中的PIM使能单元PMU发来的命令,进行命令的解析,生成调用字符加速处理结构String ACC的指令控制消息402。
步骤4:字符串加速结构的译码和控制单元405根据接收到的指令进行解析并向DRAM分片403发出数据读请求。
步骤5:读回的数据缓存在缓存406中,下一拍缓存406的数据送入移位操作寄存器408,执行DRAM分片预取的下一个数据继续读入数据到缓存406中。
步骤6:缓存中的数据会根据需求在寄存器408中进行一定的移位操作,这主要是考虑所需的数据并不一定在DRAM分片的首地址开始的位置,因此需要做相应的移位处理,获取我们所需的内容。
步骤7:经过移位操作之后,有效数据在对比器409中执行数据对比操作,对比操作的主要目的是判断本次要写入字符串是否结束(未指定长度len的情况下)。
步骤8:于此同时,利用源地址和当前数据地址计算410剩余数据的长度。如果未指定长度,则根据“/0”判断是否结束。
步骤9:若未结束,则继续以相同的方式执行剩余的数据的互换操作。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。

Claims (19)

1.一种通用字符串加速处理硬件装置,其特征在于,所述装置集成于3D存储器内,该装置包括PIM使能控制单元、简单处理器核,以及集成在所述3D存储器逻辑层上的字符串加速结构;
所述字符串加速结构、简单处理器核与主处理器相连;
在主处理器端,对需要使用所述装置的字符串操作调用接口函数,所述接口函数唤醒所述PIM使能控制单元,所述PIM使能控制单元将需要操作的字符串操作的控制信息发送至所述3D存储器的控制器;
所述简单处理器核对所述控制信息进行解析,并依据数据分布的位置,将所述控制信息发送至该位置所在Vault对应的字符串加速结构中;
所述字符串加速结构接收到所述简单处理器核发送的控制信息后,执行字符串操作,并将操作结果返回所述简单处理器核。
2.根据权利要求1所述的装置,其特征在于,所述字符串加速结构固定访问属于每个Vault的存储颗粒。
3.根据权利要求1所述的装置,其特征在于,所述简单处理器核对所述控制信息进行解析,当所述控制信息对应的操作类型为字符比较操作时,将所述控制信息发送至所述字符串加速结构中,所述字符串加速结构将所述控制信息在译码器和所述控制器中进行解析,并对其所在的Vault的存储器分片发出数据读请求,将读取的数据存入缓存中,并对所述3D存储器的分片执行预取操作,获得预取的数据;
将所述读取的数据与所述预取的数据进行比较操作,并返回结果。
4.根据权利要求3所述的装置,其特征在于,对所述3D存储器的分片执行预取操作后,将所述缓存中存储的读取的数据送入移位操作寄存器中,并将所述预取的数据存入所述缓存中。
5.根据权利要求3所述的装置,其特征在于,所述比较操作在字符比较器中执行;所述字符比较器包括三个:字符比较器1、字符比较器2、字符比较器3,所述字符比较器1用于对比字符串内容,所述比较器2、比较器3用于检测是否字符串已结束。
6.根据权利要求3所述的装置,其特征在于,所述返回结果,返回至所述简单处理器核。
7.根据权利要求1所述的装置,其特征在于,所述简单处理器核对所述控制信息进行解析,当所述控制信息对应的操作类型为字符串互换操作时,将所述控制信息发送至所述字符串加速结构中,所述字符串加速结构将所述控制信息在译码器和所述控制器中进行解析,并对其所在的Vault的存储器分片发出数据读请求,将读取的数据存入缓存中,并对所述3D 存储器的分片执行预取操作,获得预取的数据;
将所述读取的数据与所述预取的数据进行比较操作,并将比较后的数据执行写回目标地址操作。
8.根据权利要求7所述的装置,其特征在于,对所述3D存储器的分片执行预取操作后,将所述缓存中存储的读取的数据送入移位操作寄存器中,并将所述预取的数据存入所述缓存中。
9.根据权利要求7所述的装置,其特征在于,所述比较操作在字符比较器中执行;所述字符比较器包括两个:字符比较器4、字符比较器5,所述比较器4、比较器5用于检测是否字符串已结束。
10.根据权利要求4或8所述的装置,其特征在于,所述移位操作寄存器用于对数据进行移位操作。
11.一种通用字符串加速处理方法,所述方法应用于通用字符串加速处理硬件装置,其特征在于,所述装置包括PIM使能控制单元、简单处理器核,以及集成在3D存储器逻辑层上的字符串加速结构;所述字符串加速结构、简单处理器核与主处理器相连;所述方法包括:
步骤1、通过接口函数唤醒所述PIM使能控制单元;
步骤2、所述PIM使能控制单元接收字符串控制命令,并直接发送至所述3D存储器的控制器,所述控制器将所述字符串控制命令发送至所述简单处理器核;
步骤3、所述简单处理器核对所述字符串控制命令进行解析,生成指令控制消息;
步骤4、所述字符串加速结构基于对所述控制消息的解析,向所述3D存储器发出数据读请求;
步骤5、将所述步骤4中读取的数据存储在缓存中,并基于对所述控制消息的解析,对读取的字符串进行相应的操作;
步骤6、判断所述步骤5所述的操作是否满足判断条件,并在满足判断条件时,结束所述操作。
12.根据权利要求11所述的方法,其特征在于,所述步骤4进一步包括:对所述控制消息的解析的结果,包括字符串比较操作、字符串互换操作。
13.根据权利要求12所述的方法,其特征在于,当所述解析的结果为字符串比较操作时,所述步骤5进一步包括:
步骤501、将读取的数据分别存储在缓存一、缓存二中,同时对所述3D存储器的分片执行预取操作,并在下一拍将所述缓存一、缓存二中的数据传输给移位操作寄存器一、移位操作寄存器二中,并将预取的数据继续存入缓存一、缓存二中;
步骤502、在所述移位操作寄存器中经过移位对齐后,在字符比较器中进行数据对比,完成字符串比较操作。
14.根据权利要求13所述的方法,其特征在于,所述步骤502中,所述字符比较器至少包括用于对比字符串内容的字符比较器、用于检测字符串是否结束的字符比较器。
15.根据权利要求13所述的方法,其特征在于,所述步骤502之后还包括:
步骤503、当按照字符串最短的数据的长度执行等长度对比操作时,则字符串中在本次未做对比操作的字符串部分进入下一次对比操作;当未指定长度时,则检测数据结束符号,所述数据结束符号包括EOF、字符串结束符。
16.根据权利要求12所述的方法,其特征在于,当所述解析的结果为字符串比较操作时,所述步骤6之后还包括:
步骤601、将比对结果执行结果返回操作,返回给流水线;
步骤602、对于本次比对未执行完成的操作,继续进入下一次比对操作,直至比对结束,并将结果写回所述简单处理器核。
17.根据权利要求16所述的方法,其特征在于,所述比对结果包括大于、等于、小于,和/或匹配的位置,和/或匹配的数量。
18.根据权利要求12所述的方法,其特征在于,当所述解析的结果为字符串互换操作时,所述步骤5进一步包括:
步骤511、将读取的数据存储在缓存三中,同时对所述3D存储器的分片执行预取操作,并在下一拍将所述缓存三中的数据传输给移位操作寄存器三中,并将预取的数据继续存入缓存三中;
步骤512、在所述移位操作寄存器中经过移位处理后,执行数据的互换操作。
19.根据权利要求18所述的方法,其特征在于,所述步骤512进一步包括:
步骤5121、利用源地址和当前数据地址,计算剩余数据的长度;
步骤5122、在未指定长度时,在移位处理之后,数据在对比器中执行对比操作,以判断要写入的字符串是否结束;和/或,则检测数据结束符号,以判断要写入的字符串是否结束。
CN201810995831.5A 2018-08-29 2018-08-29 一种通用字符操作加速处理硬件装置及控制方法 Active CN109298884B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810995831.5A CN109298884B (zh) 2018-08-29 2018-08-29 一种通用字符操作加速处理硬件装置及控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810995831.5A CN109298884B (zh) 2018-08-29 2018-08-29 一种通用字符操作加速处理硬件装置及控制方法

Publications (2)

Publication Number Publication Date
CN109298884A CN109298884A (zh) 2019-02-01
CN109298884B true CN109298884B (zh) 2021-05-25

Family

ID=65165922

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810995831.5A Active CN109298884B (zh) 2018-08-29 2018-08-29 一种通用字符操作加速处理硬件装置及控制方法

Country Status (1)

Country Link
CN (1) CN109298884B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114090079B (zh) * 2021-11-16 2023-04-21 海光信息技术股份有限公司 串操作方法、串操作装置以及存储介质
CN117234707A (zh) * 2023-08-30 2023-12-15 中科驭数(北京)科技有限公司 一种基于异构架构的Char类型条件判断方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105487812A (zh) * 2014-10-01 2016-04-13 三星电子株式会社 用于支持存储器内处理的方法和存储器模块
CN106445472A (zh) * 2016-08-16 2017-02-22 中国科学院计算技术研究所 一种字符操作加速方法、装置、芯片、处理器
CN107301455A (zh) * 2017-05-05 2017-10-27 中国科学院计算技术研究所 用于卷积神经网络的混合立方体存储系统及加速计算方法
CN107590533A (zh) * 2017-08-29 2018-01-16 中国科学院计算技术研究所 一种用于深度神经网络的压缩装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10430182B2 (en) * 2015-01-12 2019-10-01 Microsoft Technology Licensing, Llc Enhanced compression, encoding, and naming for resource strings

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105487812A (zh) * 2014-10-01 2016-04-13 三星电子株式会社 用于支持存储器内处理的方法和存储器模块
CN106445472A (zh) * 2016-08-16 2017-02-22 中国科学院计算技术研究所 一种字符操作加速方法、装置、芯片、处理器
CN107301455A (zh) * 2017-05-05 2017-10-27 中国科学院计算技术研究所 用于卷积神经网络的混合立方体存储系统及加速计算方法
CN107590533A (zh) * 2017-08-29 2018-01-16 中国科学院计算技术研究所 一种用于深度神经网络的压缩装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
CasHMC: A Cycle-Accurate Simulator for Hybrid Memory Cube;Dong-Ik Jeon 等;《IEEE Computer Architecture Letters》;IEEE;20160816;第16卷(第1期);10-13页 *

Also Published As

Publication number Publication date
CN109298884A (zh) 2019-02-01

Similar Documents

Publication Publication Date Title
JP6523274B2 (ja) 分岐予測ユニット及びレベル1命令キャッシュにおける帯域幅の増加
US7664938B1 (en) Semantic processor systems and methods
US9350826B2 (en) Pre-fetching data
US9141648B1 (en) Management of database blocks
TWI697837B (zh) 微處理器的前端以及執行零空泡條件分支預測的電腦實施方法
US10521228B2 (en) Data read-write scheduler and reservation station for vector operations
CN108268385B (zh) 具有集成目录高速缓存的优化的高速缓存代理
CN108257078B (zh) 存储器知晓重排序源
CN103309644A (zh) 用于微处理器的转译地址高速缓存
WO2020073641A1 (zh) 一种面向数据结构的图形处理器数据预取方法及装置
CN109298884B (zh) 一种通用字符操作加速处理硬件装置及控制方法
US20090204798A1 (en) Simplified Implementation of Branch Target Preloading
CN108762812B (zh) 面向通用字符串处理的硬件加速结构装置及控制方法
US6507895B1 (en) Method and apparatus for access demarcation
KR20140134523A (ko) 데이터를 기반으로 전력을 관리하는 프로세싱 장치 및 그 장치를 이용한 방법
CN106445472B (zh) 一种字符操作加速方法、装置、芯片、处理器
US7769954B2 (en) Data processing system and method for processing data
CN108874691B (zh) 数据预取方法和内存控制器
CN110515659B (zh) 一种原子指令的执行方法和装置
US20160019152A1 (en) Prefetch list management in a computer system
CA2762563A1 (en) Data prefetching and coalescing for partitioned global address space languages
US8490098B2 (en) Concomitance scheduling commensal threads in a multi-threading computer system
JP2003140965A (ja) 分散共有メモリ型並列計算機および命令スケジューリング方法
WO2013185660A1 (zh) 一种网络处理器的指令存储装置及该装置的指令存储方法
CN112612728B (zh) 缓存管理方法及装置、设备

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
CB02 Change of applicant information

Address after: 100095 room 135, 1st floor, building 15, Chuangke Town, Wenquan Town, Haidian District, Beijing

Applicant after: Beijing Zhongke Ruixin Technology Group Co.,Ltd.

Address before: 1 wensong Road, Zhongguancun environmental protection park, Beiqing Road, Haidian District, Beijing 100095

Applicant before: SMARTCORE (BEIJING) Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: A general character operation accelerated processing hardware device and control method

Effective date of registration: 20210811

Granted publication date: 20210525

Pledgee: Zhongxin Suzhou Industrial Park Venture Capital Co.,Ltd.

Pledgor: Beijing Zhongke Ruixin Technology Group Co.,Ltd.

Registration number: Y2021990000709

PE01 Entry into force of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right

Date of cancellation: 20220517

Granted publication date: 20210525

Pledgee: Zhongxin Suzhou Industrial Park Venture Capital Co.,Ltd.

Pledgor: Beijing Zhongke Ruixin Technology Group Co.,Ltd.

Registration number: Y2021990000709

PC01 Cancellation of the registration of the contract for pledge of patent right
TR01 Transfer of patent right

Effective date of registration: 20230714

Address after: 215125 11-303, creative industrial park, No. 328, Xinghu street, Suzhou Industrial Park, Suzhou City, Jiangsu Province

Patentee after: Suzhou Ruixin integrated circuit technology Co.,Ltd.

Address before: 100095 room 135, 1st floor, building 15, Chuangke Town, Wenquan Town, Haidian District, Beijing

Patentee before: Beijing Zhongke Ruixin Technology Group Co.,Ltd.

TR01 Transfer of patent right