KR910007750B1 - Method and apparatus for implementing multigle lock indications in a multiprocessor computer system - Google Patents

Method and apparatus for implementing multigle lock indications in a multiprocessor computer system 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
Korean (ko)
Other versions
KR890702145A (en
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/en
Application granted granted Critical
Publication of KR910007750B1 publication Critical patent/KR910007750B1/en

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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Bus Control (AREA)
  • Multi Processors (AREA)
  • Hardware Redundancy (AREA)
  • Control By Computers (AREA)
  • Vehicle Body Suspensions (AREA)

Abstract

내용 없음.No content.

Description

[발명의 명칭][Name of invention]

다중 프로세서 컴퓨터 시스템에서 다중 록 표시자를 실시하기 위한 방법 및 장치Method and apparatus for implementing multi-lock indicator in multiprocessor computer system

[도면의 간단한 설명][Brief Description of Drawings]

제1도는 본 발명을 사용하는 데이타 처리 시스템의 블록도이다.1 is a block diagram of a data processing system using the present invention.

제2도는 제1도 데이타 처리 시스템에서의 노드의 블록도이다.2 is a block diagram of a node in the FIG. 1 data processing system.

제3도는 제1도 데이타 처리 시스템에서 사용된 타이밍 신호들을 도시한 타이밍도이다.3 is a timing diagram illustrating timing signals used in the FIG. 1 data processing system.

제4도는 제2도 노드에서의 데이타 인터페이스(61)의 블록도이다.4 is a block diagram of the data interface 61 at the node of FIG.

제5도는 제1도 데이타 처리 시스템에서의 중재기의 블록도이다.5 is a block diagram of an arbiter in the FIG. 1 data processing system.

제6도는 인터록 판독 트랜잭션 중에 제1도 시스템 버스상에 나타나는 신호들을 도시한 타이밍도이다.FIG. 6 is a timing diagram illustrating signals that appear on the FIG. 1 system bus during an interlock read transaction.

제7도는 제1도 데이타 처리 시스템에서의 프로세서 노드의 블록도이다.7 is a block diagram of a processor node in the FIG. 1 data processing system.

제8도는 제1도 데이타 처리 시스템에서의 메모리 노드의 블록도이다.8 is a block diagram of a memory node in the FIG. 1 data processing system.

제9도는 제8도 메모리 노드에서의 록 제어기의 블록도이다.9 is a block diagram of a lock controller in the FIG. 8 memory node.

[발명의 상세한 설명]Detailed description of the invention

[발명의 배경][Background of invention]

본 발명은 컴퓨터 시스템에 관한 것으로서, 더욱 구체적으로 말하면 펜디드(pended)버스에 의해 상호 접속된 다중 프로세서를 갖는 컴퓨터 시스템에 관한 것이다.TECHNICAL FIELD The present invention relates to a computer system, and more particularly to a computer system having multiple processors interconnected by a suspended bus.

기존의 컴퓨터 시스템은 고성능의 전체 계산력을 얻기 위해 공통버스에 의해 상호 접속된 다중 프로세서, 메모리 자원 및 입/출력(I/O)장치를 가질 수 있다. 그러한 구성으로 초당 수백만개의 명령을 실행할 수 있는 고성능 시스템에 제공될 수 있다. 그러나, 다중 프로세서들을 상호 접속하면 판독-수정-기입(RMW) 동작으로서 알려진 명령 시퀀스를 수행하는 것이 요구될 때 어려움이 발생될 수 있다. RMW 동작에서 하나의 프로세서는 메모리 위치로부터 데이타를 검색하고, 그 데이타에 대한 동작을 수행하며, 그 수정된 데이타를 다시 원래의 메모리 위치로 기입한다. 하나의 프로세서가 하나의 메모리 위치에 대해 RMW 동작을 개시했을 경우 데이타 보전성에 영향을 주는 예측할 수 없는 결과가 발생할 수 있으며, 제2프로세서는 제1프로세서의 RMW동작의 "판독"부와 "기입"부 사이의 기간에서 동일 메모리 위치에 대해 RMW 동작을 시도한다.Existing computer systems may have multiple processors, memory resources, and input / output (I / O) devices interconnected by a common bus in order to achieve high performance overall computing power. Such a configuration can provide a high performance system capable of executing millions of instructions per second. However, interconnecting multiple processors can cause difficulties when it is desired to perform an instruction sequence known as a read-modify-write (RMW) operation. In an RMW operation, one processor retrieves data from a memory location, performs operations on that data, and writes the modified data back to the original memory location. If one processor initiates an RMW operation on one memory location, unpredictable results affect data integrity, and the second processor writes and reads the RMW operation of the first processor. In the inter-term period, an RMW operation is attempted for the same memory location.

다중 프로세서들로 하여금 동일 메모리 위치에서 RMW동작을 수행하지 못하게 하기 위한 한 방식은 "인터록 판독"능력을 제공하는 것이다. 이것은 록 비트와 같은 "록"표시자를 사용하며, 이 록 비트는 RMW동작의 "판독"부가 수행될때 세트되고 RMW 동작의 "기입"부가 종료된 후 리셋된다. 록 비트가 세트될 때 메모리내의 위치에서 RMW동작을 개시하고자 하는 제2프로세서에 의해, 제2프로세서가 인터록 판독 명령을 발생한 후 소정 수의 버스 사이클 동안 메모리가 "비지" 또는 "재시행"확인에 의해 록 상태 정보를 복귀시키게 된다. 비지 확인은 제2인터록 판독 명령이 메모리에 의해 허용되지 않았다는 것을 프로세서에 가리킨다.One way to prevent multiple processors from performing RMW operations at the same memory location is to provide interlock read capability. It uses a block indicator, such as the lock bit, which is set when the read part of the RMW operation is performed and reset after the write portion of the RMW operation is finished. The second processor, which attempts to initiate an RMW operation at a location in memory when the lock bit is set, causes the memory to be idled or retried for a predetermined number of bus cycles after the second processor issues an interlock read command. The lock status information is returned. Busy acknowledgment indicates to the processor that the second interlock read command was not allowed by the memory.

인터록 판독 동작은 RMW 동작을 각각 수행하고자 하는 다중프로세서들에 의해 야기된 문제를 경감시킨다. 프로세서들은 예를들어 라운드로빈 알고리즘을 사용하는 중재 처리에 의해 그러한 인터록 판독 동작중에 버스에 대한 유효 액세스가 부여된다. 그러나, 그럼에도 아직도 성능 장애가 발생할 수 있다. 예를들면, 어느 버스 교통 상태하에서 특정 프로세서가 록된 메모리 위치와 반복적으로 마주칠 수도 있으며, 적시에 메모리 자원에 대한 필요한 액세스를 얻을 수 없겠다. 그러한 문제들은 메모리 노드에 다중 록 비트를 제공함으로써 감소될 수 있는데, 각 록 비트는 전체 메모리 노드보다 메모리 노드 일부분과 관련된다. 그러한 다중 록 비트는 인터록 판독 동작후 메모리의 보다 작은 부분을 구속하는, 메모리 노드상의 인터록된 판독 동작의 보다 정교한 "입도(granularity)"를 제공하겠다. 이 해결책은 또한 RMW 동작의 보다 높은 성공률을 허용하고, 따라서 시스템 처리 능력을 향상시킨다. 그러나, 종래 기술의 펜디드 버스 다중 프로세서 시스템에서 다중 록 비트를 수행하면, 록 상태 정보를 검출하고 전송하기 위한 회로가 허용할 수 없을 정도로 복잡하게 된다.The interlock read operation alleviates the problems caused by the multiple processors wishing to perform the RMW operation respectively. Processors are granted effective access to the bus during such interlock read operations, for example by arbitration processing using a round robin algorithm. Nevertheless, however, performance failure may still occur. For example, under certain bus traffic conditions, a particular processor may repeatedly encounter a locked memory location and may not be able to obtain the necessary access to memory resources in a timely manner. Such problems can be reduced by providing multiple lock bits to the memory node, where each lock bit is associated with a portion of the memory node rather than the entire memory node. Such multiple lock bits will provide a more sophisticated granularity of interlocked read operation on the memory node, constraining a smaller portion of memory after the interlock read operation. This solution also allows for a higher success rate of RMW operation and thus improves system throughput. However, performing multiple lock bits in the prior art pending bus multiprocessor system makes the circuitry for detecting and transmitting lock state information unacceptably complex.

상기 설명이 프로세서 노드, 메모리 노드 및 I/O 노드를 활용하는 컴퓨터 시스템의 동작을 강조하였지만, 그러한 시스템의 더욱 일반적인 설명은 명령기 노드, 즉 버스상에 트랜잭션을 개시시키는 노드 및 응답기 노드, 즉 명령기 노드에 의해 개시된 트랜잭션에 응답하는 노드에 관한 것이다. 여러기산에서 단일 디바이스가 명령기 노드나 응답기 노드로서 기능을 할 수 있다.Although the above description emphasizes the operation of a computer system utilizing processor nodes, memory nodes and I / O nodes, a more general description of such a system is a commander node, i.e., a node and a responder node that initiates a transaction on a bus, i. It relates to a node that responds to a transaction initiated by an existing node. In many operations, a single device can function as a commander node or responder node.

각각 상이한 특성을 갖는 소자들이 몇개의 버스를 통하여 상호접속되는 컴퓨터 시스템을 제공하는 것이 바람직하다. 그러나, 이것은 록 상태 정보가 초기 인터록된 판독 명령과의 종래 기술의 펜디스버스 시스템에서 수행하기에는 매우 힘들었다.It would be desirable to provide a computer system in which elements each having different characteristics are interconnected through several buses. However, this was very difficult for lock state information to be performed in the prior art Pendiverse system with a read command that was initially interlocked.

[발명의 개요]Overview of the Invention

본 발명의 제1목적은 다중 록비트를 갖고 록상태 정보를 전송하기 위한 간략회로를 갖는 다중 프로세서 시스템에서 응답기 노드를 제공하는 것이다.It is a first object of the present invention to provide a responder node in a multiprocessor system having multiple lock bits and a simplified circuit for transmitting lock state information.

본 발명의 제2목적은 록 상태 정보가 초기 인터록 판독 명령과의 고정 시간 관계로 전송되지 않는 인터록 판독 동작을 갖는 다중 프로세서 펜디드 버스 컴퓨터에서 응답기 노드를 제공하는 것이다.It is a second object of the present invention to provide a responder node in a multiprocessor pending bus computer having an interlock read operation in which lock state information is not transmitted in a fixed time relationship with an initial interlock read command.

본 발명의 추가의 목적 및 장점은 뒤이은 기재에서 부분적으로 설명되고 그 기재로부터 부분적으로 명백하겠으며, 또는 본 발명의 실시에 의해 교시될 수 있다. 본 발명의 목적 및 장점은 부속 청구 범위에서 특히 지적된 수단 및 조합에 의해 실현될 수 있도 달성될 수 있다.Additional objects and advantages of the invention will be set forth in part in the description which follows and in part will be obvious from the description, or may be taught by the practice of the invention. The objects and advantages of the invention may be achieved even if they can be realized by means and combinations particularly pointed out in the appended claims.

본 발명은 인터록 판독 명령후 소정 시간 동안 인식 확인을 발생시키고 인터록 또는 메시지후 비 특정 시간에 록상태 메시지를 발생시키는 응답기 노드를 제공함으로써 종래 기술의 문제 및 단점을 극복한다.The present invention overcomes the problems and disadvantages of the prior art by providing a responder node that generates an acknowledgment for a predetermined time after an interlock read command and generates a lock status message at a non-specific time after the interlock or message.

본 발명의 원리에 따르면, 펜디드 버스상에 배타적 판독-수정-기입 동작을 실행하기 위한 장치가 제공되는데, 그 동작은 특정 위치에 기억된 정보를 검색하고 후속 인터록 판독 명령에 의해 그 기억된 정보에 대한 액세스를 제한하기 위한 인터록 판독 명령과, 그 특정 위치에 정보를 기억시키고 그 기억된 정보에 대한 액세스를 복원시키기 위한 언록 기입 명령을 포함하는 펜디드 버스상의 일련의 상이한 트랜잭션을 갖는다. 이 장치는 명령기 노드로부터 인터록 판독 명령을 수신하기 위한 수단과; 정보를 기억하기 위한 특정위치를 포함하는 기억 수단과; 기억 수단과 결합되고, 언록 상태에서 기억 수단에 대한 액세스를 허용하고 록 상태에서 기억 수단에 대한 액세스를 부정하기 위한 언록 상태로 록 상태사이에서 동작 가능한 록 수단과; 인터록 판독 명령에 응답하여, 록 수단의 상태를 나타내는 록 상태 표시를 발생시키고 언록 상태로부터 록 상태로 록수단을 스위칭하기 위한 인터록 판독 명령 수단과; 언록 기입 명령에 응답하여, 특정 위치에서 수정된 정보를 기억시키고 록 상태로부터 언록 상태로 록 수단을 스위칭하기 위한 언록 기입 명령 수단과; 인터록 판독 명령을 발생시킨 명령기 노드에 그 인터록 판독 명령에 뒤이은 비 특정 시간에서 록 수단 상태를 포함하는 록 상태 메시지를 전송하기 위한 상태 응답 수단을 구비한다.According to the principles of the present invention, there is provided an apparatus for performing an exclusive read-modify-write operation on a fenced bus, the operation of retrieving information stored at a specific location and by means of a subsequent interlock read command. It has a series of different transactions on the pending bus that includes an interlock read command to restrict access to the data and an unlock write command to store information at that particular location and restore access to the stored information. The apparatus includes means for receiving an interlock read command from the commander node; Storage means including a specific position for storing information; Lock means coupled with the storage means, the lock means operable between the locked state in an unlocked state to allow access to the storage means in the unlocked state and to deny access to the storage means in the locked state; In response to the interlock read command, interlock read command means for generating a lock status indication indicative of the status of the lock means and for switching the lock means from the unlocked state to the locked state; In response to the unlock write command, unlock write command means for storing the modified information at a specific position and for switching the lock means from the locked state to the unlocked state; And status response means for transmitting a lock status message comprising a lock means status at a non-specified time following the interlock read command to the commander node that issued the interlock read command.

또한, 본 발명은 펜디드 버스상에 배타적 판독-수정-기입 동작에 응답하기 위한 방법을 제공하는데, 그 동작은 특정 위치에 기억된 정보를 검색하고 후속 인터러고록 판독 명령에 의해 그 기억정보에 대한 액세스를 제한하기 위한 인터록 판독 명령과, 그 특정 위치에 정보를 기억시키고 그 기억된 정보에 대한 액세스를 복원시키기 위한 언록 기입 명령을 포함하는 펜디드 버스상의 일련의 상이한 트랜잭션을 갖는다. 이 방법은 명령기 노드로부터 인터록 명령을 수신하는 단계와, 인터록 판독 명령의 수신을 나타내는 명령들의 개시에 뒤이은 소정시간에 명령기 노드에 인식 확인을 전송하는 단계와, 록 표시자를 검사하여 록 표시자가 언록 상태에 있을 경우 록 표시자를 언록 상태로부터 록 상태로 스위칭하는 단계와, 록 표시자 상태에 대응하는 록 상태 신호를 인터록 판독 명령의 개시에 뒤이은 비특정 시간에 명령기 노드에 전송하는 단계와, 수정된 정보를 특정 위치에 기억시키고, 언록 기입 명령의 수신시 록 상태로부터 언록 상태로 록 표시자를 스위칭하는 단계를 포함한다.In addition, the present invention provides a method for responding to an exclusive read-modify-write operation on a fenced bus, the operation of which retrieves information stored at a particular location and writes the information to the stored information by a subsequent interlog read command. It has a series of different transactions on the pending bus that includes an interlock read command for restricting access to and an unlock write command for storing information at that particular location and restoring access to the stored information. The method includes receiving an interlock command from the commander node, transmitting an acknowledgment to the commander node at a predetermined time subsequent to the commencement of the command indicating receipt of the interlock read command, checking the lock indicator to indicate the lock. Switching the lock indicator from an unlock state to a lock state if the self is in the unlock state, and transmitting a lock state signal corresponding to the lock indicator state to the commander node at a non-specific time following the initiation of the interlock read command. And storing the modified information in a specific position and switching the lock indicator from the locked state to the unlocked state upon receipt of the unlock write command.

본 명세서에 포함되어 일부분을 구성하는 첨부한 도면들은 본 발명의 일실시예를 예시하는 것이며, 본 기재와 함께 본 발명의 원리를 설명하고 있다.The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate one embodiment of the invention and, together with the description, explain the principles of the invention.

바람직한 실시예의 상세한 설명Detailed description of the preferred embodiment

A. 시스템 개요A. System Overview

제1도는 본 발명을 구현하는 데이타 처리 시스템(20)의 실시예를 도시하고 있다. 시스템(20)의 중심부는 몇개의 프로세서, 메모리 부시스템 및 I/O 시스템간의 통신을 허용하는 동기 버스인 시스템버스(25)이다. 시스템 버스(25)를 통한 통신은 주기적 버스 사이클을 사용하여 동기적으로 발생한다. 시스템 버스(25)에 대한 통상의 버스사이클 시간은 64nsec이다.1 illustrates an embodiment of a data processing system 20 that implements the present invention. At the heart of the system 20 is the system bus 25, which is a synchronous bus that allows communication between several processors, memory subsystems, and I / O systems. Communication over the system bus 25 takes place synchronously using periodic bus cycles. The typical bus cycle time for the system bus 25 is 64 nsec.

제1도에는 시스템 버스(25)가 2개의 프로세서(31,35), 메모리(39), 하나의 I/O인터페이스(41) 및 하나의 I/O장치(51)에 결합된다.In FIG. 1, a system bus 25 is coupled to two processors 31 and 35, a memory 39, one I / O interface 41 and one I / O device 51. In FIG.

데이타 처리 시스템(20)의 바람직한 실시예에서 시스템 버스(25)에 중앙 중재기(28)가 또한 접속된다. 중재기(28)는 시스템버스(25)상의 다른 소자들에 직접 어느 타이밍 및 버스중재 신호들을 공급하고 이들 소자들과 함께 어느 신호들을 공유한다.In a preferred embodiment of the data processing system 20, a central arbiter 28 is also connected to the system bus 25. The arbiter 28 supplies certain timing and bus arbitration signals directly to other devices on the system bus 25 and shares certain signals with these devices.

제1도에 도시된 설치는 바람직한 실시예이며, 본 발명을 한정하는 것으로 반드시 받아들여서는 안되겠다. 예를 들어, I/O장치(53)는 시스템 버스(25)에 직접 결합될 수 있고, 중재기(28)는 본 발명에 대해 설명된 방식으로 동작할 필요는 없다.The installation shown in FIG. 1 is a preferred embodiment and should not be taken as limiting the invention. For example, I / O device 53 may be coupled directly to system bus 25, and arbiter 28 need not operate in the manner described for the present invention.

본 발명을 설명하는데 사용된 용어에서 프로세서(31,35), 메모리(39), I/O 인터페이스(41) 및 I/O장치(51)는 모두 노드를 일컫는다. "노드"는 시스템 버스(25)에 접속되는 하드웨어 소자로서 정의된다.In the terms used to describe the present invention, the processors 31 and 35, the memory 39, the I / O interface 41 and the I / O device 51 all refer to nodes. “Node” is defined as a hardware element connected to the system bus 25.

본 발명을 설명하는데 사용된 용어에 따르면, "신호" 또는 "라인"이란 말은 물리적 와이어의 명칭을 언급하게끔 교체 가능하게 사용된다. "데이타" 또는 "레벨"이란 말은 신호 또는 라인이 취할 수 있는 값을 언급하게끔 사용된다.According to the terminology used to describe the present invention, the term “signal” or “line” is used interchangeably to refer to the name of a physical wire. The term "data" or "level" is used to refer to a value that a signal or line can take.

노드는 시스템 버스(25)를 통하여 다른 노드들과의 전송을 수행한다. "전달"은 공통 송신기 및 공통 중재기를 공유하는 하나이상의 인접사이클이다. 예를 들면, 하나의 노드에 의해 시스템 버스(25)상의 또 다른 노드로부터의 정보를 얻기 위해 개시된 판독 동작은 제1노드로부터 제2노드로의 명령 전송을 요구하며 뒤이어서 제2노드로부터 제1노드로의 하나 이상의 복귀 데이타 전송을 요구한다.The node performs transmissions with other nodes via the system bus 25. “Delivery” is one or more adjacent cycles that share a common transmitter and a common arbiter. For example, a read operation initiated by one node to obtain information from another node on the system bus 25 requires sending a command from the first node to the second node, followed by a first node from the second node. Requires one or more return data transfers to the network.

"트랜잭션"은 시스템 버스(25)상에 수행되는 완전한 논리 태스크로서 정의되며, 하나 이상의 전송을 포함할 수 있다. 예를 들면, 하나 이상의 복귀 데이타 전송으로 이어지는 명령 전송으로 이루어진 판독 동작이 하나의 트랜잭션이다. 시스템 버스(25)의 바람직한 실시예에서, 허용 가능 트랜잭션은 상이한 데이타 길이의 전송을 지지하며, 판독, 기입(마스크된), 인터록 판독, 언록 기입 및 인터럽트 동작을 포함한다. 인터록 판독과 정규 즉 논인터록 판독간의 차이점은 특정 위치에 대한 인터록 판독이 그 위치에 기억된 정보를 검색하고 뒤이은 인터록 판독 명령에 의해 그 기억된 정보에 대한 액세스를 제한하는 점이다. 액세스 제한은 록 메카니즘을 세트시킴으로써 수행된다. 후속 언록 기입 명령은 특정 위치에서 정보를 기억시키고 그 기억된 정보에 대한 액세스를 그 위치에서 록메카니즘을 리셋시킴으로써 복원시킨다. 따라서, 인터록 판독/언록기입 동작은 판독-수정-기입 명령의 형태로 되어 있다.A transaction is defined as a complete logical task performed on the system bus 25 and may include one or more transfers. For example, a read operation consisting of a command transfer followed by one or more return data transfers is a transaction. In a preferred embodiment of the system bus 25, an acceptable transaction supports the transmission of different data lengths and includes read, write (masked), interlock read, unlock write and interrupt operations. The difference between an interlock readout and a regular or non-interlock readout is that an interlock readout for a particular location retrieves the information stored at that location and subsequently restricts access to that stored information by an interlock readout command. Access restriction is performed by setting a lock mechanism. Subsequent unlock write commands restore the information at a particular location and restore access to the stored information by resetting the lock mechanism at that location. Thus, the interlock read / unwrite operation is in the form of a read-modify-write command.

시스템 버스(25)가 "펜디드" 버스이므로, 그것은 응답을 대기하는데 소모되는 버스사이클을 다른 노드들이 사용하게 함으로써 버스 자원의 효율적인 사용을 촉진시킨다. 펜디드 버스에서, 한 노드가 트랜잭션을 개시시킨 후 다른 노드가 그 트랜잭션이 종료되기 전에 버스에 대한 액세스를 가질 수 있다. 따라서 그 트랜잭션을 개시시키는 노드는 전체 트랜잭션 시간동안 버스를 구속하지 않는다. 이것은 버스가 전체 트랜잭션 동안 구속되는 논펜디드 버스와 대조된다. 예컨대, 시스템 버스(25)에서 노드가 판독 트랜잭션을 개시시키고 명령 전송을 이룬 후에, 그 명령 전송이 향해지는 노드는 그 요구된 데이타를 즉시 복귀시킬 수 없다. 이어서, 버스(25)상의 사이클은 판독 트랜잭션의 명령 전송과 복귀 데이타 전송 사이에서 유효하다. 시스템 버스(25)는 다른 노드들로 하여금 그 사이클들을 사용하게끔 한다.Since the system bus 25 is a "pended" bus, it facilitates the efficient use of bus resources by having other nodes use the bus cycle consumed to wait for a response. In a fenced bus, one node may initiate a transaction and then another node may have access to the bus before the transaction ends. Thus, the node initiating the transaction does not bind the bus for the entire transaction time. This is in contrast to the non-pended bus, where the bus is bound during the entire transaction. For example, after a node initiates a read transaction and makes a command transfer on the system bus 25, the node to which the command transfer is directed may not immediately return the requested data. The cycle on bus 25 is then valid between the command transfer of the read transaction and the return data transfer. System bus 25 allows other nodes to use the cycles.

시스템 버스(25)를 사용함에 있어서 노드들 각각은 정보 전송에 영향을 주기 위해 상이한 역활을 취할 수 있다. 그 역할들중 하나는 진행중에 트랜잭션을 개시시킨 노드로서 정의되는 "명령기"이다. 예를들면, 기입 또는 판독 동작에서 명령기는 기입 또는 판독 동작을 요구한 노드이며 반드시 데이타를 송신 또는 수신하는 노드는 아니다. 시스템 버스(25)에 대한 바람직한 프로토콜에서, 또다른 노드가 트랜잭션의 어느 사이클중에 시스템 버스(25)의 소유권을 취할 수 있을지라도 전체 트랜잭션을 통하여 한 노드가 명령기로서 유지된다. 예를들면, 한 노드가 판독 트랜잭션을 명령 전송에 응답하여 데이타 전송중에 시스템 버스(25)의 제어를 갖더라도 그 노드는 버스의 명령기가 되지 못한다. 그대신 이 노드는 "응답기"라 일컫는다.In using the system bus 25, each of the nodes may take a different role to influence the transmission of information. One of its roles is the “commander”, which is defined as the node that initiated the transaction in progress. For example, in a write or read operation, the commander is a node that requested a write or read operation and not necessarily a node that transmits or receives data. In the preferred protocol for the system bus 25, one node is maintained as the commander throughout the entire transaction, although another node may take ownership of the system bus 25 during any cycle of the transaction. For example, even if a node has control of the system bus 25 during a data transfer in response to sending a read transaction, that node will not be a commander on the bus. Instead, this node is called a responder.

응답기는 명령기에 응답한다. 예를들면, 명령기가 노드 A로부터 노드 B로 데이타를 기입하기 위해 기입 동작을 개시시킬 경우, 노드 B는 응답기가 된다. 또한, 데이타 처리 시스템(20)에서 노드는 동시에 명령기 및 응답기가 될 수 있다.The responder responds to the commander. For example, if the commander initiates a write operation to write data from node A to node B, then node B becomes a responder. Also, in the data processing system 20, the nodes can be commanders and responders at the same time.

송신기 및 수신기는 노드들이 개별적인 전송에서 취하는 역할이다. "송신기"는 전송중에 시스템 버스(25)상에 실린 정보 소스인 노드로서 정의된다. "수신기"는 송신기와 보족 관계이며 전송중에 시스템 버스(25)상에 실린 정보를 수신하는 노드로서 정의된다. 판독 트랜잭션중에, 예컨대 명령기는 먼저 명령 전송중에 송신기일 수 있고 이어서 복귀 데이타 전송중에 수신기일 수 있다.The transmitter and receiver are the roles that nodes take on separate transmissions. "Transmitter" is defined as a node which is a source of information carried on the system bus 25 during transmission. “Receiver” is defined as a node that is in a complementary relationship with the transmitter and receives the information carried on the system bus 25 during transmission. During a read transaction, for example, the commander may first be a transmitter during command transmission and then a receiver during return data transmission.

시스템 버스(25)에 접속된 노드가 시스템 버스(25)상에서 송신기로 되는 것이 요구될 때, 그 노드는 중앙 중재기(28)와 그 특정 노드 사이에 접속된 2개의 요구 라인 CMD REQ(명령기 요구) 및 RES REQ(응답기 요구)중 하나를 어서트한다. 일반적으로, 노드는 명령기로 되는 것을 요구하고 그리고 시스템 버스(25)상의 트랜잭션을 개시시키기 위해 CMD REQ라인을 사용하고, 명령기로 데이타 또는 메시지를 복귀시키기 위해 응답기로 되게끔 RES, REQ라인을 사용한다. 보통, 중앙 중재기(28)는 노드가 버스에 대한 액세스를 요구하는 것(즉, 요구 라인이 어서트 되는 것)을 검출한다. 이어서, 중재기는 우선 순위 알고리즘에 따라서 버스(25)에 대한 대응 노드 액세스를 부여하기 위해 그 어서트된 요구라인 중 하나의 응답한다. 바람직한 실시예에서 중재기(28)는 2개의 독립된 원형 큐를 유지하는데, 하나는 명령기 요구이고 다른 하나는 응답기 요구이다. 바람직하게는, 응답기 요구는 명령기 요구보다 상위 우선 순위를 갖고 명령기 요구전에 처리된다.When a node connected to the system bus 25 is required to be a transmitter on the system bus 25, the node has two request lines CMD REQ (commander) connected between the central arbiter 28 and that particular node. Assert) and RES REQ (responder request). In general, a node needs to be a commander and uses the CMD REQ line to initiate a transaction on the system bus 25, and uses the RES and REQ lines to become a responder to return data or messages to the commander. . Normally, the central arbiter 28 detects that the node requires access to the bus (ie, the request line is asserted). The arbiter then responds to one of its asserted request lines to grant corresponding node access to bus 25 according to the priority algorithm. In the preferred embodiment, the arbiter 28 maintains two separate circular queues, one for the commander request and the other for the responder request. Preferably, the responder request has a higher priority than the command request and is processed before the command request.

