Hello Computer Vision

비전공생의 컴퓨터구조 1주차 강의 기록 본문

컴퓨터구조

비전공생의 컴퓨터구조 1주차 강의 기록

지웅쓰 2022. 10. 31. 13:57

지난 번에는 강의에 필요한 기본 용어들을 미리 정리하였고 이번에는 수업을 들으면서

중요하다고 생각하는 부분들을 최대한 필기하면서 들었다. 이번 수업에서는 한가지 주제에 대한 강의보다는

전체적인 용어의 흐름, 쓰임 등을 위주로 설명하셨는데 이러한 많은 부분들을 앞으로 더 자세히 설명하신다고

한다.

 

강의 초반부에서는 여러 CPU에 대한 스펙들을 이야기해주시는데 인텔 CPU에 대해서 많이 이야기하신다.

인텔 펜티움4 의 스펙은 82W, 3.2 GHZ 를 가지고 있다. 55M transistors. 

 

컴퓨터는 programmable digital system이다.

cpu 전력소모량은 150w가 넘어가면 발열문제가 발생한다. 보통 100w 근처이다.

 

컴퓨터의 성능은 클락 스피드와 IPC에 의해 결정된다.

IPC란 Inter Process communication이며 클락 하나당 몇개의 명령어를 처리할 수 있는지 이다.

-> 클락 스피드가 빨라 명령어를 많이 들여온다 하더라도 많이 처리하지 못하면 소용이 없다.

명령어들을 받으면 가장 앞에있는 것만 처리하는 것이 아닌 뒤에 있는 명령어도 어디로 갈지 미리 예측하고 배치한다.

이러한 경우 속도는 빠르지만 틀리다면 pipeline 에 있는 명령어들을 다 지우고 다시 배치한다.
>>pipeline이 깊으면 깊을수록(스테이지가 많다) IPC의 성능이 떨어진다.

 

원래의 CPU는 한번에 하나의 명령을 아주 빠르게 처리하는 것이었다면 하이퍼스레딩 기술로 여러개 처리 가능하다
여기서 스레드는 작업을 의미하는데 운영체제의 스레드랑은 다르다.

캐쉬메모리 : 프로세스 안에 있는 메모리이다.

CPU의 역할은 메모리에 저장된 명령어 sequence들을 차례로 프로세스 안으로 패치한 후 명렁어들을

decoding 후 실행 후, machine state를 업데이트 하는 것이고 이러한 작업을 반복하는 것이다.

과거에는 메모리와 CPU의 성능이 비슷했다면 지금은 CPU의 성능이 더 좋아져 캐쉬메모리를 둔다.(명령어를 재활용한다고 강의하시는데 이 부분은 아마 뒷 내용에 더 자세히 나올 듯 하다.)

CPU에서 메모리로 갈라면 바깥으로 나와야하는데 그러한 통로가 시스템버스이다. 이 버스의 데이터 폭은 64bit이므로

데이터가 한번에 8Byte씩 전송될 수 있다. 이러한 것은 bandwidth라고 하는데 위에서 CPU가 아무리 빨라도

bandwidth가 낮다면 병목현상이 일어난다고 한다. (CPU와 메모리의 성능차이에서 나오는 문제점인 거 같다.)

TLP : Thread Level Parallism 이다. 기존에는 한개의 CPU가 빠르게 한번에 하나의 명령어만 처리했다면 이제는

코어를 여러개 두거나 한개의 코어에서도 멀티스레들들 처리하자는 개념이다.

 

CPU안에는 2개의 주소가 있다.

Virtual address : 프로그램의 주소

Physical address :  DRAM의 주소
(이건 그냥 외우라고 하신다.)

각 CPU의 제조공정은 다른데(CPU내부 회로의 굵기, 얇을 수록 좋다)  인텔의 CPU가 조금 두껍다.

그 이유는 인텔의 CPU가 상대적으로 다른 CPU에 비해 복잡하다고 한다. 

 

컴퓨터의 성능을 수식으로 나타낸다면(프로그램을 실행했을 때 실행되는 시간이 성능이다)

$T_{exe} = NI * CPI * T_{cycle}$ 이다. 

exe : Execution time per program. 

NI : Number of instruction(명령어) / program  -> program size

CPI : Clock cycles / instructions  -> 명령어당 몇clock사이클이 필요한지 -> 작은 값이 더 좋다.

T : Clock cycle time  -> small clock cycle time 이 더 좋다.->clock 이 빠르다.

결과적으로 컴퓨터의 성능은 클락이 빠르면 빠를 수록 좋고, IPC가 크면 클수록 좋다, 프로그램이 작으면 작을수록 좋다.

 

정리

광범위한 이야기들이 강의에서 나왔는데 CPU를 중심으로 강의가 진행되었다. 아마 다음 주차부터는 조금 더 세부적인 항목들에 대한 

강의들이 이어지지 않을까 생각된다. 컴퓨터를 구성하고 있는 요소들과 용어들에 친해져야겠다는 생각을 한다.

 

 

해당 필기는 https://www.youtube.com/watch?v=Ewe9S1E969k 를 시청하면서 필기한 것을 기록한 것입니다.