• 제목/요약/키워드: Compiler

검색결과 524건 처리시간 0.03초

Parallel Machine에 있어서의 Functional, Declarative 언어의 Algorithm (Algorithm for Functional and Declarative Language in Parallel Machine)

  • 김진수
    • 자연과학논문집
    • /
    • 제5권2호
    • /
    • pp.39-43
    • /
    • 1992
  • 사용자의 관점에서 볼때는 compiler가 parallelism을 발견할 수 있게 하는것이 매우 요구되지만, 아무리 잘 만들어진 compiler 라 할지라도 conditional, functional 또는 I/O statement 등 프로그램내에 존재하는 많은 parallelism을 인식 하기가 결코 쉬운 일이 아니다. 경우에 따라서는 compiler의 parallelism 결정이 곤란할경우 사용자에게 feedback 시키는 경우가 종종 있다. 이런 입장에서 프로그래머는 parallelism을 바로 전달하기 위해서 프로그램의 일부를 재구성 시킬 필요가 자주 발생한다. 그러한 관점에서 Functional, Declarative 언어의 잇점이 있다고 할 수 있고, 그러기 위해서는 paralled machine에 적합한 Algorithm 이 필요하다. 그러나, 이미 사용중인 Algorithm이 Parallel Machine에 부적절 하다는 것을 의미 하는것은 아니다. 본 연구에서는, Fortran을 이용하여 Parallel Algorithm을 구현 시키기위한 Declarative 언어에 있어서 Array 및 Matrix 를 다루기위한 Abstraction 방법을 제시 하고자 한다.

  • PDF

네트워크 패킷 처리를 위한 효율적인 비트 스트림 명령어 세트 (An Efficient Bit Stream Instruction-set for Network Packet Processing Applications)

  • 윤여필;이용석;이정희
    • 대한전자공학회논문지SD
    • /
    • 제45권10호
    • /
    • pp.53-58
    • /
    • 2008
  • 본 논문은 네트워크 프로세서의 패킷 처리 능력 향상을 위한 새로운 명령어 세트를 제한한다. 제안하는 명령어는 패킷 헤더의 결합 연산을 가속화 할 수 있으므로 보다 효율적인 패킷 처리를 수행할 수 있다. 또한 overlay 명령어 처리를 위한 전용 하드웨어 구조를 설계하여 추가 하드웨어로 인한 비용을 최소화 하였다. 이를 위해 LISA 언어를 이용하여 네트워크 프로세서 기본 아키텍처를 설계하고 overlay 블록을 배럴 시프터를 기반으로 최적화 하였다. 이를 합성하여 면적 및 동작 지연시간을 비교하였으며, 컴파일러의 CKF(Compiler Known Function)를 이용하여 C레벨의 매크로 함수에 할당하고 어플리케이션 프로그램에 대한 실행 사이클 및 실행 시간을 비교하여 성능 향상을 확인하였다. Coware사의 processor designer, compiler designer를 이용하여 실험하였으며 Synopsys의 TSMC $0.25{\mu}m$로 합성한 결과 20.7%의 동작 지연시간 감소를 보였고, 전체 실행 사이클에선 제안하는 명령어 세트에 의해 30.8%의 성능 향상을 보였다.

C++ IDL 컴파일러 구현 (Implementation of C++ ID Compiler)

  • 박찬모;이준
    • 한국정보통신학회논문지
    • /
    • 제5권5호
    • /
    • pp.970-976
    • /
    • 2001
  • 본 논문에서는 IDL 정의를 입력받아 파싱하는 컴파일러의 전반부를 위해 OMG IDL 컴파일러를 사용하였다. 또한 ORB를 위해 omniORB3[1]를 사용했다. OMG IDL CFE는 IDL 정의를 입력받아 어휘 및 구문 분석을 한 후 AST 트리를 생성하며, 생성된 각 노드는 우리가 새로 추가한 BE_* 클래스의 인스턴스로 구성된다. IDL 컴파일러의 후반부는 AST의 각 노드를 반복자인 UTL_ScopeActiveIterator 클래스를 사용하여 반복적으로 각 순회하면서 해당하는 출력을 덤프한다. 이때 두개의 출력 파일을 생성토록 했다. 모든 코드 생성은 BE_produce.cc에서 시작되며, idl_global->root() 노드를 시작으로 하여 각 클래스에 해당 코드를 생성하는 dump* 함수를 호출하여 생성했다. 본 논문은 IDL 정의를 C++언어로 맵핑만을 실험했으며, 이것은 omniORB3에서 제공하는 IDL 컴파일러와 동일한 결과를 생성했으며, omniORB3[1] 환경에서 동작하는 변환된 C++ 코드임을 실험했다. 향후 IDL 컴파일러를 통한 성능 향상을 위해 마샬링 코드의 최적화를 할 수 있도록 하는 코드를 생성하는 문제에 관심을 가지고 있다.

  • PDF

버퍼오버플로우 공격 방지를 위한 컴파일러 기법 (Improving Compiler to Prevent Buffer Overflow Attack)

  • 김종의;이성욱;홍만표
    • 정보처리학회논문지C
    • /
    • 제9C권4호
    • /
    • pp.453-458
    • /
    • 2002
  • 최근 들어 버퍼오버플로우 취약성을 이용한 해킹 사례들이 늘어나고 있다. 버퍼오버플로우 공격을 탐지하는 방법은 크게 입력 데이터의 크기 검사 비정상적인 분기 금지, 비정상 행위 금지의 세가지 방식 중 하나를 취한다. 본 논문에서는 비정상적인 분기를 금지하는 방법을 살펴본 것이다. 기존의 방법은 부가적인 메모리를 필요로 하고, 컨트롤 플로우가 비정상적인 흐름을 찾기 위해 코드를 추가하고 실행함으로써 프로그램 실행시간의 저하를 단점으로 이야기할 수 있다. 본 논문에서는 부가적인 메모리 사용을 최소한으로 줄임으로 메모리 낭비를 저하시키고 실행시간에 컨트롤 플로우가 비정상적으로 흐르는 것을 막기 위한 작업들을 최소화함으로서 기존의 방법보다 더 효율적인 방법을 제안하고자 한다.

재겨냥성 C 컴파일러를 위한 테스트 집합 생성 시스템 (Test Suit Generation System for Retargetable C Compilers)

  • 우균;배정호;장한일;이윤정;채흥석
    • 정보처리학회논문지A
    • /
    • 제16A권4호
    • /
    • pp.245-254
    • /
    • 2009
  • 임베디드 프로세서 사용이 증가함에 따라 임베디드 프로세서를 위한 컴파일러를 시기 적절히 개발해야 할 필요성이 증가하고 있다. 컴파일러 후단부를 수정하여 새로운 컴파일러를 구성하는 재겨냥 기법이 이에 적합한 기법으로 채택되고 있다. 이 논문에서는 재겨냥성 C 컴파일러를 테스트하기 위한 테스트 집합 생성 시스템을 제안한다. 제안한 시스템은 문법 커버리지 개념을 이용하여 테스트 집합을 생성한다. 일반적으로 원시 프로그래밍 언어의 문법을 이용하여 테스트 집합을 생성하면 방대한 크기의 테스트 집합이 얻어진다. 그러나 신속히 컴파일러를 출시해야하는 상황에서는 방대한 테스트 집합 크기가 문제가 될 수 있다. 이에 이 논문에서 제안한 시스템은 중간 코드를 고려하여 테스트 집합을 축약하는 기능을 탑재하고 있다. 실험 결과에 따르면, 비록 축약된 테스트 집합 크기는 원본 테스트 집합 크기의 평균 10%에 불과하지만 원본 테스트 집합이 검출할 수 있는 컴파일러 오류의 75% 정도를 검출할 수 있음을 알 수 있었다. 이는 본 논문에서 제시한 축약 기법이 임베디드 컴파일러 개발 초기 단계에서 효과적으로 사용될 수 있음을 의미한다.

VHDL-to-C 사상을 위한 VHDL 컴파일러 전반부의 설계 (A deisgn of VHDL compiler front-end for the VHDL-to-C mapping)

  • 공진흥;고형일
    • 한국통신학회논문지
    • /
    • 제22권12호
    • /
    • pp.2834-2851
    • /
    • 1997
  • 본 논문에서는 VHDL '87 및 '93 LRM의 전체 사양을 지원하며 VHDL-to-C 사상의 전처리 과정을 수행하는 VHDL 컴파일러 전반부의 설계 및 구현에 대해서 논한다. VHDL 컴파일러 전반부는 I)VHDL의 계층적 구조체, 선언 영역 및 가시성, 다중 정의 및 동형 이의어, 병행적 다중 스택 구조를 표현하기 위해서 분석 터미널 데이터에 심볼 트리를 구성하였으며, 2) VHDL 고유의 객체, 타입 및 서브타입, 속성과 연산자 등을 나타내기 위한 구조체 및 지원 함수를 설계하였고, 3) VHDL의 병행문/순차문, 행위/구조 기술, 동기 메커니즘 등을 분석하여 VHDL-to-C 사상에 필요한 어의 정보를 구축하고, 4) VHDL 분석 과정에서 어의 데이터의 저장 및 검색이 효과적으로 이루어 지도록 어의 토큰 정의 및 어의 전파 기능 등을 설계하였다. Validation suite를 이용한 실험에서 VHDL 컴파일러 전반부는 LRM 전체 사양을 분석할 수 있음을 확인하였고, VHDL의 계층성/가시성/병행성/어의 검사 등을 효과적으로 처리하기 위해 설계 및 구현된 심볼 트리와 어의 토큰 등의 분석 데이터 모델에 대한 성능 분석 실험에서 VHDL컴파일러 전반부는20- 30%의 개선 효과를보였다.

  • PDF

임베디드 시스템 기반 지능형 영상 감시 시스템 구현 (Implementation of an Intelligent Visual Surveillance System Based on Embedded System)

  • 송재민;김동진;정용배;박영석;김태효
    • 융합신호처리학회논문지
    • /
    • 제13권2호
    • /
    • pp.83-90
    • /
    • 2012
  • 본 논문에서는 NIOS II 임베디드 플랫폼을 기반으로 하는 지능형 영상 감시 시스템을 구현하였다. 지금까지의 입베디 드 기반의 영상 감시 시스템들은 하드웨어의 의존도가 높아 특정한 목적에 제한되는 단점이 있었다. 이러한 한계를 개 선하기 위하여, 필자들은 그 응용의 목적에 따라 폭 넓게 적용 가능한 유연성이 높은 임베디드 플랫폼을 구현하였다. 소프트웨어 중심 프로그래밍 기법의 주요 문제점인 고속 처리를 위하여, 핵심 부분인 하드웨어 플랫폼에서 SOPC형 NIOS II 임베디드 프로세서와 영상처리 알고리즘을 소프트웨어 프로그래밍과 C2H(The Altera NIOS II C-To-Hardware(C2H) Acceleration Compiler) 컴파일러를 사용하는 하드웨어 프로그래밍을 통합하여 시스템의 성능을 향상 시켰다. 그리고 NIOS II 임베디드 프로세서 플랫폼을 중심으로 각각의 디바이스 인터페이스를 통합 관리하는 서버 시스템을 구축하고, 사용자의 접근 효율을 높이기 위해 네트워크상에서 제어하는 기능을 추가하였다.본 시스템을 영상 감시를 위한 지정된 구역에 설치하여 시험하고 그 성능을 평가하였다.

스트립 바이너리에서 합성곱 신경망을 이용한 컴파일러 정보 추출 기법 (Extracting Scheme of Compiler Information using Convolutional Neural Networks in Stripped Binaries)

  • 이정수;최현웅;허준영
    • 한국인터넷방송통신학회논문지
    • /
    • 제21권4호
    • /
    • pp.25-29
    • /
    • 2021
  • 스트립 바이너리는 디버그 심볼 정보가 삭제된 바이너리이며, 역공학 등의 기법을 통한 바이너리 분석이 어렵다. 기존의 바이너리 분석 툴은 디버그 심볼 정보에 의존하여 바이너리를 분석하기 때문에 이러한 스트립 바이너리의 특징이 적용된 악성코드를 감지하거나 분석하는데 어려움이 있다. 이러한 문제를 해결하기 위해 스트립 바이너리의 정보를 효과적으로 추출할 수 있는 기술의 필요성이 대두되었다. 본 논문에서는 바이너리 파일의 바이트 코드가 컴파일러 버전, 최적화 옵션 등에 따라 매우 상이하게 생성된다는 점에 착안하여 효과적인 컴파일러 버전 추출을 위해 스트립 바이너리 대상으로, 전체 바이트 코드를 읽어 이미지화 시킨 후 이를 합성곱 신경망에 적용, 정확도 93.5%을 달성하여 스트립 바이너리를 기존보다 더욱 효과적으로 분석할 수 있는 계기를 제공한다.

Spiking Neural Networks(SNN)를 위한 컴파일러 구조와 매핑 알고리즘 성능 분석 (A Structure of Spiking Neural Networks(SNN) Compiler and a performance analysis of mapping algorithm)

  • 김용주;김태호
    • 문화기술의 융합
    • /
    • 제8권5호
    • /
    • pp.613-618
    • /
    • 2022
  • SNN(Spiking Neural Networks) 기반의 인공지능 연구는 현재 유행하는 DNN(Deep Neural Networks) 기반의 인공지능의 한계를 극복할 수 있는 차세대 인공지능으로서 주목받고 있다. 본 논문에서는 SNN 형태의 입력을 뉴로모픽 컴퓨팅 시스템에서 구동시킬 수 있는 시스템 SW인 SNN 컴파일러의 구조에 대하여 설명한다. 또한 컴파일러 구현을 위하여 사용된 알고리즘을 소개하고 매핑 알고리즘의 동작 형태에 따라 뉴로모픽 컴퓨팅 시스템에서 수행시간이 어떻게 달라지는지에 대한 실험결과를 제시한다. 본문에서 제안한 매핑 알고리즘은 랜덤 매핑에 비해 최대 3.96배의 수행속도 향상이 있었다. 해당 연구 결과를 통해 SNN들을 다양한 뉴로모픽 하드웨어에서 적용할 수 있을 것이다.

고성능 로직 시뮬레이터(HSIM) 구현 (HSIM: Implementation of the Highly Efficient Logic SIMulator)

  • 박장현;이기준;김보관
    • 한국정보처리학회논문지
    • /
    • 제2권4호
    • /
    • pp.603-610
    • /
    • 1995
  • 본 논문에서는 함수 기능에서 로직 게이트 기능까지 시뮬레이션 가능한 고성능의 로직 시뮬레이터(HSIM) 개발에 대해서 논한다. 개발된 로직 시뮬레이터는 입력부, 시 뮬레이터 본체, 출력부로 구성되어 있으며, 입력부에는 네트 리스트 컴파일러, 부품 정보 컴파일러가 포함된다. 시뮬레이터 본체에는 시뮬레이션 속도를 높이기 위한 각종 기술과 시뮬레이터의 중심 부분인 시뮬레이션 엔진 등이 소속되어 있다. 출력부에는 시뮬레이션 결과를 분석하는 파형 분석기가 있다. 개발된 시뮬레이터 본체의 주요 특 징은 점진적 로더를 사용하여 컴파일된 부품 기능들을 시뮬레이션 엔진에서 직접 로드 하여 시뮬레이션을 수행한다. 이렇게 한 결과 기존의 유릿 딜레어 event-driven interpretive 시뮬레이터와 비교했을 때 55% 이상 속도가 빠른 효과적인 성능 향상을 달성했다.

  • PDF