KR940009095B1 - 데이터 처리시스템 - Google Patents

데이터 처리시스템 Download PDF

Info

Publication number
KR940009095B1
KR940009095B1 KR1019860008772A KR860008772A KR940009095B1 KR 940009095 B1 KR940009095 B1 KR 940009095B1 KR 1019860008772 A KR1019860008772 A KR 1019860008772A KR 860008772 A KR860008772 A KR 860008772A KR 940009095 B1 KR940009095 B1 KR 940009095B1
Authority
KR
South Korea
Prior art keywords
register
group
instruction
register group
designated
Prior art date
Application number
KR1019860008772A
Other languages
English (en)
Other versions
KR870004367A (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 KR870004367A publication Critical patent/KR870004367A/ko
Application granted granted Critical
Publication of KR940009095B1 publication Critical patent/KR940009095B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
    • 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/30098Register arrangements
    • 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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • 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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30138Extension of register space, e.g. register cache
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • 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/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • G06F9/462Saving or restoring of program or task context with multiple register sets
    • 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/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • G06F9/463Program control block organisation

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)

Abstract

내용 없음.

Description

데이터 처리시스템
제1a도~제1g도는 본 발명에 관한 레지스터 셋트 전환 명령의 포맷의 예를 도시한 설명도.
제2도는 제4도~제7도에 있어서의 레지스터 뱅크의 구성예를 도시한 설명도.
제3a도~제3d도는 본 발명에 관한 레지스터 셋트 전환 명령의 작용을 도시한 설명도.
제4도~제6도는 본 발명에 관한 레지스터 셋트 전환 명령을 실행 가능하게 하는 마이크로 프로세서의 구성예를 도시한 블럭도.
제7도, 제8도는 종래의 마이크로 프로세서에 있어서의 셋트 전환 방식을 도시한 설명도.
본 발명은 데이터 처리기술, 특히 프로그램 제어방식의 시스템에 있어서의 명령체계에 적용하여, 유효한 기술에 관한 것으로, 예를들면 2개 이상의 레지스터 셋트를 가진 마이크로 프로세서의 명령체계에 이용해서 유효한 기술에 관한 것이다.
종래 Zylog회사 제z80계의 마이크로 컴퓨터에서는 제7도에 도시한 바와같이, 2개의 레지스터 셋트 RSA, RSB를 가지며, 어떠한 1개의 레지스터 셋트를 사용하여, 타스크처리를 실행할 수 있도록 된 것이다. 이로 인해서, 예를들면 레지스터 셋트 RSA를 사용하여, 1개의 타스크가 끝났을때, 레지스터의 내용을 그대로 두고, 레지스터 셋트를 RSA에서 RSB로 전환하는 것에 의해, 즉시 다른 타스크처리로 옮길 수가 있다. 또, 그 타스크 처리가 끝난후, 재차 원래의 타스크로 되돌아갈때에는 레지스터 셋트 RSA로 전환하는 것에 의해, 레지스터 셋트 RSA내에 남아있던 앞서의 타스크의 내용을 그대로 이어 받아서 실행할 수가 있다. 이로인해, 타스크를 변경할때에, 레지스터의 세이브등을 할 필요가 없고, 실행속도가 빠르다는 이점이 있다.
그러나, 여러개의 레지스터 셋트를 가진 마이크로 프로세서에 있어서, 어떠한 타스크 처리에서 다른 타스크 처리로 이행할때, 예를들면 서브루틴 콜과 같이 인수를 넘겨주어서, 새로운 처리를 실행하고자 하는 경우도 있다. 그러나, 제7도와 같이 레지스터 셋트를 완전히 전환하도록 되어 있으면, 인수의 인도등이 곤란하다고 하는 불합리가 있다.
이에 대해, U. C. Berkeley회사제 RISC(Reduced instruction set Computer)에서는 제8도에 도시한 바와같이, 서로 어떤 일정한 수의 레지스터가 오버랩된 여러개의 레지스터 셋트 RSA, RSB, RSC, …가 마련되어 있다. 이로인해, 서브루틴으로 점프할때의 인수의 인도등이 간단하게 실행된다. 그러나, 여러개의 레지스터 셋트가 서로 항상 오버랩하고 있으면, 타스크를 이행한 경우이며, 인수의 인도등을 실행하지 않아도 좋은 경우에는 중복된 부분의 레지스터를 사용할 수가 없게되므로, 사용할 수 있는 레지스터수가 제한된다고 하는 불합리가 있다.
본 발명의 목적은 여러개의 레지스터 셋트의 전환시에 유연성을 향상시켜, 데이터 처리 시스템의 실행속도를 향상시킬 수 있도록 하는 것이다.
본 발명의 상기 및 그외의 목적과 새로운 특징에 대해서는 본 명세서의 기술 및 첨부도면에서 명확하게 될 것이다.
본 출원에 있어서, 개시되는 발명중 대표적인 것의 개요를 설명하면 다음과 같다.
즉, 여러개의 레지스터 셋트를 가진 데이터 처리 시스템에 있어서, 레지스터 셋트의 전환시에 레지스터를 지정하여, 그 내용을 다른 레지스터 셋트내의 레지스터에 인도하는 명령을 새로이 만들어 이것을 하드웨어로 실현할 수 있도록 한다. 이로인해, 인수등의 인도를 수반해서 레지스터 셋트의 전환을 실행하는 것도, 인수등의 인도를 수반하지 않는 레지스터 셋트의 전환도 실행할 수가 있게 된다. 그 결과, 고속의 타스크 전환이나, 서브루틴 콜이 실현되므로, 레지스터 셋트의 전환시의 유연성을 향상시켜, 시스템의 실행속도를 향상시킨다고 하는 상기 목적을 달성할 수 있다.
[실시예]
제1a도~제1g도에는 본 발명에 관한 레지스터 셋트 전환 명령의 포맷의 1예가 도시되어 있다.
제1a도에 도시되어 있는 포맷은 여러개의 레지스터 셋트(이하, 레지스터 뱅크라 한다)중, 인접하는 레지스터 뱅크로 전환하는 명령에 적합한 포맷이다. 오퍼레이션 코드지정 필드 OP1에는 레지스터 뱅크의 번호를 인크리먼트하는 코드 또는 디크리먼트하는 코드가 들어간다. 오퍼레이션 코드 지정필드 OP1에 이어지는 필드 R은 레지스터 내용의 인도가 있는가, 없는가를 나타내기 위해서 마련된 필드이며, 1비트로 구성된다. 이 필드 R이 “0”으로 되어 있으면, 어떤 레지스터 뱅크(예를들면 BN1)에서 1개전 또는 1개 후의 레지스터 뱅크 BNi-1 또는 BNi+1로 전환할때에, 레지스터 뱅크 BNi내의 모든 레지스터의 내용을 전혀 인도하지 않고 뱅크의 전환이 실행된다.
한편, 필드 R에 “1”이 설정되어 있으면, 이것에 이어지는 레지스터 지정 필드 Rn-list에서 지정되는 레지스터에 대해서는 그 내용을 전환후의 레지스터 뱅크 BNi―1 또는 BNi+1내의 대응하는 레지스터로의 인도가 실행되는 것을 의미한다.
그리고, 특별히 제한되지 않으나, 본 실시예에서는 각 레지스터 뱅크가 16줄의 레지스터로 구성되는 경우를 상정하여, 레지스터 지정 필드 Rn-list가 16비트로 구성되고, 또한 비트 대응으로 내용을 인도하여야할 레지스터를 지정할 수 있도록 되어 있다. 예를들면, 제1a도의 예에서는 사용중의 뱅크내의 1번과 4번의 레지스터 R1과 R4의 내용을 전환후의 레지스터 뱅크내의 1번과 4번의 레지스터로 인도하여야할 것을 나타내고 있다.
이 명령을 사용해서, 레지스터 뱅크 BN1에서 BN2로의 전환(인크리먼트)를 실행하는 경우의 작용이 제3a도에 도시되어 있다. 단, 이 경우, 뱅크 번호를 인크리먼트하는 명령 (IBNR이라 한다)을 사용하고, 필드 R과 레지스터 지정 필드 Rn-list의 설정은 상기와 같게 하면 좋다.
다음에, 제1b도에 도시되어 있는 명령 포맷에 대해서 설명한다. 이 포맷은 사용중의 레지스터 뱅크를 그것과는 떨어진(인접하지 않는) 위치의 레지스터 뱅크로 전환하는 명령(CBNR이라 표시한다)에 적합하다.
이 CBNR 명령은 제1a도의 명령 포맷의 필드 R과 레지스터 지정 필드 Rn-list와의 사이에, 전환후의 레지스터 뱅크의 번호를 지정하기 위한 이미디어트 데이터 지정 필드 Imm이 마련된 구성으로 되어 있다. 이 CBNR 명령에 의해서, 예를들면 레지스터 뱅크 BN0에서 BN2로의 전환이 실행된다. 더욱이, 이때 제3b도에 도시한 바와같이, 뱅크내의 임의의 레지스터, 예를들면 레지스터 R1, R4를 지정해서 그 내용을 인도한다든지, 전혀 인도를 수반하지 않고, 레지스터 뱅크의 전환을 실행할 수 있다. 인도의 유무는 필드 R내의 정보에 의해서 결정되며, 명령의 내용은 오퍼레이션 코드 지정 필드 OP2내의 정보에 의해서 결정된다.
특별히 제한되지 않지만, 본 실시예에서는 오퍼레이션 워드 길이와의 관계에서, 이미디어트 데이터 지정 필드 Imm이 8비트 길이로 되어 있다. 이로인해서, 최대 256개의 레지스터 뱅크까지 대응할 수가 있다.
그리고, 이 CBNR 명령에 의해서 레지스터 뱅크의 전환을 실행하는 경우, 전환전의 레지스터 뱅크 번호를 스택 영역등에 기억하여 두면, 원래의 레지스터 뱅크로 되돌리는 동작이 용이하게 된다. 따라서, 이 경우에는 제1a도에 도시한 포맷과 같은 포맷으로 되는 명령(PBNR이라 표기한다)에 의해서, 원래의 레지스터 뱅크의 번호를 스택영역에서 가져오는 것에 의해, 상기 CBNR 명령을 사용하지 않고 원래의 레지스터 뱅크의 복귀를 실행할 수가 있다.
다음에, 제1c도에 도시되어 있는 명령 포맷에 대해서 설명한다. 이 포맷은 오퍼레이션 코드 지정 필드 OP3과 레지스터 지정 필드 Rn-list로 구성된다. 레지스터 내용의 인도가 있는가, 없는가를 나타내기 위한 전용 필드 R은 마련되고 있지 않다. 레지스터 내용의 인도의 유무에 관한 정보는 오퍼레이션 코드 지정 필드 OP3에 포함되어 있다. 특별히 한정되지 않으나, 오퍼레이션 코드 지정 필드 OP3은 8비트로 구성된다. 이 명령이 실행되는 것에 의해, 상기 제3a도에 도시한 바와같이 레지스터 셋트의 전환이 실행된다.
다음에, 제1d도에 도시한 명령 포맷에 대해서 설명한다. 이 포맷은 오퍼레이션 코드 지정 필드 OP4와 이미디어트 데이터 지정 필드 Imm과 레지스터 지정 필드 Rn-list로 구성된다. 레지스터 내용의 인도가 있는가, 없는가를 나타내기 위한 전용 필드 R은 마련되어 있지 않다. 레지스터 내용의 인도의 유무에 관한 정보는 오퍼레이션 코드 지정 필드 OP4에 포함되어 있다. 이 명령이 실행되는 것에 의해, 상기 제3c도에 도시한 바와같이 레지스터 셋트의 전환이 실행된다.
다음에, 제1e도에 도시한 명령 포맷에 대해서 설명한다. 이 포맷은 오퍼레이션 코드 지정 필드 OP5, 인도 유무 지정 필드 R, 이미디어트 데이터 지정 필드 Imm, 인도하는 원래 레지스터 지정 필드 Rn-list(source)와 인도받는 레지스터 지정 필드 Rn-list(destination)으로 구성된다. 인도받는 레지스터 지정 필드 Rn-list(destination)은 레지스터 뱅크내의 레지스터의 수에 대응해서, 16개의 필드 RL0~RL15로 분할되어 있다. 각 필드 RL0~RL15는 인도 받은 곳의 레지스터 번호를 나타내기 위하여, 4비트의 분 영역이 할당되어 있다.
예를들면, 필드 RL2는 인도받는 레지스터 뱅크내의 제7번째의 레지스터 R7을 지정하고 있다. 또, 필드 RL15는 인도받는 레지스터 뱅크내의 제12번째의 레지스터 RL12를 지정하고 있다. 제1e도에 도시한 명령에 따라서 레지스터 뱅크가 전환되는 경우의 1예를 제3c도에 도시한다. 레지스터 뱅크 BN0내의 레지스터중, 인도되는 레지스터 R2, R15는 인도하는 원래 레지스터 지정 필드 Rn-list(source)내의 정보에 의해서 지정된다. 전환후의 레지스터 뱅크의 번호 BN2는 이미디어트 데이터 지정 필드 Imm내의 정보에 의해서 지정된다. 제1e도에 도시한 명령 포맷을 사용하는 것에 의해, 임의의 레지스터 뱅크 사이에서 임의의 레지스터 사이에서의 인도가 가능하게 된다.
다음에, 제1f도에 도시한 명령 포맷에 대해서 설명한다. 이 포맷은 오퍼레이션 코드 지정 필드 OP6, 이미디어트 데이터 지정 필드 Imm, 인도하는 원래 레지스터 지정 필드 Rn-list(source)와 인도받는 레지스터 지정 필드 Rn-list(destination)으로 구성된다. 인도받는 레지스터 지정 필드 Rn-list(destination)은 제1e도에 도시한 포맷과 다르며, 2개의 필드 RLa, RLb로 분할되어 있다. 각 필드 RLa, RLb는 전환후의 레지스터 뱅크내의 레지스터 번호를 지정하기 위하여, 4비트가 할당되어 있다. 이 명령 포맷은 인도되는 레지스터의 수가 2개 이하로 한정되어 있는 경우에 특히 유효하다. 명령 포맷의 전체 비트 길이를 단축할 수가 있기 때문이다. 예를들면, 제1e도의 인도받는 레지스터 지정 필드 Rn-list(destination)은 64비트로 구성되어 있으나, 제1f도의 인도받는 레지스터 지정 필드 Rn-list′(destination)은 겨우 8비트로 구성할 수가 있다. 그리고, 제1f도의 포맷에 있어서는 인도하는 원래 레지스터 번호와 인도받는 레지스터 번호를 대응시키기 위한 정보를 오퍼레이션 코드 지정 필드 OP6내에 포함시킬 필요가 있다. 즉, 인도하는 원래 레지스터 지정 필드 Rn-list(source)에 의해서 지정된 레지스터 R2의 데이터데이터쪽이 필드 RLa에 의해서 지정되고, 레지스터 R15의 데이터데이터쪽이 레지스터 RLb에 의해서 지정되도록 대응시키고 있다. 제1f도에 도시한 명령에 따라서 레지스터 뱅크가 전환되는 경우의 1예를 상기 제3c도에 도시한다.
다음에 제1g도에 도시한 명령 포맷에 대해서 설명한다. 이 포맷은 오퍼레이션 코드 지정 필드 OP7, 이미디어트 데이터 지정 필드 Imm과 인도하는 원래 레지스터 지정 필드 Rn-list(source)에 의해 구성된다.
제1g도에 도시한 명령에 따라서 레지스터 뱅크가 전환되는 경우의 1예를 제3d도에 도시한다. 이 명령 포맷에 있어서는 인도받는 레지스터 지정 필드가 마련되어 있지 않다. 레지스터 뱅크가 전환되었을때, 인도하여야할 레지스터가 있는 경우에는 새로운 레지스터 뱅크BN2내의 가장 작은 번호의 레지스터 R0부터 차례로 지정된다. 이와같은, 지정순서는 오퍼레이션 코드 지정 필드 OP7내의 정보에 의해서 규정된다.
다음에 상기와 같은 포맷으로 구성된 레지스터 뱅크 전환 명령의 실행을 가능하게 하는 마이크로 프로세서의 하드웨어 구성의 1예를 제4도에 이용하여 설명한다.
본 실시예의 마이크로 프로세서는 마이크로 프로그램 제어방식의 제어부를 갖추고 있다. 즉, 마이크로 프로세서를 구성하는 LSI 칩(1)내에는 마이크로 프로그램이 기억된 마이크로 ROM(리드 온리 메모리)(2)가 마련되어 있다. 마이크로 ROM(2)는 마이크로 어드레스 디코더(5)에 의해서 액세스되어, 마이크로 프로그램을 구성하는 마이크로 명령이 차례로 리드된다.
마이크로 어드레스 디코더(5)에는 명령 레지스터(3)에 페치된 매크로 명령의 오퍼레이션 코드에 따라서 마이크로 어드레스 발생회로(4)에 있어서 발생된 어드레스가 공급된다. 이것을 디코드하는 것에 의해서, 그 매크로 명령을 실행하는 일련의 마이크로 명령군의 최초의 명령이 리드되어 각종 임시 레지스터 REG1~REGn, 데이터 버퍼 DB, 연산논리 유니트 ALU등으로 되는 실행 유니트(6)등에 대한 제어신호가 형성된다. 매크로 명령에 대응하는 일련의 마이크로 명령군중 2번째 이후의 마이크로 명령은 바로 앞에서 리드된 마이크로 명령의 넥스트 어드레스 필드의 코드가 마이크로 어드레스 디코더(5)에 공급되는 것에 의해, 앞에의 마이크로 명령의 넥스트 어드레스와 마이크로 어드레스 발생회로(4)로부터의 어드레스에 따라서 리드된다. 이와같이 하여, 일련의 마이크로 명령이 리드되어서 형성된 제어신호에 의해서 실행유니트(6)이 제어되며, 예를들면 ADD로 표시된 가산 명령과 같은 매크로 명령이 실행된다.
본 실시예에서는, 예를들면 16개의 레지스터 뱅크 BN0~BN15로 이루어지는 범용 레지스터군(12)와 제어 레지스터군(11)을 제어하는 기능을 가진 메모리 액세스 제어회로(7)이 마련되어 있다. 상기 16개의 레지스터 뱅크 BN0~BN15는 특별히 제한되지 않으나, 예를들면 제2도에 도시한 것과 같이 각각 32비트 길이의 레지스터 0~레지스터 15로 이루어진다. 제어 레지스터(11)에는 스테이터스 레지스터 SR이나 스택 포인터 SP, 현재 사용중인 레지스터 뱅크의 번호를 유지하는 뱅크번호 레지스터 BNR등이 마련되어 있다. 본 실시예에서는 상기 레지스터 뱅크 BN0~BN15로 이루어지는 범용 레지스터군(12)와 제어 레지스터군(11)은 RAM(랜덤액세스 메모리)에 의해서 구성되어 있고, 내부 버스(10)을 거쳐서 실행 유니트(6)내의 데이터 버퍼 DB에 접속되어 있다.
또, 상기 명령 레지스터(3)은 FIFO(first-in first-out) 메모리로 되며, 외부의 메모리에 기억된 매크로 명령은 상기 메모리 액세스 제어회로(7)이 어드레스 버퍼(8)을 액세스하는 것에 의해서 바이트단위로 리드되어 데이터 버스(9)를 거쳐서 FIFO 메모리로 이루어진 명령 레지스터(3)에 공급된다. 이와같이 하여, 사전에 여러개의 오퍼레이션 코드나 오퍼랜드가 명령 레지스터(3)에 페치되도록 되어 있다.
상기와 같이 본 실시예의 마이크로 프로세서에서는 16개의 레지스터 뱅크 BN0~BN15중 1개를 사용하여 각 타스크를 처리할 수 있도록 되어 있다.
상기 마이크로 프로세서의 명령 레지스터(3)에서 제1a도에 도시한 것과 같은 레지스터 뱅크 전환 명령 IBNR 또는 DBNR이 들어오면, 대응하는 마이크로 명령이 마이크로 ROM(2)에서 리드된다. 그리고, 그 마이크로 코드에 의해서 메모리 액세스 제어회로(7)이 제어되고, 예를들면 메모리 액세스 제어회로(7)이 지금까지 사용하고 있던 레지스터 뱅크가 BNi일 경우에는 BNi+1 또는 BNi-1의 뱅크를 사용하여, 이후의 처리를 행하도록 전환이 실행된다. 그리고, 이때 필드 R의 비트가 “1”이면 Rn-list에서 지정된 레지스터에 대해서는 그 내용을 다른 뱅크내의 대응하는 레지스터 또는 특별히 지정된 레지스터로 옮기는 처리가 실행된다. 또, 뱅크 번호 레지스터 BNR내의 뱅크 번호의 변경이 실행된다.
한편, 명령 레지스터(3)에 제1b도와 같은 레지스터 뱅크 전환 명령 CBNR이 들어와서 대응하는 마이크로 명령이 리드되면, 이미디어트 데이터 지정 필드 Imm에서 지정된 레지스터 뱅크 번호가 뱅크 번호 레지스터 BNR에 라이트 되어 뱅크 번호의 변경이 실행된다. 이와 동시에 지정된 레지스터의 인도가 실행된다. 그리고, 이와 동시에 이제까지 뱅크 번호 레지스터 BNR에 들어와 있던 사용중의 뱅크 번호가 프로그램 카운터의 내용등과 함께 외부의 메모리의 스택 영역에 기억된다.
그리고, 레지스터 뱅크 전환 명령 PBNR이 로드되면, 제어 레지스터군(11)내의 스택 포인터로 지시되는 스택 영역에서 세이브되어 있던 원래의 레지스터 뱅크 번호가 리드되어서, 뱅크 번호 레지스터 BNR에 로드됨과 동시에, 범용 레지스터군(12)내의 사용중 뱅크의 전환 및 필요한 레지스터 내용의 인도가 실행된다.
따라서, 상기 명령 CBNR을 이용하면, 예를들면 서브루틴 콜일때에 인수등의 인도를 수반하여 메인루틴에서 서브루틴으로 용이하게 점프하여 다른 타스크 처리를 실행할 수 있음과 동시에 PBNR 명령을 이용하는 것에 의해 메인루틴을 원래의 위치로 재빨리 리턴하여, 원래의 처리를 속행할 수가 있다.
제5도는 본 발명에 관한 레지스터 뱅크 전환 명령의 실행을 가능하게 하는 마이크로 프로세서의 다른 구성예를 도시한 것이다. 제4도에 도시한 마이크로 프로세서와 다른점은 제어 레지스터군의 구성수단이다. 제4도에 있어서의 제어 레지스터군(11)은 RAM내에 마련되어 있으나, 제5도에 있어서의 레지스터군 CR은 전용기억 수단으로서의 여러개의 레지스터에 의해서 구성되어 있다. 이들 레지스터는 같은 종류의 구성의 일시 레지스터 REG1~REGn과 마찬가지로 실행 유니트(6)내에 마련할 수가 있다.
제6도는 본 발명에 관한 레지스터 뱅크 전환 명령의 실행을 가능하게 하는 마이크로 프로세서의 다른 구성예를 도시한 것이다. 제5도에 도시한 마이크로 프로세서와 다른점은 레지스터 뱅크 BN0~BN15의 구성 수단이다.
제5도에 있어서의 레지스터 뱅크 BN0~BN15는 RAM내에 마련되어 있으나, 제6도에 있어서의 여러개의 레지스터에 의해서 구성되어있다. 이들 레지스터는 같은 종류 구성의 일시 레지스터 REG1~REGn와 마찬가지로 실행 유니트(6)내에 마련할 수가 있다. 레지스터 뱅크 BN0~BN15를 실행 유니트내에 마련하는 것에 의해, 레지스터 뱅크 BN0~BN15의 내용을 유지하기 위한 상기 데이터 버퍼 DB를 실행 유니트내에 마련할 필요가 없게 된다. 또, 메모리 액세스 제어회로(7) 대신에 레지스터 액세스 제어회로(7′)가 마련된다.
그리고, 본 발명에 의해 제안된 레지스터 뱅크 전환 명령은 제1a도 내지 제1g도의 포맷에 한정되지 않으며, 예를들면 레지스터 지정 필드 Rn-list나 이미디어트 데이터 지정 필드 Imm의 필드의 크기는 범용 레지스터군으로서의 RAM(12)의 용량이나 각 레지스터 뱅크 BNi의 레지스터 줄수에 따라서, 변경될 수 있는 것은 말할 것도 없다.
본 발명에 의하면 여러개의 레지스터 셋트를 가진 마이크로 프로세서에 있어서, 레지스터 셋트를 전환할때에 레지스터를 지정하여 그 내용을 다른 레지스터 셋트내의 레지스터에 인도하는 명령을 새로이 만들 것이므로, 인수등의 인도를 수반해서 레지스터 셋트의 전환을 행하는 것도, 인수등의 인도를 수반하지 않는 레지스터 셋트의 전환도 행할 수 있게되어, 이로 인해서 고속의 타스크 전환이나 서브루틴 콜이 실현된다고 하는 작용에 의해, 레지스터 셋트의 전환을 할때의 유연성이 향상되어 시스템의 실행속도가 향상된다고 하는 효과가 있다.
이상 본 발명자에 의해서 이루어진 발명을 실시예에 따라서 구체적으로 설명하였으나, 본 발명은 상기 실시예에 한정되는 것은 아니며, 그 요지를 이탈하지 않는 범위에서 여러가지로 변경이 가능하다는 것은 말할 것도 없다.
예를들면, 레지스터 뱅크 BN0~BN15는 마이크로 프로세서(1)의 외부에 마련하는 구성이라도 좋다. 또, 이상의 설명에서는 주로 본 발명자에 의해서 이루어진 발명을 그 배경으로된 이용분야인 마이크로 프로세서에 적용한 경우에 대해서 설명하였으나, 본 발명은 이에 한정되는 것은 아니며, 계산기나 미니 컴퓨터등의 프로그램 제어방식의 데이터 처리 시스템 전반에 이용할 수가 있다.

