KR930002336B1 - Tas 명령어 제어회로 - Google Patents

Tas 명령어 제어회로 Download PDF

Info

Publication number
KR930002336B1
KR930002336B1 KR1019900011200A KR900011200A KR930002336B1 KR 930002336 B1 KR930002336 B1 KR 930002336B1 KR 1019900011200 A KR1019900011200 A KR 1019900011200A KR 900011200 A KR900011200 A KR 900011200A KR 930002336 B1 KR930002336 B1 KR 930002336B1
Authority
KR
South Korea
Prior art keywords
cache
tas
rmw
data
signal
Prior art date
Application number
KR1019900011200A
Other languages
English (en)
Other versions
KR920003186A (ko
Inventor
이규호
김인홍
Original Assignee
재단법인 한국전자통신연구소
경상현
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 재단법인 한국전자통신연구소, 경상현 filed Critical 재단법인 한국전자통신연구소
Priority to KR1019900011200A priority Critical patent/KR930002336B1/ko
Publication of KR920003186A publication Critical patent/KR920003186A/ko
Application granted granted Critical
Publication of KR930002336B1 publication Critical patent/KR930002336B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs

Abstract

내용 없음.

Description

TAS 명령어 제어회로
제1도는 본 발명의 회로도.
제2도는 본 발명의 세터의 함수 기능을 나타낸 도표.
제3도는 (a),(b)는 본 발명의 TAS 명령어 수행이 진행되는 과정을 나타낸 개략도.
* 도면의 주요부분에 대한 부호의 설명
1 : 레치드 디코더 2, 3 : 캐쉬 메모리
4 : RMW 콘트롤러 5, 6 : 세터
7 : 멀티플렉서
본 발명은 HARP의 CPU의 TAS(Test-And-Set)명령어 제어에 관한 것으로, 특히 RMW(Read-Modified-Write)의 동작을 수행하기 위한 TAS 명령어를 수행중에 다른 프로세서의 읽기나 쓰기 동작에영향을 거의 미치지 않도록 한 TAS 명령어 제어회로에 관한 것이다.
종래에는 2개 이상의 프로세서가 하나의 메모리를 공유하면서 동작을 수행하는 다중처리기 시스템에서 어느 하나의 프로세서가 RMW(Read-Modified-Write 수정판독기록)의 동작을 수행하기 위하여 TAS 명령어를 메모리로 전송하게 되면 TAS 명령어의 플래그(flag)에 해당하는 메모리의 크리티칼 섹션(CriticalSection)을 다른 프로세서가 접근할 경우에 비지 웨이팅(Busy Waiting) 신호가 전송되면서 접근이 불가능해진다
그리고 특히 RISC구조를 갖는 프로세서는 모든 명령어의 수행을 이루도록 하는대, TAS명령어의 경우 2개 이상의 사이클이 소요되므로 파이프라인 구조의 효율이나 시스템 성능에 지장을 초래하는 문제가 있다.
이에 따라 본 발명은 HACAM에서 RMW동작을 위한 TAS 명령어의 수행을 1사이클에 수행하도록 한TAS 명령어 제어 회로를 제공하는 것을 그 목적으로 한다. 또한 본 발명은 캐쉬메모리를 갖는 모든 시스템에 적용될 수 있는네 여기서는 그 웨이 세트 어소시에이티브(Way Set Assocative) 캐쉬메모리의 경우를 예로들어 설계한 내용을 설명하도록 한다.
이를 위하여 본 발명은 TAS 동작을 위해 주어진 가상 어드레스를 해석하며 인에이블 RMW 신호에 의해 인에이블되어 사이클이 완료될 때까지 그 상태를 지속하는 래치드 디코더(Latched Decoder)와, 래치드디코더를 경유한 내부 가상어드레스(Internal Virtual Address) 신호는 물론 RMW 쓰기 인에이블 신호 및캐쉬 읽기 인에이블/캐쉬 쓰기 인에이블 신호가 OR게이트를 거치거나 직접 인가되는 제1 및 제2캐쉬 메모리와, TAS 동작이 수행될때 해당 데이타(flag)가 리셋 상태이면 셋시키고, 셋 상태이면 그대로 두며RMW 신호에 의해 인에이블 되어 RMW 콘트롤러의 출력 인에이블 신호에 의해 결과를 쓰기 버스에 출력하는 제1및 제2세터(SETTER)와, 인에이블 RMW 신호와 제1 및 제2캐쉬 히트/미스(Cache Hit/Miss)신호가 입력되며 쓰기 버스로 출력된 래치 데이타를 선택된 캐쉬 엔트리에 쓰기 위한 RMW 쓰기 인에이블신호를 생성하는 RMW 콘트롤러와, 제1캐쉬 히트/미스 신호 또는 제2캐쉬 히트/미스 신호가 입력됨에따라 제1캐쉬 메모리와 제2캐쉬 메모리에서 출력되는 데이타를 데이타 버스에 전송하는 멀티플렉서(MUX/DMUX)돌로 구성함으로써 RMW 동작을 위한 TAS 명령어가 RMW 콘트롤러를 통하여 캐쉬 메모리로 전달되도록 하여 TAS 명령어의 수행이 1사이클에 수행되도록 한다.
본 발명을 첨부 도면에 의거 상세히 기술하여 보면 다음과 같다.
도면에 도시되지 않은 CPU 인터페이스에 의해 TAS 명령어인 RMW신호
Figure kpo00001
가 1사이클 늘려진 인에이블 RMW 신호
Figure kpo00002
에 의해 사이클이 완료될 때까지 인에이블되며 CPU(도면에 도시되지 않음)로부터 입력되는 내부가상 어드레스신호(IVA)에 의해 주어진 가상 어드레스를 해석하는 래치드 디코더(1)와, 래치드 디코더(1)를 경유한 신호가 입력되면 RMW 쓰기 인에이블 신호
Figure kpo00003
의 제1RMW 쓰기 인에이블 신호
Figure kpo00004
는 OR게이트(OR1)를 거치고 도면에 도시되지 않은 캐쉬제어기로부터의 캐쉬 읽기인에이블/캐쉬 쓰기 인에이블 신호
Figure kpo00005
는 OR게이트(OR1)를 거치거나 직접 인가되는 제1캐쉬메모리(2)와, 래치드 디코더(1)를 경유한 신호가 입력되며 RMW 쓰기 인에이블 신호
Figure kpo00006
의 제2RMW 쓰기 인에이블 신호
Figure kpo00007
는 OR게이트(OR2)를 거치고 캐쉬 읽기 인에이블/캐쉬 쓰기 인에이블 신호
Figure kpo00008
는 OR게이트(OR2)를 거치거나 직접 인가되는 제2캐쉬 메모리(3)와, CPU로부터 인에이블RMW 신호
Figure kpo00009
가 입력되면서 제1캐쉬 메모리(2)에 해당되는 데이타가 있거나 없을때 입력되는 제1캐쉬 히트/미스 신호(Cache Hit/Miss1) 및 제2캐쉬 메모리(3)에 해당되는 데이타가 있거나 없을 때 입력되는 제2캐쉬 히트/미스 신호(Cache Hit/Miss2)에 따라 히트된 쪽의 세터로 출력 인에이블 신호(OE1),(OE2)를 출력하거나 쓰기 버스(WBUS1),(WBUS2)의 출력된 래치 데이타(LD0-1),(LD0-2)를 선택된 캐쉬 메모리(2),(3)에 쓰기 위한 RMW 쓰기 인에이블 신호
Figure kpo00010
를 생성하는 RMW 콘트롤러(4)와,CPU로부터의 RMW신호
Figure kpo00011
에 의해 인에이블되며 RMW 콘트롤러(4)의 출력인에이블 신호(OE1)에의하여 쓰기 버스(WBUS1)로부터 입력되는 해당 데이타(D0-1)가 리셋 상태이면 셋시키고 셋 상태이면그대로 두면서 그 결과인 래치 데이타(LD0-1)를 쓰기 버스(WBUS1)로 출력하는 제1세터(5)와, CPU로 부터의 RMW신호
Figure kpo00012
에 의해 인에이블 되며 출력 인에이블신호(DE2)에 의하여 쓰기 버스(WBUS2)로부터 입력되는 해당 데이타(D0-2)를 셋 상태로 하면서 래치데이타(LD0-2)를 쓰기 버스(WBUS2)로 출력하는 제2제터(6)와, 제1캐쉬 히트/미스 신호(Cache Hit/Miss1)나 제2캐쉬 히트/미스 신호(Cache Hit/Miss2)가 입력됨에 따라 쓰기 버스(WBUS1) 또는 쓰기 버스(WBUS2)와, 데이타 버스(DATA)를 연결하면서 CPU와 데이타의 교환이 이루어지도록 하는 멀티 플렉서(7)들로 구성한 것이다.
그러므로 TAS 명령어를 수행할때 CPU로부터 내부 가상 어드레스 신호(IVA)와 RMW신호
Figure kpo00013
가 출력되면서 CPU 인터페이스에서는 RMW 신호
Figure kpo00014
를 1사이클 늘린 인에이블 RMV 신호
Figure kpo00015
를출력한다.
따라서 내부 가상 어드레스 신호(IVA)가 입력된 래치드디코더(1)에서는 인에이블 RMW신호
Figure kpo00016
가 인에이블되어 있는 동안 디코딩 출력(decoding outpyt)도 인에이블 상태가 되어 제1 및 제2캐쉬 메모리(2),(3)로 출력된다.
제1 및 제2캐쉬 메모리(2),(3)는 RMW 콘트롤러(4)로부터의 제1RMW 쓰기 인에이블 신호
Figure kpo00017
또는 제2RMW 쓰기 인에이블 신호
Figure kpo00018
가 입력되면서 캐쉬 읽기 인에이블/캐쉬 쓰기 인에이블 신호
Figure kpo00019
중 캐쉬 읽기 인에이블 신호
Figure kpo00020
가 입력됨에 따라 해당 데이터가 쓰기 버스(WBUS1),(WBUS2)로 출력되어 멀티플렉서(7)로 입력된다.
그러면 멀티플렉서(7)에서는, 제1 또는 제 2 캐쉬 히트/미스 신호(Cache Hit/Miss1),(Cache Hit/Miss2)중에서 캐쉬히트 신호가 인가되는 캐쉬메모리의 쓰기 버스와 데이타 버스(DATA)를 연결시켜 해당 데이터가 CPU로 출력되도록 한다. 그리고 동시에 캐쉬 메모리(2),(3)에서 각 쓰기 버스(WBUS1),(WBUS2)로 출력된 데이타중에서 (D0-1),(D0-2)는 각각 제1세터(5)와 제2세터(6)로 입력되고, 캐쉬 히트/미스 신호(Cache Hit/Miss1),(Cach Hit/Miss2)의 입력에 따라 두 출력 인에이블 신호(OE-1),(OE-2)중 하나가 RMW 콘트롤러(4)로부터 출력되어 입력되는 두 세터(5),(6)중 하나에서는 내부에서 래치된 래치데이타((LD0-1),(LED-2)중 하나)가 출력되도록 하여 제1 또는 제2캐쉬 메모리(2),(3)의 엔트리에 저장시킴으로써 세트된다.
여기서 두 세터(5),(6)의 함수 기능은 제2도에 도시한 바와 같이 RMW신호
Figure kpo00021
가 인에이블되면 데이타(D0)가 "0"이나 "1"로 입력됨에 따라 모두 "1"로 출력하는 것이다.
그리고 TAS 동작을 수행하는 중에 캐쉬 미스가 발생하게 되면, 즉 제1캐쉬 미스 신호(Cache Miss1)와 제2캐쉬 미스 신호(cache Miss2)가 입력 되게 되면 캐쉬 업 데이트를 먼저 수행한 다음에 TAS 동작을 다시 시도한다.
제3도는 TAS 명령어가 1사이클에 수행되는 과정을 나다낸 것으로, 정수처리기와 부동소수 처리기(Floatlng-point processing unit)와 메모리 관리 유니트 및 캐쉬메모리로 이루어지는 CPU를 하나의 보드(Board)로 구성할 수 없는 경우에 정수처리기와 부동 소수 처리기를 하나의 보드에 구성하고, 메모리 관리유니트와 캐쉬 메모리를 하나의 보드에 구성하여 각각 HARP와 HACAM으로 명명하였다.
그리고 HARP의 CPU에서 HACAM의 캐쉬 메모리에 RMW를 수행하도록 하기 위하여 TAS 명령어를 시도하면 HACAM에서는 이를 수행하는 것으로서 제3도의 (a)는 캐쉬히트(Cache Hit)의 경우를 나타낸것이다. HARP의 CPU에서 TAS 명령어 수행을 시도하기 위하여 TAS 신호(TAS)를 HACAM의 캐쉬메모리와 캐쉬 콘트롤러에서 보내면 HACAM의 캐쉬 메모리에 해당하는 데이타가 있는 경우 즉 캐쉬 히트일때에는 "로드(Load)" 동작과 동이한 과정으로 해당 데이타(flag)를 CPU로 보내 주고 동시에 캐쉬 콘트롤러에서는 상기의 데이타 플래그가 리셋 상태이면 세트시키는 과정을 다음 사이클에 수행한다.
그러므로 데이타의 플래그를 읽어간 HARP의 CPU는 플래그가 리셋 상태인 경우에는 캐쉬 콘트롤러가세트시켜 줄 것으로 믿고 다음 동작을 수행하고, 세트상태이면 리셋 상태가 될때까지 TAS 수행을 반복 시도한다.(Busy Waiting).
이와 같이 CPU의 입장에서는 TAS 명령어가 1사이클에 수행되는 상태가 되도록 하고 도면에 도시되지않은 코드 재정렬기(Code Reorganizer)에 의해 TAS 명령어 다음에 오는 명령어는 캐쉬 메모리의 액세스동작이 이루어지지 않도록 하였다.
그리고 제3도의 (b)에 도시한 바와 같이 캐쉬 메모리에 해당 데이타가 없는 경우 즉 캐쉬 미스일 때에는 CPU로부터 TAS 신호가 보내지면 캐쉬 메모리는 캐쉬 업 데이트(up date)를 다음 사이클에 수행하게되고, CPU에서는 캐쉬 업 데이트가 수행된 다음의 사이클에 TAS 명령어 수행을 재시도하여 (a)도에 도시한 경우와 동일하게 RMW 동작을 수행하는 것이다.
이상에서 설명한 바와 같이 본 발명은 RMW 동작을 위하여 TAS 명령어를 CPU의 입장에서 1사이클에 수행되도록 함으로써 RMW가 진행되는 중에 다른 프로세서로 수정전의 데이타가 읽혀지는 것을 방지할 수있음은 물론, 데이타의 전송에 원활히 이루어져 데이타 버스의 호환성이 향상되도록 한 것임을 알 수 있다.

Claims (3)

  1. 인에이블 RMW신호
    Figure kpo00022
    와 내부 가상 어드레스 신호(IVA)가 입력되며 주어진 가상 어드레스를 해석하는 래치드 디코더(1)와, 래치드 디코더(1)의 출력이 입력되며 RMW 쓰기 인에이블신호
    Figure kpo00023
    ,
    Figure kpo00024
    와 캐쉬 읽기 인에이블/캐쉬 쓰기 인에이블신호
    Figure kpo00025
    가 OR게이트(OR1),(OR2)를 거치거나 직접 인가되는 제1 및 제2캐쉬 메모리(2),(3)와, 제1 및 제2캐쉬 메모리(2),(3)의 데이타(D0-1),(D0-2)가 쓰기버스(WBUS1),(WBUS2)를 거쳐 입력되며 RMW신호
    Figure kpo00026
    에 의해 인에이블되어 래치데이타(LD0-1)(LD0-2)를 쓰기 버스(WBUS1),(WWBUS2)로 출력하는 제1 및 제 2세터(5),(6)와, 제1 또는 제 2캐쉬 히트/미스 신호(Cache Hit/Miss1),(Cache Hit/Miss2)와 인에이블 RMW신호
    Figure kpo00027
    가입력되며 두 세터(51-16)로 출력 인에이블 신호(OE1),(OE2)를 출력하는 RMW 콘트롤러(4)와, 제1 또는제2캐쉬 히트/미스 신호(Cache Hit/Miss1),(Cache Hit/Miss2)의 입력에 따라 두 쓰기 버스(WBUS1),(WBUS2)중 하나와 데이타 버스(DATA)를 연결하여 주는 멀티 플렉서(7)들로 구성됨을 특징으로 하는TAS 명령어 제어회로.
  2. 제1항에 있어서, HARP의 CPU로부터 TAS 명령에 수행이 시도되고 캐쉬 히트인 경우에는 CPU로부터 TAS신호가 캐쉬 메모리와 캐쉬 콘트롤러로 입력되면 캐쉬 메모리에서는 해당데이타 플래그를 CPU로전송하고 동시에 캐쉬 콘트롤러에서는 해당 데이다 플래그가 리셋 상태이면 셋트시키는 동작을 다음 사이클에 수행하며, 데이타 플래그를 읽어 들인 CPU는 데이타 플래그가 리셋 상태이면 다음 동작을 수행하고 셋상태이면 TAS 명령어 수행을 재시도하도록 한하므로써 TAS 명령어를 1사이클에 수행할 수 있도록 한TAS 명령어 제어회로.
  3. 제1항 또는 2항에 있어서, 캐쉬 미스인 경우에는 CPU로부터 TAS 명령어 수행이 시도되면 캐쉬 메모리에서는 캐쉬 업 데이트 동작을 수행하고, CPU에서는 캐쉬 업 데이트 후에 다시 TAS 명령어 수행을 재차 시도하도록 한 TAS 명령어 제어회로.
KR1019900011200A 1990-07-23 1990-07-23 Tas 명령어 제어회로 KR930002336B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019900011200A KR930002336B1 (ko) 1990-07-23 1990-07-23 Tas 명령어 제어회로

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019900011200A KR930002336B1 (ko) 1990-07-23 1990-07-23 Tas 명령어 제어회로

Publications (2)

Publication Number Publication Date
KR920003186A KR920003186A (ko) 1992-02-29
KR930002336B1 true KR930002336B1 (ko) 1993-03-29

Family

ID=19301586

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019900011200A KR930002336B1 (ko) 1990-07-23 1990-07-23 Tas 명령어 제어회로

Country Status (1)

Country Link
KR (1) KR930002336B1 (ko)

Also Published As

Publication number Publication date
KR920003186A (ko) 1992-02-29

Similar Documents

Publication Publication Date Title
US4701844A (en) Dual cache for independent prefetch and execution units
US5125083A (en) Method and apparatus for resolving a variable number of potential memory access conflicts in a pipelined computer system
US5347636A (en) Data processor which efficiently accesses main memory and input/output devices
US5265233A (en) Method and apparatus for providing total and partial store ordering for a memory in multi-processor system
US3898624A (en) Data processing system with variable prefetch and replacement algorithms
US6779102B2 (en) Data processor capable of executing an instruction that makes a cache memory ineffective
US5293500A (en) Parallel processing method and apparatus
EP0782071A2 (en) Data processor
JPH0612327A (ja) キャッシュメモリを有するデータプロセッサ
JPH02190930A (ja) ソフトウエア命令実行装置
JPH03219345A (ja) 多ポートキャッシュメモリ制御装置
Anderson et al. Pentium processor system architecture
JPH10228376A (ja) 複数レジスタ命令を処理する方法及びプロセッサ
EP0525666B1 (en) Information processing apparatus incorporating branch target instruction buffer
US5848283A (en) Method and system for efficient maintenance of data coherency in a multiprocessor system utilizing cache synchronization
JPH06236353A (ja) マルチプロセッサ・コンピュータ・システムのシステム・メモリの並行性を増大する方法およびシステム
WO1996027833A1 (fr) Unite de traitement informatique
JP4160228B2 (ja) マイクロプロセッサ
KR930002336B1 (ko) Tas 명령어 제어회로
JP2680828B2 (ja) ディジタル装置
EP0156307A2 (en) Pipelined processor having dual cache memories
US5197133A (en) Control store addressing from multiple sources
US5421026A (en) Data processor for processing instruction after conditional branch instruction at high speed
JPH02214937A (ja) データ処理装置
KR100204616B1 (ko) 효율적인 파우어 온 초기화를 갖는 정보 처리 시스템

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
FPAY Annual fee payment

Payment date: 20020228

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee