HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
📖
공부한 책
/
📒
Computer Systems - A Programmer’s perspective
/Chap 6 : The Memory Hierarchy/
Storage Technologies

Storage Technologies

저장장치의 종류1. SRAM , DRAM (Volatile)DRAM 데이터 접근 방식2. ROM memory (Nonvolatile)Disk StorageLogical Disk Blocks( 디스크 구조의 추상화)3. Solid State Disk(SSD)CPU ↔ [Main Memory, I/O device] interaction주요 요소CPU와 메모리 사이의 load, store 과정CPU와 disk 사이의 readStorage Technology Trends

저장장치의 종류

1. SRAM , DRAM (Volatile)

ㅤ
Transistors per bit
Relative access time
Persistent
Relative cost
Applications
SRAM
6
1x
Yes
100x
Cache memory
DRAM
1
10x
No
1x
Main mem, frame buffers
  • SRAM은 캐시 메모리에, DRAM은 메인메모리와 frame buffer(graphic system의)에서 사용됨
  • SRAM cell이 DRAM cell 보다 transistor를 더 써서 density가 낮고 더 비싸고 전력을 더 소모함

DRAM 데이터 접근 방식

notion image
  • CPU가 Memory Controller에게 주소를 알려주면 Memory Controller가 RAS(Row Access Strobe)와 CAS(Column Access Strobe)로 나누어서 데이터를 찾게 됨

2. ROM memory (Nonvolatile)

  • 역사적인 이유로, 쓰기 작업이 가능한 ROM도 있음에도 불구하고 read-only memories(ROM)라고 불림
  • flash memory는 nonvolatile memory의 한 종류로 EEPROM을 기반하여 만들어졌고 flash-based disk drive 인 SSD(solid state disk)가 많이 쓰인다
  • ROM 장치 안에는 firmware라는 소프트웨어가 있어서 컴퓨터가 켜질 때, 같이 실행이 됨
    • 그래픽 카드나 디스크 드라이버의 controller가 CPU로부터 I/O 요청을 받았을 때, 해당 요청을 이 firmware에 요청하면 내부적으로 변환하여 값 조회가 가능함

Disk Storage

  • 디스크는 sector-sized block 에서 데이터를 읽고 씀
  • access time은 seek time, rotational latency, transfer time이 대부분의 시간을 차지함

Logical Disk Blocks( 디스크 구조의 추상화)

  • 디스크의 내부 구조는 복잡해서 OS 에게 이 구조의 복잡성을 그대로 보일 필요없이 숨기기 위하여 logical blocks를 사용한다.
  • disck package에 같이 있는 disk controller가 logical block과 실제 disk의 위치 매핑을 해줌
 

3. Solid State Disk(SSD)

notion image
  • 마찬가지로 Flash translation layer가 있어 I/O 요청을 내부 Flash memory로 매핑
  • SSD는 반도체 메모리로 설계되었고, 움직이는 부분도 없어서 rotating disk보다 random access 가 훨씬 빠름

CPU ↔ [Main Memory, I/O device] interaction

notion image

주요 요소

  • CPU chip
  • I/O bridge(memory controller를 포함)
    • system 버스의 전기 신호를 메모리 버스로 변환해줌
    • 시스템 버스, 메모리 버스를 I/O 버스(I/O 장치들이 사용하는 버스)와 연결해주는 역할도 함
  • DRAM memory module(main memory)
  • System 버스 : CPU 와 I/O bridge 사이를 연결
  • memory 버스 : I/O bridge와 Main memory 사이를 연결
  • I/O 버스 : I/O 장치들은 CPU와 메인메모리에 I/O 버스를 통하여 연결됨
    • 시스템 버스와 메모리 버스는 CPU에 의존적이지만, I/O 버스는 CPU와는 상관 없이 디자인됨
    • 시스템 버스와 메모리 버스에 비해 속도가 느리지만 다양한 종류의 3rd party 입출력 장치들을 수용할 수 있음
  • 네트워크 어답터 같은 추가 장치들은 마더보드의 빈 확장 slot에 adapter를 꽂음으로 I/O 버스에 연결될 수 있음

CPU와 메모리 사이의 load, store 과정

  • memory로부터 load
      1. CPU chip에 있는 bus interface가 bus에 대한 read transaction을 시작함
      1. CPU가 시스템 버스에 address A를 넘겨줌
      1. I/O 브릿지에서 해당 신호를 메모리 버스로 넘겨줌
      1. main memory는 메모리 버스로부터 주소를 읽어서 데이터를 DRAM으로 부터 얻고 메모리 버스에 그 데이터를 다시 보냄
      1. CPU가 시스템 버스에서 해당 데이터를 읽고 레지스터에 데이터 복사해서 넣음
  • memory로 store
      1. CPU 가 시스템 버스에 주소를 전달
      1. 메모리에서 메모리 버스를 통해 해당 주소를 전달받고 데이터가 오기를 기다림
      1. CPU가 데이터를 복사하여 시스템 버스에 전달

CPU와 disk 사이의 read

  • CPU는 memory mapped I/O라는 기법을 이용해 I/O 장치에 read, write 명령을 보냄
    • address space의 address block이 I/O 장치와의 대화를 위해 마련되는 것임
    • 각각의 address를 I/O port 라고 함
read 순서

  1. 예를 들어 disk controller가 0xa0에 매핑되어 있다면, cpu는 0xa0에 디스크로부터 데이터를 읽어와서 store 하는 instruction을 실행하게 됨
    1. disk에게 read를 하라는 명령을 보냄(종료 후, interrpt 할건지를 정하는 값을 파라미터로 함께)
    2. 읽어야할 데이터의 logical block number를 가르쳐줌
    3. disk sector가 저장되어야할 메모리 공간의 주소를 알려줌
  1. 그 후, disk 는 해당 content 를 main memory에 바로 전송함( DMA. Direct memory access — CPU의 개입 없이 스스로 메모리에 접근하는 것)
  1. DMA가 끝나고 나면 cpu에게 interrupt 신호를 보내어 disk read가 끝났다고 알려줌
 

Storage Technology Trends

  • memory와 디스크 기술의 진리 : density를 늘리는 것이 access time을 줄이는 것보다 훨씬 쉽다
  • SRAM은 CPU 성능의 증가를 거의 따라가고 있지만, DRAM과 디스크의 성능은 cpu의 성능의 증가를 따라가지 못하고 격차가 점점 벌어지고 있는 중임 → cache memory가 도입됨
  • cpu cycle time을 줄이는 것이 힘들어지자, multi-core processor가 도입되었다