기억장치의 개요
프로그램과 데이터를 저장하는 장치
주기억장치
- 당장 처리에 필요한 프로그램이나 데이터를 저장
- 중앙처리장치와 직접 데이터 교환이 가능
보조기억장치
- 주기억장치의 용량부족으로 인해 저장이 어려운 대량의 자료를 보관하는 장치
- 중앙처리장치와 직접적인 자료교환이 불가능하며 주기억장치를 통해서만 가능
- 주기억장치에 비해 가격이 저렴하고 용량이 크지만 자료의 전송속도는 느림
지역성의 원리
주어진 시간에 여러 프로그램이 실행에서 발생하는 주소들은 기억장치내 몇몇 한정된 영역만을 반복적으로 발생
그외 영역에서는 상대적으로 드물게 발생함
- 시간적 지역성
- 어떤 내용이 한번 참조되면 곧바로 다시 참조되기 쉽다
- 공간적 지역성
- 어떤 내용이 참조되면 그 내용에 가까운 곳에 있는 다른 내용이 곧바로 참조되기 쉽다.
프로그램의 지역성
- 반복적으로 명령어와 데이터를 접근하게 되는 루프를 포함하는 대부분의 프로그램은 상당히 큰 시간적 지역성을 보인다
- 또한 대개의 명령어들이 순차적으로 접근되기 때문에 큰 공간적 지역성을 보인다.
기억장치의 계층구조
- 속도와 크기가 다른 기억장치를 여러 층으로 구성한것
- 지역성의 원리를 이용하여 기억장치 계층을 구현
계층구조의 목적
- 전체 기억장치를 구성하는데 있어서 가격은 최소화하면서 가능한한 빠른 접근속도와 대용량의 크기를 제공하기 위해. ->데이터 입출력의 경제성 확보
기억장치 성능평가 요인
기억용량
접근시간
- 기억장치에서 데이터를 판독하거나 기록하는데 걸리는 시간
사이클시간
- 하나의 액세스를 시작한 시간부터 다음 액세스를 시작할 때까지의 시간
기억장치 대역폭
- 기억장치의 데이터 처리속도를 말하며, 데이터 전송률이라고도 한다.
가격
주기억장치의 성능평가의 중요한 요인
- 접근시간 - cpu와 주기억장치 사이에 데이터처리시간과 연산시간 차이가 발생. 두 장치간의 속도차이를 개선할 필요
- 대역폭 - 처리속도.
- 기억용량
- 개선방법 :
-속도차이개선: 복수모듈기억장치,연관기억장치,캐시기억장치
- 기억용량의 한계개선 : 가상기억장치.
복수모듈 기억장치
- 주기억장치의 대역폭
-명령어 수행속도의 제한적인 요소
- 중앙처리장치와 입출력장치가 주기억장치를 경쟁적으로 이용하기 때문에 병목현상이 발생
-대역폭의 개선방법
-속도가 빠른 기억소자를 이용하여 설계
- 주기억장치에서 한번에 읽을 수있는 단어의 비트수를 증가
- 기억장치의 구조적 개선 = > 복수모듈 기억장치
복수모듈기억장치의 개요
-기억장치모듈을 여러개 가지고있는 기억장치(각 모듈은 독자적인 주기억장치)
-기억장치를 구성하고있는 모듈 수 만큼 단어들을 동시에 접근 가능
복수모듈 기억장치의 동작(3-모듈의 경우)
->하나의 모듈에 기억장치 버스를 통하여 주소를 보내는 동안 다른 모듈에서는 미리 보낸 주소를 해독하여 접근하며, 또 다른 모듈에서는 인출한 데이터를 버스를 통해 외부로 보낸다.
- 이런동작이 동시에 이루어져 기억장치의 대역폭을 높일 수 있다.
- 또한 버스를 구성하는데 데이터선들의 수가 많을 떄에는 모든 모듈에 동시에 병렬로 접근이 가능하다
일반적 기억장치의 문제점
- 하나의 버스를 공유할 경우 동시에 버스 사용을 요구하면 버스 경합이 발생
- 동시에 한개이상의 모듈들이 동일 버스를 사용하면 데이터간의 충돌 : 기억장치 충돌
해결방법
- 메모리인터리빙
- 버스경합이나 기억장치충돌과 같은 문제를 해결하기위해 기억장치를 여러개로 만들어서 모듈들이 동시에 접근할수 있게하는 방식
- 같은 시각에 cpu로부터 여러 모듈로 동시에 주소를 전달할수없기때문에 cpu가 각 모듈별로 전송할 주소를 교대로 배치하고 홀수 짝수 교대로 배치하고 차례차례 전송
-기억장치의 접근시간을 효율적으로 높일 수 있다.
연관 기억장치
- 일반적인 기억장치의 경우 주소를 알아야하는데 모를때는 많은 기억장치 사이클이 필요하다, = > 주소가아니라 내용을 이용하는 기억장치 필요
- 데이터를 찾을떄 주소로 찾는게아니라 그데이터의 내용을 이용해서 기억장치에 접근
- 내용주소화 기억장치 라고도 함
연관기억장치의 장점
- 16개의 연관기억장치 사이클필요
-32000단어 모두에 대해 한 비트씩 병렬로 읽어내어 비교(16비트 데이터의 경우)
- 연관 기억장치의 기억소자들은 병렬 판독회로가 포함되기 떄문에 가격이 매우 비쌈
캐시기억장치
-주기억장치의 수행속도를 개선을 위한 방법
-주기억장치보다 속도가 빠른 기억소자들로 구성되어 중앙처리장치와 주기억장치간의 속도차이를 줄여주는역할
-중앙처리장치가 주기억장치에 접근하는 대신 캐시기억장치에서 데이터를 가져오게 하는것
히트율이 높으면 좋다
캐시기억장치의 원리
- 가격이비싸기때문에 기억용량은 주기억장치의 기억용량보다 훨씬 작다
- 따라서 중앙처리장치가 주기억장치에있는 데이터를 캐시기억장치에서 접근하려면 그 데이터를 미리 캐시기억장치로 옮겨놓아야함
- - 데이터를 옮겨놓기위해서는 접근할 데이터를 미리 예측할 수있어야함
- - 기억장치접근에 대한 지역성의 원리를 이용하여 데이터를 캐시기억장치에 옮겨놓을 수 있다.
데이터접근의 지역성 원리
-최근에 접근한 프로그램이나 데이터는 미래에 다시 접근될 가능성이 크다
-이러한 접근의 지역성은 최근에 접근한 것을 기초로하여 가까운 미래에 접근할 명령어와 데이터를 비교적 정확하게 예측할수있는 수단
어떤 단어를 캐시기억장치로 옮겨놓기 위해서는
- 데이터 접근의 지역성을 기초로 그 단어를 포함하는 블록을 캐시기억장치로 미리 옮겨놓으면 된다
- 즉 가까운 미래에 접근할 데이터를 예측하는 방법이 구현된다.
블록
-데이터를 구성하는 최소한의 단위
- 주기억장치내에 연속적으로 저장된 일정한 수의 단어
-주기억장치와 캐시기억장치는 모두 같은 수의 단어로 구성된 블록으로 나뉘어져있다.
미스되었으면
-캐시기억장치에의 직접접근불가능
-주기억장치에서 대이터를 캐시기억장치에 옮겨놓은 다음에 캐시기억장치에 접근
-캐시기억장치에 여유공간이없다면 캐시기억장치의 블록중에서 하나를 희생블록으로 선택하여 주기억장치내의 데이터블록과 교환한 후에 캐시기억장치에 접근
블록교환
-캐시의 희생블록을 주 기억장치의 원래 공간에 다시 저장하고 캐시의 희생블록이 있던곳에는 주기억장치의 블록을 저장시키는 것.
-블록교환이 자주일어나는것은 주기억장치 접근을 빈번히 이루어지게하는것이므로 시간적 낭비
-따라서 데이터를 접근하려할때 캐시기억장치에서 히트율인 적중률을 높여 블록교환은 최소화해야함 0.95~0.99 면 우수
11강
1.캐시기억장치의 사상방식
사상(mapping)
-캐시기억장치와 주기억장치사이의 데이터이동
-중앙처리장치가 캐시기억장치에서 데이터를 가져오려 할때
- 원하는 데이터가 없을경우, 즉 미스가일어나면 캐시기억장치의 일부분을 주기억장치로 보내고 주기억장치의 데이터를 캐시기억장치로 가져와야하는 등의 데이터이동이 발생
사상의 종류
1)직접 사상
- 중앙처리장치가 주기억장치를 참조할때, 중앙처리장치로부터 나온 주소를 Tag필드와 Index필드로 나눈다.
- 데이터를 찾을때
- 캐시기억장치에서 중앙처리장치주소의 index필드와 같은 index를 찾아 Tag까지 같다면 그 주소의 데이터를 가져간다
- 만약 같은 index에 데이터가 없거나 또는 index는같으나 tag가 다르면 주기억장치에서 데이터를 찾아 가져오는 방식
2)연관 사상 방식
- 캐시기억장치에 데이터블록을 저장할때 데이터와 그 데이터의 주기억장치 주소도 함께 저장하는 방식
- 주기억장치의 어떤 데이터블록도 캐시기억장치의 임의의위치에 저장하기때문에 직접사상방식의 단점을 보완
3)집합-연관 사상
- 직접사상방식과 연관사상방식을 조합하여 만든 방식
- 캐시기억장치의 하나의 index에 두개이상이 서로 다른 데이터블록을 저장시켜서 하나의 세트를 만든다
-데이터를 찾을때
-- 캐시기억장치에서 중앙처리장치 주소의 index와 같은 index를 찾은후 그 index에 저장되어있는 서로 다른 tag를 갖는 데이터들 중에서 연관 사상방식에서와 같은 방식으로 찾고자하는 데이터의 tag와 같은 tag를 갖는 데이터를 찾아 가져온다
2. 가상기억장치
보조기억장치에 만들어놓음
보조기억장치와 같이 기억용량이 큰 기억장치를 마치 주기억장치처럼 사용하는 개념
주기억장치가 가지고있는 문제점 기억용량이 적다는것을 개선하기 위해서 비트당 가격과 기억용량이 보조기억장치와 같으며 속도가 주기억장치의 속도와 같은 기억장치를 제공받는것
기억공간
중앙처리장치에서 참조되는 각 주소는 가상주소를 주기억장치의 물리주소로 전환하는 주소 맵핑을 해야한다.
- 가상주소(VA) : 가상기억장치시스템에서 수행되는 프로그램의 명령어가 사용하는 주소
- 물리주소(PA) : 주기억장치에 접근하기위해 실제 주기억장치에 적용하는주소
따라서 주기억장치 접근을 위해서는 가상주소가 실제주소로 변환되어야한다.
프로그램을 블록단위로 나누어 실제 주기억장치에는 현재 실행되는 프로그램에 필요한 블록만을 기억시키고 나머지 부분은 보조기억장치에 그대로 두었다가 필요시 주기억장치에 올린다
이러한 일련의 작업들은 운영체제가 담당하는것이므로 중앙처리장치의 입장에서보면 픙로그램에 필요한 모든 내용이 마치 주기억장치에 있는것처럼 사용하는 것
블록의 기본개념은 페이지이며 세그먼트를 사용하기도 한다.
가상기억장치의 주소변환
-주소변환은 변환표(매핑표)를 이용)
- 중앙처리장치가 가상주소로 기억장치에 접근하려면 이 가상주소가 변환표에서 물리주소로 변환되어 이 주소로 실제 주기억장치에 접근한다.
주소변환방법
1)페이징기법
- 가상기억공간의 프로그램블록과 실제기억공간의 프로그램블록의 크기가 같고 각 블록의 크기도 모두 동일하게 나누어진 블록을 페이지라고할떄 이 페이지를 이용하는 방법
-즉 가상기억공간을 동일한 크기의 페이지로 나누어 사용하는 기법
2)세그먼트기법
-가상기억공간 즉 주소공간을 세그먼트 단위로 분할한다.
- 세그먼트는 페이지와 달리 분할되는 주소공간의 크기가 동일하지 않다. 즉 가변길이의 주소공간을 갖는다.
3. 보조 기억장치
당장 필요하지는 않지만 필요할 때에 주기억장치로 옮겨 사용할수있는 자룔를 저장하는 장치
기억장치 계층 구조상에서 가장 하위계층 수준에 위치
종류 - 접근시간,접근방법,및 데이터의 저장매체에 따라
- 자기매체(자기디스크, 자기테이프)
-광학 디스크(컴팩트 디스크)
-반도체 메모리(SSD)
구성방법에 따라
-RAID시스템 -저가의 자기디스크를 여러개 혼합해서 사용하는것
데이터의 접근방법에 따라
1)순차접근 방법
- 데이터가 순차적으로 저장되기떄문에 처음에 들어있던 자료부터 순서적으로 데이터를 검색해나가는 방법
- 일괄처리에 주로 사용 ex)자기테이프
2)직접접근방법
- 직접 원하는 레코드에 접근하는 방법
- 데이터 검색이 빠르며 실시간 처리에 주로 사용 ex)자기디스크
자기 디스크
-금속이나 플라스틱으로 만들어진 원형판을 자화된 물질로 코팅한 기억매체
- 헤드라 불리는 유도코일을 사용해서 데이터를 읽고 쓰게됨
ex)하드디스크, 플로피디스크
자기테이프
-산화자기 박막으로 코팅된 테이프
-순차접근방식의 기억장치
-단점:속도가느림 , 장점: 기록밀도의 효율성이 높음(데이터 백업용)
-데이터는 레코드 단위로 기록됨
광학디스크
-빛을 이용해 1과 0을 기록하고 판독
-정보 저장용량이 매우큼
하드디스크의 문제점
-자기디스크를 이용함에 따라 처리속도의 한계
-디스크의 회전에 따른 소음과 전력소모
-대안 : SSD
SSD(solid state device)
자기디스크가 아닌 반도채 메모리 내장
하드디스크보다 빠른속도의 데이터읽기,쓰기 가능
물리적인 움직임이 없으므로 작동 소음이 없고 전력소모가 적다.
SSD는 블록과 페이지를 기반으로한 구조
- 기존 파일시스템과 운영체제등에서 직접 활용 불가능
따라서 SSD컨트롤러에서 물리블록과 페이지위에 논리 섹터를 구현
- 시스템이 SSD를 기존의 하드디스크처럼 사용할 수 있도록 한다.
플래시 변환계층(FTL)
- 물리 블록과 페이지위에 논리섹터를 구현하여
-파일시스템이 논리섹터주소를 통해 SSD의 데이터에 접근하면 이를 물리블록과 페이지주소로 변환하여 플래시메모리의 데이터에 도달
RAID 시스템
고가의 대용량 시스템을 의미하는 SLED를 저가의 작은 디스크배열로 대체하기위해 개발됨
크기가 작고 저가인 여러개의 하드디스크를 묶어 하나의 기억장치처럼 사용하는 디스크 시스템
-RAID로 구성된 하드디스크는 여러개의 하드디스크에 데이터를 분산처리하지만, 운영체제는 하나의 디스크로 인식
-전송률을 높이기 위해 입출력을 병렬로 처리해야하므로 여러개의 헤드와 구동장치가 필요
-장치가 늘어날수록 오류발생률이 늘어나므로 오류검출용 패리티비트를 저장할수있는 여분의 디스크가 필요
- 0 ~6레벨까지 7종류가있음
-각 레벨 사이에는 계층적인 관계가없으며 서로 다른 특성을 가진다.
'수업 > 컴퓨터 구조' 카테고리의 다른 글
12,13 입출력시스템 (1) | 2024.10.26 |
---|---|
8.9.중앙처리장치 (0) | 2024.09.27 |
5.제어장치(1) 6.제어장치(2) (0) | 2024.09.13 |
명령어 형식 (0) | 2024.09.05 |