3 장컴퓨터의기억장치
목차 3.1 기억장치의개념 3.2 주기억장치 3.3 보조기억장치 3.4 가상기억장치 3.5 고속기억장치 연습문제
3.1 기억장치의개념 3.1.1 기억장치의구분 처리속도, 사용용도, 기억용량의크기에따라주기억장치와보조기억장치, 레지스터, 캐쉬등의장치로나뉘어짐 각장치들은계층적인구조를가지고있음 일반적으로계층이높을수록기억장치의속도가증가하고, 비트당기억장치의비용이증가하며기억용량은감소함 기억장치의계층구조 기억장치를효율적으로배치하여중앙처리장치의처리속도와입출력장치의속도와의차이를줄이기위한전략 속도가빠른기억장치일수록가격이비싸지므로기억장치들을적절히배치하여시스템의성능향상에도움을줄수있도록함
3.1 기억장치의개념 3.1.1 기억장치의구분 제어장치 산술논리연산장치 캐쉬기억장치 주기억장치 입력장치 ( 마우스, 키보드등 ) 입력데이터기억장소 프로그램기억장소 출력데이터기억장소 출력장치 ( 모니터, 프린터등 ) 작업장소 보조기억장치 ( 하드디스크, 플로피디스크, 자기테이프장치등 ) < 컴퓨터시스템본체 >
3.1 기억장치의개념 기억장치의속도증가 3.1.2 기억장치의계층 레지스터 캐쉬 기억장치평가의 3 요소 - 속도 (Speed) - 용량 (Capacity) - 가격 (Cost) 프로그램과데이터를직접읽을수있음 비트당기억장치의비용증가 기억장치의용량감소 주기억장치 보조기억장치 < 기억장치의계층 > 실행되기위해서는프로그램이나데이터가주기억장치에옮겨져야함
3.1 기억장치의개념 3.1.2 기억장치의계층 컴퓨터시스템에서다양한기억장치를사용하는데이를기억장치계층구조라고한다. 다양한기억장치를쓰는이유 : 속도, 가격, 특성 ( 휘발성 ) 등이다르기때문이다. 기억장치가 processor 에서가까울수록빠르지만가격은비싸다. 기억장치가 processor 에서멀수록느리지만가격은싸고대용량으로만들수있다. 특히 disk 는비휘발성장치이다.
3.1 기억장치의개념 3.1.2 기억장치의계층 장치접근속도메모리용량에따른비용 주기억장치동적 RAM 빠름높음 캐쉬기억장치캐쉬 ( 정적 RAM) 가장빠름가장높음 하드디스크보통보통 보조기억장치 CD-ROM 느림낮음 백업테이프매우느림매우낮음 < 메모리의종류와특징 >
3.1 기억장치의개념 3.1.3 기억장치의성능 접근시간 (Access Time) 기억장치의내용을검색하는시간으로서저장된데이터의위치를찾고검색하는데걸리는시간 ( 가능한한빠를수록좋다 ) 기억용량 (Memory Capacity) 필요한데이터를저장할수있는크기를말하며, 큰용량이바람직하다 비트가격 (Bit Price) 단위비트에대한가격으로적을수록유리하다 접근방법 (Access Mode) 기억장치에있는정보를위치마다정해진주소를통하여접근하는것으로서임의접근방법과순서접근방법이있다
3.1 기억장치의개념 3.1.3 기억장치의성능 워드주소 종류 접근시간 기억용량 비트가격 접근방법 내용 기억장치의내용을검색하는시간데이터를저장할수있는크기단위비트에대한가격기억장치에있는정보에접근하는방법바이트주소 임의접근방법 - 무작위로원하는위치에접근하는방법 순서접근방법 - 처음위치부터순차적으로접근하는방법 0 4 8 0 1 2 3 4 5 6 7 8 9 10 11 < 기억장치의주소지정형태 > 워드주소지정방법 - 0,4,8 번을접근하였을때 0~3,4~7,8~11 번지내용이워드단위로묶어서데이터를전송하는방법 바이트주소지정방법 - 한바이트씩각각의주소 (0~11) 를지정하여데이터를전송하기위한방식
3.1 기억장치의개념 1 2 w 2. B.............. 주소디코더 1 2 n 주소........ 버 퍼 데이터 < B 비트 W 워드형태의기억장치구성 > 임의접근방법 (Random Access) 1. 위치에관계없이원하는위치를동일한시간에접근할수있는장점을갖고있으나주소디코더와같은장치가더필요하다. 2. 주소만결정되면바로기억장치를접근할수있어서접근시간이빠르므로주로주기억장치에많이사용된다. n = log2w W = 2 의지수값즉 W=2 주소디코더 = n X W n
3.1 기억장치의개념 판독 / 기록헤드 순서접근방법 (Serial Access) 움직임방향 저장위치 1. 기억장소를접근하는시간이저장되어있는위치에따라비례하는방법이다. < 순서접근기억장치의개념적모델 > 2. 기억장치의구성은간단하나평균접근시간이길다.
3.1 기억장치의개념 3.1.4 기억장치의특성 기억장치의유형 정보판독 시간흐름 전원공급 파괴성기억장치 : 기억내용을읽었을때기억내용을상실되는것 ex) 자기코어 비파괴성기억장치 : 기억내용을읽은후에도기억내용에변화가없는것 동적기억장치 : 주기적으로재충전이필요한것 정적기억장치 : 전원이공급되는동안은변화하지않은것 휘발성기억장치 : 전원공급이중단되면기억된내용이소멸되는것 ex) 반도체소자에의한회로, 지연선기억장치등 비휘발성기억장치 : 전원공급이중단되더라도기억되어있던내용에변화가없는것 ex) ROM, 자기디스크, 자기드럼, 자기테이프등
3.1 기억장치의개념 파괴적판독 재저장기록 NDRO 버퍼레지스터 < DRO 기억장치에서파괴적판독과재저장기록 >
3.2 주기억장치 3.2.1 RAM 과 ROM 기억장치 ROM RAM 마스크 ROM PROM EPROM EEPROM SRAM DRAM < 반도체기억장치의분류 >
3.2 주기억장치 3.2.1 RAM 과 ROM
3.2 주기억장치 3.2.1 RAM 과 ROM 기억장치 ROM RAM MASK ROM PROM EPROM EEPROM SRAM DRAM SDRAM RDRAM RDRAM < 반도체기억장치의분류 > RAM (Random Access Memory) 프로그램실행중에 CPU 가읽고쓰는데이터혹은명령들을보관하기위해사용 전원이중단되면기억되어있던내용이지워지는휘발성메모리 ROM (Read Only Memory) 판독전용메모리 CPU 가판독은하지만변경하지않는프로그램을보관하는데사용 전원을중단되더라도내용이남아있는비휘발성메모리
3.2 주기억장치 3.2.1 RAM 과 ROM SDR-SDRAM (Single Data Rate Synchronous DRAM) DDR-SDRAM (Double Data Rate Synchronous DRAM) RDRAM (Rambus DRAM)
3.2 주기억장치 3.2.1 RAM 과 ROM 기억장치 ROM RAM MASK ROM PROM EPROM EEPROM SRAM DRAM SDRAM RDRAM RDRAM < 반도체기억장치의분류 > RAM (Random Access Memory) 프로그램실행중에 CPU 가읽고쓰는데이터혹은명령들을보관하기위해사용 전원이중단되면기억되어있던내용이지워지는휘발성메모리 ROM (Read Only Memory) 판독전용메모리 CPU 가판독은하지만변경하지않는프로그램을보관하는데사용 전원을중단되더라도내용이남아있는비휘발성메모리
3.2 주기억장치 3.2.1 RAM 과 ROM 종류내용응용분야 MASK ROM 생산시미리쓰여져서나오는것으로한번쓰면지울수가없음 프로그램저장용, 터미널및프린터의문자기억용 PROM (Programmable ROM) 프로그램가능한 ROM 으로데이터가사용자에의해한번쓸수있음 소형컴퓨터의마이크로프로그램 제어용, 가정용품제어용 EPROM (Erasable PROM) 전기적으로읽고쓸수도있음 쓰기전에자외선을이용하여저장 되어있는내용을지워야함 소프트웨어개발및연구용 EEPROM (Electrically EPROM) 전기적으로지울수있는 PROM 쓰기위해먼저지울필요없다는 편리함을가짐 프로그램및데이터교정용 Flash 메모리 일종의비휘발성기억장치 휴대형컴퓨터의하드디스크대용 또는보충용
3.2 주기억장치 3.2.2 RAM 의특성 반도체집적회로기억장치 (semiconductor IC memory) 데이터를읽는것과쓰는것이모두가능휘발성 (volatile) (a) RAM 의블록선도 (b) 제어신호들에따른 RAM 의동작 CS RD WR RAM 의동작 0 X X 선택되지않음 1 1 0 읽기동작 1 0 1 쓰기동작
3.2.2 RAM 의특성 3.2 주기억장치 제조기술에따른분류 DRAM DRAM(Dynamic RAM) SRAM(Static RAM) 캐패시터 (capacitor) 에전하 (charge) 를충전하는방식으로데이터를저장하는기억소자들 (memory cells) 로구성 집적밀도가높다. 데이터의저장상태를유지하기위하여주기적인재충전 (refresh) 필요 밀도가더높으며, 같은용량의 SRAM 보다가격이더싸다. 용량이큰주기억장치로사용 SRAM 기억소자로서플립-플럽 (flip-flop) 을이용 집적밀도가낮다. 전력이공급되는동안에는재충전없이도데이터를계속유지가능 DRAM보다다소더빠르다. 높은속도가필요한캐쉬기억장치로사용.
3.2 주기억장치 3.2.3 RAM 칩의구조 a1 a2 a3 I1 I2 I3 I4 16 ⅹ4 CS R/W 설명 16 = 4 비트데이터 RAM 16 개를의미 4 = RAM 한번접근하여얻을수있는데이터의비트수가 4 비트를의미 a4 O1 O2 O3 O4 < 16 ⅹ 4 로구성된 RAM 칩의모형 > 단어당 m 비트를얻기위한칩의수 = [m/q] 단어수 n 을얻기위한칩의수 = [n/p] 기억장치를만드는데필요한칩의수 = [m/q X n/p] 사용할칩의구성형태가결정되고, 단어의수를고려하지않은상태에서최소로필요한칩의수는칩의수 = ( 기억장치의단어당비트수 (N) / ( 칩의단어당비트수 ) ( 예 ) 8 8 RAM 칩으로 8 16 기억장치를구성할경우필요한칩의수 16/8 = 2 개
3.2 주기억장치 RAM의내부조직 ( 예 : 64-비트 RAM) 1) 8 x 8 조직 8 비트로이루어진 8 개의기억장소들로구성 세개의주소비트들 (A2, A1, A0) 이필요 (2 3 = 8) 8 8 조직에서의주소지정
3.2 주기억장치 2) 16 x 4 조직 4 비트로이루어진 16 개의기억장소들로구성 네개의주소비트들이필요 (2 4 = 16) 16 4 조직에서의주소지정
3.2 주기억장치 3) 64 1 RAM 조직 한비트씩으로이루어진 64 개의기억장소들로구성 6 개의주소비트들이필요 (64=26) : 상위세비트들은 8 개의열 (row) 들중에서, 하위세비트들은 8 개의행 (column) 들중에서한개를선택. 두개의 3 8 해독기가필요 64 1 조직의주소지정
3.2 주기억장치 4) 4M 4 RAM 조직 기억소자들이 2048 2048 4 비트형태로배열 : 2048 개의열과 2048 개의행들로이루어진장방형구조. 각기억장소에는 4 개의데이터비트들을저장. 전체 22 비트의주소선들이필요 : RAS(Row Address Strobe) 신호와 CAS(Column Address Strobe) 신호를이용하여실제로는주소선을 11 개만사용 16M (4M 4) DRAM 의내부조직
3.2 주기억장치 주소 M A R 3.2.3 주기억장치의구성 10 A0 A9 주소선택회로 CS 기억장치제어 RE 기억소자배열 1024 ⅹ 8 주기억장치 R/W WE D0 D7 버퍼 판독 8 출력자료 8 기록 < 주기억장치의구성요소 > M B R 입력자료 내부에서읽기제어순서 - MAR에읽고자하는단어의주소를옮긴다 - 읽기 / 쓰기제어신호 ( R/W) 단자에읽기신호를가한다 - MBR에나타난데이터를읽어간다 외부에서기억제어순서 - MAR에쓰고자하는단어의주소를옮긴다 - MBR에기억시키려는데이터를옮긴다 - 읽기 / 쓰기제어신호 ( R/W) 단자에쓰기신호를가한다
3.3 보조기억장치 3.3.1 자기테이프 자기테이프 : 표면에자성물질을엷게발라서제작된것을릴 (Reel) 에감아놓은형태이다. 장점 * 기록밀도가높고, 기억용량이무한정 * 보관및운반이용이, 재사용가능 * 순차적처리, 가격이저렴단점 * 접근시간이길다 * 기억장치에요구되는고속성때문에접근시간이짧은자기디스크보다작업파일로서는많이사용되지않는다. 4-5m 6-7m BOT 데이터기록 EOT 12-34 인치 800, 1200, 1600, 2400 피트 < 자기테이프의구성 >
3.3 보조기억장치 3.3.1 자기테이프 blocking : 여러개의 ( 논리적 ) 레코드 (logical record) 가모여물리적레코드 (physical record) 를형성, 입출력단위는물리적레코드단위로일어남 -. blocking factor : 한개의물리적레코드를구성하는논리적레코드의개수 -. 물리적레코드사이의 gap 을 Inter Block Gap(IBG) 이라한다. File i block block block R 1 R 2 R 3 R 4 R 5 EOF IRG
3.3 보조기억장치 0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O C B A 8 4 2 1 < 7 트랙자기테이프의표현 >
3.3 보조기억장치 0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O C 8 7 6 5 4 3 2 1 < 9 트랙자기테이프의표현 >
3.3 보조기억장치 논리적레코드 논리적레코드 IRG 학번 성명 국어 영어 수학 IRG 학번 성명 국어 영어 수학 IRG IBG 논리적레코드 논리적레코드 논리적레코드 논리적레코드 논리적레코드 IBG 논리적레코드 논리적레코드 논리적레코드 논리적레코드 논리적레코드 IBG 물리적레코드 물리적레코드 < 논리적레코드와물리적레코드 >
3.3 보조기억장치 관련용어 - BOT (Beginning Of Tape) : 테이프의시작위치를나타낸다. - EOT (End Of Tape) : 테이프의끝위치를나타냄 - BPI (Byte(Bit) Per Inch) : 기록밀도로, 1 인치에기록할수있는문자수 ( 또는비트수 ) - IRG ( Inter Record Gap ) : 레코드와레코드사이의공백 - IBG ( Inter Block Gap ) : 블록과블록사이의공백 - TPI (Track Per Inch) : 1 인치에기록되는트랙수 - 논리레코드 (Logical Record) : 항목 (Item) 의집합으로레코드하나를말함 - 물리레코드 (Physical Record) : 논리레코드의집합으로데이터의입출력단위 (= 블록 (Block) - 블록화인수 (Blocking Factor) : 하나의물리레코드내에존재하는논리레코드수
3.3 보조기억장치 레코드수 = 테이프길이 / ( IRG + 1 레코드길이 / 기록밀도 ) Ex 1) 길이 3200 feet, 기록밀도 1600 BPI, 1 레코드 100byte 로 10 를블록화, IBG 0.3 inch 인경우총블록레코드의수는? 총길이 : 3200 feet x 12 inch/feet = 38,400 inch 1 블록길이 : 0.3 + 100x10/1600 = 0.925 (inch) --> 38,400/0.925=41,513.513 => 41,513 블록레코드수 = 테이프길이 / ( IBG + 1 레코드길이 x 블록수 / 기록밀도 ) Ex 2) 데이터전송률 6000KB, IBG 통과시간 1.4 ms, 논리레코드 100 byte 일때 30 개의논리레코드를전송하는데소요되는시간? 1 개의레코드전송시간 = 100/ 6000x1024 = 0.0162 (ms) 1 블록전송시간 = 1.4 + 0.0162 x 30 = 1.886 (ms)
3.3 보조기억장치 3.3.2 자기디스크데이터를직접또는임의로처리할수있는직접접근저장자치 (DASD) 이다. DASD는대용량의보조기억장치로서짧은시간에데이터검색이필요한은행업무, 항공예약업무, 호텔업무등에쓰임 섹터 탐구시간 (Seek Time) 판독 / 기록헤드의위치를정하는데필요한시간 탐색시간 (Search Time) 한트랙상의특정한레코드에도달하기까지의시간 (= 회전지연시간 Rotational Delay Time) 트랙 000 트랙 001 트랙 199 디스크데이터접근시간탐구시간 + 회전지연시간 + 데이터전송시간 < 자기디스크의구성 >
3.3 보조기억장치 3.3.3 플로피디스크 플로피디스크는 1979 년 IBM 사에서디스켓 (Diskette) 이라는이름으로발표되어기존의입력매체인천공카드의사용을감소시키는결과를만들었다. 종류 면수 트랙수 섹터수 바이트수 기억용량 5.25 2D 2 40 9 512 BYTE 360 KB 2HD 2 80 15 512 BYTE 1.2 MB 3.5 2DD 2 80 9 512 BYTE 720 KB 2HD 2 80 18 512 BYTE 1.44MB < 플로피디스크의기억용량 >
3.3 보조기억장치 3.3.3 플로피디스크 3.5inch 디스켓 5.25inch 디스켓 집드라이브 < 3.5 inch 디스켓단면 >
3.3 보조기억장치 3.3.3 플로피디스크 제조회사레이블 사용자가붙이는레이블 기록방지용홈 (write protect notch) 디스크 드라이브스핀들홀 (drive spindle hole) 섹터위치를찾기위한인덱스홀 (index hole) 보호자켓 판독 / 기록슬롯 드라이브에삽입하는방향 위치선정용홀 (postioning notches) < 플로피디스크의구조 >
3.3 보조기억장치 3.3.4 하드디스크 대형컴퓨터에서사용 자기성분을이용하여컴퓨터에서생성되는데이터를반영구적으로저장할목적으로사용되는기억장치 트랙 : 동심원를이루고있는각원형의기록위치 실린더 : 중심축으로부터같은거리에있는트랙들의모임 섹터 : 한트랙에서주소가지정된최소단위 클러스터 : 데이터를저장하기위한단위 몇개의섹터가하나의클러스터로취급 부트섹터 : 0 번트랙의 0 번섹터 TPI(Track Per Inch) : 기록밀도를나타내는단위
3.3 보조기억장치 3.3.5 광디스크 유리또는아크릴수지로만든디스크의표면에알루미늄과같은반사성이큰물질로코팅 코팅된표면에디지털데이터를기록하면데이터는반사성의표면에 1 은구멍으로찍히고, 0 은구멍이없도록찍힘 디지털로기록된정보는광디스크플레이어또는구동장치에있는저전력레이저에의해 CD 또는 CD-ROM 으로부터검색됨 CD-ROM 의장단점 ( 자기디스크에비해 ) - 정보저장용량이크고, 대량복사가가능하다 - 기록된정보에대한수정이불가능하다 - 접근시간이길다 광디스크의종류 광디스크용도 CD-ROM WORM MO DISK DBMS, 오디오디스크, 비디오디스크 문서용파일, 비디오용파일, 코드데이터백업용메모리 비디오용파일, 오디오용파일, 컴퓨터데이터파일
3.3 보조기억장치 보조기억장치내부 / 외부속도매체용량 미디어 교체가능 접근방법가격 디스켓 내외부 저속 매우저용량 가능 직접접근 낮음 Zip/EZFlyer 내외부 중간 저용량 ~ 중간 가능 직접접근 낮음 Laser Servo 내외부 중간 저용량 ~ 중간 가능 직접접근 낮음 Fixed Hard Disk 내외부 고속 매우고용량 가능 직접접근 중간 Removable Hard Disk 내외부 중간 / 고속 중간 ~ 고용량 가능 직접접근 중간 CD-ROM 내외부 중간 고용량 가능 직접접근 낮음 CD-R 외부 저속 고용량 가능 직접접근 중간 CD-MO 외부 중간 고용량 가능 직접접근 높음 Phase-change CD 외부 중간 고용량 가능 직접접근 중간 DVD-ROM 내외부 중간 고용량 가능 직접접근 중간 DVD-RAM 내외부 중간 매우고용량 가능 직접접근 높음 테이프 내외부 매우저속 고용량 가능 순차접근 중간
3.4 가상기억장치 CPU 가실행을위해요구하는프로세스의정보가항상주기억장소에있는것처럼착각하게하는기술 -. 주기억장치크기의제한 ( 프로그램크기가주기억장치보다클때 ) 연속적인주기억장치의공간확보가어렵다. -. 사용하지않는프로그램의부분을주기억장치에계속놓아두면주기억장치의낭비 -. 가상기억장치에서는사용자의프로그램은일부는주기억장치, 일부는보조기억장치에존재한다. -. 주소는항상자신의상대적인프로그램주소로유지해야한다. 프로그램상의가상주소 주소변환함수 (F) 물리적인주기억절대주소
3.4 가상기억장치 3.4.1 페이징기법 외부단편화의또다른해결방법으로가상기억장치내의프로그램과데이터를일정하고고정되게분할한용량을주기억장치에사상시키는방법을말한다. 페이지맵테이블가상주소형식 가상주소형식 가상주소 v = (p, d) p : 명령이나자료가속해있는페이지번호 d : p의시작점에서떨어져있는거리 ( 변위 ) 프로세스가요구하는페이지가주기억장소의어느페이지프레임에속하는지또는디스크에존재하는지를알려주는자료구조 프로세스실행시에제일먼저페이지맵테이블을탐색페이지프레임의위치 (p) 를찾고해당페이지프레임내에서어는부분 (d) 이실제실행할명령이나자료인지를구한다. 페이지가주기억장치에있으면페이지의위치를맵테이블에저장페이지가디스크에있을경우디스크상의페이지위치를맵테이블에저장
3.4 가상기억장치 3.4.1 페이징기법 페이지번호 (p) 변위 (d) 가상주소 V = (p,d) < 페이징시스템에서가상주소의형식 > -. Virtual address : 프로그래머가사용하는프로그램내에서의번지 -. Physical address : 주기억장치내에서의번지 장 점 - 동적주소변환을이용하여다중프로그래밍효과증가 - 큰가상기억장치제공및 CPU 이용률을증가 - 자동오버레이지원및외부단편화방지 (fragmentation) - 페이지의공유및재배치기가불필요 단점 - 주소변환에따른하드웨어비용상승과 CPU 오버헤드증가 - 세그멘테이션에비해효율적인논리주소공간관리나쁨 - 내부단편화발생
3.4 가상기억장치 3.4.1 페이징기법 기본방법고정된크기의블록 (2~4Kbyte) ( 논리적 ) 페이지 (page) -> 프레임 (frame) ( 물리적 )
3.4 가상기억장치 virtual address 2 1 20 page frame main memory 0 1 2 3 1 1 1 0 physical address segment table page table auxiliary storage
3.4 가상기억장치 3.4.1 페이징기법 < 동적주소변환과정 > PMT 의시작주소 ( b ) : 페이지매핑테이블초기점레지스터 실행되는프로세스는가상주소 v=(p,d) 를 참조 프로세스실행전 OS는문맥교환시에주 기억장치내의페이지매핑테이블 (PMT) 주소를 PMT 초기점레지스터에적재 PMT 시작주소 = b 페이지번호 = p PMT 내용을가리키는주기억장소생성 = b+p 페이지프레임 p = 디스크상의페이지 p 실제주기억장소 = p + d b+p p b 페이지번호 변위 p d CPU 가상주소 V = ( p, d ) PMT 페이지프레임번호 p p d 실제주기억장소내의주소
3.4 가상기억장치 3.4.1 페이징기법 < 예 > PMT 의시작주소 ( 0 ) 2 400 가상주소 V=(p,d) PMT 초기주소값 = 0 가상주소의페이지번호 = 2 PMT 참조주소 = 0 + 2 참조프레임의주소 = 1000 실제참조하는메모리주소 = 1000+ 400( 변위 ) 2 1 0 1 2.... 페이지프레임주소 상태 0 0 1000 1 3 1000 1400 실제주소 400 PMT 주기억장소
3.4 가상기억장치 3.4.1 페이징기법 < 예 > 4 개의워드 / n 개의페이지로구성된디스크 페이지번호 (p) = 가상주소 (v) / 페이지크기 (s) 페이지내의변위 (d) = 가상주소 (v) % 페이지크기 (s) 실제주기억장소의주소 = 프레임시작주소 (PMT(p))* 페이지크기 (s) + 프레임내의변위 (d) - 가상주소 2 에대해서페이지번호 (p) : 2 / 4 = 0 페이지내의변위 (d) : 2 % 4 = 2 2 번지는페이지 0 에속하므로 PMT(0) = 2 - 실제주소 PMT(0) * 페이지크기 (s) + 페이지프레임내변위 (d) 2 * 4 + 2 = 10 번지 ( 실제주소 )
3.4 가상기억장치 페이징및세그멘테이션시스템 가상기억공간을 segment 로나누고각 segment 는 4K byte 단위의 page 로나눈다. 주기억장치도 4K byte 단위의 page frame 으로나눈다. 가상기억공간의 page 는기억장치의임의의 page frame 에위치할수있다. 프로그램내에서기억공간참조는 segment 번호, page 번호, displacement( 떨어진거리 ) 로구성된다. segment no. page no. displacement < 프로그램내에서기억공간참조 >
3.4 가상기억장치 Virtual address 와 physical address 간의매핑 실제주기억장치에서의참조 ( 페이징및세그멘테이션시스템의예 ) 1. 프로그램에서지정한 segment 번호로 segment table 의엔트리를찾아해당되는 segment 의 page table 의주소를알아낸다. 2. 프로그램에서지정한 page 번호를보고 page table 의엔트리를찾아간다. 3. page table 의찾은엔트리의 page frame number 를보고해당되는 page frame 을찾아간다. 4. Page frame 에서의위치는프로그램에서지정한 displacement 를사용한다.
3.4 가상기억장치 5. Page table 의엔트리에해당되는페이지가주기억장치에있는지보조기억장치에있는지표시되어있다. 6. 만약주기억장치에있으면앞에설명된것처럼작동한다. 7. 만약주기억장치에없으면 page fault( 페이지부재 ) interrupt 가발생하고해당되는 page 가보조기억장치에서주기억장치로불려와한개의 page frame 을차지한다. 8. 그리고 page table 의엔트리를갱신 (update) 한다.
3.4 가상기억장치 3.4.2 세그먼테이션기법 세그먼트기법이란? 사용자의입장 ( 개념 ) 에더욱가까운주소방식으로, 프로그램은가변크기세그먼트의모임, 순서무의미하다. 또한위치의기준은해당세그먼트의시작위치 세그먼트번호 (s) 변위 (d) 가상주소 V = (s,d) < 세그먼트시스템에서가상주소의형식 > 논리공간 = 세그먼트 ( 이름 + 길이 ) 의집합주소 = 세그먼트의이름 ( 번호 ) + 변위페이징에서는구분없음 ( 하나의주소 ), 하드웨어가처리, 사용자 ( 컴파일러 ) 는모름
3.4 가상기억장치 3.4.2 세그먼테이션기법 < 동적주소변환과정 > SMT 의시작주소 ( b ) 실행되는프로세스는가상주소 v=(s,d) 를참조 SMT 에서세그먼트 S 가적재되어있는실제주기억장치기준주소 S 를찾는다. 세그먼트는페이지와달리가변크기이므로 SMT 내에는각세그먼트가저장된실기억장치주소와함께세그먼트의길이도포함되어있어주어진 d값이허용된범위내인지를검사한다. 세그먼트 s 에 d를더하여실기억장치의주소r을구한다. b+s S b 세그먼트번호변위 S d CPU 가상주소 V = ( p, d ) SMT 세그먼트프레임번호 S S d 실제주기억장소내의주소
3.4 가상기억장치 3.4.2 세그먼테이션기법 < 예 > 가상주소 v=(2,100) 세그먼트번호크기시작주소 0 1200 4000 1 800 5700 2 1000 2000 3 500 3200 세그먼트번호 2 에서시작주소 2000+ 변위 100=2100
3.5 고속기억장치 3.5.1 복수모듈기억장치 주기억장치의데이터접근시간을단축할수있는방법 1. 주기억장치의데이터접근시간을단축할수있는고성능주기억장치를사용할수있다. 2. 주기억장치의 1 사이클시간에 1 개이상의데이터및명령어를접근하면시스템병목현상을줄일수있다. 3. 중앙처리장치와주기억장치사이에고성능캐시기억장치를삽입시켜서데이터접근시간을최소화할수도있다. 4. 기억된정보내용의일부를이용하여데이터에직접접근함으로써접근시간을감소시킬수있다. 주소버스 MAR 기억장치 MBR 데이터버스 < 단일모듈기억장치의구성 >
3.5 고속기억장치 3.5.1 복수모듈기억장치 주소버스 MAR MAR MAR 기억장치 기억장치 기억장치 어레이 어레이 어레이 MBR MBR MAR 데이터버스 모듈 1 모듈 2 모듈 n < 모듈러기억장치 >
3.5 고속기억장치 3.5.2 인터리빙 (Interleaving) 기억장치 기억장치의접근이각기억모듈을번갈아가면서접근하도록하는것 메모리를여러모듈로나누고각모듈에연속적인주소를번갈아부여 한번의접근시간으로여러모듈에저장된연속적인주소의정보에 동시접근하도록하는기법 인터리빙구조에서얻어지는대역폭의증가는연속적인메모리주소에 저장된자료에접근하는경우에한한다 즉, 인터리빙구조를대역폭의증가를위해사용되며, 접근시간을줄이기 위함은아니다 인터리빙구조의취약점 - 메모리확장의어려움과메모리의주소가각모듈에대하여번갈아 부여되므로, 새로운모듈이추가되면주소연결이완전히변경되어야한다
3.5 고속기억장치 3.5.2 인터리빙기억장치 M1 M2 A1 M1 D1 A4 M4 D4 A2 M2 D2 A5 M5 D5 M3 A3 M3 D3 A6 M6 D6 < 3 개모듈기억장치의최대속도동작 ( 접근순서 : M1M2M3M1M2M3 -- ) >
3.5 고속기억장치 3.5.2 인터리빙기억장치 M0 A0, Ai, A2i, A3i CPU IOP 기억장치스위치네트워크 모듈주소 M1 Mn-2 Mn-1 주기억장치 A1, Ai+1, A2i+1, A3i+1 A2, Ai+2, A2i+2, A3i+2 A3, Ai+3, A2i+3, A3i+3 < 인터리빙기억장치의구성 >
3.5 고속기억장치 3.5.2 인터리빙기억장치 상위인터리빙 주소의상위비트들에의하여모듈이선택되고, 하위비트들은각모듈내의기억장소의주소를나타냄. 프로그램과데이터들이독립적이어서각각의기억모듈에저장하는것이더효과적인다중프로그래밍에사용. MSB LSB 모듈선택 모듈내의주소 - 하위인터리빙 주소의하위비트들에의하여기억모듈이선택되고상위비트들은각모듈내의기억장소의주소를나타냄. 모듈내의주소 모듈선택 - 혼합인터리빙 상위인터리빙과하위인터리빙방식을혼합한방식. 전체모듈을몇개의그룹으로나누어각그룹내에있는모듈간에인터리빙을함. 기억장치뱅크 : 기억모듈로이루어지는그룹. MSB LSB MSB LSB 뱅크선택모듈내의주소모듈선택
3.5 고속기억장치 3.5.3 연관기억장치 기억장치를참조하는데주소를사용하지않고내용을사용하여찾는기억장치로 Content Addressable Memory(CAM) 이라고도한다. 비교하여내용이같은워드의주소를알아내면워드에있는나머지정보를참조할수있다. 찾고자하는내용을동시에연상기억장치의여러워드의내용과비교하여검색하므로속도가빠르다. CAM 은저장능력뿐만아니라내용을비교하는논리회로를가지고있기때문에가격이비싸다. 짧은참조시간이요구되는테이블등에이용할수있다.
3.5 고속기억장치 3.5.3 연관기억장치 인자레지스터 (A) N bit A : 검색하고자하는정보를저장 K : 검색과정에서인자레지스터 A 의특정영역에대한마스크제공 Input Read Write < 예 > 키레지스터 (K) N bit 연상기억장치 M words N bit per word 출력 매치레지스터 (m ) < 연관기억장치의구조 > 쓰기동작 => RAM 읽기동작 => 연상기억메모리 레지스터 A = 10111110, 키레지스터 K = 11100000 워드 1 : 10100100 워드 2 : 11111011 일치 M1=1 불일치 M2=0
3.5 고속기억장치 3.5.4 캐시기억장치 프로그래머가볼수없는즉투명 (transparant) 한 " 숨겨진저장소 " 의의미를가는다. 캐시메모리의제어 - 하드웨어로행하여지고프로그래머는캐시메모리의존재를전혀 의식할필요가없다. - 캐시메모리가개발되어 CPU 와주메모리사이의속도차를조정하는 메모리라는의미로완충메모리 (buffer memory) 라고도부름 캐시메모리의특징 - 기억용량은작으나속도가아주빠른메모리로서 CPU 가주메모리를호출할때의속도차이를줄인다. - 처리효율을높이기위하여, 자주참조되는프로그램과자료들을 저장함으로써프로그램의총실행시간을단축
3.5 고속기억장치 3.5.4 캐시기억장치 동작순서 1. 중앙처리장치가주기억장치로부터한워드를읽으려고할때는먼저그워드가캐시에있는지를검사한다 2. 만약에있으면그워드가중앙처리장치로전달되고그렇지않으면그워드가포함된한블록이주기억장치로부터캐시로읽혀지고동시에중앙처리장치로전달된다 적중 (Hit) 중앙처리장치가주기억장치를참조할때캐시에서참조하고자하는워드를찾을경우 실패 (Miss) 원하는워드를캐시에서못찾을경우 적중률 (hit ratio) 적중률 = ( 적중의수 ) / ( 주기억장치접근의총수 ) = ( 적중의수 ) / ( 적중의수 + 실패의수 ) 보통 0.9 이상의값을가지고있다
3.5 고속기억장치 3.5.4 캐시기억장치 캐시의 Write 동작 직접기록 (write through) 모든쓰기동작들이캐시로뿐만아니라주기억장치로도동시에행해지는방식 [ 장점 ] 캐시에적재된블록의내용과주기억장치에있는그블록의내용이항상같다. [ 단점 ] 모든쓰기동작이주기억장치쓰기를포함하므로, 쓰기시간이길어진다. 기록복귀 (write back) 캐시에서데이터가변경되어도주기억장치에는갱신되지않는방식 [ 장점 ] 기억장치에대한쓰기동작의횟수가최소화되고, 쓰기시간이짧아진다 [ 단점 ] 캐시의내용과주기억장치의해당내용이서로다르다 블록을교체할때는캐시의상태를확인하여갱신하는동작이선행되어야하며, 그를위하여각캐시슬롯이상태비트를가지고있어야한다.
3.5 고속기억장치 3.5.4 캐시기억장치 적중률 = 적중횟수 기억장치접근횟수 ( 적중횟수 + 실패횟수 ) 캐시기억장치 주기억장치 cpu < 캐시기억장치 >
3.5 고속기억장치 3.5.4 캐시기억장치 Ex) 캐쉬메모리의접근시간은 10ns, 주메모리의접근시간은 100ns 이다. 메모리요청의 80% 는읽기이고, 20% 는쓰기이다. 읽기접근시의캐쉬미스율이 10% 이고, 쓰기정책은 write through 라하자. (1) 읽기만을고려할때, 평균메모리참조시간은얼마인가? 읽기시간 : tr=ph X tc + (1-Ph) X tm = 0.9 10 + 0.1 100 = 19ns (2) 쓰기만을고려할때, 평균메모리참조시간은얼마인가? ta = Ph ta = x tc Ph x + tc + (1 (1 - - Ph) Ph) x tm x tm tc : tc : 캐쉬의캐쉬의접근접근시간시간 tm : tm : 주메모리의주메모리의접근접근시간시간 Ph : Ph : 캐쉬의캐쉬의히트율히트율 쓰기시간 : tw=tm = 100ns( 주메모리의접근시간과같다 ) (3) 읽기와쓰기를모두고려할때, 평균메모리참조시간은얼마인가? 평균메모리참조시간 : ta=pr X tr + (1-Pr) X tw = 0.8 19 + 0.2 100 = 35.2ns