KR20000048754A - 마이크로프로세서 및 스택 메모리를 갖는 회로장치 - Google Patents

마이크로프로세서 및 스택 메모리를 갖는 회로장치 Download PDF

Info

Publication number
KR20000048754A
KR20000048754A KR1019990702740A KR19997002740A KR20000048754A KR 20000048754 A KR20000048754 A KR 20000048754A KR 1019990702740 A KR1019990702740 A KR 1019990702740A KR 19997002740 A KR19997002740 A KR 19997002740A KR 20000048754 A KR20000048754 A KR 20000048754A
Authority
KR
South Korea
Prior art keywords
memory
register
stack
logical address
address space
Prior art date
Application number
KR1019990702740A
Other languages
English (en)
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 칼 하인쯔 호르닝어
Publication of KR20000048754A publication Critical patent/KR20000048754A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0615Address space extension
    • G06F12/0623Address space extension for memory modules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Microcomputers (AREA)

Abstract

주소 출력(2)을 통해 직접적으로 주소지정가능한 논리 주소 범위(3)을 갖는 마이크로프로세서가 개시되었다. 푸시다운(4)은 적어도 부분적으로 논리 주소 범위(3) 외부에 위치된다. 논리 주소 범위(3)에 남아 있는 작업 저장장소(10)는 최대화될 수 있다.

Description

