컴퓨터구조(1) - 컴퓨터 추상화 및 관련 기술(1)
‘컴퓨터 구조 및 설계’를 공부하여 정리한 내용입니다.
컴퓨터 구조 분야의 8가지 위대한 아이디어
Moore의 법칙
: 일정 기간마다 칩에 집적되는 소자의 수가 2배가 된다는 법칙- 예를 들어 2년 정도의 기간이 소요되는 프로젝트를 진행할 때는, 위의 법칙에 따라 칩의 성능이 향상되었을 가능성을 염두에 두고 진행할 필요가 있다.
- 추상화: 설계 안에서도 그 명시 수준을 나누어 모델화하는 방법
- 하위 수준의 상세한 사항을 숨겨, 상위 수준 모델을 단순화한다.
- 자주 생기는 일을 최적화할 것
- 자주 생기는 일들을 우선순위로 최적화하였을 때, 프로그램 전체의 성능 향상에 도움이 된다.
- 병렬성을 통한 성능 개선
- 같은 일도 여러명이서 하면 빠르게 할 수 있다. (물론 가능할 경우에만)
- 파이프라이닝을 통한 성능 개선
- 예를 들어, 포장을 하는 일이 있다.
- 일의 개수는 3가지다: 1. 박스 조립, 2. 물건 채우기, 3. 박스 동봉
- 세 사람이 같이 이 일을 한다고 하면, 일렬로 서서 각자의 일을 하게되면 일의 속도가 개선된다.
- 예측을 통한 성능 개선
- 다음 일을 하기 위해 기다리는 것보다, 미리 일을 진행한다.
- 예측이 맞았을 경우는 계속 일을 진행한다.
- 예측이 틀리면 미리 진행한 일을 취소하고 실제로 해야 하는 일을 진행한다.
- 컴퓨팅 작업은 예측이 맞아 떨어질 확률이 높기에 위의 작업은 성능 개선을 부른다.
- 메모리 계층 구조 사용
- 동일한 가격일 경우, 메모리는 성능이 좋으면 크기가 작고, 크기가 크면 성능이 떨어진다.
- 이런 메모리들을 여러종류를 사용해서 최상위 계층은 성능이 좋고 크기가 작은 메모리를, 하위 계층에서는 크기는 크고 성능이 떨어지는 메모리를 사용하도록 배치한다.
- 자주 사용하는 데이터는 최상위에, 자주 사용하지 않는 데이터는 하위에 넣는 형식으로 움직인다.
- 성능이 좋으면 자주 사용하는 데이터에 접근이 빠르다.
- 자주 사용하지 않는 경우도 크기가 큰 메모리에 저장되어 있으니 사용자가 보기에는 가용 가능한 메모리 크기도 커보일 것이다.
- 메모리를 한 종류만 사용하는 것에 비해 전체적인 사용이 효율적이고, 가격 대비 좋은 성능을 뽑아낼 수 있다.
- 여유분을 이용한 신용도 개선: Dependability
- 장애 감지 기능
- 장애가 발생하였을 때, 곧바로 여유분으로 대체하여 작업을 진행할 수 있도록 해야 한다.
프로그램 밑의 세계
- 추상화에 관하여
- 컴퓨터 하드웨어는 아주 단순한 저수준의 명령어를 실행할 수 있을 뿐이다.
- 그렇기에 복잡한 응용에서 출발해서 단순한 명령어로, 높은 수준의 작업을 단순한 컴퓨터 명령어로 번역 또는 해독하는 여러 겹의 소프트웨어가 필요하다.
- 계층적 구조 (간단하게 표현했을 때)
- 중심-> 하드웨어(단순) - 시스템 소프트웨어 - 어플리케이션 소프트웨어(복잡) ->바깥쪽
- 시스템 소프트웨어
- 운영체제
- 컴파일러
- 시스템 소프트웨어의 주요 기능
- 기본적 입출력 작업 관리
- 메모리 할당 관리
- 한 컴퓨터 안에서 돌아가는 여러 프로세서들의 자원 공유 관리
- 상위 수준 언어에서 기계어까지
- 추상화로 인해 가능해진 일
- 다른 것보다, 추상화로 인해 프로그램을 개발한 기종과 관계없이 어느 컴퓨터에서든 실행이 가능하게 만들 수 있다.
- 추상적인 부분을 유지하고, 저레벨 단계에서 기계에 맞게 움직이도록 만들어 두면, 머신에 대한 의존도를 낮출 수 있다.
- 컴파일러의 IR(Intermediate Representation)이 이에 해당하는 좋은 예시이다.
Leave a Comment