• 제목/요약/키워드: 분기 명령어

검색결과 70건 처리시간 0.035초

Thumb-2 명령어 집합 구조의 병렬 분기 명령어 확장 (Parallel Branch Instruction Extension for Thumb-2 Instruction Set Architecture)

  • 김대환
    • 한국컴퓨터정보학회논문지
    • /
    • 제18권7호
    • /
    • pp.1-10
    • /
    • 2013
  • 본 논문에서는 Thumb-2 명령어 집합 구조의 성능을 개선하기 위하여 분기 명령어와 사용 빈도가 높은 명령어를 동시에 실행하는 병렬 분기 명령어 집합을 제시한다. 제시된 기법에서는 16비트 분기 명령어와 사용 빈도가 높은 16비트 LOAD, ADD, MOV, STORE, SUB 명령어를 각각 결합하는 새로운 32비트 명령어를 도입한다. 새로운 명령어의 인코딩 공간을 제공하기 위해 사용 빈도가 낮은 기존 명령어의 레지스터 필드에 사용되는 비트 수를 줄이고 이를 통해 절약된 비트들을 이용하여 병렬 분기 명령어를 인코딩한다. 실험 결과, 제시된 방법은 코드 크기를 증가시키지 않고 전통적인 방식과 비교하여 평균 8.0%의 성능을 향상시킨다.

64비트 4-way 수퍼스칼라 마이크로프로세서의 효율적인 분기 예측을 수행하는 프리페치 구조 (A Prefetch Architecture with Efficient Branch Prediction for a 64-bit 4-way Superscalar Microprocessor)

  • 문상국;문병인;이용환;이용석
    • 한국통신학회논문지
    • /
    • 제25권11B호
    • /
    • pp.1939-1947
    • /
    • 2000
  • 본 논문에서는 명령어의 효율적인 페치를 위해 분기 타겟 주소 전체를 사용하지 않고 캐쉬 메모리(cache memory) 내의 적은 비트 수로 인덱싱 하여 한 클럭 사이클 안에 최대 4개의 명령어를 다음 파이프라인으로 보내줄 수 있는 방법을 제시한다. 본 프리페치 유닛은 크게 나누어 3개의 영역으로 나눌 수 있는데, 분기에 관련하여 미리 부분적으로 명령어를 디코드 하는 프리디코드(predecode) 블록, 타겟 주소(NTA : Next Target Address) 테이블 영역을 추가시킨 명령어 캐쉬(instruction cache) 블록, 전체 유닛을 제어하고 가상 주소를 관리하는 프리페치(prefetch) 블록으로 나누어진다. 사용된 명령어들은 SPARC(Scalable Processor ARChitecture) V9에 기준 하였고 구현은 Verilog-HDL(Hardwave Description Language)을 사용하여 기능 수준으로 기술되고 검증되었다. 구현된 프리페치 유닛은 명령어 흐름에 분기가 존재하더라도 단일 사이클 안에 4개까지의 명령어들을 정확한 예측 하에 다음 파이프라인으로 보내줄 수 있다. 또한 NTA를 사용한 방법은 같은 수의 레지스터 비트를 사용하였을 때 BTB(Branch Target Buffer)를 사용하는 방법과 비교하여 2배정도 많은 개수의 분기 명령 주소를 저장할 수 있는 장점이 있다.

  • PDF

제어 독립성을 이용한 분기 예상 실패 복구 메커니즘 (A Branch Misprediction Recovery Mechanism using Control Independence)

  • 윤성룡;신영호;박홍준;조영일
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2000년도 가을 학술발표논문집 Vol.27 No.2 (3)
    • /
    • pp.636-638
    • /
    • 2000
  • 제어 독립성(Control Independence)은 슈퍼스칼라 프로세서에서 명령어 수준 병렬성(Instruction-Level Parallelism)을 향상시키기 위한 중요한 요소로 작용하고 있다. 분기 예상기법(Branch Prediction Mechanism)에서 잘못 예상될 경우에는 예상한 분기 방향의 명령어들을 제거하고 올바른 분기 방향의 명령어들을 다시 반입하여 수행해야 한다. 본 논문에서는 컴파일 시 프로파일링을 통한 정적인 방법과 프로그램상의 제어 흐름을 통해 동적으로 제어 독립적인 명령어를 탐지함으로써 분기 명령어의 잘못된 예상으로 인해 제거되는 명령어를 효과적으로 감소시켜 프로세서의 성능을 향상시키는 메커니즘을 제안한다. SPECint95 벤치마크 프로그램에 대해 기존의 방법과 본 논문에서 제안한 방법 사이의 사이클 당 수행된 명령어 수를 분석한 결과, 4-width 프로세서에서 4%~6%, 8-width 프로세서에서 11%~18%, 16-width 프로세서에서 15%~17%의 성능 향상을 보이고 있다.

  • PDF

제어 독립적인 명령어의 선택적 복구 메커니즘 (A Selective Recovery Mechanism of Control-Flow Independent Instructions)

  • 윤성룡;신영호;조영일
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2002년도 가을 학술발표논문집 Vol.29 No.2 (1)
    • /
    • pp.715-717
    • /
    • 2002
  • 최신의 프로세서는 분기명령에 의한 파이프라인 지연을 피하기 위해 분기 예상 기법을 사용하고 있다. 그러나 예측기에서 예상이 잘못된 경우에는 예상한 분기 방향의 명령어들을 무효화시키고 올바른 분기 방향의 명령어들을 다시 반입하여 수행시키므로 서 수행 사이클과 하드웨어 자원을 낭비하게된다. 본 논문에서는 컴파일 시 프로파일링을 통한 정적인 방법과 프로그램상의 제어 흐름을 통해 동적으로 제어 독립적인 명령어를 탐지해서 분기 명령어의 잘못된 예상으로 인해 무효화되는 명령어를 효과적으로 감소시켜 프로세서의 성능을 향상시키는 메커니즘을 제안한다. SPECint95 벤치마크 프로그램에 대해 기존의 방법과 본 논문에서 제안한 방법 사이의 사이클 당 수행된 명령어 수를 분석한 결과, 4-이슈 프로세서에서 2%-7%, 8-이슈 프로세서에서 4%-l5%, 16-이슈 프로세서에서 18%-28%의 성능 향상을 보이고 있다.

  • PDF

리눅스 커널을 위한 함수 단위 업데이트 성능 개선 기법 (Improving Function-level Update Performance For Linux Kernel)

  • 임병홍;김인혁;엄영익
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2009년도 춘계학술발표대회
    • /
    • pp.920-923
    • /
    • 2009
  • 기존의 동적 커널 업데이트 시스템에서 주로 사용되는 함수 단위의 재구성 기법으로는 트랩과 점프가 있다. 이러한 기법들을 사용하면 커널 서비스의 중단 없이 함수 단위로 커널을 업데이트할 수 있는 이점이 있다. 하지만 커널 업데이트 후, 프로세서가 분기 명령어를 처리하는 과정에 두 가지 문제점이 존재한다. 업데이트 함수에 업데이트가 필요한 함수 내의 분기 명령어 오퍼랜드 값을 그대로 복사하면 의미 없는 메모리 주소로 분기하게 된다. 또한 분기 명령어로 short jump를 사용하면, 현재 위치에서 8 비트 범위를 벗어난 주소공간에 존재하는 분기 함수에는 접근을 할 수 없는 문제를 안고 있다. 본 논문에서는 이러한 문제점들을 해결하기 위해 short jump 대신 long jump를 사용하는 방식을 제안하였다. 이를 위해 업데이트가 필요한 함수의 분기 명령어가 갖고 있는 오퍼랜드 값을 추출하여, 업데이트 함수의 분기 명령어가 정상적으로 동작할 수 있도록 오퍼랜드 값을 수정해주는 동적 커널 업데이트 시스템을 설계하고 구현하였다.

프로그램 상의 제어 독립성을 이용한 분기 예상 실패 복구 메커니즘 (Branch Misprediction Recovery Mechanism That Exploits Control Independence on Program)

  • 윤성룡;이원모;조영일
    • 한국정보과학회논문지:시스템및이론
    • /
    • 제29권7호
    • /
    • pp.401-410
    • /
    • 2002
  • 제어 독립성은 슈퍼스칼라 프로세서에서 명령어 수준 병렬성을 향상시키기 위한 중요한 요소로 작용하고 있다. 분기 예측기에서 예상이 잘못된 경우에는 예상한 분기 방향의 명령어들을 무효화시키고 올바른 분기 방향의 명령어들을 다시 반입하여 수행해야 한다. 본 논문에서는 컴파일 시 프로파일링을 통한 정적인 방법과 프로그램상의 제어 흐름을 통해 동적으로 제어 독립적인 명령어를 탐지해서 분기 명령어의 잘못된 예상으로 인해 무효화되는 명령어를 효과적으로 감소시켜 프로세서의 성능을 향상시키는 메커니즘을 제안한다. SPECint95 벤치마크 프로그램에 대해 기존의 방법과 본 논문에서 제안한 방법 사이의 사이클 당 수행된 명령어 수를 분석한 결과, 4-이슈 프로세서에서 2%~7%, 8-이슈 프로세서에서 4%~15%, 16-이슈 프로세서에서 18%~28%의 성능 향상을 보이고 있다.

효율적인 분기 예측을 위한 공유 구조의 BTB (A Combined BTB Architecture for effective branch prediction)

  • 이용환
    • 한국정보통신학회논문지
    • /
    • 제9권7호
    • /
    • pp.1497-1501
    • /
    • 2005
  • 프로그램의 순차적인 실행 순서를 바꾸는 명령어를 분기 명령어라 하며, 분기는 마이크로프로세서의 파이프라인 정지를 일으켜 성능을 저하시키는 가장 큰 원인이 된다. 이에 따라 분기를 정확히 예측하여 다음 실행될 명령어를 제공한다면 마이크로프로세서의 자연스런 명령어의 실행 흐름은 끊어지지 않게 되고 이로써 논은 성능의 향상을 기대할 수 있게 된다. 분기 예측을 위해서는 분기 타겟 버퍼가 필수적이며, 분기 타겟 버퍼는 분기 예측 결과에 따라 다음에 실행할 명령어의 주소를 제공한다. 본 논문에서는 가상주소를 실제주소로 바꾸어 주는 TLB와 분기 타겟 버퍼가 각각 가지고 있는 태그 메모리를 함께 사용하는 구조를 제안한다. 이러한 공유 태그 구조의 이점은 2재의 태그 메모리를 하나로 공유함으로써 칩 면적의 감소를 꾀하고 더불어 분기 예측 속도를 향상시킬 수 있다는 점이다. 또한, 본 논문에서 제안된 구조는 주소로 사용되는 비트 수가 커지거나 여러 개의 명령어를 동시에 실행할 수 있는 구조에서 그 이점이 더욱 커지기 때문에 향후 개발되는 마이크로프로세서에서 유용하게 사용될 수 있을 것으로 기대된다.

명령어 연관성 분석을 통한 가변 입력 gshare 예측기 (Variable Input Gshare Predictor based on Interrelationship Analysis of Instructions)

  • 곽종욱
    • 한국컴퓨터정보학회논문지
    • /
    • 제13권4호
    • /
    • pp.19-30
    • /
    • 2008
  • 분기 히스토리는 분기 예측기의 주된 입력 요소로 사용된다. 따라서 적절한 분기 히스토리의 사용은 분기 예측의 정확도 향상에 큰 영향을 미친다. 본 논문에서는 분기 예측의 정확도를 향상시키기 위한 방법의 하나로, 명령어의 연관성 분석을 통한 선별적 분기 히스토리 사용 기법을 제안한다. 우선, 본 논문에서는 명령어의 연관성을 분석하는 세 가지 서로 다른 알고리즘을 제안한다. 제안된 기법은 명령어의 레지스터 쓰기 연산에 기반하는 방법, 분기 명령어의 참조 레지스터에 기반하는 방법, 그리고 이들 두 가지 방식을 상호 결합하는 방법이다. 또한, 제안된 세 가지 알고리즘의 실질적 구현을 위해 이를 적용할 수 있는 가변 입력 gshare 예측기를 제안한다. 본 논문에서는 모의실험을 통해 세 가지 알고리즘의 특징 및 장단점을 비교 분석한다. 특히, 기존의 고정된 입력을 사용하는 방식과 비교하여 제안된 기법의 성능 향상의 정도를 분석하며, 사전 프로파일링을 통해 얻어진 최적의 입력에 대한 성능상의 차이도 소개한다.

  • PDF

수퍼스칼라 프로세서에서 명령어 패치의 해석적 모델 및 성능분석 (Analytical Models of Instruction Fetch and Performance Analyses on Superscalar Processors)

  • 김선모;정진하;최상방
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2000년도 봄 학술발표논문집 Vol.27 No.1 (A)
    • /
    • pp.9-11
    • /
    • 2000
  • 최근에 캐쉬의 성능이 전체 시스템에 미치는 영향이 커짐에 따라 캐쉬의 성능을 모델링하고 향상시키기 위한 많은 연구가 진행되고 있다. 본 논문에서는 네 가지 종류의 캐쉬모델을 가정하고 분기명령어 비율, 캐쉬미스율, 분기예측 실패율 등의 파라메터를 이용하여 수퍼스칼라 프로세서에서의 명령어 패치율을 해석적으로 모델링하였다. 시뮬레이션 결과 분기예측실패가 명령어 패치율에 미치는 영향보다는 캐쉬미스율이나 캐쉬미스 패널티의 증가로 인한 패치율의 감소가 더욱 큰 폭으로 나타났다.

  • PDF

간단한 전역 분기 히스토리 복구 메커니즘 (Simple Recovery Mechanism for Global Branch History)

  • 깅주익;고광현;조영일
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2005년도 한국컴퓨터종합학술대회 논문집 Vol.32 No.1 (A)
    • /
    • pp.808-810
    • /
    • 2005
  • 조건 분기예측실패는 많은 사이클을 낭비시키며, 비순서적 실행을 방해하고, 잘못 예측된 명령어들을 수행하게 되므로 전력을 낭비한다. gshare와 GAg같은 전역 히스토리를 기반으로 하는 예측기에서는 히스토리의 명령어 완료시간 갱신(commit update)에 의해 많은 분기예측실패가 발생한다. 이를 위해 히스토리를 모험적으로 갱신하고, 분기예측실패 시 히스토리를 복구시키는 메커니즘에 관한 연구들이 제시되었다. 본 논문에서는 기존 분기예측기에 age_Counter를 추가하여 미해결 분기명령어 수를 저장하며, 이를 분기예측실패 후 분기 히스토리 레지스터를 복구하는데 사용하는 간단한 복구 메커니즘을 제안한다. SimpleScalar 3.0/PISA 툴셋과 SPECINT95 벤치마크 프로그램에서 시뮬레이션 한 결과, 제안된 복구 메커니즘은 GAg와 gshare 예측기에서 예측정확도는 각각 $9.21\%$$2.14\%$가 개선되었고, IPC는 $18.08\%$$8.75\%$ 개선되었다.

  • PDF