8086控制总线为什么是4位?

huangapple go评论55阅读模式
英文:

Why is 8086 control bus 4 bits?

问题

我在想为什么8086控制总线由4条线路组成,分别是I/O读/写和内存读/写。这显然是4个不同的功能,只需2条线路就可以确定。在这个geeksforgeeks链接中,我们清楚地看到RD是WR的非操作。
8086控制总线为什么是4位?

英文:

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
8086控制总线为什么是4位?

答案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.)

huangapple
  • 本文由 发表于 2023年1月9日 08:10:48
  • 转载请务必保留本文链接:https://go.coder-hub.com/75052199.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定