저장장치의 종류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 데이터 접근 방식

- 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)

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

주요 요소
- 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
- CPU chip에 있는 bus interface가 bus에 대한 read transaction을 시작함
- CPU가 시스템 버스에 address A를 넘겨줌
- I/O 브릿지에서 해당 신호를 메모리 버스로 넘겨줌
- main memory는 메모리 버스로부터 주소를 읽어서 데이터를 DRAM으로 부터 얻고 메모리 버스에 그 데이터를 다시 보냄
- CPU가 시스템 버스에서 해당 데이터를 읽고 레지스터에 데이터 복사해서 넣음
- memory로 store
- CPU 가 시스템 버스에 주소를 전달
- 메모리에서 메모리 버스를 통해 해당 주소를 전달받고 데이터가 오기를 기다림
- CPU가 데이터를 복사하여 시스템 버스에 전달
CPU와 disk 사이의 read
- CPU는 memory mapped I/O라는 기법을 이용해 I/O 장치에 read, write 명령을 보냄
- address space의 address block이 I/O 장치와의 대화를 위해 마련되는 것임
- 각각의 address를 I/O port 라고 함
read 순서
- 예를 들어 disk controller가 0xa0에 매핑되어 있다면, cpu는 0xa0에 디스크로부터 데이터를 읽어와서 store 하는 instruction을 실행하게 됨
- disk에게 read를 하라는 명령을 보냄(종료 후, interrpt 할건지를 정하는 값을 파라미터로 함께)
- 읽어야할 데이터의 logical block number를 가르쳐줌
- disk sector가 저장되어야할 메모리 공간의 주소를 알려줌
- 그 후, disk 는 해당 content 를 main memory에 바로 전송함( DMA. Direct memory access — CPU의 개입 없이 스스로 메모리에 접근하는 것)
- DMA가 끝나고 나면 cpu에게 interrupt 신호를 보내어 disk read가 끝났다고 알려줌
Storage Technology Trends
- memory와 디스크 기술의 진리 : density를 늘리는 것이 access time을 줄이는 것보다 훨씬 쉽다
- SRAM은 CPU 성능의 증가를 거의 따라가고 있지만, DRAM과 디스크의 성능은 cpu의 성능의 증가를 따라가지 못하고 격차가 점점 벌어지고 있는 중임 → cache memory가 도입됨
- cpu cycle time을 줄이는 것이 힘들어지자, multi-core processor가 도입되었다