KR900005284B1 - 마이크로 컴퓨터 - Google Patents

마이크로 컴퓨터 Download PDF

Info

Publication number
KR900005284B1
KR900005284B1 KR1019850005371A KR850005371A KR900005284B1 KR 900005284 B1 KR900005284 B1 KR 900005284B1 KR 1019850005371 A KR1019850005371 A KR 1019850005371A KR 850005371 A KR850005371 A KR 850005371A KR 900005284 B1 KR900005284 B1 KR 900005284B1
Authority
KR
South Korea
Prior art keywords
register
data
address
processing
arithmetic logic
Prior art date
Application number
KR1019850005371A
Other languages
English (en)
Other versions
KR860001379A (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 KR860001379A publication Critical patent/KR860001379A/ko
Application granted granted Critical
Publication of KR900005284B1 publication Critical patent/KR900005284B1/ko

Links

Images

Classifications

    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7828Architectures of general purpose stored program computers comprising a single central processing unit without memory
    • G06F15/7832Architectures of general purpose stored program computers comprising a single central processing unit without memory on one IC chip (single chip microprocessors)
    • 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
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/262Arrangements for next microinstruction selection
    • G06F9/268Microinstruction selection not based on processing results, e.g. interrupt, patch, first cycle store, diagnostic programs

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)
  • Microelectronics & Electronic Packaging (AREA)
  • Multimedia (AREA)
  • Microcomputers (AREA)
  • Computer And Data Communications (AREA)

Abstract

내용 없음.

Description

마이크로 컴퓨터
제1도는 본원 발명의 실시예에 의한 마이크로컴퓨터의 개략도.
제2도는 제1도의 실시예에 사용된 마이크로프로그램기억 및 제어장치의 구성도.
제3도는 제1도의 실시예의 연산을 설명하는 것으로, 명령어의 구성도.
제4도는 제3도의 명령어를 처리하는 순차도.
제5도는 명령어처리의 순서를 나타내는 플로우차트.
제6a도 및 제6b도는 각각 러프레쉬데이터처리 및 DMA 데이터처리를 나타내는 플로우차트.
제7도는 제1도의 실시예에 사용된 디코더의 실시예를 나타내는 개략도.
제8도는 디코더의 다른 실시예를 나타내는 개략도.
제9도 및 제10도는 제1도의 실시예에 사용되는 산술논리장치의 연산을 설명하는 것으로,
제9도는 산술논리장치 및 레지스터의 상호 접속을 나타내는 도.
제10도는 산술논리장치 및 결합 구성품의 연산을 나타내는 순차 개략도.
본원 발명의 하아드웨어의 구성품의 수를 감소시킬 수 있는 마이크로컴퓨터에 관한 것으로, 본 시스템에는 각종 산술연산을 행하는 중앙처리장치, 논리연산 및 기타 데이터처리업무 및 각종 보조기능을 행하는 보조장치가 설치되어 있다. 특히, 본원 발명은 중앙처리장치 및 싱글반도체칩상에 집적되어 보조기능을 행하는 구성분을 가진 마이크로컴퓨터에 가장 효과적으로 적용할 수 있다.
원하는 컴퓨터시스템을 실현하기 위해, 일반적으로 주기억장치에 기억된 사용자프로그램에 의해 데이터처리를 실행한 프로세서는 의도적으로 선택되는 보조장치의 일부와 결합하지 않으면 안된다. 여기서 어떤 의미에 있어서 보조장치로서 여러가지의 주변장치가 물론 포함되어 있다. 예컨대, 주기억 장치내에서 대용량의 데이터를 고속 전공하도록 제어하는 다이렉트메모리액세스(DMA)콘트롤러, 다이나믹랜덤액세스메모리, 타이머, 그외 각종 인터페이스의 리프레쉬를 제어하기 위한 리프레쉬콘트롤러 등이다. 또,후술하는 설명에서 알 수 있는 바와 같이, 중앙처리장치의 기능의 일부라 할지라도 어떤 경우에는 보조기능을 행할 수 있다.
특정 엘레멘트에 대한 회로가 별개의 반도체칩상에 형성되는 이른바 별개 독립형의 엘레멘트에 의해 구성되는 컴퓨터의 경우에 상기 엘레멘트를 접속하는 신호라인의 복잡한 배선이 요구되며, 상호 관련된 엘레멘트간의 제어도 복잡하게 된다.
따라서, 잘 알려진 바와 같이, 싱글칩마이크로컴퓨터는 특수기능을 달성하기 위해 싱글반도체칩상에 필요에 따라 중앙처리장치와 보조장치가 설치된 것이 제안되었다. 예컨대, 중앙처리장치와 싱글반도체칩상에 보조장치의 하나로서의 DMA 콘트롤러를 가진 마이크로컴퓨터는 싱글칩마이크로컴퓨터의 종래 형으로 고려된다.
상기와 같은 싱글칩마이크로컴퓨터에 통상적으로 적용된 배치에 따라 서로 유사한 구조를 가진 두 장치군은 각각 산술논리장치, 레지스터, 버퍼레지스터 및 이들을 접속시키는 내부 버스라인으로 이루어져 있다.
한군은 중앙처리장치로, 다른군은 DMA 콘트롤러로서 작용한다. 산술논리장치는 일반적으로 산술연산 및 논리연산의 각종 기능을 가지고 있다. 중앙처리장치의 산술논리장치는 주기억장치에 기억된 명령어와 데이터에 따라서 소정처리를 실행하기 위해 두가지 기능을 모두 사용하며, 또 DMA 콘트롤러의 산술연산장치는 주기억장치에서 적용된 어드레스의 연산이나 전송될 워드수의 연산을 행하기 위해 산술연산의 기능을 사용한다. DMA 콘트롤러의 산술논리장치의 논리연산기능을 사용하는 몇가지 경우가 있다.
처리장치와 DMA 콘트롤러에 설치된 레지스터는 각 산술논리장치의 연산에 대해서만 사용되며, 즉 처리장치의 산술논리장치는 처리장치에 속한 레지스터에서 그 연산에 필요한 데이터를 판독하며, 이에 의한 연산의 결과는 상기 레지스터에 기억된다. 산술논리장치과 DMA 콘트롤러의 레지스터간의 관계도 마찬가지이다. 이하, 처리장치의 레지스터는 일반 목적용 레지스터라 하며, DMA 콘트롤러의 레지스터는 주변레지스터라 한다. 그러나, 구조 기능은 상기와 같이 두가지의 레지스터에 있어서 동일하다.
또, 처리장치와 DMA 콘트롤러에 모두 포함되어 있는 버퍼레지스터는 그 기능 및 역할에 있어서 동일하다. 즉, 이 버퍼레지스터는 외부버스라인에 접속되며, 여기에 주기억장치가 예컨대 내부버스라인과 마찬가지로 접속된다. 내부버스라인을 통해 전송되는 데이터는 일시적으로 버퍼레지스터에 기억되어, 여기에서 외부버스라인으로 출력되고, 또 외부버스라인을 통해 전송된 데이터는 버퍼레지스터에 일시적으로 기억되며, 내부버스라인을 통해 처리장치의 어떤 다른 구성품으로 된다.
상기와 같이, 싱글칩마이크로컴퓨터가 처리장치 및 싱글반도체칩상의 DMA 콘트롤러에 각각 구성될 경우, 마이크로컴퓨터는 결과적으로 동일기능을 갖는 논리회로를 중복하여 구성하므로 하드웨어의 구성품의 수가 증대될 뿐만 아니라 논리규모가 증대해서 1칩당 불량발생률이 증대하게 된다.
그러므로, 본원 발명의 목적은 마이크컴퓨터를 형성하는 하드웨어의 구성품의 수를 감소시킬 수 있고, 싱글반도체칩의 필요에 따라서 중앙처리장치와 보조기능용 장치를 갖춘 마이크로컴퓨터를 제공하는데 있다.
본원 발명의 특징은, 종래 마이크로컴퓨터에는 대응 보조기능장치의 반도체칩상에 있는 레지스터가 중앙처리장치의 반도체칩에 설치되고, 상기 중앙처리장치의 내부버스라인에 접속되어 있다는 것이다. 중앙처리 장치는 주기억장치(명령어처리)에서 판독되는 명령어의 처리 및 마이크로컴퓨터(보조기능처리)에 필요한 보조기능의 처리를 모두 실행하기 위해 마이크로명령어를 기억하는 마이크로프로그램기억 및 제어수단에 의해 제어된다.
본원 발명에 있어서, 중앙처리장치의 주구성품인 산술논리장치는 예컨대 시분할에 의해 처리연산을 행하므로, 이는 명령어처리 및 보조기능처리에 의해 분할이 가능한 것이다. 산술논리장치와 결합된 중앙처리장치의 다른 구성품은 또한 마이크로프로그램기억 및 제어수단에 의해 마이크로프로그램 제어에 의해 명령어 처리 및 보조기능처리에 모두 공통으로 사용된다. 즉, 마이크로컴퓨터의 다수의 하드웨어 구성품은 각종 처리에 의해 분할되므로 하드웨어구성품의 수는 현저히 감소될 수 있다.
또, 본원 발명은 하드웨어구성품의 감소외에 다음과 같은 효과를 가지고 있다. 즉, 만약 상기 레지스터가 주기억장치의 어드레스스페이스의 일부로서 배치되고, 중앙처리장치의 스택으로서 작용한다면, 이는 고속으로 처리장치의 레지스터에 기억된 데이터를 상기 스택에 전송할 구 있게 된다. 종래, 상기 스택은 주기억장치의 실제위치의 일부를 점유하였다. 그러므로, 데이터를 상기 스택으로 전송하는데 걸리는 시간이 연장된다. 본원 발명의 상기 효과는 처리장치내의 실행하에서의 데이터가 외부장치로부터 중단요구를 수신하며 명령어처리에서 중단처리로 연산을 변경하기 위해 상기 스택에 일시 기억시킬 필요가 있을 경우에 매우 유용한 것이다. 이는 서브루틴 처리에도 마찬가지로 적용가능하다. 즉, 서브루틴이 메인루틴의 실행중 호출될 때, 서브루틴을 실행하기 위해 상기 스택에 데이터를 일시적으로 기억시킬 필요가 생긴다. 그리고, 이 데이터의 기억은 매우 신속히 행하여질 수 있다.
다음에, 본원 발명의 실시예에 대하여 첨부 도면에 따라 상세히 설명한다.
제1도에 있어서, 3개의 버스, 즉 X버스(10), Y(12)버스 및 Z버스(14)로 구성된 내부버스라인은 반도체칩에 설치되어 있다. 상기 동일칩에는 산술논리장치(16)(ALU라 함)가 설치되어 있고, 주기억장치에서 또는 입출력장치에 의해 공급되는 명령어 및 데이터에 의해 소정연산을 실행하며, 제1레지스터군(18)의 일반 목적용 레지스터는 처리될 일반목적용 레지스터기억데이터로서 그리고 ALU(16)의 연산결과로서의 데이터로서 작용하며, 주변기능용 제2레지스터군(20)의 주변레지스터가 설치되어 있다. 여기서, 각종 장치는 상기한 바와 같이 주변기능을 행하는 장치, 즉 DMA 콘트롤러, 메모리리프레쉬콘트롤러, 타이머로서의 역할 을 한다. 그리고, 이밖에 데이터송신기, 직렬/병렬데이터변환기 등이다. 그러나, 상기 주변장치의 거의 전부에는 각종 레지스터가 설치되어 있다. 예컨대, DMA 큰트롤러는 전송될 원어드레스 및 리프레쉬착신(着信)어드레스를 유지하는 레지스터를 가지고 있다. 리프레쉬콘트롤러는 리프레쉬될 데이터어드레스를 기억하는 레지스터를 가지고 있다. 이들 주변레지스터(20)군은 주변장치에 포함되어, 할당된 주변기능을 행하기 위해 사용되는 레지스터이다. 또, 한쌍의 버퍼레지스터는 반도체칩상에 설치되어 있으며, 이중 한개의 버퍼 레지스터는 데이터버퍼레지스터(22)로 작용하고, 다른 버퍼레지스터는 어드레스버퍼레지스터(24)로 작용한다.
ALU(16)는 내부 X,Y버스(10),(12)에서 데이터를 얻으며, 이 연산결과를 내부 Z버스(14)로 출력한다.
일반목적용 레지스터(18) 및 주변레지스터(20)는 기억된 데이터를 X, Y버스(10),(12)로 출력하여, 이들을 기억하기 위해 Z버스(14)를 통해 ALU(16)의 연산결과로서 데이터를 취한다. 데이터버퍼레지스터(22)는 내부 및 외부버스(10),(12),(26)간에서 전송되는 데이터를 일시적으로 기억하기 위해 내부 X,Y버스(10),(12)와 외부데이터버스(26)에 접속되어 있다. 외부, 테이터버스(26)는 외부어드레스버스(28)와 함께 외부버스라인을 형성한다. 외부버스라인은 동일칩 내부에 설치되어 있지 않고, 칩 외부에 형성되어 있으며, 각종 외부수단이 서로 접속되어 있다. 주기억장치는 그중의 하나이다. 어드레스버퍼레지스터(24)에는 3개의 내부버스(10),(12),(14)를 통해 어드레스정보로서의 데이터가 공급되고, 여기에 일시적으로 기억된 데이터를 외부 어드레스버스(28)로 출력 한다.
여기서, 내부버스라인이 3개의 버스(10),(12),(14)로 구성되는 이유는 다음과 같다. 예컨대, 주변레지스터(20)는 비록 X,Y버스가 일반목적용 레지스터(18) 및 데이터버퍼레지스터(22)간의 데이터전송에 의해 점유되어 있다.하더라도, Z버스(14)를 통해 ALU(16)의 연산의 결과로서 데이터를 얻을 수 있다.즉, 두 데이터전송은 동시에 병렬로 행해질 수 있다. 만약 Z버스(14)가 아닐 경우는 ALU(16)와 주변레지스터(20)간의 데이터전송은 X,Y버스(10),(12)가 자유로 될 때까지 대기하여야 한다. 이 경우, 데이터전송은 직렬로 된다. 그러므로, 데이터전송은 Z버스(14)를 제공함으로써 더 신속히 행할 수 있다. 그러나, 3개의 내부버스가 설치되어 있는 사실은 본원 발명의 본질과 관계가 없다. 그러므로, 본원 발명은 상기 사실에 의해 결코 제한되지 않는다.
반도체칩상에는 상기 구성을 제어하는 장치가 설치되어 있다. 이들 장치는 마이크로프로그램기억 및 제어장치(30)와 디코더(32),(34),(36)군으로 구성되어 있다. 마이크로프로그램기억 및 제어장치(30) 및 디코더(32),(34),(36)에 대하여는 관계 도면에 따라 후기한다. 이들 장치의 기능을 간단히 기술하면 다음과 같다.
마이크로프로그램기억 및 제어장치(30)는 외부데이터버스(26)를 통해 주기억장치로부터 명령어를 수신한다. 그리고, 명령어를 수신할 때마다, 수신된 명령어의 실행을 완료시키는데 필요한 마이크로명령어는 마이크로프로그램기억 및 제어장치(30)에 기억된 것에서 판독된다. 디코더(32),(34),(36)는 상기 구성품, 즉 ALU(16), 일반목적용 레지스터(18), 주변 레지스터(20), 버퍼레지스터(22),(24)를 제어하는 제어신호(40)를 발생시키기 위해 판독마이크로명령어(38)를 해독한다.
또, 외부신호는 신호(42)을 통해 마이크로프로그램기억 및 제어장치(30)에 가해진다. 신호(42)는 외부수단에서 주어지는 중단신호, 예컨대 DMA 제어기능, 메모리리프레쉬기능 등과 같이 나이크로컴퓨터로 통합되는 주변기능의 개시를 요구하기 위한 신호로 될 수 있다.
제2도에는 마이크로프로그램기억 및 제어장치(30)의 상세가 도시되어 있다. 제2도에서 첫째로 주기억장치에서 외부데이터버스(26)를 통해 마이크로프로그램기억 및 제어장치(30)로 판독되는 명령어는 명령어레지스터(302)에 기억된다. 마이크로프로그램 어드레스선택회로(304)는 이에 가해진 3개의 입력신호(304a),(304b) 및 (304c)중 1개를 선택한다. 보통 상태에서 입력신호(304a), 즉 명령어레지스터(302)에 기억된 명령어가 선택된다. 외부신호(42)를 수신함과 동시에, 마이크로프로그램 어드레스선택회로(304)는 뒤에 상세히 설명할 마이크로프로그램 어드레스발생기(306)에서 발생된 입력신호(304c)를 선택한다. 또, 입력신호(304b)가 선택된 경우에 대해서는 마이크로프로그램의 연산을 설명할 때 함께 기술한다.
상기 마이크로프로그램 어드레스선택회로(304)에 의해 선택된 명령어는 마이크로프로그램 어드레스레지스터(308)에 기억된다. 이 레지스터(308)에 기억된 명령어는 명령어를 실행하는데 필요한 마이크로프로그램의 어드레스정보를 유지한다. 마이크로프로그램의 어드레스정보는 마이크로프로그램 어드레스디코더(310)로 유도되고, 여기에서 어드레스정보는 마이크로프로그램기억부(312)의 어드레스로 해독된다. 마이크로프로그램기억부(312)내의 해독된 어드레스의 위치에 있어서, 상기 명령어를 실행하는데 필요한 소정의 마이크로프로그램은 일련의 마이크로명령어의 형태로 기억된다. 상기 마이크로명령어와는 대조적으로, 주기억장치에서 판독되는 명령어는 서로 명확한 식별을 위해 매크로명령어라고 부르기로 한다.
마이크로프로그램기억부(312)에서 판독되는 마이크로명령어는 마이크로명령레지스터(314)에 의해 일시 격납되며, 상기와 같이 디코더(32),(34) 및 (36)로 유도된다. 통상적으로 각개 마이크로명령어는 부분적으로 다음에 판독될 마이크로명령어의 어드레스정보를 유지한다. 마이크로명령레지스터(314)에 의해 격납된 마이크로명령어의 어드레스정보는 입력신호(304b)로서 마이크로프로그램 어드레스선택회로(304)로 귀환된다.
입력신호(304b)가 마이크로프로그램 어드레스선택회로(304)에 공급될 때, 이 선택회로(304)는 입력신호(304b), 즉 판독될 자기 마이크로명령어의 어드레스정보를 선택한다.
이와 같이 마이크로프로그램 어드레스선택회로(304)로 판독된 어드레스정보는 마이크로프로그램 어드레스레지스터(308)를 통해 마이크로프로그램 어드레스디코더(310)로 전송되며, 여기서 마이크로프로그램기억부(312)내의 어드레스로 해독된다. 다음 마이크로명령어는 해독된 어드레스에 의해 판독된다.
이런 방법으로, 매크로명령어를 실행하는데 필요한 일련의 마이크로명령어는 연속적으로 판독되며, 판독된 마이크로명령어는 마이크로명령레지스터(314)를 통해 순서대로 디코더(32),(34) 및(36)로 전송된다. 디코더(32),(34) 및(36)는 ALU(16) 및 기타 필요한 구성품을 제어하는 제어신호(40)를 발생시키기 위해 마이크로명령어를 해독한다. 한 세트의 마이크로명령어에 의한 제어가 완료될 때, 매크로명령어의 실행이 완결된다. 즉. 1개의 매크로명령어에 대한 명령어 처리가 완결된다.
만약, 외부신호(42) 예를 들어 DMA 제어기능에 대한 처리데이터의 요구, 메모리리프레쉬기능 등이 상기와 같이 명령어 처리중, 마이크로프로그램기억 및 제어장치(30)에 가해지면, 신호(42)는 마이크로프로그램 어드레스발생기(306)에 의해 수신되며, 여기서 상기 요구를 처리하는데 필요한 마이크로프로그램의 어드레스정보가 발생된다. 마이크로프로그램 어드레스선택회로(304)는 외부신호(42)의 수신을 기억하며, 소정실행의 완료 후에 입력신호(304c)를 선택한다(이것은 연산의 설명과 관련해서 뒤에 기술한다). 외부요구를 처리하기 위한 마이크로프로그램의 어드레스정보는 마이크로프로그램 어드레스레지스터(308)를 통해 마이크로프로그램 어드레스디코더(310)로 유도된다. 이 경우에, 마이크로프로그램 어드레스세이빙레지스터(318)는 이때에 마이크로프로그램 어드레스레지스터(308)에 존재하고 있는 내용을 일시적으로 기억한다.
마이크로프로그램 어드레스디코더(310)에 있어서 마이크로프로그램 어드레스발생기(306)에 의해 가해지는 어드레스정보는 상기 요구를 처리하는데 필요한 일련의 마이크로명령어의 내용이 기억되어 있는 위치에서 마이크로프로그램기억부(312)내의 어드레스로 해독된다. 이에 대한 연산은 상기한 바와 같이, 매크로명령어의 실행에 대한 것과 동일하다. 상기 요구의 처리를 완료한 후, 마이크로프로그램 어드레스세이빙레지스터(318)에 일시적으로 기억된 어드레스정보는 마이크로프로그램 어드레스레지스터(308)로 복귀하며, 따라서 매크로명령어에 대응한 마이크로명령어의 실행은 다시 개시된다.
제3도-제6도에 있어서 명령어 및 외부 요구를 처리하는 과정에 대해 설명하면 아래와 같다.
3가지 종류의 명령어에 대해 예로서 제3도에 도시되어 있다. 그러나 제3도에서 각 명령어는 명령어의 구조의 형태로서 도시하지 않고, 명령어의 실행에 필요한 클록펄스사이클로 도시하고 있다. 즉, 제3도(a)에 도시된 명령어 1은 처리장치내에서 추출된 명령의 실행에 대해 주기억장치 및 두개의 사이클(I1,)로부터 ALU 및 다른 필요한 구성품으로 구성된 처리장치로 명령어를 가져오기 위해 3개의 사이클(I1)을 필요로 한다. 그러므로, 총 5개의 사이클이 명령어 1의 실행을 완료하기 위해 필요하다. 연산의 대상이 처리장치에만 있을 경우에, 예컨대 일반목적용 레지스터(18)내에서 두 데이터가 추가되고, 연산결과가 일반목적용 레지스터(18)에 다시 기억될 때 이런 종류의 명령어가 사용된다. 제3도(b)에 도시된 것과 같은 명령어 2에있어서, 명령어추출을 위한 3개의 사이클(F2), 주기억장치에의 액세스를 위한 3개의 사이클(M2) 및 처리장치내에서 명령어를 실행하기 위해 1개의 사이클(I2)이 필요하다. 명령어 2는 예컨대 주기억장치에서 판독된 데이터 및 일반목적용 레지스터(18)에 기억된 데이터가 추가되고 그 결과가 일반목적용 레지스터(18)에 기억되거나 주기억장치에서 판독된 데이터가 일반목적용 레지스터(18)에 전송되는 경우에 사용된다. 마찬가지로 제3도(C)에 도시된 명령어 3은 명령어추출을 위해 3개의 사이클(F3), 처리장치내에서 명령어의 실행을 위해 1개의 사이클(I3) 및 메모리액세스를 위해 3개의 사이클(M3)이 필요하다. 명령어 3은 예컨대 일반목적용 레지스터(18)의 어떤 데이터가 주기억장치로 전송될 경우에 사용된다.
이와같이, 실행의 완료에 관련해 각 사이클에 필요한 시간, 즉 명령어추출사이클(F), 내부실행사이클(I) 또는 메모리액세스사이클(M)은 각 명령어에 있어서 동일하지 않으며, 명령어의 처리내용에 따라 다르다.
상기 명령어가 처리될 때, 통상적으로 파이프라인처리가 적용된다. 제4도는 제3도(A)-(C)에 도시된 명령어가 파이프라인처리에 의해 실행될 때, 명령의 실행과 버스라인의 점유사이의 관계를 나타낸다. 버스사이클(B11), (B21)에서 도시된 바와 같이, 명령어 1의 실행이 실행사이클(I1)로 들어갈 때, 명령어 1의 추출사이클(F1)중에 점유된 버스라인은 해제된다. 버스라인이 추출사이클(F1)에 의하여 점유로부터 해제될 때 명령어 2의 추출사이클(F2)이 개시되며, 버스라인은 버스사이클(B21)로 된다. 상기 방법에 의한 명령어 2 추출을 사전추출이라 한다. 또, 버스사이클(B22)에 있어서, 버스라인은 메모리액세스사이클(M2)과의 통신 중이기 때문에 어떤 다른 명령어의 실행에 할당할 수 없다. 그러므로, 비록 명령어 3의 추출이 버스사이클(B22)에서 개시된다.할지라도 추출사이클(F3)의 개시는 버스사이클(B22)의 완료시까지 대기하여야 한다.
다음에, 제3도(a)-(c)에 도시된 명령어 1,2 및 3이 연속적으로 실행될 경우, 명령어처리의 실행순서를 기술한다. 제5도에 있어서 명령어처리가 개시될 때, 버스사이클(B11)에 있어서의 명령어 1의 실행이 개시되며, 즉 제4도와 같이 명령어 1의 추출사이클이 개시된다. 이와 동시에 제5도의 우측에 도시된 바와같은 루틴이 호출되며, 메모리리프레쉬기능 및 DMA 제어기능에 대한 요구의 존재는 이 루틴의 실행에 의해 판정된다. 만약, 아무런 요구가 없다면, 명령어 1의 추출은 버스사이클(811)을 통해 행하여지며, 명령어추출의 완료후, 추출된 명령어 1의 실행은 버스사이클(B21)에서 개시된다. 또, 명령어 1의 추출사이클의 완료와 동시에 버스라인을 명령어 2의 사전추출을 위해 사용되도록 전송된다. 만약, 요구가 버스사이클(B11)에서 발생하면, 명령어 1의 추출은 버스사이클(B11)중, 완료될 때까지 계속된다. 즉, 명령어 1를 추출하기 위해 매크로명령어를 행하는 일련의 마이크로명령어는 마이크로명령어의 최종의 것이 실행될 때까지 실행이 계속된다. 그동안, 버스라인을 사용하는 권리는 명령어 1로 유지된다. 마이크로명령어의 최종의 것은 마이크로명령어 자체가 유지하는 정보에 의해 판정될 수 있다. 그러나, 요구가 존재하지 않는 경우와 대조적으로 버스사이클(B21)은 명령어 2의 추출사이클이 아닌 요구의 처리에 할당되므로 메모리리프레쉬 기능이나 DMA 제어기능은 제6a도 및 (b)의 플로우차트의 실행순서에 의해 처리된다. 이리하여, 명령어 1의 처리는 제4도와 같이 버스사이클(B21)내에서 실행된다.
상기와 같이 메모리리프레쉬제어, DMA 제어 등과 같은 주변기능에 대한 데이터처리의 요구는 모든 버스사이클(B)에서 조정된다(버스라인이 어떤 명령어의 실행에 할당되지 않을 경우, 제4도의 13,과 같은 실행사이클을 포함하여).
만약, 어떤 주변기능에 대한 요구가 존재한다면 상기 요구에 대한 데이터처리는 명령어의 처리를 인터럽트한다. 또, 상기 주변기능에 대한 데이터처리는 주기억장치에서 판독되는 명령어의 처리가(마이크로프로그램기억부(312)에 기억된) 일련의 마이크로명령어에 의해 실행되는 것과 같은 방법으로 마이크로프로그램기억부(312)에 기억된 일련의 마이크로명령어에 의해 행해지며, 또한 이것은 마이크로프로그램 기억부(312)에 기억된다. 즉, 명령어의 처리 및 주변기능에 대한 데이터처리에 있어서, 마이크로프로그램기억부(312)에서 계속적으로 판독되는 마이크로명령어는 디코더(32), (34) 및 (36)에서 순차적으로 해독되고, 그리고 ALU(16), 일반목적용 및 주변레지트터(18), (20) 및 버퍼레지스터(22), (24)는 해독된 제어신호(40)에 의해 제어된다. 처리장치를 형성하는 상기 구성품중에서, 주변기능에 대한 주변레지스터(20)만이 배타적으로 사용되도록 한다. 나머지 구성품은 주기억장치(명령어처리)에서 판독되는 명령어의 처리 및 주변기능(보조기능처리)에 대한 데이터처리를 위해 공통적으로 사용된다. 그러나, 상기와 같이 계속적으로 판독되는 마이크로명령어의 실행은 ALU(16)를 포함한 나머지 구성품이 상기 두 목적을 위해 시분할에 의해 공통으로 이용된다. 이러한 사실은 판독마이크로명령어를 실행함으로써만 자동적으로 발생되며, 시분할 연산에 대한 아무런 특수제어나 장치를 필요로 하지 않는다.
제1도에 도시된 장치나 구성품중 공통으로 사용된 것을 다음에 설명한다. 첫째로, 디코더(32), (34) 및 (36)에 대하여 기술한다. 이들 디코더(32),(34) 및(36)의 구조는 디코더가 본질적으로 게이트회로에 의해 구성된다는 사실에 비추어 거의 동일하며, 게이트신호간의 배선에 있어서만 차이가 있다. 그러나, 필요한 논리에 의해 게이트회로간에 신호선을 배선하는 것은 당분야에 통상의 기술을 가지고 있는 사람들에게는 용이한 일이다. 그러므로, 레지스터(18),(20),(22),(24)에 대한 제어신호(40)을 공급하는 디코더(34)는 다음에 기술하는 예와 같다.
제7도는 디코더(34)의 개략도를 나타내고 있다. 디코더의 연산 및 기능을 쉽게 이해하기 위해 제7도는 일반목적용 레지스터(18) 및 주변레지스터(20)가 둘 다.3개의 별도의 레지스터 즉, 일반목적용 레지스터(18)로서(R1),(R10),(R11) 및 주변레지스터 (20)로서(X1),(X10),(X11)로 구성된 간단한 예를 나타낸다.
디코더(34)는 2군의 게이트회로(342),(344)와 1군의 반도체스위치(346)로 구성된다. 마이크로명령레지스터(314)는 디코더(34)에 신호(38a),(38b) 및 (38c)를 공급한다. 이들 신호는 레지스터(18) 및(20)의 제어에 관한 정보를 유지하는 마이크로명령레지스터(314)에 격납된 마이크로명령어의 특수한 부분에서 취해진다.
게이트회로(342)군은 일반목적용 레지스터(18)에 속하는 3개의 런1지스터(Ro1).(R10),(R11)중 1개 또는 신호(38a),(38b)의 논리조합에 의해 주변레지스터(20)에 속하는(X1),(X10),(X11)중 1개를 선택한다. 신호(38c)는 일반목적용 레지스터(18)나 주변레지스터(20)를 선택하기 위한 신호이다. 게이트회로(342)군의 출력신호 및 신호(38c)의 조합에 의해 게이트회로(344)군에 있어서의 게이트중 1개는 도전성을 부여하기 위해 반도체스위치(346)의 대응하는 한개의 스위치를 구동하는 출력신호를 발생시킨다.
이와 같이 하여 레지스터(R1),(R10),(R11) 및 (X1),(X10),(X11)중의 1개는 마이크로명령레지스터(314)로부터의 신호(38a),(38b),(38c)에 대응하여 선택되며, 선택된 레지스터는 내부 X버스(10)를 통해 다른 구성품과 연통된다. 여기서, X버스(10)만 도시되어 있으나, 상기와 같은 방법으로 레지스터와 Y버스(12) 및 Z버스(14)를 접속시키기 위해 게이트 측정을 달성할 수 있다. 또, 제7도는 랜덤게이트에 의해 형성된 디코더를 도시하고 있으나 프로그래머블논리어레이(PLA)와 같은 규칙논리를 사용하여 두 게이트회로군(342),(344)을 결합하는 형상으로 할 수도 있다.
더욱이, 랜덤액세스메모리(RAM)는 제7도에 도시된 각각의 레지스터 대신에 일반목적용 레지스터(18)및 주변레지스터(20)로서 사용할 수 있다. 제8도는 RAM( 44)이 사용된 예를 나타낸다. 어드레스는 제7도에 도시된 레지스터(R1),(R10),(R11) 및 (X1),(X10),(X11)에 대응하여 RAM(44)의 적당한 위치에 할당된다. RAM(44)내의 필요한 위치에 호출하기 위해, 마이크로명령레지스터(314)로부터 신호(38a),(38b),(38c)를 해독하여 호출신호를 공급하는 어드레스디코더(46)가 설치되어 있다.
또, 본원 발명의 특징의 한가지에 의하면, ALU는 또 명령어처리 및 보조 또는 주변기능처리에 의해 분할된다. 상기한 바와 같이, DMA 제어 및 메모리리프레쉬제어와 같은 주변기능에 대한 데이터처리를 실행하는 연산은 일반적으로 간단한 산술연산으로 이루어진다. 이들 모든 연산은 주기억장치에서 판독되는 명령어를 실행하는데 필요한 산술논리연산에 포함시킬 수 있다. 이 점에서 시분할에 의해 각종 연산을 실행하게해서 1개의 ALU만을 공통으로 사용할 수 있게 되었다.
한 실시예에 있어서, 시분할에 의한 연산을 실행하기 위해 어떠한 특수제어도 필요로 하지 않는다. 왜냐하면, ALU(16)는 마이크로프로그램기억 및 제어장치(30)에서 판독되는 마이크로명령어를 계속적으로 실행함으로써 시분할에 의해 자동적으로 제어되기 때문이다. 제9도 및 제10도는 ALU(16)의 상기 연산을 설명하기 위한 도면이다. 명확히 이해하기 위해, 여기서는 간단한 예를 들었으며, 즉 일반목적용 레지스터(18)의 레지스터(R1),(R10)와 주변레지스터(20)의 레지스터(X1)만이 ALU(16)의 연산에 관련되어 있는 도면이다. 즉, 레지스터(R1),(R10)는 스위치(S1),(S2)에 의해 X버스(10) 및 Y버스(12)에 각각 접속되어 있다. 레지스터(X1)는 스위치(S4)에 의해 Y버스(12)에 접속되어 있다. 또, 레지스터(R1) 및(X1)은 모두스위치(S3),(S5)에 의해 Z버스(14)에 접속되어 있다. ALU(16)는 스위치(S6),(S7) 및(S8)에 의해 X,Y 및 Z버스(10),(12),(14)에 각각 접속되어 있다. 이들 스위치는 반도체스위치로서 형성되어 왔다. 여기서, 다음과 같은 상환을 상정한다. 즉, 레지스터(R1)의 내용(a)이 레지스터(R10)의 내용(b)에 가산되고 가산(a+b)의 결과는 레지스터(R1)에 기억되고 다음에 레지스터(Xo,)의 내용(r)은 1씩 인크리멘트되고, 그결과(r+1)는 레지스터(X1)에 다시 기억된다. 이에 대한 연산은 제10도에 설명되어 있다. 스위치(S1),(S2)가 닫혔을 때, X버스(10) 및 Y버스(12)가 구동된다. 일반적으로 일단 버스가 일정수준으로 구동되면, 이 버스는 다음에 구동될 때까지 특정한 수준을 유지한다. 그러므로, 버스(10),(12)는 레지스터(R1),(R10)의 내용(a) 및(b)을 유지한다. 스위치(S6),(S7)는 ALU(16)의 처리사이클동안 닫혀지며, 따라서 버스(10),(12)의 데이터는 버스(10),(12)가 구동될 때, 지체없이 ALU(16)로 들어갈 수 있다. 그러므로, ALU는 그 안에 데이터(a) 및(b)를 받아서 데이터(a) 및(b)의 가산을 즉시 행한다. 그 결과, Z버스(14)는 연산(a+b)의 결과는 유지하기 위해 스위치(S8)을 닫음으로써 구동된다. Z버스(14)를 구동한 후, 스위치(S8)는 이 사이클 종료시에 열리지만 Z버스(14)는(a+b)값을 계속 유지한다.
다음 사이클에서 스위치(S3)가 닫히고, 따라서 레지스터(R1)는 Z버스(14)의 데이터, 즉(a+b)값을 받는다. 또, 이 사이클에서 레지스터(X1)의 내용(r)은 스위치(S4)를 닫음으로써 ALU(16)로 전송되며, ALU(16)는 스위치(S7)를 닫음으로써 Y버스(12)의 데이터(r)를 받는다. ALU(16)에 있어서, (r)에 1을 가산하는 연산이 행하여지고, 그 결과(r+1)는 Z버스(14)로 보내진다. 이 데이터(r+1)는 다음에 계속되는 사이클에 있어서 스위치(S5)를 닫아서 레지스터(X1)로 보낸다.
또, 스위치(S1)-(S5)는 제7도의 반도체스위치(346)군의 일부에 대응하며, 이것은 제7도의 관련 부분에서 기술한 바와 같이, 디코더(34)로부터의 제어신호에 의해 제어된다. 한편, 스위치(S6)-(S8)는 디코더(32)(제1도 참조)에 의해 출력된 제어신호에 의해 제어된다. 그러므로 디코더(32)는 제10도의 순서에 따라 게이트회로를 배선해서 구성할 수 있다.
본원 발명에 대한 실시예를 한가지 형태의 마이크로컴퓨터에 대하여만 기술하였으나, 상기한 내용 및 도면을 참조하면 상기 실시예에 한정되지 않으며. 다음의 특허청구의 범위에 정의된 바와 같은 본짙 발명의기술적 사상이나 범위를 일탈하지 않고, 여러가지 변형 및 변경을 가할 수 있다.

Claims (5)

  1. 외부버스(26,28)를 통하여 주기억장치로부터 연속적으로 입력되는 명령어를 순차적으로 처리하는 산술논리장치(16)와, 산술논리장치(16)에 의해 처리될 데이터 및 그 처리된 데이터를 기억하는 제1레지스터군(18)과, 외부버스(26,28)와 결합되어 마이크로컴퓨터와 주기억장치를 포함한 외부장치간의 데이터통신을 버퍼하는 버퍼레지스터(22,24)와, 동일 반도체칩상에 배설되어, 산술논리장치(16)와 제1레지스터군(18)과 버퍼레지스터(22,24)의 사이에서 통신하는 내부버스(10,12,14)를 구비한 싱글반도체칩상의 마이크로컴퓨터에 있어서, 제1레지스터군(18)은 일반목적용 레지스터로서 작용하는 복수의 레지스터(R1,R10,R11)를 구비하고 이들은 각각 내부버스(10,12,14)와 직접 접속되어 산술논리장치(16)로 처리될 데이터를 송신하고, 산술 논리장치(16)로부터 처리된 데이터를 수신하며, 동일 반도체칩상에 배설되어 필요한 보조기능을 처리하는 복수의 레지스터(X1,X10,X11,)를 포함하는 제2레지스터군(20)을 구비하고, 이 제2레지스터군은 내부버스(10,12,14)에 접속되어 제1레지스터군(18) 및 버퍼레지스터(22,24)와 통신하며, 산술논리장치(16)로 처리될 데이터를 송신하고, 산술논리장치(16)로부터 처리된 데이터를 수신하며, 동일 반도체칩상에 마이크로프로그램기억 및 제어장치(30)를 구비하고, 이 장치는 명령어처리 및 필요한 보조기능의 처리의 마이크로명령어를 기억하고, 산술논리장치(16), 제1 및 제2레지스터군(18,20) 및 버퍼레지스터(22,24)를 제어하며, 이에 따라 산술논리장치(16), 버퍼레지스터(22,24) 및 내부버스(10,12,14)는 명령어처리 및 요구되는 보조기능처리에 의해 분활되어, 마이크로프로그램 기억 및 제어장치(30)로부터 판독되는 마이크로명령어를 순차실행하는 것을 특징으로 하는 마이크로컴퓨터.
  2. 제1항에 있어서, 상기 보조기능은 다이렉트메모리 액세스제어이며, 상기 제2레지스터군(20)을 사용하여 원어드레스 및 전송될 데이터의 착신 어드레스를 기억하는 것을 특징으로 하는 마이크로컴퓨터.
  3. 제1항에 있어서, 상기 보조기능은 다이나믹메모리리프레쉬제어이며, 상기 제2레지스터군(20)을 사용하여 리프레쉬될 데이터의 어드레스를 기억하는 것을 특징으로 하는 마이크로컴퓨터.
  4. 제1항에 있어서, 주기억장치의 어드레스스페이스의 일부로서의 어드레스는 상기 제2레지스터군(20)에 할당되며, 따라서 상기 제2레지스터군(20)은 실행처리의 중단이 외부장치로부터 요청될 때, 상기 제1레지스터군(18)의 내용을 일시 기억하기 위한 스택으로서 작용하는 것을 특징으로 하는 마이크로컴퓨터.
  5. 제1항 내지 제4항중 어느 한항에 있어서, 상기 제1 및 제2레지스터군(18,20)은 각 레지스터군의 어드레스가 할당되어 있는 싱글랜덤액세스메모리에 할당되어 있는 것을 특징으로 하는 마이크로컴퓨터.
KR1019850005371A 1984-07-27 1985-07-26 마이크로 컴퓨터 KR900005284B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP158260 1984-07-27
JP59158260A JP2618223B2 (ja) 1984-07-27 1984-07-27 シングルチツプマイクロコンピユータ
JP84-158260 1984-07-27

Publications (2)

Publication Number Publication Date
KR860001379A KR860001379A (ko) 1986-02-26
KR900005284B1 true KR900005284B1 (ko) 1990-07-27

Family

ID=15667729

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019850005371A KR900005284B1 (ko) 1984-07-27 1985-07-26 마이크로 컴퓨터

Country Status (5)

Country Link
US (1) US4740892A (ko)
EP (1) EP0169577B1 (ko)
JP (1) JP2618223B2 (ko)
KR (1) KR900005284B1 (ko)
DE (1) DE3579862D1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62226257A (ja) * 1986-03-27 1987-10-05 Toshiba Corp 演算処理装置
US5018098A (en) * 1987-05-07 1991-05-21 Fujitsu Limited Data transfer controlling apparatus for direct memory access
IT1205093B (it) * 1987-06-25 1989-03-10 Presidenzha Del Consiglio Dei Unita' di elaborazione di tipo integrato specialmente utilizzabile in sistemi per il riconoscimento del parlato continuo
JP3265582B2 (ja) * 1991-02-27 2002-03-11 日本電気株式会社 マイクロコンピュータ
WO1992016895A1 (en) 1991-03-18 1992-10-01 Echelon Corporation Networked variables
US5206935A (en) * 1991-03-26 1993-04-27 Sinks Rod G Apparatus and method for fast i/o data transfer in an intelligent cell

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5329425B2 (ko) * 1973-06-06 1978-08-21
US4050058A (en) * 1973-12-26 1977-09-20 Xerox Corporation Microprocessor with parallel operation
US4181938A (en) * 1975-10-15 1980-01-01 Tokyo Shibaura Electric Co., Ltd. Processor device
JPS52116131A (en) * 1976-03-26 1977-09-29 Toshiba Corp Microprogram instruction control unit
US4339793A (en) * 1976-12-27 1982-07-13 International Business Machines Corporation Function integrated, shared ALU processor apparatus and method
JPS54138354A (en) * 1978-04-20 1979-10-26 Oki Electric Ind Co Ltd Microprocessor unit
US4348720A (en) * 1979-08-31 1982-09-07 Bell Telephone Laboratories, Incorporated Microcomputer arranged for direct memory access
JPS5850367A (ja) * 1981-09-18 1983-03-24 Matsushita Electric Ind Co Ltd ガス流量調節装置
JPS58192148A (ja) * 1982-05-07 1983-11-09 Hitachi Ltd 演算処理装置

