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

一、计算机系统概述

计算机系统=硬件+软件

计算机硬件的发展:

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

冯诺依曼体系结构

计算机组成原理学习笔记-精简复习版_第1张图片

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

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

计算机组成原理学习笔记-精简复习版_第2张图片

五大部分:

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

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

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

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

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

计算机组成原理学习笔记-精简复习版_第3张图片

<4> 运算器,是计算机的运算单元,用于算术运算和逻辑运算
运算器的核心单元是算术逻辑单元(ALU)

计算机组成原理学习笔记-精简复习版_第4张图片

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

计算机组成原理学习笔记-精简复习版_第5张图片

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

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

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

三种级别的语言

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

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

机器字长:计算机能直接处理的二进制数据的位数,机器字长一般等于内部寄存器的大小,它决定了计算机的运算精度。
指令字长:一个指令字中包含的二进制代码的位数。
存储字长:一个存储单元存储的二进制代码的长度。等于MDR的位数, 它们都必须是字节的整数倍。
数据字长:数据总线一次能传送信息的位数,它可以不等于MDR的位数。

二、数据的表示与计算

计算机组成原理学习笔记-精简复习版_第7张图片

三、存储系统

计算机组成原理学习笔记-精简复习版_第8张图片

计算机组成原理学习笔记-精简复习版_第9张图片

计算机组成原理学习笔记-精简复习版_第10张图片
计算机组成原理学习笔记-精简复习版_第11张图片

Cache 高速缓冲存储器

计算机组成原理学习笔记-精简复习版_第12张图片

虚拟存储器(虚拟内存)

计算机组成原理学习笔记-精简复习版_第13张图片

四、指令系统

计算机组成原理学习笔记-精简复习版_第14张图片

五、中央处理器

计算机组成原理学习笔记-精简复习版_第15张图片

六、总线

计算机组成原理学习笔记-精简复习版_第16张图片
计算机组成原理学习笔记-精简复习版_第17张图片
计算机组成原理学习笔记-精简复习版_第18张图片
计算机组成原理学习笔记-精简复习版_第19张图片
现代计算机总线标准多为 PCIE 技术,比如PCIE4.0等

七、IO

计算机组成原理学习笔记-精简复习版_第20张图片
网络IO和磁盘IO等外部IO的耗时都是相当大的,在写代码中应尽可能减少这类IO,并且要关注你的代码对各个硬件的影响(CPU使用率、内存使用率)等。

你可能感兴趣的:(学习,笔记,java)