강의 정보처리 필기 강사 조대호 차시 명 [CA-09강] 특수기억장치와 입 출력장치 차시 9차시 학습내용 특수기억장치, 입력 및 출력 장치 학습목표 특수기억장치의 종류와 개념을 이해 할 수 있다 입력 및 출력장치의 구성과 개념을 이해 할 수 있다 학습내용 1. 컴퓨터의 구성 - 1 -
2. 기억장치의 분류 3. 기억장치 계층 구조 4. 특수기억장치 연관기억장치 (Associative Memory) : 연관기억장치는 기억장치에서 자료를 찾을 때 주소에 의해 접근하지 않고, 기억된 내용의 일부를 이용하여 Access할 수 있는 기억장치로,CAM(Content Addressable Memory)이라고도 함 연관기억장치의 특징 1 주소에 의해서만 접근이 가능한 기억장치보다 정보 검색이 신속함 2 캐시 메모리나 가상 메모리 관리 기법에서 사용하는 Mapping Table에 사용됨 4 메모리의 내용으로 접근(access) 할 수 있는 메모리 6 기억된 여러 개의 자료 중에서 주어진 특성을 가진 자료를 신속히 찾을 수 있음 - 2 -
Mapping Table 메모리 계층 시스템에서 보조기억 장치의 내용을 주기억장치로 옮기는 데 필요한 것 대응 관계를 테이블로 표현하여 임의의 정보를 그에 대응하는 정보로 변환하는 것 연관기억장치에 사용되는 기본요소 1 일치 지시기 : 내용의 일부가 같은 워드를 찾았으면 1로 세트함 2 마스크 레지스터 : 비교할 비트를 정해 1로 세트함 3 검색 데이터 레지스터 : 비교할 내용이 들어 있음 복수 모듈 기억장치 : 독자적으로 데이터를 저장할 수 있는 기억장치 모듈을 여러 개 가진 기억장치 복수 모듈 기억장치의 특징 1 주기억장치와 CPU의 속도 차의 문제점을 개선함 2 기억장치 버스를 시분할하여 사용함 3 기억장소의 접근을 보다 빠르게 함 메모리 인터리빙 (Memory Interleaving) 1 인터리빙이란 여러 개의 독립된 모듈로 이루어진 복수 모듈 메모리와 CPU 간의 주소 버스가 한 개로만 구성되어 있으면 같은 시각에 CPU로부터 여러 모듈들로 동시에 주소를 전달할 수 없기 때문에, CPU가 각 모듈로 전송할 주소를 교대로 배치한 후 차례 대로 전송하여 여러 모듈을 병행 접근하는 기법 7 중앙처리장치와 기억장치 사이에 실질적인 대역폭(bandwidth)을 늘리기 위한 방법 8 프로그램 수행 도중 서로 다른 번지의 주소를 동시에 지정하는 방식 9 메모리 인터리빙(interleaving) 방법의 사용 목적 : 메모리 액세스의 효율 증대 디스크 인터리빙 디스크 인터리빙(interleaving)은 독립된 디스크(disk)를 2개 이상 나누어 연결하고 독립된 디스크(disk)를 번갈아 가면서 연속적으로 액세스가 이루어지도록 구현하는 방법으로 주기억장치 처리 속도에 비해 사이클 타임이 오래 걸리는 디스크에 접근하 는 시간을 효율적으로 높일 수 있는 방식 캐시 메모리 (Cache Memory) 1 캐시 메모리는 CPU의 처리 속도와 주기억장치의 접근 속도 차이를 줄이기 위해 사용하는 고속 Buffer Memory임 2 중앙처리장치(CPU)의 속도와 주기억장치의 속도차가 클 때 명령어(Instruction)의 수행 속도를 중앙처리장치의 속도와 비슷하도록 하기 위하여 사용하는 메모리 3 성능을 향상시키기 위하여 주기억장치와 CPU 레지스터 사이에서 데이터를 이동시키는 중간 버퍼로 작용하는 기억장치 캐시 메모리의 특징 1 캐시는 주기억장치와 CPU 사이에 위치함 2 캐시를 사용하면 주기억장치를 접근(Access)하는 횟수가 줄어듦으로 컴퓨터의 처리 속도가 향상됨 3 주기억장치와 CPU사이에서 일종의 버퍼(buffer)기능을 수행 4 수십 Kbyte-수백 Kbyte의 용량을 사용 - 3 -
가상기억장치 (Virtual Memory) 1 기억용량이 작은 주기억장치를 마치 큰 용량을 가진 것처럼 사용할 수 있도록 하는 운영체제의 메모리 운영 기법 2 사용자는 프로그램의 크기에 제한 받지 않고 프로그램의 실행이 가능함 3 사용자가 보조 메모리의 총 용량에 해당하는 기억 장소를 컴퓨터가 갖고 있는 것처럼 가상하고, 프로그램을 짤 수 있는 것을 말함 기억장치의 관리전략 1 기억장치의 관리전략은 보조기억장치에 저장되어 있는 프로그램을 주기억장치에 효율적으로 적재하기 위한 방법 2 기억장치의 관리전략 방법 반입(Fetch) 전략 - 보조기억장치에 보관 중인 프로그램이나 데이터를 언제 주기억장치로 적재할 것인지를 결정하는 전략 - 요구반입(Demand Fetch) : 실행 프로그램이 요구할 때 비로소 적재하는 방법 - 예상반입(Anticipatory Fetch) : 실행 프로그램에 의해 참조될 것을 예상하여 미리 적재하는 방법 배치(Placement) 전략 - 새로 반입되는 프로그램이나 데이터를 주기억장치의 어디에 위치시킬 것인가를 결정하는 전략 - 최초 적합(First Fit), 최적 적합(Best Fit), 최악 적합(Worst Fit)이 있음 교체(Replacement) 전략 - 주기억장치의 모든 분할된 영역이 이미 사용 중인 상태에서 새로운 프로그램을 주기억장치에 배치하려고 할 때, 이미 사용되고 있는 페이지 프레임 중에서 어느 하나를 선택하여 빈 페이지 프레임으로 만들어 줄 것인지를 결정하는 전략 - FIFO(First In First Out), OPT, LRU, NUR, LFU, MFU 등의 방법이 있음 가상기억장치의 관리 기법 1 페이징(Paging) 기법 가상기억장치를 고정 길이의 페이지로 구분하고 이러한 페이지를 하나의 단위로 하여 주기억장치에 설치하고 주소를 변환함 보조기억장치를 여러 개의 page로 구분함 OS가 보조기억장치에 있는 프로그램을 동일한 크기의 블록으로 나누어서 관리하는 기법 예제 - 64K인 주소 공간(address space)과 4K인 기억 공간(memory space)을 가진 컴퓨터인 경우 한 페이지(page)가 512워드로 구성된다면 페이지와 블록 수는 각각 얼마인가? 페이지(Page)는 주소공간에서 그리고 블록은 기억공간에서 사용되는 용어임 주소공간이 64K이므로 페이지 수는 64K / 512 = 2 16 / 2 9 = 2 7 = 128페이지 (K = 1024) 기억공간이 4K이므로 블록 수는 4K / 512 = 2 12 / 2 9 = 2 3 = 8블록 2 세그먼트(Segmentation) 기법 가상기억장치를 논리적으로 하나의 단위가 되는 가변 길이의 세그먼트로 구분하고, 이러한 세그먼트를 하나의 단위로 하여 주기억장치에 설치하고 주소를 변환함 일반적으로 하나의 세그먼트는 독립적으로 구성되는 하나의 모듈이나 하나의 자료 구조 등으로 구성됨 사용자가 보조기억장치에 있는 프로그램을 가변적인 크기의 블록으로 나누어서 관리하는 기법 - 4 -
주소 매핑 (주소 변환) 1 주소 매핑은 가상주소를 실기억주소로 변환하는 작업 2 보조기억장치에 보관 중이던 프로그램을 실행하기 위하여 각 Page들을 주기억장치에 Load했다 하더라도 프로그램을 구성하는 각 기계명령에 포함된 주소는 가상주소로 남아 있기 때문에, CPU에서 주기억장치를 Access하기 위해서는 가상주소를 실주소로 변환해야 함 3 주소 변환 순서 페이지 번호에 해당하는 페이지 프레임 번호와 가상주소의 변위 주소값을 이용하여 실기억주소를 만듦 만들어진 실기억주소를 이용하여 주기억장치를 액세스함 4 사상 함수 (Mapping Function) 인스트럭션이 수행될 때 주기억장치에 접근하려면 인스트럭션에서 사용한 주소는 주기억장치에 직접 적용될 수 있는 기억장소의 주소로 변환되어야하는데, 이 때 주소로부터 기억장소로의 변환에 사용되는 것 실기억 주소를 계산하는 함수를 말함 5 매핑 (Mapping) 가상기억장치에서 주기억장치로 자료의 페이지를 옮길 때 주소를 조정해 주어야 하는 것 전자계산기 기억장치의 주소 설계 시 고려사항 1 주소를 효율적으로 나타내야 함 2 사용자에게 편리하도록 해야 함 3 주소공간과 기억공간을 독립시킬 수 있어야 함 5. 입력 및 출력 입 출력 장치의 구성 1 입 출력 제어장치는 입 출력 장치와 컴퓨터 사이의 자료 전송을 제어하는 장치 2 제어신호의 논리적, 물리적 변환 그리고 오류를 제어함 3 DMA, 채널, 입 출력 컴퓨터 등이 입 출력 제어장치에 해당됨 4 데이터 버퍼 레지스터를 이용하여 두 장치간의 속도 차를 조절함 입 출력 인터페이스 1 메모리나 CPU 레지스터와 같은 내부 저장 장치와 외부 I/O 장치 간에 2진 정보를 전송하는 방법을 제공 2 기계적인 장치인 주변 장치와 전자적인 장치인 CPU와의 동기화, 신호값 변환, 주변 장치와 CPU의 속도 차이를 해결하며, 각각의 주변 장치들이 서로 방해되는 일이 없도록 하는 기능 3 입 출력 장치 인터페이스에 포함되어야 하는 하드웨어 - 데이터레지스터, 장치의 동장 상태를 나타내는 플래그, 장치 번호 디코더 입출력 인터페이스 실행 Command 종류 - 제어 Command, 데이터 출력 Command, 데이터 입력 Command - 5 -
입출력 장치의 종류 - 입력장치 : OMR, OCR, MICR, 스캐너, 마우스, 라이트펜, 디지타이저, 키보드 등 - 출력장치 : 모니터, 프린터, 플로터 등 - 보조기억장치(입출력 겸용장치) : 자기테이프, 자기디스크, 자기드럼 등 기억장치와 입 출력 장치의 동작 차이 기억장치는 처리 속도가 nano(10-9)의 단위인 전자적인 장치이고, 입 출력 장치는 milli(10-3)의 단위인 기계적인 장치이므로 동작방식에는 많은 차이가 있음 비교 항목 입 출력 장치 기억장치 동작의 속도 (가장 중요 항목) 느림 빠름 동작의 자율성 타율 / 자율 타율 정보의 단위 Byte(문자) Word 착오 발생률 많음 적음 비동기 데이터 전송 핸드셰이킹(Handshaking) 방식 1 컴퓨터와 주변장치사이에 Data 전송을 할 때 입출력의 준비나 완료를 나타내는 신호 (RDY, STB)를 사용하여 Data 입출력을 하는 방식 2 스트로브 제어 방법보다 높은 융통성과 신뢰성을 가짐 3 2~3개의 제어선을 이용함 스트로브 펄스(Strobe Pulse)방식 데이터버스와 1개의 제어선을 이용, 메모리와 CPU사이의 정보교환에 이용 버퍼링과 스풀링 버퍼링(Buffering) 1 저속의 입 출력 장치와 고속의 CPU의 처리 속도 차이를 개선하기 위한 방법 2 주기억장치의 일부 공간을 버퍼공간으로 할당하여 처리할 데이터를 임시 기억하여 처리 하는 방식 3 버퍼의 위치는 주기억장치 4 한번 나와 있는 데이터가 CPU에서 여러 번 사용함 스풀링(Spooling) 1 I/O 효율을 높이기 위해 I/O의 내용을 디스크 등에 모아두었다가 처리하는 방식 2 디스크 일부를 매우 큰 버퍼처럼 사용 3 스풀의 위치는 보조기억장치 4 어떤 작업의 입/출력과 다른 작업의 계산을 병행 처리하는 기법 - 6 -
버퍼링과 스풀링의 차이점 1 버퍼링은 일반적으로 하드웨어적 구현이지만 스풀링은 소프트웨어적 구현 2 버퍼링은 일반적으로 단일작업 단일사용자이지만 스풀링은 다중작업 다중사용자 3 버퍼링에서 일반적으로 버퍼의 위치는 주기억장치이지만 스풀링에서 스풀의 위치는 디 스크 * 고급언어는 하드웨어에 독립적이고, 컴파일러에 종속적이다. 요점정리 1. 특수기억장치의 종류와 개념을 정리합니다. 2. 입력 및 출력장치의 구성과 개념을 정리합니다. 다음차시예고 수고하셨습니다. 다음 10주차에서는 [CA-10강] 인터럽트와 병렬컴퓨터 에 대해서 학습하도록 하겠습니다. - 7 -