外文翻译--PCI  BIOS  中文版_第1页
外文翻译--PCI  BIOS  中文版_第2页
外文翻译--PCI  BIOS  中文版_第3页
外文翻译--PCI  BIOS  中文版_第4页
外文翻译--PCI  BIOS  中文版_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

南 京 理 工 大 学 毕业设计 (论文 )外文资料翻译 学院 ( 系) : 机械工程学院 专 业 : 测控技术与仪器 姓 名 : 学 号 : 外文出处 : PCI SYSTEM ARCHITECTURE (FOURTH EDITION) 附 件 : 1.外文资料翻译译文; 2.外文原文 指导教师评语: 签名: 年 月 日 注: 请将该封面与附件装订成册。 附件 1:外文资料翻译译文 二十六章 PCI BIOS 上一章内容提要 上一章主要讲述了控制简单设备的行为的顺序规则和通过 PCI-PCI 桥的多个交易间的关系,并且描述了这些规则如何预防死锁的发生。 本章内容提要 本章将介绍 PCI BIOS 的规范,版本为 2.1,日期是 1994 年 8 月 26 号 下一章内容提要 下一章将详细描述 PCI 锁定机构及 PCI 锁定机构允许 EISA 桥锁定主存储器或者允许主 /PCI 桥锁定 EISA 存储器目标 26.1 PCI BIOS 的用途 OS(除了平台指定的微核心外)、应用程序和设备驱动程序不可直接访问 PCI配置寄存器、中断路由逻辑(见 14.6 节中断路由),或者专用周期产生逻辑(见18.5.3 节专用周期软件生成)。实现这些能力的硬件办法是平台指定的,因此,任何直接访问这些机构的软件都是平台指定的,这可能会导致兼容问题(软件在一些平台上可以工作而在其它平台上则不能)。 相反,请求将被发至 PCI BIOS。这个 BIOS 是平台指定的,它在硬件中实现,也可能在 OS 的硬件抽象层( HAL)中实现, PCI BIOS 提供的服务如下: 允许确定 PCI 芯片组支持的配置机构(见 18.4 节配置机构简介)。 允许确定芯片组在软件控制下产生 PCI 专用周期交易的能力及所使用的机构。想要更多的信息,参见 18.5.3 节软件专用周期的生成。 允许确定 PCI 总线在系统中的存在范围 查找某一指定 PCI 设备或属于某一类设备的实例 允许 PCI 专用周期交易(如果芯片组在软件控制下支持产生 PCI 专用周期交易)。 允许调用者获得 PCI 中断路由选择并且为机构分配一个中断线 允许对设备的配置寄存器的读或写。 26.2 支持的 OS 环境 26.2.1 概述 不同的 OS 有不同的操作特性(比如用于定义系统存储器的方法和用于调用BIOS 服务的方法)。在基于 X86 处理器家族的系统中,在特定平台上执行的 OS属于下面三种中的一种: 实模式操作系统(即 MS-DOS) 286 保护模式(禁止使用) 386 保护模式。有两种 386 保护模式 段模式(禁止使用) 平台模式 PCI BIOS 规范定义了实现 BIOS 和调用 PCI BIOS 的软件的规则: 规则 1. PCI BIOS 必须支持所有上述提到的 OS 环境。 规则 2.BIOS 必须保持除了用于返回参数以外的 所有的寄存器和标记。 规则 3.调用者将被返回到与入口一致的 EFLAG 寄存器中的中断标记位的状态。 规则 4.在执行 BIOS 功能调用时中断将不可使能。 规则 5.BIOS 路径必须是可重入的(他们可以在自身内部调用) 规则 6.OS 必须为 BIOS 定义一个容量至少为 1KB 的堆栈存储器区域。 规则 7.OS 为 BIOS 定义的堆栈段和代码段必须有相同的容量( 16 位或 32 位) 规则 8.用 INT 1Ah 调用 BIOS 的保护模式 OS 必须将 CS 寄存器设置为 F000h。 规则 9.OS 必须保证为 BIOS 定义的优先级允许中断使能 /禁止并且执行 IO命令。 规则 10.BIOS 的实现者必须假定 OS 为 BIOS 定义的 CS 是只执行, DS 是只读。 26.2.2 实模式 实模式 OS,比如 MS-DOS,被写进 8088 处理器执行。这个处理器最多只能对1MB 的存储器进行寻址( 00000h 至 FFFFFh)。用四十六位段寄存器( CS, DS, ES,SS),编程人员定义了存储器的四个段,每段的长度固定为 64KB。当一个程序开始执行时,四个段寄存器的每一个用存储器中相应段的起始地址的上四个十六进制数字对其进行初始化。 代码段包含当前执行的程序 数据段定义了包含程序运行的数 据的存储器区域 堆栈段定义了用来暂时保存值的存储器区域 额外的数据段可用来定义与当前执行的程序有关的另一个数据段 MS-DOS 通过装入一组带有请求参数的处理器的寄存器组,执行软件中断命令,指定中断表中的 1Ah 入口作为包含 BIOS 的入口点,调用 BIOS。在 INT 1Ah指令执行时,处理器将 INT 1Ah 后面的指令的地址压入堆栈存储器。保存完这个返回地址后,处理器在中断表中读条目 1Ah 的指针并且在一个指定的地址开始运行。这就是 BIOS 的入口点。 调用 BIOS 的另一个方法就是在物理存储器位置 000FFFE6Eh 直接调用 BIOS入口点。使用这个方法可以确保调用者不用担心在中断表中的 1Ah 入口已经被其它设备占用。 26.2.3 286 保护模式( 16 16) BIOS 规范称之为 16 16模式是因为 286 处理器有 16 位段寄存器并且编程人员通过定义段内(代码段、数据段、堆栈段或额外数据段)设备的 16 位偏移量来指定存储器中设备的地址。尽管每段的最大容量仍然为 64KB(如同 8088 处理器一样), OS 编程人员可以将段长度设置为 1 到 64KB 之间的任何值。当在实模式操作时, 286 地址存储器就如同具有同样固定的 64KB 段长度的 8088处理器一样并且只能访问存储器空间中第一个 MB内的位置。 当在保护模式操作时,然而, 286 以不同的方式寻址存储器。不同于存储器中包含段的五位物理起始地址的上四位十六进制数字,段寄存器中的值被称为段选择值。它指向存储器中由 OS 建立和保存的段描述表的每一个条目。段描述表中的每一个条目都包含了定义如下内容的八个字节的信息: 存储器中段的 24 位起始物理地址。换句话说,段起始地址可以被指定在存储器空间的第一个 16MB 的处任意地方。 段长度(从一个字节到 64KB) 允许程序访问存储器的段的方式(只读、只执行、读 /写或者不允许) 一些 OS(如在 286 模式下操作时的 3.1 系统)用段能力在 16MB 总体的存储器空间里为每一个程序分配单独的代码、数据、堆栈段。当 OS 执行一个任务切换时,它必须在段寄存器内装入一组属于当前应用程序的存储器的段的值。 正如在实模式 OS 环境中,通过 INT 1Ah 的执行或者通过直接调用 BIOS 的工业标准入口点(物理存储器位置 000FFE6Eh)调用 BIOS。 26.2.4 386 保护模式( 16 32) 386 处理器将每个段的最大容量从 64KB 变为 4GB。 486、奔腾和 P6 家族处理器像 386 一样具有相同 段的的最大的容量。为了将段的最大容量增加到 4GB, 386还引进了一个 32 位的寄存器组,它允许编程人员在一个段内指定设备的 32 位偏移量。段寄存器的容量仍然是 16 位的。不包含存储器中段的五位物理起始地址包含的上四十六进制数字,段寄存器的值被称为段选择器(当处理器在保护模式操作时)。它指向存储器中 OS 建立和保持的段描述表中的一个条目。段描述表中的每一个条目包含八个字节的信息,定义如下内容: 存储器中段的 32 位起始物理地址。换句话说,段的基地址可以在存储器空间的总体 4GB 的范围内的任意地方。 段的长度(从一个字 节到 4GB) 程序允许访问存储器的段的方式(只读、只执行、读 /写或者不允许) 一些操作系统(如在 386 升级模式下操作的 3.1 系统)用段能力在 4GB 总体的存储器空间里为每一个程序分配单独的代码、数据、堆栈段。当 OS 执行一个任务切换时, 它必须通过定义属于当前应用程序的存储器的段的值装入段寄存器。 在 PCI BIOS 规范中,这被称为 16 32 模式,因为 16 位段寄存器定义(直接地)段起始地址并且编程人员可以用一个 32 位值在总的 4GB 存储器空间中任意地方去指定设备的偏移量。 在 32 位 OS 环境中, BIOS 不是用 INT 1Ah 调用的,实际上, 如果一个应用程序尝试执行一个 INT 指令结果将是一个一般保护例外,而调用程序对 BIOS 入口点执行远调用。这就意味着这个入口点地址是已知的。本章下文的部分将定义BIOS 入口点是如何被发现的。 26.2.5 今天的 OS 用平台模式( 0 32) 更简单的存储器模式是为所有的段寄存器设置为指向将每个段的起始地址定义为物理存储器位置 00000000h,长度为 4GB 的段描述值。这被称为平台存储器模式。 BIOS 规范称之为 0 32 模式 ,所有段的起始地址是 00000000h,长度为32 位长度 FFFFFFFFh( 4GB)。由于不为每个程序定义单独的段, OS 有负责管理存储器并且确保不同的程序不在其他程序的空间执行, OS 使用分页表格中的属性位来完成这个任务。 正如上文所说明的,在 32 位 OS 环境中, BIOS 不是用 INT 1Ah 调用的,而是由调用程序对 BIOS 入口点执行一个远调用。这就意味着这个入口点是已知的。本章下文将定义是如何发现 BIOS 入口点的。 26.3 确定系统是否实现 32 位 BIOS 在尝试着调用 32 位 BIOS(如 PCI BIOS)以前, 32 位 OS必须首先确定需要的 32 位 BIOS 是否存在,它的入口点是什么。 BIOS 规范规定 ,OS 必须扫描物理存储器区域 000E0000h到 000FFFF0h的范围 ,查找表 26-1所定义的 16位数据结构。这个数据结构必须排列在 16 字节的地址边界。 表 26-1 32 位 BIOS 数据结构 偏移量 容量 描述 0 四个字节 ASCII 标记“ -32-”,最左边的下标存储在偏移 0中,最右边的下标存储在偏移 3 中 4 四个字节 32 位 BIOS 服务目录程序的 32位入口点。调用服务目录程序可以确定 32位 BIOS提供什么服务(如 PCI BIOS服务)。作者把它当 作是 BIOS 的图书管理员 ,它跟踪实现了哪些 BIOS 以及这些 BIOS 在存储器中的位置。 8 一个字节 数据结构的版本级(层) 9 一个字节 16 字节递增的数据结构长度,目前,数据结构是 16字节长,所以这个区域包含 01h。 Ah 一个字节 数据结构中所有字节的校验和,校验和必须加至 00h Bh 五个字节 保留并且必须为零 26.4 确定 32 位 BIOS 支持的服务 现在 32 位服务目录程序( BIOS 图书管理员)的存在和入口点已经确定, OS可以询问确定 32 位 BIOS 规范是否实现了 PCI BIOS。通过调用入口 点和提供如下内容作为输入参数可完成这个任务 : EAX=服务识别器 为了确定指定的服务(例如 PCI BIOS 服务)是否被 32位 BIOS 支持,服务目录程序根据 EAX 寄存器中调用者提供的四个字节服务识别器执行查找(详见 26.5 节确定 32位 BIOS 是否支持 PCI BIOS 服务) BL=服务目录功能识别器 .目前只定义了 00h,它指挥服务目录程序查找EAX 寄存器中提供的服务识别器 .EBX 中的上三个字节为保留并且必须清零 . 在调用服务目录程序返回后 ,寄存器 组包含以下值 : 如果指定的服务存在则 AL 包含 00h,如 果不存在则包含 80h,如果 BL 提供的功能识别器未实现则包含 81h. EBX 包含指定的 BIOS 服务的物理起始地址 ECX 包含指定的 BIOS 服务的长度 EDX包含指定的 BIOS 服务的入口点 ,这是 EBX中返回的起始地址的偏移量 26.5 确定 32 位 BIOS 是否支持 PCI BIOS 服务 PCI BIOS的服务识别器包含 ASCII串“ $PCI” ,在 EAX中被指定为 49435024h.假定服务目录程序调用指示 PCI BIOS存在 ,可以通过对 EDX寄存器中返回的入口点执行远程调用来调用 PCI BIOS.在调用 PCI BIOS 之前 ,OS 必须把 BIOS 的代码和数据段定义为具有 EBX和 ECX中返回的物理地址范围 . 代码和数据段必须有相同的起始地址 .OS 必须起动 BIOS 优先级以允许 IO 操作并且必须为 BIOS 定义一个容量至少为 1KB 的堆栈区域 .BIOS 作者必须假定 OS 定义代码段为只执行 ,数据段为只读 . 26.6 调用 PCI BIOS 正如本章上文所提到的那样 , 可以通过执行一个 INT 1Ah指令或者 在物理存储器空间 000FFE6Eh 直接调用 PCI BIOS 的方法来调用 16位 PCI BIOS.通过执行远程调用来 32位 BIOS. 在这两种情况中 ,调用者必须首先把要求的请求参数装入处理器的寄存器组 .在入口 , AH 寄存器必须包含 PCI 功能 ID B1h. AL 寄存器必须包含 PCI 下级的功能识别器 . 表 26-2 定义了各种类型 PCI 功能调用的输入参数 .在出口 ,传送标记的状态表明了调用是成功还是失败 .BIOS 规范包含了这些功能调用的详细地描述 .由于它们在规范中已经清楚地描述了 ,本章下问将不再重复了 . 表 26-2 PCI BIOS 功能请求代码 功能请求 AH 值 AL 值 PCI 功能 ID B1h BIOS 存在检测 B1h 01h 用供应商 ID/设备 ID发现 PCI设备 .用设备的供应商和设备 ID 作为查找标准可以发现系统中的所有设备的实例 .如果设备的实例被发现 ,则返回物理位置 (总线、设备和功能编号 ).这些值可以作为配置读和写 BIOS 功能的输入参数去访问设备的配置寄存器 . B1h 02h 发现 PCI 类代码 .用指定的类代码作为查找标准可以发现系统中具有指定类代码的所有设备的实例 .如果设备的实例被发现 , 则返回物理位置 (总线、设备和功能编号 ).当调用 PCI 功能请求对设备的配置寄存器进行配置读或写访问时 ,这些值可以作为输入参数 .例如 ,这个功能可以作为引 导显示设备用来查找 VGA 兼容的接口 . B1h 03h 产生专用周期交易 .用于产生 PCI 专用周期交易以发送编程人员指定的信息到指定总线上的所有设备 .注意如果芯片组不支持软件控制

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论