计算机体系结构

计算机跟人对比

学计算机组成原理时我们都知道计算机主要是五大部件,输入设备,输出设备,控件器,运算器,存储器.

输入设备主要是鼠标,键盘.输出设备主要是显示器,打印机.存储器主要是主存(内存)和硬盘.可以把内存看作一种速度很快的特殊硬盘.只不过硬盘可以永久保持信息,内存的话一旦断电后里面东西全丢了.控件器与运算器就统称为CPU.个人电脑都基本上是这样,Server的话只有CPU,内存,硬盘也可以的,没啥输入输出了.

输入

输入设备有点像人的感官,我们通过眼睛的视觉,耳朵的听觉,舌头的味觉,鼻子的嗅觉,皮肤的触觉来从外界获取刺激信息.这些信息传入大脑这个CPU进行处理.

输出

输出设备主要是我们的四肢,嘴巴啊.其实整个肉体都差不多算是输出设备了,只是能动的.当输入设备获取信息,然后大脑经过处理后下达指令采取行动,能行动的所有器官就都是输出设备了.所以有时调入设备也同时是输出设备了啊.

CPU

CPU的话自然就是对应着大脑中的神经中枢,大脑皮层了啊.不过其实脊髓中的低级神经中枢也起了一部分CPU的作用,一些本能反应,比如初中学生物时著名的膝跳反应就只要把刺激信息传到脊髓中然后就能进行处理做出反应.所以人有点像个多核的CPU了,低级神经中枢这个不小CPU就处理一些不太重要的操作了.

硬盘

存储设备就对应大脑中的记忆区,哎大脑的结构有点复杂还没去认真研究过.我们就暂且认为大脑中某一部分就起CPU的作用,某一部分就是起硬盘的作用,永久记住我们接触过的信息.我们有时会发现我们会偶尔记不起某件事,但自己又知道自己是知道的,只是暂时没想起来.我猜想可能是这样的,我们记忆中可能会有关于所有事的一些目录,就像书的前面都有目录一样.是记忆中的事的提纲.但具体内容保存在另外的地方.而目录不是那么稳定的对应着具体内容.有时那对应关系会丢失了.但各种记忆不是孤立的,而是存在一些网状的复杂联系.有些记忆可能有关于另外某 些记忆的部分信息,相当于一个超链接一样.

内存

那内存对应啥呢,对应我们当前活跃的大脑区域.大部分人都会有这样的感觉,脑子中不能同时想很多事,只能一次想一点点,按顺序想过去.而且不时精神不佳时脑子反应会很慢,或者一些笨人正常情况也一样反应慢.一次只能想一点事,说明大脑中内存就那么点大,上次只能装那么多内容.想其他的事时就得先把内存中的一部分内容先替换到硬盘中.当然不同的人就像不同的计算机一样,硬件配置不一样.有些人CPU,内存,硬盘比你好很多,人家能一下记住很多事.能快速的想很多事.当然硬盘中除了遗传下来的一部分记忆和功能,可能类似于操作系统吧.那就没其他啥东东了.我们需要不断的学习,增加些记忆内容放硬盘上去.可能每个人的硬盘不会相差太远.只不过有些容易把内容弄到硬盘上去,记忆速度快点.有些人得花很多功夫才能把内容保存硬盘上去.当笨鸟先飞嘛,你多花时间多花些东西,你硬盘上的东西就比很多聪明人多了.

电源

我们知道计算机要有电才能运行,没电的话就是废铁一堆.但我们用电时只能接个电源就行,那些发电站给你发电去.但我们人可不能去哪接个电源去啊.我们得自己发电,我们大部分器官都是作为发电运电的工具.首先需要原料,每天要吃那么多食物,然后经过胃消化,消化时还得有肝脾肠等的配合,消化完了之后就转化成能量,相当于是电了.然后要把能量传送给身体其他部分,需要血液啊,需要心脏的功能.另外光有能量还不能用,还得有氧才行,于是又得肺去整点氧来啊.

冯诺依曼体系结构与哈弗体系结构

我们在平时编程时发现代码和数据在内存中是保存在一起的,只是逻辑上做了一个分区.但实际操作时如果一些识误操作也会导致读数据时读到代码,读代码时读到数据了。像这种把程序指令存储器和数据存储器放到一起的存储结构叫冯.诺伊曼结构.而把指令和数据存储完全分开的结构叫哈佛结构.

冯.诺伊曼体系结构把程序当作一种特殊的数据.不作区分这样可以充分利用存储空间.大部分计算机和一部分嵌入式系统都使用这种结构.而哈佛结构虽然看起来浪费了一些存储空间,但首先是可靠性更高,因为数据区和程序指令区完全分开,出现误操作时读数据也不可能读到程序指令区去.另外执行速度和数据吞吐率更高,取指和读取数据可以并行执行.少部分计算机和大部分嵌入式用的这种结构

精简指令集与复杂指令集

其实软件的功能全部可以用硬件来实现的.CPU的微指令集就有点类似硬件化了的软件了.只不过很多应用软件非常复杂并且变化不定.所以我们一般只用硬件实现一部分简单的基础的操作.CPU的指令集分为两种类型,于是就对应有两种计算机,精简指令计算机(Reduce instruction set computer)简称为RISC,复杂指令计算机(complex instruction set computer)简称为CISC.

这两者区分可以顾名思义,所谓精简就是尽量简单嘛,用微指令实现尽可能少的基本功能.这样一来实现某个功能可能需要通过很多指令的组合才能完成.就像我们用汇编可能实现某个简单功能也需要非常多的操作才能完成.而复杂嘛就是多用点微指令,这样实现一个功能就只用很少的操作就能完成.像用C#,JAVA实现某个功能可能就简单的几条语句了.

但精简和复杂只是个大概范围.一般CISC指有300条或更多微指令.而如果少于300就叫RISC.

凭想当然我们觉得复杂指令集应该好点,功能更强大嘛.很多人自然也这样想.所以我们大部分计算机都用的是复杂指令集.只要CPU是Intel,操作系统是windows的基本上就是.不过像苹果(Apple)的电脑用的就是精简指令集.

CISC虽然看起来功能强大,但也会有问题,一个是指令一多设计成本就高,而且可能容易出错.另外很多指令可能也只在特殊情况有用,不一定通用.指令集可能也遵守二八规律.就是经常使用的80%以上的指令可能只是指令集中的那20%.其实用电脑时我们也很容易感觉到,一大堆功能我们只用到很少的功能,像你觉得用win7跟windows 2000有啥很多不一样吗?可能最大的不一样就是界面漂亮很多了.其他貌似区别不大.这是因为很多新增的功能我们根本用不着.很多领域貌似都适用这规律啊.比如世界上可能80%的财富只在20%的人手里.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值