컴퓨터 구조

강한친구·2021년 9월 2일
1

Computer Architecture

목록 보기
1/12

이 카테고리에서는 컴퓨터 구조수업을 듣고 그 내용들을 정리하여 기록 할 예정이다. 오늘의 수업분량은 간단하게 컴퓨터 구조를 설명하고 기본 개념들을 이해하는 시간이다.

왜 컴퓨터 구조를 알아야 하는가?

건물을 지으려면 건물의 설계도를 알아야하고 각 건물 구성물들의 역할을 정확히 알고있어야한다. 그렇지 못하면 물렁한 땅 위에 고층건물을 지어서 건물이 흔들릴 수 도 있고, 부실시공이 될 수도 있다. 혹은 이러한 지식들 없이 건물을 짓는 일에 뛰어들게 되면, 핵심업무는 하지 못하고 벽돌만 나르다가 끝나게 된다. 과연 그걸 내가 지은 건물이라고 말할 수 있는가?

이러한 관점에서 컴퓨터 프로그래밍, 흔히들 코딩이라고 부르는것을 할 때 컴퓨터 구조를 아는것은 중요하다 생각된다. 컴퓨터 구조를 모른체 프로그래밍을 하면 부실하고 불안정한 프로그램이 나오거나, 프로그래밍이 아닌 단순한 코더로 남게 될 것이다.

교수님은 이걸 기본중의 기본이니 알아가라고 하셨다.

다양한 용어들

DRAM, Pipelining, Cache, Hierarchies, I/O, Virtual Memory 등 컴퓨터 구조에는 다양한 용어와 개념이 등장한다. DRAM, Cache, VM같은 단어들은 평소에 컴퓨터에 익숙하거나 관심이 있는 사람이라면, 혹은 자기손으로 컴퓨터를 구매하고 조립해본 사람이라면 알고 있을법한 개념이다. 다만 파이프라이닝같은 개념은 배워야만 알 수 있다.

이러한 지식들을 바탕으로 Memory_Management를 통해 Algorithm에서 어떤 연산이 일어나고, 어떤 데이터를 가지고 오고 이 데이터들에 대한 배치와 사용법을 익힐 수 있다고 한다.

다른 중요 개념으로는 Abstraction (추상)이 있다.
여기서 추상이라는건 회로를 설계하는 하드웨어를 말하는 것이 아니라, 논리적으로 CPU를 구성하기 위해선 어떤 구조가 필요한지에 대한 학습을 말한다.

Computre Architecture 에서의 Abstraction

  • hide low level details of computer systems
  • in order to facilitate design of sophisticated systems
  • 시스템에서 자세한 사항들음 숨겨서 복잡한 시스템 설계를 쉽게

ISA?

Instruction set architecture (ISA) 명령어 집합체

Instruction 이란 무엇일까?

  • Interface between hardware and low-level software
  • Programer 가 직접 다루는 computer systems 의 속성
  • conceptual structure (state) and functional behaviour (operation)
  • Processor 가 실행할 수 있는 명령여의 구체적인 집합을 ISA라 부름

간단한 그림으로 표현하면 이러한 느낌이다.

SW – applicaton, library, os, compiler, assembler
------------------------------------ <- ISA
HW – cpu, pci, etc

그래서 무엇을 배우는가?

MIPS Architecture ISA를 배우게 된다.
왜 MIPS인지 찾아보니 MIPS의 ISA가 직관적이고 이해하기 쉬워서 많은 수업에서 입문할 떄 배운다고 한다.

Register

Register – CPU안에 있는 임시적 저장 공간
계산을 위해선 두개의 대상이 되는 데이터가 있어야함
그 데이터들을 보관하는 공간이 register
그 결과를 계산하여 다시 register에 저장
궁극적으로는 그 결과를 가지고 우리가 보기 위해 그 결과를 memory로 배달함 (Load, Save)

PC - Program Convertor

  • 다음 명령에 대한 정보를 가지고 있는 레지스터이다.

Computer System Inside

Classic 5 Components

  • Processor = Datapath + Control
  • Memory
  • Input & Output
  • Input/output includes User-interface devices
    − display, keyboard, mouse
  • Storage devices
    − HDD, ODD, Flash
  • Network adapters
    − for communicating with other computers

Datapath / Control

데이터 관련 모든 작업을 수행하는 경로들을 말한다

  • ALU(Arithmatic logic unit), registers, internal buses 등이 있다.

Control

  • Datapath를 관리하고 조정하는 역할이다.

CPU의 계산

Cpu clock
Cpu clock cycle * clock cycle time
= cpu clock cycles / clock rate

[문제]
CPU execution time
= CPU clock cycles x clock cycle time
= CPU clock cycles / clock rate
Example:
Same instruction sets
Computer A : 4 GHz, 10 seconds
Computer B : ? GHz, 6 second
B requires 1.2 times as many clock cycles as A.

[정답]
CPU timeA
= CPU clock cyclesA / clock rateA
10 seconds = CPU clock cyclesA / (4 X 109 cycles/sec)
CPU clock cyclesA = 10 sec. X 4 X 109 cycles/sec
= 40 X 109 cycles
CPU timeB
= CPU clock cyclesB / clock rateB
= 1.2 X CPU clock cyclesA / clock rateB
6 seconds = 1.2 X 40 X 109 cycles / clock rateB
clock rateB
= 1.2 X 40 X 109
cycles / 6 seconds = 8 GHz

이런식으로 계산하면 된다.

Cmos ic technology
Power = capacitive load volatage^2 frequency

  • 집적도를 높이고 clockrate를 올렸지만 퍼포먼스가 늘어나면 파워는 제곱으로 늘어남 감당불가능한 cpu의 발전이 진행되어버림
  • Clockrate 올리기를 멈추고 architecture 를 높이거나 병렬화하여 다중CPU Multiprocess 개념이 등장함

0개의 댓글