마이크로프로세서 및 스택 메모리를 갖는 회로장치 {CIRCUIT WITH A MICROPROCESSOR AND A PUSHDOWN STORAGE}
마이크로프로세서는 이에 의해 실행되어야 할 프로그램을 프로세싱하기 위해 스택 메모리를 필요로 한다. 프로그램의 처리 동안, 프로세서가 예로서 부프로그램을 호출하는 경우에, 연속적인 프로그램 명령어 비트를 단순히 처리할 필요가 없을 때 마다, 스택 메모리("스택"으로서도 참조됨)는 부프로그램 점프가 이루어 진 동일한 지점에서 프로그램을 계속 진행하기 위해, 부프로그램을 완료한 후 점프 백하는 복귀 점프 주소를 수용하는 역할을 한다. 스택 메모리를 관리하기 위해, 스택 메모리로의 최종 입력 엔트리의 주소를 포함하는 스택 포인터가 있으며 이것은 새로운 엔트리가 스택 포인터에 입력되는 이벤트에 대응하여 증가된다. 복귀 점프 주소외에, 스택 메모리에 변수를 저장하는 것도 일반적이다.
프로세서에 의해 처리되어야 할 프로그램은 상기 목적을 위해 일반적으로 RAM에 의해 구현되는 작업 메모리내에 로딩된다. 작업 메모리는 이 경우에 프로세서로부터의 주소 출력을 통해 직접 주소지정될 수 있는 논리 주소 공간에 위치된다.
상기 논리 주소 공간에 스택 메모리를 배열하는 것도 일반적이다. 이것은 스택 메모리 및 작업 메모리가 이용가능한 논리 주소 공간을 공유하는 결과로 되며, 그 사이즈는 프로세서의 주소 출력의 수에 의해 한정된다. 예로서, 8051 마이크로컨트롤러와 같은 경우에 이용할 수 있는 단지 8개 주소 출력의 경우에, 컨트롤러로 부터의 주소 출력을 통해 직접 주소지정될 수 있는 논리 주소 공간은 그 크기가 단지 256 바이트이다. 스택 메모리의 사이즈는 처리되어야 할 프로그램의 복잡도와 제공되어야 할 서브프로그램 호출의 최대 갯수에 좌우된다. 스택 메모리의 사이즈는 처리되어야 할 프로그램의 프로그램 유형에 직접 좌우된다. 그러나, 마이크로프로세서의 제조시에 어떤 유형의 소프트웨어가 궁극적으로 그것에 의해 처리되어야 하는 것으로 의도되는 지가 알려져 있지 않다. 스택 메모리는 따라서 일반적으로 큰 크기로 되고, 따라서 복잡한 프로그램도 이 프로세서에 처리될 수 있게된다. 그러나, 그렇게 정교하지 않은 대다수의 응용의 경우에, 스택 메모리는 과도하게 큰 크기로 된다.
대체로, 스택 메모리는 마이크로프로세서의 논리 주소 공간의 상부 주소 영역에 배열된다. 이를 위해, 스택 포인터는 프로세서의 초기화 또는 명령화 동안 스택 메모리의 최하위 주소로 미리 설정된다. 데이터가 후속하여 스택 메모리에 저장된다면, 스택 포인터는 적절하게 증대된다. 프로세서의 작업 메모리를 위해, 논리 주소 공간의 맨처음부터 스택 메모리의 시작부까지의 공간 영역만이 논리 주소 공간 내부에서 이용가능하다. 상기한 8051 마이크로컨트롤러 프로세서와 같은 경우에, 단지 256 바이트의 논리 주소 공간을 가지며, 스택 메모리의 사이즈가 64 바이트인 경우에, 예로서 단지 작업 메모리를 위해 192 바이트가 있다. 작업 메모리의 나머지 사이즈는 프로그래머의 구성 선택사항 및 프로세서에 의해 처리될 수 있는 프로그램 속도에 대해 결정적이다.
본 발명은 주소 출력을 통해 직접 주소지정될 수 있는 논리 주소 공간을 갖는 마이크로프로세서에 관한 것이다.
도 1은 본 발명의 대표적 실시예를 나타낸 도.
도 2는 도 1의 상세사항을 나타낸 도.
본 발명은 그 주소출력을 통해 프로세서에 의해 직접 주소지정될 수 있는 논리 주소 공간의 최대 가능영역이 작업 메모리를 위해 이용가능하며, 논리 주소 공간의 최소 가능 부분이 스택 메모리에 의해 점유되는 마이크로프로세서를 위한 스택 메모리와 마이크로프로세서를 갖는 회로장치를 제공하는 목적을 기초로 한다.
이 목적은 청구항 1에 따른 회로장치에 의해 달성된다. 본 발명에 따라, 마이크로프로세서의 직접 주소지정가능한 논리 주소 공간 외부에 스택 메모리의 적어도 일부분을 배열하도록 구성된다.
스택 메모리가 각각이 동일한 메모리 영역으로 부분할며, 이것은 단지 하나만이 직접적으로 주소지정가능한 논리 주소 공간에 배열되는 방식으로 매우 간명한 방식으로 달성될 수 있다. 이것은 마이크로프로세서의 주소출력을 통해 직접 논리 주소 공간에 배치된 메모리 영역중의 하나를 주소지정하는 단순한 방식으로 가능하고, 반면에 스택 메모리의 나머지 메모리 영역을 주소지정하기 위해, 특정 논리가 필요하며, 이것은 상이한 메모리 영역 사이에 스위칭을 보장한다.
따라서 회로장치가 메모리 영역중의 하나를 선택하기 위한 정보 아이템이 저장될 수 있는 제 1 레지스터 및, 각각 선택된 메모리 영역에 포함된 메모리 유닛을 선택하기 위한 정보 아이템이 저장될 수 있는 제 2 레지스터를 갖는다면 특히 유익하다. 유익하게, 제 2 레지스터는 종래의 스택 포인터에 대응할 수 있다. 각각의 메모리 영역의 메모리 유닛은 각각 하나의 데이터 워드를 수용하는 데 사용될 수 있다. 만일 각각의 메모리 영역에서 각각의 경우에 스택 메모리에 또는 제 2 레지스터에 저장될 수 있는 동일한 주소를 갖는 하나의 메모리가 있다면 유익하다. 각각의 경우에 동일한 주소를 갖는 이들 메모리 유닛은 제 1 레지스터와 선택 레지스터의 내용에 의해 결정되고 이에의해 대응하는 메모리 영역의 내용에 의해 컨디셔닝된다.
본 발명의 대표적 실시예의 동작모드는 다음과 같다. 회로장치가 명령화되었을 때, 제 1 메모리 영역의 선택을 위한 정보는 제 1 레지스터에 저장된다. 스택 메모리를 채울 때, 대응하는 데이터(복귀 점프 주소 또는 변수)는 제 1 메모리 영역의 메모리 유닛에서 서로에 대해 맨처음에 저장된다. 이 경우에, 제 2 레지스터와 스택 포인터의 내용은 대응하여 증대된다. 제 1 메모리 영역의 모든 메모리 유닛이 데이터에 의해 점유될 때, 제 1 레지스터의 내용은 증대되어 제 2 메모리 영역이 선택된다. 결과적으로, 제 2 레지스터의 내용을 통해, 그 메모리 유닛은 필요한 데이터에 의해 채워진다.
상당한 노력없이, 그리고 마이크로프로세서와 이에 대응하는 스택 메모리에 의해 나타난 종래의 회로장치에 약간의 변경을 가하므로써, 본 발명은 논리 주소 공간의 최대 가능 부분이 마이크로프로세서의 작업 메모리에 대해 이용가능할 수 있도록 하기 위해, 논리 주소 공간의 스택 메모리의 최소 가능부분을 배열하므로써 가능할 수 있게 하며, 큰 스택 메모리를 임의로 동시에 구현가능하게 하며, 이것의 최대부분은 논리 주소 공간의 외부에 배열된다. 개괄된 대표적 실시예의 경우에, 상기 두 목적은, 메모리 영역당 메모리 유닛의 갯수가 가능한한 적도록 선택되고, 스택 메모리의 메모리 영역의 갯수가 가능한한 크도록 선택된다는 점에서, 특히 간단하게 달성될 수 있다.
본 발명의 개량은 스택 메모리에 또는 이로부터 데이터를 기입하거나 판독할 때 스택 메모리의 한계를 초과하는 지를 검출하는 역할을 하는 검출수단을 갖는 회로장치를 제공하는 것이다. 스택 메모리의 상한 또는 하한을 초과하는 이벤트가 검출수단으로부터의 결과신호에 좌우되어, 스택 메모리의 적어도 일부분을 비우는 수행이 동시에 이루어 진다면, 방지되어야 할 스택 메모리의 오버플로우 또는 언더플로우의 결과에 의한 오기능도 가능하다.
검출수단으로부터의 결과 신호에 의해, 인터럽트를 트리거링시키는 것이 가능하며, 이 결과로 프로세서는 현재 위치에서 각각의 프로그램의 프로세싱을 트리거링시키며 다른 소정 프로그램 주소로 점프한다. 프로세싱되어야 할 프로그램 명령어는 최종 시작된 부프로그램을 강제로 종료시키므로써 스택 메모리를 비우는 효과를 달성할 수 있다. 부프로그램의 프로세싱을 방지하므로써 스택 메모리를 비우기 위한 대안 실시예에서, 프로세서에 의해 직접 주소지정가능한 주소공간 외부의 메모리로 또는 작업 메모리와 같은 추가의 메모리 영역에 적어도 부분적으로 스택 메모리의 내용을 변위시키는 것이 가능하고, 이 변위는 적어도 일시적으로 발생한다. 이것은 소망하는 지점으로 변위되어야 할 데이터를 복사하는 수단에 의해 달성된다.
검출수단으로부터의 결과신호에 기초하여 스택 메모리를 비우는 대안으로서 또는 이에 추가하여, 적절한 에러 메시지가 인터럽트에 발생된다면 바람직하고, 이 메시지는 스택 메모리의 오작동을 프로세서의 사용자에게 지시한다.
스택 메모리의 상한을 초과하는 것을 방지하기 위해, 회로장치가 따라서 검출수단에 의해, 제 1 레지스터의 내용을 갖는 제 3 레지스터의 내용을 비교하므로써, 다수의 메모리 영역이 저장되도록 제 3 레지스터를 갖는 것이 특히 바람직하며, 여기서 각각의 선택된 메모리 영역이 저장되고, 스택 메모리의 오버플로우가 검출될 수 있다.
본 발명은 첨부도면을 참조하여 하기에서 더욱 상세히 설명된다.
도 1은 대응하는 주소 디코더(20)를 통해 논리 주소 공간(3)을 주소지정하는 제한된 수의 주소 출력(2)을 갖는 마이크로프로세서(1)를 나타낸다. 이 실시예의 경우에 마이크로프로세서(1)는 8개 주소 출력(2)을 갖는 것으로 가정된다. 예로서, 이것은 마이크로프로세서(1)가 8051 유형 마이크로컨트롤러인 경우이다. 논리 주소 공간(3)내부의 메모리 유닛의 2진 주소는 도 1로부터 마찬가지로 취할 수 있다. 논리 주소 공간의 최하위 주소는 0000 0000 이다. 최상위 주소는 1111 1111 이다. 메모리 유닛은 각각의 경우에 일 이상의 바이트 사이즈를 갖는 데이터 워드일 수 있다. 메모리 유닛은 일 바이트 사이즈를 갖는 것으로 가정된다. 그후 8개 주소 출력(2)을 통해 디코더(20)에 의해 256 바이트를 주소지정할 수 있다.
도 1의 실시예의 경우에, 4개의 동일한 크기의 메모리 영역(5)으로 부분할되는 스택 메모리(4)가 있다. 각각의 메모리 영역(5)은 개별적으로 주소지정가능한 메모리 유닛(9)으로 부분할된다. 각각의 메모리 영역(5)의 메모리 유닛(9)은 각각의 경우에 프로세서(1)의 주소출력(2)에 인가된 동일 주소를 통해 주소지정가능하다. 이들은 논리 주소 공간(3)의 상위 영역에서 16 비트에 대응하고, 주소 1111 0000 과 1111 1111 사이에 있다.
각각 동일한 주소로 메모리 유닛(9)중의 하나를 선택하는 것은 제 2 디코더(30)를 통해 수행된다. 메모리 영역(5)중의 하나를 선택하기 위한 주소, 또는 제 1 레지스터(6)에 저장될 수 있는 정보 비트에 기초하여, 메모리 영역(5)중의 하나는 제 2 디코더(30)를 통해 선택될 수 있다. 따라서, 프로세서(1)의 주소출력(2)에 스택 메모리(4)에 할당된, 논리 주소 공간(3)의 주소가 존재한다면, 대응하는 주소를 갖춘 메모리 유닛이 선택되는 메모리 영역(5)의 제 1 레지스터(6) 및 제 2 디코더(30)에 의해 수립된다. 프로세서(1)에 의해 주소지정된 5와 같은 메모리 영역내의 메모리 유닛(9)은 종래의 스택 포인터에 대응하는 제 2 레지스터(7)에 의해 결정된다.
지금까지 논리 주소 공간(3) 내에 전체 스택 메모리(4)를 배열하는 것이 일반적이었다. 도시된 실시예에서, 스택 메모리(4)는 각각이 16 바이트를 갖는 4 개의 메모리 영역(5) 즉 전체 64 바이트를 포함하며, 전체 스택 메모리(4)를 논리 주소 공간(3) 내에 배열하는 이벤트의 경우에, 프로세서(1)의 작업 메모리(10)에 대해 남겨진 256 - 64 = 192 바이트만이 남는다. 본 발명에 의해, 도 1에 도시된 바와 같이, 256 - 16 = 240 바이트 사이즈인 작업 메모리(10)에 유익하게 도달된다. 메모리 영역(5)내에서 메모리 유닛(9)의 상이한 선택에 의해, 나머지 작업 메모리(10)의 사이즈는 더욱 증가 또는 감소될 수 있다. 더 많은 수의 메모리 영역(5)에 의해, 스택 메모리(4)의 전체 사이즈는 나머지 작업 메모리(10)의 사이즈가 감소되지 않고 증가될 수 있다.
종래 기술에서 일반적인 바와 같이, 프로세서(1)의 명령화 동안, 제 2 레지스터(7) 또는 스택 메모리(4)의 초기화가 각각 먼저 수행된다. 이 경우 제 2 레지스터(7)의 내용은 스택 메모리(4)의 메모리 유닛(9)의 최하위 주소 즉, 1111 0000으로 먼저 프리셋팅된다. 종래 기술에서 존재하지 않는, 초기화 동안 제 1 레지스터(6)의 내용이 설정되므로써 제 1 메모리 영역(1)이 제 2 디코더(30)를 통해 선택된다. 만일, 도 1의 실시예에서와 같이, 단지 4개의 메모리 영역(5)만이 존재한다면, 제 1 레지스터(6)는 단지 그 주소지정을 위해 두 비트만을 필요로 한다. 그러나, 더욱 크게 되도록 제 1 레지스터(6)의 주소 비트의 수를 선택하는 것과, 또한 대응하여 선택가능한 메모리 영역의 수를 증대시킬 수 있게 한다. 상기한 바와 같이, 스택 메모리(4)의 메모리 필요조건은 서브프로그램 분기의 갯수 및 스택 메모리(4)에 저장되어야 할 변수에 좌우된다.
프로세서(1)의 논리 주소 공간(3)의 외부에 배열된 스택 메모리(4)의 메모리 영역(5)은 제 1 메모리 영역 페이지 1이 배열된 메모리와 상이한 하나 이상의 메모리에 배열된다. 이들 추가의 메모리가 제 1 메모리 영역 페이지 1와 작업 메모리(10)와 동일한 집적회로에 위치되는 것이 적절하다. 전체 스택 메모리(4)와 작업 메모리(10)가 공통 메모리의 공통 성분이면, 제 1 메모리 영역 페이지 1과 작업 메모리(10)를 포함하는 부분만이 마이크로프로세서(1)의 주소 출력(2)을 통해 직접 주소지정가능한 논리 주소 공간(3)에 위치된다.
제 1 레지스터(6)가 값 YY = 00으로 초기화되고 제 2 레지스터(6)가 값 1111 0000으로 초기화되며 후속하여(예로서 부프로그램의 분기로 인하여) 대응하는 복귀 점프 주소 또는 변수가 스택 메모리(4)에 저장된다면, 먼저 종래기술에서와 같이, 스택 포인터가 대응하여 증대된다. 데이터가 스택 메모리(4)로부터 판독될 때, 대응하는 감소가 수행된다. 이러한 방식으로 한번 판독된 스택 메모리(4)에 최종 정보 아이템이 맨처음으로서 항상 기입된다.
본 발명은 제 1 메모리 영역 페이지 1이 데이터로 채워지지 마자, 즉, 스택 포인터(7)가 주소 1111 1111로 되자 마자, 그 다음에 주소 1111 0000가 스택 포인터(7)의 최종 4 비트의 오버플로우 결과로서 스택 포인터에 다시 포함된다. 이것은 불변하게 1111로 셋팅되는 스택 포인터(7)의 맨처음 4 비트에 의해 달성된다. 동시에, 제 2 레지스터(7)로부터의 오버플로우는 제 1 레지스터(6)에 의해 등록되고 후자는 대응하여 증가되며, 이 결과로 제 2 메모리 영역 페이지 2에서 주소 1111 0000을 갖춘 메모리 유닛(9)이 프로세서(1)의 주소 출력(2)을 통해 주소지정되어지는 것이 가능하다. 메모리 영역 페이지 3, 페이지 4에 대한 변경에 대해서도 동일하게 적용된다. 마찬가지로, 스택 메모리(4)로부터 데이터를 판독할 때, 스택 포인터(7)는 대응하여 감소된다.
스택 포인터의 최상위 4 비트가 1111로 고정되어 설정되고, 단지 최하위 4비트 xxxx가 가변적이라는 것이 또다시 강조된다. 메모리 영역(5)중의 하나의 하한이 주소 1111 0000으로 이미 도달되었다면, 그리고 추가의 데이터 아이템이 판독되었다면, 감산 또는 감소는 제 2 레지스터(7)에서 새로운 카운터 판독치는 1111 1111로 된다. 동시에, 제 1 레지스터(6)는 상기 언더플로우를 등록하고 이에따라 감소되며, 이에의해 다음 최하위 메모리 영역(5)이 제 2 디코더(30)를 통해 선택될 수 있다.
도 1은 제 1 레지스터(6)의 내용을 모니터링하므로써, 스택 메모리(4)의 오버플로우 또는 언더플로우를 검출하는 검출수단(11)을 나타낸다. 언더플로우는 YY = 00 인 제 1 레지스터(6)의 이전 내용과 후속하여 발생하는 추가의 감소가 주어진다면, 검출수단(11)이 프로세서(1)에 적절한 결과신호를 출력하므로써 방지되고, 이에의해 후자는 작업 메모리(10)에 저장된 프로그램의 추가 처리를 임시로 인터럽팅하며 맨 먼저 제 1 레지스터(6)와 제 2 레지스터(7)의 갱신된 초기화를 수행한다.
오버플로우를 등록하기 위해, 회로장치는 제 3 레지스터(8)를 가지며, 여기서 사용가능한 메모리 영역(5)의 수가 저장된다. 제 1 레지스터(6)의 언더플로우의 경우와 마찬가지 방식으로, 개괄된 바와 같이, 검출수단(11)은 제 1 레지스터의 내용과 제 3 레지스터(8)의 내용을 비교하므로써 스택 메모리(4)의 오버플로우를 검출하며, 적절한 결과 신호를 프로세서(1)에 보낸다. 후자는 현재 실행되는 프로그램의 프로세싱을 임시적으로 인터럽팅하고 맨먼저 스택 메모리(4)의 적어도 일부분을 비우는 것을 수행하며, 후속하여 제 1 레지스터(6) 및 제 2 레지스터(7)의 적절한 초기화가 뒤따른다.
도 1은 또한 데이터 버스(40)를 나타내며, 이를 통해 프로세서(1)는 데이터를 작업 메모리(10) 및 스택 메모리(4)에 각각 기입할 수 있고, 이들로부터 일회 이상 데이터가 판독될 수 있다.
도 2는 도 1로 부터의 제 1 레지스터(6) 및 제 2 레지스터(7)를 한번 더 나타낸다. 도 2를 이용하여, 증가 및 감소 프로시저가 한번 더 설명될 것을 의도한다. 부프로그램을 호출(Call)하는 경우에, 대응하는 복귀 점프 주소는 두 개의 레지스터(6 및 7)의 내용에 의해 결정되는 주소에서 스택 메모리(4)에 저장된다. 동시에, 제 2 레지스터(7)의 최종 4 비트는 1 증가되고, 이에따라 스택 포인터(7)는 스택 메모리(4)에서 다음 자유로운 메모리 유닛(9)를 포인팅한다. 이를 수행할 때 오버플로우가 발생한다면, 즉 제 2 레지스터(7)의 내용이 1111 1111로부터 1111 0000으로 점프한다면, 이것은 제 1 레지스터(6)의 내용을 1 만큼 증가시키는 논리 수단(60)에 의해 기록된다. 역으로, 부프로그램으로 부터 점프할 때(복귀(Return)), 대응하는 복귀 점프 주소는 스택 메모리(4)로부터 취해지고, 스택 포인터(7)의 최종 4 비트는 1 만큼 감소된다. 이것이 최종 4 비트 xxxx가 언더플로우로 되게 한다면, 논리 수단(60)은 이것을 기록하고 제 1 레지스터(6)의 내용을 1 만큼 감소시킨다.
각각의 경우에 1 만큼 감소 또는 증가시키는 대신에, 이것(예로서 2)으로부터 유도되는 증가 값 또는 감소 값이 제공될 수 있다. 이것은 메모리 포인터(4)에 각각 저장되어야 할 데이터의 범위에 좌우된다. 도 1과 관련하여 개괄된 대표적 실시예의 경우에, 메모리 유닛은 각각의 경우에 1 바이트의 사이즈를 가지며, 각각의 경우에 2 만큼 감소 또는 증가는 저장된 복귀 점프 주소 또는 변수가 2 바이트 사이즈를 갖는다면 선택되어질 것이다.
스택 포인터(7)에 관한 또는 스택 포인터(7)를 수정하는 명령을 가지는 추가의 논리 수단(50)이 일반적으로 마이크로프로세서에 구현될 수 있음을 도 2로부터 알 수 있다. 이들 경우에, 프로세서는 새로운 주소를 데이터버스에 적용하고, 이 주소에 의해 스택 포인터의 내용은 종래 기술에서 일반적인 회로 장치의 경우에 증가 또는 감소되어질 것으로 의도된다. 마찬가지로 본 발명의 경우에 명령을 수정 또는 관련시키기 위해, 두 레지스터(6 및 7)의 내용을 감산 또는 가산에 의해 올바른 값으로 설정하는 추가의 논리 수단(50)이 제공된다.
본 발명은 대형 작업 메모리(10) 및 스택 메모리(4)를 동시에 구현할 수 있는 이점을 갖는다. 또한, 본 발명에 따른 회로장치는 종래의 회로장치의 경우에서와 동일한 메모리 명령을 실행할 수 있게 한다.
본 발명에 따른 회로장치는 이러한 유형의 종래의 회로장치에 대한 약간의 수정만이 구현될 수 있는 추가 이점을 갖는다. 따라서, 종래의 데이터버스(40) 및 주소 출력(2)을 갖는 종래의 마이크로프로세서(1)와 종래의 디코더(20)가 사용될 수 있다. 이전에 일반적인 스택 포인터는 소망하는 비트의 수가 불변인 범위까지만 수정되어져야 한다. 도 1의 실시예의 경우에, 스택 포인터(7)의 최상위 4비트는 불변적으로 1111로 셋팅된다. 더우기, 상기 논리 주소 공간 외부에 배열된 스택 메모리(4)의 메모리 영역(5)을 수용하기 위해, 논리 주소 공간(3) 보다 큰 메모리가 필요로 된다. 또한 본 발명에 따른 회로장치는 각각의 경우에 메모리 영역(5)중의 하나를 선택하기 위해 제 1 레지스터(6)와 제 2 디코더(30)를 필요로 한다.
본 발명은 예로서 8051 마이크로컨트롤러의 경우에서와 같이, 매우 작은 수의 주소 출력(2)을 갖춘 단지 하나의 프로세서(1)만이 필요할 때 특히 유용하다. 이러한 유형의 이용가능한 작은 논리 주소 공간(3)의 경우에 상기 논리 주소 공간(3)에서 스택 메모리(4)의 비율을 가능한한 작게 유지시키는 것이 절대적으로 필요하다. 비교적 많은 수의 주소 출력을 갖는 다수의 프로세서가 공지되어 있을 지라도, 이 출력을 통해 상당히 큰 논리 주소 공간이 주소지정될 수 있고, 이들 프로세서는 일반적으로 8051 마이크로컨트롤러 보다 훨씬 큰 영역을 갖는다. 특히, 하나 이상의 집적 반도체 회로가 카드 형태 플라스틱 하우징내에 수용되어야 하는, 칩 카드의 제조시, 칩 카드의 영역이 가능한한 작게 될 것이 중요한 데 이는 칩 카드의 기계적 응력이 크기 때문이며, 따라서 비교적 큰 영역의 칩 카드는 용이하게 파손된다. 이러한 이유로, 8051 마이크로컨트롤러의 경우에서와 같이, 약간의 주소 출력(2)을 가지며 현재 이용가능한 작은 영역의 칩의 사용은 커다란 이점을 지닌다. 직접적으로 주소지정가능한 논리 주소 공간(3)의 단점은 단지 매우 작은 부분만이 본 발명에 의해 부분적으로 제거될 수 있다는 것이다. 다수의 주소 출력(2)을 갖는 커다란 프로세서는 비용도 매우 비싸다.
본 발명에 따른 회로장치는 지금까지 사용되어 온 스택 메모리 명령과 완전히 양립할 수 있기 때문에, 프로세서(1)에 의해 실행되어야 할 소프트웨어 응용을 위한 개발 도구의 응용이 필요치 않다.
본 발명에 따른 회로장치는, 프로세서(1)의 직접적으로 주소지정가능한 논리 주소 공간이 확대될 필요없이, 스택 메모리 영역의 주소 확장을 가능케 한다.
스택 메모리 명령은 모든 기타 명령과 구별되어야만 한다. 따라서 명령어를 수정 또는 관련 명령어의 경우에 단지 1111 0000 보다 큰 주소만이 취해져서 스택 포인터(7)에 취해진다면 유익하다. 이것은 단순한 비교기에 의해 검사될 수 있다. 모든 기타 주소의 경우에, 메모리 영역(5)을 선택하기 위한 제 2 디코더(30)의 선택라인은 디액티베이팅된다.
스택 포인터(7)의 오버플로우 또는 언더플로우는 스택 포인터(7)로부터의 캐리 비트를 이용하여 검출된다. 두 경우 모두에, 이 캐리 비트는 변경된다. xxxx가 이전에 0000 이었다면, 언더플로우가 존재한다. xxxx가 이전에 1111 이었다면, 오버플로우가 존재한다.
제 1 레지스터(6)와 제 2 레지스터(7)가 단일 레지스터의 구성부분을 형성할 수 있고, 제 1 레지스터(6)는 상기 레지스터의 최상위 비트(MSBs, 최상위 유효 비트)를 가지며, 제 2 레지스터(7)는 하위 비트를 가진다. 제 2 레지스터(7)의 오버플로우의 결과는 자동적으로 제 1 레지스터(6)를 증가시키고, 언더플로우의 결과는 제 2 레지스터(6)를 감소시킨다.

Claims (6)

  1. - 그 주소 출력(2)을 통해 논리 주소 공간(3)이 직접적으로 주소지정될 수 있게 하는 마이크로프로세서(1);
    - 논리 주소 공간(3)의 하위 영역에 위치되는 작업 메모리(10); 및
    - 적어도 두개의 같은 크기의 메모리 영역(5)으로 소분할되는 스택 메모리(4)를 포함하며, 상기 메모리 영역의 하나는 논리 주소 공간(3)의 상위 영역에 위치되고 다른 메모리 영역은 논리 주소 공간(3)의 하위 영역에 위치되며, 데이터가 다른 메모리 영역(5)에 저장되기 이전에 논리 주소 공간(3)에 배열된 메모리 영역(5)이 채워지는 방식으로 스택 메모리(4)에 저장되어야 할 데이터가 저장되는 것을 특징으로 하는 회로 장치.
  2. 제 1 항에 있어서,
    - 메모리 영역(5)중의 하나를 선택하기 위해 정보 아이템을 저장하는 제 1 레지스터(6); 및
    - 제 1 레지스터(6)의 내용에 의해 개별적으로 선택된 메모리 영역(5)내에서 메모리 유닛(9)을 선택하기 위해 정보 아이템을 저장하는 제 2 레지스터(7)를 더 포함하는 것을 특징으로 하는 회로 장치.
  3. 제 2 항에 있어서,
    - 제 2 레지스터(7)는 제 1 주소 디코더(20)에 연결되고, 이 디코더에 의해 메모리 영역(5)내의 메모리 유닛(9)이 주소지정될 수 있고, 제 1 주소 디코더(20)는 또한 주소 출력(2)을 통해 전체 논리 주소 공간(3)을 주소지정하며; 및
    - 제 1 레지스터(6)는 제 2 주소 디코더(30)에 연결되고, 이 디코더에 의해 메모리 영역이 주소지정될 수 있는 것을 특징으로 하는 회로 장치.
  4. 제 2 항 또는 제 3 항에 있어서,
    제 1 레지스터(6)는 제 2 레지스터(7)로 부터의 오버플로우 또는 언더플로우에 의해 증가 또는 감소될 수 있는 것을 특징으로 하는 회로 장치.
  5. 제 1 항 내지 제 4 항중 어느 한 항에 있어서,
    - 데이터를 판독 또는 기입할 때 스택 메모리(4)의 한계를 초과하는 것을 검출하는 검출수단(11)을 포함하며;
    - 검출수단(11)으로 부터의 결과 신호에 좌우되어, 상기 한계가 초과된다면 스택 메모리(4)를 적어도 부분적으로 비우는 동작이 수행되는 것을 특징으로 하는 회로 장치.
  6. 제 5 항에 있어서,
    - 다수의 메모리 영역(5)을 저장하는 제 3 레지스터(8)를 포함하며,
    - 스택 메모리(4)의 상한을 초과하는 것은 개별적으로 선택된 메모리 영역(5)과 제 3 레지스터(8)의 내용을 비교하므로써 검출수단(11)에 의해 건출될 수 있는 것을 특징으로 하는 회로 장치.
KR1019990702740A 1996-09-30 1997-09-30 마이크로프로세서 및 스택 메모리를 갖는 회로장치 KR20000048754A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE19640316.2 1996-09-30
DE19640316A DE19640316A1 (de) 1996-09-30 1996-09-30 Schaltungsanordnung mit einem Mikroprozessor und einem Stapelspeicher

Publications (1)

Publication Number Publication Date
KR20000048754A true KR20000048754A (ko) 2000-07-25

Family

ID=7807457

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990702740A KR20000048754A (ko) 1996-09-30 1997-09-30 마이크로프로세서 및 스택 메모리를 갖는 회로장치

Country Status (7)

Country Link
EP (1) EP1010081A1 (ko)
JP (1) JP2000503792A (ko)
KR (1) KR20000048754A (ko)
CN (1) CN1232564A (ko)
BR (1) BR9712154A (ko)
DE (1) DE19640316A1 (ko)
WO (1) WO1998014876A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100353335C (zh) * 2003-03-28 2007-12-05 联发科技股份有限公司 增加处理器中存储器的方法
JP5391870B2 (ja) * 2009-06-26 2014-01-15 富士通株式会社 情報処理装置及びその方法
CN102193868B (zh) * 2010-03-10 2013-06-19 上海海尔集成电路有限公司 数据堆栈存储电路及微控制器

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0215345A (ja) * 1988-07-04 1990-01-19 Hitachi Ltd データ処理装置
JPH0836528A (ja) * 1994-01-12 1996-02-06 Sun Microsyst Inc 複数のページ・サイズをサポートする仮想メモリ・コンピュータ・システム用の再マッピング装置及び再マッピング方法
US5666556A (en) * 1993-12-30 1997-09-09 Intel Corporation Method and apparatus for redirecting register access requests wherein the register set is separate from a central processing unit

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3726192A1 (de) * 1987-08-06 1989-02-16 Otto Mueller Stacksteuerung
US5107457A (en) * 1989-04-03 1992-04-21 The Johns Hopkins University Stack data cache having a stack management hardware with internal and external stack pointers and buffers for handling underflow and overflow stack
US5032981A (en) * 1989-04-10 1991-07-16 Cirrus Logic, Inc. Method for increasing effective addressable data processing system memory space
US5255382A (en) * 1990-09-24 1993-10-19 Pawloski Martin B Program memory expander for 8051-based microcontrolled system
GB2282470B (en) * 1993-09-23 1997-12-24 Motorola Israel Ltd A processor arrangement with memory management
DE4340551A1 (de) * 1993-11-29 1995-06-01 Philips Patentverwaltung Programmspeichererweiterung für einen Mikroprozessor

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0215345A (ja) * 1988-07-04 1990-01-19 Hitachi Ltd データ処理装置
US5666556A (en) * 1993-12-30 1997-09-09 Intel Corporation Method and apparatus for redirecting register access requests wherein the register set is separate from a central processing unit
JPH0836528A (ja) * 1994-01-12 1996-02-06 Sun Microsyst Inc 複数のページ・サイズをサポートする仮想メモリ・コンピュータ・システム用の再マッピング装置及び再マッピング方法

Also Published As

Publication number Publication date
DE19640316A1 (de) 1998-04-02
WO1998014876A1 (de) 1998-04-09
JP2000503792A (ja) 2000-03-28
BR9712154A (pt) 1999-08-31
CN1232564A (zh) 1999-10-20
EP1010081A1 (de) 2000-06-21

Similar Documents

Publication Publication Date Title
EP0979456B1 (en) Memory access protection
US4899272A (en) Addressing multiple types of memory devices
US5455955A (en) Data processing system with device for arranging instructions
EP0330226B1 (en) Apparatus of and method for executing subprogram in bank switching data processing system
US6226736B1 (en) Microprocessor configuration arrangement for selecting an external bus width
EP0061324A2 (en) Computer memory management
KR930016880A (ko) 전자장치 및 그것의 고정정보 수정방법
US5802598A (en) Data memory access control and method using fixed size memory sections that are sub-divided into a fixed number of variable size sub-sections
US5339402A (en) System for connecting an IC memory card to a central processing unit of a computer
EP0829804B1 (en) Synchronous semiconductor memory device having macro command storage and execution method therefor
US5127096A (en) Information processor operative both in direct mapping and in bank mapping, and the method of switching the mapping schemes
KR20000048754A (ko) 마이크로프로세서 및 스택 메모리를 갖는 회로장치
JPH0619711B2 (ja) 優先ブランチ機構を備えたデータ処理システム
US6886159B2 (en) Computer system, virtual machine, runtime representation of object, storage media and program transmission apparatus
EP0864983A2 (en) Computer system including memory adress management circuit for protecting memory from illegal writing
KR200204909Y1 (ko) 분할된 내부 코드 메모리를 갖는 마이크로컨트롤러
EP0560393A1 (en) Microprocessor and data processing system with register file
KR100654477B1 (ko) 프로세서 동작 방법
KR940011048B1 (ko) 확장용 메모리를 위한 어드레싱장치 및 방법
US5933856A (en) System and method for processing of memory data and communication system comprising such system
US6029210A (en) Memory initialization system selectively outputting a data between a normal data stored in the memory and a fixed value according to a registered access state
US5649229A (en) Pipeline data processor with arithmetic/logic unit capable of performing different kinds of calculations in a pipeline stage
KR100199477B1 (ko) 절약된 메모리를 갖는 전자제어 시스템 및 메모리 절약 방법
EP0328422A2 (en) Microcomputer system
US7415602B2 (en) Apparatus and method for processing a sequence of jump instructions

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
NORF Unpaid initial registration fee