728x90

간단하게나마 computer science에 대해 공부하고자 책 한권을 읽고 있다. 읽으면서 챕터 별로 개념들을 정리해보려 한다.

 

컴퓨터 시스템의 구성 및 작동원리

컴퓨터 시스템은 하드웨어 부분과 소프트웨어 부분으로 구성되어 있다. 하드웨어에는 CPU(중앙처리장치), 저장장치(기억장치), 입력장치 및 출력 장치로 이루어져 있다. 

컴퓨터 시스템이 작동하기 위해서는 하드웨어와 소프트웨어가 상호협동하여 작업을 처리한다.

 

하드웨어를 작동시키기 위한 시스템 소프트웨어와 특정 작업을 수행하기 위한 응용 소프트 웨어가 필요하다. 시스템 소프트 웨어에는 하드웨어와 응용 소프트 웨어의 작동을 관리하는 운영체제와, 컴퓨터의 시작에 필요한 시스템 소프트웨어로 시스템의 초기동작을 제어하는 펌웨어로 구성되어 있다. 응용 소프트웨어는 사용자가 사용하는 프로그램이다. 

 

 

하드웨어

CPU(중앙 처리 장치)

프로세서라고도 불리는 CPU는 사람의 두뇌와 같은 역할을 한다고 보면 된다. 즉 컴퓨터가 처리하는 어떠한 것들에 대한 연산을 수행하는 곳이다. 또한 컴퓨터 시스템이 적절하게 작동하도록 각 모듈에 신호를 보내고 제어하며 순서에 따라 세부 작업이 진행되도록 해준다. CPU는 연산장치(ALU), 레지스터, 제어장치 등으로 구성되어 있다. CPU는 바이너리 형태로 저장되고 바이너리 형태(0과 1로 이루어져 있다.)로 처리된다.

 

CPU(프로세서)의 구성

프로세서 자체는 산술논리연산 장치인 ALU, 빠른 속도의 기억장치인 레지스터, 컴퓨터를 제어하는 제어장치로 구성되어 있다. 그리고 일반적으로 프로세서와 주기억장치(Main Memory)는 따로 존재한다. 이 둘은 Bus에 의해 서로 연결되어 있다. 프로세서는 주 기억장치에 잇는 프로그램과 데이터를 레지스터로 가져와야 한다,

1. ALU

CPU의 가장 핵심요소로 컴퓨터의 연산기능을 제공한다. ALU는 입력된 데이터를 레지스터에서 가져와서 연산을 수행하고 그 결과를 다시 레지스터에 저장한다.

 

2. 레지스터

데이터 접근 속도가 빠른 적은 수의 메모리 회로들의 집합이다. 한 레지스터의 용량은 컴퓨터의 워드 크기와 일치한다. 즉 주기억 장치와 ALU간에 중개역할을 하는 메모리로 이해할 수 있다. 레지스터는 두가지 유형으로 구분할 수 있다.

  • 범용 레지스터 : 주 기억장치에서 가져온 데이터를 일시 저장해 두는 장소이다. 
  • 특수 레지스터 : PC,IR로, 제어장치에서 정해진 용도로 사용되는 레지스터이다.

3. 제어장치

데이터를 처리하기 위한 장치가 아닌, 프로그램이 원활하게 수행되는 것을 제어하기 위한 장치이다. 

가령 PC레지스터의 값을 주기억장치에 전기신호를 보내 어떤 주소에 있는 명령문을 가져올지를 지정한다. 또한 IR 레지스터에 있는 코드를 해석하여 ALU와 범용 레지스터에 적절한 전기신호를 보내 어떤 연산을 해야 하는지 어떤 범용 레지스터를 액세스 해야 하는 지 알려준다.

 

CPU에서 처리할 명령어와 데이터는 모두 주기억장치에 위치하고 있다. 주 기억 장치는 주소가 지정되어 있고 각 주소마다 데이터 내용이 저장되어 있다. CPU의 제어장치는 PC레지스터를 통해 주기억장치의 주소를 지정하지만 정작 가져올 데이터는 그 주소에 저장되어 있는 데이터이다. 

 

저장장치

컴퓨터에 필요한 정보를 저장하는 장치로 주기억장치와 보조기억장치로 나눌 수 있다. 주 기억장치는 CPU에 의해서 즉시 처리할 데이터나 명령어를 저장, 보조기억장치는 주기억장치를 보조한다. 모든 데이터는 바이너리 형태로 저장된다. 주기억장치로는 RAM(Random Access Memory), ROM(Read Only Memory)가 있고, 보조기억 장치로는 하드디스크, 광학디스크 장치 등이 있다.

 

1. 캐시메모리

래지스터와 주기억장치의 속도 차이로 인해 그 사이에 캐시 메모리를 두게 된다. 캐시 메모리는 용량은 작지만 데이터 접근 속도는 주기억 장치보다 빠르다. 따라서 시스템이 운영될 때, 주기억장치의 내용을 캐시 메모리에 가져다 놓고 다시 캐시 메모리에서 범용 레지스터로 가져온다. 즉 레지스터와 캐시 메모리 사이에서 데이터 이동이 이루어진다.

 

2. Bus

  • 주소버스 : 프로세서가 이를 통해 접근할 주기억장치의 주소를 보낸다.
  • 제어버스 : 컴퓨터를 제어하기 위한 전기신호를 보낸다.
  • 데이터 버스 : 데이터가 오고간다.

 

폰 노이만 구조(저장 프로그램 개념)

초기의 컴퓨터는 새로운 응용을 처리하기 위하여 프로세서 하드웨어의 회로를 다시 구성해야 하는 어려움이 따랐다. 이러한 문제점을 해결하기 위하여 프로그램 개념이 도입되었다. 

 

이렇게 등장하게 된 저장 프로그램 개념으로 설계된 컴퓨터를 폰노이만 구조라고 한다. 프로그램은 데이터와 마찬가지로 주 기억장치에 저장되었다가 프로세서로 가져와 명령어를 해석하여 프로세서가 처리하는 과정을 거치게 되는 것이다. 폰노이만 구조는 입출력장치, ALU와 제어장치 즉 CPU와 저장장치로 구성되어 저장 프로그램 개념을 따르고 있다.

 

기계어와 어셈블리어

이에 대해서는 이미 간략하게 정리한 적이 있다.(블로그 링크 참고)

 

프로세서 설계방식

  • CISC머신 : 하나의 기계어 명령어가 보다 복잡한 일ㅇ르 수행하는 경우, 이 때 프로세서의 설계가 복잡해진다.
  • RISC머신 : 기계어 명령어의 종류가 적고 하나의 기계어가 비교적 간단한 작업을 수행한다. 하드웨어 구조가 간단.

프로그램 실행과 명령어처리 사이클

  1. 호출 사이클
    - 레지스터 PC에 저장되어 있는 값에 해당하는 주기억장치의 주소에 가서 저장되어 있는 데이터를 복사하여 레지스터 IR에 저장한다. 
  2. 해석 사이클
    - 레지스터 IR로 가져온 기계어 비트열을 해석한다. 
  3. 실행 사이클
    - 레지스터 IR에 해당하는 신호를 ALU 장치와 범용 레지스터 및 주기억장치에 보내 기계어 명령어를 수행한다. 실행사이클이 완료되면 프로세서는 다시 호출 사이클을 수행한다.

 

 

프로세서 즉 CPU를 구성하는 장치들에 대해서 정리해보았고, 이에 대해서 추가적으로 좀 더 정리하고 저장장치 즉 메모리에 대해서 정리할 예정이다.

 

728x90

+ Recent posts