当前位置: 首页 > 专利查询>上海大学专利>正文

多核异构系统指令存储单元的动态分配方法技术方案

技术编号:7534236 阅读:184 留言:0更新日期:2012-07-12 23:20
本发明专利技术涉及一种多核异构系统指令存储单元的动态分配方法。本方法通过在多核异构系统硬件上设置一个特殊功能寄存器,使其可以通过软件编程的方式对多核系统的共用指令存储单元进行动态分配,使每个处理器占用的指令存储单元能根据应用程序大小在系统运行开始阶段进行调整。本发明专利技术的方法可以应用在MV12多核异构系统上,也可以应用于多核处理器系统中包含8051系列微处理器的领域。

【技术实现步骤摘要】

本专利技术涉及一种,对象主要针对于多核异构系统的多处理器共用同一块指令存储单元(code memory),现在应用在MV12多核异构系统上,也可应用于其他类似多核异构系统。
技术介绍
多核异构系统存储单元的动态分配方法是为解决MV12多核异构系统指令存储单元的分配而提出的。本课题组研发的MV12多核异构系统是由一个32位宽的MVll处理器再加两个8位宽的MVlO处理器整合而成。MVll是课题组以ARM9为内核,扩展存储管理单元(MEMC,memory controller)等其他模块得到的微处理器。MVll经过流片验证,兼容ARMv5指令体系。MVlO是课题组自主研发的,经过硅验证的8位MCU,兼容INTEL 8051指令集,一个机器周期只有四个时钟周期。MV12系统通过AMBA2. 0协议把两个MVlO处理器(其中一个去除了 ADC功能)和MVll整合到一起,形成一个多核异构系统。此多核异构系统以AMBA作为片上通信协议,分为两部分系统,高速的AHB系统和低速的APB系统。其中MVll处理器和去掉ADC模块的MVlO微处理器(命名为MV10_2)挂载在AHB总线上。另一个MVlO微处理器(命名为MV10_1)挂载在APB系统当做子处理器。MV10_1只能访问本地存储单元,而AHB总线上的MVll和MV10_2能通过AHB总线访问系统存储单元。此多核异构系统指令存储单元是一块片外ROM,MV10_2和MVll共用此片外ROM。MV10_2和MVll的程序分别存储在片外ROM的不同区域。此系统默认的设计是MV10_2和MV11分别占用固定大小的ROM空间。MV12片外ROM总大小是256K,默认设计是MV10和MVll各配置128K的指令存储空间。不过因为MVll是以ARM9为内核的处理器,功能比较强,可以运行操作系统,所以其程序复杂度可大可小,可能造成固定空间还不足装下一个复杂程序。这时候我们希望MV10_2和MVll共用的ROM可以根据MVll或者MV10_2的程序大小动态分配。现在多核系统非常普遍,大到CPU和GPU整合到一起形成庞大的APU,小到工控领域,多个MCU的系统板。多核系统共用存储单元经常遇到,比如共用数据存储单元,共用指令存储单元,动态内存分配等,所以存储单元的动态分配问题会比较普遍。
技术实现思路
本专利技术的目的在于针对已有技术存在的缺陷,提供一种通过软件编程,能够以固定单元大小动态配置MVll和MV10_2相互的指令存储空间大小。为达到上述目的,本专利技术的构思是软件编程动态配置就是通过系统中某一个微处理器程序对系统硬件进行重配置。其中对系统硬件重配置的微处理器命名为系统主控处理器,其他接受配置的处理器命名为非主控处理器。所谓固定单元大小就是指动态分配是以IK存储空间为单位,而不能分割出更小的存储空间。这一准则我们定义为最小固定单元为IK准则。最小固定单元为IK的准则有两层含义1.烧录起始地址要和IK空间对齐。2.程序占用不满IK时,占用IK的空间。含义1指明要地址对齐,所以烧录起始地址只能是0K,IKJK…25 ,而不能从0. ,或者256Byte等类似的地址开始烧录。含义2表示当程序末尾只占用了 IK空间中的极少部分,即使是一个字节或者一个字,此IK空间也不能再被另一个处理器的程序占用。根据以上构思,本专利技术采用以下技术方案一种,其特征在于多核系统中的一个处理器一命名为系统主控处理器,从一个固定地址开始指令寻址,而其他处理器一称为非主控处理器,指令寻址必须加上一个偏移地址,而偏移地址由一个特殊功能寄存器经过某种计算得到,所述特殊功能寄存器的值由系统主控处理器编程写入,其具体步骤a.多核异构系统统一编址以实现系统主控处理器能寻址到包括非主控处理器在内的所有物理空间;b.在非主控处理器空间定义一个特殊功能寄存器HW&c,存储软件编程设定的偏移地址;c.设定一个AHB接口模块,连接非主控处理器与AHB总线,并且根据软件编程设定的偏移值计算实际指令存储单元地址;d.多核处理器编程。系统主控处理器程序开头为各非主控处理器定义偏移地址;e.编译程序并按软件编程地址烧录;f.运行系统。所述步骤a中多核异构系统统一编址方法为此多核异构系统是指由一个以ARM9为内核的MVl 1处理器和多个8位宽的类8051MCU—MVlO组成的系统;系统以AHB总线实现片内互联;32位宽的MVll为系统主控处理器,这个主处理器能访问系统所有物理地址其他;与AHB总线互联的微处理器都作为非主控处理器;非主控处理器在AHB系统上统一编址,非主控处理器内部存储单元都一对一映射到AHB系统上;AHB系统采用32位宽总线,8位宽的MVlO特殊功能寄存器映射到AHB系统上占用32位宽的存储单元(高位补0)。所述步骤b中在非主控处理器空间定义一个特殊功能寄存器HW&c方法为非主控处理器为8位宽的MVlO处理器;MVlO处理器有1 个内部寄存器,其中大多数寄存器已经被定义,有特殊意义,称之为特殊功能寄存器;其他没有被定义的特殊功能寄存器预留;现在选取其中一个预留寄存器定义为HWS,位宽7位,默认和复位值为0,最大值127。如果有多个非主控处理器,则在每个非主控处理器定义相同的冊&c,x=l,2,3…;在系统主控处理器编程时候,必须首先对各个非主控处理器的HW&c编程,写入偏移地址。所述的步骤c中设置一个AHB接口模块方法为多核异构系统以AMBA2. 0协议进行片内互联,其中高速系统挂载在AHB总线上。针对AHB总线上的各个处理器;其中以ARM9为内核的MVll处理器为系统主控处理器,兼容8051 MCU的MVlO处理器必须通过AHB总线访问存储单元一指令和数据存储单元;MVll处理器本身就符合AMBA协议规范,不需要另外设计接口模块。MVlO处理器和MVll是异构处理器,并不符合AHB协议接口,数据位宽也不相同,所以必须另外设计AHB接口模块;AHB接口模块主要作用为数据宽度转化,控制信号转化,以及存储单元实际物理地址转化;存储单元实际物理地址转化MV10的默认指令寻址起始地址为ADDRl ;MVlO处理器给出指令地址指针PC,PC指针左移两位,进行字对齐;MVlO处理器读取HWS特殊功能寄存器值,左移10位,遵守最小单元IK原则;默认指令寻址起始地址ADDRl加上左移的PC值,再加上左移后的HWS值,就是最终指令寻址的实际物理地址。所述的步骤d中多核异构系统编程的方法为系统主控处理器的编程系统主控处理器负责软件编程配置各非主控处理器的指令存储单元的大小;系统主控处理器首先启动,然后开始配置指令存储单元;所以如同堆栈定义一样,硬件配置程序必须定义在开始部分。硬件配置的方法为设置每个非主控处理器的HWS寄存器;HWS在各非主控处理器的内部地址为EEH ;因为每个特殊功能寄存器映射到AHB系统都独自占用32位宽的存储单元,所以HWS在AHB系统中,内部地址EEH需要向左偏移两位,即EEH*4=;3B8H ;各非主控处理器的基地址在系统统一编址时候确定。HWS映射到AHB系统的实际地址为非主控处理器基地址加上:3B8H。HWS默认为7位宽,默认值为0,最大配置为127 ;当只有一个非主控处理器MVl本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:胡越黎黄俊凉孙斌周俊刘廷尧虞超王龙杰
申请(专利权)人:上海大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术