KR0171771B1 - 컴퓨터 시스템에 있어서 어드레스 버스 잠금 제어장치 - Google Patents
컴퓨터 시스템에 있어서 어드레스 버스 잠금 제어장치 Download PDFInfo
- Publication number
- KR0171771B1 KR0171771B1 KR1019950069182A KR19950069182A KR0171771B1 KR 0171771 B1 KR0171771 B1 KR 0171771B1 KR 1019950069182 A KR1019950069182 A KR 1019950069182A KR 19950069182 A KR19950069182 A KR 19950069182A KR 0171771 B1 KR0171771 B1 KR 0171771B1
- Authority
- KR
- South Korea
- Prior art keywords
- lock
- signal
- address
- buffer
- system bus
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/362—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
- G06F13/364—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Small-Scale Networks (AREA)
Abstract
본 발명은 잠금제어기에 관한 것으로, 시스템 버스와 인터페이스하기 위한 시스템 버스 정합부(21); 시스템 버스 정합부로부터 어드레스와 바이트 인에이블 정보를 입력받아 로드(load)신호에 따라 저장하거나 딜리트(delete)신호에 따라 삭제하며, 이전에 가지고 있는 어드레스 및 바이트 인에이블과 시스템 버스를 통해 새로 입력된 어드레스 및 바이트 인에이블 신호가 일치하면 세임(same)신호를 출력하며, 이전에 가지고 있는 어드레스와 시스템 버스를 통해 새로 입력된 어드레스가 일치하나 바이트 인에이블 신호가 같지 않으면 액티브되는 오버(over)신호를 출력하고, 잠금버퍼에 어드레스가 저장되면 액티브되는 플래그(flag)신호를 출력하는 잠금버퍼(22); 시스템 정합부로부터 슬롯번호와 전송형태를 입력받아 전송형태가 인터록 리드(interlock read)이면 잠금버퍼의 플래그비트를 검색하여 빈 버퍼의 최하단에 해당 어드레스를 저장하도록 로드신호를 출력하고, 록 비지(lock_busy)조건이면 록 비지신호를 발생하며, 전송형태가 인터록 라이트(interlock write)이면 해당 슬롯번호와 어드레스를 비교하여 일치하면, 버퍼를 비우도록 딜리트(delete)신호를 출력하는 잠금 제어부(23)를 구비하여 잠금버퍼가 비어 있으면 최하단부터 순차적으로 사용할 수 있도록 하므로써 잠금 제어를 효율적으로 처리할 수 있는 효과가 있다.
Description
제1도는 일반적인 다중 프로세서 컴퓨터시스텀의 예를 도시한 도면.
제2도는 종래의 방식에 따른 어드레스 버스 잠금제어 방법을 도시한 흐름도.
제3도는 본 발명에 다른 어드레스 버스 잠금제어기를 도시한 블록도.
제4도는 본 발명에 다른 어드레스 버스 잠금제어 방법을 도시한 흐름도.
* 도면의 주요부분에 대한 부호의 설명
1 : 시스템버스 2 : 프로세서보드
3 : 메모리브드 4 : 입출력제어보드
5 : 시스템제어보드 21 : 시스템버스정합부
22 : 잠금버퍼 23 : 잠금제어기
24 : 상위블록
본 발명은 컴퓨터 시스템의 어드레스 버스 잠금 제어기술에 관한 것으로, 특히 다중 프로세서 구조를 갖는 중형 컴퓨터 시스템에 있어서 어드레스 버스를 검색하여 시스템 버스를 점유하지 않고 프로세서의 케쉬관련 동작인 '쓰기를 위한 읽기(Read Modify Write)' 주기를 수행하기 위한, 잠금(Lock) 동작을 제어하는 장치에 관한 것이다.
일반적인 다중 프로세서시스템은 제1도에 도시된 바와 같이, 시스템버스(1)에 공통 연결되는 다수의 프로세서보드(2), 메모리보드(3), 입출력제어보드(4), 및 시스템제어보드(5)등으로 구성되는데, 메모리보드(3)에 존재하는 잠금 제어기의 잠금동작은 프로세서 사이의 동기화를 보장하기 위해 사용하는 기능으로, 메모리를 읽고 쓰는 두 주기사이에 다른 프로레서들이 접근하지 못하는 것이다.
이를 위하여 처음으로 잠금을 요청한 요청기의 잠금 어드레스 버스의 내용을 잠금버퍼에 저장한 후, 자금을 요청한 요청기에 우선권을 부여하여 다른 요청기에 의한 잠금 실행을 허용하지 않도록 해야 한다. 따라서 다른 요청기에 의해 잠금 읽기(interlock read) 전송형태가 수행될 경우, 해당 잠금 어드레스 버스의 내용을, 현재 저장되어 있는 잠금 어드레스 바이트 인에이블 및 어드레스 태그와 각각 비교하여 일치할 경우에는 잠금 비지신호를 상위 블록으로 생성한다.
즉, 제1도와 같은 구성의 예로서, 중형컴퓨터에 있어서 시스템 버스(1)는 정보전달의 통로가 되는 백플레인 버스로서 HiPi버스이고, 프로세서보드(2)은 프로세서 및 캐쉬 메모리가 구비되며 운영체제 및 사용자의 프로그램이 수행되는 주 보드로서 공유 버스상에 10개의 보드까지 확장이 가능한 밀결합 다중 프로세서이다. 또한, 메모리보드(3)는 운영체제 및 사용자의 프로그램 및 데이터를 저장하는 보드로서 DRAN을 기반으로 소정의 기억용량을 가질 수 있고, 공유버스상에 최대 8장까지 실장할 수 있다. 또한, 입출력제어보드(4)는 디스크와 테이프등과 같은 대용량의 디바이스와 주기억장치 사이의 데이터전송을 효율적으로 처리하기 위한 프로세싱과 통로역할을 담당하는 보드로서, 블록 입출력 디바이스의 제어를 위한 디바이스를 저장하기 위한 롬 및 로칼 램을 구비하며 전송데이터를 임시 저장하기 위한 대용량의 버퍼도 가지고 있고, 공유 시스템버스상에 4개의 보드까지 확장가능하며 블록 입출력디바이스를 위한 인터페이스를 제공한다. 그리고 시스템제어보드(5)는 콘솔, 터미널, 프린터등의 문자 입출력처리 디바이스와, LAN, WAN등의 통신 디바이스와 주기억장치 사이의 데이터 전송을 효율적으로 처리하기 위한 프로세싱과 통로역할을 담당하고, 문자 및 통신입출력 디바이스의 제어를 위한 디바이스 드라이버를 내장할 수 있는 롬 및 로칼 램을 구비하며 시스템 전체자원으로서 TODC 및 배터리 백업 램도 가진다. 이러한 시스템제어보드는 공유 시스템버스상에 2개까지 장착가능하며 문자 및 통신 입출력 디바이스의 연결을 위하여 인터페이스를 제공한다.
그리고, HiPi버스를 채용한 중형컴퓨터에 있어서 전송형태(TT:Transfer Type)는 시스템 버스상의 전송형태신호선 TT3:0에 의해 표시되며, 잠금과 관련된 전송형태는 '잠금 읽기(Interlock Read)'와 '잠금 쓰기(Interlock Write)'가 있다. 잠금 읽기 전송형태는 단일 전송에 속하며 잠금동작을 위한 전송으로, 이 전송에 의해 잠금이 시작되는데, 노말 리드(Normal Read)와 동일한 버스동작으로 수행되지만 이 전송이 완료된 후 해당 영역이 잠금상태가 된다. 잠금 쓰기 전송형태는 단일전송에 속하며, 잠금을 위한 전송으로 이 전송에 의해 잠금이 풀리는데, 노말 라이트(Nomal Write)와 동일한 버스동작으로 수행되지만 이 전송이 완료된 이후에는 해당 영역이 잠금 상태에서 풀린다. 즉, 잠금읽기에 의해 데이터를 읽어간 프로세서는 내부적인 동작을 수행한 후 다시 그 영역에 데이터를 잠금 쓰기를 사용하여 데이터를 메모리에 씀으로써 잠금동작은 완료된다.
만일 임의의 요청기가 잠긴 영역을 억세스하려 하면, 어드레스 어크놀리지 신호선(AACK1..0)을 10으로 하여 요청한 영역이 잠겨있음을 알려준다.
그런데 종래의 잠금 제어기는 최대 5개의 잠금 주소를 기억할 수 있는 레지스터 버퍼와, 잠금을 요청한 요청기의 슬롯 어드레스를 저장하는 레지스터, 그리고 이들의 상태를 보고 제어하는 잠금 제어부로 구성된다.
이러한 종래의 잠금 제어기에서 잠금의 기본 단위는 바이트(byte)이며, 모든 요청기의 요구에 의해 매 주기마다 동작하게 되는데, 자신이 선택되지 않은 경우에도 잠금에 해당하는 동작이 있을 경우 시스템내에 설치된 모든 잠금 제어기는 동시에 같은 동작을 수행하도록 되어 있다.
한편, 이러한 종래의 잠금 제어기의 동작 흐름은 제2도에 도시된 바와 같이, 시스템 버스 접속부를 통해서 들어오는 어드레스 버스중 전송 형태를 주기마다 체크하는 단계(100); 전송형태가 잠금 읽기이면, 잠금버퍼의 상태를 검색하는 단계(101); 잠금버퍼의 상태를 검색한 결과, 잠금버퍼의 모든 영역이 비어 있으면 최하위 버퍼에 해당 어드레스 버스의 정보를 저장하고, 임의의 버퍼에 이전의 어드레스가 저장되어 있는 경우는 바로 윗단의 비어 있는 버퍼에 해당 어드레스를 저장하는 단계(103, 104, 105); 잠금 비지(lock_busy)조건을 체크하여 잠금비지조건이면, 잠금 비지신호를 발생하는 단계(107); 잠금 읽기가 아니고 잠금 쓰기이면, 해당 슬롯번호와 어드레스가 일치한지를 비교하여 일치하면 해당 잠금버퍼를 비워 잠금을 해제하는 단계(110, 111, 112)로 구성된다.
이와 같이 동작하는 종래의 잠금 제어기는 다음과 같은 문제점이 있다.
첫째로 잠금버퍼를 5단으로 하였을 경우, 임의의 버퍼에 어드레스가 저장되어 있으면, 다음 어드레스는 아랫 단의 버퍼가 비었음에도 불구하고, 그 버퍼의 바로 윗단에 해당 어드레스를 저장하므로 불필요한 버퍼의 낭비가 초래되었고, 둘째로 아래 4개의 버퍼가 비었더라도 맨 윗단의 잠금버퍼에 어드레스가 저장되어 있는 경우 해당 어드레스를 저장하지 못하는 문제점이 있었다.
이에 본 발명은 상기와 같은 종래의 문제점을 해소하기 위하여 안출된 것으로, 잠금버퍼를 효율적으로 사용할 수 있도록 하는 잠금 제어장치를 제공하는데 그 목적이 있다.
상기와 같은 목적을 달성하기 위하여 본 발명의 장치는, 다중 프로세서 시스템에 있어서, 시스템 버스와 인터페이스하기 위한 시스템 버스 정합부; 상기 시스템 버스 정합부로부터 어드레스와 바이트인에이블 정보를 입력받아 로드(load)신호에 따라 저장하거나 딜리트(delete)신호에 따라 삭제하며, 이전에 가지고 있는 어드레스 및 바이트 인에이블과 시스템 버스를 통해 새로 입력된 어드레스 및 바이트 인에이블 신호가 일치하면 세임(same)신호를 출력하며, 이전에 가지고 있는 어드레스와 시스템 버스를 통해 새로 입력된 어드레스가 일치하나 바이트 인에이블신호가 같지 않으면 액티브되는 오버(over)신호를 출력하고, 잠금버퍼에 어드레스가 저장되면 액티브되는 플래그(flag)신호를 출력하는 잠금버퍼; 시스템 정합부로부터 슬롯번호와 전송형태를 입력받아 전송형태가 인터록 리드(interlock read)이면 잠금버퍼의 플래그비트를 검색하여 빈 버퍼의 최하단에 해당 어드레스를 저장하도록 로드신호를 출력하고, 록 비지(lock_busy)조건이면 록 비지신호를 발생하며, 전송형태가 인터록 라이트(interlock write)이면 해당 슬롯번호와 어드레스를 비교하여 일치하면, 버퍼를 비우도록 딜리트(delete)신호를 출력하는 잠금 제어부로 구성된 것을 특징으로 한다.
이하, 첨부된 도면을 참조하여 본 발명을 자세히 설명하기로 한다.
먼저 록(LOCK)이란 앞서 설명한 바와 같이, 특정 프로세서가 특정 어드레스(록 영역)를 리드 후 라이트할 때까지 다른 프로세서가 상기 특정 어드레스 영역을 억세스하는 것을 금지하기 위한 것으로, 이러한 록 관련 제어는 통상 공유 메모리에 설치된 록 제어기에 의해 수행되도록 되어 있다.
이와 같은 록 동작은 인터록 리드(interlock read) 전송형태에 의해 시작되고, 인터록 라이트(interlock write)에 의해 완료된다.
본 발명에 따른 잠금 제어기는 제3도에 도시된 바와 같이, 시스템 버스와 인터페이스하기 위한 시스템 버스 정합부(21); 상기 시스템 버스 정합부로부터 어드레스와 바이트인에이블 정보를 입력받아 로드신호(LOAD4:0)에 따라 저장하거나 딜리트(DELETE4:0)신호에 따라 저장하며, 이전에 가지고 있는 어드레스 및 바이트 인에이블과 시스템 버스를 통해 새로 입력된 어드레스 및 바이트 인에이블 신호가 일치하면 세임신호(SAME4:0)를 출력하며, 이전에 가지고 있는 어드레스와 시스템 버스를 통해 새로 입력된 어드레스가 일치하나 바이트 인에이블신호가 같지 않으면 액티브되는 오버신호(OVER4:0)를 출력하고, 잠금버퍼에 어드레스가 저장되면 액티브되는 플래그신호(FLAG4:0)를 출력하는 잠금버퍼(22); 시스템 버스 정합부(21)로부터 슬롯번호(IN_AT7:0)와 전송형태(IN_TT3:0)을 입력받아 전송형태가 인터록 리드이면 잠금버퍼의 플래그비트를 검색하여 빈 버퍼의 최하단에 해당 어드레스를 저장하도록 로드신호를 출력하고, 록 비지(lock_busy)조건이면 록 비지신호를 발생하며, 전송형태가 인터록 라이트이면 해당 슬롯번호와 어드레스를 비교하여 일치하면 버퍼를 비우도록 딜리트신호를 출력하는 잠금 제어부(23)로 구성되어 있다.
이와 같이 구성되는 본 발명의 장치가 동작하는 것을 제4도의 흐름을 참조하여 설명한다.
시스템버스정합부(21)는 시스템버스(1)로부터 어드레스, 바이트인에이블, 전송형태, 어드레스 태그등과 같은 정보를 입력하고, 록 비지 신호를 출력한다.
잠금제어부(23)는 전송형태를 계속 체크하다가 인터록 리드이면, 잠금버퍼(22)의 상태를 체크한다. 이때, 잠금버퍼(22)는 5개의 잠금 어드레스를 저장할 수 있는 5개의 레지스터군을 가지고 있는데, 레지스터에 어드레스가 저장되어 있으면 플래그가 액티브상태로 있고 비어 있으면 플래그신호가 인액티브상태로 있다. 따라서 플래그상태를 보면 버퍼의 상태를 알 수 있다. 잠금버퍼(22)가 비어 있으면, 최하위의 레지스터에 어드레스 및 바이트 인에이블 데이터를 저장하도록 잠금버퍼의 해당 로드(LOAD4:0)신호를 액티브로 하고, 이에 따라 잠금버퍼(22)는 해당 버퍼 레지시터에 어드레스와 바이트 인에이블 데이터를 저장한다. 이어서 해당 레지스터의 플래그신호를 액티브로 전환한다(200~205).
만일 잠금 제어부(23)로 입력되는 전송형태가 인터록 라이트이면 잠금버퍼(22)가 어드레스 및 바이트를 비교하여 일치하면 세임신호를 액티브시키고, 잠금 제어부(23)는 어드레스 태그를 통해 슬롯번호가 일치한지를 확인하여 일치하면, 해당 버퍼의 딜리트신호를 액티브시켜 버퍼를 비운다.
한편, 슬롯번호가 다른 프로세서가 잠금버퍼에 이전에 저장된 어드레스 및 바이트 인에이블신호를 출력하여 인터록 리드를 수행하거나 버퍼가 풀(full)로 차면 록 비지(lock_busy)신호를 발생하여 상위 블록(24)과 시스템 버스(1)측으로 알려준다(210, 211, 222).
이상에서 살펴본 바와 같이 발명에 따른 어드레스 잠금 제어기는 잠금버퍼가 비어 있으면 최하단부터 순차적으로 사용할 수 있도록 하므로써 잠금 제어를 효율적으로 처리할 수 있는 효과가 있다.
Claims (1)
- 시스템 버스와 인터페이스하기 위한 시스템 버스 정합부(21); 상기 시스템 버스 정합부로부터 어드레스와 바이트인에이블 정보를 입력받아 로드(load)신호에 따라 저장하거나 딜리트(delete) 신호에 따라 삭제하며, 이전에 가지고 있는 어드레스 및 바이트 인에이블과 시스템 버스를 통해 새로 입력된 어드레스 및 바이트 인에이블 신호가 일치하면 세임(same)신호를 출력하며, 이전에 가지고 있는 어드레스와 시스템 버스를 통해 새로 입력된 어드레스가 일치하나 바이트 인에이블신호가 같지 않으면 액티브되는 오버(over)신호를 출력하고, 잠금버퍼에 어드레스가 저장되면 액티브되는 플래그(flag)신호를 출력하는 잠금버퍼(22); 상기 시스템 버스정합부로부터 슬롯번호와 전송형태를 입력받아 전송형태가 인터록 리드(interlock read)이면 잠금버퍼의 플래그비트를 검색하여 빈 버퍼의 최하단에 해당 어드레스를 저장하도록 로드신호를 출력하고, 록 비지(lock_busy)조건이면 록 비지신호를 발생하며, 전송형태가 인터록 라이트(interlock write)이면 해당 슬롯번호와 어드레스를 비교하여 일치하면, 버퍼를 비우도록 딜리트(delete)신호를 출력하는 잠금 제어부(23)를 구비하는 컴퓨터 시스템에 있어서 어드레스 버스 잠금 제어장치.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019950069182A KR0171771B1 (ko) | 1995-12-30 | 1995-12-30 | 컴퓨터 시스템에 있어서 어드레스 버스 잠금 제어장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019950069182A KR0171771B1 (ko) | 1995-12-30 | 1995-12-30 | 컴퓨터 시스템에 있어서 어드레스 버스 잠금 제어장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR970049644A KR970049644A (ko) | 1997-07-29 |
KR0171771B1 true KR0171771B1 (ko) | 1999-03-30 |
Family
ID=19448333
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019950069182A KR0171771B1 (ko) | 1995-12-30 | 1995-12-30 | 컴퓨터 시스템에 있어서 어드레스 버스 잠금 제어장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR0171771B1 (ko) |
-
1995
- 1995-12-30 KR KR1019950069182A patent/KR0171771B1/ko not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR970049644A (ko) | 1997-07-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6115761A (en) | First-In-First-Out (FIFO) memories having dual descriptors and credit passing for efficient access in a multi-processor system environment | |
US4603380A (en) | DASD cache block staging | |
JPS5830319Y2 (ja) | コンピユ−タシステム | |
US4733352A (en) | Lock control for a shared storage in a data processing system | |
US5475858A (en) | Real time multiprocessor system having a write only data link connected to one of the ports of the memory of each of the processor nodes | |
US5875485A (en) | Lock control for a shared main storage data processing system | |
US4282572A (en) | Multiprocessor memory access system | |
US6151663A (en) | Cluster controller for memory and data cache in a multiple cluster processing system | |
US6170070B1 (en) | Test method of cache memory of multiprocessor system | |
EP0090026A1 (en) | CACHE STORAGE USING A LOWEST PRIORITY REPLACEMENT. | |
JPS6244303B2 (ko) | ||
JPS6284350A (ja) | 階層キヤツシユメモリ装置および方法 | |
KR940704039A (ko) | 세마포어 바이패스 | |
EP0533427B1 (en) | Computer memory control system | |
JPS5938620B2 (ja) | メモリ−コントロ−ラ用優先順位指定装置 | |
US20010047439A1 (en) | Efficient implementation of first-in-first-out memories for multi-processor systems | |
JP2561261B2 (ja) | バッファ記憶アクセス方法 | |
US5895496A (en) | System for an method of efficiently controlling memory accesses in a multiprocessor computer system | |
US6769040B2 (en) | System for determining status of multiple interlocking FIFO buffer structures based on the position of at least one pointer of each of the multiple buffers | |
EP0789303B1 (en) | Memory system and a data communication system | |
KR0171771B1 (ko) | 컴퓨터 시스템에 있어서 어드레스 버스 잠금 제어장치 | |
USRE38514E1 (en) | System for and method of efficiently controlling memory accesses in a multiprocessor computer system | |
JPH0427583B2 (ko) | ||
GB2037466A (en) | Computer with cache memory | |
JP3528198B2 (ja) | 計算機システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
LAPS | Lapse due to unpaid annual fee |