简书计算机组成原理知识点梳理,计算机组成原理(一)

冯·诺依曼计算机的特点(机器以运算器为中心)

计算机由运算器、存储器、控制器、输入设备和输出设备五大部件组成

指令(程序)和数据以二进制不加区别地存储在存储器中

程序自动运行

现代计算机由三大部分组成(已经转化为以存储器为中心)

CPU(Central Processing Unit) 中央处理器,核心部件为ALU(Arithmetic Logic Unit,算术逻辑单元)和CU(Control Unit,控制单元)

I/O设备(受CU控制)

主存储器(Main Memory,MM),分为RAM(随机存储器)和ROM(只读存储器)

一条指令在CPU的执行过程

Ad(Address) 形式地址

DR(Data Register) 数据寄存器

AR(Address Register) 地址寄存器(MAR)

IR(Instruction Register) 指令寄存器

BR(Buffer Register) 缓冲寄存器(MBR)

ID(Instruction Decoder) 指令译码器

PC(ProgramCounter) 程序计数器

dbc2356104d2

几乎所有的冯·诺伊曼型计算机的CPU,其工作都可以分为5个阶段:

取指令

指令译码

执行指令

访存取数

结果写回

1.取指令阶段

取指令(Instruction Fetch,IF)阶段是将一条指令从主存中取到指令寄存器的过程。

程序计数器PC中的数值,用来指示当前指令在主存中的位置。当一条指令被取出后,PC中的数值将根据指令字长度而自动递增:若为单字长指令,则(PC)+1àPC;若为双字长指令,则(PC)+2àPC,依此类推。

//PC -> AR -> Memory

//Memory -> IR

2.指令译码阶段

取出指令后,计算机立即进入指令译码(Instruction Decode,ID)阶段。

在指令译码阶段,指令译码器按照预定的指令格式,对取回的指令进行拆分和解释,识别区分出不同的指令类别以及各种获取操作数的方法。

在组合逻辑控制的计算机中,指令译码器对不同的指令操作码产生不同的控制电位,以形成不同的微操作序列;在微程序控制的计算机中,指令译码器用指令操作码来找到执行该指令的微程序的入口,并从此入口开始执行。

3.访存取数阶段

根据指令需要,有可能要访问主存,读取操作数,这样就进入了访存取数(Memory,MEM)阶段。

此阶段的任务是:根据指令地址码,得到操作数在主存中的地址,并从主存中读取该操作数用于运算。

4.执行指令阶段

在取指令和指令译码阶段之后,接着进入执行指令(Execute,EX)阶段。

此阶段的任务是完成指令所规定的各种操作,具体实现指令的功能。为此,CPU的不同部分被连接起来,以执行所需的操作。

例如,如果要求完成一个加法运算,算术逻辑单元ALU将被连接到一组输入和一组输出,输入端提供需要相加的数值,输出端将含有最后的运算结果。

5.结果写回阶段

作为最后一个阶段,结果写回(Writeback,WB)阶段把执行指令阶段的运行结果数据“写回”到某种存储形式:结果数据经常被写到CPU的内部寄存器中,以便被后续的指令快速地存取;在有些情况下,结果数据也可被写入相对较慢、但较廉价且容量较大的主存。许多指令还会改变程序状态字寄存器中标志位的状态,这些标志位标识着不同的操作结果,可被用来影响程序的动作。

6.循环阶段

在指令执行完毕、结果数据写回之后,若无意外事件(如结果溢出等)发生,计算机就接着从程序计数器PC中取得下一条指令地址,开始新一轮的循环,下一个指令周期将顺序取出下一条指令。

//重复 1~5

dbc2356104d2

主存与CPU联系

dbc2356104d2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Kafka是一个分布式消息系统,可以实现高吞吐量、可扩展、持久化的消息传递。它采用了发布-订阅模式,允许多个生产者将消息发布到一个或多个主题(topic),再由多个消费者订阅主题并消费消息。 在Kafka中,点到点消费是一种消息消费方式。它指的是每个消息只能被一个消费者处理,即消费者群组中只有一个消费者能够接收和处理这个消息。 使用Kafka的点到点消费模式,可以实现高效灵活的消息处理。下面是一种在Kafka中实施点到点消费的简书: 1. 创建Kafka主题:首先,需要创建一个Kafka主题(topic),用于存储待消费的消息。可以使用Kafka提供的命令行工具或编程语言中的Kafka客户端API进行创建。 2. 编写生产者:编写一个生产者程序,用于向Kafka主题发送消息。生产者可以使用Kafka客户端API实现,将消息发送到指定的主题。 3. 编写消费者:编写一个消费者程序,用于从Kafka主题消费消息。消费者可以使用Kafka客户端API实现,订阅指定的主题并处理接收到的消息。 4. 设定消费者群组:为了确保点到点的消息消费,可以为消费者程序设置一个唯一的群组ID。这样,同一个群组ID下的消费者将共享消息的消费,每条消息只会被群组中的一个消费者处理。 5. 消费消息:启动消费者程序,它将连接到Kafka集群,并开始消费指定主题中的消息。Kafka会按照消息的顺序,将消息分配给不同的消费者进行处理。 通过以上步骤,我们就可以在Kafka中实现点到点的消息消费。生产者发送消息到Kafka主题,消费者从主题中消费消息,并进行相应的处理。这种方式能够保证每条消息仅被一个消费者处理,实现了点到点的消息传递。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值