Claims (10)

  1. 각각의 처리 타스크에 관한 데이터를 기억하는 여러개의 레지스터군 및 상기 여러개의 레지스터군중의 하나의 레지스터군을 지정하는 지정수단을 구비하고, 명령에 따라 상기 여러개의 레지스터군중의 상기 지정된 하나의 레지스터의 내용에 수반되는 소정의 데이터 처리를 실행하며, 상기 소정의 데이터 처리를 실행하기 위해 하나의 레지스터군에서 다른 하나의 레지스터군으로 지정된 레지스터군내의 전환을 데이터 처리수단에 지시하는 정보와 내용이 상기 다른 하나의 레지스터군으로 인도되어야 하는 상기 하나의 레지스터군의 레지스터중 적어도 하나의 레지스터를 지정하는 정보를 구비하는 레지스터 전환 명령에 따라 상기 지정수단에 의해 지정된 레지스터군을 전환하는 수단을 가진 데이터 처리수단과, 상기 레지스터 전환 명령에 따라 상기 지정된 하나의 레지스터의 내용을 상기 다른 하나의 레지스터군내의 레지스터에 인도하는 수단을 포함하는 데이터 처리 시스템.
  2. 특허청구의 범위 제1항에 있어서, 상기 레지스터 전환 명령은 또 상기 하나의 레지스터의 내용이 인도되어야 하는 상기 다른 하나의 레지스터군내의 상기 레지스터를 지정하는 정보를 구비하는 데이터 처리 시스템.
  3. 특허청구의 범위 제1항에 있어서, 하나의 레지스터군에서 다른 하나의 레지스터군으로의 지정된 레지스터군의 전환을 지시하는 상기 레지스터 전환 명령내의 상기 정보는 오퍼레이션 코드부 및 레지스터군 지정부를 구비하는 데이터 처리 시스템.
  4. 특허청구의 범위 제1항에 있어서, 하나의 레지스터군에서 다른 하나의 레지스터군으로의 지정된 레지스터군의 전환을 지시하는 상기 레지스터 전환 명령내의 상기 정보는 오퍼레이션 코드부 및 상기 하나의 레지스터군의 어떤 레지스터의 내용이 다른 하나의 레지스터군으로 인도되어야할 것인가의 여부를 지시하는 부를 구비하는 데이터 처리 시스템.
  5. 적어도 하나의 명령을 기억하는 명령 레지스터수단, 각각의 처리 타스크에 관한 데이터를 기억하는 여러개의 레지스터군, 상기 레지스터군중의 하나를 지정하는 지정수단, 상기 여러개의 레지스터군에 결합되고, 상기 명령 레지스터수단에 기억된 명령에 따라 상기 지정 수단에 의해 지정된 상기 레지스터군에 기억된 데이터에 수반하는 타스크의 처리를 실행하는 처리수단, 타스크를 처리하기 위해 상기 지정 수단에 의해 지정된 상기 레지스터군의 하나의 레지스터군에서 다른 하나의 레지스터군으로의 전환을 레지스터 전환 명령의 제1의 부분에 따라 실행하는 수단과 상기 하나의 레지스터군내의 적어도 하나의 레지스터를 지정하는 상기 레지스터 전환 명령의 제2의 부분에 따라 상기 지정된 하나의 레지스터의 내용을 상기 다른 레지스터군으로 인도하는 수단을 포함하는 데이터 처리 시스템.
  6. 특허청구의 범위 제5항에 있어서, 상기 처리 수단은 또 상기 다른 레지스터군내의 레지스터를 지정하는 상기 레지스터 전환 명령의 제3의 부분에 따라 상기 하나의 레지스터군의 레지스터의 내용을 상기 레지스터 전환 명령의 상기 제3의 부분에 의해 지정된 상기 다른 레지스터군의 레지스터에 인도하는 수단을 구비하는 데이터 처리 시스템.
  7. 레지스터 전환 명령에 따라, 각각의 타스크에 관한 정보를 각각 기억하는 여러개의 레지스터군을 가진 데이터처리 시스템에서의 타스크 처리 제어방법에 있어서, (a) 하나의 레지스터군에 기억된 정보에 관련하여 제1의 타스크를 처리하는 스텝, (b) 상기 레지스터 전환 명령의 제1의 부분에 따라 제2의 타스크를 처리하기 위해 상기 하나의 레지스터군에서 지정된 레지스터군으로 레지스터군의 전환을 지시하는 스텝, (c) 상기 레지스터 전환 명령의 제2의 부분에 따라 상기 제2의 타스크를 처리하기 위해 정보가 상기 지정된 레지스터군으로 인도되어야할 상기 하나의 레지스터군내의 적어도 하나의 레지스터를 지정하는 스텝, (d) 상기 지정된 레지스터에서 상기 지정된 레지스터군으로 정보를 인도하는 스텝을 포함하는 타스크 처리 제어 방법.
  8. 특허청구의 범위 제7항에 있어서, 또 (e) 상기 레지스터 전환 명령의 제3의 부분에 따라 상기 하나의 레지스터군으로부터 정보가 인도되어야할 상기 지정된 레지스터군내의 레지스터를 지정하고, 상기 스텝(d)에서 지정된 레지스터 사이에서 상기 정보를 인도하는 스텝을 포함하는 타스크 처리 제어 방법.
  9. 특허청구의 범위 제7항에 있어서, 상기 레지스터 전환 명령의 상기 제2의 부분은 각각의 비트가 대응하는 레지스터의 내용이 인도되는가의 상태에 의해 지시하며, 레지스터군내의 레지스터에 각각 대응하는 다수의 비트를 구비하는 타스크 처리 제어 방법.
  10. 특허청구의 범위 제7항에 있어서, 상기 레지스터 전환 명령의 상기 제1의 부분은 오퍼레이션 코드 및 레지스터군 지정부를 구비하는 타스크 처리 제어 방법.
