目录
一、冯诺依曼体系(Von Neumann Architecture)
(2)算术逻辑单元 ALU(Arithmetic & Logic Unit)
一、冯诺依曼体系(Von Neumann Architecture)-- 硬件
1.1 冯诺依曼体系结构
冯·诺依曼结构也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置。
数学家冯·诺依曼提出了计算机制造的三个基本原则,即采用二进制逻辑、程序存储执行以及计算机由五个部分组成(运算器、控制器、存储器、输入设备、输出设备),这套理论被称为冯·诺依曼体系结构。
计算机的五个组成部分 | 说明 |
运算器 | 运算器和控制器合称中央处理器(CPU),CPU是计算机中最核心的部分,主要负责算术运算和逻辑判断。CPU中也内置了一些“存储器”,这些“存储器”被称为寄存器。 |
控制器 | |
存储器 | 存储器分为外存和内存,以二进制的方式存储数据。外存有硬盘、U盘等。 |
输入设备 | 用户给计算机发送命令的设备,如键盘、鼠标。 |
输出设备 | 计算机反馈信息给用户的设备,如显示器、音箱。 |
外存、内存、CPU寄存器之间的对比:
对比属性 | 外存 | 内存 | CPU寄存器 |
存储空间 | 大 | 中 | 小 |
访问速度 | 慢 | 中 | 快 |
价格 | 便宜 | 中 | 贵 |
数据持久性 | 断电能保存 | 断电丢失 | 断电丢失 |
*上述属性的对比结果都是相对的。 |
1.2 中央处理器(CPU)
(1)三种基本的门电路
学习过编程语言的小伙伴都会知道编程语言中存在:与、或、非这三种基础判断逻辑。
可以参考编程语言中逻辑判断的概念去认识三种基本的门电路。
三种基本的门电路包括:非门、与门、或门。
非门 | 当输入为高电平(逻辑1)时,输出为低电平(逻辑0)。当输入低时,输出为高电平。输入和输出的电平状态总是相反的。 |
与门 | 与门有多个输入和一个输出。当所有输入为高电平(逻辑1)时,输出为高电平,否则输出为低电平(逻辑0)。 形象来讲,类似串联的两个开关,只有都合闸时,才能通过电流,逻辑才为1。 |
或门 | 或门有多个输入和一个输出。只要其中一个输入为高电平(逻辑1),输出为高电平(逻辑1);只有当所有输入为低电平(逻辑0)时,输出为低电平(逻辑0)。 形象来讲,类似并联的两个开关,只要一个合闸,就能通过电流,逻辑就为1。 |
三种基本的门电路通过组合搭配,又组成了更多“复杂”的电路,如异或门、半加器、全加器、加法器、判断器等。而构成CPU的其他诸如算术逻辑单元 ALU(Arithmetic & Logic Unit)、寄存器(Register)、控制单元 CU(Control Unit)等也是由这些简单基础的电路器件搭建起来的。
(2)算术逻辑单元 ALU(Arithmetic & Logic Unit)
算术单元(Arithmetic Unit)主要由包括加法器在内的,用于运算的部件组成。
逻辑单元(Logic Unit)主要由包括判断器在内的,用于逻辑判断的部件组成。
算术逻辑单元(Arithmetic & Logic Unit)就是算术单元和逻辑单元在CPU中的统称。
(3)寄存器(Register)
寄存器是一种非常快速的存储器,它位于CPU内部,用于暂存CPU执行指令、数据及保存程序状态等,访问速度快。
寄存器使用时要求保持通电状态,一旦断电存储的数据会丢失,寄存器存储数据是易失的(volatile)。
(4)控制单元 CU(Control Unit)
控制单元通过指令(Instruction),指挥算术逻辑单元工作。
指令由操作码和地址码组成。操作码用于表示指令应执行的操作具备何种性质和功能,地址码用于给出被操作的信息(指令或数据)的地址。
取出并执行一条指令所需的全部时间被称为指令周期。
(5)时钟(Clock)
指令由时钟进行周期驱动,粗略地讲,CPU主频就是时钟每秒震荡的次数,可以近似的看作每秒执行的指令数。
(6)中央处理器(Center Process Unit)
算术逻辑单元 ALU,寄存器,控制单元 CU和时钟就组成了一个中央处理器(Center Process Unit)。
1.CPU只进行指令的执行工作。 |
2.CPU从内存中取出指令,而CPU中的PC寄存器,决定了CPU要执行哪条指令。 |
3.指令由操作码和地址码组成,代表动作 + 操作对象。 |
4.执行指令时,CPU需要先取指令,再解析指令,再执行指令。 |
5.取指令操作非常耗时,开销大。CPU通过使用缓存,流水线等技术来优化,以提高效率。 |
6.解析指令时,CPU需要用到“指令表”,不同架构的CPU支持的指令表不同(如,x86和arm)。指令表是CPU内置的。 |
7.指令的操作对象可以是多个,操作数的含义也可以是不同的。 |
8.主频是CPU的重要参数,可以近似的认为,主频就是一秒内CPU可以执行的指令数量。 |
二、操作系统(Operating System)-- 软件
2.1 编程语言
编程语言有三类,分别是机器语言,汇编语言和高级语言。
机器语言 | 主要是利用二进制编码进行发送。 机器语言是机器能直接识别的程序语言或指令代码,无需经过翻译,每一操作码在计算机内部都有相应的电路来完成它,或指不经翻译即可为机器直接理解和接受的程序语言或指令代码。 |
汇编语言 | 主要是以缩写英文作为标符。 在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植。 |
高级语言 | 主要是对多条指令整合为单条指令输送。 高级语言(High-level programming language)是一种独立于机器,面向过程或对象的语言。高级语言是参照数学语言而设计的近似于日常会话的语言。高级语言相对低级语言有较高的可读性,更易理解。 |
现在使用非常广泛的C/C++、Java等都是高级语言。
2.2 操作系统
操作系统是⼀组做计算机资源管理的软件的统称。⽬前常⻅的操作系统有:Windows系列、Unix系列、Linux系列等。
操作系统在计算机系统中的定位:
操作系统内核的两个基本功能(主要职责):
操作系统内核的两个基本功能(主要职责) |
1.管理各种硬件设备,防止硬件被失控的应用程序滥用。 |
2.向应用程序提供稳定的运行环境。 |
操作系统中的用户态和内核态:
用户态 | 应用程序通常在用户态中运行。 |
内核态 | 有时应用程序需要调用系统中的软硬件资源,此时则需要调用系统提供的API,这部分操作在内核态中进行。 |
区分用户态和内核态的原因:
限制应用程序的系统指令使用权限,确保应用程序对系统指令的调用是合法的。而部分危险程度较高的指令,只能由操作系统相关模块调用。保证了系统运行的稳定性,起到了管理硬件,提供稳定的应用程序运行环境的作用。
阅读指针 -> 《什么是进程(Process)?进程管理,进程调度,内存管理,进程间通信和多进程编程》