KR19990037571A - 단일 주기 내에 간접 어드레싱 모드 어드레스를 출력하는 데이터 포인터 및 그 제공방법 - Google Patents

단일 주기 내에 간접 어드레싱 모드 어드레스를 출력하는 데이터 포인터 및 그 제공방법 Download PDF

Info

Publication number
KR19990037571A
KR19990037571A KR1019980046744A KR19980046744A KR19990037571A KR 19990037571 A KR19990037571 A KR 19990037571A KR 1019980046744 A KR1019980046744 A KR 1019980046744A KR 19980046744 A KR19980046744 A KR 19980046744A KR 19990037571 A KR19990037571 A KR 19990037571A
Authority
KR
South Korea
Prior art keywords
address
data pointer
indirect addressing
addressing mode
register
Prior art date
Application number
KR1019980046744A
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 KR19990037571A publication Critical patent/KR19990037571A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/35Indirect addressing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Control Of Indicators Other Than Cathode Ray Tubes (AREA)

Abstract

단일 주기 내에 다수의 다중 간접 어드레싱 모드 중 선택된 하나에 대한 간접 어드레싱 모드 어드레스를 발생시키는 데이터 포인터가 개시된다. 이 데이터 포인터는 다중 어드레싱 모드를 엔코딩할 수 있는 프로세서 구조 설계에 사용된다. 데이터 포인터 레지스터는 프로세서 구조 설계에 결합되며 단순 간접 어드레싱 모드에서 사용되는 오퍼랜드의 현재 주소를 저장하는 데에 사용된다. 자동 이전 증가되는 간접 어드레싱 모드에서 사용되는 오퍼랜드의 어드레스를 발생시키기 위하여, 단순 간접 데이터 어드레싱 모드에서 사용되는 오퍼랜드의 현재 어드레스를 세트된 값 만큼 증가시키기 위한 증분기가 데이터 포인터 레지스터에 결합된다. 단순 간접 데이터 어드레싱 모드에서 사용되는 오퍼랜드의 현재 어드레스를, 오프셋을 갖는 간접 어드레싱 모드에서 사용되는 오퍼랜드의 어드레스를 발생시키는 오프셋 값에 결합하기 위한 가산기가 데이터 포인터 레지스터에 결합된다. 멀티플렉서 회로가 바람직한 간접 어드레싱 모드 어드레스를 선택하기 위하여, 데이터 포인터 레지스터의 출력과, 증분기의 출력, 및 가산기의 출력에 결합된다.

Description

단일 주기 내에 간접 어드레싱 모드 어드레스를 출력하는 데이터 포인터 및 그 제공방법
본 출원은 미트라 등에 의해 1997년 10월 8일 출원되어 본 출원과 동일한 양수인에게 양도된 “다중 어드레싱 모드를 실행하는 프로세서 구조 및 그 설계방법”이란 명칭의 출원과 관련된 것이다. 상기 언급한 출원의 내용은 본 원의 참조로써 인용된다.
본 발명은 일반적으로 포인터에 관한 것으로서, 좀 더 상세하게는 단일 주기 내에 다수의 다중 간접 어드레싱 모드 중 선택된 하나에 대한 간접 어드레싱 모드 어드레스를 발생시키는 데이터 포인터에 관한 것이다.
일반적으로, 프로세서는 저장된 명령 또는 마이크로코드를 페치시키고 실행하는 데에 사용되는 중앙 처리 장치(CPU)가 있는 구조체이다. 프로세서의 몇몇 예로는 마이크로제어기, 마이크로프로세서, 및 디지털 신호 처리기 등이 있다. 각 타입의 프로세서는 또한 피연산자(operand)로서 명명되는 데이터 위에서 작용한다. 이러한 데이터는 일반적으로 레지스터 또는 메모리 공간에 저장된다.
명령은 프로세서의 CPU에 특정 연산을 수행할 것 뿐 아니라 연산에 대한 하나 또는 그 이상의 오퍼랜드를 확인할 것을 지시한다. 프로세서는 연산 데이터에 대한 다양한 어드레싱 방법을 제공한다. 이러한 방법을 대개 어드레싱 모드라 한다. 어드레싱 모드는 전형적으로 산술 및 논리 연산과 데이터 이동 연산에 이용되며, 소스 오퍼랜드, 목적 오퍼랜드, 또는 둘 다에 적용된다.
특정한 간접 어드레싱을 수행할 때는, 속도(speed)라는 중요한 문제가 반드시 제기된다. 특정한 간접 어드레싱 모드에 대한 적절한 어드레스를 얻기 위해서는, 정확한 어드레스를 적적하게 로드하기 위하여 둘 또는 그 이상의 주기가 필요하다. 이러한 지연(delay)은 타이밍 문제를 야기시킨다. 예를 들어, 만일 명령이 오프셋을 갖는 간접 어드레싱 모드를 요구한다면, 값은 즉시 사용가능해질 필요가 있다. 만일, 요구 후에 오프셋 기능을 수행하고자 한다면, 단순 직렬 가산기로 수행할 수가 없다. 선취 가산기(look ahead adder)가 적절한 어드레스를 제공할 수 있으나, 이러한 타입의 가산기를 사용하게 되면 많은 양의 값비싼 실리콘 실재 영역(silicon real estate)을 필요로 하며, 이로써 비용이 증가하게 된다. 따라서, 종래 기술에 있어서의 실리콘 실재 영역 또는 타이밍 사이에 균형이 이루어져야 한다.
따라서, 간접 어드레싱 모드 어드레스를 발생시키는 데이터 포인터의 필요성이 대두되었다. 데이터 포인터는 단일 주기 내에 선택된 간접 어드레싱 모드에 대한 간접 어드레싱 모드 어드레스를 발생시킬 수 있어야 한다. 데이터 포인터는 프로세서 구조 내의 실리콘 실재 영역을 상당히 증가시키지 않으면서 단일 주기 내에 선택된 간접 어드레싱 모드에 대한 간접 어드레싱 모드 어드레스를 발생시킬 수 있어야 한다.
본 발명의 제 1 실시예에 따르면, 본 발명의 목적은 간접 어드레싱 모드에 대한 간접 어드레싱 모드 어드레스를 발생시키는 데이터 포인터를 제공하는 것이다.
본 발명의 다른 목적은 단일 주기 내에 선택된 간접 어드레싱 모드에 대한 간접 어드레싱 모드 어드레스를 발생시킬 수 있는 데이터 포인터를 제공하는 것이다.
본 발명의 또 다른 목적은 프로세서 구조 내에서 실리콘 실재 영역의 양을 상당히 증가시키지 않으면서 단일 주기 내에 선택된 간접 어드레싱 모드에 대한 간접 어드레싱 모드 어드레스를 발생시킬 수 있는 데이터 포인터를 제공하는 것이다.
도 1은 단일 주기 내에 다수의 다중 간접 어드레싱 모드 중 선택된 하나에 대한 간접 어드레싱 모드 어드레스를 발생시키는 데이터 포인터의 단순화된 블럭 다이어그램을 나타낸 도면.
도 2는 도 1에 도시된 데이터 포인터와 함께 사용되는 프로세서 구조 설계를 나타낸 도면.
<도면의 주요 부분에 대한 부호의 설명>
10 : 데이터 포인터 12 : 데이터 포인터 레지스터
14 : 증분기 16 : 가산기
18 : 멀티플렉서 20 : 오프셋 레지스터
22 : 선택선 30 : 프로세서 구조 설계
32 : 데이터 메모리 34 : 어드레스 위치
36 : 페이지 또는 뱅크 38 : 가상 레지스터 어드레스 위치
40 : CPU
본 발명의 제 1 실시예에 따라, 단일 주기 내에 다수의 다중 간접 어드레싱 모드 중 선택된 하나에 대한 간접 어드레싱 모드 어드레스를 발생시키는 데이터 포인터가 개시된다. 이 데이터 포인터는 다중 어드레싱 모드를 엔코딩할 수 있는 프로세서 구조 설계에 사용된다. 데이터 포인터 레지스터는 프로세서 구조 설계에 결합되며 단순 간접 어드레싱 모드에서 사용되는 오퍼랜드의 현재 주소를 저장하는 데에 사용된다. 자동 이전 증가되는 간접 어드레싱 모드에서 사용되는 오퍼랜드의 어드레스를 발생시키기 위하여, 단순 간접 데이터 어드레싱 모드에서 사용되는 오퍼랜드의 현재 어드레스를 세트된 값 만큼 증가시키기 위한 증분기(incrementer)가 데이터 포인터 레지스터에 결합된다. 단순 간접 데이터 어드레싱 모드에서 사용되는 오퍼랜드의 현재 어드레스와, 오프셋을 갖는 간접 어드레싱 모드에서 사용되는 오퍼랜드의 어드레스를 발생시키는 오프셋 값을 더하기 위한 가산기가 데이터 포인터 레지스터에 결합된다. 멀티플렉서 회로가 데이터 포인터 레지스터의 출력과, 증분기의 출력, 및 가산기의 출력에 결합된다. 멀티플렉서는 바람직한 간접 어드레싱 모드 어드레스를 선택하는 데에 사용된다.
본 발명의 다른 실시예에 따라, 단일 주기 내에 다수의 다중 간접 어드레싱 모드 중 선택된 하나에 대한 간접 어드레싱 모드 어드레스를 발생시키는 데이터 포인터 제공방법이 개시되며, 이 방법은:
다중 어드레싱 모드를 엔코딩할 수 있는 프로세서 구조 설계를 제공하는 단계와;
단순 간접 어드레싱 모드에서 사용되는 오퍼랜드의 현재 어드레스를 저장하기 위하여 프로세서 구조 설계에 결합되는 데이터 포인터 레지스터를 제공하는 단계와;
자동 이전 증가되는 간접 어드레싱 모드에서 사용되는 오퍼랜드의 어드레스를 발생시키기 위하여, 단순 간접 어드레싱 모드에서 사용되는 오퍼랜드의 현재 어드레스를 세트된 값 만큼 증가시키기 위하여 데이터 포인터 레지스터에 결합되는 증분기를 제공하는 단계와;
단순 간접 데이터 어드레싱 모드에서 사용되는 오퍼랜드의 현재 어드레스와, 오프셋을 갖는 간접 어드레싱 모드에서 사용되는 오퍼랜드의 어드레스를 발생시키는 오프셋 값을 더하기 위하여 데이터 포인터 레지스터에 결합되는 가산기를 제공하는 단계; 및
바람직한 간접 어드레싱 모드 어드레스를 선택하기 위하여 데이터 포인터 레지스터의 출력과, 증분기의 출력, 및 가산기의 출력에 결합되는 멀티플렉서 회로를 제공하는 단계를 포함하는 것을 특징으로 한다.
본 발명의 상술한 목적들 및 다른 목적들, 특징들, 및 장점들은 하기로부터, 특히 첨부 도면과 함께 설명되는 본 발명의 바람직한 실시예의 설명으로부터 명확해질 것이다.
도 1은 단일 주기 내에 다수의 다중의 간접 어드레싱 모드 중 선택된 하나에 대한 간접 어드레싱 모드 어드레스를 발생시키는 데이터 포인터(10)를 도시한다. 데이터 포인터(10)는 다중의 간접 어드레싱 모드를 엔코딩할 수 있는 프로세서 구조 설계(30)(도 2) 내에서 실행된다. 데이터 포인터(10)는 프로세서 구조 설계(30)에 결합되는 데이터 포인터 레지스터(12)를 구비한다. 데이터 포인터 레지스터(12)는 단순 간접 어드레싱 모드에서 사용되는 오퍼랜드의 현재 주소를 저장하는 데에 사용된다.
데이터 포인터(10)는 증분기(14)를 구비하며, 증분기(14)의 입력은 데이터 포인터 레지스터(12)의 출력에 결합된다. 증분기(14)는 데이터 포인터 레지스터(12)에 저장된 오퍼랜드의 현재 어드레스(즉, 단순 간접 어드레싱 모드에서 사용되는 오퍼랜드의 현재 어드레스)를 증가시키는 데에 사용된다. 증분기(14)는 이 어드레스를 세트된 값 만큼 증가시킨다. 본 발명의 바람직한 실시예에서, 증분기(14)는 데이터 포인터 레지스터(12)에 저장된 현재 어드레스를 한 어드레스 위치 만큼 증가시킨다. 데이터를 액세스하기 전에 단순 간접 어드레싱 모드에서 사용되는 오퍼랜드의 현재 어드레스를 증가시킴으로써, 증분기(14)는 자동 이전 감소되는 간접 어드레싱 모드에서 사용되는 오퍼랜드의 어드레스를 발생시킬 수 있게 된다.
데이터 포인터(10)는 또한 그 입력이 데이터 포인터 레지스터(12)의 출력에 결합되는 가산기(16)를 구비한다. 가산기(16)는 데이터 포인터 레지스터(12)에 저장된 현재 어드레스와 오프셋 값을 더하는 데에 사용된다. 데이터 포인터 레지스터(12)에 저장된 현재 어드레스와 오프셋 값을 더함으로써, 가산기(16)는 오프셋을 갖는 간접 어드레싱 모드에서 사용되는 오퍼랜드의 어드레스를 발생시킬 수 있게 된다. 오프셋 값은 시스템 내의 어떠한 메모리 장치로부터 로드될 수 있다. 본 발명의 바람직한 실시예에서의 오프셋 값은 프로세서 구조(30)(도 2)의 데이터 메모리(32)(도 2)에 저장되어 있는 오프셋 레지스터(20)에 저장된다. 가산기(16)는 어떠한 타입의 가산기일 수 있다. 가산기(14)는 선취 가산기일 수 있지만, 이는 실리콘 실재 영역을 부가적으로 사용하게 하며 이는 바람직하지 않다. 바람직하게는, 직렬 캐리를 갖는 단순 직렬 가산기가 사용된다.
멀티플렉서 회로(18)는 데이터 포인터 레지스터(12)의 출력에 결합되는 제 1 입력과, 증분기(14)의 출력에 결합되는 제 2 입력, 및 가산기(16)의 출력에 결합되는 제 3 입력을 구비한다. 멀티플렉서 회로(18)는 상기 언급한 요소들에 의하여 발생되는 바람직한 간접 어드레싱 모드 어드레스를 선택하며, 선택된 어드레스를 명령 레지스터로 출력시키는 데에 사용된다. 선택선(22)이 멀티플렉서 회로(18)에 결합된다. 선택선(22)은 또한 프로세서 구조 설계(30)에 결합된다. 바람직한 간접 어드레싱 모드가 프로세서 구조 설계(30) 내에서 선택 되면, 선택선(22)은 멀티플렉서 회로(18)에 어떤 어드레스가 명령 레지스터로 출력될 지를 나타내는 신호를 보낼 것이다.
도 2는 프로세서 구조 설계(30)를 도시한다. 프로세서 구조 설계(30)는 다중 어드레싱 모드를 엔코딩할 수 있어야 한다. 바람직하게는, 프로세서 구조 설계(30)는 가상 레지스터 어드레스를 이용하여 다중의 간접 어드레싱 모드를 엔코딩할 수 있게 된다. 이는 프로세서 구조 설계(30)가 직접 어드레스 가능한 레지스터의 수를 최대화시킬 수 있도록 한다.
데이터 포인터 레지스터(12)는 데이터 메모리(32) 내에서 실행된다. 데이터 메모리(32)는 다수의 어드레스 위치(34)를 포함한다. 도 2에 도시된 실시예에서, 데이터 메모리(32)는 다수의 뱅크(36)로 분할되는 선형화된 4K 메모리이며, 각각의 뱅크(36)는 256개의 어드레스 위치(34)를 갖는다. 데이터 포인터 레지스터(12)는 레지스터 어드레스 맵에 저장된 하나 또는 그 이상의 가상 레지스터 어드레스 위치(38)를 구비한다. 각각의 저장된 가상 레지스터 어드레스 위치가 액세스될 때 간접 어드레싱 모드가 개시된다.
현재, 다섯 가지 타입의 어드레싱 모드, 즉 단순 간접 어드레싱, 자동 사후 증가되는 간접 어드레싱, 자동 사후 감소되는 간접 어드레싱, 자동 이전 감소되는 간접 어드레싱 및 오프셋을 갖는 간접 어드레싱이 있다. 단순 간접 어드레싱 모드에서, 오퍼랜드의 어드레스는 데이터 포인터 레지스터(12)에 유지된다. CPU(40)는 데이터 포인터 레지스터(12)를 먼저 액세스하여 어드레스를 얻을 것이며, 얻어진 어드레스를 이용하여 오퍼랜드를 액세스할 것이다. 자동 증가 또는 자동 감소되는 간접 어드레싱은 데이터 포인터 레지스터(12)가 데이터 액세스 전(즉, 이전-증가 또는 이전-감소) 또는 데이터 액세스 후(즉, 사후-증가 또는 사후-감소)에 증가 또는 감소되는 간접 어드레싱 형태이다. 오프셋을 갖는 간접 어드레싱 모드에서, 오퍼랜드의 어드레스는 데이터 포인터 레지스터(12)의 내용에 오프셋 값을 더함으로써 계산된다. 오프셋 값은 명령 내에 끼워지거나 어떠한 다른 레지스터로부터 비롯될 수 있다. 본 실시예에서의 오프셋 값은, 누산기 또는 “작업(working)” 레지스터가 될 수 있는 “w” 레지스터(20)(도 1)로부터 비롯된다. 상기와 같이, 데이터 포인터 레지스터(12)는 오퍼랜드 액세스 전 또는 후에 증가 또는 감소될 수 있다.
데이터 포인터 레지스터(12)는 실행될 각각의 간접 어드레싱 모드에 대하여 데이터 메모리(32) 내의 개별적인 가상 레지스터 어드레스 위치(38)를 필요로 한다. 본 발명의 바람직한 실시예에서는, 상기 설명한 다섯 개의 간접 어드레싱 모드를 수행하기 위하여 다섯 개의 가상 레지스터 어드레스 위치(38)를 필요로 한다. 그러나, 데이터 포인터 레지스터(12)의 사용에 따라, 부가적인 또는 더 적은 어드레싱 모드가 수행될 수 있다. 또한, 부가적인 데이터 포인터 레지스터(12)가 데이터 메모리(32) 내에서 수행될 수 있다. 각각의 데이터 포인터 레지스터(12)는 레지스터 어드레스 맵에 저장된 하나 또는 그 이상의 가상 레지스터 어드레스 위치(38)를 구비한다. 각각의 저장된 가상 레지스터 어드레스 위치(38)는 액세스될 때 어소시에이트되는(associated) 데이터 포인터 레지스터(12)에 대한 간접 어드레싱 모드를 개시할 것이다. 각각의 데이터 포인터 레지스터(12)는 리드 가능하고 라이트 가능한 어드레스 위치이다. 본 발명의 바람직한 실시예에서, 각각의 데이터 포인터 레지스터(12)는 4K 바이트 길이의 메모리 영역을 액세스할 수 있는 12 비트 크기의 포인터이다. 따라서, 각각의 데이터 포인터 레지스터(12)는, 리드 가능한 또는 라이트 가능한 레지스터로서 액세스가능한 두 개의 8비트 크기의 레지스터(하이 바이트 및 로우 바이트)로 구성된다. 따라서, 본 발명의 바람직한 실시예에서는, 다섯 개의 간접 어드레싱 모드로 12 비트 크기의 데이터 포인터를 실행시키는 데에 7개의 어드레스 위치가 사용된다.
동작
도 2를 참조하여 본 발명의 동작을 설명한다. 첫 번째 뱅크(즉, 뱅크 0) 내에는, 첫 번째 128개의 위치가 특정 기능 레지스터를 위해 저장되어 있다. 이들 위치는 또한 특정한 간접 어드레스가 위치하는 곳이다. 하나 또는 그 이상의 데이터 포인터 레지스터(12) 또한 이 영역에 위치한다. 각각의 데이터 포인터 레지스터(12)는 간접 어드레싱을 개시하기 위하여 레지스터 어드레스 맵에 저장된 하나 또는 그 이상의 가상 레지스터 어드레스 위치(38)를 구비한다. 만일 어떠한 간접 어드레싱 위치도 액세스되지 않는다면, 직접 어드레싱이 일어날 것이다. 만일 명령이, 저장된 어드레스 위치(38) 중 하나를 액세스한다면, 어소시에이트되는 데이터 포인터 레지스터(12)에 의해 간접 어드레싱 모드가 실행될 것이다. 예를 들어, 명령이 “AND w, 12h”이라면, 명령은 보통 어드레스 12h의 내용과 “w”의 내용을 더하고 더한 값을 “w”에 저장할 것이다. 그러나, 어드레스 12h는 어드레스 10h, 11h에서의 데이터 포인터 레지스터(36)에 대하여 저장된 어드레스 위치이기 때문에, “w”는 어드레스 10h, 11h에서의 데이터 포인터 레지스터에 의해 지정되는 실재 위치의 내용에 더해질 것이다. 그런 다음, 더한 값은 “w”에 저장된다. 어드레스 12h는 또한 사후 감소가 포함되었음을 설명해준다. 따라서, 어드레스 10h, 11h에서의 데이터 포인터 레지스터(36)는 세트된 값 만큼, 보통 한 어드레스 위치 만큼 증가된다.
데이터 포인터(10)는 이전에 로드된 모든 간접 어드레싱 모드 어드레스(즉, 데이터 포인터 레지스터 내의 단순 간접 어드레싱 모드 어드레스, 증분기(14) 내의 자동 이전 증가되는 간접 어드레싱 모드, 및 가산기(16) 내의 오프셋을 갖는 간접 어드레싱 모드)를 구비한다. 저장된 가상 레지스터 어드레스 위치(38) 중 하나가 액세스될 때, 명령 레지스터에 바람직한 간접 어드레싱 모드 어드레스를 출력하기 위하여 멀티플렉서 회로(18)에 신호롤 보낸다. 자동 사후 증가되는 간접 어드레싱 모드 또는 자동 사후 감소되는 간접 어드레싱 모드의 어드레스가 액세스될 때에 데이터 포인터(10)가 데이터 포인터 레지스터(12)에 저장된 어드레스를 출력한다는 것을 주목하자. 명령을 실행한 후에 이 어드레스는 곧 증가 또는 감소된다. 데이터 포인터 레지스터(12) 또는 오프셋 레지스터(20) 내의 데이터가 변경되면, 데이터 포인터(10)는 새로운 어드레스를 갱신 및 발생시킨다. 따라서, 포인터는 선취 가산기 등에 사용될 부가적인 실리콘 실재 영역을 필요로 하지 않으면서, 단일 주기 내에 바람직한 간접 어드레싱 모드 어드레스를 항상 출력할 수 있게 된다.
본 발명이 특히 바람직한 실시예에 대해 도시되고 설명되기는 하였지만, 이 분야의 당업자에게 있어 형태 및 세부사항에 있어서 상술한 그리고 다른 변형이 본 발명의 원리 및 범위를 벗어나지 않으면서 이루어질 수 있음은 자명하다.

Claims (16)

  1. 단일 주기 내에 다수의 다중 간접 어드레싱 모드 중 선택된 하나에 대한 간접 어드레싱 모드 어드레스를 발생시키는 데이터 포인터로서,
    상기 다중 어드레싱 모드를 엔코딩할 수 있는 프로세서 구조 설계와;
    단순 간접 어드레싱 모드에서 사용되는 오퍼랜드의 현재 어드레스를 저장하기 위하여 상기 프로세서 구조 설계에 결합되는 데이터 포인터 레지스터와;
    자동 이전 증가되는 간접 어드레싱 모드에서 사용되는 오퍼랜드의 어드레스를 발생시키기 위하여, 상기 단순 간접 어드레싱 모드에서 사용되는 오퍼랜드의 현재 어드레스를 세트된 값 만큼 증가시키기 위하여 상기 데이터 포인터 레지스터에 결합되는 증분기와;
    상기 단순 간접 데이터 어드레싱 모드에서 사용되는 오퍼랜드의 현재 어드레스와, 오프셋을 갖는 간접 어드레싱 모드에서 사용되는 오퍼랜드의 어드레스를 발생시키는 오프셋 값을 더하기 위하여 데이터 포인터 레지스터에 결합되는 가산기; 및
    바람직한 상기 간접 어드레싱 모드 어드레스를 선택하기 위하여 상기 데이터 포인터 레지스터의 출력과, 상기 증분기의 출력, 및 상기 가산기의 출력에 결합되는 멀티플렉서 회로를 포함하여 구성된 것을 특징으로 하는 데이터 포인터.
  2. 제 1 항에 있어서, 상기 오프셋 값을 저장하고 이를 상기 가산기에 보내기 위하여 상기 가산기에 결합되는 오프셋 레지스터를 더 포함하는 것을 특징으로 하는 데이터 포인터.
  3. 제 2 항에 있어서, 상기 가산기는 직렬 캐리를 갖는 단순 직렬 가산기인 것을 특징으로 하는 데이터 포인터.
  4. 제 1 항에 있어서, 상기 프로세서 구조 설계는:
    중앙 처리 장치(CPU)와;
    데이터를 저장하기 위하여 상기 CPU에 결합되는 메모리; 및
    상기 데이터 포인터 레지스터와 어소시에트되는 상기 메모리 내의 전용 가상 레지스터 어드레스 위치를 포함하며, 상기 각각의 전용 가상 레지스터 어드레스 위치는 액세스될 때 어소시에이트되는 상기 데이터 포인터 레지스터에 의해 실행되는 개별적이며 별개인 간접 어드레싱 모드를 규정하고 설정하는 것을 특징으로 하는 데이터 포인터.
  5. 제 4 항에 있어서, 상기 멀티플렉서는 상기 바람직한 간접 어드레싱 모드 어드레스를 선택하기 위하여 상기 바람직한 가상 레지스터 어드레스에 결합되는 선택된 입력을 구비하는 것을 특징으로 하는 데이터 포인터.
  6. 제 4 항에 있어서, 상기 메모리 내의 상기 전용 가상 레지스터 어드레스 위치는 단순 간접 어드레싱에 대한 한 개의 전용 가상 레지스터 어드레스 위치와, 자동 이전 증가되는 간접 어드레싱에 대한 한 개의 전용 가상 레지스터 어드레스 위치, 및 오프셋을 갖는 간접 어드레싱에 대한 한 개의 전용 가상 레지스터 어드레스 위치를 구비하는 것을 특징으로 하는 데이터 포인터.
  7. 단일 주기 내에 다수의 다중 간접 어드레싱 모드 중 선택된 하나에 대한 간접 어드레싱 모드 어드레스를 발생시키는 데이터 포인터로서,
    단순 간접 어드레싱 모드에서 사용되는 오퍼랜드의 현재 어드레스를 저장하는 데이터 포인터 레지스터와;
    다중 어드레싱 모드를 엔코딩할 수 있으며, 중앙 처리 장치(CPU)와, 데이터를 저장하기 위하여 상기 CPU에 결합되는 메모리, 및 상기 데이터 포인터 레지스터와 어소시에트되는 상기 메모리 내의 전용 가상 레지스터 어드레스 위치를 구비하고, 상기 각각의 전용 가상 레지스터 어드레스 위치는 액세스될 때 어소시에트되는 상기 데이터 포인터 레지스터에 의해 실행되는 개별적이며 별개인 간접 어드레싱 모드를 규정하고 설정하는 것을 특징으로 하는 프로세서 구조 설계와;
    자동 이전 증가되는 간접 어드레싱 모드에서 사용되는 오퍼랜드의 어드레스를 발생시키기 위하여, 상기 단순 간접 어드레싱 모드에서 사용되는 오퍼랜드의 현재 어드레스를 세트된 값 만큼 증가시키기 위하여 상기 데이터 포인터 레지스터에 결합되는 증분기와;
    단순 간접 데이터 어드레싱 모드에서 사용되는 오퍼랜드의 현재 어드레스와, 오프셋을 갖는 간접 어드레싱 모드에서 사용되는 오퍼랜드의 어드레스를 발생시키는 오프셋 값을 더하기 위하여 데이터 포인터 레지스터에 결합되는 가산기와;
    상기 오프셋 값을 저장하고 이를 상기 가산기에 보내기 위하여 상기 가산기에 결합되는 오프셋 레지스터; 및
    바람직한 상기 간접 어드레싱 모드 어드레스를 선택하기 위하여 상기 데이터 포인터 레지스터의 출력과, 상기 증분기의 출력, 및 상기 가산기의 출력에 결합되는 멀티플렉서 회로를 포함하여 구성된 것을 특징으로 하는 데이터 포인터.
  8. 제 7 항에 있어서, 상기 가산기는 직렬 캐리를 갖는 단순 직렬 가산기인 것을 특징으로 하는 데이터 포인터.
  9. 제 7 항에 있어서, 상기 멀티플렉서는 상기 바람직한 간접 어드레싱 모드 어드레스를 선택하기 위하여 상기 바람직한 가상 레지스터 어드레스에 결합되는 선택된 입력을 구비하는 것을 특징으로 하는 데이터 포인터.
  10. 제 7 항에 있어서, 상기 메모리 내의 상기 전용 가상 레지스터 어드레스 위치는 단순 간접 어드레싱에 대한 한 개의 전용 가상 레지스터 어드레스 위치와, 자동 이전 증가되는 간접 어드레싱에 대한 한 개의 전용 가상 레지스터 어드레스 위치, 및 오프셋을 갖는 간접 어드레싱에 대한 한 개의 전용 가상 레지스터 어드레스 위치를 구비하는 것을 특징으로 하는 데이터 포인터.
  11. 단일 주기 내에 다수의 다중 간접 어드레싱 모드 중 선택된 하나에 대한 간접 어드레싱 모드 어드레스를 발생시키는 데이터 포인터 제공방법으로서,
    다중 어드레싱 모드를 엔코딩할 수 있는 프로세서 구조 설계를 제공하는 단계와;
    단순 간접 어드레싱 모드에서 사용되는 오퍼랜드의 현재 어드레스를 저장하기 위하여 프로세서 구조 설계에 결합되는 데이터 포인터 레지스터를 제공하는 단계와;
    자동 이전 증가되는 간접 어드레싱 모드에서 사용되는 오퍼랜드의 어드레스를 발생시키기 위하여, 단순 간접 어드레싱 모드에서 사용되는 오퍼랜드의 현재 어드레스를 세트된 값 만큼 증가시키기 위하여 데이터 포인터 레지스터에 결합되는 증분기를 제공하는 단계와;
    상기 단순 간접 데이터 어드레싱 모드에서 사용되는 오퍼랜드의 현재 어드레스와, 오프셋을 갖는 간접 어드레싱 모드에서 사용되는 오퍼랜드의 어드레스를 발생시키는 오프셋 값을 더하기 위하여 데이터 포인터 레지스터에 결합되는 가산기를 제공하는 단계; 및
    바람직한 간접 어드레싱 모드 어드레스를 선택하기 위하여 데이터 포인터 레지스터의 출력과, 증분기의 출력, 및 가산기의 출력에 결합되는 멀티플렉서 회로를 제공하는 단계를 포함하는 것을 특징으로 하는 데이터 포인터 제공방법.
  12. 제 11 항에 있어서, 상기 오프셋 값을 저장하고 이를 상기 가산기에 보내기 위하여 상기 가산기에 결합되는 오프셋 레지스터를 제공하는 단계를 더 포함하는 것을 특징으로 하는 데이터 포인터 제공방법.
  13. 제 12 항에 있어서, 상기 가산기를 제공하는 단계는 직렬 캐리를 갖는 단순 직렬 가산기를 제공하는 단계를 더 포함하는 것을 특징으로 하는 데이터 포인터 제공방법.
  14. 제 11 항에 있어서, 상기 프로세서 구조 설계를 제공하는 단계는:
    중앙 처리 장치(CPU)를 제공하는 단계와;
    데이터를 저장하기 위하여 상기 CPU에 결합되는 메모리를 제공하는 단계; 및
    상기 데이터 포인터 레지스터와 어소시에이트되는 상기 메모리 내의 전용 가상 레지스터 어드레스 위치로, 각각의 전용 가상 레지스터 어드레스 위치는 액세스될 때 어소시에이트되는 상기 데이터 포인터 레지스터에 의해 실행되는 개별적이며 별개인 간접 어드레싱 모드를 규정하고 설정하는 전용 가상 레지스터 어드레스 위치를 제공하는 단계를 포함하는 것을 특징으로 하는 데이터 포인터 제공방법.
  15. 제 14 항에 있어서, 상기 바람직한 간접 어드레싱 모드 어드레스를 선택하기 위하여 상기 멀티플렉서의 선택된 입력을 상기 전용 가상 레지스터 어드레스 위치에 결합시키는 단계를 더 포함하는 것을 특징으로 하는 데이터 포인터 제공방법.
  16. 제 14 항에 있어서, 상기 메모리 내의 상기 전용 가상 레지스터 어드레스 위치는 단순 간접 어드레싱에 대한 한 개의 전용 가상 레지스터 어드레스 위치와, 자동 이전 증가되는 간접 어드레싱에 대한 한 개의 전용 가상 레지스터 어드레스 위치, 및 오프셋을 갖는 간접 어드레싱에 대한 한 개의 전용 가상 레지스터 어드레스 위치를 구비하는 것을 특징으로 하는 데이터 포인터 제공방법.
KR1019980046744A 1997-10-28 1998-10-28 단일 주기 내에 간접 어드레싱 모드 어드레스를 출력하는 데이터 포인터 및 그 제공방법 KR19990037571A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US8/959,559 1997-10-28
US08/959,559 US6098160A (en) 1997-10-28 1997-10-28 Data pointer for outputting indirect addressing mode addresses within a single cycle and method therefor

Publications (1)

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

Family

ID=25502138

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980046744A KR19990037571A (ko) 1997-10-28 1998-10-28 단일 주기 내에 간접 어드레싱 모드 어드레스를 출력하는 데이터 포인터 및 그 제공방법

Country Status (7)

Country Link
US (1) US6098160A (ko)
EP (1) EP0917048B1 (ko)
JP (1) JPH11232100A (ko)
KR (1) KR19990037571A (ko)
AT (1) ATE224558T1 (ko)
DE (1) DE69808020T2 (ko)
TW (1) TW429360B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100698310B1 (ko) * 2005-06-03 2007-03-23 엘지전자 주식회사 데이터 억세스 제어 장치 및 데이터 호출 방법

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6467037B1 (en) 1998-06-30 2002-10-15 Sun Microsystems, Inc. Utilizing a program counter with one or more data counters for executing instructions
JP2003528389A (ja) * 2000-03-21 2003-09-24 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ アドレスモード拡張手段を有するデータキャリアおよびコマンド拡張手段を有するデータキャリア
JP2003044273A (ja) * 2001-08-01 2003-02-14 Nec Corp データ処理装置及びデータ処理方法
WO2004003732A1 (en) * 2002-06-27 2004-01-08 Infineon Technologies Ag Method for accessing local variables
TWI393049B (zh) * 2003-07-30 2013-04-11 Callahan Cellular Llc 允許指標位址亦包含在記憶體位置中之一的單循環指標定址之微控制器架構及其定址方法
KR100897857B1 (ko) 2003-10-23 2009-05-15 마이크로칩 테크놀로지 인코포레이티드 마이크로컨트롤러 명령어 셋트
US7352372B2 (en) 2004-10-22 2008-04-01 Seiko Epson Corporation Indirect addressing mode for display controller
US7383420B2 (en) * 2005-03-24 2008-06-03 Qualcomm Incorporated Processor and method of indirect register read and write operations
US8184110B2 (en) 2007-11-05 2012-05-22 Seiko Epson Corporation Method and apparatus for indirect interface with enhanced programmable direct port

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4047245A (en) * 1976-07-12 1977-09-06 Western Electric Company, Incorporated Indirect memory addressing
JPS59174948A (ja) * 1983-03-25 1984-10-03 Toshiba Corp 情報処理装置
US5142633A (en) * 1989-02-03 1992-08-25 Digital Equipment Corporation Preprocessing implied specifiers in a pipelined processor
US5450553A (en) * 1990-06-15 1995-09-12 Kabushiki Kaisha Toshiba Digital signal processor including address generation by execute/stop instruction designated
DE69130138T2 (de) * 1990-06-29 1999-05-06 Digital Equipment Corp., Maynard, Mass. Sprungvorhersageeinheit für hochleistungsfähigen Prozessor
JP3181307B2 (ja) * 1991-04-25 2001-07-03 株式会社東芝 命令処理装置
JPH07114469A (ja) * 1993-10-18 1995-05-02 Mitsubishi Electric Corp データ処理装置
US5715418A (en) * 1994-07-27 1998-02-03 Seagate Technologies, Inc. Autonomous high speed linear space address mode translation for use with a computer hard disc system
US5832533A (en) * 1995-01-04 1998-11-03 International Business Machines Corporation Method and system for addressing registers in a data processing unit in an indexed addressing mode
US5907864A (en) * 1995-06-07 1999-05-25 Texas Instruments Incorporated Data processing device with time-multiplexed memory bus
US5860155A (en) * 1995-11-16 1999-01-12 Utek Semiconductor Corporation Instruction decoding mechanism for reducing execution time by earlier detection and replacement of indirect addresses with direct addresses
US5905881A (en) * 1995-11-30 1999-05-18 Unisys Corporation Delayed state writes for an instruction processor
US5978895A (en) * 1997-04-04 1999-11-02 Cirrus Logic, Inc. Method for speeding mathematical operations in a processor core
US5987583A (en) * 1997-10-07 1999-11-16 Microchip Technology Inc. Processor architecture scheme and instruction set for maximizing available opcodes and address selection modes

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100698310B1 (ko) * 2005-06-03 2007-03-23 엘지전자 주식회사 데이터 억세스 제어 장치 및 데이터 호출 방법