명령기 요구 라인 및 응답기 요구 라인은 중재 신호들로 고려된다. 제1도에 도시된 바와 같이, 또한 중재신호는 중앙중재기(28)로부터 각 노드로의 지점간 조간부허용 신호, 다중버스 사이클 전송을 수행하기 위한 시스템 버스연장신호 및 예컨대 메모리와 같은 노드가 시스템 버스상에서 교통 상태로 순간적으로 유지될 수 없을 때 새로운 버스 트랜잭션의 개시를 제어하기 위한 시스템 버스 삭제신호를 포함한다.The commander request line and the responder request line are considered arbitration signals. As shown in FIG. 1, the arbitration signal is also a point-to-point interleave permit signal from the central mediator 28 to each node, a system bus extension signal for performing multibus cycle transmission, and a node such as a memory system. It contains a system bus erase signal to control the initiation of a new bus transaction when it cannot be momentarily maintained in traffic on the bus.

시스템 버스(25)를 구성할 수 있는 다른 형태의 신호는 정보 전송 신호, 응답신호, 제어신호, 콘솔/프론트 파넬 신호 및 몇가지 보조 신호를 포함한다. 정보 전송 신호는 데이타 신호, 현재 사이클중에 시스템 버스상에 수행되는 기능을 나타내는 기능 신호, 명령기를 식별하는 식별신호 및 패리티 신호를 포함한다. 응답신호는 일반적으로 데이타 전송의 상태를 송신기에 통제하기 위해 수신기로부터 인식 또는 확인 신호를 포함한다.Other types of signals that may constitute the system bus 25 include information transmission signals, response signals, control signals, console / front panel signals, and some auxiliary signals. The information transmission signal includes a data signal, a function signal representing a function performed on a system bus during the current cycle, an identification signal identifying a commander, and a parity signal. The response signal generally includes an acknowledgment or confirmation signal from the receiver to control the status of the data transmission to the transmitter.

