CN117291127A - 先写后读的检测控制方法及其装置 - Google Patents

先写后读的检测控制方法及其装置 Download PDF

Info

Publication number
CN117291127A
CN117291127A CN202210681006.4A CN202210681006A CN117291127A CN 117291127 A CN117291127 A CN 117291127A CN 202210681006 A CN202210681006 A CN 202210681006A CN 117291127 A CN117291127 A CN 117291127A
Authority
CN
China
Prior art keywords
data
operated
fifo module
layer
computing unit
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
CN202210681006.4A
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.)
Glenfly Tech Co Ltd
Original Assignee
Glenfly Tech 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 Glenfly Tech Co Ltd filed Critical Glenfly Tech Co Ltd
Priority to CN202210681006.4A priority Critical patent/CN117291127A/zh
Publication of CN117291127A publication Critical patent/CN117291127A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Information Transfer Systems (AREA)

Abstract

本申请涉及集成电路技术领域,提供了一种先写后读的检测控制方法及其装置。本申请中,在FIFO模块处于满状态的情况下还可继续获取待运算数据对应的地址,在该地址与FIFO模块的各层中已写入的地址均未命中的情况下,将该地址写入读指针指向的层中即写指针与读指针在同一位置,以覆盖掉原写入至该读指针指向的层中的地址,同时计算单元根据该待运算数据对应的地址从存储器接收待运算数据进行运算,且计算单元暂不接收来自存储器的其他待运算数据直至其将完成运算的数据写入存储器,由此可通过n‑1级层深的FIFO模块完成对n级管道深度的计算单元的RAW检测,实现在达到传统的RAW检测控制器的性能的基础上,节约硬件资源的目的。

Description

先写后读的检测控制方法及其装置
技术领域
本申请涉及集成电路技术领域,特别是涉及一种先写后读的检测控制方法及其装置。
背景技术
在IC(Integrated Circuit,集成电路)设计中,面积、时序、功耗是衡量一个硬件设计的三个重要指标。随着芯片设计复杂性的提升,导致芯片面积逐步在增加。如何在有限的硬件资源条件下,同时保证芯片的功能及性能成为了硬件设计工作者面临的难题。
传统的先写后读(Read After Write,简称RAW)的检测控制方案,为了使计算单元ALU每次计算时从存储器memory中读取到正确的值,必须要保证之前的计算值已经写入到存储器中。假设计算单元的管道pipe深度为n级,若要使检测控制器能够检测计算单元ALU的各管道pipe中所有的数据,同时保证计算单元的管道pipe的性能,则至少需要配置一个n层深的先进先出FIFO模块,其存在需求硬件资源较多的技术问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够在达到传统的RAW检测控制器的性能的基础上,节约硬件资源的先写后读的检测控制方法及其装置。
第一方面,本申请提供了一种先写后读的检测控制方法。所述方法包括:
在FIFO模块处于满状态的情况下,继续获取待运算数据对应的地址,将所述待运算数据对应的地址与所述FIFO模块的各层中已写入的地址进行比较;其中,所述待运算数据是来自存储器的待计算单元进行运算的数据;
若所述待运算数据对应的地址与所述FIFO模块的各层中已写入的地址均未命中,则将所述待运算数据对应的地址写入所述FIFO模块的读指针指向的层中,以将所述待运算数据对应的地址覆盖原写入至所述读指针指向的层中的地址;
在所述计算单元根据所述待运算数据对应的地址从所述存储器接收所述待运算数据后,使所述计算单元暂不接收来自所述存储器的其他待运算数据,直至所述计算单元将完成运算的数据写入所述存储器。
在其中一个实施例中,所述方法还包括:若所述FIFO模块中已写入与所述FIFO模块的层深相同的数量的地址,则确定所述FIFO模块处于满状态。
在其中一个实施例中,所述FIFO模块中用于存储地址的每一层均对应设有有效状态标识;所述有效状态标识,用于表征对应地址的待运算数据是否正在所述计算单元中进行运算;所述使所述计算单元暂不接收来自所述存储器的其他待运算数据之后,所述方法还包括:若接收到所述计算单元发送的释放信号,则将所述读指针指向下一层,并保持所述待运算数据对应的地址所在层对应的有效状态标识。
在其中一个实施例中,所述方法还包括:若接收到所述计算单元发送的释放信号,则使所述计算单元可继续接收来自所述存储器的其他待运算数据。
在其中一个实施例中,所述FIFO模块配置的层深比所述计算单元的管道深度小1。
第二方面,本申请还提供了一种先写后读的检测控制装置。所述装置包括:
比较模块,用于在FIFO模块处于满状态的情况下,继续获取待运算数据对应的地址,将所述待运算数据对应的地址与所述FIFO模块的各层中已写入的地址进行比较;其中,所述待运算数据是来自存储器的待计算单元进行运算的数据;
写入模块,用于若所述待运算数据对应的地址与所述FIFO模块的各层中已写入的地址均未命中,则将所述待运算数据对应的地址写入所述FIFO模块的读指针指向的层中,以将所述待运算数据对应的地址覆盖原写入至所述读指针指向的层中的地址;
控制模块,用于在所述计算单元根据所述待运算数据对应的地址从所述存储器接收所述待运算数据后,使所述计算单元暂不接收来自所述存储器的其他待运算数据,直至所述计算单元将完成运算的数据写入所述存储器。
在其中一个实施例中,所述比较模块,还用于若所述FIFO模块中已写入与所述FIFO模块的层深相同的数量的地址,则确定所述FIFO模块处于满状态。
在其中一个实施例中,所述FIFO模块中用于存储地址的每一层均对应设有有效状态标识;所述有效状态标识,用于表征对应地址的待运算数据是否正在所述计算单元中进行运算;所述控制模块,还用于若接收到所述计算单元发送的释放信号,则将所述读指针指向下一层,并保持所述待运算数据对应的地址所在层对应的有效状态标识。
在其中一个实施例中,所述控制模块,还用于若接收到所述计算单元发送的释放信号,则使所述计算单元可继续接收来自所述存储器的其他待运算数据。
在其中一个实施例中,所述FIFO模块配置的层深比所述计算单元的管道深度小1。
上述先写后读的检测控制方法及其装置,在FIFO模块处于满状态的情况下还可继续获取待运算数据对应的地址,在该地址与FIFO模块的各层中已写入的地址均未命中的情况下,将该地址写入读指针指向的层中即写指针与读指针在同一位置,以覆盖掉原写入至该读指针指向的层中的地址,同时计算单元根据该待运算数据对应的地址从存储器接收待运算数据进行运算,且计算单元暂不接收来自存储器的其他待运算数据直至其将完成运算的数据写入存储器,由此可通过n-1级层深的FIFO模块完成对n级管道深度的计算单元的RAW检测,实现在达到传统的RAW检测控制器的性能的基础上,节约硬件资源的目的。
附图说明
图1为一示例中具有FIFO模块的计算单元流水线结构示意图;
图2为一示例中具有FIFO模块的计算单元检测流程示意图;
图3为一示例中n层深的FIFO模块结构示意图;
图4为对n层深的FIFO模块改进为n-1层深的示意图;
图5为一个实施例中先写后读的检测控制方法的流程示意图;
图6为一示例中基于n-1层深的FIFO模块的数据处理原理示意图;
图7为一个实施例中先写后读的检测控制装置的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请所涉及关键字说明:先写后读,Read After Write,简称RAW;先入先出,简称FIFO;控制器,controller;存储器,memory;计算单元,简称ALU。
本申请实施例提供的先写后读的检测控制方法,在传统的RAW FIFO检测方法的基础上,通过改进FIFO模块的控制,实现通过有限深度的FIFO模块储存信息同时实现最大限度性能提升,通过更少的逻辑设计完成了RAW检测控制器的功能,同时达到了传统控制器的性能,具体可通过改进FIFO模块的控制,实现用n-1层深的FIFO模块完成对n级管道深度的计算单元的数据检测,从而达到节省硬件资源的目的。
本申请将介绍带FIFO模块的计算单元流水线结构,以及说明计算单元需要做RAW检测的原因,同时在传统的RAW FIFO检测方法的基础上,通过改进FIFO模块的控制,使用有限硬件资源完成最大限度的性能提升。
以下部分将首先介绍带FIFO模块的计算单元流水线结构的组成部分,然后介绍传统的RAW FIFO的控制结构及其流程,接着说明本申请提供的先写后读的检测控制方法及其所实现的有益效果。
如图1示出了具有FIFO模块的计算单元流水线结构,该带FIFO模块的计算单元流水线主要包括存储器memory、计算单元ALU、FIFO模块(或称为RAW controller)、读取器reader以及写入器writer。其中,存储器memory主要是用于存储每次的待运算数据,计算单元ALU是对每次从存储器memory中拿到的待运算数据做相应的运算,读取器reader以及写入器writer主要用于向存储器memory发起读/写操作,FIFO模块则是用作为一种检测控制器,保证每次从存储器memory读取的待运算数据都是被更新过的,以确保计算单元ALU计算正确。
如图2示出了具有FIFO模块的计算单元检测流程,具体包括:读取器reader向存储器memory发起读请求;存储器memory将返回相应的地址address;然后将从存储器memory中返回的地址address与FIFO模块的各层中已写入的地址address进行比较以判断是否命中;若返回的地址address和FIFO模块的各层中已写入的地址address的比较结果均为未命中miss,则将该返回的地址address写入FIFO模块中,同时将存储器memory中该地址address上对应的待运算数据data发送给计算单元ALU;若返回的地址address和FIFO模块中的地址address的比较结果存在命中hit,则计算单元ALU不向存储器memory读取待运算数据data,直至FIFO模块中命中hit的地址address上的待运算数据data写入了存储器memory中;接着计算单元ALU获取从存储器memory中读取到的待运算数据data进行运算;计算单元ALU运算完一笔数据后,写入器writer释放FIFO模块中对应的地址,同时将运算完成的数据写入到存储器memory中。
其中,对于该计算单元流水线结构中的FIFO模块(RAW检测控制器),如图3所示,假设计算单元ALU存在n级的管道pipe(即管道深度为n级),这n级管道pipe中最多同时对n笔待运算数据data进行运算,对应的在存储器memory中需要分配n个地址address。此时,考虑到计算单元ALU的管道pipe的性能问题,至少需要配置一个层深为n的FIFO模块去做RAW检测,这样才不会有气泡bubble产生。同时,在FIFO模块的每一层需要对应设置一个有效状态标识valid信号以作为该层对应的有效状态标识,在向FIFO模块写地址的时候,相应层的valid信号被拉高,以表征应层的地址address上的待运算数据data正在计算单元ALU的管道pipe中做运算,在运算完成后,存储器memory里面对应的数据被更新,FIFO模块中相应层的valid信号被拉低。
所以对于传统的RAW FIFO检测控制方案,n级计算单元ALU管道pipe就需要n层深的FIFO模块去做RAW检测。
本申请提供的先写后读的检测控制方法,通过改变FIFO模块的控制逻辑可实现用n-1层深的FIFO模块实现n级管道深度的计算单元ALU管道pipe的RAW检测。
结合图4介绍本申请对FIFO模块的控制逻辑的改变之处,如图4所示,向传统的FIFO模块写入n个地址address,且这些地址address之间都是相互未命中miss,假设这n个循环cycle都不会有释放release操作,即读指针一直不发生变化,此时FIFO模块和计算单元ALU管道pipe都处于满状态,计算单元ALU不能再接收来自存储器memory的待运算数据,此时hit信号将会被拉高,直至计算单元ALU将运算完成的数据写进存储器memory,hit信号才能被释放,以使计算单元ALU继续读取存储器memory里的待运算数据进行运算。
而本申请改变为采用n-1层深的FIFO模块,在FIFO模块写入n-1个地址address后,FIFO模块已经处于满状态,但计算单元ALU管道pipe还能接收一笔待运算数据data,故此时不把hit信号拉高。
如图5示出了本申请提供的先写后读的检测控制方法,包括以下步骤:
步骤S501,在FIFO模块处于满状态的情况下,继续获取待运算数据对应的地址,将待运算数据对应的地址与FIFO模块的各层中已写入的地址进行比较。
其中,待运算数据是来自存储器memory的待计算单元ALU进行运算的数据。本步骤中,允许FIFO模块存在1个循环cycle的上溢情况,即在FIFO模块已经处于满状态时,计算单元ALU仍可从存储器memory接收待运算数据,此时将该待运算数据对应的地址与FIFO模块的各层中已写入的地址进行比较,以判断该待运算数据对应的地址是否与FIFO模块的各层中已写入的地址命中。
对于步骤S501中FIFO模块是否处于满状态,在其中一个实施例中,该方法还可以包括步骤:若FIFO模块中已写入与FIFO模块的层深相同的数量的地址,则确定FIFO模块处于满状态。具体的,FIFO模块的层深为n-1,那么当FIFO模块中已写入n-1个地址address时,确定FIFO模块处于满状态。
步骤S502,若待运算数据对应的地址与FIFO模块的各层中已写入的地址均未命中,则将待运算数据对应的地址写入FIFO模块的读指针指向的层中,以将待运算数据对应的地址覆盖原写入至读指针指向的层中的地址。
具体的,若上述待运算数据对应的地址(第n个address)与FIFO模块的各层中已写入的地址(前n-1个address)均未命中miss,则把该待运算数据对应的地址写入FIFO模块的读指针指向的层中,即此时写指针和读指针在同一位置,从而将该待运算数据对应的地址覆盖掉原本已经写到该读指针指向的层中的地址。
步骤S503,在计算单元根据待运算数据对应的地址从存储器接收待运算数据后,使计算单元暂不接收来自存储器的其他待运算数据,直至计算单元将完成运算的数据写入存储器。
在前述步骤S502中的将待运算数据对应的地址写入FIFO模块的读指针指向的层中的同时,可使计算单元ALU同时根据该待运算数据对应的地址从存储器memory接收待运算数据进行运算。然后,本步骤S503中,在计算单元ALU根据待运算数据对应的地址从存储器memory接收该第n笔待运算数据后,此时再将hit信号拉高,使计算单元ALU暂不接收来自存储器的其他待运算数据或称为下一笔待运算数据,直至该计算单元ALU将完成运算的一笔数据写入存储器memory。这样就完成n级计算单元ALU的管道pipe的RAW检测。
其中,FIFO模块中用于存储地址的每一层均对应设有有效状态标识,该有效状态标识可通过设置valid信号实现,该有效状态标识用于表征对应地址的待运算数据是否正在计算单元中进行运算。基于此,在一个实施例中,步骤S503中的使计算单元暂不接收来自存储器的其他待运算数据之后,还可以包括以下步骤:若接收到计算单元发送的释放信号,则将读指针指向下一层,并保持待运算数据对应的地址所在层对应的有效状态标识。
本实施例中,计算单元ALU将完成运算的数据写入存储器memory后,可通过写入器writer将释放信号发送至FIFO模块,而在FIFO模块处于上溢的情况下,若接收到该释放信号,则将FIFO模块的读指针加1使之指向下一层,但此时不能将该读指针原指向的层对应的valid信号拉低,因为它代表的是该层对应的地址address所对应的待运算数据还在计算单元ALU的管道pipe中,故不能被释放,也即需要保持该待运算数据对应的地址所在层对应的有效状态标识。
在一个实施例中,进一步的,还包括以下步骤:若接收到计算单元发送的释放信号,则使计算单元可继续接收来自存储器的其他待运算数据。
也即,计算单元ALU将完成运算的数据写入存储器memory后,将释放信号发送至FIFO模块,FIFO模块接收到计算单元发送的释放信号时,一方面将FIFO模块的读指针加1使之指向下一层并保持前述待运算数据对应的地址所在层对应的有效状态标识,另一方面将hit信号释放,使得计算单元ALU可继续读取存储器memory里的下一笔待运算数据进行计算。
结合图6,以4级管道深度的计算单元ALU为例,对本申请提供的先写后读的检测控制方法与传统方案进行对比说明,以呈现两者差异。
具体的,如图6所示,假设计算单元ALU有4级管道pipe,有互不命中的4笔数据依次进入计算单元ALU的管道pipe,若此时计算单元ALU的管道pipe被挡住,在经过该4个循环cycle后,计算单元ALU就不能再接收新的数据了,相对应的FIFO模块在经过该4个循环cycle后,在没有收到来自计算单元ALU的释放信号的情况下,需要将hit信号拉高,若将FIFO模块满状态信号(full信号)作为hit指示,那么为了保证整个计算单元ALU的管道pipe的性能,至少需要设置一个4层深的FIFO模块。
考虑到FIFO模块中的地址address只是做一个命中/未命中hit/miss的比较,不需要将FIFO模块中的地址address读取出来,所以本申请方案可以允许FIFO存在上溢的行为。也即,计算单元ALU的管道pipe在经过3个循环cycle过后,FIFO模块的写指针指向0,即将该第4笔数据的地址address把第1笔数据的地址address覆盖,此在再把hit信号拉高,在收到计算单元ALU的释放信号的时候,读指针指向1,此时需要保证指针0对应valid有效。可见,本申请提供的先写后读的检测控制方法只需要3层深的FIFO模块即可完成4级管道深度的计算单元ALU管道pipe的RAW检测。
本申请实施例提供的先写后读的检测控制方法,在FIFO模块处于满状态的情况下还可继续获取待运算数据对应的地址,在该地址与FIFO模块的各层中已写入的地址均未命中的情况下,将该地址写入读指针指向的层中即写指针与读指针在同一位置,以覆盖掉原写入至该读指针指向的层中的地址,同时计算单元根据该待运算数据对应的地址从存储器接收待运算数据进行运算,且计算单元暂不接收来自存储器的其他待运算数据直至其将完成运算的数据写入存储器,由此可通过n-1级层深的FIFO模块完成对n级管道深度的计算单元的RAW检测,实现在达到传统的RAW检测控制器的性能的基础上,节约硬件资源的目的,即通过可配置深度的FIFO模块来实现读取存储器memory中数据的正确性,用有限深度的FIFO模块储存信息完成最大限度性能提升。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的先写后读的检测控制方法的先写后读的检测控制装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个先写后读的检测控制装置实施例中的具体限定可以参见上文中对于先写后读的检测控制方法的限定,在此不再赘述。
在一个实施例中,如图7所示,提供了一种先写后读的检测控制装置,该装置700可以包括:
比较模块701,用于在FIFO模块处于满状态的情况下,继续获取待运算数据对应的地址,将所述待运算数据对应的地址与所述FIFO模块的各层中已写入的地址进行比较;其中,所述待运算数据是来自存储器的待计算单元进行运算的数据;
写入模块702,用于若所述待运算数据对应的地址与所述FIFO模块的各层中已写入的地址均未命中,则将所述待运算数据对应的地址写入所述FIFO模块的读指针指向的层中,以将所述待运算数据对应的地址覆盖原写入至所述读指针指向的层中的地址;
控制模块703,用于在所述计算单元根据所述待运算数据对应的地址从所述存储器接收所述待运算数据后,使所述计算单元暂不接收来自所述存储器的其他待运算数据,直至所述计算单元将完成运算的数据写入所述存储器。
在一个实施例中,比较模块701,还用于若所述FIFO模块中已写入与所述FIFO模块的层深相同的数量的地址,则确定所述FIFO模块处于满状态。
在一个实施例中,所述FIFO模块中用于存储地址的每一层均对应设有有效状态标识;所述有效状态标识,用于表征对应地址的待运算数据是否正在所述计算单元中进行运算;控制模块703,还用于若接收到所述计算单元发送的释放信号,则将所述读指针指向下一层,并保持所述待运算数据对应的地址所在层对应的有效状态标识。
在一个实施例中,控制模块703,还用于若接收到所述计算单元发送的释放信号,则使所述计算单元可继续接收来自所述存储器的其他待运算数据。
在一个实施例中,所述FIFO模块配置的层深比所述计算单元的管道深度小1。
上述先写后读的检测控制装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (10)

