CN108572930A - 缓存控制方法及装置 - Google Patents

缓存控制方法及装置 Download PDF

Info

Publication number
CN108572930A
CN108572930A CN201710148861.8A CN201710148861A CN108572930A CN 108572930 A CN108572930 A CN 108572930A CN 201710148861 A CN201710148861 A CN 201710148861A CN 108572930 A CN108572930 A CN 108572930A
Authority
CN
China
Prior art keywords
buffer unit
data
buffer
cached
available storage
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
CN201710148861.8A
Other languages
English (en)
Other versions
CN108572930B (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.)
Aisino Corp
Original Assignee
Aisino 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 Aisino Corp filed Critical Aisino Corp
Priority to CN201710148861.8A priority Critical patent/CN108572930B/zh
Publication of CN108572930A publication Critical patent/CN108572930A/zh
Application granted granted Critical
Publication of CN108572930B publication Critical patent/CN108572930B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers

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

本发明提供一种缓存控制方法及装置,属于计算机技术领域。本发明提供的缓存控制方法及装置,先获取双口RAM的第一缓存单元的第一状态信息和双口RAM的第二缓存单元的第二状态信息,接着通过第一缓存单元的第一状态信息和第二缓存单元的第二状态信息来确定使采用第一缓存单元作为数据待缓存的缓存单元、还是采用第二缓存单元作为数据待缓存的缓存单元,或是同时采用第一缓存单元和第二缓存单元作为数据待缓存的缓存单元;本发明提供的缓存控制方法及装置能够实现快速地确定缓存单元,进而加快数据缓存的速度。

Description