Also Published As

Publication number Publication date
JPS6136845A (ja) 1986-02-21
EP0169577B1 (en) 1990-09-26
US4740892A (en) 1988-04-26
KR860001379A (ko) 1986-02-26
EP0169577A2 (en) 1986-01-29
DE3579862D1 (de) 1990-10-31
EP0169577A3 (en) 1986-11-26
JP2618223B2 (ja) 1997-06-11

Similar Documents

Publication Publication Date Title
US4648034A (en) Busy signal interface between master and slave processors in a computer system
US4774688A (en) Data processing system for determining min/max in a single operation cycle as a result of a single instruction
US4181938A (en) Processor device
KR930018378A (ko) 캐쉬 메모리 시스템의 성능최적화 방법 및 장치
JPS6361691B2 (ko)
US4027291A (en) Access control unit
JPH0650493B2 (ja) データ処理装置
US4926318A (en) Micro processor capable of being connected with a coprocessor
EP0025087A2 (en) Pipeline Control apparatus for generating Instructions in a Digital Computer
KR920008448B1 (ko) 데이터 프로세서
KR900005284B1 (ko) 마이크로 컴퓨터
CA1109161A (en) Processor for a data processing system
US4967339A (en) Operation control apparatus for a processor having a plurality of arithmetic devices
US5161229A (en) Central processing unit
EP0208287B1 (en) Direct memory access controller
JPS6042966B2 (ja) デ−タ処理システム
US5677859A (en) Central processing unit and an arithmetic operation processing unit
US4631665A (en) Microprocessor having a programmable logic array
JPH0330917Y2 (ko)
JPH04280334A (ja) ワンチップマイクロコンピュータ
JPS6239792B2 (ko)
JPS58129669A (ja) 2チツプマイクロコンピユ−タ
SU1195364A1 (ru) Микропроцессор
JPH05242008A (ja) データ処理装置
JPH01116702A (ja) シーケンスコントローラ

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: 19990629

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee