KR910007750B1 - 다중 프로세서 컴퓨터 시스템에서 다중 록 표시자를 실시하기 위한 방법 및 장치 - Google Patents

다중 프로세서 컴퓨터 시스템에서 다중 록 표시자를 실시하기 위한 방법 및 장치 Download PDF

Info

Publication number
KR910007750B1
KR910007750B1 KR1019880701787A KR880701787A KR910007750B1 KR 910007750 B1 KR910007750 B1 KR 910007750B1 KR 1019880701787 A KR1019880701787 A KR 1019880701787A KR 880701787 A KR880701787 A KR 880701787A KR 910007750 B1 KR910007750 B1 KR 910007750B1
Authority
KR
South Korea
Prior art keywords
lock
command
bus
node
address
Prior art date
Application number
KR1019880701787A
Other languages
English (en)
Other versions
KR890702145A (ko
Inventor
쥬니어 리차드 비.길렛
디. 윌리암스 더글라스
Original Assignee
디지탈 이큅먼트 코오포레이숀
로날드 이.마이릭
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 디지탈 이큅먼트 코오포레이숀, 로날드 이.마이릭 filed Critical 디지탈 이큅먼트 코오포레이숀
Publication of KR890702145A publication Critical patent/KR890702145A/ko
Application granted granted Critical
Publication of KR910007750B1 publication Critical patent/KR910007750B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4208Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus
    • G06F13/4217Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus with synchronous protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Multi Processors (AREA)
  • Hardware Redundancy (AREA)
  • Control By Computers (AREA)
  • Vehicle Body Suspensions (AREA)

Abstract

내용 없음.

Description

[발명의 명칭]
다중 프로세서 컴퓨터 시스템에서 다중 록 표시자를 실시하기 위한 방법 및 장치
[도면의 간단한 설명]
제1도는 본 발명을 사용하는 데이타 처리 시스템의 블록도이다.
제2도는 제1도 데이타 처리 시스템에서의 노드의 블록도이다.
제3도는 제1도 데이타 처리 시스템에서 사용된 타이밍 신호들을 도시한 타이밍도이다.
제4도는 제2도 노드에서의 데이타 인터페이스(61)의 블록도이다.
제5도는 제1도 데이타 처리 시스템에서의 중재기의 블록도이다.
제6도는 인터록 판독 트랜잭션 중에 제1도 시스템 버스상에 나타나는 신호들을 도시한 타이밍도이다.
제7도는 제1도 데이타 처리 시스템에서의 프로세서 노드의 블록도이다.
제8도는 제1도 데이타 처리 시스템에서의 메모리 노드의 블록도이다.
제9도는 제8도 메모리 노드에서의 록 제어기의 블록도이다.
[발명의 상세한 설명]
[발명의 배경]
본 발명은 컴퓨터 시스템에 관한 것으로서, 더욱 구체적으로 말하면 펜디드(pended)버스에 의해 상호 접속된 다중 프로세서를 갖는 컴퓨터 시스템에 관한 것이다.
기존의 컴퓨터 시스템은 고성능의 전체 계산력을 얻기 위해 공통버스에 의해 상호 접속된 다중 프로세서, 메모리 자원 및 입/출력(I/O)장치를 가질 수 있다. 그러한 구성으로 초당 수백만개의 명령을 실행할 수 있는 고성능 시스템에 제공될 수 있다. 그러나, 다중 프로세서들을 상호 접속하면 판독-수정-기입(RMW) 동작으로서 알려진 명령 시퀀스를 수행하는 것이 요구될 때 어려움이 발생될 수 있다. RMW 동작에서 하나의 프로세서는 메모리 위치로부터 데이타를 검색하고, 그 데이타에 대한 동작을 수행하며, 그 수정된 데이타를 다시 원래의 메모리 위치로 기입한다. 하나의 프로세서가 하나의 메모리 위치에 대해 RMW 동작을 개시했을 경우 데이타 보전성에 영향을 주는 예측할 수 없는 결과가 발생할 수 있으며, 제2프로세서는 제1프로세서의 RMW동작의 "판독"부와 "기입"부 사이의 기간에서 동일 메모리 위치에 대해 RMW 동작을 시도한다.
다중 프로세서들로 하여금 동일 메모리 위치에서 RMW동작을 수행하지 못하게 하기 위한 한 방식은 "인터록 판독"능력을 제공하는 것이다. 이것은 록 비트와 같은 "록"표시자를 사용하며, 이 록 비트는 RMW동작의 "판독"부가 수행될때 세트되고 RMW 동작의 "기입"부가 종료된 후 리셋된다. 록 비트가 세트될 때 메모리내의 위치에서 RMW동작을 개시하고자 하는 제2프로세서에 의해, 제2프로세서가 인터록 판독 명령을 발생한 후 소정 수의 버스 사이클 동안 메모리가 "비지" 또는 "재시행"확인에 의해 록 상태 정보를 복귀시키게 된다. 비지 확인은 제2인터록 판독 명령이 메모리에 의해 허용되지 않았다는 것을 프로세서에 가리킨다.
인터록 판독 동작은 RMW 동작을 각각 수행하고자 하는 다중프로세서들에 의해 야기된 문제를 경감시킨다. 프로세서들은 예를들어 라운드로빈 알고리즘을 사용하는 중재 처리에 의해 그러한 인터록 판독 동작중에 버스에 대한 유효 액세스가 부여된다. 그러나, 그럼에도 아직도 성능 장애가 발생할 수 있다. 예를들면, 어느 버스 교통 상태하에서 특정 프로세서가 록된 메모리 위치와 반복적으로 마주칠 수도 있으며, 적시에 메모리 자원에 대한 필요한 액세스를 얻을 수 없겠다. 그러한 문제들은 메모리 노드에 다중 록 비트를 제공함으로써 감소될 수 있는데, 각 록 비트는 전체 메모리 노드보다 메모리 노드 일부분과 관련된다. 그러한 다중 록 비트는 인터록 판독 동작후 메모리의 보다 작은 부분을 구속하는, 메모리 노드상의 인터록된 판독 동작의 보다 정교한 "입도(granularity)"를 제공하겠다. 이 해결책은 또한 RMW 동작의 보다 높은 성공률을 허용하고, 따라서 시스템 처리 능력을 향상시킨다. 그러나, 종래 기술의 펜디드 버스 다중 프로세서 시스템에서 다중 록 비트를 수행하면, 록 상태 정보를 검출하고 전송하기 위한 회로가 허용할 수 없을 정도로 복잡하게 된다.
상기 설명이 프로세서 노드, 메모리 노드 및 I/O 노드를 활용하는 컴퓨터 시스템의 동작을 강조하였지만, 그러한 시스템의 더욱 일반적인 설명은 명령기 노드, 즉 버스상에 트랜잭션을 개시시키는 노드 및 응답기 노드, 즉 명령기 노드에 의해 개시된 트랜잭션에 응답하는 노드에 관한 것이다. 여러기산에서 단일 디바이스가 명령기 노드나 응답기 노드로서 기능을 할 수 있다.
각각 상이한 특성을 갖는 소자들이 몇개의 버스를 통하여 상호접속되는 컴퓨터 시스템을 제공하는 것이 바람직하다. 그러나, 이것은 록 상태 정보가 초기 인터록된 판독 명령과의 종래 기술의 펜디스버스 시스템에서 수행하기에는 매우 힘들었다.
[발명의 개요]
본 발명의 제1목적은 다중 록비트를 갖고 록상태 정보를 전송하기 위한 간략회로를 갖는 다중 프로세서 시스템에서 응답기 노드를 제공하는 것이다.
본 발명의 제2목적은 록 상태 정보가 초기 인터록 판독 명령과의 고정 시간 관계로 전송되지 않는 인터록 판독 동작을 갖는 다중 프로세서 펜디드 버스 컴퓨터에서 응답기 노드를 제공하는 것이다.
본 발명의 추가의 목적 및 장점은 뒤이은 기재에서 부분적으로 설명되고 그 기재로부터 부분적으로 명백하겠으며, 또는 본 발명의 실시에 의해 교시될 수 있다. 본 발명의 목적 및 장점은 부속 청구 범위에서 특히 지적된 수단 및 조합에 의해 실현될 수 있도 달성될 수 있다.
본 발명은 인터록 판독 명령후 소정 시간 동안 인식 확인을 발생시키고 인터록 또는 메시지후 비 특정 시간에 록상태 메시지를 발생시키는 응답기 노드를 제공함으로써 종래 기술의 문제 및 단점을 극복한다.
본 발명의 원리에 따르면, 펜디드 버스상에 배타적 판독-수정-기입 동작을 실행하기 위한 장치가 제공되는데, 그 동작은 특정 위치에 기억된 정보를 검색하고 후속 인터록 판독 명령에 의해 그 기억된 정보에 대한 액세스를 제한하기 위한 인터록 판독 명령과, 그 특정 위치에 정보를 기억시키고 그 기억된 정보에 대한 액세스를 복원시키기 위한 언록 기입 명령을 포함하는 펜디드 버스상의 일련의 상이한 트랜잭션을 갖는다. 이 장치는 명령기 노드로부터 인터록 판독 명령을 수신하기 위한 수단과; 정보를 기억하기 위한 특정위치를 포함하는 기억 수단과; 기억 수단과 결합되고, 언록 상태에서 기억 수단에 대한 액세스를 허용하고 록 상태에서 기억 수단에 대한 액세스를 부정하기 위한 언록 상태로 록 상태사이에서 동작 가능한 록 수단과; 인터록 판독 명령에 응답하여, 록 수단의 상태를 나타내는 록 상태 표시를 발생시키고 언록 상태로부터 록 상태로 록수단을 스위칭하기 위한 인터록 판독 명령 수단과; 언록 기입 명령에 응답하여, 특정 위치에서 수정된 정보를 기억시키고 록 상태로부터 언록 상태로 록 수단을 스위칭하기 위한 언록 기입 명령 수단과; 인터록 판독 명령을 발생시킨 명령기 노드에 그 인터록 판독 명령에 뒤이은 비 특정 시간에서 록 수단 상태를 포함하는 록 상태 메시지를 전송하기 위한 상태 응답 수단을 구비한다.
또한, 본 발명은 펜디드 버스상에 배타적 판독-수정-기입 동작에 응답하기 위한 방법을 제공하는데, 그 동작은 특정 위치에 기억된 정보를 검색하고 후속 인터러고록 판독 명령에 의해 그 기억정보에 대한 액세스를 제한하기 위한 인터록 판독 명령과, 그 특정 위치에 정보를 기억시키고 그 기억된 정보에 대한 액세스를 복원시키기 위한 언록 기입 명령을 포함하는 펜디드 버스상의 일련의 상이한 트랜잭션을 갖는다. 이 방법은 명령기 노드로부터 인터록 명령을 수신하는 단계와, 인터록 판독 명령의 수신을 나타내는 명령들의 개시에 뒤이은 소정시간에 명령기 노드에 인식 확인을 전송하는 단계와, 록 표시자를 검사하여 록 표시자가 언록 상태에 있을 경우 록 표시자를 언록 상태로부터 록 상태로 스위칭하는 단계와, 록 표시자 상태에 대응하는 록 상태 신호를 인터록 판독 명령의 개시에 뒤이은 비특정 시간에 명령기 노드에 전송하는 단계와, 수정된 정보를 특정 위치에 기억시키고, 언록 기입 명령의 수신시 록 상태로부터 언록 상태로 록 표시자를 스위칭하는 단계를 포함한다.
본 명세서에 포함되어 일부분을 구성하는 첨부한 도면들은 본 발명의 일실시예를 예시하는 것이며, 본 기재와 함께 본 발명의 원리를 설명하고 있다.
바람직한 실시예의 상세한 설명
A. 시스템 개요
제1도는 본 발명을 구현하는 데이타 처리 시스템(20)의 실시예를 도시하고 있다. 시스템(20)의 중심부는 몇개의 프로세서, 메모리 부시스템 및 I/O 시스템간의 통신을 허용하는 동기 버스인 시스템버스(25)이다. 시스템 버스(25)를 통한 통신은 주기적 버스 사이클을 사용하여 동기적으로 발생한다. 시스템 버스(25)에 대한 통상의 버스사이클 시간은 64nsec이다.
제1도에는 시스템 버스(25)가 2개의 프로세서(31,35), 메모리(39), 하나의 I/O인터페이스(41) 및 하나의 I/O장치(51)에 결합된다.
데이타 처리 시스템(20)의 바람직한 실시예에서 시스템 버스(25)에 중앙 중재기(28)가 또한 접속된다. 중재기(28)는 시스템버스(25)상의 다른 소자들에 직접 어느 타이밍 및 버스중재 신호들을 공급하고 이들 소자들과 함께 어느 신호들을 공유한다.
제1도에 도시된 설치는 바람직한 실시예이며, 본 발명을 한정하는 것으로 반드시 받아들여서는 안되겠다. 예를 들어, I/O장치(53)는 시스템 버스(25)에 직접 결합될 수 있고, 중재기(28)는 본 발명에 대해 설명된 방식으로 동작할 필요는 없다.
본 발명을 설명하는데 사용된 용어에서 프로세서(31,35), 메모리(39), I/O 인터페이스(41) 및 I/O장치(51)는 모두 노드를 일컫는다. "노드"는 시스템 버스(25)에 접속되는 하드웨어 소자로서 정의된다.
본 발명을 설명하는데 사용된 용어에 따르면, "신호" 또는 "라인"이란 말은 물리적 와이어의 명칭을 언급하게끔 교체 가능하게 사용된다. "데이타" 또는 "레벨"이란 말은 신호 또는 라인이 취할 수 있는 값을 언급하게끔 사용된다.
노드는 시스템 버스(25)를 통하여 다른 노드들과의 전송을 수행한다. "전달"은 공통 송신기 및 공통 중재기를 공유하는 하나이상의 인접사이클이다. 예를 들면, 하나의 노드에 의해 시스템 버스(25)상의 또 다른 노드로부터의 정보를 얻기 위해 개시된 판독 동작은 제1노드로부터 제2노드로의 명령 전송을 요구하며 뒤이어서 제2노드로부터 제1노드로의 하나 이상의 복귀 데이타 전송을 요구한다.
"트랜잭션"은 시스템 버스(25)상에 수행되는 완전한 논리 태스크로서 정의되며, 하나 이상의 전송을 포함할 수 있다. 예를 들면, 하나 이상의 복귀 데이타 전송으로 이어지는 명령 전송으로 이루어진 판독 동작이 하나의 트랜잭션이다. 시스템 버스(25)의 바람직한 실시예에서, 허용 가능 트랜잭션은 상이한 데이타 길이의 전송을 지지하며, 판독, 기입(마스크된), 인터록 판독, 언록 기입 및 인터럽트 동작을 포함한다. 인터록 판독과 정규 즉 논인터록 판독간의 차이점은 특정 위치에 대한 인터록 판독이 그 위치에 기억된 정보를 검색하고 뒤이은 인터록 판독 명령에 의해 그 기억된 정보에 대한 액세스를 제한하는 점이다. 액세스 제한은 록 메카니즘을 세트시킴으로써 수행된다. 후속 언록 기입 명령은 특정 위치에서 정보를 기억시키고 그 기억된 정보에 대한 액세스를 그 위치에서 록메카니즘을 리셋시킴으로써 복원시킨다. 따라서, 인터록 판독/언록기입 동작은 판독-수정-기입 명령의 형태로 되어 있다.
시스템 버스(25)가 "펜디드" 버스이므로, 그것은 응답을 대기하는데 소모되는 버스사이클을 다른 노드들이 사용하게 함으로써 버스 자원의 효율적인 사용을 촉진시킨다. 펜디드 버스에서, 한 노드가 트랜잭션을 개시시킨 후 다른 노드가 그 트랜잭션이 종료되기 전에 버스에 대한 액세스를 가질 수 있다. 따라서 그 트랜잭션을 개시시키는 노드는 전체 트랜잭션 시간동안 버스를 구속하지 않는다. 이것은 버스가 전체 트랜잭션 동안 구속되는 논펜디드 버스와 대조된다. 예컨대, 시스템 버스(25)에서 노드가 판독 트랜잭션을 개시시키고 명령 전송을 이룬 후에, 그 명령 전송이 향해지는 노드는 그 요구된 데이타를 즉시 복귀시킬 수 없다. 이어서, 버스(25)상의 사이클은 판독 트랜잭션의 명령 전송과 복귀 데이타 전송 사이에서 유효하다. 시스템 버스(25)는 다른 노드들로 하여금 그 사이클들을 사용하게끔 한다.
시스템 버스(25)를 사용함에 있어서 노드들 각각은 정보 전송에 영향을 주기 위해 상이한 역활을 취할 수 있다. 그 역할들중 하나는 진행중에 트랜잭션을 개시시킨 노드로서 정의되는 "명령기"이다. 예를들면, 기입 또는 판독 동작에서 명령기는 기입 또는 판독 동작을 요구한 노드이며 반드시 데이타를 송신 또는 수신하는 노드는 아니다. 시스템 버스(25)에 대한 바람직한 프로토콜에서, 또다른 노드가 트랜잭션의 어느 사이클중에 시스템 버스(25)의 소유권을 취할 수 있을지라도 전체 트랜잭션을 통하여 한 노드가 명령기로서 유지된다. 예를들면, 한 노드가 판독 트랜잭션을 명령 전송에 응답하여 데이타 전송중에 시스템 버스(25)의 제어를 갖더라도 그 노드는 버스의 명령기가 되지 못한다. 그대신 이 노드는 "응답기"라 일컫는다.
응답기는 명령기에 응답한다. 예를들면, 명령기가 노드 A로부터 노드 B로 데이타를 기입하기 위해 기입 동작을 개시시킬 경우, 노드 B는 응답기가 된다. 또한, 데이타 처리 시스템(20)에서 노드는 동시에 명령기 및 응답기가 될 수 있다.
송신기 및 수신기는 노드들이 개별적인 전송에서 취하는 역할이다. "송신기"는 전송중에 시스템 버스(25)상에 실린 정보 소스인 노드로서 정의된다. "수신기"는 송신기와 보족 관계이며 전송중에 시스템 버스(25)상에 실린 정보를 수신하는 노드로서 정의된다. 판독 트랜잭션중에, 예컨대 명령기는 먼저 명령 전송중에 송신기일 수 있고 이어서 복귀 데이타 전송중에 수신기일 수 있다.
시스템 버스(25)에 접속된 노드가 시스템 버스(25)상에서 송신기로 되는 것이 요구될 때, 그 노드는 중앙 중재기(28)와 그 특정 노드 사이에 접속된 2개의 요구 라인 CMD REQ(명령기 요구) 및 RES REQ(응답기 요구)중 하나를 어서트한다. 일반적으로, 노드는 명령기로 되는 것을 요구하고 그리고 시스템 버스(25)상의 트랜잭션을 개시시키기 위해 CMD REQ라인을 사용하고, 명령기로 데이타 또는 메시지를 복귀시키기 위해 응답기로 되게끔 RES, REQ라인을 사용한다. 보통, 중앙 중재기(28)는 노드가 버스에 대한 액세스를 요구하는 것(즉, 요구 라인이 어서트 되는 것)을 검출한다. 이어서, 중재기는 우선 순위 알고리즘에 따라서 버스(25)에 대한 대응 노드 액세스를 부여하기 위해 그 어서트된 요구라인 중 하나의 응답한다. 바람직한 실시예에서 중재기(28)는 2개의 독립된 원형 큐를 유지하는데, 하나는 명령기 요구이고 다른 하나는 응답기 요구이다. 바람직하게는, 응답기 요구는 명령기 요구보다 상위 우선 순위를 갖고 명령기 요구전에 처리된다.
명령기 요구 라인 및 응답기 요구 라인은 중재 신호들로 고려된다. 제1도에 도시된 바와 같이, 또한 중재신호는 중앙중재기(28)로부터 각 노드로의 지점간 조간부허용 신호, 다중버스 사이클 전송을 수행하기 위한 시스템 버스연장신호 및 예컨대 메모리와 같은 노드가 시스템 버스상에서 교통 상태로 순간적으로 유지될 수 없을 때 새로운 버스 트랜잭션의 개시를 제어하기 위한 시스템 버스 삭제신호를 포함한다.
시스템 버스(25)를 구성할 수 있는 다른 형태의 신호는 정보 전송 신호, 응답신호, 제어신호, 콘솔/프론트 파넬 신호 및 몇가지 보조 신호를 포함한다. 정보 전송 신호는 데이타 신호, 현재 사이클중에 시스템 버스상에 수행되는 기능을 나타내는 기능 신호, 명령기를 식별하는 식별신호 및 패리티 신호를 포함한다. 응답신호는 일반적으로 데이타 전송의 상태를 송신기에 통제하기 위해 수신기로부터 인식 또는 확인 신호를 포함한다.
제어 신호는 로우 라인 전압 또는 로우 DC전압을 식별하는 바와 같은 경고 신호, 클럭신호, 초기 설정중에 사용된 리셋신호, 로드고장신호, 유휴 버스사이클중에 사용된 디폴트 신호 및 에러 디폴트 신호를 포함한다. 콘솔/프론트 파넬신호는 시스템 콘솔로 직렬 데이타를 송/수신하기 위한 신호, 전력 공급중에 부트 프로세서의 행위를 제어하기 위한 부트신호, 시스템버스(25)상의 프로세서의 소거 가능 PROM에 대한 수정을 인에이블시키기 위한 신호, 프론트 파넬상의 "운전등"을 제어하기 위한 신호 및 어느 노드상의 논리부를 클럭시키기 위해 배터리 전력을 공급하는 신호를 포함한다. 여분의 신호에 부가하여 보조 신호는 각 노드로 하여금 식별 코드를 형성하게 하는 식별신호를 포함한다.
제2도는 시스템 버스(25)에 접속된 노드(60)의 실시예를 도시하고 있다. 노드(60)는 프로세서, 메모리, I/O장치 또는 I/O인터페이스일 수 있다. 제2도에 도시된 실시예에서, 노드(60)는 노드 특정 논리부(65), 노드버스(67) 및 데이타 인터페이스(61) 및 클럭 디코더(63)를 내장하는 시스템 버스 인터페이스(64)를 포함한다. 바람직하게는, 데이타 인터페이스(61), 클럭 디코더(63) 및 노드 버스(67)는 시스템 버스(25)에 접속된 노드용 표준 소자들이다. 노드 특정 논리부(65)는 시스템 버스 인터페이스(64)와 상이한 집적회로를 사용하는데, 바람직하게는 노드의 특정 기능을 수행하기 위해 사용자에 의해 지정된 회로에 부가하여, 노드 버스(67)와 인터페이스하기 위한 표준회로를 포함한다. 일반적으로, 데이타 인터페이스(61)는 주 논리부이고 노드(60)와 시스템 버스(25)간의 전기적 인터페이스이며, 클럭 디코더(63)는 중앙에 발생된 클럭 신호에 따라 노드(60)에 타이밍 신호를 공급하고, 노드버스(67)는 데이타 인터페이스(61)와 노드 특정 논리부(65)간의 고속 인터페이스를 제공한다.
제2도에 도시된 노드(60) 및 시스템 버스 인터페이스(64)의 바람직한 실시예에서, 클럭 디코더(63)는 시스템 버스(25)상에 실려질 신호를 형성하기 위한 제어회로를 내장하고, 노드 특정 논리부(65) 및 데이타 인터페이스(61)에 대한 타이밍 신호를 얻기 위해 중앙 중재기(28)로부터 수신된 클럭 신호를 처리한다. 클럭 디코더(63)에 의해 얻어진 타이밍 신호가 중앙에 발생된 클럭 신호를 사용하므로, 노드(60)는 시스템 버스(25)와 동기하여 동작하겠다.
제3도는 하나의 버스 사이클, 클럭 디코더(63)에 의해 수신된 클럭 신호 및 클럭 디코더(63)에 의해 발생된 타이밍 신호들중 어느 신호를 도시한 타이밍도이다. 클럭 디코더(63)에 의해 수신된 클럭 신호들은 제3도에 도시된 바와 같이 시간 H신호, 시간 L신호 및 위상신호를 포함한다. 시간 H 및 L신호는 기본 클럭 신호들의 반대 신호들이고, 위상 신호는 기본 클럭 신호를 3으로 나눔으로써 얻어진다. 클럭 디코더(63)에 의해 발생된 타이밍 신호는 C12, C23, C34, C45, C56 및 C61을 포함하며, 모두 제3도에 도시되어 있다. 데이타 인터페이스(61)에 의해 요구된 이들 타이밍 신호들(버스 사이클당 1회 발생함)은 데이타 인터페이스(61)에 공급되며, 데이타 인터페이스(61)에 공급된 타이밍 신호들에 대한 등가 신호를 포함하는 일련의 완전한 타이밍 신호가 버퍼링되어 노드 특정 논리부(65)에 공급된다. 버퍼링의 목적은 노드 특정 논리부(65)가 타이밍 신호를 부적당하게 로드함으로써 시스템 버스 인터페이스(64)의 동작에 악영향을 주지 못하게 하는 것을 보장하는 것이다, 클럭(63)은 각 버스 사이클동안 6부 사이클을 발생시키게끔 클럭 신호를 사용하고, 이어서 그 부사이클들을 여섯가지 타이밍 신호 CXY를 생성하기 위해 사용하며, 여기서 X 및 Y는 하나의 타이밍 신호를 형성하게끔 조합된 2개의 인접 부사이클을 나타낸다.
시스템 버스에서 각 노드는 클럭 디코더(63)에 의해 발생된 일련의 대응 타이밍 신호를 갖는다. 시스템을 통하여 노드마다 정확히 동일한 시간에 대응 신호들이 발생하는 동안, 다중노드에서 클럭 디코더(63)와 다른 회로간의 변동으로 인해 대응 신호들간의 타이밍이 변동된다. 이러한 타이밍 변동을 통상 "클럭 스큐"로서 알고 있다.
제4도는 데이타 인터페이스(61)의 바람직한 실시예를 도시하고 있다. 데이타 인터페이스(61)는 노드버스(67)의 라인들 각각과 시스템 버스(25)의 각 라인들간에 양방향 고속 인터페이스를 제공하기 위해 일시 기억회로 및 버스 구동 회로를 내장한다. 제4도에 도시된 바와 같이, 데이타 인터페이스(61)는 바람직하게 노드버스(67)로부터 시스템 버스(25)로의 통신 경로를 제공하기 위해 기억 소자(70,72) 및 시스템 버스 구동기(74)를 포함한다. 또한, 데이타 인터페이스(61)는 시스템 버스(25)로부터 노드 버스(67)로의 통신 경로를 제공하기 위해 기억소자(80) 및 노드 버스 구동기(82)를 포함한다. 데이타 인터페이스(61) 설명에서 사용된 바와 같이, "기옥소자"라는 용어는 투명 래치 또는 마스터-슬레이브 기억소자와 같은 쌍안정 기억소자를 보통 말하며, 특정 설비를 말하는 것은 아니다. 통상의 숙련된 자는 어느 형태의 기억 소자가 적합하다는 것을 알고 있겠다.
제4도에 도시된 바와 같이, 기억소자(70)는 노드버스(67)로부터 데이타를 수신하게끔 접속된 입력 및 기억소자(72)의 입력에 접속된 출력을 갖는다. 기억소자(72)의 출력은 시스템 버스 구동기(74)의 입력에 접속되고, 이 구동기의 출력은 시스템 버스(25)에 접속된다. 기억소자(70,72)는 노드 버스제어 신호들(76,78)에 의해 각각 제어되고, 이 신호들은 클럭 디코더(63)에 의해 발생된 타이밍 신호들로부터 인출된다. 기억소자(70,72)는 노드버스(67)로부터 시스템 버스(25)로 데이타를 파이프라이닝 하기 위해 2단 일시 기억을 제공한다.
시스템 버스 구동기(74)는 시스템 버스 구동기 인에이블(79)에 의해 제어된다. 시스템 버스 구동기 인에이블(79)의 상태에 따르면, 시스템 버스 구동기(74)의 입력은 그 출력에 전기적으로 결합되어 이에 의해 기억소자(72)의 출력에서의 데이타를 시스템 버스(25)에 전송하거나, 그 출력으로부터 분리된다. 시스템 버스 구동기 인에이블(79)이 시스템 버스 구동기(74)의 입력과 출력을 분리시킬 때, 시스템 버스 구동기(74)는 시스템 버스(25)에 고임피던스를 부여한다. 시스템 버스 인에이블(79)은 시스템 버스(25)로부터 수신된 클럭 신호 및 노드 특정 논리부(65)로부터 수신된 제어신호에 따라서 클럭 디코더(63)에 의해 또한 발생된다.
기억소자(80)는 시스템 버스(25)에 접속된 입력 단자 및 노드버스 구동기(82)의 입력에 접속된 출력단자를 갖는다. 노드버스 구동기(82)의 출력은 노드버스(67)에 다시 접속된다. 바람직하게는 투명 래치인 기억 소자(80)는 클럭디코더(63)에 의해 발생된 타이밍 신호로부터 인출된 시스템 버스 래치 제어신호(85)에 의해 제어된다. 노드버스 구동 신호(87)는 시스템 버스 구동 신호(79)가 시스템 버스 구동기(74)를 제어하는 방식과 마찬가지로 노드 버스 구동기(82)를 제어한다. 따라서, 노드버스 구동신호(87)에 응답하여, 노드버스 구동기(82)는 그것의 출력에 그것의 입력을 결합시키거나 그것의 출력으로부터 그것의 입력을 분리시키며, 노드 버스(67)에 고임피던스를 공급한다.
시스템 버스(25)를 통하여 데이타가 어떻게 전송되는지를 설명하기 위하여, 시스템 버스 구동 인에이블(79)과 제어신호(85)간의 관계를 이해하는 것이 중요하다. 본 실시예에서는 이 관계가 제3도에 도시되어 있다. 시스템 버스 구동 인에이블(79)은 버스 사이클의 개시로부터 종료로 인출된다. 새로운 데이타가 구동기 전파 및 버스정착 시간이 발생된 후 버스사이클에서 어느 나중 시간에 시스템 버스(25)로부터의 수신을 위해 유효하게 된다. 본 실시예에서 기억소자(80)는 투명 래치이다. 제어신호(85)는 클럭 C45와 논리적으로 동일하다. 버스 타이밍은 시스템 버스(25)데이타가 제어신호(85)의 디어서트 이전에 때때로 수신하기 위해 유효한 것을 보장한다. 기억소자(80)는 제어신호(85)의 디어서트 이전의 최소한 셋업시간에서 안정 상태이고 제어신호(85)의 디어서트후 홀드시간 동안 안정 상태로 유지되는 버스 데이타를 기억시킨다.
노드버스(67)는 바람직하게 데이타 인터페이스(61)에 의해 노드 특정 논리부(65)와 시스템 버스(25)간의 양방향 데이타 전송을 허용하는 매우 고속의 데이타 버스이다. 제2도에 도시된 노드(60)의 바람직한 실시예에서, 노드버스(67)는 시스템 버스 인터페이스(64)와 노드 특정 논리부(65)간의 지점간 접속부로 이루어진 이중 사용자가 시스템이다. 그러나, 본 발명에 따르면, 그러한 접속 및 노드버스(67)가 2이상의 사이클을 지지해야 하는 요건은 없다.
제5도는 시스템 버스(25)에 또한 접속된 중앙 중재기(28)의 바람직한 실시예를 도시하고 있다. 중앙 중재기(28)는 시스템 버스(25)에 클럭 신호를 공급하고, 시스템 버스(25)상의 노드에 대한 버스의 소유권을 인정한다. 중앙 중재기(28)는 중재회로(90), 클럭회로(95) 및 발진기(97)를 바람직하게 포함한다. 발진기(97)는 기본 클럭 신호를 발생시킨다. 클럭(95)은 중재회로(71)용 타이밍 신호를 공급하고, 시스템 버스(25)상의 타이밍용 기본 시간 H, 시간 L 및 위상 클럭신호들을 공급한다. 중재회로(71)는 명령기 및 응답기 요구 신호들을 수신하고, 시스템 버스(25)에 대한 액세스를 요구하는 노드들간의 콘플릭트를 중재하며, 명령기 및 응답기 요구들에 대해 상기 언급된 큐를 유지한다. 중재회로(71)는 또한 클럭(95)에 어느 제어 신호들을 공급한다.
B. 인터록 동작 설명
간단히 상술된 바와 같이, 다수의 상이한 형태의 트랜잭션이 버스(25)상에 허용된다. 각 경우, 트랜잭션은 하나의 노드로부터 또 다른 노드로의 하나 이상의 분리 전송으로 구성된다. 응답기 노드가 하나 이상의 버스사이클 동안 명령 전송을 성공적으로 수신할때, 그것은 전송의 각 사이클 후에 제2버스 사이클 처음에 인식 확인을 발생시킨다. 그러한 인식 신호는 본래 전송에 포함된 명령의 성공적 실행을 나타내는 것이 아니라 단지 소정 응답기 노드에서의 입력큐에서 전송이 성공적으로 실려진 것을 나타낸다. 본 발명에 관련된 트랜잭션은 이하 간단히 설명되겠다.
명령기 노드에 대한 어드레스 공간 영역을 관리하는 응답기 노드에서의 특정 위치로부터 4바이트, 8바이트, 16바이트 또는 32바이트 블록으로 데이타를 이동시키게끔 판독 트랜잭션이 사용된다. 바람직한 실시예에서 메모리 및 I/O 동작은 공통 어드레스 공간에 관련된다. 응답기 노드는 메모리 노드, 프로세서 노드, 또는 I/O노드일 수 있다.
인터록 판독 트랜잭션은 판독 트랜잭션과 유사하다. 그러나, 인터록 판독 트랜잭션의 정확한 효과는 이후 상세히 설명되는 방식으로 응답기 노드에서의 록 태그 상태에 좌우된다. 록 태그는 어드레스 공간에서의 위치 또는 위치 그룹에 대한 액세스를 방지한다. 록 태그의 효과는 금속제 "블랙보드"에 나타나는 것으로서 시스템(20)의 어드레스 공간을 보이게 함으로써 이해될 수 있다. 록 태그는 어드레스 공간 "블랙 보드" 상의 위치 또는 위치 그룹의 상부에 제거 가능하게 놓여진 자기 태그와 같이 동작한다. 인터록 판독 트랜잭션에서 특정된 어드레스 공간에서의 위치가 이미 록 태그로 카바될 경우, 즉 그 특정 어드레스 공간이 "록"될 경우, 응답기 노드는 "록"된 응답 메시지로 인터록 판독 요구에 응답하고 복귀되는 데이타는 없다. 이것은 인터록 판독 명령에 특정된 어드레스 공간에서의 위치가 액세스 가능하지 않다는 것을 명령기에 나타낸다. 이 록된 응답 메시지는 응답기 노드가 인터록 판독 명령을 서비스한 후 명령기에 전송되고, 그후 응답기 노드는 버스(25)에 대한 액세스를 얻을 수 있다. 따라서, 명령기는 인터록 판독 트랜잭션의 명령 전송후 비특정 시간에 록된 응답 메시지를 수신한다.
그 특정 위치가 록 되지 않을 경우, 즉 록 태그와 관련되지 않을 경우, 인터록 판독 명령에 특정된 어드레스에 기억된 정보는 인터록 판독 명령을 발생시킨 명령기노드에 응답 메시지로 복귀된다. 또한, 응답기 노드는 인터록 판독명령에 특정된 어드레스 공간에서의 위치에 록 태그를 부착시켜 뒤이은 인터록 판독 명령에 대한 어드레스 공간에서의 특정 위치로의 액세스를 부정한다.
언록 기입 트랜잭션은 인터록 판독 트랜잭션에 대한 보족 관계이다. 명령기 노드가 판독-수정-기입 동작에서 판독 및 수정 위치를 성공적으로 완료할 경우, 그것은 인터록 판독 명령에 의해 일시적으로 록된 어드레스 공간에서의 위치를 언록시켜야 한다. 명령기는 특정 위치 안으로 적절히 수정 데이타를 기입하기 위해 어드레스 공간에서의 특정 위치에 대한 언록 기입 트랜잭션을 수행함으로써 이 동작을 수행한다. 응답기 노드는 어드레스 공간을 언록하고 요구된 데이타를 기입함으로써 언록 기입 명령을 처리한다. 이어서, 록 태그가 상세히 설명되는 방식으로 클리닝된다.
인터록 판독 명령 전송중에 버스(25)를 통하여 전송된 메시지는 64데이타 라인상의 데이타를 포함한다. 그 데이타는 4비트 명령 필드, 예를들어 메모리(39)로부터 프로세서 노드(31)로 전송되는 워드의 수를 명세하는 2비트 길이 필드 및, 데이타가 판독되게끔 요구되는 메모리(39)에서의 어드레스 위치를 명세하는 30비트 어드레스 필드를 포함한다. 인터록 판독 명령중에 정보를 이송하는 시스템 버스(25)의 다른 라인은 명령전송을 나타내는 4비트 기능 코드를 이송하는 4기능 라인, 인터록 판독 명령을 개시시킨 명령기 노드를 식별하는 6비트 코드를 이송하는 6ID라인 및 3패리티 라인을 포함한다.
간단히 상술된 바와 같이, 시스템 버스(25)는 송신기에 의해 버스상에 실린 정보의 성공적인 수신을 나타내기 위해 송신기에 의해 사용되는 응답신호를 포함한다. 바람직한 실시예에서, 응답 신호는 3개의 동일한 와이어드 OR확인(CNF)라인을 포함한다. 3가지 라인은, 각 명령에 응답하여 응답기가 무엇을 행하였는가를 명령기가 정확히 아는 것이 버스 트랜잭션의 보전성에 대해 매우 중요하므로, 특히 인터록 명령 또는 I/O레지스터에 대한 기입의 경우 제공된다. 따라서, 수신기는 3가지 CNF라인 모두를 어서트함으로써 인식(ACK)지시를 전송하거나 3가지 CNF라인 모두를 어서트하지 않음으로서 무인식(NACK)신호를 전송하겠다. 3가지 CNF라인 모두가 동일 논리 레벨에서 수신기에 의해 수신되지 않을 경우 참 CNF상태를 결정하기 위해 에러 정정 논리부가 수신기에 구성된다.
ACK 확인은 응답기가 하나의 명령 전송 사이클로부터의 정보를 허용했다는 것을 나타내거나, 명령기가 하나의 응답 메시지 사이클로부터의 정보를 허용했다는 것을 나타낸다. ACK확인을 발생시킨 판독 명령 전송 사이클은 응답기가 어느 나중 시간에 판독 응답 메시지를 복귀한 것을 나타낸다.
CNF 라인상에 복귀된 NACK확인은 명령 전송의 버스사이클로부터 정보를 수신기가 허용하지 않았다는 것을 나타낸다. 이것은 다음 3가지 원인으로 될 수 있다 : (1) 패리티 에러가 시스템 버스(25)상에 발생되었다. (2) 예컨대 수신기의 입력 큐가 찼을 때 수신기가 명령을 일시적으로 허용할 수 없다. (3) 특정 어드레스에 대응하는 응답기 노드가 없다.
버스 사이클에 대응하는 확인 지시는 버스사이클후 제2사이클의 처음에서 수신기 노드에 의해 CNF라인에 실린다.
인터록 판독 트랜잭션의 실시예가 제6도를 참조하여 설명되겠다. 제6도 상부에서의 수평축은 버스(25)상의 연속버스 사이클을 나타낸다. 제6도 좌측에 따라서 수직으로 보여지는 레이블은 버스(25)내에 포함된 라인 그룹, 즉 기능 라인, 데이타 라인, ID라인, 확인라인 및 중재라인을 나타낸다. 제6도의 수평 및 수직축에 의해 형성된 매트릭스에서의 엔트리는 특정 버스사이클중에 특정 버스라인상에 나타나는 데이타 형태를 설명한다.
버스 사이클 0에서, 제1명령기 노드 예를들어 제1도의 노드(31)는 중재기(28)에 그것의 CMD REQ중재 요구 라인(중재기(28)에 접속된 지점간 라인중 하나로서 제1도에 도시되어 있음)을 어서트한다.
따라서, 제6도는 사이클 1에서 시스템 버스(25)의 중재 라인상에 존재하는 "cmdr # 1"요구를 나타낸다. 상위 우선 순위의 다른 노드가 버스에 대한 액세스를 동시에 요구하고 있지 않는다면, 프로세서(31)는 사이클 1에서 버스 액세스를 얻고 시스템 버스(25)로 메시지를 전송한다.
사이클 1중에 버스(25)의 기능 라인상에 실린 정보는 버스상의 정보가 명령(cmd)정보인 것을 나타낸다. 버스(25)의 데이타 라인상에 실린 데이타는 인터록 판독 트랜잭션으로서 현재 트랜잭션을 식별하고 데이타가 프로세서(31)로 복귀되는 메모리(39)에서의 어드레스를 특정하는 명령 및 어드레스(c/a)데이타로 이루어진다. 버스 사이클 1중에 ID 라인은 버스(25)상에 현재 전송하고 있는 프로세서(명령기/cmdr)노드(31)의 식별 코드를 포함한다.
버스 사이클 2중에, 현재의 인터록 판독 트랜잭션과 관련하여 버스(25)상에 실린 정보는 없다.
인터록 판독 트랜잭션 개시후의 2개의 사이클(즉 소정시간)인 버스 사이클 3의 처음에서 메모리 노드(39)는 버스 사이클 1중에 전송된 명령 전송을 수신한 ACK확인을 전송한다. 이어서, 메모리(39)는 그것의 입력큐에 명령 메시지를 위치시킨다.
버스 사이클 3의 종료에서 인터록 판독 트랜잭션에서의 제1전송이 종료된다. 버스(25)상의 트랜잭션의 펜디드 특성으로 인하여, 요구된 정보가 메모리(39)로부터 프로세서(31)로 복귀되는 시간이 정확히 정의되지 않는다. 응답 시간은 요구 정보를 처리하기 위해 메모리(39)에 의해 요구된 시간 길이와, 다른 노드에 의해 발생된 버스(25)상의 추가 교통량을 처리하기 위해 시스템 버스에 필요한 시간량에 좌우된다. 인터록 판독 트랜잭션의 두전송간 시간의 비특정 특성이 제6도에서 버스 사이클 3 및 4사이의 점선으로 표시되어 있다. 따라서, 버스사이클 4 내지 7을 통하여 발생하는 후속 정보가 제6도에 의해 표시되지만, 이것은 단지 인터록 판독 트랜잭션에 포함된 타이밍의 특정 실시이며 그러한 트랜잭션의 제2전송이 버스(25)의 어느 후속 사이클에서 발생할 수 있다는 것을 알아야겠다.
메모리(39)는 그것의 입력 큐로부터 인터록 판독 전송 메시지를 제거하고 전송에 포함된 어드레스 정보를 검사함으로써 인터록 판독 명령을 처리한다. 그 정보는 더욱 완전히 설명되기 위해 록 태그에 기억된 어드레스값에 비교된다. 인터록 판독 전송의 기억된 어드레스값과 어드레스 정보가 일치될 경우, 이것은 소정 어드레스 위치가 이전 인터록 판독 명령에 의해 록 되었다는 것을 나타낸다. 이어서, 메모리(39)는 응답 메시지에 필요한 다른 정보와 함께 "록"기능 코드를 포함하는 록된 응답 메시지를 메모리 노드(39)의 출력 큐에서 발생시킨다.
인터록 판독 전송 어드레스 정보와의 록 태그에 기억된 어드레스 값의 비교가 "히트"를 생성하지 않을 경우, 다시 말하면 전송된 어드레스가 어느 기억된 어드레스에 대응하지 않을 경우, 메모리 노드(39)는 기능 라인에 대한 "양호 판독 데이타"(grdo)와 같은 유효 판독 응답 노드, 데이타 라인에 대한 특정 어드레스 위치의 내용 및, ID라인에 대한 인터록 판독 명령을 개시시킨 명령기 노드의 명령기 식별 코드로 이루어진 응답 메시지를 구성한다. 이 응답 메시지는 메모리 노드(39)의 출력 큐로 로드된다.
메모리(39)가 더욱 완전히 설명될 방식으로 인터록 판독 트랜잭션을 처리하고 그 출력큐내의 응답 메시지를 발생시켰을 때, 메모리(39)는 중재기(28)에 대한 RES REQ 요구라인(제1도에 도시된 또다른 지점간 라인)을 어서트한다. 따라서, 중재라인은 버스사이클 4에서 제6도에 도시된 바와 같이 응답기 요구(resp)지시를 이송한다. 이때, 상위 우선순위를 다른 노드가 갖지 않는다고 가정하면, 중재기(28)는 버스사이클 5중에 버스(25)에 대한 액세스를 메모리(39)에 허용한다. 메모리(39)는 시스템 버스(25)의 기능 라인에 "양호 판독 데이타"(grdo)신호를 포함하는 응답 메시지를 전송하고, 프로세서(31)로부터 그것으로의 초기 전송의 어드레스 필드에 의해 특정된 메모리 위치로부터 시스템 버스(25)의 데이타 라인을 통하여 8바이트(즉 64비트) 데이타를 전송하며, 인터록 판독 요구를 처음 발생시킨 명령기 즉 프로세서(31)와 복귀 데이타를 결합시키기 위해 버스(25)의 ID 라인에 프로세서(31)의 ID를 전송한다.
버스 사이클 6중에, 이 인터록 판독 트랜잭션에 관련된 교통량은 시스템 버스(25)상에 나타나지 않는다. 끝으로, 인터록 판독 트랜잭션은 프로세서(31)가 버스(25)의 확인 라인에 ACK확인을 전송할때 버스 사이클 7에서 종결된다.
메모리에서의 동일 특정 위치에 대한 제2판독 트랜잭션은 제6도의 사이클 8-15에서 도시된 바와 같이 버스상에 데이타가 나타나게 할 것이다. 사이클 8에서, 제2명령기(Cmdr #2)는 중재기(28)에 대한 명령기 요구를 개시시킨다. 버스사이클 9-12는 사이클 1-4와 동일한 교통량을 버스(25)상에 발생시킨다. 그러나, 수신된 인터록 판독 명령의 처리시, 메모리(39)는 록태그에 기억된 어드레스 값과 인터록 판독 명령으로 전송된 어드레스와의 일치를 발견한다. 따라서, 예컨대 사이클 13에서 버스(25)의 기능 라인상에 LOC응답이 존재한다. 버스 사이클 14 및 15는 사이클 6 및 7과 동일하다.
C. 프로세서(31)의 설명
제7도를 참조하면, 프로세서(31)내의 노드 명세 논리부(65)에 대한 더욱 상세한 블록도가 도시되어 있다. 프로세서 노드(31)는 모든 노드가 그렇듯이 버스 인터페이스 회로(64)를 포함한다. 또한, 프로세서 노드(31)는 프로세서 논리부(202)를 포함한다. 제7도에 도시된 바와 같이 프로세서 논리부(202)는 본 기술 분야에 숙련된 자에게 잘 알려진 방식으로 소프트 웨어를 실행하는데 필요한 중앙처리장치(CPU)회로를 포함한다. 또한, 프로세서 논리부(202)는 필요한 응용 기능을 실행할 뿐만 아니라 시스템 버스(25)를 통한 전송을 제어하기 위해 시스템(20)에 의해 요구될 때 명령 및 어드레스 정보를 발생시킨다.
또한, 프로세서 노드(31)는 버스인터페이스 회로(64)로부터 수신된 시스템 버스(25)의 기능, 데이타, ID 및 패리티 라인상의 정보를 기술상 공지된 방식으로 그 신호들에 대한 패리티 검사를 수행하기 위해 모니터링하는 패리티 에러 검사회로(204)를 포함한다. 검출된 패리티 에러는 신호라인(206)상에 패리티 에러 지시를 발생시키겠다.
ID라인상의 정보는 비교기 회로(207)에 의해 모니터링 되며, 비교기 회로(207)에는 장착 캐비넷에서 프로세서(31)의 위치에 의해 결정되는 백 플레인상의 하드와이어드 접속부(210)로부터의 프로세서(31)의 식별 코드가 또한 공급된다. 비교기(207)로부터의 비교 결과는 인식 확인 발생기(208)에 패리티 에러 신호 라인(206)상의 정보와 함께 공급된다.
패리티 에러가 검출되지 않고 응답 메시지에 대한 버스(25)를 통하여 수신된 ID코드가 프로세서(31)의 ID코드와 일치할 경우, 프로세서(31)로 향해진 응답 전송의 각 사이클 후 제2버스 사이클 처음에 인식 지시 발생기(208)에 의해 ACK확인이 버스(25)의 CNF라인을 통하여 전송된다.
버스(25)의 기능 및 데이타 라인들상의 정보는 버스 인터페이스(64)를 통하여 응답 디코더(212)에 공급된다. 디코더(212)는 버스(25)를 통한 메시지가 프로세서(31)에 대해 의도될 때 비교기(207)에 의해 인에이블 된다. 이것은 비교기(207)로부터의 비교 결과에 의해 결정된다. 디코더(212)가 비교기(207)에 의해 인에이블될 경우, 디코더(212)는 시스템 버스(25)의 기능라인들로부터 기능코드를 추출하고, 어느 기능 코드의 경우에는 적절한 행위를 위해 버스(25)의 라인으로부터의 명령 및 데이타 정보를 프로세서 논리부(202)에 공급한다.
프로세서(31)가 버스(25)상의 트랜잭션을 개시시키고자 할 때, 명령, 어드레스 및 데이타 정보가 접속부(210)로부터 공급된 이 노드의 ID와 함께 명령 발생기(214)에 공급된다. 명령 발생기(214)는 명령 전송 메시지를 준비하고, 프로세서(31)가 명령 메시지를 전송하기 위해 버스(25)에 대한 액세스를 요구하는 것을 중재기(28)(제7도에는 도시 생략)에 지시하기 위해 노드 CMD REQ중재라인(216)을 어서트한다. 중재 시스템을 사용하면, 본래의 인터록 판독 전송후 비특정 시간에 중재기(28)가 프로세서(31)에 대한 버스 액세스를 허용한다.
액세스가 허용되면, 명령 발생기(214)는 버스 인터페이스(64)로 하여금 명령 발생기(214)로부터 명령 메시지를 시스템버스(25)로 전송하게 한다.
인터록 판독 명령이 향해지는 응답기 노드는 인터록 판독 명령 전송후 2사이클 동안 인식확인을 발생시킨다. 특히 제7도에 도시된 바와 같이), 명령 발생기(214)는 명령 전송의 각 사이클이 시스템 버스(25)를 통하여 프로세서(31)에 의해 전송된 후 정확히 2버스 사이클 동안 CNF 버스라인 상의 ACK 확인 존재를 검출하기 위해 CNF라인을 모니터링한다.
ACK확인의 존재검출 고장으로 인해, 바람직한 실시예에서는 이전 명령의 재전송으로 이루어진 적절한 정정 행위가 발생된다. 그 전송이 종료될 때, 응답기 노드는 인터록 판독 명령을 처리하고 시스템 버스(25)상에 응답 메시지를 복귀시킨다. 시스템 버스(25)상의 교통량 및 큐 길이로 인한 불확실성으로 인해, 응답기 노드는 명령 전송후 비특정 시간에 응답 메시지를 발생시키겠다.
D. 메모리(39)의 설명
제8도는 응답기 노드로서 기능을 할 수 있는 메모리(39)의 블록도를 도시하고 있다. 제8도에 도시될 수 있는 바와 같이, 메모리(39)는 명령 디코드와 어드레스 및 패리티 검사회로(300)를 포함한다. 회로(300)는 버스 기능, 어드레스 및 ID라인들에 접속되고, 공지된 방식으로 패리티 검사를 수행한다. 또한 회로(300)는 버스 어드레스 라인들상의 정보를 레지스터(302)로부터 공급될 때 메모리(39)에 의해 제공된 어드레스 공간의 한계와 비교하고, 그 비교결과를 어드레스 부한 라인(301)상에 공급한다. 버스(25)를 통하여 수신된 어드레스 정보가 메모리(39)에 의해 제공된 어드레스 공간 영역내에 있고 패리티 에러가 발생되지 않았을 경우, 회로(300)에 접속된 인식 발생기(304)가 메모리(39)에 대해 향해진 전송 사이클 후 제2사이클의 처음에 3가지 CNF라인 모두를 어서트함으로써 ACK확인을 발생시킨다.
본 발명에 따르면, 메모리가 명령기 노드로부터의 인터록 판독 명령을 수신하기 위한 수단을 포함한다. 바람직하게는, 메모리는 인터록 판독 명령 개시에 뒤이은 소정시간에 명령기의 노드로 인식확인을 전송하기 위한 수단을 포함한다. 또한 바람직하게는, 그러한 수단은 명령 메시지에 뒤이은 소정수의 버스 사이클후 인식 지시를 프로세서노드에 전송하기 위한 인식수단을 구비한다. 여기서 구현되는 바와 같이, 그러한 수단은 버스 인터페이스(64), 입력 큐(306), 회로(300), 어드레스 레지스터회로(302), 인식 지시 발생기(304) 및 메모리(39)내부로의 CNF 라인을 구비한다. 입력 큐(306)는 버스(25)를 통하여 고속으로 수신된 메시지를 메모리(39)의 비교적 저속의 논리부로 인해 그러한 메시지가 행해지게 될 때까지 기억되게 한다. 입력 큐(306)는 버스(25)상의 메시지에 나타나는 어드레스 정보가 메모리(39)에 대한 어드레스 공간 한계내에 있을 때 버스(25)로부터의 메시지를 기억시키게끔 인에이블되며, 이것은 어드레스 부합신호(301)에 의해 결정된다.
본 발명에 따르면, 메모리는 입력 큐로부터 기억된 메시지를 제거하고 그 메시지로부터 인터록 판독 및 언록 기입 명령과 어드레스 데이타를 발생시키기 위한 명령 디코더 수단을 구비한다. 여기서 구현되는 바와 같이 그러한 수단은 디코더(308)를 구비한다. 입력 큐(306)의 출력은 디코더(308)에 공급되며 디코더(308)는 입력 큐(306)내에 기억된 메시지로부터 어드레스 및 명령 정보를 추출한다. 디코더(308)가 여러 명령을 디코드하기 위해 다중 지시를 공급하고 일련의 병렬 신호 라인상에 어드레스 정보를 공급하지만, 디코더(308)의 어드레스 및 명령 출력이 명백히 하기 위해 라인(309,311)으로 제8도에 각각 도시되어 있다.
본 발명에 따르면, 메모리(39)는 정보를 기억하기 위한 기억수단을 포함한다. 여기서 구현되는 바와 같이 기억 수단은 메모리 어레이(312)를 포함한다. 기술상 공지된 바와 같이, 어레이(312)에 공급된 판독 및 기입 명령들로 특정될 수 있는 어드레스에 의해 식별된 메모리 어레이(312)내의 복수의 불연속 위치에 정보가 기억된다.
본 발명에 따르면, 메모리(39)는 기억 수단과 결합되고 언록 상태와 록상태 사이에서 동작가능한 록 수단을 포함하는데, 이 록 수단은 언록 상태에서 기억 수단에 대한 액세스를 허용하고 록 상태에서 기억수단에 대한 액세스를 부정하기 위한 수단이다. 바람직하게는, 록 수단은 록 제어기 수단을 포함하는데, 이 록 제어기 수단은 디코더 수단으로부터의 인터록 판독 명령 및 어드레스 데이타에 응답하여, 인터록 판독 어드레스가 록 기억 레지스터에서 벌써 나타나지 않을 경우 록 기억 레지스터내에 인터록 판독 어드레스 데이타를 위치시키고, 록 기억 레지스터에 기억된 데이타에 대응하는 메모리 어레이 어드레스 위치를 록 상태에서 위치시키며, 디코더 수단으로부터의 언록 기입 제어 및 어드레스 데이타에 응답하여, 록 기억 레지스터에 기억된 언록 기입 데이타에 대응하는 메모리 어레이 어드레스 위치를 언록 상태에서 위치시키고, 인터록 판독 제어 데이타에 응답하여, 인터록 판독 어드레스 데이타에 의해 특정된 메모리 어레이 어드레스 위치 상태에 대응하는 록 상태 신호를 발생시킨다. 바람직하게는, 록 제어기 수단은 응답 메시지가 프로세서 노드에 의해 성공적으로 수신되지 않을 경우 언록 상태에 대한 메모리 어레이 어드레스 위치를 복원시키기 위한 수단을 구비한다. 여기서 구현되는 바와 같이 그러한 수단은 록 제어기(310)를 구비한다.
또한, 본 발명은 명령 수단을 포함하는데, 이 명령 수단은 프로세서 노드중 하나로부터의 인터록 판독 명령에 응답하여, 록 수단의 상태를 나타내는 록 상태 지시를 발생시키고 록 수단을 언록 상태에서 록 상태로 스위칭하며, 언록 기입 명령에 응답하여, 수정된 정보를 특정 위치에 기억시키고 록 수단을 록 상태에서 언록 상태로 스위칭한다. 여기서 구현되는 바와 같이 명령 수단은 록 제어기(310) 및 메모리 어레이(312)를 구비한다.
이후 상세히 설명될 로킹 구조를 수행하는 록 제어기(310)에 어드레스 및 명령 정보가 공급된다. 또한, 메모리 어레이(312)에 디코더(308)로부터의 어드레스 및 명령 정보가 공급된다. 메모리 어레이(312)는 판독 및 기입 명령에 응답하여, 디코더(308)로부터 수신된 어드레스 정보에 의해 특정된 어레이(312)내의 위치로 데이타를 판독/기입한다.
본 발명에 따르면, 메모리(39)는 인터록 판독 명령의 개시에 뒤이은 비 특정 시간에, 인터록 판독 명령을 발생시킨 프로세서 노드에 록 상태 지시를 포함하는 록 상태 메시지를 전송하기 위한 상태 응답 수단을 포함한다. 바람직하게는, 응답 발생기는 언록 상태에 록 수단이 있을 때 특정 위치의 내용을 포함하는 제1메시지 형태 및 록수단이 록 상태에 있을 때 그 특정 위치의 무용성을 나타내는 제2메시지 형태를 발생시키기 위한 응답수단을 구비한다. 여기서 구현되는 바와 같이, 상태 응답 수단은 응답 발생기(316) 및 출력 큐(318)를 구비한다.
제어기(310)로부터의 록 상태 신호(314) 및 메모리 어레이(312)로부터의 메모리 데이타는 이후 상세히 설명될 출력 응답 메시지를 발생시키는 응답 발생기(316)에 공급된다. 발생기(312)로부터의 응답 메시지는 상술된 중재 처리를 통하여 메모리(39)가 버스에 대한 액세스를 얻을 때까지 기억시키기 위해 출력 큐(318)에 공급된다.
응답 발생기(316)는 (312)로부터 수신된 데이타, 제어기(310)로부터 수신된 록 상태 신호(314) 및 디코더(308)로부터 수신된 명령 및 ID정보에 따라서 응답 메시지를 준비한다. 발생기(316)에 의해 준비된 응답 메시지는 메모리(39)가 요구된 데이타를 공급하게끔 허용되는 지의 여부에 따라서 두가지 형태중 하나가 된다. 응답되고 있는 명령이 논인터록 판독 명령일 경우나, 명령이 인터록 판독 명령이고 록 상태 신호(314)가 어서트되지 않을 경우, 응답 발생기(316)는 메모리(312)내의 특정위치의 요구된 내용을 포함하는 제1형태의 메시지를 준비한다. 그러나, 명령이 인터록 판독 명령이고 록 상태 라인(314)이 어서트될 경우, 응답 발생기(316)는 인터록 판독 명령의 특정 어드레스가 록 상태에 있다는 것과 요구된 데이타가 그 수신된 인터록 판독 명령에 응답하여 메모리(39)에 의해 전송된 응답 메시지에 구성되지 않는다는 것을 나타내는 기능 라인상의 "록"코드를 갖는 제2형태의 메시지를 준비한다.
본 발명에 따르면, 메모리(39)는 응답 발생기(316)로부터의 응답 메시지를 기억시키기 위한 그리고 프로세서(31)에 의한 대응 명령의 개시에 뒤이은 비특정 시간에 버스(25)에 대한 액세스를 얻은 후 프로세서 노드(31)로 기억된 응답 메시지를 전송하기 위한 출력 큐 수단을 포함한다. 여기서 구현되는 바와 같이 그러한 수단은 출력 큐(318)를 포함한다. 발생기(316)가 응답메시지를 컴파일 했을 경우, 그것은 출력 큐(318)에 공급된다. 출력큐(318)는 메모리(39)가 버스(25)에 대한 액세스를 요구한다는 것을 버스 인터페이스(64)에 신호한다. 응답 메시지는 그러한 액세스가 얻어질때까지 비특정 시간 동안 출력 큐(318)에 기억된다.
메모리(39)가 버스(25)에 대한 액세스가 허용될 때, 출력 큐(318)에 포함된 응답 메시지는 명령을 본래 발생시킨 명령기 노드에 전송하기 위해 시스템 버스(25)상에 실린다. 명령기 노드에 의해 본래 전송된 명령의 실행을 메모리(39)가 종료할 시간을 알지 못하고 또한 메모리(39)가 요구된 데이타 또는 록 상태 정보를 공급하기 위해 버스(25)에 대한 액세스를 얻을 시간이 불확실하므로, 인터록 판독 명령에 대응하는 록 상태 정보가 본래의 인터록 판독 명령의 개시에 뒤이은 비특정 시간에 명령기 노드에서 버스(25)의 기능 라인상에 나타난다.
명령기 노드가 성공적인 인터록 판독 명령후 응답기 노드에 의해 발생된 응답 메시지를 수신하지 못할 경우, 명령기 노드는 인식 지시를 발생시키지 않는다. 응답기노드가 응답 메시지로부터의 확인을 수신하지 못하거나 인식하지 못할 경우, 인터록 판독 명령에 의해 세트된 록 비트를 클리어시킨다.
본 발명에 따르면, 메모리(39)는 제1 및 제2형태의 응답 메시지를 선택적으로 발생키기기 위한 수단을 포함하는데, 제1방식의 데이타 메시지는 록 수단이 언록 상태에 있을 때 기억된 정보를 포함하고 제2방식의 데이타 메시지는 록 수단이 록 상태에 있을 때 정보의 무용성을 나타낸다. 여기서 구현되는 바와 같이, 그러한 수단은 록 상태 라인(314), 응답 발생기(316), 디코더(308) 및 록 제어기(310)를 포함한다.
E. 록제어기(310)의 설명
제9도를 참조하면 록 제어기(310)의 더욱 상세화된 블록도가 도시되어 있다. 본 발명에 따르면, 록 수단은 인터록 판독 명령이 방지되는 메모리 어레이(39)내의 어드레스에 대응하는 선택된 어드레스를 수신하기 위한 록 태그 수단을 포함한다. 여기서 구현되는 바와 같이 록 태그 수단은 논리 제어기(350)와 함께 록 제어기(310)를 구성하는 논리 제어기(352b,352c,352d)를 포함한다. 보다 많거나 보다 적은 록 태그가 특정 응용에 따라서 구성될 수 있다는 것을 알아야겠다. 록 태그들(352a-d)은 구성 및 동작면에서 동일하다. 명백하게 하기 위해 록태그(352a)에 대해서만 상세한 회로가 도시되어 있다.
각 록 태그(352a-d)는 시스템(20)의 어드레스 공간에서의 위치에 대응하는 값을 기억하기 위한 기억레지스터(354)를 포함한다. 레지스터(354)는 그것에 저장된 값을 나타나게 하는 출력단자(356)를 포함한다. 또한 레지스터(354)는 어드레스 라인(309)에 접속된 입력단자(360) 및 인에이블 단자(358)를 포함한다. 인에이블 단자(358)를 작동 시키면, 레지스터(354)가 어드레스 라인(309)상에 실린 신호를 로드하게 된다.
레지스터 출력단자(356)는 비교기(368)의 한 입력단자(366)에 접속된다. 비교기(368)는 어드레스 라인(309)에 접속된 또 다른 입력단자(370)를 갖는다. 비교기(368)의 출력단자(372)는 2입력 AND게이트(374)의 한 입력단자에 공급되는 "부합"신호를 구성한다. AND게이트(374)의 다른 입력단자는 명령라인(311)의 언록기입라인(380)에 접속된다. AND게이트(374)의 출력단자는 래치(382)의 리셋 단자에 접속된다.
래치(382)의 출력 단자는 2입력 AND게이트(386)의 한 입력단자(387)에 공급되는 "록"신호를 구성한다. AND게이트(386)와 다른 입력단자는 비교기(368)의 부합신호 출력에 접속된다. AND게이트(386)의 출력은 어드레스 라인상에 나타나는 어드레스가 록 태그(352)에 의해 "록"된 것을 나타내는 "히트"신호를 구성한다.
록 태그(352a)의 최종 구성 소자는 4입력 AND게이트(388)이다. AND게이트(388)의 한 입력은 메모리 노드(39)에 의해 현재 처리되고 있는 명령이 인터록 판독 명령인 것을 나타내는 명령 라인(311)의 라인(390)에 접속된다. AND게이트(388)의 제2입력은 록 태그(352a)의 동작을 적당히 게이트하고 레이스 상태를 방지하기 위해 클럭 신호(389)에 접속된다. AND게이트(388)의 제3입력은 이하 설명될 논리제어기(350)의 "할당"단자에 접속된다. AND게이트(388)의 제4입력 단자는 반전된 록 상태 신호(314)에 접속된다. AND게이트(388)의 출력단자는 레지스터(354)의 인에이블 입력(358) 및 래치(382)의 세트 단자에 접속된다.
논리제어기(350)는 유휴 록 태그를 선택하기 위해 선택 인코더로서 기능을 하는 록 태그 할당회로(392)를 포함한다. 록 태그(352a-d)로부터의 록 비트의 상태에 의해 할당회로(392)는 록 태그가 자유 상태라는 것을 결정하며, 선택된 록 태그에 대해 "할당"신호를 발생시킴으로써 로킹 기능을 제공하기 위해 유효 록 태그중 하나를 할당한다.
록 태그 모두가 현재 할당될 경우, "모두 비지" 출력 신호가 5입력 OR게이트(394)의 한 입력에 공급된다. OR게이트(394)의 다른 입력들에는 록 태그(352a-d)의 각 "히트"신호가 공급된다.
인터록 판독 명령을 처리하는 록 제어기(310)의 동작이 이제 설명되겠다. 어드레스 라인(309)상의 어드레스 값이 레지스터(354)에 기억된 어드레스 값과 일정하게 비교된다. 레지스터(354)에 기억된 어드레스 값중 어느값도 어드레스 라인(309)상에 나타나는 어드레스값과 같지 않을 경우, 부합 신호가 어서트되지 않고, "히트"신호가 어서트되지 않는다. 회로(392)의 "모두 비지"신호가 또한 어서트되지 않는다고 가정하면, OR게이트(394)의 입력은 액티브되지 않고 록 상태 라인(314)은 세트되지 않는다. 이어서, 메모리 어레이(312) (제8도)는 특정 위치의 내용을 응답 발생기(316)에 공급한다. 록 상태 라인(314)의 논어서트로 인해 응답 발생기(316)가 제1형태의 응답 메시지를 발생시키게 되는데, 이 제1형태의 응답 메시지에서는 "양호 판독 데이타"코드가 응답 메시지 비트에 세트되며, 이 응답 메시지 비트가 그것을 요구한 명령 코드에 버스(25)의 기능 라인을 통하여 전송된다.
이제 록 상태 라인(314)의 반전된 값이 AND게이트(388)에 공급된다. 회로(392)는 록 태그(352a-d)의 할당 신호중 하나를 공급한다. 인터록 판독이 처리되고 있으므로, 인터록 판독 라인(390)이 디코더(308)(제8도)에 의해 세트된다. 따라서, 클럭신호(389)가 활성화될때, 록 태그(352a)의 AND게이트(388)가 레지스터(354)를 인에이블시키게끔 활성화된다. 어드레스 라인(309)상에 나타나는 어드레스 값이 록 태그(352a)의 레지스터(354)에 기억된다. 또한 AND게이트(388)의 활성화로 인해 래치(382)가 세트되어 록 태그(352)의 단자(384)의 록 비트를 어서트시킨다. 록 태그(352)의 레지스터(354)내에 포함된 특정 위치에 대한 액세스는 후속 인터록 판독 명령으로 이제 부정된다.
록된 위치에 대한 후속 인터록 판독 명령은 다음의 동작을 발생시킨다. 어드레스 라인(309)상에 나타나는 어드레스 값은 록 태그(352a)의 레지스터(354)에 기억된 값과 동일하다. 록 태그(352a)의 단자(372)에서의 부합 신호가 따라서 세트된다. 록 태그(352a)에 대한 단자(384)에서의 록 비트가 이전 인터록 판독 동작으로부터 세트되므로, AND게이트(386)의 양 입력이 이제 액티브되어 록 태그(352a)의 히트 신호가 어서트되게 된다. 이것은 또한 록 상태 라인(314)을 활성화시키기 위해 OR게이트(394)를 활성화시킨다. 록상태 라인(314)의 활성화로 인해, 응답 발생기(316)(제8도)가 제2형태의 응답 메시지를 발생시키게 되며, 이 응답 메시지에는 록된 응답 코드가 메시지의 기능 비트상에 세트된다.
록 비트를 클리어시키는 언록 기입 명령의 동작이 이제 설명되겠다. 이전 록된 위치에 대한 언록 기입 명령은 록태그의 레지스터(354)에 기억된 값과 동일한 값을 어드레스 라인(309)상에 실리게 한다. 예를들어, 록 태그(352a)에 의해 록된 위치를 언록시키기 위해 언록기입 명령이 전송되었다고 하자. 어드레스 라인(309)상에 어드레스값이 나타날때, 비교기(368)의 출력은 부합 신호를 세트시킨다. 언록 기입 라인(391)이 이때 또한 하이가 되므로, AND게이트(374)가 활성화되어 래치(382)가 출력단자(384)에서 록 비트 신호를 리셋시키게 된다. AND게이트(386)는 활성화가 해제되어 OR게이트(394)의 입력단자로부터 록 태그(352)에 대한 액티브 히트 신호를 제거한다. 언록 기입 명령으로 전송된 데이타가 이어서 메모리내의 특정 위치에 기입된다.
인터록 판독 명령후 비특정 시간에 시스템 버스를 통하여 데이타 전송으로서 프로세서에 공급된 록 상태 메시지를 제공함으로써, 본 발명은 전송 인식과 록 상태 전송 기능들을 분리시켜서, 록 상태 정보가 소정 시간 또는 전용 록 상태 라인들을 통하여 전송되게끔 요구되었을 경우 필요한 경비 및 복잡성 없이 다중 록 비트의 사용을 위해 제공한다. 또한, 본 발명은 시스템 버스로부터 분리된 버스들 및 아답터를 통하여 시스템에 접속된 노드들로부터 록 상태정보를 얻게한다.
상기 설명을 통하여, 록된 메모리 즉 어드레스 공간은 "위치"로 기재되었다. 단일 인터록 판독 명령 또는 언록 기입 명령이 어드레스에서의 위치들의 영역을 각각 록 및 언록할 수 있으며 단지 단일 위치만을 록 및 언록하지 않도록, 레지스터에 기억된 각 어드레스는 어드레스들의 영역을 구성할 수도 있다.
본 발명의 버스인터페이스 회로 및 인터페이스에서 본 발명의 사상 및 범위를 벗어나지 않고 여러가지 수정 및 변화가 이루어질 수 있다는 것을 본 기술 분야에 숙련된 자는 명백히 알 수 있겠다. 부속 청구범위에는 그러한 수정 및 변화가 포함되어 있다.

Claims (7)

  1. 펜디드 버스상의 배타적 판독-수정-기입 동작을 실행하기 위한 장치로서, 상기 동작은 특정위치에 기억된 정보를 검색하고 후속인터록 판독 명령에 의해 상기 기억 정보에 대한 액세스를 제한하기 위한 인터록 판독 명령과, 상기 특정 위치에 정보를 기억시키고 상기 기억된 정보에 대한 액세스를 복원시키기 위한 언록 기입명령을 포함하는 상기 펜디드 버스상의 일련의 상이한 트랜잭션을 갖는데, 명령기 노드로부터 인터록 판독명령을 수신하기 위한 수단과; 상기 특정 위치를 포함하는데, 정보를 기억시키기 위한 기억수단과; 상기 기억수단과 결합되고 언록 상태와 록 상태 사이에서 동작가능한데, 언록 상태에서 상기 기억수단에 대한 액세스를 허용하고 록 상태에서 상기 기억 수단에 대한 액세스를 부정하기 위한 록 수단과; 상기 인터록 판독 명령에 응답하여, 상기 록 수단의 상태를 나타내는 록 상태 지시를 발생시키고, 언록상태로부터 록 상태로 상기 록 수단을 스위칭하며, 언록 기입 명령에 응답하여, 상기 특정 위치에서 수정된 정보를 기억시키고 록 상태로부터 언록 상태로 상기 록 수단을 스위칭하기 위한 명령수단과; 상기 인터록 판독 명령을 발생시킨 상기 명령기 노드에 상기 인터록 판독 명령의 개시에 뒤이은 비 특정 시간에 상기 록 수단 상태에 대응하는 록 상태 메시지를 전송하기 위한 상태 응답 수단을 구비하는 것을 특징으로 하는 펜디드 버스상의 배타적 판독-수정-기입 동작 실행장치.
  2. 제1항에 있어서, 상기 인터록 판독 명령의 수신을 나타내는 인식 확인 신호를 상기 인터록 판독 명령의 개시에 뒤이은 소정 시간에 상기 명령기 노드에 전송하기 위한 수단을 구비하는 것을 특징으로 하는 장치.
  3. 제1항에 있어서, 상기 상태 응답 수단은 제1 및 제2형태의 응답 메시지를 선택적으로 발생시키기 위한 수단을 구비하는데, 상기 제1형태의 데이타 메시지는 상기 록 수단이 상기 언록 상태에 있을 때 상기 기억된 정보를 포함하고, 제2형태의 데이타 메시지는 상기 록 수단이 상기 록 상태에 있을 때 상기 정보의 무용성을 나타내는 것을 특징으로 하는 장치.
  4. 반복되는 버스 사이클 동안 데이타를 전파하는 펜디드 버스상의 프로세서 노드로부터의 배타적 판독-수정-기입 동작을 실행하기 위한 장치로서, 상기 동작이 메모리 노드내의 특정위치에 기억된 정보를 검색하고 후속 인터록 판독 명령에 의해 상기 기억된 정보에 대한 액세스를 제한하기 위해 록 상태에서 상기 특정 위치를 설정하기 위한 인터록 판독 명령과, 상기 특정위치에 정보를 기억시키고 상기 기억된 정보에 대한 액세스를 복원시키기 위해 언록 상태에서 상기 특정위치를 설정하기 위한 언록 기입 명령을 포함하는 상기 펜디드 버스상의 일련의 상이한 트랜잭션을 가지며, 상기 트랜잭션들은 상기 버스를 통하여 전송된 명령 및 응답 메시지를 통하여 수행되는데, 명령 메시지에 뒤이은 소정 수의 버스사이클 후 상기 프로세서 노드에 인식 지시 신호를 전송하기 위한 인식 수단과; 상기 프로세서 노드로부터 상기 인터록 판독 명령 메시지 및 언록 기입 명령 메시지를 수신하기 위한 입력 큐 수단과; 상기 입력 큐 수단으로부터 기억된 명령을 제거하고 상기 명령으로부터 인터록 판독 및 언록 기입 제어 및 어드레스 데이타를 발생시키기 위한 명령 디코더 수단과; 상기 특정 위치를 포함하는 복수의 어드레스 위치를 가지며, 상기 디코더 수단으로부터의 제어 및 어드레스 데이타에 응답하여 상기 정보를 기억시키고 검색하기 위한 메모리 어레이와; 상기 메모리 어레이내의 어드레스 위치에 대응하는 메모리 어드레스 값을 기억시키기 위한 위치를 갖는 록 기억 레지스터와; 상기 디코더 수단으로부터의 상기 인터록 판독 명령 및 어드레스 데이타에 응답하여, 상기 인터록 판독 어드레스가 상기 록 기억 레지스터에 벌써 나타나지 않을 경우 상기 록 기억 레지스터에 상기 인터록 판독 어드레스 데이타를 위치시키고, 상기 록 기억 레지스터에 기억된 상기 데이타에 대응하는 메모리 어레이 어드레스 위치를 록 상태에서 설정하며, 상기 디코더 수단으로부터의 언록 기입 제어 및 어드레스 데이타에 응답하여, 상기 록 기억 레지스터에 기억된 상기 언록 기입 데이타에 대응하는 메모리 어레이 어드레스 위치를 언록 상태로 설정하고, 상기 인터록 판독 제어 데이타에 응답하여, 상기 인터록 판독 어드레스 데이타에 의해 특정된 메모리 어레이 어드레스 위치의 상태에 대응하는 록 상태 신호를 발생시키기 위한 록 제어기 수단과; 상기 록 상태 신호에 응답하여, 상기 특정 어드레스가 언록 상태에 있을 경우, 상기 입력 큐로부터 검색된 명령의 어드레스 데이타에 의해 특정된 메모리 어드레스의 내용을 포함하는 응답 메시지를 발생시키고, 상기 특정 어드레스가 록 상태에 있을 경우, 록된 응답을 포함하는 응답 메시지를 발생시키기 위한 발생기 수단과; 상기 발생기 수단으로부터의 응답메시지를 기억시키고, 상기 프로세서 노드에 의해 대응 명령의 개시에 뒤이은 비특정 시간에 상기 버스에 대한 액세스를 얻은 후 상기 프로세서 노드에 상기 기억된 응답 메시지를 전송하기 위한 출력 큐 수단을 구비하는 것을 특징으로 하는 반복 버스 사이클 동안 데이타를 전파하는 펜디드 버스상의 프로세서 노드로부터의 배타적 판독-수정-기입 동작 실행장치.
  5. 제4항에 있어서, 상기 록 제어기 수단은 상기 응답 메시지가 상기 프로세서 노드에 의해 성공적으로 수신되지 않을 경우 언록 상태에서 상기 메모리 어레이 어드레스 위치를 복원시키기 위한 수단을 구비하는 것을 특징으로 하는 장치.
  6. 펜디드 버스상의 배타적 판독-수정-기입 동작에 응답하기 위한 방법으로서, 상기 동작은 특정위치에 기억된 정보를 검색하고 후속 인터록 판독 명령에 의해 상기 기억된 정보에 대한 액세스를 제한하기 위한 인터록 판독 명령과, 상기 특정 위치에 정보를 기억시키고 상기 기억된 정보에 대한 액세스를 복원시키기 위한 언록 기입명령을 포함하는 상기 펜디드 버스상의 일련의 상이한 트랜잭션을 갖는데, 명령기 노드로부터 인터록 명령을 수신하는 단계와; 록 표시자를 검사하여 상기 록 표시자가 언록 상태에 있을 경우 상기 록 표시자를 언록 상태로부터 록 상태로 스위칭하는 단계와; 상기 록 표시자 상태에 대응하는 록 상태 신호를 상기 인터록 판독 명령의 개시에 뒤이은 비특정 시간에 상기 명령기 노드에 전송하는 단계와; 수정된 정보를 상기 특정위치에 기억시키고, 언록 기입명령의 수신시 록상태로부터 언록 상태로 상기 록 표시자를 스위칭하는 단계를 포함하는 것을 특징으로 하는 펜디드 버스상의 배타적 판독-수정-기입 동작에 응답하기 위한 방법.
  7. 제6항에 있어서, 상기 인터록 판독 명령의 수신을 나타내는 인식 확인 신호를 상기 명령의 개시에 뒤이은 소정 시간에 상기 명령기 노드에 전송하는 단계를 아울러 포함하는 것을 특징으로 하는 방법.
KR1019880701787A 1987-05-01 1988-04-25 다중 프로세서 컴퓨터 시스템에서 다중 록 표시자를 실시하기 위한 방법 및 장치 KR910007750B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US044,466 1987-05-01
US07/044,466 US4949239A (en) 1987-05-01 1987-05-01 System for implementing multiple lock indicators on synchronous pended bus in multiprocessor computer system
PCT/US1988/001299 WO1988008584A1 (en) 1987-05-01 1988-04-25 Method and apparatus for implementing multiple lock indicators in a multiprocessor computer system

Publications (2)

Publication Number Publication Date
KR890702145A KR890702145A (ko) 1989-12-23
KR910007750B1 true KR910007750B1 (ko) 1991-09-30

Family

ID=21932544

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019880701787A KR910007750B1 (ko) 1987-05-01 1988-04-25 다중 프로세서 컴퓨터 시스템에서 다중 록 표시자를 실시하기 위한 방법 및 장치

Country Status (8)

Country Link
US (1) US4949239A (ko)
EP (1) EP0344216B1 (ko)
JP (1) JPH0642236B2 (ko)
KR (1) KR910007750B1 (ko)
AU (1) AU600830B2 (ko)
CA (1) CA1304828C (ko)
DE (1) DE3882977T2 (ko)
WO (1) WO1988008584A1 (ko)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT1227711B (it) * 1988-11-18 1991-05-06 Caluso Torino Sistema multiprocessore di elaborazione dati a risorse distribuite condivise e prevenzione di stallo.
US5142676A (en) * 1988-12-28 1992-08-25 Gte Laboratories Incorporated Separate content addressable memories for storing locked segment addresses and locking processor identifications for controlling access to shared memory
US5175837A (en) * 1989-02-03 1992-12-29 Digital Equipment Corporation Synchronizing and processing of memory access operations in multiprocessor systems using a directory of lock bits
US5182809A (en) * 1989-05-31 1993-01-26 International Business Machines Corporation Dual bus microcomputer system with programmable control of lock function
JPH0387958A (ja) * 1989-06-30 1991-04-12 Nec Corp バスロツク制御方式
US5101479A (en) * 1989-07-21 1992-03-31 Clearpoint Research Corporation Bus device for generating and responding to slave response codes
US5353416A (en) * 1989-10-25 1994-10-04 Zenith Data Systems Corporation CPU lock logic for corrected operation with a posted write array
US5136714A (en) * 1989-12-04 1992-08-04 International Business Machines Corporation Method and apparatus for implementing inter-processor interrupts using shared memory storage in a multi-processor computer system
US5168570A (en) * 1989-12-29 1992-12-01 Supercomputer Systems Limited Partnership Method and apparatus for a multiple request toggling priority system
US5499356A (en) * 1989-12-29 1996-03-12 Cray Research, Inc. Method and apparatus for a multiprocessor resource lockout instruction
US5381536A (en) * 1989-12-29 1995-01-10 Cray Research, Inc. Method and apparatus for separate mark and wait instructions for processors having multiple memory ports
US5276847A (en) * 1990-02-14 1994-01-04 Intel Corporation Method for locking and unlocking a computer address
US5269005A (en) * 1991-09-17 1993-12-07 Ncr Corporation Method and apparatus for transferring data within a computer system
US5359715A (en) * 1991-09-16 1994-10-25 Ncr Corporation Architectures for computer systems having multiple processors, multiple system buses and multiple I/O buses interfaced via multiple ported interfaces
US5430860A (en) * 1991-09-17 1995-07-04 International Business Machines Inc. Mechanism for efficiently releasing memory lock, after allowing completion of current atomic sequence
US5491799A (en) * 1992-01-02 1996-02-13 Amdahl Corporation Communication interface for uniform communication among hardware and software units of a computer system
JP3515142B2 (ja) * 1992-06-11 2004-04-05 セイコーエプソン株式会社 データ転送制御装置
GB2273586A (en) * 1992-12-21 1994-06-22 Hanover Restricting access to shared memory during updates.
US5666515A (en) * 1993-02-18 1997-09-09 Unisys Corporation Information processing system having multiple modules and a memory on a bus, where any module can lock an addressable portion of the memory by sending retry signals to other modules that try to read at the locked address
US5574862A (en) * 1993-04-14 1996-11-12 Radius Inc. Multiprocessing system with distributed input/output management
JP3360933B2 (ja) * 1994-06-01 2003-01-07 富士通株式会社 情報処理システムにおける記憶制御方法および記憶制御装置
US5594875A (en) * 1994-07-01 1997-01-14 Digital Equipment Corporation Method and apparatus to provide pended transaction on a non-pended system bus
US5701422A (en) * 1995-12-13 1997-12-23 Ncr Corporation Method for ensuring cycle ordering requirements within a hierarchical bus system including split-transaction buses
US5872980A (en) * 1996-01-25 1999-02-16 International Business Machines Corporation Semaphore access control buffer and method for accelerated semaphore operations
EP0887741B1 (en) * 1997-06-27 2005-04-13 Bull S.A. Interface bridge between a system bus and a local bus for controlling at least one slave device, such as a ROM memory
US6421751B1 (en) * 1998-11-23 2002-07-16 Advanced Micro Devices, Inc. Detecting a no-tags-free condition in a computer system having multiple outstanding transactions
US6611891B1 (en) 1998-11-23 2003-08-26 Advanced Micro Devices, Inc. Computer resource configuration mechanism across a multi-pipe communication link
US6397225B1 (en) * 1998-12-23 2002-05-28 Advanced Micro Devices, Inc. Messaging system with protocol independent message format
US6529983B1 (en) 1999-11-03 2003-03-04 Cisco Technology, Inc. Group and virtual locking mechanism for inter processor synchronization
US6681341B1 (en) 1999-11-03 2004-01-20 Cisco Technology, Inc. Processor isolation method for integrated multi-processor systems
US6892237B1 (en) 2000-03-28 2005-05-10 Cisco Technology, Inc. Method and apparatus for high-speed parsing of network messages
US6505269B1 (en) 2000-05-16 2003-01-07 Cisco Technology, Inc. Dynamic addressing mapping to eliminate memory resource contention in a symmetric multiprocessor system
US6922745B2 (en) * 2002-05-02 2005-07-26 Intel Corporation Method and apparatus for handling locks
JP4576323B2 (ja) * 2004-12-10 2010-11-04 富士通株式会社 データ転送装置およびデータ転送方法
US7315910B2 (en) * 2005-06-16 2008-01-01 Oracle International Corporation Techniques for handling lock-related inconsistencies
US8994533B2 (en) * 2006-11-30 2015-03-31 Patent Navigation, Inc. Conditional RFID
US8001328B2 (en) * 2008-01-29 2011-08-16 International Business Machines Corporation Method and process for expediting the return of line exclusivity to a given processor through enhanced inter-node communications
US9560134B1 (en) * 2012-06-27 2017-01-31 Netapp, Inc. Storage array side write locking
US20170111286A1 (en) * 2015-10-15 2017-04-20 Kabushiki Kaisha Toshiba Storage system that includes a plurality of routing circuits and a plurality of node modules connected thereto

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3398405A (en) * 1965-06-07 1968-08-20 Burroughs Corp Digital computer with memory lock operation
US3528061A (en) * 1968-07-05 1970-09-08 Ibm Interlock arrangement
FR2056894A1 (ko) * 1969-07-31 1971-05-07 Cii
US3761883A (en) * 1972-01-20 1973-09-25 Ibm Storage protect key array for a multiprocessing system
US3997875A (en) * 1973-01-08 1976-12-14 U.S. Philips Corporation Computer configuration with claim cycles
US3916384A (en) * 1973-06-15 1975-10-28 Gte Automatic Electric Lab Inc Communication switching system computer memory control arrangement
JPS5319501B2 (ko) * 1973-11-21 1978-06-21
GB1536853A (en) * 1975-05-01 1978-12-20 Plessey Co Ltd Data processing read and hold facility
US3993981A (en) * 1975-06-30 1976-11-23 Honeywell Information Systems, Inc. Apparatus for processing data transfer requests in a data processing system
US4000485A (en) * 1975-06-30 1976-12-28 Honeywell Information Systems, Inc. Data processing system providing locked operation of shared resources
US4075692A (en) * 1976-01-02 1978-02-21 Data General Corporation Data path configuration for a data processing system
US4055851A (en) * 1976-02-13 1977-10-25 Digital Equipment Corporation Memory module with means for generating a control signal that inhibits a subsequent overlapped memory cycle during a reading operation portion of a reading memory cycle
US4099243A (en) * 1977-01-18 1978-07-04 Honeywell Information Systems Inc. Memory block protection apparatus
JPS53105139A (en) * 1977-02-24 1978-09-13 Nec Corp Dynamic main memory controller
US4115854A (en) * 1977-03-28 1978-09-19 International Business Machines Corporation Channel bus controller
US4161778A (en) * 1977-07-19 1979-07-17 Honeywell Information Systems, Inc. Synchronization control system for firmware access of high data rate transfer bus
JPS596415B2 (ja) * 1977-10-28 1984-02-10 株式会社日立製作所 多重情報処理システム
US4296466A (en) * 1978-01-23 1981-10-20 Data General Corporation Data processing system including a separate input/output processor with micro-interrupt request apparatus
US4384322A (en) * 1978-10-31 1983-05-17 Honeywell Information Systems Inc. Asynchronous multi-communication bus sequence
JPS55134470A (en) * 1979-03-12 1980-10-20 Digital Equipment Corp Data processing system
US4315310A (en) * 1979-09-28 1982-02-09 Intel Corporation Input/output data processing system
US4313161A (en) * 1979-11-13 1982-01-26 International Business Machines Corporation Shared storage for multiple processor systems
US4481573A (en) * 1980-11-17 1984-11-06 Hitachi, Ltd. Shared virtual address translation unit for a multiprocessor system
US4407016A (en) * 1981-02-18 1983-09-27 Intel Corporation Microprocessor providing an interface between a peripheral subsystem and an object-oriented data processor
JPS58107977A (ja) * 1981-12-22 1983-06-27 Toshiba Corp 記憶装置へのアクセス方式
US4480307A (en) * 1982-01-04 1984-10-30 Intel Corporation Interface for use between a memory and components of a module switching apparatus
JPS58140862A (ja) * 1982-02-16 1983-08-20 Toshiba Corp 相互排他方式
US4490785A (en) * 1982-05-07 1984-12-25 Digital Equipment Corporation Dual path bus structure for computer interconnection
US4574350A (en) * 1982-05-19 1986-03-04 At&T Bell Laboratories Shared resource locking apparatus
US4698753A (en) * 1982-11-09 1987-10-06 Texas Instruments Incorporated Multiprocessor interface device
JPS59106021A (ja) * 1982-12-10 1984-06-19 Oki Electric Ind Co Ltd バス構成方式
US4543628A (en) * 1983-01-28 1985-09-24 Digital Equipment Corporation Bus for data processing system with fault cycle operation
US4891749A (en) * 1983-03-28 1990-01-02 International Business Machines Corporation Multiprocessor storage serialization apparatus
JPS6010384A (ja) * 1983-06-29 1985-01-19 Nec Corp デ−タ処理装置
US4587609A (en) * 1983-07-01 1986-05-06 Honeywell Information Systems Inc. Lockout operation among asynchronous accessers of a shared computer system resource
US4660169A (en) * 1983-07-05 1987-04-21 International Business Machines Corporation Access control to a shared resource in an asynchronous system
US4706190A (en) * 1983-09-22 1987-11-10 Digital Equipment Corporation Retry mechanism for releasing control of a communications path in digital computer system
US4763249A (en) * 1983-09-22 1988-08-09 Digital Equipment Corporation Bus device for use in a computer system having a synchronous bus
AU564271B2 (en) * 1983-09-22 1987-08-06 Digital Equipment Corporation Retry mechanism for releasing control of a communications path in a digital computer system
US4626843A (en) * 1983-09-27 1986-12-02 Trw Inc. Multi-master communication bus system with parallel bus request arbitration
JPS60107170A (ja) * 1983-11-15 1985-06-12 Nec Corp マルチプロセッサ制御方式
US4604694A (en) * 1983-12-14 1986-08-05 International Business Machines Corporation Shared and exclusive access control
US4709326A (en) * 1984-06-29 1987-11-24 International Business Machines Corporation General locking/synchronization facility with canonical states and mapping of processors

Also Published As

Publication number Publication date
CA1304828C (en) 1992-07-07
US4949239A (en) 1990-08-14
JPH02500783A (ja) 1990-03-15
KR890702145A (ko) 1989-12-23
DE3882977D1 (de) 1993-09-09
EP0344216A1 (en) 1989-12-06
JPH0642236B2 (ja) 1994-06-01
DE3882977T2 (de) 1994-03-24
AU600830B2 (en) 1990-08-23
EP0344216B1 (en) 1993-08-04
WO1988008584A1 (en) 1988-11-03
AU1716888A (en) 1988-12-02

Similar Documents

Publication Publication Date Title
KR910007750B1 (ko) 다중 프로세서 컴퓨터 시스템에서 다중 록 표시자를 실시하기 위한 방법 및 장치
KR920010915B1 (ko) 멀티 프로세서 컴퓨터 시스템의 다중록 표시기 운영방법 및 장치
US4937733A (en) Method and apparatus for assuring adequate access to system resources by processors in a multiprocessor computer system
KR930000992B1 (ko) 멀티 프로세서 컴퓨터 시스템상의 인터록 판독 트랜잭션을 개시하기 위한 방법 및 장치
KR910007644B1 (ko) 버스에의 액세스 결정 장치 및 방법
US5111424A (en) Lookahead bus arbitration system with override of conditional access grants by bus cycle extensions for multicycle data transfer
EP0346398B1 (en) Apparatus and method for a node to obtain access to a bus
US5034883A (en) Lockhead bus arbitration system with override of conditional access grants by bus cycle extensions for multicycle data transfers
US5341510A (en) Commander node method and apparatus for assuring adequate access to system resources in a multiprocessor
JP2504552B2 (ja) マルチプロセッサコンピュ―タシステムにおいてシステムリソ―スへの充分なアクセスを確保するコマンダノ―ド方法及び装置

Legal Events

Date Code Title Description
A201 Request for examination
G160 Decision to publish patent application
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee