[컴퓨터구조] 컴퓨터구조 1장

nayoon·2021년 4월 7일
0

computer

목록 보기
2/25


참고 문헌: 컴퓨터 구조 및 설계

#Moore의 법칙

매 18~24개월(2년)마다 칩에 집적되는 소자의 수가 2배가 된다

#하드웨어와 소프트웨어가 어떻게 성능에 영향을 미치는가

  • 알고리즘
    소스 프로그램 문장 수와 입출력 작업 수를 결정
  • 프로그래밍 언어, 컴파일러, 컴퓨터 구조
    각 소스 프로그램 문장에 해당하는 기계어 명령어 수 결정
  • 프로세서와 메모리 시스템
    명령어의 실행 속도 결정
  • 입출력 시스템(하드웨어 및 운영체제)
    입출력 작업의 실행 속도 결정

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

Moore의 법칙을 고려한 설계

설계를 단순화하는 추상화

설계시간이 길어지는 것을 방지하기 위해서 생산성을 높이기 위한 기술을 개발해야 했는데, 하드웨어와 소프트웨어의 생산성을 높이는 핵심 기술 중 하나는 여러 가지 계층에서 설계를 특정짓는 추상화를 사용하는 것이다.
하위 수준의 상세한 사항을 안 보이게 함으로써 상위 수준 모델을 단순화한다.

자주 생기는 일을 빠르게

자주 생기는 일을 빠르게 만드는 것이 드물게 생기는 일을 최적화하는 것보다 성능 개선에 도움이 된다.
자주 생기는 일을 미리 알기 위해서는 세심한 실험과 측정을 거쳐야만 한다.

병렬성을 통한 성능 개선

컴퓨팅의 여명기부터 컴퓨터 설계자들은 연산을 병렬적으로 수행하여 성능을 높이는 설계를 해 왔다.

파이프라이닝을 통한 성능 개선

파이프라이닝은 컴퓨터 구조에서 많이 볼 수 있는 병렬성의 특별한 형태이다.

예측을 통한 성능 개선

미리 예측해서 일을 처리하면 성능을 높일 수 있다.
예측을 잘못해서 이를 복구하는 비용이 비싸지 않고, 예측 성공 확률이 비교적 높은 경우, 예측을 해서 미리 일을 수행하는 것이 평균적으로 빠른 경우가 종종 있다.

메모리 계층구조

메모리의 속도는 성능을 좌우하고, 메모리의 크기가 풀 수 있는 문제의 크기를 제한하며, 메모리의 가격이 오늘날 컴퓨터 가격에서 차지하는 비중이 높다. 하지만 빠르고 크고 값싼 메모리를 원하기 때문에 이를 메모리 계층구조로 해결한다.

여유분을 이용한 신용도 개선

컴퓨터는 빠르기만 해서는 안되고, 신뢰할 수 있어야 한다. 모든 물리 소자는 장애가 발생할 수 있으므로, 장애를 감지하고 장애가 난 소자를 대치할 수 있도록 여유분을 준비하면 컴퓨터의 신용도를 개선시킬 수 있다.

#프로그램 밑의 세계

시스템 소프트웨어

소프트웨어는 계층적으로 구성되는데, 응용 프로그램이 가장 바깥쪽에 위치하며, 여러 가지 시스템 소프트웨어가 하드웨어와 응용 소프트웨어 사이에 존재한다. 시스템 소프트웨어에서 핵심이 되는 두 가지는 운영체제와 컴파일러이다.

  • 운영체제
    사용자 프로그램과 하드웨어 간의 인터페이스 역할을 하면서 각종 서비스와 감독 기능을 제공한다.

    운영체제가 처리하는 가장 중요한 기능

    기본적 입출력 작업의 처리
    보조기억장치 및 메모리 할당
    컴퓨터를 동시에 사용하는 여러 응용들 간의 컴퓨터 공유 방법 제공

오늘날 사용되고 있는 운영체제의 예로는 Windows, Linux, iOS

  • 컴파일러
    C, C++, Java와 같은 상위 수준 언어로 작성된 프로그램을 하드웨어가 실행할 수 있는 명령어로 번역하는 중요한 일을 한다.
    상위 수준 언어를 어셈블리 언어 문장으로 바꾼다.
    (상위 수준 언어를 쓰면 1. 프로그래머가 영어 단어와 수학 기호를 사용해서 자연스러운 영어로 생각할 수 있게 하며, 작성된 프로그램도 이상한 부호로 된 표 형태보다 일반 문장과 훨씬 비슷한 읽기 좋은 모양이 된다. 2. 프로그래머의 생산성을 높여준다. 3. 프로그램을 개발한 기종과 상관없이 어느 컴퓨터에서든 실행이 가능하다는 점이다.)

  • 어셈블러
    기호로 된 명령어(어셈블리 언어)를 이진수 프로그램으로 번역하는 프로그램

  • 어셈블리 언어
    기계 명령어를 기호 형태로 표현한 것
    컴퓨터가 수행할 명령어를 한 줄에 하나씩 써야 하기 때문에 프로그래머에게 기계식 사고방식을 강요한다.

  • 기계어
    기계 명령어의 이진 표현으로 기계가 이해하는 언어이다.

#케이스를 열고

메모리

실행 중인 프로그램과 프로그램이 필요로 하는 데이터를 기억한다.
메모리는 DRAM 칩으로 구성되어 있는데, DRAM 여러 개를 한데 묶어서 프로그램의 명령어와 데이터를 기억하는 데 사용한다.

(DRAM에서 RAM이란 말은 자기 테이프 같은 순차 접근 메모리와는 반대로 메모리의 어떤 부분을 읽든지 같은 시간이 걸린다는 것을 의미한다.)

캐시 메모리

DRAM의 버퍼 역할을 하는 작고 빠른 메모리.

캐시는 SRAM(static random access memory)이라는 다른 메모리 기술을 이용하는데, DRAM보다 빠르지만 집적도가 낮아서 가격이 비싸다.
SRAM과 DRAM은 메모리 계층구조의 두 계층을 구성한다.

휘발성 메모리

컴퓨터 안에 기억된 내용은 전원이 끊어지면 다 없어진다. 왜냐하면 컴퓨터 내부의 메모리는 휘발성(volatile) 메모리이기 때문이다.

비휘발성 메모리

전원공급이 끊어져도 데이터를 계속 기억하는 기억장치로, 다음 실행때까지 프로그램을 저장하는 데 사용된다.

실행되는 동안 데이터와 프로그램을 기억하는 휘발성 메모리와 다음번 실행때까지 데이터와 프로그램을 저장하는 비휘발성 메모리를 구분하기 위해, 전자를 메인 메모리(main memory) 또는 1차 메모리(primary memory)라고 하고 후자를 보조기억장치(secondary memory)라고 한다. 보조기억장치는 메모리 계층구조에서 메인 메모리보다 한 단계 아래 계층에 해당한다.


출처: https://jjoreg.tistory.com/entry/%EC%9C%88%EB%8F%84%EC%9A%B0-%EC%8B%9C%EC%8A%A4%ED%85%9C-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-16%EC%9E%A5-%EC%BB%B4%ED%93%A8%ED%84%B0-%EA%B5%AC%EC%A1%B04

#성능

응답시간

실행시간이라고도 한다. 컴퓨터가 태스크를 완료하기까지의 총 소요시간으로 디스크 접근, 메모리 접근, 입출력 작업, 운영체제 오버헤드 및 CPU 시간을 다 포함한다.

처리량

대역폭이라고도 한다. 단위시간당 완료하는 태스크의 수를 나타내는 또 다른 성능 척도.

  1. 컴퓨터의 프로세서를 더 빠른 버전으로 바꾼다.
  2. 여러 개의 프로세서가 각기 다른 태스크를 담당하는 시스템에 프로세서를 하나 추가한다.

응답시간을 단축시키면 거의 대부분 처리량은 좋아진다
1번의 경우 응답시간과 처리량이 모두 개선된다.
2번의 경우 특정 태스크의 실행시간이 단축되는 것은 아니므로 처리량만이 개선된다.
다만 처리에 대한 요구가 처리량보다 커지면 일부는 큐에 넣어 기다리게 해야하는데, 처리량이 커지면 큐에서 대기하는 시간이 짧아지므로 응답시간도 개선된다.
대부분의 실제 컴퓨터에서 실행시간이나 처리량 중 하나가 변하면 다른 쪽에도 영향을 미치게 된다.

성능을 최대화하기 위해서는 어떤 태스크의 응답시간 또는 실행시간을 최소화해야 한다.

성능 측정

시간은 컴퓨터 성능의 가장 기본적인 척도

컴퓨터를 공유하는 경우, 프로세서 하나가 여러 프로그램을 동시에 실행하는 경우가 많이 있기 때문에 특정 프로그램의 경과시간을 최소화하는 것보다 처리량을 최적화하는 것이 중요할 수 있다. 그러므로 경과시간과 구분해서 프로세서가 순수하게 이 프로그램을 실행하기 위해 소비한 시간을 계산할 필요가 있는데, 이 시간을 CPU 실행시간(CPU 시간)이라고 한다.

CPU 실행 시간

특정 작업의 실행을 위해 CPU가 소비한 실제 시간.
사용자 CPU 시간과 시스템 CPU 시간으로 나눌 수 있다.

사용자 CPU 시간

프로그램 자체에 소비된 CPU 시간

시스템 CPU 시간

프로그램의 수행을 위해서 운영체제가 소비한 CPU 시간

클럭 사이클

틱, 클럭 틱, 클럭 주기, 클럭, 사이클이라고도 부른다.
일정한 속도를 가지고 동작하는 프로세서 클럭 한 주기 동안의 시간

클럭 주기

각 클럭 사이클의 길이

profile
뚜벅뚜벅 열심히 공부하는 개발자

0개의 댓글