• 제목/요약/키워드: Execution Code

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

Multicore-Aware Code Co-Positioning to Reduce WCET on Dual-Core Processors with Shared Instruction Caches

  • Ding, Yiqiang;Zhang, Wei
    • Journal of Computing Science and Engineering
    • /
    • 제6권1호
    • /
    • pp.12-25
    • /
    • 2012
  • For real-time systems it is important to obtain the accurate worst-case execution time (WCET). Furthermore, how to improve the WCET of applications that run on multicore processors is both significant and challenging as the WCET can be largely affected by the possible inter-core interferences in shared resources such as the shared L2 cache. In order to solve this problem, we propose an innovative approach that adopts a code positioning method to reduce the inter-core L2 cache interferences between the different real-time threads that adaptively run in a multi-core processor by using different strategies. The worst-case-oriented strategy is designed to decrease the worst-case WCET among these threads to as low as possible. The other two strategies aim at reducing the WCET of each thread to almost equal percentage or amount. Our experiments indicate that the proposed multicore-aware code positioning approaches, not only improve the worst-case performance of the real-time threads but also make good tradeoffs between efficiency and fairness for threads that run on multicore platforms.

Proposition and Evaluation of Parallelism-Independent Scheduling Algorithms for DAGs of Tasks with Non-Uniform Execution Time

  • Kirilka Nikolova;Atusi Maeda;Sowa, Masa-Hiro
    • 대한전자공학회:학술대회논문집
    • /
    • 대한전자공학회 2000년도 ITC-CSCC -1
    • /
    • pp.289-293
    • /
    • 2000
  • We propose two new algorithms for parallelism-independent scheduling. The machine code generated from the compiler using these algorithms in its scheduling phase is parallelism-independent code, executable in minimum time regardless of the number of the processors in the parallel computer. Our new algorithms have the following phases: finding the minimum number of processors on which the program can be executed in minimal time, scheduling by an heuristic algorithm for this predefined number of processors, and serialization of the parallel schedule according to the earliest start time of the tasks. At run time tasks are taken from the serialized schedule and assigned to the processor which allows the earliest start time of the task. The order of the tasks decided at compile time is not changed at run time regardless of the number of the available processors which means there is no out-of-order issue and execution. The scheduling is done predominantly at compile time and dynamic scheduling is minimized and diminished to allocation of the tasks to the processors. We evaluate the proposed algorithms by comparing them in terms of schedule length to the CP/MISF algorithm. For performance evaluation we use both randomly generated DAGs (directed acyclic graphs) and DACs representing real applications. From practical point of view, the algorithms we propose can be successfully used for scheduling programs for in-order superscalar processors and shared memory multiprocessor systems. Superscalar processors with any number of functional units can execute the parallelism-independent code in minimum time without necessity for dynamic scheduling and out-of-order issue hardware. This means that the use of our algorithms will lead to reducing the complexity of the hardware of the processors and the run-time overhead related to the dynamic scheduling.

  • PDF

스프링 서버 원격코드 실행 취약점(CVE-2018-1270)을 이용한 응용 공격 시나리오의 대응 방안 (Countermeasure of an Application Attack Scenario Using Spring Server Remote Code Execution Vulnerability (CVE-2018-1270))

  • 정병문;장재열;최철재
    • 한국전자통신학회논문지
    • /
    • 제14권2호
    • /
    • pp.303-308
    • /
    • 2019
  • 스프링 프레임워크는 우리나라 공공기관의 웹서비스 개발도구의 표준이라 할 만큼 전자정부 프레임워크의 기반 기술로 많이 사용되고 있다. 그러나 최근 스프링 프레임워크를 이용한 애플리케이션에서 원격코드 실행 취약점(CVE-2018-1270)이 발견되었다. 본 논문은 스프링 프레임워크를 서버를 대상으로 발생한 취약점의 위험성을 해킹 시나리오 POC(Proof Of Concept)를 이용한 취약점 실험 분석 방법을 제안한다. 종국적 대응방안으로 버전 4.3.16와 버전 5.0.5 이상으로 패치를 제안한다. 아울러 제안한 해킹시나리오 취약점 실험분석이 보안 프로그램의 성능향상 및 새로운 인증체계의 구축을 위한 자료로 활용될 것으로 기대한다.

JIT Code Generator 상의 스택할당 정책 적용에 관한 연구 (A study of the stack allocation policy on JIT Code Generator)

  • 김효남
    • 한국컴퓨터정보학회논문지
    • /
    • 제6권4호
    • /
    • pp.100-103
    • /
    • 2001
  • 자바프로그램의 실행속도를 빠르게 하는데 있어서 가장 좋은 방법은 빠른 자바가상머신(JVM : Java Virtual Machine)을 사용하는 것이다. 자바가상머신의 성능은 구현 차이에 따라 성능차이가 많이 난다. 자바가상머신을 구현하는데 있어서 가장 중요한 성능 향상의 기술은 JIT(Just-in-Time) 코드 생성기(Code Generator)이다. JIT 코드 생성기는 자바 바이트 코드를 플랫폼에 맞는 native machine code로 변환해 준다. 이 native code들은 자바가상머신에서 각 바이트 코드를 분석하는데 걸리는 시간을 단축할 수 있기 때문에 기존의 방식보다 빠르게 동작한다. 그러나 JIT 코드 생성기는 많은 레지스터를 사용하기 때문에 스택과 레지스터간의 traffic이 가중되는 문제가 있다. 그러므로 본 논문에서는 자바가상머신의 성능 향상을 위한 방안으로 효율적인 stack allocation 정책을 JIT 코드 생성기에 적용하여 레지스터와의 traffic을 감소시킬 수 있는 방안을 제시하였다.

  • PDF

Exploiting Thread-Level Parallelism in Lockstep Execution by Partially Duplicating a Single Pipeline

  • Oh, Jaeg-Eun;Hwang, Seok-Joong;Nguyen, Huong Giang;Kim, A-Reum;Kim, Seon-Wook;Kim, Chul-Woo;Kim, Jong-Kook
    • ETRI Journal
    • /
    • 제30권4호
    • /
    • pp.576-586
    • /
    • 2008
  • In most parallel loops of embedded applications, every iteration executes the exact same sequence of instructions while manipulating different data. This fact motivates a new compiler-hardware orchestrated execution framework in which all parallel threads share one fetch unit and one decode unit but have their own execution, memory, and write-back units. This resource sharing enables parallel threads to execute in lockstep with minimal hardware extension and compiler support. Our proposed architecture, called multithreaded lockstep execution processor (MLEP), is a compromise between the single-instruction multiple-data (SIMD) and symmetric multithreading/chip multiprocessor (SMT/CMP) solutions. The proposed approach is more favorable than a typical SIMD execution in terms of degree of parallelism, range of applicability, and code generation, and can save more power and chip area than the SMT/CMP approach without significant performance degradation. For the architecture verification, we extend a commercial 32-bit embedded core AE32000C and synthesize it on Xilinx FPGA. Compared to the original architecture, our approach is 13.5% faster with a 2-way MLEP and 33.7% faster with a 4-way MLEP in EEMBC benchmarks which are automatically parallelized by the Intel compiler.

  • PDF

EPIC 아키텍쳐를 위한 적극적 레지스터 할당 알고리듬 (An Aggressive Register Allocation Algorithm for EPIC Architectures)

  • 최준기;이상정
    • 한국정보처리학회논문지
    • /
    • 제6권2호
    • /
    • pp.497-511
    • /
    • 1999
  • 최근 많은 명령어 수준 병렬 처리 기술들이 개발되면서 ILP 프로세서 성능이 급격히 증가하고 있다. 특히, 새로운 기술로 주목 받고 있는 EPIC(Explicitly Parallel Instruction Computing) 아키텍쳐는 조건실행 (Predicated Execution)과 투기적실행(Speculative execution)을 하드웨어와 접목하여 성능 향상을 시도하고 있다. 본 논문에서는 EPIC 아키텍쳐의 특성을 최대로 활용하여 코드 스케줄 가능성을 높이는 새로운 레지스터 할당 알고리듬을 제안한다. 그리고, 제안된 레지스터 할당 알고리듬은 조건실행의 적용으로 인하여 더욱 효율을 높일 수 있음을 실험을 통하여 입증한다. 실험 결과 기존의 레지스터 할당 방법에 비하여 평균 19%의 성능 향상을 보임으로써 제안된 레지스터 할당 방법이 효과적임을 검증한다.

  • PDF

PLC용 uC/OS 운영체제의 보안성 강화를 위한 실행코드 새니타이저 (Executable Code Sanitizer to Strengthen Security of uC/OS Operating System for PLC)

  • 최광준;유근하;조성제
    • 정보보호학회논문지
    • /
    • 제29권2호
    • /
    • pp.365-375
    • /
    • 2019
  • PLC(Programmable Logic Controller)는 안전 지향 제어시스템(safety-critical control system)을 위한 실시간 임베디드 제어 애플리케이션들을 지원하는 고신뢰성의 산업용 디지털 컴퓨터이다. PLC의 실시간 제약조건을 만족시키기 위하여 uC/OS 등의 실시간 운영체제들이 구동되고 있다. PLC들이 산업제어 시스템 등에 널리 보급되고 인터넷에 연결됨에 따라, PLC 시스템을 대상으로 한 사이버 공격들이 증대되고 있다. 본 논문에서는, 통합 개발 환경(IDE)에서 개발된 프로그램이 PLC로 다운로드 되기 전에 실행 코드를 분석하여 취약성을 완화시켜 주는 "실행코드 새니타이저(sanitizer)"를 제안한다. 제안기법은, PLC 프로그램 개발 중에 포함되는 취약한 함수들과 잘못된 메모리 참조를 탐지한다. 이를 위해 취약한 함수 DB 및 이상 포인터 연산과 관련된 코드 패턴들의 DB를 관리한다. 이들 DB를 기반으로, 대상 실행 코드 상에 취약 함수들의 포함 여부 및 포인터 변수의 이상 사용 패턴을 탐지 제거한다. 제안 기법을 구현하고 실험을 통해 그 유효성을 검증하였다.

스트링 패턴 매칭 기법을 이용한 중간 코드 변환기의 설계 및 구현 (Design and Implementation of Intermediate Code Translator using String Pattern Matching Technique)

  • 고광만
    • 인터넷정보학회논문지
    • /
    • 제3권3호
    • /
    • pp.1-9
    • /
    • 2002
  • 자바 언어의 실행 속도를 개선하기 위해 전통적인 컴파일 방법을 사용하여 바이트 코드를 특정 프로세서에서 수행될 수 있는 목적기계 코드로 변환하는 다양한 연구가 진행중이다. 패턴 매칭을 이용한 코드 생성 기법은 코드 확장 기법에 비해 양질의 코드를 생성할 수 있는 장점을 가지고 있다. 본 연구에서는 바이트 코드로부터 효과적으로 네이티브 코드를 생성하기 위해 레지스터 기반의 중간 언어를 효율적으로 생성할 수 있는 정형화된 패턴 기술 방법과 패턴 매칭 기법에 대해 제시한다. 또한 기술된 정형화 패턴을 활용하여 양질의 레지스터 기반 중간 코드를 생성하는 중간 코드 변환기를 설계하고 구현하였다.

  • PDF

RISC 파이프라인 아키텍춰의 코드 최적화 알고리듬 (A Code Optimization Algorithm of RISC Pipelined Architecture)

  • 김은성;임인칠
    • 대한전자공학회논문지
    • /
    • 제25권8호
    • /
    • pp.937-949
    • /
    • 1988
  • This paper proposes a code optimization algorithm for dealing with hazards which are occurred in pipelined architecture due to resource dependence between executed instructions. This algorithm solves timing hazard which results from resource conflict between concurrently executing instructions, and sequencing hazard due to the delay time for branch target decision by reconstructing of instruction sequence without pipeline interlock. The reconstructed codes can be generated efficiently by considering timing hazard and sequencing hazard simultaneously. And dynamic execution time of program is improved by considering structral hazard which can be existed when pipeline is controlled dynamically.

  • PDF

임베디드 시스템 가상화를 위한 동적 이진 변환기의 변환 블록 최적화 (Translated Block Optimization of Dynamic Binary Translator for Embedded System Virtualization)

  • 황원준;박시형;김형신
    • 대한임베디드공학회논문지
    • /
    • 제12권6호
    • /
    • pp.385-393
    • /
    • 2017
  • As the use of mobile devices such as smartphones increases, there is growing interest on the benefits of virtualization in embedded systems. Full virtualization has the advantage of running the guest virtual machine without modifying the guest operating system. However, full virtualization suffers slow execution speed due to the cost of context switching between the virtual machines and the virtual machine monitor. In this paper, we propose a translated block and context switching optimization to improve the guest execution speed in the embedded system. As a result, the improved dynamic binary translator is up to 5.95 times faster than the native execution. Performance degradation is less than that of the other virtualization system.