만져보는 임베디드 시스템/아두이노 하드웨어

아두이노, Arduino-(3). 폰 노이만 구조 / 하버드 구조 (Von Neumann Architecture vs Havard Architecture)

hanjinee 2020. 8. 29. 22:26

안녕하세요 제타지니입니다.

이번 포스팅은 아두이노 하드웨어의 기반을 설명하기에 앞서서 아키텍쳐에 관한 설명을 하려고 합니다.

 

처음 포스트를 쓸 때, RISC와 CICS 스트럭처를 가지고 하버드 구조와 폰 노이만 구조를 연결시켜서 설명을 하려고 했습니다.

하지만, 하버드 구조 / 폰 노이만 구조는 생각보다 방대한 양을 가지고 있었고, 그보다는 하버드 구조와 폰 노이만 구조를 비교한 뒤에 그것을 연결시켜서 설명하는 편이 훨씬 이해하기 쉽겠다는 생각을 했습니다. 

 

따라서, 이 포스트는 하버드 구조와 폰 노이만의 구조에 대한 정의, 원리, 그리고 특징을 설명하는 포스트가 될 것입니다. 하하..

 

<사전 지식>

모두 아시다 시피, 연산기기(Computer)는 다음과 같은 원리들을 가지고 작동하는 체계를 지니고 있습니다. 

 

 

 

  • Input data 혹은 오퍼랜드(Operand)라고 불리는 코드화 된 정보를 받습니다. -입력
  • Computer안에서 알고리즘에 따라서 이런 코드화 된 정보를 해석합니다.  -처리
  • 컴퓨터 혹은 인간이 받아들일 수 있는 형태로 처리된 데이터를 내보냅니다. -출력

 

조금더 상세히 보자면... 다음과  같습니다.

 

 

 

<용어 해설>

  • Input: 입력 단자, 
  • Output: 출력 단자
  • ALU: 산술 처리 장치
  • CPU: 중앙 처리 장치
  • CU :Control Unit, CPU(Central Process Unit)의 구성요소 중 하나로, 프로세서의 동작을 지시한다. CU는 ALU, Memory 와 입출력 장치에게 프로그램의 지시에 따라 어떻게 작동할 것을 지시하는 역할을 한다.  

 

 

<Von Neumann Structure - 폰 노이만 구조>

  • 원리 및 특징
  1. 컴퓨터에서의 데이터는 이진수로 구성되어 있습니다.
  2. 2진수 코딩에 대한 법칙은 데이터에 상관없이 동일합니다. 
  3. 2진수 코딩에 대한 데이터와 프로그램을 위해서 컴퓨터는 특별한 메모리블락을 가지고 있습니다. 
  4. 2진수 코드는 다음과 같이 정해진 형태를 지니게 됩니다. 
    Field Operation Code(OPCODE, 명령어 코드)와 Address(주소)가 합쳐진 형태입니다.
  5.  모든 제공된 명령어 코드는 순차적으로 행해집니다. 

 

폰 노이만 구조의 컴퓨터 실행 원리는 다음의 그림과 같습니다. 

 

 

<Havard Structure - 하버드 구조>

-특징 및 원리

  1.  하버드 구조는 명령어 제공을 위한 '신호 전달 통로' 와 '저장소'를 분리해 놓은 구조입니다. 
    그림으로 보자면 다음과 같습니다. 

     

  2. 그림에서 보는 것과 같이, 두개의 메모리가 자신만의 bus를 가지고 CPU(Processor)와 통신을 합니다. 이러한 원리는 작업 속도를 높이는 특징을 지니고 있습니다. 
  3. Instruction Memory의 경우 Processor에서 READ(읽음)밖에 못하지만, Data Memory에서는 실행된 명령에 따라 Processor에서 READ / WRITE(읽기 / 쓰기) 모두 할 수 있습니다. 
  4. Instruction Memory와 Data Memory의 변수가 모두 같을 필요는 없습니다. 일반적으로 용량, 위치, 빠르기가 다릅니다. 일반적으로 Instruction Memory의 크기를 더 크게 만들어주고, ROM Type으로 만들어 주는 반면, Data memory는 RAM Type으로 만듭니다. 
  5. 각각의  Memory들은 자신들만의 독립적인 주소를 가지고 있습니다. 

다음 포스트에서는 하버드 구조와 폰 노이만 구조의 컴퓨터를 비교해 보도록 하겠습니다. 

728x90