CN104252416B - 一种加速器以及数据处理方法 - Google Patents

一种加速器以及数据处理方法 Download PDF

Info

Publication number
CN104252416B
CN104252416B CN201310269782.4A CN201310269782A CN104252416B CN 104252416 B CN104252416 B CN 104252416B CN 201310269782 A CN201310269782 A CN 201310269782A CN 104252416 B CN104252416 B CN 104252416B
Authority
CN
China
Prior art keywords
access request
selector
acceleration
accelerator
request
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
CN201310269782.4A
Other languages
English (en)
Other versions
CN104252416A (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.)
Huawei Technologies Co Ltd
Institute of Computing Technology of CAS
Original Assignee
Huawei Technologies Co Ltd
Institute of Computing Technology of CAS
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 Huawei Technologies Co Ltd, Institute of Computing Technology of CAS filed Critical Huawei Technologies Co Ltd
Priority to CN201310269782.4A priority Critical patent/CN104252416B/zh
Priority to PCT/CN2014/080162 priority patent/WO2014206229A1/zh
Publication of CN104252416A publication Critical patent/CN104252416A/zh
Application granted granted Critical
Publication of CN104252416B publication Critical patent/CN104252416B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Advance Control (AREA)

Abstract

本发明实施例公开了一种加速器以及数据处理方法,用于对现有计算机设备进行升级,提高计算机设备的数据处理效率。本发明实施例包括:控制器接口,行地址判断单元,第一选择器,加速寄存单元,加速引擎,总线控制裁决器,第二选择器和存储器接口。

Description

