计算机组成原理八股

计算机组成原理八股

文章目录

面经

Cache的基本原理 - 知乎 (zhihu.com)

  • 什么是缓存(Cache)?为什么需要缓存?如何提高缓存的命中率?缓存是不是最快的?(⭐⭐)

(1)Cache即CPU的高速缓冲存储器,是一种是用于减少处理器访问内存所需平均时间的部件;

(2)由于CPU的计算速度远远大于从CPU向内存取数据的速度,如果每次都让CPU去内存取数据,会导致CPU计算能力的浪费,所以人们设计了缓存,CPU通过读写缓存来获取操作数,结果也通过缓存写入内存;

(3)注意程序的局部性原理,在遍历数组时按照内存顺序访问;充分利用CPU分支预测功能,将预测的指令放到缓存中执行;此外缓存的容量和块长是影响缓存效率的重要因素。如何提升CPU的缓存命中率? - 知乎 (zhihu.com)

(4)缓存不是最快的,寄存器更快。

  • 什么是缓存一致性,如何保证缓存一致性

(1)在多核CPU中,每个核有自己的缓存,在两个核进行独自修改缓存中的数据的时候,就可能会造成数据不一致的问题,就是缓存的一致性问题;

(2)一个是在总线中加锁,一个是采用缓存一致性协议。

  • 一个缓存块的大小是多少,读取内存中的字段是读多少数据取多少内存吗?

如果缓存没有命中(即读取一个数据没有在缓存中),不仅需要把该字(数据)从主存中取出,还需要从主存中将它所在的整个字块一次调入缓存中。缓存线(块)的长度是64B。

八股

相关推荐
f***01936 小时前
CC++链接数据库(MySQL)超级详细指南
c语言·数据库·c++
合方圆~小文6 小时前
球型摄像机作为现代监控系统的核心设备
java·数据库·c++·人工智能
椰萝Yerosius7 小时前
[题解]2024CCPC郑州站——Z-order Curve
c++·算法
滨HI010 小时前
C++ opencv简化轮廓
开发语言·c++·opencv
学习路上_write11 小时前
FREERTOS_互斥量_创建和使用
c语言·开发语言·c++·stm32·单片机·嵌入式硬件
闻缺陷则喜何志丹12 小时前
【SOSDP模板 容斥原理 逆向思考】3757. 有效子序列的数量|分数未知
c++·算法·力扣·容斥原理·sosdp·逆向思考
BestOrNothing_201512 小时前
一篇搞懂 C++ 重载:函数重载 + 运算符重载,从入门到会用(含 ++、<<、== 实战)
c++·函数重载·运算符重载·operator·前置后置++·重载与重写
2501_9411444212 小时前
Python + C++ 异构微服务设计与优化
c++·python·微服务
程序猿编码13 小时前
PRINCE算法的密码生成器:原理与设计思路(C/C++代码实现)
c语言·网络·c++·算法·安全·prince
charlie11451419114 小时前
深入理解C/C++的编译链接技术6——A2:动态库设计基础之ABI设计接口
c语言·开发语言·c++·学习·动态库·函数