Kirby [컴퓨터 구조] CPU의 작동 원리, 성능 향상 기법
Dev/CS

[컴퓨터 구조] CPU의 작동 원리, 성능 향상 기법

ragabys 2023. 9. 26.

시스템 버스

CPU의 동작과정에서, 제어 장치의 제어 신호를 다른 장치에 전달하고, 다른 장치로부터 오는 제어 신호를

제어 장치로 보내는 과정에서 필연적으로 사용되는 것이 시스템 버스이다. 

그렇다면 이 시스템 버스는 어떻게 구성된 것인가.

시스템 버스는 메인 메모리가 있는 CPU와 연결되어 있는 케이블과 커넥터로 구성된 데이터 전달 통로이다.

  1. 주소 버스
  2. 제어 버스
  3. 데이터 버스

이 시스템 버스에는 위의 세 종류로 구성되어 있는데, 하나씩 알아보도록 하자.

 

1)주소 버스

CPU 또는 DMA(Direct Memory Access) 장치에서 주메모리와 I/O 장치로 각각

기억 장치 주소 또는 I/O 장치 포트 번호를 전달하기 위해 사용하는 전달 통로로,

주소 전달을 목적으로 구성된 연결 통로이기 때문에 단방향 연결 통로이다.

주소 버스의 폭(비트 수)는 기억장치의 주소 수, 즉 기억장치의 최대 크기를 나타낸다.(2^주소 버스의 최대 비트수)

 

2)제어 버스

제어 버스는 주소 버스와 데이터 버스를 제어하는 신호를 전달하는 통로이다.

제어 신호는 기억 장치와 I/O 장치에 대한 Read/Write 작업을 명령하는 신호이기 때문에 양방향 연결 통로이다.

 

  • 기억 장치 읽기 신호 : 주소 버스로부터 받은 주소로 기억 장치에 접근해 data를 읽어 데이터 버스에 data를 싣는 신호
  • 기억 장치 쓰기 신호 : 데이터 버스에 있는 data를 주소 버스에 담긴 주소에 저장하게 해주는 제어 신호
  • I/O 읽기 신호 : 주소 버스에 있는 I/O 장치 포트 번호로 I/O 장치에 접근해 data를 받아와서 데이터 버스에 해당 데이터를 담게 하는 신호
  • I/O 쓰기 신호 : 데이터 버스에 있는 data를 주소 버스에 담긴 I/O 포트 번호에 맞게 I/O 장치에 접근해 I/O 장치로 출력하게 하는 제어 신호

 

3)데이터 버스

CPU와 기억장치, I/O 장치 사이에서 전달되는 데이터를 저장하는 통로이다.

제어 버스와 마찬가지로 Read/Write를 지원해야하기 때문에 양방향 버스이다.

기억 장치와 I/O 장치의 명령어와 데이터를 CPU에 보내고, CPU 연산 결과를 기억 장치와 I/O 장치에 보내는 역할을 한다.

데이터 버스 크기(폭)은 한 번에 전송될 수 있는 데이터의 크기(비트 수)를 나타낸다.

즉 Word의 크기, 레지스터의 크기와 동일하다.

 

인터럽트

인터럽트의 종류는 크게 동기 인터럽트(예외)와 비동기 인터럽트(하드웨어 인터럽트)로 나뉘며,

각각 폴트, 트랩, 중단, 소프트웨어 인터럽트와 막을 수 있는 인터럽트, 막을 수 없는 인터럽트로 나뉜다.

1)동기 인터럽트(예외)

  • 폴트

핸들러가 정정할 수 있는 가능성이 있는 에러의 결과로 발생한다. 정정할 수 있다고 보기 때문에

에러가 발생한 해당 명령어부터 실행을 재개한다.

  • 트랩

의도적으로 발생시킨 인터럽트 예외 상황으로, 인터럽트가 발생한 다음 명령어부터 실행을 재개한다.

대표적으로 디버깅이 해당된다.

  • 중단

중단은 대부분 하드웨어 오류 같은 복구 불가능한 치명적인 에러에서 발생한다.

 

2)비동기 인터럽트(하드웨어 인터럽트)

비동기 인터럽트는 주로 입출력 장치등에 의해서 CPU를 호출하는 인터럽트로

크게 사전에 막을 수 있는 인터럽트인지, 막을 수 없는 인터럽트인지에 따라 나뉜다.

막을 수 있는 인터럽트의 경우에는 입출력 장치들에 의해 사전에 어느 정도 약속이 된 인터럽트가 대부분 해당된다.

막을 수 없는 인터럽트의 경우에는 정전, 하드웨어 손상의 경우가 해당된다.

조금 더 상세하게 들어가면, 다음과 같이 나뉜다.

  • 입출력 인터럽트(I/O Interrupt)

입출력 작업의 종료나 입출력 오류에 의해 CPU의 기능이 요청됨

 

  • 정전/전원 이상 인터럽트(Power Fail Interrupt)

정전이나 전원 공급 이상 발생시 인터럽트 발생. 컴퓨터의 예비 전력을 이용하는 방식이다.

컴퓨터의 파워는 실제로 정전이 일어난 직후에도 전원이 종료될 때까지 대략 4ms의 시간이 있으며,

그 시간 동안 인터럽트 핸들러를 통해 정전으로 인한 인터럽트를 처리한다.

 

  • 기계 착오 인터럽트(Machine Check Interrupt)

CPU의 기능적인 오류

 

  • 외부 신호 인터럽트(External Interrupt)

I/O 장치가 아닌 오퍼레이터나 타이머에 의해 의도적으로 프로그램이 중단된 경우

 

참고 서적

혼자 공부하는 컴퓨터 구조+운영체제(강민철 저, 한빛미디어)

댓글