KR19990063487A - 데이터 버스의 효과적인 사용으로 처리 능력을 향상시킬 수 있는 정보 처리 장치 및 정보 처리 방법 - Google Patents
데이터 버스의 효과적인 사용으로 처리 능력을 향상시킬 수 있는 정보 처리 장치 및 정보 처리 방법 Download PDFInfo
- Publication number
- KR19990063487A KR19990063487A KR1019980058728A KR19980058728A KR19990063487A KR 19990063487 A KR19990063487 A KR 19990063487A KR 1019980058728 A KR1019980058728 A KR 1019980058728A KR 19980058728 A KR19980058728 A KR 19980058728A KR 19990063487 A KR19990063487 A KR 19990063487A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- input
- control means
- internal
- output
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/362—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
- G06F13/364—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1684—Details of memory controller using multiple buses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7839—Architectures of general purpose stored program computers comprising a single central processing unit with memory
- G06F15/7842—Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Bus Control (AREA)
Abstract
CPU를 장착한 정보처리 장치에서, 정보처리 장치 전체의 처리능력을 증가시키기 위해서 이 CPU의 동작속도를 증가시킨다. 정보처리 장치는 서로로부터 독립적으로 제공된 제 1 및 제 2 내부 버스, 제 1 내부버스에 접속된 내부 메모리, 및 제 2 내부버스에 접속된 타이머(25)로 구성된다. 더구나, 이 정보처리 장치는 A/D 변환기, 제 1/제 2 직렬 인터페이스, CPU, DMAC(다이렉트 메모리 액세스 제어기)로 구성된다. CPU 및 DMAC는 이들 제 1/제 2 데이터 버스 중 적어도 하나를 점유하는 동안 내부 메모리에서의 데이터 입력/출력 동작 및 타이머를 제어한다. DMAC는 제 1/제 2 내부버스 중 적어도 하나를 점유하는 동안 내부 메모리의 데이터 입력/출력 동작을 제어하기 위해서 CPU에 요청신호를 공급하며, 제 1/제 2 내부버스 중 하나 또는 이들을 점유하는 동안 CPU로부터 공급된 승인 신호에 응답하여 내부 메모리에서 데이터 입력/출력을 또한 제어한다.
Description
본 발명은 일반적으로 정보처리 방법 및 정보처리 장치에 관한 것이다. 특히, 본 발명은 CPU, 메모리, 복수의 입력/출력(I/O) 장치, 다이렉트 메모리 액세스 제어기(DMAC), 및 적어도 2개의 버스가 구비된 정보처리 장치의 처리능력(throughput)을 상기 버스를 효과적으로 이용하면서 향상시킬 수 있는 정보처리 방법/장치에 관한 것이다.
일반적으로, 기술분야에 정보처리 장치가 알려져 있다. 종래의 정보처리 장치의 하나로서 예를 들면, 1993년에 공개된 일본 특허 공개된 출원번호 평5-274250에 기술된 것을 도 27에 개략적으로 도시하였다.
이 종래의 정보처리 장치는 주로 1칩 마이크로컴퓨터(1), 입력/출력 장치(3), 및 외부메모리(4)로 구성된다. 이러한 구성요소들은 외부버스(5)를 통해 서로 접속된다. 이 1칩 마이크로컴퓨터(1)는 중앙 처리부(CPU), 내부버스(7), 버스 중재기(8), 및 내부(데이터) 버스(9)를 단일 반도체 칩에 제조하도록 구성된다. CPU(6), 내부메모리(7), 및 버스 중재기(8)는 내부버스(9)를 통해 서로 접속된다. CPU(6)는 내부버스(9)와 CPU(6)의 접속/접속해제를 제어하기 위한 버스 제어기를 포함한다. 버스 제어기(10)는 버스 중재기(8)로부터 요청신호를 입력하여, 승인신호를 이 버스 중재기(8)로 공급한다. 이 요청신호는 버스 중재기(8)가 내부버스(9)를 양도(release)할 것을 요청함을 나타내는 것이다. 승인신호는 버스 중재기(8)가 내부버스(9)를 양도하게 하였음을 나타내는 것이다.
버스 중재기(8)는 내부버스(9)와 외부버스(5)에 접속된다. 외부버스(5) 및 내부버스(9)를 모두 양도하는 외부요청이 DMAC(2)로부터 버스 중재기(8)로 입력된다. 또한, 이 버스 중재기(8)는 외부버스(5) 및 내부버스(9)를 모두 양도하게 하는 외부 승인신호를 DMAC(2)에 공급한다. 버스 중재기(8)는 모드선택(11)의 상태에 응답하여 DMAC(2)에 관하여 내부버스(9)와 외부버스(5)간 접속을 분리하면서 외부버스(5)만을 양도할 수도 있다. 또한, 버스 중재기(8)는 외부버스(5)가 내부버스(9)에 접속된 상태하에서 내부버스(9)와 외부버스(8) 중 어느 하나를 양도할 수도 있다. 모드선택 비트(11)의 상태는 CPU(6) 및 DMAC(2)로부터 공급된 프로그램에 따라 재기입될 수 있다. 버스 중재기(8)는 재시도 신호를 CPU(6)의 버스 제어기(10)에 공급한다. DMAC(2)이 외부버스(2)를 점유하고 I/O 장치(3) 또는 외부 메모리(4)로 데이터 전송이 기입상태로 설정된 동안 이 재시도 신호는 CPU(6)의 버스 사이클을 재시도하는데 사용된다.
이러한 구성을 채용함으로써, 종래의 정보처리 장치에서, 프로그램이 실행되고 있을 때라도, 버스 중재기는 모드 선택 비트(11)를 재기입하고 DMAC(2)로부터 외부 요청신호를 버스 중재기(8)로 공급함으로서 DMAC의 동작상태가 천이되게 한다. 결국, CPU(6) 및 DMAC(2)는 이들의 데이터 버스를 병렬로 사용할 수 있으므로 CPU(6)의 동작속도가 증가되고 따라서 전체 처리능력이 향상된다. 이들 동작상태는 제 1 내지 제 3 상태를 포함한다. 제 1 상태에서, 외부버스(5) 및 내부버스(9) 어느 것도 양도되지 않는다. 제 2 상태에서, 외부버스(5) 및 내부버스(9)가 접속되는 동안, 이들 데이터 버스 중 어느 하나가 양도된다. 제 3 상태에서, 단지 외부버스(5)만이 양도된다. 버스 중재기(8)는 제 1 상태를 제 2 상태 또는 제 3 상태로 천이한다. 버스 중재기(8)는 제 2 상태 또는 제 3 상태를 제 1 상태로 천이한다. 아니면, 버스 중재기(8)는 제 2 상태를 제 3 상태로 천이한다.
상기 기술된 종래의 정보처리 장치에서, 버스 중재기(8)가 외부버스(5)와 내부버스(9)간 접속을 해제한 제 3 상태하에서 CPU(6) 및 DMAC(2)는 외부버스(9) 및 외부버스(5)를 각각 1칩 마이크로컴퓨터(1) 내부에서 또한 외부에서 사용할 수 있다.
그러나, 버스 중재기(8)가 외부버스(5)를 직렬로 내부버스(9)에 접속하는 제 1 상태 및 제 2 상태하에서, CPU(6)나 DMAC(2)는 동시에 외부버스(5) 및 내부버스(9)를 점유한다. 결국, 다음의 동시 처리 동작이 수행될 수 없다. 예를 들면, CPU(6)가 외부 메모리(4) 내에 저장된 데이터를 읽는 동안, DMAC(2)는 내부 메모리(7)에 저장된 데이터를 I/O 장치(3)로 전송한다.
이러한 경우, CPU(6)나 DMAC(2)는 상기 기술된 처리 동작을 인터럽트해야만 한다.
결국, 종래의 정보는 이러한 결점이 있다. 즉, CPU(6)의 동작속도를 증가시키는데에 한계가 있다. 즉 종래 정보처리 장치 전체의 처리능력 개선에 한계가 있다. 이 결점은 도 27에 도시한 모든 구성요소를 상기 기술된 일본 특허공개된 출원에 기술된 바와 같은 1칩 구조로 제조할 때라도 해결될 수 없는 것이다.
본 발명은 상기 기술된 결점을 해결하는 것으로, CPU의 동작속도를 증가시킬 수 있고 더욱이 정보처리 시스템 전체의 처리능력을 향상시킬 수 있는 정보처리 장치 및 정보처리 방법을 제공하는 목적을 갖는다.
도 1은 본 발명의 제 1 실시예에 따른 정보처리 장치의 내부 구성을 나타낸 개략적인 블록도.
도 2는 도 1에 도시한 제 1 정보처리 장치에 채용된 DMAC(다이렉트 메모리 액세스 제어기)의 내부구성을 도시한 개략적인 블록도.
도 3은 제 1 정보처리 장치에 채용된 채널 제어부의 내부구성을 도시한 개략적인 블록도.
도 4는 제 1 정보처리 장치에서 우선순위 인코더에 입력되는 각각의 비트(BREQ0내지 BREQ3)와 DMA 제어 레지스터를 구성하는 4 채널의 번호간 관계를 나타낸 도면.
도 5는 제 1 정보처리 장치에 채용된 데이터 제어부의 내부구성을 도시한 개략적인 블록도.
도 6은 DMA 제어 레지스터의 내부구성을 도시한 개략적인 블록도.
도 7은 제 1 정보처리 장치에서 제 1 채널의 회로구성을 도시한 개략적인 블록도.
도 8은 제 1 정보처리 장치의 메모리 맵의 구조를 도시한 개략도.
도 9는 승인 신호(ACK)를 DMAC에 공급하는 제 1 정보처리 장치의 동작을 기술한 흐름도.
도 10은 DMA 전송동작 동안 제 1 채널에서 수행되는 동작을 설명하는 흐름도.
도 11은 제 1 정보처리 장치에서 단일 스텝 전송 모드에서의 DMA 전송동작 동안 내부버스의 페치상태와 다른 신호들간 관계의 예를 나타낸 흐름도.
도 12는 제 1 정보처리 장치에서 단일 전송 모드에서의 DMA 전송동작 동안 내부버스의 페치상태와 다른 신호들간 관계의 예를 나타낸 흐름도.
도 13은 제 1 정보처리 장치에서 버스 요청신호(BREQ)의 각각의 비트(BREQ0내지 BREQ3), 채널 유효신호(TCA)의 각각의 비트(TCA0내지 TCA3)과 채널 클리어 신호(CHC)간 관계의 예를 도시한 흐름도.
도 14는 제 1 정보처리 장치에서 버스 요청신호(BREQ)의 비트(BREQ0내지 BREQ3)가 활성상태로 설정된 경우 단일 전송모드에서 DMA 전송동작 동안 내부버스의 페치상태와 다른 신호와의 관계의 예를 도시한 타이밍도.
도 15는 제 1 정보처리 장치에서 버스 요청신호(BREQ)의 비트(BREQ0내지 BREQ3)가 활성상태로 설정된 경우 단일 스텝 전송모드에서 DMA 전송동작 동안 내부버스의 페치상태와 다른 신호와의 관계의 예를 도시한 타이밍도.
도 16은 제 1 정보처리 장치에서 버스 요청신호(BREQ)의 비트(BREQ0내지 BREQ3)가 활성상태로 설정된 경우 블록 전송모드에서 DMA 전송동작 동안 내부버스의 페치상태와 다른 신호와의 관계의 예를 도시한 타이밍도.
도 17은 본 발명의 제 2 실시예에 따른 정보처리 장치의 내부구성을 나타내는 개략적인 블록도.
도 18은 제 2 정보처리 장치에서 5개의 상태의 천이, 내부 요청신호(INREQ)의 각각의 비트(INREQ0내지 INREQ3)와 외부 요청신호의 값간 관계를 나타낸 도면.
도 19는 도 16에 도시한 제 2 정보처리 장치에 채요된 DMAC(다이렉트 메모리 액세스 제어기)의 내부구성을 도시한 개략적인 블록도.
도 20은 제 2 정보처리 장치에 채용된 채널제어의 내부구성을 나타낸 개략적인 블록도.
도 21은 제 2 정보처리 장치에 채용된 외부 버스 제어기의 내부구성을 도시한 개략적인 블록도.
도 22는 제 2 정보처리 장치에 채용된 메모리 맵의 구조를 나타낸 개략도.
도 23은 제 2 정보처리 장치에서 각각의 신호와 각각의 버스상태의 천이간 관계의 예를 나타낸 타이밍도.
도 24는 제 2 정보처리 장치에서 각각의 신호와 각각의 버스상태의 천이간 관계의 예를 나타낸 타이밍도.
도 25는 제 2 정보처리 장치에서 각각의 신호와 각각의 버스상태의 천이간 관계의 예를 나타낸 타이밍도.
도 26은 본 발명의 제 3 실시예에 따른 정보처리 장치의 구성을 도시한 개략적인 블록도.
도 27은 종래의 정보처리 장치의 구성을 도시한 개략적인 블록도.
* 도면의 주요 부분에 대한 부호의 설명 *
21 : 정보처리 장치 22, 62 : CPU
23, 63, 92 : DMAC 24, 93 : 내부버스
25 : 타이머 26 : A/D 변환기
27, 28 : 제 1 및 제 2 직렬 인터페이스 29, 30 : 내부 버스
31 : 버스 제어기 32 :채널 제어부
33 : 데이터 제어부 34 : 어드레스 제어부
35 : DMA 제어 레지스터 36 :OR 게이트
37 : 우선순위 인코더 38 : DMA 사이클 시퀀서
39 : 데이터 버스 제어기 41 : 데이터 래치
40 : 버스 사이클 제어기 47, 48, 54, 79, 82 : 선택기
49 : 가산/감산 장치 50 : 발신지 어드레스 레지스터
51 : 수신지 어드레스 레지스터 53 : 채널 제어 레지스터
61 : 제 2 정보처리 장치 64 : 외부 버스 제어기
66 : 제 1 외부 메모리 73 : 버스 제어기
74 : 채널 제어부 75 : 데이터 제어부
76 : 어드레스 제어부 77 : DMA 사이클 시퀀서
78 : 버스 사이클 제어기 91 : 제 3 정보처리 장치
상기 기술된 목적을 달성하기 위해서, 본 발명의 제 1 특징에 따라 정보처리 장치는,
서로로부터 독립적으로 제공된 적어도 제 1 및 제 2 데이터 버스;
상기 제 1 및 제 2 버스 중 적어도 하나에 접속되어 데이터를 입력/출력하는 복수의 입력/출력수단;
적어도 상기 제 1 데이터 버스를 점유하는 동안 상기 입력/출력수단의 상기 데이터 입력/출력동작을 제어하는 제 1 제어수단; 및
적어도 상기 제 1 데이터 버스를 점유하는 동안 상기 입력/출력수단의 상기 데이터 입력/출력 동작을 제어하는 제 1 제어수단에 대해 상기 점유된 제 1 데이터 버스를 양도할 것을 요청하며, 상기 제 1 제어수단에 의해 상기 제 1 데이터 버스의 양도에 응답하여 상기 제 2 데이터 버스, 또는 상기 제 1 및 제 2 데이터 버스를 점유하는 동안 상기 입력/출력수단의 상기 데이터 입력/출력동작을 제어하는 제 2 제어수단을 포함하는 것을 특징으로 한다.
또한, 상기 설명한 목적을 달성하기 위해서, 본 발명의 제 2 특징에 따라 정보처리 장치는,
서로로부터 독립적으로 제공된 적어도 제 1 및 제 2 데이터 버스;
상기 제 1 및 제 2 버스 중 적어도 하나에 접속되어 데이터를 입력/출력하는 복수의 입력/출력수단;
적어도 상기 제 1 데이터 버스를 점유하는 동안 상기 입력/출력수단의 상기 데이터 입력/출력동작을 제어하는 제 1 제어수단; 및
상기 점유된 제 1 데이터 버스를 양도할 것을 상기 제 1 제어수단에 요청하며, 상기 제 1 제어수단에 의한 상기 제 1 데이터 버스의 양도에 응답하여, 적어도 상기 제 2 데이터 버스를 점유하는 동안 상기 입력/출력수단의 상기 데이터 입력/출력 동작을 제어하는 제 2 제어수단을 포함하며,
상기 제 1 제어수단은 상기 제 2 제어수단으로부터 발행된 상기 제 1 데이터 버스의 양도 요청 및 상기 자신의 제 1 제어수단의 동작상태에 기초하여 양도되도록 요청된 상기 제 1 데이터 버스를 양도하는 것을 특징으로 한다.
본 발명의 제 1 또는 제 2 특징에 따른 정보처리 장치에서, 상기 제 1 및 제 2 데이터 버스, 상기 복수의 입력/출력 수단, 및 상기 제 1 및 제 2 제어수단은 1칩 마이크로컴퓨터의 형태로 단일 칩에 제조된다.
더구나, 우선순위는 상기 복수의 입력/출력 수단의 상기 데이터 입력/출력동작에 미리 설정되고,
상기 미리 설정된 우선순위에 응답하여, 상기 제 2 제어수단은 상기 제 1 제어수단에 의해 점유된 적어도 상기 제 1 데이터 버스를 양도할 것을 상기 제 1 제어수단에 요청하며, 상기 제 1 제어수단에 의한 상기 제 1 데이터 버스의 양도에 응답하여 상기 제 2 데이터 버스를 점유하는 동안 상기 복수의 입력/출력 수단의 상기 데이터 입력/출력 동작을 제어한다.
또한, 적어도 상기 제 1 데이터 버스를 점유하는 동안 상기 제 1 제어수단이 상기 입력/출력 수단의 상기 데이터 입력/출력 동작을 제어하며, 적어도 상기 제 2 데이터 버스를 점유하는 동안 상기 제 1 제어수단이 상기 제 2 제어수단으로 하여금 상기 입력/출력 수단의 상기 데이터 입력/출력 동작을 제어하게 할 때, 상기 제 1 제어수단은 상기 입력/출력 수단에서 실행될 데이터 입력/출력 제어에 관계된 정보를 상기 제 2 제어수단에 공급하며,
상기 제 2 제어수단은 상기 공급된 정보에 기초하여 적어도 상기 제 1 데이터 버스를 양도할 것을 상기 제 1 제어수단에 요청하며, 상기 제 1 제어수단에 의한 제 1 데이터 버스의 양도에 기초하여 적어도 상기 제 2 데이터 버스를 점유하는 동안 상기 입력/출력수단의 상기 데이터 입력/출력 동작을 제어한다.
또한, 데이터로서 컴퓨터 프로그램 및 외부소스가 입력/출력될 것을 요청받는 상기 입력/출력 수단으로부터 발행된 요청 중 하나에 응답하여, 상기 제 2 제어수단은 적어도 상기 제 1 데이터 버스를 양도할 것을 상기 제 1 제어수단에 요청하며, 상기 제 1 제어수단에 의한 상기 제 1 데이터 버스의 양도에 기초하여 적어도 상기 제 2 데이터 버스를 점유하는 동안 상기 입력/출력 수단의 상기 데이터 입력/출력 동작을 제어한다.
더욱이, 상기 제 1 제어수단 및 상지 제 2 제어수단 중 하나는 상기 제 1 및 제 2 데이터 버스 중 적어도 하나의 한 부분을 양도할 것을 상기 제 1 제어수단 및 상기 제 2 제어수단 중 다른 한 제어수단에 요청하며; 상기 제 1 제어수단 및 상지 제 2 제어수단 중 하나는 또한 상기 제 1 제어수단 및 상기 제 2 제어수단 중 상기 다른 한 제어수단에 의한 상기 제 1 및 제 2 데이터 버스 중 적어도 하나의 상기 부분의 양도에 기초하여 상기 제 1 및 제 2 데이터 버스 중 적어도 하나의 상기 부분을 점유하는 동안 상기 입력/출력 수단의 상기 데이터 입력/출력 동작을 제어한다.
본 발명의 제 1 또는 제 2 특징에 따라서, 정보처리 장치는 적어도 상기 제 1 및 제 2 데이터 버스에 접속된 버스 접속수단을 더 포함함으로써, 상기 데이터를 입력/출력하기 위해서 상기 제 1 및 제 2 제어수단 중 하나에 의한 상기 버스 접속수단의 제어 하에 상기 버스 접속수단을 통해 상기 복수의 입력/출력 수단이 상기 제 1 및 제 2 데이터 버스 중 어느 하나에 접속된다.
또한, 제 1 제어수단 및 상기 제 2 제어수단은 CPU(중앙 처리부) 및 DMAC(다이렉트 메모리 액세스 제어기)로 구성된다.
더욱이, 상기 DMAC는:
상기 CPU에 접속된 채널 제어부;
상기 제 1 및 제 2 데이터 버스에 접속된 데이터 제어부;
상기 제 1 및 제 2 데이터 버스에 접속된 어드레스 제어부; 및
상기 채널 제어부에 접속된 DMA 제어 레지스터를 포함한다.
또한, 상기 복수의 입력/출력 수단은 적어도 타이머, A/D 변환기, 및 직렬 인터페이스를 포함한다.
본 발명의 제 1 또는 제 2 특징에 따라 정보처리 장치는 상기 제 1 및 제 2 데이터 버스에 접속되어, 상기 제 1 및 제 2 제어수단의 제어하에서 상기 데이터를 저장하는 내부 메모리를 더 포함한다.
상기 기술된 목적을 달성하기 위해서, 본 발명의 제 3 특징에 따라 정보처리 장치는:
서로로부터 독립적으로 제공된 적어도 제 1 및 제 2 내부 데이터 버스;
적어도 하나의 외부 데이터 버스;
상기 제 1 및 제 2 내부 데이터 버스 중 적어도 하나에 접속되어 데이터를 입력/출력하는 복수의 내부 입력/출력수단;
적어도 상기 하나의 외부 데이터 버스에 접속되어, 데이터를 입력/출력하는 복수의 외부 입력/출력 수단;
적어도 상기 제 1 내부 데이터 버스를 점유하는 동안 상기 내부 입력/출력수단의 상기 데이터 입력/출력동작을 제어하는 제 1 제어수단; 및
적어도 상기 제 1 내부 데이터 버스를 점유하는 동안 상기 내부 입력/출력 수단의 상기 데이터 입력/출력 동작을 제어하는 상기 제 1 제어수단에 대해 상기 점유된 제 1 데이터 버스를 양도할 것을 요청하며, 상기 제 1 제어수단에 의한 상기 제 1 내부 데이터 버스의 양도에 응답하고, 그리고 상기 외부 데이터 버스의 점유상태에 기초하여, 상기 제 2 내부 데이터 버스, 또는 사익 제 1 밍 제 2 내부 데이터 버스를 점유하는 동안 상기 내부 입력/출력 수단의 상기 데이터 입력/출력 동작을 제어하는 제 2 제어수단을 포함하는 것을 특징으로 한다.
상기 기술된 목적을 달성하기 위해서, 본 발명의 제 4 특징에 따라 정보처리 장치는:
서로로부터 독립적으로 제공된 적어도 제 1 및 제 2 내부 데이터 버스;
적어도 하나의 외부 데이터 버스;
상기 제 1 및 제 2 내부 데이터 버스 중 적어도 하나에 접속되어 데이터를 입력/출력하는 복수의 내부 입력/출력수단;
적어도 상기 하나의 외부 데이터 버스에 접속되어, 데이터를 입력/출력하는 복수의 외부 입력/출력 수단;
적어도 상기 제 1 내부 데이터 버스를 점유하는 동안 상기 내부 입력/출력수단의 상기 데이터 입력/출력동작을 제어하는 제 1 제어수단; 및
상기 점유된 제 1 내부 데이터 버스를 양도할 것을 상기 제 1 제어수단에 요청하며, 상기 제 1 제어수단에 의한 상기 제 1 내부 데이터 버스의 양도에 응답하며, 상기 외부 데이터 버스의 점유상태에 기초하여, 상기 제 2 내부 데이터 버스를 점유하는 동안 상기 입력/출력수단의 상기 데이터 입력/출력 동작을 제어하는 제 2 제어수단을 포함하며,
상기 제 1 제어수단은 상기 제 2 제어수단으로부터 양도 요청 및 상기 자신의 제 1 제어수단의 동작상태에 기초하여 양도되도록 요청된 상기 제 1 내부 데이터 버스를 양도하는 것을 특징으로 한다.
본 발명의 제 3, 또는 제 4 특징에 따른 정보처리 장치에서, 상기 제 1 및 제 2 내부 데이터 버스, 상기 복수의 입력/출력 수단, 상기 제 1 및 제 2 제어수단, 및 적어도 외부 버스 제어기는 1칩 마이크로컴퓨터의 형태로 단일 칩에 제조된다.
또한, 우선순위는 상기 복수의 내부 입력/출력 수단의 상기 데이터 입력/출력동작에 미리 설정되고,
상기 미리 설정된 우선순위에 응답하여, 상기 제 2 제어수단은 상기 제 1 제어수단에 의해 점유된 적어도 상기 제 1 내부 데이터 버스를 양도할 것을 상기 제 1 제어수단에 요청하며, 상기 제 1 제어수단에 의한 상기 제 1 내부 데이터 버스의 양도에 응답하여 상기 제 2 내부 데이터 버스를 점유하는 동안 상기 복수의 내부 입력/출력 수단의 상기 데이터 입력/출력 동작을 제어한다.
또한, 적어도 상기 제 1 내부 데이터 버스를 점유하는 동안 상기 제 1 제어수단이 상기 내부 입력/출력 수단의 상기 데이터 입력/출력 동작을 제어하며, 적어도 상기 제 2 내부 데이터 버스를 점유하는 동안 상기 제 1 제어수단이 상기 제 2 제어수단으로 하여금 상기 내부 입력/출력 수단의 상기 데이터 입력/출력 동작을 제어하게 할 때, 상기 제 1 제어수단은 상기 내부 입력/출력 수단에서 실행될 데이터 입력/출력 제어에 관계된 정보를 상기 제 2 제어수단에 공급하며,
상기 제 2 제어수단은 상기 공급된 정보에 기초하여 적어도 상기 제 1 내부 데이터 버스를 양도할 것을 상기 제 1 제어수단에 요청하며, 상기 제 1 제어수단에 의한 제 1 내부 데이터 버스 양도에 기초하여 적어도 상기 제 2 내부 데이터 버스를 점유하는 동안 상기 내부 입력/출력수단의 상기 데이터 입력/출력 동작을 제어한다.
더구나, 데이터로서 컴퓨터 프로그램 및 외부소스가 입력/출력될 것을 요청받는 상기 내부 및 외부 입력/출력 수단으로부터 발행된 요청 중 하나에 응답하여, 상기 제 2 제어수단은 적어도 상기 제 1 내부 데이터 버스를 양도할 것을 상기 제 1 제어수단에 요청하며, 상기 제 1 제어수단에 의한 상기 제 1 내부 데이터 버스의 양도에 기초하여 적어도 상기 제 2 데이터 버스를 점유하는 동안 상기 내부 입력/출력 수단의 상기 데이터 입력/출력 동작을 제어한다.
더구나, 상기 제 1 제어수단 및 상지 제 2 제어수단 중 하나는 상기 제 1 및 제 2 내부 데이터 버스 중 적어도 하나의 한 부분을 양도할 것을 상기 제 1 제어수단 및 상기 제 2 제어수단 중 다른 한 제어수단에 요청하며; 상기 제 1 제어수단 및 상지 제 2 제어수단 중 하나는 또한 상기 제 1 제어수단 및 상기 제 2 제어수단 중 상기 다른 한 제어수단에 의한 상기 제 1 및 제 2 내부 데이터 버스 중 적어도 하나의 상기 부분의 양도에 기초하여 상기 제 1 및 제 2 내부 데이터 버스 중 적어도 하나의 상기 부분을 점유하는 동안 상기 내부 입력/출력 수단의 상기 데이터 입력/출력 동작을 제어한다.
본 발명의 제 3, 또는 제 4 특징에 따라 정보처리 장치는 적어도 상기 제 1 및 제 2 내부 데이터 버스에 접속된 버스 접속수단을 더 포함함으로써, 상기 데이터를 입력/출력하기 위해서 상기 제 1 및 제 2 제어수단 중 하나에 의한 상기 버스 접속수단의 제어 하에 상기 버스 접속수단을 통해 상기 복수의 내부 입력/출력 수단이 상기 제 1 및 제 2 데이터 버스 중 어느 하나에 접속된다.
또한, 상기 제 1 제어수단 및 상기 제 2 제어수단은 CPU(중앙 처리부) 및 DMAC(다이렉트 메모리 액세스 제어기)로 구성된다.
더구나, 상기 DMAC는,
상기 CPU에 접속된 채널 제어부;
상기 제 1 및 제 2 내부 데이터 버스에 접속된 데이터 제어부;
상기 제 1 및 제 2 내부 데이터 버스에 접속된 어드레스 제어부; 및
상기 채널 제어부에 접속된 DMA 제어 레지스터를 포함한다.
더구나, 상기 복수의 입력/출력 수단은 적어도 타이머, A/D 변환기, 및 직렬 인터페이스를 포함한다.
본 발명의 제 3, 또는 제 4 특징에 따른 정보처리 장치는 상기 제 1 및 제 2 내부 데이터 버스에 접속되어, 상기 제 1 및 제 2 제어수단의 제어하에서 상기 데이터를 저장하는 내부 메모리를 더 포함한다.
더욱이, 본 발명의 제 5 특징에 따른 정보처리 방법은,
적어도 제 1 데이터 버스를 점유하는 동안 상기 제 1 및 제 2 데이터 버스 중 적어도 하나에 접속된 복수의 입력/출력수단에 의해 실행되는 데이터 입력/출력 동작을 상기 제 1 제어수단 제어하에서 제어하는 제 1 제어단계;
상기 제 1 데이터 버스를 점유하는 동안 상기 복수의 입력/출력 수단에 의해 상기 데이터 입력/출력 동작이 제어되는 상기 제 1 제어 단계에서 점유되지 않은 상기 제 2 제어 데이터 버스를 제 2 제어수단의 제어하에서 양도할 것을 상기 제 1 제어수단에 요청하는 제 2 제어단계;
상기 요청 및 상기 자신의 제 2 제어수단의 동작상태에 기초하여 상기 자신의 제 2 제어수단에 의해 점유되지 않은 상기 제 2 데이터 버스를 상기 제 2 제어수단이 양도하는지 여부에 대해 판정하고, 그후 상기 판정결과를 상기 제 1 제어수단에 통보하는 제 3 제어단계; 및
상기 제 2 제어수단에 의해 점유되지 않은 상기 제 2 데이터 버스를 점유할 동안 상기 제 2 제어수단으로부터 발행된 상기 통보에 기초하여 상기 제 1 제어수단의 상기 복수의 입력/출력수단의 상기 입력/출력동작을 제어하는 제 4 제어단계를 포함하는 것을 특징으로 한다.
본 발명의 상기 및 다른 목적, 잇점 및 특징은 첨부한 도면을 참조하여 취한 다음 설명으로부터 더욱 명백하게 될 것이다.
도면을 참조하여, 본 발명의 여러 가지 실시예를 상세히 설명한다.
도 1은 본 발명의 제 1 실시예에 따른 정보처리 장치(21)의 전체 구성을 나타낸 개략적인 블록도이다.
이 도면에 도시한 바와같이, 제 1 정보처리 장치(21)는 CPU(중앙 처리부)(22), DMAC(다이렉트 메모리 액세스 제어기)(23), 내부버스(24), 타이머(25), A/D(아날로그 디지털)변환기(26), 제 1 및 제 2 직렬 인터페이스(27/28), 및 2개의 내부 버스(29/30)으로 구성된다. 이들 구성요소는 하나의 반도체 칩, 즉 단일칩 마이크로컴퓨터로 제공된다. CPU(22), DMAC(23), 및 내부버스(24)는 32비트 데이터가 전송될 수 있는 내부버스(29)를 통해 서로 접속되는 한편, CPU(22), DMAC(25), A/D 변환기(26), 및 제 1/제 2 직렬 인터페이스(27/28)은 16비트 데이터가 전송될 수 있는 내부버스(30)를 통해 서로 접속된다.
CPU(22)는 이들 내부버스(29/30)와 회로접속/접속해체를 제어하며 버스 제어기(31)를 포함한다. 내부버스(29/30)을 페치/양도하는 신호는 이들 내부버스(29/30)로/로부터 공급/얻어진다. 이 버스 제어기(31)는 내부버스(29/30) 중 어느 하나 또는 이들 모두가 DMAC(23)으로부터 보내진 2비트 요청신호 REQ 및 CPU(22)의 동작상태에 기초하여 양도되었는지 여부에 대해 판단한다. 이 2비트 요청신호는 내부버스(29/30) 중 어느 하나 또는 이들 모두를 양도하기 위한 요청을 나타낸다. 이어서, 버스 제어기(31)는 이 판단결과를 나타내는 승인신호 ACK를 DMAC(23)로 공급한다.
이제, 요청신호(REQ)의 값과 양도될 내부버스들(29/30)간의 관계에 대해 설명한다.
이 제 1 실시예에서, 요청신호(REQ)의 값이 0이 될 때, 이 요청신호는 내부버스(29, 30) 모두가 양도되지 않을 것을 요청하는 것이다. 마찬가지로, 요청신호(REQ)의 값이 1일 때, 이 요청신호는 내부버스(29)만이 양도될 것을 요청하는 것이다. 요청신호(REQ)의 값이 10일 때, 이 요청신호는 내부버스(30)만이 양도될 것을 요청하는 것이다. 요청신호(REQ)의 값이 11일 때, 이 요청신호는 내부버스(29, 30) 모두가 양도될 것을 요청하는 것이다.
4비트 내부요청 신호(IREQ) 및 4비트 외부 요청신호(EREQ) 등에 응답하여, DMAC(23)은 상기 기술된 요청신호(REQ)를 출력하여 이 출력된 요청신호(REQ)를 버스 제어기(31)로 공급한다. 4-비트 내부 요청신호(IREQ)는 내부버스(29 및 30)의 양도를 요청하기 위해서 내부버스 신호(IREQ0내지 IREQ3)로 구성되며, 이들 내부 요청신호는 타이머(25)와 같은 4개의 I/O 장치로부터 공급된다. 4-비트 외부 요청신호(EREQ)는 내부버스(29, 30)가 양도될 것이 요청되었음을 나타낸 것으로 외부 신호원으로부터 공급된다. 또한, 승인신호(ACK)는 버스 제어기(31)로부터 DMAC(23)로 공급되기 때문에, 이 DMAC(23)는 내부 메모리(24) 및 타이머(25)와 같은 이들 I/O 장치간데이터의 DMA-전송 동작, 또는 내부 메모리(24)의 각각의 어드레스간 DAM-전송 동작을 제어한다.
버스 제어기는 내부 메모리(24) 및 타이머(25)와 같은 I/O 장치 내에 제공되어 있음에 유념해야 한다. 버스 제어기는 내부버스(29)나 내부버스(30)와 각각의 I/O 장치간 접속/접속해제를 제어한다. 요청신호(REQ)의 값이 0일 때, CPU(22)는 모든 버스 제어기를 제어한다. 요청신호(REQ)의 값이 0 이외의 어떤 값이 될 때, DMAC(23)은 CPU(22) 내에 채용된 버스 제어기(31)를 포함하는 모든 버스 제어기를 제어한다.
DMAC의 내부 구성
상기 기술된 DMAC(23)의 내부구성을 도 2 내지 도 7을 참조하여 설명한다. DMAC(23)는 주로 채널 제어부(32), 데이터 제어부(33), 어드레스 제어부(34), 및 DMA 제어 레지스터(35)로 구성된다.
도 3에 도시한 바와 같이, 채널 제어부(32)는 주로 OR 게이트(36), 우선순위 인코더(37), 및 DMA 사이클 시퀀서(38)로 구성된다.
4비트 내부 요청신호(IREQ), 4비트 외부 요청신호(EREQ), 및 DMA 제어 레지스터(33)로부터 공급된 4비트 소프트웨어 요청신호(SREQ)는 이 OR 게이트(36)로 입력된다. OR 게이트(36)은 이들 입력신호를 OR 게이트하여 우선순위 인코더(37)에 공급할 4비트 버스 요청신호(BREQ)를 출력한다.
OR 게이트(36)로부터 공급된 버스 요청신호(BREQ)에 기초하여, 우선순위 인코더(37)는 4비트 채널 유효 신호(TCA)를 출력하여, 이 4비트 채널 유효 신호(TCA)를 DMA 제어 레지스터(35) 및 DMA 사이클 시퀀서(38)로 공급한다. 버스 요청신호(BREQ)의 각각의 비트(BREQ0내지 BREQ3)와 DMA 제어 레지스터(35)를 구성하는 4개의 채널 번호(다음에 설명함)간에 도 4에 도시한 관계가 설정될 수 있으므로, 상기 4비트 채널 유효 신호(TCA)의 각각의 비트(TCA0내지 TCA3)는 버스 요청신호(BREQ)의 각각의 비트(BREQ0내지 BREQ3)을 이하 언급되는 식(1) 내지 식(4)에 대입하여 생성된다.
TCA0= BREQ0(1)
TCA1= (/BREQ0) BREQ1(2)
TCA2= (/BREQ0) (/BREQ0)BREQ2(3)
TCA3= (/BREQ0) (/BREQ1)(/BREQ2)BREQ3(4)
상기 기술된 식(1) 내지 식(4)에서, 기호 /이 없는 비트는 1의 값, 즉 활성상태를 의미하며, 기호 1이 있는 비트는 0의 값, 즉 비활성 상태를 의미한다.
채널 유효 신호(TCA)는 DMA 사이클 시퀀서(38)로부터 공급된 채널 클리어 신호(CHC)에 의해 무효화될 수 있다. 우선순위 순서라는 용어는 제 0 채널(43) 내지 제 3 채널(46)간 채널 우선순위 순서를 의미함에 유념한다. 제 0 채널(43)은 가장 높은 우선순위를 가지며, 제 1 채널(44) 및 제 2 채널(45)은 가장 높은 우선순위보다 낮은 우선순위를 가지며, 제 3 채널(46)은 가장 낮은 우선순위를 갖는다. 결국, 내부 요청신호(IREEQ), 외부요청신호(EREQ), 및 소프트웨어 전송 요청 신호(SREQ)간엔 우선순위 순서는 없다. 즉, 제 1 신호는 가장 높은 우선순위를 갖는다. 대안으로, 우선순위는 이들 채널 각각에 대해 이들 신호간에 설정될 수도 있다.
채널 유효 신호(TCA)가 DMA 사이클 시퀀서(38)에 입력될 때, 이 DMA 사이클 시퀀서(38)는 3비트 어드레스 카운터 독출 스트로브(ACRS)를 DMA 제어 레지스터(35)로 공급하여, 채널 유효신호(TCA)에 의해 유효하게 된 DMA 제어 레지스터(35)의 채널로부터 공급되는 16비트 DMA 어드레스 신호(DMAD) 및 16비트 DMA 제어신호(DMC)를 수신하도록 한다. 각각의 DMA 어드레스 신호 및 DMA 제어신호의 내용에 응답하여, DMAC(23)은 여러 가지 제어를 수행하기 위한 DMA 사이클을 개시한다. 3비트 어드레스 카운터 독출 스트로브(ACRS)는 독출/기입 타이밍 신호를, DMA 제어 레지스터(35)(이하 기술함)의 각각의 채널을 구성하는 발신지 어드레스 레지스터, 수신지 어드레스 레지스터, 및 바이트 카운트 레지스터에 인가하는데 사용된다. DMA 어드레스 신호(DMAD)는 발신지 어드레스(SAD), 수신지 어드레스(DAD), 바이트 카운트값(BC) 등으로 구성된다. 발신지 어드레스(SAD)는 데이터 전송 발신지에 대응하는 내부메모리(24) 및 타이머와 같은 I/O 장치의 메모리 맵(이하 소스라 함) 상의 관계된 어드레스를 나타낸다. 수신지 어드레스(DAD)는 데이터 전송 수신지에 대응하는 내부 메모리(24) 및 타이머(25)와 같은 I/O 장치의 메모리 맵 상의 관계된 어드레스(이하 수신지라 함)를 나타낸다. DMA 제어신호(DMC)는 바이트 카운트값(BC)로부터 감해질 값 β, 및 변위값 α 등으로부터 구성된다. 이 변위값 α은 DMA 전송 동작이 한번 수행될 때마다 발신지 어드레스(SAD)의 바이트 및 수신지 어드레스(DAD)의 얼마나 많은 바이트를 갱신해야 하는 가를 나타낸다. 8비트 데이터가 전송될 때, 이 변위값 α은 1이되며, 16비트 데이터가 전송될 때, 이 변위값 α은 2가 된다. 32비트 데이터가 전송될 땐, 이 변위 값 α은 4가 된다.
DMA 사이클 시퀀스(38)는 DMA 신호(DAD)가 나타내는 발신지 어드레스(SAD) 및 수신지 어드레스(DAD)를 디코드하여, 어느 DAM 전송동작이 수행되는가를 판정한다. 이어서, 이 DMA 사이클 시퀀스(38)는 DMA 제어신호(DMC)가 나타내는 DMA 사이클(즉, 2 사이클 전송 또는 플라이바이 전송)에 의해 상기 판정에 응답하는 요청신호(REQ)를 CPU(22)의 버스 제어기(31)로 출력한다. 이어서, 인정신호(ACK)가 버스 제어기(31)로부터 공급될 때, DMA 사이클 시퀀서(38)는 데이터 제어 신호(DTC) 및 어드레스 제어신호(ADC)를 출력한다. 데이터 제어신호(DTC)는 내부 버스(29, 30)로의 데이터 입력/출력을 명령한다. 어드레스 제어신호는 내부버스(29, 30)으로의 어드레스 출력을 명령한다. DMA 사이클 시퀀서(38)는 출력된 데이터 제어신호(DTC) 및 출력된 어드레스 제어신호(ADC)를 데이터 제어부(33) 및 어드레스 제어부(34)에 각각 공급한다.
이 실시예에서, 2 사이클 전송이라는 용어는 2개의 버스 사이클, 즉 전송될 데이터가 발신지로부터 독출되는 1 사이클과 독출된 데이터가 수신지에 기입되는 1사이클이 발생하는 데이터 전송 모드를 의미한다. 플라이바이 전송이라는 용어는 일반적으로, 이 플라이바이 전송을 내부 메모리(24)와 외부 I/O 장치간에 데이터를 전송하는데 사용하며 DMA 전송이 1버스 사이클 내에 달성되는 데이터 전송모드를 의미한다.
또한, DMA 사이클 시퀀서(38)는 번위신호(DPL)로서 변위값 α 및 바이트 카운트값(BC)로부터 감해지는 값 β를 DMA 제어 레지스터(35)로 공급한다.
데이터 제어부의 내부구성
도 5에 도시한 바와 같이, 데이터 제어부(33)는 주로 데이터 버스 제어기(39), 데이터 래치(41), 및 버스 사이클 제어기(40)로 구성된다.
데이터 제어신호(DTC)에 응답하여, 데이터 버스 제어기(39)는 버스 사이클 제어신호(BCC) 및 데이터 래치 인에이블(DLE)를 출력하여 이 버스 사이클 제어 신호(BCC)를 버스 사이클 제어기(40) 및 데이터 래치(41)로 공급한다. 데이터 버스 제어기(39)로부터 공급된 버스 사이클 제어신호(BCC)에 응답하여, 버스 사이클 제어기(40)는 내부버스(29) 및 내부버스(30) 중 어느 하나 또는 이들 모두에 대해 버스 사이클을 개시하여, 내부버스(29) 및 내부버스(30) 중 어느 하나로부터 데이터 버스(42)를 통해 입력된 데이터를 데이터 래치(41)로 공급한다. 더욱이, 이 버스 사이클 제어기(39)는 이에, 데이터 래치(41)에 의해 래치된 데이터를 데이터 버스(42)를 통해 입력하고, 이어서 이 입력된 데이터를 내부버스(29) 및 내부버스(30) 중 어느 하나로 출력한다. 데이터 래치(41)는 데이터 버스 제어기(39)로부터 공급된 데이터 래치 인에이블(DLE)에 응답하여 데이터 버스(42)를 통해 버스 사이클 제어기(40)로부터 공급되는 데이터를 래치한다.
어드레스 제어부(34)는 어드레스를 내부버스(29, 30)을 채널 제어부(32)로부터 공급된 어드레스 제어신호(ADC)에 응답하여 출력한다.
DMA 제어 레지스터의 내부구성
도 6에 도시한 바와 같이, 상기 기술된 DMA 제어 레지스터(35)는 주로 4세트의 채널, 즉, 제 0 채널(43) 내지 제 3 채널(46); 2개의 선택기(47, 48); 및 가산/감산 장치(49)로 구성된다. 발신지 어드레스(SAD)와 같은 여러 가지 종류의 데이터는 CPU(22)의 제어하에서 제 3 채널(46)을 통해 제 0 채널(43)으로부터/로 내부버스(30)를 통해서 독출/기입될 수 있다. 제 0 채널(43)로부터 제 3 채널(46)로 출력된 DMA 어드레스 신호(DMAD0내지 DMAD3)는 선택기(47)로 입력된다. 이들 DMA 어드레스 신호 중에서, 채널 유효 신호(TCA)에 의해 선택된 어드레스 신호는 이 선택기(47)로부터 DMA 어드레스 신호(DMAD)로서 출력되며, 이어서 이 DMA 어드레스 신호(DMAD)는 채널 제어부(32) 및 가산/감산 장치(49)로 공급된다. 가산/감산 장치(49)는 선택기(47)로부터 공급된 DMA 어드레스 신호(DMAD) 및 채널 출력부(32)로부터 공급된 변위신호(DPL)를 가산/감산하여 계산결과(COUT)를 출력한다. 이 계산결과(COUNT)는 어드레스 카운터 독출 스트로브(ACR)의 하강엣지에서 대응하는 채널의 대응하는 레지스터에 기입된다. 또한, 제 0 채널(43)으로부터 제 3 채널(46)로 출력된 DMA 제어 신호(DMC0내지 DMC3)는 선택기(48)로 입력된다. 이들 DMA 제어신호 중에서, 채널 유효 신호(TCA)에 의해 선택된 제어신호는 이 선택기(48)로부터 DMA 제어신호(DMC)로서 출력되고, 이 DMA 제어신호(DMC)는 채널 제어부(32)로 공급된다. 더욱이, 제 0 채널(43)로부터 제 3 채널(46)으로 출력된 소프트웨어 전송 요청신호(SREQ0내지 SREQ3)은 직접 4비트 소프트웨어 전송 요청신호를 구성하며, 이 4비트 소프트웨어 전송 요청신호(SREQ)는 채널 제어부(32)로 공급된다.
제 0 채널의 내부구조
도 7에 도시한 바와 같이, 제 0 채널(43)은 주로 발신지 어드레스 레지스터(50), 수신지 어드레스 레지스터(51), 바이트 카운트 레지스터(52), 채널 제어 레지스터(53), 및 선택기(54)로 구성된다.
발신지 어드레스(SAD), 수신지 어드레스(DAD), 및 바이트 카운트값(BC)은 CPU(22)의 제어하에서, 발신지 어드레스 레지스터(50), 수신지 어드레스 레지스터(51), 및 바이트 카운트 레지스터(52) 중 어느 하나로부터/로 내부버스(30)를 통해 독출/기입될 수 있다. 제 0 채널(43)이 채널 유효 신호(TCA)에 의해 유효하게 된 경우, 선택기(54)는 레지스터(50 내지 52) 중에서 레지스터(이 경우 발신지 어드레스 레지스터(50)로 가정함)으로부터 공급된 신호(즉, 이 경우 발신지 어드레스(SAD))를 선택한 후 이 선택된 신호를 DMA 어드레스 신호(DMAD0)로서 출력한다. 이 레지스터는 어드레스 카운터 독출 스트로브(ACRS)의 활성상태 하에서 3비트에 대응한다. 결국, 이 DMA 어드레스 신호(DMAD0)는 DMA 어드레스 신호(DMAD)로서 출력된 선택기(47)에 의해서 다시 선택된다. 그후, 이 DMA 어드레스 신호(DMAD)는 가산/감산장치(49)에서, 채널 제어부(32)로부터 공급된 변위신호(DPL)에/로부터 가간/감산된다. 결국, 계산결과(COUT)는 어드레스 카운트 독출 스트로브(ACRS)의 하강엣지에서 제 0 채널(43)의 발신지 어드레스 레지스터(50)에 기입된다. 따라서, 발신지 어드레스(SAD) 및 다른 값들은 이러한 방식으로 갱신된다.
마찬가지로, 채널 제어 레지스터(53)에 등재된 내용은 CPU(22)의 제어하에서 내부버스(30)를 통해 변위값 α, 바이트 카운트값(BC)로부터 감해질 값 β, DMA 전송형태 및 모드, 스프트웨어 전송 요구가 독출/기입될 수 있다. 소프트웨어 전송 모드 이외의 이들 모든 등재된 내용은 선택기(48)로 공급될 채널 제어 레지스터(53)로부터 DMA 제어신호(DMC0)로서 출력된다. 이 경우, DMA 전송형태 및 모드 중에서 DMA 전송형태는 상기 기술된 2사이클 전송 및 플라이바이 전송을 의미한다. 또한, DMA 전송모드로서, 단일 전송모드, 단일 스텝 전송 모드, 및 블록 전송 모드가 있다. 단일 전송모드에서, DMA 전송 동작이 한번 달성될 때마다, DMAC(23)은 페치된 버스를 양도하고, DMA 사이클 시퀀서(38)는 채널 클리어 신호(CHC)를 출력한다. 단일 스텝 전송 모드에서, DMA 전송 동작이 한번 달성될 때마다, DMAC(23)은 상기 기술된 단일 전송 모드와 유사한 방식으로 페치된 버스를 양도한다. 더구나, 이 채널의 DMA 전송동작은 유효채널의 바이트 카운트값이 0이 때까지 수행된다. 바이트 카운트값이 0이될 때, DMA 사이클 시퀀서(38)는 채널 클리어 신호(CHC)를 출력한다.
블록 전송모드에서, DMAC(23)가 일단 DMA전송 요청을 받아들이면, DMAC(23)는 유효채널의 바이트 카운트값이 0이될 때까지 이 채널의 DMA 전송동작을 실행하며, 이 동안 현재의 채널보다 더 높은 우선순위를 갖는 채널에 대한 DMA 전송요구가 발행된 때라도, 현재의 채널은 변경되지 않고 또한 CPU의 바이트 사이클도 인터럽트되지 않는다. 바이트 카운트값이 0이될 때, DMA 사이클 시퀀서(38)는 채널 클리어 신호(CHC)를 출력한다.
소프트웨어 전송 요구는 소프트웨어 전송 요청 신호(SREQ0)로서, 다른 채널, 즉 제 1 채널(44) 내지 제 3 채널(46)로부터 공급된 소프트웨어 전송 요청신호(SREQ0내지 SREQ3)과 협동하여 4비트 소프트웨어 전송 요청 신호(SREQ)를 구성한다. 이어서, 이 소프트웨어 전송 요청신호(SREQ0)는 채널 제어부(32)로 공급된다.
선택신호의 모든 비트, 즉 채널 유효 신호(TCA) 및 어드레스 카운터 독출 스트로브(ACRS)가 비활성 상태에 있는 경우 에러 동작을 방지하기 위해서, 도 6 및 도 7에 도시한 3개의 선택기(47, 48, 54) 중 어느 하나가 모두 0인 비트를 갖는 신호를 출력함에 유념한다.
나머지 제 1 내지 제 3 채널(44 내지 46)이 구조는 실제적으로 상기 기술된 제 0 채널(43)의 구조와 동일하므로, 이에 대한 설명은 생략한다.
제 1 정보처리 장치의 동작
다음에, 상기 기술된 구성의 제 1 정보처리 장치의 여러 가지 동작을 설명한다. 먼저, 이 제 1 정보처리 장치의 메모리 맵의 구조는 도 8에 도시된 것으로 가정한다. 도 8에서, 어드레스 p 내지 q-1에 타이머가 할당되고, 어드레스 q 내지 (r-1)는 A/D 변환기(26)를 구성하기 위한 샘플링 메모리에 할당되고, 어드레스 r 내지 (s-1)엔 제 1 직렬 인터페이스(27)를 구성하기 위한 제 1 직렬 제어 레지스터가 할당된다. 또한 어드레스 s 내지 (t-1)엔 제 2 직렬 인터페이스(28)을 구성하기 위한 제 2 직렬 제어 레지스터가 할당되고, 어드레스 u 내지 FFFFFF엔 내부 메모리(24)가 할당된다.
다음에, 이 실시예에서, 다음과 같이 가정한다. 즉, 아날로그 신호는 디지털 신호로 변환되도록 선정된 주파수로 A/D 변환기(26)에 의해 샘플된다. 결과적인 Y-바이트 데이터는 2사이클 DMA 전송 모드 및 단일 스텝 DMA 전송모드에서 어드레스 X에 연이은 어드레스에 의해 지정된 내부 메모리(24)의 저장영역에 전송된다. 이 경우, A/D 변환기(26)에 의해 요청된 DMA 데이터 전송 동작은 두 번째로 높은 우선순위를 갖는 것으로 가정하고, DMA 제어 레지스터(35)를 구성하는 제 1 채널(44)이 할당된다. 더욱이, 이 경우, CPU(22)가 A/D 변환기(26)를 제어하기 시작하는 단계에서, 내부버스(29) 및 내부버스(30) 모두 CPU(22)에 의해 페치되고, 이들 버스 요청신호(BREQ) 중 어느 것도 활성상태로 되지 않는다고 또한 가정한다.
먼저, CPU(22)가 프로그램 실행 동안 코맨드 코드를 페치하고 이 코맨트 코드를 A/D 변환기(26)에 의해 아날로그 신호를 A/D변환하는데 사용할 때, 발신지로서 기능하는 A/D변환기(26)를 구성하는 샘플링 영역의 어드레스 q는 DMAC(23)의 DMA 제어 레지스터(35)로 내부버스(30)를 통해 발신지 어드레스로서 전송된다. 또한, 수신지로서 기능하는 내부 메모리(24)의 어드레스 X도 마찬가지로, DMAC(23)의 DMA 제어 레지스터(35)로 내부버스(30)를 통해 수신지 레지스터(35)로서 전송된다. 또한, 바이트 카운트값(BC)로서 전송될 데이터의 바이트 수 Y는 DMAC(23)의 DMA 제어 레지스터(35)로 내부버스(30)를 통해 전송된다. 또한, DMA 전송 모드의 형태 및 모드가 DMAC(23)의 DMA 제어 레지스터(35)로 내부버스(30)를 통해 전송될 때 2사이클 전송모드 및 단일 스텝 전송모드가 전송된다. 더욱이, 변위값 α 및 바이트 카운트값(BC)로부터 감해질 값 β는 DMAC(23)의 DMA 제어 레지스터(35)로 내부버스(30)를 통해 전송된다. 또한, 샘플링 동작 시작 코맨드는 A/D 변환기(26)로 내부버스(30)를 통해 발행된다.
결국, 제 1 채널(44)에서, 어드레스 q, 어드레스 X, 및 바이트 수 Y는 발신지 어드레스 레지스터(50), 발신지 어드레스 레지스터(51), 및 바이트 카운트 레지스터(52)에 기입되며, 변위값 α 및 바이트 카운트값(BC)로부터 감해질 값 β, DMA 전송형태(이 경우, 2사이클 전송형태), 및 DMA 전송모드(이 경우, 단일 스텝 전송 모드)은 채널 제어 레지스터(53)에 기입된다. A/D 변환기(26)가 CPU(22)로부터 내부버스(30)를 통해 샘플링 동작 시작 코맨드를 수신할 때, 이 A/D 변환기(26)는 입력된 아날로그 신호를 선정된 샘플링 주파수로 그에 대응하는 디지털 신호로 A/D 변환하여 Y-바이트의 디지털 데이터를 얻는다. 이 Y-바이트 데이터는 일단 내부 샘플링 메모리에 저장되며, 그 후 내부 요청신호(IREQ1)가 DMAC(23)에 공급된다.
따라서, 내부 요청신호(IREQ1)가 도 3에 도시한 OR 게이트(36)을 통해 버스 요청 신호(BREQ)로서 우선순위 인코더(37)에 공급되므로, 이 우선순위 인코더(37)는 이 경우 버스 요청 신호(BREQ)에 응답하여 상기 언급한 식(2)에 기초하여 제 1 채널(44)을 유효화할 수 있는 채널 유효 신호(TCA)를 출력한다. 이어서, 우선순위 인코더(37)는 상기 출력된 채널 유효 신호(TCA)를 DMA 제어 레지스터(35) 및 DMA 사이클 시퀀서(38)로 공급한다.
제 1 채널(44)을 유효하게 할 수 있는 채널 유효 신호(TCA)가 입력되었을 때, DMA 사이클 시퀀서(38)는 30비트의 어드레스 카운터 독출 스트로브(ACRS)를 DMA 제어 레지스터(35)로 공급한다. 결국, DMA 제어 레지스터(35)는 제 1 채널(44)에서, 발신지 어드레스 레지스터(50)로부터 공급된 발신지 어드레스(SAD), 수신지 어드레스 레지스터(51)로부터 공급된 수신지 어드레스(DAD), 및 바이트 카운트 레지스터(52)로부터 공급된 바이트 카운트값(BC)를 선택기(54)가 연속적으로 선택하도록, DMA 어드레스 신호(DMAD1)로서 선택된 신호를 DMA 사이클 시퀀서(38)로 출력한다. 더구나, 선택기(47, 48)는 제 1 채널(44)로부터 공급되는 DMA 어드레스 신호(DMAD1) 및 DMA 제어신호(DMC1)를 선택하여 이들 선택된 신호를 DMA 어드레스 신호(DMAD) 및 DMA 제어신호(DMC)로서 DMA 사이클 시퀀서(38)에 공급한다.
결국, DMA 사이클 시퀀서(38)는 발신지 어드레스(SAD) 및 DMA 어드레스 신호(DMAC)이 나타내는 수신지 어드레스(DAD)를 디코드하고, 이 DMA 사이클 시퀀서(38)는 그 데이터가 DMA 전송모드에서 A/D 변환기(26)로부터 내부 메모리(24)로 전송됨을 판단할 수 있다. 따라서, DMA 사이클 시퀀서(38)는 그에 대응하는 요청신호(REQ)를 DMA 제어 신호(DMC)가 나타내는 버스 사이클에서 CPU(22)의 버스 제어기(31)로 출력한다. 이 경우, DMA 사이클 시퀀서(38)는 11의 값을 갖는 요청신호(REQ)를 2사이클 전송모드에서 CPU(22)의 버스 제어기(31)로 출력한다. 11의 값을 갖는 이 요청신호(REQ)는 내부버스(29, 30)를 양도하는 것을 요청하는데 사용된다.
버스 제어기로부터 DMAC로 승인 신호 공급
도 9에 도시한 흐름도를 참조하여, 버스 제어기(31)로부터 DMAC(23)로 승인 신호(ACK)의 공급 동작에 대해 설명한다.
2비트 요청 신호(REQ)가 DMAC(23)로부터 공급된 때, 버스 제어기(31)는 단계 SP1에서, 상기 공급된 요청신호(REQ)의 값이 1인지 여부를 판단한다. 즉, 버스 제어기(31)는 내부버스(29)만 양도 요청되었는지 여부를 판단한다. 이 경우, 상기 공급된 요청신호(REQ)의 값이 11이므로, 단계 SP1에서 판정결과는 아니오로 되고, 공급 처리 동작은 다음 단계 SP2로 진행된다.
반대로, 상기 단계 SP1의 판정결과가 예인 경우, 즉 내부버스(29)만을 양도할 것이 요청된 경우, 처리 동작은 다른 단계 SP4로 진행된다.
한편, 버스 제어기(31)는 단계 SP2에서 요청신호(REQ)의 값이 10인지 여부를 판정한다. 즉, 버스 제어시(31)는 내부버스(30)만의 양도가 요청되었는지 여부를 판정한다. 이 경우, 상기 공급된 요청신호(REQ)의 값이 11이므로, 단계 SP2에서 판정결과는 아니오가 되고, 공급처리 동작은 다음 단계 SP3로 진행된다.
반대로, 상기 단계 SP2의 판정결과가 예인 경우, 즉 내부버스(30)만을 양도하는 것이 요청된 경우, 처리동작은 단계 SP4로 진행된다.
상기 기술된 단계 SP3에서, 버스 제어기(31)는 요청신호(REQ)의 값이 11인지 여부에 대해 판정한다. 즉, 버스 제어기(31)는 내부버스(29) 및 내부버스(30) 모두를 양도하는 것이 요청되었는지 여부에 대해 판정한다. 이 경우, 상기 공급된 요청신호(REQ)는 11이므로, 단계 SP3에서 판정결과는 예가 되고, 공급처리 동작은 상기 기술한 SP4로 진행된다.
반대로, 상기 단계 SP3의 판정결과가 아니오이면, 즉 내부버스(29)나 내부버스(30) 어느것도 양도될 것이 요청되지 않는 경우, 처리동작은 다른 단계 SP6로 진행된다.
단계 SP4에서, 버스 제어기(31)는 CPU(22)가 버스 사이클을 실행하고 있는지 여부를 체크한다. 즉, 버스 제어기(31)는 내부버스(29, 30)이 사용중에 있는지 여부를 체크한다. 이 판정결과가 예인 경우, 상기 설명한 판정은 반복해서 수행된다. 이어서, CPU(22)가 현재 실행되는 버스 사이클을 달성하여 버스 제어기(31)가 이 달성된 것을 확인한 때, 단계 SP4에서 판정결과는 아니오로 되고, 그후 처리동작은 단계 SP5로 진행된다.
한편, 버스 제어기(31)는 이러한 승인신호(ACK)를 비활성 상태로 유지하면서 승인 신호(ACK)를 DMAC(23)로 공급한다.
상기 기술된 동작에서, 단계 SP4에서 정해진 처리동작은 CPU 사이클 도용이라 하는 DMA 전송 시스템 중 하나에 관계된다. 그러나, 본 발명은 명백히 이러한 CPU 사이클 도용 시스템으로 한정되지 않는다. 대안으로, 예를 들면, 본 발명의 정보처리 장치는 내부 메모리(24)의 빈 시간을 이용하여 데이터가 전송되는 메모리 사이클 도용 시스템, 및 CPU(22)의 동작이 홀드 입력을 입력하여 정지되고, 데이터는 CPU(22)의 동작이 정지된 동안 전송되는 인터록 전송 시스템과 같은 다른 DMA 전송 시스템을 사용할 수도 있다.
그후, 버스 제어기(31)가 승인 신호(ACK)를 DMA 사이클 시퀀서(38)에 공급할 때, 이 DMA 사이클 시퀀서(38)는 내부버스(29) 및 내부버스(30)를 자유롭게 액세스할 수 있음을 인지할 수 있으므로 버스 제어기(31)를 제어하여 CPU(22)와 각각의 내부 버스(29, 30)간에 설정된 전자적인 접속을 해체시키도록 한다. 더욱이, DMA 사이클 시퀀서(38)는 내부 메모리(24), A/D 변환기(26) 및 내부버스(29, 30)을 각각 전기적으로 접속하기 위해서 각각의 내부메모리(24) 및 A/D 변환기(26)의 버스 제어기(상세히 도시되지 않았음)를 제어한다. 또한, DMA 사이클 시퀀서(38)는 데이터 제어신호(DTC), 및 데이터 제어부(33)와 어드레스 제어부(34) 각각에 공급될 어드레스 제어신호(ADC)를 출력한다. 이 데이터 제어신호(DTC)는 내부버스(29)로부터 데이터를 입력하고 데이터를 내부버스(30)로 출력하는 것을 명령하는데 사용된다. 또한, 이 어드레스 제어신호(ADC)는 수신지 어드레스(DAD)를 내부버스(29)로 출력하고 또한 발신지 어드레스(SAD)를 내부버스(30)로 출력하는 것을 명령하는데 사용된다.
DMA 전송동작 동안 제 1 채널의 동작
도 6, 도 7, 및 도 10에 도시한 타이밍도를 참조하여, DMA 전송 동작 동안의제 1 채널(44)의 동작을 설명한다. 이 실시예에서 이하 언급되는 바와 같이 가정한다. 즉, 도 10(5) 내지 도 10(7)에 도시한 바와 같이, 어드레스 q는 발신지 어드레스(SAD)로서 제 1 채널(44)의 발신지 어드레스 레지스터(50)에 설정된다. 어드레스 X는 수신지 어드레스 레지스터(51)에 수신지 어드레스(DAD)로서 설정된다. 바이트 수 Y는 바이트 카운트 레지스터(52)에 바이트 카운트값(BC)로서 설정된다. 이들 어드레스 q, 어드레스 X, 바이트 수 Y는 내부버스(30)를 통해 CPU(22)로부터 공급된다.
또한, 도 10(2) 내지 도 10(4)에 도시한 바와 같이, DMA 사이클 시퀀서(38)로부터 공급된 어드레스 카운트 독출 스트로브(ACRS)의 모든 비트(ACRS0내지 ACRS2)는 비활성상태로 설정되기 때문에, 도 10(8)에 도시한 바와 같이, 모든 비트가 0인 이러한 DMA 어드레스 신호(DMAD1)는 선택기(54)로부터 출력된다. 더욱이, A/D 변환기(26)에 의해 발행된 요청에 응답하여 DMA 전송 동작이 현재 수행되므로, 제 1 채널(44)를 유효화할 수 있는 채널 유효 신호(TCA)는 도 6에 도시한 선택기(47)에 입력되고, 선택기(47)는 출력될 DMA 어드레스 신호(DMAD1)를 선택한다.
클럭(CK)(도 10(1) 참조)에 동기된 어드레스 카운터 독출 스트로브(ACRS)가 그러한 상태하에서 DMA 사이클 시퀀서(38)에 공급될 때, 선택기(54)는 어드레스 q, 어드레스 X, 바이트 수 Y를 도 10(20) 내지 도 10(4)에 도시한 어드레스 카운터 독출 스트로브(ACRS)의 각각의 비트(ACRS0내지 ACRS2)의 상승엣지에 응답하여 연속적으로 선택한다. 이어서, 이 선택기(54)는 선택된 어드레스 및 바이트 수를 DMA 어드레스 신호(DMAD1)로서 출력한다(도 10(2) 참조).
결국, DMA 어드레스 신호(DMAD1)는 DMA 어드레스 신호(DMAD)로서 선택기(54, 47)를 통해 출력되며 그후 가산/감산 장치(49)에서 변위신호(DPL), 즉 채널 제어부(32)로부터 공급된 값 α 및 바이트 카운트값(BC)로부터 감해질 값 β로/로부터 연속적으로 가산/감산된다. 이 계산 결과로서, 계산 결과, 즉 q+α, X+α 및 Y-β는 도 10(2) 내지 도 10(4)에 도시한 어드레스 카운터 독출 스트로브(ACRS)의 각각의 비트(ACRS0내지 ACRS2)의 상승엣지에 도 10(5) 내지 도 10(7)에 나타낸 바와 같이, 발신지 어드레스 레지스터(50), 발신지 어드레스 레지스터(51), 및 바이트 카운트 레지스터(52)에 연속적으로 기입된다.
이어서, 도 10(2) 내지 도 10(4)에 나타낸 어드레스 카운터 독출 스트로브(ACRS)의 각각의 비트(ACRS0 내지 ACR2)의 다음 상승엣지에 응답하여, 선택기(54)는 새로운 어드레스 q+α, X+α 및 새로운 바이트 카운트값 Y-β을 선택하여 이들 선택된 값을 DMA 어드레스 신호(DMAD1)로서 출력한다(도 10(8) 참조)
전술한 바와 같이, 발신지 어드레스(SAD), 수신지 어드레스(DAD), 및 바이트 카운트값(BC)는 연속적으로 갱신되며, 갱신된 어드레스 및 값은 DMA 어드레스 신호(DMAD)로서 DMA 사이클 시퀀서(38)에 공급된다.
결국, 도 10(8)에 도시한 DMA 어드레스 신호(DMAD)이 DMA 사이클 시퀀서(38)에 공급될 때, 이 DMA 사이클 시퀀서(38)는 연속적으로 갱신되는 발신지 어드레스(SAD), 수신지 어드레스(DAD), 및 바이트 카운트값(BC)에 응답하여 데이터 제어 신호(DTC) 및 어드레스 제어 신호(ADC)를 출력한다. DMA 사이클 시퀀서(38)는 이들 데이터 제어 신호(DTC) 및 어드레스 제어신호(ADCC)를 데이터 제어부(33) 및 어드레스 제어부(34)에 공급한다.
결국, 어드레스 제어부(34)는 채널 제어부(32)로부터 연속적으로 공급된 어드레스 제어 신호(ADC)에 응답하여 내부버스(29, 30)을 통해 어드레스를 내부메모리(24) 및 A/D 변환기(26)에 출력한다. 따라서, 데이터 제어부(33)는 채널 제어부(32)로부터 연속적으로 공급된 데이터 제어신호(DTC)에 응답하여 내부버스(29, 30)에 관하여 버스 사이클를 개시하므로, 내부버스(30)를 통해 A/D 변환기(26)의 관련 어드레스로부터 입력된 데이터는 데이터 래치(41)에 의해 래치된다. 이어서, 이 래치된 데이터는 내부버스(29)를 통해 내부메모리(24)의 관련된 어드레스로 전송된다.
전술한 바와 같이, A/D 변환기(26)의 샘플링 메모리에 저장된 Y-바이트 데이터는 2사이클 전송형태 및 단일 스텝 전송 모드에서, 내부 버스(30), DMAC(23), 및 내부버스(29)를 통해 어드레스 X 다음의 어드레스에 정해진 내부메모리(24)의 저장영역에 DMA 전송된다.
단일 스텝 전송모드에서 DMA 전송동작
도 11은 상기 기술된 단일 스텝 전송모드에서 DMA 전송동작 동안 내부버스(29, 30)의 페치상태(BMS)와 다른 신호간 관계의 한 예를 나타낸 타이밍도이다. 도 11(2)에서, 참조부호 CPU 및 DMA는 관련된 버스 사이클에서, CPU(22)나 DMAC(23)이 양도 요청된 내부버스(29, 30) 중 어느 하나, 아니면 이들 내부버스(29, 30)를 페치하는 것을 나타낸 것이다. 이러한 의미는 도 12 및 도 14 내지 도 16에 도시한 다른 관계에서도 적용된다. 도 11로부터 명백한 바와 같이, 요청신호(즉, 이 경우 내부 요청신호(IREQ2))가 단일 스텝 전송모드에서 일단 공급될 때(도 11(1)) 참조), DMAC(23)은 DMA 전송동작이 한번 달성될 때마다 지금까지 페치되었던 내부버스(29, 30)을 양도한다. 채널 유효 신호(TCA)의 비트(TCA1)는 유효하게 된 제 1 채널(44)의 바이트 카운트값(BC)가 0이 될 때까지 활성상태에 있다(도 11(4)). 제 1 채널(44)의 DMA 전송동작이 계속되어 이에 따라 바이트 카운트값(BC)가 0이 될 때, DMA 사이클 시퀀서(38)는 채널 클리어 신호(CHC)를 출력한다(도 11(3) 참조). 결국, 채널 유효신호(TCA)는 무효화되고, 비트(TCA2)가 비활성 상태로 된다(도 11(4) 참조). CPU(22)는 요청신호가 활성상태에 있을 동안엔 내부버스(29, 30)을 사용하지 않으며, DMA 전송 동작은 계속적으로 수행됨에 유념한다. 이 동작은 도 12, 및 도 14 내지 도 16에도 마찬가지로 적용된다.
단일 전송모드에서 DMA 전송동작
도 12는 단일 전송모드에서 DMA 전송동작 동안 내부버스(29, 30)의 페치상태(BMS)와 다른 신호간 관계의 한 예를 나타내는 타이밍도이다. 이 단일 전송모드에서, 일단 요청신호(즉, 이 경우 내부 요청신호(IREQ1)가 공급되면(도 12(1) 참조), DMAC(23)은 DMA 전송동작이 한번 달성될 때마다 지금까지 페치되었던 내부버스(29, 30)를 양도하며, DMA 사이클 시퀀서(38)는 채널 클리어 신호(CHC)를 출력한다. 요청신호가 비활성 상태로 된 후에, 동일 요청신호가 다시 활성상태로 될 때(도 12(1) 참조), DMAC(23)은 내부버스(29, 30)을 페치하여 DMA 전송동작을 실행한다.
상기 기술한 동작에서, 내부 요청신호는 단일 I/O 장치로부터 DMAC(23)로 입력된다. 다음에, 복수의 내부 요청신호(IREQ), 외부 요청신호(EREQ), 또는 소프트웨어 전송 요청신호(SREQ)가 DMAC(23)에 입력되는 경우에 여러 가지 동작을 기술하겠다.
상기 기술된 내부 요청신호(IREQ), 외부 요청신호(EREQ), 및 소프트웨어 전송 요청신호(SREQ)는 DMAC(23)를 구성하는 채널 제어부(32)의 OR 게이트(36)에 의해 OR 게이트되어, 우선순위 인코더(37)에 공급될 4비트 버스 요청신호(BREQ)를 출력한다(도 3참조). 버스 요청신호(BREQ)의 각각의 비트(BREQ0내지 BREQ3)는 제 3 채널(46)를 통해 제 0 채널(43)에 대응함에 유념한다. 제 0 채널(43)은 가장 높은 우선순위를 가지며, 제 1 채널(44)은 두 번째로 높은 우선순위를 가지며, 제 2 채널(45)은 세 번째로 높은 우선순위를 가지며, 더욱이, 제 2 채널은 가장 낮은 우선순위를 갖는다. 결국, 도 13(1) 내지 도 13(4)에 나타낸 바와 같이, 버스 요청신호(BREQ)의 각각의 비트(BREQ0내지 BREQ3)가 변경될 때, 우선순위 인코더(37)는 도 13(5) 내지 도 13(8)에 도시한 바와 같이 상기 기술된 우선순위 순서에 따라 채널 유효 신호(TCA)의 각각의 비트(TCA0내지 TCA3)를 변경하고 이 변경된 비트를 갖는 채널 유효 신호(TCA)를 출력한다.
즉, 제 0 채널(43)은 가장 높은 우선순위를 가지고 있으므로, 버스 요청신호(BREQ)의 비트(BREQ0)의 변경은 버스 요청신호(BREQ)의 비트(TCA0)의 비트(TCA0)의 변경과 같다. 즉, 버스 요청신호(BREQ)의 비트(BREQ0)에 대응하는 요청신호를 출력하는 I/O 장치 및 다른 장치는 요청을 완전하게 만족하는 DMA 전송동작을 수행할 수 있다.
또한, 제 1 채널은 제 2 우선순위를 가지므로, 버스 요청신호(BREQ)의 비트(BREQ0)의 변경은 비트(BREQ0)가 활성상태에 있지 않는 부분에 대해서만 채널 유효 신호(TCA)의 비트(TCA0)의 변경과 같다. 즉, 버스 요청신호(BREQ)의 비트(BREQ3)에 대응하는 요청신호를 출력하는 I/O 장치 및 다른 장치는 실제적으로 요청을 만족하는 DMA 전송동작을 수행할 수 있다. 이어서, 가장 낮은 우선순위를 갖는 요청신호를 출력하는 I/O 장치 및 다른 장치는 우선순위 순서를 낮추어 가므로 요청을 만족하는 DMA 전송동작을 수행할 수 있다.
도 13(9)에 도시한 채널 클리어 신호(CHC)는 DMA 사이클 시퀀서(38)가 단일 스텝 전송 모드 및 블록 전송 모드에서 관련된 채널에서 바이트 카운트 레지스터(52)의 바이트 카운트값(BC)를 판정함으로써 관련된 채널에서 DMA 전송동작이 완료되기 바로전에 출력됨에 유념한다. 예를 들면, 바이트 카운트값(BC)의 값이 +1과 같은 경우, DMA 전송 동작이 어떤 버스 사이클에서 한번 종료될 때, DMA 사이클 시퀀서(38)는 다음 버스 사이클에서 동작을 위한 DMA 전송동안 DMA 전송동작이 달성됨을 판정할 수 있다.
버스 요청신호의 활성상태 하에서 단일 전송 모드에서 DMA 전송동작
도 14는 버스 요청신호(BREQ)의 비트(BREQ0) 및 비트(BREQ3)이 활성상태로 설정되는 경우 단일 전송모드에서 DMA 전송 동작 동안 내부버스(29, 30)의 페치상태(BMS)와 다른 신호간의 관계의 한 예를 나타낸 타이밍도이다. 타이밍도로부터 알 수 있듯이, 버스 요청신호(BREQ)의 비트(BREQ3)만이 시간 구간T1에서 활성상태에 있기 때문에, 이 비트(BREQ3)에 대응하는 채널 유효신호(TCA)의 비트(TCA3)는 DMA 전송동작이 1번 수행될 때마다 활성상태로 되며, 비트(BREQ3)에 대응하는 요청신호가 공급되는 장치는 DMA 전송동작을 수행할 수 있다. 그러나, 비트(BREQ3)가 활성상태에 있는 동안인 시간 구간(T2) 내의 시간 구간(T21)에서, 더 높은 우선순위를 갖는 비트(BREQ3) 역시 활성상태에 있기 때문에, 비트(BREQ0)에 대응하는 채널 유효 신호(TCA)의 비트(TCA0)는 DMA 전송동작이 한번 수행될 때만다 활성상태로 된다. 이어서, 비트(BREQ0)에 대응하는 요청신호가 공급되는 장치는 가장 높은 우선순위를 가지면서, DMA 전송동작을 수행한다. 이어서, 나머지 구간(T22)에서 비트(BREQ0)만이 활성상태에 있으므로, 비트(BREQ3)에 대응하는 채널 유효 신호(TCA)의 비트(TCA3)는 DMA 전송동작이 한번 수행될 때마다 활성상태로 되므로, 이에 따라 비트(BREQ3)에 대응하는 요청신호가 공급되는 장치는 DMA 전송동작을 수행할 수 있다.
버스 요청신호의 활성상태 동안 단일 스텝 전송모드에서 DMA 전송 동작
도 15는 버스 요청신호(BREQ)의 비트(BREQ0) 및 비트(BREQ3)이 활성상태로 설정되는 경우 단일 스텝 전송모드에서 DMA 전송 동작 동안 내부버스(29, 30)의 페치상태(BMS)와 다른 신호간의 관계의 한 예를 나타낸 타이밍도이다. 타이밍도로부터 알 수 있듯이, 시간 구간 T1에서, 비트(BREQ3)은 활성상태로 일단 설정되었으며, 비트(BREQ3)에 대응하는 채널 유효신호(TCA)의 비트(TCA3)의 활성상태가 유지된다. 결국, DMAC(23)는 DMA 전송동작이 한번 달성될때마다 내부버스(29, 30)을 양도한다. 그러나, 비트(BREQ3)에 대응하는 요청신호가 공급되는 장치는 DMA 전송동작을 연속적으로 수행할 수 있다.
그러나, 시간 구간(T2)에서, 높은 우선순위를 갖는 비트(BREQ3)이 일단 활성상태로 되기 때문에, 비트(BREQ0)에 대응하는 채널 유효 신호(TCA)의 비트(TCA0)는 제 0 채널(43)의 바이트 카운트값(BC)이 0이 될 때까지 그 활성상태를 유지하며, 더욱이, DMAC(23)는 DMA 전송동작이 한번 수행될 때마다 내부버스(29, 30)을 양도한다. 비트(BREQ0)에 대응하는 요청신호가 공급되는 장치는 DMA 전송동작을 계속한다. 이어서, 관계된 바이트 카운트 값(BC)가 0일 때, DMA 사이클 시퀀서(38)는 채널 클리어 신호(CHC)를 출력하기 때문에(도 15(4) 참조), 채널 유효 신호(TCA)는 무효화되고 비트(TCA0)는 비활성 상태로 된다(도 15(5) 참조).
결국, 제 3 채널(46)의 바이트 카운트 값(BC)는 시간 구간(T3)에서 아직 0이되지 않았기 때문에, DMA 사이클 시퀀서(38)는 요청신호(REQ)를 버스 제어기(31)에 다시 공급하므로, 이 DMA 사이클 시퀀서(38)는 내부버스(29, 30)을 다시 페치하기 위해서 버스 제어기(31)로부터 승인 신호(ACK)를 수신한다. 그후, DMA 사이클 시퀀서(38)는 제 3 채널(46)의 바이트 카운트값(BC)가 0일 때까지, 비트(BREQ3)에 대응하는 채널 유효 신호(TCA)의 비트(TSA3)이 활성상태로 설정되게 한다.
결국, 비트(BREQ3)에 대응하는 요청신호가 공급되는 장치는 비트(TSA3)이 활성상태에 있는 시간 구간 내에서 DMA 전송 동작을 수행할 수 있다.
버스 요청신호의 활성상태 하에서 블록 전송모드에서 DMA 전송동작
도 16은 버스 요청신호(BREQ)의 비트(BREQ0) 및 비트(BREQ3)이 활성상태로 설정되는 경우 블록 전송모드에서 DMA 전송 동작 동안 내부버스(29, 30)의 페치상태(BMS)와 다른 신호간의 관계의 한 예를 나타낸 타이밍도이다. 이 타이밍도로부터 알 수 있듯이, 시간 구간(T1)에서, 비트(BREQ3)은 활성상태로 사전에 설정되었으므로, 상기 기술한 비트(BREQ3)보다 높은 우선순위를 갖는 비트(BREQ0)이 활성상태로 될 때에도, 비트(BREQ3)에 대응하는 채널 유효신호(TCA)는 제 3 채널(46)의 바이트 카운트값(BC)가 0이 될 때까지 그 활성상태를 유지한다. 결국, DMAC(23)는 내부버스(29, 30)를 양도하지 않으며, 비트(BREQ3)에 대응하는 요청신호가 공급되는 장치는 DMA 전송동작을 연속적으로 수행할 수 있다. 이어서, 이 바이트 카운트값(BC)이 0될 때, DMA 사이클 시퀀스(38)가 채널 클리어 신호(CHC)를 출력하기 때문에(도 16(4)), 채널 유효신호는 무효화되고 비트(TCA3)은 비활성상태로 된다(도 16(6) 참조).
다음에, 시간 구간(T2)에서, 비트(BREQ0)이 일단 활성상태로 되었기 때문에, DMAC(23)는 비트(BREQ0)에 대응하는 채널 유효 신호(TCA)의 비트(TCA0)를 내부버스(29, 30)을 양도하지 않고 활성상태로 즉시 설정한다. 이어서, DMAC(23)은 제 0 채널(43)의 바이트 카운트값(BC)이 0으로 될 때까지 이 활성상태를 유지하며, 비트(BREQ3)에 대응하는 요청신호가 공급되는 장치는 DMA 전송동작을 연속적으로 수행할 수 있다.
제 2 정보처리 장치의 전체 구성
도 17은 본 발명의 제 2 실시예에 따른 정보처리 장치의 전체 구성을 나타낸 개략적인 블록도이다. 도 1에 도시한 동일 참조부호는 도 17에 도시한 동일 또는 유사한 구성요소를 나타낸 것로서 사용될 것임에 유념한다.
이 도면에 나타낸 바와 같이, 이 제 2 정보처리 장치(61)은 CPU(중앙 처리부)(62), DMAC(다이렉트 메모리 액세스 제어기)(63), 내부버스(24), 타이머(25), A/D(아날로그 디지털)변환기(26), 제 1 및 제 2 직렬 인터페이스(27/28), 및 2개의 내부 버스(29/30), 및 외부 버스 제어기(64)로 구성된다. 이들 구성요소는 하나의 반도체 칩, 즉 단일칩 마이크로컴퓨터로 제조된다. CPU(62), DMAC(63), 및 내부버스(24)는 내부버스(29)를 통해 서로 접속되는 한편, CPU(62), DMAC(63), 타이머(25), A/D 변환기(26), 및 제 1/제 2 직렬 인터페이스(27/28)은 내부버스(30)를 통해 서로 접속된다.
CPU(22)는 제 1 어드레스 버스(ABS 1) 및 제 1 데이터 버스(DBS 1)을 통해 외부 버스 제어기(64)에 접속된다. 제 1 데이터 액세스 제어 신호(DACK 1)는 CPU(62)로부터 외부 버스 제어기(64)로 공급되는 한편, 제 1 데이터 승인 신호(DACK 1)는 외부 버스 제어기(64)로부터 CPU(62)로 공급된다. 제 1 데이터 액세스 제어신호(DAC 1)에 기초하여, 외부 버스 제어기(64)는 외부 버스(시스템 버스)(65)에 여러 가지 종류의 버스 사이클을 출력한다. 제 1 데이터 승인 신호(DACK 1)는 데이터 전송 동작이 허용되었음을 나타낸다.
DMAC(63)은 제 2 어드레스 버스(ABS 2) 및 제 2 데이터 버스(DBS 2)를 통해 외부버스 제어기(64)에 접속된다. 제 2 데이터 액세스 제어신호(DAC 2)는 DMAC(63)으로부터 외부 버스 제어기(64)로 공급되는 한편, 제 2 데이터 승인 신호(DACK 2)는 외부 버스 제어기(64)로부터 DMAC(63)으로 공급된다. 제 2 데이터 액세스 제어신호(DAC 2)에 기초하여, 외부 버스 제어기(64)는 외부버스(시스템 버스)(65)에 여러 가지 종류의 버스 사이클을 출력한다. 제 2 데이터 승인 신호(DACK 2)는 데이터 전송 동작이 허용됨었음을 나타낸다.
또한, 외부 버스(25)는 외부 버스 제어기(64)를 통해 상기 제 2 정보처리 장치(61)에 접속된다. 제 1 및 제 2 외부 메모리(66, 67), 및 제 1 및 제 2 병렬 인터페이스(68, 69)는 이 외부버스(65)에 접속된다. 더욱이, 프린터(70)은 제 2 직렬 인터페이스(28)를 통해 제 2 정보처리 장치(61)에 접속된다. 프린터(70)는 직렬 인터페이스(71) 및 프린팅 모듈(72)를 포함한다. 8비트 직렬 데이터는 제 2 직렬 인터페이스(28) 및 직렬 인터페이스(71)를 통해 직렬 클럭 SCK와 협동하여 상기 프린터(70)에 공급된다. 이 8비트 직렬 데이터는 직렬 인터페이스(71) 내에 제공된 직렬 제어 레지스터(상세히 도시되지 않음)에 임시로 저정된 후 프린트 출력되도록 프린트 모듈(72)에 공급된다.
CPU(62)는 이들 내부버스(29/30)과의 회로접속/접속해체를 제어하며 버스 제어기(73)를 포함한다. 내부버스(29/30)을 페치/양도하는 신호 및 외부버스(65)는 버스 제어기(73)로/로부터 공급/얻어진다. 이 버스 제어기(73)는 내부버스(29/30) 및 외부버스(65) 중 어느 하나가 DMAC(23)으로부터 보내진 2비트 내부 요청신호 INREQ, 외부 요청신호 EXREQ, 및 CPU(62)의 동작상태에 기초하여 양도되었는지 여부에 대해 판정한다. 이 2비트 내부 요청신호 INREQ는 내부버스(29/30) 중 어느 하나 또는 이들 모두를 양도하기 위한 요청을 나타낸다. 1비트 외부 요청신호 EXREQ는 외부버스(65)를 양도하기 위한 요청을 나타낸다. 이어서, 버스 제어기(73)는 상기 판정결과를 나타내는 2비트 내부 승인 신호 INACK 및 1비트 외부 승인 신호 EXACK를 DMAC(63)로 공급한다.
이 실시예에서, 상태 A는 CPU(62)가 내부버스(29/30)나 외부버스(65) 어느 것도 양도하지 않는 상태를 의미하는 것으로 상정한다. 상태 B는 CPU(62)가 내부버스(29)나 외부버스(30) 어느 하나를 양도하는 상태를 의미한다. 상태 C는 CPU(62)가 외부버스(29) 및 내부버스(30)를 모두 양도함을 의미한다. 상태 D는 CPU(62)가 외부번스(65)만을 양도함을 의미한다. 상태 E는 CPU(62)가 외부버스(65) 및 내부버스(29) 또는 내부버스(30) 중 어느 하나를 양도함을 의미한다. CPU(62)의 동작속도 때문에, CPU(62)가 내부버스(29/30), 및 외부버스(65) 중 어느 하나를 양도하는 성태는 없다는 것에 유념해야 한다. 또한, 상태 B와 상태 D간 상태 천이는 이러한 상태천이를 죤상태하에서 생각할 수 없기 때문에 설정되지 않는다. 더욱이, 상태 B와 상태 E간 천이는 소위 데드 록 현상의 발생을 야기하기 때문에, 이러한 천이는 금지된다.
이어서, 버스 제어기(73)는 내부 요청신호 INREQ의 각각의 비트값 INREQ0 및 INREQ1 및 외부 요청신호 EXREQ에 기초하여 상기 언급된 5개의 상태간에 상태 전송하는 방법을 판단한다.
도 18은 상기 기술한 5개의 상태의 천이, 2비트 내부 요청신호(INREQ)의 각각의 비트값(INREQ0 내지 INREQ1) 및 외부 요청신호(EXREQ)의 값간의 관계를 도시한 것이다. 도 18에서, 기호 /이 없는 비트는 1의 값, 즉 활성상태를 의미하며, 기호 1이 있는 비트는 0의 값, 즉 비활성 상태를 의미한다. 기호 +는 OR을 나타내며, 기호 ·는 AND를 나타낸다.
또한, 버스 제어기(73)는 외부 버스 제어기(64)에 데이터 선택 신호 DST를 공급한다. 이 데이터 선택 신호(DST)는 데이터가 외부 장치로부터 CPU(62) 또는 DMAC(63)로 전송되는지 여부에 대해 나타낸다. 예를 들면, 데이터 선택 신호(DST)의 값이 1일 때, 버스 제어기(73)는 DMAC(63)과 외부 장치간 데이터 전송을 명령한다. 데이터 선택 신호(DST)의 값이 0일 때, 버스 제어기(73)는 CPU(62)와 외부 장치간 데이터 전송을 명령한다.
4비트 내부 요청신호(IREQ), 및 4비트 외부 요청신호(EREQ) 등에 응답하여, DMAC(63)는 상기 기술한 내부 요청신호(INREQ) 및 외부 요청신호(EXREQ)를 출력하여 이들 출력된 내부/외부 요청 신호를 제어기(73)로 공급한다. 4비트 내부 요청신호(IREQ)는 내부버스(29, 30), 또는 외부버스(65)의 양도를 요청하기 위해 내부 요청신호(IREQ0내지 IREQ3)으로 구성되고, 이들 내부 요청신호는 타이머(25)와 같은 4개의 I/O 장치로부터 공급된다. 4비트 외부 요청신호(EREQ)는 내부버스(29, 30), 또는 외부버스(65)가 양도될 것을 요청받았다는 것을 나타내며 외부 신호소스로부터 공급된다. 또한, 내부 승인 신호(INACK), 또는 외부 승인 신호(EXACK)는 버스 제어기(73)로부터 DMAC(63)로 공급되기 때문에, 이 DMAC(63)는 내부 메모리(24) 및 타이머(25)와 같은 이들 I/O 장치간 데이터의 DMA-전송 동작, 또는 내부 메모리(24)의 각각의 어드레스들간에, 또는 내부 I/O 장치와 외부 I/O 장치간 데이터의 DMA-전송 동작을 제어한다.
버스 제어기는 내부 메모리(24) 및 타이머(25)와 같은 I/O 장치에 제공됨에 유념한다. 버스 제어기는 내부버스(29) 또는 내부버스(30)간 접속/접속해제를 제어한다. 내부 요청신호(INREQ)가 비활성 상태가 될 때, CPU(62)는 모든 버스 제어기를 제어한다. 내부 요청신호(INREQ)가 활성상태가 될 때, DMAC(63)는 CPU(62)에 채용된 버스 제어기(73)를 포함하는 모든 버스 제어기를 제어한다.
DMAC의 내부구성
상기 기술한 DMAC(63)의 내부 구성을 도 19를 참조하여 설명한다. 도 2에 도시한 동일 참조부호는 도 19의 동일하거나 유사한 구성요소를 나타내는 것으로서 사용됨에 유념하고 이에 대한 설명은 생략한다. 이 도면에서 DMAC(63)는 도 2에 도시한 채널 제어부(32), 데이터 제어부(33), 어드레스 제어부(34), 및 DMA 제어 레지스터(35)를 대신하여 채널 제어부(74), 데이터 제어부(75), 및 어드레스 제어부(76)를 새롭게 채용함으로써 구성된다.
도 20에 도시한 바와 같이, 채널 제어부(74)는 주로 OR 게이트(36), 우선순위 인코더(37), 및 DMA 사이클 시퀀서(77)로 구성된다. DMA 사이클 시퀀서(77) 이외의 이 채널 제어부(74)의 회로구성은 도 3에 도시한 채널 제어부(32)의 것들과 유사하므로, 이에 대한 설명은 생략한다.
채널 유효 신호(TCA)가 DMA 사이클 시퀀서(77)에 입력될 때, 이 DMA 사이클 시퀀서(77)는 DMA 어드레스 신호(DMAD) 및 채널 유효신호(TCA)에 의해 유효하게 된 DMA 제어 레지스터(35)의 채널로부터 DMA 제어신호(DMC)를 수신하기 위해서, 어드레스 카운터 독출 스트로브(ACRS)를 DMA 제어 레지스터(35)로 공급한다. 다음에, DMA 사이클 시퀀서(77)는 어느 DMA 전송 동작이 수행되는지를 판정하기 위해서 DMA 어드레스 신호(DMAD)가 나타내는 발신지 어드레스(SAD) 및 수신지 어드레스(DAD)를 디코드한다. 이어서, 이 DMA 사이클 시퀀서(77)는 DMA 제어 신호(DMC)가 나타내는 DMA 사이클에 의해 상기 판정에 응답하는 내부 요청신호(INREQ) 또는 외부 요청신호(EXREQ)를 CPU(62)의 버스 제어기(73)에 출력한다. 이어서, 내부 승인 신호(INACK) 또는 외부 승인 신호(EXACK)가 버스 제어기(73)로부터 공급될 때, DMA 사이클 시퀀서(77)는 데이터 제어신호(DTC) 및 어드레스 제어신호(ADC)를 출력한다. 데이터 제어신호(DTC)는 내부 버스(29, 30), 또는 외부 버스(65)로 데이터 입력/출력을 명령한다. 어드레스 제어신호(ADC)는 내부버스(29, 30), 또는 외부버스(65)로 어드레스 출력을 명령한다. DMA 사이클 시퀀서(77)는 출력된 데이터 제어신호(DTC) 및 출력된 어드레스 제어신호(ADC)를 데이터 제어부(75) 및 어드레스 제어부(76) 각각에 공급한다.
외부 승인 신호(EXACK)이 DMA 사이클 시퀀서(77)로 공급될 때, 이 DMA 사이클 시퀀서(77)는 제 2 데이터 액세스 제어신호(DAC 2)를 외부버스 제어기(64)에 공급한 후 데이터 제어신호(DTC) 및 어드레스 제어신호(ADC)를 출력하고, 외부 버스 제어기(64)로부터 제 2 데이터 승인 신호(DACK 2)까지 대기상태로 된다.
또한, DMA 사이클 시퀀서(77)는 변위값 α 및 바이트 카운트값(BC)로부터 감해질 값 β값을 변위신호 DPL로서 DMA 제어 레지스터(35)에 공급한다.
데이터 제어부(75)의 내부구성 및 어드레스 제어부(76)의 내부구성은 기본적으로 상기 기술한 데이터 제어부(33) 및 어드레스 제어부(34)의 내부구성과 유사하다. 더욱이, 제 2 데이터 버스(DBS 2) 및 제 2 어드레스 버스(ACS 2)에는 데이터 제어부(33) 및 어드레스 제어부(34)가 각각 새롭게 제공된다. 이들 버스(DBS 2 및 ABS 2)는 이들 버스(DBS 2/ABS 2)를 통해 외부 버스 제어기(64)에 상기 제어부(75/76)을 접속하는데 사용된다.
외부 버스 제어기의 내부구성
도 21에 도시한 바와 같이, 외부 버스 제어기(64)는 버스 사이클 제어기(78), 및 4 세트의 선택기(79 내지 82)로 구성된다.
CPU(62)로부터 제 1 어드레스 버스(ABS 1)를 통해 공급된 어드레스는 선택기(79)의 제 1 입력단자에 입력되고, DMAC(63)로부터 제 2 어드레스 버스(ABS 2)를 통해 공급된 어드레스는 이 선택기(79)의 제 2 입력단자에 입력되고, 이들 공급된 어드레스 중 어느 하나는 데이터 선택신호(DST)의 값에 대응하여 상기 선택기(79)로부터 공급된다. 선택기(80)의 제 1 입력/출력 단자는 제 1 데이터 버스(DBS 1)에 접속되고, 이 선택기(80)의 제 2 입력/출력단자는 제 2 데이터 버스(DBS 2)에 접속되며, 그의 제 3 입력/출력단자는 버스 사이클 제어기(78)에 접속된다. 데이터 선택 신호(DST)의 값에 응답하여, 버스 사이클 제어기(78)는 제 1 데이터 버스(DBS 1) 또는 제 2 데이터 버스(DBS 2)에 접속된다. 데이터 선택신호(DST)에 응답하여, 선택기(81)는 버스 사이클 제어기(78)로부터 얻어진 데이터 승인 신호(DACK)를 제 1 데이터 승인신호(DACK 1), 또는 제 2 데이터 승인 신호(DACK 2)로서 출력한다. 이어서, 제 1 데이터 승인신호(DACK 1) 또는 제 2 승인신호(DACK 2)는 CPU(62) 또는 DMAC(63)에 공급된다.
제 2 정보처리 장치의 동작
다음에, 상기 기술된 구성을 갖는 제 2 정보처리 장치의 여러 가지 동작을 설명한다. 먼저, 이 제 2 정보처리 장치의 메모리 맵의 구조는 도 22에 도시된 바와 같은 것으로 가정한다. 도 22에서, 어드레스 0 내지 p-1에 제 1 외부 메모리(66)이 할당되고, 어드레스 p 내지 (q-1)는 제 2 외부 메모리(67)에 할당되고, 어드레스 s 내지 (t-1)엔 제 2 직렬 인터페이스(28)를 구성하기 위한 제 2 직렬 제어 레지스터가 할당되며, 어드레스 u 내지 FFFFFF엔 내부 메모리(24)가 할당된다.
다음에, 이 실시예에서, 다음과 같이 가정한다. 즉, CPU(62)는 제 1 외부 메모리(66)에 저장된 프린터 제어프로그램을 실행하고, 일단 DMA는 제 2 외부 메모리(67)에 저장된 아웃라인 폰트를 내부 메모리(24)에 전송한다. 그후, 이 CPU(62)는 비트맵 데이터를 내부 메모리(24)로 확장한다. 마지막으로, CPU(62)는 제 2 직렬 인터페이스(28)를 통해 비트맵 데이터를 프린터(70)의 직렬 인터페이스(71)에 DMA 전송하여, 이 프린터(70)가 상기 확장된 비트맵 데이터에 응답하여 비트맵 데이터의 내용을 프린트 출력하도록 한다. 이 경우, CPU(62)가 프린터 제어를 시작하는 단계에서, 내부 버스(29/30)의 상태 및 외부버스(65)의 상태는 상태 A로서 인식되고, 버스 요청신호(BREQ)는 활성상태로 되지 않는다.
제 2 실시예에서 각각의 구성의 동작이 제 1 실시예의 구성과 유사할 때, 이에 대한 상세한 설명은 생략한다.
시스템 리셋을 양도한 후 CPU(62)가 제 1 외부 메모리(66)에 저장된 프린터 제어프로그램의 코맨드 코드를 페치할 때, CPU(62)는 프린터 제어를 시작한다. 먼저, CPU(62)는 제 2 외부 메모리(67)에 저장된 아웃라인 폰트를 내부 메모리(24)로 DMA 전송한다. 이 경우, CPU(62)는 발신지와 동일한 제 2 외부 메모리(67)의 어드레스 p를 발신지 어드레스(SAD)로서 내부버스(30)를 통해 DMAC(63)으로 전송한다. CPU(62)는 수신지와 동일한 내부 메모리(24)의 어드레스 u를 수신지 어드레스(DAD)로서 내부버스(30)를 통해 DMAC(63)으로 전송한다. CPU(62)는 내부버스(30)를 통해 DMAC(63)로 바이트 카운트값(BC)로서 전송되어야 하는 아웃라인 폰트 데이터의 크기에 대응하는 전송수를 전송한다. CPU(62)는 다른 소프트웨어 전송 요청, DMA 전송 동작의 형태/모드, 변위값 α 및 바이트 카운트값(BC)로부터 감해질 값 β를 내부버스(30)를 통해 DMAC(63)로 전송한다.
결국, DMAC(63)는 DMA 전송 동작이 제 2 외부 메모리(67)로부터 내부 메모리(24)로 수행되는 것을 판정하기 위해서 DMA 어드레스 신호(DMAC)가 나타내는 발신지 어드레스(SAD) 및 수신지 어드레스(DAD)를 디코드한다. 이어서, DMAC(63)은 외부 요청신호(EXREQ) 및 내부 요청신호(INREQ)를 판정결과에 기초하여 CPU(62)의 버스 제어기(73)로 공급한다. 이 경우, DMAC(63)는 내부버스(29) 및 외부버스(65)를 페치해야 하므로, DMAC(63)는 외부 요청신호(EXREQ) 및 내부 요청신호(INREQ)의 비트(INREQ0)를 활성상태로 설정하여, 도 18에 도시한 상태 A를 상태 E로 천이하게 하고, 내부 요청신호(INREQ)의 비트(INREQ1)를 비활성상태로 설정한다.
내부 요청신호(INREQ), 외부 요청신호(EXREQ), 및 DMAC(63)으로부터 공급된 CPU(62)의 동작상태에 기초하여, 버스 제어기(73)는 도 9에 도시한 흐름도의 경우와 같이 유사하게 판정한다. 그후, 내부버스(29) 및 외부버스(65)가 양도될 때, 이 버스 제어기(73)는 버스 양도를 나타내는 내부 승인 신호(INACK) 및 외부 승인신호(EXACK)를 DMAC(63)로 공급한다. 또한, 버스 제어기(73)은 1의 값을 갖는 데이터 선택신호(DST), 즉 DMAC(63)와 외부 장치간 실행되는 데이터 전송동작을 외부 버스 제어기(64)로 공급한다.
이어서, 내부 승인신호(INACK) 및 외부 승인신호(EXACK)가 버스 제어기(73)으로부터 공급될 때, DMAC(63)은 제 2 데이터 액세스 제어신호(DAC)를 외부 버스 제어기(64)로 공급한다.
제 2 데이터 승인 신호(DACK 2)가 외부 버스 제어기(64)로부터 공급될 때, 내부 버스(29) 및 외부버스(65)를 사용할 수 있으므로, DMAC(63)는 연속적으로 갱신된 독출 어드레스를 외부 버스 제어기(64) 및 외부 버스(65)르 통해 제 2 외부 메모리(67)로 공급하며, 연속적으로 갱신된 기입 어드레스를 내부버스(29)를 통해 내부 메모리(24)로 공급한다. 결국, DMAC(63)은 바이트 카운트값(BC)가 0일 될 때까지 내부버스(29)를 통해 내부 메모리(24)로 DMA 전송동작을 실행하기 위해서 외부 메모리(67)에 저장된 아웃라인 폰트를 외부버스(65) 및 외부 버스 제어기(64)를 통해 독출해낸다.
다음에, CPU(62)는 내부 메모리(24)에 비트맵 데이터를 확장하기 위해서 내부 메모리(24)에 저장된 아웃라인 폰트를 연다. 이 경우, 이 상태는 상태 A로서 취해진다.
CPU(62)의 상기 기술된 동작은 내부 메모리(24)의 각각의 어드레스들간의 데이터 전송 동작에 대응하므로, 이 데이터 전송동작은 DMA 전송모드에서 상기 CPU(62)의 어떠한 제어도 없이 수행될 수도 있다. 이 경우, 상기 기술된 상태 E는 단지 내부버스(29)만이 양도되는 상태 B로 천이된다. 이 경우, CPU(62)의 동작속도를 더욱 개선될 수 있다.
다음에, 내부 메모리(24)에 확장된 비트맵 데이터는 제 2 직렬 인터페이스(28)로 DMA 전송된다. 또한, 이 경우, CPU(62)는 비트맵 데이터가 저장된 발신지 어드레스로서 발신지에 대응하는 내부 메모리(24)의 어드레스를, 내부버스(30)를 통해 DMAC(63)로 전송한다. CPU(62)는 수신지와 동일한 제 2 직렬 인터페이스(28)를 구성하는 제 2 직렬 제어 레지스터의 어드레스 s를 수신지 어드레스(DAD)로서 내부버스(30)를 통해 DMAC(63)로 전송한다. CPU(62)는 바이트 카운트값(BC)로서 내부버스(30)를 통해 DMAC(63)로 전송되어야 하는 비트맵 데이터의 양에 대응하는 전송수를 전송한다. CPU(62)는 다른 소프트웨어 전송 요청, DMA 전송동작의 형태/모드, 변위값 α 및 바이트 카운트값(BC)로부터 감해질 값 β를 내부버스(30)를 통해 DMAC(63)로 전송한다.
결국, DMAC(63)은 DMA 전송 동작이 내부 메모리(24)로부터 제 2 직렬 인터페이스(28)로 수행되는 것을 판정하기 위해서 DMA 어드레스 신호(DMAC)가 나타내는 발신지 어드레스(SAD) 및 수신지 어드레스(DAD)를 디코드한다. 이어서, DMAC(63)은 내부 요청신호(INREQ)를 판정결과에 기초하여 CPU(62)의 버스 제어기(73)로 공급한다. 이 경우, DMAC(63)는 내부버스(29) 및 내부버스(30)를 페치해야 하므로, DMAC(63)는 내부 요청신호(INREQ)의 비트(INREQ0) 및 (INREQ1)를 활성상태로 설정하여, 도 18에 도시한 상태 B, 또는 상태 A를 상태 C로 천이하게 하고, 외부 요청신호(EXREQ)를 비활성상태로 설정한다.
내부 요청신호(INREQ), 외부 요청신호(EXREQ), 및 DMAC(63)으로부터 공급된 CPU(62)의 동작상태에 기초하여, 버스 제어기(73)는 도 9에 도시한 흐름도의 경우와 같이 유사하게 판정한다. 그후, 내부버스(29) 및 내부버스(30)가 양도될 때, 이 버스 제어기(73)는 버스 양도를 나타내는 내부 승인 신호(INACK) 및 외부 승인신호(EXACK)를 DMAC(63)로 공급한다.
내부 승인 신호(INACK) 및 외부 승인 신호(EXACK)가 버스 제어기(73)으로 공급될 때, 내부 버스(29) 및 외부버스(65)를 사용할 수 있으므로, DMAC(63)는 연속적으로 갱신된 독출 어드레스를 내부 버스(65)를 통해 내부 메모리(24)로 공급하며, 연속적으로 갱신된 기입 어드레스를 내부버스(30)를 통해 제 2 직렬 인터페이스(28)로 공급한다. 결국, DMAC(63)은 바이트 카운트값(BC)가 0일 될 때까지 내부버스(30)를 통해 제 2 직렬 인터페이스(28)로 DMA 전송동작을 실행하기 위해서 내부 메모리(24)에 저장된 비트맵 데이터를 내부 버스(29)를 통해 독출해낸다.
상기 설명한 제 2 실시예에서, 하나의 소프트웨어 전송 요청신호(SREQ)는 DMAC(63)에 입력된다. 복수의 내부 요청신호(IREQ), 복수의 외부요청신호(EREQ), 또는 복수의 소프트웨어 전송 요청신호(EREQ)가 DMAC(63)에 입력될 때, 그 우선순위에 따른 동작은 제 1 실시예의 경우와 유사하다. 그러므로, 제 2 실시예에 따른 동작의 상세한 설명은 생략한다. 제 2 실시예를 DMA 전송동작의 여러 가지 형태 및 그의 여러 가지 모드에서의 동작을 구체적으로 기술하지 않았어도, 이들 동작은 제 1 실시예의 경우와 유사하므로, 그 상세한 설명은 생략한다.
버스상태의 천이와 여러 가지 신호간 다양한 관계
도 23 내지 도 25에 나타낸 타이밍도를 참조하여, 내부 요청신호(INREQ)와 같은 여러 가지 신호와 여러 가지 버스상태의 천이간 관계에 대해 설명한다.
도 23은 내부버스(29, 30)을 이용하여 DMA 전송동작을 나타낸는 타이밍도이다. 즉, 도 23(8)에 도시한 바와 같이, DMAC(63)이 각각의 어드레스에 정의된 내부 메모리(24)의 저장영역간, 내부 메모리(24)와 각각의 내부 I/O 장치간, 또는 각각의 내부 I/O 장치들간 DMA 전송동작을 수행하는 경우, 이 DMAC(63)는 내부버스(29)나 외부버스(30)를 양도할 것을 요청받는다. 도 23(7)에 도시한 바와 같이, 내부버스의 점유상태는 상태 A, 상태 B, 및 상태 C간 천이될 것을 요청받는다.
결국, 상태 A, 상태 B, 및 상태 C간 내부버스의 점유상태를 천이하기 위해서, DMAC(63)은 외부 요청신호(EXREQ)를 비활성 상태로 설정하고 내부 요청신호(INREQ)의 각각의 비트(INREQ0및 INREQ1)을 활성상태나 비활성상태로 설정하고, 설정된 외부 요청신호(EXREQ) 및 설정된 내부 요청신호(INREQ)를 버스 제어기(73)로 공급한다(도 23(1), 도23(3) 및 도 23(5) 참조).
따라서, 버스 제어기(73)는 내부 요청신호(INREQ)의 각각의 비트(INREQ0및 INREQ1)의 상태 및 외부 요청신호(EXREQ)의 상태에 기초하여 어느 내부버스가 양도될 것을 요청받는다. DMAC(63)이 관련된 내부버스를 양도하게 한 경우, 이 버스 제어기(73)는 외부 승인 신호(EXACK)를 비활성 상태로 설정하고 버스 양도 허용을 나타내기 위해서 내부 승인 신호(INACK)의 각각의 비트(INCK0 및 INCK1)를 활성상태 또는 비활성상태로 설정한다. 이어서, 버스 제어기(73)는 설정된 외부 승인 신호(EXACK) 및 설정된 내부 승인 신호(INACK)를 DMAC(63)에 설정한다(도 23(2), 도 23(4) 및 도 23(6) 참조). 또한, 버스 제어기(73)은 데이터 선택신호(DST)를 비활성 상태로 설정하고, 이어서 설정된 데이터 선택 신호(DST)를 외부버스 제어기(63)에 설정한다(도 23(9) 참조).
도 24는 외부버스(65)를 주로 사용할 때 DMA 전송동작을 도시한 것이다. 즉, 도 24(8)에 도시한 바와 같이, DMAC(63)이 제 1/제 2 외부 메모리(66/67)와 외부 I/O 장치간; 제 1/제 2 외부 메모리(66/67)와 내부 메모리(24)간; 제 1/제 2 외부 메모리(66/67)와 내부 I/O 장치간; 또는 제 1 외부 메모리(66)와 제 2 외부 메모리(67)간 DMA 전송동작을 수행하는 경우, 이 DMAC(63)은 외부 버스(65), 및 내부버스(29)나 내부버스(30)를 양도할 것을 요청받는다. 도 24(7)에 도시한 바와 같이, 관련된 버스의 점유상태는 상태 A, 상태 D, 및 상태 E간 천이될 것을 요청받는다.
결국, 상태 A, 상태 D, 및 상태 E간 버스의 점유상태를 천이하기 위해서, DMAC(63)은 외부 요청신호(EXREQ)를 활성 상태로 설정하고 내부 요청신호(INREQ)의 각각의 비트(INREQ0및 INREQ1)을 활성상태나 비활성상태로 설정하고, 설정된 외부 요청신호(EXREQ) 및 설정된 내부 요청신호(INREQ)를 버스 제어기(73)로 공급한다(도 24(1), 도24(3) 및 도 24(5) 참조).
따라서, 버스 제어기(73)는 내부 요청신호(INREQ)의 각각의 비트(INREQ0및 INREQ1)의 상태 및 외부 요청신호(EXREQ)의 상태에 기초하여 어느 버스가 양도될 것을 요청받았는지 판정한다. DMAC(63)이 관련된 내부버스를 양도하게 한 경우, 이 버스 제어기(73)는 외부 승인 신호(EXACK)를 활성 상태로 설정하고 버스 양도 허용을 나타내기 위해서 내부 승인 신호(INACK)의 각각의 비트(INCK0및 INCK1)를 활성상태 또는 비활성상태로 설정한다. 이어서, 버스 제어기(73)는 설정된 외부 승인 신호(EXACK) 및 설정된 내부 승인 신호(INACK)를 DMAC(63)에 설정한다(도 24(2), 도 24(4) 및 도 24(6) 참조). 또한, 버스 제어기(73)는 데이터 선택신호(DST)를 활성 상태로 설정하고, 이어서 설정된 데이터 선택 신호(DST)를 외부버스 제어기(63)에 설정한다(도 24(9) 참조).
도 25는 내부버스(29, 30)를 사용할 때 DMA 전송동작을 도시한 것이다. 즉, 도 25(8)에 도시한 바와 같이, DMAC(63)이 제 1/제 2 외부 메모리(66/67)와 내부 메모리(24)간; 각각의 어드레스에 정의된 내부 메모리(24)의 저장영역들간; 내부 메모리(24)와 각각의 내부 I/O 장치간; 내부 I/O 장치들간; 제 1/제 2 외부 메모리(66/67)과 내부 I/O 장치간; 또는 제 1 외부 메모리(66)와 제 2 외부 메모리(67)간 DMA 전송동작을 수행하는 경우, 이 DMAC(63)은 외부 버스(65), 및 내부버스(29 및 30)를 양도할 것을 요청받는다. 도 25(7)에 도시한 바와 같이, 버스의 점유상태는 상태 A, 상태 B, 상태 C, 및 상태 E간 천이될 것을 요청받는다.
결국, 상태 A 내지 상태 E간 이들 버스의 점유상태를 천이하기 위해서, DMAC(63)은 외부 요청신호(EXREQ)를 활성 상태, 또는 비활성 상태로 설정하고, 내부 요청신호(INREQ)의 각각의 비트(INREQ0및 INREQ1)을 활성상태나 비활성상태로 설정하고, 설정된 외부 요청신호(EXREQ) 및 설정된 내부 요청신호(INREQ)를 버스 제어기(73)로 공급한다(도 25(1), 도25(3) 및 도 25(5) 참조).
따라서, 버스 제어기(73)는 내부 요청신호(INREQ)의 각각의 비트(INREQ0및 INREQ1)의 상태 및 외부 요청신호(EXREQ)의 상태에 기초하여 어느 버스가 양도될 것을 요청받았는지 판정한다. 버스 제어기(73)가 관련된 내부버스를 양도하게 한 경우, 이 버스 제어기(73)는 외부 승인 신호(EXACK)를 활성 상태 또는 비활성 상태로 설정하고 버스 양도허용을 나타내기 위해서 내부 승인 신호(INACK)의 각각의 비트(INCK0및 INCK1)를 활성상태 또는 비활성상태로 설정한다. 이어서, 버스 제어기(73)는 설정된 외부 승인 신호(EXACK) 및 설정된 내부 승인 신호(INACK)를 DMAC(63)에 설정한다(도 25(2), 도 25(4) 및 도 25(6) 참조).
또한, 버스 제어기(73)는 데이터 선택신호(DST)를 활성 상태 또는 비활성 상태로 설정하고, 이어서 설정된 데이터 선택 신호(DST)를 외부버스 제어기(64)에 설정한다(도 25(9) 참조).
제 3 정보처리 장치의 전체 구성
도 26은 본 발명의 제 1 실시예에 따라 정보처리 장치(91)의 전체 구성을 도시한 개략적인 블록도이다. 도 1에 도시한 동일 참조부호는 도 26에 도시한 동일하거나 유사한 구성요소를 나타낸 것들로서 사용될 것임에 유념한다. 이 도면에 도시한 제 3 정보처리 장치(91)에서, DMAC(다이렉트 메모리 액세스 제어기)(92) 및 내부버스(93)은 상기 설명한 DMAC(23) 및 도 1에 도시한 내부버스(30) 대산에 새롭게 제공되어 있다. 이 내부버스(93)는 32비트 데이터를 전송할 수 있으며, 내부버스(29)와 동일한 기능을 갖는다. 또한, 내부 메모리(24) 및 타이머(24)와 같은 I/O 장치의 입력/출력단자는 버스 브리지(94 내지 98)을 통해 내부버스(29, 93)에 접속된다. DMAC(92)는 상기 기술된 DMAC(23)와 동일한 기능 및 다음의 기능을 갖는다. 즉, DMA 전송동작을 시작하기 전에, DMAC(92)는 버스 브리지(94 내지 98)을 제어하기 위해서 5비트 버스 브리지 제어신호(BST)를 출력하여 내부메모리(24) 또는 타이머(24)와 같은 I/O 장치는 DMA 전송동작의 발신지 및 수신지에 따라 내부버스(29) 또는 내부버스(93)에 접속된다.
상기 설명한 구성을 사용함으로써, 제 3 정보처리 장치에 따라, CPU(22)의 동작속도는 더욱 증가될 수 있다. 상기 기술된 특정의 구성은 명백히 도 17에 도시한 제 2 정보처리 장치(61)에 적용될 수 있다. 즉, 2세트의 상기 설명한 내부버스는 동일 기능을 가지며, 버스 브리지(94 내지 98)는 내부 메모리(24)나 타이머(25)와 같은 I/O 장치를 내부 버스(29)나 내부 버스(93)에 접속하도록 제어된다.
본 발명을 도면을 참조하여 기술하였으나, 본 발명은 이들 구체적인 구성/구조로 한정되지 않으며, 본 발명의 정신 및 범위로부터 벗어남이 없이 수정, 변경, 또는 대치될 수 있다.
예를 들면, 본 발명은 상기 기술된 실시예에서 설명한 바와 같은 내부 I/O 장치의 종류 및 조합 및 외부 I/O 장치의 종류 및 조합으로 한정되지 않는다. 다른 종료 및 조합이 유사하게 채용될 수도 있다. 또한, 본 발명은 내부/외부 I/O 장치와 내부 버스 중 어느 것간의 상기 설명한 접속으로 한정되지 않는다.
또한, 제 2 실시예는 외부버스(65)가 외부 버스 제어기(64)를 통해 CPU(62)에 접속되어 내부버스(29/30) 및 외부버스(63)를 병렬방식으로 사용하도록 하는 예를 기술하고 있다. 명백히, 본 발명은 이러한 예로 한정되지 않는다. 대안으로, 예를 들면, 외부 버스 제어기는 내부버스(29)나 내부버스(30)를 내부 버스에 직렬방식으로 접속하도록 채용될 수도 있다.
더구나, 상기 기술한 실시예에서, 내부 요청신호(IREQ), 외부 요청신호(EREQ), 및 소프트웨어 전송 요청신호(SREQ)는 OR게이트(36)을 통해 버스 요청신호(BREQ)로서 도 3 및 도 20에 도시한 우선순위 인코더(37)에 공급된다. 결국, 우선순위 인코더(73)는 어느 종류의 요청신호가 공급되었는지를 판정할 수 없다. 본 발명은 이러한 회로구성으로 한정되지 않는다. 대안으로, 예를 들면, 우선순위 인코더는 별도로 내부 요청신호(IREQ), 외부 요청신호(EREQ), 및 소프트웨어 전송 요청신호(SREQ)에 설정될 수 있다. 복수의 상이한 종류의 요청신호가 선정된 시간 구간 내에 공급되는 이러한 대안 경우에, 더 높은 우선순위로 요청신호를 선택적으로 출력할 수 있는 선택수단은 OR 게이트(36) 대신에 제공될 수도 있다.
상기 기술된 실시예 중 어느 하나는 한 데이터 버스 모두를 페치하는 예를 기술하고 있다. 그러나, 본 발명은 이러한 예로 한정되지 않는다. 대안으로, 복수의 게이트에 각가의 데이터 버스가 제공될 수 있는 한편, CPU나 DMAC는 이들 복수의 게이트의 턴온/오프를 제어할 수 있다. 결국, DMAC는 DMA 전송동작을 수행하기 위해서 관련된 데이터 버스의 단지 필요한 부분만을 페치할 수도 있다. 도 1에 도시한 구성에 적용한 대안 예로서, 제 1 직렬 인터페이스(27)과 제 2 직렬 인터페이스(28)간에 DMA 전송동작이 수행될 때, 내부버스(30)를 가진 부분은 내부 메모리, 타이머(25), 및 A/D 변환기(26)가 접속되는 데에 사용되지 않기 때문에, 게이트는 A/D 변환기(26)와 제 1 직렬 인터페이스(27) 사이에 제공된다. 그러면, DMAC(23)는 이 게이트를 닫아 제 1 직렬 인터페이스(27) 및 제 2 직렬 인터페이스(28)가 접속되는 내부 버스(30)의 부분만을 페치함으로써, DMA 전송동작이 수행될 수 있는 한편, CPU(22)는 DMAC(23)에 의해 페치되지 않는 내부버스(30)의 다른 부분을 사용할 수 있다.
더욱이, 제 3 실시예는 요청신호(REQ) 및 승인 신호(ACK)가 CPU(22)와 DMAC(92)간에 보내지고/수신되는 예를 기술하고 있다. 예를 들면, 먼저, CPU(22)는 상기 설명한 요청신호(REQ) 및 승인신호(ACK) 대신에 내부 메모리(24) 및 타이머(25)와 같은 I/O 장치에 액체를 요청하기 위한 내부 버스 액세스 정보를 DMAC(92)에 공급한다. 결국, DMAC(92)는 CPU(22)에 의해 요청된 DMA 전송 동작의 소스에 응답하여 내부 버스 액세스 정보를 디코드하여 버스 브리지 제어신호(BST)를 출력함으로써, 버스 브리지(94 내지 98)는 동적으로 제어되어, DMA 전송동작을 제어하기 위해서 내부 메모리(24) 및 타이머와 같은 I/O 장치와 내부 버스(29/92)간 접속을 스위치하도록 한다.
또한, 상기 설명한 실시예에서, 각각의 정보처리 장치는 1칩 마이크로컴퓨터로 구성된다. 본 발명은 이러한 구조로 한정되지 않는다. 대안으로, CPU, DMAC, 메모리, 및 I/O 장치를 독립형 장치들로 대치할 수 있고 데이터 버스를 케이블로 구성할 수 있는 한편, 전체 정보 정치는 LAN(근거리 망)으로 구성될 수 있다.
더욱이, 상기 기술한 실시예에서 CPU와 DMAC간에 마스터/슬레이브 관계가 있다. 본 발명은 이러한 마스터/슬레이브 관계로 한정되지 않는다. 대안으로, DMAC는 소위 이중 CPU 구조를 구성하기 위해서 CPU로 대치될 수 있다. 또한, DMAC는 병령 데이터 처리를 달성하기 위해서 디지털 신호 프로세서(DSP)로 대치될 수도 있다.
더욱이, 상기 기술한 실시예는 2세트의 내부버스를 사용한다. 그러나, 본 발명은 이러한 버스구조로 제한되지 않는다. 대안으로, 적어도 2개 이상의 내부버스가 설치될 수도 있다.
전술한 바와 같이, 본 발명에 따라, 제 1 및 제 2 제어수단은 효과적으로 데이터 버스를 이용할 수 있기 때문에, 제 1 및 제 2 제어수단의 동작속도가 증가될 수 있으므로 전체 정보처리 장치의 처리능력이 개선될 수 있다.
이 정보처리 장치의 특정한 구성에 따라, 데이터 버스의 일부분이 점유될 수도 있다. 결국, 제 1 및 제 2 제어수단의 동작속도는 이들 데이터 버스의 전체 수를 증가시키지 않고서도 더욱 증가될 수 있다. 그러므로, 전체 정보처리 장치의 처리능력이 향상될 수 있다.
따라서, 본 발명은 상기 실시예로 한정되지 않고 본 발명의 범위 및 정신으로부터 벗어남이 없이 변경 및 수정될 수 있음이 명백하다.
마지막으로, 본 발명은 1997년 12월 22일 출원된 일본 특허 출원 번호 평-365909의 우선권을 주장하며, 이 출원건을 참고로 여기 포함시킨다.
Claims (46)
- 정보처리 장치에 있어서:서로로부터 독립적으로 제공된 적어도 제 1 및 제 2 데이터 버스;상기 제 1 및 제 2 버스 중 적어도 하나에 접속되어 데이터를 입력/출력하는 복수의 입력/출력수단;적어도 상기 제 1 데이터 버스를 점유하는 동안 상기 입력/출력수단의 상기 데이터 입력/출력동작을 제어하는 제 1 제어수단; 및적어도 상기 제 1 데이터 버스를 점유하는 동안 상기 입력/출력수단의 상기 데이터 입력/출력 동작을 제어하는 제 1 제어수단에 대해 상기 점유된 제 1 데이터 버스를 양도(release)할 것을 요청하며, 상기 제 1 제어수단에 의해 상기 제 1 데이터 버스의 양도에 응답하여 상기 제 2 데이터 버스, 또는 상기 제 1 및 제 2 데이터 버스를 점유하는 동안 상기 입력/출력수단의 상기 데이터 입력/출력동작을 제어하는 제 2 제어수단을 포함하는 정보처리 장치.
- 제 1 항에 있어서, 상기 제 1 및 제 2 데이터 버스, 상기 복수의 입력/출력 수단, 및 상기 제 1 및 제 2 제어수단은 1칩 마이크로컴퓨터의 형태로 단일 칩에 제조되는 정보처리 장치.
- 제 1 항에 있어서,우선순위는 상기 복수의 입력/출력 수단의 상기 데이터 입력/출력동작에 미리 설정되고;상기 미리 설정된 우선순위에 응답하여, 상기 제 2 제어수단은 상기 제 1 제어수단에 의해 점유된 적어도 상기 제 1 데이터 버스를 양도할 것을 상기 제 1 제어수단에 요청하며, 상기 제 1 제어수단에 의한 상기 제 1 데이터 버스의 양도에 응답하여 상기 제 2 데이터 버스를 점유하는 동안 상기 복수의 입력/출력 수단의 상기 데이터 입력/출력 동작을 제어하는 정보처리 장치.
- 제 3 항에 있어서,적어도 상기 제 1 데이터 버스를 점유하는 동안 상기 제 1 제어수단이 상기 입력/출력 수단의 상기 데이터 입력/출력 동작을 제어하며, 적어도 상기 제 2 데이터 버스를 점유하는 동안 상기 제 1 제어수단이 상기 제 2 제어수단으로 하여금 상기 입력/출력 수단의 상기 데이터 입력/출력 동작을 제어하게 할 때, 상기 제 1 제어수단은 상기 입력/출력 수단에서 실행될 데이터 입력/출력 제어에 관계된 정보를 상기 제 2 제어수단에 공급하며;상기 제 2 제어수단은 상기 공급된 정보에 기초하여 적어도 상기 제 1 데이터 버스를 양도할 것을 상기 제 1 제어수단에 요청하며, 상기 제 1 제어수단에 의한 제 1 데이터 버스 양도하는 것에 기초하여 적어도 상기 제 2 데이터 버스를 점유하는 동안 상기 입력/출력수단의 상기 데이터 입력/출력 동작을 제어하는 정보처리 장치.
- 제 1 항에 있어서, 데이터로서 컴퓨터 프로그램 및 외부소스가 입력/출력될 것을 요청받는 상기 입력/출력 수단으로부터 발행된 요청 중 하나에 응답하여, 상기 제 2 제어수단은 적어도 상기 제 1 데이터 버스를 양도할 것을 상기 제 1 제어수단에 요청하며, 상기 제 1 제어수단에 의한 상기 제 1 데이터 버스의 양도에 기초하여 적어도 상기 제 2 데이터 버스를 점유하는 동안 상기 입력/출력 수단의 상기 데이터 입력/출력 동작을 제어하는 정보처리 장치.
- 제 1 항에 있어서, 상기 제 1 제어수단 및 상지 제 2 제어수단 중 하나는 상기 제 1 및 제 2 데이터 버스 중 적어도 하나의 한 부분을 양도할 것을 상기 제 1 제어수단 및 상기 제 2 제어수단 중 다른 한 제어수단에 요청하며; 상기 제 1 제어수단 및 상지 제 2 제어수단 중 하나는 또한 상기 제 1 제어수단 및 상기 제 2 제어수단 중 상기 다른 한 제어수단에 의한 상기 제 1 및 제 2 데이터 버스 중 적어도 하나의 상기 부분의 양도에 기초하여 상기 제 1 및 제 2 데이터 버스 중 적어도 하나의 상기 부분을 점유하는 동안 상기 입력/출력 수단의 상기 데이터 입력/출력 동작을 제어하는 정보처리 장치.
- 제 1 항에 있어서, 적어도 상기 제 1 및 제 2 데이터 버스에 접속된 버스 접속수단을 더 포함함으로써, 상기 데이터를 입력/출력하기 위해서 상기 제 1 및 제 2 제어수단 중 하나에 의한 상기 버스 접속수단의 제어 하에 상기 버스 접속수단을 통해 상기 복수의 입력/출력 수단이 상기 제 1 및 제 2 데이터 버스 중 어느 하나에 접속되는 정보처리 장치.
- 제 1 항에 있어서, 상기 제 1 제어수단 및 상기 제 2 제어수단은 CPU(중앙 처리부) 및 DMAC(다이렉트 메모리 액세스 제어기)로 구성되는 정보처리 장치.
- 제 8 항에 있어서,상기 DMAC는:상기 CPU에 접속된 채널 제어부;상기 제 1 및 제 2 데이터 버스에 접속된 데이터 제어부;상기 제 1 및 제 2 데이터 버스에 접속된 어드레스 제어부; 및상기 채널 제어부에 접속된 DMA 제어 레지스터를 포함하는 정보처리 장치.
- 제 1 항에 있어서, 상기 복수의 입력/출력 수단은 적어도 타이머, A/D 변환기, 및 직렬 인터페이스를 포함하는 정보처리 장치.
- 제 1 항에 있어서, 상기 제 1 및 제 2 데이터 버스에 접속되어, 상기 제 1 및 제 2 제어수단의 제어하에서 상기 데이터를 저장하는 내부 메모리를 더 포함하는 정보처리 장치.
- 정보처리 장치에 있어서,서로로부터 독립적으로 제공된 적어도 제 1 및 제 2 데이터 버스;상기 제 1 및 제 2 버스 중 적어도 하나에 접속되어 데이터를 입력/출력하는 복수의 입력/출력수단;적어도 상기 제 1 데이터 버스를 점유하는 동안 상기 입력/출력수단의 상기 데이터 입력/출력동작을 제어하는 제 1 제어수단; 및상기 점유된 제 1 데이터 버스를 양도할 것을 상기 제 1 제어수단에 요청하며, 상기 제 1 제어수단에 의한 상기 제 1 데이터 버스의 양도에 응답하여, 적어도 상기 제 2 데이터 버스를 점유하는 동안 상기 입력/출력수단의 상기 데이터 입력/출력 동작을 제어하는 제 2 제어수단을 포함하며,상기 제 1 제어수단은 상기 제 2 제어수단으로부터 발행된 상기 제 1 데이터 버스의 양도 요청 및 상기 자신의 제 1 제어수단의 동작상태에 기초하여 양도되도록 요청된 상기 제 1 데이터 버스를 양도하는 정보처리 장치.
- 제 12 항에 있어서, 상기 제 1 및 제 2 데이터 버스, 상기 복수의 입력/출력 수단, 및 상기 제 1 및 제 2 제어수단은 1칩 마이크로컴퓨터의 형태로 단일 칩에 제조되는 정보처리 장치.
- 제 12 항에 있어서,우선순위는 상기 복수의 입력/출력 수단의 상기 데이터 입력/출력동작에 미리 설정되고;상기 미리 설정된 우선순위에 응답하여, 상기 제 2 제어수단은 상기 제 1 제어수단에 의해 점유된 적어도 상기 제 1 데이터 버스를 양도할 것을 상기 제 1 제어수단에 요청하며, 상기 제 1 제어수단에 의한 상기 제 1 데이터 버스의 양도에 응답하여 상기 제 2 데이터 버스를 점유하는 동안 상기 복수의 입력/출력 수단의 상기 데이터 입력/출력 동작을 제어하는 정보처리 장치.
- 제 14 항에 있어서,적어도 상기 제 1 데이터 버스를 점유하는 동안 상기 제 1 제어수단이 상기 입력/출력 수단의 상기 데이터 입력/출력 동작을 제어하며, 적어도 상기 제 2 데이터 버스를 점유하는 동안 상기 제 1 제어수단이 상기 제 2 제어수단으로 하여금 상기 입력/출력 수단의 상기 데이터 입력/출력 동작을 제어하게 할 때, 상기 제 1 제어수단은 상기 입력/출력 수단에서 실행될 데이터 입력/출력 제어에 관계된 정보를 상기 제 2 제어수단에 공급하며,상기 제 2 제어수단은 상기 공급된 정보에 기초하여 적어도 상기 제 1 데이터 버스를 양도할 것을 상기 제 1 제어수단에 요청하며, 상기 제 1 제어수단에 의한 제 1 데이터 버스 양도하는 것에 기초하여 적어도 상기 제 2 데이터 버스를 점유하는 동안 상기 입력/출력수단의 상기 데이터 입력/출력 동작을 제어하는 정보처리 장치.
- 제 12 항에 있어서, 데이터로서 컴퓨터 프로그램 및 외부소스가 입력/출력될 것을 요청받는 상기 입력/출력 수단으로부터 발행된 요청 중 하나에 응답하여, 상기 제 2 제어수단은 적어도 상기 제 1 데이터 버스를 양도할 것을 상기 제 1 제어수단에 요청하며, 상기 제 1 제어수단에 의한 상기 제 1 데이터 버스의 양도에 기초하여 적어도 상기 제 2 데이터 버스를 점유하는 동안 상기 입력/출력 수단의 상기 데이터 입력/출력 동작을 제어하는 정보처리 장치.
- 제 12 항에 있어서, 상기 제 1 제어수단 및 상지 제 2 제어수단 중 하나는 상기 제 1 및 제 2 데이터 버스 중 적어도 하나의 한 부분을 양도할 것을 상기 제 1 제어수단 및 상기 제 2 제어수단 중 다른 한 제어수단에 요청하며; 상기 제 1 제어수단 및 상지 제 2 제어수단 중 하나는 또한 상기 제 1 제어수단 및 상기 제 2 제어수단 중 상기 다른 한 제어수단에 의한 상기 제 1 및 제 2 데이터 버스 중 적어도 하나의 상기 부분의 양도에 기초하여 상기 제 1 및 제 2 데이터 버스 중 적어도 하나의 상기 부분을 점유하는 동안 상기 입력/출력 수단의 상기 데이터 입력/출력 동작을 제어하는 정보처리 장치.
- 제 12 항에 있어서, 적어도 상기 제 1 및 제 2 데이터 버스에 접속된 버스 접속수단을 더 포함함으로써, 상기 데이터를 입력/출력하기 위해서 상기 제 1 및 제 2 제어수단 중 하나에 의한 상기 버스 접속수단의 제어 하에 상기 버스 접속수단을 통해 상기 복수의 입력/출력 수단이 상기 제 1 및 제 2 데이터 버스 중 어느 하나에 접속되는 정보처리 장치.
- 제 12 항에 있어서, 상기 제 1 제어수단 및 상기 제 2 제어수단은 CPU(중앙 처리부) 및 DMAC(다이렉트 메모리 액세스 제어기)로 구성되는 정보처리 장치.
- 제 12 항에 있어서,상기 DMAC는:상기 CPU에 접속된 채널 제어부;상기 제 1 및 제 2 데이터 버스에 접속된 데이터 제어부;상기 제 1 및 제 2 데이터 버스에 접속된 어드레스 제어부; 및상기 채널 제어부에 접속된 DMA 제어 레지스터를 포함하는 정보처리 장치.
- 제 12 항에 있어서, 상기 복수의 입력/출력 수단은 적어도 타이머, A/D 변환기, 및 직렬 인터페이스를 포함하는 정보처리 장치.
- 제 12 항에 있어서, 상기 제 1 및 제 2 데이터 버스에 접속되어, 상기 제 1 및 제 2 제어수단의 제어하에서 상기 데이터를 저장하는 내부 메모리를 더 포함하는 정보처리 장치.
- 정보처리 장치에 있어서:서로로부터 독립적으로 제공된 적어도 제 1 및 제 2 내부 데이터 버스;적어도 하나의 외부 데이터 버스;상기 제 1 및 제 2 내부 데이터 버스 중 적어도 하나에 접속되어 데이터를 입력/출력하는 복수의 내부 입력/출력수단;적어도 상기 하나의 외부 데이터 버스에 접속되어, 데이터를 입력/출력하는 복수의 외부 입력/출력 수단;적어도 상기 제 1 내부 데이터 버스를 점유하는 동안 상기 내부 입력/출력수단의 상기 데이터 입력/출력동작을 제어하는 제 1 제어수단; 및적어도 상기 제 1 내부 데이터 버스를 점유하는 동안 상기 내부 입력/출력 수단의 상기 데이터 입력/출력 동작을 제어하는 상기 제 1 제어수단에 대해 상기 점유된 제 1 데이터 버스를 양도할 것을 요청하며, 상기 제 1 제어수단에 의한 상기 제 1 내부 데이터 버스의 양도에 응답하고, 그리고 상기 외부 데이터 버스의 점유상태에 기초하여, 상기 제 2 내부 데이터 버스, 또는 상기 제 1 밍 제 2 내부 데이터 버스를 점유하는 동안 상기 내부 입력/출력 수단의 상기 데이터 입력/출력 동작을 제어하는 제 2 제어수단을 포함하는 정보처리 장치.
- 제 23 항에 있어서, 상기 제 1 및 제 2 데이터 버스, 상기 복수의 내부 입력/출력 수단, 및 상기 제 1 및 제 2 제어수단은 1칩 마이크로컴퓨터의 형태로 단일 칩에 제조되는 정보처리 장치.
- 제 23 항에 있어서,우선순위는 상기 복수의 내부 입력/출력 수단의 상기 데이터 입력/출력동작에 미리 설정되고;상기 미리 설정된 우선순위에 응답하여, 상기 제 2 제어수단은 상기 제 1 제어수단에 의해 점유된 적어도 상기 제 1 내부 데이터 버스를 양도할 것을 상기 제 1 제어수단에 요청하며, 상기 제 1 제어수단에 의한 상기 제 1 내부 데이터 버스의 양도에 응답하여 상기 제 2 내부 데이터 버스를 점유하는 동안 상기 복수의 내부 입력/출력 수단의 상기 데이터 입력/출력 동작을 제어하는 정보처리 장치.
- 제 25 항에 있어서,적어도 상기 제 1 내부 데이터 버스를 점유하는 동안 상기 제 1 제어수단이 상기 내부 입력/출력 수단의 상기 데이터 입력/출력 동작을 제어하며, 적어도 상기 제 2 내부 데이터 버스를 점유하는 동안 상기 제 1 제어수단이 상기 제 2 제어수단으로 하여금 상기 내부 입력/출력 수단의 상기 데이터 입력/출력 동작을 제어하게 할 때, 상기 제 1 제어수단은 상기 내부 입력/출력 수단에서 실행될 데이터 입력/출력 제어에 관계된 정보를 상기 제 2 제어수단에 공급하며;상기 제 2 제어수단은 상기 공급된 정보에 기초하여 적어도 상기 제 1 내부 데이터 버스를 양도할 것을 상기 제 1 제어수단에 요청하며, 상기 제 1 제어수단에 의한 제 1 내부 데이터 버스 양도하는 것에 기초하여 적어도 상기 제 2 내부 데이터 버스를 점유하는 동안 상기 내부 입력/출력수단의 상기 데이터 입력/출력 동작을 제어하는 정보처리 장치.
- 제 23 항에 있어서, 데이터로서 컴퓨터 프로그램 및 외부소스가 입력/출력될 것을 요청받는 상기 내부 입력/출력 수단으로부터 발행된 요청 중 하나에 응답하여, 상기 제 2 제어수단은 적어도 상기 제 1 내부 데이터 버스를 양도할 것을 상기 제 1 제어수단에 요청하며, 상기 제 1 제어수단에 의한 상기 제 1 내부 데이터 버스의 양도에 기초하여 적어도 상기 제 2 데이터 버스를 점유하는 동안 상기 내부 입력/출력 수단의 상기 데이터 입력/출력 동작을 제어하는 정보처리 장치.
- 제 23 항에 있어서, 상기 제 1 제어수단 및 상지 제 2 제어수단 중 하나는 상기 제 1 및 제 2 내부 데이터 버스 중 적어도 하나의 한 부분을 양도할 것을 상기 제 1 제어수단 및 상기 제 2 제어수단 중 다른 한 제어수단에 요청하며; 상기 제 1 제어수단 및 상지 제 2 제어수단 중 하나는 또한 상기 제 1 제어수단 및 상기 제 2 제어수단 중 상기 다른 한 제어수단에 의한 상기 제 1 및 제 2 내부 데이터 버스 중 적어도 하나의 상기 부분의 양도에 기초하여 상기 제 1 및 제 2 내부 데이터 버스 중 적어도 하나의 상기 부분을 점유하는 동안 상기 내부 입력/출력 수단의 상기 데이터 입력/출력 동작을 제어하는 정보처리 장치.
- 제 23 항에 있어서, 적어도 상기 제 1 및 제 2 내부 데이터 버스에 접속된 버스 접속수단을 더 포함함으로써, 상기 데이터를 입력/출력하기 위해서 상기 제 1 및 제 2 제어수단 중 하나에 의한 상기 버스 접속수단의 제어 하에 상기 버스 접속수단을 통해 상기 복수의 내부 입력/출력 수단이 상기 제 1 및 제 2 데이터 버스 중 어느 하나에 접속되는 정보처리 장치.
- 제 23 항에 있어서, 상기 제 1 제어수단 및 상기 제 2 제어수단은 CPU(중앙 처리부) 및 DMAC(다이렉트 메모리 액세스 제어기)로 구성되는 정보처리 장치.
- 제 30 항에 있어서,상기 DMAC는:상기 CPU에 접속된 채널 제어부;상기 제 1 및 제 2 내부 데이터 버스에 접속된 데이터 제어부;상기 제 1 및 제 2 내부 데이터 버스에 접속된 어드레스 제어부; 및상기 채널 제어부에 접속된 DMA 제어 레지스터를 포함하는 정보처리 장치.
- 제 23 항에 있어서, 상기 복수의 입력/출력 수단은 적어도 타이머, A/D 변환기, 및 직렬 인터페이스를 포함하는 정보처리 장치.
- 제 23 항에 있어서, 상기 제 1 및 제 2 내부 데이터 버스에 접속되어, 상기 제 1 및 제 2 제어수단의 제어하에서 상기 데이터를 저장하는 내부 메모리를 더 포함하는 정보처리 장치.
- 정보처리 장치에 있어서:서로로부터 독립적으로 제공된 적어도 제 1 및 제 2 내부 데이터 버스;적어도 하나의 외부 데이터 버스;상기 제 1 및 제 2 내부 데이터 버스 중 적어도 하나에 접속되어 데이터를 입력/출력하는 복수의 내부 입력/출력수단;적어도 상기 하나의 외부 데이터 버스에 접속되어, 데이터를 입력/출력하는 복수의 외부 입력/출력 수단;적어도 상기 제 1 내부 데이터 버스를 점유하는 동안 상기 내부 입력/출력수단의 상기 데이터 입력/출력동작을 제어하는 제 1 제어수단; 및상기 점유된 제 1 내부 데이터 버스를 양도할 것을 상기 제 1 제어수단에 요청하며, 상기 제 1 제어수단에 의한 상기 제 1 내부 데이터 버스의 양도에 응답하며, 상기 외부 데이터 버스의 점유상태에 기초하여, 상기 제 2 내부 데이터 버스를 점유하는 동안 상기 입력/출력수단의 상기 데이터 입력/출력 동작을 제어하는 제 2 제어수단을 포함하며,상기 제 1 제어수단은 상기 제 2 제어수단으로부터 양도 요청 및 상기 자신의 제 1 제어수단의 동작상태에 기초하여 양도되도록 요청된 상기 제 1 내부 데이터 버스를 양도하는 정보처리 장치.
- 제 34 항에 있어서,상기 제 1 제어수단에 의한 상기 제 1/제 2 내부 데이터 버스의 점유상태 및 상기 외부 데이터 버스의 점유상태는:상기 제 1/제 2 내부 데이터 버스, 또는 상기 외부 데이터 버스 어느것도 양도되지 않는 제 1 점유상태;상기 제 1/제 2 내부 데이터 버스 중 어느 하나가 양도되는 제 2 점유상태;상기 제 1/제 2 내부 데이터 버스 모두 양도되는 제 3 점유상태;상기 외부 데이터 버스만이 양도되는 제 4 점유상태; 및상기외부 데이터 버스 및 상기 제 1/제 2 데이터 버스 중 어느 만이 양도되는 제 5 점유상태로 구성되고,상기 제 2 제어수단은 상기 내부 입력/출력수단에 의한 상기 데이터 입력/출력 제어모드에 응답하여, 상기 제 1 제어수단에 의한 현재의 데이터-버스-점유 상태를 상기 제 1 내지 제 5 점유상태에 정의된 또 다른 데이터-버스-점유 상태로 천이하도록 상기 제 1 제어수단에 요청하며, 상기 제 1 제어수단에 의해 요청된 현재의 데이터-버스-점유상태의 천이에 기초하여 상기 천이된 데이터-버스-점유상태 하에서 상기 입력/출력 수단의 상기 데이터 입력/출력 동작을 제어하는 정보처리 장치.
- 제 34 항에 있어서, 상기 제 1 및 제 2 내부 데이터 버스, 상기 복수의 입력/출력 수단, 상기 제 1 및 제 2 제어수단, 및 적어도 외부 버스 제어기는 1칩 마이크로컴퓨터의 형태로 단일 칩에 제조되는 정보처리 장치.
- 제 34 항에 있어서,우선순위는 상기 복수의 내부 입력/출력 수단의 상기 데이터 입력/출력동작에 미리 설정되고;상기 미리 설정된 우선순위에 응답하여, 상기 제 2 제어수단은 상기 제 1 제어수단에 의해 점유된 적어도 상기 제 1 내부 데이터 버스를 양도할 것을 상기 제 1 제어수단에 요청하며, 상기 제 1 제어수단에 의한 상기 제 1 내부 데이터 버스의 양도에 응답하여 상기 제 2 내부 데이터 버스를 점유하는 동안 상기 복수의 내부 입력/출력 수단의 상기 데이터 입력/출력 동작을 제어하는 정보처리 장치.
- 제 37 항에 있어서,적어도 상기 제 1 내부 데이터 버스를 점유하는 동안 상기 제 1 제어수단이 상기 내부 입력/출력 수단의 상기 데이터 입력/출력 동작을 제어하며, 적어도 상기 제 2 내부 데이터 버스를 점유하는 동안 상기 제 1 제어수단이 상기 제 2 제어수단으로 하여금 상기 내부 입력/출력 수단의 상기 데이터 입력/출력 동작을 제어하게 할 때, 상기 제 1 제어수단은 상기 내부 입력/출력 수단에서 실행될 데이터 입력/출력 제어에 관계된 정보를 상기 제 2 제어수단에 공급하며;상기 제 2 제어수단은 상기 공급된 정보에 기초하여 적어도 상기 제 1 내부 데이터 버스를 양도할 것을 상기 제 1 제어수단에 요청하며, 상기 제 1 제어수단에 의한 제 1 내부 데이터 버스의 양도에 기초하여 적어도 상기 제 2 내부 데이터 버스를 점유하는 동안 상기 내부 입력/출력수단의 상기 데이터 입력/출력 동작을 제어하는 정보처리 장치.
- 제 34 항에 있어서, 데이터로서 컴퓨터 프로그램 및 외부소스가 입력/출력될 것을 요청받는 상기 내부 및 외부 입력/출력 수단으로부터 발행된 요청 중 하나에 응답하여, 상기 제 2 제어수단은 적어도 상기 제 1 내부 데이터 버스를 양도할 것을 상기 제 1 제어수단에 요청하며, 상기 제 1 제어수단에 의한 상기 제 1 내부 데이터 버스의 양도에 기초하여 적어도 상기 제 2 데이터 버스를 점유하는 동안 상기 내부 입력/출력 수단의 상기 데이터 입력/출력 동작을 제어하는 정보처리 장치.
- 제 34 항에 있어서, 상기 제 1 제어수단 및 상지 제 2 제어수단 중 하나는 상기 제 1 및 제 2 내부 데이터 버스 중 적어도 하나의 한 부분을 양도할 것을 상기 제 1 제어수단 및 상기 제 2 제어수단 중 다른 한 제어수단에 요청하며; 상기 제 1 제어수단 및 상지 제 2 제어수단 중 하나는 또한 상기 제 1 제어수단 및 상기 제 2 제어수단 중 상기 다른 한 제어수단에 의한 상기 제 1 및 제 2 내부 데이터 버스 중 적어도 하나의 상기 부분의 양도에 기초하여 상기 제 1 및 제 2 내부 데이터 버스 중 적어도 하나의 상기 부분을 점유하는 동안 상기 내부 입력/출력 수단의 상기 데이터 입력/출력 동작을 제어하는 정보처리 장치.
- 제 34 항에 있어서, 적어도 상기 제 1 및 제 2 내부 데이터 버스에 접속된 버스 접속수단을 더 포함함으로써, 상기 데이터를 입력/출력하기 위해서 상기 제 1 및 제 2 제어수단 중 하나에 의한 상기 버스 접속수단의 제어 하에 상기 버스 접속수단을 통해 상기 복수의 내부 입력/출력 수단이 상기 제 1 및 제 2 데이터 버스 중 어느 하나에 접속되는 정보처리 장치.
- 제 34 항에 있어서, 상기 제 1 제어수단 및 상기 제 2 제어수단은 CPU(중앙 처리부) 및 DMAC(다이렉트 메모리 액세스 제어기)로 구성되는 정보처리 장치.
- 제 42 항에 있어서,상기 DMAC는:상기 CPU에 접속된 채널 제어부;상기 제 1 및 제 2 내부 데이터 버스에 접속된 데이터 제어부;상기 제 1 및 제 2 내부 데이터 버스에 접속된 어드레스 제어부; 및상기 채널 제어부에 접속된 DMA 제어 레지스터를 포함하는 정보처리 장치.
- 제 34 항에 있어서, 상기 복수의 입력/출력 수단은 적어도 타이머, A/D 변환기, 및 직렬 인터페이스를 포함하는 정보처리 장치.
- 제 34 항에 있어서, 상기 제 1 및 제 2 내부 데이터 버스에 접속되어, 상기 제 1 및 제 2 제어수단의 제어하에서 상기 데이터를 저장하는 내부 메모리를 더 포함하는 정보처리 장치.
- 정보처리 방법에 있어서:적어도 제 1 데이터 버스를 점유하는 동안 상기 제 1 및 제 2 데이터 버스 중 적어도 하나에 접속된 복수의 입력/출력수단에 의해 실행되는 데이터 입력/출력 동작을 상기 제 1 제어수단 제어하에서 제어하는 제 1 제어단계;상기 제 1 데이터 버스를 점유하는 동안 상기 복수의 입력/출력 수단에 의해 상기 데이터 입력/출력 동작이 제어되는 상기 제 1 제어 단계에서 점유되지 않은 상기 제 2 제어 데이터 버스를 제 2 제어수단의 제어하에서 양도할 것을 상기 제 1 제어수단에 요청하는 제 2 제어단계;상기 요청 및 상기 자신의 제 2 제어수단의 동작상태에 기초하여 상기 자신의 제 2 제어수단에 의해 점유되지 않은 상기 제 2 데이터 버스를 상기 제 2 제어수단이 양도하는지 여부에 대해 판정하고, 그후 상기 판정결과를 상기 제 1 제어수단에 통보하는 제 3 제어단계; 및상기 제 2 제어수단에 의해 점유되지 않은 상기 제 2 데이터 버스를 점유할 동안 상기 제 2 제어수단으로부터 발행된 상기 통보에 기초하여 상기 제 1 제어수단의 상기 복수의 입력/출력수단의 상기 입력/출력동작을 제어하는 제 4 제어단계를 포함하는 정보처리 방법.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP9365909A JPH11184804A (ja) | 1997-12-22 | 1997-12-22 | 情報処理装置及び情報処理方法 |
JP97-365909 | 1997-12-22 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR19990063487A true KR19990063487A (ko) | 1999-07-26 |
Family
ID=18485426
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019980058728A KR19990063487A (ko) | 1997-12-22 | 1998-12-22 | 데이터 버스의 효과적인 사용으로 처리 능력을 향상시킬 수 있는 정보 처리 장치 및 정보 처리 방법 |
Country Status (6)
Country | Link |
---|---|
US (1) | US6249833B1 (ko) |
JP (1) | JPH11184804A (ko) |
KR (1) | KR19990063487A (ko) |
CN (1) | CN1232216A (ko) |
DE (1) | DE19859594A1 (ko) |
TW (1) | TW406230B (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100453821B1 (ko) * | 2002-10-09 | 2004-10-20 | 한국전자통신연구원 | 마이크로 컨트롤러를 위한 데이터 버스 시스템 |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3491588B2 (ja) * | 1999-12-22 | 2004-01-26 | 日本電気株式会社 | 外部バス制御装置 |
JP4517316B2 (ja) * | 2000-02-09 | 2010-08-04 | 富士通セミコンダクター株式会社 | データ入出力システム |
US6795875B2 (en) * | 2000-07-31 | 2004-09-21 | Microsoft Corporation | Arbitrating and servicing polychronous data requests in direct memory access |
JP2002073527A (ja) * | 2000-08-25 | 2002-03-12 | Rohm Co Ltd | Dmaコントローラ |
US6658520B1 (en) * | 2000-09-26 | 2003-12-02 | Intel Corporation | Method and system for keeping two independent busses coherent following a direct memory access |
US7054981B2 (en) * | 2001-10-22 | 2006-05-30 | Apple Computer, Inc. | Methods and apparatus for providing automatic high speed data connection in portable device |
US20050262276A1 (en) * | 2004-05-13 | 2005-11-24 | Ittiam Systamc (P) Ltd. | Design method for implementing high memory algorithm on low internal memory processor using a direct memory access (DMA) engine |
US20060010260A1 (en) * | 2004-07-07 | 2006-01-12 | Fung Hon C | Direct memory access (DMA) controller and bus structure in a master/slave system |
JP4540422B2 (ja) * | 2004-08-02 | 2010-09-08 | 富士フイルム株式会社 | 半導体集積回路及び撮像装置 |
EP1708091A1 (en) * | 2005-03-31 | 2006-10-04 | STMicroelectronics Belgium N.V. | Dedicated DMA-memory bus for an AMBA system |
US8301820B2 (en) * | 2005-03-31 | 2012-10-30 | Stmicroelectronics Belgium N.V. | Direct memory access for advanced high speed bus |
US20070294546A1 (en) * | 2006-06-19 | 2007-12-20 | Apple Computer, Inc. | Host device shutdown system |
JP6549454B2 (ja) * | 2015-09-11 | 2019-07-24 | ラピスセミコンダクタ株式会社 | 情報処理装置 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS56153422A (en) | 1980-04-28 | 1981-11-27 | Fujitsu Ltd | Data processor |
US4456965A (en) * | 1980-10-14 | 1984-06-26 | Texas Instruments Incorporated | Data processing system having multiple buses |
US4912636A (en) | 1987-03-13 | 1990-03-27 | Magar Surendar S | Data processing device with multiple on chip memory buses |
JPS6431251A (en) | 1987-07-28 | 1989-02-01 | Nec Corp | Microprocessor |
JP2577071B2 (ja) | 1988-12-16 | 1997-01-29 | 三菱電機株式会社 | ディジタル信号処理プロセッサ |
JP3206006B2 (ja) * | 1991-01-25 | 2001-09-04 | 株式会社日立製作所 | 二重化バス制御方法及び装置 |
JPH05128279A (ja) | 1991-11-07 | 1993-05-25 | Rohm Co Ltd | ワンチツプマイクロコンピユータ |
JPH05274250A (ja) | 1992-03-25 | 1993-10-22 | Toshiba Corp | 情報処理装置 |
JPH05332844A (ja) | 1992-06-01 | 1993-12-17 | Konica Corp | 画像形成装置用温度センサ |
JPH0660015A (ja) | 1992-06-08 | 1994-03-04 | Mitsubishi Electric Corp | 情報処理装置 |
US5495585A (en) * | 1992-10-16 | 1996-02-27 | Unisys Corporation | Programmable timing logic system for dual bus interface |
JP3267110B2 (ja) | 1995-07-26 | 2002-03-18 | 株式会社デンソー | マイクロコンピュータのデータ転送装置 |
JPH09223103A (ja) | 1996-02-15 | 1997-08-26 | Ricoh Co Ltd | 情報処理システム |
US6115767A (en) * | 1996-03-04 | 2000-09-05 | Matsushita Electric Industrial Co., Ltd. | Apparatus and method of partially transferring data through bus and bus master control device |
-
1997
- 1997-12-22 JP JP9365909A patent/JPH11184804A/ja active Pending
-
1998
- 1998-12-22 US US09/218,443 patent/US6249833B1/en not_active Expired - Lifetime
- 1998-12-22 KR KR1019980058728A patent/KR19990063487A/ko not_active Application Discontinuation
- 1998-12-22 CN CN98127128A patent/CN1232216A/zh active Pending
- 1998-12-22 DE DE19859594A patent/DE19859594A1/de not_active Withdrawn
- 1998-12-22 TW TW087121487A patent/TW406230B/zh not_active IP Right Cessation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100453821B1 (ko) * | 2002-10-09 | 2004-10-20 | 한국전자통신연구원 | 마이크로 컨트롤러를 위한 데이터 버스 시스템 |
Also Published As
Publication number | Publication date |
---|---|
JPH11184804A (ja) | 1999-07-09 |
TW406230B (en) | 2000-09-21 |
US6249833B1 (en) | 2001-06-19 |
CN1232216A (zh) | 1999-10-20 |
DE19859594A1 (de) | 1999-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6014729A (en) | Shared memory arbitration apparatus and method | |
KR19990063487A (ko) | 데이터 버스의 효과적인 사용으로 처리 능력을 향상시킬 수 있는 정보 처리 장치 및 정보 처리 방법 | |
US20020199052A1 (en) | System and method for controlling bus arbitration during cache memory burst cycles | |
JPS6142306B2 (ko) | ||
JP2003006143A (ja) | バス共有化システムと装置及び方法 | |
US5463740A (en) | Data control device generating different types of bus requests and transmitting requests directly to one of a number of arbiters for obtaining access to a respective bus | |
JPH09185514A (ja) | 割込み装置 | |
JPH04363746A (ja) | Dma機能を有するマイクロコンピュータシステム | |
US7203781B2 (en) | Bus architecture with primary bus and secondary or slave bus wherein transfer via DMA is in single transfer phase engagement of primary bus | |
JPH04363745A (ja) | Dmaコントローラ | |
JP7468112B2 (ja) | インタフェース回路およびインタフェース回路の制御方法 | |
JPS6242306B2 (ko) | ||
US6940311B2 (en) | Data transmission system | |
JP2001056793A (ja) | 情報処理装置 | |
JPH10320349A (ja) | プロセッサ及び当該プロセッサを用いるデータ転送システム | |
JPH0689257A (ja) | バスブリッジの調停装置 | |
US5799160A (en) | Circuit and method for controlling bus arbitration | |
JPH02143363A (ja) | マルチプロセッサ装置における共通メモリ制御方法 | |
JPS63175964A (ja) | 共有メモリ | |
JP3698483B2 (ja) | シリアルi/o | |
JP4114900B2 (ja) | システムlsi及び半導体集積回路 | |
JPH02207363A (ja) | データ転送制御方式、デバイスコントローラ、およびメモリ・コントローラ | |
JPH04264652A (ja) | Dma制御方式 | |
JP2000076199A (ja) | デバッグ端子を有するマルチプロセッサ装置 | |
JPH08101806A (ja) | Dma装置、マイクロプロセッサ及びマイクロコンピュータシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |