自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

木兮清扬的博客

山有木兮,婉约清扬 weibo.com/muxiqingyang

  • 博客(54)
  • 资源 (2)
  • 收藏
  • 关注

原创 连载:编写高效代码(14) 程序、数据访问符合Cache的时间、空间局部性

Cache正是利用了程序、数据访问时的时间局部性和空间局部性,为了使Cache的访问效率最高,程序和数据的组织,也应该要符合这两个特性。最典型的例子就是二维数组的访问,下面就是一个二维数组:二维数组        如果a[i][j]在Cache中,那么a[i][j+1]就很可能也在Cache中,但是a[i+1][j]则不一定。于是代码这样写就不太好: for(j=0; j

2011-12-15 23:11:36 5424 2

原创 连载:编写高效代码(13) 数据对齐访问

在32位处理器中,一个int型变量占4个byte,假设这个变量i在内存中占据2、3、4、5这4个byte的位置,如下图所示。 数据非对齐存储        内核在访问这个数据时,会先将从0开始的4个byte读入到寄存器A中,再将从4开始的4个byte读入到寄存器B中,再将有效的数据拼成一个int数据,放在寄存器C中,可见,这种访问效率是多么的低下啊,如果变量i存储在从0开始的4个byt

2011-12-14 22:34:48 4762

原创 连载:编写高效代码(12) 优化内存访问——别让包袱拖垮了你

从理论上看,每条运算指令的执行时间都很短,大多数指令一个Cycle就能完成,很多时候还能一个Cycle执行多条指令,可是实际上,执行指令只是处理器要做的很少一部分工作,处理器还要从存储器中取指令,从存储器中将数据导入到寄存器中,等算完后,再将结果存入到存储器中。        处理器运算的速度像兔子赛跑一样快,但是存储器的访问速度像乌龟走路一样慢,而且越是远离内核的存储器,访问速度越慢。

2011-12-13 21:20:19 4078

原创 连载:编写高效代码(11) 尽量减少分支

我们在介绍处理器时,已经知道了,现在的处理器都是流水线结构,if和switch等语句会带来跳转,而跳转会打乱流水线的正常执行,影响程序的执行效率。         下面这段代码,把奇数赋一个值,把偶数赋一个值,可以用这种方式实现: for(i=0; i<100; i++){ if(i%2 == 0) { a[i] = x; }

2011-12-09 22:39:09 3321

原创 连载:编写高效代码(10) 在精度允许的条件下,将浮点数定点化

浮点指令要比定点指令慢很多,功耗也大很多,在精度要求不那么高的情况下,就可以将浮点数定点化,用定点指令来代替浮点指令,一个典型的例子就是alpha混合。        《反恐精英》是很多人非常喜欢的游戏,在下面的游戏截图中,一个人扔了个烟雾弹,画面呈现出半透明的烟雾效果,随着时间的推移,烟雾逐渐散去,画面恢复到原来的状态。        这种效果如果让美工来实现,那会把人累死,其实这种效果

2011-12-08 19:58:06 5163

原创 连载:编写高效代码(9) 减少处理器不擅长的操作——不要逼我做我不喜欢的事情

尺有所短,寸有所长,每种处理器都有自己擅长与不擅长的操作。        在与处理器配套发布的指令集手册中,都会描述每个指令的执行周期,单周期指令是处理器最喜欢的,不仅执行时间短,而且利于流水线执行。加、减、逻辑运算等,常常是单周期指令,乘、除、分支指令、浮点指令、内存存取操作等,常常需要较多的时钟周期。我们在编程时,就应该少使用执行时间长的指令。        Q:这些复杂指令都有它的用

2011-12-07 21:54:32 3486 1

原创 连载:编写高效代码(8) 空间换时间——我们总是在走,却忘了停留

时间和空间的关系,是霍金这种智商的人要研究的东西,我们只需要知道,在编程时,空间是可以换时间的,时间也是可以换空间的。         李开复在他的自传《世界因你不同》中描述了他小时候在美国学校里的一个故事,老师出了道题:“谁知道1/7等于多少?”小开复马上大声回答:“0.142857”,老师和同学们都惊呼开复是个天才,其实事实情况是,开复以前在台湾时就记下了这个答案。这就是一个典型的以空间(

2011-12-06 19:06:48 4468 1

原创 连载:编写高效代码(7) 减少函数调用——不要老打断我

函数是结构化程序设计的产物,它使代码更加模块化,耦合性更低,重用性更高。不过,函数调用会带来额外的开销,除了引起跳转外,还会产生额外的指令。        人都有这样的经验,做一件事情时,如果被人打断,重新再回来做这件事情,就需要一段恢复时间,如果老是被打断,那事情就没法做了。函数调用也是这样,要进行参数压栈出栈、寄存器保存、指令跳转等。多个步骤如果程序的性能要求较高,就可以将一些小的函数直接

2011-12-05 19:43:44 5196 1

原创 《大话处理器》书友评价

China-Pub VIP 一级评论员 54yuri 不错,看了作者介绍,发现作者涉猎很广,能融汇贯通、深入浅出的讲清楚这么底层的东西确实不是一般牛人能够做到的,我最大的收获来自两个方面1)书中不仅讲解知识,还穿插了大量的历史,这点对技术的理解来说非常重要。很多时候我们只知道某某标准,却不知道这个标准背后的故事 -- 都是利益之争、用户之争。当我们明白了这些之后再去看一些技术标准,就不

2011-10-17 20:42:08 3065 1

原创 《大话处理器》输出到台湾了

台湾是中国半导体最成功的省份,《大话处理器》上市不过10余日,已被台湾佳魁出版社购买繁体版权,输出到台湾了。

2011-10-08 19:27:49 3290 1

原创 《大话处理器》勘误

虽然已经很仔细的检查了很多遍,不过错误还是没法避免,有的是本书内容的问题,有的是出版社后期排版,美编修改图片,以及印刷时,导致的问题,这些错误可能会影响读者的阅读,在此对读者朋友说一声对不起,后续印刷会改正过来,读者朋友如果发现了新的问题,以及写的不好的地方,或者想要增加什么内容

2011-09-29 23:18:12 3244 1

原创 《大话处理器》ppt

http://ishare.iask.sina.com.cn/f/19800840.html

2011-09-24 19:55:57 4682

原创 《大话处理器》销售成绩(当当新书热卖榜 计算机/网络类 第一名)

9.23到货------从新书榜下架,当当新书热卖榜  计算机/网络类  第一名   当当  图书畅销榜>计算机/网络>计算机体系结构 近7日畅销榜   第一名   china-pub  计算机 计算机组织与体系结构类  近7日排行 第一名 京东商城 计算机与互联网 > 计算机理论、基础知识   第2名 卓越亚马逊  计算机与互联

2011-09-24 19:06:08 3646

原创 处理器——半导体巅峰,纵横四十年

《大话处理器》序三  处理器——半导体巅峰,纵横四十年                处理器,这个半导体科技的最前沿,在过去40年的信息化浪潮中充当了发动机的核心角色。它是如此高贵、而又如此普及,各国政府争相投资,普通家庭却人人拥有;它是如此流行、而又如此神秘,不只工程师

2011-09-21 21:33:20 3727 1

原创 《大话处理器》连载——微架构(22) Superscalar处理器实例——Intel P4 CPU

奔4处理器是Intel的经典之作,它是采用乱序执行内核的超标量处理器。P4采用的微架构称为NetBurst,基本结构如下: 奔4处理器微架构的基本结构       奔4处理器微架构被分成了4大部分:      •     存储子系统(Memory subs

2011-09-19 19:02:42 4620 1

原创 《大话处理器》相关主题汇总

《大话处理器》网上主要购买渠道:(持续更新ing)京东商城  http://book.360buy.com/10839552.html当当网  http://product.dangdang.com/product.aspx?product_id=22489224&ref=search-1-pub#extract卓越亚马逊    http://www.amazon.cn/%E5%A

2011-09-03 11:44:22 11734 4

原创 《大话处理器》序二

最近有个MM问我,她是非专业人士,也想买这本书,不知道能不能看懂?其实这本书的定位就是科普读物,面向普通大众,只是“处理器”这个名字太专业,以至于很多读者都望而却步。下面这篇序正好反映了我的写作初衷。序    发明第一台计算机的科学家们在发明当初应该不会想到,

2011-08-31 23:42:45 2730

原创 《大话处理器》序一与当当网预售地址

当当网预售链接序一  寻宝处理器的引人入胜之旅        当出版社的编辑介绍万木杨的这本书给我时,我对书名《大话处理器》是有一定担心的,其一:处理器和计算机的发展几十年来风起云涌,其间有天才的创新、看似偶然的分叉和囿于商业市场考量的成功与失败,一部技术发展史绝不比波谲

2011-08-29 21:24:57 3470 1

原创 《大话处理器》连载——微架构(21) 指令并行的“绿营”和“蓝营”

程序是由一系列指令组成的,如果要节省执行的时间,最直接的方法就是将指令并行起来执行。在处理器内部通常有很多的执行单元,如加法单元、乘法单元、内存访问单元、浮点运算单元等等,每种执行单元负责一类具体的指令。在前面介绍的乱序执行内核中,每个cycle最多只发射一条指令,即使有时很多指

2011-08-29 21:16:54 3913

原创 《大话处理器》连载——微架构(20) 处理器并行设计——Flynn分类

处理器就是处理一系列指令和数据的设备,因此,从指令和数据这2个维度,可以对处理器的系统结构分类。1966年,Flynn将处理器系统结构分成了如下4类:Flynn分类        SISD(single instruction single data),一次处理一

2011-08-26 21:54:37 4419

原创 《大话处理器》连载——微架构(19) 乱序执行总结

简单来说,指令在乱序执行内核中的处理过程可分为3个步骤:  指令乱序执行步骤 乱序执行步骤 In-order issue顺序发射,负责安排任务Out-of-order execut

2011-08-25 22:06:10 6654 4

原创 《大话处理器》连载——微架构(18) 指令的顺序提交

在指令的执行过程中,通常会有中断和异常产生,例如在下面这个例子中, 中断例子         XOR指令执行完后,来了一个中断,中断处理一般都是将处理器的ISA寄存器压栈,执行中断服务程序,然后再退回来执行中断后面的指令。精确中断(Precise Interrupt)

2011-08-24 23:01:30 2719

原创 《大话处理器》连载——微架构(17) 指令调度

在前面乱序设置陷阱的利子中,如果没有那个聪明的士兵,乱序也就无从谈起。同样,处理器的乱序执行内核也需要一个调度器,分析指令间中的相关性,分析指令什么时候能开始执行。       指令什么时候能开始执行呢?       对于一条指令来说,它有操作码和操作数,操作码描述指令要

2011-08-23 21:00:02 2169

原创 《大话处理器》连载——微架构(16) Buffer的作用——去耦合

在顺序执行内核中,指令依次流经各个流水线单元,不需要进行缓存,而为了要能乱序执行,首先需要一个Buffer来缓存还没有执行的指令,然后在这个Buffer中去调度指令的执行顺序。乱序执行内核的基本模型如下: 乱序执行基本结构         现代处理器中有大量的

2011-08-22 22:37:22 2234

原创 《大话处理器》连载——微架构(15) 寄存器重命名

寄存器不能随便改名字,否则原来的数据依赖关系被打乱,会导致错误的执行结果,那么怎样才能既保留原先的数据依赖关系,又能将没有数据依赖性的指令的寄存器改名字呢?这里介绍一种在处理器中经常实现的策略:1.         将每条指令的目的寄存器映射到新的物理寄存器;2.

2011-08-21 21:56:50 5654

原创 《大话处理器》连载——微架构(14) 去伪相关——让伪军投诚

什么名字前面加个伪总不太好,就像日伪军,虽然不是日本军,但是也是敌军,也需要被消灭。好在伪军很容易投诚,不像日军那样顽固,誓死效忠天皇。在指令相关中,数据相关就是日军,伪相关就是伪军,可以想办法让伪相关投诚,变成不相关。数据相关和伪相关  处理器的IS

2011-08-18 22:39:29 2126 1

原创 《大话处理器》连载——微架构(13) 去数据相关和控制相关

这些指令的相关性限制了指令的乱序调度与并行调度,需要去除这些相关以达到较好的指令调度。(1) 去数据相关        数据相关在代码中肯定是有的,如果每条语句都没有数据相关,那么它们就不能组合起来完成一项任务。不过,数据相关虽然不能完全消除,但是可以适当减少。例如这段代

2011-08-17 20:43:52 2356

原创 《大话处理器》连载——微架构(12) 指令的相关

相关是影响乱序调度的罪魁祸首,如果指令2的执行需要依赖指令1的结果,我们就说这2条指令是相关的,指令2必须在指令1后面执行,无法乱序。       下图描述了指令间的相关性:指令的相关性 (1) 寄存器相关        当2条语句没有共用寄存器时,它们之间是

2011-08-16 20:01:06 3166

原创 《大话处理器》连载——微架构(11) 从顺序执行到乱序执行——因时制宜

话说有一日,项羽率兵来打刘邦,刘邦命士兵在城外3个路段分别设3个陷阱,刘邦给出如下的指令:  攻城战       偏巧那一日路段1下雨没干,没法设置陷阱,众士兵就准备在那里等待,这时一个聪明的士兵就说:“敌军不日即来攻城,与其众人在此等待,何不先将陷阱设于

2011-08-15 20:12:59 5167 2

原创 《大话处理器》连载——微架构(10) 分支预测实现与条件执行

(2) 分支预测实现       算法是基础,有了算法后,就可以在处理器中实现分支预测功能。Intel的分支预测模块包含了3个单元:       1.         Branch Target Buffer(BTB)       2.         The Sta

2011-08-14 21:19:52 5364

原创 《大话处理器》连载——微架构(9) 分支预测——以古为镜,可以知兴替

高级语言中的for、if、else、switch等等,都是通过跳转来实现的。正是由于计算机指令中具有能够改变程序流向的指令,才使得程序结构灵活多样,程序功能丰富多彩。例如下面这个for循环:for循环在x86上的汇编实现        在这个for循环例子中,jmp是

2011-08-11 22:21:12 4739 1

原创 《大话处理器》连载——微架构(7) 流水线上的冒险——数据冒险

(2) 数据冒险        流水线使原先有先后顺序的指令同时处理,当出现某些指令的组合时,可能会导致指令使用了错误的数据。看下面这个例子:寄存器访问的数据冒险         add R1,R2,R3将寄存器R2和R3的和赋给R1,add R4,R1,

2011-08-09 21:01:13 7096 1

原创 《大话处理器》连载—PC机结构探秘(7)显示设备——脸面(2)

(4) 多屏多屏电脑       一般的电脑只有一个屏,不过这种苹果的新概念电脑有3个屏。中间的屏幕玩游戏,左边的屏幕聊天,右边的屏幕看电影,真是绝配! (5) 卷轴显示屏左边为伸展开的电脑,右边为卷好的电脑        这种新概念电脑可以将显示屏卷

2011-08-08 19:28:02 5236 4

原创 《大话处理器》连载——微架构(6) 流水线上的冒险——免不了磕磕绊绊

人生路上总是磕磕绊绊,流水线也一样。流水线中每个节拍硬件被充分利用,这只存在于理想的乌托邦中,现实总会出现这样或那样的问题,让原本顺畅的流水线出现停顿,断断续续。这些导致流水线出现停顿的因素称为流水线冒险(Hazard)。下面我们就来看看哪些情况会导致流水线停顿,以及怎样解决这些

2011-08-08 19:16:07 3407 1

原创 《大话处理器》连载——微架构(5) DSP更深的流水线

不同的处理器会有不同的流水线划分。在TI C6000 DSP中,所有指令的执行都可分为Fetch(取指)、Decode(译码)、Execute (执行)3个大的步骤,每个大的步骤又可以细分为一些小的步骤: C6000流水线节拍 DSP流水线描述

2011-08-07 22:35:48 4123

原创 《大话处理器》连载——微架构(4) 史上最经典的5级流水线

处理器内部有很多通用寄存器,这些寄存器用来存储指令的操作数,它对程序员可见,如x86有8个通用寄存器,RISC处理器则更多,常有32个或64个等等。这一堆寄存器也被叫做Register file(寄存器堆)。        在流水线设计中,为了确保不同流水线节拍不会相互影响,

2011-08-04 23:02:53 11905 1

原创 《大话处理器》连载——微架构(3) 从子弹射击到指令执行

子弹的射击过程,可以被分成3个步骤:上膛、瞄准、射击。指令的执行过程,其实也可以划分为类似的3个步骤:取指、译码、执行。指令的执行过程和射击过程的类比        指令存储在内存中,要被加载到内核中,这个过程就是取指。         指令是经过一定格式编码的,

2011-08-04 22:49:45 2958

原创 《大话处理器》连载——微架构(2) 顺溜流水线的深入分析

在上一节中,顺溜已经告诉了我们流水线的基本概念,顺溜将整个射击过程分成了2个步骤(术语称之为节拍),两个步骤可以并行起来执行,只是时间上进行了些许的错位,这就是流水线的本质。        这条流水线被划分成了2个节拍,也就是2级流水线,于是我们引出了流水线的第一个问题:流水

2011-08-04 22:41:13 2875

原创 《大话处理器》连载——微架构(1) 顺溜的2级流水线

2009年央视有部热播大剧:《我的兄弟叫顺溜》。剧中顺溜是一个神枪手,里面有一个场景,当鬼子来袭击部队时,顺溜向团长建议,给自己配2个人装弹,自己专门负责打枪。 《我的兄弟叫顺溜》剧照         从直观的思维来看,有人帮顺溜装弹,则顺溜有更多的时间来射杀

2011-08-03 22:46:22 2759

原创 《大话处理器》连载—PC机结构探秘(6)显示设备——脸面(1)

女生们常说男人是视觉动物,并对此表示不满,不过大家看《非诚勿扰》时就会发现,当男嘉宾容貌一般时,女生们的问题通常比较犀利,说话的语气也不那么注意,而要是有一个很帅的男嘉宾出现时,女生们则都改作温柔状,说话的语气、提出的问题都要柔弱很多,以免引起不好的印象。        从上

2011-08-01 20:10:48 2026

科普读物《大话处理器》图文目录

科普读物《大话处理器》印刷时采用的图文目录

2011-08-31

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除