一种加速器以及数据处理方法
技术领域
本发明涉及计算机数据处理领域,尤其涉及一种加速器以及数据处理方法。
背景技术
在计算机系统中,主存储器(Main Memory)的存取速度一直比中央处理器操作速度慢得多,使中央处理器的高速处理能力不能充分发挥,很多的时间被浪费在等待数据返回上,整个计算机系统的工作效率受到影响。
为了缓和中央处理器和主存储器之间速度不匹配的矛盾,在存储层次上增加高速缓冲存储器(Cache)是一种比较通用的方法。高速缓冲存储器的容量只有主存储器的几千分之一,但它的存取速度比主存储器要快的多。根据程序局部性原理,正在使用的主存储器某一单元在将来被再次访问的可能性很大(时间局部性),并且其附近的那些单元被用到的可能性也很大(空间局部性)。因而,当中央处理器存取主存储器某一单元时,计算机硬件就自动地将包括该单元在内的那一组单元内容调入高速缓冲存储器,中央处理器即将存取的主存储器单元很可能就在刚刚调入到高速缓冲存储器中的那一组单元内。于是,中央处理器就可以对高速缓冲存储器进行存取。在整个处理过程中,如果中央处理器绝大多数存取主存储器的操作能为存取高速缓冲存储器所代替,计算机的处理速度就能显著提高。
虽然高速缓冲存储器可以显著提高性能,但是其容量有限,如果中央处理器要存取的单元不在高速缓冲存储器中,仍然需要存取延迟较高的主存储器,这仍然是制约性能的关键因素。同时,如果局部性差的数据单元被取到高速缓冲存储器,可能会把一些局部性好的数据单元替换出高速缓冲存储器,即所谓的高速缓冲存储器污染(cache pollution),这会造成中央处理器需要不断的去访问处理速度较低的主存储器,导致计算机整体的运行效率受到影响。
在现有技术中,如图1所示,在内存控制器中增加加速器,把局部性差的数据单元操作放在加速器中执行。由于不需要将数据单元取到中央处理器,而直接在离主存储器更近的内存控制器中处理,因此节省了一部分访存延迟。同时,由于这些数据单元操作局部性比较差,因此不用将其取到高速缓冲存储器,不会对中央处理器后续的操作造成性能影响。
但是,这种现有技术需要修改内存控制器,而内存控制器和中央处理器通常集成在一个中央处理器芯片内,因此改动内存控制器需要对整个中央处理器芯片进行重新设计,验证,流片和测试,成本太高;并且,难以对现有的计算机实现改造升级。
发明内容
本发明实施例提供了一种加速器以及数据处理方法,用于对现有计算机设备进行升级,提高计算机设备的数据处理效率。
本发明实施例第一方面提供的加速器,包括:
控制器接口,行地址判断单元,第一选择器,加速寄存单元,加速引擎,总线控制裁决器,第二选择器和存储器接口;
所述控制器接口用于接收内存控制器传输的访存请求,所述访存请求包括:正常访存请求和加速访存请求;
所述行地址判断单元用于根据所述访存请求的行地址判断所述访存请求的请求类型,生成并向所述第一选择器发送第一控制信号;若所述访存请求为正常访存请求,则生成向所述第二选择器传输的第一控制信号;若所述访存请求为加速访存请求,则生成向所述加速寄存单元传输的第一控制信号;
所述第一选择器用于根据所述第一控制信号选择所述访存请求的传输方向;
所述加速寄存单元用于存储所述加速访存请求的处理信息;
所述加速引擎用于通过向所述加速寄存单元调用所述加速访存请求的处理信息,并根据所述处理信息通过所述第二选择器访问主存储器,以执行所述加速访存请求的数据处理操作;
所述总线控制裁决器用于生成并向所述第二选择器发送第二控制信号;
所述第二选择器用于接收第一选择器传输的正常访存请求,加速引擎传输的加速访存请求以及总线控制裁决器发送的第二控制信号;并根据所述第二控制信号选择当前访问所述主存储器的访存请求;
所述存储器接口用于向所述主存储器传输所述访存请求,以及向所述第二选择器传输所述访存请求对应的响应数据。
结合本发明实施例第一方面提供的加速器,在第一种可能实现的方案中,所述总线控制裁决器具体用于:当所述第二选择器需要选择所述正常访存请求和所述加速访存请求中的任意一个访问所述主存储器时,生成优先处理所述正常访存请求的第二控制信号。
结合本发明实施例第一种可能实现的加速器,在第二种可能实现的方案中,所述总线控制裁决器具体还用于:当所述存储器接口正在处理所述加速访存请求时,所述第二选择器收到了所述正常访存请求,则判断所述正常访存请求的访问类型,若是写存请求,则推迟至所述存储器接口释放后再发送;若是读存请求,则通过所述第一选择器向所述内存控制器发送纠错码ECC错误消息。
结合本发明实施例第一方面提供的加速器,在第三种可能实现的方案中,所述加速寄存单元包括:
命令队列,用于存储所述加速访存请求为加速命令时的命令信息,所述命令信息包括命令类型、源操作数或源操作数地址;
配置寄存器,用于存储所述加速访存请求为配置请求时的配置信息,所述配置信息包括主存储器的物理地址到行地址和列地址的映射关系;
结果寄存器,用于存储所述加速访存请求的执行状态和响应数据。
结合本发明实施例第三种可能实现的方案,在第四种可能实现的方案中,所述第一选择器还用于:当所述结果寄存器返回所述加速访存请求的响应数据,且所述第二选择器返回所述正常访存请求的响应数据时,根据所述总线控制裁决器生成的第二控制信号选择向所述控制器接口传输的响应数据。
结合本发明实施例第三种可能实现的方案,在第五种可能实现的方案中,所述第二选择器还用于:
当所述存储器接口返回所述访存请求的响应数据时,根据所述响应数据所述对应的访存请求的请求类型,选择向所述加速引擎或所述第一选择器传输所述响应数据。
结合本发明实施例第一方面提供的加速器,在第六种可能实现的方案中,所述加速器还包括:
路由模块,用于将所述加速访存请求传输到对应的主存储器中,所述路由模块分别与所述加速引擎和另一个加速器相连接,当所述加速访存请求所需要的数据不在本地加速器所连接的主存储器时,所述加速引擎将所述加速访存请求传输到所述路由模块,所述路由模块再将所述加速访存请求传输到另一个加速器,使得所述另一个加速器根据所述加速访存请求对所述另一个加速器连接的主存储器进行数据访问。
结合本发明实施例第六种可能实现的方案,在第七种可能实现的方案中,所述路由模块与所述第二选择器相连接,使得所述路由模块将接收到的另一个加速器发送的加速访存请求,并通过所述第二选择器传输至本地加速器所连接的主存储器中。
本发明实施例第一方面提供的数据处理方法,包括:
加速器接收内存控制器传输的访存请求,所述访存请求包括:正常访存请求和加速访存请求;
所述加速器根据所述访存请求的行地址判断所述访存请求的请求类型;若访存请求为加速访存请求,则对所述加速访存请求进行缓存,并在所述加速器内对所述加速访存请求进行处理;若所述正常访存请求,则将所述正常访存请求传输至主存储器进行处理。
结合本发明实施例第二方面提供的方法,在第一种可能实现的方案中,所述方法还包括:
当所述加速器需要选择所述正常访存请求和所述加速访存请求中的任意一个访问所述主存储器时,优先选择所述正常访存请求。
结合本发明实施例第二方面提供的方法,在第二种可能实现的方案中,所述方法还包括:
当所述加速器的存储器接口正在处理所述加速访存请求时,所述加速器的第二选择器收到了所述正常访存请求,则判断所述正常访存请求的访问类型,若是写存请求,则将所述正常访存请求推迟至所述加速器的存储器接口释放后再发送至所述主存储器;若是读存请求,则向所述内存控制器发送纠错码ECC错误消息。
从以上技术方案可以看出,本发明实施例具有以下优点:
本发明实施例中的加速器通过控制器接口和存储器接口分别与计算机设备中的内存控制器和主存储器连接,当接收到内存控制器传输的访存请求时,由行地址判断单元判断该访存请求为正常访存请求或加速访存请求,其中,正常访存请求对应请求的是局部性较好的数据单元,加速访存请求对应请求的是局部性较差的数据单元;若所述访存请求为正常访存请求,则行地址判断单元指示第一选择器向所述第二选择器发送该正常访存请求,使得第二选择器直接将该正常访存请求传输给主存储器进行处理;若所述访存请求为加速访存请求,则行地址判断单元指示第一选择器向所述加速寄存单元发送该加速访存请求,使得加速寄存单元对该加速访存请求中的处理信息进行缓存,并触发加速引擎对该加速访存请求对应的局部性较差的数据单元进行处理,从而使得局部性较好的数据单元能集中在高速缓冲存储器中处理,而加速引擎对局部性较差的数据单元的处理性能也强于中央处理器,因此提高了计算机的数据单元处理速度;并且,本发明实施例中的加速器可以通过控制器接口和存储器接口分别与计算机设备中的内存控制器和主存储器连接,兼容现有计算机的硬件结构,实现了对现有计算机设备的数据处理能力的升级。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术中计算机的一个结构示意图;
图2是本发明实施例中加速器的一个结构示意图;
图3是本发明实施例中加速器的另一个结构示意图;
图4是本发明实施例中计算机的一个结构示意图;
图5是本发明实施例中加速器的另一个结构示意图;
图6是本发明实施例中数据处理方法的一个流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种加速器以及数据处理方法,用于对现有计算机设备进行升级,提高计算机设备的数据处理效率。
请参阅图2,本发明实施例中加速器的一个实施例包括:
控制器接口101,行地址判断单元102,第一选择器103,加速寄存单元104,加速引擎105,总线控制裁决器106,第二选择器107和存储器接口108;上述各个单元的连接关系如图2所示。
所述控制器接口101用于接收内存控制器20传输的访存请求,具体的,所述访存请求为中央处理器需要访问主存储器进行读写操作的指令,所述访存请求中携带有主存储器的访存地址。
在本发明实施例中,访存请求包括:正常访存请求和加速访存请求;正常访存请求为对应请求的是局部性较好的数据单元,加速访存请求对应请求的是局部性较差的数据单元;在本发明实施例在生成访问请求之前,会对将要被请求的数据单元进行数据分析,确定该数据单元局部性的好坏,具体可以通过设置一个阈值判定,当数据单元的局部性大于或等于某一阈值时,可以确定该数据单元的局部性较好,则对应生成正常访存请求;当数据单元的局部性小于某一阈值时,可以确定该数据单元的局部性较差,则对应生成加速访存请求。
在现有技术中,局部性较好的数据单元指的是被再次访问的几率较大的数据单元(时间局部性),或若一数据单元被访问过一次后,该数据单元存储位置附件的其它数据单元也被访问的几率较大,则该数据单元的局部性较好(空间局部性)。
所述行地址判断单元102用于根据所述访存请求的行地址判断所述访存请求的请求类型,生成并向所述第一选择器发送第一控制信号;若所述访存请求为正常访存请求,则生成向所述第二选择器107传输的第一控制信号;若所述访存请求为加速访存请求,则生成向所述加速寄存单元104传输的第一控制信号。
在实际应用的内存控制器接口协议中,访存请求中携带的访存地址会被拆分为行地址和列地址两部分,行地址先发送,间隔预置时长后发送列地址,并且列地址发送后固定的节拍数必须返回数据。
在图1的现有技术中,由于数据接口设置在内存控制器内,因此,地址是不被拆分为行地址和列地址的,由于没有“固定拍数返回数据”的限制,其可以在收到地址后再进行判断和切换数据通路,这通常需要一拍时间。而在本发明实施例中,使用由于使用的是内存控制器的外部接口连接本发明的加速器,因此,需要遵守“列地址发送后固定的节拍数必须返回数据”的限定;为了避免延时,本发明实施例利用了行地址发送和列地址发送之间的间隔时间,在访存请求全部发送完成之前,使用行地址判断单元102通过行地址对访存请求的请求类型进行判断,从而节省了因判断而等待的时间,提高了数据传输的效率。
所述第一选择器103用于根据所述第一控制信号选择所述访存请求的传输方向;具体的,该传输方向为向第二选择器107发送,或向加速寄存单元104发送。在实际应用中,第一选择器103可以同时具备控制器接口101的解复用器功能和多路选择器的功能;对于控制器接口101的访存请求,其功能为解复用器,根据行地址判断单元102产生的控制信号,输出到第二选择器107或加速寄存单元104;对于总线控制裁决器106,第二选择器107和加速寄存单元104等单元返回的数据信息,其功能为多路选择器,根据总线控制裁决器106产生的控制信号从其中选择一个输出到控制器接口101。
所述加速寄存单元104用于存储所述加速访存请求的处理信息;
所述加速引擎105用于通过向所述加速寄存单元104调用所述加速访存请求的处理信息(具体可以为加速命令),并根据所述处理信息通过所述第二选择器107访问主存储器,以执行所述加速访存请求的数据处理操作(具体为,对该加速访存请求中指示的局部性差的数据单元进行运算处理);
所述总线控制裁决器106用于生成并向所述第二选择器发送第二控制信号;使得当所述第二选择器107需要同时处理两种访存请求时,可以按一定的规则分配处理次序,避免不同的访存请求在处理流程中发送冲突。
所述第二选择器107用于接收第一选择器传输的正常访存请求,加速引擎传输的加速访存请求以及总线控制裁决器发送的第二控制信号;并根据所述第二控制信号选择当前访问所述主存储器30的访存请求;在实际应用中,第二选择器107也同时具备存储器接口108的解复用器功能和多路选择器的功能;对于第一选择器103上传输的正常访存请求和加速引擎105上传输的加速访存请求以及写数据,其功能为多路选择器,根据总线控制裁决器106的总线仲裁结果选择一个输出到存储器接口108;对于存储器接口108上返回的数据,其功能为解复用器,根据总线控制裁决器106的总线仲裁结果,将返回数据输出到加速引擎105或第一选择器103。
所述存储器接口108用于向所述主存储器30传输所述访存请求,以及向所述第二选择器传输所述访存请求对应的响应数据。
本发明实施例中的加速器通过控制器接口和存储器接口分别与计算机设备中的内存控制器和主存储器连接,当接收到内存控制器传输的访存请求时,由行地址判断单元判断该访存请求为正常访存请求或加速访存请求,其中,正常访存请求对应请求的是局部性较好的数据单元,加速访存请求对应请求的是局部性较差的数据单元;若所述访存请求为正常访存请求,则行地址判断单元指示第一选择器向所述第二选择器发送该正常访存请求,使得第二选择器直接将该正常访存请求传输给主存储器进行处理;若所述访存请求为加速访存请求,则行地址判断单元指示第一选择器向所述加速寄存单元发送该加速访存请求,使得加速寄存单元对该加速访存请求中的处理信息进行缓存,并触发加速引擎对该加速访存请求对应的局部性较差的数据单元进行处理,从而使得局部性较好的数据单元能集中在高速缓冲存储器中处理,而加速引擎对局部性较差的数据单元的处理性能也强于中央处理器,因此提高了计算机的数据单元处理速度;并且,本发明实施例中的加速器可以通过控制器接口和存储器接口分别与计算机设备中的内存控制器和主存储器连接,兼容现有计算机的硬件结构,实现了对现有计算机设备的数据处理能力的升级。
由于同时存在正常访存请求和加速访存请求两种访存请求,而同一时刻主存储器只能处理一个请求,因此,总线控制裁决器在实际应用中会遇到多种请求冲突的情况,本发明实施例提供了相应的解决方案,请参阅图3,本发明实施例中加速器的另一个实施例包括:
控制器接口101,行地址判断单元102,第一选择器103,加速寄存单元104,加速引擎105,总线控制裁决器106,第二选择器107和存储器接口108。
所述控制器接口101用于接收内存控制器20传输的访存请求,具体的,所述访存请求为中央处理器需要访问主存储器进行读写操作的指令,所述访存请求中携带有主存储器的访存地址。
在本发明实施例中,访存请求包括:正常访存请求和加速访存请求;正常访存请求为对应请求的是局部性较好的数据单元,加速访存请求对应请求的是局部性较差的数据单元;在本发明实施例在生成访问请求之前,会对将要被请求的数据单元进行数据分析,确定该数据单元局部性的好坏,具体可以通过设置一个阈值判定,当数据单元的局部性大于或等于某一阈值时,可以确定该数据单元的局部性较好,则对应生成正常访存请求;当数据单元的局部性小于某一阈值时,可以确定该数据单元的局部性较差,则对应生成加速访存请求。
所述行地址判断单元102用于根据所述访存请求的行地址判断所述访存请求的请求类型,生成并向所述第一选择器发送第一控制信号;若所述访存请求为正常访存请求,则生成向所述第二选择器107传输的第一控制信号;若所述访存请求为加速访存请求,则生成向所述加速寄存单元104传输的第一控制信号。
在实际应用的内存控制器接口协议中,访存请求中携带的访存地址会被拆分为行地址和列地址两部分,行地址先发送,间隔预置时长后发送列地址,并且列地址发送后固定的节拍数必须返回数据。
所述第一选择器103用于根据所述第一控制信号选择所述访存请求的传输方向;具体的,该传输方向为向第二选择器107发送,或向加速寄存单元104发送。在实际应用中,第一选择器103可以同时具备控制器接口101的解复用器功能和多路选择器的功能;对于控制器接口101的访存请求,其功能为解复用器,根据行地址判断单元102产生的控制信号,输出到第二选择器107或加速寄存单元104;对于总线控制裁决器106,第二选择器107和加速寄存单元104等单元返回的数据信息,其功能为多路选择器,根据总线控制裁决器106产生的控制信号从其中选择一个输出到控制器接口101。
所述加速寄存单元104用于存储所述加速访存请求的处理信息;
所述加速引擎105用于通过向所述加速寄存单元104调用所述加速访存请求的处理信息(具体可以为加速命令),并根据所述处理信息通过所述第二选择器107访问主存储器,以执行所述加速访存请求的数据处理操作(具体为,对该加速访存请求中指示的局部性差的数据单元进行运算处理);
所述总线控制裁决器106用于生成并向所述第二选择器发送第二控制信号;使得当所述第二选择器107需要同时处理两种访存请求时,可以按一定的规则分配处理次序,避免不同的访存请求在处理流程中发送冲突。
所述第二选择器107用于接收第一选择器传输的正常访存请求,加速引擎传输的加速访存请求以及总线控制裁决器发送的第二控制信号;并根据所述第二控制信号选择当前访问所述主存储器30的访存请求;在实际应用中,第二选择器107也同时具备存储器接口108的解复用器功能和多路选择器的功能;对于第一选择器103上传输的正常访存请求和加速引擎105上传输的加速访存请求以及写数据,其功能为多路选择器,根据总线控制裁决器106的总线仲裁结果选择一个输出到存储器接口108;对于存储器接口108上返回的数据,其功能为解复用器,根据总线控制裁决器106的总线仲裁结果,将返回数据输出到加速引擎105或第一选择器103。
所述存储器接口108用于向所述主存储器30传输所述访存请求,以及向所述第二选择器传输所述访存请求对应的响应数据。
进一步的,所述加速寄存单元104包括:
命令队列1041,用于存储所述加速访存请求为加速命令时的命令信息,所述命令信息包括命令类型、源操作数或源操作数地址;
配置寄存器1042,用于存储所述加速访存请求为配置请求时的配置信息,所述配置信息包括主存储器的物理地址到行地址和列地址的映射关系;
结果寄存器1043,用于存储所述加速访存请求的执行状态和响应数据。
在实际应用中,加速访存请求还可以分为加速命令和配置请求,当为加速命令时,第一选择器103则将该加速命令传输到命令队列1041;当为配置请求时,第一选择器103则将该配置请求传输到配置寄存器1042。配置请求在系统初始化的时候发送,用于根据配置信息将加速命令的地址转换成用以访问主存储器的行地址和列地址。
具体的,所述第一选择器101还用于:当所述结果寄存器1043返回所述加速访存请求的响应数据,且所述第二选择器107返回所述正常访存请求的响应数据时,根据所述总线控制裁决器106生成的第二控制信号选择向所述控制器接口101传输的响应数据。
具体的,所述第二选择器107还用于:当所述存储器接口108返回所述访存请求的响应数据时,根据所述响应数据所述对应的访存请求的类型,选择向所述加速引擎105或所述第一选择器103传输所述响应数据。
在实际应用中,由于中央处理器的运行速度可能比本发明实施例的加速器快,且正常访存请求对应处理的是局部性较好的数据单元,因此,当所述第二选择器需要选择所述正常访存请求和所述加速访存请求中的任意一个访问所述主存储器时,会生成优先处理所述正常访存请求的第二控制信号。
当所述存储器接口108正在处理所述加速访存请求时,所述第二选择器收到了所述正常访存请求,则判断所述正常访存请求的访问类型,若是写存请求,则需要拦截该写存请求,则推迟至所述存储器接口释放后再发送;若是读存请求,则通过所述第一选择器向所述内存控制器发送纠错码(ECC,Error Correction Code)错误消息,使得所述内存控制器20重新发送一次该读存请求,以避免产生系统的逻辑错误。
本发明实施例中的总线控制裁决器可以根据实际应用中的请求处理状态,为第一选择器和第二选择器生成合理的控制信号,使得数据可以无冲突的进行传输。
如图4所示,本发明实施例中的加速器同样可以扩展到多通道连接的场景,加速器的内部结构如图5所示,本发明实施例中加速器的另一个实施例包括:
控制器接口101,行地址判断单元102,第一选择器103,加速寄存单元104,加速引擎105,总线控制裁决器106,第二选择器107和存储器接口108。
所述控制器接口101用于接收内存控制器20传输的访存请求,具体的,所述访存请求为中央处理器需要访问主存储器进行读写操作的指令,所述访存请求中携带有主存储器的访存地址。
在本发明实施例中,访存请求包括:正常访存请求和加速访存请求;正常访存请求为对应请求的是局部性较好的数据单元,加速访存请求对应请求的是局部性较差的数据单元;在本发明实施例在生成访问请求之前,会对将要被请求的数据单元进行数据分析,确定该数据单元局部性的好坏,具体可以通过设置一个阈值判定,当数据单元的局部性大于或等于某一阈值时,可以确定该数据单元的局部性较好,则对应生成正常访存请求;当数据单元的局部性小于某一阈值时,可以确定该数据单元的局部性较差,则对应生成加速访存请求。
所述行地址判断单元102用于根据所述访存请求的行地址判断所述访存请求的请求类型,生成并向所述第一选择器发送第一控制信号;若所述访存请求为正常访存请求,则生成向所述第二选择器107传输的第一控制信号;若所述访存请求为加速访存请求,则生成向所述加速寄存单元104传输的第一控制信号。
在实际应用的内存控制器接口协议中,访存请求中携带的访存地址会被拆分为行地址和列地址两部分,行地址先发送,间隔预置时长后发送列地址,并且列地址发送后固定的节拍数必须返回数据。
所述第一选择器103用于根据所述第一控制信号选择所述访存请求的传输方向;具体的,该传输方向为向第二选择器107发送,或向加速寄存单元104发送。在实际应用中,第一选择器103可以同时具备控制器接口101的解复用器功能和多路选择器的功能;对于控制器接口101的访存请求,其功能为解复用器,根据行地址判断单元102产生的控制信号,输出到第二选择器107或加速寄存单元104;对于总线控制裁决器106,第二选择器107和加速寄存单元104等单元返回的数据信息,其功能为多路选择器,根据总线控制裁决器106产生的控制信号从其中选择一个输出到控制器接口101。
所述加速寄存单元104用于存储所述加速访存请求的处理信息;
所述加速引擎105用于通过向所述加速寄存单元104调用所述加速访存请求的处理信息(具体可以为加速命令),并根据所述处理信息通过所述第二选择器107访问主存储器,以执行所述加速访存请求的数据处理操作(具体为,对该加速访存请求中指示的局部性差的数据单元进行运算处理);
所述总线控制裁决器106用于生成并向所述第二选择器发送第二控制信号;使得当所述第二选择器107需要同时处理两种访存请求时,可以按一定的规则分配处理次序,避免不同的访存请求在处理流程中发送冲突。
所述第二选择器107用于接收第一选择器传输的正常访存请求,加速引擎传输的加速访存请求以及总线控制裁决器发送的第二控制信号;并根据所述第二控制信号选择当前访问所述主存储器30的访存请求;在实际应用中,第二选择器107也同时具备存储器接口108的解复用器功能和多路选择器的功能;对于第一选择器103上传输的正常访存请求和加速引擎105上传输的加速访存请求以及写数据,其功能为多路选择器,根据总线控制裁决器106的总线仲裁结果选择一个输出到存储器接口108;对于存储器接口108上返回的数据,其功能为解复用器,根据总线控制裁决器106的总线仲裁结果,将返回数据输出到加速引擎105或第一选择器103。
所述存储器接口108用于向所述主存储器30传输所述访存请求,以及向所述第二选择器传输所述访存请求对应的响应数据。
进一步的,所述加速寄存单元104包括:命令队列1041,配置寄存器1042和结果寄存器1043。
再进一步的,所述加速器10还可以包括:
路由模块109,用于将所述加速访存请求传输到对应的主存储器30中,所述路由模块分别与所述加速引擎和另一个加速器相连接,当所述加速访存请求所需要的数据不在本地加速器所连接的主存储器时,所述加速引擎将所述加速访存请求传输到所述路由模块,所述路由模块再将所述加速访存请求传输到另一个加速器,使得所述另一个加速器根据所述加速访存请求对所述另一个加速器连接的主存储器进行数据访问。
具体的,所述路由模块108还可以与所述第二选择器相连接,使得所述路由模块将接收到的另一个加速器发送的加速访存请求,并通过所述第二选择器传输至本地加速器所连接的主存储器中。
在实际应用中,利用该路由器108,多个加速器之间还可以组织成各种拓扑结构,如环形、胖树等结构。
下面对上述本发明实施例中加速器对应的数据处理方法进行描述,请参阅图6,本发明实施例中数据处理方法的一个实施例包括:
601、加速器接收内存控制器传输的访存请求;
加速器接收内存控制器传输的访存请求,所述访存请求包括:正常访存请求和加速访存请求。
在本发明实施例中,访存请求包括:正常访存请求和加速访存请求;正常访存请求为对应请求的是局部性较好的数据单元,加速访存请求对应请求的是局部性较差的数据单元;在本发明实施例在生成访问请求之前,会对将要被请求的数据单元进行数据分析,确定该数据单元局部性的好坏,具体可以通过设置一个阈值判定,当数据单元的局部性大于或等于某一阈值时,可以确定该数据单元的局部性较好,则对应生成正常访存请求;当数据单元的局部性小于某一阈值时,可以确定该数据单元的局部性较差,则对应生成加速访存请求。
602、加速器根据所述访存请求的行地址判断所述访存请求的请求类型;
加速器根据所述访存请求的行地址判断所述访存请求的请求类型;若访存请求为加速访存请求,则对所述加速访存请求进行缓存,并在所述加速器内对所述加速访存请求进行处理;若所述正常访存请求,则将所述正常访存请求传输至主存储器进行处理。
603、加速器选择访问主存储器的访存请求。
当所述加速器需要选择所述正常访存请求和所述加速访存请求中的任意一个访问所述主存储器时,优先选择所述正常访存请求。
在实际应用中,由于中央处理器的运行速度可能比本发明实施例的加速器快,且正常访存请求对应处理的是局部性较好的数据单元,因此,当所述第二选择器需要选择所述正常访存请求和所述加速访存请求中的任意一个访问所述主存储器时,会生成优先处理所述正常访存请求的第二控制信号。
当所述加速器的存储器接口正在处理所述加速访存请求时,所述加速器的第二选择器收到了所述正常访存请求,则判断所述正常访存请求的访问类型,若是写存请求,则将所述正常访存请求推迟至所述加速器的存储器接口释放后再发送至所述主存储器;若是读存请求,则向所述内存控制器发送纠错码ECC错误消息。
当加速器的存储器接口正在处理所述加速访存请求时,加速器的第二选择器收到了所述正常访存请求,则判断所述正常访存请求的访问类型,若是写存请求,则需要拦截该写存请求,则推迟至所述存储器接口释放后再发送;若是读存请求,则通过加速器的第一选择器向所述内存控制器发送纠错码(ECC,Error Correction Code)错误消息,使得所述内存控制器重新发送一次该读存请求,以避免产生系统的逻辑错误。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (11)

1.一种加速器,其特征在于,包括:
控制器接口,行地址判断单元,第一选择器,加速寄存单元,加速引擎,总线控制裁决器,第二选择器和存储器接口;
所述控制器接口用于接收内存控制器传输的访存请求,所述访存请求包括:正常访存请求和加速访存请求;
所述行地址判断单元用于根据所述访存请求的行地址判断所述访存请求的请求类型,生成并向所述第一选择器发送第一控制信号;
所述第一选择器用于根据所述第一控制信号选择所述访存请求的传输方向;其中当所述访存请求为正常访存请求时,所述第一选择器向所述第二选择器发送所述正常访存请求,当所述访存请求为加速访存请求时,所述第一选择器向所述加速寄存单元发送所述加速访存请求;
所述加速寄存单元用于存储所述加速访存请求的处理信息;
所述加速引擎用于通过向所述加速寄存单元调用所述加速访存请求的处理信息,并根据所述处理信息通过所述第二选择器访问主存储器,以执行所述加速访存请求的数据处理操作;
所述总线控制裁决器用于生成并向所述第二选择器发送第二控制信号;
所述第二选择器用于接收第一选择器传输的正常访存请求,加速引擎传输的加速访存请求以及总线控制裁决器发送的第二控制信号;并根据所述第二控制信号选择当前访问所述主存储器的访存请求;
所述存储器接口用于向所述主存储器传输所述访存请求,以及向所述第二选择器传输所述访存请求对应的响应数据。
2.根据权利要求1所述的加速器,其特征在于,所述总线控制裁决器具体用于:当所述第二选择器需要选择所述正常访存请求和所述加速访存请求中的任意一个访问所述主存储器时,生成优先处理所述正常访存请求的第二控制信号。
3.根据权利要求2所述的加速器,其特征在于,所述总线控制裁决器具体还用于:当所述存储器接口正在处理所述加速访存请求时,所述第二选择器收到了所述正常访存请求,则判断所述正常访存请求的访问类型,若是写存请求,则推迟至所述存储器接口释放后再发送;若是读存请求,则通过所述第一选择器向所述内存控制器发送纠错码ECC错误消息。
4.根据权利要求1所述的加速器,其特征在于,所述加速寄存单元包括:
命令队列,用于存储所述加速访存请求为加速命令时的命令信息,所述命令信息包括命令类型、源操作数或源操作数地址;
配置寄存器,用于存储所述加速访存请求为配置请求时的配置信息,所述配置信息包括主存储器的物理地址到行地址和列地址的映射关系;
结果寄存器,用于存储所述加速访存请求的执行状态和响应数据。
5.根据权利要求4所述的加速器,其特征在于,所述第一选择器还用于:当所述结果寄存器返回所述加速访存请求的响应数据,且所述第二选择器返回所述正常访存请求的响应数据时,根据所述总线控制裁决器生成的第二控制信号选择向所述控制器接口传输的响应数据。
6.根据权利要求4所述的加速器,其特征在于,所述第二选择器还用于:
当所述存储器接口返回所述访存请求的响应数据时,根据所述响应数据对应的访存请求的请求类型,选择向所述加速引擎或所述第一选择器传输所述响应数据。
7.根据权利要求1所述的加速器,其特征在于,所述加速器还包括:
路由模块,用于将所述加速访存请求传输到对应的主存储器中,所述路由模块分别与所述加速引擎和另一个加速器相连接,当所述加速访存请求所需要的数据不在本地加速器所连接的主存储器时,所述加速引擎将所述加速访存请求传输到所述路由模块,所述路由模块再将所述加速访存请求传输到另一个加速器,使得所述另一个加速器根据所述加速访存请求对所述另一个加速器连接的主存储器进行数据访问。
8.根据权利要求7所述的加速器,其特征在于,所述路由模块与所述第二选择器相连接,使得所述路由模块将接收到的另一个加速器发送的加速访存请求,并通过所述第二选择器传输至本地加速器所连接的主存储器中。
9.一种数据处理方法,其特征在于,应用于前述权利要求1-8任一项所述的加速器,所述方法包括:
加速器接收内存控制器传输的访存请求,所述访存请求包括:正常访存请求和加速访存请求;
所述加速器根据所述访存请求的行地址判断所述访存请求的请求类型;若访存请求为加速访存请求,则对所述加速访存请求进行缓存,并在所述加速器内对所述加速访存请求进行处理;若访存请求为正常访存请求,则将所述正常访存请求传输至主存储器进行处理。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
当所述加速器需要选择所述正常访存请求和所述加速访存请求中的任意一个访问所述主存储器时,优先选择所述正常访存请求。
11.根据权利要求9所述的方法,其特征在于,所述方法还包括:
当所述加速器的存储器接口正在处理所述加速访存请求时,所述加速器的第二选择器收到了所述正常访存请求,则判断所述正常访存请求的访问类型,若是写存请求,则将所述正常访存请求推迟至所述加速器的存储器接口释放后再发送至所述主存储器;若是读存请求,则向所述内存控制器发送纠错码ECC错误消息。
CN201310269782.4A 2013-06-28 2013-06-28 一种加速器以及数据处理方法 Active CN104252416B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201310269782.4A CN104252416B (zh) 2013-06-28 2013-06-28 一种加速器以及数据处理方法
PCT/CN2014/080162 WO2014206229A1 (zh) 2013-06-28 2014-06-18 一种加速器以及数据处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310269782.4A CN104252416B (zh) 2013-06-28 2013-06-28 一种加速器以及数据处理方法

