KR970011207B1 - 원자 억세스를 제공하는 레지스터가 소프트웨어 인터록 없이 공유된 레지스터의 개별 비트를 세트하고 클리어하기 위한 방법 및 장치 - Google Patents

원자 억세스를 제공하는 레지스터가 소프트웨어 인터록 없이 공유된 레지스터의 개별 비트를 세트하고 클리어하기 위한 방법 및 장치 Download PDF

Info

Publication number
KR970011207B1
KR970011207B1 KR1019920017594A KR920017594A KR970011207B1 KR 970011207 B1 KR970011207 B1 KR 970011207B1 KR 1019920017594 A KR1019920017594 A KR 1019920017594A KR 920017594 A KR920017594 A KR 920017594A KR 970011207 B1 KR970011207 B1 KR 970011207B1
Authority
KR
South Korea
Prior art keywords
control register
address
register
bit
addresses
Prior art date
Application number
KR1019920017594A
Other languages
English (en)
Other versions
KR930006541A (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 KR930006541A publication Critical patent/KR930006541A/ko
Application granted granted Critical
Publication of KR970011207B1 publication Critical patent/KR970011207B1/ko

Links

Classifications

    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • 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
    • G06F9/526Mutual exclusion algorithms
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30018Bit or string instructions
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30087Synchronisation or serialisation instructions
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/52Indexing scheme relating to G06F9/52
    • G06F2209/521Atomic

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Executing Machine-Instructions (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

요약없음.

Description

원자 억세스를 제공하는 레지스터가 소프트웨어 인터록 없이 공유된 레지스터의 개별 비트를 세트하고 클리어하기 위한 방법 및 장치
제1도는 다중 마스터 환경이 초과기록 또는 원치않은 레지스터의 수정을 일으킬 수 있는 종래 기술에서 생기는 일치 문제를 도시한다.
제1a도는 제1도에 설명된 일치문제에 대한 종래의 해결방법을 도시하며, 여기서는 소프트웨어 상호 배타록이 하나의 마스터에 의해 특정 레지스터로의 억세스를 막고 또다른 마스터에 의해 미정의 억세스를 막는다.
제2도는 각각이 관련 비트 마스크를 수행하면서, 세개의 분리된 어드레스가 각각의 물리적 원자 억세스 레지스터에 할당되는 본 발명의 바람직한 실시예를 도시한다.
제3도는 원자 억세스 레지스터내에서 세트 및 판독 어드레스가 플립-플롭에 대해 라인을 선택함을 도시한다.
제3a도는 본 발명의 바람직한 실시예에 이용되는 어드레스 디코더의 논리표를 도시한다.
제3b도는 억세스 레지스터를 구성하는 플립-플롭에 대한 논리표를 도시한다.
제4도는 판독 및 기록동작에 대한 레지스터로의 원자 억세스의 예를 도시한다.
제5도는 본 발명의 제2실시예를 도시하는데, 여기서는 단일 어드레스가 각각의 물질적 원자 억세스레지스터에 할당되지만 원자 기능은 관련 비트 마스크 단일 비트에 의해 제어된다.
본 발명의 영역
본 발명은 컴퓨터 시스템 하드웨어에 관한 것이며, 특히 컴퓨터 시스템 프로세서 내의 상태 레지스터와 제어용 하트웨어 아키텍쳐에 관한 것이다.
기술 배경
컴퓨터 시스템은 종종 데이타를 일시적으로, 저장하거나 제어할 목적으로 레지스터를 이용한다. 정보를 갖는 다중 비트가 통상, 1부터 4바이트까지 동시에 저장될 수 있도록 레지스터는 구성된다.
컴퓨터의 프로세서에 의해 발생된 논리 0과 1의 형태로 데이타는 레지스터내에 저장될 수 있으며, 그후 차례대로 프로세서에 의해 재판독된다.
컴퓨터의 동작 제어에 있어서, 운영 시스템은 종종 다중 비트 레지스터내에 저장된 비트의 모임내에서 단일 비트는 남아있는 비트들에 영향을 주지않고 변화되도록 요구한다. 이 경우에 운영 시스템은 판독-수집-기록 사이클을 실행할 수 있으며, 그에따라 CPU는 저장 레지스터내에 포함된 정보를 판독하며, 그 내용을 수정하며 차례로 그 수정된 내용을 레지스터에 기록시킨다.
이러한 판독-수정-기록 동작은 프로세서가 연속되는 데이타 처리 혹은 연산동작에서 필요한 특정 제어 매개변수의 비트를 세트하거나 클리어하도록 허용된다.
판독-수정-기록 사이클의 실행은 주로 단일 프로세서 시스템에서 이용된다. 그러나, 하나 이상의 마스터 장치가 레지스터를 억세스하는 등가한 기회를 갖는 다중 프로세서 환경에서는 하나의 마스터가 초과기록, 수정, 변경 록은 또다른 마스터 장치에 의해서 이미 저장된 레지스터의 내용과 간섭하는 실제적 가능성이 존재한다. 제1도에는 저장 레지스터를 공유하는 두개의 프로세서가 도시되며, 여기서 현재 두 프로세서는 단일 레지스터 상에서 판독-수정-기록 사이클을 수행한다.
제1도로부터 마스터 B가 그의 최종기록동작을 끝내면, 마스터 B는 마스터 A의 기록동작을 무효로 함을 알 수 있다. 다중 프로세서 시스템에서 가장 절실히 요구되는 점은 특정 마스터에 의해 저장된 정보는 또다른 마스터에 의해 연속해서 실행되어야 한다는 점이다. 특정 레지스터의 내용이 그 레지스터내에 저장되도록 하는 마스터 장치와 일치하는 조건이 "일치(coherence)"라 알려져 있다. 하나이상의 마스터가 레지스터내 저장된 정보를 수정할 기회를 갖는 다중 프로세서 환경에서 일치는 캐시 메모리 아키텍쳐의 관계에서 주요관심사이다.
캐시 메모리를 내장하는 다른 프로세서 아키텍쳐에서 특정 마스터에 대한 캐시일치는 매우 중요하다.
종래 기술에서, 캐시 일치 문제점을 예방하는 대부분의 방법은 제1a도에 도시된 소위 "상호배타록(mutual exclusion lock)" 불러일으키는 것이다. 상호 배타 록은 소프트웨어에서 특정 마스터가 특정 레지스터를 억세스하기전에 억세팅 마스터가 그 레지스터를 결합해서 제어하도록 허용하는 시그날 또는 플래그의 소유권을 획득하는 시마포어이다.
상호 배타록은 통상 플래그를 구성하는 하드웨어 레지스터와 교환동작을 실행하는 마스터에 의해 야기된다. 이 마스터는 프래그 레지스터의 내용을 판독한후, 몇몇 영이 아닌 값을 레지스터에 로드시키며, 여기서 판독과 기록동작이 수행됨으로써 어떠한 다른 마스터도 교환동작 동안에는 그 레지스터에 대해 판독이나 기록할 수 있다. 그후 마스터는 교환동안 레지스터로부터 판독된 내용의 값을 검사한다;
만약 그 레지스터 값이 "0"이면, 록이 "프리(free)"이며, 마스터에 의해 주장될 수 있다. 만약 레지스터 값이 0이 아니면 그후 록은 프리가 되지 않으며, 마스터는 그 록을 이용할 수 없다. 마스터는 통상 검사된 값이 "0"즉, 로이 "프리"를 표시할 때까지 교환과 검사동작을 계속해서 수행한다.
록은 "0"을 플래그 레지스터에 기록하는 록의 제어를 갖는 마스터에 의해 해제된다. 예를들어, 제1a도 도시되는 것처럼, 몇몇 영이 아닌 값<lock_busy)을 저장하는 마스터가 교환동작을 실행한다.
그후, 마스터는 록이 "프리"인가를 알기위해, 기준값<lock_free>에 대해서 록 레지스터내에 이전에 저장된 내용의 값을 검사한다. 만약 이전에 저장된 내용이 <lock_free>이면, 이 마스터 그것이 록의 오우너임을 결정한다.
저장된 정보가 이후 예상치 않은 억세스에 기인해서 또다른 프로세서에 의해 변조되는 것에 관련없이, 상호 배타 록의 제어는 프로세서에 대해 정보를 억세스해서 레지스터내에 저장한다.
더우기 플래그를 세트함으로써 록을 주장하는 마스터만이 플래그를 클리어함으로써 록을 해제한다. 상호 배탁 록은 종래의 기술에서 잘 알려져 있으며, 록 기능을 만들어내는 몇가지 소프트웨어 알고리즘이 존재한다.
다중 프로세서 시스템에서 그러한 많은 상호 배타 록이 존재하며, 운영 시스템 소프트웨어는 언제 임계코드가 실행되고, 혹은 언제 임계 레지스터가 억세스되는가를 표시하기 위해 때때로 그러한 록을 이용한다. 그러나, 상호 배탁 록을 이용하는데는 록 기능을 효과적으로 하기 위해 추가적인 코드 공간 뿐만 아니라 절대적으로 추가처리시간을 필요로 한다. 고속의 임계연산에서 다중 록을 이용하는 것은 시스템의 수행을 실제적으로 방해하거나 감소시킬 수 있다.
앞으로 설명되듯이, 본 발명은 종래 기술에서 제공된 시간 집약 소프트웨어 인터록 매카니즘의 필요없이, 다중 프로세서 환경에서 시스템 저장 레지스터내에 저장된 데이타와 마스터간의 일치를 보장하는 단일 레지스터 아키텍쳐를 개시한다. 더우기, 본 발명은 종래 기술에서 처럼 소프트웨어 인터록을 요구함없이, 공유된 레지스터의 하나 혹은 그이상의 개별비트가 직접적으로 그리고 동시에 억세스되어 수정되도록 허용한다.
본 발명의 요약
본 발명은 다중 프로세서 환경내 레지스터 구조에서, 잘못된 마스터에 대해서 원자 억세스 레지스터가 원치않게 억세스되는 것을 막으면서, 소프트웨어 인터록없이 레지스터내 하나 록은 그 이상의 특정 비트를 세트하기 위해 프로세서가 공유된 레지스터를 원자적으로 억세스할 수 있는 방법 및 장치를 제공한다.
다수의 유일한 번지는 다주 비트 원자 억세스 레지스터에 할당된다. 바람직한 실시예에서 세개의 번지가 각각의 물리적 원자 억세스 레지스터에 할당된다. 하나의 어드레스가 클리어 어드레스를 구성하고, 두번째 어드레스가 세트 어드레스를 구성하며, 세번째 어드레스가 판독 어드레스를 구성한다. 각각의 어드레스는 서로 구별된다.
프로세서가 임의의 레지스터 억세스 명령을 발할 때, 어드레스 디코더는 각 원자 억세스 레지스터에 할당된 어드레스를 해독한다. 어드레스 디코더에 의해 해독될 때, 각 어드레스는 등가인 물리적 레지스터를 가리키며, 어드레스중 둘은 "의사-레지스터"를 가르킨다.
세트되거나 클리어될 물리적 레지스터의 특정 비트의 위치에 해당하는 논리 0과 1의 위치-등가 2진 패턴을 갖는 데이타는 세트 어드레스와 클리어 어드레스와 각각 관련된다. 어떠한 데이타도 판독 어드레스와는 관련되지 않는다.
원자 억세스 레지스터내 각 비트는 세트, 클리어, 선택 및 시스템 클록입력과 이네이블 출력을 갖는 플립플롭으로 구성된다.
특정 플립플롭에 대한 선택입력은 해독된 어드레스와 관련된 위치-등가 2진 데이타에 따라서 동작한다. 만약 변경될 특정 비트에 해당하는 데이타가 논리적으로 1이면, 그 레지스터내 데이타 비트를 구성하는 플립플롭은 선택된다. 일단 선택되면, 선택된 비트를 포함하는 레지스터와 관련된 어드레스가 세트 기능 록은 클리어 기능을 각각 구성함에 따라서 비트는 세트되거나 클리어된다. 억세스된 물리적 레지스터의 남아있는 비트는 마찬가지로 해당 의사-레지스터를 억세스하는 어드레스와 관련된 남아있는 위치-등가 2진 데이타에 따라서 변경된다. 발한 어드레스가 판독 어드레스이면, 레지스터의 각 플립-플롭에 대해 이네이블한 출력은 레지스터의 각 비트의 내용을 억세스하는 프로세서로 전달한다.
본 발명의 상세한 설명
다중 프로세서 컴퓨터 시스템에서 각 프로세서가 소프트웨어 인터록의 필요없이 공유된 레지스터를 원자력으로 억세스하여 하나 혹은 그 이상의 특정 비트를 세트 또는 클리어하는 레지스터 아키텍쳐가 개시된다.
아래의 설명에서는 설명하기 위한 목적으로 특정 수, 시간, 신호등의 본 발명의 완벽한 이해를 위해 제공된다. 그러나, 본 발명의 기술에 숙련된 사람에겐 이러한 상세없이도 본 발명을 실시할 수 있음은 명백하다. 다른 경우에 있어, 본 발명을 불필요하게 모로하게 하지 않기 위해 공지된 회로 및 장치는 블록 다이어그램 형태로 도시된다.
본 발명은 여러 실시예로 실시될 수 있다. 앞으로 두개의 특정 실시예가 설명되겠지만 다른 실시예들도 동일한 결과를 나타낸다는 것을 이해할 수 있다.
본 발명의 가르침을 담고있는 저장 레지스터 아키텍쳐는 컴퓨터 시스템내 어디에서든 수행될 수 있다. 바람직하게는 원자 억세스에 대해 비트를 세트하고 클리어하는 것을 허용하는 레지스터는 인터럽트 조종 아키텍쳐내에서 수행된다.
본 발명은 어떠한 다중 프로세서 컴퓨터 시스템과도 사용될 수 있지만, 선 마이크로 시스템사즈에 의해 제조된 다중 프로세서 컴퓨터와 작용하도록 의도되었다. 아래에 기술된 본 발명은 앞서 출원되어 계속중인, 특히 "무방향 인터럽트를 동작으로 조정하기 위한 방법 및 장치(Method and Apparatus for Dynamically Steering Undirected Interrupts)"란 제목의 출원(출원번호 )과 관련해서 작용하도록 의도되었다.
제2도에는 두개의 원자 억세스 레지스터를 표시하는 블록 다이어그램이 도시된다. 그러나, 임의수의 원자 억세스 레지스터가 특정 다중 프로세서 컴퓨터 시스템에서 수행될 수 있다. 제2도에서, 다중 비트 레지스터(10)가 공지의 방식으로 형성된다. 레지스터(10)는 다수의 개별비트(15)로 구성된다. 레지스터(10)내에 포함되는 비트(15)의 수에는 제한이 없으며, 레지스터(10) 통상 컴퓨터 시스템 버스(도시안됨)에 의해 조절될 수 있을 만큼의 많은 비트를 포함한다.
레지스터(10)과 관련되는 것은 다중 어드레스(25)이다. 제2도에서 볼 수 있듯이, 개별 어드레스 즉 ADDR0, ADDR4 및 ADDR8 모두는 레지스터(10)를 향해있다. 프로세서(도시안됨)에 의해 실행되어 어드레스 디코더(도시안됨)에 의해 해독되면, 어드레스(25)는 프로세서가 레지스터(10)를 억세스하도록 허용한다.
프로세서와 어드레스 디코더는 통상 공지의 기술로 형성된다. 프로세서에 의해 어떤 어드레스가 실행되는가에 따라서 레지스터(10)에 가해지는 동작은 변한다. 또한 레지스터(10)의 상세는 어떤 디코더가 수행되는가에 의존한다.
설명하기 위한 목적으로 임의의 어드레스 값이 어드레스(25)에 할당되지만, 만약 각 어드레스가 유일하고, 해독 가능하며 그리고 전체 시스템 아키텍쳐와 일치한다면, 어떠한 어드레스 값이든 본 발명내에서 작용할 것이란 사실을 이해할 수 있는 것이다. 레지스터(10)를 구성하는 개별 비트(15)에 가해지는 작용은 어드레스 명령어가 프로세서에 의해 실행될 때 각 어드레스(25)와 관련된 데이타(27)이 의해 조절된다. 특히, 레지스터(10)내 개별 비트(16)는 위치-등가 비트(28)에 의해서, 억세싱 프로세서에 의해 실행된 어드레스 명령어내 특정 어드레스(25)와 관련된 데이타(27)를 2진 표시로 표시된다.
즉, 실행되는 특정 어드레스(25)와 관련된 데이타(27)에 해당하는 2진 데이타내 위치-등가 비트(28)위치는 레지스터(10)내 물리적 비트(16)의 동작을 제어한다. 레지스터(10)내 개별 비트(15)를 제어하는 관련 데이타(27)과 관련된 어드레스(25)의 동작은 앞으로 좀더 자세히 기술될 것이다.
제2도에서, 레지스터(10)상에 판독 동작을 수행하도록 할당된 어드레스(25)는 ADDR0이다.
프로세서에 의해 실행되어 어드레스 디코더에 의해 해독되면, ADDR0는 레지스터(10)로 향하며, 프로세서는 레지스터(10)내 포함된 모든 비트(15)에 대한 데이타를 판독한다. 어드레스(25)가 판독을 수행하도록 할당되면, 어드레스(25)와 관련된 아무런 데이타(27)도 없는데, 그 이유는 레지스터(10)내 어떠한 비트(15)도 판독 동작중에 변화되지 않기 때문이다. 클리어 동작을 수행하기 위해 할당된 어드레스는 ADDR4이다.
프로세서에 의해 실행되어 해독되면, ADDR4는역시 레지스터(10)을 향하게 된다. 그러나, 판독 동작과 관련된 ADDR0와는 달리, ADDR4 어드레스는 클리어될 비트(15)를 마스킹하는 데이타(27)와 관련된다.
그후, 프로세서 어드레스 ADDR4와 관련된 2진 등가 데이타(27)의 위치-등가 비트(28)에 따라서 레지스터(10)의 특정 비트(15)를 클리어한다.
만약 위치-등가 데이타 비트(28)가 논리 1이면, 데이타 비트(28)에 해당하는 비트(16)는 논리 0으로 세트된다.
만약 위치-등가 데이타 비트(28)가 논리 0이면, 비트(16)는 변화되지 않는다. 마지막으로 세트 동작을 수행하기 위해 할당된 어드레스(25)가 ADDR8이다. 프로세서에 의해 실행되어 해독되면, ADDR8은 레지스터(8)을 향한다. ADDR4인경우, 데이타(27)는 어드레스 ADDR8과 관련된다. 프로세서는 어드레스 ADDR8와 관련된 2진 등가 데이타(27)의 위치-등가 비트(22)에 따라서 레지스터(10)의 각 비트(16)를 세트한다.
만약 위치-등가 비트(22)가 논리 1이면, 위치-등가 비트(22)에 해당하는 비트(16)은 논리 1로 세트된다.
만약 위치-등가 비트(22)가 논리 0이면, 이 비트(15)는 변화되지 않고 그대로 있다. 레지스터(11)를 구성하는 개별 비트(17)에 대한 작용은 어드레스 명령이 프로세서에 실행될 때 각 어드레스(26)와 관련된 데이타(27)에 의해 제어된다. 특히, 레지스터(11)내 개별 비트(18)는, 억세스 프로세서에 의해 실행되고 레지스터(11)로 향하고 있는 특정 어드레스(26)와 관련된 2진 표시의 데이타(27)에서 위치 등가 비트(29)에 의해 표시될 수 있다.
즉, 실행되는 특정 어드레스(26)와 데이타(27)와 등가인 2진 데이타내 위치-등가 비트(29)는 레지스터(11)내 물리적 비트(18)가 작용되었는지를 제어한다. 레지스터(11)내 개별 비트(17)를 제어함에 있어 관련데이타(27)와 관련된 어드레스(26)의 동작은 아래에 더 자세히 설명될 것이다.
제2도를 계속해서 살펴보면, 레지스터(11)상에서 판독동작을 수행하도록 할당된 어드레스(26)는 ADDRC이다. 프로세서에 의해 실행되어 어드레스 디코더에 의해 해독되면, ADDRC는 레지스터(11)를 향하며, 프로세서는 레지스터(11)내 포함된 모든 비트(17)에 관한 데이타를 판독한다. 어드레스(26)가 판독을 수행하도록 할당되면 어드레스(26)와 관련된 데이타(27)는 존재하지 않는데 그 이유는 레지스터(11)내에 어떠한 비트(17)도 판독동작동자에 변하지 않기 때문이다.
클리어 동작을 수행하도록 할당된 어드레스는 ADDR10이다. 프로세서에 의해 실행되어 해독하면 ADDR10은 역시 레지스터(11)로 향한다. 그러나, 판독 동작과 관련된 ADDRC 어드레스와는 달리 ADDR10 어드레스는 클리어될 비트는 마스킹하는 데이타와 관련된다.
그후, 프로세서는 어드레스 ADDR10와 관련된 2진 등가 데이타(27)의 위치-등가 비트(27)에 따라서 레지스터(11)의 특정 비트(17)를 클리어한다. 만약 위치-등가 데이타 비트(29)가 논리 1이면, 데이타 비트(29)에 해당하는 비트(18)는 논리 0으로 세트된다.
만약 위치해당 데이타 비트(29)가 논리 0이면, 비트(17)은 변하지 않는다. 마지막으로 세트 동작을 수행하도록 할당된 어드레스(26)는 ADDR14이다. 프로세서에 의해 실행되어 해독되면, ADDR14는 레지스터(11)를 향한다.
상기 ADDR10인 경우와 같이 데이타(27)는 어드레스 ADDR14와 관련된다. 프로세서 어드레스(14)와 관련된 2진 등가 데이타(27)의 위치-등가 비트(23)에 따라서 레지스터(11)의 각 비트(18)를 세트한다.
만약 위치등가비트(23)가 논리 1이면, 데이타 비트(23)에 해당하는 비트(18)은 논리 1로 세트된다. 만약, 위치-등가 비트(23)가 논리 0이면, 비트(18)는 변하지 않는다.
제3도를 살펴보면, N-비트 원자 억세스 레지스터(12)의 수행을 블록 다이어그램으로 표시한 것이 도시된다. 여기서, 플립-플롭(30)은 레지스터(12)의 "n번째"비트를 저장한다. 플립-플롭(30)은 4개의 입력을 갖는다: 세트, 클리어, 선택, 및 클록 어드레스 디코더(35)가 레지스터(12)와 관련된다.
어드레스 디코더(35)은 공지의 설계를 갖는 하드웨어 디코더이며, 공지방식을 수행되며, 정당한 판독 또는 기록 동작이 계속됨을 표시하는 신호를 수신하는 판독 이네이블과 기록 이네이블 입력뿐 아니라 어드레스 라인에 대해 적절한 입력을 갖는다.
어드레스 디코더(35)는 플립-플롭(30)의 세트 및 클리어 입력에 각각 접속된 세트 및 클리어란 두개의 출력을 갖는다. 어드레스 디코더(35)의 판독 출력은 플립-플롭(30)의 출력 이네이블에 접속되며, 레지스터(12)를 구성하는 모든 플립-플롭중 출력 이네이블은 레지스터(12)와 관련된 어드레스 사이클동안과 판독동작이 발생했다는 것을 표시하는 프로세서(도시안됨)로부터의 적절한 신호가 존재할때 단언한다.
제2도 및 제3도에서 볼 수 있듯이, 플립-플롭(30)에 대한 선택 입력은 어드레스(25)와 관련된 데이타(27)로부터, 특히 플립-플롭(30)과 관련된 2진으로 표시된 위치-등가 데이타(27)로부터 나온다. 플립-플롭(30)과 어드레스 디코더(35)에 대한 클록 입력은 컴퓨터를 통해서 분산된 시스템 클록 시그날로부터 구해진다.
동작에 있어서는 어드레스 디코더(35)가 어드레스 라인상에 나타나는 임의의 어드레스가 어드레스 디코더(35)에 의해 제어되는 레지스터(12)에 해당하는 지를 결정할 때마다 어드레스 디코더(35)는 어드레스와 관련된 데이타(27)에 의해 결정된 0부터 N까지의 개별 비트를 세트, 클리어, 혹은 판독할 것이다.
제3도에 도시된 레지스터(12)에 대한 특이한 응용으로서, 플립-플롭(30)으로의 선택입력이 제2도에 도시된 해독된 어드레스 ADDR4와 ADDR8와 각각 관련된 데이타(27)에서 "n번째" 위치-등가 2진 비트(28 및 22)에 의해 활성화되면, 플립-플롭(30)은 클리어되거나 세트된다. 판독명령이 어드레스 ADDR0와 함께 발생되면 0부터 N까지의 모든 비트는 판독된다.
앞서 설명했듯이, 본 발명에 의해 개시된 세트/클리어 원자 억세스 아키텍쳐는 본 발명의 가르침에 따라 구성된 임의의 레지스터에 대해 "의사-레지스터"기능을 실제적으로 수행한다. 의사-레지스터는 일반적으로 가설적인 비물리 저장위치를 언급함을 상기하자. 의사-레지스터는 대상 데이타를 실제 저장하는 물리적 레지스터에 할당된 어드레스가 아닌 어드레스에 의해 식별된다. 그러므로 하드웨어에는 오직 하나의 물리적 레지스터가 존재하지만, 물리적 레지스터는 많은 기능들이 레지스터상에서 수행하도록 허용하는 다수의 어드레스에 의해 식별될 수 있다.
어드레스의 특징예와 레지스터 비트를 판독하고, 세트하고, 클리어하는 것을 제어하는 관련 데이타가 제4도에 관련해서 설명된다. 제4도는 판독 및 기록명령과 관련된 어드레스와 데이타가 도시되며, 또한 임의의 어드레스에 의해 지시된 특정 레지스터(도시안됨)에 대한 최종 레지스터의 내용이 도시된다. 설명하기 위한 목적으로 레지스터는 4-비트 레지스터라고 가정한다. 4-비트 레지스터의 내용을 구성하는 2진 데이타는 0과 1의 임의적인 결합이다. 레지스터내 모든 비트 위치를 클리어하도록 요구되었다고 가정한다. 레지스터의 비트를 클리어하기 위해, 제2도에 설명된 기록-및 클리어 동작에 할당된 어드레스 즉, ADDR4를 이용하여 운영 시스템을 레지스터에 대해 기록한다. 본 발명에 따라서, 2진 표시로 위치-등가 비트가 논리 1로 세트될 때, 특정 비트가 선택된다. 그러므로, 레지스터내 모든 비트위치를 클리어하기 위해 4개 비트의 위치가 선택되어야 할 필요가 있다.
모든 4비트를 선택하기 위해, 데이타 표시에서 모든 4개의 위치-등가 2진 비트는 논리 1로 세트되어야 한다. 4비트 레지스터에 대해, 2진 데이타 표시는 "1111"이다. 2진 1111은 16진 데이타 표현에서 F에 해당한다. 그러므로, 4비트 레지스터내 모든 위치를 클리어하기 위해, 제어 프로세서에 의해 실행될 복합 명령어는 WRT ADDR4 FH이다.
수행될 다음 동작은 레지스터내 특정 비트를 세트하다고 가정한다. 또한 세트될 비트가 가장 중요한 비트라 가정한다. 레지스터내 가장 중요한 비트를 세트하기 위해, "1000"의 2진 표시가 필요하다.
제2도와 상기 기술로부터, 세트명령과 관련된 어드레스는 어드레스 ADDR8이다. 그러므로, 레지스터의 가장 중요한 비트를 세트할 때, 복합 명령은 WRT ADDR8 8H가 될 것이다. 또한 다음 동작이 레지스터내 제2 덜 중요한 비트를 세트한다고 가정한다. 다시 세트되는 어드레스는 ADDR8이다.
제2덜 중요한 비트를 세트하며 어드레스 ADDR8과 관련된 데이타는 "10" 즉, 2H가 된다. 그러므로, 레지스터내 제2 덜 중요한 비트를 세트하는 복합 명령은 WRT ADDR8 2H이다. 이제 레지스터 내용이 판독된다고 가정한다.
제2도에서 도시되듯이 판독 어드레스는 어드레스 ADDR0이다. 운영 시스템은 판독되는 레지스터로부터 데이타를 수신할 것을 기대하기 때문에 특히 아무런 데이타도 판독명령과 관련되지 않는다. 그러므로, 레지스터를 판독하는 명령은 RD ADDR0이다. 판독 명령이 실행되면, 판독을 요구하는 프로세서의 판독 입력에서 레지스터 내용이 나타나게 된다. 다음으로 가장 중요한 비트가 클리어된다고 가정한다.
따라서 가장 중요한 비트를 선택하는 기록- 및- 클리어 어드레스 ADDR4가 실행된다. 가장 중요한 비트는 4개 비트 위치:2진 1000을 선택하는 데이타를 기록함으로서 구해진다. 따라서, 가장 중요한 비트를 클리어하는 복합 명령은 WRT ADDR4 8H가 된다. 마지막으로 레지스터의 내용을 판독하는 것이 요구된다. 상기와 같이 판독 명령은 어드레스 ADDR0와 관련된 어떠한 데이타도 요구하지 않는다. 그러므로 복합 명령은 RD ADDR0가 된다. 상기예에 따라서 실행된 각 명령에 대해서 제4도는 각각 동작 단계의 완결에 뒤따라 레지스터의 최종 내용을 보여준다.
앞서에서 설명했지만, 본 발명의 주요속성은 의도되지 않은 프로세서에 의한 레지스터로의 의도되지 않은 억세스는 다중단계 명령 사이클동작 회피되는 것이다. 따라서, 다중 프로세서 컴퓨터 시스템에서 다중 프로세서에 의해 공유된 레지스터내 프로세서에 의해 저장된 데이타와 프로세서간의 데이타의 일치는 보전된다. 기능적으로 어드레스(25)의 하나를 선택해서 물리적 레지스터(10 및 11)로 향하는 것은 레지스터(10 및 11)내에서 각각 동작을 결정한다. 즉, 레지스터(10)와 관련된 모든 어드레스(25)는 오직 레지스터(10)상에서 동작하기 때문에, 특정 프로세서를 위해 레지스터(10)에 저장된 데이타의 일치는 보장된다. 레지스터(10)는 해독될 때 프로세서는 레지스터(10)에 접속시는 어드레스를 실행시키는 프로세서에 의해서만 억세스된다. 기능의 유일성은 어드레스(26)에 의해 레지스터(11)내에서 마찬가지로 구해진다. 그러므로, 유일 레지스터 어드레스는 종래기술에서 나타나는 일치 문제없이 다중 프로세서에 의해 억세스될 수 있는 레지스터의 풍부한 선택을 제공한다.
본 발명의 또다른 중요한 속성은 레지스터내 개별비트는 다중단계 판독-수정-사이클의 필요없이, 레지스터내 개별비트가 원자적으로 세트되거나 클리어되는 것이다.
본 발명은 세트되거나 클리어된 물리적 레지스터의 실제 비트에 대한 마스크로서 위치 등가 2진 데이타 패턴의 개별 비트를 이용한다. 그러므로 마스터에 의해 저장된 데이타와 마스터간의 데이타 일치를 보전하기 위한 성가신 코드 공간과 시간강화 소프트웨어 인터록 계획은 불필요하다.
본 기술의 당해 업자라면 판독명령이 프로세서에 의해 시작된 적절한 이네이블신호와 함께 기록-세트 어드레스 혹은 기록-클리어 어드레스를 이용해서 수행될 수 있다. 제1실시예에 세개의 분리 어드레스를 이용하느냐 혹은 기록 어드레스중의 하나를 이용해서 판독하는가의 선택은 전적으로 설계자의 판단에 달려있다. 오래된 제1발생(즉, 4-비트) 프로세서에서 어드레스 공간은 제한되며 큰값의 모든 어드레스도 마찬가지이다.
현재 32비트 이상의 프로세서에서 어드레스 공간은 정상적으로 예상되는 불연속 어드레스의 수를 초과해서 필요한 블록에서 장치에 할당된다. 그러므로, 두개의 어드레스 원자 억세스 레지스터 혹은 3개의 어드레스 원자 어드레스 레지스터를 구성하는 결정은 설계자의 취향이다. 물론, 두개의 어드레스 수행에 비해 3개의 어드레스 수행을 선택하는 것은 어드레스 디코더 설계를 지시한다.
제5도에 레지스터로의 원자 억세스인 본 발명의 제2실시예를 도시한다. 레지스터(40)는 상기와 같이 구성된 다중 비트 레지스터이다. 단일 어드레스(45)는 오직 레지스터(40)만을 향한다. 그것의 2진 등가가 레지스터(40)내 개별비트(41)를 세트하거나 클리어하기 위해 마스크를 제공하는 데이타(47)가 어드레스(45)와 관련된다.
제2실시예에서 레지스터(40)의 단일 비트(42)는 명령이 세트 혹은 클리어명령 표시하기 위해 플래그로 표시된다. 이 플래그 기능을 수행하는 비트는 레지스터(40)내 포함된 어떠한 비트는 될 수 있다. 남아있는 비트는 일반적인 방식으로 데이타를 저장한다. 이 도면에서 가장 중요한 비트(42)는 플래그로서 이용되며, 여기서 1은 동작이 비트를 세트함을 표시하고 0은 비트를 클리어함을 표시한다.
따라서, 본 제2실시예에 따라 원자 억세스 레지스터의 수행은 전이 실시예에서 보다 하나 더 적은 비트를 세터하거나 클리어하게 된다. 즉, N비트로 구성된 원자 억세스 레지스터에서 제2실시예는 레지스터의 N-1비트를 세트하거나 클리어한다. 반면에 제1 및 제2실시예의 원자 억세스 레지스터는 N비트를 세트하거나 클리어한다.
논리 1은 어드레스 명령어와 관련된 2진 등가 데이타(47)의 가장 중요한 비트(48)를 갖는 레지스터(40)로의 기록 명령은 남아있는 데이타의 2진 등가 비트가 레지스터(40)내 포함된 개별 비트(41)를 세트하기 위해 비트 마스크로 해석되게 한다. 반면에 만약 기록 명령에 따라 시작된 데이타의 2진 등가의 가장 중요한 비트(42)가 논리 0이면, 그후 남아있는 2진 등가의 비트는 레지스터(40)의 개별 비트를 클리어하기 위한 비트 마스크로 해석될 것이다.
제2실시예에서 가장 중요한 비트(42)의 상태는 판독 동작에서는 의미가 없다.
지금까지 레지스터내에서 개별 비트를 원자적으로 세트하거나 클리어하도록 억세스될 수 있는 레지스터에 대한 두개의 실시예가 설명되었다. 본 발명의 취지가 영역을 벗어남없이도 당업자라면 본 발명의 요소를 쪼개고 결합해서 그 변형이나 수정이 나올 수 있다는 것을 생각할 수 있다.

Claims (29)

  1. 버스에 결합된 다수의 프로세서를 갖는 컴퓨터 시스템에서, 각각이 복수의 어드레스에 의해 식별되고, 복수의 비트를 저장하기 위해 상기 버스에 접속된 복수의 제어 레지스터로 구성되는 레지스터 수단; 및 상기 제어 레지스터내 저장된 상기 비트를 억세스하기 위해 상기 버스와 상기 레지스터 수단에 결합된 어드레스 수단으로 구성되며, 상기 어드레스 수단은 상기 어드레스 중의 하나와 데이타값으로 구성되며, 특정 프로세서에 의해 시작된 어드레스 명령을 수신하며; 상기 어드레스 수단은 어드레스 명령에 포함된 상기 어드레스와 상기 데이타값에 따라서 특정 제어 레지스터의 특정 비트만을 변화시키는 특정 프로세서를 특정 제어 레지스터에 접속시키는 것을 특징을 하는 원자 억세스 레지스터 시스템.
  2. 제1항에 있어서, 상기 어드레스 수단이 각각의 상기 제어수단에 따라서 상기 복수의 어드레스를 해독하기 위해 어드레스 디코딩 수단을 추가로 포함하는 것을 특징으로 하는 원자 억세스 제어 레지스터 시스템.
  3. 제1항에 있어서, 상기 데이타 값은 각각의 상기 제어 레지스터의 특징 비트를 변화시키기 위해 비트 마스크를 포함하는 것을 특징으로 하는 원자 억세스 제어 레지스터 시스템.
  4. 제3항에 있어서, 상기 비트 마스크는 변화될 상기 특정 제어 레지스터내 특정 비트를 결정하는 것을 특징으로 하는 원자 억세스 제어 레지스터 시스템.
  5. 제1항에 있어서, 상기 특정 제어 레지스터의 상기 특정 비트가 세트될 수 있는 것을 특징으로 하는 원자 억세스 제어 레지스터 시스템.
  6. 제1항에 있어서, 상기 특정 제어 레지스터의 특정 비트가 클리어될 수 있는 것을 특징으로 하는 원자 억세스 제어 레지스터 시스템.
  7. 제1항에 있어서, 상기 복수의 어드레스의 각각의 유일한 것을 특징으로 하는 원자 억세스 제어 레지스터 시스템.
  8. 제1항에 있어서, 상기 복수의 어드레스의 각각이 단일 물리적 제어 레지스터로 향하고 있는 것을 특징으로 하는 원자 억세스 제어 레지스터 시스템.
  9. 제8항에 있어서, 상기 복수의 어드레스의 각각이 상기 단일 물리적 제어 레지스터상에서 유일한 기능을 발생하는 것을 것을 특징으로 하는 원자 억세스 제어 레지스터 시스템.
  10. 버스에 결합된 다수의 프로세서를 갖는 컴퓨터 시스템에서, 각각이 복수의 저장 위치를 가지며 복수의 비트를 저장하며, 복수의 어드레스와 연관되며, 디지탈 데이타를 저장하기 위해 상기 버스에 결합된 복수의 제어 레지스터로 구성되는 레지스터수단; 및 상기 제어 레지스터에서 저장된 상기비트를 억세스하기 위해 상기 레지스터 수단과 상기 버스에 결합된 어드레스 디코딩 수단을 포함하는 어드레스 수단으로 구성되며, 상기 어드레스 수단이, 특정 프로세서에 의해 시작될 때 비트 마스크를 구성하는 저장 위치 등가 2진 데이타를 갖는 데이타값과 특정 제어 레지스터에 해당하는 상기 복수의 어드레스중 하나를 구성하는 어드레스 명령을 수신하며; 상기 어드레스 디코딩 수단이 상기 복수의 어드레스중 하나를 해독해서 상기 특정 프로세서를 상기 특정 프로세서에 의해 어드레스된 상기 특정 제어 레지스터에 접속시키며; 상기 어드레스 수단이 어드레스 명령내 포함된 데이타값을 표시하는 상기 저장 위치 등가 2진 데이타에 의해 형성된 비트 마스크에 의해서 상기 특정 제어 레지스터의 특정비트만을 변화시키며, 특정 프로세서에 의해 어드레스된 특정 제어 레지스터내 상기 특정 비트만이 원자력으로 억세스되며 상기 비트마스크에 의해 변화되는 것을 특징으로 하는 원자 억세스 제어 레지스터 시스템.
  11. 제10항에 있어서, 특정 제어 레지스터상의 작용이 상기 어드레스 명령내 어드레스에 의해 제어되는 것을 특징으로 하는 원자 억세스 제어 레지스터 시스템.
  12. 제11항에 있어서, 특정 제어 레지스터의 상기 저장위치의 상기 특정 비트가 세트되는 것을 특징으로 하는 원자 억세스 제어 레지스터 시스템.
  13. 제11항에 있어서, 특정 제어 레지스터의 상기 저장위치의 상기 특정 비트가 클리어되는 것을 특징으로 하는 원자 억세스 제어 레지스터 시스템.
  14. 제10항에 있어서, 상기 복수의 어드레스의 각각이 유일한 것을 특징으로 하는 원자 억세스 제어 레지스터 시스템.
  15. 제10항에 있어서, 상기 어드레스 디코딩 수단이 상기 복수의 어드레스의 각각을 해독하는 것을 특징으로 하는 원자 억세스 제어 레지스터 시스템.
  16. 제10항에 있어서, 상기 복수의 어드레스가 단일 물리적 제어 레지스터로 향하고 있는 것을 특징으로 하는 원자 억세스 제어 레지스터 시스템.
  17. 제16항에 있어서, 상기 복수의 어드레스의 각각을 해독하는 것은 상기 단일 물리적 제어 레지스터상에서 유일한 기능을 발생하는 것을 특징으로 하는 원자 억세스 제어 레지스터 시스템.
  18. 버스에 결합된 다수의 프로세서를 갖는 컴퓨터 시스템에서 원자 억세스 레지스터를 제어하는 방법에 있어서, 복수의 비트를 저장하기 위해 복수의 제어 레지스터를 구성하는 레지스터 수단을 제공하는 단계; 복수의 어드레스에 의해 상기 제어 레지스터의 각각을 식별하는 단계; 상기 제어 레지스터내 저장된 상기 비트를 억세스하기 위해 어드레스 수단을 제공하는 단계; 상기 어드레스중 하나와 데이타값을 구성하는 어드레스 명령을 추가로 제공하는 단계; 및 상기 어드레스 수단을 이용해서, 상기 어드레스에 따라서 특정 프로세서를 특정제어 레지스터에 접속시켜 명령에 포함된 데이타 값에 따라서 특정 제어 레지스터의 특정 비트만을 변화시키는 단계로 구성되는 것을 특징으로 하는 방법.
  19. 제18항에 있어서, 상기 어드레스 수단을 제공하는 단계가 상기 제어 레지스터의 각각에 해당하는 상기 복수의 어드레스를 해독하는 단계를 포함하는 것을 특징으로 하는 방법.
  20. 제18항에 있어서, 상기 데이타 값이 상기 제어 레지스터 각각의 특정 비트를 변화시키기 위해 비트 마스크를 포함하는 것을 특징으로 하는 방법.
  21. 제20항에 있어서, 상기 비트 마크는 변화된 상기 특정 제어 레지스터내 특정 비트를 식별하는데 이용되는 것을 특징으로 하는 방법.
  22. 제21항에 있어서, 상기 특정 제어 레지스터의 상기 특정 비트가 세트되는 것을 특징으로 하는 방법.
  23. 제21항에 있어서, 상기 특정 제어 레지스터의 상기 특정 비트가 클리어되는 것을 특징으로 하는 방법.
  24. 제18항에 있어서, 상기 복수의 어드레스가 각각이 유일한 것을 특징으로 하는 방법.
  25. 제18항에 있어서, 상기 복수의 어드레스가 단일 물리적 제어 레지스터에 해당하는 것을 특징으로 하는 방법.
  26. 제25항에 있어서, 상기 복수의 어드레스의 각각이 상기 단일 물리적 제어 레지스터상에서 유일한 기능을 발생하는 것을 특징으로 하는 방법.
  27. 제18항에 있어서, 단일 제어 레지스터상의 작용이 어드레스 명령내 포함된 데이타값을 표시하는 상기 저장 위치 등가 2진 데이타중 하나의 비트에 제어되는 것을 특징으로 하는 방법.
  28. 제18항에 있어서, 상기 단일 제어 레지스터의 비트가 세트되는 것을 특징으로 하는 방법.
  29. 제27항에 있어서, 상기 단일 제어 레지스터의 비트가 클리어되는 것을 특징으로 하는 방법.
KR1019920017594A 1991-09-27 1992-09-26 원자 억세스를 제공하는 레지스터가 소프트웨어 인터록 없이 공유된 레지스터의 개별 비트를 세트하고 클리어하기 위한 방법 및 장치 KR970011207B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/767,122 US5287503A (en) 1991-09-27 1991-09-27 System having control registers coupled to a bus whereby addresses on the bus select a control register and a function to be performed on the control register
US767,122 1991-09-27

Publications (2)

Publication Number Publication Date
KR930006541A KR930006541A (ko) 1993-04-21
KR970011207B1 true KR970011207B1 (ko) 1997-07-08

Family

ID=25078543

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019920017594A KR970011207B1 (ko) 1991-09-27 1992-09-26 원자 억세스를 제공하는 레지스터가 소프트웨어 인터록 없이 공유된 레지스터의 개별 비트를 세트하고 클리어하기 위한 방법 및 장치

Country Status (5)

Country Link
US (1) US5287503A (ko)
EP (1) EP0535820B1 (ko)
JP (1) JP3381733B2 (ko)
KR (1) KR970011207B1 (ko)
DE (1) DE69231174T2 (ko)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2078913A1 (en) * 1991-12-12 1993-06-13 John J. Reilly Interprocessor communication system and method for multiprocessor circuitry
JP2688164B2 (ja) * 1993-07-26 1997-12-08 インターナショナル・ビジネス・マシーンズ・コーポレイション 情報処理システム
US5574922A (en) * 1994-06-17 1996-11-12 Apple Computer, Inc. Processor with sequences of processor instructions for locked memory updates
JP2682469B2 (ja) * 1994-09-20 1997-11-26 日本電気株式会社 命令コード符号化方式
EP0715252B1 (en) * 1994-11-14 2000-05-10 Nec Corporation A bit field peripheral
JPH0916472A (ja) * 1995-07-04 1997-01-17 Fujitsu Ltd キャッシュメモリ試験方法
US5790888A (en) * 1996-08-12 1998-08-04 Seeq Technology, Inc. State machine for selectively performing an operation on a single or a plurality of registers depending upon the register address specified in a packet
US6230219B1 (en) * 1997-11-10 2001-05-08 International Business Machines Corporation High performance multichannel DMA controller for a PCI host bridge with a built-in cache
US6484251B1 (en) * 1999-10-14 2002-11-19 International Business Machines Corporation Updating condition status register based on instruction specific modification information in set/clear pair upon instruction commit in out-of-order processor
US6795901B1 (en) 1999-12-17 2004-09-21 Alliant Techsystems Inc. Shared memory interface with conventional access and synchronization support
US6782440B2 (en) * 2000-07-26 2004-08-24 T.N.S. Holdings, Inc. Resource locking and thread synchronization in a multiprocessor environment
DE10103546A1 (de) * 2001-01-26 2002-08-01 Thomson Brandt Gmbh Verfahren zum Steuern einer Peripherieeinrichtung mittels einer Zentraleinrichtung sowie Einrichtungen zur Nutzung des Verfahrens
JP3963372B2 (ja) 2001-02-24 2007-08-22 インターナショナル・ビジネス・マシーンズ・コーポレーション マルチプロセッサ・システム
US20030126414A1 (en) * 2002-01-02 2003-07-03 Grochowski Edward T. Processing partial register writes in an out-of order processor
US7174405B1 (en) * 2003-06-06 2007-02-06 Cisco Technology, Inc. Method and system for replacing a read-modify-write operation with an atomic set-bits or clear-bits operation
US7529895B2 (en) 2003-08-22 2009-05-05 International Business Machines Corporation Method for prefetching non-contiguous data structures
JP4852427B2 (ja) * 2004-11-26 2012-01-11 インターナショナル・ビジネス・マシーンズ・コーポレーション マルチプロセッサシステム及びそれにおける排他制御方法
WO2010029682A1 (ja) * 2008-09-10 2010-03-18 株式会社ルネサステクノロジ 情報処理装置
US8397005B2 (en) 2010-03-16 2013-03-12 St-Ericsson Sa Masked register write method and apparatus
JP5527028B2 (ja) 2010-06-07 2014-06-18 株式会社ジェイテクト ボール螺子装置及び電動パワーステアリング装置
US9063831B1 (en) * 2012-12-21 2015-06-23 Cadence Design Systems, Inc. Method and apparatus for optimizing access to control registers in an emulation chip
US9916217B2 (en) * 2016-01-05 2018-03-13 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Accessing hidden diagnostic registers
US11928329B2 (en) * 2021-12-02 2024-03-12 Nxp B.V. System and method for managing access to registers

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4085106A (en) * 1976-01-07 1978-04-18 E. I. Du Pont De Nemours And Company Bicyclic and tricyclic trisaminomethanes
JPS6037477B2 (ja) * 1976-06-02 1985-08-26 株式会社日立製作所 デイスプレイ装置
US4086658A (en) * 1976-10-04 1978-04-25 International Business Machines Corporation Input/output and diagnostic arrangements for programmable machine controllers having multiprogramming capabilities
US4194241A (en) * 1977-07-08 1980-03-18 Xerox Corporation Bit manipulation circuitry in a microprocessor
JPS60702B2 (ja) * 1978-08-30 1985-01-09 株式会社東芝 通信制御装置
US4520439A (en) * 1981-01-05 1985-05-28 Sperry Corporation Variable field partial write data merge
JPS59103153A (ja) * 1982-12-06 1984-06-14 Fujitsu Ltd デ−タ処理装置
US4663728A (en) * 1984-06-20 1987-05-05 Weatherford James R Read/modify/write circuit for computer memory operation
US5201039A (en) * 1987-09-30 1993-04-06 Mitsubishi Denki Kabushiki Kaisha Multiple address-space data processor with addressable register and context switching
US4862155A (en) * 1987-10-26 1989-08-29 Tektronix, Inc. Graphic display system with secondary pixel image storage
JPH02284229A (ja) * 1989-04-25 1990-11-21 Nec Corp マイクロプロセッサの状態記憶装置

Also Published As

Publication number Publication date
EP0535820B1 (en) 2000-06-14
DE69231174T2 (de) 2001-03-01
JPH05324572A (ja) 1993-12-07
EP0535820A3 (en) 1994-07-27
EP0535820A2 (en) 1993-04-07
US5287503A (en) 1994-02-15
KR930006541A (ko) 1993-04-21
DE69231174D1 (de) 2000-07-20
JP3381733B2 (ja) 2003-03-04

Similar Documents

Publication Publication Date Title
KR970011207B1 (ko) 원자 억세스를 제공하는 레지스터가 소프트웨어 인터록 없이 공유된 레지스터의 개별 비트를 세트하고 클리어하기 위한 방법 및 장치
JP2745949B2 (ja) オペランド情報の静的および動的マスキングを同時かつ独立して行うデータ・プロセッサ
US5239642A (en) Data processor with shared control and drive circuitry for both breakpoint and content addressable storage devices
JP2776132B2 (ja) オペランド内の情報のスタティックおよびダイナミック・マスキングを兼ね備えるデータ処理システム
US4777588A (en) General-purpose register file optimized for intraprocedural register allocation, procedure calls, and multitasking performance
JPH0345407B2 (ko)
JPH02190930A (ja) ソフトウエア命令実行装置
JPH02228745A (ja) 入出力キヤツシユ
JPH07191903A (ja) データ処理システムおよび動作方法
US5163143A (en) Enhanced locked bus cycle control in a cache memory computer system
US5564030A (en) Circuit and method for detecting segment limit errors for code fetches
US5572700A (en) Cache access controller and method for permitting caching of information in selected cache lines
US4628450A (en) Data processing system having a local memory which does not use a directory device with distributed resident programs and a method therefor
EP0864983A2 (en) Computer system including memory adress management circuit for protecting memory from illegal writing
US6907484B2 (en) Method and apparatus for atomically changing selected bits within a register
EP0425843A2 (en) Enhanced locked bus cycle control in a cache memory computer system
JPS5834856B2 (ja) キオクセイギヨソウチ
JP3256387B2 (ja) 排他制御方法、プロセッサおよび計算機システム
JP2629400B2 (ja) 自己同期型パイプライン処理装置
JPS6238743B2 (ko)
JPH02136946A (ja) キャッシュメモリ制御回路
JPS59121455A (ja) プレフイクシング方式
JPS60214063A (ja) 情報処理装置
JPH04133160A (ja) 排他制御命令実行方法
JPS59128638A (ja) メモリ保護方式

Legal Events

Date Code Title Description
A201 Request for examination
G160 Decision to publish patent application
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20021220

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee