* 비동기 데이터 전송
|
발신지 장치 |
목적지 장치 | |
|
발신지 장치 |
목적지 장치 | |
|
DATA |
Valid Data |
|
Strobe |
|
발신지 장치 |
목적지 장치 | |
![]()
|
DATA |
Valid Data |
|
Strobe |
<목적지 개시>
② 핸드셰이킹 : 인터페이스와 I/O 장치와의 데이터 전송에서 볼 수 있으며 하나의 데이터라인과 두 개의 제어라인으로 이루어져 있다.
|
발신지 장치 |
목적지 장치 | |
|
Data |
Valid Data |
|
Data valid |
|
Data accepted |
|
발신지 장치 |
목적지 장치 | |
![]()
![]()
![]()
|
Ready for data |
|
Data valid |
|
Data |
Valid Data |
* 직접 메모리 접근(DMA : direct memory access)
: 자기디스크와 같은 고속의 저장 장치와 메모리 사이의 데이터 전송은 CPU에 의해 속도가 제한될 수 있다. 따라서 이 데이터 전송 경로에서 CPU를 제거하고 주변 장치가 직접 메모리 버스를 관리하도록 한다면 전송 속도가 훨씬 증가 될 것이다. 이러한 전송 방식을 직접 메모리 접근이라고 한다.
① 주변장치가 DMA 요구 전송
② DMA제어기가 BR(버스요구)라인 활성화
③ CPU는 실행을 마저 마친 후 주소버스, 데이터 버스, 읽기, 쓰기 제어 라인을 고저항 상태로 만든 후 BG(버스포기)라인을 통해 버스포기를 알린다.
④ DMA제어기는 주소레지스터 값을 주소버스로 출력하고 읽기와 쓰기 제어 라인을 활성화
⑤ 주변장치에 DMA 승낙
⑥ 주변장치는 데이터 버스를 통해 메모리에 전송
(한 위드 전송 시마다 주소레지스터의 값은 ‘1’ 증가, 워드 카운트 레지스터의 값이 ‘0’이 될 때까지 ‘1’감소시킨 후 ‘0’이 되면 DMA제어기는 전송을 중단하고 버스요구를 제거한다.
만약 DMA과정중에 다른 장치가 DMA를 원하였다면 그 장치가 다시 DMA를 사용한다.)
⑦ 인터럽트를 이용하여 CPU에 전송 끝을 알리고 CPU는 인터럽트에 응답하여 워트 카운트 레지스터의 내용을 읽어와 전송의 성공여부를 확인

