计算机原理简略总结(一)

所谓指令就是一组二进制,最初给计算机输入指令的时候就是用穿孔纸袋的,带孔为1无孔是0,扫描进计算机。

 
指令通常由两个部分组成,操作码+地址码 ,很明显操作码就是读写之类的信息,地址码就是操作码要操作的对象在哪里。
 
指令在计算机中实际就是电信号,假设一个硬件有4个引脚,他可以根据不同的引脚的电极性不同来发生不同的行为,每一个引脚都有正负两种情况,代表01,4个引脚就是有2的4次方种组合。
 
人们规定好指令了,可是你得有东西去执行他吧,把执行的问题分开来解决,于是解决方案如下:
 
先把指令存起来 ,然后有个东东去不停得来取,然后再把这个指令(也就是电信号啦)传递给不同的硬件,不同的硬件接收到自己的指令后作出相应的反应。
 
bios系统大家或多或少接触过,蓝屏或是开机按指定的键位会自动进去的。他的全称是basic input outputsystem也就是基本输入输出系统,这货是计算机启动的时候第一个被运行起来的程序,什么?你问操系统,现在还轮不到操作系统出场呢,或许他很久才会出场。


bios是被固化在主板上一个ROM芯片里的,啥是ROM,就是read only memory只读内存,开始设计的时候这段程序和硬件密切耦合不可被更改,但随着技术的更新实际bios也可以被重载了。
 
bios里面放的什么东东?现在先不说稍后再说,我们先说下计算机如何通过指令调度硬件的
 
首先要说下cpu,简单来说cpu有两个作用,一个是把指令分发给出去给不同的硬件,二是计算数据。cpu是有很多引脚的,这些引脚被分为好多组,有的组用来传输控制信号,有的用来传输地址信号,有的用来传输数据,
相应的,硬件也必须提供引脚与这些组的引脚对接,是的,为了响应cpu的号令,硬件通过主板的线路将自己引脚和cpu的引脚联通,我们把这些线路称为总线BUS,就像上文说的那样,bus大致被分为三类:
 
数据总线 data bus 
 
由于每一根数据线可以理解为一个管脚,一次只能传输一个二进制,所以数据总线的宽度(也就是根数)决定一次传输的数据量,我们平时说的32位,16位都是说的数据总线的宽度,这些管脚传过去的一组电信号就是数据,这些数据传过去放在哪里了呢?内存?不是的,这些数据总线与cpu直接连接,而不是跟内存连接的,所有数据过去的时候会放在cpu的一个暂时存放数据的地方,叫数据寄存器。你会问了,寄存器是个什么东东?你可以把他理解为或大或小的一块内存,实际上他的存取速度是远大于内存的,数据总线是双向的因为cpu和硬件之间可以相互传输数据,硬件也是有寄存器的奥。
 
地址总线 address bus
 
我的理解是这样的,地址总线用于表明cpu这次读写操作的目标地址,cpu无论是读还是写,首要的就是要确定读写的地址,cpu先通过地址总线发出一个信息,这个信息会准确标注一个地址,这个地址肯定在某个硬件中唠,标注了地址,cpu可能有多种操作,或是写,或是读,或是其他,然后这时候他就要把这个要求传递给硬件了,如果是读那么硬件会把相应地址的信息放在数据总线,传给cpu,写的话就是cpu把数据放在数据总线传给硬件,所以地址总线是单向的总是由cpu传给硬件。那么上述读与写的控制信号又是如何传递给硬件的呢?通过控制总线。
 
控制总线 control bus
 
通俗讲,控制总线是cpu用来给计算机各个硬件发送控制信号和时序信号的,比如读写信号,中断响应信号,当然了硬件也能通过控制总线反馈给cpu信号,比如中断信号,读写就位信号。
 
其实内存,硬盘,显卡,优盘之类的硬件在cpu看来其实一样一样的,硬件通过3种数据线跟cpu相联系,另外硬件通常至少有这3个寄存器,控制寄存器,状态寄存器,数据寄存器,这三个寄存和上面的3个3个总线有没有必然联系呢,没有,这个下面会说。
 
我们总结下上面的3个总线,地址总线选定硬件的地址,控制总线决定了下一步在这个地址上进行什么操作,数据总线用来传递选中地址的数据。
 
这里有一个问题就是,外设的地址怎么确定?如果我们的地址总线有32位那么寻址能力就是4g,假设我们有一个4g的内存卡,那么实际的寻址能力会是4g么?不会的他一定会小于4g,为什么?因为32位的地址总线不仅要访问内存ram还要访问外设。未完待续....

 

posted @ 2016-03-15 17:15  神不知鬼不晓  阅读(298)  评论(0编辑  收藏  举报