免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2424 | 回复: 6
打印 上一主题 下一主题

如何保证物理内存的内容不被覆盖 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-09-03 22:29 |只看该作者 |倒序浏览
最近在思考这么一个问题.
   任何一款芯片(比如网卡)一般都有自己的内存,这款芯片一旦整合到系统中,会被分配一个固定大小的空间,比如2k,或者512Byte(一般不会大于芯片自己的内存)
  我的疑问是这么小的内存空间,如何保证数据包的及时接收而不导致覆盖掉前一帧的数据. 有没有特别的控制机制.比如算法之类的.

忘赐教.

论坛徽章:
0
2 [报告]
发表于 2009-09-04 09:15 |只看该作者
所谓"及时"是系统内部相互协调的,如果数据处理不过来.而有新的数据要接受,通常就是丢弃以前的包,从信息角度看,后面的包比前面的可能具有更大的信息量.

比如2k,或者512Byte,一般网卡内存不会这么小,一个数据包就占1500以上的字节...而且保证和系统协同工作必定能存储多个数据包,还考虑到双向收发肯定远远大于这个,难道你的是配置空间?

[ 本帖最后由 epegasus 于 2009-9-4 09:18 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2009-09-04 16:24 |只看该作者

回复 #2 epegasus 的帖子

我只是举了这么例子,2k是网卡而言,确实太少了.呵呵.
我想了解的是你提到的"系统内部相互协调",这种协调是不是有software(某种算法)来实现的.

另外在问一个和本帖子不大相关的问题.
常听到说,这款硬件不支持某种功能.个人觉得是硬件少了什么芯片.而不是说有芯片而没有想对应的软件.比如MMU的功能. 大侠能不能在给稍微说下.不胜感激.

论坛徽章:
0
4 [报告]
发表于 2009-09-28 11:27 |只看该作者
一般来说,硬件只完成接收过程,剩下的过程都由软件去处理,软件可以采取以下策略:
1.  硬件接收完之后停止,等待软件去处理。软件处理完之后硬件重新启动,接收后续的数据。
2.  硬件一直接收数据,软件有空闲的时候再去处理数据。
无论采取何种策略,都有可能导致数据丢失。
必须保证软件处理速度大于硬件接收速度,才能保证接收-处理流程可以正常运行。
为了应付某些突发事件,软件可以设置若干级的缓冲;当某一段时间内CPU忙于处理其它更高优先级的任务时,可以先将硬件接收的数据缓存下来;当CPU空闲下来的时候再对数据进行软件处理。

论坛徽章:
0
5 [报告]
发表于 2009-09-29 05:50 |只看该作者
“常听到说,这款硬件不支持某种功能.个人觉得是硬件少了什么芯片.而不是说有芯片而没有想对应的软件.比如MMU的功能. 大侠能不能在给稍微说下.不胜感激.”

这个问题我觉得没啥意义。其实INTEL CPU最早出32BIT的时候,还没有软件(OS)真正用它,只是后来才开始用的。另外,X86 的 RING 1, RING2 也是硬件提供了,但是基本没有软件在用的。

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
6 [报告]
发表于 2009-10-19 12:20 |只看该作者
原帖由 怪怪虎 于 2009-9-4 16:24 发表
我只是举了这么例子,2k是网卡而言,确实太少了.呵呵.
我想了解的是你提到的"系统内部相互协调",这种协调是不是有software(某种算法)来实现的.

另外在问一个和本帖子不大相关的问题.
常听到说,这款硬件不支持 ...

打个比方,芯片收到数据了,就中断一下处理器,处理器接收到中断,就去读一下芯片里的数据.

论坛徽章:
0
7 [报告]
发表于 2009-10-20 17:18 |只看该作者
对于网卡芯片来说,卡内的内存都是分页的,每个页可以用来存可以数据包。其实就是一个小小的缓冲了。当收到数据包的时候会产生一个中断调用中断处理程序来取这个包。一般来说,中断处理程序会把数据包拷贝到系统内存中去,然后一级一级的往上传,直到用户程序。

当页面用完的时候,可以丢弃缓存中最老的数据,压入新的数据。弹出的数据当然也就丢弃掉了。也可以将新数据直接丢弃。但是,后者其实并不好。

所以,内部在硬件即便并不保证丢失的。要想不丢失只能在软件级别实现。这也是为什么需要有TCP协议来进行可靠传输的原因。当然,数据丢失的情况很多,这只是其中的一种而已。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP