CN112527390B - 数据获取方法、微处理器及具有存储功能的装置 - Google Patents

数据获取方法、微处理器及具有存储功能的装置 Download PDF

Info

Publication number
CN112527390B
CN112527390B CN201910802257.1A CN201910802257A CN112527390B CN 112527390 B CN112527390 B CN 112527390B CN 201910802257 A CN201910802257 A CN 201910802257A CN 112527390 B CN112527390 B CN 112527390B
Authority
CN
China
Prior art keywords
cache
request
data
instruction
information
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
Application number
CN201910802257.1A
Other languages
English (en)
Other versions
CN112527390A (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.)
Wuhan Jiekai Technology Co ltd
Original Assignee
Wuhan Jiekai Technology 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 Wuhan Jiekai Technology Co ltd filed Critical Wuhan Jiekai Technology Co ltd
Priority to CN201910802257.1A priority Critical patent/CN112527390B/zh
Priority to US17/000,389 priority patent/US11182299B2/en
Publication of CN112527390A publication Critical patent/CN112527390A/zh
Application granted granted Critical
Publication of CN112527390B publication Critical patent/CN112527390B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3814Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1021Hit rate improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/602Details relating to cache prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6028Prefetching based on hints or prefetch instructions
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本申请公开了一种数据获取方法、微处理器及具有存储功能的装置,该方法包括:接收到获取目标信息的请求信息,请求信息的请求类型为指令请求或数据请求;分别对指令缓存以及数据缓存进行查询,判断指令缓存以及数据缓存中是否存在与请求信息匹配的目标信息;若与请求信息的请求类型匹配的缓存中不存在目标信息,且另一个不与请求信息的请求类型匹配的缓存存在目标信息,通过不与请求信息的请求类型匹配的缓存返回目标信息;指令请求与指令缓存匹配;数据请求与数据缓存匹配。本申请将指令缓存和数据缓存在物理上相互分离,提高了数据获取的效率;另一方面,将指令缓存和数据缓存在逻辑上进行合并,扩大了一级缓存的容量,从而提高了缓存命中率。

Description

数据获取方法、微处理器及具有存储功能的装置
技术领域
本申请涉及微处理器领域,特别是涉及一种数据获取方法、微处理器及具有存储功能的装置。
背景技术
微处理器和存储器的发展一直以来都不是很均衡,这导致了两者在性能上的巨大鸿沟。在1980年,典型的微处理器的运行频率是10MHz,典型的SDRAM(SDRAM:SynchronousDynamic Random Access Memory,同步动态随机存储器)访问时间是250ns。如今微处理器运行在100MHz甚至更高的频率内,提高了几个数量级,而SDRAM却差不多只提高了一个数量级。对主存的访问速度成为了约束微处理器性能的瓶颈。解决微处理器访SDRAM速度慢的方法是采用访问速度快的SRAM(Static Random-Access Memory,静态随机存取存储器),但是SRAM存储密度较低,造价太高。所以通常会在微处理器上使用SRAM作为一个暂存,这些暂存的单元就是Cache(缓存)。采用SRAM的Cache技术则在很大成程度上克服了对主存访问速度慢的瓶颈。
在现代处理器系统中,大多采用哈弗架构,在一级缓存(L1 Cache)层次,指令缓存(I-cache)与数据缓存(D-cache)严格分离设计,数据查找时,会直接从指令缓存(I-cache)或数据缓存(D-cache)中查找,如果查找不到,进入到二级缓存(L2 Cache)层次进行查找。在微处理器领域,缓存的容量很小,只有几千字节,有些甚至只有几十个字节,严格的指令缓存(I-cache)与数据缓存(D-cache)分离设计会导致查找的命中率较低。
发明内容
本申请主要解决的技术问题是提供一种数据获取方法、微处理器及具有存储功能的装置,提高缓存命中率。
为解决上述技术问题,本申请采用的第一个技术方案是:提供一种数据获取方法,所述方法包括以下步骤,接收到获取目标信息的请求信息,请求信息的请求类型为指令请求或数据请求;分别对指令缓存以及数据缓存进行查询,确定指令缓存以及数据缓存中是否存在与请求信息匹配的目标信息;若与请求信息的请求类型匹配的缓存中不存在目标信息,且另一个不与请求信息的请求类型匹配的缓存存在目标信息,则通过不与请求信息的请求类型匹配的缓存返回目标信息;其中,指令请求与指令缓存匹配;数据请求与数据缓存匹配。
为解决上述技术问题,本申请采用的第二个技术方案是:提供一种微处理器,所述微处理器包括相互耦接的控制电路以及存储器,所述存储器包括指令缓存和数据缓存,所述指令缓存和所述数据缓存分别与所述控制电路耦接,所述存储器上存储有程序数据,所述控制电路所述执行程序数据,以实现:接收到获取目标信息的请求信息,请求信息的请求类型为指令请求或数据请求;分别对指令缓存以及数据缓存进行查询,判断指令缓存以及数据缓存中是否存在与请求信息匹配的目标信息;若与请求信息的请求类型匹配的缓存中不存在目标信息,且另一个不与请求信息的请求类型匹配的缓存存在目标信息,通过不与请求信息的请求类型匹配的缓存返回目标信息;其中,指令请求与指令缓存匹配;数据请求与数据缓存匹配。
本申请的有益效果是:区别于现有技术,本申请公开了一种数据获取方法,该方法包括以下步骤,接收到获取目标信息的请求信息,请求信息的请求类型为指令请求或数据请求;分别对指令缓存以及数据缓存进行查询,判断指令缓存以及数据缓存中是否存在与请求信息匹配的目标信息;若与请求信息的请求类型匹配的缓存中不存在目标信息,且另一个不与请求信息的请求类型匹配的缓存存在目标信息,通过不与请求信息的请求类型匹配的缓存返回目标信息;其中,指令请求与指令缓存匹配;数据请求与数据缓存匹配。本申请一方面将指令缓存和数据缓存在物理上相互分离,物理分离结构提高了数据获取的效率,且降低了微处理器的制作复杂度。另一方面,将指令缓存和数据缓存在逻辑上进行合并,相当于扩大了一级缓存的容量,从而提高了缓存命中率。
附图说明
图1是本申请微处理器一实施方式的结构示意图;
图2是本申请数据读取方法一实施方式的流程示意图;
图3是图2数据获取方法第一具体实施方式的流程示意图;
图4是图2数据获取方法第二具体实施方式的流程示意图;
图5是图2数据获取方法第三具体实施方式的流程示意图;
图6是本申请具有存储功能的装置一实施方式的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,均属于本申请保护的范围。
请参阅图1,图1是本申请微处理器一实施方式的结构示意图。
如图1所示,本实施方式的微处理器10包括相互耦接的控制电路11以及存储器14。存储器14上存储有程序数据,控制电路11执行程序数据实现以下的数据获取方法。
本实施方式的存储器14包括指令缓存121和数据缓存122,指令缓存121和数据缓存122分别与控制电路11耦接。
本实施方式中,指令缓存121与数据缓存122物理上相互独立,指令缓存121中仅存储指令,数据缓存122中仅存储数据。本实施方式的微处理器10保留了哈弗结构处理器的形式,具有哈弗结构的优点,指令和数据分开组织和存储能够提高微处理器10的数据获取效率。在其他实施方式中,指令和数据也可以混放在指令缓存121和数据缓存122中,本申请对此不作限定。
其中,数据缓存122指在硬盘内部的高速存储器,以用于将一些数据暂时性的保存起来以供读取和再读取;指令缓存121是指临时存储器,在一个实施方式中指令缓存121可以是硬件存储器,例如指令缓存121可以是;在其他实施方式中,指令缓存121也可以是采用软件逻辑形成的虚拟存储器。
本实施方式中,存储器14包括两级缓存,分别为一级缓存12和二级缓存13。指令缓存121和数据缓存122为一级缓存12,指令缓存121和数据缓存122分别与二级缓存13连接,以从二级缓存13中获取指令或数据。具体的,二级缓存13的容量大于一级缓存12的容量,二级缓存13中指令和数据混合存储。通过两级缓存的设置,能够克服对主存访问速度慢的瓶颈,提高数据获取效率。在其他实施方式中,微型处理器也可以包括1级、3级或者更多级缓存,本申请对此不作限定。
在一个具体的实施方式中,指令缓存121设有第一端口(图未示),数据缓存122设有第二端口(图未示),指令缓存121通过第一端口获取指令请求或数据请求,数据缓存122通过第二端口获取指令请求或数据请求,以使指令缓存121和数据缓存122同时处理一个指令请求或一个数据请求。具体的,控制电路11根据指令请求和数据请求的优先级,依次发出指令请求或者数据请求,控制电路11发出的指令请求或数据请求同时通过第一端口和第二端口分别进入指令缓存121和数据缓存122。
在另一个具体的实施方式中,指令缓存121设有第一端口和第三端口(图未示),数据缓存122设有第二端口和第四端口(图未示),指令缓存121通过第一端口和第三端口分别获取指令请求和数据请求,指令缓存121通过第二端口和第四端口分别获取指令请求和数据请求,以使指令缓存121和数据缓存122同时处理一个指令请求和一个数据请求。具体的,控制电路11同时发出指令请求和数据请求,指令请求和数据请求分别通过第一端口和第三端口进入指令缓存121,同时指令请求和数据请求还分别同时通过第二端口和第四端口进入数据缓存122。由于指令缓存121和数据缓存122可以同时处理数据请求和指令请求,大大提高了微处理器10的数据获取效率。
进一步的,指令缓存121还包括预取指令模块(未图示),数据缓存122还包括预取数据模块(未图示)。控制电路11控制预取指令模块按预设频率从二级缓存13中获取预取指令,控制电路11控制预取数据模块按预设频率从二级缓存13中获取预取数据。
为了说明本申请微处理器10读取数据的方法,参阅图2,图2是本申请数据读取方法一实施方式的流程示意图。本实施方式中,以图1的微处理器10进行举例说明。
本实施方式中,数据读取方法包括以下步骤:
步骤201:接收到获取目标信息的请求信息,请求信息的请求类型为指令请求或数据请求。
本实施方式中,控制电路11接收到获取目标信息的请求信息,请求信息的请求类型包括指令请求或数据请求中的至少一种。控制电路11可以逐一接收指令请求或者数据请求,也可以同时接受多个指令请求和数据请求,本申请对此不作限定。
在一个具体的实施方式中,请求信息包括请求指令和数据信息。控制电路11按照请求类型的优先级别依次发送请求信息,并同时向指令缓存121和数据缓存122发送。控制电路11根据指令请求和数据请求的优先级,依次发出指令请求或者数据请求。控制电路11发出的指令请求或数据请求同时分别进入指令缓存121和数据缓存122。例如,控制电路11发出指令请求,则该指令请求同时进入指令缓存121和数据缓存122。
在另一个具体的实施方式中,控制电路11同时发出指令请求和数据请求,指令请求和数据请求分别通过第一端口和第三端口进入指令缓存121,同时指令请求和数据请求还分别通过第二端口和第四端口同时进入数据缓存122。由于指令缓存121和数据缓存122可以同时处理数据请求和指令请求,大大提高了微处理器10的数据获取效率。
步骤202:分别对指令缓存以及数据缓存进行查询,判断指令缓存以及数据缓存中是否存在与请求信息匹配的目标信息。
本实施方式中,判断指令缓存121以及数据缓存122中是否存在与地址相同的地址信息。通过一致性维护,保证地址相同的数据信息的内容完全一致,若指令缓存121和/或数据缓存122中存在与地址相同的地址信息,则可判定指令缓存121和/或数据缓存122中存储有与请求信息匹配的目标信息。由于通过比对地址,可以减小数据查找的工作量,提高数据获取效率。
在一个具体的实施方式中,分别从指令缓存121以及数据缓存122中查找与请求信息匹配的目标信息;并判断指令缓存121以及数据缓存122中是否存储有与请求信息匹配的目标信息。即,同时在指令缓存121和数据缓存122中查找与请求信息匹配的目标信息,查找范围相当于指令缓存121和数据缓存122的总容量。现有技术中,如果在指令缓存121或数据缓存122没有查找到目标信息时,直接会从二级缓存13查找目标信息,即利用的一级缓存12只有指令缓存121和数据缓存122中的一个,二级缓存13的容量较大,数据获取效率低。而本申请在逻辑上合并指令缓存121和数据缓存122,在查找目标信息时利用了一级缓存12的指令缓存121和数据缓存122,提高了数据获取的效率。
在另一个具体的实施方式中,如果请求信息包括指令请求以及数据请求时,按照请求类型的优先级别依次判断指令缓存121和/或数据缓存122中是否存储有与请求信息匹配的目标信息。例如,如果请求信息是指令请求,指令请求优先级较高,则可优先在指令缓存121中查找是否存储有与请求信息匹配的目标信息,如果没有,则进一步在数据缓存122中查找。通过优先级查找,能够避免同时在指令缓存121和数据缓存122查找目标信息时增加处理器的负荷。
步骤203:若与请求信息的请求类型匹配的缓存中不存在目标信息,且另一个不与请求信息的请求类型匹配的缓存存在目标信息,通过不与请求信息的请求类型匹配的缓存返回目标信息;其中,指令请求与指令缓存匹配;数据请求与数据缓存匹配。
本实施例中,若判断出与请求信息的请求类型匹配的缓存中不存在目标信息,且另一个不与请求信息的请求类型匹配的缓存存在目标信息,通过不与请求信息的请求类型匹配的缓存返回目标信息。
在一个具体的实施方式中,如果请求信息为指令请求,指令缓存121中不存在目标信息,且数据缓存122中存在目标信息,则通过数据缓存122返回目标信息;如果请求信息为数据请求,数据缓存122中不存在目标信息,且指令缓存121中存在目标信息,则通过指令缓存121返回目标信息。
在另一个具体的实施方式中,如果指令缓存121以及数据缓存122均存储有目标信息,通过与请求信息的请求类型匹配的缓存返回目标信息;其中,指令请求与指令缓存121匹配,数据请求与数据缓存122匹配。例如,控制电路11发出的是指令请求,指令请求和数据请求均存在目标信息,由于指令请求与指令缓存121匹配,则通过指令缓存121返回目标信息。如果指令缓存121或数据缓存122存储有目标信息,直接通过存储有目标信息的缓存返回目标信息。例如,如果仅指令缓存121中储存在目标信息,则通过指令缓存121返回目标信息;如果仅数据缓存122中储存在目标信息,则通过数据缓存122返回目标信息。
区别于现有技术,本申请公开了一种数据获取方法,该方法包括以下步骤,接收到获取目标信息的请求信息,请求信息的请求类型为指令请求或数据请求;分别对指令缓存以及数据缓存进行查询,判断指令缓存以及数据缓存中是否存在与请求信息匹配的目标信息;若与请求信息的请求类型匹配的缓存中不存在目标信息,且另一个不与请求信息的请求类型匹配的缓存存在目标信息,通过不与请求信息的请求类型匹配的缓存返回目标信息;其中,指令请求与指令缓存匹配;数据请求与数据缓存匹配。本申请一方面将指令缓存和数据缓存在物理上相互分离,物理分离结构提高了数据获取的效率,且降低了微处理器的制作复杂度。另一方面,将指令缓存和数据缓存在逻辑上进行合并,相当于扩大了一级缓存的容量,从而提高了缓存命中率。
为了说明本申请数据获取方法的具体步骤,参阅图3,图3是图2数据获取方法第一具体实施方式的流程示意图。本实施方式仍然以图1中的微处理器10进行举例说明。
本实施方式中,数据获取方法包括以下步骤:
步骤301:接收到获取目标信息的请求信息。
本实施方式中,步骤301与上一实施方式的步骤201相同,在此不再赘述。
步骤302:基于请求信息的请求类型判断是否具有查询与请求类型匹配的缓存之外的同级缓存的权限。
本实施方式中,接收到获取目标信息的请求信息后,首先基于请求信息的请求类型判断请求信息是否具有查询与请求类型匹配的缓存之外的同级缓存的权限。如果具有权限,执行步骤304;如果不具有权限,执行步骤303。
本实施方式中,一级缓存12包括指令缓存121和数据缓存122,请求信息包括指令请求和数据请求。例如,控制电路11接收指令请求时只具有查询指令缓存121的权限,而控制电路11接收指令数据请求时具有查询指令缓存121和数据缓存122的权限。此时,如果控制电路11接收指令请求并发送至一级缓存12时,则仅从指令缓存121中查找目标信息,如果在指令缓存121中无法查找到目标信息,则进入二级缓存13查找目标信息。如果控制电路11接收数据请求并发送至一级缓存12时,则可从指令缓存121和/或数据缓存122中查找目标信息。具体的权限设置可根据具体情况设置,本申请对此不作限定。根据请求信息的类型对控制电路11的查询空间进行限定,能够避免查找空间过大造成查找速度过慢。
步骤303:从与请求信息的请求类型匹配的缓存查找是否存储有与目标信息。
本实施方式中,如果基于请求信息的请求类型判断具有查询与请求类型匹配的缓存之外的同级缓存的权限,从与请求信息的请求类型匹配的缓存查找是否存储有与目标信息。
步骤304:判断指令缓存和数据缓存中是否存储有与请求信息匹配的目标信息。
本实施方式中,如果基于请求信息的请求类型判断控制电路11具有查询与请求类型匹配的缓存之外的同级缓存的权限,控制电路11判断指令缓存121和数据缓存122中是否存储有与请求信息匹配的目标信息。
本实施方式中,控制电路11判断指令缓存121和数据缓存122中是否存在与地址相同的地址信息。通过一致性维护,保证地址相同的数据信息的内容完全一致。由于通过比对地址,可以减小数据查找的工作量,提高数据获取效率。
在一个具体的实施方式中,控制电路11分别从指令缓存121以及数据缓存122中查找与请求信息匹配的目标信息;并判断指令缓存121和数据缓存122中是否存储有与请求信息匹配的目标信息。即,同时在指令缓存121和数据缓存122中查找与请求信息匹配的目标信息,提高了数据查找的效率。
在另一个具体的实施方式中,如果请求信息包括指令请求以及数据请求时,控制电路11按照请求类型的优先级别依次判断指令缓存121和数据缓存122中是否存储有与请求信息匹配的目标信息。例如,如果请求信息是指令请求,则可优先在指令缓存121中查找是否存储有与请求信息匹配的目标信息,如果没有,则进一步在数据缓存122中查找。通过优先级查找,能够避免同时在指令缓存121和数据缓存122查找目标信息时增加处理器的负荷。
在又一个具体的实施方式中,控制电路11判断与请求信息的请求类型匹配的缓存中是否存储有目标信息;如果有,通过与请求信息的请求类型匹配的缓存返回目标信息;如果没有,判断同级其他缓存中是否存储有目标信息。即按照请求信息的请求类型与缓存的匹配度逐一查找目标信息。按照请求信息的请求类型与缓存的匹配度查找目标信息,能够避免同时在指令缓存121和数据缓存122查找目标信息时增加处理器的负荷,且由于请求信息的类型与缓存匹配,查找到目标信息的。
本实施方式中,如果控制电路11判断指令缓存121和/或数据缓存122中存储有与请求信息匹配的目标信息,则执行步骤305;如果控制电路11判断指令缓存121和/或数据缓存122中未存储有与请求信息匹配的目标信息,则执行步骤306。
步骤305:通过指令缓存或数据缓存返回目标信息。
本实施方式中,步骤305与上一实施方式中的步骤203相同,在此不再赘述。
步骤306:判断指令缓存121和数据缓存122中是否存在与请求信息匹配的预取状态信息。
预取技术是通过计算和访存的重叠,在缓存可能会发生失效之前发出预取请求以便在该数据真正被使用到时己提前将数据块取入缓存,从而避免缓存失效造成的处理器停顿。
本实施方式中,如果判断指令缓存121和数据缓存122中未存储有与请求信息匹配的目标信息,但是指令缓存121和数据缓存122中可能存在预取信息命中的可能。此时,首先判断指令缓存121和数据缓存122中是否存在与请求信息匹配的预取状态信息。根据预取状态信息可以判断预取信息是否与请求信息匹配。
如果指令缓存121和/或数据缓存122中存在与请求信息匹配的预取状态信息,则表明有可利用的预取信息,执行步骤307。如果指令缓存121和数据缓存122中均不存在与请求信息匹配的预取状态信息,则执行步骤308。
步骤307:利用预取状态信息判断预取目标数据信息的第一时间是否大于直接从下一级缓存中获取目标信息的第二时间。
本实施方式中,如果指令缓存121和/或数据缓存122中存在与请求信息匹配的预取状态信息,则表明有可利用的预取信息。但是如果预取信息远大于目标信息或者其他情况,则有可能出现通过预取方式获取目标信息的时间反而超过了直接从二级缓存13中获取目标信息的时间。因此,需要利用预取状态信息判断预取目标数据信息的第一时间是否大于直接从下一级缓存12中获取目标信息的第二时间。
本实施方式中的第一时间是指请求信息从与所述请求信息的请求类型不匹配的缓存之外的同级缓存获取所述目标信息所用的时间。
具体的,当请求信息的请求类型为数据请求时,第一时间则是指该数据请求通过指令缓存获取目标信息所用的时间;当请求信息的请求类型为指令请求时,第一时间则是指该指令请求通过数据缓存获取目标信息所用的时间。
本实施方式中,若第一时间小于或等于第二时间,则执行步骤309;若第一时间大于第二时间,则执行步骤308。
步骤308:向指令缓存121和数据缓存122的下一级缓存12发送请求信息。
本实施方式中,控制电路11根据请求信息的类型向指令缓存121和数据缓存122的下一级缓存12发送请求信息。如果请求信息为指令请求,则通过指令缓存121向二级缓存13发送指令请求,如果请求信息为数据请求,则通过数据缓存122向二级缓存13发送指令请求。
步骤309:通过预取方式返回目标信息.
本实施方式中,若第一时间小于或等于第二时间,则说明直接通过预取方式返回目标信息更快,因此,通过预取方式返回目标信息。
区别于现有技术,本申请公开了一种数据获取方法,该方法包括以下步骤,接收到获取目标信息的请求信息,请求信息的请求类型包括指令请求或数据请求中的至少一种;判断指令缓存和/或数据缓存中是否存储有与请求信息匹配的目标信息;若指令缓存和/或数据缓存中存储有与请求信息匹配的目标信息,通过指令缓存和/或数据缓存返回目标信息。本申请一方面将指令缓存和数据缓存在物理上相互分离,物理分离结构提高了数据获取的效率,且降低了微处理器的制作复杂度。另一方面,将指令缓存和数据缓存在逻辑上进行合并,相当于扩大了一级缓存的容量,从而提高了缓存命中率。
进一步参阅图图4,图4是图2数据获取方法第二具体实施方式的流程示意图。需要说明的是,本实施方式中,以控制电路11接收数据指令为例进行说明。
本实施方式中,数据获取方法包括如下步骤:
步骤401:接收数据请求。
本实施方式中,控制电路接收到数据指令。
步骤402:判断数据缓存中是否存储有与数据请求匹配的目标信息。
本实施方式中,由于控制电路11接收到数据指令,数据指令与数据缓存122匹配,因此,优先判断数据缓存122中是否存储有与数据请求匹配的目标信息。如果数据缓存122中存储有与数据请求匹配的目标信息,则执行步骤408;如果数据缓存122中未存储有与数据请求匹配的目标信息,则执行步骤403。在其他实施方式中,步骤402和步骤403可以调换顺序,本申请对此不作限定。
步骤403:判断指令缓存中是否存储有与数据请求匹配的目标信息。
本实施方式中,判断指令缓存121中是否存储有与数据请求匹配的目标信息,如果有,则执行步骤步骤409;如果没有,则执行步骤404。
步骤404:判断数据缓存中是否存在与数据请求匹配的预取状态信息。
本实施方式中,判断数据缓存122中是否存在与数据请求匹配的预取状态信息。如果存在,则执行步骤405,如果不存在,则执行步骤406。在其他实施方式中,步骤404和步骤406可以调换顺序,本申请对此不作限定。
步骤405:判断通过数据缓存预取目标信息的第一时间是否大于直接从下一级缓存中获取目标信息的第二时间。
本实施方式中,判断通过数据缓存122预取目标信息的第一时间是否大于直接从下一级缓存12中获取目标信息的第二时间,如果通过数据缓存122预取目标信息的第一时间小于等于直接从下一级缓存12中获取目标信息的第二时间,则执行步骤步骤410;如果通过数据缓存122预取目标信息的第一时间大于直接从下一级缓存12中获取目标信息的第二时间,则执行步骤步骤412。
步骤406:判断指令缓存中是否存在与数据请求匹配的预取状态信息。
本实施方式中,判断指令缓存121中是否存在与数据请求匹配的预取状态信息,如果存在,则执行步骤407;如果不存在,则执行步骤412。
步骤407:判断通过指令缓存预取目标信息的第一时间是否大于直接从下一级缓存中获取目标信息的第二时间。
本实施方式中,判断通过指令缓存121预取目标信息的第一时间是否大于直接从下一级缓存12中获取目标信息的第二时间。如果通过指令缓存121预取目标信息的第一时间小于等于直接从下一级缓存12中获取目标信息的第二时间,则执行步骤411;如果通过指令缓存121预取目标信息的第一时间大于直接从下一级缓存12中获取目标信息的第二时间,则执行步骤412。
步骤408:通过数据缓存返回目标信息。
本实施方式中,数据缓存122中存储有与数据请求匹配的目标信息,则直接通过数据缓存122返回目标信息即可,无需再去指令缓存121中查询,降低了微处理器10的负荷,提高了数据获取效率。
步骤409:通过指令缓存返回目标信息。
本实施方式中,此时,只有指令缓存121存储有目标信息,通过指令缓存121返回目标信息即可。
步骤410:等待目标信息返回数据缓存122。
本实施方式中,由于通过预取目标信息的时间相比直接从下一级缓存12中获取的时间更短,因此等待目标信息返回数据缓存122即可。在目标信息返回数据缓存122后,从数据缓存122读取即可。
步骤411:等待目标信息返回指令缓存121。
本实施方式中,由于通过预取目标信息的时间相比直接从下一级缓存12中获取的时间更短,因此等待目标信息返回指令缓存121即可。在目标信息返回数据缓存122后,从指令缓存121读取即可。
步骤412:向下一级缓存发送数据请求。
本实施方式中,通过数据缓存122向下一级缓存12发送数据请求。在其他实施方式中,也可以通过指令缓存121向下一级缓存12发送数据请求,本申请对此不作限定。
区别于现有技术,本申请公开了一种数据获取方法,该方法包括以下步骤,接收到获取目标信息的请求信息,请求信息的请求类型包括指令请求或数据请求中的至少一种;判断指令缓存和/或数据缓存中是否存储有与请求信息匹配的目标信息;若指令缓存和/或数据缓存中存储有与请求信息匹配的目标信息,通过指令缓存和/或数据缓存返回目标信息。本申请一方面将指令缓存和数据缓存在物理上相互分离,物理分离结构提高了数据获取的效率,且降低了微处理器的制作复杂度。另一方面,将指令缓存和数据缓存在逻辑上进行合并,相当于扩大了一级缓存的容量,从而提高了缓存命中率。
进一步的,参阅图5,图5是图2数据获取方法第三具体实施方式的流程示意图。需要说明的是,本实施方式中,以控制电路11接收数据指令为例进行说明。本实施方式的流程与图4中实施方式的流程类似,在此不再赘述。
区别于现有技术,本申请公开了一种数据获取方法,该方法包括以下步骤,接收到获取目标信息的请求信息,请求信息的请求类型为指令请求或数据请求;分别对指令缓存以及数据缓存进行查询,判断指令缓存以及数据缓存中是否存在与请求信息匹配的目标信息;若与请求信息的请求类型匹配的缓存中不存在目标信息,且另一个不与请求信息的请求类型匹配的缓存存在目标信息,通过不与请求信息的请求类型匹配的缓存返回目标信息;指令请求与指令缓存匹配;数据请求与数据缓存匹配。本申请一方面将指令缓存和数据缓存在物理上相互分离,物理分离结构提高了数据获取的效率,且降低了微处理器的制作复杂度。另一方面,将指令缓存和数据缓存在逻辑上进行合并,相当于扩大了一级缓存的容量,从而提高了缓存命中率。
请参阅图6,图6是本申请具有存储功能的装置一实施方式的结构示意图。
参阅图6,图6是本申请具有存储功能的装置一实施方式的结构示意图。具有存储功能的装置60中存储有至少一个程序或指令61,程序或指令61用于实现上述任一方法。在一个实施例中,具有存储功能的装置包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请一方面将指令缓存和数据缓存在物理上相互分离,物理分离结构提高了数据获取的效率,且降低了微处理器的制作复杂度。另一方面,将指令缓存和数据缓存在逻辑上进行合并,相当于扩大了一级缓存的容量,从而提高了缓存命中率。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中。
以上仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (10)

