您的位置:首页 > 前沿资讯

联想a65驱动(高效办公一体机 联想ThinkCentre neo S760评测)

导读联想a65驱动文章列表:1、高效办公一体机 联想ThinkCentre neo S760评测2、必买:外观党大胜利 2021年最值得购买的键鼠盘点3、机械革命游戏本评测:见证175W RTX 3080Ti+NVIDIA

联想a65驱动文章列表:

联想a65驱动(高效办公一体机 联想ThinkCentre neo S760评测)

高效办公一体机 联想ThinkCentre neo S760评测

近年来,一体机成为一种新的趋势,相较于传统的台式电脑,一体机的将主机与显示器合二为一,集成度更高,占用的空间更小,特别适合有限的空间下使用。日前,联想推出了一款针对办公人士的商用一体机——联想ThinkCentre neo S760,其具备简约的外观设计,并且高度集成了众多专为商务人士办公场景的功能应用,同时联想ThinkCentre neo S760也具备稳定可靠的运行能力。可以说这款产品非常适合办公场景,尤其是数据处理场景下的使用。此次我们拿到的测试机为联想ThinkCentre neo S760 i5-12500H版本,目前首发促销价为5499元。

外观设计

联想ThinkCentre neo S760拥有23.8英寸的屏幕,采用三面窄边框的设计,拥有更高的屏占比。

ThinkCentre neo S760在机身中加入了绿色环保材料,屏幕下边框及机身背面采用的是65%PCC回收材质打造,并且加入了星空斑点纹理,带来了更出色的质感。

ThinkCentre neo S760拥有丰富的接口设置,在机身左侧有一个USB-A 3.2接口,日常使用非常的方便。而在机身背部则有着更加全面的接口,包括耳机/耳麦接口、USB-A接口、USB-C接口、网线接口以及HDMI接口。

考虑到用户的多种使用需求,ThinkCentre neo S760的HDMI接口分为HDMI-IN以及HDMI-OUT两个,如果是使用笔记本需要临时扩展屏幕,那么可以插入HDMI-IN接口,这时ThinkCentre neo S760可以作为显示器使用。如果是需要双屏使用,通过HDMI-OUT接口连接另外一台显示器,那么ThinkCentre neo S760则可以进行双屏扩展使用。

ThinkCentre neo S760的扩展性让其在办公场景下有着更为出色的表现,在制图、制表以及查看股票等信息时,两块屏幕会更加方便。

在机身电源键上方,还有一个HDMI Switch Key,可以直接切换HDMI-IN的画面,让显示切换更加的方便,不用频繁的插拔线缆。

此外,机身背后的一个USB-C接口支持PD快充。ThinkCentre neo S760内置180W大功率电源,在一体机连接电源时,可在工作状态和微软Modern Standby待机模式下为手机及电脑等设备提供45W快充,在关机状态下则可提供100W高速快充。

在使用机器自带的USB-C数据线为手机充电时,可以直接将其放置在底座上设置的手机卡槽里,工作时可以随时查看到手机屏幕提示的信息,让桌面的利用率与设备协作效率变得更高。

为了更好的进行线上会议,ThinkCentre neo S760也配备了一个500万像素的高清摄像头,平时可以隐藏在屏幕顶部,需要时手动拉起即可,隐藏式的设计既美观也可以避免隐私泄漏。同时,ThinkCentre neo S760也配备了双阵列麦克风,以及哈曼音响系统,不仅对于声音的捕捉非常灵敏,同时外放也会更加的清晰。

ThinkCentre neo S760也配备了一套无线键鼠,操作方面,也让桌面更加的整洁,更好的发挥出一体机在空间方面的优势。

ThinkCentre neo S760的支架高度固定,但支持多角度调节,用户在使用时可以根据自己的需求来进行角度调整。

屏幕测试

ThinkCentre neo S760采用23.8英寸1080P屏幕,在办公时,因为需要长时间的观看屏幕,所以护眼功能是十分重要的,ThinkCentre neo S760通过了莱茵TÜV低蓝光、无频闪双重认证,针对长时间坐在电脑前办公的用户,可以有效降低用眼疲劳。

经过实测,ThinkCentre neo S760具备了98%的sRGB、76%的AdobeRGB、80%的DCI-P3色域覆盖率,表现不错。

色彩精准度方面,ThinkCentre neo S760的△E为2.42。

ThinkCentre neo S760的屏幕更适合进行文字相关的工作,防蓝光的功能可以减缓用户长时间观看屏幕造成的眼部疲劳。

性能测试

ThinkCentre neo S760采用了第12代英特尔® 酷睿™ i5-12500H 处理器,拥有12核心(4性能核 8能效核)、16线程,最大睿频频率4.5GHz,18MB三级缓存,TDP为45W。同时集成了英特尔锐炬® Xe 显卡,拥有80个执行单元,频率为1.3GHz,在办公场景下还是能够有着不错的表现的。

经过CPU-Z测试,该处理器的单核成绩为723.3,多核成绩为6285.5,在测试分数上的表现还是很不错的。

CINEBENCH基准性能测试中,R20单核性能得分872pxs,多核性能得分5643pxs;R23单核性能得分1707pts,多核性能得分13200pts。

显卡方面,因为ThinkCentre neo S760定位是商务办公产品,因此英特尔锐炬® Xe 显卡就已经能够很好的应对日常的办公需求,可以实现4K图像的输出,满足用户图像扩展的需求。

3DMark的测试中,Time Spy是在DX12环境中测试显卡的性能,综合得分1624,显卡得分1414。

Fire Strike是在DX11环境中以1080P分辨率测试图形卡的性能。综合得分4540,显卡得分4852。

CrossMark 从生产率、创造性、响应速度三方面给出了ThinkCentre neo S760的得分,综合分数为1429分,在日常办公中也是非常可靠的。

WebXPRT是一个主打应用场景的网页测试平台,测试的项目包括照片增强、人工智能整理相册、股票期权定价、OCR扫描、销售图表、网上作业一共六项,联想ThinkCentre neo S760一体机在WebXPRT上的测试成绩为256分。

ThinkCentre neo S760搭载了16GB DDR5 4800MHz高频内存,在AIDA64的内存测试中,读取速度64594MB/s,写入速度58759MB/s,复制速度55943MB/s,时延91.8ns,在多任务处理时会有更好的表现。

硬盘方面,ThinkCentre neo S760配备的是512GB硬盘,顺序读取速度3482MB/s,写入速度2768MB/s,应对日常办公场景是足够的。

在综合体验方面,我们通过PCMARK 10来对ThinkCentre neo S760进行测试,通过模拟日常办公的场景,ThinkCentre neo S760的综合得分为5498分。

通过性能方面的测试,ThinkCentre neo S760可以很好的满足日常办公的需求,在文档撰写、PPT制作、在线会议以及邮件处理等办公场景下,都具备稳定可靠的表现。

办公体验

性能是基础,而ThinkCentre neo S760内置的办公软件则可以在帮助用户在日常办公中具备更高效、安全的办公体验。在电脑中内置了联想智能会议助手AI Meeting Manager,针对当下在线会议较多的情况,联想智能会议助手AI Meeting Manager将会帮助用户更好的应对在线会议的场景。

联想智能会议助手AI Meeting Manager支持非常丰富的功能,包括一键转写、翻译助手、字幕助手等,在在线会议的时候,可以开启一键转写,软件会自动将会议内容进行记录,方便进行会议纪要的整理。

同时,联想智能会议助手AI Meeting Manager还支持中、英、日、韩四种语言的翻译,及时是跨国会议也可以较为轻松的应对。

当观看的视频没有字幕时,也可以启动字幕助手,可以支持中、英、日、韩四种语言的字幕显示。

数据安全对于商务用户也是十分重要的,在ThinkCentre neo S760中也内置了联想安全套件,包括文件保险箱、云盘数据保护、安全U盘、智能USB保护、数据粉碎、系统一键恢复六大功能,确保用户在数据方面的安全。

当需要在电脑中存储较为机密的文件信息时,可以将其保存在文件保险箱内,需要通过密码才能打开文件保险箱,从而确保文件的安全。而如果需要将重要资料存储在U盘时,也可以运用安全U盘功能,为U盘进行加密,即使数据离开了电脑,也可以得到很好的保护。

此外,为了防止删除的私密数据被恢复,可以使用数据粉碎来进行处理,将不需要的资料彻底粉碎,更加安全。

商用电脑相较于传统电脑的优势就有完善的售后解决方案,ThinkCentre neo S760内置联想电脑管家,不仅可以支持安全防护、空间清理等常规内容,也支持驱动更新以及售后服务,可以第一时间解决遇到的电脑问题。

ThinkCentre neo S760的专属服务还包括一年免费的7×24小时的在线顾问,在保修期开始的3年内,7×9小时的上门维修以及7×9小时的服务站维修服务,并且通过额外购买延保的方式获得5年的售后服务,确保购买电脑后的正常使用。

总结

从产品本身来看,ThinkCentre neo S760的表现是相当不错的,首先在使用方面不仅能够满足用户的办公需求,可以具备稳定可靠的表现。此外,在一些细节设计上,ThinkCentre neo S760也充分考虑了数据处理场景下的需求,丰富的接口满足了该场景下办公人士对于多屏协同的生产力提升需求,隐藏式摄像头、安全套件等则让该场景下对于商务安全的需求得到满足。

作为一款一体机,联想ThinkCentre neo S760的高整合度不仅是在硬件层面,同时也体现在软件上,包括售后服务在内的完整配套方案,对于改善办公体验、优化办公成本有着非常大的帮助,适用于个人以及企业办公,为用户带来生产力的升级。

必买:外观党大胜利 2021年最值得购买的键鼠盘点

虎年将至,回首2021年键鼠市场,出现了百花齐放的盛况。2021年是键鼠客制化大爆发的一年,越来越多原先只流行于小众客制圈的概念都在今年被大厂带入了大众视线。小众元素被带到大众市场的好处之一就是:大品牌具有成熟的研发团队和生产线,对品质的把控也非常成熟,所以能够将客制化方案优化得更加合理,更加适合量产。今年,键鼠外设不仅有了好看的外观,还出现了组件DIY的大潮。热插拔轴体技术、伞绳、甚至是Gasket架构这样的非常见结构都被拿出来服务市场。另外,更多的品牌开始提供客制化服务,我们能够自主定制与众不同的键盘产品。因此,客制化的门槛也变得更低,我们通过简单的学习就能够体验到DIY键鼠的乐趣。

键鼠作为我们生活中最为常见的设备,几乎成为了不可或缺的必需品。购买任何东西都有一个通用的法则——按需购买。明确了自己的需求后,只需要知道当下在售产品哪一个好就可以了。

之前我们已经推荐过显卡、板U、存储和显示器产品。在这里,笔者也给您推荐几款不错的键鼠供参考,帮助大家在过年之前,攒出自己心仪的主机。

01 ZDC数据观望

鼠标市场关注度方面,是高性能电竞鼠标的天下,获得关注度较高的是各家大厂的入门目前款和旗舰款。

2021年上半年鼠标市场产品关注分布

罗技G502游戏鼠标获得了2021年年冠,关注度达到了5.08%。前五名由罗技、雷蛇和雷柏包揽,并且全部都是无线鼠,这说明轻量化和无线化已经是主流。由于今年G502游戏鼠标的促销力度大,宣传力度广等原因,保持很高的销量在情理之中。雷柏的Ralemo Air1无线充电鼠标采用了新的外观设计,并拥有我们想要的各种功能,能够进入前五也是有理可循。

前十榜单中,无线有线鼠标平分秋色,轻量化鼠标占据主导地位,头部厂商的明星产品销量稳健,轻量化和无线连接被更多人所接受。

2021年键盘市场产品关注分布

上半年的键盘市场依旧百花齐放。高性价比、好看外观和客制化元素键盘占据了榜单前十。比如达尔优机械键盘就有着好看的外观和热插拔轴体等客制化元素,它全面开发客制化,切中市场痛点,销量爆发。市场非常认可有产品力的键盘的,努力做产品才是长久发展的正确道路。本篇文章中,笔者也将从最看重外设产品力的FPS游戏、先进产品技术和客制化方案设计三个维度来推广。

02 FPS键盘之HyperX起源竞技版RGB游戏机械键盘

FPS游戏的热度这些年一直是高居不下,像是《CS:GO》、《绝地求生》这样的游戏一直拥有大批的死忠粉。想要玩好FPS游戏,靠谱的键盘就必不可少。HyperX这两款键盘均采用了其自主研发的轴体——Aqua轴体,并按照手感分为:青轴、茶轴、火轴,以及蒂芙尼蓝色的水轴,一经上市就因为出色稳定的手感积累了不少好评。起源竞技版RGB游戏机械键盘去掉了最右边的数字小键盘,采用全航天级铝合金外壳、悬浮式键帽,还可以通过驱动个性化动态光效。而起源60游戏机械键盘则采用61键配列,并换装了双色PBT键帽,更耐用不易打油。

购买链接:HyperX起源竞技版RGB游戏机械键盘/起源60游戏机械键盘

03 小配列键盘强者:雷蛇黑寡妇蜘蛛V3迷你无线版机械键盘

雷蛇最近发布了65%配列的机械键盘——黑寡妇蜘蛛V3迷你无线版机械键盘。雷蛇对市场的嗅觉一向敏锐,目前开始进入大众市场的小配列键盘产品潮流,它也没有落下,发布了这款定位旗舰的键盘产品,有线无线三模连接、CHROMA灯光、雷蛇自主轴体等自家旗舰键盘上面的特性均被设置到了这款黑寡妇蜘蛛V3迷你无线版机械键盘上。

购买入口:雷蛇黑寡妇蜘蛛V3迷你无线版机械键盘

04 Gasket架构走向大众:达尔优A98三模热插拔机械键盘

达尔优A98三模热插拔机械键盘是近期上市的新品,它支持热插拔轴和磁吸上盖。并使用清新时尚的配色方案,而与佳达隆联合研发的天空轴也因为使用了长弹簧,而保证了轴体稳定明确的手感。另外,这款键盘也让Gasket架构走向大众,柔性结构带来更静音的操作,和更柔和的手感体验,加上精致的外观设计和完备的功能体验,是很好的客制化键盘。

购买入口:达尔优A98三模热插拔机械键盘

05 最强FPS游戏鼠:雷蛇毒蝰8KHZ游戏鼠标

在键鼠类产品上,更高的回报率则能进一步降低操作延迟,更低的延迟对于竞技类游戏的重要性不言而喻。雷蛇毒蝰8KHZ游戏鼠标使用了最高支持8KHz回报率的游戏鼠标芯片,使用SpeedFlex超柔线缆,重量仅为71g,传感器方面则是搭载了基于原相PAW3399打造FOCUS 光学引擎,在DPI数值调节、定位精准度上都有着出色表现,高的传输采样不仅能够降低使用延迟、连续传输更加稳定。1000Hz回报率延迟约为1ms,而8000Hz回报率延迟仅为0.125ms,仅为原有延迟的四分之一,配合高刷新显示器、以及光微动的快速触发,输入延迟几乎降到最低。在FPS类游戏中,更能占得先机,击杀对手。

购买入口:雷蛇毒蝰8KHZ游戏鼠标

06超强产品力的无线游戏鼠:罗技G Pro Wireless鼠标

罗技G Pro系列鼠标是对称手型鼠标的经典代表之作。这款GPW仅重80克,轻量化设计。它外形简约,采用对称设计修长身形,尾部微微高翘,左右收紧易于抓握。鼠标的Lightspeed技术、HERO光学传感器、Powerplay无线充电、Lightsync一应俱全。罗技G Pro Wireless鼠标搭载强化过的HERO光学传感器,最高支持25600DPI,400IPS追踪速度,内置锂电池,支持Powerplay无线充电技术,可配置专用的鼠标垫来得到边充边玩的效果。开启RGB时续航48小时,无RGB可续航60小时。但这款鼠标使用的是无线连接,虽然宣传的是媲美有线,但在延迟表现上跟有线比还是有一点差距,如果您对这个特别敏感,还是要多考虑下。

购买入口:罗技G Pro Wireless鼠标

07 客制化外观的国产无线鼠优品:达尔优EM901双模游戏鼠

达尔优EM901双模无线游戏鼠标采用2.4G与蓝牙5.0的双无线连接模式。蓝牙5.0无线连接方案不仅拥有更稳定的信号传输,还有效降低鼠标功耗,在满电情况下,可连续使用约3周以上;2.4G无线连接模式拥有等同于有线状态下的毫秒级响应性能。

另外,达尔优EM901双模无线游戏鼠标搭载PMW3336游戏引擎,分辨率10000dpi,拥有150IPS追踪速度和30G的加速度,能有效捕捉到每个移动细节,在不同应用场景中都能得心应手。续航方面,它内置930mAh锂电池,配备Type-C充电线,充电过程中不影响正常使用。电池充满后,2.4G游戏级无线连接时可连续使用约16天,切换到低功耗的蓝牙模式时可连续使用约23天。这款鼠标是达尔优2021年的代表性作品,喜欢的玩家可以购买尝试。

购买入口:达尔优EM901双模无线游戏鼠标

08 买外设唯一准则:按需购买

客制化外设越发火热。目前,我们已经看到了许多优秀好用的套件,以及改良型客制化架构被认可,这也极大提升了外设的实际体验。希望明年,无线技术能有所突破,并且能够真正地媲美有线,看看厂商会怎样出招。

价格是影响购买的主要因素,如何将新技术做得好用,并且迅速铺量普及是每个品牌都在追求的目标,将核心技术提升并推广,然后通过个性设计来提升产品单价。展现年轻人的个性是外设厂探索的重要方向之一,客制化发展的大势已定,将已有的客制化方案做得更亲民、更好用,并且在外观和功能体验上做得别出心裁,那么产品力自然就上去了。

虽然键鼠产品千千万,但是适合我们用的实际上只有某一类,我们买之前一定要确定好自己的需求,按需购买是重中之重。结合我们对各个产品线的2021年经典产品盘点回顾,相信您已经有了选择,祝购买到称心如意的产品。

(7852045)

机械革命游戏本评测:见证175W RTX 3080Ti+NVIDIA DLSS真正实力

年初,NVIDIA二话不说直接放出大招,正式推出了GeForce RTX 3070Ti以及RTX 3080Ti笔记本电脑GPU,从而完成了GeForce RTX 30系列笔记本电脑GPU系列的拼图。这两款性能强悍的移动级GPU发布之后,各大游戏本厂商也迅速跟进,推出了相应机型,并深受玩家好评。

不过对于NVIDIA自身而言,提供强大的GPU芯片固然是刻在DNA里的使命,但如何让GPU发挥出更加强大的性能、给用户带来更加出色的综合体验,则是与不断提升GPU性能同等重要的事情。因此,NVIDIA发布了第四代 Max-Q技术,甚至引入AI技术,让Max-Q技术成为NVIDIA GPU性能体验提升的润滑剂。

以我们今天评测的机械革命旷世游戏本为例,它搭载175W 的GeForce RTX 3080Ti笔记本电脑GPU,借助底层Max-Q相关技术的支持,能够为用户带来非常出色的图形性能体验。

本次评测机型为机械革命旷世水冷版,搭载了NVIDIA GeForce RTX 3080Ti笔记本电脑GPU,英特尔12代酷睿i9-12900H处理器、64GB DDR5内存、1TB PCIe 4.0固态硬盘。此外它最为与众不同的地方在于,为了提供更好的性能输出环境,它还配备了一台外置水冷,可以充分发挥GeForce RTX 3080Ti笔记本电脑GPU和酷睿i9-12900H处理器的性能。

01 GeForce RTX 3080Ti笔记本电脑GPU带来第四代Max-Q技术革新

对于笔者而言,机械革命旷世这款产品最为让人期待的自然是加了水冷之后的,功耗达到175W的GeForce RTX 3080Ti笔记本电脑GPU,作为GeForce RTX 30笔记本电脑GPU系列的旗舰,它拥有高达7424个CUDA核心,16GB GDDR6显存,总线位宽256bit,带宽高达512GB/s,核心频率1230MHz、显存频率2000MHz、Boost频率1590MHz,参数均为最高规格。

一直以来,NVIDIA致力于通过创新技术将笔记本电脑上的娱乐体验推向前所未有的高度,通过改善游戏环境提升玩家体验,而第四代Max-Q就是其中最为重要的核心技术。其中包含了9大技术集合,专注于优化移动平台的功耗与性能,从而在笔记本内部非常有限的空间内将芯片发挥处最佳能效比,并且适配到更多的使用场景,平衡笔记本的性能、续航、轻薄。

现如今,Max-Q技术迎来再次革新,三大技术迎来第四代变革:

CPU Optimizer智能协作:它可以使GPU和CPU更好地协同工作,从而提供出色的性能表现和理想的温控水平。

Rapid Core Scaling智能核心优化:它通过优化活跃核心以更高频率运行,可在移动办公时,为创意密集型工作和理工科提供更好的性能。

Battery Boost 2.0续航增强:它可以实现GPU和CPU功耗、电池电量、 画质和帧率之间的平衡,延长电池续航时间。

除了三大重要革新之外, 还支持此前第三代Max-Q技术——Dynamic Boost动态增强技术,它通过AI自动平衡GPU、GPU显存和CPU之间的功耗,以提高性能。WhisperMode智能降噪技术则会使用AI驱动算法来管理GPU、CPU、系统温度和风扇转速,提供良好的降噪表现同时,保持卓越的性能。 游戏玩家熟知的DLSS深度学习超级采样通过AI渲染技术,提升画质和帧率,在不损失画质的前提下,大幅提升性能。Advanced Optimus动态显示切换技术可以提供更长的电池续航时间,还可通过G-SYNC为玩家提供沉浸式、无撕裂和无卡顿的游戏体验。Resizable BAR技术则可以解锁显存访问限制,通过这项先进的PCI Express功能,CPU可一次性访问整个GPU帧缓存,从而在众多游戏中提升性能表现。此外,Optimal Playable Settings可实现一键优化,根据当前硬件使用情况,一键优化即可完成设置,实现性能和画质的平衡。

可以说,GeForce RTX 30系列笔记本电脑GPU之所以有着出色的性能体验,底层的Max-Q技术集起到了至关重要的作用。

接下来我们通过机械革命旷世这款产品,率先来感受一下这些技术的“魔力”。

02 175W GeForce RTX 3080Ti笔记本电脑GPU性能测试

按照惯例,我们先通过3DMark测试,来了解一下175W功率的GeForce RTX 3080Ti笔记本电脑GPU的性能到底如何?

这里依旧选择Time Spy、Port Royal、以及Fire Strike Extreme三种模式的测试结果作为参考。Time Spy DX12测试模式中,其评分高达13169分;Port Royal是光追性能的专业测试模式,它获得8297分的成绩;Fire Strike Extreme是通用游戏场景的极限测试模式,评分16082分。三项测试成绩相不用多说,是目前笔记本电脑GPU领域的最强者!





03 光线追踪技术让游戏画面更具质感更加真实

既然提到了光线追踪,那么我们首先就来深入了解一下这项技术对于游戏画面到底有怎样的影响。

自从GeForce RTX 20系列引入光线追踪技术以来,游戏画面的呈现效果,尤其是光影呈现效果更加贴近真实。但随之而来的自然是GPU性能压力的大幅增加。不过NVIDIA在GeForce RTX 30系列就完美解决了光追性能问题,目前即便是GeForce RTX 3060笔记本电脑GPU,也能够实现35fps以上的流畅光追体验。而这次评测的GeForce RTX 3080Ti笔记本电脑GPU,运行光追游戏就更加游刃有余。

在光追性能体验上,我们可以参考《控制》这款游戏。

首先来看场景一,在开启光线追踪之后,窗户能够清晰的反射出人物,这与真实环境下保持了同步。而关闭光线追踪之后,这一细节完全缺失。


开启光追


关闭光追

场景二中,开启光追之后,国旗、办公室里的白板都会被倒映在地面;而关闭光追之后,这些细节同样都已缺失。


开启光追


关闭光追

光线追踪技术其实在电影领域早已运用,而在游戏领域却依旧是一项新技术。对于画面而言,如何体现“光”的艺术性,是塑造优质画面的根本,这一点在很多领域都是通用常识。而光线追踪技术在游戏中的应用,就是为了让游戏画面更具细节感、更具质感、更有艺术性,它对于游戏画面的提升至关重要。而目前,只有搭载NVIDIA GeForce RTX 30系列GPU的PC,才能够更加完整、更好地体验到光线追踪带来的变化。

04 DLSS完美解决游戏画面帧率和画面问题

对于GeForce RTX 30系列笔记本电脑GPU而言,DLSS功能是最为实用的功能之一,它对于用户而言也是最能够直观感受到的功能之一,尤其是对于光追游戏而言,它是不可或缺的一项技术。

DLSS全称为深度学习超级采样,它技术AI渲染技术,通过渲染低分辨率图像,输出高分辨率图像,从而在不损失画质的情况下,大幅度提高游戏帧数。一般来说,支持光线追踪的游戏都会支持DLSS,二者同时“享用”,可以给用户带来非常出色的游戏体验。

那么DLSS开关前后究竟有怎样的差异呢?

首先我们来看看3DMark的NVIDIA DLSS功能测试,可以看到,关闭DLSS的情况下,画面平均帧率仅为38.51fps,开启DLSS之后,画面帧率飙升到91.06fps,流畅度提升高达133%,只能说是“效果拔群”!


3DMark DLSS模式测试结果

落地到实际游戏中我们再来感受一下DLSS的神奇。这里笔者选用的测试游戏为《赛博朋克2077》,它对于光线追踪和DLSS的支持非常完美。笔者测试时画面分辨率为默认的2560×1440,下面来看看测试结果。

场景一中我们看到,关闭DLSS、开启超级光追的情况下,画面帧率只有34fps,帧生成时间高达28.2ms,实际观看就是明显的跳帧与延迟。而在不同DLSS等级下,自动模式帧率75fps、帧生成时间13.5ms;质量模式帧率56fps、帧生成时间18.5ms;平衡模式帧率65fps、帧生成时间16.7ms;性能模式帧率76fps、帧生成时间14ms;超级性能模式飙升到103fps、帧生成时间仅为9.6ms。可以看到不同DLSS等级对于游戏画面帧率的影响非常明显,最高差异达到203%。


DLSS不同等级帧数差异

场景二同样如此,关闭DLSS、开启超级光追的情况下,画面帧率只有28fps,帧生成时间高达35.9ms。开启DLSS之后,自动模式帧率60fps、帧生成时间17.8ms;质量模式帧率51fps、帧生成时间19.3ms;平衡模式帧率61fps、帧生成时间17.3ms;性能模式帧率72fps、帧生成时间13.8ms;超级性能模式飙升到100fps、帧生成时间仅为8.7ms差异同样非常明显。


DLSS不同等级帧数差异

光线追踪开启之后,其对于GPU性能压力瞬间增大,因此画面帧数也会大幅降低,而DLSS功能则能够在保证光追特效完好呈现的情况下,大幅拉升画面帧数,二者可以说是一对“完美CP”。这使得玩家在享受光线追踪带来的优质画面之外,依旧可以享受流畅的游戏体验,这就是DLSS的神奇所在。

接下来我们再换另外一款游戏——《永劫无间》来看看DLSS在其中的表现。《永劫无间》作为一款具有竞技属性的游戏,其对画面流畅度的要求相当高,否则在对战时出现画面卡顿,就会影响到玩家的发挥。

在测试时我们将游戏画质开到最高等级,分辨率为2560×1440,下面看看不同DLSS模式下,游戏的画面帧数表现。

《永劫无间》这款游戏目前不支持光线追踪,但是DLSS依然在其中发挥重要作用。通过实测可以看到,关闭DLSS、最高画质的情况下,画面帧率为77fps,帧生成时间12.8ms。开启DLSS之后,自动模式帧率111fps、帧生成时间8.9ms;质量模式帧率105fps、帧生成时间9.7ms;平衡模式帧率119fps、帧生成时间7.9ms;性能模式帧率134fps、帧生成时间7.5ms;超级性能模式飙升到160fps、帧生成时间仅为6.9ms。不同DLSS模式下的画面帧数差异非常明显。

05 Battery Boost 2.0平衡游戏与续航体验

两大王牌功能技术之外,NVIDIA为GeForce RTX 30系列笔记本电脑GPU量身定制的Max-Q技术更加成熟和多样性,它为多维度全方位提升用户体验立下汗马功劳。

接下来我们看看全新第四代Battery Boost 2.0,它可以说是游戏和续航的“调解人”。

通过GeForce Experience软件中的Battery Boost模块,可以手动开启并调节相应设置。之后切换到GeForce Experience软件的游戏列表界面,在游戏图标上点击“详情”,即可进入到设置界面。在电池选项中点击优化按钮,即可将Battery Boost续航增强优化同步到特定游戏中。

使用开启了Battery Boost续航增强的机械革命旷世体验了《DOTA 2》这款游戏,首先可以看到游戏画面帧数在最高画质下可以稳定到30fps以上运行,满足基本游戏体验没有任何问题。

在经过20多分钟的一局人机对战游戏过后,电池电量从100%消耗到64%。后续笔者在关闭Battery Boost的情况下同样进行了一局20多分钟的游戏,电池电量从100%消耗到59%,虽然续航时间提升没有想象中那么大,但是开启Battery Boost之后,画面帧率稳定的同时续航时间要略长一些,而关闭Battery Boost的情况下,画面帧率不会稳定在30fps,而且续航时间要略短一些。

虽然大家一般都不会在不插电的情况下玩游戏,但如果偶尔遇到这种情况,Battery Boost的作用就会体现出来。它给人的感觉跟“书到用时方恨少”类似,算得上是雪中送炭、江湖救急的贴心技术。

06 水冷加持的12代酷睿i9-12900H性能出色

对于游戏而言,除了显卡性能至关重要之外,CPU性能也在其中起到了不小的作用。而且第四代Max-Q技术中的Resizable BAR技术、Dynamic Boost动态增强技术等,都能让GPU和CPU实现更好地协同,优化功耗、优化负载、优化体验。

这次机械革命旷世水冷版搭载了英特尔12代酷睿i9-12900H处理器,它是12代酷睿标压移动级处理器中的次旗舰。这颗处理器采用6个性能核心(P-Core) 8个能效核心(E-Core)的设计,拥有14核心20线程,睿频加速能力最高可到5GHz,默认基础功耗45W,默认最大功耗115W,采用Intel 7制程工艺设计,拥有高达24MB的三级缓存。

接下来我们看看这颗处理器的性能表现。

首先是CPU-Z测试,单处理器执行评分759.4,多处理器执行评分8253.1,相对于11代酷睿i9-11900H而言,单处理器性能提升约10%,多处理器性能提升高达30%左右。

CINEBENCH测试标准中,实测CINEBENCHR15多核2731cb、单核277cb;CINEBENCH R20多核7124cb、单核738cb;CINEBENCH R23多核18474pts、单核1917pts。从评分来看,水冷加持的机械革命旷世充分发挥出了这颗处理器的多核与单核性能。

Geekbench 5这款测试软件可以对处理器的单核和多核性能作出直观评估。实测酷睿i9-12900H处理器单核得分1736,多核得分达到了14420,相比11代酷睿i9-11900H而言,性能提升巨大。

物理渲染方面,V-Ray渲染器标准下,实测达到12781 vsamples,说明其拥有出色的物理渲染能力,这也使得机械革命旷世不仅适用于游戏,在3D渲染、建模等方面同样能够提供非常出色的性能支持。

视频编码性能本身就是酷睿平台的强项,12代酷睿i9-12900H处理器虽然采用P-Core E-Core的异构设计,但也通过英特尔线程调度器实现了异构核心的完美调度。通过x.264 Benchmark测试可见,编码2500 frames用时仅31秒,帧率高达81.04fps,视频编码效率极佳。

3DMark的CPU PROFILE可以对处理器进行单线程到多线程的全部测试,在这一测试标准下,英特尔12代酷睿i9-12900H处理器单线程得分高达1064,2线程得分1869,4线程得分3321,8线程得分5727,16线程得分7581,最大线程数综合得分8160,其单线程、2线程、4线程性能甚至达到了桌面级酷睿i7-12700K水准,性能可谓是相当出色。

07 DDR5内存 PCIe 4.0固态硬盘冲破存储瓶颈

英特尔12代酷睿开始支持DDR5内存,并且拓宽了PCIe 4.0通道带宽,下面我们来看看机械革命旷世的存储性能究竟如何。

可以看到,其内存读取速度达到69658MB/s,写入速度7849MB/s,拷贝速度69244MB/s,延迟90ns。相对于DDR4内存,读取、写入速度提升约50%,拷贝速度提升约60%,虽然延迟略高于DDR4内存,但读写性能带来的整体性能提升收益极为可观。

硬盘存储方面,机械革命旷世搭载了一块1TB容量PCIe 4.0固态硬盘,实测其顺序读取速度6573.24MB/s,写入速度4914.69MB/s,4K随机读取速度为80.68MB/s,写入速度为172.73MB/s,从测试来看,这块固态硬盘性能达到了PCIe 4.0固态硬盘的平均水准。

08 全能利器 综合性能无短板

综合性能测试,我们使用PCMark 10的扩展模式对其进行了评估。从结果可以看到,机械革命旷世在常用基本功能,包含Web浏览、视频会议、应用程序启动等得分为10568分,说明其完成这些基础办公任务没有任何问题;而在生产力项目测试中得分为10163分,表明其拥有高效的电子表格、文档工作性能;数位内容创作方面,其评分达到12736分,说明其能够非常高效地完成图片、视频、图形渲染等工作;游戏性能方面的评分更是高达23760分,毕竟两大强力硬件加持之下,这一点必然有着最佳保障。另外其综合得分为10472分,从中可以看出机械革命旷世是一款综合性能极佳的产品,并不只专注于游戏性能。

CrossMark主要是针对生产力进行测试,在其测试标准下,整体得分1976分,生产力得分1859分,创造力得分2180分,响应能力得分1764分。从得分来看,机械革命旷世是一款效率极佳的高效生产力工具。此外,这款机器的CrossMark各项评分,也是目前所有测试过的12代酷睿游戏本中最高的。

此外,得益于175W功率的GeForce RTX 3080Ti笔记本电脑GPU高效的图形性能输出,机械革命旷世拥有非常强大的图形渲染能力,它能够非常高效地支持目前市面各类主流渲染器,如OcteanBench、Blender、V-Ray等。下面我们以Octane渲染器为例,来看看GeForce RTX 3080Ti笔记本电脑GPU的渲染能力到底如何。

根据实际测试结果来看,GeForce RTX 3080Ti笔记本电脑GPU在Octane Bench测试标准中,最终得分高达411.89。而根据Octane官网测试数据来看,GeForce RTX 3080Ti笔记本电脑GPU的渲染性能介于桌面级GeForce RTX 3070和GeForce RTX 3070Ti之间,在笔记本电脑GPU中位列第一。当然这一结果并不让人意外,毕竟175W功率的GeForce RTX 3080Ti笔记本电脑GPU性能足以让人放心。

以下是Octane Bench各项测试详情,有兴趣的朋友可以参考:


各项测试采样率汇总


各项测试得分汇总

09 外置水冷加持 功耗释放充分 散热表现出色

为了应对175W功率的GeForce RTX 3080Ti笔记本电脑GPU,以及115W功耗的酷睿i9-12900H处理器,机械革命旷世推出了水冷版机型,它配备一款外置水冷,通过普通自来水即可达到高效降温目的。

之前我们所有的测试说明,机械革命旷世在GPU与CPU性能方面均实现了充分释放,下面来看看这些核心硬件的温度表现究竟如何。







首先在AIDA 64 Stress CPU压力测试下,处理器14个核心温度在76℃-93℃之间,功耗稳定在88.75W,频率稳定在3GHz。从TDP释放和核心温度来看,机械革命旷世达到了酷睿i9-12900H处理器默认功耗的较高水准,并且将核心温度控制在一个非常理想的状态。

GPU单烤机测试,Furmark 2560×1440分辨率下,GPU功耗释放172.69W,基本达到了175W满功耗状态,但GPU温度只有60℃,散热表现极为出色,水冷效果显著。

CPU GPU双烤机测试下,处理器核心温度为76℃-89℃,依旧保持在比较理想的状态。此时核心频率稳定在2.68GHz。GPU温度为61℃,CPU GPU功耗释放达到65.78W 151.65W,CPU性能释放充分,GPU也达到了非常不错的性能状态,日常游戏、生产力应用没有任何问题,且核心温度控制极佳,整体散热表现足以让人放心。

10 模具质感出众 接口扩展性极佳

感受过GPU、CPU以及整体强大的性能之后,我们回过头来看看机械革命旷世这款游戏本的外观设计。

机械革命旷世通体为黑色配色,A面采用金属材料搭载,哑光漆面配上条纹装饰,整体质感极佳。再加上机械革命LOGO独特的反光效果,以及LOGO周围科技蓝配色的描边,这款模具无疑能够第一眼就吸引到用户的关注。

机械革命旷世这款模具虽然为17.3英寸,但整体设计比较纤薄,因此看上去并不显得笨拙。其屏幕最大开合角度大概能够达到160°,可观看角度相对也更大一些。

这款模具背部边缘采用了斜向切割,因此整个机体比常规四四方方的模具看起来要更具动感一些。良好的屏轴阻尼控制,可以轻松地单手开合屏幕。

键盘为标准的6排布局,按键压力克数较小,键程适中,因此整体的敲击手感非常舒适。

全尺寸方向键对于游戏本来说自然是要给一个好评,独立数字键区同样也是加分项。再加上RGB背光的支持,机械革命旷世这块键盘满足了游戏玩家的普遍需求。

键盘区域右上角配有电源键,同时其左侧还配有性能模式切换键。

这款机器的触控板和腕托面积非常大。腕托区域的面板采用了触感柔和、舒适的类肤漆喷喷涂处理;触控板虽然看起来像是磨砂质感,但实际触感非常顺滑,而且因为面积足够大,DPI足够高,在17.3英寸屏幕上使用毫不拖泥带水。

接口方面,机身右侧配有1个SD卡槽,2个USB 3.1 GEN 1接口;机身左侧配有1个USB 3.1接口,1个耳机插孔和1个麦克风插孔。





其它接口主要分布在机身后部,最左侧两个特殊接口是水冷头进水和出水连接口,右侧依次配有雷电4、HDMI、RJ45网口以及电源插孔。作为一款17.3英寸大尺寸游戏本而言,机械革命旷世的接口扩展性极佳。

11 17.3英寸240Hz高刷屏体验出色

对于游戏本而言,17.3英寸屏幕能够带来更好的视觉观感体验,而且机械革命旷世这块屏幕整体的素质还是相当不错的,因此很适合游戏玩家。这块屏幕支持2.5K分辨率,采用了DC调光,左右边框4.7mm超窄设计,因此整体视觉体验舒适。

实测这块屏幕的刷新率为240Hz,是一款出色的高刷、高分电竞屏。

下面看看蜘蛛校色仪对其屏幕各项性能的测试情况:







实测可见,这块屏幕色域容积为97% sRGB、74% AdobeRGB、77% P3。屏幕亮度实测为362.9nits,同时其色准平均ΔE值达到了1.54,色彩展现丰富、色彩还原到位,整体显示效果不错。

12 评测总结

水冷加持的机械革命旷世,彻底展现了175W的GeForce RTX 3080Ti笔记本电脑GPU性能有多么强悍。同时我们也不能忽视,在光追游戏走向普及的今天,DLSS技术的重要性不言而喻。

对于NVIDIA而言,不断提升GPU性能自然是义不容辞。但如何将GPU性能充分释放?如何让笔记本电脑平衡高性能与续航之间的矛盾?如何通过AI这样的前沿技术促进PC体验的提升?同样也是NVIDIA这样的厂商们正在努力的方向。

说回到机械革命旷世这款产品,它通过外置水冷让两大高功耗、高性能硬件达到最佳状态,展现出色性能的同时,能够将核心温度控制在较低范围,充分展现出了旗舰级游戏本的实力。对于那些追求极致性能、喜好硬件的发烧友而言,机械革命旷世无疑是一个非常不错的选择。

焦点分析 | 东数西算启动,腾讯华为要攻克电老虎

作者 | 邓咏仪

编辑 | 苏建勋

眼下,推进“东数西算”落地,正成为“两会”人大代表热议的话题。

3月7日,国家发展改革委副主任林念修在国新办新闻发布会上表示,要加快打造10个国家数据中心集群,稳妥有序推进国家新型互联网交换中心、国家互联网骨干直连点建设。

全国人大代表、中国移动董事长杨杰认为:“算力是继热力、电力之后新的关键生产力,已成为衡量一个国家数字经济发展水平的重要指标。”

作为国家重要战略工程,“东数西算”对数据中心产业的发展至关重要,算力产业每投入1元,将带动经济产出3到4元;算力规模平均每增长1%,能撬动GDP增长0.2%。

半个多月前,“东数西算”拉开帷幕。据央视新闻、新华社等报道,2月17日,国家发展改革委、中央网信办、工业和信息化部、国家能源局联合印发文件,同意在京津冀、长三角、粤港澳大湾区、成渝、内蒙古、贵州、甘肃、宁夏等8地启动建设国家算力枢纽节点,并规划了10个国家数据中心集群。

至此,全国一体化大数据中心体系完成总体布局设计,“东数西算”工程正式全面启动。

和之前的“南水北调”“西电东送”等国家级工程一样,“东数西算”顾名思义,即是让东部地区对数据、算力的需求,引导到西部地区完成。

规划的10个集群有不同分工。放在西部地区的数据,一般是后台加工、离线分析、存储备份等对网络要求不高的业务;东部数据中心集群则负责处理对网络要求较高的业务——如工业互联网、金融证券、灾害预警、远程医疗、视频通话等场景。

随着数字经济的不断深入发展,近十年中,国家对于数字基建的投入肉眼可见地越来越大。“东数西算”工程启动,不仅是以国家力量对算力等生产要素进行统一调配,能够带动数据中心上下游产业的发展,这是相当长的链条。

除此之外,其背后的双碳政策也值得关注——ICT行业的“碳中和”脚步,越来越快了。

互联网的底座

数据中心是互联网的底座。一座座机房,承载着数据存储、计算、传输、应用等等需求,承载着联通世界的互联网。

截至目前,我国数据中心规模已达500万标准机架,算力达到130EFLOPS(每秒一万三千亿亿次浮点运算)。随着数字技术向经济社会各领域全面持续渗透,全社会对算力需求仍十分迫切,预计每年仍将以20%以上的速度快速增长。

在此前,国家已经在《“十四五”数字经济发展规划》中提及这一工程,去年也有一系列政策,逐步推进“东数西算”工程的落地。

联想企业科技集团服务方案业务总经理刘淼对36氪表示, “东数西算”对于中国数字经济发展具有重要的意义。能够对东西部算力资源长久以来持续失衡的发展趋势进行积极遏制、引导及平衡。另外,能够吸引资金在西部地区的投资,让西部地区能够参与数字经济中。

当前,联想集团在京津冀、长三角、大湾区等地均有布局,并与合作伙伴开展覆盖全国的边缘托管云合作。

为何要推出东数西算工程?又为何是在这个时候?

随着整个社会的互联网转型逐步深入,算力的需求缺口也越来越大。而在近五年中,我国正在慢慢经历从4G转移到5G的时期,这背后是云计算产业高速发展提供支撑。因此,数据存储、传输量更是以指数型速度增长。如何保证算力性价比处于一个合适的位置,是这些年热议的话题。

图注:腾讯云数据中心

算力需求在迅速上升,但基础设施资源紧张的苗头已经出现。

一个突出的矛盾是电力。去年“东数西算”战略提出之时,国家发改委就在发布会中提及,我国数据中心年用电量已占全社会用电的2%左右,且数据量仍在快速增长。据IDC预计,到2024年,数据中心耗电量将占到全社会耗电量的5%以上。

此前,由于东部地区的数字经济先发展起来,早期的数据中心大多建立在东部地区。然而,随着东部地区的土地、用电成本的逐步上升,把数据中心建在这些地区已经不再划算。因此,拥有丰富水电、风电等绿色能源以及土地资源的西部地区,就成为了合适之选。

事实上,不少大公司很早就觉察到数据中心等基建所带来的成本负担,早就在西部地区建立自己的数据中心。但这些数据中心呈孤岛状存在,西部地区总体面临着网络带宽小、跨省数据传输费用高等瓶颈。

“东数西算”工程要做的,正是以统一的制度,来引导数据中心等产业有序地往西部地区走,减少数据孤岛等问题。政策中的一句话也揭示了这方面的引导:“原则上,对于在国家枢纽节点之外新建的数据中心,地方政府不得给予土地、财税等方面的优惠政策”——也就是说,未来任何机构想要建大型的数据中心集群,成本肯定不会低了。

数据中心的市场需求,也会反过来影响“东数西算”战略的落地,企业是否上公有云是一个重要因素。

“数据中心的需求分为两大块,一个是企业上公有云,另一个是企业上私有云/混合云等。”腾讯IDC相关负责人对36氪表示,“上公有云后,企业今后因为成本而迁移的动力会更大;但如果是上私有云,或是当地有数据中心的硬性要求,这会成为能否把数据中心搬到西边的重要考量。”

数据中心“双碳”号角吹响

“东数西算”工程启动之际,其背后的“碳中和”经济账也值得关注。

数据中心的生命周期普遍为10-15年,并且一旦开始运转,就无法停歇,无数芯片运行时产生的热量需要以大量电力进行冷却。也因此,数据中心因耗电量大的问题,被戏称为“电老虎”。而这也不仅仅发生在中国,更是已经成为世界性的问题。

政策的指向已经非常清晰。不仅是数据中心集群要往西部走,新建集群也有严格的双碳标准需要遵守。

对于“东数西算”工程,发改委也强调,数据中心集群将大幅提升绿色能源使用比例,就近使用西部绿色能源。同时,集群也会通过技术创新、以大换小、低碳发展等措施,持续优化数据中心能源使用效率。

比如,集群内数据中心的平均上架率(指数据中心不能空置,需要机柜内服务器开机运行)至少要达到65%以上,可再生能源使用率需要有显著提升,而对落实“东数西算”成效突出的数据中心项目,也会优先考虑能耗指标支持。

而在未来,绿色数据中心的建设需求将大大提升。早在2019年,国家已经出台了相关规定,指2022年新建大型、超大型项目PUE(指数据中心总能耗/IT设备能耗)努力达到1.4以下;并且力争通过改造使既有大型、超大型项目PUE不高于1.8。而对于存量的数据中心,政策也在引导其进行优化和改善。

而据CDCC数据,在2021年度全国数据中心平均PUE为1.49,这一指标还有进步空间。

正因如此,“东数西算”导向催生的“双碳”需求,意味着存量和新增市场中的巨大机遇。

数据中心(IDC)行业是前期投入巨大的行业,并且拥有非常长的的产业链,上游有设备供应商,中游有数据服务、增值服务提供商,下游则有互联网企业、金融企业、政府机构等客户。据测算,“十四五”期间,这一行业每年将新增4000亿元以上相关投资。

来源:头豹研究院

第三方IDC服务商无无疑是这一工程的直接受益者。2月18日“东数西算”正式启动,A股相关板块就已经出现涨停潮,其中数据中心就有超过20家。

对于下游的云计算厂商而言,他们本身就基于数据中心承载自家业务。让数据中心降本增效,也俨然成为各家的“军备竞赛”。

比如,腾讯近期将陆续在全国新建多个百万级服务器规模的大型数据中心。腾讯相关负责人对36氪表示,腾讯正在建设的西部云计算数据中心二期项目,就采用了腾讯最新的第四代数据中心T-Block技术,能够进一步高效节能。

可以预见的是,低碳数据中心未来也会成为一门可观的生意。华为去年成立五大军团以后,成套的低碳数据中心解决方案也已经对外销售。就在2022 年2月份,华为就陆续官宣了与汇天网络和迪拜水电局的重磅合作。在中东,华为将为迪拜建设低碳数据园区,整体规划面积超过10万平方米,采用100%绿电驱动,是中东和非洲最大的低碳数据中心。

毫无疑问,“东数西算”这个历史性的工程,随着正式启动,拉开了它的序幕。对于市场上的玩家而言,坐上了“数字基建”这艘船只是开始,谁夺得“双碳”这对桨,才能在以后的日子中划得更快更远。

欢迎关注 「36 碳」

深度剖析Linux块设备IO子系统一_驱动模型秒懂

块设备是Linux三大设备之一,其驱动模型主要针对磁盘,Flash等存储类设备,块设备(blockdevice)是一种具有一定结构的随机存取设备,对这种设备的读写是按块(所以叫块设备)进行的,他使用缓冲区来存放暂时的数据,待条件成熟后,从缓存一次性写入设备或者从设备一次性读到缓冲区。作为存储设备,块设备驱动的核心问题就是哪些page->segment->block->sector与哪些sector有数据交互,本文以3.14为蓝本,探讨内核中的块设备驱动模型。

框架

下图是Linux中的块设备模型示意图,应用层程序有两种方式访问一个块设备:/dev和文件系统挂载点,前者和字符设备一样,通常用于配置,后者就是我们mount之后通过文件系统直接访问一个块设备了。

    read()系统调用最终会调用一个适当的VFS函数(read()-->sys_read()-->VFS_read()),将文件描述符fd和文件内的偏移量offset传递给它。

    VFS会判断这个SCI的处理方式,如果访问的内容已经被缓存在RAM中(磁盘高速缓存机制),就直接访问,否则从磁盘中读取

    为了从物理磁盘中读取,内核依赖映射层mapping layer,即上图中的磁盘文件系统

    确定该文件所在文件系统的块的大小,并根据文件块的大小计算所请求数据的长度。本质上,文件被拆成很多块,因此内核需要确定请求数据所在的块

    映射层调用一个具体的文件系统的函数,这个层的函数会访问文件的磁盘节点,然后根据逻辑块号确定所请求数据在磁盘上的位置。

    内核利用通用块层(generic block layer)启动IO操作来传达所请求的数据,通常,一个IO操作只针对磁盘上一组连续的块。

    IO调度程序根据预先定义的内核策略将待处理的IO进行重排和合并

    块设备驱动程序向磁盘控制器硬件接口发送适当的指令,进行实际的数据操作

块设备 VS 字符设备

作为一种存储设备,和字符设备相比,块设备有以下几种不同:

此外,大多数情况下,磁盘控制器都是直接使用DMA方式进行数据传送。

IO调度

就是电梯算法。我们知道,磁盘是的读写是通过机械性的移动磁头来实现读写的,理论上磁盘设备满足块设备的随机读写的要求,但是出于节约磁盘,提高效率的考虑,我们希望当磁头处于某一个位置的时候,一起将最近需要写在附近的数据写入,而不是这写一下,那写一下然后再回来,IO调度就是将上层发下来的IO请求的顺序进行重新排序以及对多个请求进行合并,这样就可以实现上述的提高效率、节约磁盘的目的。这种解决问题的思路使用电梯算法,一个运行中的电梯,一个人20楼->1楼,另外一个人15->5楼,电梯不会先将第一个人送到1楼再去15楼接第二个人将其送到5楼,而是从20楼下来,到15楼的时候停下接人,到5楼将第二个放下,最后到达1楼,一句话,电梯算法最终服务的优先顺序并不按照按按钮的先后顺序。Linux内核中提供了下面的几种电梯算法来实现IO调度:

    No-op I/O scheduler只实现了简单的FIFO的,只进行最简单的合并,比较适合基于Flash的存储

    Anticipatory I/O scheduler推迟IO请求(大约几个微秒),以期能对他们进行排序,获得更高效率

    Deadline I/O scheduler试图把每次请求的延迟降到最低,同时也会对BIO重新排序,特别适用于读取较多的场合,比如数据库

    CFQ I/O scheduler为系统内所有的任务分配均匀的IO带宽,提供一个公平的工作环境,在多媒体环境中,能保证音视频及时从磁盘中读取数据,是当前内核默认的调度器

我们可以通过内核传参的方式指定使用的调度算法

kernel elevator=deadline

或者,使用如下命令改变内核调度算法

echo SCHEDULER > /sys/block/DEVICE/queue/scheduler

Page->Segment->Block->Sector VS Sector

VS左面的是数据交互中的内存部分,Page就是内存映射的最小单位; Segment就是一个Page中我们要操作的一部分,由若干个相邻的块组成; Block是逻辑上的进行数据存取的最小单位,是文件系统的抽象,逻辑块的大小是在格式化的时候确定的, 一个 Block 最多仅能容纳一个文件(即不存在多个文件同一个block的情况)。如果一个文件比block小,他也会占用一个block,因而block中空余的空间会浪费掉。而一个大文件,可以占多个甚至数十个成百上千万的block。Linux内核要求 Block_Size = Sector_Size * (2的n次方),并且Block_Size <= 内存的Page_Size(页大小), 如ext2 fs的block缺省是4k。若block太大,则存取小文件时,有空间浪费的问题;若block太小,则硬盘的 Block 数目会大增,而造成 inode 在指向 block 的时候的一些搜寻时间的增加,又会造成大文件读写方面的效率较差,block是VFS和文件系统传送数据的基本单位。block对应磁盘上的一个或多个相邻的扇区,而VFS将其看成是一个单一的数据单元,块设备的block的大小不是唯一的,创建一个磁盘文件系统时,管理员可以选择合适的扇区的大小,同一个磁盘的几个分区可以使用不同的块大小。此外,对块设备文件的每次读或写操作是一种"原始"访问,因为它绕过了磁盘文件系统,内核通过使用最大的块(4096)执行该操作。Linux对内存中的block会被进一步划分为Sector,Sector是硬件设备传送数据的基本单位,这个Sector就是512byte,和物理设备上的概念不一样,如果实际的设备的sector不是512byte,而是4096byte(eg SSD),那么只需要将多个内核sector对应一个设备sector即可

VS右边是物理上的概念,磁盘中一个Sector是512Byte,SSD中一个Sector是4K

核心结构与方法简述

核心结构

    gendisk是一个物理磁盘或分区在内核中的描述

    block_device_operations描述磁盘的操作方法集,block_device_operations之于gendisk,类似于file_operations之于cdev

    request_queue对象表示针对一个gendisk对象的所有请求的队列,是相应gendisk对象的一个域

    request表示经过IO调度之后的针对一个gendisk(磁盘)的一个"请求",是request_queue的一个节点。多个request构成了一个request_queue

    bio表示应用程序对一个gendisk(磁盘)原始的访问请求,一个bio由多个bio_vec,多个bio经过IO调度和合并之后可以形成一个request。

    bio_vec描述的应用层准备读写一个gendisk(磁盘)时需要使用的内存页page的一部分,即上文中的"段",多个bio_vec和bio_iter形成一个bio

    bvec_iter描述一个bio_vec中的一个sector信息

核心方法

    set_capacity()设置gendisk对应的磁盘的物理参数

    blk_init_queue()分配 初始化 绑定一个有IO调度的gendisk的requst_queue,处理函数是void (request_fn_proc) (struct request_queue *q);类型

    blk_alloc_queue() 分配 初始化一个没有IO调度的gendisk的request_queue,

    blk_queue_make_request()绑定处理函数到一个没有IO调度的request_queue,处理函数函数是void (make_request_fn) (struct request_queue *q, struct bio *bio);类型

    __rq_for_each_bio()遍历一个request中的所有的bio

    bio_for_each_segment()遍历一个bio中所有的segment

    rq_for_each_segment()遍历一个request中的所有的bio中的所有的segment 最后三个遍历算法都是用在request_queue绑定的处理函数中,这个函数负责对上层请求的处理。

核心结构与方法详述

gendisk

同样是面向对象的设计方法,Linux内核使用gendisk对象描述一个系统的中的块设备,类似于Windows系统中的磁盘分区和物理磁盘的关系,OS眼中的磁盘都是逻辑磁盘,也就是一个磁盘分区,一个物理磁盘可以对应多个磁盘分区,在Linux中,这个gendisk就是用来描述一个逻辑磁盘,也就是一个磁盘分区。

165 struct gendisk {169 int major; /* major number of driver */170 int first_minor;171 int minors; 174 char disk_name[DISK_NAME_LEN]; /* name of major driver */175 char *(*devnode)(struct gendisk *gd, umode_t *mode);177 unsigned int events; /* supported events */178 unsigned int async_events; /* async events, subset of all */185 struct disk_part_tbl __rcu *part_tbl;186 struct hd_struct part0;188 const struct block_device_operations *fops;189 struct request_queue *queue;190 void *private_data;192 int flags;193 struct device *driverfs_dev; // FIXME: remove194 struct kobject *slave_dir;196 struct timer_rand_state *random;197 atomic_t sync_io; /* RAID */198 struct disk_events *ev;200 struct blk_integrity *integrity;202 int node_id;203 };

struct gendisk --169-->驱动的主设备号 --170-->第一个次设备号 --171-->次设备号的数量,即允许的最大分区的数量,1表示不允许分区 --174-->设备名称 --185-->分区表数组首地址 --186-->第一个分区,相当于part_tbl->part[0] --188-->操作方法集指针 --189-->请求对象指针 --190-->私有数据指针 --193-->表示这是一个设备

gendisk是一个动态分配的结构体,所以不要自己手动来分配,而是使用内核相应的API来分配,其中会做一些初始化的工作

struct gendisk *alloc_disk(int minors);//注册gendisk类型对象到内核void add_disk(struct gendisk *disk);//从内核注销gendisk对象void del_gendisk(struct gendisk *gp);

上面几个API是一个块设备驱动中必不可少的部分,下面的两个主要是用来内核对于设备管理用的,通常不要驱动来实现

//对gendisk的引用计数 1struct kobject *get_disk(struct gendisk *disk);//对gendisk的引用计数-1void put_disk(struct gendisk *disk);

这两个API最终回调用kobject *get_disk() 和kobject_put()来实现对设备的引用计数

block_device_operations

和字符设备一样,如果使用/dev接口访问块设备,最终就会回调这个操作方法集的注册函数

//include/linux/blkdev.h1558 struct block_device_operations {1559 int (*open) (struct block_device *, fmode_t);1560 void (*release) (struct gendisk *, fmode_t);1561 int (*ioctl) (struct block_device *, fmode_t, unsigned, unsigned long);1562 int (*compat_ioctl) (struct block_device *, fmode_t, unsigned, unsigned long);1563 int (*direct_access) (struct block_device *, sector_t,1564 void **, unsigned long *);1565 unsigned int (*check_events) (struct gendisk *disk,1566 unsigned int clearing);1568 int (*media_changed) (struct gendisk *);1569 void (*unlock_native_capacity) (struct gendisk *);1570 int (*revalidate_disk) (struct gendisk *);1571 int (*getgeo)(struct block_device *, struct hd_geometry *);1573 void (*swap_slot_free_notify) (struct block_device *, unsigned long);1574 struct module *owner;1575 };

struct block_device_operations --1559-->当应用层打开一个块设备的时候被回调 --1560-->当应用层关闭一个块设备的时候被回调 --1562-->相当于file_operations里的compat_ioctl,不过块设备的ioctl包含大量的标准操作,所以在这个接口实现的操作很少 --1567-->在移动块设备中测试介质是否改变的方法,已经过时,同样的功能被check_event()实现 --1571-->即get geometry,获取驱动器的几何信息,获取到的信息会被填充在一个hd_geometry结构中 --1574-->模块所属,通常填THIS_MODULE

request_queue

每一个gendisk对象都有一个request_queue对象,前文说过,块设备有两种访问接口,一种是/dev下,一种是通过文件系统,后者经过IO调度在这个gendisk->request_queue上增加请求,最终回调与request_queue绑定的处理函数,将这些请求向下变成具体的硬件操作

294 struct request_queue { 298 struct list_head queue_head; 300 struct elevator_queue *elevator; 472 };

struct request_queue --298-->请求队列的链表头 --300-->请求队列使用的IO调度算法, 通过内核启动参数来选择: kernel elevator=deadline request_queue_t和gendisk一样需要使用内核API来分配并初始化,里面大量的成员不要直接操作, 此外, 请求队列如果要正常工作还需要绑定到一个处理函数中, 当请求队列不为空时, 处理函数会被回调, 这就是块设备驱动中处理请求的核心部分!

从驱动模型的角度来说, 块设备主要分为两类需要IO调度的和不需要IO调度的, 前者包括磁盘, 光盘等, 后者包括Flash, SD卡等, 为了保证模型的统一性 , Linux中对这两种使用同样的模型但是通过不同的API来完成上述的初始化和绑定

有IO调度类设备API

//初始化 绑定struct request_queue *blk_init_queue(request_fn_proc *rfn, spinlock_t *lock)

无IO调度类设备API

//初始化struct request_queue *blk_alloc_queue(gfp_t gfp_mask) //绑定 void blk_queue_make_request(struct request_queue *q, make_request_fn *mfn)

共用API

针对请求队列的操作是块设备的一个核心任务, 其实质就是对请求队列操作函数的编写, 这个函数的主要功能就是从请求队列中获取请求并根据请求进行相应的操作 内核中已经提供了大量的API供该函数使用

//清除请求队列, 通常在卸载函数中使用void blk_cleanup_queue(struct request_queue *q) //从队列中去除请求blkdev_dequeue_request()//提取请求struct request *blk_fetch_request(struct request_queue *q)//从队列中去除请求struct request *blk_peek_request(struct request_queue *q)//启停请求队列, 当设备进入到不能处理请求队列的状态时,应通知通用块层void blk_stop_queue(struct request_queue *q) void blk_start_queue(struct request_queue *q)

request

97 struct request { 98 struct list_head queuelist; 104 struct request_queue *q; 117 struct bio *bio; 118 struct bio *biotail; 119 120 struct hlist_node hash; /* merge hash */ 126 union { 127 struct rb_node rb_node; /* sort/lookup */ 128 void *completion_data; 129 }; 137 union { 138 struct { 139 struct io_cq *icq; 140 void *priv[2]; 141 } elv; 142 143 struct { 144 unsigned int seq; 145 struct list_head list; 146 rq_end_io_fn *saved_end_io; 147 } flush; 148 }; 149 150 struct gendisk *rq_disk; 151 struct hd_struct *part; 199 };

struct request --98-->将这个request挂接到链表的节点 --104-->这个request从属的request_queue --117-->组成这个request的bio链表的头指针 --118-->组成这个request的bio链表的尾指针 --120-->内核hash表头指针

bio

bio用来描述单一的I/O请求,它记录了一次I/O操作所必需的相关信息,如用于I/O操作的数据缓存位置,,I/O操作的块设备起始扇区,是读操作还是写操作等等

46 struct bio { 47 struct bio *bi_next; /* request queue link */ 48 struct block_device *bi_bdev; 49 unsigned long bi_flags; /* status, command, etc */ 50 unsigned long bi_rw; /* bottom bits READ/WRITE, 51 * top bits priority 52 */ 54 struct bvec_iter bi_iter; 59 unsigned int bi_phys_segments; 65 unsigned int bi_seg_front_size; 66 unsigned int bi_seg_back_size; 68 atomic_t bi_remaining; 70 bio_end_io_t *bi_end_io; 72 void *bi_private; 85 unsigned short bi_vcnt; /* how many bio_vec's */ 91 unsigned short bi_max_vecs; /* max bvl_vecs we can hold */104 struct bio_vec bi_inline_vecs[0];105 };

struct bio --47-->指向链表中下一个bio的指针bi_next --50-->bi_rw低位表示读写READ/WRITE, 高位表示优先级 --90-->bio对象包含bio_vec对象的数目 --91-->这个bio能承载的最大的io_vec的数目 --95-->该bio描述的第一个io_vec --104-->表示这个bio包含的bio_vec变量的数组,即这个bio对应的某一个page中的一"段"内存

bio_vec

描述指定page中的一块连续的区域,在bio中描述的就是一个page中的一个"段"(segment)

25 struct bio_vec { 26 struct page *bv_page; 27 unsigned int bv_len; 28 unsigned int bv_offset; 29 };

struct bio_vec --26-->描述的page --27-->描述的长度 --28-->描述的起始地址偏移量

bio_iter

用于记录当前bvec被处理的情况,用于遍历bio

31 struct bvec_iter { 32 sector_t bi_sector; /* device address in 512 byt 33 sectors */ 34 unsigned int bi_size; /* residual I/O count */ 35 36 unsigned int bi_idx; /* current index into bvl_ve 37 38 unsigned int bi_bvec_done; /* number of bytes completed 39 current bvec */ 40 };

__rq_for_each_bio()

遍历一个request中的每一个bio

738 #define __rq_for_each_bio(_bio, rq) 739 if ((rq->bio)) 740 for (_bio = (rq)->bio; _bio; _bio = _bio->bi_next)

bio_for_each_segment()

遍历一个bio中的每一个segment

242 #define bio_for_each_segment(bvl, bio, iter) 243 __bio_for_each_segment(bvl, bio, iter, (bio)->bi_iter)

rq_for_each_segment()

遍历一个request中的每一个segment

742 #define rq_for_each_segment(bvl, _rq, _iter) 743 __rq_for_each_bio(_iter.bio, _rq) 744 bio_for_each_segment(bvl, _iter.bio, _iter.iter)

小结

遍历request_queue,绑定函数的一个必要的工作就是将request_queue中的数据取出, 所以遍历是必不可少的, 针对有IO调度的设备, 我们需要从中提取请求再继续操作, 对于没有IO调度的设备, 我们可以直接从request_queue中提取bio进行操作, 这两种处理函数的接口就不一样,下面的例子是对LDD3中的代码进行了修剪而来的,相应的API使用的是3.14版本,可以看出这两种模式的使用方法的不同。

sbull_init └── setup_device ├──sbull_make_request │ ├──sbull_xfer_bio │ └──sbull_transfer └──sbull_full_request ├──blk_fetch_request └──sbull_xfer_request ├── __rq_for_each_bio └── sbull_xfer_bio └──sbull_transfer

/* * Handle an I/O request. * 实现扇区的读写 */static void sbull_transfer(struct sbull_dev *dev, unsigned long sector,unsigned long nsect, char *buffer, int write){unsigned long offset = sector*KERNEL_SECTOR_SIZE;unsigned long nbytes = nsect*KERNEL_SECTOR_SIZE;if (write)memcpy(dev->data offset, buffer, nbytes);elsememcpy(buffer, dev->data offset, nbytes);}/* * Transfer a single BIO. */static int sbull_xfer_bio(struct sbull_dev *dev, struct bio *bio){struct bvec_iter i;//用来遍历bio_vec对象struct bio_vec bvec;sector_t sector = bio->bi_iter.bi_sector;/* Do each segment independently. */bio_for_each_segment(bvec, bio, i) { //bvec会遍历bio中每一个bio_vec对象 char *buffer = __bio_kmap_atomic(bio, i, KM_USER0);sbull_transfer(dev, sector, bio_cur_bytes(bio)>>9 ,buffer, bio_data_dir(bio) == WRITE);sector = bio_cur_bytes(bio)>>9;__bio_kunmap_atomic(bio, KM_USER0);}return 0; /* Always "succeed" */}/* * Transfer a full request. */static int sbull_xfer_request(struct sbull_dev *dev, struct request *req){struct bio *bio;int nsect = 0; __rq_for_each_bio(bio, req) { sbull_xfer_bio(dev, bio);nsect = bio->bi_size/KERNEL_SECTOR_SIZE;}return nsect;}/* * Smarter request function that "handles clustering".*/static void sbull_full_request(struct request_queue *q){struct request *req;int nsect;struct sbull_dev *dev ;int i = 0;while ((req = blk_fetch_request(q)) != NULL) {dev = req->rq_disk->private_data;nsect = sbull_xfer_request(dev, req); __blk_end_request(req, 0, (nsect<<9)); printk ("i = %dn", i);}}//The direct make request versionstatic void sbull_make_request(struct request_queue *q, struct bio *bio){struct sbull_dev *dev = q->queuedata;int status;status = sbull_xfer_bio(dev, bio);bio_endio(bio, status); return;}/* * The device operations structure. */static struct block_device_operations sbull_ops = {.owner = THIS_MODULE,.open = sbull_open,.release= sbull_release,.getgeo= sbull_getgeo,};/* * Set up our internal device. */static void setup_device(struct sbull_dev *dev, int which){/* * Get some memory. */memset (dev, 0, sizeof (struct sbull_dev));dev->size = nsectors * hardsect_size;dev->data = vmalloc(dev->size);/* * The I/O queue, depending on whether we are using our own * make_request function or not. */switch (request_mode) {case RM_NOQUEUE:dev->queue = blk_alloc_queue(GFP_KERNEL);blk_queue_make_request(dev->queue, sbull_make_request);break;case RM_FULL:dev->queue = blk_init_queue(sbull_full_request, &dev->lock);break;}dev->queue->queuedata = dev;/* * And the gendisk structure. */dev->gd = alloc_disk(SBULL_MINORS);dev->gd->major = sbull_major;dev->gd->first_minor = which*SBULL_MINORS;dev->gd->fops = &sbull_ops;dev->gd->queue = dev->queue;dev->gd->private_data = dev;snprintf (dev->gd->disk_name, 32, "sbull%c", which 'a');set_capacity(dev->gd, nsectors*(hardsect_size/KERNEL_SECTOR_SIZE));add_disk(dev->gd);return;}static int __init sbull_init(void){int i;/* * Get registered. */sbull_major = register_blkdev(sbull_major, "sbull");/* * Allocate the device array, and initialize each one. */Devices = (struct sbull_dev *)kmalloc(ndevices*sizeof (struct sbull_dev), GFP_KERNEL);for (i = 0; i < ndevices; i ) setup_device(Devices i, i);return 0;}

免责声明:本文由用户上传,如有侵权请联系删除!