KR100369092B1 - 데이타프로세서로부터어드레스신호와데이터신호를제공하는방법과데이터프로세서 - Google Patents

데이타프로세서로부터어드레스신호와데이터신호를제공하는방법과데이터프로세서 Download PDF

Info

Publication number
KR100369092B1
KR100369092B1 KR1019960008998A KR19960008998A KR100369092B1 KR 100369092 B1 KR100369092 B1 KR 100369092B1 KR 1019960008998 A KR1019960008998 A KR 1019960008998A KR 19960008998 A KR19960008998 A KR 19960008998A KR 100369092 B1 KR100369092 B1 KR 100369092B1
Authority
KR
South Korea
Prior art keywords
bus
data
address
bits
providing
Prior art date
Application number
KR1019960008998A
Other languages
English (en)
Other versions
KR960035290A (ko
Inventor
씨. 모이어 윌리암
Original Assignee
모토로라 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 모토로라 인코포레이티드 filed Critical 모토로라 인코포레이티드
Publication of KR960035290A publication Critical patent/KR960035290A/ko
Application granted granted Critical
Publication of KR100369092B1 publication Critical patent/KR100369092B1/ko

Links

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1684Details of memory controller using multiple buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Information Transfer Systems (AREA)
  • Microcomputers (AREA)

Abstract

데이터 프로세싱 시스템 내에서 버스 로딩을 분배하는 장치와 방법이 개시되었다. 한 실시예에서, 본 발명은 어드레스와 데이터가 버스들(60, 62)에 있는 로딩들의 분배를 좀 더 균일하게 할 수 있도록 하기 위해 버스들(60, 62)을 통해 어떻게 전달되어지는지를 결정하는 버스 로딩 제어 레지스터 비트 필드 (90)를 사용한다. 고정된 어드레스나 데이터 버스는 없다. 대신에, 싸이클마다, 각 버스(60, 62)는 단지 어드레스나 단지 데이터만 전송하거나, 어드레스와 데이터 모두 전송하거나 아무 것도 전송하지 않도록 각각 프로그램되어질 수 있다. 한 실시예에 있어서, 각 버스 로딩 비트 필드(90-93)에 대응하는 프로그램가능한 어드레스 범위(150-153)가 있다. 특별한 어드레스 범위에 대해 버스 억세스를 하기 위해, 상응하는 버스 로딩 비트 필드(보기 90)가 어드레스와 데이터가 버스들(60, 62)을 거쳐 어떻게 전달되어지는가를 결정한다.

Description

데이터 프로세서로부터 어드레스 신호와 데이터 신호를 제공하는 방법과 데이터 프로세서
관련 출원들에 관한 참고문헌
본 발명은 다음의 미국 특허 출원들과 관련되어 있다.
1995년 3월 출원되고, 본원 발명의 양수인에게 양도된 변리사 문서번호 SC-02712A 인, 월리암 씨. 모이어(William C. Moyer)에 의해 발명된 "데이터 프로세서를 사용하여 버스 반사 동작을 수행하는 방법과 장치".
1993년 11월 29일 출원되고, 본원 발명의 양수인에게 양도된 일련번호 08/158,584 인, 오데드 이샤(Oded Yishay)에 의해 발명된 "데이터 프로세싱 시스템내에서 다중화가 된것과 다중화가 안된 버스 싸이클을 수행하기 위한 방법과 장치".
1993년 11월 29일 출원되고 본원 발명의 양수인에게 양도된 일련번호 08/158,575인 갖고 있으며, 오데드 이샤이에 의해 발명된 "데이터 프로세싱 시스템 내에서 버스 싸이클 휴지(idle) 시간을 선택적으로 삽입시키기 위한 방법과 장치."
1989년 11월 6일 출원되고, 일련번호 07/432,423을 갖고 있으며, 제임스, 비. 에이페르트에 의해 발명된 "칩 선택 로직을 갖고 있는 집적 회로 마이크로프로세서."
1994년 12월 21일 출원되고, 본원 발명의 양수인에게 양도된 일련번호 08/363,423인, 리(Lee)에 의해 발명된 "제어되는 버스트 메모리 억세스와 방법을 갖고 있는 데이터 프로세서."
1994년 8일 31일 출원되고 본원 발명의 양수인에게 양도된 일련번호08/298,868인 리에 의해 발명된 "파이프 라인된 메모리 억세스를 수행하기 위한 모듈러 칩 선택 제어 회로와 방법."
1994년 8월 31일 출원되고, 본원 발명의 양수인에게 양도된 일련번호 08/298,892인, 리에 의해 발명된 "프로그램가능한 메모리 억세스 인터페이스 형태를 갖는 집적 회로 마이크로프로세서"
1994년 12월 12일 출원되고 본원 발명의 양수인에게 양도된 일련번호 08/353,764인, 리에 의해 발명된 "동기적으로 억세싱하는 메모리에 대한 방법"
1994년 8월 31일에 출원되고 본원 발명의 양수인에게 양도된 일련번호 08/298,638인, 리에 의해 발명된 "칩 선택 신호를 제공하기 위한 프로그램가능한 핀 형태의 로직 회로와 관련 방법."
1994년 8월 31일 출원되고, 본원 발명의 양수인에게 양도된 일련번호 08/298,885인, 리에 의해 발명된 "동기적으로 억세싱하는 메모리에 대한 방법."
발명의 분야
본 발명은 일반적으로 데이터 프로세싱 시스템에 관한 것으로써, 특히, 데이터 프로세싱 시스템 내에서 버스 로딩을 분배하는 장치와 방법에 관한 것이다.
발명의 배경
데이터 프로세싱 시스템 내에 있는 버스에 가해지는 로딩의 양은 데이터 프로세싱 시스템의 성능에 있어서 중요하다. 대부분의 데이터 프로세싱 시스템들은 각 버스가 처리할 수 있으며, 그리고 그 버스에 대한 소정의 전압과 시간 조건들을 만족시키는 최대 버스 로딩(최대 저항과 용량 로딩)을 가지고 있다. 게다가 버스에있는 로딩이 규정된 최대값보다 낮더라도, 버스에 로딩이 많이 가해지면 가해질수록, 그 버스는 더욱 더 늦게 동작한다. 많은 버스들이 데이터 프로세싱 시스템내에서 사용되어진다면(보기; 독립된 어드레스 버스와 독립된 데이터 버스), 다른 버스에서 보다 한 개의 버스에 더욱 더 많은 로딩을 갖지 않는 것이 바람직하다. 마이크로컴퓨터 집적 회로와 같은 데이터 프로세서는 데이터 프로세싱 시스템내에 있는 메모리 집적 회로들과 응용분야 명시 집적 회로와 같은 광범위하게 걸쳐 있는 주변 장치들과 함께 사용되어진다. 몇몇 주변 장치들은 다중화되어진 어드레스와 데이터 버스들을 사용하며, 몇및 주변 장치들은 다중화되지 않은 어드레스와 데이터 버스들을 사용한다. 게다가 몇몇 주변 장치들은 버스 슬레이브(slave)로만 동작하며, 반면에 다른 주변 장치들은 버스 슬레이브 또는 버스 마스터로 동작한다.
데이터 프로세서에 연결된 주변 장치들의 특별한 구성 형태 때문에, 데이터 프로세싱 시스템이 동일하지 않게 로딩이 걸린 버스들을(어드레스와 데이터 버스들) 갖는 것은 이상한 일이 아니다. 데이터 프로세싱 시스템내에서, 시스템에 추가적인 비용을 들이지 않고, 여러가지 버스들 사이에서 버스 로딩을 균일하게 분배시키는 해결책이 필요하게 되었다.
양호한 실시예의 설명
본 발명은 시스템에 추가적인 비용을 들이지 않고, 데이터 프로세싱 시스템내의 여러가지 버스들 사이에 버스 로딩의 더욱 균일한 분배를 허용한다.
제 4 도를 참조하면, 본 발명은 버스(60), (62)에다 좀 더 균일한 로딩의 분배를 가능케 하기 위해 어드레스와 데이터가 버스(60), (62)에 어떻게 전달되어질것인지를 결정하는 버스 로딩 제어 레지스터 비트 필드(90)를 사용한다. 고정된 어드레스 버스나 데이터 버스는 없다. 대신에, 동적 상태와 매 사이클을 기준으로 해서 볼때, 각 버스(60), (62)는 단지 어드레스만, 단지 데이터만, 그리고 어드레스와 데이터, 또는 어드레스나 데이터용이 아닌 다른 것을 전달하기 위해 각각 프로그램되어질 수 있다. 게다가 제어 레지스터(80)들이 리셋이 끝난후, 한번 프로그램되어질 필요가 있기 때문에, 백 투 백 (back to back) 버스 싸이클들은 어떤 소프트웨어 또는 하드웨어가 필요가 없으며 전혀 다른 형태로 되어 있는 버스 (60)와 (62)를 사용할 수 있다.
제 5 도를 참조하면, 본 발명의 한 실시예에 있어서, 각각의 버스 로딩 제어 레지스터 비트 필드(90-93)에 대응하는 프로그램가능한 어드레스 범위(150-153)가 있다. 특별한 어드레스 범위에 대한 버스 억세스에 대해서는, 대응하는 버스 로딩 제어 레지스터 비트 필드(예: 90)는 어드레스와 데이터가 버스(60), (62)를 통해 어떻게 전달되는가를 결정하기 위해 사용되어진다. 그러므로 버스(60 또는 62)는 제 1 버스 싸이클 동안에는 단지 주소값만을 전달하고, 제 2 버스 싸이클 동안에는 단지 데이터값만을 전달하고 제 3 버스 싸이클 동안에는 다중화 방식으로 주소값과 데이터값 모두를 전달한다. 제 1, 제 2, 제 3 버스 싸이클은 버스 싸이클간에 어떤 레지스터나 제어 비트들을 프로그램시킬 필요없이 백 투 백 형태로 발생한다는 것에 주의해야 한다.
게다가, 본 발명은 데이터 프로세서와 주변기기들간에 추가의 "글루 로직"(glue logic)을 요구하지 않고 관련 주변 기기와 데이터 프로세서 사이에 요구되어지는 상호 접속을 최소화하기 위해 사용되어진다.
"버스"라는 용어는 데이터, 어드레스, 제어 또는 상태와 같은 한 개 또는 그 이상의 여러가지 형태의 정보를 전달하기 위해 사용되어지는 다수의 신호들 또는 도체를 언급하는데 사용되어질 것이다. "표명(assert)"과 "부정(negate)"이라는 용어는 신호, 상태 비트 또는 비슷한 장치의 상태를 논리적으로 참 또는 거짓으로 언급할 때에 사용되어진다. 만약, 논리 참 상태가 논리적 수준(1)이라면, 논리 거짓 상태는 논리적 수준 (0)이 될 것이다. 만약 논리 참 상태가 논리적 수준(0)이라면, 논리 거짓 상태는 논리적 수준(1)이 될 것이다.
괄호들은 버스의 도체 성질들이나 어떤 값의 비트 위치들을 나타내기 위해 사용되어질 것이다. 예를들면, "버스 60[0-7]" 또는 "버스 60 의 도체[0-7]"는 버스(60)중 8 개의 낮은 위치의 도체를 나타내고, "어드레스 비트들[0-7]" 또는 "ADDRESS[0-7]"은 어드레스값중 8 개의 낮은 위치의 비트들을 표시한다. 표시 "$"는 숫자가 16 진법이나 16 진수 형태로 표현되었다는 것을 표시한다. 심볼 "%"은 숫자가 2 진법이나 2 진수 형태로 표현되었다는 것을 표시한다.
도면의 설명
제 1 도는 데이터 프로세서(10)과 메모리 뱅크(50), (55)를 갖고 있는 데이터 프로세싱 시스템을 도시하고 있다. 데이터 프로세서(10)는 버스(60), (62)와 칩 선택 도체(64)를 통해 메모리 뱅크(50)와 연결되어 있다. 데이터 프로세서(10)는 버스(60), (62)와 칩 선택 도체(65)를 통해 메모리 뱅크(55)에 연결되어 있다. 제 1-4 도에 도시된 본 발명의 실시예들은 버스 (60)와 (62)를 32-비트 버스들로 도시하고 있지만, 본 발명의 다른 실시예들은 각 버스내의 도체의 어떠한 갯수도 사용한다.
데이터 프로세서(10)는 버스(24)를 통해 양방향으로 연결된 시스템 집적 회로와 중앙 처리 회로(12)를 포함하고 있다. 메모리 뱅크(50)는 메모리(51-54)를 포함하고, 메모리 뱅크(55)는 메모리(56-59)를 포함하고 있다. 본 발명의 한 실시예에서, 데이터 프로세서(10)와 메모리(51-54), (56-59)의 각 메모리는 독립된 집적 회로를 통해 기능이 수행되어진다. 본 발명의 다른 실시예에서는, 데이터 프로세싱 시스템(11)의 모든 것은 한 개의 집적 회로에서 수행이 되어진다. 본 발명은 단일 집적 회로내에서, 기판상의 집적 회로 사이에서 또는 좀 더 멀리 분배되어지는 시스템들 사이에서 버스 로딩을 더욱 균일하게 분배하기 위해 사용될 수 있다.
제 1 도를 참조하면, 메모리(51)는 데이터 비트들[0-7]을 수신하기 위해 버스(62)의 도체[0-7]에 연결된 데이터 포트를 가지고 있다. 메모리(51)는 버스(60)의 도체[0-31]에 연결된 어드레스 포트를 가지고 있다. 게다가 메모리(51)는 칩 선택 신호를 수신하기 위해 도체(64)에 연결된 칩 선택 입력을 가지고 있다. 메모리(52)는 데이터 비트들[8-15]을 수신하기 위해 버스(62)의 도체[8-15]에 연결된 데이터 포트를 가지고 있다. 메모리(52)는 또한 버스(60)의 도체[0-31]에 연결된 어드레스 포트를 가지고 있다. 게다가 메모리(52)는 칩 선택 신호를 수신하기 위해 도체에 연결된 칩 선택 입력을 가지고 있다. 메모리(53)는 데이터 비트들[16-23]을 수신하기 위해 버스(62)의 도체[16-23]에 연결된 데이터 포트를 가지고 있다.
메모리(53)는 또한 버스(60)의 도체[0-31]에 연결된 어드레스 포트를 가지고 있다. 게다가 메모리(53)는 칩 선택 신호를 수신하기 위해 도체(64)에 연결된 칩 선택 입력을 가지고 있다. 그리고 메모리(54)는 데이터 비트들을 [24-31] 수신하기 위해 버스(62)의 도체[24-31]에 연결된 데이터 포트를 가지고 있다. 메모리(54)는 또한 버스(60)의 도체[0-31]에 연결된 어드레스 포트를 가지고 있다. 게다가 메모리(54)는 칩 선택 신호를 수신하기 위해 도체(64)에 연결된 칩 선택 입력을 가지고 있다.
이와 비슷하게, 메모리(56)는 데이터 비트들을[0-7] 수신하기 위해 버스(62)의 도체[0-7]에 연결된 데이터 포트를 가지고 있다. 메모리(56)는 또한 버스(60)의 도체[0-31]에 연결된 어드레스 포트를 가지고 있다. 게다가 메모리(56)는 칩 선택 신호를 수신하기 위해 도체(65)에 연결된 칩 선택 입력을 가지고 있다. 메모리(57)는 데이터 비트들[8-15]을 수신하기 위해 버스(62)의 도체[8-15]에 연결된 데이터 포트를 가지고 있다. 메모리(57)는 또한 버스(60)의 도체[0-31]에 연결된 어드레스 포트를 가지고 있다. 게다가 메모리(57)는 칩 선택 신호를 수신하기 위해 도체(65)에 연결된 칩 선택 입력을 가지고 있다. 메모리(58)는 데이터 비트들[16-23]을 수신하기 위해 버스(62)의 도체[16-23]에 연결된 데이터 포트를 가지고 있다. 메모리(58)는 또한 버스(60)의 도체[0-31]에 연결된 어드레스 포트를 가지고 있다. 게다가 메모리(58)는 칩 선택 신호를 수신하기 위해 도체에 연결된 칩 선택 입력을 가지고 있다. 메모리(59)는 데이터 비트들[24-31]을 수신하기 위해 버스(62)의 도체[24-31]에 연결된 데이터 포트를 가지고 있다.
메모리(59)는 버스(60)의 도체에 [0-3] 연결된 어드레스 포트를 가지고 있다. 게다가 메모리(59)는 칩 선택 신호를 수신하기 위해 도체(65)에 연결된 칩 선택 입력을 가지고 있다.
제 2 도를 참조하면, 제 2 도는 데이터 프로세서(10)와 메모리 뱅크(50), (55)를 갖고 있는 데이터 프로세싱 시스템 (13)을 도시하고 있다. 데이터 프로세서(10)는 버스(60), (62)와 칩 선택 도체(64)를 통해 메모리 뱅크(50)애 연결되어 있다. 데이터 프로세서(10)는 버스(60), (62)와 칩 선택 도체 (65)를 통해 메모리 뱅크(55)에 연결되어 있다.
데이터 프로세서(10)는 중앙 처리 장치 회로(12)와 버스 (24)를 통해 양방향으로 연결된 시스템 집적 회로(22)를 포함하고 있다. 메모리 뱅크(50)는 메모리(51-54)를 포함하고 있으며, 메모리 뱅크(55)는 메모리(56-59)를 포함하고 있다. 본 발명의 한 실시예에 있어서, 데이터 프로세서(10)와 메모리 (51-54), (56-59)의 각 메모리는 독립된 집적 회로에 의헤 그 기능이 수행되어진다. 본 발명의 다른 실시예에 있어서는, 데이터 프로세싱 시스템(13)의 모든 것은 한 개의 집적 회로에서 수행이 되어진다. 본 발명은 단 한 개의 집적 회로를 가지고 기판위의 집적 회로 사이에서 또는 좀 더 멀리 분배되어지는 시스템들 사이에서 버스 로딩을 균일하게 분배하는데 사용되어진다.
제 2 도의 메모리 뱅크(50)는 제 1 도의 메모리 뱅크 (50)와 같이 같은 방식으로 버스(60), (62)에 연결되어져 있다. 메모리(51)는 데이터 비트들[0-7]을 수신하기 위해 버스(62)의 도체[0-7]에 연결된 데이터 포트를 가지고 있다. 메모리(51)는 버스(60)의 도체[0-31]에 연결된 어드레스 포트를 가지고 있다. 게다가 메모리(51)는 칩 선택 신호를 수신하기 위해 도체(64)에 연결된 칩 선택 입력을 가지고 있다. 메모리 (52)는 데이터 비트들[8-15]을 수신하기 위해 버스(62)의 도체[8-15]에 연결된 데이터 포트를 가지고 있다. 메모리(52)는 버스(60)의 도체[0-31]에 연결된 어드레스 포트를 가지고 있다. 게다가 메모리(52)는 칩 선택 신호를 수신하기 위해 도체(64)에 연결된 칩 선택 입력을 가지고 있다. 메모리 (53)는 데이터 비트[16-23]들을 수신하기 위해 버스(62)의 도체[16-23]에 연결된 데이터 포트를 가지고 있다. 메모리 (53)는 버스(60)의 도체[0-31]에 연결된 어드레스 포트를 가지고 있다. 게다가 메모리(53)는 칩 선택 신호를 수신하기 위해 도체(64)에 연결된 칩 선택 입력을 가지고 있다. 그리고 메모리(54)는 데이터 비트[24-31]들을 수신하기 위해 버스(62)의 도체[24-31]에 연결된 데이터 포트를 가지고 있다. 메모리 (54)는 버스(60)의 도체[0-31]에 연결된 어드레스 포트를 가지고 있다. 게다가 메모리(54)는 칩 선택 신호를 수신하기 위해 도체(64)에 연결된 칩 선택 입력을 가지고 있다.
제 2 도의 메모리 뱅크(55)는 제 1 도의 메모리 뱅크 (55)와는 다른 방식으로 버스(60), (62)에 연결되어 있다. 제 1 도에서, 메모리(56-59)의 데이터 포트들은 버스(62)에 연결되어 있다. 메모리(56-59)의 어드레스 포트들은 버스(60)에 연결되어 있다. 그러나 제 2 도에서는 버스(60)와 버스(62)의 역할이 바뀌었다. 메모리(56-59)의 데이터 포트들은 버스(60)에 연결되어 있고, 어드레스 포트들은 버스(62)에 연결되어져 있다. 그러므로 데이터 프로세싱 시스템(13)에서, 버스(60)는 어드레스 값과 데이터값인, 어드레스 비트들[0-31]과 데이터 비트들 [0-31]을 전달한다.
제 2 도를 계속 참조하면 메모리(56)는 데이터 비트 [0-7]들을 수신하기 위해 버스(60)의 도체[0-7]에 연결된 데이터 포트를 가지고 있다. 메모리(56)는 버스(62)의 도체 [0-31]에 연결된 어드레스 포트를 가지고 있다. 게다가 메모리(56)는 칩 선택 신호를 수신하기 위해 도체(65)에 연결된 칩 선택 입력을 가지고 있다. 메모리(57)는 데이터 비트[8-15]들을 수신하기 위해 버스(60)의 도체[8-15]에 연결된 데이터 포트를 가지고 있다. 메모리(57)는 버스(62)의 도체[0-31]에 연결된 어드레스 포트를 가지고 있다. 게다가 메모리(57)는 칩 선택 신호를 수신하기 위해 도체(65)에 연결된 칩 선택 입력을 가지고 있다. 메모리(58)는 데이터 비트[16-23]들을 수신하기 위해 버스(60)의 도체에 연결된 데이터 포트를 가지고 있다. 메모리(58)는 또한 버스(62)의 도체[0-31]에 연결된 어드레스 포트를 가지고 있다. 게다가 메모리(58)는 칩 선택 신호를 수신하기 위해 도체(65)에 연결된 칩 선택 입력을 가지고 있다. 메모리(59)는 데이터 비트[24-31]들을 수신하기 위해 버스(60)의 도체[24-31]에 연결된 데이터 포트를 가지고 있다. 메모리(59)는 버스(62)의 도체[0-31]에 연결된 어드레스 포트를 가지고 있다. 게다가 메모리(59)는 칩 선택 신호를 수신하기 위해 도체(65)에 연결된 칩 선택 입력을 가지고 있다.
제 3 도를 참조하면, 제 3 도는 매모리 뱅크(50), (55)와 집적 회로(70), (72)와 데이터 프로세서(10)를 갖는 데이터 프로세싱 시스템(15)을 도시하고 있다.제 3 도에 있는 메모리 뱅크(50), (55)는 버스(60), (62)와 칩 선택 도체(64-65)에 제 2 도에서 도시한 것과 같이 똑같은 방식과 위에서 서술한 바와 같이 연결되어져 있다.
데이터 처리기(10)는 칩 선택 도체(64)와 버스(60), (62)를 통해 메모리 뱅크(50)에 연결되어 있다. 데이터 처리기 (10)는 버스(60), (62)와 칩 선택 도체(65)를 통해 메모리 뱅크(55)에 연결되어 있다. 데이터 처리기(10)는 버스(60)와 칩 선택 도체(66)를 통해 집적 회로(70)에 연결되어 있다. 집적 회로(70)의 다중화된 어드레스/데이터 포트는 버스(60)를 통해 어드레스와 데이터값들을 주고 받는다. 집적 회로(70)는 버스 (62)를 통해 어떠한 어드레스나 데이터값들을 수신하지 않으며, 그것들과 연결되어 있지 않다. 데이터 처리기(10)는 버스(62)와 칩 선택 도체(67)를 통해 집적 회로(72)에 연결되어 있다. 집적 회로(72)의 다중화된 어드레스/데이터 포트는 버스(62)를 통해 어드레스와 데이터값들을 주로 받는다. 집적회로(70)는 버스(60)를 통해 어떠한 주소나 데이터값들을 수신하지도 않고, 그것들과도 연결되어 있지 않다.
데이터 처리기(10)는 버스(24)를 통해 양방향으로 연결되어 있는 시스템 집적 회로(22)와 중앙 처리 장치 회로 (12)를 포함하고 있다. 매모리 뱅크(50)는 메모리(51-54)를 메모리 뱅크(55)는 메모리(56-59)를 포함하고 있다. 본 발명의 한 실시예에서는, 데이터 프로세서(10)와 메모리(51-54), (56-59)들의 각 메모리는 독립된 집적 회로를 통하여 그 기능이 수행되어진다. 본 발명의 다른 실시예에서는, 데이터 프로세싱 시스템(15)의 모든 것은 한 개의 집적 회로에서 수행되어진다. 본발명은 한 개의 집적 회로를 가지고 기판위에 있는 집적 회로 사이나 좀 더 멀리서 분배되어지는 시스템들 사이에서 버스 로딩을 좀 더 균일하게 분배하기 위해 사용되어진다.
제 1-3 도를 참조하면, 본 발명의 몇가지 실시예에서, 데이터 프로세서(10)는 한 개의 집적 회로에서 형성되어진다. 몇몇 실시예에서는, 데이터 프로세서(10)는 한 개의 칩 마이크로 제어기이다. 다른 실시예에 있어서는 데이터 처리기(10)가 어떤 형태의 전기 회로를 이용하여 수행이 되어진다. 메모리(51- 54)와 (56-59) 메모리의 어떤 형태들이다. 데이터 프로세싱 시스템(11), (13), (15)의 다른 실시예들은 더 많거나 적거나 다른 주변 장치(51-54, 56-59, 70, 72)들을 포함한다. 게다가 버스(60), (62)들이 32 비트 버스들로 도시되었지만, 본 발명의 다른 실시예들은 버스(60), (62)내에 있는 비트들중 어떠한 갯수의 비트들을 사용한다.
데이터 처리기(10)는 중앙 처리 장치 회로(12)와 버스 (24)를 통해 양방향으로 결합된 시스템 집적 회로(22)를 포함한다. 메모리 뱅크(50)는 메모리(51-54)를 메모리 뱅크 (55)는 메모리(56-59)를 포함하고 있다. 본 발명의 한 실시예에 있어서, 데이터 프로세서(10)와 메모리(51-54), (56-59)의 각 메모리는 분리된 집적 회로를 통해 그 기능이 수행되어진다. 본 발명의 다른 실시예에 있어서는, 데이터 프로세싱 시스템(15)의 모든 기능은 한 개의 집적 회로에서 수행이 되어진다. 본 발명은 기판위의 집적 회로 사이에서나 또는 좀 더 멀리 분배되어지는 시스템들 사이에서, 한 개의 집적 회로내에서 버스 로딩을 좀 더 균일하게 분배하기 위해 사용되어진다.
제 1-3 도를 참조하면, 본 발명의 몇몇 실시예에 있어서는, 데이터 프로세서(10)가 한 개의 집적 회로위에 형성되어진다. 다른 실시예에서는 데이터 프로세서(10)는 전기 회로의 어떠한 형태를 사용하여 수행이 되어진다. 메모리 (51-54), (56-59)는 어떠한 형태의 메모리가 될 수 있다.
데이터 프로세싱 시스템(11, 13, 15)의 다른 실시예들은, 좀 더 많거나, 적거나, 또는 다른 주변 장치(51-54, 56-59, 70, 72)들을 포함하고 있다. 게다가, 버스(60), (62)들은 32-비트 버스들로 도시되어 있지만, 본 발명의 다른 실시예는 버스(60), (62)들내에 있는 비트들중 어느 갯수를 사용하고 있다.
제 4 도를 참조하면, 제 4 도는 본 발명의 한 실시예에 근거한 제 1-3 도의 시스템 집적 회로(22)의 한 부분을 도시하고 있다. 시스템 집적 회로(22)는 레지스터(80), 버스 결합 회로 (100), 비교 회로(101), 제어 회로(102), 칩 선택 발생회로(104), 터미날들(124), 터미날들(126)과 터미날들(128)로 구성되어 있다. 버스(24)는 양방향으로 어드레스, 버스, 제어 정보를 전달한다. 버스(110)는 어드레스 비트들[0-31]을 제공하는 버스(24)의 부분이지만, 데이터 버스(112)는 데이터 비트들[0-31]을 제공하는 버스(24)의 부분이며, 버스(24)의 제어 부분은 제어 회로(102)에 제공되어진다. 본 발명의 몇몇 실시예에 있어서, 제어 회로(102)는 한 개 또는 그 이상의 터미날들(도시되지 않았음)을 통해 데이터 프로세서(10)에 대해 외부 정보인 외부 버스 싸이클 제어 신호들을 제공한다(보기: 어드레스 스트로브(strobe), 데이터 스트로브, 입력 스트로브, 행 어드레스 스트로브, 열 어드레스 스트로브, 판독/입력).
버스(24)는 CPU(12)가 레지스터(80)에 대한 입력과 판독을 수행하기 위해 레지스터(80)에 연결되어 있다. 버스(24)는 제어 정보를 제공하고, 수신하기 위해 제어 회로(102)에 연결되어 있다. 버스(24)는 어드레스 비트들[0-31]과 데이터 비트들 [0-31]과 서로 통신하기 위해 어드레스 버스(110)와 데이터 버스 (112)를 통해 버스 결합 회로(100)에 연결되어 있다. 그리고 버스(24)는 어드레스 비트들[0-31]중 최소한 한 부분을 제공하기 위해 비교 회로(101)에 연결되어 있다.
레지스터(80)는 레지스터(84)를 포함한다. 레지스터 (84)는 버스 로딩 제어 비트(90), 어드레스 범위 비트(150)와 다른 칩 선택 제어 비트(94)를 포함하고 있다. 버스 로딩 제어 비트(90)들은 도체(114)를 통해 버스 결합 회로(100)에 제공되어진다. 비교 회로(101)는 어드레스 범위 비트(150)들과 가능하면 다른 칩 선택 제어 비트(94)들중 한 개 또는 그 이상을 수신하기 위해 레지스터(80)에 연결되어 있다. 비교 회로 (101)는 도체(121)를 통해 비교 결과 신호들을 제어 회로 (102)에 제공한다. 제어 회로(102)는 도체(116)를 통해 제어 신호들을 버스 결합 회로(100)에 제공하며, 또한 제어 회로 (102)는 도체(118)를 통해 제어 신호들을 칩 선택 발생 회로 (104)에 제공한다. 제어 회로(102)는 양방향으로 레지스터 (80)에 연결되어 있다. 본 발명의 한 실시예에서는, 제어 회로 (102)가 다른 칩 선택 제어 비트(94)들로부터 제어 비트들을 수신하고 다른 칩 선택 제어 비트(94)에게 상태 정보를 제공한다. 본 발명의 다른 실시예들에 있어서는, 제어 회로(102)와 결합 회로(100)의 기능이 한 회로로 합쳐진다.
버스 결합 회로(100)는 버스(60)를 통해 터미날(124)에 양방향으로 결합되어있다. 버스 결합 회로(100)는 버스(62)를 통해 양방향으로 터미날(126)에 연결되어 있다. 칩 선택 발생 회로(104)는 칩 선택 도체(64-67)를 통해 양방향으로 터미날 (128)에 연결되어 있다. 다수의 터미날(124)들은 데이터 프로세서(10)에 대해 외부에 있는 버스(60)를 제공하기 위해 사용되어진다. 다수의 터미날(126)들은 데이터 프로세서(10)에 대해 외부에 있는 버스(62)를 제공하기 위해 사용되어진다.
그리고 다수의 터미날들(128)은 데이터 프로세서(10)에 대해 외부에 있는 칩 선택 신호(64-67)들을 제공하는데 사용되어진다.
집적 회로 터미날들(124, 126, 128)은 전기 신호들이 데이터 프로세서(10)로부터 나오거나 들어가게끔 해주는 어떠한 형태의 장치이다. 예를들면, 집적 회로 터미날들(124, 126, 128)은 집적 회로 핀, 땜납 범프(solder bump), 와이어 도체(wire conductor)가 될 수 있다.
제 5 도를 참조하면, 제 5 도는 본 발명의 한 실시예에 따르며 제 4 도에 있는 레지스터(80)들을 도시한 것이다. 본 발명의 한 실시예에서는, 레지스터(80)가 레지스터(84), (85), (86), (87)를 포함하고 있다. 레지스터(84-87)들의 각각은 칩 선택 신호들(64-67)의 하나에 대응한다. 레지스터(84)는 버스 로딩 제어 비트(90), 어드레스 범위 비트(150)와 다른 칩 선택 제어 비트(94)를 포함하고 있다. 레지스터(85)는 버스 로딩 제어 비트(91), 어드레스 범위 비트(151), 다른 칩 선택제어 비트(95)를 포함한다. 레지스터(86)는 버스 로딩 제어 비트 (92), 어드레스 범위 비트(152)와 다른 칩 선택 제어 비트 (6)를 포함하고 있다. 그리고 레지스터(87)는 버스 로딩 제어 비트(93), 어드레스 범위 비트(153)와 다른 칩 선택 제어 비트(97)들을 포함하고 있다. 버스 로딩 제어 비트(90-93)들은 도체(114)를 통해 버스 결합 회로(100)에 제공되어진다.
비교 회로(101)는 어드레스 범위 비트(150)와 다른 칩 선택 제어 비트(94)들 중 한 개 또는 그 이상의 비트를 수신하기 위해 레지스터(80)에 연결되어 있다. 제어 회로(102)는 양방향으로 레지스터(84-87)에 연결되어 있다. 본 발명의 한 실시예에 있어서, 제어 회로(102)는 다른 칩 선택 제어 비트(94-97)들로부터 제어 비트들을 수신하고, 다른 칩 선택 제어 비트(94-97) 들에게 상태 정보를 제공해 준다.
본 발명의 한 실시예에 있어서, 레지스터(80)들은 몇 개의 레지스터 비트 필드(90-93), (150-153), (94-97)를 가지고 있으며, 각 필드는 제어 또는 상태값을 저장하기 위한 저장 회로를 포함하고 있다. 제 4 도에 도시된 레지스터(84)는 적어도 3 개의 레지스터 필드들(90, 150, 154)을 포함하고 있지만, 본 발명의 다른 실시예들은 좀 더 많거나, 적거나 또는 다른 레지스터 비트 필드를 사용하고 있다. 그리고 각 레지스터 비트 필드는 제어, 상태 또는 두 가지 모두를 위해 사용되어진다. 게다가 본 발명의 다른 실시예는 한 개 또는 그 이상의 독립 레지스터들내에 있는 비트 필드(90-93), (150-153), (94-97)를 찾아낸다. 또한 본 발명의 다른 실시예들은 제 5 도에 도시된 레지스터 비트 필드(90-93), (150-153), (94-97)의 각각에 대해서 비트들의 어떤 수를 포함하고 있다. 본 발명의 몇몇 실시예에 있어서, 레지스터 비트 필드들의 한 개 또는 그 이상의 제어 기능은 좀 더 적은 레지스터 비트 필드로 합쳐지거나 암호화(encode)되어진다.
양호한 실시예들의 동작
본 발명의 동작이 설명되어질 것이다. 제 1-3 도는 서로 다른 3 개의 데이터 프로레싱 시스템(11, 13, 15)들을 각각 도시하고 있다. 데이터 프로세싱 시스템들(11, 13, 15)은 모두 같은 데이터 프로세서(10)와 같은 메모리 뱅크(50, 55)를 가지고 있다. 데이터 프로세싱 시스템(15)(제 3 도를 참조)은 집적 회로(70), (72)를 포함하고 있다. 각 회로는 한 개의 다중화된 어드레스/데이터 버스를 요구한다. 제 1, 2, 3 도간의 주요 차이점은 주변 장치(보기: 메모리(51-54), (56-59))들이 데이터 프로세서(10)와 버스 로딩 제어 비트들에(제 4 도의 90 참조) 의해 선택된 버스 로딩 모드에 연결된 방법이다. 레지스터(80) 내의 비트들은 CPU(12)로부터 나온 입력 억세스에 의해 프로그램이 되어진다. 본 발명의 다른 실시예들에 있어서는 레지스터(80)내의 비트들은 다른 버스 마스터(master)에 의해 (제 5 도의 집적 회로 70) 프로그램이 되어진다.
버스 로딩 제어 비트들(90-93)(제 5 도 참조)은 다음과 같은 방식으로 버스 로딩 모드를 선택한다.
버스 로딩 제어 비트들(BL) 90
(버스 싸이클에 대한 어드레스가 어드레스 범위 비트들 (150)에 의해 정의된 어드레스 범위내에 있다면 사용되어진다)
%00 - 버스(60)[0:31]는 어드레스 버스로 동작하며, 버스 (62)[0:31]는 데이터 버스로 동작한다.
%01 - 버스(60)[0:31]는 어드레스와 데이터 버스로 동작한다.
%10 - 버스(62)[0:31]는 어드레스와 데이터 버스로 동작한다.
%11 - 버스(62)[0:31] 어드레스 버스로 동작하고, 버스(60)[0:31]는 데이터 버스로 동작한다.
버스 로딩 제어 비트들(BL) 91
(버스 싸이클에 대한 어드레스가 어드레스 범위 비트들 (151)에 의해 정의된 어드레스 범위내에 있다면 사용되어진다)
%00 - 버스(60)[0:31]는 어드레스 버스로 동작하며, 버스 (62)[0:31]는 데이터 버스로 동작한다.
%01 - 버스(60)[0:31]는 어드레스와 데이터 버스로 동작한다.
%10 - 버스(62)[0:31]는 어드레스와 데이터 버스로 동작한다.
%11 - 버스(62)[0:31]는 어드레스 버스로 동작하고, 버스(60)[0:31]는 데이터 버스로 동작한다.
버스 로딩 제어 비트들(BL) 92
(버스 싸이클에 대한 어드레스가 어드레스 범위 비트들 (152)에 의해 정의된 어드레스 범위내에 있다면 사용되어진다)
%00 - 버스(60)[0:31]는 어드레스 버스로 동작하며, 버스 (62)[0:31]는 데이터 버스로 동작한다.
%01 - 버스(60)[0:31]는 어드레스와 데이터 버스로 동작한다.
%10 - 버스(62)[0:31]는 어드레스와 데이터 버스로 동작한다.
%11 - 버스(62)[0:31]는 어드레스 버스로 동작하고, 버스(60)[0:31]는 데이터 버스로 동작한다.
버스 로딩 제어 비트들(BL) 93
(버스 싸이클에 대한 어드레스가 어드레스 범위 비트들 (153)에 의해 정의된 어드레스 범위내에 있다면 사용되어진다)
%00 - 버스(60)[0:31]는 어드레스 버스로 동작하며, 버스 (62)[0:31]는 데이터 버스로 동작한다.
%01 - 버스(60)[0:31]는 어드레스와 데이터 버스로 동작한다.
%10 - 버스(62)[0:31]는 어드레스와 데이터 버스로 동작한다.
%11 - 버스(62)[0:31]는 어드레스 버스로 동작하고, 버스(60)[0:31]는 데이터 버스로 동작한다.
설명의 목적을 위해, 제 1-3 도에 도시된 각각의 주변 집적 회로 (51, 52, 53, 54, 56, 57, 58, 59, 70, 72)는 거의 동일한 버스 로딩을 표현하게 된다. 예를들어, 제 3 도를 참조하면, 메모리 (54)와 집적 회로(70)는 버스(60)[0:31]에 연결되어 있고, 버스 (60)[0:31]에 있는 2 개의 로딩을 표현하고 있다. 버스 로딩을 결정하는데 있어서, 메모리(51-54)와 (56-59)의 각 데이터 포트는 32 비트 버스중 단지 8 비트에만 연결되어져 있다.
그러므로, 보기로서 제 1 도에 있는 메모리(51-54)들은 버스(62) [0:31]에 있는 단지 한 개의 로딩을 표현하고 있다. 버스(60), (62)들의 버스 로딩은 제1-3 도에 대해서 다음과 같다.
제 1 도 : 데이터 프로세싱 시스템(11)
버스(60)[0:31]는 8 개의 로딩을 갖는다.
버스(62)[0:31]는 2 개의 로딩을 갖는다.
제 2 도 : 데이터 프로세싱 시스템(13)
버스(60)[0:31]는 5 개의 로딩을 갖는다.
버스(62)[0:31]는 5 개의 로딩을 갖는다.
제 3 도 : 데이터 프로세싱 시스템(15)
버스(60)[0:31]는 6 개의 로딩을 갖는다.
버스(62)[0:31]는 6 개의 로딩을 갖는다.
제 1 도를 참조하면, 데이터 프로세싱 시스템(11)은 매우 불균형한 버스 로딩을 가지고 있다. 버스(60)[0:31]는 8 개의 로딩을 가지고 있고, 버스(62)[0:31]는 단지 2 개의 로딩을 가지고 있다. 버스(60)를 참조하면, 메모리들(51-54), (56- 59)의 각 32 비트 어드레스 포트는 버스(60)의 모든 32 비트들에 연결되어 있다. 버스(62)를 참조하면, 버스(62)[0:31]는 메모리 (51-54), (56-59)중 단지 2개의 메모리의 8 비트 데이터 포트들이 버스(60)의 각 8 비트에 연결되어 있기 때문에 단지 2 개의 로딩만을 가지고 있다.
제 1 도와 제 5 도를 참조하면, 매모리 뱅크(50)는 칩 선택 신호(64)에 의해 선택되어졌다. 레지스터(84)는 칩 선택 신호(64)에 대응하는데, 버스 로딩 모드(비트들 90)과 어드레스 범위(비트들 150), 칩 선택 신호(64)의 다른 특성들(비트들 94) 및 메모리 뱅크(50)에 대한 억세스들을 결정하는데 사용되어진다. 메모리 뱅크(55)는 칩 선택 신호(65)에 의해 선택되어진다. 레지스터(85)는 칩 선택 신호(65)에 대응하는데, 버스 로딩 모드 (비트들 91), 어드레스 범위(비트들 151)와 칩 선택 신호(65)의 다른 특성들(비트들 95) 및 메모리 뱅크(55)에 대한 억세스들을 결정하는데 사용되어진다.
제 1 도를 참조하면, 버스 로딩 모드 비트들(90)은 메모리 뱅크(50)에 대한 억세스들이 어드레스값[0:31]을 전달하기 위해 버스(60)[0:31]를 어드레스 버스로 사용하고, 데이터값[0:31]을 전달하기 위해 버스(62)[0:31]를 데이터 버스로 사용하도록 하기 위해 %00 으로 프로그램되어진다. 버스 로딩 모드 비트들(91)은 메모리 뱅크(55)에 대한 억세스들이 어드레스값을 [0:31] 전달하기 위해 버스(60)[0:31]를 어드레스 버스로 사용하고, 데이터값[0:31]을 전달하기 위해 버스(62) [0:31]를 데이터 버스로 사용하도록 하기 위해 %00 으로 프로그램되어진다. 그러므로, 제 1 도에 도시된 데이터 프로세싱 시스템(11)에 대해서, 버스(60)는 단지 32 비트 어드레스값을 전달하기 위해 사용되어지며, 버스(62)는 단지 32 비트 데이터값을 전달하기 위해 사용되어진다. 데이터 프로세싱 시스템(11)은 전용 어드레스와 데이터 버스들을 사용하는 종래의 태이터 프로세싱 시스템과 비슷한 방법으로 동작한다. 유감스럽게도 버스(60)를 전용 어드레스 버스로 그리고 버스(62)를 전용 데이터 버스로 사용함으로써, 버스 (60)에 대한 버스 로딩(8 개)은 버스(62)에 대한 로딩(2 개) 보다 더욱 크다.
데이터 프로세싱 시스템(13)은(제 2 도 참조) 본 발명이 버스(60), (62)에 대한 버스 로딩을 어떻게 조절하는지를 도시하고 있다. 제 2 도에 있는 데이터 프로세싱 시스템(13)은 제 1 도에 있는 동일한 메모리 뱅크(50), (55)와 데이터 프로세서를 사용한다. 그러나 제 2 도에서 본 발명은, 버스 (60), (62)의 기능이 다른버스 싸이클에 대해 변화되어지도록 한다.
제 2 도를 참조하면, 버스 로딩 모드 비트들(90)은 메모리 뱅크(50)에 대한 억세스들이 어드레스값[0:31]을 전달하기 위해 버스(60)[0:31]를 어드레스 버스로 사용하고, 데이터값[0:31]을 전달하기 위해 버스(62)[0:31]를 데이터 버스로 사용하도록 하기 위해 %00 으로 프로그램되어진다. 버스 로딩 모드 비트들(91)은 메모리 뱅크(55)에 대한 억세스들이 어드레스값을 [0:31] 전달하기 위해 버스(62)[0:31]를 어드레스 버스로 사용하고, 데이터값[0:31]을 전달하기 위해 버스(60) [0:31]를 데이터 버스로 사용하도록 하기 위해 %00 으로 프로그램되어진다. 그러므로, 제 2 도에 도시된 데이터 프로세싱 시스템(13)에 대해서, 버스(60)는 32 비트 어드레스 값이나 32 비트 데이터값을 전달하기 위해 사용되어지며 그리고, 버스(62)도 32 비트 데이터값이나 32 비트 어드레스값을 전달하기 위해 사용되어진다. 데이터 프로세싱 시스템(13)은 전용 어드레스와 데이터 버스들을 사용하지 않는다. 결과적으로, 버스(60)에 대한 버스 로딩(5 개)은 버스(62)에 대한 로딩 (5 개)과 동일하게 된다.
제 2 도를 참조하면, 데이터 프로세싱 시스템(13)은 제 1 도의 데이터 프로세싱 시스템(11)보다 더욱 더 많은 균등한 버스 로딩을 가지고 있다. 버스(60)[0:31]는 5 개의 로딩을, 버스(62)[0:31]도 5 개의 로딩을 가지고 있다. 버스(60)를 참조하면, 메모리(51-54)의 각 32 비트 어드레스 포트는 버스 (60)의 모든 32 비트들에 연결되어 있다. 그리고 메모리들 (56-59)중 단지 한 개만의 데이터 포트가 버스(60)의 각 8 비트들에 연결되어 있다. 이와 비숫하게, 버스(62)에서도, 버스(62)[0:31]도 5 개의 로딩을 가지고 있다. 왜냐하면 메모리 (56-59)의 각 32 비트 어드레스 포트는 버스(62)의 모든 32 비트들에 연결되어 있으며, 메모리(51-54)중 단지 한 개의 데이터 포트가 버스(62)의 각 8 비트에 연결되어 있다.
제 2 도와 제 5 도를 참조하면, 메모리 뱅크(50)는 칩 선택 신호(64)에 의해 선택되어진다. 레지스터(84)는 칩 선택 신호(64)에 대응하는데, 버스 로딩 모드 비트들(90)과 어드레스 범위(비트들 150), 칩 선택 신호(64)의 다른 특성들(비트들 94) 및 메모리 뱅크(50)에 대한 억세스들을 결정하는데 사용되어진다. 메모리 뱅크(55)는 칩 선택 신호(65)에 의해 선택되어진다. 레지스터(85)는 칩 선택 신호(65)에 대응하는데, 버스 로딩 모드(비트들 91), 어드레스 범위(비트들 151)와 칩 선택 신호(65)의 다른 특성들(비트들 95) 및 메모리 뱅크(55)에 대한 억세스들을 결정하는데 사용되어진다.
데이터 프로세싱 시스템(15)(제 3 도 참조)은 다중화되지 않은 주변 장치(보기: 메모리(51-54)와 (56-59)들이 다중화된 주변 장치(보기: 집적 회로(70), (72))와 함께 사용되어진다면, 버스 (60), (62)에 걸리는 버스 로딩을 조절하기 위해 사용되어진다. 제 3 도에 있는 데이터 프로세싱 시스템(15)은 제 1 도에 있는 것과 같이 동일한 메모리 뱅크(50), (55)들과 데이터 프로세서 (10)를 사용한다. 제 3 도에서는 본 발명이 버스(60), (62)들의 기능을 다른 버스 싸이클에 대해서도 변화되도록 해준다.
제 3 도를 참조하면, 버스 로딩 모드 비트들(90)은 메모리 뱅크(50)에 대한억세스들이 어드레스값[0:31]을 전달하기 위해 버스(60)[0:31]를 어드레스 버스로 사용하고, 데이터값[0:31]을 전달하기 위해 버스(62)[0:31]를 데이터 버스로 사용하도록 하기 위해 %00 으로 프로그램되어진다. 버스 로딩 모드 비트들(91)은 메모리 뱅크(55)에 대한 억세스들이 어드레스값[0:31]을 전달하기 위해 버스(60)[0:31]를 데이터 버스로 사용하고, 데이터값[0:31]을 전달하기 위해 버스(62) [0:31]를 어드레스 버스로 사용하도록 하기 위해 %11 으로 프로그램되어진다. 버스 로딩 모드 비트들(92)은 집적 회로(70)에 대한 억세스들이 어드레스값[0:31]과 데이터값[0:31]을 전달하기 위해 버스(60)[0:31]를 다중화된 형태로 어드레스와 버스로서 사용 하도록 %01 으로 프로그램되어진다. 버스(62)[0:31]는 집적 회로(70)에 대한 억세스를 위해서는 결코 사용되지 않는다. 버스 로딩 모드 비트들(93)은 집적 회로(70)에 대한 억세스들이 어드레스값[0:31]과 데이터값[0:31]을 전달하기 위해 버스(60) [0:31]를 다중화된 형태로 어드레스와 데이터 버스로 사용하도록 %10 으로 프로그램되어진다. 버스 60[0:31]은 집적 회로에 대한 억세스를 위해서는 결코 사용되지 않는다.
그러므로 제 3 도에 도시된 데이터 프로세싱 시스템 (15)은 다중화되지 않은 어드레스값들, 다중화되지 않는 데이터값들, 다중화된 어드레스와 데이터값들을 전달하거나 또는 아무 값도 전달하지 않기 위해 사용되어진다. 마찬가지로 버스(62)도 다중화되지 않은 어드레스와 데이터값과 다중화된 어드레스와 데이터 값을 전달하거나 아무 값도 전달하지 않기 위해 사용되어진다. 데이터 프로세싱 시스템(15)은 전용 어드레스와 데이터 버스를 사용하지 않고, 비다중화되거나 다중화된 전용버스들을 사용하지 않는다. 결과적으로 버스(60)(6 개 로딩)에 대한 로딩은 버스(62)(6 개 로딩)에 대한 로딩과 동일하게 된다.
제 3 도를 참조하면, 데이터 프로세싱 시스템(15)은 또한 제 1 도의 데이터 프로세싱 시스템(11)보다 더욱 더 많은 동일한 버스 로딩을 가지고 있다. 버스(60)[0:31]는 6 개의 로딩을 버스(62)[0:31]도 6 개의 로딩을 가지고 있다. 메모리(51-54), (56-59)들은 제 2 도에 있는 데이터 프로세싱 시스템과 마찬가지로 같은 방식으로 버스(60), (62)에 연결되어 있다. 그러나 제 3 도의 데이터 프로세싱 시스템(15)은 2 개의 다중화된 주변 장치(70), (72)들이 제 2 도에서 얻어진 균형잡힌 버스 로딩을 방해하지 않으면서 어떻게 데이터 프로세싱 시스템 (15)에 연결되었는지를 도시하고 있다. 버스(60)를 참조하면, 제 2 도에 있는 동일한 5 개의 로딩에다 추가로, 제 3 도에 있는 버스(60)는 집적 회로(70)의 다중화된 어드레스/데이터 포트가 버스(60)의 모든 32 비트에 연결되어 있기 때문에 6 번째 로딩을 또한 가지고 있다. 이와 비슷하게, 버스(62)를 참조하면, 제 2 도의 동일한 5 개의 로딩에다 추가로 제 3 도에 있는 버스 (62)는 집적 회로(72)의 다중화된 어드레스/데이터 포트가 버스 (62)의 모든 32 비트에 연결되어 있기 때문에 6 번째 로딩을 가지고 있다.
제 3 도와 제 5 도를 참조하면, 메모리 뱅크(50)는 칩 선택 신호(64)에 의해 선택되어졌다. 레지스터(84)는 칩 선택 신호(64)에 대응하는데, 버스 로딩 모드(비트들 90)과 어드레스 범위(비트들 150), 칩 선택 신호(64)의 다른 특성들(비트들 94) 및 메모리 뱅크(50)에 대한 억세스들을 결정하는데 사용되어진다. 메모리뱅크(55)는 칩 선택 신호(65)에 의해 선택되어진다. 레지스터(85)는 칩 선택 신호(65)에 대응하는데, 버스 로딩 모드(비트들 91)와, 어드레스 범위(비트들 151)와 칩 선택 신호(65)의 다른 특성들(비트들 95) 및 메모리 뱅크(50)에 대한 억세를 결정하기 위해 사용되어진다. 레지스터(86)는 칩 선택 신호(66)에 대응하는데, 버스 로딩 모드(비트들 92)와 어드레스 범위(비트들 152), 칩 선택 신호(66)의 다른 특성들 (비트들 96) 및 집적 회로(70)에 대한 억세스들을 결정하는데 사용되어진다. 레지스터(87)는 칩 선택 신호(67)에 대응하는데, 버스 로딩 모드(비트들 93), 어드레스 범위(비트들 153)와 칩 선택 신호(67)의 다른 특성들(비트들 97) 및 집적 회로(72)에 대한 억세를 결정하기 위해 사용되어진다.
제 4 도에 도시된 회로의 동작이 설명되어질 것이다. CPU(제 1-3 도 참조)는 외부 버스 싸이클을 초기화할 수 있다. 외부 버스 싸이클은 버스(60), (62)를 통해 데이터 프로세서 (10)에 대해 외부적으로 구동되어지는 버스 싸이클이다. CPU(12)는 어드레스값과 상응하는 데이터값 및 버스(24)에 대한 알맞은 제어 신호들을 구동시켜 외부 버스 싸이클을 만들어 낸다. 비교 회로(101)는 그때 수신된 어드레스값이 어느 어드레스 범위와 관계가 있는지를 결정하게 된다. 본 발명의 한 실시예에 있어서, 비교 회로(101)는 버스(24)로부터 나오는 이드레스값의 적어도 한 부분을 레지스터(80)로부터 나온 어드레스 범위 비트들(150-153)의 각 세트와 비교한다. 어드레스 범위 비트들(150)은 어드레스 범위를 명확히 하기 위해 비트 필드의 어떤 수와 어떠한 방법을 사용할 수 있다.
비교 회로(101)는 제어 신호(121)들을 제어 회로(102)에 전달한다. 제어 신호들(121)은 어드 어드레스 범위, 어느 칩 선택과 레지스터(80)의 어느 것이 사용되어질 것인지를 제어 회로(102)에 지시해준다. 제어 회로(102)는 어느 칩 선택 신호가 표명(assert)이 되었는지를 선택하기 위해 칩 선택 발생 회로(104)에 제어신호들(118)을 보낸다. 제어 회로(102)는 레지스터(80)중 어느 것이 사용되어졌는가를 알아내기 위해 도체(122)를 통해 제어 신호들을 레지스터(80)에 보내게 된다. 예를들면, 만약 수신된 어드레스값이 어드레스 범위 비트들 (150)에 의해 명시된 어드레스 범위내에 있다면, 제어 회로 (102)는 레지스터(84)를 선택하고, 도체(122)를 통해 다른 칩 선택 제어 비트들(94)을 수신할 것이다. 게다가 버스 로딩 제어 비트들(90)은 선택 도체(114)를 통해 버스 결합 회로(100)에 제공되어진다. 제어 회로(102)는 도체(116)를 통해 버스 결합 회로(100)에 타이밍 또는 다른 제어정보를 제공한다.
버스 로딩 제어 비트들(90)을 바탕으로 하여, 버스 결합 회로(100)는 버스(24)의 어드레스 도체(110)를 버스(60)나 버스(62)에 연결할 것인가 말것인가를 결정한다. 마찬가지로 버스 로딩 제어 비트들(90)에 근거하여, 버스 결합 회로는 버스 (24)의 데이터 도체(112)를 버스(60)나 버스(62)에 연결할 것인가를 결정한다. 게다가 버스 로딩 제어 비트들(90)은 버스 결합 회로(100)가 같은 버스들(버스(60) 또는 버스(62)의 한 개에 대해 다중화된)이나 또는 다른 버스들(버스(60)와 (62)에 대해 비다중화된)에 관한 어드레스와 데이터값들을 제공할 것인가를 결정한다.
많은 터미날(124)들은 데이터 프로세서(10)에 대해 외부에 있는 버스(60)를제공하기 위해 사용되어진다. 다수의 터미날들(126)은 데이터 프로세서에 대해 외부에 있는 버스 (62)를 제공하기 위해 사용되어진다. 그리고 다수의 터미날들(128)은 데이터 프로세서(10)에 대해 외부에 있는 칩 선택 신호들(64-67)을 제공하기 위해 사용되어진다.
본 발명이 실시예와 관련하여 도시되고 서술된 반면에, 추가의 수정과 개선이 기술자들에게 떠오를 것이다. 본 발명은 도시된 특별한 형태에 제한되어 있지 않으며, 첨부된 청구항들은 본 발명의 범위에서 벗어나지 않은 모든 수정들도 인정한다는 사실을 알아야 할 것이다.
제 1 도는 본 발명의 일실시예에 따른 데이터 프로세싱 시스템(11)의 블록도.
제 2 도는 본 발명의 다른 실시예에 따른 데이터 프로세싱 시스템(13)의 블록도.
제 3 도는 본 발명의 다른 실시예에 따른 데이터 프로세싱 시스템(15)의 블록도.
제 4 도는 본 발명의 일실시예에 따른 제 1 도 내지 제 3 도의 시스템 통합회로(22)의 일부분의 블록도.
제 5 도는 본 발명의 일실시예에 따른 제 4 도의 레지스터(80)의 블록도.
♣ 도면의 주요부분에 대한 부호의 설명 ♣
10 : 데이터 프로세서 12 : 중앙 처리 장치 회로
50 : 메모리 뱅크 56 : 메모리
72 : 집적 회로

Claims (3)

  1. 제 1 버스(60)과 제 2 버스(62)를 가진 데이터 프로세서(10)로부터 어드레스 신호들과 데이터 신호들을 제공하는 방법에 있어서,
    상기 데이터 프로세서(10)가 제 1 모드에 있으면, 상기 제 1 버스(60)에 의해 상기 어드레스 신호들을 제공하고, 상기 제 2 버스(62)에 의해 상기 데이터 신호들을 제공하는 단계와,
    상기 데이터 프로세서(10)가 제 2 모드에 있으면, 상기 제 1 버스(60)에 의해 상기 데이터 신호들을 제공하고, 상기 제 2 버스(62)에 의해 상기 어드레스 신호들을 제공하는 단계를 포함하는, 데이터 프로세서(10)로부터 어드레스 신호들과 데이터 신호들을 제공하는 방법.
  2. 데이터 프로세서(10)에 있어서,
    어드레스값을 제공하는 어드레스 버스(110)와,
    데이터값을 제공하는 데이터 버스(112)와,
    제1 다수의 버스 터미날들(124)과,
    제2 다수의 버스 터미날들(126)과,
    제 1 모드 제어값을 저장하기 위한 제 1 제어 레지스터부 (90)와,
    상기 어드레스 버스(110)와, 상기 데이터 버스(112)와, 상기 제1 다수의 버스 터미날들(124)과, 상기 제2 다수의 버스 터미날들(126)과 상기 제 1 제어 레지스터부(90)에 연결된 버스 결합 회로(100)로서, 만약 상기 제 1 모드 제어값이 제1 값이면, 상기 버스 결합 회로(100)는 상기 어드레스 버스(110)를 상기 제1 다수의 버스 터미날(124)들에 연결시키고, 상기 어드레스값을 상기 제1 다수의 버스 터미날들(124)에 제공하며, 상기 데이터 버스(112)를 상기 제2 다수의 버스 터미날들(126)에 연결시키고, 상기 데이터값을 상기 제2 다수의 버스 터미날들(126)에 제공하며, 만약 상기 제 1 모드 제어값이 제 2 값이면, 상기 버스 결합 회로(100)는 상기 데이터 버스(112)를 상기 제1 다수의 버스 터미날들(124)에 연결시키고, 상기 데이터값을 상기 제1 다수의 버스 터미날들(124)에 제공하며, 상기 어드레스 버스(110)를 상기 제2 다수의 버스 터미날들(126)에 연결하고, 상기 어드레스값을 상기 제2 다수의 버스 터미날들(126)에 제공하는, 상기 버스 결합 회로(100)를 포함하는 데이터 프로세서(10).
  3. 제 1 버스(60)와 제 2 버스(62)를 가진 데이터 프로세싱 시스템(10, 11)에서 어드레스값들과 데이터값들을 제공하는 방법에 있어서,
    제 1 어드레스 범위(150)에 대응하는 제 1 레지스터 제어 필드(90)를 제공하는 단계와, 제 2 어드레스 범위(151)에 대응하는 제 2 레지스터 제어 필드(91)를 제공하는 단계와, 상기 어드레스값들 중 제 1 어드레스값이 상기 제 1 어드레스 범위(150)에 있다면, 상기 제 1 레지스터 제어 필드(90)에 의해 상기 데이터 프로세싱 시스템(10, 11)의 버스 모드를 선택하는 단계와,
    상기 어드레스값들 중 상기 제 1 어드레스값이 상기 제 2 어드레스범위(151)에 있다면, 상기 제 2 레지스터 제어 필드(91)에 의해 상기 데이터 프로세싱 시스템(10, 11)의 버스 모드를 선택하는 단계와,
    상기 버스 모드가 제 1 모드로 되도록 선택되면, 상기 제 1 버스(60)에 의해 상기 어드레스값들 중 상기 제 1 어드레스값을 제공하고, 상기 제 2 버스(62)에 의해 상기 데이터값들 중 제 1 데이터값을 제공하는 단계와,
    상기 버스 모드가 제 2 모드로 되도록 선택되면, 상기 제 1 버스(60)에 의해 상기 데이터값들 중 상기 제 1 데이터값을 제공하고, 상기 제 2 버스(62)에 의해 상기 어드레스값들 중 상기 제 1 어드레스값을 제공하는 단계와,
    상기 버스 모드가 제 3 모드로 되도록 선택되면, 상기 제 1 버스(60)에 의해 상기 데이터값들 중 상기 제 1 데이터값과 상기 어드레스값들 중 상기 제 1 어드레스값을 둘 다 제공하는 단계와,
    상기 버스 모드가 제 4 모드로 되도록 선택되면, 상기 제 2 버스(62)에 의해 상기 데이터값들 중 상기 제1 데이터값과 상기 어드레스값들 중 상기 제 1 어드레스값을 둘 다 제공하는 단계를 포함하는, 데이터 프로세싱 시스템(10, 11)에서 어드레스값들과 데이터값들을 제공하는 방법.
KR1019960008998A 1995-03-31 1996-03-29 데이타프로세서로부터어드레스신호와데이터신호를제공하는방법과데이터프로세서 KR100369092B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US414,473 1989-09-29
US08/414,473 US5638520A (en) 1995-03-31 1995-03-31 Method and apparatus for distributing bus loading in a data processing system

Publications (2)

Publication Number Publication Date
KR960035290A KR960035290A (ko) 1996-10-24
KR100369092B1 true KR100369092B1 (ko) 2003-06-19

Family

ID=23641605

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960008998A KR100369092B1 (ko) 1995-03-31 1996-03-29 데이타프로세서로부터어드레스신호와데이터신호를제공하는방법과데이터프로세서

Country Status (5)

Country Link
US (1) US5638520A (ko)
EP (1) EP0735492A1 (ko)
JP (1) JP3616453B2 (ko)
KR (1) KR100369092B1 (ko)
TW (1) TW594479B (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5802541A (en) * 1996-02-28 1998-09-01 Motorola, Inc. Method and apparatus in a data processing system for using chip selects to perform a memory management function
US5845098A (en) * 1996-06-24 1998-12-01 Motorola Inc. Address lines load reduction
US6085272A (en) * 1998-03-14 2000-07-04 Cardio Logic, Inc. Transmitting command block data using the lower address part of the address phase
US6038630A (en) * 1998-03-24 2000-03-14 International Business Machines Corporation Shared access control device for integrated system with multiple functional units accessing external structures over multiple data buses
US6240492B1 (en) 1998-05-22 2001-05-29 International Business Machines Corporation Memory interface for functional unit of integrated system allowing access to dedicated memory and shared memory, and speculative generation of lookahead fetch requests
US6665749B1 (en) * 1999-08-17 2003-12-16 Nec Electronics, Inc. Bus protocol for efficiently transferring vector data
US8391039B2 (en) 2001-04-24 2013-03-05 Rambus Inc. Memory module with termination component
US6675272B2 (en) 2001-04-24 2004-01-06 Rambus Inc. Method and apparatus for coordinating memory operations among diversely-located memory components
US20050147414A1 (en) * 2003-12-30 2005-07-07 Morrow Warren R. Low latency optical memory bus
US7301831B2 (en) 2004-09-15 2007-11-27 Rambus Inc. Memory systems with variable delays for write data signals
US20100325333A1 (en) * 2008-10-14 2010-12-23 Texas Instruments Incorporated Method Allowing Processor with Fewer Pins to Use SDRAM
US7969179B2 (en) 2009-03-31 2011-06-28 Freescale Semiconductor, Inc. Method and apparatus for increasing security in a system using an integrated circuit

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR880002079A (ko) * 1986-07-24 1988-04-29 엘리 와이스 근거리 데이타 분배 시스템
US5146605A (en) * 1987-11-12 1992-09-08 International Business Machines Corporation Direct control facility for multiprocessor network
KR930016892A (ko) * 1992-01-07 1993-08-30 정용문 라운드 로빈 방식의 시리얼 버스 통신 시스템의 버스 점유 신호발생회로
JPH0652095A (ja) * 1992-06-19 1994-02-25 Internatl Business Mach Corp <Ibm> バス・アダプタ・システム
KR940012966A (ko) * 1992-11-30 1994-06-24 정장호 글로벌 버스의 멀티 프레임 전송제어회로

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4144562A (en) * 1977-06-23 1979-03-13 Ncr Corporation System and method for increasing microprocessor output data rate
US4300195A (en) * 1979-08-09 1981-11-10 Motorola, Inc. CMOS Microprocessor architecture
US4349870A (en) * 1979-09-05 1982-09-14 Motorola, Inc. Microcomputer with programmable multi-function port
US4443864A (en) * 1979-10-09 1984-04-17 Texas Instruments Incorporated Memory system for microprocessor with multiplexed address/data bus
FR2539887B1 (fr) * 1983-01-20 1985-07-26 Tech Europ Commutation Procede pour assurer la securite du fonctionnement d'un automate programmable et automate pour la mise en oeuvre du procede
JPS61223785A (ja) * 1985-03-28 1986-10-04 株式会社東芝 画像メモリ制御装置
US5048012A (en) * 1987-04-03 1991-09-10 Advanced Micro Devices, Inc. Data link controller with flexible multiplexer
JPS63282870A (ja) * 1987-05-14 1988-11-18 Minolta Camera Co Ltd メモリユニットのアドレス指定方式
JPS643739A (en) * 1987-06-26 1989-01-09 Toshiba Corp Information processor
US5235684A (en) * 1988-06-30 1993-08-10 Wang Laboratories, Inc. System bus having multiplexed command/id and data
US5165037A (en) * 1988-09-09 1992-11-17 Compaq Computer Corporation System for controlling the transferring of different widths of data using two different sets of address control signals
US5274784A (en) * 1989-01-13 1993-12-28 International Business Machines Corporation Data transfer using bus address lines
US5109490A (en) * 1989-01-13 1992-04-28 International Business Machines Corporation Data transfer using bus address lines
US5237566A (en) * 1989-03-30 1993-08-17 Ungermann-Bass, Inc. Network hub for maintaining node bandwidth in a single-node network
US5086407A (en) * 1989-06-05 1992-02-04 Mcgarity Ralph C Data processor integrated circuit with selectable multiplexed/non-multiplexed address and data modes of operation
FR2663137B1 (fr) * 1990-06-12 1994-07-29 Sgs Thomson Microelectronics Dispositif electronique de connexion.
EP0518488A1 (en) * 1991-06-12 1992-12-16 Advanced Micro Devices, Inc. Bus interface and processing system
US5262991A (en) * 1991-11-22 1993-11-16 Zilog, Inc. Device with multiplexed and non-multiplexed address and data I/O capability
US5255376A (en) * 1992-01-14 1993-10-19 Sun Microsystems, Inc. Method and apparatus for supporting a dual bit length protocol for data transfers
US5448521A (en) * 1993-11-12 1995-09-05 International Business Machines Corporation Connecting a short word length non-volatile memory to a long word length address/data multiplexed bus
US5483660A (en) * 1993-11-29 1996-01-09 Motorola Inc. Method and apparatus for performing multiplexed and non-multiplexed bus cycles in a data processing system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR880002079A (ko) * 1986-07-24 1988-04-29 엘리 와이스 근거리 데이타 분배 시스템
US5146605A (en) * 1987-11-12 1992-09-08 International Business Machines Corporation Direct control facility for multiprocessor network
KR930016892A (ko) * 1992-01-07 1993-08-30 정용문 라운드 로빈 방식의 시리얼 버스 통신 시스템의 버스 점유 신호발생회로
JPH0652095A (ja) * 1992-06-19 1994-02-25 Internatl Business Mach Corp <Ibm> バス・アダプタ・システム
KR940012966A (ko) * 1992-11-30 1994-06-24 정장호 글로벌 버스의 멀티 프레임 전송제어회로

Also Published As

Publication number Publication date
KR960035290A (ko) 1996-10-24
TW594479B (en) 2004-06-21
JPH08287008A (ja) 1996-11-01
US5638520A (en) 1997-06-10
JP3616453B2 (ja) 2005-02-02
EP0735492A1 (en) 1996-10-02

Similar Documents

Publication Publication Date Title
US5548730A (en) Intelligent bus bridge for input/output subsystems in a computer system
US6347367B1 (en) Data bus structure for use with multiple memory storage and driver receiver technologies and a method of operating such structures
CA1189978A (en) Interchangeable interface circuitry arrangements for use with a data processing system
US6806730B2 (en) Method and system for use of an embedded field programmable gate array interconnect for flexible I/O connectivity
US6950325B1 (en) Cascade-connected ROM
US5860021A (en) Single chip microcontroller having down-loadable memory organization supporting &#34;shadow&#34; personality, optimized for bi-directional data transfers over a communication channel
KR100369092B1 (ko) 데이타프로세서로부터어드레스신호와데이터신호를제공하는방법과데이터프로세서
US5483660A (en) Method and apparatus for performing multiplexed and non-multiplexed bus cycles in a data processing system
US5812798A (en) Data processing system for accessing an external device and method therefore
US8315122B2 (en) Multi-chip package semiconductor memory device providing active termination control
US20080270654A1 (en) Bus System for Selectively Controlling a Plurality of Identical Slave Circuits Connected to the Bus and Method Therefore
GB2374693A (en) Reconfigurable memory connection system
US5781746A (en) Microprocessor with multiple bus configurations
US5847450A (en) Microcontroller having an n-bit data bus width with less than n I/O pins
US6349235B1 (en) Programmable logic controller system and method for module number assignment
US6748515B1 (en) Programmable vendor identification circuitry and associated method
KR100394166B1 (ko) 데이타처리기,데이타처리시스템,외부장치액세스방법
US6484215B1 (en) System having I/O module number assignment utilizing module number signal line having pair of inputs adapted for receiving module number signal and propagation of module number signal down stream
US6754760B1 (en) Programmable interface for a configurable system bus
US7043592B2 (en) External bus controller
EP0803802B1 (en) Method of identifying peripheral device employed in a semiconductor device
JPH04260959A (ja) マイクロプロセッサ
JP2000029735A (ja) 自己試験を行う集積回路
US6052746A (en) Integrated circuit having programmable pull device configured to enable/disable first function in favor of second function according to predetermined scheme before/after reset
EP0878765A2 (en) Microcontroller utilizing internal and external memory

Legal Events

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

Payment date: 20141105

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20141231

Year of fee payment: 14