• 제목/요약/키워드: Instruction code

검색결과 145건 처리시간 0.026초

목적 코드 레벨에서의 벡터화 기법 (A Vectorization Technique at Object Code Level)

  • 이동호;김기창
    • 한국정보처리학회논문지
    • /
    • 제5권5호
    • /
    • pp.1172-1184
    • /
    • 1998
  • 명령어 재배치는 ILP(Instruction Level Parallelism) 프로세서의 병렬성을 활용하는 주요한 코드 최적화 기법이다. 명령어 재배치 알고리즘을 루프(loop)에 적용하면서 서로 다른 반복(iteration) 사이의 동시 수행 가능한 명령어들이 인접한 위치로 모여지는 소프트웨어 파이프라인(software pipeline)된 루프가 얻어진다. 그러나 루프로부터 병렬성을 추출하는 소프트웨어 파이프라인 방법은 주로 명령어사이의 자료 종속성에 근거하여 스케줄링을 수행하므로 그 자체에 무한한 병렬성을 가지고 있는 벡터 루프의 경우 그 병렬성을 충분히 드러내지 못한다는 문제점을 안고 있다. 본 논문에서는 이러한 벡터루프에 대해 프로그램의 목적 코드 레벨에서 행해질 수 있는 새로운 벡터 스케줄링 방법을 제안한다. 벡터 스케줄링 방법은 프로그램의 목적 코드 레벨에서 루프의 구조나 반복 조건, 그리고 자료 종속성 등에 대한 전체적인 정보에 기반하여 스케줄링을 수행함으로써 소프트웨어 파이프라인 방법보다 프로그램의 수행속도를 향상시킬 수 있다. 본 논문에서는 벡터 스케줄링을 수행한 결과를 전통적인 소프트웨어 파이프라인 방법에 대해 생산된 병렬 루프의 결과와 수행속도 측면에서 비교한다.

  • PDF

응용프로그램에 특화된 명령어를 통한 고정 소수점 오디오 코덱 최적화를 위한 ADL 기반 컴파일러 사용 (Using a H/W ADL-based Compiler for Fixed-point Audio Codec Optimization thru Application Specific Instructions)

  • 안민욱;백윤흥;조정훈
    • 정보처리학회논문지A
    • /
    • 제13A권4호
    • /
    • pp.275-288
    • /
    • 2006
  • 빠른 디자인 공간 탐색 (Design space exploration)은 응용 프로그램의 동작을 구현하기 위한 임베디드 시스템을 디자인하는데 매우 중요하다. Time-to-market이 디자인의 주관심사가 되어감에 따라 ASIP(Application specific instruction-set processor)에 기반한 접근 방식이 디자인 방법론적으로 중요한 대안이 되고 있다. 이러한 접근 방식에서는 타깃 프로세서의 ISA(Instruction set architecture)를 코드 크기와 실행 속도 측면에서 응용 프로그램에 가장 적합하도록 변경한다. 본 논문의 목적은 우리의 새로운 재겨냥성 컴파일러를 소개하고, 많이 알려진 디지털 신호 처리용 응용 프로그램을 위한 ASIP 기반 디자인 공간 탐색에서 컴파일러가 어떻게 활용될 수 있는지 설명하고자 하는 것이다. 새롭게 개발된 재겨냥성 컴파일러는 이전의 재겨냥성 컴파일러의 기능을 제공할 뿐만 아니라 application 프로그램의 특징을 시각화하고 application 프로그램의 프로파일된 결과를 제공하므로 application의 성능을 증가시키기 위해 어떤 명령어들을 넣어야 하는지를 결정하는데 도움을 준다. 재겨냥성 컴파일러의 ADL(Architecture description language)를 이용하여 타깃 프로세서의 초기 RISC-style ISA을 기술하고, 컴파일러가 응용 프로그램을 위한 어셈블리 코드를 더 최적화할 수 있도록 응용 프로그램에 특화된 명령어를 ISA에 점진적으로 추가해 나간다. AC3 오디오 codec을 위한 실험 결과로부터 우리는 32%의 성능 증가와 20%의 프로그램 크기 감소를 얻을 수 있는 6개의 새로운 특화 명령어를 빠르게 찾을 수 있었다. 따라서 우리는 고성능의 재겨냥성 컴파일러는 특정 응용 프로그램을 위한 새로운 ASIP의 빠른 디자인을 하기 위한 중요한 핵심이라는 것을 확인할 수 있었다.

목적 코드에서 LNOP 코드가 제거됨에 따른 SVLIW 구조의 성능 향상 (Performance Improvement of SVLIW Architectures by Removing LNOPs from An Object Code)

  • 정보윤;전중남;김석일
    • 한국정보처리학회논문지
    • /
    • 제4권9호
    • /
    • pp.2269-2279
    • /
    • 1997
  • SVLIW (Superscalar VLIW) 프로세서는 실시간에 긴 명령어를 스케줄하는 VLIW 프로세서의 일종으로 인출되어 실행될 긴 명령어가 사용할 자원과 앞서 인출되어 수행중인 긴 명령어가 사용하는 자원간에 충돌이 발생하면 인출하여 실행하려는 긴 명령어를 수행하지 않고 NOP으로만으로 구성된 긴 명령어(LNOP: Long NOP word)를 할당하여 긴 명령어간의 충돌로 인한 계산의 오류를 피한다. 따라서 SVLIW 프로세서에서는 목적 코드 내에서 LNOP을 제거할 수 있다. 본 논문에서는 목적 코드에서 LNOP이 제거됨에 따라 캐쉬 적중률이 얼마나 향상되는지를 분석하고 이로 인하여 예상되는 성능 향상을 연구하였다. 여러 가지의 벤치 마크 프로그램에 대한 모의 실험 결과, SVLIW 프로세서 구조는 기존의 VLIW 프로세서 구조에 비하여 성능이 5%이상 향상됨이 확인될 수 있었다.

  • PDF

재목적 코드 생성 기법을 이용한 자바 Bytecode에서 SPARC 코드로의 번역 (Translating Java Bytecode to SPARC Code using Retargetable Code Generating Techniques)

  • 오세만;정찬성
    • 한국정보과학회논문지:컴퓨팅의 실제 및 레터
    • /
    • 제6권3호
    • /
    • pp.356-363
    • /
    • 2000
  • 자바 프로그래밍 언어는 인터넷 및 분산 네트워크 환경에서 효과적으로 수행될 수 있도록 설계된 언어이다. 그러나 각 플랫폼에서 인터프리터 방식으로 실행된다는 단점을 가지고 있기 때문에, 자바 프로그램을 효율적으로 실행하기 위해서는 Bytecode를 목적 기계 코드인 SPARC 코드로 변환하는 코드 생성 시스템이 개발되어야 한다. 본 논문에서는 재목적 코드 생성 기법을 이용하여 Bytecode를 SPARC 코드로 변환하는 코드 생성 시스템을 구현하였다. 이를 위해 Bytecode로부터 SPARC 코드 생성 규칙을 기술한 Bytecode 테이블을 작성하였고, 클래스 파일을 입력으로 받아 Bytecoed를 코드 확장시에 적합한 형태로 변환하는 정보추출기를 구현하였다. 정보추출기가 Bytecode 명령어의 피연산자에 대한 상수 기억장소의 엔트리를 결정한 후, 코드 확장기가 변경된 Bytecode를 Bytecode 테이블에 따라 SPARC 코드로 변환한다. 또한, 재목적 코드 생성 시스템은 다양한 목적 기계 코드를 생성하기 위해 체계적으로 재구성될 수 있다.

  • PDF

삭제된 파일 조각에서 기계어 코드 유사도를 이용한 악의적인 파일 탐지에 대한 연구 (A Study of Detecting Malicious Files using Similarity between Machine Code in Deleted File Slices)

  • 류동주;이석봉;김민수
    • 정보보호학회논문지
    • /
    • 제16권6호
    • /
    • pp.81-93
    • /
    • 2006
  • 컴퓨터 포렌식스에서 파일 시스템은 사이버범죄의 증거를 수집할 수 있는 대상이다. 이에 따라 파일 시스템을 복구하고 중요한 정보를 찾는 방법은 많이 제시되고 있다. 그러나 조각난 파일이나 파일 지스러기 공간에서 악성 파일을 찾는 방법은 제시되고 있지 않다. 본 논문에서는 파일 조각이 악의적인 파일인지를 조사하는 방법을 제시한다. 조각 파일 내의 기계어 코드 비율을 검사하여 실행파일인지를 판단하고, 명령어 시퀀스 유사도를 비교하여 악성파일인지를 판단한다. 명령어 시퀀스 유사도를 검사하기 위해, HMM을 이용하여 악성 파일을 프로파일링하고 연속된 평가값을 비교하는 방법을 제시한다. 이러한 방법을 적용하여 적절한 임계 수준에서 버퍼오버플로우 공격 특성을 갖는 악의적인 실행 파일을 정확히 가려낼 수 있었다.

확장 명령어 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

불필요한 코드 모션 억제를 위한 배정문 모션 (An Assignment Motion to Suppress the Unnecessary Code Motion)

  • 신현덕;이대식;안희학
    • 인터넷정보학회논문지
    • /
    • 제9권1호
    • /
    • pp.55-67
    • /
    • 2008
  • 본 논문에서는 코드 최적화를 위하여 계산적으로나 수명적으로 제한이 없는 배정문 모션 알고리즘을 제안한다. 이 알고리즘은 지나친 레지스터의 사용을 막기 위하여 불필요한 코드 모션을 억제한다. 본 논문은 최종 최적화단계가 추가된 배정문 모션 알고리즘을 제안한다. 또한 기존 알고리즘의 술어의 의미가 명확하지 않은 것을 개선하였고 노드 단위 분석과 명령어 단위 분석을 혼용했기 때문에 발생하는 모호함도 개선하였다. 따라서 제안한 알고리즘은 불필요하게 중복된 수식이나 배정문의 수행을 피하게 함으로써, 프로그램의 불필요한 재계산이나 재실행을 하지 않게 하여 프로그램의 능률 및 실행시간을 향상시킨다.

  • PDF

불필요한 코드모션 억제를 위한 배정문 모션 알고리즘 (An Assignment Motion Algorithm to Suppress the Unnecessary Code Motion)

  • 신현덕;안희학
    • 정보처리학회논문지A
    • /
    • 제8A권1호
    • /
    • pp.27-35
    • /
    • 2001
  • 본 논문에서는 코드 최적화를 위하여 계산적으로나 수명적으로 제한이 없는 배정문 모션 알고리즘을 제안한다. 이 알고리즘은 지나친 레지스터의 사용을 막기 위하여 불필요한 코드 모션을 억제한다. 본 논문은 최종 최적화단계가 추가된 재정문 모션 알고리즘을 제안한다. 또한 기존 알고리즘의 술어의 의미가 명확하지 않은 것을 개선하였고 노드 단위 분석과 명령어 단위 분석을 혼용했기 때문에 발생하는 모호함도 개선하였다. 따라서 제안한 알고리즘은 불필요하게 중복된 수식이나 배정문의 수행을 피하게 함으로써, 프로그램의 불필요한 재계산이나 재실행을 하지 않게 하여 프로그램의 능률 및 실행시간을 향사시킨다.

  • PDF

동적 기호 실행을 이용한 그래프 기반 바이너리 코드 실행 경로 탐색 플랫폼 (Graph based Binary Code Execution Path Exploration Platform for Dynamic Symbolic Execution)

  • 강병호;임을규
    • 정보보호학회논문지
    • /
    • 제24권3호
    • /
    • pp.437-444
    • /
    • 2014
  • 본 논문에서는 그래프 기반의 바이너리 코드 동적 실행 경로 탐색 플랫폼을 제안한다. 바이너리 코드의 조건 분기 명령어를 노드(Node), 그 외의 명령어를 에지(Edge)로 구성된 그래프를 정의하며, 이 그래프를 기반으로 하여 실행 경로 탐색을 수행하는 방안을 제안한다. 실험을 통해 제안하는 그래프 기반 바이너리 코드 실행 경로 탐색 플랫폼의 프로토타입이 실행 경로 탐색을 올바르게 수행함을 확인하였으며, 본 논문에서 제안하는 방안을 통해 소프트웨어 테스팅을 보다 효과적으로 수행하여 소프트웨어 보증, 시큐어 프로그래밍 및 악성 프로그램 분석 등을 보다 효과적으로 수행할 수 있을 것으로 기대한다.

다중 메모리 뱅크 구조를 위한 고속의 자료 할당 기법 (Rapid Data Allocation Technique for Multiple Memory Bank Architectures)

  • 조정훈;백윤홍;최준식
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2003년도 가을 학술발표논문집 Vol.30 No.2 (1)
    • /
    • pp.196-198
    • /
    • 2003
  • Virtually every digital signal processors(DSPs) support on-chip multi- memory banks that allow the processor to access multiple words of data from memory in a single instruction cycle. Also, all existing fixed-point DSPs have irregular architecture of heterogeneous register which contains multiple register files that are distributed and dedicated to different sets of instructions. Although there have been several studies conducted to efficiently assign data to multi-memory banks, most of them assumed processors with relatively simple, homogeneous general-purpose resisters. Therefore, several vendor-provided compilers fer DSPs were unable to efficiently assign data to multiple data memory banks. thereby often failing to generate highly optimized code fer their machines. This paper presents an algorithm that helps the compiler to efficiently assign data to multi- memory banks. Our algorithm differs from previous work in that it assigns variables to memory banks in separate, decoupled code generation phases, instead of a single, tightly-coupled phase. The experimental results have revealed that our decoupled algorithm greatly simplifies our code generation process; thus our compiler runs extremely fast, yet generates target code that is comparable In quality to the code generated by a coupled approach

  • PDF