发一下牢骚和主题无关: [ 声明:版权所有,欢送转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 从消费电子的soc芯片来讲,当初海内从事芯片设计的企业还是很多的,这其中有新岸线.瑞芯微.全志.炬力等等.一个完整的soc芯片其实包含了很多货色,比如说cpu核.总线.gpu核.gpio.timer.spi.i2c.i2s.video.sound等等.当然,这些核心,有的是买来的,比如说cpu核心,有的完全可以自己设计,比如说i2c.spi等等.现在消费电子的cpu一…
硬件中断发生频繁,是件很消耗 CPU 资源的事情,在多核 CPU 条件下如果有办法把大量硬件中断分配给不同的 CPU (core) 处理显然能很好的平衡性能.现在的服务器上动不动就是多 CPU 多核.多网卡.多硬盘,如果能让网卡中断独占1个 CPU (core).磁盘 IO 中断独占1个 CPU 的话将会大大减轻单一 CPU 的负担.提高整体处理效率.VPSee 前天收到一位网友的邮件提到了 SMP IRQ Affinity,引发了今天的话题:D,以下操作在 SUN FIre X2100 M2…
先来看一下问题, 我们通过 ifconfig 查看接口的名称 为 p15p1, 一般机器为 eth0 再通过命令 ➜ ~ cat /proc/interrupts | head -n 1 && cat /proc/interrupts |grep p15p1 CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 CPU6 CPU7 130: 6235174 0 0 0 0 0 0 0 PCI-MSI 3145728-edge p15p1 我们看到全部的网卡中断都集中到了 CPU0,…
目录 . 引言 . Linux 中断的概念 . 中断处理流程 . Linux 中断相关的源代码分析 . Linux 硬件中断 . Linux 软中断 . 中断优先级 . CPU在关中断状态下编程要注意的事项 0. 引言 中断是现代计算机体系结构的重要组成部分,我们回顾历史,现代体系结构的基本输入输出方式有三种 . 程序查询: CPU周期性询问外部设备是否准备就绪.该方式的明显的缺点就是浪费CPU资源,效率低下.但是在特定的场景下这种"程序查询"的方式还有有它的用武之地的 例如,在网络驱…
前言 中断的概念属于硬件层.虽然我们在进行软件编程时不会直接使用中断,但理解它对我们来说依然重要. 我们在使用线程切换及状态管理.异常处理.硬件与处理器的交互.I/O操作等指令时,中断都在默默的为我们服务. 处理器基于硬件封装对外的指令集,底层语言封装指令集为我们提供更加简单的抽象,高级语言基于底层语言赋予程序更明确的语义.可以看到在这条关系链条中,下层的变动会牵一发而动全身影响上层.而上层想要提高效率,改变机制也必须得到下层的支持. 像 I/O 处理的不断演进,从占用CPU等待到通过中断阻塞等…
在Linux的网络调优方面,如果你发现网络流量上不去,那么有一个方面需要去查一下:网卡处理网络请求的中断是否被绑定到单个CPU(或者说跟处理其它中断的是同一个CPU). 先说一下背景 网卡与操作系统的交互一般有两种方式, 一种是中断(IRQ,网卡在收到了网络信号之后,主动发送中断到CPU,而CPU将会立即停下手边的活以便对这个中断信号进行分析), 另一种叫DMA(Direct Memory Access, 也就是允许硬件在无CPU干预的情况下将数据缓存在指定的内存空间内,在CPU合适的时候才处理…
https://zh.wikipedia.org/zh-cn/网段 在以太网环境中,一个网段其实也就是一个冲突域(碰撞域).同一网段中的设备共享(包括通过集线器等设备中转连接)同一物理总线,在这一总线上执行CSMA/CD(载波监听多路访问/冲突检测)机制.不同网段间不共享同一物理层,因此不会跨网段发生冲突(碰撞). 现代高速以太网通常使用交换机代替集线器,交换机是工作在数据链路层的设备,由它转接的两组设备不在同一网段中.事实上,交换机为连在其上的每一个独立设备各自划分出一个独立的网段,每个网段只…
中断方式与轮询方式比较   中断的基本概念 程序中断通常简称中断,是指CPU在正常运行程序的过程中,由于预选安排或发生了各种随机的内部或外部事件,使CPU中断正在运行的程序,而转到为相应的服务程序去处理,这个过程称为程序中断. 二.80x86微处理器的中断 80x86微处理器的中断类型一般分为2类,即由于执行某些指令引起的软中断和由处理器以外其他控制电路发出中断请求信号引起的硬中断. CPU要从主程序转入中断服务程序,必须知道该中断服务程序的入口地址,即中断向量.80x86为CPU的PC机共有2…
CPU 上下文切换是什么 CPU 上下文切换,就是先把前一个任务的 CPU 上下文(也就是 CPU 寄存器和程序计数器)保存起来,然后加载新任务的上下文到这些寄存器和程序计数器,最后再跳转到程序计数器所指的新位置,运行新任务. CPU上下文的分类 CPU 上下文切换根据任务的不同,可以分为以下三种类型 : 进程上下文切换 - 线程上下文切换 - 中断上下文切换 引起上下文切换的原因有哪些? 对于抢占式操作系统而言, 大体有几种: ​    ​1.当前任务的时间片用完之后,系统CPU正常调度下一个…
http://wenku.baidu.com/link?url=mMKDH_fKmUXN7L6rANIFHjoHdKCYBLlDrqoYB1daDTEkNFk9Bt9xlJtS_4BKBj6w22WDrUWO3PNjf6UpYxwMfkX206E9qVBtg3RgYe4ScOG 本文档的个: 1)  当网卡接收到一个数据包,并通过DMA方式写入内存,此时网卡会向前移动rdh,并发送网卡中断。 2)  网卡发送完数据包,并移动tdh,当tdh移动次数达到一定数量,或者tdh等于tdt的时候会发生网…