컴퓨터 구조 강의 01. 컴퓨터 추상화 및 관련 기술

서론

1940년 전자식 컴퓨터가 등장한 이래로 컴퓨터는 정보 혁명을 주도하며 컴퓨터와 관련 사업을 빠르게 발전시켰다.
스마트 가전제품 부터 슈퍼 컴퓨터 까지 삶의 다양한 분야에서 컴퓨터가 활용되고 있으며 크게 다음과 같은 세가지 응용분야에서 사용된다.

  • 개인용 컴퓨터
  • 서버
  • 임베디드 컴퓨터

개인용 컴퓨터는 많은 사람들이 잘 알고있듯이 가정 내에 보급된 pc를 말하며, 가정 및 비즈니스에서 산업용으로도 사용되고 있다.
서버는 과거 대형 컴퓨터로 불리던 것의 현대적 형태로써 보통 네트워크를 통해 접근되며 소규모 비즈니스 서버 등 주로 산업에서 인터넷을 통한 서비스 공급의 목적으로 사용되고 있다.
가장 많이 사용되는 임베디드 컴퓨터는 한 가지 응용을 수행하거나 서로 연관된 일련의 프로그램을 실행하도록 설계된 컴퓨터로 많은 가전기기 및 제품들에 탑재되어 있다.

단순 컴퓨터의 출생이 가지는 의미를 넘어 컴퓨터의 영향으로 세계 IT 산업은 송두리째 뒤흔들리고 있는 분야가 있는데, 그것은 바로 개인 휴대용 기기(PMD)클라우드 컴퓨팅 을 기반으로 한 sass 이다.

개인 휴대용 기기를 통해 사람들은 어디에서나 인터넷에 연결되어 진정한 초연결 사회로 거듭나게 되었으며, 엄청난 컴퓨팅 파워가 기반이 되어야 사용 가능했던 많은 컴퓨터 기반의 서비스들이 창고 규모의 컴퓨팅(WSC: Warehouse Scale Computing)으로 알려진 클라우드 컴퓨팅을 통해 서비스 로서의 소프트웨어(sass)로 제공되고 있다.

본 강의는 David A. Patterson과 John L. Hennessy의 책을 토대로 공부한 내용을 정리하며, 다음과 같은 내용을 배운다.

  1. 상위 수준으로 작성된 프로그램이 어떻게 하드웨어로 번역되고 동작하는가?
  2. 소프트웨어와 하드웨어 사이의 인터페이스는 무엇이며, 소프트웨어는 어떻게 필요한 일을 하드웨어에게 지시하는가?
  3. 프로그램의 성능을 결정하는 요소는 무엇이며, 프로그래머는 어떻게 성능을 개선하는가?
  4. 성능 개선을 위해 하드웨어 설계자는 어떤 기술을 사용하는가?
  5. 에너지 효율성을 개선하기 위해 하드웨어 설계자는 어떤 기술을 사용할 수 있는가?
  6. 최근 순차처리에서 병렬처리로 넘어가는 이유는 무엇이며 결과는 어떠한가?
  7. 컴퓨터 구조 분야의 어떤 위대한 아이디어들이 컴퓨팅의 기초를 닦았는가?

컴퓨터를 조작하는 명령어는 어떻게 작동하는가?

컴퓨터 하드웨어는 아주 단순한 명령을 실행 할 수 있도록 설계되어 있으며, 많은 현대 프로그래머들이 작성하는 복잡한 코드는 적절한 변환을 통해 컴퓨터가 알기 쉬운 언어로 번역되어 하드웨어를 동작한다. 프로그래머는 코드를 작성하면서 하드웨어의 구체적인 동작은 배제하고 프로그램을 작성이 가능한데, 이는 인간의 상위 언어인 프로그램 언어를 하드웨어와 무관하게 자유롭게 작성할 수 있도록 하는 추상화 의 일환이다.
즉, 프로그래머는 추상화된 언어인 상위 언어들을 사용함으로써 컴퓨터 내의 복잡한 일들을 신경쓰지 않고 더욱 정교한 시스템을 만들어 갈 수 있다.

소프트웨어와 하드웨어의 상호작용은 다음과 같이 일어난다.

_1. 상위 수준 언어로 코드를 작성

  1. 컴파일러가 상위수준 언어를 하위 언어인 어셈블리어로 변환시켜 줌
  2. 어셈블러가 어셈블리어를 컴퓨터가 알아들을 수 있는 이진수 체계로 변환시켜 줌_

컴퓨터 구조 분야의 8가지 위대한 아이디어

  1. 무어의 법칙을 고려한 설계
  2. 설계를 단순화하는 추상화
  3. 자주 생기는 일을 빠르게
  4. 병렬 처리
  5. 파이프라이닝을 통한 성능 개선
  6. 예측을 통한 성능 개선
  7. 메모리 계층구조
    최상위 계층에는 비트당 가격이 제일 바싸지만 작고 빠른 메모리를 사용하고, 최하위 계층에는 느리지만 크고 비트당 가격이 제일 싼 메모리를 사용한다.
  8. 여유분을 이용한 신용도 개선

컴퓨터의 구성과 기본 기능

컴퓨터는 기본적으로 다음과 같은 5가지 항목으로 구성된다.

  1. 입력 유닛
  2. 출력 유닛
  3. 메모리 유닛
  4. 데이터패스 유닛
  5. 제어 유닛

출력

컴퓨터의 출력은 주로 그래픽 디스플레이를 통해 이루어 진다.
오늘날의 LCD 디스플레이는 수만개의 화상으로 이루어져 있으며, 각 화상마다 작은 트랜지스터가 배치되어 있어 전류를 정밀하게 제어하는 능동 행렬을 사용한다.
각 화상은 화소의 행렬로 구성되며, 이것을 비트맵이라 부르는 비트들의 행렬로 포현한다.
컬러 디스플레이는 각각마다 8비트씩, 모두 24비트를 사용하여 수백만 가지의 색을 표시할 수 있다.

그래픽을 지원하는 하드웨어의 중심이 되는 것은 비트맵을 기억하는 프레임 버퍼 라고 하는 부분이며, 스크린에 표시될 화상을 프레임 버퍼에 자장하였다가, 기억된 각 화소들의 비트 패턴을 재생 속도에 맞추어 그래픽 디스플레이로 보낸다.

프로세서

디바이스 안에는 집적회로라 불리는 장치들이 있는데, 이는 프로그램의 지시대로 일을 하며, 데이터패스와 제어 유닛으로 나뉜다.
또한 프로세서 내에서 처리할 데이터를 잠깐 보관하기 위해 이를 캐시 메모리 라고 한다.

성능

컴퓨터의 성능이란 두 컴퓨터에서 같은 프로그램을 실행시키는 경우에 먼저 끝나는 쪽이 더 빠른 컴퓨터라고 할 수 있을 것이다.
하지만 사용하는 사람과 컴퓨터의 목적에 따라 다른 성능 척도가 필요 하다.
가령, 개인의 입장에서는 작업 개에서 종료까지의 시간인 응답시간 이 성능의 중요한 척도일 것이고, 데이터 센터 관리자에게는 일정 시간동안 처리하는 작업의 양인 처리량 혹은 대역폭 이 더 중요한 성능의 척도일 것이다.

다양한 성능 인자들

_프로그램의 CPU 실행 시간

프로그램의 CPU 클럭 사이클 수 * 단위 클럭 사이클 시간 = 프로그램의 CPU 클럭 사이클 수 / 클럭 속도

명령어당 클럭 사이클 수(CPI)
명령어 수 * 명령어당 평균 클럭 사이클 수

CPU 시간
명령어 개수 CPI 클럭 사이클 시간

IPC(Instructions Per clock Cycle)
클럭 사이클 당 명령어 수

MIPS(Million Instructions Per Second)
명령어 개수 / (실행시간*10^6)

예제

다음은 명령어당 클럭 사이클 수를 통한 성능 비교를 보여주는 표이다.

시스템 이름 명령어 수 CPI 소요 시간
A 5 2 250ps
B 6 1.2 500ps

How to write a service introduction express 시작하기

Comments

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×