CN114661634A - 数据缓存装置、方法、集成电路芯片、计算装置和板卡 - Google Patents

数据缓存装置、方法、集成电路芯片、计算装置和板卡 Download PDF

Info

Publication number
CN114661634A
CN114661634A CN202011535059.2A CN202011535059A CN114661634A CN 114661634 A CN114661634 A CN 114661634A CN 202011535059 A CN202011535059 A CN 202011535059A CN 114661634 A CN114661634 A CN 114661634A
Authority
CN
China
Prior art keywords
data
read
pointer
write
control signal
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
Application number
CN202011535059.2A
Other languages
English (en)
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.)
Cambricon Technologies Corp Ltd
Original Assignee
Cambricon Technologies Corp 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 Cambricon Technologies Corp Ltd filed Critical Cambricon Technologies Corp Ltd
Priority to CN202011535059.2A priority Critical patent/CN114661634A/zh
Publication of CN114661634A publication Critical patent/CN114661634A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes

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)

Abstract

本公开涉及一种数据缓存装置、方法、集成电路芯片、计算装置和板卡,其中计算装置可以包括在组合处理装置中,该组合处理装置还可以包括通用互联接口和其他处理装置。所述计算装置与其他处理装置进行交互,共同完成用户指定的计算操作。组合处理装置还可以包括存储装置,该存储装置分别与计算装置和其他处理装置连接,用于计算装置和其他处理装置的数据。本公开的方案可以广泛应用于数据缓存中。

Description

数据缓存装置、方法、集成电路芯片、计算装置和板卡
技术领域
本公开一般地涉及数据存储领域。更具体地,本公开涉及数据缓存装置、方法、集成电路芯片、计算装置和板卡。
背景技术
目前,在系统设计中,为了增加数据传输率、处理大量数据流、匹配具有不同传输率的系统,广泛使用FIFO(First Input First Output,先入先出)缓存器,从而提高了系统性能。FIFO数据缓存器是一种先入先出的数据缓存器,数据会按照写入缓存器的顺序从缓存器读出,即先写入的数据先从缓存器读出,后写入的数据后从缓存器读出。
然而,随着在各种操作中对缓存器要求越来越高,现有FIFO缓存器的存取方式无法满足实际需求。因此,如何获得一种能够具有灵活存取方式的缓存器成为现有技术中需要解决的问题。
发明内容
为了至少部分地解决背景技术中提到的技术问题,本公开的方案提供了一种数据缓存装置及其方法、包括该数据缓存装置的集成电路芯片、计算装置和板卡。
在一个方面中,本公开提供一种数据缓存装置,其中,所述数据缓存装置包括:数据缓存单元,其包括用于存储数据的多个存储块;所述数据缓存单元在由至少一个写指针组各自指向的存储块中存储数据;所述数据缓存单元从由多个读指针组各自指向的待读空间输出数据;其中,所述至少一个写指针组各自包括至少两个维度的写指针,所述多个读指针组各自包括至少两个维度的读指针。
在另一方面中,本公开提供一种在数据缓存装置中读取和写入数据的数据缓存方法,所述数据缓存装置包括数据缓存单元,所述数据缓存单元包括用于存储数据的多个存储块,其中,所述数据缓存方法包括:在由各自包括至少两个维度的写指针的至少一个写指针组各自指向的存储块中存储数据;从由各自包括至少两个维度的读指针的多个读指针组各自指向的待读空间输出数据。
在又一方面中,本公开提供一种集成电路芯片,其包括所述数据缓存装置。在另一个实施例中,本公开的数据缓存装置可以构成一个独立的集成电路芯片。
在又一方面中,本公开提供一种计算装置,其包括上述数据缓存装置或上述集成电路芯片。
在又一方面中,本公开提供一种板卡,其包括上述计算装置。
利用本公开的数据缓存装置、相应的缓存方法、集成电路芯片、计算装置和板卡,可以通过采用多个读指针和写指针来实现任意写入和读取数据。由此,本公开的数据缓存装置适用灵活,可以广泛应用于各种数据存储中。
附图说明
通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,并且相同或对应的标号表示相同或对应的部分其中:
图1是示出根据本公开的一个实施例的数据缓存装置的示意性框图;
图2是示出根据本公开的实施例的数据缓存单元的示意图;
图3是示出根据本公开的另一个实施例的数据缓存装置的示意性框图;
图4是示出根据本公开的实施例的指令缓存单元的示意图;
图5是示出根据本公开的一个实施例的数据缓存方法的流程图;
图6是示出根据本公开的另一个实施例的数据缓存方法的流程图;
图7是示出根据本公开实施例的一种组合处理装置的结构图;以及
图8是示出根据本公开实施例的一种板卡的结构示意图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
本公开的技术方案在整体上提供一种数据缓存装置、方法、集成电路芯片、计算装置和板卡。不同于现有技术的数据缓存装置,本公开提供了一种可以多读多写的数据缓存装置,从而提高了存取速度。特别地,本公开可以在数据缓存装置中任意存储和读取数据,存储和读取可以独立进行。由此,本公开的数据缓存装置具有存取速度快且灵活性高的特点。
图1是示出根据本公开的一个实施例的数据缓存装置100的示意性框图。如图1中所示,所述数据缓存装置100可以包括数据缓存单元101。所述数据缓存单元101包括用于存储数据的多个存储块。所述数据缓存单元101在由至少一个写指针组各自指向的存储块中存储数据。所述数据缓存单元101从由多个读指针组各自指向的待读空间输出数据。其中,所述至少一个写指针组各自包括至少两个维度的写指针,所述多个读指针组各自包括至少两个维度的读指针。
在一个实施例中,数据缓存单元101可以具有多个存储行,每个存储行包括多个存储块,数据缓存单元101中的所有存储块的存储空间相同。从而这些存储块可以构成存储阵列。因此,数据缓存单元101可以构成二维数据缓存单元。
另外,对于该数据缓存单元101,数据的写入是针对存储块进行的,即可以对任意的存储块写入数据,因此存储块作为基本写入单位。而数据的读取是针对待读空间(存储行中的任意大小存储空间)进行的,即可以对任意存储行中的任意位宽的数据进行读取。也就是说该待读空间可以位于一个存储块中、可以就是一个存储块或者可以大于一个存储块的存储空间,因此1比特的存储位作为基本读取单位。
由此,一个或多个写指针组可以将数据写入它们各自指向的存储块中,多个读指针组可以从它们各自指向的待读空间中读取数据。其中,每个写指针组各自包括两个维度的写指针,每个读指针组各自包括两个维度的读指针。应当注意,写指针组和读指针组可以各自独立操作。
在另一个实施例中,数据缓存单元101可以包括多个存储片,并且每个存储片可以包括多个存储行,而每个存储行又可以包括多个存储块。此时的数据缓存单元是三维存储单元。由此,每个写指针组可以各自包括三个维度的写指针,每个读指针组可以各自包括三个维度的读指针。
以此类推,当数据缓存单元的维度越高,即存储层次越多时,指针组的维度越大。
进一步地,当至少一个写指针组各自包括两个维度的写指针并且多个读指针组各自包括两个维度的读指针时,至少一个写指针组可以各自包括行写指针和列写指针,行写指针和所述列写指针可以共同确定指向的存储块;多个读指针组可以各自包括行读指针和列读指针,行读指针和列读指针可以共同确定指向的待读空间的读取起始位置,与所述读指针组对应的读控制信号指示所述待读空间的位宽。
具体地,可以参照图2,图2是示出根据本公开的实施例的数据缓存单元101的示意图。在图2中,示例性地示出了该数据缓存单元101为N×4的存储矩阵,其中N为存储行的数量。此外,图2示出两组写指针,一组写指针包括行写指针Wr0和列写指针Wc0,另一组写指针包括行写指针Wr1和列写指针Wc1。其中,行写指针Wr0,Wr1指向待写入数据的存储块所在的行,列写指针Wc0,Wc1指向待写入数据的存储块所在的列,因此每组写指针中的行写指针Wr0,Wr1和列写指针Wc0,Wc1可以共同确定指向的具体存储块。
并且,该数据缓存单元101还可以看作N×M的存储矩阵,其中N为存储行的数量,M为每个存储行中的存储位的数量(位宽)。图2还示出两组读指针,一组读指针包括行读指针Rr0和列读指针Rc0,另一组读指针包括行读指针Rr1和列读指针Rc1。其中,每组读指针中的行读指针Rr0,Rr1指向待读取数据所在的行,每组读指针中的列读指针Rc0,Rc1指向待读取数据的起始存储位所在的列。因此,每组读指针中的行读指针Rr0,Rr1和列读指针Rc0,Rc1可以共同确定指向的待读空间的读取起始位置。并且与读指针组对应的读控制信号可以指示待读空间的位宽,由此可以确定待读取数据的位宽。
应当注意,图2中仅示例性地示出两个写指针组和两个读指针组,本公开不限于此。
为了更灵活地读写数据,多个写指针组可以各自指向不同的存储块;所述多个读指针组可以各自指向一个待读空间。
在该实施例中,当上述至少一个写指针组为多个写指针组时,每个写指针组指向的存储块都不相同,以便同时向不同的存储块写入数据,并且避免发生同一存储块在一个指令下反复写入不同数据而造成丢失数据的问题。而多个读指针组可以各自指向一个待读空间,即允许每个读指针组指向的待读空间都不相同,或者至少两个读指针组指向的待读空间相同,以便可以使至少两个读指针组对同一个待读空间中的数据进行读取,从而实现数据共享。在图2中所示的数据缓存单元101中,示出了两个写指针组各自指向不同的存储块,并且两个读指针组各自指向不同的待读空间。当然,两个读指针组也可以指向同一待读空间。
在对数据缓存单元中的存储块写入数据时,应注意,当写指针组指向的存储块为空时,数据缓存单元101可以在存储块中存储数据;当写指针组指向的存储块存在数据时,数据缓存单元101可以等待存储块的数据被清空。
在该实施例中,在对数据缓存单元101写入数据时,应避免覆盖未使用或仍需使用的数据。在数据缓存单元101中,如果存储块中的数据已被使用完毕,会被清除。因此例如参照图2,如果写指针组指向的存储块为空,则可以向该存储块写入数据;如果该存储块中存在数据,则证明数据未使用完或还未被清除,因此需要等待该存储块的数据被清除后,将数据写入该存储块。
在从数据缓存单元中读取数据时,应注意,当读指针指向的待读空间为空或未写完数据时,数据缓存单元101等待待读空间被写完数据;当读指针组指向的待读空间存在已写完数据时,数据缓存单元101根据读指针组对应的读控制信号指示的读取次数输出待读空间的数据。
在该实施例中,在读取数据缓存单元中的数据时,应确保待读空间中的数据完整存在。例如参照图2,如果读指针组指向的待读空间不存在数据或者正在写入数据时,则需要等待数据完全写入该待读空间中后,再对该待读空间中的数据进行读取。如果待读空间中存在完整数据时,则可以读取该数据。应当注意,同一个读指针组对同一待读空间中的数据,可以根据读控制信号读取多次,以实现对同一数据的复用。应注意,当存储块中的数据在随后的读取中不再被待读空间涉及,即不再被使用时,则清除该存储块中的数据。
进一步地,数据缓存单元101可以包括计数模块。数据缓存单元101可以通过所述计数模块的计数来判断所述读取次数是否完成。
在该实施例中,为了判断读取次数是否完成,数据缓存单元101可以包括计数模块。该计数模块可以对读控制信号指示的读取次数进行计数。当计数完成后,该读取次数完成。
另外,当至少两个读指针组指向同一待读空间时,计数模块对至少两个读指针组各自对应的读控制信号指示的读取次数分别进行计数。
在该实施例中,例如参照图2,在读指针组需要在同一待读空间读取数据时,计数模块可以对每个读指针组所对应的读控制信号指示的读取次数进行计数。
为了在数据缓存单元中的任意存储块写入数据并且为了在数据缓存单元中的任意待读空间读取数据,所述写指针组根据对应的写控制信号指示的行步长和列步长来确定指向的存储块;所述读指针组根据对应的读控制信号指示的行步长和列步长来确定指向的所述读取起始位置。
在该实施例中,在数据缓存单元初始工作时,可以通过初始化将写指针组和读指针组都指向数据缓存单元的起始位置(例如第一行第一列的第一个存储块中的第一存储位所在位置)。随后,写指针组和读指针组可以根据对应写控制信号和读控制信号指示的步长来确定指向的存储块和待读空间,即写指针组和读指针组可以根据指向的存储块和待读空间以及当前写控制信号和读控制信号指示的步长来确定当前需要指向的存储块和待读空间。
针对行写指针的行步长和列写指针的列步长的范围可以根据存储块构成的存储矩阵的行数和列数来设定,以确保行写指针和列写指针可以根据写控制信号指向任一个行和列,从而可以共同确定任一个存储块。例如行步长的范围可以设为0至n-1,列步长的范围可以设为0至m-1,n代表存储块构成的存储矩阵的行数,m代表存储块构成的存储矩阵的列数。
例如数据缓存单元中的存储行的数量为100,行写指针原来指向的存储行为第5行,如果行步长为8,则将要指向的存储行为第13行。此外,当行步长为0时,表示行写指针指向的存储行不变,即仍然指向原存储行。当行步长为n-1时,表示行写指针将要指向的存储行是原来指向的存储行的上一相邻存储行。例如数据缓存单元中的存储行的数量为100,行写指针原来指向的存储行为第5行,如果行步长为99,则将要指向的存储行为第4行。由此可知,针对行步长,数据缓存单元的存储行的计数以第一存储行接着最后一个存储行循环进行,即当原来指向的存储行的序号加上行步长大于最后一个存储行的序号时,则以第一存储行接着最后一个存储行继续计数。
例如数据缓存单元中的存储列的数量为100,列写指针原来指向的存储列为第5列,如果列步长为8,则将要指向的存储列为第13列。此外,当列步长为0时,表示列写指针指向的存储列不变,即仍然指向原存储列。当列步长为m-1时,表示列写指针将要指向的存储列是原来指向的存储列的上一相邻存储列。例如数据缓存单元中的存储列的数量为100,列写指针原来指向的存储列为第5列,如果列步长为99,则将要指向的存储列为第4列。由此可知,针对列步长,数据缓存单元的存储列的计数以第一存储列接着最后一个存储列循环进行,即当原来指向的存储列的序号加上列步长大于最后一个存储列的序号时,则以第一存储列接着最后一个存储列继续计数。
针对行读指针的行步长和列读指针的列步长的范围可以根据存储位构成的存储矩阵的行数和列数来设定,以确保行读指针和列读指针可以根据读控制信号指向任一个行和列,从而可以共同确定任一个待读空间。例如行步长的范围可以设为0至x-1,列步长的范围可以设为0至y-1,x代表存储位构成的存储矩阵的行数,y代表存储位构成的存储矩阵的列数。具体描述与以上针对行写指针和列写指针的描述类似,在此不再赘述。
由以上所述内容可知,写指针组和读指针组的数量可以为多个,然而数据缓存单元101可以包括至少一个数据输入端口和至少一个数据输出端口。
在一个实施例中,数据缓存单元101可以包括多个数据输入端口和多个数据输出端口,数据缓存单元101可以根据写控制信号通过多个数据输入端口并行存储数据;数据缓存单元101可以根据读控制信号通过多个数据输出端口并行输出数据。
在该实施例中,数据缓存单元101可以具有多个数据输入端口和多个数据输出端口。因此,数据输入端口的数量可以与写指针组的数量相对应,数据输出端口的数量可以与读指针组的数量相对应。由此,写指针组可以通过数据输入端口并行写入数据,读指针可以通过数据输出端口并行读出数据。
在另一个实施例中,数据缓存单元101可以包括一个数据输入端口和一个数据输出端口,数据缓存单元101可以根据写控制信号通过一个数据输入端口串行存储数据;数据缓存单元101可以根据读控制信号通过一个数据输出端口串行输出数据。
在该实施例中,数据缓存单元101可以只有一个数据输入端口和一个数据输出端口。因此,多个写指针组共享一个数据输入端口,多个读指针组共享一个数据输出端口。由此,数据可以串行通过数据输入端口并由多个写指针组写入其各自指向的存储块中,并且数据可以由多个读指针组从其各自指向的待读空间中读出并串行通过数据输出端口输出。
当然,数据输入端口和数据输出端口的数量也可以不与写指针组和读指针组的数量相对应并且不是一个。在此情况下,当数据输入端口的数量少于写指针组的数量时,可以采取部分写指针组共用一个数据输入端口,部分写指针组各自单独使用一个数据输入端口;当数据输出端口的数量少于读指针组的数量时,可以采取部分读指针组共用一个数据输出端口,部分读指针组各自单独使用一个数据输出端口。由此,可利用串行和并行相结合的方式通过数据输入端口和数据输出端口存储和输出数据。
参照图3,图3是示出根据本公开的另一个实施例的数据缓存装置200的示意性框图。图3中所示的数据缓存装置200与图1中所示的数据缓存装置100的区别仅在于,所述数据缓存装置200还可以包括指令缓存单元201。所述指令缓存单元201可以用于接收外部指令,并且根据所述外部指令解析出至少一个写控制信号和多个读控制信号,并且每个写控制信号包括一个写指针组,每个读控制信号包括一个读指针组。
在该实施例中,数据缓存装置200还可以包括用于缓存外部指令的指令缓存单元201。尤其,该指令缓存单元201中的外部指令可以控制对数据缓存单元101的数据读写。具体地,该指令缓存单元201可以接收外部指令,并将外部指令解析,从而获得用于数据缓存单元101的至少一个写控制信号和多个读控制信号。其中,每个写控制信号包括一个写指针组,每个读控制信号包括一个读指针组。此外,每个写控制信号还包括上述步长,每个读控制信号还包括上述步长和读取次数。
进一步地,所述外部指令包括写指令和读指令,所述指令缓存单元201包括至少一个写指令缓存单元和多个读指令缓存单元;每个写指令缓存单元用于接收并存储所述写指令,并根据每个写指令解析出一个写控制信号;每个读指令缓存单元用于接收并存储所述读指令,并根据每个读指令解析出一个读控制信号。
具体地,可以参照图4,图4是示出根据本公开的实施例的指令缓存单元201的示意图。如图4所示,外部指令可以分为写指令w_inst和读指令r_inst,指令缓存单元201可以包括多个写指令缓存单元和多个读指令缓存单元。其中,多个写指令缓存单元和多个读指令缓存单元都可以是FIFO(先进先出)缓存器。写指令缓存单元可以接收并存储写指令w_inst,读指令缓存单元可以接收并存储读指令r_inst。写指令缓存单元的数量与写指针组的数量相对应,读指令缓存单元的数量与读指针组的数量相对应。每个写指令缓存单元可以各自按照先进先出的原则从位于顶端的写指令解析出写控制信号w_ctrl_0-w_ctrl_n,每个读指令缓存单元可以各自按照先进先出的原则从位于顶端的读指令解析出读控制信号r_ctrl_0-r_ctrl_n。其中,写指令和读指令包括等待指令,当需要读写的存储行的数量小于写指令缓存单元和读指令缓存单元时,使得部分写指令缓存单元和/或部分读指令缓存单元解析出的控制信号为等待信号,不进行任何操作。
本公开还提供一种在数据缓存装置中读取和写入数据的数据缓存方法。参照图5,图5是示出根据本公开的一个实施例的数据缓存方法的流程图。如图5中所示,可以理解的是,此处数据缓存方法所使用的数据缓存装置即前面结合图1-图4详细描述的数据缓存装置,因此在前关于该数据缓存装置及其内部组成、功能和操作的描述也同样适用于此处的描述。
本公开的数据缓存方法应用于上述数据缓存装置。该数据缓存装置包括数据缓存单元,该数据缓存单元包括用于存储数据的多个存储块。因此该数据缓存方法包括以下步骤S101-S102。
在步骤S101中,在由各自包括至少两个维度的写指针的至少一个写指针组各自指向的存储块中存储数据。
在步骤S102中,从由各自包括至少两个维度的读指针的多个读指针组各自指向的待读空间输出数据。
根据本公开的实施例,所述至少一个写指针组各自包括行写指针和列写指针,所述行写指针和所述列写指针共同确定指向的存储块;所述多个读指针组各自包括行读指针和列读指针,所述行读指针和所述列读指针共同确定指向的所述待读空间的读取起始位置,与所述读指针组对应的读控制信号指示所述待读空间的位宽。
根据本公开的实施例,多个写指针组各自指向不同的存储块;所述多个读指针组各自指向一个待读空间。
根据本公开的实施例,当所述写指针组指向的存储块为空时,所述数据缓存单元在所述存储块中存储数据;当所述写指针组指向的所述存储块存在数据时,所述数据缓存单元等待所述存储块的数据被清空。
根据本公开的实施例,当所述读指针组指向的所述待读空间为空或未写完数据时,所述数据缓存单元等待所述待读空间被写完数据;当所述读指针组指向的所述待读空间存在已写完数据时,所述数据缓存单元根据所述读指针组对应的读控制信号指示的读取次数输出所述待读空间的数据。
根据本公开的实施例,可以利用数据缓存单元的计数模块对数据缓存单元计数,来判断所述读取次数是否完成。
根据本公开的实施例,当至少两个所述读指针组指向同一待读空间时,所述计数模块对所述至少两个读指针组各自对应的读控制信号指示的读取次数分别进行计数。
根据本公开的实施例,所述写指针组根据对应的写控制信号指示的行步长和列步长来确定指向的存储块;所述读指针组根据对应的读控制信号指示的行步长和列步长来确定指向的所述读取起始位置。
根据本公开的实施例,根据写控制信号通过数据缓存单元的多个数据输入端口并行存储数据;根据读控制信号通过数据缓存单元的多个数据输出端口并行输出数据。
根据本公开的实施例,根据写控制信号通过数据缓存单元的一个数据输入端口串行存储数据;根据读控制信号通过数据缓存单元的一个数据输出端口串行输出数据。
参照图6,图6是示出根据本公开的另一个实施例的数据缓存方法的流程图。如图6中所示,所述数据缓存方法在步骤S101之前还可以包括步骤S201。在该步骤S201中,利用数据缓存装置的指令缓存单元接收外部指令,并且根据外部指令解析出各自包括一个写指针组的至少一个写控制信号和各自包括一个读指针组的多个读控制信号。
根据本公开的实施例,所述外部指令包括写指令和读指令,所述指令缓存单元包括至少一个写指令缓存单元和多个读指令缓存单元;每个写指令缓存单元用于接收并存储所述写指令,并根据每个写指令解析出一个写控制信号;每个读指令缓存单元用于接收并存储所述读指令,并根据每个读指令解析出一个读控制信号。
在本公开的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。上述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
图7是示出根据本公开实施例的一种组合处理装置700的结构图。如图所示,该组合处理装置700包括计算装置702,该计算装置可以包括如前结合附图描述的本公开的数据缓存装置。另外,该组合处理装置还包括通用互联接口704和其他处理装置706。根据本公开的计算装置与其他处理装置进行交互,共同完成用户指定的操作。
根据本公开的方案,该其他处理装置可以包括中央处理器(“CPU”)、图形处理器(“GPU”)、神经网络处理器等通用和/或专用处理器中的一种或多种类型的处理器,其数目不做限制而是依实际需要来确定。在一个或多个实施例中,该其他处理装置可以作为本公开的计算装置(其可以具体化为机器学习运算装置)与外部数据和控制的接口,执行包括但不限于数据搬运,完成对本机器学习运算装置的开启、停止等的基本控制;其他处理装置也可以和机器学习运算装置协作共同完成运算任务。
根据本公开的方案,该通用互联接口可以用于在计算装置与其他处理装置间传输数据和控制指令。例如,该计算装置可以经由所述通用互联接口从其他处理装置中获取所需的输入数据,写入该计算装置片上的存储装置。进一步,该计算装置可以经由所述通用互联接口从其他处理装置中获取控制指令,写入计算装置片上的控制缓存。替代地或可选地,通用互联接口也可以读取计算装置的存储模块中的数据并传输给其他处理装置。
可选地,该组合处理装置还可以包括存储装置708,其可以分别与所述计算装置和所述其他处理装置连接。在一个或多个实施例中,存储装置可以用于保存所述计算装置和所述其他处理装置的数据,尤其适用于所需要运算的数据在本计算装置或其他处理装置的内部存储中无法全部保存的数据。
根据应用场景的不同,本公开的组合处理装置可以作为手机、机器人、无人机、视频采集、视频监控设备等设备的SOC片上系统,从而有效地降低控制部分的核心面积,提高处理速度并降低整体的功耗。在此情况时,该组合处理装置的通用互联接口与设备的某些部件相连接。此处的某些部件可以例如是摄像头,显示器,鼠标,键盘,网卡或wifi接口。
在一些实施例里,本公开还公开了一种芯片或集成电路芯片,其包括了上述计算装置、组合处理装置以及本公开的数据缓存装置。在另一些实施例里,本公开还公开了一种芯片封装结构,其包括了上述芯片。
在一些实施例里,本公开还公开了一种板卡,其包括了上述芯片封装结构。参阅图8,其提供了前述的示例性板卡,上述板卡除了包括上述芯片802以外,还可以包括其他的配套部件,该配套部件可以包括但不限于:存储器件804、接口装置806和控制器件808。
所述存储器件与所述芯片封装结构内的芯片通过总线连接,用于存储数据。所述存储器件可以包括多组存储单元810。每一组所述存储单元与所述芯片通过总线连接。可以理解,每一组所述存储单元可以是DDR SDRAM(“Double Data Rate SDRAM”,双倍速率同步动态随机存储器)。
DDR不需要提高时钟频率就能加倍提高SDRAM的速度。DDR允许在时钟脉冲的上升沿和下降沿读出数据。DDR的速度是标准SDRAM的两倍。在一个实施例中,所述存储器件可以包括4组所述存储单元。每一组所述存储单元可以包括多个DDR4颗粒(芯片)。在一个实施例中,所述芯片内部可以包括4个72位DDR4控制器,上述72位DDR4控制器中64bit用于传输数据,8bit用于ECC校验。
在一个实施例中,每一组所述存储单元可以包括多个并联设置的双倍速率同步动态随机存储器。DDR在一个时钟周期内可以传输两次数据。在所述芯片中设置控制DDR的控制器,用于对每个所述存储单元的数据传输与数据存储的控制。
所述接口装置与所述芯片封装结构内的芯片电连接。所述接口装置用于实现所述芯片与外部设备812(例如服务器或计算机)之间的数据传输。例如在一个实施例中,所述接口装置可以为标准PCIE接口。例如,待处理的数据由服务器通过标准PCIE接口传递至所述芯片,实现数据转移。在另一个实施例中,所述接口装置还可以是其他的接口,本公开并不限制上述其他的接口的具体表现形式,所述接口单元能够实现转接功能即可。另外,所述芯片的计算结果仍由所述接口装置传送回外部设备(例如服务器)。
所述控制器件与所述芯片电连接,以便对所述芯片的状态进行监控。具体地,所述芯片与所述控制器件可以通过SPI接口电连接。所述控制器件可以包括单片机(“MCU”,Micro Controller Unit)。所述芯片可以包括多个处理芯片、多个处理核或多个处理电路,并且可以带动多个负载。由此,所述芯片可以处于多负载和轻负载等不同的工作状态。通过所述控制装置可以实现对所述芯片中多个处理芯片、多个处理和/或多个处理电路的工作状态的调控。
在一些实施例里,本公开还公开了一种电子设备或装置,其包括了上述板卡。根据不同的应用场景,电子设备或装置可以包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本公开并不受所描述的动作顺序的限制,因为依据本公开,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本公开所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本公开所提供的几个实施例中,应该理解到,所公开的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述电路的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个电路或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或电路的间接耦合或通信连接,可以是电性、光学、声学、磁性或其它的形式。
所述作为分离部件说明的电路可以是或者也可以不是物理上分开的,作为电路显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能电路可以集成在一个处理单元中,也可以是各个电路单独物理存在,也可以两个或两个以上电路集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
所述集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,当本公开的技术方案可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(“ROM”,Read-OnlyMemory)、随机存取存储器(“RAM”,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
依据以下条款可更好地理解前述内容:
条款A1,一种数据缓存装置,其中,所述数据缓存装置包括:数据缓存单元,其包括用于存储数据的多个存储块;所述数据缓存单元在由至少一个写指针组各自指向的存储块中存储数据;所述数据缓存单元从由多个读指针组各自指向的待读空间输出数据;其中,所述至少一个写指针组各自包括至少两个维度的写指针,所述多个读指针组各自包括至少两个维度的读指针。
条款A2,根据条款A1所述的数据缓存装置,其中,所述至少一个写指针组各自包括行写指针和列写指针,所述行写指针和所述列写指针共同确定指向的存储块;所述多个读指针组各自包括行读指针和列读指针,所述行读指针和所述列读指针共同确定指向的所述待读空间的读取起始位置,与所述读指针组对应的读控制信号指示所述待读空间的位宽。
条款A3,根据条款A2所述的数据缓存装置,其中,多个写指针组各自指向不同的存储块;所述多个读指针组各自指向一个待读空间。
条款A4,根据条款A3所述的数据缓存装置,其中,当所述写指针组指向的存储块为空时,所述数据缓存单元在所述存储块中存储数据;当所述写指针组指向的所述存储块存在数据时,所述数据缓存单元等待所述存储块的数据被清空。
条款A5,根据条款A3所述的数据缓存装置,其中,当所述读指针组指向的所述待读空间为空或未写完数据时,所述数据缓存单元等待所述待读空间被写完数据;当所述读指针组指向的所述待读空间存在已写完数据时,所述数据缓存单元根据所述读指针组对应的读控制信号指示的读取次数输出所述待读空间的数据。
条款A6,根据条款A5所述的数据缓存装置,其中,所述数据缓存单元包括:计数模块,所述数据缓存单元通过所述计数模块的计数来判断所述读取次数是否完成。
条款A7,根据条款A6所述的数据缓存装置,其中,当至少两个所述读指针组指向同一待读空间时,所述计数模块对所述至少两个读指针组各自对应的读控制信号指示的读取次数分别进行计数。
条款A8,根据条款A3所述的数据缓存装置,其中,所述写指针组根据对应的写控制信号指示的行步长和列步长来确定指向的存储块;所述读指针组根据对应的读控制信号指示的行步长和列步长来确定指向的所述读取起始位置。
条款A9,根据条款A3所述的数据缓存装置,其中,所述数据缓存装置还包括:指令缓存单元,其用于接收外部指令,并且根据所述外部指令解析出至少一个写控制信号和多个读控制信号,并且每个写控制信号包括一个写指针组,每个读控制信号包括一个读指针组。
条款A10,根据条款A9所述的数据缓存装置,其中,所述外部指令包括写指令和读指令,所述指令缓存单元包括至少一个写指令缓存单元和多个读指令缓存单元;每个写指令缓存单元用于接收并存储所述写指令,并根据每个写指令解析出一个写控制信号;每个读指令缓存单元用于接收并存储所述读指令,并根据每个读指令解析出一个读控制信号。
条款A11,根据条款A3所述的数据缓存装置,其中,所述数据缓存单元包括至少一个数据输入端口和至少一个数据输出端口。
条款A12,根据条款A11所述的数据缓存装置,其中,所述数据缓存单元包括多个数据输入端口和多个数据输出端口,所述数据缓存单元根据所述写控制信号通过所述多个数据输入端口并行存储数据;所述数据缓存单元根据所述读控制信号通过所述多个数据输出端口并行输出数据。
条款A13,根据条款A12所述的数据缓存装置,其中,所述数据缓存单元包括一个数据输入端口和一个数据输出端口,所述数据缓存单元根据所述写控制信号通过所述一个数据输入端口串行存储数据;所述数据缓存单元根据所述读控制信号通过所述一个数据输出端口串行存储数据
条款A14,一种在数据缓存装置中读取和写入数据的数据缓存方法,所述数据缓存装置包括数据缓存单元,所述数据缓存单元包括用于存储数据的多个存储块,其中,所述数据缓存方法包括:在由各自包括至少两个维度的写指针的至少一个写指针组各自指向的存储块中存储数据;从由各自包括至少两个维度的读指针的多个读指针组各自指向的待读空间输出数据。
条款A15,一种集成电路芯片,包括根据条款A1-A13中任一项所述的数据缓存装置。
条款A16,一种计算装置,包括根据条款A1-A13中任一项所述的数据缓存装置或根据条款A15所述的集成电路芯片。
条款A17,一种板卡,包括根据条款A16所述的计算装置。
以上对本公开实施例进行了详细介绍,本文中应用了具体个例对本公开的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本公开的方法及其核心思想;同时,对于本领域的一般技术人员,依据本公开的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本公开的限制。
应当理解,本公开的权利要求、说明书及附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。本公开的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本公开说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本公开。如在本公开说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本公开说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
以上对本公开实施例进行了详细介绍,本文中应用了具体个例对本公开的原理及实施方式进行了阐述,以上实施例的说明仅用于帮助理解本公开的方法及其核心思想。同时,本领域技术人员依据本公开的思想,基于本公开的具体实施方式及应用范围上做出的改变或变形之处,都属于本公开保护的范围。综上所述,本说明书内容不应理解为对本公开的限制。

Claims (17)

1.一种数据缓存装置,其中,所述数据缓存装置包括:
数据缓存单元,其包括用于存储数据的多个存储块;
所述数据缓存单元在由至少一个写指针组各自指向的存储块中存储数据;
所述数据缓存单元从由多个读指针组各自指向的待读空间输出数据;
其中,所述至少一个写指针组各自包括至少两个维度的写指针,所述多个读指针组各自包括至少两个维度的读指针。
2.根据权利要求1所述的数据缓存装置,其中,
所述至少一个写指针组各自包括行写指针和列写指针,所述行写指针和所述列写指针共同确定指向的存储块;
所述多个读指针组各自包括行读指针和列读指针,所述行读指针和所述列读指针共同确定指向的所述待读空间的读取起始位置,与所述读指针组对应的读控制信号指示所述待读空间的位宽。
3.根据权利要求2所述的数据缓存装置,其中,
多个写指针组各自指向不同的存储块;
所述多个读指针组各自指向一个待读空间。
4.根据权利要求3所述的数据缓存装置,其中,
当所述写指针组指向的存储块为空时,所述数据缓存单元在所述存储块中存储数据;
当所述写指针组指向的所述存储块存在数据时,所述数据缓存单元等待所述存储块的数据被清空。
5.根据权利要求3所述的数据缓存装置,其中,
当所述读指针组指向的所述待读空间为空或未写完数据时,所述数据缓存单元等待所述待读空间被写完数据;
当所述读指针组指向的所述待读空间存在已写完数据时,所述数据缓存单元根据所述读指针组对应的读控制信号指示的读取次数输出所述待读空间的数据。
6.根据权利要求5所述的数据缓存装置,其中,所述数据缓存单元包括:
计数模块,所述数据缓存单元通过所述计数模块的计数来判断所述读取次数是否完成。
7.根据权利要求6所述的数据缓存装置,其中,当至少两个所述读指针组指向同一待读空间时,所述计数模块对所述至少两个读指针组各自对应的读控制信号指示的读取次数分别进行计数。
8.根据权利要求3所述的数据缓存装置,其中,
所述写指针组根据对应的写控制信号指示的行步长和列步长来确定指向的存储块;
所述读指针组根据对应的读控制信号指示的行步长和列步长来确定指向的所述读取起始位置。
9.根据权利要求3所述的数据缓存装置,其中,所述数据缓存装置还包括:
指令缓存单元,其用于接收外部指令,并且根据所述外部指令解析出至少一个写控制信号和多个读控制信号,并且每个写控制信号包括一个写指针组,每个读控制信号包括一个读指针组。
10.根据权利要求9所述的数据缓存装置,其中,所述外部指令包括写指令和读指令,所述指令缓存单元包括至少一个写指令缓存单元和多个读指令缓存单元;
每个写指令缓存单元用于接收并存储所述写指令,并根据每个写指令解析出一个写控制信号;
每个读指令缓存单元用于接收并存储所述读指令,并根据每个读指令解析出一个读控制信号。
11.根据权利要求3所述的数据缓存装置,其中,所述数据缓存单元包括至少一个数据输入端口和至少一个数据输出端口。
12.根据权利要求11所述的数据缓存装置,其中,所述数据缓存单元包括多个数据输入端口和多个数据输出端口,
所述数据缓存单元根据所述写控制信号通过所述多个数据输入端口并行存储数据;
所述数据缓存单元根据所述读控制信号通过所述多个数据输出端口并行输出数据。
13.根据权利要求12所述的数据缓存装置,其中,所述数据缓存单元包括一个数据输入端口和一个数据输出端口,
所述数据缓存单元根据所述写控制信号通过所述一个数据输入端口串行存储数据;
所述数据缓存单元根据所述读控制信号通过所述一个数据输出端口串行存储数据。
14.一种在数据缓存装置中读取和写入数据的数据缓存方法,所述数据缓存装置包括数据缓存单元,所述数据缓存单元包括用于存储数据的多个存储块,其中,
所述数据缓存方法包括:
在由各自包括至少两个维度的写指针的至少一个写指针组各自指向的存储块中存储数据;
从由各自包括至少两个维度的读指针的多个读指针组各自指向的待读空间输出数据。
15.一种集成电路芯片,包括权利要求1-13的任意一项所述的数据缓存装置。
16.一种计算装置,包括根据权利要求1-13的任意一项所述的数据缓存装置或根据权利要求15所述的集成电路芯片。
17.一种板卡,包括根据权利要求16所述的计算装置。
CN202011535059.2A 2020-12-22 2020-12-22 数据缓存装置、方法、集成电路芯片、计算装置和板卡 Pending CN114661634A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011535059.2A CN114661634A (zh) 2020-12-22 2020-12-22 数据缓存装置、方法、集成电路芯片、计算装置和板卡

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011535059.2A CN114661634A (zh) 2020-12-22 2020-12-22 数据缓存装置、方法、集成电路芯片、计算装置和板卡

Publications (1)

Publication Number Publication Date
CN114661634A true CN114661634A (zh) 2022-06-24

Family

ID=82025603

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011535059.2A Pending CN114661634A (zh) 2020-12-22 2020-12-22 数据缓存装置、方法、集成电路芯片、计算装置和板卡

Country Status (1)

Country Link
CN (1) CN114661634A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116501657A (zh) * 2023-06-19 2023-07-28 阿里巴巴(中国)有限公司 缓存数据的处理方法、设备及系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116501657A (zh) * 2023-06-19 2023-07-28 阿里巴巴(中国)有限公司 缓存数据的处理方法、设备及系统
CN116501657B (zh) * 2023-06-19 2023-11-10 阿里巴巴(中国)有限公司 缓存数据的处理方法、设备及系统

Similar Documents

Publication Publication Date Title
CN110096309B (zh) 运算方法、装置、计算机设备和存储介质
CN110096310B (zh) 运算方法、装置、计算机设备和存储介质
CN113900974B (zh) 一种存储装置、数据存储方法及相关设备
CN111209243B (zh) 数据处理装置、方法及相关产品
CN111125628A (zh) 人工智能处理器处理二维数据矩阵的方法和设备
CN114661634A (zh) 数据缓存装置、方法、集成电路芯片、计算装置和板卡
CN111124995A (zh) 通过人工智能处理器处理一维复数数组的方法和设备
CN111381882B (zh) 数据处理装置及相关产品
CN111047005A (zh) 运算方法、装置、计算机设备和存储介质
CN112052040A (zh) 处理方法、装置、计算机设备和存储介质
US20230214327A1 (en) Data processing device and related product
CN114661633A (zh) 数据缓存装置、方法、集成电路芯片、计算装置和板卡
CN114661345A (zh) 加速运算装置、方法、集成电路芯片、计算装置和板卡
CN111723920A (zh) 人工智能计算装置及相关产品
CN112395008A (zh) 运算方法、装置、计算机设备和存储介质
CN114691562A (zh) 用于dma操作的方法、装置、设备、集成电路芯片和板卡
CN112395009A (zh) 运算方法、装置、计算机设备和存储介质
CN111382855B (zh) 数据处理装置、方法、芯片及电子设备
US11983535B2 (en) Artificial intelligence computing device and related product
US20230297379A1 (en) Data processing apparatus and related product
CN112395002B (zh) 运算方法、装置、计算机设备和存储介质
CN111783954B (zh) 一种用于确定神经网络的性能的方法、电子设备和存储介质
CN111353125B (zh) 运算方法、装置、计算机设备和存储介质
CN113032299A (zh) 用于处理请求的总线系统、集成电路装置、板卡及保序方法
CN111260045B (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