KR100246465B1 - 마이크로프로세서 스택 명령어의 수행사이클을 줄이기 위한 장치 및 그 방법 - Google Patents

마이크로프로세서 스택 명령어의 수행사이클을 줄이기 위한 장치 및 그 방법 Download PDF

Info

Publication number
KR100246465B1
KR100246465B1 KR1019960052489A KR19960052489A KR100246465B1 KR 100246465 B1 KR100246465 B1 KR 100246465B1 KR 1019960052489 A KR1019960052489 A KR 1019960052489A KR 19960052489 A KR19960052489 A KR 19960052489A KR 100246465 B1 KR100246465 B1 KR 100246465B1
Authority
KR
South Korea
Prior art keywords
stack pointer
stack
register
pointer value
data
Prior art date
Application number
KR1019960052489A
Other languages
English (en)
Other versions
KR19980034448A (ko
Inventor
이수정
김영복
Original Assignee
김영환
현대전자산업주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 김영환, 현대전자산업주식회사 filed Critical 김영환
Priority to KR1019960052489A priority Critical patent/KR100246465B1/ko
Publication of KR19980034448A publication Critical patent/KR19980034448A/ko
Application granted granted Critical
Publication of KR100246465B1 publication Critical patent/KR100246465B1/ko

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

1. 청구범위에 기재된 발명이 속한 기술분야
마이크로프로세서의 1 사이클 스택 오퍼레이션 라이트 회로
2. 발명이 해결하려고 하는 기술적 과제
본 발명이 해결하려는 기술적 과제는, 메모리 버퍼 레지스터에서 데이터를 라이트하는 것과 산술/논리 연산기에서 계산된 스택 포인터 레지스터 값을 라이트하는 것을 동시에 수행하여, 1사이클에 스택 오퍼레이션을 하는 회로를 제공하는데 있다.
3. 발명의 해결방법의 요지
마이크로프로세서의 1 사이클 스택 오퍼레이션 라이트 회로에 있어서, 산술/논리 연산기에서 스택 포인터 레지스터로 바로 가는 경로를 제공하여, 스택 오퍼레이션을 할 때 라이트_백 버스에서 데이터를 라이트하는 것과, 산술/논리 연산기에서 계산된 스택 포인터를 스택 포인터 레지스터에 라이트하는 것을 동시에 수행함으로서, 1 사이클에 스택 오퍼레이션 라이트를 수행하는 회로를 제공함.
4. 발명의 중요한 용도
본 발명은 메모리 버퍼 레지스터(MBR)에서 데이터를 쓰는 것과 동시에 산술/논리 연산기에서 계산된 스택 포인터 레지스터 데이터 값을 쓰는 것을 가능하게 하는 회로로 사용됨.

Description

마이크로프로세서에서 스택 명령어의 수행 사이클을 줄이기 위한 장치 및 그 방법
본 발명은 마이크로프로세서에 관한 것으로 특히 새로운 스택 포인터 값을 계산하는 산술/논리 연산기(ALU, Arithmetic Logic Unit)와 스택 포인터를 저장하는 스택 포인터 레지스터 간에 새로운 데이터 경로를 추가하여, 마이크로프로레서의 스택 명령어(팝 명령어, 푸시 명렁어) 수행 시 필요한 처리 사이클 수를 줄인 장치 및 그 방법에 관한 것이다.
잘 알려진 바와 같이, 스택 명령어에는 팝(POP)와 푸시(PUSH)가 있다.
팝은 범용 레지스터(general purpose register) 중의 하나인 스택 포인터 레지스터에 저장된 스택 포인터가 포인팅하는 스택 레지스터의 데이터를 읽어와 다수의 범용 레지스터 중 하나의 레지스터에 라이트하고, 스택 포인터 값을 하나 증가시켜 스택 포인터 레지스터에 라이트하는 스택 명령어이다. 그리고, 푸시는 스택 포인터 레지스터의 스택 포인터가 포인팅하는 스택 레지스터의 데이터를 읽어와 범용 레지스터 중 하나의 레지스터에 라이트하고, 스택 포인터 값을 하나 감소시켜 스택 포인터 레지스터에 라이트 하는 스택 명령어이다.
종래의 상기 팝 및 푸시 명령어에 대한 처리 과정을 구체적으로 설명하면, 먼저 범용 레지스터 중의 하나인 스택 포인터 레지스터의 스택 포인터에 의해 포인팅된 스택 레지스터의 데이터를 읽어와 임시 저장 수단인 메모리 버퍼 레지스터(MBR, Memory Buffer Register)에 라이트하고, 스택 레지스터의 데이터를 읽는 동시에 산술/논리 연산기에서 스택 포인터 레지스터의 스택 포인터 값을 읽어와 상수 "1"을 가산하거나(팝 명령어일 경우) 감산하여(푸시 명령어일 경우) 새로운 스택 포인터의 값을 생성한다. 계속해서, 메모리 버퍼 레지스터(MBR)에 저장된 데이터를 범용 레지스터 중 임의의 한 레지스터에 라이트하고, 산술/논리 연산기에서 생성된 새로운 스택 포인터의 값 역시 스택 포인터 레지스터에 라이트해야 한다.
이때, 종래에는 범용 레지스터에 라이트하기 위한 데이터가 실리는 데이터 버스를 공통으로 사용함으로써, 우선 메모리 버퍼 레지스터(MBR)에 저장된 데이터를 읽어와 데이터 버스를 통해 범용 레지스터에 라이트하고, 그 다음에 산술/논리 연산기에서 계산된 새로운 스택 포인터 값을 읽어와 데이터 버스를 통해 스택 포인터 레지스터에 라이트하였다.
따라서, 종래에는 메모리 버퍼 레지스터(MBR)에 저장된 데이터를 읽어와 범용 레지스터에 라이트하는데 1 사이클이 필요하고, 산술/논리 연산기에서 계산된 새로운 스택 포인터의 값을 스택 포인터 레지스터에 라이트하는데 다시 추가의 1 사이클이 더 필요함으로써, 스택 명령어의 처리 사이클 수가 많아지는 문제가 있다.
본 발명은 상기 문제점을 해결하기 위하여 안출된 것으로써, 새로운 스택 포인터 값을 계산하는 산술/논리 연산기와 스택 포인터를 저장하는 스택 포인터 레지스터 간에 데이터 통로를 추가로 구비하여, 메모리 버퍼 레지스터(MBR)의 데이터를 범용 레지스터에 라이트하는 동작과 새로운 스택 포인터의 값을 스택 포인터 레지스터에 라이트하는 동작을 1사이클에서 동시 수행함으로써 스택 명령어의 수행 사이클을 줄이기 위한 장치 및 그 방법을 제공하는데 그 목적이 있다.
도 1 은 본 발명에 따른 스택 명령어의 처리 사이클을 줄이기 위한 장치를 개념적으로 도시한 도면.
* 도면의 주요부분에 대한 부호의 설명
10 : 범용 레지스터 15 : 스택 포인터 레지스터
20 : 메모리 버퍼 레지스터 30 : 산술/논리 연산기
40 : 스택 레지스터 50 : 라이트_백 버스
상기 목적을 달성하기 위한 본 발명은, 마이크로프로레서에서의 스택 명령어 수행 시 처리 사이클을 줄이기 위한 장치에 있어서, 스택 포인터 값을 저장하고 있는 스택 포인터 레지스터를 포함한 다수의 범용 레지스터; 데이터를 저장하고 있는 스택 레지스터; 상기 스택 포인터 저장 수단의 스택 포인터에 의해 포인팅된 상기 스택 레지스터의 데이터를 읽어와 임시 저장하기 위한 임시 저장 수단; 상기 임시 저장 수단에 저장된 데이터를 입력받아 상기 범용 레지스터에 라이트하기 위한 상기 임시 저장 수단과 상기 스택 포인터 저장 수단 사이의 제1 데이터 버스; 상기 스택 명령어 수행 시, 제1 오퍼랜드 버스로부터 상기 스택 포인터 값을 입력받고, 제2 오퍼랜드 버스로부터 상수 "1"을 입력받아 새로운 스택 포인터 값을 생성하기 위한 산술/논리 연산 수단; 및 상기 산술/논리 연산 수단에서 생성된 새로운 스택 포인터 값을 상기 스택 포인터 저장 수단에 직접 라이트하기 위한 상기 산술/논리 연산 수단과 상기 스택 포인터 저장 수단 사이의 제2 데이터 버스를 포함하여, 상기 제1 데이터 버스를 통한 상기 데이터의 라이트 동작과 상기 제2 데이터 버스를 통한 상기 스택 포인터 값의 라이트 동작을 동일 사이클에서 동시에 수행하는 것을 특징으로 한다.
또한, 본 발명은 마이크로프로세서의 스택 명령어 수행 시 처리 사이클을 줄이기 위한 방법에 있어서, 스택 포인터 레지스터의 스택 포인터에 응답하여 포인팅되는 스택 레지스터의 데이터를 읽어와 저장하는 제1 단계; 상기 스택 포인터 값 및 상수 "1"로부터 새로운 상기 스택 포인터 값을 계산하는 제2 단계; 및 상기 제1 단계에서 저장된 데이터를 다수의 범용 레지스터 중 임의의 한 레지스터에 라이트하고, 동시에 상기 제2 단계에서 생성된 상기 스택 포인터 값을 상기 스택 포인터 레지스터에 라이트하는 제3 단계를 포함하여 이루어진다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 가장 바람직한 실시예를 첨부된 도면을 참조하여 설명하기로 한다.
도 1은 본 발명에 따른 스택 명령어의 처리 사이클을 줄이기 위한 장치를 개념적으로 도시한 도면으로서, 8개의 범용 레지스터(10)와, 8개의 범용 레지스터(10)에 라이트할 데이터가 실리는 데이터 버스인 라이트_백 버스(50)와, 범용 레지스터 중 스택 레지스터를 포인팅하기 위한 스택 포인터 값을 저장하고 있는 스택 포인터 레지스터(15, 이하 ESP라 함)와, ESP로부터의 스택 포인터(SP)에 의해 포인팅되는 스택 구조의 레지스터(40)와, 스택 포인터(SP)에 의해 포인팅된 스택 레지스터(40)의 데이터를 읽어와 임시로 저장한 후 범용 레지스터(10)에 그 데이터를 라이트하기 위해 라이트_백 버스(50)에 싣는 메모리 버퍼 레지스터(20, 이하 MBR이라 함)와, 오퍼랜드 버스(A, B)로부터 오퍼랜드를 입력받아 각종 연산 동작을 수행하며, 스택 명령어 수행 시 오퍼랜드 버스(A)로부터 ESP(15)에 저장된 스택 포인터 값을 입력받고, 오퍼랜드 버스(B)로부터 상수 "1"을 입력받아 새로운 스택 포인터 값을 계싼한 후 별도의 데이터 통로(68)를 통해 계산된 스택 포인터 값을 ESP(15)에 라이트하는 산술/논리 연산기(30)로 이루어진다.
본 발명에 따른 팝과 푸시 스택 명령어의 수행 과정을 도 1을 참조하여 상세히 설명한다.
팝 및 푸쉬 스택 명령어를 수행할 때, 먼저 범용 레지스터(10) 중의 하나인 ESP(15)의 스택 포인터(SP)에 의해 포인팅된 스택 레지스터(40)의 데이터를 읽어와 임시 저장 수단인 MBR(20)에 라이트하고, 스택 레지스터(40)의 데이터를 읽는 동시에 산술/논리 연산기(30)에서 오퍼랜드 버스(A)에 실려있는 ESP(15)의 스택 포인터 값을 읽어와 오퍼랜드 버스(B)의 상수 "1"을 가산하거나(팝 명령어일 경우) 감산하여(푸시 명령어일 경우) 새로운 스택 포인터의 값을 생성한다. 계속해서, 동일 사이클에서 라이트_백 버스(50)을 통해 MBR(20)에 저장된 데이터를 범용 레지스터(10) 중 임의의 한 레지스터에 라이트하고, 데이터 통로(68)를 통해 산술/논리 연산기(30)에서 생성된 새로운 스택 포인터 값을 ESP(15)에 라이트한다. 여기서, 범용 레지스터에 라이트할 데이터들의 통로인 라이트_백 버스와는 별도로 ESP(15)와 산술/논리 연산기(30) 간의 데이터 통로(68)를 구비하여, 라이트_백 버스를 통해 MBR(20)에 저장된 데이터를 범용 레지스터(10)에 라이트하는 동작과 데이터 통로(68)를 통해 산술/논리 연산기(30)로부터의 새로운 스택 포인터 값을 ESP(15)에 라이트하는 동작을 동시에 수행함으로써, 1 사이클 동안에 데이터 라이트 동작 및 스택 포인터 값 라이트 동작이 동시에 이루어진다.
본 발명의 기술 사상은 상기 바람직한 실시예에 따라 구체적으로 기술되었으나, 상기한 실시예는 그 설명을 위한 것이며 그 제한을 위한 것이 아님을 주의하여야 한다. 또한, 본 발명의 기술 분야의 통상의 전문가라면 본 발명의 기술 사상의 범위 내에서 다양한 실시예가 가능함을 이해할 수 있을 것이다.
상기와 같이 이루어지는 본 발명은, 산술/논리 연산기에서 스택 포인터 레지스터로 바로 가는 데이터 통로를 추가로 구비함으로써, 스택 명령어 수행 시 스택 레지스터로부터 읽어온 메모리 버퍼 레지스터의 데이터를 범용 레지스터에 라이트하는 동작과 산술/논리 연산기에서 계산된 새로운 스택 포인터 값을 스택 포인터 레지스터에 라이트하는 동작을 1사이클에서 동시에 수행할 수 있어 스택 명령어 처리 사이클 수를 줄일 수 있는 효가가 있다.
또한, 본 발명은 스택 명령어 수행 시 사이클 당 수행할 수 있는 명령어의 수를 증가시켜 전체 마이크로프로세서의 성능을 향상시키는 효과가 있다.

Claims (4)

  1. 마이크로프로세서에서의 스택 명령어 수행 시 처리 사이클을 줄이기 위한 장치에 있어서, 스택 포인터 값을 저장하고 있는 스택 포인터 레지스터를 포함한 다수의 범용 레지스터; 데이터를 저장하고 있는 스택 레지스터; 상기 스택 포인터 저장 수단의 스택 포인터에 의해 포인팅된 상기 스택 레지스터의 데이터를 읽어와 임시 저장하기 위한 임시 저장 수단; 상기 임시 저장 수단에 저장된 데이터를 입력받아 상기 범용 레지스터에 라이트하기 위한 상기 임시 저장 수단과 상기 스택 포인터 저장 수단 사이의 제1 데이터 버스; 상기 스택 명령어 수행 시, 제1 오퍼랜드 버스로부터 상기 스택 포인터 값을 입력받고, 제2 오퍼랜드 버스로부터 상수 "1"을 입력받아 새로운 스택 포인터 값을 생성하기 위한 산술/논리 연산 수단; 및 상기 상술/논리 연산 수단에서 생성된 새로운 스택 포인터 값을 상기 스택 포인터 저장 수단에 직접 라이트하기 위한 상기 상술/논리 연산 수단과 상기 스택 포인터 저장 수단 사이의 제2 데이터 버스를 포함하여, 상기 제1 데이터 버스를 통한 상기 데이터의 라이트 동작과 상기 제2 데이터 버스를 통한 상기 스택 포인터 값의 라이트 동작을 동일 사이클에서 동시에 수행하는 것을 특징으로 하는 스택 명령어 수행 시 처리 사이클을 줄이기 위한 장치.
  2. 제1항에 있어서, 상기 산술/논리 연산 수단은, 상기 스택 명령어 중 팝 명령어일 때 상기 스택 포인터 값이 상기 상수 "1"을 가산하여 상기 새로운 스택 포인터 값을 생성하고, 상기 스택 명령어 중 푸시 명령어일 때 상기 스택 포인터 값에서 상기 상수 "1"을 감산하여 상기 새로운 스택 포인터 값을 생성하는 것을 특징으로 하는 스택 명령어 수행 시 처리 사이클을 줄이기 위한 장치.
  3. 마이크로프로세서의 스택 명령어 수행 시 처리 사이클을 줄이기 위한 방법에 있어서, 스택 포인터 레지스터의 스택 포인터에 응답하여 포인팅되는 스택 레지스터의 데이터를 읽어와 저장하는 제1 단계; 상기 스택 포인터 값 및 상수 "1"로부터 새로운 상기 스택 포인터 값을 계산하는 제2 단계; 및 상기 제1 단계에서 저장된 데이터를 다수의 범용 레지스터 중 임의의 한 레지스터에 라이트하고, 동시에 상기 제2 단계에서 생성된 상기 스택 포인터 값을 상기 스택 포인터 레지스터에 라이트하는 제3 단계를 포함하여 이루어지는 스택 명령어 수행 시 처리 사이클을 줄이기 위한 방법.
  4. 제3항에 있어서, 상기 제2 단계는, 상기 스택 명령어 중 팝 명령어일 때, 상기 스택 포인터 값에 상기 상수 "1"을 가산하여 상기 새로운 스택 포인터 값을 생성하는 제4 단계; 및 상기 스택 명령어 중 푸시 명령어일 때, 상기 스택 포인터 값에서 상기 상수 "1"을 감산하여 상기 새로운 스택 포인터 값을 생성하는 제5 단계를 포함하여 이루어지는 스택 명령어 수행 시 처리 사이클을 줄이기 위한 방법.
KR1019960052489A 1996-11-06 1996-11-06 마이크로프로세서 스택 명령어의 수행사이클을 줄이기 위한 장치 및 그 방법 KR100246465B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019960052489A KR100246465B1 (ko) 1996-11-06 1996-11-06 마이크로프로세서 스택 명령어의 수행사이클을 줄이기 위한 장치 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960052489A KR100246465B1 (ko) 1996-11-06 1996-11-06 마이크로프로세서 스택 명령어의 수행사이클을 줄이기 위한 장치 및 그 방법

Publications (2)

Publication Number Publication Date
KR19980034448A KR19980034448A (ko) 1998-08-05
KR100246465B1 true KR100246465B1 (ko) 2000-03-15

Family

ID=19481017

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960052489A KR100246465B1 (ko) 1996-11-06 1996-11-06 마이크로프로세서 스택 명령어의 수행사이클을 줄이기 위한 장치 및 그 방법

Country Status (1)

Country Link
KR (1) KR100246465B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6654871B1 (en) * 1999-11-09 2003-11-25 Motorola, Inc. Device and a method for performing stack operations in a processing system

Also Published As

Publication number Publication date
KR19980034448A (ko) 1998-08-05

Similar Documents

Publication Publication Date Title
CN109661647B (zh) 数据处理装置和方法
JPS62180427A (ja) プログラム制御回路
US5053986A (en) Circuit for preservation of sign information in operations for comparison of the absolute value of operands
US4954947A (en) Instruction processor for processing branch instruction at high speed
US5757685A (en) Data processing system capable of processing long word data
US4093983A (en) Fast and normal rate instruction fetching
US6263424B1 (en) Execution of data dependent arithmetic instructions in multi-pipeline processors
JP4465081B2 (ja) Vliwプロセッサにおける効率的なサブ命令エミュレーション
KR100246465B1 (ko) 마이크로프로세서 스택 명령어의 수행사이클을 줄이기 위한 장치 및 그 방법
US5819081A (en) Method of executing a branch instruction of jumping to a subroutine in a pipeline control system
US6233675B1 (en) Facility to allow fast execution of and, or, and test instructions
US6728870B1 (en) Register move operations
JPH0222413B2 (ko)
US5854919A (en) Processor and its operation processing method for processing operation having bit width exceeding data width of bit storage unit
US6289439B1 (en) Method, device and microprocessor for performing an XOR clear without executing an XOR instruction
JP2883488B2 (ja) 命令処理装置
US6944753B2 (en) Fixed point unit pipeline allowing partial instruction execution during the instruction dispatch cycle
JP3325309B2 (ja) サブルーチンリターン命令処理装置
JPS61143850A (ja) 処理装置
JP3124361B2 (ja) メモリデータロード装置
JP3523407B2 (ja) 情報処理装置
JPH05150943A (ja) コンピユータ装置
JP2866143B2 (ja) 動的パイプライン処理装置
JPH0588890A (ja) データ処理方法
KR19990066458A (ko) 데이터 처리기

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
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20051118

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee