by
Dominic Cho
May 27. 2023
대학교 1학년 기초전공 수업이라서 이해하기보다는 암기 위주로 공부했었다.
하지만, 전공에 대해 알아갈수록 기본 지식이 부족하다는 것을 느꼈다.
그러던 와중에, 회사에서 전공을 공부할 수 있는 좋은 기회를 얻게 되어 동기들과 팀을 이루어 컴퓨터 구조에 대해 공부했다.
지금 와서 책을 차근차근 들여다보면 다 이해할 수 있는 내용들인데, 학부 1학년 때에는 왜 그렇게 어렵고 무슨 소리하는지 도통 이해하기 어려웠는지 모르겠다.
그중에서도 내가 맡은 4장 프로세서에 대해 핵심과 주의할 점, 부족한 점을 정리하여 기록한다.
----------------------------------------- 핵심 -----------------------------------------
4장의 핵심을 프로세서의 동작 원리를 깨닫는 것이다.
디지털 회로 분야는 성능과 비용 간의 트레이드오프를 고려하여, 목적에 맞는 최적의 설계를 찾아내는 것을 목표로 한다.
4장에서는 효율적인 프로세서 설계 방법을 다룬다.
데이터패스를 만들어서 기본적인 프로세서를 만들고, Throughput을 높이기 위해 명령어 수준의 병렬성을 활용하는 기법(파이프라이닝 / 다중 명령어 내보내기)들을 적용하고, 파이프라이닝에 따른 문제점(구조적/데이터/제어 해저드)과 그 해결 방법 (전방전달/지연, 가정/예측) 등을 배운다. + 인터럽트
(파이프라이닝) - 클럭 사이클을 줄이자!
구조적 - 하드웨어 구조 병경
데이터 - 전방전달 / 지연
제어 - 가정 / 예측
(다중 명령어 내보내기) - CPI를 줄이자!
| - 명령어 내보내기 유닛 (순차 발생)
수퍼스칼라 - 동적 스케줄링 -- | -기능 유닛 (대기 영역) (비순차 실행)
| - 결과 쓰기 유닛 (재정렬 버퍼) (순차 실행)
최근은 다중 프로세서(멀티 코어)가 트렌드
----------------------------------------- 주의할 점 -----------------------------------------
4장 프로세서는 2장 명령어. 3장 컴퓨터 연산에서 배운 내용들을 통해 실제 프로세서의 동작을 배우는 장이기 때문에 재미있다.
또한, 2장 3장에서 배운 개념들을 복습해 볼 수 있는데, 이 과정을 통해 64비트 명령어라는 개념을 확실히 알 수 있었다.
이전까지는 명령어와 데이터 모두 32비트에서 64비트로 증가한 것이라고 잘못 생각해 왔다. 그런데 4장의 프로세서 그림에서는 명령어는 32 비트라고 표현되어 있었다. 프로세서에 대한 여러 그림들을 검토한 뒤, 명령어 비트 수는 32비트가 그대로이지만 프로세서에 들어가는 데이터 비트 수(데이터 레지스터)가 64로 늘어난 것을 깨달았다.
이 깨달음은 석사 과정을 통해 공부(연구)하는 자세를 배웠기 때문에 가능했다.
누구도 가르쳐주지 않는 분야에 대해 스스로 자료를 찾아 차분히 정리하는 방법을 배우느라, 석사 2년이 그렇게 힘들었나 보다.
----------------------------------------- 부족한 점 -----------------------------------------
신입사원임에도 불구하고 연차로는 3년 차이기 때문이라서인지, 아니면 파트가 너무 바빠서 그런지 모르겠지만 일이 정말 많이 주어졌다. 그래서 연습문제를 차근차근 풀어보며 내가 모르는 부분에 대해 파악하지 못한 점은 너무 아쉽다.
----------------------------------------- 감상 -----------------------------------------
대학 -> 대학원 -> 회사로 갈수록, 기한 내에 Output을 내라는 압박이 점점 심해지지만, 그럴수록 더 공부의 필요성을 절감한다.
기한이 닥쳐야 성과가 나오는 내 성격 상, 오히려 회사에서 쫓기며 하는 공부가 시간 대비 성과가 제일 좋은 것 같다.
[이글루스 서비스 종료로 브런치스토리로 이전]
[2019/09/29 원문 작성]