혼공 컴퓨터구조 + 운영체제 2주차 공부 인증
여러 가지
안녕하세요? zeromm입니다.
날이 갑자기 쌀쌀해졌습니다. 눈도 내려서 길도 미끄럽고, 또 내일이면 눈이 꽤 내린다고 하죠. 오늘 잠깐 조부모님 댁에 다녀왔는데, 완전 빙판길이더군요. 여러분들도 외출하실 때 조심하시길 바라겠습니다.
이번 주부터는 혼공 과제가 밀리지 않게 미리미리 할 예정입니다. 그래서 틈날 때마다 공부해 두었는데, 벌써 챕터 5까지 완수했습니다 ㅎㅎ 어제 은서랑 더는 밀리지 않게 미리미리하자고 다짐했는데 효과가 있던 모양입니다.
사족은 여기까지로 하고 2주 차 인증 바로 시작해 보죠!
CHAPTER 4 CPU의 작동원리
이번 2주 차는 개인적으로 되게 재밌었습니다. CPU의 원리에 대해서 얇고 넓게 배운 기분입니다. 특히 저번 주차에 배웠던 명령어와 데이터를 어떻게 CPU가 요리할 것인지를 잘 다뤄줘서 흥미롭게 공부했던 것 같아요. 물론 아는 내용도 여전히 많았어서 공부할 때 즐겁게 했습니다.
챕터 4에서는 CPU의 주요 부품인 ALU, 제어장치, 레지스터에 대해 간략히 다룹니다. 특히 ALU는 연산이 이뤄지는 곳이라 모든 정보들이 모이는데, 이것을 필두로 도식을 그리니까 이해하기 좋았습니다. 전 주차 때 살짝 언급했던 플래그도 자세히 배워서 좋았고, 무엇보다 (범용) 레지스터에 대해 조금 배우니까, 전에 배웠던 기억도 새록새록 났습니다. 그때는 전공책의 영어도 스무스하게 읽어 내려가면서 공부했는데.. 지금은 다시 필 엄두도 나질 않습니다 ㅎㅎ..
이 챕터에서 흥미롭게 읽었던 부분은 '인터럽트'였습니다. 특수한 상황이 왔을 때, CPU의 작업을 방해하는 신호를 보내는 것을 말하죠. 개인적으로는 i/o device interrupt처리가 재미있었습니다. 컴퓨터 사용자는 키보드나 마우스를 달고 사는데, 이 장비들이 보내는 신호 하나하나를 인터럽트 해서 처리한다는 게 놀라웠습니다. 우리 입장에선 빠르게 타자 치고, 더블 클릭을 갈기는데, CPU입장에서는 그것마저도 너무 느려서 인터럽트 처리를 한다는 게 신기하지 않나요? 새삼 속도 격차를 느꼈던 부분이었습니다.
CHAPTER 5 CPU 성능 향상 기법
이 챕터는 컴퓨터 조립을 한 번이라도 해본 사람들에겐 아주 재미난 파트였다고 생각합니다. 컴퓨터 조립을 하려면 수중의 자금과 목표 성능을 저울질하면서 컴퓨터 부품들을 선택해야 하는데, CPU는 가장 먼저 정해야 하는 중요한 부품이거든요. 게다가 컴퓨터의 전반적인 성능을 좌우하기에 매우 매우 중요하죠. 그래서 조립하는 사람들에게는 다나와 홈페이지를 켜고 성능표를 싹 보는 게 국룰입니다. 저는 조립을 해본 적 없지만, 중학생 때부터 컴퓨터 하드웨어를 아주 좋아했어서 다나와에서 자주 눈팅하고 그랬었습니다.
그렇게 CPU성능을 보다 보면, 코어랑 클럭, 스레드를 마주하게 됩니다. CPU 코어 정도야, 일하는 사람 수라고 생각하면 직관적으로 와닿아서 쉬운데, 클럭과 스레드는 어렸던 저에게 이해하기 어려웠던 개념이었어요. 그냥 숫자가 크면 클수록 성능이 더 좋다! 정도로만 알고 있었죠. 그런데 이번 혼공컴운에서 아주 쉽게 알려줘서 너무 좋았어요. 딱 비전공자가 이해하기 좋은 수준으로 알려주었죠. 그래서 저는 바로 다나와 들어가서 쓱 CPU파트를 훑었습니다.
요즘 Intel cpu는 애플의 그것과 비슷하더라고요. 효율코어와 성능코어로 나누고 함께 작동시키는 식으로 성능 개선을 이루었습니다. 두 코어를 나누는 기준은 클럭일 수도 있지만, 스레드가 눈에 먼저 눈에 들어오더군요. i9 14900K 기준, 성능코어 8개에 효율코어 16개인데 스레드는 16+16인 것 봐서는 성능코어가 2 스레드를 담당하고 있다고 볼 수 있겠죠. 이렇게 2 트랙을 운영하면, 전성비와 발열 문제 모두 해결할 수 있다고 합니다. 그렇지만 과거 듀얼이나 쿼드코어 정도나 넣어주던 intel이 이렇게 코어를 많이 넣어도 괜찮을지는 의문이지만, 아무튼 이 정도나 CPU 수준이 높아졌다는 게 정말 신기하다고 느꼈습니다.
3번째 절이었던 CISC와 RISC도 인상적이었습니다. 컴퓨터 회로를 짜는 입장은 아니라, 어느 쪽이 더 좋은 기법이냐고 결론짓긴 힘들었습니다. 다만, ARM기반의 CPU가 소형 전자기기에 대거 투입되는 양상을 보면, 확실히 전성비를 개선하고 미래지향적인 기법은 RISC이겠다는 생각이 들었습니다. 다만, 현재 지배적인 intel과 amd, 퀄컴의 CPU 대부분 CISC을 채택하고 있습니다. 혼공컴운에서도 언급했다시피 두 종류의 CPU는 언어가 서로 다릅니다. 때문에 주류가 되기까지 시련이 많을 것으로 예상되지만, 소비자에게 좋은 기술이니 곧 제가 있는 곳까지 오지 않을까 싶습니다.
기본미션 - p.125의 확인문제 2번과 p.155의 확인문제 4번 풀고 인증하기
+ -같은 연산결과의 부가정보나 CPU상태 정보를 저장하는 레지스터는 '플래그 레지스터'이죠. 그리고 '명령어의 주소'를 저장하는 녀석은 '프로그램 카운터'입니다. 그다음 데이터와 주소를 모두 저장하는 녀석은 '범용 레지스터'이고요, 해석할 명령어를 마지막에 데려와 저장하는 레지스터는 '명령어 레지스터'입니다.
CPU가 발달하면서, 연산작용을 할 수 있는 '코어'의 수를 늘릴 수 있게 되었지요. 각 코어에는 연산에 필요한 ALU, 제어장치, 레지스터가 있어야 합니다. 그러므로 빈칸에 들어갈 말은 코어입니다.
선택미션 - CH05의 코어와 스레드, 멀티 코어와 멀티 스레드 개념 정리하기
위에 언급했다시피 코어는 명령어를 처리할 수 있는, 쉽게 말해 일할 수 있는 단위(부품)입니다. 그리고 멀티 코어는 이런 코어가 다중으로 갖고 있는 경우(CPU겠죠)를 말합니다. 스레드는 실행 흐름의 단위라고 했지만, 혼공컴운에서는 하드웨어적 스레드와 소프트웨어적 스레드로 구분해서 설명했죠. 전자는 대충 코어의 개념과 비슷하다고 보면 됩니다. 한 코어가 한 번에 처리할 수 있는 하드웨어적 단위를 의미하고, 소프트웨어적 스레드는 프로그램 내에서 독립적으로 실행될 수 있는 단위를 말합니다. 그러므로 멀티 스레드는 하드웨어적으로 한 코어로 여러 개의 명령어를 수행할 수 있는 경우를 말할 수 있겠습니다.
필기자료
마무리 및 소감
관심 있던 내용이라 아주 재미있게 공부할 수 있었습니다. 이런 게 공부하는 즐거움이죠. 개인적으로는 프로그램을 짜는 것보다, 하드웨어를 다루는 게 더 직관적이고 흥미롭습니다. 그래서 매번 혼공컴운을 잘 선택했다고 느낍니다 ㅎㅎ
이번 주에는 날도 춥겠다 따로 놀러 가는 일은 없습니다. 그렇지만 간간히 친구들 만나고, 서울 한번 다녀오고, 조금 진정하는 시간을 가질 것 같네요. 그러고 다음 주부터는 동기들과 후쿠오카 다녀옵니다 ㅋㅋ 지진도 나고 되게 얘기가 많이 나오지만 잘 다녀올 수 있으면 좋겠습니다. 아! 가기 전에 미리미리 3주 차도 마무리하고 갈 겁니다 ㅎㅎ 컴운 재밌으니까요. 아무쪼록 무탈한 한 주 되시길 바랍니다.
출처
혼자 공부하는 컴퓨터구조 + 운영체제 p.102 ~ p 175