摘要: 另一个会导致流水线停滞的原因是计算机需要作决定。大多数情况下,在执行完一条指令后,处理器都会获取下一个内存地址中的指令继续执行。这时,多数情况下,下一条指令已经被保存在高速缓存中了。一旦流水线的第一道工序变为可用状态,指令就可以连续地进入到流水线中。但是控制转义指令略有不同。跳转指令或跳转子例程指令 阅读全文
posted @ 2024-01-05 10:43 deeplearnMs 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 嵌入在咖啡机和微波炉中的简单的微处理器被设计为执行指令的速度与从内存中获取指令一样快。桌面级微处理器则有额外的资源并发地处理指令,因此它们执行指令的速度可以比从主内存获取指令快很多倍,多数时候都需要高速缓存去“喂饱”它们的执行单元。对优化而言,这意味着内存访问决定了计算开销。如果没有其他东西“妨碍” 阅读全文
posted @ 2024-01-05 10:41 deeplearnMs 阅读(12) 评论(0) 推荐(0) 编辑
摘要: 实际上,计算机中的内存容量并非是无限的。为了维持内存容量无限的假象,操作系统可以如同使用高速缓存一样使用物理内存,将没有放入物理内存中的数据作为文件存储在磁盘上。这种机制被称为虚拟内存(virtual memory)。虚拟内存制造出了拥有充足的物理内存的假象。不过,从磁盘上获取一个内存块需要花费数十 阅读全文
posted @ 2024-01-05 10:26 deeplearnMs 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 处理器可以一次从内存中读取一字节的数据,但是更多时候都会读取由几个连续的字节组成的一个数字。例如,在微软的 Visual C++ 中,读取 int 值时会读取 4 字节。由于同一个 内存可以以两种不同的方式访问,设计计算机的人必须面对一个问题:首字节,即最低地址字节,是组成 int 的最高有效位还是 阅读全文
posted @ 2024-01-05 10:24 deeplearnMs 阅读(13) 评论(0) 推荐(0) 编辑
摘要: 为了进一步补偿主内存的缓慢速度,许多计算机中都有高速缓存(cache memory),一种非常接近处理器的快速的、临时的存储,来加快对那些使用最频繁的内存字的访问速度。一些计算机没有高速缓存,其他一些计算机则有一层或多层高速缓存,其中每一层都比前一层更小、更快和更昂贵。当一个执行单元要获取的字节已经 阅读全文
posted @ 2024-01-05 10:21 deeplearnMs 阅读(15) 评论(0) 推荐(0) 编辑
摘要: 虽然 C++ 认为每个字节都是可以独立访问的,但计算机会通过获取更大块的数据来补偿缓慢的内存速度。最小型的处理器可以每次从主内存中获取 1 字节,桌面级处理器则可以立即获取 64 字节。一些超级计算机和图形处理器还可以获取更多。当 C++ 获取一个多字节类型的数据,比如一个 int、double 或 阅读全文
posted @ 2024-01-05 10:12 deeplearnMs 阅读(12) 评论(0) 推荐(0) 编辑
摘要: 计算机的主内存相对于它内部的逻辑门和寄存器来说非常慢。将电子从微处理器芯片中注入相对广阔的一块铜制电路板上的电路,然后将其沿着电路推到几厘米外的内存芯片中,这个过程所花费的时间为电子穿越微处理器内各个独立的微距晶体管所需时间的数千倍。主内存太慢,所以桌面级处理器在从主内存中读取一个数据字的时间内,可 阅读全文
posted @ 2024-01-05 10:10 deeplearnMs 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 只有最简单的微处理器和某些具有悠久历史的大型机才直接与 C++ 模型相符。对性能优化影响优化的计算机行为 而言非常重要的是,真实计算机的实际内存硬件的处理速度与指令的执行速率相比是很慢的。内存并非真的是以字节为单位被访问的,内存并非是一个由相同元素组成的简单的线性数组,而且它的容量也是有限的。真实的 阅读全文
posted @ 2024-01-05 10:08 deeplearnMs 阅读(7) 评论(0) 推荐(0) 编辑
摘要: C++ 程序至少会假装相信讲解过的简单的计算机基本模型中的一个版本。 其中有可以以固定字符长度的字节为单位寻址,在本质上容量是无限的内存。有一个与其他任何有效的内存地址都不同的特殊的地址,叫作 nullptr。整数 0 会被转换为 nullptr,尽管在地址 0 上不需要 nullptr。有一个概念 阅读全文
posted @ 2024-01-05 10:06 deeplearnMs 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 1.如今所使用的微处理器设备的种类多样,从只有几千个逻辑门且时钟频率低于 1MHz 的价值 1 美元的嵌入式设备,到有数十亿逻辑门且时钟频率达到千兆赫兹级别的桌面级设备。一台包含数千个独立执行单元的大型计算机的尺寸可以与一个大房间相当,它消耗的电力足够点亮一座小城市中所有的电灯。这很容易让人误以为这 阅读全文
posted @ 2024-01-05 10:01 deeplearnMs 阅读(7) 评论(0) 推荐(0) 编辑