1.一种数据获取方法,其特征在于,所述方法包括以下步骤,
接收到获取目标信息的请求信息,所述请求信息的请求类型为指令请求或数据请求;
分别对指令缓存以及数据缓存进行查询,确定所述指令缓存以及数据缓存中是否存在与所述请求信息匹配的目标信息;
若与所述请求信息的请求类型匹配的缓存中不存在所述目标信息,且另一个不与所述请求信息的请求类型匹配的缓存存在所述目标信息,则通过所述不与所述请求信息的请求类型匹配的缓存返回所述目标信息;
其中,所述指令请求与所述指令缓存匹配;所述数据请求与所述数据缓存匹配;
其中,所述若与所述请求信息的请求类型匹配的缓存中不存在所述目标信息,且另一个不与所述请求信息的请求类型匹配的缓存存在所述目标信息,则通过所述不与所述请求信息的请求类型匹配的缓存返回所述目标信息的步骤包括:
如果所述请求信息为指令请求,所述指令缓存中不存在所述目标信息,且所述数据缓存中存在所述目标信息,通过所述数据缓存返回所述目标信息;
如果所述请求信息为数据请求,所述数据缓存中不存在所述目标信息,且所述指令缓存中存在所述目标信息,通过所述指令缓存返回所述目标信息。
2.根据权利要求1所述的数据获取方法,其特征在于,所述数据获取方法还包括:
如果所述指令缓存与所述数据缓存中均存在所述目标信息,通过与所述请求信息的请求类型匹配的缓存返回所述目标信息。
3.根据权利要求1所述的数据获取方法,其特征在于,所述数据获取方法还包括:
如果所述指令缓存与所述数据缓存中均不存在所述目标信息,确定所述指令缓存和所述数据缓存中是否存在与所述请求信息匹配的预取状态信息;
若所述指令缓存和所述数据缓存均不存在与所述请求信息匹配的所述预取状态信息,则向所述指令缓存和所述数据缓存的下一级缓存发送所述请求信息。
4.根据权利要求3所述的数据获取方法,其特征在于,所述数据获取方法还包括:
若所述指令缓存和/或所述数据缓存存在与所述请求信息匹配的预取信息,则利用所述预取状态信息判断预取所述目标信息的第一时间是否大于直接从所述下一级缓存中获取所述目标信息的第二时间;
若所述第一时间小于或等于所述第二时间,则通过预取方式返回所述目标信息;若所述第一时间大于所述第二时间,则向所述下一级缓存发送所述请求信息,以直接从所述下一级缓存中获取所述目标信息;
所述第一时间为所述请求信息从与所述请求信息的请求类型不匹配的缓存之外的同级缓存获取所述目标信息所用的时间。
5.根据权利要求1所述的数据获取方法,其特征在于,所述分别对指令缓存以及数据缓存进行查询,确定所述指令缓存以及数据缓存中是否存在与所述请求信息匹配的目标信息的步骤包括:
基于所述请求信息的请求类型确定所述请求信息是否具有查询与所述请求类型匹配的缓存之外的同级缓存的权限;
如果具有所述权限,执行所述分别对指令缓存以及数据缓存进行查询,判断所述指令缓存以及数据缓存中是否存在与所述请求信息匹配的目标信息的步骤;如果不具有所述权限,从与所述请求信息的请求类型匹配的缓存查询所述目标信息。
6.根据权利要求1所述的数据获取方法,其特征在于,
如果所述请求信息包括所述目标信息的地址,则所述确定所述指令缓存以及数据缓存中是否存在与所述请求信息匹配的目标信息的步骤具体包括:
确定所述指令缓存和所述数据缓存中是否存在与所述目标信息的地址相同的地址信息;
如果所述请求信息包括指令请求以及数据请求,则所述确定所述指令缓存以及数据缓存中是否存在与所述请求信息匹配的目标信息的步骤具体包括:
按照所述请求类型的优先级别依次判断所述指令缓存和数据缓存中是否存在与所述请求信息匹配的目标信息。
7.一种微处理器,其特征在于,所述微处理器包括相互耦接的控制电路以及存储器,所述存储器包括指令缓存和数据缓存,所述指令缓存和所述数据缓存分别与所述控制电路耦接,所述存储器上存储有程序数据,所述控制电路执行所述程序数据,以实现权利要求1-6任一项所述的数据获取方法。
8.根据权利要求7所述的微处理器,其特征在于,所述指令缓存设有第一端口,所述数据缓存设有第二端口,所述指令缓存通过所述第一端口获取所述指令请求或所述数据请求,所述数据缓存通过所述第二端口获取所述指令请求或所述数据请求,以使所述指令缓存和所述数据缓存同时处理一个所述指令请求或一个所述数据请求。
9.根据权利要求8所述的微处理器,其特征在于,所述指令缓存还设有第三端口,所述数据缓存还设有第四端口,所述指令缓存通过所述第一端口和所述第三端口分别获取所述指令请求和所述数据请求,所述指令缓存通过所述第二端口和所述第四端口分别获取所述指令请求和所述数据请求,以使所述指令缓存和所述数据缓存同时处理一个所述指令请求和一个所述数据请求。
10.一种具有存储功能的装置,其特征在于,所述具有存储功能的装置存储有程序数据,所述程序数据能够被执行以实现权利要求1-6任一项所述的方法。
CN201910802257.1A 2019-08-28 2019-08-28 数据获取方法、微处理器及具有存储功能的装置 Active CN112527390B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201910802257.1A CN112527390B (zh) 2019-08-28 2019-08-28 数据获取方法、微处理器及具有存储功能的装置
US17/000,389 US11182299B2 (en) 2019-08-28 2020-08-24 Data acquisition method, microprocessor and apparatus with storage function

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910802257.1A CN112527390B (zh) 2019-08-28 2019-08-28 数据获取方法、微处理器及具有存储功能的装置

Publications (2)

Publication Number Publication Date
CN112527390A CN112527390A (zh) 2021-03-19
CN112527390B true CN112527390B (zh) 2024-03-12

Family

ID=74682155

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910802257.1A Active CN112527390B (zh) 2019-08-28 2019-08-28 数据获取方法、微处理器及具有存储功能的装置

Country Status (2)

Country Link
US (1) US11182299B2 (zh)
CN (1) CN112527390B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5353426A (en) * 1992-04-29 1994-10-04 Sun Microsystems, Inc. Cache miss buffer adapted to satisfy read requests to portions of a cache fill in progress without waiting for the cache fill to complete
CN1501259A (zh) * 2002-10-10 2004-06-02 英特尔公司 便于具有通用读/写模式的存储器数据存取的装置和方法
CN101558391A (zh) * 2006-12-15 2009-10-14 密克罗奇普技术公司 用于微处理器的可配置高速缓冲存储器
CN102446087A (zh) * 2010-10-12 2012-05-09 无锡江南计算技术研究所 指令预取方法与预取装置
CN106775901A (zh) * 2017-01-22 2017-05-31 上海卓悠网络科技有限公司 一种数据预加载方法及装置
CN108897701A (zh) * 2018-06-20 2018-11-27 珠海市杰理科技股份有限公司 cache存储架构

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7356672B2 (en) * 2004-05-28 2008-04-08 The Regents Of The University Of California Warp processor for dynamic hardware/software partitioning
JP4750719B2 (ja) * 2004-11-26 2011-08-17 パナソニック株式会社 プロセッサ、セキュア処理システム
US8370575B2 (en) * 2006-09-07 2013-02-05 International Business Machines Corporation Optimized software cache lookup for SIMD architectures

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5353426A (en) * 1992-04-29 1994-10-04 Sun Microsystems, Inc. Cache miss buffer adapted to satisfy read requests to portions of a cache fill in progress without waiting for the cache fill to complete
CN1501259A (zh) * 2002-10-10 2004-06-02 英特尔公司 便于具有通用读/写模式的存储器数据存取的装置和方法
CN101558391A (zh) * 2006-12-15 2009-10-14 密克罗奇普技术公司 用于微处理器的可配置高速缓冲存储器
CN102446087A (zh) * 2010-10-12 2012-05-09 无锡江南计算技术研究所 指令预取方法与预取装置
CN106775901A (zh) * 2017-01-22 2017-05-31 上海卓悠网络科技有限公司 一种数据预加载方法及装置
CN108897701A (zh) * 2018-06-20 2018-11-27 珠海市杰理科技股份有限公司 cache存储架构

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于缓存技术的XML代数查询优化;冯琳;顾进广;李尧尧;曹雅楠;;计算机工程(第14期);第46-48页 *

