CN102713868A - 存取二级存储器的一部分及一级存储器的系统及方法 - Google Patents

存取二级存储器的一部分及一级存储器的系统及方法 Download PDF

Info

Publication number
CN102713868A
CN102713868A CN2011800060350A CN201180006035A CN102713868A CN 102713868 A CN102713868 A CN 102713868A CN 2011800060350 A CN2011800060350 A CN 2011800060350A CN 201180006035 A CN201180006035 A CN 201180006035A CN 102713868 A CN102713868 A CN 102713868A
Authority
CN
China
Prior art keywords
level
memory
data
level storage
storage
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.)
Granted
Application number
CN2011800060350A
Other languages
English (en)
Other versions
CN102713868B (zh
Inventor
苏雷什·K·文库马汉提
克里斯托弗·爱德华·科布
卢奇安·科德雷斯库
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 CN102713868A publication Critical patent/CN102713868A/zh
Application granted granted Critical
Publication of CN102713868B publication Critical patent/CN102713868B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • 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/0893Caches characterised by their organisation or structure
    • 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
    • G06F12/0884Parallel mode, e.g. in parallel with main memory or CPU

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

本发明揭示一种从二级存储器的一部分或从一级存储器存取数据的系统及方法。在一特定实施例中,所述系统包括一级高速缓存及二级存储器。所述二级存储器的第一部分耦合到输入端口且可与所述一级高速缓存并行地寻址。

Description

存取二级存储器的一部分及一级存储器的系统及方法
技术领域
本发明大体上涉及存取二级存储器的一部分及一级存储器。
背景技术
技术的进展已产生更小且功能更强大的计算装置。举例来说,当前存在多种便携型个人计算装置,包括无线计算装置,例如便携型无线电话、个人数字助理(PDA)及寻呼装置,其体积小、重量轻且易于由用户携载。更具体地说,便携型无线电话(例如,蜂窝式电话及因特网协议(IP)电话)可经由无线网络传达语音及数据包。此外,许多这些无线电话包括并入于其中的其它类型的装置。举例来说,无线电话还可包括数字照相机、数字摄像机、数字记录器及音频文件播放器。此外,这些无线电话可处理可执行指令,包括可用于接入因特网的软件应用程序(例如,网页浏览器应用程序)。因此,这些无线电话可包括强大的计算能力。
现代计算装置可使用高速缓存以复制存储于计算装置的主存储器中的数据。与存取计算装置的主存储器所需的时间周期相比,可在较短的时间周期中存取高速缓存。由于与存取计算装置的主存储器所需的时间周期相比可在较短的时间周期中存取高速缓存,因此计算装置的性能可通过执行从高速缓存的较快存储器存取而非从主存储器的较慢存储器存取来加以改良。可将高速缓存分成多个级,例如,一级高速缓存及二级高速缓存。当接收存储器存取请求时,首先在一级高速缓存内搜索存储器存取请求中指定的数据。如果未在一级高速缓存中找到存储器存取请求中指定的数据,则随后可在二级高速缓存内搜索存储器存取请求中指定的数据。由于在现代计算装置中空间可为有限的,因此一级高速缓存的大小可为有限的。同样,二级高速缓存的大小也可为有限的,但二级高速缓存常常大于一级高速缓存。
发明内容
可通过处理二级存储器的选定部分犹如其为一级存储器的部分来增加一级存储器的有效大小。引导到一级存储器的存储器存取请求也可引导到二级存储器的选定部分。因此可在于一级存储器内搜索存储器存取请求中指定的数据的同时在二级存储器的选定部分内搜索存储器存取请求中指定的数据。二级存储器可大于一级存储器。二级存储器的选定部分经选择以使得存取二级存储器的选定部分在小于或等于从一级存储器存取数据所需的时间量的时间量中发生。结果,可在不增加存取一级存储器所需的时间量的情况下增加一级存储器的有效大小。
在特定实施例中,二级存储器的选定部分物理上接近于一级存储器而定位,且经配置以用作一级存储器的延伸。由于引导到一级存储器的存储器存取请求也可发送到二级存储器的选定部分,因此选择物理上接近于一级存储器定位的二级存储器的一部分可减少存储器存取请求将必须越过以在二级存储器的选定部分处接收的布线量,借此减少将存储器存取请求传输到二级存储器所需的时间量。另外,当从二级存储器的选定部分检索数据时,由于在一级存储器与二级存储器的选定部分之间的紧密接近性,还可减少数据将必须越过以在一级存储器的输出处接收的布线量。
在特定实施例中,揭示一种设备,其包括一级高速缓存及二级存储器。二级存储器的第一部分耦合到输入端口,且可与一级高速缓存并行地寻址。
在另一特定实施例中,揭示一种方法,其包括接收存储器存取请求及将存储器存取请求分配到存储器系统。存储器系统包括一级存储器及存储器的子部分。所述方法包括从一级存储器或存储器的子部分选择性地提供数据。
在另一特定实施例中,揭示一种设备,其包括用于在多级存取存储器系统处存储一级存取的数据的装置。所述设备进一步包括用于在多级存储器系统处存储二级存取的数据的装置。用于存储二级存取的数据的装置的一部分耦合到输入端口,且可与用于存储一级存取的数据的装置并行地寻址。
由所揭示实施例中的至少一者提供的一个特定优点在于,与不响应于一级存储器请求而存取二级存储器的一部分的装置相比,可作为一级存储器存取的存储器的量增加。由于二级存储器的一部分经存取犹如其为一级存储器,因此可有效地充当一级存储器的存储器的量增加,而无需使额外物理空间专用于一级存储器。
在审阅整个申请案之后,本发明的其它方面、优点及特征将变得显而易见,所述整个申请案包括以下部分:附图说明、具体实施方式及权利要求书。
附图说明
图1为经配置以存取二级存储器的一部分及一级存储器的设备的特定说明性实施例的框图;
图2为经配置以存取二级存储器的一部分及一级存储器的设备的第二说明性实施例的框图;
图3为存取一级存储器及存储器的子部分的方法的特定说明性实施例的流程图;
图4为存取一级存储器及存储器的子部分的方法的第二说明性实施例的流程图;及
图5为经配置以存取二级存储器的一部分及一级存储器的便携型装置的框图。
具体实施方式
参看图1,经配置以存取二级存储器的一部分及一级存储器的设备的特定说明性实施例经揭示且大体指定为100。设备100包括例如一级高速缓存的一级存储器104,且还包括二级存储器112。二级存储器112包括第一部分108及第二部分110。二级存储器112的第一部分108及一级存储器104可并行地寻址以使得一级存储器104及二级存储器112的第一部分108可作为存储器系统114操作。由于一级存储器104及二级存储器112的第一部分108可并行地寻址,因此引导到一级存储器104的存储器存取请求102也可传递到二级存储器112的第一部分108。可(例如)通过将将存储器存取请求102携载到一级存储器104的信号线耦合到通向二级存储器112的第一部分108的输入端口来进行将存储器存取请求102传递到二级存储器112的第一部分108。
可基于与一级存储器104相关联的存取时间建立二级存储器112的第一部分108及二级存储器112的第二部分110的相应大小。举例来说,可建立二级存储器112的第一部分108的大小及第一部分108到一级存储器104的接近性,以使得可在与可存取一级存储器104相同的时间量中存取二级存储器112的第一部分108。在特定实施例中,一级存储器104的第一数据读取等待时间为与二级存储器112的第一部分108的第二数据读取等待时间相同数目或较大数目的处理器循环。
在操作期间,可同时将存储器存取请求102提供到一级存储器104及二级存储器112的第一部分108。存储器存取请求102可为(例如)用以存取存储于指定地址处的数据的请求或用以存取存储于指定地址处的指令的请求。可搜索一级存储器104及二级存储器112的第一部分108以确定是一级存储器104还是二级存储器112的第一部分108包括对应于由存储器存取请求102所请求的数据的数据。当一级存储器104或二级存储器112的第一部分108含有对应于由存储器存取请求102所请求的数据的数据时,可从一级存储器104或从二级存储器112的第一部分108提供对应于由存储器存取请求102所请求的数据的数据106。当一级存储器104及二级存储器112的第一部分108不含有对应于由存储器存取请求102所请求的数据的数据时,存储器存取请求102可被认为一级高速缓存未中,且存储器存取请求102或不同的存储器存取请求可转发到二级存储器112,且可在二级存储器112的第二部分110内搜索所请求的数据。
由于二级存储器的一部分经存取犹如其为一级存储器,因此增加可作为一级存储器存取的设备100中的存储器的量。结果,可有效地充当一级存储器的存储器的量增加,而无需使额外物理空间专用于一级存储器104。
参看图2,经配置以存取二级存储器的一部分及一级存储器的设备的特定说明性实施例经揭示且大体指定为200。设备200包括一级存储器104及二级存储器112。设备200还包括经配置以接收一个或一个以上存储器存取请求的输入端口206及输出多路复用器218。一级存储器104可为高速缓存,例如数据高速缓存或指令高速缓存。在替代实施例中,一级存储器104可为紧密耦合存储器(TCM)。二级存储器112可为二级高速缓存、TCM、基于阵列的存储器或任何其它形式的计算机存储器。二级存储器112包括二级存储器112的第一部分108。举例来说,二级存储器112的第一部分108可为二级存储器112内的多个阵列的子阵列208。另外,二级存储器112的第一部分108可物理上接近于一级存储器104而定位。不作为二级存储器112的第一部分108的部分而包括在内的二级存储器112中的所有存储器可表征为二级存储器112的第二部分110。第一组选择元件292耦合到第二部分110以将L2存储器存取请求202经由信号线290提供到第二部分110。第一组选择元件292可包括电路,所述电路经配置以选择性地传播经由信号线所接收的信号,例如,沿一个或一个以上地址线216、220及224传播地址信号。举例来说,在所说明的实施例中,第一组选择元件292包括一组多路分用器。说明为多路复用器的第二组选择元件294耦合到第二部分110以将L2存储器存取请求202的结果提供为L2数据296。
在图2中所描绘的实施例中,一级存储器104的第一数据读取等待时间为第一数目个处理器循环,且二级存储器112的第一部分108的第二数据读取等待时间为第二数目个处理器循环。第二数目个处理器循环可小于或等于第一数目个处理器循环。举例来说,一级存储器104可为具有卷标阵列及数据阵列的串行存取高速缓存,其中首先读取卷标阵列且在卷标阵列之后读取数据阵列。二级存储器112的第一部分108可不包括卷标阵列,且因此可在比一级存储器104少的处理器循环(或相等数目个循环)中经读取。
此外,二级存储器112的第一部分108的第二数据读取等待时间小于二级存储器112的至少一个其它部分(例如二级存储器112的第二部分110)的第三数据读取等待时间。由于二级存储器112的第一部分108包括较短导线长度且比二级存储器112的其它部分更接近于输入端口206,因此第二数据读取等待时间可小于第三数据读取等待时间。举例来说,用以寻址子阵列208中的存储器元件的地址线212可具有比二级存储器112的至少一个其它部分中的地址线(例如地址线216、220及224)短的地址线长度。另外,地址线212的数目小于二级存储器112内的地址线212、216、220及224的总数目。
由于用以传播二级存储器112的第一部分108中的信号的导线(例如地址线212)可比用以传播二级存储器112的其它部分中的信号的导线(例如地址线216、220及224)短,且由于子阵列208更接近于输入端口206,因此可在比沿较长导线(例如,地址线216、220及224)传输信号所需的时间少的时间内经由较短导线(例如,地址线212)传达信号。举例来说,表示待从二级存储器112的第一部分108检索的数据的地址的信号可在比沿较长地址线216、220及224传输表示待从二级存储器112的第二部分110检索的数据的地址的类似信号所需的时间少的时间内经由较短地址线212传达。因此可将二级存储器112的一部分指定为二级存储器112的第一部分108,其中可在等于或小于存取一级存储器104所需的时间量的时间量中存取所述第一部分。
输入端口206可经配置以接收一级(L1)存储器存取请求102或二级(L2)存储器存取请求202。输入端口206可耦合到一级存储器104且进一步耦合到二级存储器112。输入端口206可包括2对1多路复用器204。多路复用器204可经配置以经由第一信号线203接收L1存储器存取请求102,经由第二信号线205接收L2存储器存取请求202,且接收状态位226。状态位226可用作控制位以确定是L1存储器存取请求102还是L2存储器存取请求202应从多路复用器204输出且引导到二级存储器112。
输出多路复用器218可耦合到一级存储器104且耦合到二级存储器112的第一部分108。输出多路复用器218可经由第一信号线229耦合到二级存储器的第一部分108(第一信号线229可包括多个数据线)。输出多路复用器218还可经由第二信号线230耦合到一级存储器104(第二信号线230可包括多个数据线)。输出多路复用器218可经配置以输出从一级存储器104检索或从二级存储器112的第一部分108检索的数据106。举例来说,可从一级存储器104或从二级存储器112的第一部分108检索数据。在从一级存储器104或从二级存储器112的第一部分108检索数据之后,可将数据经由第一信号线229或第二信号线230提供到输出多路复用器218。输出多路复用器218可基于例如指示存储器存取请求中所请求的数据是从一级存储器104还是从二级存储器112的第一部分108检索的值的值228来确定是输出从一级存储器104所接收的数据还是输出从二级存储器112的第一部分108所接收的数据。举例来说,值228可由例如高速缓存控制单元(未图标)的控制电路产生以响应于一级存储器104处的高速缓存命中选择第二信号线230或响应于数据106是从二级存储器112的第一部分108检索而选择第一信号线229。作为另一实例,可将页指派到二级存储器112的第一部分108,且可在如翻译后备缓冲器(TLB)处所确定的对页的连续存取期间维持值228以选择第一信号线229(如关于图4所描述)。
在操作期间,可在端口206及一级存储器104处接收L1存储器存取请求102。或者,可例如经由选择机构(未图示)将L1存储器存取请求102选择性地提供到一级存储器104或端口206中的仅一者。当状态位226指示二级存储器112的第一部分108经启用以作为一级存储器104的延伸而操作时,多路复用器204可输出L1存储器存取请求102以使得可存取二级存储器112的第一部分108以确定由L1存储器存取请求102所请求的数据的复本是否存储于二级存储器112的第一部分108内。由于二级存储器112的第一部分108经启用以作为一级存储器104的延伸而操作,因此引导到一级存储器104的存储器存取请求(例如L1存储器存取请求102)也可引导到二级存储器112的第一部分108。L1存储器存取请求102因此可由一级存储器104或二级存储器112的第一部分108服务,犹如一级存储器104或二级存储器112的第一部分108为单一存储器系统。
在特定实施例中,状态位226可用作向多路复用器204的控制输入。在初始化设备200时,首先可将状态位226设定为第一特定值。状态位226的第一特定值可使多路复用器204输出经由第一信号线203接收且携载L1存储器存取请求102的数据。当在端口206处接收到L1存储器存取请求102时,多路复用器204因此可基于状态位226的值输出L1存储器存取请求102。只要每一L1存储器存取请求102导致一级存储器104或二级存储器112的第一部分108处的高速缓存命中,状态位226即可保持不变。然而,如果L1存储器存取请求102导致一级存储器104及二级存储器112的第一部分108处的高速缓存未中,则可将L2存储器存取请求202发送到二级存储器112。为了将L2存储器存取请求202发送到二级存储器112,可将状态位226改变为第二特定值。状态位226的第二特定值可使多路复用器204输出经由第二信号线205在多路复用器204处接收且携载L2存储器存取请求202的数据。当在端口206处接收到L2存储器存取请求202时,多路复用器204因此可基于状态位226的值输出L2存储器存取请求202。在已从多路复用器204输出L2存储器存取请求202之后,状态位226接着可返回到第一特定值。存储器存取请求因此首先可处理为L1存储器存取请求102,且随后至少部分地响应于发生在一级存储器104处的高速缓存未中而处理为L2存储器存取请求202。
在特定实施例中,可将L2存储器存取请求202并行发送到第一部分108且发送到第二部分110。举例来说,L2存储器存取请求202可从多路复用器204输出且经由信号线290传输到第一组选择元件292。在此实例中,第一部分108及第二部分110可作为单一二级存储器112操作以用于服务于L2存储器存取请求202。如果L2存储器存取请求202导致高速缓存命中,则二级存储器112处的高速缓存控制单元可从二级存储器112的第一部分108提供对应于L2存储器存取请求202的所请求数据或将对应于L2存储器存取请求202的所请求数据提供到二级存储器112的第二部分110。举例来说,L2数据296可经由来自耦合到选择元件294的第一部分108及第二部分110的输出信号线而从第一部分108或从第二部分110输出。
在额外实施例中,可将L1存储器存取请求102发送到一级存储器104且发送到二级存储器112的第一部分108,而将L2存储器存取请求202同时经由信号线290发送到二级存储器112的第二部分110且发送到第一组选择元件292。在此实例中,L1存储器存取请求102及L2存储器存取请求202为可同时接受服务的非冲突存储器存取请求。
在特定实施例中,一级存储器104及二级存储器112可体现为由多个高速缓存线构成的高速缓存。一级存储器104及二级存储器112可各自包括高速缓存控制单元,所述高速缓存控制单元包含用以检验相应高速缓存的内容的逻辑。一级存储器104的内容可(例如)通过使用比较逻辑来检验,所述比较逻辑检查匹配L1存储器存取请求102中所指定的地址的至少一部分的特定高速缓存线中的标签。当识别出此高速缓存线时,高速缓存命中发生,且高速缓存控制单元可指示与L1存储器存取请求102相关联的数据存在于高速缓存中。当未找到高速缓存线时,高速缓存未中发生,且高速缓存控制单元可提供未中指示。
举例来说,可在一级存储器104及二级存储器112的第一部分108内搜索L1存储器存取请求102中指定的数据。如果由L1存储器存取请求102所请求的数据存在于一级存储器104处,则一级存储器104处的高速缓存控制单元可经由第二信号线230(例如,第二信号线230可包括用于数据的多个数据线及用以指示高速缓存命中或未中的特定线)输出指示L1存储器存取请求102导致一级存储器104处的高速缓存命中的值228。值228可发送到输出多路复用器218以用作控制,以使得输出多路复用器218将输出从一级存储器104所接收的数据。高速缓存控制单元接着可将对应于L1存储器存取请求102的数据106从一级存储器104提供到输出多路复用器218。同样,如果由L1存储器存取请求102所请求的数据106存在于二级存储器112的第一部分108处,则二级存储器112处的高速缓存控制单元可经由第一信号线229(第一信号线229可包括用于数据的多个数据线及用以指示高速缓存命中或未中的特定线)输出指示L1存储器存取请求102导致二级存储器112的第一部分108处的高速缓存命中的值228。高速缓存控制单元接着可将对应于L1存储器存取请求102的所请求数据106从二级存储器112的第一部分108提供到输出多路复用器218。输出多路复用器218从一级存储器104或从二级存储器112的第一部分108提供所检索的数据。
图1的设备100及图2的设备200可并入到各种电子装置中。举例来说,例如数字信号处理器的处理装置可包括用于在多级存取存储器系统处存储一级存取的数据的装置(例如一级存储器104),及用于在多级存储器系统处存储二级存取的数据的装置(例如二级存储器112),其中用于存储二级存取的数据的装置的一部分(例如,第一部分108)耦合到输入端口且可与用于存储一级存取的数据的装置并行地寻址。在特定实施例中,图1的设备100或图2的设备200可集成到至少一个半导体裸片中。图1的设备100或图2的设备200可进一步包括例如机顶盒、音乐播放器、视频播放器、娱乐单元、导航装置、通信装置、个人数字助理(PDA)、固定位置数据单元及计算机的装置,一级存储器104及二级存储器112集成于所述装置中。
参看图3,存取二级存储器的一部分及一级存储器的方法的特定说明性实施例的流程图经描绘且大体指定为300。方法300包括在302处接收存储器存取请求。存储器存取请求可包括待响应于存储器存取请求而检索的数据的存储器地址。举例来说,在图1中,存储器存取请求102由包括可与二级存储器112的第一部分108并行地寻址的一级存储器104的存储器系统114接收。
移到304,方法300包括将存储器存取请求分配到存储器系统。存储器系统包括一级存储器及存储器的子部分。举例来说,在图1中,将存储器存取请求102分配到存储器系统114。存储器系统114包括一级存储器及二级存储器的第一部分。尽管可将存储器存取请求102分配到一级存储器104及二级存储器112的第一部分108,但可替代地将存储器存取请求102分配到一级存储器104及二级存储器112的第一部分108中的仅一者。举例来说,如果在一级存储器104中找到第一存储器存取请求中指定的数据,则可将所有随后存储器存取请求仅分配到一级存储器104,直到高速缓存未中发生。因此,将存储器存取请求分配到包括一级存储器与存储器的子部分两者的系统,且可以许多方式在存储器系统内分配存储器存取请求。
方法300包括在306处从一级存储器或存储器的子部分选择性地提供数据。举例来说,在图1中,从一级存储器104或从二级存储器112的第一部分108提供数据106。
在特定实施例中,所述方法还包括将数据值写入到一级存储器或存储器的子部分。举例来说,可将待存储的用于一级存取的数据字经由输入端口206提供到一级存储器104或二级存储器112的第一部分208中的选定一者。将数据字写入到二级存储器112的第一部分208可花费与将数据字写入到一级存储器104相同数目的处理器循环。在一级存储器处还是在存储器的子部分处存储数据字的确定可基于数据字的地址。
参看图4,存取二级存储器的一部分及一级存储器的方法的特定说明性实施例的流程图经描绘且大体指定为400。方法400包括在402处接收存储器存取请求。举例来说,在图2中,L1存储器存取请求102可由设备200接收。
方法400包括在404处将存储器存取请求分配到存储器系统。存储器系统包括一级存储器及存储器的子部分。一级存储器可体现为高速缓存或紧密耦合存储器(TCM)。此外,存储器的子部分可体现为包括多个阵列或多个子阵列的存储器中的阵列的子阵列。举例来说,在图2中,可将L1存储器存取请求102经由端口206分配到一级存储器104及二级存储器112的第一部分108。
移动到406,方法400包括检查对应于一级存储器的状态位。所述状态位可用于确定存储器存取请求应引导到作为一级存储器的延伸而操作的二级存储器的一部分还是引导到二级存储器。举例来说,在图2中,状态位226用作控制位,且状态位226的值由多路复用器204检查以确定存储器存取请求102应引导到作为一级存储器104的延伸而操作的二级存储器112的第一部分108还是引导到二级存储器112的第二部分110。
方法400进一步包括在408处响应于指示存储器的子部分经启用的状态位而将存储器存取请求路由到存储器的子部分。举例来说,在图2中,当状态位226指示二级存储器112的第一部分108经启用以用作一级存储器104的延伸时,L1存储器存取请求102经由端口206路由到二级存储器112的第一部分108。由于二级存储器112的第一部分108经启用以用作一级存储器104的延伸,因此引导到一级存储器104的存储器存取请求(例如L1存储器存取请求102)也引导到二级存储器112的第一部分108。L1存储器存取请求102因此可由一级存储器104或二级存储器112的第一部分108服务,犹如一级存储器104或二级存储器112的第一部分108为单一存储器系统。
移到410,所述方法包括从一级存储器或从存储器的子部分选择性地提供数据。响应于存储器存取请求的存储器存取可独立于存储器存取是发生在一级存储器处还是存储器的子部分处而在一时间周期(例如,一个或一个以上处理器循环)期间发生。另外,数据可基于指示数据是存储于一级存储器处还是存储器的子部分处的值而从一级存储器或存储器的子部分选择性地提供。所述值可基于对应于存储器存取请求的地址。举例来说,所述方法可包括基于存储器存取请求的地址从一级存储器或存储器的子部分选择性地检索数据。为说明起见,在图2中,可从一级存储器104或从二级存储器112的第一部分108选择性地检索数据106。可基于提供到输出多路复用器218的值228而从一级存储器104或从二级存储器112的第一部分108选择性地检索数据106。值228可基于L1存储器存取请求102中指定的地址,例如指示由含于L1存储器存取请求102中的地址所指定的数据是在一级存储器104中找到还是在二级存储器112的第一部分108中找到的值。可从一级存储器104或从二级存储器112的第一部分108提供数据106。在特定实施例中,当数据106位于二级存储器112的第一部分108处时提供数据106的时间量可为与数据106位于一级存储器104处时相同数目的处理器循环。在另一实施例中,当数据106位于二级存储器112的第一部分108处时提供数据106的时间量可为比数据106位于一级存储器104处时更少数目的处理器循环。
在说明性实施例中,当存取翻译后备缓冲器(TLB)的相同页时可维持值228。当正存取相同TLB页时,可通过存取一级存储器104或二级存储器112的第一部分108中的仅一者来节省功率。当页改变时可更新值228。举例来说,使用模型可包括将单独页仅指派到二级存储器112的第一部分108。二级存储器112的第一部分108可用于所指派页处的连续存储器存取,且当退出所指派页时,可存取存储器的另一部分。
图3及4的方法可在集成于电子装置中的处理器处执行。举例来说,如关于图5将描述,存储器存取请求可由计算机或其它电子装置分配,且数据可由计算机或其它电子装置从一级存储器或存储器的子部分提供。或者或另外,所属领域的技术人员将认识到,图3的方法300及图4的方法400可由现场可编程门阵列(FPGA)、专用集成电路(ASIC)、中央处理单元(CPU)、数字信号处理器(DSP)、控制器、另一硬件装置或其任何组合实施或起始。
参看图5,经配置以存取二级存储器的一部分及一级存储器的电子装置的特定说明性实施例的框图经描绘且大体指定为500。装置500包括处理器,例如耦合到存储器532的数字信号处理器(DSP)510。DSP 510包括一级存储器104及二级存储器112。二级存储器112包括二级存储器112的第一部分108及二级存储器112的第二部分110。一级存储器104及二级存储器112的第一部分108可形成存储器系统114。在替代实施例中,一级存储器104及包括二级存储器112的第一部分108及二级存储器112的第二部分110的二级存储器112可位于DSP 510外部的其它存储器(例如存储器532)中。在说明性实例中,一级存储器104及二级存储器112根据图3到4的方法中的一者或一者以上或其任何组合操作。
图5还展示耦合到数字信号处理器510及显示器528的显示控制器526。编码器/解码器(CODEC)534还可耦合到DSP 510。扬声器536及麦克风538可耦合到CODEC534。
图5还指示无线控制器540可耦合到DSP 510及无线天线542。在特定实施例中,DSP 510(包括一级存储器104及二级存储器112)、显示控制器526、存储器532、CODEC534及无线控制器540包括于封装中系统或芯片上系统装置522中。在特定实施例中,输入装置530及电源544耦合到芯片上系统装置522。此外,在特定实施例中,如图5中所说明,显示器528、输入装置530、扬声器536、麦克风538、无线天线542及电源544在芯片上系统装置522外部。然而,显示器528、输入装置530、扬声器536、麦克风538、无线天线542及电源544中的每一者可耦合到芯片上系统系统装置522的组件(例如,接口或控制器)。
所属领域的技术人员将进一步了解,结合本文中所揭示的实施例所描述的各种说明性逻辑块、配置、模块、电路及算法步骤可实施为电子硬件、可由处理单元执行的计算机软件或两者的组合。上文已大体在功能性方面描述各种说明性组件、块、配置、模块、电路及步骤。此功能性是实施为硬件还是软件视特定应用及外加于整个系统的设计约束而定。所属领域的技术人员可针对每一特定应用以变化方式实施所描述的功能性,但这些实施决策不应解释为会引起脱离本发明的范畴。
结合本文中所揭示的实施例而描述的方法或算法的步骤可直接体现于硬件中、由处理器执行的软件模块中,或两者的组合中。软件模块可驻留于随机存取存储器(RAM)、闪存、只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、寄存器、硬盘、可装卸磁盘、压缩光盘只读存储器(CD-ROM),或此项技术中已知的任何其它形式的存储媒体中。示范性存储媒体耦合到处理器,以使得所述处理器可从存储媒体读取信息及将信息写入到存储媒体。在替代方案中,存储媒体可与处理器形成一体。处理器及存储媒体可驻留于专用集成电路(ASIC)中。ASIC可驻留于计算装置或用户终端中。在替代方案中,处理器及存储媒体可作为离散组件驻留于计算装置或用户终端中。
提供所揭示实施例的先前描述以使得所属领域的技术人员能够制造或使用所揭示的实施例。所属领域的技术人员将易于了解对这些实施例的各种修改,且可在不脱离本发明的范畴的情况下将本文中所界定的原理应用于其它实施例。因此,本发明不意在限于本文中所展示的实施例,而应被赋予与如由所附权利要求书界定的原理及新颖特征一致的可能的最广范畴。

Claims (26)

1.一种设备,其包含:
一级高速缓存;及
二级存储器,其中所述二级存储器的第一部分耦合到输入端口且可与所述一级高速缓存并行地寻址。
2.根据权利要求1所述的设备,其中存储器存取请求经提供到所述一级高速缓存及所述二级存储器的所述第一部分。
3.根据权利要求1所述的设备,其中所述一级高速缓存的第一数据读取等待时间为第一数目个处理器循环,且所述二级存储器的所述第一部分的第二数据读取等待时间为第二数目个处理器循环,其中所述第二数目小于或等于所述第一数目。
4.根据权利要求3所述的设备,其中所述二级存储器的所述第一部分的所述第二数据读取等待时间小于所述二级存储器的至少一个其它部分的第三数据读取等待时间。
5.根据权利要求3所述的设备,其中所述二级存储器为二级高速缓存。
6.根据权利要求1所述的设备,其中所述二级存储器为紧密耦合存储器或高速缓存。
7.根据权利要求1所述的设备,其中所述二级存储器的所述第一部分物理上接近于所述一级高速缓存而定位。
8.根据权利要求7所述的设备,其中所述二级存储器的所述第一部分包含所述二级存储器的单一子阵列。
9.根据权利要求8所述的设备,其中所述单一子阵列包含比所述二级存储器的至少一第二部分短的地址线长度,且包含比所述二级存储器小的区域。
10.根据权利要求1所述的设备,其中所述输入端口包含多路复用器。
11.根据权利要求1所述的设备,其中所述输入端口耦合到所述一级高速缓存。
12.根据权利要求1所述的设备,其进一步包含输出多路复用器,所述输出多路复用器耦合到所述二级存储器的所述第一部分且耦合到所述一级高速缓存。
13.根据权利要求1所述的设备,其集成于至少一个半导体裸片中。
14.根据权利要求13所述的设备,其进一步包含一装置,所述装置选自由机顶盒、音乐播放器、视频播放器、娱乐单元、导航装置、通信装置、个人数字助理PDA、固定位置数据单元及计算机组成的群,所述半导体裸片集成于所述装置中。
15.一种方法,其包含:
接收存储器存取请求;
将所述存储器存取请求分配到存储器系统,所述存储器系统包含一级存储器及存储器的子部分;及
从所述一级存储器及所述存储器的所述子部分中的一者选择性地提供数据。
16.根据权利要求15所述的方法,其中所述数据是基于对应于所述存储器存取请求的值而从所述一级存储器及所述存储器的所述子部分中的一者选择性地提供。
17.根据权利要求15所述的方法,其中所述数据是基于指示所述数据是存储于所述一级存储器处还是所述存储器的所述子部分处的值而从所述一级存储器及所述存储器的所述子部分中的一者选择性地提供。
18.根据权利要求15所述的方法,其中响应于所述存储器存取请求的存储器存取在独立于所述存储器存取是发生在所述一级存储器处还是所述存储器的所述子部分处的时间周期期间发生。
19.根据权利要求15所述的方法,其中所述一级存储器为高速缓存及紧密耦合存储器中的一者。
20.根据权利要求15所述的方法,其中所述子部分为所述存储器的子阵列。
21.根据权利要求15所述的方法,其进一步包含:
检查对应于所述存储器的所述子部分的状态位;及
响应于指示所述存储器的所述子部分经启用的所述状态位,将所述存储器存取请求路由到所述存储器的所述子部分。
22.根据权利要求15所述的方法,其中所述存储器存取请求是同时分配到所述一级存储器与所述存储器的所述子部分两者。
23.根据权利要求15所述的方法,其进一步包含基于存储器存取请求的地址而从所述一级存储器或所述存储器的所述子部分选择性地检索所述数据。
24.根据权利要求15所述的方法,其中分配所述存储器存取请求及从所述一级存储器或所述存储器的所述子部分提供数据是在集成于电子装置中的处理器处执行。
25.一种设备,其包含:
用于在多级存取存储器系统处存储一级存取的数据的装置;及
用于在所述多级存储器系统处存储二级存取的数据的装置,其中所述用于存储所述二级存取的数据的装置的一部分耦合到输入端口且可与所述用于存储所述一级存取的数据的装置并行地寻址。
26.根据权利要求25所述的设备,其集成于至少一个半导体裸片中。
CN201180006035.0A 2010-01-14 2011-01-14 存取二级存储器的一部分及一级存储器的系统及方法 Expired - Fee Related CN102713868B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/687,552 US8341353B2 (en) 2010-01-14 2010-01-14 System and method to access a portion of a level two memory and a level one memory
US12/687,552 2010-01-14
PCT/US2011/021368 WO2011088370A1 (en) 2010-01-14 2011-01-14 System and method to access a portion of a level two memory and a level one memory

Publications (2)

Publication Number Publication Date
CN102713868A true CN102713868A (zh) 2012-10-03
CN102713868B CN102713868B (zh) 2015-11-25

Family

ID=43805732

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180006035.0A Expired - Fee Related CN102713868B (zh) 2010-01-14 2011-01-14 存取二级存储器的一部分及一级存储器的系统及方法

Country Status (7)

Country Link
US (1) US8341353B2 (zh)
EP (1) EP2524314B1 (zh)
JP (4) JP5572719B2 (zh)
KR (1) KR101407040B1 (zh)
CN (1) CN102713868B (zh)
TW (1) TW201142595A (zh)
WO (1) WO2011088370A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120094778A (ko) * 2011-02-17 2012-08-27 삼성전자주식회사 캐시 레이턴시 저감을 위한 캐시 메모리 제어방법 및 캐시 메모리 시스템
KR101442970B1 (ko) * 2013-04-16 2014-09-23 광운대학교 산학협력단 비 휘발성 메모리를 이용한 웹 브라우저 정보 캐싱 장치 및 방법
JP6569347B2 (ja) * 2015-07-16 2019-09-04 富士通株式会社 演算処理装置及び演算処理装置の制御方法
JP7241068B2 (ja) * 2018-05-02 2023-03-16 株式会社半導体エネルギー研究所 半導体装置
US11940929B2 (en) 2019-05-24 2024-03-26 Texas Instruments Incorporated Methods and apparatus to reduce read-modify-write cycles for non-aligned writes
KR20210128073A (ko) * 2020-04-16 2021-10-26 에스케이하이닉스 주식회사 메모리 시스템

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050033920A1 (en) * 2003-08-07 2005-02-10 Delan Eric Cache structure and methodology
US20050216666A1 (en) * 2004-03-24 2005-09-29 Sih Gilbert C Cached memory system and cache controller for embedded digital signal processor
CN101243416A (zh) * 2005-08-08 2008-08-13 罗伯特·博世有限公司 在具有至少两个处理单元和用于数据和/或指令的至少一个第一存储器或存储器区域的计算机系统中存储数据和/或指令的设备和方法
CN101460927A (zh) * 2006-06-06 2009-06-17 高通股份有限公司 处理器核心堆栈扩展
US20100005242A1 (en) * 2008-07-07 2010-01-07 International Business Machines Corp. Efficient Processing of Data Requests With The Aid Of A Region Cache

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5465342A (en) * 1992-12-22 1995-11-07 International Business Machines Corporation Dynamically adaptive set associativity for cache memories
US5832534A (en) * 1994-01-04 1998-11-03 Intel Corporation Method and apparatus for maintaining cache coherency using a single controller for multiple cache memories
US5740399A (en) * 1995-08-23 1998-04-14 International Business Machines Corporation Modified L1/L2 cache inclusion for aggressive prefetch
US5822755A (en) * 1996-01-25 1998-10-13 International Business Machines Corporation Dual usage memory selectively behaving as a victim cache for L1 cache or as a tag array for L2 cache
US5905999A (en) * 1996-04-29 1999-05-18 International Business Machines Corporation Cache sub-array arbitration
US5895487A (en) * 1996-11-13 1999-04-20 International Business Machines Corporation Integrated processing and L2 DRAM cache
JP3666705B2 (ja) * 1996-12-24 2005-06-29 株式会社ルネサステクノロジ 半導体装置
US6044438A (en) * 1997-07-10 2000-03-28 International Business Machiness Corporation Memory controller for controlling memory accesses across networks in distributed shared memory processing systems
US6205537B1 (en) * 1998-07-16 2001-03-20 University Of Rochester Mechanism for dynamically adapting the complexity of a microprocessor
US6397296B1 (en) * 1999-02-19 2002-05-28 Hitachi Ltd. Two-level instruction cache for embedded processors
US6606686B1 (en) * 1999-07-15 2003-08-12 Texas Instruments Incorporated Unified memory system architecture including cache and directly addressable static random access memory
JP2001051898A (ja) * 1999-08-05 2001-02-23 Hitachi Ltd 階層キャッシュメモリのデータ参照方法、および、階層キャッシュメモリを含むデータ処理装置
US6430655B1 (en) * 2000-01-31 2002-08-06 Mips Technologies, Inc. Scratchpad RAM memory accessible in parallel to a primary cache
US6427188B1 (en) * 2000-02-09 2002-07-30 Hewlett-Packard Company Method and system for early tag accesses for lower-level caches in parallel with first-level cache
JP2002007373A (ja) * 2000-06-20 2002-01-11 Fujitsu Ltd 半導体装置
US6886078B1 (en) * 2001-06-21 2005-04-26 Virage Logic Corp. Simultaneous access and cache loading in a hierarchically organized memory circuit
US6848026B2 (en) * 2001-11-09 2005-01-25 International Business Machines Corporation Caching memory contents into cache partitions based on memory locations
US20030145171A1 (en) * 2002-01-31 2003-07-31 Fetzer Eric S. Simplified cache hierarchy by using multiple tags and entries into a large subdivided array
US7322981B2 (en) * 2003-08-28 2008-01-29 Jackson Roger P Polyaxial bone screw with split retainer ring
US7284095B2 (en) * 2004-08-18 2007-10-16 International Business Machines Corporation Latency-aware replacement system and method for cache memories
US7380047B2 (en) * 2004-09-30 2008-05-27 International Business Machines Corporation Apparatus and method for filtering unused sub-blocks in cache memories
US7293141B1 (en) * 2005-02-01 2007-11-06 Advanced Micro Devices, Inc. Cache word of interest latency organization
US7584327B2 (en) * 2005-12-30 2009-09-01 Intel Corporation Method and system for proximity caching in a multiple-core system
US7584335B2 (en) * 2006-11-02 2009-09-01 International Business Machines Corporation Methods and arrangements for hybrid data storage
JP4920378B2 (ja) * 2006-11-17 2012-04-18 株式会社東芝 情報処理装置およびデータ検索方法
US8335122B2 (en) * 2007-11-21 2012-12-18 The Regents Of The University Of Michigan Cache memory system for a data processing apparatus
US9152569B2 (en) * 2008-11-04 2015-10-06 International Business Machines Corporation Non-uniform cache architecture (NUCA)
US20100191913A1 (en) * 2009-01-26 2010-07-29 Agere Systems Inc. Reconfiguration of embedded memory having a multi-level cache
US8156357B2 (en) * 2009-01-27 2012-04-10 Freescale Semiconductor, Inc. Voltage-based memory size scaling in a data processing system
US8271729B2 (en) * 2009-09-18 2012-09-18 International Business Machines Corporation Read and write aware cache storing cache lines in a read-often portion and a write-often portion
JP2011141754A (ja) * 2010-01-07 2011-07-21 Toyota Motor Corp キャッシュメモリ

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050033920A1 (en) * 2003-08-07 2005-02-10 Delan Eric Cache structure and methodology
US20050216666A1 (en) * 2004-03-24 2005-09-29 Sih Gilbert C Cached memory system and cache controller for embedded digital signal processor
CN101243416A (zh) * 2005-08-08 2008-08-13 罗伯特·博世有限公司 在具有至少两个处理单元和用于数据和/或指令的至少一个第一存储器或存储器区域的计算机系统中存储数据和/或指令的设备和方法
CN101460927A (zh) * 2006-06-06 2009-06-17 高通股份有限公司 处理器核心堆栈扩展
US20100005242A1 (en) * 2008-07-07 2010-01-07 International Business Machines Corp. Efficient Processing of Data Requests With The Aid Of A Region Cache

Also Published As

Publication number Publication date
JP2016042370A (ja) 2016-03-31
KR101407040B1 (ko) 2014-06-13
JP2018010680A (ja) 2018-01-18
US8341353B2 (en) 2012-12-25
JP2013517577A (ja) 2013-05-16
JP5572719B2 (ja) 2014-08-13
US20110173391A1 (en) 2011-07-14
EP2524314B1 (en) 2017-08-30
CN102713868B (zh) 2015-11-25
JP2014160507A (ja) 2014-09-04
WO2011088370A1 (en) 2011-07-21
TW201142595A (en) 2011-12-01
KR20120116986A (ko) 2012-10-23
EP2524314A1 (en) 2012-11-21
JP5837135B2 (ja) 2015-12-24

Similar Documents

Publication Publication Date Title
JP5357277B2 (ja) 構成可能なキャッシュ、および構成可能なキャッシュを構成する方法
KR101139066B1 (ko) 레지스터 파일 시스템 및 파이프라이닝 프로세싱을 위한 방법
CN102713868A (zh) 存取二级存储器的一部分及一级存储器的系统及方法
CN102859504B (zh) 复制数据的方法和系统以及获得数据副本的方法
US8990505B1 (en) Cache memory bank selection
JP2013513893A (ja) パターン認識プロセッサにおける消費電力を低減させるための方法及び装置
JP5254342B2 (ja) n−ウェイキャッシュを用いるシステムおよび方法
US9773534B2 (en) Non-volatile memory accelerator and method for speeding up data access
TWI243302B (en) Low power set associative cache
CN117873929A (zh) 用于具有数据流管理器的处理器中的数据流的方法和装置
TW201447573A (zh) 串列周邊介面控制器、串列周邊介面快閃記憶體及其存取方法和存取控制方法
CN101971498A (zh) 具有多端口存储器超元与数据路径开关电路的集成电路
US20210117327A1 (en) Memory-side transaction context memory interface systems and methods
KR102422654B1 (ko) 프로세서 측 트랜잭션 콘텍스트 메모리 인터페이스 시스템 및 방법
US20050021911A1 (en) Method and apparatus for selecting cache ways available for replacement
CN101194236A (zh) 多端口高速缓冲存储器结构
KR20040067063A (ko) 디지털 신호 처리장치의 저전력 소비형 캐시 메모리 장치및 이에 대한 제어방법
US7133997B2 (en) Configurable cache
US10067792B2 (en) Finite automata manager and method to pre-fetch data for a processor core
US8140833B2 (en) Implementing polymorphic branch history table reconfiguration
US10216454B1 (en) Method and apparatus of performing a memory operation in a hierarchical memory assembly
JP2013097637A (ja) キャッシュ装置、メモリシステム及びデータ転送方法
KR20150144271A (ko) 고체 상태 디바이스들에 대한 어드레스 맵핑
KR20080028681A (ko) 멀티 웨이 스트림 버퍼 관리 장치 및 그의 프리페치 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20151125

Termination date: 20210114

CF01 Termination of patent right due to non-payment of annual fee