How addresses are mapped to cache lines vary between architectures, bu的中文翻譯

How addresses are mapped to cache l

How addresses are mapped to cache lines vary between architectures, but the mappings come under three headings, direct mapping, associative mapping and set associative mapping. Direct mapping is the simplest approach where each block of memory maps to only one possible cache line. With associative mapping, any block of memory can map to any cache line. Set associative mapping is a hybrid approach where any block of memory can map to any line, but only within a subset of the available lines. Regardless of the mapping scheme, they each have one thing in common. Addresses that are close together and aligned to the cache size are likely to use different lines. Hence Linux employs simple tricks to try and maximize cache use:

Frequently accessed structure fields are at the start of the structure to increase the chance that only one line is needed to address the common fields.

Unrelated items in a structure should try to be at least cache-size bytes in part to avoid false sharing between CPUs.

Objects in the general caches, such as the mm_struct cache, are aligned to the L1 CPU cache to avoid false sharing.

If the CPU references an address that is not in the cache, a cache miss occurs, and the data is fetched from main memory. The cost of cache misses is quite high because a reference to a cache can typically be performed in less than 10ns where a reference to main memory typically will cost between 100ns and 200ns. The basic objective is then to have as many cache hits and as few cache misses as possible.

Just as some architectures do not automatically manage their TLBs, some do not automatically manage their CPU caches. The hooks are placed in locations where the virtual to physical mapping changes, such as during a page table update. The CPU cache flushes should always take place first because some CPUs require a virtual to physical mapping to exist when the virtual address is being flushed from the cache. The three operations that require proper ordering are important and are listed in Table 3.4.

0/5000
原始語言: -
目標語言: -
結果 (中文) 1: [復制]
復制成功!
地址映射到高速缓存行之间变化的体系结构,但三个项目,直接映射,关联映射,并设置关联映射的映射下。直接映射,每个数据块的存储器映射到高速缓存行只有一个可能是最简单的方法。与关联映射,任何的内存块可以映射到任何高速缓存行。设置关联映射是一种混合方法,任何的内存块映射到任何行,但只在可用的一个子集。无论映射方案,他们每个人都有一个共同点。地址并拢,对齐高速缓存的大小可能使用不同的线路。因此,Linux的采用简单的技巧,最大限度地使用缓存:

频繁访问的结构信息在开始的结构的机会增加,只有一行需要解决的公共字段。

无关的项目在一个结构中,应该尽量将至少缓存-size个字节的部分,以避免伪共享之间的CPU。

在一般的高速缓存,,如指向mm_struct缓存,对象对齐的L1的CPU高速缓存,以避免伪共享。

如果cpu的引用不是在高速缓存中的一个地址,它是,出现缓存缺失时,并且数据被从主存储器中取出。高速缓存未命中的成本是相当高的,因为引用到高速缓存通常可以在小于10ns的引用到主内存通常会花费100ns的和200ns之间。的基本目标是有尽可能多的缓存命中率和尽可能少的高速缓存未命中。

就像有些的架构不会自动管理他们的TLB的,一些不自动管理自己的CPU缓存。的钩子被放置的位置,其中的虚拟到物理映射的变化,如在一个页表的更新期间。CPU缓存刷新应该始终首先是因为一些CPU需要一个虚拟到物理映射时存在的虚拟地址已经被从缓存中清除。三个操作需要适当的顺序是重要的,表3.4中列出了

正在翻譯中..
結果 (中文) 2:[復制]
復制成功!
多地址映射缓存线不同的架构,但映射到三个标题之下,直接映射,联想映射和组相联映射。直接映射是最简单的方法,其中每个内存块映射到只有一个缓存行。联想映射,任何内存块可以映射到任何缓存行。组相联映射是一个混合的办法,任何内存块可以映射到任何线,但只有一个子集内现有线路。不论映射方案,他们每个人都有一个共同点。地址,紧密排列的缓存大小可能使用不同的线。因此,系统采用简单的方法试图最大限度地使用缓存:

经常访问的结构域在一开始的结构,增加的机会,只有一条线需要解决的共同领域。

无关的项目在一个结构应该是至少cache-size字节部分避免虚假共享处理器之间。

对象一般缓存,如mm_struct缓存,是相一致的母语缓存避免虚假共享。

如果处理器引用的地址是在缓存,缓存错过发生时,和提取数据从主内存。成本相当高,因为缓存失误是参考缓存通常可以在不到10ns在参考到主内存通常将成本和200ns 100 ns。基本目标是那么有很多缓存命中与一些缓存失误的可能。

就像一些结构不自动管理tlbs,有些不能自动管理处理器缓存。钩放置地点的虚拟物理映射的变化,如在一个页表更新。中央处理器缓存刷新应该总是先发生因为一些处理器需要一个虚拟物理映射存在时,虚拟地址被刷新从缓存。三行动,需要适当的顺序是重要的,列于表3.4。

正在翻譯中..
結果 (中文) 3:[復制]
復制成功!
如何地址映射到缓存行而异的体系结构,但映射来自以下三个标题,直接映射,联想映射和设置关联的映射。直接映射最简单的方法是内存的,每个块映射到只有一个可能的缓存行的位置。与联想的映射,任何的内存块可以映射到任何缓存行。设置关联映射是内存的一种混合方法凡任何块可以映射到任何行,但只有在所有可用的线路的子集内。无论映射方案中,他们每个人都有一个共同点。紧靠在一起和高速缓存的大小与对齐地址的有可能使用不同的行。因此 Linux 采用简单的伎俩,试图最大限度地缓存使用:

频繁访问的结构的字段是在开始的结构,增加的机会只有一行需要解决的共同的字段。

不相关的项目结构中应尽量将至少缓存大小字节,部分原因是为了避免伪共享之间的 Cpu。

一般的缓存,如 mm_struct 缓存中,在对象对齐到 L1 CPU 缓存中以避免伪共享.

如果 CPU 引用的地址不在缓存中,缓存未命中的出现,并从主内存提取数据。缓存未命中的费用是相当高,因为对缓存的引用通常可以执行在 10ns 小于凡到主内存的引用通常将成本 100ns 和 200ns 之间。基本目标是要有尽可能多的缓存命中然后作为几个高速缓存未命中尽可能

就像一些体系结构不会自动管理他们的缓冲器,有些不能自动管理其 CPU 缓存。钩都放在那里的虚拟到物理映射更改,如在一个页表期间更新的位置。因为一些 Cpu 需要虚拟到物理映射存在时从缓存中刷新的虚拟地址,CPU 缓存刷新总是应首先采取的地方。需要适当订购的三个操作都是重要并列出表 3.4.

正在翻譯中..
 
其它語言
本翻譯工具支援: 世界語, 中文, 丹麥文, 亞塞拜然文, 亞美尼亞文, 伊博文, 俄文, 保加利亞文, 信德文, 偵測語言, 優魯巴文, 克林貢語, 克羅埃西亞文, 冰島文, 加泰羅尼亞文, 加里西亞文, 匈牙利文, 南非柯薩文, 南非祖魯文, 卡納達文, 印尼巽他文, 印尼文, 印度古哈拉地文, 印度文, 吉爾吉斯文, 哈薩克文, 喬治亞文, 土庫曼文, 土耳其文, 塔吉克文, 塞爾維亞文, 夏威夷文, 奇切瓦文, 威爾斯文, 孟加拉文, 宿霧文, 寮文, 尼泊爾文, 巴斯克文, 布爾文, 希伯來文, 希臘文, 帕施圖文, 庫德文, 弗利然文, 德文, 意第緒文, 愛沙尼亞文, 愛爾蘭文, 拉丁文, 拉脫維亞文, 挪威文, 捷克文, 斯洛伐克文, 斯洛維尼亞文, 斯瓦希里文, 旁遮普文, 日文, 歐利亞文 (奧里雅文), 毛利文, 法文, 波士尼亞文, 波斯文, 波蘭文, 泰文, 泰盧固文, 泰米爾文, 海地克里奧文, 烏克蘭文, 烏爾都文, 烏茲別克文, 爪哇文, 瑞典文, 瑟索托文, 白俄羅斯文, 盧安達文, 盧森堡文, 科西嘉文, 立陶宛文, 索馬里文, 紹納文, 維吾爾文, 緬甸文, 繁體中文, 羅馬尼亞文, 義大利文, 芬蘭文, 苗文, 英文, 荷蘭文, 菲律賓文, 葡萄牙文, 蒙古文, 薩摩亞文, 蘇格蘭的蓋爾文, 西班牙文, 豪沙文, 越南文, 錫蘭文, 阿姆哈拉文, 阿拉伯文, 阿爾巴尼亞文, 韃靼文, 韓文, 馬來文, 馬其頓文, 馬拉加斯文, 馬拉地文, 馬拉雅拉姆文, 馬耳他文, 高棉文, 等語言的翻譯.

Copyright ©2025 I Love Translation. All reserved.

E-mail: