컴퓨터 구조(Computer Architecture)의 컴퓨터 하드웨어 [1]

busybean3·2021년 9월 23일
0

컴퓨터 구조

목록 보기
1/2

컴퓨터 하드웨어는 컴퓨터의 기능을 수행하기 위해 전기적 신호로 구성된 정보를 이동하거나 처리하는 물리적인 실체를 의미하며, 컴퓨터의 정보 처리 능력을 결정합니다. 이런 컴퓨터 하드웨어를 구성하는 중요 요소는 기능에 따라 중앙처리장치, 기억장치, 주변장치로 구분된다.

1. 중앙처리장치(CPU)

중앙처리장치 즉 CPU(central processing unit)는 컴퓨터 시스템에 부착된 모든 장치의 동작을 제어하고 명령을 실행하는 장치를 말하며, 마이크로프로세서(microprocessor)라고도 부릅니다.

CPU = Microprocessor

일반적으로 두 용어는 구분 없이 사용하지만, CPU는 컴퓨터 시스템의 논리적 구성요소이고, 마이크로프로세서는 CPU를 직접회로(IC/intergrated circuit) 형태로 만든 물리적 구성 요소입니다. 이 CPU는 제어장치와 연산장치, 레지스터, CPU 내부 버스등으로 구성됩니다.

1-1. 제어장치(control unit)

제어장치는 메인 메모리로부터 적절한 순서로 명령어를 인출 및 해독하여 컴퓨터 시스템에 연결된 장치에 제어신호를 보냅니다. 모든 장치는 제어장치가 보낸 제어 신호에 따라 주어진 명령어를 실행합니다. 그래서 제어장치를 명령어장치(instruction unit)라고도 합니다.

제어장치 = 명령어장치

1-2. 연산장치

연산장치는 제어 신호에 따라 명령어가 의도하는 대로 데이터를 실행하기 위해 CPU 내부에서 데이터를 처리하는 장치를 말하며, 실행장치(execution unit) 혹은 산술논리장치(ALU/arithmetic & logic unit)라고 불립니다. 이는 제어장치가 지시하는 순서에 따라 데이터에 대한 산술연산이나 논리연산을 수행합니다.

연산장치 = 실행장치, 산술논리장치

1-3. 레지스터(register)

레지스터는 데이터를 처리하는 동안 사용할 값이나 연산의 중간 결과를 일시적으로 기억하는 고속 기억장치입니다. CPU 내부에는 누산기(accumulator), 명령어 레지스터(instruction register)등 다양한 레지스터가 있습니다.

1-4. CPU 내부버스

CPU 내부 버스는 제어장치, 연산장치, 레지스터 등과 같은 CPU 내부 구성 요소를 연결하는 wire의 집합으로 데이터 신호, 주소 신호, 제어 신호를 전송합니다.

2. 기억장치

기억장치(memory device)는 컴퓨터 시스템에 의해 처리될 프로그램과 데이터를 저장하기 위한 장치입니다. 기억장치는 저비용, 고효율로 이용하기 위해 일반적으로 계층적 기억장치(hierarchical memory)로 구성하여 사용합니다.

계층적 기억장치는 CPU 내부의 기억장치인 레지스터, 캐시 메모리, 메인 메모리, 보조장치로 구분됩니다. CPU에 가까운 기억장치는 고속이지만 고가이므로 소용량으로 구성되며, CPU에서 먼 기억장치는 저속이지만 저가이므로 대용량으로 구성됩니다.

일반적으로 기억장치라고 하면 CPU에 직접 연결되어 있는 메인 메모리를 의마합니다. 메인 메모리는 간략히 메모리라고도 하며, CPU에서 즉각적으로 수행할 프로그램과 필요한 데이터를 기억하기 위한 장치로서 DRAM(dynamic random access memory)을 주로 사용합니다. 메모리 또는 1차 저장장치라고 불리는 메인 메모리는 CPU의 작업장 역할을 수행하며, 대표적인 예로는 삼성의 DDR3 등이 있습니다. 보조기억장치는 프로그램과 데이터를 저장하는 장치로, 주변 장치의 일부로 취급되며 2차 기억장치, 외부기억장치라고도 합니다.

3. 주변장치

주변장치(peripheral devvice)는 컴퓨터 시스템의 구성요소 중 CPU와 메인 메모리를 제외한 나머지 구성 요소를 말하며, 입출력장치라고도 합니다. 주변장치는 입력장치, 출력장치, 저장장치로 구분됩니다.

3-1. 입력장치

입력장치는 컴퓨터에서 처리할 데이터를 외부에서 입력하기 위한 장치입니다. 이는 제어장치의 명령에 따라 인간이 사용하는 문자, 숫자, 소리 등과 같은 정보를 읽어 컴퓨터가 사용하는 0과 1로 코드화된 정보로 변환하여 컴퓨터가 처리할 수 있도록 기억장치로 전송합니다. 일반적으로 입력된 정보는 기억장치에 저장되거나 연산장치에 의해 처리됩니다. 실례로 키보드, 마우스, 마이크 등등입니다.

3-2. 출력장치

출력장치는 입력장치와 반대로 컴퓨터에서 처리한 데이터를 외부로 보내기 위한 장치입니다. 이는 제어장치의 명령에 따라, 컴퓨터가 사용하는 0과 1로 구성된 데이터를 인간이 사용하는 문자, 숫자, 소리 등과 같은 데이터로 변환하여 외부로 보냅니다. 실례로 모니터, 프린터, 스피커 등이 있습니다.

3-3. 저장장치

저장장치는 메인 메모리와 달리 거의 영구적으로 데이터를 저장하는 장치입니다. 이는 데이터를 입력하여 저장하고, 또한 저장된 데이터를 출력하는 공간, 즉 입력과 출력의 복합적인 공간으로 간주되기 때문에 입출력장치, 즉 주변장치로 분류합니다. 저장자잋는 메인 메모리의 제한적인 기억 용량을 보조하는 데 사용되며, 일반적으로 전원이 차단되어도 기억 내용을 상실하지 않습니다. 실례로는 하드디스크, CD, ROM 등이 있습니다.

4. 기타 하드웨어

컴퓨터 시스템의 개념적 구성 요소인 CPU, 기억장치, 주변장치 외에 이런 구성 요소를 서로 연결하기 위한 bus와 각 구성요소를 탑재하는 메인보드 등이 있습니다. 컴퓨터 시스템의 각 구성요소는 유기적으로 연결되어야 하며, 대부분의 기능장치는 적절한 속도를 내기 위해 워드 단위로 구성됩니다. 버스는 아래와 같이 컴퓨터 시스템을 구성하는 기능장치를 연결하는 wire의 집합을 의마합니다.

컴퓨터 시스템의 구성 요소는 이 버스를 통해 서로 각종 신호를 전달하고 교환합니다. 버스 목적에 따라 데이터버스, 주소버스, 제어버스로 구분하며, 이를 통칭하여 시스템버스(system bus)라고 합니다.

  • 데이터버스 : CPU와 메인 메모리, 주변장치 사이에 데이터를 전송하는 배선의 집합이다. 데이터버스를 구성하는 wire의 수를 CPU가 한 번에 전송할 수 있는 비트 수를 결정하며, 이를 일반적으로 워드라고 한다.
  • 주소버스 : CPU가 시스템 구성 요소를 식별하기 위한 주소 정보를 전송하는 wire의 집합이다. 주소버스를 구성하는 wire의 수는 CPU와 접속할 수 있는 최대 메모리의 용량을 결정한다.
  • 제어버스 : CPU가 시스템 구성 요소의 동작을 제어하는 데 사용되는 wire의 집합이다. 제어 신호에 의해 연산장치의 연산 종류 및 메인 메모리의 읽기, 쓰기 동작이 결정된다.

메인보드는 컴퓨터의 실행 환경을 설정하고, 설정 정보를 유지해주고, 컴퓨터가 안정적으로 구동되게 해주며, 모든 장치의 데이터 입출력 교환을 원할하게 해주는 부분입니다.

CPU나 메모리, 하드디스크 등이 컴퓨터의 성능을 좌우하는 기능장치라면, 메인보드는 이러한 기능장치 사이의 호환성이나 확장의 범위를 결정합니다. 따라서 메인보드는 시스템 전반의 안정적인 동작 여부를 좌우합니다. 메인보드에는 CPU, 메모리, BIOS(basic input output system)등과 같은 시스템의 중요 기능장치 대부분을 부착할 수 있으며, 주변장치를 위한 확장 슬롯과 각종 port 및 connector를 제공합니다.

메인보드는 버스와 입출력 등을 제어하는 칩셋을 포함하고 있습니다. 칩셋은 다양한 역할을 수행하기 떄문에 발열이 심해 방열판이나 냉각팬에 덮여 있는 경우가 많습니다. 기존 메인보드는 MCH(memory controller hub)라고 불리는 northbridge와 ICH(I/O controller hub)라고도 불리는 southbridge, 두 가지 칩셋을 탑재합니다. northbridge는 메모리 컨트롤러를 포함하며 주로 고속 장치를 구동하고, southbridge는 I/O 컨트롤러를 포함하며 주로 저속 장치를 구동합니다. 하지만 최근에는 두 가지 기능을 하나의 칩셋으로 합치거나, northbridge의 기능을 CPU로 옮기고 southbridge만 남겨두는 경우가 많아 칩셋을 하나만 사용하는 추세입니다.

REFERENCE

해당 포스팅의 모든 레퍼런스는 "컴퓨터 아키텍처:컴퓨터 구조 및 동작 원리" 입니다.

https://coupa.ng/b7MwAA

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

profile
엉덩이 무거운 개발자가 되기 위해서 몸무게를 찌웠다...

0개의 댓글