앞강좌에 이은 연강입니다요.

여기서 또 CPU의 간단한 구조설명을 필요로 하게 되는군요.

일단 CPU는 하드디스크나 메모리로부터 데이터를 받아 연산을 합니다.

역시 유추를 통해 설명드리죠.

하드디스크=도서관

메인메모리(RAM)=집안 서재

L2캐쉬=책상 앞 책꽂이

CPU=레포트 쓰고 있는 대학생

이렇게 가정하고 시작합니다.

여러분이 레포트를 쓰고 있을때 자료를 필요로 합니다.

그리고 이 자료는 도서관,집안서재,책꽂이등에 산재해 있는데 아무래도 도서관쪽이 자료가 많겠죠.

그러나 도서관은 자료의 양은 많은 대신에 한번 자료를 얻기 위해선 많은 시간이 걸립니다.

집안 서재는 도서관에 비해 자료의 양은 적지만 도서관에 가는것보단 시간은 적게 들겠죠.

책꽂이는 손만 닿으면 땡이기 때문에 자료의 양은 가장 적어도 속도는 가장 빠릅니다.

위의 가정은 각 저장장치별 특성을 아주 명확히 보여줍니다.

지금부터 조금 복잡해 지지만 조금만 생각하시면 잘 따라오실 수 있습니다.(별로 안어려워요-_-)

어떤 프로그램이 실행되는데 A,B,C,D,E라는 데이터가 순차적으로 필요하다고 가정합시다.

그리고 이 데이터는 하드디스크에 저장되어있다고 보구요.

CPU에 그 프로그램을 실행시키라는 명령이 들어오면 CPU는 메인보드를 거쳐 하드디스크에 ABCDE

데이터를 순차적으로 읽어들일것을 요청합니다.

여기서 문제가 발생합니다.

만약 데이터가 하드디스크의 특정 부위에 몰려있지 않고 여기저기에 흩어져 있다면 그만큼 데이터를

불러들이는데 시간이 걸리겠죠?

그런데 우리의 메모리는 하드디스크에서 A라는 파일을 읽어오라는 명령이 떨어지면 A만 읽는게 아니라

A에 인접한 파일을 용량 허락하는대로 읽어들입니다.

재수좋게 A,B,C,D,E파일이 인접해 있다면 프로그램이 언능 뜨겠지만 그렇지 못하다면 A,s,e,r,이런식으로

엉뚱한 파일들이 메모리에 로딩되게 됩니다.

L2캐쉬에서도 메모리와 마찬가지로 이런 일이 생긴답니다.

단지 하드디스크의 역할을 메모리가 할 뿐이지요.

L2캐쉬가 알맞게 데이터를 읽어 들였을때 캐쉬가 '히트'되었다고 합니다.

노턴의 스피드 디스크는 이렇게 인접한 데이터를 한 구역에 몰아줍니다.

그렇게 해서 히트율을 높이는게 성능향상의 방법이랍니다.

원래 최적화의 마지막 작업인데 순서가 바뀌었군요.

좀더 체계적인 강좌를 써야 할 듯...

그럼 이만...