맞춤기술찾기

이전대상기술

인메모리 연산을 이용한 부동소수점 연산 장치 및 그 방법

  • 기술번호 : KST2023003300
  • 담당센터 : 대전기술혁신센터
  • 전화번호 : 042-610-2279
요약, Int. CL, CPC, 출원번호/일자, 출원인, 등록번호/일자, 공개번호/일자, 공고번호/일자, 국제출원번호/일자, 국제공개번호/일자, 우선권정보, 법적상태, 심사진행상태, 심판사항, 구분, 원출원번호/일자, 관련 출원번호, 기술이전 희망, 심사청구여부/일자, 심사청구항수의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 서지정보 표입니다.
요약 본 발명의 부동소수점 연산장치는 부동소수점으로 표현된 다수의 입력뉴런데이터들을 곱셈-누적 연산하는 부동소수점 연산 장치에 있어서, 상기 입력뉴런데이터들로부터 지수와 가수를 각각 분리 도출하는 데이터전처리부; 상기 입력뉴런데이터들로부터 분리 도출된 지수(이하, ‘입력뉴런지수’이라 칭함)들을 인메모리 연산하는 지수처리유닛; 및 상기 입력뉴런데이터들로부터 분리 도출된 가수(이하, ‘입력뉴런가수’이라 칭함)들을 고속으로 연산하는 가수처리유닛을 포함하되, 상기 지수처리유닛은 가수연산을 위한 가수 이동량을 결정하여 상기 가수처리유닛으로 전달하고, 상기 가수처리유닛은 상기 가수연산 결과를 정규화한 후, 그 결과로 생성된 정규화값을 상기 지수처리유닛으로 전달하는 것을 특징으로 한다. 따라서, 본 발명은 가수연산의 인메모리 연산으로 인해 발생하는 처리 지연을 해소함으로써 부동소수점 연산을 신속하게 할 수 있고, 메모리 전력 소비를 줄임으로써 심층신경망 가속기의 에너지 효율을 높이는 효과가 있다.
Int. CL G06N 3/063 (2023.01.01) G06F 7/544 (2017.01.01) G06F 7/483 (2006.01.01)
CPC G06N 3/063(2013.01) G06F 7/5443(2013.01) G06F 7/483(2013.01)
출원번호/일자 1020210183937 (2021.12.21)
출원인 한국과학기술원
등록번호/일자
공개번호/일자 10-2023-0094627 (2023.06.28) 문서열기
공고번호/일자
국제출원번호/일자
국제공개번호/일자
우선권정보
법적상태 공개
심사진행상태 수리
심판사항
구분 국내출원/신규
원출원번호/일자
관련 출원번호
심사청구여부/일자 Y (2021.12.21)
심사청구항수 23

출원인

번호, 이름, 국적, 주소의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 인명정보 - 출원인 표입니다.
번호 이름 국적 주소
1 한국과학기술원 대한민국 대전광역시 유성구

발명자

번호, 이름, 국적, 주소의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 인명정보 - 발명자 표입니다.
번호 이름 국적 주소
1 유회준 대전광역시 유성구
2 이주형 대전광역시 유성구

대리인

번호, 이름, 국적, 주소의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 인명정보 - 대리인 표입니다.
번호 이름 국적 주소
1 특허법인 두성 대한민국 서울특별시 강남구 논현로**길 **, *층(역삼동, 삼화빌딩)

최종권리자

번호, 이름, 국적, 주소의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 인명정보 - 최종권리자 표입니다.
번호 이름 국적 주소
최종권리자 정보가 없습니다
번호, 서류명, 접수/발송일자, 처리상태, 접수/발송일자의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 행정처리 표입니다.
번호 서류명 접수/발송일자 처리상태 접수/발송번호
1 [특허출원]특허출원서
[Patent Application] Patent Application
2021.12.21 수리 (Accepted) 1-1-2021-1480815-60
2 선행기술조사의뢰서
Request for Prior Art Search
2022.12.15 수리 (Accepted) 9-1-9999-9999999-89
3 특허고객번호 정보변경(경정)신고서·정정신고서
2023.01.31 수리 (Accepted) 4-1-2023-5023571-05
4 특허고객번호 정보변경(경정)신고서·정정신고서
2023.05.04 수리 (Accepted) 4-1-2023-5110236-33
번호, 청구항의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 청구항 표입니다.
번호 청구항
1 1
부동소수점으로 표현된 다수의 입력뉴런데이터들을 곱셈-누적 연산하는 부동소수점 연산 장치에 있어서,상기 입력뉴런데이터들로부터 지수와 가수를 각각 분리 도출하는 데이터전처리부;상기 입력뉴런데이터들로부터 분리 도출된 지수(이하, ‘입력뉴런지수’이라 칭함)들을 인메모리 연산하는 지수처리유닛; 및상기 입력뉴런데이터들로부터 분리 도출된 가수(이하, ‘입력뉴런가수’이라 칭함)들을 고속으로 연산하는 가수처리유닛을 포함하되, 상기 지수처리유닛은가수연산을 위한 가수 이동량을 결정하여 상기 가수처리유닛으로 전달하고,상기 가수처리유닛은상기 가수연산 결과를 정규화한 후, 그 결과로 생성된 정규화값을 상기 지수처리유닛으로 전달하는 것을 특징으로 하는 부동소수점 연산장치
2 2
제1항에 있어서, 상기 데이터전처리부는곱셈-누적 연산을 위해 순차적으로 입력되는 2이상의 입력뉴런데이터들을 그 순서에 따라 2개씩 짝지어 적어도 하나의 입력뉴런데이터 쌍을 생성하고,미리 설정된 연산주기마다 상기 입력뉴런데이터 쌍을 이루는 임의의 제1 및 제2 입력뉴런데이터들 각각으로부터 지수와 가수를 분리도출하여, 상기 분리 도출된 지수(이하, ‘제1 및 제2 입력뉴런지수’라 칭함)는 상기 지수처리유닛으로 전달하고, 상기 분리 도출된 가수(이하, ‘제1 및 제2 입력뉴런가수’라 칭함)는 상기 가수처리유닛으로 전달하는 것을 특징으로 하는 부동소수점 연산장치
3 3
제2항에 있어서, 상기 지수처리유닛은상기 연산주기마다 전달되는 상기 제1 및 제2 입력뉴런지수 쌍을 순차적으로 저장하는 입력뉴런지수메모리;상기 제1 및 제2 입력뉴런지수 쌍을 순차적으로 인메모리 연산하되, 비트단위로 인메모리 연산하여 출력하는 지수연산메모리; 및상기 지수연산메모리로부터 전달되는 인메모리 연산결과들로부터 상기 제1 및 제2 입력뉴런지수 쌍의 합을 순차적으로 산출하고, 상기 제1 및 제2 입력뉴런지수 쌍의 합을 순차 비교하여 그 차이값으로 상기 가수 이동량을 결정하고, 지수 최대값을 갱신 저장하는 지수주변연산회로를 포함하는 것을 특징으로 하는 부동소수점 연산장치
4 4
제3항에 있어서, 상기 지수처리유닛은적어도 하나의 지수연산메모리들을 포함하고,상기 지수주변연산회로는상기 적어도 하나의 지수연산메모리들에 의해 공유되는 것을 특징으로 하는 부동소수점 연산장치
5 5
제4항에 있어서, 상기 지수연산메모리는심층신경망 학습과정에서 생성된 가중치의 지수(이하, ‘가중치지수’라 칭함)를 저장하고, 상기 입력뉴런지수와 상기 가중치지수를 인메모리 연산하는 가중치지수 연산메모리; 및심층신경망 학습과정에서 생성된 출력뉴런 데이터의 지수(이하, ‘출력뉴런지수’라 칭함)를 저장하고, 상기 입력뉴런지수와 상기 출력뉴런지수를 인메모리 연산하는 출력뉴런지수 연산메모리 중 적어도 하나인 것을 특징으로 하는 부동소수점 연산장치
6 6
제3항에 있어서, 상기 지수 연산메모리는 배열로 배치되어 지역 인메모리 연산을 수행하는 다수의 인메모리 연산 로컬어레이들;상기 다수의 인메모리 연산 로컬어레이들 각각에 데이터를 읽고 쓰기 위한 인터페이스를 제공하는 입출력 인터페이스;상기 다수의 인메모리 연산 로컬어레이의 지역 인메모리 연산결과를 상기 지수주변연산회로로 이동하기 위한 경로를 형성하는 전역비트라인 및 전역비트라인바; 및상기 인메모리 연산 로컬어레이로 전달될 워드라인 구동신호를 발생시키는 워드라인 드라이버를 포함하는 것을 특징으로 하는 부동소수점 연산장치
7 7
제6항에 있어서, 상기 인메모리 연산 로컬어레이는상기 제1 입력뉴런지수가 사전 충전되는 지역비트라인 및 지역비트라인바;상기 제1 입력뉴런지수의 비트값에 의거하여 상기 지역비트라인 및 지역비트라인바를 사전 충전하는 사전충전기;상기 제2 입력뉴런지수를 비트단위로 저장하고, 상기 제2 입력뉴런지수와 상기 지역비트라인 및 지역비트라인바에 사전 충전된 상기 제1 입력뉴런지수를 인메모리 연산하여 상기 지역비트라인 및 지역비트라인바의 비트값을 결정하는 다수의 메모리셀들;외부에서 입력되는 전역비트라인 가능신호에 응답하여, 상기 지역비트라인의 비트값을 상기 전역비트라인으로 드라이빙하는 제1 드라이버; 및상기 전역비트라인 가능신호에 응답하여, 상기 지역비트라인바의 비트값을 상기 전역비트라인바로 드라이빙하는 제2 드라이버를 포함하는 것을 특징으로 하는 부동소수점 연산장치
8 8
제7항에 있어서, 상기 메모리셀은상기 워드라인 구동신호에 응답하여 읽기모드 또는 쓰기모드 중 어느 하나로 동작하며, 쓰기모드 시 상기 입출력 인터페이스를 통해 전달되는 상기 제2 입력뉴런지수를 비트단위로 저장하고, 읽기모드시 상기 사전 충전된 제1 입력뉴런지수와 상기 비트단위로 저장된 제2 입력뉴런지수를 인메모리 연산하여 상기 지역비트라인 및 지역비트라인바의 비트값을 결정하되,상기 제1 입력뉴런지수와 상기 제2 입력뉴런지수를 비트단위로 AND 연산하여 지역비트라인 값을 결정하고, 상기 제1 입력뉴런지수와 상기 제2 입력뉴런지수를 비트단위로 NOR 연산하여 지역비트라인바 값을 결정하는 것을 특징으로 하는 부동소수점 연산장치
9 9
제8항에 있어서, 상기 지수 연산메모리는상기 인메모리 연산대상인 상기 제1 및 제2 입력뉴런지수를 분석하여, 상기 제1 입력뉴런지수가 충전될 비트라인 및 상기 제2 입력뉴런지수가 저장될 메모리셀을 선택하여 동작하도록 제어하는 해독기를 더 포함하고, 상기 해독기는 상기 전역비트라인 가능신호를 생성하는 것을 특징으로 하는 부동소수점 연산장치
10 10
제7항에 있어서, 상기 다수의 인메모리 연산 로컬어레이들 각각은상기 사전충전기의 사전충전과정; 상기 다수의 메모리셀들 각각의 인메모리 연산과정; 및상기 제1 및 제2 드라이버들 각각의 드라이빙 과정을 순차적으로 수행하고, 인접한 인메모리 연산 로컬어레이들 간에 상기 과정들을 중첩하여 병렬처리하되,임의의 n번째 인메모리 연산 로컬어레이의 사전충전과정, (n+1)번째 인메모리 연산 로컬어레이의 인메모리 연산과정, 및 (n+2)번째 인메모리 연산 로컬어레이의 드라이빙 과정을 중첩하여 병렬처리하는 것을 특징으로 하는 부동소수점 연산장치
11 11
제6항에 있어서, 상기 지수주변연산회로는병렬 연결된 다수의 지수연산기들을 포함하되,상기 지수연산기들 각각은상기 전역비트라인 및 전역비트라인바를 통해 전달되는 인메모리 연산결과들을 입력으로 하여 상기 제1 및 제2 입력뉴런지수 쌍의 합을 산출하는 지수덧셈기;상기 연산주기마다 상기 지수덧셈기로부터 입력되는 상기 제1 및 제2 입력뉴런지수 쌍의 합들을 순차 비교하여, 그 차이값으로 상기 가수 이동량을 결정하고, 지수 최대값을 갱신 저장하는 하는 지수비교기를 포함하는 것을 특징으로 하는 부동소수점 연산장치
12 12
제11항에 있어서, 상기 지수비교기는상기 지수덧셈기로부터 상기 제1 및 제2 입력뉴런지수 쌍의 합을 전달받아 부동소수점 곱셈에서의 예외처리를 수행하는 부동소수점 예외처리기;이전 연산 주기까지의 제1 및 제2 입력뉴런지수 쌍의 합들 중 최대값인 지수 최대값을 저장하는 제1 레지스터;상기 부동소수점 예외처리기에서 출력되는 제1 및 제2 입력뉴런지수 쌍의 합과, 상기 제1 레지스터에 저장된 최대값의 차를 구하는 뺄셈기; 및상기 뺄셈기의 연산결과에 의거하여, 상기 제1 레지스터에 저장된 지수 최대값을 갱신하고, 상기 가수 이동량을 결정하여 상기 가수처리유닛으로 전달하는 비교기를 포함하는 것을 특징으로 하는 부동소수점 연산장치
13 13
제12항에 있어서, 상기 제1 레지스터는상기 가수처리유닛으로부터 전달된 정규화값에 의거하여, 상기 지수 최대값을 갱신하여 최종 지수값을 결정하는 것을 특징으로 하는 부동소수점 연산장치
14 14
제2항에 있어서, 상기 가수처리유닛은상기 연산주기마다 전달되는 상기 제1 및 제2 입력뉴런가수 쌍을 순차적으로 저장하는 입력뉴런가수메모리; 및병렬 연결되어, 상기 제1 및 제2 입력뉴런가수 쌍을 순차적으로 연산하고, 최종 연산 결과를 정규화하며, 상기 정규화 결과로 생성된 정규화값을 상기 지수처리유닛으로 전달하여 상기 지수처리유닛이 최종 지수값을 결정하도록 하는 다수의 가수연산기들을 포함하는 것을 특징으로 하는 부동소수점 연산장치
15 15
제14항에 있어서, 상기 가수처리유닛은심층신경망 학습과정에서 생성된 가중치의 가수(이하, ‘가중치가수’라 칭함) 부분만을 분리하여 따로 저장하는 가중치가수메모리; 및심층신경망 학습과정에서 생성된 출력뉴런 데이터의 가수(이하, ‘출력뉴런가수’라 칭함) 부분만을 분리하여 따로 저장하는 출력뉴런가수메모리를 더 포함하고, 상기 가수연산기들 각각은상기 입력뉴런가수메모리, 상기 가중치가수메모리, 및 상기 출력뉴런가수메모리 중 적어도 하나로부터 전달된 가수들을 고속으로 연산하는 것을 특징으로 하는 부동소수점 연산장치
16 16
제14항에 있어서, 상기 가수연산기는상기 제1 및 제2 입력뉴런가수 쌍들에 대하여 곱셈연산을 수행한 후 그 결과값을 저장하는 곱셈기;상기 가수이동량에 의거하여 상기 곱셈결과에 대해 시프트연산을 수행하는 시프트연산기;상기 시프트연산된 적어도 하나의 곱셈결과들에 대하여 덧셈연산을 수행하는 가수덧셈기; 상기 덧셈연산 결과로 발생하는 가수오버플로를 카운트하는 카운터; 상기 덧셈연산 결과를 누적 저장하는 제2 레지스터; 및상기 가수연산결과를 정규화하는 정규화처리부를 포함하는 것을 특징으로 하는 부동소수점 연산장치
17 17
제16항에 있어서, 상기 가수연산기는상기 입력뉴런가수메모리에 저장된 상기 제1 및 제2 입력뉴런가수 쌍들 모두에 대하여 순차적으로 가수연산을 수행하되,상기 카운터 및 상기 제2 레지스터는 중간연산단계에서 발생하는 가수오버플로 및 상기 덧셈연산결과의 누적 저장값을 다음단계의 연산을 위해 상기 시프트연산기로 전달하고, 최종단계의 가수 연산시 발생하는 가수오버플로 및 상기 덧셈연산결과를 상기 정규화처리부로 전달하고,상기 정규화처리부는최종단계의 가수연산시 발생하는 가수오버플로 및 덧셈연산결과에 대하여만 정규화처리를 수행하는 것을 특징으로 하는 부동소수점 연산장치
18 18
부동소수점의 지수연산을 위한 지수처리유닛과, 상기 부동소수점의 가수연산을 위한 가수처리유닛을 포함하는 부동소수점 연산장치를 이용하여 부동소수점으로 표현된 다수의 입력뉴런데이터들을 곱셈-누적 연산하는 부동소수점 연산방법에 있어서,상기 입력뉴런데이터들로부터 지수와 가수를 각각 분리 도출하는 데이터전처리단계;상기 데이터전처리단계에서 분리 도출된 지수(이하, ‘입력뉴런지수’이라 칭함)들을 상기 지수처리유닛에서 인메모리 연산하는 지수연산단계; 및상기 데이터전처리단계에서 분리 도출된 가수(이하, ‘입력뉴런가수’이라 칭함)들을 상기 가수처리유닛에서 고속으로 연산하는 가수연산단계를 포함하되,상기 지수연산단계는가수연산을 위한 가수 이동량을 결정하여 상기 가수처리유닛으로 전달하고, 상기 가수연산단계는상기 가수연산 결과를 정규화한 후, 그 결과로 생성된 정규화값을 상기 지수처리유닛으로 전달하는 것을 특징으로 하는 부동소수점 연산방법
19 19
제18항에 있어서, 상기 데이터전처리단계는 곱셈-누적 연산을 위해 순차적으로 입력되는 2이상의 입력뉴런데이터들을 그 순서에 따라 2개씩 짝지어 적어도 하나의 입력뉴런데이터 쌍을 생성하는 데이터쌍 생성단계; 미리 설정된 연산주기마다 상기 입력뉴런데이터 쌍을 이루는 임의의 제1 및 제2 입력뉴런데이터들 각각으로부터 지수와 가수를 분리도출하는 지수/가수 분리 도출단계; 및 상기 분리 도출된 지수(이하, ‘제1 및 제2 입력뉴런지수’라 칭함)를 상기 지수처리유닛으로 전달하고, 상기 분리 도출된 가수(이하, ‘제1 및 제2 입력뉴런가수’라 칭함)는 상기 가수처리유닛으로 전달하는 데이터전달단계를 포함하는 것을 특징으로 하는 부동소수점 연산방법
20 20
제19항에 있어서, 상기 지수연산단계는상기 연산주기마다 전달되는 상기 제1 및 제2 입력뉴런지수 쌍을 순차적으로 연산하되, 비트단위로 인메모리 연산하여 상기 제1 및 제2 입력뉴런지수 쌍의 합을 산출하는 인메모리연산단계;상기 인메모리연산단계에서 순차적으로 산출되는 상기 제1 및 제2 입력뉴런지수 쌍의 합들을 순차 비교하여, 그 차이값으로 상기 가수 이동량을 결정하여 상기 가수처리유닛으로 전달하는 가수이동량 결정단계;상기 순차비교 결과 상기 제1 및 제2 입력뉴런지수 쌍의 합들 중 더 큰 값을 지수 최대값으로 결정하는 지수 최대값 결정단계; 상기 가수처리유닛으로부터 정규화값이 전달될 때까지 상기 인메모리 연산단계, 상기 가수이동량 결정단계, 및 상기 지수 최대값 결정단계를 반복수행하는 반복단계; 및상기 가수처리유닛으로부터 정규화값이 전달되면 상기 정규화값에 의거하여 상기 지수 최대값을 갱신하여 최종 지수값을 결정하는 최종 지수 결정단계를 포함하는 것을 특징으로 하는 부동소수점 연산방법
21 21
제20항에 있어서, 상기 가수연산단계는상기 연산주기마다 발생되는 상기 제1 및 제2 입력뉴런지수 쌍을 순차적으로 연산하되, 상기 제1 및 제2 입력뉴런가수 쌍의 곱을 산출하는 곱셈단계;상기 가수이동량에 의거하여, 상기 곱셈결과에 대해 시프트 연산을 수행하는 시프트단계;상기 시프트 연산된 적어도 하나의 곱셈결과들에 대하여 덧셈연산을 수행하는 덧셈단계; 및상기 덧셈연산 결과로 발생하는 가수오버플로를 카운트하는 카운트단계;상기 덧셈연산 결과를 누적 저장하는 누적단계; 및상기 가수연산결과를 정규화하는 정규화단계를 포함하고,상기 데이터전달단계에서 전달되는 상기 제1 및 제2 입력뉴런가수 쌍들 모두에 대하여 순차적으로 가수연산을 수행하는 것을 특징으로 하는 부동소수점 연산방법
22 22
제21항에 있어서, 상기 곱셈단계, 상기 시프트단계, 상기 덧셈단계, 상기 카운트단계, 및 상기 누적단계 각각은상기 데이터전달단계에서 전달되는 상기 제1 및 제2 입력뉴런가수 쌍들 모두에 대하여 순차적으로 가수연산을 수행할 때까지 반복 수행하되,상기 시프트단계는중간연산단계에서 발생하는 가수오버플로 및 상기 덧셈연산결과의 누적 저장값에 의거하여, 및 상기 곱셈결과에 대한 사전정규화를 수행하는 것을 특징으로 하는 부동소수점 연산방법
23 23
제22항에 있어서, 상기 정규화단계는상기 데이터전달단계에서 전달되는 상기 제1 및 제2 입력뉴런가수 쌍들 모두에 대한 가수연산 중 최종단계의 가수연산시 수행되어, 정규화 결과로 생성된 정규화값을 상기 지수처리유닛으로 전달하는 것을 특징으로 하는 부동소수점 연산방법
지정국 정보가 없습니다
순번, 패밀리번호, 국가코드, 국가명, 종류의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 패밀리정보 - 패밀리정보 표입니다.
순번 패밀리번호 국가코드 국가명 종류
1 US20230195420 US 미국 FAMILY

DOCDB 패밀리 정보

순번, 패밀리번호, 국가코드, 국가명, 종류의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 패밀리정보 - DOCDB 패밀리 정보 표입니다.
순번 패밀리번호 국가코드 국가명 종류
DOCDB 패밀리 정보가 없습니다
순번, 연구부처, 주관기관, 연구사업, 연구과제의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 국가R&D 연구정보 정보 표입니다.
순번 연구부처 주관기관 연구사업 연구과제
1 과학기술정보통신부 한국과학기술원 정보통신.방송 연구개발사업 (통합EZ)DRAM 기반 DNN 연산기 통합 PIM DRAM 칩 개발(2021)