《程序是怎样跑起来的》第十一章——硬件控制方法

"计算机如果没有软件,就仅仅是一个铁箱子"是这样吗?虽让极具有讽刺意味,但这正式计算机的本质。软硬件是相辅相成的,大家很少见过能直接控制硬件的指令,这是因为硬件的控制全权是由windows负责的。Windows提供了间接来控制硬件的方法,就是系统调用。也称为API。Windows控制硬件是借助的是输入输出指令,最具代表性的就是in和out,也是汇编语言的助记符。in

指令通过指定端口号的端口输入数据,并将其存储在CPU内部的寄存器中。out指令则是把CPU寄存器中存储的数据输出到指定端口。

那什么是端口和端口号呢?早计算机中有连接各部分的连接器,各连接器的内部都有交换计算机主机和外围设备之间电流信号的IC。这些IC,统称为I/O控制器。I/O控制器中有用于临时保存输入输出数据的内存,这个内存就是端口。各个端口之间通过端口号来划分。端口号也称为I/O地址。

 

中断请求:IRQ就是中断请求的意思。是用来暂停当前正在运行的程序,并跳转到其他程序运行的必要机制,该机制为中断处理。并且会因为不同的原因,返回不同得中断编号。为了应对一下有多个中断处理的情况,可以在中间加上名为中断控制器的IC来进行缓冲。

实际上,大部分的外围设备都会频繁的发出中断请求,原因是为了实时处理从外围设备输入的数据,在这种情况下,主程序要源源不断的检测外围设备是否有数据输入。由于外围设备有多个,就有必要按照顺序来进行检测,这种情况称为轮询。

DMA:是指不通过CPU的情况下,外围设备直接和主内存进行数据传输。利用DMA大量数据就可以短时间传送到主内存中。

 文字和图片的显示机制:显示器中的信息被存储在VRAM内存中,在程序中只要往VRAM中写入数据就会显示在显示器中,在现在的计算机中显卡等专用设备,一般都配置了与驻村相独立的VRAM和GPU

posted @   琦q  阅读(38)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示