KR20090064394A - 복수의 메모리 뱅크를 이용한 데이터 처리 - Google Patents

복수의 메모리 뱅크를 이용한 데이터 처리 Download PDF

Info

Publication number
KR20090064394A
KR20090064394A KR1020097005928A KR20097005928A KR20090064394A KR 20090064394 A KR20090064394 A KR 20090064394A KR 1020097005928 A KR1020097005928 A KR 1020097005928A KR 20097005928 A KR20097005928 A KR 20097005928A KR 20090064394 A KR20090064394 A KR 20090064394A
Authority
KR
South Korea
Prior art keywords
plane
block
memory
data
circuit
Prior art date
Application number
KR1020097005928A
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 KR20090064394A publication Critical patent/KR20090064394A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0207Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/24Systems for the transmission of television signals using pulse code modulation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Image Input (AREA)
  • Executing Machine-Instructions (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Image Processing (AREA)

Abstract

데이터 처리 회로는 명령어 실행 회로(14) 및 복수의 메모리 뱅크를 포함한다. 이 명령어 실행 회로(14)는 병렬로 데이터값의 블록(예를 들면, 픽셀의 1 차원 블록에 대한 픽셀값)을 처리할 수 있다. 이 데이터값은 메모리 뱅크에 저장되고(바람직하게는 케싱됨) 병렬로 제공된다. 복수의 변환 회로(22)는 명령어 실행 회로의 블록 어드레싱 출력과 메모리 뱅크의 어드레스 입력 사이에서 연결된다. 이 변환 회로는 상이한 메모리 뱅크로부터 병렬로 하나 보다 많은 블록을 어드레싱하는 가능성을 제공한다. 이 데이터는 라우팅 회로에 의해 선택된 메모리 뱅크로부터 실행 회로로 라우팅된다. 일실시예에 있어서, 각 변환 회로는 뱅크의 모든 메모리를 어드레싱할 수 있다. 또 다른 실시예에서 있어서, 변환 회로는 예를 들면 작은 블록으로 액세스되는 데이터를 위한 극소수의 뱅크 및 더 높은 병렬화를 가지고 액세스되는 데이터를 위한 더 많은 뱅크를 이용하여, 메모리 뱅크 전역에 픽셀 이미지의 데이터를 분산시키는 복수의 방법을 지원한다.
메모리, 데이터, 뱅크, 회로, 라우팅

Description

복수의 메모리 뱅크를 이용한 데이터 처리{DATA PROCESSING WITH A PLURALITY OF MEMORY BANKS}
본 발명은 다차원 데이터 어레이를 처리하기 위한 처리 회로 및 방법에 관한 것이다.
국제특허출원번호 제WO 2005/104027호는 픽셀 위치 블록을 위한 픽셀 값으로의 병렬 액세스를 지원하는 메모리를 구비하는 이미지 처리 회로를 공개한다. 잘 알려진 바와 같이, 비디오 이미지는 가령 약 1000x500개 픽셀 위치의 2 차원 어레이를 이용하여 표현될 수 있으며, 각각은 대응하는 픽셀값을 갖는다. 처리를 목적으로, 이러한 이미지에서 가령 32x32개 위치의 더 작은 윈도우로부터 픽셀값이 고속 메모리 내에 저장된다. 알려진 처리 회로는 이러한 윈도우 내에서의 가령 4x4개 픽셀의 더 작은 블록내에 있는 픽셀에 대하여 픽셀값으로의 병렬 액세스를 제공한다.
이러한 병렬 액세스 형태를 제공하기 위해, 고속 메모리는 세트로 조직된, 복수의 병렬로 액세스 가능한 메모리 뱅크를 구비하는 작업 메모리를 포함한다. 윈도우로부터 픽셀 위치의 라인을 따라 연속적인 위치를 위한 픽셀값이 메모리 뱅크 전역에, 일반적으로는 다른 뱅크 내에서의 동일한 어드레스에서 분산되어 저장되 며, 연속적인 어드레스를 랩 어라운드(wrap around)한다. 각 다음 라인은 선행하는 라인으로부터 계속되어 저장되는데, 선택적으로 현재 윈도우 다음의 영역을 위한 픽셀값을 사전인출(prefetch)하기 위해 연속 라인 사이에 있는 일부 메모리 공간을 이용하여 저장된다.
블록은 저장된 윈도우의 픽셀 위치 서브 세트를 포함한다. 블록이 작업 메모리 내에 어드레싱되는 경우, 블록의 상단 좌측 코너의 좌표가 표시된다. 이 정보로부터, 처리 회로는 라인의 시작점에서의 픽셀 위치를 위한 픽셀 값과 뱅크내에서의 이들의 어드레스를 포함하는 뱅크를 식별한다. 처리 회로는 이들 뱅크 및 후속 뱅크로부터의 픽셀값을 계산 회로의 각 입력으로 라우팅하고, 여기서 블록의 좌표에 관련한 특정 위치로부터의 픽셀값이 요구된다.
이러한 작업 메모리로의 액세스 형태에 대한 제어는, 윈도우의 상단 좌측 코너를 위한 픽셀값이 저장되는 시작 뱅크, 이 뱅크 내에서의 이 픽셀의 어드레스, 윈도우의 저장된 라인의 길이, 라인이 랩 어라운드(warp around)되기 전의 뱅크의 개수 등에 관점에서, 그 윈도우의 픽셀값이 어떻게 저장되는 지를 설명하는 블록 플러스 정보의 상단 좌측 코너의 좌표를 요구한다.
블록으로부터의 픽셀값으로 실행되는 일반적인 연산은 블록 매칭, 예를 들면 모션 벡터 평가의 일부로서, DCT(Discrete Cosine Transform) 계산 등을 포함한다. 이들 연산 중 일부는 상이한 이미지로 취해진다면 복수의 블록을 포함한다. 이러한 복수의 액세스를 지원하기 위해, 위에 기술된 타입의 복수의 작업 메모리가 제공될 수 있다. 그러나, 이는 상당한 회로 영역을 요구한다.
특히, 다차원 데이터 어레이의 처리를 제공하는 것이 목적으로서, 여기에 복수의 상이한 윈도우가 액세스되어야하는 경우 더 적은 오버헤드가 요구된다. 본 발명은 독립 청구항에 의해 한정된다. 종속 청구항은 유리한 실시예를 한정한다.
본 발명에 따른 데이터 처리 회로는 명령어 실행 회로 및 가령 픽셀 위치의 블록에 대한 픽셀값과 같은 위치 블록을 위한 데이터값에 병렬로 액세스하는 명령어를 실행하기 위한 복수의 메모리 뱅크를 포함한다. 이 실행된 명령어는 한 평면(plane)의 복수 선택 및 이 평면 내의 위치 블록의 표시를 정의한다. 복수의 변환 회로가 이 선택을 동시에 메모리 뱅크의 선택과 메모리 뱅크 내에서의 어드레스를 변환하도록 제공된다. 따라서, 동시에 복수의 블록을 어드레싱하는 명령어가 실행될 수 있다.
유리하게는, 라우팅 회로는 명령어 실행 회로의 임의 블록 데이터 포트와 메모리 뱅크 중 어느 하나 또는 메모리 뱅크의 임의 세트 사이에서 어드레싱된 블록을 위한 데이터값의 라우팅을 제공한다. 따라서, 이 명령어에서의 상이한 함수에 대하여 블록을 어드레싱하는 상이한 블록 데이터 포트는 모든 메모리 뱅크 또는 메모리 뱅크의 세트로의 액세스를 공유할 수 있으며, 따라서 명령어 실행 회로의 상이한 블록 포트가 상이한 시간에 동일한 윈도우를 어드레싱해야 한다면 하나의 뱅크로부터 또 다른 하나의 뱅크로의 복사가 요구되지 않는다.
실시예에 있어서, 평면 선택의 표시는 메모리 뱅크의 가변 개수를 한정할 수 있으며, 이 메모리 뱅크 내에 블록을 위한 데이터값이 위치될 수 있다. 따라서, 예를 들면 하나 이상의 제 1 블록을 위한 데이터는 하나의 메모리 뱅크 세트 전역에 분산되게 위치될 수 있고, 하나 이상의 제 2 블록을 위한 데이터는 2개의 메모리 뱅크 세트 전역에 분산되게 위치될 수 있다. 선택적으로는, 하나 이상의 제 3 블록을 위한 데이터는 4개의 메모리 뱅크 세트 전역에 분산되게 위치될 수 있다. 이 명령어는 어떤 메모리 뱅크가 그리고 얼마나 많은 메모리 뱅크가 사용되는지를 정의한다. 뱅크의 한정된 개수에 따라 더 많은 또는 더 적은 개수의 뱅크가 명령어 실행 회로를 이용하여 위치 블록을 위한 데이터값을 액세스하기 위해 사용될 수 있다. 따라서, 블록으로의 병렬 액세스의 상이한 형태가 서로 혼합되어 지원될 수 있다.
일실시예에 있어서, 동시에 각 평면에 대하여 평면 정보를 저장하기 위해 평면 정보 룩업 메모리가 제공된다. 이 평면 정보는 실행된 명령어에 의해 제공된 평면의 식별을 이용하여 액세스된다. 각 평면에 대한 평면 정보는 메모리 뱅크 중 어떤 것이 이 평면을 위한 데이터값을 저장하기 위해 사용됨을 나타내는 정보를 포함한다.
일실시예에 있어서, 변환 회로의 각각은 각 세트 내에서 메모리 뱅크의 어드레싱을 제어하기 위해, 메모리 뱅크의 각 세트에 연결된다. 추가 라우팅 회로는 선택된 평면의 제어하에서 변환 회로 중 각각에 위치 블록의 선택 표시를 라우팅하도록 제공된다. 따라서, 변환 회로와 메모리 뱅크 세트 사이에 추가적인 회로가 요구되지 않는다.
추가 실시예에 있어서, 추가 라우팅 회로는 블록 어드레싱 출력 중 적어도 하나로부터의 위치 블록의 선택 표시를 변환 회로 중 2개 이상으로 라우팅하도록 구성된다. 이는 메모리 뱅크의 가변 개수 사용을 지원하며, 이 메모리 뱅크 내에서 블록을 위한 데이터값이 위치될 수 있다.
일실시예에 있어서, 이 명령어는 어드레싱되는 위치 블록의 사이즈 및/또는 형상을 정의한다. 각 블록은 2 차원 어레이의 N x M개 위치 형상을 가질 수 있으며, 예를 들면 상이한 형상은 정수 N, M값의 상이한 조합에 대응한다. 이 경우에 있어서, N과 M의 곱은 사이즈이다. 이 변환 회로는 표시된 사이즈 및/또는 형상에 따라 변환을 실행한다.
이들 및 다른 목적 및 이점은 이하의 도면을 이용하여 예시적인 실시예의 설명으로부터 명백하게 될 것이다.
도 1은 처리 회로를 보여주는 도면.
도 2는 벡터 액세스 유닛 및 메모리 뱅크 세트를 보여주는 도면.
도 3은 메모리 뱅크의 사용을 예시하는 도면.
도 4는 세트 액세스 회로를 보여주는 도면.
도 5는 벡터 액세스 유닛을 보여주는 도면.
도 6은 메모리 뱅크의 사용을 예시하는 도면.
도 7은 메모리 액세스의 흐름도를 보여주는 도면.
도 1은 뱅크식 메모리 회로(10), 벡터 액세스 유닛(12), 복수의 기능 유 닛(14), 명령어 제어 회로(16), 메모리 액세스 유닛(18) 및 메인 메모리(19)를 포함하는 처리 회로를 보여준다. 명령어 제어 회로(16)는 실행될 연산을 선택하기 위한 기능 유닛(14), 이 연산에 수반된 데이터의 메모리 위치를 선택하기 위한 벡터 액세스 유닛(12), 메인 메모리와 뱅크식 메모리 회로 사이에서의 전달을 제어하기 위한 메모리 액세스 유닛(18)에 연결된 출력을 갖는다. 기능 유닛(14)은 연산에 수반된 피연산자 데이터를 수신하기 위한 벡터 액세스 유닛(12)의 복수 포트에 연결되며, 선택적으로는 결과 데이터를 다시 기록하기 위한 포트에 연결된다. 벡터 액세스 유닛(12)은 데이터를 액세스하기 위한 뱅크식 메모리 회로(10)에 연결된다. 메모리 액세스 유닛(18)은 뱅크식 메모리 유닛(10)과 메인 메모리(19) 사이에 연결된다. 일실시예에 있어서, 단일의 기능 유닛이 복수의 기능 유닛 대신에 사용될 수 있다.
도 2는 더 상세하게 벡터 액세스 유닛(12)과 뱅크식 메모리 회로(10)을 보여준다. 뱅크식 메모리 회로(10)는 복수의 메모리 뱅크(26) 세트(20), 세트(20)의 각각에 대한 어드레스 계산 회로(22) 및 제어 회로(24)를 포함한다. 한 세트당 4개의 메모리 뱅크 및 4개 세트가 예시를 위해 도시된다. 실제적으로는, 다른 개수의 세트 및/또는 세트당 다른 개수의 메모리 뱅크가 사용될 수 있다.
뱅크식 메모리 회로(10)는 메인 메모리(19) 내에 데이터값의 일부 복사본을 저장하기 위해 사용된다. 메인 메모리(19) 내에 있는 데이터는 위치 어레이(일반적으로는 2개 이상의 차원 어레이)내 각 위치에 대한 데이터값을 나타낸다. 뱅크식 메모리 회로(10)는 이러한 어레이에서의 위치의 윈도우에 대하여 이들 데이터값을 저장하지만, 그러나 모든 위치를 위해서는 아니다. 뱅크식 메모리 회로(10)는 윈도우 내에서의 위치의 선택가능한 블록을 위한 데이터값으로의 병렬 액세스를 제공한다. 일반적으로는, 이들 블록의 사이즈는 윈도우의 사이즈보다 더 작다.
연산 동안, 윈도우는 이동되므로, 따라서 뱅크식 메모리 회로(10)는 순차적으로 어레이에서의 상이한 위치에 윈도우를 위한 데이터값을 저장한다. 윈도우의 이동을 실현하기 위해 데이터 이동량을 최소화하도록, 구 윈도우와 새로운 윈도우 둘 다에 속하는 위치를 위한 데이터값이 메모리 뱅크 내에서 동일한 위치에 남는다. 그 결과로서, 윈도우의 순차적 이동은 윈도우에서의 위치와 뱅크식 메모리 회로(10) 내에서의 메모리 위치 사이에서의 관계가 순차적으로 변경되는 효과를 갖는다.
명령어 제어 회로(16)는 프로그램 메모리, 이 프로그램 메모리 내에 연속적인 명령어를 어드레싱하기 위한 순차기 및 개별 피연산자를 저장하기 위한 레지스터 파일을 포함할 수 있다. 어드레싱된 명령어는 VLIW형 명령어일 수 있는데, 이 VLIW형 명령어는 다른 기능 유닛에 대한 복수의 연산을 위한 동작 선택 코드와 피연산자 및 결과 레지스터 어드레스 선택 코드를 포함한다. 대안적으로는, 단일 기능 유닛을 위한 단일 연산 명령어가 단일 연산 선택 코드와 피연산자 선택 코드 및 선택된 연산을 위한 결과 레지스터 어드레스를 가지고 이용될 수 있다. 일실시예에 있어서, 피연산자 선택 코드 어드레스 레지스터와 어드레싱된 레지스터의 출력이 벡터 액세스 유닛(12)에 연결되어 블록 선택을 제어할 수 있다. 대안적으로는, 명령어 자체로부터의 피연산자 선택 코드가 벡터 액세스 유닛(12)에 연결될 수 있거 나, 또는 명령어로부터의 코드와 이 명령어에 의해 어드레싱된 레지스터의 조합이 사용될 수 있다.
비록 이 회로가 위치의 2개 이상 차원 어레이를 위한 데이터를 사용하는 임의 종류의 처리에 적용될 수 있을지라도, 이 회로는 2차원 어레이를 요구하는 이미지 처리 동작에 대해 기술될 것이다. 이는 예를 들면, 비디오 압축 또는 압축 해제와 같은 비디오 이미지 처리에 적용될 수 있다. 본 설명을 위해 사용된 도면 내에서 많은 병렬 신호 전도체는 단일 라인에 의해 표시되는 점을 이해해야한다. 더욱이, 바람직하게는 확장적인 파이프라이닝(pipelining)이 사용될 수 있는 점, 즉 설명된 연산의 상이한 연속적 스테이지가 상이한 실행 사이클로 실행될 수 있고 반면에 나중 연산의 더 빠른 스테이지는 또한 진행중인 점을 이해해야한다. 그러나, 파이프라이닝은 설명되지 않을 것이며, 이는 상기 연산을 이해하는데 필요하지 않기 때문이다.
연산시, 처리 회로는, 예를 들면 이미지 처리를 위한 프로그램인 프로그램 명령어를 처리한다. 메인 메모리(19)는 완전한 이미지를 표현하는 데이터를 저장한다. 이미지는 픽셀 위치의 2 차원 어레이와 이들 픽셀 위치 모두를 위한 픽셀값에 의해 정의된다. 프로그램은 픽셀 위치 블록을 위한 픽셀값에 병렬 연산을 적용하기 위한 명령어를 포함한다. 이 블록은 예를 들면, 4x4개 위치 또는 8x8개 위치의 블록과 같은 완전한 이미지 보다 훨씬 더 작다. 병렬 연산을 실행하기 위한 명령어는 한 블록을 어드레싱하고, 명령어의 실행은 뱅크식 메모리 회로(10)에서 병렬로 블록 내의 픽셀 위치에 대한 픽셀값을 로딩 및/또는 저장하는 것을 포함할 수 있다.
뱅크식 메모리 회로(10)는 완전한 블록을 위한 픽셀값으로의 병렬 액세스를 제공한다. 실제적으로는, 뱅크식 메모리(10)는 픽셀 위치의 윈도우를 위한 픽셀값을 저장하며, 이 윈도우는 한 블록보다 더 크다. 메모리 액세스 유닛(18)은 메인 메모리(19)와 뱅크식 메모리(10) 사이의 픽셀값의 전달을 제어한다. 이러한 목적을 위하여, 메모리 액세스 유닛(18)은 명령어의 실행 일부로서, 초기화 커맨드, 윈도우 이동 커맨드, 로드 커맨드 및 저장 커맨드를 포함하는 복수의 상이한 타입의 커맨드를 실행하기 위해 구성될 수 있다.
이 초기화 커맨드는 제어 회로(24)에 대한 평면을 정의한다. 초기화 커맨드는, plane_id를 정의하기 위한 파라메터, 이 평면을 위한 픽셀값이 저장될 하나 이상의 메모리 뱅크 세트를 선택하기 위한 파라메터, 픽셀 위치를 위한 픽셀값이 선택된 메모리 뱅크 세트들 내에 동시에 저장될 픽셀 위치의 윈도우의 차원을 정의하기 위한 파라메터, 현재 윈도우에 인접한 픽셀 위치의 사전인출 영역(prefetch area)의 차원을 정의하는 파라메터 및 이 평면을 위한 픽셀값이 저장될 메모리 뱅크 내에서의 시작 어드레스를 정의하기 위한 파라메터를 가질 수 있다. 선택적으로는, 이 초기화 커맨드는 픽셀 위치의 상이한 라인을 위하여 사용될 선택된 메모리 뱅크 세트들 내의 서브 세트를 정의하기 위한 파라메터를 가질 수 있다. 선택적으로는, 윈도우의 차원 및 사전인출 영역은 표준 윈도우 사이즈를 참조하여 한정될 수 있다.
실행되는 경우, 윈도우 이동 커맨드는 제어 회로(24)로 하여금 이미지 내에 서 현재 윈도우의 위치를 변경하도록 한다. 이는 메모리 뱅크 내의 윈도우의 시작 어드레스를 표현하는 평면 정보를 갱신하는 것을 수반한다. 덧붙여, 현재 윈도우에 있는 모든 픽셀 위치를 위한 픽셀값이 로딩될때까지 다음 윈도우에 있는 픽셀 위치를 위한 픽셀값의 사전인출 및/또는 기능정지(stalling)를 트리거하기 위해 위 실행이 사용될 수 있다. 윈도우 이동 커맨드는 그 커맨드가 가해지는 plane_id를 정의하기 위한 파라메터, 스캔 모드 선택 파라메터 및 선택적으로는 관계된 메모리 뱅크 세트를 선택하기 위한 선택 파라메터를 가질 수 있다.
실행되는 경우, 로드 및 저장 커맨드는 픽셀 위치의 어드레싱된 블록을 위한 픽셀값이 선택된 평면을 위해 액세스되도록 한다. 이들 명령어는 plane_id를 선택하기 위한 파라메터 및 이 커맨드에 수반된 블록을 어드레싱하는 좌표를 가질 수 있다. 선택적으로는, 또한 수반된 세트 또는 세트들이 선택된다. 로드 또는 저장 커맨드의 실행은 선택된 블록의 어드레스에 의해 결정된 어드레스에서의 평면, 선택된 평면을 위한 메모리 뱅크 내에서의 시작 어드레스 및 현재 윈도우의 시작 어드레스를 저장하는 메모리 뱅크 세트 또는 메모리 뱅크 세트들로의 액세스를 수반한다.
명령어 제어 회로(16)가 픽셀 블록에 연산을 가하기 위한 명령어를 처리하는 경우, 명령어 제어 회로(16)는 이 명령어를 위한 피연산자(들)로서 선택되는 블록 또는 복수의 블록을 나타내기 위해 벡터 액세스 유닛(12)에 선택 정보를 갖는 커맨드를 가한다. 응답으로, 벡터 액세스 유닛(12)은 기능 유닛(14)에 병렬로 선택된 블록 또는 블록들을 위한 픽셀값을 제공한다. 명령어 제어 회로(16)는 기능 유 닛(14)에 연산 선택 코드를 가하여 픽셀값에 가해진 연산을 제어한다.
일반적인 예의 연산은 블록 비교이고, 이 비교는 비디오 압축 계산 또는 인트라 프레임 압축 연산의 일부로서 모션 벡터 평가를 위해 사용될 수 있다. 블록 비교는 가능하게는 상이한 이미지로부터 한 쌍의 선택된 블록 내에 있는 픽셀값의 픽셀 단위 감산을 수반한다. 이러한 연산을 위하여, 상이한 블록 내의 대응하는 위치를 위한 픽셀값이 기능 유닛(14)에 조합으로 제공되어야만 한다.
뱅크식 메모리(10)는 복수의 윈도우를 위한 픽셀값의 저장을 함께 제공하므로, 따라서 상이한 윈도우로부터의 픽셀 위치의 블록을 위한 픽셀값은 서로 혼합되어 액세스될 수 있다. 전형적인 예에서, 각 윈도우는 상이한 이미지로부터의 픽셀값 또는 동일 또는 상이한 이미지로부터의 상이한 컬러 평면에 대한 픽셀값을 포함하지만, 대안적으로는 다른 윈도우가 동일한 이미지로부터의 픽셀값 및/또는 상이한 윈도우 위치에서의 컬러 평면으로부터의 픽셀값을 포함할 수 있다.
도 3은 뱅크식 메모리(10) 내에 있는 복수의 윈도우 저장에 대한 제 1 실시예의 예시를 개략적으로 예시한다. 직사각형(30)은 각 윈도우를 위한 픽셀값(30)의 저장을 나타내며, 각각은 세트 내의 연속적인 어드레스에 분산되며, 어드레스의 개수는 직사각형의 높이에 의해 표시된다. 하나 이상의 블록을 액세스하는 명령어가 실행되는 경우, 명령어 제어 회로(16)는 윈도우 내에 있는 블록의 x, y 좌표와 "plane_id"를 벡터 액세스 유닛(12)에 공급한다. plane_id는 어드레싱된 윈도우를 식별한다. plane_id는 메모리 뱅크내에 있는 픽셀값의 어드레스를 계산하기 위해 x,y 좌표와 결합될 수 있는 평면 정보를 언급한다. 이 계산은 평면을 위한 픽셀값 이 메모리 뱅크에 저장되는 방식에 의존한다.
윈도우를 위한 픽셀값은 그 자체로 알려진 방식으로 메모리 뱅크 전역에 분산되게 저장되므로 윈도우 내에 있는 행을 따른 픽셀 위치의 세그먼트 및 연속 행 그룹을 위한 픽셀값이 상이한 메모리 뱅크로부터 병렬로 액세스될 수 있다. 즉, 픽셀값은 뱅크 전역에 분산되게 저장되므로, 동일한 블록에 속할 수 있는 픽셀값이 동일한 메모리 뱅크 내에 있는 상이한 어드레스에 저장되지 않는다. 이는 그 자체로 알려져 있다.
일실시예에 있어서, 이 분포는 충분한 개수의 메모리 뱅크를 이용하는 것을 수반하여 한 블록 높이 보다 적게 떨어진 한 블록의 상이한 행이 상이한 메모리 뱅크 내에 저장될 수 있게 한다. 더욱이, 이 실시예에 있어서, 이 분산은 한 블록 폭보다 적게 떨어진 한 행에 있는 상이한 픽셀 위치를 위한 픽셀값을 저장하기 위해 상호 상이한 메모리 뱅크를 이용하는 것을 수반한다. 덧붙여, 일실시예에 있어서, 인접한 픽셀 위치를 위한 복수의 픽셀값은 선택적으로 동일한 어드레스의 메모리 뱅크에 함께 저장될 수 있다.
초기에 윈도우의 상단 좌측 코너의 픽셀 위치를 위한 픽셀값이 평면에 예약된 어드레스 범위 중 제 1 어드레스의 제 1 메모리 뱅크 내에 저장된다. 그러나, 윈도우가 이동되는 경우, "새로운" 윈도우 내에 있는 픽셀 위치를 위한 픽셀값은 연속적으로 메모리 뱅크의 "구" 윈도우 내에 있는 픽셀 위치를 위한 픽셀값을 대체한다. 이는 다수의 이동 이후, 평면에 예약되어 있는 어드레스 범위 중 제 1 어드레스에서의 제 1 메모리 뱅크는 현재 윈도우의 상단 좌측 코너에 이 위치를 위한 픽셀값을 더 이상 저장하지 않고, 대신에 그 윈도우 안의 어딘가 다른 곳에 픽셀 위치를 위한 픽셀값을 저장한다는 효과를 갖는다.
일실시예에 있어서, 평면 정보는 해당 윈도우 내에 픽셀값을 저장하기 위해 사용된 메모리 뱅크에서의 어드레스 범위, 저장된 윈도우의 좌표 및 이 윈도우의 상단 좌측 코너에 픽셀 값이 저장되는 시작 메모리 뱅크를 가리킨다. 상이한 윈도우 저장 방식이 사용될 수 있는 추가 실시예에 있어서, 이 평면 정보는 또한 픽셀 값이 메모리 뱅크 전역에 분포되는 방식을 가리키는 정보를 포함한다.
도 4는 메모리 뱅크 세트를 액세스하기 위한 세트 액세스 회로(40)를 개략적으로 보여준다. 복수의 메모리 뱅크 세트가 사용되는 경우, 이러한 타입의 복수의 세트 액세스 회로가 사용될 수 있으며, 각 개별 메모리 뱅크 세트에 대하여 적어도 각 하나가 사용될 수 있다. 세트 액세스 회로(40)는 평면 정보 룩업 메모리(42), 어드레스 변환 회로(44) 및 라우팅 회로로서 동작하는 데이터 크로스바 스위치(46)를 포함한다.
평면 정보 룩업 메모리를 위한 수개의 대안적인 구현예가 존재한다. 실시예에 있어서, 평면 정보 룩업 메모리(42)는 복수의 레지스터 세트를 포함하되, 각 세트는 각 plane_id를 위한 것이고, 상이한 레지스터는 상이한 평면 성질을 제어한다. 대안적으로서, 평면 정보 룩업 메모리(42)는 평면 성질을 제어하기 위한 데이터를 포함하는 상이한 메모리 위치를 구비하는 메모리 매트릭스를 포함할 수 있다. 또 다른 대안으로서, 명령어에 의해 어드레싱되는 레지스터 파일 내에서 범용 레지스터가 평면 정보를 저장 및 검색하기 위해 사용될 수 있다. 이 대안에서, 평면 정 보의 검색은 종래 레지스터 액세스로서 실행된다.
이 회로는 평면 정보 룩업 메모리(42)에 연결된 plain_id 선택 입력(41)을 갖는다. 평면 정보 룩업 메모리(42)는 어드레스 변환 회로(44) 및 데이터 크로스바 스위치(46)의 제어 입력에 연결되는 출력을 갖는다. 어드레스 변환 회로(44)는 블록 좌표 정보를 수신하기 위한 입력(43)에 연결된다. 어드레스 변환 회로(44)는 상이한 메모리 뱅크(미도시)에 연결된 어드레스 출력(44a)을 갖는다. 데이터 크로스바 스위치(46)는 메모리 뱅크(미도시)의 데이터 출력에 연결되는 입력과 기능 유닛(들)(미도시)에 병렬로 픽셀값을 제공하기 위한 출력(45)을 갖는다. 비록 데이터 출력(45)만을 갖는 실시예가 예시를 목적으로 도시되었을 지라도, 대안적으로 데이터 입력 또는 데이터 입력/출력이 제공될 수 있고, 이 회로는 메모리 뱅크의 데이터 입력 또는 데이터 입력/출력에 연결될 수 있는 것을 이해해야만 한다.
연산에 있어서, 명령어 제어 회로(16)는 세트 액세스 회로(40)에 plane_id 및 블록 좌표를 공급한다. 응답으로, 세트 액세스 회로(40)는 평면 정보 룩업 메모리(42)로부터 평면 정보를 검색하기 위해 plane_id를 사용한다. 어드레스 변환 회로(44)는 검색된 평면 정보 및 블록 좌표를 이용하여 메모리 뱅크(미도시)를 액세스하기 위한 어드레스를 계산한다. 데이터 크로스바 스위치(46)는 검색된 평면 정보 및 선택적으로는 블록 좌표를 이용하여 메모리 블록(미도시)의 데이터 연결 및 기능 유닛(미도시)으로의 데이터 연결 사이의 연결을 제어한다.
평면 정보 룩업 메모리(42)는 동일한 메모리 뱅크 세트 내에 있는 상이한 윈도우에 대하여(예를 들면 상이한 윈도우(30)에 대하여), 복수의 plane_id값을 위한 평면 정보를 동시에 저장하기 위한 메모리 공간을 갖는다. 평면 정보 룩업 메모리(42)는 plane_id의 공급된 값에 의해 선택된 평면에 평면 정보를 공급한다.
제 1 실시예에 있어서, 세트 액세스 회로(40)는 상이한 메모리 뱅크로부터, 한번에 윈도우의 한 행에만 있는 픽셀 위치의 세그먼트를 위한 픽셀값로의 병렬 액세스, 즉 Nx1 크기의 블록(N은 블록폭임)으로의 병렬 액세스를 지원한다. 이러한 목적을 위한 어드레스 계산은 그 자체로 알려져 있다. 이 실시예에 있어서, 참고를 위한 예시로서, 어드레스 변환 회로(44)는 A0+x/K + w'*y mod L로부터의 블록의 시작점(예를 들면 상단 좌측 코너)의 픽셀값을 저장하는 메모리 뱅크의 지수(index)를 계산할 수 있다. 여기서 A0은 현재 윈도우(평면 정보에서 정의된 바와 같이)의 제 1 픽셀값을 저장하는 메모리 뱅크의 지수이고, x 및 y는 블록의 시작점 어드레스(윈도우의 시작에 관계가 있는 좌표)를 형성하고, K는 각 뱅크에 저장된 위치의 개수이고, w'는 윈도우(평면 정보에서 정의된 바와 같이)의 연속적인 라인의 시작 뱅크 사이의 간격이고, L은 윈도우(평면 정보에서 정의된 바와 같이)를 위해 사용된 뱅크의 개수이다.
시작점의 픽셀값을 저장하는 메모리 뱅크의 계산된 지수는 시작점을 위한 픽셀값이 공급되어야만 하는 포트부(54)에 이 지수를 가지고 메모리 뱅크로부터 픽셀값(또는 값)을 라우팅하기 위해 데이터 크로스바 스위치를 제어하기 위해 사용된다.
덧붙여, 어드레스 변환 회로(44)는 블록 내의 픽셀값이 저장되는 메모리 뱅크에서의 어드레스를 계산할 수 있다. 어드레스 변환 회로(44)는 예를 들면 B0(평 면 정보에 의해 정의된 바와 같이, 이 윈도우의 상단 좌측 코너를 위한 픽셀값이 저장되는 어드레스)에 (x/K + w'*y-A0)/L의 정수부를 더한 것으로부터 시작점에 대한 어드레스를 계산할 수 있다. 어드레스 변환 회로(44)는 초기 뱅크보다 더 작은 지수를 갖는 이들 뱅크 내에서의 이러한 어드레스에 하나의 픽셀값을 더한 것을 계산할 수 있다. 이 계산된 어드레스는 메모리 뱅크에서 메모리 위치를 어드레싱하기 위해 사용된다.
제 2의 더 복잡한 실시예에 있어서, 세트 액세스 회로(40)는 상이한 메모리 뱅크로부터 복수의 인접한 행에 있는 복수의 세그먼트에서의 픽셀 위치를 위한 픽셀값으로의 액세스, 즉 하나의 픽셀 위치보다 더 큰 블록폭 N과 블록 높이 M을 갖는 NxM 크기의 블록으로의 액세스를 지원하도록 구성될 수 있다. 이해되는 바와 같이, 이는 블록 내에서 상이한 라인을 위한 어드레스 변환 회로(44)에 의한 유사한 어드레스 계산 및 상이한 메모리 뱅크의 상이한 행에 있는 동일한 열에서의 픽셀 위치를 위한 픽셀값의 분산된 저장을 수반한다.
추가 실시예에 있어서, 블록의 사이즈 및/또는 형상은 동적으로 선택가능하다. 따라서, 예를 들면 NxM개 블록이 선택될 수 있으며, 여기서 정수 N과 M은 상이한 명령어를 위한 다수의 상이한 값을 취할 수 있다. N과 M은 예를 들면 명령어 내에, 또는 평면 정보 내에 표시될 수 있다. 이러한 실시예의 한 예시에 있어서, 어드레스 변환 회로(44)는 선택된 N과 M 값에 관한 정보를 수신하고 이 정보를 이용하여 필요한 뱅크를 계산한다.
명령어 제어 회로(16)는 복수의 블록을 선택하기 위한 출력을 갖는다. 복수 의 세트 액세스 회로(40)가 모든 출력으로부터 병렬로 선택을 다룰 수 있도록 제공된다. 일실시예에 있어서, 각 세트 액세스 회로(40)가 메모리 뱅크 세트와 명령어 제어 회로(16)의 출력의 각 조합을 위해 제공된다. 따라서, 프로세서가 선택 피연산자 블록을 위해 다수의 필드를 갖는 명령어를 실행하는 경우, 각 필드는 사전 결정된 세트 액세스 회로(40)와 결합될 수 있다. 이 필드는 예를 들면, 블록을 명령어 내의 문자 상수 plane_id 및 블록 좌표로서 정의하거나, 또는 plane_id 및 블록 좌표를 포함하는 레지스터를 나타내는 선택값에 의해 정의하거나, 또는 문자 데이터와 레지스터 선택의 조합, 예를 들면 명령어 내의 문자 상수 plane_id와 블록 좌표를 포함하는 레지스터를 나타내는 필드 내의 선택값의 조합으로서 정의한다.
이 실시예에 있어서, 명령어의 각 필드로부터 발생한 plane_id와 블록 좌표가 이 필드와 결합된 세트 액세스 회로(40)에 공급된다. 세트 액세스 회로(40)의 출력(45)으로부터의 데이터가 피연산자로서 필드를 갖는 명령어 내에서 선택된 연산을 실행하는 기능 유닛에 전달된다. 필드가 이 연산의 결과를 선택하기 위한 필드인 경우, 출력(45) 대신에 입력이 사용되며 데이터가 이 연산을 실행하는 기능 유닛으로부터 전달된다.
도 5는 메모리 뱅크 세트와 명령어 필드의 더 유연한 결합을 제공하는 벡터 액세스 유닛의 실시예를 개략적으로 도시한다. 이 벡터 액세스 유닛은 평면 결합 회로(50), 추가 라우팅 회로로서 이용되는 피연산자 크로스바 스위치(52), 및 복수의 세트 액세스 회로(40)를 포함한다. 이 유닛은 명령어 제어 회로(미도시)에 연결된 제어 입력을 구비하는 복수의 포트(54)를 가지며, 이 제어 회로는 각 포트(54) 와 실행될 명령어에서의 각 사전 결정된 필드를 결합한다. 포트(54)는 또한 필드에 의해 선택된 데이터를 사용 또는 생성하는 기능 유닛(미도시)에 연결된 데이터 출력 및/또는 입력을 갖는다. 비록 4개 포트(54)가 도시되었을 지라도, 더 많은 또는 더 적은 개수가 사용될 수 있음을 이해해야 한다.
피연산자 크로스바 스위치(52)는 세트 액세스 회로(40)와 포트(54) 사이에 연결되고 라우팅 회로로서 기능하여 포트(54)로부터 공급되는 plane_id에 따라, 각 포트(54)로부터 평면 및 블록 선택을 세트 액세스 회로(40) 중 어느 하나로 라우팅한다. 포트(54)의 plane_id 연결은 평면 결합 회로(50)에 연결되며, 이 결합 회로는 피연산자 크로스바 스위치(52)의 입력에 연결되는 출력을 갖는다. 평면 결합 회로(50)는 평면 정보 룩업 메모리의 공유 부분으로서 여겨질 수 있지만, 그러나 명확화를 위해 별개로 도시된다.
평면 결합 회로(50)는 세트 액세스 회로(40)와 복수의 포트(54) 사이에서 교차 연결을 제어하여, 이는 각 포트를 plane_id에 의해 식별된 평면을 저장하는 메모리 뱅크의 세트를 위해 세트 액세스 회로(40)에 연결한다. 일실시예에 있어서, 평면 결합 회로(50)는 각 개별 plane_id값과 결합된 세트 액세스 회로(40)의 식별을 저장하고, 수신된 plane_id값에 응답하여 이들 식별을 검색하고, 피연산자 크로스바 스위치(52)가 각 포트(54)를 포트(54)의 plane_id 입력에 의해 식별된 세트 액세스 회로(40)에 연결하게 한다. 피연산자 크로바 스위치(52)는 포트(54)로부터 plane_id 및 블록 좌표를 선택된 세트 액세스 회로(40)에 넘겨 준다.
바람직하게는, 피연산자 크로스바 스위치(52)는 선택가능한 라우팅 경로를 제공하므로, 따라서 명령어의 임의 피연산자 선택 필드가 임의 세트 액세스 회로(40)로 라우팅된다. 따라서, 각 피연산자 선택 필드는 임의 메모리 뱅크 세트를 어드레싱할 수 있다. 선택적으로는, 모든 세트 액세스 회로(40)의 데이터 크로스바 스위치(46)는 또한 피연산자 크로스바 스위치(52)에 의한 라우팅과 부합하게 임의 메모리 뱅크 세트와 임의 포트(54) 사이에서 데이터를 라우팅하도록 구성된다. 대안적으로는, 피연산자 크로스바 스위치(52)는 이러한 정도의 라우팅을 제공하기 위한 추가 데이터 크로스바 스위치를 포함할 수 있다. 그 결과로서, 상이한 포트에 의한 사용을 위해 동일한 픽셀값의 복사본을 저장할 필요가 없다.
대안적으로는, 피연산자 크로스바 스위치(52)는 제한된 가변 교차 연결을 제공할 수 있는데, 이는 모든 세트에 모든 포트의 연결을 허용하지 않고서도 메모리 뱅크 세트의 중첩 조합(overlapping combination)으로 포트의 연결을 허용한다. 이는 포트 사이에 다른 메모리 뱅크를 공유하지 않고서도(또는 모든 포트보다 적은 개수의 포트 사이에서 이들 메모리 뱅크를 적어도 공유) 상당한 정도의 메모리 뱅크 공유를 허용한다. 이러한 방식으로, 만일 일부 메모리 뱅크 세트가 공유될 필요가 없는 것이 사전에 알려진다면 회로 오버헤드가 감소될 수 있다.
원칙적으로, 평면 정보 룩업 메모리는 각 포트(54)와 결합될 수 있고, 이 경우 피연산자 크로스바 스위치는 관련된 세트 액세스 회로(40)로 이 평면 정보를 라우팅하도록 구성된다. 또 다른 실시예에 있어서, plane_id만이 라우팅되며, 이 평면 정보 룩업 메모리는 세트 액세스 회로와 결합되고, 이는 라우팅된 plane_id에 의해 어드레싱된다.
비록 세트 액세스 회로(40)가 메모리 뱅크 세트와 결합되고, 따라서 블록 어드레스가 plane_id 또는 평면 정보의 제어하에서 포트(54)로부터 세트 액세스 회로(40)로 라우팅되어야 하는 일실시예가 도시되었을 지라도, 대안적으로는 세트 액세스 회로(40)가 포트(54)와 결합되어, 뱅크 어드레싱이 라우팅되어야함을 이해해야 할것이다. 이 실시예에 있어서, 뱅크 선택은 라우팅 전 또는 후 성취될 수 있는데, 즉 피연산자 크로스바 스위치(52)에 관련한 메모리 뱅크면 또는 포트면(54)상에서 성취될 수 있다.
도 6은 윈도우(60, 62, 64, 66)가 적응할 수 있는 복수의 메모리 뱅크 세트 전역에 분산되어 저장될 수 있는 실시예에서, 뱅크식 메모리(10)의 사용을 예시한다. 이 예시에 있어서, 하나의 윈도우(60)를 위한 픽셀값은 모든 세트 전역에 분산되어 저장된다. 또다른 윈도우(62)를 위한 픽셀값은 2 개 세트 전역에 분산되어 저장된다. 추가 윈도우(64, 66)를 위한 픽셀값은 각 세트 내에 저장된다. 이 도 6은 저장의 한 예시만을 표현하는 것으로 이해해야한다. 실제적으로는, 윈도우의 저장의 다른 조합이 사용될 수 있다. 각 평면에 대하여, 메모리 뱅크 세트의 선택된 조합이 이용될 수 있으며, 선택된 세트에서 메모리 뱅크 내에 있는 어드레스 범위 또는 범위들이 사용될 수 있다. 예를 들면, 하나의 세트를 사용하는 평면, 두 개의 세트를 사용하는 평면, 4개의 세트를 사용하는 평면이 선택될 수 있다. 더 많은 세트의 사용은 선택된 세트에 대하여 더 큰 병렬화를 가능하게 한다.
이러한 저장 형태의 한 가지 이점은 피연산자로서 상이하게 크기가 정해진 블록의 사용을 지원한다는 점이다. 예를 들면, 만일 한 세트에서 윈도우(64)를 위 한 픽셀값의 저장이 4x4개 픽셀 위치 블록에 대한 병렬 액세스를 지원한다면, 4개 세트에서 윈도우(60)을 위한 픽셀값의 저장은 8x8개 픽셀 위치 블록에 대한 병렬 액세스를 지원한다.
일실시예에 있어서, 벡터 액세스 유닛은 도 6에 도시된 저장 타입을 지원하도록 구성된다. 이러한 목적을 위하여, 도 5에 도시된 구조를 구비하는 회로가 사용될 수 있으며, 여기서 이 단일 포트(54)에 대하여 plane_id를 위한 평면 정보가 복수의 세트가 한 평면을 위해 사용되는 것을 나타낸 경우, 복수의 세트 액세스 회로(40)에 단일 포트로부터의 블록 좌표 및 plane_id(또는 평면 정보)를 전달하고, 블록을 액세스하기 위해 단일 포트와 연결하여 사용되는 복수의 세트와 단일 세트 및/또는 포트 그룹 사이에서 픽셀값을 넘겨 주도록 구성된다.
데이터 측면에서, 포트(54)는 가변 가능한 개수의 픽셀값의 입력 및/또는 출력을 지원하는 것으로 이해될 수 있으며, 이 단일 포트(54)에 대하여 plane_id를 위한 평면 정보가 복수의 세트가 표시된 평면을 위해 사용됨을 나타내는 경우, 복수의 세트 액세스 회로(40)로부터의 픽셀값은 단일 포트(54)에 공급된다. 대안적으로는, 별도의 라우팅 제어가 한편으로는 데이터를 위해 그리고 다른 한편으로는 plane_id와 블록 좌표를 위해 사용될 수 있다. 따라서, 예를 들면 이 단일 포트(54)에 대하여 plane_id를 위한 평면 정보가 복수의 세트가 표시된 평면을 위해 사용됨을 나타내는 경우, 피연산자 크로스바 스위치(52)는, 단일 포트(54)에 의해 어드레싱된 픽셀값을 단일 포트(54) 및 하나 이상의 논리적으로 인접한 포트(54)를 포함하는 포트 그룹으로 라우팅하도록 구성될 수 있다.
대안적인 실시예에 있어서, 한 모드가 지원될 수 있는데, 이 모드에서 기능 유닛에 공급된 픽셀값의 개수는 사용된 세트의 개수에 의존하지 않는다. 이 실시예에 있어서, 추가 픽셀값 선택 회로(미도시)가 세트 액세스 회로(40)와 피연산자 크로스바 스위치(52) 사이에 제공되어 복수의 세트 액세스 회로에 의해 공급된 픽셀값으로부터 포트로의 공급을 위한 픽셀값을 선택할 수 있다. 이 실시예에 있어서, 픽셀값 선택 회로는 예를 들면, 평면 결합 회로(50)를 통하여 관련 포트(54)에서의 plane_id에 의해 선택된 평면 정보로부터 제어하에 선택을 실행한다.
일실시예에 있어서, 메모리 액세스 유닛(18)은 윈도우 또는 윈도우들의 시프팅을 구현하기 위해 픽셀값의 순차적 대체를 제어한다. 따라서, 픽셀값이 메인 메모리와 메모리 뱅크 사이에서 복사되므로, 따라서 윈도우 시프팅을 위한 픽셀값이 메모리 뱅크 내에서 액세스될 수 있다. 이는 메모리 뱅크의 사이즈가 비교적 소형으로 유지될 수 있도록 하는 이점을 갖는다. 그러나, 대안적으로는, 완전한 평면을 저장할 수 있는 대형 메모리 뱅크가 사용될 수 있다. 이 경우에서, 메인 메모리의 사용 및 메모리 뱅크와 메인 메모리 사이의 복사가 요구되지 않는다.
메모리 액세스 유닛(18)은 평면 정보 복사본에 따라 상이한 평면에 대하여 픽셀 위치를 위한 메인 메모리 어드레스 및 메모리 뱅크 어드레스를 계산하고, 계산된 위치에서 픽셀값을 판독 및 기록한다. 전형적으로는, 메모리 액세스 유닛(18)에 의해 실행된 계산량은 기능 유닛에 의해 실행된 계산량보다 훨씬 더 작은데, 왜냐하면 윈도우가 기능유닛으로 복수 명령어 실행후에만 매번 이동되기 때문이다. 따라서, 메모리 액세스 유닛(18)은 전형적으로 기능 유닛과 동일한 대량의 병렬 액세스를 요구하지 않는다. 일실시예에 있어서, 메모리 액세스 유닛(18)은 프로그래밍된 프로세서로서 구현될 수 있는데, 이 프로세서는 평면 정보의 복사본에 따라 상이한 평면에 대하여 픽셀 위치를 위해 메인 메모리 액세스 및 메모리 뱅크 어드레스를 계산하고, 계산된 위치에서 픽셀값을 판독하고 기록하도록 프로그래밍된다. 또 다른 실시예에 있어서, 순차적인 대체를 실행하기 위한 목적을 위해 설계된 회로가 사용될 수 있다.
수평 방향에서 우측으로의 윈도우 시프팅은 윈도우의 우측에서의 열을 위한 픽셀값으로 윈도우의 좌측에서의 열을 위한 픽셀값 대체를 수반한다. 예를 들면 메인 메모리(19)로부터 뱅크식 메모리(10)으로의 데이터 전달의 경우, 메모리 액세스 유닛(18)은 윈도우의 우측에서의 열에 있는 픽셀 위치를 위한 픽셀값으로 윈도우의 좌측에서의 열에 있는 픽셀 위치를 위한 픽셀값을 저장하는 뱅크에 메모리 위치를 덮어쓴다. 이해되는 바와 같이, 이는 현재 저장된 윈도우의 상단 좌측 픽셀 위치를 위한 픽셀값을 저장하는 메모리 위치가 처리 동안 순차적으로 변경되는 것을 의미한다. 수평 방향에서 좌측으로의 윈도우 시프팅이 동일한 방식으로 구현될 수 있다.
일실시예에 있어서, 메모리 액세스 유닛(18)은 기능 유닛(들)(14)이 현재 윈도우 위치에 가해진 명령어를 처리하는 동안 사전인출 베이스로 백그라운드에서 동작된다. 이러한 목적을 위하여, 추가 공간이 메모리 뱅크 내에서 예약될 수 있는데, 여기서 현재 윈도우를 벗어난 위치를 위한 픽셀값은 다음 이동에서의 윈도우에 들어가게 될 위치를 위한 픽셀값으로 대체된다. 메모리 뱅크로의 인터리빙된 액세 스 및/또는 멀티 포트 액세스가 이러한 백그라운드 연산을 위해 사용될 수 있다. 이는 완전한 윈도우가 병렬 액세스에 이용가능한 채로 남아 있는 동안 윈도우 바깥쪽의 위치를 위한 픽셀값의 대체를 허용한다.
따라서, 예를 들면 만일 NxM개 윈도우가 순차적으로 한번에 S개 픽셀 위치의 스텝으로 우측으로 순차적으로 이동된다면, 최소 (N+S)xM개 픽셀 위치 영역을 위한 픽셀값이 저장된다. 초기에, 최좌측 N픽셀 위치는 윈도우를 정의한다. 이들 픽셀 위치를 위한 픽셀값은 병렬 액세스를 위해 메모리 뱅크 내에 저장된 채로 유지된다. 동시에, 메모리 액세스 유닛(18)은 우측으로 다음 S개 픽셀 위치를 위한 후속하는 픽셀값을 메모리 뱅크에 로딩한다. 윈도우가 우측으로 S개 픽셀 위치만큼 이동된 이후, 윈도우의 좌측으로 S 픽셀 위치를 위한 픽셀값을 저장하는 메모리 위치가 이용 가능하며 메모리 액세스 유닛(18)은 윈도우의 우측으로 다음 S개 픽셀 위치를 위한 후속하는 픽셀값을 메모리 뱅크내의 이들 위치로 로딩하는 방식과 같이, 계속 진행한다. 필요한 변경을 적용하여 유사한 접근법이 이 윈도우를 좌측으로 이동하기 위해 사용될 수 있다.
덧붙여, 수직 방향으로 위로 또는 아래로 윈도우 시프팅이 지원될 수 있고, 이는 윈도우의 우측에서 열을 위한 픽셀값으로 윈도우의 좌측에서 열을 위한 픽셀값의 대체를 수반한다. 유사하게는, 만일 윈도우가 S개 픽셀 위치의 스텝으로 위로 또는 아래로 이동한다면, Nx(M+S)개 픽셀 위치를 위한 메모리 공간이 예약될 수 있다. 이동의 동적으로 선택가능한 이동 방향은 (N+S)x(M+S)개 픽셀 위치를 위한 메모리 공간을 예약하고 윈도우 주위의 L 형상의 프린지를 위한 픽셀값을 사전 로딩 함으로써 제공될 수 있다. 유사한 접근 방식이 또한 출력 픽셀값을 위해 사용될 수 있다. 예를 들면, S개 픽셀 위치의 스텝으로 우측으로 이동되는 출력 윈도우의 경우에서, 메모리 액세스 유닛(18)은 현재 윈도우의 좌측으로 S개 픽셀 위치를 위한 픽셀값을 메인 메모리에 다시 기록하며, 따라서 이는 다음 이동 이후 윈도우의 우측으로 S개 픽셀 위치를 위한 공간을 생성한다.
대안적으로는, 메모리 액세스 유닛(18)은 윈도우의 상단 또는 하단에서 행에 있는 픽셀 위치를 위한 픽셀값을 윈도우의 하단 또는 상단에서 행에 있는 픽셀 위치를 위한 픽셀값으로 저장하는 뱅크 내에 메모리 위치를 다시 쓸 수 있지만, 그러나 이 경우, 픽셀 액세스를 위한 기능 유닛의 사용은 픽셀값이 갱신되는 동안 피해야하거나 또는 중지되어야 한다.
현재 윈도우의 처리가 종료되는 것이 시그널링되는 경우, 메모리 액세스 유닛(18)은 필요하다면 다음 윈도우의 사전인출을 완료하며, 그리고 이 윈도우를 위한 평면 정보를 갱신한다. 이해되는 바와 같이, 기능 유닛(14)에 의해 생성되는 픽셀값을 갖는 윈도우의 경우에서, 메모리 유닛(18)은 가능하게는 현재 윈도우 밖에 있는 픽셀 위치를 위한 백그라운드에서 메인 메모리에 다시 기록을 실행할 수 있다. 메모리 액세스 유닛(18)은 상이한 plane_id에 의해 식별된, 복수의 윈도우를 위해 사전인출 및/또는 다시 기록을 실행할 수 있다.
일실시예에 있어서, 상이한 윈도우를 위한 평면 정보가 프로그램 제어하에서 동적으로 발생된다. 대안적으로는, 프로그램 실행 내내 동일하게 유지되는 사전정의된 평면 정보가 사용될 수 있다. 동적인 정의의 경우에 있어서, 평면의 정의는 이 plane_id를 위한 어드레스 범위를 식별하기 위해 plane_id를 위한 데이터를 룩업 메모리(42)에 기록하기에 더하여, 윈도우의 좌표 및 plane_id의 윈도우의 제 1 픽셀 위치를 위한 픽셀값의 위치에 대한 포인터의 초기화를 수반할 수 있다. 덧붙여, 만일 윈도우의 사이즈가 선택될 수 있다면, 이 사이즈를 정의하는 정보가 plane_id를 위해 기록된다. 이 정보는 윈도우가 저장되는 이 세트의 세트 액세스 회로를 위한 룩업 메모리(42)에 기록된다. 상이한 세트가 동일한 포트(54)로부터 어드레싱될 수 있는 실시예에 있어서, 정보는 또한 평면 결합 회로(50)에 기록되어 plane_id와 이 평면의 픽셀이 저장되는 세트를 결합한다.
평면의 픽셀값이 복수의 세트 전역에 분산되어 저장될 수 있는 실시예에 있어서, 그 평면의 정의는 그 세트에서의 이 plane_id를 위한 어드레스 범위를 식별하기 위해 세트 액세스 회로(40) 각각에 데이터를 저장하는 것에 더하여, 윈도우의 좌표 및 plane_id의 윈도우의 제 1 픽셀 위치를 위한 픽셀값의 위치에 대한 포인터의 초기화를 수반할 수 있다. 이 실시예에 있어서, 정보가 또한 평면 결합 회로(50)로 기록되어 평면의 픽셀이 저장되는 상기 복수의 세트와 이 plane_id를 결합한다. 이해되는 바와 같이, 이는 연산 동안 상이한 종류의 윈도우를 위한 뱅크식 메모리의 재사용을 가능하게 한다.
도 7은 명령어 처리의 흐름도를 보여준다. 제 1 단계(71)에 있어서, 명령어가 수신되고 디코딩된다. 제 2 단계(72)에 있어서, 픽셀 위치 오프셋이 명령어의 피연산자로부터 계산된다. 선택적인 제 3 단계(73)에 있어서, 이 명령어 처리는 만일 명령어를 완성하기 위해 메모리 뱅크 내에 데이터가 충분하지 않으면(만일 회로 가 명령어의 실행의 시작 이전에 충분한 데이터가 이용가능한 것을 보장하도록 구성되면, 이 단계는 요구되지 않음), 명령어 처리가 지연된다. 또한 선택적으로, 필요하다면, 액세스 조정(access arbitration)이 실행되어 동일한 데이터의 동시 액세스로 인한 충돌을 방지한다. 만일 또다른 액세스와의 충돌이 있다면, 예를 들면 다른 액세스를 지연하거나 명령어의 실행을 지연함으로써 이 충돌이 해소된다. 제 4 단계(74)에 있어서, 명령어로부터의 plane_id는 평면 정보를 검색하기 위해 사용된다. 제 5 단계(75)에 있어서, 평면 정보는 이 명령어를 위해 액세스될 필요가 있는 메모리 뱅크에서의 어드레스를 계산하기 위해 사용된다. 제 6 단계(76)에 있어서, 메모리 뱅크가 액세스된다. 제 7 단계(77)에 있어서, 메모리 뱅크로부터의 픽셀 위치의 상이한 라인을 위한 데이터가 기록된다. 제 8 단계(78)에서, 메모리 뱅크로부터의 픽셀 위치 라인 내에 있는 상이한 위치를 위한 데이터가 기록된다. 당업자라면 다수의 상이한 단계가 상이한 명령어를 위해 파이프라이닝된 방식으로 실행될 수 있음을 이해할 것이다.
기록하는 단계는 그 자체로 알려져 있으며, 그러므로 상세하게 기술되지 않을 것이다. 간단하게는, 블록의 상이한 라인의 픽셀값이 메모리 뱅크와 상이한 메모리 뱅크 내에서의 상이한 어드레스(또는 연속적인 어드레스 세트)에 저장된다. 데이터의 순차적 대체때문에, 블록 내의 최상단 라인이 이들 어드레스 (세트) 중 어느 하나 및 뱅크 중 어느 하나에 저장될 수 있는데, 이는 대체가 얼마만큼 멀리 진행되었는 지에따라, 후속 라인은 후속 어드레스 또는 뱅크에 저장되며, 순환적으로 반복한다. 라인 재순서화는, 픽셀값을, 블록의 위에 위치한 픽셀 위치를 위한 픽셀값을 포함하는 뱅크로부터 블록 등의 위로부터 픽셀값을 수신해야만 하는 데이터 포트부로 라우팅한다. 픽셀 재순서화는, 픽셀값을, 블록의 최좌측 픽셀 위치를 위한 픽셀을 포함하는 뱅크로부터 블록 등의 좌측으로부터 픽셀값을 수신해야만 하는 데이터 포트부로 라우팅한다.
메모리 뱅크의 적어도 일부는, 예를 들면 윈도우를 위해 사용되는 일부가 명령어 실행 회로의 상이한 포트로부터 어드레싱될 수 있는 것과 같이, 공유될 수 있다.
위에 언급된 실시예는 본 발명을 제한하기보다는 오히려 예시하는 것이고, 당업자라면 첨부된 청구항의 범위를 벗어나지 않으면서도 많은 대안적인 실시예를 설계할 수 있음을 주목해야한다. 청구항에서, 괄호 사이에 놓이는 임의 참조기호는 청구항을 제한하는 것으로 이해되지 않아야 한다. "포함"이라는 단어는 청구항에서 리스팅된 것 이외의 다른 구성요소 또는 단계의 존재를 배제하지 않는다. 단수의 구성요소는 복수의 구성요소 존재를 배제하지 않는다. 본 발명 및 그 안에 사용된 회로는 수개의 별개 구성요소를 포함하는 하드웨어 및/또는 적합하게 프로그래밍된 프로세서를 써서 구현될 수 있다. 구성요소를 열거하는 디바이스 청구항에 있어서, 수개의 이들 구성요소는 하나의 동일한 하드웨어 아이템에 의해 구현될 수 있다. 어떤 수단이 상호 상이한 종속항에 인용되는 단순한 사실은 이들 수단의 조합이 유리하게 사용될 수 있다는 것을 나타낸다.
본 발명은 다차원 데이터 어레이를 처리하기 위한 처리 회로 및 방법에 이용 가능하다. 이 처리 회로는 명령어 실행 회로 및 가령 픽셀 위치의 블록에 대한 픽셀값과 같은 위치 블록을 위한 데이터값에 병렬로 액세스하는 명령어를 실행하기 위한 복수의 메모리 뱅크를 포함한다.

Claims (10)

  1. 데이터 처리 회로로서,
    블록 데이터 포트 및 블록 어드레싱 출력을 갖는 명령어 실행 회로(14)로서, 상기 블록 어드레싱 출력은, 각 블록 데이터 포트 중 적어도 하나의 각 그룹에 대하여, 실행된 명령어에 의해 정의된 평면(plane)의 선택의 표시 및 상기 평면 내의 위치 블록의 표시를 출력하기 위한, 명령어 실행 회로(14);
    어드레스 입력과 병렬 메모리 액세스 포트를 갖는 복수의 메모리 뱅크(26);
    상기 블록 어드레싱 출력과 어드레스 입력 사이에 연결되고, 각기 상기 평면의 선택의 표시 및 위치의 블록의 표시 중 하나를 메모리 뱅크(26)의 선택과 선택된 메모리 뱅크(26) 내 어드레스로 변환하기 위한 복수의 변환 회로(22); 및
    상기 병렬 메모리 액세스 포트와 블록 데이터 포트 사이에서 연결되어, 선택된 메모리 뱅크(26) 내에 있는 선택된 어드레스와 각 그룹의 블록 데이터 포트 사이에서 병렬로 각 블록에 대하여 복수의 데이터값을 라우팅하기 위한, 라우팅 회로(46)
    를 포함하는, 데이터 처리 회로.
  2. 제 1 항에 있어서,
    라우팅 회로(46)는 상기 실행된 명령어의 제어하에서, 임의 각 그룹의 블록 데이터 포트와 메모리 뱅크(26) 중 어느 하나 사이에서 또는 메모리 뱅크(26)가 그 룹화되는 복수의 세트(20)의 어느 하나의 세트로부터 선택적으로 상기 데이터 값을 라우팅하도록 추가로 구성되는, 데이터 처리 회로.
  3. 제 1 항에 있어서,
    평면의 선택의 표시는 상기 평면을 위한 데이터값을 저장하는 메모리 뱅크(26)의 표시를 의존하는 개수를 한정할 수 있는 형태로 코딩되며, 상기 데이터 처리 회로는 상기 표시에 의해 한정된 메모리 뱅크(26)의 개수에 따라, 상기 표시 중 적어도 하나를 동시에 변환 회로(22) 중 2개 이상으로 라우팅하기 위해 구성되는 추가 라우팅 회로(52)를 포함하는, 데이터 처리 회로.
  4. 제 1 항에 있어서,
    각 평면을 위한 평면 정보를 함께 저장하기 위한 평면 정보 룩업 메모리(42)를 추가로 포함하되, 상기 각 평면을 위한 평면 정보는 상기 메모리 뱅크 중 어느 것이 상기 평면을 위한 데이터값을 저장하기 위해 사용되는 지를 가리키는 정보를 포함하되, 평면 정보 룩업 메모리(42)는 변환시 사용을 위해 실행되는 명령어에 의해 선택된 평면 정보를 제공하기 위한 상기 변환 회로에 연결되는, 데이터 처리 회로.
  5. 제 1 항에 있어서,
    변환 회로(22)의 각각은 각 세트(20) 내에 있는 메모리 뱅크(26)의 어드레싱 을 제어하기 위해 메모리 뱅크(26)의 각 세트(20)에 연결되며, 상기 데이터 처리 회로는 명령어 실행 회로(14)와 변환 회로(22)의 블록 어드레싱 출력 사이에 연결되고, 상기 실행된 명령어에 의해 출력된 각 블록 어드레싱을 위해 선택된 평면의 제어하에서 상기 위치 블록의 선택의 표시를 변환 회로(22) 중 각 하나로 라우팅하도록 구성된, 추가 라우팅 회로(52)를 포함하는, 데이터 처리 회로.
  6. 제 5 항에 있어서,
    상기 추가 라우팅 회로(52)는, 그 평면 정보가 상기 평면의 데이터값이 변환 회로(22) 중 상기 2개 이상에 연결된 메모리 뱅크(26)의 세트(20) 전체에 분산되게 저장됨을 나타낸다면, 상기 블록 어드레싱 출력 중 하나에 의해 선택된 평면을 위한 평면 정보에 응답하여, 상기 블록 어드레싱 출력 중 하나를 위해 선택된 평면의 제어하에서, 블록 어드레싱 출력 중 적어도 하나로부터 변환 회로(22) 중 2개 이상으로 위치 블록의 선택 표시를 라우팅하도록 구성되는, 데이터 처리 회로.
  7. 제 1 항에 있어서,
    상기 명령어 실행 회로의 블록 어드레싱 출력에 제공된 위치 블록의 표시 각각은 상기 위치 블록의 사이즈 및/또는 형상의 표시를 포함하되, 상기 변환 회로(22)는 상기 표시된 사이즈 및/또는 형상에 따라 상기 변환을 실행하도록 구성되는, 데이터 처리 회로.
  8. 위치 어레이 내에 있는 위치 블록을 위한 데이터값을 처리하는 명령어 실행 방법으로서,
    상기 명령어 내에서, 평면의 선택 각각 및 상기 평면 내의 위치 블록 각각의 복수의 표시를 제공하는 단계;
    상기 데이터값의 저장을 위해 뱅크식 메모리 회로(10)로부터 메모리 뱅크(26)의 선택을 포함하는 각 평면을 위한 평면 정보를 병렬의 표시된 평면을 위해 제공하는 단계;
    상기 표시된 평면을 위한 평면 정보를 사용하여 위치 블록의 선택을 선택된 메모리 뱅크(26)의 어드레싱으로 변환하는 단계; 및
    상기 명령어의 실행 부분으로서 상기 위치 블록을 위한 데이터값을 로딩 및/또는 저장하도록 어드레싱된 메모리 뱅크(26)와 명령어 프로세서(14)의 적어도 하나의 데이터 포트 각각의 그룹 사이에서 데이터값을 라우팅하는 단계
    를 포함하는, 위치 어레이 내에 있는 위치 블록을 위한 데이터값을 처리하는 명령어 실행 방법.
  9. 제 8 항에 있어서,
    상기 라우팅하는 단계는 메모리 뱅크(26) 중 어느 하나로부터의 데이터값을 데이터 포트 그룹 중 어느 하나에 선택가능하게 라우팅하는 단계를 제공하는, 위치 어레이 내에 있는 위치 블록을 위한 데이터값을 처리하는 명령어 실행 방법.
  10. 제 8 항에 있어서,
    상기 평면을 위한 데이터값을 저장하는 메모리 뱅크(26)의 개수의 정의를 제공하는 단계로서, 상기 메모리 뱅크(26)의 개수는 상기 선택된 평면에 의존하는, 단계; 및
    상기 메모리 뱅크의 각각에 대하여 병렬로, 평면 의존 복수회수로 위치 블록의 선택 표시 중 적어도 하나를 변환하는 단계를 추가로 포함하는, 위치 어레이 내에 있는 위치 블록을 위한 데이터값을 처리하는 명령어 실행 방법.
KR1020097005928A 2006-09-26 2007-09-21 복수의 메모리 뱅크를 이용한 데이터 처리 KR20090064394A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP06121280.9 2006-09-26
EP06121280 2006-09-26

Publications (1)

Publication Number Publication Date
KR20090064394A true KR20090064394A (ko) 2009-06-18

Family

ID=39230633

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097005928A KR20090064394A (ko) 2006-09-26 2007-09-21 복수의 메모리 뱅크를 이용한 데이터 처리

Country Status (6)

Country Link
US (1) US20100088475A1 (ko)
EP (1) EP2070332A2 (ko)
JP (1) JP2010505158A (ko)
KR (1) KR20090064394A (ko)
CN (1) CN101558649A (ko)
WO (1) WO2008038204A2 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11474718B2 (en) 2020-01-07 2022-10-18 SK Hynix Inc. Processing-in-memory (PIM) device and PIM system including the PIM device
US11537323B2 (en) 2020-01-07 2022-12-27 SK Hynix Inc. Processing-in-memory (PIM) device
US11842266B2 (en) 2020-01-07 2023-12-12 SK Hynix Inc. Processing-in-memory (PIM) device, controller for controlling the PIM device, and PIM system including the PIM device and the controller

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013106210A1 (en) * 2012-01-10 2013-07-18 Intel Corporation Electronic apparatus having parallel memory banks
US20150010087A1 (en) * 2013-07-05 2015-01-08 Parabola Research Limited Image Processing Method and Apparatus
KR20150028118A (ko) * 2013-09-05 2015-03-13 삼성전자주식회사 메모리 장치의 동작 방법, 이를 이용한 데이터 기입 방법 및 데이터 독출 방법
US9848141B2 (en) * 2016-05-10 2017-12-19 Semiconductor Components Industries, Llc Image pixels having processed signal storage capabilities
US10868769B1 (en) 2018-08-07 2020-12-15 Innovium, Inc. Read instruction queues in a network device
US10846225B1 (en) * 2018-08-07 2020-11-24 Innovium, Inc. Buffer read optimizations in a network device
CN113965705A (zh) * 2021-11-04 2022-01-21 地太科特电子制造(北京)有限公司 一种cmos像素寻址模块和方法
KR20230068572A (ko) * 2021-11-11 2023-05-18 삼성전자주식회사 메모리 어레이 내의 연결 회로

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6289149A (ja) * 1985-10-15 1987-04-23 Agency Of Ind Science & Technol 多ポ−トメモリシステム
US5594813A (en) * 1992-02-19 1997-01-14 Integrated Information Technology, Inc. Programmable architecture and methods for motion estimation
US5895501A (en) * 1996-09-03 1999-04-20 Cray Research, Inc. Virtual memory system for vector based computer systems
US5966734A (en) * 1996-10-18 1999-10-12 Samsung Electronics Co., Ltd. Resizable and relocatable memory scratch pad as a cache slice
US6215822B1 (en) * 1997-12-30 2001-04-10 Sony Corporation Motion compensated digital video decoding and buffer memory addressing therefor
US6430655B1 (en) * 2000-01-31 2002-08-06 Mips Technologies, Inc. Scratchpad RAM memory accessible in parallel to a primary cache
US6836833B1 (en) * 2002-10-22 2004-12-28 Mips Technologies, Inc. Apparatus and method for discovering a scratch pad memory configuration
CN1947424A (zh) * 2004-04-22 2007-04-11 皇家飞利浦电子股份有限公司 提供并行访问多维数据值阵列的数据处理设备

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11474718B2 (en) 2020-01-07 2022-10-18 SK Hynix Inc. Processing-in-memory (PIM) device and PIM system including the PIM device
US11537323B2 (en) 2020-01-07 2022-12-27 SK Hynix Inc. Processing-in-memory (PIM) device
US11842266B2 (en) 2020-01-07 2023-12-12 SK Hynix Inc. Processing-in-memory (PIM) device, controller for controlling the PIM device, and PIM system including the PIM device and the controller

Also Published As

Publication number Publication date
WO2008038204A2 (en) 2008-04-03
US20100088475A1 (en) 2010-04-08
CN101558649A (zh) 2009-10-14
EP2070332A2 (en) 2009-06-17
JP2010505158A (ja) 2010-02-18
WO2008038204A3 (en) 2009-06-18

Similar Documents

Publication Publication Date Title
KR20090064394A (ko) 복수의 메모리 뱅크를 이용한 데이터 처리
JP4861338B2 (ja) 読み出し機能及びフェッチ機能を分けることによるデータ処理装置のメモリユニットの性能向上
JP4744510B2 (ja) データ値の多次元アレイへのパラレルなアクセスを提供するデータ処理装置
KR20060045756A (ko) 프로세서
KR20010002990A (ko) 3차원 그래픽 텍스쳐 맵핑용 캐쉬 메모리 및 그의 캐쉬 미스페널티 저감방법
US7069387B2 (en) Optimized cache structure for multi-texturing
KR100539112B1 (ko) 벡터 데이터의 어드레스 참조 방법 및 벡터 프로세서
US8339405B2 (en) Programmable data processing circuit
WO2006120620A2 (en) Image processing circuit with block accessible buffer memory
US20040064670A1 (en) Data addressing
CN110087088B (zh) 一种基于运动估计的数据存储方法、终端设备及存储介质
US6084601A (en) Corner buffer system for improved memory read efficiency during texture mapping
US20070277003A1 (en) Multi-Port Memory Architecture For Storing Multi-Dimensional Arrays I
US7769247B2 (en) Method and apparatus for data re-arrangement
JP3699003B2 (ja) データ処理装置および方法
JPH02148237A (ja) データのブロツクを記憶させ且つ操作を加えるための方法
CN117795946A (zh) 一种数据读取装置及相关方法
US20070277004A1 (en) Multi-Port Memory Architecture For Storing Multi-Dimensional Arrays II
US9053560B2 (en) Edge management unit for 2-dimension vector graphics, graphic processing apparatus and method thereof
JP2006120181A (ja) テキスチャーマッピング回路
JP2006309776A (ja) 画像データ記憶装置
GB2252024A (en) Graphics accelerator area fill system
JPH08194641A (ja) 同期dramへの2次元データ格納方法および同期dramアクセス制御装置
KR20010032263A (ko) 데이터처리시스템용 데이터리샘플러

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid