




已阅读5页,还剩51页未读, 继续免费阅读
(计算机应用技术专业论文)支持可重构硬件透明编程的操作系统研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
硕士学位论文 i 摘摘 要要 随着微电子技术和计算机技术的发展,实时电路可重构技术(动态重构) 逐渐成为国际上计算系统研究中的一个新热点。它的出现使过去传统意义上硬 件与软件的界限变得模糊,让软件拥有了硬件的高性能,又让硬件具备了软件 的灵活性。 但是目前动态重构计算系统在实际的应用过程中仍然存在着不少问题,比 如在实际开发的中,应用程序开发人员需要去理解硬件接口细节,管理硬件加 速器的配置以及软硬件之间通信。这对开发人员来说非常繁琐,降低了开发效 率;还有传统的可重构系统的操作系统缺乏对可重构资源动态的管理,这不利 于可重构资源的充分利用。 为了解决这些问题,本文设计并实现了一种支持可重构硬件透明编程的操 作系统,它通过系统调用封装了底层硬件细节,让程序设计者可以以透明的方 式开发应用程序。在该方法中,硬件加速模块以硬件函数的形式封装,并形成 硬件函数库。操作系统通过定义系统调用函数以及相应的接口,实现系统对硬 件函数调用的支持,使程序设计者能够像调用普通库函数一样调用硬件函数。 另外,操作系统记录和管理可重配置资源的使用,提高硬件资源利用率和整个 系统的性能。 在完成透明编程模型的改进之后,本文设计了一个实验来测试这个系统。 在同样的环境下,软件函数与硬件函数得出的结果完全吻合,这就表明本系统 能够支持硬件函数,也就是说,能够支持硬件透明编程。从实验得出的数据显 示硬件函数要比软件函数运行平均要快 21.6 倍(包括通信和参数标准化时间)。 虽然硬件函数的配置时间较长,但是可以通过使用配置预取和配置重用等比较 容易实现的技术来改进。因此,本系统不仅支持可重构硬件透明编程,而且能 够在设计方法上保证系统性能的提升。 关键词:硬件函数;硬件透明编程;可重构计算系统;操作系统 支持可重构硬件透明编程的操作系统研究 - ii - abstract with the development of microelectronics and computer technologies, the run- time reconfigurable technology (dynamic reconfiguration) is becoming a new hotspot in the field of the computer system research. it makes the gap between hardware system and software system to be illegible. but problems still exist in practical application of drc, such as that designers need to know the architectural and physical details of reconfigurable device, which may be a great burden to the software designers and can decrease designers efficiency; whats more, the traditional operation system of reconfigurable computing system doesnt support the dynamic usage of reconfigurable resource. to address this issue, an operating system for dynamic reconfigurable computing systems supporting transparent programming has been proposed in this thesis, which allows designers develop applications in a transparent way through encapsulating the details of underlying hardware. the hardware accelerators are described as hardware functions which constitute a hardware function library. the operating system defines necessary system calls and interfaces to support the calling of hardware functions which follows the same semantic as calling software functions. in addition, the operating system records and manages the use of reconfigurable resources to increase the utilization of the resources and performance of the system. after finish improving on the transparent programming model, we design an experiment to test this system. under the same condition, software function and hardware function bring a same result, which means this system that we bring out can support hardware function, that is, it realizes supporting transparent programming model. the data from experimentation indicate the time that software function spends is 21.6 times more than that (include communication and parameter standardization time) of hardware function. though the hardware configuration time is long, we can use pre-configuration method which is very easy to realize to decrease it. so, this system can ensure the advance of performance by design technique. key words: hardware function ; hardware transparent programming; reconfigurablereconfigurabcomputing system; operating system 硕士学位论文 v 插图索引插图索引 图 1.1 基于 sram 的 fpga 可编程位5.3 图 1.2 可编程的路由连接5.3 图 1.3 典型的可重构计算系统的体系结构图.3 图 2.1 可重构资源区域图 :图 a 为一维,图 b 为二维 .15 图 3.1 传统的编程模型使用硬件加速器进行运算 .19 图 3.2 新的编程模型使用硬件函数来实现功能 .21 图 3.3 硬件函数库内的示例代码 .21 图 3.4 框架结构的层次图 .23 图 3.5 体系结构模型.24 图 3.6 硬件透明编程模型描述总结图.25 图 4.1 u c/o s-ii 中任务的状态转换图42.29 图 4.2 u c/os-ii 硬件/软件体系结构43.31 图 4.3 系统调用函数实现代码 .33 图 4.4 硬件函数的执行过程.34 图 4.5 加密或解密代码框架.36 图 4.6 标准化原理图.38 图 4.7 硬件函数状态转换图.40 图 5.1 实验结果界面.45 图 5.2 软硬件函数实验数据对数图.45 图 5.3 可重构资源管理测试数据图.46 湖湖 南南 大大 学 学位论文原创性声明 学 学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所 取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任 何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡 献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的 法律后果由本人承担。 作者签名: 日期: 年 月 日 学位论文版权使用授权书学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意 学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文 被查阅和借阅。本人授权湖南大学可以将本学位论文的全部或部分内容编 入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇 编本学位论文。 本学位论文属于 1、保密,在_年解密后适用本授权书。 2、不保密。 (请在以上相应方框内打“” ) 作者签名: 日期: 年 月 日 导师签名: 日期: 年 月 日 硕士学位论文 1 第 1 章 绪 论章 绪 论 随着计算机技术和微电子技术的发展,尤其是大规模高性能的可编程器件的出 现、 软硬件设计方法和设计工具上的改进, 可重构计算( reconfigurable computing ) 逐渐成为国际上计算系统研究中的一个新热点。可重构计算在软件方面可以在 很大程度上实现多任务并行,在实际应用中实现现场可升级设计;在硬件方面 可以减少芯片总数量,支持可定制的外设选择和可定制的外设操作,硬件算法 实现,能够确保实时响应,支持可定制的处理器设计等等1,与传统的传统冯诺 依曼(von neuman)处理器的系统相比,具有可重构计算能力的系统确实有着 它无可比拟的优势,它让软件拥有了硬件的高性能,又让硬件具备了软件的灵 活性。在本章的内容里面将会系统的讲到可重构计算技术的理论和应用以及发 展情况。 1.1 可重构计算介绍1.1 可重构计算介绍 可重构计算( reconfigurable computing ),它的本质就是利用可编程器件可 多次重复配置逻辑状态的特性来完成各种计算任务,从而使系统具有计算速度 快、设计灵活、硬件资源可重复使用等多种优良性能。基于此技术设计出来的 计算系统称为可重构计算系统( reconfigurable computing system )。 1.1.1 可重构计算的出现1.1.1 可重构计算的出现 早在 20 世纪 60 年代末,美国加利福尼亚大学的 geraid estrin 就提出了重构 计算的概念,并研制出它的原型系统。这个系统由非柔性但可编程的处理器和柔 性的由程序控制重构的数字逻辑部件两部分组成 2。该系统它的硬件和软件尽 管抽象层次不是很高但是均是可以编程重构。由于当时硬件实现技术尚不完善, 故 estrin 研制的系统只是能处于理论设计阶段。直到 1984 年 xilinx 公司推出 其第一款 fpga(field programmable gate array),可重构计算才得以长足的 发展3。 可重构计算的主要思想是利用可重构逻辑器件(如 fpga)的可重构特性, 通过不同的器件配置文件来改变器件实现的功能,赋予了硬件较好的灵活性, 从而实现多种应用。 而今,随着电子科技的高速的发展,特别是大规模高性能的可编程器件的 出现、软硬件设计方法和设计工具上的改进,可重构计算在许多领域成为计算 系统应用研究中的热点,它的出现使过去传统意义上硬件和软件的界限变得模 支持可重构硬件透明编程的操作系统研究 2 糊4。 1.1.2 可重构计算系统的底层技术1.1.2 可重构计算系统的底层技术 可重构计算系统的可重构处理单元(或者称为可重构协处理器)主要有两 种类型,一种是应用最为广泛的现场可编程门阵列 (fpga),本文使用的可重 构处理单元就属于这一类型;另一种是针对特定应用需求设计的可重构处理单 元,例如针对面向图像处理、dsp 变换等领域专门设计的。在本文中只讨论第 一种可重构处理单元为 fpga 的类型。 fpga 的 基 本 组 成 成 分 是 可 配 置 的 逻 辑 块clb (configurable logic block)。通常每个 clb 由许多个基本逻辑元素 ble (block logic element)组成。 clb 包括组合函数模块、触发器和内部连线,组合函数通常用查找表的方式实 现,函数的真值表保存在局部寄存器,通过改写真值表的内容,就可以改变函 数关系;而且 clb 的内部连接关系也是可重构的。 对 于 基 于 现 场 可 编 程 门 阵 列 (fpga) 的 可 重 构 计 算 来 说 , 可 以 这 样 认 为,fpga 技术的发展推动了可重构计算的发展,同时可重构计算的进展和需求, 也促进了 fpga 技术的进步 。 可重构计算的底层技术是 fpga 编程技术。fpga 的编程技术主要有两 种,一种是反熔丝技术,即通常所说的电可擦写技术。但是由于这种技术的可 重构实时性太差,不适用于现在高性能的可重构计算。 另一种是基于静态存储器 (sram)可编程原理的 fpga 编程技术,其基本 原理是:fpga 中各部件之间由类似 sram 功能的路由模块相连接(由于这里 的 sram 并不具备一般 sram 中的随机存取功能,所以称之为类似 sram)。 部件间的连接关系,通过对 sram 编程便可实现应用的需求,这样 fpga 硬 件就如同一般 sram 一样可以重复编程了5。 需要特别指出的是 fpga 的可编程实现运用了静态存储器的基本原理,但 实质与通常意义上的可编程是完全不一样的。比如说,考虑一个信号处理系统, 一般对这样的系统来说,大量的不同复杂算法如 z 变换、傅立叶变换 还有各种 滤波器等,但是对每一种算法可能运行不同的字长。在使用通用处理器来求解 这些问题,设计上一般会采用折衷方案,在考虑能满足功能需求的时候还必须 顾及到资源的使用情况。如果采用基于 fpga 的可重构计算,则可根据字长与 算法的需要实时地改变硬件结构,在满足性能需要的同事节约宝贵的计算资源, 并且其性能够接近或者完全达到 asic 的处理效率。 如图 1. 1 所示,给出了基于 sram 的 fpga 中最小单元的电路原理图。 图 1. 2给出的是它的编程原理电路图,这里的 fpga 单元只是一个简单的反 相器 1。编程的原理也比较简单,当编程端的输入信号为真,通过路由将左右 硕士学位论文 3 两边资源直接相连,否则就不相连,从而实现了电路结构的改变。 数 据 读 数 据 读/写写 q q 图1.1 基于sram 的fpga 可编程位5 路 由路 由 资 源 路 由路 由 资 源 1 资 源资 源 2 p 编程段编程段 图1.2 可编程的路由连接5 1.1.3 可重构计算系统的体系结构1.1.3 可重构计算系统的体系结构 图1.3 典型的可重构计算系统的体系结构图 虽然不同的可重构计算系统的结构会有很大的区别,但其组成成分基本上 是相同的,即:通用处理器、可重构处理单元、存储器、输入输出设备。图1. 3 是一个典型的可重构计算系统的体系结构图。 存储器通用微处理输入 / 输出 本地存储器 可重构处理单 支持可重构硬件透明编程的操作系统研究 4 其中通用处理器用于控制和处理通用的计算任务,可重构处理单元用于处 理专用领域的计算任务,在某些系统中处理器与可重构处理单元集成在同一块 芯片上,而在另外一些系统中,处理器与可重构处理单元分别位于不同的芯片 上。 1.1.4 可重构计算的发展1.1.4 可重构计算的发展 在可重构计算技术提出之前,计算目标的实现长期以来使用的两种方法是 asic(专用特定的集成电路)方法和通用的微处理器方法。 设计专用特定的集成电路是以完全硬件的方式来实现计算任务,它的主要 特点是由于为特定计算任务专门设计,因此能做到设计精确,可得到极高的运算 速度及效率,设计电路的约束基本上是在物理层次的实现上,但这种方法的最大 缺陷是它几乎没有任何的灵活性,要满足任何功能变化的需求就必需得修改电 路,即重新设计电路再布图制版,实现周期很长。 第二种方法是把处理器的功能抽象为指令集,选择其中的指令依某种算法构 成一个新的指令序列,就成了完成特定计算任务的软件,也就是通过用编程语言 来实现不同的功能。这样通过修改软件便可达到改变系统功能的目的,对硬件无 需做任何改动。这种方法的灵活性很强,但是它的可编程性是以牺牲系统的性 能和速度为代价换来的。因为微处理在运算时,按预先设定好的指令序列逐条执 行,而每条指令的执行一般都要经过“读取指令译码执行存储写回”五 个步骤,这不仅增加了系统处理的时间,也使系统的复杂性增加。 相比之下,可重构计算技术避免了上述微处理器计算模式因为取指、译码 等步骤导致的性能损失,同时也消除了专用集成电路计算模式因为前期设计制 造的复杂过程带来的高代价和不可重用等缺陷。 可重构计算技术的发展依赖于可重构逻辑器件技术的发展,同时它的进步 也会大大促进可重构逻辑器件技术的更新。随着半导体技术的进步,目前商用 的可重构逻辑器件在单片上已经可以集成数以百万计的基本逻辑门单元和其它 各种复杂的计算逻辑,甚至有的高端器件上已经集成了多个微处理器核进一步 加强器件的计算能力 6。这些技术的高速发展为以前只是用于实现简单的逻辑 功能和原形系统设计的可重构逻辑器件能够逐步占领计算系统的核心地位提供 了基本支持。 1.1.5 可重构计算的应用1.1.5 可重构计算的应用 可重构计算利用了可编程器件可多次重复配置逻辑状态的特性,它既具有 通用微处理器的设计灵活、易升级,又具有专用集成电路设计的速度快、效率 高的特点。基于这种技术的可重构系统,能以较少的硬件资源实现较复杂的逻 辑电路功能,在提高系统执行速度的同时又显著地降低系统成本。在对执行速 硕士学位论文 5 度和灵活性要求比较高的场合,例如集成电路的计算机辅助设计7、大数运算8、 目标识别 9、字符模式匹配10、数据压缩11、嵌入式系统等方面都有着广泛的 应用前景。 可重构计算一个比较独特的应用是在空间技术中的容错系统的设计。在卫 星上,电子元件有可能被宇宙射线损坏,而维修几乎是不可能的。传统的方法 是增加冗余的部件提供备份,但卫星狭小的空间限制了系统的冗余度。而基于 可重构计算的可配置硬件平台提供了解决方案。它充分利用 fpga 的可编程特 性,配以相应的外围接口电路就可构成结构和功能均可重构的平台,一旦系统 检测到某部分电路被射线损坏而失效,就对芯片逻辑功能进行重构,使其绕过 被损坏的部分,继续正常工作。这种通过芯片内部的重构代替片外系统级的冗 余,使单个芯片的寿命大大提高,同时降低系统复杂度,降低成本和功耗,并 且减小系统的体积12,13。 1.2 动态可重构计算1.2 动态可重构计算 考虑到对于一个大规模的数字系统,系统规模是基于各种逻辑功能模块的 组合。但是,无论是时序逻辑系统,还是组合逻辑系统,或者组合/时序混合系 统,从时间轴上来看,系统中的各个功能模块并不是时时刻刻都在工作的,而 是根据系统外部的整体要求,轮流或循环地被激活或工作。并且,随着数字逻 辑规模地扩大,在相同速度的条件下,在一定的时间区间,其功能模块的平均 使用率将下降。因此,系统设计应该从传统的追求大规模、高密度的方向,转 向如何提高资源利用率,用有限的资源去实现更大规模的逻辑设计的方向上来 14。而动态可重构计算恰恰能够符合这样的需求特点,它能极大的提高资源的 利用率。 动态重构现在是当前可重构计算的研究热点之一,它具体是指在不影响当 前系统正常运行的前提下,将可重构逻辑器件上的部分资源配置为新的功能, 且新生成的这部分能够实时的与其余的部分以及操作系统一起正常运作。动态 重构技术能提高系统的灵活性和资源利用率,从而提升整个系统的性能15。 在研究平台方面,xilinx 公司生产的 xc6000 曾经是一款非常适合动态重 构研究的 fpga,它允许用户下载任意大小的配置文件( bitstream ),而且不用 担心 fpga 内部结构被破坏。但是因为商业的原因现在已经停产了。现在对动 态重构技术研究使用的 fpga 主要是 xilinx 公司的 virtex 和 virtex-ii 系列。这 两个系列的 fpga 都支持动态部分重构。本文使用的实验平台就是 virtex-ii 系 列的产品。 动态重构是可重构计算的发展方向,虽然现在可重构计算广泛的实际应用 仍停留在静态重构的层次上,动态可重构暂时还处于实验研究中。但在不久的 支持可重构硬件透明编程的操作系统研究 6 将来,动态重构很可能会成为可重构计算应用的主流技术。 目前对动态可重构的研究主要集中在如何减少器件重构开销、预配置技术、 更加灵活的配置布局和优化资源调度等方面。本文实现的支持硬件透明编程模 型的动态可重构计算系统也考虑到了这些相关的方面,下面将详细说明本文研 究要解决的问题和研究要达到的目的以及研究的主要工作。 1.3 本文的主要工作1.3 本文的主要工作 1.3.1 问题的提出1.3.1 问题的提出 可重构计算系统提供了微处理器和 asic(专用集成电路)之外的第三种解 决方案,它整合了硬件电路的高性能和高可靠性以及微处理器的可编程功能, 在很多研究领域都表现出来了极大的优越性 16。但是在实际的应用中,可重 构计算仍然存在着一些问题,比如应用开发人员需要去理解体系结构和可重构 器件实现的物理细节,这样会降低设计人员开发的效率;还有可重构计算系统 的操作系统缺乏对可重构资源实时动态的管理,不能够充分利用可重构资源。 我们认为操作系统所支持的编程模型是以上这些问题中最关键的问题。在 传统的设计当中,可重构资源扮演着硬件加速器的角色,在系统中是由专门设 计的电路来控制和操作的。这样就需要应用开发人员具备有与可重构硬件物理 细节以及体系结构方面相关的知识,对只有软件开发背景的程序员来说这是一 个很大的障碍。 对可重构计算系统的设计者和程序员来说,最理想的编程模型应该是可以 完全独立于底层硬件平台的情况下编写代码,也就是本文所提到的硬件透明编 程。 1.3.2 研究的目标1.3.2 研究的目标 我们希望为程序设计者设计出一种能支持可重构硬件透明编程的操作系 统,它能充分利用单片 fpga 可重构硬件支持动态重构的优点,一方面对底层 可重构资源充分利用,另一方面对应用程序开发人员实现硬件透明编程。在操 作系统的支持下,编译和综合工具会根据特定的函数名称来识别硬件函数,并 把硬件函数和输入参数等映射到可重构硬件上执行。 文中的硬件函数,是指通过设计、综合、并封装好的能够直接下载到可重 构硬件资源上面运行的功能模块,通过不同的函数名来标识。应用程序开发人 员可以在程序中直接调用到硬件函数,与软件函数不同的是,这些硬件函数不 是由微处理器来处理,而是在可重构硬件上面运行。 而硬件透明编程,是指用户(应用程序开发人员)能够在不需要关注底层 硕士学位论文 7 硬件实现细节的情况下,通过调用硬件函数来使用可重构硬件。而且使用的方 式在形式上与使用其它软件函数库中的函数一样,应用程序开发人员看到的只 是硬件函数库中的硬件函数。因此底层硬件实现细节对程序开发人员编写代码 是透明的,也就是硬件透明编程。 实现硬件透明编程的想法来源于对多处理器片上系统( soc )并行编程模型 的考查 17,通过把软件函数的功能用硬件函数来实现,利用硬件函数执行的高 效率和在时间上的并行来获得系统整体性能的提升。为了实现这样的系统,在 本文中考虑到了可重构资源管理单元、硬件函数库,以及另外一些必要的软硬 件组件,并把它们整合了到整个系统结构和编程模型之中。 1.3.3 研究的意义1.3.3 研究的意义 随着集成电路制造工艺的不断发展,芯片的价格正在不断下降,嵌入式系 统中硬件加速器的应用会越来越广泛。在保证足够灵活性的前提下,我们把更 多的任务交给硬件加速器来完成,从而获得系统性能的提升。 在本文设计的支持可重构硬件透明编程的系统中,应用程序开发人员可以 通过像调用软件函数一样调用硬件函数库中的硬件函数来完成由硬件加速器实 现的功能,实现对底层硬件实现细节的真正透明。一方面,降低了对应用程序 开发人员的要求,减轻了设计负担,提高了开发效率。另一方面,通过更新和 完善硬件函数库,可以不断的满足实际应用中各种新功能的需求,避免了重复 开发。 1.3.4 完成的工作1.3.4 完成的工作 事实上,本文完成工作不仅仅是一个操作系统的设计,还包括了整个支持 可重构硬件透明编程的系统的完成。在整个系统的实现中,对操作系统的改进 是最核心也是最有难度的工作。具体的细节在下面说明。 首先,分析和研究了前人在与此相关的方向上的工作和贡献,以及他们的 不足之处,总结了可以借鉴的地方。 然后,设计了支持可重构硬件透明编程的系统的框架。在体系结构上本文 把动态可重构计算系统作为一组由微处理器和硬件加速器组成的共享内存的混 合处理单元。编程模型为程序员提供一个类似于常规软件开发环境的接口。硬 件加速模块被封装成硬件函数库,让程序员通过调用硬件函数来使用硬件加速 器,从而实现了底层物理细节的透明。 在系统框架设计完成后,移植了 u c/os-ii 操作系统作为基本操作系统。通 过对 u c/os-ii 的改进实现了系统调用函数对硬件函数的支持(系统调用函数是 操作系统的一部分,也是本文工作的核心部分) ,并且完成对可重构硬件资源的 动态跟踪和管理。 支持可重构硬件透明编程的操作系统研究 8 硬件函数库的建立,以满足更多功能需求。这部分工作主要由我的同学王 伟完成。 最后是实验表明。在对操作系统的改进完成之后,还设计了实验来测试整 个系统。在相同的条件之下,软件函数和硬件函数运行的结果完全吻合,表明 了系统对硬件函数的支持,也就是实现了对硬件透明编程的支持。而且实验结 果还表明,使用硬件函数的运行时间要比使用软件函数要快大约 21.6 倍。虽然 通常硬件函数配置时间较大(通常为毫秒级) ,但是配置延时是可以通过配置预 取等容易实现的方法来减少的。因此,本系统在实现的方法上保证了系统性能 的提升。 1.4 本文的组织1.4 本文的组织 本文的后续内容将按照如下方式组织:第二章给出了一些关键的概念和定 义,并详细分析了国内外在此领域的研究现状;第三章给出了支持硬件透明编 程系统的框架的细节内容,以及硬件函数调用运行的过程;第四章详细描述了 在实验平台上完成支持可重构硬件透明编程的操作系统的方法;第五章给出在 实验平台上实现之后得出的试验结果,并对结果作了分析。最后对本文工作进 行总结,反省不足之处并展望下一步需要进行的研究内容。 硕士学位论文 9 第第 2 章章 可重构计算研究概述可重构计算研究概述 2.1 相关理论介绍2.1 相关理论介绍 如果某一计算系统能够利用可重用的硬件资源,根据不同的应用需求,灵 活的改变自身的体系结构,以便为每个特定的应用需求提供与之相匹配的体系 结构,那么这一计算系统就称为可重构计算系统,其体系结构称为可重构的体 系结构18。 2.1.1 系统设计方法简介2.1.1 系统设计方法简介 可重构计算系统包括可重构硬件和传统的微处理器,一般系统设计描述被 分成两部分:一部分在可重构硬件上执行,另一部分在微处理器软件上执行。 设计人员一般从系统需求出发,采用某种高级语言描述系统功能,并进行功能 的模拟和验证。比较常用的高级语言是 c 和 c+,vhdl 和 verilog 则常被有 硬件设计背景的公司和个人用来进行系统功能描述和模拟。为满足系统功能描 述对并发和同步的表示要求,一些公司和研究机构扩展了这些语言,提出了一 些新的描述语言和规范,如 systemc19和 specc20。 在系统功能描述通过模拟验证后,设计人员将根据模拟中得到的数据,以 及以前的设计经验,对系统功能进行划分,确定哪些功能模块由硬件实现,哪 些功能模块由软件实现。目前软硬件划分还难以完全自动完成,需要设计人员 经验的指导来对系统性能/代价进行权衡,根据系统设计的目标和约束选择最合 适的划分方案。 在划分方案基础上,可以根据软件和硬件的通信模型确定软硬件接口。软 件方面的通信模型一般是建立在统一编址的内存共享变量访问上。内部的通信 可以由内存变量实现,与外部通信的接口则将外部模块映射到内存地址空间中 作为某组端口,通过对这组端口进行读写操作来实现通信。硬件方面的通信模 型则直接由信号的读写操作实现。内部通信可以使用内部信号,与外部的通信 则表现为硬件模块端口上信号的读写操作。通常这些信号会使用寄存器保存, 以满足通信时序要求。 接口综合之后,软件和硬件的功能描述已经确定,系统通信行为的描述也 可以确定下来。接下来可以分别对软硬件模块进行开发、编译和综合,得到软 件和硬件的实现代码。软件实现代码一般是对应于微处理器的机器指令,硬件 实现代码一般是逻辑网表。在这同时,通信行为描述通过通信综合,实现为软 支持可重构硬件透明编程的操作系统研究 10 件驱动程序、中断服务程序,以及通信电路硬件上的操作,如总线上的事务、 内存的读写等。 在上述工作都正确完成后,系统设计到此就告一段落了,剩下的就是具体 实现系统的过程。本文的实验在 xilinx platform studio 8.1i 21(xps)环境下完 成。与以往的设计工具比较起来,xps 为设计人员了更加直观自动的并且简便 易操作的开发环境,简化了系统的设计流程。但是这并没有解决最根本的问题, 那就是程序设计人员仍然需要理解系统体系结构和可重构器件实现的物理细 节。这个问题在本文的支持可重构硬件透明编程的系统中得以解决,具体的细 节将在后面章节中详叙。 2.1.2 粒度的概念2.1.2 粒度的概念 粒度是指系统中可重构成分(或称可重构处理单元,rpu)的操作数的宽 度。rpu (reconfigurable programmable unit)是功能可配置的逻辑块,其内部连 接关系是可重构的。在一个细粒度的可重构体系结构中,rpu 中的处理元素通 常是逻辑门、触发器、查找表等,它们进行位级的操作,实现一个有限状态机 的布尔函数。而在粗粒度的可重构体系结构中,rpu 中的处理元素可能包括完 整的功能单元,像算术逻辑单元 alu、乘法器等,它们进行字级的操作。 本系统设计验证实验采用的硬件平台是 virtex-ii pro xc2vp30 实验板,属 于细粒度的 rpu。 2.1.3 编程深度的概念2.1.3 编程深度的概念 编程深度是指存储在 rpu 中的配置程序或文件的数量。一个 rpu 可能含 有单个配置文件或多个配置文件。对于单配置文件系统,只有一个配置文件驻 留在 rpu 内,因此 rpu 的功能局限于当前装载的配置文件。而在多配置文件 系统中,同时有多个配置文件驻留在 rpu 内,这使得可以通过切换配置文件很 方便地实现不同的功能,而不必从外部重新装载配置文件。本文设计的可重构 计算系统为多配置文件系统。 在处理不同应用的过程中,一个 rpu 可能需要被频繁地重构。重构实际上 就是重新装载配置文件的过程。可重构方式可以大致分为静态重构和动态重构: 1. 静态重构技术:静态可重构计算是指可重复配置器件逻辑功能的静态重 新配置,即通过微控制器控制 fpga 配置不同逻辑功能的配置数据流,实现芯 片逻辑功能的改变。 2. 动态重构技术:与静态配置不同,动态配置是通过微控制器控制 fpga 局部配置不同逻辑功能的配置数据流;或者在系统运行过程中,在不切断 fpga 的运行状态的前提下,完成 fpga 的局部配置或者重新配置,实现系统的动态 重构。 硕士学位论文 11 单配置文件的可重构计算系统通常具有静态重构的特性,而动态可重构计 算系统往往基于多配置文件的 rpu。动态重构系统中的 rpu,可以在运行部分 配置文件的同时,改变其它配置文件。这一特性能够大幅度地降低重新配置的 时间开销。 2.1.4 最小可重配置单元的定义2.1.4 最小可重配置单元的定义 最小可重配置单元( minium reconfigurable unit, mrcu ):当电路功能发生 功能改变的时候,系统需要重新配置的最小单元。fpga 是目前最主要的可重 配置器件。根据每次可配置的范围可以分为部分配置和完全配置两种类型 22。 完全配置类型的 fpga, 如 altera 的 cyclone 系列23,由于任何电路功能的改 变都会造成整片 fpga 的配置 sram 被重写,因此这种类型的 fpga 的最小可 重配置单元即为单片 fpga 芯片。部分配置类型的 fpga,如 xilinx 的 virtex 系列24,可以对其中的一个可编程逻辑模块进行配置,因此其最小可重配置单 元为芯片内的单个 的可编程逻辑模块。 2.1.5 本文给出的定义2.1.5 本文给出的定义 1. 硬件透明编程 所谓硬件透明编程,就是指用户(应用程序开发人员)能够在不需要关注 底层硬件实现细节的情况下,通过调用硬件函数来使用可重构硬件。而且使用 的方式在形式上与使用其它软件函数库中的函数一样,应用程序开发人员看到 的只是硬件函数库中的硬件函数。因此底层硬件实现细节对程序开发人员编写 代码是透明的,也就是硬件透明编程。 2. 硬件函数 硬件函数,是指通过设计、综合、并封装好的能够直接下载到可重构硬件 资源上面运行的功能模块,通过不同的函数名来标识。应用程序开发人员可以 在程序中直接调用到硬件函数,与软件函数不同的是,这些硬件函数不是由微 处理器来处理,而是在可重构硬件上面运行。 3. 可独立配置模块 ti 通常指可以被配置到可重配置器件中的数字功能模块。在本系统中以单个 功能函数为独立配置模块,也就是说一个配置模块可以完成对应的软件函数的 功能。运行时可独立配置模块 ti 的属性包含面积和时间两个方面,可以将其看 作五元组 ti = ,其中: wi 表示 ti 所占用的 mrcu 数目,反映了其对资源的占用情况。 ai 表示可配置模块的开始执行时间。 ei 表示可配置模块的运行时间,可以通过计算可配置模块的时钟周期数确 定模块的运行完成需要的时间。 支持可重构硬件透明编程的操作系统研究 12 ci 表示可配置模块的配置时间,指整个电路生成需要的时间。 di 表示可配置模块的截止期(deadline) 。 这些元素在对可重构资源管理模块的实现过程中会用到。 4. 可配置模块的实现与可配置单元的分布无关 对于给定可配置模块集合 t= 与资源集合 r 。 当可重构资源 ri 的区域大于配置模块 ti 需要的区域时,模块就是可以实现的。 可配置模块与可配置单元分布无关是后续讨论的重要前提条件。首先它保证了 调度器对硬件模块的可选择性,同时也使得可重构资源的合理优化利用成为可 能。 2.2 国外研究现状2.2 国外研究现状 1986 年 xilinx 公司第一款基于 sram 的 fpga 的问世,标志着现代可重 构计算的开端25。这些可编程器件是由细粒度的可编程逻辑块通过走线和可编 程开关相连而组成的。早期的 fpga 结构中只包含少量的逻辑块,一般少于 100 个,现在器件的容量大大增加了,包含上百万甚至上千万。fpga 的可编程元 件是基于 sram 的,可以快速地重新编程,这一特性成为 fpga 在许多领域 获得广泛应用的关键,并成为可重构计算系统发展的持续驱动力量,推动着可 重构计算的发展。 2.2.1 基础技术的研究2.2.1 基础技术的研究 在近年来国外的文献中,比较有代表性的是26这篇综述文章,它描述了 整个可重构计算系统在软件和硬件方面的发展历程。在硬件方面,从单芯片结 构介绍到多芯片系统,包含了内部结构和外部连接;还介绍了对应这些硬件的 各种软件开发设计工具,比如可以把高级语言算法直接映射到可重构硬件上的 一些编译软件。 文中指出目前的可重构计算,指的是系统整合一些形式的硬件编程功能, 使用一定数量的物理控制点来定义硬件应该如何被使用,而且这些控制点能够 在使用同样硬件的前提下随着不同的执行需求做相应的改变。可重构计算系统 包括可重构硬件和传统的微处理器,因此系统配置描述被分成两部分,分别在 可重构硬件上执行和在微处理器软件上运行。 作者探讨了在运行时可重构计算系统中存在的难题,并且提出了一些设想 的解决方法。在存在的改进方法和存在的难题方面,作者认为减少配置延时的 方法有四种。 首先是配置预取,把硬件配置过程和处理器执行过程重叠,防止主处理器 等待配置完成而耗时,通过决定什么时候开始重构硬件可达到最大程度的重叠 硕士学位论文 13 来优化这类重叠,还要防止预取错误擦除有用配置信息。 其次是配置信息压缩,通过设置特定的寄存器来分辨哪些地址位可不必关 注,来压缩配置信息,减少必须被传输到系统中的配置数据量。 还有部分可重构计算系统中的重分布和碎片整理,使可能要放置到可重构 阵列上的新配置信息,和一些总是需要出现在硬件上的配置信息之间的冲突变 得最小。 最后,使用配置缓存把配置信息存储在可重构阵列附近的高速存储器中, 而且它还能提供高带宽的配置数据的交流,使配置信息的并行载入变得更容易。 文中提到这些减少配置延时的方法本文在实验中做了针对性的运用,并且 取得了一定的效果。 2.2.2 体系结构和设计方法的研究2.2.2 体系结构和设计方法的研究 文献27比较全面的覆盖了可重构计算两个方面的内容:体系结构和设计 方法。它还涉及到了一些在近年来比较优秀的体系结构,比如说 alters stratix ii 和 xilinx virtex 4 的 fpga 。 todman 分析了在常规目的和专用目的的设计方法的主要趋势,并且将可重 构计算与普通的微处理器执行做了相应的性能比较,得出结论:在一般情况下, 在实际的应用方面可重构计算能够获得 500 倍的速度提高并且能够节约 70%的 能耗。 作者认为可重构计算可以看作是配置计算或者是自定义计算。在文中,他 们列出了很多数据来说明可重构计算无法比拟的各个方面的优势。最后指出, 应该注意的是可重构计算系统是一个正在成熟过程中的领域。因此,在它发展 过程中就会遇到一些的挑战:首先,是可重构器件的结构和器件之间的接口问 题,因为处理器和存储器必须是高效。一些可重构计算系统用的是标准的 fpga ,而另外一些可能使用的是自己设计的可重构器件。另外一个就是,电 脑半自动化的设计和把应用映射到可重构计算系统中的编译工具的发展问题。 这方面的发展包括了决定哪个部分的应用应该被映射到可重构器件而另外一些 被映射到微处理器上面,决定什么时候和如何配置可重构器件。 2.2.3 操作系统的研究2.2.3 操作系统的研究 支持可重构硬件透明编程的操作系统是本文研究的核心内容。现在的可重 构硬件有着极高的硬件密度和强大的动态重构能力,允许动态配置硬件文件和 并行执行多个硬件任务。这使得可重构计算系统平台成为了现在系统平台的一 个理想的目标,它把高性能计算和灵活的任务设置巧妙的联系到了一起。而这 个平台的核心就是支持动态重构的操作系统。 文章28比较系统的分析了可重构平台的操作系统。 作者 christoph steiger 和 支持可重构硬件透明编程的操作系统研究 14 herbert walder 一直致力于可重构平台方面的研究,并且取得了丰硕的成果。 他们提出为可重构平台提供操作系统,这个操作系统提供一个最小的编程模型 和运行时系统。编程模型定义了执行对象和它们的内部交互活动,并提供了一 系列定义好的系统服务给开发者;运行时系统执行在线任务并负责可重构资源 的管理。这篇文献主要的贡献在于,对部分可重构硬件的硬实时任务在
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 车联网协同信号控制-洞察与解读
- 2025广东省农业科学院设施农业研究所招聘劳动合同制人员1人模拟试卷及答案详解(易错题)
- 2025年4月15日广西梧州市龙投人力资源有限公司招聘2人考前自测高频考点模拟试题及答案详解(有一套)
- 2025江苏南通市海安经济技术开发区立发办事处招聘公益性岗位人员1人考前自测高频考点模拟试题及答案详解(必刷)
- 2025北京顺义区教委所属事业单位第二次招聘教师131人考前自测高频考点模拟试题及答案详解(有一套)
- 2025江西省医疗器械检测中心招聘编制外工作人员2人模拟试卷及答案详解(典优)
- 2025广东省生物制品与药物研究所招聘12人(编制)考前自测高频考点模拟试题及答案详解(考点梳理)
- 2025福建泉州市德化县公办学校专项招聘编制内新任教师19人(二)模拟试卷及一套完整答案详解
- 2025年河北承德辰飞供电服务有限公司招聘101人考前自测高频考点模拟试题附答案详解(黄金题型)
- 2025广西壮族自治区卫生健康委员会机关服务中心公开招聘3人模拟试卷附答案详解(模拟题)
- 设计质量意识培训课件
- 2025年四川省高考化学试卷真题(含答案解析)
- 2025年新玩家股东招募协议书
- 食品安全知识培训会议记录范文
- 2025年剧情短片离婚协议书
- 心理健康汇报表总结
- 药房采购员与验收员培训
- 工人受伤免责协议书
- 航空航天设备故障应急预案及流程
- 车库出租放物品合同协议
- 2025年共青团入团考试测试题库及答案
评论
0/150
提交评论