본문 바로가기

Etc/AVR

Bank Swiching (뱅크 스위칭)

8051는 선형적으로 64KB의 프로그램 메모리를 지원하는데 뱅크 스위치 기법을 사용하면 이 용량을 더 크게 확장할 수 있다. 뱅크 스위칭이란 추가적인 하드웨어를 이용하여 하나의 메모리 영역에 여러개의 뱅크를 중첩되도록 위치시키는 방법이다. 이를 위해 어드레스 버스의 상위 자리에 추가적으로 어드레스 버스의 역할을 수행하는 신호를 지정하여 사용한다.

Common Code Area
BL51 은 프로그램 코드를 1개의 공통 코드 영역(common code area)과 32개까지의 코드 뱅크에 나누어 배치 (locate) 시킬 수 있다. 공통 코드 영역은 항상 모든 뱅크에 의해 엑서스될 수 있으며 따라서 모든 뱅크에 의하여 항상 엑서스 될 수 있어야 하는 리셋벡터, 인터럽트 벡터, 인터럽트 서비스 루틴, 문자열 상수, 뱅크 스위칭 루틴, C51에 의하여 호출되는 런타임 라이브러리 함수등은 이 공통 코드 영역에 채워져야 한다.

Code bank area
8051은 프로그램의 코드 메모리를 위한 어드레스 버스 16개를 제공하므로 64kb 의 코드 영역을 엑서스할 수 있다. 이 코드 뱅크에는 기본적인 16개의 어드레스 라인이외에 5개까지의 추가적인 어드레스 라인을 사용할 수 있으며, 따라서 32개의 뱅크까지 지원되는 것이다. 
추가적인 어드레스 신호로는 통상 i/o 포트가 이용되며 XDATA 영역에 매핑된 래치 또는 PIO 들을 이용해 별도의 하드웨어로 지정할 수 있다


'Etc > AVR' 카테고리의 다른 글

CMOS(Complementary Metal Oxide Semiconductor)  (0) 2013.09.23
Fan-out (팬아웃)  (0) 2013.09.23
퓨즈비트(fuse bit)  (0) 2013.09.23
USART 동작  (0) 2013.09.23
serial pin  (0) 2013.09.23