KR0136111B1 - 데이터요소의 수정장치 및 그 방법 - Google Patents

데이터요소의 수정장치 및 그 방법

Info

Publication number
KR0136111B1
KR0136111B1 KR1019880008155A KR880008155A KR0136111B1 KR 0136111 B1 KR0136111 B1 KR 0136111B1 KR 1019880008155 A KR1019880008155 A KR 1019880008155A KR 880008155 A KR880008155 A KR 880008155A KR 0136111 B1 KR0136111 B1 KR 0136111B1
Authority
KR
South Korea
Prior art keywords
main memory
central processing
command
processing unit
data element
Prior art date
Application number
KR1019880008155A
Other languages
English (en)
Other versions
KR890002759A (ko
Inventor
엔. 컨틀러 데이비드
에이. 오르비츠 데이비드
반다카 딜립
카르도자 웨인
티. 위텍 리차드
Original Assignee
로날드 이. 미릭
디지탈 이퀴프먼트 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 로날드 이. 미릭, 디지탈 이퀴프먼트 코포레이션 filed Critical 로날드 이. 미릭
Publication of KR890002759A publication Critical patent/KR890002759A/ko
Application granted granted Critical
Publication of KR0136111B1 publication Critical patent/KR0136111B1/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
    • 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
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors
    • G06F15/8061Details on data memory access
    • G06F15/8069Details on data memory access using a cache

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Advance Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Storage Device Security (AREA)
  • Multi Processors (AREA)
  • Hardware Redundancy (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

내용없음

Description

데이터 요소의 수정 장치 및 그 방법
제 1a도 및 1b도는 본 발명에 사용하기 적합한 데이터 처리 시스템의 개략도.
제2도는 본 발명을 사용할 수 있는 데이터 처리장치의 중앙처리장치의 일예를 나타낸 개략도.
제3도는 데이터 처리 시스템의 동작모드의 상관관계를 나타내는 개략도.
제4도는 사용자 또는 커널 모드로부터 EPICODE 모드로 전이되는 단계들을 설명하기 위한 플로우챠트.
제5도는 메모리 인터로크 동작을 설명하는 도면.
제6도는 본 발명에 따라 RMAQI 명령을 실행하는 단계들을 나타내는 도면.
본 발명은 일반적으로 데이터 처리 시스템에 관한 것으로, 특히 다수의 처리장치가 공통의 주메모리장치내에 데이터 요소를 기억하고 있는 데이터 처리 시스템에 관한 것이다.
처리장치에 의해 요구된 데이터를 기억시키기 위한 주메모리 장치를 공유하는 다수의 데이터 처리장치를 갖는 데이터 처리 시스템에 있어서, 제어 프로그램은 무심코 저지른 부당한 타협으로부터 데이터 요소를 보존하게 하면서 다수의 사용자중의 주메모리를 포함하는 자원을 적합하게 공유하도록 수행된다. 제어 프로그램은 다수의 데이터 처리장치내에서 동시에 실행될 수 있다. 따라서, 제어 프로그램은 자원의 할당 및 보호를 제어하는데 사용되는 데이터 요소로의 액세스를 동기화하여야 한다. 이와 유사한 문제가 병렬처리 또는 멀티스레딩(multithreading)과 같은 여러 개의 데이터 처리장치를 동시에 실행시키는 프로그램을 가진 데이터 처리 시스템의 사용자에게도 존재한다.
따라서 주메모리에 기억된 데이터 요소의 변화가 동기화될 수 있고, 이에 의해 데이터의 보전성(integrity)을 유지할 수 있는 융통성있고 효율적인 기술의 필요성이 대두되었다.
본 발명의 목적은 개선된 데이터 처리장치를 제공하는데 있다.
본 발명의 특징은 데이터 처리 시스템내에서 테이터 요소에 대한 변화를 동기화시키는 개선되 기술을 제공한다.
본 발명의 또하나의 특징은 단일의 명령으로 주메모리 데이터 요소의 동기화된 갱신을 제공하는데 있다.
본 발명의 또다른 특징은 데이터 요소가 갱신되기전에 데이터 처리장치내에 데이터 요소를 저장(save)하는데 있다.
전술한 바와같이 특징 및 다른 특징은 본 발명에 따라서 이하 RMAQI(read, mask, add, quadword, interlocked)명령이라 불리워질 명령을 제공함으로써 달성될 수 있다. 이 명령은 주메모리장치(또는 그것의 일부분)가 인터로크되고, 어드레스된 데이터 요소를 데이터 처리장치로 전달시키고, 마스크 레지스터의 내용을 데이터 요소와 결합시키고, 그 결과를 가수(addend) 레지스터의 내용에 가산하고, 그리고 원래의 데이터 요소를 데이터 처리장치에서 저장시키면서 데이터 요소가 원래의 주메모리 위치로 복귀하도록 한다.
이 명령의 기능은 미리선택된 데이터 요소 또는 데이터 요소의 그룹을 주메모리장치에 위치시키고, 및/또는 하나이상의 데이터 요소가 주메모리 장치에서의 동일한 데이터에 대해 동일한 동작을 시도하는 다른 데이터 처리장치와 동기화되게 하는 방식으로 주메모리 데이터를 증가시킨다.
본 발명의 상기한 바와 같은 특징 및 다른 특징들은 첨부도면을 참고로한 이하의 상세한 설명으로부터 보다 명백해질 것이다.
제1a도 및 1b도에는, 본 발명에 이용될 수 있는 2개의 예시적인 데이터 처리 시스템 구성이 도시되어 있다. 제 1a도에서, 중앙처리장치(#1),(11)는 시스템버스(19)에 접속되어 있다. 다른 중앙처리장치(예를들어#N),(12)역시 시스템 버스에 접속될 수 있다. 중앙처리장치(11),(12)는 중앙처리장치 제어 프로그램과 협력하여 중앙처리장치의 구성에 따른 데이터를 처리하며, 상기 제어프로그램은 주메모리장치(15)에 상주하는 명령들로 구성되어 있다. 비상주 데이터 및 명령들은 전형적으로 대용량 기억장치에 기억되어 있어며, 시스템버스(19)를 통해서 주메모리장치(15)에 입출력된다. 입/출력장치(#1)(16)(내지(#M)(17))은 대용량 기억장치, 사용자 단말장치 및 통신장치와 같은 장치들을 시스템 버스(19)에 의해서 데이터 처리 시스템에 접속시킨다. 대용량 기억장치는 데이터 처리장치에 의해 요구된 데이터와 명령들을 기억한다. 중앙처리장치(11 내지 12)의 동작에 요구되는, 일반적으로 데니터 및/또는 명령의 페이지로 표시된 데이터 및/또는 명령 세트는 액세스가 비교적 느린 대용량 기억장치로부터 중앙처리장치에 의한 액세스가 비교적 빠른 주메모리장치로 전달된다. 버스 지향 시스템은 비교적 용이하게 시스템을 재편성하는 장점을 갖기도 하지만 각 시스템 구성요소가 시스템 버스와의 인터페이스를 제공하기 위해 제어장치를 필요로한다는 단점도 갖는다. 제 1b도에는 데이터 처리 시스템에 도시되어 있으며, 여기서 중앙 처리장치(11)(내지(12)) 및 입출력장치(16)(내지 17))는 메모리제어장치(14)를 통해서 주메모리장치(15)에 접속되며, 메모리제어장치(14)는 제1a도에 도시된 버스본위 데이터 처리 구성내의 개개의 데이터 처리 시스템 구성요소에의해 실행되는 제어기능과 시스템버스(19)를 대체한다. 메모리 제어장치(14)는, 유연성의 상실을 제외하면, 제1도의 버스 지향 구성보다 훨씬 효과적일 수 있는 데이터 및 명령의 전송의 집중제어 및 모니터링을 제공한다.
제2도에는, 본 발명의 효과적인 이용이 가능한 예시적인 중앙처리장치의 블록도가 도시되어 있다. 송출(issue) 장치(22)는 스칼라 연산어드레스 발생장치(24), 적어도 하나의 실행장치(#1)(25)(내지 실행장치(#Q)(26))및 벡터연산장치(28)로 이루어진 복수의 전문실행장치에 공급되는 (디코딩된) 명령에 응답가능하며, 상기 벡터 연산장치(28)는 벡터연산처리장치(28a), 벡터연산 어드레스 발생장치(28b) 및 벡터연산 레지스터(28c)를 포함한다. 실행 장치에 의해 처리된 데이터는 스칼라 레지스터(23) 또는 벡터 레지스터(28c)로부터 추출된다. 실행장치로부터의 결과 데이터는 스칼라 레지스터(23), 벡터 레지스터(28c) 또는 데이터 캐시메모리장치(27)에 기억된다. 데이터 캐시메모리장치(27)는 주메모리장치(15)와 중앙처리장치(11)와의 사이에 인터페이스를 제공하는 캐시메모리장치로서 간주될 수 있다. (데이타 캐시메모리 장치(27)는 제 2도의 주메모리장치에 직접 접속된 것으로 도시되어 있다. 제1 a도 및 제 1b도에 예시된 바와같이, 중재하는 데이터 처리장치를 포함할 수 있다.) 송출장치(22)는 어느 실행장치가 선택된 데이터를 처리할것인가를 판단하는 장치와 선택된 실행장치가 데이터의 처리에 이용가능할때를 판단하는 장치를 포함한다. 후자의 특징은 행선기억장소에 처리된 데이터를 기억시킬 수 있는가에 대한 확인을 포함한다. 명령 캐시메모리장치(21)는 디코딩되고 송출장치에 의해 적합한 실행장치로 전송된 명령을 기억한다. 송출장치(22)는 실행장치의 처리동작을 최대화하려고 시도하는 장치를 갖는다. 따라서, 송출장치(22)는 필요시에 적합한 명령(임의의 분기명령을 포함함)이 송출장치(22)에 이용될 수 있는 것을 보장하기 위한 알고리즘과 선취(prefetch)장치를 포함한다. 복수의 실행장치는, 스칼라 연산어드레스 발생장치(24) 및 벡터연산장치(28)에 의해서 지시된 바와같이, 어떤 종류의 처리동작을 다루는 전문처리장치들이다. 예를들면, 실행장치는 부동소숫점 연산이나 정수 산술연산을 처리하도록 형성될 수 있다. 송출장치(22)는 그와함께 프로그램의 실행이 요구된 데이터 또는 데이터처리 동작의 기록을 제공하는데 요구되는 데이터를 기억할 수 있는 스칼라 레지스터(23)와 연관된다. 예를들면, 하나의 레지스터는 실행프로그램 명령순서에 있어서 처리되어야 할 다음 명령의 (가상) 어드레스를 기억하는 프로그램 카운터 레지스터이다. 스칼라 연산어드레스 발생장치(24)는 가상의 어드레스를 주메모리장치(15)내의 실제의 장소로 변환하는데 사용된다. 송출장치(22)는 실행장치가 다른 속도로 명령을 처리할 때 실행장치로부터의 데이터를 정확한 순서로 재정리 할 수도 있다.
벡터연산장치(28)는 벡터연산 처리장치(28a), 벡터연산 어드레스 발생장치(28b) 및 벡터연산 레지스터(28c)를 포함한다. 벡터연산 처리장치의 활동은 데이터를 실행장치(24 내지 26)에 분배하는 것과 실행장치에서의 명령의 실행을 제어할 수 있다. (도시하지 않은) 다른 하나의 실시예에 따라, 벡터연산장치(28)에 의해 명령의 실행에 기여하는 실행장치는 데이터 처리 시스템에 이용할 수 있다. 실행장치가 벡터연산 및 스칼라 연산 양쪽에 대해 이용가능할 때 제어는 데이터 처리장치의 자원을 할당하는 송출장치(22)의 전체 시스템을 제어하게 된다.
제3도에는 2개의 전형적인 운영체계 모드와 EPICODE 모드 사이의 관계가 도시되어 있다. 사용자 모드 3a는 통상 사용자에게 중요한 처리기능을 수행하는 응용프로그램을 실행한다. 사용자에게는 비교적 완전한 제어기능이 부여되어 소망의 처리능력을 얻도록 되어 있으나 시스템 보전성을 보존하는 방법으로 제한된다. 사용자는 시스템 보전성을 타협하지 않는 어떠한 명령도 실행할 수 있다. 이들 명령은 비특권 명령이라고 알려져 있다.
커널모드 3b는 운영체계가 명령을 실행하는 모드이다. 커널모드 3b와 연관된 명령은 특권화되며 이들 명령의 잘못된 사용 또는 부당한 사용이 프로그램 고장을 야기시키고 그렇지 않으면 시스템 보전성을 타협하게 되기 때문에 사용자 프로그램을 이용할 수 없다. 커널모드는 또한 모든 비특권 명령을 실행할 수 있다. EPICODE 모드 3c는 사용자 보드 3a와 커널모드 3b로 부터 분리되어 있지만 양 모드에 전부 이용될 수 있다. 이 데이터처리시스템 동작모드는 인터럽트없이 실행되어야할 명령 시퀀스를 위하여 보존된다. 이 모드에는 어떠한 특권 및 해당 명령시퀀스의 비인터럽트 가능한(원자적)실행을 보장하기 위한 전략을 수행하는 어떠한 전용 하드웨어가 제공되어 있다.
제4도에는 양 동작모드중 어느 한 모드로부터 EPICODE 모드로 들어가는 단계들이 도시되어 있다. 단계(401)에서, 인터럽트와 같이, 하드웨어 예외 또는 EPICODE 포맷내의 명령은 EPICODE 모드로 들어가는데 필수적인 데이터 처리 시스템과 통신한다. 단계(402)에서, 송출장치는 새로운 명령을 송출하는 것이 금지되어 있으나 실행을 개시하기 위한 명령은 완료된다. 현재 실행중인 명령을 완료하면 EPICODE 모드에서의 실행전에 모든 하드웨어 예외가 시그날링된다. 단계(403)에서, EPICODE 모드를 위해 보존된 명령을 실행하기 위한 특권이 인에이블된다. 단계(404)에서, 외부 인터럽트 신호가 디스에이블되고 명령스트림 기준을 위한 가상 어드레스 맵핑이 단계(405)에서 디스에이블된다. 단계(406)에서, EPICODE 모드에서의 실행에 의해 파괴될 수 있는 어떠한 프로세서 상태가 저장된다. 예를들어, 프로그램 카운터의 내용이 이 단계에서 저장된다. EPICODE 모드와 연관된 특정 세트의 레지스터로의 액세스는 단계(407)에서 인에이블된다. 신규한 프로그램 카운터 어드레스는 하드웨어 레지스터(EPICODE 어드레스 레지스터라 부름)와 단계(408)에서의 어떠한 상태 신호플래그를 결합시킴으로써 형서된다. 그다음 단계(409)에서 어드레스된 프로그램을 형성하는 통상의 명령 및 EPICODE 명령의 신퀀스가 실행된다.
제5도에는 버스 지향 시스템을 위해 주메모리장치를 인터로크시키는 기술이 도시되어 있다. 본 발명의 1실시예에서, 중재장치 (51)는 중앙처리장치중의 어느것이 시스템버스(19)로 액세스될 것인가를 결정한다. 중앙처리 장치가 시스템버스(19)에 액세스되면, 동작코드, 어드레스 및 임의 데이터가 시스템버스(19)를 통해 주메모리장치(15)로 전달된다. 주메모리장치(15)는 이 정보를 수신하고 어드레스는 어드레스 레지스터(151)로 들어가고 동작코드가 레지스터(154)로 들어간다. 레지스터(154)내로 들어간 동작코드가 인터로크신호(이 신호는 미리 존재하지 않음)를 포함하는 경우, 주메모리장치는 레지스터(152)내에 인터로크 비트와 현재 주메모리장치(15)에 배타적으로 인터로크 액세스된 데이터 처리장치의 식별신호를 기억한다. 이후 부시스템이 시스템버스(19)를 제어하기 될지라도 인터로크 방식으로 주메모리에 액세스 하는 시도는 완료되지 않는다. 제어하는 중앙처리장치가 인터로크 비트를 송출하면, 다른 부시스템(중앙처리장치 또는 입출력장치)은 인터로크 방식으로 주메모리를 액세스할 수 있게 된다. 인터로크 비트의 설정은 다른 중앙 데이터 또는 입출력처리장치가 비인터로크 방식으로 주 메모리내의 데이터 요소를 액세스하는 것을 차단하지 않는다. 일부 경우에 있어서는, 주메모리 장치내의 서브 세트의 어드레스에 관련된 다수의 인터로크 비트가 이용된다. 이러한 방식에 있어서, 인터로크 비트에 관련된 메모리 위치만이 주메모리의 나머지 부분이 인터록크된 데이터 처리동작을 이용할 수 있게 만드는 인터로크된 액세스에 대해서 액세스할 수 없게 된다. 메모리 제어기장치(14)가 제공된 (제 1b도)구성에 있어서, 중재기능, 대기행렬기능 및 액세스 제어기능이 이 장치에서 수행된다. 양호한 실시예에서, 메모리부 시스템은 4개의 기능, 즉 읽기(quadword)기능, 쓰기(quadword) 기능, 획득로크기능 및 해제로크기능을 가진다. 더욱이, 본 실시예에서 인터로크는 데이터의 읽기 또는 쓰기를 방지하지 않고, 인터로크가 존재할 때 또다른 데이터 처리장치에 의해 그 어드레스에서 또하나의 로크를 허용하지 않는다.
제6도에는 RMAQI 명령을 수행하는 단게들이 도시되어 있다. 단계(601)에서, 데이터 처리장치는 인터럽트 신호를 디스에이블시키고 주메모리 장치로의 액세스를 획득하고 또 인터로크된 액세스를 개시시키는 명령을 실행한다. 단계(602)에서, RMAQI 명령의 주체인 데이터 요소가 중앙처리장치로 전달되어, 단계(603)에서, 스칼라 레지스터(23)의 어느하나에 저장된다. 데이터는 단계(604)에서 또하나의 스칼라 레지스터(23)에 기억된 마스크 신호그룹과 함께 거기서 노리 AND 동작을 수행한다. 단계(605)에서, 또하나의 스칼라 레지스터(23)로부터의 오퍼랜드(opperand)는 단계(604)의 결과에 가산된다. 단계(606)에서, 수정된 데이터는 이로부터 본래 추출된 주메모리 위치로 복귀하고, 그 주메모리 인터로크는 해제되며 단계(607)에서 인터럽트가 인에이블된다. 원래의 데이터는 단계(603)에서 설명된 첫 번째 스칼라 레지스터에서 아직 이용할 수 있다.
[양호한 실시에의 동작]
제2도의 파이프라인 실행장치를 가진 중앙처리장치가 몇가지 제한을 둘 수 있는 본 발명의 양호한 실시예에 적용될 수 있으나 다른 설계도 본 발명에서 이용될 수 있다. 중앙처리장치는 다수의 실행장치를 가지며, 각각의 실행장치는 명령의 분류를 실행한다. 예를들면, 하나의 실행장치, 즉 스칼라 어드레스 발생장치(24)는 중앙처리장치와 주메모리장치(로드/기억 명령을 실행) 사이의 논리 신호군의 전달을 제어한다. 하나의 실행장치는 데이터 이동 연산을 실행하고, 또다른 실행장치는 부동소수점 가산/감산 연산을 실행하며, 다른 하나의 실행장치는 정수 및 부동소수점 승산 작용을 실행하고, 또하나의 실행장치는 정수 및 부동소수점 제산작용을 실행하도록 되어 있다. 특정한 실행장치는 필수적은 아니지만 파이프라인 구성에서 수해될 수 있다. 중앙처리장치의 다른 특징들은 다음과 같다. 현재 실행중인 시퀀스내의 명령은 멸령 캐시 메모리장치(21)로부터 송출장치(22)로 전달된다. 송출장치에서, 명령은 그 구성부분내로 분류되고 데이터 의존 제어신호와 어드레스 신호는 그로부터 발생된다. 그러나, 명령이 실행을 개시(즉, 송출)되기전에, 몇가지 제한이 만족되어야만 한다. 명령에 대한 모든 소스와 행선 레지스터가 이용가능(즉 필요한 레지스터에 대한 아무런 쓰기 동작도 이루어 지지 않음)하여야 한다. 레지스터의 쓰기 경로는 이 명령이 처리된 양을 기억시키는 미래 사이클(future cycle)에서 이용가능하여야 한다. 실행중에 명령을 처리하는데 필요한 실행장치는 연산을 수행하기에 적합하여야 한다. 벡터연산장치에 관해서, 벡터연산은 이 연산기간중에 실행장치를 보존하고 있다. 메모리 로드/기억 명령에 의해 캐시메모리가 손실될 경우, 로드/기억장치의 비지 플래그(busy flag)는 캐시메모리 손실반응이 완료될 때까지 지연되게 하는 다음 로드/기억 명령을 야기시킨다. 명령이 송출될 때, 행선 레지스터와 결과에 대한 쓰기 경로 사이클이 보존된다. 오퍼랜드의 설정동안, 모든 명령 의존 레지스터 어드레스가 발생되며, 오퍼랜드는 판독 및 기억되고, 데이터 의존 제어신호가 발생된다. 이 명령 오퍼랜드와 제어신호는 연관된 실행장치로 전달된다. 실행장치에 의해 발생된 결과는 레지스터 파일에 기억되거나 해당 데이터 캐시메모리 장치(15)내로 기억된다. 명령이 송출되면, 처리의 결과는 얼마간의 머신 사이클동안 이용될 수 없게 된다. 한편, 다음 기기 사이클에서, 다음 명령이 디코딩되고 적합한 송출조건이 만족될 때 송출된다. 다라서, 명령은 통상의 명령시퀀스에서 디코딩 및 송출되지만, 그 결과는 실행장치의 명령실행시간의 변화 때문에 상이한 순서로 기억될 수 있다. 이러한 비정상적인 기억은 예외처리 및 오류명령의 재시도를 복잡하게 만든다. 그러나, 이들 단계들에서는 비정상적인 기억이 실행 및 하드웨어 이점을 제공하는 것이 비교적 드물다.
상술한 바와같은 데이터 처리 시스템은 전형적인 것이며 다양한 방법으로 실시할 수 있다. 특히, 마이크로 코딩 기술은 위와같은 구조를 시행하는데 선택적이다. 마이크로 코딩 기술이 채택되지 않았을 때 데이터 처리 시스템의 많은 필수기능이 복합시퀀싱을 요구하며, 그럼에도 불구하고 중앙 처리장치내의 다른 작용을 자동으로 수행하게 만들어야 한다. 위와같은 작용의 몇가지 예를들면 다음과 같다.
1. 인터럽트 및 예외 디스패칭.
2. 번역 버퍼필(buffer fill)과 같은 메모리 제어기능.
3. 예외 또는 인터럽트로부터의 복귀(REI) 명령과 같이 복합시퀀싱을 요구하는 명령들.
4. 메모리 장치 인터로크로 야기되는 명령과 같이 프로세서 자원으로의 제어된 액세스를 요구하는 명령.
5. 소프트웨어 호환성에 대한 모든 수행을 통해 구조화된 인터페이스를 요구하지만, 그 물리적 수행은 수행 사이에서 광범위하게 변화될 수 있는 명령. 그 예로써, 예외 또는 인터럽트으로부터의 복귀 명령 및 프로세서 레지스터로/로부터 이동명령이 있다.
본 발명은 데이터 요소의 변화가 다음과 같은 명령에 의해 다수의 프로그램에 대해 동기화되어지는 계획을 수행한다.
1. 메모리로의 액세스를 인터로크,
2. 할당된 메모리 위치내의 논리신호군을 판독(즉, 어드레스는 본 실시예에서 물리적 어드레스나 가상어드레스로 될 수 있다),
3. 할당된 메모리 위치로부터의 값을 저장,
4. 마스크 오퍼랜드와 함께 지정된 메모리 위치로부터 데이터 요소의 논리 곱(즉, AND 기능)을 형성,
5. 연산의 결과 논리곱을 가수 오퍼랜드에 합산,
6. 그 합을 지정된 메모리 위치로 다시 기입,
7. 인터로크를 해제.
이 명령은 멀티프로세서 시스템내의 다른 중앙처리장치 또는 보조프로세서가 또다른 인터로크 또는 명령의 갱신에 의해 동시에 같은 메모리 위치를 갱신할 수 있게 된다. 여기에 설명한 명령 및 장치는 소위 스핀로크, 테스트 밑 세트동작, 루프 반복 유도가변할당, 공유목표상 기준 카운트와 멀티프로세서 동기화를 요하는 다른 동작을 수행하는데 사용할 수 있다. EPICODE 모드를 사용함에 의해 가능하면 마이크로코드화된 수행과 명령의 복합시퀀스는 원자적 방식으로 수행될 수 있다. 더욱이, EPICODE 모드로의 명령의 실행에 의해 부가적 레지스터가 사용가능하고 어떠한 사상이 명령의 인터럽트 실행으로부터 디스에이블 된다. RMAQI 명령이 명령신호에 의해 확인된 가상어드레스에서 쓰기데이타와 동일할지라도 어떠한 크기의 데이터요소도 본 발명의 기술을 이용할 수 있음은 명백한 것이다.
본 발명의 실시예에서, 예를들어 RMALI 명령이 제공되어 명령에 의해 처리된 데이터가 명령에 의해 확인된 가상 어드레스에서 롱워드로 된다. 더욱이, 본 발명의 실시예는 RMAQIP 명령을 포함하며, 이 명령은 물리적 어드레스를 확인한다. 모든 명령들이 EPICODE 모드에서 실행된다.
전술한 설명은 본 발명의 실시예를 나타내기 위한 것이며 본 발명의 범위를 제한하고자 하는 것은 아니다. 본 발명의 범위는 청구범위에 의해서만 제한된다. 전술한 설명으로부터 본 발명의 다양한 변경 및 수정이 가능함은 당업자에게 명백한 것이며 이러한 변경 역시 본 발명의 정신 및 범위에 포함되고 있음을 이해하여야 한다.

Claims (10)

  1. 복수의 중앙처리장치를 갖는 데이터 처리 시스템의 주메모리 위치내의 데이터 요소를 수정하기 위한 장치로서, 상기 메모리 위치의 각각은 로크된 상태이거나 또는 언로크된 상태인 데이터 요소 수정 당치에 있어서, 복수의 실행명령을 상기 중앙처리장치의 각각에 제공하기 위한 수단을 포함하는데, 상기 각각의 복수의 실행명령에 따라 상기 중앙처리장치는 상기 메모리 위치중 하나로부터 상기 중앙처리장치로 상기 데이터 요소중 하나를 전달하고, 상기 데이터 요소를 수정하고, 및 상기 수정된 데이터 요소를 상기 주메모리 위치로 다시 전달하며; 1) 상기 실행된 명령이 인터로크 명령이고 상기 하나의 주메모리 위치가 언로크된 상태일 경우에는, 적어도 하나의 상기 주메모리 위치를 로크된 상태로 설정함으로써 상기 중앙처리장치가 상기 주메모리 위치중 하나로 인터로크 액세스되도록 하고, 2) 상기 실행된 명령이 인터로크 명령이고 상기 주메모리 위치가 로크된 상태일 경우에는, 상기중앙처리장치가 상기 주메모리중 하나로 액세스되지 못하도록 하며, 3) 상기 실행된 명령이 인터로크 명령이 아닐 경우에는, 상기 주메모리 위치가 로크된 상태로 설정되지 않고 상기 중앙처리장치가 상기 주메모리 위치로 비인터로크 액세스되도록 하기 위하여, 상기 중앙처리장치중 하나에 의해 상기 복수의 명령의 각 명령의 실행에 응답하는 인터로크 수단; 상기 주메모리 위치로부터 상기 명령을 실행하는 상기 중앙처리장치로 상기 데이터 요소를 전달하기 위한 전달수단; 및 상기 중앙처리장치에 의해 실행된 명령에 응답하여 상기 데이터 요소의 수정을 수행하기 위한 처리 수단을 포함하며, 상기 전달수단은 상기 중앙처리장치로부터 상기 주메모리 위치로 상기 수정된 데이터를 전달하며, 상기 실행된 명령이 인터로크 명령일 경우, 상기 인터로크 수단은 인터로크 명령을 실행한 중앙처리장치에 의해 상기 수정된 데이터 요소를 상기 주메모리 위치로 전달한 후에 상기 주메모리 위치를 언로크된 상태로 설정하는 것을 특징으로 하는 데이터 요소 수정 장치.
  2. 제1항에 있어서, 상기 중앙처리장치는 복수의 특권 동작 모드중 하나의 모드로 동작할 수 있으며, 상기 중앙처리장치중 하나에 의해 실행된 선택된 명령에 응답하여 상기 특권 동작 모드로 동작하는 것을 특징으로 하는 데이터 요소 수정 장치.
  3. 제1항에 있어서, 제2중앙처리장치는 인터로크된 액세스가 허용되지 않을 경우에 상기 주메모리 위치로 비인터로크된 액세스를 할 수 있는 것을 특징으로 하는 데이터 요소 수정 장치.
  4. 제1항에 있어서, 상기 적어도 하나의 인터로크 명령은 상기 주메모리 위치내의 데이터 요소를 식별하고, 상기 처리수단은 상기 인터로크 명령에 응답하여 사익 데이터 요소를 수정하는 것을 특징으로 하는 데이터 요소 수정 장치.
  5. 제1항에 있어서, 상기 처리수단은, 상기 중앙처리장치내에서 수정되는 상기 데이터 요소를 기억하기 위한 제1기억수단; 결합된 데이터 요소를 형성하기 위하여 상기 중앙처리장치에 의해 미리선택된 제1레지스터의 내용과 상기 데이터 요소와의 논리곱을 형성하기 위한 논리수단; 및 상기 중앙처리장치에 의해 미리선택된 제2레지스터의 신호 그룹을 상기 결합된 데이터 요소에 부가함으로써 상기 수정된 데이터 요소를 형성하기 위한 부가수단을 포함하는 것을 특징으로 하는 데이터 요소 수정 장치.
  6. 데이터 처리 시스템의 주메모리장치내의 데이터 요소를 수정하기 위한 방법으로서, 상기 주메모리장치는 위치를 가지며, 상기 위치는 로크된 상태이거나 언로크된 상태이며, 상기 데이터 처리 시스템은 복수의 중앙처리장치 및 상기 주메모리 장치를 갖는 데이터 요소 수정 방법에 있어서, 복수의 실행 명령을 상기 중앙처리장치의 각각에 제공하는 단계를 포함하는데, 상기 명령중 적어도 하나는 인터로크 명령이며, 상기 각각의 복수의 실행명령에 따라 상기 중앙처리장치는 상기 주메모리 위치로부터 상기 중앙처리장치로 상기 데이터 요소중 하나를 전달하고, 상기 데이터 요소를 수정하고, 및 상기 수정된 데이터 요소를 상기 주메모리 위치로 다시 전달하며; 1) 상기 실행된 명령이 인터로크 명령이고 상기 하나의 주메모리 위치가 언로크된 상태일 경우에는, 적어도 하나의 상기 주메모리 위치를 로크된 상태로 설정함으로써 상기 중앙처리장치가 상기 주메모리 위치중 하나로 인터로크 액세스되도록 하고, 2) 상기 실해된 명령이 인터로크 명령이고 상기 주메모리 위치가 로크된 상태일 경우에는, 상기 중앙처리장치가 상기 주메모리중 하나로 액세스되지 못하도록 하며, 3) 상기 실행된 명령이 인터로크 명령이 아닐 경우에는, 상기 주메모리 위치가 로크된 상태로 설정되지 않고 상기 중앙처리장치가 상기 주메모리 위치로 비인터로크 액세스되도록 하며, 4) 상기 중앙 처리장치가 상기 주메모리 위치로 액세스가 될 경우에는, 상기 주메모리 위치로부터 상기 중앙처리장치로 전달되는 데이터 요소가 수정되도록 함으로써, 상기 중앙처리장치중 하나에 의해 실행된 상기 복수의 명령의 각각에 응답하는 단계를 포함하는데, 상기 중앙처리장치는 상기 중앙처리장치로부터 상기 주메모리 위치로 상기 수정된 데이터 요소를 전달함으로써 상기 실행된 명령에 응답하는 단계, 및 상기 실행된 명령이 인터로크 명령일 경우, 상기 주메모리 위치를 언로크된 상태로 설정하는 단게를 더 포함하며; 및 상기 중앙처리장치중 다른 장치로부터 인터럽트없이 상기 중앙처리장치에 의해 상기 명령을 실행하는 단계를 포함하는 것을 특징으로 하는 데이터 요소 수정 방법.
  7. 제6항에 있어서, 상기 데이터 처리 시스템은 복수의 동작 모드중 하나의 모드로 동작될 수 있으며, 상기 중앙처리장치가 상기 다른 중앙처리장치로부터 인터럽트 없이 상기 명령을 실행할 수 있는 동작 모드를 갖는 데이터 처리 시스템을 제공하는 단계를 더 포함하는 것을 특징으로 하는 데이터 요소 수정 방법.
  8. 제7항에 있어서, 상기 중앙처리장치에 의한 수정 실행 단계는 중간 데이터 요소를 형성하기 위하여 마스크 레지스터의 내용과 데이터 요소와의 논리곱을 형성하는 단계, 및 상기 실행된 명령에 응답하여 상기 중앙처리장치에 의해 상기 주메모리 위치로부터 선택된 레지스터의 가수를 상기 중간 데이터 요소에 부가하는 단계를 더 포함하는 것을 특징으로 하는 데이터 요소 수정 방법.
  9. 제8항에 있어서, 상기 적어도 하나의 인터로크 명령은 구성 명령을 포함하며, 보전된 주메모리 위치내에 상기 인터로크 명령의 구성 명령을 기억하기 위한 단계를 포함하는 것을 특징으로 하는 데이터 요소 수정 방법.
  10. 제6항에 있어서, 상기 데이터 요소의 수정은 상기 중앙처리장치내에 데이터 요소를 기억시키는 단계; 결합된 데이터 요소를 형성하기 위하여 상기 중앙처리장치에 의해 미리선택된 제1레지스터의 내용과 상기 데이터 요소와의 논리곱을 형성하는 단계; 및 상기 수정된 데이터 요소를 형성하기 위하여 상기 중앙처리장치에 의해 미리선택된 제2레지스터로부터의 데이터 신호군을 상기 결합된 데이터 요소에 부가하는 단계를 포함하는 것을 특징으로 하는 데이터요소 수정 방법.
KR1019880008155A 1987-07-01 1988-07-01 데이터요소의 수정장치 및 그 방법 KR0136111B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US6938087A 1987-07-01 1987-07-01
US069,380 1987-07-01

Publications (2)

Publication Number Publication Date
KR890002759A KR890002759A (ko) 1989-04-11
KR0136111B1 true KR0136111B1 (ko) 1998-06-15

Family

ID=22088607

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019880008155A KR0136111B1 (ko) 1987-07-01 1988-07-01 데이터요소의 수정장치 및 그 방법

Country Status (9)

Country Link
EP (1) EP0297895B1 (ko)
JP (1) JPS6488673A (ko)
KR (1) KR0136111B1 (ko)
CN (1) CN1014938B (ko)
AU (1) AU627152B2 (ko)
BR (1) BR8803383A (ko)
CA (1) CA1302580C (ko)
DE (1) DE3855616T2 (ko)
IN (1) IN169634B (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2665813B2 (ja) * 1990-02-23 1997-10-22 三菱電機株式会社 記憶制御装置
JP3748710B2 (ja) * 1997-06-10 2006-02-22 株式会社リコー シート処理装置
CN103136159A (zh) * 2011-11-29 2013-06-05 中国航空工业集团公司第六三一研究所 一种用于多处理机系统的控制和信息交互方法
FR3021429B1 (fr) * 2014-05-23 2018-05-18 Kalray Barriere de synchronisation materielle entre elements de traitement
CN110161972B (zh) * 2018-02-11 2021-05-11 上银科技股份有限公司 多机同步协同控制方法及系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4891749A (en) * 1983-03-28 1990-01-02 International Business Machines Corporation Multiprocessor storage serialization apparatus
US4587609A (en) * 1983-07-01 1986-05-06 Honeywell Information Systems Inc. Lockout operation among asynchronous accessers of a shared computer system resource
US4791557A (en) * 1985-07-31 1988-12-13 Wang Laboratories, Inc. Apparatus and method for monitoring and controlling the prefetching of instructions by an information processing system

Also Published As

Publication number Publication date
DE3855616T2 (de) 1997-05-15
EP0297895A3 (en) 1992-01-22
DE3855616D1 (de) 1996-11-21
EP0297895B1 (en) 1996-10-16
AU627152B2 (en) 1992-08-20
BR8803383A (pt) 1989-01-24
IN169634B (ko) 1991-11-23
AU1863588A (en) 1989-01-05
CN1014938B (zh) 1991-11-27
KR890002759A (ko) 1989-04-11
CA1302580C (en) 1992-06-02
EP0297895A2 (en) 1989-01-04
CN1030312A (zh) 1989-01-11
JPS6488673A (en) 1989-04-03

Similar Documents

Publication Publication Date Title
US5050070A (en) Multi-processor computer system having self-allocating processors
KR920010978B1 (ko) 개선된 입·출력 인터럽트 제어를 가지는 가상 컴퓨터 시스템
US5159686A (en) Multi-processor computer system having process-independent communication register addressing
US7000072B1 (en) Cache memory allocation method
US4493020A (en) Microprogrammed digital data processor employing microinstruction tasking and dynamic register allocation
US4347565A (en) Address control system for software simulation
US5291581A (en) Apparatus and method for synchronization of access to main memory signal groups in a multiprocessor data processing system
US4031517A (en) Emulation of target system interrupts through the use of counters
US4715013A (en) Coprocessor instruction format
US4729094A (en) Method and apparatus for coordinating execution of an instruction by a coprocessor
JPS6258341A (ja) 入出力割込処理方式
US4731736A (en) Method and apparatus for coordinating execution of an instruction by a selected coprocessor
US4750110A (en) Method and apparatus for executing an instruction contingent upon a condition present in another data processor
JP3797570B2 (ja) セマフォ命令用のセマフォ・バッファを用いた装置と方法
US5021991A (en) Coprocessor instruction format
US11934698B2 (en) Process isolation for a processor-in-memory (“PIM”) device
EP0679990B1 (en) A computer apparatus having a means to force sequential instruction execution
US4821231A (en) Method and apparatus for selectively evaluating an effective address for a coprocessor
US4758950A (en) Method and apparatus for selectively delaying an interrupt of a coprocessor
US4914578A (en) Method and apparatus for interrupting a coprocessor
KR0136111B1 (ko) 데이터요소의 수정장치 및 그 방법
US5179691A (en) N-byte stack-oriented CPU using a byte-selecting control for enhancing a dual-operation with an M-byte instruction word user program where M<N<2M
CA1119307A (en) Microcomputer having separate bit and word accumulators and separate bit and word instruction sets
US4994961A (en) Coprocessor instruction format
CA1302579C (en) Apparatus and method for providing an extended processing environment on nonmicrocoded data processing system

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20070208

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee