今天晚上去了一趟图书馆,令我的心情十分地愉快。原因是我找到了一本书,这本书的译者是华师的黄河。而碰巧的是,这本书是关于计算机结构与设计的国外教材。恰好上了一上午的计算机组成原理,看来这么好的心情,不冲杯咖啡,谈谈计算机是不行了。

今 天学的就是计算机的核心部件cpu的ALU(多功能算术运算器),我们平常进行的 加 减 乘 除 法在计算机中到底是怎么实现的。学习过电子技术的同学都知道布尔代数吧,这个东东就是各种逻辑器件的基础,因为0 / 1恰好代表着真和非真。非常凑巧我们的数表示成二进制之后居然可以和布尔代数完美融合起来。这样,计算机ALU架构起来的理论基础就建立起来了。我们可以 用简单的门来构建加法器,可以做简单的加法。而加法又分为两部分——进位,本位。当然本位要与低位的进位打交道,而进位又由本位相加的结果决定。这种叫做 行波进位。本位的加可以用一个异或门实现,而进位位则由本位通过一个与门来实现(很显然)。

如上图所示,就是一个全加器。当然减法通过转换成补码也可以用全加器来实现,只不过符号位的处理单独进行。符号位产生的进位结果是要舍弃的。
乘法和除法则复杂一点,对于乘法来说,结果的符号位是乘数与被乘数的异或。先用我们人类的方法,就是乘数的每一位分别去乘被乘数的每一位,但是结果要依次 左移。然后将结果做加法。具体实现肯定是很复杂的,其实我上课睡觉了,木有听到,老师也没有怎么讲,只是说不是这样的,而是用软件实现(布斯算法——不死 算法: P)。算法就是完成某工作的运算方法,我觉得就算是硬件实现也是有算法的。
除法,用的是加减交替法,也就是加法和减法一视同仁,不用考虑余数是否够除。呵

呵,看起来就挺复杂的。
而且还有个CAS这个东西不知道是什么,其实它是可控加减单元,也就是可以控制的“加法器”。看看上面那个图,就知道要进行比较复杂的运算。现在也不必深究,或许它也是软件实现的呢。
当然计算机里面最基本的就是加减乘除运算了,至于更多的运算比如求平方根,x的n次幂,都是用软件来实现的。它们是C语言中math头文件里面一些基本函数。
当然ALU既然是多功能的,那就必须要能做很多事,比如加法,逻辑运算,取反等等。当然必须要有信号控制cpu到底进行什么操作,里面的一些设计都是非常 的精妙的。而这些操作都与指令集里面的指令相对应,比如汇编里面的add,sub,c语言中的<< 和 >>。这些东东都是相通的。
好了,写完收工,晚安!
对了,怎样在思维转不过弯的时候利用思维导图解决问题。或者在知识体系模糊不清的时候用思维导图的方法来理清思路,想清楚一些东西。下次专门写一篇給自己吧。
在俺们专业发现了很聪明的人哟,看来要好好向他们学习了。
by bibodeng    2011-09-14

转载于:https://blog.51cto.com/bibodeng/664598

冲杯咖啡,谈谈计算机cpu相关推荐

  1. 有一些C++基础的同学们如何喝下你的第一杯咖啡?

    本文并不针对经验丰富的C++程序员,而是对C++也只是入门的同学,如知道使用函数,但是对面向对象中的构造函数.静态成员还不太了解等等.我过去很少关注到初学者的需要,其实生命在于分享,初学者在大本营中占 ...

  2. 用数据品鉴咖啡,407杯咖啡数据教你如何区分咖啡等级和风味

    来源:大数据文摘 本文约2000字,建议阅读5分钟 我提取了所有豆子的风味评级数据,最终得到一个比原先稍大的数据库,其中有407杯咖啡的数据. 尝遍世界各地不同的咖啡,我好奇风味差异如何影响咖啡评级. ...

  3. C# 读取计算机CPU,HDD信息

    C# 读取计算机CPU,HDD信息 public string getCpuInfo() //读取CPU信息         {             ManagementClass mobj = ...

  4. 两杯咖啡只卖2.5?瑞幸价格出错被“薅羊毛” 官方道歉了...

    4月18日消息,今天瑞幸冲上微博热搜榜,有网友反映,瑞幸咖啡在饿了么上出现bug了,两杯咖啡用完红包只要3-4块.对此,瑞幸方面回应称,由于饿了么后台价格配置问题,导致瑞幸椰云套餐价格短时内出现错误, ...

  5. 喝杯咖啡,就买不到NIPS门票了!11分38秒售罄

    夏乙 允中 发自 凹非寺 量子位 出品 | 公众号 QbitAI Andrej Karpathy,特斯拉AI总监,李飞飞的得意门生,吃完早饭发Twitter哀叹: 早上喝杯咖啡,NIPS 2018就去 ...

  6. 与计算机运算速度相关参数,计算机CPU运算速度是多少

    计算机CPU运算速度是多少 虽然我们每天都在使用计算机,但还是不得不惊叹计算的运算速度,那么计算机CPU运算速度究竟是多少呢?怎么会这么快?接下来就和小编一起来账一下知识吧!更多信息请浏览应届毕业生考 ...

  7. 北京交通大学计算机学院篮球,院际杯篮球赛|土建计算机相会决赛!男篮半决赛战报...

    原标题:院际杯篮球赛|土建计算机相会决赛!男篮半决赛战报 6月5日(周二)下午18:00,北京交通大学院际杯男子篮球赛半决赛正式开战!半决赛的对战双方分别是:1号场,土建学院 vs 电信学院:2号场, ...

  8. Java咖啡馆(2)——第一杯咖啡

    序言 2004年4月2日,微软和Sun公司突然宣布,微软以19.5亿美元的代价与Sun化干戈为玉帛,以平息Sun公司针对微软的反托拉斯诉讼和专利诉求.同时,还与Sun公司达成一项期限长达10年的协议, ...

  9. 15元钱一杯咖啡,喝完后两个空杯换一杯,问:你有100元钱,最多可以喝到几杯咖啡

    15元钱一杯咖啡,喝完后两个空杯换一杯,问:你有100元钱,最多可以喝到几杯咖啡 public static void main(String args[]){int count = 100/15; ...

最新文章

  1. 京东发布农民丰收节交易会大数据 互联网谋定现代农业
  2. [原]关于在 iOS 中支持 DLNA
  3. rails table html,Ruby on Rails:如何将字符串呈现为HTML?
  4. 项目合作| 视频监控解决隧道洗车线的安全问题
  5. jQuery中bind,live,delegate与one方法的用法及区别
  6. Java字符串分割到map_如何在Java中按空格分割字符串并以键值形式存储在map中?...
  7. Lua5.1中的API函数
  8. 编译OpenJDK8:configure: Could not compile and link with freetype. This might be a 32/64-bit mismatch.
  9. java设计模式之用王者荣耀打开观察者模式(附代码实例)每天一学设计模式
  10. 数据结构基础——城市链表
  11. USB PD快充协议
  12. C语言 计算个人所得税
  13. excel公式编辑器_Excel如何用函数公式制作随机抽奖小程序
  14. Python学习 之 tenacity重试模块
  15. python实现雪花动态图_python实现雪花飘落效果
  16. PHPMailer远程命令执行漏洞复现
  17. python缩进可以用在任何语句之后_Python程序中,缩进表达所属关系,在缩进的前一行最后,需要使用符号 Python 语句中增...
  18. Android硬件通信之 蓝牙通信
  19. 备战数学建模1——MATLAB矩阵,二维图、三维图!(超级全面易懂)
  20. 软件开发公司管理手册

热门文章

  1. 读书印记 - 《注意力经济:如何把大众的注意力变成生意》
  2. Loj 【CQOI 2006】简单题,mmp
  3. POJ C程序设计进阶 编程题#3:运算符判定
  4. spring线程并发处理(ThreadLocal)
  5. PieLove 之 数据分析帝.(ZZ)(is2120)
  6. .net生成excel并弹出保存提示框(转载)
  7. Android相机的实现
  8. C# 中的常用正则表达式总结
  9. 在SQL Server中sqlserver,access,excel之间数据如何使用sql语句直接操作
  10. 收敛标准对卷积核数量最优值的影响