KR100213604B1 - 프로세서 및 데이타처리장치 - Google Patents

프로세서 및 데이타처리장치 Download PDF

Info

Publication number
KR100213604B1
KR100213604B1 KR1019960030919A KR19960030919A KR100213604B1 KR 100213604 B1 KR100213604 B1 KR 100213604B1 KR 1019960030919 A KR1019960030919 A KR 1019960030919A KR 19960030919 A KR19960030919 A KR 19960030919A KR 100213604 B1 KR100213604 B1 KR 100213604B1
Authority
KR
South Korea
Prior art keywords
data
register
bit
instruction
long
Prior art date
Application number
KR1019960030919A
Other languages
English (en)
Other versions
KR970014366A (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 KR970014366A publication Critical patent/KR970014366A/ko
Application granted granted Critical
Publication of KR100213604B1 publication Critical patent/KR100213604B1/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
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • 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/3001Arithmetic instructions
    • G06F9/30014Arithmetic instructions with variable precision
    • 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/30098Register arrangements
    • G06F9/30101Special purpose registers

Abstract

저장 프로그램방식의 프로세서에 관한 것으로서, 하드웨어의 코스트를 그다지 증가하는 일 없이 레지스터 파일의 데이타길이보다 긴 데이타 길이의 데이타의 연산처리를 고속으로 실행할 수 있는 프로세서를 제공하기 위해, 레지스터 파일과 화소연산기장치 사이에 레지스터 파일의 비트폭의 2배의 비트폭을 갖는 제1롱레지스터, 제2롱레지스터, 제2롱레지스터의 데이타를 부분적으로 갱신하는 롱레지스터 갱신장치를 마련하고, 명령 레지스터에 롱레지스터 갱신화소 연산명령이 저장되면, 롱레지스터 갱신장치는 제2롱레지스터의 데이타의 일부와 레지스터파일에서 리드된 데이타의 일부를 연결하고, 셀렉터를 거쳐서 화소연산기와 제2롱레지스터에 부가하고, 화소연산기는 제1롱레지스터와 셀렉터에서 부가되는 데이타 사이의 연산을 실행하는 구성으로 하였다.
이러한 구성에 의하면, 하드웨어의 코스트를 그다지 증가하는 일 없이 레지스터 파일의 데이타길이보다 긴 데이타길이의 데이타간의 연산처리를 고속으로 실행할 수 있는 프로세서를 제공할 수 있다.

Description

프로세서 및 데이타처리장치
본 발명은 저장 프로그램방식의 프로세서에 관한 것으로서 특히, 동화상 데이타 등을 포함하는 멀티미디어 데이타의 처리에 적합한 구성에 관한 것이다.
동화상 데이타를 압축하는 방식으로서는 ISO/MPEG로서 알려져 있는 방식이 있다. 이 방식에서는 움직임 보상을 실행하기 위해 동화상을 구성하는 여러개의 프레임간에서 서로 화상이 근사하고 있는 부분을 탐색한다. 그리고, 이 서로 근사하고 있는 부분의 위치의 변화를 동화상의 움직임을 나타내는 움직임 벡터로서 부호화하는 것에 의해 동화상 데이타의 압축을 실행한다.
이와 같은 탐색은 제10도의 커런트 프레임(80)중의 커런트 매크로 블럭이라고 불리우는 16화소×16화소의 영역의 화상이 제1도의 참조 프레임(81)중의 서치윈도우 중 어느 부분과 가장 근사하고 있는지를 검색하는 것에 의해 실행된다.
여기서, 화상간의 근사의 평가에는 식 1에 나타내는 평가식이 널리 사용되고 있다.
[식 1]
그리고, 이와 같은 평가식을 사용하는 경우에는 상기 탐색은 이 평가식의 값이 가장 작아지는 (u,v)의 조합을 탐색하는 것에 의해 이루어지게 된다.
여기서, 식 1의 평가식을 고속으로 연산하기 위한 종래의 프로세서로서는 「MICROPROCESSOR REPORT, DECEMBER 5, 1994」의 pp.16에 기재된 SUN Microsystems의 U1tra SPARC이 존재한다. 이 프로세서에서는 식 2에 나타나는 연산을 1명령으로 실행할 수 있다.
[식 2]
이 프로세서의 구성의 개요를 제11도에 도시한다.
도시하는 바와 같이 이 프로세서는 로드 저장 처리장치(9130), 식 2에 나타난 연산을 실행하는 화소연산 처리장치(9133), 그 밖의 연산을 실행하는 여러개의 연산장치(9131), (9132), 64비트폭의 여러개의 레지스터로 이루어지는 레지스터 파일, 각각의 처리장치에 대응해서 마련한 명령 레지스터(30)∼(33), 그 명령 레지스터(30)∼(33)으로 명령을 공급하는 명령공급유닛(912), 명령열을 기억한 주기억장치 등이 접속되어 있는 시스템 버스와의 입출력을 제어하는 시스템 버스 인터페이스 등으로 구성되어 있다.
여기서, 화소연산 처리장치(9133)은 레지스터 파일에서 리드된 데이타를 제12도에 도시한 바와 같이 8개의 8비트 데이타의 집합으로서 취급한다. 그리고, 레지스터 파일에서 리드된 2조의 8개의 8비트 데이타에 대해서 식 2에 나타낸 연산을 실행한다.
이와 같은 프로세서에 있어서, 화소연산 처리장치(9133)에 식 2의 연산을 실행시키는 연산명령을 사용해서 식 1을 최소로 하는 (u,v)의 조합을 발견하는 처리는 제13도와 같은 수순으로 실행된다.
즉, 제13도의 스텝 404는 스텝 402, 409, 410의 작용에 의해서 0-15의 각 v에 대해서 반복해서 실행된다. 또, 스텝 407도 마찬가지로 0-15의 각 v에 대해서 실행되지만, 또 각 v의 값마다 스텝 403, 405, 406의 작용에 의해서 1-15 사이의 각 j의 값에 대해서 반복해서 실행된다.
다음에, 식 3에 의해서 정의되는 r(j,u,v)를 사용해서 설명하면 제13도의 스텝 404, 407에서는 상기 반복처리 사이에 0-15 사이의 u의 각각에 대해서 0-15 사이의 j와 0-15 사이의 v의 각 조합(j,u,v)에 대해서 r(j,u,v)을 구한다. 스텝 404는 j=0에 대해서 r(j,u,v)을 구하고, 스텝 407은 1-15 사이의 j에 대해서 r(j,u,v)를 구한다.
[식 3]
또, 이들의 스템에서는 상기 처리 사이에 동일 (u,v) 조합에 대해서 0-15의 각 j 에 대해서 구한 r(j,u,v)의 합을 Ruv로서 구한다. 이것은 v를 고정하고 스텝 404에서 0-15 사이의 u 에 대해 j=0의 경우의 r(O,u,v)를 구하고, 스텝 407에서의 0-15 사이의 u에 대해서 1-15의 각 j에 대해서 r(j,u,v)를 구하고, uv의 조합마다 마련되는 파라미터 Ruv에 가산해서 처리를 0-15 사이의 각 v에 대해서 실행하는 것에 의해 실현된다.
그리고, 구해진 Ruv 중 먼저 구한 Ruv보다 작은 것만을 남기고(스텝 72), 마지막에 남은 Ruv에 대응하는 (u,v)의 조합을 식 1을 최소로 하는 (u,v)로 한다. 여기서, (j,u,v)의 특정의 조합에 대한 R(j,u,v)를 산출하기 위해서는 식 2에 나타나는 연산을 2회, 0-7의 i에 대하면 8-15의 i에 대해서 각각 실행할 필요가 있다. 그 결과, 이 프로세서에 의하면, 식 2에 나타나는 연산과 이 연산의 전처리로서의 데이타의 리드나 연산에 사용하는 데이타의 작성을 팽대한 회수로 실행할 필요가 있다.
물론, 상술한 서치윈도우를 좁게 하는 것에 의해 상기 연산의 회수를 적게 해서 처리를 고속화할 수도 있지만, 이와 같이 하면 압축효율이 저하하거나 동화상의 화질이 저하하게 된다.
그래서, 제11도에 도시한 프로세서를 식 1에 나타난 연산을 1명령으로 실행할 수 있도록 확장하는 것에 의해 처리를 고속화하는 것이 고려된다.
그러나, 이를 위해서는 화소연산 처리장치(9133)의 입력비트폭을 넓힘과 동시에 레지스터 파일의 비트폭도 넓혀서 동시에 보다 많은 화소데이타를 취급할 수 있도록 하지 않으면 안 된다. 그리과, 이와 같이 하면, 레지스터 파일의 규모가 증대해 버린다. 또, 화소연산 처리장치(9133) 이외의 다른 연산처리장치(9131)-(9133)에서는 그 정도의 비트폭의 데이타를 필요로 하지 않으므로 전체로 볼 때 효율적인 방법이라고는 할 수 없다.
또, 레지스터 파일에서 리드할 수 있는 데이타의 개수를 늘리고, 여러개의 화소연산 처리장치에 있어서 병렬로 식 2의 연산을 실행시키도록 하는 것에 의해 처리를 고속화하는 것도 고려된다.
그러나, 이와 같이 한 경우에도 하드웨어 규모가 크게 증대하여 하드웨어의 코스트가 매우 증대하게 된다.
본 발명의 목적은 하드웨어의 코스트를 그다지 증가하지 않고 레지스터 파일의 데이타길이보다 긴 데이타길이의 데이타의 연산처리를 고속으로 실행할 수 있는 프로세서를 제공하는 것이다.
제1도는 본 발명의 실시예에 관한 동화상 처리시스템의 구성을 도시한 블럭도.
제2도는 본 발명의 실시예에 관한 프로세서의 구성을 도시한 블럭도.
제3도는 본 발명의 실시예에 관한 제1, 제2롱레지스터를 도시한 도.
제4도는 본 발명의 실시예에 관한 화소연산기의 구성을 도시한 블럭도.
제5도는 본 발명의 실시예에 관한 롱레지스터 갱신장치의 구성을 도시한 블럭도.
제6도는 본 발명의 실시예에 있어서의 레지스터 파일로의 휘도 데이타의 저장 상태를 도시한 도.
제7도는 본 발명의 실시예에 관한 프로세서의 프로그램예를 도시한 도.
제8도는 종래의 프로세서의 프로그램예를 도시한 도.
제9도는 본 발명의 실시예에 관한 화소연산기의 다른 구성예를 도시한 블럭도.
제10도는 동화상 데이타 압축처리에서 실행되는 프레임간의 근사화소블럭의 탐색범위를 도시한 도.
제11도는 종래의 프로세서의 구성을 도시한 블럭도.
제12도는 종래의 프로세서에 있어서의 레지스터 파일로의 휘도 데이타의 저장 상태를 도시한 도.
제13도는 종래의 프로세서에 있어서의 근사화소 블럭 탐색의 수순을 도시한 흐름도.
상기 목적을 달성하기 위해 본 발명은 병렬로 데이타를 리드할 수 있는 적어도 2개의 레지스터를 포함한 여러개의 비트폭 N의 레지스터를 구비한 레지스터 파일을 갖는 프로세서로서, 명령을 저장하는 명령 레지스터, 비트폭 M(단, MN)의 레지스터인 제1롱레지스터, 상기 제1롱레지스터에서 리드한 데이타의 일부를 상기 레지스터 파일에서 리드된 데이타의 일부로 치환한 M비트폭의 데이타를 상기 명령 레지스터에 저장된 명령에 따라서 생성하는 갱신부, 상기 레지스터 파일의 여러개의 레지스터에서 병렬로 리드된 데이타를 연결한 M비트폭의 데이타 또는 상기 갱신부가 생성한 M비트폭의 데이타의 한쪽의 상기 명령 레지스터에 저장된 명령에 따라서 선택하는 선택부 및 상기 선택부가 선택한 M비트폭의 데이타에 소정의 연산을 상기 명령 레지스터에 저장된 명령에 따라서 실시하는 연산기를 갖고, 상기 제1롱레지스터는 상기 선택부가 선택한 M비트폭의 데이타를 상기 명령 레지스터에 저장된 명령에 따라서 저장하는 것을 특징으로 하는 프로세서를 제공한다.
또, 이와 같은 프로세서로서, 상기 레지스터 파일의 여러개의 레지스터에서 병렬로 리드된 데이타를 연결한 M비트폭의 데이타를 상기 명령 레지스터에 저장된 명령에 따라서 저장하는 M비트폭의 레지스터인 제2롱레지스터를 더 구비하고, 상기 연산기는 상기 선택부가 선택한 M비트폭의 데이타와 상기 제2롱레지스터에서 리드된 M비트폭의 데이타 사이에 상기 소정의 연산을 상기 명령 레지스터에 저장된 명령에 따라서 실시하는 것을 특징으로 하는 프로세서를 제공한다.
본 발명에 관한 프로세서에 의하면, 우선 예를 들면 상기 명령 레지스터에 어느 특정의 명령이 저장된 경우에 상기 선택부는 상기 레지스터 파일의 여러개의 레지스터에서 병렬로 리드된 데이타를 연결한 M비트폭의 데이타를 선택하고, 상기 제1롱레지스터는 상기 선택부가 선택한 M비트폭의 데이타를 저장한다.
그리고, 그 후에 상기 명령 레지스터에 다른 특정의 명령이 저장된 경우에는 상기 갱신부는 상기 제1롱레지스터에서 리드한 데이타의 일부를 상기 레지스터 파일에서 리드된 데이타의 일부로 치환한 M비트폭의 데이타를 생성하고, 상기 선택부는 상기 갱신부가 생성한 M비트폭의 데이타를 선택하고, 상기 제1롱레지스터는 상기 선택부가 선택한 M비트폭의 데이타를 저장하고, 상기 연산기는 상기 선택부가 선택한 M비트폭의 데이타에 소정의 연산을 실시한다. 즉, 상기 다른 특정의 명령이 부여될 때마다 제1 롱레지스터에 저장된 M비트폭의 데이타의 일부를 레지스터 파일에서 리드한 데이타의 일부로 치환하는 것에 의해 갱신하고, 갱신한 M비트의 데이타에 대해서 연산을 실시한다.
따라서, 1명령에 대해서 레지스터 파일이 비트폭보다 비트폭이 큰 데이타의 부분적 갱신과 갱신한 데이타의 연산을 실행할 수 있어 처리가 고속화된다. 또, 레지스터 파일의 비트폭은 연산하는 데이타의 비트폭보다 작아도 되므로, 하드웨어 코스트도 그다지 증가하는 일이 없다.
이하, 본 발명의 1실시예를 설명한다.
제1도에 본 실시예에 관한 프로세서를 적용한 동화상 처리시스템의 구성을 도시한다.
도 중, (91)이 본 실시예에 관한 프로세서이고, 프로세서(91)은 시스템버스(92)를 거쳐서 주기억장치(93)에 접속되어 있다. 또, 마찬가지로, 프로세서(91)은 시스템버스(92)를 거쳐서 2차 기억장치(94)나 통신장치(96)이나 비디오 입출력장치(95) 등이나 그 밖의 I/O장치(97)에 접속되어 있다. 주기억장치(93)에는 프로그램이나 그 밖의 작업데이타가 기억되어 있다. 또, 주기억장치(93)상에는 화상을 나타내는 데이타를 기억하는 프레임 버퍼 등도 구성되어 있다. 비디오 입출력장치(95)는 동화상을 촬영하는 비디오카메라(951)이나 동화상을 표시하는 디스플레이(952) 사이에서 비디오신호의 입출력을 담당한다.
이와 같은 구성의 동화상 처리시스템에 있어서 비디오카메라(951)에서 비디오 입출력장치(95)에 의해서 폐치된 동화상의 데이타는 주기억장치(93)내의 프레임 버퍼로 전송된다. 그리고, 주기억장치(93)내의 동화상데이타는 프로세서(91)에 의해서 처리되고, 그 결과가 2차 기억장치(94)에 저장되거나 통신장치(96)에 의해서 다른 시스템으로 보내진다.
다음에, 본 실시예에 관한 프로세서(91)의 내부구성을 제2도에 도시한다.
도시한 바와 같이 본 실시예에 관한 프로세서(91)은 4개의 리드 포트와 3개의 라이트 포트를 갖는 64비트폭의 레지스터 파일(2), 정수연산 처리장치(101), 다른 명령용 연산처리장치(102), 각각의 연산처리장치에 대응해서 마련한 명령 레지스터(30), (31), 로드 저장 처리장치(100), 명령공급유닛(912) 및 시스템 버스 인터페이스(911)을 구비하고 있다. 또, 제3도에 도시한 바와 같이 레지스터 파일의 비트폭의 2배인 128비트로 이루어지는 제1롱레지스터(12)와 제2롱레지스터(13), 128비트폭의 2개의 입력데이타를 처리하는 화소연산기(11), 제2롱레지스터(13)의 내용을 갱신하는 롱레지스터 갱신장치(14)가 마련되어 있다.
레지스터 파일(2)는 예를 들면 R0-R63의 64개의 64비트폭의 레지스터로 이루어지고, 4개의 리드 포트와 3개의 라이트 포트에 의해 4개의 레지스터로부터의 데이타리드와 3개의 레지스터로의 라이트를 동시에 실행할 수 있다.
그리고, 제1도에 도시한 주기억장치(93)중의 프레임 버퍼에는 동화상 데이타로서 동화상을 구성하는 프레임마다 화소의 휘도를 나타내는 1화소 당 8비트의 휘도데이타의 배열이 저장된다. 동화상이 컬러인 경우에는 동화상 데이타로서 화소의 색성분을 나타내는 예를 들면 1화소당 8비트의 2종류의 색데이타의 배열도 저장된다.
주기억장치(93)에 저장된 휘도 데이타 중 연산에 사용되는 휘도 데이타는 연산에 앞서 로드 저장 처리장치(100)의 제어하에 주기억장치(93)에서 리드되고, 시스템 버스 인터페이스(911)과 셀렉터(16)을 거쳐서 레지스터 파일(2)내에 저장된다. 레지스터 파일(2)의 각 레지스터에는 앞서 제12도에 도시한 바와 같이 8비트의 휘도 데이타가 저장된다.
그리고, 제1도의 주기억장치(93)에 기억된 프로그램의 명령은 명령공급유닛(912)에 의해서 시스템 버스 인터페이스(911)을 통해서 순차 리드 되고, 명령의 종류에 따라서 제2도의 명령 레지스터(30) 또는 명령 레지스터(31)에 저장된다.
명령 레지스터(31)내의 명령에 따라서 레지스터 파일(2)의 리드 포트 중 2개와 다른 명령용 연산처리장치(101), 화소연산기(11), 롱레지스터갱신장치(14), 화소연산 소오스 셀렉터(15), 셀렉터(16), 레지스터 파일(2)의 라이트 포트가 제어된다.
마찬가지로, 명령 레지스터(30)내의 명령정보에 따라서 레지스터 파일(2)의 리드 포트중 2개와 정수연산 처리장치(101), 로드 저장 처리장치(100), 셀렉터(16), 레지스터 파일(2)의 라이트 포트가 제어된다. 상술한 휘도 데이타의 레지스터 파일(2)로의 주기억장치(93)로부터의 로드도 이 명령 레지스터(30)에 저장된 명령에 따라서 로드 저장 처리장치(100)에 의해서 실행되게 된다.
여기서, 명령 레지스터(30)에 저장된 1명령의 실행과 명령 레지스터(31)에 저장된 1명령의 실행은 병렬적으로 동시에 실행할 수 있다. 또, 이들 명령의 실행에 따르는 레지스터 파일(2)의 리드 및 라이트를 병렬적으로 동시에 실행할 수 있다.
그리고, 이와 같은 구성에 있어서, 본 실시예에 관한 프로세서는 로드 명령이나 저장명령이나 가산명령, 다음의 3개의 특징적인 명령을 서포트한다. 즉, 롱레지스터 저장명령, 롱레지스터 저장화소 연산명령, 롱레지스터 갱신화소 연산명령의 3개의 명령을 서포트한다.
이들 명령은 명령공급유닛(912)에 의해서 명령 레지스터(31)에 저장된다.
명령 레지스터(31)내에 롱레지스터 저장명령이 저장되면, 명령 레지스터(31)의 정보에 따라서 레지스터 파일(2)내의 2개의 레지스터가 선택되고, 이들 2개의 레지스터에 저장된 64비트폭의 2개의 데이타가 병렬로 2개이ㅡ 리드 포트로 출력된다. 그리고, 출력된 2개의 데이타를 연결한 128비트폭의 데이타가 제1 롱레지스터(12)내에 저장된다.
그리고, 이와 같은 구성에 있어서, 본 실시예에 관한 프로세서는 로드 명령이나 저장 명령이나 가산명령, 다음의 3개의 특징적인 멍령을 서포트한다. 즉, 롱레지스터 저장명령, 롱레지스터 저장화소 연산명령, 롱레지스터 갱신화소 연산면령의 3개의 명령을 서포트한다.
이들 명령은 명령 공급유닛(912)에 의해서 명령 레지스터(31)에 저장된다.
명령 레지스터(31)내에 롱레지스터 저장명령이 저장되면, 명령 레지스터(31)의 정보에 따라서 레지스터 파일(2)내의 2개의 레지스터가 선택되고, 이들 2개의 레지스터에 저장된 64비트의 폭의 2개의 데이타가 병렬로 된 2개의 리드 포트로 출력된다. 그리고, 출력된 2개의 데이타를 연결한 128비트폭의 데이타가 제1롱레지스터(12)내에 저장된다.
다음에, 명령 레지스터(31)내에 롱레지스터 저장화소 연산명령이 저장되면, 롱레지스터 저장명령의 경우와 마찬가지로 명령 레지스터(31)내의 명령에 따라서 레지스터 파일(2)내의 2개의 레지스터가 선택되고, 64비트폭의 2개의 데이타가 리드 포트로 출력된다. 그리고, 출력된 2개의 데이타를 연결한 128비트폭의 데이타가 화소연산 소오스 셀렉터(15)로 전달된다.
화소연산 소오스 셀렉터(15)는 연결된 128비트폭의 데이타를 선택하고 출력한다. 화소연산 소오스 셀렉터(15)에서 출력된 데이타는 제2롱레지스터(13)와 화소연산기(11)로 전달된다. 또, 이때, 제1롱레지스터(12)에 저장되어 있는 128비트폭의 데이타도 화소연산기(11)로 전달된다.
제2롱레지스터(13)로 전달된 128비트폭의 데이타는 제2롱레지스터(13)에 저장된다. 한편, 화소연산기(11)는 제1롱레지스터(12)에서 전달된 128비트폭의 데이타와 화소연산 소오스 셀렉터(15)에서 전달된 128비트폭의 데이타 사이에서 화소연산을 실행한다. 그 화소연산의 결과는 명령 레지스터(31)의 명령으로 지정된 레지스터 파일(2)의 레지스터에 저장된다.
여기서, 화소연산기(11)의 내부구성을 제4도에 도시한다.
도시하는 바와 같이 이 화소연산기(11)에서는 제1롱레지스터(12)와 화소연산 소오스 셀렉터(15)에서 입력하는 2개의 128비트의 데이타인 제1화소연산 소오스 데이타(501) 및 제2화소연산 소오스 데이타(502)를 각각 화소연산 소오스 요소 데이타 X0(5010)와 같이 8비트폭의 수치데이타 16개의 배열로 간주하고, 식 4에 나타나는 수식을 연산하는 것이다.
[식 4]
단, 차연산기(51)는 입력하는 2개의 화소연산 소오스 요소 데이타의 차의 절대값을 계산하는 연산기이고, 다입력가산기(52)는 각각의 차연산기(51)의 결과의 총합을 계산하는 계산기이다. 총합은 64비트폭의 데이타로서 출력된다. 본 실시예에서는 65비트째로의 캐리업은 무시하고 있다.
다음에 명령 레지스터(31)내에 롱레지스터 갱신 화소연산명령이 저장되면, 명령 레지스터(31)의 명령정보에 따라서 레지스터 파일(2)내의 1개의 레지스터가 선택되고, 64비트폭의 데이타가 1개의 리드 포트로 출력되고, 롱레지스터 갱신장치(14)로 전달된다. 또, 명령 레지스터(31)의 명령에 포함되는 위치정보와 시프트정보가 롱레지스터 갱신장치(14)로 전달된다. 또, 이것을 병행해서 롱레지스터 갱신장치(14)에는 제2롱레지스터(13)의 내용도 전달된다.
여기서, 롱레지스터 갱신장치(14)의 내부구성을 제5도에 도시한다.
도시하는 바와 같이 롱레지스터 갱신장치(14)에는 명령 레지스터(31)의 명령에 따라서 레지스터 파일(2) 중, 1개의 레지스터에서 리드된 64비트폭의 데이타가 제1소오스 데이타선(210)을 통해서 연결원 데이타(601)로서 전달된다. 또, 제2소오스 데이타선(220)을 통해서 명령 레지스터(31)내의 명령에 포함되어 있는 위치정보(604)와 시프트정보(605)가 전달된다.
연결원 데이타(601)는 연결원 데이타 시프터(61)에 의해서 위치정보(604)에 따라서 좌측으로 시프트된다. 위치정보(604)의 수치를 n으로 한 경우의 시프트량은 8n비트이다. 이것에 의해서 연결된 데이타(601)는 n요소 데이타(n화소의 휘도 데이타)만큼 좌측으로 시프트되고, 시프트후에 연결원 데이타 시프터(61)에 남은 64비트폭의 데이타인 연결원 데이타 시프터 출력신호(610)로서 출력된다.
연결원 데이타 시프터 출력신호(610)의 64비트폭의 데이타와 제2롱레지스터 출력 데이타선(130)을 통해서 제2롱레지스터(13)에서 입력한 126비트폭의 데이타인 연결지 데이타(602)는 연결되고, 연결 시프터(62)로 전달된다. 연결시프터(62)는 연결된 192비트폭의 데이타를 시프트량 정보(605)에 따라서 좌측으로 시프트하고, 롱레지스터 갱신 데이타선(140)상에 좌측 128비트의 데이타를 시프트결과로서 출력한다. 시프트량 정보(605)의 수치를 n으로 한 경우의 시프트량은 8n비트이다.
이와 같은 롱레지스터 갱신장치(14)에 의해서 제2롱레지스터(13)의 내용을 임의의 화소분만큼 좌측으로 시프트하여 우측에 빈 화소만큼을 제1소오스 데이타선(210)상의 임의의 인접한 화소에서 충전한 데이타를 생선하는 것이 가능하게 된다.
그리고, 롱레지스터 갱신장치(14)에서 출력된 128비트폭의 데이타(140)(연결시프터(62)출력)는 롱레지스터 갱신데이타선(140)을 통해서 화소연산 소오스 셀렉터(15)로 전달된다. 화소연산 소오스 셀레터(15)는 롱레지스터 갱신데이타선(140)상의 데이타를 선택하고 출력한다.
화소연산 소오스 셀렉터(15)로부터의 출력데이타는 제2롱레지스터(13)과 화소연산기(11)로 전달된다. 또, 이것과 병행해서 제1롱레지스터(12)에 저장되어 있는 데이타도 화소연산기(11)로 전달된다.
제2롱레지스터(13)에 전달된 데이타는 제2롱레지스터(13)에 저장된다.
한편, 화소연산기(11)는 상술한 바와 같이 제1롱레지스터(12)에서 전달된 데이타와 화소연산 소오스 셀렉터(15)에서 전달된 데이타 사이에서 연산을 실행한다. 그 화소연산의 결과는 명령 레지스터(31)의 명령으로 지정된 레지스터 파일(2)의 레지스터에 저장된다.
이상, 본 실시예에 관한 프로세서(91)이 서포트하는 3개의 명령이 어떻게 실행되는지를 설명하였다.
그리고, 다음에 이와 같은 3개의 명령을 사용해서 앞서 제13도에 도시한 처리에 있어서 스텝 404나 스텝 407에서 실행되는 특정의 (j,v)의 조합에 대해서 식 3의 r(j,u,v)의 u=0~u=15까지의 값을 구하는 처리가 어떻게 실현되는지를 설명한다.
지금, 특정의 (j,v)의 조합에 대해서 식 3의 r(j,u,v)의 u=0~u=15까지의 값을 구하는 처리라고 하는 것은 제6도에 도시한 서치윈도우의 특정행에서 순차 좌측끝으로 되는 화소를 1개씩 우측으로 어긋나게 하면서 선택한 16화소의 조16개의 각각과 커런트 프레임의 커런트 매크로 블럭의 특정행의 16화소의 휘도 데이타의 차를 구하고, 그 총합을 구하는 처리에 상당한다.
우선, 이 연산처리에 앞서 상술한 바와 같이 레지스터 파일(2)의 레지스터 R20, R21에 커런트 프레임의 커런트 매크로 블럭의 특정행의 16화소의 휘도 데이타를 저장한다. 저장된 휘도 데이타와 화소의 관계는 제6도에 도시한 바와 같고, 좌측의 8화소를 R20에, 우측의 8화소를 R21에 저장한다. 또, 마찬가지로 레지스터 파일(2)의 레지스터 R30-R33에는 서치윈도우의 특정행의 31화소의 휘도 데이타를 저장한다. 저장되는 휘도 데이타와 화소의 관계는 제6도에 도시한 바와 같고, 좌측끝의 것부터 8화소씩 순번으로 R30, R31…, R32의 순으로 저장된다. 또한, 서치윈도우의 가로크기는 31화소이므로, R32의 우측끝에 8비트는 연산에 사용되지 않는 화소의 휘도 데이타가 저장되거나 또는 휘도 데이타가 저장되게 된다.
다음에, 롱레지스터 저장명령, 롱레지스터 저장화소 연산명령, 롱레지스터 갱신화소 연산명령 및 이 처리에서 사용하는 가산명령의 포맷을 표 1에 나타내도록 결정한다.
단, 표 중의 LR1은 제1롱레지스터(12)를, LR2는 제2롱레지스터(13)을 나타내고, 화살표는 우변의 연산결과를 좌변의 레지스터에 저장하는 것을 나타낸다. 또, 화살표의 우변에 있는 Rn 또는 LRn은 레지스터 Rn 또는 LRn에 저장된 데이타를 나타내고, Rni 또는 LRni는 레지스터 Rn 또는 LRni에 저장된 데이타의 제(8×i)비트에서 제(8×i+7)비트의 8비트의 휘도 데이타를 나타내는 것으로 한다. 또, //는 //의 양측의 휘도 데이타 또는 휘도 데이타열을 연결하는 것을 나타낸다.
또, 롱레지스터 갱신화소명령의 제3오퍼랜드의 #1이 상술한 위치정보(604)이고, 제4오퍼랜드의 #m이 상술한 시프트량정보(605)이다.
이와 같이 명령의 포맷을 정한 경우, 특정의 (j,v)의 조합에 대해서 식 3의 r(j,u,v)의 u=0~u=15까지의 값을 구하는 처리는 제7도에 도시한 프로그램에 의해서 실현할 수 있다.
단, 롱레지스터 저장화소 연산명령, 롱레지스터 갱신화소 연산명령 화소연산기(11)의 처리는 파이프라인처리가 가능하고, 그 레이턴시는 3스텝으로 하였다. 또, 가산명령과 롱레지스터 저장명령의 레이턴시는 1스텝으로 하였다. 또한, 제4도의 각 차연산기(51)와 다입력 가산기(52) 사이에 래치를 삽입하는 것에 의해 롱레지스터 저장화소 연산명령, 롱레지스터 갱신화소 연산명령 화소연산기(11)의 처리의 레이턴시는 3으로 된다.
또, 슈퍼스컬러 또는 VLIW아키텍쳐에 의해서 명령 레지스터(30)에 저장된 정수연산 처리장치(101)에서 실행되어 가산명령과 상술한 바와 같이 명령 레지스터(31)에 저장되어 실행되는 다른 명령은 동시에 실행할 수 있는 것으로서 동시실행이 가능한 명령을 1행에 기술하였다.
제7도에 도시한 바와 같이 이 코팅예에서는 20스텝에서 레지스터 파일의 레지스터 파일 R0~R15에 특정의 (j,v)의 조합에 대해서 구한 식 3의 r(j,u,v)의 u=0~u=15까지의 값이 저장되게 된다.
이 프로그램에서는 우측열에 있어서 제1행째에서 롱레지스터 저장명령 idLR에 의해서 제1롱레지스터(12)에 레지스터 파일(2)의 레지스터 R20, R21에 저장되어 있는 커런트 프레임의 커런트 매크로 블럭의 특정행의 16화소의 휘도 데이타를 저장하고, 제2행째에서 롱레지스터 저장 화소 연산명령 idLR dist에 의해서 제1롱레지스터(12)에 저장된 커런트 매크로 블럭의 j행째의 16화소의 휘도 데이타와 레지스터 R30, R31에 저장된 서치윈도우의 특정행의 좌측끝의 16화소의 휘도 데이타의 차의 합을 구함과 동시에 이 서치윈도우의 특정행의 좌측끝의 16화소의 휘도 데이타를 제2롱레지스터(13)에 저장하고 있다. 그리고, 제3행째~제17행째까지에서 롱레지스터 갱신 화소연산명령 updLRdist에 의해서 제2롱레지스터(13)에 저장되어 있는 휘도 데이타를 8비트 시프트해서 제2롱레지스터(13) 중의 가장 좌측 화소의 휘도 데이타를 폐기하고, 대신에 제2롱레지스터(13) 중의 가장 우측 화소의 휘도 데이타를 레지스터 파일에서 리드하고 연결한 데이타를 작성하고 이것과 제2행째에서 제1롱레지스터(123)에 저장된 커런트 매크로 클럭의 j행째의 16화소의 휘도 데이타와의 차의 합을 구하고 있다.
또, 좌측열에서는 가산명령 add에 의해서 제5행째~제29행째에서 우측열의 제2행째~제17행째에서 구한 합을 순차 가산하고 있다. 화소연산기 처리의 레이턴시는 3스텝이므로, add명령은 비로서 상기 차의 합을 구하는 명령이 나온 제2행째의 3스텝후의 제5행째부터 개시되고 있다. 여기서, 참고로 상술한 종래의 프로세서(제11도 참조)에 의해서 특정의 (j,v)의 조합에 대해서 식 3의 r(j,u,v)의 u=0~u=15까지의 값을 구하는 처리를 실현하는 프로그램을 제8도에 도시한다.
상기한 표 1에 나타낸 바와 같이, 도 중의 명령dist는 식 2에 나타낸 연산을 실행하는 화소연산명령, allign은 레지스터 파일의 2개의 레지스터에서 리드한 2개의 64비트폭의 데이타를 연결하고, 좌측으로 m비트 시프트하여 시프트후에 좌측에서 64비트를 데이타로서 추출하는 화소배치명령이다.
단, 화소연산명령dist는 파이프라인처리가 가능하고, 그 레이턴시는 2스텝으로 하였다. 가산명령과 롱레지스터 저장명령의 레이턴시는 1스텝으로 하였다. 또, 슈퍼스컬러 또는 VLIW아키텍쳐에 의해서 다른 연산장치에서 실행되는 다른 종류의 명령은 동시에 실행할 수 있는 것으로서 동시실행이 가능한 명령을 1행에 기술하였다.
이 프로그램에서는 화소연산명령dist로 커런트 프레임의 커런트 매크로 블럭의 특정행의 16화소중의 8화소의 휘도 데이타와 서치윈도우의 특정행의 8화소의 휘도 데이타 사이의 차의 합을 구하고, 가산명령add로 구한 합을 순차 가산하고, 화소배치명령allign으로 다음회의 연산에 사용하는 서치윈도우의 특정행의 8화소를 우측으로 1화소 갱신하는 처리를 서치윈도우의 특정행의 가장 좌측의 8화소로부터 16회 반복해서 실행한다.
또, 이 처리와 교대로 화소연산명령dist로 커런트 프레임의 커런트 매크로 블럭의 특정행의 16화소 중의 나머지 8화소의 휘도 데이타와 서치윈도우의 특정행의 8화소의 휘도 데이타 사이의 차의 합을 구하고, 가산명령add로 구한 합을 순차 가산하고, 화소배치명령 align으로 다음 회의 연산에 사용하는 서치윈도우의 특정행의 8화소를 좌측으로 1화소 갱신하는 처리를 서치윈도우의 특정행의 가장 우측의 8화소로부터 16회 반복해서 실행한다.
단, 이 프로그램은 상술한 ultraSPARC의 것과는 달리 대략 알 수 있을 정도의 간략화 한 것이다.
제8도에 도시한 바와 같이 이와 같은 명령에 의해서 상기 처리를 실현하는 경우에는 49스텝을 필요로 하고 있다.
제7도와 제8도의 경우를 비교하면, 본 실시예에 관한 프로세서가 이 처리를 약 2.5배 고속으로 실행할 수 있게 된다. 이것은 본 실시예에 관한 프로세서의 구성에 의하면 화소연산기(11)에 있어서 16화소의 휘도 데이타 사이의 연산을 한번에 실행할 수 있는 것이나 연산에 사용하는 서치윈도우의 16화소의 휘도 이타의 갱신, 갱신한 데이타, 커런트 매크로 블럭의 16화소 사이의 연산을 1명령으로 실현할 수 있는 것 등에 의한 것이다.
또, 본 실시예에서 사용한 제1롱레지스터(12), 제2롱레지스터(13), 롱레지스터 갱신장치(14), 화소연산 소오스 셀렉터(15)에 의해서 증가하는 하드웨어량은 레지스터 파일의 리드 포트수를 늘리거나 레지스터 파일의 비트폭을 넓히는 경우의 하드웨어 증가량보다 적어도 된다.
또한, 이상의 실시예에서는 화소연산기(11)를 식 4에 나타낸 연산을 실행하는 것으로 했지만, 화소연산기(11)를 다른 연산을 실행하는 것으로 해도 좋고, 또 화소의 연산이 아닌 일반 데이타의 연산을 실행하는 것으로 해도 좋다.
예를 들면, 화소연산기(11)를 식 5에 나타내는 수식을 연산하는 것으로 해도 좋다.
[식 5]
이 경우의 화소연산기(11)의 구성을 제9도에 도시한다. 도시하는 바와 같이 이 구성은 앞서 제4도에 도시한 구성에 있어서의 차연산기(51)를 승산기(53)로 치환한 구성을 갖고 있다. 승산기(53)은 2개의 요소 데이타의 곱을 계산하는 연산기이다.
이와 같은 화소연산기(11)는 식 6에서 나타내는 바와 같은 시계열 데이타의 필터 연산 등에 응용할 수 있다.
[식 6]
이와 같은 응용에 의하면, 탭수가 많고, 따라서 양호한 응답특성을 얻을 수 있고 또한 처리속도가 고속인 필터를 실현할 수 있다.
본 발명에 의하면 하드웨어의 코스트를 그다지 증가하는 일 없이 레지스터 파일의 데이타길이보다 긴 데이타길이의 데이타간의 연산처리를 고속으로 실행할 수 있는 프로그램을 제공할 수 있다.

Claims (7)

  1. 병렬로 데이타를 리드할 수 있는 적어도 2개의 레지스터를 포함한 여러개의 비트폭 N의 레지스터를 구비한 레지스터 파일을 갖는 프로세서로서, 명령을 저장하는 명령 레지스터, 비트폭 M(단, MN)의 레지스터인 제1롱레지스터, 상기 제1롱레지스터에서 리드한 데이타의 일부를 상기 레지스터 파일에서 리드된 데이타의 일부로 치환한 M비트폭의 데이타를 상기 명령 레지스터에 저장된 명령에 따라서 생성하는 갱신부, 상기 레지스터 파일의 여러개의 레지스터에서 병렬로 리드된 데이타를 연결한 M비트폭의 데이타 또는 상기 갱신부가 생성한 M비트폭의 데이타의 한쪽의 상기 명령 레지스터에 저장된 명령에 따라서 선택하는 선택부 및 상기 선택부가 선택한 M비트폭의 데이타에 소정의 연산을 상기 명령 레지스터에 저장된 명령에 따라서 실시하는 연산기를 갖고, 상기 제1 롱레지스터는 상기 선택부가 선택한 M비트폭의 데이타를 상기 명령 레지스터에 저장된 명령에 따라서 저장하는 것을 특징으로 하는 프로세서.
  2. 제1항에 있어서, 상기 레지스트 파일이 여러개의 레지스터에서 병렬로 리드된 데이타를 연결한 M비트폭의 데이타를 상기 명령 레지스터에 저장된 명령에 따라서 저장하는 M비트폭의 레지스터인 제2롱레지스터를 더 구비하고, 상기 연산기는 상기 선택부가 선택한 M비트폭의 데이타와 상기 제2롱레지스터에서 리드된 M비트폭의 데이타 사이에 상기 소정의 연산을 상기 명령 레지스터에 저장된 명령에 따라서 실시하는 것을 특징으로 하는 프로세서.
  3. 제2항에 있어서, 상기 명령 레지스터에 제1종의 명령이 저장된 경우에 상기 제2롱레지스터는 상기 레지스터 파일의 여러개의 레지스터에서 병렬로 리드된 데이타를 연결한 M비트폭의 데이타를 저장하고, 상기 명령 레지스터에 제2종의 명령이 저장된 경우에 상기 선택부는 상기 레지스터 파일의 여러개의 레지스터에서 병렬로 리드된 데이타를 연결한 M비트폭의 데이타를 선택하고, 상기 제1롱레지스터는 상기 선택부가 선택한 M비트폭의 데이타를 저장하고, 상기 연산기는 상기 제2롱레지스터에서 리드된 M비트폭의 데이타와 상기 선택부가 선택한 M비트폭의 데이타 사이에 소정의 연산을 실시하고, 상기 명령 레지스터에 제3종의 명령이 저장된 경우에 상기 갱신부는 상기 제1롱레지스터에서 리드한 데이타의 일부를 상기 레지스터 파일에서 리드된 데이타의 일부로 치환한 M비트폭의 데이타를 생성하고, 상기 선택부는 상기 갱신부가 생성한 M비트폭의 데이타를 선택하고, 상기 제1롱레지스터는 상기 선택부가 선택한 M비트폭의 데이타를 저장하고, 상기 연산기는 상기 제2롱레지스터에서 리드된 M비트폭의 데이타와 상기 선택부가 선택한 M비트폭의 데이타 사이에 소정의 연산을 실시하는 것을 특징으로 하는 프로세서.
  4. 제1항에 있어서, 상기 갱신부는 상기 레지스터 파일에서 리드된 데이타를 시프트하는 제1시프터 및 상기 제1시프터에서 시프트된 데이타와 상기 제1롱레지스터에서 리드한 데이타를 연결한 데이타를 시프트하고, 시프트후의 데이타 중의 소정의 범위에서 M비트폭의 데이타를 출력하는 제2시프터를 구비하고 있는 것을 특징으로 하는 프로세서.
  5. 제2항에 있어서, 상기 연산기가 실시하는 연산은 상기 선택부가 선택한 M비트폭의 데이타를 여러개로 분할한 여러개의 제1요소데이타의 각각에 대해서 상기 제1요소데이타 및 상기 제2롱레지스터에서 리드된 데이타를 여러개로 분할한 여러개의 제2요소데이타 중의 상기 M비트폭의 데이타중의 위치에 관해서 상기 제1요소데이타와 대응하는 제2요소데이타의 차의 절대값을 구하고, 각 제1요소데이타에 대해서 구한 차의 절대값의 총합을 구하는 연산인 것을 특징으로 하는 프로세서.
  6. 제2항에 있어서, 상기 연산기가 실시하는 연산은 상기 선택부가 선택한 M비트폭의 데이타를 여러개로 분할한 여러개의 제1요소데이타의 각각에 대해서 상기 제1요소데이타 및 상기 제2롱레지스터에서 리드된 데이타를 여러개로 분할한 여러개의 제2요소데이타 중의 상기 M비트폭의 데이타중의 위치에 관해서 상기 제1요소데이타와 대응하는 제2요소데이타의 곱을 구하고, 각 제1요소데이타에 대해서 구한 곱의 총합을 구하는 연산인 것을 특징으로 하는 프로세서.
  7. 여러개의 명령을 포함하는 프로그램과 데이타를 기억한 기억수단 및 상기 기억수단에 기억된 프로그램 중의 명령을 순간 페치해서 처리하는 프로세서를 구비한 데이타 처리장치로서, 상기 프로세서는 상기 기억수단에서 페치한 명령을 저장하는 명령 레지스터, 병렬로 데이타를 리드할 수 있는 적어도 2개의 레지스터를 포함한 여러개의 N비트폭의 레지스터를 구비한 레지스터 파일, 상기 레지스터 파일의 각 레지스터와 상기 기억수단 사이의 데이타의 전송을 상기 명령 레지스터에 저장된 명령에 따라서 제어하는 수단, 상기 기억수단에서 페치한 명령을 저장하는 명령 레지스터, M비트폭의 레지스터인 제1롱레지스터, 상기 제1롱레지스터에서 리드한 데이타의 일부를 상기 레지스터 파일에서 리드된 데이타의 일부로 치환한 M비트폭의 데이타를 상기 명령 레지스터에 저장된 명령에 따라서 생성하는 갱신부, 상기 레지스터 파일의 여러개의 레지스터에서 병렬로 리드된 데이타를 연결한 M비트폭의 데이타 또는 상기 갱신부가 생성한 M비트폭의 데이타의 한쪽의 상기 명령 레지스터에 저장된 명령에 따라서 선택하는 선택부 및 상기 선택부가 선택한 M비트폭의 데이타에 소정의 연산을 상기 명령 레지스터에 저장된 명령에 따라서 실시하고, 연산의 결과를 상기 레지스터 파일의 레지스터에 라이트하는 연산기를 갖고, 상기 제1롱레지스터는 상기 선택부가 선택한 M비트폭의 데이타를 상기 명령 레지스터에 저장된 명령에 따라서 저장하는 것을 특징으로 하는 데이타 처리장치.
KR1019960030919A 1995-08-03 1996-07-29 프로세서 및 데이타처리장치 KR100213604B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP19860995A JP3526976B2 (ja) 1995-08-03 1995-08-03 プロセッサおよびデータ処理装置
JP95-198609 1995-08-03

Publications (2)

Publication Number Publication Date
KR970014366A KR970014366A (ko) 1997-03-29
KR100213604B1 true KR100213604B1 (ko) 1999-08-02

Family

ID=16394045

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960030919A KR100213604B1 (ko) 1995-08-03 1996-07-29 프로세서 및 데이타처리장치

Country Status (4)

Country Link
US (1) US5870618A (ko)
JP (1) JP3526976B2 (ko)
KR (1) KR100213604B1 (ko)
TW (1) TW297878B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100706289B1 (ko) * 2005-08-19 2007-04-13 가부시키가이샤 도쿄 마루이 완구총의 리코일 쇼크 장치

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996029646A1 (fr) * 1995-03-17 1996-09-26 Hitachi, Ltd. Processeur
US6421698B1 (en) 1998-11-04 2002-07-16 Teleman Multimedia, Inc. Multipurpose processor for motion estimation, pixel processing, and general processing
JP2001202243A (ja) * 1999-04-30 2001-07-27 Hitachi Ltd データ処理装置
WO2002101538A1 (en) * 2001-06-13 2002-12-19 Teleman Multimedia, Inc. Multipupose processor for motion estimation, pixel processing, and general processing
GB2409059B (en) * 2003-12-09 2006-09-27 Advanced Risc Mach Ltd A data processing apparatus and method for moving data between registers and memory
GB2411973B (en) * 2003-12-09 2006-09-27 Advanced Risc Mach Ltd Constant generation in SMD processing
GB2409062C (en) * 2003-12-09 2007-12-11 Advanced Risc Mach Ltd Aliasing data processing registers
GB2409061B (en) * 2003-12-09 2006-09-13 Advanced Risc Mach Ltd Table lookup operation within a data processing system
GB2409067B (en) * 2003-12-09 2006-12-13 Advanced Risc Mach Ltd Endianess compensation within a SIMD data processing system
GB2409065B (en) * 2003-12-09 2006-10-25 Advanced Risc Mach Ltd Multiplexing operations in SIMD processing
GB2411975B (en) * 2003-12-09 2006-10-04 Advanced Risc Mach Ltd Data processing apparatus and method for performing arithmetic operations in SIMD data processing
GB2411976B (en) * 2003-12-09 2006-07-19 Advanced Risc Mach Ltd A data processing apparatus and method for moving data between registers and memory
GB2409064B (en) * 2003-12-09 2006-09-13 Advanced Risc Mach Ltd A data processing apparatus and method for performing in parallel a data processing operation on data elements
GB2409060B (en) * 2003-12-09 2006-08-09 Advanced Risc Mach Ltd Moving data between registers of different register data stores
GB2409066B (en) * 2003-12-09 2006-09-27 Advanced Risc Mach Ltd A data processing apparatus and method for moving data between registers and memory
GB2411974C (en) * 2003-12-09 2009-09-23 Advanced Risc Mach Ltd Data shift operations
GB2409063B (en) * 2003-12-09 2006-07-12 Advanced Risc Mach Ltd Vector by scalar operations
GB2409068A (en) * 2003-12-09 2005-06-15 Advanced Risc Mach Ltd Data element size control within parallel lanes of processing
GB2410097B (en) * 2004-01-13 2006-11-01 Advanced Risc Mach Ltd A data processing apparatus and method for performing data processing operations on floating point data elements
GB2411978B (en) * 2004-03-10 2007-04-04 Advanced Risc Mach Ltd Inserting bits within a data word
US9557994B2 (en) 2004-07-13 2017-01-31 Arm Limited Data processing apparatus and method for performing N-way interleaving and de-interleaving operations where N is an odd plural number
US8417922B2 (en) * 2006-08-02 2013-04-09 Qualcomm Incorporated Method and system to combine multiple register units within a microprocessor

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2617974B2 (ja) * 1988-03-08 1997-06-11 富士通株式会社 データ処理装置
US5437043A (en) * 1991-11-20 1995-07-25 Hitachi, Ltd. Information processing apparatus having a register file used interchangeably both as scalar registers of register windows and as vector registers
US5513363A (en) * 1994-08-22 1996-04-30 Hewlett-Packard Company Scalable register file organization for a computer architecture having multiple functional units or a large register file

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100706289B1 (ko) * 2005-08-19 2007-04-13 가부시키가이샤 도쿄 마루이 완구총의 리코일 쇼크 장치

Also Published As

Publication number Publication date
KR970014366A (ko) 1997-03-29
JP3526976B2 (ja) 2004-05-17
TW297878B (ko) 1997-02-11
US5870618A (en) 1999-02-09
JPH0944356A (ja) 1997-02-14

Similar Documents

Publication Publication Date Title
KR100213604B1 (ko) 프로세서 및 데이타처리장치
JP3584053B2 (ja) 複合オペランド内の多ビット要素を選択するためのマスク
JP3023685B2 (ja) 画像表示データ処理装置
US7389317B2 (en) Long instruction word controlling plural independent processor operations
US6173394B1 (en) Instruction having bit field designating status bits protected from modification corresponding to arithmetic logic unit result
US5157388A (en) Method and apparatus for graphics data interpolation
EP0752643B1 (en) Expansion of data by replication of a data
US9984432B2 (en) Processor, system, and method for efficient, high-throughput processing of two-dimensional, interrelated data sets
EP0656582A1 (en) Parallel adding and averaging circuit and method
JP3442192B2 (ja) データ駆動型情報処理装置
JPH05143328A (ja) 情報処理装置におけるレジスタの読出制御方式
US5712999A (en) Address generator employing selective merge of two independent addresses
JP5279046B2 (ja) データ処理装置
EP1462931B1 (en) Method for referring to address of vector data and vector processor
US6173305B1 (en) Division by iteration employing subtraction and conditional source selection of a prior difference or a left shifted remainder
JPS6160133A (ja) アドレス算出装置
Kolte et al. A fast median filter using AltiVec
US6332188B1 (en) Digital signal processor with bit FIFO
US8135229B1 (en) Image processing method and device
JPH02278382A (ja) 図形処理装置用の演算論理機構
US4924377A (en) Pipelined instruction processor capable of reading dependent operands in parallel
JP2018173956A (ja) 半導体装置
KR100254132B1 (ko) 비교연산장치 및 그래픽 연산시스템
JPH1153189A (ja) 演算装置、演算方法及びコンピュータ読み取り可能な記録媒体
EP1462932A2 (en) Vector processor and register addressing method

Legal Events

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

Payment date: 20030502

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee