笛里谁知壮士心,沙头空照征人骨。这篇文章主要讲述微型计算机组成结构相关的知识,希望能为你提供帮助。
微型计算机组成原理【微型计算机组成结构】串行通讯点对点技术的高速 PCIE 总线。
赵炯; 《Linux 内核完全注释 0.11 修正版 V3.0》
为了让系统的不同部分都能够达到其最高传输速度,总线结构衍生出北桥和南桥两个芯片组。
- 北桥芯片(高速总线):与 CPU、内存和 AGP 视频接口。
- 南桥芯片(低速总线):管理中低速的组件,PCI 总线,IDE 硬盘接口,USB 端口。
接口的访问可以采用:程序循环查询方式、中断处理方式和 DMA 传输方式。
- 当设备或控制器能够立刻返回信息时才会在很少的几个地方采用程序循环查询方式。
- 中断处理方式需要用中断控制器的支持。
- 直接存储器访问DMA:I/O设备与内存之间进行批量数据传送,需要使用DMA控制器,无需CPU插手。
BIOS:用于计算机开机执行时系统自检;建立起操作系统需要的配置表(中断向量表、硬盘参数表…);把处理器和系统其余部分初始化;提供硬件设备接口服务;
从访问效率上考虑,linux 操作系统在运行时并不使用 BIOS 中的功能。
复位按钮按下:CPU 自动设置 CS:IP=0xF000:0xFFF0(0xFFFFFFF0),段基址0xFFFF0000,段长度64KB,指向最后一个 64K 的最后 16 字节处。 BIOS 在这里存放一条能够跳转到 64KB 范围内的跳转指令。
> > > hex(64*1024-16)
0xfff0
BIOS 程序会使用 32 位大模式,将段长设置为 4G,将 64KB BOIS 代码和数据复制到内存低端 1M 末端的 64KB,然后跳转到这个地方,让 CPU 进入实地址模式工作。
除了内存和 ROM BIOS 以外,还使用只有很少存储容量的 CMOS(64/128 B),存储器来存放计算机的实时时钟信息和系统硬件配置信息。通常和实时时钟芯片做在一块集成块中,CMOS 内存的地址空间在基本内存空间之外,需要使用 I/O 指令来访问。
控制器和控制卡80X86 使用两片级联的 8259A 可编程中断控制芯片组成一个中断控制器,用于实现 I/O 设备的中断控制数据存取方式。
ROM BIOS 会分别对两片 8259A 芯片进行初始化,将15级中断优先级分配,内存开始处0x000~0xFFF(4KB)建立一个中断向量表。
中断请求号被 BIOS 设置为相应的中断向量号,Linux 操作系统会重新设置中断请求号与中断向量号的对应关系。
8237 芯片主要负责 DMA 功能。
8253/8254 是一个可编程定时/计数器芯片。
键盘上有一个称为键盘编码器的处理器(8048)用来收集按键按下和松开的状态信息,产生接通扫描码和断开扫描码。
串行通信是指在线路上以比特位数据流一次一个比特进行传输的通信方式。分为异步和同步。异步串行通信以一个字符作为一个通讯单位或一帧进行传输,而同步串行通讯则以多个字符或字节为单位。
通用异步接收/发送器控制芯片 UART 组成的串行控制器来处理串行数据的收发工作。
显示控制
- MDA 显示标准(单色显示适配器)
屏幕显示规格:80列x25行,每个字符带有一个属性字节,一个屏幕(一帧)4KB。
偶地址字节存放字符代码,奇地址字节存放显示属性。
显存占用 0xb0000~0xb2000(8KB)
字符字节位置 = 0xb0000+video_num_columns*2*y + x*2;
2. CGA 显示标准
彩色图形适配器 CGA 支持 7 种彩色和图形显示方式。
配有16KB显存(0xb8000~0xbc000),偶地址字节存放字符代码,奇地址字节存放字符显示属性。
为了能读写硬盘上的数据,必须使用磁盘控制器,磁盘控制器介于 CPU 与驱动器之间的逻辑接口电路。接受 CPU 命令,向驱动器发送寻道、读/写和控制信号。
对于磁盘控制器的编程,就是设置其中寄存器的内容。
推荐阅读
- ubuntu 和 Linux 内核啥关系()
- 概述
- CommandLinux 绑定 CPU 核 以及 htop 命令
- 内核模块实验奔跑吧Linux内核
- Java流处理之转换编码的转换流
- 别再说你不知道分布式事务了
- Java6对synchronized的优化-锁升级过程详细过程
- 引导启动程序
- #云原生征文#深入了解k8s的Deployment