diff --git a/.DS_Store b/.DS_Store index 921d48b..7edd73f 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/_posts/fast/2024-10-25-os.md b/_posts/fast/2024-10-25-os.md index feb8efc..597536b 100644 --- a/_posts/fast/2024-10-25-os.md +++ b/_posts/fast/2024-10-25-os.md @@ -59,7 +59,11 @@ tags: ["컴퓨터", "하드웨어", "CPU"] 2. [RISC](#2-1-8-2-risc) 2. [메모리(주기억장치)](#2-2-메모리주기억장치) 1. [RAM](#2-2-1-ram) - 2. [캐시-메모리](#2-2-2-캐시-메모리) + 1. [RAM의 종류](#2-2-1-1-ram의-종류) + 2. [ROM](#2-2-2-rom) + 1. [ROM의 종류](#2-2-2-1-rom의-종류) + 3. [캐시-메모리](#2-2-3-캐시-메모리) + 4. [메모리 주소](#2-2-4-메모리-주소) 3. [보조기억장치](#2-3-보조기억장치) 4. [입출력장치(I/O)](#2-4-입출력장치io) 5. [버스](#2-5-버스) @@ -929,9 +933,109 @@ ARM 등이 RISC에 해당되며, 임베디드 시스템에 사용되는 프로 ## 2-2. 메모리(주기억장치) +여태 CPU에 대한 내용을 다뤘다. 사실 CPU에 대한 동작 과정과 구조만 알고있어도 컴퓨터를 다루는데 무리가 전혀 없다. +하지만 컴퓨터는 CPU로만 이루어져있진 않다. 예컨대 CPU 외에 메모리, 입출력장치 등도 있어야 컴퓨터가 동작한다. + +이번 파트에선 그중 하나인 "메모리"에 대해 다뤄볼 예정으로, 크게 **RAM**과 **ROM**으로 구분하여 설명할 예정이다. + ### 2-2-1. RAM -### 2-2-2. 캐시-메모리 +우리가 앞서 "메모리"라고 하면 대부분 **RAM**을 의미한다고 설명하였다. ROM은 나중에 설명하고, RAM에 대해 먼저 설명하겠다. + +> CPU는 메모리로 부터 데이터를 가져와 명령어를 실행한다. 또한 데이터를 메모리에 저장하기도 한다. +{:.info} + +사실 위 설명만으로도 RAM이 어떤 역할을 하는지 대략적으로 알 수 있다. +어떠한 프로그램이 실행되면 보조기억장치(HDD, SSD 등)에서 프로그램의 데이터[^ram1]를 메모리로 가져와 CPU가 실행하게 된다. + +만약 RAM의 크기가 상대적으로 작다면, RAM에 올라갈 수 있는 프로그램의 크기도 제한되므로 성능이 떨어지게 된다. +추가적으로 프로그램의 크기가 너무 커 올라가지 못할 경우, 프로그램의 실행되는 일부만 올라가고 나머지는 가상 메모리에 저장된다. 가상메모리는 보조기억장치를 RAM처럼 사용하는 기술인데, 추후 설명하겠다. + +반대로 RAM의 크기가 상대적으로 크면 올라갈 수 있는 프로그램의 크기와 개수가 많아지므로 성능이 향상된다. + +또한 RAM은 전원이 꺼지면 데이터가 사라지기 때문에 **휘발성 메모리(Volatile Memory)**이다. + +#### 2-2-1-1. RAM의 종류 + +RAM엔 여러 종류가 있는데, 크게 **DRAM(Dynamic RAM)**과 **SRAM(Static RAM)**으로 나눌 수 있다. + +--- + +##### DRAM(Dynamic RAM) + +흔히 말하는 "RAM"은 대부분 DRAM을 의미한다. DRAM은 동적 램이라는 뜻으로, 데이터를 저장하는 방식이 동적이라는 뜻이다. +이게 무슨말이냐, 쉽게 말해 일정한 주기마다 데이터를 갱신(refresh)해야 한다는 뜻으로, 갱신을 하지 않으면 데이터가 사라진다. + +근데 왜 DRAM을 쓰냐, IT의 세계에선 그 무엇보다 중요한건 비용이다. 아무리 좋아도 비용이 비싸면 그만큼 안쓰이기 마련인데, DRAM은 비용이 저렴하고 상대적으로 소비전력도 낮으며, 밀도가 높아 용량이 크다는 장점이 있다. + +추가적으로 **SDRAM(Synchronous DRAM)**, **DDR SDRAM(Double Data Rate Synchronous DRAM)** 등의 DRAM이 존재하며, 이는 DRAM의 성능을 향상시킨 버전이다. + +**SDRAM**은 동기 DRAM이라는 뜻으로, CPU와 메모리의 속도를 맞추어 동작한다는 뜻이다. 즉 CPU 클럭과 메모리 클럭이 동일하게 동작한다. + +**DDR SDRAM**의 Double Data Rate는 데이터 전송 속도를 늘렸다는 의미다. 다른말로 설명하면 대역폭을 늘렸다는 의미인데, 그럼 한번에 전송되는 데이터의 양이 늘어나므로 성능이 향상된다. +오늘날 대부분의 컴퓨터는 DDR SDRAM을 사용하며, DDR2, DDR3, DDR4, DDR5 등의 버전이 존재한다. 뒤의 숫자는 2^n의 의미로, DDR4는 16개의 대역폭을 가지고 있다. + +--- + +##### SRAM(Static RAM) + +Static은 정적이라는 뜻으로, 데이터를 저장하는 방식이 정적이라는 뜻이다. 컴퓨터에 전원이 인가되어있는 동안 데이터가 유지되며, DRAM과는 다르게 주기적인 갱신이 필요없다. +또한 대부분 DRAM보다 속도가 빠르나, 비싸고 소비전력이 높다는 단점이 있다. + +또한 밀도가 낮아 용량이 작다는 단점이 있으나, 속도가 빨라 캐시 메모리에 사용되는 경우가 많다. + +### 2-2-2. ROM + +ROM은 Read-Only Memory의 약자로, 읽기 전용 메모리라는 뜻이다. 즉, 데이터를 읽기만 가능하고 쓰기가 불가능하다. +사실 불가능한건 아니며, 쓰기가 가능한 ROM도 존재한다. 이를 **PROM(Programmable ROM)**이라 하는데 곧 설명하겠다. + +ROM은 이름 뜻 그대로 첫 프로그래밍 이후 데이터를 다시 쓸 필요가 없는 부트로더, 펌웨어 등에 사용된다. 물론 현재에 와선 펌웨어 역시 플래시 메모리에 저장되는 경우도 있다. 플래시 메모리는 추후 설명하겠다. +크게 **마스크 ROM(Mask ROM)**과 **PROM(Programmable ROM)**으로, PROM의 하위로 **EPROM(Erasable Programmable ROM)**과 **EEPROM(Electrically Erasable Programmable ROM)** 등이 존재한다. + +추가적으로 ROM은 전원이 꺼져도 데이터가 유지되는 **비휘발성 메모리(Non-Volatile Memory)**이다. + +#### 2-2-2-1. ROM의 종류 + +ROM은 원래 Read Only, 즉 읽기 전용이였으나 오늘날엔 다시 쓸 수 있게 만들어져가고 있다. 초기의 진짜 Read Only의 ROM을 **마스크 ROM**이라 한다. + +--- +##### Mask ROM(마스크 ROM) + +**마스크 ROM**은 처음에 데이터를 쓰고 나면 다시 쓸 수 없는 ROM이다. 공장에서 만들어질때부터 데이터가 적히고, 이는 변경할 수 없기 때문에 오늘날엔 거의 쓰이지 않고 있다. + +--- +##### PROM(Programmable ROM) + +PROM은 처음에 데이터를 쓸 수 있지만, 한번 쓰면 다시 쓸 수 없는 ROM이다. 이는 사용자가 데이터를 쓸 수 있게 만들어져서 **Programmable**이라는 이름이 붙었다. +마스크 ROM은 공장에서 부터 들어갈 내용을 패턴화하여 써넣는 반면, PROM은 아무것도 없는 상태로 사용자에게 공급되어 사용자가 직접 데이터를 쓸 수 있다. + +하지만 한번 쓴 이후엔 마스크 ROM과 마찬가지로 다시 쓸 수 없다는 단점이 있다. + +--- +##### EPROM(Erasable Programmable ROM) + +**EPROM**은 PROM과 다르게 데이터를 지울 수 있는 ROM이다. 칩셋에 동그란 창이 있는데, 그 위로 자외선을 비추면 데이터가 지워진다. 그 이후 PROM Writer를 이용해 다시 데이터를 쓸 수 있다. +제조사 등에서 버그 수정 등을 위해 다시 프로그래밍 시 유용하다. + +--- +##### EEPROM(Electrically Erasable Programmable ROM) + +**EEPROM**은 EPROM과 다르게 자외선이 아닌 전기적인 방법으로 데이터를 지울 수 있는 ROM이다. 이는 EPROM보다 훨씬 편리하며, 현재의 플래시 메모리의 원형이 된다. +전기적으로 쓰고 지우기 때문에 자외선이나 PROM Writer가 필요없으며, 컴퓨터의 BIOS 등에 사용된다. 자외선을 사용하여 지우는 UVEPROM에 비해 EEPROM은 훨씬 편리하지만, 가격히 훨씬 비싸며 쓰기/지우기 속도가 느리다. + +--- +##### 플래시 메모리(Flash Memory) + +**플래시 메모리**는 EEPROM의 일종으로, EEPROM보다 더욱 편리하고 빠르며, 대용량의 저장이 가능하다. +굳이 따지자면 RAM과 ROM의 중간쯤에 위치하는데, ROM과 같이 비휘발성인데 반해 RAM과 같이 쓰기/읽기 속도가 빠르다. + +물론 RAM에 비교하면 월등히 느려 RAM 대용으론 부적합하고, 쓰기에 제한이 있어 몇십만~몇백만번 정도의 쓰기 이후엔 데이터를 더이상 쓸 수 없다. + +플래시 메모리는 주로 USB 메모리, SSD 등에 사용되며, 최근엔 컴퓨터의 BIOS에도 사용된다. 덕분에 사용자가 쉽게 BIOS를 업데이트 할 수 있게 되었다. + +### 2-2-3. 캐시 메모리 + +### 2-2-4. 메모리 주소 ## 2-3. 보조기억장치 @@ -963,3 +1067,4 @@ ARM 등이 RISC에 해당되며, 임베디드 시스템에 사용되는 프로 [^cisc2]: RISC에서도 가변 길이 명령어를 사용하기도 하기 때문에, CISC에서만 가변 길이 명령어를 사용한다는 특징도 사라지고 있는 추세이다. [^risc1]: 실제론 RISC의 명령어가 더 적거나 하진 않을 수 있다. 하지만 주소 지정 방식이 CISC보다 단순하여 명령어 처리에 효율적이다. [^risc2]: 실제로 전력 소모면에선 임베디드를 제외하면 큰 차이가 없긴 하다. +[^ram1]: 프로그램의 명령어들과 프로그램이 가지고있는 데이터를 의미한다.