Also Published As

Publication number Publication date
CN112527390A (zh) 2021-03-19
US20210064534A1 (en) 2021-03-04
US11182299B2 (en) 2021-11-23

Similar Documents

Publication Publication Date Title
US7600077B2 (en) Cache circuitry, data processing apparatus and method for handling write access requests
US9792221B2 (en) System and method for improving performance of read/write operations from a persistent memory device
US10083126B2 (en) Apparatus and method for avoiding conflicting entries in a storage structure
US20120173840A1 (en) Sas expander connection routing techniques
JP7340326B2 (ja) メンテナンス動作の実行
EP3608790B1 (en) Modifying nvme physical region page list pointers and data pointers to facilitate routing of pcie memory requests
CN105677580A (zh) 访问缓存的方法和装置
US20170300417A1 (en) Multi-Way Set Associative Cache and Processing Method Thereof
US9804965B2 (en) Virtual machine host server apparatus and method for operating the same
JPH07325761A (ja) 仮想記憶システムに使用するための装置
KR20160060550A (ko) 효율적인 맵핑을 위한 페이지 캐시 장치 및 방법
CN109219804A (zh) 非易失内存访问方法、装置和系统
KR20190087500A (ko) 메모리 어드레스 변환
CN116578504A (zh) 提高rdma引擎访问内存区域效率的方法、装置、系统、芯片及存储介质
CN116414735A (zh) 数据存储方法、系统、存储访问配置方法及相关设备
CN108874691B (zh) 数据预取方法和内存控制器
US20110022802A1 (en) Controlling data accesses to hierarchical data stores to retain access order
CN116450966A (zh) 缓存访问方法及装置、设备、存储介质
US8549274B2 (en) Distributive cache accessing device and method for accelerating to boot remote diskless computers
US5835947A (en) Central processing unit and method for improving instruction cache miss latencies using an instruction buffer which conditionally stores additional addresses
CN112527390B (zh) 数据获取方法、微处理器及具有存储功能的装置
CN101459599B (zh) 一种实现缓存数据访问与加载并发进行的方法及系统
CN110941565B (zh) 用于芯片存储访问的内存管理方法和装置
CN108052296B (zh) 一种数据读取方法、设备及计算机存储介质
US20060200631A1 (en) Control circuit and control method

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