KR100225743B1 - 공유자원으로의 멀티프로세서 액세스의 조정 - Google Patents
공유자원으로의 멀티프로세서 액세스의 조정 Download PDFInfo
- Publication number
- KR100225743B1 KR100225743B1 KR1019920021557A KR920021557A KR100225743B1 KR 100225743 B1 KR100225743 B1 KR 100225743B1 KR 1019920021557 A KR1019920021557 A KR 1019920021557A KR 920021557 A KR920021557 A KR 920021557A KR 100225743 B1 KR100225743 B1 KR 100225743B1
- Authority
- KR
- South Korea
- Prior art keywords
- processor
- access
- grant
- request
- access request
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Multi Processors (AREA)
- Memory System (AREA)
Abstract
멀티프로세서 컴퓨터 시스템에서, 액세스 요구 및 승인레지스터가 각 공유 자원에 대한 액세스 요구 및 승인 시마포어를 기억하기 위해 제공된다.
다수의 액세스 요구 및 승인 비트를 가지는 액세스 요구 및 승인 시마포어가 프로세서에 할당된다. 부가적으로 전용 액세스 요구 비트를 설정/클리어 하고 기억된 액세스 요구 시마포어의 모든 액세스 요구 비트를 동시 판독하기 위해 회로가 각 액세스 요구 레지스터를 위해 제공된다.
더욱, 프로세서의 상대 액세스 우선 순위를 반영하는 좌표화 요구 및 승인 마스크가 제공되어 프로세서가 공유자원이 더 낮은 우선순위 프로세서에 승인되는지 및 공유자원이 더 높은 우선순위 프로세서에 의해 요구되는지 여부를 결정하기 위해 액세스 요구 및 승인 시마포어의 현재의 설정치와 관련하여 사용한다.
그 결과 공유자원으로의 멀티프로세서 액세스는 종래에 비해 다수의 장점을 가지는 방법으로 조정된다.
Description
제1도는 본발명에 따른 멀티프로세서 컴퓨터 시스템의 바람직한 실시예의 도시도.
제2도는 제1도에 도시된 멀티프로세서 컴퓨터 시스템에서 공유자원으로의 프로세서 액세스를 조정하는데 사용된 본발명의 시마포어의 도시도.
제3도는 제1도에 도시된 멀티프로세서 컴퓨터 시스템에서 공유자원으로의 프로세서 액세스를 조정하는데 사용된 본발명의 액세스 요구 마스크의 도시도.
제4도는 제1도에 도시된 멀티프로세서 컴퓨터 시스템에서 공유자원으로의 프로세서의 액세스를 조정하기 위해 사용된 본발명의 액세스 승인 마스크의 도시도.
제5a도 내지 5b도는 제1도에 도시된 멀티프로세서 컴퓨터 시스템에서 액세스 요구 레지스터에 기억된 요구 시마포어를 동시 판독하고 전용 비트를 설정/클리어 하는 본 발명의 회로의 두 실시예의 도시도.
제6도는 제1도에 도시된 멀티프로세서 컴퓨터 시스템에서 공유자원으로의 프로세서 액세스를 조정하는 본발명의 방법의 도시도이다.
[발명의 분야]
본 발명은 컴퓨터 시스템분야 특히 멀티프로세서 컴퓨터 시스템에 관한 것이다. 더욱 특히 본발명은 멀티프로세서 통신에 특정 적용을 갖는 공유자원으로의 멀티프로세서 액세스를 조정하는 것에 관한 것이다.
[배경]
오늘날 많은 컴퓨터 시스템은 다수의 프로세서로 구성된다.
전형적으로 프로세서는 다수의 자원 예컨대 프로세서간 통신을 위한 메모리내 영역을 공유한다. 이들 멀티프로세서 시스템의 많은 경우, 프로세서는 공통 고속버스를 통해 공유자원을 액세스한다.
조정기능이 특정 프로세서에 버스의 임시의 배타적 소유권을 주기위해 제공된다. 어느 프로세서에 그 자신의 캐시 메모리를 갖는 멀티프로세서 시스템에서, 간섭성데이타 관리기능이 공유자원을 액세스하기 위해 또한 제공된다.
조정 및 간섭성 데이타 관리기능이 버스에 의해 중앙집중적 방법이거나 프로세서에 의해 분산적 방법으로 제공된다.
덧붙여, 어떤 형의 시마포어는 각각의 공유자원으로의 액세스를 제어하기 위해 사용된다. 하나의 시마포어는 상호 배타적 록이다.
프로세서는 시마포어를 판독하고, 시마포어가 소정값 예컨대 영과 같은가를 체크하여 공유자원이 현재 자유로운지를 판별한다.
공유자원이 자유로운 경우, 푸로세서는 공유자원의 임시 소유권을 가져 이를 표시하기 위해 시마포어에 대해 다른 소정값 예컨대 영이 아닌 값을 기입한다. 공유자원이 자유롭지 않은 경우, 프로세서는 시마포어가 공유자원이 자유롭다는 것을 표시하는 소정값을 포함할 때까지 판독과 체크를 반복한다.
액세스의 종결시, 프로세서는 시마포어를 리세트하여 공유자원에 다시 자유롭다는 것을 표시한다.
시마포어 관리 프로토콜은 또한 시마포어가 공유자원의 임시 소유권을 가진 최종 프로세서에 의해서만 리세트되는 메카니즘 또는 법칙을 포함한다.
한 프로세서에 의한 시미포어의 판독-수정-기입조작이 공유자원의 임시 소유권을 얻기 위해 노력하는 다른 프로세서에 의해 간섭받지 않도록 보증하기 위해, 전형적으로 버스는 원자버스 사이클을 제공하여 이것에 의해 프로세서는 다수의 비간섭으로 연속버스 사이클에 대한 버스의 임시 소유권을 얻을 수 있다.
종래의 시마포어 관리는 적어도 4개의 문제점을 가진다.
(1) 대부분 시마포어 관리는 FCFS (first-come-first-serve) 방식으로 프로세서 액세스의 우선순위를 정하는 경향이 있다.
(2) 상대적 액세스 우선순위 설정을 허용하는 시마포어 관리하는 것들에 대해서, 그들은 통상 경쟁하는 프로세서가 그들 자신의 액세스 우선순위 수준을 판별하거나 또는 상대 액세스 우선순위가 동적으로 변화되는 단순한 방법을 제공하지 않는다.
(3) 그들은 통상 공유자원의 현소유자인 프로세서를 판별하는 단순한 방법을 제공하지 않는다.
(4) 그들은 모든 프로세서가 판독-수정-기입동작을 실행할 수 있고 버스가 원자버스 사이클을 자원할 수 있는 것을 요구하며, 더욱 판독-수정-기입동작이 같은 방법으로 프로세서에 의해 수행되어, 같은 컴퓨터 시스템에서 이질적인 프로세서가 합체되는 가능성을 배제시킨다.
본발명은 종래의 문제점을 극복하는 공유자원으로의 멀티프로세서 액세스를 조정하는 방법 및 장치를 제공한다.
[발명의 요약]
그러므로 본발명의 목적은 멀티프로세서 통신에 적용 가능한 공유자원으로의 멀티프로세서 액세스를 조정하는 방법 및 장치를 제공하는 것이다.
본발명의 다른 목적은 공유자원으로의 액세스가 동적으로 변경가능한 상대 액세스 우선순위에 근거하여 조정되게 하는 것이다.
본발명의 또다른 목적은 경쟁하는 프로세서가 그 자신의 액세스 우선순위를 판별할 수 있고 공유자원의 현소유자를 판별할 수 있게 하는 것이다.
본발명의 또다른 목적은 고속버스가 원자버스 사이클을 지원할 필요가 없고 프로세서들이 같은 방법으로 판독-수정-기입동작을 수행하거나 판독-수정-기입동작을 지원할 필요가 없어, 이에 따라 같은 컴퓨터 시스템에서 이질적인 프로세서의 합체를 가능하게 하는 것이다.
본 발명의 바람직한 실시예 하에서, 이들 및 다른 목적들은 멀티프로세서 컴퓨터 시스템상의 각각의 공유자원에 대해 각각 액세스 요구 시마포어 및 액세스 승인 시마포어를 기억하는 액세스 요구 레지스터 및 액세스 승인 레지스터를 제공하여 성취된다. 액세스 요구 및 승인 레지스터들은 각각의 프로세서들에 할당된 액세스 요구 비트 및 액세스 승인 비트를 갖춘 액세스 요구 및 승인 시마포어를 기억하기에 충분히 크도록 설계된다.
현재의 바람직한 형태로서 액세스 요구 및 승인 비트들은 최저 우선순위 프로세서에 할당되는 최저위 유효비트에서 시작하여 오름순으로 프로세서들에 할당된다.
부가적으로, 본발명의 바람직한 실시예에서, 개개의 액세스 요구 비트의 설정/클리어와 모든 액세스 요구 비트들의 동시 판독을 허용하는 대응회로가 제공되어 액세스 요구 레지스터들에 기억된 액세스 요구 시마포어들을 액세스한다.
더구나, 각각의 공유자원용 요구 마스크 및 승인 마스크가 제공되고 각 프로세서에 할당된다.
요구 및 승인 마스크들은 프로세서들의 상대 액세스 우선순위를 반영한다.
요구 및 승인 마스크들은 공유자원이 더 낮은 우선순위 프로세서에 승인되는지를 판별하고 공유자원이 더 높은 우선순위 프로세서에 의해 요구되는지를 판별하기 위해 액세스 요구 및 승인 시마포오의 현설정치와 관련하여 프로세서들에 의해 사용된다.
프로세서는 액세스 요구 시마포어의 할당된 액세스 요구 비트를 설정하여 공유자원의 임시의 배타적 소유권을 얻는 요구를 행한다.
그후 요구 프로세서는 소정시간을 대기한다. 요구를 인식하고 액세스 승인 시마포어의 할당된 액세스 승인 비트를 설정하기 위해 가장 느린 프로세서에 의해 요구되는 최대 시간 보다 더 길도록 최소의 소정시간이 설정된다.
소정시간 대기후, 요구 프로세서는 액세스 승인 및 요구 시마포어를 반복적으로 체크하여 더 낮은 액세스 우선순위 승인도 더 높은 액세스 우선순위 요구도 액티브하지 않음을 보장한다.
이와 같은 판별이 있는 후, 요구프로세서는 액세스 승인 시마포어의 액세스 승인 비트를 설정하고 공유자원의 임시의 배타적 소유권을 갖는다.
임시의 배타적 소유권을 얻은 후, 소유 프로세서는 공유자원에 대해 소망의 동작을 수행한다. 이들 동작 완료시, 소유 프로세서는 액세스 승인 및 요구 시마포어의 할당된 액세스 승인 및 요구 비트를 설정 해제한다.
그 결과, 멀티프로세서 컴퓨터 시스템의 프로세서들은 공유자원을 통한 프로세서간 통신을 수행할 수 있다.
경쟁하는 프로세서는 액세스 요구 및 승인 시마포어에 근거하여 자신의 상대적 액세스 우선순위 및 현소유자를 판별할 수 있다.
공유자원에 대한 프로세서들의 상대 액세스 우선순위는 다른 상대 액세스 우선 순위를 반영한 요구 및 승인 마스크의 새로운 세트를 부과하여 동적으로 또한 변화될 수 있다.
원자 액세스 사이클을 지원하는 프로세서 및 고속버스에 대한 필요성 및 동일 방법으로 판독-수정-기입 동작을 지원하는 프로세서에 대한 필요성이 제거된다.
그 결과, 이질적 프로세서들이 같은 멀티프로세서 컴퓨터 시스템에 합체될 수 있다.
[바람직한 실시예의 상세한 설명]
멀티프로세서 통신에 특별히 적용되는 멀티프로세서 컴퓨터 시스템에서 공유자원으로의 프로세서 액세스를 조정하는 방법 및 장치가 개시된다.
설명을 위해 하기 설명에서, 본 발명의 완벽한 이해를 돕기 위해 특정 숫자, 기구 및 구성이 설명된다.
그러나 본발명은 특정의 세부사항 없이도 실시될 수 있다는 것은 당해분야 통상의 전문가에게는 명백할 것이다.
다른 경우, 주지 시스템은 본 발명을 불필요하게 보호하게 하지 않도록 도식적 또는 블록도 형태로 개시된다.
제1도에 있어서, 본 발명에 부합한 멀티프로세서 컴퓨터 시스템에 바람직한 실시예를 나타낸 블록도가 도시된다. 다수의 프로세서(12a-12n)가 도시된다.
각각의 프로세서(12a-12n) 는 다음에 더욱 상세히 설명될 요구 마스트 및 승인 마스크를 각각 기억하는 요구 마스트 레지스터 및 승인 마스크 레지스터로 구성된다. 프로세서(12a-12n)는 주지 프로세서의 넓은 범주를 나타낸다.
사실상, 바람직한 실시예 하에서, 프로세서(12a-12n) 는 같은 방법으로 판독-수정-기입동작을 지원하지 않거나 또는 전혀 판독-수정-기입동작을 지원하지 않고 다른 주지의 프로세서들의 혼합체일 수 있다. 이들 프로세서(12a-12n) 의 특정예는 캘리포니아 마운틴 뷰 소재의 선마이크로시스템즈사의 SPARCTM프로세서 및 캘리포니아 산타클라라 소재의 인텔사의 i486TM프로세서를 포함한다.
(SPARCTM 은 선마이크로사의 등록상표이며 i486TM은 인텔사의 등록상표이다.)
프로세서(12a-12n) 는 액티브 고속버스(18)에 접속된다.
액티브 고속버스(18)는 버스(18)의 임시의 배타적 소유권을 승인하기 위한 중앙집중화 조정기능을 제공한다.
부가적으로 액티브 고속버스(18)는 프로세서(12a-12n) 의 일부가 개개의 캐시메모리로 구성된 경우 프로세서(12a-12n) 에 대한 간접성 데이타 관리기능을 제공한다.
그러나 현재의 바람직한 실시예하에서, 액티브 고속버스(18)는 원자버스 사이클을 제공할 필요가 없어 이에 의해 프로세서는 다수의 인터럽트되지 않은 연속 버스 사이클을 위한 버스(18)를 소유할 수 있다.
액티브 고속버스(18)는 또한 주지의 액티브 고속버스의 넓은 범주를 나타낸다.
사실상, 액티브 고속버스(18)는 버스 아답타에 의해 함께 접속된 다수의 주지의 버스들로 구성된 주지의 고속버스의 특정예는 선마이크로시스템즈사 MBus 및 SBus를 포함한다. 액티브 고속버스가 바람직하지만, 고속버스(18)는 또한 여러 프로세서(12a-12n) 에 분산된 간섭성 데이타 관리기능 및 버스조정 기능을 가진 인액티브 버스일 수 있음은 명백할 것이다.
또한 공유자원(16)과 액티브 고속버스(18)에 접속된 대응 시마포어 레지스터(14)가 개시된다. 공유자원(16)은 멀티프로세서 컴퓨터 시스템상의 넓은 범주의 자원을 나타낸다. 예컨데 공유자원(16)은 프로세서(12a-12n) 사이의 프로세서간 통신용 공유메시지 버퍼로서 사용된 주메로리의 영역일 수 있다.
대응 시마포어 레지스터(14)는 액세스 요구 레지스터(도시안됨), 액세스 승인 레지스터(도시안됨) 및 레지스터에의 기입 및 레지스터로 부터의 판독용 대응회로(도시안됨)로 구성된다. 시마포어 레지스터(14)는 아래에서 더 자세히 설명 될 것이다. 제1도에는 오직 하나의 공유자원(16)만이 도시되나, 멀티프로세서 컴퓨터 시스템(10)은 각각의 부가 공유자원이 그 자신의 대응 시마포어 레지스터도 가진다는 조건으로 공유 뿐아니라 비공유의 다수의 자원으로 구성될 수 있음은 명백할 것이다. 더욱 시마포어 레지스터(14)가 바람직하지만, 메모리내 메모리 위치가 액티브 고속버스(18)가 메모리 위치에서 판독-수정-기입동작을 수행하기 위해 원자버스 사이클을 지원하고 프로세서(12a-12n) 가 같은 방법으로 판독-수정-기입동작을 지원하는 것을 조건으로 대신 사용될 수 있음은 명백할 것이다.
제2도에 있어서, 액세스 요구 레지스터, 액세스 승인 레지스터, 및 이들 레지스터에 기억된 대응 액세스 요구 및 승인 시마포어를 나타낸 블록도가 도시된다.
다수의 액세스 요구 비트(24a-24n) 를 가진 액세스 요구 시마포어를 기억하는 액세스 요구 레지스터(20)가 도시된다.
각각의 액세스 요구 비트(24a-24n) 는 하나의 프로세서에 할당된다.
현재의 바람직한 형태에서, 액세스 요구 비트(24a-24n) 는 최저 우선순위를 가진 프로세서에 할당된 최저의 유효비트 부터 시작하여 오름순으로 프로세서에 할당된다. 액세스 요구 비트(24a-24n) 는 다양한 다른 방법으로 할당될 수 있음은 명백할 것이다.
또한 다수의 액세스 승인 비트(26a-26n) 를 가진 액세스 승인 시마포어를 기억하는 승인 액세스 레지스터(22)가 도시된다.
각각의 대응 액세스 승인 비트(26a-26n) 는 같은 프로세서에 할당된다.
유사하게, 현재의 바람직한 형태에서 액세스 승인 비트(26a-26n) 는 또한 최저 우선 순위를 가진 프로세서에 할당된 최저위 유효비트 부터 시작하여 오름순으로 프로세서에 할당된다. 액세스 요구 비트(24a-24n) 가 승인되는 방법과 일치하는 것을 조건으로 액세스 승인 비트(26a-26n) 는 다양한 다른 방법으로 할당될 수 있음을 명백하다.
이하에 더욱 상세히 설명되겠지만, 각각의 액세스 요구 비트(24a-24n) 는 그 할당 프로세서가 공유자원으로의 액세스를 요구할때 그 할당 프로세서에 의해 개별적으로 설정된다. 다중 액세스 요구 비트(24a-24n) 는 동시에 다수의 요구 프로세서에 의해 설정될 수 있다.
이하에 더욱 상세히 설명되겠지만, 각각의 액세스 승인 비트(26a-26n) 는 공유자원으로 액세스를 요구한 후 그 공유자원이 더낮은 우선순위 프로세서에 승인되지도 더 높은 우선순위 프로세서에 의해 요구되지도 않는다는 것을 그 할당 프로세서가 판별할때 그 할당 프로세서에 의해 설정된다.
오직 하나의 액세스 승인 비트(26a,26b...또는 26n)만이 동시에 하나의 프로세에 의해 설정될 수 있음은 명백할 것이다.
그 결과, 공유자원의 현소유자는 액세스 승인 시마포어에 의거하여 쉽게 판별될 수 있다.
각각의 액세스 승인 비트(26a-26n)는 그것의 할당 프로세서가 공유자원으로의 액세스를 완료한 후 그 할당 프로세서에 의해 설정해제 된다.
각각의 액세스 요구 비트(24a-24n)는 그것의 할당 프로세서가 대응 액세스 승인 비트(26a,26b...또는 26n)를 설정해제한 후 그 할당 프로세서에 의해 설정해제 된다.
이하에 더 상세히 기술하겠지만, 요구 프로세서는 공유자원이 더 낮은 우선순위 프로세서에 승인되는지 여부 및 공유자원이 액세스 요구 마스크 및 액세스 승인 마스크와 연관한 액세스 요구 승인 시마포어를 사용하여 더 높은 우선순위 프로세서에 의해 요구되는지 여부를 판별한다.
본 발명하에서 요구 프로세서는 공유자원에 더 높은 우선순위 프로세서에 승인되는지 여부도 공유자원이 더 낮은 우선순위 프로세서에 의해 요구되는지 여부도 관계할 필요가 없다는 것은 명백할 것이다.
제3도에서, 본 발명의 액세스 요구 마스크를 나타내는 블록도가 도시된다.
다수의 요구 마스크 비트(30a-30n)로 구성된 다수의 액세스 요구 마스크(28a-28n)가 도시된다. 각각의 요구 마스크(28a-28n)는 액세스 요구 시마포어와 같은 수의 비트로 구성된다. 각 요구 마스크(28a, 28n.... 또는 28n)에 대해서, 프로세서에 할당된 액세스 요구 시마포어의 요구 비트 보다 더 상위 비트 위치에 존재하는 요구 마스크 비트(30a-30n)가 설정되고, 다른 모든 요구 마스크 비트는 설정해제 된다. 예컨대, 프로세서 0에 대해서, 요구 마스크 비트(1 내지 n)가 설정되는 요구 마스크 비트(0)는 설정해제되며; 프로세서 1에 대해 요구 마스크 비트(1내지 n)는 설정되고 요구 마스크 비트(0 내지 1)는 설정해제되며; 그리고 프로세서 n에 대해서 모든 요구 마스크 비트(0 내지 n)가 설정해제 된다.
요구 마스크(28a-28n)는 프로세서의 전용 요구 마스크 레지스터에 기억된다. 요구 프로세서는 공유자원이 액세스 요구 시마포어 및 그것의 요구 마스크의 현재의 비트 설정치에 대해 논리 AND를 수행하여 더 높은 우선순위 프로세서에 의해 요구되는지 여부를 판별한다.
요구 마스크(28a-28n)는 동적으로 변화가능하여, 이에 의해 이하에 설명되는 승인 마스크가 동시에 변화되는 것을 조건으로 프로세서들의 상대 액세스 우선순위를 변경시킨다.
제4도에 있어서, 본 발명의 액세스 승인 마스크를 나타내는 블록도가 도시된다. 다수의 승인 마스크 비트(34a-34n)로 구성된 다수의 액세스 승인 마스크(32a-32n)가 도시된다. 각각의 승인 마스크(32a-32n)는 액세스 승인 시마포어와 같은 수의 비트로 구성된다.
각각의 승인 마스크(32a, 32b, ... 또는 32n)에 대해서, 프로세서에 할당된 액세스 승인 시마포어의 승인 비트 보다 더 하위 비트 위치에 존재하는 승인 마스크 비트(32a-32n)가 설정되고, 모든 다른 마스크 비트는 설정해제 된다.
예컨대, 프로세서 0에 대해서 모든 승인 마스크 비트(0 내지 n)는 설정해제되며; 프로세서 1에 대해서 승인 마스크 비트(0)는 설정되고 승인 마스크 비트(1 내지 n)는 설정해제되며; 그리고 프로세서 n에 대해서 승인 마스크 비트(0 내지 n-1)는 설정되고 승인 마스크 비트(0)는 설정해제 된다.
유사하게, 승인 마스크(32a-32n)는 프로세서의 전용 승인 마스크 레지스터에 기억된다. 요구 프로세서는 공유자원이 액세스 승인 시마포어와 그것의 승인 마스크의 현재의 비트 설정치에 대해 논리 AND를 수행하여 더 낮은 우선순위 프로세서에게 승인되는지 여부를 판별한다.
이미 개시된 바와 같이, 승인 마스크(28a-28n)는 동적으로 변화가능하여, 이에 의해 요구 마스크가 동시에 변화되는 것을 조건으로 프로세서들의 상대 액세스 우선순위를 변경시킨다.
제5a도 및 제5b도에서, 전용 액세스 요구 비트들은 설정/클리어 하는 액세스 요구 레지스터에 기억된 액세스 요구 시마포어의 모든 액세스 요구 비트의 동시 판독용 회로의 두 실시예를 나타낸 두개의 블록도가 도시된다.
제5a도의 실시예 1은 고속버스에 주어진 프로세서 식별자들을 갖지 않는 멀티프로세서 컴퓨터 시스템을 위해 설계된 반면 제5b도의 제2실시예는 고속버스에 프로세서 식별자들을 제공하는 멀티프로세서 컴퓨터 시스템을 위해 설계된다.
이미 개시된 바와 같이, 액세스 승인 시마포어의 하나의 액세스 승인 비트만이 동시에 설정되어, 액세스 승인 레지스터로 및 액세스 승인 레지스터 부터 액세스 승인 시마포어를 기입 및 판독하기 위한 어떤 특별한 회로도 요구되지 않는다. 액세스 승인 레지스터는 당해분야에서 주지된 방법으로 구현될 수 있다.
제5a도에 동일한 회로 세그먼트(42a-42n)가 도시된다.
각각의 동일한 회로 세그먼트(42a-42n)가 프로세서에 할당된 액세스 요구 시마포어의 액세스 요구 비트를 설정, 클리어 및 판독하기 위해 사용된다.
각각의 동일한 회로 세그먼트(42a-42n)는 제1AND 게이트(48a, 48b, ... 48n), 제2AND게이트(50a, 50b, ... 또는 50n) 및 액세스 요구 레지스터의 래치(46a, 46b, ... 46n)에 접속된 3상태 버퍼(44a, 44b, ... 또는 44n)로 구성된다.
AND게이트(48a-48n, 50a-50n), 3상태 버퍼(44a-44n) 및 래치(46a-46n)는 당해분야에서 주지의 것이다.
제1AND게이트(48a, 48b, ... 또는 48n)는 액세스 요구 시마포어의 할당된 액세스 요구 비트를 설정하기 위한 것이다.
제1AND게이트(48a, 48b, ... 또는 48n)는 입력으로서 고속버스로 부터 데이타라인, 제1기입인에이블신호 및 스트로브 신호를 취하고 래치(46a, 46b, ... 46n)로 신호를 출력한다. 현재의 바람직한 형태에서, 출력값이 1인 경우 액세스 요구 비트가 설정되며; 출력값이 0인 경우 어떤 행동도 취하지 않는다.
유사하게, 제2AND게이트(50a, 50b, ... 또는 50n)는 액세스 요구 시마포어의 할당된 액세스 요구 비트를 클리어하기 위한 것이다.
제2AND게이트(50a, 50b, ... 또는 50n)는 입력으로서 고속버스로 부터 데이타라인, 제2기입인에이블신호 및 스트로브 신호를 취하여 래치(46a, 46b, ... 46n)로 신호를 출력한다. 현재의 바람직한 형태에서, 출력값이 1인 경우 액세스 요구 비트는 설정해제되며; 출력값이 0인 경우 어떤 행동도 취하지 않는다.
래치(46a, 46b, ... 또는 46n)는 입력으로 제1AND게이트(48a, 48b, ... 또는 48n) 출력이나 제2AND게이트(50a, 50b, ... 또는 50n) 출력을 취하고 3상태 버퍼(44a, 44b, ... 또는 44n)에 신호를 출력한다.
3상태 버퍼(44a, 44b, ... 또는 44n)는 입력으로서 래치(46a, 46b, ... 또는 46n)의 출력 및 고속버스로 부터의 판독인에이블 신호를 취하여 고속버스의 데이타 라인에 신호를 출력한다.
제5b도에서 AND게이트(66)와 주소지정가능 래치(64)에 의해 구현된 액세스 요구 레지스터에 접속된 3상태 버퍼(62)가 도시된다.
AND게이트(66), 3상태 버퍼(62) 및 주소지정가능 래치(64)는 당해분야에서 주지의 것이다. AND게이트(66)는 입력으로서 고속버스로 부터의 스트로부 신호와 기입인에이블 신호를 취하고 주소지정가능 래치로 신호를 출력한다.
주소지정가능 래치(64)는 입력으로서 AND게이트(66) 출력, 고속버스로 부터의 데이타라인 및 고속버스로 부터의 프로세서 식별자를 취하며, 3상태 버퍼(62)에 다수의 신호를 출력한다. 프로세서 식별자는 데이타 라인으로 부터 입력으로 대치하도록 액세스 요구/승인 비트를 선택하기 위해 사용된다.
3상태 버퍼(62)는 입력으로서 주소지정가능 래치(64)의 출력신호와 고속버스로 부터의 판독인에이블 신호를 취하며, 고속버스에 다수의 신호를 출력한다.
제5a도 및 제5b도에 도신된 회로중 하나를 제공함에 의해, 액세스 요구 시마포어는 고속버스에 의한 원자버스 사이클의 지원에 대한 필요성 없이 조작될 수 있어, 이에 의해 요구 프로세서는 다수의 인터럽트되지 않는 클록 사이클에 대한 고속버스의 임시의 배타적 소유권을 가질 수 있음이 인식될 것이다.
더욱, 프로세서들은 같은 방법으로 판독-수정-기입동작을 지원하거나 또는 전혀 판독-수정-기입동작을 지원할 필요가 없다.
그 결과 이질적인 프로세서가 같은 멀티프로세서 컴퓨터 시스템에 합체될 수 있다.
제6도에서, 공유자원에 프로세서 액세스를 조정하는 본 발명의 방법을 나타낸 블록도가 도시된다.
도면에 도시된 바와 같이 요구 프로세서는 액세스 요구 시마포어의 할당된 요구비트를 설정하에 의해 공유자원으로의 액세를 요구한다(블록 72).
그후 요구 프로세서는 소정시간 동안 대기한다(블록74).
최소의 소정 대기시간은 요구를 인식하고 액세스 승인 시마포어의 할당된 액세스 승인 비트를 설정하기 위해 가장 늦은 프로세서에 의해 요구되는 가장 긴 시간보다 더 길다.
상술된 바와 같이, 프로세서는 액세스 요구 레지스터로 부터 액세스 요구 시마포어의 현재 비트 설정치를 검색하고 검색 비트 설정치와 프로세서 요구 마스크에 대한 논리 AND를 수행하여 요구를 인식한다.
적어도 최소의 소정시간 대기시, 요구 프로세서는 공유자원이 더 낮은 우선순위 프로세서에 승인되는지를 판별한다(블록 76).
상술한 바와 같이 요구 프로세서는 액세스 요구 레지스터로 부터 액세스 승인 시마포어의 현재의 비트 설정치를 검색하고 검색된 비트 설정치와 프로세서의 승인 마스크에 대한 논리 AND를 수행하여 판별한다.
프로세서가 더 낮은 우선순위 프로세서에 현재 승인되면, 공유자원이 더 낮은 우선순위 프로세서에 더 이상 승인되지 않을 때까지 요구 프로세서는 판별을 반복한다. 공유자원이 더 낮은 우선순위 프로세서에 승인되지 않음을 판별시, 요구 프로세서는 공유자원이 더 높은 우선순위 프로세서에 의해 반복되는지는 판별한다(블록 78).
유사하게 공유자원이 더 높은 우선순위 프로세서에 의해 요구되는 경우, 공유자원에 더 높은 우선순위 프로세서에 의해 요구되지 않을 때까지 요구 프로세서는 판별을 반복한다.
공유자원에 더 높은 우선순위 프로세서에 의해 요구되지 않음을 판별시, 그후 요구 프로세서는 액세스 승인 시마포어의 할당된 액세스 승인 비트를 설정하고(블록 80), 공유자원의 임시의 배타적 소유권을 갖는다.
승인된 프로세서는 공유자원에 대해 소망동작 예컨대 공유자원이 공유 메세지 버퍼인 경우 메세지 기입을 수행한다(블록 82).
공유자원에 대한 동작 완결시, 승인된 프로세서는 액세스 승인 시마포어의 할당된 액세스 승인 비트를 설정해제 한다(블록 84).
할당된 액세스 승인 비트를 설정해제한 후, 비승인 프로세서는 액세스 요구 시마포어의 할당된 액세스 요구 비트를 설정해제 한다(블록 86).
본 발명이 현재의 바람직한 실시예에 의해 개시되었지만, 당업계 전문가는 발명이 기술된 실시예에 의해 한정되지 않음을 인식할 것이다.
본 발명의 방법 및 장치는 첨부된 청구항의 영역 및 요지내에서 수정 및 변경되어 실시될 수 있다. 따라서 본 설명에 대해 한정적인 것이 아니라 설명적인 것으로 인식되야 한다.
Claims (24)
- 다수의 공유자원에 접속된 다수의 프로세서로 구성된 컴퓨터 시스템에서 상기 프로세서들에 의해 공유자원으로의 액세스를 조정하는 방법에 있어서, 상기 방법은 (a) 요구 프로세서에 의해 액세스 요구 시마포어의 할당된 액세스 요구 비트를 설정을, 상기 각각의 프로세서가 상기 액세스 요구 시마포어의 액세스 요구비트를 할당하는 단계; (b) 소정시간 대기단계; (c) 액세스 승인 시마포어의 현재의 비트 설정치를 검색하고, 상기 공유자원이 상기 요구 프로세서에 의해 더 낮은 우선순위 프로세서에 현재 승인되는지를 판별하여, 상기 각각의 프로세서가 상기 액세스 승인 시마포어의 액세스 승인비트를 할당하는 단계; (d) 상기 액세스 요구 시마포어의 현재의 비트 설정치를 검색하고, 상기 공유자원이 더 낮은 우선순위 프로세서에 승인되지 않은 때 상기 요구 프로세서에 의해 더 높은 우선순위 프로세서에 의해 현재 요구되는지를 판별하는 단계; (e) 상기 공유자원이 더 높은 우선순위 프로세서에 의해 요구되지 않을 때 상기 요구 프로세서에 의해 상기 액세스 승인 시마포어에 상기 할당된 승인비트를 설정하는 단계; (f) 상기 승인된 프로세서에 의해 상기 공유자원을 액세스 하는 단계; (g) 상기 공유자원 액세스 완료시 상기 액세스 프로세서에 의해 상기 액세스 승인 시마포어의 상기 할당된 승인 비트를 설정해제하는 단계; 그리고 (h) 상기 액세스 승인 시마포어의 상기 비트부를 설정해제한 때 상기 비승인된 프로세서에 의해 상기 액세스 요구 시마포어의 상기 할당된 요구 비트를 설정해제 하는 단계로 이루어지는 것을 특징으로 하는 방법.
- 제1항에 있어서, 상기 액세스 요구 및 승인 시마포어의 상기 액세스 요구 및 승인 비트가 가장 낮은 우선순위 프로세서에 할당된 최저위 유효비트에서 시작하여 오름순으로 상기 프로세서에 할당되는 것을 특징으로 하는 방법.
- 제2항에 있어서, 상기 요구 프로세서는 상기 공유자원이 상기 액세스 승인 시마포어와 할당된 액세스 승인 마스크의 상기 현재의 비트 설정치에 대해 논리 AND를 수행하여 더 낮은 우선순위 프로세서에 현재 승인되는지를 판별하고, 상기 할당된 액세스 승인 마스크는 상기 액세스 승인 시마포어에 대응한 다수의 승인 마스크 비트로 구성되여, 상기 승인 마스크 비트는 상기 할당된 액세스 승인 비트 보다 더 낮은 모든 대응 비트에 설정되고 다른 모든 대응 액세스 승인 비트에 설정해제되는 것을 특징으로 하는 방법.
- 제3항에 있어서, 상기 요구 프로세서는 상기 공유자원이 상기 액세스 요구 시마포어와 할당된 액세스 요구 마스크의 상기 현재의 비트 설정치에 대한 논리 AND를 수행하여 더 높은 우선순위 프로세서에 의해 현재 요구되는지를 판별하고, 상기 할당된 액세스 요구 마스크는 상기 액세스 요구 레지스터에 대응한 다수의 요구 마스크 비트로 구성되어, 상기 요구 마스크 비트는 상기 요구 프로세서의 상기 할당된 액세스 요구 비트 보다 더 높은 모든 대응 액세스 요구 비트에 설정되고 모든 다른 대응 액세스 요구 비트에 설정해제되는 것을 특징으로 하는 방법.
- 제1항에 있어서, 상기 액세스 요구 및 승인 시마포어는 메모리의 제1 및 제2메모리 위치에 기억되며, 상기 컴퓨터 시스템은 추가로 상기 메모리로 구성되며, 상기 프로세서, 상기 공유자원 및 상기 메모리는 고속버스에 접속되며, 상기 고속버스는 상기 제1 및 제2메모리 위치를 액세스 하는 원자버스 사이클을 제공하는 것을 특징으로 하는 방법.
- 제1항에 있어서, 상기 액세스 요구 및 승인 시마포어는 각각 액세스 요구 레지스터 및 액세스 승인 레지스터에 기억되며, 상기 요구 프로세서는 전용 액세스 요구 및 승인 비트를 설정 및 클리어 하고 상기 액세스 요구 및 승인 레지스터에 기억된 상기 액세스 요구 및 승인 시마포어의 모든 액세스 요구 및 승인 비트를 동시 판독하는 회로들을 사용하여 상기 비트 위치를 설정 및 설정해제하며 상기 액세스 요구 및 승인 레지스터에 기억된 상기 액세스 요구 및 승인 시마포어의 상기 현재의 비트 설정치를 검색하고, 상기 컴퓨터 시스템은 상기 회로들로 추가로 구성되며, 그리고 상기 프로세서, 상기 공유자원, 상기 액세스 요구 및 승인 레지스터 그리고 상기 회로를 고속버스에 접속되는 것을 특징으로 하는 방법.
- 제6항에 있어서, 상기 고속버스는 상기 프로세서를 위한 프로세서 식별자를 제공하지 않으며; 상기 액세스 요구 및 승인 레지스터는 다수의 래치와 함께 구현되며; 그리고 각각의 상기 회로는 다수의 3상태 버퍼, 다수의 제1 및 제2AND게이트로 구성되는 것을 특징으로 하는 방법.
- 제6항에 있어서, 상기 고속버스는 상기 프로세서를 위한 프로세서 식별자를 제공하고; 상기 액세스 요구 및 승인 레지스터는 주소지정가능 래치와 함께 구현되며; 그리고 각각의 상기 회로는 하나의 3상태 버퍼 및 AND게이트로 구성되는 것을 특징으로 하는 방법.
- 제1항에 있어서, 상기 소정시간은 상기 단계 (c), (d) 및 (e)를 실행하기 위해 가장 늦은 상기 프로세서에 의해 요구되는 최장시간 보다 더 긴 것을 특징으로 하는 방법.
- 제1항에 있어서, 상기 공유자원은 상기 프로세서 사이의 프로세서간 통신을 위해 사용된 메모리 영역인 것을 특징으로 하는 방법.
- 다수의 공유자원에 접속된 다수의 프로세서로 구성된 컴퓨터 시스템에서 상기 프로세서에 의한 공유자원으로의 액세스를 조정하기 위한 장치에 있어서, 상기 장치는 (a) 다수의 액세스 요구 비트로 구성된 액세스 요구 시마포어를 기억하기 위해 상기 프로세서에 접속된 제1기억수단, (여기서 각각의 상기 액세스 요구 비트는 상기 프로세서중 하나에 할당되며, 각각의 상기 할당된 액세스 요구 비트는 그 프로세서가 상기 공유자원에 액세스를 요구할때 그 프로세서에 의해 설정); 그리고 (b) 다수의 액세스 승인 비트로 구성된 액세스 승인 시마포어를 기억하기 위해 상기 프로세서에 접속된 제2기억수단, (여기서 각각의 상기 액세스 승인 비트는 상기 프로세서중 하나에 할당되며, 각각의 상기 할당된 액세스 승인 비트는 그 프로세서가 상기 공유자원으로의 액세스를 요구한 후 상기 공유자원이 더 높은 우선순위 프로세서에 의해 요구되는지도 더 낮은 우선순위 프로세서에 승인되지도 않는지를 판별할때 그 프로세서에 의해 설정되며, 상기 판별은 상기 액세스 승인 및 요구 시마포어의 현재의 비트 설정치에 의거하여 상기 요구 프로세서에 의해 제공되며, 상기 판별은 상기 요구 프로세서가 상기 공유자원으로 액세스를 요구한 후 소정시간을 대기한 후에 제공)으로 구성되며, 각각의 상기 설정 액세스 승인 비트는 그 프로세서가 상기 공유자원으로 액세스 완료시 그 프로세서에 의해 설정해제되며, 각각의 상기 설정 액세스 요구 비트는 그 프로세서가 그것의 설정 액세스 승인 비트를 설정해제한 후 그것의 프로세서에 의해 설정해제되는 것을 특징으로 하는 장치.
- 제11항에 있어서, 상기 액세스 요구 및 승인 시마포어의 상기 액세스 요구 및 승인 비트는 가장 낮은 우선순위 프로세서에 할당된 최저위 유효비트에서 시작하여 오름순으로 상기 프로세서에 할당되는 것을 특징으로 하는 장치.
- 제12항에 있어서, 상기 요구 프로세서는 상기 액세스 승인 시마포어와 할당된 액세스 승인 마스크의 현재의 비트 설정치에 대해 논리 AND를 수행하여 상기 공유자원이 더 낮은 우선순위 프로세서에 현재 할당되는지 여부를 판별하여, 상기 할당된 액세스 승인 마스크는 상기 액세스 승인 시마포어에 대응한 다수의 승인 마스크 비트로 구성되며, 상기 승인 마스크 비트는 상기 요구 프로세서의 상기 할당된 액세스 승인 비트 보다 더 낮은 모든 대응 승인 마스크 비트에서 설정되며 모든 다른 대응 승인 마스크 비트 위치에서 설정해제되는 것을 특징으로 하는 장치.
- 제13항에 있어서, 상기 요구 프로세서는 상기 액세스 요구 시마포어와 할당된 액세스 요구 마스크의 상기 현재의 비트 설정치에 대해 논리 AND를 수행하여 상기 공유자원이 더 높은 우선순위 프로세서에 의해 현재 요구되는지를 판별하고, 상기 할당된 액세스 요구 마스크는 상기 액세스 요구 레지스터에 대응한 다수의 요구 마스크 비트로 구성되며, 상기 요구 마스크 비트는 상기 요구 프로세서의 상기 할당된 액세스 요구 비트 보다 더 높은 모든 대응 요구 마스크 비트에서 설정되며 다른 모든 대응 요구 마스크 비트에 설정해제되는 것을 특징으로 하는 장치.
- 제11항에 있어서, 상기 제1 및 제2기억수단은 상기 액세스 요구 및 승인 시마포어를 기억하기 위한 제1 및 제2메모리 위치로 구성된 상기 프로세서에 접속된 같은 메모리 수단이며, 상기 컴퓨터 시스템은 상기 메모리로 추가로 구성되며; 그리고 상기 프로세서, 상기 공유자원 및 상기 메모리는 고속버스에 접속되며, 상기 고속버스는 상기 제1 및 제2메모리 위치를 액세스하기 위해 원자버스 사이클을 제공하는 것을 특징으로 하는 장치.
- 제11항에 있어서, 상기 제1 및 제2기억수단은 각각 상기 액세스 요구 및 승인 시마포어를 기억하기 위해 액세스 요구 레지스터 및 액세스 승인 레지스터로 구성된 상기 프로세서에 접속된 같은 레지스터 수단이며; 상기 레지스터 수단은 상기 요구 프로세서가 상기 액세스 요구 및 승인 비트를 설정 및 설정해제하고 상기 액세스 요구 및 승인 레지스터에 기억된 상기 액세스 요구 및 승인 시마포어의 상기 현재의 비트 설정치를 검색하도록 상기 프로세서와 상기 액세스 요구 및 승인 레지스터에 접속된 회로로 추가로 구성되며, 상기 회로는 전용 액세스 요구 및 승인 비트를 설정 및 클리어하고 상기 액세스 요구 및 승인 레지스터에 기억된 상기 액세스 요구 및 승인 시마포어의 모든 액세스 요구 및 승인 비트를 동시 판독하며; 그리고 상기 프로세서, 상기 공유자원, 상기 액세스 요구 및 승인 레지스터와 상기 회로는 고속버스에 결합되는 것을 특징으로 하는 장치.
- 제16항에 있어서, 상기 고속버스는 상기 프로세서를 위한 프로세서 식별자를 제공하지 않으며; 상기 액세스 요구 및 승인 레지스터는 다수의 래치와 함께 구현되며; 그리고 각각의 상기 회로는 상기 고속버스와 상기 래치에 접속된 다수의 3상태 버퍼, 상기 고속버스에 접속된 다수의 제1 및 제2AND게이트 및 상기 래치로 구성되는 것을 특징으로 하는 장치.
- 제16항에 있어서, 상기 고속버스는 상기 프로세서를 위해 프로세서 식별자를 제공하며; 상기 액세스 요구 및 승인 레지스터는 주소지정가능 래치와 함께 구현되며; 그리고 각각의 상기 회로는 상기 고속버스와 상기 주소지정가능 래치에 접속된 3상태 버퍼와 상기 주소지정가능 래치와 상기 고속버스에 접속된 AND게이트로 구성되는 것을 특징으로 하는 장치.
- 제11항에 있어서, 상기 소정시간은 상기 판별을 수행하고 상기 액세스 승인 시마포어의 할당된 액세스 승인 비트를 설정하기 위해 가장 늦은 상기 프로세서에 의해 요구되는 가장 긴 시간 보다 더긴 것을 특징으로 하는 장치.
- 제11항에 있어서, 상기 공유자원은 상기 프로세서 사이의 프로세서간 통신을 위해 사용된 상기 프로세서에 접속된 메모리 영역이며, 상기 컴퓨터는 상기 메모리로 구성되는 것을 특징으로 하는 장치.
- 고속버스; 상기 고속버스에 접속된 다수의 프로세서; 상기 고속버스에 접속된 공유자원; 그리고 액세스 요구 및 액세스 승인 시마포어를 기억하기 위한 제1 및 제2기억수단으로 구성된 상기 공유자원으로의 프로세서 액세스로 조정하기 위한 장치로 구성되며, 상기 액세스 요구 및 승인 시마포어는 각각 다수의 액세스 요구 및 액세스 승인 비트로 구성되며, 각각의 상기 프로세서는 상기 액세스 요구 비트중 하나와 대응 액세스 승인 비트를 할당하며, 각각의 상기 할당된 액세스 요구 비트는 그 프로세서가 상기 공유자원으로 액세스를 요구할때 그 프로세서에 의해 설정되며, 각각의 상기 할당된 액세스 승인 비트는 프로세서가 상기 공유자원으로의 상기 액세스를 요구한 후 상기 공유자원이 더 높은 우선순위 프로세서에 의해 요구되지도 않고 더 낮은 우선순위 프로세서에 승인되지 않음을 판별할 때 그 프로세서에 의해 설정되며; 상기 판별은 상기 액세스 승인 및 요구 시마포어의 현재의 비트 설정치에 의거하여 상기 요구 프로세서에 의해 행하여지며, 상기 판별은 상기 요구 프로세서가 상기 공유자원으로의 액세스를 요구한 후 소정시간을 대기한 후 행하여지며; 각각의 상기 설정 액세스 승인 비트는 그 프로세서가 상기 공유자원으로의 액세스 완결시 그 프로세서에 의해 설정해제되며, 각각의 상기 설정 액세스 요구 비트는 그 프로세서가 그 설정 승인 비트를 설정해제한 후 그 프로세서에 의해 설정해제되는 것을 특징으로 하는 멀티프로세서 컴퓨터 시스템.
- 다수의 프로세서로 구성된 컴퓨터 시스템에서 상기 프로세서들 사이의 멀티프로세서 통신을 수행하는 방법에 있어서, 상기 방법은 (a) 요구 프로세서에 의해 공유 메세지 버퍼에 대한 액세스 요구 시마포어의 할당된 액세스 요구 비트를 설정하는 단계(여기서 상기 각각의 프로세서가 상기 액세스 요구 시마포어의 액세스 요구 비트를 할당); (b) 소정시간 대기단계 (c) 상기 공유 메세지 버퍼에 대한 액세스 승인 시마포어의 현재의 비트 설정치를 검색하고, 상기 공유메세지 버퍼가 상기 요구 프로세서에 의해 더 낮은 우선순위 프로세서에 현재 승인되는지를 판별하는 단계(여기서 각각의 상기 프로세서가 상기 액세스 승인 시마포어의 액세스 승인 비트를 할당); (d) 상기 액세스 요구 시마포어의 현재의 비트 설정치를 검색하고 상기 공유메세지 버퍼가 더 낮은 우선순위 프로세서에 승인되지 않을 때 상기 공유메세지 버퍼가 상기 요구 프로세서에 의해 더 높은 우선순위 프로세서에 의해 현재 요구되는지를 판별하는 단계; (e) 상기 공유메세지 버퍼가 더 높은 우선순위 프로세서에 의해 요구되지 않을 때 상기 요구 프로세서에 의해 상기 액세스 승인 시마포어의 상기 할당된 액세스 승인 비트를 설정하는 단계; (f) 상기 승인 프로세서에 의해 메세지를 상기 공유메세지 버퍼에 기입하는 단계; (g) 상기 공유메세지 버퍼에 메세지 기입 완료시 상기 액세스 프로세서에 의해 상기 액세스 승인 시마포어의 상기 할당된 액세스 승인 비트를 설정해제 하는 단계; 그리고 (h) 상기 액세스 승인 시마포어의 상기 액세스 승인 비트의 설정해제시 상기 비승인 프로세서에 의해 상기 액세스 요구 시마포어의 상기 할당된 액세스 요구 비트를 설정해제 하는 단계로 구성되는 것을 특징으로 하는 방법.
- 다수의 프로세서로 구성된 컴퓨터 시스템에서 상기 프로세서들 사이에 멀티프로세서 통신을 수행하기 위한 장치에 있어서, 상기 장치는 (a) 상기 프로세서에 접속된 공유메세지 버퍼; (b) 상기 공유메세지 버퍼에 대한 액세스 요구 시마포어를 기억하기 위해 상기 프로세서에 접속된 제1기억수단(여기서 상기 액세스 요구 시마포어는 다수의 액세스 요구 비트로 구성되며, 각각의 상기 액세스 요구 비트는 상기 프로세서중 하나에 할당되며, 각각의 상기 할당된 액세스 요구 비트는 그 프로세서가 상기 공유메세지로의 액세스를 요구할 때 그 프로세서에 의해 설정되며); (c) 상기 공유메세지 버퍼에 대한 액세스 승인 시마포어를 기억하기 위해 상기 프로세서에 접속된 제2기억수단(여기서 상기 액세스 승인 시마포어는 다수의 액세스 승인 비트로 구성되며, 각각의 상기 액세스 승인 비트는 상기 프로세서중 하나에 할당되며, 각각의 상기 할당된 액세스 승인 비트는 상기 공유메세지 버퍼로의 액세스 요구후 상기 공유메세지가 더 낮은 우선순위 프로세서에 승인되지도 않는 더 높은 우선순위 프로세서에 의해 요구되지도 않는지를 그 프로세서가 판별할 때 그 프로세서에 의해 설정되며, 상기 판별은 상기 액세스 승인 및 요구 시마포어의 현재의 비트 설정치에 의거하여 상기 요구 프로세서에 의해 행하여지며, 상기 판별은 상기 요구 프로세서가 상기 공유메세지 버퍼로의 액세스 요구후 소정시간을 대기한 후 행해짐)으로 구성되며, 각각의 상기 설정 액세스 승인 비트는 그 프로세서가 상기 공유메세지 버퍼로 메세지를 기입하는 것을 완료할 때 그 프로세서에 의해 설정해제되며, 각각의 상기 설정 액세스 요구 비트는 그 프로세서가 설정 승인 비트를 설정해제한 후 그 프로세서에 의해 설정해제 하는 것을 특징으로 하는 장치.
- 고속버스; 상기 고속버스에 접속된 다수의 프로세서; 상기 고속버스에 접속된 공유메세지 버퍼; 그리고 상기 공유메세지 버퍼를 사용하여 멀티프로세서 통신을 수행하기 위한 장치로 구성되며, 상기 장치는 상기 공유메세지 버퍼에 대한 액세스 요구 및 액세스 승인 시마포어를 기억하는 제1 및 제2기억수단으로 구성되며, 상기 액세스 요구 및 승인 시마포어는 각각 다수의 액세스 요구 및 액세스 승인 비트로 구성되며, 각각의 상기 프로세서는 상기 액세스 요구 비트중 하나와 대응 액세스 승인 비트를 할당하며, 각각의 상기 할당된 액세스 요구 비트는 그 프로세서가 상기 공유메세지 버퍼로 액세스를 요구할 때 그 프로세서에 의해 설정되며, 각각의 상기 할당된 액세스 승인 비트는 상기 공유메세지 버퍼로의 상기 액세스를 요구한 후 그 프로세서가 상기 공유메세지 버퍼가 더 낮은 우선순위 프로세서에 승인되지도 않고 더 높은 우선순위 프로세서에 의해 요구되지도 않음을 판별할 때 그 프로세서에 의해 설정되며; 상기 판별은 상기 액세스 승인 및 요구 시마포어의 현재의 비트 설정치에 의거하여 상기 요구 프로세서에 의해 행해지며, 상기 판별은 상기 요구 프로세서가 상기 공유메세지 버퍼로의 액세를 요구한 후 소정시간을 대기한 후 행해지며; 각각의 상기 설정 액세스 승인 비트는 그 프로세서가 상기 공유메세지 버퍼를 액세스 완료할 때 그 프로세서에 의해 설정해제되며, 각각의 상기 설정 액세스 요구 비트는 그 프로세서가 설정 승인 비트를 설정해제한 후 그 프로세서에 의해 설정해제 되는 것을 특징으로 하는 멀티프로세서 컴퓨터 시스템.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US79457391A | 1991-11-19 | 1991-11-19 | |
US794,573 | 1991-11-19 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR930010740A KR930010740A (ko) | 1993-06-23 |
KR100225743B1 true KR100225743B1 (ko) | 1999-10-15 |
Family
ID=25163035
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019920021557A KR100225743B1 (ko) | 1991-11-19 | 1992-11-17 | 공유자원으로의 멀티프로세서 액세스의 조정 |
Country Status (5)
Country | Link |
---|---|
US (1) | US5339443A (ko) |
EP (1) | EP0543560B1 (ko) |
JP (1) | JP3381854B2 (ko) |
KR (1) | KR100225743B1 (ko) |
DE (1) | DE69230462T2 (ko) |
Families Citing this family (113)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2963298B2 (ja) * | 1993-03-26 | 1999-10-18 | 富士通株式会社 | 二重化共有メモリにおける排他制御命令のリカバリ方法および計算機システム |
EP0635792B1 (de) * | 1993-07-16 | 2003-08-27 | Siemens Aktiengesellschaft | Verfahren zur Koordination von parallelen Zugriffen mehrerer Prozessoren auf Resourcenkonfigurationen |
JP2521027B2 (ja) * | 1993-08-27 | 1996-07-31 | インターナショナル・ビジネス・マシーンズ・コーポレイション | マルチプロセッサ及びその制御方法 |
US5875339A (en) * | 1993-10-21 | 1999-02-23 | Sun Microsystems, Inc. | Asynchronous arbiter using multiple arbiter elements to enhance speed |
CA2140685A1 (en) * | 1994-01-28 | 1995-07-29 | Randy M. Bonella | Bus master arbitration circuitry having improved prioritization |
US5471590A (en) * | 1994-01-28 | 1995-11-28 | Compaq Computer Corp. | Bus master arbitration circuitry having improved prioritization |
US5598579A (en) * | 1994-04-25 | 1997-01-28 | Compaq Computer Corporation | System fpr transferring data between two buses using control registers writable by host processor connected to system bus and local processor coupled to local bus |
US5623670A (en) * | 1995-02-17 | 1997-04-22 | Lucent Technologies Inc. | Method and apparatus for crash safe enforcement of mutually exclusive access to shared resources in a multitasking computer system |
US5524209A (en) * | 1995-02-27 | 1996-06-04 | Parker; Robert F. | System and method for controlling the competition between processors, in an at-compatible multiprocessor array, to initialize a test sequence |
KR0144022B1 (ko) * | 1995-05-15 | 1998-08-17 | 김주용 | 엘알유에 의한 중재기 |
US5666485A (en) * | 1995-06-07 | 1997-09-09 | Samsung Electronics Inc. | Software driver for a system bus |
US6529933B1 (en) | 1995-06-07 | 2003-03-04 | International Business Machines Corporation | Method and apparatus for locking and unlocking a semaphore |
KR0146551B1 (ko) * | 1995-08-21 | 1998-09-15 | 양승택 | 임계영역을 지원하는 래치 관리방법 |
US5696939A (en) * | 1995-09-29 | 1997-12-09 | Hewlett-Packard Co. | Apparatus and method using a semaphore buffer for semaphore instructions |
US5996075A (en) * | 1995-11-02 | 1999-11-30 | Sun Microsystems, Inc. | Method and apparatus for reliable disk fencing in a multicomputer system |
US7168088B1 (en) | 1995-11-02 | 2007-01-23 | Sun Microsystems, Inc. | Method and apparatus for reliable disk fencing in a multicomputer system |
US5740383A (en) * | 1995-12-22 | 1998-04-14 | Cirrus Logic, Inc. | Dynamic arbitration priority |
US5872980A (en) * | 1996-01-25 | 1999-02-16 | International Business Machines Corporation | Semaphore access control buffer and method for accelerated semaphore operations |
DE69738646T2 (de) * | 1996-08-28 | 2008-11-13 | Hitachi, Ltd. | Verfahren zur Ausführung eines Prozesses und Betriebsmittelzugriffsverfahren in einem Computer-System |
US6311204B1 (en) * | 1996-10-11 | 2001-10-30 | C-Cube Semiconductor Ii Inc. | Processing system with register-based process sharing |
US6513057B1 (en) | 1996-10-28 | 2003-01-28 | Unisys Corporation | Heterogeneous symmetric multi-processing system |
US6108756A (en) * | 1997-01-17 | 2000-08-22 | Integrated Device Technology, Inc. | Semaphore enhancement to allow bank selection of a shared resource memory device |
US5751638A (en) * | 1997-01-17 | 1998-05-12 | Integrated Device Technology, Inc. | Mail-box design for non-blocking communication across ports of a multi-port device |
US6212607B1 (en) | 1997-01-17 | 2001-04-03 | Integrated Device Technology, Inc. | Multi-ported memory architecture using single-ported RAM |
FR2759472B1 (fr) * | 1997-02-12 | 1999-05-07 | Thomson Csf | Registre semaphore rapide a fonctionnement securise sans protocole de bus specifique |
US5966543A (en) * | 1997-06-26 | 1999-10-12 | International Business Machines Corporation | Method of using collaborative spinlocks to provide exclusive access to a resource in a multiprocessor computer system |
US6188381B1 (en) * | 1997-09-08 | 2001-02-13 | Sarnoff Corporation | Modular parallel-pipelined vision system for real-time video processing |
US6279066B1 (en) * | 1997-11-14 | 2001-08-21 | Agere Systems Guardian Corp. | System for negotiating access to a shared resource by arbitration logic in a shared resource negotiator |
US6748438B2 (en) | 1997-11-17 | 2004-06-08 | International Business Machines Corporation | Method and apparatus for accessing shared resources with asymmetric safety in a multiprocessing system |
US6092220A (en) * | 1997-11-17 | 2000-07-18 | International Business Machines Corporation | Method and apparatus for ordered reliable multicast with asymmetric safety in a multiprocessing system |
US6047316A (en) * | 1997-12-12 | 2000-04-04 | Intel Corporation | Multiprocessor computing apparatus having spin lock fairness |
US6446149B1 (en) * | 1998-03-03 | 2002-09-03 | Compaq Information Technologies Group, L.P. | Self-modifying synchronization memory address space and protocol for communication between multiple busmasters of a computer system |
US6401110B1 (en) | 1998-11-30 | 2002-06-04 | International Business Machines Corporation | Method for managing concurrent processes using dual locking |
US6105099A (en) * | 1998-11-30 | 2000-08-15 | International Business Machines Corporation | Method for synchronizing use of dual and solo locking for two competing processors responsive to membership changes |
US6530000B1 (en) | 1999-03-24 | 2003-03-04 | Qlogic Corporation | Methods and systems for arbitrating access to a disk controller buffer memory by allocating various amounts of times to different accessing units |
US7506136B2 (en) | 1999-04-09 | 2009-03-17 | Clearspeed Technology Plc | Parallel data processing apparatus |
US7627736B2 (en) | 1999-04-09 | 2009-12-01 | Clearspeed Technology Plc | Thread manager to control an array of processing elements |
US7802079B2 (en) | 1999-04-09 | 2010-09-21 | Clearspeed Technology Limited | Parallel data processing apparatus |
US7526630B2 (en) | 1999-04-09 | 2009-04-28 | Clearspeed Technology, Plc | Parallel data processing apparatus |
GB2348975A (en) * | 1999-04-09 | 2000-10-18 | Pixelfusion Ltd | Parallel data processing systems |
FR2797971A1 (fr) * | 1999-08-31 | 2001-03-02 | Koninkl Philips Electronics Nv | Acces a une ressource collective |
US6625701B1 (en) | 1999-11-09 | 2003-09-23 | International Business Machines Corporation | Extended cache coherency protocol with a modified store instruction lock release indicator |
US6629212B1 (en) * | 1999-11-09 | 2003-09-30 | International Business Machines Corporation | High speed lock acquisition mechanism with time parameterized cache coherency states |
US6629214B1 (en) | 1999-11-09 | 2003-09-30 | International Business Machines Corporation | Extended cache coherency protocol with a persistent “lock acquired” state |
GB2364143A (en) | 2000-06-30 | 2002-01-16 | Nokia Corp | Resource allocation |
EP1213650A3 (en) * | 2000-08-21 | 2006-08-30 | Texas Instruments France | Priority arbitration based on current task and MMU |
EP1182550A3 (en) * | 2000-08-21 | 2006-08-30 | Texas Instruments France | Task based priority arbitration |
US6662253B1 (en) | 2000-09-13 | 2003-12-09 | Stmicroelectronics, Inc. | Shared peripheral architecture |
US7075548B1 (en) * | 2000-09-29 | 2006-07-11 | Intel Corporation | Efficient detection of texture sharing between multiple contexts |
US7124224B2 (en) * | 2000-12-22 | 2006-10-17 | Intel Corporation | Method and apparatus for shared resource management in a multiprocessing system |
US6950901B2 (en) * | 2001-01-05 | 2005-09-27 | International Business Machines Corporation | Method and apparatus for supporting parity protection in a RAID clustered environment |
US7155717B2 (en) * | 2001-01-26 | 2006-12-26 | Intel Corporation | Apportioning a shared computer resource |
US7089339B2 (en) * | 2001-03-16 | 2006-08-08 | National Semiconductor Corporation | Sharing of functions between an embedded controller and a host processor |
US7996592B2 (en) * | 2001-05-02 | 2011-08-09 | Nvidia Corporation | Cross bar multipath resource controller system and method |
US7089555B2 (en) * | 2001-06-27 | 2006-08-08 | International Business Machines Corporation | Ordered semaphore management subsystem |
US7454753B2 (en) * | 2001-06-27 | 2008-11-18 | International Business Machines Corporation | Semaphore management subsystem for use with multi-thread processor systems |
US7173627B2 (en) * | 2001-06-29 | 2007-02-06 | Intel Corporation | Apparatus, method and system with a graphics-rendering engine having a graphics context manager |
US6885374B2 (en) * | 2001-06-29 | 2005-04-26 | Intel Corporation | Apparatus, method and system with a graphics-rendering engine having a time allocator |
US7111298B1 (en) * | 2001-09-04 | 2006-09-19 | Emc Corporation | Inter-processor competition for a shared resource |
US7406690B2 (en) * | 2001-09-26 | 2008-07-29 | International Business Machines Corporation | Flow lookahead in an ordered semaphore management subsystem |
US7143414B2 (en) * | 2001-09-26 | 2006-11-28 | International Business Machines Corporation | Method and apparatus for locking multiple semaphores |
US7174552B2 (en) * | 2002-01-12 | 2007-02-06 | Intel Corporation | Method of accessing a resource by a process based on a semaphore of another process |
US6931470B2 (en) * | 2002-02-11 | 2005-08-16 | Motorola, Inc. | Dual access serial peripheral interface |
US6938132B1 (en) | 2002-04-04 | 2005-08-30 | Applied Micro Circuits Corporation | Memory co-processor for a multi-tasking system |
US6978330B1 (en) * | 2002-04-04 | 2005-12-20 | Applied Micro Circuits Corporation | Shared resource access via declarations that contain a sequence number of a packet |
US7421693B1 (en) | 2002-04-04 | 2008-09-02 | Applied Micro Circuits Corporation | Logic for synchronizing multiple tasks at multiple locations in an instruction stream |
US7111228B1 (en) | 2002-05-07 | 2006-09-19 | Marvell International Ltd. | System and method for performing parity checks in disk storage system |
US6760811B2 (en) * | 2002-08-15 | 2004-07-06 | Bull Hn Information Systems Inc. | Gateword acquisition in a multiprocessor write-into-cache environment |
US7007114B1 (en) | 2003-01-31 | 2006-02-28 | Qlogic Corporation | System and method for padding data blocks and/or removing padding from data blocks in storage controllers |
US7287102B1 (en) | 2003-01-31 | 2007-10-23 | Marvell International Ltd. | System and method for concatenating data |
US7039771B1 (en) | 2003-03-10 | 2006-05-02 | Marvell International Ltd. | Method and system for supporting multiple external serial port devices using a serial port controller in embedded disk controllers |
US7064915B1 (en) | 2003-03-10 | 2006-06-20 | Marvell International Ltd. | Method and system for collecting servo field data from programmable devices in embedded disk controllers |
US7870346B2 (en) | 2003-03-10 | 2011-01-11 | Marvell International Ltd. | Servo controller interface module for embedded disk controllers |
US7080188B2 (en) | 2003-03-10 | 2006-07-18 | Marvell International Ltd. | Method and system for embedded disk controllers |
US7492545B1 (en) | 2003-03-10 | 2009-02-17 | Marvell International Ltd. | Method and system for automatic time base adjustment for disk drive servo controllers |
US7526691B1 (en) | 2003-10-15 | 2009-04-28 | Marvell International Ltd. | System and method for using TAP controllers |
US20050102457A1 (en) * | 2003-11-12 | 2005-05-12 | Dell Products L.P. | System and method for interrupt processing in a multiple processor system |
US7139150B2 (en) | 2004-02-10 | 2006-11-21 | Marvell International Ltd. | Method and system for head position control in embedded disk drive controllers |
US7120084B2 (en) | 2004-06-14 | 2006-10-10 | Marvell International Ltd. | Integrated memory controller |
US8166217B2 (en) | 2004-06-28 | 2012-04-24 | Marvell International Ltd. | System and method for reading and writing data using storage controllers |
US9201599B2 (en) | 2004-07-19 | 2015-12-01 | Marvell International Ltd. | System and method for transmitting data in storage controllers |
US8032674B2 (en) * | 2004-07-19 | 2011-10-04 | Marvell International Ltd. | System and method for controlling buffer memory overflow and underflow conditions in storage controllers |
US7757009B2 (en) | 2004-07-19 | 2010-07-13 | Marvell International Ltd. | Storage controllers with dynamic WWN storage modules and methods for managing data and connections between a host and a storage device |
US7921250B2 (en) * | 2004-07-29 | 2011-04-05 | International Business Machines Corporation | Method to switch the lock-bits combination used to lock a page table entry upon receiving system reset exceptions |
US7386661B2 (en) | 2004-10-13 | 2008-06-10 | Marvell International Ltd. | Power save module for storage controllers |
US7240267B2 (en) | 2004-11-08 | 2007-07-03 | Marvell International Ltd. | System and method for conducting BIST operations |
US7802026B2 (en) | 2004-11-15 | 2010-09-21 | Marvell International Ltd. | Method and system for processing frames in storage controllers |
US8020141B2 (en) * | 2004-12-06 | 2011-09-13 | Microsoft Corporation | Operating-system process construction |
JP2006185348A (ja) * | 2004-12-28 | 2006-07-13 | Fujitsu Ltd | マルチプロセッサシステム及びロックフラグ操作方法 |
US7380038B2 (en) * | 2005-02-04 | 2008-05-27 | Microsoft Corporation | Priority registers for biasing access to shared resources |
US7275121B1 (en) * | 2005-04-05 | 2007-09-25 | Nvidia Corporation | System and method for hardware assisted resource sharing |
US7609468B2 (en) * | 2005-04-06 | 2009-10-27 | Marvell International Ltd. | Method and system for read gate timing control for storage controllers |
US8849968B2 (en) * | 2005-06-20 | 2014-09-30 | Microsoft Corporation | Secure and stable hosting of third-party extensions to web services |
US20070094495A1 (en) * | 2005-10-26 | 2007-04-26 | Microsoft Corporation | Statically Verifiable Inter-Process-Communicative Isolated Processes |
US8074231B2 (en) * | 2005-10-26 | 2011-12-06 | Microsoft Corporation | Configuration of isolated extensions and device drivers |
US8032898B2 (en) * | 2006-06-30 | 2011-10-04 | Microsoft Corporation | Kernel interface with categorized kernel objects |
US20080244507A1 (en) * | 2007-03-30 | 2008-10-02 | Microsoft Corporation | Homogeneous Programming For Heterogeneous Multiprocessor Systems |
US8789063B2 (en) * | 2007-03-30 | 2014-07-22 | Microsoft Corporation | Master and subordinate operating system kernels for heterogeneous multiprocessor systems |
JP5578698B2 (ja) * | 2009-04-23 | 2014-08-27 | ルネサスエレクトロニクス株式会社 | 半導体データ処理装置及びデータ処理システム |
CN103620568B (zh) * | 2011-04-20 | 2016-10-05 | 马维尔国际贸易有限公司 | 用于可变长度仲裁的方法、装置和系统 |
US9158592B2 (en) | 2011-05-02 | 2015-10-13 | Green Hills Software, Inc. | System and method for time variant scheduling of affinity groups comprising processor core and address spaces on a synchronized multicore processor |
US9141438B2 (en) | 2011-06-30 | 2015-09-22 | Net Navigation Systems, Llc | Logic for synchronizing multiple tasks |
CN104823168B (zh) | 2012-06-15 | 2018-11-09 | 英特尔公司 | 用于实现从由加载存储重新排序和优化导致的推测性转发遗漏预测/错误中恢复的方法和系统 |
EP2862068B1 (en) | 2012-06-15 | 2022-07-06 | Intel Corporation | Reordered speculative instruction sequences with a disambiguation-free out of order load store queue |
EP2862061A4 (en) | 2012-06-15 | 2016-12-21 | Soft Machines Inc | MEMORY PRECISION FOR VIRTUAL LOAD WITH DYNAMIC SHIPPING WINDOW WITH UNIFORM STRUCTURE |
EP2862069A4 (en) | 2012-06-15 | 2016-12-28 | Soft Machines Inc | DEFINING INSTRUCTIONS TO REORDER AND OPTIMIZE LOADING AND STORAGE |
WO2013188460A2 (en) | 2012-06-15 | 2013-12-19 | Soft Machines, Inc. | A virtual load store queue having a dynamic dispatch window with a distributed structure |
KR101818967B1 (ko) | 2012-06-15 | 2018-01-16 | 인텔 코포레이션 | 명확화 없는 비순차 load store 큐 |
KR102248470B1 (ko) * | 2012-06-15 | 2021-05-06 | 인텔 코포레이션 | 메모리로부터 순차적으로 판독하는 load들을 구성하는 메모리 일관성 모델에서 비순차 load들을 갖는 세마포어 방법 및 시스템 |
JP5856220B2 (ja) * | 2014-04-23 | 2016-02-09 | ルネサスエレクトロニクス株式会社 | ナビゲーションシステム |
US10152436B2 (en) * | 2016-03-30 | 2018-12-11 | Oracle International Corporation | Mutual exclusion in a non-coherent memory hierarchy |
CN109840225B (zh) * | 2017-11-27 | 2023-06-09 | 中国航空工业集团公司西安航空计算技术研究所 | 一种异构双核处理器访问eFPGA的控制电路 |
US11144368B2 (en) * | 2019-06-18 | 2021-10-12 | Qualcomm Incorproated | Providing self-resetting multi-producer multi-consumer semaphores in distributed processor-based systems |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3676860A (en) * | 1970-12-28 | 1972-07-11 | Ibm | Interactive tie-breaking system |
JPS52130246A (en) * | 1976-04-24 | 1977-11-01 | Fujitsu Ltd | Memory access control system |
US4574350A (en) * | 1982-05-19 | 1986-03-04 | At&T Bell Laboratories | Shared resource locking apparatus |
JPH07104834B2 (ja) * | 1986-06-18 | 1995-11-13 | 富士通株式会社 | 処理装置間ロック制御システム |
US5179705A (en) * | 1988-03-23 | 1993-01-12 | Dupont Pixel Systems, Ltd. | Asynchronous arbiter state machine for arbitrating between operating devices requesting access to a shared resource |
-
1992
- 1992-11-11 EP EP92310300A patent/EP0543560B1/en not_active Expired - Lifetime
- 1992-11-11 DE DE69230462T patent/DE69230462T2/de not_active Expired - Fee Related
- 1992-11-17 KR KR1019920021557A patent/KR100225743B1/ko not_active IP Right Cessation
- 1992-11-19 JP JP33225492A patent/JP3381854B2/ja not_active Expired - Lifetime
- 1992-12-17 US US07/991,497 patent/US5339443A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
DE69230462D1 (de) | 2000-01-27 |
KR930010740A (ko) | 1993-06-23 |
JPH06266679A (ja) | 1994-09-22 |
EP0543560B1 (en) | 1999-12-22 |
EP0543560A2 (en) | 1993-05-26 |
DE69230462T2 (de) | 2000-08-03 |
EP0543560A3 (en) | 1993-07-28 |
JP3381854B2 (ja) | 2003-03-04 |
US5339443A (en) | 1994-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100225743B1 (ko) | 공유자원으로의 멀티프로세서 액세스의 조정 | |
KR950008227B1 (ko) | Dma 제어기를 갖는 컴퓨터 시스템 및 dma제어 방법 | |
US6557084B2 (en) | Apparatus and method to improve performance of reads from and writes to shared memory locations | |
US4511964A (en) | Dynamic physical memory mapping and management of independent programming environments | |
EP0535821B1 (en) | Method and apparatus for dynamically steering undirected interrupts | |
US8001333B2 (en) | Memory management in a shared memory system | |
US4984153A (en) | Storage locking control for a plurality of processors which share a common storage unit | |
KR100420707B1 (ko) | 가변폭버스의동시적인액세스를이용하는다중프로세서시스템에서버스중재를위한방법및시스템 | |
US7698523B2 (en) | Hardware memory locks | |
JPH07200318A (ja) | 動的優先タスク・スケジューラを有するデータ処理システム | |
JPH02232747A (ja) | マルチプロセッサ・システムにおけるメモリ・アクセス動作の同期化・処理 | |
US5317749A (en) | Method and apparatus for controlling access by a plurality of processors to a shared resource | |
JPH11505653A (ja) | 単一アドレス空間で保護ドメインと共に用いるためのオペレーティングシステム | |
KR20010087404A (ko) | 비정형 메모리 억세스 데이타 처리 시스템용 인터럽트아키텍쳐 | |
US5761455A (en) | Dynamic bus reconfiguration logic | |
US6243762B1 (en) | Methods and apparatus for data access and program generation on a multiprocessing computer | |
US7080174B1 (en) | System and method for managing input/output requests using a fairness throttle | |
US6279066B1 (en) | System for negotiating access to a shared resource by arbitration logic in a shared resource negotiator | |
CN117112246A (zh) | 自旋锁的控制装置 | |
US7099974B2 (en) | Method, apparatus, and system for reducing resource contention in multiprocessor systems | |
US7406554B1 (en) | Queue circuit and method for memory arbitration employing same | |
JPS594733B2 (ja) | キヨウツウバスセイギヨカイロ | |
US20030140189A1 (en) | Method and apparatus for resource sharing in a multi-processor system | |
JPH0210459A (ja) | バス使用権決定方式 | |
US11880304B2 (en) | Cache management using cache scope designation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20050711 Year of fee payment: 7 |
|
LAPS | Lapse due to unpaid annual fee |