• 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
    • / 25
    • 下载费用:30 金币  

    重庆时时彩五星作弊器: 能够进行并发数据操纵的DMA引擎.pdf

    关 键 词:
    能够 进行 并发 数据 操纵 DMA 引擎
      专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    摘要
    申请专利号:

    CN201010185538.6

    申请日:

    2010.05.19

    公开号:

    CN102193886A

    公开日:

    2011.09.21

    当前法律状态:

    终止

    有效性:

    无权

    法律详情: 未缴年费专利权终止IPC(主分类):G06F 13/28申请日:20100519授权公告日:20140730终止日期:20170519|||专利权的转移IPC(主分类):G06F 13/28变更事项:专利权人变更前权利人:LSI公司变更后权利人:安华高科技通用IP(新加坡)公司变更事项:地址变更前权利人:美国加利福尼亚变更后权利人:新加坡新加坡市登记生效日:20150820|||授权|||实质审查的生效IPC(主分类):G06F 13/28申请日:20100519|||公开
    IPC分类号: G06F13/28 主分类号: G06F13/28
    申请人: LSI公司
    发明人: G·皮奇里洛; D·M·奥尔森
    地址: 美国加利福尼亚
    优先权: 2010.03.05 US 12/718,279
    专利代理机构: 中国国际贸易促进委员会专利商标事务所 11038 代理人: 申发振
    PDF完整版下载: PDF下载
    法律状态
    申请(专利)号:

    CN201010185538.6

    授权公告号:

    ||||||102193886B||||||

    法律状态公告日:

    2018.06.08|||2015.09.09|||2014.07.30|||2013.04.10|||2011.09.21

    法律状态类型:

    专利权的终止|||专利申请权、专利权的转移|||授权|||实质审查的生效|||公开

    摘要

    本公开涉及能够进行并发数据操纵的DMA引擎。公开了在通过以DMA控制器/引擎管理的DMA通道传输的数据上并发地执行多个数据操纵操作的方法和设备??梢杂蒁MA控制器获取控制从何处检索数据、将数据传递到何处和如何执行多个数据操纵操作的控制数据块(CDB)。工作于DMA控制器内的CDB处理器可以读取CDB,并根据CDB的内容建立数据读、数据操纵操作和数据写。数据被从一个或更多个源提供,并且数据/修改后的数据可被传递到一个或更多个目的地。在数据被通过DMA控制器传递时,DMA控制器可以对数据并发地执行多个数据操纵操作。执行数据操纵操作的数据修改引擎可实现在DMA控制器上,从而在数据操纵操作过程中使用本地RAM以避免在数据操纵操作过程中访问外部存储器。

    权利要求书

    1.一种对通过直接存储器访问DMA通道传输的数据执行多个数据操纵操作的方法,所述DMA通道由DMA控制器管理,该方法包括以下步骤:在所述DMA控制器内提供多个数据操纵引擎,每个数据操纵引擎执行各种数据操纵操作中的至少一种;由所述DMA控制器获取控制数据块CDB,所述CDB包含用于从至少一个数据源读数据、对所述数据执行所述多个数据操纵操作、以及将所述数据写到至少一个目的地的指令;由所述DMA控制器根据编码在所述CDB内的所述指令从至少一个数据源检索所述数据;根据编码在所述CDB内的所述指令,使用为每种数据操纵操作在所述DMA控制器上提供的所述多个数据操纵引擎之一,在所述DMA控制器中对由所述DMA控制器接收的所述数据执行所述多个数据操纵操作中的每个数据操纵操作,从而由所述DMA控制器并发地执行所述多个数据操纵操作中的至少两个;和根据编码在所述CDB内的所述指令,由所述DMA控制器将所述多个数据操纵操作的结果发送到至少一个目的地。2.如权利要求1所述的方法,其中所述从所述至少一个数据源检索所述数据的步骤进一步包括:根据编码在所述CDB内的所述指令,在所述DMA控制器内创建读命令,以便从所述至少一个数据源读取所述数据;将所述读命令从所述DMA控制器发送到所述至少一个数据源;和在所述DMA控制器处接收由所述至少一个数据源根据所述读命令发送的来自所述至少一个数据源的所述数据。3.如权利要求1所述的方法,其中所述将所述多个数据操纵操作的所述结果发送到至少一个目的地的步骤进一步包括:根据编码在所述CDB内的所述指令,在所述DMA控制器内创建写命令,以便将所述多个数据操纵操作的所述结果写到所述至少一个目的地;和根据所述写命令,由所述DMA控制器将所述多个数据操纵操作的所述结果发送到所述至少一个目的地。4.如权利要求1所述的方法,还包括以下步骤:将由所述DMA控制器检索到的所述数据存储在本地地包括在所述DMA控制器内的电子存储器内。5.如权利要求1所述的方法,还包括以下步骤:将所述多个数据操纵操作的所述结果存储在本地地位于所述DMA内的电子存储器内。6.如权利要求1所述的方法,其中所述多个数据操纵引擎中的每个数据操纵引擎执行一组数据操纵操作中的至少一个数据操纵操作,所述一组数据操纵操作包括:散列、散列消息鉴别码HMAC、散列/HMAC组合、填充模式、线性反馈移位寄存器LFSR、端到端数据?;EDP检查、EEDP添加、EEDP更新、EEDP去除、异或XOR、加密和解密。7.如权利要求1所述的方法,其中使用为每个数据操纵操作在所述DMA控制器上提供的所述多个数据操纵引擎之一,对由所述DMA控制器接收的所述数据执行所述多个数据操纵操作中的每个数据操纵操作的步骤进一步包括:所述多个数据操纵引擎中的第一数据操纵引擎创建第一数据结果,第一数据结果用作所述多个数据操纵引擎中的第二数据操纵引擎的计算的基础,以便执行所述多个数据操纵操作中的至少一个数据操纵操作。8.如权利要求1所述的方法,其中所述多个数据操纵引擎包括至少两个单一类型的数据操纵操作,从而能够在所述DMA控制器上并发地执行所述单一类型的数据操纵操作。9.如权利要求1所述的方法,其中所述将所述多个数据操纵操作的所述结果发送到至少一个目的地的步骤还将由所述DMA控制器检索到的原始数据发送到所述至少一个数据目的地。10.一种直接存储器访问DMA控制器,该DMA控制器对通过直接存储器访问DMA通道传输的数据执行多个数据操纵操作,所述DMA通道由所述DMA控制器管理,所述DMA控制器包括:控制数据块CDB处理器子系统,该CDB处理器子系统获取控制数据块CDB,所述CDB包含用于从至少一个数据源读数据、对所述数据执行所述多个数据操纵操作、以及将所述数据写到至少一个目的地的指令;填充子系统,该填充子系统根据编码在所述CDB内的所述指令从至少一个数据源检索所述数据;所述DMA控制器内的多个数据操纵引擎,每个数据操纵引擎根据编码在所述CDB内的所述指令,对由填充子系统接收的所述数据执行针对所述多个数据操纵操作中的每个数据操纵操作的各种数据操纵操作中的至少一种,从而由所述DMA控制器并发地执行所述多个数据操纵操作中的至少两个;和排出子系统,排出子系统根据编码在所述CDB内的所述指令,将所述多个DMA控制器的结果发送到至少一个目的地。11.如权利要求10所述的DMA控制器,其中所述填充子系统通过根据编码在所述CDB内的所述指令创建读命令来从所述至少一个数据源读取所述数据,将所述读命令发送到所述至少一个数据源,以及接收由所述至少一个数据源根据所述读命令发送的来自所述至少一个数据源的所述数据,而从所述至少一个数据源检索所述数据。12.如权利要求10所述的DMA控制器,其中所述排出子系统通过根据编码在所述CDB内的所述指令创建写命令来将所述多个数据操纵操作的所述结果写到所述至少一个目的地,以及根据所述写命令将所述多个数据操纵操作的所述结果发送到所述至少一个目的地,而将所述多个数据操纵操作的所述结果发送到至少一个目的地。13.如权利要求10所述的DMA控制器,还包括存储由所述填充子系统检索到的所述数据的源数据存储设备,所述源数据存储设备是本地地包括在所述DMA控制器内的电子存储器。14.如权利要求10所述的DMA控制器,还包括存储所述多个数据操纵操作的所述结果的至少一个修改数据存储设备,所述至少一个修改数据存储设备是本地地包括在所述DMA内的电子存储器。15.如权利要求10所述的DMA控制器,其中所述多个数据操纵引擎中的每个数据操纵引擎执行一组数据操纵操作中的至少一个数据操纵操作,所述一组数据操纵操作包括:散列、散列消息鉴别码HMAC、散列/HMAC组合、填充模式、线性反馈移位寄存器LFSR、端到端数据?;EDP检查、EEDP添加、EEDP更新、EEDP去除、异或XOR、加密和解密。16.如权利要求10所述的DMA控制器,其中所述多个数据操纵引擎中的第一数据操纵引擎创建第一数据结果,第一数据结果用作所述多个数据操纵引擎中的第二数据操纵引擎的计算的基础,以便执行所述多个数据操纵操作中的至少一个数据操纵操作。17.如权利要求10所述的DMA控制器,其中所述多个数据操纵引擎包括至少两个单一类型的数据操纵操作,从而能够在所述DMA控制器上并发地执行所述单一类型的数据操纵操作。18.如权利要求10所述的DMA控制器,其中所述排出子系统还将由所述DMA控制器检索到的原始数据发送到所述至少一个数据目的地。19.一种直接存储器访问DMA控制器,该DMA控制器对通过直接存储器访问DMA通道传输的数据执行多个数据操纵操作,所述DMA通道由所述DMA控制器管理,所述DMA控制器包括:用于在所述DMA控制器内提供多个数据操纵引擎的装置,每个数据操纵引擎执行各种数据操纵操作中的至少一种;用于由所述DMA控制器获取控制数据块CDB的装置,所述CDB包含用于从至少一个数据源读数据、对所述数据执行所述多个数据操纵操作、以及将所述数据写到至少一个目的地的指令;用于由所述DMA控制器根据编码在所述CDB内的所述指令从至少一个数据源检索所述数据的装置;用于根据编码在所述CDB内的所述指令使用为每种数据操纵操作在所述DMA控制器上提供的所述多个数据操纵引擎之一在所述DMA控制器中对由所述DMA控制器接收的所述数据执行所述多个数据操纵操作中的每个数据操纵操作的装置,从而由所述DMA控制器并发地执行所述多个数据操纵操作中的至少两个;和用于由所述DMA控制器根据编码在所述CDB内的所述指令将所述多个数据操纵操作的结果发送到至少一个目的地的装置。

    说明书

    能够进行并发数据操纵的DMA引擎

    技术领域

    本发明涉及直接存储器访问(DMA),更具体地涉及能够进行并发数据操纵的DMA引擎。

    背景技术

    直接存储器访问(DMA)是现代计算机的一种基本特征。DMA允许计算机的特定硬件子系统能够独立于中央处理单元(CPU)读访问和/或写访问系统存储器??梢允褂肈MA的某些示例硬件系统包括但不限于硬盘驱动器控制器、芯片上的RAID(独立磁盘冗余阵列)(ROC)控制器、图形卡、网卡和声卡。DMA还可用于多核心处理器上的芯片内数据传输。通常由DMA控制器执行DMA通道的管理和实现。很多时候DMA控制器配备有本地存储器,从而DMA控制器向/从本地DMA存储器和外部主存储器传输数据。由于DMA控制器而不是CPU管理数据传输,使用DMA的数据传输使用很少的计算机CPU处理时间,因此增加了具有DMA控制器的计算机的有效计算能力。不使用DMA,与外设的通信或多核心系统的核心之间的通信可能在整个读/写操作过程中完全占据CPU,这使得CPU不能用于执行其它计算任务。使用DMA,CPU可以启动传输,并且然后在进行传输的同时进行其它操作,并且一旦操作完成,从DMA控制器接收中断。因为与外设通信通常比与常规系统随机访问存储器(RAM)慢,从而如果不使用由DMA控制器管理的DMA通道,在与外设通信过程中不能使用CPU的时间将会更长,所以CPU摆脱执行与外设的数据传输尤其重要。

    典型的DMA传输将一个存储器块从一个设备拷贝到另一个设备。CPU启动数据传输,但是CPU自身不执行数据传输。对于工业标准体系结构(ISA)总线,由DMA控制器执行数据传输,DMA控制器通常被结合为计算机主板芯片组的一部分。外设组件互连(PCI)总线使用总线主控DMA,其中外设接管总线控制并且自己执行传输。

    嵌入式处理器可以在芯片内包括DMA引擎/控制器,以便允许处理元件发起数据传输,同时在数据传输期间继续执行其它任务。当DMA控制器被结合在芯片内时,DMA控制器通常被称为DMA引擎。嵌入多核心的处理器通常包括一个或更多个DMA引擎和本地DMA存储器的组合作为芯片多核心处理器芯片内的子系统。

    发明内容

    本发明的实施例可以包括一种对通过直接存储器访问(DMA)通道传输的数据执行多个数据操纵操作的方法,所述DMA通道由DMA控制器管理。该方法包括以下步骤:在DMA控制器中提供多个数据操纵引擎,每个数据操纵引擎执行各种数据操纵操作中的至少一种;由DMA控制器获取控制数据块(CDB),CDB包含用于从至少一个数据源读数据、对该数据执行多个数据操纵操作、以及将数据写到至少一个目的地的指令;由DMA控制器根据编码在CDB内的指令从至少一个数据源检索数据;根据编码在CDB内的指令,使用为每种数据操纵操作在DMA控制器上提供的多个数据操纵引擎之一在DMA控制器中对由DMA控制器接收的数据执行多个数据操纵操作中的每个数据操纵操作,从而由DMA控制器并发地执行多个数据操纵操作中的至少两个;和根据编码在CDB内的指令,由DMA控制器将多个数据操纵操作的结果发送到至少一个目的地。

    本发明的实施例还可以包括一种直接存储器访问(DMA)控制器,该DMA控制器对通过直接存储器访问(DMA)通道传输的数据执行多个数据操纵操作,所述DMA通道由DMA控制器管理。该DMA控制器包括:控制数据块(CDB)处理器子系统,该CDB处理器子系统获取控制数据块(CDB),CDB包含用于从至少一个数据源读数据、对数据执行多个数据操纵操作、以及将数据写到至少一个目的地的指令;填充子系统,该填充子系统根据编码在CDB内的指令从至少一个数据源检索数据;DMA控制器内的多个数据操纵引擎,每个数据操纵引擎根据编码在CDB内的指令,对由填充子系统接收的数据执行针对多个数据操纵操作中的每个数据操纵操作的各种数据操纵操作中的至少一种,从而由DMA控制器并发地执行多个数据操纵操作中的至少两个;和排出子系统,排出子系统根据编码在CDB内的指令,将多个DMA控制器的结果发送到至少一个目的地。

    本发明的实施例还可以包括一种直接存储器访问(DMA)控制器,该DMA控制器对通过直接存储器访问(DMA)通道传输的数据执行多个数据操纵操作,所述DMA通道由所述DMA控制器管理。所述DMA控制器包括:用于在DMA控制器内提供多个数据操纵引擎的装置,每个数据操纵引擎执行各种数据操纵操作中的至少一种;用于由DMA控制器获取控制数据块(CDB)的装置,CDB包含用于从至少一个数据源读数据、对该数据执行多个数据操纵操作、以及将数据写到至少一个目的地的指令;用于由DMA控制器根据编码在CDB内的指令从至少一个数据源检索数据的装置;用于根据编码在CDB内的指令使用为每种数据操纵操作在DMA控制器上提供的多个数据操纵引擎之一在DMA控制器中对以DMA控制器接收的数据执行多个数据操纵操作中的每个数据操纵操作的装置,从而由DMA控制器并发地执行多个数据操纵操作中的至少两个;和用于由DMA控制器根据编码在CDB内的指令将多个数据操纵操作的结果发送到至少一个目的地的装置。

    附图说明

    在附图中:

    图1是具有被根据控制数据块(CDB)管理的多个数据修改引擎的直接存储器访问(DMA)控制器系统的实施例的框图;

    图2是具有端到端数据?;?EEDP)检查和更新周期的DMA控制器系统的实施例的框图;

    图3是对数据加密并且执行端到端数据?;?EEDP)检查的DMA控制器系统的实施例的框图;

    图4是对数据加密并且具有端到端数据?;?EEDP)检查和更新周期的DMA控制器系统的实施例的框图;

    图5是对数据加密、对数据执行异或(XOR)、并且执行端到端数据?;?EEDP)检查的DMA控制器系统的实施例的框图;

    图6是对数据加密、对数据执行异或(XOR)、并且具有端到端数据?;?EEDP)检查和更新周期的DMA控制器系统的实施例的框图;

    图7是对数据执行异或(XOR)、并且具有端到端数据?;?EEDP)检查和更新周期的DMA控制器系统的实施例的框图;

    图8是包括DMA引擎/控制器的芯片上的RAID(独立磁盘冗余阵列)(ROC)系统的实施例的框图;

    图9是DMA控制器的实施例的控制数据块(CDB)处理的实施例的框图;

    图10是CDB处理器实施例的CDB处理的有限状态机(FSM)操作的框图。

    具体实施方式

    随着现代计算机系统变得更为复杂,期望对在计算机系统内传输的数据和被传输到连接到计算机系统的外设的数据执行附加的数据操纵操作。例如,作为RAID(独立磁盘冗余阵列)(ROC)系统操作的一部分,可以期望芯片上的ROC系统对正被传输的数据执行若干数据操纵操作。ROC系统通常包括直接存储器访问(DMA)引擎/控制器作为ROC体系结构内的子系统。某些典型的数据操纵操作包括:散列、散列消息鉴别码(HMAC)、散列/HMAC组合、填充模式、线性反馈移位寄存器(LFSR)、端到端数据?;?EEDP)检查/添加/更新/去除、异或(XOR)、加密和解密。一个实施例的DMA引擎/控制器可以合并对在DMA引擎/控制器内传输的数据执行的各种数据操纵操作,以便减少对计算机系统内的其它系统/子系统的处理要求。另外,一个实施例的DMA引擎/控制器可以并发地对正被传输的数据执行多种数据操纵,从而比以串行方式每次一个地执行多个数据操纵操作更快地执行多种数据操纵。因此,一个实施例允许以尽可能少的中断将数据自由地从源移动到目的地。对正被一个实施例的DMA引擎/控制器传输的数据执行的数据操纵操作还可以在位于DMA引擎/控制器的存储器内存储和检索数据/修改后的数据(即,本地存储器),从而避免访问DMA引擎/控制器之外的存储器(即,外部存储器)的不必要的开销。

    例如,一个实施例的DMA引擎/控制器可以使用DMA引擎/控制器上的加密引擎加密并且在位于本地DMA存储器内的第一数据存储器内存储数据。在加密数据被置于第一数据缓冲器内的同时,DMA引擎/控制器上的XOR引擎可以对加密数据并发地执行XOR操作,并且在位于本地DMA存储器内的第二数据缓冲器内存储XOR数据,而不会对到第一数据缓冲器的加密数据的数据流产生任何中断。通过在产生加密数据的同时对加密数据执行XOR操作,一个实施例可以避免在执行XOR操作之前等待加密数据被完整写入数据缓冲器的延迟。另外,一个实施例的DMA引擎/控制器还可以与加密和XOR数据操纵操作并行地执行EEDP检查、添加和/或去除操作,从而进一步减少在正被DMA引擎/控制器传输的数据上执行多个数据操纵操作所涉及的延迟。

    可以在具有DMA引擎/控制器的各种计算机系统和电子设备中的DMA引擎/控制器上实现各种实施例。如果希望,如果需要多个DMA通道,计算机系统和/或电子设备可以包括多个DMA引擎/控制器。另外,某些DMA引擎/控制器可以提供多个DMA通道,从而在系统中包括多个DMA引擎/控制器导致乘法器效果,其中可获得的DMA通道的数目是DMA引擎/控制器的数目乘以每个DMA引擎/控制器上可获得的DMA通道的数目。一个实施例的DMA控制器可被实现为单独系统,这些单独系统可被作为单独的专用计算机“卡”、单独的专用芯片或作为单独的专用电子设备结合在计算机系统和/或电子设备内。然而,DMA控制器通常被结合为集成在计算机系统或电子设备内的较大多功能芯片、卡或电路的子系统或引擎。因此,一个实施例的DMA控制器可被实现为被包括在较大多功能芯片、卡或电路内的DMA引擎子系统。通常,当DMA控制器被作为较大多功能芯片、卡或电路的子系统包括时,DMA控制器被称为DMA引擎。因此,在本文档中,术语DMA控制器和DMA引擎被可互换地使用,从而当指代DMA控制器时也指代DMA引擎,并且反之亦然。

    图1是具有被根据控制数据块(CDB)120管理的多个数据修改引擎110-112的DMA控制器系统106的实施例的框图100。在图1所示的实施例中,由DMA控制器/引擎106在DMA控制器106的CDB处理器122子系统处获取和接收CDB120。CDB处理器子系统122在DMA控制器106上操作,并且被实现为DMA控制器106的一部分。CDB包含用于数据传输的指令,且包括正被传输/修改的数据的一个或更多数据源102-104、希望对正被传输的数据进行的数据操纵操作、和正被传输的数据的一个或更多数据目的地116-118。CDB处理器122读取编码在CDB120内的指令,并且根据编码在CDB120内的指令指挥DMA控制器106建立并且进行数据传输?;贑DB,DMA控制器106可以准备并且向一个或更多数据源102-104发出读命令,以便使得一个或更多数据源102-104向DMA控制器106发送所希望的数据。来自一个或更多数据源102-104的数据被DMA控制器106接收,并且被存储在位于DMA控制器106上的源数据存储设备108内?;贑DB120,DMA控制器106可以选择多个数据修改引擎110-112,以便对正被通过DMA控制器106传输的数据执行所希望的数据修改操作。来自数据修改引擎110-112的结果数据可被直接传递到数据目的地116-118,或结果数据可被存储在位于DMA控制器106上的修改数据存储设备114内。存储在DMA控制器106的修改数据存储设备114内的来自数据修改引擎110-112的结果数据可被其它数据修改引擎110-112或原始数据修改引擎(例如,执行与过去结果相关的操作的数据修改引擎)使用,从而可由数据修改引擎110-112读/写修改数据存储设备114。一旦完成了所希望的数据修改操作,DMA控制器可将数据/修改后的数据传递到所希望的数据目的地116-118。在某些情况下,数据修改引擎110-112的结果可被仅仅作为由其它数据修改引擎110-112使用的中间结果。根据编码在CDB120中的指令实现数据修改引擎110-112的配置,以及从数据修改引擎110-112传递哪些结果数据。

    对于一个实施例,一个或更多数据源102-104可以是与典型的DMA控制器/引擎106兼容的任何数据源102-104。一个实施例可以从单个数据源102或从多个数据源102-104收集/读取数据。例如,可以从外部存储器(即,DMA控制器106之外的存储器)读取来自单个存储器区域的源数据,并且将其传输到各种数据目的地116-118。类似地,可以从外部读取来自多个存储器区域的源数据,并且在一个数据传输操作中将其传输到各种数据目的地116-118。

    可以创建数据修改引擎,以便对正被通过DMA控制器/引擎106传输的数据执行所希望的数据修改。例如,某些数据修改引擎可以包括(但不限于):散列、HMAC、散列/HMAC组合、填充模式、线性反馈移位寄存器(LFSR)、端到端数据?;?EEDP)检查/添加/更新/去除、异或(XOR)、加密和解密。支持的散列算法的某些类型包括可由散列引擎单独或并发执行的标准安全散列算法(SHA)-224、SHA-256、SHA-384和SHA-512算法。用于数据修改引擎110-112的输入数据可被指定为是来自另一个数据修改引擎110-112的中间数据结果,以便允许组合在单个结果中的多个数据操纵。如果希望,中间结果还可被编码在CDB120内发送到目的地位置116-118之一。然而,中间数据结果不是必须被发送到数据目的地116-118。当工作于来自另一个数据操纵引擎的数据时,第二个数据操纵引擎可以与第一个数据操纵引擎并发地操作,但是第二数据操纵可以略微晚于第一数据操纵引擎开始,以便允许在开始第二数据操纵引擎计算之前,第一数据操纵引擎开始流化发送(stream)中间结果数据。对于各种实施例,当不同数据操纵引擎110-112并行地在相同时刻对相同数据(中间结果和/或原始接收数据)执行操作时,也可以发生数据修改引擎110-112的并发操作。另外,各种实施例可以将原始数据和修改后的数据结果两者传递到数据目的地116-118。

    各种实施例可以将DMA控制器106内的本地源数据存储设备108和本地修改数据存储设备114实现为一个或更多个本地电子存储器电路。电子存储器还可被称为计算机可读存储器,虽然计算机可读(即,电子)存储器可被包括在需要存储器存储设备的电子设备(但是通常不被认为是计算机)内。电子存储器的典型实现为提供可被DMA控制器106划分为源数据存储设备108和修改数据存储设备114的一组电子随机访问存储器(RAM)。电子存储器可以是用于源数据存储设备108和修改数据存储设备114的固定部分,但是DMA控制器还可以按照源数据存储设备和修改数据存储设备114的需要动态地分配电子存储器RAM,从而可以更有效地利用整个电子存储器。另外,修改数据存储设备114可被细分为多个段,以便存储来自多个数据修改引擎110-112的数据。

    一个实施例的数据目的地116-118可以是与典型的DMA控制器/引擎106兼容的任意数据目的地116-118。各种实施例可以向多个数据目的地116-118或向单个数据目的地116写数据和/或修改后的数据结果。各个数据结果可被发送到所有可获得的数据目的地116-118,或仅被发送到可获得的数据目的地116-118的子组。即一个结果可被发送到数据目的地116-118,而其它结果可被仅仅发送到单个目的地116,或被发送到目的地116-118的子集。典型的数据目的地116-118可以包括但不限于:盘驱动器、计算机外设、单独的外部存储器段和/或其它外部设备。

    图2是具有端到端数据?;?EEDP)检查和更新周期的DMA控制器系统的实施例的框图200。当接收来自一个或更多数据源202的数据时,该数据被存储在DMA控制器的源数据存储设备204内。第一EEDP引擎206和第二EEDP引擎210并行地对从一个或更多数据源202接收的数据执行操作。第一EEDP引擎206是检查EEDP引擎,它检查嵌入在接收的数据内的数据?;ば畔?DPI),以便验证该DPI并且向DMA控制器报告发现208的任意错误。由第一EEDP检查引擎206发现的错误可被DMA控制器记录和/或如果启用(enable)了中断功能则可以产生中断。第二EEDP引擎210实际上组合两个EEDP功能,以便产生用于传输数据流的更新的DPI或将DPI添加到传输数据流。来自第二EEDP添加/更新引擎210的更新的DPI被与来自一个或更多数据源202的原始数据流组合212,并且被发送到所希望的一个或更多目的地214??梢宰魑凑找钥杀晔斗绞皆谑萘髦胁迦胧莅?,或作为数据目的地所期望的其它处理,通过多路复用器执行组合处理212。各个实施例可以根据由CDB定义的块大小在传输数据流内的块边界处插入DPI。当对于被发送到一个或更多目的地214的数据来说已经达到了数据流的数据字节计数时,插入DPI。对于给定的CDB可以移动多个数据块,从而对于单个数据流DPI被多次插入传输数据流。

    图3是对数据加密并且执行端到端数据?;?EEDP)检查的DMA控制器系统的实施例的框图300。当接收来自一个或更多数据源302的数据时,该数据被存储在DMA控制器的源数据存储设备304内。EEDP306和加密引擎310并行地对从一个或更多数据源302接收的数据执行操作。EEDP引擎306是检查EEDP引擎,它检查嵌入在接收的数据内的DPI,以便验证该DPI并且向DMA控制器报告发现的任意错误308。由EEDP引擎306发现的错误可被DMA控制器记录和/或如果启用了中断功能可以产生中断。加密引擎310加密正被发送到一个或更多数据目的地314的数据,并且将结果存储在本地修改数据存储设备312内。加密的数据被从修改数据存储设备312传递到一个或更多数据目的地314?;箍梢栽诶嗨朴谕?所示的实施例300的实施例中使用其它数据修改引擎。例如,一个实施例可以用散列或散列/HMAC组合引擎取代图3所示的加密引擎310。类似地,各种实施例还可以用不同的数据修改引擎取代图4-7所示的实施例的数据修改引擎。另外,图2-7所示的实施例仅仅表示可以在DMA控制器上实现的大量各种数据操纵引擎配置的子集。传递给DMA控制器的每个CDB定义了在DMA控制器上配置的数据操纵引擎的配置,从而DMA控制器可被针对由DMA控制器接收的每个CDB重新配置为大量各种数据操纵引擎配置中的任意一种。对于取代加密引擎310使用的某些数据操纵引擎,可能必须在本地修改数据存储设备312中存储某些修改后的数据,从而数据操纵引擎(例如,异或(XOR)引擎)可以访问已被计算的数据。

    图4是对数据加密并且具有端到端数据?;?EEDP)检查和更新周期的DMA控制器系统的实施例的框图400。当接收来自一个或更多数据源402的数据时,该数据被存储在DMA控制器的源数据存储设备404内。第一EEDP引擎406、加密引擎410和第二EEDP引擎414并行地执行操作。第一EEDP引擎406是检查EEDP引擎,它检查嵌入在接收的数据内的DPI,以便验证该DPI并且向DMA控制器报告发现的任意错误408。由第一EEDP引擎406发现的错误可被DMA控制器系统记录和/或如果启用了中断功能可以产生中断。加密引擎410加密正被发送到一个或更多数据目的地418的数据,并且将结果存储在本地修改数据存储设备412内。加密的数据被从修改数据存储设备412传递到一个或更多数据目的地418,并且被传递到第二EEDP添加/更新引擎414。第二EEDP引擎414实际上组合两个EEDP功能,以便产生用于传输数据流的更新的DPI或将DPI添加到传输数据流。来自第二EEDP添加/更新引擎414的更新的DPI被与来自修改数据存储设备412的加密数据流组合416,并且被发送到所希望的一个或更多目的地418??梢宰魑凑找钥杀晔斗绞皆谑萘髦胁迦胧莅?,或作为数据目的地所期望的其它处理,通过多路复用器执行组合处理416。各个实施例可以根据由CDB定义的块大小在传输数据流内的块边界处插入DPI。当对于正被发送到一个或更多目的地418的数据来说已经达到了数据流的数据字节计数时,插入DPI。对于给定的CDB可以移动多个数据块,从而对于单个数据流DPI被多次插入传输数据流。

    图5是对数据加密,对数据执行异或(XOR),并且执行端到端数据?;?EEDP)检查的DMA控制器系统的实施例的框图500。当接收来自一个或更多数据源502的数据时,该数据被存储在DMA控制器的源数据存储设备504内。EEDP506、加密引擎510和第一514和第二518异或(XOR)引擎并行地执行操作。EEDP引擎506是检查EEDP引擎,它检查嵌入在接收的数据内的DPI,以便验证该DPI并且向DMA控制器报告发现的任意错误508。由EEDP引擎506发现的错误可被DMA控制器系统记录和/或如果启用了中断功能可以产生中断。加密引擎510加密正被发送到一个或更多数据目的地524的数据,并且将结果存储在本地修改数据存储设备#1(512)内。加密的数据被从修改数据存储设备512传递到一个或更多数据目的地524,并且被传递到第一XOR引擎514和第二XOR引擎518。每个XOR引擎514和518可能需要访问已经计算的数据,以正确地完成计算。因此,第一XOR引擎514可以在第二修改数据存储设备516内存储结果数据。类似地,第二XOR引擎518可以在第三修改数据存储设备520内存储结果数据。XOR结果数据被从第二修改数据存储设备516和第三修改数据存储设备520传递到一个或更多数据目的地524。来自第一修改数据存储设备512的加密数据,来自第二修改数据存储设备516的第一XOR数据和来自第三修改数据存储设备520的第二XOR数据被组合522,并且传递到一个或更多数据目的地524??梢宰魑凑找钥杀晔斗绞皆谑萘髦胁迦胧莅?,或作为数据目的地524所期望的其它处理,通过多路复用器执行组合处理522。

    对于图5所示的实施例500,可以从每个数据源502检索固定的数据部分(例如,1kb数据),每次检索一个固定数据部分。然后,每个固定的数据部分被发送到加密引擎510,并且加密结果被发送到指定的一个或更多数据目的地524。当加密数据被从加密引擎510发送到加密数据的一个或更多数据目的地524时,执行XOR处理。一旦已经从每个数据源502检索了固定的数据部分(例如,从每个数据源502检索的1kb数据),并且加密数据已被发送到了加密引擎510的指定的一个或更多数据目的地524,第一XOR引擎514的结果被发送到第一XOR引擎514的指定的一个或更多数据目的地524。在第一XOR引擎514的结果被发送到第一XOR引擎514的指定的一个或更多数据目的地524之后,第二XOR引擎518的结果被发送到第二XOR引擎518的指定的一个或更多数据目的地524。重复来自每个数据源502的固定数量数据的处理,直到已经检索了最后的固定数量数据(或更少)为止。

    图6是对数据加密,对数据执行异或(XOR),并且具有端到端数据?;?EEDP)检查和更新周期的DMA控制器系统的实施例的框图600。当接收来自一个或更多数据源602的数据时,该数据被存储在DMA控制器的源数据存储设备604内。第一EEDP引擎606、加密引擎610、第一614和第二618异或(XOR)引擎和第二EEDP引擎624并行地执行操作。第一EEDP引擎606是检查EEDP引擎,它检查嵌入在接收的数据内的DPI,以便验证该DPI并且向DMA控制器报告发现的任意错误608。由第一EEDP引擎606发现的错误可被DMA控制器系统记录和/或如果启用了中断功能可以产生中断。加密引擎610加密正被发送到一个或更多数据目的地628的数据,并且将结果存储在本地修改数据存储设备#1(612)内。加密的数据被从第一修改数据存储设备612传递到一个或更多数据目的地628,传递到第二EEDP添加/更新引擎624,并且传递到第一XOR引擎614和第二XOR引擎618。每个XOR引擎614和618可能需要访问已经计算的数据,以正确地完成计算。因此,第一XOR引擎614可以在第二修改数据存储设备616内存储结果数据。类似地,第二XOR引擎618可以在第三修改数据存储设备620内存储结果数据。XOR结果数据被从第二修改数据存储设备616和第三修改数据存储设备620传递到一个或更多数据目的地618,并且传递到第二EEDP添加/更新引擎624。来自第一修改数据存储设备612的加密数据,来自第二修改数据存储设备616的第一XOR数据和来自第三修改数据存储设备620的第二XOR数据被组合并且传递到第二EEDP引擎624??梢宰魑凑找钥杀晔斗绞皆谑萘髦胁迦胧莅?,或作为第二EEDP引擎624所期望的其它处理,通过多路复用器执行组合处理622。第二EEDP引擎624实际上组合两个EEDP功能,以便产生用于加密并且异或的数据流的更新的DPI,或将DPI添加到当前传输数据流。来自第二EEDP添加/更新引擎624的更新的DPI被与来自第一修改数据存储设备612的加密数据流、来自第二修改数据存储设备616的第一XOR数据和来自第三修改数据存储设备620的第二XOR数据组合626,并且被发送到所希望的一个或更多目的地628??梢宰魑凑找钥杀晔斗绞皆谑萘髦胁迦胧莅?,或作为数据目的地所期望的其它处理,通过多路复用器执行组合处理626。

    在图6所示的实施例的数据修改引擎的多源移动的示例操作中,DMA引擎/控制器从源检索数据,并且通过加密引擎610发送该数据。同时,相同的数据还被发送到第一EEDP检查引擎606,以便验证DPI数据是正确的。在已经加密了数据流的每16字节之后,除了被发送到数据目的地628之外,加密的数据被同时发送到三个不同的数据修改引擎614、618、624。加密的数据被发送到第一XOR引擎614、第二XOR引擎618和第二EEDP添加/更新引擎624。XOR数据被存储在相关的存储器缓冲器616和620内,从而当检索到来自不同源602的数据时可以累积XOR结果。第二EEDP添加/更新引擎624创建当数据被发送到第二EEDP添加/更新引擎624时所需的新DPI。当达到块边界时(例如,在16字节之后),产生的DPI被置于被发送到目的地628的数据流内。上述处理继续,直到来自所有所需源602的数据被检索、加密并且被异或在一起为止。因此,5个不同的数据修改引擎同时在DMA引擎/控制器上并发地操作。各种实施例可以根据由CDB定义的块大小在传输数据流内的块边界处插入DPI。当对于正被发送到一个或更多目的地628的数据来说已经达到了数据流的数据字节计数时,插入DPI。对于给定的CDB可以移动多个数据块,从而对于单个数据流DPI被多次插入传输数据流。

    实现图6所示的配置600的实施例可以从每个数据源602检索固定的数据部分(例如,1kb数据),每次检索一个固定数据部分。然后,每个固定的数据部分被发送到加密引擎610,并且加密结果被发送到第二EEDP引擎624,并且然后被发送到加密数据的指定的一个或更多数据目的地524。当加密数据被从加密引擎610发送到第二EEDP引擎624并且被发送到加密引擎610的一个或更多数据目的地628时,执行XOR处理。一旦已经从每个数据源602检索了固定的数据部分(例如,从每个数据源602检索的1kb数据),并且加密数据已被通过第二EEDP引擎624发送到了加密引擎610的指定的一个或更多数据目的地628,第一XOR引擎614的结果被发送到第二EEDP引擎624,并且被发送到第一XOR引擎614的指定的一个或更多数据目的地628。在第一XOR引擎614的结果被发送到第一XOR引擎614的指定的一个或更多数据目的地628之后,第二XOR引擎618的结果被发送到第二EEDP引擎624,并且被发送到第二XOR引擎618的指定的一个或更多数据目的地628。重复来自每个数据源602的固定数量数据的处理,直到已经检索了最后的固定数量数据(或更少)为止。为向第二EEDP引擎624流化发送数据选择的本地修改数据存储设备612、616、620与当前传输到指定一个或更多目的地628的数据流匹配(加密引擎610的结果、第一XOR引擎614或第二XOR引擎结果618)。

    图7是对数据执行异或(XOR),并且具有端到端数据?;?EEDP)检查和更新周期的DMA控制器系统的实施例的框图700。当接收来自一个或更多数据源702的数据时,该数据被存储在DMA控制器的源数据存储设备704内。第一EEDP引擎706、第一XOR引擎710和第二XOR引擎714和第二EEDP引擎720并行地执行操作。第一EEDP引擎606是检查EEDP引擎,它检查嵌入在接收的数据内的DPI,以便验证该DPI并且向DMA控制器报告发现的任意错误708。由第一EEDP引擎706发现的错误可被DMA控制器系统记录和/或如果启用了中断功能可以产生中断。每个XOR引擎710和714可能需要访问已经计算的数据,以正确地完成计算。因此,第一XOR引擎710可以在第一修改数据存储设备712内存储结果数据。类似地,第二XOR引擎714可以在第二修改数据存储设备716内存储结果数据。XOR结果数据被从第一修改数据存储设备712和第二修改数据存储设备716传递到一个或更多数据目的地724,并且传递到第二EEDP添加/更新引擎720。来自第一修改数据存储设备712的第一XOR数据和来自第二修改数据存储设备716的第二XOR数据被组合并且传递到第二EEDP引擎720??梢宰魑凑找钥杀晔斗绞皆谑萘髦胁迦胧莅?,或作为第二EEDP引擎720所期望的其它处理,通过多路复用器执行组合处理718。第二EEDP引擎720实际上组合两个EEDP功能,以便产生用于异或数据流的更新的DPI,或将DPI添加到当前传输数据流。来自第二EEDP添加/更新引擎720的更新的DPI被与来自第一修改数据存储设备712的第一XOR数据和来自第二修改数据存储设备716的第二XOR数据组合722,并且然后被发送到所希望的一个或更多目的地724??梢宰魑凑找钥杀晔斗绞皆谑萘髦胁迦胧莅?,或按照数据目的地所期望的其它处理,通过多路复用器执行组合处理722。各种实施例可以根据由CDB定义的块大小在传输数据流内的块边界处插入DPI。当对于正被发送到一个或更多目的地724的数据来说已经达到了数据流的数据字节计数时,插入DPI。对于给定的CDB可以移动多个数据块,从而对于单个数据流DPI被多次插入传输数据流。

    对于图7所示的实施例700,可以从每个数据源702检索固定的数据部分(例如,1kb数据),每次检索一个固定数据部分。然后,每个固定的数据部分被同时发送到第一XOR引擎710和第二XOR引擎714。当从一个或更多数据源702检索数据时,每个XOR引擎710、714以当前检索到的数据在XOR引擎710、714各自的本地修改数据存储设备712、716内执行异或操作。一旦已经从每个数据源702检索了固定的数据部分(例如,从每个数据源702检索的1kb数据),来自第一XOR引擎710的结果被发送到第二EEDP引擎720,并且被发送到第一XOR引擎710的指定的一个或更多数据目的地724。在第一XOR引擎710的结果被发送到第一XOR引擎710的指定的一个或更多数据目的地724之后,第二XOR引擎714的结果被发送到第二EEDP引擎720,并且被发送到第二XOR引擎714的指定的一个或更多数据目的地724。重复来自每个数据源702的固定数量数据的处理,直到已经检索了最后的固定数量数据(或更少)为止。为向第二EEDP引擎720流化发送数据所选择的本地修改数据存储设备712、716与当前传输到指定一个或更多目的地724的数据流匹配(第一XOR引擎结果710或第二XOR引擎结果714)。

    图8是包括DMA引擎/控制器812的芯片上的RAID(独立磁盘冗余阵列)(ROC)系统802的实施例的框图800。图8所示的ROC802实施例提供了在多功能芯片上包括DMA引擎/控制器812的例子。在图8所示的示例ROC802实施例中,ROC802由几个子系统组成,包括:串行附加SCSI(小型计算机系统接口)(SAS)核心810、DMA引擎/控制器812、存储器队列和存储器控制器813、时钟配置/重置子系统(CCR)814、外设组件互连(PCI)特快(Express)(PCE)核心818、输入/输出(I/O)子系统820、处理器本地总线(PLB)静态RAM(SRAM)822和外设总线访问???PBAM)824。ROC802的各种子系统通过处理器本地总线(PLB)816和/或通过直接连接830-836彼此通信。DMA引擎/控制器812具有与存储器队列和存储器控制器813的直接连接836,以便控制到外部连接的双数据速率(DDR)RAM存储器806的直接存储器访问通道808。存储器队列和存储器控制器813可被与DMA引擎/控制器812结合在一起,以便形成ROC802的单个逻辑元件,但是它们被分别示出,以便清楚地示出DMA引擎/控制器812的位置。SAS核心810在允许传输SAS协议通信804的通信路径上提供与SAS设备之间的往来外部通信。类似地,PCE核心818在允许传输PCI-Express协议通信826的通信路径上提供与PCI-Express设备之间的往来外部通信。PBAM在允许传输串行数据(SD)828的通信路径上提供与串行数据(SD)外设之间的往来外部通信。CCR814、I/O处理器子系统820和PLB?SRAM?822提供互连各种外部通信子系统810、812-813、818和824的支持功能。

    在图8所示的ROC实施例802中,DMA引擎/控制器812通过到存储器队列和存储器控制器813的直接连接836访问外部DDRRAM存储器806。另外,DMA引擎/控制器812具有通过PLB?816到ROC?802上的其它系统810、814、818、820、822、824的连接。DMA引擎/控制器812被通过PLB?816连接到ROC实施例802的其余子系统。为了提高通信速度,特别是对于大量的数据移动,除了PLB816连接之外,可以结合ROC?802的子系统之间的某些直接通信连接830-836。例如,在图8所示的实施例中,PCE核心818和SAS核心810之间存在直接通信连接830。在图8所示的实施例中,还存在DMA引擎/控制器812和PCE核心818之间的直接通信连接832,以及存储器队列和存储器控制器813和SAS核心810之间的直接通信连接834。通过SAS核心810、PCE核心818和PBAM824、DMA引擎/控制器812可以与SAS设备804、PCI-Express设备826和串连外设828通信。如果系统设计者需要,ROC?802或其它可以使用DMA的设备/系统的各种实施例可以结合更少或更多的外部数据通信连接。

    图9是DMA控制器的实施例的CDB处理的实施例的框图900。CDB获取引擎904可以获取CDB902,并且将该CDB存储在预取本地RAM906中。CDB获取引擎906分析嵌入CDB902内的指令,并且指挥CDB处理器908执行必须的动作,以便执行编码在CDB902内的指令。CDB处理器908还可以与存储器管理器910交互,以便确定DMA控制器的本地RAM912中存在多少可用空间。CDB处理器908还可以与DMA控制器的本地RAM912交互,以便当传输数据并且执行所希望的多种数据操纵需要时,存储数据和修改后的数据。CDB处理器908可以从DMA控制器上可以获得的数据修改引擎916-932中选择适当的数据修改引擎914。对于图9所示的实施例,可获得的数据修改引擎包括:散列/HMAC引擎916、填充模式引擎918、LFSR引擎920、EEDP产生引擎922、EEDP检查引擎924、第一(#1)XOR引擎926、第二(#2)XOR引擎928、解密引擎930和加密引擎932。对于各种实施例,散列/HMAC引擎916可以是,一起或单独地,散列、HMAC或散列/HMAC组合引擎。填充模式引擎918可用于以固定的数据模式填充修改存储设备。因此,由于所写的模式是固定的数据模式,填充模式引擎918不需要从数据源读数据。LFSR引擎920也不需要从数据源读数据来执行LFSR引擎920的操作。类似地,某些数据操纵引擎不向目的地写数据,而是仅仅对从源接收的数据执行检查,诸如EEDP检查引擎924。因此,对于某些数据操纵引擎(例如,填充模式引擎918和/或LFSR引擎920),根据CDB从数据源读取可能不需要从数据源读取任何实际数据。类似地,对于某些数据操纵引擎(例如,EEDP检查引擎924),根据CDB向数据目的地写数据可能不需要将实际数据写到数据目的地。CDB处理器908处理将数据写到数据目的地,并且针对CDB追踪数据操纵引擎的执行。一旦CDB处理器908完成了给定CDB902的所有数据移动,CDB完成引擎934将CDB完成结果写到完成队列936。完成队列936可以位于DMA控制器/引擎之外的存储器内。当第一CDB的数据操纵接近完成或完成时,各种实施例还可以允许排出FSM1012处理第一CDB的写数据,同时填充FSM1006可以为第二(即,下一个)CDB开始检索数据的处理,以便提高整体处理速度。

    图10是CDB处理器实施例的CDB处理的有限状态机(FSM)操作的框图1000。CDB获取引擎有限状态机(FSM)1002分析嵌入CDB内的指令,并且可以与4个有限状态机1006-1012交互来执行必须的动作,以便执行嵌入由DMA控制器接收的CDB内的指令。填充FSM1006从CDB获取引擎FSM1002接收指令,并且控制读命令1004的创建和发出,以便从一个或更多数据源检索数据。修改FSM1008根据嵌入CDB内的指令使用DMA控制器数据修改引擎1018控制数据操纵操作的执行。排出命令(CMD)FSM1010创建写命令,该写命令指挥系统将数据和/或修改后的数据从数据修改引擎1018发送到所希望的一个或更多数据目的地1016。排出数据FSM1012执行在排出命令FSM1010中创建的写命令,以便将数据和/或修改后的数据写到所希望的一个或更多数据目的地1016。在某些情况下,排出数据FSM1012还可以使用数据修改引擎1018执行某些数据修改操作,诸如用于不需要在本地DMA控制器RAM中缓存数据以便执行数据操纵计算的EEDP产生的数据修改操作。

    各种实施例可以通过操作在计算机系统、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、其它可编程逻辑电路或其它电子设备上的应用,提供此处详述的控制和管理功能。实施例可被作为可被包括在计算机可读或计算机可用介质计算机程序产品提供,所述介质上存储有可用于对计算机(或其它电子设备)编程/操作计算机(或其它电子设备)或计算机系统,以便执行根据本发明的一个或更多处理的指令。计算机可读介质可以包括但不限于硬盘驱动器、软盘、光盘、压缩盘只读存储器(CD-ROM)、数字通用盘ROM(DVD-ROM)、通用串行总线(USB)存储器棒、磁光盘、ROM、随机访问存储器(RAM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、磁光卡、闪存或适合于存储电子指令的其它类型的介质/机器可读介质。计算机程序指令可以驻留在并且运行在单个计算机/电子设备/电子电路上,或各种部分可以分布在构成计算机系统的多个计算机/设备/电子电路上。另外,实施例还可以被作为计算机程序产品下载,其中程序可被借助于包含在载波内的数据信号或其它传播介质通过通信链路(例如,调制解调器或网络连接,包括有线/缆线和无线连接两者)从远程计算机传输到做出请求的计算机。

    已经出于说明和描述的目的给出了本发明的上面描述。它不旨在是穷尽性的或将本发明局限于公开的精确形式,并且根据上面的教导可以有其它修改和变形。选择并且描述实施例,以便最好地解释本发明的原理和其实际应用,从而使得本领域的其它技术人员能够在适合于构想的特定用途的各种实施例和各种修改中最好地利用本发明。所附的权利要求旨在被认为包括本发明的除了受到现有技术限制之外的其它替换实施例。

    关于本文
    本文标题:能够进行并发数据操纵的DMA引擎.pdf
    链接地址://www.4mum.com.cn/p-5866178.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    [email protected] 2017-2018 www.4mum.com.cn网站版权所有
    经营许可证编号:粤ICP备17046363号-1 
     


    收起
    展开
  • 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
  • 北京pk10全天6码计划 黑马全人工计划软件网页版 长期跟六肖赚钱吗 重庆时时龙虎和怎么玩 吉林时时龙虎怎么玩 十一选五买一个好稳赚技巧 广东11选5盘古计划软件 安徽时时选号 3d投注技巧规律吗 赌单双诀窍 旺彩预测电脑版 香港好彩手机报码开奖资料最全 导师带你买快三是真是假 北京pk赛车7码计划规律 大乐透开结果 赌博龙虎牌怎么包赢不输