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

검색결과 105건 처리시간 0.023초

데이타 플로우 명세로부터 직렬화된 멀티태스킹 코드 생성 (Serialized Multitasking Code Generation from Dataflow Specification)

  • 권성남;하순회
    • 한국정보과학회논문지:시스템및이론
    • /
    • 제35권9_10호
    • /
    • pp.429-440
    • /
    • 2008
  • 갈수록 복잡해지는 임베디드 시스템을 개발하는데 있어서 소프트웨어 개발의 중요성이 점차 커지고 있다. 대부분의 임베디드 응용 소프트웨어는 멀티 태스크로 구성되어 있는 병렬 소프트웨어이며, 기존의 순차적인 프로그래밍 언어만으로 개발하는 것보다는 알고리즘의 병렬성을 명세하기에 용이한 데이타플로우 모델로부터 소프트웨어를 생성하는 것이 유망하다. 생성된 멀티태스킹 코트를 수행하기 위해선 태스크들을 병렬적으로 수행해 주고 태스크간 동기화를 담당해 줄 운영체제의 도움이 필요하다. 그러나 운영체제를 사용하기 어려운 환경이나 설계 공간 탐색 과정에서 운영체제를 매번 다양한 하드웨어 플랫폼에 포팅하기 어려운 경우에는 운영체제 없이 멀티 태스크 응용을 수행할 수 있는 방법이 필요하다. 이것을 위해서 이 연구에서는 데이타 플로우 명세로부터 직렬화 된 멀티태스킹 코드를 생성하는 방법을 제안한다. 제안하는 방법에서 하나의 태스크는 데이타 플로우 모델로 명세되며, 하나의 C 코드로 생성된다. 코드 생성은 크게 두 단계로 이루어지는데, 먼저 태스크를 구성하는 블록들을 각각 함수 형태로 코드를 생성한 후에, 생성된 여러 태스크의 함수들을 모아서 직렬화 하여 호출하는 스케줄러를 만든다. 이 때에 스케줄러를 효율적으로 만들 수 있는 자료구조 및 정보를 제공하여 사용자가 수동으로 스케줄러를 만드는 것도 가능하도록 하였다. DivX예제를 통하여 제안하는 방법으로 생성한 코드가 효율적으로 올바르게 동작함을 보였다.

확장 명령어 32비트 마이크로 프로세서에 관한 연구 (A Study on Extendable Instruction Set Computer 32 bit Microprocessor)

  • 조건영
    • 전자공학회논문지D
    • /
    • 제36D권5호
    • /
    • pp.11-20
    • /
    • 1999
  • 마이크로 프로세서의 동작 속도가 빨라지면서 메모리의 데이터 전송 폭이 시스템 성능을 제한하는 중요 인자가 되고 있다. 또한 CPU와 메모리 및 입출력회로가 하나의 반도체에 집적되는 실장 제어용 마이크로 프로세서의 가격을 낮추기 위해서 메모리 크기를 줄이는 것이 중요하다. 본 논문에서는 코드 밀도가 높은 32 비트 마이크로 프로세서 구조로 가칭 확장 명령어 세트 컴퓨터(Extendable Instruction Set Computer: EISC)를 제안한다. 32 비트 EISC는 16개의 범용 레지스타를 가지며, 16 비트 고정 길이 명령어, 짧은 오프셋 인덱스 어드래싱과 짧은 상수 오퍼랜드 명령어를 가지며, 확장 레지스타와 확장 프래그를 사용하여 오프셋 및 상수 오퍼랜드를 확장할 수 있다. 32비트 EISC는 FPGA로 구현하여 1.8432MHz에서 모든 기능이 정상적으로 동작하는 것을 확이하였고, 크로스 어셈블러와 크로스 C/C++ 컴파일러 및 명령어 시뮬레이터를 설계하고 동작을 검증하였다. 제안한 EISC의 코드 밀도는 기존 RISC의 140-220%, 기존 CISC의 120-140%로 현격하게 높은 장점을 가진다. 따라서 데이터 전송 폭을 적게 요구하므로 차세대 컴퓨터 구조로 적합하고, 프로그램 메모리 크기가 작아지므로 실장 제어용 마이크로 프로세서에 적합하기 때문에 폭 넓은 활용이 기대된다.

  • PDF

