검수요청.png검수요청.png

하드웨어

해시넷
dlensk99 (토론 | 기여)님의 2021년 1월 19일 (화) 16:50 판
이동: 둘러보기, 검색

하드웨어(Hardware)는 컴퓨터 시스템이 작동하는 데 필요한 물리적 구성 요소이다. 반대되는 용어로 소프트웨어(Software)가 있다.[1] 하드웨어에는 중앙처리장치(CPU), 모니터, 자판, 컴퓨터 기억장치, 사운드 카드, 그래픽카드, 메인보드 등이 있다.[2]

개요

하드웨어는 연산, 기억, 입력, 출력, 제어의 다섯 가지 기능을 구현한다.[2] 그리고 하드웨어에는 중앙처리장치, 기억장치, 입출력장치로 구성되고, 각 장치는 시스템 버스로 연결되어 있다.[3]

중앙처리장치

Central Processing Unit의 약자로 CPU라고 한다. 중앙처리장치는 컴퓨터의 두뇌 역할을 한다. 중앙에서 사용자들이 입력한 명령어를 해석하고, 연산한 후 그 결과를 제어하는 역할을 한다.[4] 주기억장치에서 프로그램 명령어와 데이터를 읽어 처리하고 명령어의 수행순서를 제어한다. 비교와 연산을 담당하는 산술논리연산장치(ALU)와 명령어의 해석과 실행을 담당하는 제어장치, 그리고 속도가 빠른 데이터 기억장소인 레지스터로 구성된다.

산술논리연산장치

두 숫자의 산술연산과 논리연산을 계산하는 디지털 회로이다.[5]

  • 산술연산 장치: 덧셈과 뺄셈 같은 사칙연산을 수행한다.
  • 논리연산 장치: 논리곱(AND), 논리합(OR), 배타적 논리합(XOR), 부정(NOT) 등 논리연산을 수행한다.
  • 시프트 레지스터(Shift Register): 비트들을 좌우로 이동시키는 기능을 가진 레지스터이다.
  • 보수기(Complementer): 데이터에 대하여 2의 보수를 취한다. 즉, 음수화한다.[6]

제어장치

주기억장치에 저장되어있는 프로그램의 명령어를 해석하고, 실행을 위해 제어 신호들을 차례대로 발생시킨다. 명령을 읽고 실행하는데 필요한 중앙처리장치 내부의 각 장치 간의 데이터 흐름을 제어한다. 데이터 연산을 위해, 적절한 회로를 동작시키고, 어느 장치 또는 레지스터에 전송할 것인가를 지시한다. 중앙처리장치의 명령어 수가 많을수록 제어장치 내부의 회로가 복잡해진다.[7]

레지스터

용도에 따라 전용 레지스터와 범용 레지스터로 구분되고, 사용 용도에 따라 사용자 가시 레지스터(user-visible), 사용자 불가시 레지스터(user-invisible)로 구분할 수 있다. 저장하는 정보의 종류에 따라 데이터 레지스터, 주소 레지스터, 상태 레지스터로 나뉜다.[8]

사용자 가시 레지스터
  • 데이터 레지스터: 함수 연산에 필요한 데이터를 저장하고, 문자나 값 등을 저장하므로 산술연산이나 논리연산에 사용한다. 연산 결과로 플래그 값을 저장한다.
  • 주소 레지스터: 유효 주소를 계산하는데 필요한 주소 일부분을 저장한다.

기준 주소 레지스터는 프로그램을 실행할 때 사용하는 기준 주소값을 저장한다. 인덱스 레지스터는 유효 주소를 계산하는 데 사용하는 주소 정보를 저장한다. 스택 포인터 레지스터는 메모리에 프로세서 스택을 구현하는 데 사용한다. 보통 반환 주소나 프로세서 상태 정보, 서브루틴의 임시변수를 저장한다.[9]

사용자 불가시 레지스터
  • 프로그램 카운터(PC): 다음 실행할 명령어의 주소를 보관하는 레지스터이다. 실행할 명령어를 메모리에서 읽으면 명령어의 길이만큼 증가하여 다음 명령어를 가리킨다.
  • 명령어 레지스터(IR): 현재 실행하는 명령어를 보관하는 레지스터이다.
  • 누산기(ACC): 데이터를 일시적으로 저장하는 레지스터이다.
  • 메모리 주소 레지스터(MAR): 프로세서가 참조하려는 데이터의 주소를 명시하여 메모리에 접근하는 버퍼 레지스터이다.
  • 메모리 버퍼 레지스터(MBR): 프로세서가 메모리에서 읽거나 메모리에 저장할 데이터 자체를 보관하는 버퍼 레지스터이다. 메모리 데이터 레지스터(MDR)라고도 한다.[9]
그 외
  • 전용 레지스터: 범용적으로 사용될 수 있는 레지스터이다.
  • 범용 레지스터: 특수한 목적으로 사용하는 레지스터이다.
  • 상태 레지스터: 연산 결과의 상태를 알려주는 플래그 비트가 모인 레지스터이다.[8]

시스템 버스

하드웨어를 물리적으로 연결하여 데이터를 서로 주고받을 수 있게 하는 통로이다. 컴퓨터 내부의 다양한 신호가 시스템 버스로 전달된다.

  • 데이터 버스: 프로세서와 메인 메모리, 주변 장치 사이에서 데이터를 전송한다. 데이터를 주고 받아야 하므로 양방향 버스이다.
  • 주소 버스: 프로세서가 시스템의 구성 요소를 식별하는 주소 정보를 전송한다. 주소 버스를 구성하는 배선 수는 메모리 최대 용량을 결정한다. 주소를 전달만 하므로 단방향 버스이다.
  • 제어 버스: 프로세서가 시스템의 구성 요소를 제어하는 데 사용된다. 제어 신호로 메인 메모리의 읽기나 쓰기 동작을 결정한다. 읽기와 쓰기 동작을 모두 수행하므로 양방향 버스이다.[8][10]

기억 장치

프로그램, 데이터, 연산의 중간 결과 등을 저장하는 장치로, 주기억장치와 보조기억장치로 나누어진다. (RAM)과 (ROM)도 여기서 나온다.[3]

메인 메모리

주기억장치로, 중앙처리장치(CPU) 외부에 있다. 전원이 꺼지면 데이터가 날아가는 휘발성 메모리이지만 데이터 처리 속도가 빠르다. 중앙처리장치에서 즉각적으로 수행할 프로그램과 데이터를 저장하거나 처리한 결과를 메인 메모리에 저장한다. 입출력장치도 메인 메모리에 데이터를 받거나 저장한다. 메인 메모리는 다수의 셀로 구성되며, 각 셀은 비트로 구성된다. 메인 메모리는 프로세서와 보조기억장치 사이에 있고, 디스크 입출력 병목현상을 해결하는 역할을 한다.[8][11]

보조 기억장치

불필요한 프로그램이지만 저장되어야 할 것들을 저장한다. 예전의 시디(CD)나 디브이디(DVD), 플로피디스크 등의 장치들로, 오프라인 저장매체는 보조기억장치라고 할 수 있다. 전원이 꺼져도 데이터가 날아가지 않는 비휘발성 메모리로 반영구적으로 데이터를 보관할 수 있다. 하지만 데이터 처리 속도가 느리다. 중앙처리장치와 직접적인 데이터 교환이 이루어지지 않는다. 가장 큰 이유는 접근시간이 오래 걸리기 때문이다. 보조기억장치는 데이터에 접근할 때 순차적 접근 방식을 이용한다. 또한, 대량의 정보를 저장하는 매체이기 때문에 정보를 찾으러 가는 길이 램(RAM)에 비해 길고 정보의 위치에 따라 거리가 달라진다.[11][12]

캐시 메모리

중앙처리장치의 내부 또는 외부에 있다. 처리 속도가 빠른 프로세서와 상대적으로 느린 메인 메모리의 속도 차이를 보완하고 데이터를 메인 메모리에서 블록 단위로 가져와 프로세서에 워드 단위로 전달하여 속도를 높인다.[8] 메모리 중에서 중앙처리장치와 가장 가깝기 때문에 가장 빠르다.

  • 동작 원리: 중앙처리장치가 필요한 데이터를 메인메모리에서 찾기 전에 캐시에서 먼저 찾는다. 캐시의 성능은 중앙처리장치가 찾으려는 내용이 많을수록 좋다.
  • 지역성: 데이터 접근이 시간적, 공간적으로 가깝게 일어나는 것으로 시간적 지역성은 특정 데이터가 한 번 접근될 때, 가까운 미래에 또 접근할 가능성이 큰 것을 뜻하고, 공간적 지역성은 특정 데이터와 가까운 주소가 순서대로 접근될 때, 그 근처에서 접근할 가능성이 높은 것을 뜻한다.[11]

주변 장치

프로세서와 메인 메모리를 제외한 나머지 하드웨어의 구성요소이다.

  • 입력장치: 컴퓨터에서 처리할 데이터를 외부에서 입력하는 장치이다. 대표적인 예로는 키보드, 마우스, 스캐너, 마이크 등이 있다.
  • 출력장치: 입력장치에 의해 입력된 자료를 처리 장치에 의해 나온 결과를 화면이나 프린터로 출력하게 해주는 장치로, 대표적인 예로는 모니터, 스피커, 프린터, 그래픽 카드 등이 있다.
  • 저장장치: 메인 메모리와 달리 거의 영구적으로 데이터를 저장하는 장치이다.[9][13]

방화벽

인터넷 연결을 통해 수신되는 정보를 필터링하고 검사하는 소프트웨어 프로그램 또는 하드웨어 기기로, 잠재적인 손상이 발생하기 전에 악성 프로그램이나 공격자가 네트워크 및 정보에 액세스하는 것을 중지할 수 있기 때문에 첫 번째 방어선이라고 할 수 있다. 하드웨어 방화벽은 일부 라우터에 포함되어 있고, 하드웨어에 내장되어 있어 구성이 거의 필요하지 않다. 이러한 방화벽은 해당 라우터의 네트워크에 연결된 모든 컴퓨터 및 기기에 대한 트래픽을 모니터링한다.[14]

취약점

멜트다운과 스펙터 버그가 하드웨어와 펌웨어의 취약점을 공격할 수 있다.

중앙처리장치 부채널 공격

  • 스펙터 변종 1 – CVE-2017-5753: 중앙처리장치의 캐시를 부 채널로 사용함으로써 다른 프로세스에 할당된 메모리 속 정보를 추출한다. 이 경우 하나의 프로세스가 다른 프로세스의 중요 정보를 유출할 수도 있을 뿐 아니라, 사용자 메모리와 커널 메모리 사이의 권한 경계를 우회할 수도 있다.
  • 스펙터 변종 2 – CVE-2017-5715: 변종 1과 동일한 영향을 끼치지만, 분기 표적 주입법(branch target injection)이라는 기법을 사용한다. 이 변종 스펙터를 효과적으로 예방하기 위해서 CPU의 마이크로코드를 업데이트해야 한다.
  • 멜트다운 변종 3 – CVE-2017-5754: 멜트다운 버그는 불량 데이터 캐시 적재(RDCL) 또는 제3의 중앙처리장치 추측실행 기능 결함이라고도 불린다. 이 취약점을 이용하면 사용자 프로세스별로 설정된 보안 경계를 넘어 보호된 커널 메모리를 읽을 수 있다. 취약점 수정을 위해서는 운영 체제만 업데이트하면 된다. 민감한 정보를 가진 커널 메모리를 좀 더 엄격하게 분리하는 작업이 수반된다.

디램 메모리 로우 해머 공격

  • 로우 해머: 에스디램(SDRAM) 칩 안에서 메모리 셀의 동일한 행을 물리적으로 빠르게 여러 번 읽을 때 발생할 수 있는 물리적 효과이다. 이 효과를 해머링이라 불리기도 한다.
  • 드래머 – CVE-2016-6728: 드래머(Drammer)는 안드로이드 기기를 대상으로 이뤄지는 것으로 알려진 로우 해머 유형의 공격이다. 모바일 기기 내의 메모리칩은 드래머가 발견되기 전까지는 공격의 영향권에 있지 않다.
  • 플립 풍수(Flip Feng Shui): 가상 머신을 대상으로 한 로우 해머 공격이다. 악의적인 게스트 가상 머신은 물리적 메모리의 비트를 플립(flip)해 통제 상태에 있는 다른 가상 머신에 영향을 줄 수 있다.[15]

활용

알렉스넷

인공지능(AI) 알고리즘으로, 최초로 그래픽 처리 장치(Graphics Processing Unit, GPU)를 사용했다. 일반 중앙처리장치(CPU)를 사용하는 것보다 학습 능력이 50배나 빨랐다. 그래픽 처리 장치(GPU)는 게임을할 때 쓰는 그래픽 카드에 내장된 그래픽용 중앙처리장치이다. 그래픽 카드는 많은 계산을 동시에 할 수 있다는 것이 알려져 있었지만, 그것을 인공지능 알고리즘에 계산에 활용할 수 있다는 것은 생각하지 못했던 부분이다.[16]

Q-PUF USB

인증 시 보안 위협을 해결할 양자 내성 알고리즘을 업그레이드 시켜 USB 형태의 보안토큰을 개발했다. 하드웨어 보안 기술인 물리적 복제 방지기능(PUF)과 양자 난수 발생기(QRNG)를 결합해 만들었다. 양자 난수를 이용해 응용서비스에서 사용하는 암호키를 생성하고 물리적 복제 방지기능을 이용하여 보호하기 때문에 높은 보안성을 제공한다.[17]

각주

  1. 크루셜 공식 홈페이지 – https://www.crucial.kr/articles/pc-builders/what-is-computer-hardware
  2. 2.0 2.1 컴퓨터 하드웨어〉, 《위키백과》
  3. 3.0 3.1 컴퓨터의 구조를 설명해줄게!〉, 《티스토리》, 2016-06-08
  4. 라임, 〈CPU란?/CPU 종류/CPU 고르기/중앙처리장치/인텔 CPU 고르기〉, 《메이크셰어》, 2017-01-09
  5. 산술 논리 장치〉, 《위키백과》
  6. 지쳐가는 베베, 〈산술논리연산장치 ALU(Arithmetic and Logical Unit)〉, 《티스토리》, 2017-08-19
  7. Control Unit 제어 장치〉, 《정보통신기술용어해설》, 2020-10-31
  8. 8.0 8.1 8.2 8.3 8.4 Jang Wonit, 〈(운영체제)1. 컴퓨터 하드웨어의 구성〉, 《티스토리》, 2019-12-07
  9. 9.0 9.1 9.2 운영체제-컴퓨터 하드웨어의 구성(CPU, RAM등)〉, 《티스토리》, 2019-07-22
  10. fldfls, 〈시스템 버스(System Bus)〉, 《rin13.log》, 2020-05-01
  11. 11.0 11.1 11.2 (하드웨어기초) CPU와 메모리〉, 《티스토리》, 2020-04-15
  12. 사용자 여름에 난로, 〈보조기억장치는 무엇일까? 여러 종류의 보조기억장치들〉, 《티스토리》, 2019-11-20
  13. 야무야무, 〈컴퓨터의 5대장치〉, 《네이버 블로그》, 2015-03-01
  14. McAfee 공식 홈페이지 - https://www.mcafee.com/ko-kr/index.html
  15. Lucian Constantin, 〈하드웨어 및 펌웨어 취약점 33가지와 위협 가이드라인〉, 《아이티월드》, 2021-01-14
  16. 김준배 기자, 〈(장동인의 AI와 일하는 법) 인공지능과 하드웨어 시장〉, 《아이티조선》, 2020-06-24
  17. 여용준 기자, 〈LGU+, 산업,의료 현장에 양자내성암호 기술 적용〉, 《글로벌이코노믹》, 2021-01-19

참고자료

같이 보기


  검수요청.png검수요청.png 이 하드웨어 문서는 하드웨어에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.