缓存控制方法及装置
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种缓存控制方法及装置。
背景技术
随着信息量不断增加,对信息采集和处理系统提出了更高的要求,在实际的一些领域,有一些数据采集过程要求有很长时间、大批量的数据吞吐能力,则对应地要求数据能够实时存储。
现有技术当中,由于双口RAM具有良好的实时数据缓存功能,常利用双口RAM(Random Access Memory,随机存取存储器)来进行实时数据缓存,双口RAM包括第一缓存单元和第二缓存单元。当利用双口RAM来缓存所采集的数据时,具体的工作原理是:工作开始时,数据采集装置首先将数据写入第一缓存单元中,在数据采集装置开始把数据写入第二缓存单元的同时,用户程序可以根据自身需要取出第一缓存单元中的数据做特定的处理。当第二缓存单元被写满后,数据采集装置回到第一缓存单元的起始处,以覆盖旧数据的方式,把新数据写入第一缓存单元中;与此同时用户程序取出第二缓存单元中的数据。整个数据采集处理过程可以如此不断地循环进行下去。
尽管双口RAM具有良好的实时数据缓存功能,然而双口RAM不能根据两个第一缓存单元和第二缓存单元的存储状态来选择先写入哪个缓存单元,在一定的程度上对数据缓存的速度有一定的影响。
发明内容
有鉴于此,本发明实施例所解决的技术问题之一在于提供一种缓存控制方法及装置,用以克服现有技术中不能根据双口RAM中的两个第一缓存单元和第二缓存单元的存储状态来选择先写入哪个缓存单元的缺陷,达到提高数据缓存的速度的效果。
本发明第一方面提供一种缓存控制方法,包括:
获取双口RAM的状态信息,所述双口RAM包括第一缓存单元和第二缓存单元,所述双口RAM的状态信息包括所述第一缓存单元的第一状态信息以及所述第二缓存单元的第二状态信息;
根据所述第一缓存单元的第一状态信息以及所述第二缓存单元的第二状态信息从所述第一缓存单元和所述第二缓存单元中确定数据待缓存的缓存单元。
可选地,所述根据所述第一缓存单元的第一状态信息以及所述第二缓存单元的第二状态信息从所述第一缓存单元和所述第二缓存单元中确定数据待缓存的缓存单元,包括:
所述第一缓存单元的第一状态信息包含所述第一缓存单元的可用存储容量,所述第二缓存单元的第二状态信息包含所述第二缓存单元的可用存储容量;
判断所述第一缓存单元的可用存储容量和所述第二缓存单元的可用存储容量是否大于预设阈值,根据判断结果确定数据待缓存的缓存单元。
可选地,若判断结果为所述第一缓存单元的可用存储容量大于预设阈值,则确定所述第一缓存单元为所述数据待缓存的缓存单元;
若判断结果为所述第二缓存单元的可用存储容量大于预设阈值,则确定所述第二缓存单元为所述数据待缓存的缓存单元;
若判断结果为所述第一缓存单元的可用存储容量和所述第二缓存单元的可用存储容量均大于预设阈值,则对所述第一缓存单元和所述第二缓存单元进行仲裁以确定所述数据待缓存的缓存单元。
可选地,还包括:对待缓存的数据进行解析以获取数据信息,所述数据信息包含数据容量;
根据数据容量、所述第一缓存单元的可用存储容量、所述第二缓存单元的可用存储容量确定所述数据待缓存的缓存单元的个数。
可选地,若所述数据容量大于所述第一缓存单元的可用存储容量和所述第二缓存单元的可用存储容量的容量总和,对所述待缓存的数据进行分块处理。
可选地,还包括:触发所述缓存单元发起写入请求,所述写入请求包含缓存地址;触发前向终端响应所述写入请求,并控制前向终端根据所述写入请求中的所述缓存地址将所述前向终端中的所述待缓存的数据写入到所述缓存单元的所述缓存地址中;其中,所述前向终端在响应所述写入请求之前,所述前向终端还用于采集所述待缓存的数据。
可选地,创建并存储缓存的数据和所述缓存地址的映射关系。
可选地,还包括:根据所述第一缓存单元的第一状态信息和所述第二缓存单元的第二状态信息确定待读取的所述缓存单元。
可选地,若所述第一缓存单元的第一状态信息标识所述第一缓存单元为写入状态,则确定第二缓存单元为所述待读取的所述缓存单元;
若所述第二缓存单元的第二状态信息标识所述第二缓存单元为写入状态,则确定第一缓存单元为所述待读取的所述缓存单元。
可选地,触发所述待读取的所述缓存单元发起读取请求,所述读取请求包含读取地址;
触发所述后向终端响应所述读取请求,并控制所述后向终端根据所述读取请求中的所述读取地址读取所述待读取的所述缓存单元中的所述缓存的数据;其中,所述后向终端在响应所述读取请求之后,所述后向终端还用于处理所述缓存的数据。可选地,根据所述映射关系确定所述读取地址。
本发明第二方面提供一种缓存控制装置,包括:
获取模块,用于获取双口RAM的状态信息,所述双口RAM包括第一缓存单元和第二缓存单元,所述双口RAM的状态信息包括所述第一缓存单元的第一状态信息以及所述第二缓存单元的第二状态信息;
确定模块,用于根据所述第一缓存单元的第一状态信息以及所述第二缓存单元的第二状态信息从所述第一缓存单元和所述第二缓存单元中确定对待缓存的数据进行的缓存的缓存单元。
可选地,所述第一缓存单元的第一状态信息包含所述第一缓存单元的可用存储容量,所述第二缓存单元的第二状态信息包含所述第二缓存单元的可用存储容量;所述确定模块包括:判断子模块和确定子模块;
所述判断子模块用于判断所述第一缓存单元的可用存储容量和所述第二缓存单元的可用存储容量是否大于预设阈值;
所述确定子模块用于根据判断结果确定数据待缓存的缓存单元。
可选地,所述确定子模块,具体用于若判断结果为所述第一缓存单元的可用存储容量大于预设阈值,则确定所述第一缓存单元为所述数据待缓存的缓存单元;
若判断结果为所述第二缓存单元的可用存储容量大于预设阈值,则确定所述第二缓存单元为所述数据待缓存的缓存单元;
若判断结果为所述第一缓存单元的可用存储容量和所述第二缓存单元的可用存储容量均大于预设阈值,则对所述第一缓存单元和所述第二缓存单元进行仲裁以确定所述数据待缓存的缓存单元。
本发明提供的缓存控制方法及装置,先获取双口RAM的第一缓存单元的第一状态信息和双口RAM的第二缓存单元的第二状态信息,接着通过第一缓存单元的第一状态信息和第二缓存单元的第二状态信息来确定是采用第一缓存单元作为数据待缓存的缓存单元、还是采用第二缓存单元作为数据待缓存的缓存单元,或是同时采用第一缓存单元和第二缓存单元作为数据待缓存的缓存单元;本发明提供的缓存控制方法及装置能够实现快速地确定数据待缓存的缓存单元,进而加快数据缓存的速度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的缓存控制方法的流程图。
图2是本发明的示例的双口RAM的结构示意图。
图3为本发明又一实施例提供的缓存控制方法的流程图。
图4为本发明的示例的缓存控制系统的结构示意图。
图5为本发明另一实施例提供的缓存控制方法的流程图。
图6为本发明再一实施例提供的缓存控制方法的流程图。
图7为本发明一实施例提供的缓存控制装置的结构示意图。
具体实施方式
为了使本领域的人员更好地理解本发明实施例中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明实施例一部分实施例,而不是全部的实施例。基于本发明实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本发明实施例保护的范围。
下面结合本发明实施例附图进一步说明本发明实施例具体实现。
实施例一
图1为本发明一实施例提供的缓存控制方法的流程图。该方法由缓存控制装置执行,该装置可以通过硬件、软件或硬件和软件相结合的方式实现。如图1所示,本实施例的缓存控制方法,包括:
步骤S101、获取双口RAM的状态信息,双口RAM包括第一缓存单元和第二缓存单元,双口RAM的状态信息包括第一缓存单元的第一状态信息以及第二缓存单元的第二状态信息。
步骤S102、根据第一缓存单元的第一状态信息以及第二缓存单元的第二状态信息从第一缓存单元和第二缓存单元中确定数据待缓存的缓存单元。
具体地,双口RAM(Random Access Memory,随机存取存储器)是一个特殊的存储器,具有两套完全独立的数据线、地址线和读写控制线,并允许两个独立的系统同时对双口RAM进行随机性的访问,即共享式多端口存储器,读写可同时进行。
在一种可能的实现方式之中,双口RAM包括第一缓存单元和第二缓存单元。其中,第一缓存单元和第二缓存单元各自拥有自身的存储单元,即第一缓存单元和第二缓存控制单元不共用存储单元。举例来说,由于第一缓存单元和第二缓存控制单元各自拥有自身的存储单元,这样当对第一缓存单元进行读/写操作时,不影响对第二缓存单元进行读/写操作。
本实施例通过获取双口RAM的状态信息来实现在第一缓存单元和第二缓存单元之间如何确定缓存单元。在一种可能的实现方式之中,双口RAM的状态信息包括存储状态、读/写状态,其中,存储状态包括可用存储容量、空闲的存储地址等;读/写状态用来识别第一缓存单元和第二缓存单元的读/写情况。进一步地,在选定缓存单元之后,所获取的双口RAM的状态信息还包括片选状态,通过片选状态用来识别第一缓存单元和第二缓存单元是否已被选中。
作为一示例,可以通过缓存控制装置对缓存单元的存储容量管理来实时监控第一缓存单元和第二缓存单元的存储状态。缓存控制装置中建立有第一缓存单元的存储容量管理数据库和第二缓存单元的存储容量管理数据库,存储容量管理数据库记录有存储地址和缓存的数据的映射关系。
举例来说,当已确定第一缓存单元作为待缓存的数据的缓存单元时,缓存控制装置先去访问第一缓存单元的存储容量管理数据库以获取空闲的存储地址,所获取的空闲的存储地址即是用来存储待缓存的数据的缓存地址。接着缓存控制装置触发第一缓存单元发起写入请求,写入请求包含缓存地址。当第一缓存单元发起写入请求之后,接着缓存控制装置触发前向终端响应写入请求,同时缓存控制装置会控制前向终端根据写入请求中的缓存地址将前向终端中的待缓存的数据写入到第一缓存单元的缓存地址中。当前向终端中的待缓存的数据写入所获取的空闲的存储地址之后,接着缓存控制装置更新第一缓存单元的存储容量管理数据库以记录缓存的数据和缓存地址的映射关系。
举例来说,当已确定第一缓存单元为待读取的缓存单元时,缓存控制装置先去访问第一缓存单元的存储容量管理数据库以获取缓存的数据的缓存地址,所获取的缓存地址即是用来读取缓存的数据的读取地址。具体地,当确定要缓存的数据时,缓存控制装置通过访问第一缓存单元的存储容量管理数据库中的映射关系确定读取地址。接着,缓存控制装置触发第一缓存单元发起读取请求,读取请求包括读取地址。当第一缓存单元发起读取请求之后,接着缓存控制装置触发后向终端响应读取请求,同时缓存控制装置会控制后向终端根据读取请求中的读取地址读取第一缓存单元中的缓存的数据并将读取的数据发送到后向终端。进一步地,在读取缓存的数据之后,清空第一缓存单元中的读取地址所映射的缓存的数据以使读取地址重新空闲,进而可以提高第一缓存单元的可用存储容量。
本实施例通过建立存储容量管理数据库能够实现方便数据的缓存和读取,进一步地,还可以简单快速地判断缓存单元的可用存储容量和空闲的存储地址,以实现掌控双口RAM的存储状态。
图2是本发明的示例的双口RAM的结构示意图。作为一示例,双口RAM包括第一缓存单元和第二缓存单元,其中,第一缓存单元、第二缓存单元均可以看做是一个RAM,即双口RAM可以看做是由两个RAM组成。
如图2所示,第一缓存单元的器件引脚分别为:CE-1(第一片选控制信号)、R/W-1(第一读写控制信号)、OE-1(第一使能控制信号)、A0-1~A10-1(第一地址总线)、I/O0-1~I/O7-1(第一输入/输出数据总线)。
如图2所示,第二缓存单元的器件引脚分别为:CE-2(第二片选控制信号)、R/W-2(第二读写控制信号)、OE-2(第二使能控制信号)、A0-2~A10-2(第二地址总线)、I/O0-2~I/O7-2(第二输入/输出数据总线)。
如图2所示,还包括VCC引脚和GND引脚。其中,VCC引脚用于接工作电源,GND引脚用于工作接地。通过VCC引脚接工作电源、GND引脚接地以实现双口RAM的正常工作。
其中,引脚CE-1(第一片选控制信号)用于选择第一缓存单元是否为缓存单元,同理引脚CE-2(第二片选控制信号)用于选择第二缓存单元是否为缓存单元。举例来说,当引脚CE-1出现下降沿,选择第一缓存单元为缓存单元,否则不选择第一缓存单元为缓存单元;同样地,当引脚CE-2出现下降沿,选择第二缓存单元为缓存单元,否则不选择第二缓存单元为缓存单元。需要说明的是,本实施例通过识别引脚CE-1或引脚CE-2是否出现下降沿来确定是否为缓存单元,但并不限于此。
其中,引脚OE-1(第一使能控制信号)用于控制是否启动第一缓存单元作为缓存单元,引脚OE-2(第二使能控制信号)用于控制是否启动第二缓存单元作为缓存单元。举例来说,当引脚OE-1为高电平时,启动第一缓存单元为缓存单元,否则不启动第一缓存单元为缓存单元;同样地,当引脚OE-2为高电平时,启动第二缓存单元为缓存单元,否则不启动第二缓存单元为缓存单元。需要说明的是,本实施例通过识别引脚OE-1或引脚OE-2是否为高电平确定是否启动缓存单元,但并不限于此。
其中,引脚R/W-1(第一读/写控制信号)用于控制对第一缓存单元的读写操作,引脚R/W-2(第二读/写控制信号)用于控制对第二缓存单元的读写操作。举例来说,当引脚R/W-1出现高电平时,对第一缓存单元进行读操作,当引脚R/W-1出现低电平时,对第一缓存单元进行写操作;同样地,当引脚R/W-2出现高电平时,对第二缓存单元进行读操作,当引脚R/W-2出现低电平时,对第二缓存单元进行写操作。需要说明的是,本实施例通过识别引脚R/W-1或引脚R/W-2的状态以控制对缓存单元的读写操作,但不限于此。
其中,A0-1~A10-1(第一地址总线)表示第一缓存单元具有10根地址总线且第一缓存单元的寻址范围为210、A0-2~A10-2(第二地址总线)表示第二缓存单元具有10根地址总线且第二缓存单元的寻址范围为210。需要说明的是,本实施例的地址总线还可以进行扩展,比如16根地址总线,寻址范围为216,但并不限于此。
其中,I/O0-1~I/O7-1(第一输入/输出数据总线)表示第一缓存单元具有8根数据总线,I/O0-2~I/O7-2(第二输入/输出数据总线)表示第二缓存单元具有8根数据总线。需要说明的是,本实施例的数据总线还可以进行扩展,但并不限于此。
更为具体的举例说明,当双口RAM中的CE-1引脚出现下降沿,OE-1引脚的状态为高电平且R/W-1引脚的状态为高电平时,这时可以对第一缓存单元进行读操作;当双口RAM中的CE-1引脚出现下降沿,OE-1引脚的状态为高电平且R/W-1引脚的状态为低电平时,这时可以对第一缓存单元进行写操作。同样地,当双口RAM中的CE-2引脚出现下降沿,OE-2引脚的状态为高电平且R/W-2引脚的状态为高电平时,这时可以对第二缓存单元进行读操作;当双口RAM中的CE-2引脚出现下降沿,OE-2引脚的状态为高电平且R/W-2引脚的状态为低电平时,这时可以对第二缓存单元进行写操作。
作为一示例,可以通过缓存控制装置控制和识别双口RAM的引脚状态来实现管理双口RAM的读/写状态、片选状态等。具体来说,缓存控制装置可以对双口RAM的引脚置1或置0以控制双口RAM相应的引脚为高电平或低电平,同时存储双口RAM的引脚状态以方便后续识别双口RAM的引脚状态,进而实现管理双口RAM的读/写状态、片选状态等。
本实施例提供的缓存控制方法,先获取双口RAM的第一缓存单元的第一状态信息和双口RAM的第二缓存单元的第二状态信息,接着通过第一缓存单元的第一状态信息和第二缓存单元的第二状态信息来确定是采用第一缓存单元作为数据待缓存的缓存单元、还是采用第二缓存单元作为数据待缓存的缓存单元,或是同时采用第一缓存单元和第二缓存单元作为数据待缓存的缓存单元;本实施例提供的缓存控制方法能够实现快速地确定数据待缓存的缓存单元,进而加快数据缓存的速度。
实施例二
图3为本发明又一实施例提供的缓存控制方法的流程图。该方法由缓存控制装置执行,该装置可以通过硬件、软件或硬件和软件相结合的方式实现。如图3所示,本实施例的缓存控制方法,包括:
步骤S201、获取双口RAM的状态信息,双口RAM包括第一缓存单元和第二缓存单元,双口RAM的状态信息包括第一缓存单元的第一状态信息以及第二缓存单元的第二状态信息。
本实施例中的步骤S201与上述实施例一的步骤S101的实现方式相同,此处不再赘述。
步骤S202、第一缓存单元的第一状态信息包含第一缓存单元的可用存储容量,第二缓存单元的第二状态信息包含第二缓存单元的可用存储容量;
判断第一缓存单元的可用存储容量和第二缓存单元的可用存储容量是否大于预设阈值,根据判断结果确定数据待缓存的缓存单元。
更为具体地举例来说,若判断结果为第一缓存单元的可用存储容量大于预设阈值,则确定第一缓存单元为数据待缓存的缓存单元。例如说,预设阈值为40%,当获取的第一状态信息显示为:可用存储容量为80%,这时,确定第一缓存单元为数据待缓存的缓存单元;反之,当获取的第一状态信息显示为:可用存储容量为30%,这时,不选取第一缓存单元为数据待缓存的缓存单元。
若判断结果为第二缓存单元的可用存储容量大于预设阈值,则确定第二缓存单元为数据待缓存的缓存单元。例如说,预设阈值为40%,当获取的第二状态信息显示为:可用存储容量为80%,这时,确定第二缓存单元为数据待缓存的缓存单元;反之,当获取的第二状态信息显示为:可用存储容量为30%,这时,不选取第二缓存单元为数据待缓存的缓存单元。
若判断结果为第一缓存单元的可用存储容量和第二缓存单元的可用存储容量均大于预设阈值,则对第一缓存单元和第二缓存单元进行仲裁以确定数据待缓存的缓存单元。例如说,预设阈值为40%,当获取的第一状态信息显示为:可用存储容量为80%,当获取的第二状态信息显示为:可用存储容量为70%,这时第一缓存单元和第二缓存单元均可作为数据待缓存的缓存单元。本实施例为了高效地使用缓存单元,当出现第一缓存单元的可用存储容量和第二缓存单元的可用存储容量都较大时,本实施例进行仲裁来确定第一缓存单元还是第二缓存单元为数据待缓存的缓存单元。举例来说,仲裁的规则可以是,优选第一缓存单元为数据待缓存的缓存单元,或是对第一缓存单元或第二缓存单元进行大小判断,优选可用存储容量大的缓存单元为数据待缓存的缓存单元,但并不以此为限。
本实施例提供的缓存控制方法,通过获取第一缓存单元和第二缓存单元的可用存储容量的情况,并判断可用存储容量是否大于预设阈值来确定数据待缓存的缓存单元,能够进一步地实现简单快速地确定缓存单元,进而加快数据缓存的速度。
进一步地,本实施例的缓存控制方法还可以包括:
步骤S203、对待缓存的数据进行解析以获取数据信息,数据信息包含数据容量;根据数据容量、第一缓存单元的可用存储容量、第二缓存单元的可用存储容量确定数据待缓存的缓存单元的个数。
需要说明的是,步骤S203在步骤S201之后、在步骤S202之前执行。
具体地,本实施例通过获取待缓存的数据的数据容量,并根据数据容量、第一缓存单元的可用存储容量、第二缓存单元的可用存储容量确定数据待缓存的缓存单元的个数,能够进一步地加快数据缓存的速度。举例来说,本实施例通过预先确定缓存单元的个数,当遇到获取待缓存的数据的数据容量较大时,同时触发第一缓存单元、第二缓存单元启动缓存工作,以进一步地加快数据缓存的速度。
进一步地,本实施例的缓存控制方法还可以包括:
步骤S204、若数据容量大于第一缓存单元的可用存储容量和第二缓存单元的可用存储容量的容量总和,对待缓存的数据进行分块处理。
具体地,若待缓存的数据的数据容量大到超过第一缓存单元的可用存储容量和第二缓存单元的可用存储容量的容量总和时,本实施对待缓存的数据进行分块处理,后续将分块的每一部分的待缓存的数据依次缓存到第一缓存单元或第二缓存单元中,以实现提高双口RAM的数据缓存的效率。
实施例三
图4为本发明的示例的缓存控制系统的结构示意图。作为一示例,如图4所示,本实施例缓存控制系统包括:前向终端、模数转换器(Analog to Digital Converter,ADC)、缓存控制装置、双口RAM、后向终端。
其中,前向终端负责采集待缓存的数据,如各类传感器、具有数据采集输出功能的控制器、或是I/O装置(输入/输出装置)等。
其中,模数转换器主要负责完成模拟信号到数字信号的转换,以便于后续的数据处理。当然,在将待缓存的数据进行数模转换之前,可以对采集的待缓存的数据进行如滤波、放大等预处理以提高待缓存的数据的稳定性等。
其中,缓存控制装置用于执行如图1或图3所示实施例提供的缓存控制方法的技术方案,主要控制双口RAM的读写操作。
其中,双口RAM是待缓存的数据的缓存单元。
其中,后向终端主要负责对缓存的数据进行数据处理,如后向终端可为DSP(Digital Signal Processing,数字信号处理器)、嵌入式处理器、或者FPGA(Field-Programmable Gate Array,现场可编程门阵列)等处理器。
进一步地,在双口RAM和后向终端的中间缓存控制系统还可以设置有SDRAM(Synchronous Dynamic Random Access Memory,同步动态随机存储器)。SDRAM是一种高速CMOS和大容量存储单元,当双口RAM中的第一缓存单元或第二缓存单元的存储空间写满后,通过缓存控制装置触发双口RAM向SDRAM发送读取请求,SDRAM响应读取请求并读取第一缓存单元或第二缓存单元中的缓存的数据,同时存入自身的存储单元中。此外,后向终端可以直接访问SDRAM来调取更多的缓存的数据进行数据处理,从而加快缓存的数据的处理速度。
在一种可能的实现方式中,缓存控制系统还包括接口电路,主要是完成不同装置之间的电平转换。具体举例来说,若缓存控制系统的双口RAM直接连接后向终端,那么接口电路设置在双口RAM和后向终端之间以完成双口RAM和后向终端之间的电平转换。若缓存控制系统在双口RAM与后向终端之间设置有SDRAM,则在双口RAM与SDRAM之间设置一个接口电路,在SDRAM和后向终端之间设置一个接口电路。当然,接口电路的设置根据实际情况而定,不限于举例来说。
实施例四
图5为本发明又一实施例提供的缓存控制方法的流程图。该方法由缓存控制装置执行,该装置可以通过硬件、软件或硬件和软件相结合的方式实现。本实施例是在上述实施例的基础上的补充说明。在上述实施例确定缓存单元之后,如图5所示,本实施例的缓存控制方法,还包括:
步骤S301、触发缓存单元发起写入请求,写入请求包含缓存地址。
步骤S302、触发前向终端响应写入请求,并控制前向终端根据写入请求中的缓存地址将前向终端中的待缓存的数据写入到缓存单元的缓存地址中;其中,所述前向终端在响应所述写入请求之前,所述前向终端还用于采集所述待缓存的数据。
具体举例来说,当按照图1或图3所示的实施例提供的缓存控制方法确定缓存单元之后,接着缓存控制装置会访问存储容量管理数据库以获取空闲的存储地址,该空闲的存储地址即是缓存地址。之后,缓存控制装置会触发缓存单元向前向终端发起写入请求,写入请求所包含的缓存地址。然后,前向终端响应写入请求,同时缓存控制装置控制前向终端根据写入请求中的缓存地址将前向终端中的待缓存的数据写入到缓存单元的缓存地址中以完成数据缓存的工作。
可选地,建立缓存的数据和缓存地址的映射关系。举例来说,缓存控制装置中建立有第一缓存单元的存储容量管理数据库和第二缓存单元的存储容量管理数据库,存储容量管理数据库记录有缓存的数据和缓存地址的映射关系。
本实施例提供的缓存控制方法,在确定缓存单元之后,先触发缓存单元发起包含缓存地址的写入请求,接着触发前向终端响应写入请求,同时控制前向终端根据写入请求中的缓存地址将前向终端中的待缓存的数据写入到缓存单元的缓存地址中以准确地完成数据的缓存。
实施例五
图6为本发明再一实施例提供的缓存控制方法的流程图。该方法由缓存控制装置执行,该装置可以通过硬件、软件或硬件和软件相结合的方式实现。如图6所示,本实施例的缓存控制方法,还包括:
步骤401、根据所述第一缓存单元的第一状态信息和所述第二缓存单元的第二状态信息确定待读取的所述缓存单元。
步骤402、若所述第一缓存单元的第一状态信息标识所述第一缓存单元为写入状态,则确定第二缓存单元为所述待读取的所述缓存单元;若所述第二缓存单元的第二状态信息标识所述第二缓存单元为写入状态,则确定第一缓存单元为所述待读取的所述缓存单元。
具体地,根据上述实施例的说明可知,缓存控制装置可以对缓存单元的存储容量进行管理,并能实现判断缓存单元的可用存储容量,同时还能通过识别双口RAM的引脚状态判断第一缓存单元还是第二缓存单元的读写状态。
本实施例为了提升数据缓存的效率,通过识别第一缓存单元和第二缓存单元的读写状态确定待读取的缓存单元。具体地,当第一缓存单元为写入状态时,可以选择读取第二缓存单元中所存储的缓存的数据;当第二缓存单元为写入状态时,可以选择读取第一缓存单元中所存储的缓存的数据;当第一缓存单元和第二缓存单元都为写入状态时,可以暂缓读取缓存的数据的操作,等待第一缓存单元或第二缓存单元中出现非写入状态时,进行读取缓存的数据的操作。
步骤403、触发待读取的缓存单元发起读取请求,读取请求包含读取地址。
步骤404、触发后向终端响应读取请求,并控制后向终端根据读取请求中的读取地址读取待读取的缓存单元中的缓存的数据;其中,所述后向终端在响应所述读取请求之后,所述后向终端还用于处理所述缓存的数据。
举例来说,在确定第一缓存单元为待读取的缓存单元之后,同时在确定要读取的缓存的数据之后,可以根据映射关系确定读取地址;接着缓存控制装置触发第一缓存单元发起包含读取地址的读取请求,紧接着缓存控制装置触发后向终端响应读取请求,同时控制后向终端根据读取请求中的读取地址读取第一缓存单元中的缓存的数据。进一步地,在读取第一缓存单元中的缓存的数据之后,清空第一缓存单元的读取地址所对应的存储单元中的缓存的数据以使读取地址所对应的存储单元重新空闲,进而提高第一缓存单元的可用存储容量。
实施例六
图7为本发明一实施例提供的缓存控制装置的结构示意图。如图7所示,本实施例的缓存控制装置,包括:
获取模块11,用于获取双口RAM的状态信息,所述双口RAM包括第一缓存单元和第二缓存单元,所述双口RAM的状态信息包括所述第一缓存单元的第一状态信息以及所述第二缓存单元的第二状态信息;
确定模块12,用于根据所述第一缓存单元的第一状态信息以及所述第二缓存单元的第二状态信息从所述第一缓存单元和所述第二缓存单元中确定对待缓存的数据进行的缓存的缓存单元。
可选地,所述第一缓存单元的第一状态信息包含所述第一缓存单元的可用存储容量,所述第二缓存单元的第二状态信息包含所述第二缓存单元的可用存储容量;
所述确定模块12包括判断子模块和确定子模块;
判断子模块用于判断所述第一缓存单元的可用存储容量和所述第二缓存单元的可用存储容量是否大于预设阈值;
确定子模块用于根据判断结果确定数据待缓存的缓存单元。
可选地,确定子模块,具体用于:若判断结果为所述第一缓存单元的可用存储容量大于预设阈值,则确定所述第一缓存单元为所述数据待缓存的缓存单元;
若判断结果为所述第二缓存单元的可用存储容量大于预设阈值,则确定所述第二缓存单元为对待缓存的数据进行缓存的所述缓存单元;
若判断结果为所述第一缓存单元的可用存储容量和所述第二缓存单元的可用存储容量均大于预设阈值,则对所述第一缓存单元和所述第二缓存单元进行仲裁以确定所述数据待缓存的缓存单元。
可选地,还包括:
数据解析模块,用于对待缓存的数据进行解析以获取数据信息,所述数据信息包含数据容量;
确定模块还用于根据数据容量、所述第一缓存单元的可用存储容量、所述第二缓存单元的可用存储容量确定所述数据待缓存的缓存单元的个数。
可选地,还包括:数据分块模块,用于若所述数据容量大于所述第一缓存单元的可用存储容量和所述第二缓存单元的可用存储容量的容量总和,对所述待缓存的数据进行分块处理。
可选地,还包括:
写入触发模块,用于触发所述缓存单元发起写入请求,所述写入请求包含缓存地址;
写入控制模块,用于触发前向终端响应所述写入请求,并控制前向终端根据所述写入请求中的所述缓存地址将所述前向终端中的所述待缓存的数据写入到所述缓存单元的所述缓存地址中;其中,所述前向终端在响应所述写入请求之前,所述前向终端还用于采集所述待缓存的数据。
可选地,创建并存储缓存的数据和所述缓存地址的映射关系。
可选地,还包括:读取确定模块,用于根据所述第一缓存单元的第一状态信息和所述第二缓存单元的第二状态信息确定待读取的所述缓存单元。
可选地,读取确定模块,具体用于若所述第一缓存单元的第一状态信息标识所述第一缓存单元为写入状态,则确定第二缓存单元为所述待读取的所述缓存单元;若所述第二缓存单元的第二状态信息标识所述第二缓存单元为写入状态,则确定第一缓存单元为所述待读取的所述缓存单元。
可选地,读取触发模块,用于触发所述待读取的所述缓存单元发起读取请求,所述读取请求包含读取地址;
读取控制模块,用于触发所述后向终端响应所述读取请求,并控制所述后向终端根据所述读取请求中的所述读取地址读取所述待读取的所述缓存单元中的所述缓存的数据并发送到所述后向终端;其中,所述后向终端在响应所述读取请求之后,所述后向终端还用于处理所述缓存的数据。可选地,根据所述映射关系确定所述读取地址。
需要说明的是,关于本实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本实施例提供的缓存控制装置,先获取双口RAM的第一缓存单元的第一状态信息和双口RAM的第二缓存单元的第二状态信息,接着通过第一缓存单元的第一状态信息和第二缓存单元的第二状态信息来确定是采用第一缓存单元作为数据待缓存的缓存单元、还是采用第二缓存单元作为数据待缓存的缓存单元,或是同时采用第一缓存单元和第二缓存单元作为数据待缓存的缓存单元;本实施例提供的缓存控制方法能够实现快速地确定数据待缓存的缓存单元,进而加快数据缓存的速度。
最后应说明的是:以上实施例仅用以说明本申请实施例的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,所述计算机可读记录介质包括用于以计算机(例如计算机)可读的形式存储或传送信息。
本领域的技术人员应明白,本发明实施例的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明实施例权利要求及其等同技术的范围之内,则本发明实施例也意图包含这些改动和变型在内。

