KR19990037404A - 사후 증가/감소 동작을 하는 프리-디코드되는 스택 포인터 - Google Patents
사후 증가/감소 동작을 하는 프리-디코드되는 스택 포인터 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 claims description 8
- 230000003247 decreasing effect Effects 0.000 claims description 6
- 230000009471 action Effects 0.000 claims description 2
- 230000008859 change Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/76—Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
- G06F7/78—Arrangements 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/785—Arrangements 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/321—Program or instruction counter, e.g. incrementing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3814—Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent 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 항에 있어서, 상기 프로그램 카운터의 다음 값이 라이트될 상기 스택 메모리 장치 내의 상기 다음 사용가능 비사용 위치, 또는 상기 스택 메모리 장치에 라이트된 상기 프로그램 카운터의 상기 마지막 값으로부터 데이터를 리드하기 위하여 상기 비사용 위치의 상기 바로 이전 위치 중 하나를 저장하고 상기 마스터 래치에 보내며, 상기 마스터 래치 및 상기 증가/감소 회로에 결합되는 슬레이브 래치를 더 포함하는 것을 특징으로 하는 사후 정정 동작을 하는 프리-디코드되는 스택 포인터 시스템.
- 제 2 항에 있어서, 상기 선택 수단은 멀티플렉서 회로인 것을 특징으로 하는 사후 정정 동작을 하는 프리-디코드되는 스택 포인터 시스템.
- 어드레스 데이터를 저장하고 전송하는 메모리 장치; 및상기 어드레스 데이터가 라이트될 상기 메모리 장치 내의 현재 위치를 발생시키며, 상기 어드레스 데이터가 리드될 상기 메모리 장치 내의 현재 위치를 발생시키고, 상기 어드레스 데이터가 라이트될 상기 메모리 장치 내의 상기 현재 위치 또는 상기 어드레스 데이터가 리드될 상기 현재 위치 중 하나를 선택하며, 현재 명령을 실행한 후 상기 어드레스 데이터가 라이트될 상기 현재 위치를 사후 증가 또는 사후 감소시키고, 상기 메모리 장치에 결합되는 포인터를 포함하여 구성된 것을 특징으로 하는 사후 정정 동작을 하는 프리-디코드되는 포인터 시스템.
- 제 5 항에 있어서, 상기 포인터는 선입후출(FILO) 원칙으로 상기 메모리 장치 내에 상기 어드레스 데이터를 저장하며 상기 메모리 장치로부터 상기 어드레스 데이터를 리드하는 것을 특징으로 하는 사후 정정 동작을 하는 프리-디코드되는 포인터 시스템.
- 제 5 항에 있어서, 상기 포인터는:상기 어드레스 데이터가 라이트될 상기 메모리 장치 내의 상기 현재 위치 또는 상기 상기 어드레스 데이터가 리드될 상기 메모리 장치 내의 상기 현재 위치 중 하나를 선택 및 출력하며, 상기 메모리 장치에 결합되는 선택 회로와;상기 어드레스 데이터가 라이트될 상기 메모리 장치 내의 상기 현재 위치를 저장하며, 상기 선택 회로에 결합되는 마스터 래치; 및상기 어드레스 데이터를 리드하기 위해 상기 메모리 장치 내의 상기 어드레스 데이터가 라이트된 마지막 위치를 발생시키기 위하여 상기 메모리 장치 내의 상기 어드레스 데이터가 라이트될 상기 현재 위치를 미리-감소시키며, 상기 메모리 장치 내의 상기 어드레스 데이터가 라이트될 다음 사용가능 위치를 발생시키기 위하여 현재 명령을 실행한 후 상기 메모리 장치 내의 상기 현재 위치를 사후 증가시키거나, 상기 어드레스 데이터를 리드하기 위하여 상기 메모리 장치 내의 상기 어드레스 데이터가 라이트된 상기 마지막 위치를 발생시키기 위하여 상기 현재 명령을 실행한 후 상기 메모리 장치 내의 상기 현재 위치를 사후 감소시키는 것 중 하나를 수행하고, 상기 선택 회로 및 상기 마스터 래치에 결합되는 증가/감소 회로를 포함하여 구성된 것을 특징으로 하는 사후 정정 동작을 하는 프리-디코드되는 스택 포인터 시스템.
- 제 7 항에 있어서, 상기 어드레스 데이터가 라이트될 상기 메모리 장치 내의 다음 사용가능 위치, 또는 상기 어드레스 데이터가 라이트된 상기 마지막 위치 중 하나를 저장하고 상기 마스터 래치에 보내며, 상기 마스터 래치 및 상기 증가/감소 회로에 결합되는 슬레이브 래치를 더 포함하는 것을 특징으로 하는 사후 정정 동작을 하는 프리-디코드되는 스택 포인터 시스템.
- 제 7 항에 있어서, 상기 선택 회로는 멀티플렉서인 것을 특징으로 하는 사후 정정 동작을 하는 프리-디코드되는 스택 포인터 시스템.
- 프로그램 카운터의 값을 저장 및 리트리브하는 스택 메모리 장치; 및상기 프로그램 카운터의 현재 값이 어디에 라이트될 지를 나타내기 위하여 상기 스택 메모리 장치 내의 다음 비사용 위치를 발생시키며, 상기 스택 메모리 장치에 라이트된 상기 프로그램 카운터의 마지막 값을 리드하기 위하여 다음 비사용 위치의 바로 이전 위치를 발생시키고, 상기 스택 메모리 장치 내의 다음 비사용 위치 또는 상기 스택 메모리 장치 내의 다음 비사용 위치의 바로 이전 위치 중 하나를 선택하며, 현재 명령을 실행한 후 상기 스택 메모리 장치내의 다음 비사용 위치를 사후 증가 또는 사후 감소시키는 것 중 하나를 수행하고, 상기 스택 메모리 장치에 결합되는 스택 포인터를 구비하며,상기 스택 포인터는:상기 스택 메모리 장치 내의 상기 다음 비사용 위치 또는 상기 스택 메모리 내의 상기 다음 비사용 어드레스 위치의 상기 바로 이전 위치를 선택 및 출력하며, 상기 스택 메모리 장치에 결합되는 선택 회로와;상기 메모리 장치 내의 상기 다음 비사용 위치를 저장하며, 상기 선택 회로에 결합되는 마스터 래치;상기 스택 메모리 장치에 라이트된 상기 프로그램 카운터의 상기 마지막 값으로부터 데이터를 리드하기 위해 상기 다음 비사용 위치의 상기 바로 이전 위치를 발생시키기 위하여 상기 스택 메모리 장치 내의 상기 다음 비사용 위치를 미리-감소시키고, 상기 프로그램 카운터의 다음 값이 라이트될 상기 스택 메모리 장치 내의 다음 사용가능 비사용 위치를 발생시키기 위하여 상기 현재 명령을 실행한 후 상기 다음 비사용 위치를 사후 증가시키거나, 또는 상기 스택 메모리 장치에 라이트된 상기 프로그램 카운터의 상기 마지막 값으로부터 데이터를 리드하기 위해 상기 비사용 위치의 바로 이전 위치를 발생시키기 위하여 상기 현재 명령을 실행한 후 상기 다음 비사용 위치를 사후 감소시키는 것 중 하나를 수행하며, 상기 선택 회로 및 상기 마스터 래치에 결합되는 증가/감소 회로; 및상기 프로그램 카운터의 다음 값이 라이트될 상기 스택 메모리 장치 내의 상기 다음 사용가능 비사용 위치, 또는 상기 스택 메모리 장치에 라이트된 상기 프로그램 카운터의 상기 마지막 값으로부터 데이터를 리드하기 위하여 상기 비사용 위치의 상기 바로 이전 위치 중 하나를 저장하고 상기 마스터 래치에 보내며, 상기 마스터 래치 및 상기 증가/감소 회로에 결합되는 슬레이브 래치를 구비하는 것을 특징으로 하는 사후 정정 동작을 하는 프리-디코드되는 스택 포인터 시스템.
- 제 10 항에 있어서, 상기 선택 수단은 멀티플렉서 회로인 것을 특징으로 하는 사후 정정 동작을 하는 프리-디코드되는 스택 포인터 시스템.
- 프로그램 카운터의 값을 저장 및 리트리브하는 스택 메모리 장치를 제공하는 단계와;상기 프로그램 카운터의 현재 값이 어디에 라이트될 지를 나타내기 위하여 상기 스택 메모리 장치 내의 다음 비사용 위치를 발생시키며, 상기 스택 메모리 장치에 라이트된 상기 프로그램 카운터의 마지막 값을 리드하기 위하여 다음 비사용 위치의 바로 이전 위치를 발생시키고, 상기 스택 메모리 장치 내의 다음 비사용 위치 또는 상기 스택 메모리 장치 내의 다음 비사용 위치의 바로 이전 위치 중 하나를 선택하며, 현재 명령을 실행한 후 상기 스택 메모리 장치 내의 다음 비사용 위치를 사후 증가 또는 사후 감소시키는 것 중 하나를 실행하고, 상기 스택 메모리 장치에 결합되는 스택 포인터를 제공하는 단계를 포함하여 이루어지는 것을 특징으로 하는 사후 정정 동작을 하는 프리-디코드되는 스택 포인터 시스템 제공 방법.
- 제 12 항에 있어서, 상기 스택 포인터를 제공하는 단계는:상기 스택 메모리 장치 내의 상기 다음 비사용 위치 또는 상기 스택 메모리 내의 상기 다음 비사용 어드레스 위치의 상기 바로 이전 위치를 선택 및 출력하며, 상기 스택 메모리 장치에 결합되는 선택 회로를 제공하는 단계와;상기 메모리 장치 내의 상기 다음 비사용 위치를 저장하며, 상기 선택 회로에 결합되는 마스터 래치를 제공하는 단계; 및상기 스택 메모리 장치에 라이트된 상기 프로그램 카운터의 상기 마지막 값으로부터 데이터를 리드하기 위해 상기 다음 비사용 위치의 상기 바로 이전 위치를 발생시키기 위하여 상기 스택 메모리 장치 내의 상기 다음 비사용 위치를 미리-감소시키고, 상기 스택 메모리 장치 내의 상기 프로그램 카운터의 다음 값이 라이트될 다음 사용가능 비사용 위치를 발생시키기 위하여 상기 현재 명령을 실행한 후 상기 다음 비사용 위치를 사후 증가시키거나, 또는 상기 스택 메모리 장치에 라이트된 상기 프로그램 카운터의 상기 마지막 값으로부터 데이터를 리드하기 위해 상기 비사용 위치의 바로 이전 위치를 발생시키기 위하여 상기 현재 명령을 실행한 후 상기 다음 비사용 위치를 사후 감소시키는 것 중 하나를 수행하며, 상기 선택 회로 및 상기 마스터 래치에 결합되는 증가/감소 회로를 제공하는 단계를 포함하여 이루어지는 것을 특징으로 하는 사후 정정 동작을 하는 프리-디코드되는 스택 포인터 시스템 제공 방법.
- 제 13 항에 있어서, 상기 프로그램 카운터의 다음 값이 라이트될 상기 스택 메모리 장치 내의 상기 다음 사용가능 비사용 위치, 또는 상기 스택 메모리 장치에 라이트된 상기 프로그램 카운터의 상기 마지막 값으로부터 데이터를 리드하기 위하여 상기 비사용 위치의 상기 바로 이전 위치 중 하나를 저장하고 상기 마스터 래치에 보내며, 상기 마스터 래치 및 상기 증가/감소 회로에 결합되는 슬레이브 래치를 제공하는 단계를 더 포함하는 것을 특징으로 하는 사후 정정 동작을 하는 프리-디코드되는 스택 포인터 시스템 제공 방법.
- 제 13 항에 있어서, 상기 선택 회로를 제공하는 단계는 멀티플렉서 회로를 제공하는 단계를 더 포함하는 것을 특징으로 하는 사후 정정 동작을 하는 프리-디코드되는 스택 포인터 시스템 제공 방법.
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)
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)
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 |
-
1997
- 1997-10-28 US US08/958,939 patent/US5958039A/en not_active Expired - Lifetime
-
1998
- 1998-10-14 EP EP98119391A patent/EP0915415A3/en not_active Withdrawn
- 1998-10-27 KR KR1019980044957A patent/KR19990037404A/ko not_active Application Discontinuation
- 1998-10-28 JP JP10307563A patent/JPH11265287A/ja not_active Withdrawn
-
1999
- 1999-07-20 US US09/356,720 patent/US6205539B1/en not_active Expired - Lifetime
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 |