电动窗帘的技术原理是什么?

电动窗帘的技术原理是什么?

电动窗帘的技术原理是什么?

电动窗帘是指通过主控制器遥控开启或关闭的窗帘(汽车窗帘、家装窗帘。办公窗帘、会场窗帘)。电动窗帘除了能保护乘客隐私,实现单向透视以外,它的主要功能还是隔热、阻挡紫外线、调节采光。电动窗帘的工作原理是什么大家清楚吗?

一、核心部件:电机。电动窗帘的主要工作原理是,通过一个电机来带动窗帘延着轨道来回运动,或者通过一套机械装置转动百叶窗,并控制电机的正反转。其中的核心就是电机,现在市场上电机的品牌和种类很多,但最终就是无非两大类:交流电机和直流电机。

二、窗帘开关:要实现自动窗帘控制除了窗帘电机还需要窗帘开关(窗帘控制器),无线窗帘开关可以直接替换传统开关进行安装,无需布线。接入的AC220V电压,能控制交流窗帘电机的正反转,接线柱“L”接220V电源线的火线;接线柱“N”接220V电源线的零线; 接入直流电机正反可以控制直流电机的正反转,输出端“L”接线柱接电机正转相;输出端“N”接线柱接电机反转相。

三、电机设置:要调节好电机的行程,用户窗子的长度是不同的,这就对窗帘电机在轨道上的运行范围进行调节(百叶窗一般转动90度),具体调节方法请参照电机的生产厂家的说明书。

每一个窗帘开关都有一串单独编码,与智能网关通过无线连接,网关通过有线方式与与家里的路由器对接。消费者只要在手机中下载智能家居APP,就可以通过手机远程操控窗帘。

比如,在炎热的夏日中午,准备从公司回家,这时就可以提前用手机将家里的窗帘全部关上,提前打开室内空调(配合智能插座即可),这样回家就可以享受舒适的温度了。还可手动拽动窗帘,稍微施力,窗帘就会自已全关全开。

客厅,越是极简,越是大气,23个客厅极简设计欣赏

客厅,越是极简,越是大气,23个客厅极简设计欣赏

建筑师密斯·凡德罗说过

这样一句话:

“少即是多”,

这是一种提倡简单,

反对过度装饰的设计理念 !

客厅,极简主义成潮流新风尚!

它是经过深思熟虑的创新所得出的设计思路的延展

它凝结着设计师的独具匠心,既美观又实用 !

客厅,越是极简,越是大气,23个客厅极简设计欣赏

越是极简,越是奢华,

能够经得起时间的推敲!

如果你的客厅不懂得如何装饰,

可以采用素雅或者白色,

极简也是一种张扬….

客厅,越是极简,越是大气,23个客厅极简设计欣赏

在顶级的设计师眼里,

给设计做减法,

用最少的表达,最大化赋予空间更多的想象

其实也需要精湛的设计提炼!

客厅,越是极简,越是大气,23个客厅极简设计欣赏

客厅,越是极简,越是大气,23个客厅极简设计欣赏

客厅,越是极简,越是大气,23个客厅极简设计欣赏

客厅,越是极简,越是大气,23个客厅极简设计欣赏

极简,是顶尖级别的勇气!

不心慌、不献媚

不凑数、无喧哗……

它富于客厅最好的会客状态。

客厅,越是极简,越是大气,23个客厅极简设计欣赏

客厅,越是极简,越是大气,23个客厅极简设计欣赏

如今,北欧风客厅也走极简路线的颇多,

用大面积的色块,

空间不超过4种颜色,铺陈极简之美!

客厅,越是极简,越是大气,23个客厅极简设计欣赏

客厅,越是极简,越是大气,23个客厅极简设计欣赏

略带工业风的极简,

成为复古家居流的一缕清风,

这样的极简,足以颠覆一切浮夸的时尚!

客厅,越是极简,越是大气,23个客厅极简设计欣赏

客厅,越是极简,越是大气,23个客厅极简设计欣赏

黑白灰,

成为喜爱极简家居的主色调,

客厅空间越是宽敞,其视觉设计张力就越大!

客厅,越是极简,越是大气,23个客厅极简设计欣赏

客厅,越是极简,越是大气,23个客厅极简设计欣赏

给设计做减法,也是给生活做减法!

削减不必要的元素来展示最原本的信息,

只因使用了最小限度的表现,

反而扩宽了观者想象的空间!

用极简替代华丽,

是一次心灵的清空之旅,

用在客厅,

让宾主皆欢!

当然,得体的壁画,

舒适的抱枕、优雅的沙发形态,

是极简风潮的最好助力。

“算计”vs“反算计”?年轻人让算法走出玄学、为我所用

“算计”vs“反算计”?年轻人让算法走出玄学、为我所用

“算计”vs“反算计”?年轻人让算法走出玄学、为我所用

 

说起对算法的看法,英语讲师朝阳打开了话匣子,并且面带囧色讲起了一段往事。而他讲述的故事,也成为懂懂笔记最近关于“算法与我们”这一话题中,最为有趣的内容之一。

1、算法对面:有人享受有人烦

“应该算是两年前发现的吧,我有一次偶尔在网上购物的时候,多看了几眼情趣用品,当时也没太在意。”朝阳的笔记本电脑是单位和家里两头都用的,有天周末在家时,老婆用他的电脑上了这个网站买东西,结果浏览了几个页面后,老婆突然指着电脑面带讽刺地说到,“哟,看不出来你还琢磨这些东西哪!?”

朝阳看着网站页面上那句“您是不是想找:”后面的几条推荐商品,以及浏览其他商品内容时不断出现的“推荐链接”,满脸尴尬。好不容易糊弄过去,在打开搜索引擎时又发现,这上面的广告也是这些商品的推荐。这时候他才醒悟过来,自己被算法“算计”了。

“从那以后,我再去购物什么的,万一不小心又点了‘有趣’的用品,嘿嘿,我就刻意去打开好多其他数码和笔记本的页面,直到看不到相关推荐和链接。”至于为什么他老是在购物时不小心点击了那些商品,朝阳没有告诉懂懂笔记,只是语重心长地说了一句,“上网看啥都注意别留痕迹”。

算法可能会在无意中“泄露”用户的隐私,也可能被用作“大数据杀熟”,这让有些人颇为忌惮;更常见的情况是幼稚算法所推荐的垃圾内容,令人不厌其烦。算法水平的表现,已经成为与用户体验息息相关的重要因素。

因此,也有不少人很享受算法来揣摩自己的喜好,为自己“跑腿”办事。有时,还能带来惊喜。

晓晴是一位设计专业的大三学生,她告诉懂懂笔记,自己平时上下班坐地铁时喜欢听一些北欧民谣风的歌曲,英文或是国语的都喜欢,“我发现手机上这(应用)里面Sissel和Lene Marlin的歌曲有不少,打开直播,发现也会推荐一些类似的歌曲,我就不断点播其中一些相近的,现在登陆上去直接自动去播放推荐歌曲,一路上特别享受。” 为了让应用能够更懂自己,有时她甚至会刻意通过增加浏览和点击自己喜欢的内容,来反复“训练”算法。

不过晓晴也坦言,在某些时候会显现自己的另一面,比如在跑步和健身房,就更喜欢用一些House风格电子音乐来强化氛围,为此还专门区分了两个手机的APP使用场景。“我以前是两个注册号,另一个号登陆后就只点选这些电子舞曲,现在两个号各用一个手机,更方便了。”

实际上,类似在线音乐、点餐、订房这类应用,很多年轻人都在刻意训练App能够更懂自己的心意,更快地挑选出自己的“最爱”。晓晴的同学刚子就告诉懂懂笔记,他寒暑假常和朋友去南方的城市背包旅行,因为他们最喜欢工业风的民宿,所以在选定城市后,输入好价格区间,应用就会首先推荐他们喜欢的民宿到首选项,“这样省时省力,我也懒得一页一页去找,基本上看到风格很棒价格合适就定了。”刚子笑称,他的很多朋友在使用音乐类、短视频类应用时,都喜欢花些时间,去训练应用更“懂得”自己。

当然,并不是所有人都乐于被算法惯得“变懒”。周捷就是一位坚决和“信息茧房”斗争的自媒体人。“我几乎订阅了所有的新闻资讯类应用,但是我很讨厌被算法框框住。”周捷平时的写作内容基于生活百态,经常写一写社会热点话题的评论,因此他的阅读量不仅大而且庞杂,在发现经常阶段性阅读一些热点话题后,很多应用的推送变得非常局限,让他觉得很不自在,他在自己的文章里也是经常对“信息茧房”进行批评,告诉别人“在应用里不要懒得翻页,要什么内容都看,避免被算法框住。”

在和不少身边、线上的朋友交流时,懂懂笔记发现,越来越多的具有一定知识结构和接受能力的年轻用户,正在开始意识到算法的存在,并且有目的地与算法进行交互,或是“训练”,或是“反侦查”,目的都是让算法“为自己所用”。当手机、笔记本电脑成为生活中的必用品,工作与生活就必然被算法所渗透,徒劳地拒绝被算法“算计”?还是主动拥抱和改造这些算法?这些有想法的年轻人,正在不断呈现上面所说的精彩故事。

当然,这个现象如今并不普遍,而且这些与算法互相“算计”的群体,或许对数字世界更多的参与者,包括应用开发平台、网络公司和线上营销机构,能带来更大的启发和价值。

在这些用户而言,是想让算法“为我所用”,而对后者,何尝不是如此?

2、发现和拥抱这些“不将就”的聪明用户

信息爆炸时代,“猜你喜欢”的智能推荐,让我们越来越真切地感受到算法的存在和价值。

细述互联网世界里那些市值高达几千亿美元的巨头,又有哪一个不是在大数据和AI的助力下,与上亿用户进行着一场“我想了解你”的竞逐。谷歌手握Android、AlphaGo和Waymo等等好牌,从手机、网络、自动驾驶等等方面持续用技术推动创新;亚马逊从从网上零售开始,直到云服务和新零售,无不以数据作为驱动;Facebook以社交网络连接全球18亿“宅人”,阿里巴巴和腾讯从购物、消费、支付到娱乐,都在渗透着人们生活中的每一个细节。

数据和算法,正在成为更多科技巨头、互联网公司、服务商以及品牌方与大众对话的工具。那么,这些主动站出来与算法打交道的用户,对于所有场内的“玩家”意味着什么,他们会对数字世界的沟通与交互产生哪些影响?他们会被注意到吗?

在华扬数字营销研究院(HDMR)新近发布的《2019中国数字营销行动报告》(以下简称报告)中,我们看到了一些有趣的现象,同时《报告》对“知识青年”这个群体本身以及这个群体产生的影响,也做了相应分析。

虽然《报告》没有明确界定,但HDMR在针对年轻人群持续多年的研究中发现,“知识青年”在数字世界中积极学习新的视角和新的应用,并且常以“问答”的方式向网络求助和学习。

《报告》中提到,来自以色列的未来主义哲学家尤瓦尔·诺亚·赫拉利在中国走红,其所著的《人类简史》、《未来简史》吸引了不少人阅读,其读者群体的特征是——“年收入过百万的占 27.1% ;年收入 8-100 万的占 59.7% ,剩下 13.2% 为低收入人群(或学生群体);他们当中来自互联网、计算机软件、电子游戏等互联网科技行业的关注者相对较多;中青年居多,其中59.2% 都是男性。”

“这些年轻消费者群体,对于与信息化相关的事物更敏感、更活跃。”HDMR研究总监周本能告诉懂懂笔记,在以往大量的调研工作中,他们发现一些年轻消费群体在意识到算法的存在后,开始主动拥抱算法,帮助应用或者网络平台熟悉自己的习惯,以便更准确高效地获得自己想要的产品或者服务。

“不要小瞧他们,更不要忽视他们,因为他们是一群懂得游戏规则的人。”周本能强调,这一群体从普通用户到资深用户,呈阶梯分布,他们具有训练算法 的意识,懂得如何以最小的投入,获得最高的回报。

普通用户会通过训练来强化算法的某些行为,或是通过反向训练,来规避一些他们不需要或者讨厌的功能与服务。而一些资深用户群体,甚至能够左右一些平台、公司或者事件的发展走势。周本能举例,在成熟的“饭圈”里,会有一些专业的粉丝团队,也叫数据组,每天会去观察、收集和分析自己爱豆的线上数据表现,包括爱豆在各大榜单中的排名,舆情变化,比如积极和负面信息的情况。

平时他们就会给粉丝群体发布各种“行动指引”,通过符合规则的手段,去帮助爱豆刷榜、提升排名或是消除负面信息;如果爱豆榜单排名下滑,或者出现负面信息,则会推出更多针对性的“对策”。专业饭圈团队对算法规则的常态运用,也正是算法“为我所用”的一种群体表现。

周本能强调,无论是高阶还是普通用户,这样的群体对于应用开发平台或者互联网企业来说,都是应该重视和维护的重点对象。“因为他们愿意花时间和精力,通过点击、播放、使用你的应用中的功能,来训练你的AI能力,通过输入或者交互留下自己的足迹,帮助互联网企业了解典型用户的需求,这是很有价值的行为,甚至可遇不可求。”

正是因为在意自己的使用体验,这些积极的“聪明人”在训练算法时,其实也在帮助企业不断改进自己的产品和服务。“正是因为你的产品不完善,有一定缺陷,才会有用户主动做一些额外的动作,来训练你的产品。”周本能介绍,一些领先的互联网企业都非常重视此类用户群体,包括通过一些激励方式,与这些用户交朋友。听取他们的问题和需求,针对性地改善算法短板和发现新机会。

3、算法、AI,数字营销的智能化到来

从消费者与算法的斗智斗勇,到应用平台和品牌在营销中利用算法与“不愿将就”的这些用户增强交互,我们可以看到——营销智能化的时代正在到来到来。我们正在面对技术进步、竞争力挖掘以及门槛降低的机会。

周本能表示,首先在数字营销领域,大数据和AI正在成为变革的持续推动力。在内容创意,用户交互、智能推荐等应用场景,营销智能化正在迎来快速迭代,并逐步推进个性化营销的实现。在数字营销的新发展阶段,使用大数据和AI(算法),是进入智能化营销的基础。

其次:算法推荐正在成为数字媒体、电商平台、社交网络等机构和渠道的核心竞争力之一。对身处智能化时代的营销人来说,一方面算法推荐实现了内容/商品的个性化推送,提高转化能力;另一方面,营销人也应该学习理解算法的逻辑,以实现更好的营销目的。尤其是,算法推荐也暴露出审核缺位的问题,辅以人工审核筛选才可以更好地降低风险。

最后,对于希望搭建数字营销体系的传统企业、品牌方而言,算法、AI正在走下神坛。周本能强调,算力、算法、大数据是在智能化营销领域是必备的基础条件,对于一般企业来说,技术应用门槛很高。不过随着带有AI能力的云技术和服务的普及,企业应用人工智能的难度正在大大降低。未来,在营销终端,企业不一定要懂人工智能的高深技术,“很可能只需像使用一个App应用,或是软件产品一样就可以轻松应用”。

算法、大数据已经大量投入实用,AI时代也已经到来。消费者、应用方平台、数字营销企业和品牌方都会面临同样的问题——如何让算法在“为用户所用”的前提下,同时也“为自己所用”?

从追逐流量到重视流量价值和变现,从追求规模化增长到关注深层结构、效率和价值转化,数字营销的活力与焦虑、脑洞与迷思并存。懂懂笔记相信,未来随着平台化推动数字营销的新应用、新技术、新玩法不断落地,相关的底层技术和生态服务将会越来越完善。

面对AI和算法不断涌现的机会和热点,身处智能化时代的你:唯变不变,且行且看。

充满创意与艺术的绿植设计

充满创意与艺术的绿植设计

充满创意与艺术的绿植设计,保证让你眼前一亮

充满创意与艺术的绿植设计

花艺绿植设计作为室内陈设的重要模块,越来越受到设计师和个人的重视。

充满创意与艺术的绿植设计

面对钢筋水泥堆砌而成的生活空间,还有快节奏的生活使我们的越来越脱离自然,

形形色色的室内环境污染正影响着我们的生活,我们越来越渴望接近自然、融入自然。

充满创意与艺术的绿植设计

这不仅是一种时尚的生活态度,更是一种健康的生活方式。

花艺绿植除了能吸收有毒物质、净化空气、驱逐蚊虫等功能性外,还会极大的影响甚至决定家居的整个风格。

创意盆景

充满创意与艺术的绿植设计

绿植装饰

充满创意与艺术的绿植设计

创意装饰

充满创意与艺术的绿植设计

创意盆景

充满创意与艺术的绿植设计
汽车空档滑行伤变速箱吗?变速箱能空挡滑行吗

汽车空档滑行伤变速箱吗?变速箱能空挡滑行吗

大家都知道汽车不允许空档滑行,特别是不允许高速空档滑行。其中的道理一方面是从安全的角度出发,空档滑行时汽车失去了发动机的牵制作用,会越滑越快,单单依靠刹车的作用很难控制车辆,这一点大家都可以理解;另一方面会对变速箱造成损伤,这一点很多人就难以理解了,网络上的很多文章也是语焉不详。今天我就从变速箱内部的结构 及工作原理、运行规律等方面来给大家详细的分析一下,汽车空档滑行时是如何损伤变速箱的。

汽车空档滑行伤变速箱吗?变速箱能空挡滑行吗汽车上的变速箱有五种,分别是手动变速箱(MT)、液力机械变速箱(AT)、无级变速箱(CVT)、双离合变速箱(DCT)和机械式自动变速箱(AMT)。根据其内部结构的不同,可以分为两大类,液力机械变速箱(AT)和无级变速箱(CVT)属于同一类,它们都是用液力变矩器与发动机连接,变速机构是离合器控制的行星齿轮组或锥轮钢带;手动变速箱(MT)、双离合变速箱(DCT)和机械式自动变速箱(AMT)属于同一类,它们都是用离合器与发动机连接,变速机构是普通的外啮合齿轮组。这两类变速箱空档滑行时内部的运行状态是不一样的,损伤的部位也不同。

汽车空档滑行伤变速箱吗?变速箱能空挡滑行吗首先来看看液力机械变速箱(AT)和无级变速箱(CVT)。这两类变速箱都有液力变矩器,内部档位的结合与分离也是由液压控制的,所以这种变速箱需要添加较多的变速箱油,在运行中也会产生大量的热,这些热量需要通过变速箱油散发出去。所以,在这种变速箱上有专门的冷却系统,有一个油泵用来给系统建立压力并带动变速箱油在系统中循环流动,将变速箱内部的热量通过散热器散发出去。

我们来看看这类变速箱空档滑行时的运行状态。当汽车空档滑行时,发动机一般处于怠速状态,所以此时的液力变矩器、油泵、变速箱动力输入轴的转速都比较低,变速箱的输出轴在车轮的带动下高速旋转,变速箱内部的齿轮及离合器片也随之高速旋转,而与输入轴相连的元件转速较低,二者之间有很大的转速差,从而产生大量的热量。但是此时变速箱的油泵转速较低,产生的压力也较低,所以变速箱油循环速度很慢,变速箱内部的热量不能及时散发出去,很容易在变速箱内部产生高温,从而烧损变速箱。

现代简约别墅也有不一样的简约高级美

现代简约别墅也有不一样的简约高级美

阿拉伯联合酋长国别墅

现代简约别墅也有不一样的简约高级美
现代简约别墅也有不一样的简约高级美

Zorka Studio工作室善于在特定的自然环境中,寻找到建筑的结构美学,追求新材料和新工艺,无过多的装饰,推崇科学合理的结构,形式开阔且简洁实用的设计原则,以环境、人体构造和行为习惯为基础演绎现代人的居住生活,“简单”即是最高的设计原则,基于建筑场域“明朗”解读,融入新技术的创新,确保设计创意完美地域生态环境相契合。

现代简约别墅也有不一样的简约高级美
现代简约别墅也有不一样的简约高级美

整体的建筑由三部分组成,景观、大厅,客房和房间,建筑师既要保证四部分建筑的功能与实用性,又要协调门前庭院植物、水体和建筑之间的关系,让它们能保持独立却又紧密相连。

现代简约别墅也有不一样的简约高级美
现代简约别墅也有不一样的简约高级美
现代简约别墅也有不一样的简约高级美

现代别墅提倡突破传统,创造革新。除了重视功能和空间组织,注重发挥结构构成本身的形式美以外,尊重材料的特性,讲究材料自身的质地和色彩的配置效果也是至关重要的一部分。维特鲁威的《建筑十书》曾写道:“自然所创造的一切事物都受到和谐法则的控制,她主要关注的是她所创造的一切应当是绝对完美的。渴望和乐于追求最美的东西乃人之天性。“大理石自然纹理成了整个空间最美的天性。

现代简约别墅也有不一样的简约高级美

 

阿布扎比别墅

现代简约别墅也有不一样的简约高级美
现代简约别墅也有不一样的简约高级美
现代简约别墅也有不一样的简约高级美

大自然对文学、艺术、建筑都有着深远的影响,达芬奇曾说过:“绘画是自然的子孙”,表明他对自然的狂热和崇拜,生态不是纯自然的概念,我们参与其中,与自然一起构建生态。建筑师去探索土壤、水纹、植物、石材、木材在当代建筑的演绎,并将其视为自己的建筑灵感来源。

现代简约别墅也有不一样的简约高级美
现代简约别墅也有不一样的简约高级美
现代简约别墅也有不一样的简约高级美
现代简约别墅也有不一样的简约高级美

建筑师将现代别墅室内空间结合玻璃工艺、石材工艺、木材工艺、铁艺制品、陶艺制品、金属制品等综合运用。注重室内外沟通,竭力给室内装饰艺术引入新意。每个空间都会结合室外景观来进行设计,使得窗外处处有景观。

 

希腊别墅

现代简约别墅也有不一样的简约高级美
现代简约别墅也有不一样的简约高级美

别墅基地环境有着独特的自然风光和良好的朝向,锐利、质感为其表现特点。户外的水体简约美观,在阳光的照射下透着斑驳的光影,传递着满满的美妙与舒适的度假氛围。

现代简约别墅也有不一样的简约高级美
现代简约别墅也有不一样的简约高级美
现代简约别墅也有不一样的简约高级美
现代简约别墅也有不一样的简约高级美

设计旨在将建筑形式与场地相结合,进行扩大,延伸和提升建筑体量,以钢木结构为主,使得空间有足够的发挥余地,灵活而多变,通透自然。大理石石材为介面的延伸,金属线型、木线型产生的动线律感为空间氛围的赋予了鲜活的生命。

 

西班牙别墅

现代简约别墅也有不一样的简约高级美
现代简约别墅也有不一样的简约高级美
现代简约别墅也有不一样的简约高级美

村上春树在《奇鸟行状录》中表现着这样一个寓意:看似平凡的世界,其实隐藏着不为人所知的微妙世界。建筑师设计出发点源自项目选址周边的人文历史、地理气候和当地的景观资源。在设计过程中擅长使用绿化种植、水体景观、采光庭院等设计元素来营造多层次的环境体验。从外面看是一种感受,进入又是一番截然不同的景象,以此表现建筑师对土地的回馈、对无法忘怀的言语及建筑的感知、敏锐又透彻的感性思维。

现代简约别墅也有不一样的简约高级美
现代简约别墅也有不一样的简约高级美
现代简约别墅也有不一样的简约高级美

在郊区住宅缺少与外界的直接联系,葱郁的植物,柔和的阳光,这些让人向往的美景,此刻正包裹者这栋安静的房屋。将山林美景揽入室,室内的设计以木质为主,四面都有着良好的采光,没有笨重的结构,一切都是轻盈、舒适和简洁。

 

西班牙别墅

现代简约别墅也有不一样的简约高级美
现代简约别墅也有不一样的简约高级美
现代简约别墅也有不一样的简约高级美

建筑外墙是由灰砖石和夯土构成,如波浪一样的纹理,视觉效果大气美观,建筑师在设计时充分尊重地方的建筑语言及特色,并通过现代设计手法构造全新住宅形式,使用现代简洁的设计手法营造空间,巧妙且谨慎的利用光线与建筑 之间的灵活变化。室内的设计以木质为主,与建筑的整体自然外观和触感相呼应。

现代简约别墅也有不一样的简约高级美
现代简约别墅也有不一样的简约高级美
现代简约别墅也有不一样的简约高级美
现代简约别墅也有不一样的简约高级美

别墅整体的材质朴质且有一些粗糙感,但是建筑师非常注重结构细节的构成及家具的搭配,做工精致的百叶窗、线条与精致的建筑细节勾勒出文化、艺术及生活品位,使整体居住环境的品质得以提升,传递现代奢华住宅所应有的静谧平和氛围。

昨天去女朋友家,心里有点紧张在门边等,这时门突然开了

昨天去女朋友家,心里有点紧张在门边等,这时门突然开了

1、

我姐:“过年能骗个姑娘回家不?”我:“这个有点难,现在的姑娘都太聪明了。”我姐:“那你被姑娘骗也行啊。”

2、

一哥们说话就结巴,特别是老婆一发脾气,他就结巴得更厉害了。一天他喝得醉醺醺地回到家中,看到妻子像狮子似地瞪着他:“你到哪里去了?”他说:“朋,朋友聚会喝了几盅。” 妻子:“你知道现在几点了?” 他:“一,一点了。” 妻子:“一点?你看看墙上的钟都快三点了。” 正在这时候,挂钟清脆地响了三下。他赶紧说:“奇…奇怪,这钟…钟怎么也变得结巴起来了?”

昨天去女朋友家,心里有点紧张在门边等,这时门突然开了

3、

昨天去女朋友家,心里有点紧张在门边等,这时门突然开了,为了表示礼貌,我叫了句,阿姨你好!看她有些尴尬……岳母你好!还是有点尴尬,难道嫌我太生了!忙改口,妈你好!这时女朋友笑着说,这是我姐!……

4、

老公教我学车,由于紧张两小时了我还是刹车油门弄混,气的他绿着脸吼我。我委屈的说:人家说男人教自己老婆靠吼,教别人老婆靠哄,你就不能耐心点,要么把我当别人老婆呗。这混蛋眼一翻:拉倒吧,人家说的是漂亮老婆。长你这样的,都没有哪个男人会想教……

昨天去女朋友家,心里有点紧张在门边等,这时门突然开了

5、

表妹还单身时,我有意撮合她和我的一个医生朋友,就约她俩一起吃饭。朋友很健谈,气氛很融洽,我正要溜走给他俩制造机会的时候,表妹追出来问:你朋友是做什么工作的?我:精神病医生……我还没说完,表妹抢白道:我看他也是精神病,话这么多!

6、

二姐网上买了一条挺好看的裙子,而且卖家承诺说上传买家秀,点赞的前三名免单送下一季新品,二姐高兴的把自己的买家秀上传了,结果当天卖家就给她打电话求她让删了她的买家秀,二姐没有同意,最后卖家居然下架了那件裙子……

昨天去女朋友家,心里有点紧张在门边等,这时门突然开了

小鸡说:一天一个蛋,菜刀靠边站,一月不生蛋,高压锅......

小鸡说:一天一个蛋,菜刀靠边站,一月不生蛋,高压锅……

1、正在上班,女友发来一条短信:亲爱的,我不行了,医生说我得了绝症我当时就哭了,买了许多他喜欢吃的零食去看他。

到他家后,只见女友虚弱的躺在床上我问到:亲爱的,你得了什么绝症?

只听女友虚弱的说:懒。。。懒癌晚期。

小鸡说:一天一个蛋,菜刀靠边站,一月不生蛋,高压锅......

2、妻子想让老公早回家,于是规定:晚于23点回家就锁门。第一周奏效,第二周老公又晚归,老婆按制度把门锁了,于是老公干脆不回家了。

老婆郁闷,后经高人指点,修改规定:23点前不回家,我就开着门睡觉。老公大惊,从此准时回家。

可见制度的精髓不在于强制,而在于对被执行者利益的拉动。

小鸡说:一天一个蛋,菜刀靠边站,一月不生蛋,高压锅......

3、小鸡问母鸡:可否不用下蛋,带我出去玩啊?母鸡道:不行,我要工作!

小鸡说:可你已经下了这么多蛋了!母鸡意味深长地对小鸡说:一天一个蛋,菜刀靠边站,一月不生蛋,高压锅里见。存在是因为你创造价值,淘汰是因为你失去价值。过去的价值不代表未来,所以每天都要努力!

小鸡说:一天一个蛋,菜刀靠边站,一月不生蛋,高压锅......

4、一滴墨汁落在一杯清水里,这杯水立即变色,不能喝了;一滴墨汁融在大海里,大海依然是蔚蓝色的大海。为什么?因为两者的肚量不一样。

不熟的麦穗直刺刺地向上挺着,成熟的麦穗低垂着头。为什么?因为两者的份量不一样。

宽容别人,就是肚量;谦卑自己,就是份量;合起来,就是一个人的质量。

小鸡说:一天一个蛋,菜刀靠边站,一月不生蛋,高压锅......

5、一把坚实的大锁挂在大门上,一根铁杆费了九牛二虎之力,还是无法将它撬开。钥匙来了,他瘦小的身子钻进锁孔,只轻轻一转,大锁就"啪"地一声打开了。

铁杆奇怪地问:“为什么我费了那么大力气也打不开,而你却轻而易举地就把它打开了呢?”

钥匙说:“因为我最了解他的心。”

每个人的心,都像上了锁的大门,任你再粗的铁棒也撬不开。唯有关怀,才能把自己变成一只细腻的钥匙,进入别人的心中,了解别人。

小鸡说:一天一个蛋,菜刀靠边站,一月不生蛋,高压锅......
航母底下那么窄, 上面那么宽, 为什么不会侧翻

航母底下那么窄, 上面那么宽, 为什么不会侧翻

见过各国航空母舰的小伙伴会很容易就发现,各国航母设计的共同特点都是,飞行甲板十分宽大,而船身却比较窄小,这种布局不会容易侧翻吗,为什么要设计成底窄顶宽呢?

航母底下那么窄, 上面那么宽, 为什么不会侧翻

航母的设计主要是应用了”浮力定律“,也称”阿基米德定律“,物体受到的浮力的大小等于被该物体排开的液体的重力,也就是说,虽然航母的体积很大,但由于其排开水的体积也很大,再加上航母等水面舰艇内部中空。

因此能够浮在海面上,航母之所以设计成底窄顶宽,是为了满足航母的作战需求,宽大的甲板能够同时起降更多的舰载飞机。窄小的船底能减少水的阻力,增加航行速度。

航母底下那么窄, 上面那么宽, 为什么不会侧翻

飞行甲板和舰岛,虽然看起来很庞大,但在航母总重量中,只占很小一部分。航母的重量主要集中在底部,所以航母的重心是非常低的,类似于”不倒翁“的原理。

设计师为了提高航母底部的重量,在船底设计有多个独立的压载水舱,通过控制注水量调整船舶的两侧及前后的倾斜角度,以及吃水的深度。

航母底下那么窄, 上面那么宽, 为什么不会侧翻

此外,在航母舰体外部,也设计有提高稳定性的设备,在舰体两舷中部安装了减摇鳍,通过调节减摇鳍,控制两侧的水流阻力,使船舶能够保持两侧平衡,增加稳定性。

通俗地讲解计算机工作原理

通俗地讲解计算机工作原理

任何技术,只要足够高深,都无法与魔法区分开来。

——亚瑟 • 克拉克

为解决各种问题,人们发明了不计其数的机器。计算机种类繁多,从嵌入火星漫游机器人的计算机到为操纵核潜艇导航系统的计算机,不一而足。冯• 诺伊曼在1945 年提出第一种计算模型,无论笔记本电脑还是电话,几乎所有计算机都遵循与这种模型相同的工作原理。那么你们了解计算机是如何工作的吗?本文将讨论这些内容:

◎ 理解计算机体系结构的基础知识

◎ 选择编译器将代码转换为计算机可以执行的指令

◎ 根据存储器层次结构提高数据的存储速度

毕竟,在非程序员看来,编程要像魔法一样神奇,我们程序员不会这么看。

体系结构

计算机是一种根据指令操作数据的机器,主要由处理器与存储器两部分组成。存储器又称RAM(随机存取存储器),用于存储指令以及需要操作的数据。处理器又称CPU(中央处理器),它从存储器获取指令与数据,并执行相应的计算。接下来,我们将讨论这两部分的工作原理。

存储器

存储器被划分为许多单元,每个单元存储少量数据,通过一个数字地址加以标识。在存储器中读取或写入数据时,每次对一个单元进行操作。

为读写特定的存储单元,必须找到该单元的数字地址。

由于存储器是一种电气元件,单元地址作为二进制数通过信号线传输。

二进制数以 2 为基数表示,其工作原理如下:

通俗地讲解计算机工作原理

每条信号线传输一个比特,以高电压表示信号“1”,低电压表示信号“0”,如图7-1 所示。

通俗地讲解计算机工作原理

对于某个给定的单元地址,存储器可以进行两种操作:获取其值或存储新值,如图7-2 所示。存储器包括一条用于设置操作模式的特殊信号线。

通俗地讲解计算机工作原理

每个存储单元通常存储一个 8 位二进制数,它称为字节。设置为“读”模式时,存储器检索保存在单元中的字节,并通过8 条数据传输线输出,如图7-3 所示。

通俗地讲解计算机工作原理

设置为“写”模式时,存储器从数据传输线获取一个字节,并将其写入相应的单元,如图7-4 所示。

通俗地讲解计算机工作原理

传输相同数据的一组信号线称为总线。用于传输地址的8 条信号线构成地址总线,用于在存储单元之间传输数据的另外8 条信号线构成数据总线。地址总线是单向的(仅用于接收数据),而数据总线是双向的(用于发送和接收数据)。

在所有计算机中,CPU 与RAM 无时无刻不在交换数据:CPU 不断从RAM 获取指令与数据,偶尔也会将输出与部分计算存储在RAM 中,如图7-5 所示。

通俗地讲解计算机工作原理

CPU 包括若干称为寄存器的内部存储单元,它能对存储在这些寄存器中的数字执行简单的数学运算,也能在RAM 与寄存器之间传输数据。可以指示CPU 执行以下典型的操作:

◎ 将数据从存储位置 220 复制到寄存器 3;

◎ 将寄存器 3 与寄存器 1 中的数字相加。

CPU 可以执行的所有操作的集合称为指令集,指令集中的每项操作被分配一个数字。计算机代码本质上是表示CPU 操作的数字序列,这些操作以数字的形式存储在RAM 中。输入/ 输出数据、部分计算以及计算机代码都存储在RAM 中。

通过在RAM 中包含重写部分代码的指令,代码甚至可以对自身修改,这是计算机病毒逃避反病毒软件检测的惯用手法。与之类似,生物病毒通过改变自身的DNA以躲避宿主免疫系统的打击。

图7-6 取自Intel 4004 操作手册,显示了部分CPU 指令映射为数字的方法。随着制造工艺的发展,CPU 支持的操作越来越多。现代CPU 的指令集极为庞大,但最重要的指令在几十年前就已存在。

通俗地讲解计算机工作原理

CPU 的运行永无休止,它不断从存储器获取并执行指令。这个周期的核心是PC 寄存器,PC (program counter)是“程序计数器”的简称。PC 是一种特殊的寄存器,用于保存下一条待执行指令的存储地址。CPU 的工作流程如下:

(1) 从PC 指定的存储地址获取指令;

(2) PC 自增;

(3) 执行指令;

(4) 返回步骤1。

PC 在CPU 上电时复位为默认值,它是计算机中第一条待执行指令的地址。这条指令通常是一种不可变的内置程序,用于加载计算机的基本功能。

在许多个人计算机中,这种程序称为BIOS(基本输入输出系统)。

CPU 上电后将继续执行这种“获取- 执行”周期直至关机。然而,如果CPU 只能遵循有序、顺序的操作列表,那么它与一个花哨的计算器并无二致。CPU 的神奇之处在于可以指示它向PC 中写入新值,从而实现执行过程的分支,或“跳转”到存储器的其他位置。这种分支可以是有条件的。以下面这条CPU 指令为例:“如果寄存器1 等于0,将PC设置为地址200”。该指令相当于:

if x = 0compute_this()elsecompute_that()

仅此而已。无论是打开网站、玩计算机游戏抑或编辑电子表格,所涉及的计算并无区别,都是一系列只能对存储器中的数据求和、比较或移动的简单操作。

大量简单的操作组合在一起,就能表达复杂的过程。以经典的《太空侵略者》游戏为例,其代码包括大约3000 条机器指令。

通俗地讲解计算机工作原理

CPU 时钟 早在20 世纪80 年代,《太空侵略者》就已风靡一时。这个游戏在配备2 MHz CPU 的街机上运行。“2 MHz”表示CPU 的时钟,即CPU 每秒可以执行的基本操作数。时钟频率为200 万赫兹(2 MHz)的CPU 每秒大约可以执行200 万次基本操作。完成一条机器指令需要5到10 次基本操作,因此老式街机每秒能运行数十万条机器指令。

随着现代科技的进步,普通的台式计算机与智能手机通常配备2 GHzCPU,每秒可以执行数亿条机器指令。时至今日,多核CPU 已投入大规模应用,如四核2 GHz CPU 每秒能执行近10 亿条机器指令。展望未来,CPU 配备的核心数量或许会越来越多。

CPU 体系结构 读者是否思考过,PlayStation 的游戏CD 为何无法在台式计算机中运行? iPhone 应用为何无法在Mac 中运行?原因很简单,因为它们的CPU 体系结构不同。

x86 体系结构如今已成为行业标准,因此相同的代码可以在大部分个人计算机中执行。但考虑到节电的要求,手机采用的CPU 体系结构有所不同。不同的CPU 体系结构意味着不同的CPU 指令集,也意味着将指令编码为数字的方式各不相同。台式计算机CPU 的指令并非手机CPU的有效指令,反之亦然。

32 位与64 位体系结构 第一种CPU 是Intel 4004,它采用4 位体系架构。换言之,这种CPU 在一条机器指令中可以对最多4 位二进制数执行求和、比较与移动操作。Intel 4004 的数据总线与地址总线均只有4 条。

不久之后,8 位CPU 开始广为流行,这种CPU 用于运行DOS 的早期个人计算机。20 世纪八九十年代,著名的便携式游戏机Game Boy 就采用8 位处理器。这种CPU 可以在一条指令中对8 位二进制数进行操作。

技术的快速发展使16 位以及之后的32 位体系结构成为主导。CPU 寄存器随之增大,以容纳32 位数字。更大的寄存器自然催生出更大的数据总线与地址总线:具有32 条信号线的地址总线可以对232 字节(4 GB)的内存进行寻址。

人们对计算能力的渴求从未停止。计算机程序越来越复杂,消耗的内存越来越多,4 GB 内存已无法满足需要。使用适合32 位寄存器的数字地址对超过4 GB 内存进行寻址颇为棘手,这成为64 位体系结构兴起的动因,这种体系结构如今占据主导地位。64 位CPU 可以在一条指令中对极大的数字进行操作,而64 位寄存器将地址存储在海量的存储空间中:264 字节相当于超过170 亿吉字节(GB)。

大端序与小端序 一些计算机设计师认为,应按从左至右的顺序在RAM 与CPU 中存储数字,这种模式称为小端序。另一些计算机设计师则倾向于按从右至左的顺序在存储器中写入数据,这种模式称为大端序。因此,根据“字节序”的不同,二进制序列1-0-0-0-0-0-1-1 表示的数字也有所不同。

◎ 大端序:27 + 21 + 20 = 131

◎ 小端序:20 + 26 + 27 = 193

目前的大部分CPU 采用小端序模式,但同样存在许多采用大端序模式的计算机。如果大端序CPU 需要解释由小端序CPU 产生的数据,则必须采取措施以免出现字节序不匹配。程序员直接对二进制数进行操作,在解析来自网络交换机的数据时尤其需要注意这个问题。虽然目前多数计算机采用小端序模式,但由于大部分早期的网络路由器使用大端序CPU,所以因特网流量仍然以大端序为基础进行标准化。以小端序模式读取大端序数据时将出现乱码,反之亦然。

模拟器 某些情况下,需要在计算机上运行某些为不同CPU 设计的代码,以便在没有iPhone 的情况下测试iPhone 应用,或玩脍炙人口的老式超级任天堂游戏。这是通过称为模拟器的软件来实现的。

模拟器用于模仿目标机器,它假定与其拥有相同的CPU、RAM 以及其他硬件。模拟器程序对指令进行解码,并在模拟机器中执行。可以想见,如果两台机器的体系结构不同,那么在一台机器内部模拟另一台机器绝非易事。好在现代计算机的速度远远超过之前的机器,因此模拟并非无法实现。我们可以利用Game Boy 模拟器在计算机中创建一个虚拟的Game Boy,然后就能像使用实际的Game Boy 那样玩游戏。

编译器

通过对计算机进行编程,可以完成核磁共振成像、声音识别、行星探索以及其他许多复杂的任务。值得注意的是,计算机执行的所有操作最终都要通过简单的CPU 指令完成,即归结为对数字的求和与比较。而Web 浏览器等复杂的计算机程序需要数百万乃至数十亿条这样的机器指令。

但我们很少会直接使用CPU 指令来编写程序,也无法采用这种方式开发一个逼真的三维计算机游戏。为了以一种更“自然”且更紧凑的方式表达命令,人们创造了编程语言。我们使用这些语言编写代码,然后通过一种称为编译器的程序将命令转换为CPU 可以执行的机器指令。

我们用一个简单的数学类比来解释编译器的用途。假设我们向某人提问,要求他计算5 的阶乘。

5! = ?

但如果回答者不了解什么是阶乘,则这样提问并无意义。我们必须采用更简单的操作来重新表述问题。

5×4×3×2×1 = ?

不过,如果回答者只会做加法怎么办?我们必须进一步简化问题的表述。

5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 +5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 = ?

可以看到,表达计算的形式越简单,所需的操作数量越多。计算机代码同样如此。编译器将编程语言中的复杂指令转换为等效的CPU 指令。结合功能强大的外部库,就能通过相对较少的几行代码表示包含数十亿条CPU 指令的复杂程序,而这些代码易于理解和修改。

计算机之父艾伦• 图灵发现,简单的机器有能力计算任何可计算的事物。如果机器具有通用的计算能力,那么它必须能遵循包含指令的程序,以便:

◎ 对存储器中的数据进行读写;

◎ 执行条件分支:如果存储地址具有给定的值,则跳转到程序的另一个点。

我们称具有这种通用计算能力的机器是图灵完备的。无论计算的复杂性或难度如何,都可以采用简单的读取/ 写入/ 分支指令来表达。只要分配足够的时间与存储空间,这些指令就能计算任何事物。

通俗地讲解计算机工作原理

人们最近发现,一种称为MOV(数据传送)的CPU 指令是图灵完备的。这意味着仅能执行MOV 指令的CPU 与完整的CPU 在功能上并无不同:换言之,通过MOV 指令可以严格地表达任何类型的代码。

这个重要概念在于,无论简单与否,如果程序能采用编程语言进行编码,就可以重写后在任何图灵完备的机器中运行。编译器是一种神奇的程序,能自动将代码从复杂的语言转换为简单的语言。

操作系统

从本质上讲,编译后的计算机程序是CPU 指令的序列。如前所述,为台式计算机编译的代码无法在智能手机中运行,因为二者采用不同的CPU体系结构。不过,由于程序必须与计算机的操作系统通信才能运行,编译后的程序也可能无法在共享相同CPU 架构的两台计算机中使用。

为实现与外界的通信,程序必须进行输入与输出操作,如打开文件、在屏幕上显示消息、打开网络连接等。但不同的计算机采用不同的硬件,因此程序不可能直接支持所有不同类型的屏幕、声卡或网卡。

这就是程序依赖于操作系统执行的原因所在。借助操作系统的帮助,程序可以毫不费力地使用不同的硬件。程序创建特殊的系统调用,请求操作系统执行所需的输入/ 输出操作。编译器负责将输入/ 输出命令转换为合适的系统调用。

然而,不同的操作系统往往使用互不兼容的系统调用。例如,与macOS或Linux 相比,Windows 在屏幕上打印信息所用的系统调用有所不同。

因此,在使用x86 处理器的Windows 中编译的程序,无法在使用x86处理器的Mac 中运行。除针对特定的CPU 体系结构外,编译后的代码还会针对特定的操作系统。

编译优化

优秀的编译器致力于优化它们生成的机器码。如果编译器认为可以通过修改部分代码来提高执行效率,则会处理。在生成二进制输出之前,编译器可能尝试应用数百条优化规则。

因此,应使代码易于阅读以利于进行微优化。编译器最终将完成所有细微的优化。例如,一些人对以下代码颇有微词。

function factorial(n)if n > 1return factorial(n – 1) * nelsereturn 1

他们认为应该进行以下修改:

function factorial(n)result ← 1while n > 1result ← result * nn ← n – 1return result

诚然,在不使用递归的情况下执行factorial 函数将消耗较少的计算资源,但仍然没有理由因此而改变代码。现代编译器将自动重写简单的递归函数,举例如下。

i ← x + y + 1j ← x + y

为避免进行两次x+y 计算,编译器将上述代码重写为:

t1 ← x + yi ← t1 + 1j ← t1

应专注于编写清晰且自解释的代码。如果性能出现问题,可以利用分析工具寻找代码中的瓶颈,并尝试改用更好的方法计算存在问题的代码。此外,避免在不必要的微操作上浪费太多时间。

但在某些情况下,我们希望跳过编译,接下来将对此进行讨论。

脚本语言

某些语言在执行时并未被直接编译为机器码,这些语言称为脚本语言,包括JavaScript、Python 以及Ruby。在脚本语言中,代码由解释器而非CPU 执行,解释器必须安装在运行代码的机器中。

解释器实时转译并执行代码,因此其运行速度通常比编译后的代码慢得多。但另一方面,程序员随时都能立即运行代码而无须等待编译过程。

对于规模极大的项目,编译可能耗时数小时之久。

Google 工程师必须不断编译大量代码,导致程序员“损失”了很多时间(图7-9)。由于需要保证编译后的二进制文件有更好的性能,Google 无法切换到脚本语言。公司为此开发了Go 语言,它的编译速度极快,同时仍然保持很高的性能。

通俗地讲解计算机工作原理

反汇编与逆向工程

给定一个已编译的计算机程序,无法在编译之前恢复其源代码。但我们可以对二进制程序解码,将用于编码CPU 指令的数字转换为人类可读的指令序列。这个过程称为反汇编。

接下来,可以查看这些CPU 指令,并尝试分析它们的用途,这就是所谓的逆向工程。某些反汇编程序对这一过程大有裨益,它们能自动检测并注释系统调用与常用函数。借由反汇编工具,黑客对二进制代码的各个环节了如指掌。我相信,许多顶尖的IT 公司都设有秘密的逆向工程实验室,以便研究竞争对手的软件。

地下黑客经常分析Windows、Photoshop、《侠盗猎车手》等授权程序中的二进制代码,以确定哪部分代码负责验证软件许可证。黑客将二进制代码修改,在其中加入一条指令,直接跳转到验证许可证后执行的代码部分。运行修改后的二进制代码时,它在检查许可证前获取注入的JUMP 命令,从而可以在没有付费的情况下运行非法的盗版副本。

在秘密的政府情报机构中,同样设有供安全研究人员与工程师研究iOS、Windows、IE 浏览器等流行消费者软件的实验室。他们寻找这些程序中可能存在的安全漏洞,以防御网络攻击或对高价值目标的入侵。在这类攻击中,最知名的当属“震网”病毒,它是美国与以色列情报机构研制的一种网络武器。通过感染控制地下聚变反应堆的计算机,“震网”延缓了伊朗核计划。

开源软件

如前所述,我们可以根据二进制可执行文件分析有关程序的原始指令,但无法恢复用于生成二进制文件的原始源代码。

在没有原始源代码的情况下,即使可以稍许修改二进制文件以便以较小的方式破解,实际上也无法对程序进行任何重大更改(如添加新功能)。一些人推崇协作构建代码的方式,因此将自己的源代码开放供他人修改。“开源”的主要概念就在于此:所有人都能自由使用与修改的软件。基于Linux 的操作系统(如Ubuntu、Fedora 与Debian)是开源的,而Windows 与macOS 是闭源的。

开源操作系统的一个有趣之处在于,任何人都可以检查源代码以寻找安全漏洞。现已证实,政府机构通过日常消费者软件中未修补的安全漏洞,对数百万平民进行利用和监视。

但对开源软件而言,代码受到的关注度更高,因此恶意的第三方与政府机构很难植入监控后门程序。使用macOS 或Windows 时,用户必须相信Apple 或Microsoft 对自己的安全不会构成危害,并尽最大努力防止任何严重的安全漏洞。而开源系统置于公众的监督之下,因此安全漏洞被忽视的可能性大为降低。

存储器层次结构

我们知道,计算机的操作可以归结为使CPU 执行简单的指令,这些指令只能对存储在CPU 寄存器中的数据操作。但寄存器的存储空间通常被限制在1000 字节以内,这意味着CPU 寄存器与RAM 之间必须不断进行数据传输。

如果存储器访问速度过慢,CPU 将被迫处于空闲状态,以等待RAM 完成数据传输。CPU 读写存储器中数据所需的时间与计算机性能直接相关。提高存储器速度有助于加快计算机运行,也可以提高CPU 访问数据的速度。CPU 能以近乎实时的速度(一个周期以内)访问存储在寄存器中的数据,但访问RAM 则慢得多。

对于时钟频率为1 GHz 的CPU,一个周期的持续时间约为十亿分之一秒,这是光线从本书进入读者眼中所需的时间。

处理器与存储器之间的鸿沟

近年来的技术发展使得CPU 速度成倍增长。虽然存储器速度同样有所提高,但却慢得多。CPU 与RAM 之间的这种性能差距称为“处理器与存储器之间的鸿沟”。我们可以执行大量CPU 指令,因此它们很“廉价”;而从RAM 获取数据所需的时间较长,因此它们很“昂贵”。随着两者之间的差距逐渐增大,提高存储器访问效率的重要性越发明显。

通俗地讲解计算机工作原理

现代计算机需要大约1000 个CPU 周期(1 微秒左右) 从RAM 获取数据。这种速度已很惊人,但与访问CPU 寄存器的时间相比仍然较慢。减少计算所需的RAM 操作次数,是计算机科学家追求的目标。

在两个面对面的人之间,声波传播需要大约10 微秒。

时间局部性与空间局部性

在尝试尽量减少对RAM 的访问时,计算机科学家开始注意到两个事实。

◎ 时间局部性:访问某个存储地址时,可能很快会再次访问该地址。

◎ 空间局部性:访问某个存储地址时,可能很快会访问与之相邻的地址。

因此,将这些存储地址保存在CPU 寄存器中,有助于避免大部分对RAM的“昂贵”操作。不过在设计CPU 芯片时,工业工程师并未找到可行的方法来容纳足够多的内部寄存器,但他们仍然发现了如何有效地利用时间局部性与空间局部性。接下来将对此进行讨论。

一级缓存

可以构建一种集成在CPU 内部且速度极快的辅助存储器,这就是一级缓存。将数据从一级缓存读入寄存器,仅比直接从寄存器获取数据稍慢。

利用一级缓存,我们将可能访问的存储地址中的内容复制到CPU 寄存器附近,借此以极快的速度将数据载入CPU 寄存器。将数据从一级缓存读入寄存器仅需大约10 个CPU 周期,速度是从RAM 获取数据的近百倍。

借由10 KB 左右的一级缓存,并合理利用时间局部性与空间局部性,超过一半的RAM 访问调用仅通过缓存就能实现。这一创新使计算技术发生了翻天覆地的变化。一级缓存可以极大缩短CPU 的等待时间,使CPU 将更多时间用于实际计算而非处于空闲状态。

二级缓存

提高一级缓存的容量有助于减少从RAM 获取数据的操作,进而缩短CPU 的等待时间。但是,增大一级缓存的同时也会降低它的速度。在一级缓存达到50 KB 左右时,继续增加其容量就要付出极高的成本。更好的方案是构建一种称为二级缓存的缓存。二级缓存的速度稍慢,但容量比一级缓存大得多。现代CPU 配备的二级缓存约为200 KB,将数据从二级缓存读入CPU 寄存器需要大约100 个CPU 周期。

我们将最有可能访问的地址复制到一级缓存,较有可能访问的地址复制到二级缓存。如果CPU 没有在一级缓存中找到某个存储地址,仍然可以尝试在二级缓存中搜索。仅当该地址既不在一级缓存、也不在二级缓存中时,CPU 才需要访问RAM。

目前,不少制造商推出了配备三级缓存的处理器。三级缓存的容量比二级缓存大,虽然速度不及二级缓存,但仍然比RAM 快得多。一级/ 二级/ 三级缓存非常重要,它们占据了CPU 芯片内部的大部分硅片空间。见图7-11。

通俗地讲解计算机工作原理

使用一级/ 二级/ 三级缓存能显著提高计算机的性能。在配备200 KB的二级缓存后,CPU 发出的存储请求中仅有不到10% 必须直接从RAM获取。

读者今后购买计算机时,对于所挑选的CPU,请记住比较一级/ 二级/三级缓存的容量。CPU 越好,缓存越大。一般来说,建议选择一款时钟频率稍低但缓存容量较大的CPU。

第一级存储器与第二级存储器

如前所述,计算机配有不同类型的存储器,它们按层次结构排列。性能最好的存储器容量有限且成本极高。沿层次结构向下,可用的存储空间越来越多,但访问速度越来越慢。

通俗地讲解计算机工作原理

在存储器层次结构中,位于CPU 寄存器与缓存之下的是RAM,它负责存储当前运行的所有进程的数据与代码。截至2017 年,计算机配备的RAM 容量通常为1 GB 到10 GB。但在许多情况下,RAM 可能无法满足操作系统以及所有运行程序的需要。

因此,我们必须深入探究存储器层次结构,使用位于RAM 之下的硬盘。截至2017 年,计算机配备的硬盘容量通常为数百吉字节,足以容纳当前运行的所有程序数据。如果RAM 已满,当前的空闲数据将被移至硬盘以释放部分内存空间。

问题在于,硬盘的速度非常慢,它一般需要100 万个CPU 周期(1 毫秒)a 在磁盘与RAM 之间传输数据。从磁盘访问数据看似很快,但不要忘记,访问RAM 仅需1000 个周期,而访问磁盘需要100 万个周期。RAM 通常称为第一级存储器,而存储程序与数据的磁盘称为第二级存储器。

标准照片在大约4 毫秒内捕捉光线。

CPU 无法直接访问第二级存储器。执行保存在第二级存储器中的程序之前,必须将其复制到第一级存储器。实际上,每次启动计算机时,即便是操作系统也要从磁盘复制到RAM,否则CPU 无法运行。

确保RAM 永不枯竭 在典型活动期间,确保计算机处理的所有数据与程序都能载入RAM 至关重要,否则计算机将不断在磁盘与RAM 之间交换数据。由于这项操作的速度极慢,计算机性能将严重下降,甚至无法使用。这种情况下,计算机不得不花费更多时间等待数据传输,而无法进行实际的计算。

当计算机不断将数据从磁盘读入RAM 时,则称计算机处于抖动模式。必须对服务器进行持续监控,如果服务器开始处理无法载入RAM 的数据,那么抖动可能会导致整个服务器崩溃。银行或收银机前将因此排起长队,而服务员除了责怪发生抖动的计算机系统之外别无他法。内存不足或许是导致服务器故障的主要原因之一。

外部存储器与第三级存储器

我们继续沿存储器层次结构向下分析。在连接到网络之后,计算机就能访问由其他计算机管理的存储器。它们要么位于本地网络,要么位于因特网(即云端)。但访问这些数据所需的时间更长:读取本地磁盘需要1 毫秒,而获取网络中的数据可能耗时数百毫秒。网络包从一台计算机传输到另一台计算机大约需要10 毫秒,如果经由因特网传输则需要200 毫秒到300 毫秒,与眨眼的时间相仿。

位于存储器层次结构底部的是第三级存储器,这种存储设备并非总是在线与可用的。在盒式磁带或CD 中存储数百万吉字节的数据成本较低,但访问这类介质中的数据时,需要将介质插入某种读取设备,这可能需要数分钟甚至数天之久(不妨尝试让IT 部门在周五晚上备份磁带中的数据……)。有鉴于此,第三级存储器仅适合归档很少访问的数据。

存储技术的发展趋势

一方面,很难显著改进“快速”存储器(位于存储器层次结构顶端)所用的技术;另一方面,“慢速”存储器的速度越来越快,价格也越来越低。几十年来,硬盘存储的成本一直在下降,这种趋势似乎还将持续下去。

新技术也使磁盘的速度得以提高。人们正从旋转磁盘转向固态硬盘(SSD),它没有动件,因而更快、更可靠且更省电。

采用SSD 技术的磁盘正变得越来越便宜且越来越快,但其价格仍然不菲。有鉴于此,一些制造商推出了同时采用SSD 与磁技术的混合磁盘。后者将访问频率较高的数据存储在SSD 中,访问频率较低的数据存储在速度较慢的磁盘中。当需要频繁访问原先不经常访问的数据时,则将其复制到混合驱动器中速度较快的SSD。这与CPU 利用内部缓存提高RAM 访问速度的技巧颇为类似。

通俗地讲解计算机工作原理

小结

本文介绍了一些基本的计算机工作原理。任何可计算的事物都能采用简单的指令来表示。为将复杂的计算命令转换为CPU 可以执行的简单指令,需要使用一种称为编译器的程序。计算机之所以能进行复杂计算,仅仅是因为CPU 可以执行大量基本操作。

计算机的处理器速度很快,但存储器相对较慢。CPU 并非以随机方式访问存储器,而是遵循空间局部性与时间局部性原理。因此,可以将访问频率较高的数据缓存在速度更快的存储器中。这一原则在多个级别的缓存中得到了应用:从一级缓存直到第三级存储器,不一而足。