上一页 1 ··· 53 54 55 56 57 58 59 60 61 ··· 65 下一页
摘要: 对于CPU来说,它的工作可分为获取指令、解码、运算、结果几个步骤。其中前两步由指令控制器完成,后两步则由运算器完成。按照传统的方式,所有指令按顺序执行,先由指令控制器工作,完成一条指令的前两步,然后运算器工作,完成后两步,依此类推……很明显,当指令控制器工作时运算器基本上处于闲置状态,当运算器在工作时指令控制器又在休息,这样就造成了相当大的资源浪费。于是CPU借鉴了工业生产中被广泛应用的流水线设计,当指令控制器完成了第一条指令的前两步后,直接开始第二条指令的操作,运算器单元也是,这样就形成了流水线。流水线设计可最大限度地利用了 CPU资源,使每个部件在每个时钟周期都在工作,从而提高了CPU的运 阅读全文
posted @ 2011-07-17 14:19 Lunaa 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 对于CPU来说,它的工作可分为获取指令、解码、运算、结果几个步骤。其中前两步由指令控制器完成,后两步则由运算器完成。按照传统的方式,所有指令按顺序执行,先由指令控制器工作,完成一条指令的前两步,然后运算器工作,完成后两步,依此类推……很明显,当指令控制器工作时运算器基本上处于闲置状态,当运算器在工作时指令控制器又在休息,这样就造成了相当大的资源浪费。于是CPU借鉴了工业生产中被广泛应用的流水线设计,当指令控制器完成了第一条指令的前两步后,直接开始第二条指令的操作,运算器单元也是,这样就形成了流水线。流水线设计可最大限度地利用了 CPU资源,使每个部件在每个时钟周期都在工作,从而提高了CPU的运 阅读全文
posted @ 2011-07-17 14:19 Lunaa 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 为什么Intel处理器主频这么高,而AMD处理器主频都很低?是不是AMD处理器性能不如Intel?我们一般的回答都是,因为Intel处理器与AMD处理器内部构架不同,所以导致了这种情况,还有一种具体一点的回答就是因为Intel处理器流水线长,那到底流水线与CPU主频具体有什么关系呢?今天给大家带来一篇我以前刊登在《电脑报》硬件板块技术大讲堂版面的一篇原创文章。关于CPU流水线的知识,很多报纸杂志都介绍过了,但以往的很多文章对某些问题的解释不够清楚,比如报纸杂志上曾多次提及增加流水线级数有利于提高CPU主频,但对其原因的解释却少有触及,又比如对于流水线的级数与其周期的关系是什么?CPU流水线与工 阅读全文
posted @ 2011-07-17 14:17 Lunaa 阅读(854) 评论(0) 推荐(0) 编辑
摘要: 为什么Intel处理器主频这么高,而AMD处理器主频都很低?是不是AMD处理器性能不如Intel?我们一般的回答都是,因为Intel处理器与AMD处理器内部构架不同,所以导致了这种情况,还有一种具体一点的回答就是因为Intel处理器流水线长,那到底流水线与CPU主频具体有什么关系呢?今天给大家带来一篇我以前刊登在《电脑报》硬件板块技术大讲堂版面的一篇原创文章。关于CPU流水线的知识,很多报纸杂志都介绍过了,但以往的很多文章对某些问题的解释不够清楚,比如报纸杂志上曾多次提及增加流水线级数有利于提高CPU主频,但对其原因的解释却少有触及,又比如对于流水线的级数与其周期的关系是什么?CPU流水线与工 阅读全文
posted @ 2011-07-17 14:17 Lunaa 阅读(1797) 评论(0) 推荐(0) 编辑
摘要: 比如你用local在栈上定义了一个局部变量LocalVar,你知道实际的指令是什么么?一般都差不多像下面的样子: push ebp mov esp, ebp sub esp, 4 现在栈上就有了4各字节的空间,这就是你的局部变量。 接下来,你执行mov LocalVar, 4,那么实际的指令又是什么?是这样: mov dword ptr [ebp-4], 4 于是,这个局部变量的“地址”就是ebp-4——显然,它不是一个固定的地址。现在需要将它的“地址”作为参数传给某个函数,你这样写: invoke/call SomeFunc, addr LocalVar 实际生成的指令是: lea eax, 阅读全文
posted @ 2011-07-14 22:40 Lunaa 阅读(462) 评论(0) 推荐(0) 编辑
摘要: 比如你用local在栈上定义了一个局部变量LocalVar,你知道实际的指令是什么么?一般都差不多像下面的样子: push ebp mov esp, ebp sub esp, 4 现在栈上就有了4各字节的空间,这就是你的局部变量。 接下来,你执行mov LocalVar, 4,那么实际的指令又是什么?是这样: mov dword ptr [ebp-4], 4 于是,这个局部变量的“地址”就是ebp-4——显然,它不是一个固定的地址。现在需要将它的“地址”作为参数传给某个函数,你这样写: invoke/call SomeFunc, addr LocalVar 实际生成的指令是: lea eax, 阅读全文
posted @ 2011-07-14 22:40 Lunaa 阅读(147) 评论(0) 推荐(0) 编辑
摘要: C++语言中经常会提到POD,就是plain old data的缩写。那么究竟什么是POD呢维基百科上的解释:http://en.wikipedia.org/wiki/Plain_Old_Data_StructuresA plain old data structure (POD) is a data structure that is represented only as passive collections of field values, without usingencapsulation or other object-oriented features.Plain old da 阅读全文
posted @ 2011-07-14 22:17 Lunaa 阅读(458) 评论(0) 推荐(0) 编辑
摘要: C++语言中经常会提到POD,就是plain old data的缩写。那么究竟什么是POD呢维基百科上的解释:http://en.wikipedia.org/wiki/Plain_Old_Data_StructuresA plain old data structure (POD) is a data structure that is represented only as passive collections of field values, without usingencapsulation or other object-oriented features.Plain old da 阅读全文
posted @ 2011-07-14 22:17 Lunaa 阅读(659) 评论(0) 推荐(0) 编辑
摘要: 最近碰到个需求,计算游戏得分的规则,类似这样:游戏人数第一名获得赌注第二名获得赌注第三名获得赌注第四名获得赌注二人100%0%——二人(出现2个第1名时)50%50%三人70%30%0%—三人(出现3个第1名时)33.3333%33.3333%33.3333%三人(出现2个第1名时)50%×20%............这些奖励规则没有什么规律,随着人数增多,就越发复杂了,并且业务人员可能随时改变这些规则。显然,奖励规则可以采用策略模式,定义策略接口,根据游戏人数定义不同的规则,本质上就是利用动态的多态调用。可以想见,还是少不了复杂的case...when语句,以及繁多的代码。恰好最 阅读全文
posted @ 2011-07-13 20:57 Lunaa 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 最近碰到个需求,计算游戏得分的规则,类似这样:游戏人数第一名获得赌注第二名获得赌注第三名获得赌注第四名获得赌注二人100%0%——二人(出现2个第1名时)50%50%三人70%30%0%—三人(出现3个第1名时)33.3333%33.3333%33.3333%三人(出现2个第1名时)50%×20%............这些奖励规则没有什么规律,随着人数增多,就越发复杂了,并且业务人员可能随时改变这些规则。显然,奖励规则可以采用策略模式,定义策略接口,根据游戏人数定义不同的规则,本质上就是利用动态的多态调用。可以想见,还是少不了复杂的case...when语句,以及繁多的代码。恰好最 阅读全文
posted @ 2011-07-13 20:57 Lunaa 阅读(160) 评论(0) 推荐(0) 编辑
上一页 1 ··· 53 54 55 56 57 58 59 60 61 ··· 65 下一页