基于DMA引擎的高速网卡的性能分析

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2 数据接收过程 3
数据的 接收过程如下: ) ( 驱动程序初始化所 1 有可用的接收描述符。然后, 驱动程序通告网卡接
收描述符在内存的起始地址以及可用接收描述符
的个数; ) A引擎根据接收描述符的起始地址 ( D 2 M
信息和其他相关信息通过 D A方式将所有可用的 M
微电子学与计算机
20 年第2 卷・ 06 3 增刊
微电子学与计算机
基于 D MA引擎的高速网卡的性能分析
戴 斌 孙志刚 卢泽新
( 科技大 国防 学计 算机学院. 湖南长沙407) 1 3 0
摘 要: 随着D A技术在高 M 速网卡设计中的 广泛应用,M D A引攀已 经成为网卡提高其和主机问 通讯效率的一 个 重要组成部分。M D A引攀的主要功能是进行主机和网卡之问的接收和发送数据以及描述符的传送。 进一步清 文章
sma tn l cn l= n a ds} o v ha c i = i , a o a m c a
K y od : 人 Eg efg-pe NC e w rs D M ni ,i s d nlh e I
1 引言
为便于驱动程序和网卡之间接收和发送描述符的
为减轻主机 P CU负担, 高速网卡采用D A方 M 式作为其与主机交换数据的方式'.M 【] A引擎随着 -D ' D A方式在网卡中的 M 应用而出 现。 M D A引擎的主
() 5 发送描述符的 下载完成 D A引擎就 后,M 根据发
送描述符的内容发动D A操作, M 将发送描述符指 向的数据报文发送到网络上; )当 ( 发送报文的数 6 量达到发送中断阀 值时,M D A引擎通告主机发送中 断, 从而驱动程序开始进行发送中断的处理, 并进 行发送描述符的回 当 收( 发送报文的数量未到发送 中断的阀值但发送超时的 情况下,M D A引擎亦通告 主机发送中断) 。 随着网络链路速率的 提高以 PI (C E- 及 Ce I P x
20 0 6年第 2 . 3卷 增刊
接收描述符下载到D A引擎;3 当有数据报文 M () 到达网卡时,M D A引擎就根据接收描述符指示的地 址发动一次D A操作, M 将到达的数据报文写人主 机内 () A 存; D 操作完成后,M 4 M D A引擎又立即发 动另一次D A操作,回 M 写刚才已 使用的接收描述 符中的若千信息; )当接收报文的数量达到接收 ( 5 中断的阀 值时,M D A引擎通告主机接收中断, 从而 主机处理接收数据并进行接收描述符的回收( 当接
p(}} + 且1 整 xO i n1 为正 数) ,
新的可用 发送描述符到达驱动程序
的时 刻
M P , -< 且1 E -( i O n 为}V数》 O A引擎置发送中断的时刻
2城 (巧年第 2 卷 ・ 3 增刊
. . . . . . . .. . . . . .. . . .. . . . . .. . .. . . .. . . . . .. . . . . . . . .. . . . . . -. ..

枯与d 气礴枯‘ “ ,
_ _ _ 一 L 」一 一 __ 」 一 」
枯 “ 源自文库加. 二1 ‘ ]
图7 报文接收处理模型
表 t数据接收过程的抽象模型中的变量说明
变量符号 变量说明
M , s + 且1 ; o 数据的发送过程如下: 1 驱动程序初始化所 t(si nl 为正樱教)可用接收描述符到达 O A引笨的时刻 () M -(, } 为正铭数) D A引擎置接收中断的时刻 有可用的发送描述符, 同时通告网卡发送描述符的 t O i 且1 驱动程序将接收中断处理的接收描述 在内存中的 起始地址;2 当 () 有数据报文需要发送 e.O in且1 x (f< : x 为正整数) 符个数通告 D A引擎的时刻 M 时, 驱动程序将数据报文在内存中的起始地址和报 文长度填写到发送描述符的相应域中;3 发送描 () 为进一步分析, 定义下列符号: 哪为接收中断 述符填写完成后, 驱动程序就通告网卡此次需 网卡 阀值, 单位为个数; ̄为网络的最快报文到达速 , 单位为个数/ T为驱动程序在一次接收中断 秒; 要处理的发送描述符个数; ) M ( D A引擎发动一次 率, 4 个报文所花费的时间, 单位: T 秒; 为驱动 D A操作将需要处理的发送描述符下载到网卡上; 中处理n M
发送描述符不进行回写的情况。
tm e ,
_ _ _. 1 」一 __
几呀 加 尸 二八旧‘
八 八. 十 .A-. ,
图2 数据发送过程的抽象模型
表 2 数据发送过程的抽象模型中的变量说明
变量符号
变量说 明
3 性能分析 D A引擎利用接收和发送描述符完成网卡 M 和 主机之间的数据的传送工 因此, 作, 接收和发送描 述符的设计至关重要。 设计主要包括接收和发送描
__ _ t __
几 t } , o ‘
tm e t
超时的情况下, M D A引擎亦通告主 机接收中断) ; () 6 主机在完成接收描述符的回收后又将此次处理 完成接收描述符个数通告给D A引擎,M M D A引擎 根据相关信息读取可用接收描述符。
2 数据发送过程 A
A a s o te fr ne H gepe N C sd n l i n P r mac o i s d B e o y s h e o f hse I a n
DM A 界n En e
D I , ZiagL Z-n A B S N - n, e i i U hg n U x
程序将接收中断处理的接收描述符个数通告 D A M 引擎到可用接收描述符到达 D A引擎所花费的时 M
间, 秒; 接收描述符的总个数, 个。 单位: N为 单位: 定理 1 当二 )几,  ̄时,M D A引擎在任何时 刻都不存在接收停顿的重要条件是: 3 T N ( ) T十
v + , - m
要功能是进行主机和网卡之间的接收和发送数据
以及接收和发送描述符的传送。
2 MA引擎的处理模型 D
目 高速网卡都采用D A 前, M 方式作为其与主 机交换数据的 手段。 M 在D A方式中, 卡在数据读 网 写前必须知道其读写的内存地址,M D A引擎中 接收
和发送描述符的主要任务就是为网卡 提供这样的 地址信息。 2 . 1接收和发送描述符队列 D A引擎包含了两个描述符队列即接收描述 M 符队列和发送描述符队 列。 网卡进行正确数据传送 的必要条件是接收和发送描述符的正确传送。 无论 是发送描述符还是接收描述符都涉及到同收问题,
收稿 日 20- 3 1 期: 0 f - 8 i 0
协同, 描述符的队列结构通常被设计成环状。描述 符队列长度跟描述符的个数有关。 2 中断 . 2 机制 D A引擎的中断产生时机决定了网络中断的 M 次数。 为了减少报文接蜘 发送中断的次数,M D A引 擎通常是接收/ 发送了一定数量的报文后才置接收/ 发送中断。 这个固定的报文数量被定义成接收 发送 j 中断阀值。在一定的应用情景下, 报文到达泼 送速 率比 较慢, 为了避免网 络延迟过大,M D A引擎设置 了接收和发送定时器。 在接收到 发送下一个报文 当 / 前接收 发送定时器超时时,M / D A引擎就置接收/ 发 送中 断。
(col o pt , oaU i rtoD f s Tcnl yCag a 03C i ) Shoo Cm u rNtnl v s e n eho g, ns 407, a f e a i n e i f e e y o h h 1 h n
A sat A D A i lue it h h e NC i , e A i it NC b o e i bt c s iwd y d h i s ed dsn t D eg e h I hs m oe r : M s e s n g p e I eg h M n n n e a e c nm - p cm oet m r e c m n ao eiec bte e t t NC Te if co oD A - opnntip v t o ui tn c ny we o o h m c i f i e f e n山 hsad I. m n tn M a o n h e h a u i f n n 即n i o d t r i a tn i a a d cp r s rb we t h t o t N . p- e s a l h e v n r s t n e rt tn e e e h o m m ra h I Ti a thn e c e a m dt d io r fs n s e y n e h e e d a s a t e d C s te c ie a tn i r e o t h hs e NC n D A i i d a . i l bi h r e e v n r s t s f i e p 『1 七 d m p c s h gs e I ui M eg e ei A d s ut a o e p d s g n n n l n t ts a o l s te sr c mo es t e r ee tn i r e ot h -pe N u n D A i . n o t m d s h a t t d l o h e i a r s t s f i s d s g e n Bs g h oe, h a f cv n a m p c s e d o h 目 e I i M n e a C g i n e l
微 电子学与计算机
图2 示, 个 过 从p时 开 到p 结 所 整 接收 程 。 刻 始 Z 、》
束。图2 中变量的说明 见表2 0 为进一步分析. 定义下列符号: ,为发送中断 阀值, 单位为 个数; 为协议 驱动程序传送的 缅 层向 最大报文速率, 单位为个数 秒沪为D A引擎置发 / M
有可 用发送描述符发送协议层下来的发送报文。 我们建立了数据发送过程的抽象模型, 我们将 以F动程序为主 体讨诊报文的发送过程抽象成如
__ _  ̄ I I ___
o P P,
D A引擎, M 发送数据就几乎可以1 % 0 的正确的被 0 发送。 这样处理简化了D A引擎的逻辑设计并且 M 提高了数据传输的 效率。 本文后续的 分析也是基于
证明 较为简单, 故略, 后同。 定理2 当。 兀, D A引擎在任何时刻都 < 二,M 不存在接收停顿的充要条件是N T-o - 2v
定义2 驱动程序发送停顿是指驱动程序上没
p s 接口 rs 技术的 现, 速网 始 e) 出 高 卡开 采用PI作 C e
为其与主机的接口 技术。 在处理发送描述符的过程 中没有涉及发送描述符的回写, 这是由于考虑到 P I传输可靠性的提高, Ce 发送描述符只要下载到
晰了采用D A引攀的高速网卡的数据接收和发送过程并且建立了采用 D A引举的高速网卡的数据接收和发送 M M
过程的 模型 在此 上, 抽象 。 基础 得出了 有价值的 论。 一些 结 关键词: M , D A 引攀, 高速网 卡
中图分类号二 P9. T33 5 0 文似标识码: A 文章编号:0078( 0) -03 3 10-1 2 6S0 5- 00 O 0
收报文的数量未到接收中断的阀值但接收定时器
述符的数据结构设计,队列结构设计以及个数设 计。
定义 I A引擎接收停顿是指 D A引擎上 M D M
没有可 用接收描述符接收到达报文的状态。 建立如图1 所示的报文接收过程的处理模型。 采用一个时间点刻划一个事件的发生, 那么, 一个 阶 段包含了四 时间点。图1 接收过程从t时刻 中, 。 开始到t U 3 结束。 ( o r 图1 变量的说明见 , 中 表1
相关文档
最新文档