KR19990037571A - 단일 주기 내에 간접 어드레싱 모드 어드레스를 출력하는 데이터 포인터 및 그 제공방법 - Google Patents
단일 주기 내에 간접 어드레싱 모드 어드레스를 출력하는 데이터 포인터 및 그 제공방법 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 12
- 230000008878 coupling Effects 0.000 claims 1
- 238000010168 coupling process Methods 0.000 claims 1
- 238000005859 coupling reaction Methods 0.000 claims 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 6
- 229910052710 silicon Inorganic materials 0.000 description 6
- 239000010703 silicon Substances 0.000 description 6
- 230000006870 function Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- 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/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/35—Indirect 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 항에 있어서, 상기 프로세서 구조 설계는:중앙 처리 장치(CPU)와;데이터를 저장하기 위하여 상기 CPU에 결합되는 메모리; 및상기 데이터 포인터 레지스터와 어소시에트되는 상기 메모리 내의 전용 가상 레지스터 어드레스 위치를 포함하며, 상기 각각의 전용 가상 레지스터 어드레스 위치는 액세스될 때 어소시에이트되는 상기 데이터 포인터 레지스터에 의해 실행되는 개별적이며 별개인 간접 어드레싱 모드를 규정하고 설정하는 것을 특징으로 하는 데이터 포인터.
- 제 4 항에 있어서, 상기 멀티플렉서는 상기 바람직한 간접 어드레싱 모드 어드레스를 선택하기 위하여 상기 바람직한 가상 레지스터 어드레스에 결합되는 선택된 입력을 구비하는 것을 특징으로 하는 데이터 포인터.
- 제 4 항에 있어서, 상기 메모리 내의 상기 전용 가상 레지스터 어드레스 위치는 단순 간접 어드레싱에 대한 한 개의 전용 가상 레지스터 어드레스 위치와, 자동 이전 증가되는 간접 어드레싱에 대한 한 개의 전용 가상 레지스터 어드레스 위치, 및 오프셋을 갖는 간접 어드레싱에 대한 한 개의 전용 가상 레지스터 어드레스 위치를 구비하는 것을 특징으로 하는 데이터 포인터.
- 단일 주기 내에 다수의 다중 간접 어드레싱 모드 중 선택된 하나에 대한 간접 어드레싱 모드 어드레스를 발생시키는 데이터 포인터로서,단순 간접 어드레싱 모드에서 사용되는 오퍼랜드의 현재 어드레스를 저장하는 데이터 포인터 레지스터와;다중 어드레싱 모드를 엔코딩할 수 있으며, 중앙 처리 장치(CPU)와, 데이터를 저장하기 위하여 상기 CPU에 결합되는 메모리, 및 상기 데이터 포인터 레지스터와 어소시에트되는 상기 메모리 내의 전용 가상 레지스터 어드레스 위치를 구비하고, 상기 각각의 전용 가상 레지스터 어드레스 위치는 액세스될 때 어소시에트되는 상기 데이터 포인터 레지스터에 의해 실행되는 개별적이며 별개인 간접 어드레싱 모드를 규정하고 설정하는 것을 특징으로 하는 프로세서 구조 설계와;자동 이전 증가되는 간접 어드레싱 모드에서 사용되는 오퍼랜드의 어드레스를 발생시키기 위하여, 상기 단순 간접 어드레싱 모드에서 사용되는 오퍼랜드의 현재 어드레스를 세트된 값 만큼 증가시키기 위하여 상기 데이터 포인터 레지스터에 결합되는 증분기와;단순 간접 데이터 어드레싱 모드에서 사용되는 오퍼랜드의 현재 어드레스와, 오프셋을 갖는 간접 어드레싱 모드에서 사용되는 오퍼랜드의 어드레스를 발생시키는 오프셋 값을 더하기 위하여 데이터 포인터 레지스터에 결합되는 가산기와;상기 오프셋 값을 저장하고 이를 상기 가산기에 보내기 위하여 상기 가산기에 결합되는 오프셋 레지스터; 및바람직한 상기 간접 어드레싱 모드 어드레스를 선택하기 위하여 상기 데이터 포인터 레지스터의 출력과, 상기 증분기의 출력, 및 상기 가산기의 출력에 결합되는 멀티플렉서 회로를 포함하여 구성된 것을 특징으로 하는 데이터 포인터.
- 제 7 항에 있어서, 상기 가산기는 직렬 캐리를 갖는 단순 직렬 가산기인 것을 특징으로 하는 데이터 포인터.
- 제 7 항에 있어서, 상기 멀티플렉서는 상기 바람직한 간접 어드레싱 모드 어드레스를 선택하기 위하여 상기 바람직한 가상 레지스터 어드레스에 결합되는 선택된 입력을 구비하는 것을 특징으로 하는 데이터 포인터.
- 제 7 항에 있어서, 상기 메모리 내의 상기 전용 가상 레지스터 어드레스 위치는 단순 간접 어드레싱에 대한 한 개의 전용 가상 레지스터 어드레스 위치와, 자동 이전 증가되는 간접 어드레싱에 대한 한 개의 전용 가상 레지스터 어드레스 위치, 및 오프셋을 갖는 간접 어드레싱에 대한 한 개의 전용 가상 레지스터 어드레스 위치를 구비하는 것을 특징으로 하는 데이터 포인터.
- 단일 주기 내에 다수의 다중 간접 어드레싱 모드 중 선택된 하나에 대한 간접 어드레싱 모드 어드레스를 발생시키는 데이터 포인터 제공방법으로서,다중 어드레싱 모드를 엔코딩할 수 있는 프로세서 구조 설계를 제공하는 단계와;단순 간접 어드레싱 모드에서 사용되는 오퍼랜드의 현재 어드레스를 저장하기 위하여 프로세서 구조 설계에 결합되는 데이터 포인터 레지스터를 제공하는 단계와;자동 이전 증가되는 간접 어드레싱 모드에서 사용되는 오퍼랜드의 어드레스를 발생시키기 위하여, 단순 간접 어드레싱 모드에서 사용되는 오퍼랜드의 현재 어드레스를 세트된 값 만큼 증가시키기 위하여 데이터 포인터 레지스터에 결합되는 증분기를 제공하는 단계와;상기 단순 간접 데이터 어드레싱 모드에서 사용되는 오퍼랜드의 현재 어드레스와, 오프셋을 갖는 간접 어드레싱 모드에서 사용되는 오퍼랜드의 어드레스를 발생시키는 오프셋 값을 더하기 위하여 데이터 포인터 레지스터에 결합되는 가산기를 제공하는 단계; 및바람직한 간접 어드레싱 모드 어드레스를 선택하기 위하여 데이터 포인터 레지스터의 출력과, 증분기의 출력, 및 가산기의 출력에 결합되는 멀티플렉서 회로를 제공하는 단계를 포함하는 것을 특징으로 하는 데이터 포인터 제공방법.
- 제 11 항에 있어서, 상기 오프셋 값을 저장하고 이를 상기 가산기에 보내기 위하여 상기 가산기에 결합되는 오프셋 레지스터를 제공하는 단계를 더 포함하는 것을 특징으로 하는 데이터 포인터 제공방법.
- 제 12 항에 있어서, 상기 가산기를 제공하는 단계는 직렬 캐리를 갖는 단순 직렬 가산기를 제공하는 단계를 더 포함하는 것을 특징으로 하는 데이터 포인터 제공방법.
- 제 11 항에 있어서, 상기 프로세서 구조 설계를 제공하는 단계는:중앙 처리 장치(CPU)를 제공하는 단계와;데이터를 저장하기 위하여 상기 CPU에 결합되는 메모리를 제공하는 단계; 및상기 데이터 포인터 레지스터와 어소시에이트되는 상기 메모리 내의 전용 가상 레지스터 어드레스 위치로, 각각의 전용 가상 레지스터 어드레스 위치는 액세스될 때 어소시에이트되는 상기 데이터 포인터 레지스터에 의해 실행되는 개별적이며 별개인 간접 어드레싱 모드를 규정하고 설정하는 전용 가상 레지스터 어드레스 위치를 제공하는 단계를 포함하는 것을 특징으로 하는 데이터 포인터 제공방법.
- 제 14 항에 있어서, 상기 바람직한 간접 어드레싱 모드 어드레스를 선택하기 위하여 상기 멀티플렉서의 선택된 입력을 상기 전용 가상 레지스터 어드레스 위치에 결합시키는 단계를 더 포함하는 것을 특징으로 하는 데이터 포인터 제공방법.
- 제 14 항에 있어서, 상기 메모리 내의 상기 전용 가상 레지스터 어드레스 위치는 단순 간접 어드레싱에 대한 한 개의 전용 가상 레지스터 어드레스 위치와, 자동 이전 증가되는 간접 어드레싱에 대한 한 개의 전용 가상 레지스터 어드레스 위치, 및 오프셋을 갖는 간접 어드레싱에 대한 한 개의 전용 가상 레지스터 어드레스 위치를 구비하는 것을 특징으로 하는 데이터 포인터 제공방법.
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100698310B1 (ko) * | 2005-06-03 | 2007-03-23 | 엘지전자 주식회사 | 데이터 억세스 제어 장치 및 데이터 호출 방법 |
Families Citing this family (9)
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)
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 |
-
1997
- 1997-10-28 US US08/959,559 patent/US6098160A/en not_active Expired - Lifetime
-
1998
- 1998-10-14 EP EP98119388A patent/EP0917048B1/en not_active Expired - Lifetime
- 1998-10-14 DE DE69808020T patent/DE69808020T2/de not_active Expired - Lifetime
- 1998-10-14 AT AT98119388T patent/ATE224558T1/de not_active IP Right Cessation
- 1998-10-28 JP JP10307562A patent/JPH11232100A/ja not_active Withdrawn
- 1998-10-28 KR KR1019980046744A patent/KR19990037571A/ko not_active Application Discontinuation
- 1998-11-26 TW TW087117817A patent/TW429360B/zh not_active IP Right Cessation
Cited By (1)
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 |