KR100875377B1 - 처리 시스템에서 스택 팝 및 푸쉬 동작들을 수행하는 장치 및 방법 - Google Patents
처리 시스템에서 스택 팝 및 푸쉬 동작들을 수행하는 장치 및 방법 Download PDFInfo
- Publication number
- KR100875377B1 KR100875377B1 KR1020000066072A KR20000066072A KR100875377B1 KR 100875377 B1 KR100875377 B1 KR 100875377B1 KR 1020000066072 A KR1020000066072 A KR 1020000066072A KR 20000066072 A KR20000066072 A KR 20000066072A KR 100875377 B1 KR100875377 B1 KR 100875377B1
- Authority
- KR
- South Korea
- Prior art keywords
- stack pointer
- stack
- register
- pointer
- updated
- Prior art date
Links
Images
Classifications
-
- 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
-
- 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/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
- G06F9/30163—Decoding the operand specifier, e.g. specifier format with implied specifier, e.g. top of stack
-
- 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
-
- 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
- G06F9/4484—Executing subprograms
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Executing Machine-Instructions (AREA)
Abstract
본 발명은 처리 시스템 내에서 스택 동작들(stack operations)을 수행하기 위한 방법 및 장치를 제공한다. 제 1 및 제 2 스택 포인터들은 스택의 상부(top) 및 상기 스택의 상부 다음의 메모리 위치를 지시한다. 제 1 스택 포인터는 팝 동작들(pop operations) 동안 사용되며, 제 2 스택 포인터는 푸쉬 동작들(push operations) 동안 사용된다. 스택 포인터(stack pointer)가 선택될 때, 그것은 다른 스택 포인터로 대체한다. 선택된 메모리 포인터는 스택이 구현되는 메모리 모듈에 제공되며, 또한 업데이트된다. 팝 동작이 실행될 때, 상기 업데이트된 스택 포인터는 선택된 스택 포인터에 의해 지시된 메모리 위치 앞의 메모리 위치를 지시하며, 푸쉬 동작이 실행될 때, 상기 업데이트된 스택 포인터는 메모리 어드레스 다음의 메모리 어드레스를 지시한다.
스택 동작, 팝 동작, 푸쉬 동작, 스택 포인터, 메모리 포인터
Description
도 1은 본 발명의 바람직한 실시예에 따른, 처리 시스템 내의 스택 동작들을 수행하기 위한 장치의 블럭도.
도 2는 본 발명의 일실시예에 따른, 어드레스 생성 유닛을 갖는 처리기의 블럭도.
도 3은 본 발명의 일실시예에 따른, 어드레스 생성 유닛의 블럭도.
도 4는 본 발명에 따른, 스택 동작들을 수행하기 위한 방법을 순서도로 나타낸 도면.
* 도면의 주요 부분에 대한 부호의 설명 *
10 : 장치 20 : 디코더
22 : 제 1 포인터 레지스터 24 : 선택 로직
26 : 제 2 스택 포인터 레지스터 28 : 가산기/감산기
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
기술분야
본 발명은 처리 시스템에서 스택 동작들을 수행하는 장치 및 방법에 관한 것으로, 특히 고속 스택 동작들을 허용하는 장치 및 방법에 관한 것이다.
발명의 배경
많은 처리 시스템들은 스택(stack)이 구현되는 메모리 모듈들을 가진다. 스택은 가장 최근에 저장된 값이 검색될 첫번째 값인 데이터 구조이다. 몇몇 스택들은 메모리 모듈의 하위 어드레스들/메모리 위치들을 향해 성장하고, 몇몇 스택들은 메모리 모듈의 상위 어드레스들을 향해 성장한다. 따라서, 스택의 상부는 데이터가 현재 저장되어 있는 스택의 최하위 또는 최상위 어드레스를 갖는 메모리 위치이다.
스택에 관련된 두 개의 기준 동작들, 즉 새로운 값이 스택에 가산되는 푸쉬 동작(push operation), 스택의 상부에 위치된 값이 검색되는 팝 동작(pop operation)이 있다. 새로운 값은 스택의 상부 다음의 메모리 위치에 저장된다.
일반적으로, 스택 포인터들(stack pointers)은 스택의 상부 또는 스택의 상부 다음의 메모리 위치를 지시한다. 스택 포인터의 제 1 유형은 빠른 팝 동작을 가능케 하고, 제 2 유형은 빠른 푸쉬 동작을 가능케 한다. 상위 어드레스들 및 스택 포인터를 향해 발달된 스택이 스택의 상부 다음의 메모리 위치를 지시할 때, 팝 동작은 스택 포인터를 감소시키는 단계와 스택의 상부에 저장된 값을 이동시키는 단계를 포함하고, 푸쉬 동작은 스택 포인터에 의한 메모리 위치 포인터에 데이터를 기록하는 단계와 스택 포인터를 증가시키는 단계를 포함한다. 이 종래 기술의 방식은 상대적으로 시간을 낭비하는 것이다.
스택 동작들이 인터럽트들(interrupt)에 따라 광범위하게 사용된다. 일반적으로, 처리 시스템의 상태를 유지하는 다수의 레지스터들은 스택에 푸쉬(push)되고, 결국 스택으로부터 팝(pop)된다. 많은 레지스터들이 처리 시스템 상태를 저장할 때, 인터럽트의 실행은 매우 많은 시간을 낭비하는 것이다.
스택 동작들을 수행하기 위한 고속 및 개선된 장치와 방법을 제공할 필요가 있다.
본 발명은 특허청구범위에 상세히 기재되어 있지만, 본 발명의 다른 특징들은 첨부 도면을 참조한 이하의 상세한 설명에 개시되어 있다.
본 발명은 특허청구범위에 상세히 기재되어 있지만, 본 발명의 다른 특징들은 첨부 도면을 참조한 이하의 상세한 설명에 개시되어 있다.
삭제
바람직한 실시예의 설명
일반적으로, 본 발명은 고속 스택 동작을 수행하기 위한 장치 및 방법을 제공한다. 본 발명은 두 스택 포인터들, 스택의 상부를 가리키는 제 1 스택 포인터와 스택의 상부 다음의 메모리 위치를 가리키는 제 2 스택 포인터를 제공한다. 따라서, 그 두 스택 포인터들은 팝 동작 및 푸쉬 동작 동안에 사용된다. 그것이 사용되기 전에 스택 포인터들을 증가시키거나 감소시킬 필요는 없다. 제 1 스택 포인터가 선택될 때, 그것은 그 스택을 유지하는 메모리 모듈에 선택된 스택 포인터로서 제공되며, 제 2 스택 포인터로 대체시킨 후 업데이트된다. 업데이트된 스택 포인터는 선택된 스택 포인터로서 정식으로 제공된 제 1 스택 포인터를 대체시킨다. 제 2 스택 포인터가 선택될 때, 그것은 그 스택을 유지하는 메모리에 선택된 스택 포인터로서 제공되며, 그것은 제 1 스택 포인터로 대체시킨 후 업데이트된다. 업데이트된 스택 포인터는 선택된 스택 포인터에 의한 메모리 위치 포인터 다음의 메모리 위치를 가리킨다. 업데이트된 스택 포인터는 선택된 스택 포인터로서 정식으로 제공된 제 2 스택 포인터로 대체된다.
사용된 특정 용어들 및 표현들과 상세한 설명에서 개시된 특정 구조 및 동작 명세와 수반한 도면들이 보정된 청구항들에 기재된 본 발명의 범위에 임의의 방법의 제한으로 의도된 것이 아니라는 것이 주목되어야 한다.
도 1은 본 발명의 바람직한 실시예에 따라, 처리 시스템 내의 스택 동작들을 수행하기 위한 장치(10)의 블럭도이다.
장치(10)는 명령을 디코딩하고 그에 따라서 스택 동작을 요구하는 제어 지시자(즉, PUSH/POP)(30)를 생성하기 위한 디코더(20)를 포함한다. 제 1 포인터 레지스터(22)는 제 1 스택 포인터(32)를 저장하기 위한 것이다. 제 2 스택 포인터 레지스터(26)는 제 2 스택 포인터(34)를 저장하기 위한 것이다. 가산기/감산기 (adder/subtractor)(28)는 선택된 스택 포인터(36) 및 상수(38)를 수신하고 제어 지시자(30)에 따른 업데이트된 스택 포인터(40)를 생성하기 위한 것이다. 선택 로직(selection logic)(24)은 제어 지시자(30)를 수신하고, 그에 따라 제 1 및 제 2 스택 포인터들(32, 34)로부터 선택된 스택 포인터(36)를 선택하고, 선택되지 않은 스택 포인터 레지스터에 선택된 스택 포인터(36)를 전송하고, 가산기/감산기(28)에 선택된 스택 포인터(36)를 전송하고, 선택된 스택 포인터 레지스터에 가산기/감산기(28)로부터 업데이트된 스택 포인터(40)를 전송하기 위한 것이다.
선택 로직(24)은, 제어 지시자(30)를 수신하기 위해 버스(bus)(21)를 경유하여 디코더(decoder)(20)에 연결되고, 버스들(23, 25)을 경유하여 제 1 스택 포인터 레지스터(22)에 연결되고, 버스들(27, 29)을 경유하여 제 2 스택 포인터 레지스터(26)에 연결되고, 버스들(33, 31)을 경유하여 가산기/감산기(28)에 연결된다.
편리하게는, 제 1 스택 포인터(32)는 스택의 상부를 가리키고 제 2 스택 포인터(34)는 상기 스택의 상부 다음의 메모리 위치를 가리킨다. 제어 지시자(30)가 팝 동작을 요구할 때, 선택 로직(24)은 제 1 스택 포인터 레지스터(22)를 선택한다. 제 1 스택 포인터(32)와 동일한 선택된 스택 포인터(36)는 가산기/감산기(28)에 제공되고 또한 스택이 구현되는 메모리 모듈(도 1에 도시되지 않음)에 제공된다. 제 1 스택 포인터(32)는 제 2 스택 포인터 레지스터(26)에 기록된다. 가산기/감산기(28)는 제 1 스택 포인터 레지스터(22)에 기록되도록 선택된 스택 포인터(32)로부터 상수(38)를 감산함으로써 업데이트된 스택 포인터(40)를 생성한다. 상수(38)는 스택의 상부 및 스택의 상부 다음의 메모리 위치 사이의 오프셋(offset)을 반영한다.
제어 지시자(30)가 푸쉬 동작을 요구할 때, 선택 로직(24)은 제 2 스택 포인터 레지스터(26)를 선택한다. 제 2 스택 포인터(34)와 동일한 선택된 스택 포인터(36)는 가산기/감산기(28)에 제공되고 또한 메모리 모듈에 제공된다. 제 2 스택 포인터(36)는 제 1 스택 포인터 레지스터(22)에 기록된다. 가산기/감산기(28)가 제 2 스택 포인터 레지스터(26)에 기록되도록 선택된 스택 포인터(36)로부터 상수(38)를 가산함으로써 업데이트된 스택 포인터(40)를 생성한다.
도 2는 본 발명의 일 실시예에 따라, 어드레스 생성 유닛을 갖는 처리 시스템(110)의 블럭도이다. 바람직하게는, 처리 시스템(110)은 베리 롱 인스트럭션 워드(Very Long Instruction Word)(즉, VLIW)를 가짐으로써 특징지어지지만, 필수적인 것은 아니다. VLIW는 병렬 처리 시스템들에 사용된다. 각각의 VLIW는 처리 시스템(110)의 여러 부분들에 의한 병렬 방법으로 실행되는 다수의 명령들을 포함한다.
처리 시스템(110)은 내부 메모리 모듈들(220, 222), 어드레스 레지스터 파일(226), 프로그램 시퀀스(224), 데이터 레지스터 파일들(228, 229), 어드레스 생성 유닛들(AGU)(230, 231) 및 총괄하여 부호(232)로 표시된 승산 및 축적(multiple and accumulate)(MAC) 유닛들을 포함한다. AGU들(230, 231)이 내부 버스(260)를 경유하여 어드레스 레지스터 파일(226)에 연결된다. MAC 유닛들(232)은 내부 버스(262)를 경유하여 데이터 레지스터 파일들(228, 229)에 연결된다. 프로그램 시퀀서(224)는 명령 버스(244)를 경유하여 AGU들(230, 231) 및 MAC들(232)에 연결된다.
처리 시스템(110)은 프로그램 버스(238), 제 1 데이터 버스(240) 및 제 2 데이터 버스(242)를 더 구비한다. 프로그램 버스(238)는 버스(246)를 경유하여 프로그램 시퀀서(224)에 연결되고, 버스들(272, 282)을 각각 경유하여 메모리 모듈들(220, 222)에 연결된다. 데이터 버스들(240, 242)은 버스들(248, 250)을 경유하여 어드레스 레지스터 파일(226)에 연결되고, 버스들(252, 254)을 경유하여 데이터 레지스터 파일(228, 229)에 연결된다. 데이터 버스들(240, 242)은 버스들(274-280)을 경유하여 메모리 모듈들(220, 222)에 연결된다.
프로그램 시퀀서(program sequencer)(224)는 메모리 모듈들(220, 222) 중 하나로부터 VLIW를 페치(fetch)하고, MAC들(232), AGU들(230, 231)에 VILW의 부분들을 디스패치(dispatch)한다. AGU들(230, 231)은 다음 동작 사이클 동안 페치되도록 데이터 또는 VLIW의 어드레스들을 메모리 모듈들(220, 222)에 제공한다. 일반적으로 스택은 메모리 모듈들(220, 222) 중 하나에서 실행된다.
도 3은 본 발명의 일 실시예에 따라, 처리 시스템(110) 내의 어드레스 생성 유닛(AGU)(230) 및 어드레스 레지스터 파일(226)의 일부(280)의 블럭도이다.
AGU(230)는 제어 유닛(264), 레지스터 N1(271) 및 가산기/감산기(28)로 구성된다. 어드레스 레지스터 파일(226)의 일부(280)는 다수의 레지스터들 R0, R1, R2, R3(40-43), 제 1 스택 포인터 레지스터(즉, SPR1)(22), 제 2 스택 포인터 레지스터(즉, SPR2)(26), 스위치(46), 및 두 멀티플렉서들 IN_MUX(48) 및 OUT_MUX(47)로 구성된다. 제어 유닛(264)은 선택된 스택 포인터들 및 업데이트된 스택 포인터들과 같은 업데이트된 어드레스의 생성을 제어하기 위해 프로그램 시퀀서(224)로부터 명령을 수신하고, 명령을 디코딩하고, 제어 지시자(30) 및 다수의 제어 신호들을 일부(280), 가산기/감산기(28) 및 N1(271)에 제공한다.
제어 유닛(264)은 업데이트된 어드레스의 생성에 포함되는 레지스터를 선택하기 위한 IN_MUX(48) 및 OUT_MUX(47)에 버스들(282, 285)을 통해 제어 신호들을 전송한다. IN_MUX(48)는 버스(49)를 경유하여 레지스터들 R0, R1, R2, R3(40-43), SPR1(22), SPR2(26)에 연결되고, 수신한 제어 신호에 따라서, 버스들(248, 250)을 경유하여 가산기/감산기(28) 및 메모리 모듈들(220, 222)에 그것의 콘텐츠를 공급할 레지스터를 선택한다. 가산기/감산기(28)는 버스(70)를 경유하여 선택된 레지스터의 콘텐츠를 수신하고, 가산 동작 또는 감산 동작 중 하나와 상수(38) 또는 SIZE(52) 중 하나를 요구하는 제어 신호 INC/DEC(50)를 수신하고 업데이트된 어드레스를 생성한다. INC/DEC(50)는 버스(73)를 경유하여 제어 유닛(264)에 의해 제공된다. 상수(38)는 버스(79)를 경유하여 제어 유닛(264)에 의해 제공되거나, 버스(39)를 경유하여 N1(271)에 의해 제공된다. SIZE(52)는 제어 유닛(264)에 의해 제공된다.
가산기/감산기(28)는 버스(76), OUT_MUX(47) 및 버스(248)를 경유하여, 선택된 레지스터에 업데이트된 어드레스를 생성한다.
제 1 클럭 사이클 동안, 제어 유닛(264)은 프로그램 시퀀서(224)에 의해 제공된 명령을 디코딩하고, 업데이트된 어드레스를 생성할 필요가 있는지를 결정한다.
스택 포인터 어드레스가 아닌 업데이트된 어드레스의 생성은 일반적으로 R0-R3(40-43)의 레지스터의 콘텐츠로부터 SIZE(52)를 가산 또는 감산하는 것을 포함한다. SIZE(52)는 명령의 디코딩 단계 동안 생성되고, 명령과 관련된 피연산자(operand)의 길이를 반영한다. 예를 들어, 명령 "MOVE.2L(R1)+"는 R1(41)의 콘텐츠와 8의 합과 동일한 업데이트된 주소의 생성을 포함한다. "2L"은 8 바이트 데이터 워드를 의미하므로, SIZE=8이다. R1(41)이 선택되고, INC/DEC=1이다. 명령 "MOVE.B(R2)-"는 R2(42)의 콘텐츠와 1의 차와 동일한 업데이트된 어드레스의 생성을 포함한다. "B"는 단일 바이트 데이터 워드를 의미하므로, SIZE=1이다. R2(42)가 선택되고, INC/DEC=0이다.
푸쉬 동작을 실행시킬 필요가 있는 경우, 제어 유닛(264)은 SPR2(26) 및 그에 따른 제 2 스택 포인터(34)를 선택하기 위해 IN_MUX(48) 및 OUT_MUX(47)에 제어 신호들을 생성 및 전송하며, 제 2 클럭 사이클의 제 1 위상 동안, SPR2(26)의 콘텐츠는 SPR1(22)에 기록되는 것을 지시하는 제어 지시자(30)를 생성하고 스위치(46)에 제어 지시자(30)를 전송한다. 제어 유닛(264)은 INC/DEC(50)(INC/DEC=1)을 생성하고 가산기/감산기(28)에 제공한다.
제 2 클럭 사이클의 제 1 위상 동안, 제 2 스택 포인터(34)는 스위치(46)를 경유하여 SPR1(22)로 전송되고, IN_MUX(48)를 경유하여 가산기/감산기(28)로 전송된다. 제 2 스택 포인터(34)는 또한 메모리 모듈들(220, 222) 중 하나에 제공된다. 가산기/감산기(28)는 선택된 스택 포인터(36)에 상수(38)를 가산함으로써 업데이트된 스택 포인터(40)를 생성한다.
제 2 클럭 사이클의 제 2 위상 동안, 가산기/감산기(28)는 OUT_MUX(47)를 경유하여 SPR2(26)에 업데이트된 스택 포인터(40)를 전송한다.
팝 동작을 실행시킬 필요가 있는 경우, 제어 유닛(264)은 SPR1(22) 및 제 1 스택 포인터(32)를 선택하기 위해 제어 신호들을 생성하고 IN_MUX(48) 및 OUT_MUX(47)에 전송하며, 제 2 클럭 사이클의 제 1 위상 동안, SPR1(22)에 저장된 제 1 스택 포인터(32)는 SPR2(26)에 기록되는 것을 지시하는 제어 지시자(30)를 생성하고 스위치(46)에 전송한다. 제어 유닛(264)은 또한 INC/DEC(50) (INC/DEC=0)을 생성하고 가산기/감산기(28)에 제공한다.
제 2 클럭 사이클의 제 1 위상 동안, 제 1 스택 포인터(32)는 스위치(46)를 경유하여 SPR2(26)로 전송되며, IN_MUX(48)를 경유하여 가산기/감산기(28)로 전송된다. 제 1 스택 포인터(32)는 또한 스택이 구현되는 메모리 모듈들(220, 222) 중 하나에 제공된다. 가산기/감산기(28)는 선택된 스택 포인터(36)로부터 상수(38)를 감산함으로써 업데이트된 스택 포인터(40)를 생성한다.
제 2 클럭 사이클의 제 2 위상 동안, 가산기/감산기(28)는 OUT_MUX(47)을 경유하여 SPR1(22)으로 업데이트된 스택 포인터(40)를 전송한다.
도 4는 처리 시스템 내의 스택 동작들을 수행하기 위한 방법(300)을 순서도 형태로 설명한다. 직사각형 상자들(310, 320, 330, 340, 350)은 방법(300)의 단계들을 나타낸다. 경로들(315, 325)에 의해 나타낸 바와 같이, 단계들(320, 330)은 단계(310)의 다음에 올 수 있다. 경로들(335, 345)에 의해 나타낸 바와 같이, 단계들(340, 350)은 단계들(320, 330)의 다음에 올 수 있다. 경로들(355, 365)에 의해 나타낸 바와 같이, 단계(310)는 단계들(340, 350)의 다음에 올 수 있다.
편리하게는, 방법(300)은 파이프라인 구조(pipelined architecture)를 가진 처리 시스템에서 실행된다. 명령들은 프로그램 프리페치(pre-fetch) 단계, 프로그램 페치(fetch) 단계, 디스패치 및 디코딩 단계, 어드레스 생성 단계, 및 실행 단계와 같은 다수의 단계들로 처리된다. 단계(310)는 디스패치 및 디코딩 단계 동안 수행된다. 단계들(320-350)은 어드레스 생성 단계 동안 수행된다. 설명의 편의를 위해, 도 4는 단지 이들 두 단계들만을 설명한다.
방법(300)은:
단계(310) 및 제 1 클럭 사이클 동안, 명령을 디코딩하는 단계, 팝 동작 및 푸쉬 동작 외에 스택 동작을 실행시킬 필요가 있는지를 결정하는 단계, 그에 따라 스택 동작을 요구하는 제어 지시자를 생성하는 단계를 포함한다.
경로들(315, 335)로 나타낸 것과 같이, 스택 동작이 팝 동작일 경우, 단계들320, 340)을 수행한다.
단계(320) 및 제 2 클럭 사이클의 제 1 위상 동안, 스택의 상부를 지시하는 선택된 스택 포인터(36)를 제공한다. 스택의 포인터 다음의 메모리 위치에 대한 포인터를 선택된 스택 포인터로 대체한다. 선택된 스택 포인터(36)에 의해 지시된 메모리 위치 앞의 메모리 위치를 지시하는 업데이트된 스택 포인터(40)를 생성한다. 데이터가 선택된 스택 포인터에 의해 지시된 메모리 위치로부터 판독되도록 하기 위해 스택이 구현되는 메모리 모듈에 선택된 스택 포인터(36)를 전송한다.
편리하게는, 단계(320) 및 제 2 클럭 사이클의 제 1 위상 동안, 제 1 스택 포인터 레지스터(22)로부터 선택된 스택 포인터(36)를 제공하고, 제 2 스택 포인터 레지스터(26)에 선택된 스택 포인터(36)를 기록하고, 가산기/감산기(28)에 선택된 스택 포인터(36)를 전송하고, 선택된 스택 포인터(36)로부터 상수(38)를 감산함으로써 업데이트된 스택 포인터(40)를 생성하고, 데이터가 실행 단계 동안 스택의 상부로부터 판독될 수 있도록 스택이 구현되는 메모리 모듈에 선택된 스택 포인터(36)를 전송한다.
단계(340) 및 제 2 클럭 사이클의 제 2 위상 동안, 제 2 클럭 사이클의 제 1 위상 동안 제공된 선택된 스택 포인터(36)를 업데이트된 스택 포인터(40)로 대체한다. 편리하게는, 단계(340) 및 제 2 클럭 사이클의 제 2 위상 동안, 제 1 스택 포인터 레지스터(22)에 업데이트된 스택 포인터(40)를 기록한다.
경로들(325, 345)로 나타내어진 것과 같이, 스택 동작이 푸쉬 동작이면 단계들(330, 350)을 수행한다.
단계(330) 및 제 2 클럭 사이클의 제 1 위상 동안, 스택의 상부 다음의 메모리 위치를 지시하는 선택된 스택 포인터(36)를 제공한다. 스택의 상부에 대한 포인터를 선택된 스택 포인터(36)로 대체한다. 선택된 스택 포인터(36)에 의해 지시된 메모리 위치 다음의 메모리 위치를 지시하는 업데이트된 스택 포인터(40)를 생성한다. 데이터가 선택된 스택 포인터(36)에 의해 지시된 메모리 위치에 기록되도록 하기 위해 스택이 구현되는 메모리 모듈에 선택된 스택 포인터(36)를 전송한다. 편리하게는, 단계(330) 및 제 2 클럭 사이클의 제 1 위상 동안, 제 2 스택 포인터 레지스터(36)로부터 선택된 스택 포인터(36)를 제공하고, 제 1 스택 포인터 레지스터(22)에 선택된 스택 포인터(36)를 기록하고, 가산기/감산기(28)에 선택된 스택 포인터(36)를 전송하고, 선택된 스택 포인터(36)에 상수(38)를 가산함으로써 업데이트된 스택 포인터(40)를 생성하고, 데이터가 실행 단계 동안 스택의 상부 다음의 메모리 위치에 기록될 수 있도록 스택이 구현되는 메모리 모듈에 선택된 스택 포인터(36)를 전송한다.
단계(350) 및 제 2 클럭 사이클의 제 2 위상 동안, 제 2 클럭 사이클의 제 1 위상 동안 제공되는 선택된 스택 포인터(36)를 업데이트된 스택 포인터(40)로 대체한다. 편리하게는, 단계(350) 및 제 2 클럭 사이클의 제 2 위상 동안, 제 2 스택 포인터 레지스터(26)에 업데이트된 스택 포인터(40)를 기록한다.
경로들(355, 365)로 나타낸 것과 같이, 단계들(340, 350) 이후에는 단계(310)가 온다.
그러므로, 스택 동작들을 수행하기 위한 장치 및 방법의 적어도 하나의 바람직한 실시예를 포함하는 일 실시예가 여기에 기재되었다. 개시된 문제가 수많은 방법들로 변경될 수 있고, 특히 상기에서 제시되고 기재된 바람직한 형태 이외의 다른 많은 실시예들을 가정할 수 있다는 것이 본 기술 분야의 당업자들에게 명백할 것이다.
따라서, 위에 개시된 요지는 예로서 나타낸 것이며, 본 발명을 제한하는 것이 아니며 법에 의해 허용되는 최대 범위까지 고려된 것이고, 첨부된 특허청구범위는 본 발명의 정신 및 범위 내에 속하는 모든 변형예 및 다른 실시예들을 포함하고자 의도된다. 본 발명의 범위는 앞의 상세한 설명보다는 다음의 특허청구범위 및 그들의 등가물들의 가장 광범위하게 허용되는 해석에 의해 결정되는 것이다.
본 발명에 따라, 처리 시스템 내에서 스택 동작들을 수행하기 위한 방법 및 장치가 제공되고, 스택 동작들을 수행하기 위한 고속 및 개선된 장치와 방법이 제공된다.
Claims (22)
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 처리 시스템 내에서 팝 동작들(pop operations)을 수행하는 방법에 있어서,제 1 클럭 사이클 동안, 명령을 디코딩하고 팝 동작을 실행할 필요가 있는지의 여부를 결정하고 그에 따라 상기 팝 동작을 요구하는 제어 지시자를 생성하는 단계,제 2 클럭 사이클의 제 1 위상 동안, 스택의 상부를 지시하는 선택된 스택 포인터(stack pointer)를 제공하고, 상기 스택의 상부 다음의 메모리 위치에 대한 포인터를 상기 선택된 스택 포인터로 대체하고, 상기 선택된 스택 포인터에 의해 지시된 상기 메모리 위치 앞의 메모리 위치를 지시하는 업데이트된 스택 포인터를 생성하고, 데이터가 상기 선택된 스택 포인터에 의해 지시된 상기 메모리 위치로부터 판독되도록 하기 위해, 스택이 구현되는 메모리 모듈에 상기 선택된 스택 포인터를 전송하는 단계, 및상기 제 2 클럭 사이클의 제 2 위상 동안, 상기 제 2 클럭 사이클의 상기 제 1 위상 동안 제공된 상기 선택된 스택 포인터를 상기 업데이트된 스택 포인터로 대체하는 단계를 포함하는, 팝 동작들을 수행하는 방법.
- 제 8 항에 있어서,상기 스택의 상부는 제 1 스택 포인터 레지스터에 저장되고 상기 스택의 상부 다음의 메모리 위치는 제 2 스택 포인터 레지스터에 저장되고, 팝 동작이 완료된 후 상기 제 2 스택 포인터 레지스터는 상기 선택된 스택 포인터를 저장하고 상기 제 1 스택 포인터 레지스터는 상기 업데이트된 스택 포인터를 저장하는, 팝 동작들을 수행하는 방법.
- 제 8 항에 있어서,상기 업데이트된 스택 포인터는 상기 선택된 스택 포인터를 감소시킴으로써 생성되는, 팝 동작들을 수행하는 방법.
- 처리 시스템 내에서 푸쉬 동작들(push operations)을 수행하는 방법에 있어서,제 1 클럭 사이클 동안, 명령을 디코딩하고 푸쉬 동작을 실행할 필요가 있는지의 여부를 결정하고 그에 따라 상기 푸쉬 동작을 요구하는 제어 지시자를 생성하는 단계,제 2 클럭 사이클의 제 1 위상 동안, 스택의 상부 다음의 메모리 위치를 지시하는 선택된 스택 포인터를 제공하고, 상기 스택의 상부에 대한 포인터를 상기 선택된 스택 포인터로 대체하고, 상기 선택된 스택 포인터에 의해 지시된 메모리 위치 다음의 메모리 위치를 지시하는 업데이트된 스택 포인터를 생성하고, 데이터가 상기 선택된 스택 포인터에 의해 지시된 상기 메모리 위치에 기록되도록 하기 위해, 스택이 구현되는 메모리 모듈에 상기 선택된 스택 포인터를 전송하는 단계, 및상기 제 2 클럭 사이클의 제 2 위상 동안, 상기 제 2 클럭 사이클의 상기 제 1 위상 동안 제공된 상기 선택된 스택 포인터를 상기 업데이트된 스택 포인터로 대체하는 단계를 포함하는, 푸쉬 동작들을 수행하는 방법.
- 제 11 항에 있어서,상기 스택의 상부는 제 1 스택 포인터 레지스터에 저장되고, 상기 스택의 상부 다음의 메모리 위치는 제 2 스택 포인터 레지스터에 저장되고, 푸쉬 동작이 완료된 후 상기 제 1 스택 포인터 레지스터는 상기 선택된 스택 포인터를 저장하고 상기 제 2 스택 포인터 레지스터는 상기 업데이트된 스택 포인터를 저장하는, 푸쉬 동작들을 수행하는 방법.
- 제 11 항에 있어서,상기 업데이트된 스택 포인터는 상기 선택된 스택 포인터를 증가시킴으로써 생성되는, 푸쉬 동작들을 수행하는 방법.
- 처리 시스템 내에서 스택 동작들을 수행하는 방법에 있어서,제 1 클럭 사이클 동안, 명령을 디코딩하고 팝 동작 및 푸쉬 동작에서 스택 동작을 실행시킬 필요가 있는지를 결정하고 그에 따라 상기 스택 동작을 요구하는 제어 지시자를 생성하는 단계,상기 스택 동작이 팝 동작인 경우,제 2 클럭 사이클의 제 1 위상 동안, 스택의 상부를 지시하는 선택된 제 1 스택 포인터를 제공하고, 상기 스택의 상부 다음의 메모리 위치에 대한 포인터를 상기 선택된 제 1 스택 포인터로 대체하고, 상기 선택된 제 1 스택 포인터에 의해 지시된 메모리 위치 앞의 메모리 위치를 지시하는 업데이트된 제 1 스택 포인터를 생성하고, 데이터가 상기 선택된 제 1 스택 포인터에 의해 지시된 상기 메모리 위치로부터 판독되도록 하기 위해, 스택이 구현되는 메모리 모듈에 상기 선택된 제 1 스택 포인터를 전송하고,상기 제 2 클럭 사이클의 제 2 위상 동안, 상기 제 2 클럭 사이클의 상기 제 1 위상 동안 제공된 상기 선택된 제 1 스택 포인터를 상기 업데이트된 제 1 스택 포인터로 대체하는 단계들을 수행하고,상기 스택 동작이 푸쉬 동작일 경우,제 2 클럭 사이클의 제 1 위상 동안, 스택의 상부 다음의 메모리 위치를 지시하는 선택된 제 2 스택 포인터를 제공하고, 상기 스택의 상부에 대한 포인터를 상기 선택된 제 2 스택 포인터로 대체하고, 상기 선택된 제 2 스택 포인터에 의해 지시된 메모리 위치 다음의 메모리 위치를 지시하는 업데이트된 제 2 스택 포인터를 생성하고, 데이터가 상기 선택된 제 2 스택 포인터에 의해 지시된 상기 메모리 위치에 기록되도록 하기 위해, 스택이 구현되는 메모리 모듈에 상기 선택된 제 2 스택 포인터를 전송하고,상기 제 2 클럭 사이클의 제 2 위상 동안, 상기 제 2 클럭 사이클의 제 1 위상 동안에 제공된 상기 선택된 제 2 스택 포인터를 상기 업데이트된 제 2 스택 포인터로 대체하는 단계들을 수행하는, 스택 동작들을 수행하는 방법.
- 제 14 항에 있어서,상기 스택의 상부는 제 1 스택 포인터 레지스터에 저장되고 상기 스택의 상부 다음의 메모리 위치는 제 2 스택 포인터 레지스터에 저장되고,팝 동작이 완료된 후 상기 제 1 스택 포인터 레지스터는 상기 업데이트된 제 1 스택 포인터를 저장하고 상기 제 2 스택 포인터 레지스터는 상기 선택된 제 1 스택 포인터를 저장하고,푸쉬 동작이 완료된 후 상기 제 1 스택 포인터 레지스터는 상기 선택된 제 2 스택 포인터를 저장하고 상기 제 2 스택 포인터 레지스터는 상기 업데이트된 제 2 스택 포인터를 저장하는, 스택 동작들을 수행하는 방법.
- 처리 시스템 내에서 스택 동작들을 수행하는 장치에 있어서,명령을 디코딩하고 그에 따라 상기 스택 동작을 요구하는 제어 지시자를 생성하는 디코더,제 1 스택 포인터를 저장하는 제 1 스택 포인터 레지스터,제 2 스택 포인터를 저장하는 제 2 스택 포인터 레지스터,상기 디코더에 결합되고, 선택된 스택 포인터 및 상수를 수신하고 상기 제어 지시자에 따라 업데이트된 스택 포인터를 생성하는 가산기, 및상기 제 1 및 상기 제 2 스택 포인터들에 결합되고, 상기 가산기 및 상기 디코더에 결합되고, 상기 제어 지시자를 수신하고 그에 따라 상기 제 1 및 제 2 스택 포인터로부터 선택된 스택 포인터를 선택하는 선택 로직(selection logic)을 포함하고,상기 선택된 스택 포인터는 선택된 스택 포인터 레지스터에 저장되고, 상기 선택 로직은 선택되지 않은 스택 포인터 레지스터에 상기 선택된 스택 포인터를 전송하고, 상기 가산기 및 스택이 구현되는 메모리 모듈에 상기 선택된 스택 포인터를 전송하고, 상기 가산기로부터 상기 선택된 스택 포인터 레지스터로 상기 업데이트된 스택 포인터를 전송하는, 스택 동작들을 수행하는 장치.
- 제 16 항에 있어서,상기 제어 지시자가 팝 동작을 요구할 때 상기 선택 로직은 상기 제 1 스택 포인터 레지스터를 선택하는, 스택 동작들을 수행하는 장치.
- 제 16 항에 있어서,상기 제 1 스택 포인터는 스택의 상부를 지시하고, 상기 제 2 스택 포인터는 상기 스택의 상부 다음의 메모리 위치를 지시하는, 스택 동작들을 수행하는 장치.
- 제 16 항에 있어서,상기 선택 로직은 상기 선택된 스택 포인터를 선택하고, 상기 선택된 스택 포인터를 선택되지 않은 스택 포인터 레지스터에 전송하고, 클럭 사이클의 제 1 위상 동안 상기 선택된 스택 포인터를 상기 가산기에 전송하고 상기 클럭 사이클의 제 2 위상 동안 상기 업데이트된 스택 포인터를 상기 가산기로부터 상기 선택된 스택 포인터 레지스터로 전송하도록 구성되는, 스택 동작들을 수행하는 장치.
- 어드레스들을 생성하는 장치에 있어서,제 1 스택 포인터를 저장하는 제 1 스택 포인터 레지스터,제 2 스택 포인터를 저장하는 제 2 스택 포인터 레지스터,상기 제 1 및 제 2 스택 포인터들 외의 메모리 위치들을 저장하는, 복수의 레지스터들,상기 제 1 스택 포인터 레지스터, 상기 제 2 스택 포인터 레지스터 및 상기 복수의 레지스터들로부터 선택된 레지스터를 선택하는 두 개의 멀티플렉서들,상기 멀티플렉서들에 결합되고, 상기 선택된 레지스터의 콘텐츠 및 상수를 수신하고 상기 선택된 레지스터에 전송될 업데이트된 콘텐츠를 생성하기 위한 가산기,상기 제 1 및 제 2 스택 포인터 레지스터들에 결합되고, 상기 제 1 스택 포인터가 상기 제 2 스택 포인터 레지스터에 기록되도록 하고 상기 제 2 스택 포인터가 상기 제 1 스택 포인터 레지스터에 기록되도록 하는 스위치, 및상기 제 1 및 제 2 스택 포인터 레지스터들, 상기 가산기 및 디코더에 결합되고, 명령을 디코딩하고, 그에 따라 제어 신호들 및 제어 지시자를 생성하고 제공하기 위해 상기 명령을 수신하도록 구성되는, 제어 유닛을 포함하는, 어드레스 생성 장치.
- 제 20 항에 있어서,명령이 팝 동작을 요구할 때, 상기 제어 유닛은, 상기 두 개의 멀티플렉서들이 상기 제 1 스택 포인터 레지스터를 선택하도록 하고, 상기 스위치가 상기 제 2 스택 포인터 레지스터에 상기 제 1 스택 포인터를 기록하도록 하고, 상기 가산기가 상기 제 1 스택 포인터와 동일한 선택된 스택 포인터에 상수를 감산함으로써 업데이트된 제 1 스택 포인터를 생성하도록 하는 제어 신호들을 전송하는, 어드레스 생성 장치.
- 제 20 항에 있어서,명령이 푸쉬 동작을 요구할 때, 상기 제어 유닛은, 상기 두 개의 멀티플렉서들이 상기 제 2 스택 포인터 레지스터를 선택하도록 하고, 상기 스위치가 상기 제 1 스택 포인터 레지스터에 상기 제 2 스택 포인터를 기록하도록 하고, 상기 가산기가 상기 제 2 스택 포인터와 동일한 선택된 스택 포인터로부터 상수를 가산함으로써 업데이트된 제 2 스택 포인터를 생성하도록 하는 제어 신호들을 전송하는, 어드레스 생성 장치.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/436,891 US6654871B1 (en) | 1999-11-09 | 1999-11-09 | Device and a method for performing stack operations in a processing system |
US09/436,891 | 1999-11-09 | ||
US9/436,891 | 1999-11-09 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20010051522A KR20010051522A (ko) | 2001-06-25 |
KR100875377B1 true KR100875377B1 (ko) | 2008-12-23 |
Family
ID=23734241
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020000066072A KR100875377B1 (ko) | 1999-11-09 | 2000-11-08 | 처리 시스템에서 스택 팝 및 푸쉬 동작들을 수행하는 장치 및 방법 |
Country Status (5)
Country | Link |
---|---|
US (1) | US6654871B1 (ko) |
JP (1) | JP2001184211A (ko) |
KR (1) | KR100875377B1 (ko) |
CN (1) | CN1230739C (ko) |
TW (1) | TW535089B (ko) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10121745A1 (de) * | 2001-05-04 | 2002-11-14 | Systemonic Ag | Verfahren und Anordnung zu einem Stack mit einem, in Datengruppen mit mehreren Elementen aufgeteilten Speicher |
IL152006A0 (en) * | 2002-09-30 | 2003-07-31 | Rabintex Ind Ltd | Shell for ballistic helmet |
CN100353335C (zh) * | 2003-03-28 | 2007-12-05 | 联发科技股份有限公司 | 增加处理器中存储器的方法 |
US7111149B2 (en) * | 2003-07-07 | 2006-09-19 | Intel Corporation | Method and apparatus for generating a device ID for stacked devices |
WO2005096136A1 (en) * | 2004-03-31 | 2005-10-13 | Intel Corporation | Stack caching using code sharing |
US7290153B2 (en) | 2004-11-08 | 2007-10-30 | Via Technologies, Inc. | System, method, and apparatus for reducing power consumption in a microprocessor |
JP2006309508A (ja) * | 2005-04-28 | 2006-11-09 | Oki Electric Ind Co Ltd | スタック制御装置およびその方法 |
US7769983B2 (en) * | 2005-05-18 | 2010-08-03 | Qualcomm Incorporated | Caching instructions for a multiple-state processor |
US7454572B2 (en) * | 2005-11-08 | 2008-11-18 | Mediatek Inc. | Stack caching systems and methods with an active swapping mechanism |
US7647482B2 (en) * | 2006-03-31 | 2010-01-12 | Intel Corporation | Methods and apparatus for dynamic register scratching |
US7711927B2 (en) * | 2007-03-14 | 2010-05-04 | Qualcomm Incorporated | System, method and software to preload instructions from an instruction set other than one currently executing |
WO2008122746A1 (en) * | 2007-04-10 | 2008-10-16 | Cambridge Consultants Limited | Data processing apparatus |
US8055886B2 (en) | 2007-07-12 | 2011-11-08 | Texas Instruments Incorporated | Processor micro-architecture for compute, save or restore multiple registers and responsive to first instruction for repeated issue of second instruction |
JP5044387B2 (ja) * | 2007-12-26 | 2012-10-10 | ルネサスエレクトロニクス株式会社 | 情報処理装置及びそのスタックポインタ更新方法 |
US9645949B2 (en) | 2008-07-10 | 2017-05-09 | Cambridge Consultants Ltd. | Data processing apparatus using privileged and non-privileged modes with multiple stacks |
US9910823B2 (en) | 2011-05-16 | 2018-03-06 | Cypress Semiconductor Corporation | Stack processor using a ferroelectric random access memory (F-RAM) having an instruction set optimized to minimize memory fetch |
US9588881B2 (en) * | 2011-05-16 | 2017-03-07 | Cypress Semiconductor Corporation | Stack processor using a ferroelectric random access memory (F-RAM) for code space and a portion of the stack memory space having an instruction set optimized to minimize processor stack accesses |
US8934279B2 (en) * | 2011-05-16 | 2015-01-13 | Cypress Semiconductor Corporation | Stack processor using a ferroelectric random access memory (F-RAM) for code space and a portion of the stack memory space |
US9697002B2 (en) * | 2011-10-03 | 2017-07-04 | International Business Machines Corporation | Computer instructions for activating and deactivating operands |
CN112486897B (zh) * | 2019-09-11 | 2024-07-09 | 中国科学院微电子研究所 | 一种高速缓存系统及单周期多数据的入栈、出栈操作方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR970705077A (ko) * | 1995-05-26 | 1997-09-06 | 존 엠. 클락3세 | 팝(POP) 명령 실행 장치 및 방법(Apparatus and Method for Executing Pop Instructions) |
KR19980034448A (ko) * | 1996-11-06 | 1998-08-05 | 김영환 | 마이크로프로세서의 1 사이클 스택 오퍼레이션 라이트 회로 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS58221446A (ja) * | 1982-06-18 | 1983-12-23 | Hitachi Ltd | スタツクアドレス選択方式 |
JPS62128337A (ja) * | 1985-11-30 | 1987-06-10 | Nec Corp | スタツク制御方式 |
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 |
JPH0752576B2 (ja) | 1990-07-19 | 1995-06-05 | 株式会社東芝 | スタックメモリ |
US5381360A (en) * | 1993-09-27 | 1995-01-10 | Hitachi America, Ltd. | Modulo arithmetic addressing circuit |
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 |
US5958039A (en) * | 1997-10-28 | 1999-09-28 | Microchip Technology Incorporated | Master-slave latches and post increment/decrement operations |
-
1999
- 1999-11-09 US US09/436,891 patent/US6654871B1/en not_active Expired - Lifetime
-
2000
- 2000-10-20 TW TW089122103A patent/TW535089B/zh not_active IP Right Cessation
- 2000-11-07 JP JP2000338990A patent/JP2001184211A/ja active Pending
- 2000-11-08 CN CNB001329375A patent/CN1230739C/zh not_active Expired - Fee Related
- 2000-11-08 KR KR1020000066072A patent/KR100875377B1/ko active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR970705077A (ko) * | 1995-05-26 | 1997-09-06 | 존 엠. 클락3세 | 팝(POP) 명령 실행 장치 및 방법(Apparatus and Method for Executing Pop Instructions) |
KR19980034448A (ko) * | 1996-11-06 | 1998-08-05 | 김영환 | 마이크로프로세서의 1 사이클 스택 오퍼레이션 라이트 회로 |
Also Published As
Publication number | Publication date |
---|---|
US6654871B1 (en) | 2003-11-25 |
JP2001184211A (ja) | 2001-07-06 |
KR20010051522A (ko) | 2001-06-25 |
CN1295279A (zh) | 2001-05-16 |
TW535089B (en) | 2003-06-01 |
CN1230739C (zh) | 2005-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100875377B1 (ko) | 처리 시스템에서 스택 팝 및 푸쉬 동작들을 수행하는 장치 및 방법 | |
US4734852A (en) | Mechanism for performing data references to storage in parallel with instruction execution on a reduced instruction-set processor | |
EP0689128B1 (en) | Computer instruction compression | |
EP0415461B1 (en) | Central processing unit supporting variable length instructions | |
US20200364054A1 (en) | Processor subroutine cache | |
US6611909B1 (en) | Method and apparatus for dynamically translating program instructions to microcode instructions | |
EP0380846A2 (en) | Method and apparatus for resolving a variable number of potential memory access conflicts in a pipeline computer system | |
EP0213843A2 (en) | Digital processor control | |
JP2002073330A (ja) | データ処理装置 | |
JP3729545B2 (ja) | キャッシュメモリへのアクセス | |
US5944801A (en) | Isochronous buffers for MMx-equipped microprocessors | |
US6591359B1 (en) | Speculative renaming of data-processor registers | |
JPH0332818B2 (ko) | ||
US4812971A (en) | Central processing unit for a digital computer | |
US5617549A (en) | System and method for selecting and buffering even and odd instructions for simultaneous execution in a computer | |
US20120173850A1 (en) | Information processing apparatus | |
US4893235A (en) | Central processing unit for a digital computer | |
US4430708A (en) | Digital computer for executing instructions in three time-multiplexed portions | |
US7134000B2 (en) | Methods and apparatus for instruction alignment including current instruction pointer logic responsive to instruction length information | |
KR20040111559A (ko) | 주소 레지스터의 내용을 스와핑하기 위한 방법 및 장치 | |
JP3490005B2 (ja) | 命令制御装置及びその方法 | |
KR920002573B1 (ko) | 데이타 처리기 | |
EP0915416B1 (en) | System for allowing a two word instruction to be executed in a single cycle and method therefor | |
EP4193250B1 (en) | Processing apparatus | |
WO1984000833A1 (en) | Pre-execution next address calculating mechanism |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
N231 | Notification of change of applicant | ||
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20121206 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20131209 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20141205 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20151204 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20171211 Year of fee payment: 10 |