什么是设备控制器?它在内核和设备之间处于什么位置?

什么是设备控制器?它在内核和设备之间处于什么位置?

有人可以解释一下设备控制器(硬盘控制器、NEC PD765 兼容控制器等)的概念吗?


以下是解释时可能需要的一些关键术语的定义。只是为了保持术语同步:)

核心- 提供访问硬件设备的抽象的软件

司机- 由硬件制造商编写的低级程序,这些程序作为内核模块加载,并向内核提供如何控制设备的知识

固件- 定义硬件内部逻辑的硬件特定程序。内核通常与它们无关,除了每次启动时将固件上传到设备的情况,在这种情况下,内核会执行上传


设备控制器安装在哪里?它位于设备本身还是主板上?

驱动程序是否为内核提供了面向控制器的接口,而不是直接面向设备本身的接口?

控制器背后的想法是能够使用相同的驱动程序控制来自不同制造商的设备吗?

答案1

控制器背后的想法是能够使用相同的驱动程序控制来自不同制造商的设备吗?

不是。主要目的是提供设备和处理器之间的部分接口。控制器有自己的驱动程序;这是除了连接到它的设备所需的任何驱动程序之外的。

接口之所以必要,是因为处理器是高度专业化的;控制器是从处理器的专业领域到设备的多元领域的转换器。处理器只有一个与外部的物理数据连接(公共汽车),不是它们的多种,事实上,通常控制器和处理器之间的中介是桥梁它将处理器连接到主板。然后设备控制器连接到主板并通过桥进行通信。所以链中有四个离散的物理实体:处理器->桥->控制器->设备,全部其中涉及它们自己的软件驱动程序(处理器的驱动程序,桥芯片组的驱动程序,然后每个控制器的驱动程序,以及每个设备的驱动程序)。

如果你看下图这篇维基百科文章,底部的蓝色框代表设备控制器。

在此输入图像描述

[作者:Alexander Taubenkorb,知识共享署名 - 相同方式共享 3.0]

答案2

设备控制器通常是总线仲裁器。您通常不是直接与给定总线上的设备通信,而是与控制器通信。然后,控制器根据您通过控制器请求的内容确定何时以及如何向其总线上的设备发送命令。

维基百科有关于这个主题的以下内容,http://simple.wikipedia.org/wiki/Device_controller

摘抄

设备控制器从连接的设备接收数据并将其临时存储在控制器内的一些专用寄存器(即本地缓冲区)中。然后它与设备驱动程序传送数据。对于每个设备控制器,都有一个等效的设备驱动程序,它是设备控制器通过中断与操作系统进行通信的标准接口。设备控制器是硬件,而设备驱动程序是软件。

答案3

通用计算机系统包括中央处理器多个设备控制器通过一个连接公共巴士

每个设备控制器负责特定类型的设备。

设备控制器维护:

  1. 本地缓冲存储
  2. 一组特殊用途寄存器

每个设备控制器也有他们的设备驱动程序,通常

设备驱动了解设备控制器并且礼物A统一接口到设备到操作系统的其余部分。

相关内容