极客号

plc的语句指令中什么表示cpu用什么去做?windows 命令行 cpu信息

plc的语句指令中什么表示cpu用什么去做?

PLC中的CPU是不能直接识别PLC指令的,PLC设备是一套完整的计算机系统,除了CPU、RAM、ROM、I/O,还有一个软件系统,包含编程设备上的PLC编程软件,它们把PLC语句编译成CPU可以执行的指令

plc的语句指令中什么表示cpu用什么去做?windows 命令行 cpu信息-图1

cpu数据怎么写进去的?

一般来说,读写数据都是相对于cpu的。

当程序加载进内存后,指令放在code段,数据放在data段。data段中数据的地址由段寄存器和该数据偏移组成。code段的地址由cs和ip寄存器组成。

cpu向内存写数据的时,相当于将数据写入内存地址中。数据的地址经过地址总线送给译码器,译码器的有效输出送给锁存单元的使能端,而cpu中寄存器数据通过数据总线送给锁存单元的输入端,实现数据存入内存。

plc的语句指令中什么表示cpu用什么去做?windows 命令行 cpu信息-图2

cpu读内存数据时,相当于将内存地址中的数据读入cpu。数据的地址经过地址总线送给译码器,译码器的有效输出送给锁存单元的使能端,此时锁存单元将输出端数据送入数据总线,再通过数据总线送入cpu。

cpu与内存通过数据总线交换数据,数据总线是双向的。

求解:Cpu执行的指令来自内存,那内存中的指令来自哪里?如何产生?

程序执行的过程:

plc的语句指令中什么表示cpu用什么去做?windows 命令行 cpu信息-图3

1、写好一个程序,经过编译、链接后会生成一个可执行文件,在linux平台下是ELF(Executable Linkable Format)格式的,windows平台下是PE(Portable Executable)格式的。

2、然后你执行这个可执行文件,这个可执行文件里面的代码段、数据段和BSS段会被加载到PC或者某设备的内存中。代码段里放的就是指令,所以内存里的指令是通过执行某可执行文件加载到内存里的。

3、CPU会从代码段的起始地址,调用第一条指令,开始执行。如果没有遇到跳转指令就顺序执行:假设代码段起始地址是0x100,那么就是先执行0x100这个地址里的指令,然后再执行0x104、0x108地址里的指令。如果遇到跳转指令,就跳转到相应地址,取指令,继续执行。如此往复,完成了整个程序的运行。

4、有些指令,比如add rD,rA,rB。需要去rA和rB寄存器里取值。rA和rB寄存器里的值来自哪里?来自内存里的数据段、BSS段或者栈里或者堆里。说白了,程序就是靠执行一条条执行运行起来的,而指令执行所需的数据放在数据段、BSS段、栈或者堆里。

5、数据加载到数据寄存器的过程:CPU先去数据cache里找这个数据,如果找到了就直接从数据cache加载到数据寄存器里,如果找不到的话就只能再去内存里找。然后就是cache把刚才找到的这个数据缓存起来。

6、另外,CPU读数据的时候,cache的工作很简单,就是缓存。如果是写数据的话,cache就分为write though和wirte back两种不同的工作方式了。此外,CPU发出的地址都是逻辑地址,必须经过MMU模块把逻辑地址转换为物理地址才能正确访问内存。

7、注意,CPU执行指令的时候,也是从指令寄存器里取指令的,并不是直接跑到内存里去取指令,因为这样太慢了。指令加载到指令寄存器的过程和加载数据是类似的。

到此,以上就是小编对于的问题就介绍到这了,希望介绍的3点解答对大家有用,有任何问题和不懂的,欢迎各位老师在评论区讨论,给我留言。

本站非盈利性质,与其它任何公司或商标无任何形式关联或合作。内容来源于互联网,如有冒犯请联系我们立删邮箱:83115484#qq.com,#换成@就是邮箱

转载请注明出处:http://www.hushtel.com/sm/28706.html

分享:
扫描分享到社交APP
上一篇
下一篇