본문 바로가기

기타 공부

시스템 공부 1일차 (폰 노이만 구조)

 

폰 노이만 구조

노이만 구조는 중앙처리장치(CPU), 메모리, 프로그램 가지 요소로 구성되어 있습니다. , CPU 메모리는 서로 분리되어 있고 둘을 연결하는 버스를 통해 명령어 읽기, 데이터의 읽고 쓰기가 가능합니다. 이때 메모리 안에 프로그램과 데이터 영역은 물리적 구분이 없기 때문에 명령어와 데이터가 같은 메모리, 버스를 사용하게 됩니다. 다시 말해, 외나무다리와 같은 버스를 통해 CPU 명령어와 데이터에 동시 접근할 없습니다.

 

구조의 가장 장점은 프로그램 내장 방식 컴퓨터라는 점입니다. 노이만 구조를 적용하기 전에는 컴퓨터에 다른 작업을 수행할 경우, 하드웨어 전선을 일일이 재배치하느라 상당한 시간과 인력이 필요했습니다. 그러나 노이만 구조에서는 필요한 기능을 담은 소프트웨어가 메모리 안에 내장되어 있고 그래서 필요할 때마다 메모리 안의 프로그램과 데이터를 CPU 전달하여 계산을 처리하기 때문에 인력이 필요없습니다..

 

폰 노이만 구조의 단점은 버스 개수의 부족으로 인한 폰 노이만 병목현상 입니다. 하버드 구조는 버스의 개수가 1개였던 폰 노이만의 문제점을 해결하기 위해 버스를 2개로 늘린 것 입니다. 이를 통해 속도는 빨라졌지만 이 역시나 폰 노이만 구조를 기반으로 하고 있기 때문에, 근본적안 원인 해결은 아닙니다.

폰 노이만 구조의 컴퓨터에서는 미리 연산에 수행에 관련된 명령어가 기억장치에 저장되어 있고 이를 가져와 지시대로 연

산을 수행하게 됩니다. 이를 명령어 실행 사이클이라고 합니다.

 

폰 노이만 구조의 개략적인 사이클

 

이 명령어 실행 사이클은 크게

1.     명령어 가져오기

2.     명령어 실행하기

3.     인터럽트 체크

 

 

폰 노이만의 구체적 구조

 

 

구체적으로는

1.     명령어 가져오기 (IF, Instruction Fetch): 기억장치(오늘날의 메모리)부터 명령어를 가져오는 과정.

2.     명령어 해석 (ID, Instruction Decode): 앞서 가져온 명령어가 어떤 명령어인지 해석을 진행하는 과정.

3.     피연산자 인출(OF, Operands Fetch): 명령의 실행에 필요한 정보를 기억장치에 접근해 가져오는 과정.

4.     명령어 실행 (EX, Instruction Execution): 앞서 가져온 연산자와 데이터를 가지고 연산을 수행하고 저장한다.

5.     인터럽트[1] 체크

현대에 이르러서는 CPU 외부적으로는 노이만 구조를, 내부적으로는 하버드 구조를 적용하여 속도가 향상된 컴퓨터가 많이 등장했습니다. 이를 통해 병목현상은 어느 정도 완화되었지만 또한 노이만 구조를 기반으로 만들어진 것이기 때문에 근본적인 원인 해결은 되지 않고 있습니다.



[1] CPU가 프로그램을 실행하고 있을 때, 입출력 하드웨어 등의 장치나 예외상황이 발생하여 처리가 필요할 경우에 마이크로프로세서에게 알려 하던 일만 하고 인터럽트 체크 결과 1 일 경우 처리하고 다시 원래일을 할 수 있도록 하는 것을 말한다.