软硬件混合架构是可重配置计算的重要形式,是结合CPU与FPGA可重构设备的一类处理器架构。它能够为各种应用程序提供硬件加速能力、软件解决方案,有较好的性能与灵活性。然而操作系统以及各种软件对可重配置计算平台的支持还很不完善,很难充分使用硬件加速带来的优点,主要困难来源于可重配置计算机的两个缺陷。首先是可重配置计算机的设计方法比较复杂,将一个设计转换成机器理解的配置信息还不能自动化。其次是可重配置应用程序和系统软件的运行过程中需要额外的通信工作。 为了解决以上问题,本文试图利用Scratch-Pad存储器,在CPU/FPGA混合架构做软硬件协同设计,提供以scratch-Pad作为共享数据存储区的硬件线程,提升软件硬件化的方便性,并减少软硬件之间的通信量。本文提出了一个CPU/FPGA混合架构上引入Scratch-Pad存储器的新型硬件架构,以Scratch-Pad作为片内高速数据存取区。首先将Scratch-Pad作为线程之间的共享内存,设计了在该架构上的硬件线程模型,该硬件线程能通过硬件逻辑来执行,将线程中运算量较大的部分分配给硬件完成,其他的部分交给CPU作为软件线程执行。软件线程控制了各软硬件线程的运行,有效地利用CPU的灵活性。本软硬件线程模型可以支持多个硬件线程与软件线程,且运行在真正的并行方式。为了实现软硬件混合模型中的硬件线程,本文通过Handel-C编译器从C语言高级语言生成硬件配置,也可通过利用已有的经过测试优化的VHDL逻辑算法来配置硬件线程的执行逻辑,最终在FPGA上执行该硬件线程。通过本机制简化了软件设计到硬件设计过程,提供了一定的由硬件运行程序代码的能力。 本文使用Simics仿真程序模拟了一个软硬件混合架构平台,配置了一块256KB的Scratch-Pad存储器,一个300万门的可重配置FPGA设备,一个通用处理器核。本文将DES,MD5SUM,归并排序等算法设计为软件线程与硬件线程,在该平台上模拟运行获得了测试数据。数据表明,平均执行性能加速比为2.14,访问外部内存降低73.3%。 综上所述,本文所提出的软硬件线程方案能够比较充分的利用带有Scratch-Pad存储器的CPU/FPGA混合架构所引入的性能优势,并在保证线程数据的一致性的同时又不损失软硬件线程对数据访问速度。
资源简介:摘要文章介绍了作者在过击5年中在微内核技术上所做的工作.给出了3个算法.① 通过特任务调度 和线程调度算法相结合的方法.来解决单纯以线程为单位的调度系统的效率和公平性问题;③ 一个改进 的写时拷贝算法,它结合写时拷贝算法和诗问时拷用算法的优点....
上传时间: 2013-12-15
上传用户:thinode
资源简介:symbian平台上多线程的例子,可以结合CActive看看symbian平台上的多任务处理机制
上传时间: 2014-01-24
上传用户:大三三
资源简介:8. MFC的进程和线程 1. Win32的进程和线程概念 进程是一个可执行的程序,由私有虚拟地址空间、代码、数据和其他操作系统资源(如进程创建的文件、管道、同步对象等)组成。一个应用程序可以有一个或多个进程,一个进程可以有一个或多个线程,其中一个是主...
上传时间: 2013-12-26
上传用户:410805624
资源简介:linux平台上多线程实例,linux平台上多线程实例
上传时间: 2014-01-19
上传用户:onewq
资源简介:本文对Windows NT 操作系统的多线程同步机制和同步对象进行了分析,以其在检测仪和经纬仪同步通信程序开发中的应用为例,论述了如何通过共享事件来实现应用程序和设备驱动程序的同步通信,并给出了
上传时间: 2013-06-30
上传用户:小枫残月
资源简介:POSIX线程使用Semaphore的通用代码
上传时间: 2013-12-27
上传用户:wangzhen1990
资源简介:多线程串口通讯实例.rar
上传时间: 2014-12-04
上传用户:pinksun9
资源简介:一个用Java编写的调度线程池内的线程的演示程序.
上传时间: 2015-02-13
上传用户:xwd2010
资源简介:一个用Java编写的描述线程状态之间的转换的源程序.
上传时间: 2014-09-11
上传用户:450976175
资源简介:一个利用java线程技术开发的飞字程序,有助于更好的理解线程技术
上传时间: 2014-12-21
上传用户:qunquan
资源简介:用多线程技术实现的模拟电风扇,可以控制电风扇的开始暂停,转速的大小
上传时间: 2015-02-16
上传用户:chenbhdt
资源简介:一个用JAVA编写的多线程小球运动的东西,希望大家能对多线程运行的原理以及优先级等问题有更深入的理解
上传时间: 2014-11-26
上传用户:lindor
资源简介:容 一个多线程演示时钟的例子 代码分类 APPLICATION 很不错
上传时间: 2013-12-14
上传用户:zhuyibin
资源简介:一个典型的多线程小实例:球的运动 一个典型的多线程小实例:球的运动 几乎每一处都有注释,只要一点时间就能看懂 适合初学者学习交流 这是我学习java线程时做的一个小程序,请大家指教
上传时间: 2013-12-20
上传用户:qwe1234
资源简介:是一篇介绍线程插入技术的好文章,分析很仔细,极有参考价值
上传时间: 2015-04-30
上传用户:changeboy
资源简介:一个实现可以在进程间或者线程间通信的高效环形队列类,特别适用于那种生产者/消费者模型的应用中
上传时间: 2013-12-18
上传用户:gmh1314
资源简介:一个采用汇编线程池实现的Socket完成端口编程例程。
上传时间: 2014-01-01
上传用户:x4587
资源简介:基于java应用语言的多线程同步机制,实现了java中的同步多线程
上传时间: 2015-05-12
上传用户:zmy123
资源简介:linux 多线程 proc*c的oracle接口
上传时间: 2013-12-20
上传用户:yd19890720
资源简介:串口编程,是关于多串口,多线程,有详情的说明
上传时间: 2014-01-16
上传用户:我干你啊
资源简介:一个使用AJAX+EasyJWeb+EasyDBO及多线程技术 开发的网上信息交流及互动系统,主要供EasyJF开源团队的成员网上会议使用,会议系统模拟传统的会议形式,可以同时开设多个不同主题的会议室,每个会议室需要提供访问权限控制功能,会议中能够指定会议发言模式(分...
上传时间: 2013-11-29
上传用户:梧桐
资源简介:wince对线程进行控制的实例程序,包括线程的创建,控制和同步等
上传时间: 2015-07-20
上传用户:lmeeworm
资源简介:多线程是JAVA的难点,要学好它,必须从基础学期,以上的程序希望能对你有所帮助
上传时间: 2014-08-01
上传用户:thinode
资源简介:java实现多线程模拟时钟的原程序,对与课程
上传时间: 2015-08-19
上传用户:zhouchang199
资源简介:也是一个子线程, 对员工的基本资料管理!
上传时间: 2013-12-20
上传用户:teddysha
资源简介:在操作系统后台多线程运行程序的源码,相当有用处的
上传时间: 2014-01-08
上传用户:dave520l
资源简介:介绍有关于线程池技术的优势以及实现,是对线程编程的更好的实现方式
上传时间: 2015-10-02
上传用户:nairui21
资源简介:介绍有关于线程池技术的优势以及实现,是对线程编程的更好的实现方式
上传时间: 2013-12-13
上传用户:咔乐坞
资源简介:实现了面向多线程应用程序的读写锁,支持并发读,互斥写
上传时间: 2015-11-30
上传用户:dengzb84
资源简介:JAVA线程中文版,本教程研究了线程的基础知识--线程是什么、线程为什么有用以及怎么开始编写使用线程的简单程序。研究更复杂的、使用线程的应用程序的基本构件--如何在线程之间交换数据、如何控制线程以及线程如何互相通信。
上传时间: 2013-12-15
上传用户:水口鸿胜电器