KR101412392B1 - 다중-모드 액세스가능 저장 시설 - Google Patents
다중-모드 액세스가능 저장 시설 Download PDFInfo
- Publication number
- KR101412392B1 KR101412392B1 KR1020117021876A KR20117021876A KR101412392B1 KR 101412392 B1 KR101412392 B1 KR 101412392B1 KR 1020117021876 A KR1020117021876 A KR 1020117021876A KR 20117021876 A KR20117021876 A KR 20117021876A KR 101412392 B1 KR101412392 B1 KR 101412392B1
- Authority
- KR
- South Korea
- Prior art keywords
- address
- data
- row
- block
- bank
- Prior art date
Links
- 239000013598 vector Substances 0.000 claims abstract description 25
- 230000006870 function Effects 0.000 claims abstract description 19
- 238000000034 method Methods 0.000 claims description 11
- 238000013507 mapping Methods 0.000 claims description 10
- 230000001419 dependent effect Effects 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 8
- 241000023320 Luma <angiosperm> Species 0.000 description 4
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 125000004122 cyclic group Chemical group 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000000399 orthopedic effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0207—Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/04—Arrangements for selecting an address in a digital store using a sequential addressing device, e.g. shift register, counter
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/60—Rotation of whole images or parts thereof
- G06T3/606—Rotation of whole images or parts thereof by memory addressing or mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/345—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/355—Indexed addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Mathematical Physics (AREA)
- Image Input (AREA)
- Image Processing (AREA)
Abstract
블록 액세스 모드에서의 블록 액세스 및 행 액세스 모드에서의 행 액세스를 가능하게 하는 다중-모드 액세스가능 저장 시설(10)이 기술되어 있다. 이 시설은 - 각각이 각자의 뱅크 인덱스(0,,F)를 갖는 복수의 메모리 뱅크(20.0, ..., 20.F)를 포함하는 메모리 유닛(20), - 상기 메모리 뱅크 각각에 대해 입력 주소 및 시프트 파라미터의 함수로서 회전된 뱅크 주소를 발생하는 주소 발생기(30), - 입력 벡터를 회전시켜 회전된 입력 벡터의 벡터 요소를 메모리 유닛의 각자의 뱅크에 제공하는 입력 벡터 데이터 회전기(40), 및 - 메모리 유닛의 각자의 뱅크로부터 검색된 벡터 요소를 포함하는 벡터를 역회전시켜 회전된 출력 벡터를 제공하는 출력 벡터 회전기(50)를 포함한다.
Description
본 발명은 다중-모드 액세스가능 저장 시설에 관한 것이다. 본 발명은 또한 한 행의 데이터 요소들을 저장하는 방법에 관한 것이다. 본 발명은 또한 한 블록의 데이터 요소들을 검색하는 방법에 관한 것이다.
많은 영상 처리 알고리즘은 임의의 영상 데이터 블록이 고속으로 이용가능할 것을 필요로 한다. 그에 따라, 이들 알고리즘에서, 블록별 액세스를 갖는 저장 시설이 필수적이다. 한편, 이들 알고리즘에 대한 입력 데이터는 보통 라스터 스캔 방식으로 선형적으로 제공된다. 마찬가지로, 처리된 데이터를 다시 라스터 스캔 방식으로 제공하는 것이 필요할 수 있다. 또한, 실시간 사실적 장면 렌더링을 가능하게 하도록 라스터 크기, 및 처리 속도와 관련한 사용자 요구사항이 급속히 많아지고 있다는 것에 주목해야 한다.
WO2006/120620는 블록 액세스가능 버퍼 메모리를 갖는 영상 처리 회로를 기술하고 있다. 버퍼 메모리는 창(window)으로부터의 픽셀값을 저장하는 복수의 행의 메모리 회로를 포함한다. 메모리 회로는 시프트 회로들로서 배열되는데, 각각의 시프트 회로는 각각의 행에 대한 것이고 또한 제각기 행으로부터 그룹들로 픽셀값들의 할당을 시프트하도록 구성된다.
라스터 스캔 방식의 액세스뿐만 아니라 표준 다중-뱅크 메모리에서의 블록별 방식의 액세스 둘 모두를 효율적으로 지원하는 저장 시설을 제공할 필요가 있다.
본 발명의 제1 양태에 따르면, 블록 액세스 모드에서의 블록 액세스(block access) 및 행 액세스 모드에서의 행 액세스(row access)를 가능하게 하는 다중-모드 액세스가능 저장 시설(multimode accessible storage facility)이 제공되며, 이 시설은,
- 각각이 각자의 뱅크 인덱스(bank index)를 갖는 복수의 메모리 뱅크를 포함하는 메모리 유닛,
- 상기 메모리 뱅크 각각에 대해 입력 주소 및 시프트 파라미터의 함수로서 회전된 뱅크 주소(rotated bank address)를 발생하는 주소 발생기,
- 입력 행을 회전시켜 회전된 입력 행의 데이터 요소를 메모리 유닛의 각자의 뱅크에 제공하는 입력 데이터 회전기(input data rotator),
- 메모리 유닛의 각자의 뱅크로부터 검색된 데이터 요소를 포함하는 행을 역회전시켜 회전된 출력 행을 제공하는 출력 회전기(output rotator)를 포함한다.
본 발명의 제2 양태에 따르면, 한 행의 데이터 요소를 저장하는 방법이 제공되고, 이 방법은,
- 행을 수신하는 단계,
- 행의 저장 위치를 나타내는 입력 주소를 수신하는 단계,
- 행의 저장 위치에 의존하는 양만큼 행 내의 데이터 요소를 회전시키는 단계,
- 입력 주소의 함수로서 각각의 요소에 대한 뱅크 주소를 할당하는 단계,
- 다중-뱅크 메모리에 행을 저장하는 단계를 포함하고, 각자의 데이터 요소는 각자의 뱅크의 각자의 뱅크 주소에 저장된다.
본 발명의 제3 양태에 따르면, 다중-뱅크 메모리로부터 한 블록의 데이터 요소를 검색하는 방법이 제공되고, 이 방법은,
- 데이터 요소의 블록의 저장 위치를 나타내는 입력 주소를 수신하는 단계,
- 입력 주소의 함수로서 복수의 메모리 뱅크에 대한 뱅크 주소를 계산하는 단계,
- 상기 메모리 뱅크에 대해 계산된 뱅크 주소로부터 상기 메모리로부터의 각자의 데이터 요소를 갖는 행을 검색하는 단계,
- 블록의 저장 위치에 의존하는 양만큼 행에 있는 데이터 요소를 회전시키고 회전된 데이터 요소를 갖는 행을 블록으로서 제공하는 단계를 포함한다.
행 액세스 모드에서, 수신된 행은 뱅크에서의 행의 저장 위치, 즉 주소에 의존하는 양만큼 회전된다. 그에 따라, 그 다음 주소에 저장된 행이 상호 다른 회전으로 저장된다. 회전은 순환 시프트(cyclic shift)인 것으로 이해된다. 그에 따라, NR만큼의 회전은 그렇지 않았으면 인덱스 IB를 갖는 메모리 뱅크에 할당될 데이터가 그 대신에 메모리 뱅크 IB+NR mod NB에 할당된다는 것을 나타내며, 여기서 NB는 메모리 뱅크의 수이다. 그에 따라, 블록의 상이한 행에 있는 데이터가 상이한 메모리 뱅크에 할당된다. 이것은 블록 액세스 모드에서 상기 데이터를 동시에 검색하는 것을 가능하게 한다. 블록 액세스 모드에서, 주소 발생기는 블록의 적절한 라인을 검색하기 위해 입력 주소 및 시프트 파라미터의 함수로서 메모리 뱅크 각각에 대해 회전된 뱅크 주소를 발생한다.
이들 및 다른 양태에 대해 도면을 참조하여 더 상세히 기술한다.
도 1은 데이터 처리 장치를 개략적으로 나타낸 도면이다.
도 2는 복수의 액세스 모드를 나타낸 도면이다.
도 3은 본 발명에 따른 저장 시설의 일 실시예를 나타낸 도면이다.
도 4는 도 3의 실시예의 일부를 보다 상세히 나타낸 도면이다.
도 5는 저장 시설의 대안의 실시예에서 상기 일부를 나타낸 도면이다.
도 6a 및 도 6b는 데이터 요소의 매핑을 나타낸 도면이다.
도 7은 실시예에 적당한 주소 발생기의 예시적인 구현을 나타낸 도면이다.
도 8a는 데이터 요소의 블록의 구성의 제1 예를 나타낸 도면이다.
도 8b는 데이터 요소의 블록의 구성의 제2 예를 나타낸 도면이다.
도 9는 본 발명에 따른 저장 시설의 추가의 실시예를 나타낸 도면이다.
도 10은 상기 실시예의 일부를 보다 상세히 나타낸 도면이다.
도 11a 및 도 11b는 저장 시설의 실시예의 2가지 동작 모드를 나타낸 도면이다.
도 12는 저장 시설의 실시예에서 평면의 내용을 개략적으로 나타낸 도면이다.
도 1은 데이터 처리 장치를 개략적으로 나타낸 도면이다.
도 2는 복수의 액세스 모드를 나타낸 도면이다.
도 3은 본 발명에 따른 저장 시설의 일 실시예를 나타낸 도면이다.
도 4는 도 3의 실시예의 일부를 보다 상세히 나타낸 도면이다.
도 5는 저장 시설의 대안의 실시예에서 상기 일부를 나타낸 도면이다.
도 6a 및 도 6b는 데이터 요소의 매핑을 나타낸 도면이다.
도 7은 실시예에 적당한 주소 발생기의 예시적인 구현을 나타낸 도면이다.
도 8a는 데이터 요소의 블록의 구성의 제1 예를 나타낸 도면이다.
도 8b는 데이터 요소의 블록의 구성의 제2 예를 나타낸 도면이다.
도 9는 본 발명에 따른 저장 시설의 추가의 실시예를 나타낸 도면이다.
도 10은 상기 실시예의 일부를 보다 상세히 나타낸 도면이다.
도 11a 및 도 11b는 저장 시설의 실시예의 2가지 동작 모드를 나타낸 도면이다.
도 12는 저장 시설의 실시예에서 평면의 내용을 개략적으로 나타낸 도면이다.
이하의 상세한 설명에서, 본 발명의 완전한 이해를 제공하기 위해 다수의 구체적인 상세가 기술되어 있다. 그러나, 당업자라면 본 발명이 이들 구체적인 상세 없이 실시될 수 있다는 것을 잘 알 것이다. 다른 경우에, 본 발명의 양태들을 불명료하게 하지 않기 위해 공지의 방법, 절차 및 구성요소가 상세히 기술되어 있지 않다.
본 발명의 실시예가 도시되어 있는 첨부 도면을 참조하여 이하에서 본 발명에 대해 보다 상세히 설명한다. 그러나, 본 발명이 많은 다른 형태로 구현될 수 있으며, 본 명세서에 기술된 실시예로 제한되는 것으로 해석되어서는 안 된다. 오히려, 본 개시 내용이 빈틈이 없고 완전하며 본 발명의 범위를 당업자에게 충분히 전달하도록 이들 실시예가 제공되어 있다. 구성요소가 다른 구성요소에 "연결" 또는 "결합"되어 있는 것으로 말해질 때, 구성 요소가 다른 구성요소에 직접 연결 또는 결합되거나 중간 구성요소가 존재할 수 있다는 것을 잘 알 것이다. 이와 달리, 구성요소가 다른 구성요소에 "직접 연결" 또는 "직접 결합"되어 있다고 말해질 때는, 중간 구성요소가 존재하지 않는다. 도면 전체에 걸쳐 유사한 참조 부호는 유사한 구성요소를 나타낸다. 본 명세서에서 사용되는 바와 같이, "및/또는"이라는 용어는 열거되어 있는 관련 항목들 중 하나 이상의 항목의 모든 조합을 포함한다.
제1, 제2, 제3 등의 용어가 본 명세서에서 다양한 요소, 구성요소 및/또는 섹션을 기술하는 데 사용될 수 있지만, 이들 요소, 구성요소 및/또는 섹션이 이들 용어에 의해 제한되어서는 안 된다는 것을 잘 알 것이다. 이들 용어는 단지 하나의 요소, 구성요소 또는 섹션을 다른 요소, 구성요소 및/또는 섹션과 구별하기 위해 사용될 뿐이다. 따라서, 이하에서 논의되는 제1 요소, 구성요소 및/또는 섹션은, 본 발명의 개시 내용을 벗어나지 않고, 제2 요소, 구성요소 및/또는 섹션이라고 할 수 있다.
달리 정의되지 않는 한, 본 명세서에 사용된 모든 용어(기술 용어 및 과학 용어를 포함함)가 본 발명이 속하는 기술 분야의 당업자에 의해 통상적으로 이해되는 것과 동일한 의미를 갖는다. 또한, 흔히 사용되는 사전에서 정의되는 용어와 같은 용어가 관련 기술 분야의 문맥에서의 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명시적으로 그렇게 정의되지 않는 한, 이상화되거나 과도하게 정형적인 의미로 해석되지 않는다는 것을 잘 알 것이다. 본 명세서에 언급된 모든 간행물, 특허 출원, 특허 및 기타 참조 문헌은 참조 문헌으로서 그 전체 내용이 포함된다. 상충되는 경우, 정의를 포함하는 본 명세서가 우선하게 된다. 또한, 재료, 방법 및 예는 제한하기 위한 것이 아니라 단지 예시적인 것이다.
도 1은 데이터 처리 장치를 개략적으로 나타낸 것이다. 이 장치는 저장 시설(10)과 벡터 데이터 Vload/Store를 교환하는 벡터 처리 유닛(74)을 갖는 VLIW 프로세서(70)를 포함한다. VLIW 프로세서(70)는 프로그램 카운터 PC를 발생하고, 프로그램 카운터로 표시되는 프로그램 메모리 내의 주소로부터 VLIW 명령어 IVLIW를 검색한다. 이 경우에, VLIW 프로세서(70)는 데이터 SLS를 스칼라 데이터 메모리(60)와 교환하는 스칼라 처리 유닛(72)을 포함한다. 이 실시예에서, 스칼라 프로세서(72)는 프로그램 카운터 PC를 발생하는 일을 맡고 있다. 데이터 처리 장치는 다양한 성질의 영상 데이터와 같은 2D 데이터를 처리하는 데 특히 적합하다.
도 2는 저장 시설에 대한 복수의 액세스 모드를 나타낸 것이다. 행 액세스 모드(10A)에 따라, 저장 시설이 행별로 액세스된다. 그 액세스 모드에서, 한 행의 요소가 동시에 액세스되는데, 즉 메모리에 기입되고 그로부터 판독된다. 이것은 저장 시설이 다른 시설과 데이터를 교환할 때의, 예를 들어, 데이터가 스캐너 또는 카메라로부터 획득될 때 또는 데이터가 프레임 버퍼에 제공될 때의 통상적인 데이터 액세스 방식이다. 그러나, 영상 처리 작업을 위해, 또한 다른 액세스 모드, 예를 들어, 열 액세스 모드(10B) 또는 블록 액세스 모드가 필요하다. 영상 처리 알고리즘의 유형에 따라, 예를 들어, 액세스 모드(10C)에 따른 4x4 블록에 대한 액세스, 액세스 모드(10D)에 따른 8x2 블록에 대한 액세스, 또는 액세스 모드(10E)에 따른 2x8 블록에 대한 액세스가 필요할 수 있다. 열(10B)은 1x16 블록으로 간주될 수 있다.
도 3은 본 발명에 따른 저장 시설(10)의 일 실시예를 보다 상세히 나타낸 것이다. 저장 시설(10)은 행 액세스 모드 및 블록 액세스 모드 둘다를 가능하게 한다는 점에서 다중-모드 액세스가능 저장 시설이다. 저장 시설(10)은 복수의 메모리 뱅크(20.0, ..., 20.F)를 갖는 메모리 유닛(20)을 포함하고, 각각의 메모리 뱅크는 각자의 뱅크 인덱스(0,...,F)를 가진다. 명확함을 위해, 제1 뱅크와 마지막 뱅크만이 참조 번호로 표시되어 있다. 예로서, 메모리 유닛이 16개 뱅크를 포함하는 것으로 가정한다. 그러나, 임의의 수(NB)의 뱅크가 있을 수 있다는 것을 잘 알 것이다.
저장 시설(10)은 상기 메모리 뱅크(20.0, ..., 20.F) 각각에 대해 입력 주소 및 시프트 파라미터 S의 함수로서 회전된 뱅크 주소(rotated bank address)를 발생하는 주소 발생기(30)를 더 포함한다.
저장 시설(10)은 양 SR만큼 입력 행을 회전시키고 회전된 입력 행을 메모리 유닛(20)에 제공하는 입력 데이터 회전기(40)를 더 포함한다.
저장 시설(10)은 또한 양 SL만큼 메모리 유닛(20)으로부터 검색된 행을 역회전시키고 회전된 출력 행을 제공하는 출력 회전기(50)를 포함한다.
주소 발생기(30)는 상기 메모리 뱅크(20.0,...20.F) 각각에 대해 입력 주소 Address 및 시프트 파라미터 SR의 함수로서 회전된 뱅크 주소(rotated bank address) BA(0), ...., BA(F)를 발생한다.
도 4는 주소 발생기(30)의 실시예를 보다 상세히 개략적으로 나타낸 것이다. 상기 실시예에서, 주소 발생기(30)는 선택된 블록폭 BW에 의존하는 각자의 뱅크(20.0 내지 20.F)에 대한 회전된 뱅크 주소를 발생하는 섹션(30.0 내지 30.F), 및 각자의 섹션(30.0 내지 30.F)에 의해 제공되는 회전된 뱅크 주소 또는 원래의 주소 y0를 선택하는 신호 S1에 의해 제어되는 멀티플렉싱 요소(32.0 내지 32.F)를 포함한다. 명확함을 위해, 제1 섹션 및 마지막 섹션과 그의 대응하는 멀티플렉싱 요소만이 도시되어 있다. 주소 발생기는 입력 파라미터 WB 및 모드 선택 표시자 S1에 의해 제어가능하다. 이 실시예에서, S1=0는 행 액세스 모드를 나타내고, S1=1은 블록 액세스 모드를 나타낸다.
도 5에서, 도 4의 부분에 대응하는 부분은 100만큼 더 높은 참조 번호를 가진다. 도 5는 좌표 X,Y를 갖는 제1 좌표계로부터의 좌표를 좌표 X*,Y*를 갖는 제2 좌표계로 매핑하는 제1 매핑 유닛(134)을 포함하는 본 발명에 따른 저장 시설의 다른 실시예에서의 주소 발생기(130)를 나타낸 것이다. 제1 좌표계에서의 X 좌표는 비트 Xnx1-1, ... ,X0에 의해 정의되고, 제1 좌표계에서의 Y 좌표는 비트 Yny1-1, ... ,Y0에 의해 정의되며, 제2 좌표계에서의 X* 좌표는 비트 X*nx2-1,...,X*0에 의해 정의되고, 제2 좌표계에서의 Y* 좌표는 비트 Y*ny2-1,...,Y*0에 의해 정의된다. 인덱스 0는 최하위 비트를 나타내고, nx1-nx2 = ny2-ny1 = n이다. 매핑 유닛(134)은 하기의 수식에 따라 X* 및 Y* 좌표를 갖는 출력 주소를 발생한다:
이 주소 매핑의 예에 대해서는 도 6a 및 도 6b를 참조하여 설명한다. 도 6a는 폭 W 및 높이 H를 갖는 2048 픽셀의 영상을 개략적으로 나타낸 것이다. 그에 따라, 이 실시예에서, nx1= 11, ny1=11이다. 영상은 64 픽셀의 폭 및 8 픽셀의 높이를 갖는 1차 셀로 분할된다. 1차 셀은 좌측에서 우측으로 그리고 상부에서 하부로 정렬되어 있다. 이들 1차 셀 중 4개가 그의 참조 번호 0, 31, 32, 63로 표시되어 있다. 매핑 유닛(134)에 의한 주소 매핑 후에, 영상 데이터는 도 6b에 개략적으로 나타낸 바와 같이 배열된다. 이 제2 좌표계 X*,Y*은 다음과 같이 입력 좌표계 X,Y에 관련되어 있다:
따라서, nx2=6, ny2=16이고, n=5, m = 3이다.
도 7은 주소 발생기(30)의 예시적인 구현을 나타낸 것이다. 도 7에서, 어드레싱될 블록의 단일 요소의 좌표 (x0,y0)로부터 시작하여, 블록의 각각의 요소 (x0+1, y0), ....(xF+1, yF)의 주소 A0,...., AF가 블록 좌표 발생기(302)에서 계산된다. 블록의 요소의 수는 저장 시설의 뱅크의 수에 대응한다. 블록 요소는 복수의 픽셀을 포함할 수 있다. 예를 들어, 8 비트의 4 픽셀은 32 비트의 단일 메모리 뱅크 요소에 저장될 수 있다. 그 경우에, x-좌표의 최하위 비트는 메모리 뱅크 요소 내의 특정 픽셀을 식별하는 데 사용될 수 있다.
발생된 주소 A는 다음과 같이 비트의 그룹 A = <SN><CLN><CN><CW>으로 이루어져 있는 것으로 간주될 수 있으며, 여기서 SN 및 CLN은 각각 y-좌표의 최상위 비트 및 최하위 비트를 나타낸다. CN 및 CW는 x-좌표의 최상위 비트 및 최하위 비트를 나타낸다.
영상은 다수의 1차 셀로 이루어진 것으로 간주될 수 있고, x 및 y 좌표의 최상위 비트는 좌표의 1차 셀을 식별하고, x 및 y 좌표의 최하위 비트는 그 1차 셀 내에서의 좌표의 상대 위치를 나타낸다.
이어서, 발생된 주소 A 각각이 주소 재정렬 유닛(304)에 의해 다음과 같이 정의되는 재정렬된 주소 A*으로 재정렬된다:
A* = <SN><CN><CLN><CW>
여기서, SRY = (WB).y0이고, NB는 뱅크의 수이다.
WB는 뱅크에서의 블록 폭이다.
블록 폭이 정수개의 뱅크와 같은 경우, SR의 계산은 아주 간단화된다. 예를 들어, 블록 폭 WB가 2인 경우, SRY의 값은 간단히 2*y0이고, 이는 y0<<2와 같다.
일련의 주소소를 SRY만큼 회전시키는 것은, 예를 들어, 배럴 시프터(barrel shifter)와 같은 공지된 회전기(306)에 의해 효율적으로 수행될 수 있다.
회전이 모듈로 NB만큼 수행된다는 사실을 고려하면, y0의 nly 최하위 비트만이 계산에 필요하다. 여기서,
따라서, NB = 16, WB = 2인 경우에, nly의 값은 3이다.
주소 재정렬 유닛(304) 및 회전 유닛(306)이 순서가 반대로 되어 있을 수 있다는 것에 유의한다.
이어서, 오프셋 가산 모듈(308)은 오프셋 OI를 계산하여 다음과 같이 각각의 주소 A**I에 가산한다:
A***I = A**I+OI
오프셋 OI는 다음과 같이 계산된다:
다음과 같은 오프셋 시퀀스가 획득된다:
제2 회전 유닛(310)에 의해 양 SRX만큼 회전함으로써 주소 A***I로부터 뱅크 주소 BI가 계산된다.
그에 따라, 뱅크 I에 대한 주소 BI는 다음과 같다:
SRX는 1차 셀 내에서의 블록의 x0 좌표로부터 도출된다. 회전 동작이 모듈로 NB 동작이라는 사실을 고려하여 x-위치의 최하위 비트 nx만이 관련성 있고, 여기서 이다. 뱅크 요소마다 ND > 1 픽셀이 있는 경우에, 블록의 x0-좌표는 에 의해 x0-픽셀 좌표 x'0로부터 도출되고: 여기서, nlx는 이다.
지금부터, 본 발명에 따른 저장 시설(10)의 다양한 액세스 모드에 대해 기술한다.
본 발명에 따른 저장 시설의 행 액세스 모드에서 행을 기입할 때, 입력 데이터 회전기(40)는 입력 행을 양 SR만큼 회전시키고 회전된 입력 행을 메모리 유닛(20)에 제공한다. 여기서, SR = WB.y, y은 행의 y 좌표이다.
이 회전에 따라, 좌표 x,y를 갖는 데이터 요소는 다음과 같이 뱅크 인덱스 IB에 매핑된다.
각각의 뱅크에서 뱅크 주소 AB = y에 있는 행의 요소가 매핑된다. 여기서, WB는 블록 폭이다. 블록 액세스 모드 동안, 데이터가 저장 시설로부터 이 폭을 갖는 블록 단위로 검색될 수 있다. NB는 뱅크의 수이고, 2np는 뱅크 주소마다의 데이터 요소의 수이다.
도 8a는 예를 개략적으로 나타낸 것이며, 여기서 블록 폭 WB는 2 뱅크이고, 뱅크의 수 NB는 16이다. 또한, 모든 뱅크 주소가 4개의 데이터 요소를 포함하는 것으로 가정된다. 이 예에서, 뱅크 주소 0을 갖는 제1 데이터 요소 행(0 - 0F)은 회전 없이 저장되고, 뱅크 주소 1을 갖는 제2 행은 2만큼 회전되며, 뱅크 주소 2를 갖는 제3 행은 4만큼 회전된다.
이 실시예에서, 판독될 블록이 4 픽셀의 스텝으로 정렬될 수 있다.
이 실시예에서, 각각의 그 다음 행은 블록 폭 WB에 대응하는 양만큼 회전된다. 따라서, 뱅크 주소 AB에 저장된 행이 WB * AB mod NB만큼 회전된다.
각각의 메모리 뱅크가 4 픽셀의 폭을 갖기 때문에, 이것은 각각의 후속 행이 2 뱅크(8 픽셀과 동등함)만큼 회전된다는 것을 의미한다. 그러나, 다른 블록 크기가 선택될 수 있다. 도 8b는, 예를 들어, 동일한 저장 시설에서 데이터가 어떻게 16 픽셀의 폭 및 4 픽셀의 높이를 갖는 블록의 형태로 검색하기에 적당하게 저장될 수 있는지를 나타낸 것이다. 이 경우에, 각각의 후속 행은 4 뱅크만큼 회전된다. 예를 들어, 도 9를 참조하여 기술할 것인 바와 같이, 저장 시설은 상이한 평면을 가질 수 있다. 제1 평면은, 예를 들어, 16*4 블록으로서 액세스하기 위한 데이터를 저장할 수 있고, 다른 평면은, 예를 들어, 8*8 블록으로서 데이터를 저장할 수 있다.
행이 행 번호의 단조 함수인 양만큼 회전될 필요는 없다. 블록의 개별 행이 개별 뱅크에 저장되는 것으로 충분하다. 예를 들어, 출력 회전기가 역함수를 알고 있기만 하다면, 의사 랜덤 함수(pseudo random function)가 입력 회전기에 의해 사용될 수 있다.
행 판독 액세스 모드 동안, 행 y를 판독할 때 SL 뱅크의 양만큼의 역회전이 출력 회전기(50)에 의해 적용된다. 여기서, SL = - WB.y이다.
블록 기입 액세스 모드 동안, 주소 발생기(30)는 다음과 같이 메모리 뱅크(20.0, ..., 20.F) 각각에 대해 입력 주소 및 시프트 파라미터의 함수로서 회전된 뱅크 주소를 발생한다.
여기서, NROW는 블록의 최대 허용가능 행의 수이고, IB는 뱅크 인덱스이며, x0, y0는 검색될 블록의 기준 좌표, 예를 들어, 좌측 상부 코너를 나타낸다. 블록의 수평 위치는 블록의 좌측 상부 데이터 요소의 뱅크 인덱스 IB에 대응한다.
블록의 최대 허용가능 행의 수 NR은 블록의 수 NB를 블록의 폭 WB로 나눈 것이다.
예로서, 제1 블록은 도 8a에서 옅은 회색으로 나타내어져 있다. 이 블록은 수평 위치 x0 = 0을 가진다. 그에 따라, 발생된 뱅크 주소 BA(IB)는 (y0, y0, y0+1, y0+1, …..y0+7, y0+7)이다. 수평 위치 x0 = 8(뱅크 인덱스 2와 동등함)을 갖는 블록에 대해, 발생된 뱅크 주소 BA(IB)는 (y0+7, y0+7, y0, y0, ……y0+6, y0+6)이다.
도 1에 도시된 바와 같은 데이터 처리 장치는 선택적으로 저장 시설(10)의 복수의 메모리 뱅크에 의해 정의되는 총 데이터 폭보다 큰 폭을 갖는 영상의 영상 데이터를 제공하는 데이터 제공 유닛(90)(점선으로 나타냄)을 가진다. 그에 따라, 도 5를 참조하여 기술된 바와 같은 대안의 주소 발생기(130)가 제공된다. 영상 제공 유닛(90)은 카메라 또는 다른 메모리일 수 있다.
도 9는 본 발명에 따른 다중-모드 액세스가능 저장 시설(210)의 추가의 실시예를 나타낸 것이다. 도 3의 부분에 대응하는 이것에서의 부분은 100만큼 더 높은 참조 번호를 가진다. 도 9에 도시된 실시예에서, 저장 시설(210)은 주소 포트에 제공되는 주소 ADDR을, 저장 시설(210) 내에서의 주소 ADDR1을 식별하는 제1 일련의 주소 라인 및 액세스 모드 제어기(216)에 명령 CMND를 제공하는 제2 일련의 주소 라인으로 분리하는 주소 파서(214)를 포함한다.
일 실시예에서, 주소 ADDR의 최상위 부분은 명령 CMND를 형성한다. 예로서, 명령은 다음과 같은 필드로 이루어져 있다.
이들 필드는 다음과 같은 의미를 가진다:
유형 | 값 | 설명 |
모드(2 비트) - [27:26] 동작 모드를 결정함 |
00 | 벡터 단일 어드레싱 |
01 | 2D 어드레싱 | |
10 | 예약됨 | |
11 | 평면 어드레싱 | |
R/B(2 비트) - [25:24] 2D 모드에 대해서만 유효함 |
00 | 2D 평면에 대한 행 연산 |
01 | 2D 평면에 대한 블록 연산 | |
평면 ID(4 비트) - [23:20] 이 값은 어느 평면이 액세스되고 있는지를 결정함 |
00, 01... |
제1 명령 비트는 액세스 모드를 결정한다.
제1 액세스 모드[벡터 단일 어드레싱(vector single addressing)]에서, 저장 시설(210)은 종래의 메모리처럼 액세스가능하다. 그에 따라, 주소 발생기(230)는 어떤 주소 회전도 수행하지 않으며, 입력 회전기(240) 및 출력 회전기(250)는 비활성이다. 2D 액세스 모드에서, 저장 시설(210)은 행 액세스 R/B = 00는 물론 블록 액세스 R/B = 01 둘다를 가능하게 한다.
이 실시예에 따른 저장 시설(210)에서, 저장 공간은 고유의 특성을 갖는 다양한 부분(여기에서 평면으로 나타냄)으로 세분될 수 있다. 이들 평면에 대한 설정을 정의하기 위해, 저장 시설(210)은 평면 액세스 모드(모드 = 11)로 표시된 추가의 어드레싱 모드를 가진다. 액세스될 평면은 평면 ID 필드로 표시된다. 이 경우에, 16개의 상이한 평면이 정의될 수 있지만, 다른 실시예에서, 더 많은 또는 더 적은 수의 평면이 허용될 수 있다.
도 10에 도시된 바와 같이, 액세스 모드 제어기(216)는 제어 논리(218) 및 평면 레지스터 필드(217)를 포함한다.
각각의 평면에 대한 설정은 평면 레지스터 파일(217) 내의 각자의 레지스터에 의해 정의될 수 있다. 이들 레지스터는 다음과 같은 필드를 가질 수 있다.
유형 | 파라미터 | 데이터 벡터 요소 | 설명 |
블록 차원 2의 멱승 |
log2(WB) | 0[3:0] | 블록 폭 WB X HB = NB |
log2(HB) | 1[3:0] | 블록 높이 WB X HB = NB |
|
평면의 베이스 주소 평면의 시작에 대한 바이트 주소는 새로운 벡터 주소이어야 함 |
베이스 주소 바이트 0 | 2[7:0] | 평면 주소 [7:0] |
베이스 주소 바이트 1 | 3[7:0] | 평면 주소 [15:8] | |
베이스 주소 바이트 2 | 4[7:0] | 평면 주소 [23:16] | |
평면 차원 2의 멱승 |
log2(Px) | 5[3:0] | 평면 폭 이것은 영상 폭에 대응하고, 크기가 가장 가까운 2의 멱승에 맞춰 정렬됨. 인터리빙된 평면에 대해 2배임 |
log2(Py) | 6[3:0] | 평면 높이 이것은 2의 멱승이고 블록 높이 HB보다 크거나 같아야 함. SIMD의 최소 세그먼트 폭에 대해, 최대 세그먼트 높이가 메모리의 용량일 수 있음 |
|
평면 유형 | 0: 보통 1: 인터리빙됨 |
7[0] | 보통/인터리빙된 평면 선택 2개의 평면이 벡터/행 인터리빙을 사용하여 인터리빙되어 있는 것으로 가정됨 |
도 11a는 보통의 평면 액세스의 예를 나타낸 것이다. 도 11b는 인터리빙된 평면 액세스의 예를 나타낸 것이다. 후자의 액세스 모드는 각각의 벡터 요소가 루마(LUMA) 및 크로마(CHROMA) 성분을 갖는 경우에 적당하다. 그 경우에, 데이터가 인터리빙된 방식으로 표현될 수 있으며, 평면 폭이 2배로 된다(2048 x 2 = 4096). 이 인터리빙된 방식에서, 각각의 홀수 라인은 루마 성분을 포함하고, 후속하는 짝수 라인(회색으로 표시됨)은 대응하는 크로마 성분을 포함한다. 루마/크로마 성분 벡터 각각에 대해 개별적인 베이스 주소(base address)를 발생하지 않는 인터페이스를 스트리밍하기 위해 이 인터리빙이 필요할 수 있다. 홀수 라인 또는 짝수 라인을 어드레싱함으로써, 각각의 성분 유형에 대한 블록이 개별적으로 검색될 수 있다.
도 12는 제1 좌표계에서 2048 픽셀의 폭 및 16 픽셀의 높이를 갖는 저장 시설의 평면의 내용을 개략적으로 나타낸 것이다. 픽셀은 그의 주소 A로 나타내어져 있고, 여기서 A = X+2048*Y이다. 도시된 실시예에서, 저장 시설은 16개 뱅크를 갖는 메모리를 포함한다. 각각의 메모리 요소는 16 비트의 벡터 요소를 4개 포함한다. 모든 비트가 다 사용될 필요는 없다. 일 실시예에서, 예를 들어, 벡터 요소당 9 비트가 사용된다. 평면은 64 픽셀의 길이를 갖는 1024개 벡터의 저장 용량을 가진다. 좌측 상단 코너에서, 일부 벡터는 백색 및 회색으로 나타내어져 있다. 즉, 제1 벡터는 주소 0 내지 63을 차지한다. 제2 벡터는 주소 64 내지 127을 차지하며, 이하 마찬가지이다. 도 12는 또한 이 저장 시설 내에서의 픽셀 블록의 어드레싱가능성(addressability)을 개략적으로 나타낸 것이다. 시작 주소 A=0을 갖는 제1 블록 B1은 벡터 경계에 맞춰 정렬된다. 그러나, 원점 A=0에 대해 오프셋 X = 4*m, Y=n(단, m, n은 정수>= 0임)을 갖는 임의의 블록이 블록 B2, B3, B4으로 나타낸 바와 같이 어드레싱될 수 있다. 모듈 주소 계산이 적용되는데, 즉 시작 주소 22648을 갖는 블록 B5는 Y = 15까지 연장하는 제1 부분 B5a를 포함한다. 블록 B5의 그 다음 라인은 15+1 mod 16 =0이며, 따라서 블록은 평면의 상단에 제2 부분 B5b를 가진다. 마찬가지로, 시작 주소 18428를 갖는 블록 B6는 X=2044부터 X = 2047까지 연장하는 제1 부분 B6a 및 평면의 좌측에서 X=0부터 X=3까지 연장하는 제2 부분을 가진다.
본 발명에 따르면, 영상 라인이 회전된 방식으로 영상 메모리에 저장된다. 1차 셀의 각각의 후속하는 영상 라인이 페치될 블록의 폭 Bx에 대응하는 뱅크의 수만큼 회전된다(순환 시프트된다). 각각의 후속하는 라인이 상이한 일련의 메모리 뱅크에 저장된다는 사실로 인해, 이들이 메모리로부터 동시에 검색될 수 있다.
특허청구범위에서, 용어 "포함하는"은 다른 구성요소 또는 단계를 배제하지 않으며, 단수 표현("a" 또는 "an")은 복수를 배제하지 않는다. 단일 구성요소 또는 기타 유닛이 특허청구범위에 언급된 몇개의 항목의 기능을 수행할 수 있다. 소정의 수단이 서로 다른 청구항에 언급되어 있다는 단순한 사실이 이들 수단의 조합이 유리하게 사용될 수 없다는 것을 말하는 것은 아니다. 청구항에서의 어떤 참조 부호도 범위를 제한하는 것으로 해석되어서는 안 된다. 또한, 명시적으로 달리 언급하지 않는 한, "또는(or)"은 배타적 OR(exclusive or)가 아니라 포함적 OR(inclusive or)을 말한다. 예를 들어, 조건 A 또는 B는 다음과 같은 것들 중 임의의 것에 의해 만족된다: A는 참 (또는 존재함)이고 B는 거짓 (또는 존재하지 않음), A는 거짓 (또는 존재하지 않음)이고 B는 참 (또는 존재함), 그리고 A 및 B 둘다가 참임(또는 존재함).
저장 시설의 다양한 기능이 전용 하드웨어로 또는 적당한 프로그램된 프로세서에 의해 또는 이 둘의 조합에 의해 구현될 수 있다.
Claims (14)
- 블록 액세스 모드에서의 블록 액세스(block access) 및 행 액세스 모드에서의 행 액세스(row access)를 허용하는 다중-모드 액세스가능 저장 시설(multimode accessible storage facility)(10)로서,
각각이 각자의 뱅크 인덱스(bank index)(0,...,F)를 갖는 복수의 메모리 뱅크(20.0, ..., 20.F)를 포함하는 메모리 유닛(20),
상기 메모리 뱅크들의 각각에 대해, 행 판독 또는 행 기입 액세스 모드에서 행의 저장 위치를 나타내는 입력 주소 및 시프트 파라미터의 함수, 또는 블록 판독 또는 블록 기입 액세스 모드에서 상기 메모리 유닛에서의 데이터 요소들의 블록의 저장 위치를 나타내는 입력 주소 및 시프트 파라미터의 함수로서 회전된 뱅크 주소(rotated bank address)를 발생하는 주소 발생기(30),
행 기입 또는 블록 기입 액세스 모드에서, 상기 저장 위치에 따라 상기 행을 회전시키고 또한 상기 회전된 입력 행의 행 요소들을 상기 메모리 유닛의 각자의 뱅크에 제공하는 입력 데이터 회전기(40),
행 판독 또는 블록 판독 액세스 모드에서, 상기 저장 위치에 따라 상기 메모리 유닛의 각자의 뱅크들로부터 검색된 행 요소들을 포함하는 행을 역회전시키고 또한 상기 역회전된 행을 출력 행으로서 제공하는 출력 데이터 회전기(50),
상기 메모리 유닛 내에 각자의 베이스 주소를 갖고 각자의 블록 크기에 따라 액세스 가능한 복수의 평면,
각각의 평면에 대하여 상기 메모리 유닛 내의 상기 베이스 주소 및 적용가능한 블록 크기를 나타내는 값을 포함하는 적어도 하나의 레지스터(217)를 포함하는 액세스 모드 제어기(216), 및
상기 저장 시설 내에서의 주소(ADDR1)를 식별하는 제1 세트의 주소 라인들 및 상기 액세스 모드 제어기(216)에게 명령(CMND)을 제공하는 제2 세트의 주소 라인들을 갖는 주소 포트 - 상기 제2 세트의 주소 라인들은 동작 모드 표시 라인들 및 액세스 모드 표시 라인들 중 적어도 하나를 포함하고, 상기 제2 세트의 주소 라인들은 평면 식별 라인들을 포함함 -
를 포함하는 다중-모드 액세스가능 저장 시설. - 제1항에 있어서, 상기 주소 발생기(130)는 좌표 X,Y를 갖는 제1 좌표계로부터의 좌표들을 좌표 X*,Y*를 갖는 제2 좌표계에 매핑하는 매핑 유닛(134)을 포함하고, 상기 제1 좌표계에서의 X 좌표는 비트들 Xnx1-1,...,X0에 의해 정의되며, 상기 제1 좌표계에서의 Y 좌표는 비트들 Yny1-1, ... ,Y0에 의해 정의되고, 상기 제2 좌표계에서의 X* 좌표는 비트들 X*nx2-1,...,X*0에 의해 정의되며, 상기 제2 좌표계에서의 Y* 좌표는 비트들 Y*ny2-1,...,Y*0에 의해 정의되고, 인덱스 0는 최하위 비트를 나타내며, nx1-nx2 = ny2-ny1 = n이고, 상기 매핑 유닛은 하기의 수식
에 따라 X* 및 Y* 좌표들을 갖는 출력 주소를 발생하며,
m, n은 정수 >= O인, 다중-모드 액세스가능 저장 시설. - 제1항의 다중-모드 액세스가능 저장 시설(10) 및 상기 다중-모드 액세스가능 저장 시설에 결합된 벡터 처리 유닛(74)을 포함하는 데이터 처리 장치.
- 제3항에 있어서, 상기 복수의 메모리 뱅크에 의해 정의되는 총 데이터 폭보다 큰 폭을 갖는 영상의 영상 데이터를 제공하는 데이터 제공 유닛(90)을 더 가지며, 주소 마스크 발생기가 상기 데이터 제공 유닛으로부터의 상기 영상 데이터를 1차 셀들로서 조직하고, 각각의 1차 셀이 상기 총 데이터 폭에 대응하는 폭을 갖는 데이터 처리 장치.
- 제4항에 있어서, 상기 1차 셀들은 상기 데이터 제공 유닛에 의해 제공되는 영상의 높이보다 작은 높이를 갖는 데이터 처리 장치.
- 다중-뱅크 메모리에 데이터 요소들의 행을 저장하는 방법으로서,
상기 데이터 요소들의 행을 수신하는 단계,
상기 행의 저장 위치를 나타내는 입력 주소를 수신하는 단계 - 상기 주소는 모드가 기입 모드이고 저장될 데이터가 데이터 요소들의 행으로 배열되는 것을 지시하고, 또한 데이터 요소들의 행이 기입될 다중-뱅크 메모리의 평면을 지시하는 명령(CMND)을 더 포함함 -,
상기 지시된 평면에 대하여 상기 다중-뱅크 메모리 내의 평면의 베이스 주소를 나타내는 값 및 블록 단위(block wise) 데이터 액세스에 적용가능한 블록 크기를 나타내는 값을 검색하는 단계,
상기 행의 저장 위치 및 상기 지시된 평면에 대한 지시된 블록 크기에 의존하는 양만큼 상기 행 내의 데이터 요소들을 회전시키는 단계,
상기 입력 주소 및 상기 지시된 평면에 대한 지시된 블록 크기의 함수로서 각각의 요소에 대한 뱅크 주소를 할당하는 단계, 및
다중-뱅크 메모리에 상기 행을 저장하는 단계 - 각자의 데이터 요소들은 각자의 뱅크의 각자의 뱅크 주소에 저장됨 -
를 포함하는 데이터 요소들의 행 저장 방법. - 다중-뱅크 메모리로부터 데이터 요소들의 블록을 검색하는 방법으로서,
데이터 요소들의 블록의 저장 위치를 나타내는 입력 주소를 수신하는 단계 - 상기 주소는 모드가 판독 모드이고 판독될 데이터가 데이터 요소들의 블록으로 배열되는 것을 지시하고, 또한 데이터 요소들의 블록이 저장될 다중-뱅크 메모리의 평면을 지시하는 명령(CMND)을 더 포함함 -,
상기 지시된 평면에 대하여 상기 다중-뱅크 메모리 내의 평면의 베이스 주소를 나타내는 값 및 블록 단위 데이터 액세스에 적용가능한 블록 크기를 나타내는 값을 검색하는 단계,
상기 입력 주소 및 상기 지시된 블록 크기의 함수로서 복수의 메모리 뱅크에 대한 뱅크 주소를 계산하는 단계,
상기 지시된 블록 크기에 기초하여 상기 메모리 뱅크들에 대해 계산된 뱅크 주소들을 이용하여 상기 메모리로부터의 각자의 데이터 요소들을 갖는 행을 검색하는 단계, 및
상기 데이터 요소들의 블록의 저장 위치 및 상기 지시된 블록 크기에 의존하는 양만큼 상기 행 내의 데이터 요소들을 회전시키고 또한 상기 회전된 데이터 요소들을 갖는 행을 상기 블록으로서 제공하는 단계
를 포함하는 데이터 요소들의 블록 검색 방법. - 제6항에 있어서, 상기 뱅크 주소를 할당하는 단계는,
영상에서의 x 위치를 나타내는 제1 데이터 및 y 위치를 나타내는 제2 데이터를 포함하는 입력 주소를 수신하는 단계,
상기 제1 데이터를 최상위 부분 및 최하위 부분으로 분할하는 단계, 및
상기 제1 데이터의 최상위 부분 및 상기 제2 데이터에 기초하여 상기 뱅크 주소를 할당하는 단계를 포함하는, 데이터 요소들의 행 저장 방법. - 2D 데이터를 다중-뱅크 메모리에 저장하는 방법으로서 - 상기 2D 데이터는 적어도 제1 및 제2 상호 독립적인 좌표의 함수로서의 값들을 포함함 -,
제1 좌표(x) 및 제2 좌표(y)에 대한 값을 수신하는 단계,
모드가 기입 모드이고 기입될 데이터가 데이터 요소들의 블록으로 배열되는 것을 지시하고, 또한 데이터 요소들의 블록이 저장될 다중-뱅크 메모리의 평면을 지시하는 명령(CMND)을 수신하는 단계,
상기 지시된 평면에 대하여 상기 다중-뱅크 메모리 내의 평면의 베이스 주소를 나타내는 값 및 블록 단위 데이터 액세스에 적용가능한 블록 크기를 나타내는 값을 검색하는 단계, 및
상기 지시된 평면에 의존하여, 상기 검색된 베이스 주소를 이용하여, 상기 값을 저장하기 위해 뱅크 내에서 뱅크 인덱스 IB 및 주소 A를 할당하는 단계
를 포함하고,
상기 주소 A는 제2 좌표(y)와 동일하고, 상기 뱅크 인덱스 IB는 IB = (WB.y+x>>np)modNB에 따라 상기 제1 및 제2 좌표 둘 모두의 함수이며, WB는 블록 액세스 모드 동안 상기 데이터가 검색될 수 있는 저장 시설에 저장된 블록의 블록 폭이고 NB는 뱅크의 수이고, 2np는 뱅크 주소 당 데이터 요소들의 수인, 저장 방법. - 삭제
- 삭제
- 삭제
- 삭제
- 삭제
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15416809P | 2009-02-20 | 2009-02-20 | |
US61/154,168 | 2009-02-20 | ||
PCT/NL2010/050086 WO2010095944A1 (en) | 2009-02-20 | 2010-02-22 | Multimode accessible storage facility |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110121641A KR20110121641A (ko) | 2011-11-07 |
KR101412392B1 true KR101412392B1 (ko) | 2014-06-25 |
Family
ID=42124540
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020117021876A KR101412392B1 (ko) | 2009-02-20 | 2010-02-22 | 다중-모드 액세스가능 저장 시설 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8762686B2 (ko) |
EP (1) | EP2399258B1 (ko) |
JP (1) | JP5552692B2 (ko) |
KR (1) | KR101412392B1 (ko) |
WO (1) | WO2010095944A1 (ko) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2399258B1 (en) | 2009-02-20 | 2016-04-06 | Intel Corporation | Multimode accessible storage facility |
US9329834B2 (en) | 2012-01-10 | 2016-05-03 | Intel Corporation | Intelligent parametric scratchap memory architecture |
US11080183B2 (en) * | 2019-08-13 | 2021-08-03 | Elite Semiconductor Memory Technology Inc. | Memory chip, memory module and method for pseudo-accessing memory bank thereof |
TW202129591A (zh) | 2019-09-20 | 2021-08-01 | 日商索尼股份有限公司 | 圖像處理裝置及圖像處理方法以及程式 |
WO2022231683A1 (en) * | 2021-04-27 | 2022-11-03 | Microchip Technology Inc. | Method and apparatus for gather/scatter operations in a vector processor |
US11782871B2 (en) | 2021-04-27 | 2023-10-10 | Microchip Technology Inc. | Method and apparatus for desynchronizing execution in a vector processor |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4845640A (en) * | 1987-03-11 | 1989-07-04 | Megascan Technology, Inc. | High-speed dual mode graphics memory |
US6556725B1 (en) * | 1998-09-11 | 2003-04-29 | Sony Corporation | Data processing device and data order converting method |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2123998B (en) * | 1982-07-21 | 1986-10-22 | Marconi Avionics | Data memory arrangment |
JP2680208B2 (ja) * | 1991-07-17 | 1997-11-19 | 富士通株式会社 | メモリアクセス制御装置 |
JP3352755B2 (ja) * | 1993-05-21 | 2002-12-03 | 株式会社リコー | 立体表現画像描画装置 |
US6031546A (en) * | 1995-06-19 | 2000-02-29 | Canon Kabushiki Kaisha | Image processing apparatus and method |
JP2000090660A (ja) * | 1998-09-11 | 2000-03-31 | Sony Corp | 記憶装置 |
JP3639464B2 (ja) * | 1999-07-05 | 2005-04-20 | 株式会社ルネサステクノロジ | 情報処理システム |
JP2003084751A (ja) * | 2001-07-02 | 2003-03-19 | Hitachi Ltd | 表示制御装置およびマイクロコンピュータならびにグラフィックシステム |
WO2005104027A2 (en) | 2004-04-22 | 2005-11-03 | Koninklijke Philips Electronics N.V. | Data processing apparatus that provides parallel access to multi-dimensional array of data values |
CN101218604A (zh) | 2005-05-10 | 2008-07-09 | Nxp股份有限公司 | 具有块可访问缓冲存储器的图像处理电路 |
CN101454799B (zh) | 2006-05-24 | 2012-07-04 | Nxp股份有限公司 | 用于对图像数据实施基于块和行的处理的集成电路装置 |
EP2399258B1 (en) | 2009-02-20 | 2016-04-06 | Intel Corporation | Multimode accessible storage facility |
-
2010
- 2010-02-22 EP EP10707692.9A patent/EP2399258B1/en not_active Not-in-force
- 2010-02-22 KR KR1020117021876A patent/KR101412392B1/ko active IP Right Grant
- 2010-02-22 US US13/202,254 patent/US8762686B2/en not_active Expired - Fee Related
- 2010-02-22 JP JP2011551027A patent/JP5552692B2/ja not_active Expired - Fee Related
- 2010-02-22 WO PCT/NL2010/050086 patent/WO2010095944A1/en active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4845640A (en) * | 1987-03-11 | 1989-07-04 | Megascan Technology, Inc. | High-speed dual mode graphics memory |
US6556725B1 (en) * | 1998-09-11 | 2003-04-29 | Sony Corporation | Data processing device and data order converting method |
Also Published As
Publication number | Publication date |
---|---|
US8762686B2 (en) | 2014-06-24 |
JP5552692B2 (ja) | 2014-07-16 |
EP2399258A1 (en) | 2011-12-28 |
JP2012518831A (ja) | 2012-08-16 |
WO2010095944A1 (en) | 2010-08-26 |
EP2399258B1 (en) | 2016-04-06 |
US20120042149A1 (en) | 2012-02-16 |
KR20110121641A (ko) | 2011-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101412392B1 (ko) | 다중-모드 액세스가능 저장 시설 | |
KR100804898B1 (ko) | 이미지 회전을 위한 방법 및 장치 | |
KR100817057B1 (ko) | 동일한 픽셀 데이터 그룹에 포함되는 픽셀 데이터들을메모리의 동일한 뱅크 어드레스로 매핑하는 매핑 방법 및비디오 시스템 | |
US6157751A (en) | Method and apparatus for interleaving a parallel image processing memory | |
US6057861A (en) | Mip map/rip map texture linear addressing memory organization and address generator | |
JP5623494B2 (ja) | ビデオデータのインターリーブされた記憶用のシステム | |
KR20120049851A (ko) | 소스 이미지의 뒤틀린 버전을 표시하는 장치 및 방법 | |
US6825841B2 (en) | Granularity memory column access | |
JP3166447B2 (ja) | 画像処理装置及び画像処理方法 | |
EP0569218A2 (en) | Circuit for rotating a ditigal image | |
US20080301400A1 (en) | Method and Arrangement for Efficiently Accessing Matrix Elements in a Memory | |
KR100297716B1 (ko) | 높은멀티비트자유도의반도체메모리장치 | |
EP0549316A2 (en) | Page buffer rotator | |
US20120218279A1 (en) | Image processing apparatus and memory access method thereof | |
EP1882235A2 (en) | Image processing circuit with block accessible buffer memory | |
US7366823B2 (en) | Method and system for memory access | |
JPH02173858A (ja) | マルチプロセツサ・システムに於いて多数のメモリ位置にアドレスを指定するための方法及び装置 | |
EP2685422A1 (en) | Memory access device | |
JP2008278442A (ja) | 画像処理装置 | |
JP2728663B2 (ja) | 画像処理装置 | |
JP4997418B2 (ja) | Dramアクセス方法 | |
JP4696515B2 (ja) | メモリマッピング方法及びメモリインターフェイス回路 | |
JP2007299211A (ja) | メモリ制御装置 | |
JP2006309776A (ja) | 画像データ記憶装置 | |
JPH09259035A (ja) | 画像変換処理用半導体記憶装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
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: 20170601 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20180529 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20190530 Year of fee payment: 6 |