Chinaunix首页 | 论坛 | 博客
  • 博客访问: 153401
  • 博文数量: 34
  • 博客积分: 2000
  • 博客等级: 大尉
  • 技术积分: 410
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-03 09:44
文章分类

全部博文(34)

文章存档

2011年(1)

2008年(33)

我的朋友

分类: LINUX

2008-05-29 13:18:17

一、80386微处理器的内部组成和结构
    以前的机子都是16位的,功能没有多大变化,intel 386是真正的32位微处理器。
    1.80386共有34个寄存器,按功能分为:通用寄存器、段寄存器、状态和控制寄存器、系统地址寄存器、调试寄存器和测试寄存器。
      (1)通用寄存器
         8个通用寄存器和8086通用寄存器相同,只是扩展到了32位,寄存器名字前加了一个字符E,即:EAX、EBX、ECX、EDX、ESI、EDI、EBP、ESP,仍然支持8位和16位操作,用法和8086系统相同。
      (2)段寄存器
         有6个16位段寄存器,比8086增加了两个附加段寄存器FS、GS。在实模式下,段寄存器和8086用法相同;在保护模式下,段寄存器称为段选择器,它与描述符配合实现段寻址。
      (3)段描述符寄存器
         64位段描述符寄存器对程序员是不可见的的。为了加快对内存中描述符表的查询速度,在选择符内容装入时,段描述符同时装入段描述符寄存器。这样,只要段选择符内容不变,就不需要到内存中查询描述符表,从而加快了段地址寻址的速度。
      (4)状态和控制寄存器
         状态和控制寄存器有标志寄存器EFLAGS、指令指针寄存器EIP和4个控制寄存器CR0--CR3组成。
         32位标志寄存器中,除保留8086 CPU的6个条件标志、3个控制标志外,新增加了4个标志,其含义分别如下:
         IOPL:两位宽的特权级字段,支持保护方式。IOPL指出要执行I/O指令的特权级。如果当前的特权级别数值小于等于IOPL,则I/O指令可以执行,否则将发生一个保护。
         NT:嵌套任务控制位。NT=0时,IRET执行一般的中断返回,NT=1时,用一个任务转换代替一般的中断返回。
         RF:重启动控制。RF=0调试故障被接受,RF=1忽略调试故障。成功的执行一条指令后,CPU将RF清0;接受到一个非调试故障信号CPU将RF置1,则忽略该故障。
         VM:虚拟8086方式位。该位为1时,处理器工作于虚拟8086方式;该位为0时,处理器工作于一般的保护方式。
         控制寄存器主要用于控制选择80386的操作环境(实方式、保护方式、分页保护环境)、协处理器的使用控制以及作为线性地址的故障页保护和页目录表的基址保护。
      (5)系统地址寄存器
         80386有4个系统地址寄存器,用来保护操作系统需要的保护信息和地址转换表信息、定义目前正在执行任务的环境、地址空间和中断向量空间,其名字和含义如下;
         GDTR:48位全局描述符表寄存器,用于保存全局描述符表32位线性基地址和16位全局描述符表界限。
         IDTR:48位中断描述符表积存器,用于保存中断描述符表32位线性基地址和16位界限。
         TR:16位任务状态寄存器,用于保存任务状态段TSS的16位选择符。
         LDTR:16位局部描述符表寄存器,用于保存局部描述符表的选择符。
      (6)调试寄存器
         80386 CPU 芯片内有8个调试寄存器DR0--DR7,为了调试提供了硬件支持。其中前4个为保存4个线性断点地址寄存器;后面两个为备用寄存器;DR6为断点状态寄存器,通过该寄存器的标志可以检测事故并进入事故处理程序或禁止进入事故处理程序;最后一个是断点控制寄存器,用来规定断点字段的长度、断点访问类型等。
      (7)测试寄存器
         80386有8个32位的测试寄存器TR0--TR7,其中前6个为系统保留,后面两个用于控制对转换后备缓冲器中RAM和CAM的测试。DR6是测试命令寄存器,最后一个是测试数据寄存器,用来保存测试结果的状态。
    2.地址转换
        80386提供了强有力的存储器寻址结构,可寻址的物理空间为4GB,支持高达64MB的逻辑地址空间。
        80386CPU的逻辑地址由两部分组成;低32位为偏移地址,可指向4GB空间中的任何地址;高16位为选择符,指向段描述符表的一个表项(段描述符)。段描述符给出一个段基地址,该段基址与偏移地址相加,产生线性地址。
    3.处理器信号
        80386有30条地址总线,32条数据总线。它共有七种总线操作,包括:存储器读写、I/O读写、取址、中断响应和停止/关闭。

二、80486微处理器
    486用动态总线调整支持8位、16位、32位总线宽度,并需要外部交换逻辑;而386只支持16位和32位总线宽度,不需要交换逻辑。
    486有突发传输方式,可从外存传输四个32位字到片内Cache,只需要5个时钟周期,而386至少需要8个时钟周期才能传输同样数量的数据。
    486增加了387数值协处理器指令组和寄存器组,在执行浮点指令时,I/O周期不执行。
    486成组总线周期能在一个时钟周期内传送32位数据,而386至少要两个时钟周期。
    486 CPU一个总线周期的中间另外的处理器需要站用总线,CPU可以浮空总线,当总线空闲后再重新开始其总线周期。
    486使用1X时钟,可以通过加载外设使用的半频时钟,简化了系统。同时减少了CPU高速运行时的RF发射,简化了时钟发生电路。
    还有很多其他的区别,这里就不一一介绍了。

三、Pentium处理器
    Pentium是386和486系列处理器的下一代,具有64位数据总线。 自1993年出现后,技术上分为两大派,一个是Pentium Pro,一个是MMX Pentium。两者融合,诞生了PII。
    Pentium和486之间也有不少的区别
      (1) Pentium有64位数据总线,而486只支持32位数据总线。Pentium比486有更多的字节允许位和数据奇偶位,支持更大的数据总线。
      (2) Pentium具有同时驱动两个总线周期的能力。
      (3) Pentium处理器一个总线周期产生8字节的写操作,并且不使用PLOCK引脚。它不改变地址的低位和突发时的字节允许。
      (4) Pentium需要写回和线填充运行突发周期,突发不能在中间停止。
      (5) Pentium不支持BS8和BS16管理动态总线调整,或使其在每个失重或Pentium驱动地址无效。
    还有很多其他的区别,也不说明了。
阅读(2721) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2011-06-26 16:36:53

学习了,多谢楼主分享哦!也欢迎广大linux爱好者来我们的论坛一起讨论arm哦!www.lt-net.cn