一言
我的梦想实现了,也留下了美好的回忆,我已经没有任何遗憾了。——末日时在做什么?有没有空?可以来拯救吗?
计算机系统基础笔记:第一章:计算机系统概述
本文最后更新于 447 天前,其中的信息可能已经有所发展或是发生改变。

1.1 计算机系统基本组成和功能

冯诺依曼结构

  • 重要思想:存储程序的工作方式:任何计算机的工作都要先被编为程序,然后将程序和原始数据送入主存然后启动执行,当计算机开始工作,计算机就不需要任何人来干预便能自动的完成取出指令和执行指令的任务

  • 组成:

    • 存储器:存放指令和数据

    • 控制器(自动逐条取出指令并执行的部件)

    • 运算器(四种加减乘除基本运算以及一些逻辑运算)

    • 输入设备(将程序和原始数据输入计算机的部件)

    • 输出设备(将运算结果输出的计算机的部件)


20230714135802

现代计算机结构模型

20230714135817

  • ALU为算数逻辑部件,寄存器和存储器可以将操作数送入ALU,ALU的运算结果可以放在某个寄存器里,也可以通过总线输出到存储器·

  • MDR为memory data register,主存数据寄存器,MDR用来保存要被写入地址单元或者从地址单元读入的数据,存储器和寄存器可以通过MDR来交递数据

  • ALU产生的标志信息(运算结果的符号、有没有进位等)送入标志寄存器,然后送入控制器,这些标志信息会先送入PC(program counter),程序计数器、然后送入MAR(主存的地址寄存器)

  • GPRS(通用寄存器),可以将数据送入到MDR,然后送入到IR(指令寄存器),IR中的操作码字段会送入到控制器中

  • CPU要到存储器去取指令,要先把指令的地址通过MAR送到存储器,然后控制器将控制信号送入存储器(红色的),告诉存储器要读哪个地方的信息,读出来的信息通过MDR 送入IR或者ALU(可以先经过寄存器(GPRS),也可以直接从MDR传入)

计算机是如何工作的?

工作前:

数据和指令按序放在存储器上,每个存储器都有自己的单元地址

指令:数据位置、如何处理,处理完放在哪个位置等等,由OP、ADDR字段组成

决定PC初始值(决定从哪个指令开始)(程序起始地址)

开始工作:

  1. 根据PC取指令

  2. 看指令译码

  3. 从存储器或者寄存器上取操作的数据

  4. 执行指令

  5. 将结果写入GPRS或者MDR(MDR会写入存储器)

  6. 修改PC值(继续执行下一条指令)

指令和数据

程序启动前,指令和数据都存放在存储器中,都是0/1序列,形式上没差别

采用存储程序的工作形式:程序由指令组成,程序被启动后,计算机能一条一条指令执行,无需认为干预

指令中的信息:

  • 操作码(操作性质)

  • 源操作数1[操作作数2]如果是双目运算(例如+)就是两个,否则是一个(这个操作数可能在指令中直接给出,也可能在寄存器(寄存器编号)中,也可能在存储器(存储地址)中)

    • 目的操作数地址(寄存器、存储器)

存储地址的描述和操作数的数据结构有关

1.2程序开发与执行过程简介

1.2.1从机器语言到高级语言

机器语言

20230714135835

汇编语言

  • 用助记符表示操作码→0101用add表示

  • 用标号表示位置→0110、0111用 B C表示

  • 用助记符表示寄存器:0010表示jc

    20230714135851

    汇编指令

汇编语言程序由汇编指令构成

什么是汇编指令?:用助记符和标号来表示的指令(与机器指令一一对应)

指令

  • 操作码和操作数或其他地址码(机器指令是二进制,汇编指令是符号,如add)

  • 只能描述:取、两个数加(减乘除与或)

高级语言

  • 面向算法描述,一条语句对应几十条、几百条指令

  • 面向过程、面向对象

  • 与具体机器结构无关(机器和汇编有关)

  • 编译与解释

1.2.2程序的开发和执行及其支撑环境

例:hello.c的

20230714135904

hello程序的数据流动过程

20230714135918

在命令行中输入 ./hello后,操作系统会将这6个字符通过usb控制器这一存储设备经过IO桥接器传入寄存器,然后寄存器送给主存储器,这时候,操作系统会将磁盘中的hello可执行文件放到主存储器中,接着从主存储器中,将这个hello程序传入寄存器,寄存器在传到显示器,在屏幕中显示hello,world

  • 数据在各个存储部件间传送。故现代计算机大多采用"缓存"技术!

  • 所有过程都是在cpu执行指令所产生的控制信号的作用下进行的


    20230714135934

    开发和运行程序需要什么支撑?

最早的程序开发只需要输入指令和数据,启动后把第一条指令地址送给PC端

用高级语言开发需要复杂的环境:由系统软件提供,最重要的是操作系统和语言处理系统

而语言处理系统运行在操作系统之上。

  • 操作系统

  • 语言处理系统

    • 语言处理程序

    • 编辑器写代码

    • 翻译代码的方式:

      • 编译:编译方式:预处理程序、编译器、汇编器、链接器

      • 解释:解释器

    • 语言运行时的系统

    • 交互界面

      • GUI

      • CUI

  • 操作系统内核

而操作系统是属于指令集体系结构、而该结构是由计算机硬件组成。

可以看出计算机是一层一层的。

1.3计算机系统层次

1.3.1 编程语言和计算机系统层次

