Rajat Batra’s Post

View profile for Rajat Batra, graphic

Software Engineer @ Google | M.Tech in Software Systems

Suppose a CPU has to get some data from a memory or a register. How does it pick the right bus? Let’s think of a postman who has to deliver a letter in a world where google maps doesn’t exist. The letter has an address with a zip code. The postman uses the zip code to reach the closest area. Then he asks someone for directions. The person reads the address and tells him the next nearest place. The postman does this repeatedly until he gets to the destination. This is like how the bus topology works. The CPU puts the address on its System bus. The bus sends it to the bus matrix. The bus matrix masks the address with some flags and decides which slave to send the transaction to. It then passes the address to that slave. If the slave is the destination, it gives the data and ACKs to the CPU. Otherwise, the cycle goes on. For example, see the figure below. 1️⃣ The CPU wants to get the data from the address 0xA84004. It first masks the address and finds out that 0xAxxxxx is for the external bus and puts it there. 2️⃣ The bus matrix gets the address and masks it with XFXXXX to figure out that it should go to bridge 0. 3️⃣ Bridge 0 then masks it with XXFXXX to see that it should go to UART0. 4️⃣ UART0 checks the offset and finds out that the CPU wants to get UART_DATA register. It agrees to the transaction and sends ACK to the CPU.

  • No alternative text description for this image
Maciek Samsel

Architect at Flagstar Bank

8mo

It is not innovative. This is how bank accounts work - that is account number and routing. It is basically tree approach masking groups. In case of CPU it is half-octet. In case of account holding money it is established group: routing and account at branch decided by routing number. I have also designed some information distribution on ESB this way in finance years ago.

Eugeny Brychkov, Ph.D.

IIoT | NPD | Embedded | Firmware | System architecture | Electronics | Troubleshooting

8mo

Incorrect. Address goes to address bus and not instruction or data bus - and you must detail the architecture before making statements. There's no anyone 'to ask" on the bus - CPU performs broadcast within its scope and gates down the signals (address and control) decide if to pass this broadcast further to their would-be attached peripherals.

Michael W.

Sr. Software Development Engineer @ AMD

8mo

Where do they teach about bus matrices and bridges? I feel like those are not commonly covered, and I need to implement it myself on FPGA to really get it.

Like
Reply
P Sai Krishna

Staff Performance Analysis Engineer

8mo

Literally the worst explanation ever with no discussion of actual interfaces or protocols. Who’s your audience supposed to be? Dumb college students who gobble up wrong and oversimplified content just because you’re in Google? Stop trying to make it as a content creator and just concentrate on real learning

Like
Reply
Ken Tindell

CTO at Canis Automotive Labs Ltd.

8mo

Where this gets really interesting is in real-time embedded systems and multiple cores. Trying to work out how long a piece of code takes to run on a core becomes super difficult.

Hans-Christian Mose Jehg

Cyber, Software and System Engineer in IIoT and OT - with a keen liking for processes, and great at embedded software development. Computational Thinker.

8mo

74LS138 in the olden days... not really bus bridges, but bus selector...

Friedhelm Becker

Wer nicht weiß, wohin er will, darf sich nicht wundern, wenn er ganz woanders ankommt!

8mo

The primary question to be answered is this: How does the CPU retrieve the right category of binary information. The answer - patented but not yet built - is the entrance door for cybercrime!

Ramadasu Venkata Tanguturi

Vice President Emerging Technologies

8mo

Good visual thought

Like
Reply
Tamer Amer

Micro-code(core) validation at Intel Corporation

8mo

Great description

Like
Reply
See more comments

To view or add a comment, sign in

Explore topics