Semalt Expert가 설명하는 입력-출력 포트

컴퓨터에서 RAM을 제외한 모든 장치 (예 : 확장 카드 또는 마더 보드에 설치된 컨트롤러)는 CPU에 의해 주변 장치로 취급됩니다. 중앙 프로세서와 주변 장치 간의 데이터 교환은 입출력 포트를 통해 수행됩니다. IO 포트는 컴퓨터 IO 버스에 직접 연결된 버퍼 장치 또는 컨트롤러, 디지털 신호 프로세서 등의 레지스터입니다. 입 / 출력 포트를 통해 다양한 내부 및 외부 장치를 컴퓨터에 연결하여 기능을 확장 할 수 있습니다.

IO 포트를 사용하면 컴퓨터의 장치와 소프트웨어간에 연결을 설정할 수 있습니다. 양방향 라디오 채널과 유사합니다. 양방향으로 정보를 교환하는 것이 동일한 채널에서 발생하기 때문입니다.

포트 주소

컴퓨터 장치 간의 데이터 교환을 제어하기 위해 각 IO 포트에는 고유 한 번호-포트 주소가 할당됩니다. PC에서 16 비트 코드는 IO 포트를 처리하는 데 사용됩니다. 따라서 OOOOh에서 FFFFh까지 번호가 매겨진 216 = 65 536 개의 포트가 있습니다. IBM 호환 컴퓨터의 표준 IO 범위는 0-3FFh입니다. 여기에는 키보드 컨트롤러, 하드 드라이브 및 플로피 디스크, EGA / VGA 비디오 어댑터, 사운드 카드, 직렬 및 병렬 인터페이스, 게임 포트 및 기타 주변 장치 용 포트가 포함됩니다. 주변 장치는 여러 IO 포트를 사용할 수 있습니다. 실제로 최대 FFFFh의 주소를 사용할 수 있습니다. 예를 들어, 사운드 카드의 WT 합성 프로세서의 포트는 IO 범위가 620h-E23h입니다.

포트는 프로그램을 실행할 때 중앙 프로세서에 의해 처리됩니다. 프로그래밍하는 동안 각 주변 장치 IO 포트의 특정 주소를 표시하지 않고 특정 컴퓨터 구성에 따라 주소를 즉시 변경하기 위해 IO 기본 주소가 사용됩니다. 기본 주소는 각 주변 장치에 할당되며 포트 그룹에서 가장 낮은 주소에 해당합니다. 주변 장치의 나머지 포트 주소 지정은 기본 주소에 상대적인 오프셋을 지정하여 수행됩니다.

주변 장치의 IO 기본 주소는 IO 범위의 모든 주소 일 수 있습니다. BIOS는 다른 주변 장치에서 사용할 수없는 표준 하드웨어 장치를 위해 IO 범위의 일부를 예약합니다. 예를 들어, LPT1 인터페이스의 경우 IO 기본 주소를 선택할 수있는 IO 범위 378h-37Eh가 예약되어 있습니다. 그러면 하드웨어 소프트웨어 수준에서 포트를 처리 할 때 충돌 가능성이 제거됩니다. LPT1의 제어 및 모니터링에 3 개의 레지스터가 사용되므로이 IO 범위 내에서 5 개의 기본 주소 값인 378h-s-37Ch가 있습니다.

프로그래밍 된 IO

포트와의 데이터 교환에는 프로그래밍 된 입 / 출력 (PIO)이 사용됩니다. 문자열 명령을 사용하여 비트 심도가 8, 16 또는 32 비트 인 단어를 전송합니다. 워드는 각각의 메모리 액세스 사이클에서 대응하는 어드레스의 표시와 함께 하나 이상의 버스 사이클 동안 전송 될 수있다. 버스 교환주기는 IO 명령 실행 중에 시작됩니다. 사이클 수는 사용 된 버스의 워드 경계 및 데이터 비트 깊이를 따른 주소의 정렬에 따라 다릅니다. PIO 데이터 교환 속도가 표준 DMA (Direct Memory Access) 채널의 교환 속도를 초과합니다.

mass gmail