*학부에서 배운 강의 내용을 바탕으로 작성되었습니다*
컴퓨터의 기본 구성 요소(Computer's Basic Componets)
컴퓨터는 크게 4가지로 구성된다.
1. 처리기(processor)
: 컴퓨터의 동작을 제어하고 데이터를 처리한다.
처리기가 하나만 있는 경우를 일반적으로 중앙처리장치(CPU, Central Procession Unit)라고 한다.
2. 주기억장치(main memory)
: 데이터와 프로그램을 저장한다.
일반적으로 휘발성(volatile)이기 때문에, 컴퓨터의 전원이 꺼지면 메모리의 내용이 사라진다.
반면에 디스크의 메모리는 비휘발성(nonvolatile)이기 때문에, 컴퓨터의 전원이 꺼져도 유지된다.
주기억장치는 실기억장치(real memory) 혹은 주 메모리(primary memory)라고도 불린다.
3. 입출력 모듈(I/O module)
: 컴퓨터와 외부 환경 간의 데이터 이동을 담당한다.
외부 환경은 보조기억장치, 통신장비, 단말기를 포함한 다양한 외부 장치로 구성된다.
4. 시스템 버스(System Bus)
: 처리기, 주기억장치, 입출력 모듈 간의 통신을 제공한다.
CPU에 의해 실행되는 모든 명령은 메모리 접근을 요구한다.
따라서 CPU을 위해 데이터는 보조기억장치(secondary storage)에서 주기억장치(primary memory)로 이동한다.
Disk ---(Bus) ---> Memory ---(Bus)---> Register의 흐름을 갖는다.
처리기(processor)
1. Arithmetic/logic unit(ALU)
프로세서의 구성 요소 중 하나로 Arithmetic/logig unit(ALU)라는 연산 장치가 있다.
ALU는 수학적 계산 및 논리적 비교를 수행한다.
2. Central Processing Unit(CPU)
ALU, 제어 유닛, 레지스터, 멀티프로세서를 이용하여 명령어 집합을 수행하는 하드웨어 구성요소이다.
3. 다중처리기(Multiprocessors)
각 칩에는 여러 수준의 대용량 메모리 캐시를 가진 코어라고 하는 여러 프로세서가 포함되어 있다.
CPU의 Frequency가 증가할수록 CPU의 효율이 증가한다. 하지만 Frequency가 증가함에 따라 CPU가 소모하는 Power도 증가한다.
그래서 오른쪽 그래프를 보면 CPU 발전 초기에는 Clock Rate가 급격하게 증가하지만, 충분히 Clock Rate가 증가한 시점부터는 Clock Rate의 증가보다는, 적절한 Clock Rate를 유지하며 Power를 낮추는 방향으로 CPU가 발전해 왔다.
프로세서의 진화(Evolution of processor)
1. GPU(Graphical Processing Units)
: 수학적 계산에 대한 요구가 증가됨에 따라 탄생했다.
단일 명령 다중 데이터(Single Instruction Multiple Data, SIMD) 기술을 통해 효율적인 계산을 제공한다.
2. SoC(System on Chip)
: 휴대용 장치의 요구사항을 충족시키기 위해 탄생했다.
CPU 및 캐시 외에도 DSP, GPU, 코텍, 메인 메모리와 같은 구성요소가 동일한 칩에 존재한다.
3. 폰 노이만 구조(Von Neumann Architecture)
: 폰 노이만에 의해 1945년에 탄생한 컴퓨터 구조이다.
명령어가 fetch 해오는 저장된 프로그램 컴퓨터와 데이터 작업이 동시에 발생할 수 없다.
4. : 폰 노이만 병목 현상(Von Neumann bottleneck) 해결 -> AI Application의 큰 도전 과제
폰 노이만 병목 현상은 CPU와 메모리 사이의 데이터 이동을 담당하는 버스로 인해 생기는 데이터 전송률의 한계로 발생한다.
따라서, 이러한 한계를 해결하기 위해 미래의 AI Application들에게는 사람의 신경 기능의 원리를 작동 기반으로 하는 Neuromorphic Architecture라는 새로운 패러다임이 큰 도전 과제로 자리 잡았다.
메모리(memory)
RAM(Random Access Memory)
: 특정 주소를 갖고 byte addressable한 곳에서 정보를 hold한 다음 사용자로부터 read/write가 가능한 디바이스이다.
1. Static RAM(SRAM)
: 캐시는 SRAM으로 이루어져 있다.
6 transistors/bit로 낮은 밀도(poor density)를 갖는다.
여러 개의 트랜지스터를 사용 -> 구조 복잡 -> 용량을 크게 만들기 어렵고 가격 비쌈 but 빠른 속도
2. Dynamic RAM(DRAM)
: 주기억장치(main memory)에 대개 DRAM이 사용된다.
단순한 transistor/capacitor(축전기)의 쌍으로 이루어진다. 1 transistor/bit로 높은 밀도(high density)를 갖는다.
SRAM과는 반대로 구조가 단순하여 대용량으로 제작 가능하고 가격은 저렴하지만 SRAM에 비해 속도가 느리다.
축전기의 충전상태를 통해 데이터를 기록하고 저장하기 때문에 DRAM은 주기적으로 전기를 공급하는 재충전(Refresh)이 필요하다.
주기적으로 축전기에 전기가 공급되지 않으면 방전되어 데이터가 손실된다.
위 사진에서 볼 수 있듯이 SRAM, DRAM 모두 휘발성(volatile) 타입이다. 따라서 전력이 공급되지 않으면 데이터를 저장할 수 없다.
그렇기에 전원이 꺼지더라도 데이터를 저장하기 위해 Flash Memory(SSD), HDD와 같은 비휘발성 메모리를 사용한다.
Flash Memory
- Flash Memory는 비휘발성 메모리의 유형 중 하나이다.
- Flash Memory는 빠르고 내구성이 뛰어난 비휘발성 장치이다.
- 빠른 접근, 높은 충격/진동 저항성을 제공한다.
Flash Memory의 기본 속성
1. Asymmetric read and write
: read 연산(~20 µs)이 write 연산(~200 µs) 보다 더 빠르다.
2. No in-place update
: 페이지가 속한 전체 블록이 지워진 후에만 페이지를 쓸 수 있다. 즉, write 된 내용이 있으면 지우고 써야 한다.
3. Limited endurance
: 각 블록들은 약 100,000번의 반복 쓰기 후 사용할 수 없게 된다. 이렇게 사용에 한계가 존재한다.
이러한 endurance를 극복하기 위해 wear leveling이 사용된다.
HDD(Hard Disk Drive)
- 비휘발성 타입이다.
- 자기적인 방법을 이용한 저장장치이다.
- 주로 컴퓨터 데이터를 저장하는 데 널리 사용된다.
- read/write는 각각 5~35ms 소요된다.
SSD(Solid State DIsk)
- SSD는 Flash Memory를 기반으로 하는 저장 기술이다.
- Flash Translation Layer (FTL)
Flash Memory의 특성을 숨기면서 HDD의 기능을 흉내 내는 소프트웨어 계층 - Flash Memroy의 wear leveling을 고려하지 않고 HDD처럼 read/write하면 성능이 저하된다.
비교(Comparison)
Processor Cycle을 사람의 시간 1초라고 하자.
그럼 SSD에 한 번 접근하려면 27시간, Disk에 한 번 접근하려면 162일이 걸린다.
아직 캐시에 대해서 얘기하진 않았지만, 이런 비효율적인 메모리 접근을 해결하기 위해 캐시를 사용하여 빠르게 메모리에 접근하게 한다.
프로세서 레지스터(Processor Register)
1. 범용 목적 레지스터(General purpose register)
- 프로그래머가 레지스터 사용을 최적화함으로써 메모리 참조를 최소화할 수 있게 한다.
- 중간 결과 혹은 데이터 값을 hold한다.
- 레지스터 파일(Register file) : 프로세서의 모든 범용 목적 레지스터들을 포함한다.
2. 특수 목적 레지스터(Special purpose register)
- Program counter(PC)
다음에 반입될 명령어의 주소를 포함한다. - Instruction register(IR)
가장 최근에 반입된 명령어를 포함한다. - Program status word(PSW)
CPU의 현재 상태를 포함한다. (Condition code, Interrupt masks, Privilege level etc.) - Memory address register(MAR)
다음에 읽거나 기록할 메모리 내 주소를 명시하는 레지스터 - Memory buffer(or data) register(MBR or MDR)
메모리에 기록되거나 메모리로부터 읽힐 데이터를 저장하는 레지스터
즉, MAR이 명시하는 메모리 주소가 가르키는 내용을 저장한다.
'운영체제(OS, Operating System)' 카테고리의 다른 글
[운영체제(OS, Operating System)] Computer System Overview #2 (0) | 2023.04.07 |
---|