`
febird
  • 浏览: 258831 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

cpu 的 cache 是很宝贵的——从互相平行的数组看

阅读更多

以前一直想不通,为什么在有些系统中,要把同一个数据结构的不同字段放入 多个互相平行的数组中,而不是放入一个结构中。

典型的如Windows PE 可执行文件的导入表,有 IAT (导入地址表)和 INT(导入名字表),这两个表就放在两个互相平行的数组中,而按照我们的第一感觉,好像这样的设计纯粹是玩弄我们的大脑,没有任何别的益处。其实仔细想想,这样的益处是很大的,在Windows 从 INT 载入 IAT 以后,INT 就几乎永远用不着了,而 IAT 使用得非常频繁,这样,CPU 就会把 IAT 载入 cache,如果把 INT 和 IAT 分离(两个平行的数组),CPU 载入 IAT 时就不会连 INT 也载入了。而如果不分离(INT和IAT中每项合并起来放入一个结构),CPU载入IAT时,因为没有用的 INT 项目在物理位置上(地址)和IAT的相应项目是相邻的,所以就连 INT 也一起载入了,这样就多浪费了一倍的 CPU cache。

在很多性能敏感的应用或系统中,这样的设计是很必要的,往往提高好几倍的性能。

 

分享到:
评论

相关推荐

    CPU Cache and Memory Ordering

    – 简单介绍CPU的架构,部分主要模块及其功能(Cache Structure, Cache Line , Set-Way); – Cache Coherence算法 (MESI, MOESI); – CPU Memory Ordering模型 (Atomic,Reorder,Memory Barrier (Compiler, CPU),...

    cpu cache 测试

    cpu cache 延迟周期 测试 也可以验证cpu cache大小

    结合CPU-Cache-急速内存池的一种实现.rar

    在"结合CPU-Cache-急速内存池的一种实现"这个项目中,开发者针对服务端应用的特点,巧妙地利用了CPU缓存(Cache)的特性,实现了更快速、更高效的内存池。 首先,我们要理解CPU缓存的作用。CPU运行速度远高于内存,...

    多Cache一致性__目录协议模拟器使用方法1

    多Cache一致性目录协议模拟器是一种用于理解分布式存储系统中Cache一致性问题的工具,它通过动画方式模拟了四个CPU(A、B、C、D)在访问内存时的情况。每个CPU都配备了一个包含4个块的Cache,而全局的分布式存储器...

    谈谈Cache——由主频相同的CPU性能差异所想到的.pdf

    由于现代CPU运算速度远超内存读写速度,Cache的存在可以显著减少CPU等待数据的时间,提高数据访问效率。根据其距离CPU核心的远近,Cache通常分为L1、L2和L3三级。 L1 Cache是最接近CPU核心的,也是最快的,但容量...

    通通透透看硬件——CPU篇.pdf

    "通通透透看硬件——CPU篇" CPU(Central Processing Unit,中央处理单元)是计算机系统的核心组件之一,负责执行指令和处理数据。下面我们将对 CPU 的知识点进行详细的介绍。 CPU 的结构 CPU 的结构主要包括三...

    cpu_cache_interrupt.zip_cache_cache verilog_cache 中断_cpu流水_inter

    在"自己做的MIPS_CACHE_中断CPU - 副本"这个文件中,很可能包含了一个基于MIPS架构的CPU模型,该模型具有Cache功能,并且实现了中断处理。通过阅读和理解这个Verilog代码,开发者可以学习到如何在硬件层面实现这些...

    cache的CPU设计.rar

    在“实验7.3——多级流水带cache的CPU设计”中,你可能需要实现以下功能: 1. 使用VHDL描述CPU的各个部分,包括ALU、控制单元和各种寄存器。 2. 设计多级流水线,处理流水线中的相关问题。 3. 实现Cache模块,包括...

    CPU Cache 基础文章.pdf

    CPU Cache 基础文章.pdf

    Cache的工作原理

    通常情况下,Cache的命中率很高,这大大减少了CPU等待数据的时间,提高了整体系统的响应速度。 #### 四、Cache的基本结构 根据Cache的组织方式不同,可以分为几种基本类型: ##### 1. 全相联Cache - **特点**:...

    高性能CPU从L3 Cache谈起.pdf

    从 Intel 的 CPU 发展计划来看,在 2005 年将采用 90 纳米工艺,制造具有 24 MB L3 Cache 的 CPU。 L3 Cache 的工作原理 L3 Cache 的工作原理可以分为三个级别:L1 Cache、L2 Cache 和 L3 Cache。CPU 需要一个数据...

    MIPS五级流水线CPU+cache设计

    MIPS五级流水线CPU与cache的设计是计算机体系结构中的一个重要课题,主要涉及硬件级别的优化,以提升处理器的性能和效率。在这个项目中,我们利用Verilog语言来实现这一复杂系统,这是一种常用的硬件描述语言,用于...

    透过专利看微处理器的技术发展(六)——Cache专利技术的发展历程.pdf

    随着半导体加工工艺水平的不断提高,CPU 和存储器的性能都有了很大提高。因此,Cache 技术的发展变得越来越重要。 Cache 技术的发展历程可以分为几个阶段: 1. 早期 Cache 技术(1960s-1980s):早期 Cache 技术...

    cpumemory_optimization_memory_cpucache_

    《程序员必知的内存优化与CPU缓存》 在计算机科学领域,性能优化是一个至关重要的主题,特别是对于软件开发者来说,理解如何有效地利用CPU、内存和缓存是提高程序效率的关键。本文将深入探讨内存优化和CPU缓存的...

    5级无Cache流水CPU源代码

    在这个场景中,"5级无Cache流水CPU"指的是一个具有五个不同执行阶段且不配备Cache的处理器模型。下面将详细解释这个主题。 1. **流水线原理**: 流水线设计将CPU的运算过程分为取指、译码、执行、访存和写回等阶段...

    菜鸟也能玩硬件——CPU篇.pdf

    CacheMemory 的工作原理是这样的:当 CPU 需要读取数据时,它首先会检查 CacheMemory 中是否已经存储了该数据,如果已经存储了,那么 CPU 就可以直接从 CacheMemory 中读取数据,如果没有存储,那么 CPU 就需要从主...

    8位无Cache的5段流水CPU

    参考《16位5级流水无cache实验CPU课程设计实验要求》文档及其VHDL代码,在理解其思想和方法的基础上,将其改造成8位的5级流水无cache的实验CPU,包括对指令系统、数据通路、各流水段模块、内存模块等方面的改造。...

    Linux驱动中的DMA和Cache一致性问题

    文章中提到的预期错误结果,很可能是因为没有充分考虑到Cache和DMA之间复杂的交互关系,以及处理器架构在处理DMA和Cache一致性上的特性。针对这类问题,开发者需要了解底层硬件的工作原理,以及如何在Linux内核中...

    架起CPU与内存桥梁——缓存详解(上).pdf

    架起 CPU 与内存桥梁——缓存详解(上).pdf 缓存是计算机系统中的一种高速存储器,它扮演着 CPU 和内存之间的桥梁角色。为了理解缓存在系统中的重要角色,我们必须了解缓存、CPU 和内存子系统之间的相互关系。 在...

Global site tag (gtag.js) - Google Analytics