CN114661633A - 数据缓存装置、方法、集成电路芯片、计算装置和板卡 - Google Patents
数据缓存装置、方法、集成电路芯片、计算装置和板卡 Download PDFInfo
- Publication number
- CN114661633A CN114661633A CN202011535017.9A CN202011535017A CN114661633A CN 114661633 A CN114661633 A CN 114661633A CN 202011535017 A CN202011535017 A CN 202011535017A CN 114661633 A CN114661633 A CN 114661633A
- Authority
- CN
- China
- Prior art keywords
- data
- read
- write
- caching
- 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
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/0877—Cache access modes
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具有多个存储行,数据无论写入还是读取都是针对存储行来进行。一个或多个写指针可以将数据写入它们各自指向的存储行中,多个读指针可以从它们各自指向的存储行中读取数据。应当注意,写指针和读指针可以各自独立操作。
具体地,可以参照图2,图2是示出根据本公开的实施例的数据缓存单元101的示意图。如图2所示,数据缓存单元101具有多个用于存储数据的存储行。两个写指针W0和W1可以将数据写入它们各自指向的存储行中,两个读指针R0和R1可以从它们各自指向的存储行中读取数据。应当注意,图2中仅示例性地示出两个写指针和两个读指针,本公开不限于此。
为了更灵活地读写数据,多个写指针可以各自指向不同的存储行;多个读指针可以各自指向一个存储行。
在该实施例中,当上述至少一个写指针为多个写指针时,每个写指针指向的存储行都不相同,以便同时向不同的存储行写入数据,并且避免发生同一存储行在一个指令下反复写入不同数据而造成丢失数据的问题。而多个读指针可以各自指向一个存储行,即允许每个读指针指向的存储行都不相同,或者至少两个读指针指向的存储行相同,以便可以使至少两个读指针对同一个存储行中的数据进行读取,从而实现数据共享。在图2中所示的数据存储单元101中,示出了两个写指针W0和W1各自指向不同的存储行,并且两个读指针R0和R1各自指向不同的存储行。当然,两个读指针R0和R1也可以指向同一存储行。
在对数据缓存单元中的存储行写入数据时,应注意,当写指针指向的存储行为空时,数据缓存单元101可以在存储行中存储数据;当写指针指向的存储行存在数据时,数据缓存单元101可以等待存储行的数据被清空。
在该实施例中,在对数据缓存单元101写入数据时,应避免覆盖未使用或仍需使用的数据。在数据缓存单元101中,如果数据已被使用完毕,会被清除。因此例如参照图2,如果写指针W0和/或W1指向的存储行为空,则可以向该存储行写入数据;如果该存储行中存在数据,则证明数据未使用完或还未被清除,因此需要等待该存储行的数据被清除后,将数据写入该存储行。
在从数据缓存单元中的存储行读取数据时,应注意,当读指针指向的存储行为空或未写完数据时,数据缓存单元101等待存储行被写完数据;当读指针指向的存储行存在已写完数据时,数据缓存单元101根据读指针对应的读控制信号指示的读取次数输出存储行的数据,并且在读取次数完成后将存储行的数据清空。
在该实施例中,在读取数据缓存单元中的数据时,应确保存储行中的数据完整存在。例如参照图2,如果读指针R0和/或R1指向的存储行不存在数据或者正在写入数据时,则需要等待数据完全写入该存储行中后,再对该存储行中的数据进行读取。如果存储行中存在完整数据时,则可以读取该数据,并在读取完成后对该存储行中的数据进行清除。应当注意,同一个读指针,例如读指针R0或R1,对同一存储行中的数据,可以根据读控制信号读取多次,以实现对同一数据的复用,由此,存储行中的数据在读控制信号指示的读取次数都完成后被清除。
为此,数据缓存单元101可以包括计数模块。数据缓存单元101可以通过所述计数模块的计数来判断所述读取次数是否完成。
在该实施例中,为了判断读取次数是否完成,数据缓存单元101可以包括计数模块。该计数模块可以对读控制信号指示的读取次数进行计数。当计数完成后,该读取次数完成。
另外,当至少两个读指针指向同一存储行时,计数模块对至少两个读指针各自对应的读控制信号指示的读取次数分别进行计数,并且存储行的数据在读取次数都完成后被清空。
在该实施例中,例如参照图2,在读指针R0和R1需要在同一存储行读取数据时,计数模块可以对每个读指针R0和R1所对应的读控制信号指示的读取次数进行计数。当计数模块对每个读控制信号指示的读取次数都完成计数后,该存储行中的数据可以被清除。
为了在数据缓存单元中的任意存储行读写数据,写指针根据对应的写控制信号指示的步长来确定指向的存储行;读指针根据对应的读控制信号指示的步长来确定指向的存储行。
在该实施例中,在数据缓存单元初始工作时,可以通过初始化将写指针和读指针都指向数据缓存单元的起始位置(例如第一存储行所在位置)。随后,写指针和读指针可以根据对应写控制信号和读控制信号指示的步长来确定指向的存储行,即写指针和读指针可以根据指向的存储行以及当前写控制信号和读控制信号指示的步长来确定当前需要指向的存储行。
该步长的范围可以根据存储行的行数来设定,以确保写指针和读指针可以根据写控制信号和读控制信号指向任一个存储行。例如步长的范围可以设为0至n-1,n代表数据存储单元中的存储行的数量。
例如数据缓存单元中的存储行的数量为100,写指针和读指针原来指向的存储行为第5行,如果步长为8,则将要指向的存储行为第13行。此外,当步长为0时,表示写指针和读指针指向的存储行不变,即仍然指向原存储行。当步长为n-1时,表示写指针和读指针将要指向的存储行是原来指向的存储行的上一相邻存储行。例如数据缓存单元中的存储行的数量为100,写指针和读指针原来指向的存储行为第5行,如果步长为99,则将要指向的存储行为第4行。由此可知,针对步长,数据缓存单元的存储行的计数以第一存储行接着最后一个存储行循环进行,即当原来指向的存储行的序号加上步长大于最后一个存储行的序号时,则以第一存储行接着最后一个存储行继续计数。
由以上所述内容可知,写指针和读指针的数量可以为多个,然而数据缓存单元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,根据条款A2所述的数据缓存装置,其中,当所述读指针指向的存储行为空或未写完数据时,所述数据缓存单元等待所述存储行被写完数据;当所述读指针指向的存储行存在已写完数据时,所述数据缓存单元根据所述读指针对应的读控制信号指示的读取次数输出所述存储行的数据,并且在所述读取次数完成后将所述存储行的数据清空。
条款A5,根据条款A4所述的数据缓存装置,其中,所述数据缓存单元包括:计数模块,所述数据缓存单元通过所述计数模块的计数来判断所述读取次数是否完成。
条款A6,根据条款A5所述的数据缓存装置,其中,当至少两个读指针指向同一存储行时,所述计数模块对所述至少两个读指针各自对应的读控制信号指示的读取次数分别进行计数,并且所述存储行的数据在所述读取次数都完成后被清空。
条款A7,根据条款A2所述的数据缓存装置,其中,所述写指针根据对应的写控制信号指示的步长来确定指向的存储行;所述读指针根据对应的读控制信号指示的步长来确定指向的存储行。
条款A8,根据条款A2所述的数据缓存装置,所述数据缓存装置还包括:指令缓存单元,其用于接收外部指令,并且根据所述外部指令解析出所述至少一个写控制信号和所述多个读控制信号,并且每个写控制信号包括一个写指针,每个读控制信号包括一个读指针。
条款A9,根据条款A8所述的数据缓存装置,其中,所述外部指令包括写指令和读指令,所述指令缓存单元包括至少一个写指令缓存单元和多个读指令缓存单元;每个写指令缓存单元用于接收并存储所述写指令,并根据每个写指令解析出一个写控制信号;每个读指令缓存单元用于接收并存储所述读指令,并根据每个读指令解析出一个读控制信号。
条款A10,根据条款A2所述的数据缓存装置,其中,所述数据缓存单元包括至少一个数据输入端口和至少一个数据输出端口。
条款A11,根据条款A10所述的数据缓存装置,其中,所述数据缓存单元包括多个数据输入端口和多个数据输出端口,所述数据缓存单元根据所述写控制信号通过所述多个数据输入端口并行存储数据;所述数据缓存单元根据所述读控制信号通过所述多个数据输出端口并行输出数据。
条款A12,根据条款A10所述的数据缓存装置,其中,所述数据缓存单元包括一个数据输入端口和一个数据输出端口,所述数据缓存单元根据所述写控制信号通过所述一个数据输入端口串行存储数据;所述数据缓存单元根据所述读控制信号通过所述一个数据输出端口串行输出数据。
条款A13,一种在数据缓存装置中读取和写入数据的数据缓存方法,其中,所述数据缓存方法包括:在由至少一个写指针各自指向的所述数据缓存装置的数据缓存单元所包括的存储行中存储数据;从由多个读指针各自指向的所述数据缓存装置的数据缓存单元所包括的存储行输出数据。
条款A14,一种集成电路芯片,包括根据条款A1-A12中任一项所述的数据缓存装置。
条款A15,一种计算装置,包括根据条款A1-A12中任一项所述的数据缓存装置或根据条款A14所述的集成电路芯片。
条款A16,一种板卡,包括根据条款A15所述的计算装置。
以上对本公开实施例进行了详细介绍,本文中应用了具体个例对本公开的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本公开的方法及其核心思想;同时,对于本领域的一般技术人员,依据本公开的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本公开的限制。
应当理解,本公开的权利要求、说明书及附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。本公开的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本公开说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本公开。如在本公开说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本公开说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
以上对本公开实施例进行了详细介绍,本文中应用了具体个例对本公开的原理及实施方式进行了阐述,以上实施例的说明仅用于帮助理解本公开的方法及其核心思想。同时,本领域技术人员依据本公开的思想,基于本公开的具体实施方式及应用范围上做出的改变或变形之处,都属于本公开保护的范围。综上所述,本说明书内容不应理解为对本公开的限制。
Claims (16)
1.一种数据缓存装置,其中,所述数据缓存装置包括:
数据缓存单元,其包括用于存储数据的多个存储行,
所述数据缓存单元在由至少一个写指针各自指向的存储行中存储数据,
所述数据缓存单元从由多个读指针各自指向的存储行输出数据。
2.根据权利要求1所述的数据缓存装置,其中,
多个写指针各自指向不同的存储行;
多个读指针各自指向一个存储行。
3.根据权利要求2所述的数据缓存装置,其中,
当所述写指针指向的存储行为空时,所述数据缓存单元在所述存储行中存储数据;
当所述写指针指向的存储行存在数据时,所述数据缓存单元等待所述存储行的数据被清空。
4.根据权利要求2所述的数据缓存装置,其中,
当所述读指针指向的存储行为空或未写完数据时,所述数据缓存单元等待所述存储行被写完数据;
当所述读指针指向的存储行存在已写完数据时,所述数据缓存单元根据所述读指针对应的读控制信号指示的读取次数输出所述存储行的数据,并且在所述读取次数完成后将所述存储行的数据清空。
5.根据权利要求4所述的数据缓存装置,其中,所述数据缓存单元包括:
计数模块,所述数据缓存单元通过所述计数模块的计数来判断所述读取次数是否完成。
6.根据权利要求5所述的数据缓存装置,其中,当至少两个读指针指向同一存储行时,所述计数模块对所述至少两个读指针各自对应的读控制信号指示的读取次数分别进行计数,并且所述存储行的数据在所述读取次数都完成后被清空。
7.根据权利要求2所述的数据缓存装置,其中,
所述写指针根据对应的写控制信号指示的步长来确定指向的存储行;
所述读指针根据对应的读控制信号指示的步长来确定指向的存储行。
8.根据权利要求2所述的数据缓存装置,其中,所述数据缓存装置还包括:
指令缓存单元,其用于接收外部指令,并且根据所述外部指令解析出至少一个写控制信号和多个读控制信号,并且每个写控制信号包括一个写指针,每个读控制信号包括一个读指针。
9.根据权利要求8所述的数据缓存装置,其中,所述外部指令包括写指令和读指令,所述指令缓存单元包括至少一个写指令缓存单元和多个读指令缓存单元;
每个写指令缓存单元用于接收并存储所述写指令,并根据每个写指令解析出一个写控制信号;
每个读指令缓存单元用于接收并存储所述读指令,并根据每个读指令解析出一个读控制信号。
10.根据权利要求2所述的数据缓存装置,其中,所述数据缓存单元包括至少一个数据输入端口和至少一个数据输出端口。
11.根据权利要求10所述的数据缓存装置,其中,所述数据缓存单元包括多个数据输入端口和多个数据输出端口,
所述数据缓存单元根据所述写控制信号通过所述多个数据输入端口并行存储数据;
所述数据缓存单元根据所述读控制信号通过所述多个数据输出端口并行输出数据。
12.根据权利要求10所述的数据缓存装置,其中,所述数据缓存单元包括一个数据输入端口和一个数据输出端口,
所述数据缓存单元根据所述写控制信号通过所述一个数据输入端口串行存储数据;
所述数据缓存单元根据所述读控制信号通过所述一个数据输出端口串行输出数据。
13.一种在数据缓存装置中读取和写入数据的数据缓存方法,所述数据缓存装置包括数据缓存单元,所述数据缓存单元包括用于存储数据的多个存储行,其中,所述数据缓存方法包括:
在由至少一个写指针各自指向的存储行中存储数据;
从由多个读指针各自指向的存储行输出数据。
14.一种集成电路芯片,包括权利要求1-12的任意一项所述的数据缓存装置。
15.一种计算装置,包括根据权利要求1-12的任意一项所述的数据缓存装置或根据权利要求14所述的集成电路芯片。
16.一种板卡,包括根据权利要求15所述的计算装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011535017.9A CN114661633A (zh) | 2020-12-22 | 2020-12-22 | 数据缓存装置、方法、集成电路芯片、计算装置和板卡 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011535017.9A CN114661633A (zh) | 2020-12-22 | 2020-12-22 | 数据缓存装置、方法、集成电路芯片、计算装置和板卡 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114661633A true CN114661633A (zh) | 2022-06-24 |
Family
ID=82024215
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011535017.9A Pending CN114661633A (zh) | 2020-12-22 | 2020-12-22 | 数据缓存装置、方法、集成电路芯片、计算装置和板卡 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114661633A (zh) |
-
2020
- 2020-12-22 CN CN202011535017.9A patent/CN114661633A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110096310B (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN110119807B (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN111209243B (zh) | 数据处理装置、方法及相关产品 | |
CN111124995A (zh) | 通过人工智能处理器处理一维复数数组的方法和设备 | |
CN114661634A (zh) | 数据缓存装置、方法、集成电路芯片、计算装置和板卡 | |
CN114661633A (zh) | 数据缓存装置、方法、集成电路芯片、计算装置和板卡 | |
CN111260043A (zh) | 数据选择器、数据处理方法、芯片及电子设备 | |
CN112052040A (zh) | 处理方法、装置、计算机设备和存储介质 | |
US20230214327A1 (en) | Data processing device and related product | |
CN111260042B (zh) | 数据选择器、数据处理方法、芯片及电子设备 | |
CN111381875B (zh) | 数据比较器、数据处理方法、芯片及电子设备 | |
CN111382853B (zh) | 数据处理装置、方法、芯片及电子设备 | |
CN114661345A (zh) | 加速运算装置、方法、集成电路芯片、计算装置和板卡 | |
CN111382855B (zh) | 数据处理装置、方法、芯片及电子设备 | |
CN113033791B (zh) | 用于保序的计算装置、集成电路装置、板卡及保序方法 | |
CN113032299B (zh) | 用于处理请求的总线系统、集成电路装置、板卡及保序方法 | |
CN113032298B (zh) | 用于保序的计算装置、集成电路装置、板卡及保序方法 | |
EP4148560A1 (en) | Data processing method and device, and related product | |
US20230297379A1 (en) | Data processing apparatus and related product | |
CN111260045B (zh) | 译码器和原子指令解析方法 | |
EP4148564A1 (en) | Data processing method and device, and related product | |
US20220156077A1 (en) | Artificial intelligence computing device and related product | |
CN111399905B (zh) | 运算方法、装置及相关产品 | |
CN111723920A (zh) | 人工智能计算装置及相关产品 | |
CN111340229B (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 |