范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

PCI驱动开发概括

  #程序员# #IT教育#
  2020年底就找类似本文的内容,一直没有,好不容易在国外找来,所以内容整理不易,里面关键部分没有展示,但是认真看也能学到东西,想学驱动开发找锐英源,锐英源结合英语能力和开源能力帮你深入学习驱动。驱动开发培训也是中年程序员转型的好方向。这里也谢谢外文作者。
  发展
  1 摘要
  就本文作者所知,没有发表的著作来阐述外围组件接口(PCI)设备软件仿真的好处或可行性。
  在21世纪,商业上可行的PCI设备必须具有即插即用,电源管理,基于Web的企业管理和分散收集DMA的能力。包含所有这些功能的设备仿真软件是可行的。
  本文讨论了PCI设备模拟器的许多好处和用途以及如何生产一个。 2 INTRODUCTION 2引言
  在过去的二十多年中,PCI总线及其派生工具在所有小型计算机平台上的采用都在爆炸式增长。市场上有无数的PCI设备。为了改善性能和扩展功能,PCI总线已经过多次修订。
  有一个PCI特殊兴趣小组,有大约一千名成员,主要是第三方硬件供应商,他们合作评估和采用PCI总线不同方面的标准以及与PCI设备的互操作性。
  简而言之,PCI总线的质量至关重要。在小型计算机的生命周期中,它将以某种形式出现。
  在公共领域的文献中有几篇发表的论文描述了PCI总线本身的软件仿真。 Windows设备驱动程序手册Dekker和Newcomer中提供了有关硬件模拟器的描述。 [Dekker&Newcomer,1999]。这项非常令人钦佩的工作模型化了NT 4.0上的字符模式设备,不幸的是,由于多种原因,它已经过时了。 3 仿真的好处和用途
  当仍在硬件实验室中设计PCI设备或无法从制造中获得足够数量时,对PCI设备进行软件仿真最为有用。与硬件设计和/或制造并行开发设备软件可以节省数周或数月的日历时间。
  几年前,我参与了一个项目,当时一个小公司在完成存储设备的设计,然后从台湾的制造工厂获取数量时遇到了困难。我们实现了目标设备的基本仿真,该仿真允许在用户模式下行使目标设备驱动程序的设备管理部分。多个日历月中的许多人月专用于实现模拟并围绕设备驱动程序构建测试软件。但是,当设备到货时,我们第一次在Linux和Windows上都使用了完整的内核模式驱动程序。
  一个好的设备模拟器无需物理设备即可进行即插即用和电源管理。一个好的模拟器可能会模拟很难创建的错误情况:设备故障,设备电源故障或无法轻易使实际设备产生的错误。可以实现100%设备驱动程序源代码覆盖率。
  设备模拟器也可以是有用的培训工具,用于为开发设备驱动程序的软件工程师开发设备驱动程序。几年前,我参加了一个驱动程序开发课程,该课程的开发人员(Dekker&Newcomer)为学生提供了一个准系统的设备模拟器,而不是设备套件。基本上,这是他们的调试实验室的工具。但这是在软件中开发功能齐全的设备模拟器的灵感。
  当目标平台在平板电脑方面可能具有有限的工具,在嵌入式系统方面却具有有限的访问权限,则设备模拟器可以在具有良好开发,测试和调试资源的平台上进行开发。最后,PCI总线和设备仿真的内核模块必须是PCI总线驱动程序的子集,因此必须是支持子设备的任何总线驱动程序。它将被证明是将来总线驱动程序开发的基础。 4 PROPERTIES OF PCI DEVICES RELEVANT TO SOFTWARE 与软件相关的4种PCI设备的属性
  Nearly all PCI devices have these properties that driver software must manage:
  1) They have a formatted configuration space containing information about identity and behavior properties. 几乎所有PCI设备都具有驱动程序软件必须管理的以下属性:
  2) They are memory-mapped. 1)它们具有格式化的配置空间,其中包含有关身份和行为属性的信息。
  3) They issue interrupts to the host. 2)它们是内存映射的。
  4) They transfer significant chunks of data to/from the host – usually through Direct Memory Access (DMA). 3)它们向主机发出中断。
  5) They must conform to plug-n-play and power management expectations of the host operating system (OS). 4)它们通常通过直接内存访问(DMA)与主机之间传输大量数据。5)它们必须符合主机操作系统(OS)的即插即用和电源管理要求。 4.1 PCI DEVICE HOST COMPUTER ENVIRONMENT4.1 PCI设备主机计算机环境
  The diagram on the following page shows the host computer environment of a PCI device. From top to bottom we have: a test application which wishes to communicate with the device, the device driver that the test app interacts with, the bus driver that manages the PCI bus, and the PCI bus itself with the target device mounted onto it. 下一页上的图显示了PCI设备的主机环境。从上到下,我们有:一个希望与设备通信的测试应用程序,该测试应用程序与之交互的设备驱动程序,管理PCI总线的总线驱动程序以及安装有目标设备的PCI总线本身。
  Observe that the test app interacts with the device (driver) through opens, reads, writes and Inputoutput controls (IOCTL)s. Also that the PCI device issues an interrupt to the host through the PCI bus,and the OS kernel delivers this interrupt to the device driver through a table lookup. Finally,observe that data is transferred – DMA or buffered – between the target device and driver, through the PCI bus. 观察到测试应用通过打开,读取,写入和输入输出控件(IOCTL)与设备(驱动程序)交互。另外,PCI设备还会通过PCI总线向主机发出中断,并且OS内核会通过表查找将此中断传递给设备驱动程序。最后,观察到数据通过PCI总线在目标设备和驱动程序之间进行了DMA或缓冲传输。 4.2 PCI DEVICE AND BUS INTERACTION WITH THE HOST KERNEL 4.2 PCI设备与主机内核的总线交互
  The following diagram shows the PCI bus driver and a PCI device driver interacting with the host kernel. Observe that device configuration space is maintained by the bus driver and is available to the appropriate device driver through kernel services. Also that the bus driver informs the kernel Plug-and-Play (PnP) manager of a new device instance on the bus. Finally observe that the kernel PnP manager assigns all resources needed by the device driver for the device. 下图显示了与主机内核交互的PCI总线驱动程序和PCI设备驱动程序。请注意,设备配置空间由总线驱动程序维护,并且可以通过内核服务供相应的设备驱动程序使用。总线驱动程序还将总线上的新设备实例通知内核即插即用(PnP)管理器。最后观察到内核PnP管理器为设备分配了设备驱动程序所需的所有资源。
  4.3 CONFIGURATION SPACE 4.3配置空间
  There is a 256 byte formatted configuration space in host memory for every device on a PCI bus. PCI总线上每个设备的主机内存中都有256字节格式化的配置空间。
  This memory is maintained by the bus driver. Configuration space contains two sets of information: 该内存由总线驱动程序维护。配置空间包含两组信息:
  identity and properties. 身份和属性。
  The identity information is: Vendor_Id, Device_Id, Revision_Id and Class Code. This information is sufficient to indicate which device driver should be assigned to the device, and what set of features are supported by the device.身份信息是:Vendor_Id,Device_Id,Revision_Id和类代码。此信息足以指示应将哪个设备驱动程序分配给该设备,以及该设备支持哪些功能集。 4.4 MEMORY-MAPPING4.4内存映射
  A PCI device will have a set of read-writeable registers that the host will use to program the device and determine device state. In addition, there may be other banks of memory on the device for other purposes. Each of these banks of device memory are assigned a physical address by the OS. 一个PCI设备将具有一组可读写的寄存器,主机将使用它们来对该设备进行编程并确定设备状态。此外,设备上可能还有其他存储体用于其他目的。操作系统为这些设备存储库中的每一个分配了一个物理地址。
  Examples are device firmware accessible by the host and the Controller Memory Buffer of NonVolatile Memory express (NVMe) devices.
  We say that these memory banks are mapped into the host’s physical address space. These addresses are stored in the Base Address Registers (0 – 5) in device configuration space. 例如,主机可访问的设备固件以及非易失性内存表达(NVMe)设备的控制器内存缓冲区。我们说这些存储库已映射到主机的物理地址空间。这些地址存储在设备配置空间的基址寄存器(0 – 5)中。 4.5 HOST INTERRUPT4.5主机中断
  When a device has completed a programmed i/o, or has a problem state to report, it issues an interrupt to the host hardware. This may be done by changing the voltage on a particular pin on the bus (legacy interrupt), or setting a specific value into a specific location of memory (Message Signaled Interrupt - MSI). The host OS is responsible for deliverying the interrupt to the kernel software module which manages the device. 当设备完成已编程的I / O或有问题状态要报告时,它将向主机硬件发出中断。这可以通过更改总线上特定引脚上的电压(旧式中断)或将特定值设置到存储器的特定位置(消息信号中断-MSI)来完成。主机操作系统负责将中断传递给管理设备的内核软件模块。 4.6 DMA DATA TRANSFER4.6 DMA数据传输
  PCI devices usually transfer significant chunks of data to/from the host random access memory (RAM). This is usually done through DMA. DMA works without requiring clock cycles from the processor or buffer copying. PCI设备通常向主机随机存取存储器(RAM)传输大量数据。这通常是通过DMA完成的。 DMA的工作原理不需要处理器或缓冲区复制的时钟周期。
  A DMA-capable PCI device will typically have a DMA controller which is capable of processing a Scatter-Gather List (SGL) in ram, formatted in a specific way. This list will contains physical addresses on the host, offsets on the device, transfer lengths and direction of transfer.具有DMA功能的PCI设备通常将具有DMA控制器,该DMA控制器能够处理以特定方式格式化的ram分散-聚集列表(SGL)。该列表将包含主机上的物理地址,设备上的偏移量,传输长度和传输方向。 4.7 PLUG-N-PLAY AND POWER MANAGEMENT即插即用和电源管理
  The PCI bus and device must perform several PnP and Power Management (PM) functions. They must plug in or unplug, and transfer to/from several different power states. A PCI device must change power state in response to system or device power state changes initiated by the OS.必须实现即插即用和电源管理函数。必须是可插拔或非可插拔,传出或接收几个不同电源状态。PCI设备必须根据OS调度修改电源状态以响应系统或设备电源状态修改。 5 SIMULATED PCI DEVICE IMPLEMENTATION 5模拟PCI设备的实现
  A software simulation of a PCI bus and device must perform the following functions: PCI总线和设备的软件仿真必须执行以下功能:
  1) Present the ‘device’ to the host OS so that the natural PnP processing proceeds. 1)将"设备"呈现给主机OS,以便自然进行PnP处理。
  2) Provide configuration resources to the target device driver – simulating the PnP Manager. 2)提供配置资源给目标设备驱动程序–模拟PnP管理器。
  3) Allocate sufficient memory for one or more devices and provide a mapping to "device memory" for both the target device driver and any device simulation UI program. 3)为一个或多个设备分配足够的内存,并为目标设备驱动程序和任何设备模拟UI程序提供到"设备内存"的映射。
  4) Invoke the target driver’s Interrupt Service Routine (ISR) exactly as the OS kernel would do so. 4)完全像操作系统内核那样调用目标驱动程序的中断服务例程(ISR)。
  5) Behave like the PCI bus or PCI device in response to external events – triggered by the UI program(s). 5)行为类似于PCI总线或PCI设备,以响应由UI程序触发的外部事件。
  The diagram on the following page shows the PCI device driver in the simulation environment. Observe that the test app interacts with the PCI device driver as before. 下一页的图显示了仿真中的PCI设备驱动程序 环境。观察测试应用程序是否像以前一样与PCI设备驱动程序交互。
  It should be completely unaware that the "device" is implemented in software. Also that there is a device node in both the simulation bus driver as well as the PCI device driver for each instance of a device. The simulation driver is under control of the user interface program. 应该完全不知道"设备"是通过软件实现的。此外,对于每个设备实例,在仿真总线驱动程序和PCI设备驱动程序中都存在一个设备节点。模拟驱动程序受用户界面程序的控制。
  The simulation driver maps "devices" into the device driver as the PnP manager would. The simulation driver invokes the device driver’s Interrupt Service Routine (ISR) when the "device" interrupts. 仿真驱动程序将PnP管理器将"设备"映射到设备驱动程序。当"设备"中断时,仿真驱动程序将调用设备驱动程序的中断服务程序(ISR)。 5.1 DEVICE PRESENTATION5.1设备展示
  As stated, every bus driver must indicate to the OS that a new device has arrived when it detects a plug-in. A simulation of the PCI bus would do the normal processing to create a new device node and call the appropriate kernel service to alert the OS that there is a change in configuration on the bus. This should cause the target device driver to do its normal processing for a plug-in. When an unplug occurs, the bus simulation must delete its device node and again call the appropriate kernel service to alert the OS that there is a change in bus configuration. 如前所述,每个总线驱动程序都必须在检测到插件时向OS指示新设备已到达。 PCI总线的仿真将执行正常的处理,以创建一个新的设备节点,并调用适当的内核服务以警告OS总线上的配置发生更改。这将导致目标设备驱动程序对插件执行其正常处理。拔出时,总线仿真必须删除其设备节点,然后再次调用相应的内核
  When a change in system or device power state is initiated by the host the device simulation should faithfully behave as the device would. 服务通知操作系统总线配置已更改。当主机启动系统或设备电源状态的更改时,设备模拟应如实地执行设备的行为。 5.2 RESOURCE MANAGEMENT 5.2资源管理
  The simulation must provide resource/configuration management parameters to the target device driver as if they came from the PnP manager. This includes a physical address for device registers,interrupt parameters (IDT entry, device IRQL, processor affinity) and physical addresses for any other banks of device memory that the driver needs to access.模拟必须向目标设备驱动程序提供资源/配置管理参数,就像它们来自PnP管理器一样。这包括设备寄存器的物理地址,中断参数(IDT条目,设备IRQL,处理器相似性)以及驱动程序需要访问的任何其他设备存储器的物理地址。 5.3 MEMORY ALLOCATION5.3内存分配
  The simulation must allocate enough memory to represent one or more devices in ram. It must provide a mapping into a virtual address space for the target device driver and the device simulation graphical user interface (GUI) program. 模拟必须分配足够的内存以表示ram中的一个或多个设备。它必须为目标设备驱动程序和设备模拟图形用户界面(GUI)程序提供到虚拟地址空间的映射。 5.4 INVOKING AN ISR 5.4调用ISR
  The simulation must invoke the target device driver’s ISR exactly as the OS kernel would. This entails running at the proper processor affinity, acquiring the spinlock specific to the device interrupt object, raising the host execution level to device IRQL, and then passing the correct arguments to the target driver ISR. These arguments would be the interrupt object and perhaps some context information and/or an MSI message-id. 仿真必须完全像操作系统内核那样调用目标设备驱动程序的ISR。这需要在适当的处理器亲和力下运行,获取特定于设备中断对象的自旋锁,将主机执行级别提升至设备IRQL,然后将正确的参数传递给目标驱动程序ISR。这些参数将是中断对象,可能是一些上下文信息和/或MSI消息ID。 5.5 BUS AND DEVICE OPERATION5.5总线和设备操作
  The simulator transfers data between the host and "device memory" as would the device. The GUI representation of the device displays the current state of the device. The simulator also behaves as does the device DMA controller. This entails processing the hardware SGL and transferring chunks of data between the host physical addresses and "device memory". 模拟器会像设备一样在主机和"设备内存"之间传输数据。设备的GUI表示形式显示设备的当前状态。模拟器的行为也与设备DMA控制器的行为相同。这需要处理硬件SGL,并在主机物理地址和"设备内存"之间传输数据块。 5.6 TARGET DEVICE DRIVER REQUIREMENTS5.6目标设备驱动程序要求
  The target device driver needs to be built for simulation_mode as distinct from real_mode, where real hardware exists. This is because the target device driver must exchange a few parameters with the device simulator so that the simulator can know how to interact with the driver as the OS would. 需要为Simulation_mode构建目标设备驱动程序,这与存在实际硬件的real_mode不同。这是因为目标设备驱动程序必须与设备模拟器交换一些参数,以便模拟器可以像OS一样知道如何与驱动程序进行交互。
  These parameters are: the interrupt object, the spinlock object for the interrupt, the device IRQL,the interrupt processor affinity, and the address of the driver ISR. 这些参数是:中断对象,中断的自旋锁对象,设备IRQL,中断处理器相似性以及驱动程序ISR的地址。
  Ideally, there would be no if-then-else logic to vary the execution path between simulation_mode and real_mode. There should only be some additional logic in simulation_mode. 理想情况下,将没有if-then-else逻辑来改变simulation_mode和real_mode之间的执行路径。 Simulation_mode中应该只包含一些其他逻辑。
  This is not good because we are missing some code coverage in simulation mode. 这不好,因为我们在仿真模式下缺少一些代码覆盖率。
  #ifdef SIMULATION_MODE… // Do it this way…
  #else…
  #endif
  // Do it this other way…
  This is the preferred way. We are merely adding code in simulation mode to help the simulator. 这是首选方式。我们只是在仿真模式下添加代码以帮助仿真器。
  #ifdef SIMULATION_MODE #ifdef SIMULATION_MODE
  //Pass some parameters to the simulator //将一些参数传递给模拟器
  #endif #万一 6 EXTENT OF USEFULNESS 6实用性的范围
  A software simulator produced from source code has no platform constraint. The target driver, user application(s) and simulation software can be built and exercised on 32 or 64 bit; X64, Itanium or ARM architecture, as well as any recent or new release of the target OS -- Windows, Linux, or other. 由源代码生成的软件模拟器没有平台限制。目标驱动程序,用户应用程序和仿真软件可以在32位或64位上构建和使用; X64,Itanium或ARM体系结构,以及目标操作系统的任何最新或新发行版-Windows,Linux或其他。
  As mentioned above, a simulator can even be run cross-platform. The device driver for a device which is targeted for the ARM architecture can be developed and exercised on legacy i386 or x64 before porting to the target platform, which may have minimal development and test support. 如上所述,模拟器甚至可以跨平台运行。在移植到目标平台之前,可以在旧版i386或x64上开发和练习针对ARM体系结构的设备的设备驱动程序,这可能对开发和测试的支持最少。
  Simulation software can be run on any native hardware platform or on a virtual machine (VM) such as VBox, VMware, or Hypervisor. 仿真软件可以在任何本地硬件平台上运行,也可以在虚拟机(VM)(例如VBox,VMware或Hypervisor)上运行。
  A software simulation of a memory-mapped device is not even constrained to the PCI bus. Should a truly new memory-mapping bus come along, or a significant enhancement to PCI(x) that software would be sensitive to, it is a simple matter to modify the simulation and target software for a different bus and configuration space, and then rebuild. 内存映射设备的软件仿真甚至不局限于PCI总线。如果出现了真正的新型内存映射总线,或者该软件将对PCI(x)进行显着增强,那么只需针对不同的总线和配置空间修改仿真和目标软件,然后进行重建,就很简单了。 7 CAVEATS 7洞
  A simulation from compiled source code cannot accurately model any new target device as is. It is necessary to customize the software from a prototype device simulation to one consistent with the specifications of the target device. 从编译的源代码进行的仿真无法按原样准确地对任何新的目标设备建模。有必要将软件从原型设备仿真定制为与目标设备规格一致的软件。
  A software simulation cannot accurately model the timing or throughput performance of the device interacting with the bus. Register reads and writes across the bus are implemented in the simulation as memory transfers within ram. DMA transfers are implemented by buffer copying within ram. 软件仿真无法准确地模型化时序或吞吐量性能,这是在与总线交互的设备的情况。总线上的寄存器读写在仿真中作为内存在RAM中的传输来实现。 DMA传输通过ram中的缓冲区复制实现。
  Multiple devices on the same bus will compete for bus bandwidth. 同一条总线上的多个设备将争夺总线带宽。
  A device simulation – even with 100% code coverage - cannot be a substitute for thorough testing with the real device. New devices have their quirks and don’t always behave just like the specification. Real-world devices can cause resource conflicts among themselves, leading to intermittent mis-routing of interrupts. 即使是100%的代码覆盖率,设备仿真也不能替代对真实设备的全面测试。新设备有其古怪之处,并非总是表现得像规范一样。现实中的设备可能导致它们之间的资源冲突,从而导致中断的间歇错误路由。
  Of course, if the specification for a device changes, the simulation must change as well. 当然,如果设备的规格发生变化,则仿真也必须发生变化。 8 WHAT MIGHT IT LOOK LIKE? - A WORKING MODEL 8它看起来像什么? -工作模式
  The reader may have guessed by now that the author has a working model of PCI device simulation in the Windows world. On the author’s web site there is a diagram showing how the components work together and a three minute demonstration of operation. Please see the authors’ web site in the References. 到目前为止,读者可能已经猜到了作者在Windows世界中具有PCI设备仿真的工作模型。在作者的网站上,有一张图表,显示了各个组件如何协同工作,并演示了三分钟的操作。请在参考文献中查看作者的网站。 9 DEVELOPMENT PIPELINE 9开发管道
  1) Port the existing implementation to Linux as well as possibly other OSes. 1)将现有实现移植到Linux以及可能的其他OS。
  2) Build a front end for the device simulation such that FPGA or ASIC device definitions can 2)构建设备仿真的前端,以便FPGA或ASIC设备定义可以
  serve as input to the generation of new simulations. 作为生成新模拟的输入。
  3) Add reporting capabilities so that it’s possible to track what has been tested as well as 3)添加报告功能,以便可以跟踪经过测试的内容以及
  performance results. 性能结果。
  10 CONCLUSION 10结论
  A software simulation of PCI devices is both feasible and beneficial. Chief benefits include parallel development of software and hardware, 100% code coverage, platform flexibility and hard-tocreate or rarely occurring conditions (re)produced readily. PCI设备的软件仿真既可行又有益。主要优势包括软件和硬件的并行开发,100%的代码覆盖率,平台灵活性以及难以创建或难以发生的条件(易于重新生成)。
  With a prototype working on the target OS, customization and deployment can be achieved in a matter of days or a few weeks -- a device driver developer’s dream. 通过在目标操作系统上运行原型,可以在几天或几周内完成自定义和部署,这是设备驱动程序开发人员的梦想。
  A working model of PCI device simulation exists in the Windows world. An implementation on Linux is achievable. I leave it to the reader to consider the cost versus benefit. Windows世界中存在PCI设备仿真的工作模型。可以在Linux上实现。我留给读者考虑成本与收益。
  I thank the reader for their interest. 我感谢读者的关注。 11 GLOSSARY OF TERMS 11术语表
  ASIC – Application Specific Integrated Circuit - an integrated circuit customized for a particular use,rather than intended for general-purpose use. For example, a chip designed to run in a digital voice recorder is an ASIC. ASICs are fixed, they are not modifiable. As opposed to FPGAs which are field programmable. ASICs are the brains of many PCI devices. ASIC –专用集成电路-一种为特定用途而定制的集成电路,而不是用于通用用途的集成电路。例如,设计为在数字语音记录器中运行的芯片是ASIC。 ASIC是固定的,不可修改。与现场可编程的FPGA相反。 ASIC是许多PCI设备的大脑。
  DMA - Direct Memory Access - a means of transferring memory between a device and host memory in a computer without a processor being involved in buffer copying. DMA is much faster than normal memory transfers but is more difficult to set up by programming the device. DMA-直接内存访问-一种在计算机中的设备和主机内存之间传输内存的方法,而缓冲区复制不涉及处理器。 DMA比普通的存储器传输要快得多,但是通过对设备进行编程更难以设置。
  FPGA – Field Programmable Gate Array – an integrated circuit containing an array of programmable logic blocks and a hierarchy of reconfigurable interconnects that allow the blocks to be wired together, like many logic gates that can be inter-wired in different configurations. These logic blocks form the basis for computer devices which perform complex logic operations as part of their function. FPGA defined logic is the brains of many PCI devices. FPGA –现场可编程门阵列–一种集成电路,其中包含可编程逻辑块阵列和可重新配置互连结构的层次结构,这些互连结构允许将块连接在一起,就像许多可以以不同配置互连的逻辑门一样。这些逻辑块构成了计算机设备的基础,计算机设备执行复杂的逻辑操作作为其功能的一部分。 FPGA定义的逻辑是许多PCI设备的大脑。
  GUI - Graphical User Interface – a means of interacting with a computer and its electronic devices through visual icons and indicators as opposed to text-based interfaces or text navigation. GUI-图形用户界面–一种通过视觉图标和指示器与计算机及其电子设备进行交互的方式,而不是基于文本的界面或文本导航。
  IDT - Interrupt Descriptor Table – a table in host memory which is used to route hardware interrupts from specific devices to the appropriate interrupt service routine in a device driver which knows how to control the interrupting device. IDT-中断描述符表–主机存储器中的表,用于将硬件中断从特定设备路由到设备驱动程序中的适当中断服务例程,该设备驱动程序知道如何控制中断设备。
  IOCTL - Input Output Control – a command from a user program to a device through its device driver to perform some specific defined function. It may be an administrative function or an i/o which is not a simple read or write. IOCTL-输入输出控制–从用户程序通过其设备驱动程序到设备的命令,以执行某些特定的已定义功能。它可能是管理功能或不是简单的读写操作的I / O。
  IRQL - Interrupt Request Level – an execution level which an interrupt service routine will run at assigned by the OS. When a processor is running at execution level X, only an interrupt at IRQL X+1 can gain execution on the same processor. IRQL-中断请求级别–中断服务程序将在OS分配的运行级别上执行。当处理器以执行级别X运行时,只有IRQL X + 1处的中断才能在同一处理器上获得执行。
  MSI - Message Signaled Interrupt – a means of triggering an interrupt to a host by writing to host memory rather than changing the voltage on a specific pin wired to the host. Non MSI interrupts are now referred to as legacy interrupts. MSI-消息信号中断–一种通过写入主机内存而不是更改连接到主机的特定引脚上的电压来触发主机中断的方法。非MSI中断现在称为旧式中断。
  OS
  - Operating System – a software system which runs on a computer and performs all
  administrative functions for one or more end-users. Well known small computer OSes are:
  Windows, Linux, and VxWorks.
  PCI
  - Peripheral Component Interface - a local computer bus for attaching hardware devices in a
  computer. Attached devices are typically expansion cards that fit into slots but may be an integrated circuit fitted onto the motherboard itself. 电脑。连接的设备通常是可插入插槽的扩展卡,但也可以是安装在主板本身上的集成电路。
  PM - Power Management is a feature of computers and computer peripherals that turns off the power or switches the system or device to a lower power state when inactive. As more and more computation devices have become portable and battery-powered, power management has increased in importance. PM-电源管理是计算机和计算机外围设备的功能,在不活动时可以关闭电源或将系统或设备切换到较低的电源状态。随着越来越多的计算设备变得便携式且由电池供电,电源管理的重要性日益提高。
  PnP - Plug-and-Play – a feature of modern OSes that allow attaching a new device and having it perform its normal functions without having to reconfigure the OS and without having to reboot the system. PnP-即插即用–现代OS的一项功能,允许连接新设备并使其执行其正常功能,而不必重新配置OS,也不必重新启动系统。
  Processor Affinity – is the process of binding and unbinding a process, thread or function to a particular processor or set of processors, so that they will execute only on the designated processor(s). The benefit to binding hardware interrupt functions to processors is so that multiple packets of data from a device will be in the same processors’ cache. This can be a significant performance improvement. 处理器相似性–是将进程,线程或功能绑定和取消绑定到特定处理器或一组处理器的过程,因此它们将仅在指定的处理器上执行。将硬件中断功能绑定到处理器的好处是,来自设备的多个数据包将位于同一处理器的缓存中。这可以显着提高性能。
  RAM – Random Access Memory - is a form of computer data storage allowing read or write of digital data in almost the same amount of time irrespective of the physical location of data inside the memory (thus random access). RAM is normally volatile, meaning stored information is lost if power is removed. Therefore it is inappropriate for permanent storage. RAM –随机存取存储器–是一种计算机数据存储形式,无论数据在内存中的物理位置如何(因此,随机存取),它都可以在几乎相同的时间内读取或写入数字数据。 RAM通常是易失性的,这意味着如果断电,存储的信息将会丢失。因此,它不适用于永久存储。
  SGL - Scatter-Gather List - a set of elements in memory describing a DMA transfer between the host and a device. A Scatter-Gather List is formatted specific to the requirements of the target device, and is processed by the device’s DMA controller. SGL-分散收集列表-内存中的一组元素,描述了主机与设备之间的DMA传输。分散收集列表的格式特定于目标设备的要求,并由设备的DMA控制器进行处理。
  VM - Virtual Machine – an emulation of a computer and an OS running as a software simulation on a host machine and a VM supporting OS. Examples of VM Oses are: VMware by VMware, Vbox by Oracle, and Hypervisor by Microsoft. VM-虚拟机–计算机和操作系统的仿真,在主机和支持OS的VM上作为软件模拟运行。 VM Oses的示例包括:VMware的VMware,Oracle的Vbox和Microsoft的Hypervisor。

南财研选快讯丨万联证券3nm芯片即将量产,有利于提振大众的消费意愿和信心南方财经4月19日电,万联证券认为,在集成电路板块,台积电决定今年量产第二版3nm制程N3B,并于今年8月份在新竹12厂研发中心第八期工厂及南科18厂P5厂同步生产。新制程推出,有红米,彻底关闭应用,禁止软件自启动相信很多小伙伴,在使用安卓机的过程中,都遇到类似情况。每次已经从任务栏关闭,或者加速清理掉任务了,可是部分应用却仍在系统后台运行。一方面后台运行,占用了手机运行内存,另一方面让手机游戏企业申请的AI医疗软件获批一家游戏公司申请国家药品监督管理局资格认证成功了!第一财经了解到,上海游戏公司波克城市与柯来视上海市首家市级公立康复医院同济大学附属养志康复医院(上海市阳光康复中心)微脉及多位眼科电催化去除水中硝酸盐研究获新进展近期,中科院合肥物质科学研究院固体所纳米材料与器件技术研究部科研人员在电催化去除水中硝酸盐研究方面取得新进展,相关研究结果发表在化学通讯期刊上。由于工农业快速发展,水体硝酸盐污染问谷歌介入俄乌冲突,战事骤然升级!日元暴跌,土耳其意外出兵,17亿人将陷入危机?前景再度黯淡起来!本周一,这个世界发生的三件大事可能正在产生负面影响。一是,乌克兰总参谋部17日称,俄军使用图22M3战略轰炸机,对马里乌波尔乌军阵地进行了攻击。这是俄乌局势升级的十四五期间河北新建公用充电桩3。4万个近日,河北省发展改革委印发关于加快提升充电基础设施服务保障能力的实施意见,聚焦解决全省充电基础设施建设存在的突出问题,全面提升充电服务保障能力,支撑新能源汽车产业高质量发展,助力实CIM的这些基本知识你真的知道吗?CIM的理念CIM基本理念总结为依托先进技术面向具体需求融合动态信息描述实体单元支撑各类应用。首先要依托于对BIMGISIOT技术的透彻理解和深度应用,并与云计算大数据等技术充分融进一步促进乡村振兴,包容性创业需补齐短板作者傅晋华(中国科学技术发展战略研究院研究员)观点热搜我国脱贫攻坚取得胜利后,我国三农工作重心转向全面推进乡村振兴。要做好巩固拓展脱贫攻坚成果同乡村振兴有效衔接,探索促进脱贫地区乡比特币是否能变成一种储备货币?比特币越来越多地被当作一种储备数字货币。一家加密货币平台希望持有价值100亿美元的比特币为自己稳定币背书。稳定币是一批不断增长的加密货币,它旨在减少价格变化,通常由美元储备背书。这QtD指针和Q指针及使用阅读Qt的源代码的时候,我们经常看QDQQQDECLAREPRIVATEQDECLAREPUBLIC这几个宏,这几个宏是干什么用的呢?其实这几个宏就是实现D指针和Q指针的宏,D指针谷歌开放俄战略要地高清卫星图,都能查看秘密试验场谷歌地图开放俄罗斯所有战略要地的高像素卫星图像谷歌地图服务18日开始以最大分辨率提供俄罗斯所有军事和战略设施的卫星图像。目前,包括各种洲际弹道导弹发射井指挥所秘密试验场等在内的俄战
准能自主设计地图采集指挥车助力无人驾驶截至3月16日,国家能源集团准能集团自主设计研发的地图采集指挥车已试运行15天,使用效果良好,能提高地图采集与上传的便利性和无人驾驶系统的运行效率。由于黑岱沟露天煤矿生产作业区域变治理虚假WiFi不能只是打地鼠有事出门在外,又不想离开WiFi大概是很多互联网村民的共同心声。为了节约流量成本,一些用户企图通过连接免费WiFi的方式来获得更好的上网体验。然而,这些号称免费的WiFi软件不仅没拼多多能否给网友一个回应?近日有一个游戏博主与拼多多的砍价免费拿活动,直播过程中邀请了两万多网友同时砍价,全网近四百万网友的观看,从砍价链接被屏蔽,到突然砍成功,一切来的莫名其妙。拼多多的砍价机制到底是怎样华为天才少年稚晖君新作被指抄袭,网友却力挺,真相到底是什么?年薪百万的华为天才少年竟然抄袭?日前,就职于华为的硬核理工宅男稚晖君开发了一款又萌又硬的桌面机器人,强大的软硬件设计能力再次让网友们折服,但有一位视频UP主质疑这款软萌的小机器人是6年重组未成愿史玉柱欲放手Playtika本报实习记者许心怡记者吴可仲北京报道近日,巨人网络(002558。SZ)放出拟出售PlaytikaHoldingCorp。(以下简称Playtika)的消息,巨人网络董事长史玉柱6区块链的过去与未来在大部分的工作场景中,每个人的工作都或多或少的要与其他人的工作产生关联。在计算机尚未诞生或普及的年代,这种联系可能在文件末尾的各项签名中体现。而在计算机普及的现代,这种联系则体现在套路不断的拼夕夕,还能走多远6万人砍拼多多到小数点后6位仍失败商家套路深似海,吾辈楷模拼夕夕。2020年底,拼夕夕年活跃买家数就以达到7。884亿,成为中国用户规模最大的电商平台。该平台的熟人社交模式,也曾风元宇宙世界的虚与实1992年的小说雪崩被认为是美国科幻作家尼尔斯蒂芬森的一部重要作品。30年前的作品重新为人提起,其中一个原因是脸书为了在接下来5年至10年内转型成为元宇宙公司,去年改名Meta,将国产已经用120W快充,为什么苹果还坚持20W慢充?割韭菜吗?(一)前言iPhone13发布会,这次依然没有采用快充。但是一些国产旗舰,比如iQOO8Pro小米MIX4等早就用上120W快充,并且这些手机的无线充电实力同样不俗。你觉得iPho拼多多套路多,6万人关注几千人砍价不成功,官方回应来了3月17日,游戏主播超级小桀抱着试试看的心情,在直播过程中发动拼多多砍价免费领手机的活动。在直播间几万名观众的关注下,几千粉丝帮助中砍到了小数点后6位,耗时两个多小时,结果依然未能vivoXFold曝光,vivoX60首当其冲一夜沦为百元机刷新低价纪录近日,此前曝光的vivo折叠屏手机vivoXFold又有了新消息。消息称,这款手机预计将于4月上市,内部代号为蝴蝶。值得一提的是,由于vivoXFold新机的曝光,导致vivoX6