Just do IT
article thumbnail

시스템 BUS 구성 제어

   * 시스템 버스의 필요성

   * 시스템 버스의 제어

   * 시스템 버스의 활용

 

시스템 버스의 필요성

   * 버스와 메모리 전송

      - 전형적인 디지털 컴퓨터는 많은 레지스터와 레지스터들 사이의 정보 전송을 위한 경로를 가져야 한다. 시스템은 이를 위해 레지스터들 사이를 연결하는 번거로움 대신에 공통의 버스 (bus : 한번에 하나의 전송만이 이루어지도록 제어 신호를 이용하여 해당 레지스터를 선별)시스템이라는 효율적인 방법을 사용한다

      - 또한 CPU 행하는 중요한 기능 중 하나는 외부 주변 장치(입출력 장치) 통신(network) 주체로서 정보의 입출력을 관장하는 일이다.

         > Bus Adapter -> 입출력 버스를 시스템 버스 라인에 연결

         > 입출력 제어기 (I/O controller : 입출력 인터페이스) -> 입출력 속도 유사한 동작 특성 단위로 입출력 장치들을 제어 관리하는 장치

 

   * 시스템 버스와 I/O 버스

시스템 버스의 제어

   * 시스템 버스와 I/O 버스 상호 중재

      - 컴퓨터 시스템에는 요소들 사이의 정보 전송을 위한 다양한 단계의 여러 버스가 존재 (CPU내에서도 레지스터와 ALU사이의 정보 전송을 위한 여러 내부 버스 존재)한다

         > 메모리 버스 -> 데이터, 주소, 그리고 읽기/쓰기 정보 전송

         > I/O 버스 -> 입출력 장치로 정보를 주고 받는데 사용

      - 공유 메모리 멀티 프로세서 시스템에서 프로세서는 시스템 버스를 통하여 공유 자원에 대한 접근을 요구한다

         > 공유자원이 사용되고 있지 않을 경우 -> 바로 사용 승인

         > 공유자원이 사용되고 있을 경우 -> 선점 프로세스의 종료까지 대기상태 유지

         > 동시에 시스템 버스를 요구하는 경우 -> 공유자원에 대한 충돌을 해결하기 위한 중재(arbitration)동작이 수행되어야 한다

      - IEEE 표준 796다중 버스 신호

         > 파란 라인 : 제어라인 (Control line) 26

 

   * 데이터 라인 -> 프로세스와 공통 메모리 사이의 데이터 전송 경로 제공 (16 - 32 line 가장 일반적, 방향 정보 전송)

      - 데이터 전송 모드

         > 동기 : source & target 장치간 공통 clock구동에 의해 정해진 분할 동안 데이터가 전송 된다

         > 비동기 : 장치들을 독립적 클럭으로 동기화, source & target 장치간 핸드 셰이킹(hand shaking) 제어신호에 의해 데이터를 전송한다

   * 주소라인 -> 메모리 주소와 입출력 포트 식별에 활용 ( 방향 정보 전송)

   * 제어라인 -> 장치들 간의 정보 전송을 제어하는 신호를 제공

      - Timing signal : 데이터와 주소 정보의 유효성 체크 

      - Command line : 수행할 동작을 지정

      - 전송 신호 : 메모리 읽기와 쓰기 (ex, 메모리 I/O 모두를 포함, 주소 라인은 독립된 메모리와 I/O 공간의 지정을 위해 활용)

      - 전송의 승낙 (acknowledge) (ex, 전송이 완료되었음을 알리는데 사용된다)

      - 인터럽트 요구 (ex, 8개의 인터럽트 요구 명령과 1개의 승낙 명령으로 구성, 우선순위 인터럽트 제어기에 연결되어 활용됨)

      - 버스 제어 신호 : 버스 요구 버스 승인(grant) (ex, bus lock -> 멀티 프로세서 응용에서 검사와 설정이 실행되는 동안 다른 프로세서가 버스를 계속 잡고 있지 못하도록 막아준다)

      - 중재 절차를 위한 신호등으로 구성

 

시스템 버스의 활용

   * 직렬 중재 절차 (시스템 버스 제어기 : 중재를 위한 논리 회로 내장)

      - 우선 순위를 바탕으로 Daisy-chain연결로 중재 하는 방법 제시

      - 가장 높은 중재자의 PI 항상 1(버스 신청 항상 할당)이고 PO 0이다

         > 만약 해당 중재자가 버스의 사용을 원치 않는다면 해장 중재자의 PI=0, PO=1 되어 다음 중재자로 전송 된다

         > Bus busy line 활용 -> 상용중이 버스를 특정 중재자가 할당 받고자 경우 활용되는 기법이다

         > 해당 중재자 (PI=1이고 PO=0 할당 받은 경우) bus 신청 Bus busy line 상태를 확인한다

         > Bus busy line 활성 상태 : 해당 프로세서는 버스 라인을 할당 받고 -> Bus busy line 활성 상태로 변경 시킨다

      - 가장 높은 중재자의 PI 항상 1 (버스 신청 항상 할당)이고 PO 0이다

         > Bus busy line 활용

         > Bus busy line 활성 상태 : 이는 낮은 우선 순위의 프로세서가 버스를 사용하고 있다는 의미이다. 프로세서가 버스 사용을 완료하고 비지 라인을 비활성 상태로 전환할 까지 대기해야 한다

   * 병렬 중재 논리 

      - 버스 중재자는 버스 요청 출력 라인 (Req) 버스 승락(Ack)입력 라인 보유

      - 버스 비지 라인은 Daisy-chain 경우와 동일

      [ IEEE 표준 796 다중 버스 신호 ]

      - BPRN(버스 우선 순위 입력) & BPRO(버스 우선 순위 출력) -> 버스 중재 회로의 데이지체인 연결에 활용

      - Busy (버스 혼잡 신호) -> 버스가 사용중임을 모든 중재자에게 알리는 open collector 출력임

      - CBRQ (공통버스 요구) -> open collector 출력, 우선 순위가 낮은 중재자가 현재 버스 사용

      - 각각의 acknowledge request BREQ(버스 요구) & BPRN(우서 순위 입력) 연결해야 , BCLK(버스 클럭) 모든 버스 작업의 동기화에 활용

 

출처 : 제로베이스

'공부 Note > 컴퓨터 구조' 카테고리의 다른 글

Chapter 06 입출력 구조 (3)  (0) 2022.02.24
Chapter 06 입출력 구조 (2)  (0) 2022.02.24
Chapter 05 메모리 구조 (4)  (0) 2022.02.24
Chapter 05 메모리 구조 (3)  (0) 2022.02.24
Chapter 05 메모리 구조 (2)  (0) 2022.02.24
profile

Just do IT

@AmyG

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!