CN102646073B - 数据处理方法及装置 - Google Patents
数据处理方法及装置 Download PDFInfo
- Publication number
- CN102646073B CN102646073B CN201210133067.3A CN201210133067A CN102646073B CN 102646073 B CN102646073 B CN 102646073B CN 201210133067 A CN201210133067 A CN 201210133067A CN 102646073 B CN102646073 B CN 102646073B
- Authority
- CN
- China
- Prior art keywords
- data
- operational order
- external memory
- read
- operated
- 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.)
- Active
Links
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/06—Arrangements for sorting, selecting, merging, or comparing data on individual record carriers
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
本发明实施例公开了一种数据处理方法及装置,解决了在操作命令未命中Cache控制器中Cache存储器的情况下,对于Cache存储器的操作延时和操作占用带宽较大的问题。所述方法包括:首先接收操作命令,然后根据所述存储地址在Cache控制器中的Cache存储器搜索所述待操作数据,当在所述Cache存储器中未搜索到所述待操作数据时,将所述操作命令存储在所述Cache控制器中的未命中命令缓冲区中,再向外存发送读取命令后,将所述外存发送的数据存储在所述Cache控制器的数据缓冲区中,最后根据所述未命中命令,处理所述从外存获取的数据和所述未命中命令携带的数据。本发明适用于计算机系统领域。
Description
技术领域
本发明涉及计算机系统领域,特别涉及一种数据处理方法及装置。
背景技术
Cache(高速缓冲存储器),是现代计算机存储系统中最基本最重要的组成部分,其主要作用是缓解高速的处理器和低速的外部存储器之间的性能差异,避免处理器因为等待内存数据而影响性能。
对Cache的读写存储有命中和不命中两种情况,如果需要读写的数据存在于Cache中,称为命中,此时读写Cache速度较快,反之,称为不命中,此时,需要从外部存储器中调出相应的数据块。
现代Cache控制器的基本设计思想是,由上层命令接口发布读写命令,Cache控制器首先检查此命令的地址所对应的数据是否缓存在Cache存储器中,如果命中,则直接在Cache存储器中完成读写操作;如果未命中,则需要暂时阻塞此命令,并向外存发起读命令,然后将外存中读取的数据写入Cache存储器中,再重新调用此前被阻塞的上层命令,从而完成数据读写。
然而,采用该种技术,在操作命令未命中Cache控制器中Cache存储器的情况下,对于Cache存储器的仲裁申请次数和读写次数较多,造成了对于Cache存储器的操作延时和操作占用带宽较大的问题。
发明内容
本发明实施提供一种数据处理方法及装置,在操作命令未命中Cache控制器中Cache存储器的情况下,降低了对于Cache存储器的操作延时和操作带宽。
本发明实施例采用的技术方案为:
一种数据处理方法,包括:
接收操作命令,所述操作命令中包括待操作数据的存储地址;
根据所述存储地址在Cache控制器中的Cache存储器搜索所述待操作数据,当在所述Cache存储器中未搜索到所述待操作数据时,将所述操作命令存储在所述Cache控制器中的未命中命令缓冲区中;
向外存发送读取命令后,将所述外存发送的数据存储在所述Cache控制器的数据缓冲区中,所述数据与所述操作命令对应;
根据所述未命中命令缓冲区中存储的与所述数据对应的操作命令,处理所述外存发送的数据。
一种数据处理装置,包括:
接收单元,用于接收操作命令,所述操作命令中包括待操作数据的存储地址;
搜索单元,用于根据所述存储地址搜索所述待操作数据,当未搜索到所述待操作数据时,将所述操作命令存储;
存储单元,用于向外存发送读取命令后,将所述外存发送的数据存储,所述数据与所述操作命令对应;
处理单元,用于根据所述存储单元存储的与所述数据对应的操作命令,处理所述外存发送的数据。
本发明实施例提供的数据处理方法及装置,首先接收操作命令,然后根据所述存储地址在Cache控制器中的Cache存储器搜索所述待操作数据,当在所述Cache存储器中未搜索到所述待操作数据时,将所述操作命令存储在所述Cache控制器中的未命中命令缓冲区中,再向外存发送读取命令后,将所述外存发送的数据存储在所述Cache控制器的数据缓冲区中,最后根据所述未命中命令,处理所述从外存获取的数据和所述未命中命令携带的数据。现有技术在处理操作命令未命中Cache控制器中Cache存储器的情况时,对于Ca che存储器的仲裁申请次数和读写次数较多,造成了对于Cache存储器的操作延时和操作带宽较大,本发明实施例在处理操作命令未命中Cache存储器的情况时,通过对于需要写入的数据进行合并,或者对于需要读出的数据直接输出,降低了对于Cache存储器的操作延时和操作占用的带宽。提升了Cache存储器的工作性能。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例一提供的一种数据处理方法流程图;
图2为本发明实施例一提供的一种数据处理装置结构示意图;
图3为本发明实施例二提供的一种数据处理方法流程图;
图4为本发明实施例二提供的一种数据处理装置结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
为使本发明技术方案的优点更加清楚,下面结合附图和实施例对本发明作详细说明。
实施例一
本实施例提供一种数据处理方法,如图1所示,所述方法包括:
步骤101、接收操作命令,所述操作命令中包括待操作数据的存储地址。
其中,所述操作命令可以为读操作命令,也可以为写操作命令。
步骤102、根据所述存储地址在Cache控制器中的Cache存储器中搜索所述待操作数据,当在所述Cache存储器中未搜索到所述待操作数据时,将所述操作命令存储在所述Cache控制器中的未命中命令缓冲区中。
可替换地,当上层操作命令命中了Cache控制器时,即Cache控制器中存储了所述命令需要的数据时,直接对Cache控制器进行读写操作。
步骤103、向外存发送读命令后,将所述外存发送的数据存储在所述Cache控制器的数据缓冲区中,所述外存发送的数据与所述操作命令对应。
步骤104、根据所述未命中命令缓冲区中存储的与所述外存发送的数据对应的操作命令,处理所述外存发送的数据。
本实施例提供一种数据处理装置装置,如图2所示,所述装置的实体可以为Cache控制器,所述装置包括:接收单元21、搜索单元22、存储单元23、处理单元24。
接收单元21,用于接收操作命令,所述操作命令中包括待操作数据的存储地址。
搜索单元22,用于根据所述接收单元21接收的存储地址搜索所述待操作数据,当未搜索到所述待操作数据时,将所述操作命令存储。
存储单元23,用于向外存发送读取命令后,将所述外存发送的数据存储,所述数据与所述操作命令对应。
处理单元24,用于根据所述存储单元23存储的与所述外存发送的数据对应的操作命令,处理所述外存发送的数据。
本发明实施例提供的数据处理方法及装置,首先接收操作命令,然后根据所述存储地址在Cache控制器中的Cache存储器搜索所述待操作数据,当在所述Cache存储器中未搜索到所述待操作数据时,将所述操作命令存储在所述Cache控制器中的未命中命令缓冲区中,再向外存发送读取命令后,将所述外存发送的数据存储在所述Cache控制器的数据缓冲区中,最后根据所述未命中命令,处理所述从外存获取的数据和所述未命中命令携带的数据。现有技术在处理操作命令未命中Cache控制器中Cache存储器的情况时,对于Cache存储器的仲裁申请次数和读写次数较多,造成了对于Cache存储器的操作延时和操作带宽较大,本发明实施例在处理操作命令未命中Cache存储器的情况时,通过对于需要写入的数据进行合并,或者对于需要读出的数据直接输出,降低了对于Cache存储器的操作延时和操作占用的带宽。提升了Cache存储器的工作性能。
实施例二
本实施例提供一种数据处理方法,如图3所示,所述方法包括:
步骤301、接收操作命令,所述操作命令中包括待操作数据的存储地址。
步骤302、根据所述存储地址在Cache控制器中的Cache存储器搜索所述待操作数据,当在所述Cache存储器中未搜索到所述待操作数据时,将所述操作命令存储在所述Cache控制器中的未命中命令缓冲区中。
可替换地,当上层操作命令命中了Cache控制器时,即Cache控制器中存储了所述命令需要的数据时,直接对Cache控制器进行读写操作。
步骤303、向外存发送读取命令后,将所述外存发送的数据存储在所述Cache控制器的数据缓冲区中,所述数据与所述操作命令对应。
步骤304a、当所述操作命令为写命令时,合并所述写命令中携带的数据和所述存储在所述数据缓冲区中的所述外存发送的数据。
步骤305a、将所述合并后的数据存储在所述Cache存储器中。
对于操作命令为写命令时,现有技术是将写命令携带的写数据和从外存读取的数据分别写入Cache中,需要进行两次写操作。而本发明改进点在于在进行写操作前先把写命令携带的写数据和从外存读取的数据先进行合并后再存储,从而减少了对于Cache存储器的写次数。
步骤304b、当所述操作命令为读命令时,根据所述读命令中携带的待操作数据的存储地址,从所述数据缓冲区存储的所述外存发送的数据中获取所述读命令需要读取的数据。
步骤305b、将所述需要读取的数据输出,并将所述需要读取的数据存储在所述Cache存储器中。
在现有方案中,读写命令未命中Cache控制器中的Cache存储器时,需要由Cache控制器中的输入命令缓冲区,数据缓冲区,未命中命令缓冲区三个端口依次向Cache存储器发起命令请求。本发明实施例中,在读写命令未命中Cache控制器中的Cache存储器时,只需要Cache控制器中的输入数据缓冲区和数据缓冲区两个端口向Cache存储器发起命令请求,减少了Cache存储器带宽的占用。对于未命中的读命令,由于读数据直接数据缓冲区中取出后输出,从而进一步减少了读命令所需的延时。
本实施例提供一种数据处理装置,如图4所示,所述装置的实体可以为Cache控制器,所述装置包括:接收单元41、搜索单元42、存储单元43、处理单元44。
接收单元41,用于接收操作命令,所述操作命令中包括待操作数据的存储地址。
搜索单元42,用于根据所述接收单元41接收的存储地址搜索所述待操作数据,当未搜索到所述待操作数据时,将所述操作命令存储。
存储单元43,用于向外存发送读取命令后,将所述外存发送的数据存储,所述数据与所述操作命令对应。
处理单元44,用于根据所述存储单元43存储的与所述外存发送的数据对应的操作命令,处理所述外存发送的数据。
所述处理单元44可以包括:合并模块4401、存储模块4402。
合并模块4401,用于当所述操作命令为写命令时,合并所述写命令中携带的数据和所述存储单元存储所述外存发送的数据。
存储模块4402,用于将所述合并模块4401合并后的数据存储。
所述处理单元44还可以包括:获取模块4403、输出模块4404。
获取模块4403,用于当所述操作命令为读命令时,根据所述读命令中携带的待操作数据的存储地址,从所述外存发送的数据中获取所述读命令需要读取的数据。
输出模块4404,用于将所述需要读取的数据输出,并将所述需要读取的数据存储。
本发明实施例提供的数据处理方法及装置,首先接收操作命令,然后根据所述存储地址在Cache控制器中的Cache存储器搜索所述待操作数据,当在所述Cache存储器中未搜索到所述待操作数据时,将所述操作命令存储在所述Cache控制器中的未命中命令缓冲区中,再向外存发送读取命令后,将所述外存发送的数据存储在所述Cache控制器的数据缓冲区中,最后根据所述未命中命令,处理所述从外存获取的数据和所述未命中命令携带的数据。现有技术在处理操作命令未命中Cache控制器中Cache存储器的情况时,对于Cache存储器的仲裁申请次数和读写次数较多,造成了对于Cache存储器的操作延时和操作带宽较大,本发明实施例在处理操作命令未命中Cache存储器的情况时,通过对于需要写入的数据进行合并,或者对于需要读出的数据直接输出,降低了对于Cache存储器的操作延时和操作占用的带宽。提升了Cache存储器的工作性能。
本发明实施例提供的数据处理装置可以实现上述提供的方法实施例,具体功能实现请参见方法实施例中的说明,在此不再赘述。本发明实施例提供的数据处理方法及装置可以适用于计算机系统领域,但不仅限于此。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (2)
1.一种数据处理方法,其特征在于,包括:
接收操作命令,所述操作命令中包括待操作数据的存储地址;
根据所述存储地址在Cache控制器中的Cache存储器搜索所述待操作数据,当在所述Cache存储器中未搜索到所述待操作数据时,将所述操作命令存储在所述Cache控制器中的未命中命令缓冲区中;
向外存发送读命令后,将所述外存发送的数据存储在所述Cache控制器的数据缓冲区中,所述外存发送的数据与所述操作命令对应;
根据所述未命中命令缓冲区中存储的与所述外存发送的数据对应的操作命令,处理所述外存发送的数据,具体包括:
当所述操作命令为写命令时,合并所述写命令中携带的数据和所述存储在所述数据缓冲区中的所述外存发送的数据;将所述合并后的数据存储在所述Cache存储器中;
或者,当所述操作命令为读命令时,根据所述读命令中携带的待操作数据的存储地址,从所述数据缓冲区存储的所述外存发送的数据中获取所述读命令需要读取的数据;
将所述需要读取的数据输出,并将所述需要读取的数据存储在所述Cache存储器中。
2.一种数据处理装置,其特征在于,包括:
接收单元,用于接收操作命令,所述操作命令中包括待操作数据的存储地址;
搜索单元,用于根据所述接收单元接收的存储地址搜索所述待操作数据,当未搜索到所述待操作数据时,将所述操作命令存储;
存储单元,用于向外存发送读取命令后,将所述外存发送的数据存储,所述数据与所述操作命令对应;
处理单元,用于根据所述存储单元存储的与所述外存发送的数据对应的操作命令,处理所述外存发送的数据,具体包括:
合并模块,用于当所述操作命令为写命令时,合并所述写命令中携带的数据和所述存储单元存储的所述外存发送的数据;
存储模块,用于将所述合并模块合并后的数据存储;
或者,获取模块,用于当所述操作命令为读命令时,根据所述读命令中携带的待操作数据的存储地址,从所述外存发送的数据中获取所述读命令需要读取的数据;
输出模块,用于将所述需要读取的数据输出,并将所述需要读取的数据存储。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210133067.3A CN102646073B (zh) | 2012-04-28 | 2012-04-28 | 数据处理方法及装置 |
US13/871,335 US9483401B2 (en) | 2012-04-28 | 2013-04-26 | Data processing method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210133067.3A CN102646073B (zh) | 2012-04-28 | 2012-04-28 | 数据处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102646073A CN102646073A (zh) | 2012-08-22 |
CN102646073B true CN102646073B (zh) | 2015-01-07 |
Family
ID=46658901
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210133067.3A Active CN102646073B (zh) | 2012-04-28 | 2012-04-28 | 数据处理方法及装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9483401B2 (zh) |
CN (1) | CN102646073B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10922287B2 (en) | 2017-05-24 | 2021-02-16 | Cisco Technology, Inc. | Intelligent layout of composite data structures in tiered storage |
CN111541823B (zh) * | 2020-04-17 | 2022-04-19 | 展讯通信(上海)有限公司 | 一种调制解调器以及通信装置 |
CN111565255B (zh) * | 2020-04-27 | 2021-12-21 | 展讯通信(上海)有限公司 | 通信装置及调制解调器 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101354641A (zh) * | 2008-08-20 | 2009-01-28 | 炬力集成电路设计有限公司 | 一种外部存储器的访问控制方法及访问控制装置 |
CN101887398A (zh) * | 2010-06-25 | 2010-11-17 | 浪潮(北京)电子信息产业有限公司 | 一种动态提高服务器输入输出吞吐量的方法和系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6473837B1 (en) * | 1999-05-18 | 2002-10-29 | Advanced Micro Devices, Inc. | Snoop resynchronization mechanism to preserve read ordering |
US7149848B2 (en) | 2004-02-26 | 2006-12-12 | Hewlett-Packard Development Company, L.P. | Computer system cache controller and methods of operation of a cache controller |
JP2008090492A (ja) * | 2006-09-29 | 2008-04-17 | Fujitsu Ltd | キャッシュコントローラ、マイクロプロセッサシステム、記憶装置 |
US8683139B2 (en) | 2006-10-31 | 2014-03-25 | Hewlett-Packard Development Company, L.P. | Cache and method for cache bypass functionality |
US8904115B2 (en) * | 2010-09-28 | 2014-12-02 | Texas Instruments Incorporated | Cache with multiple access pipelines |
-
2012
- 2012-04-28 CN CN201210133067.3A patent/CN102646073B/zh active Active
-
2013
- 2013-04-26 US US13/871,335 patent/US9483401B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101354641A (zh) * | 2008-08-20 | 2009-01-28 | 炬力集成电路设计有限公司 | 一种外部存储器的访问控制方法及访问控制装置 |
CN101887398A (zh) * | 2010-06-25 | 2010-11-17 | 浪潮(北京)电子信息产业有限公司 | 一种动态提高服务器输入输出吞吐量的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
US20130290634A1 (en) | 2013-10-31 |
CN102646073A (zh) | 2012-08-22 |
US9483401B2 (en) | 2016-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9053019B2 (en) | Non-volatile memory device, a data processing device using the same, and a swapping method used by the data processing and non-volatile memory devices | |
EP1488323B1 (en) | Memory system with burst length shorter than prefetch length | |
US10802734B2 (en) | Method for fast boot read | |
WO2017041570A1 (zh) | 向缓存写入数据的方法及装置 | |
US20050055493A1 (en) | [method for accessing large block flash memory] | |
CN101324869B (zh) | 一种基于axi总线的多路复用器 | |
CN102317924A (zh) | 固态硬盘系统中缓冲器高缓的编程方法和装置 | |
CN101038531A (zh) | 用于嵌入式系统中部件的共用接口 | |
CN109814811B (zh) | 一种减小NVMe SSD响应延迟影响高速数据存储设备写入速度的方法 | |
CN105677511B (zh) | 一种降低同步开销的数据写入方法和装置 | |
CN109669888A (zh) | 一种可配置且高效的嵌入式Nor-Flash控制器及控制方法 | |
CN100414524C (zh) | 一种控制两种不同速度总线间数据传送的方法 | |
CN117406932B (zh) | 数据处理方法、装置、服务器和存储介质 | |
CN106708444A (zh) | 数据存储方法和硬盘控制器 | |
CN102646073B (zh) | 数据处理方法及装置 | |
CN111782154A (zh) | 数据搬移方法、装置及系统 | |
KR20170110810A (ko) | 데이터 처리 시스템 및 그것의 동작 방법 | |
CN104239252A (zh) | 数据存储系统的数据传输方法、装置及系统 | |
CN102543159A (zh) | 一种ddr控制器及其实现方法和芯片 | |
CN100587678C (zh) | 外部设备访问装置和系统大规模集成电路 | |
CN105389268B (zh) | 资料储存系统及其运作方法 | |
CN102279820A (zh) | 基于spi接口的数据存储装置及控制方法 | |
US20070083708A1 (en) | Controller of redundant arrays of independent disks and operation method thereof | |
US20180173651A1 (en) | Data storage device access method, device and system | |
CN102591823A (zh) | 一种具有指令队列功能的Nandflash控制器 |
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 |