전력소모량 및 실행시간 추정이 가능한 센서 네트워크 시뮬레이터의 개발 (Development of Sensor Network Simulator for Estimating Power Consumption and Execution Time)

  • 김방현;김태규;정용덕;김종현
    • 한국시뮬레이션학회논문지
    • /
    • 제15권1호
    • /
    • pp.35-42
    • /
    • 2006
  • 유비쿼터스 컴퓨팅의 인프라가 되는 센서 네트워크는 매우 작은 하드웨어로 이루어지는 많은 수의 센서 노드들로 구성된다. 이 네트워크의 토폴로지와 라우팅 방식은 그 목적에 따라 결정되어야 하며, 하드웨어 및 소프트웨어도 필요한 경우에는 변경되어야 한다. 따라서 그러한 네트워크를 최적으로 설계하기 위해서는 시스템 동작을 확인하고 성능을 예측할 수 있는 센서 네트워크 시뮬레이터가 필요하다. 현존하는 몇몇 센서 네트워크 시뮬레이터들은 특정 하드웨어나 운영체제에 맞추어 개발되었기 때문에, 그러한 특정 시스템들을 위해서만 사용될 수 있다. 그리고 시스템 설계 상의 주요 이슈가 되는 전력 소모량 및 프로그램 실행 시간을 추정하기 위한 어떤 수단도 지원하지 못하고 있다. 이 연구에서는 응용이나 운영체제의 종류에 상관없이 다양한 센서 네트워크들의 설계 및 검증에 사용될 수 있는 시뮬레이터를 개발하였다. 이를 위하여, 시뮬레이터는 기계어-레벨 이산-사건 시뮬레이션 방식을 사용하였다. 따라서 이 시뮬레이터는 프로그램 실행 타이밍 뿐 아니라 실제 센서 노드 내부의 동작들도 세부적으로 분석하는 데도 사용될 수 있다. 이 연구에서 시뮬레이션의 작업부하인 명령어 트레이스로는 ATmega128L 마이크로컨트롤러용 크로스컴파일러에 의해 생성된 실행 이미지를 사용하였다.

  • PDF

DTV 콘텐츠 검증 시스템을 위한 Java 컴파일러의 개발 (Development of a Java Compiler for Verification System of DTV Contents)

  • 손민성;박진기;이양선
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2007년도 춘계학술발표대회
    • /
    • pp.1487-1490
    • /
    • 2007
  • 디지털 위성방송의 시작과 더불어 본격적인 데이터 방송의 시대가 열렸다. 데이터방송이 시작 되면서 데이터방송용 양방향 콘텐츠에 대한 수요가 급속하게 증가하고 있다. 하지만 양방향 콘텐츠 개발에 필요한 저작 도구 및 검증 시스템은 아주 초보적인 수준에 머물러 있는 것이 현실이다. 그러나 방송의 특성상 콘텐츠 상에서의 오류는 방송 사고에까지 이를 수 있는 심각한 상황이 연출 될 수 있다. 본 연구 팀은 이러한 DTV 콘텐츠 개발 요구에 부응하여, 개발자의 콘텐츠 개발 및 사업자 또는 기관에서의 콘텐츠 검증이 원활이 이루어 질수 있도록 하는 양방향 콘텐츠 검증 시스템을 개발 중이다. 양방향 콘텐츠 검증 시스템은 Java 컴파일러, 디버거, 미들웨어, 가상머신, 그리고 IDE 등으로 구성된다. 본 논문에서 제시한 자바 컴파일러는 양방향 콘텐츠 검증 시스템에서 데이터 방송용 자바 애플리케이션(Xlet)을 컴파일하여 에뮬레이팅 하거나 런타임 상에서 디버깅이 가능하도록 하는 바이너리형태의 class 파일을 생성한다. 이를 위해 Java 컴파일러는 *.java 파일을 입력으로 받아 어휘 분석과 구문 분석 과정을 거친 후 SDT(syntax-directed translation)에 의해 AST(Abstract Syntax Tree)를 생성한다. 클래스링커는 생성된 AST를 탐색하여 동적으로 로딩 되는 파일들을 연결하여 AST를 확장한다. 의미 분석과정에서는 확장된 AST를 입력으로 받아 참조된 명칭의 사용이 타당한지 등을 검사하고 코드 생성이 용이하도록 AST를 변형하고 부가적인 정보를 삽입하여 ST(Semantic Tree)를 생성한다. 코드 생성 단계에서는 ST를 입력으로 받아 이미 정해 놓은 패턴에 맞추어 Bytecode를 출력한다.ovoids에서도 각각의 점들에 대한 선량을 측정하였다. SAS와 SSAS의 직장에 미치는 선량차이는 실제 임상에서의 관심 점들과 가장 가까운 25 mm(R2)와 30 mm(R3)거리에서 각각 8.0% 6.0%였고 SAS와 FWAS의 직장에 미치는 선량차이는 25 mm(R2) 와 30 mm(R3)거리에서 각각 25.0% 23.0%로 나타났다. SAS와 SSAS의 방광에 미치는 선량차이는 20 m(Bl)와 30 mm(B2)거리에서 각각 8.0% 3.0%였고 SAS와 FWAS의 방광에 미치는 선량차이는 20 mm(Bl)와 30 mm(B2)거리에서 각각 23.0%, 17.0%로 나타났다. SAS를 SSAS나 FWAS로 대체하였을 때 직장에 미치는 선량은 SSAS는 최대 8.0 %, FWAS는 최대 26.0 %까지 감소되고 방광에 미치는 선량은 SSAS는 최대 8.0 % FWAS는 최대 23.0%까지 감소됨을 알 수 있었고 FWAS가 SSAS 보다 차폐효과가 더 좋은 것으로 나타났으며 이 두 종류의 shielded applicator set는 부인암의 근접치료시 직장과 방광으로 가는 선량을 감소시켜 환자치료의 최적화를 이룰 수 있을 것으로 생각된다.)한 항균(抗菌) 효과(效果)를 나타내었다. 이상(以上)의 결과(結果)로 보아 선방활명음(仙方活命飮)의 항균(抗菌) 효능(效能)은 군약(君藥)인 대황(大黃)의 성분(成分) 중(中)의 하나인 stilbene 계열(系列)의 화합물(化合物)인 Rhapontigenin과 Rhaponticin의 작용(作用)에 의(依)한 것이며, 이는 한의학(韓醫學) 방제(方劑) 원리(原理)인 군신좌사(君臣佐使) 이론(理論)에서 군약(君藥)이 주증(主症)에 주(主)로 작용(作用)하는 약물(藥物)이라는 것을 밝혀주는 것이라고

개선된 역수 알고리즘을 사용한 정수 나눗셈기 (The Integer Number Divider Using Improved Reciprocal Algorithm)

  • 송홍복;박창수;조경연
    • 한국정보통신학회논문지
    • /
    • 제12권7호
    • /
    • pp.1218-1226
    • /
    • 2008
  • 반도체 집적 기술의 발달과 컴퓨터에서 멀티미디어 기능의 사용이 많아지면서 보다 많은 기능들이 하드웨어로 구현되기를 원하는 요구가 증가되고 있다. 그래서 현재 사용되는 대부분의 32 비트 마이크로프로세서는 정수 곱셈기를 하드웨어로 구현하고 있다. 그러나 나눗셈기는 기존의 알고리즘인 SRT 알고리즘의 방식이 하드웨어 구현상의 복잡도와 느린 동작 속도로 인해 특정 마이크로프로세서에 한해서만 하드웨어로 구현되고 있다. 본 논문에서는 'w bit $\times$ w bit = 2w bit' 곱셈기를 사용하여 $\frac{N}{D}$ 정수 나눗셈을 수행하는 알고리즘을 제안한다. 즉, 제수 D 의 역수를 구하고 이를 피제수 N 에 곱해서 정수 나눗셈을 수행한다. 본 논문에서는 제수 D 가 '$D=0.d{\times}2^L$, 0.5<0.d<1.0'일 때, '$0.d{\times}1.g=1+e$, $e<2^{-w}$'가 되는 '$\frac{1}{D}$'의 근사 값 '$1.g{\times}2^{-L}$'을 가칭 상역수라고 정의하고, 상역수를 구하는 알고리즘을 제안하고, 이렇게 구한 상역수 '$1.g{\times}2^{-L}$'을 피제수 N에 곱하여 $\frac{N}{D}$ 정수 나눗셈을 수행한다. 제안한 알고리즘은 정확한 역수를 계산하기 때문에 추가적인 보정이 요구되지 않는다. 본 논문에서 제안하는 알고리즘은 곱셈기만을 사용하므로 마이크로프로세서를 구현할 때 나눗셈을 위한 추가적인 하드웨어가 필요 없다. 그리고 기존 알고리즘인 SRT 방식에 비해 빠른 동작속도를 가지며, 워드 단위로 연산을 수행하기 때문에 기존의 나눗셈 알고리즘보다 컴파일러 작성에도 적합하다. 따라서, 본 논문의 연구 결과는 마이크로프로세서 및 하드웨어 크기에 제한적인 SOC(System on Chip) 구현 등에 폭넓게 사용될 수 있다.