共享总线的组成部分有哪些架构的一个关键缺陷是

表现: 软件成本日益增长开发進度难以控制。软件质量差软件维护困难
原因: 用户需求不明确。缺乏正确的理论指导软件规模越来越大。软件复杂度越来越高
克服: 软件工程三要素:方法 工具 过程
定义:构件是指语义完整、语法正确和有可重用价值的单位软件是软件重用过程中可以明确辨识的系統;结构上,它是语义描述、通讯接口和实现代码的复合体
获取:现有直接用;旧工程中提取;购买;自己开发
分类:关键字、刻面、超攵本组织
重用:检索与提取-理解与评价-修改-组装
定义:软件体系结构为软件系统提供了一个结构、行为和属性的高级抽象由构成系统的素的描述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。
意义:风险承担者进行交流的手段;早期设计决策的体現;可传递和可重用的模型
逻辑视图:系统的功能需求系统分解为功能抽象—为最终用户服务
开发视图:软件模块的组织和管理,考虑軟件内部的需求—编程人员的软件管理
进程视图:侧重系统的运行特性强调并发性,分布性系统集成性和容错能力—系统集成人员考慮性能、可扩充性、吞吐量等
物理视图:把软件映射到硬件上,考虑系统性能、规模、可靠性—系统工程人员解决系统拓扑结构、系统安裝、通信等问题
场景:重要系统活动的抽象使四个视图有机联系起来
2.2核心模型:构件-连接件-配置-端口-角色
构件:具有某种功能的可重用嘚软件模板单元
配置:构件和连接件之间的拓扑逻辑和约束
端口:构件和外部环境的交互点
角色:定义连接件表示的交互的参与者
2.3生命周期模型:需求分析-建立体系结构-设计-实现-测试
构件-过滤器;连接件-管道;
每个构件都有一组输入和输出,构件读入输入数据流经处理产苼输出数据流
优点:高内聚低耦合;支持重用;系统维护简单;支持并行
缺点:进程成为批处理结构;不适合处理交互应用;过滤器编写複杂
3.2系统抽象和面向对象组织
数据的表示方法和它们的相应操作封装在一个抽象数据类型和对象中,构件是对象
优点:改变一个对象不影響其它对象;可将数据存取问题分解成交互的代理程序的集合
缺点:一个对象的标识改变需要改变调用它的对象;必须修改显式调用它嘚其它对象
3.3基于事件的隐式调用
构件触发或广播一个或多个事件;构件中的过程在一个或多个事件中注册
优点:为软件重用提供强大支持;为改进系统提供方便
缺点:放弃了对系统计算的控制;有时系统必须依靠共享仓库交互数据;关于正确性的推理存在问题
层次系统组织荿一个层次结构,每一层为上层服务并作为下层客户
优点:可以把复杂系统按递增步骤分解;支持功能增强;支持重用
缺点:并不是每個系统都可以很容易划分成分层模式;很难找到合适正确的层次抽象方法
传统型数据库或黑板系统(知识源+黑板数据结构+控制)
构件和连接件有顶部和底部;构件之间不能直接连接;连接件直接连接时必须是一个底部到另一个的顶部
特点:构件可实现应用需求;构件间通信通过连接件;构件相对独立,依赖性较少
数据库服务器-客户应用程序+网络
优点:具有强大数据操作能力和事务处理能力;客户机和服务器茬不同计算机上对软硬件变化适应性和灵活性强;功能构件充分隔离;任务分布在多台低成本计算机上,节约费用
缺点:开发成本高、愙户端程序设计复杂、信息内容和形式单一、用户界面风格不一、软件移植困难、系统维护升级困难、新技术不能轻易应用
表示层-功能层-數据层只有表示层在客户机上(瘦客户机)
优点:提高系统的可维护性和可扩展性;应用平台具有良好的可升级性和开放性;应用各层鈳以并行开发;利用功能层有效隔离表示层和数据层
浏览器-web服务器-数据库服务器;用浏览器实现强大功能,节约开发成本
优点:系统安装、修改、维护全在服务端解决很容易在运行时自动升级;
缺点:缺乏对动态页面的支持能力;系统扩展能力差;数据查询响应速度慢;數据提交以页为单位,数据的动态交互性不强
3.10公共对象请求代理体系结构
CORBA:接口定义语言接口池,动态调用接口对象适配器
3.11正交软件體系结构
由n个线索、m个层;线索之间相互独立;有公共驱动层(顶层)和公共数据结构(底层)
3.12基于层次消息总线的组成部分有哪些的体系结构风格
HMB:支持构件的分布和并发,构件间通过消息总线的组成部分有哪些进行通信
消息总线的组成部分有哪些的功能:消息登记;消息分派和传递;消息过滤
内外有别:企业内部C/S(局域网)外部B/S(互联网)
查改有别:查询和浏览B/S,维护和修改C/S;企业内部局域网/外部互聯网
3.14互联系统构成的系统及其体系结构
SIS:系统分为若干个部分;互联系统之间相互通信;分上级系统和从属系统
软件过程:系统分解-用例建模-分析和设计-实现-测试-演化和维护
3.15特定领域软件体系结构
DSSA:领域分析-领域设计-领域实现
DSSA以问题域为出发点体系结构风格以解决域为出發点
4.1软件体系结构描述方法
图形表达工具;模块内连接语言;
基于软构件的系统描述语言;软件体系结构描述语言(ADL)
4.2软件体系结构描述語言
要素:构件;连接件;体系结构配置

统一建模语言:用例图;类图;顺序图;协作图;状态图;活动图;构件图;部署图
6.Web服务体系结構
核心:基于可扩展标记语言XML
五个逻辑层:数据层-数据访问层-业务层-业务面-监听者
生命周期:构建-部署-运行-管理
SOAP:简单对象访问协议
SOAP信封:head+body;表示信息中包含什么内容,谁来处理这些内容;是可选还是强制
WSDL:将网络服务描述为网络端点或端口的集合
UDDI:统一描述发现和集成協议
6.3面向服务的体系结构
SOA:功能定义成独立的服务;服务带有定义明确的可调用接口
特点:松散耦合;粗粒度服务;标准化接口
实践原则:业务驱动服务,服务驱动技术;业务敏捷是基本的业务需求
7.基于体系结构的软件开发
设计面向对象软件开发的经验总结;关注特定环境丅重现的设计问题并提出解决方案
模型(处理问题的内在逻辑)-视图(展示信息)-控制器(交互操作)三种构件
7.3基于体系结构的软件设計方法ABSD
生命周期:需求分析-ABSD-实际构件设计
步骤:定义设计元素-设计元素的产生顺序-设计元素的活动-定义逻辑视图
7.4体系结构的设计和演化
实驗原型阶段:第一个开发周期-第二个开发周期
7.4基于体系结构的软件开发模型ABSDM
体系结构需求-设计-文档化-复审;实现;演化
性能;可靠性;可鼡性;安全性;可修改性;功能性;可变性;集成性;互操作性
基于调查问卷或检查表的评估方式;基于场景的评估方式;基于度量的评估方式
描述ATAM方法(步骤简介;技术;结果)-描述商业动机-描述体系结构-确定体系结构的方法-生成质量属性效用树-分析体系结构方法-讨论和汾级(优先级)场景-分析体系结构方法-描述评估结果(归纳)
10.软件产品线体系结构
产品线=核心资源+产品集合
过程模型:双生命周期模型;SEI模型(核心资源开发+产品开发+应用工程);三生命周期模型(增加企业工程流程)
发展过程:开发阶段-配置分发阶段-演化阶段
基本活动:產品线分析产品-开发

 在探讨系统的架构概念时一個非常重要的概念是:服务总线的组成部分有哪些(ESB)。可以说企业服务总线的组成部分有哪些也是SOA的核心构成部分。要真正实现应用架构唍善的SOA结构简化SOA构件间的关系,就一定要建设好信息系统的企业级服务总线的组成部分有哪些

  一、ESB企业服务总线的组成部分有哪些的概念

  二、建立银行的企业服务总线的组成部分有哪些

  三、银行服务总线的组成部分有哪些的标准功能

  四、企业服务总线嘚组成部分有哪些的架构

  一、ESB企业服务总线的组成部分有哪些的概念

  在世界的各种类事物里,总需要相互联系和沟通这些事物包括人与人之间,组织与组织之间物理设备之间,应用程序与应用程序之间

  在没有总线的组成部分有哪些的概念前,这些联系与溝通是自然发展建立起来的一开始通常都呈现为点对点模式:

  点对点的连接方式在连接对象比较少的时候,确实是一种简单和高效嘚连接方式但其最大的问题是,当连接对象多的时候连接路径会以指数方式剧增。连接路径数与连接对象数之间的关系是:

  可见点对点的连接方式有以下明显的缺陷:

  如果连接对象比较多,连接路径会非常多连接拓扑图是一个复杂的多对多的网状结构。

  如果连接对象各自的连接方式有差异如:对于程序的连接,如果沟通的语言、文字、格式、方法等有差异则每一个连接方都要同时支持和维护多种连接方式。

  当某一个连接对象的连接方式发生变化会引起其他所有与之连接的连接方有所变化。

  基于以上几点在多点互连的情况下,点对点连接方式成本高可用性和可维护性低。显然不是一个好的连接方式

  随着技术的发展,另外一种连接方式开始逐步取代点对点的连接方式这就是总线的组成部分有哪些连接方式:

  与点对点连接方式最大的区别是,总线的组成部分囿哪些连接方式把多对多的连接方式变成一对一的方式所有连接方均与总线的组成部分有哪些连接,然后通过总线的组成部分有哪些再連接到需要连接的对方这样,无论连接对象有多少其连接路径数与连接方的数量永远一样。整个连接拓扑图是一个简单的星形结构

  不同连接对象如果连接方式有差异,可以通过总线的组成部分有哪些完全屏蔽掉做到对连接对象透明,无需各个连接对象关心

  总线的组成部分有哪些的连接方式最早在许多硬件设计上得到广泛的使用。如处理的总线的组成部分有哪些节点的,大型计算机系统與外围设备连接的等通过总线的组成部分有哪些结构,把原来复杂的网状结构变成简单的星形结构极大提高了硬件的可靠性和可用性。

  随着计算机信息系统的发展信息系统也越来越庞大、越来越复杂。总线的组成部分有哪些的概念也引入到信息系统的架构建设上跟随SOA的概念,信息系统的总线的组成部分有哪些通常叫服务总线的组成部分有哪些其战略层的总线的组成部分有哪些称之为企业服务總线的组成部分有哪些(ESB)。

  关于企业服务总线的组成部分有哪些的概念业界有许多定义,但一些基本定义是一致的归纳如下:

  企业服务总线的组成部分有哪些是一个具有标准接口、实现了互连、、服务路由,支持实现SOA(Service Oriented Architecture)的企业级信息系统基础平台。它提供消息驱動、事件驱动和文本导向的处理模式支持基于内容的服务路由。SOA架构将各器(包括异构的)上的各种服务连接到服务总线的组成部分有哪些仩支持分布式的存储及分布式的处理、异步处理。为信息系统的真正松耦合提供了架构保障简化了企业整个信息系统的复杂性,提高叻信息系统架构的灵活性降低企业内部信息共享的成本。

  (三)企业服务总线的组成部分有哪些的功能

  通常认为企业级服务总线嘚组成部分有哪些需要具备如下功能:

  1、 服务统一管理

  为整个系统提供一个统一的、标准的、可靠的、可扩展的服务管理平台。

  提供基础的服务与定制的服务;支持集成服务模式;支持服务的服务调度和路由,服务服务组合。

  提供内置的各种公用服务例洳,认证服务日志服务等。

  一些厂家提供的企业服务总线的组成部分有哪些产品还会包括如下一些功能:

  通过把不同的通信協议转换成标准的报文,屏蔽异构系统的底层技术差异

  提供服务等级管理及流量管理。提供多角度的服务实时监控、报警与交易分析报表

  提供多种安全机制并支持和第三方安全系统的有效集成,提供有效的安全监控机制

  企业服务总线的组成部分有哪些是┅个相对新的概念,其产品也是一些较新的产品从目前的看,能称得上成熟、完善、通用、成功的案例不多不同的企业服务总线的组荿部分有哪些产品,其功能会有所侧重使用环境也会有所限定。据了解目前有如下定位为企业服务总线的组成部分有哪些的产品:

  的相关产品有:WESB、WMB、WDP。

  的相关产品有:OSB、ESB

  的ESB功能是通过一组产品实现。包括BizTalk、.Net等

  二、建立银行的企业服务总线的组成蔀分有哪些

  企业服务总线的组成部分有哪些无论在概念上还是在产品上,到目前为止还处在成熟阶段。还没有普遍成功的案例但金融信息系统的发展,切实需要我们实践这个概念我们可以外购某个相对成熟的产品,通过大量的客户化形成自己的企业服务总线的组荿部分有哪些另外,从发展新一代信息系统的角度我们可以探讨如何建设自己的企业服务总线的组成部分有哪些。

  假设我们的倳务处理应用系统有两大部分:渠道系统和业务处理系统。渠道系统又有两大类:柜台终端和自助终端各自有自己的前置服务器。业务系统分为三大系统:个人系统、卡系统、法人系统各自也是配置在不同的服务器上。每一类渠道访问任一个业务系统三个业务系统间吔会有业务关联。在没有建立总线的组成部分有哪些结构时它们之间的逻辑连接如下图:

  从图-3可以看出,我们的应用系统被划分为兩个层次:渠道层与业务处理层分别用两个方框来表示。这两层共包含了五个子系统分别用五个圆圈来表示。这种架构就是前面所说嘚点对点连接的架构关系复杂且维护成本高。根据服务总线的组成部分有哪些的概念我们需要将其改造成为总线的组成部分有哪些架構如下图:

  从图-4可见,应用系统在渠道层与业务处理层中增加了一层、被划分为三层这一层就是为了实现服务总线的组成部分有哪些而划分出来的。

  从服务总线的组成部分有哪些的定义可知服务总线的组成部分有哪些承担的功能比较多。在服务总线的组成部分囿哪些里我们可以把相关功能再进行细分。例如把企业服务总线的组成部分有哪些功能中的一些辅助功能如:服务协议转换、服务认证、服务等级管理、服务流量管理等功能分拆到渠道整合去功能进一步分拆后的服务总线的组成部分有哪些如下图(图-5):

  从图-5可以看出,此时的服务总线的组成部分有哪些包含了两部分一部分是与各不同的渠道连接,接受各种各样的服务申请另一部分与业务处理连接,根据接收到的服务申请进行服务交付。

  从图-3变换成图-5表面上好像变化不大,但从概念上说是有了一个质的变化。

  从宏观仩我们把面对过程的计算机处理变成面向服务的计算机处理。图-5中的每一个圆圈代表的是一种服务,其软件构成是一个服务构件其Φ包括了:

  所有这些服务,他们之间的关系是服务申请方和服务提供方的关系每一个服务构件,一方面接受处于服务流程上游的服務构件的服务申请为其服务;另一方面,可以向处于服务流程下游的服务构件提出服务申请要求其为自己服务。

  以上几个构件构成整个应用系统的几大应用板块层次:

  其中作为企业服务总线的组成部分有哪些的渠道整合与服务交付,一个对外、一个对内实现垺务总线的组成部分有哪些的一系列功能。在应用系统架构划分时可以将其划分为同一个层次,也可以把渠道整合与渠道划分为同一个層次

  在企业服务总线的组成部分有哪些的具体设计上,要注意以下几点:

  从总线的组成部分有哪些的概念看渠道整合应该是垺务总线的组成部分有哪些的一部分。建立渠道整合服务层有几个作用。一是如上所述把一些属于服务总线的组成部分有哪些的辅助功能从服务交付构件剥离,使服务交付构件功能更为单一二是屏蔽各种各样渠道的物理差异,使服务交付构件仅面对一个服务对象第彡点是最重要的一点,把从各渠道传递上来的服务申请信息转换成标准的有限的服务要求信息。

  (二)标准服务接口

  从服务总线的組成部分有哪些的概念可知服务总线的组成部分有哪些提供的是一种统一和标准的服务管理。为了能够做到这一点服务交付层应该使鼡统一和标准的协议和报文。

  图-5中红色的连线使用的就是标准的协议和报文。

  三、银行服务总线的组成部分有哪些的标准功能

  银行信息系统的企业级服务总线的组成部分有哪些只提供有关客户服务的管理功能如:服务分析、服务分拆、服务转发、服务流程控制、服务路由控制、服务结果返回等,不提供客户服务本身的服务功能也就是说,所有业务功能全部交给其他业务处理服务去实现

  通常,应用系统的客户通过应用系统的各种人机交互界面向应用系统提交服务要求。该服务要求通过系统的各种渠道送到系统的渠噵整合层渠道整合层把客户各种各样的服务要求整合为标准的服务申请报文,送到服务交付层这些标准报文的头部通常都有相应的服務交易代码或功能代码。服务交付层通过对交易代码的分析就能知道本服务申请的具体服务要求。

  2、服务分拆与转发

  服务交付層知道了客户服务要求的具体内容后要把服务交给后面的具体服务构件去完成具体的服务。客户服务的构成有许多类型有简单的服务,有复杂的服务所谓简单服务,就是一个服务构件就能完成的服务对于这种服务,服务交付层直接把服务要求转给相应的服务构件去唍成但对于大多数的服务要求,都不是简单服务其服务需要通过若干个服务构件甚至一些系统外的信息系统共同服务才能完成。这时服务交付层要把一个客户服务要求拆分为若干个子服务。把子服务有序地分别转发给相应的服务构件去完成

  对于复杂服务,一方媔服务交付层要把服务分解成若干个子服务,要按一定的顺序把这些子服务交给相应的服务构件。由于各子服务之间通常有一定的因果关系前一个服务的输出往往是下一个服务的输入,所以服务总线的组成部分有哪些通常还要把上一流程的某些处理结果打包给下一鋶程。

  另一方面服务交付层还要控制整个服务流程的走向。因为复杂服务流程比较长每一个服务环节都会出现一些影响后续服务鋶程的结果。这些结果包括一些正常的流程选择条件和非正常事件对于流程选择条件,服务总线的组成部分有哪些根据不同的条件选择鈈同的流程让服务正常持续下去。而对于出现的非正常事件服务流程将不能正常完成。这些事件有些是由于提交的服务要求没有完全苻合业务规则如密码不符或余额不足等;另外也可能是环境的原因,如网络问题等当某一个服务环节出了意外,整个服务流程也许不能唍整走下去需要转到另外的错误处理流程。

  服务交付层要把各子服务转发给各服务构件要知道服务构件的物理位置。根据SOA松耦合嘚概念松耦合既包含了软件之间的松耦合,还包含了软件与硬件之间、与地理位置的松耦合应用系统的架构不强求规定哪一项服务配置在哪种机器里,也不强求规定该机器是在本地还是在远程服务交付层通过解析服务配置表,找到相应构件的名称和位置把子服务转發给该服务构件。

  5、服务结果打包与最终返回

  除了服务转换间的信息打包外当所有的子服务返回的结果均为正确时,服务交付層把服务最终结果整理打包返回渠道整合层相反,只要有某个子服务出现意外服务交付层马上中断正常的服务流程,根据不同的意外凊况向渠道整合层返回不同的错误代码。

  四、企业服务总线的组成部分有哪些的架构

  如上所述建立了上述的服务总线的组成蔀分有哪些后,解决了信息系统各应用大板块之间的松耦合实现了宏观的总线的组成部分有哪些架构。下一步总线的组成部分有哪些結构还可以在大板块内进一步展开。

  随着我们信息系统的各业务处理系统不断发展其处理不光覆盖了核心银行业务,还包括了客户管理业务、代理业务、业务等所有这些业务可以分类组成若干个大的块。其中有一些板块不光里头包含了许多业务。且板块内部的各種业务相互间关系比较与板块外部业务的关系相对松散。对于这些大的业务板块如核心银行板块,我们可以在板块内建立总线的组成蔀分有哪些结构:

  在图-6里对于核心银行应用,与图-5相比服务交付由一层变为两层:服务交付与核心银行交付。这种变化对于包括核心银行里原来的各个服务以及其他所有服务来说,完全是透明的假设有一个客户服务是代发工资。在图-5的服务交付对应配置表里配置了两个子服务,先是法人系统的工资转出服务下一个是个人系统的工资转入服务。但在图-6里服务交付对应配置表里只配置了一个核心银行服务,先把服务转发给核心银行交付而在核心银行交付的对应配置表里,配置了两个子服务:法人、个人服务从这个例子,鈳以看出服务总线的组成部分有哪些的灵活与方便

  在图-6里,从概念来说渠道整合、服务交付以及各板块的交付合在一起,构成整個企业级服务总线的组成部分有哪些但在物理配置上,各业务板块的服务交付应该靠近各业务板块或者与各业务板块配置在同一个服務器里。因为在板块内设置服务交付的前提是我们认为该板块内的各种应用是关系密切的它们之间会有比较多的交互。把板块的服务交付配置在板块内可以提高效率,减少开销当然,如果板块内部的应用关系并不密切我们就未必需要要设置两层的交付。

  多层的垺务总线的组成部分有哪些架构与多层的网络架构概念完全一样众所周知,比较大的通常会采取三层架构:核心层、汇聚层、接入层各层通过其节点交换机:核心交换机、汇聚交换机、接入交换机完成多层的数据传递与交换。相对于银行信息系统如果采取两层的服务總线的组成部分有哪些结构,服务交付相当于核心交换机;核心银行服务交付相当于接入交换机通过系统的两层总线的组成部分有哪些,唍成服务的交付与流程的控制

  (二)服务交付层的内部架构

  服务交付层的基本架构是由一组结构大致相同的程序组成。这一组程序峩们可以把它称之为服务交易引擎其中每一个程序通常对应一类客户服务,对应一类交易并对应与该类服务相关的一组子服务、一组程序。而每一组流程相似的交易通常对应一个标准报文

  服务交付层还有一组与交易相对应的配置表。配置表的内容有完成该交易所需要的各子服务名、子服务物理路由、子服务后续流程条件码、条件码对应后续服务等引擎就是通过检索配置表解释其中内容,以确定茭易的具体服务内容并确定服务构件名、服务构件路由、服务流程、服务返回内容等。

  通过建立完善的企业服务总线的组成部分有哪些整个信息系统形成一个以服务总线的组成部分有哪些为中心、逐层往外扩展的的星型网络。分散的渠道把各种服务要求分层汇集到渠道整合服务交付又分层地把服务分解为各子服务,再分发到各个具体的应用然后汇集各个子服务的处理结果,原路返回服务的提交處

  LinkESB由厦门明延科技研发,公司十年专注企业服务总线的组成部分有哪些 我们于打造企业共享服务平台提供商,打造企业上下游的传统的企业都是围绕内部人员展开,是一个封闭的系统而未来的企业信息化,不仅服务企业内部还要保证上下游企业互联互通,同時客户通过可以及时查到到业务的进展我们的解决:

原标题:新至强Mesh架构解析之《西遊大灌篮》

上周业界期待已久的新一代至强产品——英特尔至强可扩展处理器(Intel Xeon Scalable Processor,SP)终于正式发布蓄积多时的各种材料纷纷放出。企倳录也趁此热点发了一篇的普及文章不意在当天就突破了1.5万的点击量,到周六为止已累积了1.7万+人的2.1万+次阅读吸粉约500人,可见大家热情の高涨

朋友圈的1800+转发是浏览量接近18000的关键,再次感谢大家支持!

随着喧嚣褪去从本周起,我们将开始发表系列文章解析伴随至强SP而苼的新一代服务器产品。为免文章太长而可能导致掉粉力争每篇只围绕一个点展开。本篇先分析至强SP的Mesh架构下一篇介绍新产品中值得特别关注的部分,为随后点评我们看到的各种服务器设计打好基础

由于深恐有人看到“架构”就想到“枯燥”,首先给大家讲个糅合了《大话西游》人设与《灌篮高手》题材的魔幻现实主义故事——对篮球和段子都没什么兴趣的读者可以自行跳过直接从第一个黑体小标題处开始阅读。

(以下技术相关图片均可点击放大查看细节)

6月底、7月初,正是美职篮(NBA)每年一度的自由球员签约期今年是自由球員大年,超级明星们纷纷逃离母队寻找有实力或潜力的下家,组成三巨头乃至四巨头抱团之风盛行,意在对抗西域五魁首

变局缘起6朤上旬举办的东西部篮球挑战赛。由孙悟空、猪悟能、沙悟净、白龙马、唐三藏组成的东土大唐队一路西行,基本没有遭遇像样的抵抗志在卫冕。西部联盟胜出的代表队去年惨遭逆转之后立即招募强力外援牛魔王,与春三十娘、白晶晶、紫霞、青霞组成五魁首阵容誓要雪耻。

论纸面战力孙悟空乃此十人(乃至整个联盟)之中的最强者,牛魔王尚且略逊一筹悟空亲自招募来的猪悟能和沙悟净,也昰业内成名已久的宿将联手组成三巨头,可谓当世无双由于两队实力太强,之前的东西联盟内部选拔赛只是走个过场甚是无聊,钓魚群众们只能寄希望于最终的挑战赛

比赛开打,大家才发现东土大唐队竟也不是西域五魁首的对手。悟空仍然罕有其匹但在大部分時间里,都被五魁的车轮战所困切断了与悟能、悟净的联系,三巨头只能各自为战若不是天庭为了收视率和联盟招牌,授意太白金星帶领的裁判组帮助东土大唐队拿下第四场怕是难逃被西域五魁首横扫的命运。

震惊之余各路砖家们不得不承认,去年的惊险逆转掩蓋了东土大唐队的架构缺陷。悟能、悟净虽也曾为帅为将但在投身东土大唐之后就基本丧失了领兵的积极性和主动性。球权交由悟空做主悟能尚且偶尔可与悟空各砍41分、甚至投中决定冠军归属的致命三分,悟净却每每在关键时刻沦为只有三句台词的死龙套:

“三藏对方中锋我扛不动!”

“大圣,这空位三分我投不进!”

“八戒对方小个我防不住!”

另外二位,白龙马功能单一唐三藏也就能在高僧聯谊赛里仗着御弟的名头拿个MVP,挑战赛中不论与谁对位都会被完爆用西域的流行语形容,东土大唐队是典型的Scale-up(纵向扩展)架构全队嘚上限取决于悟空一人;西域五魁首则基于更为灵活的Scale-out(横向扩展)架构,牛魔王的加入使全队多了一个极具威胁的持球点阵容上不再囿明显的短板。纵然单挑无人能全面压制悟空但毕竟双拳难敌四手,五魁的总天赋更具优势加之配合默契,运转流畅自然占尽上风。

西域强队当然不想继续被五魁首按在西决地板上随意摩擦纷纷效仿五魁的组队模式——囤积巨星,增加持球点然而,巨星组队绝不昰简单的累加教练和总经理首先要考虑以下两个问题:

球权:篮球是5个人的,篮球只有一个有多个持球点可以发起进攻,对手更加难鉯防范但球权怎么分配?设想六耳猕猴和悟空一队(我说的不是CP3和另一位詹姆斯的“灯泡组合”)每位场均都要持球10分钟,这球不够汾的啊!所以必定要有人做出牺牲更多的打无球,场上形势需要时才接管球权而这通常意味着数据的下降,不利于接下来拿大合同

薪水:为了防止球星扎堆导致各队实力严重失衡,联盟早有工资帽制度突破薪金上限的球队要付出成倍的奢侈税。想把多名巨星聚在一起打球要么有人主动降薪,要么球队老板肯付巨额奢侈税实际情况是,两种手段往往要联合使用才能构建出一支具备足够战斗力的浗队。

球权和薪金对应到CPU与服务器的设计中,就是多核之间的组织架构以及功耗上升引发的散热和供电挑战(后续将有专文另述)。

CPU嘚横扩展相对论

根据作用范围的不同Scale-up和Scale-out可以是相对(而不是绝对)的概念。举一个范围逐级递减的例子:

服务器层面:一台有2个CPU(双蕗)的服务器要得到4个CPU,在这台服务器内部增加2个CPU变成四路的做法(不要纠结于具体实现),通常被称为Scale-up;而再增加一台同样的双路垺务器两者之间通过网络连接,也形成一套共4个CPU的系统通常被称为Scale-out;

CPU层面:在这台双路服务器内部,要获得多一倍的内核数把CPU升级箌具有2倍内核数的型号,可以被称为Scale-up;CPU不变但通过CPU之间的互连把数量增加到4个(四路),可以被称为Scale-out(在上一级属于Scale-up);

内核层面:要提升CPU的性能增加单个内核的性能,可以被称为Scale-up;增加内核的数量可以被称为Scale-out(在上一级属于Scale-up)……

讲到这一层,可以得到两个“显而噫见”的结论:

一是“纯度越高”的Scale-up越难近年来CPU单核性能的提升有多缓慢?华为在新一代服务器(FusionServer V5)发布时指出通用处理器的单核性能,在上一个十年还能以每年1.5倍多的幅度提升,现在只有每年1.1倍多具体数字上可能会有出入,但大致状况英特尔也无法否认所以,從至强E5到v4再到至强可扩展处理器,每一代CPU推出时如何增加内核数量,都比内核的微架构改进更吸引关注既然内核数量的增长已成为性能提升的主要推动力,那么……

二是内核之间的互连方式越来越重要服务器节点之间的互连叫网络(Network)或Fabric,CPU之间的互连有直接叫Interconnect(如QPI囷UPI)的CPU内核之间的互连……名字上的花样可就多了,这个后面会重点展开但是,不论什么级别不管怎么称呼,都可以从网络拓扑的角度去对比衡量之

今天的讨论要先追溯到贯穿整个至强E5时代的(双向)环形总线的组成部分有哪些。“2012年那是一个春天,有一款CPU在8个內核中间画了一个圈……”

此图有真意欲辨已……熏晕

没错,这就是初代E5-2600的双向环形总线的组成部分有哪些(Bi-Directional Full Ring)8个内核共用1组(双向)环形总线的组成部分有哪些,套用球类运动的比喻仍然有争用球权(环线)的问题,只不过队员的人数介于篮球和足球之间(5-8-11)

初玳至强E5的双向环形总线的组成部分有哪些贯穿8个内核及其共享L3 Cache(LLC)。理论上因为可以从两个方向中选择较短的路径,双向环形总线的组荿部分有哪些的平均时延只有单条环形总线的组成部分有哪些的一半

就算内核比篮球明星能忍(1/8 vs. 1/5)内核数量再增加的话,环形总线的组荿部分有哪些的带宽等资源毕竟是有限的过度争用也会导致阻塞,影响到所有内核性能的发挥反过来限制内核数量的继续增长。好在CPU鈳以部分借鉴那个被安到山东军阀韩复榘头上的笑话(多发一个球)——再加一个环在双(双向)环形总线的组成部分有哪些的加持下,E5/E7 v4的架构支持的CPU内核数量可达24个

E5 v4家族的两条双向环形总线的组成部分有哪些(共4个环)支持最多24个内核,但为了给E7 v4让路“牺牲”掉2个內核,最多只有22个内核

至强E5/E7家族的双向环形总线的组成部分有哪些(两个方向相反的同心环)优势是相对简单,利用率高可以在两个方向中,选择路径较短的那条访问特定的内核及共享的L3 Cache(LLC)——想象一下乘坐环线地铁的场景就知道了;缺点是环不能太大如果连接的節点(如内核、内存控制器、QPI、IIO等)过多,访问的平均路径会变长节点能分到的平均带宽也会降低——北京已经证明越往外修环线越不靈。

E7 v2采用一个大的(单向)环嵌套两个独立的(单向)环到E7 v3更改为两组通过缓冲交换机连接的双向环(两个方向相反的环),优势是每組环内的带宽和延迟更好注意每个(组)环的L3 Cache被视为一体的画法(不考虑左侧的大单向环)

双环架构可以成倍增加内核数量,两组环之間设置两个缓冲交换机(buffered switch)作为“换乘”站解决跨环通信的需求严格说来,这也属于一种“胶水”结构两组环之间的两个数据交换电蕗就是把两部分内核粘在一起的“胶水”。

仅从环的数量上来看左边至强E5 v4中等内核数(MCC)与E7 v2一样也是3个环——10个内核一侧为双向环,5个內核一侧为单向环分为两组(仍然是双环架构),规模越大环数越多的原则不变尽力保证每个核能获得的带宽和延迟水平。右边较少內核数(LCC)与初代至强E5一样是两个套在一起的双向环本文中将其视为一组环(单环架构)

很显然,跨环的访问会增加延迟并且要消耗兩组环的带宽资源。所以QPI(Quick Path Interconnect)、PCIe等相对低速的I/O设备仍在第一组环上,第二组环的I/O必然要跨环——慢点还可以接受内存访问可不能这么搞,所以每组环都有自己的内存(DDR)控制器

上面说的是E5 v4的情况,E7 v4稍有不同——增加的第3个QPI放在第二组环上也没必要硬往已经很拥挤的苐一组环上塞。

注意E7 v4第二组双向环形总线的组成部分有哪些上方增加的第3个QPI

从双环发展到奥迪(两组双向环算作4个环)已经要付出如此大嘚代价就不要再开奥运会了……必须换一种扩展性更好的架构。

以代号Skylake的初代至强可扩展处理器(Xeon Scalable Processor至强SP)为开端,英特尔启用了全新嘚Mesh架构官方翻译为“网格”片上互联拓扑结构。这种架构的扩展性如何呢

从至强E5/E7 v4的四环(2组双向环形总线的组成部分有哪些)到至强SP嘚6×6 Mesh架构,是一维转为二维有利于扩大互连规模

Mesh架构的历史也是相当的悠久,早已被广泛应用于高性能计算(HPC)领域英特尔自身就有豐富的经验,90年代初推出的Intel Paragon大规模并行超算(当时的水平)采用mesh互连能够从32个计算节点扩展到个i860 RISC微处理器。1995年推出的曙光-1000计算机系统同樣基于i860采用6×6的2D-mesh连接,距今已有22年

如同前面所说,就拓扑结构而言CPU内核之间的互连与(HPC系统)各服务器节点之间的互连,本质上是楿通的Mesh架构服务器集群用得,CPU当然也用得关键看互连规模的需求到没到那个地步。

初代至强SP的Skylake-SP架构也采用6×6的mesh这个互连规模于mesh而言,二十多年前就经过了考验而今天的环形总线的组成部分有哪些仍然难以达到。行列组织很规整顶上一行6个全部留给I/O,包括替换QPI的UPI(Ultra Path Interconnect)和更多的PCIe 3.0;侧边两列的中间位置各有一个3通道的内存控制器,其他28(=36-6-2)个位置是内核及其Cache

Mesh的每个节点上都有一个可以被称为交换机(或路由器)的组成部分,通过水平(X)和垂直(Y)方向的连线组成一个二维的交换矩阵交换机将非本节点的访问或数据继续向下一节點转发,这个延迟很短但跳(hop)数多了的累积效果亦不容忽视。Mesh的另一个优点是可以同时存在多条传输路径但它也不是无阻塞的——假设位于角落上的节点要同时发送3个信息到3个不同的位置,只能先发出去2个至少要阻塞住1个。

Skylake-SP Mesh架构上的内核、内存控制器和I/O分布下篇攵章还会进一步分析

所以在矩阵中的位置就很重要。Skylake-SP必须把内存控制器放置在边上(要对外)但不能像I/O一样(可以)居于角落,而是相對居中这样内核最远只需要5跳就可以到达较近的内存控制器。另外不同的内核到达I/O的距离也都是可以接受的,不会有太大的差异

换訁之,Skylake-SP的Mesh架构可以达到(单个)双向环形总线的组成部分有哪些无法达到的规模具有更好的连通性,而访问内存和I/O的延迟也基本没有劣囮

大有大的难处:L2 Cache上位

互连架构的变化,也在很大程度促成了Cache机制的转变

至强E5/E7家族是以共享分布式L3 Cache(Last Level Cache,LLC)为主Cache的机制通常每个内核配有2.5MiB L3 Cache,沿着环形总线的组成部分有哪些分布即使是双向环形总线的组成部分有哪些,也只有两条访问路径可选走哪条离目标近就选哪個:理论上,一条12个内核的双向环形总线的组成部分有哪些最远只需要6跳;E5/E7 v4的双向环形总线的组成部分有哪些上还会有QPI、IIO(包括PCIe等)、內存控制器和2个缓冲交换机接口,增加了5个端点最远的访问也只需要8跳就能到达。

由于访问路径固定一个(单向或双向)环形总线的組成部分有哪些上所包围的所有(最多12个)内核的L3 Cache,逻辑上可以视为一个整体即由环形总线的组成部分有哪些将分布式L3 Cache组织为一个共享嘚缓存池,总线的组成部分有哪些上的每个内核都可以很方便的访问其中的数据在这种情况下,每个内核私有的L2 Cache也不需要太大——只有256KiB(中间加入的 i 代表1024进制)全部拷贝到其L3 Cache中,反正只占后者十分之一的容量换言之,一个内核访问L3 Cache池的时候还可以读到其他内核L2 Cache中的數据。

上述共享L3 Cache层级架构被称为inclusive(包含的)通俗的说就是,L3拿出来一部分空间作为L2的缓存——听起来是不是有点怪怪的

从至强E5/E7家族到臸强SP的Cache架构转变

Skylake-SP的Mesh架构就不同了,在这个6×6的矩阵中两个相距最远的内核间需要9跳(X方向5+Y方向4)才能到达。更重要的是两个内核间的訪问路径可以有数十上百种,其中一些路径还有可能被阻塞一个内核访问其他内核的L3 Cache,要付出的代价明显增大相比之下,Mesh架构的共享L3 Cache鈳以说是碎片化的并不很利于共享。

事实上Mesh架构必然要求尽量的利用locality(所在位置),避免时延劣化而加大本地的数据存储无疑是一種最简单的优化方案——尽量从L2 Cache获得数据,减少二级缓存未命中(cache miss)的几率Skylake-SP将L2 Cache的容量提高至1MiB,达到之前的4倍与改用Mesh架构有很大的关系。

与之前的包含式L3架构(左)相比Skylake-SP的非包含式L3架构(右):1. 从内存中读取的数据直接进入L2,而不是同时进入L2和L3;2. 当一个L2的行需要被移走更改和未更改的行都被写回;3. 需要给其他内核共享的数据(才被)拷贝到L3

Cache,于是Skylake-SP每个内核的共享L3 Cache骤降近一半只有1.375MiB——此(L3)消彼(L2)長,对片上资源也是一种节省

鉴于Skylake-SP每个内核L2 Cache中的数据可能不在L3 Cache中,这种层级架构被称为non-inclusive(非包含式)可以理解为一种类似分层存储的架构。

从上表的简单对比中可以看出至强SP每个内核的L2+L3 Cache总容量比前代有所下降,整体也只是靠着内核数量的优势而稍稍胜出但是,作为微架构的重要组成部分更大的本地缓存(L2 Cache)对单核性能的提升还是很重要的。

四路配置的全连接与环形总线的组成部分有哪些

前面已经說过服务器之间的连接方式,与CPU内核之间的连接方式原理上是相通的——CPU之间的连接方式,亦然

提起Mesh架构,没有任何前缀的话通瑺指2D Mesh(相关的还有3D Mesh和2D Torus,本文不展开)Skylake-SP的Mesh架构就是这种:相对容易实现,利于扩展付出的成本代价也比较能接受。

2D Mesh架构能得到广泛的应鼡很重要的一点是它比较现实,譬如说……并不是无阻塞的因为无阻塞的实现代价比较大。

有两种比较常见的无阻塞架构:Crossbar和Full-mesh(全网狀或称全连接)。Crossbar架构猛一看和2D-mesh有点儿像都是交换机组成的矩阵,但2D-mesh每个交换机处有1个节点而Crossbar为了保证无阻塞,节点比交换机的数量要少得多两者间是一个平方关系。

Crossbar(左)与2D mesh(右)示意图(来源:卡内基梅隆大学计算机科学学院)

Full-mesh不需要外部的交换或路由元件洏是任意两个节点间都有直接连接,故得名全连接一个节点数为N的Full-mesh,连接(线路)总数为N×(N-1)÷2

也就是说,Crossbar和Full-mesh在连接上付出的代价都是節点数的平方关系随着节点数量增加而急剧上升,因而不太可扩展甚至不可扩展。

左边是Sun UltraSPARCA T2的显微照片8个内核之间的CCX所在区域就是其8×9的Cache Crossbar,面积几乎与一个内核相当;右边是同为8个内核的初代至强E5-2600可以对比下双向环形总线的组成部分有哪些在芯片面积上的开销

十年前囿一些产品,如EMC的高端存储系统Symmetrix-DMX和Sun的CPU UltraSPARC T2均有采用Crossbar而3PAR的T系列高端存储则基于Full-mesh。Sun UltraSPARC T2和3PAR T系列都是(最多)8节点互连不完全是巧合——当然,我举唎的这三家公司都在接下来的十年里被收购了纯属巧合。

Full-mesh较少做到8个节点以上而在8个节点之内还是很划算的——譬如,4个节点之间的Full-mesh只需要6条线路,便可以获得一个无阻塞的高效网络

没错,说的就是至强E7的四路配置每个CPU用3个QPI分别连接另外的3个CPU,构成全连接的网络(Full-mesh);至强E5-4600因为只有2个QPI所以4个CPU只能构成一个双向环形网络,或者说是一个小型的双向环形总线的组成部分有哪些当然,以这么小规模嘚互连而言环形总线的组成部分有哪些的效能比全连接也差不到哪儿去,英特尔很难说服用户优先考虑四路至强E7服务器,而不是相对廉价的四路至强E5服务器只能尽量低调处理至强E5-4600系列了。

在四路配置中至强SP家族中的金牌51系列通过2个UPI(至强E5-4600系列是2个QPI)组成双向环形总線的组成部分有哪些,如图中4个红色实线箭头所示;铂金及金牌61系列通过3个UPI(至强E7家族是3个QPI)组成全连接网络如图中4个红色实线箭头加仩2个红色虚线箭头所示

上一篇文章已经提到,这种尴尬的局面有望在至强SP这一代得到改变下一篇文章将重点讨论至强SP家族中的部分特色產品并澄清相关误区,也会发表对新产品命名的一些粗浅看法——但肯定不是重点因为咱……就不是那爱吐槽的人!

我要回帖

更多关于 总线的组成部分有哪些 的文章

 

随机推荐