首页 > 技术文章 > linux内核笔记(二)微机计算机组成结构

doubleconquer 2021-12-03 22:29 原文

一个系统有四个基本组成部分:

  • 输入部分:接收系统的数据(键盘等)
  • 处理中心:处理(cpu)
  • 能源部分:处理需要的硬件资源(内存等)
  • 输出部分:显示给用户(显示器等)

计算机系统分为:

计算机系统分为软件系统硬件系统 ,两者相互依存
硬件:计算机的可见部分,物质,可摸得着的。(人的器官)
软件:控制硬件操作和动作的指令流。(大脑思维)

微型计算机组成原理:

一个传统微型计算机硬件组成结构:
cpu通过
地址线:内存或I/O设备的地址(读写的具体位置)
数据线:cpu和内存或I/O设备之间提供数据传输的通道
控制线:读 和 写
内部总线:地址线和数据线都是32位 因此地址空间范围是2的32次方 从0到4GB
和其他部分进行数据通信.
中断控制器:intel8259A
DMA控制器:intel8237A
定时控制器:intel8253定时芯片
键盘控制器intel8042芯片与键盘中的扫描电路进行通信

I/O端口寻址和访问控制方式

I/O端口和寻址

cpu要访问I/O接口控制器或控制卡上的数据和状态信息,需要找到他们的地址。这种地址就称为I/O端口或简称端口
端口地址的设置方式:统一编址独立编址

  • 端口统一编址:I/O接口控制器将所有端口归入存储器寻址地址空间范围。(存储器映像地址,用访问内存的指令)
  • 端口独立编址:I/O控制器和控制卡的寻址空间单独作为一个独立的地址空间对待。(专门的I/O指令来访问端口)

I/O接口数据传输控制方式:

  • 程序循环查询方式:cpu通过程序中循环查询指定设备控制器的状态来判断是否可以与设备进行数据交换。缺点:特别耗费CPU宝贵时间
  • 中断处理方式:需要有中断控制器的支持相当于cpu中断当前的程序去执行相应的I/O中断处理服务过程,完成后然后去执行以前的程序
  • DMA传输方式:直接存储器访问用于I/O设备与系统内存之间进行批量数据传送,整个过程需要使用专门的DMA控制器来进行而无需CPU插手,这种操作效率很高

主存储器、BIOS和CMOS存储器

主存储器(内存)

以前的DOS操作系统流行年代,640K或1MB内存容量基本上能满足普通应用程序的运行都采用Intel32位CPU,即都是PC/AT计算机。因此CPU的物理内存寻址范围已经高达4GB.
当计算机上电初始化,物理内存被设置从地址0开始的连续区域。除了地址0xA0000到0xFFFFF(640K到1M共384K)和0xFFFE0000到0xFFFFFFFF(4G处的最后一64K)范围以外的所有内存都可以操作系统内存。这两个特定范围被用于I/O设备和BIOS程序。
假设我们的计算机中有16MB的物理内存,
那么在linux0.1x系统中,0--640K将被作用存放内核代码和数据。
640k--1M之间的384K仍然保留用作图中指明的用途。
0xA0000开始的128K用作显示内存缓冲区,,随后部分用于其他控制卡的ROMBIOS或其映射区域。
0xF0000到1M范围用于高端系统ROMBIOS的映射区。
1M--16M将被内核用于作为可分配的主内存区
另外高速缓存区和内存虚拟盘也会占用内核代码和数据后面的一部分内存区域,该区域通常会跨越640K--1M的区域。

基本输入/输出程序BIOS

存放在ROM中的系统BIOS程序主要用于计算机开机时执行系统的各部分的自检,建立起操作系统需要使用的各种配置表,例如中断向量表,硬盘参数表,提供硬件设备接口服务。由于BIOS的这些服务不具备可重入性(即程序不可并发运行)。
开机时:cpu将段寄存器CS设置为0xF000其段地址则被设置为0xFFFF0000,段长设置为64K IP被设置为0xFFF0,因此cpu代码指针指向0XFFFFFFF0处,即4G空间最后一个64J的最后16字节处(ROMBIOS存放的位置)
BIOS里会存放一条jmp指令跳转到BIOS代码中64KB范围内的某一条指令执行
最后:BIOS就会从硬盘或其他块设备把操作系统引导程序加载到0x7c00处,并跳转到这个地方继续执行引导程序。

CMOS存储器

CMOS(Complementary Metal Oxide Semiconductor,互补金属氧化物半导体)存储器来存放计算机的实时时钟信息和系统硬件配置信息。
CMOS的内存地址空间在基本内存地址空间之外,需要使用I/O指令来访问

中断控制器

两个级联的8259A可编程中断控制芯片组成一个中断控制器,用于实现I/O设备的中断控制数据存取方式,并且为15个设备提供独立的中断控制功能,

DMA控制器

DMA控制器的主要功能是通过让外部设备直接与内存传输数据来增强系统的性能,它由机器上的Intel 8237芯片或其兼容芯片实现。通过对DMA控制器进行编程,外设与内存之间的数据传输能在不受CPU控制的条件下进行。因此在数据传输期间,CPU可以做其他事情。

定时/计数器

用于处理计算机中的精确时间延迟。该芯片提供了3个独立的16位计数器通道。每个通道可工作在不同的工作方式下,并且这些工作方式均可以使用软件来设置。

键盘控制器

当按一个键被按下时,键盘发送的扫描码称为接通码
当松开一个键时,被称为断开码

串行控制卡

  • 通信协议:计算机设备与计算机设备之间的语言(有效数据长度的格式:帧)
  • 帧信息包括:起始同步信息和传输的实际数据和校验信息
  • 串行通信:指在线路上以比特位数据流一次一个比特进行传输的通信方式。包括异步(以字符为单位)和同步串行(多个字符或字节组成的序列作为一个帧数据进行传输)两种类型。他们之间的主要区别在于传输时同步的通信单位或帧的长度不同。
  • 异步串行传输格式

显示控制

硬盘控制(外存储设备,用磁性介质来保存信息)




推荐阅读