Claims (12)

1.一种缓存控制方法,其特征在于,包括:
获取双口RAM的状态信息,所述双口RAM包括第一缓存单元和第二缓存单元,所述双口RAM的状态信息包括所述第一缓存单元的第一状态信息以及所述第二缓存单元的第二状态信息;
根据所述第一缓存单元的第一状态信息以及所述第二缓存单元的第二状态信息从所述第一缓存单元和所述第二缓存单元中确定数据待缓存的缓存单元。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一缓存单元的第一状态信息以及所述第二缓存单元的第二状态信息从所述第一缓存单元和所述第二缓存单元中确定数据待缓存的缓存单元,包括:
所述第一缓存单元的第一状态信息包含所述第一缓存单元的可用存储容量,所述第二缓存单元的第二状态信息包含所述第二缓存单元的可用存储容量;
判断所述第一缓存单元的可用存储容量和所述第二缓存单元的可用存储容量是否大于预设阈值,根据判断结果确定数据待缓存的缓存单元。
3.根据权利要求2所述的方法,其特征在于,若判断结果为所述第一缓存单元的可用存储容量大于预设阈值,则确定所述第一缓存单元为所述数据待缓存的缓存单元;
若判断结果为所述第二缓存单元的可用存储容量大于预设阈值,则确定所述第二缓存单元为所述数据待缓存的缓存单元;
若判断结果为所述第一缓存单元的可用存储容量和所述第二缓存单元的可用存储容量均大于预设阈值,则对所述第一缓存单元和所述第二缓存单元进行仲裁以确定所述数据待缓存的缓存单元。
4.根据权利要求2所述的方法,其特征在于,还包括:对待缓存的数据进行解析以获取数据信息,所述数据信息包含数据容量;
根据所述数据容量、所述第一缓存单元的可用存储容量、所述第二缓存单元的可用存储容量确定所述数据待缓存的缓存单元的个数。
5.根据权利要求2所述的方法,其特征在于,若所述数据容量大于所述第一缓存单元的可用存储容量和所述第二缓存单元的可用存储容量的容量总和,对所述待缓存的数据进行分块处理。
6.根据权利要求1至5任一所述的方法,其特征在于,还包括:
触发所述缓存单元发起写入请求,所述写入请求包含缓存地址;
触发前向终端响应所述写入请求,并控制前向终端根据所述写入请求中的所述缓存地址将所述前向终端中的所述待缓存的数据写入到所述缓存单元的所述缓存地址中;其中,所述前向终端在响应所述写入请求之前,所述前向终端还用于采集所述待缓存的数据。
7.根据权利要求1至5任一所述的方法,其特征在于,还包括:根据所述第一缓存单元的第一状态信息和所述第二缓存单元的第二状态信息确定待读取的所述缓存单元。
8.根据权利要求7所述的方法,其特征在于,若所述第一缓存单元的第一状态信息标识所述第一缓存单元为写入状态,则确定第二缓存单元为所述待读取的所述缓存单元;
若所述第二缓存单元的第二状态信息标识所述第二缓存单元为写入状态,则确定第一缓存单元为所述待读取的所述缓存单元。
9.根据权利要求8所述的方法,其特征在于,触发所述待读取的所述缓存单元发起读取请求,所述读取请求包含读取地址;
触发所述后向终端响应所述读取请求,并控制所述后向终端根据所述读取请求中的所述读取地址读取所述待读取的所述缓存单元中的所述缓存的数据;其中,所述后向终端在响应所述读取请求之后,所述后向终端还用于处理所述缓存的数据。
10.一种缓存控制装置,其特征在于,包括:
获取模块,用于获取双口RAM的状态信息,所述双口RAM包括第一缓存单元和第二缓存单元,所述双口RAM的状态信息包括所述第一缓存单元的第一状态信息以及所述第二缓存单元的第二状态信息;
确定模块,用于根据所述第一缓存单元的第一状态信息以及所述第二缓存单元的第二状态信息从所述第一缓存单元和所述第二缓存单元中确定对待缓存的数据进行的缓存的缓存单元。
11.根据权利要求10所述的装置,其特征在于,所述第一缓存单元的第一状态信息包含所述第一缓存单元的可用存储容量,所述第二缓存单元的第二状态信息包含所述第二缓存单元的可用存储容量;所述确定模块包括:判断子模块和确定子模块;
所述判断子模块用于判断所述第一缓存单元的可用存储容量和所述第二缓存单元的可用存储容量是否大于预设阈值;
所述确定子模块用于根据判断结果确定数据待缓存的缓存单元。
12.根据权利要求11所述的装置,其特征在于,所述确定子模块,具体用于若判断结果为所述第一缓存单元的可用存储容量大于预设阈值,则确定所述第一缓存单元为所述数据待缓存的缓存单元;
若判断结果为所述第二缓存单元的可用存储容量大于预设阈值,则确定所述第二缓存单元为所述数据待缓存的缓存单元;
若判断结果为所述第一缓存单元的可用存储容量和所述第二缓存单元的可用存储容量均大于预设阈值,则对所述第一缓存单元和所述第二缓存单元进行仲裁以确定所述数据待缓存的缓存单元。
CN201710148861.8A 2017-03-14 2017-03-14 缓存控制方法及装置 Active CN108572930B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710148861.8A CN108572930B (zh) 2017-03-14 2017-03-14 缓存控制方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710148861.8A CN108572930B (zh) 2017-03-14 2017-03-14 缓存控制方法及装置

