Computer Security

#5 컴퓨터 구조2 본문

컴퓨터구조&어셈블리어

#5 컴퓨터 구조2

쿠리 Kuri 2022. 5. 15. 18:30

중앙처리장치

 

CPU의 구성요소

 

1.레지스터 집합(Register Set) 

-메모리 또는 입출력 장치에서 불러온 값이나 프로세서의 연산 중간 결과값들을 저장하는 고속의 저장장치

-범용 레지스터(General Purpose Register)와 같이 프로그래머가 임의로 사용할 수 있는 레지스터

-특수 목적 레지스터(Special Purpose Register)와 같이 프로세서나 시스템에서 특수한 목적을 위해 사용하는 레지스터

 

-특수 목적 레지스터(Special Purpose Register)

1.누산기(AC, Accumulator) : ALU에서의 연산 결과값 저장

2.스택 포인터(SP, Stack Pointer): 메모리 스택의 Top 주소 저장

3.프로그램 카운터(PC, Program Counter): 다음에 실행될 명령어의 주소 저장

4.프로세서 상태 레지스터(Processro Status Register)(플래그 레지스터): ALU에서의 연산 결과를 반영하거나 프로세서의 각종 상태들을 저장하는 레지스터

5.명령어 레지스터(IR, Instruction Register): 메모리로부터 읽어 들인 명령어를 저장

6.MAR(Memory Address Register) :주소버스를 나갈때 어떤 주소값이 들어갈지 지정할때, MAR에다 임시로 저장한다.

7.MBR(Memory Buffer Register) : 메모리로 들어오는값을 MBR에 임시 저장한다.

 

 

 

 

 

 

2.산술논리장치(ALU, arithmetic Logic Unit) 와 상태 레지스터(플래그 레지스터)

 

-ALU는 산술 및 논리 연산을 수행하는 조합회로로, 연산 결과는 일반적으로 누산기 레지스터에 저장된다.

-연산 결과를 반영하는 여러 상태 값들은 상태 레지스터 또는 플래그 레지스터에 저장된다.

 

ALU

3.명령어 실행 사이클

 

1.인출(Ferch):명령어를 메모리로부터 가져온다.

- 주기억장치로부터 수행할 명령어를 CPU로 가져오는 단계

- 하나의 명령을 수행한 후 다음 명령을 메인 메모리에서 CPU로 꺼내 오는 단계

- 명령어의 Operand가 간접 주소일 경우: Indirect Cycle로 진행

- 명령어의 Operand가 직접 주소일 경우: Execute Cycle로 진행

 

2.해독(Decode): 명령어를 해독한다.

 

3.실행(Execute): 해독된 명령어를 실행한다.

- 명령의 해독결과 이에 해당하는 타이밍 및 제어신호를 순차적으로 발생시켜 실제로 명령어를 실행하는 단계

- 명령어 코드를 해독하고, 그 결과에 따라 필요한 연산들을 수행

- 실행 사이클에서 수행되는 마이크로 연산들은 명령어에 따라 다름

 

간접 사이클(Indirect Cycle)

 명령어의 Operand가 간접주소 지정이 된 경우 유효 주소를 계산하기 위해 주기억장치에 접근하는 단계

- 명령의 실행을 위해 Execute Cycle로 진행됨

- 명령어에 포함되어 있는 주소를 이용하여, 그 명령어 실행에 필요한 데이터의 주소를 인출하는 사이클

 

인터럽트 사이클(Interrupt Cycle)

- 인터럽트 발생시 인터럽트 처리를 위한 단계

- 인터럽트에 대한 처리가 완료되면 Fetch Cycle 진행

 

 

PC에서 -> MAR -> Address Bus -> 메모리 -> Data Bus -> MBR (진행되면, 자동으로 PC는 PC+1로 값 증가.)

->IR(Instruction Register) 바이너리코드 저장->CU(Control Unit)안에서 해독 과정 -> Register Set 명령어 실행(Execute)

 

 

명령어 사이클

4. 폰 노이만 구조와 하버드 구조

-폰 노이만 구조: 프로그램과 데이터를 하나의 메모리에 저장하는 구조

         -프로그램(코드) 메모리와 데이터 메모리가 구분되어 있지 않다.

         -따라서 프로세서와 메모리 사이에 하나의 버스를 가지고 있다.

 

-하버드 구조: 프로그램 메모리와 데이터가 분리되어 있는 구조

         -따라서 명령용 버스와 데이터용 버스가 물리적으로 분리되어있다.

         -명령어를 읽는 것과 데이터를 읽는 것을 동시에 수행할 수 있다.

 

3.버스 인터페이스 장치(BIU, Bus Interface Unit)

-1.Address Bus

-2.Data Bus

-3.Control Bus

밖에서 안으로 가져올 때, 중간다리 역할을 해준다.

 

 

 

4.제어 장치(CU, Control Unit)

-명령어를 메모리로부터 읽어드린뒤, 읽어드린 명령어를 해독하여 어떤 명령어인지 파악이 되면, 그에 맞는 제어신호를 생성하여 Control Bus로 내보내거나 CPU안에서 작용한다.

 

'컴퓨터구조&어셈블리어' 카테고리의 다른 글

#7 x86의 구조 (역사)  (0) 2022.05.19
#6 컴퓨터구조와 명령어  (0) 2022.05.16
#4 컴퓨터 구조1  (0) 2022.05.14
#3 어셈블리어 스택  (0) 2022.05.13
#2 어셈블리어 연산,비교,분기  (0) 2022.05.12
Comments