CS/컴퓨터구조

02. 컴퓨터 구성품의 연결

nolzaheo 2021. 9. 16. 17:17
728x90

  - Memory Read, Memory Write, I/O Read, I/O Write 시 각각의 구성품들이 어떻게 연결되는가?

  - 신호 및 데이터가 어떻게 전송되는가?

 

Memory Read

  메모리를 읽기 위해서는 메인 메모리 측으로 어디에 있는 데이터를 읽을 것인지, Read할 것인지 혹은 Write할 것인지에 대한 정보를 전달해야한다. 어디에 있는 데이터를 읽을 것인지는 Address Bus를 통해, Read/Write 중 어떤 것을 할 것인지는 Control Bus를 통해 전달한다.

 

Issue

① 어디에 있는 데이터를 읽을 것인가? → Address Bus

②  Read/Write 중 어떤 것을 수행할 것인가? → Control Bus

 

  이 때, Address Bus는 CPU가 읽고자 하는 데이터의 Address를 전송하는 신호 선들의 집합으로, CPU와 접속할 수 있는 최대 Memory Capacity를 결정한다. 예를들어 Address Bus의 bit 수가 16bits라면 216가지의 조합으로 신호를 만들어낼 수 있다. 즉 최대 216=64×210=64K개의 메모리 공간 주소를 지정할 수 있다. Control Bus는 System 내의 각종 요소들의 동작을 제어하기 위한 신호선들의 집합이다.

  Memory Read시 읽고자 하는 데이터가 Cache에 있을 경우 Cache에 있는 값을 그대로 반환하고, 없을 경우 메인메모리에서 데이터를 불러온다.

 

Memory Write

  메모리를 쓰기 위해서는 메인 메모리 측으로 저장할 데이터의 주소와 연산된 데이터, Read/Write 여부에 대한 정보를 전달해야한다. 데이터 주소는 Address Bus, 연산된 데이터는 Data Bus, Read/Write 여부는 Control Bus를 통해 전달한다.

 

Issue

① 주소를 어디에 저장할 것인가? → Address Bus

② 어떤 데이터를 저장할 것인가? Data Bus

③ Read/Write 중 어떤 것을 수행할 것인가? → Control Bus

 

  memory read때와는 달리 write할 때에는 Data Bus도 사용된다. 저장할 데이터를 보내야하기 때문이다. Data Bus는 데이터를 전송하기 위한 신호 선들의 집합으로, Data Bus 폭이 32bits라면 CPU와 Memory간 Data 전송은 한번에 32bits씩 가능하다.

 

I/O Read

  이전 글에서 언급했듯, I/O device는 System Bus와 바로 연결되어있지 않고 중간에 I/O device controller라는 매개체를 두고있다. I/O device controller는 CPU로부터 I/O명령을 받아 해당 I/O 장치를 제어하고 Data를 이동함으로써 명령을 수행하는 전자회로 장치이다. Status Register와 Data Register, Control Register로 구성되어있다. Status Register는  I/O 장치의 현재 상태를 나타내는 Bit들을 저장한 Register로 준비상태 비트인 0, 데이터 전송확인 비트인 1로 상태를 나타낸다. 비트 값이 0에서 1로 바뀌면 데이터가 쓰임을 알아차림을 의미한다. Data Register는 CPU와 I/O 장치 간에 이동되는 Data를 일시적으로 저장하는 Register이다.

 

I/O Write

  I/O Write도 Memory Write와 마찬가지로 주소, 데이터, Read/Write 제어를 보내야한다. CPU가 먼저 I/O Contoller의 상태 레지스터 값을 확인하여 데이터를 전달해도 되는 상태인지 확인한다. 전달을 해도 되는 상태이면 데이터 레지스터에 write할 값을 쓰고 그 값을 어떻게 Write할 것인지에 대한 정보를 Control Register에 쓴다. 이러한 정보들이 I/O Device Controller에 적히면 I/O Device는 이 값들을 받아 명령받은대로 처리한다. 

 

 

  CPU가 데이터가 입력되었음(=I/O 장치가 준비되었음)을 감지하는 방법으로는 Polling 방식과 Interrupt 방식, 그리고 DMA 방식이 있다.

 

<Polling>

  I/O 장치의 준비상태를 CPU가 수시로 확인하는 방식이다.  CPU가 외부 데이터 입력상태를 주기적으로 검사한다. 마이크로 프로세서를 코딩할 때 주로 사용되는 방식이다.

 대문을 10분 간격으로 열면서 손님이 왔는지 확인하기

 

<Interrupt>

  I/O interrupt가 CPU에게 Data가 입력되었음을 알리게 하는 방식이다.

≒ 초인종을 달아놓고 신호가 오면 반응

 

<DMA>

  CPU가 전여 관여하지 않고, Data 입출력을 별도의 Processor가 관리하도록 하는 방식이다.

≒ 관리인을 고용하여 손님이 오면 들여서 접대실로 안내하도록 함

 

컴퓨터의 전체적인 구조

728x90

'CS > 컴퓨터구조' 카테고리의 다른 글

01. 컴퓨터 시스템 구조  (0) 2021.09.16