컴퓨터 구조

Seung jun Cha·2023년 4월 23일
0

1. 컴퓨터 구조

1-1 폰노이만 구조

  • cpu와 메모리를 분리해서 데이터와 명령어를 메모리에 따로 저장하는 프로그램 내장방식을 사용한다. cpu가 연산을 수행하고 그 결과를 다시 메모리에 저장한다.
    cpu가 명령어와 데이터를 동일한 버스를 사용해 순차적으로 처리하기 때문에, 명령어와 데이터를 메모리로부터 읽어오는 시간이 긴 경우 cpu의 대기시간이 길어져 성능저하문제가 발생할 수 있다. 이 현상을 병목현상이라고 한다.

  • 병목현상 해결방법

    • 캐시 메모리 사용: 캐시 메모리는 CPU와 메모리 사이에 위치한 하드웨어이다. 캐시 메모리를 사용함으로써 CPU가 데이터를 메인 메모리로부터 가져오는 시간을 줄일 수 있습니다.

    • 하버드 구조

    • 파이프라이닝 : 하나의 명령의 처리단계를 분할해서 각 단계를 병렬처리하는 것을 말한다. 효율적인 파이프라이닝을 위한 조건은 처리단계단계별 처리 시간이 일정 해야한다는 것이다.

1-2 하버드 구조

  • cpu와 메모리를 분리되어 있는 프로그램 내장 방식으로 폰노이만 구조와 동일하지만, 명령어 메모리와 데이터 메모리가 분리되어있고, 각각 별도의 버스를 이용해서 처리하는 구조이다. 이를 통해 CPU는 명령어와 데이터를 동시에 처리할 수 있고, cpu가 대기하는 시간을 줄여 병목현상을 완화할 수 있다.
    단점은 하드웨어 구성이 복잡해질 수 있고, 명령어와 데이터의 크기가 동일하지 않을 경우에는 메모리의 낭비가 발생할 수 있습니다.

2. 컴퓨터의 주요 구성요소

2-1 CPU

  • CPU는 하드웨어를 제어, 프로그램의 명령어를 해석하고 컴퓨터 작동에 필요한 계산처리를 수행한다. CPU의 중요한 내부 구성요소는 다음과 같다.

    • 연산장치(ALU) : 연산 장치는 산술 연산(덧셈, 뺄셈, 곱셈, 나눗셈 등)과 논리 연산(AND, OR, NOT 등)을 수행하는 장치입니다. 주로 ALU 내부에 있는 레지스터에서 데이터를 가져와 필요한 연산을 수행한 후, 결과를 레지스터에 다시 저장합니다.
    • 제어장치(CU) : 제어 장치는 프로그램 내의 명령어를 순차적으로 읽고 명령어 해석과 실행을 위한 제어 신호를 생성합니다.
      제어신호란 다른 하드웨어들이 특정 동작을 수행하게 만드는 신호를 말한다. (클럭신호, 읽기/쓰기 신호)
    • 레지스터 : CPU 내부의 저장장치로 데이터를 임시로 저장하고 처리하는 데 사용됩니다.
      CPU의 레지스터 중에 PC(Pqrogram Counter)SP(Stack Pointer) 가 있다.
      PC다음에 실행할 코드의 주소를 가르키는 레지스터로 CPU는 PC가 가리키는 위치에 있는 코드를 실행하고, 다음 코드의 위치를 가리키기 위해 PC의 값을 업데이트한다.
      SP스택 최상단의 주소를 가르키는 레지스터이고 스택은 데이터를 임시로 저장하기 위한 메모리 공간을 의미한다. SP는 스택에서 데이터를 저장하고 추출하기 위해 위치를 추적한다. 데이터가 스택에 푸시(push)되면 SP의 값은 감소하고, 데이터가 팝(pop)되면 SP의 값은 증가한다.
      위의 PC와 SP 정보와 PID가 들어간 PCB를 사용하여 컨텍스트 스위칭이 작동한다.
      실행 중지할 프로세스 정보를 해당 프로세스의 PCB에 업데이트해서, 메인 메모리에 저장하고, 다음 실행할 프로세스 정보를 메인 메모리에 있는 해당 PCB 정보를 CPU의 레지스터에 넣고, 실행하는 것이다.
  • DMA 컨트롤러 : 입출력장치가 메모리에 직접 접근할 수 있도록 하는 하드웨어 장치

2-1-1 CPU의 저장장치

  • 레지스터는 CPU내부에 있는 저장장치이다.
  1. 레지스터 : 연산처리를 위한 명령어의 주소나 연산 결과, 명령어의 실행에 필요한 데이터나 메모리에서 가져온 데이터를 일시적으로 저장한다.

2-2 메인 메모리

  • RAM :프로세스와 관련된 데이터와 명령어를 저장하는 곳으로 CPU가 메모리주소를 통해 접근하여 데이터를 읽고 쓸 수 있는 공간이다. RAM은 전원이 내려가면 저장되어 있는 데이터가 모두 날아가는 휘발성 저장공간이다. 각 메모리 위치는 고유한 주소를 가지며 메모리를 바이트(Byte) 단위로 관리된다.

2-3 입출력 장치, 보조기억장치

  1. 입력 장치: 마우스, 키보드, 터치패드등
  2. 출력 장치: 모니터, 프린터, 스피커등
  3. 보조기억장치
    SSD, HDD : 컴퓨터에 데이터를 장기적으로 저장하는 용도로 사용한다. 컴퓨터가 종료돼도 데이터가 유지되지만, 램에 비해 접근 속도가 매우 느리기 때문에, 보조기억장치에서 램으로 데이터를 가져오고 cpu가 램에 접근해서 데이터를 사용한다.

2-4 Bus

  • 버스는 컴퓨터 구성 요소들 간에 정보를 전송하는 통로입니다. 컴퓨터 내부의 모든 장치들은 버스를 통해 서로 정보를 주고 받습니다.
    한 번에 하나의 장치만 버스에 접근이 가능하기 때문에 누군가 버스를 사용한다면 다른 장치들은 순서를 기다려야 합니다.
    • 데이터 버스 : CPU와 메모리, 입출력 장치 간에 명령어와 데이터, 연산결과를 주고 받을 수 있는 통로. 데이터를 주고 받아야 하기 때문에 양방향 버스이다.
    • 주소 버스 : 메모리의 데이터를 읽거나 쓸 때, 데이터가 들어있는 메모리 주소를 전달하는 통로이다.
      주소 버스는 메모리 주소 레지스터와 연결되어 있으며 단방향이다.
      CPU에서 메모리나 주변장치로 나가는 주소 정보는 있지만 버스를 통해 CPU로 전달되는 정보는 없다.
    • 제어 버스 : CPU가 다른 장치들을 제어할 때 사용되는 통로로 제어신호만 보내면 되기 때문에 단방향 통신이다(제어신호 전송)

0개의 댓글