SoC中应用类IP核高级综合技术研究

SoC中应用类IP核高级综合技术研究

论文摘要

近年来,随着集成电路设计和工艺技术水平的快速提高,片上系统SoC设计技术得到越来越广泛的应用,已经逐步涉及到电子设计技术的诸多领域。SoC设计技术已经成为当今超大规模集成电路的发展趋势。在SoC设计中,IP核是其设计的基础和核心,SoC设计需要尽可能地使用现有IP,以搭积木的方式完成大部分设计。其中,应用类IP核设计是SoC创新性的体现,也是制约SoC快速构建的关键。IP核高级综合技术实现将硬件行为级描述转化为结构描述,甚至布图描述,提高了抽象级别,使设计者从繁杂的底层设计细节中解脱出来,更加专注于整个系统的设计,提高了设计的效率和正确率,降低了设计成本。IP核高级综合技术自提出以来,引起了学术界和工业界的高度重视,并且在未来的设计中将占据更加重要的地位。本文主要面向一类应用程序类型——滑动窗口应用展开研究。滑动窗口广泛应用于图像处理、模式识别和数字信号处理领域,它具有数据量大,计算密集等特点。滑动窗口应用因其访存的特殊性,而成为很多高级综合工具研究的入手点。令人遗憾的是,现有的高级综合系统在解决滑动窗口应用中还存在各种不足,或者没有明确的体系结构模型,或者没有充分开发数据重用,或者为实现数据重用使用了过多的硬件资源,或者没有进行设计空间探索优化。本文在现有工作的基础上,系统的研究了面向滑动窗口应用的IP核的高级综合技术,主要对以下几个方面的问题进行了研究。针对现有体系结构模型的不足,本文首先提出了IP核的参数化三层存储结构模型,设计目标是充分开发滑动窗口应用中存在的数据重用,减少访存次数,加快程序执行速度。该模型采用三级存储层次和寄存器轮转策略,充分开发循环层内和循环层间数据重用,其具体结构由若干参数确定,参数值由编译器根据具体滑动窗口应用的特点在编译阶段确定。本文针对不同类型的数据重用,提出了参数提取算法。实验结果表明,与相关工作相比,本文提出的存储结构模型使用相对较少的存储单元,将程序执行节拍减少了2.13到3.8倍,将程序执行频率由69MHz提升到了200MHz以上。在参数化三层存储结构模型的基础上,本文研究了IP核RTL级硬件描述文件的自动生成。设计目标是实现IP核的可综合Verilog代码自动生成。该过程包括三部分:控制状态机自动生成、运算流水线自动生成和整体封装模块生成。首先,编译器将滑动窗口应用源程序划分为控制部分和运算部分。通过在编译平台上对程序控制部分进行分析,获得循环信息(循环初值、终值和步进值)和数据重用信息,本文提出的控制状态机自动生成算法根据这些信息,实现控制状态机的自动生成。源程序运算部分在编译平台上经过数据结构定义、相关性分析等操作,输出数据流图描述文件,再经过运算流水段划分,生成新的程序中间表述IR(Intermediate Representation),最后,调用相应的运算单元IP函数,实现运算流水线的自动生成。整体封装模块将控制单元、运算流水线和暂存单元等模块集成,实现RTL级IP核硬件描述文件的生成。这种方法避免了手工映射的复杂性和低效性,实现自动映射,并且结果比较优化。在此基础上,本文进一步研究了片上资源足够和不足两种情况下的设计空间探索技术。当片上资源足够时,本文设计了一种基于硬件流水结构的设计空间探索方法,设计目标是充分利用片上资源,提高算法并行度,减少程序执行节拍。其基本思想为在程序正式加载到目标开发板之前,综合考虑片上系统提供的各种资源(主要为芯片面积、存储带宽和存储资源,本文用片上逻辑计算部件个数来衡量片上面积资源),生成能充分利用片上资源的底层硬件结构。如果片上资源有余,则最大化循环展开,增加程序并行性。如果面积资源有余,而存储资源不足,本文将输入数组沿水平方向分块,并实现块内部的数据流水化调度,以尽可能的减少重复访问片外存储系统的次数。实验证明,本文提出的设计空间探索方法,可以将片上资源利用率提高到85%以上,同时本文的阵列分块方法与相关工作相比,可以将访存次数降低2%到20%。在一些大规模应用中,存在大量包含多个循环基本块的程序,由于片上资源有限,并不能将这些循环基本块同时映射到目标芯片上。在这种情况下,如果为每个循环基本块设计一个专用IP核显然是不实际的。本文在片上资源受限的情况下,针对多循环程序设计了一个参数化的流水线模板,该模板结构对特定目标应用中所有循环基本块通用,能够实现对所有循环基本块的顺序映射。该模板根据目标应用需求和片上资源数量确定底层运算单元的配置,并基于软件流水的迭代模调度思想和ShiftQ体系结构模型,实现对各个循环基本块的指令调度和中间暂存寄存器自动生成。实验表明,针对每个循环基本块,本文设计的流水线模板能达到与专用硬件结构相当的执行节拍,同时本文提出的通用模板结构简化了为每个循环设计专用IP这一过程,降低了设计复杂度,缩短了设计周期。综上所述,本文面向滑动窗口应用,研究其IP核的高级综合技术,对存储结构模型、RTL级硬件描述文件自动生成和两种情况下的设计空间探索方法等问题提出了有效的解决方案,对于推进应用类IP核高级综合技术的研究和实用化具有一定的理论意义和应用价值。

论文目录

  • 摘要
  • ABSTRACT
  • 第一章 绪论
  • 1.1 SoC技术概述
  • 1.1.1 基本概念和特点
  • 1.1.2 SoC设计面临的挑战
  • 1.2 IP核高级综合技术
  • 1.2.1 IP核的基本概念和特点
  • 1.2.2 IP核高级综合的研究意义
  • 1.2.3 高级综合的研究现状
  • 1.2.4 高级综合的关键技术问题
  • 1.3 滑动窗口应用简介
  • 1.3.1 滑动窗口应用定义
  • 1.3.2 典型应用分析
  • 1.3.3 二维滑动窗口应用
  • 1.4 本文的主要工作
  • 1.5 全文组织
  • 第二章 SoC架构及IP核体系结构
  • 2.1 SoC整体框架
  • 2.1.1 SoC框架结构
  • 2.1.2 典型系统示例
  • 2.2 IP核结构及其构成
  • 2.2.1 IP核结构
  • 2.2.2 高级综合工具的构成
  • 2.3 相关概念介绍
  • 2.3.1 相关性分析
  • 2.3.2 数据相关图
  • 2.4 小结
  • 第三章 参数化三层存储体系结构模型
  • 3.1 引言
  • 3.1.1 滑动窗口应用的数据重用分析
  • 3.1.2 现有体系结构模型的优缺点分析
  • 3.2 参数化体系结构模型
  • 3.3 参数生成
  • 3.3.1 参数定义
  • 3.3.2 数据重用分类
  • 3.3.3 参数提取算法
  • 3.4 性能分析与模拟
  • 3.4.1 与无SmartBuffer和Diniz方法的比较
  • 3.4.2 与ROCCC系统比较
  • 3.5 小结
  • 第四章 IP核RTL级描述文件自动生成
  • 4.1 引言
  • 4.2 控制单元和运算单元分割
  • 4.3 控制状态机自动生成
  • 4.3.1 DRAM调度器
  • 4.3.2 RAM调度器
  • 4.3.3 smart buffer调度器
  • 4.3.4 输出结果调度器
  • 4.4 运算流水线自动生成
  • 4.4.1 数据结构定义
  • 4.4.2 数据相关图描述
  • 4.4.3 运算流水线划分
  • 4.4.4 中间表示
  • 4.5 整体封装模块自动生成
  • 4.6 实验及其结论
  • 4.6.1 运算部件和控制部件的开销
  • 4.6.2 几个典型程序的综合
  • 4.7 小结
  • 第五章 资源足够情况下的设计空间探索技术
  • 5.1 引言
  • 5.2 设计空间探索算法
  • 5.2.1 芯片面积约束
  • 5.2.2 存储带宽约束
  • 5.2.3 存储资源约束
  • 5.3 设计空间探索算法
  • 5.4 Sobel示例
  • 5.5 性能模拟与分析
  • 5.5.1 循环展开对滑动窗口应用的面积、吞吐率和时钟频率的影响
  • 5.5.2 设计空间探索算法验证
  • 5.6 小结
  • 第六章 资源受限情况下的多循环程序映射技术
  • 6.1 引言
  • 6.2 研究背景
  • 6.2.1 软件流水及其迭代模调度
  • 6.2.2 ShiftQ体系结构模型
  • 6.3 参数化流水线模板
  • 6.4 参数提取算法
  • 6.4.1 FU配置算法
  • 6.4.2 调度
  • 6.4.3 优化
  • 6.4.4 分配
  • 6.4.5 组合
  • 6.5 实验与性能比较
  • 6.5.1 FU配置算法验证
  • 6.5.2 优化算法验证
  • 6.6 小结
  • 第七章 结束语
  • 7.1 论文工作的总结
  • 7.2 课题研究展望
  • 致谢
  • 作者在学期间取得的学术成果
  • 攻读博士学位期间参加的主要科研工作
  • 参考文献
  • 相关论文文献

    标签:;  ;  ;  ;  

    SoC中应用类IP核高级综合技术研究
    下载Doc文档

    猜你喜欢