1. 프로세서의 구조
1) 레지스터(Register) : 프로세서 내부에 있는 데이터를 일시적으로 보관하는 조그만 임시 기억장치
- 프로그램의 실행 중에 사용되며 고속으로 액세스
- 범용 레지스터 : 사용자가 프로그램 내에서 또는 데이터 처리에 필요한 작업을 수행하기 위해서 사용
- 제어용 레지스터 : 프로그램 카운터(PC)와 같이 프로그램이나 프로세서를 제어할 때 사용
- 상태 레지스터 : 프로세서의 상태
- 물리적으로 플립플롭(flip-flop)과 래치(Latch)로 구성
2) 연산장치(ALU : Arithmetic and Logic Unit)
- 산술, 논리, 보수, 쉬프트 연산 수행
- 상태(status) or 플래그(flag) 레지스터 : 프로세서가 연산 장치의 연산 결과에 따른 상태와 연산 결과 표시
3) 제어장치(CU : Control Unit) : 명령을 해석하고 그것을 실행하며, 명령을 읽고 실행하는데 필요한 프로세서 내부의 각 장치 사이의 데이터 흐름을 제어(Fetch → Decode → Execute)
- 명령 레지스터(instruction register) : PC가 지시하는 위치의 주기억장치에서 읽어온 명령을 임시로 기억
- 명령 해독기(instruction decoder) : 명령 레지스터에 기록되어 있는 명령을 받아서 해독
- 제어신호 발생기 : 명령 해독기에서 발생된 제어신호에 따라 명령어를 실행
4) 프로세서의 내부 버스
- 여러 장치들을 연결하는 경로
- 레지스터의 뱅크 ↔ 연산장치
2. 프로세서의 종류
- i386
- ARM
- MIPS
- PowerPC
- M68K
3. 프로그램과 명령
※ 프로그램 : 프로세서를 통하여 어떤 결과를 얻기 위해 프로세서가 받아들일 수 있는 형태의 명령을 나열하여 구성한 문장
※ 기계어(Machine Language) : 프로세서가 이해할 수 있는 2진수로 표현한 언어
1) 명령
- 명령어 : Operation code와 Operand로 구성
- 명령어 처리 과정
① Fetch : PC → AR → IR
② Decode : IR 내에 있는 명령어를 해독하여 적절한 제어신호를 연산장치, 메모리 등에 전송
③ Execute
- 연산장치를 사용하는 명령어(ALU instruction)인 경우 : 연산 결과를 명령어에 명시한 레지스터에 저장
- 조건 분기 명령어(conditional branch instruction)인 경우 : 조건을 만족하면 PC의 내용을 분기 주소로 변경
- 무조건 분기 명령어(unconditional branch instruction)인 경우 : PC의 내용을 분기 주소로 바꾼다.
- 메모리 참조 명령어(memory reference instruction)인 경우 : 참조하고자 하는 메모리의 주소를 데이터용 AR로 보낸 후 메모리의 내용을 데이터 입력 레지스터로 읽어들여 명령어에 지정된 레지스터로 저장
④ 명령어 실행후 조건 분기 명령어 혹은 무조건 분기 명령어가 아니면 PC를 다음에 수행해야 할 주소로 바꾼 후(PC ← PC + 명령어의 길이), 다음 명령 처리
2) 명령어와 프로세서 구조
- CISC(Complex Instruction Set Computer)
⑴ 명령어의 수가 많다(보통 120~350개)
⑵ 명령어 중에는 특별한 일을 하는 것도 있다.
⑶ 주소지정 방식이 다양하다(8~24).
⑷ 명령어의 길이가 가변적이다.
⑸ 명령어 중에는 기억장치 내의 피연산자를 처리하는 것도 있다.
- RISC(Reduced Instruction Set Computer)
⑴ 명령어 수를 최소화하여 시스템을 작고 빠르게 한다.
⑵ 명령어와 주소지정 방식을 최소화하여 제어장치 구조를 간단하게 구현한다.
⑶ 명령어의 길이가 고정되어 해독하기 쉽고 파이프라인 구성이 쉽다.
⑷ 기억 장치에 대한 접근은 Load/Store 명령에 제한, 이 두 명령을 제외한 나머지 연산은 모두 한 사이클에 처리된다.
- EISC(Extensible Instruction Set Computer)
⑴ operand 부분을 opcode와 독립적으로 구성하여 opcode가 필요로 하는 길이만큼 operand를 확장하도록 하는 명령어 구조 체계
⑵ 확장 레지스터(ER : Extension Register)와 확장 플래그(E : Extension flag) 도입하여 고정 길이의 명령어를 사용하면서 이와 같은 구조의 새로운 명령어 체계를 구현
'프로세서'에 해당되는 글 1건
2007. 2. 9. 20:11
Lecture/ARM으로 배우는 임베디드 시스템