冯诺依曼结构的工作原理

计算机组成的依据是冯诺依曼结构,它将计算机分为以下五大组成部分:

  • 运算器+控制器(CPU)
  • 存储器(内存)
  • 输入设备
  • 输出设备

数据和指令以二进制形式,不加区别的存放在存储器中。

速度不匹配问题

由于CPU的运行速度非常快,与主存储器,磁盘的I/O速度相差非常大(千百倍以上),为了解决这个问题,计算机采用将CPU “忙死” 的方法。对于程序的执行采用以下方案:

  • 同步 => 异步

即CPU在运行程序时,当某个程序需要它来运行时它才动作,不需要它运行时,CPU去运行别的程序去。

  • 顺序 => 并发

将多个程序并发执行,CPU在这些程序里进行很快速的切换(由操作系统控制),这样会使人觉得好像每个程序同时运行一样,其实在每个时间点时(极短),CPU只执行一个程序。

  • 增加中间层:缓存

1、当CPU要读取一个数据时,首先从CPU缓存中查找,找到就立刻读取并送给CPU处理;
2、没有找到,就从速率相对较慢的内存中读取并送给CPU处理,同时把这个数据所在的数据块调入缓存中,可以使得以后对CPU数据的读取都从缓存中进行,不必在调用内存。

按下电源之后发生了什么

  • 按下电源,主板开始供电
  • 主板向CPU发出RESET信号
  • 当RESET信号撤去后,CPU开始干活,去一个特定的内存地址查找第一条指令(这是一条跳转指令,跳转到系统BIOS中真正的启动代码处)
  • BIOS的代码对系统进行自检:内存,硬盘,显卡..如果硬件出现问题,主板会发出不同含义的蜂鸣,启动终止。如果没有问题,屏幕就会出现CPU、内存、硬盘等信息。

hello world的一生

  • 程序写好了以后,编译成二进制文件(包含机器语言指令),存放在硬盘中。
  • 运行hello world程序,操作系统吧helloworld从硬盘读到内存
  • CPU开始执行main程序中的机器语言指令
  • 机器语言指令把”helloworld”字符串从内存复制到寄存器
  • 机器语言把寄存器数据复制到显示设备,显示在屏幕上。