理解系统补充--硬件,网络
硬件1.设备控制器为了屏蔽设备之间的差异每个设备都有一个叫设备控制器Device Control 的组件比如硬盘有硬盘控制器、显示器有视频控制器等。因为这些控制器都很清楚的知道对应设备的用法和功能所以 CPU 是通过设备控制器来和设备打交道的。设备控制器里有芯片它可执行自己的逻辑也有自己的寄存器用来与 CPU 进行通信比如通过写入这些寄存器操作系统可以命令设备发送数据、接收数据、开启或关闭或者执行某些其他操作。通过读取这些寄存器操作系统可以了解设备的状态是否准备好接收一个新的命令等。实际上控制器是有三类寄存器它们分别是状态寄存器Status Register、 命令寄存器Command Register以及数据寄存器Data Register如下图这三个寄存器的作用数据寄存器CPU 向 I/O 设备写入需要传输的数据比如要打印的内容是「Hello」CPU 就要先发送一个 H 字符给到对应的 I/O 设备。命令寄存器CPU 发送一个命令告诉 I/O 设备要进行输入/输出操作于是就会交给 I/O 设备去工作任务完成后会把状态寄存器里面的状态标记为完成。状态寄存器目的是告诉 CPU 现在已经在工作或工作已经完成如果已经在工作状态CPU 再发送数据或者命令过来都是没有用的直到前面的工作已经完成状态寄存标记成已完成CPU 才能发送下一个字符和命令。CPU 通过读写设备控制器中的寄存器控制设备这可比 CPU 直接控制输入输出设备要方便和标准很多。这可比 CPU 直接控制输入输出设备要方便和标准很多。另外 输入输出设备可分为两大类 块设备Block Device和字符设备Character Device。块设备把数据存储在固定大小的块中每个块有自己的地址硬盘、USB 是常见的块设备。字符设备以字符为单位发送或接收一个字符流字符设备是不可寻址的也没有任何寻道操作鼠标是常见的字符设备。块设备通常传输的数据量会非常大于是控制器设立了一个可读写的数据缓冲区。CPU 写入数据到控制器的缓冲区时当缓冲区的数据囤够了一部分才会发给设备。CPU 从控制器的缓冲区读取数据时也需要缓冲区囤够了一部分才拷贝到内存。这样做是为了减少对设备的频繁操作。那 CPU 是如何与设备的控制寄存器和数据缓冲区进行通信的端口 I/O每个控制寄存器被分配一个 I/O 端口可以通过特殊的汇编指令操作这些寄存器比如 in/out 类似的指令。内存映射 I/O将所有控制寄存器映射到内存空间中这样就可以像读写内存一样读写数据缓冲区。I/O 控制方式每种设备都有一个设备控制器控制器相当于一个小 CPU它可以自己处理一些事情但有个问题是当 CPU 给设备发送了一个指令让设备控制器去读设备的数据它读完的时候要怎么通知 CPU 呢控制器的寄存器一般会有状态标记位用来标识输入或输出操作是否完成。第一种轮询等待的方法让 CPU 一直查寄存器的状态直到状态标记为完成。第二种方法 —— 中断通知操作系统数据已经准备好了。我们一般会有一个硬件的中断控制器当设备完成任务后触发中断到中断控制器中断控制器就通知 CPU一个中断产生了CPU 需要停下当前手里的事情来处理中断。中断有两种一种软中断例如代码调用 INT 指令触发。一种是硬件中断就是硬件通过中断控制器触发的。但中断的方式对于频繁读写数据的磁盘并不友好这样 CPU 容易经常被打断会占用 CPU 大量的时间。对于这一类设备的问题的解决方法是使用 DMADirect Memory Access 功能它可以使得设备在 CPU 不参与的情况下能够自行完成把设备 I/O 数据放入到内存。那要实现 DMA 功能要有 「DMA 控制器」硬件的支持。DMA 的工作方式如下CPU 需对 DMA 控制器下发指令告诉它想读取多少数据读完的数据放在内存的某个地方就可以了接下来DMA 控制器会向磁盘控制器发出指令通知它从磁盘读数据到其内部的缓冲区中接着磁盘控制器将缓冲区的数据传输到内存当磁盘控制器把数据传输到内存的操作完成后磁盘控制器在总线上发出一个确认成功的信号到 DMA 控制器DMA 控制器收到信号后DMA 控制器发中断通知 CPU 指令完成CPU 就可以直接用内存里面现成的数据了仅仅在传送开始和结束时需要 CPU 干预。

相关新闻

地方高校人才引进政策解析与实操指南

地方高校人才引进政策解析与实操指南

1. 地方高校人才引进政策深度解析最近在高校教师圈子里热议的"博士直接事业编百万安家费"政策,实际上反映了当前地方高校人才争夺战的白热化状态。作为在高校人事部门工作多年的从业者,我亲眼见证了这类人才引进政策从最初的"给编制"…

2026/11/5 16:33:26 阅读更多 →
MOBA阵容博弈:一楼秒锁瑶的阵容适配性与团队应对策略

MOBA阵容博弈:一楼秒锁瑶的阵容适配性与团队应对策略

在《王者荣耀》这类MOBA游戏中,阵容搭配是决定对局走向的关键因素之一。一个合理的阵容需要考虑英雄定位(如坦克、战士、法师、射手、辅助)的均衡、控制链的衔接、前期与后期的强度以及团队配合的默契度。然而,在实际排位或巅峰赛…

2026/11/8 3:13:13 阅读更多 →
空间视频与屏幕色准分析:从技术原理到Python量化实践

空间视频与屏幕色准分析:从技术原理到Python量化实践

1. 项目背景与核心概念最近在科技数码圈,关于苹果Vision Pro录制空间视频的讨论热度不减,尤其是其与普通手机视频的差异,以及是否值得为这一功能购买二手设备,成为了许多开发者和科技爱好者关注的焦点。与此同时,三星G…

2026/11/7 10:36:58 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/9 14:01:10 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/9 14:56:39 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/10 2:03:25 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/9 14:01:10 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/9 7:45:06 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/9 14:01:11 阅读更多 →

日新闻

周新闻

月新闻