인텔 8237

Intel 8237
Intel 8237A-5(원래 IBM PC 마더보드에서 사용됨)
핀아웃

Intel 8237MCS 85 마이크로프로세서 제품군의 일부인 DMA(Direct Memory Access) 컨트롤러다.DMA 전송 중 메모리에 제어 신호와 메모리 주소 정보를 제공하여 시스템 메인 프로세서에 부하를 줄여 메모리와 I/O 간 데이터 전송을 가능하게 한다.

8237은 4채널 소자로 DMA 채널 입력을 얼마든지 포함시킬 수 있다.8237은 초당 최대 1.6메가바이트의 속도로 DMA 전송이 가능하다.각 채널은 메모리의 64k바이트 단면을 처리할 수 있으며 단일 프로그래밍으로 최대 64k바이트까지 전송할 수 있다.[1]

단일 8237은 원본 IBM PC와 IBM XT에서 DMA 컨트롤러로 사용되었다.IBM PC AT는 마스터 슬레이브 구성에 8237개를 추가해 DMA 채널 수를 4개에서 7개로 늘렸다.[2]나중에 IBM과 호환되는 개인용 컴퓨터에는 역호환성을 위해 8237의 기능을 모방하는 칩셋이 있을 수 있다.인텔 8237은 실제로 AMD(Am9517이라 한다)에 의해 설계되었다.그것은 AMD가 인텔 프로세서를 제조할 수 있도록 하는 교차 라이선스 계약의 일부로서, 이 설계는 인텔에서도 사용할 수 있게 했다.인텔 패키지에 "(C)AMD 1980"이 인쇄된 이유다.

모드

8237은 사이클당 전송되는 바이트 수와 사용되는 IC의 수에 따라 네 가지 다른 모드로 작동한다.

  • 단일 - 하나의 DMA 사이클, 하나의 CPU 사이클이 주소 카운터가 0에 도달할 때까지 인터리브됨.[3]
  • 블록 -[3] 워드 카운트가 0이 되거나 EOP 신호가 활성화될 때까지 전송이 진행됨
  • 요구 - TC 또는 EOP가 활성화되거나 DRQ가 비활성화될 때까지 전송이 계속됨CPU는 전송이 요청되지 않을 때 버스를 사용할 수 있다.[3]
  • 캐스케이드 - 추가 DMA 컨트롤러를 캐스케이드하는 데 사용.DREQ와 DACK는 다음 칩의 HRQ, HLDA와 매칭되어 우선 순위 사슬을 구축한다.실제 버스 신호는 계단식 칩에 의해 실행된다.[3]

메모리 대 메모리 전송을 수행할 수 있다.이것은 데이터가 한 메모리 장치에서 다른 메모리 장치로 전송될 수 있다는 것을 의미한다.채널 0 Current Address 레지스터는 데이터 전송과 채널 1의 소스가 되며 Current Word Count 레지스터가 0이 되면 전송이 종료된다.채널 0은 IBM PC 호환 제품의 DRAM 리프레시에 사용된다.[3]

자동 초기화 모드에서는 프로세스 종료(EOP) 신호를 수신하면 주소와 카운트 값이 복원된다.이것은 CPU 개입 없이 일어난다.마지막 이적을 반복할 때 사용한다.[3]

ISA 카드로의 전송 종료 신호는 터미널 카운트(TC)이다.전송이 완료되면 자동 초기화가 수행되도록 구성된다.

싱글 모드

단일 모드에서는 요청당 1바이트만 전송된다.모든 전송에 대해, 카운트 레지스터는 감소하고 어드레스는 프로그래밍에 따라 증가하거나 감소한다.카운트 레지스터가 0에 도달하면, 단말 카운트 TC 신호가 카드에 전송된다.[4][5]

DMA 요청 DREQ는 카드를 통해 제기되어야 하며 DMA가 DACK를 승인할 때까지 활성 상태로 유지되어야 한다.[4]

블록 전송 모드

전송은 DREQ에 의해 활성화되며, DACK이 승인하면 비활성화할 수 있다.전송은 프로세스가 끝날 때까지(내부 또는 외부 중 하나) 계속되며, 카드에 단자 카운트 TC를 트리거한다.이 모드에서는 자동 초기화를 프로그래밍할 수 있다.[4]

요구전송모드

전송은 DREQ에 의해 활성화되고 DACK가 승인하며 TC, 외부 EOP 또는 DREQ 중 하나가 비활성화될 때까지 계속된다.TC 또는 외부 EOP만 프로그래밍된 경우 자동 초기화를 활성화할 수 있다.[4]

내부 레지스터

데이터 전송을 위해 8237에서 사용되는 내부 레지스터는 다음과 같다.

  • 기본 주소 레지스터:데이터 전송이 수행될 초기 주소를 저장하려면 다음과 같이 하십시오.
  • 기본 단어 수 레지스터:수행할 전송 수를 저장하려면 다음과 같이 하십시오.
  • 현재 주소 레지스터:데이터가 전송되는 위치의 현재 주소를 저장하려면 다음과 같이 하십시오.
  • 현재 워드 카운트 레지스터:수행할 남은 전송 수를 저장하려면 다음과 같이 하십시오.
  • 임시 주소 레지스터:메모리 간 전송 중에 데이터 주소를 유지하려면
  • 임시 워드 카운트 레지스터:메모리 간 전송에서 수행할 전송 수를 유지하려면 다음과 같이 하십시오.
  • 모드 레지스터: 사용할 채널, 작동 모드, 즉 전송 모드 및 기타 전송 파라미터를 저장하는 8비트 레지스터
  • 명령 레지스터: 데이터 전송에 사용할 채널을 초기화하는 8비트 레지스터
  • 요청 레지스터: 데이터 전송을 요청하고 있는 채널을 나타내는 데 사용되는 8비트 레지스터
  • 마스크 레지스터: 특정 채널이 DMA 서비스를 요청하지 못하도록 차단하는 데 사용되는 8비트 레지스터
  • 상태 레지스터: 현재 DMA 서비스를 받고 있는 채널과 기타 일부 파라미터를 나타내는 데 사용되는 8비트 레지스터

IBM PC 사용

인텔 MCS-85 장치 제품군의 일원으로서 8237은 16비트 주소 지정을 가진 8비트 장치다.그러나 8086/88 마이크로프로세서와 호환된다.IBM PC와 PC XT 모델(기계형 5150 및 5160)은 8088 CPU와 8비트 시스템 버스 아키텍처를 가지고 있다. 후자 인터페이스는 8237에 직접 연결되지만 8088은 20비트 주소 버스를 가지고 있기 때문에 각 DMA 채널마다 하나씩 4개의 4비트 주소 래치가 8237과 함께 추가되어 주소 카운터를 확장한다.그러나 이러한 외부 래치는 8237 주소 카운터와 분리되어 있기 때문에 DMA 작동 중에는 자동으로 증가하거나 감소하지 않으므로 64 KiB 주소 경계에서 DMA 작동을 수행할 수 없다.DMA 전송에서 64KiB 경계를 넘으려는 시도는 하나의 64KiB 메모리 블록 내에서 처리된다(예를 들어, DMA 채널과 관련 주소 래치가 주소 0x3FF8C에서 시작하는 오름차순 주소로 256바이트를 전송하도록 프로그래밍된 경우, 주소 0x3FF8C에서 0x4008B까지 전송하는 대신 데이터가 전송된다).0x3FF8C ~ 0x3FFF를 처리한 다음 0x30000 ~ 0x3008B)를 처리한다.

IBM PC AT(기계형 5170) 및 100% 호환성은 80286 CPU와 16비트 시스템 버스 아키텍처를 사용한다.PC와 XT 모델의 8237 외에도 16비트 DMA 전송을 위해 두 번째 계단식 8237이 추가된다.이는 8237이 8비트 장치임에도 불구하고 8237이 데이터를 소스 메모리나 I/O 포트에 의해 버스에 배치하고 동시에 대상 I/O 포트나 메모리에 의해 직접 읽히는 "플라이 바이" 전송으로 I/O 포트와 메모리 간의 전송을 수행하기 때문에 가능하다.이 전송 모드의 경우, 데이터 버스의 폭은 기본적으로 8237에 중요하지 않다(8237 레지스터 프로그래밍을 위해 최소 8비트 폭의 데이터 버스에 연결되어 있는 한).The second 8237 in an AT-class PC provides three 16-bit DMA channels (its channels 1 through 3, named channels 5 through 7 in the PC AT); its channel 0 (named channel 4 in the PC AT) is used in cascade mode to connect the 8237 for 8-bit DMA as the "slave" in the cascade arrangement; the 8237 providing the 16-bit channels is the "master".16비트 단어의 어드레스를 낼 수 있도록, 단일 어드레스가 아닌 짝수 어드레스(0, 2, 4, ...)를 셈하는 방식으로 어드레스 버스에 연결된다.최초의 8237과 마찬가지로 4개의 주소 확장 레지스터로 증강된다.AT-클래스 PC에서는 8개의 주소 증강 레지스터 모두 8비트 너비여서 전체 24비트 주소(80286 주소 버스 크기)를 지정할 수 있다.어떤 채널에서 DMA 전송은 여전히 64 KiB 경계를 넘을 수 없다. (16비트 DMA 채널은 65536 주소를 통해 카운트할 수 있지만, 32,768개의 16비트 워드로 제한된다. 16비트 DMA 채널에서 주소 카운터의 가장 중요한 비트는 무시된다.8237 메모리 대 메모리 DMA 모드는 8237의 소스 메모리 위치에서 내부 임시 8비트 레지스터로 바이트를 전송한 다음 임시 레지스터에서 대상 메모리 위치로 전송하는 방식으로 작동하기 때문에 임시 레지스터가 충분히 크지 않기 때문에 16비트 메모리 대 메모리 DMA에 이 모드를 사용할 수 없었다.또한 메모리 대 메모리 16비트 DMA는 채널 4를 사용해야 하며, 8비트 DMA 채널을 처리하는 8237의 사용과 상충된다.단, AT에서는 8비트 DMA 채널 0이 DRAM 리프레시에 더 이상 사용되지 않고 전문 리프레시 로직으로 대체되므로, DRAM 리프레시를 중단하지 않고 채널 0과 1을 사용하여 8비트 메모리 대 메모리 DMA를 수행할 수 있어야 한다.

PC AT 호환성의 8237 기반 DMA 설계는 32비트 CPU와 32비트 시스템 버스 아키텍처로의 이동으로 업데이트되지 않았다.따라서 이러한 기계의 한계는 80286 CPU를 중심으로 한 원래 설계에 따라 보조 주소 "페이지" 확장 레지스터가 있는 8237 DMA 컨트롤러는 16 MiB의 메모리만 처리할 수 있다는 것이다.[6]즉, 다른 메모리 영역의 경우, 데이터를 먼저 I/O 장치에서 물리적 주소 공간의 첫 16MiB에 있는 중간 버퍼로 DMA에 의해 전송한 다음 CPU에 의해 최종 메모리로 이동하거나, 다른 방향에서는 초기 메모리에서 중간 버퍼로 전송한 후 b에 앞서 CPU에 의해 중간 버퍼로 전송해야 함을 의미한다.DMA에 의해 해당 버퍼에서 I/O 장치로 전송된 eing.이 기술은 "바운스 버퍼"라고 불린다.일반적으로 DMA와 관련된 전반적인 속도 편익은 상실하지만, 까다로운 타이밍 요건이나 하드웨어 인터페이스의 경직성 때문에 주변 장치에 DMA가 접근해야 하는 경우 필요할 수 있다.

PS/2 시리즈 컴퓨터에서는 IBM이 80386 CPU가 장착된 일부 시스템의 32비트 데이터와 주소를 지원하기 위해 DMA 하드웨어를 업데이트했지만, 8237을 새로운 DMA 컨트롤러 설계로 대체함으로써 이 작업을 수행했다.새로운 설계에는 PC AT와의 하향 호환성을 위한 8237 호환성 모드가 포함되어 있다.

칩셋에 통합

비록 이 장치가 현대의 개인용 컴퓨터 시스템에서는 별개의 구성 요소로 나타나지 않을 수 있지만, 그것은 시스템 컨트롤러 칩 세트 내에 나타난다.예를 들어, PIIXISA 버스 DMA를 위해 2개의 8237 컨트롤러를 통합하였다.[7][8]

변형

모델 번호 클록 속도 전송 속도[list 1] 패키지 가격(USD)[list 2]
8237 3 MHz
8237 3 MHz 44핀 PLCC[list 3][9]
8237-2 5 MHz 1.6 mps $20.00[10]
  1. ^ 64KB 블록의 초당 메가바이트
  2. ^ 100 이상 수량
  3. ^ 샘플링 Q2 1986

참고 항목

참조

  1. ^ Barry B B Brey의 Intel 마이크로프로세서
  2. ^ N. MATHIVANAN (2007). PC-BASED INSTRUMENTATION: CONCEPTS AND PRACTICE. PHI Learning Pvt. Ltd. pp. 227–229. ISBN 978-81-203-3076-4.
  3. ^ a b c d e f aluzina.org - Intel 8237/8237-2 고성능. 프로그래밍 가능한 DMA 컨트롤러(.pdf) 데이터 시트
  4. ^ a b c d books.google.com - 고급 마이크로프로세서 및 주변기기, 2006 p312/313
  5. ^ pinouts.ru - ISA 버스 핀아웃배선, 2008-10-20
  6. ^ brokenthorn.com - 운영 체제 개발 시리즈
  7. ^ https://pdos.csail.mit.edu/6.828/2012/readings/hardware/8237A.pdf
  8. ^ http://pdf.datasheetcatalog.com/datasheet/Intel/mXvqwzr.pdf
  9. ^ Ashborn, Jim; "A 고급 포장: A Little Goes A Long Way", Intel Corporation, Solutions, 1986년 1월/2월, 페이지 2
  10. ^ Intel Corporation, "마이크로컴퓨터 구성요소:새로운 Intel 8237 DMA 컨트롤러는 "8088 및 8085A-2 기반 시스템", 1979년 5월/6월, 페이지 9에 대해 5 MHz DMA 답변을 제공한다.

외부 링크