컴퓨터 지식 네트워크 - 컴퓨터 프로그래밍 - 버스란 무엇인가? 버스 제어 방식은 어떤 문제를 해결하는가?

버스란 무엇인가? 버스 제어 방식은 어떤 문제를 해결하는가?

버스의 세 가지 제어 방법: 직렬 링크, 시간 제한 검색 및 독립 요청.

1. 직렬 링크 모드

직렬 링크 모드에서는 버스 사용 권한 분배가 버스 사용 가능, 버스 요청 및 버스 사용 신호 라인의 세 가지 제어 라인을 통해 실현됩니다.

모든 기능 구성 요소 공공 버스 요청 신호 라인을 통해 버스 컨트롤러에 버스 사용 요청을 보냅니다.

버스 요청을 받은 컨트롤러는 버스가 유휴 상태일 때만 버스 사용 신호 라인을 먼저 확인합니다. 그러면 버스 컨트롤러가 버스 요청에 응답할 수 있습니다.

이때 버스 사용 가능 응답 신호가 각 구성 요소를 순차적으로 통과하여 전송됩니다.

버스 요청을 발행하지 않은 구성 요소는 버스 사용 가능 신호를 수신하면 이를 다음 기능 구성 요소로 전송합니다. (버스를 요청하지 않은 구성 요소는 사용 가능한 신호를 무시합니다.)

요청을 발행한 컴포넌트는 버스 사용 가능 신호를 수신한 후 신호 전송을 중지하고 버스 사용 중 신호 설정을 시작하며 버스 요청 신호를 제거하고 버스 작동을 시작합니다.

데이터 전송 중에 버스 사용 중 신호는 버스 사용 가능 신호 설정을 유지합니다.

데이터 전송이 완료된 후 구성 요소는 버스 사용 중 신호를 제거하고 버스 사용 가능 신호도 제거합니다.

이후 버스 요청이 있으면 버스 할당 프로세스가 다시 시작됩니다.

이 방법은 버스의 사용 가능한 라인에 연결된 구성 요소의 물리적 위치에 따라 버스 사용 우선 순위가 완전히 결정된다는 것을 알 수 있습니다.

버스 컨트롤러는 오른쪽의 우선 순위가 높을수록 더 먼 구성 요소의 우선 순위가 낮아집니다.

직렬 링크 방식의 주요 장점

버스 중재 알고리즘은 매우 간단하고 버스 배포를 제어하는 ​​데 사용되는 라인 수가 매우 적으며 관련이 없습니다. 버스에 부착된 구성 요소의 수에 따라 장비 확장이 용이합니다.

단점

그러나 이 방법은 우선순위가 고정되어 있기 때문에 유연성이 떨어지고 소프트웨어로 우선순위를 변경할 수 없습니다.

고수준의 경우 자주 발생하는 구성 요소 버스를 사용할 때 우선 순위가 낮은 구성 요소는 오랫동안 응답을 받지 못할 수 있습니다.

그리고 버스 사용 가능 신호는 각 구성 요소를 순차적으로 통과하므로 버스 배포 속도가 제한됩니다.

버스 사용 가능 신호 전송 과정에서 I번째 구성 요소가 실패하면 모든 후속 구성 요소는 결코 버스를 사용할 수 있는 권한을 얻지 못합니다.

즉, 하드웨어 오류에 매우 민감합니다.

버스의 구성 요소 추가, 제거 또는 이동도 버스 길이에 따라 제한됩니다.

2. 타이밍 쿼리 방식

쿼리 방식의 중앙 집중식 버스 제어 방식을 사용합니다.

쿼리 모드의 원리는 버스 컨트롤러에 쿼리 카운터를 설정하는 것입니다.

컨트롤러는 각 구성 요소를 차례로 테스트하여 버스 요청을 발행하는지 확인합니다.

버스 컨트롤러가 버스에 적용하라는 신호를 받으면 카운터가 카운트를 시작합니다. 적용된 부품 번호가 카운터 출력과 일치하면 카운터가 카운트를 중지합니다. 부분은 버스에서 사용할 수 있으며 버스 사용 중 신호를 설정한 후 버스 작동을 시작합니다.

사용 후 버스 사용 신호를 취소하고 버스를 해제합니다. 이때 여전히 버스 요청 신호가 있으면 컨트롤러는 계속해서 차례로 쿼리하고 다음 버스 할당 프로세스를 시작합니다.

피><피>

카운터 값은 매번 "0"부터 계산을 시작할 수 있습니다. 이때 구성 요소의 우선 순위는 직렬 링크 모드와 유사합니다.

카운터 값이 계산을 시작하면; 매번 마지막 지점부터 중단 지점이 계산되기 시작합니다. 이는 순환 우선순위입니다. 각 구성 요소는 버스 사용 권한을 얻을 수 있는 동등한 기회를 갖습니다.

카운터 값도 변경할 수 있습니다. 각 버스 할당 전에 카운터에 시작 값을 지정하십시오.

마찬가지로 부품 번호도 프로그램에 의해 설정될 수 있으므로 부품의 우선순위를 보다 유연하게 변경할 수 있습니다

쿼리 방법은 카운팅 쿼리 라인으로 대체됩니다. 직렬 링크 버스는 신호 라인을 사용할 수 있습니다.

이는 한 구성 요소의 오류로 인해 다른 구성 요소가 버스 사용 권한을 얻는 원인이 되지 않습니다. 이므로 신뢰도가 상대적으로 높습니다.

그러나 쿼리 라인의 수는 버스에 연결할 수 있는 구성 요소의 수를 제한하므로 확장성이 떨어지고 제어가 더 복잡해집니다.

버스의 배포 속도 부품 수 계산의 주파수와 빈도에 따라 다르지만 속도는 여전히 그리 높지 않습니다.

3. 독립 요청 모드

각 구성 요소에는 자체 버스 요청 및 버스 허용 라인 쌍이 있으며, 각 구성 요소는 독립적으로 컨트롤러에 버스 요청을 보낼 수 있습니다.

버스에 신호 라인이 할당되었습니다. 모든 구성 요소에 공통입니다.

컴포넌트가 버스 이용을 신청하고자 할 때 버스 컨트롤러에 버스 요청 신호를 보낸다

버스가 할당되어 있고 신호선이 아직 구축되지 않은 경우 즉, 버스가 유휴 상태일 때 버스 컨트롤러는 특정 알고리즘을 따라 동시에 전송된 요청을 판정하고

어느 구성 요소가 버스 요청을 전송하는지 확인한 다음 해당 버스 허가 신호를 반환합니다. 이 구성 요소는

구성 요소가 버스 권한을 얻습니다. 신호가 발생한 후 해당 요청이 제거되고 버스가 할당된 신호가 설정되며 버스 할당이 이번에 종료됩니다.

까지 구성 요소가 데이터 전송을 완료하고 버스에 할당된 신호가 취소되며 버스 허용 신호가 버스 컨트롤러에 의해 제거됩니다.

새 애플리케이션 신호를 수락하고 다음 버스 할당을 시작할 수 있습니다.

이러한 버스 할당 방식은 속도가 빠르고 각 모듈의 우선순위가 유연하게 결정됩니다.

우선순위 고정 방식을 사용하거나 프로그램을 통해 우선순위를 변경할 수 있습니다. 또는 마스킹을 사용하여 요청을 금지할 수 있습니다.

실패한 것으로 알려졌거나 실패할 가능성이 있는 구성 요소의 요청에 응답하지 않는 것도 편리합니다.

그러나 이는 작업의 복잡성을 증가시킵니다. 버스 컨트롤러 및 제어 라인 수.

[연습 질문]

N개 구성 요소가 버스를 사용할 때 우선 순위 결정을 해결하려면 버스 제어 메커니즘은 중앙 집중식 타이밍 쿼리를 통해 제어 라인 수( )를 늘려야 합니다. .

A.3 B. 2N 10 1

C. 2 10 "log2N" D. N 10 2

참고 답변: C

[연습문제]

버스의 제어방법은 (1)과 (2)로 나누어진다.

참고 답변: (1) 중앙 집중식 제어 (2) 분산 제어

[연습 문제]

버스 프레지던트 알고리즘에는 다음이 포함됩니다: 정적 우선 순위 알고리즘, (1 ), 동적 우선순위 알고리즘 및 선착순 알고리즘입니다.

참고 답변: (1) 고정 타임 슬라이스 알고리즘

[연습 문제]

3가지 버스 제어 방법은 무엇입니까? 버스 제어의 제어 라인은 무엇입니까? 버스 제어 우선 순위는 얼마나 유연합니까?

참고 답변:

버스 제어 방법에는 직렬 링크, 시간 제한 쿼리 및 세 가지가 있습니다. 독립적인 요청.

직렬 링크는 3개의 제어 라인을 추가해야 하며 우선 순위 라인 연결은 고정되어 있으며 유연성이 없습니다.

예약된 쿼리는 20개의 "log2N" 제어 라인을 추가해야 합니다. 우선순위는 가능합니다. 프로그램 변경이 가능합니다.

독립적인 요청은 2N l 제어 라인을 추가해야 하며, 우선순위는 프로그램에 의해 변경될 수 있습니다.

체인 쿼리 bs br bg 3 루트 카운트 쿼리┌log2n┐ br bs root

버스 요청, 버스 요청 라인 BR

버스 승인, 버스 응답 라인 BG

버스 상태, 버스 상태 라인 BS

上篇: Yuanbei 운전면허 시험 멤버십을 구매할 가치가 있나요? 下篇: QQ 번호를 무료로 받으십시오
관련 내용