首页 / 专利库 / 动物学 / 访问 / 访问用于配置空间的配置和状态寄存器

访问用于配置空间的配置和状态寄存器

阅读:202发布:2023-03-04

专利汇可以提供访问用于配置空间的配置和状态寄存器专利检索,专利查询,专利分析的服务。并且通过有选择地仅对 帧 的部分进行编码并且改为使用先前编码的部分,视频分析可用来帮助 视频编码 。当后续帧具有小于 阈值 的运动等级时,可使用先前编码的部分。在这种情况下,在一些 实施例 中,后续帧的全部或部分可以不经过编码,从而增加带宽和速度。,下面是访问用于配置空间的配置和状态寄存器专利的具体信息内容。

1.一种用于计算机系统的方法,包括:
提供多个功能单元的一组配置和状态寄存器;以及
提供多个可编程地址寄存器,以指定所述配置和状态寄存器的起始地址,在引导序列期间启用所述地址寄存器的大小的编程。
2.如权利要求1所述的方法,包括提供各功能单元的地址寄存器。
3.如权利要求1所述的方法,包括提供所述地址寄存器,以使编程人员能够访问功能单元的配置和状态寄存器。
4.如权利要求1所述的方法,包括防止对所述地址寄存器的写入。
5.如权利要求4所述的方法,包括通过设置用于防止写入的位来防止写入。
6.如权利要求5所述的方法,包括要求签名以重置所述位。
7.一种用于计算机系统的装置,包括:用于提供多个功能单元的一组配置和状态寄存器的部件;
用于提供多个可编程地址寄存器,以指定所述配置和状态寄存器的起始地址的部件;
以及
用于在引导序列期间启用所述地址寄存器的大小的编程的部件。
8.如权利要求7所述的装置,还包括用于提供各功能单元的地址寄存器的部件。
9.如权利要求7所述的装置,还包括用于提供所述地址寄存器以使编程人员能够访问功能单元的配置和状态寄存器的部件。
10.如权利要求9所述的装置,还包括用于防止写入的部件。
11.如权利要求10所述的装置,还包括用于通过设置用于防止写入的位来防止写入的部件。
12.如权利要求11所述的装置,还包括用于通过要求签名以重置所述位来防止写入的部件。
13.一种用于计算机系统的设备,包括:
用于多个功能单元的一组配置和状态寄存器;以及
多个可编程地址寄存器,其指定所述配置和状态寄存器的起始地址,并在引导序列期间启用所述地址寄存器的大小的编程。
14.如权利要求13所述的设备,包括各功能单元的地址寄存器。
15.如权利要求13所述的设备,包括使编程人员能够访问功能单元的配置和状态寄存器的所述地址寄存器。
16.如权利要求13所述的设备,所述地址寄存器防止对所述地址寄存器的写入。
17.如权利要求16所述的设备,所述地址寄存器包括用于防止对所述寄存器的写入的位。
18.如权利要求17所述的设备,其中,所述地址寄存器要求签名以重置所述位。
19.一种机器可读介质,其上面存储指令,所述指令在被执行时导致所述机器执行如权利要求1-6中任一项所述的方法。

说明书全文

访问用于配置空间的配置和状态寄存器

技术领域

[0001] 这一般涉及计算机,以及具体涉及视频处理。

背景技术

[0002] 存在必须处理和/或存储视频的多种应用。一个示例是视频监控,其中为了安全性或其它目的,可接收、分析和处理一个或多个视频馈送。另一种常规应用是用于视频会议。
[0003] 通常,通用处理器、例如中央处理单元用于视频处理。在一些情况下,称作图形处理器的专用处理器可辅助中央处理单元。
[0004] 视频分析涉及得到与视频信息的内容有关的信息。例如,视频处理可包括内容分析,其中分析内容视频,以便检测某些事件或事件发生,或者寻找感兴趣信息。
[0005] 用消息来发信号通知的中断或MSI是一种用于生成中断的技术。通常,各装置具有在该装置想要中断主中央处理单元时断言的中断引脚。在外设组件互连Express规范中,不存在单独中断引脚。相反,特殊消息允许引脚断言或解除断言的仿真。用消息来发信号通知的中断允许装置将少量数据写到存储器空间中的特殊地址。芯片组则将中断传递给中央处理单元。
[0006] MSI-X准许装置分配多达2048个中断。在外设组件互连Express基本规范修订版1.0a和1.1的第6.1小节中规定了MSI-X。MSI-X允许大量中断,给予各中断单独目标地址和标识数据字。它使用64位寻址和中断屏蔽。
附图说明
[0007] 图1是按照本发明的一个实施例的系统架构;
[0008] 图2是按照一个实施例、图1所示的视频分析引擎的电路图示;
[0009] 图3是按照本发明的一个实施例的视频捕获的流程图
[0010] 图4是按照一个实施例的二维矩阵存储器的流程图;
[0011] 图5是按照一个实施例的分析辅助编码的流程图;
[0012] 图6是另一个实施例的流程图;
[0013] 图7是一个实施例的中断控制的图示;
[0014] 图8是一个实施例的中断时序图;
[0015] 图9是一个实施例的流程图;
[0016] 图10是在一个实施例中、图2的PCI Express 36的一部分的示意图;
[0017] 图11是对外部寄存器进行写入访问的ELBI事务的时序图;
[0018] 图12是对外部寄存器进行读取访问的ELBI事务的时序图;以及
[0019] 图13是一个实施例的流程图。

具体实施方式

[0020] 按照一个实施例,可并行地处理多个视频流。可对这些视频流编码,同时实现视频分析。此外,可一次对所述多个流中每个流进行编码,同时所述多个流中每个流经过视频分析。在一些实施例中,编码或分析的特性可在编码或分析已经实现的同时由用户即时改变。
[0021] 虽然给出其中使用视频分析的一个实施例的示例,但是在一些实施例中,视频分析只是可选的,并且可以使用或者可以不使用。
[0022] 参照图1,计算机系统10可以是多种计算机系统中的任一种,包括使用视频分析(例如视频监控和视频会议应用)的那些计算机系统以及不使用视频分析的实施例。系统10可以是台式计算机、服务器、膝上型计算机、移动因特网装置或蜂窝电话,这里只举几个例子。
[0023] 系统10可具有耦合到系统总线14的一个或多个主中央处理单元12。系统存储器22可耦合到系统总线14。虽然提供主系统架构的示例,但是本发明决不局限于任何特定系统架构。
[0024] 系统总线14可耦合到总线接口16,总线接口16又耦合到常规总线18。在一个实施例中,可使用外设组件互连Express(PCIe)总线,但是本发明决不局限于任何特定总线。
[0025] 视频分析引擎20可经由总线18耦合到主机。在一个实施例中,该视频分析引擎可以是既提供编码又提供视频分析的单个集成电路。在一个实施例中,集成电路可使用嵌入式动态随机存取存储器(EDRAM)技术。但是,在一些实施例中,可免除编码或视频分析。另外,在一些实施例中,引擎20可包括存储控制器,所述存储控制器控制板载集成二维矩阵存储器以及提供与外部存储器的通信。
[0026] 因此,在图1所示的实施例中,视频分析引擎20与本地动态随机存取存储器(DRAM)19进行通信。具体来说,视频分析引擎20可包括用于访问存储器19的存储控制器。备选地,引擎20可使用系统存储器22,并且可包括与系统存储器的直接连接。
[0027] 也耦合到视频分析引擎20的可以是一个或多个照相装置24。在一些实施例中,按照标准清晰度格式,可接收多达四个同时视频输入。在一些实施例中,可在三个输入端上提供一个高清晰度输入,以及可在第四输入端上提供一个标准清晰度输入。在其它实施例中,可提供更多或更少的高清晰度输入,以及可提供更多或更少的标准清晰度输入。作为一个示例,三个输入端中的每个输入端可接收10位的高清晰度输入数据,例如R、G和B输入或者Y、U和V输入,各在单独10位输入线上。
[0028] 在一个实施例中,示出图2所示的视频分析引擎20的一个实施例,其在该页的顶端具有四个照相装置通道输入。这四个输入可由视频捕获接口26来接收。视频捕获接口26可接收采取照相装置输入或其它视频信息的形式的多个同时视频输入,包括电视机输入、数字录像机输入或媒体播放器输入,这里只举几个例子。
[0029] 视频捕获接口自动捕获和复制各输入。将输入帧的一个副本提供给VAFF单元66,以及另一副本可提供给VEFF单元68。VEFF单元68负责将视频存储在外部存储器、例如图
1所示的存储器22上。在一个实施例中,外部存储器可耦合到芯片上系统存储控制器/仲裁器50。在一些实施例中,外部存储器上的存储可用于视频编码目的。具体来说,如果一个副本存储在外部存储器上,则它能够由视频编码器32来访问,以用于按照预期格式对信息进行编码。在一些实施例中,多种格式是可用的,并且系统可选择最合乎需要的特定编码格式。
[0030] 如上所述,在一些情况下,视频分析可用来改进由视频编码器32所实现的编码过程的效率。一旦这些帧经过编码,它们可经由PCI Express总线36提供给主系统。
[0031] 同时,输入视频帧的其它副本存储在二维矩阵或主存储器28上。VAFF可同时处理和传送全部四个输入视频通道。VAFF可包括四个重复的单元,以处理和传送视频。存储器28的视频传输可使用复用。由于视频回扫时间中固有的延迟,在一些实施例中,多个通道的传递能够实时进行。
[0032] 主存储器上的存储可有选择地非线性或线性地实现。在常规线性寻址中,指定相交寻址线上的一个或多个位置,以访问存储器位置。在一些情况下,可指定寻址线、例如字或位线,以及可指示沿那个字或位线的长度,使得所寻址存储器线的一部分可自动地接连存储。
[0033] 相比之下,在二维寻址或非线性寻址中,可在一个操作中访问行线和列线。该操作可指定存储器矩阵中的初始点,例如,在两个寻址线、例如行线或列线的交点处。然后,提供存储器大小或另一定界符,以指示矩阵在两维中(例如沿行线和列线)的长度。一旦指定初始点,整个矩阵可通过可寻址位置的自动递增来自动存储。换言之,不需要回到主机或其它装置以确定初始点之后、用于存储存储器矩阵的随后部分的地址。二维存储器减少生成地址的任务或者将其基本上完全消除。因此,在一些实施例中,所需带宽和访问时间均可减少。
[0034] 基本上,相同操作可反向进行,以读取二维存储器矩阵。备选地,二维存储器矩阵也可使用常规线性寻址来访问。
[0035] 虽然给出其中指定存储器矩阵的大小的示例,但是也可提供其它定界符,包括两维中每维中的长度(即,沿字和位线)。二维存储器对静止图像和运动图像、图形以及具有两维中的数据的其它应用是有利的。
[0036] 信息能够按照两维或者按照一维来存储在存储器28中。在一个实施例中,一维与两维之间的转换能够通过硬件自动地即时进行。
[0037] 在一些实施例中,对多个流的视频编码可在视频编码器中进行,同时多个流也在视频分析功能单元42中经过分析。这可通过下列步骤来实现:在视频捕获接口26中制作每个流的副本,并且向视频编码器32发送每个流的一组副本,而另一个副本转到视频分析功能单元42。
[0038] 在一个实施例中,所述多个流中每个流的时间复用可在视频编码器32和视频分析功能单元42中的每个中进行。例如,基于用户输入,来自第一流的一个或多个帧可经过编码,之后接着是来自第二流的一个或多个帧,之后接着是来自下一个流的一个或多个流,依此类推。类似地,时间复用可按照相同方式在视频分析功能单元42中使用,其中基于用户输入,来自一个流的一个或多个帧经过视频分析,然后是来自下一个流的一个或多个帧,依此类推。因此,一系列流能够在编码器和视频分析功能单元中基本上同时地、即一次性处理。
[0039] 在一些实施例中,用户能够设置首先处理哪一个流以及在任何特定时间处理每个流的多少帧的序列。在视频编码器和视频分析引擎的情况下,当处理这些帧时,它们能够通过总线36来输出。
[0040] 编码器中每个流的上下文可保留在寄存器组122(其可包括每个流的寄存器)中专用于那个流的寄存器中。寄存器组122可记录按照多种方式之一(包括用户输入)已经指定的编码特性。例如,能够记录对每个流预期的分辨率、压缩率和编码类型。然后,当时间复用的编码发生时,视频编码器能够从正确流的寄存器116中访问正被处理的当前流的正确特性。
[0041] 类似地,同样的操作能够在视频分析功能单元46中使用寄存器组124进行。换言之,按照流的视频分析处理或编码的特性能够记录在寄存器124和122中,其中在每组寄存器中,对于每个流保留一个寄存器。
[0042] 另外,用户或者另外某个源能够指挥即时改变特性。“即时”意在表示在视频分析功能单元42的情况下在分析处理期间或者在视频编码器32的情况下在编码的情况下所发生的变更。
[0043] 当变更在正在处理帧的时候开始时,该变更最初可记录在视频编码器的影子寄存器116以及视频分析功能单元42的影子寄存器114中。然后,当完成帧(或者所指定数量的帧)时,视频编码器32立即检查以查看在寄存器116中是否已经存储任何变更。如果是的话,则视频编码器通过通路120将那些变更传递给寄存器122,从而更新寄存器中适合于使其编码特性即时改变的每个流的新特性。
[0044] 此外,在一个实施例中,相同的即时变更可在视频分析功能单元42中进行。当检测到即时变更时,现有帧(或者现有工作集)可使用旧特性来完成,同时将这些变更存储在影子寄存器114中。然后,在恰当时间,在工作负荷或帧已经完成处理之后,这些变更可通过总线118从寄存器114传递给视频分析功能单元42以便存储在寄存器124中,通常替换寄存器124之间的单独寄存器中对任何特定流所存储的特性。然后,一旦更新完成,下一个处理负荷就使用新特性。
[0045] 因此,参照图6,序列130可通过软件固件和/或硬件来实现。在基于软件或固件的实施例中,该序列可通过非暂时计算机可读介质(例如光存储器、磁存储器或半导体存储器)中存储的计算机运行指令来实现。例如,在一个实施例中,在编码器32的情况下,该序列可存储在该编码器内的存储器中,以及在分析功能单元的情况下,它们可存储在例如像素管线单元44中。
[0046] 最初,该序列等待关于用于编码或分析的上下文指令的用户输入。在一些实施例中,该流程对于分析和编码可以是相同的。一旦如在菱形框132所确定接收到用户输入,则对于每个流,上下文存储在适当寄存器122或124中,如框134所示。然后,时间复用处理开始,如框136所示。在那个处理期间,在菱形框138的检查确定是否已经有任何处理变更指令。如果不是的话,则在菱形框142的检查确定处理是否完成。如果不是的话,则时间复用处理继续进行。
[0047] 如果已经接收到处理变更,则可将它存储在适当影子寄存器114或116中,如框140所示。然后,在当前处理任务完成时,变更能够在下一组操作中自动实现,其在视频编码器32的情况下是编码或者在功能单元42的情况下是分析。
[0048] 在一些实施例中,编码的频率可随编码器上负荷的量值而改变。一般来说,编码器足够快地运行,使得它能够在从存储器中读出下一帧之前完成一帧的编码。在许多情况下,编码引擎运行的速度可比在下一帧或下一组帧已跑出存储器之前对一帧或一组帧进行编码所需的速度要快。
[0049] 上下文寄存器可存储用于进行编码或分析的任何必要标准,在编码器的情况下,其包括分辨率、编码类型和压缩率。一般来说,该处理可按照循环方式进行,从一个流或通道继续进行到下一个流或通道。在一个实施例中,然后将编码数据输出到外设组件互连(PCI)Express总线18。在一些情况下,与PCI Express总线关联的缓冲器可从各通道接收编码。即,在一些实施例中,可提供缓冲器,以用于与PCI Express总线关联的各视频通道。各通道缓冲器可清空到由与PCI Express总线关联的仲裁器所控制的总线。在一些实施例中,仲裁器将各通道清空到总线的方式可服从用户输入。
[0050] 因此,参照图3,用于视频捕获20的系统可通过硬件、软件和/或固件来实现。在一些情况下,硬件实施例可以是有利的,这是因为它们可以能够具有更大速度。
[0051] 如框72所示,可从一个或多个通道接收这些视频帧。然后,复制这些视频帧,如框74所示。随后,视频帧的一个副本存储在外部存储器中以便编码,如框76所示。另一副本存储在内部存储器或主存储器28中以用于分析目的,如框78所示。
[0052] 接下来参考图4所示的二维矩阵序列80,可通过软件、固件或硬件来实现序列。此外,在使用硬件实施例时可存在速度优点。
[0053] 最初,在菱形框82的检查确定是否接收到存储命令。按常规,这类命令可从主系统、以及具体来说从其中央处理单元12接收。那些命令可由分发单元34来接收,分发单元34然后将命令提供给引擎20的用来实现该命令的适当单元。当命令已经实现时,在一些实施例中,分发单元又向主系统报告。
[0054] 如果如在菱形框82所确定、涉及存储命令,则可接收初始存储器位置和二维大小信息,如框84所示。然后,该信息存储在适当的二维矩阵中,如框86所示。初始位置例如可定义矩阵的左上。存储操作可自动寻找存储器20中所需大小的矩阵,以便实现该操作。在一些实施例中,一旦提供存储器中的初始点,该操作就可自动存储该矩阵的后续部分,而无需附加地址计算。
[0055] 相反,如果如在菱形框88所确定、涉及读取访问,则接收初始位置和二维大小信息,如框90所示。然后,读取所指定矩阵,如框92所示。此外,该访问可自动地进行,其中可访问初始点,如常规线性寻址中进行的那样,并且然后自动确定地址的其余部分,而无需返回以及按照常规方式计算地址。
[0056] 最后,如果如在菱形框94所确定、已从主机接收到移动命令,则接收初始位置和二维大小信息,如框96所示,以及自动实现移动命令,如框98所示。此外,只是通过指定起始位置并且提供大小信息,信息的矩阵就可自动地从一个位置移动到另一个位置。
[0057] 又参照图2,视频分析单元42可经过像素管线单元44耦合到系统的其余部分。单元44可包括状态机,其运行来自分发单元34的命令。通常,这些命令在主机始发,并且由分发单元来实现。基于应用,可包括多种不同分析单元。在一个实施例中,可包括卷积单元46,以用于卷积的自动提供。
[0058] 卷积命令可包括指定掩码(mask)、参考或内核的命令和变元,使得一个所捕获图像中的特征能够与存储器28中的参考二维图像进行比较。该命令可包括指定要在哪里存储卷积结果的目的地。
[0059] 在一些情况下,每个视频分析单元可以是硬件加速器。“硬件加速器”意在表示与运行于中央处理单元上的软件相比更快地执行功能的硬件装置。
[0060] 在一个实施例中,每个视频分析单元可以是由专用于那个单元的特定功能的专用硬件来运行的状态机。因此,这些单元可比较快地运行。此外,对于由视频分析单元所实现的各操作可以仅需要一个时钟周期,这是因为所需要的只是告知硬件加速器执行该任务,并且提供该任务的变元,以及然后可实现操作序列,而无需来自任何处理器、包括主处理器的进一步控制。
[0061] 在一些实施例中,其它视频分析单元可包括自动地计算质心的质心单元48、自动地确定直方图的直方图单元50以及膨胀/磨耗单元52。
[0062] 膨胀/磨耗单元52可负责自动地增加或减小给定图像的分辨率。当然,除非信息已经是可用的,否则不可能增加分辨率,但是在一些情况下,以较高分辨率所接收的帧可在较低分辨率处理。因此,该帧按照较高分辨率可以是可用的,并且可由膨胀/磨耗单元52变换到较高分辨率。
[0063] 矩阵存储器传递(MTOM)单元54负责实现移动指令,如先前所述。在一些实施例中,可提供算术单元56和布尔单元58。即使这些相同单元可以是与中央处理单元或者已经存在的协处理器结合可用的,但可以有利的是,使它们是引擎20板载的,原因在于其在芯片上的存在可降低对于从引擎20到主机并且返回的许多数据传递操作的需要。此外,在一些实施例中,通过使它们是引擎20板载的,可使用二维主存储器或矩阵主存储器。
[0064] 可提供提取单元60,以从图像中获取向量。查找单元62可用来查找特定类型的信息,以看它是否已经存储。例如,查找单元可用来寻找已经存储的直方图。最后,当对于特定任务图像具有过高分辨率时,使用二次取样单元64。可对图像进行二次取样,以降低其分辨率。
[0065] 在一些实施例中,还可提供其它组件,其中包括:I2C接口38,其与照相装置配置命令进行接口;以及通用输入/输出装置40,其连接到所有对应模,以接收通用输入和输出,并且在一些实施例中以便结合调试来使用。
[0066] 参照图5,在一些实施例中,可实现分析辅助编码方案100。该方案可通过软件、固件和/或硬件来实现。但是,硬件实施例可以更快。分析辅助编码可使用分析能来确定应当对视频信息的给定帧的哪些部分(若有的话)进行编码。因此,在一些实施例中,一些部分或帧可以不需要经过编码,并且作为一个结果,可增加速度和带宽。
[0067] 在一些实施例中,哪一个经过编码或者不经过编码可以是情况特定的,并且可以例如基于可用电池电力、用户选择和可用带宽来即时确定,这里只举几个例子。更具体来说,图像或帧分析可对现有帧与随后帧进行,以确定整个帧是否需要经过编码,或者是否只有帧的部分需要经过编码。这个分析辅助编码与常规的基于运动估计的编码(其只判定是否要包括运动向量,但是仍然对每一帧进行编码)形成对照。
[0068] 在本发明的一些实施例中,后续帧有选择地经过编码或者不经过编码,以及基于那些区域中的运动范围,帧中的所选区域可经过编码或者根本不经过编码。然后,告知解码系统关于多少帧经过或者不经过编码,并且能够只根据需要来复制帧。
[0069] 参照图5,第一帧或第一批多个帧可在开始经过完全编码,如框102所示,以便确定基准或参考。然后,在菱形框104的检查确定是否应当提供分析辅助编码。如果将不使用分析辅助编码,则编码如按常规进行的那样继续进行。
[0070] 如果如在菱形框104所确定、提供分析辅助编码,则确定阈值,如框106所示。该阈值可以是固定的或者可以是自适应的,这取决于非运动因素,例如可用电池电力、可用带宽或用户选择,这里只举几个例子。随后,在框108,现有帧和后续帧经过分析,以确定是否存在超过阈值的运动,以及如果是的话,则确定它是否能够隔离到特定区域。为此,可利用各种分析单元,包括但不限于卷积单元、磨耗/膨胀单元、二次取样单元和查找单元。具体来说,可对图像或帧分析高于阈值的运动,可相对于先前帧和/或随后帧来分析图像或帧。
[0071] 然后,如框110所示,可定位具有超过阈值的运动的区域。在一个实施例中,只有那些区域可经过编码,如框112所示。在一些情况下,给定帧上的区域可以根本没有经过编码,并且可以只记录这个结果,使得能够在解码期间只复制该帧。一般来说,编码器在报头或其它位置中提供与哪些帧经过编码以及帧是否仅具有经过编码的部分有关的信息。在一些实施例中,编码部分的地址可采取初始点和矩阵大小的形式来提供。
[0072] 图3、图4和图5是可通过硬件来实现的流程图。它们也可通过软件或固件来实现,在这种情况下,它们可包含在诸如光存储器、磁存储器或半导体存储器之类的非暂时计算机可读介质上。非暂时介质存储用于由处理器执行的指令。这种处理器或控制器的示例可包括分析引擎20,以及适当的非暂时介质可包括主存储器28和外部存储器22(作为两个示例)。
[0073] 如图1所示,视频分析引擎20耦合到包括中央处理单元12的主机。引擎20与主中央处理单元12无关地运行指令。但是,主中央处理单元必须为引擎20馈送数据和指令,并且它必须接收操作结果。为了实现这些任务,在用于完成指令运行的轮询中不引起开销的情况下,在一些实施例中,可应用用智能消息来发信号通知的中断(MSI-X)。
[0074] 为了确保用于要求对主机的大数据传递的指令的数据完整性,引擎20使用生成MSI-X中断的RAISE指令。所产生的MSI中断不仅用作中断,而且还在中断的消息数据字段中携带附加信息[WHAT INFORMATION?],以降低服务于中断时所涉及的开销。此外,智能MSI-X中断控制器将对来自指令分发单元的RAISE中断请求的确认拖延到完成数据传递给主机。这种机制可确保RAISE指令的中断仅在READ或RMD指令的成功完成之后才经过外设组件互连Express总线18来发送。
[0075] 在一个实施例中,MSI-X接口的结构如下所示,其中IC是引擎20,O是输出,I是输入,以及大小以字节为单位。
[0076]
[0077] 参照图7,中断控制器300从提供中断的各种组件接收时钟并且从那些相同装置接收重置信号。配置和状态寄存器(CSR)解码件302接收CSR输入。它向MSI-X接口304提供信号。它还向遗留中断挂起寄存器306提供解码信号。MSI-X接口从重新同步单元310接收中断。重新同步单元310从诸如视频编码器(VE)、存储器矩阵(MM)、视频捕获接口(VCI)、外部存储器(DDR)、I2C总线(I2C)、通用输入/输出(GPIO)、分发单元(DU)之类的功能单元接收中断,并且接收分发单元RAISE信号。
[0078] 向分发单元RAISE控制器308提供外设组件互连分发单元写入完成信号。控制器308提供分发单元写入完成确认信号,以及接收信号并且向重新同步单元310发送信号。
[0079] 因此,参照图8,示出各种信号的定时。核心时钟在顶部示出,之后接着是视频编码器MSI请求。随后示出视频编码器MSI准予的定时。这是指示接受发送MSI-x的请求的一周期脉冲。此后,对一个实施例示出MSI-X地址信号。此后接着是MSI-X数据信号。最后,示出视频编码器MSI业务类(tc)信号,之后接着是配置(CFG) MSI-X编码器信号。业务类是PCI Express中的一种类型的系统业务,其可被指配给所支持虚拟通道以用于流量控制目的。MSI-X请求的业务类在断言MSI请求时是有效的。cfg_msix_en是用于MSI-X能力结构中MSI-X控制寄存器的MSI-X启用位。
[0080] 参照图9,用于实现中断控制器的序列400可通过软件、固件和/或硬件来实现。在软件和固件实施例中,它可通过非暂时计算机可读介质(例如磁存储装置、光存储装置或者半导体存储装置)中存储的计算机运行指令来实现。例如,在一个实施例中,这些指令可在中断控制器300中实现。
[0081] 该序列可开始于检测中断,如在菱形框402所示。然后,在框404,可指示该中断。该中断可伴随有地址值、数据值和业务类(如框406所示),以帮助服务于该中断。
[0082] 然后,在菱形框408的检查确定数据传递是否完成。如果是的话,则可如框410所示发送确认。否则,如框412所示拖延该确认。
[0083] 参照图9,用于实现中断控制器的序列400可通过软件、固件和/或硬件来实现。在软件和固件实施例中,它可通过非暂时计算机可读介质(例如磁存储装置、光存储装置或者半导体存储装置)中存储的计算机运行指令来实现。例如,在一个实施例中,这些指令可在中断控制器300中实现。
[0084] 该序列可开始于检测中断,如在菱形框402所示。然后,在框404,可指示该中断。该中断可伴随有地址值、数据值和业务类(如框406所示),以帮助服务于该中断。
[0085] 然后,在菱形框408的检查确定数据传递是否完成。如果是的话,则可如框410所示发送确认。否则,如框412所示拖延确认。
[0086] 在一些实施例中,基本地址寄存器(BAR)由驱动器在硬件引导序列期间来编程。这些寄存器指定视频分析引擎20中各功能单元的配置和状态寄存器(CSR)的起始地址。因此,寄存器的大小可在引导序列期间以编程方式来设置。基于需要由每个功能单元来实现哪些特征,设计人员能够确定所需要的CSR大小。这个大小然后可通过软件来设置。这些基本地址寄存器然后可由应用开发人员用来访问任何功能单元中的配置和状态寄存器。配置空间可定义为与各功能单元的某个点的偏移。BAR可处于任何适当存储器中,但是其位置一般可经过硬编码。
[0087] 没有这些基本地址寄存器,各功能单元中的配置和状态寄存器硬连线到固定的物理地址。这意味着,功能单元的存储位置相互之间是固定的。给定功能事件的这个固定地址则将提供给应用开发人员供其使用。这是适用的,直到的新释放发生,其使功能单元的空间显著地膨胀或收缩。在一些情况下,这可导致许多代码的重写,或者可导致大量未使用存储器空间。
[0088] 基本地址寄存器将硬件中功能单元配置和状态寄存器的起始地址绑到寄存器值而不是固定物理地址。这允许驱动器开发人员在地址寄存器大小的极限之内根据需要来将功能单元起始地址放置成远离或者放置成靠近。
[0089] 参照图10,端点控制器302可耦合到配置和状态寄存器(CSR)访问控制件306。访问控制件306耦合到数个功能单元,例如分发单元(DU)34、存储器矩阵(MM)28、视频捕获接口2
(VCI)26、外部存储器(DDR)19、视频编码器(VE)32、I C总线38、通用输入/输出(GPIO)40、性能监视单元(PMU)、芯片观察(CW)、微电熔丝控制(FC,efuse control)以及核心的相环(PLL)。芯片观察是调试总线。微电熔丝控制允许部件设置在某些芯片上而不是其它芯片上。
[0090] 访问控制件306通过外部本地总线接口(ELBI)来连接到控制器302以便进行CSR访问。在一些实施例中,控制器302可以是从Synopsis, Inc.(Mountain View,California 94303)可得到的Synopsis®DesignWare核心PCI Express端点核心。
[0091] 端点控制器302可包括连接到公共Xpress端口逻辑(CXPL)核心(其是实现大部分PCI Express协议的内部端口逻辑模块)的传送应用相关模块(XADM)310。核心318与接收应用相关模块(RADM)312进行通信,RADM 312又向外设组件互连Express(PCIe)数据通路304提供接收目标一接口(RTRGT1)信号。数据通路304又使用PCIe接口(PD)来与访问控制件306进行通信。访问控制件306使用中断控制(IC)信号来与中断控制件308进行通信。中断控制件308为各功能单元提供中断。它向配置相关模块(CDM)316发送MSI-X信号。它还向CDM 316发送遗留PCIe中断A(INTA)信号。CDM 316与核心318和本地总线控制器(LBC)314进行通信。
[0092] 在一些实施例中,控制器302可以是图2所示的PCI Express 36的一部分。ELBI是访问用于入局请求(其通过RTRGTO来路由到ELBI)的应用寄存器块的接口。LBC是驱动ELBI的主控。ELBI协议规则可包括lbc_ext_cs的断言指示活动请求周期的规则。端口lbc_ext_wr指示写入访问的字节启用。全零位指示读取访问。ELBI访问限制到一个DWORD。针对ELBI且具有多于一个DWORD的入局请求在写入时被丢弃,或者在读取时以完成或中止返回完成。端口lbc_ext_dout仅在断言lbc_ext_cs时才是有效的。端口lbc_ext_cs和ext_lbc_ack形成同步握手。控制器302使lbc_ext_cs保持被断言,直到应用ext_lbc_ack。lbc_ext_cs与ext_lbc_ack之间的等待时间可以是无限制的。应用返回ack;否则,事务将挂起。
[0093] 图11示出对外部寄存器的ELBI写入访问的时序图。图12示出对外部寄存器的ELBI读取访问的时序图。
[0094] 端口ext_lbc_ack指示对外部寄存器块的所请求读取或写入操作完成。端口ext_lbc_din是来自外部寄存器块的数据总线。在读取请求或写入请求的所接收事务层分组(TLP)具有如基本地址寄存器配置所确定的应用端点控制器302的范围中的地址时,断言端口ext_lbc_cs。仅当外部寄存器块通过断言对应位ext_lbc_ack来确认访问完成之后,核心314才解除断言ext_lbc_cs。端口lbc_ext_addr是到外部寄存器块的地址总线。它是处于在lbc_ext_bar_num上指示的基本地址寄存器的范围之内的请求地址的偏移。端口lbc_ext_dout是到外部寄存器块的写入数据总线。端口lbc_ext_wr指示外部寄存器、例如读取或写入。在一个实施例中,0b指示读取所有字节,以及1b指示写入所有字节。端口lbc_ext_bar_num提供当前ELBI访问的基本地址寄存器号。在一个实施例中,编号0000b代表引擎的全部CSR所在的基本地址零。编号001b代表MSI-X表结构所在的基本地址寄存器一。编号010b代表所有指令集规范(ISS)数据映射到的基本地址寄存器二。
[0095] 在一些实施例中,视频分析引擎中的所有功能单元所具有的CSR对于CSR事务具有相同接口。在读取请求或写入请求的所接收事务层分组具有如由基本地址寄存器配置所确定的应用端点控制器302的范围中的地址时,断言端口csr_[fu]_cs(其中[fu]指示各功能单元)。仅当功能单元通过断言功能单元确认的对应位来确认访问完成之后,核心314才解除断言[fu]_cs。端口csr_[fu]_adr是到功能单元的地址总线。Csr_[fu]_adress是请求地址在基本地址寄存器零的范围之内的偏移。仅当csr_[fu]_cs在[fu]_clk上有效时,功能单元才捕获该地址。
[0096] Csr_[fu]_wdata是对功能单元的写入数据。当csr_[fu]_cs在功能单元时钟上有效时,功能单元捕获数据。端口csr_[fu]_wr指示外部寄存器访问是读取或写入。在一个实施例中,0b用于读取,而1b用于写入。[fu]_csr_ack指示对功能单元的所请求读取操作或写入操作完成。端口[fu]_csr_rdata是从功能单元到CSR的读取数据,其仅当[fu]_csr_ack在外设组件互连时钟上有效时才被捕获。
[0097] 提供一种防止对这些基本地址寄存器的意外或恶意重新编程的机制。在一个实施例中,256k字节存储器空间中超出有效基本地址寄存器的所有访问返回0x“DEADBEEF”。基本地址寄存器锁定寄存器具有如下位,其在设置为一时防止对基本地址寄存器的写入。这个锁定位可在对基本地址寄存器进行编程时设置,以防止任何意外或恶意重新编程。可在发出对于到CSR空间的存储器映射的任何其它访问之前,对基本地址寄存器进行编程。可通过提供正确签名来重置该位。
[0098] 按照一些实施例,BAR序列400可通过软件、固件和/或硬件来实现。在软件和固件实施例中,它可通过非暂时计算机可读介质(例如光存储装置、磁存储装置或者半导体存储装置)中存储的计算机运行指令来实现。在一些实施例中,该序列可以是DRAM存储器19或主存储器28的一部分。
[0099] BAR序列400可在如在菱形框402所指示、检测到加电时开始。各功能单元的BAR偏移然后可如框404所示来定义。然后,各功能单元的配置空间的地址如框406所示来确定。最后,在一些情况下,可设置位,以防止在没有提供签名的情况下对BAR的重新编程,如框408所示。这将防止意外重新编程或恶意重新编程。
[0100] 本文所述的图形处理技术可在各种硬件架构中实现。例如,图形功能性可集成在芯片组中。备选地,可使用分立图形处理器。作为又一个实施例,图形功能可通过包括多核处理器的通用处理器来实现。
[0101] 本说明书通篇提到“一个实施例”或“实施例”表示结合该实施例所述的具体特征、结构或特性包含在本发明中所包含的至少一种实现中。因此,词语“一个实施例”或者“在一个实施例中”的出现不一定都表示同一个实施例。此外,具体特征、结构或特性可通过与所示具体实施例不同的其它适当形式来创立,并且所有这类形式均可包含在本申请权利要求书中。
[0102] 虽然针对有限数量的实施例描述了本发明,但是本领域的技术人员将会从中知道大量修改和变更。预计所附权利要求书涵盖落入本发明的真实精神和范围之内的所有这类修改和变更。
相关专利内容
标题 发布/更新时间 阅读量
访问口 2020-05-11 294
联盟访问 2020-05-11 480
内容访问树 2020-05-12 514
数据库访问 2020-05-12 538
访问口 2020-05-11 610
访问控制 2020-05-12 170
数据库访问 2020-05-13 72
装置访问 2020-05-11 78
有条件访问 2020-05-13 797
硬盘访问器 2020-05-12 394
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