专利名称:使用中央dma机制进行数据过滤的制作方法
技术领域:
本公开一般地涉及直接存储器访问传输过程中的数据过滤。
背景技术:
本部分旨在向读者介绍可能与在下面描述和/或提出的本发明的各个方面有关的各种方面。相信本讨论有助于给读者提供背景信息,以便便于对这些各个方面的更好理解。因此,应当理解,应当据此阅读这些表述,而不是作为对现有技术的承认。中央处理单元(CPU)利用命令或指令列表操作。这些指令通常集合在一起作为程序。程序通常存储在诸如硬盘驱动器或非易失存储器的长期存储设备内。访问这些长期存储设备需要某个时间量,在该时间期间,CPU必须空等待。一种提高CPU等待时的效率的方法是利用直接存储器访问(DMA)控制器。DMA控制器允许电子设备内的数据传输而不增加CPU的负担。这可以通过CPU将集合在一起作为程序的指令列表的获取(fetching)移交给DMA控制器而发生,使得在DMA控制器获取用于 CPU的程序的同时,CPU可以空出来执行以前获取的指令。另外,CPU可以将从一个子电路到另一个子电路或从CPU到子电路的数据传输移交给DMA控制器。可以沿着DMA通道完成前述的数据源和数据接收方之间的由DMA控制器进行的数据传输。DMA通道是DMA控制器和设备之间的路径。DMA通道通常向设备传送数据、命令信号和时钟信号。例如,DMA控制器可以使用DMA通道在存储器中的位置和I/O设备之间或在I/O设备和存储器中的位置之间传输数据。类似地,DMA控制器可以使用DMA通道在存储器中的两个位置或直接在I/O设备之间传输数据。一种这样的I/O设备可以是网络接口设备。网络接口设备可以允许电子设备物理地或无线地连接到网络。网络移动具有相当复杂的结构的数据流,并且虽然可以设计使用非常简单的网络接口设备和运行在CPU上的复杂软件来应付这种复杂的结构的系统,但是当数据速率高时和/或当有必要以最低可能功率操作时,由于处理数据的复杂结构不是理想地适合于CPU的任务,这种设计是不现实的。从而需要网络处理电路,通过帮助CPU完成其某些网络处理任务,该网络处理电路提高了使用常规网络接口设备时的总体系统性能。
发明内容
下面概述了此处作为例子公开的实施例的某些方面。应当理解,给出这些方面仅为了给读者提供对某些实施例的简要概述,并且这些方面不旨在限制权利要求的范围。实际上,本公开和权利要求可以包含可能未在下面提出的多种方面。提供了具有DMA控制器的电子设备。在一个实施例中,DMA控制器被连接到DMA总线,通过DMA总线可以访问多个I/O设备和长期存储设备。一种这样的I/O设备是网络接口电路。本公开包括用于处理由网络接口电路处理接收的网络分组(packet)的技术和电路。该处理可以发生在DMA控制器中。DMA控制器包括卸载过滤器(offload filter),卸载过滤器可以利用网络分组处理技术支持网络数据分组的分类、路由和检查。通过利用卸
4载过滤器处理网络分组,DMA控制器可以在从网络接口电路传输数据的同时执行网络分组的一部分处理。
通过参考附图阅读下列详细描述,可以理解某些实施例,在所有附图中类似的标记表示类似的部分,其中图1是根据一个实施例,电子设备(诸如便携媒体播放器)的第一视图;图2是图1的电子设备的内部组件的框图;图3是示出了图1的便携媒体播放器在执行DMA传输时的操作的流程图;图4是图1和2的DMA控制器的简化框图;图5是示出了根据图4的实施例的DMA控制器的操作的流程图。
具体实施例方式下面将描述本发明的一个或多个实施例。为了提供对这些示例性实施例的简洁描述,不是在本说明书中描述实际实现的所有特征。应当理解,在任何这种实际实现的开发中,如同任何工程或设计项目,必须进行大量特定于实现的决策以便实现开发者的特定目标,诸如符合关于系统和关于业务的约束,这可以根据实现的不同而改变。另外,应当理解, 这种开发努力可能是复杂和费时的,但是仍然是受益于本公开的普通技术人员进行设计、 加工和制造的例行工作。本公开涉及用于DMA控制器中的网络分组处理的技术和电路。位于DMA控制器内的卸载过滤器可以支持网络数据分组的分类、路由和检查。通过利用卸载过滤器处理网络分组,DMA控制器可以在传输与分组相关联的数据的同时执行网络分组的一部分处理。另夕卜,一种调度机制可以解决DMA传输冲突。下面给出对利用DMA控制器处理网络分组的电子设备的讨论。现在转到附图,图1示出了可以如上所述使用DMA控制器处理网络分组的电子设备10。应当注意,虽然下面参考示出的电子设备10(其可以是用于播放音乐和/或视频的媒体播放器、蜂窝电话、个人数据管理器或其任何组合)描述DMA控制器的实现,但此处描述的电压转换技术和电路可被用于包括网络能力和DMA控制器的任何设备。如上所述,示出的电子设备10可以是提供媒体播放器、蜂窝电话、个人数据管理器等的功能中的任何一种或其组合的设备。以这种方式,取决于电子设备10提供的功能, 电子设备10的用户可以在带着设备10自由移动的同时听音乐、玩游戏或播放视频、摄像或拍照、拨打和接听电话呼叫、与其他人通信、控制其它设备(例如,设备10可以包括遥控器和/或蓝牙功能)等等。另外,电子设备10可以允许用户连接到因特网或诸如局域网或广域网等其它网络,并且通过它们通信。例如,电子设备10可以允许用户使用电子邮件、文本消息、即时消 息或使用其它形式的电子通信进行通信。作为例子,电子设备10可以是可从苹果公司获得的具有显示屏的某种型号的iPed 或iPhone 。在示出的实施例中,如下面所述,电子设备10包括外壳12、用户输入结构14、输入和/或输出端口 16、一个或多个输入接收器18、一个或多个输出发射器20和显示器22。外壳12可由塑料、金属、复合材料或其它适合的材料或其任何组合形成。外壳12可以防止电子设备10的内部组件受到物理损坏,并且还可以为内部组件屏蔽外部的电磁干扰(EMI)。用户输入结构14可被配置为通过控制操作模式、输出水平、输出类型等控制设备 10。例如,用户输入结构14可以包括打开或关闭设备10的按钮。该按钮可以例如位于外壳 12顶部。用户输入结构14还可以包括控制轮,其可被用于与显示器22上的图形用户界面 (⑶I) 24交互,并且可以位于显示器22下方的电子设备10下部。另外,用户输入结构14可以在外壳12的一侧上包括例如,将结合输出发射器20使用的对应于音量控制的按钮,以及可用于电话铃声静音的按钮。一般地,电子设备10可以包括任何数目的用户输入结构14, 包括按钮、开关、按键、旋钮或任何其它适合的输入结构。输入和/或输出端口 16可以允许电子设备10连接到外部设备。例如,在外壳12 顶部的端口 16可以是提供音频耳机连接的耳机插孔。在外壳12顶部的第二端口 16可以是用户标识模块(SIM)卡槽。另一个端口 16可以位于外壳12底部,并且可以是电子设备 10的制造商用来发送和接收数据文件(诸如媒体文件)的连接端口。可以附加地设想用于耳麦插孔、AC和/或DC电源连接器的连接的其它端口 16,或其它输入/输出端口 16。电子设备10还可以包括各种音频输入和输出元件。例如,一个或多个输入接收器 18可以位于外壳12底部。一个或多个输入接收器18可以包括接收用户音频输入(诸如用户语音)的一个或多个麦克风。另外,电子设备可以包括一个或多个输出发射器20。输出发射器20可以包括用于向用户发射音频信号的一个或多个扬声器。一个或多个输入接收器18和一个或多个输出发射器20可结合使用作为电话的音频元件。显示器22可以是液晶显示器(IXD)或可以是基于发光二极管(LED)的显示器、基于有机发光二极管(OLED)的显示器或其它适合的显示器。显示器22可以是触摸敏感显示器,其允许用户通过在与图标26之一或某些附加图像相对应的位置触摸显示器22的屏幕与GUI M交互。另外,输入结构14可以与显示在显示器22上的⑶I M—起工作,以便控制设备10的功能。例如,用户输入结构14之一可以是控制轮,其允许用户导航显示的GUI 对,和/或通过显示器22的触摸敏感实现导航显示的⑶I 24。⑶I M可以包括多个图标沈以及各种图像,诸如标志、头像、照片、专辑封面等, 这取决于用户选择哪个图标26。图标沈可以表示在用户选择之后,可在显示器22的某些或全部区域中显示的各种层、窗口、屏幕、模板、元素或其它组件。另外,选择图标沈可以引起层次化GUI 24导航处理,从而选择图标沈得到包括一个或多个附加图标沈或其它GUI M元素的子屏幕。应当理解,作为代替,GUI M可以以分层或非分层结构布置其它类型的用户界面元素。系统指示器28也可被显示在显示器22上,并且可以显示各种功能和/或给用户提供反馈。这些系统指示器观可以包括与例如设备10的电话信号强度、网络电话运营商和因特网信号强度,时间,以及设备10的电源状态相对应的图像。另外,系统指示器观可以随着屏幕的改变而改变,当用户在GUI 24中导航时,它们可以保持它们在显示器22上的初始位置,或当用户在GUI M中导航时,系统指示器观可被去除。通过电子设备10内部的电路的交互,可以实现电子设备10的上述操作。图2是示出了可被电子设备10采用以便执行操作的内部组件的框图。如下面更详细描述的,电子设备10可以包括中央处理单元(CPU) 30、存储器控制器32、主存储器34、DMA控制器36和 DMA总线38。另外,电子设备可以包括多个设备,诸如长期存储设备40、照相机电路42、电
6话电路44、视频电路46、成像电路48、音频电路50和网络接口电路52。 CPU 30可以包括单个处理器,或它可以包括多个处理器。例如,CPU 30还可以包括一个或多个“通用”微处理器、通用和专用微处理器的组合、图形处理器、视频处理器和/ 或有关的类似处理器的功能。CPU30可以提供执行操作系统、程序、GUI 24和设备10的任何其它功能所需的处理能力。另外,CPU 30还可以包括非易失存储器,诸如ROM,其可被用于存储设备10的固件,诸如设备10的操作系统和/或由设备10使用以便发挥功能的任何其它程序或可执行代码。CPU 30还可以包括用于高速缓存目的的内部存储器。可以实现存储器控制器32,以便从主存储器34向CPU 30传输数据,主存储器34 可被用作要由CPU 30迅速访问的数据的临时存储位置。存储器控制器32可以调节主存储器34和CPU 30之间的数据和指令的流动。存储器控制器32还可以调节用于CPU后续访问的从DMA控制器36到主存储器34的数据传输。可替换地,DMA控制器36可以调节到CPU 30的内部存储器的数据传输。可替换地,DMA控制器36可被直接连接到CPU 30,从而从数据路径中去除存储器控制器32。如上所述,DMA控制器36可被用于检索将由CPU 30操作的数据,或用于从一个位置向另一个位置传输数据。然而,可以设想所使用的特定DMA控制器36可以具有在提交于 2008 ^ 4 ^ 1 H WIS @ % “ Central DMA with Arbitrary Processing Functions"白勺# 同待决并且共同受让的美国专利申请No. 12/060, 178中描述的其它功能,出于所有目的通过引用将其完整结合在此。DMA控制器36可以通过DMA总线38传输数据。DMA总线38提供用于发送数据、 命令和时钟信号,以及用于接收DMA请求信号和接收来自目标设备的数据的路径,这些可被统称为“DMA传输信号”。DMA控制器36可以包括多个DMA通道。每个DMA通道包含DMA 控制器36通过DMA总线38内的DMA传输信号管理DMA控制器36和特定设备之间的数据传输所需的所有状态,其中DMA总线38将DMA控制器连接到该设备。这些通道可以是共享的,并且同时为活动的,实际上共享DMA总线38。可替换地,通道可以是个体化的,即,每个通道直接对应于单个设备。不论通道是共享的还是个体化的,DMA控制器36可以作为通过 DMA总线38在一个或多个I/O设备和/或主存储器34之间传输数据的控制设备而操作。可被连接到DMA总线的I/O设备包括长期存储设备40、照相机电路42、电话电路 44、视频电路46、成像电路48、音频电路50和网络接口电路52。长期存储设备40可以是非易失存储器,诸如闪存、磁驱动器、光驱动器和/或只读存储器电路。照相机电路42可以允许用户拍摄数字照片。通过在图1的输入接收器18和输出发射器20之间进行接口连接以完成电话呼叫,电话电路44可以允许用户接收或拨打电话呼叫。视频电路46可被用于编码和解码用户结合照相机电路42拍摄的和/或从外部来源(诸如互联网)下载的视频样本。类似地,成像电路48可以允许编码和解码用户结合照相机电路42拍摄的和/或从外部来源(诸如互联网)下载的图片。音频电路50可以允许播放音频文件,诸如压缩的音乐文件。网络接口电路52是通过DMA总线38连接到DMA控制器36的附加I/O设备。网络接口电路52可以允许用户在诸如LAN或WAN的网络上通信。在一个实施例中,网络接口电路52可以是使用IEEE802. 11无线网络协议或任何其它适合的无线网络协议提供无线连接的无线接口设备。网络接口电路52还可以是使用IEEE 802.3以太网网络协议提供有线连接的以太网接口设备。网络接口电路52可被用于将设备10连接到网络,以便与网络上的任何其它设备,诸如其它便携电子设备、个人计算机、打印机等,发送和/或接收数据。例如,在一个实施例中,电子设备10可以通过网络接口电路52连接到个人计算机,以便发送和接收数据文件,诸如媒体文件。示出的网络接口电路52可以不包括网络处理电路。而是如下所述,网络处理电路可被集成在DMA控制器36内。图3示出了使用DMA集成网络处理电路接收和处理网络分组的一般处理。在步骤 54,DMA控制器36接收来自网络接口电路52的数据传输请求。该数据传输请求可以是对网络接口电路52从网络接口接收到数据分组的响应。DMA控制器36可以确定来自网络接口电路的数据的目的地。该目的地可以是例如主存储器34。可替换地,目的地可以包括附接到DMA总线38的设备。例如,目的地可以是长期存储设备40。另外,可以存在多个目的地。例如,一部分数据的目的地可以是主存储器34,而其余部分的数据的目的地可以是成像电路48。DMA控制器36可以沿着DMA总线38中与网络接口电路52相对应的通道、并且沿着与目标设备(此处为长期存储设备40)相对应的通道,激活DMA通道时钟,从而启动从网络接口电路52到长期存储设备40的DMA传输。在步骤56,网络接口电路52从DMA控制器36接收DMA通道时钟,以便开始向DMA 控制器36传输数据的处理。另外,网络接口电路52可以从DMA控制器36接收命令信号。 响应于通道时钟和命令信号,网络接口电路52可以沿着DMA总线38的通道向DMA控制器 36发送接收到的网络数据分组的流。应当注意,这些网络数据分组在被发送给DMA控制器 36时,尚未被网络接口电路52处理。DMA控制器36接收所发送的网络数据分组以便完成步骤56。如上所述,网络数据分组被DMA控制器36接收而未经网络接口电路52处理。而是,数据处理可由包含在DMA控制器36中的卸载过滤器执行。通过将网络数据分组的处理移交给卸载过滤器,可以在DMA传输的同时,处理网络数据分组。在卸载过滤器的处理完成之后,在步骤60,经处理的分组被沿着DMA总线38发送到目标设备,例如,长期存储设备40。为了进一步解释DMA控制器36的网络分组处理,图4示出了 DMA控制器36的框图。DMA控制器36包括调度器62、控制电路64、多个DMA通道接口 66、68和70、以及卸载过滤器72。如下面在图4和5的结合讨论中所阐述的,这些元件可以一起操作以便完成网络分组和非网络分组DMA传输。在DMA控制器36的操作中,调度器62可以在步骤74接收一个或多个DMA请求, 并且可以确定哪些设备正在请求DMA传输。一旦调度器62接收到多于一个DMA请求,调度器62将在步骤76根据调度协议调度这些DMA请求。在接收到多于一个DMA请求后,调度器62可以确定应当首先处理哪个DMA请求。这可以使用先入先出方法完成,从而可以根据调度器62接收到DMA请求的顺序调度DMA请求。可替换地,调度器62可以基于权重值系统确定应当向多个DMA请求中的哪个或哪些DMA请求给予优先权,从而可以给每个请求分配优先级。可以在具有低优先级的请求之前调度具有高优先级的请求。以这种方式,所有 DMA请求可被根据它们相应的优先级排队。可以基于DMA请求的相对重要性预先安排优先级,或可以基于诸如已处理的某种类型的请求的数目之类的因素或其它因素动态安排优先级。另外,调度器62可被安排为当调度器62接收到具有一定优先级的DMA请求时,中断当
8前正在处理的任何DMA请求。以这种方式,可以完成必须实时发生的DMA传输。另外,调度器62可被安排为具有撤消功能,撤消功能允许例如如果低优先级请求已经在调度器62的队列中等待了一定的时间段,则在高优先级请求之前处理该低优先级请求。这有助于确保不论优先级如何,所有请求都将被处理。一旦调度器62确定应当给予多个DMA请求中的哪个DMA请求优先权,由调度器62确定的将被处理的DMA请求被发送给控制电路64。控制电路64可以从调度器62接收要处理的DMA请求。控制电路64能够例如启动DMA传输、管理DMA通道接口 66、68和70、和/或管理DMA通道时钟。当收到DMA请求时,控制电路64可以确定具体的DMA传输特性,并且可以基于DMA请求的特性,诸如为给定 DMA传输分配的DMA总线38带宽量,配置一个或多个DMA接口 66-70。另外,控制电路64 可以分析DMA请求以确定在完成DMA传输之前需要什么类型的处理(如果有的话)。例如, 在步骤76,控制电路确定由调度器62转发的DMA请求是对应于网络还是非网络数据传输。 下面将描述完成非网络数据传输的DMA传输的处理,随后是对网络数据传输的描述。为了开始非网络数据传输,控制电路64可以在步骤78确定DMA请求不是从网络接口电路发出,即,DMA传输是非网络数据传输。控制电路64然后可以进入步骤80,从而控制电路64可以访问DMA通道接口 66-70之一。DMA通道接口 66-70允许DMA控制器36为了在DMA控制器36和输入/输出设备 (诸如长期存储设备40)之间进行DMA传输而与DMA总线38接口。应当注意,DMA通道接口 66-70可以静态地连接到特定的物理DMA通道,或可替换地,DMA通道接口 66-70可以动态地连接到任意物理DMA通道。不论DMA通道接口和DMA通道如何连接,DMA通道接口 66-70都可以接收通道时钟以及DMA命令信号,通道时钟用作用于DMA控制器36和连接到 DMA总线38的I/O设备之间的数据传输的定时信号,而DMA命令信号用于请求和/或控制 I/O设备和DMA控制器36之间的数据传输。因此,在步骤80,当DMA请求被确定不是网络数据传输时,控制电路64可以访问例如用于与长期存储设备40通信的特定DMA通道接口 66,以及例如用于与音频电路50通信的DMA通道接口 68。另外,在步骤80期间,通道时钟信号可沿着DMA通道接口 66和68两者被传输,从而启动长期存储设备40和音频电路50 进行DMA传输。步骤82通过经DMA通道接口 66沿着DMA线路向例如长期存储设备40发送DMA 命令,以及经DMA通道接口 68沿着与例如音频电路50相关联的第二 DMA线路发送命令,而继续DMA传输处理。响应于接收到的DMA命令,长期存储设备40可以沿着DMA总线38将所请求的数据发送到DMA通道接口 66。DMA通道接口 66可以在步骤84接收来自长期存储设备40的数据,然后通知控制电路64数据已被接收到。已被通知数据已被接收到的控制电路64可以在步骤86命令DMA通道接口 68向音频电路50发送数据。以这种方式,完成两个I/O设备一即,长期存储设备40和音频电路50-之间的DMA传输。在完成DMA传输之后,控制电路64在步骤88确定调度器是否是空的,即,是否存在任何更多的要执行的DMA传输。如果没有剩余其它DMA传输,DMA传输处理在步骤90终止,结束非网络数据传输。然而如果调度器有剩余 的DMA请求,则处理在步骤78重新开始。现在将描述包括网络数据传输的DMA传输。如上所述,控制电路64接收DMA请求, 并且在步骤78确定它是否是网络数据传输。如果控制电路64确定DMA请求包括网络数据传输,则类似于上述的步骤80,控制电路64可以在步骤92访问例如用于与网络接口电路52通信的特定DMA通道接口 70。步骤94通过经DMA通道接口 70沿着DMA线路向例如网络接口电路52发送DMA 命令而继续DMA传输处理。响应于接收到的DMA命令,网络接口电路52可以沿着DMA总线 38向DMA通道接口 70发送网络分组数据。DMA通道接口 70可以在步骤96接收来自网络接口电路52的数据,然后通知控制电路64数据已被接收到。如上面讨论的,网络分组数据在被发送到DMA控制器36之前未被网络接口电路52 处理。因此,DMA控制器36承担网络分组数据的处理,这可以通过在步骤98将网络分组数据发送给卸载过滤器72而实现。这使得控制电路64能够在卸载过滤器72执行网络分组数据的处理的同时,从调度器62访问下一个传输请求。如果例如下一个传输请求不是网络数据分组DMA请求,则控制电路64可以从调度器62接收DMA请求,并且执行DMA传输。类似地,如果下一个DMA请求是要被发送给卸载过滤器72的类型,则调度器62可以选择要发送给控制电路64的具有较低优先级的排队的DMA请求。可替换地,在向控制电路64发送另一个网络数据传输请求之前,调度器62可以等待,直到卸载过滤器72完成了网络分组数据的处理。步骤98的向卸载过滤器72发送数据分组的处理可以包括控制电路64与卸载过滤器72交互。这种交互可以包括激活卸载过滤器72的处理电路,将卸载过滤器72设置为编码或解码模式,以及根据节省功率机制激活和去激活(deactivate)卸载过滤器72。艮口, 当不请求网络数据传输时,控制电路64可以通过将卸载过滤器72置于睡眠模式去激活卸载过滤器72,在睡眠模式中过滤器比在正常操作中消耗更少功率,因此节约电子设备10中的电力。当再次需要卸载过滤器72时,控制电路64可以激活卸载过滤器72以用于网络分组处理。一旦被激活,卸载过滤器72可以从控制电路64接收与在通道接口 70接收到的数据相对应的分组数据。卸载过滤器72还可被配置为处理被传送的数据,而不首先在中间介质上保存被传送的数据。以这种方式,卸载过滤器72可以说是“即时(on-the-fly)”操作,因此,由于在处理网络分组数据过程中操作卸载过滤器72不需要片上(on-chip)存储器缓冲器,减少了卸载过滤器所需的缓冲量。以这种方式,卸载过滤器72可以在步骤100处理网络分组数据,而DMA控制器36可以在网络数据分组的处理的同时,执行另外的DMA传输,得到更快的 DMA传输。步骤100的网络数据分组的处理可以包括来自网络接口电路52的传输数据的分类。例如,如果分组是传输控制协议/网际协议(TCP/IP)格式,处理可以包括去除IP头部和/或TCP头部。头部和尾部可以对应于添加到发送给网络接口电路52的核心网络分组数据的协议信息。然而,各种类型的传输协议包括不同的头部和尾部。因此,卸载过滤器72 执行的处理可以包括基于对卸载过滤器72接收到的被传送数据的类型的分类,将来自网络接口电路52的传输数据划分为协议信息(例如头部和尾部)和核心数据。另外,卸载过滤器72可被用于根据网络接口电路52所需的网络传输类型,在创建要传输到网络接口电路52的网络数据分组时,向核心网络分组数据添加必要的协议信息。步骤100的其它类型的处理可以包括基于可编程散列的分组分类、分组的分类和排队、校验和的生成和校验、和 /或被破坏分组的智能丢弃。一旦卸载过滤器72完成了处理步骤100,控制电路64可以在步骤102分别通过适当的DMA通道接口 66或70向适当位置,例如长期存储设备40或网络接口电路52,发送经处理的网络数据分组。在步骤102成功发送经处理的数据分组之后,控制电路64在步骤 88确定调度器是否是空的,即,是否有更多DMA传输要执行。如果调度器具有其余DMA请求,则处理在步骤78重新开始。然而,如果没有剩下另外的DMA传输,则DMA传输处理在步骤90终止。步骤90的处理终止可以包括控制电路64向卸载过滤器72发送去激活信号, 以及所有控制信号和通道时钟的去激活。这些元件的去激活作为电子设备10的功率节省技术可以是有用的。
此处已经详细描述了在附图中以示例方式示出的特定实施例。然而应当理解,权利要求不旨在局限于公开的特定形式。而是权利要求要覆盖落在其精神和范围内的所有修改、等同物和替换物。
权利要求
1.一种直接存储器访问(DMA)控制器,包括控制电路,适用于接收设备控制信息和产生DMA传输信号;卸载过滤器,适用于接收DMA传输数据和将DMA传输数据转换为经处理的数据;和多个DMA通道接口电路,适用于接收DMA传输信号和经处理的数据。
2.如权利要求1所述的DMA控制器,其中卸载过滤器适用于对DMA传输数据分类。
3.如权利要求2所述的DMA控制器,其中卸载过滤器适用于基于DMA传输数据的分类, 将DMA传输数据划分为协议信息和核心数据。
4.如权利要求2所述的DMA控制器,其中卸载过滤器适用于基于DMA传输数据的分类, 向核心网络分组数据添加协议信息作为头部或尾部。
5.如权利要求1所述的DMA控制器,其中DMA传输数据从网络接口电路被发送。
6.如权利要求5所述的DMA控制器,其中DMA传输数据是传输控制协议/网际协议 (TCP/IP)数据。
7.如权利要求1所述的DMA控制器,其中卸载过滤器适用于从传输数据中识别并丢弃被破坏的分组。
8.一种电子设备,包括中央处理单元,适用于运行与电子设备相关联的程序; 网络接口电路,适用于在网络上接收和发送数据;和DMA控制器,适用于接收第一 DMA请求,并且基于第一 DMA请求启动第一 DMA传输,其中第一 DMA传输包括在DMA控制器处接收网络分组数据;在卸载过滤器中将网络分组数据转换为经处理的数据;和发送经处理的数据。
9.如权利要求8所述的电子设备,其中将网络分组数据转换为经处理的数据包括向网络数据分组添加或从网络数据分组中去除协议信息。
10.如权利要求8所述的电子设备,其中DMA控制器适用于接收第二DMA请求,并且在网络分组数据在卸载过滤器中被转换为经处理的数据的同时,基于第二 DMA请求启动第二 DMA传输。
11.如权利要求10所述的电子设备,其中DMA控制器包括控制电路,该控制电路适用于在DMA传输数据被转换为经处理的数据的同时,根据DMA请求执行DMA传输。
12.如权利要求11所述的电子设备,其中DMA控制器包括适用于基于权重值给第一 DMA请求和第二 DMA请求分配优先级的调度器。
13.如权利要求12所述的电子设备,其中调度器适用于基于第一DMA请求和第二 DMA 请求已经处于调度器的队列内的时间长度,撤消第一 DMA请求和第二 DMA请求的优先级。
14.一种利用DMA控制器转换数据的方法,包括在DMA控制器处从网络接口电路接收未处理的数据; 在DMA控制器中将未处理的数据转换为经处理的数据;和将经处理的数据发送给目标设备。
15.如权利要求14所述的方法,其中将未处理的数据转换为经处理的数据包括从未处理的数据中去除协议信息。
16.如权利要求14所述的方法,其中DMA控制器包括适用于将未处理的数据转换为经处理的数据的卸载过滤器。
17.如权利要求16所述的方法,其中DMA控制器在卸载过滤器将未处理的数据转换为经处理的数据的同时,执行DMA传输。
18.一种转换数据的方法,包括在DMA控制器处接收第一 DMA请求;和基于第一 DMA请求启动第一 DMA传输,其中第一 DMA传输包括 在DMA控制器处接收网络分组数据;在DMA控制器内的卸载过滤器中将网络分组数据转换为经处理的数据;和发送经处理的数据。
19.如权利要求18所述的方法,其中将网络分组数据转换为经处理的数据包括基于从控制电路发出的命令信号,向网络数据分组添加或从网络数据分组去除协议信息。
20.如权利要求18所述的方法,包括接收第二DMA请求,并且在网络分组数据在DMA控制器内的卸载过滤器中被转换为经处理的数据的同时,基于第二 DMA请求执行第二 DMA传输。
21.如权利要求20所述的方法,包括基于预先安排的加权值给第一DMA请求和第二 DMA请求分配优先级。
22.如权利要求20所述的方法,包括基于第一DMA请求和第二 DMA请求已经排队的时间长度,撤消第一 DMA请求和第二 DMA请求的优先级。
全文摘要
公开了用于将DMA控制器处理的数据传送通过传输过滤器的方法和系统。该方法包括DMA控制器访问要在系统中的原始位置和系统中的目的地位置之间传输的数据。在被发送到目的地位置之前,所访问的数据被传送通过DMA控制器。在数据被传送通过DMA控制器时,数据被传送通过传输过滤器以进行处理。该处理可以包括添加或去除传输协议头部和尾部,以及确定数据的目的地。该处理还可以包括基于散列的分组分类以及校验和的生成和校验。在完成该处理之后,数据被直接发送到规定的目的地位置,通常是存储器电路或I/O设备。
文档编号G06F13/12GK102171665SQ200980138602
公开日2011年8月31日 申请日期2009年8月7日 优先权日2008年9月30日
发明者·康罗伊 D·G, M·卡伯特, T·J·米利特 申请人:苹果公司