计算机组成原理学习笔记-精简复习版

一、计算机系统概述

计算机系统=硬件+软件

计算机硬件的发展:

  • 第一代计算机:(使用电子管)
  • 第二代计算机:(使用晶体管)
  • 第三代计算机:(使用较小规模的集成电路)
  • 第四代计算机:(使用较大规模的集成电路)

冯诺依曼体系结构

主机:主存、运算器、控制器

外部设备:外存、IO设备等

五大部分:

<1> 输入设备,是指将外部信息以计算机能读懂的方式输入进来,如键盘,鼠标等

<2> 输出设备,就是将计算机处理的信息以人所能接受的方式输出出来,比如显示屏,打印机。

<3> 存储器,存储器分为 主存储器(内存储器,CPU能直接访问)和 辅助存储器(外存储器,协助主存储器记忆更多的信息,辅助存储器的信息需要导入到主存储器中,才可以被CPU访问)。

主存储器的工作方式是按存储单元的地址进行存取,这种存取方式称为按地址存取方式(相联存储器既可以既可以按照地址寻址,又可以按照内容寻址,为了与传统存储器区别,又称为内容寻址的存储器!)

主存储器是由地址寄存器(MAR),数据寄存器(MDR),存储体,时序控制逻辑,地址寄存器存放访存地址,经过地址译码后找到所选的存储单元。数据寄存器,是存储器与其他部件的中介,用于暂存要从存储器读或写的信息。时序控制逻辑用于产生存储器操作所需的各种时序信号。在现代CPU,MAR和MDR是在CPU中的。

<4> 运算器,是计算机的运算单元,用于算术运算和逻辑运算

运算器的核心单元是算术逻辑单元(ALU)

<5> 控制器,控制器是计算机的指挥中心,有其指挥各部件自动协调第进行工作,现代计算机将运算器和控制器集成到一个芯片上,合成为中央处理器,简称CPU。有程序计数器(PC)、指令寄存器(IR)和控制单元(CU)。

一般将运算器和控制器集成到同一个芯片上,称为中央处理器(CPU)。CPU和主存储器共同构成主机,而除主机外的其他硬件装置(外存、I/O设备等)统称为外部设备,简称外设。

CPU包含ALU、通用寄存器组GPRs、标志寄存器、控制器、指令寄存器IR、程序计数器PC、存储器地址寄存器MAR和存储器数据寄存器MDR。图中从控制器送出的虚线就是控制信号,可以控制如何修改PC以得到下一条指令的地址,可以控制ALU执行什么运算,可以控制主存是进行读操作还是写操作(读/写控制信号)。

CPU和主存之间通过一组总线相连,总线中有地址、控制和数据3组信号线。MAR中的地址信息会直接送到地址线上,用于指向读/写操作的主存存储单元;控制线中有读/写信号线,指出数据是从CPU写入主存还是从主存读出到CPU,根据是读操作还是写操作来控制将MDR中的数据是直接送到数据线上还是将数据线上的数据接收到MDR中。

三种级别的语言

高级语言转换到汇编语言的过程叫做编译,由汇编语言转换到机器语言的过程叫做汇编,边翻译边执行的叫做解析。

机器字长、指令字长、存储字长的区别和联系是什么?

机器字长:计算机能直接处理的二进制数据的位数,机器字长一般等于内部寄存器的大小,它决定了计算机的运算精度。

指令字长:一个指令字中包含的二进制代码的位数。

存储字长:一个存储单元存储的二进制代码的长度。等于MDR的位数, 它们都必须是字节的整数倍。

数据字长:数据总线一次能传送信息的位数,它可以不等于MDR的位数。

二、数据的表示与计算

三、存储系统


Cache 高速缓冲存储器

虚拟存储器(虚拟内存)

四、指令系统

五、中央处理器

六、总线




现代计算机总线标准多为 PCIE 技术,比如PCIE4.0等

七、IO

网络IO和磁盘IO等外部IO的耗时都是相当大的,在写代码中应尽可能减少这类IO,并且要关注你的代码对各个硬件的影响(CPU使用率、内存使用率)等。

相关推荐
努力努力再努力...2 分钟前
学习Multipath多路径
学习
hx862276 分钟前
Java MySQL 连接
java·mysql·adb
lpfasd1238 分钟前
Kubernetes (K8s) 底层早已不再直接使用 Docker 引擎了
java·docker·kubernetes
aq553560011 分钟前
SpringBoot有几种获取Request对象的方法
java·spring boot·后端
小郝 小郝23 分钟前
51 与32 单片机LED控制详解
c语言·开发语言·经验分享·学习·51单片机
金山几座1 小时前
C#学习记录-类(Class)
开发语言·学习·c#
CHENJIAMIAN PRO1 小时前
3D Tiles 2.0 技术审查整理笔记
笔记·3d
Detachym1 小时前
InsightFlow 服务配置优化与部署实践
java·spring boot·tomcat·maven·状态模式·jar
y = xⁿ1 小时前
【LeetCodehot100】T23:合并k个升序链表
java·数据结构·链表
kinl20181 小时前
cs2385_note0 (lec2-lec5)
笔记