KR101118594B1 - 룩업 테이블 공유 장치 및 방법 - Google Patents

룩업 테이블 공유 장치 및 방법 Download PDF

Info

Publication number
KR101118594B1
KR101118594B1 KR1020090031311A KR20090031311A KR101118594B1 KR 101118594 B1 KR101118594 B1 KR 101118594B1 KR 1020090031311 A KR1020090031311 A KR 1020090031311A KR 20090031311 A KR20090031311 A KR 20090031311A KR 101118594 B1 KR101118594 B1 KR 101118594B1
Authority
KR
South Korea
Prior art keywords
bitmap
bank
initial
current
bit
Prior art date
Application number
KR1020090031311A
Other languages
English (en)
Other versions
KR20100062857A (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 KR20100062857A publication Critical patent/KR20100062857A/ko
Application granted granted Critical
Publication of KR101118594B1 publication Critical patent/KR101118594B1/ko

Links

Images

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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Image Processing (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은, 룩업 테이블을 복수 개의 뱅크로 분리하고, 적어도 한 개의 특별 기능 유닛(SFU : Special Function Unit)으로부터 요청받은 다항식 계수(coefficient)의 주소들을 기반으로 해당 주소가 속하는 뱅크를 나타내는 초기 비트맵(initial bitmap)을 형성하는 뱅크 분할부; 상기 뱅크 분할부에서 분리된 각각의 뱅크의 초기 비트맵에서 현재 비트맵(current bitmap)을 추출하고, 상기 현재 비트맵에서 특정된 SFU에 대해 요청받은 다항식의 계수를 제공하는 멀티 패치부; 및 상기 초기 비트맵과 현재 비트맵을 기반으로, 다음 비트맵(next bitmap)을 형성하는 비트맵 업데이터를 포함하며, 여기서, 뱅크별 초기 비트맵은 해당 뱅크에서 요청에 따라 다항식 계수를 제공해야 하는 SFU들에 대한 정보를 포함하고, 뱅크별 현재 비트맵은 해당 뱅크의 초기 비트맵에서 동일한 주소의 다항식 계수를 요청한 SFU들에 대한 정보를 포함하며, 뱅크별 다음 비트맵은 해당 뱅크에서 요청에 따라 다항식 계수를 제공해야 하는 나머지 SFU들에 대한 정보를 포함하는 것을 특징으로 하는 룩업 테이블 공유 장치 및 이를 이용한 룩업 테이블 공유 방법을 제공할 수 있다.
룩업 테이블(look-up table), 특별 기능 유닛(special function unit)

Description

룩업 테이블 공유 장치 및 방법{APPARATUS AND METHOD FOR SHARING LOOK-UP TABLE}
본 발명은 룩업 테이블 공유 장치 및 방법에 관한 것으로서, 보다 상세하게는, 여러개의 특별 기능 유닛(SFU)이 하나의 룩업테이블을 효율적으로 공유할 수 있는 장치 및 방법에 관한 것이다.
본 발명은 지식경제부 및 정보통신 연구 진흥원의 IT성장동력 기술개발 사업의 일환으로 수행한 연구로부터 도출된 것이다.[과제 관리번호: 2007-S-026-02, 과제명: MPCore 플랫폼 기반 다중 포맷 멀티미디어 SoC]
일반적으로 최근의 3D 그래픽 프로세서에는 덧셈기, 곱셈기 등의 기본적인 부동 소수점 연산을 처리하는 연산장치 이외에 역수(Reciprocal : 1/X), 제곱근 역수(reciprocal square root : 1/
Figure 112009021797009-pat00001
), 로그(logarithm), 지수(exponential) 등의 초등함수(elementary Function) 를 연산하기 위한 연산 장치를 가지고 있으며, 이를 특별 기능 유닛(SFU : special function unit) 이라고 한다.
일반적으로 사용되는 특별 기능 유닛은 전체 함수 구간을 몇 개의 작은 구간(sub interval)로 나누고 각 구간에서의 함수를 다항식으로 근사화하는 방법을 사용한다. 각 구간의 다항식은 서로 다른 계수(coefficient)를 가지게 되는데, 이 계수들을 룩업 테이블(Look-Up Table)이라는 저장공간에 저장하고, 참조하여 최종 결과를 얻을 수 있다. 정밀도가 높아질수록 이러한 룩업테이블의 크기는 커지게 되며, 일반적으로 32-bit 의 단정도 부동소수점(Single-precision floating point)의 경우 4 가지 함수를 지원하기 위해서 2KB 이상의 ROM 에 해당하는 저장공간이 필요하다.
한편, 최근의 3D 그래픽 장치에서는 가능한 많은 연산장치를 병렬로 두어 한번에 많은 데이터를 동시에 처리하는 방법이 일반화되고 있다. 이는 연산장치의 크기를 기하급수적으로 늘어나게 하여, 전체 칩 사이즈를 증가시키고 장치가 구동되지 않을 때 발생하는 누설전류 등으로 인한 전력 소모를 늘리는 문제를 발생시킨다.
본 발명은, 상기한 문제점을 해결하기 위해서, 여러개의 특별 기능 유닛(SFU)이 하나의 룩업테이블을 효율적으로 공유하여 전력 소모를 줄이고, 성능 저하를 줄일 수 있는 룩업 테이블 공유장치 및 방법을 제공하는 것을 목적으로 한다.
본 발명의 일측면은, 룩업 테이블을 복수 개의 뱅크로 분리하고, 적어도 한 개의 특별 기능 유닛(SFU : Special Function Unit)으로부터 요청받은 다항식 계수(coefficient)의 주소들을 기반으로 해당 주소가 속하는 뱅크를 나타내는 초기 비트맵(initial bitmap)을 형성하는 뱅크 분할부; 상기 뱅크 분할부에서 분리된 각각의 뱅크의 초기 비트맵에서 현재 비트맵(current bitmap)을 추출하고, 상기 현재 비트맵에서 특정된 SFU에 대해 요청받은 다항식의 계수를 제공하는 멀티 패치부; 및 상기 초기 비트맵과 현재 비트맵을 기반으로, 다음 비트맵(next bitmap)을 형성하는 비트맵 업데이터를 포함하며, 여기서, 뱅크별 초기 비트맵은 해당 뱅크에서 요청에 따라 다항식 계수를 제공해야 하는 SFU들에 대한 정보를 포함하고, 뱅크별 현재 비트맵은 해당 뱅크의 초기 비트맵에서 동일한 주소의 다항식 계수를 요청한 SFU들에 대한 정보를 포함하며, 뱅크별 다음 비트맵은 해당 뱅크에서 요청에 따라 다항식 계수를 제공해야 하는 나머지 SFU들에 대한 정보를 포함하는 것을 특징으로 하는 룩업 테이블 공유 장치를 제공할 수 있다.
상기 비트맵 업데이터는, 상기 다음 비트맵에 1이 남아있으면, 상기 초기 비트맵을 상기 다음 비트맵으로 갱신할 수 있다.
상기 멀티 패치부는, 상기 초기 비트맵에서 데이터가 있는 기준비트 및 후보비트를 검출하는 선택기, 및 상기 선택기에서 검출된 기준비트 및 후보비트에 해당하는 주소들 중 동일한 주소를 갖는 비트를 검출하는 비교기를 포함할 수 있다.
상기 선택기는, 상기 초기 비트맵에서 최초의 1을 찾아 기준비트를 검출하는 기준비트 출력부, 및 상기 초기 비트맵에서 상기 기준비트 이후의 1을 찾아 후보 비트를 검출하는 적어도 하나의 후보비트 출력부를 포함할 수 있다.
상기 비교기는, 상기 선택기에서 출력되는 기준 비트의 주소와 상기 후보비트의 주소를 비교하고 비교 결과에 따라 상기 후보 비트를 갱신시킬 수 있다.
본 발명의 다른 측면은, 룩업 테이블을 복수 개의 뱅크로 분리하고, 적어도 한개의 특별 기능 유닛(SFU : Special Function Unit)으로부터 요청받은 다항식 계수(coefficient)의 주소들을 기반으로 해당 주소가 속하는 뱅크를 나타내는 초기 비트맵(initial bitmap)을 형성하는 단계; 상기 분리된 각각의 뱅크의 초기 비트맵에서 현재 비트맵(current bitmap)을 추출하는 단계; 상기 각각의 뱅크에서 추출된 현재 비트맵에서 특정된 SFU에 대해 요청받은 다항식의 계수를 제공하는 단계; 상기 초기 비트맵과 현재 비트맵을 기반으로, 다음 비트맵(next bitmap)을 형성하는 단계; 및 상기 다음 비트맵에 1이 포함되어 있는지를 판단하는 단계를 포함하며, 여기서, 뱅크별 초기 비트맵은 해당 뱅크에서 요청에 따라 다항식 계수를 제공해야 하는 SFU들에 대한 정보를 포함하고, 뱅크별 현재 비트맵은 해당 뱅크의 초기 비트맵에서 동일한 주소의 다항식 계수를 요청한 SFU들에 대한 정보를 포함하며, 뱅크별 다음 비트맵은 해당 뱅크에서 요청에 따라 다항식 계수를 제공해야 하는 나머지 SFU들에 대한 정보를 포함하는 것을 특징으로 하는 룩업 테이블 공유방법을 제공할 수 있다.
상기 룩업 테이블 공유방법은, 상기 다음 비트맵에 1이 포함되어 있으면, 상기 초기 비트맵을 형성하는 단계에서 상기 초기 비트맵을 상기 다음 비트맵으로 갱신하는 단계를 더 포함할 수 있다.
상기 현재 비트맵을 추출하는 단계는, 상기 초기 비트맵에서 최초의 1을 찾아 기준비트를 검출하는 단계와, 상기 초기 비트맵에서 상기 기준비트 이후의 1을 찾아 후보 비트를 검출하는 단계, 및 상기 검출된 기준비트 및 후보비트에 해당하는 주소들 중 동일한 주소를 갖는 비트를 검출하는 단계를 포함할 수 있다.
본 발명에 따르면, 여러개의 특별 기능 유닛(SFU)이 하나의 룩업테이블을 효율적으로 공유하여 전력 소모를 줄이고, 성능 저하를 줄일 수 있다.
이하, 첨부된 도면을 참조하여 본 발명을 상세히 설명하겠다.
도 1은, 본 발명의 개념을 설명하기 위한 그래프이다.
도 1에서는 일반적으로 연속된 데이터가 들어올 때 데이터 열(sequence)의 두 가지 특징을 보여준다. 도 1에서 a, b, c, 및 d 로 표시된 연속된 샘플은 변화량이 큰 편이다. 따라서, 서로 다른 뱅크에 존재할 확률이 커질 수 있다. 한편, e, f, g, 및 h 로 표시된 연속된 샘플은 변화량이 거의 없어 하나의 구간(sub interval)안에 모두 포함되는 경우이다. 이 경우, 룩업 테이블에서 동일한 계수를 참조하여 결과를 얻을 수 있다.
도 2는, 본 발명의 일실시 형태에 따른 룩업 테이블 공유 장치의 구성도이다. 본 실시형태에 따른 룩업 테이블 공유 장치(200)는 복수개의 특별 기능 유닛(SFU)이 하나의 룩업 테이블을 공유하여 효율적으로 데이터를 요청하고 전송받을 수 있는 장치를 제공할 수 있다
도 2를 참조하면, 본 실시형태에 따른 룩업 테이블 공유 장치(200)는, 뱅크 분할부(210), 멀티 패치부(220), 및 비트맵 업데이터(230)를 포함할 수 있다.
상기 뱅크 분할부(210)는, 룩업 테이블을 복수 개의 뱅크로 분리하고, 적어도 한 개의 특별 기능 유닛(SFU : Special Function Unit)으로부터 입력되는 데이터 요청 계수의 주소들이 각각 어느 뱅크에 속하는지를 나타내는 초기 비트맵(initial bitmap)을 형성할 수 있다. 상기 뱅크 분할부(210)에서 상기 룩업 테이블을 복수 개로 분리하는 것은 실행되는 어플리케이션 프로그램이 가지는 데이터의 통계적 특성에 따라 달라질 수 있다.
본 실시형태에서는 상기 뱅크 분할부(210)에서는 복수 개의 특별 기능 유닛으로부터 입력되는 데이터 요청 계수의 주소(A[0] 내지 A[N-1])에서 하위 k 비트에 따라 뱅크를 나눌 수 있다. 상기 뱅크 분할부(210)에서 형성되는 초기 비트맵의 크기는 상기 특별 기능 유닛의 개수와 동일할 수 있다.
상기 멀티 패치부(220)는, 상기 뱅크 분할부에서 분리된 각각의 뱅크의 초기 비트맵에서 동일한 데이터 요청 계수의 주소를 갖는 특별 기능 유닛의 집합을 나타내는 현재 비트맵(current bitmap)을 추출하고, 상기 현재 비트맵에서 특정된 특별 기능 유닛에 대해 해당 뱅크의 데이터를 제공할 수 있다.
상기 멀티 패치부(220)는, 상기 초기 비트맵에서 데이터가 있는 기준비트 및 후보비트를 검출하는 선택기(221) 및 상기 선택기에서 검출된 기준비트(Reference bit) 및 후보비트(Candidate bit)에 해당하는 주소들 중 동일한 주소를 갖는 비트를 검출하는 비교기(222)를 포함할 수 있다.
상기 비트맵 업데이터(230)는, 상기 초기 비트맵과 현재 비트맵을 XOR(exclusive OR) 연산하여 다음 비트맵(next bitmap)을 형성할 수 있다. 상기 비트맵 업데이터(230)에서는 다음 비트맵에 1이 포함되어 있는지를 판단할 수 있다. 상기 다음 비트맵에 1이 포함되어 있으면, 상기 초기 비트맵을 상기 다음 비트맵으로 갱신시키고, 상기 현재 비트맵을 구한 후 데이터를 제공하는 과정을 반복할 수 있다.
이처럼, 본 실시형태에 따르면, 여러개의 특별 기능 유닛에 대하여 하나의 룩업 테이블을 효율적으로 공유할 수 있다. 즉, 뱅크 분할을 통해 데이터 요청 계 수 주소가 다른 경우 뱅크 수만큼 읽기 포트가 늘어나는 효과를 얻을 수 있다. 또한, 멀티 패치 기능을 사용함으로서 동일한 데이터 요청 계수 주소가 들어오는 경우 각 룩업 테이블을 모두 참조하지 않고 한번만 참조함으로써 메모리 읽기 전력을 감소시킬 수 있다.
도 3은, 본 발명의 일실시예에 따른 룩업 테이블 공유 장치에서 처리되는 비트맵의 형태를 도시한 것이다.
본 실시예에서는, 8 개의 특별 기능 유닛(SUF)(0~7)으로부터 하나의 룩업 테이블에 데이터 요청 신호가 입력되고, 상기 데이터 요청 계수의 주소들이 16진수로 표현될 수 있다. 도 7에서는 상기 16진수로 표현된 데이터 요청 계수의 주소를 2진수로 다시 표현하여 나타내었다.
도 3 및 도 7을 참조하면, 본 실시예에서는, 상기 8 개의 특별 기능 유닛으로부터 입력되는 데이터 요청 계수의 주소(2진수)에서 하위 2 비트에 따라 룩업 테이블에서 분할되는 뱅크의 개수를 정할 수 있다. 즉, 본 실시예에서는 상기 룩업 테이블을 4개로 분할할 수 있으며, 상기 분할된 4개의 뱅크는 각각 상기 데이터 요청 계수의 주소에서 하위 2 비트가 각각 00, 01, 10, 및 11 인 주소를 갖는 요청신호에 대해 데이터를 제공할 수 있다.
본 실시예에서는 4 개의 뱅크(B0, B1, B2, B3) 각각에는 상기 특별 기능 유닛으로부터 입력되는 데이터 요청 계수의 주소들이 어느 뱅크에 속하는지를 나타내는 초기 비트맵(initial bitmap : i-1)이 형성될 수 있다. 본 실시예에서, 제1 뱅크(B0)의 비트맵에는 각각 1, 2, 3, 5, 및 7번 특별 기능 유닛(SFU)의 데이터가 들어와 있고, 제 2 뱅크(B1)의 비트맵에는 각각 4번 및 6번 특별 기능 유닛의 데이터가 들어와 있고, 제4 뱅크(B3)의 비트맵에는 0번 특별 기능 유닛의 데이터가 들어와 있다. 본 실시예에서는 제3 뱅크(B2)에 해당하는 데이터는 없다.
본 실시예에 따른 룩업 테이블 공유 장치에서는 상기 초기 비트맵(i-1)에서 동일한 데이터 요청 계수 주소를 갖는 특별 기능 유닛의 집합을 나타내는 현재 비트맵(i)을 추출할 수 있다. 즉, 본 실시예에서 상기 제1 뱅크(B0)에서는 1, 2, 및 3번 특별 기능 유닛의 데이터가 동일한 데이터 요청계수의 주소를 가질 수 있다. 여기서 검출된 현재 비트맵에 의해 상기 1, 2 및 3번 특별 기능 유닛은 상기 룩업 테이블 중 제1 뱅크에서 동일한 데이터를 제공받을 수 있다.
상기 룩업 테이블 공유 장치에서는 상기 초기 비트맵과 현재 비트맵을 XOR(exclusive OR)연산하여 다음 비트맵(next bitmap : i+1)을 형성할 수 있다. 상기 다음 비트맵에 1이 남아있는 경우에는 상기 초기 비트맵을 상기 다음 비트맵으로 갱신하고 다음 비트맵의 모든 비트가 0으로 될때까지 상기 과정을 반복할 수 있다.
도 4는, 본 발명의 룩업 테이블 공유 장치의 멀티 패치부에 사용되는 선택기 의 일실시 형태에 따른 구성도이다.
도 4를 참조하면, 본 실시형태에 다른 선택기(420)는 기준비트 출력부(421) 및 복수 개의 후보비트 출력부(422, 423, 424)를 포함할 수 있다.
상기 기준비트 출력부(421)는 초기 비트맵에서 최초의 1을 찾아 출력할 수 있다. 본 실시형태에서는 상기 기준비트 출력부(421)로 제1 리딩 제로 검출기(lzd leading zero detector)를 사용할 수 있다. 상기 제1 리딩 제로 검출기(421)는 초기 비트맵에서 최초로 1을 만나기까지 연속된 0을 찾는 회로이다.
상기 복수개의 후보비트 출력부(422, 423, 424)는 상기 초기 비트맵에서 상기 기준비트 이후의 1을 찾아 출력할 수 있다. 본 실시형태에서는 상기 각각의 후보비트 출력부(422, 423, 424)는 각각 리딩 제로 검출기를 연속으로 연결하여 형성될 수 있다. 또한 본 실시형태에서 각 후보비트 출력부(422, 423, 424)는 마스크 패턴 및 리딩 제로 검출기를 이용하여 상기 초기 비트맵 중 이전 단계에서 이미 찾은 1 이후에 있는 1을 찾을 수 있다. 상기 마스크 패턴은 이전 단계에서 이미 찾은 1은 다음 단계에서 무시하도록 하는 기능을 할 수 있다. 도 5는 본 실시예에 사용되는 마스크 패턴을 나타내는 표이다. 도 5를 참조하면 이전 단계의 리딩 제로 검출기에서 출력되는 비트에 따라 다음 단계에서의 마스크 패턴의 상태를 알 수 있다. 예를 들어 상기 기준 비트 출력부(421)에서 출력된 비트값이 01000000 일 때 상기 제1 후보비트 출력부(422)의 마스크 패턴은 0111111 과 상기 초기 비트맵인 01110101 을 AND 결합하여 00110101을 출력하고, 상기 제1 후보비트 출력부의 리딩 제로 검출기에서는 00100000을 출력할 수 있다.
상기 기준비트 검출기(421)에서 출력되는 기준비트(R)와 후보비트 검출기(422, 423, 424)에서 출력되는 후보비트(C0, C1, CN-2)는 비교를 위해 비교기로 전달될 수 있다.
도 6은, 본 발명의 룩업 테이블 공유 장치의 멀티 패치부에 사용되는 비교기의 일실시 형태에 따른 구성도이다.
본 실시형태에 따른 비교기(620)는, 상기 선택기에서 출력되는 기준 비트의 주소(A[R])와 후보비트의 주소(A[C0])를 비교하고, 상기 비교 결과에 따라 후보 비트를 갱신시키는 복수개의 비교기(621, 622, 623)를 포함할 수 있다. 즉, 상기 선택기에서 출력되는 기준비트의 주소(A[R])와 제1 후보비트의 주소(A[C0])를 비교하여 두 주소가 같으면 후보비트를 1로 출력할 수 있다. 두 주소가 다르면 상기 비교된 후보비트를 0으로 갱신하여 출력할 수 있다. 상기 각각의 비교기(621, 622, 623)에서는 상기 비교 과정을 거쳐 갱신된 후보비트가 출력되고, 상기 기준 비트 및 상기 갱신된 후보비트가 모여 현재 비트맵을 이룰 수 있다. 따라서, 상기 현재 비트맵에서는 기준 비트의 주소와 동일한 주소를 갖는 후보비트가 표시될 수 있다. 즉, 상기 현재 비트맵에서 1로 표시되는 특별 기능 유닛은 서로 동일한 데이터 요청 계수 주소를 갖고 있으므로 동일한 뱅크에서 데이터가 제공될 수 있다.
도 8은, 본 발명의 다른 실시형태에 따른 룩업 테이블 공유 방법을 나타내는 순서도이다.
도 8을 참조하면, 본 실시형태에 따른 룩업 테이블 공유 방법은, 초기 비트맵 형성(810), 현재 비트맵 추출(820), 해당 뱅크의 데이터 제공(830), 다음 비트맵 형성(840), 및 다음 비트맵 내에 1이 포함되어 있는지를 판단하는 단계(850)를 포함할 수 있다. 본 실시형태에 따른 룩업 테이블 공유 방법에서는 복수개의 특별 기능 유닛(SFU)이 하나의 룩업 테이블을 공유하여 효율적으로 데이터를 요청하고 전송받을 수 있는 방법을 제공할 수 있다.
상기 초기 비트맵을 형성하는 단계(810)는, 복수개의 특별 기능 유닛으로부터 데이터를 요청하는 신호가 입력되면, 먼저 룩업 테이블을 복수 개의 뱅크로 분리하고, 복수개의 특별 기능 유닛(SFU : Special Function Unit)으로부터 입력되는 데이터 요청 계수의 주소들이 각각 어느 뱅크에 속하는지를 나타내는 초기 비트맵을 형성할 수 있다. 상기 룩업 테이블을 복수 개로 분리하는 것은 실행되는 어플리케이션 프로그램이 가지는 데이터의 통계적 특성에 따라 달라질 수 있다.
상기 현재 비트맵을 추출하는 단계(820)는, 상기 분리된 각각의 뱅크의 초기 비트맵에서 동일한 데이터 요청 계수 주소를 갖는 특별 기능 유닛의 집합을 나타내는 현재 비트맵(current bitmap)을 추출하는 단계일 수 있다.
본 단계에서는 상기 초기 비트맵에서 데이터가 있는 기준비트 및 후보비트를 검출한 후, 상기 검출된 기준비트(Reference bit) 및 후보비트(Candidate bit)에 해당하는 주소들 중 동일한 주소를 갖는 비트를 검출할 수 있다.
상기 해당 뱅크의 데이터를 제공하는 단계(830)는, 상기 추출된 현재 비트맵에서 특정된 특별 기능 유닛에 대해 해당 뱅크의 데이터를 제공할 수 있다. 본 실시형태에서 상기 현재 비트맵은 동일한 데이터 요청 계수 주소를 갖는 특별 기능 유닛(SFU)을 표시하는 것이므로, 상기 현재 비트맵에 의해 특정된 특별 기능 유닛에 대해서는 동일한 뱅크에서 데이터가 제공될 수 있다.
상기 다음 비트맵을 형성하는 단계(840)는, 상기 초기 비트맵과 현재 비트맵을 XOR(exclusive OR) 연산하여 다음 비트맵(next bitmap)을 형성할 수 있다. 상기 다음 비트맵에 1이 남아 있지 않다면 처리해야할 주소 즉, 룩업 테이블에서 특별 기능 유닛으로 데이터를 제공해야할 주소가 남아있지 않다는 것이다.
본 실시형태에서는 상기 다음 비트맵에 1이 남아있으면, 상기 초기 비트맵을 형성하는 단계에서 상기 초기 비트맵을 상기 다음 비트맵으로 갱신하는 단계(860)를 더 포함할 수 있다. 본 단계에서 상기 초기 비트맵을 상기 다음 비트맵으로 갱신되면, 상기 현재 비트맵 추출 단계 및 해당 뱅크의 데이터 제공 단계, 및 다음 비트맵을 형성하는 단계가 반복될 수 있다.
이처럼, 본 실시형태에 따르면, 여러개의 특별 기능 유닛에 대하여 하나의 룩업 테이블을 효율적으로 공유할 수 있다. 즉, 뱅크 분할을 통해 데이터 요청 계수 주소가 다른 경우 뱅크 수만큼 읽기 포트가 늘어나는 효과를 얻을 수 있다. 또한, 멀티 패치 기능을 사용함으로서 동일한 데이터 요청 계수 주소가 들어오는 경 우 각 룩업 테이블을 모두 참조하지 않고 한번만 참조함으로써 메모리 읽기 전력을 감소시킬 수 있다.
도 9는, 본 발명에 따른 룩업 테이블 공유 방법에서 현재 비트맵을 추출하는 단계에 대한 일 실시 형태를 나타내는 순서도이다.
도 9를 참조하면, 상기 현재 비트맵을 추출하는 단계는, 기준비트를 검출하는 단계(921), 후보비트를 검출하는 단계(922) 및 동일한 주소를 갖는 비트를 검출하는 단계(923)를 포함할 수 있다.
상기 기준비트를 검출하는 단계(921)는, 상기 초기 비트맵에서 최초의 1을 찾는 단계일 수 있다. 상기 기준비트를 검출하는 단계에서는 리딩 제로 검출기를 사용하여 상기 초기 비트맵에서 최초로 1을 만나기까지 연속된 0을 찾을 수 있다. 상기 리딩 제로 검출기의 결과는 상기 초기 비트맵에서 유효한 데이터가 있는 특별 기능 유닛(SFU)을 찾는데 사용될 수 있다.
상기 후보 비트를 검출하는 단계(922)는, 상기 초기 비트맵에서 상기 기준비트 이후의 1을 찾는 단계일 수 있다. 상기 후보 비트를 검출하는 단계에서는 리딩 제로 검출기를 연속으로 연결하여 형성하여 상기 초기 비트맵 중 이미 찾은 1 이후에 있는 1을 찾을 수 있다.
상기 동일한 주소를 갖는 비트를 검출하는 단계(923)는, 상기 검출된 기준비 트 및 후보비트에 해당하는 주소들 중 동일한 주소를 갖는 비트를 검출하는 단계일 수 있다. 본 실시형태에서는, 상기 기준 비트의 주소와 후보비트의 주소를 비교하여, 상기 비교 결과에 따라 후보 비트를 갱신시킬 수 있다. 상기 기준비트 및 상기 갱신된 후보비트가 현재 비트맵을 이룰 수 있다.
본 발명은 상술한 실시형태 및 첨부된 도면에 의해 한정되는 것이 아니며, 첨부된 청구범위에 의해 한정하고자 한다. 따라서, 청구범위에 기재된 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 당 기술분야의 통상의 지식을 가진 자에 의해 다양한 형태의 치환, 변형 및 변경이 가능할 것이며, 이 또한 본 발명의 범위에 속한다고 할 것이다.
도 1은, 본 발명의 개념을 설명하기 위한 그래프이다.
도 2는, 본 발명의 일실시 형태에 따른 룩업 테이블 공유 장치의 구성도이다.
도 3은, 본 발명의 일실시예에 따른 룩업 테이블 공유 장치에서 처리되는 비트맵의 형태를 도시한 것이다.
도 4는, 본 발명의 룩업 테이블 공유 장치의 멀티 패치부에 사용되는 선택기의 일실시 형태에 따른 구성도이다.
도 5는, 본 발명의 일실시예에 사용되는 마스크 패턴을 나타내는 표이다.
도 6은, 본 발명의 룩업 테이블 공유 장치의 멀티 패치부에 사용되는 비교기의 일실시 형태에 따른 구성도이다.
도 7은, 16진수로 표현된 데이터 요청 계수의 주소를 2진수로 다시 표현한 표이다.
도 8은, 본 발명의 다른 실시형태에 따른 룩업 테이블 공유 방법을 나타내는 순서도이다.
도 9는, 본 발명에 따른 룩업 테이블 공유 방법에서 현재 비트맵을 추출하는 단계에 대한 일 실시 형태를 나타내는 순서도이다.
<도면의 주요부분에 대한 부호설명>
210 : 뱅크 분할부 220 : 멀티 패치부
230 : 비트맵 업데이터

Claims (8)

  1. 룩업 테이블을 복수 개의 뱅크로 분리하고, 적어도 한 개의 특별 기능 유닛(SFU : Special Function Unit)으로부터 요청받은 다항식 계수(coefficient)의 주소들을 기반으로 해당 주소가 속하는 뱅크를 나타내는 초기 비트맵(initial bitmap)을 형성하는 뱅크 분할부;
    상기 뱅크 분할부에서 분리된 각각의 뱅크의 초기 비트맵에서 현재 비트맵(current bitmap)을 추출하고, 상기 현재 비트맵에서 특정된 SFU에 대해 요청받은 다항식의 계수를 제공하는 멀티 패치부; 및
    상기 초기 비트맵과 현재 비트맵을 기반으로, 다음 비트맵(next bitmap)을 형성하는 비트맵 업데이터
    를 포함하며,
    여기서, 뱅크별 초기 비트맵은 해당 뱅크에서 요청에 따라 다항식 계수를 제공해야 하는 SFU들에 대한 정보를 포함하고,
    뱅크별 현재 비트맵은 해당 뱅크의 초기 비트맵에서 동일한 주소의 다항식 계수를 요청한 SFU들에 대한 정보를 포함하며,
    뱅크별 다음 비트맵은 해당 뱅크에서 요청에 따라 다항식 계수를 제공해야 하는 나머지 SFU들에 대한 정보를 포함하는 것을 특징으로 하는 룩업 테이블 공유 장치.
  2. 제1항에 있어서,
    상기 비트맵 업데이터는,
    상기 다음 비트맵에 1이 남아있으면, 상기 초기 비트맵을 상기 다음 비트맵으로 갱신하는 것을 특징으로 하는 룩업 테이블 공유 장치.
  3. 제1항에 있어서,
    상기 멀티 패치부는,
    상기 초기 비트맵에서 데이터가 있는 기준비트 및 후보비트를 검출하는 선택기; 및
    상기 선택기에서 검출된 기준비트 및 후보비트에 해당하는 주소들 중 동일한 주소를 갖는 비트를 검출하는 비교기
    를 포함하는 것을 특징으로 하는 룩업 테이블 공유 장치.
  4. 제3항에 있어서,
    상기 선택기는,
    상기 초기 비트맵에서 최초의 1을 찾아 기준비트를 검출하는 기준비트 출력부; 및
    상기 초기 비트맵에서 상기 기준비트 이후의 1을 찾아 후보 비트를 검출하는 적어도 하나의 후보비트 출력부
    를 포함하는 것을 특징으로 하는 룩업 테이블 공유 장치.
  5. 제3항에 있어서,
    상기 비교기는,
    상기 선택기에서 출력되는 기준 비트의 주소와 상기 후보비트의 주소를 비교하고 비교 결과에 따라 상기 후보 비트를 갱신시키는 것을 특징으로 하는 룩업 테이블 공유 장치.
  6. 룩업 테이블을 복수 개의 뱅크로 분리하고, 적어도 한개의 특별 기능 유닛(SFU : Special Function Unit)으로부터 요청받은 다항식 계수(coefficient)의 주소들을 기반으로 해당 주소가 속하는 뱅크를 나타내는 초기 비트맵(initial bitmap)을 형성하는 단계;
    상기 분리된 각각의 뱅크의 초기 비트맵에서 현재 비트맵(current bitmap)을 추출하는 단계;
    상기 각각의 뱅크에서 추출된 현재 비트맵에서 특정된 SFU에 대해 요청받은 다항식의 계수를 제공하는 단계;
    상기 초기 비트맵과 현재 비트맵을 기반으로, 다음 비트맵(next bitmap)을 형성하는 단계; 및
    상기 다음 비트맵에 1이 포함되어 있는지를 판단하는 단계
    를 포함하며,
    여기서, 뱅크별 초기 비트맵은 해당 뱅크에서 요청에 따라 다항식 계수를 제공해야 하는 SFU들에 대한 정보를 포함하고,
    뱅크별 현재 비트맵은 해당 뱅크의 초기 비트맵에서 동일한 주소의 다항식 계수를 요청한 SFU들에 대한 정보를 포함하며,
    뱅크별 다음 비트맵은 해당 뱅크에서 요청에 따라 다항식 계수를 제공해야 하는 나머지 SFU들에 대한 정보를 포함하는 것을 특징으로 하는 룩업 테이블 공유방법.
  7. 제6항에 있어서,
    상기 다음 비트맵에 1이 포함되어 있으면,
    상기 초기 비트맵을 형성하는 단계에서 상기 초기 비트맵을 상기 다음 비트맵으로 갱신하는 단계
    를 더 포함하는 것을 특징으로 하는 룩업 테이블 공유방법.
  8. 제6항에 있어서,
    상기 현재 비트맵을 추출하는 단계는,
    상기 초기 비트맵에서 최초의 1을 찾아 기준비트를 검출하는 단계;
    상기 초기 비트맵에서 상기 기준비트 이후의 1을 찾아 후보 비트를 검출하는 단계; 및
    상기 검출된 기준비트 및 후보비트에 해당하는 주소들 중 동일한 주소를 갖는 비트를 검출하는 단계
    를 포함하는 것을 특징으로 하는 룩업 테이블 공유방법.
KR1020090031311A 2008-12-02 2009-04-10 룩업 테이블 공유 장치 및 방법 KR101118594B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020080121182 2008-12-02
KR20080121182 2008-12-02

Publications (2)

Publication Number Publication Date
KR20100062857A KR20100062857A (ko) 2010-06-10
KR101118594B1 true KR101118594B1 (ko) 2012-02-27

Family

ID=42363061

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090031311A KR101118594B1 (ko) 2008-12-02 2009-04-10 룩업 테이블 공유 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101118594B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020053978A (ko) * 2000-12-26 2002-07-06 오길록 다중 캐리어 무선통신 수신 시스템의 캐리어 분리 장치 및그 방법
KR100649111B1 (ko) 2005-09-21 2006-11-27 한국과학기술원 3차원 그래픽 시스템의 연산장치 및 그 방법
WO2008048940A2 (en) 2006-10-17 2008-04-24 Qualcomm Incorporated Graphics processing unit with shared arithmetic logic unit
KR20090071823A (ko) * 2007-12-28 2009-07-02 한국과학기술원 다기능 연산장치 및 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020053978A (ko) * 2000-12-26 2002-07-06 오길록 다중 캐리어 무선통신 수신 시스템의 캐리어 분리 장치 및그 방법
KR100649111B1 (ko) 2005-09-21 2006-11-27 한국과학기술원 3차원 그래픽 시스템의 연산장치 및 그 방법
WO2008048940A2 (en) 2006-10-17 2008-04-24 Qualcomm Incorporated Graphics processing unit with shared arithmetic logic unit
KR20090071823A (ko) * 2007-12-28 2009-07-02 한국과학기술원 다기능 연산장치 및 방법

Also Published As

Publication number Publication date
KR20100062857A (ko) 2010-06-10

Similar Documents

Publication Publication Date Title
US20210349692A1 (en) Multiplier and multiplication method
US8392489B2 (en) ASCII to binary floating point conversion of decimal real numbers on a vector processor
US10192028B2 (en) Data analysis device and method therefor
WO2016062254A1 (en) Memory-based history search
US9361307B2 (en) Rejecting rows when scanning a collision chain that is associated with a page filter
US9785434B2 (en) Fast minimum and maximum searching instruction
CN108304409B (zh) 一种基于进位的Sketch数据结构的数据频度估计方法
WO2010135082A1 (en) Localized weak bit assignment
CN107341507B (zh) 一种基于gpu与级联哈希的快速图像sift特征匹配方法
CN112540946A (zh) 可重构处理器及其上多种神经网络激活函数计算方法
KR20010052899A (ko) 데이터 연산 처리 장치
CN111209341B (zh) 区块链的数据存储方法、装置、设备及介质
US5383142A (en) Fast circuit and method for detecting predetermined bit patterns
JP6613019B2 (ja) パターンを探索する装置
WO2015192742A1 (zh) 一种查找装置、查找方法和配置方法
KR101118594B1 (ko) 룩업 테이블 공유 장치 및 방법
US10230376B2 (en) Apparatus and method for performing division
US6931424B1 (en) Storage efficient minimization logic
Usmani A novel time and space complexity efficient variant of counting-sort algorithm
US9519456B2 (en) Data processing apparatus and method for performing a shift function on a binary number
WO2019232159A1 (en) Modulus calculation that leverages computer architecture and/or operand clustering
CN112463215B (zh) 数据处理方法、装置、计算机可读存储介质和计算机设备
US20240118866A1 (en) Shift array circuit and arithmetic circuit including the shift array circuit
US20240048358A1 (en) Method and apparatus for performing dynamic hashing to store key values in order
CN112464157B (zh) 向量排序方法与排序系统

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee