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

- 328,167
- 45
- 605
- 847

- 13
- 4
-
1this is off-topic here. It should be on [retrocomputing.se] – phuclv Jan 09 '23 at 00:17
-
Can you please [edit] to convert your images of text into actual text? [See here](https://meta.stackoverflow.com/a/285557/11107541) for why. See [/editing-help#code](/editing-help#code) for how to format code blocks. See also: [/editing-help#tables](/editing-help#tables). – starball Jan 09 '23 at 00:35
-
1I think the chart if deceptive. RD' and WR' are asserted respectively to read and write data. Some cycles do neither. In that case the bus can be free for other devices like DMA controllers. The chart doesn't have rows for RD' = WR' = 1, which would be "bus available." – Gene Jan 09 '23 at 00:36
-
That's 3 lines for the 3 columns in your table. The linked article says it's decoded by a 3:8 decoder. – Peter Cordes Jan 09 '23 at 01:07
1 Answers
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.)

- 23,049
- 2
- 29
- 53
-
2Using 1-hot also makes timing much simpler as each piece of hardware will be looking at one wire to turn on/off, rather than a combination of several wires which might have slightly different delay/jitter – Chris Dodd Jan 09 '23 at 00:40