管理异构型密码操作的方法和装置的制作方法

文档序号:6656009阅读:169来源:国知局
专利名称:管理异构型密码操作的方法和装置的制作方法
媒体计算机或机顶盒(STB)可以为诸如电视系统等的娱乐系统提供各种功能。例如,媒体计算机可以接收并解码音频/视频信号用于在电视上显示。然而,媒体计算机可以与每个都带有其自己的密码需求的各种媒体源相连。于是,媒体计算机可能需要依据多种密码技术进行操作。因此,需要改善在设备或网络中对这些技术的适应性。
附图简述

图1示出了系统100的框图。
图2示出了系统200的框图。
图3示出了系统300的框图。
图4示出了数据结构400。
图5示出了数据结构500。
图6示出了框图流程图600。
图7示出了框图流程图700。
具体实施例的描述图1示出了系统100的框图。系统100可以包括在多个节点之间传递信息的通信系统。节点可以包括在系统100中具有唯一地址的任何物理或逻辑实体。唯一地址可以包括例如,诸如互联网协议(IP)地址等网络地址、诸如媒体访问控制(MAC)地址等设备地址等等。
在某些实施例中,一个或多个通信介质可以连接各节点。通信介质可包括能够携带信息信号的任何介质。通信介质的示例可以包括金属导线、半导体材料、双绞线、同轴电缆、光纤、射频(RF)等等。术语“连接”或“互连”和它们的变体在本文中指的是物理连接和/或逻辑连接。
系统100的节点可被安排成传递不同类型的信息,诸如媒体信息和控制信息。媒体信息指的是表示诸如语音信息、视频信息、音频信息、文本信息、字母数字符号、图形、图像等等对用户有意义的内容的任何数据。控制信息指的是表示自动化系统有意义的命令、指令或控制字的任何数据。例如,控制信息可用于通过系统路由媒体信息,或指示节点以预定的方式处理媒体信息。
如图1所示,系统100可以包括媒体源1至P、媒体计算机102和娱乐系统108。媒体计算机102可以包括密码上下文控制器(CCC)104。媒体计算机102还可以经由网络110连接至服务器112。虽然图1中示出有限数量的节点,但是可以理解,系统100内可以使用任何数量的节点。各实施例在该意义上不受限制。
在某些实施例中,系统100包括媒体源1至P。媒体源1至P包括能够将音频信号、视频信号或者音频/视频(A/V)信号传送至诸如娱乐系统108等的娱乐系统的任何源。媒体源的一个示例包括针对诸如电视信号等A/V信号的源。媒体源可被安排成发起或传送标准的模拟电视信号、数字电视信号、高清电视(HDTV)信号等等。电视信号可以包括各种类型的信息,诸如电视音频信息、电视视频信息和电视控制信息。电视视频信息可以包括来自视频程序、计算机生成图像(CGI)等的内容。电视音频信息可以包括语音、音乐、音效等。电视控制信息可以被嵌入控制信号以显示电视视频和/或音频信息、商业暂停、刷新速率、同步信号等等。媒体源的另一个示例可包括针对音频信号的源。该音频源可被安排成发起或传送诸如模拟或数字音乐等标准音频信息。媒体源的另一个示例可包括针对视频信号的诸如从计算机至显示器的源。媒体源1至P的其他示例可以包括数码相机、A/V摄像机、视频监视系统、电话会议系统、电话系统、医用和测量仪器以及需要图像和音频处理操作的其他源。各实施例在该意义上不受限制。
在某些实施例中,媒体源1至P可起源于多个不同的设备或网络。例如,媒体源1至P可以包括被安排成传送以各种格式存储的预记录媒体的设备,诸如数字视频盘(DVD)设备、视频家用系统(VHS)设备、数字VHS设备、计算机、游戏控制台、致密盘(CD)播放器等等。在另一个实施例中,媒体源1至P可以包括为媒体计算机102提供广播或流传送的模拟或数字电视或音频信号的多媒体分发系统。多媒体分发系统的示例可包括例如空中(OTA)广播系统、陆上电缆系统(CATV)、卫星广播系统等等。媒体源1至P的类型和位置在该意义上不受限制。
在某些实施例中,系统100可以包括娱乐系统108。娱乐系统108可以包括被安排成再现接收自媒体源1至P的一种或多个电视信号、音频信号和/或视频信号的任何系统。娱乐系统108的一个示例可以包括具有显示器和扬声器的任何电视系统。娱乐系统108的另一个示例可以包括音频系统,诸如连接至外部扬声器的接收器或调谐器。娱乐系统108的另一个示例可以包括具有显示器和扬声器的计算机。各实施例在该意义上不受限制。
在某些实施例中,系统100可以包括媒体计算机102。媒体计算机102可以包括如特定实现所需的被安排成使用由处理器执行的软件、硬件电路或结构、或是硬件和软件的组合来实现各种操作的处理系统。在某些实施例中,媒体计算机102例如可以包括被安排成为系统100内各节点管理媒体信息和控制信息的个人计算机(PC)或STB。媒体计算机102可以连接至媒体源1至P和娱乐系统108。媒体计算机还可以具有多个标准输入/输出(I/O)设备,诸如键盘、鼠标、显示器、打印机等等。连接可以如给定的实现所需地包括各种有线或无线通信介质以及适当的I/O适配器。各实施例在该意义上不受限制。
在某些实施例中,媒体计算机102可以经由网络110连接至服务器112。网络110的一个示例可以包括数据网络,诸如依据一个或多个互联网协议(例如,传输控制协议(TCP)和互联网协议(IP))操作的网络。服务器112可以包括将内容传送至媒体计算机102的计算机或工作站,诸如被安排成经由例如超文本传输协议(HTTP)传送超文本标记语言(HTML)或可扩展标记语言(XML)文档的web服务器。各实施例在该意义上不受限制。
值得注意的是,虽然在图1中为了清楚的目的而将媒体计算机102和娱乐系统108示出为分开的系统,但是可以理解,这两个系统也可以在单个集成系统中实现。这一集成系统的示例可以包括带有处理器和存储器的数字电视。各实施例在该意义上不受限制。
在某些实施例中,媒体计算机102可以包括CCC104。CCC104可以管理并执行各种针对媒体计算机102的密码操作。在很多情况下,媒体计算机102可以从媒体源1至P接收加密格式的各种信号。可以依据各种不同的密码技术执行加密。密码技术的示例可以包括数据加密标准(DES)、三重DES、MULTI-2、高级加密系统(AES)、快速数据加密算法(FEAL)、MISTY、ENCRiP等等。类似地,来自服务器112的内容也用诸如IPSec、安全HTTP(SHTTP)、安全套接字层(SSL)之类的加密格式经由网络110传送至媒体计算机102。
在某些实施例中,密码技术可以包括各种块密码算法。块密码可以是非对称或对称的。对称的块密码可以使用相同的密钥进行加密和解密。块密码可以把一纯文本块加密成大小相同的密文块。块可以被定义为包括任何给定数位。因此,所有块密码都具有由它们在单个操作内加密的数位组成的固有块大小。这与一次加密一位的流密码大不相同。任何块密码都可以用各种模式中的一种进行操作,例如电子码本(ECB)模式、密码块链接(CBC)模式、输出反馈(OFB)模式等等。各实施例在该意义上不受限制。
变化的密码技术的存在潜在地要求设备执行不同组的密码操作。例如,每种密码技术可使用不同类型的密钥、密钥大小、密钥存储、密钥更新频率等。此外,每种密码技术都可以在密码上下文方面有所不同,即它们可用于各种不同类型的应用和环境。不同密码上下文的示例可以包括对家庭网络内的分发或对在开放总线结构上传递内容等所进行的对流音频/视频信号的解密、存储加密/加密、再加密。因此,异构型密码技术和异构型密码上下文的组合可增加管理密码操作的复杂性。
CCC104可被安排成为媒体计算机102的例如包括媒体源1至P和服务器112在内的各客户机管理并执行不同的密码操作。CCC104可以支持来自诸如媒体源1至P的各种客户机的多种密码上下文。CCC104可以基于动态资源分配策略为来自一客户机的每个活动流程切换上下文、控制和配置。CCC104可以访问直接存储器访问(DMA)控制器、可重配置密码引擎以及各种寄存器组。可以对控制结构进行无损压缩以减小动态加载等待时间。随后将参考图2对媒体计算机102,特别是CCC104进行详细讨论。
图2示出了系统200。在某些实施例中,系统200例如可以代表用于媒体计算机102的系统或子系统。如图2所示,系统200可以包括与客户机1至M相连接的CCC220、处理器216以及存储器218。CCC220可以包括密码上下文管理器(CCM)202以及密码处理集合体(CPC)210。CCM202可以包括客户机接口模块204、调度模块206以及CPC接口模块208。CPC210可以包括直接存储器访问(DMA)212、存储器214以及密码加速器(CA)1至N。虽然示出了有限数目的元件作为系统200的一部分,但应该理解,系统200可以包括任何数目的附加元件。各实施例在该意义上不受限制。
在某些实施例中,系统200可以包括处理器216。处理器216可以是能够提供实施例所需的速度和功能的任何类型的处理器。例如,处理器216可以是由Intel公司或其他公司生产的处理器。处理器216还可以包括数字信号处理器(DSP)及其附带的架构。处理器216还可以包括诸如网络处理器、嵌入式处理器、微控制器、控制器等的专用处理器。各实施例在该意义上不受限制。
在某些实施例中,系统200可以具有各种类型的存储器,诸如可由处理器216访问的存储器218以及可由DMA212访问的存储器214。存储器214和存储器218可以包括能够存储适用于处理器执行的程序指令和数据的任何机器可读介质。机器可读介质的某些示例包括但不限于只读存储器(ROM)、随机存取存储器(RAM)、动态RAM(DRAM)、双倍速DRAM(DDRAM)、静态RAM(SRAM)、可编程ROM、可擦除可编程ROM、电可擦除可编程ROM、动态RAM、磁盘(例如,软盘和硬盘驱动器)、光盘(例如,CD-ROM)以及可以存储数字信息的任何其他介质。此外,媒体计算机200可以包括通过各种I/O控制器的机器可读存储设备的各种组合,这些组合可由处理器访问并能够存储计算机程序指令和数据的组合。虽然图2将存储器214和存储器218示出为物理上分开的非连续存储器,但应该认识到,存储器214和存储器218可由使用相同或不同的物理和逻辑寻址方案划分为一个或多个逻辑部分的一组连续物理存储器组成。各实施例在该意义上不受限制。
在某些实施例中,术语“程序指令”可以包括计算机代码段,该计算机代码段含有来自预定计算机语言的字、值和符号,当根据预定的方式或句法将它们合放置时能使处理器执行一特定功能。计算机语言的示例可包括C、C++、JAVA、汇编、用于网络处理器的微码等等。指令可以用压缩和/或加密的格式存储在介质上。如此处所使用的,短语“适用于处理器执行”指的是包括以压缩和/或加密格式存储的指令,以及在由处理器216执行之前必须由安装器编译或安装的指令。
在某些实施例中,CCC220可以包括一个或多个客户机1至M。客户机可以包括请求密码操作的任何实体或代理,诸如媒体源1至P。客户机1至M的示例可以包括条件访问代理、数字传输控制协议代理、数字视频盘代理以及本地存储代理。客户机1至M各自都可使用相同或不同的密码技术来加密/解密由或通过客户机1至M传递的一个或多个上下文流程。上下文流程的一个示例包括与客户机1至M相关联的任何活动的同步或异步数据流,或者客户机1至M之间的连接。活动数据流指的是尚未被终止或超时的任何开放的通信连接或通信会话。上下文流程可以使用诸如上下文参数、客户机标识符等多种不同的方法来标识。每一信息流程的种类和持续时间都可根据实现而变化,并且各实施例在该意义上不受限制。
在某些实施例中,CCC220可以包括CCM202。CCM202可以连接至CPC210。CCM202可以是被安排成管理诸如CPC210等密码处理系统对多个上下文流程的执行的系统。多个上下文流程可以起源于单个客户机,或者可以起源于多个客户机。在某些实施例中,多个上下文流程可以使用不同的密码技术。例如,多个上下文流程可以包括将依据第一组密码操作处理的第一上下文流程以及将依据第二组密码操作处理的第二上下文流程。上下文流程的数目可以根据给定实现的资源量变化,并且各实施例在该意义上不受限制。
在某些实施例中,CCM202可以包括多个元件,诸如客户机接口模块204、调度模块206和CPC接口模块208。模块例如可以包括一个或多个电路、组件、寄存器、处理器、软件子例程和它们的任何组合。虽然CCM202仅包括有限数目的模块,但是应该认识到,CCM202内可以使用任何数量的模块。各实施例在该意义上不受限制。
在某些实施例中,CCM202可以包括客户机接口模块204。一个或多个客户机1至M可以向CCC220发送一密码服务请求。客户机1至M可以通过将一上下文参数或客户机标识符送至客户机接口模块204来启动与CCC220的连接或通信会话。客户机接口模块204可以接收该请求并执行认证操作以确认请求对CCC220的密码服务的访问的客户机的身份。例如可以为每次会话执行一次认证操作。
一旦该客户机被认证,客户机接口模块204可以确定CPC210是否能够为客户机和/或上下文流程执行密码操作。客户机接口模块204可以检索与该客户机相关联的一组客户机资源参数。客户机接口模块204可以检索与CPC210的密码加速器1至N相关联的一组系统资源参数。客户机接口模块204可以确定是否使用客户机资源参数和系统资源参数来为该客户机执行密码操作。
在某些实施例中,客户机资源参数可以包括有助于定义服务该请求所需的资源数量的参数。客户机资源参数的示例可包括客户机带宽参数和上下文参数。客户机带宽参数可以表示该客户机请求的带宽量。所请求的带宽可以包括通常用比特或字节每秒表示的比特率。上下文参数可以表示由客户机请求的操作的类型,诸如加密或解密。上下文参数还可以表示诸如家庭网络、办公室网络、公共网络之类的操作环境。上下文参数还可以表示请求服务的设备的类型,诸如计算机、DVD播放器、游戏控制台、CD播放器等等。客户机资源参数可以嵌入客户机请求。客户机接口模块204还可以从存储在存储器214或218内并与每个客户机相关联的服务级协定(SLA)中检索客户机资源参数。
在某些实施例中,系统资源参数可以包含有助于定义服务该请求可用的资源量的参数。系统资源参数的示例可以包括系统带宽参数、密码带宽参数、存储器带宽参数、可用DMA通道参数、流管理(stream logistics)参数等等。系统资源参数可以经由CPC接口模块208从CPC210中检索。
在某些实施例中,客户机接口模块204可以把与客户机请求相关联的处理要求与可用系统资源进行比较。如果只满足客户机密码需求的一部分,则可以拒绝要服务的请求。如果客户机接口模块204确定CPC210有充足的系统资源可用于服务该请求,那么客户机接口模块204就准许该请求并接纳该上下文流程用于CPC210的处理。上下文流程标识符或客户机标识符可以被送至调度模块206。客户机接口模块204可以发送与被接纳的上下文流程相关联的附加信息,诸如有关密码技术的密钥、比特率等等。例如,客户机接口模块204可以针对一密码技术执行密钥计算。客户机接口模块204可以为每个逻辑扇区或执行上下文执行一次密钥计算。例如,调度模块206可以使用每个被接纳上下文流程的比特率来实时跟踪最后期限。
在某些实施例中,CCM202可以包括调度模块206。调度模块206可以被安排成将多个上下文流程分配给一个或多个密码加速器1至N。调度模块206可以为密码加速器1至N中的每一个生成一时间表以便处理多个上下文流程。调度模块206还可以操作以确保执行上下文是被对准以辅助客户机接口模块204执行密钥计算的逻辑扇区。
在某些实施例中,调度模块206可以从客户机接口模块204接收该被接纳的上下文流程,并把它分配给密码加速器1至N中的一个。一旦被分配,调度模块206就将该上下文流程添加到预备由密码加速器执行的上下文流程列表(“就绪列表”)中。调度模块206可以调度每个上下文流程以供密码加速器处理。密码加速器可以对各上下文流程连续地处理信息块直到一个上下文流程到达终止条件。终止条件可以包括例如预定的执行循环数、上下文流程超时、请求客户机发出的停止指示等等。值得注意的是就绪列表启动针对一密码加速器的全部活动。一旦上下文流程开始接收密码服务,DMA212就可使用DMA中断来确保连续的操作,直到一上下文流程被终止。
在某些实施例中,调度模块206可以负责调度每个上下文流程以供CPC210处理。调度模块206可以根据动态资源分配策略针对每个活动的上下文流程逐块地切换内容、控制和配置。动态资源分配策略包括针对CPC210资源的有效使用的一组规则,从而允许CPC210在每个上下文流程的执行最后期限内处理多个上下文流程,同时还能减小DMA212和密码加速器1至N的等待时间和空闲时间。如下将参考图3至图6详细讨论调度模块206。
在某些实施例中,CCM202可以包括CPC接口模块208。CPC接口模块208被安排成在CCM202和CPC210之间传递各类信息,诸如媒体信息、控制信息、配置信息等等。例如,CPC接口模块208可在调度模块206和CPC210之间传递调度信息。CPC接口模块208还可以监视CPC210的各种系统资源参数,并将这些参数送至客户机接口模块204以供接纳新的上下文流程使用。
在某些实施例中,CCC220可以包括CPC210。CPC210可以是被安排成对多个上下文流程实际执行密码操作的系统。CPC210可以包括DMA212、存储器214和多个密码加速器1至N。虽然仅对CPC210示出了有限数目的元件,但应该认识到,CPC210可以包括附加元件。各实施例在该意义上不受限制。
在某些实施例中,CPC210可以包括存储器214。存储器214可以包括用于CCC220的专用存储器,或者从核心系统存储器218中划分出的存储器段。存储器214可以储存CPC210用于处理来自活动上下文流程的数据块的各类信息,诸如媒体信息、控制信息、用于密码加速器的可执行码、上下文信息、配置信息等等。
在某些实施例中,CPC210可以包括密码加速器1至N。密码加速器1至N可以为不同的上下文流程执行不同组的密码操作。例如,多个密码加速器可以包括第一密码加速器和第二密码加速器,其中第一密码加速器执行第一组密码操作,而第二组密码加速器则执行第二组密码操作。
密码加速器可以使用多种不同的方法来实现。例如,密码加速器可以用硬件(例如,硬布线的门)、软件(例如,微编码的核)或硬件和软件的组合来实现。用于一实施例的适当软件结构的示例可以包括用于处理器或网络处理器的微码、固件、或者为给定硬件体系结构优化的其他低级码。如果密码加速器是用软件实现的并且密码加速器需要载入特定的微码,则应该在启动执行之前完成这一载入。应该在考虑了在各种上下文之间切换所需的载入时间的情况下来实现用于CCM202的调度模块206。
在某些实施例中,CPC210可以包括DMA212。DMA212可以包括DMA控制器以及附带的硬件结构,诸如一个或多个寄存器或缓冲器。DMA212可以依据调度模块206经由CPC接口模块208提供的调度信息安排在存储器214和密码加速器1至N之间的信息块传递。密码加速器1至N可以被安排成使用这些块来执行密码操作。如下将参考图3进一步讨论DMA212。
在一般的操作中,CCC220可以为媒体计算机102的多个上下文流程执行不同组的密码操作。CPC210包括一组独立操作的密码加速器1至N和用于从共享存储器214中拉出/推入所请求的缓冲器和缓冲器描述符的多通道DMA控制器212。CCM202在处理器216上执行并控制进入密码加速器1至N的工作负载流程。处理器216的一个示例是Intel公司生产的XscaleTM(XSC)处理器216。CCM202执行各种类型的密码控制操作,其中之一包括执行知晓上下文的调度以判定哪个上下文流程需要执行以及在哪个密码加速器上执行。因此,CCM202在存储器214中设立一个或多个缓冲器描述符,对用于操作的DMA控制器212进行编程,并且为下一个执行阶段重新配置密码加速器1至N。CCM202还为设立通信会话而接口到各客户机1至M。
更具体地,客户机1至M可以通过为客户机接口模块204提供上下文参数来请求CCC220的服务。客户机接口模块204认证该客户机,并且基于资源的可用性接受或拒绝该请求。一旦上下文流程被接受,调度模块206就向DMA212发出指令以从存储器214中拉出各块,以便将适当的输入数据块、可执行码、内容信息、控制信息和配置信息载入密码加速器1至N。调度模块206随后向密码加速器1至N发出一开始指示以处理输入数据模块。经加密或解密的输出数据块可以经由DMA212推入存储器214。这一基于块的处理一直持续到达到诸如客户机发出一停止指示等终止条件。
在某些实施例中,上下文流程之间的切换由被安排成用最小的松弛度来对活动上下文流程进行优先排列的动态资源分配策略来驱动。动态资源分配策略试图依照Mini{Dni-(Tn+Cki)}来降低活动上下文流程的松弛度,其中松弛度参数基于CPC210的当前配置被计算为上下文流程的实时最后期限和计划完成时间之间的差值。调度模块206以应用于针对上下文流程的速率单调计算的完成百分比为基础,将最后期限和每一轮密码操作相关联。计划完成时间是通过基于配置概况向当前时间添加时间增量来计算的。
如前所述,CCC220逐块服务多个上下文流程。密码加速器可以被配置成使用来自调度模块208的信息来处理存储在存储器214内并经由DMA212传递至适当的密码加速器的输入数据块。密码加速器可以在每个执行循环中使用不同的密码操作来处理不同的块。于是,密码加速器除了输入数据块之外,可能还需载入上下文信息、可执行码、上下文信息、控制信息和配置信息。上下文信息可以包括在通信会话当前执行阶段取得进展所需的来自前一执行阶段的检查点数据。例如,在CBC模式中,当前执行可能需要来自前一密码块的结果以取得进展。类似地,可能需要初始化向量(IV)以开始第一密码块的执行。配置信息可以包括给定执行循环所需的配置参数。可以依据给定密码会话的性能和设计约束来重新配置密码加速器1至N。在能进行当前阶段的执行之前,可以用诸如表示密码操作的类型(例如,加密/解密)、密钥大小(例如,56/64/128/192/256)、密码模式(例如,ECB/CBC/C-CBC/CTR)和密码算法的类型(例如,AES/C2/DES/3DES/CSS/DVB-CSA)的上下文参数等各种配置参数来配置密码加速器。控制空间包括用于特定一组密码操作的算法定义。例如,用于AES的控制空间可被表示为ci=Ek(ci-1+mi),mi=ci-1+Dk(ci)。
如图2所示,系统200可以具有包括共享由n个密码加速器提供的服务的m个客户机的系统体系结构。有2*n个DMA通道来服务n个加速器的并发执行,其中每个密码加速器都具有将输入的数据结构从存储器214中拉出并将输出的数据结构推入存储器214的DMA通道。在某些实施例中,可以有单个密码加速器来服务多个客户机1至M。在另一个实施例中,对每一客户机和/或服务类型都可以有一独立的密码加速器。通常,能以客户机和密码加速器的各种组合来实现系统200以满足设计约束m>=n。
图3示出了系统300。在某些实施例中,系统300例如可以表示DMA212以及在CPC210中使用的附带结构。如图3所示,系统300可以包括连接至DMA控制器304的存储器302。DMA控制器304可以连接至多个硬件缓冲器,诸如各种先进先出(FIFO)缓冲器。例如,DMA控制器304可以连接至输入FIFO(i-FIFO)306、控制FIFO(c-FIFO)308以及输出FIFO(o-FIFO)310。虽然示出了有限数量的元件作为系统300的一部分,但应该认识到,系统300可以包括任何数量的附加元件。各实施例在该意义上不受限制。
在某些实施例中,系统300可以包括DMA控制器304。DMA控制器304能够支持n个同时操作的上下文。用于一上下文流程的输入数据块可以从存储器214中被检索并被存储在i-FIFO 306中。用于一密码加速器并属于一给定上下文流程的可执行码或块可以从存储器214中检索并被存储在c-FIFO 308中。在该密码加速器开始执行阶段之前可从c-FIFO 308中载入可执行码。接着,可从i-FIFO 306中检索密码块单元以保持相应的密码加速器是连续可操作的。经密码加速器处理的输出数据块可以被存储在o-FIFO 310中。一旦完成当前执行阶段的全部计算,输出数据块就从o-FIFO 310移至存储器214。DMA控制器304可以生成DMA中断以通知调度模块206已经达到i-FIFO 306的水印。可将水印编程到描述该数据集并由DMA控制器304解释的缓冲器描述符中。类似地,可以为期望的操作编程生产器缓冲器(例如,用于填充i-FIFO 306)和消费器缓冲器(用于填充o-FIFO 310)的地址以及属于每个DMA通道的控制码。
图4示出了数据结构400。在某些实施例中,数据结构400例如可以表示由系统300使用的数据结构。如图4所示,数据结构400可以包括其内含有软件点402、一组描述符1至Q、DMA设定数据结构404和一组数据块1至L的链表。虽然示出了一组特定的数据结构作为数据结构400的一部分,但可以认识到,数据结构400还可以包括被设计成支持系统300的操作要求的任何数目的不同或附加数据结构。各实施例在该意义上不受限制。
通过假定数据移动器的角色,DMA控制器304可允许密码加速器集中在密码处理上。响应于每个DMA中断,调度模块206可以为密码加速器评估当前活动的上下文流程的就绪列表,并标识执行循环的新工作量。由于调度模块206的动态属性,上下文流程在它的持续时间内可使用不同的密码加速器。数据结构400可以说明在存储器214内用于支持数据流的数据结构。对于每个上下文流程,DMA控制器304可以被编程为评估使用存储器214内的链表数据结构链接在一起的分段数据块1至L。取决于给定实现,输入和输出数据可以是同一链表的一部分,或是独立的列表。当数据块1至L移入DMA控制器304的i-FIFO 306时,清除链表中的相应节点或链接并调整剩余的链接。类似地,在调度模块206的更新阶段,可以从链表中提取输出数据块。从DMA控制器304的o-FIFO 310中检索输出数据块可以与相应输入通道生成的中断事件同步。DMA控制器304具有在输入和输出通道上对每个上下文流程的比特率进行监控的工具。这一信息可以覆盖默认的比特率规范,并且调度模块206可以在估计阶段使用该信息来做出流程控制判定。将在随后进一步讨论调度模块206的各种操作阶段。
在某些实施例中,调度模块206通过连续循环包括更新阶段、估计阶段和调度阶段的三个操作阶段来维持CPC210的数据流程。响应于DMA中断事件或非空就绪列表,调度模块206首先发现DMA通道以及密码加速器的状态。在更新阶段,调度模块206更新每个密码加速器就绪列表上每个上下文流程的最后期限和当前时间偏移量。在估计阶段,调度模块206估计活动上下文流程以确定需要服务的下一个上下文流程。这可以通过计算就绪上下文流程的松弛度来实现。在调度阶段,调度模块206在存储器214内设立缓冲器描述符数据结构,并编程DMA控制器304以及相应的密码加速器。
图5示出了数据结构500。在某些实施例中,数据结构500例如可以表示由系统300使用的数据结构。如图5所示,数据结构500可以包括其内含有调度模块206的初始化期间以及调度模块206的操作阶段的当前节点和下一个节点的链表。虽然示出了一组特定的数据结构作为数据结构500的一部分,但可以认识到,数据结构500还可以包括被设计成支持系统300的操作要求的任何数目的不同或附加数据结构。各实施例在该意义上不受限制。
如图5所示,调度模块206的初始化包括将当前和下一个数据结构设为空。在客户机加入或离开CCC220时,相应地更新每个密码加速器的就绪列表。最后期限的计算由上下文流程的比特率驱动,而计划完成时间则通过向当前时间添加估计出的块等待时间来计算。这一启发式算法类似退化的时间轮,并且是以该上下文流程几乎不会满足其最后期限要求,该上下文流程需要现在运行而其他上下文能够等待的概念为基础。在处理当前队列内的事件之后,下一个数据结构就成为当前,而新的下一个数据结构则被创建。调度算法可以是异步的,因为调度模块206可以响应于异步事件来执行调度。当没有事件时,调度模块206可以保持在等待模式或执行诸如更新统计信息等维护操作,由此降低处理器216的处理负载。
随后将参考下列各附图和所附示例对上述系统的操作进行进一步描述。部分附图可以包括编程逻辑。虽然在此呈现的这些附图可以包括特定的编程逻辑,但可以认识到,该编程逻辑仅提供在此描述的一般功能如何实现的一个示例。此外,除非另有说明,否则无需按示出的次序执行给定的编程逻辑。另外,虽然给定的编程逻辑在此可被描述为在上述模块中的实现,但可以认识到,编程逻辑可以在系统内的任何地方实现,并且仍然落入各实施例的范围内。
图6示出了框图流程图600。图6示出的框图流程图600表示了由在此描述的诸如系统100至300等一个或多个系统所执行的各项操作。如框图流程图600所示,在框602处可接收对上下文流程执行密码操作的请求。在框604处,做出是否接受该请求的判断。在框606处,如果该请求被接受,则将该上下文流程分配给多个密码加速器中的一个。在框608处,可以调度该上下文流程以供密码加速器处理。在框610处,密码加速器可以根据以上调度执行针对该上下文流程的密码操作。
在某些实施例中,框604处的判断可以通过接收与上下文流程相关联的客户机的客户机标识符来执行。客户机可以使用客户机标识符来认证。还可以检索与客户机相关联的一组客户机资源参数以及与密码加速器相关联的一组系统资源参数。关于是否对客户机执行密码操作的判断可以使用该客户机资源参数以及系统资源参数来做出。
在某些实施例中,框610处的执行可以通过生成关于上下文流程的信息块来实现,其中信息块包括输入数据、控制信息、上下文信息和配置信息。密码加速器可以根据控制信息、上下文信息和配置信息来配置。输入数据可以使用所配置的密码加速器来处理。
图7示出了框图流程图700。图7示出的框图流程图700表示了由在此描述的诸如系统100至300等一个或多个系统所执行的框608中的调度操作。如框图流程图700所示,在框702处,通过将上下文流程添加至密码加速器的上下文流程列表来执行框608处的调度。在框704处,可以更新每个上下文流程和密码加速器的状态信息。框704例如可以对应于调度算法的更新阶段。在框706处,可以选择由密码加速器服务的上下文流程。在框708处,可以调度处理该上下文流程的时间。框708例如可以对应于调度算法的调度阶段。
已经在此阐明了多个具体细节以提供对各实施例的全面理解。然而本领域普通技术人员应该理解,无需这些具体细节也可实践本发明。在其他实例中,未对公知的操作、组件和电路做出详尽描述从而防止淡化了本发明的主题。可以认识到,在此公开的具体结构和功能细节只是代表性的,并且不必限制各实施例的范围。
值得注意的是,在说明书中对“某些实施例”或“一个实施例”的任何参考指的是结合该实施例描述的特定特征、结构或性能包括在至少某些实施例中。出现在说明书各处的短语“在一个实施例中”无需全部指代同一实施例。
可以使用根据任何数量的因素变化的体系结构来事先一实施例的全部或部分,其中这些因素诸如期望的计算速率、功率水平、耐热性、处理循环预算、输入数据速率、输出数据速率、存储器资源、数据总线速度和其他性能约束等。例如,可以使用由处理器执行的软件来实现一个实施例。在另一个实施例中,可使用诸如电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、DSP等的专用硬件来实现一实施例。在又一个实施例中,可使用编程的通用计算机组件和自定义硬件组件的任何组合来实现一个实施例。各实施例在该意义上不受限制。
权利要求
1.一种方法,包括接收为上下文流程执行密码操作的请求;确定是否接受所述请求;如果所述请求被接受,将所述上下文流程分配给多个密码加速器中的一个;调度所述上下文流程以供所述密码加速器处理;以及根据所述调度由所述密码加速器对所述上下文流程执行所述密码操作。
2.如权利要求1所述的方法,其特征在于,所述确定包括接收与所述上下文流程相关联的客户机的客户机标识符;使用所述客户机标识符认证所述客户机;检索与所述客户机相关联的一组客户机资源参数以及与所述密码加速器相关联的一组系统资源参数;以及确定是否使用所述客户机资源参数和所述系统资源参数来为所述客户机执行所述密码操作。
3.如权利要求1所述的方法,其特征在于,所述调度包括将所述上下文流程添加至所述密码加速器的上下文流程列表;更新关于每个上下文流程和所述密码加速器的状态信息;选择将由所述密码加速器服务的上下文流程;以及调度用于处理所述上下文流程的时间。
4.如权利要求3所述的方法,其特征在于,所述选择所述上下文流程包括为每个上下文流程生成松弛度参数;以及使用所述松弛度参数选择所述上下文流程。
5.如权利要求1所述的方法,其特征在于,所述执行包括为所述上下文流程生成一信息块,所述信息块包括输入数据、控制信息、上下文信息和配置信息;用所述控制信息、上下文信息和配置信息配置所述密码加速器;以及使用所述配置的密码加速器处理所述输入数据。
6.一种装置,包括被安排成为多个上下文流程执行密码操作的密码处理集合体;连接至所述密码处理集合体的密码上下文管理器,所述密码上下文管理器管理所述密码处理集合体对所述多个上下文流程的执行。
7.如权利要求6所述的装置,其特征在于,所述密码上下文管理器包括客户机接口模块,用于接收来自客户机的为上下文流程执行密码操作的请求、认证所述客户机、以及确定所述密码处理集合体是否能够为所述客户机和所述上下文流程执行所述密码操作。
8.如权利要求6所述的装置,其特征在于,所述密码处理集合体包括多个密码加速器,且所述密码上下文管理器包括调度模块,用于将所述多个上下文流程分配给一个或多个密码处理器,并为每个密码加速器生成用于处理所述多个上下文流程的时间表。
9.如权利要求6所述的装置,其特征在于,所述密码上下文管理器包括密码处理集合体接口模块,所述密码处理集合体接口在所述密码上下文管理器和所述密码处理集合体之间传递调度信息。
10.如权利要求6所述的装置,其特征在于,所述多个上下文流程包括将依据第一组密码操作处理的第一上下文流程,以及将依据第二组密码操作处理的第二上下文流程。
11.如权利要求10所述的装置,其特征在于,所述密码处理集合体包括多个密码加速器,所述多个密码加速器包括第一密码加速器和第二密码加速器,其中所述第一密码加速器执行所述第一组密码操作,而所述第二密码加速器执行所述第二组密码操作。
12.如权利要求6所述的装置,其特征在于,所述密码处理集合体包括直接存储器访问控制器、多个密码加速器和存储器,其中所述直接存储器访问控制器在所述存储器和所述密码加速器之间传递信息块,而所述密码加速器使用所述块来执行密码操作。
13.如权利要求10所述的装置,其特征在于,所述直接存储器访问控制器包括输入数据缓冲器、输入控制缓冲器和输出数据缓冲器,其中所述直接存储器访问控制器从所述存储器中检索上下文流程的输入数据块并将其存储在所述输入数据缓冲器中、从所述存储器中检索密码加速器用于处理所述输入数据块的可执行块并将其存储在所述输入控制缓冲器中、以及从所述密码加速器中检索输出数据块并将其存储在所述输出数据缓冲器中。
14.一种系统,包括生成对多个上下文流程的密码操作的多个请求的至少一个客户机;以及操作上响应于所述客户机的密码上下文控制器,所述密码上下文控制器包括被安排成为所述多个上下文流程执行所述密码操作的密码处理集合体;以及管理所述密码处理集合体对所述多个上下文流程的执行的密码上下文管理器。
15.如权利要求14所述的系统,其特征在于,所述客户机包括条件访问代理、数字传输控制协议代理、数字视频盘代理和本地存储代理中的一种。
16.如权利要求14所述的系统,其特征在于,所述系统包括一个客户机,其中所述一个客户机将所述多个上下文流程发送至所述密码上下文控制器。
17.如权利要求14所述的系统,其特征在于,所述系统包括多个客户机,其中每个客户机将一个或多个上下文流程发送至所述密码上下文控制器。
18.如权利要求14所述的系统,其特征在于,所述密码上下文管理器包括客户机接口模块,用于接收来自所述客户机的为上下文流程执行密码操作的请求、认证所述客户机、以及确定所述密码处理集合体是否能够为所述客户机和所述上下文流程执行所述密码操作。
19.如权利要求14所述的系统,其特征在于,所述密码处理集合体包括多个密码加速器,且所述密码上下文管理器包括调度模块,用于将所述多个上下文流程分配给一个或多个密码加速器,并为每个密码加速器生成用于处理所述多个上下文流程的调度表。
20.如权利要求14所述的系统,其特征在于,所述密码上下文管理器包括密码处理集合体接口模块,所述密码处理集合体接口在所述密码上下文管理器和所述密码处理集合体之间传递调度信息。
21.如权利要求14所述的系统,其特征在于,所述多个上下文流程包括依据第一组密码操作要处理的第一上下文流程,以及依据第二组密码操作要处理的第二上下文流程。
22.如权利要求21所述的系统,其特征在于,所述密码处理集合体包括多个密码加速器,所述多个密码加速器包括第一密码加速器和第二密码加速器,其中所述第一密码加速器执行所述第一组密码操作,而所述第二密码加速器执行所述第二组密码操作。
23.如权利要求14所述的系统,其特征在于,所述密码处理集合体包括直接存储器访问控制器、多个密码加速器和存储器,其中所述直接存储器访问控制器在所述存储器和所述密码加速器之间传递信息块,而所述密码加速器使用所述块来执行密码操作。
24.一种物品,包括存储介质;所述存储介质包括存储的指令,所述指令在由处理器执行时可用于确定是否接受为上下文流程执行密码操作的请求、如果所述请求被接受则将所述上下文流程分配给多个密码加速器中的一个、调度所述上下文流程以供所述密码加速器处理、以及根据所述调度由所述密码加速器对所述上下文流程执行所述密码操作。
25.如权利要求24所述的物品,其特征在于,所述存储的指令在由处理器执行时使用存储的指令执行所述确定,可操作用于接收与所述上下文流程相关联的客户机的客户机标识符、使用所述客户机标识符认证所述客户机、检索与所述客户机相关联的一组客户机资源参数以及与所述密码加速器相关联的一组系统资源参数、以及确定是否使用所述客户机资源参数和所述系统资源参数来为所述客户机执行所述密码操作。
26.如权利要求24所述的物品,其特征在于,所述存储的指令在由处理器执行时使用存储的指令执行所述调度,可操作用于将所述上下文流程添加至所述密码加速器的上下文流程列表、更新关于每个上下文流程以及所述密码加速器的状态信息、选择将由所述密码加速器服务的上下文流程、以及调度用于处理所述上下文流程的时间。
27.如权利要求26所述的物品,其特征在于,所述存储的指令在由处理器执行时使用存储的指令执行所述选择,可操作用于为每个上下文流程生成松弛度参数,并且使用所述松弛度参数来选择所述上下文流程。
28.如权利要求24所述的物品,其特征在于,所述存储的指令在由处理器执行时使用存储的指令执行所述密码操作,可操作用于为所述上下文流程生成一信息块,所述信息块包括输入数据、控制信息、上下文信息和配置信息;用所述控制信息、上下文信息和配置信息配置所述密码加速器;以及使用所述配置的密码加速器来处理所述输入数据。
全文摘要
描述了系统用于为多个客户机执行密码操作的方法和装置。接收为上下文流程执行密码操作的请求。做出是否接受该请求的判断。如果请求被接受,则将该上下文流程分配给多个密码加速器中的一个。该上下文流程可被调度以供密码加速器处理。根据上述调度可由密码加速器对该上下文流程执行密码操作。
文档编号G06F15/80GK1965557SQ200580019008
公开日2007年5月16日 申请日期2005年5月13日 优先权日2004年6月14日
发明者R·內奥吉 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1