计算机科学篇笔记(一)

来源:互联网 发布:男性卫生知况 编辑:程序博客网 时间:2024/05/29 15:42

一、CPU的结构和原理:

   了解CPU(中央处理器)首先要了解CPU的主要组成部分:寄存器,控制器,运算器和时钟。先说寄存器,什么是寄存器呢?顾名思义,就是用来短暂寄存一些值(数据)的地方,而我们今天也常常有一种说法叫做“ 程序 = 指令 + 数据“,这说明对于一个程序员来说我们绝大部分时间是在和寄存器打交道的(除了一些硬件工程师外),甚至可以将其理解为CPU中的内存;那么什么是控制器呢?控制器也就是用来控制寄存器的读和写的;再就是运算器了,运算器就是逻辑处理单元,具有协助寄存器和控制器来达到运算的辅助功能。到了这我们是不是感觉CPU和企业的模式很像呢?CEO-监工-民工,但是CPU是个死玩意,想要它工作就要靠一个关键的玩意---------时钟,可能你会觉不明所以,其实很简单,我们经常看到CPU的GHZ频率就是跟时钟相关的,CPU的每次运行都需要时钟去推动,推动的频率就是GHZ(1GHz == 10亿次每秒),所以一般来说GHZ越高,CPU的运行效率越好。


二、程序与CPU:

   当我们想写程序与CPU访问时,并不是那么简单的,当然像以前的年代基本都是直接与计算机打交道的,像什么插拔线之类的,具体怎样,本人也不太清楚了,毕竟没经历过。面对晦涩难懂的机械语言(都是0,1组成的),想想那时编程估计得死一批人了,还好之后出了一门语言,叫做汇编,切记不要误以为是汇编之后到达机器指令的,汇编是与机器指令一一对应的,也就相当于机器指令的助记码。之后的一段时间内,人们觉得汇编还是太过于繁琐,于是就出现了高级语言,像c,c++,java之类的,使人们不必要与计算机进行直接的交流就可以操作计算机,大概的步骤就是高级语言通过编译器编译或者说叫翻译成机器能懂的语言(汇编),当然这之后会形成一个可执行文件(不一定是EXE文件),这里假设生成的是EXE文件,那么当我执行EXE文件时,计算机会悄悄的将EXE文件加载到内存中,那么在内存中计算机就会与CPU进行交互,通过什么呢?那就和我们前面讲到的寄存器,控制器,运算器和时钟有关系了。这里要主要讲解下寄存器,寄存器的种类有很多,像累加寄存器(运算功能,一般来说是最贴近控制器的),标志寄存器(协助进行逻辑判断的),程序计数器(存储下一条指令在计算机中的地址),基址寄存器(内存起始的地方),变址寄存器(相对基址的偏移),通用寄存器(程序员用的最多的,没有限制),指令寄存器(一般来说只供CPU使用的),栈寄存器(栈的起始位置)等等,有意思的是,我们的程序一般来说是按顺序执行的,那么所谓的程序计数器有什么用呢?其实我们的程序中除了顺序以外还会有分支语句等一些跳转语句,那么就要标志寄存器,来标志状态(包括是否为零,是否溢出等等),由程序计数器控制下条语句的执行地址了。那么要这么多寄存器又有什么用呢?毫无疑问就是所谓的效率问题了,通常来说寄存器的效率会是内存的几十倍,甚至上百倍,这里也要说明一点,实际上CPU和内存在物理层上是没有什么联系的,CPU是通过地址总线和内存进行通讯的,也就是CPU通过地址总线告诉主板上的控制器,它需要和内存进行访问,然后主板上的控制器连通内存,进行间接的物理层上的交互。


三、为什么要用二进制?

   我们的电脑基本都是由一些集成电路(IC)和晶体管等元件组成的,那么所谓的集成电路又包含了很多的引脚,这些引脚只用两种状态,通电和未通电(高电频和低电频),所以用二进制可以更好的控制电路。其实二进制不仅仅表示电路,也可以表示文字,图片,音频等,以图片为例,常见的有8位色(256种),16位色(65536种),32位色(42亿种)再将不同的颜色组合形成图片,其实视频来说就是多了一个轨道,一个轨道上按一定的顺序存储了很多帧的数据,这里也不多讨论了,要理解其组成也是些二进制的数据而已。


四、内存

内存的物理结构:(断点即消)

Rom:只读内存

Ram:支持读写

   DRAM:实时更新的

   SRAM:不更新的

下面只是大概的介绍CPU的每次读写数据的大写的计算:



(未完待续)


0 0
原创粉丝点击