본문 바로가기

전공 테트리스/컴퓨터구조

[컴퓨터구조] 1. 컴퓨터 추상화 및 기술

1. 컴퓨터의 종류

 

사용자 컴퓨터

  • 범용성, 다양한 소프트웨어
  • 비용/ 성능 거래의 대상

서버 컴퓨터

  • 네트워크 기반
  • 고용량, 성능, 신뢰
  • 소형 서버부터 빌딩 사이즈까지 다양한 범위

슈퍼 컴퓨터

  • 서버 유형
  • 고급 과학 및 엔지니어링 계산
  • 최고의 기능, 그러나 전체적인 컴퓨터 시장에서 작은 규모를 차지

임베디드 컴퓨터(내장형)

  • 시스템의 구성요소로 숨겨져있음
  • 엄격한 전력/ 성능/ 비용 제약

 

 

2. 컴퓨터 구조

 

어플리케이션 sw > 시스템 sw (컴파일러, 운영체제) > 하드웨어

 

1. Application software

  • 고급 언어로 작성됨

2. System software

  • Compiler (컴파일러)
    • HLL code (고급 언어) → machine code (기계어) 번역
    • HLL(High Level Programming Language)
  • Operating System (운영체제) : Service code
    • 입/출력 처리
    • 메모리 및 저장 공간 관리
    • 작업 예약 및 리소스 공유

3. Hardware

  • 프로세서, 메모리, I/O 컨트롤러

 

 

3. 프로그램 코드 수준

 

  1. 고급어
    • 문제 영역에 가까운 추상화 수준
    • 생산성과 이식성 제공
  2. 어셈블리어
    • 명령어의 텍스트 표현
  3. 하드웨어 표현
    • 이진수(비트)
    • 암호화된(encoded) 명령어 및 데이터

 

 

4. 컴퓨터의 구성 요소

CPU : Control + Datapath (제어 + 데이터 경로)

Memory : 데이터 저장

 

I/Os

GPU (graphic processing unit, 그래픽 처리 장치)

 컴퓨터 시스템에서 그래픽 연산을 빠르게 처리하여 모니터에 출력하는 연산 장치

사용자 인터페이스 장치

디스플레이, 키보드, 마우스, 사운드 등등

Storage devices (저장 장치)

- HDD(hard disk drive), SSD(solid state drive), CD/DVD

- 네트워크 어댑터(이더넷: 같은 지역의 네트워크인 LAN을 유선으로 구현하는 네트워크 프로토콜)

- ethernet(이더넷), 3/4/5G, WiFi, Bluetooth

 

** 모든 컴퓨터에 동일한 구성 요소**

 

 

 

 

5. 무어의 법칙

 

“칩에 통합된 트렌지스터의 수는 24개월마다 약 두 배로 증가합니다.”

 

즉, 컴퓨터를 설계하는 데에는 수 년이 소요되므로 시작 지점보다 종료 지점의 기술을 예상해야 한다.

  • 새로운 애플리케이션을 실현 가능하게 한다
    • www, search engines
    • 스마트폰, VR/AR
    • AI, 자율주행차
    • 인간 게놈 프로젝트
  • 컴퓨터의 보편화

약 2년마다 최소한의 비용 증가로 반도체 집적회로에 집적할 수 있는 트렌지스터 숫자가 두 배씩 증가한다는 관측이다.

(선의 간격이 좁아지면서 집적도가 증가하고, 집적할 수 있는 수가 증가)

 

인텔 공동 창립자인 고든 무어는 1965년 발표한 논문에서 향후 10년간 매년 트렌지스터가 두 배로 증가할 것이라고 예측했다. 그 후 10년 뒤인 1975년, 고든 무어는 이를 2년 마다 두 배로 증가한다고 수정했다. 새로운 트렌드를 기반으로 한 이 추정치는 약 60년 가까이 반도체 산업의 기본 원칙이 되어왔다. (테크데일리, 김정호)

 

 

 

6. 트렌지스터 및 논리 게이트

 💡 CMOS 기술로 구축된 NAND 로직

 

CMOD (complementary metal oxide semiconductor, 시모스)

: 집적 회로의 한 종류로, 마이크로프로새서나 SRAM 등의 디지털 회로를 구성하는 데에 이용된다.메인보드에 내장된 소형 전지로 구동되는 반도체 칩으로 전원이 꺼져도 저장된 설정 정보를 유지할 수 있다.

 

NAND gate (Nagative AND)

: 디지털 회로 분야에서 모든 입력이 참일 때에만 거짓인 출력을 내보내는 논리 회로 (NOT과 논리적으로 동일)

 

 

 

 

7. IC 제조 (집적회로)

 

IC(Integrated Circuit, 집적회로)

 

: 반도체로 만든 전자회로의 집합. 여러 독립된 요소를 집적해서 하나의 칩으로 만든 것인데 각각의 트랜지스터 칩을 이용해서 회로로 만들 때보다 훨씬 작게 만들 수 있다.

 

wafer

 

: 일명 슬라이스, 기판. 집적 회로 제작을 위한 전자 기기 및 기존의 웨이퍼 기반 태양광 전지에 사용되는 결정질 실리콘과 같은 반도체 소재의 얇은 조각

  • 웨이퍼 비용과 면적은 고정된다.

die

 

: 집적 회로에서 반도체 물질의 자그마한 사각형 조각을 말하며, 여기에 회로가 제작되어 있다. 일반적으로 하나의 웨이퍼에 여러 개의 집적 회로가 생산된다.

웨이퍼는 절단을 통해 여러 조각으로 나뉘는데 각 조각에는 한 개의 집적 회로가 담겨있다. 이러한 각 조각들을 다이라고 부른다.

  • die 면적은 아키텍처 및 회로 설계에 따라 결정된다.

yield (수율)

 

: 결함이 없는 합격품의 비율. 웨이퍼 한 장에 설계된 최대 칩(IC)의 개수 대비 실제 생산된 정상 칩의 개수를 백분율로 나타낸 것.

  • 불량률은 제조 공정에 따라 결정된다

 

 

Q. 칩을 크게 만들면 생기는 문제

A. 원의 형태라 모서리 조각은 쓰지 못하므로 버리는 조각이 많아짐.

 

 

 

 

 

 

8. CPU/ Memory/ Power Trends

 

CPU Trends

  • logic capacity : ~30% / year
  • Clock rate : ~20% / year
    • 클럭 속도가 높을수록 CPU 속도가 빠르다. CPU가 초당 실행하는 사이클 수를 GHz(기가헤르츠) 단위로 측정한다. “사이클”은 CPU 속도를 측정하는 기본 단위이다. 각 사이클 동안 프로세서 내의 수억 개의 트렌지스터가 열고 닫힌다.

 

Memory Trends

  • DRAM capacity : ~60% / year (3년마다 4배)
  • DRAM speed : ~10% / year
    • DRAM(Dynamic Access Memory) : 정보를 읽을 때 순차적으로 읽는 것이 아닌, 랜덤하게 읽을 수 있기 때문에 데이터의 읽기/ 쓰기 속도가 매우 빠른 특성을 가지는 메모리이다.
    • 아주 빠른 속도로 데이터를 연산 처리하는 시스템 반도체. CPU나 GPU가 요구하는 데이터를 임시로 저장 및 처리하는 역할을 담당한다.

 

Power Trends

  • The Power Wall (전력 장벽)
    • Can’s reduce voltage(전압)
    • Can’s remove more heat
    프로세서가 발전하면서 필요 전력량은 더 이상 높일 수 없을 정도로 높아지면서 발열 문제를 겪고 있었고, 때문에 전력을 유지하면서 미세 공정으로 전압(voltage)을 낮춰서 트랜지스터를 더 많이 집적하거나(Capacity Load) 클럭(Frequency)을 더 높게 올리는 방식으로 성능을 개선하였다.
  • 하지만 어느 순간부터 더 이상 전압을 낮추면 전류가 새어버리는 지경에 도달했고, 결국 더 이상 전압을 낮출 수 없게 되면서 이 방법으로 성능을 확보하는 게 어려워졌다. 이러한 현상을 전력 장벽이라고 부른다.
  • In CMOS IC technology
    • Power = Capacitive load * voltage^2 * Frequency

 

 

 

9. Multicore

Uniprocessor Performance (단일 프로세서 성능)

: 항상 시스템 내에 하나의 프로세스만이 존재하며, 현재의 프로세서가 종료된 뒤에 다른 프로세서가 생성되어 실행할 수 있다.

 

 

멀티 코어로 전환

: 한 컴퓨터에 2개 이상의 CPU가 장착된 것을 말한다. 현재에 이르러서는/color 한 CPU에 여러 개의 코어가 장착된 것을 말한다.

 

> ILP wall (Instruction level Parallelism, 명령어 수준 병렬)

- Control dependency (제어 종속성)

- Data dependency

 

> Power wall

 

> memory Wall

: AI가 처리해야 하는 데이터의 용량이 큰 폭으로 증가하고 있으나, 이를 처리할만한 메모리 용량은 그만큼 성장하지 못하고 있다. 따라서 AI가 처리할 수 있는 데이터 최대 용량과 메모리 용량 간 차이가 발생하고, 그만큼의 비효율이 발생하는 것이 실정이다. 이 차이를 Memory Wall 이라고 한다.

 

- memory latency가 연간 10% 향상됨

- memory latency : 어떤 명령을 메모리에 주었을 때 그 명령을 실제로 수행하기까지 시간

- Cache는 수익 감소를 보여준다

- Cache(캐시) : 자주 사용하는 데이터나 값을 미리 복사해 놓는 임시 장소. 저장 공간이 작고 비용이 비싼 대신, 빠른 성능을 제공한다.

 

 

 

 

 

10. Amdahl’s Law (암달의 법칙)

  • 컴퓨터 측면을 개선하고 전체 성능의 비례적인 향상을 기대한다.

 

 

 

 

11. ISA (Instruction Set Architecture, 명령어 집합 구조)

 

  • 하드웨어/ 소프트웨어 인터페이스
    • 소프트웨어(OS, 컴파일러 등)에 표시되는 하드웨어 추상화
    • 명령어, 인코딩, 레지스터, 데이터 유형, 주소 지정 모드 등
    • CPU 작동 방식에 관해 쓰여진 문서
    • e.g., 모든 64비트 Intel CPU는 동일한 x86-64(또는 인텔 64) ISA를 따른다.
  • (+)
    • ISA : 최하위 레벨의 프로그래밍 인터페이스로 프로세서가 이해하는, 실행 가능한 언어
    • ISA가 다른 프로세서라면 x86 ISA로 만들어진 프로그램은 작동할 수 없음.
    • 프로세서가 이해하는 명령어 하나를 instruction이라 하고, 고급 언어는 컴파일러나 인터프리터를 거쳐 프로세서가 이해할 수 있는 원시적인 instruction의 흐름으로 바뀐다.
    • 명령어는 정수 형태로 전달되는데, 이진수 값으로 바꾸는 것을 “인코딩”, 그 반대를 “디코딩”이라고 한다.
    • x86 또는 80x86은 인텔이 개발한 마이크로프로세서 계열을 부르는 말이자, 이들과 호환되는 프로세서들에서 사용한 명령어 집합 구조들을 통칭하는 말이다.

 

12. 추상화와 현실

 

 

 

 

13. Seven Great Ideas

(1) 설계를 단순화하기 위해 추상화 하여라. (Use Abstraction to Simplify Design)

  • 추상화란, 하위 수준의 상세한 사항을 안 보이게 함으로써 상위 수준의 모델을 단순화 하는 것이다.
  • 생산성을 높이는 핵심 기술 중 하나.
  • 추상화는 복잡성을 처리하는 데 도움을 준다.
  • 하위 수준의 세부 정보 숨기기
  • 추상화에 한계 존재
  • 특히 버그가 존재하는 경우, 하위에 구현된 것들의 세부 정보를 이해해야 한다.

 

(2) 흔한 일을 빠르게 하여라. (Make the common case fast)

 

(3) 병렬성을 통한 성능 개선 (Performance via Parallelism)

 

(4) 파이프라이닝을 통한 성능 개선 (Performance via Pipelining)

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

 

(5) 예측을 통한 성능 개선 (Performance via Prediction)

 

(6) 메모리의 계층 구조 (Hierarchy of Memories)

최상위 계층에는 비트 당 가격이 제일 비싸지만 작고 빠른 메모리를 사용하고,최하위 계층에는 느리지만 크고 비트 당 가격이 가장 싼 메모리를 사용한다.

 

(7) 여분을 통한 신용도 개선 (Dependability via Redundancy)

 

 

 

참고

 

Computer Abstraction and Technology

Computer 1) 컴퓨터의 종류 - Personal computer : 개인이나 기업에서 범용적으로 사용되는 컴퓨터. 가격과 성능의 절충 - Server computer : 클라이언트에게 네트워크를 통해 정보나 서비스를 제공하는 컴퓨

dheldh77.tistory.com

 

 

[컴퓨터 구조] Chapter 1. Computer Abstractions and Technology

강의 주소 : 연남대 최규상 교수님 컴퓨터 구조 강의 (2015년) > Chapter 1. Computer Abstractions and Technology

velog.io