Is there any standard for 8086 multiprocessing?

Back when I created the 8086 emulator, I noticed that there is a prefix LOCKdesigned for synchronization in a multiprocessor environment. But the only multitasking I know for x86 architecture. involves the use of APIC, which did not appear until neither Pentium nor 486s.

Was there any standard for 8086 multitasking or was made with some manufacturer extensions for instruction sets and / or special ports?

By the standard, I mean things like: How do you separate 2 processors if they both use the same memory? This is not possible without any way to get each processor to execute a different piece of code. (or cause an interrupt for only one processor)

+3
source share
3 answers

How do you separate 2 processors if they both use the same memory?

If they got access to the same memory through Intel MULTIBUS, the LOCK prefix caused just such serialization.

If the memory was installed locally on one processor board, the LOCK prefix did not prevent other processors from penetrating MULTIBUS and simultaneously accessing this memory. In this configuration, the programmer will have to play other games to lock the bus (and unlock the bus after completing the memory operation).

+3
source

Well, I'm not an expert here, but I will try.

- : "" " ". , IBM PC ( ), Intel ; . , 8086. , , - , - .

LOCK ( , 15 , Intel), " " . , , ! , , , ; "" ( ).

, - , ( ?). , - 8086, , , , . , , 8086, , , , 8086 . , .

- LOCK ; , , .

+1

Intel: CPU - FSB ( ) NorthBridge ( ). NorthBridge , AGP PCI () SouthBridge. :

alt text

FSB :

  • PIN PBRI # .
  • BRO # .
  • LOCK # pin .

I:

8086: , DMA 8237

8086 Intel Multibus IEEE 796. Multibus.

EDIT II:

8086 () , multibus. , multibus. AMD , . . #LOCK, #BUSY .

+1

Source: https://habr.com/ru/post/1744267/


All Articles