一种分布式多主CPU共享总线的方法及其装置
技术领域
本发明涉及计算机、微处理器领域,具体涉及一种分布式多主CPU共享总线的方法及其装置。
背景技术
随着计算机应用技术的不断发展处理器的计算能力和计算速度都有很大的提高,当CPU处理任务较复杂时往往采用多CPU分布式处理模式。目前多CPU对等式分布处理模式往往采用外部串行总线通讯方式,如目前普遍使用的网络通讯技术、CAN总线通讯技术等。而一个计算机内部总线实现多CPU的数据通讯往往采用主从方式数据通讯,即一个主CPU通过总线与多个从CPU进行数据交换。
本发明通过总线仲裁技术实现CPU外部总线多主CPU的共享与通讯。实现分布式多处理器对等的总线结构,各处理器通过总线仲裁技术共享系统资源及与其它处理器通讯。
发明内容
本发明的目的是提出一种分布式多主CPU共享总线,其对传统主从式多CPU分布式技术方案的改进,在总线上增加了总线仲裁控制线,实现了挂在总线上的任何一个CPU可以通过总线仲裁机制请求总线、占用总线、释放总线。
本发明的技术方案为:
一种分布式多主CPU共享总线装置,挂在总线上的任何一个处理器CPU都通过总线仲裁获得总线的控制权,从而与其它处理器或外部设备进行数据通讯,在一条双向的总线上挂接n个处理器,其中n为自然数,每个处理器都有两个工作状态:主状态和从状态;每个处理器还与所述的一条双向的总线相连接;每个在从状态下的处理器中,总线的状态为输入状态,每个在主状态下的处理器中,总线的状态为输出状态;在任何时刻只有其中的一个处理器工作在主状态,其它处理器工作在从状态,每个处理器还具有三根总线仲裁控制线,分别是总线仲裁输入线、总线仲裁输出线和总线请求状态线;
所述三根总线仲裁控制线的控制原理为:
(1)每个处理器之间通过总线仲裁输出线和总线仲裁输入线以链型结构连接起来;第一个处理器的总线仲裁输入线被连接为允许状态,其总线占用优先级最高,其总线仲裁输出线连接下一个处理器的总线仲裁输入线,依此类推,最后一个处理器的总线占用优先级最低,其总线仲裁输入线连接其上一个处理器的总线仲裁输出线,其总线仲裁输出线悬空;
(2)任何一个处理器,当它的总线仲裁输入线为禁止状态时,它的总线仲裁输出线也相应的驱动为禁止状态,这样将屏蔽本处理器及其下游的所有处理器占用总线的请求;
(3)任何一个处理器,当它的总线仲裁输入线为允许状态时,如果本处理器没有占用总线,其总线仲裁输出线也为允许状态,即开放下游处理器的总线请求;当本处理器请求总线并得到总线控制权时,将总线仲裁输出线设为禁止状态,即禁止下游处理器占用总线;
(4)占用总线条件:任何一个处理器,获得总线控制权的条件为:a、总线仲裁输入线为允许状态;b、总线请求状态线为空闲状态;
(5)占用总线过程:任何一个处理器,在具备获得总线控制权条件的前提下,希望获得总线控制权,首先将总线请求状态线设置为忙,并将总线仲裁输出线设置为禁止状态,即禁止下游处理器请求占用总线,在总线仲裁输入线处于允许的情况下开始占用总线,进行数据传送,直到数据传送完成,释放总线;
(6)释放总线,当处理器完成数据通讯过程之后,将总线释放出去,释放的过程为:首先将总线请求状态线设置为空闲状态,其次设置总线仲裁输出线的状态与总线仲裁输入线的状态一致。
还具有冲突仲裁步骤:
当总线中有多个处理器同时请求总线控制权时,将进行总线仲裁,仲裁过程如下:当两个或多个处理器都具备占用总线的条件且同时申请占用总线时,它们将同时将总线请求状态线设置为忙状态,并同时将总线仲裁输出线设置为禁止状态,此时上游处理器的总线仲裁输出线将屏蔽掉下游处理器的总线占用请求,上游处理器得到总线控制权,下游处理器等待上游处理器完成数据传送后释放总线后重新进行总线仲裁来获得控制权。
其中,所述总线包括:数据线、地址线、控制线和时钟线,数据线是8/16/32/64位任何宽度的总线,地址线根据系统规模寻址空间、寻址方式选择总线宽度,控制线包括数据读线和数据写线。
其中,当处理器占用总线时,其地址线、控制线为输出状态,当数据读线有效时,数据线为输入状态;当数据写线有效时,数据线为输出状态;
当处理器不占用总线时,其地址线、控制线为输入状态,当数据读线有效,且地址线译码被选中时数据线为输出状态;当数据写线有效,且地址线译码被选中时,数据线为输入状态。
依据本发明一种分布式多主CPU共享总线的发明与主从式方案相比,具有一下优点:
1、挂在总线上的任何一个CPU均可通过总线仲裁获得总线的控制权,与其它处理器或外部设备进行通讯,可大大提高总线的利用率;
2、总线上的CPU数量不受限制;
3、CPU的处理任务可以平衡分配,不受主从CPU地位的限制;
4、传统的主从方式需要通过双口RAM进行数据通讯,一个数据的传送需要一个处理器写入、另一个处理器读出两个数据通讯步骤,增加了CPU的开销,多主方式可实现数据传送的一步完成,减少了CPU的数据传送开销。
附图说明
为了使本发明的内容被更清楚的理解,并便于具体实施方式的描述,下面给出与本发明相关的附图说明如下:
图1是依据本发明的一种分布式多主CPU共享总线结构示意图;
图2是依据本发明的总线仲裁逻辑流程框图。
图3是依据本发明的总线释放逻辑流程框图。
具体实施方式
参见图1是依据本发明的分布式多主CPU共享总线装置结构框图,总线上挂接了n个处理器模块,每个处理器都有两个工作状态,即主状态和从状态。每个处理器有一个双向的总线,在从状态下,总线为输入。在主状态下,总线为输出。在任何时刻只有一个处理器工作在主状态,其它处理器工作在从状态。每个处理器有三根总线仲裁控制线,分别是总线仲裁输入线、总线仲裁输出线,总线请求状态线。
参见图2是依据本发明的总线仲裁逻辑流程框图,图3是依据本发明的总线释放逻辑流程框图。
三根总线仲裁线的控制原理如下:
允许总线上挂接多个处理器,各处理器之间通过总线仲裁输出线、总线仲裁输入线以链型结构连接起来。第一个处理器的总线仲裁输入线被连接为允许状态,其总线请求优先级最高,其总线仲裁输出线接下一个处理器的总线仲裁输入线,依此类推。最后一个处理器的总线占用优先级最低,其总线仲裁输入线接其上一个处理器的总线仲裁输出线,其总线仲裁输出线悬空。
任何一个处理器,当它的总线仲裁输入线为禁止时它的总线仲裁输出线也相应的驱动为禁止,这样将屏蔽本控制器及其下游的所有控制器占用总线的请求;
任何一个处理器,当它的总线仲裁输入线为允许时,如果本处理器没有占用总线,其总线仲裁输出线也为允许,即开放下游处理器的总线请求;当本处理器请求总线并得到总线控制权时,将总线仲裁输出线设为禁止,即禁止下游处理器占用总线。
占用总线条件:任何一个处理器,获得总线控制权的条件为:a、总线仲裁输入线为允许;b、总线请求状态线为空闲。
占用总线过程:任何一个处理器,在具备获得总线控制权条件的前提下,希望获得总线控制权,首先将总线请求状态线设置为忙,并将总线仲裁输出线设置为禁止,即禁止下游处理器请求占用总线,在总线仲裁输入线处于允许的情况下开始占用总线,进行数据传送,直到数据传送完成,释放总线。
释放总线,当处理器完成数据通讯过程之后,将总线释放出去。释放过程:首先将总线请求状态线设置为闲,其次设置总线仲裁输出线的状态与总线仲裁输入线的状态一致。
冲突仲裁,当总线中有多个处理器同时请求总线控制权时,将进行总线仲裁,仲裁过程如下:当两个或多个处理器都具备占用总线的条件且同时申请占用总线时,他们将同时将总线请求状态线设置为忙,并同时将总线仲裁输出线设置为禁止,此时上游处理器的总线仲裁输出线将屏蔽掉下游处理器的总线占用请求。上游处理器得到总线控制权,而下游处理器必须等待上游处理器完成数据传送后释放总线后重新进行总线仲裁来获得控制权。
总线:总线包括数据线、地址线、控制线、时钟线等。数据线可以是8/16/32/64位任何宽度的总线。地址线可以根据系统规模寻址空间、寻址方式选择总线宽度。控制线包括数据读、数据写线。
当处理器占用总线时其地址线、控制线为输出的。当数据读线有效时数据输入,当数据写线有效时数据线为输出。
当处理器不占用总线时地址线、控制线为输入。当数据读线有效,且地址线译码被选中时数据线为输出;当数据写线有效,且地址线译码被选中时,数据线为输入。
上面通过特别的实施例内容描述了本发明,但是本领域技术人员还可意识到变型和可选的实施例的多种可能性,例如,通过组合和/或改变单个实施例的特征。因此,可以理解的是这些变型和可选的实施例将被认为是包括在本发明中,本发明的范围仅仅被附上的专利权利要求书及其同等物限制。