Publications (2)

Publication Number Publication Date
CN104252416A CN104252416A (zh) 2014-12-31
CN104252416B true CN104252416B (zh) 2017-09-05

Family

ID=52141035

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310269782.4A Active CN104252416B (zh) 2013-06-28 2013-06-28 一种加速器以及数据处理方法

Country Status (2)

Country Link
CN (1) CN104252416B (zh)
WO (1) WO2014206229A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017065379A1 (ko) * 2015-10-16 2017-04-20 삼성전자 주식회사 프로세싱-인-메모리를 이용한 명령어 처리 방법 및 그 장치
CN109308280B (zh) * 2017-07-26 2021-05-18 华为技术有限公司 数据处理方法和相关设备
CN109756390B (zh) * 2018-12-06 2020-12-01 网易(杭州)网络有限公司 自动测试网络加速器连通性方法和装置
CN110018839B (zh) * 2019-03-27 2021-04-13 联想(北京)有限公司 硬件加速器复用方法和硬件加速装置
CN114328311A (zh) * 2021-12-15 2022-04-12 珠海一微半导体股份有限公司 一种存储控制器架构、数据处理电路及数据处理方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101221538A (zh) * 2008-01-24 2008-07-16 杭州华三通信技术有限公司 实现对缓存中数据快速查找的系统和方法
CN101290610A (zh) * 2008-06-03 2008-10-22 浙江大学 嵌入式异构多核体系片上通信互连组织层次的实现方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9552299B2 (en) * 2010-06-11 2017-01-24 California Institute Of Technology Systems and methods for rapid processing and storage of data
CN103345429B (zh) * 2013-06-19 2018-03-30 中国科学院计算技术研究所 基于片上ram的高并发访存加速方法、加速器及cpu

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101221538A (zh) * 2008-01-24 2008-07-16 杭州华三通信技术有限公司 实现对缓存中数据快速查找的系统和方法
CN101290610A (zh) * 2008-06-03 2008-10-22 浙江大学 嵌入式异构多核体系片上通信互连组织层次的实现方法

Also Published As

Publication number Publication date
CN104252416A (zh) 2014-12-31
WO2014206229A1 (zh) 2014-12-31

Similar Documents

Publication Publication Date Title
CN103647807B (zh) 一种信息缓存方法、装置和通信设备
CN104252416B (zh) 一种加速器以及数据处理方法
US10027776B2 (en) Distributed queue pair state on a host channel adapter
CN104850502B (zh) 一种数据的访问方法、装置及设备
CN107526546B (zh) 一种Spark分布式计算数据处理方法及系统
US20160132541A1 (en) Efficient implementations for mapreduce systems
CN110275841A (zh) 访问请求处理方法、装置、计算机设备和存储介质
CN105677580A (zh) 访问缓存的方法和装置
CN105335308B (zh) 对存储设备的访问信息处理方法和装置、系统
CN105518631B (zh) 内存管理方法、装置和系统、以及片上网络
AU2020214661B2 (en) Handling an input/output store instruction
CN108829613A (zh) 数据存储方法及存储设备
CN104731635B (zh) 一种虚拟机访问控制方法,及虚拟机访问控制系统
CN107179878A (zh) 基于应用优化的数据存储的方法和装置
CN106648440A (zh) 操作存储设备的控制方法和存储设备
CN104765701B (zh) 数据访问方法及设备
CN110187832A (zh) 一种数据操作的方法、设备和系统
CN110119304A (zh) 一种中断处理方法、装置及服务器
CN100405333C (zh) 用于处理多处理器系统中的存储器访问的方法和装置
CN103577469B (zh) 数据库连接复用方法和装置
CN103345429A (zh) 基于片上ram的高并发访存加速方法、加速器及cpu
CN106662895A (zh) 计算机设备和计算机设备数据读写的方法
CN105786732B (zh) 数据访问方法及装置
CN102855213B (zh) 一种网络处理器指令存储装置及该装置的指令存储方法
CN104750614B (zh) 用于管理存储器的方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant