1페이지는 원본 그대로, 2페이지부터는 흐리게 미리 보여 드려요. 구매하면 원본 파일 전체를 바로 다운로드할 수 있어요.
파이프라인 구조의 Intel 8051 호환 마이크로 컨트롤러를 가정한 머신 사이클 작용 방식 논의 글자 크게 보기
※ 1페이지는 원본 그대로 미리 볼 수 있어요. 구매하면 원본 파일 전체를 바로 다운로드할 수 있어요.
CISC 형태의 대표적인 Intel 8051 마이크로 컨트롤러와 명령어 수준에서 호환되면서 파이프라인 구조를 지닌 마이크로 컨트롤러를 가정하고, 프로그램 명령어를 CPU에서 처리할 때 머신 사이클이 어떻게 작용하는지 논의한 레포트입니다. 8051의 구성과 111개 명령어 세트를 소개하고, 1머신 사이클의 배수로 실행되는 기존 구조의 문제를 짚은 뒤 인출, 해독, 실행, 저장 단계별 동작과 분기 예측, 데이터 의존성 처리를 설명합니다.
3) 실행(Excute) : EX 스테이지는 제어 신호 및 오퍼랜드를 수신하고, 제어 신호에 따라 연산을 수행하고, 그 결과를 어큐뮬레이터에 저장하고, 저장해야 할 주소 및 데이터를 다음의 스테이지로 넘기는 역할을 담당한다. 각 블록들의 기능을 상세하게 설명하면 다음과 같다. bit_exe 블록은 비트 단위로 계산을 수행해야 하는 명령어를 처리하기 위한 블록이다. 각 명령어에 알맞게 비트 단위의 계산을 수행하고, 다음 스테이지로 데이터를 넘긴다. xch_decide 블록은 데이터를 교환하는 명령어에 해당하는 경우, 여기에서 데이터를 교환하기 위한 준비 작업을 담당한다. 이러한 데이터를 ALU로 보내, 계산을 수행하지 않고 곧바로 파이프라인 레지스터로 넘김으로써 수행은 완료된다. forwarding 블록은 데이터 해저드를 처리하는 블록에 속하는데, 현재의 명령어가 실행 중에 앞의 명령어가 모두 실행 된 다음 데이터를 필요로 하게 될 시, 이 때 필요한 데이터를 실행되기 이전에 보유하고 있다가, 현재의 명령어에 제공하는 역할을 담당한다. ALU는 산술 연산 및 논리 연산을 모두 다 실행하는 곳으로, 캐리를 처리하는 블록이 존재하며 8비트 단위로 한 번의 계산이 가능하게 된다. 이어서 conditional branch 블록은 조건 분기에 해당되는 명령어를 실행하는 곳이다. 이 곳에 또 하나의 덧셈기가 있어, 조건 분기 이외에 덧셈의 계산을 담당하는 곳이기도 하다. mul_div는 곱셈 및 나눗셈을 계산하며 계산 후의 결과를 파이프레지스터에 전달하게 된다. djnz_wbdt 블록은 한 가지의 데이터를 1만큼 감소시키며, 점프의 여부를 결정할 때 이를 연산하는 곳이다.
4) 저장(Store) : 저장 스테이지는 쓰기 스테이지(WB)로 분류될 수 있으며, 이는 전 스테이지에서 연산된 결과를 메모리로 저장하는 블록이다. OF 스테이지와 마찬가지로 WB스테이지 역시 intel 8051 명령어는 직접 주소 지정의 방식과 간접 주소 지정의 방식이 존재한다. 따라서 이와 같은 두 가지 주소 지정 방식을 실행해 낼 수 있는 스테이지를 필요로 한다. WB스테이지는 OF 스테이지와 마찬가지로, 직접 및 간접 주소 지정 방식을 체크함으로써, 각각의 명령어에 맞는 메모리에 데이터를 저장하도록 한다.
기존 8051은 명령어가 1머신 사이클의 배수로 실행되고 동기화를 위한 리던던시 상태가 생깁니다. 이 레포트는 명령어 호환성을 유지한 5단 파이프라인 구조를 가정해 이를 개선하는 방식을 논의합니다.
| 단계 | 역할 |
|---|---|
| 인출 | 1·2·3바이트 명령어를 가져오고 분기를 예측 |
| 해독 | opcode로 제어신호를 만들고 데이터 의존성을 확인 |
| 실행 | 제어 신호에 따라 연산하고 어큐뮬레이터에 저장 |
| 저장 | 연산 결과를 메모리에 기록(WB) |
1. 김휘원, 다중연산장치 Processor의 명령문을 위한 pipeline의 구조적 난점 해결 방안에 관한 연구, 경북전문대학교 학위논문, 2006 2. 한상영 외, 다중 연산 장치 프로세스의 개선된 명령문 다중 발진 논리, 정보과학회논문지 제19권 3 pp.314-326, 1992 3. 남승석, 효율적인 성능을 갖는 8비트 마이크로 컨트롤러의 설계에 대한 연구, 인하대학교 대학원 석사학위논문, 2006
환불규정