제어 신호는 로우 라인 전압 또는 로우 DC전압을 식별하는 바와 같은 경고 신호, 클럭신호, 초기 설정중에 사용된 리셋신호, 로드고장신호, 유휴 버스사이클중에 사용된 디폴트 신호 및 에러 디폴트 신호를 포함한다. 콘솔/프론트 파넬신호는 시스템 콘솔로 직렬 데이타를 송/수신하기 위한 신호, 전력 공급중에 부트 프로세서의 행위를 제어하기 위한 부트신호, 시스템버스(25)상의 프로세서의 소거 가능 PROM에 대한 수정을 인에이블시키기 위한 신호, 프론트 파넬상의 "운전등"을 제어하기 위한 신호 및 어느 노드상의 논리부를 클럭시키기 위해 배터리 전력을 공급하는 신호를 포함한다. 여분의 신호에 부가하여 보조 신호는 각 노드로 하여금 식별 코드를 형성하게 하는 식별신호를 포함한다.Control signals include warning signals, such as identifying low line voltage or low DC voltage, clock signals, reset signals used during initial setup, load failure signals, default signals used during idle bus cycles, and error default signals. The console / front panel signal enables signals to send and receive serial data to the system console, boot signals to control the behavior of the boot processor during power up, and modifications to the erasable PROM of the processor on the system bus 25. And a signal for supplying battery power for clocking logic on any node. In addition to the redundant signal, the auxiliary signal includes an identification signal that causes each node to form an identification code.

제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 shows an embodiment of a node 60 connected to the system bus 25. Node 60 may be a processor, memory, I / O device, or I / O interface. In the embodiment shown in FIG. 2, node 60 includes a system bus interface 64 that incorporates node-specific logic 65, nodebus 67 and data interface 61 and clock decoder 63. Include. Preferably, data interface 61, clock decoder 63 and node bus 67 are standard components for nodes connected to system bus 25. The node specific logic 65 uses a different integrated circuit than the system bus interface 64, and preferably interfaces with the node bus 67 in addition to the circuits specified by the user to perform the node's specific functions. Includes standard circuitry for In general, data interface 61 is the main logic and electrical interface between node 60 and system bus 25, and clock decoder 63 provides timing signals to node 60 in accordance with a centrally generated clock signal. In turn, the nodebus 67 provides a high speed interface between the data interface 61 and the node specific logic 65.

제2도에 도시된 노드(60) 및 시스템 버스 인터페이스(64)의 바람직한 실시예에서, 클럭 디코더(63)는 시스템 버스(25)상에 실려질 신호를 형성하기 위한 제어회로를 내장하고, 노드 특정 논리부(65) 및 데이타 인터페이스(61)에 대한 타이밍 신호를 얻기 위해 중앙 중재기(28)로부터 수신된 클럭 신호를 처리한다. 클럭 디코더(63)에 의해 얻어진 타이밍 신호가 중앙에 발생된 클럭 신호를 사용하므로, 노드(60)는 시스템 버스(25)와 동기하여 동작하겠다.In the preferred embodiment of node 60 and system bus interface 64 shown in FIG. 2, clock decoder 63 incorporates control circuitry for forming a signal to be carried on system bus 25, and the node The clock signal received from the central arbiter 28 is processed to obtain timing signals for the particular logic 65 and data interface 61. Since the timing signal obtained by the clock decoder 63 uses the clock signal generated at the center, the node 60 will operate in synchronization with the system bus 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개의 인접 부사이클을 나타낸다.3 is a timing diagram showing any one of one bus cycle, a clock signal received by the clock decoder 63 and timing signals generated by the clock decoder 63. FIG. The clock signals received by the clock decoder 63 include a time H signal, a time L signal and a phase signal as shown in FIG. The time H and L signals are the opposite of the base clock signals, and the phase signal is obtained by dividing the base clock signal by three. Timing signals generated by clock decoder 63 include C12, C23, C34, C45, C56 and C61, all of which are shown in FIG. These timing signals required by the data interface 61 (which occur once per bus cycle) are supplied to the data interface 61 and include an equivalent signal for the timing signals supplied to the data interface 61. A series of complete timing signals are buffered and supplied to node specific logic 65. The purpose of the buffering is to ensure that the node specific logic 65 improperly loads the timing signal, thereby not adversely affecting the operation of the system bus interface 64. The clock 63 is a six part cycle for each bus cycle. The clock signal is used to generate a signal, and then the subcycles are used to generate six timing signals CXY, where X and Y represent two adjacent subcycles combined to form one timing signal.

시스템 버스에서 각 노드는 클럭 디코더(63)에 의해 발생된 일련의 대응 타이밍 신호를 갖는다. 시스템을 통하여 노드마다 정확히 동일한 시간에 대응 신호들이 발생하는 동안, 다중노드에서 클럭 디코더(63)와 다른 회로간의 변동으로 인해 대응 신호들간의 타이밍이 변동된다. 이러한 타이밍 변동을 통상 "클럭 스큐"로서 알고 있다.Each node in the system bus has a series of corresponding timing signals generated by the clock decoder 63. While the corresponding signals occur at exactly the same time from node to node through the system, the timing between the corresponding signals varies due to variations between the clock decoder 63 and other circuits at the multiple nodes. This timing variation is commonly known as "clock skew".

제4도는 데이타 인터페이스(61)의 바람직한 실시예를 도시하고 있다. 데이타 인터페이스(61)는 노드버스(67)의 라인들 각각과 시스템 버스(25)의 각 라인들간에 양방향 고속 인터페이스를 제공하기 위해 일시 기억회로 및 버스 구동 회로를 내장한다. 제4도에 도시된 바와 같이, 데이타 인터페이스(61)는 바람직하게 노드버스(67)로부터 시스템 버스(25)로의 통신 경로를 제공하기 위해 기억 소자(70,72) 및 시스템 버스 구동기(74)를 포함한다. 또한, 데이타 인터페이스(61)는 시스템 버스(25)로부터 노드 버스(67)로의 통신 경로를 제공하기 위해 기억소자(80) 및 노드 버스 구동기(82)를 포함한다. 데이타 인터페이스(61) 설명에서 사용된 바와 같이, "기옥소자"라는 용어는 투명 래치 또는 마스터-슬레이브 기억소자와 같은 쌍안정 기억소자를 보통 말하며, 특정 설비를 말하는 것은 아니다. 통상의 숙련된 자는 어느 형태의 기억 소자가 적합하다는 것을 알고 있겠다.4 shows a preferred embodiment of the data interface 61. The data interface 61 incorporates a temporary memory circuit and a bus driving circuit to provide a bidirectional high speed interface between each of the lines of the node bus 67 and each of the lines of the system bus 25. As shown in FIG. 4, the data interface 61 preferably stores the memory elements 70 and 72 and the system bus driver 74 to provide a communication path from the node bus 67 to the system bus 25. FIG. Include. The data interface 61 also includes a memory element 80 and a node bus driver 82 to provide a communication path from the system bus 25 to the node bus 67. As used in the description of the data interface 61, the term " jade element " usually refers to a bistable memory element, such as a transparent latch or master-slave memory element, and does not refer to a particular facility. Those skilled in the art will appreciate that any type of memory element is suitable.

제4도에 도시된 바와 같이, 기억소자(70)는 노드버스(67)로부터 데이타를 수신하게끔 접속된 입력 및 기억소자(72)의 입력에 접속된 출력을 갖는다. 기억소자(72)의 출력은 시스템 버스 구동기(74)의 입력에 접속되고, 이 구동기의 출력은 시스템 버스(25)에 접속된다. 기억소자(70,72)는 노드 버스제어 신호들(76,78)에 의해 각각 제어되고, 이 신호들은 클럭 디코더(63)에 의해 발생된 타이밍 신호들로부터 인출된다. 기억소자(70,72)는 노드버스(67)로부터 시스템 버스(25)로 데이타를 파이프라이닝 하기 위해 2단 일시 기억을 제공한다.As shown in FIG. 4, the memory element 70 has an input connected to receive data from the node bus 67 and an output connected to the input of the memory element 72. As shown in FIG. The output of the memory element 72 is connected to the input of the system bus driver 74, and the output of this driver is connected to the system bus 25. The memory elements 70 and 72 are controlled by the node bus control signals 76 and 78, respectively, which are extracted from the timing signals generated by the clock decoder 63. The storage elements 70 and 72 provide two stages of temporary storage for pipelining data from the node bus 67 to the system bus 25.

시스템 버스 구동기(74)는 시스템 버스 구동기 인에이블(79)에 의해 제어된다. 시스템 버스 구동기 인에이블(79)의 상태에 따르면, 시스템 버스 구동기(74)의 입력은 그 출력에 전기적으로 결합되어 이에 의해 기억소자(72)의 출력에서의 데이타를 시스템 버스(25)에 전송하거나, 그 출력으로부터 분리된다. 시스템 버스 구동기 인에이블(79)이 시스템 버스 구동기(74)의 입력과 출력을 분리시킬 때, 시스템 버스 구동기(74)는 시스템 버스(25)에 고임피던스를 부여한다. 시스템 버스 인에이블(79)은 시스템 버스(25)로부터 수신된 클럭 신호 및 노드 특정 논리부(65)로부터 수신된 제어신호에 따라서 클럭 디코더(63)에 의해 또한 발생된다.System bus driver 74 is controlled by system bus driver enable 79. According to the state of the system bus driver enable 79, the input of the system bus driver 74 is electrically coupled to its output, thereby transferring data at the output of the memory element 72 to the system bus 25 or , Separated from its output. When system bus driver enable 79 separates the input and output of system bus driver 74, system bus driver 74 imparts high impedance to system bus 25. The system bus enable 79 is also generated by the clock decoder 63 in accordance with a clock signal received from the system bus 25 and a control signal received from the node specific logic 65.

기억소자(80)는 시스템 버스(25)에 접속된 입력 단자 및 노드버스 구동기(82)의 입력에 접속된 출력단자를 갖는다. 노드버스 구동기(82)의 출력은 노드버스(67)에 다시 접속된다. 바람직하게는 투명 래치인 기억 소자(80)는 클럭디코더(63)에 의해 발생된 타이밍 신호로부터 인출된 시스템 버스 래치 제어신호(85)에 의해 제어된다. 노드버스 구동 신호(87)는 시스템 버스 구동 신호(79)가 시스템 버스 구동기(74)를 제어하는 방식과 마찬가지로 노드 버스 구동기(82)를 제어한다. 따라서, 노드버스 구동신호(87)에 응답하여, 노드버스 구동기(82)는 그것의 출력에 그것의 입력을 결합시키거나 그것의 출력으로부터 그것의 입력을 분리시키며, 노드 버스(67)에 고임피던스를 공급한다.The memory element 80 has an input terminal connected to the system bus 25 and an output terminal connected to the input of the node bus driver 82. The output of the nodebus driver 82 is connected back to the nodebus 67. The memory element 80, which is preferably a transparent latch, is controlled by a system bus latch control signal 85 derived from a timing signal generated by the clock decoder 63. The node bus drive signal 87 controls the node bus driver 82 in the same manner as the system bus drive signal 79 controls the system bus driver 74. Thus, in response to the nodebus drive signal 87, the nodebus driver 82 couples its input to its output or separates its input from its output, and high impedance to the node bus 67. To supply.

시스템 버스(25)를 통하여 데이타가 어떻게 전송되는지를 설명하기 위하여, 시스템 버스 구동 인에이블(79)과 제어신호(85)간의 관계를 이해하는 것이 중요하다. 본 실시예에서는 이 관계가 제3도에 도시되어 있다. 시스템 버스 구동 인에이블(79)은 버스 사이클의 개시로부터 종료로 인출된다. 새로운 데이타가 구동기 전파 및 버스정착 시간이 발생된 후 버스사이클에서 어느 나중 시간에 시스템 버스(25)로부터의 수신을 위해 유효하게 된다. 본 실시예에서 기억소자(80)는 투명 래치이다. 제어신호(85)는 클럭 C45와 논리적으로 동일하다. 버스 타이밍은 시스템 버스(25)데이타가 제어신호(85)의 디어서트 이전에 때때로 수신하기 위해 유효한 것을 보장한다. 기억소자(80)는 제어신호(85)의 디어서트 이전의 최소한 셋업시간에서 안정 상태이고 제어신호(85)의 디어서트후 홀드시간 동안 안정 상태로 유지되는 버스 데이타를 기억시킨다.In order to explain how data is transmitted over the system bus 25, it is important to understand the relationship between the system bus drive enable 79 and the control signal 85. In this embodiment, this relationship is shown in FIG. The system bus drive enable 79 is drawn from the start of the bus cycle to the end. The new data becomes valid for reception from the system bus 25 at some later time in the bus cycle after driver propagation and bus settling times have occurred. In this embodiment, the memory device 80 is a transparent latch. The control signal 85 is logically identical to the clock C45. Bus timing ensures that system bus 25 data is valid for occasional reception prior to the deassertion of control signal 85. The memory device 80 stores bus data that is stable at least at the setup time before deassertion of the control signal 85 and remains stable for a hold time after deassertion of the control signal 85.

노드버스(67)는 바람직하게 데이타 인터페이스(61)에 의해 노드 특정 논리부(65)와 시스템 버스(25)간의 양방향 데이타 전송을 허용하는 매우 고속의 데이타 버스이다. 제2도에 도시된 노드(60)의 바람직한 실시예에서, 노드버스(67)는 시스템 버스 인터페이스(64)와 노드 특정 논리부(65)간의 지점간 접속부로 이루어진 이중 사용자가 시스템이다. 그러나, 본 발명에 따르면, 그러한 접속 및 노드버스(67)가 2이상의 사이클을 지지해야 하는 요건은 없다.The node bus 67 is preferably a very high speed data bus that allows bi-directional data transfer between the node specific logic 65 and the system bus 25 by the data interface 61. In the preferred embodiment of node 60 shown in FIG. 2, nodebus 67 is a dual user system consisting of a point-to-point connection between system bus interface 64 and node specific logic 65. However, according to the present invention, there is no requirement that such connections and the nodebus 67 support two or more cycles.

제5도는 시스템 버스(25)에 또한 접속된 중앙 중재기(28)의 바람직한 실시예를 도시하고 있다. 중앙 중재기(28)는 시스템 버스(25)에 클럭 신호를 공급하고, 시스템 버스(25)상의 노드에 대한 버스의 소유권을 인정한다. 중앙 중재기(28)는 중재회로(90), 클럭회로(95) 및 발진기(97)를 바람직하게 포함한다. 발진기(97)는 기본 클럭 신호를 발생시킨다. 클럭(95)은 중재회로(71)용 타이밍 신호를 공급하고, 시스템 버스(25)상의 타이밍용 기본 시간 H, 시간 L 및 위상 클럭신호들을 공급한다. 중재회로(71)는 명령기 및 응답기 요구 신호들을 수신하고, 시스템 버스(25)에 대한 액세스를 요구하는 노드들간의 콘플릭트를 중재하며, 명령기 및 응답기 요구들에 대해 상기 언급된 큐를 유지한다. 중재회로(71)는 또한 클럭(95)에 어느 제어 신호들을 공급한다.5 shows a preferred embodiment of a central arbiter 28 also connected to the system bus 25. The central arbiter 28 supplies a clock signal to the system bus 25 and grants ownership of the bus to the node on the system bus 25. The central arbiter 28 preferably includes an arbitration circuit 90, a clock circuit 95 and an oscillator 97. Oscillator 97 generates a basic clock signal. The clock 95 supplies timing signals for the arbitration circuit 71 and supplies basic time H, time L, and phase clock signals for timing on the system bus 25. The arbitration circuit 71 receives the commander and responder request signals, arbitrates the conflict between nodes that require access to the system bus 25, and dequeues the queue mentioned above for the commander and responder requests. Keep it. The arbitration circuit 71 also supplies certain control signals to the clock 95.

B. 인터록 동작 설명B. Interlock Operation Description

간단히 상술된 바와 같이, 다수의 상이한 형태의 트랜잭션이 버스(25)상에 허용된다. 각 경우, 트랜잭션은 하나의 노드로부터 또 다른 노드로의 하나 이상의 분리 전송으로 구성된다. 응답기 노드가 하나 이상의 버스사이클 동안 명령 전송을 성공적으로 수신할때, 그것은 전송의 각 사이클 후에 제2버스 사이클 처음에 인식 확인을 발생시킨다. 그러한 인식 신호는 본래 전송에 포함된 명령의 성공적 실행을 나타내는 것이 아니라 단지 소정 응답기 노드에서의 입력큐에서 전송이 성공적으로 실려진 것을 나타낸다. 본 발명에 관련된 트랜잭션은 이하 간단히 설명되겠다.As briefly described above, many different types of transactions are allowed on the bus 25. In each case, a transaction consists of one or more separate transfers from one node to another. When the responder node successfully receives a command transmission for one or more bus cycles, it generates an acknowledgment at the beginning of the second bus cycle after each cycle of transmission. Such acknowledgment signals do not indicate successful execution of the commands originally included in the transmission, but merely indicate that the transmission was successfully loaded on the input queue at a given responder node. Transactions related to the present invention will be briefly described below.

명령기 노드에 대한 어드레스 공간 영역을 관리하는 응답기 노드에서의 특정 위치로부터 4바이트, 8바이트, 16바이트 또는 32바이트 블록으로 데이타를 이동시키게끔 판독 트랜잭션이 사용된다. 바람직한 실시예에서 메모리 및 I/O 동작은 공통 어드레스 공간에 관련된다. 응답기 노드는 메모리 노드, 프로세서 노드, 또는 I/O노드일 수 있다.A read transaction is used to move data from a specific location in the responder node that manages the address space area for the commander node into a 4, 8, 16, or 32 byte block. In a preferred embodiment, memory and I / O operations are related to a common address space. The responder node may be a memory node, a processor node, or an I / O node.

인터록 판독 트랜잭션은 판독 트랜잭션과 유사하다. 그러나, 인터록 판독 트랜잭션의 정확한 효과는 이후 상세히 설명되는 방식으로 응답기 노드에서의 록 태그 상태에 좌우된다. 록 태그는 어드레스 공간에서의 위치 또는 위치 그룹에 대한 액세스를 방지한다. 록 태그의 효과는 금속제 "블랙보드"에 나타나는 것으로서 시스템(20)의 어드레스 공간을 보이게 함으로써 이해될 수 있다. 록 태그는 어드레스 공간 "블랙 보드" 상의 위치 또는 위치 그룹의 상부에 제거 가능하게 놓여진 자기 태그와 같이 동작한다. 인터록 판독 트랜잭션에서 특정된 어드레스 공간에서의 위치가 이미 록 태그로 카바될 경우, 즉 그 특정 어드레스 공간이 "록"될 경우, 응답기 노드는 "록"된 응답 메시지로 인터록 판독 요구에 응답하고 복귀되는 데이타는 없다. 이것은 인터록 판독 명령에 특정된 어드레스 공간에서의 위치가 액세스 가능하지 않다는 것을 명령기에 나타낸다. 이 록된 응답 메시지는 응답기 노드가 인터록 판독 명령을 서비스한 후 명령기에 전송되고, 그후 응답기 노드는 버스(25)에 대한 액세스를 얻을 수 있다. 따라서, 명령기는 인터록 판독 트랜잭션의 명령 전송후 비특정 시간에 록된 응답 메시지를 수신한다.Interlock read transactions are similar to read transactions. However, the exact effect of the interlock read transaction depends on the lock tag state at the responder node in the manner described in detail below. The lock tag prevents access to a location or group of locations in the address space. The effect of the lock tag can be understood by showing the address space of the system 20 as it appears on a metal "blackboard". The lock tag behaves like a magnetic tag that is removably placed on top of a location or group of locations on the address space “black board”. If the position in the address space specified in the interlock read transaction is already covered with a lock tag, i.e. when that particular address space is blocked, the responder node responds to the interlock read request with a blocked response message and returns. There is no data. This indicates to the commander that the location in the address space specified for the interlock read command is not accessible. This locked response message is sent to the commander after the responder node has serviced the interlock read command, and the responder node can then gain access to the bus 25. Thus, the commander receives a response message that is locked at a non-specific time after command transmission of the interlock read transaction.

그 특정 위치가 록 되지 않을 경우, 즉 록 태그와 관련되지 않을 경우, 인터록 판독 명령에 특정된 어드레스에 기억된 정보는 인터록 판독 명령을 발생시킨 명령기노드에 응답 메시지로 복귀된다. 또한, 응답기 노드는 인터록 판독명령에 특정된 어드레스 공간에서의 위치에 록 태그를 부착시켜 뒤이은 인터록 판독 명령에 대한 어드레스 공간에서의 특정 위치로의 액세스를 부정한다.If the specific position is not locked, i.e., not associated with the lock tag, the information stored at the address specified in the interlock read command is returned in the response message to the command node that issued the interlock read command. The responder node also attaches a lock tag at a location in the address space specified in the interlock read command to deny access to a specific location in the address space for subsequent interlock read commands.

언록 기입 트랜잭션은 인터록 판독 트랜잭션에 대한 보족 관계이다. 명령기 노드가 판독-수정-기입 동작에서 판독 및 수정 위치를 성공적으로 완료할 경우, 그것은 인터록 판독 명령에 의해 일시적으로 록된 어드레스 공간에서의 위치를 언록시켜야 한다. 명령기는 특정 위치 안으로 적절히 수정 데이타를 기입하기 위해 어드레스 공간에서의 특정 위치에 대한 언록 기입 트랜잭션을 수행함으로써 이 동작을 수행한다. 응답기 노드는 어드레스 공간을 언록하고 요구된 데이타를 기입함으로써 언록 기입 명령을 처리한다. 이어서, 록 태그가 상세히 설명되는 방식으로 클리닝된다.The unlock write transaction is a complementary relationship to the interlock read transaction. If the command node successfully completes the read and modify position in a read-modify-write operation, it must unlock the position in the address space temporarily locked by the interlock read command. The commander accomplishes this operation by performing an unlock write transaction for a particular location in the address space to properly write modification data into the particular location. The responder node processes the unlock write command by unlocking the address space and writing the required data. The lock tag is then cleaned in the manner described in detail.

인터록 판독 명령 전송중에 버스(25)를 통하여 전송된 메시지는 64데이타 라인상의 데이타를 포함한다. 그 데이타는 4비트 명령 필드, 예를들어 메모리(39)로부터 프로세서 노드(31)로 전송되는 워드의 수를 명세하는 2비트 길이 필드 및, 데이타가 판독되게끔 요구되는 메모리(39)에서의 어드레스 위치를 명세하는 30비트 어드레스 필드를 포함한다. 인터록 판독 명령중에 정보를 이송하는 시스템 버스(25)의 다른 라인은 명령전송을 나타내는 4비트 기능 코드를 이송하는 4기능 라인, 인터록 판독 명령을 개시시킨 명령기 노드를 식별하는 6비트 코드를 이송하는 6ID라인 및 3패리티 라인을 포함한다.The message sent over the bus 25 during the interlock read command transmission contains data on the 64 data lines. The data is a 4-bit instruction field, for example a 2-bit length field specifying the number of words transferred from memory 39 to processor node 31, and an address in memory 39 where data is required to be read. It contains a 30-bit address field that specifies the location. Another line of the system bus 25 that carries information during the interlock read command is a four function line that conveys a 4-bit function code indicating a command transfer, and a six-bit code that identifies the commander node that initiated the interlock read command. 6 ID lines and 3 parity lines.

간단히 상술된 바와 같이, 시스템 버스(25)는 송신기에 의해 버스상에 실린 정보의 성공적인 수신을 나타내기 위해 송신기에 의해 사용되는 응답신호를 포함한다. 바람직한 실시예에서, 응답 신호는 3개의 동일한 와이어드 OR확인(CNF)라인을 포함한다. 3가지 라인은, 각 명령에 응답하여 응답기가 무엇을 행하였는가를 명령기가 정확히 아는 것이 버스 트랜잭션의 보전성에 대해 매우 중요하므로, 특히 인터록 명령 또는 I/O레지스터에 대한 기입의 경우 제공된다. 따라서, 수신기는 3가지 CNF라인 모두를 어서트함으로써 인식(ACK)지시를 전송하거나 3가지 CNF라인 모두를 어서트하지 않음으로서 무인식(NACK)신호를 전송하겠다. 3가지 CNF라인 모두가 동일 논리 레벨에서 수신기에 의해 수신되지 않을 경우 참 CNF상태를 결정하기 위해 에러 정정 논리부가 수신기에 구성된다.As briefly described above, system bus 25 includes a response signal used by the transmitter to indicate successful reception of information carried on the bus by the transmitter. In a preferred embodiment, the response signal includes three identical wired OR confirmation (CNF) lines. Three lines are provided especially for writes to interlock commands or I / O registers, since it is very important for the integrity of the bus transaction that the commander knows exactly what the responder did in response to each command. Thus, the receiver will transmit an acknowledgment (ACK) by asserting all three CNF lines or a NACK signal by not asserting all three CNF lines. If all three CNF lines are not received by the receiver at the same logic level, an error correction logic is configured in the receiver to determine the true CNF state.

ACK 확인은 응답기가 하나의 명령 전송 사이클로부터의 정보를 허용했다는 것을 나타내거나, 명령기가 하나의 응답 메시지 사이클로부터의 정보를 허용했다는 것을 나타낸다. ACK확인을 발생시킨 판독 명령 전송 사이클은 응답기가 어느 나중 시간에 판독 응답 메시지를 복귀한 것을 나타낸다.The ACK acknowledgment indicates that the responder has accepted information from one command transmission cycle or that the commander has accepted information from one response message cycle. The read command transfer cycle that generated the ACK acknowledgment indicates that the responder returned the read response message at some later time.

CNF 라인상에 복귀된 NACK확인은 명령 전송의 버스사이클로부터 정보를 수신기가 허용하지 않았다는 것을 나타낸다. 이것은 다음 3가지 원인으로 될 수 있다 : (1) 패리티 에러가 시스템 버스(25)상에 발생되었다. (2) 예컨대 수신기의 입력 큐가 찼을 때 수신기가 명령을 일시적으로 허용할 수 없다. (3) 특정 어드레스에 대응하는 응답기 노드가 없다.The NACK acknowledgment returned on the CNF line indicates that the receiver did not allow information from the bus cycle of command transmission. This can be caused by three reasons: (1) A parity error has occurred on the system bus 25. (2) The receiver cannot temporarily accept commands, for example when the receiver's input queue is full. (3) There is no responder node corresponding to a particular address.

버스 사이클에 대응하는 확인 지시는 버스사이클후 제2사이클의 처음에서 수신기 노드에 의해 CNF라인에 실린다.The acknowledgment corresponding to the bus cycle is carried on the CNF line by the receiver node at the beginning of the second cycle after the bus cycle.

인터록 판독 트랜잭션의 실시예가 제6도를 참조하여 설명되겠다. 제6도 상부에서의 수평축은 버스(25)상의 연속버스 사이클을 나타낸다. 제6도 좌측에 따라서 수직으로 보여지는 레이블은 버스(25)내에 포함된 라인 그룹, 즉 기능 라인, 데이타 라인, ID라인, 확인라인 및 중재라인을 나타낸다. 제6도의 수평 및 수직축에 의해 형성된 매트릭스에서의 엔트리는 특정 버스사이클중에 특정 버스라인상에 나타나는 데이타 형태를 설명한다.An embodiment of an interlock read transaction will be described with reference to FIG. The horizontal axis at the top of FIG. 6 represents the continuous bus cycle on the bus 25. The label shown vertically along the left side of FIG. 6 indicates a group of lines included in the bus 25, namely, function lines, data lines, ID lines, confirmation lines and arbitration lines. The entries in the matrix formed by the horizontal and vertical axes of FIG. 6 describe the data types that appear on a particular busline during a particular bus cycle.

버스 사이클 0에서, 제1명령기 노드 예를들어 제1도의 노드(31)는 중재기(28)에 그것의 CMD REQ중재 요구 라인(중재기(28)에 접속된 지점간 라인중 하나로서 제1도에 도시되어 있음)을 어서트한다.In bus cycle 0, the first commander node, e.g., node 31 in FIG. 1, is assigned to the arbiter 28 as one of its CMD REQ arbitration request lines (point-to-point line connected to the arbitrator 28). Assess (shown in Figure 1).

따라서, 제6도는 사이클 1에서 시스템 버스(25)의 중재 라인상에 존재하는 "cmdr # 1"요구를 나타낸다. 상위 우선 순위의 다른 노드가 버스에 대한 액세스를 동시에 요구하고 있지 않는다면, 프로세서(31)는 사이클 1에서 버스 액세스를 얻고 시스템 버스(25)로 메시지를 전송한다.Thus, FIG. 6 shows the " cmdr # 1 " request present on the arbitration line of the system bus 25 in cycle 1. FIG. If other nodes of higher priority are not simultaneously requesting access to the bus, processor 31 obtains bus access in cycle 1 and sends a message to system bus 25.

사이클 1중에 버스(25)의 기능 라인상에 실린 정보는 버스상의 정보가 명령(cmd)정보인 것을 나타낸다. 버스(25)의 데이타 라인상에 실린 데이타는 인터록 판독 트랜잭션으로서 현재 트랜잭션을 식별하고 데이타가 프로세서(31)로 복귀되는 메모리(39)에서의 어드레스를 특정하는 명령 및 어드레스(c/a)데이타로 이루어진다. 버스 사이클 1중에 ID 라인은 버스(25)상에 현재 전송하고 있는 프로세서(명령기/cmdr)노드(31)의 식별 코드를 포함한다.The information on the function line of the bus 25 during cycle 1 indicates that the information on the bus is command (cmd) information. The data carried on the data line of bus 25 is an interlock read transaction, with instructions and address (c / a) data identifying the current transaction and specifying an address in memory 39 where the data is returned to processor 31. Is done. During bus cycle 1, the ID line contains the identification code of the processor (command / cmdr) node 31 currently transmitting on the bus 25.

버스 사이클 2중에, 현재의 인터록 판독 트랜잭션과 관련하여 버스(25)상에 실린 정보는 없다.During bus cycle 2, there is no information on bus 25 associated with the current interlock read transaction.

인터록 판독 트랜잭션 개시후의 2개의 사이클(즉 소정시간)인 버스 사이클 3의 처음에서 메모리 노드(39)는 버스 사이클 1중에 전송된 명령 전송을 수신한 ACK확인을 전송한다. 이어서, 메모리(39)는 그것의 입력큐에 명령 메시지를 위치시킨다.At the beginning of bus cycle 3, which is two cycles after the start of the interlock read transaction, i. The memory 39 then places a command message in its input queue.

버스 사이클 3의 종료에서 인터록 판독 트랜잭션에서의 제1전송이 종료된다. 버스(25)상의 트랜잭션의 펜디드 특성으로 인하여, 요구된 정보가 메모리(39)로부터 프로세서(31)로 복귀되는 시간이 정확히 정의되지 않는다. 응답 시간은 요구 정보를 처리하기 위해 메모리(39)에 의해 요구된 시간 길이와, 다른 노드에 의해 발생된 버스(25)상의 추가 교통량을 처리하기 위해 시스템 버스에 필요한 시간량에 좌우된다. 인터록 판독 트랜잭션의 두전송간 시간의 비특정 특성이 제6도에서 버스 사이클 3 및 4사이의 점선으로 표시되어 있다. 따라서, 버스사이클 4 내지 7을 통하여 발생하는 후속 정보가 제6도에 의해 표시되지만, 이것은 단지 인터록 판독 트랜잭션에 포함된 타이밍의 특정 실시이며 그러한 트랜잭션의 제2전송이 버스(25)의 어느 후속 사이클에서 발생할 수 있다는 것을 알아야겠다.At the end of bus cycle 3, the first transfer in the interlock read transaction ends. Due to the pending nature of the transaction on the bus 25, the time at which the requested information is returned from the memory 39 to the processor 31 is not exactly defined. The response time depends on the length of time required by the memory 39 to process the request information and the amount of time required on the system bus to handle the additional traffic on the bus 25 generated by another node. The non-specific nature of the time between two transmissions of an interlock read transaction is indicated by the dashed line between bus cycles 3 and 4 in FIG. Thus, although subsequent information occurring via buscycles 4 to 7 is indicated by FIG. 6, this is merely a specific implementation of the timing involved in an interlock read transaction and the second transmission of such a transaction is any subsequent cycle of bus 25. You should know that this can happen in.

메모리(39)는 그것의 입력 큐로부터 인터록 판독 전송 메시지를 제거하고 전송에 포함된 어드레스 정보를 검사함으로써 인터록 판독 명령을 처리한다. 그 정보는 더욱 완전히 설명되기 위해 록 태그에 기억된 어드레스값에 비교된다. 인터록 판독 전송의 기억된 어드레스값과 어드레스 정보가 일치될 경우, 이것은 소정 어드레스 위치가 이전 인터록 판독 명령에 의해 록 되었다는 것을 나타낸다. 이어서, 메모리(39)는 응답 메시지에 필요한 다른 정보와 함께 "록"기능 코드를 포함하는 록된 응답 메시지를 메모리 노드(39)의 출력 큐에서 발생시킨다.The memory 39 processes the interlock read command by removing the interlock read transfer message from its input queue and checking the address information included in the transfer. The information is compared to the address value stored in the lock tag to explain more fully. If the stored address value of the interlock read transfer coincides with the address information, this indicates that the predetermined address position has been locked by the previous interlock read command. The memory 39 then generates a locked response message in the output queue of the memory node 39 that includes the block function code along with other information required for the response message.

인터록 판독 전송 어드레스 정보와의 록 태그에 기억된 어드레스 값의 비교가 "히트"를 생성하지 않을 경우, 다시 말하면 전송된 어드레스가 어느 기억된 어드레스에 대응하지 않을 경우, 메모리 노드(39)는 기능 라인에 대한 "양호 판독 데이타"(grdo)와 같은 유효 판독 응답 노드, 데이타 라인에 대한 특정 어드레스 위치의 내용 및, ID라인에 대한 인터록 판독 명령을 개시시킨 명령기 노드의 명령기 식별 코드로 이루어진 응답 메시지를 구성한다. 이 응답 메시지는 메모리 노드(39)의 출력 큐로 로드된다.When the comparison of the address value stored in the lock tag with the interlock read transfer address information does not produce a "hit", that is, when the transmitted address does not correspond to any stored address, the memory node 39 is connected to the function line. A response message consisting of a valid read response node, such as a "good read data" (grdo) for the < RTI ID = 0.0 >, < / RTI > the contents of a particular address location for the data line, and the commander identification code of the commander node that initiated the interlock read command for the ID line. Configure This response message is loaded into the output queue of the memory node 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를 전송한다.When memory 39 has processed an interlock read transaction and generated a response message in its output queue in a manner that will be described more fully, memory 39 is directed to the RES REQ request line for arbitrator 28 (shown in FIG. 1). Assert another point-to-point line. Thus, the arbitration line carries a responder request indication as shown in Figure 6 in bus cycle 4. At this time, assuming that no other node has a higher priority, the arbiter 28 allows the memory 39 to access the bus 25 during bus cycle 5. The memory 39 sends a response message containing a " good read data " grdo signal to the function line of the system bus 25, and the memory specified by the address field of the initial transfer from the processor 31 to it. Transfers 8 bytes (i.e., 64-bit) data from the location through the data line of the system bus 25, and combines the return data with the commander, i.e., the processor 31, that originally issued the interlock read request. The ID of the processor 31 is transmitted to the ID line.

버스 사이클 6중에, 이 인터록 판독 트랜잭션에 관련된 교통량은 시스템 버스(25)상에 나타나지 않는다. 끝으로, 인터록 판독 트랜잭션은 프로세서(31)가 버스(25)의 확인 라인에 ACK확인을 전송할때 버스 사이클 7에서 종결된다.During bus cycle 6, the traffic associated with this interlock read transaction does not appear on the system bus 25. Finally, the interlock read transaction is terminated in bus cycle 7 when the processor 31 sends an ACK acknowledgment to the acknowledgment line of the bus 25.

메모리에서의 동일 특정 위치에 대한 제2판독 트랜잭션은 제6도의 사이클 8-15에서 도시된 바와 같이 버스상에 데이타가 나타나게 할 것이다. 사이클 8에서, 제2명령기(Cmdr #2)는 중재기(28)에 대한 명령기 요구를 개시시킨다. 버스사이클 9-12는 사이클 1-4와 동일한 교통량을 버스(25)상에 발생시킨다. 그러나, 수신된 인터록 판독 명령의 처리시, 메모리(39)는 록태그에 기억된 어드레스 값과 인터록 판독 명령으로 전송된 어드레스와의 일치를 발견한다. 따라서, 예컨대 사이클 13에서 버스(25)의 기능 라인상에 LOC응답이 존재한다. 버스 사이클 14 및 15는 사이클 6 및 7과 동일하다.The second read transaction for the same specific location in memory will cause the data to appear on the bus as shown in cycles 8-15 of FIG. In cycle 8, the second commander Cmdr # 2 initiates a commander request for the arbiter 28. Bus cycles 9-12 generate the same amount of traffic on bus 25 as cycles 1-4. However, in the processing of the received interlock read command, the memory 39 finds a match between the address value stored in the lock tag and the address transmitted in the interlock read command. Thus, for example, there is a LOC response on the functional line of bus 25 in cycle 13. Bus cycles 14 and 15 are identical to cycles 6 and 7.

C. 프로세서(31)의 설명C. Description of Processor 31

제7도를 참조하면, 프로세서(31)내의 노드 명세 논리부(65)에 대한 더욱 상세한 블록도가 도시되어 있다. 프로세서 노드(31)는 모든 노드가 그렇듯이 버스 인터페이스 회로(64)를 포함한다. 또한, 프로세서 노드(31)는 프로세서 논리부(202)를 포함한다. 제7도에 도시된 바와 같이 프로세서 논리부(202)는 본 기술 분야에 숙련된 자에게 잘 알려진 방식으로 소프트 웨어를 실행하는데 필요한 중앙처리장치(CPU)회로를 포함한다. 또한, 프로세서 논리부(202)는 필요한 응용 기능을 실행할 뿐만 아니라 시스템 버스(25)를 통한 전송을 제어하기 위해 시스템(20)에 의해 요구될 때 명령 및 어드레스 정보를 발생시킨다.Referring to FIG. 7, a more detailed block diagram of the node specification logic 65 in the processor 31 is shown. Processor node 31 includes bus interface circuit 64 as all nodes do. Processor node 31 also includes processor logic 202. As shown in FIG. 7, processor logic 202 includes a central processing unit (CPU) circuitry necessary to execute software in a manner well known to those skilled in the art. The processor logic 202 also generates command and address information as required by the system 20 to perform the necessary application functions as well as to control transmission over the system bus 25.

또한, 프로세서 노드(31)는 버스인터페이스 회로(64)로부터 수신된 시스템 버스(25)의 기능, 데이타, ID 및 패리티 라인상의 정보를 기술상 공지된 방식으로 그 신호들에 대한 패리티 검사를 수행하기 위해 모니터링하는 패리티 에러 검사회로(204)를 포함한다. 검출된 패리티 에러는 신호라인(206)상에 패리티 에러 지시를 발생시키겠다.In addition, the processor node 31 performs parity check on the signals, functions, data, ID, and parity lines of the system bus 25 received from the bus interface circuit 64 in a manner known in the art. And a parity error check circuit 204 for monitoring. The detected parity error will generate a parity error indication on signal line 206.

ID라인상의 정보는 비교기 회로(207)에 의해 모니터링 되며, 비교기 회로(207)에는 장착 캐비넷에서 프로세서(31)의 위치에 의해 결정되는 백 플레인상의 하드와이어드 접속부(210)로부터의 프로세서(31)의 식별 코드가 또한 공급된다. 비교기(207)로부터의 비교 결과는 인식 확인 발생기(208)에 패리티 에러 신호 라인(206)상의 정보와 함께 공급된다.The information on the ID line is monitored by the comparator circuit 207, which includes the comparator circuit 207 of the processor 31 from the hardwired connection 210 on the backplane, determined by the position of the processor 31 in the mounting cabinet. An identification code is also supplied. The comparison result from the comparator 207 is supplied to the recognition confirmation generator 208 together with the information on the parity error signal line 206.

패리티 에러가 검출되지 않고 응답 메시지에 대한 버스(25)를 통하여 수신된 ID코드가 프로세서(31)의 ID코드와 일치할 경우, 프로세서(31)로 향해진 응답 전송의 각 사이클 후 제2버스 사이클 처음에 인식 지시 발생기(208)에 의해 ACK확인이 버스(25)의 CNF라인을 통하여 전송된다.If no parity error is detected and the ID code received via the bus 25 for the response message matches the ID code of the processor 31, a second bus cycle after each cycle of response transmission directed to the processor 31 Initially, the acknowledgment indication generator 208 sends an ACK acknowledgment via the CNF line of the bus 25.

버스(25)의 기능 및 데이타 라인들상의 정보는 버스 인터페이스(64)를 통하여 응답 디코더(212)에 공급된다. 디코더(212)는 버스(25)를 통한 메시지가 프로세서(31)에 대해 의도될 때 비교기(207)에 의해 인에이블 된다. 이것은 비교기(207)로부터의 비교 결과에 의해 결정된다. 디코더(212)가 비교기(207)에 의해 인에이블될 경우, 디코더(212)는 시스템 버스(25)의 기능라인들로부터 기능코드를 추출하고, 어느 기능 코드의 경우에는 적절한 행위를 위해 버스(25)의 라인으로부터의 명령 및 데이타 정보를 프로세서 논리부(202)에 공급한다.The function of the bus 25 and the information on the data lines are supplied to the response decoder 212 via the bus interface 64. Decoder 212 is enabled by comparator 207 when a message over bus 25 is intended for processor 31. This is determined by the comparison result from the comparator 207. When the decoder 212 is enabled by the comparator 207, the decoder 212 extracts the function code from the function lines of the system bus 25 and, in the case of any function code, the bus 25 for proper behavior. Command and data information from the line ()) are supplied to the processor logic unit 202.

프로세서(31)가 버스(25)상의 트랜잭션을 개시시키고자 할 때, 명령, 어드레스 및 데이타 정보가 접속부(210)로부터 공급된 이 노드의 ID와 함께 명령 발생기(214)에 공급된다. 명령 발생기(214)는 명령 전송 메시지를 준비하고, 프로세서(31)가 명령 메시지를 전송하기 위해 버스(25)에 대한 액세스를 요구하는 것을 중재기(28)(제7도에는 도시 생략)에 지시하기 위해 노드 CMD REQ중재라인(216)을 어서트한다. 중재 시스템을 사용하면, 본래의 인터록 판독 전송후 비특정 시간에 중재기(28)가 프로세서(31)에 대한 버스 액세스를 허용한다.When processor 31 wishes to initiate a transaction on bus 25, command, address and data information is supplied to command generator 214 along with this node's ID supplied from connection 210. The command generator 214 prepares the command transmission message and instructs the arbiter 28 (not shown in FIG. 7) that the processor 31 requires access to the bus 25 to send the command message. Assess node CMD REQ mediation line 216 to do so. Using an arbitration system, the arbiter 28 allows bus access to the processor 31 at non-specific times after the original interlock read transfer.

액세스가 허용되면, 명령 발생기(214)는 버스 인터페이스(64)로 하여금 명령 발생기(214)로부터 명령 메시지를 시스템버스(25)로 전송하게 한다.If access is granted, command generator 214 causes bus interface 64 to send a command message from command generator 214 to system bus 25.

인터록 판독 명령이 향해지는 응답기 노드는 인터록 판독 명령 전송후 2사이클 동안 인식확인을 발생시킨다. 특히 제7도에 도시된 바와 같이), 명령 발생기(214)는 명령 전송의 각 사이클이 시스템 버스(25)를 통하여 프로세서(31)에 의해 전송된 후 정확히 2버스 사이클 동안 CNF 버스라인 상의 ACK 확인 존재를 검출하기 위해 CNF라인을 모니터링한다.The responder node to which the interlock read command is directed generates an acknowledgment for two cycles after the transmission of the interlock read command. In particular, as shown in FIG. 7), the command generator 214 acknowledges the ACK on the CNF busline for exactly two bus cycles after each cycle of command transfer is sent by the processor 31 over the system bus 25. Monitor CNF lines to detect presence.

ACK확인의 존재검출 고장으로 인해, 바람직한 실시예에서는 이전 명령의 재전송으로 이루어진 적절한 정정 행위가 발생된다. 그 전송이 종료될 때, 응답기 노드는 인터록 판독 명령을 처리하고 시스템 버스(25)상에 응답 메시지를 복귀시킨다. 시스템 버스(25)상의 교통량 및 큐 길이로 인한 불확실성으로 인해, 응답기 노드는 명령 전송후 비특정 시간에 응답 메시지를 발생시키겠다.Due to the presence detection failure of the ACK acknowledgment, in the preferred embodiment, an appropriate corrective action is made by retransmission of the previous command. When the transmission ends, the responder node processes the interlock read command and returns a response message on the system bus 25. Due to the uncertainty due to the traffic volume and queue length on the system bus 25, the responder node will generate a response message at non-specific times after sending the command.

D. 메모리(39)의 설명D. Description of Memory 39

제8도는 응답기 노드로서 기능을 할 수 있는 메모리(39)의 블록도를 도시하고 있다. 제8도에 도시될 수 있는 바와 같이, 메모리(39)는 명령 디코드와 어드레스 및 패리티 검사회로(300)를 포함한다. 회로(300)는 버스 기능, 어드레스 및 ID라인들에 접속되고, 공지된 방식으로 패리티 검사를 수행한다. 또한 회로(300)는 버스 어드레스 라인들상의 정보를 레지스터(302)로부터 공급될 때 메모리(39)에 의해 제공된 어드레스 공간의 한계와 비교하고, 그 비교결과를 어드레스 부한 라인(301)상에 공급한다. 버스(25)를 통하여 수신된 어드레스 정보가 메모리(39)에 의해 제공된 어드레스 공간 영역내에 있고 패리티 에러가 발생되지 않았을 경우, 회로(300)에 접속된 인식 발생기(304)가 메모리(39)에 대해 향해진 전송 사이클 후 제2사이클의 처음에 3가지 CNF라인 모두를 어서트함으로써 ACK확인을 발생시킨다.8 shows a block diagram of a memory 39 that can function as a responder node. As can be seen in FIG. 8, memory 39 includes instruction decode and address and parity check circuit 300. The circuit 300 is connected to the bus function, address and ID lines, and performs parity check in a known manner. The circuit 300 also compares the information on the bus address lines with the limits of the address space provided by the memory 39 when supplied from the register 302 and supplies the comparison result on the address load line 301. . If the address information received via the bus 25 is in the address space area provided by the memory 39 and no parity error has occurred, then the recognition generator 304 connected to the circuit 300 is connected to the memory 39. An ACK acknowledgment is generated by asserting all three CNF lines at the beginning of the second cycle after the directed transmission cycle.

