<!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } -->
云计算第一季:002
这里我们讨论一下一些基础类的相关基础信息
写的比较乱,基本是考虑到哪里写到哪里,然后再做整理,否则思路怕跟不上Sorry 。
CPU 如何处理指令:
这是基础的基础了
想当初学习汇编和微机原理的时候没有好好学,这回好了,还得回头再看看了。
一般来说,个人电脑:主流的CPU 厂商包括Intel ,AMD ,小一些的有威盛
服务器:SPARC (SUN 的标准,现在是OpenSparc ,富士给代工的,当然他也做自己的SPARC ),IBM 的PowerCPU 等。
同时也有应用于嵌入式的ARM 架构CPU (ARM 不是cpu ,而是CPU 的架构,他收专利费)比如你的智能手机之类。
还有一个国人的骄傲,那就是龙芯。
关于CPU 具体介绍我也不想多说了,http://know.chinabyte.com/index.php/%E8%8B%B1%E7%89%B9%E5%B0%94CPU%E5%8F%91%E5%B1%95%E5%8F%B2 ,这个是关于Intel 的CPU 的简介,有兴趣可以看看。
说了一堆广告名词后,我们来说一下架构。
其实我感觉如果真正运行分布式计算,CPU 最好是64 位的CPU 。
我们这里所说的CPU 基本都是X86 架构的CPU ,其他的暂时不做深入介绍。
当处理器运行的时候,会从内存中指定区域读取相关指令进行操作。
根据操作码进行数据的操作。
这个部分在很多教科书或者老人头的书上都有。
我这里要说的是,CPU 对于每一条操作指令都是采取阻塞式的,这样,所有的指令都会被放入队列等待操作,同样,因为这种关系,形成了数据操作的瓶颈。
双核甚至于多核CPU 为了解决类似问题,被生产了出来,同时操作系统会对所有的操作指令进行管理,分别放入单独的CPU 核心中进行执行,提高了效率。
这样问题产生了,我如果需要同时处理100 条指令(假设而已),如果在单核心CPU ,需要这100 条指令一条一条的去处理。
如果双核理论也就是快一倍,但是,集群的产生让需要处理的命令进行了分流,当然,目前的集群层次还是比较高的,不是基于单独的指令,而是基于一个用户操作来进行的。
这个时候,我们可以考虑一个事情,就是如果把网线考虑成为一个BUS ,所有的机器被当作一个单独的CPU 内核进行处理的话,会不会提高系统的操作的效率?
答案是肯定的,但是目前存在的问题也是比较棘手的。
举一个例子,一个业务操作,他并不能并行的进行执行,他需要一步一步处理下去,然后返回结果。
这样的例子太多了,以至于形成了编程人员的固定思维了,也就是所有的操作都有次序,这样结果是还停留在高层次的集群中,无法充分把所有的集群中的机器当作一个多核心的CPU 。
根本的解决方法就是改变编程的顺序化的思维,让我们程序是一个并行处理的程序。
当然,这需要改变的太多了。
还有个折中的方案,修改Runtime ,让Runtime 把指令进行分解,把可以并行处理的指令一起发送到可以处理的各个机器上。
今天就写到这里吧,思路感觉又乱了,再好好考虑一下:)