这是一个关于计算机组成原理的相关问题

一个cpu的mar,存一个存储单元的地址。存储单元长度一般为8位比特
在指令知识中,mar可以找到一条指令。疑问1:指令怎么会只是1个存储单元长度呢?倘若指令长度有好多个存储单元长度,可mar就一个,指的空间太小,无法指定该指令所有内容的
疑问2机器字长和指令字长是2倍 半倍或者1倍,为什么采用这些倍数?
疑问3我感觉机器字长和指令中的数据长度成倍数关系更适合,因为都是数据相关的嘛。为啥要掺和操作码长度?

这个要看你的上下文。
估计你的上文中特指某种8位cpu,所以mar是8bit

0.5 1 2只是一个举例,也有0.25或者4 8...比较罕见而已。
你会发现一个规律,数字电路最喜欢按照2的倍数递增,这样设计起来比较方便。
cpu有16bit 32bit 64bit,没有 27bit 30bit的吧
内存条 1GB 2GB 4GB,没有1.7GB 4.6GB的吧