인터럽트를 처리하는 것은 인터럽트 서비스 루틴을 수행하는 것에 의해서 실행되는데 이 서비스 루틴의 초기 단계와 최종 단계를 보면 다음과 같다.
_ 초기 단계
① 우선순위가 낮은 입출력 장치의 마스크 레지스터를 클리어한다.
② 인터럽트 상태 비트(Interrupt Status Bit) IST를 클리어한다.
③ 프로세서 레지스터의 내용을 메모리에 저장한다.
④ 인터럽트 인에이블 비트(Interrupt Enable Bit) IEN을 세트한다.
⑤ 서비스 루틴을 실행한다.
_ 최종 단계
① 인터럽트 인에이블 비트(Interrupt Enable Bit) IEN을 클리어한다.
② 프로세서 레지스터의 내용을 메모리에 다시 저장한다.
③ 서비스된 자원에 속하는 인터럽트 레지스터의 비트를 클리어한다
④ 우선순위가 낮은 입출력 장치의 마스크 레지스터를 세트한다.
⑤ 되돌아갈 주소를 PC에 저장하고 IEN을 세트한다.
8.3 DMA (Direct Memory Access)
DMA는 데이터의 입출력 전송이 CPU의 관여를 받지 않고 직접 메모리 장치와 입출력 장치 사이에 이루어지도록 하는 방법
DMA 전송 시에는 CPU는 메모리 버스를 제어하지 못하고 쉬게 된다. DMA 전송에는 고속 입출력 장치에 사용되는 DMA 대량 전송(Burst Transfer)과 저속장치에 사용되는 사이클 스틸링 (Cycle Stealing)의 방법이 있다.
(1) DMA 대량 전송
입출력 장치가 고속일 경우에 사용되는 방식으로서 CPU가 제어하고 있는 기억장치의 사이클을 DMA에서 독점하게 해서 한 번에 한 블록의 데이터를 중단없이 전송하는 방식
(2) 사이클 스틸링
입출력 장치가 저속일 경우에 사용되는 방식으로서 CPU가 제어하고 있는 기억장치의 사이클 하나를 사용해서 한 번에 하나의 워드를 전송하는 방식
8.3.1 DMA 전송 과정
① 입출력 장치는 DMAC에게 입력할 자료가 있음을 알린다.
② DMAC가 CPU에게 인터럽트를 걸어서 메모리 버스 사용을 요구한다.
③ CPU는 사용 허가 신호와 함께 블록의 시작 번지, 한 블록의 워드 수, 전송량 등의 정보를 DMAC에게 전송한다.
④ 메모리 버스의 사용을 인가받은 DMAC는 입출력 장치에 신호를 보내 메모리의 시작
번지를 알려준다.
⑤ DMAC의 제어하에 자료를 메모리에 직접 전송한다.
8.3.2 채널
각각의 인터페이스는 CPU와 통신하게 하는 하나의 프로세서로서 이 역할을 하게 한 것이 입출력 프로세서 또는 입출력 채널이라고 한다.
8.4 데이터 통신 프로세서
데이터 통신 프로세서는 전화선이나 다른 통신회선을 통하여 연결된 원격 단말장치로부터 데이터를 받아들이거나 데이터를 보내는 프로세서이다. 즉, 데이터 통신망과 직접 통신할 수 있도록 설계된 특수한 형태의 프로세서라 할 수 있다.
I/O 프로세서와 데이터 통신 프로세서의 차이점은 I/O 프로세서는 공통의 입출력 버스를 통해서 주변장치와 통신을 하나, 데이터 통신 프로세서는 각 단말장치와 하나의 선을 통하여 통신한다.
9장 병렬처리 컴퓨터
병렬 처리하는 컴퓨터로 볼 수 있다. 병렬처리는 컴퓨터 시스템의 계산 속도 향상을 목적으로 하여 동시 데이터 처리 기능을 갖는 것을 말한다. 즉 병렬 처리의 목적은 컴퓨터의 처리 속도를 향상시키고 처리 효율을 증가시키기 위한 것이다. 따라서 병렬처리를 구현하기 위해서는 별도의 하드웨어가 필요하여 시스템의 가격 상승을 가져온다.
병렬처리는 어떤 관점을 가지고 분류하느냐에 따라서 여러 가지로 분류해 볼 수 있다. 예를 들면 프로세서의 내부 구조에 의해서, 프로세서의 연결 형태에 따라서 그리고 시스템의 정보 흐름에 따라서 분류할 수 있다. 이들 여러 분류 중에서 M, J, Flynn이 분류한 것이 가장 많이 이용되고 있다. 이 분류는 동시에 처리되는 명령어와 데이터 항목 수에 의해서 분류를 한 것이다.
9.1.1 Flynn의 분류
메모리로부터 읽어온 명령어의 순서는 명령어 흐름(Instruction Stream)을 구성하고 데이터에 대해서 수행되는 동작들은 데이터의 흐름(Data Stream)을 구성한다. 병렬처리는 명령어 흐름과 데이터 흐름 모두에 대해서 적용하여 다음과 같이 4가지로 분류하였다.
(1) SISD(Single Instruction Stream Single Data Stream)
가장 고전적인 컴퓨터 형태로서 하나의 명령에 의해 하나의 데이터만 처리하는 구조를 말한다.
즉, 고전적인 폰 노이만의 컴퓨터를 말한다. 병렬 처리는 다중기능 장치나 파이프라인 처리에 의해서 구현된다.
(2) SIMD(Single Instruction Stream Multiple Data Stream)
하나의 동일한 명령으로 모든 프로세서가 동시에 데이터를 처리하는 구조로서, 공통의 제어장치 하에 여러 개의 처리 장치를 두는 배열 프로세서와 같은 특별한 경우에 유용하다. 이러한 구조에서는 병렬 처리를 위해서 모든 프로세서가 동시에 메모리에 접근할 수 있도록 다중 모듈을 갖는 공유 메모리 장치가 가능
(3) MISD(Multiple Instruction Stream Single Data Stream)
여러 프로세서는 서로 다른 명령어에 의해서 동일한 데이터를 처리하는 구조로서 이론적으로 연구가 되는 것일 뿐 실질적으로 처리하는 방식이 아니다. 현실적으로 거의 성능의 향상을 가져올 수 없는 구조
(4) MIMD(Multiple Instruction Stream Multiple Date Stream)
여러 개의 프로그램을 동시에 수행하는 능력을 가진 구조
'컴퓨터 구조' 카테고리의 다른 글
소프트웨어 (0) | 2023.01.01 |
---|---|
병렬처리 컴퓨터 (0) | 2022.12.28 |
입력 및 출력 (0) | 2022.12.28 |
기억 장치 - 메모리 (0) | 2022.12.27 |
프로세스 - 인터럽트 처리 과정 (0) | 2022.12.27 |
댓글