KR19980032137A - 벡터프로세서를 위한 요소선택 메카니즘 - Google Patents

벡터프로세서를 위한 요소선택 메카니즘 Download PDF

Info

Publication number
KR19980032137A
KR19980032137A KR1019970022661A KR19970022661A KR19980032137A KR 19980032137 A KR19980032137 A KR 19980032137A KR 1019970022661 A KR1019970022661 A KR 1019970022661A KR 19970022661 A KR19970022661 A KR 19970022661A KR 19980032137 A KR19980032137 A KR 19980032137A
Authority
KR
South Korea
Prior art keywords
vector
mask
bit
register
bus
Prior art date
Application number
KR1019970022661A
Other languages
English (en)
Other versions
KR100241049B1 (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 KR19980032137A publication Critical patent/KR19980032137A/ko
Application granted granted Critical
Publication of KR100241049B1 publication Critical patent/KR100241049B1/ko

Links

Classifications

    • 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/8076Details on data register access
    • G06F15/8084Special arrangements thereof, e.g. mask or switch
    • 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/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • 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/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • G06F9/30038Instructions to perform operations on packed data, e.g. vector, tile or matrix operations using a mask

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Complex Calculations (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

본 발명은 프로그래머가 벡터레지스터내에 저장된 특정 벡터요소의 크기와 위치를 규정하도록 하는 벡터프로세서 명령을 지원한다. 마스크생성회로는 마스크선택회로와, 인덱스회로 및 좌측쉬프터를 구비한다. 마스크선택회로는 벡터요소의 크기를 나타내는 벡터명령 부분을 디코딩하고 그 크기의 요소를 선택하는데 적절한 마스크를 선택한다. 인덱스회로는 벡터크기 정보와 마스킹될 특정 벡터요소의 위치를 나타내는 벡터명령을 디코딩한다. 인덱스회로는 이 정보를 이용하여 선택된 벡터요소에 상응하기 위해 마스크가 쉬프트되어야 하는 위치의 갯수(쉬프트 카운트)를 결정한다. 마스크와 쉬프트카운트가 인가되면, 쉬프터는 쉬프트카운트만큼 마스크를 쉬프트시키고 그 결과의 출력신호를 벡터프로세서로 제공한다. 이 출력신호는 규정된 벡터요소만을 선택하는데 사용된다.

Description

벡터프로세서를 위한 요소선택 메카니즘
본 발명은 본 명세서의 참고문헌인 특허출원된 박 헌철의 Computer Methods For Writing a Scalar Value to a Vector와 관련된 것이다.
3-D그래픽, 의학적 영상처리 및 과학적인 모델링과 같은 응용기술에는 벡터연산을 수행하는 현대적인 컴퓨터가 요구된다. 전형적인 벡터연산은 두개의 32요소 벡터를 비교하여 하나의 32요소 벡터결과를 얻는 것이다. 이러한 전형적인 연산과 그밖의 다른 벡터연산은 다수의 유사한 연산들을 병렬로 처리함으로써 여러 응용에 있어서 그 동작속도를 크게 증가시킨다.
벡터프로세서는 벡터연산을 지원하는 다수개의 벡터레지스터를 포함한다. 도 1 은 종래의 벡터레지스터(100)를 도시한 것이다. 벡터레지스터(100)는 32개의 개별적으로 어드레싱되는 바이트를 포함한다. 각각의 바이트는 8비트로 이루어지나, 다른 바이트 크기도 사용될 수 있다. 벡터레지스터(100)의 굵은 테두리는 특정 어드레스가 단일 벡터바이트 어드레스(즉, 표시된 어드레스들의 뒷쪽에 어두운 스택(stack)으로 나타낸 바와 같은 8비트)에 해당하는 것을 나타낸다. 도 1 및 도 2 의 굵은 테두리는 다수개의 비트들에 해당되는 단일 벡터바이트를 규정한다.
벡터레지스터(100)는 32바이트의 물리적 벡터길이를 가지며, 다양한 길이의 벡터요소들을 지원하도록 구성된다. 도 1 에 도시한 예에 있어서, 벡터레지스터(100)는 1.32바이트, 2.16개의 16비트 하프워드(halfword), 또는 3.8개의 32비트 워드를 저장하도록 구성된다. 요소가 많을수록 정확도가 높으나, 동작속도는 감소하며, 요소가 적으면 정확도는 떨어지지만 동작속도는 증가된다. 따라서, 다양한 길이의 벡터를 지원하는 능력은 벡터프로세서상에서 실행되는 소프트웨어가 속도와 정확도를 위한 소정의 동작을 최적화시키도록 한다.
때때로 벡터의 각각의 요소를 억세스(독출(read) 또는 기입(write))해야 할 경우가 있다. 예를 들면, 벡터레지스터에 저장된 어떤 벡터의 단일 벡터요소로 어떠한 값을 나머지 요소에 저장된 값들을 변화시키지 않고 기입할 필요가 있다. 기입동작이 전체 벡터를 오버라이트(overwrite)하기 때문에 변화되지 않고 남아 있게 될 벡터 요소들의 내용은 상기 단일벡터요소의 내용을 오버라이트하기 전에 독출되어야 한다. 그렇지 않으면, 변화되지 않고 남아 있어야 할 벡터요소들에 저장된 데이타가 상기 단일벡터요소를 기입할때 손실될 수 있다. 따라서 각각의 벡터요소로의 기입동작은 벡터레지스터 내용을 독출하고, 변화된 요소를 포함하도록 상기 벡터레지스터 내용을 수정하고, 새로운 벡터를 레지스터로 기입하는 동작을 수반한다.
현재의 벡터프로세서는 각각의 벡터요소를 매우 빠르게 억세스하므로 영상처리 및 다른 데이타-집약적인(data-intensive) 응용들은 동작속도의 증가를 요구한다. 본 발명은 단일 요소를 수정하기 위해 벡터레지스터를 독출해야 하는 과정을 없앰으로써 벡터프로세서가 개별적인 벡터요소를 기입하거나 독출할때의 동작속도를 증가시킨다. 또한, 본 발명은 변화하는 길이의 벡터요소를 억세스하도록 구성된다.
본 발명에 의한 벡터프로세서는 프로그래머가 특정 벡터레지스터에 저장된 특정한 벡터요소의 크기(비트)와 위치를 규정하는 1개 이상의 벡터명령을 지원한다. 상기 명령중의 하나는 벡터 삽입명령으로서, 프로그래머가 벡터레지스터의 내용을 독출하지 않으면서 새로운 벡터요소를 벡터레지스터내의 선택된 벡터요소 저장위치로 삽입할 수 있도록 한다.
본 발명에 의한 마스크 생성회로는 마스크선택회로, 인덱스회로 및 좌측 쉬프터를 포함한다. 마스크선택회로는 벡터요소의 크기를 나타내는 벡터명령 부분을 디코딩하고 그 크기의 요소를 선택하는데 적절한 디지털 마스크를 선택한다. 인덱스회로는 벡터크기 정보와 마스크될 특정 벡터요소의 위치를 나타내는 벡터명령 부분을 디코딩한다. 인덱스회로는 이 정보들을 마스크선택회로에 의해 선택된 마스크가 쉬프트되어 특정 벡터요소와 상응되는 위치(쉬프트카운트(shift count))의 갯수를 결정하는데 이용한다. 상기 쉬프터는 마스크와 쉬프트카운트가 인가되면 쉬프트카운트만큼 마스크를 쉬프트하고 그 결과의 출력신호는 벡터프로세서로 제공한다. 이 출력신호는 규정된 벡터요소만을 선택하는데 사용된다. 나머지 요소들은 벡터레지스터로부터 독출되거나 벡터레지스터로 기입되지 않는다.
본 발명에 의한 벡터명령은 단일벡터요소를 기입하기 전에 벡터레지스터의 내용을 독출하는 과정을 없앰으로써, 결과적으로 프로세서의 동작시간을 단축시킨다.
도 1 은 종래의 벡터레지스터(100)를 도시한 도면.
도 2 는 종래의 벡터레지스터(100)와 이 벡터레지스터에 저장된 벡터의 각각의 요소들을 억세스하는데 사용되는 다수개의 32비트 마스크들을 도시한 도면.
도 3 은 마스크생성회로(300)의 블럭도.
도 4 는 단일 벡터요소를 벡터레지스터(100)의 벡터위치로 삽입하는데 사용되는 벡터삽입 명령(VINSRT)을 도시한 도면.
도 5 는 인덱스회로(310)의 구성도.
도 6 은 마스크선택회로(320)의 구성도.
본 발명은 벡터프로세서가 벡터레지스터내에 저장된 벡터의 각각의 요소들을 단일 클럭주기동안 억세스하도록 하며, 벡터프로세서가 다양한 길이의 요소들을 갖는 벡터를 사용할 수 있도록 한다. 이를 위하여 마스크생성회로는 선택된 크기의 요소에 적합한 마스크를 생성하고, 이 마스크를 적절한 갯수의 위치만큼 쉬프트하여 특정 벡터요소를 마스킹한다.
도 2 는 도 1 과 같이 벡터레지스터(100)를 나타낸 것으로, 도 2 는 벡터레지스터(100)내에 저장된 벡터의 각각의 요소들을 억세스하는데 사용되는 다수개의 32비트 마스크를 더 포함한다. 벡터레지스터(100)의 각각의 바이트어드레스에 대하여 한개의 마스크비트가 존재한다.
도 2 의 32바이트 예를 참조하면, 제 1 마스크를 인덱스 0(In=0)으로 나타내었다. 도시된 바와 같이 상기 마스크는 논리 0을 나타내는 일련의 저장된 신호와 논리 1을 나타내는 1개의 저장된 신호를 포함한다. 논리 0과 논리 1(각각 0V와 5V)을 나타내는 신호들을 논리 0과 논리 1로 칭하기로 한다.
도 2 의 제1마스크의 논리 1은 0번째 바이트어드레스 위치에 해당하는 마스크위치에 저장된다. 두번째 32바이트의 예에 있어서는 인덱스 4(In=4)로 표현되며, 벡터의 4번째 요소에 해당하는 바이트어드레스는 4번째 바이트어드레스 위치에 해당하는 마스크 위치에 위치하는 논리 1로 규정된다. 상기 제 2 마스크는 상기 제 1 마스크와 같은 식으로 이용되나, 벡터프로세서가 32바이트 벡터의 4번째 8비트 요소를 억세스하도록 한다는 것이 다르다.
도 2 의 16하프워드의 예에 있어서, 벡터프로세서(100)는 16개의 하프워드 요소들을 갖는 벡터를 저장한다. 상술한 32바이트 예의 경우와 동일한 마스크가 16바이트 벡터내의 각각의 요소들을 억세스하는데 사용된다. 그러나, 각각의 하프워드 요소는 한쌍의 바이트어드레스를 이용하여 어드레싱되므로 소정의 하프워드 요소를 선택하는데 사용되는 마스크는 인접한 한쌍의 논리 1을 갖는다. 예를 들면, 16요소 벡터의 0번째 하프워드요소를 선택하기 위한 마스크는 벡터레지스터(100)의 0번째와 첫번째 바이트어드레스에 해당하는 마스크비트에 논리 1을 갖는다. 예컨대, 인덱스가 4인 경우, 마스크는 16요소 벡터의 4번째 하프워드요소를 어드레싱하는 조합인 바이트어드레스 8과 9에 해당하는 마스크 비트에 논리 1을 갖는다.
도 2 의 8워드 예에 있어서, 각각의 벡터요소는 벡터레지스터(100)의 4개의 연속되는 바이트어드레스 저장위치에 저장된 32비트를 갖는다. 8요소 벡터의 각각의 요소를 마스킹하기 위해 마스크는 4개의 연속되는 논리 1들을 갖는바, 이 4개의 연속되는 논리 1들의 각각은 선택된 32비트 요소를 규정하기 위해 사용되는 4개의 인접한 바이트어드레스의 하나에 해당된다.
본 발명은 각각의 벡터길이에 대한 유일한 마스크를 규정하고, 선택된 벡터요소를 마스킹하기 위해 상기 유일한 마스크를 적절한 갯수의 바이트어드레스만큼 쉬프트함으로써 다양한 길이의 벡터내의 각각의 요소들을 규정하는 적절한 마스크를 생성한다. 도 2 의 첫번째 예에 있어서, 1개의 논리 1을 갖는 마스크가 생성되고 적절한 수의 바이트어드레스만큼 좌측으로 쉬프트되어 선택된 8비트 요소를 마스킹한다. 선택된 요소가 바이트어드레스 0인 경우 (즉, 인덱스가 0인 경우)에 있어서, 마스크는 0만큼 쉬프트되므로(즉, 쉬프트되지 않으므로), 벡터레지스터(100)의 0번째 요소가 마스킹된다. 인덱스 4인 경우에는 논리 1이 좌측으로 4개의 위치만큼 쉬프트되어 바이트어드레스 4, 결과적으로는 벡터레지스터(100)내에 저장된 32바이트벡터의 4번째 요소에 상응하게 된다.
16바이트 벡터도 상기와 동일하게 처리된다. 그러나, 32비트 마스크는 최하위 마스크비트의 30개의 논리 0와 이에 이어지는 2개의 논리 1의 스트링(string)부터 시작된다. 그런 다음, 이 32비트 마스크는 규정된 인덱스의 2배만큼 좌측으로 쉬프트된다. 도 2 의 16바이트 예에 있어서, 마스크는 인덱스가 0이면 0만큼 좌측 쉬프트되며(즉, 쉬프트되지 않으며), 인덱스가 4이면 8바이트어드레스 (4개의 하프워드 요소)만큼 좌측쉬프트된다.
도 2 의 8워드 예는 가장 우측의 4바이트 어드레스들이 논리 1들을 저장하고, 이 논리 1들이 규정된 인덱스의 4배에 해당하는 갯수의 바이트어드레스만큼 좌측으로 쉬프트되는 것을 제외하고는 상술한 16하프워드 예와 동일하다. 도 2 의 예에 있어서, 4개의 인접한 논리 1들은 인덱스가 4인 경우에 16바이트어드레스만큼 좌측으로 쉬프트된다.
본 발명은 8, 16 또는 32비트의 요소를 갖는 256비트 벡터레지스터에 대하여 기술하고 있으나, 다른 벡터크기와 다른 요소 크기도 사용할 수 있다. 예를 들면, 본 발명의 일실시예는 8, 16, 32비트 요소와 더불어 9비트 요소를 지원한다.
도 3 은 연산의 두개의 모드를 지원하는 마스크생성회로(300)의 블럭도이다. 회로(300)가 종래의 좌측 쉬프터로 기능하는 제 1 모드는 좌측-쉬프트모드이며, 회로(300)가 벡터레지스터에 저장된 소정의 벡터내의 선택된 요소에 대한 적절한 마스크를 생성하는 제 2 모드는 마스크생성모드이다. 마스크생성회로(300)가 좌측쉬프트 기능을 가짐으로써 장치의 면적을 줄일 수 있으나, 다른 실시예에 있어서 이 좌측쉬프트 기능은 분리될 수 있다. 마스크생성회로(300)는 우측으로 쉬프팅함으로써 마스크를 생성하도록 구성될 수도 있다.
마스크생성회로(300)는 인덱스회로(310), 마스크선택회로(320) 및 종래의 좌측쉬프터(330)를 포함한다. 좌측쉬프트 모드를 지원하기 위해 마스크선택회로(320)에는 입력버스(IN31:0)를 통해 좌측쉬프트될 32비트 입력신호가 인가되며, 인덱스회로(310)에는 버스(L_SHIFT4:0)를 통해 규정된 32비트 신호가 좌측쉬프트될 장소의 갯수를 나타내는 5비트수가 인가된다. 좌측쉬프트 모드에 있어서, 터미널(INSERT, EXTRACT)상의 신호가 논리 0을 나타낼 때 인덱스회로(310)는 버스(L_SHIFT4:0)상의 5비트수를 쉬프트카운트 버스(SHFT_CNT4:0)를 통해 좌측쉬프터(330)로 전달한다. 마스크선택회로(320)는 입력버스(IN31:0)상의 입력신호를 마스크버스(MASK31:0)를 통해 좌측쉬프터(330)로 전달한다. 좌측쉬프터(330)는 적절한 좌측쉬프트된 신호를 32비트 출력버스(OUT31:0)상으로 제공한다. 본 발명의 일실시예에 있어서, 좌측쉬프터(330)는 종래의 좌측 또는 우측 쉬프터로 구현할 수 있다.
마스크생성회로(300)는 벡터프로세서가 선택된 벡터레지스터내의 선택된 요소(5비트 인덱스에 의해 규정된)로의 억세스를 규정하는 벡터명령을 수행하는 경우 마스크생성모드로 동작한다. 상기 벡터명령은 상기 억세스될 요소의 크기와 상기 억세스가 삽입(기입)동작인지 추출(독출)동작인지를 나타낸다. 이러한 벡터명령의 하나로서 벡터삽입명령을 들 수 있으며, 이를 도 4 에 나타내었다. 이 벡터명령(VINSRT)은 단일 벡터요소를 벡터위치로 삽입하기 위해 마스크생성회로(300)와 관련되어 사용된다.
벡터명령(VINSRT)은 다음의 10가지의 구별되는 필드로 구성된 32비트 명령코드이다.
1. 명령이 어떤 타입의 등급에 속하는지를 나타내는 2비트 명령타입(400).
2. 수행될 특정연산(이 경우에는 벡터삽입)을 나타내는 6비트 OP코드(410).
3. 명령의 목적지레지스터가 스칼라데이타타입인지 벡터데이타타입인지를 나타내는 1비트 목적지 스칼라레지스터 플래그(420).
4. 소오스레지스터가 스칼라데이타타입인지 벡터데이타타입인지를 나타내는 1비트 스칼라 소오스레지스터 플래그(430).
5. 벡터내에서 교체될 요소의 크기를 나타내는 2비트 데이타크기 플래그(440).
6. 데이타크기 플래그(440)와 조합되어 각기 다른 데이타타입의 연산수들의 인코딩을 결정하는 1비트 데이타크기 변경자(modifier)(450).
7. 5비트 소오스/직접필드(immediate field)(490)와 조합되었을때 9비트 직접값의 4비트를 저장하는데 사용되는 4비트 직접필드(460).
8. 연산의 결과가 저장될 레지스터의 어드레스를 나타내는 5비트 목적지레지스터 필드(470).
9. 소오스레지스터의 어드레스를 저장하는데 사용되는 5비트 소오스필드(480).
10. 소오스필드(480)를 벡터로 기입하기 위한 위치를 나타내는 5비트 인덱스필드(490).
벡터명령(VINSRT)에 대한 상세한 사항은 상술한 특허출원 명세서 Computer Methods For Writing a Scalar Value to a Vector를 참조하라.
벡터명령(VINSRT)의 중요한 필드는 벡터내에서 교체된 요소의 크기를 나타내는 2비트 데이타크기 플래그(440)와 소오스필드(480)를 벡터로 기입하기 위한 위치를 나타내는 5비트 인덱스필드(490)이다. 인덱스필드(490)에 저장된 인덱스는 종래의 방법을 이용하여 인덱스버스(INDEX4:0)를 통해 인덱스회로(310)로 제공된다. 벡터프로세서는 종래의 논리를 이용하여 데이타크기 플래그(440)가 나타내는 요소의 크기를 디코딩함으로써
1. 선택된 요소의 크기가 8비트일 경우에만 터미널(d8)이 논리 1(즉, 3.3 또는 5V)이 되고,
2. 선택된 요소크기가 16비트일 경우에만 터미널(d16)이 논리 1이 되며,
3. 선택된 요소크기가 32비트일 경우에만 터미널(d32)이 논리 1이 된다.
마스크선택회로(320)와 인덱스회로(310)는 터미널(d8,d16,d32)상의 신호들을 디코딩한다. 벡터프로세서내의 종래의 논리(도시안됨)는 op코드(410)를 디코딩함으로써 연산이 삽입인지 추출인지를 결정하며, 논리 1을 터미널(INSERT)과 터미널(EXTRACT)중의 적절한 어느 한 터미널로 제공한다.
벡터명령으로부터 얻어진 정보를 이용하여 마스크선택회로(320)는 도 2 를 참조하여 상술한 바와 같이 최하위 마스크비트에 1,2 또는 4개의 논리 1을 갖는 마스크를 생성한다. 마스크생성회로(320)는 상기 마스크를 32비트 마스크신호로서 마스크버스(MASK31:0)를 통해 좌측쉬프터(330)로 제공한다. 또한, 벡터명령으로부터 얻어진 정보를 이용하여 인덱스회로(310)는 요구된 벡터요소를 선택하기 위해 마스크신호가 쉬프트되어야 할 바이트어드레스의 수를 나타내는 신호를 쉬프트카운트 버스(SHFT_CNT4:0)상에 생성한다. 좌측쉬프터(330)는 마스크버스(MASK31:0)상의 마스크신호를 쉬프트카운트 버스(SHFT_CNT4:0)상의 신호가 나타내는 수만큼 쉬프트한다.
도 5 는 인덱스회로(310)의 구성도를 나타낸 것이다. 인덱스회로(310)는 NOR게이트(312)와 인버터(314)를 포함하여 구성된다. 도 5 에 도시된 나머지 요소들은 4:0으로 나타낸 5개의 유사한 병렬요소들이다. 이들 병렬요소들은 5라인 버스구조를 지원한다. 상기 병렬요소들은 트랜지스터(N27,N28,N29,N20,N30,P22)와 인버터(I13,I25)를 포함한다. P로 나타낸 트랜지스터는 p형이고 N으로 나타낸 트랜지스터는 n형이다.
상술한 바와 같이 마스크생성회로(300)가 종래의 좌측쉬프터로 기능할 경우에 터미널(EXTRACT,INSERT)상의 입력레벨은 논리 0이다. 결과적으로, 우측쉬프트 인에이블라인(LS_EN)상에 제공되는 NOR게이트(312)의 출력은 논리 1이 된다. 인버터(314)는 이 논리 1을 반전시켜 그 결과인 논리 0을 라인(EX_INSERT)을 통해 트랜지스터(N20)에 제공한다. 라인(LS_EN)상의 논리1은 트랜지스터(N30)를 턴온시켜 버스(L_SHIFT4:0)상의 논리레벨을 인버터(I13)의 입력터미널로 게이팅시킨다. (트랜지스터(N20)는 턴오프되어 버스컨텐션(bus contention)을 방지한다.) 버스(L_SHIFT4:0)상의 논리레벨은 반전되어 인버터(I25)에 의해 다시 반전되기 전에 인버터(I13)와 트랜지스터(P22)에 의해 래치된다. 따라서, 버스(L_SHIFT4:0)상의 신호는 래치되어 쉬프트카운트 버스(SHRT_CNT4:0)로 제공된다.
마스크생성모드에 있어서, 벡터요소로부터 데이타가 삽입되고 추출되는 경우에 NOR게이트(312)로의 한 입력은 논리 1이 되며 이에 따라 라인(LS_EN)상의 신호는 논리 0가 되어 트랜지스터(N30)를 턴오프시키며, 라인(EX_INSERT)상의 신호는 논리 1이 되어 트랜지스터(N20)를 턴온시킨다. 그러므로, 쉬프트카운트 버스(SHRT_CNT4:0)는 인덱스쉬프트 버스(IN_SHFT4:0)에 연결되며 좌측쉬프트 버스(L_SHIFT4:0)로부터 전기적으로 분리된다. 트랜지스터(N27,N28,N29)는 멀티플렉서로 작용하여 터미널(d8,d16,d32)중의 어느 것이 논리 1을 나타내는 전압레벨인지에 따라 상기 3개의 버스들중의 어느 하나는 선택한다.
터미널(d8)상의 논리 1은 트랜지스터(N27,N28,N29)를 턴오프시켜 인덱스버스(INDEX4:0)상에서 규정된 인덱스를 인덱스쉬프트 버스(IN_SHFT4:0)로 게이팅시킨다. 이에 따라 인덱스회로(310)는 변경되지 않은 인덱스수를 쉬프트카운트 버스(SHFT_CNT4:0)로 제공한다. 이것은 인덱스가 벡터가 8비트의 요소들로 나누어질 경우 마스크를 쉬프트시키기 위한 정확한 수의 어드레스바이트를 나타내도록 하는데 적당한 것이다.(도 2 의 제 1 예 참조)
벡터레지스터(100)가 16비트 요소를 저장하도록 구성되면, 터미널(d16)상의 신호는 논리 1이 되고 터미널(d32,d8)상의 신호는 논리 0이 된다. 결과적으로, 트랜지스터(N28)는 턴온되고 트랜지스터(N27,N29)는 턴오프된다. 트랜지스터(N28)의 입력터미널은 중요도(significance)의 순서에 따라 인덱스라인들(INDEX3:0)과 논리 0을 포함하는 5라인 버스의 각각의 라인에 연결된다. 최하위의 위치에 논리 0을 가하면 인덱스가 좌측으로 1만큼 쉬프트된다. 이진 수학에 있어서, 좌측으로 1만큼 쉬프트시키는 것은 2를 곱하는 것과 같다. 따라서 트랜지스터(N28)와 인버터(I12,I25)를 통과한 5비트 신호는 2가 곱해진 버스(INDEX4:0)상의 인덱스수를 나타낸다. 이것은 도 2 의 두번째 예에 나타낸 바와 같이 적절한 16비트 요소를 마스킹하기 위해 마스크가 어드레스 바이트의 수만큼 좌측으로 쉬프트되기 때문에 벡터를 16비트 요소로 구분할 경우에 적절한 것이다. 4개의 인덱스라인(INDEX3:0)은 16개의 가능한 벡터요소의 각각을 나타내는데 충분하다.
터미널(d32)상의 논리레벨이 1인 경우(그리고 터미널(d16,d8)상의 논리레벨이 0인 경우), 트랜지스터(N29)의 입력터미널은 중요도의 순서에 따라 인덱스라인들(INDEX2:0)과 한쌍의 논리 0을 포함하는 5라인 버스의 각각의 터미널에 연결된다. 2개의 논리 0을 최하위 위치에 가하면 인덱스가 2만큼 좌측으로 쉬프트되어 인덱스에 4를 곱하는 것이 된다. 이것은 마스크가 인덱스의 4배와 같은 수만큼 좌측으로 쉬프트되므로 벡터를 32비트 요소들로 구분하는 경우에 적합한 것이다. 3개의 인덱스라인(INDEX2:0)은 8개의 가능한 벡터요소들의 각각을 나타내는데 충분하다.
도 6 은 마스크선택회로(320)의 구성도이다. 좌측쉬프트 모드에 있어서, 추출/삽입라인(EX_INSERT)상의 전압레벨은 논리 0을 나타낸다. 인버터(I59)가 이 논리 0을 논리 1로 반전시킴으로써 NAND게이트(I55)가 입력버스의 최하위비트(IN0)상의 신호를 마스크버스(MASK0)의 최하위비트로 제공하게 된다. 터미널(EX_INSERT)상의 반전된 추출/삽입신호는 멀티플렉서(I48,I47)를 인에이블시켜 라인(IN1)과 라인들(IN3:2)을 선택하도록 함으로써 마스크버스의 각각의 마스크라인(MASK3:1)에 해당되는 신호를 제공한다. 터미널(EX_INSERT)상의 반전된 추출/삽입신호는 NAND게이트(I38)와 인버터(I39)를 인에이블시켜 입력버스의 나머지 라인들(IN31:4)상의 신호를 각각의 마스크라인(MASK31:4)으로 전달하도록 한다. 결과적으로, 마스크버스(MASK31:0)상의 32비트 출력신호는 입력버스(IN31:0)상의 32비트 입력신호와 같게 된다.
마스크모드에 있어서, 마스크선택회로(320)는 나타내어진 벡터요소 크기에 적절한 마스크를 선택한다. 벡터요소의 크기가 8비트인 도 2 의 첫번째 예에 있어서, 마스크는 논리 1로 설정된 최하위 바이트어드레스에 해당되는 비트를 갖는 32비트 마스크이다. 두번째 및 세번째 예에 있어서, 마스크 연산을 개시하는 벡터명령내의 규정된 요소크기에 따라 32비트 마스크의 2개 또는 4개의 최하위비트들은 논리 1로 설정된다.
마스크생성회로(300)는 추출/삽입라인(EX_INSERT)상의 추출/삽입신호가 논리 1을 나타낼때마다 벡터마스크를 생성한다. 인버터(I59)에 의해 반전되는 이 논리 1은 NAND게이트(I55)를 디스에이블시켜 마스크라인(MASK0)이 논리 1이 되도록 한다. 8비트 바이트크기가 선택되면, 터미널(d16,d32)상의 신호는 각각 논리 0이 된다. 따라서, 각각의 멀티플렉서(I48,I47)는 논리 0을 마스크라인(MASK1과 MASK3:2)으로 전달한다. 반전된 추출/삽입신호는 또한 NAND게이트(I38)를 디스에이블시켜 마스크라인(MASK31:4)이 논리 0이 되게 한다. 따라서, 8비트 벡터요소가 규정될 경우, 마스크버스(MASK31:0)상의 마스크출력은 최하위 위치에서 연속되는 논리 0들과 이에 이어지는 1개의 논리 1의 스트링을 나타내는 32비트 신호가 된다.
16비트 요소가 선택될 경우의 마스크선택회로(320)의 동작은 터미널(d16)상의 논리 1로 나타낸 바와 같이 8비트 요소가 선택될 경우의 마스크선택회로(320)의 동작과 유사하다. 그러나, NOR게이트(I49)와 인버터(I50)를 통해 멀티플렉서(I48)로 인가되는 터미널(d16)상의 논리 1은 마스크라인(MASK1)상으로 출력된다. 그러므로, 16비트 요소가 선택되면 마스크버스상의 출력신호는 마스크버스의 2개의 최하위비트(MASK1:0)상의 논리 1들을 나타내는 전압레벨을 갖는 32비트신호가 되며, 나머지 비트들은 논리 0이 된다.
32비트 요소가 선택되는 경우에는 (터미널(d32)상의 논리 1로 나타낸 바와 같은) 터미널(d32)상의 논리 1은 멀티플렉서(I47)를 통해 마스크라인(MASK3:2)으로 출력된다. 8비트 및 16비트 요소가 선택되면 마스크라인(MASK1:0)은 논리 1이 된다. 따라서, 32비트 요소가 추출/삽입모드에서 선택되면, 마스크선택회로(320)는 마스크버스의 4개의 최하위비트(MASK3:0)의 각각에 논리 1을 나타내는 전압레벨을 갖는 32비트신호를 출력한다.
본 발명에 의한 벡터프로세서는 프로그래머가 특정 벡터레지스터에 저장된 특정한 벡터요소의 크기(비트)와 위치를 규정하는 1개 이상의 벡터명령을 지원함으로써 프로그래머가 벡터레지스터의 내용을 독출하지 않으면서 새로운 벡터요소를 벡터레지스터내의 선택된 벡터요소 저장위치로 삽입할 수 있도록 한다.
이상에서 본 발명을 바람직한 실시예들과 관련하여 설명하였으나, 다른 변형 및 변경도 가능하다. 예를 들면, 상술한 실시예에서는 8,16 또는 32비트의 요소를 갖는 256비트 벡터를 설명하였으나, 다른 벡터크기 및 다른 요소크기도 사용될 수 있다. 또한, 상술한 실시예에서의 마스크비트는 논리 1을 저장함으로써 특정한 벡터요소를 선택하였으나, 논리 0을 저장함으로써 특정한 벡터요소를 선택할 수도 있다. 본 발명을 특정의 바람직한 실시예에 관련하여 도시하고 설명하였지만, 이하의 특허청구의 범위에 의해 마련되는 본 발명의 정신이나 분야를 이탈하지 않는 한도내에서 본 발명이 다양하게 개조 및 변화될 수 있다는 것을 당 업계에서 통상의 지식을 가진 자는 용이하게 알 수 있다.

Claims (8)

  1. 벡터레지스터내에 벡터로서 저장된 복수개의 벡터요소들중의 하나를 선택하는 방법에 있어서, 상기 각각의 벡터요소가 적어도 하나의 멀티비트 바이트의 데이타를 포함하며, 상기 각각의 벡터요소가 벡터레지스터내의 유일한 위치에 저장되는 바, 상기 방법이,
    벡터레지스터내의 복수개의 벡터요소들중의 하나의 바이트의 수와 위치를 나타내는 벡터명령을 입력하는 단계와;
    복수개의 벡터요소들중의 하나를 선택하도록 구성된 마스크를 생성하는 단계; 및
    선택되지 않은 벡터요소를 억세싱하는 일 없이 상기 마스크를 이용하여 선택된 벡터요소를 억세싱하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 제 1 항에 있어서,
    상기 마스크를 생성하는 단계가 벡터요소내의 각각의 바이트의 수에 대하여 마스크비트를 설정하는 단계를 포함하는 것을 특징으로 하는 방법.
  3. 제 2 항에 있어서,
    상기 벡터명령에 의해 지시된 위치로부터 얻어진 쉬프트카운트 만큼 상기 설정된 마스크비트를 쉬프트시키는 단계가 더 포함되는 것을 특징으로 하는 방법.
  4. 제 1 항에 있어서,
    상기 선택된 벡터요소를 억세싱하는 단계가 상기 벡터레지스터내의 선택되지 않은 벡터요소 위치에 기입하는일 없이 벡터요소를 포함하는 벡터레지스터의 위치에 새로운 정보를 기입하는 단계를 포함하는 것을 특징으로 하는 방법.
  5. 제 1 항에 있어서,
    상기 선택된 벡터요소를 억세싱하는 단계가 벡터레지스터내의 선택되지 않은 벡터요소 위치로부터 독출하는일 없이 벡터요소를 포함하는 벡터레지스터의 위치로부터 정보를 독출하는 단계를 포함하는 것을 특징으로 하는 방법.
  6. 각각의 벡터요소가 다수개의 비트를 포함하는 복수개의 벡터요소들을 저장하도록 구성된 벡터레지스터와;
    각각의 벡터요소내에 포함된 비트의 수를 결정하는 수단;
    적어도 하나의 마스크비트를 갖는 마스크를 벡터레지스터내의 각각의 벡터요소로 제공하는 수단; 및
    선택되지 않은 벡터요소를 억세싱하는일 없이 선택된 벡터요소를 마스크를 이용하여 억세싱하는 단계를 포함하여 이루어지는 복수개의 벡터요소들중의 하나를 선택하기 위한 시스템.
  7. 벡터레지스터내에 저장된 복수개의 멀티비트 벡터요소들중의 하나를 선택하기 위한 마스크생성회로에 있어서,
    각각의 벡터요소의 비트의 수를 나타내는 데이타를 입력하도록 구성된 마스크선택 입력터미널과;
    복수개의 마스크비트들을 갖는 마스크회로; 및
    인덱스수를 입력하도록 구성된 제 1 입력버스와, 데이타를 입력하도록 구성된 입력터미널, 및 쉬프트카운트 출력버스를 갖는 인덱스회로;를 구비한 마스크선택회로를 포함하는바,
    상기 벡터레지스터내의 벡터요소의 각각에 대하여 적어도 하나의 마스크비트가 존재하며, 상기 마스크선택회로가 적어도 하나의 마스크비트에 요소선택 데이타를 제공하도록 구성되며, 상기 인덱스회로가 복수개의 멀티비트 벡터요소들중의 하나를 선택하기 위해 요소선택 데이타를 쉬프트시키기 위한 장소의 갯수를 나타내는 쉬프트카운트 신호를 제공하도록 구성되는 것을 특징으로 하느 마스크생성회로.
  8. 제 7 항에 있어서,
    쉬프트카운트 버스에 연결된 제 1 쉬프터 입력버스와 마스크버스에 연결된 제 2 쉬프터 입력버스를 구비한 쉬프터가 더 포함되는바, 상기 쉬프터가 마스크버스상에 저장된 마스크신호를 쉬프트카운트 버스상에 규정된 쉬프트카운트만큼 쉬프트하도록 구성된 것을 특징으로 하는 마스크생성회로.
KR1019970022661A 1996-10-18 1997-06-02 벡터프로세서를 위한 요소선택 메카니즘 KR100241049B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US8/733,907 1996-10-18
US08/733,907 1996-10-18
US08/733,907 US5832288A (en) 1996-10-18 1996-10-18 Element-select mechanism for a vector processor

Publications (2)

Publication Number Publication Date
KR19980032137A true KR19980032137A (ko) 1998-07-25
KR100241049B1 KR100241049B1 (ko) 2000-02-01

Family

ID=24949598

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970022661A KR100241049B1 (ko) 1996-10-18 1997-06-02 벡터프로세서를 위한 요소선택 메카니즘

Country Status (2)

Country Link
US (1) US5832288A (ko)
KR (1) KR100241049B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150138319A (ko) * 2013-06-27 2015-12-09 인텔 코포레이션 마스크 레지스터에서의 비트들을 반전 및 치환하기 위한 장치 및 방법

Families Citing this family (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7266725B2 (en) 2001-09-03 2007-09-04 Pact Xpp Technologies Ag Method for debugging reconfigurable architectures
DE19654595A1 (de) 1996-12-20 1998-07-02 Pact Inf Tech Gmbh I0- und Speicherbussystem für DFPs sowie Bausteinen mit zwei- oder mehrdimensionaler programmierbaren Zellstrukturen
US6542998B1 (en) 1997-02-08 2003-04-01 Pact Gmbh Method of self-synchronization of configurable elements of a programmable module
US8686549B2 (en) 2001-09-03 2014-04-01 Martin Vorbach Reconfigurable elements
DE19861088A1 (de) 1997-12-22 2000-02-10 Pact Inf Tech Gmbh Verfahren zur Reparatur von integrierten Schaltkreisen
US6334176B1 (en) * 1998-04-17 2001-12-25 Motorola, Inc. Method and apparatus for generating an alignment control vector
US7529907B2 (en) * 1998-12-16 2009-05-05 Mips Technologies, Inc. Method and apparatus for improved computer load and store operations
WO2002013000A2 (de) 2000-06-13 2002-02-14 Pact Informationstechnologie Gmbh Pipeline ct-protokolle und -kommunikation
TW463528B (en) * 1999-04-05 2001-11-11 Idemitsu Kosan Co Organic electroluminescence element and their preparation
WO2000077652A2 (de) 1999-06-10 2000-12-21 Pact Informationstechnologie Gmbh Sequenz-partitionierung auf zellstrukturen
US6542945B1 (en) * 1999-09-28 2003-04-01 Intel Corporation Instant configuration of a digital device
US6701424B1 (en) * 2000-04-07 2004-03-02 Nintendo Co., Ltd. Method and apparatus for efficient loading and storing of vectors
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
US9552047B2 (en) 2001-03-05 2017-01-24 Pact Xpp Technologies Ag Multiprocessor having runtime adjustable clock and clock dependent power supply
US9411532B2 (en) 2001-09-07 2016-08-09 Pact Xpp Technologies Ag Methods and systems for transferring data between a processing device and external devices
US9436631B2 (en) 2001-03-05 2016-09-06 Pact Xpp Technologies Ag Chip including memory element storing higher level memory data on a page by page basis
US9037807B2 (en) 2001-03-05 2015-05-19 Pact Xpp Technologies Ag Processor arrangement on a chip including data processing, memory, and interface elements
US7444531B2 (en) 2001-03-05 2008-10-28 Pact Xpp Technologies Ag Methods and devices for treating and processing data
US7844796B2 (en) 2001-03-05 2010-11-30 Martin Vorbach Data processing device and method
US9250908B2 (en) 2001-03-05 2016-02-02 Pact Xpp Technologies Ag Multi-processor bus and cache interconnection system
US9141390B2 (en) 2001-03-05 2015-09-22 Pact Xpp Technologies Ag Method of processing data with an array of data processors according to application ID
FI110373B (fi) * 2001-04-11 2002-12-31 Nokia Corp Menetelmä pakatun audiosignaalin purkamiseksi
US10031733B2 (en) 2001-06-20 2018-07-24 Scientia Sol Mentis Ag Method for processing data
US7996827B2 (en) 2001-08-16 2011-08-09 Martin Vorbach Method for the translation of programs for reconfigurable architectures
US7434191B2 (en) 2001-09-03 2008-10-07 Pact Xpp Technologies Ag Router
US8686475B2 (en) 2001-09-19 2014-04-01 Pact Xpp Technologies Ag Reconfigurable elements
EP1483682A2 (de) 2002-01-19 2004-12-08 PACT XPP Technologies AG Reconfigurierbarer prozessor
DE10390689D2 (de) 2002-02-18 2005-02-10 Pact Xpp Technologies Ag Bussysteme und Rekonfigurationsverfahren
US20110161977A1 (en) * 2002-03-21 2011-06-30 Martin Vorbach Method and device for data processing
US9170812B2 (en) 2002-03-21 2015-10-27 Pact Xpp Technologies Ag Data processing system having integrated pipelined array data processor
US8914590B2 (en) 2002-08-07 2014-12-16 Pact Xpp Technologies Ag Data processing method and device
US7657861B2 (en) 2002-08-07 2010-02-02 Pact Xpp Technologies Ag Method and device for processing data
AU2003286131A1 (en) 2002-08-07 2004-03-19 Pact Xpp Technologies Ag Method and device for processing data
JP4388895B2 (ja) 2002-09-06 2009-12-24 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト リコンフィギュアラブルなシーケンサ構造
JP3855270B2 (ja) * 2003-05-29 2006-12-06 ソニー株式会社 アンテナ実装方法
JP4700611B2 (ja) 2003-08-28 2011-06-15 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト データ処理装置およびデータ処理方法
US20060190700A1 (en) * 2005-02-22 2006-08-24 International Business Machines Corporation Handling permanent and transient errors using a SIMD unit
WO2007082730A1 (de) 2006-01-18 2007-07-26 Pact Xpp Technologies Ag Hardwaredefinitionsverfahren
WO2008020271A1 (en) * 2006-08-18 2008-02-21 Freescale Semiconductor, Inc. Method for performing plurality of bit operations and a device having plurality of bit operations capabilities
US20100281235A1 (en) * 2007-11-17 2010-11-04 Martin Vorbach Reconfigurable floating-point and bit-level data processing unit
US20110173596A1 (en) * 2007-11-28 2011-07-14 Martin Vorbach Method for facilitating compilation of high-level code for varying architectures
EP2235627A1 (en) * 2007-12-07 2010-10-06 Krass, Maren Using function calls as compiler directives
WO2009076281A1 (en) * 2007-12-10 2009-06-18 Sandbridge Technologies, Inc. Accelerating traceback on a signal processor
US20120239910A1 (en) * 2008-08-15 2012-09-20 Apple Inc. Conditional extract instruction for processing vectors
US20110283092A1 (en) * 2008-08-15 2011-11-17 Apple Inc. Getfirst and assignlast instructions for processing vectors
EP2996035A1 (en) 2008-10-15 2016-03-16 Hyperion Core, Inc. Data processing device
US20100199067A1 (en) * 2009-02-02 2010-08-05 International Business Machines Corporation Split Vector Loads and Stores with Stride Separated Words
US9766886B2 (en) * 2011-12-16 2017-09-19 Intel Corporation Instruction and logic to provide vector linear interpolation functionality
CN107193537B (zh) * 2011-12-23 2020-12-11 英特尔公司 经改进的插入指令的装置和方法
CN104011616B (zh) * 2011-12-23 2017-08-29 英特尔公司 改进置换指令的装置和方法
CN116414459A (zh) * 2011-12-23 2023-07-11 英特尔公司 在不同的粒度水平下对数据值进行广播和掩码的指令执行
US9946540B2 (en) * 2011-12-23 2018-04-17 Intel Corporation Apparatus and method of improved permute instructions with multiple granularities
WO2013095613A2 (en) 2011-12-23 2013-06-27 Intel Corporation Apparatus and method of mask permute instructions
CN104115114B (zh) * 2011-12-23 2018-06-12 英特尔公司 经改进的提取指令的装置和方法
EP2674855B1 (en) * 2012-06-14 2016-11-23 Telefonaktiebolaget LM Ericsson (publ) An element selection unit and a method therein
US9122475B2 (en) * 2012-09-28 2015-09-01 Intel Corporation Instruction for shifting bits left with pulling ones into less significant bits
US9501276B2 (en) 2012-12-31 2016-11-22 Intel Corporation Instructions and logic to vectorize conditional loops
US9348589B2 (en) * 2013-03-19 2016-05-24 Apple Inc. Enhanced predicate registers having predicates corresponding to element widths
US9513926B2 (en) * 2014-01-08 2016-12-06 Cavium, Inc. Floating mask generation for network packet flow
US11144522B2 (en) 2014-10-27 2021-10-12 Kinaxis Inc. Data storage using vectors of vectors
WO2016067107A1 (en) 2014-10-27 2016-05-06 Kinaxis Inc. Data storage using vectors of vectors
US11544214B2 (en) * 2015-02-02 2023-01-03 Optimum Semiconductor Technologies, Inc. Monolithic vector processor configured to operate on variable length vectors using a vector length register
US10528353B2 (en) * 2016-05-24 2020-01-07 International Business Machines Corporation Generating a mask vector for determining a processor instruction address using an instruction tag in a multi-slice processor
US10467008B2 (en) 2016-05-31 2019-11-05 International Business Machines Corporation Identifying an effective address (EA) using an interrupt instruction tag (ITAG) in a multi-slice processor
US10248555B2 (en) 2016-05-31 2019-04-02 International Business Machines Corporation Managing an effective address table in a multi-slice processor
US10891131B2 (en) * 2016-09-22 2021-01-12 Intel Corporation Processors, methods, systems, and instructions to consolidate data elements and generate index updates

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57209570A (en) * 1981-06-19 1982-12-22 Fujitsu Ltd Vector processing device
JPS6089274A (ja) * 1983-10-20 1985-05-20 Nec Corp ベクトルマスク制御システム
JPH0731669B2 (ja) * 1986-04-04 1995-04-10 株式会社日立製作所 ベクトル・プロセツサ
JPH0724013B2 (ja) * 1986-09-10 1995-03-15 株式会社日立製作所 ベクトルプロセツサ
US5651121A (en) * 1992-12-18 1997-07-22 Xerox Corporation Using mask operand obtained from composite operand to perform logic operation in parallel with composite operand
US5513366A (en) * 1994-09-28 1996-04-30 International Business Machines Corporation Method and system for dynamically reconfiguring a register file in a vector processor

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150138319A (ko) * 2013-06-27 2015-12-09 인텔 코포레이션 마스크 레지스터에서의 비트들을 반전 및 치환하기 위한 장치 및 방법
US9645820B2 (en) 2013-06-27 2017-05-09 Intel Corporation Apparatus and method to reserve and permute bits in a mask register
US10209988B2 (en) 2013-06-27 2019-02-19 Intel Corporation Apparatus and method to reverse and permute bits in a mask register
US10387149B2 (en) 2013-06-27 2019-08-20 Intel Corporation Apparatus and method to reverse and permute bits in a mask register
US10387148B2 (en) 2013-06-27 2019-08-20 Intel Corporation Apparatus and method to reverse and permute bits in a mask register

Also Published As

Publication number Publication date
KR100241049B1 (ko) 2000-02-01
US5832288A (en) 1998-11-03

Similar Documents

Publication Publication Date Title
KR100241049B1 (ko) 벡터프로세서를 위한 요소선택 메카니즘
US4667305A (en) Circuits for accessing a variable width data bus with a variable width data field
US5390307A (en) Apparatus for a multi-data store or load instruction for transferring multiple contiguous storage locations in one transfer operation
US5053953A (en) Apparatus for aligning arithmetic operands during fetch
KR880000298B1 (ko) 멀티워어드 메모리 데이타 스토리지 및 어드레싱 기법및 장치
US4825355A (en) Instruction format for program control type data processing systems
KR100227277B1 (ko) 컴퓨터에 있어서 스칼라값을 벡터로 기입하는 방법
US6738793B2 (en) Processor capable of executing packed shift operations
US5276891A (en) Alignment of sign, data, edit byte operand results for storage in memory
US4847759A (en) Register selection mechanism and organization of an instruction prefetch buffer
KR20110055629A (ko) 단일 명령 다중 데이터(simd)데이터 처리기에서 확장된 어드레싱 모드들의 제공
WO1997033222A1 (en) Apparatus for performing packed shift operations
JPH0470662B2 (ko)
KR100465388B1 (ko) Risc 구조의 8비트 마이크로 제어기
JPH06332695A (ja) データ処理装置及びその制御回路
EP0407177A2 (en) Bit sequence reversing device
US4691282A (en) 16-bit microprocessor system
US5396610A (en) Register address specifying circuit for simultaneously accessing two registers
US5001629A (en) Central processing unit with improved stack register operation
KR920002573B1 (ko) 데이타 처리기
EP0195202B1 (en) Register selection mechanism and organization of an instruction prefetch buffer
KR100301224B1 (ko) 고정도수를저장하는컴퓨터내에서이용가능한메모리주소위치의수를증가시키기위한메모리주소지정방법
US5771368A (en) Memory addressing scheme for increasing the number of memory locations available in a computer for storing higher precision numbers
JP2005222519A (ja) メモリに記憶されたデータワード内のビット値へのアクセス
US20090327332A1 (en) Method for implementing a bit-reversed increment in a 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: 20121031

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20131031

Year of fee payment: 15

LAPS Lapse due to unpaid annual fee