CN1794243A - 一种数据缓存单元及其实现方法 - Google Patents

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

Info

Publication number
CN1794243A
CN1794243A CN 200510023082 CN200510023082A CN1794243A CN 1794243 A CN1794243 A CN 1794243A CN 200510023082 CN200510023082 CN 200510023082 CN 200510023082 A CN200510023082 A CN 200510023082A CN 1794243 A CN1794243 A CN 1794243A
Authority
CN
China
Prior art keywords
data
buffer
storage unit
conversion unit
date conversion
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.)
Granted
Application number
CN 200510023082
Other languages
English (en)
Other versions
CN100524323C (zh
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.)
Vimicro Corp
Original Assignee
Vimicro Corp
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 Vimicro Corp filed Critical Vimicro Corp
Priority to CNB2005100230822A priority Critical patent/CN100524323C/zh
Publication of CN1794243A publication Critical patent/CN1794243A/zh
Application granted granted Critical
Publication of CN100524323C publication Critical patent/CN100524323C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种数据缓存单元,该数据缓存单元包括:缓存器,用于从外部接收数据进行缓存并输出;读写探测器,用于监控所述缓存器的读写操作,记录该缓存器的存储状态并输出给所述状态存储器;状态存储器,用于从所述读写探测器接收存储状态并输出。本发明还公开了一种方法,应用本发明能保证芯片仿真平台的数据处理准确性。

Description

一种数据缓存单元及其实现方法
技术领域
本发明涉及芯片仿真技术,特别涉及应用于芯片仿真平台中的一种数据缓存单元及其实现方法。
背景技术
目前,芯片已在电子技术领域发挥着重要作用,大部分电子设备的运行都依赖于其内部芯片的实现。芯片的实现包括两个阶段:芯片设计和芯片制造。
所谓芯片设计包括:算法实现和外围逻辑电路设计。其中,算法是芯片的灵魂,其用于描述芯片所实现的功能,所谓算法实现包括:算法研究、在芯片中实现研究得到的算法等等;所谓外围逻辑电路指为实现芯片功能而设计的辅助电路,比如:电源的连通、内部模块的握手等。之后,要在芯片设计的基础之上进行芯片制造,而芯片制造的成本非常高,每次投片的成本通常在几十万美元左右。芯片制造的主要步骤就是要依据芯片设计结果进行流片。但是,芯片一经流片,其内部的逻辑就不能再被改变,如果芯片设计出现问题,就只能重新流片,这将给公司带来巨大损失。
由于芯片流片的成本非常高,这就对芯片设计提出了很高要求,如何确保芯片设计的正确性,是所有芯片公司都要面对的重要课题。在芯片设计的过程中,通常需要构建芯片仿真软件平台来对芯片功能的正确性进行验证。目前,芯片仿真软件平台主要使用的硬件描述语言有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为记录存储状态的处理,这两个步骤相对独立,本发明并不限定这两个步骤的执行顺序。
综上所述,应用本发明数据缓存单元及其实现方法能够保证芯片仿真平台的数据转换单元的数据处理正确性,避免数据丢失、误处理等问题的出现。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (9)

1、一种数据缓存单元,其特征在于,该数据缓存单元包括:
缓存器,用于从外部接收数据进行缓存并输出;
读写探测器,用于监控所述缓存器的读写操作,记录该缓存器的存储状态并输出给所述状态存储器;
状态存储器,用于从所述读写探测器接收存储状态并输出。
2、根据权利要求1所述的数据缓存单元,其特征在于,所述读写探测器当所述缓存器缓存的有效数据长度为零时记录存储状态为空,当所述缓存器缓存的有效数据长度非零时记录存储状态为非空。
3、根据权利要求1所述的数据缓存单元,其特征在于,所述读写探测器当所述缓存器发生读操作时,如果该缓存器缓存的有效数据长度为零,则记录存储状态为空;当所述缓存器发生写操作时,记录存储状态为非空。
4、根据权利要求1至3任一项所述的数据缓存单元,其特征在于,所述数据缓存单元的输入端和输出端分别与芯片仿真平台中的数据转换单元相连;
所述缓存器从自身所在数据缓存单元输入端连接的数据转换单元接收数据,并输出数据至自身所在数据缓存单元输出端连接的数据转换单元;
所述状态存储器分别输出存储状态至自身所在数据缓存单元输出端连接的数据转换单元和输入端连接的数据转换单元。
5、根据权利要求1至3任一项所述的数据缓存单元,其特征在于,所述缓存器为先进先出FIFO缓存器。
6、一种数据缓存单元的实现方法,其特征在于,该方法包括:
数据缓存单元接收数据进行缓存,实时监控自身的读写操作,记录自身存储状态并输出。
7、根据权利要求6所述的方法,其特征在于,所述监控读写操作,记录存储状态的方法为:
当自身缓存的有效数据长度为零时记录存储状态为空;
当自身缓存的有效数据长度非零时记录存储状态为非空。
8、根据权利要求6所述的方法,其特征在于,所述监控读写操作,记录存储状态的方法为:
当发生读操作时,如果自身缓存的有效数据长度为零,则记录存储状态为空;
当发生写操作时记录存储状态为非空。
9、根据权利要求6至8任一项所述的方法,其特征在于,所述数据缓存单元的输入端和输出端分别与芯片仿真平台中的数据转换单元相连;
所述数据缓存单元从自身输入端连接的数据转换单元接收数据,并输出数据至自身输出端连接的数据转换单元;
所述数据缓存单元分别输出存储状态至输出端连接的数据转换单元和输入端连接的数据转换单元。
CNB2005100230822A 2005-12-26 2005-12-26 一种数据缓存单元及其实现方法 Expired - Fee Related CN100524323C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2005100230822A CN100524323C (zh) 2005-12-26 2005-12-26 一种数据缓存单元及其实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2005100230822A CN100524323C (zh) 2005-12-26 2005-12-26 一种数据缓存单元及其实现方法

Publications (2)

Publication Number Publication Date
CN1794243A true CN1794243A (zh) 2006-06-28
CN100524323C CN100524323C (zh) 2009-08-05

Family

ID=36805677

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005100230822A Expired - Fee Related CN100524323C (zh) 2005-12-26 2005-12-26 一种数据缓存单元及其实现方法

Country Status (1)

Country Link
CN (1) CN100524323C (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101430663B (zh) * 2007-11-09 2011-11-16 上海奇码数字信息有限公司 缓存管理单元和缓存管理方法
CN102609217A (zh) * 2012-01-13 2012-07-25 广州从兴电子开发有限公司 一种io设备的高速存储方法及系统
WO2016023236A1 (en) * 2014-08-15 2016-02-18 Microsoft Technology Licensing, Llc Flushing in file system

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101430663B (zh) * 2007-11-09 2011-11-16 上海奇码数字信息有限公司 缓存管理单元和缓存管理方法
CN102609217A (zh) * 2012-01-13 2012-07-25 广州从兴电子开发有限公司 一种io设备的高速存储方法及系统
CN102609217B (zh) * 2012-01-13 2015-04-29 从兴技术有限公司 一种io设备的高速存储方法及系统
WO2016023236A1 (en) * 2014-08-15 2016-02-18 Microsoft Technology Licensing, Llc Flushing in file system
US10579523B2 (en) 2014-08-15 2020-03-03 Microsoft Technology Licensing, Llc Flushing in file system

Also Published As

Publication number Publication date
CN100524323C (zh) 2009-08-05

Similar Documents

Publication Publication Date Title
US20080260297A1 (en) Heterogeneous image processing system
US7861070B2 (en) Trace compression method for debug and trace interface wherein differences of register contents between logically adjacent registers are packed and increases of program counter addresses are categorized
CN1801155A (zh) 合并硬件设计语言的原始档案与查验资料档案的方法
CN115686655B (zh) 用于gpu ip验证的联合仿真系统
CN115719047B (zh) 基于波形gpu联合仿真系统
CN103455460A (zh) 一种验证高级微控制器总线接口的装置
CN102480467A (zh) 一种基于网络通讯协议的soc软硬件协同仿真验证方法
CN115688676A (zh) 基于tlm的gpu联合仿真系统
CN1560743A (zh) 多媒体处理器协同仿真验证平台
CN100385787C (zh) 基于dsp芯片的励磁控制器通讯系统及其usb协议实现的方法
CN1794243A (zh) 一种数据缓存单元及其实现方法
US20190384598A1 (en) Event-driven design simulation
CN101329702A (zh) 一种满足SystemC语法的多核处理器的先进先出队列单元组
CN115618800B (zh) 基于dpi的gpu联合仿真系统
US11176018B1 (en) Inline hardware compression subsystem for emulation trace data
CN101034351A (zh) 一种基于构件的模拟器自动生成方法
Joyce et al. Exploring storage bottlenecks in Linux-based embedded systems
Saidi et al. Full-system critical path analysis
CN1848093A (zh) 基本输入输出系统中高级配置和电源接口模块的调试方法
CN1794244A (zh) 一种数据转换单元及其实现方法以及数据接收模块
CN113806431A (zh) 一种传输仿真数据的方法、电子系统及存储介质
CN2850141Y (zh) 基于dsp芯片的发电机励磁控制器的usb通讯装置
Anderson Container shipping: a uniform interface for fast, efficient, high-bandwidth I/O
CN1304947C (zh) 存储器模拟器的转接装置
CN100373387C (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
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090805

Termination date: 20111226