Operating System : 운영체제

본 토픽은 현재 준비중입니다. 공동공부에 참여하시면 완성 되었을 때 알려드립니다.

(1) System Bus

@ System bus 

    // 이는 CPU

              I/O Device

              Memory 간의 데이터 전송을 담당하는 부분입니다.

 

@ bus 는 크게 두가지로 나뉩니다.

    // Data bus

    // Address bus (Data의 Source나 Destination을 결정합니다.)

 

@ Bus 에 의해 할 수 있는 Operation에는 다음과 같은 것들이 있습니다.

    // Read / Write 

        > 나중에 Syncronize에서는 이 줄을 하나의 transaction으로 만들기도 합니다.

 

@ Bus transaction을 시작하는 요소들에는 무엇이 있을까요?

    // Bus Master 

        > 이는 System 안에 여러개가 존재합니다.

    // Bus Arbiter

        > 이 Bus Master를 조절합니다.

        > 여러 Bus Master들이 서로 Bus를 장악하려고 할 때, 특정 Bus Master에게 Bus를 제공해주는 조정자

    // (추가) Bus Master의 명령을 받는 Bus Slave가 존재합니다.

 

? Question 대표적인 Bus Master에는 어떤 하드웨어들이 있을까요?

    // CPU, I/O Controller, DMA Controller  

         > 실제로 I/O Controller는 CPU의 관장 아래에서 Bus Slave로 동작할 수도 있습니다.

 

?Question 그렇다면 Bus Slave에는 어떤 것이 있을까요?

    // Main memory

    // 그리고 위에서 설명한 것 처럼 상황에 따라 I/O Controller도 Bus Slave가 될 수 있습니다.

 

@ Bus Slave란 무엇일까요? 설명이 부족했죠?

    // Bus Master의 명령을 받고 그에 따라, 서브합니다.

    // Feature

        > 데이터를 담고 있습니다

        > 데이터를 여러개 담기에 Address를 가지고 있어야 합니다.

 

@ 이 때 위에서 언급했던 것 처럼 I/O Controller도 Bus Slave로 작동할 때에는 특징이 있습니다.

    // 기본적으로 Memory가 Bus Slave이기 때문에 Address를 가집니다.

    // 하지만 Controller는 그런 성격이 아닙니다.

    // 그렇기 때문에 실제로는 controller에 내장된 Buffer memory나 register들이 Bus Slave의 역할을 한다고 생각할 수 있습니다.

 

? Question Memory Address의 형태와 register의 address형태는 같을까요?

    // 같을 수도 다를 수도 있습니다. 

        > 어떻게 하면 충돌이 일어나지 않을 것인가가 쟁점입니다.

            .. 형태가 다르다면 당연히 충돌이 일어나지 않을 것이고,

            .. 형태가 같다면 메모리 영역에서 일정 영역에 메모리를 꼽지 않고 빈공간을 만들어둡니다.

                .. 그렇게 되면 나중에 memory bus에서 그 빈공간에 엑세스 할 때 memory cell 대신

                .. I/O Device에 Access하게 만드는 겁니다.

    // 위와 같은 방식을 선택하여 사용할 수 있습니다.

댓글

댓글 본문
버전 관리
박천명
현재 버전
선택 버전
graphittie 자세히 보기