(模式识别与智能系统专业论文)虚拟操作系统研究及在多核环境下的实现.pdf_第1页
(模式识别与智能系统专业论文)虚拟操作系统研究及在多核环境下的实现.pdf_第2页
(模式识别与智能系统专业论文)虚拟操作系统研究及在多核环境下的实现.pdf_第3页
(模式识别与智能系统专业论文)虚拟操作系统研究及在多核环境下的实现.pdf_第4页
(模式识别与智能系统专业论文)虚拟操作系统研究及在多核环境下的实现.pdf_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

虫玄揸要 中文摘要 摘要: 信息网络的飞速发展,要求有高性能网络设备的支持;而高性能的网络设备要 求高的处理器性能。为满足这种需求,处理器的设计需要引入创新的架构思想。 多核多线程是目前提高处理器性能的最有前途的技术之一。 多核技术在体系结构、软件模型、核间通信技术、操作系统设计、安全性设计 等诸多方面存在巨大挑战,同时也存在巨大的潜能。本论文结合当今主流的基于 m 瑶s 核的r m i 瓜系列多核多线程网络处理器。介绍了多核多线程处理器的基 本特点,并探讨了多核路由软件的架构问题。 复杂网络设备需要实时操作系统支持,并且操作系统作为网络设备的平台软 件,在整个网络软件中具有极其重要的作用。如何使开发的上层商用网络应用软 件在不同的系统平台上平滑的运行,增加软件的可移植性就变得尤其重要。此问 题的解决可以通过在底层操作系统与应用软件间提供一个逻辑封装层,来屏蔽底 层操作系统和硬件的差异;同时接管一部分底层操作系统的功能如内存管理、异 常监控等。这就是虚拟操作系统v o s ( v j n l l a l 唧i n gs y s t 锄) 的概念。本论文探 讨了虚拟操作系统的所应该具备的基本功能,同时介绍了在多核环境下的内存管 理和s 文件系统( v i f t i l a lf i l es y s t e m ) 的设计实现。 最后。探讨了中国在发展多核系统软件方面所面临的机遇和挑战。 关键词:虚拟操作系统、多核多线程、v f s 文件系统、超线程 分类号:t p 3 9 丛墅里整3 a b s t r a c t a b 研r a c r : t h ea m 配主n g 驷w t i lo f 也eh t e m 税a 酣暖咖l m 瑚畦c a t i o ni sp 瑚,喇b ym e 坛g h p e 响姗a n c cn e c w o r l 【e q u i p m 蜘【协d e m 锄d i l l gi i l c f s i n 酉yb i 曲盯l c v e l so fp m c 锱r 拼叫研m a n c 总1 bk pu pw i mt h i sd 锄a n d ,n 删p i d c 鹤s o rd 鹧i 粤塔m u s t 证c o r p o r a t e 抽枷删v e 础t t i l f a lo a n c e p 悟,m u l t i 馏em 枷- 协d i n gi so n eo ft h em o 吐 p f o m i 妞l gt c d 哦呻螂f o f 霉n a b “n gm i sn a wc l a 骝o f p r o c 髓s o 礴, m u l t i t e c h n 0 1 0 9 y i s c h a l l e n g e di l l 砒d 商积m l r e ,s o f h m 旭m o d d , c o 嘲u m 喇o nt e 6 b n o l o g yb e t w 嘲d i 触e n tc 。删s o p e r a :t i o ns y s t e md e s i 罂博雒1 d s 湎t yd 髓i g 吐矗c l d ;a tm e 舶m et i i l l 毛h t l g ep o t c r 瓶a 王蕊s t si i ip f i 。r n o t i n gt | 】ep l r o o 龉s i f l 瞎 p e r f b 肌锄c e t k sp 印盯i l i 臼o d l w 嚣山em o s tp 叩u l a r 埘u l d c o n e t w o r kp r o s s 昕- r m i 瓜s c f i a l sn pb 硒e do nm 口sc o t e c l m o l o 鲥a n di t sn 洲c h a r a c t 面s t i 1 1 1 e 姗臣ma r c h i 妇加f eo f r o u t e rb 删o nm u l t i 一r ei s 矗l s op r 鄂如t c d ( 如m p l i c a t e d 珊帆础e q i l i 棚邛m t s q u i r et h e 鲫卿p o no f 硎一缸eo l ,e r a t i n gs y s t 锄 t h e0 p 盯a t i l l gs y s t e mi sv 茁yi 瑚p o r t a n ti nt l l ew h o l en e t w o r l 【p f o t o c o ls o f t w a r e 鹊 s y s t 哪p l a 磕m ns o f h v a r 矗t b d a 弘h o wt om a :k em el l i g hl 耐c o m m 目c i a ln e t w o r k f t w a 坞t 0m ni l id i 丘细t3 y s k mp l a t f 0 咖3a n dh o wt om a k em es o f h a n 旧 位m s p l a n t 曲l eb e c o m cm u c _ hm o f ei l p 供t a n _ t t h ep r o b l e mc a nb c l v e db y p r 舒e i :时n g ac 0 l p o n 舳tb e t w e e nt h eo p e r a 血l gs y s 锄n 锄dt l l ea p p l i c a t i o n f t w a r e t h i sl o 酉c a l l a y 盯i s 璐。dt os h j d d 廿l ed i f f 盯皿c eo fd i 侬绷l t 叩锄t i n g 哪蛔ma n dh a r d w 黜;t l 吐s l a y 盯a i r e a l i z c s 舢ef h n c 五o o fo p e f a t i i i gs y s t c m 虮c h 嬲m 即1 0 i ym a l l a g 啪即呜 c c p t i o nm o 扣d 嘶n 岛f i l es y s t e m s 瓤d o i lt h ea b o v cd i s c 岫s i o ni sm ec o n c e p to f 、,i r n 面o p e 嘶n gs y s t 咖t 糙sp a p c fd i s c i l s s 讳伽eb 嬲i c 如n 面o n 删d e db yv i m l a l 0 l ,c 】曙向gs y s t 锄a n di i 血o d u c 岛t h e 托a i i z a t i o no f m e m o r ym 锄舒m l 饥ta i l dv i f h l a l 丘l e s y s t e l n a “a s t ,o p 弘州t y 甜l dd i a n i l e n g ef k c db yt h es y s t 咖f t w a r ei n d u s yi i ic :l l i m w a sd i s c u s s e d 1 a 嘲7 0 l s :v i 巾,a io p 锄d s y s t 咖;m u l t i c o r e 姗u l t i m l r d i n g ;t l l a lf i l c s y s t c m ;h y p * t h r e a d i n g c l a s s n o :t p 3 9 致谢 本论文的工作是在我的导师梁满贵教授的悉心指导下完成的,粱满贵教授严 谨的治学态度和科学的工作方法给了我极大的帮助和影响。在此衷心感谢三年来 梁满贵教授对我的关心和指导。 粱满贵教授悉心指导我们完成了实验室的科研工作,在学习上和生活上都给 予了我很大的关心和帮助,在此向梁满贵老师表示衷心的谢意。 感谢郭以贺师兄、张宗轶师姐将我弓i 入i 豇线的神圣殿堂;感谢沈颖、郭永芳、 李俊杰、刘惠勇等师姐师兄所给予的指导和帮助;感谢实验室的师弟师妹们给自 己生活增添的乐趣。 感谢那些在读研究生期间曾经帮助或指导过我,在此不能一一列举的人们! 序 随着集成电路的迅速发展,微电子技术的物理极限问题成为一个重要的处理 器设计所关心的问题。处理器性能的提升遭遇瓶颈,多核多线程技术成为提高处 理器性能的炙手可热的技术对于多核多线程技术,无论是底层核的设计还是上 层应用软件的架构都面i 晦着巨大的挑战。 本论文介绍了目前流行的多核多线程处理器的特点,探讨了支持数据平面和 控制平面分离的多核路由软件的架构模型。对于多核环境下特殊的数据同步及核 间通信机制予以讨论,并为上层应用提供了接口。 复杂的网络设备上运行的商用网络协议软件需要实时操作系统的支持。为支 持上层软件在不同的操作系统上平滑的运行,提出了虚拟操作系统v 0 s ( v i 咖a l o l 础ns y s t 锄) 的概念虚拟操作系统实际为上层应用软件和底层操作系统之间 的一个组件,用于屏蔽底层操作系统的差异,提供一些底层操作系统未提供的部 分功能,以满足实际瘸络环境的需要;同时也提高了上层应用软件代码的可移植 性,降低软件的开发费用。 本论文详细介绍了虚拟操作系统v o s 的基本概念,对内存管理算法、v f s 文 件系统的实现进行了详细阐述;对一些设计实现上问题,作者给出了自己独特的 设计观点 多核环境下的操作系统与传统操作系统有很大的不同,目前针对这方面的研 究也刚刚兴起。在目前的多核处理器迅速发展形式下,对于中国发展系统软件面 临的机遇和挑战,作者提出了自己的观点。 1 引言 多核多线程处理器技术的迅速发展,为软件工业带来了新的考验和挑战。多 核多线程处理器在体系结构、软件设计、功耗、安全设计方面都面l 临着巨大的挑 战,也隐藏着巨大的潜能。 目前针对多核处理器的产品设计还主要集中在服务器和高性能网络设备上。 关于多核产品设计并没有太多的经验可以借鉴,如何发挥出多核处理器的巨大潜 能还需要积极探索。在多核处理器环境下,软件的设计需要程序员了解底层硬件 的特点,根据具体的应用环境进行软件的设计,这无疑给程序员带来了挑战。 本论文结合当今主流的多核网络处理器的特点,探究了支持数据平面与控制 平面分离的多核路由软件的架构方案。 现代软件工程的设计思想要求软件设计的组件化、模块化。虚拟操作系统v o s 是在实际的网络设备的开发中,结合现代软件工程的设计思想提出的。虚拟操作 系统v o s 用于屏蔽底层操作系统和硬件的差异,为上层的网络应用软件提供统一 的编程接口a p i 。v o s 实现了一个实时操作系统的大部分功能,并对某些具体模 块的实现根据实际的运行环境作了优化。本论文详细的描述了v o s 的内存管理模 块、v f s 文件系统模块的设计,实现了多核处理器环境下的内存管理。 多核环境提供的硬件的特点与以前的单核环境有很大的差别;多核处理器性 能的发挥比单核环境更依赖于软件的设计。关于多核系统软件( 操作系统、编译 器、调试器等) 的设计开发在全球范围内也刚刚开始,在这种形势下,如何开发 属于我们自己的多核系统软件,作者阐述了自己的看法。 2 多核多线程处理器 随着集成电路c m o s 制造工艺的持续提高,单个门电路( g a t e ) 的尺寸都在不 断变小,基于半导体的微电子技术的物理极限问题成为一个重要的设计所关心的 问题。物理极限的影响造成了散热及数据同步问题。对于更复杂、处理能力更强 的处理器的需求促使处理器设计人员利用各种各样的可行方案提高处理器的性 能。超标量( s u p 懿c a l 盯) 和流水线( p i p e l i n i n g ) 技术对于包含不可预测代码的应用 场合并不适合。在性能提升方面,处理器主频,内存访问速度以及i ,o 访问速度的 发展是十分不平衡的处理器的主频每两年就要翻一番,内存访问的速度要每六 年才能提高一倍,而i ,o 访阀的速度要提高一倍的话需要八年的时间。所以处理器 与l 的发展不均衡已经成为很大的瓶颈,单纯依靠提高处理器主频来提升整个系 统的性能已经不可行,而且还会造成投资的浪费。高频处理器的设计对工艺要求 非常高,生产难度大,成品率也较低,因此造成生产的成本踞高不下。 在这种情况下,并行计算技术成为解决这一问题的唯一方案。线程级并行t l p ( 1 r h r c a dl e v e lp 锄l l d i s m ) 计算技术对于很多应用场合都是合适的,它通过利用多 个独立的c p u 来提高系统的性能。集成电路技术的发展及减少系统占用面积的要 求最终促使了多核处理器的出现。 多核,即多微处理器核心,是将两个或更多的独立处理器封装在一个集成电 路( i c ) 中的方案。一般说来,多核微处理器允许一个计算设备执行某些形式的线 程级t l p 并行处理,这种形式的并行处理通常被认为是芯片级别多处理c m p ( c l l i p - 1 c v e lm u l t i p r o c 舒s i i l g ) 通过利用多指令流水线,减少共享资源( 流水线、 总线) 的空闲时钟周期以及在多个核上进行负载分担来提高系统性能。 多核处理器的特点与基于单一地址总线连接的对称多处理器s m p ( s y i 】栅e t r i c m u l t i p r o c e s s o r1 体系结构有很多相似之处。论文首先对对称多处理器s m p 体系结 构的特点进行论述,然后结合其特点来阐述多核处理器的基本特点。 2 1对称多处理器s m p 体系结构特点 计算机系统结构设计师总是在寻找计算机性能设计的潘多拉宝盒:通过简单 地连接已有的小型计算机来实现功能强大的计算机。用户在预算允许的范围内使 用尽可能多的处理器,以获得尽可能高的处理性能。因此多处理器必须是可扩展 的:硬件和软件的设计必须适应于不同数目的c p u 。 多处理器在设计上存在几个关键的问题: 1 ) 并行处理如何共享数据 多处理器之间的连接通常有两种方式:单一地址总线连接和网络连接。通过单 一地址总线连接的s m p 体系结构与目前的多核处理器有很多相似之处,本论文仅 对这种连接方式的s m p 体系结构进行阐述。具有单一地址空间的处理器为程序员 提供了一个所有处理器都共享的单一地址空间,这种多处理器有时也被称为共享 存储器处理器( s h a f e d m 锄o r yp r o c 铭s o r ) 。所有的处理器都能够通过对任何存储器 地址进行存取访问,处理器之间通过共享存储器中的变量来通信。另一种通信模 型是使用消息传递机制( m e s s a g ep 勰幽g ) 实现处理器之间的通信。消息传递用于 具有私有存储器而不是共享存储器的机器。 2 ) 并行处理器怎样协调 多处理器操作时通常会共享数据,它们对共享数据进行操作时也需要相互间 的协调;否则,当一个处理器还没有完成对数据的操作时,就可能有另一个处理 器又对该数据进行操作,这种协调叫做同步( s ”c h f o 眦嗽i o n ) 。如果共享是通过采 用单一地址空间实现的,就必须有一个独立的同步机制。一种方法是使用加锁 ( 1 0 c k ) 机制:每次只有一个处理器可以得到锁资源,而其它的处理器想访问共享数 据必须一直等到它将数据解锁。 图2 1 单地址总线多处理器及缓存一致性模型 单地址空间的多处理器有两种类型:第一种,不管哪个处理器访闯存储器, 也不管访问的是哪个字,访问的时间都是相同的,这种多处理器称为均匀存储器 存取i _ r m a ( u l l i f o mm 锄o r ya c c 豁s ) 多处理器或对称多处理器s 咖p ;第二种,根 据发出访问的请求的多处理器和请求字的不同,一些存储器的访问比其它的要高, 这种机器叫做非均匀存储器存取( n o n - 岫i f o 姗m 锄o i ya c c 铭s ) 多处理器。在高性 4 能计算机设计中,均有相应类型的机器。 单一地址总线s m p 多处理器模型如图2 1 所示。在这种多处理器中,每个处 理器的通信量和总线带宽决定了可用处理器的数日。缓存将数据复制到它们更快 的存储器中,以减少数据延迟并减少存储器数据在总线上的流量。 对于单地址总线多处理器一个很重要的问题就是c a d 坞的一致性。多处理器 程序需要在多个c h e 中复制相同的数据。作为另一种选择,可以强制使得对数据 的访问总是绕过c a c h e 直接对存储器访问,但是那样做速度太慢,并且需要太多 的总线带宽。多处理器程序的性能取决于系统共享数据时的性能。 维持多处理器一致性的协议称为缓存一致性协议( c a d l ec o h e 湖c y p m t o c 0 1 ) ,目前保持c a c h e 一致性最流行的协议称为监听( s n o o p i n 曲协议。所有的 c a c h e 控制器监视或监听总线以便确定它们是否拥有某个共享块的副本。保持一致 性有两个方面:读操作和写操作。多个处理器在读的时候是不会发生什么问题, 但处理器在写一个字时必须互斥地访问。处理器读一个对象时也需要有最新的副 本,所以在一个写操作完成后,所有的处理器的必须得到对象的新值。当将要对 一个对象进行写操作时,监听协议必须能对所有共享该对象的c a c h e 进行定位。 对一个共享的写操作完成以后,或者让该数据的所有其它副本都变成无效,或者 用刚刚写入的值来共享副本。总线仲裁使不同处理器的写操作串行化,这也说明 了不同处理器在同一个时钟对不同字进行写操作时,如何才能正确的执行。 单总线多处理器的主要要求之一是执行一般任务时能够协调各个处理器。典 型的情况,程序员会使用锁变量( l o c kv a | r i a b l e ) ,也称信号量( s 锄a p h o 地) 来协调 或同步处理器。对于多处理器的设计者而言,困难在于提供一种机制来决定哪个 处理器得到锁,并且提供对变量加锁的操作。对于单总线多处理器,仲裁很容易, 因为总线是访问存储器的唯一途径:处理器得到总线,就锁住了其它处理器,使 它们不能访问存储器。如果处理器和总线提供了原子交换( a t 伽i cs w a p ) 操作,程 序员就能使用适当的语义实现锁l l j 。 以上介绍了对称多处理器s m p 体系结构中两个很重要的问题:数据共享和同 步。这两个问题是多核处理器在硬件设计和上层软件设计中不可避免的问题,并 且实现机制基本也是相同的。 2 2多核多线程处理器的基本概念 目前支持并行处理技术除指令级并行、数据级并行外,比较流行的是线程级 并行。线程级并行主要是指通过运行多个线程程序,充分利用多个c p u 的处理性 能。目前的线程级并行技术分为超流水线技术及多核技术。 j 夏銮通太堂亟堂僮盈塞 2 2 1i n t e l 超线程技术h t 过去提高处理器性能的方法如分支预测、超标量执行、乱序执行、高速缓存 技术使处理器变得日益复杂。事实上,芯片处理器的晶体管数量和功耗的增长速 度超过处理器性能的提高。处理器的架构师不得不寻找新的方法来提高处理器的 性能,其中超线程技术是一个比较有效的方法。超线程技术比较典型的是h n e l 公 司主导的超线程h t ( h y p 皿f e a d i n g ) 技术。 通常,c p u 生产厂商可以通过提高主频和增加缓存来改善c p u 的性能。不过 目前c p u 的主频已经很高,如果再通过提升主频和增加缓存的方法提高性能,往 往会受到制造工艺上的限制以及成本过高的制约。从h t d 公司宣布放弃开发 4 o g h z 主频c p u 的事件可以证实这种观点。 实际上,在应用中基于很多原因,c p u 的执行单元都没有被充分使用。如果 c p u 不能正常读取数据( 总线内存的瓶颈) ,其执行单元利用率会明显下降。另 外就是目前大多数执行线程缺乏多种指令同时执行i l p ( i i l s 仃u c 幽n 洲 p a f a l i e l i s m ) 支持。这些都造成了目前c p u 的性能没有得到全部的发挥。因此,h i t d 则采用另一个思路去提高c p u 的性能,让c p u 可以同时执行多重线程,就能够让 c p u 发挥更大效率,即所谓超线程h t ( h y p * 砷r 昀d i i l g ) 技术。超线程技术就是利 用特殊的硬件指令,把两个逻辑内核模拟成两个物理芯片,让单个处理器都能使 用线程级并行计算,进而兼容多线程操作系统和软件,减少了c p u 的闲置时间, 提高的c p u 的运行效率。 逻辑处理器逻辑处理器 执行内核 高速缓存 图2 - 3b 融支持超线程技术的p b 啪4 处理器架构 图2 3 是瑚越支持超线程技术的p e i l t i 岫4 处理器架构,示意图显示了一个 c p u 封装内部除了有一个共享的高速缓存区c a c h e 以外,有一个执行内核,用于 执行指令的主流水线,并存在执行单元,如整型运算单元a l u 、浮点运算单元f p u 。 超线程技术与单c p u 技术唯一不同的地方在于c p u 的内核中有两套逻辑处理单元 ( k 百c a l c p u u n i t ) ,分别包含独立的寄存器( 坤百s t 盯) ,用于执行两套不同的线程 程序。超线程技术存在两套独立的逻辑处理器,但指令的执行内核是一套。h t 技 术的引入是因为流水线缺失,并不是每一个指令周期都能运行指令,通过增加一 个逻辑处理器来增加执行内核的使用效率。h t 技术对于多线程的程序性能大概能 6 提高2 0 3 0 ,c p u 芯片面积只增加了5 ,是一个性价比相对比较高的技术。 对于采用超线程技术的处理器,在同一时间里,应用程序可以使用芯片的不 同部分。虽然单线程芯片每秒钟能够处理成千上万条指令,但是在任一时刻只能 够对一条指令进行操作。而超线程技术可以使芯片同时进行多线程处理,使芯片 性能得到提升。 虽然采用超线程技术能同时执行两个线程,但它并不像两个真正的c p u 那样 每个c p u 都具有独立的资源。当两个线程都同时需要某一个资源时,其中一个要 暂时停止,并让出资源,直到这些资源闲置后才能继续。因此超线程的性能并不 等于两颗c p u 的性能。 英特尔p 即矗啪4 系列处理器的超线程有两个运行模式:单任务模式 s 1 m ( s i n g l et a s km o d e ) 及多任务模式删( m u mt a s km 0 d e ) 。当程序不支持多 处理器m p ( m u l t i p f o 嘲s i i l g ) 作业时,系统会停止其中一个逻辑处理单元的运行, 把资源集中于单个逻辑处理单元中,让单线程程序不会因其中一个逻辑处理单元 闲置而降低性能,但由于被停止运行的逻辑处理单元还是会等待工作。占用一定 的资源,因此h t 技术的c p u 运行s 1 m 程序模式时,有可能达不到不带超线程功 能的c p u 性能,但性能差距不会太大。也就是说,当运行单线程运用软件时,超 线程技术甚至会降低系统性能,尤其在多线程操作系统运行单线程软件时容易出 现此问题。 需要注意的是,含有超线程技术的c p u 需要芯片组、软件支持,才能比较理 想的发挥该项技术的优势。操作系统如:m i c r o s o f lw 讪d o 、硼x p 、m i c r o f 1w i n d o w s 2 0 0 3 ,l i n l l ) 【k e i i l d2 4 x 以后的版本也支持超线程技术。 2 2 2 基于m i p s 核的多线程技术 在持续提高处理器性能的情况下, 处理器设计必须融合创新的架构思想。 的技术之一 为满足下一代系统及其应用的需求,新的 多线程技术是孕育新一代处理器最有潜力 最近,基于m 口s 核的r i s c 多线程处理器得到迅猛发展。m 辟s 公司推出的 具有4 个硬件线程的3 4 km 口s 核,每一个硬件线程都有自己独立的寄存器栈,可 以运行独立的任务;属于同一个核的硬件线程共享l l 数据缓存与l 1 指令缓存。 每一个硬件线程类似于一个虚拟处理器单元( v c p u ) 。与超线程h t 技术不同的是, 同一时间只能有一个硬件线程得到运行,剩余的硬件线程得不到运行资源。为了让 每一硬件线程( v c p u ) 得到运行时间,可以通过时间片轮转的方式由硬件进行调度 或者由操作系统的调度程序来进行调度【引。具有4 个硬件线程的单核处理器结构如 7 j t 塞窑亟太堂亟堂焦途塞 图2 4 所示。 图2 - 4 具有4 个硬件线程的m s 3 23 4 k 核结构示意图 多硬件线程对系统性能的提高来自于能够最大限度的利用每个时钟周期的计 算能力。这意味着处理器的资源使用效率比传统的单核系统要高的多,同时更容 易提高系统的性能。原因在于传统单线程处理器执行流水线会被诸如以下的原因 阻塞:缓存缺失,分支预测错误及其流水线互锁事件的发生。图2 5 显示了单核和 具有多硬件线程的核的流水线的运行情况。 线程匡正三匝五叵砸丑匠压丑三匝丑三正亚珊 图2 - 5 a 内存缺失对流水线的影响 线程- 匝五歪叵丑五砸皿互压丑五正丑亟压五四 线程z 匝五五匝丑薹e 丑亟正丑五五固互五习互正习 线程s 匝五三压丑歪巨丑玉互习互五习面五习五玉盈 核叵五五巨叵叵互五正丑三匠丑面压五珥 图2 - 5 b 具有3 个硬件线程的运行情况 发挥出任何处理器核性能的关键在于控制流水线中线程的执行方式,使线程 被循环调度执行,以获取最大效率。当一个线程停下来等待访问内存时,其它的 线程开始运行以确保共享的硬件资源能够获得最大效率使用( 图2 5b ) ,减小c p u 的空闲时钟周期,从总体上提高了c p u 的利用率。在图2 5b 中显示了单核上每 一个硬件线程并不能充分利用流水线资源,但通过调度单核上的三个硬件线程, 该核的总体流水线资源得到充分利用【4 】。 m i p s 技术公司副总裁p a th a y 3 博士认为:“单线程微处理器在等待存储器存 取时浪费了很多周期,在相当程度上限制了系统性能。而多线程技术从根本上解 决了这个问题,通过增加处理器的利用率来减少存储器等待的影响。当一个线程 停止时,其它线程立刻进入流水线开始执行,使系统吞吐能力显著增加。目前, 多线程已经成为高性能c p u 发展的一个趋势,h t c l 、m m 都在开发多线程产品。 利用m 口s 的,e ( m l a lp r o c c s s o re x e c u t i o n ) 技术,我们的产品最多可以做到5 8 墨菝丕线程处理墨 个线程。”而对于多核( m u l 石r e ) 处理器,p a t 认为:“多核技术并不能从根本上解 决存储器的瓶颈问题,相反处理器多了以后,反而增加了面积和功耗就共享存 储而言,我们更倾向于多线程技术,而不是多核技术。” 2 2 3基于m i p s 核的多核技术 为了满足需求,使微处理器处理性能持续提高,微处理器厂家在技术走势上 越来越趋同,那就是设计上以单芯片多处理器为主思路,将多线程作为处理器的 重要技术特征,并且在追求速度和性能的同时,也开始越来越多地关注功耗和效 能。 集成电路技术的飞速发展,使芯片的集成度愈来愈高。与其花费巨额成本改 造c p u 核的体系结构,不如像“复制”那样,同时使用多个相同的c p u 核,以很 低的开发成本获得较高的运算性能。 图2 - 6r ) 珏j u 3 2 多核网络处理器结构不意图 多核处理器可以看作一个集成了多个核的s o c 芯片。目前比较流行的蹦i x l r 7 3 2 网络多核处理器结构如图2 6 所示。r m l x u 订3 2 芯片上集成了8 个m 口s 核。每一个核有自己的l 1 级数据缓存( c a c h e ) 与指令缓存( c h e ) ;各个核共享l 2 级缓存,并通过硬件实现同步;每一个核上具有4 个硬件线程。每一个核都是一 个独立的运行单元,可以独立的调度,互不影响;对于核上多个硬件线程,在同 一时刻只能有一个硬件线程在运作。可以根据每一个核上计算密度来对核上的硬 9 件线程进行设置。对于计算密度比较大的核,可以只设置一个硬件线程运行;对 于计算密度比较小的核,可以设置多个硬件线程运行。 为了加速网络报文的处理速度,r m ix l r 7 3 2 芯片上还集成了许多功能模块: 安全加速弓l 擎、流分类引擎及大量的高速网络接口为加速核间通信,引入快速 消息网络f m n ( f 鹪tm 嚣s a g i n gn 嘲岫r l 【) 机制。通过快速消息f 嚼络f m n 将各个核 和网络接口互连,以实现高速通信的需要【5 】。 多核处理器本质上与对称多处理器s m p 并没有本质上的差别,只不过多核处 理器将多个c p u 集成到一个芯片上。多核处理器同样面临着对称多处理器s m p 面临的数据同步和核闻通信的问题。 2 3多核多线程处理器的关键技术 与单核处理器相比,多核处理器在体系结构、软件、功耗和安全性设计等方 面面临着巨大的挑战,但也蕴含着巨大的潜能。 并行多处理器c m p ( c c u r r e n tm i l l t i p 姗s o r ) 致力于发掘计算的粗粒度并 行性。c m p 可以看作是随着大规模集成电路技术的发展,在芯片容量足够大时, 就可以将大规模并行处理机结构中的对称多处理器s m p 或分布共享处理器 d s m ( d i s 砸b i n e ds h a r e dm 锄o r ) ,) 节点集成到同一芯片内,各个处理器并行执行不 同的线程或进程。在基于s m p 结构的单芯片多处理机中,处理器之间通过片外 c a c h e 或者是片外的共享存储器来进行通信。而基于d s m 结构的单芯片多处理器 中,处理器间通过连接分布式存储器的片内高速交叉开关网络进行通信。由于s m p 和d s m 已经是非常成熟的技术了,c m p 结构设计比较容易,只是后端设计和芯 片制造工艺的要求较高而已。正因为这样,c m p 成为了最先被应用于商用c p u 的 “未来”高性能处理器结构。 虽然多核能利用集成度提高带来的诸多好处,使芯片的性能成倍地增加,但 原来系统级的一些问题被引入到了处理器内部设计实现和软件架构中: 1 ) 核结构研究:同构还是异构 c m p 的构成分成同构和异构两类。同构是指内部核的结构是相同的,而异构 是指内部的核结构是不同的。对于不同的应用领域,研究核结构的实现对未来发 挥微处理器的性能都至关重要。孩本身的结构,关系到整个芯片的面积、功耗和 性能。怎样继承和发展传统处理器的成果,直接影响多核的性能和实现周期。同 时,根据a m d a l l l 定理,程序的加速比决定于串行部分的性能,所以,从理论上来 看似乎异构微处理器的结构具有更好的性能。 核所用的指令系统对系统的实现也是很重要的,多核之间采用相同的指令系 1 0 统还是不同的指令系统,能否运行操作系统等,也将是研究的内容之一。 2 ) 程序执行模型 多核处理器设计的首要问题是选择程序执行模型。程序执行模型的适用性决 定多核处理器能否以最低的代价提供最高的性能。程序执行模型是编译器设计人 员与系统实现人员之间的接口编译器设计人员决定如何将一种高级语言程序按 一种程序执行模型转换成一种目标机器语言程序;系统实现人员则决定该程序执 行模型在具体目标机器上的有效实现。当目标机器是多核体系结构时,产生的问 题是:多核体系结构如何支持重要的程序执行模型;是否有其他的程序执行模型 更适于多核的体系结构;这些程序执行模型能多大程度上满足应用的需要并为用 户所接受。 3 ) c a c h e 设计:多级c a c h e 设计与一致性问题 处理器和主存间的速度差距对c m p 来说是个突出的矛盾,因此必须使用多级 c 础e 来缓解。目前有共享一级c a c h e 的c m p 、共享二级c a d 嵋的c m p 以及共享 主存的c m p 。通常,c m p 采用共享二级c a c h e 的c m p 结构,即每个处理器核心 拥有私有的一级c a c h e ,且所有处理器核心共享二级c a c h e 。 c a c h e 自身的体系结构设计也直接关系到系统整体性能。但是在c m p 结构中, 共享c a c h e 或独有c a c h e 孰优孰劣、需不需要在一块芯片上建立多级c a c h e ,以及 建立几级c a c h e 等等,由于对整个芯片的尺寸、功耗、布局、性能以及运行效率 等都有很大的影响,因而这些都是需要认真研究和探讨的问题。 另一方面,多级c a c h e 又引发一致性问题。采用何种c a c h e 一致性模型和机 制都将对c m p 整体性能产生重要影响。在传统多处理器系统结构中广泛采用的 c a c h e 一致性模型有:顺序一致性模型、弱一致性模型、释放一致性模型等。与之 相关的c a d 呛一致性机制主要有总线的侦听协议和基于目录的目录协议。目前的 c m p 系统大多采用基于总线的侦听协议。 4 ) 核间通信技术 c m p 处理器的各c p u 核心执行的程序之间有时需要进行数据共享与同步,因 此其硬件结构必须支持核间通信。高效的通信机制是c m p 处理器高性能的重要保 障,目前比较主流的片上高效通信机制有两种,一种是基于总线共享的c a d 壕结 构,一种是基于片上的互连结构。 总线共享c a c h e 结构是指每个c p u 内核拥有共享的二级或三级c a c h e ,用于 保存比较常用的数据,并通过连接核心的总线进行通信。这种系统的优点是结构 简单,通信速度高,缺点是基于总线的结构可扩展性较差。 基于片上互连的结构是指每个c p u 核心具有独立的处理单元和c a c h e ,各个 c p u 核心通过交叉开关或片上网络等方式连接在一起。各个c p u 核心间通过消息 通信。这种结构的优点是可扩展性好,数据带宽有保证:缺点是硬件结构复杂,软 件改动较大。 也许这两者的竞争结果不是互相取代而是互相合作,例如在全局范围采用片 上网络面局部采用总线方式,来达到性能与复杂性的平衡。 5 ) 总线设计 在传统微处理器中,c a c h e 不命中或访存缺失事件都会对c p u 的执行效率产 生负面影响,而总线接口单元b i u ( b 邺i n t 妇u 1 1 i t ) 的工作效率会决定此影响的 程度。当多个c p u 核心同时要求访问内存或多个c p u 核心内私有c a c h e 同时出现 c a c h e 不命中事件时,b i u 对这多个访问请求的仲裁机制以及对外存储访问的转换 机制的效率决定了c m p 系统的整体性能。因此寻找高效的多端口总线接口单元结 构,将多核心对主存的单字访问转为更为高效的猝发( b u r s t ) 访问;同时寻找对 c m p 处理器整体效率最佳的一次猝发访问字的数量模型以及高效多端口b i u 访问 的仲裁机制将是c m p 处理器研究的重要内容。 6 ) 操作系统设计:任务调度、中断处理、同步互斥 对于多核c p u ,优化操作系统任务调度算法是保证效率的关键。一般任务调 度算法有全局队列调度和局部队列调度。前者是指操作系统维护一个全局的任务 等待队列,当系统中有一个c p u 核心空闲时,操作系统就从全局任务等待队列中 选取就绪任务开始在此核心上执行。这种方法的优点是c p u 核心利用率较高。后 者是指操作系统为每个c p u 内核维护一个局部的任务等待队列,当系统中有一个 c p u 内核空闲时,便从该核的任务等待队列中选取恰当的任务执行,这种方法的 优点是任务基本上无需在多个c p u 核心间切换,有利于提高c p u 核心局部c a c h e 命中率。目前多数多核c p u 操作系统采用的是基于全局队列的任务调度算法。 多核的中断处理和单核有很大不同。多核的各处理器之间需要通过中断方式 进行通信,所以多个处理器之阃的本地中断控制器和负责仲裁各核之问中断分配 的全局中断控制器也需要封装在芯片内部。 另外,多核c p u 是一个多任务系统。由于不同任务会竞争共享资源,因此需要 系统提供同步与互斥机制。而传统的用于单核的解决机制并不能满足多核,需要 利用硬件提供的“读一修改一写”的原子操作或其他同步互斥机制来保证。 7 ) 低功耗设计 半导体工艺的迅速发展使微处理器的集成度越来越高,同时处理器表面温度 也变得越来越高并呈指数级增长,每三年处理器的功耗密度就能翻一番。目前, 低功耗和热优化设计已经成为微处理器研究中的核心问题。c m p 的多核心结构决 定了其相关的功耗研究是一个至关重要的课题。 低功耗设计是一个多层次问题,需要同时在操作系统级、算法级、结构级、 1 2 电路级等多个层次上进行研究。每个层次的低功耗设计方法实现的效果不同 抽象层次越高,功耗和温度降低的效果越明显。 8 ) 存储器限制 为了使芯片内核充分地工作,最起码的要求是芯片能提供与芯片性能相匹配 的存储器带宽,虽然内部c a c h e 的容量能解决一些问题,但随着性能的进一步提 高,必须有其他一些手段来提高存储器接口的带宽,如增加单个管脚带宽的d d r 、 d d r 2 、q d r 、x d r 等。同样,系统也必须有能提供高带宽的存储器。所以,芯 片对封装的要求也越来越高,虽然封装的管脚数每年以2 0 的数目提升,但还不 能完全解决问题,而且还带来了成本提高的闯题,为此,怎样提供一个高带宽, 低延迟的接口带宽,是必须解决的一个重要问题。 9 ) 可靠性及安全性设计 随着技术革薪的发展,处理器的应用渗透到现代社会的各个层面,但是在安 全性方面却存在着很大的隐患。一方面,处理器结构自身的可靠性低下,由于超 微细化与时钟设计的高速化、低电源电压化,设计上的安全系数越来越难以保证, 故障的发生率逐渐走高。另一方面,来自第三方的恶意攻击越来越多,手段越来 越先进,已成为具有普遍性的社会问题。现在,可靠性与安全性的提高在计算机 体系结构研究领域备受注目。 今后,c m p 这类处理器芯片内有多个进程同时执行的结构将成为主流,再加 上硬件复杂性、设计时的失误增加,使得处理器芯片内部也未必是安全的,因此, 安全与可靠性设计任重而道远 多核处理器的出现,无论对底层硬件的设计还是上层软件的架构都来了新的 挑战。如何发挥多核处理器的性能和保证可靠性、安全性方面提供了新的研究课 题,也带来了巨大的商业应用的潜力1 6 】。 3 虚拟操作系统 3 1虚拟操作系统概念 随着通信技术的发展和应用市场的需求的不断扩大,网络设备越来越复杂, 其研发成本越来越高,开发周期越来越长从目前软件工程的角度来看,软件的 组件化设计非常重要,需要保证软件的高度可移植性和可维护性。 对于复杂的网络协议软件需要实时操作系统的支持,完成任务调度、内存管 理、信号量管理、定时器管理等功能。有时,需要切换操作系统平台,比如在w i n d o w s 操作系统上模拟实际的路由协议软件或系统平台由实时系统v x w 酬| ( s 切换 r 1 h n 畎上,此时希望对上层的应用软件做尽量少的改动就可以平滑地进行平台的 切换。根据目前模块化、封装化的程序设计思想,一个直接的结论就是在底层操 作系统和上层的应用软件之间增加一个组件,用来屏蔽底层操作系统的差异,减 小上层的协议软件对底层操作系统的依赖性这个组件可以认为是一个虚拟操作 系统v o s ( r h l a lo p e r 撕o ns y s b 嗽) ,用于为上层软件提供统一的编程接口a p i ; 同时,根据具体的网络环境的应用提供一些功能来优化或替代底层操作系统的功 能。虚拟操作系统的提出是在实际网络设备的开发过程中,结合现代软件工程的 设计思想提出的。虚拟操作系统减少了对网络设备对底层操作系统的依赖程度, 提高软件的可移植性。 图3 1 虚拟操作系统v o s 结构示意图 虚拟操作系统v o s 实现了一个实时操作系统的大部分功能,屏蔽各种底层操 作系统的差异,为上层应用模块提供一个统一的、可移植的操作系统的编程接口。 根据分层、组件化的程序设计思想,将虚拟操作系统v o s 分为v o s 逻辑层和v o s 系统相关层。虚拟操作系统与底层操作系统、t c p 口协议软件的关系结构示意图 如3 1 所示。 v 0 s 逻辑层提供与底层操作系统无关功能,为上层的网络应用软件统一的、 可移植的操作系统的编程接口。上层系统软件对操作系统功能接口的调用全部由 v o s 逻辑层提供,对上层完全屏蔽底层操作系统的差异。 v 0 s 系统相关层与底层操作系统紧密相关,在这一层实现对底层操作系统的 封装,注册底层的驱动函数接口,同时提供一些底层操作系统提供的功能,比如 网络环境下的自适应分片内存算法。在切换系统平台时。只需要修改系统相关层 的代码就可以实现整个协议软件的移植工作,大大降低了软件的维护成本。 虚拟操作系统v o s 支持底层操作系统具有v 娜吼b 、r t “n 嗽、眦w s 、 p s o s 等,这样可以使上层的t c p 】咿协议软件在各类常规的操作系统上平滑的运 行。 板级支持包b s p ( b o 棚s u p p o f tp a c k c t ) 是介于主板硬件和操作系统之间的一 层,应该说是属于操作系统的一部分,主要目的是为了支持操作系统,使之能够 更好的运行于硬件主板。b s p 是相对于操作系统而言的,不同的操作系统对应于 不同定义形式的b s p ,例如v x w b r l 【s 的b s p 和“i m x 的b s p 相对于某一c p u 来 说尽管实现的功能一样,可是写法和接口定义是完全不同的。为了使b s p 软件更 好的适应虚拟操作系统v o s ,板级支持包b s p 按照虚拟操作系统v o s 的结构进 行注册,由虚拟操作系统v o s 对其进行统一管理。 3 2虚拟操作系统提供基本功能 根据前面的论述,虚拟操作系统v o s 提供了一个实时操作系统的大部分功能, 满足实际网络环境的需要。现在依次介绍虚拟操作系统v o s 提供的系统功能: 1 ) 内存管理 虚拟操作系统v o s 提供的内存管理分为两部分:底层操作系统提供的内存管 理算法和v o s 根据网络环境的需要所提供的自适应分片内存管理算法。根据网络 环境实际运行环境,v o s 内存管理模块提供基于“分页+ 分片”的快速分片内存 管理和基于最优算法的r a w 内存管理。分片内存算法强调分片内存

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论