2010-05-06 3 views
3

위로 8086 에뮬레이터를 만들었을 때 LOCK 접두어가 멀티 프로세서 환경에서 동기화를 위해 의도 된 것으로 나타났습니다. 그러나 x86 아치에 대해 알고있는 유일한 멀티 태스킹. 펜티엄이나 486까지 올 수 없었던 APIC의 사용을 포함합니다.8086 멀티 프로세싱을위한 표준이 있습니까?

8086 멀티 태스킹에 대한 표준이 있습니까? 아니면 제조업체가 특정 명령 세트 및/또는 특수 포트를 확장 한 것입니까?

표준에 따르면, 다음과 같은 의미가 있습니다 : 두 프로세서가 동일한 메모리를 사용하는 경우 어떻게 분리합니까? 이것은 각 프로세서가 다른 코드를 실행하게하는 어떤 종류의 방법 없이는 불가능합니다. (또는 하나의 프로세서에서만 인터럽트가 발생합니다)

+0

"8086 multitasking"- 물론 RMX 86. 그러나 당신은 8086 멀티 프로세싱을 의미했습니다. –

답변

3

둘 모두 동일한 메모리를 사용하는 경우 두 개의 프로세서를 분리합니까? ?

Intel의 MULTIBUS를 통해 동일한 메모리에 액세스 한 경우 LOCK 접두사가 해당 종류의 serialization을 발생시킵니다.

메모리가 한 프로세서의 회로 보드에 로컬로 설치된 경우 LOCK 접두어가 다른 프로세서가 MULTIBUS를 통해 들어 와서 동시에이 보드의 메모리에 액세스하는 것을 방지하지 않습니다. 이 구성에서 프로그래머는 버스를 잠그기 위해 다른 게임을해야합니다 (그리고 메모리 조작을 마친 후에 버스를 잠금 해제해야합니다).

+0

Multibus? 나는 그것에 대해 들어 본 적이 없다 – Earlz

+0

그리고 이것은 내 질문에 정확하게 대답하지 않는다. 두 개의 8086이 둘 다 동일한 메모리에서 실행되는 경우 어떻게 서로 다른 코드를 실행하게 했습니까? – Earlz

+1

스택 오버플로로 인해 다음 URL을 올바르게 입력 할 수 없습니다. http 콜론 슬래시 lmgtfy dot com /? q = multibus –

1

글쎄, 여기 전문가는 아니지만 노력하겠습니다.

명심해야 할 점 : "PC"또는 "PC 아키텍처"를 생각하지 마십시오. IBM PC가 존재하기 전에 (이전의 표준 개인용 컴퓨터 설계는 제외하고) 인텔은 PC CPU를 제작하지 않았습니다. 그것은 마이크로 프로세서를 만들고있었습니다. 8086과 결합 할 수있는 하드웨어 구성 요소에 대한 정확한 기대치는 없었습니다. 하드웨어 마이크로 컨트롤러, 전자 계산기, 전자 장치 및 오 - 확실한 - 가정용 컴퓨터를 만들기 위해이 장치를 사용할 수있었습니다.

LOCK 접두어가 무엇입니까 (내가 마지막으로 인텔 프로그래머 설명서를 본 이후로 거의 15 년이되었습니다)는 명령 실행 기간 동안 마이크로 프로세서의 "버스 잠금"라인에 신호를 보내고 있습니다. 그 효과가 있었는지 여부, 그 라인에 무엇을 유선에 의존! 일반적으로, 예, 라인은 다른 구성 요소가 데이터 라인을 사용하지 못하게하는 회로에 연결되었습니다. 그것이 버스를 "버스"로 만드는 이유입니다. (그러나 나는 세부 사항에 대해서는별로 잘 모릅니다).

혼란의 원인은 멀티 태스킹이 멀티 프로세서와 동일하지 않다는 것입니다 (또는 멀티 컴포넌트라고해야합니까?). 아무도 2 개의 8086이 같은 버스에 연결되어있는 PC를 조립하려고 시도했는지 모르지만, PC 아키텍처 에서조차 버스가 버스에 연결된 것은 아닙니다. 예를 들어 8086에서 실행되는 소프트웨어는 외부 입력 장치와 공유되는 메모리에 액세스 할 때 버스를 잠그어야 할 수 있으므로 외부 입력 장치는 8086이 읽는 동안 동시에 쓸 수 없습니다. 나는 오래된 패션 PC BIOS조차 이것에 대한 공정한 몫을 가지고 있다고 생각한다.

오늘날의 다중 프로세서 아키텍처는 다른 프로세서간에 조정하기 위해 여전히 접두어 LOCK을 사용합니다. 그러나 그것이 존재하는 주된 이유는 아니었고 그것의 유일한 용도는 아닙니다.

1

현대의 Intel CPU에서 메모리 액세스 : CPU가 FSB (전면 버스)을 통해 NorthBridge (메모리 컨트롤러 허브)에 연결됩니다. NorthBridge는 SouthBridge와의 연결을 위해 메모리 버스, AGP 및 PCI (그래픽) 및 내부 버스에 대한 액세스를 공유합니다.여러 하드웨어 핀 통해

alt text

그리고 CPU 제어 액세스 FSB :도 확인

  • PBRI 번호 PIN은 FSB의 소유권 중재하기 위해 사용된다.
  • BRO # 핀은 프로세서에 의해 버스를 요청하는 데 사용됩니다.
  • LOCK # 핀은 데이터 트랜잭션의 잠긴 시퀀스를 나타냅니다.

는 I를 편집

8086 CPU의 SISTEM 들어 : CPU가이 이외의 외주와 데이터 버스 및 어드레스 버스를 공유해야 여러 CPU 8086 년 DMA 8237 controller

해결할되는 인텔 SISTEMS Multibus IEEE 796 버스 표준이 사용 중입니다. Multibus description을 확인하십시오.

편집 II는 :

8086 멀티 CPU 시스템은 글로벌 (시스템) 메모리가이 메모리는 멀티 버스를 통해 공유됩니다. 그래서 시스템의 모든 CPU는 자체 코드와 데이터 메모리를 가지고 있으며 멀티 버스를 통해 글로벌 메모리에 액세스합니다. 여기에서는 직렬 및 병렬 우선 순위 체계보다 버스 CPU를 중재하고 전송하는 CPU에 대해 설명합니다. 그러나 버스 액세스를 제어하기위한 많은 하드웨어 핀이 있습니다. 버스 록은 #LOCK 핀에 의해 만들어지며 다른 모든 CPU는 하이 레벨에서 그 시간 동안 #BUSY 핀을 갖게됩니다.

+0

이것은 현대의 프로세서가 아니라 매우 오래된 8086에 관한 것입니다. – Earlz

+0

나는 상위 대답을 편집하고 8086 메모리 액세스 세부 정보에 대한 링크를 넣었습니다. –

관련 문제