티스토리 뷰

하바드 구조에 대해서

AVR 계열은 하바드 구조(Havard architecture)로 되어 있습니다. 하바드 구조에서는 프로그램 메모리와 데이터 메모리가 확연히 구분되어 있어서 일반 데이터를 제외하고는 프로그램 메모리에 데이터를 넣을 수도 없고, 데이터 메모리에 프로그램을 넣을 수도 없습니다. 또한 프로그램 메모리와 데이터 메모리는 별개의 버스에 의해서 접근됩니다. 이에 반하여 8080, Z80과 같은 폰노이만 구조에서는 프로그램 메모리와 데이터 메모리가 확연히 구분되어 있지 않아서 프로그램과 데이터가 같은 메모리에 혼재합니다. 버스도 하나 뿐입니다. 하바드 구조에서는 다음과 같은 장점을 가집니다. AVR 계열은 하바드 구조로 되어 있어서 하바드 구조에서는 내부적으로 프로그램버스와 데이터버스를 별도로 구비함으로써 동일 시간대에 프로그램 메모리와 데이터 메모리에 동시에 접근할 수 있어서, 종래의 폰노이만 방식에서 채택하고 있는 one-bus 방식보다 훨씬 빠르고 효율적입니다. 일반적으로 하바드 구조에서는 데이터 메모리를 레지스터 파일 형태로 통합관리합니다. 즉 레지스터와 데이터 메모리를 레지스터 파일이라고 하는 하나의 통합된 공간에 같이 배치해 두고 "레지스터에서 레지스터로(register to register)"의 방식으로 일괄 통합관리하고 있어서 레지스터와 메모리간에 상호전송이 필요없으므로 명령어 수도 줄고, 속도도 빠릅니다. 하바드 구조에서는 프로그램 메모리와 데이터 메모리가 별개로 존재하므로, 프로그램 메모리의 워드폭과 데이터 메모리의 워드폭을 달리 할 수 있습니다. 실제 AVR 계열의 경우 프로그램 메모리의 워드폭은 몇 개를 제외하고는 모두 16비트이고, 데이터 메모리의 워드 폭은 8비트입니다. 이처럼 두 메모리의 워드폭을 달리 함으로써 모든 명령어를 하나의 워드에 넣을 수 있어서, 실행 속도가 빠르기 때문에 로드/스토어 명령과 분기 명령을 제외한 모든 명령이 1사이클에 실행됩니다. 또한 구조가 간단해지고, 프로그램 메모리가 1.5~2.0배 절약됩니다.

'정보통신 및 로봇제어시스템' 카테고리의 다른 글

CPU에 대해서 알아보기  (0) 2021.06.23
ATmega128의 내부 구성  (0) 2021.06.21
ATmega128의 특징  (0) 2021.06.15
AVR 마이크로컨트롤러의 계열  (0) 2021.06.14
마이크로컨트롤러의 특징  (0) 2021.06.13
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함