1.一种先写后读的检测控制方法,其特征在于,所述方法包括:
在FIFO模块处于满状态的情况下,继续获取待运算数据对应的地址,将所述待运算数据对应的地址与所述FIFO模块的各层中已写入的地址进行比较;其中,所述待运算数据是来自存储器的待计算单元进行运算的数据;
若所述待运算数据对应的地址与所述FIFO模块的各层中已写入的地址均未命中,则将所述待运算数据对应的地址写入所述FIFO模块的读指针指向的层中,以将所述待运算数据对应的地址覆盖原写入至所述读指针指向的层中的地址;
在所述计算单元根据所述待运算数据对应的地址从所述存储器接收所述待运算数据后,使所述计算单元暂不接收来自所述存储器的其他待运算数据,直至所述计算单元将完成运算的数据写入所述存储器。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述FIFO模块中已写入与所述FIFO模块的层深相同的数量的地址,则确定所述FIFO模块处于满状态。
3.根据权利要求1所述的方法,其特征在于,所述FIFO模块中用于存储地址的每一层均对应设有有效状态标识;所述有效状态标识,用于表征对应地址的待运算数据是否正在所述计算单元中进行运算;
所述使所述计算单元暂不接收来自所述存储器的其他待运算数据之后,所述方法还包括:
若接收到所述计算单元发送的释放信号,则将所述读指针指向下一层,并保持所述待运算数据对应的地址所在层对应的有效状态标识。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若接收到所述计算单元发送的释放信号,则使所述计算单元可继续接收来自所述存储器的其他待运算数据。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述FIFO模块配置的层深比所述计算单元的管道深度小1。
6.一种先写后读的检测控制装置,其特征在于,所述装置包括:
比较模块,用于在FIFO模块处于满状态的情况下,继续获取待运算数据对应的地址,将所述待运算数据对应的地址与所述FIFO模块的各层中已写入的地址进行比较;其中,所述待运算数据是来自存储器的待计算单元进行运算的数据;
写入模块,用于若所述待运算数据对应的地址与所述FIFO模块的各层中已写入的地址均未命中,则将所述待运算数据对应的地址写入所述FIFO模块的读指针指向的层中,以将所述待运算数据对应的地址覆盖原写入至所述读指针指向的层中的地址;
控制模块,用于在所述计算单元根据所述待运算数据对应的地址从所述存储器接收所述待运算数据后,使所述计算单元暂不接收来自所述存储器的其他待运算数据,直至所述计算单元将完成运算的数据写入所述存储器。
7.根据权利要求6所述的装置,其特征在于,所述比较模块,还用于若所述FIFO模块中已写入与所述FIFO模块的层深相同的数量的地址,则确定所述FIFO模块处于满状态。
8.根据权利要求6所述的装置,其特征在于,所述FIFO模块中用于存储地址的每一层均对应设有有效状态标识;所述有效状态标识,用于表征对应地址的待运算数据是否正在所述计算单元中进行运算;所述控制模块,还用于若接收到所述计算单元发送的释放信号,则将所述读指针指向下一层,并保持所述待运算数据对应的地址所在层对应的有效状态标识。
9.根据权利要求8所述的装置,其特征在于,所述控制模块,还用于若接收到所述计算单元发送的释放信号,则使所述计算单元可继续接收来自所述存储器的其他待运算数据。
10.根据权利要求6至9任一项所述的装置,其特征在于,所述FIFO模块配置的层深比所述计算单元的管道深度小1。
CN202210681006.4A 2022-06-16 2022-06-16 先写后读的检测控制方法及其装置 Pending CN117291127A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210681006.4A CN117291127A (zh) 2022-06-16 2022-06-16 先写后读的检测控制方法及其装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210681006.4A CN117291127A (zh) 2022-06-16 2022-06-16 先写后读的检测控制方法及其装置

Publications (1)

Publication Number Publication Date
CN117291127A true CN117291127A (zh) 2023-12-26

Family

ID=89246750

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210681006.4A Pending CN117291127A (zh) 2022-06-16 2022-06-16 先写后读的检测控制方法及其装置

Country Status (1)

Country Link
CN (1) CN117291127A (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103631624A (zh) * 2013-11-29 2014-03-12 华为技术有限公司 读写请求的处理方法和装置
CN103902471A (zh) * 2012-12-28 2014-07-02 华为技术有限公司 数据缓存处理方法和装置
CN105183665A (zh) * 2015-09-08 2015-12-23 福州瑞芯微电子股份有限公司 一种数据缓存访问方法和数据缓存控制器
CN109783403A (zh) * 2017-11-10 2019-05-21 深圳超级数据链技术有限公司 读取数据的方法、装置和数据处理器
CN112506823A (zh) * 2020-12-11 2021-03-16 盛立金融软件开发(杭州)有限公司 一种fpga数据读写方法、装置、设备及可读存储介质
CN113299326A (zh) * 2021-05-17 2021-08-24 珠海市一微半导体有限公司 基于fifo的数据先进后出型存储电路及读写方法
CN113918508A (zh) * 2021-12-15 2022-01-11 苏州浪潮智能科技有限公司 一种缓存加速方法、装置、设备及可读存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103902471A (zh) * 2012-12-28 2014-07-02 华为技术有限公司 数据缓存处理方法和装置
CN103631624A (zh) * 2013-11-29 2014-03-12 华为技术有限公司 读写请求的处理方法和装置
CN105183665A (zh) * 2015-09-08 2015-12-23 福州瑞芯微电子股份有限公司 一种数据缓存访问方法和数据缓存控制器
CN109783403A (zh) * 2017-11-10 2019-05-21 深圳超级数据链技术有限公司 读取数据的方法、装置和数据处理器
CN112506823A (zh) * 2020-12-11 2021-03-16 盛立金融软件开发(杭州)有限公司 一种fpga数据读写方法、装置、设备及可读存储介质
CN113299326A (zh) * 2021-05-17 2021-08-24 珠海市一微半导体有限公司 基于fifo的数据先进后出型存储电路及读写方法
CN113918508A (zh) * 2021-12-15 2022-01-11 苏州浪潮智能科技有限公司 一种缓存加速方法、装置、设备及可读存储介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
丛红艳等: ""基于格雷码的深度可配置的异步FIFO设计实现"", 《电子与封装》, vol. 14, no. 5, 2 July 2014 (2014-07-02), pages 33 - 36 *
俞晓鸿等: ""基于Linux 地址空间随机化的缓冲区溢出研究"", 《电脑知识与技术》, vol. 7, no. 1, 5 January 2011 (2011-01-05), pages 90 - 93 *
张则立等: ""安全仪表***中SIL3 级单重化组件的在线诊断设计"", 《自动化与仪器仪表》, no. 6, 25 June 2021 (2021-06-25), pages 83 - 91 *

Similar Documents

Publication Publication Date Title
EP3168746B1 (en) Hardware monitor to verify memory units
US6115808A (en) Method and apparatus for performing predicate hazard detection
CN102460420B (zh) 存储器装置的内部处理器中的条件式操作
US9052910B2 (en) Efficiency of short loop instruction fetch
US20120216011A1 (en) Apparatus and method of single-instruction, multiple-data vector operation masking
US8606982B2 (en) Derivative logical output
KR20120052893A (ko) 직렬 인터페이스 메모리에서의 병행 판독 및 기입 메모리 동작들
WO2020076392A1 (en) Modifying machine learning models to improve locality
JP2004516546A (ja) パイプライン方式のプロセッサにおける例外処理
US9256544B2 (en) Way preparation for accessing a cache
US10002079B2 (en) Method of predicting a datum to be preloaded into a cache memory
KR20140065477A (ko) 원자적 동작을 지원하는 시프트 가능형 메모리
EP3550428A2 (en) Secure speculative instruction execution in a data processing system
CN115867888A (zh) 用于利用主-影子物理寄存器文件的方法和***
TWI648624B (zh) 管理用於分支預測的歷史資訊的裝置及方法
WO2022237585A1 (zh) 处理方法及装置、处理器、电子设备及存储介质
WO2021041633A1 (en) Operating mode register
US20240152292A1 (en) Redundant computing across planes
TW200412491A (en) Method and apparatus for providing error correction within a register file of a CPU
CN108021563B (zh) 一种指令间数据依赖的检测方法和装置
CN117291127A (zh) 先写后读的检测控制方法及其装置
WO2021041638A1 (en) Copy data in a memory system with artificial intelligence mode
CN115470052B (zh) 存储芯片的坏块检测方法、检测装置及存储介质
CN103761052A (zh) 一种管理高速缓存的方法及存储装置
CN111273862A (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

Country or region after: China

Address after: 200135, 11th Floor, Building 3, No. 889 Bibo Road, China (Shanghai) Pilot Free Trade Zone, Pudong New Area, Shanghai

Applicant after: Granfei Intelligent Technology Co.,Ltd.

Address before: 200135 Room 201, No. 2557, Jinke Road, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai

Applicant before: Gryfield Intelligent Technology Co.,Ltd.

Country or region before: China