RISS 학술연구정보서비스

검색
다국어 입력

http://chineseinput.net/에서 pinyin(병음)방식으로 중국어를 변환할 수 있습니다.

변환된 중국어를 복사하여 사용하시면 됩니다.

예시)
  • 中文 을 입력하시려면 zhongwen을 입력하시고 space를누르시면됩니다.
  • 北京 을 입력하시려면 beijing을 입력하시고 space를 누르시면 됩니다.
닫기
    인기검색어 순위 펼치기

    RISS 인기검색어

      검색결과 좁혀 보기

      선택해제
      • 좁혀본 항목 보기순서

        • 원문유무
        • 원문제공처
        • 등재정보
        • 학술지명
          펼치기
        • 주제분류
        • 발행연도
          펼치기
        • 작성언어
        • 저자
          펼치기

      오늘 본 자료

      • 오늘 본 자료가 없습니다.
      더보기
      • 무료
      • 기관 내 무료
      • 유료
      • KCI우수등재

        병렬화 코드의 트리 표현을 이용한 명령어 수준의 병렬성 향상

        문수묵(Soo-Mook Moon) 한국정보과학회 1995 정보과학회논문지 Vol.22 No.4

        최근의 단일 CPU 마이크로 프로세서들은 명령어 수준의 병렬 처리를 이용하여 성능 향상을 시키고 있다. 이러한 프로세서들의 성능 향상은 주로 한 클럭 싸이클에 여러 개의 ALU 명령이나 메모리 명령어들을 병렬로 수행하여 얻어진다. 그러나 조건 분기 명령어들이 많은 비 계산용 프로그램에서는 이러한 데이타 명령어들만의 병렬 수행으로 얻어진 성능 향상이 조건 분기 명령어들의 순차적 수행 때문에 상쇄되고 있다. 이러한 한계를 극복하기 위해서는 병렬 처리가, 분기 명령어들과 데이타 명령어들의 병렬 수행, 그리고 여러 분기 명령어들의 병렬 수행으로 확대되어야 한다. 본 논문에서는 이러한 확대된 병렬 처리가, 가장 일반화된 병렬 코드의 형태로 표현된 “트리 형”을 제안하고, 이 트리 형을 평가 하기 위해 광범위한 실험 연구를 수행하였다. 본 실험 결과에 따르면, 점점 더 많은 데이타 명령어들이 병렬 수행됨에 따라 제안된 트리 형은 분기 명령어들을 순차적으로 수행할 때에 비해 상당한 (두 배 정도의) 성능 향상을 가져 왔다. Modern single-CPU microprocessors attempt to improve their performance by exploiting instruction-level parallelism (ILP). These ILP-machines derive their performance advantage mostly from parallel execution of ALU or memory instructions within a single clock cycle. Unfortunately, the performance benefit obtained from parallel execution of these data instructions is severely offset by sequential execution of conditional branches, especially in non-numerical code where conditional branches are relatively frequent. In order to cope with this limitation, exploitation of parallelism must be extended to concurrent execution of data and branch instructions, as well as to parallel execution of multiple branches in a single cycle. This paper introduces a new representation of parallelized code called “tree representation” that allows this extension in the most generalized form. We performed a comprehensive empirical study aimed to evaluate the representation. The results indicate that, as more data instructions are executed in parallel, the performance benefit arising from the proposed representation becomes quite notable (i e , as much as twice) than the case of sequential execution of conditional branches.

      • 다중 포트 캐쉬를 이용한 VLIW 프로세서의 캐쉬 대역폭 향상 방안

        문수묵(Soo-Mook Moon) 한국정보과학회 1996 정보과학회논문지 : 시스템 및 이론 Vol.23 No.5

        Modern microprocessors that exploit instruction-level parallelism (ILP) require higher data cache bandwidth than sequential machines since at least the same number of cache references must be made in fewer clock cycles. In order to support the required bandwidth, multi-port caches have been proposed, allowing the execution of multiple load/store instructions in a single cycle Deciding the minimal number of cache ports that do not deeply affect performance is one of major resource allocation problems of ILP machines. Unfortunately, this decision is difficult to make for machines that exploit ILP in non-numerical code due to its irregularity. In this short paper, a comprehensive empirical study is performed on selected integer benchmarks using an aggressive ILP compiler aimed at characterizing a suitable number of cache ports and at evaluating the metric of cache bandwidth. Our study differs from previous ones in that the complier better exploits ILP in proportion to the amount of resources, thus measuring the performance impact of multi-port caches more accurately. Our results indicate that multi-port caches that provide high bandwidth significantly improve the performance of ILP machines, yet there is a consistent upper bound on the number of required ports. 명령어 수준의 병렬 처리 기법을 사용하는 VLIW 마이크로프로세서는 순차적 프로세서에 비해 같은 수의 캐쉬 참조를 더 짧은 시간에 해야 하므로 더 높은 케쉬 대역폭을 요구한다. 필요한 캐쉬 대역폭을 지원하기 위해 한 싸이클에 여러 load/store 인 명령어들을 동시에 수행시키는 다중 포트 캐쉬가 제안되었는데, VLIW 성능에 영향을 미치지 않는 최소의 포트 수를 결정하는 것이 중요한 자원 할당 문제로 등장하였다. 그러나, 비 계산용 코드를 목적으로 하는 VLIW에서는 코드의 불규칙한 병렬성 때문에 포트 수를 결정하기가 쉽지 않다. 본 연구에서는 적당한 포트 수와 캐쉬 대역폭을 평가하기 위해 강력한 컴파일러를 이용하여 선택된 정수 벤치마크에서 광범위한 실험 연구를 수행하였다. 본 연구에서 사용된 컴파일러는 과거의 연구들에 비해 병렬성을 더 많이 찾아내므로 다중 포트 캐쉬의 성능을 더 정확하게 측정하고 있다. 본 실험 결과에 따르면 다중 포트 캐쉬는 캐쉬 대역폭과 VLIW의 성능을 증가시키며 필요한 포트 수에는 일정한 제한이 있다.

      • KCI우수등재

        정적 스케쥴링된 ILP 마이크로 프로세서의 성능과 효율

        문수묵(Soo-Mook Moon) 한국정보과학회 1995 정보과학회논문지 Vol.22 No.2

        최근의 마이크로 프로세서들은 명령어 수준의 병렬처리를 이용하여 성능향상을 꾀하고 있다. 비계산용 프로그램에서는 코드 구조가 불규칙하기 때문에, 이러한 명령어 수준의 병렬처리가 쉽지 않다고 알려져 왔다. 이런 비계산용 프로그램의 병렬처리를 위해, 최근에 우리는 슈퍼스칼라 프로세서나 VLIW 프로세서에서 사용할 수 있는 스케쥴링 컴파일러를 개발하였다[1]. 본 논문에서는 이 스케쥴링 컴파일러를 이용하여, 정적으로 스케쥴된 프로세서의 성능과 효율성을 평가하고 컴파일러의 효율성을 살펴보기 위하여 광범위한 실험연구를 수행하였다. 본 실험 결과에 따르면, 구현 가능한 하드웨어에서 컴파일 시간과 코드 크기를 비효율적으로 증가시키지 않고도 다섯 배 정도의 성능향상을 얻을 수 있었으며, 적은 하드웨어에서도 역시 좋은 성능향상을 가지고 왔다. 이러한 결과는 불규칙적인 명령어 수준의 병렬처리에 대해 알려져 온 특성을 개선시켜 준다. Modern microprocessor attempt to boost their performance through instruction-level parallelism. Instruction-level parallelism in non-numerical program is regarded as scarce and bard to exploit due to its irregularity. Recently, we introduced a new code scheduling compiler [1] for VLIW or superscalar microprocessors to exploit the irregular parallelism. This paper performs a comprehensive empirical study based on the scheduling compiler to examine performance/efficiency of statically scheduled machines, and to assess the scheduling efficiency of the compiler. The results indicate that a five-fold speedup is achievable on realistic resources with a reasonable overhead of compilation time and code expansion, and that a solid speedup increase is also obtainable on machines with fewer resources. These results improve previously known characteristics of irregular ILP.

      • 동적 IF - 변환에 의한 EPS 의 성능 향상

        안재우(Jae-Woo Ahn),문수묵(Soo-Mook Moon) 한국정보과학회 1996 한국정보과학회 학술발표논문집 Vol.23 No.2B

        EPS (Enhanced Pipelining Scheduling) 알고리즘은 조건 분기문 역시 명령어 스케쥴링의 대상으로 삼는다. 명령어의 추축 코드 이동(speculative code motions)을 이용하여 조건 분기문 위로의 코드이동을 허용하는 EPS 알고리즘은 근본적으로 소프트웨어 파이프라이닝을 하고 있는 루프 내부의 조건 분기문의 갯수를 그대로 유지하거나 증가시키기 때문에 목적 프로세서 (target processor)의 조건 분기 명령어 수행 유닛의 갯수에 따라 루프의 병렬도에 대한 인공적인 상한 (artificial upper bound) 을 가질 수 밖에 없다. 이에 본 논문에서는 EPS 알고리즘이 진행되는 도중에 predication에 의해 조건 분기문을 없앰으로써 유용한 추측 수행을 최대한 허용한 뒤 원하는 조건 분기문을 없애는 동적 if-변환 방법을 제안하고 그 초기 실험 결과를 제시한다.

      • V8 CrankShaft 자바스크립트 엔진에 적용된 Adaptive Compilation의 성능 분석

        박혁우(Park HyukWoo),유영호(Yoo Young-ho),문수묵(문수묵) 한국정보과학회 2011 한국정보과학회 학술발표논문집 Vol.38 No.2A

        V8 자바스크립트 엔진은 Adaptive-Compilation 방식을 적용하여 자주 수행되는 핫스팟에 대해 최적화된 기계어 코드를 생성하여 추가적인 성능 향상을 꾀하고 있다. 본 논문에서는 V8 CrankShaft 자바스크립트 엔진에 적용된 Adaptive Compilation의 성능을 분석하였는데 그 결과 CrankShaft 방식은 복잡한 프로그램의 수행에 효과적이며 수행 환경에 따라 성능의 편차가 존재함을 확인할 수 있었다.

      • KCI등재후보

        작은 명령어 인코딩 프로세서를 위한 레지스터 뱅크 전환 방법의 평가

        이제형,문수묵,최형규,정동헌 한국차세대컴퓨팅학회 2009 한국차세대컴퓨팅학회 논문지 Vol.5 No.4

        내장형 시스템은 메모리의 제약으로 인해 흔히 작은 코드사이즈를 요구한다. ARM THUMB 이나 MIPS16 과 같 이 절반 크기의 인코딩을 갖는 아키텍쳐는 코드 사이즈를 성공적으로 줄였으나, 동시에 줄어든 레지스터 필드의 크 기로 인해 가용 레지스터 개수가 줄어들고 더 많은 스필(spill) 을 양산하여 코드 사이즈와 성능에 악영향을 준다. 한 가지 해결방법은 레지스터 구조에 뱅크를 도입하는 것이다. 이렇게 하면 기존의 모든 레지스터를 레지스터 할당 에 사용할 수 있어서 스필 이 줄어든다. 이 과정에서 효과적인 레지스터 할당기법이 필요하며 우리는 코드를 두 가 지 영역으로 분할하고 각 역을 서로 다른 뱅크에 할당하는 방법을 사용한다. 코드 분할에 영향을 미치는 중요한 요 소 중 하나는 뱅크 전환 메커니즘인데 지금까지 toggling 과 selection 방법이 소개되었다. Toggling 은 코드 분할 을 간단하게 해 주는 반면 selection 은 보다 유연한 코드 분할이 가능하기에 이론적으로는 레지스터 요구도를 더 잘 분배할 수 있다. 이 논문은 두 메커니즘을 두 개의 레지스터 뱅크를 가지는 동일한 환경에 구현하여 코드 사이 즈와 성능에서의 효과를 비교하고자 한다. 실험결과를 통해 selection 은 뱅크 간의 copy 가 과도하게 삽입되는 관 계로 toggling 에 비해 작은 코드나 높은 성능을 보여주지 못했다.

      • KCI등재

        메모리가 적은 자바 시스템을 위한 자동 동적 메모리 관리 기법

        최형규,문수묵,Choi, Hyung-Kyu,Moon, Soo-Mook 한국정보과학회 2008 정보과학회논문지 : 시스템 및 이론 Vol.35 No.8

        많은 내장형 시스템들이 자바(Java)를 널리 채택하고 있다. 내장형 시스템은 자바 가상 머신을 통해 자바를 지원하며, 자바 가상 머신은 쓰레기 수집기(Garbage Collector)를 통해서 동적 메모리를 자동으로 관리한다. 내장형 시스템은 적은 메모리를 가지고 있기 때문에 자바 가상 머신은 이를 효율적으로 관리해야 한다. 본 논문에서는 여러 자바 프로그램을 동시에 실행할 수 있는 자바 가상 머신에서 적은 메모리를 사용하면서도 효과적으로 메모리를 관리할 수 있는 메모리 관리 기법을 제안한다. 우선 개선된 압축(compaction)기법 기반의 쓰레기 수집 기법을 소개하여 움직일 수 없는 메모리 영역이 존재하더라도 외부 단편화(external fragmentation) 문제를 극복한다. 다음으로 수행 중 메모리 사용을 줄이기 위해서 쓰레기 수집기가 메모리에서 필요 없는 클래스(class)들을 선택적으로 수거하는 class unloading 기법을 소개한다. 소개한 기법들을 실제 동작하는 내장형 시스템에서 실험한 결과, 메모리가 부족하여 동시에 수행할 수 없었던 프로그램들이 같이 수행되는 등 매우 효과적이었다. Many embedded systems are supporting Java as their software platform via Java virtual machine. Java virtual machine manages memory automatically by providing automatic memory management, i.e. garbage collector. Because only scarce memory is available to embedded system, Java virtual machine should use small memory and manage it efficiently. This paper introduces two memory management techniques to exploit small memory in Java virtual machine which can execute multiple Java applications concurrently. First, compaction based garbage collection is introduced to overcome external fragmentation problem in presence of immovable memory area. Then garbage collector driven class unloading is introduced to reduce memory use of unnecessary loaded classes. We implemented these techniques in working embedded system and observed that they are very efficient, since more Java applications are able to be executed concurrently and memory use is also reduced with these techniques.

      • KCI우수등재

        리스트 스케줄링 시뮬레이터를 이용한 인스트럭션 우선도 함수 성능 분석

        정창훈,문수묵 한국정보과학회 2023 정보과학회논문지 Vol.50 No.12

        Instruction scheduling is an important compiler optimization technique, for reducing the execution time of a program by parallel processing. However, existing scheduling techniques show limited performance, because they rely on heuristics. This study examines the effect of instruction priority functions on list scheduling, through simulation. As a result, using a priority function based on the overall structure of the dependency graph can reduce schedule length by up to 4%, compared to using a priority function based on the original instruction order. Furthermore, the result gives a direction on which input features should be used when implementing a reinforcement learning-based scheduling model.

      • KCI우수등재

        엣지 컴퓨팅 환경에서의 딥 러닝 연산 오프로딩의 병렬 최적화

        신광용,문수묵 한국정보과학회 2022 정보과학회논문지 Vol.49 No.3

        Computation offloading to edge servers has been proposed as a solution to performing computation-intensive deep learning applications on devices with low hardware capabilities. However, the deep learning model has to be uploaded to the edge server before computation offloading is possible, a non-trivial assumption in the edge server environment. Incremental offloading of neural networks was proposed as a solution as it can simultaneously upload model and offload computation [1]. Although it reduced the model upload time required for computation offloading, it did not properly handle the model creation overhead, increasing the time required to upload the entire model. This work solves this problem by parallel optimization of model uploading and creation, decreasing the model upload time by up to 30% compared to the previous system. 컴퓨팅 자원이 부족한 디바이스에 연산량이 많은 딥 러닝 애플리케이션을 실행하기 위해 주변에 있는 서버에 연산을 오프로딩하는 엣지 컴퓨팅 기술이 제안되었다. 그러나 딥 러닝 연산을 오프로딩하기 위해서는 서버에 모델을 먼저 업로드해야 하는 단점이 있다. 이를 해결하기 위해 모델을 점진적으로 전송하는 동시에 서버가 클라이언트 연산을 대신 수행하는 점진적 오프로딩 시스템이 제안되었다[1]. 점진적 오프로딩 시스템은 오프로딩에 걸리는 시간을 크게 단축했으나, 모델 구축 시간을 고려하지 않아서 전체 모델 업로드 시간이 늘어나는 단점이 있었다. 본 논문은 모델 구축과 모델 업로드의 병렬 최적화를 통해 기존 시스템의 문제점을 해결해서 기존 시스템 대비 전체 모델 업로드 시간을 최대 30% 개선했다.

      연관 검색어 추천

      이 검색어로 많이 본 자료

      활용도 높은 자료

      해외이동버튼