KR19990037404A - 사후 증가/감소 동작을 하는 프리-디코드되는 스택 포인터 - Google Patents

사후 증가/감소 동작을 하는 프리-디코드되는 스택 포인터 Download PDF

Info

Publication number
KR19990037404A
KR19990037404A KR1019980044957A KR19980044957A KR19990037404A KR 19990037404 A KR19990037404 A KR 19990037404A KR 1019980044957 A KR1019980044957 A KR 1019980044957A KR 19980044957 A KR19980044957 A KR 19980044957A KR 19990037404 A KR19990037404 A KR 19990037404A
Authority
KR
South Korea
Prior art keywords
memory device
stack
stack memory
written
program counter
Prior art date
Application number
KR1019980044957A
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 KR19990037404A publication Critical patent/KR19990037404A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
    • G06F7/78Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data for changing the order of data flow, e.g. matrix transposition or LIFO buffers; Overflow or underflow handling therefor
    • G06F7/785Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data for changing the order of data flow, e.g. matrix transposition or LIFO buffers; Overflow or underflow handling therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using a RAM
    • 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
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3814Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines

Landscapes

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

Abstract

스택 포인터는 프로그램 카운터내의 현재 값이 어디에 라이트될 지를 나타내기 위하여 스택 메모리 장치 내의 다음 비사용 위치를 발생시키는 데에 이용된다. 스택 포인터는 또한 스택 메모리 장치에 라이트된 프로그램 카운터의 마지막 값을 리드하기 위하여, 다음 비사용 위치의 바로 이전 위치를 발생시킨다. 스택 포인터는 라이트 동작을 위하여 스택 메모리 장치 내의 다음 비사용 위치를 선택하고 리드 동작을 위하여 스택 메모리 장치 내의 다음 비사용 위치의 바로 이전 위치를 선택한다. 스택 포인터는 또한 현재 명령을 실행한 후, 스택 메모리 장치 내의 다음 비사용 위치를 사후 증가 또는 사후 감소시키는 동작 중 하나를 수행한다.

Description

