CN102207919A - 加速数据传输的处理单元、芯片、计算设备和方法 - Google Patents
加速数据传输的处理单元、芯片、计算设备和方法 Download PDFInfo
- Publication number
- CN102207919A CN102207919A CN2010101369744A CN201010136974A CN102207919A CN 102207919 A CN102207919 A CN 102207919A CN 2010101369744 A CN2010101369744 A CN 2010101369744A CN 201010136974 A CN201010136974 A CN 201010136974A CN 102207919 A CN102207919 A CN 102207919A
- Authority
- CN
- China
- Prior art keywords
- data
- handshake
- data block
- strategy
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0879—Burst mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明涉及加速数据传输的处理单元、芯片、计算设备和方法。为了节省系统功耗和减小传输时延,本发明利用流数据的特性,创造性的提出一次握手、传输多个数据块的流数据传输模式。本发明采用握手信号节省策略,当处理单元在总线上发送包含多个数据块的请求后,高速缓存或者内存会进行地址匹配以判断是否有命中的数据块,如果有命中的数据块高速缓存或者内存仅需要进行一次应答,然后就开始连续传输其所拥有的命中的数据块,而不再针对每个数据块需要单独的握手信号。
Description
技术领域
本发明总体上涉及总线上的数据传输,具体的本发明涉及加速流数据在总线上传输的处理单元、芯片、计算设备和方法。
背景技术
日前,芯片内的处理单元可能由处理器核组成,也可能由硬件加速器(简称加速器)构成。利用加速器提高处理器核的处理能力是制造高性能CPU的趋势之一。加速器可以辅助处理器核,用于处理某些专门的任务,如加密、压缩等。加速器的采用减轻了处理器核的负担,处理器核可以主要做一些在结构上几乎没有什么规律的通用任务。使用了加速器的芯片由于既拥有通用处理器的灵活性,又具有专用硬件的计算优势,因此总体上具有增强的计算能力。
参考图1A或图1B,通常处理单元会在总线上广播数据请求,其请求的数据可能存储在与处理器核相连的高速缓存(Cache)中,也可能仅仅存储在内存(Memory)中。通常情况下会先从高速缓存中寻找其请求的数据,如果高速缓存中没有其想要的数据,才会去相对慢速的内存中读取相应的数据,内存中提供的数据可能会被同时调入高速缓存中以使得以后对相同数据的读取都从高速缓存中进行,而不必再次访问内存。
参考图2A,当处理单元在总线上广播数据请求后,无论是高速缓存,还是内存,均会查询本地存储并且发送应答信号给处理单元,告知数据块是否命中的情况,处理单元则会据此做好准备以准备接收命中的数据块。所述数据的请求和应答构成一对握手信号(Handshake),如果有数据块命中,每次握手信号后将会有一个数据块从高速缓存或者内存中传输到处理单元。处理单元获得某一数据块后又会启动下一轮握手信号,以请求下一个数据块。也就是说处理单元每请求一个数据块都需要启动一次握手信号,如果请求16个数据块就需要启动16次握手信号。
发明内容
本发明的发明人注意到由于加速器通常用于完成一些专门的任务,其所请求处理的大部分数据为流数据。流数据的特点是数据量大、数据块具有连续的地址,并且通常情况下所请求的数据块位于同一高速缓存中。另外,某些场景下,处理器核所请求的数据也有可能构成流数据。
现有的加速器请求数据处理的过程中由于多次实现握手信号,因此存在诸多缺陷。首先,多次握手信号可能造成芯片功耗的增加。由于每次发送数据请求后,所有片上处于监听状态的高速缓存都需要进行地址匹配过程才能确定是否有数据块命中(Cache hit)。因此,多次进行地址匹配必定使整个芯片功耗大大增加。其次,多次握手信号可能造成不必要的时延。由于每次收到数据请求后,高速缓存都需要进行地址匹配,从而消耗更多的时间周期,从而导致握手信号越多,时延越大。同样,当处理器核请求非本地高速缓存中或者内存中的流数据时,也会存在同样的问题。
为了节省系统功耗和减小传输时延,本发明利用流数据的特性,创造性的提出一次握手、传输多个数据块的传输模式。本发明采用握手信号节省策略(Handshake save policy),当处理单元在总线上发送包含多个数据块(通常以高速缓存行为单位)的请求后,高速缓存或者内存会进行地址匹配以判断是否有命中的数据块,如果有命中的数据块高速缓存或者内存仅需要进行一次应答,然后就开始连续传输其所拥有的命中的数据块,而不再针对每个数据块需要单独的握手信号。
本发明提供了一种加速数据传输的处理单元,所述处理单元与总线相连,所述处理单元包括:传输策略控制器,用于根据预定适用条件控制握手信号节省策略的启动,所述握手信号节省策略用于允许至少两个相邻地址段的数据块在所述总线上连续传输,以及数据访问控制器,用于在总线上发送数据请求,从总线上接收对所述数据请求的应答,以及在有数据块命中的情况下从总线上接收命中的数据块。
本发明还提供了一种加速数据传输的芯片,包括上述处理单元以及总线。
本发明还提供了一种加速数据传输的计算设备,包括:上述芯片以及内存。
本发明还提供了一种加速数据传输的方法,包括:根据预定适用条件控制握手信号节省策略的启动,所述握手信号节省策略用于允许至少两个相邻地址段的数据块在总线上连续传输;在总线上发送数据请求;从总线上接收对所述数据请求的应答;以及在有数据块命中的情况下,从总线上接收按照所述握手信号节省策略传输的命中的数据块。
在处理流数据时,本发明的握手信号节省策略可以节省芯片功耗和传输时延,从而整体上提高处理单元的工作效率。
附图说明
本说明中所参考的附图只用于示例本发明的典型实施例,不应该认为是对本发明范围的限制。
图1A示出了采用加速器与单处理器核的芯片结构示意图。
图1B示出了采用加速器与多处理器核的芯片结构示意图。
图2A示出了按照现有技术采用多次握手信号实现数据传输的示意图。
图2B示出了按照握手信号节省策略采用单次握手信号实现数据传输的示意图。
图3示出了按照本发明的一个实施例的加速器的结构示意图。
图4示出了按照本发明的一个实施例的包含处理器核的处理单元的结构示意图。
图5示出了按照本发明的又一个实施例的包含处理器核的处理单元的结构示意图。
图6A示出了按照本发明的一个实施例的数据请求信号的结构示意图。
图6B示出了按照本发明的一个实施例的应答信号的结构示意图。
图6C示出了按照本发明的一个实施例的传输结束信号的结构示意图。
图7A示出了按照本发明的又一个实施例的数据请求信号的结构示意图。
图7B示出了按照本发明的又一个实施例的应答信号的结构示意图。
图7C示出了按照本发明的又一个实施例的传输结束信号的结构示意图。
图7D示出了按照本发明的再一个实施例的数据请求信号的结构示意图。
图7E示出了按照本发明的再一个实施例的应答信号的结构示意图。
图7F示出了按照本发明的再一个实施例的传输结束信号的结构示意图。
图8示出了按照握手信号节省策略进行数据传输的方法流程图。
具体实施方式
下列讨论中,提供大量具体的细节以帮助彻底了解本发明。然而,很显然对于本领域技术人员来说,即使没有这些具体细节,并不影响对本发明的理解。并且应该认识到,使用如下的任何具体术语仅仅是为了方便描述,因此,本发明不应当局限于只用在这样的术语所表示和/或暗示的任何特定应用中。
总体而言,为了节省系统功耗和减小传输时延,本发明利用流数据的特性,创造性的提出一次握手、传输多个数据块的流数据传输模式。本发明采用握手信号节省策略,当处理单元在总线上发送包含多个数据块(通常以高速缓存行为单位)的请求后,高速缓存或者内存会进行地址匹配以判断是否有命中的数据块,如果有命中的数据块高速缓存或者内存仅需要进行一次应答,然后就开始连续传输其所拥有的命中的数据块,而不再针对每个数据块需要单独的握手信号。
图1A示出了采用加速器与单处理器核的芯片结构示意图。图1A的芯片包括了处理单元A、处理单元D和总线。内存通常位于芯片外,并且与被配置为可以与总线相连。处理单元A包括处理器核A和高速缓存A,高速缓存A中可能仅包括一个一级高速缓存,也可能还包括多级高速缓存(如还包括二级或三级高速缓存)。处理单元D为加速器。
在第一个例子中,加速器在总线上广播数据请求,加速器所请求的数据在高速缓存A中,高速缓存A将会发送对数据请求的应答给加速器告知有数据命中的情况,同时内存也会发送应答给加速器告知没有数据命中的情况。对于流数据而言,在适用握手信号节省策略的情况下,高速缓存A只需一次性的将其所拥有的命中的数据块全部传输给加速器,而无需在每传输一个数据块前在加速器与高速缓存A间反复进行握手。高速缓存中的数据块是以高速缓存行(cacheline)为单位存储的(例如一个高速缓存行能够存储64byte大小的数据作为一个数据块)。图2B示出了按照握手信号节省策略采用单次握手信号实现数据传输的示意图。由图2B可以容易的看出,在传输流数据的数据块时,由于节省了反反复复的握手过程,从而节省了芯片功耗和传输时延。
在第二个例子中,加速器所请求的数据存在于内存中。在加速器在总线上发送数据请求后,内存通过总线向加速器发送应答,以表示有数据命中,并且在适用握手信号节省策略的情况下,向加速器连续发送其所拥有的命中的数据块。内存中的数据是以内存单元为单位存储的(例如,一个内存单元能够存储16byte大小的数据作为一个数据块)。
在第三个例子中,加速器所请求的数据前半部分存储在高速缓存A中,后半部分存储在内存中。在加速器发出数据请求后,高速缓存A会发出有数据命中的应答,并接着连续传输其所拥有的命中的数据块,传输完毕后,加速器会就未收到的后半部分数据再次发出数据请求,而这次内存将发出有数据命中的应答,并连续传输内存里所拥有的命中数据,即后半部分数据。
加速器由于用于专门完成某些特定的处理任务,因此其请求的数据大部分是流数据。处理器核在某些情况下所请求的数据也有可能构成流数据,因此如果判断出处理器核所请求的数据也构成流数据,那么可以为处理器核应用握手信号节省策略,使得处理器核所请求的数据也能够连续传输,而无需反复间隔握手信号。关于流数据的判断将在后文中进行更详细的描述。
在第四个例子中,处理单元A在总线上发出流数据的数据请求,所请求的数据存在于内存中,所以内存发出有数据命中的应答,并在总线上连续传输内存中所拥有的命中的数据块。
图1B示出了采用加速器与多处理器核的芯片结构示意图。与图1A所不同的是图1B中包括多个包含处理器核的处理单元,即处理单元A、B、C。处理单元A、B、C分别包含处理器核和相应的高速缓存。同样的所述高速缓存既可以为一级高速缓存、也可以包含多级高速缓存。处理单元D为加速器。任何处理单元都可以在总线上发出数据请求。当加速器发出数据请求时,所请求的数据可能存在于高速缓存A、高速缓存B、高速缓存C或者内存中,当处理单元A发出数据请求时,所请求的数据可能存在于高速缓存B、高速缓存C或者内存中。在图1B中对流数据进行请求、应答与数据传输的过程与图1A大体相似,在此不再赘述。
图1B中虽然仅画出了一个加速器,但是本发明并不限于只能在芯片中安装一个加速器,如果芯片内包含多于一个加速器也可以同样适用握手信号节省策略。
图3示出了按照本发明的一个实施例的加速器的结构示意图。加速器包括数据处理单元、输入队列、输出队列、数据访问控制器以及传输策略控制器。所述数据处理单元用于完成专门的数据处理任务。所述输入队列用于将输入加速器的数据进行排队,所述输出队列用于将输出加速器的数据进行排队。所述数据访问控制器用于在总线上发送数据请求,在有数据块命中的情况下从总线上接收对所述数据请求的应答,以及在有数据块命中的情况下从总线上接收所请求的数据块。所述数据访问控制器可以是一个硬件逻辑,也可以是多个硬件逻辑的组合,每个硬件逻辑完成一项或多项功能,比如所述数据访问控制器可以分为三个硬件逻辑,分别用于完成数据请求的发送,应答的接收,以及数据的接收。
所述传输策略控制器用于根据预定适用条件控制握手信号节省策略的启动,所述握手信号节省策略用于允许至少两个相邻地址段的数据块在所述总线上连续传输。如果传输策略控制器启动握手信号节省策略,在加速器所发送的数据请求中将使握手信号节省指令设置为有效,从而要求返回的数据按照握手信号节省策略进行传输。
图6A示出了按照本发明的一个实施例的数据请求信号的结构示意图。所述数据请求包括读写标识、握手信号节省指令(Handshake savecommand)、请求ID、处理单元ID、起始地址以及终止地址。所述读写标识用以标识数据的读写指令,比如数字0表示加速器希望从其它存储单元读取数据。所述握手信号节省指令用以标识本次数据传输是否按照握手信号节省策略进行传输,比如数字1表示握手信号节省策略为有效状态。所述请求ID表示本次数据请求的识别号,比如识别号为0001。所述处理单元ID表示处理单元的识别号,比如以图1B为例,处理单元A的识别号为1000,处理单元B的识别号为0100,处理单元C的识别号为0010,处理单元D的识别号为0001。图6A中处理单元ID为0001表示加速器正在请求数据。所述起始地址表示请求数据的起始虚拟地址。所述终止地址表示请求数据的终止虚拟地址。在数据请求中包含起始地址与终止地址使得在这个地址范围内的数据可以连续传输。在图6A的例子中,请求的数据范围为32-543。
图4示出了按照本发明的一个实施例的包含处理器核的处理单元的结构示意图。假设加速器所请求的数据存储在处理单元A的高速缓存A中。处理单元A中包含一个地址队列,所述地址队列记录所述数据请求的起始地址与终止地址,即32与543。处理单元A在接收到数据请求后,将起始地址32与其高速缓存A中所存储的所有高速缓存行的数据地址进行比较,以检查是否有数据命中。在一种实施例中,将起始地址32与高速缓存中的标签位(Tag)中所存储的地址进行匹配以判断是否有数据命中。在另一种实施例中,高速缓存工作在辅助内存模式下(Slave Memory),因此高速缓存中的数据本身就是按照地址大小顺序排列的,这样通过匹配起始地址32是否落在高速缓存所存储的地址范围内,可以更快的确定是否有数据命中。
上文中已经说明了,流数据的特点就是数据块具有连续的地址,并且通常情况下所请求的数据块位于同一高速缓存中。因此,通常情况下,对于流数据而言,如果起始地址所在的数据块存在于某一高速缓存中,很有可能后续的数据块也存在于所述高速缓存中。因此,出于节省计算资源的目的,可以不用检查高速缓存中具体存储了多少命中的数据块,只要起始地址命中,就可以发送有数据命中的应答。在后面的数据传输阶段,还要进行地址匹配以连续传输所命中的数据,详细内容将在后文中进行更加详细的说明。当然,在另外的实施例中,也可以进一步计算高速缓存中所具体命中的数据块的数量,这样的代价是需要耗费更多的计算资源进行地址匹配。
加速器所请求的数据的数据块可能存储在非本地高速缓存中也可能存储在内存中,在两种情况下都可以通过地址匹配确定是否有数据块命中,并在有数据块命中的情况下按照所述握手信号节省策略传输所述命中的数据块。
图6B示出了按照本发明的一个实施例的应答信号的结构示意图。所述应答包括读写标识、握手信号节省策略响应标识、请求ID、存储单元ID以及是否命中标识。所述读写标识与数据请求中的读写标识一致。所述握手信号节省策略响应标识用以表示以在有数据块命中的情况下,同意按照所述握手信号节省策略传输所述命中的数据块,例如数字1表示同意按照握手信号节省策略传输命中的数据块。所述请求ID与数据请求中的请求ID一致。所述存储单元ID表示存储单元的识别号。比如以图1B为例,高速缓存A的识别号为1000,高速缓存B的识别号为0100,高速缓存C的识别号为0010,内存的识别号为0000。图6B中存储单元ID为1000表示处理单元A中的高速缓存A中存储有命中的数据块。所述是否命中标识用以表示是否有数据命中。图6B中是否命中标识为1表示高速缓存A中有数据命中。其它存储单元在按照起始地址32进行地址匹配后,发现没有命中的数据,将发送没有命中的应答,即应答中的是否命中标识为0。
接下来高速缓存A会将其所拥有的命中的数据连续传输给加速器。回到图4,由于处理单元A中的地址队列记录了数据请求中的起始地址与终止地址,因此处理单元可以在数据传输中不断将落在起始地址与终止地址间的地址与高速缓存A中所存储的地址进行匹配,以确定命中的数据块并在总线上进行传输。假设一个高速缓存行存储32byte的数据,假设高速缓存A中存储了地址为32-351,以及480-543。按照本发明的一种实施例,处理单元A首先查询地址为32的数据块是否命中,如果命中则传输地址为32的数据块,同时查询地址为64的数据块是否命中,如果命中则传输地址为64的数据块以此类推直到查询到地址为352的数据,发现没有命中的数据块,于是停止查询。加速器需要为地址为352以后的数据再次发送数据请求。这样,加速器可以按地址顺序接收所请求的数据块,无需重新排序。按照本发明的另一种实施例,处理单元A在查询到地址为352的数据没有命中的数据块后,继续查询地址为384、416等的数据是否命中,直到查询到地址为480的数据有数据块命中,则继续传输相应的数据块。这样在加速器通过第一次数据请求中获得了地址为32-351以及480-543的所有数据。对于地址352-479之间的数据,加速器需要再次发送数据请求。因此,加速器中所收到的所有地址范围在32-543的数据就不是按地址顺序排列的。加速器中需要增加新的逻辑以对收到的所有数据进行排序处理。
当高速缓存A中所拥有的命中的数据块(比如包含地址32-543的所有数据块)连续传输完毕后。高速缓存A向加速器发送传输结束信号,以表示所命中的数据块已被按照所述握手信号节省策略传输完毕。图6C示出了按照本发明的一个实施例的传输结束信号的结构示意图。传输结束信号包括请求ID与完成标志。所述请求ID与数据请求,以及应答中的请求ID一致。所述完成标志表示存储单元1000中所命中的数据连续传输完毕。当然存储单元1000并不见得命中所有的数据请求中所请求的数据,也就是说也许有些数据请求中所请求的数据并未存储在存储单元1000中,而是存储在别的存储单元内。图7A-图7F就描述了这样一个实例。
图7A示出了按照本发明的又一个实施例的数据请求信号的结构示意图。图7A中数据请求的数据结构与图6A中的数据请求的数据结构相同。在图7A所示的例子中,加速器在总线上发出数据请求,请求虚拟地址15648-16415这个地址范围内的所有数据,请求ID为0010,并且要求数据按照握手信号节省策略进行传输。
图7B示出了按照本发明的又一个实施例的应答信号的结构示意图。图7B中应答的数据结构与图6B相同。图7B表示存储单元ID为1000的高速缓存A拥有命中的数据块,并且同意按照握手信号节省策略进行传输。在这个例子中,是否命中标识为1表示有数据命中,而没有提供有多少数据命中,是否所请求的全部数据都命中等具体信息。在这个例子中,高速缓存A中仅仅命中了地址从15648-16383的数据,也就是说还有一部分数据没有命中。
图7C示出了按照本发明的又一个实施例的传输结束信号的结构示意图。所述传输结束信号表示高速缓存A所拥有的全部命中数据都已经传输完毕。
加速器在收到高速缓存A所命中的全部数据后,发现其所请求的数据段16384-16415并没有得到,因此再次发送数据请求。图7D示出了按照本发明的再一个实施例的数据请求信号的结构示意图。在图7D的数据请求中,加速器再次请求地址16384-16415范围内的数据。
图7E示出了按照本发明的再一个实施例的应答信号的结构示意图。图7E中的应答表示,存储单元ID为0100的存储单元,即高速缓存B拥有加速器再次所请求的地址范围在16384-16415的数据,并且高速缓存B同意按照握手信号节省策略连续传输所命中的数据。其它存储单元在按照起始地址16384进行地址匹配后,发现没有命中的数据,将发送没有命中的应答,即应答中的是否命中标识为0。
图7F示出了按照本发明的再一个实施例的传输结束信号的结构示意图。图7F中的信号表示高速缓存B中所命中的数据已经被传输完毕。
回到图3,图3中的传输策略控制器用于根据预定适用条件控制握手信号节省策略的启动。其中所述预定适用条件可以通过编程由程序员进行设定。进一步所述预定适用条件包括下列各项条件之一:启用握手信号节省策略,直到一个存储单元中所命中的数据块已被按照所述握手信号节省策略传输完毕;启用握手信号节省策略,仅允许预定数量的相邻地址段的数据块被连续传输;根据所述总线的繁忙状态启用握手信号节省策略;启用握手信号节省策略,直到程序禁用握手信号节省策略。
启用握手信号节省策略,直到一个存储单元中所命中的数据块已被按照所述握手信号节省策略连续传输完毕,是指如果有两个或者两个以上的存储单元都包含所请求的数据,在第一个存储单元返回其所命中的数据后,停止适用握手信号节省策略。按照图7A-7F的例子,在存储单元ID为1000的高速缓存A返回其所拥有的命中的数据块(15648-16383)后,当加速器再次发出数据请求后,停止适用握手信号节省策略,即设置数据请求中的握手信号节省指令为0。这样,不至于因为一个处理单元的数据请求而过长而长时间的占用总线的资源。
启用握手信号节省策略,仅允许预定数量的相邻地址段的数据块被连续传输,是指对以握手信号节省策略进行传输的数据块的大小进行限制,比如仅允许数据请求中终止地址与起始地址之差在一定范围内(比如,512位以内)的请求适用握手信号节省策略。这样也是为了避免一次性传输过多的数据块从而过多的占用总线资源,影响其它处理单元的工作。
根据所述总线的繁忙状态启用握手信号节省策略是指在总线不忙时启用握手信号节省策略,在总线繁忙时禁用握手信号节省策略。关于符合界定总线是否繁忙,可以由编程人员根据需要自由设定。
启用握手信号节省策略,直到程序禁用握手信号节省策略是指一直允许数据请求中的握手信号节省指令设置为1,直到程序员通过编程加以控制,设置该握手信号节省指令为无效。如果一值允许数据按照握手信号节省策略进行传输,有可能因为数据的大量传输造成总线数据拥堵。因此应当允许程序员对握手信号节省策略的应用加以控制。
在图6A-6C,图7A-7F的例子中,加速器作为处理单元发出数据请求,请求的数据按照握手信号节省策略进行传输。但是本发明中,除了加速器外,处理单元中的处理器核也有可能请求流数据,因此也可以适用握手信号节省策略。所述处理器核进一步应当包括流数据判断器,用于通过所请求的数据的地址判断所请求的数据是否是流数据,并且在所请求的数据是流数据的情况下形成流数据的数据请求。
图5示出了按照本发明的又一个实施例的包含处理器核的处理单元的结构示意图。图5描述了处理单元B的结构示意图,其它包含处理器核的处理单元的结构与此相似。处理单元B包括处理器核B、高速缓存B、传输策略控制器以及数据访问控制器。高速缓存B表示高速缓存的存储体部分。其中传输策略控制器与数据访问控制器的作用与图3中加速器的传输策略控制器与数据访问控制器的作用相似,在此不再赘述。与加速器所不同的是,处理器核B中增加了存取单元(load Store Unit,LSU)与流数据判断器。LSU记录了处理器核B所请求的数据的地址,流数据判断器根据LSU中记录的地址是否连续来判断处理器核B所请求的是否是流数据。如果处理器核B所请求的是流数据,处理单元B再通过传输策略控制器确定其发出的数据请求是否请求数据按照握手信号节省策略进行传输。数据请求、应答、以及传输结束信号的格式与图6A-6C、图7A-7F中描述的相似。处理器核B所请求的流数据的数据块可能存储于其它非本地高速缓存(比如高速缓存A、C)中,或者内存中。
上文中已经对按照握手信号节省策略进行数据传输的方法的各个详细步骤有所描述,下面对这一传输过程进行整体概述,已经在上文中描述的具体步骤将不再重复。图8示出了按照握手信号节省策略进行数据传输的方法流程图。在步骤801,根据预定适用条件控制握手信号节省策略的启动,所述握手信号节省策略用于允许至少两个相邻地址段的数据块在总线上连续传输;在步骤802,在总线上发送数据请求;在步骤803,从总线上接收对所述数据请求的应答;以及在步骤804,在有数据块命中的情况下,从总线上接收按照所述握手信号节省策略传输的命中的数据块。
所属技术领域的技术人员知道,本发明可以体现为系统、方法或计算机程序产品。因此,本发明可以具体实现为以下形式,即,可以是完全的硬件、完全的软件(包括固件、驻留软件、微代码等)、或者本文一般称为“电路”、“模块”或“系统”的软件部分与硬件部分的组合。此外,本发明还可以采取体现在任何有形的表达介质(medium of expression)中的计算机程序产品的形式,该介质中包含计算机可用的程序码。
可以使用一个或多个计算机可用的或计算机可读的介质的任何组合。计算机可用的或计算机可读的介质例如可以是——但不限于——电的、磁的、光的、电磁的、红外线的、或半导体的系统、装置、器件或传播介质。计算机可读介质的更具体的例子(非穷举的列表)包括以下:有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、诸如支持因特网或内部网的传输介质、或者磁存储器件。注意计算机可用的或计算机可读的介质甚至可以是上面印有程序的纸张或者其它合适的介质,这是因为,例如可以通过电扫描这种纸张或其它介质,以电子方式获得程序,然后以适当的方式加以编译、解释或处理,并且必要的话在计算机存储器中存储。在本文件的语境中,计算机可用的或计算机可读的介质可以是任何含有、存储、传达、传播、或传输供指令执行系统、装置或器件使用的或与指令执行系统、装置或器件相联系的程序的介质。计算机可用的介质可包括在基带中或者作为载波一部分传播的、由其体现计算机可用的程序码的数据信号。计算机可用的程序码可以用任何适当的介质传输,包括-但不限于-无线、电线、光缆、RF等等。
用于执行本发明的操作的计算机程序码,可以以一种或多种程序设计语言的任何组合来编写,所述程序设计语言包括面向对象的程序设计语言-诸如Java、Smalltalk、C++之类,还包括常规的过程式程序设计语言-诸如”C”程序设计语言或类似的程序设计语言。程序码可以完全地在用户的计算上执行、部分地在用户的计算机上执行、作为一个独立的软件包执行、部分在用户的计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后一种情形中,远程计算机可以通过任何种类的网络——包括局域网(LAN)或广域网(WAN)-连接到用户的计算机,或者,可以(例如利用因特网服务提供商来通过因特网)连接到外部计算机。
以下参照按照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。要明白的是,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得通过计算机或其它可编程数据处理装置执行的这些指令,产生实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能指令计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令产生一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instruction means)的制造品。
也可以把计算机程序指令加载到计算机或其它可编程数据处理装置上,使得在计算机或其它可编程数据处理装置上执行一系列操作步骤,以产生计算机实现的过程,从而在计算机或其它可编程装置上执行的指令就提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本文中所用的术语,仅仅是为了描述特定的实施例,而不意图限定本发明。本文中所用的单数形式的“一”和“该”,旨在也包括复数形式,除非上下文中明确地另外指出。还要知道,“包含”一词在本说明书中使用时,说明存在所指出的特征、整体、步骤、操作、单元和/或组件,但是并不排除存在或增加一个或多个其它特征、整体、步骤、操作、单元和/或组件,以及/或者它们的组合。
以下的权利要求中的对应结构、材料、操作以及所有功能性限定的装置(means)或步骤的等同替换,旨在包括任何用于与在权利要求中具体指出的其它单元相组合地执行该功能的结构、材料或操作。所给出的对本发明的描述其目的在于示意和描述,并非是穷尽性的,也并非是要把本发明限定到所表述的形式。对于所属技术领域的普通技术人员来说,在不偏离本发明范围和精神的情况下,显然可以作出许多修改和变型。对实施例的选择和说明,是为了最好地解释本发明的原理和实际应用,使所属技术领域的普通技术人员能够明了,本发明可以有适合所要的特定用途的具有各种改变的各种实施方式。
Claims (19)
1.一种加速数据传输的处理单元,所述处理单元与总线相连,所述处理单元包括:
传输策略控制器,用于根据预定适用条件控制握手信号节省策略的启动,所述握手信号节省策略用于允许至少两个相邻地址段的数据块在所述总线上连续传输,以及
数据访问控制器,用于在总线上发送数据请求,从总线上接收对所述数据请求的应答,以及在有数据块命中的情况下从总线上接收命中的数据块。
2.如权利要求1所述的处理单元,所述处理单元为加速器。
3.如权利要求1所述的处理单元,进一步包括:
处理器核,以及
高速缓存,
其中,所述处理器核包括流数据判断器,用于通过所请求的数据的地址判断所请求的数据是否是流数据,并且在所请求的数据是流数据的情况下形成流数据的数据请求。
4.如权利要求2或3所述的处理单元,其中所述数据请求包括:
握手信号节省指令,用以指示是否按照握手信号节省策略传输所述命中的数据块;以及
所请求的数据的起始地址和终止地址。
5.如权利要求2或3所述的处理单元,其中所述应答包括握手信号节省策略响应标识,以表示在有数据块命中的情况下,同意按照所述握手信号节省策略传输所述命中的数据块。
6.如权利要求2或3所述的处理单元,其中所述数据访问控制器进一步接收传输结束信号,以表示所命中的数据块已被按照所述握手信号节省策略传输完毕。
7.如权利要求2或3所述的处理单元,其中所述预定适用条件可以通过编程进行设定。
8.如权利要求2或3所述的处理单元,其中所述预定适用条件包括下列各项条件之一:
启用握手信号节省策略,直到一个存储单元所命中的数据块已被按照所述握手信号节省策略传输完毕;
启用握手信号节省策略,仅允许预定数量的相邻地址段的数据块被连续传输;
根据所述总线的繁忙状态启用握手信号节省策略;
启用握手信号节省策略,直到程序禁用握手信号节省策略。
9.如权利要求2或3所述的处理单元,其中所请求的数据的数据块存储在非本地高速缓存中,通过地址匹配确定所述非本地高速缓存中是否有数据块命中。
10.如权利要求2或3所述的处理单元,其中所请求的数据的数据块存储在内存中,通过地址匹配确定所述内存中是否有数据块命中。
11.一种加速数据传输的芯片,包括:
如权利要求1-10所述的处理单元;以及
总线。
12.一种加速数据传输的计算设备,包括:
如权利要求11所述的芯片;以及
内存。
13.一种加速数据传输的方法,包括:
根据预定适用条件控制握手信号节省策略的启动,所述握手信号节省策略用于允许至少两个相邻地址段的数据块在总线上连续传输;
在总线上发送数据请求;
从总线上接收对所述数据请求的应答;以及
在有数据块命中的情况下,从总线上接收按照所述握手信号节省策略传输的命中的数据块。
14.如权利要求13所述的方法,进一步包括:
通过所请求的数据的地址判断所请求的数据是否是流数据,并且在所请求的数据是流数据的情况下形成流数据的数据请求。
15.如权利要求13所述的方法,其中所述数据请求包括:
握手信号节省指令,用以指示是否按照握手信号节省策略传输命中的数据块;以及
所请求的数据的起始地址和终止地址。
16.如权利要求13所述的方法,其中所述应答包括握手信号节省策略响应标识,以表示在有数据块命中的情况下,同意按照所述握手信号节省策略传输所述命中的数据块。
17.如权利要求13所述的方法,进一步包括:
接收传输结束信号,以表示所命中的数据块已被按照所述握手信号节省策略传输完毕。
18.如权利要求13所述的方法,其中所述预定适用条件可以通过编程进行设定。
19.如权利要求13所述的方法,其中所述预定适用条件包括下列各项条件之一:
启用握手信号节省策略,直到一个存储单元所命中的数据块已被按照所述握手信号节省策略传输完毕;
启用握手信号节省策略,仅允许预定数量的相邻地址段的数据块被连续传输;
根据所述总线的繁忙状态启用握手信号节省策略;
启用握手信号节省策略,直到程序禁用握手信号节省策略。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101369744A CN102207919A (zh) | 2010-03-30 | 2010-03-30 | 加速数据传输的处理单元、芯片、计算设备和方法 |
US13/074,121 US8639840B2 (en) | 2010-03-30 | 2011-03-29 | Processing unit, chip, computing device and method for accelerating data transmission |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101369744A CN102207919A (zh) | 2010-03-30 | 2010-03-30 | 加速数据传输的处理单元、芯片、计算设备和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102207919A true CN102207919A (zh) | 2011-10-05 |
Family
ID=44696760
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010101369744A Pending CN102207919A (zh) | 2010-03-30 | 2010-03-30 | 加速数据传输的处理单元、芯片、计算设备和方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8639840B2 (zh) |
CN (1) | CN102207919A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104081351A (zh) * | 2012-01-25 | 2014-10-01 | 国际商业机器公司 | 用于混合系统的分布式功能执行 |
CN111124951A (zh) * | 2018-10-31 | 2020-05-08 | 伊姆西Ip控股有限责任公司 | 管理数据访问的方法、设备和计算机程序产品 |
CN111538677A (zh) * | 2020-04-26 | 2020-08-14 | 西安万像电子科技有限公司 | 数据处理方法及装置 |
CN111694769A (zh) * | 2019-03-15 | 2020-09-22 | 上海寒武纪信息科技有限公司 | 数据读取方法及装置 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105653490B (zh) * | 2015-12-28 | 2018-12-14 | 北京经纬恒润科技有限公司 | 一种基于地址控制的数据处理方法及装置 |
CN106603513A (zh) * | 2016-11-30 | 2017-04-26 | 中国人民解放军理工大学 | 基于主机标识的资源访问控制方法以及系统 |
CN112134771B (zh) * | 2019-06-25 | 2022-03-29 | 青岛海尔电冰箱有限公司 | 用于冰箱的半双工通信方法与冰箱 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0700001A1 (en) * | 1994-08-31 | 1996-03-06 | Motorola, Inc. | Integrated circuit microprocessor with programmable memory access interface types and related method |
WO2006039039A2 (en) * | 2004-09-30 | 2006-04-13 | Freescale Semiconductor, Inc. | Data processing system with bus access retraction |
CN101228733A (zh) * | 2005-07-22 | 2008-07-23 | Nxp股份有限公司 | 异步数据缓冲器 |
CN101552733A (zh) * | 2009-05-15 | 2009-10-07 | 深圳华为通信技术有限公司 | 一种基于spi实现数据传输的方法和系统 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5175825A (en) * | 1990-02-02 | 1992-12-29 | Auspex Systems, Inc. | High speed, flexible source/destination data burst direct memory access controller |
CA2068010C (en) * | 1991-08-30 | 1996-10-22 | Robert Chih-Tsin Eng | Alternate master bursting data rate management techniques for use in computer systems having dual bus architecture |
JP2519860B2 (ja) * | 1991-09-16 | 1996-07-31 | インターナショナル・ビジネス・マシーンズ・コーポレイション | バ―ストデ―タ転送装置および方法 |
JP3490131B2 (ja) * | 1994-01-21 | 2004-01-26 | 株式会社ルネサステクノロジ | データ転送制御方法、データプロセッサ及びデータ処理システム |
US5727233A (en) * | 1994-08-02 | 1998-03-10 | Apple Computer, Inc. | Byte-mode and burst-mode data transfer mechanism for a high-speed serial interface |
US5802546A (en) * | 1995-12-13 | 1998-09-01 | International Business Machines Corp. | Status handling for transfer of data blocks between a local side and a host side |
US6058438A (en) | 1998-02-06 | 2000-05-02 | Hewlett-Packard Company | Method and apparatus for performing high speed data transfers between a host memory and a geometry accelerator of a graphics machine |
JP2001216258A (ja) * | 2000-02-02 | 2001-08-10 | Toshiba Corp | データ処理装置およびバスサイクル制御方法 |
US7228401B2 (en) | 2001-11-13 | 2007-06-05 | Freescale Semiconductor, Inc. | Interfacing a processor to a coprocessor in which the processor selectively broadcasts to or selectively alters an execution mode of the coprocessor |
US6779053B2 (en) * | 2001-12-21 | 2004-08-17 | Intel Corporation | Sequential data transfer detection |
US7355601B2 (en) | 2003-06-30 | 2008-04-08 | International Business Machines Corporation | System and method for transfer of data between processors using a locked set, head and tail pointers |
US7143246B2 (en) | 2004-01-16 | 2006-11-28 | International Business Machines Corporation | Method for supporting improved burst transfers on a coherent bus |
EP1782218B1 (en) * | 2004-08-17 | 2008-07-09 | Koninklijke Philips Electronics N.V. | Processing apparatus with burst read and write operations |
US7594081B2 (en) | 2004-09-10 | 2009-09-22 | Cavium Networks, Inc. | Direct access to low-latency memory |
US7401184B2 (en) | 2004-11-19 | 2008-07-15 | Intel Corporation | Matching memory transactions to cache line boundaries |
US7330925B2 (en) | 2005-02-24 | 2008-02-12 | International Business Machines Corporation | Transaction flow control mechanism for a bus bridge |
EP1750202A1 (en) * | 2005-07-11 | 2007-02-07 | Nvidia Corporation | Combining packets for a packetized bus |
US20070204076A1 (en) | 2006-02-28 | 2007-08-30 | Agere Systems Inc. | Method and apparatus for burst transfer |
US7814279B2 (en) | 2006-03-23 | 2010-10-12 | International Business Machines Corporation | Low-cost cache coherency for accelerators |
-
2010
- 2010-03-30 CN CN2010101369744A patent/CN102207919A/zh active Pending
-
2011
- 2011-03-29 US US13/074,121 patent/US8639840B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0700001A1 (en) * | 1994-08-31 | 1996-03-06 | Motorola, Inc. | Integrated circuit microprocessor with programmable memory access interface types and related method |
WO2006039039A2 (en) * | 2004-09-30 | 2006-04-13 | Freescale Semiconductor, Inc. | Data processing system with bus access retraction |
CN101228733A (zh) * | 2005-07-22 | 2008-07-23 | Nxp股份有限公司 | 异步数据缓冲器 |
CN101552733A (zh) * | 2009-05-15 | 2009-10-07 | 深圳华为通信技术有限公司 | 一种基于spi实现数据传输的方法和系统 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104081351A (zh) * | 2012-01-25 | 2014-10-01 | 国际商业机器公司 | 用于混合系统的分布式功能执行 |
CN104081351B (zh) * | 2012-01-25 | 2017-06-06 | 国际商业机器公司 | 用于混合系统的分布式功能执行的方法、系统及介质 |
CN111124951A (zh) * | 2018-10-31 | 2020-05-08 | 伊姆西Ip控股有限责任公司 | 管理数据访问的方法、设备和计算机程序产品 |
US11593272B2 (en) | 2018-10-31 | 2023-02-28 | EMC IP Holding Company LLC | Method, apparatus and computer program product for managing data access |
CN111124951B (zh) * | 2018-10-31 | 2023-09-15 | 伊姆西Ip控股有限责任公司 | 管理数据访问的方法、设备和计算机程序产品 |
CN111694769A (zh) * | 2019-03-15 | 2020-09-22 | 上海寒武纪信息科技有限公司 | 数据读取方法及装置 |
CN111538677A (zh) * | 2020-04-26 | 2020-08-14 | 西安万像电子科技有限公司 | 数据处理方法及装置 |
CN111538677B (zh) * | 2020-04-26 | 2023-09-05 | 西安万像电子科技有限公司 | 数据处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US20110246667A1 (en) | 2011-10-06 |
US8639840B2 (en) | 2014-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102207919A (zh) | 加速数据传输的处理单元、芯片、计算设备和方法 | |
CN109542830B (zh) | 一种数据处理系统及数据处理方法 | |
JP7404390B2 (ja) | コヒーレントアクセラレーションのためのドメイン支援プロセッサピア | |
TW201805858A (zh) | 一種用於執行神經網絡運算的裝置及方法 | |
CN104049712B (zh) | 用于计算机系统的功率管理方法和系统 | |
JP5826471B2 (ja) | 自律的サブシステムアーキテクチャー | |
CN102822801A (zh) | 响应于服务水平协议而分配计算系统功率水平 | |
CN105493053A (zh) | 多核处理器中的高速缓存划分 | |
CN103649923B (zh) | 一种numa系统内存镜像配置方法、解除方法、系统和主节点 | |
JP2011060279A (ja) | 自律的メモリアーキテクチャー | |
CN113407352A (zh) | 用于处理任务的方法、处理器、设备和可读存储介质 | |
Talbi et al. | Metaheuristics on gpus | |
CN109314103B (zh) | 用于远程现场可编程门阵列处理的方法和装置 | |
DE102019119956A1 (de) | Architektur und verfahren zur datenparallelen einzelprogramm- mehrfachdaten(spmd)-ausführung | |
CN112130901A (zh) | 基于risc-v的协处理器、数据处理方法及存储介质 | |
WO2018058427A1 (zh) | 神经网络运算装置及方法 | |
CN102955816A (zh) | 利用串匹配进行数据同步的方法和系统 | |
CN109791510A (zh) | 在异构计算中管理数据流 | |
CN104040506A (zh) | 均衡使用共享的存储器系统的多个请求器的带宽 | |
CN111209243A (zh) | 数据处理装置、方法及相关产品 | |
EP2767904B1 (en) | Method, processing modules and system for executing an executable code | |
CN112527729A (zh) | 一种紧耦合异构多核处理器架构及其处理方法 | |
CN111209231B (zh) | 数据处理方法、装置及相关产品 | |
CN113806250B (zh) | 通用处理器核心与向量部件的协同方法、接口及处理器 | |
CN111210012B (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 | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20111005 |