`
buliedian
  • 浏览: 1259172 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

CPU体系结构概览

阅读更多

CPU体系结构概览

摘自《操作系统精髓与设计原理》 BY William Stallings
刘建文略译(http://blog.csdn.net/keminlau

相对于应用软件,操作系统作为系统软件更接近硬件。操作系统与计算机硬件的唇齿相关的关系表明——要理解操作系统机理不可以忽视硬件体系的结构与机理。

计算机的基本组成

计算机的主要功能是执行程序,而为了完成这项任务,计算机系统划分为四个逻辑部分:中央处理器、内存、输入输出设备和互联它的们系统总线。

  1. 中央处理器:负责控制计算机操作,执行数据处理任务;
  2. 内存:负责保存程序指令和数据;
  3. 输入输出设备:负责主机(中央处理器和内存)到外部环境的数据交换(发送和接收数据),外部环境由各种设备组成,包括外存、通信设备和终端。
  4. 系统总线:负责为前三者之间提供数据通信功能。

看下图,处理器的一大功能是与内存交换数据,为此,处理器有两内部寄存器:内存地址寄存(MAR)器和内存缓冲寄存器(MBR)。前者指定处理器下一个读或写的内存地址;后者是相应的读写数据。与此类似,处理器与I/O交换数据也使用两个专用的寄存器:I/O地址寄存(I/OAR)器和I/O缓冲寄存器(I/OBR)。

计算机三大件互联

KEMIN:注意MAR与PC的区别。PC保存的是指令的地址,是控制CPU执行路线的;MAR是指令操作的数据的地址,是操作数的地址。

内存是一组编址的数据存储单元,单元或单元组可分别解释成指令或数据。(P.S.大部分PC体系的内存单元大小为8BIT也就是一个字节)

处理器的寄存器体系

处理器内部有一组比内存小但比内存快的寄存器,这些寄存器可按目的(性质)分成两类: 用户可见寄存器控制和状态寄存器

KEMIN: b.不要把CPU内的寄存器看得很神秘,其实大部分和内存的作用是一样的,只不过快点而已。包括段寄存器、堆栈寄存器和索引寄存器,它们和数据寄存器也是运算用的,只不过它们用来算“地址”。

用户可见寄存器

用户可见寄存器是可以通过机器码直接引用的存储单元的,机器码也就是机器语言,并对所有程序可用(包括应用程序和系统程序),作为该程序的代码指令。用户可见寄存器可再分为数据、地址和状态码寄存器三种类型。

数据寄存器 可用作多种用途——通用或专用。作为通用寄存器,程序员可用其来保存任何机器指令的操作数据;有一些数据寄存器要用作专用用途,比如用作浮点运算的数据寄存器……

地址寄存器 保存着数据或指令在内存中的地址(或用作计算完整地址的地址部分)。地址寄存器有时候也可用作通用用途,不过更多用作特定的寻址模式。

  • 索引寄存器 :索引寻址模式通过一个基地址加上一个索引值来寻址,是很常见很有效的寻址方式(KEMIN:COMMON的哲学在哪里?因为CPU常常处理数组之类的数据?)
  • 段指针(段寄存器) :分段寻址模式可以把内存分隔成大小不同的段。寻址时必须给出段地址(存在CPU的段寄存器)和段内偏移(offset)。分段寻址方式很重要,因为它可用作内存管理的手段。比如分段方式可以把地址空间分为系统段和用户段,系统段是只读的。
  • 堆栈指针 :堆栈寻址时,地址是在内存中某个特定的位置,这个位置叫栈顶,由堆栈指针指定。使用堆栈寻址方式的指令可省去显式的地址域,比如push和pop指令。
2008-10-29 19:39:50 b.堆栈的存在哲学在于,程序的很多行为需要这种先进后出的约束,比如局部数据的临时性、代码执行分支时状态的恢复等。约束的设计根源在于行为的可预知性,也就说我们预知了程序有这种行为,所以设计了这种先进后出的约束。也可从反面理解,我们要实现代码执行分支时状态恢复--返回调用者的地址--完全可以用一般的内存段实现的,那为什么要用特殊的内存段--堆栈呢?很明显,效率!

最后一类寄存器属于用户部分可见的状态码寄存器(condition codes),也叫标志(FLAGS)寄存器。标志寄存器是按位操作的,标志硬件操作的结果。比如,算术运算可能产生正数、负数、零和溢出的结果。CPU操作的过程是,除了运算的结果被保存外,CPU还要设置该操作的状态码,用作后续条件分支判断之用。

通常状态码位被收集到一个或多个寄存器,组成一个状态寄存器。机器指令可隐式引用这些状态位,但不能修改它。

有一些机器里,子程序的调用会引发自动保存所有的用户可见寄存器,返回时自动恢复的过程。整个过程由CPU处理,作为指令call和return功能的一部分。这个设计的结果是,子程序间可独立地使用这些寄存器而不必担心互相影响。而在另外一些机器上,保存和恢复的工作是程序员的职责。程序员必须在调用子程序前显式保存可见的相关寄存器的值。由此可见,保存和恢复的功能既可以硬件的也可以软件的,取决于机器设计。

控制和状态寄存器

处理器内有很多寄存器用于控制处理器操作的。并且这些寄存器多是用户不可见的,部分对管态也是只读的。由于内容太多,这里只简要列出一些主要类型的控制和状态寄存器,并对其作扼要的描述。

  • 指令执行控制:除了之前谈到的MAR、 MBR、I/OAR和I/OBR外,还有两个与指令执行很重要控制寄存器:
    • 程序计数器(program counter):保存下一条指令的内存地址
    • 指令寄存器(instruction register):保存刚从内存读出的指令
  • 程序状态:所有的处理器都会有一个(或几个组成一组)叫程序状态字(program status word)的寄存器。PSW包含一些状态码位和一些状态信息,比如中断开关和管态目态(操作模式)位。
  • 中断向量: 实现中断机制的机器会有一集的中断寄存器(常称中断向量),用于保存各种中断处理程序的首地址。
  • 系统堆栈:为了实现子程序调用,处理器内必须有系统堆栈状态寄存器。
  • 内存管理:为了实现内存管理,系统也需一些专用的控制寄存器……
  • I/O操作:I/O操作也需要一些控制寄存器。

CPU设计者会根据一些实际需要来设计控制和状态寄存器组(KEMIN:设计过程必有对约束的考量),其中一个重要实际需要是对操作系统功能的支持(KEMIN:约束来自两方面——物理实现的和逻辑功能的,这里操作系统功能是逻辑功能的约束),比如虚拟内存管理。CPU设计者为虚拟内存管理功能“量身裁剪”(tailored)了一系列的控制和状态寄存器。

控制和状态寄存器设计的另一个考虑的问题是,这些寄存器是安置入CPU内还是放在内存。一种常见的设计是,把内存最低的数百至千个字用作控制用途。设计者还必须考虑把什么和多少控制信息保存到快速而昂贵的寄存器,把什么和多少其它控制信息保存在慢速而廉价的内存。

指令执行

永远记住,被处理器执行的程序是保存在内存中的一系列相关的指令。指令的执行可以简单的分成两步或两个阶段:取指阶段和执行阶段。一次的取指和执行叫做一个指令周期。程序的执行就是不断进行取指和执行的指令周期。在指令执行阶段,处理器可能会有不同的操作,这取决于指令的性质(nature of instruction)。

基本指令周期

在取指阶段开始,CPU会根据程序计数器(前面谈到的指令执行控制寄存器PC)所指定的内存地址内取出指令。如果指令不是跳转指令,那么CPU在取出指令后会自动给PC加一(加本条指令的长度,不是简单的加一),以指示下一条被执行的指令的地址。取出的指令被存入指令寄存器(IR)。CPU的指令解码器解释指令的操作码(CISC操作码还会有额外的位,用以标识操作数性质和寻址方式),控制器根据解码信息再进行相应的处理操作控制。这些处理大概可分为以下四类:

  1. 处理器-内存:数据从处理器(寄存器)搬去内存,或从内存搬数据进处理器(寄存器)。
    KEMIN:如果把数据寄存器也看内存,那这个操作可一般化看成“数据被搬来搬去”。至于“搬数据”对完成“计算任务”有何作用,保留再研究。
  2. 处理器-输入输出:上面的一种特殊情况。
  3. 数据处理:处理对数据进行算术或逻辑操作。
    KEMIN:这个对完成“计算任务”有何作用也保留再研究
  4. 流程控制:指令可以更改处理器执行的流程顺序。比如,处理器从149地址单元取出一条指令A,指令A是一条流程控制指令,功能是指定下一条指令在182地址单元。那么处理器就会把PC设成182,下一个取指阶段处理器就会从182地址取指令。
分享到:
评论

相关推荐

    ARC cpu体系结构

    ### ARC CPU体系结构详解 #### 引言与概述 ARC CPU体系结构是为嵌入式系统设计的一种高效、灵活的微处理器架构。该体系结构由Argonaut Technologies Ltd.开发,旨在提供高性能的同时保持低功耗特性,适用于各种...

    MIPS CPU体系结构概述《上》中文版哈

    ### MIPS CPU体系结构关键知识点概览 #### 一、MIPS CPU简介 MIPS CPU是一种基于精简指令集计算(RISC)架构的处理器,它最初由斯坦福大学的John L. Hennessy教授领导的研究团队开发。MIPS是“Microprocessor ...

    计算机组成与体系结构(Linda Null)版1-7章全部题目答案

    《计算机组成与体系结构》是计算机科学领域的一本经典教材,由Linda Null著,它深入浅出地讲解了计算机硬件的基本原理、设计思想以及体系结构。这份压缩包包含了该书第一到第七章的所有题目答案,对于学习者来说是一...

    arm体系结构 pdf格式

    ### ARM体系结构概览 #### 1. ARM体系结构概览 - **嵌入式微处理器体系结构**:ARM架构是一种广泛应用于嵌入式系统的体系结构。它以其低功耗、高性能和低成本著称,特别适合移动设备和其他电池供电的应用场景。 - *...

    计算机体系结构电子书

    ### 计算机体系结构电子书知识点概览 #### 一、计算机体系结构基础 **计算机体系结构**是指计算机系统的设计和组织方式,它定义了硬件组件之间以及硬件与软件之间的接口规范。张晨曦版《计算机体系结构》电子书是...

    清华北大体系结构课件

    【体系结构】是计算机科学中的核心领域,它研究如何组织和设计计算机系统,使其能够高效地执行各种计算任务。在“清华北大体系结构课件”中,我们可以期待深入学习这门关键学科,尤其是针对嵌入式系统的部分。 清华...

    吉林大学研究生《并行计算机体系结构》

    #### 并行计算机体系结构概览 并行计算机体系结构是计算机科学领域的重要分支,专注于设计和优化能够高效处理大规模并行任务的计算机系统。吉林大学研究生课程《并行计算机体系结构》深入探讨了并行计算的核心概念...

    PCI Express体系结构导读

    ### PCI Express体系结构知识点详解 #### 一、PCI Express概览 - **PCI Express简介**:PCI Express(简称PCIe)是一种高速串行计算机扩展总线标准,它以点对点连接的方式代替了传统的共享并行总线。PCI Express...

    嵌入式微处理器体系结构

    嵌入式微处理器及其应用 ARM体系结构概览 ARM编程模型 ARM 指令集 ARM JTAG调试接口 S3C44B0开发平台简介

    linux网络体系结构

    #### 一、内核结构概览 Linux内核是一个复杂的操作系统核心,其设计目的是为了高效地管理和协调计算机系统的资源。按照功能划分,Linux内核主要可以分为五个不同的部分:进程管理、内存管理、文件系统、设备驱动...

    CPU自制入门_cpu内部_cpu自制入门_自制cpu书籍_

    CPU设计涉及数字逻辑、计算机体系结构等多个领域。从简单的逻辑门(如AND、OR、NOT)开始,通过组合逻辑设计出更复杂的组件,如半加器、全加器,进而构建ALU(算术逻辑单元)。同时,需要理解时钟同步、流水线技术、...

    计算机体系结构.ppt

    ### 计算机体系结构概览 #### 一、计算机系统的硬件结构 ##### 现代计算机结构的特点 现代计算机的结构设计以存储器为中心,这一体系结构遵循冯·诺依曼架构的基本原则。其核心工作流程如下: 1. **输入阶段**:...

    ARM体系结构与启动代码

    #### ARM体系结构概览 ARM(Advanced RISC Machines)是一种基于精简指令集计算(RISC)架构的处理器设计。ARM架构以其低功耗、低成本、高性能的特点,在移动设备、嵌入式系统、服务器等领域得到了广泛应用。ARM...

    全的吉大体系结构课件

    《全面解析:吉大体系结构课程知识概览》 吉大的体系结构课程是计算机科学教育中的重要组成部分,它深入探讨了计算机系统的核心设计理念与工作原理。这个课程的课件覆盖了从基础到高级的多个章节,包括从硬件基础到...

    虚拟现实课件-第四章 VR的计算体系结构

    #### VR计算体系结构概览 本章节主要探讨虚拟现实(VR)系统的计算体系结构,重点在于介绍支撑VR体验的技术核心——VR引擎及其相关组件如何协同工作以创造沉浸式的虚拟环境。VR引擎不仅涵盖了从输入到输出的整个...

    浅谈PCIe体系结构-中文13w字

    #### 一、PCIe体系结构概览 **PCIe(Peripheral Component Interconnect Express)**是一种高速串行计算机扩展总线标准,它最初由Intel公司提出,并得到了广泛采用。PCIe旨在替代多种旧式总线标准,如PCI、AGP等,并...

    计算机组成与体系结构课件

    计算机组成与体系结构是计算机科学中的基础核心课程,它涵盖了计算机硬件系统的主要组成部分以及它们如何协同工作以执行软件指令。本课件由宋宜斌教授主讲,包括九讲内容,旨在帮助学习者深入理解计算机的基本工作...

    ARM11体系结构讲座

    ### ARM11体系结构讲座知识点总结 #### 一、ARM简介 - **全称**: Advanced RISC Machines Ltd. - **定位**: ARM是一家专注于提供高性能精简指令集(RISC)处理器设计和技术授权的公司。 - **业务模式**: 主要通过向...

Global site tag (gtag.js) - Google Analytics