本发明专利技术涉及高效存储器层级管理。在处理器中,在执行程序之前,存在指令和所述程序的一些部分可驻存在数据高速缓冲存储器中的情况。提供硬件和软件技术以在指令高速缓冲存储器中具有未中之后取出所述数据高速缓冲存储器中的指令,从而改进所述处理器的性能。如果指令不存在于所述指令高速缓冲存储器中,那么指令取出地址作为数据取出地址发送到所述数据高速缓冲存储器。如果有效数据存在于所述数据高速缓冲存储器中所述所供应的指令取出地址处,那么所述数据实际上是指令,且取出数据高速缓冲存储器条目,并将其作为指令供应给处理器复合体。指令页表中可包括额外位以在所述指令高速缓冲存储器中出现未中时,指示应针对所述指令检查所述数据高速缓冲存储器。
【技术实现步骤摘要】
本专利技术大体上涉及用于从具有指令高速缓冲存储器和数据高速缓冲存储器的存储器取出指令的技术,且更具体地说,涉及用于在指令高速缓冲存储器中出现未中之后,通过直接从数据高速缓冲存储器(如果指令驻存在那里)取出指令来取出所述指令的改进方法。
技术介绍
例如手机、膝上型计算机、个人数据助理(PDA)等等的一般便携式产品需要使用例如通信和多媒体程序的处理器执行程序。用于此些产品的处理系统包括用于存储指令和数据的处理器与存储器复合体。举例来说,指令和数据可存储在由多级高速缓冲存储器组成的分级存储器中,包括(例如)指令高速缓冲存储器、数据高速缓冲存储器和系统存储器。单独指令高速缓冲存储器和单独数据高速缓冲存储器的使用被称为哈佛结构(Harvardarchitecture)。由于哈佛结构使指令高速缓冲存储器与数据高速缓冲存储器隔离,所以当指令存储在数据高速缓冲存储器中时可能出现问题。在使用哈佛结构的一般系统处理中,出现指令可存储在数据高速缓冲存储器中的情形。举例来说,如果程序经加密或呈压缩形式,那么必须在允许所述程序运行之前对所述程序进行解密/解压缩。解密/解压缩过程将经加密/压缩的程序视为数据,以便对其进行处理,且在经解密/解压缩的指令前往系统存储器的路上将其作为数据存储在数据高速缓冲存储器中(例如,I级数据高速缓冲存储器)。从Java字节代码产生指令是另一种情形,其中最初将指令视为数据,其使用包括数据高速缓冲存储器的数据路径而存储到系统存储器。程序的初始状态(其中程序指令被视为为数据)在存储器层级内产生相干性问题,因为程序的至少一些部分可在执行所述程序之前驻存在数据高速缓冲存储器中。为了解决相干性问题,通常采用软件方法,其中数据高速缓冲存储器中的程序或程序段在程序控制下移动到系统存储器,指令高速缓冲存储器通常对于清理任何旧的程序段的高速缓冲存储器是无效的,且包含所述程序的指令接着从系统存储器被取出。在执行之前指令从数据高速缓冲存储器到系统存储器的移动和指令从系统存储器的取出可能花费若干循环,从而降低了处理器的性能,因为在程序在处理器上运行之前,必须出现处理时间开销以存取最初驻存在数据高速缓冲存储器上的指令。
技术实现思路
在本专利技术的若干方面中,本专利技术认识到处理数据高速缓冲存储器中的指令的开销可能限制处理器的性能,且可能限制可实现的服务的质量。本专利技术还认识到可能需要存取驻存在数据高速缓冲存储器中的指令。此外,本专利技术描述当没有在指令高速缓冲存储器中找到指令、指令高速缓冲存储器未中且确定所述指令在数据高速缓冲存储器中时,用于直接从数据高速缓冲存储器取出所述指令的设备、方法和计算机可读媒体。通过在指令高速缓冲存储器未中之后,直接从数据高速缓冲存储器取出指令,处理器性能可得到改进。为了此些目的,本专利技术的实施例包括一种在与指令高速缓冲存储器分离的数据高速缓冲存储器中寻找指令的方法。在此方法中,确定对在指令取出地址处取出所述指令的尝试在指令高速缓冲存储器中未中。将所述指令取出地址变换为数据取出地址。此外,在所述数据高速缓冲存储器中,对在经变换的数据取出地址处取出所述指令进行尝试。本专利技术的另一实施例提出一种用于取出指令的处理器复合体。所述处理器复合体可适当包括指令高速缓冲存储器、数据高速缓冲存储器以及第一选择器。所述第一选择器用以选择指令取出地址或数据取出地址。将所选择的取出地址应用于数据高速缓冲存储 器,借此可从所述数据高速缓冲存储器选择性取出指令或数据。对本文所揭示的本专利技术性概念以及其它特征的较完整理解将从以下具体实施方式和附图中显而易见。附图说明图I是可使用本专利技术的实施例的示范性无线通信系统的框图;图2是处理器与存储器复合体的功能框图,其中数据高速缓冲存储器操作适合于根据本专利技术实施例的指令取出的存储器高效操作;图3是根据本专利技术的用于取出存储在数据高速缓冲存储器中的指令,以便减少与最初作为数据存储在数据高速缓冲存储器中的指令相关联的未中处理开销的示范性方法的流程图;图4是包括指令页表的处理器与存储器复合体的功能框图,其中数据高速缓冲存储器操作适合于根据本专利技术的高效指令取出;图5是根据本专利技术的用于取出存储在数据高速缓冲存储器中的指令的示范性方法的流程图;以及图6是根据本专利技术的用于执行作为数据而产生且存储在数据高速缓冲存储器中的代码的示范性方法的流程图。具体实施例方式将参看附图来更充分地说明本专利技术的专利技术性方面,在附图中展示了本专利技术的若干实施例。然而,本专利技术的实施例可以各种形式来体现,且不应被解释为限于本文所陈述的实施例。相反,提供这些实施例是为了使本专利技术将详尽且完整,且将充分地向所属领域的技术人员传达本专利技术的范围。将了解,本专利技术可体现为方法、系统或计算机程序产品。因此,本文所揭示的本专利技术性概念可采取硬件实施例、软件实施例或结合软件与硬件方面的实施例的形式。此外,本文所揭示的本专利技术性概念可采取计算机可用存储媒体上的计算机程序产品的形式,所述计算机可用存储媒体具有体现在媒体中的计算机可用程序代码。可利用任何适当计算机可读媒体,包括硬盘、CD-ROM、光学存储装置、快闪存储器或磁性存储装置。根据本专利技术的教示,可编译、汇编和加载到处理器的计算机程序代码最初可以例如 C、C++、本地汇编语言(native Assembler)、JAVA 、Smalltalk、Java 脚本(JavaScript) 、可视基础(Visual Basic) 、TSQL、Perl的编程语言或以各种其它编程语言写入。程序代码或计算机可读媒体指代例如目标代码的机器语言代码,其格式可由处理器理解。本专利技术的软件实施例并不依赖于其使用特定编程语言的实施方案。当执行程序代码时,产生界定用于所述程序代码的操作环境的新任务。图I展示可使用本专利技术的实施例的示范性无线通信系统100。出于说明的目的,图I展示三个远程单元120、130和150以及两个基站140。将认识到,典型无线通信系统可具有远程单元和基站。远程单元120、130和150包括如分别由组件125A、125C和125B表示的硬件组件、软件组件或两者,其已适合于体现如下文进一步论述的本专利技术。图I展示从基站140到远程单元120、130和150的前向链路信号180,以及从远程单元120、130和150到 基站140的反向链路信号190。在图I中,将远程单元120展示为移动电话,将远程单元130展示为便携式计算机,且将远程单元150展示为无线本地环路系统中的固定位置远程单元。举例来说,远程单元可以是手机、手持式个人通信系统(PCS)单元、例如个人数据助理的便携式数据单元、或例如读表设备的固定位置数据单元。尽管图I说明根据本专利技术的教示的远程单元,但本专利技术并不限于这些示范性所说明单元。本专利技术可适合在具有带指令高速缓冲存储器、数据高速缓冲存储器和系统存储器的处理器的任何装置中使用。图2是处理器与存储器复合体200的功能框图,在处理器与存储器复合体200中,正常数据高速缓冲存储器操作适合于如本文进一步描述的较高效的指令取出。处理器与存储器复合体200包括处理器202、I级(LI)指令高速缓冲存储器204、L1指令高速缓冲存储器控制单元206、LI数据高速缓冲存储器208、LI数据高速缓冲存储器控制单元210、控制部分(本文档来自技高网...
【技术保护点】
一种在与指令高速缓冲存储器分离的数据高速缓冲存储器中寻找指令的方法,其包含:在所述指令高速缓冲存储器中的指令取出地址处尝试取出所述指令;接收指示高速缓冲存储器未命中的命中信号;响应于所述命中信号,选择所述指令取出地址作为数据取出地址;且在所述数据高速缓冲存储器中,对在所述数据取出地址处取出所述指令进行尝试。
【技术特征摘要】
...
【专利技术属性】
技术研发人员:迈克尔·威廉·莫罗,托马斯·安德鲁·萨托里乌斯,
申请(专利权)人:高通股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。