C#/관련 글

2024.11.22 폰 노이만 구조

서지현 2024. 11. 22. 14:25

 

폰 노이만은 누구일까

 

폰 노이만은 컴퓨터 분야 외에도 수학, 경제학, 물리학 등 다양한 분야에 큰 영향을 끼친 인물이다. '천재 중의 천재' 로도 유명하며, 아인슈타인, 오펜하이머, 괴델과 함께 천재 과학자로 거론되는 인물 중 한명이다.

 

폰 노이만은 대학 교수 시절, 수십 개의 논문을 발표하였으며 하나만으로 상당한 가치가 있는 논문을 매달 지필하였다고한다.


폰 노이만 구조 이전의 역사

 

폰 노이만 구조 이전의 컴퓨터는 배전반의 연결을 통해 연산을 수행했다. 앞선 연산과 다른 연산을 수행하고 싶다면, 배선을 다 들어내고 직접 전선의 위치를 바꾸어야 했기때문에 번거롭고 비효율적인데다가 시간이 많이 소요되었다. 이런 단점의 해법이 1945년 존 폰 노이만에 의해 "EDVAC의 보고서 최초 초안"에서 등장하게 된다.


폰 노이만 구조의 특징

 

  • 폰 노이만 구조는 중앙처리장치(CPU) , 메모리, 프로그램 세 가지 요소로 구성되어 있다.
  • CPU와 메모리는 서로 분리되어있다.
  • 연결하는 버스(Bus)를 통해 명령어 읽기, 데이터의 읽고 쓰기가 가능하다.
    • 버스란, 메모리와 CPU의 메모리 컨트롤러를 커넥터와 케이블로 이어주는 경로(통로)를 말한다.
  • 핵심은, '프로그램 내장 방식'
    1. 기존에 하나의 기기를 스위치로 조작하던 방식에서 CPU와 메모리를 분리한다.
    2. '연산 작업' 을 프로그램 메모리에 순서대로 저장한다.
    3. 해당 연산 작업이 필요할 때, 저장해놓은 '프로그램'을 찾아 데이터 영역으로 꺼내온다.
    4. 입력값과 함께 CPU에 전달
    5. 연산작업 진행
    6. CPU에서 데이터 연산 작업을 마친 뒤 다시 메모리에 저장
  • 현대의 컴퓨터는 폰 노이만의 구조를 따르고 있다.
폰 노이만 구조는 하드웨어를 재배치 할 필요 없이 프로그램인 소프트웨어만 교체하면 된다.

 


병목현상과 그 해결책, 하버드 구조

 

병목 현상이란?

CPU가 전체 시스템의 성능 저하를 야기하는 현상. 쉽게 말해 CPU가 실제 연산 도중 아무 일도 하지 않고 노는 현상이다.

하버드 구조, 메모리 계층 구조, NUMA 등 여러 방법을 통해 병목 현상을 방지하고자 했다.

원인은?

근본적인 원인은 프로그램 메모리와 데이터 메모리가 물리적 구분 없이 하나의 버스를 통해 CPU와 교류하기 때문이다.

CPU는 명령어와 데이터 동시 접근이 불가능해져, 나열된 명령을 한번에 하나 씩 읽고 쓰게 된다.

  • 하버드 구조
    • CPU가 명령어와 데이터를 동시에 사용할 수 있도록 명령용 버스와 데이터용 버스를 물리적으로 구분한 방식이다.
    • 명령을 읽으면서 동시에 데이터를 저장하는 등의 행위가 가능해져 폰 노이만 병목 현상을 조금이나마 완화할 수 있도록 개선되었다.

참고 사이트

https://m.blog.naver.com/with_msip/221981730449

 

컴퓨터의 구조는 어떻게 생겼을까? 폰 노이만 구조

현대인이라면 누구나 컴퓨터와 스마트폰을 사용합니다. 그중 컴퓨터는 단순 사무 작업 뿐 아니라 학습과 오...

blog.naver.com

https://adeuran.tistory.com/20

 

폰 노이만 구조의 개념과 동작

오늘날 거의 모든 PC는 폰 노이만 구조를 따르고 있습니다. 폰 노이만 구조는 이름 그대로 존 폰 노이만이 제시한 컴퓨터 아키텍처로, 프로그램 내장 방식이라고도 불립니다. 이 글에서는 존 폰

adeuran.tistory.com

https://jiwondev.tistory.com/109

 

컴퓨터 구조 #2 (컴퓨터의 탄생, 폰노이만 구조)

Computer 컴퓨터는 프로세스 (Process, 연산장치)와 메모리(Memory, 저장장치)로 구성된 장치이다. 현대에서 사용하는 대부분의 컴퓨터는 아래와 같은 폰노이만 구조를 뼈대로 사용하고 있다. # 컴퓨터

jiwondev.tistory.com

 

'C# > 관련 글' 카테고리의 다른 글

2024.11.22 오픈소스  (1) 2024.11.22
2024.11.22 IDE에 대해서  (1) 2024.11.22
2024.11.21 칸반과 에자일을 분석하다  (0) 2024.11.21