
计算机组成原理
文章平均质量分 88
JavaEdge聊AI
关注并私信我,获取更多大厂求职经验。《编程严选网》创始人
展开
-
DB性能跟不上,加缓存就够了?
服务端软件开发时,通常会把数据存储在DB。而服务端系统遇到的第一个性能瓶颈,往往发生在访问DB时。这时大部分开发会拿出“缓存”,通过使用Redis在DB前提供一层缓存数据,缓解DB压力,提升服务端性能。在数据库前添加数据缓存是常见的性能优化方式这种添加缓存的策略一定有效吗?这种策略在什么情况下是有效的呢?理论分析,添加缓存最佳策略么?如果我们对访问性能要求高,希望数据在1ms,乃至100微妙内完成处理,我们还能用这个添加缓存的策略么?理解局部性原理Intel 8265U的CPU L1 C原创 2023-01-11 01:24:26 · 2374 阅读 · 0 评论 -
一文搞懂CPU如何控制I/O设备
CPU并非发送一个特定操作指令来操作不同I/O设备。若那样,新I/O设备发明,就要去扩展CPU指令集。CPU和I/O设备之间的通信是这么解决:首先,在I/O设备这一侧,我们把I/O设备拆分成,能和CPU通信的接口电路,以及实际的I/O设备本身。接口电路里面有对应的状态寄存器、命令寄存器、数据寄存器、数据缓冲区和设备内存等等。接口电路通过总线和CPU通信,接收来自CPU的指令和数据。而接口电路中的控制电路,再解码接收到的指令,实际去操作对应的硬件设备。原创 2023-01-11 00:05:33 · 3033 阅读 · 0 评论 -
计算机如何存储浮点数和定点数?
这样的表示方式下,浮点数能够表示的数据范围一下子大了很多。因为这个数对应的小数点的位置“浮动”,才被称为浮点数。随指数位e值不同,小数点位置也在动。对应的,前面的BCD编码的实数,就是小数点固定在某一位的方式,我们也就把它称为定点数。为什么0.3 + 0.6不能得到0.9?因为,浮点数没有办法精确表示0.3、0.6和0.9。0.1~0.9这9个数,只有0.5能够被精确地表示成二进制的浮点数:s = 0、e = -1、f = 0。而0.3、0.6、0.9,都只是近似表达。原创 2023-01-10 22:23:51 · 459 阅读 · 0 评论 -
计算机总线作用及分类详解
计算机的总线比如最常见的USB:Universal Serial Bus,提供了对外连接的接口,不同设备可以通过USB接口进行连接,连接的标准也促使外围设备接口的统一。其它的还有 PCI、ISA、Thunderbolt 总线等。都是为了解决不同设备之间的通信。试想,如果没有总线,新增了输入设备后,为了维持通信又得加一堆线路。有了 I/O 总线后分类片内总线芯片内部的总线,寄存器与寄存器之间,寄存器与控制器、运算器之间。高集成度芯片内部的信息传输线。系统总线数据总线双向传输各原创 2021-02-15 14:08:53 · 1993 阅读 · 0 评论 -
简明图解冯·诺依曼计算机体系
1 计算机的基本硬件一台计算机至少有三大件:CPU内存主板1.1 CPU最重要的核心配件,中央处理器(Central Processing Unit)。计算机的所有“计算”都由CPU执行。1.2 内存(Memory)撰写的程序、打开的浏览器、运行的游戏,都要加载到内存里才能运行。程序读取的数据、计算得到的结果,也都要放在内存里。内存越大,能加载的东西自然也就越多。内存通常直接可以插在主板上,存放在内存里的程序和数据,需要被CPU读取,CPU计算完之后,还要把数据写回到内存。然而CPU原创 2021-02-15 19:36:36 · 3512 阅读 · 2 评论 -
重学计算机组成原理(十二) - 异常和中断
1 概览完好的程序都满足以下特征自动运行我们的程序和指令都是一条条顺序执行,不需要通过键盘或者网络给这个程序任何输入正常运行没有遇到计算溢出之类的程序错误。不过,现实的软件世界可没有这么简单程序不仅是简单的执行指令,更多的还需要和外部的输入输出打交道程序在执行过程中,还会遇到各种异常情况,比如除以0、 溢出,甚至我们自己也可以让程序抛出异常。遇到这些情况,计算机是...原创 2020-03-07 17:46:18 · 2734 阅读 · 0 评论 -
重学计算机组成原理(九)- 动态链接
把对应的不同文件内的代码段,合并到一起,成为最后的可执行文件链接的方式,让我们在写代码的时候做到了“复用”。同样的功能代码只要写一次,然后提供给很多不同的程序进行链接就行了。“链接”其实有点儿像我们日常生活中的标准化、模块化生产。有一个可以生产标准螺帽的生产线,就可生产很多不同的螺帽。只要需要螺帽,都可以通过链接的方式,去复制一个出来,放到需要的地方但是,如果我们有很多个程序都要通过...原创 2019-08-18 02:22:40 · 1581 阅读 · 0 评论 -
计算机组成原理(2025最新版)面试知识点集锦
在上一篇中,我们谈到过程序的CPU执行时间 = 指令数×CPI×Clock Cycle Time要提升计算机的性能,可以从上面这三方面着手。通过指令数/CPI,好像都太难了。因此工程师们,就在CPU上多放晶体管,不断提升CPU的时钟频率,让CPU更快,程序的执行时间就会缩短。从1978年Intel发布的8086 CPU开始,计算机的主频从5MHz开始,不断攀升1980年代中期的...原创 2019-08-11 02:51:19 · 1768 阅读 · 0 评论 -
重学计算机组成原理(五)- "旋转跳跃"的指令实现
CPU执行的也不只是一条指令,一般一个程序包含很多条指令因为有if…else、for这样的条件和循环存在,这些指令也不会一路平直执行下去。一个计算机程序是怎么被分解成一条条指令来执行的呢1 CPU如何执行指令CPU里差不多几百亿个晶体管实际上,一条条计算机指令执行起来非常复杂好在CPU在软件层面已经为我们做好了封装对于程序员来说,我们只要知道,写好的代码变成了指令之后,是一条一条顺...原创 2019-08-14 00:37:13 · 1559 阅读 · 0 评论 -
重学计算机组成原理(十二)- 加法器
下面这些门电路的标识,你需要非常熟悉,后续的电路都是由这些门电路组合起来的。这些基本的门电路,是我们计算机硬件端的最基本的“积木”包含十亿级别晶体管的现代CPU,都是由这样一个一个的门电路组合而成的。1 异或门和半加器基础门电路输入都是两个单独的bit输出是一个单独的bit2个8 位(bit)数的与/或/非逻辑运算连续摆放8个开关,代表一个8位数这样的两组开关,从左到右...原创 2019-08-18 23:35:01 · 4476 阅读 · 1 评论 -
重学计算机组成原理(十一)- 门电路的"千里传音"
人用纸和笔来做运算,都是用十进制,直接用十进制和我们最熟悉的符号不是最简单么?为什么计算机里我们最终要选择二进制呢?来看看,计算机在硬件层面究竟是怎么表示二进制的,你就会明白,为什么计算机会选择二进制。1 怎么做到“千里传书”马拉松的故事相信你听说过。公元前490年,在雅典附近的马拉松海边,发生了波斯和希腊之间的希波战争。雅典和斯巴达领导的希腊联军胜利之后,雅典飞毛腿菲迪皮德斯跑了历史...原创 2019-08-18 20:36:54 · 1591 阅读 · 0 评论 -
重学计算机组成原理(十)- "烫烫烫"乱码的由来
程序 = 算法 + 数据结构对应到计算机的组成原理(硬件层面)算法 — 各种计算机指令数据结构 — 二进制数据计算机用0/1组成的二进制,来表示所有信息程序指令用到的机器码,是使用二进制表示的存储在内存里面的字符串、整数、浮点数也都是用二进制表示的万物在计算机里都是0和1,搞清楚各种数据在二进制层面是怎么表示的,是我们的必修课。在实际应用中最常遇到的问题,也就是文本字...原创 2019-08-18 17:45:57 · 4852 阅读 · 0 评论