본 발명에 따르면, 메모리가 명령기 노드로부터의 인터록 판독 명령을 수신하기 위한 수단을 포함한다. 바람직하게는, 메모리는 인터록 판독 명령 개시에 뒤이은 소정시간에 명령기의 노드로 인식확인을 전송하기 위한 수단을 포함한다. 또한 바람직하게는, 그러한 수단은 명령 메시지에 뒤이은 소정수의 버스 사이클후 인식 지시를 프로세서노드에 전송하기 위한 인식수단을 구비한다. 여기서 구현되는 바와 같이, 그러한 수단은 버스 인터페이스(64), 입력 큐(306), 회로(300), 어드레스 레지스터회로(302), 인식 지시 발생기(304) 및 메모리(39)내부로의 CNF 라인을 구비한다. 입력 큐(306)는 버스(25)를 통하여 고속으로 수신된 메시지를 메모리(39)의 비교적 저속의 논리부로 인해 그러한 메시지가 행해지게 될 때까지 기억되게 한다. 입력 큐(306)는 버스(25)상의 메시지에 나타나는 어드레스 정보가 메모리(39)에 대한 어드레스 공간 한계내에 있을 때 버스(25)로부터의 메시지를 기억시키게끔 인에이블되며, 이것은 어드레스 부합신호(301)에 의해 결정된다.According to the invention, the memory comprises means for receiving an interlock read command from the commander node. Preferably, the memory comprises means for sending an acknowledgment to the node of the commander at a predetermined time subsequent to the initiation of the interlock read command. Also preferably, the means comprises recognition means for sending a recognition instruction to the processor node after a predetermined number of bus cycles following the command message. As implemented herein, such means includes a CNF line into bus interface 64, input queue 306, circuit 300, address register circuit 302, recognition indication generator 304, and memory 39. Equipped. Input queue 306 causes messages received via bus 25 at high speed to be stored until such messages are made due to the relatively slow logic of memory 39. The input queue 306 is enabled to store a message from the bus 25 when the address information appearing in the message on the bus 25 is within the address space limit for the memory 39, which is an address match signal 301. Is determined by

본 발명에 따르면, 메모리는 입력 큐로부터 기억된 메시지를 제거하고 그 메시지로부터 인터록 판독 및 언록 기입 명령과 어드레스 데이타를 발생시키기 위한 명령 디코더 수단을 구비한다. 여기서 구현되는 바와 같이 그러한 수단은 디코더(308)를 구비한다. 입력 큐(306)의 출력은 디코더(308)에 공급되며 디코더(308)는 입력 큐(306)내에 기억된 메시지로부터 어드레스 및 명령 정보를 추출한다. 디코더(308)가 여러 명령을 디코드하기 위해 다중 지시를 공급하고 일련의 병렬 신호 라인상에 어드레스 정보를 공급하지만, 디코더(308)의 어드레스 및 명령 출력이 명백히 하기 위해 라인(309,311)으로 제8도에 각각 도시되어 있다.According to the invention, the memory has command decoder means for removing a stored message from an input queue and generating interlock read and unlock write commands and address data from the message. As implemented herein, such means includes a decoder 308. The output of the input queue 306 is supplied to the decoder 308, which extracts address and command information from the messages stored in the input queue 306. Although the decoder 308 supplies multiple instructions to decode several commands and supplies address information on a series of parallel signal lines, the decoder and the output of the decoder 308 and the output of the commands are shown in FIG. Are shown respectively.

본 발명에 따르면, 메모리(39)는 정보를 기억하기 위한 기억수단을 포함한다. 여기서 구현되는 바와 같이 기억 수단은 메모리 어레이(312)를 포함한다. 기술상 공지된 바와 같이, 어레이(312)에 공급된 판독 및 기입 명령들로 특정될 수 있는 어드레스에 의해 식별된 메모리 어레이(312)내의 복수의 불연속 위치에 정보가 기억된다.According to the present invention, the memory 39 includes storage means for storing information. As implemented herein, the storage means includes a memory array 312. As is known in the art, information is stored in a plurality of discrete locations in the memory array 312 identified by an address that can be specified with read and write instructions supplied to the array 312.

본 발명에 따르면, 메모리(39)는 기억 수단과 결합되고 언록 상태와 록상태 사이에서 동작가능한 록 수단을 포함하는데, 이 록 수단은 언록 상태에서 기억 수단에 대한 액세스를 허용하고 록 상태에서 기억수단에 대한 액세스를 부정하기 위한 수단이다. 바람직하게는, 록 수단은 록 제어기 수단을 포함하는데, 이 록 제어기 수단은 디코더 수단으로부터의 인터록 판독 명령 및 어드레스 데이타에 응답하여, 인터록 판독 어드레스가 록 기억 레지스터에서 벌써 나타나지 않을 경우 록 기억 레지스터내에 인터록 판독 어드레스 데이타를 위치시키고, 록 기억 레지스터에 기억된 데이타에 대응하는 메모리 어레이 어드레스 위치를 록 상태에서 위치시키며, 디코더 수단으로부터의 언록 기입 제어 및 어드레스 데이타에 응답하여, 록 기억 레지스터에 기억된 언록 기입 데이타에 대응하는 메모리 어레이 어드레스 위치를 언록 상태에서 위치시키고, 인터록 판독 제어 데이타에 응답하여, 인터록 판독 어드레스 데이타에 의해 특정된 메모리 어레이 어드레스 위치 상태에 대응하는 록 상태 신호를 발생시킨다. 바람직하게는, 록 제어기 수단은 응답 메시지가 프로세서 노드에 의해 성공적으로 수신되지 않을 경우 언록 상태에 대한 메모리 어레이 어드레스 위치를 복원시키기 위한 수단을 구비한다. 여기서 구현되는 바와 같이 그러한 수단은 록 제어기(310)를 구비한다.According to the invention, the memory 39 comprises lock means coupled with the storage means and operable between an unlocked state and a locked state, the lock means allowing access to the storage means in the unlocked state and storing means in the locked state. Means to deny access to a. Preferably, the lock means comprises a lock controller means which, in response to the interlock read command and address data from the decoder means, interlocks in the lock memory register if the interlock read address is not already present in the lock memory register. The read address data is placed, the memory array address position corresponding to the data stored in the lock storage register is placed in the locked state, and the unlock writing stored in the lock storage register is performed in response to the unlock write control from the decoder means and the address data. The memory array address position corresponding to the data is positioned in the unlock state, and in response to the interlock read control data, a lock state signal corresponding to the memory array address position state specified by the interlock read address data is generated. Preferably, the lock controller means has means for restoring the memory array address location for the unlock state if the response message is not successfully received by the processor node. As implemented herein, such means includes a lock controller 310.

또한, 본 발명은 명령 수단을 포함하는데, 이 명령 수단은 프로세서 노드중 하나로부터의 인터록 판독 명령에 응답하여, 록 수단의 상태를 나타내는 록 상태 지시를 발생시키고 록 수단을 언록 상태에서 록 상태로 스위칭하며, 언록 기입 명령에 응답하여, 수정된 정보를 특정 위치에 기억시키고 록 수단을 록 상태에서 언록 상태로 스위칭한다. 여기서 구현되는 바와 같이 명령 수단은 록 제어기(310) 및 메모리 어레이(312)를 구비한다.The invention also includes command means, which in response to an interlock read command from one of the processor nodes, generate a lock state indication indicative of the state of the lock means and switch the lock means from an unlocked state to a locked state. And in response to the unlock write command, store the modified information in a specific position and switch the lock means from the locked state to the unlocked state. As implemented herein, the command means comprises a lock controller 310 and a memory array 312.

이후 상세히 설명될 로킹 구조를 수행하는 록 제어기(310)에 어드레스 및 명령 정보가 공급된다. 또한, 메모리 어레이(312)에 디코더(308)로부터의 어드레스 및 명령 정보가 공급된다. 메모리 어레이(312)는 판독 및 기입 명령에 응답하여, 디코더(308)로부터 수신된 어드레스 정보에 의해 특정된 어레이(312)내의 위치로 데이타를 판독/기입한다.Address and command information is supplied to the lock controller 310 which performs the locking structure which will be described in detail later. In addition, address and command information from the decoder 308 are supplied to the memory array 312. The memory array 312 reads / writes data to locations in the array 312 specified by address information received from the decoder 308 in response to read and write commands.

본 발명에 따르면, 메모리(39)는 인터록 판독 명령의 개시에 뒤이은 비 특정 시간에, 인터록 판독 명령을 발생시킨 프로세서 노드에 록 상태 지시를 포함하는 록 상태 메시지를 전송하기 위한 상태 응답 수단을 포함한다. 바람직하게는, 응답 발생기는 언록 상태에 록 수단이 있을 때 특정 위치의 내용을 포함하는 제1메시지 형태 및 록수단이 록 상태에 있을 때 그 특정 위치의 무용성을 나타내는 제2메시지 형태를 발생시키기 위한 응답수단을 구비한다. 여기서 구현되는 바와 같이, 상태 응답 수단은 응답 발생기(316) 및 출력 큐(318)를 구비한다.According to the present invention, the memory 39 comprises status response means for transmitting a lock status message including a lock status indication to the processor node that issued the interlock read command at a non-specific time following the initiation of the interlock read command. do. Preferably, the response generator is adapted to generate a first message form containing the content of a particular position when there is a lock means in the unlocked state and a second message form indicating the uselessness of that particular position when the lock means is in the locked state. A response means is provided. As implemented herein, the status response means has a response generator 316 and an output queue 318.

제어기(310)로부터의 록 상태 신호(314) 및 메모리 어레이(312)로부터의 메모리 데이타는 이후 상세히 설명될 출력 응답 메시지를 발생시키는 응답 발생기(316)에 공급된다. 발생기(312)로부터의 응답 메시지는 상술된 중재 처리를 통하여 메모리(39)가 버스에 대한 액세스를 얻을 때까지 기억시키기 위해 출력 큐(318)에 공급된다.The lock status signal 314 from the controller 310 and the memory data from the memory array 312 are supplied to a response generator 316 which generates an output response message which will be described in detail later. The response message from the generator 312 is supplied to the output queue 318 for storage until the memory 39 gains access to the bus through the arbitration process described above.

응답 발생기(316)는 (312)로부터 수신된 데이타, 제어기(310)로부터 수신된 록 상태 신호(314) 및 디코더(308)로부터 수신된 명령 및 ID정보에 따라서 응답 메시지를 준비한다. 발생기(316)에 의해 준비된 응답 메시지는 메모리(39)가 요구된 데이타를 공급하게끔 허용되는 지의 여부에 따라서 두가지 형태중 하나가 된다. 응답되고 있는 명령이 논인터록 판독 명령일 경우나, 명령이 인터록 판독 명령이고 록 상태 신호(314)가 어서트되지 않을 경우, 응답 발생기(316)는 메모리(312)내의 특정위치의 요구된 내용을 포함하는 제1형태의 메시지를 준비한다. 그러나, 명령이 인터록 판독 명령이고 록 상태 라인(314)이 어서트될 경우, 응답 발생기(316)는 인터록 판독 명령의 특정 어드레스가 록 상태에 있다는 것과 요구된 데이타가 그 수신된 인터록 판독 명령에 응답하여 메모리(39)에 의해 전송된 응답 메시지에 구성되지 않는다는 것을 나타내는 기능 라인상의 "록"코드를 갖는 제2형태의 메시지를 준비한다.The response generator 316 prepares a response message according to the data received from the 312, the lock status signal 314 received from the controller 310, and the command and ID information received from the decoder 308. The response message prepared by the generator 316 is one of two forms depending on whether the memory 39 is allowed to supply the requested data. If the command being answered is a non-interlock read command, or if the command is an interlock read command and the lock status signal 314 is not asserted, then the response generator 316 may request the requested contents of a particular location in the memory 312. Prepare a message of the first type to include. However, if the command is an interlock read command and the lock status line 314 is asserted, the response generator 316 may indicate that a particular address of the interlock read command is in the locked state and that the requested data is responsive to the received interlock read command. To prepare a message of the second type with a block code on the function line indicating that it is not configured in the response message sent by the memory 39.

본 발명에 따르면, 메모리(39)는 응답 발생기(316)로부터의 응답 메시지를 기억시키기 위한 그리고 프로세서(31)에 의한 대응 명령의 개시에 뒤이은 비특정 시간에 버스(25)에 대한 액세스를 얻은 후 프로세서 노드(31)로 기억된 응답 메시지를 전송하기 위한 출력 큐 수단을 포함한다. 여기서 구현되는 바와 같이 그러한 수단은 출력 큐(318)를 포함한다. 발생기(316)가 응답메시지를 컴파일 했을 경우, 그것은 출력 큐(318)에 공급된다. 출력큐(318)는 메모리(39)가 버스(25)에 대한 액세스를 요구한다는 것을 버스 인터페이스(64)에 신호한다. 응답 메시지는 그러한 액세스가 얻어질때까지 비특정 시간 동안 출력 큐(318)에 기억된다.According to the present invention, the memory 39 obtains access to the bus 25 for storing the response message from the response generator 316 and at a non-specific time following the initiation of the corresponding instruction by the processor 31. And output queue means for transmitting the response message stored to the processor node 31 afterwards. As implemented herein, such means includes an output queue 318. When generator 316 has compiled a response message, it is supplied to output queue 318. The output queue 318 signals the bus interface 64 that the memory 39 requires access to the bus 25. The response message is stored in the output queue 318 for a non-specific time until such access is obtained.

메모리(39)가 버스(25)에 대한 액세스가 허용될 때, 출력 큐(318)에 포함된 응답 메시지는 명령을 본래 발생시킨 명령기 노드에 전송하기 위해 시스템 버스(25)상에 실린다. 명령기 노드에 의해 본래 전송된 명령의 실행을 메모리(39)가 종료할 시간을 알지 못하고 또한 메모리(39)가 요구된 데이타 또는 록 상태 정보를 공급하기 위해 버스(25)에 대한 액세스를 얻을 시간이 불확실하므로, 인터록 판독 명령에 대응하는 록 상태 정보가 본래의 인터록 판독 명령의 개시에 뒤이은 비특정 시간에 명령기 노드에서 버스(25)의 기능 라인상에 나타난다.When the memory 39 is allowed access to the bus 25, the response message contained in the output queue 318 is loaded on the system bus 25 for transmission to the commander node that originally issued the command. It is not known when the memory 39 will terminate execution of the command originally sent by the commander node, and also when the memory 39 will gain access to the bus 25 to supply the requested data or lock status information. As this is uncertain, the lock status information corresponding to the interlock read command appears on the functional line of the bus 25 at the commander node at a non-specific time following the initiation of the original interlock read command.

명령기 노드가 성공적인 인터록 판독 명령후 응답기 노드에 의해 발생된 응답 메시지를 수신하지 못할 경우, 명령기 노드는 인식 지시를 발생시키지 않는다. 응답기노드가 응답 메시지로부터의 확인을 수신하지 못하거나 인식하지 못할 경우, 인터록 판독 명령에 의해 세트된 록 비트를 클리어시킨다.If the commander node does not receive a response message generated by the responder node after a successful interlock read command, the commander node does not issue a recognition indication. If the responder node does not receive or acknowledge the acknowledgment from the response message, it clears the lock bit set by the interlock read command.

본 발명에 따르면, 메모리(39)는 제1 및 제2형태의 응답 메시지를 선택적으로 발생키기기 위한 수단을 포함하는데, 제1방식의 데이타 메시지는 록 수단이 언록 상태에 있을 때 기억된 정보를 포함하고 제2방식의 데이타 메시지는 록 수단이 록 상태에 있을 때 정보의 무용성을 나타낸다. 여기서 구현되는 바와 같이, 그러한 수단은 록 상태 라인(314), 응답 발생기(316), 디코더(308) 및 록 제어기(310)를 포함한다.According to the invention, the memory 39 comprises means for selectively generating first and second types of response messages, wherein the data messages of the first manner are adapted to store information stored when the locking means is in the unlocked state. And a second type of data message indicates the uselessness of the information when the locking means is in the locked state. As implemented herein, such means includes a lock status line 314, a response generator 316, a decoder 308, and a lock controller 310.

E. 록제어기(310)의 설명E. Description of Lock Controller 310

제9도를 참조하면 록 제어기(310)의 더욱 상세화된 블록도가 도시되어 있다. 본 발명에 따르면, 록 수단은 인터록 판독 명령이 방지되는 메모리 어레이(39)내의 어드레스에 대응하는 선택된 어드레스를 수신하기 위한 록 태그 수단을 포함한다. 여기서 구현되는 바와 같이 록 태그 수단은 논리 제어기(350)와 함께 록 제어기(310)를 구성하는 논리 제어기(352b,352c,352d)를 포함한다. 보다 많거나 보다 적은 록 태그가 특정 응용에 따라서 구성될 수 있다는 것을 알아야겠다. 록 태그들(352a-d)은 구성 및 동작면에서 동일하다. 명백하게 하기 위해 록태그(352a)에 대해서만 상세한 회로가 도시되어 있다.Referring to FIG. 9, a more detailed block diagram of the lock controller 310 is shown. According to the invention, the lock means comprises lock tag means for receiving the selected address corresponding to the address in the memory array 39 in which the interlock read command is prevented. As implemented herein, the lock tag means comprises logical controllers 352b, 352c, and 352d that together with the logic controller 350 make up the lock controller 310. It should be noted that more or fewer lock tags can be configured depending on the particular application. The lock tags 352a-d are identical in configuration and operation. For clarity, a detailed circuit is shown only for the lock tag 352a.

각 록 태그(352a-d)는 시스템(20)의 어드레스 공간에서의 위치에 대응하는 값을 기억하기 위한 기억레지스터(354)를 포함한다. 레지스터(354)는 그것에 저장된 값을 나타나게 하는 출력단자(356)를 포함한다. 또한 레지스터(354)는 어드레스 라인(309)에 접속된 입력단자(360) 및 인에이블 단자(358)를 포함한다. 인에이블 단자(358)를 작동 시키면, 레지스터(354)가 어드레스 라인(309)상에 실린 신호를 로드하게 된다.Each lock tag 352a-d includes a storage register 354 for storing a value corresponding to a position in the address space of the system 20. The register 354 includes an output terminal 356 that shows the value stored in it. The register 354 also includes an input terminal 360 and an enable terminal 358 connected to the address line 309. Operating the enable terminal 358 causes the register 354 to load the signal carried on the address line 309.

레지스터 출력단자(356)는 비교기(368)의 한 입력단자(366)에 접속된다. 비교기(368)는 어드레스 라인(309)에 접속된 또 다른 입력단자(370)를 갖는다. 비교기(368)의 출력단자(372)는 2입력 AND게이트(374)의 한 입력단자에 공급되는 "부합"신호를 구성한다. AND게이트(374)의 다른 입력단자는 명령라인(311)의 언록기입라인(380)에 접속된다. AND게이트(374)의 출력단자는 래치(382)의 리셋 단자에 접속된다.The register output terminal 356 is connected to one input terminal 366 of the comparator 368. Comparator 368 has another input terminal 370 connected to address line 309. The output terminal 372 of the comparator 368 constitutes a " matching " signal supplied to one input terminal of the two-input AND gate 374. The other input terminal of the AND gate 374 is connected to the unlock writing line 380 of the command line 311. The output terminal of the AND gate 374 is connected to the reset terminal of the latch 382.

래치(382)의 출력 단자는 2입력 AND게이트(386)의 한 입력단자(387)에 공급되는 "록"신호를 구성한다. AND게이트(386)와 다른 입력단자는 비교기(368)의 부합신호 출력에 접속된다. AND게이트(386)의 출력은 어드레스 라인상에 나타나는 어드레스가 록 태그(352)에 의해 "록"된 것을 나타내는 "히트"신호를 구성한다.The output terminal of the latch 382 constitutes a block signal supplied to one input terminal 387 of the two-input AND gate 386. The AND gate 386 and the other input terminal are connected to the match signal output of the comparator 368. The output of the AND gate 386 constitutes a "hit" signal indicating that the address appearing on the address line is blocked by the lock tag 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)의 세트 단자에 접속된다.The final component of the lock tag 352a is a four input AND gate 388. One input of the AND gate 388 is connected to a line 390 of the command line 311 indicating that the command currently being processed by the memory node 39 is an interlock read command. The second input of AND gate 388 is connected to clock signal 389 to properly gate the operation of lock tag 352a and prevent race conditions. The third input of the AND gate 388 is connected to the "assignment" terminal of the logic controller 350 to be described below. The fourth input terminal of the AND gate 388 is connected to the inverted lock state signal 314. The output terminal of the AND gate 388 is connected to the enable input 358 of the register 354 and the set terminal of the latch 382.

논리제어기(350)는 유휴 록 태그를 선택하기 위해 선택 인코더로서 기능을 하는 록 태그 할당회로(392)를 포함한다. 록 태그(352a-d)로부터의 록 비트의 상태에 의해 할당회로(392)는 록 태그가 자유 상태라는 것을 결정하며, 선택된 록 태그에 대해 "할당"신호를 발생시킴으로써 로킹 기능을 제공하기 위해 유효 록 태그중 하나를 할당한다.The logic controller 350 includes a lock tag assignment circuit 392 that functions as a selection encoder for selecting an idle lock tag. The assignment circuit 392 determines that the lock tag is in the free state by the state of the lock bits from the lock tags 352a-d, and is effective for providing a locking function by generating a "assign" signal for the selected lock tag. Assign one of the lock tags.

록 태그 모두가 현재 할당될 경우, "모두 비지" 출력 신호가 5입력 OR게이트(394)의 한 입력에 공급된다. OR게이트(394)의 다른 입력들에는 록 태그(352a-d)의 각 "히트"신호가 공급된다.When all of the lock tags are currently assigned, all non-cleared output signals are supplied to one input of the five input OR gate 394. The other inputs of the OR gate 394 are supplied with the respective "hit" signals of the lock tags 352a-d.

인터록 판독 명령을 처리하는 록 제어기(310)의 동작이 이제 설명되겠다. 어드레스 라인(309)상의 어드레스 값이 레지스터(354)에 기억된 어드레스 값과 일정하게 비교된다. 레지스터(354)에 기억된 어드레스 값중 어느값도 어드레스 라인(309)상에 나타나는 어드레스값과 같지 않을 경우, 부합 신호가 어서트되지 않고, "히트"신호가 어서트되지 않는다. 회로(392)의 "모두 비지"신호가 또한 어서트되지 않는다고 가정하면, OR게이트(394)의 입력은 액티브되지 않고 록 상태 라인(314)은 세트되지 않는다. 이어서, 메모리 어레이(312) (제8도)는 특정 위치의 내용을 응답 발생기(316)에 공급한다. 록 상태 라인(314)의 논어서트로 인해 응답 발생기(316)가 제1형태의 응답 메시지를 발생시키게 되는데, 이 제1형태의 응답 메시지에서는 "양호 판독 데이타"코드가 응답 메시지 비트에 세트되며, 이 응답 메시지 비트가 그것을 요구한 명령 코드에 버스(25)의 기능 라인을 통하여 전송된다.The operation of the lock controller 310 to process the interlock read command will now be described. The address value on the address line 309 is constantly compared with the address value stored in the register 354. If none of the address values stored in the register 354 is the same as the address value appearing on the address line 309, the match signal is not asserted and the "hit" signal is not asserted. Assuming that neither of the circuits 392's busy signal is also asserted, the input of the OR gate 394 is not active and the lock state line 314 is not set. The memory array 312 (FIG. 8) then supplies the contents of the particular location to the response generator 316. The non-assertion of the lock status line 314 causes the response generator 316 to generate a response message of the first type, in which the " good read data " code is set in the response message bit, This response message bit is sent via the function line of the bus 25 to the command code which requested it.

이제 록 상태 라인(314)의 반전된 값이 AND게이트(388)에 공급된다. 회로(392)는 록 태그(352a-d)의 할당 신호중 하나를 공급한다. 인터록 판독이 처리되고 있으므로, 인터록 판독 라인(390)이 디코더(308)(제8도)에 의해 세트된다. 따라서, 클럭신호(389)가 활성화될때, 록 태그(352a)의 AND게이트(388)가 레지스터(354)를 인에이블시키게끔 활성화된다. 어드레스 라인(309)상에 나타나는 어드레스 값이 록 태그(352a)의 레지스터(354)에 기억된다. 또한 AND게이트(388)의 활성화로 인해 래치(382)가 세트되어 록 태그(352)의 단자(384)의 록 비트를 어서트시킨다. 록 태그(352)의 레지스터(354)내에 포함된 특정 위치에 대한 액세스는 후속 인터록 판독 명령으로 이제 부정된다.The inverted value of lock status line 314 is now supplied to AND gate 388. Circuit 392 supplies one of the assignment signals of lock tags 352a-d. Since the interlock read is being processed, the interlock read line 390 is set by the decoder 308 (Fig. 8). Thus, when clock signal 389 is activated, AND gate 388 of lock tag 352a is activated to enable register 354. The address value appearing on the address line 309 is stored in the register 354 of the lock tag 352a. In addition, the latch 382 is set due to the activation of the AND gate 388 to assert the lock bit of the terminal 384 of the lock tag 352. Access to a specific location contained within register 354 of lock tag 352 is now negated with a subsequent interlock read command.

록된 위치에 대한 후속 인터록 판독 명령은 다음의 동작을 발생시킨다. 어드레스 라인(309)상에 나타나는 어드레스 값은 록 태그(352a)의 레지스터(354)에 기억된 값과 동일하다. 록 태그(352a)의 단자(372)에서의 부합 신호가 따라서 세트된다. 록 태그(352a)에 대한 단자(384)에서의 록 비트가 이전 인터록 판독 동작으로부터 세트되므로, AND게이트(386)의 양 입력이 이제 액티브되어 록 태그(352a)의 히트 신호가 어서트되게 된다. 이것은 또한 록 상태 라인(314)을 활성화시키기 위해 OR게이트(394)를 활성화시킨다. 록상태 라인(314)의 활성화로 인해, 응답 발생기(316)(제8도)가 제2형태의 응답 메시지를 발생시키게 되며, 이 응답 메시지에는 록된 응답 코드가 메시지의 기능 비트상에 세트된다.Subsequent interlock read commands for the locked position produce the following operation. The address value appearing on the address line 309 is the same as the value stored in the register 354 of the lock tag 352a. The match signal at terminal 372 of lock tag 352a is thus set. Since the lock bit at terminal 384 for lock tag 352a is set from a previous interlock read operation, both inputs of AND gate 386 are now active, causing the hit signal of lock tag 352a to be asserted. This also activates the OR gate 394 to activate the lock status line 314. The activation of the lock status line 314 causes the response generator 316 (FIG. 8) to generate a second type of response message, in which the locked response code is set on the function bits of the message.

록 비트를 클리어시키는 언록 기입 명령의 동작이 이제 설명되겠다. 이전 록된 위치에 대한 언록 기입 명령은 록태그의 레지스터(354)에 기억된 값과 동일한 값을 어드레스 라인(309)상에 실리게 한다. 예를들어, 록 태그(352a)에 의해 록된 위치를 언록시키기 위해 언록기입 명령이 전송되었다고 하자. 어드레스 라인(309)상에 어드레스값이 나타날때, 비교기(368)의 출력은 부합 신호를 세트시킨다. 언록 기입 라인(391)이 이때 또한 하이가 되므로, AND게이트(374)가 활성화되어 래치(382)가 출력단자(384)에서 록 비트 신호를 리셋시키게 된다. AND게이트(386)는 활성화가 해제되어 OR게이트(394)의 입력단자로부터 록 태그(352)에 대한 액티브 히트 신호를 제거한다. 언록 기입 명령으로 전송된 데이타가 이어서 메모리내의 특정 위치에 기입된다.The operation of the unlock write command to clear the lock bit will now be described. The unlock write command for the previously locked position causes the same value as the value stored in the register 354 of the lock tag to be loaded on the address line 309. For example, assume that an unlock write command has been sent to unlock the position locked by the lock tag 352a. When an address value appears on address line 309, the output of comparator 368 sets the match signal. Since the unlock write line 391 is also high at this time, the AND gate 374 is activated so that the latch 382 resets the lock bit signal at the output terminal 384. The AND gate 386 is deactivated to remove the active hit signal for the lock tag 352 from the input terminal of the OR gate 394. The data transferred by the unlock write command is then written to a specific location in the memory.

인터록 판독 명령후 비특정 시간에 시스템 버스를 통하여 데이타 전송으로서 프로세서에 공급된 록 상태 메시지를 제공함으로써, 본 발명은 전송 인식과 록 상태 전송 기능들을 분리시켜서, 록 상태 정보가 소정 시간 또는 전용 록 상태 라인들을 통하여 전송되게끔 요구되었을 경우 필요한 경비 및 복잡성 없이 다중 록 비트의 사용을 위해 제공한다. 또한, 본 발명은 시스템 버스로부터 분리된 버스들 및 아답터를 통하여 시스템에 접속된 노드들로부터 록 상태정보를 얻게한다.By providing the lock status message supplied to the processor as a data transfer over the system bus at an unspecified time after an interlock read command, the present invention separates the transfer recognition and lock state transfer functions, so that the lock state information can be stored for a predetermined time or dedicated lock state. Provides for the use of multiple lock bits without the necessary cost and complexity when required to be transmitted over the lines. The present invention also obtains lock status information from nodes connected to the system via buses and adapters separate from the system bus.

상기 설명을 통하여, 록된 메모리 즉 어드레스 공간은 "위치"로 기재되었다. 단일 인터록 판독 명령 또는 언록 기입 명령이 어드레스에서의 위치들의 영역을 각각 록 및 언록할 수 있으며 단지 단일 위치만을 록 및 언록하지 않도록, 레지스터에 기억된 각 어드레스는 어드레스들의 영역을 구성할 수도 있다.Throughout the above description, the locked memory, that is, the address space, has been described as " position ". Each address stored in a register may constitute an area of addresses such that a single interlock read command or an unlock write command can lock and unlock areas of positions in an address, respectively, and not lock and unlock only a single position.

본 발명의 버스인터페이스 회로 및 인터페이스에서 본 발명의 사상 및 범위를 벗어나지 않고 여러가지 수정 및 변화가 이루어질 수 있다는 것을 본 기술 분야에 숙련된 자는 명백히 알 수 있겠다. 부속 청구범위에는 그러한 수정 및 변화가 포함되어 있다.It will be apparent to those skilled in the art that various modifications and changes can be made in the bus interface circuit and the interface of the present invention without departing from the spirit and scope of the invention. The appended claims contain such modifications and variations.

Claims (7)

펜디드 버스상의 배타적 판독-수정-기입 동작을 실행하기 위한 장치로서, 상기 동작은 특정위치에 기억된 정보를 검색하고 후속인터록 판독 명령에 의해 상기 기억 정보에 대한 액세스를 제한하기 위한 인터록 판독 명령과, 상기 특정 위치에 정보를 기억시키고 상기 기억된 정보에 대한 액세스를 복원시키기 위한 언록 기입명령을 포함하는 상기 펜디드 버스상의 일련의 상이한 트랜잭션을 갖는데, 명령기 노드로부터 인터록 판독명령을 수신하기 위한 수단과; 상기 특정 위치를 포함하는데, 정보를 기억시키기 위한 기억수단과; 상기 기억수단과 결합되고 언록 상태와 록 상태 사이에서 동작가능한데, 언록 상태에서 상기 기억수단에 대한 액세스를 허용하고 록 상태에서 상기 기억 수단에 대한 액세스를 부정하기 위한 록 수단과; 상기 인터록 판독 명령에 응답하여, 상기 록 수단의 상태를 나타내는 록 상태 지시를 발생시키고, 언록상태로부터 록 상태로 상기 록 수단을 스위칭하며, 언록 기입 명령에 응답하여, 상기 특정 위치에서 수정된 정보를 기억시키고 록 상태로부터 언록 상태로 상기 록 수단을 스위칭하기 위한 명령수단과; 상기 인터록 판독 명령을 발생시킨 상기 명령기 노드에 상기 인터록 판독 명령의 개시에 뒤이은 비 특정 시간에 상기 록 수단 상태에 대응하는 록 상태 메시지를 전송하기 위한 상태 응답 수단을 구비하는 것을 특징으로 하는 펜디드 버스상의 배타적 판독-수정-기입 동작 실행장치.An apparatus for executing an exclusive read-modify-write operation on a fenced bus, the operation comprising: an interlock read command for retrieving information stored at a specific location and for limiting access to the stored information by a subsequent interlock read command; Means for receiving an interlock read command from the commander node, having a series of different transactions on the pending bus including an unlock write command for storing information at the particular location and restoring access to the stored information. and; Storage means for storing information, said specific position being included; Lock means associated with the storage means and operable between an unlocked state and a locked state, the lock means for allowing access to the storage means in the unlocked state and denying access to the storage means in the locked state; In response to the interlock read command, generate a lock state indication indicative of the state of the lock means, switch the lock means from the unlock state to the lock state, and in response to the unlock write command, modify the information modified at the specific position. Command means for storing and switching said lock means from a locked state to an unlocked state; And status response means for transmitting a lock status message corresponding to the lock means status to a non-specified time subsequent to the initiation of the interlock read command to the commander node that has issued the interlock read command. Exclusive read-modify-write operation executor on the bus. 제1항에 있어서, 상기 인터록 판독 명령의 수신을 나타내는 인식 확인 신호를 상기 인터록 판독 명령의 개시에 뒤이은 소정 시간에 상기 명령기 노드에 전송하기 위한 수단을 구비하는 것을 특징으로 하는 장치.2. The apparatus of claim 1, comprising means for transmitting an acknowledgment signal indicative of receipt of the interlock read command to the commander node at a predetermined time subsequent to the initiation of the interlock read command. 제1항에 있어서, 상기 상태 응답 수단은 제1 및 제2형태의 응답 메시지를 선택적으로 발생시키기 위한 수단을 구비하는데, 상기 제1형태의 데이타 메시지는 상기 록 수단이 상기 언록 상태에 있을 때 상기 기억된 정보를 포함하고, 제2형태의 데이타 메시지는 상기 록 수단이 상기 록 상태에 있을 때 상기 정보의 무용성을 나타내는 것을 특징으로 하는 장치.2. The apparatus according to claim 1, wherein said status response means comprises means for selectively generating first and second types of response messages, wherein said first type of data message is adapted when said lock means is in said unlocked state. An information message of a second type, said stored information being inoperative when said lock means is in said locked state. 반복되는 버스 사이클 동안 데이타를 전파하는 펜디드 버스상의 프로세서 노드로부터의 배타적 판독-수정-기입 동작을 실행하기 위한 장치로서, 상기 동작이 메모리 노드내의 특정위치에 기억된 정보를 검색하고 후속 인터록 판독 명령에 의해 상기 기억된 정보에 대한 액세스를 제한하기 위해 록 상태에서 상기 특정 위치를 설정하기 위한 인터록 판독 명령과, 상기 특정위치에 정보를 기억시키고 상기 기억된 정보에 대한 액세스를 복원시키기 위해 언록 상태에서 상기 특정위치를 설정하기 위한 언록 기입 명령을 포함하는 상기 펜디드 버스상의 일련의 상이한 트랜잭션을 가지며, 상기 트랜잭션들은 상기 버스를 통하여 전송된 명령 및 응답 메시지를 통하여 수행되는데, 명령 메시지에 뒤이은 소정 수의 버스사이클 후 상기 프로세서 노드에 인식 지시 신호를 전송하기 위한 인식 수단과; 상기 프로세서 노드로부터 상기 인터록 판독 명령 메시지 및 언록 기입 명령 메시지를 수신하기 위한 입력 큐 수단과; 상기 입력 큐 수단으로부터 기억된 명령을 제거하고 상기 명령으로부터 인터록 판독 및 언록 기입 제어 및 어드레스 데이타를 발생시키기 위한 명령 디코더 수단과; 상기 특정 위치를 포함하는 복수의 어드레스 위치를 가지며, 상기 디코더 수단으로부터의 제어 및 어드레스 데이타에 응답하여 상기 정보를 기억시키고 검색하기 위한 메모리 어레이와; 상기 메모리 어레이내의 어드레스 위치에 대응하는 메모리 어드레스 값을 기억시키기 위한 위치를 갖는 록 기억 레지스터와; 상기 디코더 수단으로부터의 상기 인터록 판독 명령 및 어드레스 데이타에 응답하여, 상기 인터록 판독 어드레스가 상기 록 기억 레지스터에 벌써 나타나지 않을 경우 상기 록 기억 레지스터에 상기 인터록 판독 어드레스 데이타를 위치시키고, 상기 록 기억 레지스터에 기억된 상기 데이타에 대응하는 메모리 어레이 어드레스 위치를 록 상태에서 설정하며, 상기 디코더 수단으로부터의 언록 기입 제어 및 어드레스 데이타에 응답하여, 상기 록 기억 레지스터에 기억된 상기 언록 기입 데이타에 대응하는 메모리 어레이 어드레스 위치를 언록 상태로 설정하고, 상기 인터록 판독 제어 데이타에 응답하여, 상기 인터록 판독 어드레스 데이타에 의해 특정된 메모리 어레이 어드레스 위치의 상태에 대응하는 록 상태 신호를 발생시키기 위한 록 제어기 수단과; 상기 록 상태 신호에 응답하여, 상기 특정 어드레스가 언록 상태에 있을 경우, 상기 입력 큐로부터 검색된 명령의 어드레스 데이타에 의해 특정된 메모리 어드레스의 내용을 포함하는 응답 메시지를 발생시키고, 상기 특정 어드레스가 록 상태에 있을 경우, 록된 응답을 포함하는 응답 메시지를 발생시키기 위한 발생기 수단과; 상기 발생기 수단으로부터의 응답메시지를 기억시키고, 상기 프로세서 노드에 의해 대응 명령의 개시에 뒤이은 비특정 시간에 상기 버스에 대한 액세스를 얻은 후 상기 프로세서 노드에 상기 기억된 응답 메시지를 전송하기 위한 출력 큐 수단을 구비하는 것을 특징으로 하는 반복 버스 사이클 동안 데이타를 전파하는 펜디드 버스상의 프로세서 노드로부터의 배타적 판독-수정-기입 동작 실행장치.An apparatus for executing an exclusive read-modify-write operation from a processor node on a fenced bus that propagates data during repeated bus cycles, wherein the operation retrieves information stored at a specific location within the memory node and subsequent interlock read instructions. An interlock read command for setting the specific position in the locked state to limit access to the stored information by means of an unlocked state for storing information in the specific position and restoring access to the stored information. Having a series of different transactions on the pending bus including an unlock write command to set the specific location, the transactions being performed via command and response messages sent over the bus, a predetermined number following the command message. Recognize the processor node after a bus cycle of Recognition means for transmitting a time signal; Input queue means for receiving the interlock read command message and unlock write command message from the processor node; Command decoder means for removing a stored command from said input queue means and generating interlock read and unlock write control and address data from said command; A memory array having a plurality of address positions including said specific position, for storing and retrieving said information in response to control and address data from said decoder means; A lock memory register having a position for storing a memory address value corresponding to an address position in the memory array; In response to the interlock read command and address data from the decoder means, if the interlock read address does not already appear in the lock storage register, locate the interlock read address data in the lock storage register and store in the lock storage register. The memory array address position corresponding to the data set in the locked state is set, and in response to the unlock write control and address data from the decoder means, the memory array address position corresponding to the unlock write data stored in the lock memory register. Is set to the unlocked state, and in response to the interlock read control data, a lock controller means for generating a lock state signal corresponding to the state of the memory array address position specified by the interlock read address data. .; In response to the lock status signal, when the specific address is in the unlocked state, a response message is generated that includes the contents of the memory address specified by the address data of the command retrieved from the input queue, and the specific address is in the locked state. Generator means for generating a response message, if present, comprising a locked response; An output queue for storing a response message from the generator means and for obtaining access to the bus at a non-specific time subsequent to the initiation of a corresponding command by the processor node and for transmitting the stored response message to the processor node. Means for executing an exclusive read-modify-write operation from a processor node on a fenced bus for propagating data during a repeating bus cycle. 제4항에 있어서, 상기 록 제어기 수단은 상기 응답 메시지가 상기 프로세서 노드에 의해 성공적으로 수신되지 않을 경우 언록 상태에서 상기 메모리 어레이 어드레스 위치를 복원시키기 위한 수단을 구비하는 것을 특징으로 하는 장치.5. The apparatus of claim 4, wherein the lock controller means comprises means for restoring the memory array address location in an unlocked state if the response message is not successfully received by the processor node. 펜디드 버스상의 배타적 판독-수정-기입 동작에 응답하기 위한 방법으로서, 상기 동작은 특정위치에 기억된 정보를 검색하고 후속 인터록 판독 명령에 의해 상기 기억된 정보에 대한 액세스를 제한하기 위한 인터록 판독 명령과, 상기 특정 위치에 정보를 기억시키고 상기 기억된 정보에 대한 액세스를 복원시키기 위한 언록 기입명령을 포함하는 상기 펜디드 버스상의 일련의 상이한 트랜잭션을 갖는데, 명령기 노드로부터 인터록 명령을 수신하는 단계와; 록 표시자를 검사하여 상기 록 표시자가 언록 상태에 있을 경우 상기 록 표시자를 언록 상태로부터 록 상태로 스위칭하는 단계와; 상기 록 표시자 상태에 대응하는 록 상태 신호를 상기 인터록 판독 명령의 개시에 뒤이은 비특정 시간에 상기 명령기 노드에 전송하는 단계와; 수정된 정보를 상기 특정위치에 기억시키고, 언록 기입명령의 수신시 록상태로부터 언록 상태로 상기 록 표시자를 스위칭하는 단계를 포함하는 것을 특징으로 하는 펜디드 버스상의 배타적 판독-수정-기입 동작에 응답하기 위한 방법.A method for responding to an exclusive read-modify-write operation on a fenced bus, wherein the operation retrieves information stored at a specific location and an interlock read command for restricting access to the stored information by a subsequent interlock read command. And a series of different transactions on the pending bus including an unlock write command for storing information at the specific location and restoring access to the stored information, the method comprising the steps of: receiving an interlock command from the commander node; ; Checking the lock indicator and switching the lock indicator from an unlocked state to a locked state if the lock indicator is in an unlocked state; Transmitting a lock state signal corresponding to the lock indicator state to the commander node at a non-specific time subsequent to the initiation of the interlock read command; Storing modified information at said specific location and switching said lock indicator from unlocked state to unlocked state upon receipt of an unlock write command; and responding to an exclusive read-modify-write operation on a fenced bus. How to. 제6항에 있어서, 상기 인터록 판독 명령의 수신을 나타내는 인식 확인 신호를 상기 명령의 개시에 뒤이은 소정 시간에 상기 명령기 노드에 전송하는 단계를 아울러 포함하는 것을 특징으로 하는 방법.7. The method of claim 6, further comprising transmitting an acknowledgment signal indicative of receipt of the interlock read command to the commander node at a predetermined time subsequent to the commencement of the command.
KR1019880701787A 1987-05-01 1988-04-25 Method and apparatus for implementing multigle lock indications in a multiprocessor computer system KR910007750B1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
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
US044,466 1987-05-01
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 (en) 1989-12-23
KR910007750B1 true KR910007750B1 (en) 1991-09-30

Family

ID=21932544

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019880701787A KR910007750B1 (en) 1987-05-01 1988-04-25 Method and apparatus for implementing multigle lock indications in a multiprocessor computer system

Country Status (8)

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

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT1227711B (en) * 1988-11-18 1991-05-06 Caluso Torino MULTIPROCESSOR SYSTEM FOR DATA PROCESSING TO SHARED DISTRIBUTED RESOURCES AND STALL PREVENTION.
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 (en) * 1989-06-30 1991-04-12 Nec Corp Bus lock control system
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
US5499356A (en) * 1989-12-29 1996-03-12 Cray Research, Inc. Method and apparatus for a multiprocessor resource lockout instruction
US5168570A (en) * 1989-12-29 1992-12-01 Supercomputer Systems Limited Partnership Method and apparatus for a multiple request toggling priority system
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
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
US5269005A (en) * 1991-09-17 1993-12-07 Ncr Corporation Method and apparatus for transferring data within a computer system
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 (en) * 1992-06-11 2004-04-05 セイコーエプソン株式会社 Data transfer control device
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 (en) * 1994-06-01 2003-01-07 富士通株式会社 Storage control method and storage control device in information processing system
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
US6611891B1 (en) 1998-11-23 2003-08-26 Advanced Micro Devices, Inc. Computer resource configuration mechanism across a multi-pipe communication link
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
US6397225B1 (en) * 1998-12-23 2002-05-28 Advanced Micro Devices, Inc. Messaging system with protocol independent message format
US6681341B1 (en) 1999-11-03 2004-01-20 Cisco Technology, Inc. Processor isolation method for integrated multi-processor systems
US6529983B1 (en) 1999-11-03 2003-03-04 Cisco Technology, Inc. Group and virtual locking mechanism for inter processor synchronization
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 (en) * 2004-12-10 2010-11-04 富士通株式会社 Data transfer apparatus and data transfer method
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
CN113821470B (en) * 2020-06-19 2024-09-06 杭州中天微系统有限公司 Bus device, embedded system and system on chip

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 (en) * 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 (en) * 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 (en) * 1977-10-28 1984-02-10 株式会社日立製作所 multiplex information processing system
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 (en) * 1981-12-22 1983-06-27 Toshiba Corp Accessing system for storage device
US4480307A (en) * 1982-01-04 1984-10-30 Intel Corporation Interface for use between a memory and components of a module switching apparatus
JPS58140862A (en) * 1982-02-16 1983-08-20 Toshiba Corp Mutual exclusion system
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 (en) * 1982-12-10 1984-06-19 Oki Electric Ind Co Ltd Bus constituting system
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 (en) * 1983-06-29 1985-01-19 Nec Corp Data processor
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
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
US4763249A (en) * 1983-09-22 1988-08-09 Digital Equipment Corporation Bus device for use in a computer system having a synchronous bus
US4626843A (en) * 1983-09-27 1986-12-02 Trw Inc. Multi-master communication bus system with parallel bus request arbitration
JPS60107170A (en) * 1983-11-15 1985-06-12 Nec Corp Multiprocessor control system
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
US4949239A (en) 1990-08-14
AU600830B2 (en) 1990-08-23
EP0344216B1 (en) 1993-08-04
WO1988008584A1 (en) 1988-11-03
CA1304828C (en) 1992-07-07
KR890702145A (en) 1989-12-23
AU1716888A (en) 1988-12-02
DE3882977T2 (en) 1994-03-24
EP0344216A1 (en) 1989-12-06
DE3882977D1 (en) 1993-09-09
JPH0642236B2 (en) 1994-06-01
JPH02500783A (en) 1990-03-15

Similar Documents

Publication Publication Date Title
KR910007750B1 (en) Method and apparatus for implementing multigle lock indications in a multiprocessor computer system
KR920010915B1 (en) Method and apparatus for managing multiple lock indicators in multiprocessor computor system
US4937733A (en) Method and apparatus for assuring adequate access to system resources by processors in a multiprocessor computer system
KR930000992B1 (en) Method and apparatus for initiating interlock read tranactions on a multiprocessor system
KR910007644B1 (en) Apparatus and method for determining access to a bus
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 (en) Commander method and apparatus for ensuring sufficient access to system resources in a multiprocessor computer system

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