CN101187908A - 单芯片多处理器共享数据存储空间的访问方法 - Google Patents
单芯片多处理器共享数据存储空间的访问方法 Download PDFInfo
- Publication number
- CN101187908A CN101187908A CNA2007100465390A CN200710046539A CN101187908A CN 101187908 A CN101187908 A CN 101187908A CN A2007100465390 A CNA2007100465390 A CN A2007100465390A CN 200710046539 A CN200710046539 A CN 200710046539A CN 101187908 A CN101187908 A CN 101187908A
- Authority
- CN
- China
- Prior art keywords
- processor
- sub
- shared data
- address
- moderator
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Multi Processors (AREA)
Abstract
本发明涉及一种单芯片多处理器共享数据存储空间的访问方法。本方法将各子处理器片内高128字节(80h~FFh)数据空间共享,用于多处理器之间命令和数据的传输;并在各子处理器中增加了一个共享数据存储器中断(SDMI)外,把SDMI和仲裁器有效的结合起来,作为共享数据存储器访问机制,用于解决各子处理器之间数据交换中存在的竞争。整个单芯片多处理对共享数据存储器的访问只是通过一个仲裁器判决,并通过中断的方式实现的。仲裁器与各子处理器之间的握手信号采用片内总线方式,其传输速度快、占用资源少便于集成与控制。各子处理器既可以独立工作,也可以与其他处理器协同工作。每个微处理器核实质上都是一个相对简单的单线程微处理器,多个这样子处理器并行地执行程序代码,具有较高的指令级并行性。本方法可应用于MCS-51指令体系的多处理器系统,亦可应用于其它多微控制器、多微处理器等领域。
Description
技术领域
本发明涉及一种单芯片多处理器共享数据存储空间的访问方法。可应用于MCS-51指令体系的多处理器系统,亦可应用于其它多微控制器、多微处理器等领域。
背景技术
共享数据存储器(Shared Data Memory)是多处理器用来存放共享数据的一段存储空间,各子处理器可以从这段空间内读出待处理的数据,也可以把被特定处理过后的数据写入这段空间。
单芯片多处理器通过在一个芯片上集成多个微处理器核来提高程序的并行性。每个微处理器核实质上都是一个相对简单的单线程微处理器或者比较简单的多线程微处理器,多个这样子处理器并行地执行程序代码,具有较高的指令级并行性。
单芯片多处理器结构已成为提高微处理器性能的重要途径。虽然多处理器利用集成度提高带来的诸多好处,让芯片的性能成倍地增加,但明显是原来系统级的一些问题便引入到了处理器内部。例如:多处理器的构成是同构还是异构的?并且核本身结构,关系到整个芯片的面积、功耗和性能;怎样继承和发展传统处理器的成果,直接影响多核的性能和实现周期。此外,多核处理器的设计瓶颈是程序执行模型的选择,而程序执行模型的适用性决定多核处理器能否以最低的代价提供最高的性能。当目标机器是多核体系结构时,多核体系结构如何支持重要的程序执行模型?是否有其他的程序执行模型更适于多核的体系结构?这些程序执行模型能多大程度上满足应用的需要并为用户所接受?
现行多核处理器多采用非对称的异构结构,主要由一个处理器核心和多个辅助处理器构成。在上电复位时主处理器核心必须对辅助处理器进行初始化处理;多核的各处理器之间通过AMBA、Wishbone和Avalon等片上总线连接,并对单一内存空间的共享。现行单芯片多处理器的这种结构的缺点是:硬件结构复杂;软件改动较大;处理器和数据存储器的速度差距大。此外,现行多核结构采用的片上总线结构不仅仅是一种总线,而是一种带有接口模块的互连体系,且AMBA和Avalon总线没有真正意义上的完全公开。
由于基于Intel MCS-51架构的子处理器是应用极为广泛的一类处理器,使用历史悠久,有丰富的第三方支持软件和仿真工具,为广大工程师所熟悉。因此如能在既不改变指令体系又不占用外部通用I/O口的情况下,各个子处理器即可独立工作又可协同工作,并能有效地解决各子处理器之间数据交换中的竞争问题,将大大提高多处理器的性能和资源利用率。
发明内容
本发明的目的在于提供一种单芯片多处理器共享数据存储空间的访问方法,在不占用外部通用I/O口又不改变指令系统的情况下,由多个微控制器来共同完成系统的数据处理、任务控制工作,以便将低成本、应用广泛的基于MCS-51架构微控制器应用于需要大量复杂算法的高端系统中。
为达到上述目的,本发明采用下述技术方案:
一种单芯片多处理器共享数据存储空间的访问方法,基于MCS-51体系,其特征在于在不占用外部通用I/O口又不改变指令系统的情况下,由多个微控制器来共同完成系统的数据处理、任务控制工作:将各子处理器核内高128字节(80h~FFh)数据空间共享,用于单芯片多处理器之间命令和数据的传输;并在各子处理器中增加了一个共享数据存储器中断SDMI外,把SDMI和仲裁器有效的结合起来,作为共享数据存储器访问机制,用于解决各子处理器之间数据交换中存在的竞争;整个单芯片多处理器对共享数据存储器的访问只是通过一个仲裁器判决,并通过中断的方式实现的;仲裁器遵循先申请先访问的优先级原则;对于同时申请的子处理器总裁器遵循先低地址子处理器先访问,高地址子处理器后访问的原则;各子处理器与仲裁器之间的握手信号采用片内总线方式,其传输速度快、占用资源少便于集成与控制;各子处理器既独立工作,或与其他子处理器协同工作;每个子处理器核实质上都是一个相对简单的单线程微处理器,多个这样子处理器并行地执行程序代码,具有较高的指令级并行性。其具体步骤为:
1.定义共享数据空间;
2.设置一仲裁器模块,用于4个子处理器与共享数据存储器的控制和连接;
3.在各子处理器增加一个共享数据存储器中断(Shared Data Memory Interrupt,SDMI),用于各子处理器对共享存储器的访问;
4.根据SDMI中断的定义,设定共享数据存储器访问控制寄存器(SDMCON),用于定义SDMI工作状态;
5.各子多处理器与仲裁器件间接口的定义。
上述共享数据空间具体定义如下:将各子处理器核内高128字节数据空间设为共享数据存储空间,这个共享数据空间的数据总线和地址总线采用子处理器核内数据总线和地址总线,其寻址空间为80h~FFh。由于该地址与各子处理器核内特殊功能地址冲突,各子处理器只能采用寄存器间接寻址的方式访问共享数据存储器,采用直接寻址和位寻址的方式读写特殊功能寄存器。
上述仲裁器模块具体设计内容如下:仲裁器由访问扫描单元、仲裁处理控制单元、接口开关转换单元和一个缓冲区(异步先进先出FIFO)四个部分组成。仲裁器处理过程分成两个过程,分别是扫描处理过程和仲裁处理过程。扫描处理过程由访问扫描单元独立完成,访问扫描单元主要有三个作用:a)采样各子处理器对共享存储器访问的申请信息;b)判断优先权;c)将申请访问的处理器地址存入FIFO。扫描处理过程中,仲裁器遵循两个原则:a)先申请先访问;b)同时申请,低地址子处理器优先级高于高地址子处理器。仲裁器将申请访问共享数据存储器的子处理器地址存入FIFO中。仲裁器仲裁处理过程是由仲裁处理控制单元和接口转换单元协同完成,主要负责从FIFO中取出某个子处理器地址,并根据该子处理器地址,返回一个中断使能信号,并将共享数据存储单元访问权交给该子处理器。仲裁处理控制单元实际上是一个有限状态机,用于控制仲裁处理过程中的操作节拍。这个状态机有IDLE,FETCH和BUSY三个状态组成:IDLE状态是一个初始状态,表示当前没有子处理器访问共享数据存储器;FETCH是一个取子处理器地址状态,它主要负责从FIFO中取出子处理器地址信息并加以判断;BUSY是一个忙的状态,它表示某一子处理器正在访问共享数据存储器,结束这个状态需要访问处理器返回一个访问结束信号。接口开关转换单元是根据仲裁处理控制单元的状态和输出控制共享数据存储器的接口分别与各子处理器的内部数据存储器的接口的连接。
上述共享数据存储器中断具体步骤如下:SDMI中断采用下降沿触发方式,并在程序存储器中设有固定中断入口地址(0033H),当子处理器采样到仲裁器返回的SDMI中断使能信号后,硬件自动形成入口地址,并由此地址进入访问共享数据存储器中断服务程序。共享数据存储器控制寄存器(SDMCON)用于中断控制;另有中断优先级管理寄存器(IP)中bit6位PSM用于设置共享存储器中断的优先级别。
上述设定共享数据存储器访问控制寄存器(SDMCON)方法如下:SMCON为8位寄存器,这里只定义了3位,可以位操作,复位时为xxxxx000,地址为F8H。
各位意义具体说明如下:
ESM:SDMI的中断允许位,必须与中断总控制开关EA结合使用,只有在EA和ESM同时为逻辑1时才允许相应SDMI中断。
SMAPP:SDMI的中断访问标志位。子处理器采样到中断使能信号下降沿后将SMAPP置
1;当子处理器响应该中断后并进入中断服务程序,硬件自动清除SMAPP标志位。
SMDONE:SDMI的中断返回标志位。当子处理器检测到中断下降沿时,SMDONE与SMAPP同时置1;但在子处理器进入中断服务程序后,硬件不会对SMDONE标志位自动清零,由软件对其置0,因此,该标志位必须在SDMI中断服务程序返回前清除,用于通知仲裁器控制释放对共享存储器的访问权。
上述子处理器与仲裁器件间接口的具体定义如下:
ACCESS_APPLY[X]:共享存储器访问申请信号,它是由在各子处理器的EA和ESM被同时设置成逻辑1后产生的一个脉冲。
EN_ACCESS_N[X]:共享数据存储器访问允许信号,它同时也是SDMI中断使能信号。ACCESS_DONE[X]:处理器放回信号;它连接了SDMCON寄存器中的SMDONE信号。
X:取值范围为0-3,分别对应了子处理器0~子处理器3。
SDM ACCESS INTERFACE:共享数据存储器访问接口。
本发明与现有技术相比较,具有如下显而易见的突出实质性的特点和显著优点:本发明通过一个仲裁器将四个基于MCS-51架构的MCU连接起来,并将它们统一编址,使每一个处理器有一个自己的地址标号,组成一个单芯片多处理器系统。在不占用外部通用I/O口有不改变指令系统的情况下,由多个微处理器来共同完成多系统的数据处理、任务控制工作,以使低成本应用广泛的基于MCS-51架构微控制器应用于需要大量复杂算法的高端系统中。
附图说明:
图1:单芯片多处理器结构框架图
图2:仲裁器结构框架图
图3:扫描处理过程流程成图
图4:仲裁处理控制单元状态转移图
图5:仲裁处理过程流程成图
图6:中断处理流程图
具体实施方式
本发明的一个优选实施例子结合附图详述如下:整个单芯片多处理器对共享数据存储器的访问通过一个仲裁器判决,并通过中断的方式实现。各子处理器既可以独立工作,也可以与其他子处理器协同工作。每个微处理器核实质上都是一个相对简单的单线程微处理器,多个这样子处理器并行地执行程序代码,具有较高的指令级并行性。仲裁器与各子处理器之间的握手信号采用片内总线方式,具有传输速度快、占用资源少便于集成与控制等特点。单芯片多处理器框架图及其关键信号列表分别见图1和表2;各子处理器地址编号及优先权列表见表1。单芯片多处理器整体架构设计采用了下述方法实现。
1.将基于MSC-51架构的寄存器传输级子处理器IP核打包,并将4个这样的子处理器核通过一个仲裁器的判决共享一个数据存储空间,组成一个单芯片多处理器系统。每个子处理器有自己的地址标号,既可以独立工作,又可以在不占用外部通用I/O口情况下协同工作。
2.定义一个128字节的单口SRAM作为共享数据存储器,用于各子处理器之间的命令传输和数据交换,其寻址空间为80h~FFh。
3.定义各子处理器对共享数据存储器的访问接口。此访问接口包括共享数据存储器读写控制信号、数据总线和地址总线,这些接口信号与子处理器核内数据存储器接口是一致的,因此为避免共享数据存储器与各子处理器核内特殊功能寄存器地址重叠所引起的访问冲突,各子处理器通过一个仲裁器判决,并采用寄存器间接寻址的方式访问共享数据存储器。
4.设计一仲裁器模块,用于4个子处理器与共享数据存储器的控制和连接;仲裁器主要有三个功能:a)仲裁;b)缓冲;c)转换各子处理器对共享数据存储器的访问权。
5.仲裁器通过返回一个SDMI中断信号EN_ACCESS_N[X]允许子处理器访问共享数据存储器,并将共享数据存储器的访问权交给已经获得访问批复的子处理器。
6.各子处理器释放对共享数据存储器的访问权是通过设定SDMCON寄存器中SMDONE来产生ACCESS_DONE[X]实现的。
总之,子处理器必须通过SDMI中断,采用寄存器间接寻址的方式对共享数据存储器进读写操作;并且退出在SDMI中断服务程序前必须软件清除SMDONE标志位。
根据上述单芯片多处理器的具体实施,仲裁器在整个单芯片多处理器里所起的作用可以概括为“四个部分和两个过程”。仲裁器的四个部分为:访问扫描单元、仲裁处理控制单元、接口开关转换单元和一个缓冲区(异步先进先出FIFO)四个部分组成,图2给出了仲裁器结构框架图;两个处理过程分别为扫描处理过程和仲裁处理过程。两个处理过程以FIFO为界,往FIFO中存入地址之前的操作为扫描处理过程;从FIFO中取出处理器地址信息之后的操作为仲裁处理过程,图3和图5分别给出了扫描处理过程和仲裁处理过程的工作流程图。
扫描处理过程由访问扫描单元独立完成,访问扫描单元主要有三个作用:a)采样各子处理器对共享存储器访问的申请信息,即表2中ACCESS_APPLY[X]信号是否有上升沿到达;b)判断优先权;c)将申请访问的子处理器地址存入FIFO。在扫描处理过程中,访问扫描单元不停扫描ACCESS_APPLY[X]信号;有上升沿到达时,访问扫描单元做出判断并将有上升沿到来的信号所对应的子处理器的地址存入缓冲区。整个扫描处理过程中遵循两个基本的优先原则:a)先申请先访问,b)对同时申请的子处理器,按表1定义的优先级别先处理低地址的子处理器,后处理高地址的子处理器。
对于仲裁处理过程有如下的几个定义:
1.仲裁处理过程由仲裁处理控制单元和接口转换单元协同完成,
2.仲裁处理过程作用是主要负责从缓冲区中取出子处理器地址,并根据该子处理器地址,返回一个中断使能信号,并将共享数据存储单元访问权交给该子处理器。
3.仲裁处理控制单元是一个有限状态机,用于控制仲裁处理过程中的操作节拍,图
4给出了仲裁处理控制单元状态转移图。
a)仲裁处理控制单元的有限状态机有IDLE,FETCH和BUSY三个状态组成;
b)IDLE状态是一个初始状态,表示当前没有子处理器访问共享数据存储器;
c)FIFO_EMPTY和ACCESS_DONE_FLAG是这个状态机的转移条件信号:
FIFO_EMPTY=1表示仲裁器中异步先进先出(FIFO)中为空;
ACCESS_DONE_FLAG=1表示了当前访问共享数据存储器的子处理器完成了访问操作。
d)FETCH是一个取子处理器地址状态,它主要负责从FIFO中取出子处理器地址信息并加以判断;
e)BUSY是一个忙的状态,它表示某一子处理器正在访问共享数据存储器,结束这个状态需要访问处理器返回一个访问结束信号。
4.仲裁处理过程具体工作方式如下:
a)当单芯片多处理器上电或复位时,仲裁处理控制单元处于IDLE状态;
b)当有子处理器申请访问共享存储器,访问扫描单元将申请访问的子处理器地址存入缓冲区时,FIFO不为空即FIFO_EMPTY=0,仲裁器转入FETCH状态,从FIFO中取出处理器地址;
c)仲裁处理控制单元完成取地址操作后转入BUSY状态;
d)仲裁处理控制单元不停地扫描ACCESS_DONE[X]信号,等待正在访问的子处理器完成对共享存储器的访问操作。并根据ACCESS_DONE[X]的状态使ACCESS_DONE_FLAG=1,控制仲裁处理控制单元跳出BUSY状态;
e)当仲裁处理控制单元跳转出BUSY状态时,同时判断FIFO的状态,来决定下个状态的跳转方向:当FIFO为空时,仲裁器恢复到IDLE状态;相反FIFO不为空时,仲裁器重新从FIFO中取处理器地址后,再次进入BUSY状态。
f)接口开关转换单元是根据仲裁处理控制单元的状态和输出控制共享数据存储器的接口分别与各子处理器的内部数据存储器的接口的连接。当仲裁处理控制单元处于IDLE和FETCH状态时,接口开关转换单元将共享数据接口设置成高阻态;当仲裁处理控制单元处于BUSY状态时,接口开关转换单元将根据FETCH状态中所取出的子处理器地址
下面分别从中断的定义和中断访问共享数据存储器两个方面SDMI中断设计思路。对SDMI中断硬件定义主要有下面几点:
1.SDMI中断采用下降沿触发方式;
2.程序存储器中有固定中断入口地址(0033H);
3.设置了SDMI控制寄存器(SDMCON),SMCON是一个8位寄存器,只定义了其中3位,可以位操作,复位时为xxxxx000,地址为F8H。其的具体定义如下:
其中:
a)ESM为SDMI中断的允许位,必须与中断总控制开关EA结合使用,只有在EA和ESM同时为逻辑1时才允许相应SDMI中断。
b)SMAPP为SDMI中断的访问标志位。子处理器采样到中断使能信号下降沿后将SMAPP置1;当处理响应该中断后并进入中断服务程序,硬件自动清除SMAPP标志位。
c)SMDONE为SDMI中断的返回标志位。当子处理器探测到中断下降沿时,SMDONE与SMAPP同时置1;但在子处理器进入中断服务程序后,硬件不会对SMDONE标志位自动清零,必须软件对其置0,因此,该标志位必须在SDMI中断服务程序返回前清除,用于通知仲裁器控制释放对共享存储器的访问权。
4.将中断优先级管理寄存器(IP)中bit6位定义成PSM,用于设置共享存储器中断的优先级别。各子处理器中断优先级为:
INT0→T0→INT1→T1→T2→INT0
子处理器中断访问共享数据存储器具体工作流程见图6,其整个处理过程主要由申请访问共享数据存储器和访问共享数据存储器中断处理两个部分组成。其中,访问共享存储器中断处理过程又分为4个阶段:SMDI中断请求,SMDI中断请求,SDMI中断处理,SDMI中断返回。
某一子处理器如需要对共享数据存储器进行操作必须在主程序中设置本地EA和ESM,硬件将根据这两个标志位信号自动产生ACCESS_APPLY[X]访问申请信号给仲裁器,请求仲裁器对本地子处理器开放对共享数据存储器数据、地址和控制通路的选通。仲裁器接收到该申请信号后予以处理,仲裁批准后以下降沿的方式返回一个中断信号给已经批准访问共享数据存储空间的子处理器。获得该中断信号后,子处理器硬件自动将SMAPP和SMDONE标志位置1后,进入SDMI中断服务程序,同时硬件将SMAPP标志位自动清除。其中共享存储器件中断请求和访问共享存储中断处理过程由设计的硬件完成。访问中断服务程序则必须根据要求行编写程序,程序中要注意保护现场和恢复现场,对共享数据存储器的访问只能采用寄存器间接寻址的方式。在服务程序的最后需要软件对SMDONE置0,通知仲裁器释放本地处理器与共享数据存储器之间数据、地址和控制通路连接。访问共享存储器中断返回通过一条RETI中断返回指令,使堆栈中被压入的断点地址送PC,从而返回主程序的断点继续执行主程序。
上述的表1为子处理器地址和优先权列表和表2为单芯片多处理器结构关键信号列表如下:
表1
处理器 | 地址 | 优先级 |
子处理器0 | 00 | 高↑低 |
子处理器1 | 01 | |
子处理器2 | 10 | |
子处理器3 | 11 |
表2
符号 | 说明 | 备注 |
ACCESS_APPLY[X] | 共享存储器访问申请信号 | X:取值范围为0-3,分别对应了P0-P3各个子处理器。 |
EN_ACCESS_N[X] | 共享存储器访问允许/SMDI中断使能信号 | |
ACCESS_DONE[X] | 共享存储器访问完成信号。在SDMI中断服务程序完成前软件清零 | |
SDM ACCESSNTERFACE | 共享存储器访问接口 |
Claims (9)
1.一种单芯片多处理器共享数据存储空间的访问方法,基于MCS-51体系,其特征在于在不占用外部通用I/O口又不改变指令系统的情况下,由多个微控制器来共同完成系统的数据处理、任务控制工作:将各子处理器核内高128字节(80h~FFh)数据空间共享,用于单芯片多处理器之间命令和数据的传输;并在各子处理器中增加了一个共享数据存储器中断SDMI外,把SDMI和仲裁器有效的结合起来,作为共享数据存储器访问机制,用于解决各子处理器之间数据交换中存在的竞争;整个单芯片多处理器对共享数据存储器的访问只是通过一个仲裁器判决,并通过中断的方式实现的;仲裁器遵循先申请先访问的优先级原则;对于同时申请的子处理器总裁器遵循先低地址子处理器先访问,高地址子处理器后访问的原则;各子处理器与仲裁器之间的握手信号采用片内总线方式,其传输速度快、占用资源少便于集成与控制;各子处理器既独立工作,或与其他子处理器协同工作;每个子处理器核实质上都是一个相对简单的单线程微处理器,多个这样子处理器并行地执行程序代码,具有较高的指令级并行性;
其具体步骤为:
1)定义共享数据空间;
2)设置一仲裁器模块,用于4个子处理器与共享数据存储器的控制和连接;
3)在各子处理器增加一个共享数据存储器SDMI中断,用于子处理器对共享存储器的访问;
4)根据SDMI中断的定义,设定控制寄存器(SDMCON),用于定义SDMI控制中断工作状态;
5)各子多处理器于仲裁器件间接口的定义。
2.根据权利要求1所述单芯片多处理器共享数据存储空间的访问方法,其特征在于步骤
1)共享数据存储空间的定义:
将各子处理器核内高128字节数据空间设为共享数据存储空间,这个共享数据空间的数据总线和地址总线采用子处理器核内数据总线和地址总线,其寻址空间为80h~FFh。由于该地址与各子处理器核内特殊功能地址冲突,各子处理器只能采用寄存器间接寻址的方式访问共享数据存储器,采用直接寻址和位寻址的方式读写特殊功能寄存器。
3.根据权利要求1所述单芯片多处理器共享数据存储空间的访问方法,其特征在于步骤2)仲裁器的结构如下:
仲裁器由访问扫描单元、仲裁处理控制单元、接口开关转换单元和一个缓冲区(异步先进先出FIFO)四个部分组成。仲裁器处理过程分成两个过程,它们分别是扫描处理过程和仲裁处理过程。两个处理过程以FIFO为界,往FIFO中存入地址之前的操作为扫描处理过程;从FIFO中取出处理器地址信息之后的操作为仲裁处理过程。扫描处理过程由访问扫描单元独立完成;仲裁器仲裁处理过程是由仲裁处理控制单元和接口转换单元协同完成。
4.根据权利要求3所述单芯片多处理器共享数据存储空间的访问方法,其特征在于仲裁器中扫描处理过程的定义为:
访问扫描单元主要有三个作用:a)采样各子处理器对共享存储器访问的申请信息;b)判断优先权;c)将申请访问的处理器地址存入FIFO;扫描处理过程中,仲裁器遵循两个原则:a)先申请先访问;b)同时申请,低地址子处理器优先级高于高地址子处理器;仲裁器将申请访问共享数据存储器的子处理器地址存入FIFO中。
5.根据权利要求3所述单芯片多处理器共享数据存储空间的访问方法,其特征在于仲裁器中仲裁处理过程的定义为:
仲裁器仲裁处理过程是由仲裁处理控制单元和接口转换单元协同完成,主要负责从FIFO中取出某个子处理器地址,并根据该子处理器地址,返回一个中断使能信号,并将共享数据存储单元访问权交给该子处理器;仲裁处理控制单元实际上是一个有限状态机,用于控制仲裁处理过程中的操作节拍;这个状态机有IDLE,FETCH和BUSY三个状态组成:IDLE状态是一个初始状态,表示当前没有子处理器访问共享数据存储器;FETCH是一个取子处理器地址状态,它主要负责从FIFO中取出子处理器地址信息并加以判断;BUSY是一个忙的状态,它表示某一子处理器正在访问共享数据存储器,结束这个状态需要访问处理器返回一个访问结束信号;接口开关转换单元是根据仲裁处理控制单元的状态和输出控制共享数据存储器的接口分别与各子处理器的内部数据存储器的接口的连接。
6.根据权利要求1所述单芯片多处理器共享数据存储空间的访问方法,其特征在于步骤3)增加一个共享数据存储器SDMI中断为:
SDMI中断采用下降沿触发方式,并在程序存储器中设有固定中断入口地址0033H,当子处理器采样到仲裁器返回的SDMI中断使能信号后,硬件自动形成入口地址,并由此地址进入访问共享数据存储器中断服务程序。共享数据存储器控制寄存器SDMCON用于中断控制;另有中断优先级管理寄存器IP中bit6位PSM用于设置共享存储器中断的优先级别。
7.根据权利要求6所述单芯片多处理器共享数据存储空间的访问方法,其特征在于在SDMI中断中对一个共享数据存储器访问控制寄存器SDMCON的定义:
SMCON为8位寄存器,这里只定义了3位,可以位操作,复位时为xxxxx000,地址为F8H;各位具体定义如下:
ESM:SDMI的中断允许位,必须与中断总控制开关EA结合使用,只有在EA和ESM同时为逻辑1时才允许相应SDMI中断;
SMAPP:SDMI的中断访问标志位。处理器采样到中断使能信号下降沿后将SMAPP置1;当处理响应该中断后并进入中断服务程序,硬件自动清除SMAPP标志位;
SMDONE:SDMI的中断返回标志位;当子处理器探测到中断下降沿时,SMDONE与SMAPP同时置1;但在子处理器进入中断服务程序后,硬件不会对SMDONE标志位自动清零,必须软件对其置0,因此,该标志位必须在SDMI中断服务程序返回前清除,用于通知仲裁器控制释放对共享存储器的访问权。
8.根据权利要求6或7所述单芯片多处理器共享数据存储空间的访问方法,其特征在于通过SDMI中断访问共享数据存储器的步骤的定义为:
某一子处理器如需要对共享数据存储器进行操作必须在主程序中设置本地EA和ESM,硬件将根据这两个标志位信号自动产生ACCESS_APPLY[X]访问申请信号给仲裁器,请求仲裁器对本地子处理器开放对共享数据存储器数据、地址和控制通路的选通;仲裁器接收到该申请信号后予以处理,仲裁批准后以下降沿的方式返回一个中断信号给已经批准访问共享数据存储空间的子处理器;获得该中断信号后,子处理器硬件自动将SMAPP和SMDONE标志位置1后,进入SDMI中断服务程序,同时硬件将
SMAPP标志位自动清除;其中共享存储器件中断请求和访问共享存储中断处理过程由设计的硬件完成;访问中断服务程序则必须根据要求行编写程序,程序中要注意保护现场和恢复现场,对共享数据存储器的访问只能采用寄存器间接寻址的方式。在服务程序的最后需要软件对SMDONE置0,通知仲裁器释放本地处理器与共享数据存储器之间数据、地址和控制通路连接;访问共享存储器中断返回通过一条RETI中断返回指令,使堆栈中被压入的断点地址送PC,从而返回主程序的断点继续执行主程序。
9.根据权利要求1所述单芯片多处理器共享数据存储空间的访问方法,其特征在于子多处理器于仲裁器件间接口的定义为:
ACCESS_APPLY[X]:共享存储器访问申请信号,它是由在各子处理器的EA和ESM被同时设置成逻辑1后产生的一个脉冲;
EN_ACCESS_N[X]:共享数据存储器访问允许信号,它同时也是SDMI中断使能信号;
ACCESS_DONE[X]:处理器放回信号;它连接了SDMCON寄存器中的SMDONE信号;
X:取值范围为0-3,分别对应了P0-P3各子处理器;
SDM ACCESS INTERFACE:共享数据存储器访问接口。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2007100465390A CN101187908A (zh) | 2007-09-27 | 2007-09-27 | 单芯片多处理器共享数据存储空间的访问方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2007100465390A CN101187908A (zh) | 2007-09-27 | 2007-09-27 | 单芯片多处理器共享数据存储空间的访问方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101187908A true CN101187908A (zh) | 2008-05-28 |
Family
ID=39480307
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2007100465390A Pending CN101187908A (zh) | 2007-09-27 | 2007-09-27 | 单芯片多处理器共享数据存储空间的访问方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101187908A (zh) |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101290592B (zh) * | 2008-06-03 | 2010-10-13 | 浙江大学 | 一种mpsoc上多道程序共享spm的实现方法 |
CN102306139A (zh) * | 2011-08-23 | 2012-01-04 | 北京科技大学 | 用于ofdm无线通信系统的异构多核数字信号处理器 |
CN102566973A (zh) * | 2012-02-15 | 2012-07-11 | 上海大学 | 多核异构系统指令存储单元的动态分配方法 |
CN102750256A (zh) * | 2012-06-12 | 2012-10-24 | 福建睿矽微电子科技有限公司 | 一种多处理器共享存储实现技术 |
CN104657327A (zh) * | 2013-11-18 | 2015-05-27 | 恩智浦有限公司 | 用于低功耗应用的共享中断的多核架构 |
CN105741517A (zh) * | 2014-12-10 | 2016-07-06 | 联芯科技有限公司 | 一种射频控制器及对射频控制器的配置方法 |
CN106233270A (zh) * | 2014-04-29 | 2016-12-14 | 华为技术有限公司 | 共享存储器控制器及其使用方法 |
US20170017412A1 (en) | 2015-07-13 | 2017-01-19 | Futurewei Technologies, Inc. | Shared Memory Controller And Method Of Using Same |
CN107301143A (zh) * | 2017-05-08 | 2017-10-27 | 浙江大学 | 一种基于双轨编码四相握手协议的异步仲裁器 |
CN109542830A (zh) * | 2018-11-21 | 2019-03-29 | 北京灵汐科技有限公司 | 一种数据处理系统及数据处理方法 |
CN105653476B (zh) * | 2014-11-12 | 2019-04-05 | 华为技术有限公司 | 一种数据处理器件与内存设备的通信方法及相关装置 |
CN110377548A (zh) * | 2019-06-28 | 2019-10-25 | 苏州浪潮智能科技有限公司 | 一种地址空间复用方法、装置及多路复用器 |
CN110688331A (zh) * | 2018-07-05 | 2020-01-14 | 珠海全志科技股份有限公司 | 一种SoC芯片及读取数据的方法 |
CN112347009A (zh) * | 2020-09-24 | 2021-02-09 | 天津市英贝特航天科技有限公司 | 多个处理器共享硬盘存储的实现装置 |
WO2021035609A1 (zh) * | 2019-08-29 | 2021-03-04 | 深圳市大疆创新科技有限公司 | 一种交互方法、设备、系统及可读存储介质 |
CN113222115A (zh) * | 2021-04-30 | 2021-08-06 | 西安邮电大学 | 面向卷积神经网络的共享缓存阵列 |
CN113312303A (zh) * | 2021-04-30 | 2021-08-27 | 展讯通信(上海)有限公司 | 处理器微架构、SoC芯片及低功耗智能设备 |
CN113722053A (zh) * | 2020-05-25 | 2021-11-30 | 北京希姆计算科技有限公司 | 数据访问控制电路、方法、电子设备及计算机可读存储介质 |
WO2022204897A1 (zh) * | 2021-03-29 | 2022-10-06 | 华为技术有限公司 | 一种闪存访问方法及装置 |
CN116244229A (zh) * | 2023-05-12 | 2023-06-09 | 苏州浪潮智能科技有限公司 | 硬件控制器的访问方法、装置、存储介质和电子设备 |
CN116776781A (zh) * | 2023-08-17 | 2023-09-19 | 浪潮电子信息产业股份有限公司 | 一种寄存器参数的管理方法、系统、设备及存储介质 |
CN116961761A (zh) * | 2023-09-21 | 2023-10-27 | 厦门优迅高速芯片有限公司 | 应用于光纤收发器的硬件仲裁电路及方法 |
-
2007
- 2007-09-27 CN CNA2007100465390A patent/CN101187908A/zh active Pending
Cited By (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101290592B (zh) * | 2008-06-03 | 2010-10-13 | 浙江大学 | 一种mpsoc上多道程序共享spm的实现方法 |
CN102306139A (zh) * | 2011-08-23 | 2012-01-04 | 北京科技大学 | 用于ofdm无线通信系统的异构多核数字信号处理器 |
CN102566973A (zh) * | 2012-02-15 | 2012-07-11 | 上海大学 | 多核异构系统指令存储单元的动态分配方法 |
CN102750256A (zh) * | 2012-06-12 | 2012-10-24 | 福建睿矽微电子科技有限公司 | 一种多处理器共享存储实现技术 |
CN104657327B (zh) * | 2013-11-18 | 2018-10-09 | 恩智浦有限公司 | 用于低功耗应用的共享中断的多核架构 |
CN104657327A (zh) * | 2013-11-18 | 2015-05-27 | 恩智浦有限公司 | 用于低功耗应用的共享中断的多核架构 |
US9996145B2 (en) | 2013-11-18 | 2018-06-12 | Nxp B.V. | Shared interrupt multi-core architecture for low power applications |
CN106233270A (zh) * | 2014-04-29 | 2016-12-14 | 华为技术有限公司 | 共享存储器控制器及其使用方法 |
CN106233270B (zh) * | 2014-04-29 | 2019-03-05 | 华为技术有限公司 | 共享存储器控制器及其使用方法 |
CN105653476B (zh) * | 2014-11-12 | 2019-04-05 | 华为技术有限公司 | 一种数据处理器件与内存设备的通信方法及相关装置 |
CN105741517A (zh) * | 2014-12-10 | 2016-07-06 | 联芯科技有限公司 | 一种射频控制器及对射频控制器的配置方法 |
CN105741517B (zh) * | 2014-12-10 | 2019-03-29 | 联芯科技有限公司 | 一种射频控制器及对射频控制器的配置方法 |
US20170017412A1 (en) | 2015-07-13 | 2017-01-19 | Futurewei Technologies, Inc. | Shared Memory Controller And Method Of Using Same |
US10353747B2 (en) | 2015-07-13 | 2019-07-16 | Futurewei Technologies, Inc. | Shared memory controller and method of using same |
CN107301143A (zh) * | 2017-05-08 | 2017-10-27 | 浙江大学 | 一种基于双轨编码四相握手协议的异步仲裁器 |
CN107301143B (zh) * | 2017-05-08 | 2020-09-04 | 浙江大学 | 一种基于双轨编码四相握手协议的异步仲裁器 |
CN110688331B (zh) * | 2018-07-05 | 2021-08-17 | 珠海全志科技股份有限公司 | 一种SoC芯片及读取数据的方法 |
CN110688331A (zh) * | 2018-07-05 | 2020-01-14 | 珠海全志科技股份有限公司 | 一种SoC芯片及读取数据的方法 |
CN109542830A (zh) * | 2018-11-21 | 2019-03-29 | 北京灵汐科技有限公司 | 一种数据处理系统及数据处理方法 |
CN109542830B (zh) * | 2018-11-21 | 2022-03-01 | 北京灵汐科技有限公司 | 一种数据处理系统及数据处理方法 |
CN110377548A (zh) * | 2019-06-28 | 2019-10-25 | 苏州浪潮智能科技有限公司 | 一种地址空间复用方法、装置及多路复用器 |
WO2021035609A1 (zh) * | 2019-08-29 | 2021-03-04 | 深圳市大疆创新科技有限公司 | 一种交互方法、设备、系统及可读存储介质 |
CN113722053A (zh) * | 2020-05-25 | 2021-11-30 | 北京希姆计算科技有限公司 | 数据访问控制电路、方法、电子设备及计算机可读存储介质 |
CN112347009A (zh) * | 2020-09-24 | 2021-02-09 | 天津市英贝特航天科技有限公司 | 多个处理器共享硬盘存储的实现装置 |
WO2022204897A1 (zh) * | 2021-03-29 | 2022-10-06 | 华为技术有限公司 | 一种闪存访问方法及装置 |
CN113312303B (zh) * | 2021-04-30 | 2022-10-21 | 展讯通信(上海)有限公司 | 处理器微架构系统、SoC芯片及低功耗智能设备 |
CN113312303A (zh) * | 2021-04-30 | 2021-08-27 | 展讯通信(上海)有限公司 | 处理器微架构、SoC芯片及低功耗智能设备 |
CN113222115A (zh) * | 2021-04-30 | 2021-08-06 | 西安邮电大学 | 面向卷积神经网络的共享缓存阵列 |
CN113222115B (zh) * | 2021-04-30 | 2024-03-01 | 西安邮电大学 | 面向卷积神经网络的共享缓存阵列 |
CN116244229A (zh) * | 2023-05-12 | 2023-06-09 | 苏州浪潮智能科技有限公司 | 硬件控制器的访问方法、装置、存储介质和电子设备 |
CN116244229B (zh) * | 2023-05-12 | 2023-08-04 | 苏州浪潮智能科技有限公司 | 硬件控制器的访问方法、装置、存储介质和电子设备 |
CN116776781A (zh) * | 2023-08-17 | 2023-09-19 | 浪潮电子信息产业股份有限公司 | 一种寄存器参数的管理方法、系统、设备及存储介质 |
CN116776781B (zh) * | 2023-08-17 | 2023-11-07 | 浪潮电子信息产业股份有限公司 | 一种寄存器参数的管理方法、系统、设备及存储介质 |
CN116961761A (zh) * | 2023-09-21 | 2023-10-27 | 厦门优迅高速芯片有限公司 | 应用于光纤收发器的硬件仲裁电路及方法 |
CN116961761B (zh) * | 2023-09-21 | 2024-01-23 | 厦门优迅高速芯片有限公司 | 应用于光纤收发器的硬件仲裁电路及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101187908A (zh) | 单芯片多处理器共享数据存储空间的访问方法 | |
CN102163072B (zh) | 用于节能的基于软件的线程重映射 | |
US7316021B2 (en) | Switching method in a multi-threaded processor | |
US6542991B1 (en) | Multiple-thread processor with single-thread interface shared among threads | |
US6341347B1 (en) | Thread switch logic in a multiple-thread processor | |
US6351808B1 (en) | Vertically and horizontally threaded processor with multidimensional storage for storing thread data | |
EP2179350B1 (en) | Compound instructions in a multi-threaded processor | |
US6938147B1 (en) | Processor with multiple-thread, vertically-threaded pipeline | |
CN103020002B (zh) | 可重构多处理器系统 | |
US20070271556A1 (en) | Building a wavecache | |
CN103246542B (zh) | 智能缓存及智能终端 | |
Sassone et al. | Matrix scheduler reloaded | |
Li et al. | Architecture and analysis of a dynamically-scheduled real-time memory controller | |
Zhang et al. | Fuse: Fusing stt-mram into gpus to alleviate off-chip memory access overheads | |
US20080022052A1 (en) | Bus Coupled Multiprocessor | |
Leibson et al. | Configurable processors: a new era in chip design | |
Shang et al. | LACS: A high-computational-efficiency accelerator for CNNs | |
US20030014612A1 (en) | Multi-threaded processor by multiple-bit flip-flop global substitution | |
Ungethüm et al. | Overview on hardware optimizations for database engines | |
Ributzka et al. | The elephant and the mice: the role of non-strict fine-grain synchronization for modern many-core architectures | |
Chou et al. | No cache-coherence: a single-cycle ring interconnection for multi-core L1-NUCA sharing on 3D chips | |
Gupta | Design Decisions for Tiled Architecture Memory Systems | |
Sethumadhavan | Scalable hardware memory disambiguation | |
Hammond | Hydra: a chip multiprocessor with support for speculative thread-level parallelization | |
Garside | Processors |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20080528 |