마이크로 프로세서-8257 DMA 컨트롤러

DMA는 Direct Memory Access를 나타냅니다. 인텔에서 가장 빠른 속도로 데이터를 전송하도록 설계되었습니다. 이를 통해 장치는 CPU의 간섭없이 메모리와 직접 데이터를 전송할 수 있습니다.

DMA 컨트롤러를 사용하여 장치는 CPU에 데이터, 주소 및 제어 버스를 보유하도록 요청하므로 장치는 메모리에서 직접 데이터를 자유롭게 전송할 수 있습니다. DMA 데이터 전송은 CPU에서 HLDA 신호를 수신 한 후에 만 ​​시작됩니다.

DMA 작업은 어떻게 수행됩니까?

다음은 DMA에 의해 수행되는 일련의 작업입니다.

  • 처음에는 장치가 장치와 메모리간에 데이터를 보내야 할 때 장치가 DMA 컨트롤러에 DMA 요청 (DRQ)을 보내야합니다.

  • DMA 컨트롤러는 CPU에 HRQ (Hold request)를 보내고 CPU가 HLDA를 선언 할 때까지 기다립니다.

  • 그런 다음 마이크로 프로세서는 모든 데이터 버스, 주소 버스 및 제어 버스를 3 중 상태로 만듭니다. CPU는 버스 제어를 떠나 HLDA 신호를 통해 HOLD 요청을 승인합니다.

  • 이제 CPU는 HOLD 상태에 있으며 DMA 컨트롤러는 CPU, 메모리 및 I / O 장치 간의 버스를 통한 작업을 관리해야합니다.

8257의 특징

다음은 8257의 눈에 띄는 기능의 목록입니다.

  • 4 개의 I / O 장치에서 사용할 수있는 4 개의 채널이 있습니다.

  • 각 채널에는 16 비트 주소와 14 비트 카운터가 있습니다.

  • 각 채널은 최대 64kb의 데이터를 전송할 수 있습니다.

  • 각 채널은 독립적으로 프로그래밍 할 수 있습니다.

  • 각 채널은 읽기 전송, 쓰기 전송을 수행하고 전송 작업을 확인할 수 있습니다.

  • 128 바이트가 전송 된 주변기기에 MARK 신호를 생성합니다.

  • 단상 클럭이 필요합니다.

  • 주파수 범위는 250Hz에서 3MHz입니다.

  • 2 가지 모드로 작동합니다. Master modeSlave mode.

8257 아키텍처

다음 이미지는 8257의 아키텍처를 보여줍니다-

8257 핀 설명

다음 이미지는 8257 DMA 컨트롤러의 핀 다이어그램을 보여줍니다.

DRQ 0 -DRQ3

이는 4 개의 개별 채널 DMA 요청 입력으로, 주변 장치에서 DMA 서비스를 사용하는 데 사용됩니다. 고정 우선 순위 모드를 선택하면 DRQ 0 이 가장 높은 우선 순위를 가지며 DRQ 3 이 가장 낮은 우선 순위를 갖습니다.

DACK o -DACK 3

이들은 CPU에 의한 요청 상태에 대한 요청 주변 장치를 업데이트하는 액티브 로우 DMA 승인 라인입니다. 이러한 라인은 요청 장치에 대한 스트로브 라인으로도 작동 할 수 있습니다.

D o − D 7

시스템 버스를 DMA 컨트롤러의 내부 데이터 버스와 인터페이스하는 데 사용되는 양방향 데이터 라인입니다. Slave 모드에서는 명령어를 8257로, 상태 어를 8257로 전달합니다. 마스터 모드에서이 라인은 생성 된 주소의 상위 바이트를 래치로 전송하는 데 사용됩니다. 이 주소는 ADSTB 신호를 사용하여 추가로 래치됩니다.

IOR

이는 CPU가 슬레이브 모드에서 8257의 내부 레지스터를 읽는 데 사용하는 액티브 로우 양방향 3 상태 입력 라인입니다. 마스터 모드에서는 메모리 쓰기주기 동안 주변 장치에서 데이터를 읽는 데 사용됩니다.

IOW

데이터 버스의 내용을 8 비트 모드 레지스터 또는 16 비트 DMA 주소 레지스터 또는 터미널 카운트 레지스터의 상위 / 하위 바이트로로드하는 데 사용되는 활성 낮은 양방향 3 상태 라인입니다. 마스터 모드에서는 DMA 메모리 읽기주기 동안 주변 장치에 데이터를로드하는 데 사용됩니다.

CLK

8257의 내부 동작에 필요한 클럭 주파수 신호입니다.

초기화

이 신호는 모든 DMA 채널을 비활성화하여 DMA 컨트롤러를 재설정하는 데 사용됩니다.

A o -A 3

4 개의 최하위 주소 행입니다. 슬레이브 모드에서는 읽기 또는 쓰기 할 레지스터 중 하나를 선택하는 입력 역할을합니다. 마스터 모드에서는 8257에 의해 생성 된 4 개의 최하위 메모리 주소 출력 라인입니다.

CS

액티브 로우 칩 셀렉트 라인입니다. 슬레이브 모드에서는 8257과의 읽기 / 쓰기 작업을 활성화합니다. 마스터 모드에서는 8257과의 읽기 / 쓰기 작업을 비활성화합니다.

4 - 7

이들은 마스터 모드에서 DMA에 의해 생성 된 하위 바이트 주소의 상위 니블입니다.

준비된

대기 상태를 삽입하여 DMA를 준비하는 액티브 하이 비동기 입력 신호입니다.

HRQ

이 신호는 출력 장치에서 보류 요청 신호를 수신하는 데 사용됩니다. 슬레이브 모드에서는 DRQ 입력 라인 8257과 연결됩니다. 마스터 모드에서는 CPU의 HOLD 입력과 연결됩니다.

HLDA

1로 설정된 경우 CPU가 요청하는 주변 장치에 버스를 부여했음을 DMA 컨트롤러에 표시하는 보류 확인 신호입니다.

MEMR

DMA 읽기주기 동안 주소 지정된 메모리 위치에서 데이터를 읽는 데 사용되는 낮은 메모리 읽기 신호입니다.

MEMW

DMA 쓰기 작업 중에 주소가 지정된 메모리 위치에 데이터를 쓰는 데 사용되는 액티브 로우 3 상태 신호입니다.

ADST

이 신호는 DMA 컨트롤러에 의해 생성 된 메모리 주소의 상위 바이트를 래치로 변환하는 데 사용됩니다.

AEN

이 신호는 주소 버스 / 데이터 버스를 비활성화하는 데 사용됩니다.

TC

현재 주변 장치에 대한 현재 DMA주기를 나타내는 'Terminal Count'를 의미합니다.

마크는 처음부터 각 128 사이클 또는 적분 배수 후에 활성화됩니다. 현재 DMA 사이클이 선택한 주변 장치에 대한 이전 MARK 출력 이후 128 번째 사이클임을 나타냅니다.

V cc

회로 작동에 필요한 전원 신호입니다.