KR960013359B1 - 비트 슬라이스 프로세서 마이크로 순차기용 레지스터 스택 - Google Patents

비트 슬라이스 프로세서 마이크로 순차기용 레지스터 스택 Download PDF

Info

Publication number
KR960013359B1
KR960013359B1 KR1019870000395A KR870000395A KR960013359B1 KR 960013359 B1 KR960013359 B1 KR 960013359B1 KR 1019870000395 A KR1019870000395 A KR 1019870000395A KR 870000395 A KR870000395 A KR 870000395A KR 960013359 B1 KR960013359 B1 KR 960013359B1
Authority
KR
South Korea
Prior art keywords
push
register
pop
input
read
Prior art date
Application number
KR1019870000395A
Other languages
English (en)
Other versions
KR870009297A (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 텍사스 인스트루먼츠 인코포레이티드
Publication of KR870009297A publication Critical patent/KR870009297A/ko
Application granted granted Critical
Publication of KR960013359B1 publication Critical patent/KR960013359B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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/22Microcontrol or microprogram arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

내용없음.

Description

비트 슬라이스 프로세서 마이크로 순차기용 레지스터 스택
제1도는 비트 슬라이스 프로세서(bit slice processor)의 개략적인 블럭도.
제2도는 마이크로 순차기(microsequencer)의 개략적인 블럭도.
제3도는 마이크로 순차기내의 레지스터 스택의 개략적인 블럭도.
제4도는 푸쉬/팝 레지스터 스택 (push/pop register stack)의 타이밍도.
제5도는 레지스터 스택 제어 회로의 개략적인 블럭도.
제6도는 푸쉬/팝 레지스터 및 판독 레지스터의 개략적인 블럭도.
* 도면의 주요 부분에 대한 부호의 설명
10 : 비트 슬라이스 ALU 12 : 마이크로 순차기
18 : 마이크로 프로그램 메모리 22 : 마이크로 명령 레지스터
24 : 상태 멀티플렉서 38, 66, 90, 91 : 버퍼
40 : 증분기 42 : MPC 레지스터
44 : 인터럽트 멀티플렉서 46 : 인터럽트 레지스터
48, 80, 104, 132 : 멀티플렉서 60 : 레지스터 스택
70 : 제어 논리 회로 72, 74 : 레지스터/카운터
84, 86, 92, 142, 174, 176, 206, 208, 214 : 인버터
100 : 푸쉬/팝 레지스터 102, 210 : 판독 레지스터
110 : 메모리 어레이 RAM 118 : 제어 회로
120 : 스택 제어 논리 회로 122 : 어드레스 래치 회로
130 : 스택 포인터 134 : 판독 포인터
136 : 감산기 회로 154, 184 : 디코더
194 : 스택 에러 논리 회로 216 : 푸쉬/팝 플립플롭
218 : 래치 회로 220 : D플립플롭
본 발명은 비트 슬라이스 시스템에 관한 것으로, 더욱 상세하게 말하자면 비트 슬라이스 프로세서내의 마이크로 순차기 레지스터 스택(stack)에 관한 것이다.
비트 슬라이스 시스템은 프로세서를 소정의 응용의 필요성에 맞추기 위한 수단을 설계자에게 제공한다. 비트 슬라이스 구조는 마이크로 순차기 및 확장 비트 슬라이스 산술 논리 연산 장치 (ALU)로 구성되는 비트 슬라이스 프로세서를 사용한다. 마이크로 순차기는 비트 슬라이스 ALU에 제어 코드를 제공하기 위해 마이크로 프로그램 메모리 및 마이크로 명령 레지스터와 결합된다. 이러한 형태의 프로세서는 더욱 정교한 컴퓨터 구조내에 배치하기 위한 효율적인 컴퓨터이다. 비트 슬라이스 시스템에 있어서, 설계자는 실행될 명령 셋트를 포함하는 시스템 동작의 상세를 정할 수 있다. 이것은 설계자가 대부분의 프로세서에 공통된 프리셋트 명령 셋트로부터 벗어나게 한다.
비트 슬라이스 ALU는 시스템의 기본부이다. 이 소자는 소정의 필요한 워드 폭의 ALU를 제공하기 위해 유사한 소자들에 접속될 수 있도록 설계된다. ALU 슬라이스의 중요한 점은 이 ALU 슬라이스의 연산이 유사한 ALU들의 상호접속에 의해 소정수의 비트로 확장될 수 있다는 것이다. 예를 들어, 회로당 8비트를 갖고 있는 ALU가 사용되면, 4개의 회로들이 32비트 프로세서용 ALU를 형성하게 된다. 반송 및 시프트라인들은 다중 비트 산술 연산이 실행될 수 있도록 ALU들 사이의 통신을 제공한다.
마이크로 순차기는 명령 스텝을 선정된 순차로 처리하고, 제어 정보를 비트 슬라이스 프로세서의 나머지 부분에 출력시킨다. 마이크로 순차기는 레지스터 스택 형태의 내장 기억 공간을 갖는다. 이것은 전형적으로 데이타를 판독하거나 기록하기 위해 억세스 가능한 푸쉬/팝(push/pop) 레지스터 스택이다 스택 포인터들은 메모리가 추출되거나 기록되는 레지스터내의 최종 어드레스를 결정하기 위해 제공된다. 이 레지스터 스택은 정보의 검색이 스택의 내용을 교란시킬 수 있다는 몇가지 단점을 갖는다. 예를 들어, 정보가 스택으로부터 판독될 경우에 전형적으로 이 정보는 스택내의 상부 레지스터내에 배치되고 이 레지스터로부터 판독된다. 이것은 상부 레지스터가 판독될 수 있는 지점에 스택이 배치되는 것을 필요로 한다. 이것은 이전의 포인터 위치를 저장하기 위해 부수적인 스택 포인터 레지스터를 필요로 할 수 있다. 부수적으로, 레지스터의 내용은 너무 많은 데이타가 저장되거나 너무 많은 데이타가 스택으로부터 추출되려고 할때 교란될 수 있다. 이것은 스택 포인터가 한 방향으로 또는 다른 방향으로 너무 멀리 증가될 때 발생한다.
본 명세서에 기술되고 청구된 본 발명은 비트 슬라이스 시스템내의 마이크로 순차기용 레지스터 스택을 구성한다. 이 레지스터 스택은 데이타를 저장하기 위한 선정된 수의 저장 위치를 갖고 있는 메모리 어레이를 포함하는데, 이것의 입력은 저장될 데이타를 수신하기 위한 것이고, 출력은 억세스 데이타를 출력시키기 위한 것이다. 이 저장 위치들은 큐(queue)내에 배열되고, 후입 선출 방식 (last in first out format)으로 억세스될 수 있다. 푸쉬/팝 레지스터는 데이타를 수신하기 위한 1개의 저장 위치를 제공하기 위해 메모리 어레이의 입력에 제공된다. 푸쉬/팝 레지스터로부터의 제1출력은 메모리 어레이의 입력과 인터페이스되고, 제2출력은 출력 데이타를 제공하기 위해 장치의 출력과 인터페이스된다. 판독 레지스터는 데이타를 수신하기 위한 입력 및 레지스터 스택으로부터 판독된 데이타를 출력시키기 위한 출력을 갖고 있는 1개의 저장 위치를 제공한다. 메모리 어레이의 출력 또는 판독 레지스터 및 푸쉬/팝 레지스터에 저장하기 위해 이 레지스터로 출력시키기 위한 수신 입력 데이타 사이를 선택하기 위해 멀티플렉서가 제공된다. 입력 데이타를 수신하고 이 입력 데이타를 큐의 상부상의 푸쉬/팝 레지스터내에 저장하도록 멀티플렉서를 제어하고 큐의 상부가 항상 푸쉬/팝 레지스터내에 있도록 푸쉬/팝 레지스터를 통해 큐의 상부로부터 데이타를 출력시키기 위해 제어 회로가 제공된다. 데이타를 큐내에 보관하고, 푸쉬/팝 레지스터의 내용을 교란시키지 않고서 큐내의 소정의 위치에서 푸쉬/팝 레지스터 및 메모리 어레이로부터 데이타를 출력시키기 위해 판독 제어 회로가 제공된다.
이하, 첨부 도면을 참조하여 본 발명에 대해서 더욱 상세하게 기술하겠다.
비트 슬라이스 프로세서 동작
제1도를 참조하면, 전체 비트 슬라이스 시스템 (도시하지 않음)의 일부인 비트 슬라이스 프로세서의 개략적인 블럭도가 도시되어 있다. 비트 슬라이스 프로세서는 기본적으로 비트 슬라이스 ALU(10) 및 마이크로 순차기(12)로 구성된다. 공동으로 동작하는 이 2개의 소자들은 주 메모리 프로세서 프로그램(도시하지 않음)에 배경을 두고 동작하는 마이크로 프로그램식 프로세서를 형성한다. 주 프로그램은 소정의 프로세서가 실행하는 동일 형태의 매크로 명령으로 구성된다. 마이크로 프로그램은 마이크로 순차기(12)내에 저장되고, 실행되는 명령의 특정한 순차를 결정하도록 프로세서내의 각각의 소자를 제어하도록 동작할 수 있다. 마이크로 프로그램은 기본적으로 각각의 형태의 ALU 연산, 메모리 기준 및 스텝-바이-스텝 기준(step-by-step basis)상의 I/O 동작의 소자 상세에 관한 것이다.
주 메모리로부터 단일 매크로 명령 (각각의 프로세서의 태스크)을 페치(fetch) 및 실행하기 위해, 비트 슬라이스 프로세서는 마이크로 순차기(12)내에 저장된 마이크로 프로그램으로부터 2개 이상의 마이크로 명령 순차들을 실행해야 한다. 먼저, 비트 슬라이스 프로세서는 명령 페치 및 디코드 연산을 수행하도록 마이크로 명령의 순차를 실행한다. 그 다음, 이 비트 슬라이스 프로세서는 매크로 명령을 실행하게 되는 적절한 마이크로 명령 순차를 실행한다.
마이크로 순차기(12) 및 비트 슬라이스 ALU(10)은 단방향 버스인 마이크로 명령 버스(14)로 인터페이스된다. 부수적으로, 마이크로 순차기(12)는 마이크로 어드레스를 마이크로 프로그램 메모리(18)의 마이크로 어드레스 버스(16)상에 출력시킨다. 마이크로 프로그램 메모리(18)내에는 마이크로 명령이 저장되는데, 이 마이크로 명령은 마이크로 명령 레지스터(22)의 버스(20)상에 출력된다. 마이크로 명령 레지스터(22)는 마이크로 명령 버스(14)로 이것의 출력상에 인터페이스된다.
한 입력상의 마이크로 명령 버스(14)와 다른 입력상의 상태 버스(26) 사이를 인터페이스시키기 위한 상태 멀티플렉서(24)가 제공된다. 상태 멀티플렉서(24)의 출력은 상태 정보를 제공하기 위해 마이크로 순차기(12)에 입력되는 검사 상태 버스(28)이다. 상태 버스(26)은 라인(30)을 통해 ALU로부터 상태 입력을 수신한다. 비트 슬라이스 ALU(10)은 라인(34)을 통해 상태 버스(26)과 인터페이스되는 시스템 인터페이스 버스(32)와 인터페이스된다.
연산시에, 비트 슬라이스 ALU(10)은 시스템 인터페이스 버스(32)에 접속되는데, 그 이유는 이 블럭이 모든 데이타 및 어드레스 조작을 수행하기 때문이다. 비트 슬라이스 ALU(10)의 상태 정보는 마이크로 순차기(12)와 인터페이스되므로, 이 마이크로 순차기가 적절한 마이크로 명령의 출력에 의해 소정의 필요한 조건 분기 또는 점프 동작을 실행할 수 있다. 비트 슬라이스 ALU(10)의 연산을 정하는 제어 라인들은 마이크로 명령 버스(14)로부터 나와야 하는데, 그 이유는 시스템의 각각의 소자가 각각의 시점에서 어떤 연산을 실행하는지를 마이크로 명령 버스(14)가 정하기 때문이다.
비트 슬라이스 ALU(10)용 제어 코드는 마이크로 명령 코드(또는, 간단하게 마이크로 코드)부를 형성한다. 다른 마이크로 코드부는 발생할 메모리 판독 동작, 메모리 기록 동작, 입력 판독 동작 및 출력 기록 동작과 같은 메모리 및 입/출력 동작을 정해야 한다. ALU 제어 코드 및 메모리 제어 코드에 제공되어야 하는 비트수는 ALU 비트 슬라이스 기능 코드의 길이 및 발생될 필요가 있는 메모리 입/출력 제어 신호들의 수에 따라 변한다. 상술한 바와 같이, 마이크로 프로그램 메모리(18)은 모든 마이크로 코드를 포함하는데, 마이크로 명령 레지스터(22)는 현재 실행되고 있는 마이크로 연산용 마이크로 코드를 보유하고 있다.
마이크로 순차기(12)는 어떤 마이크로 명령이 다음에 실행되는지와, 이 어드레스를 마이크로 프로그램 메모리(18)에 보내야 하는지를 결정한다. 정상적으로, 주 메모리내의 주 컴퓨터 프로그램내에 있을 때에만 현재 명령이 실행되자 마자 다음 명령이 배치된다 그러므로, 순차기는 다음 마이크로 어드레스를 얻기 위해 현재의 마이크로 어드레스에 1을 가산하는 것이 통상적이다. 소정의 경우에, 마이크로 순차기(12)는 마이크로 프로그램내에서 분기 또는 서브루틴 점프를 행해야 한다. 실행될 다음 마이크로 명령으로 점프하는 어드레스는 현재 마이크로 명령으로부터 발생되거나 주 명령 코드 또는 인터럽트 상태의 결과로서 발생된 어드레스이어야 한다. 분기 어드레스는 마이크로 코드의 일부분 및 마이크로 명령 레지스터(22)에 의해 발생되거나, 내부 인터럽트 벡터 회로(도시하지 않음)에 의해 발생된다. 그러므로, 마이크로 순차기(12)는 분기, 서브루틴 점프, 서브루틴 복귀를 실행하거나, 간단히 마이크로 프로그램 메모리(18)내의 다음 마이크로 명령 어드레스로 증가하도록 명령을 받는다.
마이크로 순차기
제2도를 참조하면, 마이크로 순차기(12)의 개략적인 블럭도가 도시되어 있다. 데이타는 버퍼(38)의 Y버스(36)을 통해 마이크로 순차기에 입력된다. 버퍼(38)의 출력은 버스(41)을 통해 증분기(40)의 입력에 접속되는데, 이 증분기(40)은 정보를 증가시키기 위해 외부 INC 신호에 의해 제어된다. 증분기(40)의 출력은 마이크로 프로그램 카운터/레지스터 (MPC 레지스터; 42)에 입력된다. MPC 레지스터(42)에는 마이크로 프로그램 정보가 저장된다. MPC 레지스터(42)의 출력은 인터럽트 멀티플렉서(44)의 한 입력에 입력된다. 멀티플렉서(44)는 외부 인터럽트 신호 INTM에 의해 제어된다.
멀티플렉서(44)의 다른 입력은 인터럽트 레지스터(46)의 출력에 접속된다. 인터럽트 레지스터(46)의 입력은 버스(50)을 통해 멀티플렉서(48)의 출력에 접속된다. 멀티플렉서(48)은 Y출력 멀티플렉서이고, 어드레스 선택을 제어한다. 어드레스는 다수의 소오스로부터 선택될 수 있다. 멀티플렉서(48)상의 입력이 버스(52)를 통해 MPC 레지스터(42)의 출력에 접속되면, 명령이 반복해서 계속 발생된다. 또한, 한 입력은 DRA 어드레스 버스(56) 및 DRB 어드레스 버스(58)로부터, 및 버스(62)를 통해 레지스터 스택(60)의 출력으로부터 어드레스 정보를 제공하는 버스(54)에 접속된다. 부수적으로, 멀티플렉서(48)의 한 입력은 4비트 B버스(64)와 인터페이스되므로, 이것의 내용은 16웨이 및 32웨이 브랜취(branch)들을 원조하기 위해 DRA 버스(56) 및 DRB 버스(58)로부터 수신된 어드레스의 4개의 최하위 비트로 대체시킬 수 있다. 멀티 플렉서(48)의 출력은 버퍼(66)을 통해 Y버스(36)에 접속된다.
멀티플렉서(48), MPC 레지스터(42) 및 레지스터 스택(60)과 인터페이스되는 제어 버스(68)이 제공된다. 제어 버스(68)은 제어 기능을 마이크로 순차기(12)에 제공하기 위해 제어 논리 회로(70)과 인터페이스된다. 레지스터/카운터(72) 및 레지스터/카운터(74)는 DRA 버스(56) 및 DRB 버스(58)상의 A 및 B어드레스와 각각 인터페이스 하기 위해 제공된다. 레지스터/카운터(72 및 74)는 어드레스 또는 루우프 카운트가 버스(56 및 58)을 통해 이 레지스터/카운터(72 및 74)에 직접 으로드 되게 한다. 이 레지스터들내에 저장된 값은 보존되거나, 감속되거나, 새로운 값으로 으로드 될 수 있다. 단일 싸이클 동안의 2개의 레지스터들의 독립 제어는 2개의 레지스터의 동시 감소를 제외하고는 유지된다.
레지스터/카운터(72)의 입력은 버스(76)에 접속되는데, 이 버스(76)은 멀티플렉서(48)상의 버스(54)에 접속된다. 또한, 버스(76)은 게이트식 버퍼(78)의 출력에 접속되는데, 이 버퍼(78)의 입력은 DRA 버스(56)에 접속된다. 레지스터/카운터(72)의 출력은 멀티플렉서(80)의 입력에 접속되는데, 이 멀티플렉서(80)의 출력은 게이트식 버퍼(82)를 통해 DRA 버스(56)에 접속된다. 멀티플렉서 (80)의 입력은 버스(84)를 통해 레지스터 스택(60)의 판독 출력에 접속된다. 게이트(82)는 인버터(84)를 통하는 인에이블 신호 RIEN 및 제어 논리 블럭(70)으로부터의 제어 신호에 의해 제어된다. 멀티플렉서(80)은 인버터(86)을 통하는 선택 신호 DSEL 및 제어 논리 블럭(70)으로부터의 제어 신호에 의해 제어된다.
레지스터/카운터(74)의 입력은 버스(88)을 통해 버스(76)에 접속되고 게이트(89)의 출력에도 접속된다. 게이트(89)의 입력은 DRB 버스(58)에 접속된다. 레지스터/카운터(74)의 출력은 게이트식 버퍼(90)을 통해 DRB 버스(58)에 접속된다. 게이트식 버퍼(90)은 인버터(92)를 통하는 신호 R2EN에 의해 제어된다.
마이크로 명령 및 다른 하드웨어 소오스로부터 발생하는 제어 데이타 신호들은 MPC 레지스터(42)내의 마이크로 프로그램 카운터를 증가시키는 지의 여부를 결정하는 INC 신호, 및 루우프 카운터 및/또는 다음 어드레스를 으로드 또는 판독하는데 사용되는 DRA 버스(56) 및 DRB 버스(58)상의 어드레스들을 포함한다. 마이크로 순차기는 제어 신호(INC)가 오프 상태로 되어 상태를 대기하는 경우에 어드레스를 증가시키지 않게 된 다음, 플래그 명령이 실행될 때까지 반복하게 된다. 제어 신호(INC)가 상태로부터 발생하면, MPC는 플래그 명령이 가능할 때까지 반복한다. 명령을 검사 및 분기하기 위해 다른 제어 신호가 제공된다. 이것은 조건 코드(CC) 제어 신호이다. 그러나, 이것은 계속 또는 루우프와 같은 다른 명령을 실행하기 위해 마이크로 프로그램 제어하에서 가정되지 말아야 한다. 이 신호는 통상적으로 상태 멀티플렉서의 출력에 의해 발생된다. 이 경우에, CC 신호가 하이 상태로 되는지 으로우 상태로 되는지, 또는 ALU 상태로부터 취해지는 지의 여부는 마이크로 명령내의 상태 멀티플렉서 선택 필드에 의해 결정된다.
또한, 제어 신호들은 B버스(64)에 부착된 하드웨어로부터 발생되고, 16웨이 및 32웨이 브랜취를 원조하기 위해 4비트 변수로서 사용될 수 있다. Y인에이블 신호(Y-EN)는 인터럽트 하드웨어가 버스(42)상에 어드레스를 배치시키게 하도록 게이트식 버퍼(66)을 제어한다. 레지스터/카운터(72 또는 74)중 어느 하나가 제로로 감소하게 되는 싸이클의 개시시에 셋트되는 제로 출력에 의해 상태가 제공된다. 또한, 스택의 하부가 판독되거나 9개의 위치를 중 8개의 위치가 기록되는 싸이클 개시시에 셋업된 스택 경고 신호(STKERR)도 있다. 후자의 경우에, STKERR은 스택 포인터가 7로 감소될 때까지 하이 상태를 유지한다.
Y버스(36)은 마이크로 프로그램내의 다음 어드레스를 발생시킨다. 통상적으로, 증분기(40)은 다음 어드레스+1을 계산하기 위해 Y버스(36)상의 어드레스에 1을 가산한다. 그 다음, 다음 어드레스+1은 후속 명령 싸이클의 개시시에 마이크로 프로그램 레지스터(42)내에 저장된다. 다음 명령 동안에, 이 계속 어드레스는 후속 명령의 소오스로서 선택할 수 있게 하기 위해 Y출력 멀티플렉서(48)에 준비되어 있다. 그러므로, 증분기(40)은 계속(1만큼 증가) 또는 반복(증가하지 않음) 어드레스를 셋업시키도록 어드레스 및 명령 레지스터 전방의 2개의 어드레스를 조사한다.
상태로부터 INC를 선택하는 것은 소정의 조건이 만족될 때까지 반복해야 하는, 예를 들어 최상위 비트가 1과 동일하게 될 때까지 ALU를 시프트시키거나 최상위 비트가 0과 동일하게 될 때까지 ALU를 감소시켜야 하는 명령을 실행하는 편리한 수단이다. 또한, MPC 레지스터(42)내의 마이크로 프로그램 카운터는 스택(60)에 대한 표준 경로이다. 다음 어드레스는 서브루틴 호출중에 스택상에 푸쉬되므로, 이 서브루틴은 호출된 명령 다음의 명령으로 복귀하게 된다.
레지스터 스택(60)은 내포된 호출 또는 인터럽트의 9개의 레벨까지를 허용하고 분기 및 루우핑을 원조하는데 사용될 수 있는 정 연부 트리거 14비트 어드레스 스택이다. 스택(60)은 스택 포인터를 변경시키지 않고서 스택내의 데이타를 판독하기 위해 내부 스택 포인터 및 판독 포인터를 갖는다. 모든 Y출력들을 으로우 상태로 풀하고 스택 포인터 및 판독 포인터를 클리어시키는 리셋 기능이 제공된다. 또한, 스택 포인터 및 판독 포인터를 0으로 셋트시키는 클리어 기능이 제공된다. 팝동작은 스택 포인터가 감소되게 하고, 푸쉬동작은 MPC 레지스터(42)의 내용이 스택상에 배치되어 스택 포인터가 증가되게 한다. DRA 버스(56)에서 유용한 판독 포인터에 의해 어드레스가 포인트되게 하는 판독 동작이 제공된다. 또한, 스택 및 판독 포인터의 어드레스가 계속 변화되지 않게 하는 보존 동작이 제공된다.
일반적으로, 스택 포인터는 푸쉬 동작이 일어날 때마다 증가하고 팝 동작이 일어날 때마다 감소하는 업/다운 카운터로서 작용한다. 푸쉬 및 팝이 2가지 동작이지만, 이 2가지 이벤트(event)은 단일 싸이클로 달성된다. 한편, 판독 포인터는 마이크로 코드화 시스템을 디버깅 (debugging)시키기 위한 수단으로서 제공된다. 이것은 DRA 버스(56)으로부터 스택 내용을 파괴시키지 않고 순차 판독하게 한다. 이 능력은 프로그램 흐름에 영향을 미치지 않고서 오버플로우의 원인, 스택 포인터의 상태 또는 스택의 내부 데이타를 결정하기 위해 어드레스 순차를 통하는 백트랙킹(backtracking) 방법을 사용자에게 제공한다.
시스템을 잠재콕 스택 오버플로우 또는 언더플로우 상태로 변경시키는 스택 경고 동작이 제공된다. 스택 에러 출력 (STKERR)은 두가지 조건하에 활성화된다. 9개의 스택 위치(0-8)들 중 7개의 스택 위치가 충만 상태이고, 스택 포인터가 7에 있으며 푸쉬 동작이 일어나면, STKERR 출력은 스택이 자체의 용량에 접근하고 있다는 것을 경고하기 위해 하이레벨 신호를 발생시키게 되어, 1회 더 푸쉬한 다음 충만 상태로 된다.
오버플로우 잠재력이 존재한다는 것을 알면, 비트 슬라이스-기저 시스템이 연속적으로 실시간 인터럽트 벡터를 프로세스하게 한다. 이 신호는 보존, 푸쉬 또는 팝 명령이 발생하는 경우에 스택 포인터가 7로 감소될 때까지 하이 상태를 유지하게 된다. 스택이 충만 상태일 때 푸쉬 명령이 발생하면, 새로운 어드레스가 스택 위치 8내의 어드레스상에 기록된다. 사용자는 팝 동작전에 STKERR 출력을 모니터함으로써 공백 스택을 팝하려는 것으로부터 보호될 수 있다. 이 핀에서의 하이 레벨은 최종 어드레스가 스택으로부터 제거되었다는 것을 의미한다. 이 조건은 어드레스가 스택상에 푸쉬되고 스택 포인터가 1로 증가될 때까지 유지된다.
레지스터 스택
제3도를 참조하면, 제2도의 레지스터 스택(60)의 개략적인 블럭도가 도시되어 있는데, 도면들내의 동일 부분에는 동일한 참조 번호를 붙였다. 멀티플렉서(104)의 출력에 접속된 입력들을 갖고 있는 푸쉬/팝 레지스터(100) 및 판독 레지스터(102)가 제공된다. 멀티플렉서(104)의 한 입력은 버스(108)을 통해 멀티플렉서(44)의 출력에 접속되고 다른 입력은 버스(62)에 접속된다. 메모리 어레이 RAM(110)이 제공되는데, 이 RAM(110)의 출력은 버스(112)를 통해 멀티플렉서(104)의 입력에 접속된다. RAM(110)의 입력은 데이타 버스(114) 및 반전 데이타 버스(116)을 통해 푸쉬/팝 레지스터(100)의 출력에 접속된다. 푸쉬/팝 레지스터(100) 및 RAM(110)은 9×14 레지스터 스택을 제공한다. 또한, 푸쉬/팝 레지스터(100)은 버스(62)와 인터페이스된다.
판독 레지스터 (102)의 출력들은 상술한 바와 같은 멀티플렉서(80)에 입력되고 어드레스가 출력되게 하도록 DRA 버스(56)과 인터페이스되는 버스(84)에 접속된다. 데이타는 판독 레지스터(102)내에 저장되도록 RAM(110)으로부터 버스(112)를 통해 멀티플렉서(104)로 출력된다. 멀티플렉서(104)가 단일 멀티플렉서인 것으로 도시되어 있지만, 실제로는 이중 멀티플렉서이다. 판독 레지스터(102), 푸쉬/팝 레지스터(100) 및 멀티플렉서(104)의 동작을 제어하기 위해 제어 회로(118)이 제공된다.
RAM(110)은 스택 제어 논리 회로(120)에 의해 제어된다. 스택 제어 논리 회로(120)은 버스(124)를 통해 RAM(110)에 기록 인에이블(WE) 신호를 출력시키고 버스(126)을 통해 RAM(110)에 판독 인에이블(RE) 신호를 출력시키는 어드레스 래치 회로(122)를 제어한다. 스택 제어 논리 회로(120)은 버스(128)을 통해 제어 회로(118)과 인터페이스된다.
업/다운 카운터이고 출력이 스택 제어 논리 회로(120)과 인터페이스되는 스택 포인터(130)이 제공된다. 또한, 스택 포인터(130)은 멀티플렉서(132)에 입력된다. 출력이 스택 제어 논리 회로(120)과 인터페이스되고 멀티플렉서(132)의 출력에 접속된 스택에 입력되는 판독 포인터(134)가 제공된다. 또한, 판독 포인터(134)의 출력은 감산기 회로(136)에 입력되는데, 이 감산기 회로(136)의 출력은 멀티플렉서(132)의 다른 입력에 접속된다.
스택 포인터(130)은 이전의 판독으로부터 카운트 업 또는 카운트 다운하도록 동작할 수 있고, 판독 포인터(134)는 스택의 상부에서 스택 포인터로부터 으로드된 다음 감산기(136)에 의해 다운 감소될 수 있다. 스택 포인터의 다음 동작시에, 판독 포인터(134)는 스택의 상부에서 스택 포인터의 값으로 다시 으로드될 수 있다. 이것은 스택 정보를 판독 레지스터(102)내에 으로드시키기 위해 판독 레지스터가 항상 스택의 상부에 참조되게 한다.
동작시에, 멀티플렉서(104)는 스택의 상부에서 푸쉬/팝 레지스터(100)내로 데이타를 으로드시키기 위해 푸쉬 동작으로 제어된다. 데이타가 푸쉬/팝 레지스터(100)내로 푸쉬될 때마다, 이전의 데이타는 RAM(110)내에 저장되어, 스택 포인터는 1만큼 증가된다. 팝 동작시에, 정보는 푸쉬/팝 레지스터(100)내에 으로드되도록 버스(112)를 통해 멀티플렉서(104)의 입력으로 출력되어, 스택 포인터는 1만큼 감소된다. 그 다음, 이 정보는 레지스터/카운터(72) 또는 레지스터/카운터(74)에 입력되도록 버스(62)를 통해 출력된다. 푸쉬/팝 동작시에, 스택 포인터(130)은 상하로 이동되고, 판독 포인터(134)는 스택 포인터 값으로 으로드된 다음 감산기 (136)에 의해 판독 값으로 감소된다. 이 값은 멀티플렉서(104)로[판독 레지스터 (102)로] 입력되도록 RAM(110)으로부터 독출되어 버스(112)상에 출력된다. 그 다음, 판독 포인터(134)는 비파괴 모우드 내에서 스택의 내용을 순차적으로 독출하기 위해 감소될 수 있다. 푸쉬/팝 레지스터(100)이 사용되지 않으므로 스택의 상부에서의 정보가 파괴되지 않는다는 것이 중요하다.
판독 동작시에, 스택으로부터 판독된 제1어드레스는 판독 레지스터(102)의 내용이다. 이 어드레스는 푸쉬/팝 레지스터(100)내에 저장된 어드레스와 동일한데, 그 이유는 푸쉬/팝 레지스터(100)의 으로딩이 동일한 정보로 판독 레지스터(102)를 으로딩하는 것과 동시에 일어나기 때문이다. 그 다음, 감산기(136)은 판독 포인터(134)를 감소시키고, RAM(110)은 판독 레지스터(102)에만 으로딩시키기 위해 정보를 출력시킨다. 버스(62)는 푸쉬/팝 레지스터(100)의 내용이 판독 레지스터(102)내에 으로드되게 하기 위해 멀티플렉서(104)에 입력된다.
제4도를 참조하면, 제3도의 레지스터 스택(60)의 푸쉬 및 팝 동작에 대한 타이밍도가 도시되어 있다. 시스템은 클럭 신호(CLK)와 동기되는데, 푸쉬 신호(PUSH)는 푸쉬 또는 팝 동작을 제어하는데 사용된다. PUSH상의 으로우 상태는 푸쉬 동작을 발생시키고, 하이 논리 레벨은 팝 동작을 발생시킨다. 스택은 스택 제어 신호(S0-S2) 및 조건 코드(CC)와 ZERO에 의해 제어된다. 이 푸쉬, 팝 또는 보존 스택 동작들은 다수의 분기 동작과 병행하여 발생한다. 서브루틴 호출은 브랜취와 푸쉬를 결합시킴으로써 달성되지만 복귀는 팝으로 스택에 브랜취를 코드시킴으로써 발생한다. 이 제어 동작들은 다음과 같이 표 1에 도시되어 있다.
Figure kpo00001
제4도를 다시 참조하면, 스택 제어 비트(S0-S2)가 PUSH 신호내의 전이 지점(140)에서 변화된다는 것을 알 수 있다. SPREG0-SPREG3 신호들은 스택 포인터(130)의 카운팅을 표시하고, 카운터가 전이 지점(140)까지 카운트 업한 다음 카운트 다운한다는 것을 알 수 있다. 부수적으로, 기록 인에이블 신호(WE1-WE4)는 푸쉬 동작시의 업 카운트 동안에만 기록하는 것을 나타내고, 비기록 인에이블들은 카운트 다운 또는 팝 동작 중에 발생된다.
제5도를 참조하면, 레지스터 스택의 제어부의 개략도가 도시되어 있는데, 도면들내의 동일 부분에는 동일한 참조 번호를 붙였다. 스택 포인터(130)은 반전 클리어 신호를 라인(144)상에 제공하기 위해 인버터(142)를 통해 클리어 신호에 접속된 클리어 입력을 갖고 있는 4비트 업/다운 카운터이다. 반전 클럭 신호는 AND 게이트(148)의 출력으로부터 수신된 업/다운(U/D) 제어와 함께 클럭 라인(146)상에 수신된다. 래치된 데이타는 반전 및 비반전 출력(150)상에 제공되고, 래치되지 않은 출력들은 버스(152)상에 제공된다. 버스(150)상의 래치된 출력들은 디코더(154)에 입력된다. 4비트 카운터(130)의 출력은 4비트 출력이고, 디코더(154)는 어드레스 래치(122)에 입력되는 10개의 출력들을 제공한다.
디코더(154)의 출력은 기록 인에이블 버스(124)에 관련되는데, 이 기록 인에이블 신호는 입력된 스택 포인터 출력들[SP0은 라인(160)상에 출력되고, SP9는 라인(162)상에 출력된다]을 갖는 8개의 3입력 AND 게이트(158)에 의해 선택된다. 각각의 AND 게이트(158)의 한 입력은 AND 게이트(148)의 한 입력에 입력되는 PUSH 신호에 접속되고, 제2입력은 클럭 신호 라인(146)에 접속되며, 제3입력은 디코더(154)의 출력들중 한 출력에 접속된다. 스택 포인터(130)은 3입력 OR 게이트(166)의 출력에 접속되는 라인(164)상의 제어 신호에 의해 제어되는데, 이 OR 게이트(166)의 입력들은 AND 게이트(168), AND 게이트(170) 및 NAND 게이트(172)의 출력들에 각각 접속된다. AND 게이트(168)의 한 입력은 인버터(174)를 통해 반전 팝 신호에 접속되고, 다른 입력은 라인(160)상의 SPO 신호에 접속된다. AND 게이트(170)의 한 입력은 인버터(176)을 통해 반전 PUSH 신호에 접속되고, 다른 입력은 라인(162)상의 SP9 출력에 접속된다. NAND 게이트(172)의 한 입력은 반전 READ 신호에 접속되고, 다른 입력은 반전 HOLD 신호에 접속된다. 또한, NAND 게이트(172)의 출력은 RDHLD 신호를 제공한다.
멀티플렉서(132)는 4개의 개별 멀티플렉서들로 구성되는데, 이 멀티플렉서들의 한 입력은 버스(152)에 접속되고 다른 입력은 감산기(136)의 출력에 접속된다. 멀티플렉서(132)내의 멀티플렉서들의 출력은 4개의 카운터들로 구성되는 4비트 판독 카운터(134)의 입력에 접속되는데, 판독 카운터(134)내의 각각의 카운터는 멀티플렉서(132)내의 각자의 멀티플렉서들에 관련된다. 판독 카운터(134)내의 4개의 카운터들은 반전 출력들을 버스(180)상에 제공하고, 비반전 출력을 디코더(184)에 입력시키기 위해 버스(182)상에 제공한다. 디코더(184)는 디코더(154)와 유사한 것으로, 판독 포인터 출력(RP0-RP9)를 제공한다. 출력(RP0)은 라인(186)상에 출력된다. 출력(RP2-RP9)는 어드레스 래치 회로(122)의 판독 인에이블부에 입력된다. 어드레스 래치 회로(122)의 판독 인에이블은 각각의 판독 포인터 출력(RP2-RP9)에 관련된 논리 회로로 구성된다. 각각의 이 회로는 출력들이 OR 게이트(192)의 입력들에 접속된 2개의 AND 게이트(188 및 190)으로 구성된다. 각각의 논리 회로용 OR 게이트(192)의 출력은 판독 인에이블 버스(126)에 접속된다. 각각의 판독 인에이블 회로용 AND 게이트(188)의 한 입력은 비반전 POP 신호를 수신하기 위해 인버터(174)의 출력에 접속되고, 다른 입력은 스택 포인터 출력들중 한 출력에 접속된다. 각각의 판독 인에이블 회로내의 AND 게이트(190)의 한 입력은 RDHLD 신호용 NAND 게이트(172)의 출력에 접속되고, 다른 입력은 관련된 READ 포인터(RP2-RP9)를 수신하기 위해 디코더(184)의 출력들중 한 출력에 접속된다.
스택 에러 신호(STKERR)를 출력시키기 위해 스택 에러 회로(194)가 제공된다. 이 회로(194)는 4입력 OR 게이트(196)으로 구성되는데, 이 게이트(196)의 4개의 입력들은 AND 게이트(198,200,202 및 204)에 각각 접속된다. AND 게이트(204)의 한 입력은 라인(186)상의 RPO 신호 라인에 접속되고, 다른 입력은 인버터 (206)을 통해 판독 실패 신호(READF) 라인에 접속된다. AND 게이트(202)의 한 입력은 라인(160)상의 SP0 신호 라인에 접속되고, 다른 입력은 인버터(208)을 통해 팝 실패 신호(POPF) 라인에 접속된다. AND 게이트(200)의 한 입력은 SP3 신호 라인(162)에 접속되고, 다른 입력은 READF 신호 라인에 접속된다. AND 게이트(198)의 한 입력은 디코더(154)의 SP8 출력 라인에 접속되고, 다른 입력 라인은 READF 신호 라인에 접속된다.
동작시에, 스택 에러 논리 회로(194)는 스택이 공백 상태이거나 충만 상태인지에 무관하게 판독 에러가 있을 때마다 STKERR 출력상에 활성 하이 상태를 발생시킨다. 스택이 공백 상태이면, 스택 포인터는 0으로 되고, 팝 동작이 실행된다. AND 게이트(202)는 SP0 라인의 상태 외에 팝 동작이 실행될 때를 결정한다. 2가지 층만 조건이 있는데, 한가지는 AND 게이트(198)에 의해 결정되고, 다른 한가지는 AND 게이트(200)에 의해 결정된다. AND 게이트(198)은 스택 포인터 출력 SP8이 존재하고 비판독 동작이 비반전 READF 신호를 샘플링함으로써 행해질때를 결정한다. AND 게이트(200)은 스택 포인터가 9번째 위치(SP9)에 있고 비판독 동작이 수행될 때를 결정한다. AND 게이트(204)는 판독 포인터가 0에 있고 판독 동작이 수행될 때를 결정한다. 이것이 판독 에러 조건이다.
제6도를 참조하면, 푸쉬/팝 레지스터(100) 및 판독 레지스터(102)의 개략적인 블럭도가 도시되어 있는데, 도면들 내의 동일 부분들에는 동일한 참조 번호를 붙였다. 판독 레지스터(102)는 14개의 개별 판독 레지스터(210)으로 구성된다. 각각의 레지스터(210)의 클럭 입력은 반전 클럭 신호 라인에 접속되고, PPREG 입력은 푸쉬/팝 레지스터(100)의 출력 라인에 접속되며, POPRDN 입력은 NAND 게이트(212)의 출력 라인에 접속되고, HOLD 입력은 인버터(214)를 통해 반전 HOLD 신호 라인에 접속되며. PUSH 입력은 PUSH 신호 라인에 접속되고, 데이타 입력은 데이타 버스(10)에 접속되며, RM 입력은 메모리내의 정보를 판독하기 위해 버스(112)에 접속된다. 각각의 레지스터(210)의 출력은 버스(84)상의 14개의 라인들 중 한 라인에 접속된다.
푸쉬/팝 레지스터(100)은 14개의 개별 푸쉬/팝 플립플롭(216)으로 구성된다. 각각의 플립플롭(216)은 반전 클럭 입력, PUSH 신호, POP 신호, HOLD 신호 및 RDHLD 신호를 수신한다. 부수적으로, 데이타 입력은 버스(108)에 접속되고, RM 입력은 버스(112)에 접속된다. 각각의 플립플롭(216)의 출력은 래치(218)의 데이타 입력 라인에 접속되는데, 각각의 플립플롭(216)은 이에 관련된 래치(218)을 갖고 있다. 래치(218)의 인에이블 입력 라인은 D플립플롭(220)의 출력 라인에 접속되는데, 이 D플립플롭(220)의 입력 라인은 반전 PUSH 신호 라인에 접속되고 클럭 입력 라인은 반전 클럭 신호 라인에 접속된다. 반전 출력 라인은 반전 데이타 버스(116)에 접속되고, 비반전 출력 라인은 버스(114)에 접속된다. 또한, 각각의 플립플롭(216)의 출력 라인은 AND 게이트(222)의 한 입력 라인에 접속되는데, 이 AND 게이트(222)의 다른 입력 라인은 NOR 게이트(224)의 출력 라인에 접속된다. AND 게이트(222)의 출력 라인은 버스(62)에 접속된다. NOR 게이트(224)의 한 입력 라인은 반전 STACK 신호 라인에 접속되고, 다른 입력 라인은 인버터(226)을 통해 반전 ZERO 신호 라인에 접속된다. NAND 게이트(212)의 한 입력 라인은 반전 READ 신호 라인에 접속되고, 다른 입력 라인은 반전 POP 신호 라인에 접속된다. 반전 POP 신호 라인은 인버터(228)을 통해 플립플롭(216)의 POP 입력 라인에 접속된다.
각각의 판독 레지스터(210)은 래치의 입력 라인에 접속되는 OR 게이트의 입력 라인에 출력이 접속된 3개의 AND 게이트들로 구성된다. 래치는 반전 클럭 신호에 의해 클럭된다. PPREG 신호 및 HOLD 신호는 한 AND 게이트에 입력되고, POPRO 신호 및 RM 신호는 한 AND 게이트에 입력되며, SUSH 및 DATA 신호는 제3AND게이트에 입력된다. 그러므로, HOLD, POPRD 및 PUSH 신호들은 데이타가 이들을 통과하여 래치로 전송되게 하기 위한 인에이블링 신호이다. 유사한 방식으로, 각각의 푸쉬/팝 플립플롭(216)은 래치에 입력되는 OR 게이트의 입력 라인에 출력이 접속된 4개의 AND 게이트들로 구성된다. 래치는 반전 클럭 신호에 의해 클럭된다. AND 게이트들중 2개의 AND 게이트의 한 입력 라인은 플립플롭(216)의 출력 상의 래치의 출력 라인에 접속되고, 한 AND 게이트의 한 입력 라인은 RDHLD 신호 라인에 접속되며, 다른 AND 게이트의 다른 입력 라인은 HOLD 신호 라인에 접속된다. 제3AND게이트의 한 입력 라인은 PUSH 신호 라인에 접속되고, 다른 입력 라인은 DATA 신호 라인에 접속된다. 제4AND게이트의 한 입력 라인은 POP 신호 라인에 접속되고, 다른 입력 라인은 RM 신호 라인에 접속된다.
요약하면, 비트 슬라이스 프로세서내의 마이크로 순차기용 레지스터 스택이 제공된다. 이 레지스터 스택은 별도의 판독 레지스터 및 별도의 푸쉬/팝 레지스터를 갖는다. 푸쉬/팝 레지스터는 데이타를 저장하기 위한 랜덤 액세스 메모리(random access memory)에 정보를 공급하도록 동작할 수 있다. 스택 포인터가 스택의 상부를 표시하기 위해 제공되는 스택내로 데이타를 푸쉬 또는 팝하기 위해 제어 논리가 제공된다. 별도의 판독 레지스터는 푸쉬/팝 레지스터내의 정보를 교란시키지 않고서 스택 외부의 데이타를 판독한다. 판독 레지스터는 별도의 판독 포인터에 의해 제어되고, 이 스택 포인터와 독립적이다. 부수적으로, 스택이 충만 상태인지, 공백 상태인지, 또는 판독 에러가 있는지를 표시하기 위해 스택 에러 회로가 제공된다.
본 명세서내에는 양호한 실시예가 상세하게 기술되어 있지만, 본 분야에 숙련된 기술자들은 첨부한 특허 청구의 범위에 의해 정해진 바와 같은 본 발명의 원리 및 범위를 벗어나지 않고서 본 발명을 여러가지 형태로 변형시킬 수 있다.

Claims (7)

  1. 레지스터 스택(register stack)에 있어서, 큐(queue)내에 배열되고 후입 선출 방식 (last-in first-out format)으로 억세스 가능한 다수의 저장 위치들을 구비하는 레지스터 수단을 포함하고, 상기 레지스터 수]단은 상기 큐의 상부에서의 1개의 저장 위치를 제공하기 위한 푸쉬/팝 레지스터 수단, 상기 큐의 나머지 부분에 대응하는 다수의 저장 위치를 갖고 있는 메모리 어레이 수단 및 상기 푸쉬/팝 레지스터 수단으로부터 데이타를 수신하여 상기 메모리 어레이 수단에 입력시키고, 후입 선출 방식에 따라 상기 메모리 어레이 수단으로부터 상기 푸쉬/팝 레지스터 수단으로 데이타를 출력시키기 위해 상기 큐에 따라 상기 메모리 어레이 내의 저장 위치를 억세스하는 억세스 수단을 구비하고, 상기 레지스터 수단은 푸쉬 모우드에서는 새로운 데이타를 수신하여 상기 수신된 데이타를 상기 푸쉬/팝 레지스터 수단에 입력시켜 그 내부에 저장하도록 상기 레지스터 수단을 제어하고, 상기 큐에 따라 상기 메모리 수단내의 상기 저장 위치들 중 다음 위치내에 상기 푸쉬/팝 레지스터 수단의 이전 내용을 상기 메모리 어레이 수단에 저장하도록 상기 억세스 수단을 제어하며, 팝 모우드에서는 상기 큐의 상부에서 상기 푸쉬/팝 레지스터 수단으로부터 저장된 데이타를 출력시키고, 상기 푸쉬/팝 레지스터 수단에 입력시키기 위해 최종적으로 채워진 저장 위치로부터 상기 메모리 어레이 수단으로부터의 데이타를 출력시키도록 상기 억세스 수단을 제어하기 위해 동작할 수 있는 푸쉬/팝 제어 수단, 저장 위치를 제공하기 위한 판독 레지스터 수단; 및 상기 푸쉬/팝 레지스터 수단내에 저장된 상기 큐의 상부내의 정보를 출력시키고 상기 큐내의 위치에 따라 상기 큐내의 저장 위치를 중 선택된 저장 위치 내에 저장된 정보를 출력시키도록 상기 억세스 수단을 제어하기 위해, 상기 판독 레지스터 수단의 입력을 상기 푸쉬/팝 레지스터 수단의 출력 및 상기 메모리 어레이 수단의 출력에 접속시키기 위한 판독 제어 수단을 포함하는 것을 특징으로 하는 레지스터 스택.
  2. 제1항에 있어서, 상기 판독 레지스터 수단이 상기 큐의 상부에서 상기 레지스터 수단내의 내용을 초기에 포함도록, 상기 푸쉬/팝 레지스터 수단이 상기 푸쉬/팝 제어 수단에 의해 저장된 상기 새로운 수신 데이타를 갖는 경우에 상기 판독 제어 수단이 상기 판독 레지스터 수단의 입력을 상기 푸쉬/팝 레지스터 수단의 입력과 인터페이스시키도록 동작할 수 있는 것을 특징으로 하는 레지스터 스택.
  3. 제2항에 있어서, 상기 판독 제어 수단이 외부 증가 신호에 따라 상기 큐의 상부로부터 상기 큐내의 위치들을 통해 순차적으로 감소하도록 동작할 수 있는 것을 특징으로 하는 레지스터 스택.
  4. 데이타를 저장하기 위한 선정된 수의 저장 위치를 갖고 있고 억세스 데이타를 출력시키기 위한 출력단 내에 저장되도록 데이타를 수신하기 위한 입력단을 갖고 있는 메모리 수단; 데이타를 수신하기 위한 입력, 데이타를 출력시키기 위해 상기 메모리 수단의 입력과 인터페이스된 제1출력 및 레지스터 스택으로부터 데이타를 출력시키기 위한 제2출력을 갖고 있고 1개의 저장 위치를 제공하기 위한 푸쉬/팝 레지스터 수단; 데이타를 수신하기 위한 입력 및 레지스터 스택으로부터 판독된 데이타를 출력시키기 위한 출력을 구비하고, 1개의 저장 위치를 제공하기 위한 판독 레지트터 수단, 상기 메모리 수단과 상기 푸쉬/팝 레지스터 수단의 출력과 상기 푸쉬/팝 레지스터 수단 및 상기 판독 레지스터 수단에 출력시키기 위해 새로운 입력 데이타를 수신하기 위한 데이타 입력단 사이를 선택하기 위한 멀티플렉스 수단, 상기 큐내의 다음 위치에 대응하는 상기 메모리 수단내의 다음 저장 위치내에 상기 푸쉬/팝 레지스터 수단의 이전 내용을 저장하도록 제어된 상기 메모리 수단을 갖고 있는 상기 푸쉬/팝 레지스터 수단 및 상기 판독 레지스터 수단에 입력시키기 위해 상기 데이타 입력 단자로부터 새로운 데이타를 수신하도록 푸쉬 모우드에서 상기 멀티플렉스 수단을 제어하기 위한 푸쉬/팝 제어 수단; 및 상기 메모리 수단들 억세스하고 데이타를 저장하기 위해 상기 판독 레지스터 수단에 입력시키도록 상기 멀티플렉스 수단을 제어하기 위한 판독 수단을 포함하고, 상기 푸쉬/팝 레지스터 수단 및 상기 메모리 수단내의 상기 저장 위치는 상기 푸쉬/팝 레지스터 수단이 상기 큐내의 상부 위치를 포함하도록 큐내에 배열되며, 상기 푸쉬/팝 레지스터 수단은 팝 모우드에서 그 내용을 레지스터 스택으로부터 출력시키고 상기 메모리 수단내의 상기 큐내의 최고 위치에 대응하는 상기 메모리 수단내의 대향 저장 위치들로부터 저장하기 위해 상기 메모리 수단으로부터 데이타를 입력시키도록 상기 푸쉬/팝 레지스터 수단을 제어하기 위해 동작할 수 있고, 상기 판독 수단에 의한 상기 메모리 수단의 억세스이 상기 큐를 변화시키지 않도록 상기 푸쉬/팝 레지스터 수단의 내용이 계속 변하지 않는 것을 특징으로 하는 레지스터 스택.
  5. 제4항에 있어서, 상기 푸쉬/팝 수단은 상기 큐에 관련된 상기 메모리 수단 및 상기 푸쉬/팝 레지스터 수단내의 저장 위치의 상대 위치를 결정하기 위한 스택 포인터; 상기 푸쉬/팝 레지스터 수단의 내용이 출력될 때마다 푸퓌 모우드에서 상기 스택 포인터를 증가시키고, 새로운 데이타가 수신되어 상기 푸쉬/팝 레지스터 수단내에 저장될 때 팝 모우드에서 상기 스택 포인터를 감소시키기 위한 카운터 수단; 상기 스택 포인터내의 값에 따라 상기 스택 포인터내의 각각의 값에 대해 1개의 위치로 선정된 순서로 배열된 상기 메모리 수단내의 저장 위치들을 억세스하기 위한 억세스 수단; 및 푸쉬 모우드에서 상기 푸쉬/팝 레지스터 수단에 상기 수신 데이타를 입력시키고 상기 푸쉬/팝 레지스터 수단의 이전 내용을 상기 메모리 수단내의 저장 위치들 중 한 억세스 위치내에 저장하도록 상기 멀티플렉서 수단을 제어하고, 팝 모우드에서 억세스 저장 위치의 내용을 상기 푸쉬/팝 레지스터 수단내의 상기 메모리 수단내에 저장하도록 상기 멀티플렉서 수단을 제어하기 위한 멀티플렉서 제어 수단을 포함하는 것을 특징으로 하는 레지스터 스택.
  6. 제5항에 있어서, 상기 판독 제어 수단은 상기 큐에 관련된 상기 메모리 수단내의 저장 위치들의 상대 위치를 포함하기 위한 판독 포인터; 판독 동작 개시시에 상기 스택 포인터의 내용을 판독 포인터에 로드시키기 위한 수단; 외부 감소 신호에 응답하여 판독 모우드에서 상기 판독 포인터를 감소시키기 위한 카운터 수단; 상기 판독 포인터내의 값에 따라 상기 메모리 수단내의 저장 위치를 억세스하도록 상기 푸쉬/팝 제어 수단내의 상기 억세스 수단을 제어하기 위한 수단, 및 상기 푸쉬/팝 레지스터 수단의 내용 또는 상기 스택 포인터내의 값을 교란시키지 않고서 상기 메모리 수단내의 억세스 저장 위치의 출력을 상기 판독 레지스터 수단에 입력시키도록 상기 멀티플렉서를 제어하기 위한 수단을 포함하는 것을 특징으로 하는 레지스터 스택.
  7. 제1항에 있어서, 상기 큐에 관련된 레지스터 스택내의 저장 위치들의 상대 위치를 결정하고 큐내의 최종 위치에 대은하는 최종 저장 위치가 데이타를 출력시키기 위해 억세스되거나 큐내의 제1위치가 데이타를 입력시키기 위해 억세스될 경우에 에러 신호를 출력시키기 위한 수단을 포함하는 것을 특징으로 하는 레지스터 스택.
    8. 제5항에 있어서, 상기 제어 수단이 푸쉬 모우드에 있을때 상기 스택 포인터내의 값이 최대값인지의 여부 또는 상기 푸쉬/팝 수단이 팝 모우드에 있을 때 상기 스택 포인터의 값이 최소값인지의 여부를 결정하기 위한 수단 및 상기 스택 포인터의 값이 푸쉬 모우드에서 최대이거나 팝 모우드에서 최소일 때 스택 에러 신호를 출력시키기 위한 수단을 포함하는 것을 특징으로 하는 레지스터 스택.
KR1019870000395A 1986-03-31 1987-01-20 비트 슬라이스 프로세서 마이크로 순차기용 레지스터 스택 KR960013359B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US06/846,673 US4835738A (en) 1986-03-31 1986-03-31 Register stack for a bit slice processor microsequencer
US846673 1986-03-31
US846,673 1986-03-31

Publications (2)

Publication Number Publication Date
KR870009297A KR870009297A (ko) 1987-10-24
KR960013359B1 true KR960013359B1 (ko) 1996-10-04

Family

ID=25298614

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019870000395A KR960013359B1 (ko) 1986-03-31 1987-01-20 비트 슬라이스 프로세서 마이크로 순차기용 레지스터 스택

Country Status (2)

Country Link
US (1) US4835738A (ko)
KR (1) KR960013359B1 (ko)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5161217A (en) * 1986-10-14 1992-11-03 Bull Hn Information Systems Inc. Buffered address stack register with parallel input registers and overflow protection
US5434979A (en) * 1987-02-27 1995-07-18 Unisys Corporation Disk drive controller
US4980821A (en) * 1987-03-24 1990-12-25 Harris Corporation Stock-memory-based writable instruction set computer having a single data bus
US5053952A (en) * 1987-06-05 1991-10-01 Wisc Technologies, Inc. Stack-memory-based writable instruction set computer having a single data bus
US5142677A (en) * 1989-05-04 1992-08-25 Texas Instruments Incorporated Context switching devices, systems and methods
US5021994A (en) * 1988-01-11 1991-06-04 Texas Instruments Incorporated Look-ahead flag generator
JPH0831053B2 (ja) * 1988-03-25 1996-03-27 富士通株式会社 マイクロプログラム制御装置
JPH01255035A (ja) * 1988-04-05 1989-10-11 Matsushita Electric Ind Co Ltd プロセサ
US5107457A (en) * 1989-04-03 1992-04-21 The Johns Hopkins University Stack data cache having a stack management hardware with internal and external stack pointers and buffers for handling underflow and overflow stack
FR2645324B1 (ko) * 1989-04-04 1991-05-31 Europ Rech Electr Lab
JPH06105432B2 (ja) * 1989-06-01 1994-12-21 三菱電機株式会社 マイクロプロセッサ
US5223896A (en) * 1989-06-23 1993-06-29 Minolta Camera Kabushiki Kaisha Image forming apparatus having self-diagnostic function relating to the potential of the photoreceptor
US5440749A (en) * 1989-08-03 1995-08-08 Nanotronics Corporation High performance, low cost microprocessor architecture
US5117493A (en) * 1989-08-07 1992-05-26 Sun Microsystems, Inc. Pipelined register cache
JPH0619759B2 (ja) * 1990-05-21 1994-03-16 富士ゼロックス株式会社 マルチプロセッサシステムにおける相互通信方法
US5452418A (en) * 1992-04-24 1995-09-19 Digital Equipment Corporation Method of using stream buffer to perform operation under normal operation mode and selectively switching to test mode to check data integrity during system operation
US5461718A (en) * 1992-04-24 1995-10-24 Digital Equipment Corporation System for sequential read of memory stream buffer detecting page mode cycles availability fetching data into a selected FIFO, and sending data without aceessing memory
WO1994016383A1 (en) * 1993-01-06 1994-07-21 The 3Do Company Digital signal processor architecture
US5473271A (en) * 1993-02-09 1995-12-05 Dallas Semiconductor Corporation Microprocessor output driver
US6151661A (en) * 1994-03-03 2000-11-21 International Business Machines Corporation Cache memory storage space management system and method
US6035348A (en) 1997-06-30 2000-03-07 Sun Microsystems, Inc. Method for managing multiple ordered sets by dequeuing selected data packet from single memory structure
US5958039A (en) * 1997-10-28 1999-09-28 Microchip Technology Incorporated Master-slave latches and post increment/decrement operations
US6112018A (en) 1997-12-18 2000-08-29 Advanced Micro Devices, Inc. Apparatus for exchanging two stack registers
US6058467A (en) * 1998-08-07 2000-05-02 Dallas Semiconductor Corporation Standard cell, 4-cycle, 8-bit microcontroller
US6345353B2 (en) * 1999-07-20 2002-02-05 Microchip Technology Incorporated Stack pointer with post increment/decrement allowing selection from parallel read/write address outputs
US20020144099A1 (en) * 2001-01-25 2002-10-03 Muro Manuel R. Hardware architecture for fast servicing of processor interrupts
US6795889B2 (en) 2002-01-09 2004-09-21 International Business Machines Corporation Method and apparatus for multi-path data storage and retrieval
US7203820B2 (en) * 2002-06-28 2007-04-10 Sun Microsystems, Inc. Extending a register file utilizing stack and queue techniques
GB2399901B (en) * 2003-03-27 2005-12-28 Micron Technology Inc System and method for encoding processing element commands in an active memory device
US9274971B2 (en) 2012-11-27 2016-03-01 International Business Machines Corporation Low latency data exchange
FR3013869B1 (fr) * 2013-11-22 2016-01-01 Thales Sa Procede de detection des debordements de pile et processeur pour la mise en oeuvre d'un tel procede

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3297999A (en) * 1963-08-26 1967-01-10 Burroughs Corp Multi-programming computer
FR2193506A5 (ko) * 1972-07-24 1974-02-15 Jeumont Schneider
US4099229A (en) * 1977-02-14 1978-07-04 The United States Of America As Represented By The Secretary Of The Navy Variable architecture digital computer
JPS54142946A (en) * 1978-04-27 1979-11-07 Nec Corp Last-in first-out memory
US4481608A (en) * 1979-12-26 1984-11-06 Varian Associates, Inc. Reentrant asynchronous FIFO
US4398244A (en) * 1980-05-07 1983-08-09 Fairchild Camera & Instrument Corporation Interruptible microprogram sequencing unit and microprogrammed apparatus utilizing same
US4504925A (en) * 1982-01-18 1985-03-12 M/A-Com Linkabit, Inc. Self-shifting LIFO stack
US4553203A (en) * 1982-09-28 1985-11-12 Trw Inc. Easily schedulable horizontal computer
US4628477A (en) * 1983-10-17 1986-12-09 Sanders Associates, Inc. Programmable push-pop memory stack
US4603384A (en) * 1983-11-25 1986-07-29 Texas Instruments Incorporated Data processing system with multiple memories and program counter
US4740914A (en) * 1984-12-31 1988-04-26 Gte Communication Systems Corporation Address generator

Also Published As

Publication number Publication date
US4835738A (en) 1989-05-30
KR870009297A (ko) 1987-10-24

Similar Documents

Publication Publication Date Title
KR960013359B1 (ko) 비트 슬라이스 프로세서 마이크로 순차기용 레지스터 스택
US4398244A (en) Interruptible microprogram sequencing unit and microprogrammed apparatus utilizing same
US4077058A (en) Method and apparatus for executing an extended decor instruction
US5042004A (en) Programmable logic device with subroutine stack and random access memory
US4016545A (en) Plural memory controller apparatus
US4564901A (en) Method of performing a sequence of related activities via multiple asynchronously intercoupled digital processors
US4646231A (en) Method of synchronizing the sequence by which a variety of randomly called unrelated activities are executed in a digital processor
EP0011442B1 (en) Data processing system having an integrated stack and register machine architecture
EP0138419B1 (en) Central processing unit for a digital computer
US5050067A (en) Multiple sliding register stacks in a computer
JPH04232532A (ja) ディジタル・コンピュータ・システム
US5367649A (en) Programmable controller
US4005391A (en) Peripheral interrupt priority resolution in a micro program data processor having plural levels of subinstruction sets
KR100385495B1 (ko) 워드정렬브랜치타겟을가지는처리시스템
US5978910A (en) Performing pending interrupts or exceptions when interruptible jumps are detected
US4348720A (en) Microcomputer arranged for direct memory access
US4351024A (en) Switch system base mechanism
US4460972A (en) Single chip microcomputer selectively operable in response to instructions stored on the computer chip or in response to instructions stored external to the chip
US5613143A (en) Programmable controller for high-speed arithmetic operations
US4812971A (en) Central processing unit for a digital computer
US4567562A (en) Controller for controlling access to a plurality of records that can be accessed and changed by several independent processors
EP0729606B1 (en) Microcontroller with a reconfigurable program status word
EP0260837B1 (en) Microprocessor with selective cache memory
US6449675B1 (en) Multifield register having a selection field for selecting a source of an information field
US4975837A (en) Programmable unit having plural levels of subinstruction sets where a portion of the lower level is embedded in the code stream of the upper level of the subinstruction sets

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
G160 Decision to publish patent application
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20010928

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee