8

Wikipedia gives similar definition for Memory Data Registers and Memory Buffer Registers.

Yet, its page on processor registers differentiate the two without saying what sets them apart (https://en.wikipedia.org/wiki/Processor_register). So, is there any difference between MBRs and MDRs? If yes, what makes them different?

Thank you for your help!

Pod
  • 3,938
  • 2
  • 37
  • 45
hokkaidi
  • 858
  • 6
  • 19
  • The MDR article now just redirects to the MBR article. Also related: [x86 registers: MBR/MDR and instruction registers](https://stackoverflow.com/q/51522368) - those are implementation details. Real-world modern CPUs have caches and can be waiting for multiple in-flight loads (memory-level parallelism with hit-under-miss and miss-under-miss caches). Also split instruction/data caches are very common. This simple model is similar to some real 8-bit micros ([Does any computer resemble the UK's secondary education model?](https://retrocomputing.stackexchange.com/q/24795)) – Peter Cordes Jul 04 '22 at 09:59

2 Answers2

4

The Wikipedia article you referenced is currently very low quality. But the terms MDR and MBR reminded me of a Stackoverflow question I answered a few months ago.

My guess is that whoever created the MDR and MBR entries on Wikipedia was using one of Williams Stallings textbooks. I don't know for sure and there are no references on either of the stub pages. And I haven't read Stallings' books, but I remember some of the details from the previous question that I answered and it looks very similar.

In either case the "Internal registers" section of the Wikipedia page on Processor register is not currently reliable information and does not provide an explanation that is generally applicable to most CPUs.

Community
  • 1
  • 1
Gabriel Southern
  • 9,602
  • 12
  • 56
  • 95
2

I think the difference has become blurred or perhaps meaningless. In the IBM 1620 Data Processing System (introduced in 1959), the MBR holds data read from core or about to be written to core. The 1620 MBR is two bytes* wide to speed up instruction fetching, but most data operations are performed on single bytes. The byte under scrutiny, which came from/goes to either the odd or even half of the MBR, lives in the MDR, which is one byte wide.

  • Not eight bits. It's complicated.
David Wise
  • 21
  • 1