하버드 아키텍처: 두 판 사이의 차이

내용 삭제됨 내용 추가됨
19번째 줄:
또한 범용 마이크로 콘트롤러의 상당수는 하버드 아키텍처에 기반을 두고 있다. 마이크로칩 테크놀로지사의 PIC 마이크로 콘트롤러, ATMEL사의 AVR 마이크로 컨트롤러 등이 그 예이다. 이러한 프로세서는 프로그램과 데이터를 저장하는 작은 메모리를 내장하고 있는 것이 특징이다. 그리고 또 다른 이점으로는 프로그램 메모리와 데이터 메모리가 분리되어 있으므로 각자 다른 비트수를 사용할 수 있다는 것이다. 즉 AVR 프로세서의 경우 명령어는 대부분 16비트 1워드로 구성되어 있는데 비해 데이터는 모두 8비트로 처리한다. 그 때문에 [[RISC]]와 하버드 아키텍처를 활용해 1 머신 사이클로 1 명령을 실행할 수 있게 되는 것이다.
 
하버드 아키텍쳐는 이러한 장점이 있는 대신 단점도 존재한다. 프로그램 중에 데이터가 함께 혼합된 경우, 예를 들어 폰트 데이터나 표시할 문장 데이터, 메뉴 데이터 등은 프로그램과 함께 존재해야 하는데, 프로세서가 이러한 데이터를 읽어들이려고 시도하면 엄연히 '데이터'를 읽으려 하므로 데이터 메모리에서 이 내용을 찾으려 한다. 그런데 이 데이터들은 프로그램 메모리에 존재하기 때문에 프로그램 메모리로부터 데이터를 읽을 수 있는 특수 상황의 명령어가 필요하고, 더구나 프로그램 메모리와 데이터 메모리의 비트수가 다른 경우 주소를 변환하는 과정을 거쳐야 한다.<ref>AVR Processor manual - LPM instruction</ref>
 
== 명령/ 데이터 분리 캐시 문제 ==