每一种系统大概可分为四个基本部分组成,见图2-l所示。其中包含有能源、输入部分、处理中心和输出部分。见图2-l所示.电脑系统也相似,也主要由这四部分组成。稍为有点差别,就是电脑系统的处理中心与输入/输出部分的通道是共同使用的,见图2-1 (b) 电脑系统包括有硬件部分和软件部分,两者之间互相依存,缺一不可。硬件部分就是电脑系统的实体,是软件执行和储存的平台。软件是控制电脑硬件操作和动作的指令流。好象人类大脑中的讯息和思维,控制著人的行为、思考和动作一樣。我们要了解就是一个电脑系统的执行机制,阐明系统的处理中心和输入/输出部分的硬件组成原理和软件控制的实现。如果想理解各种电脑的作业系统执行全过程,那就需要了解它的硬件执行环境。本章要介绍的是传统PC机系统的硬件组成,介绍了PC机中各个主要部分的功能。这些內容已基本能夠让你明撩Linux0.12內核的硬件基础。 可见,作业系统与所执行的硬件环境密切相关。如果想彻底理解Operation System的操作过程,那麼就需要了解它的硬件操作环境。基於传统微处理机系统的硬件组成方框图,这里介绍了微处理机中各个主要部分的功能。这些內容能夠令读者们建立起閱读Linux0.12內核的硬件基础。为了便於說明,术语PC/AT将用来指示具有80386或以上CPU的IBM PC及其相容微处理机,而PC则用来泛指所有微型个人电脑,包括IBM PC/XT了及其相容微处理机。2.1 微型计算机组成原理我们从俯瞰的角度来說明採用80386或以上CPU的PC机系统组成结构。一个传统微型电脑硬体组成结构见图2-2所示。其中,CPU透过位址線、资料線和控制信号線组成的本地汇流排(或称为內部汇流排)与系统其他部分进行资料通信,位址線用於提供记忆体或I/O设备的位址,即指明需要读/写资料的具体位置,资料線用於在CPU和记忆体或I/O设备之间提供资料传输的通道,而控制線则负责指挥执行的具体读/写操作。对於使用80386 CPU的PC机,其內部位址線和资料線都分別有32根,即都是32位元的。因此位址定址空间范围有2³²位元组,从0到4GB 。图中上部控制器和记忆体介面通常都集成在电脑主机板上,控制器部份是以一块大型积体电路晶片为主组成的功能电路。例如,中断控制器由Intel 8259A或其相容晶片构成:DMA控制器通常採用Intel 8237A晶片构成;定时计数器的核心则是Intel 8253/8254定时晶片:键盘控制器使用的是Intel 8042晶片来与键盘中的扫描电路进行通信。图中下方的控制卡(或者称为配接卡)则是透过扩充插槽与主机板上系统汇流排连接。汇流排插槽是系统位址汇流排、资料汇流排和控制線的与扩充设备控制器的标準连接介面。这些汇流排界面标準通常有工业标準结构ISA (Industry Standard Architecture)汇流排、扩充工业标準结构汇流排EISA (Extended ISA)、週边元件互连PCI (Peripheral速图形端口AGP(Accelerated Graphics的主要区別在於资料传输速率和控制灵活性方面。随著电脑硬体的发展,传输速率更高、控制更灵活的汇流排界面还在不断推出,例如採用串列通信点对点技术的高速PCIE(PCI Express)汇流排。最初的80386机器上只有ISA汇流排,因此系统与外部I/O设备最多只能使用16位元资料線进行资料传输。随著电脑技术的发展,很多原来使用控制卡来完成的功能(例如硬碟控制器功能)都已经集成在电脑主机板上少数几个超大型积体电路晶片中,几个甚至是一个这樣的晶片就确定了主机板的主要特性和功能,並且为了针对不同系统部分能提供更高的传输速率,汇流排结构也发生了很大的变化。现代PC机的组成结构通常可以使用图2-3来描述。除了CPU以外,现代PC主机板主要使用2个超大规模晶片构成的品片组或晶片集(Chipsets)组成:北桥(Northbridge)晶片和南桥(Southbridge)晶片。北桥晶片用於与CPU、记忆体和AGP视讯界面,这些介面具有很高的传输速率。北桥晶片还起著记忆体控制作用,因此Intel把该晶片标号为MCH (Memory Controller Hub)晶片。南桥晶片用来管理低,中速的元件,例如,PCI汇流排、IDE硬碟介面、USB埠等,因此南桥晶片的名称为ICH (I/O Controller Hub) 。之所以用“南、北”桥来分別统称这两个晶片,是由於在Intel公司公佈的典型PC主机板上,它们分別位於主版的下端和上端(即地图上的南部和北部)位置,並起著与CPU进行通道桥接的作用。虽然汇流排界面发生了很大变化,甚至今后北桥和南桥晶片都将会合二为一,但是对於我们程式设计人员来說,这些变化仍然与传统的PC机结构相容,因此为传统PC机硬体结构编制的程式仍然能执行於现在的PC机上,这从Intel的开发手冊上可以证实这个结论。所以为了便於入门学习,我们仍然以传统PC机结构为框架来讨论和学习PC的组成和程式设计方法,当然这些方法仍然适合於现代PC机结构。下面我们概要說明图2-2中各个主要控制器和控制卡的工作原理,而它们的实际程式设计方法则推迟到閱读內核相应原始码时再作详细介绍。2.2 I/O端口定址和存取控制方式2.2.1 I/O端口和定址CPU为了存取I/O介面控制器或控制卡上的资料和状态资讯,需要首先指定它们的位址。这种位址就称为I/O 埠位址或者称为「端口」通常一个I/O控制器包含存取资料的资料端口、输出命令的命令端口和存取控制器执行状态的状态端口。端口位址的设置方法一般有两种:统一编址和独立编址。端口统一编址的原理是把I/O控制器中的端口位址归入记忆体定址位址空间范围內。因此这种编址方式也成为记忆体映射编址。CPU存取一个端口的操作与存取记忆体的操作一样,也使用存取记忆体的指令。端口独立编址的方法是把I/O控制器和控制卡的定址空间单独作为一个独立的位址空间对待,称为I/O位址空间。每个端口有一个I/O位址与之对应,並且使用专门的I/O指令来存取端口。IBM PC及其相容微处理机主要使用独立编址方式,採用了一个独立的I/O位址空间对控制设备中的暂存器进行定址和存取。使用ISA汇流排结构的传统PC机其I/O位址空间范围是0x000 - - 0x3FF,有1024个I/O端口位址可供使用。
本站信息源至:互联网络,均为学习,交流所用,如有版权问题,请联系我们.站长QQ:397422079 E_mail:riechelr_hl@unix5.com转载本站内容请注明原作者名.谢谢!