论文部分内容阅读
通用处理器是关系到国家命运的战略产业,其发展直接关系到国家的安全和技术创新能力,是国家的核心利益所在。中科院计算所从2001年开始研制龙芯系列处理器,经过十多年的积累和发展,目前产品线已经包括龙芯1号、龙芯2号、龙芯3号三大系列,涵盖小、中、大三类处理器和IP核。江苏中科梦兰电子科技有限公司作为龙芯的产业基地和龙头企业,一直致力于国产龙芯处理器相关产品的研发和市场化推广,目前已经自主研发了基于龙芯CPU的桌面计算机(福珑、灵珑、逸珑系列)、集群计算机(中科大KD-90系列)、触控终端查询机、移动平板计算机、教育云计算平台等多个系列的产品。U-Boot是一款由德国DENX小组开发的适用于多种嵌入式CPU的开源固件,支持MIPS、x86、ARM、XScale、Power PC等多种处理器架构。U-Boot固件兼具BIOS和bootloader的双重功能,除了支持嵌入式Linux系统的引导,还支持引导Net BSD、Vx Works、QNX、RTEMS、ARTOS、Lynx OS等多种嵌入式操作系统,因此在嵌入式开发领域有着非常广泛的应用。根据龙芯2F处理器和Lemote 8089D硬件平台的特点,通过对U-Boot固件和PMON 2000固件的对比分析,提出将U-Boot固件移植到该平台的方案。在分析了U-Boot固件的代码结构和启动流程之后,给出了移植的具体实施过程。针对该平台的特点,通过在U-Boot中整合VGA BIOS模拟器的方法,解决了在非x86体系结构的平台上使用通用显卡的问题。不同于常见的基于“图灵机”理论模型的命令式编程语言,函数式编程语言是基于“lambda算子”和“递归函数”理论模型的。虽然两者解决问题的能力在理论上是等价的,但是由于函数式语言“无副作用”这一特点,导致了其在单元测试、代码调试、程序并行以及程序热部署等方面都远远优于常见的命令式编程语言。介绍作为函数式语言基础的lambda算子的起源、功能和特点之后,在此基础上提出了一种ZL函数式编程语言。通过示例程序说明了ZL语言的语法特点,并自上而下地设计和实现了一个从ZL语言到目标硬件平台的编译系统。通过抽象分层的原理将整个编译过程划分为ZL语言到lambda算子、lambda算子到超级连接子、超级连接子到虚拟机指令和虚拟机指令到硬件平台这四个相对独立的子过程。经过半年的运行和调试,该系统可以成功地将ZL语言的程序编译生成目标平台的机器代码,达到了预期目标。