사후 증가/감소 동작을 하는 프리-디코드되는 스택 포인터
본 발명은 일반적으로 포인터에 관한 것으로, 좀 더 상세하게는 스택 메모리 내의 다음 사용가능 위치와 스택 메모리 내의 이전-감소된 위치 사이를 선택하고, 현재 명령을 실행한 다음 사후 증가 동작 또는 사후 감소 동작중 하나를 수행하는 스택 포인터, 및 그 제공방법에 관한 것이다.
“호출(call)”명령 및 “복귀(return)”명령은 서브루틴을 실행하기 위하여 함께 실행되는 두 개의 명령이다. “호출”명령 및 “복귀”명령은 호출했던 서브루틴을 그것을 호출했던 명령으로 자동으로 돌아가도록 함께 실행된다. 이로써, 다중의 서브루틴이 실행될 수 있다.
스택 메모리의 맨 위 부분(top)에서 라이트 및 리드 동작이 수행되는 동안, 스택의 맨 위 부분은 한 세트의 정규 임의 접근 메모리(RAM) 위치로 보일 것이다. 네 개의 위상을 갖는 명령 주기 동안, 명령 주기의 두 번째 위상 동안에는 스택 메모리의 맨 위 영역을 리드할 필요가 있으며 네 번째 위상 동안에는 스택 메모리의 맨 위 영역에 라이트할 필요가 있다. 스택의 맨 위 영역에서의 리드 및 라이트는 스택 메모리 내의 빈 위치보다는 마지막으로 리드된 값 위에서 수행되는 것이 바람직하다. 데이터가 라이트되어 있는 스택 메모리 내의 마지막 위치를 리드하기 위해서는, 스택 포인터가 두 번째 위상이 시작되자 마자 감소될 필요가 있다.
이는 타이밍 충돌을 발생시킨다. “호출” 명령은 스택 포인터가 라이트를 위한 두 번째 위상 주기 동안 스택 메모리 내의 다음 사용가능 위치를 가리킬 것을 요구한다. 그러나, 스택 포인터는 또한, 스택의 맨 위 부분에서 동작시 리드를 위한 두 번째 위상 동안, 바로 이전 위치를 가리킬 필요가 있다.
따라서, 개선된 스택 포인터의 필요성이 대두되었다. 개선된 스택 포인터는 감소되는 값을 프리-디코드할 수 있어야 하고, 이 위치를 리드하기 위하여 이 값을 멀티플렉서에 의해 선택할 수 있어야 한다. 개선된 스택 포인터는 또한 감소되는 값을 프리-디코드하고 사후 증가/감소 선택을 할 수 있어야 한다.
본 발명의 제 1 실시예에 따르면, 본 발명의 목적은 개선된 스택 포인터를 제공하는 것이다.
본 발명의 다른 목적은 스택 메모리의 감소되는 값을 프리-디코드(pre-decode)할 수 있는 개선된 스택 포인터를 제공하는 것이다.
본 발명의 또 다른 목적은 스택 메모리의 감소되는 값을 프리-디코드할 수 있어야 하고, 데이터가 라이트된 스택 메모리 내의 마지막 위치를 리드할 수 있도록 이 값을 멀티플렉서에 의해 선택할 수 있어야 하는 개선된 스택 포인터를 제공하는 것이다.
본 발명의 또 다른 목적은 감소되는 값을 프리-디코드할 수 있으며 사후 증가/감소 선택을 할 수 있는 개선된 스택 포인터를 제공하는 것이다.
도 1은 사후 증가/감소 선택을 갖는 본 발명의 프리-디코드되는 스택 포인터의 단순화된 기능 블록 다이어그램.
<도면의 주요 부분에 대한 부호의 설명>
10 : 스택 포인터 시스템 12 : 스택 포인터
14 : 스택 메모리 16 : 사용가능 스택 위치
18 : 선택 회로 20 : 마스터 래치
22 : 증가/감소 회로 24 : 슬레이브 래치
본 발명의 제 1 실시예에 따르면, 사후 정정 동작(post revise operation)을 하는 프리-디코드되는 스택 포인터 시스템이 개시된다. 포인터 시스템은, 스택 포인터에 결합되어 사용될 때 선입후출(FILO) 원칙으로 프로그램 카운터의 값을 저장 및 리트리브(retrieve)하는 스택 메모리 장치를 구비한다. 스택 포인터는 스택 메모리 장치에 결합된다. 스택 포인터는 프로그램 카운터 내의 현재 값이 어디에 라이트될 지를 나타내기 위하여 스택 메모리 장치 내의 다음 비사용 위치를 발생시키는 데에 이용된다. 스택 포인터는 또한 스택 메모리 장치에 라이트된 프로그램 카운터의 마지막 값을 리드하기 위하여, 다음 비사용 위치의 바로 이전 위치를 발생시킨다. 스택 포인터는 라이트 동작을 위하여 스택 메모리 장치 내의 다음 비사용 위치를 선택하고 리드 동작을 위하여 스택 메모리 장치 내의 다음 비사용 위치의 바로 이전 위치를 선택한다. 스택 포인터는 또한 현재 명령을 실행한 후, 스택 메모리 장치 내의 다음 비사용 위치를 사후 증가 또는 사후 감소시키는 동작 중 하나를 수행한다.
본 발명의 다른 실시예에 따라, 사후 정정 동작을 하는 프리-디코드되는 스택 포인터 시스템 구비 방법이 제공되며, 이 방법은
프로그램 카운터의 값을 저장 및 리트리브하는 스택 메모리 장치를 제공하는 단계와;
프로그램 카운터의 현재 값이 어디에 라이트될 지를 나타내기 위하여 스택 메모리 장치 내의 다음 비사용 위치를 발생시키며, 스택 메모리 장치에 라이트된 프로그램 카운터의 마지막 값을 리드하기 위하여 다음 비사용 위치의 바로 이전 위치를 발생시키고, 스택 메모리 장치 내의 다음 비사용 위치 또는 스택 메모리 장치 내의 다음 비사용 위치의 바로 이전 위치 중 하나를 선택하며, 현재 명령을 실행한 후 스택 메모리 장치내의 다음 비사용 위치를 사후 증가 또는 사후 감소시키는 것 중 하나를 수행하고, 스택 메모리 장치에 결합되는 스택 포인터를 제공하는 단계를 포함하여 이루어진다.
본 발명의 상술한 목적들 및 다른 목적들, 특징들, 및 장점들은 하기로부터, 특히 첨부 도면과 함께 설명되는 본 발명의 바람직한 실시예의 설명으로부터 명확해질 것이다.
도 1은 스택 포인터 시스템(이후 시스템이라 명명함)(10)을 도시한다. 시스템(10)은 스택 포인터(12)와 스택 메모리(14)로 구성된다. 일반적으로, 스택 포인터(12)는 스택 메모리(14) 내의 여러 위치를 가리키는 데에 사용되는 소자이다. 스택 메모리(14)는 프로그램 카운터(미도시)의 값을 저장 및 리트리브하는 데에 사용되는 구조이다. 프로그램 카운터는 현재 명령이 실행될 어드레스 위치를 포함하고 있는 레지스터이다.
시스템(10)은 “호출” 및 “복귀” 명령을 실행시키기에 매우 유용하다. PIC(Priority interrupt controller) 마이크로제어기에 있어서의 명령 주기는 네 개의 위상 주기(q1, q2, q3, q4)로 구성된다. 전형적인 명령 주기동안, 프로그램 카운터로부터의 명령은 제 1 위상 주기(q1) 동안 디코드되고, RAM 또는 특별한 기능의 레지스터는 제 2 위상 주기(q2) 동안 리드되며, 명령의 동작은 제 3 위상 주기(q3) 동안 수행되고, 동작의 결과는 제 4 위상 주기(q4) 동안 라이트된다. 프로그램 카운터를 변경하는 모든 명령은 명령을 실행한 후 불시의 무동작 명령(NOP)이 발생하는 여분의 명령 주기를 갖는다. 이는 프로세서에 의해 실행되서는 안될 프리-페치된 명령을 버리기 위하여(discard) 파이프라인을 활성화시키는(flush out) 데에 필요하다.
“호출”명령이 실행되는 동안, 프로그램 카운터의 값은 제 2 위상 주기(q2) 동안 스택 메모리(14)에 라이트된다. 명령은 제 1 위상 주기(q1) 동안 디코드되기 때문에, 라이트가 수행되기 전에 스택 포인터(10)의 값에 어떠한 변경을 가할 시간이 없게 된다. 그러므로 사용되지 않은 다음 사용가능 스택 위치(16)를 카리키는 스택 포인터(12)가 필요하다.
“복귀”명령이 실행되는 동안, 스택 메모리(14) 위에 마지막으로 푸쉬된 값이 리트리브되고, 제 4 위상 주기(q4) 동안 프로그램 카운터로 되돌아간다. 스택 메모리(14) 내에 놓여진 마지막 값을 리트리브하기 위하여, 스택 포인터(12)는 제 2 위상 주기(q2)의 시작과 제 4 위상 주기(q4)의 시작 사이에서 감소될 필요가 있다. 본 발명은 스택 포인터(12)를 감소시키는 데에 세 개의 위상 주기(즉, 값을 감소시키고 마스터 래치(20)내로 안정 주기를 갖는 새로운 값을 래치하기 위한 세 개의 위상 주기)를 필요로 하기 때문에 타이밍 문제를 발생시킨다. 또한, 두 번째 위상 주기(q2) 동안에는 주의있게 실행되어, 라이트 동작 동안 스택 포인터(12)에서 스택 메모리(14)를 망가뜨리는 어떠한 글리치(glitch)도 발생하지 않아야 한다.
따라서, 스택 메모리(14)의 맨 위 부분에서 리드 및 라이트가 이루어지는 동안, 스택 메모리(14)의 맨 위 부분은 한 세트의 정규의 임의 접근 메모리(RAM) 위치처럼 보인다. 네 개의 위상을 갖는 명령 주기 동안, 명령 주기의 두 번째 위상 주기(q2) 동안에는 스택 메모리(14)의 맨 위 부분을 리드할 필요가 있고 네 번째 위상 주기(q4) 동안에는 스택 메모리(14)의 맨 위 부분에 라이트할 필요가 있다. 스택 메모리(14)의 맨 위 부분에서의 리드 및 라이트는 스택 메모리(14)내의 빈 위치보다는 마지막으로 라이트된 값 위에서 수행되는 것이 바람직하다. 데이터가 라이트된 스택 메모리(14) 내의 마지막 위치를 리드하기 위해서는, 스택 포인터(12)가 두 번째 위상 주기(q2)가 시작되자 마자 감소될 필요가 있다.
이는 타이밍 충돌을 발생시킨다. “호출” 명령은 스택 포인터(12)가 라이트 동작을 위한 두 번째 위상 동안 스택 메모리(14) 내의 다음 사용가능 위치를 가리킬 것을 요구한다. 스택 포인터(12)는 또한, 스택의 맨 위 부분에서 동작시 리드 을 위한 두 번째 위상 동안, 바로 이전 위치를 가리킬 필요가 있다.
본 발명의 시스템(10)은 감소되는 값을 프리-디코딩하고 사후 증가 및 감소 선택을 제공함으로써 상기언급한 타이밍 문제를 해결할 수 있다. 스택 포인터(12)는 스택 메모리(14)에 결합되는 선택 회로(18)를 구비한다. 선택 회로(18)는 라이트 동작을 위한 스택 메모리(14) 내의 다음 비사용 위치 또는 리드 동작을 위한 스택 메모리(14) 내의 다음 비사용 어드레스 위치의 바로 이전 위치(미리 감소되는 값)를 선택 및 출력하는 데에 사용된다. 도 1에 도시한 실시예에서는, 멀티플렉서(18)가 선택 회로(18)로 사용된다.
마스터 래치(20)가 선택 회로(18)에 결합된다. 마스터 래치(20)는 데이터가 라이트될 스택 메모리(14) 내의 다음 비사용 위치를 저장하는 데에 사용된다.
증가/감소 회로(22)가 선택 회로(18) 및 마스터 래치(20)에 결합된다. 증가/감소 회로(22)는 스택 메모리 장치(14) 내의 다음 비사용 위치를 미리-감소시키는 데에 사용된다. 이는 스택 메모리(14) 내의 다음 비사용 위치의 바로 이전 위치를 발생시키는데, 이는 데이터가 라이트된 스택 메모리(14)내의 근본적으로 마지막 위치이다. 이는 리드 동작에 의해 스택 메모리(14)에 라이트된 프로그램 카운터의 마지막 값의 데이터를 리드할 수 있게 한다. 증가/감소 회로(22)는 또한 현재 명령을 실행한 후 스택 메모리(14)내의 다음 비사용 위치를 사후 증가시키거나 사후 감소시킬 수 있게 한다. 사후 증가시킴으로써, 스택 포인터(12)는 프로그램 카운터의 다음 값이 라이트될 스택 메모리(14)내의 다음 사용가능 비사용 위치를 발생시킬 것이다. 현재 명령을 실행한 후, 스택 메모리(14)내의 다음 비사용 위치를 사후 감소시킴으로써, 데이터 포인터(12)는 데이터가 라이트된 스택 메모리(14)내의 마지막 위치를 발생시킬 수 있다.
따라서, 포인터 시스템(10)은, 감소된 값이 이미 사용가능하기 때문에, “복귀”명령에 대하여 스택 포인터(12)를 아무 문제없이 감소시킬 수 있는 방법을 제공하게 된다. “호출” 및 “복귀”명령은 프로그램 카운터의 값을 변화시키며, 이들은 두-주기 명령이다. “호출” 및 “복귀”명령이 실행된다면, 이들은 스택 포인터(12) 위에서의 정확한 증가/감소를 위하여, 네 개의 위상 주기를 갖는 두 명령의 두 번째 주기를 그대로 둔다. 이들 네 개의 위상 클럭을 사용함으로써, 프리-디코드되는 값은 마스터 래치(20)를 갱신하기 전에는 언제든지 슬레이브 래치(24)에 래치될 수 있다.
동작
이제 도 1을 참조하여 시스템(10)의 동작을 설명한다. 마스터 래치(20)는 현재의 스택 포인터(12) 값(즉, 스택 메모리(14)의 맨 위 부분에 라이트 동작을 수행하는 경우에 사용가능하게 될 필요가 있는 다음 사용가능 스택 포인터 위치)을 포함한다. 증가/감소 회로(22)는 단일선(22A)에 결합된다. 단일선(22A)은 증가/감소 회로(22)가 마스터 래치(20)내의 값을 증가 또는 감소시킬 지를 지시한다. 본 발명의 바람직한 실시예에서, 단일선(22A)의 디폴트 값은 증가/감소 회로(22)를 감소 상태로 유지시킨다. 선택 회로(18)는, 선택 회로(18)가 스택 메모리(14)내의 다음 비사용 위치를 출력시킬 것인지 또는 스택 메모리(14)내의 바로 이전 위치를 출력할 것인지를 지시하는 단일선(18A)을 구비한다. 디폴트에 의해, 단일선(18A)은 데이터가 라이트될 스택 메모리(14)내의 다음 사용가능 위치를 출력한다. 스택의 맨 위 부분에서 동작시 리드가 요구되는 경우, 단일선(18A)은 일반적으로 데이터가 라이트된 스택 메모리(14)내의 마지막 위치인, 증가/감소 회로(22)로부터의 값을 출력시킬 수 있도록 변할 것이다.
슬레이브 래치(24)는 마스터 래치(20)를 갱신시키고, 값이 틀리지 않도록 보장하는 데에 사용된다. 슬레이브 래치(24)는 래치 신호(24A)에 결합된다. 래치 신호(24A)는 증가/감소 회로(22)로부터의 새로운 값을 슬레이브 래치(24) 내에 갱신 및 래치시키는 신호이다. 마스터 래치(20)는 또한, 슬레이브 래치(24)로부터의 새로운 값을 마스터 래치(20) 내에 갱신 및 래치 시키는 단일선(20)에 결합된다.
본 발명이 특히 바람직한 실시예에 대해 도시되고 설명되기는 하였지만, 이 분야의 당업자에게 있어 형태 및 세부사항에 있어서 상술한 그리고 다른 변형이 본 발명의 원리 및 범위를 벗어나지 않으면서 이루어질 수 있음은 자명하다.

Claims (15)

  1. 프로그램 카운터의 값을 저장 및 리트리브하는 스택 메모리 장치; 및
    상기 프로그램 카운터의 현재 값이 어디에 라이트될 지를 나타내기 위하여 상기 스택 메모리 장치 내의 다음 비사용 위치를 발생시키며, 상기 스택 메모리 장치에 라이트된 상기 프로그램 카운터의 마지막 값을 리드하기 위하여 상기 다음 비사용 위치의 바로 이전 위치를 발생시키고, 또한 상기 스택 메모리 장치 내의 다음 비사용 위치 또는 상기 스택 메모리 장치 내의 상기 다음 비사용 위치의 상기 바로 이전 위치 중 하나를 선택하며, 현재 명령을 실행한 후 상기 스택 메모리 장치 내의 상기 비사용 위치를 사후 증가 또는 사후 감소시키는 것 중 하나를 실행하고, 상기 스택 메모리 장치에 결합되는 스택 포인터를 포함하여 구성된 것을 특징으로 하는 사후 정정 동작을 하는 프리-디코드되는 스택 포인터 시스템.
  2. 제 1 항에 있어서, 상기 스택 포인터는:
    상기 스택 메모리 장치 내의 상기 다음 비사용 위치 또는 상기 스택 메모리 내의 상기 다음 비사용 어드레스 위치의 상기 바로 이전 위치 중 상기의 하나를 선택 및 출력하며, 상기 스택 메모리 장치에 결합되는 선택 회로와;
    상기 메모리 장치 내의 상기 다음 비사용 위치를 저장하며, 상기 선택 회로에 결합되는 마스터 래치; 및
    상기 스택 메모리 장치에 라이트된 상기 프로그램 카운터의 상기 마지막 값으로부터 데이터를 리드하기 위해 상기 다음 비사용 위치의 상기 바로 이전 위치를 발생시키기 위하여 상기 스택 메모리 장치 내의 상기 다음 비사용 위치를 미리-감소시키고, 상기 프로그램 카운터의 다음 값이 라이트될 상기 스택 메모리 장치 내의 다음 사용가능 비사용 위치를 발생시키기 위하여 상기 현재 명령을 실행한 후 상기 다음 비사용 위치를 사후 증가시키거나, 또는 상기 스택 메모리 장치에 라이트된 상기 프로그램 카운터의 상기 마지막 값으로부터 데이터를 리드하기 위해 상기 비사용 위치의 바로 이전 위치를 발생시키기 위하여 상기 현재 명령을 실행한 후 상기 다음 비사용 위치를 사후 감소시키는 것 중 하나를 실행하며, 상기 선택 회로 및 상기 마스터 래치에 결합되는 증가/감소 회로를 포함하여 구성된 것을 특징으로 하는 사후 정정 동작을 하는 프리-디코드되는 스택 포인터 시스템.
  3. 제 2 항에 있어서, 상기 프로그램 카운터의 다음 값이 라이트될 상기 스택 메모리 장치 내의 상기 다음 사용가능 비사용 위치, 또는 상기 스택 메모리 장치에 라이트된 상기 프로그램 카운터의 상기 마지막 값으로부터 데이터를 리드하기 위하여 상기 비사용 위치의 상기 바로 이전 위치 중 하나를 저장하고 상기 마스터 래치에 보내며, 상기 마스터 래치 및 상기 증가/감소 회로에 결합되는 슬레이브 래치를 더 포함하는 것을 특징으로 하는 사후 정정 동작을 하는 프리-디코드되는 스택 포인터 시스템.
  4. 제 2 항에 있어서, 상기 선택 수단은 멀티플렉서 회로인 것을 특징으로 하는 사후 정정 동작을 하는 프리-디코드되는 스택 포인터 시스템.
  5. 어드레스 데이터를 저장하고 전송하는 메모리 장치; 및
    상기 어드레스 데이터가 라이트될 상기 메모리 장치 내의 현재 위치를 발생시키며, 상기 어드레스 데이터가 리드될 상기 메모리 장치 내의 현재 위치를 발생시키고, 상기 어드레스 데이터가 라이트될 상기 메모리 장치 내의 상기 현재 위치 또는 상기 어드레스 데이터가 리드될 상기 현재 위치 중 하나를 선택하며, 현재 명령을 실행한 후 상기 어드레스 데이터가 라이트될 상기 현재 위치를 사후 증가 또는 사후 감소시키고, 상기 메모리 장치에 결합되는 포인터를 포함하여 구성된 것을 특징으로 하는 사후 정정 동작을 하는 프리-디코드되는 포인터 시스템.
  6. 제 5 항에 있어서, 상기 포인터는 선입후출(FILO) 원칙으로 상기 메모리 장치 내에 상기 어드레스 데이터를 저장하며 상기 메모리 장치로부터 상기 어드레스 데이터를 리드하는 것을 특징으로 하는 사후 정정 동작을 하는 프리-디코드되는 포인터 시스템.
  7. 제 5 항에 있어서, 상기 포인터는:
    상기 어드레스 데이터가 라이트될 상기 메모리 장치 내의 상기 현재 위치 또는 상기 상기 어드레스 데이터가 리드될 상기 메모리 장치 내의 상기 현재 위치 중 하나를 선택 및 출력하며, 상기 메모리 장치에 결합되는 선택 회로와;
    상기 어드레스 데이터가 라이트될 상기 메모리 장치 내의 상기 현재 위치를 저장하며, 상기 선택 회로에 결합되는 마스터 래치; 및
    상기 어드레스 데이터를 리드하기 위해 상기 메모리 장치 내의 상기 어드레스 데이터가 라이트된 마지막 위치를 발생시키기 위하여 상기 메모리 장치 내의 상기 어드레스 데이터가 라이트될 상기 현재 위치를 미리-감소시키며, 상기 메모리 장치 내의 상기 어드레스 데이터가 라이트될 다음 사용가능 위치를 발생시키기 위하여 현재 명령을 실행한 후 상기 메모리 장치 내의 상기 현재 위치를 사후 증가시키거나, 상기 어드레스 데이터를 리드하기 위하여 상기 메모리 장치 내의 상기 어드레스 데이터가 라이트된 상기 마지막 위치를 발생시키기 위하여 상기 현재 명령을 실행한 후 상기 메모리 장치 내의 상기 현재 위치를 사후 감소시키는 것 중 하나를 수행하고, 상기 선택 회로 및 상기 마스터 래치에 결합되는 증가/감소 회로를 포함하여 구성된 것을 특징으로 하는 사후 정정 동작을 하는 프리-디코드되는 스택 포인터 시스템.
  8. 제 7 항에 있어서, 상기 어드레스 데이터가 라이트될 상기 메모리 장치 내의 다음 사용가능 위치, 또는 상기 어드레스 데이터가 라이트된 상기 마지막 위치 중 하나를 저장하고 상기 마스터 래치에 보내며, 상기 마스터 래치 및 상기 증가/감소 회로에 결합되는 슬레이브 래치를 더 포함하는 것을 특징으로 하는 사후 정정 동작을 하는 프리-디코드되는 스택 포인터 시스템.
  9. 제 7 항에 있어서, 상기 선택 회로는 멀티플렉서인 것을 특징으로 하는 사후 정정 동작을 하는 프리-디코드되는 스택 포인터 시스템.
  10. 프로그램 카운터의 값을 저장 및 리트리브하는 스택 메모리 장치; 및
    상기 프로그램 카운터의 현재 값이 어디에 라이트될 지를 나타내기 위하여 상기 스택 메모리 장치 내의 다음 비사용 위치를 발생시키며, 상기 스택 메모리 장치에 라이트된 상기 프로그램 카운터의 마지막 값을 리드하기 위하여 다음 비사용 위치의 바로 이전 위치를 발생시키고, 상기 스택 메모리 장치 내의 다음 비사용 위치 또는 상기 스택 메모리 장치 내의 다음 비사용 위치의 바로 이전 위치 중 하나를 선택하며, 현재 명령을 실행한 후 상기 스택 메모리 장치내의 다음 비사용 위치를 사후 증가 또는 사후 감소시키는 것 중 하나를 수행하고, 상기 스택 메모리 장치에 결합되는 스택 포인터를 구비하며,
    상기 스택 포인터는:
    상기 스택 메모리 장치 내의 상기 다음 비사용 위치 또는 상기 스택 메모리 내의 상기 다음 비사용 어드레스 위치의 상기 바로 이전 위치를 선택 및 출력하며, 상기 스택 메모리 장치에 결합되는 선택 회로와;
    상기 메모리 장치 내의 상기 다음 비사용 위치를 저장하며, 상기 선택 회로에 결합되는 마스터 래치;
    상기 스택 메모리 장치에 라이트된 상기 프로그램 카운터의 상기 마지막 값으로부터 데이터를 리드하기 위해 상기 다음 비사용 위치의 상기 바로 이전 위치를 발생시키기 위하여 상기 스택 메모리 장치 내의 상기 다음 비사용 위치를 미리-감소시키고, 상기 프로그램 카운터의 다음 값이 라이트될 상기 스택 메모리 장치 내의 다음 사용가능 비사용 위치를 발생시키기 위하여 상기 현재 명령을 실행한 후 상기 다음 비사용 위치를 사후 증가시키거나, 또는 상기 스택 메모리 장치에 라이트된 상기 프로그램 카운터의 상기 마지막 값으로부터 데이터를 리드하기 위해 상기 비사용 위치의 바로 이전 위치를 발생시키기 위하여 상기 현재 명령을 실행한 후 상기 다음 비사용 위치를 사후 감소시키는 것 중 하나를 수행하며, 상기 선택 회로 및 상기 마스터 래치에 결합되는 증가/감소 회로; 및
    상기 프로그램 카운터의 다음 값이 라이트될 상기 스택 메모리 장치 내의 상기 다음 사용가능 비사용 위치, 또는 상기 스택 메모리 장치에 라이트된 상기 프로그램 카운터의 상기 마지막 값으로부터 데이터를 리드하기 위하여 상기 비사용 위치의 상기 바로 이전 위치 중 하나를 저장하고 상기 마스터 래치에 보내며, 상기 마스터 래치 및 상기 증가/감소 회로에 결합되는 슬레이브 래치를 구비하는 것을 특징으로 하는 사후 정정 동작을 하는 프리-디코드되는 스택 포인터 시스템.
  11. 제 10 항에 있어서, 상기 선택 수단은 멀티플렉서 회로인 것을 특징으로 하는 사후 정정 동작을 하는 프리-디코드되는 스택 포인터 시스템.
  12. 프로그램 카운터의 값을 저장 및 리트리브하는 스택 메모리 장치를 제공하는 단계와;
    상기 프로그램 카운터의 현재 값이 어디에 라이트될 지를 나타내기 위하여 상기 스택 메모리 장치 내의 다음 비사용 위치를 발생시키며, 상기 스택 메모리 장치에 라이트된 상기 프로그램 카운터의 마지막 값을 리드하기 위하여 다음 비사용 위치의 바로 이전 위치를 발생시키고, 상기 스택 메모리 장치 내의 다음 비사용 위치 또는 상기 스택 메모리 장치 내의 다음 비사용 위치의 바로 이전 위치 중 하나를 선택하며, 현재 명령을 실행한 후 상기 스택 메모리 장치 내의 다음 비사용 위치를 사후 증가 또는 사후 감소시키는 것 중 하나를 실행하고, 상기 스택 메모리 장치에 결합되는 스택 포인터를 제공하는 단계를 포함하여 이루어지는 것을 특징으로 하는 사후 정정 동작을 하는 프리-디코드되는 스택 포인터 시스템 제공 방법.
  13. 제 12 항에 있어서, 상기 스택 포인터를 제공하는 단계는:
    상기 스택 메모리 장치 내의 상기 다음 비사용 위치 또는 상기 스택 메모리 내의 상기 다음 비사용 어드레스 위치의 상기 바로 이전 위치를 선택 및 출력하며, 상기 스택 메모리 장치에 결합되는 선택 회로를 제공하는 단계와;
    상기 메모리 장치 내의 상기 다음 비사용 위치를 저장하며, 상기 선택 회로에 결합되는 마스터 래치를 제공하는 단계; 및
    상기 스택 메모리 장치에 라이트된 상기 프로그램 카운터의 상기 마지막 값으로부터 데이터를 리드하기 위해 상기 다음 비사용 위치의 상기 바로 이전 위치를 발생시키기 위하여 상기 스택 메모리 장치 내의 상기 다음 비사용 위치를 미리-감소시키고, 상기 스택 메모리 장치 내의 상기 프로그램 카운터의 다음 값이 라이트될 다음 사용가능 비사용 위치를 발생시키기 위하여 상기 현재 명령을 실행한 후 상기 다음 비사용 위치를 사후 증가시키거나, 또는 상기 스택 메모리 장치에 라이트된 상기 프로그램 카운터의 상기 마지막 값으로부터 데이터를 리드하기 위해 상기 비사용 위치의 바로 이전 위치를 발생시키기 위하여 상기 현재 명령을 실행한 후 상기 다음 비사용 위치를 사후 감소시키는 것 중 하나를 수행하며, 상기 선택 회로 및 상기 마스터 래치에 결합되는 증가/감소 회로를 제공하는 단계를 포함하여 이루어지는 것을 특징으로 하는 사후 정정 동작을 하는 프리-디코드되는 스택 포인터 시스템 제공 방법.
  14. 제 13 항에 있어서, 상기 프로그램 카운터의 다음 값이 라이트될 상기 스택 메모리 장치 내의 상기 다음 사용가능 비사용 위치, 또는 상기 스택 메모리 장치에 라이트된 상기 프로그램 카운터의 상기 마지막 값으로부터 데이터를 리드하기 위하여 상기 비사용 위치의 상기 바로 이전 위치 중 하나를 저장하고 상기 마스터 래치에 보내며, 상기 마스터 래치 및 상기 증가/감소 회로에 결합되는 슬레이브 래치를 제공하는 단계를 더 포함하는 것을 특징으로 하는 사후 정정 동작을 하는 프리-디코드되는 스택 포인터 시스템 제공 방법.
  15. 제 13 항에 있어서, 상기 선택 회로를 제공하는 단계는 멀티플렉서 회로를 제공하는 단계를 더 포함하는 것을 특징으로 하는 사후 정정 동작을 하는 프리-디코드되는 스택 포인터 시스템 제공 방법.
KR1019980044957A 1997-10-28 1998-10-27 사후 증가/감소 동작을 하는 프리-디코드되는 스택 포인터 KR19990037404A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US8/958,939 1997-10-28
US08/958,939 US5958039A (en) 1997-10-28 1997-10-28 Master-slave latches and post increment/decrement operations

Publications (1)

Publication Number Publication Date
KR19990037404A true KR19990037404A (ko) 1999-05-25

Family

ID=25501470

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980044957A KR19990037404A (ko) 1997-10-28 1998-10-27 사후 증가/감소 동작을 하는 프리-디코드되는 스택 포인터

Country Status (4)

Country Link
US (2) US5958039A (ko)
EP (1) EP0915415A3 (ko)
JP (1) JPH11265287A (ko)
KR (1) KR19990037404A (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6446170B1 (en) * 1999-01-19 2002-09-03 International Business Machines Corporation Efficient store machine in cache based microprocessor
US6038660A (en) * 1999-05-26 2000-03-14 Infineon Technologies North America Corp. Method and apparatus for updating a program counter
US6654871B1 (en) * 1999-11-09 2003-11-25 Motorola, Inc. Device and a method for performing stack operations in a processing system
KR100897857B1 (ko) 2003-10-23 2009-05-15 마이크로칩 테크놀로지 인코포레이티드 마이크로컨트롤러 명령어 셋트
US8207966B2 (en) * 2004-05-26 2012-06-26 Sony Online Entertainment Llc Terrain editor tool for rule-based procedural terrain generation
US8115765B2 (en) * 2004-05-26 2012-02-14 Sony Online Entertainment Llc Rule-based procedural terrain generation
FR2896600B1 (fr) * 2006-01-24 2008-03-28 Atmel Nantes Sa Sa Dispositif de traitement en notation polonaise inversee pour la manipulation de tableau, et circuit integre electronique comprenant un tel dispositif de traitement
FR2896601B1 (fr) * 2006-01-24 2008-08-15 Atmel Nantes Sa Dispositif de traitement en notation polonaise inversee, et circuit integre electronique comprenant un tel dispositif de traitement.
US9189214B2 (en) 2013-10-30 2015-11-17 International Business Machines Corporation Code stack management

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3786432A (en) * 1972-06-20 1974-01-15 Honeywell Inf Systems Push-pop memory stack having reach down mode and improved means for processing double-word items
US4430711A (en) * 1980-05-30 1984-02-07 Signetics Corporation Central processing unit
US4459659A (en) * 1981-02-04 1984-07-10 Burroughs Corporation Subroutine control circuitry for providing subroutine operations in a data processing system in which tasks are executed on a microprogrammed level
US4399507A (en) * 1981-06-30 1983-08-16 Ibm Corporation Instruction address stack in the data memory of an instruction-pipelined processor
DE3321325A1 (de) * 1983-06-13 1984-12-13 Siemens AG, 1000 Berlin und 8000 München Kellerspeicher
US4884244A (en) * 1985-01-28 1989-11-28 Data General Corporation Method of addressing a computer memory
US4835738A (en) * 1986-03-31 1989-05-30 Texas Instruments Incorporated Register stack for a bit slice processor microsequencer
JPH0831033B2 (ja) * 1986-10-29 1996-03-27 日本電気株式会社 データ処理装置
US5193205A (en) * 1988-03-01 1993-03-09 Mitsubishi Denki Kabushiki Kaisha Pipeline processor, with return address stack storing only pre-return processed address for judging validity and correction of unprocessed address
US5023828A (en) * 1988-07-20 1991-06-11 Digital Equipment Corporation Microinstruction addressing in high-speed CPU
US5142635A (en) * 1989-04-07 1992-08-25 Intel Corporation Method and circuitry for performing multiple stack operations in succession in a pipelined digital computer
US5440749A (en) * 1989-08-03 1995-08-08 Nanotronics Corporation High performance, low cost microprocessor architecture
JPH03180933A (ja) * 1989-12-08 1991-08-06 Matsushita Electric Ind Co Ltd スタックメモリ
US5179673A (en) * 1989-12-18 1993-01-12 Digital Equipment Corporation Subroutine return prediction mechanism using ring buffer and comparing predicated address with actual address to validate or flush the pipeline
JPH0752576B2 (ja) * 1990-07-19 1995-06-05 株式会社東芝 スタックメモリ
US5454090A (en) * 1990-10-12 1995-09-26 Siemens Aktiengesellschaft Apparatus for furnishing instructions in a microprocessor with a multi-stage pipeline processing unit for processing instruction phase and having a memory and at least three additional memory units
US5706491A (en) * 1994-10-18 1998-01-06 Cyrix Corporation Branch processing unit with a return stack including repair using pointers from different pipe stages
US5687336A (en) * 1996-01-11 1997-11-11 Exponential Technology, Inc. Stack push/pop tracking and pairing in a pipelined processor

Also Published As

Publication number Publication date
US5958039A (en) 1999-09-28
EP0915415A3 (en) 1999-06-09
US6205539B1 (en) 2001-03-20
EP0915415A2 (en) 1999-05-12
JPH11265287A (ja) 1999-09-28

Similar Documents

Publication Publication Date Title
US5471595A (en) Asynchronous interrupt inhibit method and apparatus for avoiding interrupt of an inseparable operation
US4987537A (en) Computer capable of accessing a memory by supplying an address having a length shorter than that of a required address for the memory
US7971040B2 (en) Method and device for saving and restoring a set of registers of a microprocessor in an interruptible manner
KR19990037404A (ko) 사후 증가/감소 동작을 하는 프리-디코드되는 스택 포인터
US6345353B2 (en) Stack pointer with post increment/decrement allowing selection from parallel read/write address outputs
EP0361497A2 (en) Program/data memory employed in microcomputer system
KR940006916B1 (ko) 선택적 캐쉬 메모리를 가진 마이크로프로세서
US5734857A (en) Program memory expansion using a special-function register
KR100817947B1 (ko) 인터럽트 서비스 방법 및 프로세서
KR100321745B1 (ko) 외부메모리액세스를위한마이크로컨트롤러유닛
JPH07182170A (ja) マイクロプロセッサ
JP2694799B2 (ja) 情報処理装置
JPH0793152A (ja) マイクロプロセッサ制御装置
US5109516A (en) Sequence controller for controlling next operating state with a short sequence
KR100654477B1 (ko) 프로세서 동작 방법
JP2927102B2 (ja) 命令列切り替え方法及びそれを用いた演算プロセッサ
EP0284100A2 (en) Information processor having instruction prefetch function
JP3583918B2 (ja) マイクロプロセッサ
JP2001022577A (ja) 情報処理装置
JP3366235B2 (ja) データ読み出し制御装置
JPH04255028A (ja) マイクロプロセッサ
JP2675506B2 (ja) マイクロプロセッサ装置
KR19990037395A (ko) 두개의 워드 명령을 단일 주기 동안 실행하는 시스템 및 방법
EP0260639A2 (en) Microprogram sequencer
JPH033037A (ja) マイクロプログラム制御方式

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid