정보처리기사 필기 - 2과목 전자계산기 구조


7장 병령 컴퓨터


1. 병렬 컴퓨터의 분류

· 플린(Flynn)의 병렬 컴퓨터 분류

- 다중 프로세싱O / 다중 프로그래밍X

- 처리기를 많이 사용한다고 해서 처리 속도가 정확하게 배만큼 빨라지는 것은 아님

· SISD
· SIMD
- 배열 처리기 구조
- 여러 개의 처리기가 한 개의 제어 처리기에 의해 제어
- 병렬처리 수행
· MISD
- 실제 사용되기 어려움
- Pipeline Process(2개 이상의 명령어를 동시에 수행할 수 있는 프로세서. 속도개선가능)
- 여러 개의 처리기에서 수행되는 인스트럭션들은 각기 다르나 전체적으로 하나의 데이터 스트림을 가지는 형태
- 하나의 데이터 흐름이 다수의 프로세서들로 전달되며, 각 프로세서는 서로 다른 명령어를 실행하는 구조
- 다중 명령어, 단일 데이터 흐름
· MIMD
- n개의 프로세서들이 서로 다른 명령어들과 데이터를 처리


·  병렬 처리시 문제점 : 분할의 문제, 스케줄링의 문제, 동기화의 문제(블록지정의 문제X)


·  연속 로딩 기법 : 기억공간 관리 중 고정 분할 할당과 동적 분할 할당으로 나누어 관리되는 기법


·  RAID-4 : 패리티 디스크에 액세스가 집중되어 병목 현상이 발생하는 문제점 있어 RAID-5 개발됨


· Systolic : 백터 처리기에서 사용할 수 있는 알고리즘


· 약식 주소 : 계산기에 의한 주소


· 스테이징 Staging : 대용량의 보조기억장치의 내용을 직접 접근이 가능한 영역으로 이동하여 컴퓨터 시스템에서 자료를 접근할 수 있도록 하는 기능


· 디스크 배열을 구성하면 여러 개의 디스크에 분산사여 저장하기 때문에 한 디스크라도 결함이 생기면 파일 전체를 사용할 수 없으므로 신뢰도 낮아짐


· Unicode : ASCII 인식 가능하지만 ASCII에서는 Unicode의 특수문자 인식 불가능


· 가변 우선순위 방식 : 회전 우선순위, 동등 우선순위, 최소-최근 우선순위


· 회전 우선순위 방식 : 가장 우선순위가 낮았던 마스터가 최상위 우선순위를 가지도록 하는 가변 우선순위 방식


· 데이터 흐름형 컴퓨터 : 최대의 병렬성을 얻을 수 있는 컴퓨터 구조


· Marshalling : 특정 수신기나 프로그래밍 인터페이스에 맞도록 그 데이터를 조직화하거나 미리 정해진 다른 형식으로 변환하는 과정


· CISC : 인텔 계열의 거의 모든 프로세서에서 사용하는 프로세서 설계 방식


· RISC : 거의 모든 명령어가 레지스터를 대상으로 하며 메모리의 접근을 최소로 하는 프로세서 설계 방식, 수행속도가 빠름, 명령어 단순


· 파이프라인이 정상적인 동작에서 벗어나게 하는 원인 : 자원 충돌, 데이터 의존성, 분기 곤란(지연된 분기X, 유효주소의 계산X)


· 전파지연 : 평균 전이 지연 시간

'정보처리기사 > 전자계산기 구조' 카테고리의 다른 글

전자계산기 구조 오답노트  (0) 2017.02.22
6장 기억장치  (0) 2017.02.22
5장 입력 및 출력  (0) 2017.02.22
4장 명령 실행과 제어  (0) 2017.02.22
3장 프로세서  (0) 2017.02.21

정보처리기사 필기 - 2과목 전자계산기 구조


6장 기억장치


1. 기억장치의 개요


기억장치의 측성을 결정하는 요소


· Cycle Time

- 기억장치에 접근을 위하여 판독 신호를 내고나서 다음 판독 신호를 낼 수 있을 때까지의 시간

- 기억장치에 대해 접근을 시작하고 종료한 후에, 다시 해당 기억장치를 접근할 때까지의 소요 시간

· 대역폭(Bandwidth)

- 주기억장치가 제공할 수 있는 정보 전달 능력의 한계

- 최고 주파수와 최저 주파수 사이의 간격

- 실질적인 대역폭을 늘리기 위해 메모리 인터리빙

- 기억장치에서 데이터를 읽거나 기억시킬 때 1초동안 사용되는 비트 수

- 대역폭 = 워트 비트수 × 1초당 접근 수

Q. 기억장치접근 속도 0.5 마이크로초, 데이터 워드가 32비트일 때 대역폭은?

A. 1000000/0.5=2000000

1초에 32비트 워드를 2000000번 접근

=> 32*2000000=64000000=64Mbit



2. 주기억장치


· ROM

- 기억된 내용을 읽을 수만 있는 기억장치로 일반적으로 쓰기는 불가능

- 종류

= PROM : 사용자가 한번만 기입할 수 이고 지울 수 없음

= EEPROM : 비휘발성(nonvolatile-전원이 끊겨도 데이터가 없어지지 않는), 전기적인 방법으로 수정과 삭제

· RAM

- 휘발성 메모리

- 종류

= DRAM(동적램) : 방전현상이 있어 재충전 필요

= SRAM(정적램) : 플립플롭(쌍안전 논리회로 성질) 사용하고 속도 빠름(레지스터보단 느리고 DRAM보다는 빠름)

· PLA

- ROM과 유사한 성격을 갖고, AND Array와 OR Array로 구성

- 프로그램이 가능한 논리소자

· CPLD

- PLA로 구성되며, 빠른 성능이나 정확한 타이밍의 예측이 필요로 하는 곳에 사용


※ 용량 계산

· 용량 = 워드의 메모리 용량(=기억장소개수=워드의수=데이터단위용량) × 워드의 크기(bit)

· 워드의 메모리 용량 : 2ⁿ(n이 PC(bit)=n이 MAR(bit)=n이 조수선의 수=n이 Address Register(bit))

· MBR(bit)=워드의 크기=워드의 길이=Data Register(네개 다 동일한 비트수를 갖음)

· 워드의 수=용량/워드의 크기

Q. 4096*16의 용량. 이때 MBR은? 16bit

Q. 65536워드의 메모리 용량. 이때 PC는? 65536은 2의 16승이니까 16bit

Q. 4096워드의 메모리 용량, 1워드가 8비트, 이때 PC와 MBR은? 4096은 2의 12승이므로 PC=12bit/1워드가 8비트이므로 MBR=8bit

Q. 1024K*24bit의 용량, MAR? MAR=1024K=1024*1024=2의 10승*2의 10승이므로 20bit

Q. 1Mbyte의 기억용량, 주소선의 수? 2의 20승이므로 20개

Q. 8192bit 용량, 워드 길이가 16비트, 워드의 수는 8192bit/16bit=512개, 이때 PC,AR,DR?

8192=512(PC, AR)*16(DR) -> PC,AR : 512=2의 9승이므로 9bit / DR=16bit

Q. 데이터 단위가 8비트, 용량이 64Kbyte, 어드레스핀? 64K가 2의 6승*2의10승이므로 6+10=16개

Q. 256*8RAM, 2Kbyte의 용량, 필요한 RAM 개수?

RAM의 개수=용량/워드의 크기 -> 용량:2K=2*1024=2048 / 워드의 크기:256 => 2048/256=8개


· 자기 코어 메모리

- 읽으면 내용이 지워지는 파괴 메모리, 전선에 흐르는 전류의 방향에 따라 1혹은 0 값을 갖음



3. 보조기억장치


· 자기테이프

- 주소개념을 사용하지 않는 순차처리(SASD)

- 랜덤처리 가능X

- 대량의 데이터를 장시간 보관

· 자기디스크

- 즉시 참조할 필요가 있는 Library Program들을 기억

- Cylinder(트랙의 모임으로서 물리적 구성요소가 아니라 논리적인 의미임) 수=트랙 수

· 원체스터 디스크 : 자기 디스크에 헤드가 가까울수록 불순물이나 결함에 의한 오류 발생의 위험이 더 큰데 이러한 문제를 해결


· 디스크 Access Time

Access Time = Seek Time+Latency Time+Transmission Time

*Seek Time(탐색시간):R/W Head가 특정 트랙까지 이동하는데 걸리는 시간

*Latency Time(회전 지연 시간)



4. 연관기억장치(Associative Memory)


· 연관기억장치 

- 주소보다 내용으로 접근할 수 있는 메모리

- 접근 속도가 향상

- CAM이라고도 함

- 병렬 판독 논리 회로를 갖고 있기 때문에 하드웨어 비용이 증가

- 캐시나 가상 메모리에서 사용하는 매핑방식에 주로 사용

· 메모리 인터리빙 Interleaved Memory

- Instruction의 빠른 처리 속도를 위해 중앙처리장치의 속도와 기억장치의 속도를 유효 Cycle 동안 병행 실행

- 기억장치 모듈에 순차적으로 번갈아가며 접근

- 데이터를 디스크에 분산 저장

- 연속된 위치를 서로 다른 뱅크로 구성하여 하나의 주소를 통하여 여러 개의 주소를 동시에 접근 가능

- 모듈 수 만큼 데이터 양에 해당하는 워드의 수를 동시에 읽을 수 있음

- 중앙처리장치와 기억장치 사이에 실질적인 대역폭을 늘리기위한 방법으로 사용

· 메모리 관리 하드웨어 MMU

- 논리 주소를 물리 주소로 변환

- 허용되지 않는 메모리 접근 방지

- 메모리 동적 재배치

- 가상 주소 공간을 물리 주소 공간으로 변환



5. 캐시 메모리(일종의 버퍼 메모리)


· 캐시 메모리

- CPU의 속도와 메모리의 속도 차이를 줄이기 위해 사용, 시행속도를 중앙처리장치의 속도에 근접하게 하기 위해서 memory access 시간 단축

- 분리 캐시를 사용하면 집중률은 떨어지지만 캐시 접근시 충돌을 방지할 수 있음

- 캐시는 많이 쓰이고 있는 프로그램과 데이터를 저장하지만 보조기억장치(가상메로리)는 쓰이지 않는 부분을 저장

- 일관성 문제는 읽기 접근 빈도가 많은 접근 형태에서 캐싱이 우수

- 매핑 프로세스 방법 3가지

= 직접 매칭 : 적중률 낮아질 수 있음

= 어소시에이티브 매핑

= 세트 어소시에이티브 매핑

- 캐시 메모리에서 변화된 내용을 주기억장치에 기록하는 방법

= Write Through : 캐시메모리와 주기억장치의 내용을 동시에 갱신하는 방식

단점 : 쓰기 동작에 걸리는 시간이 김

= Write Back

= Write Once

- 캐시 미스율 : 1-캐시에 있는 횟수/전체 액세스 횟수

- 캐시블럭번호=메모리블록번호 MOD 캐시블록수


Q. 16바이트 블록 크기와 64 블록으로 구성된 캐시에서 바이트 주소 1200이 사상되는 블록 번호는?

메모리 블록번호 : 1200/16=75

블록번호=75 MOD 64=11


- 접근 시간 빠른 순서

Cache Memory > Main Memory > Magnetic Disk > Magnetic Tape


· SSD에서 하나의 셀에 3비트의 정보를 저장하는 방식 : TLC



6. 가상기억장치


· 가상기억장치(Virtual Memory)

- 가상 기억 공간의 구성은 프로그램에 의해 수행

- 가상 기억장치의 목적은 주기억장치의 용량 확보

- 가상 메모리로 보조 기억장치(자기 디스크) 사용

- page fault가 발생하면 요구된 page가 주기억장치로 옮겨질 때까지 프로그램 수행이 중단됨

- 주기억장치에 직접 적용될 수 있는 기억장소의 주소로 변환되어야 할 때 사용하는 것은 사상함수

- 주소공간은 보조기억장치에서 사용 / 페이지로 구분

- 기억공간은 주기억장치에서 사용 / 블록으로 구분

Q. 64K 주소공간과 4K인 기억공간 한 페이지가 512워드로 구성, 페이지와 블록은?

페이지 : 64*1024=65536/512=128

블록 : 4*1024=4096/512=8


- 주소의 구조는 페이지주소+페이지크기

Q. 주기억장치용량이 512KB인 컴퓨터 -> 512*1024=2의 19승

페이지 크기가 1K워드이고 1워드가 4바이트 -> 4KB=4*1024=2의 12승

실제페이지 주소는? 페이지주소+12bit=19bit => 7bit

32비트의 가상 주소를 사용했을 때 가장 페이지 주소는? 페이지주소+12bit=32bit => 20bit


- 전체 페이지 테이블 크기 = 페이지수 * 페이지 테이블 엔트리의 크기

페이지수 = 기억장소의 크기/페이지의 크기

Q. 32비트의 가상 주소, 4KB 페이지, 페이지 엔트리당 4바이트, 전체 페이지 크기는?

먼저, 페이지수=2의 32승/2의 12승=2의 20승=1M

전체 페이지 크기 = 1M*4B=4MB

'정보처리기사 > 전자계산기 구조' 카테고리의 다른 글

전자계산기 구조 오답노트  (0) 2017.02.22
7장 병령 컴퓨터  (0) 2017.02.22
5장 입력 및 출력  (0) 2017.02.22
4장 명령 실행과 제어  (0) 2017.02.22
3장 프로세서  (0) 2017.02.21

정보처리기사 필기 - 2과목 전자계산기 구조


5장 입력 및 출력


1. 입·출력장치의 구성


· 입·출력 제어 장치

- 입·출력 장치의 인터페이스와 컴퓨터 시스템 사이에 데이터의 전송을 제어하는 장치

· 입·출력 인터페이스

- 주변장치와 CPU나 메모리의 동작 방식의 차이, 전송 속도의 차이, 데이터 형식 등의 차이점을 해결하는 것이 목적

- 기억장치는 빠르고 입·출력 장치는 느림

- 입·출력장치에 포함되어야 하는 하드웨어

= 데이터 레지스터, 장치의 동작 상태를 나타내는 플래그, 장치 번호 디코더(단어 계수기X)

· 입출력 제어 방식 중 프로그램에 의한 I/O

- 상태 레지스터 읽기 → 값이 set 상태이면 단계 3

- 그렇지 않으면 단계 1 → 데이터 레지스터 읽기


버퍼링

스풀링

목적

고속의 CPU와 저속의 입·출력 장치의 속도 차이를 해결

저장 위치

주기억장치

보조기억장치(=디스크)

운영 방식

단일작업

다중작업

입·출력 방식



2. 입출력 제어 방식


· Interrupt I/O

- 인터페이스가 CPU에 입·출력을 요구하고 입·출력 전송이 완료되면 CPU는 수행중이던 프로그램으로 돌아가서 수행을 재개

- CPU의 상태 보존 필요

- 인터럽트 제어 방식 : 비동기 제어 방식


· DMA(Direct Memory Access)에 의한 I/O

- 주기억장치와 I/O 장치 간의 정보 교환 때, CPU의 개입 없이 직접 정보 교환이 이루어지는 방식(CPU의 부하 증가X)

- CPU가 어떤 명령과 다음 명령을 수행하는 사이 하나의 데이터 워드를 직접 전송

- DMA의 구성

= 인터페이스 회로, 주소 레지스터, 워드 카운트 레지스터, 제어 레지스터, 데이터 레지스터

- DMA의 전송 절차

① CPU가 DMA에게 명령

② CPU에게 버스 사용 요구

③ CPU가 버스 사용 허가

④ 데이터 전송

⑤ DMA 제어기가 자료 전송을 종료했을 때 CPU에게 인터럽트 신호 발생

- 사이클 스틸(Cycle Steal) 이용

= 중앙처리장치와 입출력장치가 동시에 주기억장치를 접근하려고 할 때, 주기억장치가 입출력장치에 우선순위를 부여하여 중앙처리장치는 주기억장치에 접근 불가


사이클 스틸과 인터럽트의 차이점

#DMA의 사이클스틸은 CPU의 상태 보존 필요 없고, CPU는 메모리 참조가 필요없는 오퍼레이션을 계속 수행

#인터럽트가 발생하면 CPU는 인터럽트를 처리하지만 사이클 스틸은 instruction 수행 도중 사이클스틸이 발생하면 CPU는 그 사이클 스틸동안 정지상태가 됨

- 인터럽트와 비교하여 DMA 방식에 의한 사이클 스틸의 가장 특징적인 차이점 : 주기억장치 사이클의 한 주기만 정지


· Channel에 의한 I/O

-입출력을 위한 명령어를 입출력 프로세서에게 수행토록 하여 CPU 관여 없이 입출력 수행

- 채널은 CPU외 별도의 하드웨어적인 장치라서 CPU와 독립적 처리가 이루어짐

- 자체적으로 자료 수정 또는 코드 변환 가능

- 채널의 종류

= Selector Channel : 고속 입출력장치 / 어느 한 입·출력 장치의 전용인 것처럼 운용

= Multiplexer Channel : 저속 입출력장치 여러개를 동작시킬 수 있으

= block multiplexer channel : 위의 두 개를 결합

- 채널 명령어(CCW)의 구성 요소

=Data Address, Flag, Op-code(처리속도X, 전송속도X)

- 채널 명령어로 알 수 있는 내용

= 명령코드, 데이터 주소, 데이터 크기


· 프로그램 제어 방식은 CPU가 상태 플래그를 계속 조사하여 I/O가 완료되었으면 MBR과 AC사이의 자료 전송도 CPU가 직접 처리

· 데이터 버스는 CPU와 메모리 또는 입출력기기 사이에서 데이터를 전송하는 전송선으로 입출력 제어장치에 포함될 뿐 따로 분류되지는 않음

· 고립형 I/O

- 고립형 I/O는 기억장치의 주소공간과 전혀 다른 입·출력 포트를 갖는 형태

· 스루풋(중앙처리장치의 데이터 처리 능력) : 채널>DMA>인터럽트

※ 디멀티플렉서(demultiplexer) : 1개의 input line과 n개의 selection line을 갖음



3. 인터럽트


· 인터럽트

- 예기치 않은 상황이 발생할 경우 먼저 처리하고 실행중이던 작업으로 복귀

- 이때 복귀주소, PC의 값은 스택에 저장

- 인터럽트의 실질적인 조치를 하는 서비스 루틴을 실행할 때 인터럽트 플래그를 0으로 하면 인터럽트 발생 방지 가능

- 페이지폴트-CPU가 액세스한 가상 페이지가 주기억장치에 없는 경우에도 인터럽트 발생

- 인터럽트 종류

= 외부 인터럽트

# 컴퓨커 자체 내의 기계적인 장애

# 타이머(주어진 CPU사용시간을 해당 프로세스가 모두 소진할 경우)

# 오퍼레이터가 콘솔상의 인터럽트

# 정전

= 내부 인터럽트(=트랩)

# 불법적인 명령

# 0으로 나누기

# overflow / underflow 발생한 경우

# 보호 영역 내의 기억장소 참조

# 인터럽트의 우선순위결정과 관련 없음

= SVC 시스템 호출 인터럽트

# 사용자가 의도적으로 호출한 경우

※ 프린터에 용지 부족 : PC 하드웨어 인터럽트


- 인터럽트 발생 시 CPU가 확인할 사항

= 프로그램 카운터의 내용

= 사용한 모든 레지스터의 내용

= PSW(상태 조건의 내용)


- 인터럽트 동작 순서

① 인터럽트 요청 신호 발생

② 현재 실행중이던 명령어는 끝까지 실행

③ 현재의 프로그램 상태 보존 : 다음 실행할 명령의 번지는 PC가 가지고 있음, 스택에 기억

처리루틴

서비스(취급)루틴

 ④ 인터럽트를 요청한 장치를 식별, 인지

 ⑤ 인터럽트의 실질적인 조치

 ⑥ 상태 복구 : 보존 시켰던 PC의 값을 복구

 

 인터럽트 실행 중에 우선순위가 높은 인터럽트(정전이 우선순위가 가장 높음)를 발생하면 그거 먼저 처리

- 인터럽트 서비스 루틴의 기능 : 상대적으로 낮은 레벨의 마스크 레지스터 클리어


· 인터럽트 백터 Vectored

- 인터럽트를 발생한 장치가 프로세서에게 분기할 곳의 정보를 제공

- 인터럽트가 발생했을 때 특정 장소로 점프하도록 분기번지가 기억, 특정 번지의 서브루틴을 수행하는 것

- 분기 번지가 필수

· 인터럽트 체제의 기본 요소

- 인터럽트 요청, 인터럽트 처리 루틴, 인터럽트 취급 루틴

· 인터럽트 우선순위 판별 방법

- 소프트웨어적인 방법

= 폴링 Polling(인터럽트 요청 신호 플래그를 차례로 검사하여 인터럽트 원인 판별)

= 반응 속도 : 저속

= 회로 복잡도 : 간단

= 경제적임

= 우선 순위 변경이 쉬움

- 하드웨어적인 방법

= 데이지체인(인터럽트가 발생하는 모든 장치를 직렬로 연결), 벡터, 병렬(Parallel)우선순위 부여 방식

= 반응 속도 : 고속

= 회로 복잡도 : 복잡

= 비경제적임

= 융통성 없음


· 인터럽트 우선순위 운영 방식

- LCFS, FCFS, Masking Scheme

'정보처리기사 > 전자계산기 구조' 카테고리의 다른 글

7장 병령 컴퓨터  (0) 2017.02.22
6장 기억장치  (0) 2017.02.22
4장 명령 실행과 제어  (0) 2017.02.22
3장 프로세서  (0) 2017.02.21
2장 자료의 표현  (0) 2017.02.21

+ Recent posts