티스토리 뷰




학습 후기



22강 - 프로세서 명령어 실행과정






1. 컴파일 과정

C++, JAVA 프로그램 작성 -> 컴파일러 -> 어셈블러 -> 링커 -> 로더(메모리에 적재)


2. 명령어 인출 과정

PC값을 MAR에 복사 -> MAR이 가리키는 명령어 적재 -> CIR(현재 실행되고 있는 명령어 레지스터) 업데이트 -> PC 업데이트


3. 명령어 해독 및 실행 과정

(해독과정) PC값을 MAR에 복사 -> MAR이 가리키는 명령어 적재 -> CIR 업데이트 -> PC 업데이트 -> 명령어 디코딩

-> 제어신호 생성 -> (실행과정) 메모리 주소 MAR에 저장 -> 메모리 주소를 통해 데이터 접근 -> MDR에 데이터 저장


프로그램이 실행될 때, 프로세스가 내부적으로 어떻게 동작하는지 알아보는 시간이었다. 


명령어 과정은 PC->MAR->CIR->PC 이렇게 외우면 될 듯 하다.




23강 - 프로세서 구현







 22강에서 소프트웨어적으로 프로세서를 알아봤다면 이번 23강은 하드웨어적인 관점으로 보는 시간이었다.


데이터 패스

- 명령어가 프로세서로 가는 통로 (add 는 레지스터만 사용, lw 는 메모리 사용)

- 조합소자와 상태소자로 구성

 조합소자 : 같은 입력 -> 같은 출력 소자

 상태소자 : 메모리, 레지스터 같이 상태를 기억하는 소자



명령어 인출 데이터패스

- PC -> 다음 명령어를 가리키기 위하여 adder에서 4 증가 -> 인스트럭션 주소 -> 인스트럭션 실행


R-형식 명령어 데이터패스

(각각 5비트) $s0 + $s1 => ALU =>  $t0


적재/저장 데이터패스

- lw, sw 명령어 관련된 데이터패스


분기 데이터패스 

- ALU 에 따른 분기


아주 생소하다. ㅜㅜ 저 그림만 봐도 위압감이 든다 ㅋㅋ 


중요한 내용이라고 하셨으니 공부를 계속 해봐야 겠다.




24강 - 파이프라이닝과 해저드





파이프라이닝.


 CPU가 효율적으로 가동하게 하는 기술이라고 받아들였다. 설명만 봐도 효율적으로 돌아가네? 라는 느낌을 받았다. 세탁기와 건조기를 가지고 잘 설명해주셨다. 




해저드.


 하지만 파이프라이닝이 단점이 없는 것이 아니다. 오버헤드가 발생하는데, 이를 해저드라 한다.

구조적 해저드, 데이터 해저드, 제어 해저드가 있다.


- 구조적 해저드

 명령어의 조합을 하드웨어가 지원할 수 없다는 것...


- 데이터 해저드

 지금 이 데이터를 써야 하는데 준비가 안됐네? 그래서 기다려야한다...


- 제어 해저드

 실행을 해야할 것이 bne,beq 분기가 발생해서 실행하지 못해서 발생...



해저드의 해결방법


전방전달 : 아직 안나온 데이터를 먼저 가져오는 방법

분기예측 : 분기를 하는지 안하는지 예측하는 방법. 예측된 순서가 아닌 경우 버린다.



이번 강의는 비유를 통해 설명을 해주셔서 이해하기 편했다. 그리고 마냥 좋아보이는 파이프라이닝도 역시 단점이 존재했다는 점!




25강, 26강 - 메모리 계층구조







지역성


시간적 지역성 : 참조된 항목은 다시 참조될 가능성이 높다.

공간적 지역성 : 참조된 항목 주위의 데이터가 참조될 가능성이 높다.


프로그래밍 자료를 찾으려고 하는데 여러번 볼 것이고, 관련 책도 찾아보기 마련이다. 이런 느낌!



메모리 종류


속도 : SRAM(레지스터, 캐시) > DRAM(우리가 아는 램) > 마그네틱 디스크(하드)

사이즈 : SRAM < DRAM < 마그네틱 디스크

가격 : SRAM > DRAM > 마그네틱 디스크


SRAM : 어떤 데이터든 접근 시간이 같다.

DRAM : 주기적인 리프레시 필수, 전력이 끊어지면 정보가 날아감.




캐시 메모리


- SRAM으로 구성되어 있고 메인 메모리와 프로세서 사이에 있는 메모리 계층
- 접근의 지역성 이용
- 프로세서가 기억장치 참조 시 캐시를 가장 먼저 조사
- 캐시에 없으면 주기억에서 가져와 캐시에 넣고 캐시는 CPU로 정보를 전달
- 있으면 바로 CPU로 전송

- 사상함수

 직접사상 : 해시를 생각하면 된다. (0011010 - 2비트 태그, 3비트 캐시블록필드, 2비트 워드필드)

 연관사상 : 캐시의 아무 블록에나 넣는다. (011010 - 4비트 태그, 2비트 워드필드)

 집합 연관사상 : 직접 + 연관








컴퓨터구조 완강. 딱딱한 전공 수업의 느낌이 아니다.


 


 어찌어찌해서 완강을 했다. 다만 100% 내용을 습득하지는 못했다. 반절정도 공부한 느낌이다. 이는 계속해서 복습으로 메꿔나가야 할 것 같다. 그만큼 내용이 만만치 않다는 것이다.


 그래도 내용은 어렵지만 친절하게 설명을 하려고 노력하신 흔적들이 많이 보였다. 그래서 딱딱한 전공 수업 듣는 느낌은 덜했다. 이것이 가장 큰 강점이 아닌가 생각한다. 그래서 비전공자 분들에게 특히 추천하고싶다!


 이제 다음 강의로 운영체제를 수강할 계획이다. 이번 상반기 면접에서 이 운영체제 지식이 전무해서 PT면접을 망쳤다. 비전공자라는 변명은 통하지 않기 때문에 운영체제 과목도 열심히 달려야겠다. 아자!


 



패스트캠퍼스 컴퓨터공학 올인원 패키지 링크


=> https://bit.ly/2JImMf6



반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함