CN104285215B - 用于跟踪指令高速缓冲存储器中的附加数据权限的方法和设备 - Google Patents

用于跟踪指令高速缓冲存储器中的附加数据权限的方法和设备 Download PDF

Info

Publication number
CN104285215B
CN104285215B CN201380022547.5A CN201380022547A CN104285215B CN 104285215 B CN104285215 B CN 104285215B CN 201380022547 A CN201380022547 A CN 201380022547A CN 104285215 B CN104285215 B CN 104285215B
Authority
CN
China
Prior art keywords
caches
page
instruction
extension
row
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.)
Expired - Fee Related
Application number
CN201380022547.5A
Other languages
English (en)
Other versions
CN104285215A (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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN104285215A publication Critical patent/CN104285215A/zh
Application granted granted Critical
Publication of CN104285215B publication Critical patent/CN104285215B/zh
Expired - Fee Related 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
    • 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/0877Cache access modes
    • G06F12/0886Variable-length word access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/145Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
    • 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
    • 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)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明揭示用于维持指令高速缓冲存储器的系统和方法,所述指令高速缓冲存储器包含:扩展高速缓冲存储行和所述扩展高速缓冲存储行的主高速缓冲存储行部分的页属性;以及至少对于一或多个预定义潜在跨页指令位置,所述对应扩展高速缓冲存储行的附加数据部分的额外页属性。此外,揭示用于处理从具有扩展高速缓冲存储行的指令高速缓冲存储器提取的跨页指令的系统和方法。

Description

用于跟踪指令高速缓冲存储器中的附加数据权限的方法和 设备
优先权主张
本申请案主张2012年5月9日申请且标题为“用于跟踪指令高速缓冲存储器中的附加数据权限的方法及装置(METHOD AND APPARATUS FOR TRACKING EXTRA DATAPERMISSIONS IN AN INSTRUCTION CACHE)”的第61/644,622号美国临时专利申请案的优先权,所述申请案以全文引用的方式并入本文中。
技术领域
本发明的技术大体上涉及用于处理器的指令高速缓冲存储器。
背景技术
共同拥有且经转让的第7,337,272号美国专利尤其教示一种用于处理器的指令高速缓冲存储器10,其中指令高速缓冲存储器10包含扩展高速缓冲存储行12-0到12-NUMECL,如图1中所示。扩展高速缓冲存储行12-0到12-NUMECL在本文中大体统称为扩展高速缓冲存储行12且个别地称为扩展高速缓冲存储行12。如所说明,扩展高速缓冲存储行12中的每一者包含主高速缓冲存储行部分14和附加数据部分16。主高速缓冲存储行部分14存储预定义数目个字(例如,16个字或64个字节),且操作以从存储器行高速缓存指令数据。每一扩展高速缓冲存储行12的附加数据部分16位于扩展高速缓冲存储行12的末端,且为下一存储器行的开始处的指令数据的副本,其还可为下一扩展高速缓冲存储行12的开始的副本。因此,举例而言,假定扩展高速缓冲存储行12-0的主高速缓冲存储行部分14从第一存储器行高速缓冲存储指令数据且扩展高速缓冲存储行12-1的主高速缓冲存储行部分14从紧随第一存储器行之后的第二存储器行高速缓冲存储指令数据。在此实例中,扩展高速缓冲存储行12-0的附加数据部分16存储扩展高速缓冲存储行12-1的主高速缓冲存储行部分14的开始处的指令数据的副本。值得注意的是,主高速缓冲存储行部分14与扩展高速缓冲存储行12的附加数据部分16可实施在相同物理资源(即,相同物理高速缓冲存储器的部分)内或实施在单独物理资源内。
具有扩展高速缓冲存储行12的指令高速缓冲存储器10尤其有益于允许可变长度指令的处理器(例如,允许16位和32位指令两者的处理器)。可变长度指令导致字不对准的指令(即,非字对准指令)。另外,可变长度指令导致在指令高速缓冲存储器中跨越行边界的指令,所述指令在本文中被称为跨行指令(line-crossing instruction)。对于常规指令高速缓冲存储器,从指令高速缓冲存储器提取跨行指令需要两个单独非提取操作,即,从第一高速缓冲存储行获得指令的第一部分的第一提取和从第二高速缓冲存储行获得指令的第二部分的第二提取。相比之下,具有扩展高速缓冲存储行12的指令高速缓冲存储器10实现使用单个提取操作从单个扩展高速缓冲存储行12提取跨行指令。
作为一实例,考虑如下实施方案:指令可为16位指令或32位指令,且存储器行且因而扩展高速缓冲存储行的主高速缓冲存储行部分14为16字(即,64字节)。归因于可变长度指令,将存在如下情境:32位指令的第一16位驻留在一个存储器行中,且32位指令的第二16位驻留在下一存储器行中。当将指令高速缓冲存储于指令高速缓冲存储器10中时,指令的前16位被高速缓冲存储为扩展高速缓冲存储行12中的一者的主高速缓冲存储行部分14的最末16位,且32位指令的最末16位的副本被高速缓冲存储于相同扩展高速缓冲存储行12的附加数据部分16中。通过将32位指令的最末16位的副本存储为扩展高速缓冲存储行12的附加数据部分16中的附加数据,可使用对扩展高速缓冲存储行12的单个提取而提取完整的32位指令。
指令高速缓冲存储器10的一个问题是跨页指令可能横跨存储器的具有不同转译信息(例如,不同执行权限)的两个页。更具体来说,指令高速缓冲存储器10用以高速缓冲存储驻留在组织成数个存储器页的存储器中的指令数据。从一个存储器页中的最末行跨越到另一存储器页中的第一行的跨行指令在本文中被称为跨页指令。当跨页指令被高速缓冲存储于指令高速缓冲存储器10中时,跨页指令的第一部分高速缓冲存储于扩展高速缓冲存储行12中的一者的主高速缓冲存储行部分14的末端处,且跨页指令的最末部分的副本高速缓冲存储为相同扩展高速缓冲存储行12的附加数据部分16中的附加数据。结果,可使用从一个扩展高速缓冲存储行12的单个提取从指令高速缓冲存储器10提取跨页指令。作为一实例,图1说明第一部分(PCI(1))驻留在一个存储器页中的最末存储器行的末端处且高速缓冲存储于扩展高速缓冲存储行12-X的主高速缓冲存储行部分14的末端处,且第二部分(PCI(2))驻留在另一存储器页中的第一存储器行的开始处且高速缓冲存储于扩展高速缓冲存储行12-(X+1)的主高速缓冲存储行部分14的开始处的跨页指令。所述跨页指令的第二部分(PCI(2))的副本存储为扩展高速缓冲存储行12-X的附加数据部分16中的附加数据。由此,可接着通过提取扩展高速缓冲存储行12-X而提取跨页指令。
处置跨页指令时出现的一个问题是,从单个扩展高速缓冲存储行12提取的跨页指令可能具有驻留在具有某些页属性(例如,某些执行权限)的一个存储器页中的第一部分与驻留在具有不同页属性(例如,不同执行权限)的不同存储器页中的第二部分。举例来说,高速缓冲存储于扩展高速缓冲存储行12-×中的跨页指令的第一部分(PCI(1))可驻留在与第二部分(PCI(2))所驻留的存储器页具有不同执行权限的存储器页中。因此,需要处理从具有扩展高速缓冲存储行的指令高速缓冲存储器获得的跨页指令的系统和方法。
发明内容
本发明揭示用于维持指令高速缓冲存储器的系统和方法,所述指令高速缓冲存储器包含:扩展高速缓冲存储行和所述扩展高速缓冲存储行的主高速缓冲存储行部分的页属性;以及至少对于一或多个预定义潜在跨页指令位置,所述对应扩展高速缓冲存储行的附加数据部分的额外页属性。此外,揭示用于处理从具有扩展高速缓冲存储行的指令高速缓冲存储器提取的跨页指令的系统和方法。
在一个实施例中,处理器从指令高速缓冲存储器中的单个扩展高速缓冲存储行提取跨页指令,其中所述跨页指令的第一部分驻留在第一存储器页中且高速缓冲存储于所述扩展高速缓冲存储行的主高速缓冲存储行部分的末端处,且所述跨页指令的第二部分驻留在第二存储器页中且高速缓冲存储为所述扩展高速缓冲存储行的附加数据部分中的附加数据。所述处理器检测到基于与所述第二存储器页相关联的一或多个页属性(例如,对于一或多个处理模式的执行权限)而禁止所述跨页指令执行。在一个特定实施例中,如果所述第一存储器页的一或多个页属性(例如,对于一或多个处理模式的执行权限)允许执行且所述第二存储器页的所述一或多个页属性禁止执行,那么所述处理器检测到所述跨页指令被禁止执行。
在一个实施例中,响应于检测到所述跨页指令被禁止执行,所述处理器报告所述跨页指令的执行被禁止。
在一个实施例中,处理器包含具有扩展高速缓冲存储行的指令高速缓冲存储器。当高速缓冲存储第一存储器页中的最末存储器行时,所述处理器高速缓冲存储扩展高速缓冲存储行的主高速缓冲存储行部分中的最末存储器行且在所述指令高速缓冲存储器的资源中高速缓冲存储所述第一存储器页的一或多个页属性。此外,所述处理器高速缓冲存储驻留在第二或下一存储器页中的第一存储器行的开始处的附加数据作为所述扩展高速缓冲存储行的附加数据部分中的附加数据,且在所述指令高速缓冲存储器的资源中高速缓冲存储所述第二存储器页的一或多个页属性。
在另一实施例中,处理器包含具有扩展高速缓冲存储行的指令高速缓冲存储器。当高速缓冲存储第一存储器页中的最末存储器行时,所述处理器高速缓冲存储扩展高速缓冲存储行的主高速缓冲存储行部分中的所述存储器行且在所述指令高速缓冲存储器的资源中高速缓冲存储所述第一存储器页的一或多个页属性。此外,所述处理器请求第二或下一存储器页的一或多个属性。如果返回基于非权限的错误,那么所述处理器产生指示执行不被准许的一或多个过载页属性,且高速缓冲存储与所述扩展高速缓冲存储行的附加数据部分相关联的一或多个页属性。如果返回所述第二存储器页的一或多个页属性,那么所述处理器高速缓冲存储驻留在所述第二存储器页中的第一存储器行的开始处的附加数据作为所述扩展高速缓冲存储行的附加数据部分中的附加数据,且在所述指令高速缓冲存储器的资源中高速缓冲存储所述第二存储器页的所述一或多个页属性。
在另一实施例中,处理器包含具有扩展高速缓冲存储行的指令高速缓冲存储器。对于每一扩展高速缓冲存储行,所述指令高速缓冲存储器存储高速缓冲存储于所述扩展高速缓冲存储行的主高速缓冲存储行部分中的指令数据驻留于其中的存储器页的一或多个页属性。此外,对于每一个且仅每一个预定义为潜在跨页指令位置的扩展高速缓冲存储行,所述指令高速缓冲存储器进一步存储一或多个额外页属性。在一个实施例中,所述一或多个额外页属性为所述扩展高速缓冲存储行的附加数据部分中所存储的附加数据驻留于其中的存储器页的一或多个页属性。在另一实施例中,所述一或多个额外页属性为所述扩展高速缓冲存储行的附加数据部分中所存储的附加数据驻留于其中的存储器页的一或多个页属性或响应于非权限型错误而产生的一或多个过载页属性,所述非权限型错误是在尝试获得将存储于所述扩展高速缓冲存储行的所述附加数据部分中的附加数据原本将驻留于其中的存储器页的一或多个页属性时发生。
附图说明
图1是用于处理器的指令高速缓冲存储器的功能框图,其中所述指令高速缓冲存储器包含根据现有技术的扩展高速缓冲存储行;
图2是根据本发明的一个实施例的用于处理器的指令高速缓冲存储器的功能框图,其中所述指令高速缓冲存储器存储主高速缓冲存储行部分的页属性和扩展高速缓冲存储行的附加数据部分,所述扩展高速缓冲存储行潜在地包含跨页指令;
图3是根据本发明的一个实施例的图2的指令高速缓冲存储器的框图;
图4A是根据本发明的一个实施例的图3的指令高速缓冲存储器的扩展数据阵列的框图;
图4B是根据本发明的一个实施例的图3的指令高速缓冲存储器的标签阵列的框图;
图4C是根据本发明的一个实施例的图3的指令高速缓冲存储器中的潜在跨页指令位置的附加数据页属性的额外资源的框图;
图5是根据本发明的一个实施例的说明处理器利用图2和3的指令高速缓冲存储器的操作的流程图;
图6是根据本发明的一个实施例的说明填充图2和3的指令高速缓冲存储器的过程的流程图;
图7说明根据本发明的一个实施例的包含提取、解码和执行逻辑的处理器,所述逻辑处理指令,包含从图2和3的指令高速缓冲存储器提取的跨页指令;以及
图8是根据本发明的一个实施例的示范性基于处理器的系统的框图,所述系统可包含图2和3的指令高速缓冲存储器。
具体实施方式
现参考各图,描述本发明的若干示范性实施例。词语“示范性”在本文中用于表示“充当实例、例子或说明”。本文中被描述为“示范性的”任何实施例不必须被理解为比其它实施例优选或有利。
本发明揭示用于维持指令高速缓冲存储器的系统和方法,所述指令高速缓冲存储器包含:扩展高速缓冲存储行和所述扩展高速缓冲存储行的主高速缓冲存储行部分的页属性;以及至少对于一或多个预定义潜在跨页指令位置,所述对应扩展高速缓冲存储行的附加数据部分的额外页属性。此外,揭示用于处理从具有扩展高速缓冲存储行的指令高速缓冲存储器提取的跨页指令的系统和方法。
就此而言,图2说明根据本发明的一个实施例的用于处理器的指令高速缓冲存储器18。如所说明,指令高速缓冲存储器18包含扩展高速缓冲存储行20-0到20-NECL(大体上在本文中统称为扩展高速缓冲存储行20且个别地称为扩展高速缓冲存储行20),其中扩展高速缓冲存储行20的数目等于NECL+1。扩展高速缓冲存储行20中的每一者包含主高速缓冲存储行部分22和附加数据部分24。此外,指令高速缓冲存储器18包含对应扩展高速缓冲存储行20-0到20-NECL的主高速缓冲存储行部分22的页属性26-0到26-NECL(大体上在本文中统称为页属性26且个别地称为页属性26)以及指令高速缓冲存储器18中的数个潜在跨页指令位置(NPPCL+1)的额外页属性28-0到28-NPPCL(大体上在本文中统称为额外页属性28且个别地称为额外页属性28),其中潜在跨页指令位置的数目大于或等于1。指令高速缓冲存储器18优选地从较高层级高速缓冲存储器或主存储器高速缓冲存储可变长度指令的混合体(例如,16位与32位指令的混合体)。
更具体来说,扩展高速缓冲存储行20的主高速缓冲存储行部分22从主存储器的对应行高速缓冲存储指令数据,其中所述主存储器组织成数个存储器页。因此,高速缓冲存储于扩展高速缓冲存储行20中的一者的主高速缓冲存储行部分22中的指令数据为来自存储器页中的一者中的存储器行的指令数据。所述指令数据在本文中被称为由指令高速缓冲存储器18高速缓冲存储但驻留在或主要存储于主存储器中。扩展高速缓冲存储行20中的每一者的附加数据部分24存储紧随相同扩展高速缓冲存储行20的主高速缓冲存储行部分22中的指令数据驻留于其中的存储器行之后的存储器行的开始部分的副本。因此,扩展高速缓冲存储行20中的一者的主高速缓冲存储行部分22从一个存储器行高速缓冲存储指令数据,且所述扩展高速缓冲存储行20的附加数据部分24从下一存储器行的开始高速缓冲存储附加数据。假定两个连续存储器行高速缓冲存储于扩展高速缓冲存储行20-0与20-1中,则扩展高速缓冲存储行20-0的附加数据部分24存储扩展高速缓冲存储行20-1的主高速缓冲存储行部分22的开始部分的副本。在一个例示性实施例中,扩展高速缓冲存储行20的主高速缓冲存储行部分22各自为64字节或各自为16字,且扩展高速缓冲存储行20的附加数据部分24各自为16位或各自为二分之一字。
页属性26为对应扩展高速缓冲存储行20的主高速缓冲存储行部分22的存储器页的属性。更具体来说,对于每一扩展高速缓冲存储行20,扩展高速缓冲存储行20的主高速缓冲存储行部分22的页属性26为高速缓冲存储于主高速缓冲存储行部分22中的指令数据驻留于其中的存储器页的一或多个页属性。因此,举例来说,页属性26-0为从中获得高速缓冲存储于扩展高速缓冲存储行20-0的主高速缓冲存储行部分22中的指令数据的行的存储器页的属性,所述存储器页在本文中被称为指令数据驻留于其中的存储器页。页属性26优选地包含对应存储器页的执行权限,且在一个特定实施例中,为或包含用户执行权限(UX)和特许执行权限(PX)。
优选地仅针对指令高速缓冲存储器18中的预定义数目个潜在跨页指令位置存储额外页属性28。每一潜在跨页指令为可存储跨页指令的扩展高速缓冲存储行20中的一者,所述跨页指令横跨扩展高速缓冲存储行20的主高速缓冲存储行部分22的末端且跨越到扩展高速缓冲存储行20的附加数据部分24中。在一个示例性实施例中,存储器页的页大小为4千字节(KB),且指令高速缓冲存储器18为具有编号为组0到组63的64个组的N路组关联式高速缓冲存储器(N-way set associative cache)。由此,潜在跨页指令位置对应于指令高速缓冲存储器18的组63。换句话说,潜在跨页指令位置见于存储器的行63、127、191、255等处,所有这些行仅高速缓冲存储于指令高速缓冲存储器18的组63中。因此,仅指令高速缓冲存储器18的组63含有潜在跨页指令位置,且仅针对指令高速缓冲存储器18的组63中的扩展高速缓冲存储行20的附加数据部分24存储额外页属性28。然而,注意,此仅为一个实例。潜在跨页指令位置将取决于指令高速缓冲存储器18的特定实施方案而变化。
额外页属性28一般来说是从中获得对应扩展高速缓冲存储行20的附加数据部分24的存储器页的页属性,所述存储器页在本文中被称为那些扩展高速缓冲存储行20的附加数据部分24中指令数据驻留于其中的存储器页。额外页属性28优选地包含对应存储器页的执行权限,且在一个特定实施例中,为或包含UX和PX。另外,如下文所论述,在一些实施例中,对应扩展高速缓冲存储行20的附加数据部分24的UX和PX可能过载有响应于在尝试填充附加数据部分24时所接收的非权限型错误(例如使用动态分页时的页转译错误)而指示在用户模式和特许模式两者中皆缺乏执行权限的值。
图3说明根据本发明的一个实施例的图2的指令高速缓冲存储器18的框图。如所说明,指令高速缓冲存储器18包含控制器30、存储扩展高速缓冲存储行20的扩展数据阵列32、尤其存储扩展高速缓冲存储行20的主高速缓冲存储行部分22的页属性26的标签阵列34,以及存储为潜在跨页指令位置的扩展高速缓冲存储行20的附加数据部分24的页属性的额外资源36。如下文详言论述,当从指令高速缓冲存储器18提取指令时,将虚拟地址(VA)输入到控制器30。控制器30接着控制标签阵列34扩展数据阵列32和额外资源36,使得指令高速缓冲存储器18输出在开始于所述虚拟地址处的地址存储在指令高速缓冲存储器18中的预定义量的指令数据(例如,4个字)、对应扩展高速缓冲存储行20的主高速缓冲存储行部分22的页属性26,以及对应扩展高速缓冲存储行20的附加数据部分24的额外页属性28(如果对应扩展高速缓冲存储行20为潜在跨页指令位置)。
在下文论述的示例性实施例中,指令高速缓冲存储器18为具有M+1个组的N+1路组关联式高速缓冲存储器。在此示范性实施例中,控制器30接收虚拟地址,其中所述虚拟地址包含标签、组和偏移。作为非限制性实例,虚拟地址可为32位虚拟地址,其中位0到5为偏移,位6到11为组,且位12到31为标签。如所属领域的技术人员将了解,20位标签识别由虚拟地址寻址的存储器的大约1百万个4KB块中的一者,6位组识别由虚拟地址寻址的存储器的4KB中的存储器行的64个组中的一者,且6位偏移识别由虚拟地址寻址的组中的64个字节中的一者。在接收到虚拟地址之后,控制器30即刻将标签和组输出到标签阵列34,且将组和偏移输出到扩展数据阵列32。此外,如果虚拟地址对应于潜在跨页指令位置中的一者,那么控制器30将组或从所述组导出的适当控制信号输出到额外资源36。如下文所论述,使用标签和组,标签阵列34输出指令高速缓冲存储器18的N+1路中存储所寻址指令数据的一路,以及高速缓冲存储于扩展数据阵列32的对应组和路中的扩展高速缓冲存储行20的主高速缓冲存储行部分22的页属性26。接着使用来自虚拟地址的组和偏移以及由标签阵列34输出的路,扩展数据阵列32输出由扩展数据阵列32对于所述虚拟地址高速缓冲存储的指令数据。最后,如果虚拟地址对应于潜在跨页指令位置中的一者,那么额外资源36输出对应于所述潜在跨页指令位置的扩展高速缓冲存储行20的附加数据部分24的额外页属性28。
图4A到4C更详细地说明根据本发明的一个实施例的图3的扩展数据阵列32、标签阵列34和额外资源36。在此实施例中,指令高速缓冲存储器18为具有M+1个组的N+1路组关联式高速缓冲存储器。然而,指令高速缓冲存储器18可替代地为直接映射式或全关联式。如图4A中所示,扩展数据阵列32存储以每组N+1路组织成M+1组的数个扩展高速缓冲存储行20。因此,对于每一组,扩展数据阵列32包含N+1个扩展高速缓冲存储行20。如上文所论述,每一扩展高速缓冲存储行20包含主高速缓冲存储行部分22和附加数据部分24。注意,尽管在此实施例中,主高速缓冲存储行部分22与扩展高速缓冲存储行20的附加数据部分24实施于扩展数据阵列32中,但指令高速缓冲存储器18不限于此。主高速缓冲存储行部分22与附加数据部分24可替代地实施于单独资源中。
图4B更详细地说明根据本发明的一个实施例的图3的标签阵列34。如所说明,标签阵列34存储以每组N+1路组织成M+1组的数个标签项。因此,对于每一组,标签阵列34包含N+1个标签项。每一标签项包含扩展数据阵列32中的对应扩展高速缓冲存储行20的标签和页属性26。更具体来说,作为一实例,用于组0、路0的标签项包含:(1)高速缓冲存储于扩展高速缓冲存储行20(高速缓冲存储于扩展数据阵列32中组0、路0处)的主高速缓冲存储行部分22中的存储器行的虚拟地址的标签,及(2)高速缓冲存储于组0、路0处的扩展高速缓冲存储行20的主高速缓冲存储行部分22中的存储器行驻留于其中的存储器页的页属性26(例如,UX和PX)。在操作中,当将来自虚拟地址的标签和组输入到标签阵列34中时,将所述组中的标签项中的标签与来自虚拟地址的标签进行比较。如果存在匹配,那么由标签阵列34输出匹配标签项的路。使用由标签阵列34输出的路连同来自虚拟地址的组和偏移,可从扩展数据阵列32获得所需指令数据。
图4C更详细地说明根据本发明的一个实施例的图3的额外资源36。如所说明,额外资源36存储潜在跨页指令位置的额外页属性28。在此特定实施例中,所有潜在跨页指令位置位于组M中。举例来说,如果存储器页中的每一者的大小为4KB或4KB的整数倍,组的数目(M+1)为64,其中所述组编号为组0到组M,且每一组包含N+1个64字节存储器行,那么所有潜在跨页位置出现于组63中。由此,在操作中,如果输入到指令高速缓冲存储器18的虚拟地址中的组为组63,那么由标签阵列34输出的路被输入到额外资源36,额外资源36又输出对于存储于由标签阵列34针对组M输出的路中的扩展高速缓冲存储行20所高速缓冲存储的额外页属性(例如,UX和PX)。
图5说明根据本发明的一个实施例的处理器利用指令高速缓冲存储器18的操作。首先,处理器在指令高速缓冲存储器18的单个扩展高速缓冲存储行20中高速缓冲存储跨页指令(步骤100)。如上文所论述,跨页指令的第一部分驻留在一个存储器页中最末存储器行的末端处且高速缓冲存储于扩展高速缓冲存储行20的主高速缓冲存储行部分22中。跨页指令的第二部分驻留在下一存储器页中的第一存储器行的开始处。跨页指令的第二部分的副本高速缓冲存储为扩展高速缓冲存储行20的附加数据部分24中的附加数据。值得注意的是,跨页指令的第二部分可高速缓冲存储于下一扩展高速缓冲存储行20的主高速缓冲存储行部分22的开始处,且在此情况下,扩展高速缓冲存储行20的附加数据部分24为下一扩展高速缓冲存储行20的主高速缓冲存储行部分22的开始的副本。
在高速缓冲存储扩展高速缓冲存储行20中的跨页指令之后的某一时间,处理器从扩展高速缓冲存储行20提取跨页指令(步骤102)。处理器接着基于扩展高速缓冲存储行20的主高速缓冲存储行部分22的页属性26以及扩展高速缓冲存储行20的附加数据部分24的额外页属性28两者确定是否准许跨页指令执行(步骤104)。更具体来说,在一个优选实施例,页属性26为扩展高速缓冲存储行20的主高速缓冲存储行部分22的UX和PX权限,且额外页属性28为扩展高速缓冲存储行20的附加数据部分24的UX和PX权限。如果处理器当前正在用户模式中操作,那么如果主高速缓冲存储行部分22的UX和附加数据部分24的UX两者皆被设定到指示对于用户模式准许跨页指令的执行的值,处理器确定跨页指令被准许执行。否则,如果主高速缓冲存储行部分22的UX或附加数据部分24的UX都被设定到指示对于用户模式不准许执行的值,那么处理器确定对于用户模式不准许跨页指令的执行。类似地,如果处理器当前正在特许模式中操作,那么如果主高速缓冲存储行部分22的PX和附加数据部分24的PX皆被设定到指示对于特许模式准许跨页指令的执行的值,处理器确定跨页指令被准许执行。否则,如果主高速缓冲存储行部分22的PX或附加数据部分24的PX都被设定到指示对于特许模式不准许执行的值,那么处理器确定对于特许模式不准许跨页指令的执行。
如果跨页指令被准许执行,那么处理器执行跨页指令(步骤106)。如果跨页指令不被准许执行,那么处理器不执行跨页指令,且在一些实施例中,报告跨页指令被禁止执行(步骤108)。举例来说,处理器可将预取中止(pre-fetch abort)报告给由处理器执行的操作系统的异常处置器。
图6是说明根据本发明的一个实施例的用于高速缓冲存储指令高速缓冲存储器18的扩展高速缓冲存储行20中的一者中的指令数据的流程图。首先,指令高速缓冲存储器18(且在一个特定实施例中,指令高速缓冲存储器18的控制器30)从较高层级高速缓冲存储器或主存储器请求在扩展高速缓冲存储行20中的一者的主高速缓冲存储行部分22中高速缓冲存储指令数据行(步骤200)。值得注意的是,如果在请求在扩展高速缓冲存储行20的主高速缓冲存储行部分22中高速缓冲存储指令数据行时存在错误,那么不高速缓冲存储所述行,报告错误,且所述过程结束。假定不存在错误,则响应于对指令数据行的请求,指令高速缓冲存储器18接收并缓冲所请求指令数据驻留于其中的存储器页的页属性26,对于图6的论述,所述页属性26为所请求指令数据驻留于其中的存储器页的UX和PX权限(步骤202)。此外,指令高速缓冲存储器18接收并缓冲所请求的指令数据行(步骤204)。
指令高速缓冲存储器18(且在一个特定实施例中,指令高速缓冲存储器18的控制器30)请求在扩展高速缓冲存储行20的附加数据部分24中高速缓冲存储指令数据(步骤206)。举例来说,如果附加数据部分24的大小为二分之一字,那么指令高速缓冲存储器18从下一存储器行请求指令数据的第一二分之一字。指令高速缓冲存储器18确定在步骤200中请求的指令数据行驻留于其中的存储器行是否为潜在跨页指令位置(步骤208)。如果否,那么指令高速缓冲存储器18接收并缓冲扩展高速缓冲存储行20的附加数据部分24的所请求指令数据(步骤210)。
返回到步骤208,如果步骤200中所请求的指令数据驻留于其中的存储器行为潜在跨页指令位置,那么指令高速缓冲存储器18确定响应于步骤206中对扩展高速缓冲存储行20的附加数据部分24的数据的请求而接收到错误(步骤212)。如果否,那么指令高速缓冲存储器18接收并缓冲扩展高速缓冲存储行20的附加数据部分24的额外页属性28,对于图6的论述,所述额外页属性28为附加数据部分24的指令数据驻留于其中的存储器页的UX和PX权限(步骤214)。否则,如果响应于步骤206中对扩展高速缓冲存储行20的附加数据部分24的数据的请求而返回错误,那么指令高速缓冲存储器过载并缓冲扩展高速缓冲存储行20的附加数据部分24的UX和PX权限(步骤216)。如本文所使用,过载的UX和PX权限为设定到指示在用户模式中不准许执行且在特许模式中不准许执行的值的UX和PX权限。举例来说,在一个特定实施例中,使用动态分页来分配存储器页。在下一存储器行驻留于其中的页尚未分配的情况下,可能响应于步骤206中的请求而将页转译错误返回到指令高速缓冲存储器18。作为响应,因为不知道尚未分配的存储器页的实际UX和PX权限,因此指令高速缓冲存储器18产生并缓冲扩展高速缓冲存储行20的附加数据部分24的经过载UX和PX权限,其中再次,所述经过载UX和PX权限指示对于用户模式不准许执行且对于特许模式不准许执行。
此时,不管是从步骤210、214还是216进行,指令高速缓冲存储器18用所缓冲的指令数据写入扩展高速缓冲存储行20中的所选者(步骤218)。更具体来说,指令高速缓冲存储器18将步骤202中接收并缓冲的指令数据写入到扩展高速缓冲存储行20的主高速缓冲存储行部分22。此外,如果在步骤214中对于附加数据部分24接收并缓冲指令数据,那么指令高速缓冲存储器18将步骤214中接收并缓冲的指令数据写入到扩展高速缓冲存储行20的附加数据部分24。对于上文所描述的指令高速缓冲存储器18的N+1路组关联式实施例,指令数据被写入到的扩展高速缓冲存储行20为指令高速缓冲存储器18中的扩展高速缓冲存储行20的对应组中的N+1个扩展高速缓冲存储行20中的一者。
此外,指令高速缓冲存储器18将对应标签项写入指令高速缓冲存储器18的标签阵列34中(步骤220)。更具体来说,对于上文所描述的指令高速缓冲存储器18的N+1路组关联式实施例,指令高速缓冲存储器18将高速缓冲存储于扩展高速缓冲存储行20中的存储器行的虚拟地址的标签和扩展高速缓冲存储行20的主高速缓冲存储行部分22的UX和PX权限写入到用于适当组和路的标签项。最后,如果所高速缓冲存储的存储器行为潜在跨页指令位置,那么指令高速缓冲存储器18将在步骤214中接收并缓冲或在步骤216中过载并缓冲的额外UX和PX权限写入到额外资源36中的适当位置,所述额外资源36存储为潜在跨页指令位置的扩展高速缓冲存储行20的附加数据部分24的额外页属性28(步骤222)。
在图6说明高速缓冲存储指令高速缓冲存储器18中的指令数据的过程的同时,图7说明根据本发明的一个实施例的处理器的管线38,其操作以从指令高速缓冲存储器18提取、解码并执行指令。最初,下一提取选择逻辑40选择要提取的下一指令的虚拟地址。值得注意的是,管线38能够并行地处理多个指令。在一个特定实施例中,管线38中的每一级具有三个字(即,六个二分之一字)的宽度。在另一特定实施例中,当在支持可变长度指令的模式中操作时,管线38中的每一级具有三个字或两个字的宽度。然而,注意,管线38的宽度可取决于特定实施方案而变化。一旦虚拟地址经选择且由下一提取选择逻辑40输出,提取逻辑42即操作以从指令高速缓冲存储器18提取在所述虚拟地址处开始的指令数据的预定义数目个字节。当从指令高速缓冲存储器18提取指令数据时,指令高速缓冲存储器18返回在所述虚拟地址处开始的指令数据的预定义数目个字节、对应扩展高速缓冲存储行20的主高速缓冲存储行部分22的页属性26,以及(如果使用)对应扩展高速缓冲存储行20的附加数据部分24的额外页属性28。
在此实施例中,解码逻辑44处理指令数据以识别在此实例中称为指令I0到I2的数个指令。注意,尽管此处展示三个指令,但管线38不限于此。在此特定实例中,解码逻辑44确定指令I0和I1不是跨页指令,而指令I2是跨页指令。另外,页属性26和28为UX和PX权限。在此实施例中,解码逻辑44检测指令I0到I2是否被准许执行。然而,应注意,用于检测指令I0到I2是否被准许执行的检测逻辑可取决于特定实施方案而实施于提取逻辑42或解码逻辑44中。更具体来说,解码逻辑44检查针对从中提取指令I0到I2的扩展高速缓冲存储行20的主高速缓冲存储行部分22所返回的UX和PX权限。在此实例中,基于处理器的当前执行模式以及主高速缓冲存储行部分22的UX和PX权限,解码逻辑44确定指令I0到I1被准许执行,且由此,指令I0和I1被标记为“好”。然而,对于跨页指令I2,解码逻辑44还检查对应扩展高速缓冲存储行20的附加数据部分24的UX和PX权限。在此实例中,基于处理器的当前执行模式以及附加数据部分24的UX和PX权限,解码逻辑44确定跨页指令I2不被准许执行,且由此给跨页指令I2标上旗标“坏”。以此方式,基于主高速缓冲存储行部分22的UX和PX权限以及对应扩展高速缓冲存储行20的附加数据部分24的UX和PX权限两者做出关于跨页指令是否被准许执行的确定。
解码逻辑44将指令I0和I1发布到执行逻辑46以供执行。然而,因为跨页指令I2被标上旗标“坏”,所以解码逻辑44不将跨页指令I2发布到执行逻辑46。确切地说,解码逻辑44将跨页指令I2的虚拟地址输出到重新提取寄存器48,且接着等待指令I0和I1完成执行。一旦指令I0和I1已完成执行而使得“坏”跨页指令I2为需要执行的下一指令,解码逻辑44就触发管线38的清洗,且将“坏”跨页指令I2的虚拟地址从重新提取寄存器48输出到无效化逻辑50和下一提取选择逻辑40两者。管线38的清洗是由可在解码逻辑44内部或外部的适当逻辑执行。无效化逻辑50接着无效化指令高速缓冲存储器18中的对应扩展高速缓冲存储行20,且下一提取选择逻辑40将“坏”跨页指令I2的虚拟地址输出到提取逻辑42。
在无效化完成之后,提取逻辑42试图从指令高速缓冲存储器18重新提取跨页指令。值得注意的是,现在跨页指令为管线38中的最旧的指令。另外,管线38仅允许并行地处理来自相同扩展高速缓冲存储行20的指令,因此无其它指令随跨页指令而经过管线38。当重新提取跨页指令时,因为对应扩展高速缓冲存储行20已被无效化,因此在指令高速缓冲存储器18中存在未中(miss)。此高速缓冲存储未中意味着“坏”跨页指令已从指令高速缓冲存储器18中的对应扩展高速缓冲存储行20移除。因此,不同于仅无效化主高速缓冲存储线的常见无效化操作,由无效化逻辑50执行的无效化操作无效化主高速缓冲存储行部分22与扩展高速缓冲存储行20的附加数据部分24两者。
响应于指令高速缓冲存储器18中的未中,从较高层级高速缓冲存储或主存储器提取跨页指令。假定较高层级高速缓冲存储器或主存储器不了解与扩展高速缓冲存储行20类似的扩展存储器行,则重新提取跨页指令包含请求来自对应存储器行的末端的跨页指令的第一部分以及来自下一存储器行的开始的跨页指令的第二部分两者。当再次基于两个对应存储器页的UX和PX权限或响应于提取跨页指令的第二部分时的非权限型错误(例如,转译错误)而做出跨页指令为“坏”的确定时,提取逻辑42或解码逻辑44在适当的情况下将错误(即,权限错误或非权限型错误)报告给由处理器执行的操作系统的异常处置器。如果存在基于非权限的错误类型,那么重新提取过程实际上获得由跨页指令的第二部分的先前经过载UX和PX权限表示的实际基于非权限的错误类型。具体来说,响应于尝试提取跨页指令的第二部分或更具体来说(在此实施例中)响应于请求对应存储器页的页属性而获得基于非权限的错误类型。值得注意的是,仅在解码逻辑44确定“坏”跨页指令为管线38中的最旧指令时(即,当知道指令流不会从“坏”跨页指令岔开时)才报告错误。一旦报告权限式错误或基于非权限的错误,则操作根据异常处置器的指示而继续。举例来说,异常处置器可校正错误,且接着引起指令数据(包含先前为“坏”的跨页指令)的重新提取以及指令数据于指令高速缓冲存储器18中的高速缓冲存储。
根据本文所揭示的实施例的用于跟踪和利用指令高速缓冲存储器18的扩展高速缓冲存储行20的附加数据部分24的额外页属性28的系统和方法可提供于或集成到任何基于处理器的装置中。实例包含(但不限于)机顶盒、娱乐单元、导航装置、通信装置、固定位置数据单元、移动位置数据单元、移动电话、蜂窝电话、计算机、便携式计算机、桌上型计算机、个人数字助理(PDA)、监视器、计算机监视器、电视、调谐器、无线电、卫星无线电、音乐播放器、数字音乐播放器、便携型音乐播放器、数字视频播放器、视频播放器、数字视频光盘(DVD)播放器和便携型数字视频播放器。
就此而言,图8说明可使用指令高速缓冲存储器18的基于处理器的系统52的实例。在此实例中,基于处理器的系统52包含一个或多个处理器54,每一处理器包含一或多个处理核心56。处理器54可为主控装置。处理器54具有耦合到处理器核心56以快速存取暂时存储的数据的高速缓冲存储器58,包含指令高速缓冲存储器18。处理器54耦合到系统总线60,且可使包含在基于处理器的系统52中的主控装置与从属装置互相耦合。众所周知,处理器54通过经由系统总线60交换地址、控制和数据信息而与这些其它装置通信。尽管图8中未说明,但可提供多个系统总线60,其中每一系统总线60构成不同构造。
其它主控和从属装置可连接到系统总线60。如图8中所示,作为实例,这些装置可包含存储器系统62、一或多个输入装置64、一或多个输出装置66、一或多个网络接口装置68,和一或多个显示器控制器70。输入装置64可包含任何类型的输入装置,包含但不限于输入键、开关、话音处理器,等。输出装置66可包含任何类型的输出装置,包含但不限于音频、视频、其它视觉的指示器,等。网络接口装置68可为经配置以允许数据与网络72间的交换的任何装置。网络72可为任何类型的网络,包含但不限于有线或无线网络、私人或公共网络、局域网(LAN)、无线局域网(WLAN)和因特网。网络接口装置68可经配置以支持所需的任何类型的通信协议。存储器系统62可包含一或多个存储器单元74-0到74-N。
处理器54还可经配置以经由系统总线60存取显示器控制器70以控制发送到一或多个显示器76的信息。显示器控制器70将信息发送到显示器76以待经由一或多个视频处理器78显示,所述视频处理器78将待显示的信息处理成适合于显示器76的格式。显示器76可包含任何类型的显示器,包含但不限于阴极射线管(CRT)、液晶显示器(LCD)、等离子显示器,等。
所属领域的技术人员将进一步了解,结合本文所揭示的实施例描述的多种说明性逻辑块、模块、电路和算法可以实施为电子硬件、存储在存储器或另一计算机可读媒体中且通过处理器或其它处理装置执行的指令或两者的组合。作为实例,本文所述的主控装置和从属装置可用于任何电路、硬件组件、集成电路(IC)或IC芯片中。本文所揭示的存储器可为任何类型和大小的存储器,且可经配置以存储所需的任何类型的信息。为清楚地说明此可互换性,上文已大体上关于其功能性而描述了各种说明性组件、块、模块、电路和步骤。如何实施此功能性取决于特定应用、设计选项和/或强加于整个系统的设计约束。所属领域的技术人员可针对每一特定应用以不同方式来实施所描述的功能性,但所述实施方案决定不应被解释为会导致脱离本发明的范围。
结合本文揭示的实施例描述的各种说明性功能元件、逻辑块、模块和电路可以通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或经设计以执行本文所述的功能的其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件或其任何组合来实施或执行。处理器可为微处理器,但在替代方案中,处理器可为任何常规处理器、控制器、微控制器或状态机。处理器还可实施为计算装置的组合,例如,DSP与微处理器的组合、多个微处理器的组合、结合DSP核心的一或多个微处理器,或任何其它此配置。
本文所揭示的实施例可以体现在硬件和存储在硬件中的指令中,并且举例来说可驻留在随机存取存储器(RAM)、快闪存储器、只读存储器(ROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、寄存器、硬盘、可移除式磁盘、CD-ROM或所属领域中已知的任何其它形式的计算机可读媒体中。示范性存储媒体耦合到处理器,使得处理器可从存储媒体读取信息并将信息写入到存储媒体。在替代方案中,存储媒体可与处理器成一体式。处理器及存储媒体可驻留于ASIC中。ASIC可以驻留在远端台中。在替代方案中,处理器与存储媒体可作为离散组件驻留在远端台、基站或服务器中。
还应注意,描述本文中的示范性实施例中的任一者中描述的操作步骤是为了提供实例和论述。所描述的操作可以不同于所说明顺序的大量不同顺序执行。另外,单个操作步骤中所描述的操作实际上可在数个不同步骤中执行。另外,示范性实施例中所论述的一或多个操作步骤可进行组合。应理解,所属领域的技术人员将容易明白,流程图中所说明的操作步骤可以经受大量不同修改。所属领域的技术人员还将理解,可使用各种不同技术和技法中的任一者来表示信息和信号。举例来说,可由电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示在以上描述中始终参考的数据、指令、命令、信息、信号、位、符号及码片。
本发明的先前描述经提供以使所属领域的技术人员能够制造或使用本发明。所属领域的技术人员将容易了解对本发明的各种修改,且本文中界定的一般原理可应用于其它变化而不背离本发明的精神或范围。因此,不希望本发明限于本文中描述的实例和设计,而是赋予其与本文中揭示的原理和新颖特征相一致的最广范围。

Claims (24)

1.一种操作包括指令高速缓冲存储器的处理器的方法,所述指令高速缓冲存储器包括扩展高速缓冲存储行,其中每一扩展高速缓冲存储行包括主高速缓冲存储行部分和附加数据部分,所述方法包括:
在所述指令高速缓冲存储器的单个扩展高速缓冲存储行中高速缓冲存储跨页指令,其中所述跨页指令的第一部分驻留在第一存储器页中且高速缓冲存储于所述扩展高速缓冲存储行的所述主高速缓冲存储行部分中以及所述跨页指令的第二部分驻留在第二存储器页中且高速缓冲存储于所述扩展高速缓冲存储行的所述附加数据部分中;
高速缓冲存储与所述扩展高速缓冲存储行相关联的所述扩展高速缓冲存储行的所述主高速缓冲存储行部分的一或多个存储器页属性,其中所述扩展高速缓冲存储行的所述主高速缓冲存储行部分的所述一或多个存储器页属性包括所述第一存储器页的一或多个执行权限,所述一或多个执行权限各自包括表示对于多个处理模式中的对应一者是否准许执行的多个执行权限位;
高速缓冲存储与所述扩展高速缓冲存储行相关联的所述扩展高速缓冲存储行的所述附加数据部分的所述一或多个存储器页属性,其中所述扩展高速缓冲存储行的所述附加数据部分的所述一或多个存储器页属性包括所述第二存储器页的一或多个执行权限,所述一或多个执行权限各自包括表示对于多个处理模式中的对应一者是否准许执行的多个执行权限位;
从所述扩展高速缓冲存储行中提取所述跨页指令;以及
基于所述扩展高速缓冲存储行的所述附加数据部分的所述一或多个存储器页属性而检测所述跨页指令被禁止执行。
2.根据权利要求1所述的方法,其中检测所述跨页指令被禁止执行包括基于所述扩展高速缓冲存储行的所述主高速缓冲存储行部分的所述一或多个存储器页属性以及所述扩展高速缓冲存储行的所述附加数据部分的所述一或多个存储器页属性而检测所述跨页指令被禁止执行。
3.根据权利要求1所述的方法,其进一步包括报告所述跨页指令被禁止执行。
4.根据权利要求1所述的方法,其中高速缓冲存储所述扩展高速缓冲存储行的所述附加数据部分的所述一或多个存储器页属性包括:
响应于请求所述跨页指令的所述第二部分的一或多个存储器页属性而获得基于非权限的错误信息;以及
响应于获得所述基于非权限的错误信息,将表示在一或多个执行模式中的任一者中不准许执行的一或多个经过载执行权限高速缓冲存储为所述扩展高速缓冲存储行的所述附加数据部分的所述一或多个执行权限。
5.根据权利要求4所述的方法,其进一步包括响应于检测到所述跨页指令被禁止执行而:
获得由所述一或多个经过载执行权限表示的错误类型;以及
报告所述错误类型。
6.根据权利要求1所述的方法,其进一步包括:
将多个指令高速缓冲存储于所述指令高速缓冲存储器中,所述多个指令包括包含所述跨页指令的一或多个跨页指令;以及
对于所述指令高速缓冲存储器中的一或多个跨页指令位置中的每一个且仅每一个跨页指令位置,响应于将指令数据高速缓冲存储于对应于所述跨页指令位置的扩展高速缓冲存储行中,高速缓冲存储所述扩展高速缓冲存储行的所述主高速缓冲存储行部分和所述扩展高速缓冲存储行的所述附加数据部分两者的所述一或多个存储器页属性。
7.根据权利要求1所述的方法,其进一步包括响应于检测到所述跨页指令被禁止执行而无效化含有所述跨页指令的所述单个扩展高速缓冲存储行。
8.一种处理器,其包括:
指令高速缓冲存储器,其包括扩展高速缓冲存储行,其中每一扩展高速缓冲存储行包括主高速缓冲存储行部分和附加数据部分;
所述处理器经配置以在所述指令高速缓冲存储器的单个扩展高速缓冲存储行中高速缓冲存储跨页指令,其中所述跨页指令的第一部分驻留在第一存储器页中且高速缓冲存储于所述扩展高速缓冲存储行的所述主高速缓冲存储行部分中以及所述跨页指令的第二部分驻留在第二存储器页中且高速缓冲存储于所述扩展高速缓冲存储行的所述附加数据部分中;
所述指令高速缓冲存储器经配置以:
高速缓冲存储与所述扩展高速缓冲存储行相关联的所述扩展高速缓冲存储行的所述主高速缓冲存储行部分的一或多个存储器页属性,其中所述扩展高速缓冲存储行的所述主高速缓冲存储行部分的所述一或多个存储器页属性包括所述第一存储器页的一或多个执行权限,所述一或多个执行权限各自包括表示对于多个处理模式中的对应一者是否准许执行的多个执行权限位;以及
高速缓冲存储与所述扩展高速缓冲存储行相关联的所述扩展高速缓冲存储行的所述附加数据部分的所述一或多个存储器页属性,其中所述扩展高速缓冲存储行的所述附加数据部分的所述一或多个存储器页属性包括所述第二存储器页的一或多个执行权限,所述一或多个执行权限各自包括表示对于多个处理模式中的对应一者是否准许执行的多个执行权限位;
提取选择逻辑,其经配置以从所述扩展高速缓冲存储行中提取所述跨页指令;以及解码逻辑的检测逻辑,其经配置以基于所述扩展高速缓冲存储行的所述附加数据部分的所述一或多个存储器页属性而检测所述跨页指令被禁止执行。
9.根据权利要求8所述的处理器,其中所述检测逻辑经配置以基于所述扩展高速缓冲存储行的所述主高速缓冲存储行部分的所述一或多个存储器页属性以及所述扩展高速缓冲存储行的所述附加数据部分的所述一或多个存储器页属性而检测所述跨页指令被禁止执行。
10.根据权利要求8所述的处理器,其中所述处理器报告检测到所述跨页指令被禁止执行。
11.根据权利要求8所述的处理器,其中为了高速缓冲存储所述扩展高速缓冲存储行的所述附加数据部分的所述一或多个存储器页属性,所述指令高速缓冲存储器进一步经配置以进行以下操作:
响应于请求所述跨页指令的所述第二部分的一或多个存储器页属性而获得基于非权限的错误信息;以及
响应于获得所述基于非权限的错误信息,将表示在一或多个执行模式中的任一者中不准许执行的一或多个经过载执行权限高速缓冲存储为所述扩展高速缓冲存储行的所述附加数据部分的所述一或多个执行权限。
12.根据权利要求11所述的处理器,其中响应于检测到所述跨页指令被禁止执行,所述处理器进一步经配置以进行以下操作:
获得由所述一或多个经过载执行权限表示的错误类型;以及
报告所述错误类型。
13.根据权利要求8所述的处理器,其中所述指令高速缓冲存储器进一步经配置以进行以下操作:
将多个指令高速缓冲存储于所述指令高速缓冲存储器中,所述多个指令包括包含所述跨页指令的一或多个跨页指令;以及
对于所述指令高速缓冲存储器中的一或多个跨页指令位置中的每一个且仅每一个跨页指令位置,响应于将指令数据高速缓冲存储于对应于所述跨页指令位置的扩展高速缓冲存储行中,高速缓冲存储所述扩展高速缓冲存储行的所述主高速缓冲存储行部分和所述扩展高速缓冲存储行的所述附加数据部分两者的所述一或多个存储器页属性。
14.根据权利要求8所述的处理器,其中所述处理器进一步经配置以响应于检测到所述跨页指令被禁止执行而无效化含有所述跨页指令的所述单个扩展高速缓冲存储行。
15.根据权利要求8所述的处理器,其集成到半导体裸片中。
16.根据权利要求8所述的处理器,其中所述处理器包含于从由以下各者组成的群组中选出的装置中:机顶盒、娱乐单元、导航装置、通信装置、固定位置数据单元、移动位置数据单元、移动电话、蜂窝电话、计算机、便携式计算机、桌上型计算机、个人数字助理PDA、监视器、计算机监视器、电视、调谐器、无线电、卫星无线电、音乐播放器、数字音乐播放器、便携型音乐播放器、数字视频播放器、视频播放器、数字视频光盘DVD播放器和便携型数字视频播放器。
17.一种包括指令高速缓冲存储器的处理器,所述指令高速缓冲存储器包括扩展高速缓冲存储行,其中每一扩展高速缓冲存储行包括主高速缓冲存储行部分和附加数据部分,所述处理器包括:
用于在所述指令高速缓冲存储器的单个扩展高速缓冲存储行中高速缓冲存储跨页指令的装置,其中所述跨页指令的第一部分驻留在第一存储器页中且高速缓冲存储于所述扩展高速缓冲存储行的所述主高速缓冲存储行部分中以及所述跨页指令的第二部分驻留在第二存储器页中且高速缓冲存储于所述扩展高速缓冲存储行的所述附加数据部分中;
用于高速缓冲存储与所述扩展高速缓冲存储行相关联的所述扩展高速缓冲存储行的所述主高速缓冲存储行部分的一或多个存储器页属性的装置,其中所述扩展高速缓冲存储行的所述主高速缓冲存储行部分的所述一或多个存储器页属性包括所述第一存储器页的一或多个执行权限,所示一或多个执行权限各自包括表示对于多个处理模式中的对应一者是否准许执行的多个执行权限位;
用于高速缓冲存储与所述扩展高速缓冲存储行相关联的所述扩展高速缓冲存储行的所述附加数据部分的所述一或多个存储器页属性的装置,其中所述扩展高速缓冲存储行的所述附加数据部分的所述一或多个存储器页属性包括所述第二存储器页的一或多个执行权限,所述一或多个执行权限各自包括表示对于多个处理模式中的对应一者是否准许执行的多个执行权限位;
用于从所述扩展高速缓冲存储行中提取所述跨页指令的装置;以及用于基于所述扩展高速缓冲存储行的所述附加数据部分的所述一或多个存储器页属性而检测所述跨页指令被禁止执行的装置。
18.一种用于处理器的指令高速缓冲存储器,其包括:
一或多个资源,其经配置以高速缓冲存储:
多个扩展高速缓冲存储行,所述多个扩展高速缓冲存储行中的每一扩展高速缓冲存储行包括主高速缓冲存储行部分和附加数据部分,
所述主高速缓冲存储行部分经配置以在第一存储器页中高速缓冲存储跨页指令的第一部分且所述附加数据部分经配置以在第二存储器页中高速缓冲存储所述跨页指令的第二部分;
所述多个扩展高速缓冲存储行中的每一者的所述主高速缓冲存储行部分的一或多个页存储器属性,其中所述主高速缓冲存储行部分的所述一或多个存储器页属性包括所述第一存储器页的一或多个执行权限,所述一或多个执行权限各自包括表示对于多个处理模式中的对应一者是否准许执行的多个执行权限位;以及
对于所述多个扩展高速缓冲存储行中的具有跨页指令位置的每一扩展高速缓冲存储行,具有跨页指令位置的所述扩展高速缓冲存储行的所述附加数据部分的一或多个额外存储器页属性,其中所述附加数据部分的所述一或多个存储器页属性包括所述第二存储器页的一或多个执行权限,所述一或多个执行权限各自包括表示对于多个处理模式中的对应一者是否准许执行的多个执行权限位。
19.根据权利要求18所述的指令高速缓冲存储器,其中所述一或多个执行权限响应于在提取所述扩展高速缓冲存储行的所述附加数据部分的指令数据时的非权限型错误而过载。
20.根据权利要求18所述的指令高速缓冲存储器,其中所述一或多个资源经配置以仅针对所述多个扩展高速缓冲存储行中的具有跨页指令位置的子组而高速缓冲存储所述一或多个额外存储器页属性。
21.根据权利要求18所述的指令高速缓冲存储器,其集成到半导体裸片中。
22.根据权利要求18所述的指令高速缓冲存储器,其中所述指令高速缓冲存储器包含于从由以下各者组成的群组中选出的装置中:机顶盒、娱乐单元、导航装置、通信装置、固定位置数据单元、移动位置数据单元、移动电话、蜂窝电话、计算机、便携式计算机、桌上型计算机、个人数字助理PDA、监视器、计算机监视器、电视、调谐器、无线电、卫星无线电、音乐播放器、数字音乐播放器、便携型音乐播放器、数字视频播放器、视频播放器、数字视频光盘DVD播放器和便携型数字视频播放器。
23.一种用于处理器的指令高速缓冲存储器,其包括:
一或多个用于高速缓冲存储以下各者的装置:
多个扩展高速缓冲存储行,所述多个扩展高速缓冲存储行中的每一扩展高速缓冲存储行包括主高速缓冲存储行部分和附加数据部分,所述主高速缓冲存储行部分经配置以在第一存储器页中高速缓冲存储跨页指令的第一部分且所述附加数据部分经配置以在第二存储器页中高速缓冲存储所述跨页指令的第二部分;
所述多个扩展高速缓冲存储行中的每一者的所述主高速缓冲存储行部分的一或多个存储器页属性,其中所述主高速缓冲存储行部分的所述一或多个存储器页属性包括所述第一存储器页的一或多个执行权限,所述一或多个执行权限各自包括表示对于多个处理模式中的对应一者是否准许执行的多个执行权限位;以及
对于所述多个扩展高速缓冲存储行中的具有跨页指令位置的每一扩展高速缓冲存储行,具有所述跨页指令位置的所述扩展高速缓冲存储行的所述附加数据部分的一或多个额外存储器页属性,其中所述附加数据部分的所述一或多个存储器页属性包括所述第二存储器页的一或多个执行权限,所述一或多个执行权限各自包括表示对于多个处理模式中的对应一者是否准许执行的多个执行权限位。
24.一种操作包括指令高速缓冲存储器的处理器的方法,所述方法包括:
高速缓冲存储多个扩展高速缓冲存储行,所述多个扩展高速缓冲存储行中的每一扩展高速缓冲存储行包括主高速缓冲存储行部分和附加数据部分,所述主高速缓冲存储行部分经配置以在第一存储器页中高速缓冲存储跨页指令的第一部分且所述附加数据部分经配置以在第二存储器页中高速缓冲存储所述跨页指令的第二部分;
高速缓冲存储所述多个扩展高速缓冲存储行中的每一者的所述主高速缓冲存储行部分的一或多个存储器页属性,其中所述主高速缓冲存储行部分的所述一或多个存储器页属性包括所述第一存储器页的一或多个执行权限,所述一或多个执行权限各自包括表示对于多个处理模式中的对应一者是否准许执行的多个执行权限位;以及
高速缓冲存储对于所述多个扩展高速缓冲存储行中的具有跨页指令位置的每一扩展高速缓冲存储行,具有跨页指令位置的所述扩展高速缓冲存储行的所述附加数据部分的一或多个额外存储器页属性,其中所述附加数据部分的所述一或多个存储器页属性包括所述第二存储器页的一或多个执行权限,所述一或多个执行权限各自包括表示对于多个处理模式中的对应一者是否准许执行的多个执行权限位。
CN201380022547.5A 2012-05-09 2013-05-09 用于跟踪指令高速缓冲存储器中的附加数据权限的方法和设备 Expired - Fee Related CN104285215B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261644622P 2012-05-09 2012-05-09
US61/644,622 2012-05-09
US13/535,398 US9460018B2 (en) 2012-05-09 2012-06-28 Method and apparatus for tracking extra data permissions in an instruction cache
US13/535,398 2012-06-28
PCT/US2013/040417 WO2013170080A1 (en) 2012-05-09 2013-05-09 Method and apparatus for tracking extra data permissions in an instruction cache

Publications (2)

Publication Number Publication Date
CN104285215A CN104285215A (zh) 2015-01-14
CN104285215B true CN104285215B (zh) 2017-05-10

Family

ID=49549568

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380022547.5A Expired - Fee Related CN104285215B (zh) 2012-05-09 2013-05-09 用于跟踪指令高速缓冲存储器中的附加数据权限的方法和设备

Country Status (4)

Country Link
US (1) US9460018B2 (zh)
KR (1) KR20150020551A (zh)
CN (1) CN104285215B (zh)
WO (1) WO2013170080A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8819342B2 (en) 2012-09-26 2014-08-26 Qualcomm Incorporated Methods and apparatus for managing page crossing instructions with different cacheability
JP6088951B2 (ja) * 2013-09-20 2017-03-01 株式会社東芝 キャッシュメモリシステムおよびプロセッサシステム
US9529668B2 (en) * 2014-09-26 2016-12-27 Intel Corporation Method and system for using NAND page buffers to improve the transfer buffer utilization of a solid state drive
US10884941B2 (en) * 2017-09-29 2021-01-05 Intel Corporation Techniques to store data for critical chunk operations
US11403103B2 (en) * 2020-04-14 2022-08-02 Shanghai Zhaoxin Semiconductor Co., Ltd. Microprocessor with multi-step ahead branch predictor and having a fetch-target queue between the branch predictor and instruction cache

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101111819A (zh) * 2004-12-02 2008-01-23 高通股份有限公司 用于页内程序计数器相对或绝对地址转移指令的转换后备缓冲器(tlb)访问抑制
CN101432703A (zh) * 2006-05-01 2009-05-13 高通股份有限公司 用于高速缓存可变长度指令的方法及设备

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020039689A (ko) 1999-10-14 2002-05-27 토토라노 제이. 빈센트 정렬정보를 캐쉬하는 장치 및 방법
US6938126B2 (en) * 2002-04-12 2005-08-30 Intel Corporation Cache-line reuse-buffer
US7020758B2 (en) * 2002-09-18 2006-03-28 Ortera Inc. Context sensitive storage management
JP2007502470A (ja) * 2003-08-14 2007-02-08 コンペレント・テクノロジーズ 仮想ディスク・ドライブのシステムおよび方法
US20090204872A1 (en) * 2003-12-02 2009-08-13 Super Talent Electronics Inc. Command Queuing Smart Storage Transfer Manager for Striping Data to Raw-NAND Flash Modules
US7330959B1 (en) 2004-04-23 2008-02-12 Transmeta Corporation Use of MTRR and page attribute table to support multiple byte order formats in a computer system
US7383414B2 (en) * 2004-05-28 2008-06-03 Oracle International Corporation Method and apparatus for memory-mapped input/output
US7454566B1 (en) * 2005-05-02 2008-11-18 Nvidia Corporation System and method for adaptive RAID configuration
US7404042B2 (en) 2005-05-18 2008-07-22 Qualcomm Incorporated Handling cache miss in an instruction crossing a cache line boundary
US8117404B2 (en) 2005-08-10 2012-02-14 Apple Inc. Misalignment predictor
US7882307B1 (en) * 2006-04-14 2011-02-01 Tilera Corporation Managing cache memory in a parallel processing environment
US8239657B2 (en) 2007-02-07 2012-08-07 Qualcomm Incorporated Address translation method and apparatus
US8364910B2 (en) * 2007-03-08 2013-01-29 Daniel Shawcross Wilkerson Hard object: hardware protection for software objects
US7971025B2 (en) * 2007-03-14 2011-06-28 Hitachi, Ltd. Method and apparatus for chunk allocation in a thin provisioning storage system
JP2008269374A (ja) * 2007-04-23 2008-11-06 Hitachi Ltd ストレージシステムおよびその制御方法
US8898437B2 (en) 2007-11-02 2014-11-25 Qualcomm Incorporated Predecode repair cache for instructions that cross an instruction cache line
US8140768B2 (en) 2008-02-01 2012-03-20 International Business Machines Corporation Jump starting prefetch streams across page boundaries
US20090240880A1 (en) * 2008-03-21 2009-09-24 Hitachi, Ltd. High availability and low capacity thin provisioning
US8639943B2 (en) 2008-06-16 2014-01-28 Qualcomm Incorporated Methods and systems for checking run-time integrity of secure code cross-reference to related applications
US9270698B2 (en) * 2008-12-30 2016-02-23 Intel Corporation Filter for network intrusion and virus detection
US9176883B2 (en) * 2009-04-30 2015-11-03 HGST Netherlands B.V. Storage of data reference blocks and deltas in different storage devices
US8370302B2 (en) * 2009-06-02 2013-02-05 Hitachi, Ltd. Method and apparatus for block based volume backup
US8285959B2 (en) * 2010-01-25 2012-10-09 Netapp, Inc. Method for placement of virtual volume hot-spots in storage pools using ongoing load measurements and ranking
US8332594B2 (en) * 2010-06-28 2012-12-11 International Business Machines Corporation Memory management computer
US8560811B2 (en) 2010-08-05 2013-10-15 Advanced Micro Devices, Inc. Lane crossing instruction selecting operand data bits conveyed from register via direct path and lane crossing path for execution
US8499114B1 (en) * 2010-09-30 2013-07-30 Amazon Technologies, Inc. Virtual machine memory page sharing system
US8909845B1 (en) * 2010-11-15 2014-12-09 Symantec Corporation Systems and methods for identifying candidate duplicate memory pages in a virtual environment
US8819342B2 (en) 2012-09-26 2014-08-26 Qualcomm Incorporated Methods and apparatus for managing page crossing instructions with different cacheability

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101111819A (zh) * 2004-12-02 2008-01-23 高通股份有限公司 用于页内程序计数器相对或绝对地址转移指令的转换后备缓冲器(tlb)访问抑制
CN101432703A (zh) * 2006-05-01 2009-05-13 高通股份有限公司 用于高速缓存可变长度指令的方法及设备

Also Published As

Publication number Publication date
US20130304993A1 (en) 2013-11-14
US9460018B2 (en) 2016-10-04
CN104285215A (zh) 2015-01-14
KR20150020551A (ko) 2015-02-26
WO2013170080A1 (en) 2013-11-14

Similar Documents

Publication Publication Date Title
CN104346294B (zh) 基于多级缓存的数据读/写方法、装置和计算机系统
CN104285215B (zh) 用于跟踪指令高速缓冲存储器中的附加数据权限的方法和设备
TWI502349B (zh) 在有虛擬標識的快取記憶體中判定別名位址之快取命中/未中及相關系統及方法
CN106462496B (zh) 在基于中央处理单元cpu的系统中使用经压缩存储器控制器cmc来提供存储器带宽压缩
CN104050089B (zh) 片上系统及其操作方法
KR102575913B1 (ko) 비대칭 세트 결합된 캐시
CN107066396A (zh) 用于操作虚拟索引的物理标记的缓存的装置及方法
CN104246726A (zh) 用于维持高速缓存一致性的只写无数据状态
CN105009074B (zh) 消除指令处理电路中的冗余同步屏障和相关处理器系统、方法以及计算机可读媒体
CN105677580A (zh) 访问缓存的方法和装置
EP3500935A1 (en) Method and apparatus for compressing addresses
CN103885908B (zh) 一种基于外部设备可访问寄存器的数据传输系统及其方法
US9858201B2 (en) Selective translation lookaside buffer search and page fault
CN103338272A (zh) 一种内容分发网络及其缓存实现方法
TW201737095A (zh) 在以一中央處理單元(cpu)為基礎之系統中使用多個最後階層快取線提供記憶體帶寬壓縮
CN107111461A (zh) 在基于中央处理单元(cpu)的系统中通过经压缩存储器控制器(cmc)使用背靠背读取操作来提供存储器带宽压缩
CN107667355A (zh) 提供存储器管理单元(mmu)分区的转换高速缓存器,以及相关设备、方法及计算机可读媒体
WO2016015583A1 (zh) 一种内存管理方法、装置以及内存控制器
CN103309819B (zh) 嵌入式系统及其中的内存安全管理方法
CN116245054A (zh) 验证方法、验证装置、电子设备和计算机可读存储介质
JP2015049844A (ja) ストアマージ処理装置、ストアマージ処理システム、ストアマージ処理方法、及び、ストアマージ処理プログラム
CN110291507A (zh) 用于提供对存储器系统的加速访问的方法和装置
CN104346295A (zh) 一种缓存刷新方法和装置
US9507729B2 (en) Method and processor for reducing code and latency of TLB maintenance operations in a configurable processor
CN104702508A (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
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170510

Termination date: 20210509