KR102528467B1 - 나눗셈 연산을 처리하는 방법, 장치 및 기록매체 - Google Patents

나눗셈 연산을 처리하는 방법, 장치 및 기록매체 Download PDF

Info

Publication number
KR102528467B1
KR102528467B1 KR1020187019708A KR20187019708A KR102528467B1 KR 102528467 B1 KR102528467 B1 KR 102528467B1 KR 1020187019708 A KR1020187019708 A KR 1020187019708A KR 20187019708 A KR20187019708 A KR 20187019708A KR 102528467 B1 KR102528467 B1 KR 102528467B1
Authority
KR
South Korea
Prior art keywords
input
data
divisor
dividend
division
Prior art date
Application number
KR1020187019708A
Other languages
English (en)
Other versions
KR20180103885A (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 KR20180103885A publication Critical patent/KR20180103885A/ko
Application granted granted Critical
Publication of KR102528467B1 publication Critical patent/KR102528467B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/535Dividing only

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

입력 데이터를 획득하고, 적어도 하나의 나눗셈 연산에 관한 데이터가 기 저장된 캐쉬 메모리로부터, 획득된 입력 데이터와 대응되는 나눗셈 연산에 관한 데이터인 참조 데이터를 검출하여, 처리 가능한 데이터 비트(bit)의 수 및 연산의 종류 중 적어도 하나에 따라 식별되는 복수의 연산기 중 어느 하나의 연산기를 검출된 참조 데이터와 입력 데이터 간의 차이에 기초하여 선택하고, 선택된 연산기로부터 입력 데이터의 나눗셈 연산 결과를 획득하는 나눗셈 연산을 처리하는 방법이 개시된다.

Description

나눗셈 연산을 처리하는 방법, 장치 및 기록매체
개시된 기술적 사상은 나눗셈 연산을 처리하는 방법, 나눗셈 연산을 처리하는 장치 및 나눗셈 연산을 처리하는 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체에 관한 것이다.
화상 처리 기술 및 컴퓨터 비젼 기술이 발달함에 따라 복잡한 연산을 요구하는 응용 프로그램들이 많아지고 있다. 특히, CPU 및 GPU에서 처리되어야 하는 나눗셈의 연산량이 비약적으로 증가하고 있는 추세이다. 나눗셈 연산의 경우, 다른 연산에 비해 연산을 처리하는데 이용되는 자원이 크므로, 나눗셈 연산을 효율적으로 수행하는 알고리즘에 대한 개발이 지속적으로 이루어지고 있다.
다만, 현재 개발된 알고리즘은 나눗셈 연산을 효율적으로 수행하기 위해 룩업 테이블이나 장비를 추가적으로 구비해야 하고, 특정한 나눗셈 연산의 구조에만 부합되는 경우가 많아, 여전히 나눗셈 연산을 효율적으로 수행할 수 있는 기술에 대한 개발이 필요로 되고 있는 실정이다.
개시된 실시예는 나눗셈 연산을 수행하고자 하는 입력 데이터와 이전에 수행된 나눗셈 연산의 결과를 이용하여 나눗셈 연산을 수행할 수 있는 적절한 연산기를 선택함으로써, 나눗셈 연산을 보다 효율적으로 처리할 수 있는 나눗셈 연산을 처리하는 방법, 장치 및 기록매체에 관한 것이다.
입력 데이터를 획득하고, 적어도 하나의 나눗셈 연산에 관한 데이터가 기 저장된 캐쉬 메모리로부터, 획득된 입력 데이터와 대응되는 나눗셈 연산에 관한 데이터인 참조 데이터를 검출하여, 처리 가능한 데이터 비트(bit)의 수 및 연산의 종류 중 적어도 하나에 따라 식별되는 복수의 연산기 중 어느 하나의 연산기를 검출된 참조 데이터와 입력 데이터 간의 차이에 기초하여 선택하고, 선택된 연산기로부터 입력 데이터의 나눗셈 연산 결과를 획득하는 나눗셈 연산을 처리하는 방법이 개시된다.
이전에 수행된 나눗셈 연산의 결과를 이용하여 나눗셈 연산을 수행할 수 있는 적절한 연산기를 선택함으로써, 나눗셈 연산을 보다 효율적으로 처리할 수 있다.
도 1은 일 실시예에 따른 나눗셈 연산을 처리하는 장치를 도시한 도면이다.
도 2A 및 도 2B는 일 실시예에 따라 입력 데이터에 나눗셈 연산을 수행하는 경우, 나눗셈 연산기를 선택하는 기준을 설명하기 위한 도면이다.
도 3은 일 실시예에 따라 나눗셈 연산을 처리하는 방법을 설명하기 위한 흐름도이다.
도 4는 일 실시예에 따라 나눗셈 연산을 처리하는 방법을 보다 구체적으로 설명하기 위한 흐름도이다.
도 5는 일 실시예에 따른 나눗셈 연산 처리 장치에서 제 1 모드에 따라 나눗셈 연산을 수행하는 방법을 설명하기 위한 도면이다.
도 6a 및 도 6b는 일 실시예에 따른 나눗셈 연산 처리 장치에서 제 2 모드에 따라 나눗셈 연산을 수행하는 방법을 설명하기 위한 도면이다.
도 7은 일 실시예에 따른 나눗셈 연산 처리 장치에서 제 3 모드에 따라 나눗셈 연산을 수행하는 방법을 설명하기 위한 도면이다.
도 8은 다른 실시예에 따른 나눗셈 연산 처리 장치를 보다 상세하게 설명하기 위한 블록도이다.
도 9는 또 다른 일 실시예에 따른 나눗셈 연산 처리 장치를 보다 상세하게 설명하기 위한 블록도이다.
도 10은 일 실시예에 따른 나눗셈 연산 처리 장치가 입력 데이터에 대응되는 참조 데이터를 검출하기 위해 인덱스를 결정하는 방법을 설명하기 위한 흐름도이다.
도 11은 일 실시예에 따라, 시간에 따라 변경되는 입력 제수의 차이가 캐쉬 메모리의 크기의 배수인 경우에 인덱스를 결정하는 방법을 설명하기 위한 도면이다.
도 12는 일 실시예에 따라, 입력 제수가 고정되고 입력 피제수가 시간에 따라 변경되는 경우, 인덱스를 결정하는 방법을 설명하기 위한 도면이다.
발명의 실시를 위한 최선의 형태
일 실시예에 따른 나눗셈 연산을 처리하는 방법은, 입력 데이터를 획득하는 단계; 적어도 하나의 나눗셈 연산에 관한 데이터가 기 저장된 캐쉬 메모리로부터, 획득된 입력 데이터와 대응되는 나눗셈 연산에 관한 데이터인 참조 데이터를 검출하는 단계; 처리 가능한 데이터 비트(bit)의 수 및 연산의 종류 중 적어도 하나에 따라 식별되는 복수의 연산기 중 어느 하나의 연산기를 검출된 참조 데이터와 입력 데이터 간의 차이에 기초하여 선택하는 단계; 및 선택된 연산기로부터 입력 데이터의 나눗셈 연산 결과를 획득하는 단계를 포함한다.
일 실시예에 따른 나눗셈 연산을 처리하는 방법은, 입력 데이터에 포함된 입력 제수와 참조 데이터에 포함된 참조 제수의 차이에 기초하여, 검출된 참조 데이터의 이용 여부를 결정하는 단계를 더 포함한다.
일 실시예에 따른 나눗셈 연산을 처리하는 방법에 있어서, 획득하는 단계는, 참조 제수와 입력 제수가 동일한 경우, 입력 데이터에 포함된 입력 피제수와 참조 데이터에 포함된 참조 피제수의 차이값을 산출하는 단계; 산출된 차이값이 기 설정된 임계값 및 입력 제수 이하인 경우, 참조 피제수와 입력 피제수를 비교하는 단계; 및 비교 결과, 참조 피제수가 입력 피제수를 초과하는 경우, 참조 데이터에 포함된 몫에서 1을 뺀 값을 입력 데이터의 몫으로 결정하고, 참조 피제수가 입력 피제수 이하인 경우, 참조 데이터의 몫을 입력 데이터의 몫으로 결정하는 단계를 포함한다.
일 실시예에 따른 나눗셈 연산을 처리하는 방법에 있어서, 획득하는 단계는, 참조 제수와 입력 제수가 동일한 경우, 입력 데이터에 포함된 입력 피제수와 참조 데이터에 포함된 참조 피제수의 차이값을 산출하는 단계; 산출된 차이값이 기 설정된 임계값 미만이면서 입력 제수를 초과하는 경우, 입력 피제수와 피참조 제수 간의 차이를 입력 제수로 나눈 몫과 나머지를 산출하는 단계; 및 산출된 몫이 0 이상이거나 산출된 나머지가 0인 경우, 참조 데이터의 몫에 산출된 몫의 합으로 입력 데이터의 몫을 결정하고, 산출된 몫이 0 미만이고, 산출된 나머지가 0이 아닌 경우, 참조 데이터의 몫에 산출된 몫의 합을 더한 값에서 1을 뺀 값으로, 입력 데이터의 몫을 결정하는 단계를 포함한다.
일 실시예에 따른 나눗셈 연산을 처리하는 방법에 있어서, 획득하는 단계는, 참조 제수와 입력 제수가 상이하거나, 입력 피제수와 참조 피제수 간의 차이값이 기 설정된 임계값을 초과하는 경우, 입력 데이터에 포함된 입력 피제수와 입력 제수에 대해 나눗셈 연산을 수행하는 단계를 포함한다.
일 실시예에 따른 나눗셈 연산을 처리하는 방법에 있어서, 복수의 연산기는, 처리 가능한 나눗셈 연산의 몫의 데이터 비트 수가 서로 다른 제 1 나눗셈 연산기 및 제 2 나눗셈 연산기를 포함하고, 선택하는 단계는, 입력 데이터에 포함된 입력 제수와 참조 데이터에 포함된 참조 제수가 상이한 경우, 제 1 나눗셈 연산기에서 처리 가능한 나눗셈 연산의 몫의 데이터 비트수와 입력 제수를 비교하여 제 1 나눗셈 연산기 및 제 2 나눗셈 연산기 중 어느 하나를 선택한다.
일 실시예에 따른 나눗셈 연산을 처리하는 방법은, 획득한 입력 데이터에 포함된 입력 제수, 입력 피제수 및 캐쉬 메모리의 크기 중 적어도 하나에 기초하여 캐쉬 메모리 상의 위치를 나타내는 인덱스를 결정하는 단계를 더 포함하고, 검출하는 단계는, 결정된 인덱스를 이용하여, 캐쉬 메모리로부터 참조 데이터를 검출한다.
일 실시예에 따른 나눗셈 연산을 처리하는 방법은, 결정된 인덱스가 나타내는 캐쉬 메모리 상의 위치에 나눗셈 연산 결과를 저장하는 단계를 더 포함한다.
일 실시예에 따른 나눗셈 연산을 처리하는 장치는, 적어도 하나의 나눗셈 연산에 관한 데이터가 기 저장된 캐쉬 메모리; 입력 데이터를 획득하는 입력부; 처리 가능한 데이터 비트의 수 및 연산의 종류 중 적어도 하나에 따라 식별되는 복수의 연산기를 포함한 연산부; 캐쉬 메모리로부터, 획득된 입력 데이터와 대응되는 나눗셈 연산에 관한 데이터인 참조 데이터를 검출하고, 검출된 참조 데이터와 입력 데이터 간의 차이에 기초하여 복수의 연산기 중 어느 하나를 선택하는 제어부; 및 선택된 연산기로부터 입력 데이터의 나눗셈 연산 결과를 획득하는 출력부를 포함한다.
일 실시예에 따른 나눗셈 연산을 처리하는 장치에 있어서, 제어부는, 입력 데이터에 포함된 입력 제수와 참조 데이터에 포함된 참조 제수의 차이에 기초하여, 검출된 참조 데이터의 이용 여부를 결정한다.
일 실시예에 따른 나눗셈 연산을 처리하는 장치에 있어서, 연산부는, 참조 제수와 입력 제수가 동일한 경우, 입력 데이터에 포함된 입력 피제수와 참조 데이터에 포함된 참조 피제수의 차이값을 산출하고, 산출된 차이값이 기 설정된 임계값 및 입력 제수 이하인 경우, 참조 피제수와 입력 피제수를 비교하며, 비교 결과, 참조 피제수가 입력 피제수를 초과하는 경우, 참조 데이터에 포함된 몫에서 1을 뺀 값을 입력 데이터의 몫으로 결정하고, 참조 피제수가 입력 피제수 이하인 경우, 참조 데이터의 몫을 입력 데이터의 몫으로 결정한다.
일 실시예에 따른 나눗셈 연산을 처리하는 장치에 있어서, 연산부는, 참조 제수와 입력 제수가 동일한 경우, 입력 데이터에 포함된 입력 피제수와 참조 데이터에 포함된 참조 피제수의 차이값을 산출하고, 산출된 차이값이 기 설정된 임계값 미만이면서 입력 제수를 초과하는 경우, 입력 피제수와 피참조 제수 간의 차이를 입력 제수로 나눈 몫과 나머지를 산출하며, 산출된 몫이 0 이상이거나 산출된 나머지가 0인 경우, 참조 데이터의 몫에 산출된 몫의 합으로 입력 데이터의 몫을 결정하고, 산출된 몫이 0 미만이고, 산출된 나머지가 0이 아닌 경우, 참조 데이터의 몫에 산출된 몫의 합을 더한 값에서 1을 뺀 값으로, 입력 데이터의 몫을 결정한다.
일 실시예에 따른 나눗셈 연산을 처리하는 장치에 있어서, 연산부는, 참조 제수와 입력 제수가 상이하거나, 입력 피제수와 참조 피제수 간의 차이값이 기 설정된 임계값을 초과하는 경우, 입력 데이터에 포함된 입력 피제수와 입력 제수에 대해 나눗셈 연산을 수행한다.
일 실시예에 따른 나눗셈 연산을 처리하는 장치에 있어서, 복수의 연산기는, 처리 가능한 나눗셈 연산의 몫의 데이터 비트 수가 서로 다른 제 1 나눗셈 연산기 및 제 2 나눗셈 연산기를 포함하고, 제어부는, 입력 데이터에 포함된 입력 제수와 참조 데이터에 포함된 참조 제수가 상이한 경우, 제 1 나눗셈 연산기에서 처리 가능한 나눗셈 연산의 몫의 데이터 비트 수인 임계값과 입력 제수를 비교하여 제 1 나눗셈 연산기 및 제 2 나눗셈 연산기 중 어느 하나를 선택한다.
일 실시예에 따른 나눗셈 연산을 처리하는 장치에 있어서, 제어부는, 획득한 입력 데이터에 포함된 입력 제수, 입력 피제수 및 캐쉬 메모리의 크기 중 적어도 하나에 기초하여 캐쉬 메모리 상의 위치를 나타내는 인덱스를 결정하고, 결정된 인덱스를 이용하여, 캐쉬 메모리로부터 참조 데이터를 검출한다.
일 실시예에 따른 나눗셈 연산을 처리하는 장치에 있어서, 제어부는, 결정된 인덱스가 나타내는 캐쉬 메모리 상의 위치에 나눗셈 연산 결과를 저장한다.
발명의 실시를 위한 형태
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
이하 첨부된 도면을 참고하여 개시된 실시예들을 상세히 설명하기로 한다.
도 1은 일 실시예에 따른 나눗셈 연산을 처리하는 장치(100)를 도시한 도면이다.
도 1에 도시된 나눗셈 연산을 처리하는 장치(100, 이하 나눗셈 연산 처리 장치)에는 본 실시예와 관련된 구성요소들만이 도시되어 있다. 따라서, 도 1에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 본 실시예와 관련된 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
도 1을 참고하면, 나눗셈 연산 처리 장치(100)는 입력부(110), 제어부(120), 캐쉬 메모리(130), 복수의 연산기(140) 및 출력부(150)를 포함할 수 있다.
입력부(110)는 입력 데이터를 획득한다. 일 실시예에 따른 입력부(110)는 나눗셈 연산 처리 장치(100)와 연결된 외부의 장치로부터 나눗셈 연산을 수행하고자 하는 입력 데이터를 획득할 수 있다. 여기에서, 외부의 장치는 메모리(미도시), 나눗셈 연산 이외의 다른 연산을 수행하는 다른 연산기(미도시) 및 프로세서 중 적어도 하나를 포함할 수 있다.
일 실시예에 따른 입력부(110)는 복수의 입력 데이터에 대한 나눗셈 연산을 병렬적으로 수행할 수 있도록 복수의 슬롯들로 구성될 수 있다. 입력부(110)를 구성하는 복수의 슬록들 각각에 입력 데이터가 할당될 수 있다. 예를 들어, SIMD(Single Instruction Multiple Data) 구조에 따라, 병렬적으로 나눗셈 연산을 수행하는 경우, 입력부(110)는 복수의 슬롯들로 구성될 수 있다.
다만, 이는 일 실시예일 뿐, 입력부(110)는 복수의 슬롯들로 구성되지 않을 수도 있다.
제어부(120)는 획득된 입력 데이터와 대응되는 나눗셈 연산에 관한 데이터인 참조 데이터를 캐쉬 메모리(130)에 저장된 이전 나눗셈 연산에 관한 데이터로부터 검출한다. 입력 데이터는 입력 피제수 및 입력 제수를 포함할 수 있다. 또한, 참조 데이터는 참조 피제수, 참조 제수, 참조 피제수 및 참조 제수에 대한 나눗셈 연산 처리 결과인 몫 및 나머지 중 적어도 하나를 포함할 수 있다.
한편, 캐쉬 메모리(130)에 이전 나눗셈 연산에 관한 데이터가 저장되어 있지 않은 경우, 제어부(120)는 참조 데이터를 검출하지 않고, 복수의 연산기(140)를 이용하여 입력 데이터에 대한 나눗셈 연산을 수행할 수 있다. 여기에서, 수행된 나눗셈 연산의 결과 및 입력 데이터에 관한 정보는 캐쉬 메모리(130)에 저장될 수 있다.
일 실시예에 따른 제어부(120)는 입력 피제수, 입력 제수 및 캐쉬 메모리(130)의 크기 중 적어도 하나에 기초하여, 참조 데이터를 검출하기 위한 캐쉬 메모리(130) 상의 위치를 나타내는 인덱스를 결정할 수 있다.
예를 들어, 제어부(120)는 입력 제수와 캐쉬 메모리(130)의 크기 간의 나머지 연산 결과값을 인덱스로 결정할 수 있다. 다른 예에 따라, 제어부(120)는 입력 제수와 캐쉬 메모리(130)의 크기 간의 나눗셈 연산 결과 및 입력 제수와 캐쉬 메모리(130)의 크기 간의 나머지 연산 결과를 합산하여 인덱스 정보를 결정할 수도 있다. 또 다른 예에 따라, 제어부(120)는 입력 제수와 캐쉬 메모리(130)의 크기 간의 나머지 연산 결과 및 입력 피제수를 구성하는 일부 데이터 비트를 합산하여, 인덱스 정보를 결정할 수도 있다. 제어부(120)는 결정된 인덱스를 이용하여, 캐쉬 메모리(130)로부터 참조 데이터를 검출할 수 있다.
일 실시예에 따른 제어부(120)는 검출된 참조 데이터에 포함된 참조 제수, 참조 피제수와 입력 데이터에 포함된 입력 제수 및 입력 피제수를 각각 비교할 수 있다. 제어부(120)는 검출된 참조 데이터와 입력 데이터 간의 차이가 기 설정된 값 미만인 경우에는, 참조 데이터의 나눗셈 연산 결과를 입력 데이터에 대한 나눗셈 연산 결과로 결정할 수 있다. 예를 들어, 참조 제수와 입력 제수의 차이 및 입력 제수 및 입력 피제수와의 차이가 모두 기 설정된 값 미만인 경우, 제어부(120)는 참조 데이터의 나눗셈 연산 결과를 출력부(150)와 연결된 회로(145)를 통해 전송(pass-through)할 수 있다.
한편, 검출된 참조 데이터와 입력 데이터 간의 차이가 기 설정된 값 이상인 경우, 제어부(120)는 검출된 참조 데이터와 입력 데이터 간의 차이에 기초하여, 입력 데이터에 대한 나눗셈 연산을 처리할 수 있는 복수의 연산기(140) 중 어느 하나를 선택한다.
여기에서, 복수의 연산기(140)는 처리 가능한 데이터 비트(bit)의 수 및 연산의 종류 중 적어도 하나에 따라 식별될 수 있다. 예를 들어, 복수의 연산기(140)은 적어도 하나의 뺄셈 연산기, 복수의 나눗셈 연산기를 포함할 수 있다. 또한, 복수의 나눗셈 연산기는 처리 가능한 데이터 비트의 수에 따라 분류될 수 있다. 여기에서, 처리 가능한 데이터 비트의 수는 최대 산출할 수 있는 나눗셈 연산 결과의 몫의 데이터 비트 수일 수 있다. 예를 들어, 복수의 나눗셈 연산기는 최대 산출할 수 있는 나눗셈 연산 결과의 몫의 데이터 비트 수가 서로 다른 제 1 나눗셈 연산기 및 제 2 나눗셈 연산기를 포함할 수 있다. 제 1 나눗셈 연산기와 제 2 나눗셈 연산기에 대해서는 도 2A 및 도 2B를 참조하여 보다 구체적으로 후술하도록 한다.
한편, 일 실시예에 따른 제어부(120)는 입력 피제수와 참조 피제수의 차이에 기초하여 복수의 연산기 중 어느 하나를 선택할 수 있다. 예를 들어, 제어부(120)는 참조 피제수에서 참조 데이터에 포함된 나머지를 뺀 제 1 값을 산출하고, 산출된 제 1 값과 입력 피제수 간의 차이값인 제 2 값을 입력 제수와 비교한 결과에 기초하여 복수의 연산기 중 어느 하나를 선택할 수 있다. 제어부(120)는 제 2 값이 입력 제수 이하인 경우, 뺄셈 연산기를 선택하고, 제 2 값이 입력 제수를 초과하는 경우, 제 1 나눗셈 연산기 및 제 2 나눗셈 연산기 중 어느 하나를 선택할 수 있다.
한편, 제어부(120)는 산출된 제 2 값이 제 1 나눗셈 연산기에서 최대 산출할 수 있는 몫의 데이터 비트 수(이하, 임계값) 미만인 지 여부 및 입력 제수가 임계값 미만인 지 여부 중 적어도 하나에 기초하여, 제 1 나눗셈 연산기 및 제 2 나눗셈 연산기 중 어느 하나를 선택할 수 있다. 한편, 제 1 나눗셈 연산기가 제 2 나눗셈 연산기에 비해 처리 가능한 데이터 비트 수가 낮은 것으로 가정한다.
제어부(120)는 입력 제수와 참조 제수가 동일한 지 여부를 판단하여, 복수의 연산기 중 어느 하나를 선택하기 위한 조건을 결정할 수 있다.
예를 들어, 제어부(120)는 입력 제수와 참조 제수가 동일한 경우에는, 우선 산출된 제 2 값과 입력 제수를 비교할 수 있다. 제어부(120)는 제 2 값이 입력 제수 이하인 경우, 뺄셈 연산기를 선택할 수 있다. 한편, 제어부(120)는 제 2 값이 입력 제수를 초과하고, 제 2 값이 임계값 미만인 경우에는 제 1 나눗셈 연산기를 선택할 수 있다. 제어부(120)는 제 2 값이 입력 제수를 초과하고, 제 2 값이 임계값 이상인 경우에는, 입력 제수와 임계값을 비교하여, 제 1 나눗셈 연산기 및 제 2 나눗셈 연산기 중 어느 하나를 선택할 수 있다. 구체적으로, 제어부(120)는 제 2 값이 입력 제수를 초과하고, 제 2 값이 임계값 이상이며, 입력 제수가 임계값을 초과하는 경우에는 제 1 나눗셈 연산기를 선택할 수 있다. 또한, 제어부(120)는 제 2 값이 입력 제수를 초과하고, 제 2 값이 임계값 이상이며, 입력 제수가 임계값 이하인 경우에는 제 2 나눗셈 연산기를 선택할 수 있다.
다른 예에 따라, 제어부(120)는 입력 제수와 참조 제수가 상이한 경우에는, 입력 제수와 임계값을 비교하여 복수의 연산기 중 어느 하나를 선택할 수 있다. 제어부(120)는 입력 제수가 임계값을 초과하는 경우에는, 제 1 나눗셈 연산기를 선택하고, 입력 제수가 임계값 이하인 경우에는, 제 2 나눗셈 연산기를 선택할 수 있다.
캐쉬 메모리(130)는 입력 데이터에 대한 나눗셈 연산 이전에 수행된 적어도 하나의 나눗셈 연산에 관한 데이터가 기 저장된다. 또한, 캐쉬 메모리(130)에서 결정된 인덱스가 나타내는 위치 상에 입력 데이터에 대한 나눗셈 연산 결과가 저장될 수 있다.
복수의 연산기(140)는 입력 데이터에 대한 나눗셈 연산을 수행할 수 있는 n개의 연산기를 포함한다. 예를 들어, 복수의 연산기(140)은 적어도 하나의 뺄셈 연산기, 적어도 하나의 제 1 나눗셈 연산기 및 적어도 하나의 제 2 나눗셈 연산기를 포함할 수 있다.
출력부(150)는 선택된 연산기로부터 입력 데이터의 나눗셈 연산 결과를 획득한다. 일 실시예에 따른 출력부(150)는 복수의 입력 데이터 각각에 대해 병렬적으로 수행된 나눗셈 연산의 결과를 획득할 수 있도록 복수의 슬롯들로 구성될 수 있다. 출력부(150)를 구성하는 복수의 슬록들 각각에 복수의 입력 데이터 각각에 대한 나눗셈 연산의 결과가 할당될 수 있다.
다만, 이는 일 실시예일 뿐, 출력부(150)는 복수의 슬롯들로 구성되지 않을 수도 있다.
도 2A 및 도 2B는 일 실시예에 따라 입력 데이터에 나눗셈 연산을 수행하는 경우, 나눗셈 연산기를 선택하는 기준을 설명하기 위한 도면이다.
도 2A를 참고하면, 나눗셈 연산 처리 장치(100)가 249 및 13 각각을 이진수로 변환하여 나눗셈 연산을 수행하는 과정을 확인할 수 있다. 한편, 여기에서, 제 1 나눗셈 연산기는 나눗셈 연산 결과인 몫을 최대 4비트까지 산출할 수 있다고 가정한다. 이에 따라, 임계값은 4로 결정될 수 있다.
249 및 13 각각을 이진수로 변환하여, 나눗셈 연산이 수행 되면 몫은 8비트를 가지므로, 제 1 나눗셈 연산기로는 나눗셈 연산을 수행할 수 없다. 이러한 경우, 나눗셈 연산 처리 장치(100)는 나눗셈 연산 결과인 몫을 최대 8비트까지 산출할 수 있는 제 2 나눗셈 연산기를 선택할 수 있다. 다만, 이는 일 실시예일 뿐, 제 2 나눗셈 연산기가 산출할 수 있는 몫의 최대 비트수가 8비트에 한정되는 것은 아니다. 여기에서, 제 2 나눗셈 연산기는 복수의 제 1 나눗셈 연산기로 구성될 수도 있다.
도 2B를 참고하면, 나눗셈 연산 처리 장치(100)가 15 및 13 각각을 이진수로 변환하여 나눗셈 연산을 수행하는 과정을 확인할 수 있다. 15 및 13 각각을 이진수로 변환하여, 나눗셈 연산이 수행 되면 몫은 4 비트를 가지므로, 제 1 나눗셈 연산기를 이용하여 나눗셈 연산이 수행될 수 있다.
한편 나눗셈 연산 처리 장치(100)에서 제 2 나눗셈 연산기를 이용하여 입력 데이터에 대한 나눗셈 연산 처리를 수행하는 경우, 제 1 나눗셈 연산기를 이용하여 입력 데이터에 대한 나눗셈 연산 처리를 수행하는 것에 비해 더 많은 자원이 소모될 수 있다.
일 실시예에 따른 나눗셈 연산 처리 장치(100)는 입력 데이터와 참조 데이터의 차이에 기초하여, 입력 데이터에 대한 나눗셈 연산을 수행할 수 있는 연산기를 선택함으로써, 연산에 필요한 자원을 효울적으로 이용할 수 있다.
도 3은 일 실시예에 따라 나눗셈 연산을 처리하는 방법을 설명하기 위한 흐름도이다.
단계 S310에서, 나눗셈 연산 처리 장치(100)는 입력 데이터를 획득한다.
일 실시예에 따른 나눗셈 연산 처리 장치(100)는 나눗셈 연산 처리 장치(100)와 연결된 외부의 장치로부터 나눗셈 연산을 수행하고자 하는 입력 데이터를 획득할 수 있다.
단계 S320에서, 나눗셈 연산 처리 장치(100)는 적어도 하나의 나눗셈 연산에 관한 데이터가 기 저장된 캐쉬 메모리로부터, 획득된 입력 데이터와 대응되는 나눗셈 연산에 관한 데이터인 참조 데이터를 검출한다.
일 실시예에 따른 나눗셈 연산 처리 장치(100)는 입력 피제수, 입력 제수 및 캐쉬 메모리의 크기 중 적어도 하나에 기초하여, 참조 데이터를 검출하기 위한 캐쉬 메모리 상의 위치를 나타내는 인덱스를 결정할 수 있다. 또한, 나눗셈 연산 처리 장치(100)는 결정된 인덱스를 이용하여, 캐쉬 메모리로부터 참조 데이터를 검출할 수 있다.
단계 S330에서, 나눗셈 연산 처리 장치(100)는 처리 가능한 데이터 비트의 수 및 연산의 종류 중 적어도 하나에 따라 식별되는 복수의 연산기 중 어느 하나의 연산기를 검출된 참조 데이터와 입력 데이터 간의 차이에 기초하여 선택한다.
일 실시예에 따른 나눗셈 연산 처리 장치(100)가 참조 데이터와 입력 데이터 간의 차이에 기초하여 연산기를 선택하는 구체적인 방법에 대해서는 도 4를 참고하여 보다 구체적으로 후술하도록 한다.
단계 S340에서, 나눗셈 연산 처리 장치(100)는 선택된 연산기로부터 입력 데이터의 나눗셈 연산 결과를 획득한다.
일 실시예에 따른 나눗셈 연산 처리 장치(100)는 획득된 나눗셈 연산 결과를 입력 데이터를 기초로 결정된 인덱스가 나타내는 캐쉬 메모리 상의 위치에 저장할 수 있다.
도 4는 일 실시예에 따라 나눗셈 연산을 처리하는 방법을 보다 구체적으로 설명하기 위한 흐름도이다.
단계 S410에서, 나눗셈 연산 처리 장치(100)는 입력 데이터를 획득할 수 있다. 한편, 단계 S410은 도 3을 참고하여 전술한 단계 S310과 대응될 수 있다.
단계 S420에서, 나눗셈 연산 처리 장치(100)는 적어도 하나의 나눗셈 연산에 관한 데이터가 기 저장된 캐쉬 메모리로부터 획득된 입력 데이터와 대응되는 나눗셈 연산에 관한 데이터인 참조 데이터를 검출할 수 있다.
한편, 단계 S420은 도 3을 참고하여 전술한 단계 S320과 대응될 수 있다.
단계 S430에서, 나눗셈 연산 처리 장치(100)는 입력 데이터의 제수와 참조 데이터의 제수가 동일한지 여부를 판단할 수 있다.
단계 S440에서, 나눗셈 연산 처리 장치(100)는 입력 데이터의 피제수와 참조 데이터의 피제수 간의 차이가 임계값 이하인지 여부를 판단할 수 있다.
일 실시예에 따른 나눗셈 연산 처리 장치(100)는 입력 데이터의 제수와 참조 데이터의 제수가 동일한 경우, 입력 데이터의 피제수와 참조 데이터의 피제수 간의 차이가 임계값 이하인지 여부를 판단할 수 있다.
단계 S450에서, 나눗셈 연산 처리 장치(100)는 입력 데이터의 피제수와 참조 데이터의 피제수 간의 차이가 입력 제수 이하인지 여부를 판단할 수 있다.
일 실시예에 따른 나눗셈 연산 처리 장치(100)는 입력 데이터의 피제수와 참조 데이터의 피제수 간의 차이가 임계값 이하인 경우, 입력 데이터의 피제수와 참조 데이터의 피제수 간의 차이가 입력 제수 이하인지 여부를 판단할 수 있다.
단계 S460에서, 나눗셈 연산 처리 장치(100)는 제 1 모드에 따라 입력 데이터에 대한 나눗셈 연산을 수행할 수 있다.
일 실시예에 따른 나눗셈 연산 처리 장치(100)는 입력 데이터의 피제수와 참조 데이터의 피제수 간의 차이가 입력 제수 이하인 경우, 제 1 모드에 따라 입력 데이터에 대한 나눗셈 연산을 수행할 수 있다. 나눗셈 연산 처리 장치(100)는 제 1 모드에서, 나눗셈 연산기를 이용하지 않고, 뺄셈 연산기 또는 덧셈 연산기를 이용하여, 참조 데이터로부터 입력 데이터의 나눗셈 연산 결과를 획득할 수 있다. 이에 대해서는 도 5를 참고하여 보다 구체적으로 후술하도록 한다.
단계 S470에서, 나눗셈 연산 처리 장치(100)는 제 2 모드에 따라 입력 데이터에 대한 나눗셈 연산을 수행할 수 있다.
일 실시예에 따른 나눗셈 연산 처리 장치(100)는 입력 데이터의 피제수와 참조 데이터의 피제수 간의 차이가 입력 제수를 초과하는 경우, 제 2 모드에 따라 입력 데이터에 대한 나눗셈 연산을 수행할 수 있다. 나눗셈 연산 처리 장치(100)는 제 2 모드에서, 검출된 참조 데이터를 기초로 나눗셈 연산을 수행하여, 입력 데이터의 나눗셈 연산 결과를 획득할 수 있다. 이에 대해서는 도 6a 및 도 6b를 참고하여 보다 구체적으로 후술하도록 한다.
단계 S480에서, 나눗셈 연산 처리 장치(100)는 제 3 모드에 따라 입력 데이터에 대한 나눗셈 연산을 수행할 수 있다.
일 실시예에 따른 나눗셈 연산 처리 장치(100)는 입력 데이터의 제수가 참조 데이터의 제수가 서로 다른 경우 제 3 모드에 따라 입력 데이터에 대한 나눗셈 연산을 수행할 수 있다. 다른 실시예에 따라, 나눗셈 연산 처리 장치(100)는 입력 데이터의 피제수와 참조 데이터의 피제수 간의 차이가 임계값 이하인 경우에도 제 3 모드에 따라 입력 데이터에 대한 나눗셈 연산을 수행할 수 있다. 나눗셈 연산 처리 장치(100)는 제 3 모드에서, 참조 데이터를 이용하지 않고, 입력 데이터에 대한 나눗셈 연산을 직접 수행할 수 있다. 이에 대해서는 도 7을 참고하여 보다 구체적으로 후술하도록 한다.
도 5는 일 실시예에 따른 나눗셈 연산 처리 장치에서 제 1 모드에 따라 나눗셈 연산을 수행하는 방법을 설명하기 위한 도면이다.
도 5에 도시된 나눗셈 연산 처리 장치(500)에는 본 실시예와 관련된 구성요소들만이 도시되어 있다. 따라서, 도 5에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 본 실시예와 관련된 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
도 5를 참고하면, 나눗셈 연산 처리 장치(500)는 입력부(510), 제어부(520), 캐쉬 메모리(530), 연산부(540) 및 출력부(550)를 포함할 수 있다. 또한, 연산부(540)에는 나눗셈 연산기(541), 멀티플렉서(543), 덧셈 연산기(545), 뺄셈 연산기(547) 및 디멀티플렉서(549)가 포함될 수 있다.
일 실시예에 따른 입력부(510)는 입력 데이터를 획득할 수 있다. 예를 들어, 입력부(510)는 피제수가 490이고 제수가 33인 입력 데이터를 획득할 수 있다. 제어부(520)는 제수인 33을 캐쉬 메모리(530)의 크기인 32로 나머지 연산을 수행하여, 획득된 입력 데이터에 대한 인덱스를 1로 결정할 수 있다. 이에 따라, 제어부(520)는 캐쉬 메모리(530) 내에서, 인덱스 1에 대응되는 참조 데이터를 검출할 수 있다. 여기에서, 검출된 참조 데이터의 피제수는 495이고 제수는 33인 것으로 가정한다.
연산부(540)는 입력 데이터의 제수와 참조 데이터의 제수가 동일함에 따라, 입력 데이터의 피제수인 490과 참조 데이터의 피제수인 495 간의 차이(이하, 차이값)가 임계값인 0xffff 이하인지 여부를 판단할 수 있다. 연산부(540)는 차이값이 임계값인 0xffff 이하로 결정됨에 따라, 차이값과 입력 데이터의 제수를 비교할 수 있다. 제어부(520)는 연산부(540)에서 산출된 차이값인 5가 입력 데이터의 제수인 33 미만이므로 복수의 모드들 중 제 1 모드를 선택할 수 있다.
연산부(540)는 제어부(520)에서 제 1 모드가 선택됨에 따라, 참조 피제수와 입력 피제수를 비교할 수 있다. 연산부(540)는 비교 결과, 참조 피제수가 상기 입력 피제수를 초과하는 경우, 참조 데이터에 포함된 몫에서 1을 뺀 값을 입력 데이터의 몫으로 결정할 수 있다. 다른 예에 따라, 연산부(540)는 참조 피제수가 입력 피제수 이하인 경우, 참조 데이터의 몫을 입력 데이터의 몫으로 결정할 수 있다. 예를 들어, 연산부(540)는 입력 데이터의 피제수인 490이 참조 데이터의 피제수인 495 보다 작으므로, 뺄셈 연산기(547)를 통해 참조 데이터의 몫인 15에서 1을 빼는 뺄셈 연산을 수행할 수 있다. 연산 결과는 디멀티플렉서(549)를 통해, 출력부(550)에 전달될 수 있다.
출력부(550)는 연산부(540)의 연산 결과를 수신하여 출력할 수 있다. 한편, 여기에서, 연산부(540)는 연산 결과가 캐쉬 메모리(530)에 업데이트 될 수 있도록 연산 결과를 캐쉬 메모리(530)에 전송할 수도 있다.
전술한 방법에 따라, 일 실시예에 따른 나눗셈 연산 처리 장치(500)는 제 1 모드인 경우, 나눗셈 연산기(541)를 이용하지 않고도, 입력 데이터에 대한 나눗셈 연산을 수행할 수 있다.
도 6a 및 도 6b는 일 실시예에 따른 나눗셈 연산 처리 장치에서 제 2 모드에 따라 나눗셈 연산을 수행하는 방법을 설명하기 위한 도면이다.
여기에서, 도 6a 및 도 6b에 도시된 나눗셈 연산 처리 장치(500)는 도 5를 참고하여 전술한 나눗셈 연산 처리 장치(500)와 대응될 수 있다.
한편, 도 6a를 참고하면, 일 실시예에 따른 입력부(510)는 피제수가 545이고, 제수가 33인 데이터를 획득할 수 있다. 제어부(520)는 제수인 33을 캐쉬 메모리(530)의 크기인 32로 나머지 연산을 수행하여, 획득된 입력 데이터에 대한 인덱스를 1로 결정할 수 있다. 이에 따라, 제어부(520)는 캐쉬 메모리(530) 내에서, 인덱스 1에 대응되는 참조 데이터를 검출할 수 있다. 여기에서, 검출된 참조 데이터의 피제수는 495이고 제수는 33인 것으로 가정한다.
연산부(540)는 입력 데이터의 제수와 참조 데이터의 제수가 동일함에 따라, 입력 데이터의 피제수인 545와 참조 데이터의 피제수인 495 간의 차이(이하, 차이값)가 임계값인 0xffff 이하인지 여부를 판단할 수 있다. 제어부(520)는 차이값이 임계값인 0xffff 이하로 결정됨에 따라, 차이값과 입력 데이터의 제수를 비교할 수 있다. 제어부(520)는 연산부(540)에서 산출된 차이값인 50이 입력 데이터의 제수인 33을 초과하므로 복수의 모드들 중 제 2 모드를 선택할 수 있다.
연산부(540)는 제어부(520)에서 제 2 모드가 선택됨에 따라, 입력 피제수와 상기 피참조 제수 간의 차이를 상기 입력 제수로 나눈 몫과 나머지를 산출할 수 있다. 연산부(540)는 산출된 몫이 0 이상이거나 산출된 나머지가 0인 경우, 참조 데이터의 몫과 산출된 몫의 합으로 입력 데이터의 몫을 결정할 수 있다. 다른 예에 따라, 연산부(540)는 산출된 몫이 0 미만이고, 산출된 나머지가 0이 아닌 경우, 참조 데이터의 몫에 산출된 몫의 합을 더한 값에서 1을 뺀 값으로, 입력 데이터의 몫을 결정할 수 있다.
예를 들어, 연산부(540)에 포함된 나눗셈 연산기(541)는 차이값인 50을 제수인 33으로 나누어, 몫 1과 나머지 17을 산출할 수 있다. 또한, 연산부(540)에 포함된 덧셈 연산기(545)는 산출된 몫 1을 참조 데이터의 몫 15에 더하여, 입력 데이터의 몫을 16으로 결정할 수 있다. 연산 결과는 디멀티플렉서(549)를 통해, 출력부(550)에 전달될 수 있다.
출력부(550)는 연산부(540)의 연산 결과를 수신하여 출력할 수 있다. 한편, 여기에서, 연산부(540)는 연산 결과가 캐쉬 메모리(530)에 업데이트 될 수 있도록 연산 결과를 캐쉬 메모리(530)에 전송할 수도 있다.
한편, 도 6b를 참고하면, 일 실시예에 따른 입력부(510)는 피제수가 320이고, 제수가 33인 데이터를 획득할 수 있다. 제어부(520)는 제수인 33을 캐쉬 메모리(530)의 크기인 32로 나머지 연산을 수행하여, 획득된 입력 데이터에 대한 인덱스를 1로 결정할 수 있다. 이에 따라, 제어부(520)는 캐쉬 메모리(530) 내에서, 인덱스 1에 대응되는 참조 데이터를 검출할 수 있다. 여기에서, 검출된 참조 데이터의 피제수는 495이고 제수는 33인 것으로 가정한다.
연산부(540)는 입력 데이터의 제수와 참조 데이터의 제수가 동일함에 따라, 입력 데이터의 피제수인 320과 참조 데이터의 피제수인 495 간의 차이(이하, 차이값)가 임계값인 0xffff 이하인지 여부를 판단할 수 있다. 연산부(540)는 차이값이 임계값인 0xffff 이하로 결정됨에 따라, 차이값과 입력 데이터의 제수를 비교할 수 있다. 제어부(520)는 차이값인 175가 입력 데이터의 제수인 33을 초과하므로 복수의 모드들 중 제 2 모드를 선택할 수 있다.
연산부(540)는 제어부(520)에서 제 2 모드가 선택됨에 따라, 참조 데이터를 기초로 나눗셈 연산을 수행하여, 입력 데이터의 몫을 결정할 수 있다. 예를 들어, 연산부(540)에 포함된 나눗셈 연산기(541)는 차이값인 -175를 제수인 33으로 나누어, 몫 -5와 나머지 -10을 산출할 수 있다. 연산부(540)에 포함된 덧셈 연산기(545)는 산출된 몫인 -5에 참조 데이터의 몫인 15를 더할 수 있다. 한편, 차이값을 제수로 나눈 값이 0 보다 작고, 나머지 값이 0이 아닌 경우, 연산부(540)에 포함된 뺄셈 연산기(547)는 덧셈 연산기(545)의 덧셈 연산 결과에서 1을 빼는 뺄셈 연산을 수행할 수 있다. 이에 따라, 연산부(540)는 입력 데이터의 나눗셈 연산 결과 산출된 몫을 9로 결정할 수 있다. 연산 결과는 디멀티플렉서(549)를 통해, 출력부(550)에 전달될 수 있다.
출력부(550)는 연산부(540)의 연산 결과를 수신하여 출력할 수 있다. 한편, 여기에서, 연산부(540)는 연산 결과가 캐쉬 메모리(530)에 업데이트 될 수 있도록 연산 결과를 캐쉬 메모리(530)에 전송할 수도 있다.
도 7은 일 실시예에 따른 나눗셈 연산 처리 장치(500)에서 제 3 모드에 따라 나눗셈 연산을 수행하는 방법을 설명하기 위한 도면이다.
여기에서, 도 7에 도시된 나눗셈 연산 처리 장치(500)는 도 5를 참고하여 전술한 나눗셈 연산 처리 장치(500)와 대응될 수 있다.
일 실시예에 따른 입력부(510)는 입력 데이터를 획득할 수 있다. 예를 들어, 입력부(510)는 피제수가 131072이고 제수가 33인 입력 데이터를 획득할 수 있다. 제어부(520)는 제수인 33을 캐쉬 메모리(530)의 크기인 32로 나머지 연산을 수행하여, 획득된 입력 데이터에 대한 인덱스를 1로 결정할 수 있다. 이에 따라, 제어부(520)는 캐쉬 메모리(530) 내에서, 인덱스 1에 대응되는 참조 데이터를 검출할 수 있다. 여기에서, 검출된 참조 데이터의 피제수는 495이고 제수는 33인 것으로 가정한다.
제어부(520)는 입력 데이터의 제수와 참조 데이터의 제수가 동일함에 따라, 입력 데이터의 피제수인 490과 참조 데이터의 피제수인 495 간의 차이(이하, 차이값)가 임계값인 0xffff 이하인지 여부를 판단할 수 있다. 제어부(520)는 차이값이 임계값인 0xffff를 초과함에 따라 제 3 모드를 선택할 수 있다.
연산부(540)는 제어부(520)에서 제 3 모드가 선택됨에 따라, 나눗셈 연산기(541)를 이용하여, 입력 데이터에 대한 나눗셈 연산을 수행할 수 있다. 나눗셈 연산기(541)에서 입력 데이터에 대한 나눗셈 연산을 수행한 결과 입력 데이터에 대한 몫은 3971로 결정될 수 있다. 연산 결과는 디멀티플렉서(549)를 통해, 출력부(550)에 전달될 수 있다.
출력부(550)는 연산부(540)의 연산 결과를 수신하여 출력할 수 있다. 한편, 여기에서, 연산부(540)는 연산 결과가 캐쉬 메모리(530)에 업데이트 될 수 있도록 연산 결과를 캐쉬 메모리(530)에 전송할 수도 있다.
도 8은 다른 실시예에 따른 나눗셈 연산 처리 장치(800)를 보다 상세하게 설명하기 위한 블록도이다.
도 8에 도시된 나눗셈 연산 처리 장치(800)에는 본 실시예와 관련된 구성요소들만이 도시되어 있다. 따라서, 도 8에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 본 실시예와 관련된 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
도 8을 참고하면, 나눗셈 연산 처리 장치(800)는 입력부(810), 제어부(820), 캐쉬 메모리(830), 복수의 연산기(840) 및 출력부(850)를 포함할 수 있다.
일 실시예에 따른 입력부(810)는 나눗셈 연산을 수행하고자 하는 입력 데이터를 획득할 수 있다. 입력부(810)는 복수의 입력 데이터에 대한 나눗셈 연산을 병렬적으로 수행하기 위해, 복수의 슬롯들로 구성될 수 있다.
일 실시예에 따른 제어부(820)는 획득된 입력 데이터와 대응되는 나눗셈 연산에 관한 데이터인 참조 데이터를 캐쉬 메모리(830)로부터 검출할 수 있다. 제어부(820)는 입력 데이터와 참조 데이터 간의 차이가 기 설정된 값 미만인 경우, 출력부(850)와 연결된 회로(825)를 통해, 참조 데이터의 나눗셈 연산 결과를 입력 데이터에 대한 나눗셈 연산 결과로서 결정할 수 있다. 한편, 제어부(820)는 입력 데이터와 참조 데이터 간의 차이가 기 설정된 값 이상이 경우, 검출된 참조 데이터와 입력 데이터 간의 차이에 기초하여 복수의 연산기(840) 중 어느 하나를 선택할 수 있다.
일 실시예에 따른 캐쉬 메모리(830)는 나눗셈 연산 처리 장치(800)에서 수행된 적어도 하나의 나눗셈 연산 결과에 관한 데이터를 저장할 수 있다. 예를 들어, 캐쉬 메모리(830)에는 입력 데이터에 대한 나눗셈 연산이 수행되기 이전에 수행된 다른 나눗셈 연산의 결과에 관한 데이터가 저장될 수 있다.
일 실시예에 따른 복수의 연산기(840)는 뺄셈 연산기(842) 및 복수의 제 1 나눗셈 연산기(845, 846)를 포함할 수 있다. 한편, 여기에서, 복수의 제 1 나눗셈 연산기(845, 846)는 서로 연결되어 제 2 나눗셈 연산기(844)로 동작할 수 있다. 예를 들어, 제어부(820)에서 제 1 나눗셈 연산기를 선택한 경우, 제 1a 나눗셈 연산기(845) 및 제 1b 나눗셈 연산기(846) 중 어느 하나가 선택될 수 있다. 한편, 제어부(320)에서 제 2 나눗셈 연산기를 선택한 경우에는 제 1a 나눗셈 연산기(845) 및 제 1b 나눗셈 연산기(846)가 종속적으로 연결되어, 제 2 나눗셈 연산기(844)로 동작할 수 있다.
일 실시예에 따른 출력부(850)는 선택된 연산기로부터 입력 데이터의 나눗셈 연산 결과를 획득한다. 일 실시예에 따른 출력부(850)는 복수의 입력 데이터 각각에 대해 병렬적으로 수행된 나눗셈 연산의 결과를 획득할 수 있도록 복수의 슬롯들로 구성될 수 있다.
도 9는 또 다른 실시예에 따른 나눗셈 연산 처리 장치(900)를 보다 상세하게 설명하기 위한 블록도이다.
도 9에 도시된 나눗셈 연산 처리 장치(900)에는 본 실시예와 관련된 구성요소들만이 도시되어 있다. 따라서, 도 9에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 본 실시예와 관련된 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
도 9를 참고하면, 나눗셈 연산 처리 장치(900)는 입력부(910), 제어부(920), 캐쉬 메모리(930), 복수의 연산기(940) 및 출력부(950)를 포함할 수 있다.
일 실시예에 따른 입력부(910), 제어부(920), 캐쉬 메모리(930) 및 출력부(950)는 도 8을 참고하여 설명한 입력부(810), 제어부(820), 캐쉬 메모리(830) 및 출력부(850)와 대응될 수 있다.
일 실시예에 따른 제어부(920)는 입력 데이터와 참조 데이터 간의 차이가 기 설정된 값 미만인 경우, 출력부(950)와 연결된 회로(925)를 통해, 참조 데이터의 나눗셈 연산 결과를 입력 데이터에 대한 나눗셈 연산 결과로서 결정할 수 있다. 한편, 제어부(920)는 입력 데이터와 참조 데이터 간의 차이가 기 설정된 값 이상이 경우, 복수의 연산기(940) 중 어느 하나를 이용하여, 입력 데이터에 대한 나눗셈 연산 결과를 산출할 수 있다.
한편, 일 실시예에 따른 복수의 연산기(940)는 제 2 나눗셈 연산기(942), 복수의 제 1 나눗셈 연산기(944) 및 뺄셈 연산기(946)를 포함할 수 있다.
도 4의 나눗셈 연산 처리 장치(900)에서는 복수의 연산기(940)에 포함된 나눗셈 연산기(942, 944) 및 뺄셈 연산기(946)가 각각 서로 병렬적으로 연결될 수 있다.
다만, 복수의 연산기(940)를 구성하는 일 예일 뿐, 복수의 연산기(940)의 구조가 이에 한정되는 것은 아니다.
도 10은 3일 실시예에 따른 나눗셈 연산 처리 장치(100)가 입력 데이터에 대응되는 참조 데이터를 검출하기 위해 인덱스를 결정하는 방법을 설명하기 위한 흐름도이다.
단계 S1010에서, 나눗셈 연산 처리 장치(100)는 입력 데이터를 획득할 수 있다.
한편, 단계 S1010은 도 3을 참고하여 전술한 단계 S510과 대응될 수 있다.
단계 S1020에서, 나눗셈 연산 처리 장치(100)는 획득한 입력 데이터에 포함된 입력 제수, 입력 피제수 및 캐쉬 메모리의 크기 중 적어도 하나에 기초하여 캐쉬 메모리 상의 위치를 나타내는 인덱스를 결정할 수 있다.
예를 들어, 제어부(120)는 입력 제수와 캐쉬 메모리(130)의 크기 간의 나머지 연산 결과값을 인덱스로 결정할 수 있다. 다른 예에 따라, 제어부(120)는 입력 제수와 캐쉬 메모리(130)의 크기 간의 나눗셈 연산 결과 및 입력 제수와 캐쉬 메모리(130)의 크기 간의 나머지 연산 결과를 합산하여 인덱스 정보를 결정할 수도 있다. 또 다른 예에 따라, 제어부(120)는 입력 제수와 캐쉬 메모리(130)의 크기 간의 나머지 연산 결과 및 입력 피제수를 구성하는 일부 데이터 비트를 합산하여, 인덱스 정보를 결정할 수도 있다.
단계 S1030에서, 나눗셈 연산 처리 장치(100)는 적어도 하나의 나눗셈 연산에 관한 데이터가 기 저장된 캐쉬 메모리로부터, 획득된 입력 데이터와 대응되는 나눗셈 연산에 관한 데이터인 참조 데이터를 검출할 수 있다.
한편, 단계 S1030은 도 3을 참고하여 전술한 단계 S320과 대응될 수 있다.
단계 S1040에서, 나눗셈 연산 처리 장치(100)는 복수의 연산기 중 어느 하나의 연산기를 검출된 참조 데이터와 입력 데이터 간의 차이에 기초하여 선택할 수 있다.
한편, 단계 S1040은 도 3을 참고하여 전술한 단계 S330과 대응될 수 있다.
단계 S1050에서, 나눗셈 연산 처리 장치(100)는 선택된 연산기로부터 입력 데이터의 나눗셈 연산 결과를 획득할 수 있다.
한편, 단계 S1050은 도 3을 참고하여 전술한 단계 S340과 대응될 수 있다.
단계 S1060에서, 나눗셈 연산 처리 장치(100)는 결정된 인덱스가 나타내는 캐쉬 메모리 상의 위치에 나눗셈 연산 결과를 저장할 수 있다.
도 11은 일 실시예에 따라, 시간에 따라 변경되는 입력 제수의 차이가 캐쉬 메모리의 크기의 배수인 경우에 인덱스를 결정하는 방법을 설명하기 위한 도면이다.
도 11을 참고하면, 시간이 지남에 따라 입력 제수가 각각 32, 64, 32로 변경되는 것을 확인할 수 있다. 또한, 변화되는 입력 제수간의 차이인 32는 캐쉬 메모리의 크기인 32 의 배수에 해당할 수 있다.
한편, 일 실시예에 따른 나눗셈 연산 처리 장치(100)는 획득한 입력 데이터에 포함된 입력 제수, 입력 피제수 및 캐쉬 메모리의 크기 중 적어도 하나에 기초하여 캐쉬 메모리 상의 위치를 나타내는 인덱스를 결정할 수 있다. 예를 들어, 나눗셈 연산 처리 장치(100)는 입력 제수와 캐쉬 메모리의 크기에 대한 나누기 연산의 결과 값을 인덱스로 결정할 수 있다.
다만, 도 11에 도시된 바와 같이 시간에 따라 변경되는 입력 제수의 차이가 캐쉬 메모리의 크기의 배수인 경우, 인덱스를 입력 제수와 캐쉬 메모리의 크기에 대한 나누기 연산의 결과 값으로 결정하게 되면, 입력 제수가 32인 경우와 64인 경우의 인덱스 값이 동일하게 결정될 수 있다. 예를 들어, 64가 입력 제수인 경우, 나눗셈 연산 처리 장치(100)는 입력 제수를 기초로 결정된 인덱스를 이용하여 참조 제수인 32를 검출하게 될 수 있다. 이러한 경우, 64와 32의 차이는 서로 값의 차이가 비교적 큰 편에 해당하여, 64에 대한 나눗셈 연산을 수행함에 있어, 참조 데이터의 나눗셈 연산 결과를 활용하기 어려울 수 있다.
따라서, 일 실시예에 따른 나눗셈 연산 처리 장치(100)는 시간에 따라 변경되는 입력 제수의 차이가 캐쉬 메모리의 크기의 배수인 경우, 입력 제수와 캐쉬 메모리에 대한 나머지 연산 결과와 나눗셈 연산 결과를 합산하여 인덱스를 결정할 수 있다. 예를 들어, 입력 제수가 32이고, 캐쉬 메모리의 크기가 32인 경우의 인덱스는 0과 1을 합산한 1일 수 있다. 다른 예에 따라, 입력 제수가 64이고, 캐쉬 메모리의 크기가 32인 경우의 인덱스는 0과 2를 합산한 2일 수 있다.
나눗셈 연산 처리 장치(100)는 차이가 비교적 큰 서로 다른 입력 제수에 대한 나눗셈 연산의 결과가 캐쉬 메모리 상의 동일한 위치에 저장되는 것을 방지하기 위해 인덱스를 서로 다르게 설정함으로써, 나눗셈 연산의 처리를 보다 효율적으로 수행할 수 있다.
도 12는 일 실시예에 따라, 입력 제수가 고정되고 입력 피제수가 시간에 따라 변경되는 경우, 인덱스를 결정하는 방법을 설명하기 위한 도면이다.
도 12를 참고하면, 입력 제수는 0X5로 고정되고, 시간이 지남에 따라 입력 피제수가 각각 0X10020, 0X10, 0X10020으로 변경되는 것을 확인할 수 있다.
한편, 일 실시예에 따른 나눗셈 연산 처리 장치(100)는 획득한 입력 데이터에 포함된 입력 제수, 입력 피제수 및 캐쉬 메모리의 크기 중 적어도 하나에 기초하여 캐쉬 메모리 상의 위치를 나타내는 인덱스를 결정할 수 있다. 예를 들어, 나눗셈 연산 처리 장치(100)는 입력 제수와 캐쉬 메모리의 크기에 대한 나누기 연산의 결과 값을 인덱스로 결정할 수 있다.
다만, 도 12에 도시된 바와 같이 입력 제수가 고정되고, 입력 피제수가 변하는 경우, 인덱스를 입력 제수와 캐쉬 메모리의 크기에 대한 나누기 연산의 결과 값으로 결정하게 되면, 서로 상이한 입력 피제수에 대한 인덱스 값이 동일하게 결정될 수 있다.
따라서, 일 실시예에 따른 나눗셈 연산 처리 장치(100)는 입력 제수와 캐쉬 메모리의 크기에 대한 나누기 연산의 결과를 기초로 결정된 인덱스의 로우(low) 비트 위치에 입력 피제수를 구성하는 비트들 중 일부를 추가하여, 인덱스를 결정할 수 있다.
나눗셈 연산 처리 장치(100)는 차이가 서로 다른 입력 피제수에 대한 나눗셈 연산 결과가 캐쉬 메모리 상의 동일한 위치에 저장되는 것을 방지하기 위해 인덱스를 서로 다르게 설정함으로써, 나눗셈 연산의 처리를 보다 효율적으로 수행할 수 있다.
본 발명에 따른 장치는 프로세서, 프로그램 데이터를 저장하고 실행하는 메모리, 디스크 드라이브와 같은 영구 저장부(permanent storage), 외부 장치와 통신하는 통신 포트, 터치 패널, 키(key), 버튼 등과 같은 사용자 인터페이스 장치 등을 포함할 수 있다.  소프트웨어 모듈 또는 알고리즘으로 구현되는 방법들은 상기 프로세서상에서 실행 가능한 컴퓨터가 읽을 수 있는 코드들 또는 프로그램 명령들로서 컴퓨터가 읽을 수 있는 기록 매체 상에 저장될 수 있다.  여기서 컴퓨터가 읽을 수 있는 기록 매체로 마그네틱 저장 매체(예컨대, ROM(read-only memory), RAM(random-access memory), 플로피 디스크, 하드 디스크 등) 및 광학적 판독 매체(예컨대, 시디롬(CD-ROM), 디브이디(DVD: Digital Versatile Disc)) 등이 있다.  컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템들에 분산되어, 분산 방식으로 컴퓨터가 판독 가능한 코드가 저장되고 실행될 수 있다.  매체는 컴퓨터에 의해 판독가능하며, 메모리에 저장되고, 프로세서에서 실행될 수 있다.
본 발명에서 인용하는 공개 문헌, 특허 출원, 특허 등을 포함하는 모든 문헌들은 각 인용 문헌이 개별적으로 및 구체적으로 병합하여 나타내는 것 또는 본 발명에서 전체적으로 병합하여 나타낸 것과 동일하게 본 발명에 병합될 수 있다.
본 발명의 이해를 위하여, 도면에 도시된 바람직한 실시 예들에서 참조 부호를 기재하였으며, 본 발명의 실시 예들을 설명하기 위하여 특정 용어들을 사용하였으나, 특정 용어에 의해 본 발명이 한정되는 것은 아니며, 본 발명은 당업자에 있어서 통상적으로 생각할 수 있는 모든 구성 요소들을 포함할 수 있다.
본 발명은 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다.  이러한 기능 블록들은 특정 기능들을 실행하는 다양한 개수의 하드웨어 또는/및 소프트웨어 구성들로 구현될 수 있다.  예를 들어, 본 발명은 하나 이상의 마이크로프로세서들의 제어 또는 다른 제어 장치들에 의해서 다양한 기능들을 실행할 수 있는, 메모리, 프로세싱, 로직(logic), 룩업 테이블(look-up table) 등과 같은 직접 회로 구성들을 채용할 수 있다.  본 발명에의 구성 요소들이 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있는 것과 유사하게, 본 발명은 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다.  기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다.  또한, 본 발명은 전자적인 환경 설정, 신호 처리, 및/또는 데이터 처리 등을 위하여 종래 기술을 채용할 수 있다.  “매커니즘”, “요소”, “수단”, “구성”과 같은 용어는 넓게 사용될 수 있으며, 기계적이고 물리적인 구성들로서 한정되는 것은 아니다.  상기 용어는 프로세서 등과 연계하여 소프트웨어의 일련의 처리들(routines)의 의미를 포함할 수 있다.
본 발명에서 설명하는 특정 실행들은 일 실시 예들로서, 어떠한 방법으로도 본 발명의 범위를 한정하는 것은 아니다.  명세서의 간결함을 위하여, 종래 전자적인 구성들, 제어 시스템들, 소프트웨어, 상기 시스템들의 다른 기능적인 측면들의 기재는 생략될 수 있다.  또한, 도면에 도시된 구성 요소들 간의 선들의 연결 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것으로서, 실제 장치에서는 대체 가능하거나 추가의 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들로서 나타내어질 수 있다.  또한, “필수적인”, “중요하게” 등과 같이 구체적인 언급이 없다면 본 발명의 적용을 위하여 반드시 필요한 구성 요소가 아닐 수 있다.

Claims (15)

  1. 입력 데이터를 획득하는 단계;
    적어도 하나의 나눗셈 연산에 관한 데이터가 기 저장된 캐쉬 메모리로부터, 상기 획득된 입력 데이터와 대응되는 나눗셈 연산에 관한 데이터인 참조 데이터를 검출하는 단계;
    처리 가능한 데이터 비트(bit)의 수 및 연산의 종류 중 적어도 하나에 따라 식별되는 복수의 연산기 중 어느 하나의 연산기를 상기 검출된 참조 데이터와 상기 입력 데이터 간의 차이에 기초하여 선택하는 단계; 및
    상기 선택된 연산기로부터 상기 입력 데이터의 나눗셈 연산 결과를 획득하는 단계를 포함하고,
    상기 획득하는 단계는,
    상기 참조 데이터에 포함된 참조 제수와 상기 입력 데이터에 포함된 입력 제수가 동일한 경우, 상기 입력 데이터에 포함된 입력 피제수와 상기 참조 데이터에 포함된 참조 피제수의 차이값을 산출하는 단계;
    상기 산출된 차이값이 기 설정된 임계값 및 상기 입력 제수 이하인 경우, 상기 참조 피제수와 상기 입력 피제수를 비교하는 단계; 및
    상기 비교 결과, 상기 참조 피제수가 상기 입력 피제수를 초과하는 경우, 상기 참조 데이터에 포함된 몫에서 1을 뺀 값을 상기 입력 데이터의 몫으로 결정하고, 상기 참조 피제수가 상기 입력 피제수 이하인 경우, 상기 참조 데이터의 몫을 상기 입력 데이터의 몫으로 결정하는 단계를 포함하는 나눗셈 연산을 처리하는 방법.
  2. 삭제
  3. 삭제
  4. 제 1 항에 있어서, 상기 획득하는 단계는,
    상기 산출된 차이값이 상기 기 설정된 임계값 미만이면서 상기 입력 제수를 초과하는 경우, 상기 입력 피제수와 상기 참조 피제수 간의 차이를 상기 입력 제수로 나눈 몫과 나머지를 산출하는 단계; 및
    상기 산출된 몫이 0 이상이거나 상기 산출된 나머지가 0인 경우, 상기 참조 데이터의 몫에 상기 산출된 몫의 합으로 상기 입력 데이터의 몫을 결정하고, 상기 산출된 몫이 0 미만이고, 상기 산출된 나머지가 0이 아닌 경우, 상기 참조 데이터의 몫에 상기 산출된 몫의 합을 더한 값에서 1을 뺀 값으로, 상기 입력 데이터의 몫을 결정하는 단계를 포함하는 방법.
  5. 제 1 항에 있어서, 상기 획득하는 단계는,
    상기 참조 제수와 상기 입력 제수가 상이하거나, 상기 입력 데이터에 포함된 입력 피제수와 상기 참조 데이터에 포함된 참조 피제수 간의 차이값이 기 설정된 임계값을 초과하는 경우, 상기 입력 데이터에 포함된 입력 피제수와 입력 제수에 대해 나눗셈 연산을 수행하는 단계를 포함하는 방법.
  6. 제 1항에 있어서, 상기 복수의 연산기는,
    상기 처리 가능한 나눗셈 연산의 몫의 데이터 비트 수가 서로 다른 제 1 나눗셈 연산기 및 제 2 나눗셈 연산기를 포함하고,
    상기 선택하는 단계는,
    상기 입력 데이터에 포함된 입력 제수와 상기 참조 데이터에 포함된 참조 제수가 상이한 경우, 상기 제 1 나눗셈 연산기에서 처리 가능한 나눗셈 연산의 몫의 데이터 비트수와 상기 입력 제수를 비교하여 상기 제 1 나눗셈 연산기 및 상기 제 2 나눗셈 연산기 중 어느 하나를 선택하는 나눗셈 연산을 처리하는 방법.
  7. ◈청구항 7은(는) 설정등록료 납부시 포기되었습니다.◈
    제 1항에 있어서,
    상기 획득한 입력 데이터에 포함된 상기 입력 제수, 상기 입력 피제수 및 상기 캐쉬 메모리의 크기 중 적어도 하나에 기초하여 상기 캐쉬 메모리 상의 위치를 나타내는 인덱스를 결정하는 단계를 더 포함하고,
    상기 검출하는 단계는,
    상기 결정된 인덱스를 이용하여, 상기 캐쉬 메모리로부터 상기 참조 데이터를 검출하는 나눗셈 연산을 처리하는 방법.
  8. 적어도 하나의 나눗셈 연산에 관한 데이터가 기 저장된 캐쉬 메모리;
    입력 데이터를 획득하는 입력부;
    처리 가능한 데이터 비트의 수 및 연산의 종류 중 적어도 하나에 따라 식별되는 복수의 연산기를 포함한 연산부;
    상기 캐쉬 메모리로부터, 상기 획득된 입력 데이터와 대응되는 나눗셈 연산에 관한 데이터인 참조 데이터를 검출하고, 상기 검출된 참조 데이터와 상기 입력 데이터 간의 차이에 기초하여 상기 복수의 연산기 중 어느 하나를 선택하는 제어부; 및
    상기 선택된 연산기로부터 상기 입력 데이터의 나눗셈 연산 결과를 획득하는 출력부를 포함하고,
    상기 연산부는,
    상기 참조 데이터에 포함된 참조 제수와 상기 입력 데이터에 포함된 입력 제수가 동일한 경우, 상기 입력 데이터에 포함된 입력 피제수와 상기 참조 데이터에 포함된 참조 피제수의 차이값을 산출하고, 상기 산출된 차이값이 기 설정된 임계값 및 상기 입력 제수 이하인 경우, 상기 참조 피제수와 상기 입력 피제수를 비교하며, 상기 비교 결과, 상기 참조 피제수가 상기 입력 피제수를 초과하는 경우, 상기 참조 데이터에 포함된 몫에서 1을 뺀 값을 상기 입력 데이터의 몫으로 결정하고, 상기 참조 피제수가 상기 입력 피제수 이하인 경우, 상기 참조 데이터의 몫을 상기 입력 데이터의 몫으로 결정하는, 나눗셈 연산을 처리하는 장치.
  9. 삭제
  10. 삭제
  11. 제 8 항에 있어서, 상기 연산부는,
    상기 산출된 차이값이 상기 기 설정된 임계값 미만이면서 상기 입력 제수를 초과하는 경우, 상기 입력 피제수와 상기 참조 피제수 간의 차이를 상기 입력 제수로 나눈 몫과 나머지를 산출하며, 상기 산출된 몫이 0 이상이거나 상기 산출된 나머지가 0인 경우, 상기 참조 데이터의 몫에 상기 산출된 몫의 합으로 상기 입력 데이터의 몫을 결정하고, 상기 산출된 몫이 0 미만이고, 상기 산출된 나머지가 0이 아닌 경우, 상기 참조 데이터의 몫에 상기 산출된 몫의 합을 더한 값에서 1을 뺀 값으로, 상기 입력 데이터의 몫을 결정하는 나눗셈 연산을 처리하는 장치.
  12. 제 8 항에 있어서, 상기 연산부는,
    상기 참조 제수와 상기 입력 제수가 상이하거나, 상기 입력 데이터에 포함된 입력 피제수와 상기 참조 데이터에 포함된 참조 피제수 간의 차이값이 기 설정된 임계값을 초과하는 경우, 상기 입력 데이터에 포함된 입력 피제수와 입력 제수에 대해 나눗셈 연산을 수행하는 나눗셈 연산을 처리하는 장치.
  13. 제 8항에 있어서, 상기 복수의 연산기는,
    처리 가능한 나눗셈 연산의 몫의 데이터 비트 수가 서로 다른 제 1 나눗셈 연산기 및 제 2 나눗셈 연산기를 포함하고,
    상기 제어부는,
    상기 입력 데이터에 포함된 입력 제수와 상기 참조 데이터에 포함된 참조 제수가 상이한 경우, 상기 제 1 나눗셈 연산기에서 처리 가능한 나눗셈 연산의 몫의 데이터 비트 수인 임계값과 상기 입력 제수를 비교하여 상기 제 1 나눗셈 연산기 및 상기 제 2 나눗셈 연산기 중 어느 하나를 선택하는 나눗셈 연산을 처리하는 장치.
  14. 제 8항에 있어서, 상기 제어부는,
    상기 획득한 입력 데이터에 포함된 상기 입력 제수, 상기 입력 피제수 및 상기 캐쉬 메모리의 크기 중 적어도 하나에 기초하여 상기 캐쉬 메모리 상의 위치를 나타내는 인덱스를 결정하고, 상기 결정된 인덱스를 이용하여, 상기 캐쉬 메모리로부터 상기 참조 데이터를 검출하는 나눗셈 연산을 처리하는 장치.
  15. 제 1항의 방법을 수행하는 프로그램이 기록된 컴퓨터 판독이 가능한 기록매체.
KR1020187019708A 2016-01-20 2016-01-20 나눗셈 연산을 처리하는 방법, 장치 및 기록매체 KR102528467B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/KR2016/000598 WO2017126715A1 (ko) 2016-01-20 2016-01-20 나눗셈 연산을 처리하는 방법, 장치 및 기록매체

Publications (2)

Publication Number Publication Date
KR20180103885A KR20180103885A (ko) 2018-09-19
KR102528467B1 true KR102528467B1 (ko) 2023-05-04

Family

ID=59362473

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187019708A KR102528467B1 (ko) 2016-01-20 2016-01-20 나눗셈 연산을 처리하는 방법, 장치 및 기록매체

Country Status (4)

Country Link
US (1) US10776077B2 (ko)
EP (1) EP3376369B1 (ko)
KR (1) KR102528467B1 (ko)
WO (1) WO2017126715A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107943391A (zh) * 2017-11-15 2018-04-20 宁波麦博韦尔移动电话有限公司 一种长按快速计算方法及系统
KR102612588B1 (ko) * 2023-05-15 2023-12-12 메티스엑스 주식회사 프로그램가능 반도체 소자, 이를 포함하는 전자 장치, 및 프로그램가능 반도체 소자에 의해 연산을 수행하는 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5828591A (en) 1992-11-02 1998-10-27 Intel Corporation Method and apparatus for using a cache memory to store and retrieve intermediate and final results
US20060294177A1 (en) 2005-06-27 2006-12-28 Simon Rubanovich Method, system and apparatus of performing division operations

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5272660A (en) 1992-06-01 1993-12-21 Motorola, Inc. Method and apparatus for performing integer and floating point division using a single SRT divider in a data processor
US6510493B1 (en) 1999-07-15 2003-01-21 International Business Machines Corporation Method and apparatus for managing cache line replacement within a computer system
US6832294B2 (en) * 2002-04-22 2004-12-14 Sun Microsystems, Inc. Interleaved n-way set-associative external cache
KR100433131B1 (ko) 2002-07-31 2004-05-28 학교법인연세대학교 작은 사이즈의 룩업 테이블을 갖는 파이프라인 나눗셈연산기 및 연산방법
US20040249877A1 (en) 2003-06-05 2004-12-09 International Business Machines Corporation Fast integer division with minimum number of iterations in substraction-based hardware divide processor
JP4594666B2 (ja) * 2004-07-12 2010-12-08 富士通株式会社 再構成可能な演算装置
US20060129624A1 (en) * 2004-12-09 2006-06-15 Abdallah Mohammad A Method and apparatus for performing a divide instruction
US8700862B2 (en) 2008-12-03 2014-04-15 Nvidia Corporation Compression status bit cache and backing store
KR20100069240A (ko) * 2008-12-16 2010-06-24 삼성전자주식회사 캐시 컨트롤을 위한 장치 및 방법
US8271729B2 (en) 2009-09-18 2012-09-18 International Business Machines Corporation Read and write aware cache storing cache lines in a read-often portion and a write-often portion
KR101770122B1 (ko) 2010-12-30 2017-08-23 삼성전자주식회사 Simd 프로세서를 이용하는 갈로아 필드 이진 다항식 제산 장치 및 방법
US20130318138A1 (en) * 2011-09-30 2013-11-28 Huan Pan Apparatus and method for performing decimal division
US20160313976A1 (en) * 2015-04-21 2016-10-27 Qualcomm Incorporated High performance division and root computation unit

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5828591A (en) 1992-11-02 1998-10-27 Intel Corporation Method and apparatus for using a cache memory to store and retrieve intermediate and final results
US20060294177A1 (en) 2005-06-27 2006-12-28 Simon Rubanovich Method, system and apparatus of performing division operations

Also Published As

Publication number Publication date
WO2017126715A1 (ko) 2017-07-27
EP3376369A1 (en) 2018-09-19
US10776077B2 (en) 2020-09-15
KR20180103885A (ko) 2018-09-19
EP3376369B1 (en) 2020-03-04
US20190018652A1 (en) 2019-01-17
EP3376369A4 (en) 2018-12-05

Similar Documents

Publication Publication Date Title
JP6415236B2 (ja) 浮動小数点加算ユニットを含む装置及びシステム、並びに浮動小数点加算方法
US7949696B2 (en) Floating-point number arithmetic circuit for handling immediate values
KR102318494B1 (ko) 곱셈 가산기
KR102253096B1 (ko) 부동 소수점 수를 정수로 변환하기 위한 전자 장치 및 시스템, 및 그것의 작동 방법
JPWO2007096982A1 (ja) 演算処理装置および演算処理方法
JP2015170359A (ja) 浮動小数点オペランドを乗算するためのデータ処理装置及び方法
KR102528467B1 (ko) 나눗셈 연산을 처리하는 방법, 장치 및 기록매체
CN108694037B (zh) 用于在执行浮点减法时估计移位量的装置和方法
US10019232B2 (en) Apparatus and method for inhibiting roundoff error in a floating point argument reduction operation
CN106997284B (zh) 实现浮点运算操作的方法和装置
TW200532552A (en) Methods and apparatus for performing mathematical operations using scaled integers
KR101699685B1 (ko) 명령어 오퍼랜드 변경 장치 및 방법
KR102459011B1 (ko) 선두 제로 예측
KR102165268B1 (ko) 표현 가능한 수의 범위를 조절하는 방법 및 장치
US10956159B2 (en) Method and processor for implementing an instruction including encoding a stopbit in the instruction to indicate whether the instruction is executable in parallel with a current instruction, and recording medium therefor
JP6173571B2 (ja) 回路設計装置および回路設計プログラム
GB2537419A (en) Accumulation of floating-point values
US7386580B2 (en) Data processing apparatus and method for computing an absolute difference between first and second data elements
JP4159565B2 (ja) ベクトル積和演算回路
US8805904B2 (en) Method and apparatus for calculating the number of leading zero bits of a binary operation
KR102315278B1 (ko) 데이터를 연산하는 방법 및 장치.
JPWO2016088271A1 (ja) プログラム依存部可視化装置、方法、およびプログラム
KR20140096588A (ko) 복수 데이터 형식을 지원하는 가산기 및 그 가산기를 이용한 복수 데이터 형식의 가감 연산 지원 방법
US10120650B2 (en) Method and apparatus for calculating data
WO2015186170A1 (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