KR840007187A - 서브루틴 및 인터럽트용 프로그램 카운터 스택킹 방법 및 장치 - Google Patents
서브루틴 및 인터럽트용 프로그램 카운터 스택킹 방법 및 장치 Download PDFInfo
- Publication number
- KR840007187A KR840007187A KR1019830005727A KR830005727A KR840007187A KR 840007187 A KR840007187 A KR 840007187A KR 1019830005727 A KR1019830005727 A KR 1019830005727A KR 830005727 A KR830005727 A KR 830005727A KR 840007187 A KR840007187 A KR 840007187A
- Authority
- KR
- South Korea
- Prior art keywords
- address
- interrupt
- register
- return
- subroutine
- Prior art date
Links
Classifications
-
- 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
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30054—Unconditional branch instructions
-
- 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/22—Microcontrol or microprogram arrangements
- G06F9/26—Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
- G06F9/262—Arrangements for next microinstruction selection
- G06F9/268—Microinstruction selection not based on processing results, e.g. interrupt, patch, first cycle store, diagnostic programs
-
- 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
- G06F9/4484—Executing subprograms
- G06F9/4486—Formation of subprogram jump address
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)
Abstract
내용 없음
Description
본 내용은 요부공개 건이므로 전문내용을 수록하지 않았음
제1도는 본 발명을 활용한 데이타처리 시스템의 일반적인 블록아이어그램.
제2도는 본 발명의 원리를 수행하는 제1도의 마이크로프로세서의 제어부에 대한 블록다이어그램.
제4도는 본 발명에 따른 두개의 서브루틴 및 두개의 하드웨어 인터럽트 서비스 루틴을 통해 주루틴에서 마이크로 프로그램의 마이크로 명령의 실행에 대한 시작이 연속적인 순서로 되는 순서도.
Claims (27)
- 서브루틴으로부터 인터럽트 서비스루틴으로 그리고 인터럽트 서비스루틴으로부터 서브루틴으로 전환 하기 위한 방법으로서, 서브루틴으로의 브랜치를 확인하는 메모리(24)로부터 루틴의 제1마이크로 명령을 발생하는 단계와, 서브루틴으로의 브랜치를 수행하는 단계와, 인터럽트 서비스루틴으로 인터럽트를 발생하는 단계와, 서브루틴으로부터 또는 인터럽트 서비스루틴으로부터 리턴을 확인하는 메모리(24)로부터의 마이크로명령을 발생하는 단계와, 서브루틴 또는 인터럽트 서비스루틴으로부터 리턴을 수행하는 단계로 구성되며, 상기 서브루틴으로의 브랜치를 수행하는 단계는 금지가능한 인터럽트의 발생을 금지시키는 단계와, 현재 어드레스 레지스터(66)내의 제1마이크로 명령의 현재 어드레스를 인크리멘트(64)에 전송하는 단계와, 현재 어드레스를 인크리멘트하여 인크리멘트된 어드레스를 발생하는 단계와, 리턴 어드레스인 인크리멘트된 어드레스를 푸쉬 다운 스택(70)이 제1레지스터(71)내에 스토어시키는 단계와, 앞서의 리턴 어드레스를 인접레지스터(72,73,74)에 인트리멘트된 어드레스의 스토어와 동시에 푸쉬다운 스택에서 한레벨낮게 전송하는 단계와, 만일 인터럽트가 있지 않든지 또는 모든 상면 인터럽트들이 금지되었다면, 제1마이크로명령내의 다음 어드레스를 다음 어드레스 레지스터(63)내로 전송하는 단계와, 다음 어드레스 레지스터(63)내의 다음 어드레스(64)로 전송하는 단계와, 다음 어드레스 레지스터(63)로부터의 다음 어드레스를 사용하여 메모리(24)로부터 서브루틴의 제1마이크로명령인 제2마이크로명령을 발생하는 단계로 구성되며, 상기 인터럽트 서비스루틴으로 인터럽트를 발생하는 단계는 최상의 우선 순위의 금지되지 않은 당면 인터럽트의 백터인터럽트 어드레스를 당면의 금지안된 인터럽트가 있을때 발생하는 단계와, 인터럽트들이 금지되지 않는다면 다음 어드레스 레지스터(63)로 백터인럽트 어드레스를 전송하는 단계와, 인터럽트들이 금지되어 있을때 리턴 어드레스인 현재 마이크로 명령으로부터 다음 어드레스를 푸쉬다운 스택의 제1레지스터(71)로 스토어하는 단계와, 앞서의 리턴 어드레스를 리턴 어드레스의 스토어와 동시에 푸쉬다운 스택(70)내에서 한 레벨 낮게 인접 레지스트(72,73,74)들로 전송하는 단계와, 다음 어드레스 레지스터(63)내의 백터 인터럽트 어드레스를 현재 어드레스 레지스터(66)으로 전송하는 단계와, 다음 어드레스 레지스터(63)로부터의 백터 인터럽트 어드레스를 사용하여 메모리(24)로부터 제1인터럽트 서비스루틴의 제1마이크로 명령인 제3마이크로 명령을 발생하는 단계로 구성되며, 상기 서브루틴 또는 인터럽트 서비스루틴으로부터 리턴을 수행하는 단계는 푸쉬다운 스택(70)내의 제1레지스터(71)로부터, 인터럽트가 걸려있지 않든지 또는 모든 당면 인터럽트들이 금지되면, 다음 어드레스 레지스터(63)로 전송하는 단계와, 리턴 어드레스를 다음 어드레스 레지스터(63)로 전송함과 동시에 앞서의 리턴어드레스를 인접레지스터(71,72,73)내로 푸쉬다운 스택(70)내에서 한 수준 높게 전송하는 단계와, 만일 당면의 금지 안된 인터럽트가 있다면 최상의 우선순위의 금지안된 당면 인터럽트의 벡터 인터럽트 어드레스를 발생하는 단계와, 만일 인터럽트들이 금지되지 않았다면 벡터 인터럽트 어드레스를 다음 어드레스 레지스터(63)내로 전송하는 단계와, 다음 어드레스 레지스터(63)내로 전송하는 단계와, 다음 어드레스 레지스터(63)로부터의 어드레스를 사용하여 메모리(24)로부터, 만일 금지안된 인터럽트들이 걸려있지 않을때는 서브루틴으로부터 브랜치하는 마이크로명령에 대해 뒤이은 마이크로명령인 제4마이크로명령을 또는 당면의 금지안된 인터럽트가 존재할때는 뒤이은 인터럽트 서비스루틴의 제1마이크로 명령을 발생하는 단계로 구성되는 것을 특징으로 한 서브루틴 및 인터럽트 서시브루틴용 프로그램 카운터 스택킹방법.
- 제1항에 있어서, 서브루틴으로의 브랜치를 수행하는 단계는 리턴을 수행하는 단계가 발생되기까지 몇번이고 반복되는 것을 특징으로 한 서브루틴 및 인터럽트 서비스루틴용 프로그램 카운터 스택킹방법.
- 제1항에 있어서, 인터럽트 서비스루틴으로부터의 리턴단계에 앞선 인터럽트 발생단계는 서브루틴으로부터의 리턴단계가 발생하기 전에 발생하는 것을 특징으로 한 서브루틴 및 인터럽트 서비스루틴용 프로그램카운터의 스택킹 방법.
- 제1항에 있어서, 서브루틴으로의 브랜치를 수행하는 단계가 현재 마이크로명령으로부터 다음 어드레스를 셀렉트하기 위해 제1값을 가지는 메모리(24)로부터 발생된 현재 마이크로 명령의 어드레스난으로서 제1멀티플렉서(60)를 인에이블시키는 단계와, 모든 당면의 인터럽트들이 금지된때 인크리멘티(64)의 출력으로부터 리턴 어드레스를 셀렉트하며, 금지되지 않은 당면의 인터럽트들이 있다면 제1멀티플렉서의 출력으로부터 리턴 어드레스를 셀렉트하는 리턴 멀티플렉서(61)를 인에이블시키는 단계로 구성되는 것을 특징으로 한 서브루틴 및 인터럽트 서비스루틴용 프로그램 카운터 스택킹방법.
- 제4항에 있어서, 인터럽트 서비스루틴으로 인터럽트를 발생하는 단계는 최상위의 우선순위의 금지안된 당면 인터럽트의 벡터 이터럽트 어드레스가 다음 어드레스가 되도록 선택되는 제2멀티플렉서(62)를 인에이블시키는 단계와, 제1멀티플레서(60)로부터의 출력으로부터 리턴 어드레스를 선택하도록 리턴 멀티플렉서(61)를 인에이블시키는 단계를 포함하는 것을 특징으로 한 서브루틴 및 인터럽트 서비스루틴용 프로그램카운터 스택킹방법.
- 제5항에 있어서, 서브루틴으로부터 인터럽트 서비스 루틴으로부터의 리턴을 수행하는 단계는 푸쉬다운 스택(70)의 제1레지스터(71)로부터 다음 어드레스를 선택하도록 제2값을 갖는 메모리(24)로부터 발생된 현재 마이크로명령의 어드레스난에 의해서, 제1멀티플렉서(60)를 인에이블시키는 것을 포함한 것을 특징으로 한 서브루틴 및 인터럽트 서비스루틴용 프로그램 카운터 스택킹방법.
- 제6항에 있어서, 푸쉬다운 스택(70)내에 리턴 어드레스를 스토어하는 단계는 다수의 쉬프트레지스터(70A-70K)들을 한자리씩 제1방향으로 이동시킴으로 이뤄지고, 푸쉬다은 스택(70)으로부터 리턴 어드레스를 전송하는 단계는 제1방향과 반대방향인 제2방향으로 한자리씩 상기 쉬프트 레지스터들(70A-70K)을 이동시킴으로 달성된다는 것을 특징으로 한 서스루틴 및 인터럽트 서비스루틴용 프로그램 카운터 스택킹방법.
- 제1항에 있어서, 금지가능한 인터럽트들의 발생의 금지시키는 단계는, 당면의 금지 불가능한 인터럽트가 없을때 인터럽트 발생단계가 현재 마이크로 명령의 수행기간중에 발생하는 것을 예방하여 현재 마이크로 명령의 수행이 메모리로부터 발생된 뒤이은 마이크로명령의 수행보다 앞서게 되며, 뒤이은 마이크로 명령의 어드레스는 현재 마이크로 명령의 수행에 의해서만 결정되고 금지가능한 인터럽트의 벡터인터럽트 어드레스에 의해서 결정되지 않는 것을 특징으로 한 서브루틴 및 인터럽트 서비스루틴용 프로그램 카운터 스택킹방법.
- 제1항에 있어서, 다음 어드레스 레지스터(63)내의 다음 어드레스를 현재 어드레스 레지스터(66)로 전송하는 단계는 푸쉬다운 스택의 제1레지스터(71)내의 인크리멘트된 어드레스를 스토어하는 단계와 동시에 일어나는 것을 특징으로 한 서브루틴 및 인터럽트 서비스루틴용 프로그램 카운터 스택킹방법.
- 제1항에 있어서, 다음 어드레스 레지스터(63)내의 벡터 인터럽트 어드레스를 현재 어드레스 레지스터(66)에 전송하는 단계는 푸쉬 다운 스택(70)의 제1레지스터로 현재 마이크로 명령으로부터의 다음 어드레스를 스토어하는 단계와 동시에 일어나는 것을 특징으로 한 서브루틴 및 인터럽트 서비스루틴용 프로그램 카운터 스택킹방법.
- 제1항에 있어서, 푸쉬다운 스택(70)은 오버팝 서비스루틴으로 초기화되며, 앞서의 리턴 어드레스를 인접 레지스터(71-73)들로 한 레벨 높게 전송하는 단계는 오버팝 서비스 루틴 어드레스를 푸쉬다운 스택(70)의 최종 레지스터(74)로 전송하는 것을 포함하여 푸쉬다운 스택(70)의 제1레지스터(71)로부터 리턴어드레스의 과잉전송을 수행하는 것이 오버팝 서비스루틴의 수행을 일으키도록 한 것을 특징으로 한 서브루틴 및 인터럽트 서비스 루틴용 프로그램 카운터 스택킹방법.
- 다수의 서브루틴을 호출하는 루틴을 실행하고, 다수의 인터럽트에 반응하여 다수의 인터럽트 서비스루틴을 실행하기 위한 데이타처리 시스템(10,20,40)으로서, 상기 시스템은 일련의 마이크로 명령을 제공하는 수단(24,63,65)과, 금지불능 인터럽트의 발생에 응답하여 수단(24)을 제공함으로서 제공되는 상기 일련의 마이크로 명령을 변경하는 수단(58,59,62)과, 스토어수단(70)과 스토어수단(7)의 상단 레지스터(71)로부터 수단(24,63,65)까지 리턴 어드레스의 반대순서로 순차적으로 전송하기 위한 일련의 제2형태의 마이크로 명령에 반응하는 전송수단(60,62)으로 구성되는데, 상기 마이크로 명령의 각각은 제공수단(24,63,65)의 마이크로 명령의 어드레스를 정의하는 어드레스난과, 전송로를 정의해 주는 지령난을 포함하고,마이크로 명령의 제1형태는 서브루틴으로의 브랜치를 규정해 주고, 마이크로 명령의 제2형태는 서브루틴 또는 인터럽트 서비스루틴으로부터 리턴을 규정해 주며, 상기 변경을 하는 수단(58,59,62)은 벡터 인터럽트 어드레스를 인터럽트 서비스루틴의 시작 어드레스로서 사용되는 제공수단(24,63,65)에 공급해 주며, 스토어수단(70)은 일군의 레지스터가 상단레지스터(71)이고, 다른 일군의 레지스터는 하단레지스터(74)이고, 그밖의 남은 레지스터(72,73)는 상단과 하단 사이의 중간 레지스터로서 구성되어 1회 리턴어드레스를 유지하도록 직렬결합된 레지스터(71-74)들과, 상단 레지스터(71)와 그밖의 레지스터(72,73,74)와 결합되며, 제공수단과 응답하여 직렬로 리턴 어드레스를 다수의 레지스터(71,72,73,74)들의 하단 레지스터(64)로 전송하기 위한 제1수단과, 하단 레지스터(74) 및 그밖의 레지스터(71,72,73)에 결합되며 제공수단(24,63,65)에 응답하여 리턴 어드레스를 다수의 레지스터(71,72,73,74)의 상단(71)에 직렬로 전송하는 하부수단으로 구성되며, 또한 스토어수단(70)은 앞서의 루틴들의 리턴어드레스와 서브루틴들을 상단레지스터(71)에 순차적으로 스토어하도록 마이크로명령의 한 형태나 금지안되는 인터럽트의 발생에 대해 응답하는 것을 특징으로 한 인터럽트 서비스루틴용 데이타처리 시스템.
- 제12항에 있어서, 마이크로명령의 지령난의 제1지령난은 전송수단(60,62)으로부터의 리턴 어드레스를 수신하도록 스토어수단70)을 인에이블하기 위한 제1값을 가지며, 마이크로명령의 어드레스난의 제1어드레스난은 상기 리턴 어드레스를 전송수단(60,62)에 전달하기 위해 스토어수단(70)을 인에이블하기 위한 제1값을 가진 것을 특징으로 한 인터럽트 서비스루틴용 데이타처리 시스템.
- 제13항에 있어서, 제공수단(24,63,65)의 어드레스를 미리 규정된 값씩 인크리멘트하는 수단(64)을 또한 포함하며, 상단 레지스터(71)가 제1지령난의 제1값에 응답하여 인크리멘트 수단(64)으로부터 인크리멘트된 어드레스를 수신하는 것을 특징으로 한 언터럽트 서비스 루틴용 데이타처리 시스템.
- 제14항에 있어서, 마이크로명령의 지령난중의 제2 지령낭은 인터럽트 금지시키기 위한 제1값의 인터럽트를 이용하기 위한 제2값을 가지며, 제2지령난의 제1값은 제1지령난의 제1값과 연관하여 사용되어 서브루틴중의 하나로 브랜치하는 동안에 리턴 어드레스를 스토어하는 기간에 인터럽트가 발생하는 것을 방지하는 것을 특징으로 한 인터럽트 서비스루틴용 데이타처리 시스템.
- 제14항에 있어서, 만일 금지안되는 인터럽트가 서브루틴 또는 인터럽트 서비스루틴으로부터 리턴을 규정하는 마이크로 명령의 제2형태중에 발생한다면, 상단 레지스터(71)로부터 리턴 어드레스를 제공수단(24,63,65)으로의 전송으로부터 스토어수단(70)을 디스에이블시키는 수단(90-95)을 또한 포함하는 것을 특징으로 한 인터럽트 서비스 루틴용 데이타처리 시스템.
- 제13항에 있어서, 스토어수단(70)은 다수의 쉬프트 레지스터(71-74)로 구성된 것을 특징으로 한 인터럽트 서비스 루틴용 데이타처리 시스템.
- 인터럽트 서비스루틴을 호출하며, 루틴과 서브루틴을 순차적으로 호출하기 위한 데이타처리 시스템에 있어서, 제공수단내에서의 어드레스로 번지 지정되는 각각의 마이크로명령의 시퀸스를 제공수단(24,65)과 제공수단으로부터 어드레스를 수신하는 수신수단(63)과, 스토오수단(70)과 상단 레지스터(71)로부터 수신수단(63)까지 다음 어드레스가 되어지는 리턴 어드레스를 전송하기 위해 제2값을 가지는 제1어드레스난에 응답하는 전송수단(60,62)으로 구성되며, 상기 각 마이크로명령은 제공수단의 마이크로 명령의 다음 어드레스를 정의해 주는 어드레스난과, 전송로를 정의해 주는 지령난을 포함하고 있으며, 어드레스난의 제1어드레스난은 서브루틴으로의 브랜치를 규정하는 제1값을 가지며, 제2어드레스난은 서브루틴이나 인터럽트 서비스루틴으로부터의 리턴을 규정하는 제2값을 가지며, 지령난의 제1지령난은 리턴어드레스의 전송을 규정하는 제1값을 가지며 제2지령난은 인터럽트의 인에이블을 규정하는 제2값을 가지며, 상기 수신수단으로부터의 어드레스는 다음 어드레스가 되고, 상기 스토어수단은 직렬 결합된 상단 및 하단 레지스터 및 다른 레지스들로 된 레지스터터들(71-74)과, 상기 레지스터들과 결합되어 다수의 레지스터(71-74)들 중의 하단 레지스터(74)로 리턴 어드레스를 직렬로 전송하기 위해 제1값을 가진 지령난에 응답하는 제1수단(80-85, 90-95)과, 하단 및 다른 레지스터들에 결합되어 다수의 레지스터(71-74)의 상단레지스터(71)로 리턴 어드레스를 직렬 전송하기 위해 제2값을 가진 제1어드레스난에 응답하는 제2수단(86,88,90-95)과, 제1값을 가진 제1어드레스난과 제1값을 가진 제1지령난에 응당하기 위해 리턴 어드레스난을 수신하는 상단 레지스터(71)로 구성된 것을 특징으로 한 루틴 및 서브루틴을 순차적으로 호출하고, 인터럽트 서비스루틴을 호출하기 위한 데이타처리 시스템.
- 제18항에 있어서, 인크리멘트된 현재 어드레스를 발생하기 위해 현재 어드레스를 미리 규정된 수씩 인크리멘트하기 위해 수신수단(63)에 결합되는 인크리멘트수단(64)을 또한 포함하며, 현재의 어드레스가 현재 마이크로명령을 제공하도록 사용된 제공수단(24,65)내에서의 어드레스가 되고, 제1지령난은 상기 인크리멘트된 현재 어드레스를 인에이블하여 상단 레지스터(71)로 전송되도록 하는 제1값을 가지며, 상기 인크리멘트된 어드레스는 리턴 어드레스가 되는 것을 특징으로 한 데이타 처리 시스템.
- 제18항에 있어서, 스토어수단(70)은 또한 제2값을 가지는 제1어드레스난과 제2값을 가지는 제2지령난에 응답하는 제1수단(86)을 포함하며, 리턴 어드레스를 유지하도록 금지안되는 인터럽트의 발생이 상단(71), 하단(74), 및 그 밖의 레지스터(72,73)내에 포함되는 것을 특징으로 한 데이타 처리 시스템.
- 제20항에 있어서, 제공수단(24,65)은 제1어드레스난, 제1지령난, 및 제2지령난을 가진 현재 마이크로명령을 수신하기 위해 스토어수단(24,65)에 결합된 출력레지스터(65)와, 부분적으로 제1수단(80-85, 90-95)을 인에이블하기 위해 제2값을 가진 제1어드레스난에 응답하며 출력레지스터(65)에 결합된 제1디크우딩수단(86)과, 출력레지스터(65)에 결합되어 부분적으로 제1수단(80-85,90-95)을 인에이블하기 위해 제2값을 가진 제2지령난에 용답하는 제2디코우딩수단(80-83)과, 제1수단(80-85,90-95)에 결합되어 부분적으로 제1수단(80-85,90-95)을 인에이블하기 위해 인터럽트의 발생에 응답하는 인터럽트 수단(54)으로 구성된 것을 특징으로 한 데이타 처리 시스템.
- 제21항에 있어서, 제1값을 가진 제1어드레스난, 제1값을 가진 제1지령난, 제1값을 가진 제2지령난은 마이크로명령내에서 서브루틴으로 브랜치하는 것이며, 제2값을 가진 제1어드레스난은 서브루틴과 인터럽트 서비스루틴의 최종 마이크로명령내에 제광되는 것을 특징으로 한 데이타 처리 시스템.
- 제18항에 있어서, 상기 지령난들주의 하나가, 제1값을 가진 제1어드레스난에 의해 규정된 서브루틴으로의 브랜치가 어느 규정된 상태가 충족될때만 수행되도록 규정하는 것을 특징으로 한 데이타처리 시스템.
- 제18항에 있어서, 제1어드레스난은 제1지령난과 독립된 것을 특징으로 데이타 시스템.
- 제24항에 있어서, 제2지령난은 제1지령난과 독립된 것을 특징으로 한 데이타 처리 시스템.
- 제18항에 있어서, 다수의 레지스터들(71-74)은 다수의 쉬프트 레지스터(70A-70L)들로 구성된 것을 특징으로 하는 데이타 처리 시스템.
- 제1항에 있어서, 상기 브랜치 수행단계 또는 인터럽트 발생단계는 상기 현재 마이크로 명령을 수행하도록 사용되는 동일 마이크로 싸이클내에서 이뤄질 수 있는 것을 특징으로 한 서브루틴 및 인터럽트 서비스루틴용 프로그램카운터 스택킹 방법.※ 참고사항 : 최초출원 내용에 의하여 공개하는 것임.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US446748 | 1982-12-03 | ||
US06/446,748 US4488227A (en) | 1982-12-03 | 1982-12-03 | Program counter stacking method and apparatus for nested subroutines and interrupts |
Publications (2)
Publication Number | Publication Date |
---|---|
KR840007187A true KR840007187A (ko) | 1984-12-05 |
KR900007565B1 KR900007565B1 (ko) | 1990-10-15 |
Family
ID=23773700
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019830005727A KR900007565B1 (ko) | 1982-12-03 | 1983-12-03 | 서브 루틴 및 인터럽트용 프로그램 카운터 스택킹 방법 및 장치 |
Country Status (11)
Country | Link |
---|---|
US (1) | US4488227A (ko) |
EP (1) | EP0111407B1 (ko) |
JP (1) | JPH0666051B2 (ko) |
KR (1) | KR900007565B1 (ko) |
AU (1) | AU573194B2 (ko) |
BR (1) | BR8306655A (ko) |
CA (1) | CA1205564A (ko) |
FI (1) | FI83458C (ko) |
HK (1) | HK64292A (ko) |
SG (1) | SG67692G (ko) |
YU (1) | YU45579B (ko) |
Families Citing this family (79)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4636944A (en) * | 1984-01-17 | 1987-01-13 | Concurrent Computer Corporation | Multi-level priority micro-interrupt controller |
US4792890A (en) * | 1985-12-31 | 1988-12-20 | International Business Machines Corp. | Method for resolving conflicts between interrupt sources sharing the same priority level |
US5161217A (en) * | 1986-10-14 | 1992-11-03 | Bull Hn Information Systems Inc. | Buffered address stack register with parallel input registers and overflow protection |
JPS63108457A (ja) * | 1986-10-24 | 1988-05-13 | Brother Ind Ltd | デ−タ処理装置 |
US4800491A (en) * | 1986-11-17 | 1989-01-24 | General Electric Company | Register-stack apparatus |
US5179688A (en) * | 1987-06-30 | 1993-01-12 | Tandem Computers Incorporated | Queue system with uninterrupted transfer of data through intermediate locations to selected queue location |
US5193205A (en) * | 1988-03-01 | 1993-03-09 | Mitsubishi Denki Kabushiki Kaisha | Pipeline processor, with return address stack storing only pre-return processed address for judging validity and correction of unprocessed address |
US4965716A (en) * | 1988-03-11 | 1990-10-23 | International Business Machines Corporation | Fast access priority queue for managing multiple messages at a communications node or managing multiple programs in a multiprogrammed data processor |
US5287483A (en) * | 1988-07-06 | 1994-02-15 | Kabushiki Kaisha Toshiba | Prefetched operand storing system for an information processor |
US5321823A (en) * | 1988-07-20 | 1994-06-14 | Digital Equipment Corporation | Digital processor with bit mask for counting registers for fast register saves |
US5117498A (en) * | 1988-08-19 | 1992-05-26 | Motorola, Inc. | Processer with flexible return from subroutine |
US5043879A (en) * | 1989-01-12 | 1991-08-27 | International Business Machines Corporation | PLA microcode controller |
JPH02190937A (ja) * | 1989-01-19 | 1990-07-26 | Sanyo Electric Co Ltd | マイクロコンピュータの割り込み回路 |
US5155809A (en) * | 1989-05-17 | 1992-10-13 | International Business Machines Corp. | Uncoupling a central processing unit from its associated hardware for interaction with data handling apparatus alien to the operating system controlling said unit and hardware |
US5440749A (en) * | 1989-08-03 | 1995-08-08 | Nanotronics Corporation | High performance, low cost microprocessor architecture |
DE69114321T2 (de) * | 1990-02-20 | 1996-07-18 | Nec Corp | Zum Durchführen der Unterbrechungsverschachtelungsfunktion geeignetes Unterbrechungssteuerungsgerät. |
JPH0437927A (ja) * | 1990-06-01 | 1992-02-07 | Sony Corp | プロセッサの処理方法 |
US5175853A (en) * | 1990-10-09 | 1992-12-29 | Intel Corporation | Transparent system interrupt |
JP2507833B2 (ja) * | 1990-12-25 | 1996-06-19 | 三菱電機株式会社 | マイクロコンピュ−タ |
JPH0831041B2 (ja) * | 1991-09-06 | 1996-03-27 | インターナショナル・ビジネス・マシーンズ・コーポレイション | プログラム条件処理方法およびコンピュータ・システム |
US5455949A (en) * | 1991-09-06 | 1995-10-03 | International Business Machines Corporation | Method for representing and signaling run-time program conditions |
JP3182438B2 (ja) * | 1991-10-28 | 2001-07-03 | 株式会社日立製作所 | データプロセッサ |
US5448707A (en) * | 1991-10-29 | 1995-09-05 | Intel Corporation | Mechanism to protect data saved on a local register cache during inter-subsystem calls and returns |
US5274817A (en) * | 1991-12-23 | 1993-12-28 | Caterpillar Inc. | Method for executing subroutine calls |
JP3211423B2 (ja) * | 1992-10-13 | 2001-09-25 | ソニー株式会社 | 分岐命令実行方法および分岐命令実行装置 |
US5640548A (en) * | 1992-10-19 | 1997-06-17 | Motorola, Inc. | Method and apparatus for unstacking registers in a data processing system |
US5450349A (en) * | 1992-10-27 | 1995-09-12 | Digital Equipment Corporation | Computer system performance evaluation system and method |
JPH0749790A (ja) * | 1993-06-01 | 1995-02-21 | Matsushita Electric Ind Co Ltd | プロセッサにおける割り込み制御方法及び割り込み制御回路 |
US5701479A (en) * | 1993-06-15 | 1997-12-23 | Xerox Corporation | Pipelined image processing system for a single application environment |
US5396616A (en) * | 1993-06-15 | 1995-03-07 | Xerox Corporation | System for emulating multi-tasking pipelines in a single tasking environment |
US5995996A (en) * | 1993-06-15 | 1999-11-30 | Xerox Corporation | Pipelined image processing system for a single application environment |
US5553259A (en) * | 1993-07-16 | 1996-09-03 | Unisys Corporation | Apparatus and method for synchronizing the simultaneous loading of cache program word addresses in dual slice registers |
US5922070A (en) * | 1994-01-11 | 1999-07-13 | Texas Instruments Incorporated | Pipelined data processing including program counter recycling |
US5537541A (en) * | 1994-08-16 | 1996-07-16 | Digital Equipment Corporation | System independent interface for performance counters |
US5671422A (en) * | 1994-11-14 | 1997-09-23 | Intel Corporation | Method and apparatus for switching between the modes of a processor |
JP3504355B2 (ja) * | 1994-12-06 | 2004-03-08 | 松下電器産業株式会社 | プロセッサ |
US6081880A (en) * | 1995-03-09 | 2000-06-27 | Lsi Logic Corporation | Processor having a scalable, uni/multi-dimensional, and virtually/physically addressed operand register file |
US6052801A (en) * | 1995-05-10 | 2000-04-18 | Intel Corporation | Method and apparatus for providing breakpoints on a selectable address range |
US5966529A (en) * | 1995-05-15 | 1999-10-12 | Zsp Corporation | Processor having auxiliary operand register file and complementary arrangements for non-disruptively performing adjunct execution |
US5659679A (en) * | 1995-05-30 | 1997-08-19 | Intel Corporation | Method and apparatus for providing breakpoints on taken jumps and for providing software profiling in a computer system |
US5740413A (en) * | 1995-06-19 | 1998-04-14 | Intel Corporation | Method and apparatus for providing address breakpoints, branch breakpoints, and single stepping |
US5621886A (en) * | 1995-06-19 | 1997-04-15 | Intel Corporation | Method and apparatus for providing efficient software debugging |
KR100381876B1 (ko) * | 1995-07-03 | 2003-07-18 | 텍사스 인스트루먼츠 인코포레이티드 | 프로그램카운팅시스템및카운터의동작방법 |
US5732272A (en) * | 1995-07-31 | 1998-03-24 | Apple Computer, Inc. | Subroutine execution time tracer |
US5900025A (en) * | 1995-09-12 | 1999-05-04 | Zsp Corporation | Processor having a hierarchical control register file and methods for operating the same |
DE19535546B4 (de) * | 1995-09-25 | 2004-04-08 | Siemens Ag | Verfahren zum Betreiben eines durch ein Realzeit-Betriebssystem gesteuerten Realzeit-Computersystems |
CA2159979C (en) * | 1995-10-05 | 1999-05-25 | Arthur Lai | Methology to link any pci rom based device using a single software or hardware interrupt vector in pc system at runtime |
JP2850808B2 (ja) * | 1995-10-31 | 1999-01-27 | 日本電気株式会社 | データ処理装置およびデータ処理方法 |
US5606703A (en) * | 1995-12-06 | 1997-02-25 | International Business Machines Corporation | Interrupt protocol system and method using priority-arranged queues of interrupt status block control data structures |
US5761491A (en) * | 1996-04-15 | 1998-06-02 | Motorola Inc. | Data processing system and method for storing and restoring a stack pointer |
US6070218A (en) * | 1998-01-16 | 2000-05-30 | Lsi Logic Corporation | Interrupt capture and hold mechanism |
US6065088A (en) | 1998-08-31 | 2000-05-16 | International Business Machines Corporation | System and method for interrupt command queuing and ordering |
US6633969B1 (en) | 2000-08-11 | 2003-10-14 | Lsi Logic Corporation | Instruction translation system and method achieving single-cycle translation of variable-length MIPS16 instructions |
US6934939B2 (en) * | 2001-02-28 | 2005-08-23 | International Business Machines Corporation | Method for unwinding a program call stack |
US7231511B2 (en) * | 2001-12-20 | 2007-06-12 | Intel Corporation | Microinstruction pointer stack including speculative pointers for out-of-order execution |
US7206884B2 (en) * | 2004-02-11 | 2007-04-17 | Arm Limited | Interrupt priority control within a nested interrupt system |
US7607133B2 (en) * | 2004-02-11 | 2009-10-20 | Arm Limited | Interrupt processing control |
GB2478733B (en) | 2010-03-15 | 2013-08-14 | Advanced Risc Mach Ltd | Apparatus and method for handling exception events |
DE102011005209B4 (de) | 2011-03-07 | 2016-06-23 | Infineon Technologies Ag | Programmanweisungsgesteuerte Instruktionsflusskontrolle |
US9477834B2 (en) | 2012-02-08 | 2016-10-25 | Arm Limited | Maintaining secure data isolated from non-secure access when switching between domains |
US10210349B2 (en) | 2012-02-08 | 2019-02-19 | Arm Limited | Data processing apparatus and method using secure domain and less secure domain |
US9116711B2 (en) | 2012-02-08 | 2015-08-25 | Arm Limited | Exception handling in a data processing apparatus having a secure domain and a less secure domain |
US9213828B2 (en) * | 2012-02-08 | 2015-12-15 | Arm Limited | Data processing apparatus and method for protecting secure data and program code from non-secure access when switching between secure and less secure domains |
US9202071B2 (en) | 2012-02-08 | 2015-12-01 | Arm Limited | Exception handling in a data processing apparatus having a secure domain and a less secure domain |
US9361115B2 (en) | 2012-06-15 | 2016-06-07 | International Business Machines Corporation | Saving/restoring selected registers in transactional processing |
US9336046B2 (en) | 2012-06-15 | 2016-05-10 | International Business Machines Corporation | Transaction abort processing |
US8682877B2 (en) | 2012-06-15 | 2014-03-25 | International Business Machines Corporation | Constrained transaction execution |
US9367323B2 (en) | 2012-06-15 | 2016-06-14 | International Business Machines Corporation | Processor assist facility |
US9436477B2 (en) | 2012-06-15 | 2016-09-06 | International Business Machines Corporation | Transaction abort instruction |
US9348642B2 (en) | 2012-06-15 | 2016-05-24 | International Business Machines Corporation | Transaction begin/end instructions |
US9772854B2 (en) | 2012-06-15 | 2017-09-26 | International Business Machines Corporation | Selectively controlling instruction execution in transactional processing |
US9384004B2 (en) | 2012-06-15 | 2016-07-05 | International Business Machines Corporation | Randomized testing within transactional execution |
US9317460B2 (en) * | 2012-06-15 | 2016-04-19 | International Business Machines Corporation | Program event recording within a transactional environment |
US9442737B2 (en) | 2012-06-15 | 2016-09-13 | International Business Machines Corporation | Restricting processing within a processor to facilitate transaction completion |
US8688661B2 (en) | 2012-06-15 | 2014-04-01 | International Business Machines Corporation | Transactional processing |
US10437602B2 (en) | 2012-06-15 | 2019-10-08 | International Business Machines Corporation | Program interruption filtering in transactional execution |
US9448796B2 (en) | 2012-06-15 | 2016-09-20 | International Business Machines Corporation | Restricted instructions in transactional execution |
US9740549B2 (en) | 2012-06-15 | 2017-08-22 | International Business Machines Corporation | Facilitating transaction completion subsequent to repeated aborts of the transaction |
US20130339680A1 (en) | 2012-06-15 | 2013-12-19 | International Business Machines Corporation | Nontransactional store instruction |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2253425A5 (ko) * | 1973-11-30 | 1975-06-27 | Honeywell Bull Soc Ind | |
US3909797A (en) * | 1973-12-13 | 1975-09-30 | Honeywell Inf Systems | Data processing system utilizing control store unit and push down stack for nested subroutines |
JPS50128429A (ko) * | 1974-03-28 | 1975-10-09 | ||
US4287559A (en) * | 1977-02-09 | 1981-09-01 | Texas Instruments Incorporated | Electronic microprocessor system having two cycle branch logic |
JPS54106142A (en) * | 1978-02-08 | 1979-08-20 | Nec Corp | Data processor |
JPS5552152A (en) * | 1978-10-13 | 1980-04-16 | Hitachi Ltd | Control system for program address |
US4340933A (en) * | 1979-02-12 | 1982-07-20 | Honeywell Information Systems Inc. | Data processing system having centralized nonexistent memory address detection |
JPS564943A (en) * | 1979-06-26 | 1981-01-19 | Nec Corp | Noise removing unit |
US4398244A (en) * | 1980-05-07 | 1983-08-09 | Fairchild Camera & Instrument Corporation | Interruptible microprogram sequencing unit and microprogrammed apparatus utilizing same |
US4438492A (en) * | 1980-08-01 | 1984-03-20 | Advanced Micro Devices, Inc. | Interruptable microprogram controller for microcomputer systems |
-
1982
- 1982-12-03 US US06/446,748 patent/US4488227A/en not_active Expired - Lifetime
-
1983
- 1983-11-17 CA CA000441392A patent/CA1205564A/en not_active Expired
- 1983-11-23 AU AU21607/83A patent/AU573194B2/en not_active Ceased
- 1983-12-01 EP EP83307317A patent/EP0111407B1/en not_active Expired - Lifetime
- 1983-12-02 FI FI834414A patent/FI83458C/fi not_active IP Right Cessation
- 1983-12-02 YU YU236183A patent/YU45579B/sh unknown
- 1983-12-02 BR BR8306655A patent/BR8306655A/pt not_active IP Right Cessation
- 1983-12-03 KR KR1019830005727A patent/KR900007565B1/ko not_active IP Right Cessation
- 1983-12-03 JP JP58229034A patent/JPH0666051B2/ja not_active Expired - Lifetime
-
1992
- 1992-07-02 SG SG676/92A patent/SG67692G/en unknown
- 1992-08-27 HK HK642/92A patent/HK64292A/xx unknown
Also Published As
Publication number | Publication date |
---|---|
BR8306655A (pt) | 1984-07-17 |
CA1205564A (en) | 1986-06-03 |
KR900007565B1 (ko) | 1990-10-15 |
FI834414A0 (fi) | 1983-12-02 |
JPH0666051B2 (ja) | 1994-08-24 |
AU2160783A (en) | 1984-06-07 |
FI83458B (fi) | 1991-03-28 |
AU573194B2 (en) | 1988-06-02 |
YU236183A (en) | 1986-10-31 |
EP0111407A3 (en) | 1984-07-18 |
EP0111407B1 (en) | 1992-04-29 |
HK64292A (en) | 1992-09-04 |
YU45579B (sh) | 1992-07-20 |
US4488227A (en) | 1984-12-11 |
FI83458C (fi) | 1991-07-10 |
EP0111407A2 (en) | 1984-06-20 |
SG67692G (en) | 1992-12-04 |
JPS59111542A (ja) | 1984-06-27 |
FI834414A (fi) | 1984-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR840007187A (ko) | 서브루틴 및 인터럽트용 프로그램 카운터 스택킹 방법 및 장치 | |
US4179731A (en) | Microprogrammed control system | |
US3988719A (en) | Microprogrammed data processing systems | |
US4636944A (en) | Multi-level priority micro-interrupt controller | |
EP0330226B1 (en) | Apparatus of and method for executing subprogram in bank switching data processing system | |
JPS59133650A (ja) | マイクロコンピユ−タおよびマイクロコンピユ−タのネツトワ−クならびにこれらを動作させる方法 | |
EP0025087A2 (en) | Pipeline Control apparatus for generating Instructions in a Digital Computer | |
US4821183A (en) | A microsequencer circuit with plural microprogrom instruction counters | |
EP0522513A2 (en) | High speed parallel microcode program controller | |
EP0144779B1 (en) | Parallel processing computer | |
CA1037159A (en) | Processing link control system for data processing equipment | |
US4370729A (en) | Microprogram sequencer | |
US4251862A (en) | Control store organization in a microprogrammed data processing system | |
US5032983A (en) | Entry point mapping and skipping method and apparatus | |
US4674063A (en) | Information processing apparatus having a sequence control function | |
KR920006769B1 (ko) | 사전에 결정된-순서대로 두 개의 명령 시이퀀스를 실행하는 방법 및 장치 | |
EP0105125A2 (en) | Data processing system | |
GB2148562A (en) | Computers | |
JPS63141131A (ja) | パイプライン制御方式 | |
JP2506874B2 (ja) | マイクロプログラム制御装置 | |
KR840003081A (ko) | 마이크로 프로그램 제어방식 | |
JPH0290324A (ja) | マイクロプログラム制御装置 | |
JPS60181837A (ja) | エクスキユ−ト命令処理方式 | |
JPS599759A (ja) | マイクロコンピユ−タによる複数処理手続の多重処理方法 | |
CA1217566A (en) | Real-time data processing system for processing time period commands |
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: 19951005 Year of fee payment: 6 |
|
LAPS | Lapse due to unpaid annual fee |