【Java开源代码栏目提醒】:网学会员,鉴于大家对Java开源代码十分关注,论文会员在此为大家搜集整理了“一种基于AMBA总线的Java SoC - 硕士论文”一文,供大家参考学习!
中山大学 硕士学位
论文一种基于AMBA总线的
Java SoC 级别:硕士 专业:电路与系统 指导教师:谭洪舟 20080507 摘要 一种基于AM BA总线的J ava SoC 专 业: 电路与系统 硕士生: 代巍巍 指导教师: 谭洪舟教授 摘 要 随着Java语言在嵌入式领域中的广泛应用,Java专用处理器凭借执行速度快、内存消耗小的优势备受系统开发者的青睐。
然而现有的Java处理器,往往只关注内部结构的优化和性能的提高,忽略了嵌入式系统的应用要求,不支持多种外围设备,尚未真正实现Java语言的跨平台特性。
针对上述问题,在详细分析了
开源Java处理器JOP的结构和运行过程的基础上,本文提出了更适合嵌入式系统应用的Java SoC设计方案。
它采用JOP核作为中央处理器,利用AMBA片上总线技术集成各种存储器和外设接口,功能十分强大,应用范围广阔。
与其它Java处理器相比,本文设计的Java SoC具有以下创新之处:它采用双层AHB+APB总线架构,在保证总线速度的同时,减少了功耗,提高了系统性能;它对存储器和外设进行统一编址,减少2条外设访问微码指令,简化了硬件电路结构;它提出了微码表动态载入技术,能够在系统复位后将包含引导
代码和微码子程序等信息的微码表,从片外动态载入到处理器核中,避免软件固化,方便系统升级;它实现了动态类装载技术,在目标板上运行类装载器,动态载入Java类文件,真正实现Java语言的平台独立性。
系统仿真和FPGA原型板验证结果均表明,Java SoC的设计具有可行性和正确性,可以交付后端设计、准备流片。
关键词:Java SoC;JOP处理器;AMBA总线;FPGA ABSTRACT AMBA Bus--Based Java System--on··Chip Major: Circuits and Systems Name: W_ei.wei Dai Supervisor:Professor Hong—Zhou Tan ABSTRACT As Java is becoming more and more widely used in embedded systems today,Java processors are preferred by developers for their advantages of efficient bytecodesexecuting and low memory consuming.However,most of the existing Java processorsare dedicated to improve the performance of CPU core on resource—constraineddevices,but lack the compatibility with other popular peripherals which aleindispensable to satisfy the diversity of Java applications. In this thesis,a Java SoC is proposed to realize a complete Java Virtual Machine(JVMl in hardware for the sake of extending Java applications and supporting Java’sCross-Platform feature.The idea is to integrate an open source Java core called JOPand various memories嬲well as popular peripherals on Advanced MicrocontrollerBus Architecture(AMBA)on a single chip. Compared谢m other Java processors,the proposed Java SoC has made thefollowing contributions.Firstly,a multi-hierarchy AMBA bus is brought forward todecreaSe slaves’power consuming and achieve maSters’high performance.Secondly,a united address mapping method for memory and I/0 is adopted and thus tworedundant mocrocode instructions are removed.Thirdly,a microcode table whichcontains booting codes and microcode subroutines is dynamicly loaded from theexterior of the chip into JOP core after reset.As a result,the table does not need fixingon the chip and can be modified at random.Finally,a classloader is located on targetboard and dynamicly loads Java claSs files,in which way Java’S Cross·Platformfeature iS achieved. The demonstration prototype is built on Altera FPGA board and the whole JavaSoC works,which means the project Call step into back—end design stage.Key words:Java SoC;JOP;AMBA;FPGA II
论文原创性声明 本人郑重声明:所呈交的学位
论文,是本人在导师的指导下,独立进行研究工作所取得的成果。
除文中已经注明引用的内容外,本
论文不包含任何其他个人或集体已经发表或撰写过的作品成果。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律结果由本人承担。
学位
论文作者签名 :代黼 日期 :2宠廿年, 月7 日 学位
论文使用授权声明 本人完全了解中山大学有关保留、使用学位
论文的规定,即:学校有权保留学位
论文并向国家主管部门或其指定机构送交
论文的电子版和纸质版,有权将学位
论文用于非赢利目的的少量复制并允许
论文进入学校图书馆、院系资料室被查阅,有权将学位
论文的内容编入有关数据库进行检索,可以采用复印、缩印或其他方法保存学位
论文。
学位
论文作者签名 :懒 新…崎 咝冉 ., 日期 :力砑年,月7日 日期:2现沪年,月7日 第l章引言 第1章 引言 1.1研究背景及意义 近年来,Java语言凭借简单、平台无关、面向对象、分布式、健壮、安全、体系结构中立、可移植、解释性、高性能、多线程、动态等特点【1】在网络上大获成功之后,又开始在
网络家科21、智能卡【31、移动电话〔41等嵌入式系统的应用领域中得到推广。
然而,Java为了保证跨平台运行特性所采用的虚拟机技术‘51,使得程序运行速度缓慢、存储器资源消耗过多,成为制约有实时性要求并且资源有限的嵌入式系统性能提高的瓶颈。
如何提高Java程序的运行效率,是在嵌入式领域引入Java技术时亟待解决的关键
问题。
Java虚拟机(Java Virtual Machine,简称ⅣM)是指能够运行经过编译的Java目标
代码(即字节码)的
计算机的实现【61,它采用特殊的堆栈型体系结构,位于Java应用平台和系统平台之间。
在嵌入式系统中运行Java程序的关键是通过软件或者硬件的方式实现Java虚拟机【7】: 1.软件实现方法 ·解释执行【8l:用以软件方式实现的Java虚拟机来解释执行字节码,一条简单的Java指令被解释成多条指令实现,执行速度较低。
但该种解释执行虚拟机实现程序简单,较为常见。
·即时编译〔91:将频繁使用的字节码编译成机器码存储在内存中,直接调用执行。
即时编译器提高了速度,但消耗大量的存储器资源并带有不确定的编译时间延迟,这对于资源有限并且有实时性要求的嵌入式系统来说并不适用。
·本地编译【lo】:直接将Java原程序在下载运行之前编译成为本地机器码,只能在本地平台上执行,失去了Java最显著的平台无关的特点,没有得到广泛应用。
2.硬件解决方案 ●Java专用处理器:如SUN公司的PicoJava系列【11】、aJile公司的JEM〔1 21、中山大学硕士学位
论文Vulcan ASIC公司的Moon处理器【13j、Martin Schoberl研制的JOP〔14j等,都直接仿照JVM的堆栈型结构设计,以Java字节码作为处理器的指令集合,极大地提高了程序运行速度。
值得注意的是,为了进一步推广Java虚拟机的硬件实现,
开源网站提供JOP处理器源码的
免费下载Il引,极具参考价值。
由于Java是一种高级语言,“全Java”处理器实现难度极大,也缺少成熟的Java操作系统支持,Java专用处理器仍存在很大的发展空间。
·Java协处理器:如Jedi Technologies公司的JSTARtl6】,亦称Java硬件解释器,将字节码对瘟的本地R〔SC(Reduced Instruction Set Computing)指令固化在存储器中,协处理器读入字节码,将其翻译成本地RISC指令,再送到处理器执行。
然焉由于Java字节玛基予堆栈结构,RISC指令基于寄存器体系,执行指令所需要的操作数需要先写入内存蒋读入到寄存器,导致执行效率降低,限制了处理器性能的提离。
●Java并行微处理器:1999年,SUN公司针对Java Computing推出MAJC簸理器嘲,采用超长指令字技术设计,内部采用RISC结构,支持Java
程序的线程级并行。
该处理器的缺陷是对已有
软件目标
代码兼容性较差,缺少有效的编译器,露蘸只限应麓予专用媒体数据处理器。
由上述分析可见,采用软件方法提高Java运行速度已不熊从本质上解决闯题,要大幅度提离Java运行速度,只能采用硬件实现Java虚拟机。
由硬件直接执行Java字节码,执行速度更快,内存消耗更少,更适合嵌入式系统的应用要求。
目前已有的Java处理器,大多采用的是堆栈结构,更关注的是处理器内部性能的提离,嚣忽略了实际应用,具体表现在:未真正实现Java语言的跨平台特性;缺少成熟的Java操作系统支持;不能支持多种外围设备。
近年来SoC(System.on-Chip)技术器司的发展为解决上述问题提供了可行性
方案:以Java微处理器为核心,利用片上总线技术集成各种存储器、控制电路、时钟电路,乃至I/O功能于~个芯片上,不但大大提离了系统性能,而且通过在系统启动时将Java类装载器导入至因标电路板上,能真正用硬件实现Java的跨平台特性。
这一SoC解决方案为Java处理器的研究提供了新思路,兼容多种外设且Java程序能够脱离PC机而独立运行于嵌入式系统中,极具应用前景。
因此,2 第1章引言应用先进的SoC设计方法和理论,研究开发Java专用SoC及配套开发环境具有相当大的理论意义和实际价值。
1.2
论文选题及贡献 1.2。
1课题介绍 《嵌入式Java处理器SoC芯片VP6000的研制》是本人导师谭洪舟教授主持的广州市科技局2007年科技攻关项目,目的是针对嵌入式实时应用领域开发一款能够直接运行Java程序的处理器芯片和一套方便用户使用该芯片进行二次开发的Java系统开发平台,使得程序员只需懂得通用PC机的Java编程知识,即可高效地开发嵌入式Java应用软件。
VP6000最大的特色是真正实现了Java语言的跨平台特性,Java程序一经编译,便可直接在VP6000上运行。
此外,灵活多样的存储器和外设接嚣设计,以及对音频和以太网的支持,大大拓展了VP6000的应用领域。
SoC芯片VP6000代表着Java虚拟机硬件实现技术的又一新方向。
本人在该项目的开发过程中负责VP6000的前端设计工作,为研制该JavaSoC类装载器及配套开发环境提供一个硬件平台。
1.2。
2主要贡献 本文根据Java SoC VP6000的系统结构和软硬件功能划分,开发了一个能够直接运行Java程序的嵌入式硬件平台,主要贡献如下: ·实现动态类装载技术:在系统窟动时将Java类装载器导入至嚣标电路板上,在板上运行类装载器,动态载入Java类文件,真正实现Java语言的平台独立性。
·改进Java处理器:VP6000采用
开源的JOP作为微处理器。
本文研制出一种基于SoC的微码表动态载入技术,能够在系统复位后将包含引导
代码和微码子程序等信息的微码表,从片外动态载入到处理器核中进行内存初始化,改进中山大学硕士学位
论文了基于FPGA而设计的JOP将微码表固定在片上的不足,避免软件固化,方便系统升级;此外,本文还为JOP设计了专门的片上总线接口。
●设计多层次片上总线:本文采用ARM公司的AMBA总线【191,设计了一个三层总线系统,包含高速系统总线、低速
系统总线以及外设总线,不但具有很高的性能,而且接口简单、功耗低,对整个SoC系统结构优化具有重要意义。
此外,总线译码器对存储器和外设进行统一编址,减少2条外设访问微码指令,简化了硬件电路结构。
·设计存储器系统:本文设计了一个灵活的存储器控制器,能够支持不同类型及多种位宽的存储器,包括SRAM(8位/16位/32位)、SDRAM(8位/16位/32位)以及NOR Flash(8位),为SoC的应用提供方便。
·设计多种外设:本文还设计了基于AMBA总线的计时器及看门狗电路、中断控制器、通用输入/输出端口以及串口,积累了自主知识产权。
1.3
论文结构 本文共分7章。
第l章是引言,介绍
论文的研究背景、研究意义和
论文的选题及贡献;第2章是SoC及AMBA片上总线概述,深入研究AMBA总线的设计基础和要求规范:第3章是JOP微处理器分析,主要分析JOP的设计架构、系统运行过程及不足之处;第4章是Java SoC系统总体
设计,提出本文所要设计的Java SoC系统总体结构,着重分析系统运行过程和平台独立性;第5章是Java SoC硬件设计,详述了微处理器、片上总线、存储器系统及几种外设的改进和设计方法;第6章是系统验证,阐述了验证流程,并对Java SoC进行软件仿真和硬件测试;最后,第7章总结与展望,总结全文并提出进一步完善Java SoC系统设计的方向。
4 第2章SoC及AMBA片上总线概述 第2章SoC及AMBA片上总线概述 2.1 SoC概述 随着微电子技术的迅速发展,集成电路芯片的集成度越来越离,露前可以在单芯片上集成上百万到数亿只晶体管,构成片上系统(System—on-Chip,简称SoC):在一小块芯片上集成处理器、存储器及片上逻辑,由单片集成电路构成功能强大的完整系统【20】。
SoC逐渐成为嵌入式系统发展的主流,这是因为它具有诸多优点‘2’l: ·充分利用IP(Intellectual Property)技术,减少产品设计复杂性和开发成本,缩短产品开发时间; ·减少乡}围驱动接口单元和电路板之间的信号传递,加快了数据传输和处理的速度; ·单芯片集成电路可以有效地降低系统功耗和蘧积; ·客户定制或面向特定用途的标准产品,其灵活性能最大满足嵌入式系统的要求,提高系统整机性能; ●在现场可编程芯片上提供系统级集成的SoC,不但具有ASIC高集成度的特性,面量具有FPGA的低风险、灵活和上市快的优势。
SoC芯片集成度的增加以及
工作频率的加快,使得芯片设计的复杂性迅速增加,而市场竞争的愿力追使设计者应最大限度地缩短设计周嬲,这就要求设计者能够重复使用已经设计并经过验证的知识产权模块,即选择所需功能的IP核,集成到一个芯片中。
由于lp核的设计千差万别,IP核的互连就成为SoC设计的关键。
片上总线(On.Chip Bus,简称OCB)是实现SoC中IP核互连最常见的技术手段,它以总线方式实现lp核之闻的数据通信【221。
~般要求片上总线的设计要尽可能简单、具有较大的灵活性以及低功耗,以满足嵌入式系统的性能要求。
飚前,国际上比较成熟的标准化、开放化的片上总线标准有ARM公司的AMBA 5中山大学硕士学位
论文总线【191、Silicore公司的Wishbone总线【231以及Altera设计的Avalon总线四等。
其中,AMBA(Advanced Microcontroller Bus Architecture)总线是专门为嵌入式系统而设计的标准协议,由于其自身的高性能和完全开放性以及ARM处理器的广泛应用,已经成为SoC设计中使用最广泛的总线互连标准。
本文设计的JavaSoC亦采用AMBA总线作为片上IP核之间的互连
通信协议。
2.2 AMBA总线规范〔19,25-27l AMBA总线规范定义了三种不同层次的总线标准:AHB(AdvancedHigh-performance Bus)、ASB(Advanced System Bus)和APB(Advanced PeripheralBus)。
基于AMBA总线的典型SoC系统如图2.1所示。
其中,高性能系统总线AHB/ASB用来连接CPU、片上存储器和其他的高性能IP模块,如DMA(DirectMemoryAccess)等;低带宽外设总线APB用来连接系统的大部分低速外部设备。
系统总线和外设总线之间用一个桥接器进行连接,以减少低性能总线对高性能总线造成的延迟。
需要注意的是,ASB总线是ARM的第一代系统总线,由于AHB可以实现更高性能的连接,ARM建议在新的设计中使用AHB总线。
图2.1典型的AMBA总线系统 2.2.1 AMBA AHB总线 AMBA的AHB总线作为高性能系统的骨干总线,主要用于连接高性能、高时钟频率和高吞吐量的系统模块,女I〕CPU、片上存储器、DMA设备及其它协处理器等。
其主要特性如下:6 第2章SoC及AMBA片上总线概述 ·数据总线:支持32位、64位、128位和256位宽,读/写数据线分离 ·地址总线:32位宽,流水
作业 ◆主要性能:工作频率高,非三态实现,支持多主设备操作、流水线操作、突发传输以及分裂传输 l-AHB总线曩连 AHB总线协议是基于中央复用器的互连结构,如图2-2所示。
图2-2 AHB总线互连结构图 一个典型的AMBA AHB总线设计包含以下单元: ◆AHB主设备:有权请求总线,发起读/写操作并提供地址和控制信息; ·AHB从设备:响应读/写操作,并将数据传输状态反馈给当前主设备; ·AHB仲裁器:授予主设备总线使用权; ·AHB译码器:译码主设备发出的地址信息,选择相应的从设备。
2.AMBA AHB信号
列表 表2.1列出了烈vlBA AHB总线信号描述,表2。
2列出了支持多主设备操作的仲 7中山大学硕七学位
论文裁信号描述。
表2.1 AMBA AHB信号 信号名 信号描述 信号源 信号作用HCLK 总线时钟 时钟源 所有总线传输的时钟信号,上升沿有效飘RESET狂 复位 复位控制器 总线复位信号,低电平有效HADDR〔31:0I 地址总线 主设备 32位地址总线HTRANS〔I:0l 传输类型 主设蚕 指示当前传输类型:NONSEQ、SEQ、IDLE 或BUSYHWRITE 传输方向 主设备 高电平为写传输,低电平为读传输HSIZE〔2:0l 传输宽度 主设备 搬示传输的数据宽度:字节(8位)、半字(16饿) 或字(32饪),最大可达1024位HBURST〔2:0l 突发类型 主设备 指示突发传输类型,支持线性或循环传输方式 的辱、8或16攘突发传输HPROT【3:01 保护控制 主设备 指示当前传输是取操作码还是访问数据,是优 先模式访问还是用户模式访问HWDATA〔31:0l 写数据总线 主设备 i设蚤自从竣备传输数据酶写数据总线HSELx 从设备选择 译码器 指示当前传输所针对的从设备HRDATA〔31:Ol 读数据总线 从设备 从设备向主设备传输数据的读数据总线鬏RE轰DV 传输结束 麸设备 高电平箍示总线传输缭东,低电平表示黄输需 等待,该信号在从设备上既是输入也是输出HRESP〔I:0l 传输响应 从设备 提供传输状态的附加信息:OKAY、ERROR、 爻嚣零瑟¥.秘SPLIT 表2-2 AHB仲裁信号 信号名 信号描述 信号源 信号作用HBUSREQx 总线请求 主设备 主设备X用该信号向总线{申裁器请求总线HLOCKx 锁定传输 主设备 高电平表示圭设备获得了对总线的锁定访阀, 其它主设备无法获得总线直到该信号变低llG&~NTx 总线授予 仲裁器 HREADY和HGRANTx均为高时,l孛裁器授予主 设备X总线访润权HMASTER〔3:0l 主设备号 仲裁器 指示当前正占用总线的主设备号鬏醒ASTERLOCK 锬定序列 枣}裁爨 指示当前主设备正在进行镤定序列的铸输HSPLITx〔15:01 分裂完成 从设备 从设备x用该信号向仲裁器指示哪个主设备应 请求 被允许再发起一次分裂传输 3.基本数据传输 如圈2。
3所示,每个AHB数据传输包括两个分离的部分: ·地址和控制信息:传输一个周期 · 数据:传输一个或多个周期,受从设备发出的HREADY信号控制8 第2章SoC及AMBA片上总线概述 ^毒毒粕●茸l●-一 O●■埘—一 l l l l 1.....一 1......一 l_______-一 li.........一 慰t X X 舡 慰一 K× 胍 慰 XX 0■■ 辩 艇 州 || 八 .|l n 慰 慰 麟 〔〕案 匝 .