CN102156677A - 快取存储器存取方法及系统 - Google Patents
快取存储器存取方法及系统 Download PDFInfo
- Publication number
- CN102156677A CN102156677A CN2011100972654A CN201110097265A CN102156677A CN 102156677 A CN102156677 A CN 102156677A CN 2011100972654 A CN2011100972654 A CN 2011100972654A CN 201110097265 A CN201110097265 A CN 201110097265A CN 102156677 A CN102156677 A CN 102156677A
- Authority
- CN
- China
- Prior art keywords
- data
- memory cache
- length
- locked
- lock
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 31
- 238000006467 substitution reaction Methods 0.000 claims description 20
- 238000004891 communication Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 4
- 230000003068 static effect Effects 0.000 description 2
- 238000000151 deposition Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000012467 final product Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0875—Addressing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0886—Variable-length word access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/45—Caching of specific data in cache memory
- G06F2212/452—Instruction code
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一种快取存储器存取方法及系统。该快取存储器存取方法,包含:根据对多个数据的一读取请求,决定多个数据中的各个数据是否能够在一快取存储器中命中;及当在快取存储器中未命中多个数据中的各个数据,且多个数据的长度大于该快取存储器的长度时,于快取存储器中预留至少一位置不予以锁定,并锁定其余位置。
Description
技术领域
本发明涉及一种快取存储器,特别是涉及一种三维图形着色器(shader)的快取存储器的存取系统及方法。
背景技术
在一般电子系统中,系统存储器的存取速度远慢于中央处理器的时钟速度。因此,当中央处理器欲存取系统存储器时,经常花相当的时间于等待系统存储器,因而造成整个系统效能的低落。为了增进系统效能,因而有快取存储器(cache)架构的提出,藉由内建或外加一小容量的快速存储器,例如静态随机存取存储器(SRAM),用以存放中央处理器较常或较可能存取的数据。当所欲读取的数据已事先存放于快取存储器中,则中央处理器可快速地从快取存储器读取,不需如一般从系统存储器来读取。
快取存储器的好处对于指令(instruction)数据而言更为显著,因为,指令的数据量通常比数据(data)的数据量来得小,然而,指令被读取的机率却远比数据被读取的几率来得大。再者,对于影像显示的处理,例如三维图形着色器,不同像素数据的处理往往会使用到相同的指令群,因此,快取存储器架构对于这类影像处理应用将更显重要。
然而,一般系统中快取存储器的容量并不会很大,无法在一次写入操作中存放整个指令群,这样,在读取操作时,不能一次读取整个指令群,而是要反复地写入和读取,因而无法显现出快取存储器所带来的效能增进。举例而言,假设指令群的长度较快取存储器的长度大1。当处理第一像素时,首先必须从系统存储器读取指令群并写入快取存储器。由于快取存储器无法容纳最后一条指令,因此,图形处理器必须再从系统存储器读取最后一条指令,并将其更新覆盖于快取存储器内。当处理第二像素时,由于快取存储器已被更新覆盖,因而无法于快取存储器命中(hit)所需指令,因此,又必须重新自系统存储器读取整个指令群。换句话说,当处理每一像素时,图形处理器都无法于快取存储器命中(hit)所需指令,而必须从系统存储器读取指令,因而无法享受到前述快取存储器的好处。
因此,亟需提出一种新颖的快取存储器存取系统及方法,用以增进系统存储器频宽的使用效能。
发明内容
一种快取存储器存取方法,包含:根据对多个数据的一读取请求,决定在存储于一快取存储器中的多个数据中的各个数据是否被命中读取;及当在快取存储器中未命中读取多个数据中的各个数据,且多个数据的长度大于快取存储器的长度时,于快取存储器中预留至少一位置不予以锁定,并锁定其余位置。
根据本发明实施例,快取存储器存取系统包含快取存储器及快取控制器。快取控制器根据一数据读取请求,决定多个数据中的各个数据是否能够在一快取存储器中命中。其中,当在快取存储器中未命中多个数据中的各个数据,且多个数据的长度大于该快取存储器的长度时,于快取存储器中预留至少一位置不予以锁定,并锁定其余位置。
鉴于上述,本发明实施例提出的快取存储器存取系统及方法,有效减少快取存储器对于读取数据的无谓更新覆写,不但可减少系统存储器的数据传送,且能增进快取存储器的命中率。
附图说明
图1A显示本发明实施例的快取存储器存取系统的方块图。
图1B显示本发明另一实施例的快取存储器存取系统的方块图。
图2显示图1A/B的快取控制器的细部方块图。
图3显示本发明一实施例的快取存储器存取方法的流程图。
图4显示本发明另一实施例的快取存储器存取方法的流程图。
具体实施方式
图1A显示本发明实施例的快取存储器(cache)存取系统的方块图。本实施例虽以三维图形着色器(shader)作为例示,但是本实施例也可适用于其他应用。在本实施例中,处理器10为图形处理器(graphics processingunit,GPU),其辅助中央处理器(未显示),以加速图形的处理。处理器10藉由快取控制器(cache controller)12对快取存储器14及系统存储器16进行数据存取。快取存储器14可以是静态随机存取存储器(SRAM),其存取速度快于系统存储器16,例如动态随机存取存储器(DRAM)。快取控制器12及快取存储器14可和处理器10位于同一芯片,但不限定于此。在本实施例中,快取存储器14是作为指令快取存储器之用,用以存放着色指令(shader instruction)。鉴于每一像素会执行相同的着色指令,因此本实施例的三维图形着色器非常适合采用多线程(multithreading)工作型态,让处理器10以多工方式对各线程的像素数据进行多线程处理。此外,本实施例的快取存储器14亦可规划为“多路(multiway)”快取存储器,亦即,将快取存储器14的整个存储空间划分为多个区块,用以减小判断逻辑复杂度。
图1B显示本发明另一实施例的快取存储器存取系统的方块图。此实施例包含有二阶层快取存储器,亦即,第一阶层快取存储器(一般称为L1快取存储器)14A及第二阶层快取存储器(一般称为L2快取存储器)14B,其分别受控于第一阶层快取控制器12A及第二阶层快取控制器12B。第一阶层快取控制器12A及第一阶层快取存储器14A可和处理器10位于同一芯片,但不限定于此。本发明的快取存储器存取机制可实施于第一阶层快取控制器12A及第一阶层快取存储器14A当中,但不以此为限。
图2显示快取控制器12的细部方块图,主要包含控制逻辑单元120及表格122。控制逻辑单元120分别提供与图1A中处理器10、快取存储器14及系统存储器16的通信接口。表格122用以纪录管理快取控制器12内所存放的每一笔数据,例如指令或像素数据。在本实施例中,表格122的内容除了存放各笔数据相应于系统存储器16的地址外,还至少包含有快取存储器14的各个位置相应的锁定(lock)标记及置换(replacement)值。其中,锁定标记是快取存储器14的每个位置锁定与否的标志,当该位置锁定时,标记为“锁定”,以防止该位置所存储的数据被覆盖写入;置换值则是用以作为快取存储器14中未锁定位置的数据被替换时的判断依据。本实施例使用“最近最少使用(least recently used,LRU)”演算法,用以追踪各笔数据被存取的频率,以得到LRU置换值,LRU算法不是本发明的重点内容,这里不展开描述。下文中将结合实施例对锁定标记和置换值做进一步的详细描述。
图3显示本发明一实施例的快取存储器14存取方法的流程图。此流程分为两个阶段,设定阶段310与运行阶段320。
首先,在设定阶段310,于步骤31,首先分析新的数据(例如指令)特性,比如长度、指令类别及分布状况等。接着,于步骤32,判断数据长度与快取存储器14的长度的关系。如果数据长度小于或等于快取存储器14的长度,表示快取存储器14可以一次存储所有数据。在这种情况下,如步骤33所示:锁定全部快取存储器14的空间,即将全部快取存储器14位置的锁定标记修改为“锁定”。从而,在以后多次的数据读取中,都可以直接从快取存储器14中取得相应的数据,完全不需要任何复写;并关闭快取存储器14的命中(hit)判断逻辑。这样可同时节省功耗和读取时间。如果数据长度大于快取存储器的长度,则接着进入步骤34。在步骤34,判断数据长度与快取存储器14长度的差值是否大于预设临界(正)值。如果步骤34的结果为否,表示数据长度略大于快取存储器14的长度。此时,预留快取存储器14至少一数据的位置不予以锁定,但锁定其余数据的位置(步骤35)。这样,对于锁定位置中的数据,在之后的多次应用中,可以直接从快取存储器14中读取,而不需要访问系统存储器,减少了系统存储器的数据传送,而且,有效减少了快取存储器14对读取数据的无谓更新复写,与不锁定任何位置的现有技术相比,大大节省了读取时间,而且也提高了命中率。对于未锁定数据的位置,则留待后续从系统存储器16读取数据时交替写入使用。如果步骤34的结果为是,表示数据长度远大于快取存储器14的长度。此时,锁定快取存储器14较少位置或全不锁定,预留快取存储器14更多的数据位置(直至全部)不锁定,参与替换写入(步骤36)。例如,快取存储器长度为256,预设临界值为20。当数据长度为270,我们就可以锁定比较多的部份,比如锁定240个位置,只有30条指令来轮流占用未锁定的16个位置。而在另一种情况下,例如快取存储器长度为256,预设临界值为20,而当数据长度为1000时,我们如果也锁定比较多的部份,比如锁定240个位置,那么会有760条指令来轮流占用未锁定的16个位置,这样可能系统性能反而会下降。所以这时候应该锁定较少位置,比如128或更少。至此设定阶段310结束,进入运行阶段320。
在运行阶段320中,首先,在步骤37,锁定部份数据内容不变,只对未锁定位置进行置换操作。对于判断哪些数据应予锁定,一般的标准是使用频率比较高的数据。比如,若一条指令,每个像素都会执行到,那其使用频率为100%,类似这样的使用频率较高的数据的位置进行锁定;若一条指令,在if...else分支判断中,简单来说其使用频率为50%,则相比之下,其使用频率较低,不对其位置进行锁定。未锁定位置的置换值设定为有效,每当该位置所存储的数据被读取一次,其置换值就加一。这样,置换值比较大的位置,其中存储的数据经常被读取;而置换值比较小的位置,其中存储的数据被读取的频率较低。根据置换值(例如LRU置换值)用以决定新的从系统存储器16读入的数据应该替换掉其中的哪一个。从而,在后续的写入操作中,将新的数据覆盖快取存储器14中置换值较小的位置。这样操作可以使读取频率较高的数据更少地被替换,从而在未锁定的位置中也能做到有效减少快取存储器对于读取数据的无谓更新复写,提高快取存储器的命中率。由于整个系统存储器的读取次数减少,从而增进系统存储器频宽的使用效能。在步骤38,判断所有线程是否运行完毕。如果结果为否,继续进行步骤37;如果结果为是,结束本次快取存储器操作。返回设定阶段310,为下一次新的指令数据做同样处理。
图4显示本发明另一实施例的快取存储器存取方法的流程图。首先,于步骤41,处理器10向快取控制器12发出数据(例如指令)读取请求(request),以请求至少一笔数据。接着,于步骤42,快取控制器12的控制逻辑单元120根据表格122以决定所请求的数据是否已储存于快取存储器14内。如果步骤42的结果为是,亦即命中(hit),则快取控制器12从快取存储器14取得所请求数据以提供给处理器10,并将所有数据锁定在快取存储器14中(步骤43)。如果步骤42的结果为否,亦即失误(miss),则快取控制器12从系统存储器16取得所请求数据以提供给处理器10,且将该数据储存于快取存储器14并更新表格122(步骤44)。
接下来,于步骤45,判定这些数据的长度是否大于快取存储器14的长度。如果为否,可将步骤44所写入的所有这些数据予以锁定,亦即,将表格122中的相应位置的锁定标记设为锁定状态(步骤46)。
如果步骤45的结果为是,则接着进入步骤47,判定这些数据长度与快取存储器14的长度的差值是否大于预设临界(正)值。如果步骤47的结果为否,表示数据长度略大于快取存储器14的长度,此时,预留快取存储器14的少数位置(至少一数据的位置)不予以锁定,但锁定其余数据(步骤48)。对于未锁定数据的位置,则留待后续从系统存储器16读取数据时替换读写之用。
如果步骤47的结果为是,表示数据长度远大于快取存储器14的长度,此时,锁定快取存储器14的少数位置;剩余的大多数位置为未锁定位置。未锁定的位置,用于后续数据的替换读写。当一个位置被确定为未锁定的位置在进行后续的替换读写操作时,该位置相应的置换值(例如LRU置换值)有效。如上述参照图3所描述的那样根据置换值(例如LRU置换值)决定新的从系统存储器读入的数据应该替换掉其中的哪一个。(步骤49)。
根据上述本发明的实施例所示流程,可有效减少系统存储器16的存取,并增大快取存储器14的命中率。特别的是,对于不同像素或不同线程处理时,会使用到相同的指令,且当这些指令为必须执行者,则本发明实施例的效能会更形显著。底下举一特定例子以说明本发明实施例相较于传统方法的效能增进。假设快取存储器的长度为256,而着色指令的长度为257。根据传统快取存储器的存取机制,当处理第一像素时,首先将前256条指令从系统存储器依序写至快取存储器,用以让图形处理器执行。当欲执行第257条指令时,则从系统存储器读取并写入至快取存储器的开始位置,因而覆盖了之前的第1条指令。接着,当处理第二像素时,由于无法于快取存储器中命中第1条指令,因此,需从系统存储器读取第1-256条指令。对于解析度为1280x1024的影像显示而言,自系统存储器总共读取1280x1240x257次,亦即336,855,040次。对于同样的例子,若使用本发明实施例,首先将前256条指令从系统存储器16依序写至快取存储器14,并将前255条指令予以锁定,但预留第256条指令的位置不予以锁定。当欲执行第257条指令时,则从系统存储器16读取并写入至快取存储器14的未锁定位置。接着,当处理第二像素时,由于第1-255条指令皆锁定于快取存储器14,因此仅需从系统存储器16依次读取第256条和第257条指令即可,第三像素及以下像素的处理皆相同。因此,自系统存储器16总共读取257+(1280x1024-1)*2次,亦即2,621,695次。与传统方法相比较,本发明实施例的效率增进128倍之多。
以上所述仅为本发明的较佳实施例而已,并非用以限定本发明的权利要求的范围;凡其它未脱离发明所揭示的精神下所完成的等效改变或修饰,均应包含在本发明的权利要求的范围内。
Claims (10)
1.一种快取存储器存取方法,包含:
根据对多个数据的一读取请求,决定在存储于一快取存储器中的该多个数据中的各个数据是否被命中读取;及
当在该快取存储器中未命中读取该多个数据中的各个数据,且该多个数据的长度大于该快取存储器的长度时,于该快取存储器中预留至少一位置不予以锁定,并锁定其余位置。
2.如权利要求1所述的快取存储器存取方法,其中该读取请求是由一处理器发出,该处理器耦接到该快取存储器。
3.如权利要求1所述的快取存储器存取方法,其中还包括根据一表格决定在该快取存储器中是否命中该多个数据中的各个数据,该表格包含多个锁定标记,每个锁定标记用以标识其所对应的该快取存储器的位置是否被锁定。
4.如权利要求1所述的快取存储器存取方法,其中:
当在该快取存储器中命中读取该多个数据中的各个数据时,将所有该多个数据锁定在该快取存储器中;及
当在该快取存储器中未命中读取该多个数据中的各个数据,当该多个数据的长度不大于该快取存储器的长度时,将所有该多个数据锁定在该快取存储器中。
5.如权利要求1所述的快取存储器存取方法,其中于该快取存储器中预留至少一位置不予以锁定,锁定其余位置,该方法还包含:
判定该多个数据的长度与该快取存储器的长度的差值是否大于一预设临界值;
当该多个数据的长度与该快取存储器的长度的差值大于该预设临界值时,还包含:根据一置换值,用以将该多个数据中的部份数据锁定于该快取存储器,并且判断是否替换未被锁定的各个数据是根据相应的置换值;及
当该多个数据的长度与该快取存储器的长度的差值小于该预设临界值时,还包含:于该快取存储器中预留至少一位置不予以锁定,并锁定其余位置,
其中,该被锁定的部份数据是使用频率较高的数据,该置换值为与最近最少使用有关的相关值。
6.一种快取存储器存取系统,包含:
一快取存储器,用于存储多个数据;及
一快取控制器,该快取控制器与该快取存储器相耦接,用于根据对多个数据的读取请求,决定该多个数据中的各个数据是否能够在该快取存储器中命中,当在该快取存储器该中未命中多个数据中的各个数据且该多个数据的长度大于该快取存储器的长度时,于该快取存储器中预留至少一位置不予以锁定,并锁定其余位置。
7.如权利要求6所述的快取存储器存取系统,其中该读取请求是由一处理器发出,该处理器耦接到该快取存储器,该处理器为三维图形着色器的一图形处理器。
8.如权利要求7所述的快取存储器存取系统,其中该快取控制器包含:
一表格,包含多个锁定标记,每个锁定标记用以标识其所对应的该快取存储器的位置是否被锁定,该快取控制器根据该表格决定在该快取存储器中是否命中该多个数据中的各个数据,该表格还包含多个置换值;及
一控制逻辑单元,提供与该快取存储器、该系统存储器及该处理器的通信接口。
9.如权利要求6所述的快取存储器存取系统,其中:
当该多个数据的长度不大于该快取存储器的长度时,该快取控制器还将所有该多个锁定在该快取存储器中;及
当在该快取存储器中命中该多个数据中的各个数据时,还包含将所有该多个数据锁定在该快取存储器中。
10.如权利要求8所述的快取存储器存取系统,于该快取存储器中预留至少一位置不予以锁定,并锁定其余位置还包含:
判定该多个数据的长度与该快取存储器的长度的差值是否大于一预设临界值;
当该多个数据的长度与该快取存储器的长度的差值大于该预设临界值时,将该多个数据中的部份数据锁定于该快取存储器,并且判断是否替换未被锁定的各个数据是根据相应的置换值,
其中该被锁定的部份数据是使用频率较高的数据,该置换值为与最近最少使用有关的相关值。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110097265.4A CN102156677B (zh) | 2011-04-19 | 2011-04-19 | 快取存储器存取方法及系统 |
TW100116644A TWI451251B (zh) | 2011-04-19 | 2011-05-12 | 快取記憶體存取方法及系統 |
US13/448,255 US8994740B2 (en) | 2011-04-19 | 2012-04-16 | Cache line allocation method and system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110097265.4A CN102156677B (zh) | 2011-04-19 | 2011-04-19 | 快取存储器存取方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102156677A true CN102156677A (zh) | 2011-08-17 |
CN102156677B CN102156677B (zh) | 2014-04-02 |
Family
ID=44438181
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110097265.4A Active CN102156677B (zh) | 2011-04-19 | 2011-04-19 | 快取存储器存取方法及系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8994740B2 (zh) |
CN (1) | CN102156677B (zh) |
TW (1) | TWI451251B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104375895A (zh) * | 2013-08-13 | 2015-02-25 | 华为技术有限公司 | 用于多种存储器间的数据存储调度方法以及装置 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9507527B2 (en) | 2014-02-21 | 2016-11-29 | International Business Machines Corporation | Efficient cache management of multi-target peer-to-peer remote copy (PPRC) modified sectors bitmap |
US9268715B2 (en) | 2014-02-24 | 2016-02-23 | Freescale Semiconductor, Inc. | System and method for validation of cache memory locking |
US11422954B2 (en) * | 2018-09-28 | 2022-08-23 | Intel Corporation | Techniques for accelerating memory access operations |
US20210042228A1 (en) * | 2019-07-17 | 2021-02-11 | Intel Corporation | Controller for locking of selected cache regions |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001142652A (ja) * | 1999-11-17 | 2001-05-25 | Matsushita Electric Ind Co Ltd | データのキャッシュ方法 |
WO2005013135A1 (en) * | 2003-07-29 | 2005-02-10 | Intel Corporation | System and method for transferring blanks |
CN1734431A (zh) * | 2004-08-11 | 2006-02-15 | 国际商业机器公司 | 用于软件可控动态可锁高速缓冲存储器线替换系统的方法 |
US20060143390A1 (en) * | 2004-12-29 | 2006-06-29 | Sailesh Kottapalli | Fair sharing of a cache in a multi-core/multi-threaded processor by dynamically partitioning of the cache |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5974508A (en) * | 1992-07-31 | 1999-10-26 | Fujitsu Limited | Cache memory system and method for automatically locking cache entries to prevent selected memory items from being replaced |
US5493667A (en) * | 1993-02-09 | 1996-02-20 | Intel Corporation | Apparatus and method for an instruction cache locking scheme |
US6483516B1 (en) * | 1998-10-09 | 2002-11-19 | National Semiconductor Corporation | Hierarchical texture cache |
US6438655B1 (en) * | 1999-04-20 | 2002-08-20 | Lucent Technologies Inc. | Method and memory cache for cache locking on bank-by-bank basis |
US6772299B2 (en) * | 2001-07-16 | 2004-08-03 | Sun Microsystems, Inc. | Method and apparatus for caching with variable size locking regions |
US7133970B2 (en) * | 2003-05-05 | 2006-11-07 | Intel Corporation | Least mean square dynamic cache-locking |
US20050198442A1 (en) * | 2004-03-02 | 2005-09-08 | Mandler Alberto R. | Conditionally accessible cache memory |
US7676632B2 (en) * | 2006-07-18 | 2010-03-09 | Via Technologies, Inc. | Partial cache way locking |
US8769207B2 (en) * | 2008-01-16 | 2014-07-01 | Via Technologies, Inc. | Caching method and apparatus for a vertex shader and geometry shader |
US8019946B2 (en) * | 2008-07-31 | 2011-09-13 | Samsung Electronics Co., Ltd. | Method and system for securing instruction caches using cache line locking |
-
2011
- 2011-04-19 CN CN201110097265.4A patent/CN102156677B/zh active Active
- 2011-05-12 TW TW100116644A patent/TWI451251B/zh active
-
2012
- 2012-04-16 US US13/448,255 patent/US8994740B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001142652A (ja) * | 1999-11-17 | 2001-05-25 | Matsushita Electric Ind Co Ltd | データのキャッシュ方法 |
WO2005013135A1 (en) * | 2003-07-29 | 2005-02-10 | Intel Corporation | System and method for transferring blanks |
CN1734431A (zh) * | 2004-08-11 | 2006-02-15 | 国际商业机器公司 | 用于软件可控动态可锁高速缓冲存储器线替换系统的方法 |
US20060143390A1 (en) * | 2004-12-29 | 2006-06-29 | Sailesh Kottapalli | Fair sharing of a cache in a multi-core/multi-threaded processor by dynamically partitioning of the cache |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104375895A (zh) * | 2013-08-13 | 2015-02-25 | 华为技术有限公司 | 用于多种存储器间的数据存储调度方法以及装置 |
CN104375895B (zh) * | 2013-08-13 | 2018-02-06 | 华为技术有限公司 | 用于多种存储器间的数据存储调度方法以及装置 |
Also Published As
Publication number | Publication date |
---|---|
TWI451251B (zh) | 2014-09-01 |
TW201243594A (en) | 2012-11-01 |
US20120268458A1 (en) | 2012-10-25 |
CN102156677B (zh) | 2014-04-02 |
US8994740B2 (en) | 2015-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102156677B (zh) | 快取存储器存取方法及系统 | |
CN1983196B (zh) | 用于将执行线程分组的系统和方法 | |
US6587110B1 (en) | Image processing unit, image processing system using the same, and image processing method | |
CN101057261B (zh) | 三维图形处理 | |
DE102012220267B4 (de) | Rechenarbeitsverteilungs - Referenzzähler | |
DE102013114072A1 (de) | System und Verfahren zum Hardware-Scheduling von indexierten Barrieren | |
US6738069B2 (en) | Efficient graphics state management for zone rendering | |
DE102013114351A1 (de) | System und Verfahren für Hardware-Disponierung bedingter Barrieren und ungeduldiger Barrieren | |
US8803897B2 (en) | Internal, processing-unit memory for general-purpose use | |
US5504895A (en) | Method of managing data structure containing both persistent data and transient data | |
EP1756803A2 (en) | System and method for a universal data write unit | |
DE102013018139A1 (de) | Technik zur Speicherung gemeinsamer Vertices | |
JP2007525768A (ja) | テクスチャ要求のためのレジスタベースのキューイング | |
JP2005525617A (ja) | ゾーン・レンダリング用の自動メモリ管理 | |
DE102013202173A1 (de) | Einheitliche Lade-Verarbeitung für Teilsätze von parallelen Threads | |
DE102013200997A1 (de) | Ein blockierungsfreies FIFO | |
AU2008258132B2 (en) | Load balancing in multiple processor rendering systems | |
CN105210111A (zh) | 基于每仓可见性信息以及添加的线内操作的渲染命令的条件性执行 | |
CN107851037A (zh) | 在使用带锁定和未锁定的非易失存储器的共享存储器中的硬件事务存储的一致性协议 | |
US20030122835A1 (en) | Depth write disable for zone rendering | |
CN109523455A (zh) | 一种图像数据异步传输方法、装置及计算机可读存储介质 | |
CN101667113A (zh) | 一种多线程日志记录方法及装置 | |
DE102013020966A1 (de) | Leistungseffiziente Attribut-Handhabung für Parkettierungs- und Geometrie-Schattierungseinheiten | |
CN101203864B (zh) | 在数字图像处理中贯穿效果图累积变换 | |
CN102413170A (zh) | 一种基于flex的图形数据客户端缓存方法 |
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 |