KR19990013772A - 레지스터 화일 - Google Patents

레지스터 화일 Download PDF

Info

Publication number
KR19990013772A
KR19990013772A KR1019980027859A KR19980027859A KR19990013772A KR 19990013772 A KR19990013772 A KR 19990013772A KR 1019980027859 A KR1019980027859 A KR 1019980027859A KR 19980027859 A KR19980027859 A KR 19980027859A KR 19990013772 A KR19990013772 A KR 19990013772A
Authority
KR
South Korea
Prior art keywords
processor element
register file
register
processor
port
Prior art date
Application number
KR1019980027859A
Other languages
English (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 KR19990013772A publication Critical patent/KR19990013772A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • 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/30098Register arrangements
    • G06F9/30141Implementation provisions of register files, e.g. ports
    • 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, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units

Abstract

다수의 프로세서 요소들로 구성된 다중 프로세서 구성 내에 사용된 레지스터 화일이 공지되고 상기 레지스터 화일은 다수의 워드들을 가지고 상기 다수의 프로세서 요소들의 각각에 대해 제공된다. 여기에서: 다수의 워드들은 다른 프로세서 요소와 공통으로 사용하기 위하여 다수의 프로세서 요소들의 몇몇에 의해 동시에 액세스될 수 있는 워드 부분으로 분할되고, 워드 부분은 워드 부분이 가진 프로세서 요소에 의해 액세스될 수 있다.

Description

레지스터 화일
본 발명은 다중 프로세서 등에 사용된 레지스터 화일에 관한 것이다.
집적도의 향상에 따라, 프로세서 내에 장착될 수 있는 연산기들과 같은 하드웨어량이 증가된다. 슈퍼스칼라 프로세서 및 VLIW(very long instruction word)와 여러가지 연산이 병렬로 실행될 수 있는 프로세서에서는, 여러 개의 연산기들을 병렬로 구동시켜 처리 성능을 향상시킨다. 그러나, 이와 같은 종류의 프로세서에서 병렬 처리 성능을 유지하기 위해서는, 동시 구동된 연산기의 수에 따른 데이타의 동시 공급 능력과 연산 결과의 동시 기록 능력을 갖춘 멀티 포트 구성의 레지스터 화일이 필요하다.
예를 들어, MIPS 社製의 슈퍼스칼라 프로세서 R10000은 4개의 명령(2개의 정수-연산 명령, 1개의 로드/저장 명령 및 1개의 브랜치 명령)들의 병렬 실행을 가능하게 하기 위하여 10개의 포트(7개의 판독 포트 및 3개의 기록 포트)를 가지는 정수 연산용 레지스터 화일을 채용한다.
더욱 향상된 집적도로 인해 여러 개의 슈퍼스칼라 프로세서 요소들이 장착될 수 있는 경우에, 병렬 처리 성능을 유지하기 위해서는 프로세서 요소들 간의 공유 데이타에 대한 고속 액세스가 가능하도록 하는 메커니즘이 필요하다. 이와 관련해서, 공유 데이타를 캐시 또는 주기억장치에 저장하지 않고 레지스터 화일에 저장하여, 여러 개의 프로세서 요소가 공유 데이타를 액세스할 수 있게 하는 방식이 효과적이다. 그런 시스템은 슈퍼 스칼라 프로세서의 경우와 같이, 레지스터 화일의 포트수를 증가시킴으로써 실현될 수 있다.
도 1은 2개의 연산 명령을 병렬 실행할 수 있는 4개의 슈퍼스칼라 프로세서 요소들을 가진 프로세서의 예를 도시한다. 도 1을 참조하면, 모든 프로세서 요소(601 내지 604)가 레지스터 화일(605) 내에 저장된 데이타를 공동으로 사용하는 경우, 레지스터 화일(605)은, 각각의 프로세서의 2개의 연산기가 레지스터 화일(605)의 2개의 판독 포트 및 1개의 기록 포트를 사용하기 때문에 최대 20개의 포트(판독용 16개 및 기록용 8개)만 가지면 된다.
이에 대해서, 병렬로 실행될 명령마다 액세스될 수 있는 레지스터를 제한함으로써, 병렬 실행 명령수는 그대로 유지시키면서 레지스터 화일의 포트수를 감소시킬 수 있다.
도 2는 VLIW 머신의 예를 도시한다. 도 2를 참조하면, 병렬로 실행 가능한 4개의 명령들의 명령 그룹(701)은 2개의 명령 그룹(702, 703)(각 그룹은 2개의 명령으로 되어 있음)으로 분할되고, 레지스터 화일(704, 705)들은 이들 명령 그룹들을 처리하기 위하여 프로세서 요소들(712, 713)에 따로따로 할당된다. 명령 그룹(702)은 연산기(706, 707)들을 사용하여 연산을 실행하고 레지스터 화일(704)을 액세스한다. 유사하게, 명령 그룹(703)은 연산기(709, 710)들을 사용함으로써 연산을 실행하고 레지스터 화일(705)을 액세스한다.
프로세서 요소(713)가 레지스터 화일(704)내에 저장된 데이타를 사용할 때, 상기 데이타는 선택기(711)를 통해 레지스터 화일(704)에서 레지스터 화일(705)로 전송된다. 선택기(711)는 보통의 연산 명령을 위해 연산기(710)로부터 출력 결과를 선택하도록 제어되고, 레지스터 간에 전송 명령이 실행될 때, 레지스터 화일(704)의 출력을 선택하도록 제어된다. 같은 방법으로, 선택기(708)는 레지스터 화일(705)에서 레지스터 화일(704)로 레지스터 간에 전송 명령에 의해 제어된다.
이와 같은 구성에서는, 6개의 포트(4개의 판독 포트들 및 2개의 기록 포트들)들을 가진 레지스터는 각각의 명령 그룹(각각의 프로세서 요소)에 대해 제공되기만 하면 된다. 즉, 레지스터 화일은 4개의 명령들 모두가 1개의 레지스터 화일을 공동으로 사용하는 경우에 필요한 12개의 포트들(8개의 판독 포트들 및 4개의 기록 포트들)의 절반만 있으면 된다.
예를 들어, 일본 특개평 제5-233281(1993) 공보는 그런 기술을 채용함으로써, 프로세서 요소들 사이의 구분을 향상시키고 칩 설계를 용이하게 하는 고-성능 계산기를 제안한다.
도 1에 도시된 구성에서, 프로세서 요소는 다른 프로세서 요소로 공유 데이타를 용이하게 사용할 수 있고 다른 프로세서 요소에 의해 생성된 데이타를 신속하게 액세스할 수 있다. 그러나, 이러한 구성에서, 레지스터 화일의 포트수, 즉 그것의 지연 및 면적이 프로세서 요소 상에 장착된 연산기들의 수가 많아짐에 따라 증가되기 때문에, 뚜렷한 성능 향상을 얻을 수가 없다는 문제점이 있다. 또한, 높은 명령 독립 및 데이타-위치 측정을 가지고 프로세서 요소들 간의 공유 데이타를 거의 사용하지 않는, 예컨대 화상 처리용 프로그램과 같은 프로그램에 있어서는, 포트수가 필요 이상이 되므로 무익하다.
다른 한편으로는, 도 2에 도시된 구성에서, 레지스터 화일의 포트수는 감소될 수 있지만, 사용될 데이타가 다른 프로세서 요소에 할당된 레지스터 화일 내에 존재할 때, 레지스터 화일들 사이에서 데이타를 전송하기 위한 조작이 필요하다. 이러한 조작은 레지스터 간의 전송 명령에 의해 처리됨에 따라 오버헤드를 일으켜 고속 액세스에 손상을 일으킨다.
따라서, 본 발명의 목적은 병렬 처리로 인한 포트 수의 증가가 방지될 수 있고 프로세서 요소들 사이에서 공유 데이타를 액세스하는 오버헤드가 억제될 수 있는 레지스터 화일을 제공하는 것이다.
본 발명에 따라, 다수의 프로세서 요소들로 구성된 다중 프로세서 구성 내에 사용된 레지스터 화일이 제공되고, 상기 레지스터 화일은 다수의 워드들을 가지고 다수의 프로세서 요소들 각각에 제공된다. 여기에서: 다수의 워드들은 다른 프로세서 요소들과 공통으로 사용하기 위한 다수의 프로세서 요소들의 몇몇에 의해 동시에 액세스될 수 있는 워드부로 분할되고 상기 워드부는 워드부가 가진 프로세서 요소에 의해 액세스될 수 있다.
본 발명에서 다음의 효과들이 얻어질 수 있다.
첫째, 몇개의 프로세서 요소들이 공동으로 레지스터 화일을 가질 때, 레지스터 화일은 모든 프로세서 요소들로부터 동시에 액세스하도록 요구된 포트들이 제공될 필요가 없다. 따라서, 영역 내의 증가 및 많은 포트들에서 증가를 가진 지연이 방지될 수 있다.
이유는 다음과 같다.: 예를 들어, 4개의 프로세서 요소들 - 각각 2개의 입력과 1개의 출력을 가진 2개의 연산기들을 포함하는 - 은 공동으로 프로세서 요소들의 동작들을 위하여 사용된 레지스터 화일을 가진다. 기록 및 판독을 위하여 요구된 포트들의 수는 24이다. 이러한 것에 대비하여, 단지 2개의 인접한 프로세서 요소들이 공동으로 상호 레지스터 화일들의 부분을 가진 본 발명의 레지스터 화일은 공유 부분용 12 포트 및 비 공유 부분용 6개의 포트들을 가진다. 예를 들어, 도 3에서, R8 내지 R23에 대한 6개의 포트들(4개의 판독 포트들 및 2개의 기록 포트들) 및 R0 내지 R7 및 R24 내지 R31에 대한 12개의 포트들(8개의 기록 포트들 및 4개의 판독 포트들)이 필요하다. 따라서, 포트수는 중요하게 감소될 수 있고 따라서 영역 및 지연은 마찬가지로 감소될 수 있다. 이러한 효과는 연산기들 및 프로세서 요소들의 수에 관계없이 얻어질 수 있다.
둘째, 몇개의 프로세서 요소들이 공유 데이타를 액세스할 때, 프로세서 요소들에 할당된 레지스터 화일들 사이에서 소프트웨어에 의한 특별한 데이타 전송 동작을 실행할 필요는 없다. 즉, 공유 데이타를 액세스하는 오버헤드는 제거될 수 있다.
이러한 것은 프로세서 요소에 의해 소유된 레지스터 화일의 부분은 다른 프로세서 요소들에 의해 소유된 레지스터 화일의 부분과 함께 공동으로 사용되고 공유 부분으로서 메모리 셀에는 2개의 프로세서 요소들에 의해 동시에 액세스될 수 있는 포트들이 제공되기 때문이다.
셋째, 프로세서 요소로부터 레지스터 화일의 국소 레지스터 부분을 액세스 시, 레지스터의 감소로 인한 성능의 저하가 방지될 수 있다.
이러한 것은 공동으로 레지스터를 사용함으로써 야기된 오류 종속 관계들(역-종속 또는 출력-종속)은 지역 논리 레지스터를 광역 물리 레지스터로 개명함으로써 줄일 수 있다. 따라서, 주저장에 소용없는 액세스로 인한 오버헤드는 줄일 수 있다.
도 1은 종래의 레지스터 화일의 구성을 도시하는 블럭도.
도 2는 다른 종래의 레지스터 화일의 구성을 도시하는 블럭도.
도 3은 본 발명에 따른 제1 양호한 실시예에서 레지스터 화일의 구성을 도시하는 블럭도.
도 4는 본 발명에 따른 제2 양호한 실시예에서 레지스터 화일의 구성을 도시하는 블럭도.
도 5는 제1 또는 제2 실시예에서 레지스터 화일 내의 메모리 셀들의 구성의 예를 도시하는 블럭도.
도 6은 제1 또는 제2 실시예에서 레지스터 화일의 메모리 셀들의 구성의 다른 예를 도시하는 블럭도.
도 7은 제1 또는 제2 실시예에서 레지스터 화일의 레지스터 변환부의 예를 도시하는 도면.
도면의 주요 부분에 대한 부호의 설명
101, 106, 116 : 프로세서 요소
102, 112, 117 : 레지스터 화일
104, 109, 119 : 국소 레지스터
제1 양호한 실시예의 레지스터 화일은 도 3에 설명될 것이다. 도 3을 참조하면, 프로세서 요소(101)는 2개의 입력들 및 1개의 출력을 가진 2개의 연산기들을 포함하고, 레지스터 화일(102)에는 4개의 판독 포트 및 2개의 기록 포트가 제공된다.
프로세서 요소(101) 및 레지스터 화일(102)은 2개의 연산기들이 병렬로 동작할 수 있도록 접속된다. 즉, 프로세서 요소(101)는 레지스터 화일(102)로부터 연산 명령을 통해 지정될 최대 4개의 레지스터 문단들을 동시에 판독할 수 있고 그런 다음, 그것을 2개의 연산기들에 제공하고, 동시에 연산 명령을 통해 지정될 레지스터들 내에 최대 2개의 연산 결과들을 기록할 수 있다.
프로세서 요소(101) 및 레지스터 화일(102)의 상기 구성 및 동작은 프로세서요소(106)와 레지스터 화일(107), 프로세서 요소(111)와 레지스터 화일(112) 및 프로세서 요소(116)와 레지스터 화일(117)의 구성 및 동작과 유사하다.
동시에, 레지스터 화일(102)은 공유 레지스터(103)(R0 내지 R7), 공유 레지스터(105)(R24 내지 R31) 및 국소 레지스터(104)(R8 내지 R23)의 3개의 영역들로 분할된 32개의 레지스터(R0 내지 R31)들을 포함한다. 국소 레지스터(104)는 단지 프로세서 요소(101)에 의해 액세스될 수 있고, 다른 프로세서 요소들에 의해서는 액세스될 수 없다.
다른 한편으로, 공유 레지스터(105)(R24 내지 R31)는 프로세서 요소(106)에 의해 소유된 레지스터 화일(107) 내에 포함된 공유 레지스터(108)(R0 내지 R7)와 동일한 문단들을 나타내고, 프로세서 요소(101) 및 프로세서 요소(106) 모두에 의해 액세스될 수 있다.
유사하게, 프로세서 요소(106)에 의해 소유된 레지스터 화일(107) 내에 포함된 국소 레지스터(109)는 단지 프로세서 요소(106)에 의해 액세스될 수 있다. 공유 레지스터(110)는 프로세서 요소(111)에 의해 소유된 레지스터 화일(112) 내에 포함된 공유 레지스터(113)와 동일한 문단들을 나타낸다.
유사하게, 프로세서 요소(111)에 의해 소유된 레지스터 화일(112) 내에 포함된 국소 레지스터(114)는 단지 프로세서 요소(111)에 의해 액세스될 수 있다. 공유 레지스터(115)는 프로세서 요소(116)에 의해 소유된 레지스터 화일(117)내에 포함된 공유 레지스터(103)와 동일한 문단들을 나타낸다.
유사하게, 프로세서 요소(116)에 의해 소유된 레지스터 화일(117) 내에 포함된 국소 레지스터(119)는 단지 프로세서 요소(116)에 의해 액세스될 수 있다. 공유 레지스터(120)는 프로세서 요소(101)에 의해 소유된 레지스터 화일(102)내에 포함된 공유 레지스터(103)와 동일한 문단들을 나타낸다.
제2 양호한 실시예의 레지스터 화일은 도 4에서 설명될 것이다. 도 4를 참조하면, 프로세서 요소(201)는 2개의 입력들 및 1개의 출력을 가진 2개의 연산기들을 포함하고, 레지스터 화일(202)에는 4개의 판독 포트 및 2개의 기록 포트가 제공된다.
프로세서 요소(201) 및 레지스터 화일(202)은 2개의 연산기들이 병렬로 동작할 수 있도록 접속된다. 즉, 프로세서 요소(201)는 레지스터 화일(202)로부터 연산 명령을 통해 지정될 최대 4개의 레지스터 문단들을 동시에 판독할 수 있고, 그런 다음 그것을 2개의 연산기들에 제공하고, 동시에 연산 명령을 통해 지정될 레지스터들 내에 최대 2개의 연산 결과들을 기록할 수 있다.
프로세서 요소(201) 및 레지스터 화일(202)의 상기 구성 및 동작은 프로세서요소(206)와 레지스터 화일(207), 프로세서 요소(211)와 레지스터 화일(212) 및 프로세서 요소(216)와 레지스터 화일(217)의 구성 및 동작과 유사하다.
동시에, 레지스터 화일(202)은 공유 레지스터(221)(R0 내지 R7), 공유 레지스터(203)(R8 내지 R15), 공유 레지스터(205)(R16 내지 R31) 및 국소 레지스터(204)(R8 내지 R23)의 4개의 영역들로 분할된 32개의 레지스터(R0 내지 R31)들을 포함한다. 국소 레지스터(204)는 단지 프로세서 요소(201)에 의해 액세스될 수 있고, 다른 프로세서 요소들에 의해서는 액세스될 수 없다.
다른 한편으로, 공유 레지스터(205)(R24 내지 R31)는 프로세서 요소(206)에 의해 소유된 레지스터 화일(207) 내에 포함된 공유 레지스터(208)(R0 내지 R15)와 동일한 문단들을 나타내고, 프로세서 요소(201) 및 프로세서 요소(206) 모두에 의해 액세스될 수 있다.
유사하게, 프로세서 요소(206)에 의해 소유된 레지스터 화일(207) 내에 포함된 국소 레지스터(209)는 단지 프로세서 요소(206)에 의해 액세스될 수 있다. 공유 레지스터(210)는 프로세서 요소(211)에 의해 소유된 레지스터 화일(212) 내에 포함된 공유 레지스터(213)와 동일한 문단들을 나타낸다.
유사하게, 프로세서 요소(211)에 의해 소유된 레지스터 화일(212) 내에 포함된 국소 레지스터(214)는 단지 프로세서 요소(211)에 의해 액세스될 수 있다. 공유 레지스터(215)는 프로세서 요소(216)에 의해 소유된 레지스터 화일(217) 내에 포함된 공유 레지스터(218)와 동일한 문단들을 나타낸다.
유사하게, 프로세서 요소(216)에 의해 소유된 레지스터 화일(217) 내에 포함된 국소 레지스터(219)는 단지 프로세서 요소(216)에 의해 액세스될 수 있다. 공유 레지스터(220)는 프로세서 요소(201)에 의해 소유된 레지스터 화일(202) 내에 포함된 공유 레지스터(203)와 동일한 문단들을 나타낸다.
또한, 프로세서 요소(201)에 의해 소유된 레지스터 화일(202) 내에 포함된 공유 레지스터(221)는 프로세서 요소(206)에 의해 소유된 레지스터 화일(207) 내에 포함된 공유 레지스터(222), 프로세서 요소(211)에 의해 소유된 레지스터 화일(212) 내에 포함된 공유 레지스터(223) 및 프로세서 요소(216)에 의해 소유된 레지스터 화일(217) 내에 포함된 공유 레지스터(224)와 동일한 문단들을 나타내고, 그것은 모든 프로세서 요소들에 의해 액세스될 수 있다.
제1 및 제2 실시예의 레지스터 화일들은 도 3 및 도 4에서 설명된다. 그러나, 본 발명에서 프로세서 요소들의 수, 프로세서 요소 내의 연산기들의 수, 레지스터 화일의 전체 워드수 및 공유 레지스터 또는 국소 레지스터의 워드수는 임의의 수일 수 있다. 즉, 본 발명은 도 3 및 도 4에 도시된 구성들로 제한되지는 않는다.
또한, 제1 및 제2 실시예들에서 2개의 인접한 프로세서 요소들은 공동으로 레지스터 화일의 부분을 가진다. 그러나, 본 발명에서 3개 이상의 인접한 프로세서 요소들은 공동으로 레지스터 화일의 부분을 가질 수 있다.
도 5는 본 발명에서 레지스터 화일을 구성하는 메모리 셀 내의 다른 프로세서 요소에서의 공동 부분의 예를 도시한다.
메모리 셀(301)들에는 2세트의 기록 포트(302, 303)들 및 2세트의 판독 포트(304, 305)가 제공된다. 레지스터(306)는 워드 길이로 규정될 비트수와 같은 메모리 셀(301)과 유사한 메모리셀들을 병렬로 배치하여 구성된다. 레지스터 화일은 워드수에 의해 규정될 메모리 셀들에 동일한 포트를 추가로 접속하여 구성된다.
여기, 한 쌍의 기록 포트(302) 및 판독 포트(304)들은 하나의 프로세서 요소로부터 액세스하여 할당되고, 한 쌍의 기록 포트(303) 및 판독 포트(305)들은 다른 프로세서 요소로부터 액세스하여 할당된다.
이러한 구성에 의해, 2개의 프로세서 요소들 사이에서 데이타의 공동 사용은 무조건 인식되어질 수 있다. 즉, 공유 데이타를 액세스하기 위하여 데이타 전송 명령과 같은 특정한 수단을 사용하기 위한 프로세서 요소가 필요하지는 않는다.
도 6은 본 발명에서 레지스터 화일을 구성하는 메모리 셀 내의 다른 프로세서 요소에서의 공유 부분의 또 다른 예를 도시한다.
메모리 셀(401)들에는 한 세트의 기록 포트(402) 및 한 세트의 판독 포트(403)가 제공된다. 레지스터(404, 405 및 406)들은 도 5에 도시된 것과 같은 방법으로 메모리 셀(401)들을 배치하여 구성된다.
여기, 기록 포트(402)는 1개의 프로세서 요소를 위해 기록 전용 포트로서 할당되고, 판독 포트(403)들은 또 다른 프로세서 요소를 위해 판독 전용 포트로서 할당된다.
이러한 구성에 의해, 2개의 프로세서 요소들 사이에서 데이타의 공동 사용은 도 5의 예와 유사하게 무조건으로 인식되어질 수 있다.
도 5 및 도 6의 상기 구성들은 프로세서 요소가 2개의 입력들 및 1개의 출력을 가진 1개의 연산기를 포함하는 경우에 레지스터 화일 내의 공유 부분으로서 메모리 셀에 대해 설명된다. 그러나, 메모리 셀의 포트수는 프로세서 요소 내에 포함된 연산기들의 수에 따라 변경될 수 있다. 예를 들어, 2개의 프로세서 요소들 각각이 병렬로 동작될 수 있는 2개의 입력들 및 1개의 출력을 가진 2개의 연산기들을 포함할 때, 도 5의 구성과 같은 메모리 셀들에 4쌍의 기록 포트 및 2개의 판독 포트 4쌍이 제공될 수 있고, 도 6의 구성과 같은 메모리 셀들에 2쌍의 기록 포트 및 2개의 판독 포트 2쌍이 제공될 수 있다. 또한, 본 발명은 프로세서 요소들이 상이한 구성들을 가진 연산기들을 가질 때에도 유사하게 적용될 수 있다.
도 7은 본 발명의 레지스터 화일 내의 레지스터 번호 변환부의 예를 도시한다. 도 7을 참조하면, 국소 논리 레지스터(501)는 단지 프로세서 요소에 의해 액세스될 수 있고, 국소 논리 레지스터는 프로세서 요소에 의해 실행된 연산 명령 내의 레지스터 번호를 사용함으로써 지정되는 논리 레지스터이다. 또한, 물리 레지스터(503)는 하드웨어 상에 장착되어 있고, 물리 레지스터는 국소 논리 레지스터(R8 내지 R23의 16개의 레지스터들)들의 수 이상의 레지스터들로 구성된 레지스터 화일이다. 변환 테이블(502)은 프로세서 요소를 지정하는 프로세서 요소 번호 및 연산 명령에 의해 지정된 국소 논리 레지스터 번호를 사용함으로써 물리 레지스터(503)에 임의로 대응하는 국소 논리 레지스터(501)를 만드는 표이다. 유사하게, 국소 논리 레지스터(504), 다른 프로세서 요소에 속하는 변환 테이블(505) 및 물리 레지스터(506) 및 그것의 변환 매카니즘은 같은 방법으로 구성되고 동작된다.
이상 설명한 바와 같이, 본 발명의 효과는 다음과 같다.
첫째, 몇개의 프로세서 요소들이 공동으로 레지스터 화일을 가질 때, 레지스터 화일은 모든 프로세서 요소들로부터 동시에 액세스하도록 요구된 포트들로 제공될 필요가 없다. 따라서, 영역 내의 증가 및 많은 포트들에서 증가를 가진 지연이 방지될 수 있다.
둘째, 몇개의 프로세서 요소들이 공유 데이타를 액세스할 때, 프로세서 요소들에 할당된 레지스터 화일들 사이에서 소프트웨어에 의한 특별한 데이타 전송 동작을 실행할 필요는 없다. 즉, 공유 데이타를 액세스하는 오버헤드는 제거될 수 있다.
셋째, 프로세서 요소로부터 레지스터 화일의 국소 레지스터 부분을 액세스 시, 레지스터의 손실로 인한 성능의 저하가 방지될 수 있다.

Claims (6)

  1. 다수의 프로세서 요소들로 구성된 멀티 프로세서 구성에서 사용되고, 다수의 워드들을 가지며 상기 다수의 프로세서 요소들 각각에 구비된 레지스터 화일에 있어서,
    상기 다수의 워드들은 다른 프로세서 요소들과 공동으로 사용하기 위해 상기 다수의 프로세서 요소의 일부에 의해 동시에 액세스될 수 있는 워드 부분과, 자신의 프로세서 요소에 의해서만 액세스될 수 있는 워드 부분으로 분할되는 것을 특징으로 하는 레지스터 화일.
  2. 제1항에 있어서,
    제1 프로세서 요소가 소유하는 레지스터 화일의 n 워드들(n≥3) 중에서,
    i 워드(1≤i≤n-2)에는 제2 프로세서 요소와 공동으로 사용되고 상기 제1 프로세서 요소 및 제2 프로세서 요소에 의해 동시에 액세스 될 수 있는 포트가 제공되고,
    j 워드(1≤j≤n-i-1)에는 제3 프로세서 요소와 공동으로 사용되고 상기 제1 프로세서 요소 및 제3 프로세서 요소에 의해 동시에 액세스될 수 있는 포트가 제공되고,
    (n-i-j) 워드에는 단지 상기 제1 프로세서 요소에 의해 액세스 될 수 있는 포트가 제공되는
    것을 특징으로 하는 레지스터 화일.
  3. 제1항에 있어서,
    제1 프로세서 요소가 소유하는 레지스터 화일의 n 워드들(n≥4) 중에서,
    i 워드(1≤i≤n-3)에는 제2 프로세서 요소와 공동으로 사용되고 상기 제1 프로세서 요소 및 제2 프로세서 요소에 의해 동시에 액세스 될 수 있는 포트가 제공되고,
    j 워드(1≤j≤n-i-2)에는 제3 프로세서 요소와 공동으로 사용되고 상기 제1 프로세서 요소 및 제3 프로세서 요소에 의해 동시에 액세스될 수 있는 포트가 제공되고,
    k 워드(1≤k≤n-i-j-1)에는 모든 프로세서 요소들에 의해 액세스될 수 있는 포트가 제공되고,
    (n-i-j-k) 워드에는 상기 제1 프로세서 요소에 의해서만 액세스될 수 있는 포트가 제공되는
    것을 특징으로 하는 레지스터 화일.
  4. 제1항에 있어서,
    제1 프로세서 요소가 소유하는 레지스터 화일에 속하고 제2 프로세서 요소와 공동으로 사용되고 액세스 가능한 워드 부분을 위한 메모리 셀이
    상기 제1 프로세서 요소의 연산 결과를 기록하기 위한 기록 포트;
    상기 제2 프로세서 요소의 연산 결과를 기록하기 위한 기록 포트;
    상기 제1 프로세서 요소에 데이타를 공급하기 위한 판독 포트; 및
    상기 제2 프로세서 요소에 데이타를 공급하기 위한 판독 포트
    를 포함하는 것을 특징으로 하는 레지스터 화일.
  5. 제1항에 있어서,
    제1 프로세서 요소가 소유하는 레지스터 화일에 속하고 제2 프로세서 요소와 공동으로 사용되고 액세스 가능한 워드 부분을 위한 메모리 셀이
    상기 제 1 프로세서 요소의 연산 결과를 기록하기 위한 기록 포트; 및
    상기 제2 프로세서 요소에 데이타를 제공하기 위한 판독 포트
    를 포함하는 것을 특징으로 하는 레지스터 화일.
  6. 제1항에 있어서,
    상기 레지스터 화일을 소유하는 자신의 레지스터 화일의 프로세서 요소에 의해서만 액세스될 수 있는 워드 부분에 n비트(n≥2)의 레지스터 번호를 m비트의 레지스터 번호로 변환하는 레지스터 번호 변환 수단을 구비하여 2m개의 레지스터 화일들에 액세스 가능하게 하는 것을 특징으로 하는 레지스터 화일.
KR1019980027859A 1997-07-11 1998-07-10 레지스터 화일 KR19990013772A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP9202430A JPH1131137A (ja) 1997-07-11 1997-07-11 レジスタファイル
JP97-202430 1997-07-11

Publications (1)

Publication Number Publication Date
KR19990013772A true KR19990013772A (ko) 1999-02-25

Family

ID=16457394

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980027859A KR19990013772A (ko) 1997-07-11 1998-07-10 레지스터 화일

Country Status (3)

Country Link
US (1) US6219777B1 (ko)
JP (1) JPH1131137A (ko)
KR (1) KR19990013772A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9164769B2 (en) 2010-03-23 2015-10-20 Samsung Electronics Co., Ltd. Analyzing data flow graph to detect data for copying from central register file to local register file used in different execution modes in reconfigurable processing array
KR20210038834A (ko) * 2019-09-30 2021-04-08 타이완 세미콘덕터 매뉴팩쳐링 컴퍼니 리미티드 레지스터 데이터 백업 및 복구

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7114056B2 (en) * 1998-12-03 2006-09-26 Sun Microsystems, Inc. Local and global register partitioning in a VLIW processor
US6629232B1 (en) * 1999-11-05 2003-09-30 Intel Corporation Copied register files for data processors having many execution units
JP2001167040A (ja) * 1999-12-14 2001-06-22 Hitachi Ltd 記憶サブシステム及び記憶制御装置
GB2362731B (en) * 2000-05-23 2004-10-06 Advanced Risc Mach Ltd Parallel processing of multiple data values within a data word
WO2002048871A1 (en) * 2000-12-11 2002-06-20 Koninklijke Philips Electronics N.V. Signal processing device and method for supplying a signal processing result to a plurality of registers
GB2419005B (en) * 2002-04-22 2006-06-07 Micron Technology Inc Providing a register file memory with local addressing in a SIMD parallel processor
CN101097513A (zh) * 2002-11-20 2008-01-02 皇家飞利浦电子股份有限公司 带有复制寄存器文件的vliw处理器
US7376813B2 (en) * 2004-03-04 2008-05-20 Texas Instruments Incorporated Register move instruction for section select of source operand
US7246218B2 (en) * 2004-11-01 2007-07-17 Via Technologies, Inc. Systems for increasing register addressing space in instruction-width limited processors
US20060104351A1 (en) * 2004-11-15 2006-05-18 Shu-Wen Teng Video/image processing devices and methods
US20110249744A1 (en) * 2010-04-12 2011-10-13 Neil Bailey Method and System for Video Processing Utilizing N Scalar Cores and a Single Vector Core
US20140258680A1 (en) * 2013-03-05 2014-09-11 Qualcomm Incorporated Parallel dispatch of coprocessor instructions in a multi-thread processor

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62164155A (ja) 1986-01-16 1987-07-20 Nec Corp マルチプロセツサアドレス方式
JPS6347835A (ja) 1986-08-18 1988-02-29 Agency Of Ind Science & Technol パイプライン計算機
JPS63186363A (ja) 1987-01-28 1988-08-01 Nec Corp マルチcpuシステムのメモリ領域設定回路
JPH02116949A (ja) 1988-10-27 1990-05-01 Nec Corp 情報処理システム
DE69327504T2 (de) * 1992-10-19 2000-08-10 Koninkl Philips Electronics Nv Datenprozessor mit Operationseinheiten, die gemeinsam Gruppen von Registerspeichern benutzen
US5574935A (en) * 1993-12-29 1996-11-12 Intel Corporation Superscalar processor with a multi-port reorder buffer
US5644780A (en) * 1995-06-02 1997-07-01 International Business Machines Corporation Multiple port high speed register file with interleaved write ports for use with very long instruction word (vlin) and n-way superscaler processors

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9164769B2 (en) 2010-03-23 2015-10-20 Samsung Electronics Co., Ltd. Analyzing data flow graph to detect data for copying from central register file to local register file used in different execution modes in reconfigurable processing array
KR20210038834A (ko) * 2019-09-30 2021-04-08 타이완 세미콘덕터 매뉴팩쳐링 컴퍼니 리미티드 레지스터 데이터 백업 및 복구
US11295792B2 (en) 2019-09-30 2022-04-05 Taiwan Semiconductor Manufacturing Company, Ltd. Back-up and restoration of register data
US11636884B2 (en) 2019-09-30 2023-04-25 Taiwan Semiconductor Manufacturing Company, Ltd. Back-up and restoration of register data

Also Published As

Publication number Publication date
JPH1131137A (ja) 1999-02-02
US6219777B1 (en) 2001-04-17

Similar Documents

Publication Publication Date Title
KR0160602B1 (ko) 데이터 처리장치
KR960016880B1 (ko) 연관 병렬 처리 시스템
US4945479A (en) Tightly coupled scientific processing system
US4722049A (en) Apparatus for out-of-order program execution
US5471628A (en) Multi-function permutation switch for rotating and manipulating an order of bits of an input data byte in either cyclic or non-cyclic mode
KR101275698B1 (ko) 데이터 처리 방법 및 장치
US5301340A (en) IC chips including ALUs and identical register files whereby a number of ALUs directly and concurrently write results to every register file per cycle
Kuehn et al. The Horizon supercomputing system: architecture and software
EP1550032B1 (en) Method and apparatus for thread-based memory access in a multithreaded processor
US6510510B1 (en) Digital signal processor having distributed register file
JP2776132B2 (ja) オペランド内の情報のスタティックおよびダイナミック・マスキングを兼ね備えるデータ処理システム
US5299321A (en) Parallel processing device to operate with parallel execute instructions
KR19990013772A (ko) 레지스터 화일
JP3593346B2 (ja) マルチポートメモリ及びそれをアクセスするデータ処理装置
JPH03219345A (ja) 多ポートキャッシュメモリ制御装置
US4766535A (en) High-performance multiple port memory
Lipovski On a varistructured array of microprocessors
JPH0282330A (ja) ムーブアウト・システム
US5752271A (en) Method and apparatus for using double precision addressable registers for single precision data
US5418975A (en) Wide instruction word architecture central processor
US20190324927A1 (en) Processor and information processing apparatus
JPH087719B2 (ja) 情報処理システム
US6430651B1 (en) Memory device for constituting a memory subsystem of a data processing apparatus
JP3771682B2 (ja) ベクトル処理装置
JPS6023384B2 (ja) アレイ・プロセツサにおける内部メモリ制御方式

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application