早期计算机系统层次

  1. 机器语言(第一代):应用程序—>指令集体系结构—>计算机硬件

  2. 汇编语言(第二代):应用程序—>汇编程序—>操作系统—>指令集体系结构—>计算机硬件

  3. 第三代:面向过程(怎么做?)

  4. 第四代:面向对象(做什么?)

第三代和第四代都是应用程序—>语言处理系统—>操作系统—>指令集体系结构—>计算机硬件

1.3.2现代计算机系统的层次结构

计算机系统抽象层的转换

20230714135949

每一个上层都是下一层的抽象,下一层是上一层的实现,就这样层层抽象,最终实现,敲敲键盘鼠标就能实现巨大的功能!

计算机系统的不同用户

  • 最终用户:最上层抽象的,使用应用程序的用户

  • 系统管理员:工作在由操作系统提供的抽象层(介于用户和程序员之间(我个人认为可有可无))

  • 应用程序员:编程的,借助语言处理系统编写普通程序的程序员,就是我们目前的阶段

  • 系统程序员:介于ISA和操作系统左右的程序员,可以被称为架构师了

ISA是计算机系统中最重要的层次,他介于硬件和软件之间,可以算是软硬之间的接口。

下图很形象

20230714140001

指令集体系结构(ISA)

全称: Instruction Set Architecture(指令集体系结构),简称Instruction Set(指令系统)

ISA 规定了如何使用硬件

  • 可执行的指令集合,包括指令格式、操作种类以及每种操作对应的操作数等规定

  • 指令可接受操作数的类型

  • 操作数所能存放的寄存器的结构(寄存器的名称、编号、长度用途等)

  • 操作数所能存放的存储空间的大小和编址方式

  • 操作数在存储空间存放时按照大端还是小端方式存放

  • 指令获取操作数的方式,即寻址方式

  • 指令执行过程中的控制方式

ISA与计算机组成(微结构)(CPU)的关系

  • 不同ISA规定的指令集不同

  • 计算机组成必须实现ISA规定的功能

  • 同一种ISA有不同的计算机组成,如乘法功能可以使用ALU或者乘法器两种种的任意一种组成

习题

1. (单选题) 冯·诺依曼计算机中,CPU区分从存储器取出的是指令还是数据的依据是C__

  • A. 指令译码结果的不同

  • B. 指令和数据的寻址方式的不同

  • C. 指令和数据的访问阶段的不同

  • D. 指令和数据所在的存储单元的不同

2. (单选题) 以下有关冯·诺依曼计算机结构中指令和数据表示形式的叙述中,正确的是_C

  • A. 指令和数据可以从形式上加以区分

  • B. 指令以二进制形式存放,数据以十进制形式存放

  • C. 指令和数据都以二进制形式存放

  • D. 指令和数据都以十进制形式存放

3. (单选题) 以下有关计算机中指令和数据存放位置的叙述中,正确的是_D____。

  • A. 指令存放在内存,数据存放在外存

  • B. 指令和数据任何时候都存放在内存

  • C. 指令和数据任何时候都存放在外存

  • D. 程序被启动后,其指令和数据被装入内存

4. (单选题) 冯·诺依曼计算机工作方式的基本特点是__C___。

  • A. 程序一边被输入计算机一边被执行

  • B. 程序直接从磁盘读到CPU执行

  • C. 按地址访问指令并自动按序执行程序

  • D. 程序自动执行而数据手工输入

5. (单选题) 以下有关冯·诺依曼计算机结构的叙述中,错误的是__D___。

  • A. 计算机由运算器、控制器、存储器和输入/输出设备组成

  • B. 程序由指令和数据构成,存放在存储器中

  • C. 指令由操作码和地址码两部分组成

  • D. 指令按地址访问,所有数据在指令中直接给出

6. (单选题) 以下有关计算机各部件功能的叙述中,错误的是__A___。逻辑运算。

  • A. 运算器用来完成算术运算

  • B. 存储器用来存放指令和数据

  • C. 控制器通过执行指令来控制整个机器的运行

  • D. 输入/输出设备用来完成用户和计算机之间的信息交换

7. (单选题) 计算机系统采用层次化结构从最上面的应用层到最下面的硬件层,其层次化构成为_C____ 。

  • A. 高级语言虚拟机一操作系统虚拟机—汇编语言虚拟机—机器语言机器

  • B. 高级语言虚拟机—汇编语言虚拟机—机器语言机器一操作系统虚拟机

  • C. 高级语言虚拟机—汇编语言虚拟机—操作系统虚拟机一机器语言机器

  • D. 操作系统虚拟机—高级语言虚拟机—汇编语言虚拟机—机器语言机器

8. (单选题) 以下有关程序编写和执行方面的叙述中,错误的是_D____

  • A. 可用高级语言和低级语言编写出功能等价的程序

  • B. 高级语言和汇编语言源程序都不能在机器上直接执行

  • C. 编译程序员必须了解机器结构和指令系统

  • D. 汇编语言是一种与机器结构无关的编程语言

9. (单选题) 一个完整的计算机系统包括硬件和软件。软件又分为_B____

  • A. 操作系统和语言处理程序

  • B. 系统软件和应用软件

  • C. 操作系统和高级语言

  • D. 低级语言程序和高级语言程序

10. (单选题) 以下给出的软件中,属于应用软件的是_D

  • A. 汇编程序

  • B. 编译程序

  • C. 操作系统

  • D. 文字处理程序

    20230714140019


暂无评论

发送评论 编辑评论

|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