패스트캠퍼스

[패스트캠퍼스 수강 후기] 올인원 패키지 : 컴퓨터 공학 전공 필수👉C언어인강 100% 환급 챌린지 14회차 미션

돌맹이시터 2020. 11. 1. 16:52

 

 

 

환급미션 14일째

 

 

 

 

컴퓨터 구조 - 중앙처리장치 - 마이크로 명령어 집합과 구성 -1

컴퓨터 구조 - 중앙처리장치 - 마이크로 명령어 집합과 구성 -2

 

 

 

지금까지 명령어를 대략적으로 다루었다면

조금 더 구체적인 내용을 다룬다고 한다. 

 

 

 

- 실행 순서에 따른 명령어 분류 : step by step 방식만으로는 한계가 있어서 여러 가지 방식이 존재한다.

 

*순차적 실행 명령어 ( step by step ) : 전체 실행 명령어의 대부분 (70~80%)을 차지한다.

*분기 명령어 : 분기 방식으로 실행이 된다. 

위의 flow chart 에서 예를 들자면, p=1 이 조건이고, yes-> 오른쪽 분기, no-> 왼쪽 분기로 다음 명령어가 실행되는 방식이다.

 

*부 함수 호출 명령어

*복귀 명령어

글보다는 도표를 통해 보다 직관적으로 이해할 수 있다.

왼쪽이 main 함수를 나타내고, 오른쪽이 sub 함수를 보여준다.

예를 들어

어떤 방송국에서 티비 프로그램을 송출할 때,

메인 프로그램들이 기본적으로 송출되고,

중간중간에 서브로 광고가 송출이 되는 것과 같은 방식을 말한다.

 

 

 

 

- 명령어 구문 형식

 

 

명령 코드 : cpu가 실행할 수 있도록 디자인된 연산

operand : 연산에 사용되는 자료 값, 자료가 저장된 주소에 관한 정보

주소 지정 모드 ( addressing mode ) : operand가 저장된 위치를 지정(indexing)하는 방법

 

하드웨어와 소프트웨어 간의 독립성 유지를 위해 점점 복잡해져간다고 한다.

 

 

 

 

 

- 명령어 집합의 설계

 

 

 

 

자연어는 일상적인 언어들을 이야기하는데, 보통 영어가 기반이 된다.

자연어에 가깝게 명령코드를 이용하는 경우

일상언어와 가깝기 때문에 조금 더 직관적으로 설계, 사용을 할 수 있다는 장점이 있지만

오늘날 세계적으로 이용되고 있기 때문에 사용 언어에 따른 구조적 차이로 인해 발생할 수 있는 어려움이 있고,

그때문에 cpu 구조 설계 자체가 복잡해지게 된다는 단점이 있다.

 

 

반면 기계 중심의 명령코드를 이용하는 경우

각종 규칙이 많아지거나 프로그램 길이가 길어지는 등 설계가 복잡해진다는 단점이 있지만

개인의 사용언어에 구애받지 않고 표준화가 가능하기 때문에 

오히려 명령어가 더 간편화되거나 제어장치의 제어가 더 쉬워지는 등 

cpu 구조 설계가 보다 간단해지게 된다.

 

 

따라서 기계 중심의 명령코드를 이용하는 방햐응로 나아가는 중이라고 한다. 

자연어, 기계어 명령코드를 비유해본다면 다음과 같은 느낌으로 이해할 수 있다.

자연어 명령 코드 : If p=1 then transfer R2 to R1

기계어 명령 코드 : P:R1<-R2

 

 

 

 

 

 

- 주소 지정 모드 ( addressing mode )

 

명령어의 구조상

최대한 하드웨어, 소프트웨어 간의 독립성을 유지하며 프로그램의 유연성을 가능하게 할 수 있도록

자료가 저장되어 있는 장소를 지정하는 방법이 필요하다.

이런 방법들을 addressing mode라고 하고, 프로그램의 효율을 결정하는 요소가 된다.

 

 

 

* 묵시적 모드 ( operand가 명령어에 포함되지 않은 모드 )

 

NOP : no operation, 오퍼랜드가 필요없는 명령어 (ex: 이동)

INC : 묵시적 오퍼랜드인 누산기(AC, accumulator)의 연산  명령어

ADD : 스택 구조의 명령어 ( 스택에 오퍼랜드가 저장됨 )

 

 

* 직접값 모드 ( operand 자체가 명령어에 포함되어 있는 모드 )

 

ex) MOV R1, #100 

-> 십진수 값 100 이 두 번째 오퍼랜드로 직접 명령문에 포함되어 있다

 

 

* 레지스터 모드 ( register mode : 오퍼랜드가 레지스터에 저장된 모드 )

 

ex) ADD R1, R2

 

 

* 메모리 직접 주소 모드 ( direct mode : 오퍼랜드가 저장된 메모리 주소를 나타내는 모드 )

 

ex) MOV R1, 100

-> R1에 100번지의 내용을 이동하라는 내용.

 

 

* 메모리 간접 주소 모드 ( memory indirect addressing mode : 메모리를 이용하여 간접적으로 주소 지정 )

 

ex) MOV R1, @100

-> R1 <- M[100] or M[100] <-R1

실제 데이터를 가져오기 위해 메모리를 2번 이상 참조해야 한다. 

 

 

 

위의 그림에서 100번지의 내용에 해당하는 주소값에서의 데이터에 해당.....................

 

 

 

 

 

 

- addressing mode 예시

 

 

 

 

 

 

 

 

 

 

 

올인원 패키지 : 컴퓨터 공학 전공 필수👉https://bit.ly/3i4sCVE