나 이것도 몰랐네..
[컴퓨터 구조] 컴퓨터 구성 요소 본문
내 데스크톱과 노트북은 버튼을 누르면 어떻게 실행되는가, 왜 전원을 꺼도 저장한 데이터는 사라지지 않는가, 내가 입력한 코드는 어떤 과정을 거쳐 실행되는가에 대한 궁금증이 생겨 여러 책과 사이트를 찾아 알게된 내용을 정리한다.
컴퓨터의 구조
1. 폰 노이만 컴퓨터 구조
폰 노이만 구조는 제어장치와 산술연산장치를 포함한 중앙처리장치(CPU), 프로그램 영와과 데이터 영역으로 이루어진 메모리, 프로그램 3가지 요소로 구성되어 있다. CPU와 메모리가 분리되어 있고 둘을 연결하는 버스(Bus)를 통해 명령어 읽기, 데이터 읽고 쓰기가 가능하다. 이때 메모리 안에 프로그램과 데이터 영역의 물리적 구분이 없기에 CPU가 명령어와 데이터에 동시 접근할 수 없다.
구조의 장점
기존에 다른 작업을 수행하기 위해 하드웨어 전선을 재배치해야 했기에 많은 시간과 인력이 필요해 여러 가지의 작업들을 수행하기에는 한계가 있었다. 하지만 폰 노이만 구조는 프로그램 내장 방식의 컴퓨터이기에 다른 작업을 위해선 소프트웨어만 교체하면 되기 때문에 편의성이 크게 증가하였고, 다양한 목적으로 사용이 가능해져 범용성이 향상되었다. 현재 거의 모든 컴퓨터가 폰 노이만 구조를 따르게 되었다.
단점
1) 폰 노이만 병목현상(Von Neumann bottleneck)
이는 나열된 명령을 순차적으로 수행하고 그 명령은 일정한 기억장소의 값을 변경하는 작업으로 구성되는 구조에서 기인해 프로그램 메모리인 롬과 데이터 메모리인 램 사이의 공유 버스, 즉 CPU와 메모리간 데이터 전송율의 한계로 인해 발생하는 병목현상 또는 기억장소의 지연 현상이 발생함.
- 이를 해결하기 위해 하버드 구조, 메모리 계층 구조, NUMA 등의 방법을 통해 한계를 극복
2) CPU의 비효율적 활용
순차적으로 한 번에 하나의 명령어만을 처리하기 때문에 CPU를 효율적으로 사용하지 못한다는 점으로 수치 계산이나 정밀하게 작성된 프로그램을 실행하는 데에는 탁월하지만, 이미지나 소리와 같은 아날로그 데이터를 처리하는 데에는 효율성이 낮다는 한계가 존재함.
- 이를 해결하기 위해 명령어 병렬처리, 대칭형 다중처리(SMP), 대규모 병렬 컴퓨터(MPP) 등 다양한 병렬처리 방식(parallel processing)이 등장하였으나 병렬처리를 기반으로 하는 컴퓨터 구조를 만들기에는 지나치게 복잡하다는 점과 모든 문제에 효율적으로 적용되는 것이 아니라는 점, 처리를 위해 부가적으로 시간이 들어가는 오버헤드(overhead)가 발생한다는 단점이 발생
1 - 1. 하버드 구조(Harvard Architecture)
CPU가 명령어와 데이터를 동시에 사용할 수 있도록 명령용 버스와 데이터용 버스를 물리적으로 구분한 것
명령을 메모리로부터 읽는 것과 데이터를 메모리로부터 읽는 것을 동시에 할 수 있어 현재 명령의 처리가 끝냄과 동시에 다음 명령을 읽을 수 있어 빠른 속도를 낼 수 있다는 장점이 존재한다. 하지만 처리 속도를 높히기 위해 보다 많은 전기 회로가 필요하며 두 개의 버스와 메모리를 가지게 되어 CPU 코어에서 공간을 많이 차지한다는 단점도 존재한다.
1 - 2. 현대
CPU의 외부적으로는 폰 노이만 구조를, 내부적으로는 하버드 구조를 적용하여 속도를 향상시킨 것이 많음. 하지만 폰 노이만 구조를 기반으로 만들어진 것이기에 병목 현상만 해결할 뿐 메모리 속의 프로그램을 순차적으로 실행하는 근본적인 구조는 변하지 않음
2. 컴퓨터 구조
컴퓨터는 중앙처리장치(CPU), 주기억장치(main memory), 보조기억장치(secondary storage), 입출력장치(input/output, I/O), 4개의 핵심 부품으로 이루어져 있음
CPU
- 메모리에 저장된 명령어를 읽어들여 해석하고 실행함
- 명령어 사이클(Fetch/Execution)을 반복해 프로그램을 실행함
1) 산술논리연산장치(Arithmetic Logic Unit, ALU)
- 산술연산과 논리연산을 수행함
2) 레지스터(register)
- CPU 내부의 작은 임시 저장 장치로, 프로그램을 실행하는 데 필요한 값들(데이터, 상태, 명령어)을 임시로 저장
3) 제어장치(Control Unit, CU)
- 명령어 레지스터에 저장된 명령어를 해석
- 컴퓨터 구성요소를 제어할 제어 신호를 생성하고, 제어장치에 의해 구성요소들은 관리 받음
4) 내부 버스(Internal Bus)
- CPU 내부의 구성요소 간 데이터 전달과 연결을 위한 경로
메모리(주기억장치)
- 비교적 저장 용량이 적지만, 속도가 빨라 실행되는 프로그램이 적재되어 있는 기억장치
- 저장된 값에 빠르고 효율적으로 접근하기 위해 주소(address)가 사용
- CPU와 온라인으로 연결되어 CPU가 필요 시마다 데이터를 전달
- CPU는 Store와 Load의 방식으로 기억장치에 액세스
1) 적재(Load)
- 기억장치에 저장된 데이터를 읽어 CPU의 레지스터로 적재
- 주소버스를 통해 CPU가 요구하는 데이터의 주소값과 제어 버스를 통해 Read 신호가 전달
2) 저장(Store)
- CPU의 레지스터에서 기억장치의 특정 주소에 데이터를 저장
- 주소 버스를 통해 특정 주소와 제어버스를 통해 Write 신호가 전달
3) 워드(Word)
- CPU가 한 번에 접근하는 데이터를 의미
- CPU가 지원하는 비트 수와 크기가 같음
- 32bit CPU에서는 32bit, 64bit CPU에서는 64bit
보조기억장치
- 메모리보다 크기가 크고 전원이 꺼져도 저장된 내용을 잃지 않음
- 하드 디스크, SSD, USB 메모리, DVD, CD-ROM과 같은 저장 장치가 해당
입출력장치
- 사용자 또는 컴퓨터 외부에서 데이터를 입력받고 출력하기 위한 장치
- 마이크, 스피커, 프린터, 마우스, 키보드, 화면 등이 해당
메인 보드와 시스템 버스
- 메인 보드(Main board) : 마더보드(mother board)라고도 부르며, 여러 컴퓨터 부품을 부착할 수 있는 슬롯과 연결 단자가 존재
- 버스(Bus) : 메인 보드에 연결된 부품들이 서로 정보를 주고받을 수 있는 통로
- 시스템 버스(System bus) : 4가지 핵심 부품을 연결하는 버스를 의미
참고 사이트
<폰 노이만 구조 및 하버드 구조>
https://blog.naver.com/PostView.naver?blogId=with_msip&logNo=221981730449&referrerCode=0&searchKeyword=%EC%BB%B4%ED%93%A8%ED%84%B0%20%EA%B5%AC%EC%A1%B0
컴퓨터의 구조는 어떻게 생겼을까? 폰 노이만 구조
현대인이라면 누구나 컴퓨터와 스마트폰을 사용합니다. 그중 컴퓨터는 단순 사무 작업 뿐 아니라 학습과 오...
blog.naver.com
https://velog.io/@ckstn0777/%EC%BB%B4%ED%93%A8%ED%84%B0-%EA%B5%AC%EC%A1%B0
폰 노이만 구조와 하버드 구조
Von Neumann architecture. 존 폰노이만이 제시한 컴퓨터 구조. 프로그램 내장 방식이라고도 불립니다. 그 이전의 컴퓨터들은 스위치를 설치하고 전선을 연결하여 데이터를 전송하고 신호를 처리하는
velog.io
https://ko.wikipedia.org/wiki/%ED%8F%B0_%EB%85%B8%EC%9D%B4%EB%A7%8C_%EA%B5%AC%EC%A1%B0
폰 노이만 구조 - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. 폰 노이만 구조 폰 노이만 구조(영어: Von Neumann architecture)는 에드박의 보고서 최초 초안(First Draft of a Report on the EDVAC)에서 수학자이자 물리학자 존 폰 노이만과
ko.wikipedia.org
<컴퓨터 구조>
[컴퓨터 구조] CPU, 메모리, 보조기억장치, 입출력장치를 알아보자
컴퓨터의 핵심 부품은 CPU, 메모리, 보조기억장치, 입출력장치입니다. 이 네 가지 부품의 역할만 이해하고 있어도 컴퓨터의 작동 원리를 대부분 파악할 수 있습니다. 주기억장치에는 크게 RAM과 RO
hongong.hanbit.co.kr
[컴퓨터구조] 컴퓨터의 구성 요소
컴퓨터 구성요소 1) 중앙처리장치(CPU, Central Processing Unit) - 메모리에 저장된 명령어를 읽어들여 수행하는 주체 - 명령어 사이클(Fetch/Execution)을 반복해 프로그램을 실행 (1) ALU(Arithmetic and Logic Unit)
dheldh77.tistory.com
'CS 지식' 카테고리의 다른 글
[컴퓨터 구조] 컴퓨터는 왜 이진법을 쓸까? (0) | 2024.06.01 |
---|