接着上面两贴:#【J.C.X】了解电源程序员1#
#【J.C.X】了解电源程序员2#
------------------分界线--------------------------
系统硬件组成
为了理解 hello 程序在运行时发生了什么,我们需要首先对系统的硬件有一个认识 。下面这是一张 Intel 系统产品的模型,我们来对其进行解释
总线(Buses):在整个系统中运行的是称为总线的电气管道的集合,这些总线在组件之间来回传输字节信息 。通常总线被设计成传送定长的字节块,也就是 字(word) 。字中的字节数(字长)是一个基本的系统参数,各个系统中都不尽相同 。现在大部分的字都是 4 个字节(32 位)或者 8 个字节(64 位) 。
I/O 设备(I/O Devices):Input/Output 设备是系统和外部世界的连接 。上图中有四类 I/O 设备:用于用户输入的键盘和鼠标,用于用户输出的显示器,一个磁盘驱动用来长时间的保存数据和程序 。刚开始的时候,可执行程序就保存在磁盘上 。
每个I/O 设备连接 I/O 总线都被称为控制器(controller) 或者是 适配器(Adapter) 。控制器和适配器之间的主要区别在于封装方式 。控制器是 I/O 设备本身或者系统的主印制板电路(通常称作主板)上的芯片组 。而适配器则是一块插在主板插槽上的卡 。无论组织形式如何,它们的最终目的都是彼此交换信息 。
主存(Main Memory),主存是一个临时存储设备,而不是永久性存储,磁盘是 永久性存储 的设备 。主存既保存程序,又保存处理器执行流程所处理的数据 。从物理组成上说,主存是由一系列 DRAM(dynamic random access memory) 动态随机存储构成的集合 。逻辑上说,内存就是一个线性的字节数组,有它唯一的地址编号,从 0 开始 。一般来说,组成程序的每条机器指令都由不同数量的字节构成,C 程序变量相对应的数据项的大小根据类型进行变化 。比如,在 Linux 的 x86-64 机器上,short 类型的数据需要 2 个字节,int 和 float 需要 4 个字节,而 long 和 double 需要 8 个字节 。
处理器(Processor),CPU(central processing unit) 或者简单的处理器,是解释(并执行)存储在主存储器中的指令的引擎 。处理器的核心大小为一个字的存储设备(或寄存器),称为程序计数器(PC) 。在任何时刻,PC 都指向主存中的某条机器语言指令(即含有该条指令的地址) 。
从系统通电开始,直到系统断电,处理器一直在不断地执行程序计数器指向的指令,再更新程序计数器,使其指向下一条指令 。处理器根据其指令集体系结构定义的指令模型进行操作 。在这个模型中,指令按照严格的顺序执行,执行一条指令涉及执行一系列的步骤 。处理器从程序计数器指向的内存中读取指令,解释指令中的位,执行该指令指示的一些简单操作,然后更新程序计数器以指向下一条指令 。指令与指令之间可能连续,可能不连续(比如 jmp 指令就不会顺序读取)
下面是 CPU 可能执行简单操作的几个步骤
加载(Load):从主存中拷贝一个字节或者一个字到内存中,覆盖寄存器先前的内容
存储(Store):将寄存器中的字节或字复制到主存储器中的某个位置,从而覆盖该位置的先前内容
操作(Operate):把两个寄存器的内容复制到 ALU(Arithmetic logic unit) 。把两个字进行算术运算,并把结果存储在寄存器中,重写寄存器先前的内容 。
算术逻辑单元(ALU)是对数字二进制数执行算术和按位运算的组合数字电子电路 。
跳转(jump):从指令中抽取一个字,把这个字复制到程序计数器(PC) 中,覆盖原来的值
字数太多,开新帖
喜欢给个关注,点关注不迷路
文章插图
【了解电源程序员3】
文章插图
推荐阅读
- win7通知区域无效图标怎么删除?
- ie浏览器CPU使用率高的解决方法
- 电脑rpt是什么文件怎么打开?
- 老CRT纯平显示器越来越暗是什么原因
- 附解除限制方法 小编教你怎么给网卡限速到10M
- QQ音乐VIP歌曲下载小技巧
- 删除打开方式里不需要的选项
- 了解电源程序员2
- 显示器黑屏故障分析