KR1019860008772A 1985-10-25 1986-10-20 데이터 처리시스템 KR940009095B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP60237358A JPS6298434A (ja) 1985-10-25 1985-10-25 デ−タ処理システム
JP60-237358 1985-10-25

Publications (2)

Publication Number Publication Date
KR870004367A KR870004367A (ko) 1987-05-09
KR940009095B1 true KR940009095B1 (ko) 1994-09-29

Family

ID=17014208

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019860008772A KR940009095B1 (ko) 1985-10-25 1986-10-20 데이터 처리시스템

Country Status (7)

Country Link
US (1) US4833640A (ko)
EP (1) EP0220682B1 (ko)
JP (1) JPS6298434A (ko)
KR (1) KR940009095B1 (ko)
DE (1) DE3688232T2 (ko)
HK (1) HK28296A (ko)
SG (1) SG59875G (ko)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2545789B2 (ja) * 1986-04-14 1996-10-23 株式会社日立製作所 情報処理装置
JPS6355636A (ja) * 1986-08-27 1988-03-10 Hitachi Ltd デ−タ処理システム
JPH0648461B2 (ja) * 1987-07-09 1994-06-22 日本電気株式会社 マイクロプログラムの転送レジスタ指定方式
US5142677A (en) * 1989-05-04 1992-08-25 Texas Instruments Incorporated Context switching devices, systems and methods
JP2633263B2 (ja) * 1987-09-14 1997-07-23 株式会社ハドソン データ転送制御装置
ATE75863T1 (de) * 1987-10-27 1992-05-15 Siemens Nixdorf Inf Syst Schaltungsanordnung fuer verarbeitungseinheiten einer zentraleinheit mit einer reihe von mehrzweckregistern.
JP3034873B2 (ja) * 1988-07-01 2000-04-17 株式会社日立製作所 情報処理装置
US5083263A (en) * 1988-07-28 1992-01-21 Sun Microsystems, Inc. BISC with interconnected register ring and selectively operating portion of the ring as a conventional computer
JP2655191B2 (ja) * 1989-07-05 1997-09-17 三菱電機株式会社 演算処理装置
JP2669158B2 (ja) * 1991-01-22 1997-10-27 三菱電機株式会社 データ処理装置
JPH0527970A (ja) * 1991-07-18 1993-02-05 Seikosha Co Ltd 演算装置
US5438669A (en) * 1991-11-20 1995-08-01 Hitachi, Ltd. Data processor with improved loop handling utilizing improved register allocation
US5640582A (en) * 1992-05-21 1997-06-17 Intel Corporation Register stacking in a computer system
US5497493A (en) * 1993-09-30 1996-03-05 Intel Corporation High byte right-shift apparatus with a register alias table
GB2286265B (en) * 1994-01-26 1998-02-18 Advanced Risc Mach Ltd selectable processing registers
JPH1091432A (ja) * 1996-09-13 1998-04-10 Sanyo Electric Co Ltd プログラム実行方法およびプログラム実行装置
US6012138A (en) * 1997-12-19 2000-01-04 Lsi Logic Corporation Dynamically variable length CPU pipeline for efficiently executing two instruction sets
DE19827914C1 (de) 1998-06-23 1999-10-28 Siemens Ag Anwendungsspezifischer integrierter Schaltkreis mit einem RISC-Prozessor zur Bearbeitung definierter Sequenzen von Assembler Befehlen
EP1050799A1 (en) * 1999-05-03 2000-11-08 STMicroelectronics S.A. Execution of a computer program
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
US6826681B2 (en) * 2001-06-18 2004-11-30 Mips Technologies, Inc. Instruction specified register value saving in allocated caller stack or not yet allocated callee stack
US8793426B2 (en) * 2009-02-11 2014-07-29 Microchip Technology Incorporated Microcontroller with linear memory access in a banked memory

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3373408A (en) * 1965-04-16 1968-03-12 Rca Corp Computer capable of switching between programs without storage and retrieval of the contents of operation registers
US4530047A (en) * 1980-12-15 1985-07-16 Texas Instruments Incorporated Dual registry digital processor system with external memory interface
US4532587A (en) * 1981-08-26 1985-07-30 Texas Instruments Incorporated Single chip processor connected to an external memory chip
JPS58137047A (ja) * 1982-02-09 1983-08-15 Toshiba Corp コンピユ−タの省略命令制御装置
JPS58142464A (ja) * 1982-02-19 1983-08-24 Hitachi Ltd マイクロプロセツサ
US4589065A (en) * 1983-06-30 1986-05-13 International Business Machines Corporation Mechanism for implementing one machine cycle executable trap instructions in a primitive instruction set computing system
JPS6140650A (ja) * 1984-08-02 1986-02-26 Nec Corp マイクロコンピユ−タ

Also Published As

Publication number Publication date
JPS6298434A (ja) 1987-05-07
DE3688232T2 (de) 1993-09-09
SG59875G (en) 1995-09-01
EP0220682B1 (en) 1993-04-07
DE3688232D1 (de) 1993-05-13
EP0220682A3 (en) 1988-04-20
HK28296A (en) 1996-02-23
EP0220682A2 (en) 1987-05-06
US4833640A (en) 1989-05-23
KR870004367A (ko) 1987-05-09

Similar Documents

Publication Publication Date Title
KR940009095B1 (ko) 데이터 처리시스템
US4206503A (en) Multiple length address formation in a microprogrammed data processing system
US4295193A (en) Machine for multiple instruction execution
KR100208889B1 (ko) 병렬처리장치 및 병렬처리방법
US4740893A (en) Method for reducing the time for switching between programs
US3401376A (en) Central processor
EP0368332A2 (en) Pipeline data processor
GB1448866A (en) Microprogrammed data processing systems
EP0010184B1 (en) Data processing apparatus
EP0772819B1 (en) Apparatus and method for efficiently determining addresses for misaligned data stored in memory
US4974143A (en) Information processing apparatus wherein address path is used for continuous data transfer
US5019969A (en) Computer system for directly transferring vactor elements from register to register using a single instruction
US4631672A (en) Arithmetic control apparatus for a pipeline processing system
US5179691A (en) N-byte stack-oriented CPU using a byte-selecting control for enhancing a dual-operation with an M-byte instruction word user program where M<N<2M
US5867696A (en) Saving a program counter value as the return address in an arbitrary general purpose register
JPS6212529B2 (ko)
EP0240108A2 (en) A data processing system
JP2514963B2 (ja) デ―タ処理装置
US6233675B1 (en) Facility to allow fast execution of and, or, and test instructions
US5649229A (en) Pipeline data processor with arithmetic/logic unit capable of performing different kinds of calculations in a pipeline stage
JPS6032220B2 (ja) 情報処理装置
JPH05108345A (ja) 分岐命令処理装置
JPH0377137A (ja) 情報処理装置
EP0992891A1 (en) A processor
KR100329780B1 (ko) 인터럽트 응답 시간을 줄인 인터럽트 처리 장치

Legal Events

Date Code Title Description
A201 Request for examination
G160 Decision to publish patent application
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee