【计算机组成原理】计算机组成与层次结构

        

目录

一    计算机组成

二    计算机硬件

        1 冯诺依曼机

        2 主要硬件组成部分及其功能 

        1、运算器

        2、存储器

        3、控制器

        4、输入设备

        5、输出设备

三   计算机软件

        1 系统软件与应用软件

        2 语言层次

四   计算机层次结构


        在翻开《计算机组成原理》之前,许多人都会对着那块密密麻麻的主板发呆:一堆闪着冷光的金属、塑料和硅片,凭什么就能跳出动人的旋律、绚丽的画面,甚至让人沉浸其中的游戏虚拟世界?秘密的起点其实朴素得近乎乏味——“通电”或“断电”。工程师把“通”约定为 1,“断”约定为 0,于是电流的每一次脉动都在说同一种语言:二进制。当无数个 0 和 1 被排成不同长度的序列时,它们就不再只是两个数字,而是一张可以无限扩展的符号表——一段 0100 0001 可以代表字母 A,也可以代表“把寄存器 R1 的值加 1”,关键在于我们事先约定好“读到这段序列就干什么”。

        接下来,计算机的工作就可以概括为“永不停歇地读表、查表、执行”。  
        1. 取指(Fetch):通电后,CPU 将第一条指令取出,并将其给到控制器。
        2. 译码(Decode):控制器像一位翻译官,把刚搬进来的 0/1 序列拆开,通过事先约定好的符号表,把序列翻译成如+1、-1等微操作。  
        3. 执行(Execute):算术逻辑单元(ALU)或存储器子系统按翻译结果干活,一次加法、一次移位、一次内存读写……结果再写回寄存器或内存。  
        4. 更新 PC:计算下一条指令地址,循环回到步骤 1,时钟的每一次滴答都推动这架“读表机”往前一步。

        这架机器之所以不会迷失,是因为所有 0/1 序列的语义都被提前写死在三层约定里:  
        - 硬件层的约定——“0010 1100”一定触发 ALU 做加法;  
        - 指令集体系结构(ISA)——“ADD R1,R2”对应的二进制是什么;  
        - 软件层的约定——同样一段 0/1 序列,在 .jpg 文件里代表像素颜色,在 .mp3 文件里代表声波振幅,在游戏的 .exe 里又代表“主角向左移动一像素”。

        当这些层级像乐高一样严丝合缝地拼好时,电流就获得了“讲故事”的能力:显卡根据 0/1 序列在屏幕上点亮或熄灭几百万颗像素,声卡把同样的 0/1 序列变成耳机振膜的振动,游戏引擎则让它们在恰当的时机出现,于是我们看到了光影、听到了音乐、操纵了角色——而这一切,不过是硅片里每秒数十亿次“通/断”的合奏。

一    计算机组成

        计算机由硬件和软件构成。其中,硬件是指有形的物理设备,如CPU、内存、硬盘、鼠标和显示器等。是计算机系统中实际物理装置的总称;软件是指在硬件上运行的程序和相关的数据及文档。

        硬件具备执行能力,但必须由软件发出指令才能完成具体任务,比如播放音乐、显示画面或处理数据,而软件则负责指挥硬件完成各种任务。硬件与软件的关系可以理解为“软件是大脑和灵魂,硬件是身体和工具”

        在计算机运行过程中,用户的操作首先由输入硬件传入,再由操作系统和应用软件处理,最终由输出硬件呈现结果。软件可以修改、升级和删除,而硬件通常较难更改,需物理更换。没有软件,硬件无法发挥作用;没有硬件,软件也无法运行。现代计算机系统正是通过软件与硬件的密切协作,才实现了各种复杂功能。

        计算机系统性能的好坏,很大程度上是由软件的效率和作用来表征的,而软件性能的发挥又 离不开硬件的支持。对某一功能来说,若其既可用软件实现,又可用硬件实现,则称为软/硬件在逻辑功能上是等价的

二    计算机硬件

        1 冯诺依曼机

        现代计算机的基本结构主要为冯诺依曼概念机,其最基本的思想是“存储程序”,即将事先编制好的程序和原始数据送入主存储器后才能执行,一 旦程序被启动执行,就无须操作人员的干预,计算机会自动逐条执行指令,直至程序执行结束。

        冯诺依曼机的特点主要有下面五条:

  1. 采用“存储程序”的工作方式。
  2. 计算机硬件系统由运算器、存储器、控制器、输入设备和输出设备5大部件组成。
  3. 指令和数据以同等地位存储在存储器中,形式上没有区别,但计算机应能区分它们。
  4. 指令和数据均用二进制代码表示。
  5. 指令由操作码和地址码组成,操作码指出操作的类型,地址码指出操作数的地址。

        2 主要硬件组成部分及其功能 

        计算机硬件系统由运算器、存储器、控制器、输入设备和输出设备5大部件组成,其中:

        1、运算器

        运算器是计算机的执行部件,用于进行算术运算逻辑运算。算术运算是按算术运算规则进行的运算,如加、减、乘、除:逻解运算包括与、或、非、异或、比较、移位等运算。

        运算器中有许多基本构成元件,包括算术逻辑单元(ALU)、累加器(ACC)、乘商寄存器(MQ)、通用寄存器(X)、程序状态寄存器(PSW)等。(寄存器就是用于临时存放数据的元件)

        这些元件的具体概念、功能和工作过程会在以后文章中详细讲解,这里了解即可。

        (记不住名称可以跳转至【计算机组成原理】计组概论英文名词速查查看)

        2、存储器

        存储器的核心功能是存储计算机中的程序和数据。存储体由许多存储单元组成,每个存储单元包含若干存储元件,每个存储元件存储一位二进制代码“0”或“1”。每个存储单元存储的二进制数据称为存储字,存储字的长度称为存储字长,存储字长在现代计算机中基本上为字节(1B=8bit)的整数倍。

        存储器分为主存储器(也称内存储器或主存)和辅助存储器(也称外存储器或外存)。控制单元(CU) 能够直接访问的存储器是主存储器。辅助存储器用于帮助主存储器记忆更多的信息,辅助存储器中的信息必须调入主存储器后,才能被CPU访问。

        主存储器的工作方式是按存储单元的地址进行存取,这种存取方式称为按地址存取方式。逻辑上主存系统还包括两个元件,存储器地址寄存器(MAR)存储器数据寄存器(MDR),其中MAR负责接收CPU传来的地址从而寻找需要的存储单元,MDR负责从存储单元中接收需要传输的数据。

        3、控制器

        控制器是计算机的指挥中心,由其“指挥”各部件自动协调地进行工作。控制器由程序计数 器(PC)、指令寄存器(IR)和控制单元(CU)组成。

        讲完了上面的三个概念之后,就可以引出下面这些生活中经常听到的三个概念:

  • CPU(中央处理器):运算器、控制器与一些寄存器集成而成的芯片。
  • 主机:包括CPU与主存储器。
  • 外设:除了主机之外的其他硬件装置(外存、IO设备、DMA等)
        4、输入设备

        输入设备的主要功能是将程序和数据以机器所能识别和接受的信息形式输入计算机。最常用 也最基本的输入设备是键盘,此外还有鼠标、扫描仪、摄像机等。

        5、输出设备

        输出设备的任务是将计算机处理的结果以人们所能接受的形式或其他系统所要求的信息形 式输出。最常用、最基本的输出设备是显示器、打印机。输入输出设备(简称I/0设备)是计算机与外界联系的桥梁。

三   计算机软件

        1 系统软件与应用软件

        软件按其功能分类,可分为系统软件和应用软件。

        系统软件是一组保证计算机系统高效、正确运行的基础软件,通常作为系统资源提供给用户 使用。系统软件主要有操作系统(OS)、数据库管理系统(DBMS)、语言处理程序、分布式软件系等。

        应用软件是指用户为解决某个应用领域中的各类问题而编制的程序,如各种科学计算类程 序、工程设计类程序、数据统计与处理程序等。

        2 语言层次

        计算机语言可以分为三层,即机器语言、汇编语言和高级语言。其中机器语言最底层,是计算机能够直接读懂的语言,高级语言最高层。

        1、机器语言。也称二进制代码语言,需要编程人员记忆每条指令的二进制编码。机器语言 是计算机唯一可以直接识别和执行的语言。

        2、汇编语言。汇编语言用英文单词或其缩写代替二进制的指令代码,更容易为人们记忆和理解。使用汇编语言编写的程序,必须经过称为汇编程序的系统软件的翻译,将其转换为机器语言程序后,才能在计算机的硬件系统上执行。

        3、高级语言。高级语言(如C、C++、ava等)可以方便程序设计人员写出解决问题的处理方案和解题过程的程序。通常高级语言需要经过编译程序编译成汇编语言程序,然后经过汇编操作得到机器语言程序,或直接由高级语言程序翻译成机器语言程序。

        高级语言编写的程序如果需要被计算机执行,可以通过两条路径翻译成机器语言。

        路径一:通过编译程序(编译器)将高级语言编译成汇编语言,再通过汇编程序(汇编器)将汇编语言翻译成机器语言。(需要注意的是现代编译器可以直接将高级语言翻译成机器语言,而不需要经过汇编语言阶段)

        过程图如下:

        

(图源王道计算机组成原理教材)

        路径二:通过解释程序(解释器)将高级语言程序(通常是python)逐行翻译成机器语言并且直接执行。

四   计算机层次结构

        计算机由硬件与软件共同构成一个整体。随着应用场景不断扩展,它必须依赖愈发复杂的系统软件和更强大的硬件来支撑。设计者、开发者、最终用户各自站在不同立场,用不同的“语言”描述同一台机器,于是他们对计算机的“属性”和“需求”自然各不相同。为了让这些视角能够协同而不冲突,计算机被划分为多级、分层的结构:每一层都明确定义自己的功能、接口与边界,上层无需关心下层细节,只需通过约定好的界面调用服务。这样,不同角色就能在各自的抽象层次上高效合作,最终拼装出一台既合理又高性能的计算机系统。

        按照王道教材的描述,计算机层次可分为M0-M4四层,如下图所示:

        其中:

        第1级是微程序机器层,这是一个实在的硬件层,它由机器硬件直接执行微指令。

        第2级是传统机器语言层,它也是一个实际的机器层,由微程序解释机器指令系统。

        第3级是操作系统层,它由操作系统程序实现。操作系统程序是由机器指令和广义指令组成 的,这些广义指令是为了扩展机器功能而设置的,是由操作系统定义和解释的软件指令,所以这 一层也称混合层。

        第4级是汇编语言层,这一层由汇编程序支持和执行,借此可编写汇编语言源程序。

        第5级是高级语言层,它是面向用户的,是为方便用户编写应用程序而设置的。该层由各种 高级语言编译程序支持和执行。在高级语言层之上,还可以有应用程序层,它由解决实际问题的 处理程序组成,如文字处理软件、多媒体处理软件和办公自动化软件等。

        没有配备软件的纯硬件系统称裸机。第3层~第5层称为虚拟机器,简单来说就是软件实现 的机器。软件和硬件之间的界面就是指令集体系结构(ISA),ISA定义了一台计算机可以执行的所有 指令的集合,每条指令规定了计算机执行什么操作,以及所处理的操作数存放的地址空间和操作 数类型。可以看出,ISA是指软件能感知到的部分,也称软件可见部分。

五   比特、字节、半字、字与字长、机器字长、存储字长、指令字长

名称英文名缩写/常用符号大小关系通常用途说明
比特bitb最小单位表示 0 或 1,是存储和传输的基本单位
字节ByteB1 Byte = 8 bits最基本的存储单位,一个ASCII字符
半字Halfword通常为 2 Bytes1 Halfword = 16 bits = 2 Bytes在某些系统中表示短整型,如16位整数
Word与机器有关1 Word = N Bytes(如2, 4, 8)CPU一次处理的数据单位(机器字长)

名称英文名定义与含义与其他的联系说明
字长Word Length一般泛指“处理器一次处理的二进制位数”,可指机器字长它是机器字长的统称,是其他字长的基础
机器字长Machine Word LengthCPU一次能处理、传送、寄存的数据位数(如32位、64位)决定了寄存器大小、内存寻址范围
存储字长Storage Word Length主存每个存储单元能存储的数据位数通常等于机器字长,但有些机器主存可以更宽或更窄
指令字长Instruction Length一条指令的总位数,如32位MIPS、16位ARM等不一定等于机器字长;RISC一般固定,CISC多变
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值