KR910005998B1 - 애드레스 버스 제어장치 - Google Patents

애드레스 버스 제어장치 Download PDF

Info

Publication number
KR910005998B1
KR910005998B1 KR1019880013468A KR880013468A KR910005998B1 KR 910005998 B1 KR910005998 B1 KR 910005998B1 KR 1019880013468 A KR1019880013468 A KR 1019880013468A KR 880013468 A KR880013468 A KR 880013468A KR 910005998 B1 KR910005998 B1 KR 910005998B1
Authority
KR
South Korea
Prior art keywords
bus
address
address data
width
unit
Prior art date
Application number
KR1019880013468A
Other languages
English (en)
Other versions
KR890007173A (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
Priority claimed from JP62259585A external-priority patent/JP2612715B2/ja
Priority claimed from JP63041753A external-priority patent/JP2706082B2/ja
Application filed by 가부시끼가이샤 히다찌세이사꾸쇼, 미따 가쯔시게 filed Critical 가부시끼가이샤 히다찌세이사꾸쇼
Publication of KR890007173A publication Critical patent/KR890007173A/ko
Application granted granted Critical
Publication of KR910005998B1 publication Critical patent/KR910005998B1/ko

Links

Images

Classifications

    • 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4009Coupling between buses with data restructuring
    • G06F13/4018Coupling between buses with data restructuring with data-width conversion

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Abstract

내용 없음.

Description

애드레스 버스 제어장치
제1도는 본 설명의 제1실시예를 포함하는 데이터 처리 시스템을 예시한 블록도.
제2도는 본 발명의 제1실시예인 제1도중의 버스 제어회로의 논리 회로도.
제3도는 본 발명의 제2실시예를 포함하는 데이터 처리 시스템을 예시한 블록도.
제4도는 본 발명의 제2실시예인 제3도중의 버스 제어회로의 일부를 블록도로 예시한 논리 회로도.
제5도는 제4도중의 애드레스 데이터 부가 회로의 논리 회로도.
제6도 내지 제8도는 제1 및 제2실시예에 의해서 행하여지는 애드레스 데이터의 처리의 모식도.
제9도는 시스템 버스의 애드레스 공간의 맵핑(mapping)을 예시하는 설명도.
* 도면의 주요부분에 대한 부호의 설명
1, 31 : CPU 2, 32 : 메모리
3, 33 : 버스 제어회로 4, 38 : 메모리 버스
5, 25, 39 : 시스템 버스 6, 41 : 하위 애드레스 버스
7, 40 : 상위 애드레스 버스 8, 45 : 패스 제어 신호
9, 36, 37 : 슬레이브 유닛 10, 34, 35 : 마스터 유닛
16, 17, 76 : 플립플롭군 49 : 액세스 요구 처리 회로
50 : 애드레스 데이터 부가 회로 51, 63, 75 : 디코우더
55, 74 : 셀렉터 56, 57, 59, 76, 77 : 플립플롭
58 : 데이터선 60, 62 : AND 게이트
61, 73 : NOT 게이트 64 : 억제 게이트
65, 67, 68, 69, 79 : 드라이버 게이트 71, 72 : NAND 게이트
본 발명은 데이터 처리 시스템에 있어서의 버스 제어에 관한 것으로서, 특히 상이한 폭 또는 길이에 애드레스 데이터를 사용하는 유닛 사이의 액세싱을 용이하게 하는 애드레스 버스 제어 장치에 관한 것이다.
마이크로프로세서를 중심으로 구성되는 데이터 처리 시스템에 있어서, 마이크로프로세서와 메모리를 접속하는 버스(메모리 버스)와, 입출력 유닛군을 상호 접속하는 버스(시스템 버스)와, 이들 버스의 사이에 개재하는 드라이버 게이트군 또는 버퍼 게이트군을 가지는 멀티 버스 구성이 왕왕 채용된다. 예로서, 일본국 소화 60년 특허출원공개 제235268호 공보에 기재된 시스템은 CPU에 접속된 내부 버스와 외부 입출력 유닛에 접속된 외부 버스와 이들 버스를 연결하는 애드레의 애드레스 비트의 수는 어느 편의 버스에서도 같다. CPU에 의하여 내부 버스상에 송출되는 애드레스 데이터의 최상위 비트는 어느편의 버스가 액세스 하는가를 표시한다. 뱅크 설정 애드레스 스위치 또는 레지스터가 설치되며, 이것을 버스 선택 정보로서 사용되는 최상위 비트를 대신하는 1개의 애드레스 비트를 외부 버스의 애드레스 버스상에 송출하고, 이에 의하여 이들 버스를 통해서 액세스 될 수 있는 애드레스 공간을 확장한다.
마이크로프로세서의 워어드 길이(word length)가 증가하고, 기능이 강화됨에 따라서, 애드레스 데이터의 폭(비트 수), 즉 취급할 수 있는 애드레스 공간의 사이즈가 확대되고, 최근에는 32비트 애드레스, 즉 4GB의 애드레스 공간을 취급할 수 있는 마이크로프로세서가 출현하였다. 그러나, 이와 같이 확대된 애드레스 공간은 통상적 입출력 유닛에는 너무 넓다. 그래서, 입출력 유닛이 접속되는 시스템 버스의 애드레스 버스 폭을 CPU와 메모리가 접속되는 메모리 버스의 애드레스 폭보다도 작게, 즉 28비트(256MB)로 하는 것이 바람직하다.
또한, 시스템 버스에 접속하고자 하는 입출력 유닛중에는 여러 가지 상이하는 사이즈의 애드레스 공간을 가지는 종래의 각종 마이크로프로세서에 맞추어 개발된 것이 있으며, 따라서, 시스템 버스의 전기한 감소된 애드레스 버스 폭보다도 더 작은 폭의 애드레스 데이터를 사용하는 입출력 유닛이 포함된다.
이와 같은 상이한 애드레스 데이터 폭의 유닛들이 상이한 폭의 애드레스 버스를 가지는 2개의 버스에 접속된 시스템에 있어서는 애드레스 데이터 폭의 불일치 문제가 생긴다. 일반적으로 애드레스 데이터 폭에 부정합(mismatching)이 생기면 올바른 애드레싱은 불가능하다. 버스의 애드레스 버스 폭이 그 버스에 접속된 유닛의 애드레스 데이터 폭보다 큰 경우에는 이들 사이의 차를 보충하는 애드레스 비트를 공급하는 레지스터를 설치하고, 이에 의하여 단일 버스에 접속된 상이한 애드레스 데이터 폭의 유닛들간의 애드레스 데이터 폭 불일치를 보상하는 것은 가능할 것이다. 그러나, 그와 같은 유닛들이 애드레스 버스 폭이 상이한 2개의 버스(예 : 메모리 버스와 시스템 버스)에 접속되는 시스템에 있어서는 이들 버스간에 있어서의 애드레스 버스 폭의 불일치 문제가 추가된다. 그 결과, 임의의 버스에 접속된 임의의 유닛으로부터 임의의 버스에 접속된 임의의 유닛으로의 DMA (Direct Memory Access)를 효율적으로 제어하는 것이 곤란하게 된다. 특히 요망되는 것은 폭이 작은 쪽의 애드레스 버스를 가지느 시스템 버스에 접속된 더 작은 애드레스 데이터 폭의 유닛이 시스템 버스에 접속된 유닛 또는 메모리 버스에 접속된 유닛중의 어느 것도 DMA 의 대상 유닛으로서, 다이나믹하게 그리고 신속하게 선택 가능해야한다는 것이다.
따라서, 본 발명의 목적은 애드레스 버스 폭이 다른 버스에 접속된 애드레스 데이터 폭이 다른 유닛들 사이에서의 액세스들을 효과적으로 제어하는 애드레스 버스 제어장치를 제공함에 있다.
본 발명의 목적은 애드레스 버스 폭이 작은쪽의 버스에 접속된 더 작은 애드레스 데이터 폭의 유닛이 같은 버스에 접속된 유닛 또는 애드레스 버스 폭이 큰편의 접속된 유닛중 어느 것이나 다이나믹하게 또한 신속히 선택할 수 있는 애드레스 버스 제어장치를 제공하는데 있다.
본 발명에 따른 애드레스 버스 제어장치는 제1버스(예를 들어, 메모리 버스)의 애드레스 버스 폭과, 제2버스(예를 들어, 시스템 버스)에 접속된 액세싱 유닛(acessing unit)의 애드레스 데이터 폭과의 사이의 부정합을 보상하기 위한 제1애드레스 데이터를 공급한다. 제2버스의 애드레스 버스 폭은 제1버스의 애드레스 버스 폭보다도 작다. 이 제1애드레스 데이터는 액세싱 유닛으로부터의 버스 식별 정보가 제1버스를 지정할시에 제1버스에 송출된다.
액세싱 유닛의 애드레스 데이터 폭이 제2버스의 애드레스 버스 폭보다 더 작은 경우에는 애드레스 버스 제어장치는 다시 제2버스의 애드레스 버스 폭과 액세싱 유닛의 애드레스 데이터 폭과의 사이의 부정합을 보상하기 위한 제2애드레스 데이터를 공급한다. 이 제1애드레스 데이터는 버스 실별정보가 제2버스를 지정할 때에 제2버스에 송출된다.
애드레스 데이터 폭이 다른 복수의 액세싱 유닛들을 포함하는 시스템에 있어서는 액세스 요구를 송출한 유닛의 애드레스 데이터 폭이 액세스 요구 신호로부터 결정되고, 이 결정에 의거해서 애드레스 데이터 폭의 부정합에 대한 적절한 보상이 이루어진다.
그 결과, 상이한 애드레스 폭의 제1버스와 제2버스에 접속된 상이한 애드레스 데이터 폭의 유닛들 사이에서의 DMA 동작이 효율적으로 제어된다. 예로서 확장된 애드레스 공간을 가지는 새로운 프로세서와 그 보다 좁은 애드레스 공간을 가지는 낡은 입출력 유닛들의 효율이 좋은 상호 동작이 용이하게 실현된다.
제1도는 본 발명의 1실시예를 포함하는 데이터 처리 시스템을 표시한다. 32비트 애드레스를 사용하는 CPU(1)와 메모리(2)가 32비트 애드레스에 적합한 메모리 버스(4)에 접속되고, 이 메모리 버스(4)는 버스 제어회로(3)를 통해서 28비트 애드레스에 적합된 시스템 버스(5)와 결합된다. 시스템 버스(5)는 28비트 애드레스의 하위 23비트를 위한 하위 애드레스 버스(6)와, 나머지 상위 5비트를 위한 상위 애드레스 버스(7)를 포함한다. 28비트 애드레스를 사용하는 슬레이브 유닛(액세스 요구 기능을 가지지 않는 입출력 유닛)(9)은 하위 애드레스 버스(6)와 상위 애드레스 버스(7)의 쌍방에 접속되고, 25비트 애드레스를 사용하는 마스터 유닛(액세스 요구 기능을 가지는 입출력 유닛)(10)은 하위 애드레스 버스(6)에만 접속된다. 마스터 유닛(10)은 24비트 애드레스 데이터의 하위 23비트를 하위 애드레스 버스(6)상에 송출하고, 그 최상위 비트를 패스(path) 제어 신호(8)로서 버스 제어회로(3)에 보낸다.
제2도는 제1도에서의 버스 제어회로(3)의 상세부를 표시한다. 마스터 유닛(10)으로부터의 패스 제어 신호(8)는 AND(negative)게이트(13)의 제1입력에 인가되고, 또한 NOT 게이트(15)를 거쳐서, AND(negative)게이트(14)의 제1입력에 인가된다. 이들 AND 게이트(13과14)의 제2입력은 활성화되었을 때에 논리 치"0"을 취하는 인에이블(enable)신호(11)를 수신한다. AND 게이트(13)의 출력은 드라이버 게이트(18)를 인에이블로 하여 플립플롭군(16)의 내용을 메모리 버스(4)에 송출한다. AND 게이트(14)의 출력은 드라이버 게이트(19)를 인에이블로 하여 플립플롭군(17)의 내용을 시스템 버스(5)의 상위 애드레스 버스(7)에 송출한다. AND 게이트(13)의 출력은 또 드라이버 게이트(20)를 인에이블로 하여서, 시스템 버스(5)의 하위 애드레스 버스(6)상의 데이터를 메모리 버스(4)의 대응하는 부분으로 전송한다. 플립플롭군(16)은 시스템 버스(5)로 부터 메모리 버스(4)로 전송되는 애드레스 데이터에 부가될 9비트 폭의 보충 애드레스 데이터를 기억하고, 플립플롭군(17)은 하위 애드레스 버스(6)상의 애드레스 데이터를 보완하기 위하여 상위 애드레스 버스(7)로 송출될 5비트 폭의 보조 애드레스 데이터를 기억한다. 이들 플립플롭군의 내용은 DMA 초기화(initilizing)동작에서, COU(1)의 데이터 버스에 접속된 신호선(12)을 통해서 CPU(1)에 의해서 소망하는 수치로 설정된다.
마스터 유닛(10)으로부터 메모리(2)로의 DMA 에 있어서의 동작을 우선 설명한다. 제6도는 이 경우의 애드레스 데이터 처리를 모식적으로 예기하고 있다. 마스트 유닛(10)이 의해서 송출되는 24비트 애드레스 데이터(80)는 비트 M0-M23으로서 구성된다. 그 최상의 비트 M23은 버스 제어 신호(8)로서 사용되며, 메모리(2)로의 액세스가 요구될시에는 논리 "0"으로 설정된다. 플립플롭군(16)중의 데이터(81)는 비트 MF0-MF8로서 구성되며, 이 데이터는 애드레스 버스(6)의 애드레스 공간의 미리 정하여진 영역을 식별한다. 이 데이터가 하위 애드레스 버스(6)상의 비트 M0-M22에 부가되어서, 비트 MA0-MA31로서 구성되는 32비트 애드레스 데이터(28)를 형성하고, 이것이 메모리 버스(4)상에 전파된다.
제1도, 제2도 및 제6도를 참조하여, 마스터 유닛(10)으로부터의 패스 제어 신호(8)(M23)가 논리 "0"일 때, 인에이블 신호(11)는 AND 게이트 (13)를 통해서 드라이버 게이트(18)를 인에이블시키고, 플립플롭군(16)중의 9비트 MF0-MF8을 메모리 버스(4)의 상위 9비트 위치에 출력한다. 또, AND 게이트(13)를 통한 인에이블 신호(11)는 드라이버 게이트(20)를 인에이블시키고, 애드레스 버스(6)상의 23비트 M0-M22를 메모리 버스(4)의 하위 23비트 위치로 전송한다. 이와 같이 하여, 24비트 애드레스를 사용하는 마스터 유닛(10)이 32비트 애드레스(MA0-MA31)에 적합시켜진 메모리 버스(4)를 통해서 메모리(2)의 에드레싱을 행하여 DMA 에 의한 데이터 전송을 할 수가 있다.
다음에 마스터 유닛(10)으로부터 슬레이브 유닛(9)으로의 DMA 에 있어서의 동작을 설명한다.
제7도는 이 경우의 애드레스 데이터 처리를 모식적으로 표시한다. 슬레이브 유닛(9)에 대한 액세스가 요구될시에는 마스터 유닛에 의하여 송출되는 24비트 애드레스 데이터(80)의 최상위 비트 M23은 논리 "1"로 설정된다. 플립플롭군(17)중의 데이터(83)는 비트 SF0-SF4로서 이루어지며, 이 데이터는 시스템 버스(25)의 애드레스 공간의 미리 정하여진 영역을 식별한다. 이 데이터가 상위 애드레스 버스(7)로 송출되고, 하위 애드레스 버스(6)상의 비트 M0-M22와 연결되어서, 비트 SA0-SA27로서 구성되는 28비트 애드레스 데이터(84)를 형성한다.
제1도, 제2도 및 제7도를 참조하여 마스터 유닛(10)으로부터의 패스 제어 신호(8)(M23)가 "1"일 때 인에이블 신호(11)는 AND 게이트(14)를 통해서 드라이버 게이트(19)를 인에이블시키고, 플립플롭군(17)중의 5비트 SF0-SF4를 상위 애드레스 버스(7)로 출력한다. 이와 같이 하여 24비트 애드레스를 사용하는 마스터 유닛(10)가 28비트 애드레스(SA0-SA27)에 적합된 시스템 버스(5)를 통해서 슬레이트 유닛(9)의 애드레싱을 행하여 DMA 에 의한 데이터 전송을 할 수가 있다.
제3도는 전술한 실시예의 일반화된 변형예인 본 발명의 다른 실시예를 포함하는 데이터 처리 시스템을 표시한다. 32비트 애드레스를 사용하는 CPU(31)과 메모리(32)가 32비트 애드레스의 메모리 버스(38)에 접속되고, 이 메모리 버스(38)는 버스 제어회로(33)를 통해서 28비트 애드레스의 시스템 버스(39)와 결합된다. 시스템 버스(39)는 28비트 애드레스의 상위 5비트를 위한 상위 애드레스 버스(40)와 나머지 하위 23비트를 위한 하위 애드레스 버스(41)를 포함한다. 어느 경우도 28비트 애드레스를 사용하는 마스터 유닛(34)과 슬레이브 유닛(36)은 상위 애드레스 버스(40)와 하위 애드레스(41)의 쌍방에 접속되며, 어느 경우도 24비트 애드레스를 사용하는 마스터 유닛(35)과 슬레이브 유닛(37)은 하위 애드레스 버스(41)에만 접속된다.
마스터 유닛(35)은 24비트 애드레스 데이터의 하위 23비트를 하위 애드레스 버스(41)상에 송출하고, 그 최상위 비트를 패스 제어 신호(45)로서 버스 제어회로(33)에 송신함과 동시에, 최상위 애드레스 비트로서 신호선(41a)을 경우하여 슬레이브 유닛(37)으로 보낸다. 마스터 유닛(34)도 또한, 애드레스 데이터의 제24비트를 상위 애드레스 버스(40)로 송출하고 또한, 신호선(41a)을 경유하여 슬레이브 유닛(37)에 보낸다. 버스 제어회로(33)로의 DMA 요구 신호선(42)은 28비트 애드레스 마스터 유닛(34)으로부터의 DMA 요구를 표시하는 28비트 애드레스 DMA 요구 신호(43)와 24비트 애드레스 마스터 유닛(35)으로부터의 DMA 요구를 나타내는 24비트 애드레스 DMA 요구 신호(44)를 전달한다. 버스 제어회로(33)로부터의 액세스 제어선(46)은 28비트 애드레스 슬레이브 유닛(36)으로의 28비트 애드레스 액세스 제어 신호(47)와, 24비트 애드레스 슬레이브 유닛(37)으로의 24비트의 애드레스 액세스 제어 신호(48)를 전달한다.
제4도는 제3도중의 버스 제어회로(33)의 세부를 표시한다. 액세스 요구 처리회로(49)는 메모리 버스(38)상의 애드레스 데이터가 시스템 버스에 접속된 슬레이브 유닛(36 또는 37)를 식별함을 검출하는 디코우더(51)의 출력과 28비트 애드레스 DMA 요구 제어 신호(43)와, 24비트 애드레스 DMA 요구 신호(44)를 받아서 DMA 허가 신호(52)와, DMA 요구 제어 신호(53)와 액세스 패스 제어 신호(54)를 발생한다. DMA 요구 제어 신호(53)은 셀렉터(55)를 제어하여 플립플롭(56 또는 57)의 출력을 선택한다. 플립플롭(56)은 28비트 애드레스 마스터 유닛으로부터의 요구를 표시하며 플립플롭(57)은 24비트 애드레스 마스터 유닛으로부터의 요구를 표시한다. 따라서, 셀렉터(55)의 출력(70)은 DMA 요구가 허가된 마스터 유닛의 애드레스 데이터 폭을 나타낸다. 이들 플리플롭의 상태는 데이터선(58)을 통해서 CPU(31)에 의하여 설정된다. DMA 허가신호(52)와 셀렉터(55)의 출력(70)은 애드레스 데이터 부가 회로(50)에 보내어진다.
액세스 패스 제어 신호(54)는 타이밍(timing) 조정용 플립플롭(59)을 경유하여 AND 게이트(60 과 62)의 제1입력에 인가된다. AND 게이트(60)의 제2입력은 NOT 게이트(61)를 통한 디코우더(63)의 출력을 받으며, AND 게이트(62)의 제2입력은, 디코우더(63)의 직접적 출력을 받는다. 디코우터(63)는 시스템 버스(39)의 상위 애드레스 버스(40)상의 애드레스 데이터가 24비트 애드레스 슬레이브 유닛(37)을 식별함을 검출한다. AND 게이트 (60)는 28비트 애드레스 액세스 제어 신호(47)를 발생하며, AND 게이트(62)는 24비트 애드레스 액세스 제어 신호(48)를 발생한다.
액세스 패스 제어 신호(54)는, 또, 억제(inhibit)게이트(64)를 통해서, 드라이버 게이트(67-69)를 인에이블 시킨다. 인에이블 되었을 때, 드라이버 게이트(69)는 메모리 버스(38)상이 제1내지 제23 애드레스 비트를 시스테 버스의 하위 애드레스 버스(41)에 전송하고, 드라이버 게이트(68)는 메모리 버스(38)상의 제24 내지 제28애드레스 비트를 상위 애드레스 버스(40)으로 전송하며, 드라이버 게이트(67)는 메모리 버스(38)상의 제24애드레스 비트(23a)를 신호선(41a)으로 전송한다. 그러나, DMA 허가 신호(52) 논리 "1"이면, 이들 드라이버 게이트의 인에이블링은 억제된다.
애드레스 데이터 부가회로(50)는, 또, 메모리 버스(38)와, 시스템 버스의 상위 애드레스 버스(40)에 접속되고, 또, 24비트 애드레스 마스터 유닛(35)으로부터의 버스 제어 신호(45)를 받는다. 뒤에 설명하는 바와 같이, 애드레스 데이터 부가회로(50)는, 메모리 버스(38) 또는 시스템 버스의 상위 애드레스 버스(40)에 보충 애드레스 비트를 송출하며, 또한, 전자의 경우에 인에이블 신호(66)을 발생한다. 인에이블 신호(66)는 드라이버 게이트(65)를 인에이블시켜, 시스템 버스의 하위 애드레스 버스(41)상의 애드레스 데이터를 메모리 버스(38)가 대응하는 위치에 전송한다.
제5도는, 애드레스 데이터 부가 회로(50)의 세부를 표시한다. 액세스 요구 처리회로(49)로부터의 DMA 허가 신호(52)는 NAND 게이트(41 과 42)의 제1입력에 인가된다, 셀렉터(74)의 출력은 NAND 게이트(71)의 제2입력에 NOT 게이트(73)를 통해서 인가되고, NAND 게이트(72)의 제2입력에 직접인가된다. 제4도중의 셀렉터(55)로부터의 애드레스 데이터 폭신호(70)는 NAND 게이트(72)의 제3입력에 인가되고, 또한, 셀렉터(74)를 제어한다. 셀렉터(74)는, 24비트 애드레스 마스터 장치(35)로부터의 패스 제어 신호(45) 또는 디코더(75)의 출력을 선택한다. 디코우더(75)는, 시스템 버스의 상위 애드레스 버스(40)상의 애드레스 데이터가, 메모리 버스(8)의 DMA 윈도우 공간, 즉 메모리(2)로의 DMA 를 위하여 확보된 애드레스 범위를 식별함을 검출한다.
NAND 게이트(71)의 출력은 드라이버 게이트(78)를 인에이블시켜, 플립플롭군(76)의 내용을 메모리 버스(38)에 송출하고, NAND 게이트(72)의 출력은, 드라이버 게이트(79)를 인에이블시켜, 플립플롭군(77)의 내용을 시스템 버스의 상위 애드레스 버스(40)에 송출한다. NAND 게이트(71)의 출력은 또, 앞서나온 인에이블 신호(66)으로서 송출된다. 플립플롭군(76)은, 시스템 버스(39)로부터 메모리 버스(38)로 전송되는 애드레스 데이터에 부가될 9비트 폭의 보조 애드레스 데이터를 기억하고, 플립플롭군(77)은, 시스템 버스의 하위 애드레스 버스(41)상의 애드레스 데이터를 보완하기 위하여 상위 애드레스 버스(40)으로 송출될 5비트 폭의 보조 애드레스 데이터를 기억한다. 이들 플립플롭군의 내용은, DMA 초기화 동작에 있어서, CPU에 의하여, 신호선(58)을 통하여, 소망 수치로 설정된다.
제3도 내지 제5도에 표시된 장치의 동작은, 이하와 같다. 우선, CPU(31)가 슬레이브 유닛(36 또는 37)에 액세스하는 경우를 설명한다.
제3도를 참조하여 보면, 32비트 애드레스를 사용하는 CPU(31)가 32비트의 애드레스 데이터를 메모리 버스에 송출하면, 버스 제어회로(33)는 이하와 같은 애드레스 버스 제어동작에 의하여, 28비트 애드레스 슬레이브 유닛(36) 또는 24비트 애드레스 슬레이브 유닛(37)으로의 액세스 패스를 확립한다.
다음에, 제4도를 참조하여 보면, 디코우더(51)는 CPU(31)로부터 메모리 버스(38)에 송출된 32비트의 애드레스 데이터를 디코우드하고, 디코우드된 애드레스가 슬레이브 유닛(36 또는 37)을 식별하면, 그 사실을 표시하는 디코우드 출력을 액세스 요구 처리회로(49)에 보낸다. 액세스요구 처리회로(49)는 DMA 요구 신호선(12)상의 DMA 요구신호의 유무를 판정하고, DMA 요구신호가 없으면, CPU(31)로부터의 액세스요구를 허가하고, 액세스 패스 제어신호(54)만을 발생시킨다. DMA 허가신호(52)는 발생되지 않으므로, 액세스 패스 제어신호(54)는 억제 게이트(64)를 통해서 드라이버 게이트(67,68,69)에 공급되고, 이들 드라이버 게이트를 인에이블로 한다. 이에 의하여, 드라이버 게이트(68)는 메모리 버스(38)상의 애드레스 데이터의 제24 내지 제28비트를 시스템 버스(39)의 상위 애드레스 버스(40)에 전송한다. 드라이버 게이트(69)는 메모리 버스(38)상의 애드레스 데이터의 제1내지 제23비트를 시스템 버스(39)의 하위 애드레스 버스(41)에 전송한다. 또, 드라이버 게이트(67)는 24비트 애드레스 슬레이브 유닛(37)에 최상위 애드레스 비트를 제공하기 위하여, 제24비트 애드레스 신호선(41a)에 메모리 버스(38)상의 애드레스 데이터의 제24비트를 전송한다 .드라이버 게이트(68)로부터 상위 애드레스 버스(40)에 출력되는 5비트의 애드레스 데이터는 디코우더(63)에 의하여 디코우드된다. 디코우더(63)는 상위 애드레스 버스(40)상의 애드레스 데이터를 디코우드하고, 그것이 24비트 애드레스 슬레이브 유닛(37)을 식별하는 경우에, 논리 "1"신호를 출력한다.
한편, 액세스 패스 억제신호(54)는 플립플롭(59)에 유지되어, 드라이버 게이트(67,68,69)가 시스템 버스상에 애드레스 데이터를 출력하기 위한 셋업(setup) 시간을 확보한 후에, AND 게이트(60 과 62)에 보내어진다. 디코우더(63)로부터의 출력이 논리 "1"의 경우에는, 플립플롭(59)의 출력이 앤드게이트(62)를 통하여 24비트 애드레스 슬레이브 유닛(37)을 선택하는 24비트 애드레스 액세스 제어신호(48)로서 송출된다. 또 디코우더(63)로부터의 출력이 논리 "0"의 경우에는, NOT 게이트(61)의 출력이 논리 "1"이 되고, 플립플롭(29)의 출력이 앤드게이트(60)를 통하여, 28비트 애드레스 슬리이브 유닛(36)을 선택하는 28비트 애드레스 액세스 제어신호(47)로서 송출된다.
이와 같이 하여, 버스 제어회로(33)는 CPU(31)로부터 송출된 애드레스 데이터를 해석하고, 메모리 버스(38)상의 애드레스 데이터의 소요부분을 드라이버 게이트(67-69)를 통해서 시스템 버스(39)로 전송하고, 다시, 액세스 요구선의 유닛으로 액세스 제어신호를 보낸다. 이와 같이 하여, 32비트 애드레스의 메모리 버스(38)에 접속된 32비트 애드레스를 사용하는 CPU(31)는, 28비트 애드레스의 시스템 버스(39)에 접속된 28비트 애드레스 슬레이브 유닛(36) 또는 24비트 애드레스 슬레이브 유닛(37)에 액세스할 수가 있다.
다음에, 시스템 버스(39)에 접속된 24비트 애드레스 마스터 유닛(35)의 DMA 를 위한 애드레스 버스 제어동작을 설명한다.
이 제어동작은, 제1도와 제2도에 표시된 장치의 동작과 기본적으로는 동일하며, 제6도와 제7도의 예시는 이 경우에도 적용할 수 있다.
메모리 버스(38)에 접속된 메모리(32)에 대한 DMA 의 경우를 우선 설명한다.
제3도를 참조하여, 메모리(32)에 대한 DMA 가 필요할 때에는, 24비트 애드레스 마스터 유닛(35)은, 버스 제어회로(33)에 24비트 애드레스 DMA 요구신호(44)를 보내고, 하위 애드레스 버스(41)에 애드레스 데이터의 하위 23비트(M0-22 : 제6도의 애드레스 데이터(80))을 보낸다. 다시, 버스 제어회로(33)에 패스 제어신호(45)로서 애드레스 데이터의 최상위 비트(M23 : 제6도의 애드레스 데이터(80))을 송출하고, 다시, 버스 제어신호(33)에 패스 제어신호(45)로서 애드레스 데이터의 최상위 비트(M23 : 제6도의 애드래스 데이터(80))을 보낸다. 이 비트 M23, 메모리(32)에 대한 DMA 가 요구될 시에는 논리 "0"에 설정된다. 다음에, 제4도를 참조한다. 액세스요구 처리회로(49)는, 24비트 애드레스 DMA 요구신호(44)를 받은 다음, 다른 액세스 요구가 없다면, DMA 허가신호(52), DMA 요구 제어신호(53) 및 액세스 패스 제어신호(54)를 발생시킨다. DMA 요구 제어신호(53)는 28비트 애드레스 DMA 요구신호(43)가 검출되었을 시에는 논리 "1"이 되며, 24비트 애드레스 DMA 요구신호(44)가 검출되었을 시에는 논리 '0"이 된다. 이 경우에는, 24비트 애드레스 DMA 요구신호(44)가 검출되고 있으므로, DMA 요구 제어신호(53)로서 논리 "0" 신호가 셀렉터(55)에 제공된다. 이 논리 "0"에 응답하여, 셀렉터(55)는 CPU(31)에 의하여 논리 "1"로 설정된 플립플롭(57)의 출력을 선택한다. 따라서, 셀렉터(55)로부터 애드레스 데이터 부가회로(50)로 보내어지는 애드레스 데이터폭 신호(70)는 논리 "1"이며 DMA 요구를 출력한 마스터 유닛의 애드레스 데이터폭이 24비트임을 표시한다.
다음에 제5도를 참조하여 보면, 애드레스 데이터 부가회로(50)에서, 논리 "1"의 애드레스 데이터폭 신호(70)는, 셀렉터(74) 및 NAND 게이트(72)에 인가된다. 셀렉터(74)는 논리 "1" 신호에 응답하여, 패스 제어신호(45)측을 선택한다. 패스 제어신호(45)는, 마스터 유닛(35)이 메모리 버스(38)의 DMA 윈도우에 액세스하는 경우에는 전술한 바와 같이, 논리 "0"이다. 패스 제어신호(45)는 논리 "0"은 NOT 게이트(73)에 의하여 논리 "1"로 반전되어, NAND 게이트(71)에 가하여진다. DMA 허가신호(52)가 공급되고 있는 NAND 게이트(71)는, NOT 게이트(73)로부터의 논리 "1" 신호에 응답하여 인에이블신호(66)를 출력함과 동시에 드라이버 게이트(78)을 인에이블시킨다. 그 결과, CPU(31)에 의하여 플립플롭군(76)에 미리 기억된 9비트의 애드레스 데이터(MF0-MF8 : 제6도의 보충 애드레스 데이터(81))가 메모리 버스(38)의 제24비트 내지 제32비트 위치에 송출되어서, 메모리 버스(38)상의 애드레스 데이터의 상위 9비트(MA23-MA31 : 제6도의 애드레스 데이터(82))가 된다.
한편, 인에이블신호(66)는 드라이버 게이트(65)를 인에이블로 하고, 이에 의해서, 하위 애드레스 버스(41)상의 23비트의 애드레스 데이터(M0-M22 : 제6도의 애드레스 데이터(80))는, 메모리 버스(38)의 제1 내지 제23비트 위치에 전송되어서, 메모리 버스(38)상의 애드레스 데이터의 하위 23비트(MA0-MA22 : 제6도의 애드레스 데이터(82))가 된다. 이와 같이 하여, 메모리 버스(38)상에서 32비트폭의 애드레스 데이터(MA0-MA31 : 제6도의 애드레스 데이터(82))가 형성된다.
이와 같이 하여, 버스 제어회로(33)는 패스 제어신호(45), 즉 24비트 애드레스 마스터 유닛(35)으로부터의 24비트 애드레스의 최상위 비트 M23에 의한 지시에 따라서, 하위 애드레스 버스(41)상의 23비트의 애드레스 데이터 M0-M22를, 플립플롭군(76)에 미리 기억되어 있는 9비트의 보충 애드레스 데이터 MF0-MF8과 연결하여, 32비트 애드레스의 메모리 버스(38)를 통하는 DMA 에 필요한 32비트의 애드레스 데이터 MA0-MA31을 형성하고, 그에 의하여. 마스터 유닛(35)과 메모리(32)간의 DMA 에 의한 데이터 전송을 가능하게 한다.
다음에, 24비트 애드레스 마스터 유닛(35)으로부터 시스템 버스(39)에 접속된 28비트 애드레스 슬레이브 유닛(36)으로의 DMA 를 위한 애드레스 버스 제어동작을 설명한다.
제3도를 참조하여 보면, 시스템 버스(39)에 접속된 28비트 애드레스 슬레이브 유닛(36)으로의 DMA 가 필요할 때, 24비트 애드레스 마스터 유닛(35)은 24비트 애드레스 DMA 요구신호(44)를 버스 제어회로(33)에 보내고, 애드레스 데이터의 하위 23비트(M0-M22 : 제6도)를 하위 애드레스 버스(41)에 송출하며, 또한 애드레스 데이터의 최상위 비트(M23 : 제6도)를 패스 제어신호(45)로서 버스 제어회로(33)로 보낸다. 그러나, 이 비트 M23은 시스템 버스(39)에 접속된 슬레이브 유닛으로의 DMA 를 위하여 논리 "1"로 설정한다.
제4도와 제5도를 참조하여 보면, 버스 제어회로(33)에서, 메모리(32)로의 DMA 의 경우와 같이, 액세스 요구 처리회로(49)는, DMA 허가신호(52), DMA 요구 제어신호(53) 및 액세스 패스 제어신호(54)를 발생시키고, 애드레스 데이터 부가회로(50) 논리 "1"의 DMA 허가신호(52)와, 논리 "1"의 애드레스 데이터폭 신호(70)를 받는다. 셀렉터(74)에 의하여 선택되는 패스 제어신호(45)는 이 경우 논리 "1"이다. 따라서 NOT 게이트(73)의 출력은 논리 "0" 이 되고, NAND 게이트(71)는 인에이블신호를 발생하지 않는다. 그러나, NAND 게이트(72)는, 논리 "1" 애드레스 데이터폭 신호(70), 논리 "1"의 DMA 허가신호(52) 및 논리 "1"의 패스 제어신호(45)를 받아서, 드라이버 게이트(79)를 인에이블시킨다.
그 결과, CPU(31)에 의하여 플립플롭군(77)에 미리 기억된 5비트의 보충 애드레스 데이터(SF0-SF4 : 제7도)가 상위 애드레스 버스(40)에 송출된다. 이들 5개의 애드레스 비트는 하위 애드레스 버스(41)상의 23비트의 애드레스 데이터(M0-M22 : 제7도)와 연결되어서, 28비트의 애드레스 데이터(SA0-SA27)를 형성한다,
디코우더(63)는 이와 같이 하여 상위 애드레스 버스(40)에 송출된 애드레스 데이터를 디코우더하여, 논리 "0"신호를 발생한다. 왜냐하면 이 디코우드된 애드레스 데이터는 24비트 애드레스 슬레이브 유닛을 식별하지 않기 때문이다. 그 결과, AND 게이트(60)가 NOT 게이트(61)를 거쳐서 논리 "1"입력을 받아, 플립플롭(59)으로부터의 액세스 패스 제어신호(54)가 도래하였을 때에, 28비트 애드레스 액세스 제어신호(47)를 발생한다.
이와 같이 하여, 24비트 애드레스 마스터 유닛(35)은, 28비트 애드레스 슬레이브 유닛(36)의 애드레스공간의 에드레싱을 행할 수가 있으며, 이에 의하여, 이들 유닛간의 DMA 데이터 전송이 실현된다.
24비트 애드레스 마스터 유닛(35)으로부터 24비트 애드레스 슬레이브 유닛(37)으로의 DMA의 경우, 플립플롭군(77)의 내용(SF0-SF4 : 제7도)은, 시스템 버스의 애드레스 공간은 24비트 애드레스 슬레이브 유닛(37)에 배당된 영역을 식별하는 수치로 설정된다. 버스 제어회로(33)의 동작은 디코우더(63)와 AND 게이트(60 및 62)를 제외하고는, 28비트 애드레스 슬레이브 유닛(36)에 대한 DMA 의 경우와 같다. 24비트 애드레스 슬레이브 유닛(37)에 대한 DMA 의 경우, 디코우더(63)는 24비트 애드레스 슬레이브 유닛(37)을 식별하는 상위 애드레스 버스(40)상의 애드레스 데이터를 디코우드하여, 논리 "1"출력을 발생한다. 그 결과 플립플롭(59)으로부터의 액세스 패스 제어신호(54)가 도래하였을 때, AND 게이트(62)가 24비트 애드레스 액세스 제어신호(48)를 발생한다. 제24 애드레스 비트는 신호선(41a)을 거쳐, 24비트 애드레스 마스터 유닛(35)으로부터 24비트 애드레스 슬레이브 유닛(37)에 직접 보내어진다.
다음에 28비트 애드레스 마스터장치(34)로부터, 메모리 버스(38)에 접속된 메모리(32)로의 DMA 를 위한 애드레스 버스 제어동작을 설명한다.
제8도는, 이 경우의 애드레스 데이터처리를 표시한다. 28비트 애드레스 마스터 유닛(34)에 의해서 송출되는 28비트 애드레스 데이터(85)는 비트 M0-M27로서 구성되며, 그 상위 5비트 M23-M27은, 메모리(32)에 대한 액세스가 요구되는 경우에는 모두 논리 "0"에 설정된다. 플립플롭군(76)중의 데이터(86)는 비트MF'0-MF'8로 구성되며, 이 데이터는 메모리 버스(38)의 애드레스공간의 미리 정하여진 영역을 식별한다. 이 데이터가 하위 애드레스 버스(41)상의 비트 M0-M22 에 부가되어서, 비트 MA0-MA31로서 구성되는 32비트 애드레스 데이터(82)를 형성한다.
제3도를 참조한다. 28비트 마스터 유닛(34)은 버스 제어회로(33)에 28비트 애드레스 DMA 요구신호(43)을 보내고, 시스템 버스(39)에 28비트의 애드레스 데이터(M0-27 : 제8도)를 송출한다. 즉, 상위 5비트의 애드레스 데이터(M23-M27)을 상위 애드레스 버스(40)에 송출하고, 하위 23비트의 애드레스 데이터(M0-22)를 하위 애드레스 버스(41)에 송출한다.
다음에 제4도를 참조한다. 버스 제어회로(33)에서 ,액세스 요구 처리회로(49)는, 28비트 애드레스 DMA 요구신호(43)를 수신한 다음, 다른 액세스요구가 없으면, DMA 허가신호(52), DMA 요구 제어신호(53) 및 액세스 패스 제어신호(52), DMA 요구 제어신호(53) 및 액세스 패스 제어신호(54)를 발생한다. DMA 요구 제어신호(53)는, 전술한 내용과 같이, 28비트 애드레스 DMA 요구신호(43)를 검출하였을 시는 논리 "1"신호가 된다. 따라서, 논리 "1" 신호가 셀렉터(55)에 부여되고, 셀렉터가(55)가, CPU(31)에 의하여 논리 "0"에 미리 세트되어 있는 플립플롭(56)의 출력을 선택한다. 이에 의하여, DMA 요구를 발행한 마스터 유닛의 애드레스 데이터폭이 28비트폭임을 지시하는 논리 "0" 신호가, 셀렉터(55)를 통해서, 애드레스 데이터 폭 신호(70)로서 애드레스 데이터 부가회로(50)에 부여된다.
다음에 제5도를 참조하면, 애드레스 데이터 부가회로(50)에서는, 논리 "0"의 애드레스 데이터록 신호(70)가 셀렉터(74) 및 NAND 게이트(72)에 인가된다. 셀렉터(74)는 논리 "0"신호에 응답하여 디코우더(75)로부터의 신호를 선택한다. 디코우더(75)는 상위 애드레스 버스(40)상의 애드레스 데이터를 디코우드하고, 이 애드레스 데이터(M23-M27)의 각 비트가 논리 "0"일 때, 논리 "0"신호를 출력한다. 디코우더(75)로 부터의 이 논리 "0"신호가 셀렉터(74)와 NOT 게이트(73)를 통해서 NAND 게이트(71)에 가하여진다. DMA 허가신호(52)가 공급되고 있는 NAND 게이트(71)는 NOT 게이트(73)로부터의 논리 "1"신호에 의하여 인에이블신호(66)를 출력하고, 동시에 드라이버 게이트(78)를 인에이블한다. 이에 의하여, 플립플롭군(76)에 미리 기억된 애드레스 데이터(MF'0-MF'8 : 제8도)가 메모리 버스(38)의 상위 9비트의 애드레스 데이터(MA23-MA31)로서 메모리 버스(38)에 송출된다. 한편, 인에이블신호(66)는 드라이버 게이트(65)(제4도)를 인에이블시켜, 하위 애드레스 버스(41)에 마스터 유닛(34)으로부터 송출되어 있던 28비트 애드레스의 하위 23비트의 애드레스 데이터(M0-22)를, 메모리 버스(38)의 하위 23비트의 애드레스 데이터(MA0-MA22)로서 전송한다. 따라서, 제8도에 예시한 바와 같이, 메모리 버스(38)상에, 28비트 애드레스 마스터 유닛(34)으로부터의 28비트 애드레스 데이터(85)(M0-M22,M23-M27)에 대응하는 32비트 애드레스 데이터(82)(MA0-MA31)가 형성된다. 이와 같이 하여, 28비트 애드레스를 사용하는 마스터 유닛(34)은 32비트 애드레스를 사용하는 메모리(32)의 에드레싱을 달성할 수 있고, 마스터 유닛(34)과 메모리(32)와의 사이에서 DMA 에 의한 데이터 전송을 행할 수 있다.
다음에, 28비트 애드레스 마스터 유닛(34)으로부터 시스템 버스(39)에 접속된 28비트 애드레스 슬레이브 유닛(36) 또는 24비트 애드레스 슬레이브 유닛(37)으로의 DMA 를 위한 애드레스 버스 제어동작을 설명한다. 이들의 경우, 플립플롭군(77)은 사용되지 않는다.
제3도를 참조하여, 시스템 버스(39)에 접속된 슬레이브 유닛에 대한 DMA 가 필요할 시, 28비트 애드레스 마스터 유닛(34)은, 28비트의 애드레스 데이터를 상위 애드레스 버스(40)와 하위 애드레스 버스(41)에 송출한다. 또한, 그 제24비트는 신호선(41a)을 경유하여 24비트 애드레스 슬레이브 유닛(37)에 직접 보내어진다. 상위 애드레스 버스(40)에 송출되는 애드레스 데이터는 DMA 의 대상인 28비트 애드레스 슬레이브 유닛(36) 또는 제24비트 애드레스 슬레이브 유닛(37)에 배당된 28비트 애드레스공간의 영역을 식별하는 수치로 설정된다. 28비트 애드레스 마스터 유닛(34)은, 또, 28비트 DMA 요구신호(43)를 버스 제어회로(33)에 보낸다.
제4도와 제5도를 참조할 때, 액세스요구 처리회로(49)는 DMA 허가신호(52), DMA 요구신호(53) 및 액세스 패스 제어신호(54)를 발생한다. 메모리(32)에 대한 DMA 의 경우와 같이, 셀렉터(55)는 논리 "0"의 애드레스 데이터폭 신호(70)를 애드레스 데이퍼 부가회로(50)에 보낸다. 애드레스 데이터 부가회로(50)에서, 셀렉터(74)는, 논리 "0"의 애드레스 데이터폭 신호(70)에 응답해서, 디코우더(75)의 출력을 선택한다. 그러나, 셀렉터(75)의 출력은, 어느 슬레이브 유닛에 대한 DMA 가 요구되는 경우도 논리 "1"이다. 왜냐하면, 상위 애드레스 버스(40)상의 애드레스 데이터는 메모리 버스(38)의 DMA 윈도우공간을 표시하지 않기 때문이다. 따라서, NAND 게이트(71)는 인에이블신호를 발생하지 않으며, 또, NAND 게이트(72)도, 매드레스 데이터폭 신호970)가 논리 "0"이므로, 역시 인에이블신호를 발생하지 않는다. 그 결과, 플립플롭군(76 및 77)의 어느것도 애드레스 데이터를 송출하지 않는다. 디코우더(63)는, 상위 애드레스 버스(40)상의 애드레스 데이터를 디코우더하여, 24비트 애드레스 슬레이브 유닛(37)이 식별되면, 논리 "1"출력을 발생하며, 그렇지 않으면 논리 "0"출력을 발생한다. 따라서, 24비트 애드레스 슬레이브 유닛(37)이 식별되면, AND 게이트(62)가 24비트 애드레스 액세스 제어ㅡ신호(48)를 24비트 애드레스 슬레이브 유닛(37)에 보내며, 그렇지 않으면, AND 게이트(60)가 28비트 애드레스 액세스 제어신호(47)를 28비트 애드레스 슬레이브 유닛(36)에 보낸다.
이상 설명에서 명백한 바와 같이, 버스 제어회로(33)는 상이한 애드레스 버스폭의 메모리 버스(38)와 시스템 버스(39)에 접속된 각종 애드레스 데이터폭의 유닛(31,32 및 34-37)간의 애드레스 데이터폭의 부정합을 다이나믹하게 보상하여, 이들 유닛간의 데이터 전소을 실현한다.
다음에, 애드레스공간의 할당과, 플립플롭군(76 및 77)으로의 애드레스 데이터 설정을 설명한다.
제9도는, 메모리 버스(38)의 32비트 애드레스 공간과, 시스템 버스(39)의 28비트 애드레스공간과, 24비트 애드레스 유닛(35 및 37)의 24비트 애드레스공간 사이의 맵핑 또는 대응의 한예를 표시한다. 메모리 버스(38)의 32비트(4GB) 애드레스공간의 최대 애드레스 X "FFFF FFFF"(16진수)로부터 X "F000 0000"까지의 256MB의 영역이 시스템 버스(39)의 28비트 애드레스공간에 맵핑된다. 이 영역의 최소 애드레스 X "F0000000"로부터 X "F07F FFFF"까지의 8MB부분은, 28비트 애드레스 마스터 유닛(34) 및 24비트 애드레스 마스터 유닛(35)으로부터 메모리(32)에 대한 DMA 에 사용되는 메모리 버스 DMA 윈도우공간에 할당할 수 있다. 나머지 부분(애드레스 X "F080 0000"-X "FFFF FFFF")은 시스템 버스(39)에 접속된 슬레이브 유닛(36 및 37)에 대한 액세스를 위한 시스템 버스공간으로서 사용된다. 특히, 애드레스 X "FF80 0000"로부터 X "FFFF FFFF"까지의 8MB영역은 24비트 애드레스 유닛(35 및 37)의 24비트(16MB) 애드레스 공간의 최대 애드레스로 끝나는 8MB 영역으로 맵핑되어서, 24비트 애드레스 슬레이브 유닛(37)에 대한 액세스에 사용된다. 24비트 애드레스공간의 나머지 8MB 영역은 상기 메모리 버스 DMA 윈도우공간에 맵핑되어서, 24비트 애드레스 마스터 유닛(35)으로부터 메모리(32)에 대한 DMA 에 사용된다.
이 맵핑에 의하면, 28비트 애드레스 마스터 유닛(34)와 24비트 애드레스 마스터 유닛(35)이 메모리 버스 DMA 윈도우공간에 액세스할 때에 플립플롭군(76)에 의하여 공급되는 9비트 애드레스 데이터 MF8-MF0(제6도)와 MF'8-MF'0(제8도)는, 공히, "111100000"이다. 또, 플립플롭군(77)에 의하여 공급되는 5비트 애드레스 데이터 SF4-SF0(제7도)는 24비트 애드레스 마스터 유닛(35)이 24비트 애드레스 슬레이브 유닛(37)에 액세스할 때에는 "11111"이며, 이것이 28비트 애드레스 슬레이브 유닛(36)에 액세스할때에는 "11111"와 "00000"를 제외하는 임의의 소망의 패턴을 가질 수 있다.
플립플롭군(76)에 의하여 공급되는 9비트 애드레스 데이터의 비트패턴은, 메모리 버스 DMA 윈도우공간의 할당이 변하면 변화한다. 또한, 28비트 애드레스 마스터 유닛(34)을 위한 메모리 버스 DMA 윈도우공간이, 24비트 애드레스 마스터 유닛(35)을 위한 그것과 상이하여도 무방하다. 이 경우에는, 플립플롭군(76)에 의하여 공급되는 애드레스 데이터는 어느 마스터 유닛에 메모리(32)에 대한 DMA 요구를 발행하였는가에 의존해서 변화한다.
애드레스 데이터폭의 불일치를 보상하는 것만이 목적이라면, 에드레스 데이터폭의 차와 동등한 개수의 애드레스 비트가 부가되면 충분하다. 예로서 28비트 애드레스 마스터 유닛(34)의 메모리(32)로의 DMA 를 위하여는, 4비트가 부가되면 충분하며, 24비트 애드레스 마스터 유닛(35)의 메모리(32)로의 DMA 를 위하여는, 8비트가 부가되면 충분하다. 그러나, 전술한 실시예에 있어서, 플립플롭군(16,17,76 및 77)은, 애드레스 데이터의 버스 식별부분(제6도 및 제7도중의 M23, 제8도중의 M23-M27)을 치환하는 데이터를 다시 공급한다. 이것은, 애드레스공간 사이의 한층 자유로운 맵핑을 가능하게 하며, 이에 의하여, 에드레싱에 높은 융통성을 준다.
복수의 DMA 동작이 병행해서 이루어지도록, 복수의 플립플롭군(16,17,76 및 77)을 갖추어도 좋다. 예를 들어, 2개의 플립플롭군(77)이 갖추어지면, 제1 및 제2의 24비트 애드레스 마스터 유닛으로부터 각각 제1 및 제2의 28비트 슬레이브 유닛에 대한 2개의 DMA 동작이, 시 분할로 병행해서 이루어진다.

Claims (11)

  1. 제1버스와, 애드레스 버스폭이 상기 제1버스의 그것보다 작은 제2버스와, 상기 제1버스에 접속된 프로세서 및 메모리 유닛과, 상기 제2버스에 접속된 복수의 입출력 유닛 등을 가지며, 상기 복수의 입출력 유닛의 적어도 하나는 상기 제2버스의 애드레스 버스폭보다 크지 않은 폭의 애드레스 데이터를 사용하여 다른 유닛에 액세스하는 액세싱 유닛인 데이터 처리 시스템에 있어서, 액세스될 유닛이 접속된 버스를 식별하는 버스 식별정보를 상기 액세싱 유닛으로부터 받는 신호 수신 수단 ; 및 상기 제1버스 및 신호 수신 수단에 접속되고, 상기 버스 식별정보가 상기 제1버스를 식별할때에 상기 액세싱 유닛의 애드레스폭과 상기 제1버스의 애드레스폭의 부정합을 보상하기 위한 제1애드레스 데이터를 상기 제1버스에 공급하는 제1애드레스 데이터 부가수단을 포함함을 특징으로 하는 상기 제1버스와 제2버스 사이의 애드레스 데이터 전송을 제어하는 애드레스 버스 제어장치.
  2. 제1항에 있어서, 상기 액세싱 유닛의 애드레스 데이터폭은 상기 제2버스의 애드레스 버스폭보다 작으며, 상기 애드레스 버스 제어장치는, 또한, 상기 제2버스 및 신호 수신 수단에 접속되고, 상기 버스 식별정보가 상기 제2버스를 식별할때에 상기 액세싱 유닛의 애드레스 데이터폭과 상기 제2버스의 애드레스 버스폭 사이의 부정합을 보상하기 위한 제2애드레스 데이터를 상기 제2버스에 공급하는 제2애드레스 데이터 공급수단을 포함함을 특징으로 하는 애드레스 버스 제어장치.
  3. 제2항에 있어서, 상기 버스 식별정보는 상기 액세싱 유닛으로부터의 애드레스 데이터의 일부이며, 상기 제1 및 제2애드레스 데이터의 각각은 상기 애드레스 데이터중의 버스 식별정보를 치환하는 데이터를 포함하는 애드레스 버스 제어장치.
  4. 제3항에 있어서, 상기 제2버스는 제1애드레스 버스와 제2어드레스 버스를 포함하며, 상기 액세싱 유닛은 상기 버스 식별정보를 제외한 애드레스 데이터를 상기 제1애드레스 버스로 송출하고, 상기 제2애드레스 데이터 공급수단은 상기 제2애드레스 데이터를 상기 제2애드레스 버스로 보내고, 상기 애드레스 버스 제어장치는, 다시, 상기 제1버스와 제1애드레스 버스와 신호 수신 수단에 접속되어서 상기 버스 식별정보가 상기 제1버스를 식별할때에 상기 제1애드레스 버스상의 애드레스 데이터를 상기 제1버스의 대응하는 부분으로 보내는 수단을 포함하는 애드레스 버스 제어장치.
  5. 제2항에 있어서,상기 제1 및 제2애드레스 데이터 공급수단은, 상기 프로세서에 의하여 공급되는 상기 제1 및 제2애드레스 데이터를 각각 기억하기 위한 제1 및 제2기억수단을 각각 포함하는 애드레스 버스 제어장치
  6. 제1버스와, 애드레스 버스폭이 상기 제1버스의 그것보다 작은 제2버스와, 상기 제1버스에 접속된 프로세서 및 메모리 유닛과, 상기 제2버스에 접속된 복수의 입출력 유닛 등을 가지며, 상기 복수의 입출력 유닛은 상이한 폭의 애드레스 데이터를 사용하여 다른 유닛에 액세스하는 복수의 액세싱 유닛들을 포함하는 데이터 처리 시시템에 있어서, 상기 액세싱 유닛들의 각각으로부터 액세스 요구신호를 받아서 상기 액세스 요구신호를 발행한 유닛의 애드레스 데이터폭을 표시하는 애드레스 데이터폭 신호를 발생하는 신호 발생 수단과 ; 액세스될 유닛이 접속된 버스를 식별하는 버스 식별정보를 상기 액세스 요구신호를 발행한 유닛으로부터 받는 신호 수신 수단과 ; 상기 액세스 요구를 발행한 유닛의 애드레스 데이터폭과 상기 제1버스의 애드레스 버스폭간의 부정합을 보상하기 위한 제1애드레스 데이터와, 상기 액세스 요구를 발행한 유닛의 애드레스 데이터폭과 상기 제2버스의 애드레스 버스폭간의 부정합을 보상하기 위한 제2애드레스 데이터 등을 기억하는 기억수단 ; 및 상기 제 1 및 제2버스 , 신호 발생 수단, 신호 수신 수단 및 기억수단에 접속되고, 상기 버스 식별정보가 상기 제1버스를 식별할때에는 상기 제1애드레스 데이터를 상기 제1버스에 보내고, 상기 버스 식별정보가 제2버스를 식별하며, 또한, 상기 애드레스 데이터폭 신호가 상기 제2버스의 애드레스 버스폭보다 작은 데이터폭을 표시할때에는 상기 제2애드레스 데이터를 상기 제2버스에 보내는 애드레스 데이터 부가수단과를 포함함을 특징으로 하는 상기 제1버스와 제2버스에 접속되어 이들 버스사이의 애드레스 데이터 전송을 제어하는 애드레스 버스 제어장치.
  7. 제6항에 있어서, 상기 버스 식별정보는 상기 액세싱 유닛들 각각으로부터의 애드레스 데이터의 일부이며, 상기 제1 및 제2애드레스 데이터 각각은 상기 애드레스 데이터중의 버스 식별정보를 치환하는 데이터를 포함하는 애드레스 버스 제어장치.
  8. 제7항에 있어서, 상기 복수의 액세싱 유닛들은 상기 제2버스와 애드레스 버스폭과 같은 폭의 애드레스 데이터를 사용하는 제1액세싱 유닛과 그보다 작은 폭의 애드레스 데이터를 사용하는 제2액세싱 유닛을 포함하며, 상기 제2버스는 제1애드레스 버스와 제2애드레스 버스를 포함하고, 상기 제2액세싱 유닛은 상기 버스 식별정보를 제외한 애드레스 데이터를 상기 제1애드레스 버스에 송출하며, 상기 애드레스 데이터 부가수단은 상기 제2애드레스 데이터를 상기 제2애드레스 버스에 보내고, 상기 애드레스 버스 제어장치는, 다시, 상기 제1버스와 제1애드레스 버스와 신호 수신 수단에 접속되어서 상기 버스 식별정보가 상기 제1버스를 식별할때에 상기 제1애드레스 버스상의 애드레스 데이터를 상기 제1버스의 대응하는 부분에 보내는 수단을 포함하는 애드레스 버스 제어장치.
  9. 제8항에 있어서, 상기 신호 수신 수단은 상기 제1액세싱 유닛으로부터의 버스 식별정보를 상기 제2애드레스 버스로부터 수신하는 애드레스 버스 제어장치.
  10. 제6항에 있어서, 또한 상기 제2버스에 접속되고, 그 위의 애드레스 데이터를 디코우드하여, 액세스되는 유닛의 애드레스 데이터폭을 결정하는 수단과, 상기 액세싱 유닛들 이외의 상기 결정된 애드레스 데이터폭을 가지는 상기 입출력 유닛에 액세스 제어신호를 보내는 수단을 포함하는 애드레스 버스 제어장치.
  11. 제6항에 있어서, 상기 제1 및 제2애드레스 데이터는 상기 프로세서에 상기 기억수단에 공급되는 애드레스 버스 제어장치.
KR1019880013468A 1987-10-16 1988-10-15 애드레스 버스 제어장치 KR910005998B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP62259585A JP2612715B2 (ja) 1987-10-16 1987-10-16 アドレスバス制御装置
JP62-259585 1987-10-16
JP63041753A JP2706082B2 (ja) 1988-02-24 1988-02-24 アドレスバス制御方法
JP63-41753 1988-02-24

Publications (2)

Publication Number Publication Date
KR890007173A KR890007173A (ko) 1989-06-19
KR910005998B1 true KR910005998B1 (ko) 1991-08-09

Family

ID=26381404

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019880013468A KR910005998B1 (ko) 1987-10-16 1988-10-15 애드레스 버스 제어장치

Country Status (4)

Country Link
US (1) US5148539A (ko)
KR (1) KR910005998B1 (ko)
DE (1) DE3835297C2 (ko)
GB (1) GB2211326B (ko)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0398145A (ja) * 1989-09-11 1991-04-23 Hitachi Ltd マイクロプロセッサ
US5396599A (en) * 1990-01-16 1995-03-07 Nec Electronics, Inc. Computer system with a bus controller
EP0860780A3 (en) * 1990-03-02 1999-06-30 Fujitsu Limited Bus control system in a multi-processor system
JPH0484253A (ja) * 1990-07-26 1992-03-17 Mitsubishi Electric Corp バス幅制御回路
US5255374A (en) * 1992-01-02 1993-10-19 International Business Machines Corporation Bus interface logic for computer system having dual bus architecture
US5301281A (en) * 1991-06-26 1994-04-05 Ast Research, Inc. Method and apparatus for expanding a backplane interconnecting bus in a multiprocessor computer system without additional byte select signals
JP2744154B2 (ja) * 1991-10-24 1998-04-28 株式会社東芝 バスシステム
JP2836321B2 (ja) * 1991-11-05 1998-12-14 三菱電機株式会社 データ処理装置
JPH07504773A (ja) * 1992-03-18 1995-05-25 セイコーエプソン株式会社 マルチ幅のメモリ・サブシステムをサポートするためのシステム並びに方法
JP3608804B2 (ja) * 1993-05-14 2005-01-12 株式会社ソニー・コンピュータエンタテインメント バス制御装置
US5561817A (en) * 1993-08-16 1996-10-01 Thermo King Corporation Method of securely controlling direct memory access (DMA) of a shared memory by a DMA device on an expansion board
US5590378A (en) * 1994-04-25 1996-12-31 Compaq Computer Corporation Apparatus for aligning and padding data on transfers between devices of different data widths and organizations
US5623697A (en) * 1994-11-30 1997-04-22 International Business Machines Corporation Bridge between two buses of a computer system with a direct memory access controller having a high address extension and a high count extension
US5649125A (en) * 1995-10-30 1997-07-15 Motorola, Inc. Method and apparatus for address extension across a multiplexed communication bus
US5845098A (en) * 1996-06-24 1998-12-01 Motorola Inc. Address lines load reduction
US6671765B1 (en) * 1999-11-22 2003-12-30 Texas Instruments Incorporated Architecture enabling code overlay using a dedicated endpoint
US7895381B2 (en) * 2009-02-16 2011-02-22 Himax Media Solutions, Inc. Data accessing system
JP5441219B2 (ja) * 2009-06-26 2014-03-12 ルネサスエレクトロニクス株式会社 半導体装置及びシリアルインタフェース回路
JP2018137547A (ja) * 2017-02-20 2018-08-30 株式会社東芝 情報処理装置及び画像形成装置

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4296464A (en) * 1977-03-03 1981-10-20 Honeywell Inc. Process control system with local microprocessor control means
JPS5464933A (en) * 1977-11-01 1979-05-25 Panafacom Ltd Main storage extension system
JPS5454536A (en) * 1977-10-08 1979-04-28 Fujitsu Ltd Data processor
US4205373A (en) * 1978-05-22 1980-05-27 Ncr Corporation System and method for accessing memory connected to different bus and requesting subsystem
GB2021823B (en) * 1978-05-30 1983-04-27 Intel Corp Data transfer system
US4296469A (en) * 1978-11-17 1981-10-20 Motorola, Inc. Execution unit for data processor using segmented bus structure
US4315308A (en) * 1978-12-21 1982-02-09 Intel Corporation Interface between a microprocessor chip and peripheral subsystems
US4309754A (en) * 1979-07-30 1982-01-05 International Business Machines Corp. Data interface mechanism for interfacing bit-parallel data buses of different bit width
JPS5779551A (en) * 1980-11-06 1982-05-18 Nec Corp Information transfer device
US4393501A (en) * 1981-02-26 1983-07-12 General Electric Company Line protocol for communication system
US4471458A (en) * 1981-06-18 1984-09-11 Allied Corporation Computer interface
US4608631A (en) * 1982-09-03 1986-08-26 Sequoia Systems, Inc. Modular computer system
US4598359A (en) * 1983-04-01 1986-07-01 Honeywell Information Systems Inc. Apparatus for forward or reverse reading of multiple variable length operands
KR900007564B1 (ko) * 1984-06-26 1990-10-15 모토로라 인코포레이티드 동적 버스를 갖는 데이터 처리기
US4716527A (en) * 1984-12-10 1987-12-29 Ing. C. Olivetti Bus converter
JPS61139866A (ja) * 1984-12-11 1986-06-27 Toshiba Corp マイクロプロセツサ
BG39765A1 (en) * 1985-02-14 1986-08-15 Turlakov Device for connecting 8- degree and 16- degree modules to 16- degree microprocessor system
JP2609220B2 (ja) * 1985-03-15 1997-05-14 ソニー株式会社 マルチ・プロセツサ・システム
US4683534A (en) * 1985-06-17 1987-07-28 Motorola, Inc. Method and apparatus for interfacing buses of different sizes
JPH071496B2 (ja) * 1985-11-05 1995-01-11 ソニー株式会社 制御方法及び制御装置
US4831514A (en) * 1986-02-14 1989-05-16 Dso "Izot" Method and device for connecting a 16-bit microprocessor to 8-bit modules
US5014186A (en) * 1986-08-01 1991-05-07 International Business Machines Corporation Data-processing system having a packet transfer type input/output system
US4965723A (en) * 1987-10-23 1990-10-23 Digital Equipment Corporation Bus data path control scheme
JPH01136144A (ja) * 1987-11-21 1989-05-29 Sekisui Chem Co Ltd 光及び熱硬化性組成物
US4996469A (en) * 1990-03-16 1991-02-26 Allen-Bradley Company, Inc. Electric motor controller with bypass contactor

Also Published As

Publication number Publication date
KR890007173A (ko) 1989-06-19
GB2211326A (en) 1989-06-28
DE3835297A1 (de) 1989-05-18
GB8824168D0 (en) 1988-11-23
GB2211326B (en) 1991-12-11
US5148539A (en) 1992-09-15
DE3835297C2 (de) 1995-06-08

Similar Documents

Publication Publication Date Title
KR910005998B1 (ko) 애드레스 버스 제어장치
US5778429A (en) Parallel processor system including a cache memory subsystem that has independently addressable local and remote data areas
US5247629A (en) Multiprocessor system with global data replication and two levels of address translation units
US5226144A (en) Cache controller for maintaining cache coherency in a multiprocessor system including multiple data coherency procedures
CA2026224C (en) Apparatus for maintaining consistency in a multiprocess computer system using virtual caching
US6151663A (en) Cluster controller for memory and data cache in a multiple cluster processing system
US20070255872A1 (en) Bus system and semiconductor integrated circuit
US5502825A (en) Data processing system with an enhanced cache memory control
US4695948A (en) Bus to bus converter using a RAM for multiple address mapping
GB2107092A (en) Data processing systems
JPS6259822B2 (ko)
KR900002894B1 (ko) 어드레스 변환을 사용한 데이타 처리 시스템
EP0862761B1 (en) Data error detection and correction for a shared sram
US5895496A (en) System for an method of efficiently controlling memory accesses in a multiprocessor computer system
JPH01302444A (ja) 論理アドレスキャッシュ制御方式
US4163288A (en) Associative memory
EP0337537A1 (en) Computer system comprising a main bus and an additional communication line directly connected between processor and main memory
KR950014554B1 (ko) 데이터기억장치
JPH0731666B2 (ja) プロセッサ間通信方式
US5636365A (en) Hierarchical buffer memories for selectively controlling data coherence including coherence control request means
USRE38514E1 (en) System for and method of efficiently controlling memory accesses in a multiprocessor computer system
JPS592933B2 (ja) 入出力装置共用制御装置
JP3238390B2 (ja) バッファ記憶装置
JP2706082B2 (ja) アドレスバス制御方法
US6295477B1 (en) Bus coupler between a system bus and a local bus in a multiple processor data processing system

Legal Events

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

Payment date: 20010713

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee