KR0159720B1 - 마이크로 컴퓨터의 프로그램영역 크기 확장회로 - Google Patents

마이크로 컴퓨터의 프로그램영역 크기 확장회로 Download PDF

Info

Publication number
KR0159720B1
KR0159720B1 KR1019960007417A KR19960007417A KR0159720B1 KR 0159720 B1 KR0159720 B1 KR 0159720B1 KR 1019960007417 A KR1019960007417 A KR 1019960007417A KR 19960007417 A KR19960007417 A KR 19960007417A KR 0159720 B1 KR0159720 B1 KR 0159720B1
Authority
KR
South Korea
Prior art keywords
microcomputer
rom
chip selection
routine
roms
Prior art date
Application number
KR1019960007417A
Other languages
English (en)
Other versions
KR970066858A (ko
Inventor
우원회
Original Assignee
김광호
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 김광호, 삼성전자주식회사 filed Critical 김광호
Priority to KR1019960007417A priority Critical patent/KR0159720B1/ko
Publication of KR970066858A publication Critical patent/KR970066858A/ko
Application granted granted Critical
Publication of KR0159720B1 publication Critical patent/KR0159720B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/262Arrangements for next microinstruction selection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/321Program or instruction counter, e.g. incrementing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microcomputers (AREA)

Abstract

1. 청구범위에 기재된 발명이 속한 기술분야
마이크로컴퓨터의 프로그램영역의 크기를 확장하기 위한 회로이다.
2. 발명이 해결하고자 하는 기술적 과제
기존의 마이크로컴퓨터를 그대로 사용하면서도 간단한 구성에 의해 프로그램영역의 크기를 신뢰성있게 확장한다.
3. 발명의 해결방법의 요지
서로 다른 다수의 기능수행루틴들을 두개의 롬에 나누어 저장하고, 마이크로컴퓨터가 프로그램 카운터를 롬들간에 이동 및 변경하여 기능수행루틴들을 선택적으로 수행한다.
4. 발명의 중요한 용도
마이크로컴퓨터의 프로그램영역 크기를 확장하는데 이용한다.

Description

마이크로컴퓨터의 프로그램영역 크기 확장회로
제1도는 종래의 회로도.
제2도는 본 발명에 따른 프로그램영역 크기 확장회로도.
제3도는 제2도의 제1, 제2롬(200,202)에 저장되는 프로그램과 칩선택 변경루틴의 메모리 맵 및 구성도.
제4도는 제2도의 각 부분의 동작 타이밍도.
본 발명은 마이크로컴퓨터(microcomputer: 이하 마이컴이라 함)의 프로그램영역의 크기를 변경하는 회로에 관한 것으로, 특히 프로그램(program)영역의 크기(size)를 확장하기 위한 회로에 관한 것이다.
일반적으로 마이컴 또는 중앙처리장치(Central Processing Unit: 이하 CPU라 함)는 제조업체가 규정한 최대 프로그램영역의 크기 이내에서만 사용할 수 있도록 되어 있다.
이를 마이컴인 경우에 종래의 회로도를 보인 제1도를 참조하여 설명하면 다음과 같다. 제1도에서 마이컴(100)은 범용 마이컴인 인텔(Intel)사의 P8032를 사용한 예이다. 마이컴(100)의 어드레스와 데이터가 다중화된 8비트의 어드레스/데이타 AD0∼AD7은 래치회로(102)에 연결되고, 어드레스/데이타 AD0∼AD7에 다중화된 8비트 어드레스 A0∼A7은 래치회로(102)에 의해 래치되어 롬(ROM: Read Only Memory)(104)과 램(RAM: Random Access Memory)(106)에 인가되며, 어드레스/데이타 AD0∼AD7에 다중화된 8비트 데이타 D0∼D7은 래치회로(102)를 거치지 않고 롬(104)과 램(106)에 직접 연결된다. 마이컴(100)의 상위 8비트 어드레스 A8∼A15는 롬(104)에 연결되고, 최상위 비트인 A15는 램(106)의 칩선택단자에도 연결되며, 나머지 7비트 어드레스 A8∼A14는 램(106)에 연결된다. 마이컴(100)의 출력단자은 롬(104)의 출력인에이블 단자에 연결되고, 마이컴(100)의 라이트신호단자, 리드신호단자는 램(106)의 라이트신호단자, 리드신호단자에 각각 대응되게 연결된다.
상기한 마이컴(100)의 프로그램은 롬(104)에 미리 저장되는데, 롬(104)은 예를 들어 EPROM(Erasable and Programmable ROM)을 사용한다. 이때 롬(104)의 칩선택단자는 접지되어 있어 항상 칩선택 인에이블(enable)상태를 유지한다. 램(106)은 SRAM(Static RAM)이 사용되며, 마이컴(100)의 프로그램 수행에 따른 각종 데이타를 저장한다. 그리고 마이컴(100)은 I/O(Input/Output)포트를 통해 주변장치들(도시하지 않았음)과 연결되며, 초기에 전원이 온될 때 리셋트단자 RESET에 인가되는 리셋트신호 POR에 응답하여 롬(104)의 프로그램에 따른 초기화동작을 수행한다.
상기한 제1도의 회로에 있어서 최대 프로그램 크기는 래치회로(102)를 통하여 얻어지는 어드레스 A0∼A7과 마이컴(100)으로부터 바로 출력되는 어드레스 A8∼A15에 의해 결정된다. 그러므로 최대 프로그램 크기는 216=64K바이트가 된다. 이때 마이컴(100)은 출력단자로부터 출력되는 신호가 로우일 때 어드레스 A0∼A15에 의해 지정된 저장영역에 저장되어 있는 명령의 데이터가 롬(104)으로부터 리드되어 데이타 D0∼D7로서 마이컴(100)에 인가된다. 그러면 마이컴(100)은 롬(104)으로부터 리드하는 명령을 해석하여 각종 처리를 수행하게 된다. 이때 롬(104)에 저장된 프로그램중 그 내용이 호출(call)이나 점프(jump)명령일 경우에는 0000H∼FFFFH의 어드레싱(addressing)영역에서만 동작이 가능하다. 이는 마이컴(100)의 최대 프로그램 크기가 전술한 바와 같이 64K바이트이기 때문이다.
이에 반하여 마이컴에 의해 제어되는 기기를 현재와 같이 C 언어(language)와 같은 고수준(high level)의 프로그램밍 언어를 사용하여 설계할 때 많은 기능을 구비하도록 할 경우에는 프로그램영역의 크기가 64K바이트를 넘게 되는 경우가 대부분이다. 이러한 경우 마이컴을 2개를 사용하든지 아니면 보다 상위 프로세서, 예를 들어 제1도와 같은 경우에는 P8032 대신에 16비트 마이크로 프로세서인 인텔사의 8086을 사용하여야만 한다.
상기한 바와 같이 종래에는 마이컴의 프로그램영역의 크기를 확장하기 위해서는 마이컴을 교체하거나 추가하여야 함으로써 하드웨어 구성이 복잡해질 뿐만 아니라, 그에 따라 원가가 상승되고 제품의 개발기간이 길어지며 시스템의 신뢰성 확보가 곤란해지는 문제점이 있었다.
따라서 본 발명의 목적은 기존의 마이컴을 그대로 사용하면서도 간단한 구성을 의해 프로그램영역의 크기를 신뢰성있게 확장할 수 있는 회로를 제공함에 있다.
상기한 목적을 달성하기 위한 본 발명은 서로 다른 다수의 기능수행루틴들을 두개의 롬에 나누어 저장하고, 마이컴이 프로그램 카운터(Program Counter: 이하 PC라 함)를 롬들간에 이동 및 변경하여 기능수행루틴들을 선택적으로 수행하는 것을 특징으로 한다.
이하 본 발명의 실시예를 첨부한 도면을 참조하여 상세히 설명한다. 하기 설명에서 구체적인 회로 구성, 동작 타이밍 등과 같은 많은 특정상세들이 본 발명의 보다 전반적인 이해를 제공하기 위해 나타나고 있다. 이들 특정 상세들 없이 본 발명이 실시될 수 있다는 것은 이 기술분야에서 통상의 지식을 가진 자에게 자명한 것이다. 그리고 본 발명의 요지를 흐릴 수 있는 공지 기능 및 구성에 대한 상세한 설명은 생략한다.
제2도는 본 발명에 따른 프로그램영역 크기 확장회로도를 도시한 것으로, 전술한 제1도에서와 마찬가지로 마이컴(100)은 범용의 마이컴인 인텔사의 P8032에 적용하는 예를 보인 것이며, 제1도에서와 동일한 구성요소에 대하여는 동일한 참조부호를 부여하였다. 상기 제2도에 보인 바와 같은 본 발명은 마이컴(100)을 채용한 제품에 있어서 마이컴(100)의 최대 프로그램영역 크기인 64K바이트를 초과하는 기능이 요구될 때 적용된다. 이와 같은 기능 프로그램을 서로 다른 다수의 기능수행루틴들로 나누어 제1, 제2롬(200,202)에 각각 저장한다. 이때 전술한 제1도의 롬(104)과 마찬가지로 EPROM이 사용될 수 있는 제1, 제2롬(200,202)에는 PC를 미리 설정된 칩선택 변경 시퀸스(sequence)에 의해 서로간에 이동 및 변경하기 위한 칩 선택 변경 루틴과 PC 변경루틴을 추가한다. 그러면 마이컴(100)은 칩선택 변경루틴과 PC 변경루틴에 따라 PC를 제1, 제2롬(200,202)간에 이동 및 변경하여 제1, 제2롬(200,202)의 기능수행루틴들을 선택적으로 수행하도록 한다.
상기한 바와 같은 본 발명에 따라 제1,제2롬(200,202)에 저장되는 프로그램과 칩선택 변경루틴의 메모리 맵(map) 및 구성예를 제3도로서 보였다.
먼저 제1롬(200)의 어드레싱영역인 0000H∼FFFFH에 저장되는 프로그램의 메모리 맵 및 구성을 보인 제3도(A)를 살펴본다. 제1롬(200)에는 점프 초기화루틴명령(300a)과, 인터럽트 벡터(interrupt vector) 어드레스(302a)와, 인터럽트 벡터 실행루틴(304a)과, 초기화루틴(306a)과, 제1칩선택 변경루틴(308a)과, PC 변경루틴(310a)과, 제2칩선택 변경루틴(312a)과, PC 변경루틴(314a)과, 기능수행루틴(316a)이 어드레스 0000H부터 FFFFH까지 순차적으로 저장된다. 제3도(A)에는 상기한 명령과 루틴들이 저장되는 영역을 어드레스를 기입하여 구분하였으나, 각각의 어드레스는 예를 든 것으로 실제로는 그 내용에 따라 달라질 수 있다.
제1롬(200)의 초기 어드레스 0000H∼0002H의 3바이트 점프 초기화루틴명령(300a)은 전원이 온될 때 마이컴(100)이 초기화루틴(306a)으로 점프하여 초기화동작을 수행하도록 하는 명령이다. 어드레스 0003H부터 시작되는 인터럽트 백터 어드레스(302a) 및 인터럽트 벡터 실행루틴(304a)과, 어드레스 0050H부터 시작되는 초기화루틴(306a)과, PC 변경루틴(310a, 314a)은 통상적인 루틴들이다. 인터럽트 벡터 어드레스(302a)는 각 인터럽트에 대하여 인터럽트 벡터 실행루틴(304a) 중에 대응하는 하나의 인터럽트 벡터 실행루틴을 가리키는 어드레스이고, 인터럽트 벡터 실행루틴(304a)은 각 인터럽트에 해당하는 동작을 수행하기 위한 루틴이다. 초기화루틴(306a)은 마이컴(100)의 초기화 동작을 위한 루틴이고, PC 변경루틴(310a, 314a)은 마이컴(100)의 프로그램 수행에 따라 PC를 변경하기 위한 루틴이다. 각각 어드레스 0100H,0200H부터 시작되는 제1,제2칩선택 변경루틴(308a,312a)은 마이컴(100)의 PC를 미리 설정된 칩선택 변경 시퀀스에 의해 서로간에 이동하기 위한 루틴이다. 기능수행루틴(316a)은 상기한 바와 같이 마이컴(100)을 채용한 제품에서 실제 요구되는 기능을 수행하기 위한 루틴이다.
다음에 제2롬(202)의 어드레싱영역인 0000H∼FFFFH에 저장되는 프로그램의 메모리 맵 및 구성을 보인 제3도(B)를 살펴본다. 제2롬(202)에는 점프 초기화루틴명령(300b)과, 인터럽트 벡터 어드레스(302b)와, 인터럽트 벡터 실행루틴(304b)과, 초기화루틴(306b)과, 제1칩선택 변경루틴(308b)과, PC 변경루틴(310b)과, 제2칩선택 변경루틴(312b)과, PC 변경루틴(314b)과, 기능수행루틴(316b)이 어드레스 0000H부터 FFFFH까지 순차적으로 저장된다. 제3도(B)에서도 상기한 제3도(A)와 마찬가지로 상기한 명령과 루틴들이 저장되는 영역의 어드레스를 예를 들어 기입하였다. 상기한 제3도(B)에서 기능수행루틴(316b)을 제외한 나머지 명령 및 루틴들은 상기한 제3도(A)에서 기능수행루틴(316a)를 제외한 나머지 명령 및 루틴들중 대응하는 루틴과 각각 서로 동일한 내용을 가진다. 제3도(A), (B)간에 서로 대응하는 명령 및 루틴들은 제1, 제2롬(200,202)에 서로 동일한 어드레스영역에 저장된다.
상기 제3도(A), (B)의 예와 같이 인터럽트 벡터 어드레스(302a, 302b)와 인터럽트 벡터 실행루틴(304a, 304b)의 내용을 제1, 제2롬(200,202)간에 동일하게 하여 어떠한 롬에서도 인터럽트를 수행할 수 있도록 구성함으로써 더욱 효율적으로 프로그램을 할 수 있게 된다.
한편 상기한 제3도(A), (B)의 제1칩선택 변경루틴(308a, 308b)은 제3도(C)로서 보인 바와 같은 동일한 명령으로 이루어지고, 제2칩선택 변경루틴(312a, 312b)은 제3도(D)로서 보인 바와 같은 동일한 명령으로 이루어진다. 제1칩선택 변경루틴(308a, 308b)는 제1, 제2롬(200,202) 중에 초기 설정 롬으로부터 다른 롬으로 칩선택을 변경하는 루틴으로서, 순차적인 명령들 NOP, NOP, CLR P1.0, NOP, NOP, NOP, CLR P1.1, NOP, NOP, NOP로 이루어지는 칩선택 변경 시퀀스이다. 제2칩선택 변경루틴(312a, 312b)은 제1칩선택 변경루틴(308a, 308b)에 의해 칩선택 인에이블된 롬으로부터 초기 설정 롬으로 칩선택을 다시 변경하여 복귀시키는 루틴으로서, 순차적인 명령들 NOP, NOP, SET P1.1, NOP, NOP, NOP, SET P1.0, NOP, NOP, NOP로 이루어지는 칩선택 변경 시퀀스이다. 상기한 제3도(C), (D)의 명령들중 NOP는 통상적인 무동작(no operation) 명령이다. CLR P1.0과 CLR P1.1은 각각 마이컴(100)의 출력단자 P1.0, P1.1을 로우로 클리어하는 명령이다. SET P1.0과 SET P1.1은 각각 마이컴(100)의 출력단자 P1.0, P1.1을 하이로 셋트하는 명령이다.
이제 다시 제2도를 참조하면, 마이컴(100)의 어드레스/데이타 AD0∼AD7은 래치회로(102)에 연결되고, 어드레스/데이타 AD0∼AD7에 다중화된 8비트 어드레스 A0∼A7은 래치회로(102)에 의해 래치되어 제1, 제2롬(200,202)과 램(106)에 공통으로 인가되며, 어드레스/데이타 AD0∼AD7에 다중화된 8비트 데이타 D0∼D7은 래치회로(102)로 거치지 않고 제1, 제2롬(200,202)과 램(106)에 직접 연결된다. 마이컴(100)의 상위 8비트 어드레스 A8∼A15는 제1, 제2롬(200,202)에 공통으로 연결되고, 최상위 비트인 A15는 램(106)의 칩선택단자에도 연결되며, 나머지 7비트 어드레스 A8∼A14는 램(106)에 연결된다. 마이컴(100)의 출력단자은 롬(104)의 출력인에이블단자에 연결되고, 마이컴(100)의 라이트신호단자, 리드신호단자는 램(106)의 라이트신호단자, 리드신호단자에 각각 대응되게 연결된다.
그리고 전술한 제1도에서는 하나의 롬(104)만을 사용함에 따라 롬(104)의 칩선택단자를 접지시켜 항상 칩선택 인에이블상태를 유지시켰으나, 본 발명은 서로 동일한 어드레스를 가지는 두개의 롬을 사용함에 따라 마이컴(100)의 출력단자를 이용하여 제1, 제2롬(200,202)의 칩선택단자를 선택적으로 제어할 수 있도록 한다. 이에 따라 마이컴(100)의 출력단자 P1.0은 제1롬(200)의 칩선택단자에 연결하고 마이컴(100)의 출력단자 P1.1은 인버터(204)를 거쳐 제2롬(202)의 칩선택단자에 연결한다. 인버터(204)는 마이컴(100)의 초기화동작시 제2롬(202)을 초기 설정롬으로 선택하기 위해 사용한 것이다. 즉, 리셋트시 마이컴(100)의 출력단자 P1.0, P1.1는 모두 하이상태가 되므로, 출력단자 P1.1의 하이를 인버터(204)에 의해 반전시켜 제2롬(202)의 칩선택단자에 인가하는 것이다. 이에 따라 전원이 온될 때 제2롬(202)가 디폴트(default)로 초기설정 롬으로 선택됨으로써 마이컴(100)은 제2롬(202)의 프로그램을 수행하게 된다. 물론 인버터(204)를 마이컴(100)의 출력단자 P1.0과 제1롬(200)의 칩선택단자사이에 접속하여 제1롬(200)을 초기 설정 롬으로 선택하도록 하여도 된다. 이러한 경우 제3도(C), (D)의 칩선택 변경 시퀀스도 이에 대응되게 바꾸어야 한다.
상기한 바와 같은 본 발명에 있어서 마이컴(100)의 PC가 필요에 따라 제1, 제2롬(200,202)간에 이동되어져 각 롬에 서로 다른 내용으로 프로그램되어 있는 기능수행루틴에 기능을 선택적으로 수행하게 된다. 즉, PC가 제1롬(200)에서 제2롬(202)으로, 다시 제2롬(202)에서 제1롬(200)으로 이동되어지게 되는 것이다.
이를 제2도의 각 부분의 동작 타이밍도를 보인 제4도를 참조하여 보다 상세히 설명하면 다음과 같다.
제2도의 회로에 전원이 처음 인가될 때, 제4도(A)와 같은 리셋트신호 POR가 마이컴(100)의 리셋트단자 RESET에 인가된다. 이때 리셋트신호 POR가 로우가 되는 제4도의 t1시점에서 마이컴(100)의 출력단자 P1.1은 제4도(B)와 같이 하이상태가 된다. 그러므로 인버터(204)로부터 제2롬(202)의 칩선택단자에는 제4도(C)와 같은 로우가 인가된다. 이에 따라 제2롬(202)이 칩선택되어 인에이블됨으로써 제2롬(202)에 저장되어 있는 제3도(B)와 같은 프로그램 내용에 따라 마이컴(100)이 동작을 개시한다. 이때 제4도의 t1시점에서 마이컴(100)의 출력단자 P1.0은 제4도(D)와 같이 하이로서 제1롬(200)의 칩선택단자에 인가되므로 제1롬(200)은 칩선택되지 않고 디제이블(disable)된다.
상기 제4도의 t1시점 바로 이후 PC는 어드레스 0000H이다. 이에 따라 제3도(B)와 같은 제2롬(202)의 어드레스 0000H에 있는 점프 초기화루틴명령에 따라 PC가 어드레스 0050H에 이르게 됨으로써 마이컴(100)은 초기화루틴(306b)에 따른 각종 초기화 동작을 수행하게 된다. 마이컴(100)은 상기와 같은 초기화동작 종료후 기능수행루틴(316b)으로 점프하여 특정 기능을 수행하게 된다.
상기와 같이 기능수행루틴(316b)을 수행하는 중에 제1롬(200)의 기능수행루틴(316b)을 수행하여야 할 경우, 제1칩선택 변경루틴(308b)으로 가면 PC는 어드레스 0100H로 바뀌어 칩선택 변경 시퀀스에 따른 명령을 수행하게 된다. 이때 NOP, 즉 무동작후 CLR P1.0을 수행하면, 제4도의 t2시점과 같이 제1롬(200)의 칩선택단자에 인가되는 마이컴(100)의 출력단자 P1.0의 상태는 로우가 된다. 이에 따라 제1롬(200)도 칩선택됨으로써 t3시점까지 제1, 제2롬(200, 202)이 동시에 칩선택되며, 각 롬에 저장되어 있는 프로그램을 마이컴(100)이 리드하여 다음 명령을 수행할 수 있게 된다.
이때 제4도(D)와 같이 마이컴(100)의 출력단자 P1.0이 하이에서 로우로 변경되는 시점과 마이컴(100)이 명령을 리드하는 시점간의 차이가 있을 수 있다. 그러나 아직까지 제2롬(202)의 칩선택단자가 로우이고 제1, 제2롬(200,202)의 제1칩선택 변경루틴(308a, 308b)은 동일 명령으로 되어 있기 때문에 출력되는 데이타는 논리곱되어 하나의 롬에서 출력되는 것과 동일한 데이타, 즉 NOP명령의 데이타 0가 마이컴(100)으로 인가된다.
이후 제1칩선택 변경루틴(308b)의 CLR P1.1을 만날때까지, 즉 제4도의 t3시점까지는 제4도의 Ta구간과 같이 두개의 제1, 제2롬(200,202)이 동시에 칩선택되며 3개의 NOP명령의 기간동안 유지된다. 그리고 제4도의 t3시점 이후에는 마이컴(100)의 출력단자 P1.1의 제4도(B)와 같은 상태에 의해 제4도(C)와 같이 하이가 제2롬(202)의 칩선택단자에 인가되어 제2롬(202)은 칩선택이 디제이블되고, 제4도(D)와 같은 마이컴(100)의 출력단자 P1.0의 로우가 제1롬(200)의 칩선택단자에 인가되어 제1롬(200)만 칩선택된다. 이러한 상태에서 PC 변경루틴(310b)에 의해 상기한 기능수행루틴(316b)의 수행중에 요구된 기능수행루틴(316a)으로 PC가 변경된다. 이때 마이컴(100)은 램(106) 또는 마이컴(100)내의 레지스터를 이용하여 제1, 제2롬(200,202)중에 현재 프로그램 수행중인 롬을 상태 플래그(flag)로서 표시해 놓음으로써 제1, 제2롬(200,202)간에 PC를 이동한다. 즉, 상태 플래그 참조에 의해 제2롬(202)으로부터 현재 프로그램 수행중인 아닌 제1롬(200)으로 마이컴(100)의 제어가 넘어가게 된다.
따라서 마이컴(100)이 제2롬(202)의 프로그램을 수행하다가 제1롬(200)의 기능수행루틴(316a)을 수행할 수 있게 된다.
상기한 바와 같이 마이컴(100)이 제1롬(200)의 프로그램을 수행하는 중에 다시 제2롬(202)에 있는 기능수행루틴(316b)로 가기 위해서는 제3도(A)의 제2칩선택 변경루틴(312a)으로 점프한다. 그러면 상기한 제1칩선택 변경루틴(308b)과 반대로 SET P1.1과 SET P1.0을 순차적으로 만나며 제1롬(200)에서 제2롬(202)로 PC가 이동되어 제어가 넘어간다. 이때 제4도의 t4시점에서 t5시점까지의 구간 Tb동안 제1, 제2롬(200,202)이 동시에 함께 칩선택되고, t5시점 이후에는 제2롬(202)만이 칩선택 인에이블된다.
따라서 두개의 제1, 제2롬(200,202)에 서로 다른 기능수행루틴을 저장시킨 후 두개의 롬간에 마이컴의 제어를 이동함으로써 마이컴의 제조업체에서 규정한 프로그램영역의 크기를 넘는 시스템을 구성할 수 있게 된다.
상술한 바와 같이 본 발명은 기존의 마이컴을 변경하거나 추가하지 않고 단지 롬을 추가로 사용하여 프로그램영역 크기를 확장하는 회로로서, 간단한 구성으로 프로그램영역의 크기를 신뢰성있게 확장할 수 있는 잇점이 있다.
한편 상술한 본 발명의 설명에서는 구체적인 실시예에 관해 설명하였으나 여러가지 변형이 본 발명의 범위에서 벗어나지 않고 실시할 수 있다. 특히 본 발명의 실시예에서는 두개의 롬을 사용하여 프로그램영역의 크기를 확장하는 예를 들었으나, 여러개의 마이컴 포트들을 이용하여 여러개의 롬을 연결하여 사용하면 마이컴 제조업체가 규정한 프로그램영역 크기를 몇 배로 확장하여 사용할 수 있게 된다.
또한 64K바이트 용량의 롬 대신에 128K바이트 용량의 롬을 사용하는 경우에는 어드레스 A16를 하이에서 로우로 변경하는 프로그램을 추가하여 128K바이트중 상위 64K바이트와 하위 64K바이트중 하나를 지정하고, 상위 64K바이트와 하위 64K바이트의 동일 어드레스에 입력하며 기타 기능 프로그램들을 그외의 영역에 저장하여 사용하면 된다. 즉, 이러한 경우에는 하나의 롬을 두개의 서로 동일한 크기의 영역으로 분할하여 본 발명의 실시예서와 같이 사용하면 된다.
그리고 본 발명을 마이컴에 적용하는 예를 보였으나, CPU나 마이크로 프로세서인 경우에도 마찬가지로 적용된다.
따라서 발명의 범위는 설명된 실시예에 의하여 정할 것이 아니고 특허청구의 범위와 특허청구의 범위의 균등한 것에 의해 정하여져야 한다.

Claims (6)

  1. 마이크로컴퓨터의 프로그램영역 크기 확장회로에 있어서, 프로그램 카운터를 미리 설정된 칩선택 변경 시퀀스에 의해 서로간에 이동 및 변경하기 위한 칩선택 변경루틴과 프로그램 카운터 변경루틴을 각각 서로 동일한 어드레스영역에 동일한 내용으로 저장하며, 서로 다른 기능수행루틴을 각각 저장하는 두개의 롬과, 상기 프로그램 카운터를 상기 칩선택 변경루틴에 따른 상기 롬들에 대한 칩선택 변경에 의해 상기 롬들간에 이동하고 상기 프로그램 카운터 변경루틴에 따라 변경하여 상기 기능수행루틴들을 선택적으로 수행하는 마이크로컴퓨터를 구비하는 것을 특징으로 하는 프로그램영역 크기 확장회로.
  2. 제1항에 있어서, 상기 롬들 중에 초기 설정된 하나의 롬과 상기 마이크로컴퓨터의 출력단자 사이에 접속되며, 상기 마이크로컴퓨터의 초기화동작시 상기 초기 설정 롬만을 칩선택 인에이블시키는 칩선택 설정수단을 더 구비하는 것을 특징으로 하는 프로그램영역 크기 확장회로.
  3. 제2항에 있어서, 상기 마이크로컴퓨터가, 상기 롬들간에 상기 프로그램 카운터를 이동할 때 상기 롬들의 칩선택을 동시에 인에이블시켜 일정기간 유지한 후, 상기 초기 설정 롬의 칩선택을 디제이블시키고 다음 수행할 기능수행루틴을 저장하고 있는 롬만을 칩선택 인에이블시키는 것을 특징으로 하는 프로그램영역 크기 확장회로.
  4. 제1항 또는 제3항에 있어서, 상기 롬들이, 인터럽트 벡터 어드레스와 인터럽트 벡터 실행루틴과 초기화루틴을 서로간에 동일한 내용으로 동일한 어드레스 영역에 각각 저장하는 것을 특징으로 하는 프로그램영역크기 확장회로.
  5. 제4항에 있어서, 상기 칩선택 변경루틴이, 상기 초기 설정 롬으로부터 다른 롬으로 칩선택을 변경하는 제1칩선택 변경루틴과, 상기 제1칩선택 변경루틴에 의해 칩선택 인에이블된 롬으로부터 상기 초기 설정 롬으로 칩선택을 변경하여 복귀시키는 제2칩선택 변경루틴으로 이루어지는 것을 특징으로 하는 프로그램영역 크기 확장회로.
  6. 제5항에 있어서, 상기 롬들이 하나의 롬을 두개의 서로 동일한 크기의 영역으로 분할하여 설정한 것을 특징으로 하는 프로그램영역 크기 확장회로.
KR1019960007417A 1996-03-19 1996-03-19 마이크로 컴퓨터의 프로그램영역 크기 확장회로 KR0159720B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019960007417A KR0159720B1 (ko) 1996-03-19 1996-03-19 마이크로 컴퓨터의 프로그램영역 크기 확장회로

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960007417A KR0159720B1 (ko) 1996-03-19 1996-03-19 마이크로 컴퓨터의 프로그램영역 크기 확장회로

Publications (2)

Publication Number Publication Date
KR970066858A KR970066858A (ko) 1997-10-13
KR0159720B1 true KR0159720B1 (ko) 1998-12-15

Family

ID=19453450

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960007417A KR0159720B1 (ko) 1996-03-19 1996-03-19 마이크로 컴퓨터의 프로그램영역 크기 확장회로

Country Status (1)

Country Link
KR (1) KR0159720B1 (ko)

Also Published As

Publication number Publication date
KR970066858A (ko) 1997-10-13

Similar Documents

Publication Publication Date Title
US4672534A (en) Integrated circuit device incorporating a data processing unit and a ROM storing applications program therein
US6480948B1 (en) Configurable system memory map
US20030056071A1 (en) Adaptable boot loader
JPH0221018B2 (ko)
US4164786A (en) Apparatus for expanding memory size and direct memory addressing capabilities of digital computer means
KR100272937B1 (ko) 마이크로프로세서및멀티프로세서시스템
EP0697663A2 (en) Apparatus and method for computerprocessing using an enhanced harvard architecture
EP0330226B1 (en) Apparatus of and method for executing subprogram in bank switching data processing system
US4729091A (en) Directing storage requests prior to address comparator initialization with a reference address range
GB2024475A (en) Memory access controller
US5127096A (en) Information processor operative both in direct mapping and in bank mapping, and the method of switching the mapping schemes
KR950012516B1 (ko) 마이크로컴퓨터
KR100223844B1 (ko) 옵션 자동 설정 회로
KR0159720B1 (ko) 마이크로 컴퓨터의 프로그램영역 크기 확장회로
JP3032207B2 (ja) マイクロ・コンピュータ
KR930006516B1 (ko) 데이타 처리시스템
US5291603A (en) Microprocessor system with multiple interrupts masked for use in electronic control or monitoring of various solid-state products
EP0503498A2 (en) Single-chip microcomputer with program/data memory flag
KR0128157Y1 (ko) Plc의 프로그램 로더
JP3223160B2 (ja) マイクロコンピュータ
WO1996008763A2 (en) Method, apparatus and instruction for performing a double jump register indirect operation transfer in a microcontroller
JPH02125333A (ja) プログラムメモリ
JPH07244610A (ja) 情報処理装置
JPH04324566A (ja) マルチプロセッサシステムのメモリマップ切換制御方式
JPS63257044A (ja) プログラマブルメモリマツピング方式

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20030730

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee