Packet_RX微块的初步分析

上传人:奔*** 文档编号:44067904 上传时间:2021-12-05 格式:DOCX 页数:4 大小:17.18KB
收藏 版权申诉 举报 下载
Packet_RX微块的初步分析_第1页
第1页 / 共4页
Packet_RX微块的初步分析_第2页
第2页 / 共4页
Packet_RX微块的初步分析_第3页
第3页 / 共4页
资源描述:

《Packet_RX微块的初步分析》由会员分享,可在线阅读,更多相关《Packet_RX微块的初步分析(4页珍藏版)》请在装配图网上搜索。

1、微块的初步分析微块从网络接口接收分组,建立起分组的缓存和元数据,调用微块将分组信息写入便笺环。 函数由微块所在的调度环提供。微块的主函数在中,它作为调度环的主函数,完成调度环的初始化和主循环。分组的接收是以字节的为基本单位进行的。在接收的过程中, 微引擎软件需要将一个个在中重装起来。 为此,接收微块是一个有状态的线程。一个分组的接收在多个线程之间交替进行,无论哪个线程都可以为一个分组接收并重装其中的一个。每个线程在接收一个时需要恢复分组接收的状态,接收完后需要保存分组接收的状态。分组接收的状态保存在一个称为分组接收上下文的数据结构中。 分组接收微块在本地存储器中为每个端口建立起接收上下文的信息

2、字,构成一个数组。它们是同一微引擎线程间共享的数据,存放在固定的存储位置,线程可以随时读取其中的信息。线程如果接收到一个带有的,则建立起新的分组的接收上下文,以后每接收到一个中间都对接收上下文进行修改,接收到带有的时完成分组元数据的构造。接收上下文的信息字作为数据类型,在中定义。分组接收微块采用有序的并行工作方式,在完成每一阶段的操作之后都要向下一个线程发出信号, 使得下一个线程开始这一阶段的操作。有序的执行方式一般还要求线程在开始操作的第一步动作之前需要等待上一个线程的信号,以保证操作的有序性。线程等待上一个线程的同步信号可以调用内建函数。但是对于分组接收的微块来说,第一步动作的这种有序性由

3、的硬件来保证。的能够自动地接收分组,而不需要微引擎发出接收的命令。接收的放在中, 然后将一个相关的状态字放入队列中。这个队列保证有序地得到微引擎的处理。微引擎在接收时发出请求,将自己放入 接收线程自由链表中。然后中的控制器将中的一个以及有关接收状态交给下一个接收线程自由链表中的微引擎。微引擎得到这个后进行分组的缓存和重装操作。在分组接收的微块中, 调用函数将线程加入到接收线程自由链表中。这个函数是微块自定义的,在中。第一次调用在初始化的过程就进行了,以后每接收完一个再调用一次。对于每个单元,生成位的接收状态字 (),描述单元的内容和状态。微引擎得到单元的同时也得到了的接收状态字。 根据的接收状

4、态字, 分组接收微块对接收的分组状态进行判断,然后进行分别处理。这些状态有:期望 ,接收到了一个带有和标志的,有效。一个分组带有和标志说明它是一个短分组,只有一个。期望或,接收到了一个带有和标志的,错误。期望,接收到了一个,错误。期望,接收到了一个,错误。期望或,接收到了一个带有标志的,错误。期望,接收到了一个,有效。期望或,接收到了一个,有效。期望或,接收到了一个带有标志的,有效。分组接收之前, 调度环进行接收的初始化,调用微块中的函数。初始化函数对调度环变量和缓存句柄进行初始化,号线程还要初始化线程间信号,初始化单元, 设置接收端口及其控制寄存器, 调用进行调度环的初始化等。然后各个线程对

5、各自的便笺环进行初始化,对中的缓存句柄进行初始化等。每个线程在初始化时还将自己加入到接收线程自由链表中开始分组的接收。 微引擎的号线程还要对的接口控制寄存器进行配置,将的单元设置为字节,将接收接口的模式设置为模式。分组的接收通过循环调用中的函数实现。每次调用函数之前先读取接口的状态。函数首1 / 3先向下一个线程发出信号,然后设置接收端口号。如果接口没有错误,则进行分组接收状态的进一步判断和处理。如果接口有错误,表示没有接收到分组,则线程等待。分组接收状态的进一步判断根据、和三个状态位进行。这三个状态位的种组合分别代表、状态。 然后调用相应的处理函数进行分组的接收操作。 这些处理函数定义在中。

6、 上述和是分组接收的状态信息。 状态位是分组接收上下文中的一个状态位,有开始状态、处理状态两种。前一种状态是开始接收一个新的分组的状态,后一种状态是继续接收分组的状态。前一种状态下,接收到的分组应该带有标志; 后一种状态下, 接收到的分组应该带有标志。 函数最后再次将自己放入接收线程自由队列中,准备接收下一个单元的数据。为了判断接收的状态,.中定义了一个数据类型,用于读取单元的。将分组接收的状态写入这个寄存器中, 包括和状态。 寄存器变量就是这个数据类型。 这是一个两个长字的结构,但大部分是保留的。的格式与接口的模式有关,在模式的格式如下:通道保留保留保留单元保留校验和保留不同接收状态下的操作

7、如下:期望,接收到和的。计算分组缓存地址偏移量,将从送入缓存,读入的前个字节,将元数据写入,释放,等待接收下一个分组,将设置为。期望非,接收到和的,错误。丢弃已接收到的部分分组内容,将接收到分组做为新的分组进行处理 (调用 )。期望,接收到 ,错误。将 设置为 ,等待接收下一个分组。期望,接收到,错误。将 设置为 ,等待接收下一个分组。期望非,接收到的,错误。丢弃已接收到的部分分组内容,将接收到分组做为新的分组进行处理 (调用 ) 。期望,接收到 。计算分组缓存地址偏移量,计算缓存长度、分组长度、端口号等分组接收上下文信息,将从送入缓存,将元数据写入,释放,将设置为,等待接收下一个分组。期望非

8、,接收到 。更新缓存长度和分组长度等分组接收上下文信息,如果缓存未溢出,将从送入缓存,并计算信元数,将设置为,等待接收下一个分组。期望非,接收到的。将从送入缓存,并计算信元数、缓存长度合分组长度,准备接收新的分组。构造分组的元数据,并写入。分组的缓存总是预先请求分配的,以避免缓存分配的延迟。这是一种异步的缓存分配方式,在调度环初始化时就为第一个分组缓存进行了分配。 以后每用完一个缓存, 就立即请求分配下一个缓存。 而且每次在获得分配的下一个缓存后就立即根据缓存句柄计算该缓存在中的地址:()尽管缓存作为调度环管理的对象, 但是微块中可以调用调度环提供的缓存操作函数进行缓存的分配和释放。分组在缓存

9、中的起始地址偏移量是在、之间轮转的, 为此设置了函数来生成地址偏移量。2 / 3如果在将的数据传送到的缓存中去时,出现了缓存溢出的情况,则使用一个新的缓存。如果能够得到新的缓存, 则将的数据传送到的新的缓存中去,并且建立起新的分组接收上下文,还要建立起缓存的元数据,以便于分组的多个缓存之间的连接。缓存的元数据是调度环变量, 其中记录了缓存的长度、下一个缓存元数据指针和缓存内的偏移量。如果不能够得到新的缓存, 则将缓存中的分组丢弃, 准备接收一个新的分组。这种情况出现在分组的长度大于的情况。 新的缓存在使用时没有偏移量,从缓存的起始地址开始存放分组数据。上述这种处理流程出现在的接收状态下。在接收

10、到带有的时, 说明这是分组的最后一个。这时, 根据缓存中的情况决定如何构造分组的元数据。如果本缓存中带有的,说明分组全部在同一个缓存中,只需处理一个缓存,这时构造分组的元数据,并将其写入即可。调度环变量指向这个缓存,调度环变量为空()。如果接收上下文显示出在本缓存中不带有的,说明分组跨越多个缓存,是一个大的分组, 必须将先前的缓存元数据与当前缓存的元数据一起写入。这时还要判断上一个缓存的元数据中是否包含标记。 在分组接收上下文中记录了上一个缓存的句柄,记录了缓存的句柄,从这些句柄中可以得到缓存的信息。在分组接收上下文中还记录了分组的长度,第一个缓存中的偏移量等信息。 这些信息构成了分组的元数据。构造元数据的操作不在分组接收微块中,而是调用调度环提供的微块来完成。微块在接收完一个完整的分组之后,才将设置为。 其他情况下都将设置为,或暂时设置为。参考文献 ,(): ,.3 / 3

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!