计算机组成原理学习

  作为编程人员,虽然很少与计算机硬件打交道,但是个人觉得作为非科班计算机人员,也需要修炼内功,做好底层知识储备,对于学习JVM,多线程,缓存等大有益处。

  计算机组成原理学习,主要从以下四个方面展开:

  1、计算机的基本组成、

  2、计算机的指令和计算、

  3、处理器设计,

  4、存储器和 I/O 设备

  当然还会结合书《编码——隐匿在计算机软硬件背后的语言》一起学习。

 一、计算机性能

1.1响应时间或执行时间

1.2.吞吐量或带宽

二、计算机的计时单位——CPU时钟

正常一个程序运行的时间中,计算机可能同时运行着好多个程序,CPU 实际上不停地在各个程序之间进行切换。在这些走掉的时间里面,很可能 CPU 切换去运行别的程序了。

所以一般如下定义:

  第一个是real time,也就是我们说的 Wall Clock Time,也就是运行程序整个过程中流逝掉的时间;

  第二个是user time,也就是 CPU 在运行你的程序,在用户态运行指令的时间;

  第三个是sys time,是 CPU 在运行你的程序,在操作系统内核里运行指令的时间。

程序实际花费的 CPU 执行时间 CPU Time =  user time +sys time。

考虑CPU满载或降频、主板差异、内存差异

程序的 CPU 执行时间 =CPU 时钟周期数×时钟周期时间

   时钟周期时间:CPU 内部晶体振荡器,一个带来的每一次“滴答”。举例:CPU主频4.0GHz,可以执行的简单指令的数量是 4.0G 条;

  CPU 时钟周期数:再做一个分解,变成“指令数×每条指令的平均时钟周期数(Cycles Per Instruction,简称 CPI)

至此:程序的 CPU 执行时间 = 指令数×CPI×Clock Cycle Time

三、CPU

CPU(Central Processing Unit,中央处理器)就是计算机的大脑。

从硬件角度,CPU是一个超大规模集成电路,通过电路实现了加法、乘法、乃至各种各样的处理逻辑。

从软件工程,CPU是执行各种计算指令的逻辑机器。

逻辑上,CPU是由一堆寄存器组成的,寄存器就是CPU内部,由多个触发器(Flip-Flop)或者锁存器(Latches)组成的简单电路。触发器和锁存器是两种不同原理的数字电路组成的逻辑门。

 

 常见的三种寄存器:

PC寄存器Program Counter Register,也叫指令地址寄存器,用来存放下一条需要执行的计算机指令的内存地址。

指令寄存器Instrunction Register,用来存放当前正在执行的指令。

条件码寄存器Status Register,用里面的一个一个标记,存放CPU进行算术或者逻辑计算的结果。

其他一些寄存器既可以存放数据,又能存放地址,一般叫通用寄存器。

四、C语言到可执行程序

一般理解:C语言代码,通过编译器编译成汇编代码,汇编代码再通过汇编变成CPU可以理解的机器码,这样CPU就可以执行这些机器码了。

实际上是由两部分组成:

第一部分,由编译、汇编以及链接三个阶段组成。再这三个阶段完成之后,就生成了一个可执行文件。

第二部分,通过装载器把可执行文件装载到内存中。CPU从内存中读取指令和数据,来开始真正执行程序。

 

posted on 2021-09-05 21:27  betterLearing  阅读(461)  评论(0编辑  收藏  举报