CN103026351A - 降低处理器延迟的装置和方法 - Google Patents

降低处理器延迟的装置和方法 Download PDF

Info

Publication number
CN103026351A
CN103026351A CN2010800682674A CN201080068267A CN103026351A CN 103026351 A CN103026351 A CN 103026351A CN 2010800682674 A CN2010800682674 A CN 2010800682674A CN 201080068267 A CN201080068267 A CN 201080068267A CN 103026351 A CN103026351 A CN 103026351A
Authority
CN
China
Prior art keywords
data
handling system
data handling
memory
cpu
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.)
Pending
Application number
CN2010800682674A
Other languages
English (en)
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.)
NXP USA Inc
Original Assignee
Freescale Semiconductor 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 Freescale Semiconductor Inc filed Critical Freescale Semiconductor Inc
Publication of CN103026351A publication Critical patent/CN103026351A/zh
Pending legal-status Critical Current

Links

Images

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
    • 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/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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
    • 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
    • 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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

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

提供了数据处理系统,该系统包括中央处理单元(110)、可操作地耦合到中央处理单元(110)的处理器高速缓冲存储器(113)以及可操作地耦合到中央处理单元(110)和处理器高速缓冲存储器(113)的外部连接(121),其中所述数据处理系统的一部分被布置成将数据直接地从外部连接(121)加载到处理器高速缓冲存储器(113)中,以及修改所述直接加载的数据的源地址。还提供了一种改善数据处理系统中的延迟的方法,该数据处理系统具有可操作地耦合到处理器高速缓冲存储器(113)的中央处理单元(110)以及可操作地耦合到中央处理单元(110)和处理器高速缓冲存储器(113)的外部连接(121),该方法包括将数据直接地从外部连接(121)加载到处理器高速缓冲存储器(113),以及将所述数据的源地址修改成指示除了来自外部连接(121)之外的位置。

Description

降低处理器延迟的装置和方法
技术领域
本发明通常涉及数据处理系统,并且特别涉及用于降低处理器延迟的改进的装置和方法。
背景技术
诸如PC、移动平板电脑、智能电话等等的数据处理系统通常包括多个级别的存储器,以用于存储和执行程序代码,并且用于存储用于与执行的程序代码一起使用的内容数据。例如,中央处理单元(CPU)可以包括诸如高速缓冲存储器的片上存储器,并且可被连接到外部系统存储器,该外部系统存储器在CPU之外,但是是系统的一部分。
通常,计算应用是从主要的外部系统存储器(例如,双数据率(DDR)外部存储器)管理的,其中程序代码和内容数据用于执行在使用/执行之前加载到主要的外部系统存储器中的应用。在内容数据的情况下,通常是通过例如通用串行总线(USB)的某个外部接口连接从诸如网络或主要存储设备的外部源加载到主要外部系统存储器中。然后将相应的程序代码和内容数据从主要外部系统存储器加载到高速缓冲存储器中,以准备好通过中央处理单元的实际使用。将数据从这样的外部接口,尤其是较慢的串行接口,复制到主要外部系统存储器花费了时间并且将延迟置入整个系统中,从而推迟了中央处理单元利用程序代码和内容数据。
发明内容
如附属权利要求中所描述的,本发明提供了一种在处理器中改善延迟的装置和方法。
本发明的具体实施例在所附权利要求中被阐述。
本发明的这些或其它方面根据在下文中描述的实施例将显而易见并且参考在下文中描述的实施例被阐明。
附图说明
将参考附图仅仅通过举例的方式来描述本发明的进一步细节、方面和实施例。在附图中,相同的附图标记被用于表示相同的或功能相似的元素。为了简便以及清晰而图示了附图中的元素,并且附图中的元素不一定按比例绘制。
图1示意性示出了可以应用本发明的数据处理系统的实施例的第一例子;
图2示意性示出了可以应用本发明的数据处理系统的实施例的第二例子;
图3示意性示出了根据现有技术的如何将内容数据经由主要的外部存储器从外部连接加载到处理器;
图4示意性示出了根据本发明的实施例的如何将内容数据从外部连接加载到处理器;
图5示意性更详细地示出了可以如何实现图4的实施例的第一例子;
图6示意性更详细地示出了可以如何实现图4的实施例的第二例子;
图7示出了根据本发明的实施例的所述方法的高层示意流程图。
具体实施方式
由于本发明说明的实施例可能大部分是使用本领域技术人员已知的电子组件和电路实现的,所以将不会在比上述所说明的认为有必要的程度大的任何程度上解释细节,以便于对本发明基本概念的理解以及认识并且为了不混淆或偏离本发明的教导。
图1示意性地示出了可以应用本发明的数据处理系统100a的实施例的第一例子。
其是典型的台式计算机的简化示意图,所述台式计算机具有经由接口115连接到北/南桥芯片集120的中央处理单元(CPU)110,所述中央处理单元包括等级2高速缓冲存储器113。所述北/南桥芯片集120充当中心集线器以将整个数据处理系统100a的不同电子组件连接在一起,例如,主要外部系统存储器130、离散图形处理单元(GPU)140、外部连接121(例如,外围设备连接/互连体(122-125))等等,并且特别是将其全部连接到所述CPU 110。
在图1所示的例子中,主要外部系统存储器130(例如,DDR随机存取存储器)可以通过外部存储器接口135连接到北/南桥芯片集120,或者替代地,CPU 110可以进一步包括集成的高速外部存储器控制器111以用于给主要外部系统存储器130提供高速外部存储器接口135b。在这样的情况下,主要外部系统存储器130不使用对于北/南桥芯片集120的标准外部存储器接口135。外部存储器控制器集成到CPU110本身被看作一种增加整个系统数据吞吐量以及降低组件计数和制造成本的方法。
离散图形处理单元(GPU)140可以通过专用图形接口145(例如,高级图形端口-AGP)连接到北/南桥芯片集120,以及经由显示器互连体155(例如,数字视频接口(DVI)、高清晰度多媒体接口(HDMI)、模拟接口(模拟)等等)连接到显示器150。在其它实施例中,离散GPU 140可以通过诸如外围连接接口(PCI)或串行总线(PCIe-一种更新、更快的序列化接口标准)的某个非专用接口连接到北/南桥芯片集120。
其它外围设备可以通过诸如音频输入/输出122接口、IEEE1394a/b接口123、以太网接口(未示出)、主要互连体124(例如,PCIe等等)、USB接口125等等的其它专用外部连接接口121被连接。本发明的不同实施例可以存在不同外部连接接口集,即本发明不受限于外部连接接口(或实际上中部连接接口)的任何特定的选择。
在北/南桥芯片集120(或整个系统的其它离散的部分)中先前发现的接口集成到中央处理单元中130本身已经是与日俱增的趋势(产生所谓的“片上系统”设计)。这是因为将更多传统离散的组件集成到主要CPU 110降低了制造成本、故障率、电力使用、终端设备的大小等等。因此,虽然在图1中,缓存存储器113被间接地连接到外部连接121,但是将理解中央处理单元110可以包括北/南桥芯片集120的功能的任何一个或多个、或所有的部分,从而导致了外部连接被直接地连接到中央处理单元(110)(例如,见图4)。
图2示意性地示出了可以应用本发明的数据处理系统的实施例的第二例子。在这个例子中,与图1相比,简化了数据处理系统,因为其代表商品化的移动数据处理系统。
图2示出了诸如平板电脑、电子书阅读器等等的典型的移动数据处理系统100b,其具有比图1的数据处理系统更集成的方法,以便降低成本、大小、电力消耗等等。图2的移动数据处理系统100b包括含有高速缓冲存储器113的CPU 110、芯片集120、主要外部系统存储器130以及它们相应的接口(CPU接口115和外部存储器接口135),但是芯片集120还具有集成的GPU 141,在这个例子中集成的GPU 141经由双向接口155被连接到触摸显示器。双向接口155允许显示器信息被发送到触摸显示器151,同时还允许来自触摸显示器151的触摸控制输入经由芯片集120以及接口155和115被发送回CPU 110。集成的GPU 141被集成到芯片集以降低整个成本、电力使用等等。
图2还仅仅示出了外部USB连接125,外部USB连接125用于将具有天线165的无线模块160连接到芯片集120、CPU 110、主要外部系统存储器130等等。无线模块160使得移动数据处理系统100b能够连接到无线网络以用于向移动设备提供程序代码数据和/或内容数据。移动数据处理系统100b还可以包括任何其它标准化的内部或外部连接接口(诸如图1的IEEE 1394b、以太网、音频输入/输出接口)。特别是移动设备还可以包括一些非标准的外部连接接口(诸如专有扩充口接口)。这一切都说明本发明并没有受限于由移动数据处理系统100b提供的或提供给移动数据处理系统100b的内部/外部连接接口的类型。
通常,在这样的消费/商品化的数据处理系统中,用于广泛使用的单一设备100b可以被开发,其中仅仅某些部分根据预期销售地点的需要/需求(例如,本地的、联邦的、国家的或其它限制或需求)而变化。例如,在图2的移动数据处理系统100b中,根据本地的/国家的要求,无线模块可以被互换。例如,在欧洲可以使用IEEE 802.11n和全球移动电信系统(UMTS)无线模块160,而在美国可以使用IEEE 802.11n和码分多址(CDMA)无线模块。在任一情况下,相应的无线模块160通过相同的外部连接接口进行连接,在这种情况下是所述标准化的USB连接125。
不管所述数据处理系统(100a或100b)的形式如何,整个系统使用高速缓冲存储器的方式通常是相似的。在操作中,数据处理系统(100a/b)用于通过执行多个数据处理指令(即,程序代码和内容数据)来实现多种数据处理功能。高速缓冲存储器113是用于中央处理单元110所需要的频繁使用的信息的临时数据储存器。在一个实施例中,高速缓冲存储器113可以是组关联高速缓冲存储器。然而,本发明不受限于任何特定类型的高速缓冲存储器。在一个实施例中,高速缓冲存储器113可以是存储指令信息(即,程序代码)的指令高速缓存,或存储数据信息(即,内容数据,例如,操作数信息)的数据高速缓存。在另一个实施例中,高速缓冲存储器113可以是能够存储诸如指令信息和数据信息两者的多种类型的信息的统一的高速缓存。
高速缓冲存储器113是用于由CPU 110当前正使用的数据的非常快(即,低延迟)暂时存储区域。其加载有来自主要外部系统存储器130的数据,其进而从主要的、非易失的存储装置(未示出)、或任何其它外部设备加载数据。高速缓冲存储器113通常包括相应数据的副本(即,不是原始实例),连同关于在主要外部系统存储器130或主要非易失性存储装置中可以找到原始数据实例的信息;在使用期间CPU 110是否修改了数据;以及在使用之后相应的修改的数据是否应该返回主要外部系统存储器130以确保数据完整性(如在下文更详细讨论的所谓的“页面重写标志位(dirty bit)”)。
注意,数据处理系统(100a/b)可以包括任何数目的高速缓冲存储器,所述高速缓冲存储器可以包括任何类型的高速缓存,诸如数据高速缓存、指令高速缓存、等级1高速缓存、等级2高速缓存、等级3高速缓存等等。
下述描述将讨论在使用具有无线模块160的前述的移动数据处理系统100b的背景下的例子,无线模块160通过外部USB连接125被连接到中央处理单元110,其中无线模块提供了用于在移动数据处理系统100b上使用和显示的内容数据。这样的设备的典型使用/应用是在移动的时候浏览网络。当网络浏览任务仅仅需要很低的CPU每秒百万指令(MIPS)时,即,其仅仅具有低CPU使用时,相当大数量的数据必须仍然从连接到无线网络(例如,无线本地访问网络-WLAN、或UMTS蜂窝网络,均未示出)的无线模块160转移到CPU 110以用于在显示器151上处理成显示内容。
在这样的使用案例中,更重要的品质因数之一是网页处理时间。这是因为用户对网页处理中的推迟很敏感,以及随着网页增加了使用例如包括流媒体等等的内容的大小,这是日益重要的问题。为了改进用户体验,可以降低CPU的网络访问延迟。
不管涉及的数据(程序代码,或内容)类型如何,数据越早可用于CPU 110使用,数据就越快可用于产生结果,诸如对于用户的信息的显示。因此,降低数据变得可用于CPU 110所花费的时间可以极大地增加数据处理系统(100a/b)的实际的和感知到的吞吐量。
图3示意性更详细地示出了根据现有技术中常用的数据处理系统330架构如何将数据从外部连接121经由主要外部系统存储器130加载到中央处理单元110。该图示出了从外部连接121(例如,USB连接125)通过外部接口310的数据流,外部接口310提供了外部连接121和直接存储器访问(DMA)模块320之间的链接。虽然是通过仲裁器330、以及存储器接口模块340,但是顾名思义,DMA模块320提供了直接访问外部存储器130的连接设备(不需要数据经过中央处理单元处理核)。因此,来自外部连接121的数据被转移到主要外部系统存储器130,以准备好使CPU 110根据需要将其加载到其高速缓冲存储器113。当数据从主要外部存储器130加载到高速缓冲存储器113时,这是经由存储器接口模块340和被连接到高速缓冲控制器112的仲裁器330完成的,无论是以什么方式和在什么时候数据变得可用以及被形成CPU 110的一个或多个核(118、119)需要。
如图3所示出的现有技术系统的总延迟相对高,因为在数据可以从主要外部系统存储器130被复制到CPU高速缓冲存储器113之前,数据首先必须被写入主要外部系统存储器130以准备好使用。更详细地,来自外部连接121(例如,USB、AGP或任何其它平行的或串行的链接)的数据通过被连接到仲裁器330的外部接口模块320被转移,仲裁器330将数据提供给外部存储器接口模块340以用于写出到主要外部系统存储器130。一旦在主要外部系统存储器130中,数据可以被留下以供以后检索,或立即通过存储器接口模块340和仲裁器330转移回高速缓冲控制器112。高速缓冲控制器112控制如何将数据存储在高速缓冲存储器113中,包括当在高速缓冲存储器113中的相应数据不再被中央处理单元110需要时,控制将高速缓冲存储器113数据刷新回到主要外部系统存储器130,或新数据需要被加载到高速缓冲存储器113,并且由于高速缓冲存储器大小限制而造成旧数据需要被重写。高速缓冲存储器113中的数据通常包括“页面重写标志位”以控制高速缓冲存储器112中的数据是否被写回到主要存储器130(例如,当数据被修改,以及可能需要以修改的形式被写回到主要存储器以确保数据一致性),或简单地被丢弃(当数据本身不被修改,和/或可以忽略对数据的任何改变,如果存在的话)。在网络浏览使用模型的例子中,何时可能需要将数据写回到主要外部系统存储器130的例子将是用户选择的选择字段被更新以反映用户的选择,以及可能需要在例如电子商务网站的网站上的网页之间保持这个选择。在使用之后,高速缓冲存储器113中的数据可以被丢弃的例子,因为在这个数据中什么也没有被改变,所以可以是从诸如YouTubeTM视频流送网站流送视频内容。
图4示意性地示出了根据本发明的实施例的在与图3的细节相同水平上如何将数据加载到高速缓冲存储器113中。当数据被读入CPU高速缓冲存储器113中时,避免了对于使用仲裁器330、存储器接口模块340或外部存储器130的需要。可以看出,当与图3的已知的高速缓冲存储器数据加载方法相比较时,在图4中高速缓冲存储器数据加载路径显著地较短。
在这个例子中,并且与参照图3示出和解释的数据高速缓冲存储器加载方法和装置相比较,在即时(on-the-fly)地址修改的情况下,可以通过例如经由被直接地连接到高速缓冲控制器112的DMA模块将数据直接地从外部连接121转移到CPU高速缓冲存储器113中来获得降低的延迟。所述即时地址修改/转换可以被用于确保对于将高速缓冲的数据返回到主要外部系统存储器130有用的信息是可用的,使得这个系统的其余部分不受所描述的对于将数据加载到高速缓冲存储器113的数据的修改的影响。
尽管图4示出了CPU 110具有双核,但是可以从一个向上存在任何数目的核。在这个例子中,每个核被示出为经由专用接口116或117连接到高速缓冲控制器112。本发明决不受限于在处理器中发现的核的数目,也不受限于那些核如何被对接到高速缓冲控制器122。
尽管高速缓冲控制器112在图4中被示出为所述CPU本身的部分而被形成,但是其可以还被单独地形成,或在整个系统的另一个部分内形成,诸如图1和图2的芯片集120。图4还示出了被直接地连接到数据处理系统300b的外部连接121。
高速缓冲存储器113可以包括系统中存在的任何类型的高速缓冲存储器(等级1、2或更多)。然而,在典型的实现中,本发明与最后的高速缓冲存储器级别一起被使用,这在现代系统中通常是等级2高速缓冲存储器,但是例如,在系统具有等级1、等级2和等级3高速缓冲存储器的情况下,可能同样是等级3高速缓冲存储器。
所述即时地址修改可以有益地被包括,使得当数据从高速缓冲存储器113中被刷新并且被放回主要外部存储器130中时将其放回到正确的位置,例如,在其将被发送以使数据被发送到主要外部系统存储器130而不是高速缓冲存储器113的位置。也就是说,为了确保数据一致性——即,与在主要外部系统存储器130、或甚至诸如硬盘的非易失性(即,长期存储)存储器中的数据的主要的存储一样,高速缓冲存储器具有相同的数据进行操纵。所述即时修改过程可能还(通过仲裁器330和存储器接口模块340)向外部存储器通知名义上的外部存储器数据位置,其将用于正直接地发送到高速缓冲存储器113的数据,使得当以上描述的刷新操作发生时,在主要外部系统存储器130中可以备有正确的按大小分类和定位的备用数据存储位置。通常,这可以通过修改用于追踪的高速缓冲存储器标签来完成,其中高速缓冲数据来自主要外部系统存储器130。还可以使用用于保存高速缓冲存储器113和外部存储器130一致性的任何其它手段。
所述即时地址修改过程可以由系统中的任何合适的节点被执行,例如由修改的DMA模块320、修改的高速缓冲控制器114、或甚至适当的中间功能块。在图4到6中示出了这些不同实现类型。
当测量中央处理单元110的延迟时,以上描述的高速缓冲存储器加载功能的改变处于最关键路径上。这是因为刷新延迟(即,将正确的高速缓冲的数据放回到主要外部系统存储器130中以备后用)不处于决定用户感知进行操作的数据处理系统有多快的最关键的路径上。也就是说,高速缓冲刷新操作不影响数据有多快加载到CPU高速缓冲存储器113以备CPU 110使用。
被直接地写入高速缓冲存储器113的数据通常在高速缓冲存储器标签中具有主要外部系统存储器130地址(或一些其它等同手段以定位高速缓冲的数据应该在主要外部系统存储器130中到达的位置)以及“页面重写标志位”可以也被设置,使得如果/当不再要求直接地写入的数据时,其可能被高速缓冲控制器114无效,并且以与在传统的高速缓冲存储器写回程序中将会发生的大致相同的方式被写回到主要外部系统存储器130。
换句话说,尽管即时操纵内容数据的“目的地”地址以确保在使用之后将其放回其在主要外部系统存储器130中应当处于的位置,但是可以将内容数据直接地从外部连接121转移到CPU高速缓冲存储器113。即使在以下的使用情况下,这也可以显著地改善延迟,所述使用情况是当前处理被中断并且直接地进入高速缓冲存储器113的一些数据被写回到主要外部系统存储器130,并且然后一旦原始处理要求恢复所述数据,则将其再次重读出主要外部系统存储器130。
在一些实施例中,其中中央处理单元110是合适地适于给处理核提供主连接。一个这样的主连接可以被用于将DMA控制器320直接连接到高速缓冲控制器114。图5示出了本发明的这样实施例的例子。在这种情况下,自适应智能DMA(SDMA)模块320b适于模仿标准的CPU核的访问,并且被连接到备用主核连接117b。这可以被用于例如现代ARMTM架构中。
在图6中,通过对比,标准的DMA模块320与中间块325对接。中间块325执行地址转换操作(将在加载的高速缓冲数据中的地址从参照原始外部连接源地址转换到参照在主要外部系统存储器130中的保留地址)和页面重写标志位的设置,以确保在那时一旦CPU 100不再需要相应的高速缓冲的数据,就将数据读取到主要外部系统存储器130。中间块325和高速缓冲控制器114之间的连接可以是专有连接(到高速缓冲控制器114的固定直接线路),或其可以是通过如上讨论的核主连接117b(示出为虚线)。
图7示出了根据本发明400的方法的实施例。所述方法包括在步骤410直接地从外部连接121加载数据。在步骤420,直接加载的数据将其“源”目的地地址即时修改,使得其指向主要外部系统存储器130的一部分(例如,指向在现有技术中主要的外部系统存储器130中数据已经被发送到的位置),以及页面重写标志位被设置成确保直接加载的数据在使用之后返回主要外部系统存储器130,以备随后的正常方式的再使用。在步骤430,可以向主要外部系统存储器130通知在即时地址修改中使用的地址,使得当相应的数据被刷新回到主要外部系统存储器130时,主要外部系统存储器130可能保留相应的部分。在步骤440,直接加载的数据可以被CPU 110以通常的方式使用。在步骤450,使用的数据(或者,实际上,由于来自用户或整个系统的其它部分的对CPU 110的重写请求,例如,由于中断等等,最终未被使用的数据)可以从高速缓冲存储器113被刷新回到主要存储器130。然后所述方法返回到开始,即,将新的数据直接地从外部连接121加载到CPU高速缓冲存储器113。
即时地址操纵420、通知430和甚至数据440的使用的确切的顺序可能根据整个系统的具体要求而变化,并且可以由系统内的多种不同实体被执行,例如在修改的高速缓冲控制器114/b、修改的DMA控制器320b或中间块325中。
因此,例子示出了一种在数据处理系统中降低延迟的方法,特别是一种通过将数据直接地从外部连接121(例如,USB连接125)加载到高速缓冲存储器(例如在芯级别2高速缓冲存储器113上),而没有首先将数据加载到主要外部系统存储器130,在可操作地耦合到处理器高速缓冲存储器113和主要外部系统存储器130的处理器(例如,具有一个或多个处理核的CPU 110)中降低高速缓冲存储器延迟的方法。在描述的例子中,存储在高速缓冲存储器113中的“源”地址被改变成使得其指向主要外部系统存储器130的空闲部分,使得一旦不再要求高速缓冲的数据,数据就可以以正常方式被刷新回到主要外部存储器130。然后,主要外部系统存储器130可以保留需要的空间。为此,所述主要存储器控制器优选地接收以下指示,所述指示是主要存储器130的哪些部分被保留用于直接地加载到高速缓冲存储器的数据,使得没有其它过程可以同时使用那个空间。然而,在一些实施例中,主要外部系统存储器130中需要的空间的分配可以在刷新操作期间被执行。
例如,通过调节数据处理系统的结构/操作,并且特别是,高速缓冲控制器(在示例性图中,项目114指的是修改的高速缓冲控制器,而后缀“b”指的是系统的其它部分连接到所述修改的高速缓冲控制器114/b的不同方式)、DMA控制器或数据处理系统的任何其它部分,可以实现以上描述的方法和装置。而且,新的中间功能块可以被用于提供以上描述的直接的高速缓冲存储器加载方法。
以上实施例中的一些如果适用可以在多种不同信息/数据处理系统中实现。例如,虽然其附图和讨论描述了示例性信息处理架构,但是这些示例性架构的存在仅仅是提供讨论本发明的各个方面的有用参考。当然,为了讨论的目的已经简化了架构的描述,并且这只是根据本发明可以使用的很多不同类型的合适架构之一。本领域技术人员将认识到逻辑块之间的界限仅仅是说明性的并且替代实施例可能合并逻辑块或电路元件或对各种逻辑块或电路元件施加替代的分解功能。
因此,应当了解在次描述的架构仅仅是示例性的,并且事实上实现相同功能的很多其它架构可以被实现。从抽象的但仍然明确的意义上来说,为实现相同功能的组件的任何布置被有效地“关联”使得所期望的功能得以实现。因此,在此组合以实现特定功能的任何两个组件可以被看作彼此“相关联”使得所期望的功能得以实现,而不论架构还是中间组件。同样地,如此关联的任何两个组件还可以被认为是彼此被“可操作连接”或“可操作耦合”以实现所期望的功能。
又如,在一些实施例中,所说明的数据处理系统100a/b的元件是位于单一集成芯或电路上的电路或在相同设备内的电路。替代地,数据处理系统100a/b可以包括任何数目的单独的集成电路或彼此互连的单独的设备。例如,高速缓冲存储器113可以和CPU 110一样位于相同的集成电路上或单独的集成电路上或位于与数据处理系统100a/b的其它元素离散地分离的另一个外围或从设备中。又如,数据处理系统100a/b或其部分可以是物理电路的软或代码表征,或是能够转化成物理电路的逻辑表示。这样,数据处理系统100a/b可以体现在任何合适类型的硬件描述语言中。
计算机可读介质可以永久地、可移除地或远程地耦合到信息处理系统,诸如信息处理系统100a/b。计算机可读介质可以例如且没有限制地包括任何数目的以下介质:包括磁盘和磁带存储介质的磁存储介质;诸如光盘介质(例如,CD-ROM、CD-R等等)以及数字视盘存储介质的光学存储介质;包括基于半导体存储单元的非易失性存储器存储介质,诸如FLASH存储器、EEPROM、EPROM、ROM;铁磁数字存储器;MRAM;包括寄存器、缓冲器或高速缓冲存储器、主存储器、RAM等等的易失性存储介质;以及包括计算机网络、点对点电信设备、以及载波传输介质的数字传输介质,仅举几个例子。数据存储元素(例如,高速缓冲存储器113、外部系统存储器130和存储介质)可以由上述计算机可读介质技术中的任何技术形成,所述技术为数据元素的预想的特定使用提供足够的数据吞吐量和易失性特性。
如所讨论的,在一个实施例中,数据处理系统10是计算机系统,诸如个人计算机系统100a。其它实施例可以包括不同类型的计算机系统,诸如移动数据处理系统100b。数据处理系统是信息处理系统,所述信息处理系统可以被设计成给一个或多个用户独立的计算能力。可以发现很多形式的数据处理系统,包括但不限定为主机、小型计算机、服务器、工作站、个人计算机、笔记本、个人数字助理、电子游戏、自动的以及其它嵌入式系统、移动电话以及各种其它的无线设备。典型的计算机系统包括至少一个处理单元、关联的存储器和多个输入/输出(I/O)设备。
数据处理系统根据程序来处理信息并且经由I/O设备来产生所得到的输出信息。程序是一系列指令,诸如特定应用程序和/或操作系统。计算机程序通常内部地存储在计算机可读存储介质上或经由诸如无线模块160的计算机可读传输介质被传输到计算机系统。计算机处理通常包括执行(运行)程序或程序的部分,当前程序值和状态信息,以及由操作系统使用以管理处理的执行的资源。父进程可能产生其它子进程以帮助执行父进程的整个功能。由于父进程特别地产生用于执行父进程的整个功能的一部分的子进程,所以由子进程执行的功能(以及孙进程等等)有时可以被描述为由父进程执行。
虽然在此参照具体实施例描述了本发明,但是在不脱离如以下权利要求中所阐述的本发明的范围的情况下,可以进行各种修改以及改变。例如,可以基于系统需要修改在地址字段中使用的位的数目。又如,尽管具体实施例被公开为经由外部USB网络设备来改善网站浏览,但是本发明可能同样地适用于在处理器或处理系统内或在处理器或处理系统上发现的任何其它外部或内部接口连接。也就是说,术语“外部”尤其是在权利要求中意指参照CPU和/或高速缓冲存储器,并且因此可以包括例如在诸如CD-ROM驱动器的存储设备和CPU之间的“内部”连接,但是不包括到主要外部系统存储器的连接。
因此,说明书以及附图应当被认为是说明性而不是限制性的含义,并且所有这样的修改旨在包括在本发明的范围之内。关于具体实施例,在此描述的任何益处、优点或解决方案都不旨在被解释为任何或所有权利要求的关键的、必需的、或必要的特征或元素。
如在此使用的术语“耦合”不旨在限定为直接耦合或机械耦合。
此外,如在此使用的词语“一个”或“一”被定义为一个或多个。而且,在权利要求中使用诸如“至少一个”以及“一个或多个”的介绍性短语不应当被解释为暗示通过不定冠词“一个”或“一”引入的另一个权利要求元素将包含这样的引入的权利要求元素的任何特定权利要求限定为仅包含一个这样的元素的发明,即使当同一权利要求包括介绍性短语“一个或多个”或“至少一个”以及诸如“一个”或“一”的不定冠词。这对于定冠词的使用也是如此。
除非另有说明,诸如“第一”以及“第二”的词语用于任意区分这样的术语所描述的元素。因此,这些术语不一定旨在指示这样的元素的时间或其它优先次序。
而且,本发明不限于在非可编程硬件中实现的物理设备或单元,而是也可以应用在能够通过根据合适的程序代码操作来执行所期望的设备功能的可编程设备或单元中,诸如现场可编程门阵列(FPGA)。
在权利要求中,放置在括号之间的任何参考符号不得被解释为限定权利要求。单词“包括”不排除除了在一项权利要求中列出的哪些之外的其它元素或步骤的存在。

Claims (14)

1.一种数据处理系统,包括:
中央处理单元(110);
处理器高速缓冲存储器(113),所述处理器高速缓冲存储器(113)可操作地耦合到所述中央处理单元(110);以及
外部连接(121),所述外部连接(121)可操作地耦合到所述中央处理单元(110)和处理器高速缓冲存储器(113);
其中所述数据处理系统的一部分被布置成:
将数据从所述外部连接(121)直接加载到所述处理器高速缓冲存储器(113)中;以及
修改所述直接加载的数据的源地址。
2.根据权利要求1所述的数据处理系统,其中所述数据处理系统进一步包括主要外部系统存储器(130),并且所述数据处理系统的一部分进一步被布置成修改所述源地址以指向主要外部系统存储器(130)的一部分。
3.根据权利要求1或2所述的数据处理系统,其中所述数据处理系统的一部分进一步被布置成设置用于所述直接加载的数据的页面重写标志位。
4.根据权利要求2或3所述的数据处理系统,其中所述数据处理系统的一部分进一步被布置成向所述主要外部系统存储器(130)通知在所述主要外部系统存储器(130)中的数据存储的一部分被保留用于在使用之后存储所述直接加载的数据。
5.根据权利要求1到4中的任何一项所述的数据处理系统,其中所述处理器高速缓冲存储器(113)是等级2高速缓冲存储器。
6.根据权利要求1到5中的任何一项所述的数据处理系统,其中所述数据处理系统的一部分包括高速缓冲控制器(114)。
7.根据权利要求1到5中的任何一项所述的数据处理系统,其中所述数据处理系统进一步包括高速缓冲控制器(114b),并且所述数据处理系统的一部分包括:
修改的DMA模块(320b);或
中间块(325)。
8.根据权利要求7所述的数据处理系统,其中所述修改的DMA控制器(320b)或中间块(325)通过专有连接或专用的主核连接可操作地耦合到所述高速缓冲控制器(114b)。
9.根据权利要求1到8中的任何一项所述的数据处理系统,其中所述外部连接(121)包括USB连接。
10.一种改进数据处理系统中的延迟的方法,所述数据处理系统具有可操作地耦合到处理器高速缓冲存储器(113)的中央处理单元(110)以及可操作地耦合到所述中央处理单元(110)和处理器高速缓冲存储器(113)的外部连接(121),所述方法包括:
将数据从所述外部连接(121)直接加载到所述处理器高速缓冲存储器(113)中;以及
将所述数据的源地址修改成指示除了来自所述外部连接(121)之外的位置。
11.根据权利要求10所述的方法,其中所述处理器(110)可操作地耦合到主要外部系统存储器(130),并且所述方法进一步包括:
将所述数据的源地址修改成指示在所述主要外部系统存储器(130)中的位置。
12.根据权利要求10或11所述的方法,进一步包括设置用于直接地加载到所述处理器高速缓冲存储器(113)中的所有数据的页面重写标志位。
13.根据权利要求11或12所述的方法,进一步包括向所述主要外部系统存储器(130)通知在所述主要外部系统存储器(130)中的数据存储的一部分被保留用于在使用之后存储所述直接加载的数据。
14.根据权利要求10到13所述的方法,其中所述修改和通知的步骤与将所述数据加载到所述处理器高速缓冲存储器(113)同时地发生。
CN2010800682674A 2010-07-27 2010-07-27 降低处理器延迟的装置和方法 Pending CN103026351A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/IB2010/053410 WO2012014015A2 (en) 2010-07-27 2010-07-27 Apparatus and method for reducing processor latency

Publications (1)

Publication Number Publication Date
CN103026351A true CN103026351A (zh) 2013-04-03

Family

ID=45530533

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010800682674A Pending CN103026351A (zh) 2010-07-27 2010-07-27 降低处理器延迟的装置和方法

Country Status (4)

Country Link
US (1) US20130124800A1 (zh)
EP (1) EP2598998A4 (zh)
CN (1) CN103026351A (zh)
WO (1) WO2012014015A2 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105549899A (zh) * 2014-10-28 2016-05-04 阿尔特拉公司 用于维持嵌入式存储器块中的存储器访问相干性的系统和方法
CN106990909A (zh) * 2016-01-21 2017-07-28 株式会社东芝 盘装置、存储装置及控制方法
CN108614667A (zh) * 2016-12-12 2018-10-02 中国航空工业集团公司西安航空计算技术研究所 可配置广播els数据帧上电自动加载电路及方法

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10452598B2 (en) * 2016-10-18 2019-10-22 Micron Technology, Inc. Apparatuses and methods for an operating system cache in a solid state device
US10852977B2 (en) * 2018-05-23 2020-12-01 University-Industry Cooperation Group Of Kyung-Hee University System for providing virtual data storage medium and method of providing data using the same
US20240053891A1 (en) * 2022-08-12 2024-02-15 Advanced Micro Devices, Inc. Chipset Attached Random Access Memory

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1060916A (zh) * 1990-10-26 1992-05-06 国际商业机器公司 用以保持高速缓冲存储器完整性的方法与装置
US5197144A (en) * 1990-02-26 1993-03-23 Motorola, Inc. Data processor for reloading deferred pushes in a copy-back data cache
US6496917B1 (en) * 2000-02-07 2002-12-17 Sun Microsystems, Inc. Method to reduce memory latencies by performing two levels of speculation
US20080244151A1 (en) * 2007-03-31 2008-10-02 Silicon Laboratories Inc. Method and apparatus for emulating rewritable memory with non-rewritable memory in an mcu
US20090119460A1 (en) * 2007-11-07 2009-05-07 Infineon Technologies Ag Storing Portions of a Data Transfer Descriptor in Cached and Uncached Address Space

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4322795A (en) * 1980-01-24 1982-03-30 Honeywell Information Systems Inc. Cache memory utilizing selective clearing and least recently used updating
US5361391A (en) * 1992-06-22 1994-11-01 Sun Microsystems, Inc. Intelligent cache memory and prefetch method based on CPU data fetching characteristics
US5659709A (en) * 1994-10-03 1997-08-19 Ast Research, Inc. Write-back and snoop write-back buffer to prevent deadlock and to enhance performance in an in-order protocol multiprocessing bus
US5835947A (en) * 1996-05-31 1998-11-10 Sun Microsystems, Inc. Central processing unit and method for improving instruction cache miss latencies using an instruction buffer which conditionally stores additional addresses
US5918246A (en) * 1997-01-23 1999-06-29 International Business Machines Corporation Apparatus and method for prefetching data based on information contained in a compiler generated program map
US6594711B1 (en) * 1999-07-15 2003-07-15 Texas Instruments Incorporated Method and apparatus for operating one or more caches in conjunction with direct memory access controller
US6574682B1 (en) * 1999-11-23 2003-06-03 Zilog, Inc. Data flow enhancement for processor architectures with cache
US6766427B1 (en) * 2000-06-30 2004-07-20 Ati International Srl Method and apparatus for loading data from memory to a cache
JP4822598B2 (ja) * 2001-03-21 2011-11-24 ルネサスエレクトロニクス株式会社 キャッシュメモリ装置およびそれを含むデータ処理装置
US7231470B2 (en) * 2003-12-16 2007-06-12 Intel Corporation Dynamically setting routing information to transfer input output data directly into processor caches in a multi processor system
US20050198442A1 (en) * 2004-03-02 2005-09-08 Mandler Alberto R. Conditionally accessible cache memory
US7269708B2 (en) * 2004-04-20 2007-09-11 Rambus Inc. Memory controller for non-homogenous memory system
US7827558B2 (en) * 2004-06-30 2010-11-02 Devicevm, Inc. Mechanism for enabling a program to be executed while the execution of an operating system is suspended
US7441054B2 (en) * 2005-09-26 2008-10-21 Realtek Semiconductor Corp. Method of accessing internal memory of a processor and device thereof
US7529916B2 (en) * 2006-08-16 2009-05-05 Arm Limited Data processing apparatus and method for controlling access to registers
GB0722707D0 (en) * 2007-11-19 2007-12-27 St Microelectronics Res & Dev Cache memory
US8095702B2 (en) * 2008-03-19 2012-01-10 Lantiq Deutschland Gmbh High speed memory access in an embedded system
US8464001B1 (en) * 2008-12-09 2013-06-11 Nvidia Corporation Cache and associated method with frame buffer managed dirty data pull and high-priority clean mechanism
US8276039B2 (en) * 2009-02-27 2012-09-25 Globalfoundries Inc. Error detection device and methods thereof
US20110082983A1 (en) * 2009-10-06 2011-04-07 Alcatel-Lucent Canada, Inc. Cpu instruction and data cache corruption prevention system
US20110153944A1 (en) * 2009-12-22 2011-06-23 Klaus Kursawe Secure Cache Memory Architecture

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5197144A (en) * 1990-02-26 1993-03-23 Motorola, Inc. Data processor for reloading deferred pushes in a copy-back data cache
CN1060916A (zh) * 1990-10-26 1992-05-06 国际商业机器公司 用以保持高速缓冲存储器完整性的方法与装置
US6496917B1 (en) * 2000-02-07 2002-12-17 Sun Microsystems, Inc. Method to reduce memory latencies by performing two levels of speculation
US20080244151A1 (en) * 2007-03-31 2008-10-02 Silicon Laboratories Inc. Method and apparatus for emulating rewritable memory with non-rewritable memory in an mcu
US20090119460A1 (en) * 2007-11-07 2009-05-07 Infineon Technologies Ag Storing Portions of a Data Transfer Descriptor in Cached and Uncached Address Space

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105549899A (zh) * 2014-10-28 2016-05-04 阿尔特拉公司 用于维持嵌入式存储器块中的存储器访问相干性的系统和方法
CN105549899B (zh) * 2014-10-28 2018-11-13 阿尔特拉公司 用于维持嵌入式存储器块中的存储器访问相干性的系统和方法
CN106990909A (zh) * 2016-01-21 2017-07-28 株式会社东芝 盘装置、存储装置及控制方法
CN108614667A (zh) * 2016-12-12 2018-10-02 中国航空工业集团公司西安航空计算技术研究所 可配置广播els数据帧上电自动加载电路及方法
CN108614667B (zh) * 2016-12-12 2021-03-26 中国航空工业集团公司西安航空计算技术研究所 可配置广播els数据帧上电自动加载电路及方法

Also Published As

Publication number Publication date
WO2012014015A3 (en) 2012-11-22
WO2012014015A2 (en) 2012-02-02
EP2598998A2 (en) 2013-06-05
EP2598998A4 (en) 2014-10-15
US20130124800A1 (en) 2013-05-16

Similar Documents

Publication Publication Date Title
US11360894B2 (en) Storage system and method for accessing same
US10679690B2 (en) Method and apparatus for completing pending write requests to volatile memory prior to transitioning to self-refresh mode
US7257693B2 (en) Multi-processor computing system that employs compressed cache lines' worth of information and processor capable of use in said system
US20170160955A1 (en) Page migration in a 3d stacked hybrid memory
CN103026351A (zh) 降低处理器延迟的装置和方法
EP4009186A1 (en) Network-on-chip data processing method and device
CN103229123A (zh) 在多核处理器内管理功率的方法及装置
US6934811B2 (en) Microprocessor having a low-power cache memory
KR20160079646A (ko) 비대칭적 프로세서 코어 간의 협력적 실행을 위한 기법
US20120047387A1 (en) Cache control device and cache control method
US20240193084A1 (en) Storage System and Method for Accessing Same
US20200104076A1 (en) Dimensional direct memory access controller
US9396110B2 (en) Non-volatile hybrid memory
US11893241B1 (en) Variable hit latency cache
TWI835272B (zh) 控制快取原則的系統及方法,及快取區
US20190278361A1 (en) Power state management
US20240095194A1 (en) Read Arbiter Circuit with Dual Memory Rank Support
US20230388241A1 (en) Data Encoding and Packet Sharing in a Parallel Communication Interface
US20240094917A1 (en) Write Arbiter Circuit with Per-Rank Allocation Override Mode
KR20240034258A (ko) Ram으로서의 캐시 메모리의 동적 할당

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20130403