Computer System Architecture 제 5 장 기억 장치 컴퓨터구조 Computer System Architecture 멀티미디어공학과 김 해 영 hykim@tu.ac.kr
제 5 장 기억 장치 개 요 주기억장치 보조기억장치 고성능 기억장치 구성
개 요 기억 장치의 계층 구조 : CPU 및 I/O 프로세서와 직접 통신 (RAM) 여러 수준의 기억 장치가 연결되어 속도와 용량 등을 상호 보완한 기억장치 구조 CPU내의 레지스터 : CPU 내부에 두어 임시 기억장소로 사용 주기억장치(Main Memory) : 현재 수행중인 정보를 저장, CPU가 직접 접근 가능 : CPU 및 I/O 프로세서와 직접 통신 (RAM) 보조기억장치(Auxiliary Memory) : 현재 수행에는 직접 필요로 하지 않은 정보 저장 : backup storage (Disk Drives ) 캐시 메모리(Cache Memory) : 프로그램의 일부와 자주 쓰이는 임시 데이터 저장 : 처리 속도 향상을 위한 고속 메모리 (Cache RAM) 이유 : 입출력의 경제성 용량, 가격, 속도 캐시메모리 : 주기억장치 = 1 : 7 주기억장치 : 보조기억장치 = 1 : 1,000 속도(High) 1000 7 1 용량(High), 가격(Low)
개 요 기억 장치의 계층 구조 접근 방법 - 데이터가 기억된 위치를 처음부터 순차적으로 접근 메모리 관리 시스템(Memory Management System) 기억장치 계층 구조 사이의 프로그램과 데이터 전송 흐름을 관리 캐시 메모리 체제와 가상 기억 체제 캐시 메모리 체제 - 주기억장치와 CPU 사이의 정보 전송 담당 - 현재 사용중인 프로그램과 임시 데이터 저장 가상 기억 제체 - 보조기억장치와 주기억장치 사이의 정보 전송 담당(DMA) - CPU가 현재 사용하고 있지 않은 프로그램과 대용량의 데이터 접근 방법 직접 접근 메모리(Direct Access Memory) - 기억장치의 주소를 이용하여 직접 해당 데이터가 저장된 위치에 접근 - RAM, ROM HDD, FDD 순차 접근 메모리(Sequential Access Memory) - 데이터가 기억된 위치를 처음부터 순차적으로 접근 - 자기 테이프, 자기 드럼
개 요 접근 시간(access time) 접근 시간 = 탐색시간 + 대기 시간 + 전송 시간 사이클 타임(cycle time) 기억장치에 접근하여 내용을 얻는데 요구되는 평균시간 데이터를 읽는데 소요되는 판독 엑세스 시간, 기록 엑세스 시간 전기 기계식 장치 메모리 접근 시간 = 탐색시간 + 대기 시간 + 전송 시간 사이클 타임(cycle time) 한 번의 접근을 시작한 시점에서 다음 번 접근을 위한 시점까지 걸리는 시간 파괴 메모리 사이클 타임 = 접근 시간 + 복원 시간 비파괴 메모리 사이클 타임 = 접근 시간 사이클 타임과 접근 시간 사이의 관계 사이클 타임 ≥ 접근 시간
개 요 (bit/sec) Band Width = W / Cycle time 데이터 전송률 (data transfer rate) 초당 전송되는 정보량(비트 수, 문자 수) 일명 대역폭(band width) W : 한 번에 전송되는 데이터의 비트 수 예 : 어떤 기억장치의 사이클 타임이 0.5μs이고 데이터 버스 폭이 32비트라면 대역폭은? Band Width = 32 / 0.5μs = 8MB/s 기억 방식과 물리적 특성 동적 메모리와 정적 메모리 정적 메모리(static memory) : 전원 유지되는 한 정보 유지, 사용간편, 읽기/쓰기가 빠름 동적 메모리(dynamic memory) : 일정 주기로 충전(refresh), 전력소비가 적고, 대용량화 가능 휘발성 메모리와 비휘발성 메모리 (RAM) ( HDD, FDD, ROM, Fresh memory…) 파괴 메모리(자기 코어) 와 비파괴 메모리 (대부분의 반도체 메모리) Band Width = W / Cycle time (bit/sec) 데이터의 이동 통로
액세스(Access) 방법에 따른 기억장치 분류 직접 액세스 메모리( Direct Access Memory ) 데이터의 순서에 관계없이 직접 원하는 위치로 접근하는 방법 기억장치의 주소를 이용하여 직접 해당 데이터가 저장된 위치에 접근 ROM, RAM, HDD, FDD MAR (Decoder) Memory Cell MBR Address Read/Write 반도체 메모리 구조
액세스(Access) 방법에 따른 기억장치 분류 순차 액세스 메모리( Sequential Access Memory ) 데이터 접근방식이 순차적으로 접근되는 방법 데이터가 기억된 위치를 처음부터 순차적으로 접근 큐(Queue) 구조인 FIFO ( First In First Out) 메모리 스택 같은 LIFO (Last in First Out ) 메모리 데이터 4 데이터 3 데이터 2 데이터 1 FIFO LIFO
주기억장치 컴퓨터 내부 기억장치 저장위치 결정 저장자료 저장단위 주소 사용 프로그램 명령어 데이터 바이트 (byte) 워드 (Word)
주기억장치 기억 소자 : 칩 선택(CS : Chip Select) 기능, 읽기(RD) 기능, 쓰기(WR) 기능 자기 코어 기억 소자 : 페라이트 자성물질을 링으로 만들어 도선을 끼워 전류를 흐르게 하여 만듦 한번 읽은 정보는 소멸 파괴 메모리, 전원공급이 중단되어도 내용이 소멸되지 않는 비 휘발성 메모리 반도체 기억 소자 : RAM, ROM (a) '1'을 기억 (b) ‘0'을 기억 - 비 파괴적 메모리 - 플립플롭의 대규모 집적회로 - 신뢰성이 높고, 성능 우수 - 소비전력이 적음 - 대부분의 컴퓨터의 주기억장치
주기억장치 RAM (4x3 IC RAM) 읽기와 쓰기 기능을 모두 가지고 있어 변경 가능한 프로그램이나 데이터를 저장 워드(word) : 한 번 접근하여 얻을 수 있는 정보 주기억장치 : RAM, 일부가 ROM으로 구성 ROM : 값이 바뀌지 않는 상수의 표 Fig. 5-3 선택 00 (a)블록도 × CS1 WR RD CS2 메모리 기능 데이터버스 상태 1 Inhibit Write Read High-impedance Input data to RAM Output data from RAM 1 0/1 (4x3 IC RAM) (b)RAM의 기능표
주기억장치 메모리 동작 MAR, MBR, 제어 신호(RD, WR, CS) 읽기 동작 2. 칩 선택신호(CS)와 읽기(RD) 신호를 활성화한다. 쓰기 동작 1. 저장하고자 하는 위치의 주소 값을 MAR에 넣는다. 2. 메모리에 저장될 데이터를 MBR에 넣는다. 3. 칩 선택신호(CS)와 쓰기(WR) 신호를 활성화한다.
주기억장치 ROM 비휘발성 메모리 원하는 자료를 임의의 주소에서 접근 읽을 수만 있는 메모리 시스템 프로그램이나 운영체제 내장 종류 Mask ROM 제조단계에서 프로그램을 장착한 상태로 출하 다시 프로그램 불가 PROM (Programmable ROM) 프로그램 가능한 상태 단 한번 포로그램 장착 가능 EPROM (Erasable PROM) 사용자가 내용을 지우고 다시 포로그램 할 수 있는 ROM 자외선 노출로 지움
주기억장치 읽기 동작만을 수행하는 기억장치로 한 번 기억된 내용은 전원 공급이 중단 되어도 정보는 유지. 변경될 가능성이 없는 프로그램과 데이터를 영구히 기억하는데 사용 ROM Bootstrap Loader Bootstrap ROM Boot ROM 같은 크기의 RAM 보다 더 많은 비트의 용량 32 X 4 ROM 구현 예 32 X 4 ROM
주기억장치 CPU로의 메모리 연결 메모리 주소 맵(memory address map) : Tab. 5-1 1 CPU로의 연결 메모리 구성 : 1 x 512byte ROM + 4 x 128bytes RAM 각 칩에 지정된 메모리 주소 CPU로의 연결 읽기/쓰기의 활성화 1 Address line 9 8 RAM 1 0 0 : 0000 - 007F RAM 2 0 1 : 0080 - 00FF RAM 3 1 0 : 0100 - 017F RAM 4 1 1 : 0180 - 01FF Address line 10 ROM 1 : 0200 - 03FF 2 x 4 Decoder : RAM select (CS1) Address line 10 (RAM or ROM select) RAM select : CS2 ROM select : CS2 의 Invert RAM 은 입출력 양방향으로 정보를 전송 ROM 은 출력 기능뿐 1
보조기억 장치 당장 필요치 않으나 필요 시 주기억장치에 전달될 자료 기억 속도는 느리나 용량이 크고, 반영구적으로 정보 저장 정보 저장 방법 파일 단위로 저장 레코드로 단위데이터를 취급 데이터 접근방법 순차 접근 기억 장치 처음 들어온 데이터부터 순서대로 검색하여 자료에 접근하는 방법 자기테이프 임의 접근 기억 장치 파일 내 특정레코드 검색 시 직접 원하는 레코드로 접근하는 방법 파일 저장에 특정한 순서가 없음 자기디스크, 자기 드럼 종류 자기 디스크 자기 드럼 자기 테이프 CD-ROM
논리레코드 : 한건의 자료를 취급하는 단위 데이터 물리레코드 :입출력 장치로 한번에 입/출력되는 데이터 보조기억 장치 자기테이프 장점 대용량의 기록 보관 보관, 운반이 편리 기억매체의 비트 당 가격이 저렴 매체 교환이 용이 단점 순차 액세스이므로 평균 접근시간이 느리다. 파일 수정 시 전체를 갱신해야 한다. 플라스틱 테이프에 자성 재료를 칠하여 릴에 감아 사용 길이 : 800, 1200, 1600, 2400피트 레코드에 자료 기록 방법 비 블록화(Unblocking) 논리레코드 단위로 기억 블록화(Blocking) 물리레코드 단위로 기억 논리레코드 : 한건의 자료를 취급하는 단위 데이터 물리레코드 :입출력 장치로 한번에 입/출력되는 데이터
보조기억장치 자기 디스크 (직접 접근 기억장치) 이동 헤드 디스크 (moving head disk) 자기 디스크 (직접 접근 기억장치) 얇은 금속판이나 플라스틱 원판에 자성재료를 입혀 회전을 이용하여 데이터에 접근하는 보조기억장치 블록 (block) : 주소에 의하여 지정할 수 있는 정보의 단위 주기억장치에서 주소에 의하여 지정할 수 있는 정보량인 바이트 혹은 워드에 비하면 주소의 정밀도가 낮음 이동 헤드 디스크 (moving head disk) 각 디스크 표면마다 하나의 read-write 헤드를 가지고 있으며 access arm 을 움직여 원하는 위치를 찾음 (floppy disk) 실린더 고정 헤드 디스크 (fixed head disk) 각 디스크 표면의 트랙마다 지정된 read-write 헤드를 가지고 있음 (Hard disk) 주소가 지정되는 최소단위의 영역 이동 헤드 디스크 의 접근 시간 = 탐색시간 (seek time) + 회전 지연 시간 (rotational delay time) + 전달 시간 (data transfer time) 자기디스크 표면의 구분
보조기억 장치 자기 디스크 저장단위 섹터 : 512바이트 저장
보조기억 장치 CD-ROM(Compact Disk Read Only Memory) 읽기 전용 컴팩트 디스크 550 ~ 680MB의 저장능력 섹터 당 2048 바이트 저장
보조기억장치 자기 테이프 (순차 접근 기억장치) 자기 테이프 (순차 접근 기억장치) 플라스틱 테이프 위에 자화 물질이 코팅되어 있으며 릴(reel) 에 감아서 사용 기록밀도는 1인치당 저장할 수 있는 문자나 바이트 수 BPI (Byte Per Inch) 로 표시 read-write 헤드는 데이터가 연속적으로 기록되고 읽혀질 수 있도록 각 트랙에 한 개씩 설치 (a) 고정 길이 레코드 (b) 블록화된 레코드 IRG(Inter Record Gap) : 레코드 단위로 기록되며 레코드와 레코드는 레코드 간 갭으로 구분 자기테이프 정보구조 IBG(Inter Block Gap) : 블록과 블록 간격을 블록간 갭으로 구분 : IRG 사이의 여러 개의 논리 레코드를 묶어서 하나의 물리적 레코드인 블록(Block)으로 만들어 저장 효율과 전송속도를 증대 시킴 자기 테이프의 기록 밀도 * 전송 바이트 수 = 기록밀도 × 전송속도 * 블록화 되지 않은 테이프에 포함된 레코드의 총 수는 레코드 총수= 테이프 전체 길이/(IRG + 1개의 레코드 길이/ 기록밀도(BPI) * 블록화 된 테이프에 포함된 레코드의 총 수는 레코드 총수= 테이프 전체 길이/(IRG + 1개의 레코드 길이 x 블록수/ 기록밀도(BPI)
고성능 기억장치 인터리빙 기억장치 (Interleaving Memory) 명령어의 수행 속도 : 주기억장치의 대역폭에 의해 제한을 받음 사이클 타임 중앙처리장치 ≥주기억장치 기억 장치 버스에 병목 현상 Fig 5-12 메모리 모듈 : 기억장치와 MAR 및 MBR 을 연결한 것 N개의 오퍼랜드 n번 기억장치에 접근이 필요하여 많은 접근 시간이 소요 Fig 5-13 인터리빙 (interleaving) 기억장치 여러 개의 메모리 모듈을 공통 주소 버스와 데이터 버스에 연결 한 번의 접근에 의해 n 번의 접근 효과 유효 접근 시간 단축 기억장치를 복수 개의 모듈로 구성하고 주소를 분배하여 번갈아 가면서 메모리에 접근 (시분할 방식) 기억장치 모듈 3-모듈 기억장치
고성능 기억장치 연상 기억장치 (Associative Memory) Content Addressable Memory (CAM) 기억된 내용에 의해 접근할 수 있는 기억장치 M(워드) x n(비트) 배열의 셀들로 구성 각 비트의 셀은 찾고자 하는 비트와 비교, 기억 / 판독 기능 Key 레지스터의 ‘1’인 부분만 비교 read 신호 검색하고자 하는 정보를 저장 n 이름 학번 검색 과정에서 인자 레지스터 A 의 특정 영역에 대한 마스크를 제공 n A Register 101 11110 K Register 111 00000 워드 1 101 00100 M1 = 1 워드 2 111 11011 M2 = 0 워드 3 010 01101 M3 = 0 ; ; 워드 m 100 00001 Mm= 0 Argument Key (Mask) Key 레지스터의 값이 1인 A와 M을 비교(앞3비트) Match Logic 메모리 내용 M = 1 일 때 출력
고성능 기억장치 직접 매핑 캐시구조의 예 02777 번지를 읽는 경우 1) 우선 인덱스 777 을 캐시에서 찾는다. 2) 다음은 태그(Tag)를 캐시에서 비교한다. 3) 777 인덱스에 있는 캐시 태그는 00 이다. (주기억장치의 주소 02가 아니다) 4) miss 5) 주기억장치에 접근하여 원하는 워드의 데이터 4850 을 중앙처리장치로 보낸다. (address 02777 = 4850 read) 6) 캐시로 보내어진 주소 777 의 캐시 메모리 워드에는 테그 02와 4850 의 데이터로 바뀜
고성능 기억장치 8워드의 블록 크기를 가지는 직접 매핑 캐시 예 1개의 블록이 8개의 워드로 구성 8개의 워드가 같은 태그 필드 값을 가짐 하나의 워드로 한 블록을 구성하는 캐시 구조보다 히트율이 높으며 블록의 크기가 클수록 히트율은 놓아 짐 miss일 때 8개 워드 전 블록이 주기억장치에서 캐시 메모리로 전송 8개의 word 를 1개의 block 단위로 구성 64 block x 8 word = 512 cache words size (블록 번호 : 6bit, 블록 내의 워드 : 3bit)
고성능 기억장치 집합 연상 매핑 (Set-associative mapping) 직접 매핑에서 동일 인덱스에 다른 태그에 접근하면 히트률 저하 ( 예제 02777, 01777 ) 캐시의 각 워드에 동일 인덱스를 가지는 서로 다른 태그의 두 개 이상의 메모리 워드를 저장 (연상 맵핑) 직접 매핑의 단점 보완 set의 개수를 증가시키면 속도가 향상 set 의 크기가 크면 히트율은 높아지지만 더 많은 비교 논리 회로를 요구해 복잡도가 증가 9 bit 6 bit 12 bit 6 bit 12 bit 두 개의 집합 크기를 가진 집합 연산 캐시 구조
Main memory 와 Cache memory의 내용이 동일해야 함 : 통일성(일관성) 유지 고성능 기억장치 캐시에 기록 (Writing to Cache) 캐시 일관성(Cache Coherence) 유의 캐시에 있는 내용이 변경된(WRITE) 경우, 캐시의 블록(block)이 교체되기 전에 주기억장치의 내용도 갱신(update) 해야 함 Main memory 와 Cache memory의 내용이 동일해야 함 : 통일성(일관성) 유지 Write-through : Cache write와 동시에 주기억장치에도 기록, 주기억 장치의 내용이 항상 최근의 데이터를 유지 Write-back : 쓰기 동작 동안에는 캐시의 내용만 갱신되고 차후에 캐시의 내용이 캐시 에서 제거될 때 주기억장치에 기록하는 방식, CPU가 프로그램을 수행하는 중간에는 연산 데이터가 계속 변경 될 수 있음 입출력 장치의 메모리에 대한 접근은 캐시에 교체 알고리즘 (Replacement Algorithm) 캐시가 꽉 차 있는 상태에서 CPU 가 캐시 메모리에 접근하여 원하는 워드의 내용을 찾을 수가 없을때 캐시 메모리의 내용 중 일부를 제거하고 주기억장치 로부터 새로운 데이터 워드를 가져오는 방법 FIFO (First-In First-Out) : 가장 오래된 block 교체 LRU (Least Recently Used) : 최근에 가장 적게 사용된 block 교체 LFU (Least Frequently Used) : 사용 빈도가 가장 적은 block 교체
고성능 기억장치 가상 기억장치(Virtual Memory) 가상 기억장치 : 디스크 같은 용량이 큰 보조기억장치를 마치 주기억장치와 같이 사용 보조기억장치에 저장된 프로그램은 주기억장치에 적재 중앙처리장치에 의해 참조되는 가상 주소를 주기억장치의 실제 주소로 변환하는 주소 매핑이 필요 주소 공간과 메모리 공간(Address Space & Memory Space) 주소 공간(Address Space) : 프로그래머에 의해 쓰여진 가상 주소(Virtual Address)의 집합 메모리 공간(Memory Space) : 주기억 장치의 물리적 주소(Physical Address)의 집합 예제 보조기억장치 주소 공간(N) = 1024 K = 220 주기억장치 메모리 공간(M) = 32 K = 215 CPU는 20비트의 주소로 명령어와 데이터를 참조 가상 주소는 주기억장치의 실제 주소로 변환 변환 : 메모리 매핑표
고성능 기억장치 메모리 매핑표 독립적인 메모리 혹은 주기억장치의 일부로 저장 빠른 접근을 위해 메모리 매핑표 연상기억 장치로 구현 20비트의 가상 주소를 15비트의 실제 주소로 변환
고성능 기억장치 매핑 방식 페이지에 의한 매핑: 주소 공간과 메모리 공간을 고정 크기로 분할 페이지에 의한 매핑: 주소 공간과 메모리 공간을 고정 크기로 분할 주소 공간 : 1K page 로 분할 메모리 공간 : 1K block으로 분할 주소 공간의 4개 page가 메모리 공간에의 block으로 할당 주소 공간의 가상 주소 = 메모리 공간의 실제 주소(10비트)
고성능 기억장치 페이지에 의한 매핑에서 메모리 매핑표 1 2 5 6 페이지당 8개의 워드로 구성 각 워드의 내용은 페이지 가 주기억 장치에 저장 됨 2 5 6
고성능 기억장치 연상 기억장치를 이용한 메모리 매핑표 메모리 매핑표의 워드의 수와 주기억장치의 블록의 수를 같게 함 메모리 매핑표를 효율적으로 구성 Fig. 5-25
고성능 기억장치 세그먼트에 의한 매핑 - 세그먼트 : 논리적으로 연관된 명령이나 데이터의 집합 세그먼트에 의한 매핑 - 세그먼트 : 논리적으로 연관된 명령이나 데이터의 집합 페이지 매핑 방식은 페이지의 크기를 고정시킴으로써 프로그램의 크기나 논리 구조에 어려움 야기 프로그램과 데이터를 나누는 것이 편리 실행되는 프로그램에 따라 그 크기가 가변적 세그먼트의 크기 : 프로그래머나 운영체제에 의해 조정 세그먼트 방식으로 가상 기억장치를 구현 (1) 프로그래머/운영체제에 의해 프로그램을 세그먼트화하고 (2) 다시 시스템에 의해서 각 세그먼트를 페이지화 논리 주소 : 세그먼트로 된 프로그램에 의해 지정되는 주소 논리 주소로부터 물리 주소로의 매핑 : 2개의 표(세그먼트, 페이지)
고성능 기억장치 페이지 교체 알고리즘 (Page(Block) Replacement) 페이지 오류(Page Fault) : CPU 에 의해 참고하고자 하는 페이지가 주기억장치에 없을 경우 새로운 페이지가 보조기억장치에서 주기억장치로 전송될 때 주기억 장치가 꽉 차 있으면 제거할 페이지를 선택해야 함 교체 알고리즘 교체 알고리즘(Replacement algorithm) : FIFO (First-In First Out) 와 LRU (Least Recently Used) 를 주로 사용