英文:
Why is 8086 control bus 4 bits?
问题
我在想为什么8086控制总线由4条线路组成,分别是I/O读/写和内存读/写。这显然是4个不同的功能,只需2条线路就可以确定。在这个geeksforgeeks链接中,我们清楚地看到RD是WR的非操作。
英文:
I was wondering why 8086 control bus consists of 4 lines I/O read/write and Mem read/write.
These are clearly 4 different functions that can be determined using only 2 lines. In this geeksforgeeks link we can clearly see that RD is the not operation of WR
答案1
得分: 3
在硬件中,通常会使用1-hot控制信号,其中一条线用于读取,另一条线用于写入,而不是使用一条编码线用于两者(即一条线表示读取=0,写入=1)。
当信号被打包/编码成你所建议的方式,即2位表示4个值时,它们通常必须在激活预期的硬件电路之前解码为1-hot。
所以,在这里,他们显然没有进行编码和解码,而是直接暴露了4个不同的1-hot线路。
然而,最重要的是,使用两条线(一条用于读取,一条用于写入)允许在给定的总线周期上执行读取、写入,或者不操作。因此,实际上有三种不同的值(或者在I/O和内存方面有六种),而这些甚至不能被编码为1位(或2位)(但可以用2位(或3位)来编码)。
(是的,它也允许双操作读取=1和写入=1,但人们普遍认为这是不好的做法,不会这样做。)
英文:
It is common in hardware to use 1-hot control signals here one line for read & one line for write, instead of one encoded line for both (i.e. one line where read=0, write=1).
When signals are packed/encoded as you suggest, i.e. 2 bits represents 4 values, they generally have to be decoded into 1-hot before they can activate the intended hardware circuitry.
So, here apparently, instead of encoding and decoding, they simply expose the 4 different 1-hot lines.
Most importantly, however, two lines (one for read and one for write) allows for saying read, write, or no operation on a given bus cycle. So, there's really three different values (or six for both I/O and memory), and these cannot even be encoded in 1 (or 2) bits (but could be in 2 (or 3 bits)).
(Yes, it also allows for dual operation read=1 and write=1, but this is understood to be bad and no one will do it.)
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论