计算机组成原理(自用)

2024-01-03 10:00:49

计算机编程语言

计算机编程语言是一套什么系统?

编写某种计算机语言表示出这个计算过程的行为就是编写程序

程序:

  • 程:计算过程
  • 序:序列

1+2 就是一个计算过程
+1 +2 +3 就是计算过程的序列

进制

位的概念

二进制 十进制

原码 反码 补码

计算机存储数字都是以补码的形式存储的,
好处是方便计算,只用一条电路就可以实现正数和负数的计算

有符号数(首位为0代表正数 首位为1代表负数) 无符号数

正数的原码、反码和补码相同
负数的补码是其反码加1,因此可以通过反码得到补码

原码 7 – 0111 -7 – 1000 0111
反码 正数的原码和反码相同 负数的反码 符号位不变 其余取反 -7 1111 1000
补码 正数的补码和原码相同 负数的补码是反码加1 -7 1111 1001

汇编语言和二进制

计算机是怎么实现计算的?

计算机由很多部件组成,能够正确的组织一起运行指令,告诉计算机按照我们的意愿进行计算。

机器指令:01100101010b CPU部件,中央处理器来执行计算,这一串二进制数字转化为高低电频驱动计算机运行

机器指令的逻辑含义:16进制数字表示某种编号信息
在这里插入图片描述

使用汇编指令来表示机器指令,适应人类的逻辑思维

编译器:把一套语言编译成另外一套语言

汇编语言

  • 汇编指令:可以通过编译器表示成机器指令(机器码)
  • 伪指令:作用就是告诉编译器 这里怎么翻译 那里怎么翻译 由编译器执行
  • 其他符号:+ - * / 由编译器处理的

汇编指令存在哪里?

内存(内存储器) memory

  • 主内存:绝大多数指令和数据都是存在在主内存

内存编号:段地址:偏移地址,从0开始的。内存地址为什么从0开始?

通过电路来表示内存地址, 高低电平
计算机中使用 0 1 表示高低电平
能表示的地址范围 000…00——111…11

同一串16进制的机器码 产生两种解释,既可以是数据又可以是指令
那么CPU怎么区分?CPU怎么读取内存指令?

cpu和内存条通过主板上的电路通信,这个电路至少包含三种信息:1、内存编号信息 (地址线) 2、数据信息 (数据线) 3、读或写(控制信息 控制线)

内存的最小单元是字节 Byte 1B=8bit

计量单位
换算关系
1KB = 1024B =1024*8 b
1MB = 1024 KB
1GB = 1024 MB

寻址能力:寻找内存地址的能力

假设只有一根地址线,就是只有两种状态 0/1 无法表示三个地址
地址线的数量决定了能够表示的地址范围及地址数量

n个地址线 可以表示 2^n 个地址数量

  • 地址线的数量决定了cpu的寻址能力
  • 数据线的数量决定了cpu与其他部件进行数据传送时,一次性传送多少数据的能力
  • 控制线的数量决定了cpu对主板上其他部件的控制能力

写入的数据是写到内存条中了吗?不是,写到显卡上的显存上

cpu是如何看待插在主板上的物理设备的?
把这些物理设备都看成一段连续的内存地址,每个物理设备都占有一段内存地址

内存

  • RAM内存:允许CPU读取和写入数据,断电后内存中的指令和数据都丢失
  • ROM内存:允许CPU读取数据不允许写入数据,断电后指令和数据还存在

主板上 显卡上 网卡上 有ROM内存

冯诺依曼体系

在这里插入图片描述

硬盘(外存储器 u盘、光盘等):允许CPU读取和写入数据,断电后内存中的指令和数据不会丢失
0 1表示成了磁极
输入设备:鼠标 键盘 麦克风 等等
输出设备:音响 显示器 等等

端口地址 CPU通过端口来获取数据的,端口中也有存储数据的地方

芯片 CPU也是一块芯片,都有存储数据的地方,鼠标和键盘都有芯片存储数据

键盘按下A 首先是存储到键盘的内存,然后通过连到主板的线发送给端口,然后CPU通过主板上的三根线来读写控制数据

计算机系统漫游

  • 信息:位+上下文 系统中所有的信息、磁盘文件、内存中的程序or数据、网络上传送的数据都是以一段二进制表示的,那是怎么区分这些数据对象的?通过读取数据对象的上下文
  • 程序执行过程
#include <stdio,h>
int main(){
	printf("hello world");
	return 0;
}
    • 每条C语言都必须被其他程序转化为一系列的“低级”机器语言指令,然后这些指令按照一种称为可执行目标程序的格式打好包,以二进制磁盘文件的形式存在起来,目标程序也就是可执行目标文件。
    • gcc -o hello hello.c 翻译过程有四个阶段
    • hello.c->预处理器->hello.i->编译器->hello.s->汇编器->hello.o->链接器->可执行文件

系统硬件组成

  • 总线:通常总线被设计成传送指定长度的字节快(4B/8B 32b/64b)
  • I/O设备:系统与外部世界联系通道
  • 主存:RAM,逻辑上是一个线性数组 每个字节都有唯一的地址(数组索引),地址从0开始
  • 处理器(CPU):核心是寄存器 任何时候都有一个指令寄存器(程序计数器)指向主存的某条机器语言指令,从系统通电开始直到断电一直执行

加载:从主存复制一个字节/字到寄存器,覆盖之前的内容
存储:从寄存器复制一个字节/字到主存的某个位置,覆盖之前的内容
操作/计算:把2个寄存器的内容复制到ALU(算数/逻辑单元)进行计算,将结果存放到一个寄存器中
跳转:把指令寄存器的值覆盖要跳转的内存地址

深入了解参考 计算机组成原理 艾伦

文章来源:https://blog.csdn.net/bossDDYY/article/details/135353240
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。