맞춤기술찾기

이전대상기술

고수준 언어 코드를 HDL 코드로 변환하는 방법 및 시스템

  • 기술번호 : KST2015131944
  • 담당센터 : 서울동부기술혁신센터
  • 전화번호 : 02-2155-3662
요약, Int. CL, CPC, 출원번호/일자, 출원인, 등록번호/일자, 공개번호/일자, 공고번호/일자, 국제출원번호/일자, 국제공개번호/일자, 우선권정보, 법적상태, 심사진행상태, 심판사항, 구분, 원출원번호/일자, 관련 출원번호, 기술이전 희망, 심사청구여부/일자, 심사청구항수의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 서지정보 표입니다.
요약 본 발명은 C, C++, 포트란 및 자바와 같은 고수준 언어로 된 코드를 Verilog 또는 VHDL과 같은 HDL코드로 변환하는 방법 및 시스템에 관한 것으로서, 본 발명에 따른 시스템은 Programming Directive로 표시된 변환대상 고수준 언어 코드로부터 상기 Programming Directive를 읽은 후 상기 변환대상 고수준 언어 코드를 하드웨어 부분 코드와 소프트웨어 부분 코드로 파티션하는 HLL-to-HLL 소스 변환기, 상기 하드웨어 부분 코드와 소프트웨어 부분코드를 컴파일하는 메인 컴파일러, 상기 하드웨어 부분 코드를 HDL 코드로 변환하는 HLL-to-HDL 변환기, 컴파일된 상기 소프트웨어 부분 코드를 실행하는 메인코어 및 변환된 상기 HDL 코드를 실행하는 전용하드웨어를 포함하는 것을 특징으로 한다.
Int. CL G06F 17/21 (2006.01) G06F 17/22 (2006.01)
CPC
출원번호/일자 1020090109753 (2009.11.13)
출원인 고려대학교 산학협력단
등록번호/일자 10-1082797-0000 (2011.11.07)
공개번호/일자 10-2010-0057495 (2010.05.31) 문서열기
공고번호/일자 (20111114) 문서열기
국제출원번호/일자
국제공개번호/일자
우선권정보 대한민국  |   1020080116417   |   2008.11.21
법적상태 소멸
심사진행상태 수리
심판사항
구분 신규
원출원번호/일자
관련 출원번호 1020110065573;
심사청구여부/일자 Y (2009.11.16)
심사청구항수 20

출원인

번호, 이름, 국적, 주소의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 인명정보 - 출원인 표입니다.
번호 이름 국적 주소
1 고려대학교 산학협력단 대한민국 서울특별시 성북구

발명자

번호, 이름, 국적, 주소의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 인명정보 - 발명자 표입니다.
번호 이름 국적 주소
1 김선욱 대한민국 경기 남양주시
2 누옌띠홍장 베트남 서울 성북구

대리인

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

최종권리자

번호, 이름, 국적, 주소의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 인명정보 - 최종권리자 표입니다.
번호 이름 국적 주소
1 고려대학교 산학협력단 대한민국 서울특별시 성북구
번호, 서류명, 접수/발송일자, 처리상태, 접수/발송일자의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 행정처리 표입니다.
번호 서류명 접수/발송일자 처리상태 접수/발송번호
1 [특허출원]특허출원서
[Patent Application] Patent Application
2009.11.13 수리 (Accepted) 1-1-2009-0698782-14
2 [심사청구]심사청구(우선심사신청)서
[Request for Examination] Request for Examination (Request for Preferential Examination)
2009.11.16 수리 (Accepted) 1-1-2009-0702120-61
3 출원인정보변경(경정)신고서
Notification of change of applicant's information
2010.08.12 수리 (Accepted) 4-1-2010-5149278-93
4 의견제출통지서
Notification of reason for refusal
2011.05.02 발송처리완료 (Completion of Transmission) 9-5-2011-0235710-62
5 [명세서등 보정]보정서
[Amendment to Description, etc.] Amendment
2011.07.01 보정승인간주 (Regarded as an acceptance of amendment) 1-1-2011-0506536-56
6 [거절이유 등 통지에 따른 의견]의견(답변, 소명)서
[Opinion according to the Notification of Reasons for Refusal] Written Opinion(Written Reply, Written Substantiation)
2011.07.01 수리 (Accepted) 1-1-2011-0506537-02
7 [분할출원]특허출원서
[Divisional Application] Patent Application
2011.07.01 수리 (Accepted) 1-1-2011-0506445-00
8 등록결정서
Decision to grant
2011.10.27 발송처리완료 (Completion of Transmission) 9-5-2011-0626436-16
9 출원인정보변경(경정)신고서
Notification of change of applicant's information
2014.02.11 수리 (Accepted) 4-1-2014-5018243-16
10 출원인정보변경(경정)신고서
Notification of change of applicant's information
2014.04.22 수리 (Accepted) 4-1-2014-5049934-62
11 출원인정보변경(경정)신고서
Notification of change of applicant's information
2019.10.10 수리 (Accepted) 4-1-2019-5210941-09
번호, 청구항의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 청구항 표입니다.
번호 청구항
1 1
(1) 고수준 언어 코드의 변환 대상 부분(translation-targeted section)을 프로그래밍 디렉티브(programming directive)를 이용하여 표시하는 단계; (2) 표시된 상기 고수준 언어 코드의 변환 대상 부분을 하드웨어부분 코드 및 상기 고수준 언어 코드의 나머지 부분을 소프트웨어부분 코드로 분할(partition)하는 단계; (3) 상기 소프트웨어부분 코드 및 하드웨어부분 코드를 메인 컴파일러에 의해 컴파일하고, 상기 하드웨어부분 코드를 HLL-to-HDL(High-level language code to hardware description language) 변환기에 의해 HDL 코드로 변환되는 단계; 및 (4) 상기 소프트웨어 부분 코드는 메인코어에서 실행되며, 상기 HDL 코드는 전용하드웨어에서 실행되는 단계를 포함하는 고수준 언어 코드의 HDL 코드로의 변환 방법
2 2
제1항에 있어서, 상기 (2) 단계의 상기 하드웨어부분 코드는 상기 변환대상 고수준 언어 코드의 하나 이상의 서브루틴(subroutine)/함수(function)를 포함하며, 상기 소프트웨어부분 코드는 상기 하드웨어부분 코드로의 서브루틴/함수 콜(call) 스테이트먼트(statement) 또는 콜 명령을 포함하는 것을 특징으로 하는 고수준 언어 코드의 HDL 코드로의 변환 방법
3 3
제1항에 있어서, 상기 (3) 단계는: 상기 소프트웨어부분 코드 및 하드웨어부분 코드를 메인 컴파일러에 의해 실행가능한 코드로 컴파일하는 단계; 상기 메인 컴파일러 링커(linker)에 의해 일정한 데이타 오프셋(constant data offset)을 포함하는 링킹(linking) 로그 파일을 생성하는 단계; 상기 메인 컴파일러에 의해 실행 가능한 소프트웨어 코드의 모든 소프트웨어 함수 및 변수의 주소를 포함하는 심벌 테이블(symbol table)을 생성하는 단계; 및 상기 HLL-to-HDL 변환기에 의해 상기 링킹 로그 파일 및 심벌 테이블을 참조하여 상기 하드웨어부분 코드의 HDL 코드를 생성하는 단계를 포함하는 것을 특징으로 하는 고수준 언어 코드의 HDL 코드로의 변환 방법
4 4
삭제
5 5
제1항에 있어서, 상기 (3) 단계의 상기 HLL-to-HDL 변환기에 의한 상기 하드웨어부분 코드의 HDL 코드로의 변환은: 상기 하드웨어 부분 코드를 상기 메인 컴파일러의 목표 어셈블리 코드 생성 바로 이전 단계의 저수준 IR(Intermediate Representation) 코드로 변환하는 단계; 및 상기 저수준 IR 코드를 HDL 코드로 변환하는 단계를 포함하며, 상기 변환은 상기 메인코어의 표준 콜 링키지 컨벤션(standard call linkage convention)을 유지하는 것을 특징으로 하는 고수준 언어 코드의 HDL 코드로의 변환 방법
6 6
삭제
7 7
제5항에 있어서, 상기 고수준 언어 코드의 서브루틴/함수의 HDL로의 변환 방법은 생성된 상기 HDL 코드가 하나 이상의 블락모듈을 데이타패스로서 포함하고, 탑 모듈을 제어 유닛으로 포함하는 basic-block-by-basic-block 생성 방법 또는 생성된 상기 HDL 코드가 상기 데이타패스 및 상기 제어유닛 모두를 포함하는 하나의 모듈을 포함하는 function-by-function 생성 방법 중 어느 하나인 것을 특징으로 하는 고수준 언어 코드의 HDL 코드로의 변환 방법
8 8
삭제
9 9
삭제
10 10
삭제
11 11
삭제
12 12
삭제
13 13
제2항에 있어서, 상기 (3) 단계의 상기 고수준 언어 코드로부터 생성된 상기 HDL 코드는 상기 컴파일된 소프트웨어 코드와 스택(stack)을 포함한 메모리 영역을 공유하고 상기 메인코어의 소프트웨어 스택 레이아웃을 따르며, 공유하는 상기 메모리 영역은 스필드 밸류(spilled value)의 저장, 레지스터 파일 및 리턴 어드레스의 저장, 상기 하드웨어부분 코드와 컴파일된 상기 소프트웨어부분 코드 사이의 함수 아규먼트(argument)의 전달에 사용되는 것을 특징으로 하는 고수준 언어 코드의 HDL 코드로의 변환 방법
14 14
제1항에 있어서, 상기 (4) 단계의 전용 하드웨어는 상기 고수준 언어 코드의 서브루틴/함수로부터 각각 생성되며: 상기 HLL-to-HDL 변환기에 의해 HWID(Hardware identification number, 하드웨어식별번호)가 부여된 HWIP(Hardware Intellectual Properties) 세트; 및 상기 HWIP를 제어하는 하드웨어 컨트롤러(hardware controller)를 포함하며, 상기 HWID는 상기 소프트웨어부분 코드와 상기 하드웨어부분 코드의 심벌테이블에 기술된 타겟 어드레스 또는 상기 타겟 어드레스로부터 재계산된 고유 번호인 것을 특징으로 하는 고수준 언어 코드의 HDL 코드로의 변환 방법
15 15
삭제
16 16
삭제
17 17
제14항에 있어서, 상기 (4) 단계는: 컴파일된 상기 소프트웨어부분 코드를 상기 메인코어에서 실행하는 단계; 상기 컴파일된 소프트웨어부분 코드가 실행되는 동안에 하나 이상의 상기 HWIP의 실행이 필요한 경우, 상기 메인코어에 의해 상기 전용 하드웨어의 상기 하드웨어 컨트롤러를 활성화시키고 호출 데이타를 전송하는 단계; 상기 전용 하드웨어의 상기 하드웨어 컨트롤러에 의해 대상이 되는 하나 이상의 상기 HWIP를 활성화시키고 호출 데이타를 전송하는 단계; 활성화된 상기 HWIP의 코드를 실행하고, 실행결과를 메모리와 시스템 레지스터에 저장하고, 활성화된 상기 하나 이상의 HWIP의 실행 종료를 상기 하드웨어 컨트롤러에 통지하는 단계; 상기 하드웨어 컨트롤러에 의해 활성화된 상기 하나 이상의 HWIP의 실행 종료를 상기 메인코어에게 통지하는 단계; 및 상기 메인코어에 의해 상기 메모리와 시스템 레지스터에 저장된 실행결과를 가지고 상기 컴파일된 소프트웨어부분 코드를 계속하여 실행하는 단계를 포함하는 것을 특징으로 하는 고수준 언어 코드의 HDL 코드로의 변환 방법
18 18
삭제
19 19
삭제
20 20
삭제
21 21
삭제
22 22
삭제
23 23
삭제
24 24
제17항에 있어서, 상기 전용 하드웨어의 상기 HWIP는 상기 메인코어에서 실행 중인 컴파일된 상기 소프트웨어부분 코드로의 크로스 콜(cross call)을 수행가능하며, 상기 크로스 콜 수행은: 상기 HWIP에 의해 상기 하드웨어 컨트롤러에게 컴파일된 상기 소프트웨어를 호출(call)할 필요가 있음을 알리기 위한 호출 데이타(calling data)를 준비하고 제어 신호(control signal)를 전송하는 단계; 상기 하드웨어 컨트롤러에 의해 상기 메인코어에게 상기 크로스 콜에 대해 통지하는 단계; 상기 메인코어에 의해 상기 호출 데이타를 상기 메인코어의 레지스터에 복사하고, 호출된 상기 컴파일된 소프트웨어부분 코드의 코드를 실행하고, 호출된 상기 컴파일된 소프트웨어부분 코드의 실행이 완료되는 경우 이를 상기 하드웨어 컨트롤러에 통지하는 단계; 상기 하드웨어 컨트롤러에 의해 호출된 상기 컴파일된 소프트웨어 부분 코드의 실행 완료에 대해 호출한 상기 HWIP에게 통지하는 단계; 및 상기 HWIP에 의해 호출된 상기 컴파일된 소프트웨어부분 코드의 실행 결과를 가지고 자신의 코드를 계속하여 실행하는 단계를 포함하는 것을 특징으로 하는 고수준 언어 코드의 HDL 코드로의 변환 방법
25 25
삭제
26 26
삭제
27 27
삭제
28 28
제17항에 있어서, 상기 전용 하드웨어의 어느 하나의 상기 HWIP는 다른 HWIP 또는 자기 자신으로의 호출(call)을 수행가능하며, 상기 호출은: 상기 어느 하나의 HWIP에 의해 상기 하드웨어 컨트롤러에게 호출(call)할 필요가 있음을 알리기 위한 호출 데이타(calling data)를 준비하고 제어 신호(control signal)를 전송하는 단계; 상기 하드웨어 컨트롤러에 의해 호출 어드레스를 검사(examining)하고 상기 다른 HWIP 또는 상기 어느 하나의 HWIP를 활성화하는 단계; 상기 다른 HWIP 또는 상기 어느 하나의 HWIP에 의해 자신의 레지스터에 상기호출 데이타(calling data)를 복사하고, 자신의 코드를 실행하며, 실행 완료시 이를 상기 하드웨어 컨트롤러에게 통지하는 단계; 상기 하드웨어 컨트롤러에 의해 호출된 상기 다른 HWIP 또는 상기 어느 하나의 HWIP의 실행 완료에 대해 상기 어느 하나의 HWIP에 통지하는 단계; 및 상기 어느 하나의 HWIP에 의해 호출된 상기 다른 HWIP 또는 상기 어느 하나의 HWIP의 실행 결과를 가지고 자신의 코드를 계속하여 실행하는 단계를 포함하는 것을 특징으로 하는 고수준 언어 코드의 HDL 코드로의 변환 방법
29 29
삭제
30 30
삭제
31 31
삭제
32 32
삭제
33 33
삭제
34 34
프로그래밍 디렉티브로 표시된 변환대상 고수준 언어 코드로부터 상기 프로그래밍 디렉티브를 읽은 후 상기 변환대상 고수준 언어 코드를 하드웨어 부분 코드와 소프트웨어 부분 코드로 분할하는 HLL-to-HLL 소스 변환기; 상기 소프트웨어부분 코드 및 하드웨어부분 코드를 컴파일하는 메인 컴파일러; 상기 하드웨어 부분 코드를 데이타 패스 및 컨트롤 유닛을 포함하는 HDL 코드로 변환하는 HLL-to-HDL 변환기; 컴파일된 상기 소프트웨어 부분 코드를 실행하는 메인코어; 및 상기 메인코어와 연동하여 변환된 상기 HDL 코드를 실행하는 전용하드웨어를 포함하는 고수준 언어 코드의 HDL 코드로의 변환 시스템
35 35
제34항에 있어서, 상기 하드웨어부분 코드는 상기 변환대상 고수준 언어 코드의 하나 이상의 서브루틴/함수를 포함하며, 상기 소프트웨어부분 코드는 상기 변환대상 고수준 언어 코드의 나머지 부분 및 상기 하드웨어 부분 코드로의 함수 콜을 포함하는 것을 특징으로 하는 고수준 언어 코드의 HDL 코드로의 변환 시스템
36 36
제34항에 있어서, 상기 HLL-to-HDL 변환기는 상기 메인컴파일러의 프론트 엔드(front end) 및 미들 엔드(middle end)와 HDL 백엔드(backend)를 포함하여, 상기 HLL-to-HDL 변환기는 자연적으로(natuarally) HDL 코드 생성 과정에서 컴파일된 상기 소프트웨어부분 코드의 링키지 컨벤션(linkage convention)을 따르며, 상기 HDL 백엔드는: 신택스(syntax)가 HDL 신택스와 세만틱스(semantics)를 따르며 저수준 IR 코드를 HDL로 맵핑하는 기계 묘사 파일(machine description file); 및 HDL 코드 제네레이터(generator)를 포함하는 것을 특징으로 하는 고수준 언어 코드의 HDL 코드로의 변환 시스템
37 37
제34항에 있어서, 상기 HLL-to-HDL 변환기의 상기 메인컴파일러의 프론트 엔드 및 미들 엔드는 상기 하드웨어부분 코드를 저수준 IR 코드로 변환하며, 상기 HLL-to-HDL 변환기의상기 HDL 백엔드는 상기 저수준 IR 코드를 HDL 코드로 변환하는 것을 특징으로 하는 고수준 언어 코드의 HDL 코드로의 변환 시스템
38 38
제34항에 있어서, 상기 고수준 언어 코드의 서브루틴/함수에 해당하는 상기 HDL 코드의 생성은 생성된 상기 HDL 코드가 하나 이상의 블락모듈을 데이타패스로서 포함하고, 탑 모듈을 제어 유닛으로 포함하는 basic-block-by-basic-block 생성 방법, 또는 생성된 상기 HDL 코드가 상기 데이타패스 및 상기 제어유닛 모두를 포함하는 하나의 모듈을 포함하는 function-by-function 생성 방법 중 어느 하나인 것을 특징으로 하는 고수준 언어 코드의 HDL 코드로의 변환 시스템
39 39
제34항에 있어서, 상기 HDL 코드의 하드웨어 함수의 상기 데이타 패스는 상기 HDL 백엔드의 기계묘사파일에 의해 저수준 IR 코드로부터 직접 생성되고, 상기 HDL 코드의 하드웨어 함수의 컨트롤 유닛은 상기 HDL 코드 제네레이터에 의해 상기 저수준 IR 코드의 베이직 블락들 간의 컨트롤 의존성에 기초하여 생성되며, 상기 데이타 패스 및 상기 컨트롤 유닛은 유한상태기계(FSM) 형태인 것을 특징으로 하는 고수준 언어 코드의 HDL 코드로의 변환 시스템
40 40
삭제
41 41
삭제
42 42
삭제
43 43
HLL-to-HDL 변환기를 이용하여 고수준 언어 코드를 HDL 코드로 변환하는 시스템에 있어서, 상기 HLL-to-HDL 변환기는: 메인 컴파일러의 프론트 엔드와 미들 엔드; 및 HDL 백엔드를 포함하는 것을 특징으로 하는 HLL-to-HDL 변환기를 이용하여 고수준 언어 코드를 HDL 코드로 변환하는 시스템
44 44
제43항에 있어서, 상기 HDL 백엔드는: HDL 신택스와 세만틱스를 따르는 신택스를 가지며, 목표 어셈블리 코드(target assembly code) 생성과 동일한 방식으로 저수준 IR 코드를 HDL 코드로 맵핑하는 변환기; 및 상기 메인 컴파일러의 프론트 엔드 및 미들 엔드에 의해 상기 고수준 언어 코드로부터 상기 목표 어셈블리 코드 생성 바로 직전에 변환된 저수준 IR 코드로부터 상기 HDL 코드를 생성하는 HDL 제네레이터(generator)를 포함하는 것을 특징으로 하는 HLL-to-HDL 변환기를 이용하여 고수준 언어 코드를 HDL 코드로 변환하는 시스템
45 45
제43항에 있어서, 상기 HLL-to-HDL 변환기에 의해 상기 고수준 언어 코드의 서브루틴/함수로부터 생성된 상기 HDL 코드는 데이타 패스 및 컨트롤 유닛을 포함하고, 상기 데이타 패스 및 상기 컨트롤 유닛은 유한상태기계 형태로 구현되는 것을 특징으로 하는 HLL-to-HDL 변환기를 이용하여 고수준 언어 코드를 HDL 코드로 변환하는 시스템
46 46
제43항에 있어서, basic-block-by-basic-block 생성 방법의 경우, 상기 HDL 코드는 상기 고수준 언어 코드의 서브루틴/함수로부터 생성된 하나 또는 그 이상의 블락 모듈을 데이타 패스로서 포함하고, 탑 모듈을 컨트롤 유닛으로서 포함하며, function-by-function 생성 방법의 경우, 상기 HDL 코드는 데이타 패스 및 상기 컨트롤 유닛 양자 모두를 포함하는 하나의 모듈을 포함하는 것을 특징으로 하는 HLL-to-HDL 변환기를 이용하여 고수준 언어 코드를 HDL 코드로 변환하는 시스템
47 47
삭제
지정국 정보가 없습니다
순번, 패밀리번호, 국가코드, 국가명, 종류의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 패밀리정보 - 패밀리정보 표입니다.
순번 패밀리번호 국가코드 국가명 종류
1 EP02369476 EP 유럽특허청(EPO) FAMILY
2 EP02369476 EP 유럽특허청(EPO) FAMILY
3 JP05568566 JP 일본 FAMILY
4 JP24509537 JP 일본 FAMILY
5 KR101481453 KR 대한민국 FAMILY
6 US08336036 US 미국 FAMILY
7 US08448150 US 미국 FAMILY
8 US20100131933 US 미국 FAMILY
9 US20100131934 US 미국 FAMILY
10 WO2010058981 WO 세계지적재산권기구(WIPO) FAMILY
11 WO2010058981 WO 세계지적재산권기구(WIPO) FAMILY

DOCDB 패밀리 정보

순번, 패밀리번호, 국가코드, 국가명, 종류의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 패밀리정보 - DOCDB 패밀리 정보 표입니다.
순번 패밀리번호 국가코드 국가명 종류
1 EP2369476 EP 유럽특허청(EPO) DOCDBFAMILY
2 EP2369476 EP 유럽특허청(EPO) DOCDBFAMILY
3 EP2369476 EP 유럽특허청(EPO) DOCDBFAMILY
4 JP2012509537 JP 일본 DOCDBFAMILY
5 JP5568566 JP 일본 DOCDBFAMILY
6 KR101481453 KR 대한민국 DOCDBFAMILY
7 KR20110093965 KR 대한민국 DOCDBFAMILY
8 US2010131933 US 미국 DOCDBFAMILY
9 US2010131934 US 미국 DOCDBFAMILY
10 US8336036 US 미국 DOCDBFAMILY
11 US8448150 US 미국 DOCDBFAMILY
국가 R&D 정보가 없습니다.