已阅读5页,还剩69页未读, 继续免费阅读
(计算机应用技术专业论文)基于网络处理器开发环境编译器研究及实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 网络处理器具有高速处理和灵活编程能力,特别适应高速网络和业务演化。 目前网络处理器缺乏高层编程模型和开发工具,给程序开发带来很大难度。如何 开发一种无需了解网络处理器体系结构细节就可方便编程的通用软件平台,是目 前重点研究的内容。本文设计的网络处理器集成开发环境n p w a r e 能够屏蔽底层硬 件实现细节,并可在一定程度上自动完成高层描述到硬件平台的映射。 本文在深入研究商业网络处理器应用开发平台t e j a n p 的基础上,借鉴其思 想,引入有限状态机和数据流两级混合模型构建网络处理器编程模型。深入研究 了编译理论,设计并实现了集成开发环境n p w a r e 编译器原型系统。 在n p w a r e 编程环境中采用插件机制,只要加入特定代码生成器便可支持相应 网络处理器平台上的应用开发,因此编程环境的设计是面向多目标平台可扩展 的。 经测试,集成开发环境n p w a r e 产生的微码性能不低于手工编写的微码,此 甄型系统对于网络处理器应用快速开发具有重要意义。 关键词 :网络处理器;编程模型;编译器;软构件 a b s t r a c t n e t w o r kp r o c e s s o rc a na c h i e v eh i g hp r o c e s s i n gp e r f o r m a n c e a tt h es a m et i m ei tc a nb ep r o g r a m m e df l e x i b l ya n di s v e r ys u i t a b l ef o rh i g h s p e e dn e t w o r ka n ds e r v i c ee v o l u t i o n c u r r e n t l y ,t h ed e f i c i e n c i e so fn ps o f t w a r es u p p o r tl i e i nt w oa s p e c t s :h i g h - l e v e lp r o g r a m m i n gm o d e la n dp r o g r a m m i n ge n v i r o n m e n t s o ,h o wt od e v e l o pap l a t f o r mw h i c hc a l lr e m o v eh d w m ed e p e n d e n c i e sa n ds a c r i f i c el i t t l ep e f f o m a n c ei st h et o p i ct h a tm a n yp r o j e c tt e a m ss t u d y t h ei n t e g r a t e dd e v e l o p m e n te n v i r o m e n td e s i g n e di nt h et h e s i sc a nr e m o v eh a r d w a r ed e p e n d e n c i e sa n dt os o m ee x t e n tf i n i s ht h em a p p i n gf r o mh i 曲- l e v e ld e s c r i p t i o nt o p i a t f o r mo fh a r d w a r e t h i sp a p e ri n v o l v e st h ep r o g r a m m i n gm o d e lo fn e t w o r kp r o c e s s o rb a s e do n t h et o w - l e v e lm i x a b l em o d e lo ff s ma n dd a t a f l o wo nt h eb a s eo fs t u d y i n gt e i a n pd e e p l y ,s t u d i e st h et h e o r yo fc o m p i l e rd e e p l y ,a n dd e s i g n st h ep r o t o t y p in g s y s t e mo ft h ei n t e g r a t e dd e v e l o pe n v i r o m e n t n p w a r eu s e sp l u g - i nm e c h a n i s m t h e a p p l i c a t i o no na l l k i n d so fn pp l a t f o r mc a nb es u p p o r t e db ya d d i n gt h es p e c i f i cc o d ep r o d u c e rt ot h en p w a r e ,s o ,t h ed e s i g no fn p w a r ei sm u l t i _ p l a t f o r ma n de x t e n s i b l e a f t e rb e i n gt e s t e d ,t h ep e r f o r m a n c eo fm i c r o c o d ep r o d u c e db yn p w a r ei sn o tl e s st h a nt h a tp r o d u c e db yh a n d t h es y s t e mh a sa ni m p o r t a n tv a l u ei n q u i c k d e v e l o p m e n to fn e t w o r ka p p l i c a t i o n k e y w o r d s n e t w o r kp r o c e s s o r ;p r o g r a m m i n gm o d e l ;c o m p i l e r ;s o f t w a r ec o m p o n e n t l l 1 1 研究背景及意义 第一章绪论 目前在网络处理器n p ( n e t w o f kp r o c e s s o r ) 体系结构方面已有较多研究【”i ,但 n p 相关软件技术的研究尚不充分田j 。例如,i n t e li x p 系列n p 在体系结构上虽然 已发展到第三代,i n t e l 公司仍专门发起了i n t e i ) c a 大学计划,以资助学术界在n p 尤其是n p 软件技术方面的研究。这足以说明n p 软件技术的重要性和挑战性。在 今后几年里网络处理器将迅速得以普及应用,有着非常巨大的发展空间。因此, 如果面向网络处理器的软件平台能够成功进行产品转化,必将大大降低网络处理 器的编程难度,推进网络处理器的广泛应用。网络设备开发人员可以不用去了解 网络处理器底层复杂的硬件体系结构和指令系统,利用所提供的网络处理器软件 平台,可以非常方便的构建网络应用,开发网络设备。该产品所能带来的经济效 益是显而易见的。 n p 软件开发的困难主要来自于其微并行结构的复杂性和网络多平面环境的 特殊性,突出表现在于缺乏高层编程模型和开发工具,缺乏网络通性处理算法组 件库 “。 针对这些问题,本文结合8 6 3 重大软件专项“面向网络处理器的系统软件平 台”课题,以i n t e l l x p 2 4 0 0 网络处理板为实验平台,深入研究了n p 系统软件平台 涉及的高层编程模型和支持工具。 本文研究的n p 编程模型和环境( n p w “c ) 在系统组织和组件设计两方面都采 用高层描述机制,对程序员屏蔽n p 硬件平台差异和n p 体系结构细节并可在一定 程度上自动完成高层描述到硬件平台的映射。 1 2 国内外研究现状 随着网络处理的发展,国外有关网络处理器操作系统和开发环境方面已有很 多相关的研究,大部分网络处理器已经可以使用类c 语言进行开发,一些相关的 开发工具也得到了飞速发展,例如i n t e l 针对i x p 系列网络处理器提供的集成开 发工具w o r k b e n c h ,v i o s o f t 公司针对a m c c 的n p 7 x x x 系列网络处理器的集成开 发环境a r r i b a 。同时也出现了一些支持网络处理器运行的操作系统,例如 p r i n c e t o n 的v e r a 使用的s c o u t0 s 。 西北二l 业人学硕士论文第一章绪论 目前国内的8 6 3 计划s o c 0 项已将有关网络处理器硬件设计方面研发作为一 个重要项目。中国科学院计算所等相关科研机构正在开展网络处理器的设计和基 于网络处理器的网络设备的研发工作。清华大学、北京邮电大学、上海交通大学 和成都电子科技大学也在网络处理器应用开发方面做了深入的研究,例如清华大 学基于i x a 架构对互联网的队列管理研究、北京邮电大学开发的基于i x p l 2 0 0 处 理器及应用程序接口的网络性能评估卡等。 1 3 论文组织结构 本文第二章主要以i n t e i x p 2 4 x x 系列网络处理器为例,介绍了网络处理器 硬件体系结构。第三章概述了基于f s i w 和d a t a f l o w 的两极混合编程模型,基于 此模型的语言元素,以及集成开发环境n p w a r e 的设计与实现。第四章详细介绍 了n p c 语言编译器的设计与实现。第五章对整个研究工作进行了总结和展望。 西北工业大学硕士论文 第二章网络处理器硬件体系结构 第二章网络处理器硬件体系结构 在1 9 9 9 年初,网络处理器刚兴起时,市场主要被一些新兴的小公司占领, 如c - p o r t 、a g e r e 、s i t e r a 、e z c h i p 等,它们的产品基本都定位在网络处理器或 其它专用通信芯片上,1 9 9 9 年9 月i n t e l 和i b m 公司宣布正式进入网络处理器 市场标志着网络处理器从此在半导体设备市场真正拥有一席之地。国内目前只有 少数几家领先的通信设备制造商如中兴微电子、华为技术等自主开展了网络处理 器的研制项目,可以预见的是在不远的将来,网络处理器必将成为i c 设计尤其 是片上系统( s o c :s y s t e mo nc h i p ) 设计领域的研究热点。目前已面市的主流网 络处理器产品一般都能达到o c 一4 8 ( 2 5 g b p s ) 的处理能力,且很快将升级到 o c 一1 9 2 ( 1 0 3 b p s ) 的水平;支持在第二、三、四层上的线速数据处理;支持各种 q o s 应用如d i f f s e r v 、r e d 、m p l s 等;基于硬件的队列管理、调度机制;可通过 专用汇编语言编程甚至支持高级语言c + + 语言编程如m o t o r o l ac - 5 系列;将交 换单元、m a c 单元与网络处理器单元集成到一块芯片提高处理速率也是进一步发 展的趋势,而a m c cn p 3 4 0 0 已经做到了这点。 作为世界上最大的微处理器厂商,i n t e l 在处理器领域有着无与伦比的技术 优势和丰厚的技术积累。i x p 2 4 0 0 网络处理器是i n t e l 公司推出的广泛应用于网 络、通信和其他数据传输终端的一种高度集成的网络设备,采用并行处理器结构 实现了数据的线速转发。现已经被公司、高校和研究机构广泛使用和研究。 2 1i n t e li x p 2 4 0 0 体系结构 i x p 2 4 0 0 是i n t e l 公司继i x p l 2 0 0 之后推出的又一个基于i x a 体系结构的网 络处理器。它支持2 5 g b p s 应用,具有8 个6 0 0 m l l z 的微引擎、6 0 0 m h z 的处理核 心x s c a l e ,可外接1 块d d rd r a m 和2 块q d rs r a m ,支持标准的m s f 接口标准 s p i 一3 或c s i x l 1 。微引擎的处理能力适用于数据包转发等功能,8 个微引擎能 够在每秒钟转发3 层数据包3 百万个。x s c a l e 处理器可用于处理更加复杂的任 务,如地址学习建立和维护转发表以及网络管理等。 i x p 2 4 0 0 网络处理器是一个高度集成的综合数据处理器【1 3 i 。它提供高性能并 行处理能力,具有各种层次的可扩展性。它结合x s c a l e 微处理器以及8 个独立 的3 2 位r i s c 数据包转发微引擎,加上硬件的多线程支持可达到每秒5 4 g 次操 作。它支持各种各样的w a n 和l a n 应用。通过改进微引擎的系统结构达到高性能 和可扩展性,这些改进包括多线程的分配和使软件具有流水特性的高速缓存系统 西北工业人学硕七论文 第二章网络处理器硬件体系结构 结构。 i x p 2 4 0 0 包含8 个可编程的3 2 位r i s c 处理器、称为微引擎,专用于网络通 信处理。每个微引擎可执行4 个线程,有4 个程序计数器能在一个时钟周期完成 a l u 和移位操作。微引擎的指令集是专门为网络和通信应用设计的能快速有效地 转发数据包数据类型,有位、字节和长字。微引擎中采用一种硬件多线程的特征, 线程的切换没有时间开销。每个微引擎具有4 个程序计数器,分别用于4 个线程。 每个线程有自己的线程标识,使得对于访存的结果能够直接返回给请求的线程。 在微引擎中的一个线程发出访存请求时,这个线程把自己切换出去使得其他线程 得到运行,等到存储器返回结果时再切换到该线程。线程的切换不是采用中断机 制,而是在微指令的控制下进行。这种线程切换机制可以充分利用访存间隙,提 高微引擎的利用率和吞吐率。 2 2 结构特征 1 、多处理器 八个微引擎,加上x s c a l e 弥补了i x p 2 4 0 0 的计算资源。他们共享了一系列 的资源:s d r a m ,s r a m ,m s f ,i x b u s ,s c r a t c h p a dr a m ,和一些其它的功能。 2 、分布式的数据存储结构 每个微引擎都有自己的2 5 6 位的本地寄存器文件。其中的1 2 8 个是转移寄存 器。微引擎有一个下载一存储结构。一个微引擎不能够访问位于它外部的数据。 它必须把这些数据放入它的转发寄存器,对该数据进行操作,然后将数据写回位 于转发寄存器外部的目的地址( 例如s d r a m ) 。一旦数据位于转发寄存器后,一 个微引擎有一个周期的时问访问,这大大的提高了它的处理能力。如果数掘没有 在转发寄存器中,微引擎可以发出一条引用命令来取得所需要的数据,然后“进 西北工业人学硕士论文第二章阿络处理器硬件体系结构 入睡眠”,等待所需数据的到来。这时候硬件的多线程开始工作。 3 、硬件多线程 每个微引擎实际上有四个程序计数器,设计成可以支持四个线程( 称为上下 文) 。当其中一个线程等待数据的时候,它可以“入睡”并且允许其它在同一微 引擎上的线程运行。这样的话,就可以在一个微引擎上运行四个线程,以一种更 为有效的方式使用微引擎的计算资源。这样的方式也获得了更好的芯片利用率, 比实现更多的微引擎,但是没有多线程的方法的消耗更低。在无多线程的设计中, 微引擎在等待数据的时间内仅仅是等待。 x p l 2 0 0 的多线程是硬件中实现的,但 是由软件控制。硬件中实现多线程使上下为切换的零消耗成为可能。 4 、动态的内存优化 s d r a m 和s r a m 单元有一些队列和优化。这允许六个微引擎( 实际上的2 4 个 微引擎线程) 和s t r o n g a r m 从内存单元请求读或者写,并且内存单元可以智能的 决定执行这些请求的优化的顺序。通过这些,实现了在硬件级别,并由软件控制 的在指令基础上的动态的内存优化。 5 、并发 1 ) 在s d r a m 单元和微引擎或者i xb u s 单元之间( 同时在两个方向:读和写) 。 2 ) 在s r a m 单元和微引擎之间( 同时在两个方向:读和写) 。 3 ) 在s d r a m 单元和p c i 单元之问。 4 ) 在i xb u s 和微引擎之间。 6 、块传输 每个微引擎上都有大寄存器,这样的话一个指令就可以使6 4 字节的数据从 一个功能单元到另一个功能单元。或者1 2 8 字节的数据通过i xb u s 。这样就更 好的利用了微引擎的计算资源,同时也减小了代码规模。 7 、可扩展性 i x p l 2 0 0 结构在不同的层次上实现了可扩展性。首先,这样的结构使i x p l 2 0 0 系列的成员可以增加额外的微引擎,同时仍保持同样的编程模型。其次,i x p 特 性网络处理器可以在微引擎内增加指令的存储。第三,多个t x p l 2 0 0 可以简单的 设计连接在一起,允许处理能力和带宽的增长。 2 3i x p 2 4 0 0 功能模块 图2 2 显示了i x p 2 4 0 0 主要功能单元的简化块状图,这些功能单元在下面会 有简要的描述。 1 、x s c a l e 核心 西北j _ = 业大学硕士论文 第二章网络处理器硬件体系结构 完全的3 2 b itr i s c 处理器,具有高性能、低功耗和紧凑设计等特点,适用 于与其它专用的可执行单元集成在同一个芯片中。它带有综合的缓存,可以用来 实现管理功能,运行路由协议,例外处理和其他的功能。 2 、八个微引擎 这些高效的r i s c 引擎可以用于任何要求快速的包内容的探测,数据处理, 或数据传输的任务。他们是具有5 级执行流水的一个大寄存器组( 2 5 6 ) 的完全可 编程3 2 位引擎。硬件多线程,和上下文敏感的寄存器窗口可以进行快速的上下 文切换。 图2 - 2 微引擎结构图 3 、s d r a m 单元 一个共享的,智能存储器接口,可以由x s c a l e 核心,微引擎和p c i 总线上 的设备接入。可以在s d r a m 和微引擎或者i x b u s 单元间,p c i 总线间移动数据块。 4 、s r a m 单元 共享的智能接口,可以由x s c a l e 和微引擎接入。可以在s r a m 和微引擎之间 移动数据块。 5 、p c i 总线接口单元 标准接口,可以连接其它的p c i 设备,或者其它的主机处理器。p c i 接口的 速度可以快到1 3 3 m h z ,但是受到p c i 总线协议和带宽的限制。这也没有预定说 p c i 应该是数据进出i x p 2 4 0 0 的主要途径,需要注意的是,在p c i 单元和微引擎 之l n j 没有内部的直接的连接。 6 、i xb u s 单元 i xb u s 接口是i x p 2 4 0 0 的高速数据流接口。可以在i x p 2 4 0 0 和网络设备例 如m a c 和s a r 之问传递块数据。i xb u s 单元可以在i x p 2 4 0 0 内部执行多种复杂 西北1 业大学硕士论文第二章网络处理器硬件体系结构 的数据传输,外部的i xb u s 接口本身很简单。 7 、m s f 接口交换单元 为m a c 层设备提供服务,例如在接收和发送f i f 0 之间转移数据。 三种存储资源s r a m ,s d r a m 和s c r a t c h p a dr a m 在容量、带宽方面都有 不同。同时拥有三种类型的存储的好处在于其中的每个存储操作都可以并行的进 行,丽且程序员也可以利用适合他们要求不同特性。例如:s d r a m 存储器是为 了分组数据存储和特大的表格,而s r a m 存储器是为了较小延迟的表的查找。 s c r a t c h p a dr a m 在i x p 2 4 0 0 种是较小的,但是它的延迟很小,通常在内部的通 信中使用,并且用于共享的信号量或者计数器。 2 4 小结 本章描述了i n t e li x p 2 4 0 0 网络处理器的硬件体系结构,阐述了i p x 2 4 0 0 的 功能模块以及结构特征。读者通过对本章的阅读可以对i n t e li x p 2 4 0 0 网络处理 器的硬件体系结构有一个大致的了解,这也是理解后续章节的前提和基础。 西北工业大学硕士论文 第三章高层编程模型 - _ 曼_ _ | | _ _ 芭_ 舅_ 一1 - 邕奠_ 量曼墨 第三章高层编程模型 前面的叙述表明n p 具有高速处理性能,y g n p 的另一个优点灵活编程能 力,目前却表现的并不充分。由于其体系结构的特殊性和复杂性,程序员必须对 各种硬件资源,如线程、p e 、各种存储器、各种通信机制等直接进行管理,而传 统上这些事情是由操作系统负责的。过多的硬件细节已经成为n p 程序员的梦魇, 并使得n p 相对于a s i p 的开发效率优势大打折扣。据统计,由于缺乏高效的软件工 具支持,一款网络处理器发布后平均一年半后才能开发出基于该处理器的应用产 品。因此,必须研究能够适当屏蔽硬件细节而又不过多牺牲性能的n p 编程模型和 工具。 3 1 相关研究 i n t e l 为i x p 系列网络处理器产品专门设计了i x a 可移植编程框架。该框架将 网络应用分为m i c r o b l o c k 和c o r ec o m p o n e n t ,分别对应微引擎和x s c a e 上的处理 模块。微引擎执行的功能在逻辑上分成多个m i c r o b l o c k ,每个m i c r o b l o c k 代表一 个分组处理的代码单元。这里实际上包含了微组件的思想- m i c r o b l o c k 之间互 相独立,开发人员将各m i c r o b l o c k 以一定顺序组织成特定应用。尽管具备一定程 度上的抽象,该模型还是过分依赖于i n t e l 的体系结构,暴露了过多硬件细节, 比如m i c r o b l o c k 之间的互联接口与其内部采用的具体硬件机制相关,不能任意的 组合这对一个以复用为主要目的的组件框架来说显然是一大缺陷。i n t e l 公 司专门发起了i n t e l i x a 大学计划,以促进学术界在n p 尤其是n p 软件技术方面的研 究。 n p c l i c k 冽是对著名网络系统编程模型c 1 i c k 的扩展工作,它将c l i c k 模块的 c + + 实现替换成i x p l 2 0 0 的类c 语言。从这一角度看,n p c 1 i c k 本质是一个由大量 分组处理代码块形成的库。但从库元素按照c i i e k p u s h p u l lp a t h 组合成应用的 角度看,它又表现出一定的抽象能力。在i x p 2 4 0 0 之后,i n t e 的可移植编程框 架中也包含了优化的数据平面函数库,因此目前从库方法角度看,n p - c ii c k 并未 表现出相对i n t e l 方案的优越性。其可取之处在于对系统组织的c ii c k 描述方法。 t e j an p i 圳是一个针对i x p 系列的商业n p 应用丌发平台。它引入状念机用以描 述应用逻辑,并将应用任务和任务到资源的映射加以分离,这显然提高了应用的 抽象级别,有助于提高丌发效率。但是其映射过程完全由程序员完成,鉴于n p 复杂性导致的巨大映射空问,该过程仍需要较大工作量。而且,由于t e j a n p 的商 8 西北j :业大学硕士论文第三章高层编程模型 业性,我们难以了解其具体设计技术。不过,萁状态机组件逻辑描述机制给我们 提供了一个可资借鉴的思路。 n e p a l i ”j 代表了另外一个努力的方向。它试图将顺序应用描述甚至是二进 制文件转化成一个由多个模块组成的有向非循环图,以期利用由此而获得的模块 间并行性这实际上是一种传统的串行程序并行化技术,不同之处是其模块的 生成考虑了网络应用领域信息。其后,n e p a i 通过引入一个运行时系统来控制 各模块的执行顺序,这本质上属于处理资源动态调度技术。软件运行时系统存在 的问题是其开销将形成另一个性能瓶颈,这也是目前主流n p 的线程调度机制都 采用硬件实现的原因。困此,作者认为至少在现阶段来看n e p a l 并不是一个合 适的n p 编程方案。 3 2 编程模型 n p w a r e 中的编程模型是一种有限状态机( f s m ) 和数据流( d a t a f l o w ) 两级混 合模型,f s m 和d a t a f l o w 分别用于组件行为描述和系统组织描述。图3 1 是网络 处理器编程模型结构示意。在此模型中,系统共有应用逻辑描述,硬件平台描述, 软硬件映射以及代码生成四大类型构件。 图3 - 1 基于软构件的网络处理器编程模型体系 l 、应用逻辑描述 包括组件行为描述和系统组织描述。这里所谓组件是指每个分组处理功能模 块,组件行为即该模块所实现的分组处理逻辑。而系统是指由多个组件组成的应 用系统,系统组织即组件之间的接口和交互逻辑。在应用逻辑摧述中我们采用了 f s m 和d a t a f l o w 两极混合模型来进行描述。 2 、硬件平台描述 定义具体网络处理器硬件的配置参数和连接情况,包括处理器,寄存器,各 种存储器,总线连接,其他可配置的硬件逻辑单元等。 3 、软硬件映射 决定应用逻辑描述中的各个功能构件如何分配到具体的硬件平台之上,如一 个逻辑线程是映射到单个微引擎还是映射到多个微引擎等。 4 、代码生成 西北工业大学硕士论文 第三章高层编鞋模型 代码生成是编程模型的核心,根据翦三个描述构件来生成用户所需要的面向 特定网络处理器、f 台之上的应用软件代码。比如,针对i n t e li x p 2 4 0 0 处理器产 生针对i x w e v 2 的微代码。代码生成器的核心是前面提到的应用逻辑描述基础构 件库在特定网络处理器硬件平台上的实现。例如当开发i x p 2 4 0 0 网络处理器开发 模型中的代码生成器构件时,必须对逻辑线程、逻辑内存池等基础构件在i x p 2 4 0 0 上进行实现。 3 2 1 应用逻辑描述 f s m 是一种常用的正规模型,它在协议设计和验证、控制系统设计、电路设 计等领域有广泛的应用。这里之所以采用f s m 来描述组件行为是基于以下三方面 考虑: 1 、f s m 在通讯协议设计领域应用普遍,因此采用f s m 模型可以缩短程序员学 习期。 2 、基于f s m 的代码生成相对容易,且易于进行模型相关的优化。 3 、f s m 属于一种正规方法,有利于程序分析和程序验证。 一个组件行为f s m 是一个四元组f s m := ( s ,s o ,t ,e ) ,其中s 表示状态集, s 0 表示初始状态,t 表示变迁集,e 表示事件集,上述集合皆为有限集。变迁表达 了状态之间的转移逻辑,它具备一个关联动作函数,在变迁发生时执行。存在三 种变迁类型:条件变迁、事件变迁、混和变迁。变迁类型决定了变迁发生的时机: 条件变迁在转移条件满是时发生,事件变迁由外部特定事件触发,而混和变迁则 表示变迁在事件到达并且转移条件满足的情况下才能发生。状态之间可以有多个 变迁,它们之闻存在相对优先关系。 n p w a r e 拥有自己的专门语言n p c ,它是一个类c + + 语言,应用系统的各方面 都用它进行描述。我们用一个i p 分类( i p c i a s s i f e r ) 的例子来说明如何使用该 语言描述f s m 。 圈3 - 2i p c i a s s f i e r 的f s m 1 0 曲北工业人学硕士论文第三章高层编程模型 日_ i i 目| 拦 图3 - 2 给出了i p c i a s s i f i e r 的状态机图示,其n p c 描述如f : p a c k ei * m - p k t :组件成员变量 以上是组件相关信息 以下是组件行为f s m 描述 e v e v tp k t e v e n t : f 睾钱 s t a r ts t a t es t a r t s t a t e :初始状态 y f 翳l ds t a t ep a c k e t _ r e a d e d ,ip v 4 ,e x e p t i o n :其他状态变迁 t r i d v s i t i o nr e a d _ e v e n tf r o ms t a r t - s t a t et 0p a c k e t _ r e a d e do n p k t e v e n t p a c k e t d e s c r i p t o r 车p k t d e s e : p k t d e s c = n p c _ r e c e i v ee v e n t ( p o r t j r x ) ;1 i 从输入端口读入事件内容 i f ( p k t d e s c ! = n u l l ) m k t = p k t d e s c 一 p k t j ) t r : e l s em k t = n u l l ; 1 t r a n s i t i o nf o u n d _ i p v 4 _ p a c k e tf r o mp a c k e t r e a d e d 刀i p v 4w h e n ( mp k t 一 e t h e rt y p e = = e t hi p v 4 ) ) t r a n s i t i o nf o u n d e x c e p t i o n _ p a c k e tf r o mp a c k e t j e a d e dm e x c e p t i o nw i i e n ( m j ) k t 一 e t h e r t y p e = = e t h _ i p v 61 | m _ p k t 一 e t h e r t y p e = e t h _ a r p ) t r f d v s i t i o nf o u n d n o - p a c k e tf r o mp a c k e tr e a d e dt os t a r t 。s t a t e i t t e n ( 1 ) ) 矾4 舾y ,洲s e n d t o i p v 4 f w df r o mi p v 4 t os t a r t s t a t e 肠z ( 1 ) p a e k e t d e s c r i p t a rp k t d e s c = n e wp a c k e t d e s c r i p t o r ( m _ p k t ) : n p c s e n d e v e n t ( p o r t i p v 4 f w d _ o ,p k td e s c ) :从输出端口送出事件 t r a n s i t i o ns e n d t o e x c e p t i o n h a n d l e rf r o me x c e p t i o e t o s t a r t s t a t e w h e n ( 1 ) 】1 西北工业大学硕士论文 第三章高层编程模型 p a c k e t d e s c r i p t o rp k t d e s c = n e wp a c k e t d e s c r i p t o r ( i i l p k t ) : n p c s e n d e v e n t ( p o r t e x c e p t i o n _ o ,p k td e s c ) :从输出端口送出事件 ) 3 2 2 系统组织d a t a f i o w 模型 d a t a f l o w 是一种常用的并行计算模型,它广泛应用在处理器设计、信号处 理、程序语言和并行分布计算等多个领域。d a t a f l o w 模型包含两个基本组成部 分:a c l o r 和c h a n n e l 。a c t o r 是d a t a f l o w 模型中的基本处理模块,其有多个输 入输出端口,处理从输入端口进入的消息并从输出端口送出消息。而c h a n n e l 是消息传递的单向通道,它一端连接上游a c t o r 的输出端口,一端连接下游a c t o r 的输入端口。多个a c t o r 通过c h a n n e l 连接在一起构成完整分组处理系统。基于 d a t a f l o w 模型的n p 应用系统组织描述可以自然地刻画分组处理系统中各个模块 之间的相关性和并行性,这有利于代码生成过程中模块到p e 或线程的映射。 在n p w a r e 中,一个组件本质上是一个a c t o r ,但这里的组件比纯粹的a c t o r 包含更丰富的内容。除了传统d a t a f l o w 模型中的输入端口和输出端口,n p w a r e 组件还引入了数据引用端口的概念,用于刻画组件之间的数据共享关系。当然, 组件的具体行为用上一小节介绍的f 酬描述。从程序中可以看出f s m 中的事件( 消 息) 都是通过端口传递的,但f s m 的实现不需要关心端口和哪些c h a n n e l 相连, c h a n n e l 又连结到其他哪些a c t o r 。这样做得好处是提高了每个组件的独立性, 有利于程序复用。在某些复杂应用中,分类可能要根据某些信息表进行,这时候 就需要刻画对信息表的引用,这时就需要引入数据引用端口。图3 3 给出了加入 信息表扩展后i p c i a s s i f i e r 组件的外部模型图示,其中p o r t _ r x i 是输入端 日,p o r t i p v 4 f w do 和p o r t e x c e p t i o no 是输出端口,p o r t c l s t b l r 是数 据引用端口。 圈3 - 3i p c i a s s f i e r 的组件 1 2 西北:业大学硕士论文 第三章高层编型模型 n p c 中组件的定义与c + + 类定义类似,加入信息表扩展后i p c i a s s i f i e r 组件的完整定义如下: c l 4 s $ i p c i a s s i f i e r i p c l a s s f i e r _ lt h r e a d : i p c l a s s i “e f2 一p c l a s s f i e r2t h r e a d : 1 4 两北工业大学硕士论文 第三章高层编程模型 i p c i a s s i f i e r 3 = i p c l a s s f i e r _ 3 一t h r e a d : w v 4 f w d e rl = i p v 4 f w d e r - l t h r e a d : e x e p t h n d l r l l = e x c p t h n d l r l t h r e a d ; ) 3 2 3 硬件平台描述 根据目标硬件板的参数,可以进行板子参数的定制。我们实现t r a d i s y s 的 e n p 2 6 1 1 板子的描述文件,硬件平台描述如下所示: h wi n t e l i x p 2 4 0 0 r a d i s y s 2 6 11 b o a r d s r a m l s i z e = o x 2 0 0 0 0 0 :s r _ a m 单元的各种属性配置 s r a m l b i t _ a l i g n m e n t = 3 2 :访问位数 s r a m l p h y s i c a l _ a d d r e s s = ”o x 8 0 0 0 0 0 0 0 ”:物理地址 s r a m l o f f s e t = o x o ”:片内偏移 s r a n 也s i z e = o x 2 0 0 0 0 0 :s r a mb a n k 2 属性配置 f l a s h s i z e = o x l 0 0 0 0 0 0 :f l a s h 单元的属性配置 d r a m s i z e = ”o x c 0 0 0 0 0 0 。:s d r a m 单元的属性配置 f 其余雀略 3 2 4 软硬件映射 开发人员需要完成模型中各种数据和组件到目标平台实体的映射说明,以指 导代码生成器生成微码。映射遵循的一般原则是:将d a t a f l o w 模型中数据辅助 类实例映射到存储区,将组件实例映射到p e 线程,将c h a n n e l 映射到软硬件队 列实现。为了提高系统性能,用户在映射过程中应该按照以下简单规则进行:在 充分考虑数据访问特性的情况下,尽量将数据实例映射到容量足够且访问延迟较 小的存储区;尽量将交互频繁的组件映射到相邻的p e 上,且如果能满足性能要求 还可以映射到同- - p e 上;尽量将c h a n n e l 映射到既满足其所传递数据的特性又具 有较好性能的实现上:映射尽量利用硬件机制。 用户映射选择仍用n p c 描述。以我们提到的包分类应用映射i o e n p 2 6 1 1 这块 网络处理器开发板为例,映射关系描述了该应用的各个功能构件与网络处理器硬 件的关系,如下所示: m a p p i n gi n t e l i x p 2 4 0 0 r a d i s y s 2 6 11 b o a r d f 到r a d is y s 2 6 il 板子的映射 i p c i a s s l i e r l _ t h r
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 托幼职工健康宣教
- 2025年城市文化空间活力提升
- 诉服中心服务外包合同
- 乡村环境卫生外包合同
- 为啥不取消劳务外包合同
- 家用充电桩安装外包合同
- 清洁工劳务外包合同
- 物业保洁保安外包合同
- 承接产品研发外包合同
- 江门国企劳务外包合同
- GB/T 7025.1-2023电梯主参数及轿厢、井道、机房的型式与尺寸第1部分:Ⅰ、Ⅱ、Ⅲ、Ⅵ类电梯
- 青海省循化县谢坑铜金矿(二、四釆区)矿山地质环境保护与土地复垦方案
- Cpk 计算标准模板
- FANUC O加工中心编程说明书
- 中铁某局集团责任成本管理实施细则试行
- 滕王阁序注音全文打印版
- 有机肥市场推广方案模板PPT
- GB/T 9341-2008塑料弯曲性能的测定
- GB/T 6451-2015油浸式电力变压器技术参数和要求
- GB/T 6414-1999铸件尺寸公差与机械加工余量
- GB/T 29316-2012电动汽车充换电设施电能质量技术要求
评论
0/150
提交评论