Publications (2)

Publication Number Publication Date
CN108572930A true CN108572930A (zh) 2018-09-25
CN108572930B CN108572930B (zh) 2021-09-10

Family

ID=63578324

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710148861.8A Active CN108572930B (zh) 2017-03-14 2017-03-14 缓存控制方法及装置

Country Status (1)

Country Link
CN (1) CN108572930B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110209612A (zh) * 2019-06-05 2019-09-06 中国核动力研究设计院 一种基于多状态的dpram访问方法及系统
CN111212150A (zh) * 2020-04-21 2020-05-29 成都甄识科技有限公司 一种光纤反射共享内存装置
CN114371810A (zh) * 2020-10-15 2022-04-19 中国移动通信集团设计院有限公司 Hdfs的数据存储方法及装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1797378A (zh) * 2004-12-24 2006-07-05 华为技术有限公司 采用直接存储器访问方式进行数据交换的方法
CN101957800A (zh) * 2010-06-12 2011-01-26 福建星网锐捷网络有限公司 多通道缓存分配方法及装置
CN102045258A (zh) * 2010-12-22 2011-05-04 北京星网锐捷网络技术有限公司 数据缓存管理方法及装置
US8139399B2 (en) * 2009-10-13 2012-03-20 Mosys, Inc. Multiple cycle memory write completion
CN102591594A (zh) * 2012-02-10 2012-07-18 杭州华三通信技术有限公司 一种数据的处理方法和设备
CN203102274U (zh) * 2013-03-07 2013-07-31 成都市未来合力科技有限责任公司 一种高速数据传输连接器
CN103955436A (zh) * 2014-04-30 2014-07-30 华为技术有限公司 一种数据处理装置和终端

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1797378A (zh) * 2004-12-24 2006-07-05 华为技术有限公司 采用直接存储器访问方式进行数据交换的方法
US8139399B2 (en) * 2009-10-13 2012-03-20 Mosys, Inc. Multiple cycle memory write completion
CN101957800A (zh) * 2010-06-12 2011-01-26 福建星网锐捷网络有限公司 多通道缓存分配方法及装置
CN102045258A (zh) * 2010-12-22 2011-05-04 北京星网锐捷网络技术有限公司 数据缓存管理方法及装置
CN102591594A (zh) * 2012-02-10 2012-07-18 杭州华三通信技术有限公司 一种数据的处理方法和设备
CN203102274U (zh) * 2013-03-07 2013-07-31 成都市未来合力科技有限责任公司 一种高速数据传输连接器
CN103955436A (zh) * 2014-04-30 2014-07-30 华为技术有限公司 一种数据处理装置和终端

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110209612A (zh) * 2019-06-05 2019-09-06 中国核动力研究设计院 一种基于多状态的dpram访问方法及系统
CN110209612B (zh) * 2019-06-05 2021-04-13 中核控制系统工程有限公司 一种基于多状态的dpram访问方法及系统
CN111212150A (zh) * 2020-04-21 2020-05-29 成都甄识科技有限公司 一种光纤反射共享内存装置
CN114371810A (zh) * 2020-10-15 2022-04-19 中国移动通信集团设计院有限公司 Hdfs的数据存储方法及装置
CN114371810B (zh) * 2020-10-15 2023-10-27 中国移动通信集团设计院有限公司 Hdfs的数据存储方法及装置

Also Published As

Publication number Publication date
CN108572930B (zh) 2021-09-10

Similar Documents

Publication Publication Date Title
US10114749B2 (en) Cache memory system and method for accessing cache line
CN104461958B (zh) 支持sr-iov的存储资源访问方法、存储控制器及存储设备
CN103970688B (zh) 缩短数据存储系统中写入等待时间的方法和系统
CN110175140A (zh) 融合式存储器件及其操作方法
CN104850502B (zh) 一种数据的访问方法、装置及设备
CN105283855B (zh) 一种寻址方法及装置
TW201939305A (zh) 主機系統及其方法和加速模組
CN104794069B (zh) 一种cpu中缓存的用户态分配方法和系统
CN101794271A (zh) 多核内存一致性的实现方法和装置
CN104169891B (zh) 一种访问内存的方法及设备
CN112506823B (zh) 一种fpga数据读写方法、装置、设备及可读存储介质
CN108572930A (zh) 缓存控制方法及装置
JPH04246745A (ja) 情報処理装置及びその方法
CN112632069B (zh) 哈希表数据存储管理方法、装置、介质和电子设备
WO2019028682A1 (zh) 一种多系统共享内存的管理方法及装置
CN113051195A (zh) 存储器、gpu及电子设备
US20220382672A1 (en) Paging in thin-provisioned disaggregated memory
JP2019133662A5 (zh)
CN104104705A (zh) 分布式存储系统的接入方法和设备
US9727521B2 (en) Efficient CPU mailbox read access to GPU memory
CN104252416B (zh) 一种加速器以及数据处理方法
CN103902472B (zh) 基于内存芯片互连的内存访问处理方法、内存芯片及系统
WO2020106482A1 (en) Programming and controlling compute units in an integrated circuit
CN104750614B (zh) 用于管理存储器的方法和装置
CN109324899B (zh) 基于PCIe池化硬件资源的编址方法、装置及主控节点

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
GR01 Patent grant
GR01 Patent grant