Lecture #6 제5장 기억장치 (1)
강의 목차 5.1 기억장치 시스템의 특성들 5.2 기억장치 계층 5.3 반도체 기억 장치 5.4 기억장치 모듈의 설계 5.5 캐쉬기억장치
5.1 기억장치 시스템의 특성들 기억장치(Memory Device) 프로그램 및 데이터를 저장하는 장치 주기억장치(Main Memory) 현재 실행중인 프로그램과 처리되는 데이터를 저장하는 장치 CPU가 직접 접근하는 내부기억장치 보조기억장치(Secondary Memory) 프로그램 과 데이터를 반영구적으로 저장하는 저장 목적의 기억장치 I/O 제어기 또는 I/O 프로세서를 통해 접근하는 외부기억장치 계층적 기억장치(Hierarchical Memory System) 다양한 종류의 기억장치를 계층적으로 배치하여 하나의 기억장치를 구성한 기억장치 시스템 기억장치의 접근속도, 용량 그리고 비용 등을 고려하여 비용대비 성능을 최적화 가상기억장치(Virtual Memory) 등을 지원하기 위한 기반 구조 Computer Architecture
기억장치 시스템의 특성들 기억장치 액세스 (memory access) 액세스 방법에 따른 기억장치의 종류 기억장치에 어떤 정보를 쓰거나 읽는 동작 액세스 방법에 따른 기억장치의 종류 순차적 액세스(sequential access) : 저장된 정보를 처음부터 순서대로 액세스하는 방식 (예: 자기 테이프) 직접 액세스(direct access) : 액세스할 위치 근처로 직접 이동한 다음에, 순차적 검색을 통하여 최종 위치에 도달하는 방식 (예: 디스크, CD-ROM) 임의 액세스(random access) : 주소에 의해 직접 기억장소를 찾아 액세스하며, 어떤 기억 장소든 액세스하는 시간이 동일 (예: 반도체 기억장치) 연관 액세스(associative access) : 저장된 내용의 특정 비트들을 비교하여, 일치하는 내용을 액세스 (예: 연관 기억장치(associative memory)) Computer Architecture
기억장치의 설계 / 전송단위 / 주소지정 단위 기억장치 시스템을 설계하는 데 있어서 고려해야 할 주요 특성들 용량(capacity) 액세스 속도 전송 단위(unit of transfer) CPU가 한 번의 기억장치 액세스로 읽거나 쓸 수 있는 비트 수 주기억장치의 경우 : 단어(word) 단위 보조저장장치 : 블록(512 바이트 혹은 1K 바이트) 단위 주소지정 단위(addressable unit) 바이트 단위 혹은 단어 단위 주소 비트의 수 A와 주소지정 단위의 수 N과의 관계 : 2A = N Computer Architecture
액세스 속도를 나타내는 파라미터들 액세스 시간(access time) 주소와 쓰기/읽기 신호가 도착한 순간부터 데이터 액세스가 완료되는 순간까지의 시간 기억장치 사이클 시간(memory cycle time) = 액세스 시간 + 데이터 복원 시간(data restoration time) 반도체 기억장치, 디스크의 경우에는 데이터 복원 시간 = 0 데이터 전송률(data transfer rate) 기억장치로부터 초당 액세스 되는 비트 수 (1/액세스 시간) x (한 번에 읽혀지는 데이터 비트 수) [예] 액세스 시간 = 100ns, 액세스 단위 = 32비트인 경우, 데이터 전송률 = (1/100ns) x 32 = 320Mbits/sec Computer Architecture
기억장치의 유형 기억장치의 제조 재료에 따른 유형 데이터를 저장하는 성질에 따른 유형 반도체 기억장치(semiconductor memory) : 반도체 물질인 실리콘(Si) 칩을 이용한 기억장치 자기-표면 기억장치(magnetic-surface memory) : 자화 물질로 코팅된 표면에 정보를 저장하는 기억장치 (예: 디스크, 자기 테이프) 데이터를 저장하는 성질에 따른 유형 휘발성 기억장치(volatile memory) : 전원 공급이 중단되면 내용이 지워지는 기억장치 (예: RAM) 비휘발성 기억장치(nonvolatile memory) : 전원 공급에 관계없는 영구 저장장치 (예: ROM, 디스크, CD-ROM) 삭제불가능 기억장치(non-erasable memory) : 내용 변경이 불가능한 기억장치 (예: ROM) Computer Architecture
5.2 기억장치 계층 기억장치 설계에 있어서 가장 중요한 요소들 : 용량, 속도,가격 기억장치 특성들간의 관계 액세스 속도가 높아질수록, 비트당 가격은 높아진다 용량이 커질수록, 비트당 가격은 낮아진다 용량이 커질수록, 액세스 시간은 길어진다 계층적 기억장치시스템(hierarchical memory system) 기억장치의 성능대가격비(performance/cost ratio)를 향상시키기 위하여 한 시스템 내에 다양한 종류의 기억장치들을 사용하는 방식 계층적 기억장치시스템의 구성 방법 첫 번째 계층 기억장치 : 속도가 빠르나, 가격은 높은 기억장치 사용 두 번째 계층 기억장치 : 속도는 느리지만, 가격은 낮은 기억장치 사용 Computer Architecture
계층적 기억장치 효과의 예 첫 번째 계층 기억장치의 액세스 시간 = 50 ns 액세스할 정보가 첫 번째 계층에 있을 확률 = 50 % 평균 기억장치 액세스 시간 = (0.5 × 50ns) + (0.5 × 500ns) = 275ns 데이터가 첫 번째 계층에 있는 비율에 따른 평균 액세스 시간의 변화 비 율 평균 액세스 시간 20% 40% 60% 80% 100% 410ns 320ns 230ns 140ns 50ns Computer Architecture
지역성의 원리(principle of locality) 기억장치의 액세스가 몇몇 특정 영역에 집중되는 현상 짧은 시간을 기준으로 보면 프로세서가 기억장치의 한정된 위치들만을 액세스하면서 작업을 수행 프로그램이 실행되는 동안에 일반적으로 지역성의 원리에 의하여 첫 번째 계층의 기억장치에 대한 액세스 횟수가 두 번째 계층의 기억장치에 대한 액세스보다 훨씬 더 많음 지역성의 원리가 적용되면 높은 성능 향상을 얻을 수 있음 Computer Architecture
기억장치 계층구조 (1) 상위 층으로 갈수록 비트당 가격이 높아지고, 용량이 감소하며, 액세스 시간은 짧아지고, CPU에 의한 액세스 빈도는 높아진다 Computer Architecture
기억장치 계층구조 (2) 내부 기억장치(internal memory) : CPU가 직접 액세스할 수 있는 기억장치들 외부 기억장치(external memory) : CPU가 직접 액세스할 수 없고, 장치 제어기(device controller)를 통해서만 액세스할 수 있는 기억장치들 [예] 디스크, 자기 테이프, 등 Computer Architecture
캐쉬 기억장치 / 디스크 캐쉬 캐쉬 기억장치(cache memory) 디스크 캐쉬(disk cache) 주기억장치의 액세스 속도가 CPU에 비하여 현저히 느림 주기억장치로부터 데이터를 읽어오는 동안에 CPU가 오랫동안 대기 이로 인한 성능 저하를 줄이기 위하여 CPU와 주기억장치 사이에 설치하는 고속의 반도체 기억장치 디스크 캐쉬(disk cache) 디스크와 주기억장치의 액세스 속도 차이를 줄이기 위하여 그 사이에 설치하는 반도체 기억장치 주기억장치로부터 디스크로 읽혀나갈(swap-out) 정보들을 일시적으로 저장하는 버퍼 역할 위치 : 주기억장치, I/O 프로세서 보드, 혹은 제어기 보드 Computer Architecture
디스크 캐쉬의 위치 Computer Architecture
5.3 반도체 기억장치 RAM(Random Access Memory) - 특성 임의 액세스 방식 반도체 집적회로 기억장치(semiconductor IC memory) 데이터 읽기와 쓰기가 모두 가능 휘발성(volatile) : 전원 공급이 중단되면 내용이 지워짐 Computer Architecture
1K x 8 RAM 칩과 제어 신호들 (b) 제어 신호들에 따른 RAM의 동작 Computer Architecture
제조 기술에 따른 분류 DRAM (Dynamic RAM) SRAM (Static RAM) 캐패시터(capacitor)에 전하(charge)를 충전하는 방식으로 데이터를 저장하는 기억 소자들(memory cells)로 구성 집적 밀도가 높다 데이터의 저장 상태를 유지하기 위해 주기적인 재충전(refresh) 필요 밀도가 더 높으며, 같은 용량의 SRAM 보다 가격이 더 싸다 용량이 큰 주기억장치로 사용 SRAM (Static RAM) 기억 소자로서 플립-플럽(flip-flop)을 이용 집적 밀도가 낮다. 전력이 공급되는 동안에는 재충전 없이도 데이터를 계속 유지 가능 DRAM보다 다소 더 빠르다 높은 속도가 필요한 캐쉬 기억장치로 사용 Computer Architecture
64-bit RAM의 내부 조직 예[I] : 8x8 조직 8 비트로 이루어진 8 개의 기억 장소들로 구성 세 개의 주소 비트들이 필요 (23 = 8) Computer Architecture
64-bit RAM의 내부 조직 예[II] : 16x4 조직 4 비트로 이루어진 16 개의 기억 장소들로 구성 네 개의 주소 비트들이 필요 (24 = 16) Computer Architecture
64-bit RAM의 내부 조직 예[III] : 64x1 조직 (1) 한 비트 씩 저장하는 64 개의 기억 장소들로 구성 6개의 주소 비트들이 필요 (26 = 64) 상위 세 비트들은 8개의 행(row)들 중에서 한 개를 선택하고, 하위 세 비트들은 8개의 열(column)들 중에서 한 개를 선택 두 개의 3 × 8 해독기 필요 Computer Architecture
64-bit RAM의 내부 조직 예[III] : 64x1 조직 (2) Computer Architecture
RAM 내부 조직의 예[IV] : 4Mx4 조직 (16Mbit) 기억 소자들이 2048 × 2048 × 4 비트 형태로 배열 2048 개의 열과 2048 개의 행들로 이루어진 장방형 구조 각 기억 장소에는 4 개의 데이터 비트들을 저장 전체 22 비트의 주소 선들이 필요 RAS(Row Address Strobe) 신호와 CAS(Column Address Strobe) 신호를 이용하여 실제로는 주소 선을 11 개만 사용 Computer Architecture
4Mx4 (16 Mbit) RAM의 내부 조직 Computer Architecture
16 Mbit DRAM 패키지의 입출력 핀 구성 Computer Architecture
5.3.2 ROM(Read Only Memory) 영구 저장이 가능한 반도체 기억장치 읽는 것만 가능하고, 쓰는 것은 불가능 다음 내용들의 저장에 사용 시스템 초기화 및 진단 프로그램 (예: PC의 BIOS 프로그램) 빈번히 사용되는 함수들을 위한 서브루틴들 제어 유니트의 마이크로프로그램 Computer Architecture
ROM의 종류 PROM(Programmable ROM) : 사용자가 한 번은 쓰는 것이 가능한 ROM EPROM(Erasable Programmable ROM) : 자외선을 이용하여 내용을 지우는 것이 가능한 PROM. 여러 번 쓰기가 가능 EEPROM(Electrically Erasable PROM) : 전기적으로 지울 수 있는 EPROM 플래쉬 기억장치(flash memory) 블록 단위로 지우는 것이 가능한 EEPROM EEPROM에 비하여 삭제 시간이 더 빠르고, 집적 밀도도 더 높다 Computer Architecture
5.4 기억장치 모듈의 설계 (1) 기억장치 칩의 데이터 비트 수가 단어 길이보다 짧은 경우 여러 개의 칩들을 병렬로 접속한 기억장치 모듈로 구성 [예] 1K×8 비트 RAM 칩들을 이용한 1K×32 비트 기억장치 모듈의 설계 방법 : 4 개의 RAM 칩들을 병렬 접속 모듈의 용량 : (1K×8) × 4 개 = 1K×32 비트 = 1K 단어 주소 비트(10개: A9∼A0) : 모든 칩들에 공통으로 접속 주소 영역 : 000H ∼ 3FFH (단, H는 16진수 표시) 데이터 저장 : 동일한 기억장치 주소에 대하여 칩 당 (32비트들 중의) 8 비트씩 분산 저장 Computer Architecture
기억장치 모듈의 설계 (2) 1K×32 비트 기억장치 모듈의 설계 (계속) Computer Architecture
기억장치 모듈의 설계 (3) 필요한 기억장치 용량이 각 기억장치 칩의 용량보다 큰 경우 여러 개의 칩들을 직렬로 접속하여 기억장치 모듈을 구성 [예] 1K×8 비트 RAM 칩들을 이용한 4K×8 비트 기억장치 모듈의 설계 방법 : 4 개의 RAM 칩들을 직렬 접속 모듈의 용량 : (1K×8) × 4 개 = 4K×8 비트 = 4K 바이트 주소 비트(12개: A11∼A0) 접속 방법 상위 2 비트 : 주소 해독기를 이용하여 4 개의 칩 선택 신호 발생 하위 10 비트 : 모든 칩들에 공통으로 접속 주소 영역 : 000H ∼ FFFH 데이터 저장 : 각 기억장치 주소 당 8 비트씩 저장 Computer Architecture
기억장치 모듈의 설계 (4) 4K×8 비트 기억장치 모듈의 설계 (계속) Computer Architecture
기억장치 모듈의 설계 (5) 4K×8 비트 기억장치 모듈의 설계 (계속) 각 RAM에 지정되는 주소 영역 Computer Architecture
기억장치 모듈의 설계 (6) 기억장치 모듈의 설계 순서 [예] 8-비트 마이크로컴퓨터를 위한 기억장치의 설계 컴퓨터시스템에 필요한 기억장치 용량 결정 사용할 칩들을 결정하고, 주소 표(address table 혹은 address map)를 작성 세부 회로 설계 [예] 8-비트 마이크로컴퓨터를 위한 기억장치의 설계 용량 : 1K 바이트 RAM, 512 바이트 ROM 주소영역 : RAM = 0 번지부터, ROM = 800H 번지부터 사용 가능한 칩들 : 256×8 비트 RAM, 512×8 비트 ROM Computer Architecture
기억장치 모듈의 설계 (7) [예] 8-비트 마이크로컴퓨터를 위한 기억장치의 설계 용량 : 1K 바이트 RAM, 512 바이트 ROM 주소 영역 : RAM = 0 번지부터, ROM = 800H 번지부터 사용 가능한 칩들 : 256×8 비트 RAM, 512×8 비트 ROM 주소 표 Computer Architecture
8-비트 마이크로컴퓨터를 위한 기억장치 설계의 예 Computer Architecture