Also Published As

Publication number Publication date
ATE224558T1 (de) 2002-10-15
DE69808020D1 (de) 2002-10-24
DE69808020T2 (de) 2003-05-22
JPH11232100A (ja) 1999-08-27
TW429360B (en) 2001-04-11
US6098160A (en) 2000-08-01
EP0917048B1 (en) 2002-09-18
EP0917048A2 (en) 1999-05-19
EP0917048A3 (en) 2000-08-30

Similar Documents

Publication Publication Date Title
US5826057A (en) Method for managing virtual address space at improved space utilization efficiency
US4734852A (en) Mechanism for performing data references to storage in parallel with instruction execution on a reduced instruction-set processor
US4777588A (en) General-purpose register file optimized for intraprocedural register allocation, procedure calls, and multitasking performance
JPH11161547A (ja) データ処理装置用記憶装置、および記憶場所にアクセスする方法
WO1996012231A1 (en) A translation buffer for detecting and preventing conflicting virtual addresses from being stored therein
US5752273A (en) Apparatus and method for efficiently determining addresses for misaligned data stored in memory
KR100465388B1 (ko) Risc 구조의 8비트 마이크로 제어기
US6029241A (en) Processor architecture scheme having multiple bank address override sources for supplying address values and method therefor
EP0908812B1 (en) Processor architecture scheme for implementing various addressing modes and method therefor
US6564283B1 (en) Data processing system for expanded addresses
KR19990037571A (ko) 단일 주기 내에 간접 어드레싱 모드 어드레스를 출력하는 데이터 포인터 및 그 제공방법
EP0913766B1 (en) Processor architecture scheme and instruction set for maximizing available opcodes and for implementing various addressing modes
JP2551167B2 (ja) マイクロコンピュータ
US5404471A (en) Method and apparatus for switching address generation modes in CPU having plural address generation modes
US4853889A (en) Arrangement and method for speeding the operation of branch instructions
EP0915416B1 (en) System for allowing a two word instruction to be executed in a single cycle and method therefor
EP0101718B1 (en) Computer with automatic mapping of memory contents into machine registers
JPH0246970B2 (ja) Memorikakuchohoshiki
JPH0385636A (ja) 命令先行制御装置
KR100970616B1 (ko) 디지털 신호 처리기의 더블 프리시젼 데이터 저장 및 로드방법
JPH05173778A (ja) データ処理装置
JP2560520B2 (ja) 先行制御装置
US6260112B1 (en) Register memory linking
EP0550290A2 (en) CPU register array
EP0772818A1 (en) Apparatus and method for executing pop instructions

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