KR100381876B1 - 프로그램카운팅시스템및카운터의동작방법 - Google Patents

프로그램카운팅시스템및카운터의동작방법 Download PDF

Info

Publication number
KR100381876B1
KR100381876B1 KR1019950019252A KR19950019252A KR100381876B1 KR 100381876 B1 KR100381876 B1 KR 100381876B1 KR 1019950019252 A KR1019950019252 A KR 1019950019252A KR 19950019252 A KR19950019252 A KR 19950019252A KR 100381876 B1 KR100381876 B1 KR 100381876B1
Authority
KR
South Korea
Prior art keywords
program counter
jump
mode
pointer
pointer number
Prior art date
Application number
KR1019950019252A
Other languages
English (en)
Other versions
KR970007621A (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 KR1019950019252A priority Critical patent/KR100381876B1/ko
Publication of KR970007621A publication Critical patent/KR970007621A/ko
Application granted granted Critical
Publication of KR100381876B1 publication Critical patent/KR100381876B1/ko

Links

Classifications

    • 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

Landscapes

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

Abstract

본 발명은 프로그램 카운터를 감소시키는 것은 물론 프로그램 카운터를 증가시킬 수 있는 향상된 프로그램 카운터에 관한 것이다. 이 기능은 컴퓨터 논리에 판단 트리를 효율적으로 구현한다. 위치의 값이 판단되어 선정된 상수에 비교된다. 예를 들면, 각각의 세가지 조건에 대해 서로 다른 판단이 이루어진다. 판단들 중에서 한 개의 판단은 프로그램 카운터로 하여금 현재의 프로그램 리스트를 계속하게 한다. 두번째 판단은 카운터로 하여금 새로운 리스트로 이동하여 카운터가 감소되도록 한다. 마지막 판단은 두번째 판단과 동일한 위치로 이동하게 하지만, 카운터를 증가시킨다.

Description

프로그램 카운팅 시스템 및 카운터의 동작 방법{Incrementing and Decrementing a Microprocessor Program Counter}
본 발명은 컴퓨터 또는 마이크로프로세서를 위한 개선된 프로그램 카운터에 관한 것이다.
모든 마이크로프로세서는 마이크로프로세서를 인에이블시켜 프로그램 코드를 판독하여 그 안에 저장된 명령을 실행하도록 설계된 프로그램 카운터를 포함하고 있다. 마이크로프로세서의 프로그램 카운터는 프로그램 카운터의 작용을 변경시킬수도 있는 어떠한 다른 동작도 존재하지 않는다고 가정할 때 정상적으로 클록 주기마다 증가된다. 이와 같은 프로그램 카운터의 증가는 결국 하위 메모리 어드레스 값으로부터 상위 어드레스 값으로 프로그램 실행이 진행되도록 한다.
제1A도는 종래기술의 전형적인 시스템을 도시한다. 10으로 가리켜진 한 코드의 말미에서, PC가 어디로 이동하여야 하는 지를 판단하는 검사가 수행된다. 예를 들면, 검사는 두 개의 레지스터 X와 Y의 비교일 수 있다. 기본 논리는 X≤Y 또는 X>Y인지를 식별한다. 만약 X≤Y이면 PC는 명령 A로 이동하고 이들이 수행된다. 만약 X>Y이면 PC는 명령 B로 이동하고 이들이 수행된다. 제1B도는 이 동작 모드에 대한 판단 트리를 도시한다.
이와 같은 동작 형태는 명백히 다소 제한적이다. 별도의 판단 단계 없이는 3 개 이상의 선택을 갖는 판단을 실행하는 것은 가능하지 않다. 이것은 명백히 판단 프로세스(decision making process)를 지연시키게 될 것이다.
본 발명의 한 가지 목적은 적어도 일부의 상술한 지연을 최소화함으로써 좀 더 고속의 프로세서를 제공하는 향상된 시스템을 제공하는 것이다.
본 발명의 한 특징에 따르면, 그 어드레스 값을 증가시키거나 또는 감소시킬 수 있는 프로그램 카운터를 구비하는 프로그램 카운팅 시스템이 제공된다.
이 시스템은 마이크로프로세서가 한 개의 판단 단계를 만들 수 있다는 장점이 있는데, 이 단계는 가능한 명령들 중에서 좀더 많은 선택을 할 수 있게 해준다. 이것은 처리시간의 증가없이 좀 더 복잡한 판단이 이루어질 수 있게 한다.
본 발명의 다른 특징에 따르면, 프로그램 리스팅에서 선정된 비트를 판독하는 단계, 비트값에 따른 판단 단계, 첫번재 판단에 응답하여 프로그램 카운터를 증가시키는 단계, 및 두번째 판단에 응답하여 프로그램 카운터를 감소시키는 단계를 포함하는 프로그램 카운터의 동작 방법이 제공된다.
이제 예시적으로 첨부하는 도면을 참조하여 설명한다.
본 발명은 제2A도에 포괄적으로 20으로 도시된 프로그램 카운터를 제공한다. 프로그램 카운터는 증가 및 감소 모두를 할 수 있다. 이 기능은 프로세서 상태 또는 프로세서 신호에 따라 프로그램 카운터의 값이 증가 혹은 감소될 수 있도록 한다. 이 프로세서 상태는 코드의 리스트(24)의 검사를 해석하여 판단된다. 예를 들면, 이 검사는 정수값 N과 선정된 상수 M의 비교일 수 있다. 만약 N=M이면 명령 A가 실행되고, 만약 N<M이면 명령 B가 실행되며 만약 N>M이면 명령 C가 실행된다.
명령 A는 카운터로 하여금 첫번째 코드 리스트를 밑으로 계속 내려가게 한다. 명령 B는 카운터로 하여금 코드 리스트(28)에서 위치 26으로 이동하여 화살표 (30)으로 가리켜진 바와 같이 코드를 내려가면서 읽게 한다. 명령 C는 카운터로 하여금 위치 26으로 이동하여 화살표(32)의 방향으로 코드를 올라가면서 읽게 한다. 카운터가 위치 26으로부터 올라가면서 용이하게 읽을 수 있도록 위치들 34 내지 36의 모든 정보는 역순으로 기록된다. 달리 표현하면 상위 어드레스는 위치 34에 있고 하위 어드레스는 위치 36에 있으며 프로그램 카운터는 상위 어드레스 값으로부터 하위 어드레스 값으로 읽는다. 이것은 명확히 표준 프로그램 카운터가 작동하는 방향과 반대방향이다.
이와 같이 프로그램 카운터를 동작시킴으로써, 별도의 판단 단계가 필요없고, 두 가지 선택중 하나의 선택이 아니라 세 가지 선택중 하나의 선택을 결정할 수 있게 된다. 달리 표현하면 판단 트리를 수행하는데 사용되는 사이클의 수를 감소시킨다. 이것은 3 가지 이상의 선택을 갖는 판단 단계가 이루어질 때 카운터의 동작 속도를 효율적으로 증가시킨다.
본 발명을 이용함으로써 제2B도에 도시된 것과 같은 판단의 첫번째 분기는 노멀로 수행된다. 코드(24)의 검사는 N의 값이 M보다 크거나 또는 같은지를 판단하는데 사용된다. 만약 이것이 포인터가 위치 26으로 이동한 경우라면, 분기의 목적지인 위치 26에서, 프로그램 카운터는 N의 값이 M보다 크거나 또는 같았는 지에 따라 "위쪽" 또는 "아래쪽"으로 코드를 실행한다. 예를 들어, 만약 N>M이면 "위쪽"이고 만약 N<M이면 "아래쪽"이다.
코드를 "위쪽"으로 읽기 위해서는 이전에 지적한 바와 같이 정상적인 방향으로부터 코드를 역전시킬 필요가 있다. 이것은 예로 어셈블러 또는 컴파일러를 이용하여 메모리를 반전시킴으로써 달성될 수 있다.
상술한 본 발명의 실시예에서, 이미 설명한 특정한 예 대신에 사용될 수 있는 여러가지 많은 변형 예가 존재한다. 예를 들면, 판단 툴은 N과 M의 상대적인 값에 따를 필요가 없다. 대신에 이들은 다른 논리 세트에 따르도록 설계될 수 있다. 분명히 알 수 있는 바와 같이 본 발명은 어셈블리 코드에 한정되지 않고 카운터 또는 포인터가 존재하는 임의의 컴퓨터 프로그램에 적용될 수 있다.
본 발명이 마이크로프로세서를 참조로 설명되었지만, 컴퓨터와 마이크로프로세서 및 임의 유형의 프로세서 상에서 사용될 수 있다.
제1A도는 종래 기술 시스템의 블럭도.
제1B도는 제1A도 시스템용 어셈블리 코드 판단표.
제2A도는 본 발명의 한 특징에 따른 시스템의 블럭도.
제2B도는 제2A도 시스템용 어셈블리 코드 판단표.
<도면의 주요부분에 대한 부호의 설명>
26, 34, 36 : 위치
24, 28 : 코드

Claims (2)

  1. 클록 사이클을 생성하는 클록에 의해 조정되는 프로그램 카운터 시스템에 있어서,
    하나의 기계적 조건 점프 명령에 응답하여 그리고 하나의 클록 사이클 이내에서, 명령에 의해 표시되는 2개의 연산수 M과 N이 (A)M=N, (B)M<N, (C)M>N 인지의 여부에 따라, 제1 프로그램 카운터 신호, 제2 프로그램 카운터 신호, 또는 제3 프로그램 카운터 신호 중 어느 하나인 프로그램 카운터 신호를 발생시키는 논리 회로와;
    포인터 번호를 저장하며, (i) 각각의 클록 사이클마다 상기 포인터 번호를 노멀하게 증가시키는 디폴트 증가 모드와, (ii) 각각의 클록 사이클 마다 상기 포인터 번호를 노멀하게 감소시키는 감소 모드 중 어느 하나의 모드에서 동작가능한 어드레스 포인터 레지스터를 가지며,
    제1 프로그램 카운터 신호, 제2 프로그램 카운터 신호, 또는 제3 프로그램 카운터 신호 중 어느 하나인 프로그램 카운터 신호에 응답하고, 이에 따라, (A) 상기 포인터 번호를 증가시키고, (B) 상기 포인터 번호를 특정 점프 번호로 변경시키고, 그후 상기 감소 모드에서 처리를 진행하거나, 또는 (C) 상기 포인터 번호를 특정 점프 번호로 변경하고, 그후 상기 디폴트 증가 모드에서 처리를 진행하는 프로그램 카운터 회로를 구비하되,
    하나의 기계적 조건 점프 명령은 3개의 선택 처리(alternatives)를 가능하게하며, 이들 처리는 명령들의 현재 블록에서의 처리이거나 또는 새로운 명령들의 2개의 선택 블록 중 어느 하나가 시작되는 하나의 새로운 명령 어드레스로의 점프 처리인 것을 특징으로 하는 프로그램 카운터 시스템.
  2. 2개의 연산수 M과 N을 나타내는 조건 점프 명령에 응답하여 클록 사이클을 생성하는 클록에 의해 조정되는 프로그램 카운터 시스템을 동작시키는 방법에 있어서,
    포인터 번호를 저장하며, (i) 각각의 클록 사이클마다 상기 포인터 번호를 노멀하게 증가시키는 디폴트 증가 모드와, (ii) 각각의 상기 사이클 마다 포인터 번호를 노멀하게 감소시키는 감소 모드 중 어느 하나의 모드에서 동작가능한 프로그램 카운터 회로를 제공하는 단계와;
    (A) M=N, (B) M<N, 또는 (C) M>N인지를 판정하는 단계; 및
    상기 판정에 따라, (A) M=N이면 상기 포인터 번호를 증가시키고, (B) M<N이면 상기 포인터 번호를 특정 점프 번호로 변경하고, 그후 상기 감소 모드에서 처리를 진행하거나, 또는 (C) M>N이면 상기 포인터 번호를 특정 점프 번호로 변경하고, 그후 상기 디폴트 증가 모드에서 처리가 진행되도록 상기 프로그램 카운터 회로에 지시하는 단계
    를 포함하되,
    하나의 기계적 조건 점프 명령은 3개의 선택 처리(alternatives)를 가능하게 하며, 이들 처리는 명령들의 현재 블록에서의 처리이거나 또는 새로운 명령들의 2개의 선택 블록 중 어느 하나가 시작되는 하나의 새로운 명령 어드레스로의 점프 처리인 것을 특징으로 하는 프로그램 카운터 시스템의 동작 방법.
KR1019950019252A 1995-07-03 1995-07-03 프로그램카운팅시스템및카운터의동작방법 KR100381876B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019950019252A KR100381876B1 (ko) 1995-07-03 1995-07-03 프로그램카운팅시스템및카운터의동작방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019950019252A KR100381876B1 (ko) 1995-07-03 1995-07-03 프로그램카운팅시스템및카운터의동작방법

Publications (2)

Publication Number Publication Date
KR970007621A KR970007621A (ko) 1997-02-21
KR100381876B1 true KR100381876B1 (ko) 2003-07-18

Family

ID=49515887

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019950019252A KR100381876B1 (ko) 1995-07-03 1995-07-03 프로그램카운팅시스템및카운터의동작방법

Country Status (1)

Country Link
KR (1) KR100381876B1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4488227A (en) * 1982-12-03 1984-12-11 Honeywell Information Systems Inc. Program counter stacking method and apparatus for nested subroutines and interrupts
JPH0465722A (ja) * 1990-07-05 1992-03-02 Fujitsu Ltd 定数アクセス方法
JPH0498426A (ja) * 1990-08-13 1992-03-31 Nec Corp マイクロプロセッサ
JPH05108345A (ja) * 1991-10-16 1993-04-30 Nec Corp 分岐命令処理装置
JPH06124207A (ja) * 1992-10-13 1994-05-06 Sony Corp サブルーチン分岐命令実行方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4488227A (en) * 1982-12-03 1984-12-11 Honeywell Information Systems Inc. Program counter stacking method and apparatus for nested subroutines and interrupts
JPH0465722A (ja) * 1990-07-05 1992-03-02 Fujitsu Ltd 定数アクセス方法
JPH0498426A (ja) * 1990-08-13 1992-03-31 Nec Corp マイクロプロセッサ
JPH05108345A (ja) * 1991-10-16 1993-04-30 Nec Corp 分岐命令処理装置
JPH06124207A (ja) * 1992-10-13 1994-05-06 Sony Corp サブルーチン分岐命令実行方法

Also Published As

Publication number Publication date
KR970007621A (ko) 1997-02-21

Similar Documents

Publication Publication Date Title
EP0155211B1 (en) System for by-pass control in pipeline operation of computer
EP0231928B1 (en) Program control circuit
US5177701A (en) Computer and method for performing immediate calculation by utilizing the computer
US4833640A (en) Register bank change including register to register transfer in a data processing system
EP0220684A2 (en) Data processing system
US4910664A (en) Data processor with apparatus for reducing loop processing time
KR100314484B1 (ko) 정보 처리기
EP0098172A2 (en) Register control processing system
US6370638B1 (en) Apparatus and method of computer program control in computer systems using pipeline processing
EP0240606B1 (en) Pipe-line processing system and microprocessor using the system
KR100381876B1 (ko) 프로그램카운팅시스템및카운터의동작방법
US5732252A (en) Program counter system capable of incrementing or decrementing after a conditional jump instruction
JPH034936B2 (ko)
EP0448317B1 (en) Information processing apparatus for variable length data
US6049669A (en) Exploiting case correlation to increase performance of programs with branch/switch instructions
US6886159B2 (en) Computer system, virtual machine, runtime representation of object, storage media and program transmission apparatus
US20020103979A1 (en) Pointer register device and method for updating a pointer value
US5463747A (en) Microprogram data processor processing operand address calculation and instruction execution with common hardware
JPH1011315A (ja) インサーキットエミュレータ装置およびインサーキットエミュレーション方法
JPS6131896B2 (ko)
KR960025145A (ko) 효율적인 퍼지로직 연산을 수행하기 위한 데이타처리시스템 및 그 방법
JPS61282932A (ja) アドレスカウンタ制御方式
KR0164150B1 (ko) 씨이크형 마이크로프로세서를 위한 예외 처리 루틴 결정 방법
JPH01180045A (ja) 中央処理装置
JP2987281B2 (ja) プロセッサ

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: 20120329

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20130329

Year of fee payment: 11

EXPY Expiration of term