指令和数据都用二进制代码存放在内存中,从时空观角度回答CPU如何区分读出的代码是

2024-12-14 16:12:41
推荐回答(3个)
回答1:

计算机可以从时间和空间两方面来区分指令和数据,在时间上,取指周期从内存中取出的是指令,而执行周期从内存取出或往内存中写入的是数据,在空间上,从内存中取出指令送控制器,而执行周期从内存从取的数据送运算器

回答2:

不知道你有没有学过Computer Architecture 存放在内存中的时候 有对齐(alignment)的规则,打个比方 一行有32个格子 指令的长度(假定是变长指令)为1-8 那么指令开头都必须放在1 9 17 25号格子(无论指令是长是短)(这是空间上的)
时间上的,那么首先根据程序入口点读进来的肯定是指令 指令中涉及的在内存中的数据 由指令可以知道数据的长度是16位还是32位 那么就知道要从哪个地址读多少位了 事实上 数据也是对齐的 所以不会发生混乱的情况

回答3:

处理器中包含两个部分:控制器和运算器。
代码会流向控制器,而数据流向运算器。
而区别是数据还是代码,在处理器中有专门的控制机制,它会保证读取是数据还是代码。