硬件加速显示的并行处理结构及并行处理方法

文档序号:6555966阅读:159来源:国知局
专利名称:硬件加速显示的并行处理结构及并行处理方法
技术领域
本发明涉及显示数据的处理,尤其涉及在传输带宽窄、需要显示数据信息量大、显示平台处理能力有限等条件下通过一定的地址映射方法将显示数据从屏幕坐标映射到显存物理坐标的硬件加速显示的并行处理装置。
背景技术
嵌入式显示平台的设计一直是医用监护仪、消费类电子产品的核心功能部件,也是产品选型设计的主要难点之一,其主要功能是通过与按键等信息输入设备组合形成一个人机交互式系统,通过这个交互式的信息完成系统实时的显示。特别对于监护仪来说需要显示的数据量是及其丰富的,这主要包括人体的ECG(心电)、SPO2(血氧饱和度)、NIBP(无创血压)等生理信号以及经过计算处理后的生理参数数值和波形等信息,而鉴于信息数据较多,因而监护仪支持的分辨率都很高(一般在640×480以上),对显存的操作是比较频繁的,而多屏操作显示技术对整个系统的要求将更高,如何解决显示信息数据的传输瓶颈问题一直是这一类嵌入式显示平台需要解决的技术要点。
通常解决这种问题的方法主要有以下几种一、通过采用高性能处理器,提高系统主频及系统总线频率,这种单纯的靠提高系统的处理器频率的方法实际上带来了新的问题,系统设计、生产的成本将会呈几何级数增长。这是因为在显示信息增加的情况下将不得不对处理器进行升级换代,处理器性能的提高并不简单的等同处理器主频的提升,随着系统主频的提高,相应的整个板卡的工作频率会随之升高,而总线频率的提高将意味着一些我们在低频端不需要考虑的传输线问题(例如阻抗匹配,串扰等问题)将不得不成为设计者需要重点考虑的问题,更重要的是对于医用设备和消费类电子设备的EMI(电磁兼容)问题成为系统设计最为棘手的问题,导致处理器在系统设计和生产阶段的成本很高。
二、采用高性能的数据总线结构(如PCI-Express等),随着显示器分辨率的不断提高,系统对总线的数据传输性能的需求也不断提高,但对于医用监护仪以及低端嵌入式处理设备而言采用这种高性能总线将会由于系统成本的限制而成为一种奢求,所以采用高性能总线(如PCI-Express)并不能较好的处理系统成本与显示信息量之间的矛盾。
三、选用通用显示驱动芯片。这种通用显示驱动芯片可以替代一部分处理器需要完成的功能,完成相关的读写显存的工作。这种芯片的产量通常并不像通用处理器产量较大,因而单片成本较高,而且这种显示芯片通常不是为系统量身订作的,因而系统效率较低,实际上并不能很好的解决显示瓶颈问题。
四、通过FPGA(现场可编程门阵列)或ASIC实现显示命令的写显存操作,这种方法代替了处理器的部分工作,提高了硬件显示的工作效率,同时由于可编程器件的灵活性和可在线更改特性使其更易于实现和升级,对市场需求的反应更灵敏,实际上大大降低了设计的风险性。这种技术的实质是显存映射技术,即将固定图形的坐标映射至显存的物理地址上。但现有的FPGA或ASIC实现硬件加速的处理是基于复杂的状态机实现方法。这种方法的缺陷是状态机数目的增加将严重影响系统的工作速度,同时由于状态机的触发条件较多,对于开发维护的成本将大大增加。硬件加速的FPGA(或ASIC)处理方法如图1所示,命令预处理模块完成输入显示命令的分类,显示硬件加速模块(即硬件加速逻辑或硬件加速原语)将显示数据通过一定的地址映射方法完成从屏幕坐标至显存物理坐标的快速转换工作,而写显存及后端预处理模块则通过一定的接口时序完成视频显示操作。但从视频显示的原理上看对硬件加速的过程进行串行处理是有一定道理的,即并行处理的模块间由于模块间处理速度上或处理时间上的差异将使得写入显存的数据存在覆盖问题,但串行处理硬件加速命令的方法将使得预处理的状态机异常庞大,众所周知,状态机的速度与其采用的编码和数目有关,但一般情况下当状态机的数目在20个以上时靠编码来提升系统的速度已经是强弩之末了,提高速度的唯一方法是分割状态机,即采用并行命令加速结构。但显示参数或显示窗口的不同,硬件加速逻辑也不同,硬件加速模块也不同,随着显示参数或显示窗口的增加,也会使得并行硬件加速模块的规模不断扩大,如何开发一种便于扩展的并行命令处理结构成为需要解决的问题。

发明内容本发明就是为了解决上述问题,提供一种硬件加速显示的并行处理结构,解决基于FPGA(或ASIC设计)的硬件显示处理平台的信息传输瓶颈和硬件加速速度之间的矛盾问题。
为实现上述目的,本发明提出了一种硬件加速显示的并行处理结构,包括先入先出存储器和互斥处理机,所述先入先出存储器为“Show Ahead”先入先出存储器,所述先入先出存储器与硬件加速模块通过总线连接,所述互斥处理机的第一应答信号输出端与先入先出存储器相连,所述互斥处理机的控制信号输出端分别与各个硬件加速模块相连,所述各个硬件加速模块的命令输出端用于耦合到写显存模块;所述先入先出存储器接收显示命令、将首个显示命令预先输出到总线上,所述硬件加速模块从总线上读取显示命令并在判断该显示命令是本硬件加速模块处理的命令、并在响应到互斥处理机输出的、用于允许显示命令执行的控制信号后,根据该显示命令完成从屏幕坐标到显存的物理坐标的转换,之后互斥处理机输出的第一应答信号至先入先出存储器,先入先出存储器在下一时钟周期内将下一个显示命令输出到总线上。
所述互斥处理机的优选方案为包括第一或逻辑组和或逻辑门,所述第一或逻辑组的输入端分别与各个硬件加速模块的第二应答信号输出端连接,响应各个硬件加速模块在完成显示命令后输出的第二应答信号,输出第一应答信号,用于控制先入先出存储器将下一个显示命令输出到总线上;所述或逻辑门的输入端分别响应先入先出存储器的空信号和第一应答信号,输出允许显示命令执行的控制信号。
本发明的进一步改进是还包括第二或逻辑组,所述第二或逻辑组的输入端分别连接各个硬件加速模块的命令输出端,其输出端用于耦合到写显存模块。
所述第一应答信号和第二应答信号优选为单时钟周期的脉冲信号。
为实现上述目的,本发明还提出了一种硬件加速显示的并行处理方法,包括以下步骤A1、“Show Ahead”先入先出存储器接收显示命令并将首个显示命令预先输出到总线上;B1、硬件加速模块从总线上读取显示命令,判断该显示命令是否是本硬件加速模块处理的命令,如果是则执行步骤C1;C1、硬件加速模块在响应到互斥处理机输出的用于允许显示命令执行的控制信号后根据该显示命令完成从屏幕坐标到显存的物理坐标的转换;D1、在步骤C1后,互斥处理机输出第一应答信号,控制“Show Ahead”先入先出存储器将下一个显示命令输出到总线上;E1、循环步骤B1至D1。
所述先入先出存储器优选为“show ahead”先入先出存储器,所述步骤B1中根据显示命令的命令码来识别是否是本硬件加速模块处理的命令。
其中,在步骤C1中,该硬件加速模块在完成该显示命令从屏幕坐标到显存的物理坐标的转换后还输出第二应答信号至互斥处理机。
所述第一应答信号优选为所有第二应答信号进行或逻辑运算的结果;所述互斥处理机输出的控制信号优选为先入先出存储器输出的空信号和第一应答信号相或后的结果。
本发明的有益效果是先入先出存储器接收到显示命令后先将一个显示命令输出到总线上,而下一个显示命令数据是否输出则将由互斥处理机根据各个硬件加速模块的情况来控制。这样,总线上的显示命令数据对于各个硬件加速模块来说是透明的,各个硬件加速模块不用输出任何信号即可以从总线上取到数据,之后各个硬件加速模块将根据收到的命令码识别是否为本模块处理的命令,如果发现是自己模块处理的命令,在收到互斥处理机发出的允许命令执行的信号后,硬件加速逻辑将快速完成命令,即通过一定的地址映射方法完成将显示数据从屏幕坐标至显存物理坐标的快速转换,并进入下一个总线执行周期,同时反馈应答信号至互斥处理机,由互斥处理机控制释放命令总线,使下一个待执行的命令进入总线,开始下一轮的处理。从而通过互斥处理实现硬件加速模块的并行处理,同一时间只有一条显示命令被执行,避免了并行处理的硬件加速模块间由于模块间处理速度上或处理时间上的差异将使得写入显存的数据存在覆盖问题。并且不论硬件加速模块的数量有多少、规模有多大、类型是什么,本发明的处理结构中对硬件加速模块进行互斥处理部分的状态机不会增加和改变。所以本发明不但解决了硬件显示处理平台的信息传输瓶颈和硬件加速速度之间的矛盾问题,而且便于改变硬件加速模块的数量和种类,利于扩大硬件逻辑规模,以实现更为复杂的硬件逻辑。所以本发明这种并行硬件命令处理结构对于开发者来说也可以方便的变更各自的硬件加速模块而互不影响相互之间的时序和逻辑关系,易于开发、维护和更新。
本发明的特征及优点将通过实施例结合附图进行详细说明。

图1为通过FPGA实现的硬件加速处理的电路方框图;图2为现有技术中硬件加速并行处理的电路方框图;图3为本发明一种实施例的电路方框图;图4为本发明一种实施例中的互斥处理机的电路连接图5为没有互斥处理机时的时序图;图6为本发明另一种实施例的电路方框图。
具体实施方式硬件加速模块通常通过硬件加速原语实现,下面从硬件加速模块的数学模型来分析本发明的原理硬件加速模块(即硬件加速原语,是一种通过一定的地址映射方法完成从屏幕坐标至显存物理坐标的快速转换的硬件显存映射技术)的串行处理可以用一维线性空间上的函数来描述,各个命令可以用C(xi,t)来表达,其中i为各个命令的序号,如在显示命令的处理结构上总共存在6个显示命令,则它们可以表述为C(x1,t),C(x2,t),...,C(x5,t),C(x6,t)等。可见在时间t相同时各个命令处于轴的不同位置,因而显示命令之间并不会产生冲突现象,这也就从实际的数学层面和物理层面都避免了显示由于时域处理时间相同时出现命令冲突而产生不可预期的显示覆盖问题。
而对于硬件加速模块的并行处理来讲我们就必须寻找更合适的数学模型。并行处理的显示命令可以采用C(Xi,t)来表达,这里Xi是一个n维空间的向量,其中n代表命令个数,例如个数为6的并行处理结构,则各个向量表示为C(X1,t),C(X2,t),..,C(X5,t),C(X6,t),这里Xi为6维空间的矢量。设n维向量空间的原点为O,则两条硬件加速原语之间出现冲突现象(上述的覆盖问题)可以理解为任意两个n维空间的向量之间除原点外存在另外一个交点,这显然比在一维空间上那种自然的、相对独立的互斥变量要复杂得多。然而,通过上述定义我们可以发现实际上不可能存在任意两个n维向量均正交(即向量间相互互斥或各个向量之间除原点外存在另外一个交点)的情况,解决上述问题的方法只能是,允许相互正交的变量进入硬件加速处理单元,而非正交的变量只有一种进入硬件加速处理单元。那么如何确立这种正交算法呢?这种正交算法(或命令互斥机制可以从两个层面上确定,即在硬件加速模块的前端或后端加入)。如图2所示,我们可以在硬件加速模块的前端加入这种命令互斥机制,然而不幸的是由数学原理得出n维线性空间的正交算法的复杂度至少为O(n2),随着并行处理的硬件加速模块的增加,用于硬件命令互斥机制的逻辑将逐步超过硬件加速的逻辑数量,这种算法带来的是硬件算法的庞大,使得FPGA的现有资源不堪重负,更可怕的是当算法复杂度增加至一定程度时,整个系统的瓶颈将出现在命令互斥制上,原有的硬件加速算法带来的速度上的增益将不得不为此付出一定的衰减的代价,即这种方法并不能很好的完成硬件加速的任务;另外一种命令机制是一种自然而然的想法,相交即意味着两个点的坐标完全一致,而确定这种两点相交可以在硬件加速模块的后端通过加入坐标判断机制即可,而对于n个n维坐标向量的来说处理的算法复杂度同样为O(n2),这种方法虽然在硬件加速模块增加时算法的改变不大,但硬件开销依然十分庞大,对于FPGA的资源利用率是不合时宜的。
这里我们针对硬件加速原语的数学表示作如下改变,任意一个命令可以表示为C(Xi,a,t),这里变量a为命令互斥机制引入的新变量,变量在同一时间内只针对一条命令有效,这样通过简单的引入互斥变量a可以有效的避免庞大的命令互斥机制的硬件开销和处理,这种方法可以用于命令处理比较简单,待执行的硬件加速原语处理命令之间均为互斥的情况;进而我们还可以把这种方法引申为任意一个命令可以表示为C(Xi,A,t),其中A为m维向量,这里引入这个数学模型对于我们提出硬件加速并行处理结构是具有重要意义的,我们可以这样理解A向量,即A向量引入了对命令的硬件命令的m类分类,分类的标准是在每一类命令中相互之间是可以并行执行而不存在互斥机制的问题。这样通过向量A我们解决了烦杂的命令互斥处理机制问题,下面将针对以上提出的方法在硬件逻辑中进行详述。
具体实施一、如图3所示,首先显示命令的“Show Ahead”先入先出存储器1(即“Show Ahead”FIFO,也可以是“Show Ahead”先入先出堆栈),中间则为进行具体显示命令处理的硬件加速模块2(也称为硬件加速原语)和互斥处理机3,“Show Ahead”先入先出存储器1通过总线4与硬件加速模块2相连,互斥处理机3用来控制硬件加速模块2的并行处理,最后硬件加速模块2将命令输出给写显存模块(图中未示出)。这种“ShowAhead”FIFO数据的输出控制并不是由FIFO输出端的命令接收控制器来完成,数据将提前输出到系统总线上,而下一个数据是否输出则将由各个硬件加速模块2控制。“show ahead”FIFO接收到显示命令后,将首个显示命令预先输出到总线上,这样显示命令对于各个硬件加速模块2来说是透明的,这样各个硬件加速模块2不用输出任何信号即可以从总线上取到数据,各个硬件加速模块2在收到互斥处理机发出的允许显示命令执行的控制信号后,从总线上读取显示命令,之后各个硬件加速模块将根据收到的命令码识别是否为本模块处理的命令,如果发现是自己模块处理的命令,即快速完成命令,即根据该显示命令完成从屏幕坐标到显存的物理坐标的转换,并进入下一个总线执行周期,互斥处理机输出第一应答信号至先入先出存储器1,控制先入先出存储器1释放下一个待执行的命令进入总线,开始下一轮的命令执行。
互斥处理机3包括第一或逻辑组31和或逻辑门32,如图4所示。硬件加速模块的第二应答信号输出端与互斥处理机的第一或逻辑组31相连,第一或逻辑组31的输出端与FIFO相连。或逻辑门32的输入端连接FIFO的空信号端和第一或逻辑组31的输出端。硬件加速模块在完成显示命令后,输出第二应答信号(即ACKn),设第一个硬件加速模块(例如图3中的硬件加速原语A)输出为ACK1,第二个硬件加速模块(例如图3中的硬件加速原语B)输出为ACK2,依次类推,且每个第二应答信号都为单脉冲信号,而各个硬件加速模块是通过判断是否为本模块处理的命令后,决定是否执行和输出第二应答信号信号的,因而只要有一个硬件加速模块的第二应答信号信号有效,则它们经过第一或逻辑组31或运算以后输出第一应答信号ACK将输出有效,该第一应答信号ACK输出给前端的FIFO,则下一条命令会出现在命令总线上,第一应答信号ACK优选为单脉冲信号。FIFO的空信号Empty和第一应答信号ACK一起输出到或逻辑门32,经过或运算后分别输出给各个硬件加速模块作为判断FIFO是否非空的标志,设输出到第一个硬件加速模块的为empty1,输出到第二个硬件加速模块的为empty2。由于各个硬件加速模块总是在命令处理即将完成时输出第二应答信号信号,而FIFO收到第一应答信号ACK后将发生状态转换(即可能由非空状态变换到空状态),这种情况下前一个周期对FIFO空信号的判断将是不可靠的,而如果将第一应答信号ACK与空信号Empty相或后输出给各个硬件加速模块,作为它们的Empty指示信号,这将避免在状态转换的前后两个周期进入误判状态。如图5所示,State1,State2表示第一、二个硬件加速模块的内部状态机,Ack1、Ack2分别为第一、二个硬件加速模块的输出信号。硬件加速模块在EXE状态下会进入执行操作,在ACK状态下会给出Ack信号以使FIFO输出有效数据。由于不同硬件加速模块之间是相互独立的,而进入执行操作状态,执行的状态数取决于输入数据,如图给出了一个示例信号状态。在State1处于ACK状态时State2处于IDLE状态,由于Ack1已送出,因而FIFO实际已空,这时在IDLE态的State2将会作出误判,使第二个硬件加速模块可能与第一个硬件加速模块并行执行,并因FIFO实际已空而导致第二个硬件加速模块执行错误命令。实际上造成这种现象的原因正是采用了Show Ahead形式的FIFO,因而本实施例提出了一种辅助的互斥处理机,其结构如图4所示,其简单的原理即是将Ack信号与Emtpy信号相或作为各个硬件加速模块判断FIFO是否为空的标志,这就从根本上保证了各个命令的互斥处理。
互斥处理机是这种并行硬件加速模块处理结构的关键所在,它采用简单的逻辑处理方法与各个硬件加速模块相配合,解决了命令互斥处理方法需要解决的根本问题,避免了并行处理结构中庞大冗余的互斥机制而引起的系统的处理速度难以提升的难题。此外,简单的互斥处理结构对于开发维护也十分方便,当模块较多,或逻辑时庞大可以在逻辑插入一些流水操作,提供系统的工作频率,而对于输出给各个硬件加速模块的Empty信号可能在各个模块内部形成高扇出信号,对于这种情况可以在各个硬件加速模块内部对这些高扇出的信号进行逻辑复制而不影响其他模块。
具体实施二、由于各个硬件加速模块之间是互斥执行的,因而有必要对各个硬件加速模块输出进行一下处理,以节省系统资源的消耗(主要是系统总线的消耗)。并行执行后的数据总线如不进行必要的去冗余处理,系统的总线将异常庞大,这将给后端的处理模块带来不必要的负担。但这里需要注意的是FPGA(或ASIC)内部总线实际上是不会出现三态信号的,这样以一条总线来完成各个硬件加速模块间的互连似乎并不现实。所以在具体实施一的基础上增加第二或逻辑组5,如图6所示,第二或逻辑组5的输入端分别连接各个硬件加速模块2的命令输出端,其输出端用于耦合到写显存模块(图中未示出)。将无效命令(即硬件加速模块没有进行命令处理时输出的命令)对总线的输出设置成全‘0’向量,这样在无效状态下各个硬件加速模块可以将各自的总线输出置成‘0’向量,从而整个并行处理结构的输出可以用一个或逻辑组来完成各个模块间输出的互连。由于‘0’向量对或逻辑的输出并不会产生影响,只有有效的数据‘1’输出时才会形成输出数据,因而这种互连策略在FPGA内部是低成本、高效的。
综上所述,本发明通过对并行处理结构的简化处理,高效地解决了大容量显示数据显示的传输瓶颈问题,同时在硬件成本和可维护、可开发特性上具有其他方法无法比拟的优势。
权利要求
1.一种硬件加速显示的并行处理结构,包括至少两个硬件加速模块,其特征在于包括先入先出存储器和互斥处理机,所述先入先出存储器为“ShowAhead”先入先出存储器,所述先入先出存储器与硬件加速模块通过总线连接,所述互斥处理机的第一应答信号输出端与先入先出存储器相连,所述互斥处理机的控制信号输出端分别与各个硬件加速模块相连,所述各个硬件加速模块的命令输出端用于耦合到写显存模块;所述先入先出存储器接收显示命令、将首个显示命令预先输出到总线上,所述硬件加速模块从总线上读取显示命令并在判断该显示命令是本硬件加速模块处理的命令、并在响应到互斥处理机输出的、用于允许显示命令执行的控制信号后,根据该显示命令完成从屏幕坐标到显存的物理坐标的转换,之后互斥处理机输出的第一应答信号至先入先出存储器,先入先出存储器在下一时钟周期内将下一个显示命令输出到总线上。
2.如权利要求1所述的硬件加速显示的并行处理结构,其特征在于所述互斥处理机包括第一或逻辑组和或逻辑门,所述第一或逻辑组的输入端分别与各个硬件加速模块的第二应答信号输出端连接,响应各个硬件加速模块在完成显示命令后输出的第二应答信号,并输出第一应答信号,用于控制先入先出存储器将下一个显示命令输出到总线上;所述或逻辑门的输入端分别响应先入先出存储器的空信号和第一应答信号,输出允许显示命令执行的控制信号。
3.如权利要求1或2所述的硬件加速显示的并行处理结构,其特征在于还包括第二或逻辑组,所述第二或逻辑组的输入端分别连接各个硬件加速模块的命令输出端,其输出端用于耦合到写显存模块。
4.如权利要求1或2所述的硬件加速显示的并行处理结构,其特征在于所述第一应答信号和第二应答信号为单时钟周期的脉冲信号。
5.一种硬件加速显示的并行处理方法,其特征在于包括以下步骤A1、“Show Ahead”先入先出存储器接收显示命令并将首个显示命令预先输出到总线上;B1、硬件加速模块从总线上读取显示命令,判断该显示命令是否是本硬件加速模块处理的命令,如果是则执行步骤C1;C1、硬件加速模块在响应到互斥处理机输出的用于允许显示命令执行的控制信号后根据该显示命令完成从屏幕坐标到显存的物理坐标的转换;D1、在步骤C1后,互斥处理机输出第一应答信号,控制“Show Ahead”先入先出存储器将下一个显示命令输出到总线上;E1、循环步骤B1至D1。
6.如权利要求6所述的硬件加速显示的并行处理方法,其特征在于所述步骤B1中根据显示命令的命令码来识别是否是本硬件加速模块处理的命令。
7.如权利要求5或6所述的硬件加速显示的并行处理方法,其特征在于在步骤C1中,该硬件加速模块在完成该显示命令从屏幕坐标到显存的物理坐标的转换后还输出第二应答信号至互斥处理机。
8.如权利要求7所述的硬件加速显示的并行处理方法,其特征在于所述第一应答信号为所有第二应答信号进行或逻辑运算的结果;所述互斥处理机输出的控制信号为“Show Ahead”先入先出存储器输出的空信号和第一应答信号相或后的结果。
9.如权利要求8所述的硬件加速显示的并行处理方法,其特征在于将所述第一应答信号和第二应答信号设置为单时钟周期的脉冲信号。
全文摘要
本发明公开了一种硬件加速显示的并行处理结构及处理方法,包括至少两个硬件加速模块、异步先入先出存储器和互斥处理机,所述先入先出存储器接收显示命令并将首个显示命令预先输出到总线上,硬件加速模块从总线上读取显示命令并在判断该显示命令是本硬件加速模块处理的命令、并在响应到互斥处理机输出的用于允许显示命令执行的控制信号后,根据该显示命令完成从屏幕坐标到显存的物理坐标的转换,之后互斥处理机输出的第一应答信号至先入先出存储器,先入先出存储器在下一时钟周期内将下一个显示命令输出到总线上,进而完成一个处理周期的操作。本发明高效地解决了大容量显示数据显示的传输瓶颈问题,同时在硬件成本和可维护、可开发特性上具有其他方法无法比拟的优势。
文档编号G06T1/20GK101071500SQ20061003549
公开日2007年11月14日 申请日期2006年5月12日 优先权日2006年5月12日
发明者姚力, 慈旭光 申请人:深圳迈瑞生物医疗电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1