ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 질문 정리 ( 하드웨어 구성 요소 / 중앙처리장치 )
    면접 준비/컴퓨터구조 2018. 11. 20. 21:06

    1. 하드웨어 구성 요소


    컴퓨터의 하드웨어는 다음과 같이 CPU(중앙 처리 장치), Main Memory(메인 메모리), I/O Devices(입출력 장치)로 나뉘며 버스로 연결되어 있다. 



    1) 중앙처리장치(CPU) 

    컴퓨터의 머리 역할을 하며, 연산과 제어를 담당한다. 

    연산은 데이터의 계산/처리, 제어는 이를 위한 각종 세부 컴퓨터의 시스템을 컨트롤하는 기능이다.


    2) 주기억 장치(Main Memory)

    입력 장치로부터 읽혀진 데이터와 프로그램 코드가 저장되는 영역이다.


    3) 입출력 장치(I/O Device)

    외부에서 주기억 장치나 CPU로 데이터를 입력하거나, 외부로 출력할 때 사용되는 장치들이다. 


    4) 버스(BUS)

    컴퓨터의 구성요소들 사이에 데이터를 주고 받기 위한 사용되는 경로이다.


    2. 중앙처리장치(CPU)


    내부적으로 3개의 세부 모듈로 나뉘는데 산술/논리 장치(ALU), 컨트롤 장치(CU), 레지스터로 구성되어 있으며 이는 내부 버스로 연결되어 있다.



    1) 레지스터(registers)

    데이터를 CPU 내부에 저장할 공간과 CPU 내부의 상태를 저장하는 공간이 필요하다. 이를 레지스터라고 한다.

    즉, 메인 메모리에 위치한 데이터들은 연산을 위해 CPU 내부로 LOAD 되어야 하는데 레지스터는 이를 위한 임시 저장공간으로 사용되고, CPU 내부의 연산 중에 필요한 CPU 내부 상태를 보관하는 공간으로도 사용된다.


    -> 플립플랍 여러개를 일렬로 배열해서 구성한다. 

    SISO, SIPO, PISO, PIPO


    ※   register int i, j;

    int a, b;


    이렇게 4개의 변수를 선언하고 레지스터 변수를 이용하여 반복문(10000,10000)의 인덱스를 사용한 것과 일반 변수를 선언해서 동일하게 동작을 수행시키면 시간 소요는 다음과 같다.

    register를 사용한 것은 0.068242, register를 사용하지 않은 일반 변수는 0.298309초가 걸린다. 


    2) 산술/논리 연산 장치(ALU)

    CPU 내부에서 실제 연산을 담당하는 부분으로 산술연산, 논리연산을 수행한다.


    ※ 논리연산과 산술연산의 비교


    4 * 2 // 산술연산

    4 << 1 // shift 연산을 사용한 논리연산이 훨씬 빠르다.


    위의  * 연산은 해당하는 피연산자를 메인 메모리에서 CPU로 로드해서 연산을 수행하고 그 결과를 다시 메인 메모리에 옮겨야한다.

    하지만 << 연산은 레지스터 상에서 바로 이루어진다. 레지스터의 비트를 왼쪽으로 한번 이동시키기만 할 뿐이므로 효율적이다.

    이는 나눗셈 >> 연산에도 동일하게 적용된다.


    이러한 사소한 차이는 그리 중요해 보이지 않겠지만, 많은 데이터를 다루어야하는 서버 프로그램이나 임베디드 환경에는 중요하다.


    3) 제어 장치(control unit)

    제어 장치는 처리해야 할 명령어들을 해석하고, 이 명령어 수행에 필요한 제어 신호를 생성해서 적절한 모듈에게 신호를 보낸다. 예를들어 ALU에게 특정 연산 수행을 명령하거나, 메인 메모리에게 read/write 등의 제어명령 등 컴퓨터의 컨트롤 타워 역할을 수행한다.




Designed by Tistory.