一种数据缓存单元及其实现方法

文档序号:6520598阅读:142来源:国知局
专利名称:一种数据缓存单元及其实现方法
技术领域
本发明涉及芯片仿真技术,特别涉及应用于芯片仿真平台中的一种数据缓存单元及其实现方法。
背景技术
目前,芯片已在电子技术领域发挥着重要作用,大部分电子设备的运行都依赖于其内部芯片的实现。芯片的实现包括两个阶段芯片设计和芯片制造。
所谓芯片设计包括算法实现和外围逻辑电路设计。其中,算法是芯片的灵魂,其用于描述芯片所实现的功能,所谓算法实现包括算法研究、在芯片中实现研究得到的算法等等;所谓外围逻辑电路指为实现芯片功能而设计的辅助电路,比如电源的连通、内部模块的握手等。之后,要在芯片设计的基础之上进行芯片制造,而芯片制造的成本非常高,每次投片的成本通常在几十万美元左右。芯片制造的主要步骤就是要依据芯片设计结果进行流片。但是,芯片一经流片,其内部的逻辑就不能再被改变,如果芯片设计出现问题,就只能重新流片,这将给公司带来巨大损失。
由于芯片流片的成本非常高,这就对芯片设计提出了很高要求,如何确保芯片设计的正确性,是所有芯片公司都要面对的重要课题。在芯片设计的过程中,通常需要构建芯片仿真软件平台来对芯片功能的正确性进行验证。目前,芯片仿真软件平台主要使用的硬件描述语言有VHDL、Verilog等,业界已存在一些基于VHDL、Verilog等主流硬件描述语言的芯片仿真平台,能处理芯片算法仿真和芯片外围逻辑电路仿真。
其中,芯片仿真的关键在于算法仿真,原因在于芯片的核心为其所承载的算法,算法将直接决定芯片实现的功能。所以,在芯片正确性的验证中,最重要的就是芯片功能的验证也就是芯片算法的验证。虽然目前基于硬件描述语言的芯片仿真平台能够验证芯片的算法,但还存在以下缺点1、仿真速度慢因为硬件描述语言用于描述硬件的功能,它支持硬件所需的并行处理结构,这种结构与计算机的特性是不同的,如要在计算机上对硬件描述语句进行仿真,只能通过解释程序来实现。也就是说,目前所有基于硬件描述语言的仿真平台都是对这些硬件描述语句进行解释执行,其执行速度是非常慢的。举例来说,如在V568芯片中对V568的芯片语句进行仿真,则一幅VGA的图像即分辨率为640×480的图像数据格式至少需要一天以上的时间来处理。
2、占用较多资源由于这些芯片仿真平台非常复杂,因此对计算机的要求也很高,往往需要运行在工作站上,甚至需要多台工作站同时运行,这将耗费大量处理资源,使芯片仿真成本较高。
3、实现复杂由于这些芯片仿真平台功能非常强大,所以使用非常复杂,比如需要建立测试环境等等,而且每种芯片的内部功能都可能不同,那么就要为每种芯片建立一个仿真环境,这样实现起来难度相当大。
鉴于上述基于硬件描述语言的芯片仿真平台的缺点,最近,业界还提出了一种基于C/C++等语言的芯片仿真平台,该种芯片仿真平台与计算机的特性相符合,可运行在一台计算机之上,因此,运行速度自然比基于硬件描述语言的仿真平台快很多,易于调试(debug),而且不会占用太多处理资源,具有较强的可实施性。
此外,该种基于C/C++等语言的芯片仿真平台能为用户提供诸如动态创建算法仿真模型、运行算法仿真模型等功能,使用户能按仿真需要灵活建立所要仿真的芯片算法组合,从而易于用户调整芯片算法的组合方式,以仿真得到芯片算法的最佳组合。这里,每一算法仿真模型对应一种或多种芯片算法的组合,用户在一次芯片算法仿真过程中可能选择一个或多个算法仿真模型来进行仿真处理。
其中,该芯片仿真平台所能提供的各个算法处理将分别被封装至各个数据转换单元中。当要按算法仿真模型处理数据时,将按当前算法仿真模型中各个算法处理的组合方式连接该算法仿真模型中各个算法处理对应各个数据转换单元,并向当前算法仿真模型中的初始算法处理对应的数据转换单元输入数据;每一数据转换单元对自身接收到的数据进行对应的算法处理并输出,由当前算法仿真模型中最后的算法处理对应的数据转换单元输出结果数据。
由于,该种芯片仿真平台运行于一台计算机之上,因此,计算机的中央处理单元(CPU)在每一时刻只能为一个数据转换单元分配资源。所以,构成当前算法仿真模型的各个数据转换单元中,每一时刻只能有一个数据转换单元在运行。这样,当某一数据转换单元输出数据至另一数据转换单元、但该另一数据转换单元又没有得到CPU资源而不能运行时,就会出现数据处理出错、数据丢失等问题。

发明内容
有鉴于此,本发明的主要目的在于提供一种数据缓存单元及其实现方法,能保证在芯片算法仿真平台中数据转换单元的数据处理准确性,避免数据丢失和误处理。
为达到上述目的,本发明的技术方案是这样实现的本发明公开了一种数据缓存单元,该数据缓存单元包括缓存器,用于从外部接收数据进行缓存并输出;读写探测器,用于监控所述缓存器的读写操作,记录该缓存器的存储状态并输出给所述状态存储器;状态存储器,用于从所述读写探测器接收存储状态并输出。
其中,所述读写探测器当所述缓存器缓存的有效数据长度为零时记录存储状态为空,当所述缓存器缓存的有效数据长度非零时,记录存储状态为非空。
其中,所述读写探测器当所述缓存器发生读操作时,如果该缓存器缓存的有效数据长度为零,则记录存储状态为空;当所述缓存器发生写操作时,记录存储状态为非空。
其中,所述数据缓存单元的输入端和输出端分别与芯片仿真平台中的数据转换单元相连;所述缓存器从自身所在数据缓存单元输入端连接的数据转换单元接收数据,并输出数据至自身所在数据缓存单元输出端连接的数据转换单元;所述状态存储器分别输出存储状态至自身所在数据缓存单元输出端连接的数据转换单元和输入端连接的数据转换单元。
其中,所述缓存器为先进先出FIFO缓存器。
本发明还公开了一种数据缓存单元的实现方法,该方法包括数据缓存单元接收数据进行缓存,实时监控自身的读写操作,记录自身存储状态并输出。
其中,所述监控读写操作,记录存储状态的方法为当自身缓存的有效数据长度为零时,记录存储状态为空;当自身缓存的有效数据长度非零时,记录存储状态为非空。
其中,所述监控读写操作,记录存储状态的方法为当发生读操作时,如果自身缓存的有效数据长度为零,则记录存储状态为空;当发生写操作时,记录存储状态为非空。
其中,所述数据缓存单元的输入端和输出端分别与芯片仿真平台中的数据转换单元相连;所述数据缓存单元从自身输入端连接的数据转换单元接收数据,并输出数据至自身输出端连接的数据转换单元;所述数据缓存单元分别输出存储状态至输出端连接的数据转换单元和输入端连接的数据转换单元。
由上述方案可以看出,本发明的关键在于数据缓存单元能接收外部数据转换单元的数据进行缓存,记录自身存储状态并输出给自身连接的数据转换单元。
因此,本发明所提供的数据缓存单元及其实现方法,能够保证芯片仿真平台的数据转换单元的数据处理正确性,避免数据丢失、误处理等问题的出现,从而解决了现有基于C/C++等语言的芯片仿真平台存在的关键问题。


图1为本发明数据缓存单元的组成结构示意图;图2为本发明方法一较佳实施例处理流程示意图。
具体实施例方式
下面结合附图及具体实施例对本发明再作进一步详细的说明。
本发明提供了一种数据缓存单元,该数据缓存单元主要应用于芯片仿真平台之中,其用于从外部实体接收数据进行缓存,再输出数据,记录自身存储状态并输出。本发明的数据缓存单元主要包括缓存器、读写探测器和状态存储器三个部分,其通常连接在芯片仿真平台的数据转换单元之间,因此数据缓存单元可以从自身输入端连接的数据转换单元接收数据,向自身输出端连接的数据转换单元输出数据,并向该输入端连接的数据转换单元和输出端连接的数据转换单元分别输出存储状态。其中,缓存器可由先进先出(FIFO)缓存器来实现。
图1为本发明数据缓存单元一较佳实施例组成结构示意图,本实施例的数据缓存单元连接在数据转换单元之间,由于数据缓存单元在数据转换单元之间起到了连接的作用,因此可被称为钉子(PIN),而对于数据转换单元来说,其输入端连接的数据缓存单元可被称为输入PIN。如图1所示,该数据缓存单元包括FIFO缓存器、读写探测器和状态存储器。
FIFO缓存器用于从自身所在数据缓存单元输入端连接的数据转换单元接收数据进行缓存,并输出数据至自身所在数据缓存单元输出端连接的数据转换单元;读写探测器用于监控所述缓存器的读写操作,记录该缓存器的存储状态并输出给所述状态存储器;状态存储器用于从所述读写探测器接收存储状态并分别输出至自身所在数据缓存单元输出端和输入端连接的数据转换单元。
这里,关于数据转换单元、以及由数据转换单元和数据缓存单元构成的数据处理系统的具体实现细节在本申请人的另一篇专利中有详细描述,因此,本文对于数据转换单元的具体实现不再描述。
基于图1所示的数据缓存单元,本发明还提出了一种数据缓存单元的实现方法。图2为本发明方法一较佳实施例处理流程示意图。如图2所示,具体处理包括步骤201当数据缓存单元的输入端有数据输入时,该数据缓存单元就接收数据进行缓存。这里,所述数据来自数据缓存单元输入端连接的数据转换单元,该数据被输入至数据缓存单元中的缓存器进行缓存。
步骤202数据缓存单元的读写探测器将实时监控缓存器的读写操作,并记录其缓存的有效数据长度。当缓存器缓存的有效数据长度为零时,该读写探测器在状态存储器中记录当前存储状态为空;当缓存器缓存的有效数据长度非零时,该读写探测器在状态存储器中记录当前存储状态为非空。
上述实施例的处理机制能基本解决现有的数据转换单元在数据处理过程中出现的数据丢失等问题。但在某些情况下,可能还会出现多个数据转换单元构成的系统不能正常运行。比如数据缓存单元的输入端连接数据转换单元1、而输出端连接数据转换单元2。此时,数据转换单元2应该在判断数据转换单元1已开始本轮运行、且自身已完成上一轮运行时,才可读取数据缓存单元中的数据开始自身的本轮处理。也就是说数据转换单元2从输入端读取的该数据缓存单元的存储状态为非空、而自身输出端连接的数据缓存单元存储状态为空时,才从该输入端连接的数据缓存单元读取数据。如果数据转换单元1在某一轮次处理之后输出的数据长度为零,数据缓存单元就可能记录当前存储状态为空,而此时数据转换单元2是应该开始读取数据进行本轮次处理的,却可能因为数据缓存单元的存储状态为空而不能正常工作,这样,整个数据处理就可能出现问题。
因此,本发明可在以上处理方法的基础之上,对读写探测器作进一步改进该读写探测器实时监控缓存器的读写操作,当有外部实体对缓存器进行写操作时,无论其写入的数据长度是否为零,均在状态存储器中记录存储状态为非空;当有外部实体对缓存器进行读操作时,如果当前缓存器缓存的有效数据长度为零,则在状态存储器中记录存储状态为空,而其它情况下则继续保持存储状态为非空。经过这样的改进,既使数据缓存单元的输入端连接的数据转换单元输出的数据长度为零,也不会影响该数据缓存单元输出端连接的数据转换单元的正常运行,从而进一步保证了各个数据转换单元之间的数据处理准确性。
以上步骤201为读取并缓存数据的处理,而步骤202为记录存储状态的处理,这两个步骤相对独立,本发明并不限定这两个步骤的执行顺序。
综上所述,应用本发明数据缓存单元及其实现方法能够保证芯片仿真平台的数据转换单元的数据处理正确性,避免数据丢失、误处理等问题的出现。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
权利要求
1.一种数据缓存单元,其特征在于,该数据缓存单元包括缓存器,用于从外部接收数据进行缓存并输出;读写探测器,用于监控所述缓存器的读写操作,记录该缓存器的存储状态并输出给所述状态存储器;状态存储器,用于从所述读写探测器接收存储状态并输出。
2.根据权利要求1所述的数据缓存单元,其特征在于,所述读写探测器当所述缓存器缓存的有效数据长度为零时记录存储状态为空,当所述缓存器缓存的有效数据长度非零时记录存储状态为非空。
3.根据权利要求1所述的数据缓存单元,其特征在于,所述读写探测器当所述缓存器发生读操作时,如果该缓存器缓存的有效数据长度为零,则记录存储状态为空;当所述缓存器发生写操作时,记录存储状态为非空。
4.根据权利要求1至3任一项所述的数据缓存单元,其特征在于,所述数据缓存单元的输入端和输出端分别与芯片仿真平台中的数据转换单元相连;所述缓存器从自身所在数据缓存单元输入端连接的数据转换单元接收数据,并输出数据至自身所在数据缓存单元输出端连接的数据转换单元;所述状态存储器分别输出存储状态至自身所在数据缓存单元输出端连接的数据转换单元和输入端连接的数据转换单元。
5.根据权利要求1至3任一项所述的数据缓存单元,其特征在于,所述缓存器为先进先出FIFO缓存器。
6.一种数据缓存单元的实现方法,其特征在于,该方法包括数据缓存单元接收数据进行缓存,实时监控自身的读写操作,记录自身存储状态并输出。
7.根据权利要求6所述的方法,其特征在于,所述监控读写操作,记录存储状态的方法为当自身缓存的有效数据长度为零时记录存储状态为空;当自身缓存的有效数据长度非零时记录存储状态为非空。
8.根据权利要求6所述的方法,其特征在于,所述监控读写操作,记录存储状态的方法为当发生读操作时,如果自身缓存的有效数据长度为零,则记录存储状态为空;当发生写操作时记录存储状态为非空。
9.根据权利要求6至8任一项所述的方法,其特征在于,所述数据缓存单元的输入端和输出端分别与芯片仿真平台中的数据转换单元相连;所述数据缓存单元从自身输入端连接的数据转换单元接收数据,并输出数据至自身输出端连接的数据转换单元;所述数据缓存单元分别输出存储状态至输出端连接的数据转换单元和输入端连接的数据转换单元。
全文摘要
本发明公开了一种数据缓存单元,该数据缓存单元包括缓存器,用于从外部接收数据进行缓存并输出;读写探测器,用于监控所述缓存器的读写操作,记录该缓存器的存储状态并输出给所述状态存储器;状态存储器,用于从所述读写探测器接收存储状态并输出。本发明还公开了一种方法,应用本发明能保证芯片仿真平台的数据处理准确性。
文档编号G06F11/00GK1794243SQ20051002308
公开日2006年6月28日 申请日期2005年12月26日 优先权日2005年12月26日
发明者游明琦 申请人:北京中星微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1