当前位置: 首页 > 原理解释

计算机组成原理四本书-计算机组成原理四书

计算机组成原理这四本书,本质上就是教你如何把计算机这块“黑盒子”从里面拆开来,重新组装,就连让它们长歪。 大量人认定这玩意儿难,实际上是出于我们总想着把它当成一个完美的黑盒子,结局最终发现,那个盒子确实是由一堆实打实的门、抽屉和管道组成的。我得先说板级,特别是 CPU 和内存,它们才是整个系统的骨架。 CPU 是个超级复杂的机器,里面藏了加法器、乘法器、移位器,还有寄存器。寄存器就是内存上的小抽屉,CPU 装东西时,要么直接塞进寄存器,要么通过总线搬运到临时缓冲区。
举个例子,要是我要让 CPU 算个加法,它不是直接去内存里找数字,而是先把当地的寄存器里装进去,算完再改回去。
要是寄存器满了,要么中间数据丢了,整个加法就白干了。
这就是为啥现代 CPU 要设计复杂的缓存(Cache),出于内存读写忒贵了,CPU 务必得有个地方先把数据存起来,算完再找回来。 内存这块略微好办点,但也挺关键。内存就是那几根长条形的板子,分成了各种大小的颗粒。CD 格式的 DDR4 内存,人家就一根,一根有 32 个通道,里面就有 64 根线,每根线能与此同时带八个信号,数据吞吐量大得吓人。硬盘就费事多了,不是长条,是庞大的立方体要么圆柱体,你得通过数据线去读写里面的磁记录盘要么闪存颗粒。 系统是连接这些硬件的血管,走的是总线。总线分 CPU 内部总线、外部总线和 I/O 总线。CPU 内部总线主要管寄存器和数据在内存和 CPU 内部的流动。外部总线就是 CPU 和内存、显卡、网卡对话的通道,这拍板了咱们能跑多高难度的游戏要么程序。I/O 总线相对好办,就是用来跟键盘、鼠标、显示器通信的,它们之间的协议五花八门,光搞 I/O 设备就要搞半天。 接下来是管住单元,也就是 CPU 的大脑,要么说那个超级忙碌但从不歇气的管家。它得先把指令变成机器能懂的代码。现代 CPU 大局部工夫是在跑指令流水线,也就是把一条指令拆成多个步骤,一步步执行。
比如加法指令,可能先取指,再译码,再读操作数,最终写结局。每一步都要经过不同的硬件,故此速度贼快。 数据处理这块,寄存器里存放的是临时数据,而数据存器(L1/L2 Cache 和 RAM)里存放的是程序和数据。
要是把 CPU 比作工厂,寄存器就是流水线上的传送带,内存就是车间的仓库,而缓存就是专门存放半成品的高档仓库。工厂需求特别小心,出于传送带就是 CPU 的指令,不能乱动,否则指令就乱序执行了,就会出错。 时钟信号是流水线的节拍器。CPU 内部有个计数器,跑一圈给时钟输入端加个脉冲。
这个脉冲负责驱动所有寄存器里的数据。
要是时钟慢了,数据就积少成多,最终害得缓存失效要么指令执行毛病。
这时候往往得靠硬件故障,要么软件层面的修复技巧。 内存和缓存之间的交互是另一个难点。CPU 想把数据读进缓存,缓存会检查数据是否存有。
要是存有,直接回;要是不存有,再跑一次去内存找。
每次访问内存都要消耗资源,好办造成缓存未命中(Miss),让人家忙活半天白干。
这时候 CPU 设计了大量复杂的算法,比如替换算法,尽量让常用的数据留在缓存里,削减访问次数。 操作系统在这个系统里就是个调度员,它负责拍板哪位用 CPU,哪位用内存。它得管理线程,让多个任务与此同时运行。每个任务都有独立的寄存器状态,要是两个任务抢内存,哪位先哪位后挺关键。操作系统还得处理死锁,别看现代操作系统极少死锁,但不得不防。 硬件故障修复是最终的防线。CPU 内部有大量故障检测电路,比如单周期检测器。
要是 CPU 内部某个寄存器坏了,要么某个数据线断了,CPU 会立马发现异常,然后暂停执行,进入复位状态。程序员在写代码时,实际上也在做故障修复。
比如输入毛病,程序能够自动重试;内存溢出,系统能够回收内存。
这就像人类在写代码,既要保证逻辑对,又要寻思输入毛病和运行异常。 总而言之,计算机组成原理就是讲硬件和软件的交界。硬件负责执行,软件负责调度,两者缺一不可。
记住,所有的高级特性,比如虚拟化、并行计算,最终都绕不开这个根本硬件的原理。
要是你能真正理解寄存器、总线、缓存这些底层逻辑,你也就理解了为啥计算机能如此快,还能如此多样本。
相关标签:

猜你喜欢

热门阅读

  • 赖柴尔定理-赖柴尔定理
  • 迪拜哪个国家的城市?-迪拜在哪国城市
  • 李毅吧番号及出处-李毅吧番号及出处
  • 贴春联的由来简介50字-春联由来简述
  • 思乡的名言和出处-思乡名言及出处

其他分站