[go: up one dir, main page]

KR100694095B1 - 버스 연결 방법 및 장치 - Google Patents

버스 연결 방법 및 장치 Download PDF

Info

Publication number
KR100694095B1
KR100694095B1 KR1020050018435A KR20050018435A KR100694095B1 KR 100694095 B1 KR100694095 B1 KR 100694095B1 KR 1020050018435 A KR1020050018435 A KR 1020050018435A KR 20050018435 A KR20050018435 A KR 20050018435A KR 100694095 B1 KR100694095 B1 KR 100694095B1
Authority
KR
South Korea
Prior art keywords
slaves
master
memory banks
bus
information
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
KR1020050018435A
Other languages
English (en)
Other versions
KR20060097314A (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 삼성전자주식회사
Priority to KR1020050018435A priority Critical patent/KR100694095B1/ko
Priority to US11/304,614 priority patent/US20060200606A1/en
Publication of KR20060097314A publication Critical patent/KR20060097314A/ko
Application granted granted Critical
Publication of KR100694095B1 publication Critical patent/KR100694095B1/ko
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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/14Handling requests for interconnection or transfer
    • 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/4027Coupling between buses using bus bridges
    • G06F13/4031Coupling between buses using bus bridges with arbitration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Landscapes

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

Abstract

본 발명은 AMBA(Advanced Microcontroller Bus Architecture) 기반의 SOC(System On a Chip)에 관한 것으로, 본 발명에 따른 버스 연결 방법은 다수의 마스터들 중 어느 하나의 마스터에게 다수의 슬레이브들에 대한 사용을 허가하고, 이 마스터로부터 제공된 커맨드를 디코딩함으로써 슬레이브들을 사용하기 위한 정보를 생성하고, 이 정보에 기초하여 슬레이브들과 연결된 버스 시스템의 프로토콜에 따른 신호들을 출력함으로써, 어느 하나의 마스터만이 블록 읽기 또는 쓰기를 요청한 경우에도 뱅크 인터리빙이 적용되어 파이프라인 방식의 데이터 전송이 이루어질 수 있다.

Description

버스 연결 방법 및 장치{The method and apparatus for bus connection}
도 1은 종래의 SOC(System On a Chip)의 구성도이다.
도 2는 도 1에 도시된 SOC에서 마스터의 동작 타이밍을 도시한 도면이다.
도 3은 본 발명의 바람직한 일 실시예에 따른 SOC의 구성도이다.
도 4는 도 3에 도시된 버스 연결 장치의 상세 구성도이다.
도 5는 블록 단위의 읽기 또는 쓰기를 위한 메모리 맵의 일례를 도시한 도면이다.
도 6은 도 5에 도시된 메모리 맵에 도 1에 도시된 SOC를 적용한 결과를 도시한 도면이다.
도 7은 도 5에 도시된 메모리 맵에 도 3에 도시된 SOC를 적용한 결과를 도시한 도면이다.
도 8은 본 발명의 바람직한 일 실시예에 따른 버스 연결 방법의 흐름도이다.
본 발명은 AMBA(Advanced Microcontroller Bus Architecture) 기반의 SOC(System On a Chip)에 관한 것으로, 특히 버스 연결 방법 및 장치에 관한 것이 다.
최근, SOC 환경에서 다양한 멀티미디어 기능들에 대한 요구가 증가함에 따라, 멀티미디어 기능을 담당하는 마스터들이 많아졌으며, 또한, 마스터 각각에서 처리하는 데이터 량도 많아졌다.
도 1은 종래의 SOC의 구성도이다.
도 1을 참조하면, 종래의 SOC는 마스터들(11-14), 버스 시스템들(15-16), DRAM들(17-18)로 구성된다. 일반적으로, SOC는 버스 아키텍처(bus architecture)를 기반으로 한다. 특히, 도 1에 도시된 SOC는 여러 버스 아키텍처들 중, AMBA(Advanced Microcontroller Bus Architecture)를 기반으로 한다.
마스터들(11-14)은 코덱에 해당하는 마스터 코어와 DMA(Direct Memory Access)로 구성된다. DRAM들(17-18)은 마스터들(11-14)과의 관계에서 일종의 슬레이브에 해당된다. 일반적으로, DRAM들(17-18)의 뱅크들 각각이 하나의 슬레이브로써의 지위를 갖는다.
버스 시스템들(15-16)은 다수의 마스터들(11-14) 중, 어느 하나의 마스터에게 버스 사용을 허가하는 중재부 및 마스터로부터 제공된 주소를 디코딩함으로써 이 마스터에게 할당된 슬레이브를 선택하는 디코더를 포함한다. 버스 시스템들(15-16)에 관한 상세한 설명은 AMBA 규격에 제시되어 있기 때문에 생략하기로 한다.
도 2는 도 1에 도시된 SOC에서 마스터의 동작 타이밍을 도시한 도면이다.
도 2를 참조하면, 상단의 마스터 동작 타이밍은 마스터 0(11) 및 마스터 1(12)이 동시에 동작하지 않는 경우이다. 이 경우, 마스터 0(11) 및 마스터 1(12) 중 어느 하나만이 커맨드 전송 구간 및 데이터 전송 구간 동안 하나의 메모리 뱅크만을 사용할 수 있다. 이 때문에 뱅크 인터리빙이 적용될 수 없고, 간헐적으로 데이터 전송이 이루어짐을 볼 수 있다.
하단의 마스터 동작 타이밍은 마스터 0(11) 및 마스터 1(12)이 동시에 동작하는 경우이다. 이 경우, 마스터 0(11)의 데이터 전송 구간과 마스터 1(12)의 커맨드 전송 구간은 겹쳐질 수 있고, 마스터 0(11)의 커맨드 전송 구간과 마스터 1(12)의 데이터 전송 구간은 겹쳐질 수 있다. 이 때문에, 다수의 마스터들간에는 뱅크 인터리빙이 적용되고, 연속적으로 데이터 전송이 이루어짐을 볼 수 있다.
그런데, 다수의 마스터들, 즉 다수의 코덱들이 동시에 동작하는 경우는 현실적으로 거의 발생하지 않는다. 이 때문에 종래 SOC에서는 뱅크 인터리빙(interleaving)이 적용될 경우는 거의 없으며, 뱅크 인터리빙의 목적인 버스 효율성의 극대화는 실현될 수 없다는 문제점이 있었다.
또한, 어떤 SOC의 코덱들이 이종의 SOC로 이식되는 경우가 빈번하게 발생하는데, 대부분 이러한 경우에 버스 시스템의 프로토콜이 변경된다. 종래의 SOC에서는 버스 시스템의 프로토콜이 변경되면, 마스터들을 수정하여야 하는데, 이로 인하여 새로운 SOC를 설계하는데 상당한 지연을 초래한다는 문제점이 있었다.
본 발명이 이루고자 하는 기술적 과제는 어느 하나의 마스터만이 블록 읽기 또는 쓰기를 요청한 경우에도 뱅크 인터리빙이 적용되도록 하고, 이종 SOC에서의 마스터 재사용이 용이하게 하는 방법 및 장치를 제공하고, 상기 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공하는데 있다.
상기 기술적 과제를 해결하기 위한 본 발명에 따른 버스 연결 방법은 다수의 마스터들 중 소정 마스터에게 다수의 슬레이브들에 대한 사용을 허가하는 단계; 상기 사용을 허가받은 소정 마스터로부터 제공된 커맨드를 디코딩함으로써 상기 슬레이브들을 사용하기 위한 정보를 생성하는 단계; 및 상기 생성된 정보에 기초하여 상기 슬레이브들과 연결된 버스 시스템의 프로토콜에 따른 신호들을 출력하는 단계를 포함한다.
상기 다른 기술적 과제를 해결하기 위한 본 발명에 따른 버스 연결 장치는 다수의 마스터들 중 소정 마스터에게 다수의 슬레이브들에 대한 사용을 허가하는 중재부; 상기 사용을 허가받은 소정 마스터로부터 제공된 커맨드를 디코딩함으로써 상기 슬레이브들을 사용하기 위한 정보를 생성하는 디코더; 및 상기 생성된 정보에 기초하여 상기 슬레이브들과 연결된 버스 시스템의 프로토콜에 따른 신호들을 출력하는 인터페이스를 포함한다.
상기 또 다른 기술적 과제를 해결하기 위하여, 본 발명은 상기된 버스 연결 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공한다.
이하에서는 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다.
도 3은 본 발명의 바람직한 일 실시예에 따른 SOC의 구성도이다.
도 3을 참조하면, 본 실시예에 따른 SOC는 마스터들(21-24), 버스 연결 장치(25), 버스 시스템들(26-27), DRAM들(28-29)로 구성된다. 일반적으로, SOC는 버스 아키텍처를 기반으로 한다. 특히, 본 실시예에 따른 SOC는 여러 버스 아키텍처들 중, AMBA(Advanced Microcontroller Bus Architecture)를 기반으로 하고 있으나, 이것은 하나의 예시에 불과하며, 본 실시예는 다른 버스 아키텍처에도 적용 가능하다는 것을 본 실시예가 속하는 분야에서 통상의 지식을 가진 자(이하, "당업자"라 함)라면 이해할 수 있다. 또한, 본 실시예를 간명하게 도시하기 위하여, 도 3에는 마이크로 프로세서 등의 다른 구성 요소가 도시되어 있지 않으나, 당업자라면, 본 실시예에 따른 SOC가 마이크로 프로세서 등과 같은 다른 구성 요소들을 포함할 수 있음을 이해할 수 있다.
마스터들(21-24)은 종래의 마스터들(1-14)의 마스터 코어 부분만을 추출한 것으로써, 예를 들면, 여러 가지 코덱들이 해당된다. DRAM들(28-29)은 마스터들(21-24)과의 관계에서 일종의 슬레이브에 해당된다. 특히, 본 실시예에서는 DRAM들(28-29)의 뱅크들 각각이 하나의 슬레이브로써의 지위를 갖는다.
버스 시스템들(26-27)은 AMBA 기반의 종래 버스 시스템들(15-16)과 동일한 기능을 수행한다. 즉, 버스 시스템들(26-27)은 다수의 마스터들 중, 어느 하나의 마스터에게 버스 사용을 허가하는 중재부 및 마스터로부터 제공된 주소를 디코딩함으로써 이 마스터에게 할당된 슬레이브를 선택하는 디코더를 포함한다. 버스 시스템들(26-27)에 관한 상세한 설명은 AMBA 규격에 제시되어 있기 때문에 생략하기로 한다.
버스 연결 장치(25)는 종래의 마스터들(1-14)의 DMA 부분들을 통합한 것으로써, 다수의 마스터들(21-24) 중 어느 하나의 마스터에게 다수의 슬레이브들에 해당하는 DRAM들(28-29)의 뱅크들에 대한 사용을 허가하고, 이 마스터로부터 제공된 커맨드를 디코딩함으로써 슬레이브들에 해당하는 DRAM들(28-29)의 뱅크들을 사용하기 위한 정보를 생성하고, 이 정보에 기초하여 슬레이브들에 해당하는 DRAM들(28-29)의 뱅크들과 연결된 버스 시스템들(26-27)의 프로토콜에 따른 마스터 신호들을 출력한다. 이와 같이, 버스 연결 장치(25)는 어느 하나의 코덱이 다수의 DRAM들(28-29)의 뱅크들을 사용할 수 있도록 한다.
다만, 다수의 코덱들 각각에 DRAM들(28-29)의 뱅크들과의 인터페이스를 장착할 경우, 코덱들의 개수에 메모리 뱅크들의 개수를 곱한 값에 해당하는 과도한 개수의 AHB(Advanced High-performance Bus) 인터페이스들이 요구되며, 이것은 집적화된 FPGA(Field Programmable Gate Array)의 설계를 곤란하게 하고, 버스 시스템들(26-27)의 변화에 대응하기 어렵게 된다는 단점이 있다. 따라서, 버스 연결 장치(25)는 다수의 마스터들(21-24) 중 어느 하나의 마스터에게 DRAM들(28-29)의 뱅크들에 대한 사용을 허가하고, 이 마스터만이 DRAM들(28-29)의 뱅크들을 사용하도록 하고 있다.
이와 같이, 본 실시예에 따르면, 종래의 마스터들(1-14)의 DMA 부분들을 통합하고, AHB 인터페이스들의 개수를 줄임으로써 SOC의 로직 사이즈를 줄일 수 있게 하였다.
도 4는 도 3에 도시된 버스 연결 장치(25)의 상세 구성도이다.
도 4를 참조하면, 도 3에 도시된 버스 연결 장치(25)는 중재부(31), 디코더(32), 및 AHB 인터페이스들(41-48)로 구성된다. AHB 인터페이스들(41-48) 중 AHB 인터페이스 A0-A3(41-44)은 채널 A를 사용하는 버스 시스템 A에 연결되어 있고, AHB 인터페이스 B0-B3(45-48)은 채널 B를 사용하는 버스 시스템 B에 연결되어 있다.
중재부(31)는 다수의 마스터들 중 어느 하나의 마스터에게 다수의 슬레이브들에 대한 사용을 허가한다. 보다 상세하게 설명하면, 중재부(31)는 다수의 마스터들로부터 다수의 커맨드들을 수신하면, 커맨드 도착 순서 또는 우선 순위 등에 따라 최우선 순위에 해당하는 마스터에게 슬레이브들에 대한 사용을 허가하고, 이후, 이 마스터와 슬레이브들간의 작업이 완료되면, 다음 순위에 해당하는 마스터에 슬레이브들에 대한 사용을 허가한다.
예를 들어, 마스터들이 여러 가지 코덱(CODEC) 코어들이고, 슬레이브들이 메모리 뱅크들인 경우라면, 중재부(31)는 코덱들로부터 메모리 뱅크들에 대한 블록 단위의 읽기 또는 쓰기를 나타내는 데이터 전송 방식 및 데이터 사이즈 등을 포함하는 커맨드를 수신하면, 코덱들 중 어느 하나의 코덱에게 다수의 메모리 뱅크들에 대한 사용을 허가한다. 특히, 마스터가 MPEG 코덱라면, 마스터로부터 제공된 커맨드는 8 x 8 사이즈의 매크로블록 단위의 읽기 또는 쓰기를 나타내는 데이터 전송 방식 및 데이터 사이즈 등을 포함한다.
디코더(32)는 중재부(31)에 의해 슬레이브들에 대한 사용을 허가받은 마스터로부터 제공된 커맨드를 디코딩함으로써 슬레이브들을 사용하기 위한 정보를 생성 한다. 보다 상세하게 설명하면, 디코더(32)는 중재부(31)에 의해 슬레이브들에 대한 사용을 허가받은 마스터로부터 제공된 커맨드를 디코딩함으로써 중재부(31)에 의해 슬레이브들에 대한 사용을 허가받은 마스터에 할당된 채널을 결정하고, 이 채널을 사용하는 슬레이브들을 결정한다. 또한, 디코더(32)는 이와 같은 결정 결과에 따라 슬레이브들에 대한 주소 정보 및 제어 정보 등을 생성한다.
예를 들어, 마스터들이 여러 가지 코덱들이고, 슬레이브들이 메모리 뱅크들인 경우라면, 디코더(32)는 메모리 뱅크들에 대한 블록 단위의 읽기 또는 쓰기를 나타내는 데이터 전송 방식 및 데이터 사이즈 등을 포함하는 커맨드를 디코딩함으로써 코덱들과 메모리 뱅크들의 맵핑 정보가 기록된 메모리 맵 상에서의 라인 단위의 읽기 또는 쓰기를 나타내는 주소 정보 및 제어 정보 등을 생성한다.
AHB 인터페이스들(41-48)은 디코더(32)에서 생성된 정보에 기초하여 슬레이브들과 연결된 버스 시스템 A(26) 또는 버스 시스템 B(27)의 프로토콜에 따른 AHB 마스터 신호들을 출력한다. 본 실시예에서는 마스터로부터 제공된 커맨드를 신속하게 처리하기 위하여, AHB 인터페이스들(41-48)은 AHB 마스터 신호들을 파이프라인 방식으로 출력한다.
AHB 인터페이스들(41-48) 각각으로부터 마스터들 각각에 해당하는 신호들이 출력되기 때문에, AHB 인터페이스들(41-48) 각각은 버스 시스템 A(26) 또는 버스 시스템 B(27) 측에서 바라볼 때 일종의 마스터들로 보이게 된다. 따라서, 이종 SOC에서의 마스터 재사용으로 인하여, 버스 연결 장치(25)에 버스 시스템 A 또는 버스 시스템 B 대신에 다른 버스 시스템이 연결된 경우, 종래와 같이 마스터 코어 자체 를 변경할 필요 없이, 다른 버스 시스템의 프로토콜에 따라 AHB 인터페이스들(41-48)만을 변경하면 충분하므로 이종 SOC에서의 마스터 재사용이 용이하게 되었다.
예를 들어, 마스터들이 여러 가지 코덱들이고, 슬레이브들이 메모리 뱅크들인 경우라면, AHB 인터페이스들(41-48)은 메모리 뱅크들 각각에 할당된 DMA(Direct Memory Access)들에 해당한다. 이 경우, AHB 인터페이스들(41-48)은 메모리 뱅크들이 인터리브(interleave) 읽기 또는 쓰기를 수행할 수 있도록 AHB 인터페이스들(41-48)은 채널 A를 사용하는 버스 시스템 A 또는 채널 B를 사용하는 버스 시스템 B의 프로토콜에 따른 AHB 마스터 신호들을 파이프라인 방식으로 출력한다.
도 5는 블록 단위의 읽기 또는 쓰기를 위한 메모리 맵의 일례를 도시한 도면이다.
도 5를 참조하면, 8 x 8 사이즈의 매크로블록 중 라인 0은 4개의 메모리 뱅크들 중 메모리 뱅크 0의 첫 번째 라인에 할당된다. 또한, 8 x 8 사이즈의 매크로블록 중 라인 1은 4개의 메모리 뱅크들 중 메모리 뱅크 1의 첫 번째 라인에 할당된다. 또한, 8 x 8 사이즈의 매크로블록 중 라인 2는 4개의 메모리 뱅크들 중 메모리 뱅크 2의 첫 번째 라인에 할당된다. 또한, 8 x 8 사이즈의 매크로블록 중 라인 3은 4개의 메모리 뱅크들 중 메모리 뱅크 3의 첫 번째 라인에 할당된다.
또한, 8 x 8 사이즈의 매크로블록 중 라인 4는 4개의 메모리 뱅크들 중 메모리 뱅크 0의 두 번째 라인에 할당된다. 또한, 8 x 8 사이즈의 매크로블록 중 라인 5는 4개의 메모리 뱅크들 중 메모리 뱅크 1의 두 번째 라인에 할당된다. 또한, 8 x 8 사이즈의 매크로블록 중 라인 6은 4개의 메모리 뱅크들 중 메모리 뱅크 2의 두 번째 라인에 할당된다. 또한, 8 x 8 사이즈의 매크로블록 중 라인 7은 4개의 메모리 뱅크들 중 메모리 뱅크 3의 두 번째 라인에 할당된다.
도 6은 도 5에 도시된 메모리 맵에 도 1에 도시된 SOC를 적용한 결과를 도시한 도면이다.
도 6을 참조하면, 상단의 마스터 동작 타이밍은 마스터 0(11)이 라인 0, 라인 1, 라인 2, 및 라인 3으로 구성된 블록 읽기 또는 쓰기를 요청한 경우이다. 이 경우, 마스터 0(11)은 커맨드 전송 구간 및 데이터 전송 구간 동안 하나의 메모리 뱅크만을 사용할 수 있다. 이 때문에 뱅크 인터리빙이 적용될 수 없고, 간헐적으로 데이터 전송이 이루어짐을 볼 수 있다. 즉, 종래 SOC에서 어느 하나의 마스터만이 블록 읽기 또는 쓰기를 요청한 경우, 파이프라인 방식의 데이터 전송이 이루어질 수 없다.
하단의 마스터 동작 타이밍은 마스터 0(11)이 라인 0, 라인 1, 라인 2, 및 라인 3으로 구성된 블록 읽기 또는 쓰기를 요청하고, 마스터 1(12)이 라인 4, 라인 5, 라인 6, 및 라인 7로 구성된 블록 읽기 또는 쓰기를 요청한 경우이다. 이 경우, 마스터 0(11)의 데이터 전송 구간과 마스터 1(12)의 커맨드 전송 구간은 겹쳐질 수 있고, 마스터 0(11)의 커맨드 전송 구간과 마스터 1(12)의 데이터 전송 구간은 겹쳐질 수 있다. 이 때문에, 다수의 마스터들간에는 뱅크 인터리빙이 적용되고, 연속적으로 데이터 전송이 이루어짐을 볼 수 있다. 즉, 종래 SOC에서 다수의 마스터들이 블록 읽기 또는 쓰기를 요청한 경우, 파이프라인 방식의 데이터 전송이 이루어진다.
그런데, 다수의 마스터들, 즉 다수의 코덱들이 블록 읽기 또는 쓰기를 요청하는 경우는 거의 발생하지 않는다. 이 때문에 종래 SOC에서는 뱅크 인터리빙이 적용될 경우는 거의 없으며, 파이프라인 방식의 데이터 전송이 거의 이루어질 수 없다.
도 7은 도 5에 도시된 메모리 맵에 도 3에 도시된 SOC를 적용한 결과를 도시한 도면이다.
도 7을 참조하면, 상단의 마스터 동작 타이밍은 마스터 0(21)이 라인 0, 라인 1, 라인 2, 및 라인 3으로 구성된 블록 읽기 또는 쓰기를 요청한 경우이다. 이 경우, 마스터 0(21)은 커맨드 전송 구간 및 데이터 전송 구간 동안 다수의 메모리 뱅크들을 사용할 수 있다. 이 때문에 뱅크 인터리빙이 적용될 수 있고, 연속적으로 데이터 전송이 이루어짐을 볼 수 있다. 즉, 본 실시예에 따른 SOC에서 어느 하나의 마스터만이 블록 읽기 또는 쓰기를 요청한 경우에도 파이프라인 방식의 데이터 전송이 이루어질 수 있음을 볼 수 있다.
하단의 마스터 동작 타이밍은 마스터 0(21)이 라인 0, 라인 1, 라인 2, 및 라인 3으로 구성된 블록 읽기 또는 쓰기를 요청하고, 마스터 1(22)이 라인 4, 라인 5, 라인 6, 및 라인 7로 구성된 블록 읽기 또는 쓰기를 요청한 경우이다. 이 경우, 최우선 순위에 해당하는 마스터 0(21)에 메모리 뱅크들의 사용을 허가하고, 이어서, 다음 순위에 해당하는 마스터 1(11)에 메모리 뱅크들의 사용을 허가한다. 당연히, 다수의 마스터들간에 뱅크 인터리빙이 적용되고, 연속적으로 데이터 전송이 이루어진다. 즉, 본 실시예에 따른 SOC에서 다수의 마스터들이 블록 읽기 또는 쓰기 를 요청한 경우, 파이프라인 방식의 데이터 전송이 이루어진다. 결국, 본 실시예에 따른 SOC에서는 항상 파이프라인 방식의 데이터 전송이 이루어지며, 버스의 효율을 극대화할 수 있다.
도 8은 본 발명의 바람직한 일 실시예에 따른 버스 연결 방법의 흐름도이다.
도 8을 참조하면, 본 실시예에 따른 버스 연결 방법은 다음과 같은 단계들로 구성된다. 본 실시예에 따른 버스 연결 방법은 도 4에 도시된 버스 연결 장치(25)에서 시계열적으로 처리되는 단계들로 구성된다. 따라서, 이하 생략된 내용이라 하더라도 버스 연결 장치(25)에 관하여 이상에서 기술된 내용은 본 실시예에 따른 버스 연결 방법에도 적용된다.
81 단계에서 버스 연결 장치(25)는 다수의 마스터들 중 어느 하나의 마스터에게 다수의 슬레이브들에 대한 사용을 허가한다. 보다 상세하게 설명하면,81 단계에서 버스 연결 장치(25)는 다수의 마스터들로부터 다수의 커맨드들을 수신하면, 커맨드 도착 순서 또는 우선 순위 등에 따라 최우선 순위에 해당하는 마스터에게 슬레이브들에 대한 사용을 허가하고, 이후, 이 마스터와 슬레이브들간의 작업이 완료되면, 다음 순위에 해당하는 마스터에 슬레이브들에 대한 사용을 허가한다.
82 단계에서 버스 연결 장치(25)는 81 단계에서 슬레이브들에 대한 사용을 허가받은 마스터로부터 제공된 커맨드를 디코딩함으로써 슬레이브들을 사용하기 위한 정보를 생성한다. 보다 상세하게 설명하면, 82 단계에서 버스 연결 장치(25)는 81 단계에서 슬레이브들에 대한 사용을 허가받은 마스터로부터 제공된 커맨드를 디코딩함으로써 81 단계에서 슬레이브들에 대한 사용을 허가받은 마스터에 할당된 채 널을 결정하고, 이 채널을 사용하는 슬레이브들을 결정한다. 또한, 82 단계에서 버스 연결 장치(25)는 이와 같은 결정 결과에 따라 슬레이브들에 대한 주소 정보 및 제어 정보 등을 생성한다.
83 단계에서 버스 연결 장치(25)는 82 단계에서 생성된 정보에 기초하여 슬레이브들과 연결된 버스 시스템 A(26) 또는 버스 시스템 B(27)의 프로토콜에 따른 AHB 마스터 신호들을 출력한다. 본 실시예에서는 마스터로부터 제공된 커맨드를 신속하게 처리하기 위하여,83 단계에서 버스 연결 장치(25)는 AHB 마스터 신호들을 파이프라인 방식으로 출력한다.
한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성 가능하고, 컴퓨터로 읽을 수 있는 기록 매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 또한, 상술한 본 발명의 실시예에서 사용된 데이터의 구조는 컴퓨터로 읽을 수 있는 기록매체에 여러 수단을 통하여 기록될 수 있다.
상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등) 및 캐리어 웨이브(예를 들면, 인터넷을 통한 전송)와 같은 저장매체를 포함한다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 당업자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한 정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
본 발명에 따르면, 어느 하나의 마스터만이 블록 읽기 또는 쓰기를 요청한 경우에도 뱅크 인터리빙이 적용되어 파이프라인 방식의 데이터 전송이 이루어질 수 있다는 효과가 있다. 결국, 본 발명에 따른 SOC에서는 항상 파이프라인 방식의 데이터 전송이 이루어지며, 버스의 효율을 극대화할 수 있다는 효과가 있다.
또한, 본 발명에 따르면, 어떤 SOC에서의 마스터를 이종 SOC로 이식하는 경우에 본 발명에 따른 버스 연결 장치, 특히 AHB 인터페이스들만을 변경하면 되기 때문에 이종 SOC에서의 마스터 재사용이 용이하다는 효과가 있다. 또한, 본 발명에 따르면, 종래의 마스터의 DMA 부분들을 통합하고, AHB 인터페이스들의 개수를 줄임으로써 SOC의 로직 사이즈를 줄일 수 있다는 효과가 있다.

Claims (14)

  1. (a) 소정 버스 아키텍처 상의 다수의 마스터들 중 소정 마스터에게 상기 소정 버스 아키텍처 상의 다수의 슬레이브들에 대한 사용을 허가하는 단계;
    (b) 상기 사용을 허가받은 소정 마스터로부터 제공된 커맨드를 디코딩함으로써 상기 슬레이브들을 사용하기 위한 정보를 생성하는 단계; 및
    (c) 상기 생성된 정보에 기초하여 상기 슬레이브들과 연결된 버스 시스템의 프로토콜에 따른 신호들을 출력하는 단계를 포함하는 것을 특징으로 하는 버스 연결 방법.
  2. 제 1 항에 있어서,
    상기 (c) 단계는 상기 슬레이브들에 대한 마스터 신호들을 파이프라인 방식으로 출력하는 것을 특징으로 하는 버스 연결 방법.
  3. 제 2 항에 있어서,
    상기 슬레이브들은 메모리 뱅크들이고,
    상기 (c) 단계는 상기 메모리 뱅크들이 인터리브 읽기 또는 쓰기를 수행할 수 있도록 상기 마스터 신호들을 파이프라인 방식으로 출력하는 것을 특징으로 하는 버스 연결 방법.
  4. 제 1 항에 있어서,
    상기 (c) 단계는 다수의 채널들 각각에 대응하는 버스 시스템들 각각의 프로토콜에 따른 마스터 신호들을 출력하는 것을 특징으로 하는 버스 연결 방법.
  5. 제 1 항에 있어서,
    상기 (b) 단계는 상기 커맨드들을 디코딩함으로써 상기 소정 마스터에 할당된 채널을 결정하고, 상기 결정된 채널을 사용하는 슬레이브들을 결정하고, 상기 결정 결과에 따라 상기 정보를 생성하는 것을 특징으로 하는 버스 연결 방법.
  6. 제 1 항에 있어서,
    상기 슬레이브들은 메모리 뱅크들이고,
    상기 (b) 단계는 상기 메모리 뱅크들에 대한 블록 단위의 읽기 또는 쓰기를 나타내는 데이터 전송 방식 및 데이터 사이즈를 포함하는 커맨드를 디코딩함으로써 상기 마스터들과 메모리 뱅크들의 맵핑 정보가 기록된 메모리 맵 상에서의 라인 단위의 읽기 또는 쓰기를 나타내는 주소 정보 및 제어 정보를 생성하는 것을 특징으로 하는 버스 연결 방법.
  7. 소정 버스 아키텍처 상의 다수의 마스터들 중 소정 마스터에게 상기 소정 버스 아키텍처 상의 다수의 슬레이브들에 대한 사용을 허가하는 중재부;
    상기 사용을 허가받은 소정 마스터로부터 제공된 커맨드를 디코딩함으로써 상기 슬레이브들을 사용하기 위한 정보를 생성하는 디코더; 및
    상기 생성된 정보에 기초하여 상기 슬레이브들과 연결된 버스 시스템의 프로토콜에 따른 신호들을 출력하는 인터페이스를 포함하는 것을 특징으로 하는 버스 연결 장치.
  8. 제 7 항에 있어서,
    상기 인터페이스는 상기 슬레이브들에 대한 마스터 신호들을 파이프라인 방식으로 출력하는 것을 특징으로 하는 버스 연결 장치.
  9. 제 8 항에 있어서,
    상기 슬레이브들은 메모리 뱅크들이고,
    상기 인터페이스는 상기 메모리 뱅크들이 인터리브 읽기 또는 쓰기를 수행할 수 있도록 상기 마스터 신호들을 파이프라인 방식으로 출력하는 것을 특징으로 하는 버스 연결 장치.
  10. 제 7 항에 있어서,
    상기 인터페이스는 다수의 채널들 각각에 대응하는 버스 시스템들 각각의 프로토콜에 따른 마스터 신호들을 출력하는 것을 특징으로 하는 버스 연결 장치.
  11. 제 7 항에 있어서,
    상기 디코더는 상기 커맨드들을 디코딩함으로써 상기 소정 마스터에 할당된 채널을 결정하고, 상기 결정된 채널을 사용하는 슬레이브들을 결정하고, 상기 결정 결과에 따라 상기 정보를 생성하는 것을 특징으로 하는 버스 연결 장치.
  12. 제 7 항에 있어서,
    상기 슬레이브들은 메모리 뱅크들이고,
    상기 디코더는 상기 메모리 뱅크들에 대한 블록 단위의 읽기 또는 쓰기를 나타내는 데이터 전송 방식 및 데이터 사이즈를 포함하는 커맨드를 디코딩함으로써 상기 마스터들과 메모리 뱅크들의 맵핑 정보가 기록된 메모리 맵 상에서의 라인 단위의 읽기 또는 쓰기를 나타내는 주소 정보 및 제어 정보를 생성하는 것을 특징으로 하는 버스 연결 장치.
  13. 제 7 항에 있어서,
    상기 슬레이브들은 메모리 뱅크들이고, 상기 인터페이스는 상기 메모리 뱅크들 각각에 할당된 DMA(Direct Memory Access)들인 것을 특징으로 하는 버스 연결 장치.
  14. 제 1 항 내지 제 6 항 중에 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020050018435A 2005-03-05 2005-03-05 버스 연결 방법 및 장치 Expired - Fee Related KR100694095B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020050018435A KR100694095B1 (ko) 2005-03-05 2005-03-05 버스 연결 방법 및 장치
US11/304,614 US20060200606A1 (en) 2005-03-05 2005-12-16 Bus connection method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050018435A KR100694095B1 (ko) 2005-03-05 2005-03-05 버스 연결 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20060097314A KR20060097314A (ko) 2006-09-14
KR100694095B1 true KR100694095B1 (ko) 2007-03-12

Family

ID=36945362

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050018435A Expired - Fee Related KR100694095B1 (ko) 2005-03-05 2005-03-05 버스 연결 방법 및 장치

Country Status (2)

Country Link
US (1) US20060200606A1 (ko)
KR (1) KR100694095B1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100951856B1 (ko) * 2007-11-27 2010-04-12 한국전자통신연구원 멀티미디어 시스템용 SoC 시스템
US8078784B2 (en) * 2008-04-23 2011-12-13 Airhop Communications Method and apparatus for data movement in a system on a chip
DE102016109387A1 (de) 2015-05-26 2016-12-01 Samsung Electronics Co., Ltd. Ein-Chip-System mit Taktverwaltungseinheit und Verfahren zum Betreiben des Ein-Chip-Systems
KR102384347B1 (ko) 2015-05-26 2022-04-07 삼성전자주식회사 클록 관리 유닛을 포함하는 시스템 온 칩 및 그 동작방법
WO2017216840A1 (ja) * 2016-06-13 2017-12-21 オリンパス株式会社 メモリアクセス制御装置、画像処理装置、および撮像装置
CN112860622B (zh) * 2021-02-08 2022-11-04 山东云海国创云计算装备产业创新中心有限公司 一种处理系统以及一种片上系统
CN113946567B (zh) * 2021-12-21 2022-03-25 中科南京智能技术研究院 一种基于众核系统的数据迁移系统及方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020012032A (ko) * 2000-08-05 2002-02-15 윤종용 버스 시스템 및 그 커맨드 전달방법
KR20020013184A (ko) * 2000-08-11 2002-02-20 윤종용 버스 시스템

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5367695A (en) * 1991-09-27 1994-11-22 Sun Microsystems, Inc. Bus-to-bus interface for preventing data incoherence in a multiple processor computer system
US5664124A (en) * 1994-11-30 1997-09-02 International Business Machines Corporation Bridge between two buses of a computer system that latches signals from the bus for use on the bridge and responds according to the bus protocols
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
US5761443A (en) * 1995-06-07 1998-06-02 Advanced Micro Systems, Inc. Computer system employing a bus conversion bridge for interfacing a master device residing on a multiplexed peripheral bus to a slave device residing on a split-address, split-data multiplexed peripheral bus
US5717876A (en) * 1996-02-26 1998-02-10 International Business Machines Corporation Method for avoiding livelock on bus bridge receiving multiple requests
US6263399B1 (en) * 1998-06-01 2001-07-17 Sun Microsystems, Inc. Microprocessor to NAND flash interface
US6449677B1 (en) * 1998-09-03 2002-09-10 Compaq Information Technologies Group, L.P. Method and apparatus for multiplexing and demultiplexing addresses of registered peripheral interconnect apparatus
JP4097847B2 (ja) * 1999-07-05 2008-06-11 株式会社リコー バス・ブリッジのアービトレーション方法
US6678780B1 (en) * 1999-10-04 2004-01-13 Ati International Srl Method and apparatus for supporting multiple bus masters with the accelerated graphics protocol (AGP) bus
US6513089B1 (en) * 2000-05-18 2003-01-28 International Business Machines Corporation Dual burst latency timers for overlapped read and write data transfers
US6587905B1 (en) * 2000-06-29 2003-07-01 International Business Machines Corporation Dynamic data bus allocation
US6874039B2 (en) * 2000-09-08 2005-03-29 Intel Corporation Method and apparatus for distributed direct memory access for systems on chip
US6959354B2 (en) * 2001-03-08 2005-10-25 Sony Corporation Effective bus utilization using multiple bus interface circuits and arbitration logic circuit
US20030009730A1 (en) * 2001-06-16 2003-01-09 Chen Michael Y. Enhanced platform based SOC design including exended peripheral selection and automated IP customization facilitation
US7174401B2 (en) * 2002-02-28 2007-02-06 Lsi Logic Corporation Look ahead split release for a data bus
US6857029B2 (en) * 2002-04-30 2005-02-15 International Business Machines Corporation Scalable on-chip bus performance monitoring synchronization mechanism and method of use
US7020733B2 (en) * 2002-10-09 2006-03-28 Samsung Electronics Co., Ltd. Data bus system and method for performing cross-access between buses
US7099983B2 (en) * 2002-11-25 2006-08-29 Lsi Logic Corporation Multi-core communications module, data communications system incorporating a multi-core communications module, and data communications process
KR100560761B1 (ko) * 2003-07-08 2006-03-13 삼성전자주식회사 인터페이스 변환 시스템 및 그 방법
KR101089324B1 (ko) * 2004-02-20 2011-12-02 삼성전자주식회사 복수의 마스터들을 포함하는 서브 시스템을 개방형 코어프로토콜을 기반으로 하는 버스에 연결하기 위한 버스시스템
KR100604835B1 (ko) * 2004-02-24 2006-07-26 삼성전자주식회사 프로토콜 변환중재회로, 이를 구비하는 시스템과 신호변환중재방법
US7143221B2 (en) * 2004-06-08 2006-11-28 Arm Limited Method of arbitrating between a plurality of transfers to be routed over a corresponding plurality of paths provided by an interconnect circuit of a data processing apparatus
US7254658B2 (en) * 2004-06-08 2007-08-07 Arm Limited Write transaction interleaving

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020012032A (ko) * 2000-08-05 2002-02-15 윤종용 버스 시스템 및 그 커맨드 전달방법
KR20020013184A (ko) * 2000-08-11 2002-02-20 윤종용 버스 시스템

Also Published As

Publication number Publication date
US20060200606A1 (en) 2006-09-07
KR20060097314A (ko) 2006-09-14

Similar Documents

Publication Publication Date Title
CN102112973B (zh) 协调装置、协调系统、协调方法、半导体集成电路及图像处理装置
US8661180B2 (en) Memory controlling device and memory controlling method
JP5947302B2 (ja) 複数のメモリチャネルを有するコンピューティングシステムにおけるメモリバッファの割り当て
US7725621B2 (en) Semiconductor device and data transfer method
US20140344512A1 (en) Data Processing Apparatus and Memory Apparatus
US20110283042A1 (en) Transaction splitting apparatus and method
JP4198376B2 (ja) バスシステム及びバスシステムを含む情報処理システム
US8140797B2 (en) Integrated circuit and method of securing access to an on-chip memory
KR20100117564A (ko) 적어도 하나의 dma 주변장치 및 직각위상 클록으로 동작하는 cpu 사이의 싱글 포트 sram의 대역폭 공유
US7058740B2 (en) Effective bus utilization using multiple buses and multiple bus controllers
KR100694095B1 (ko) 버스 연결 방법 및 장치
US20250156358A1 (en) Electronic device, and method for controlling same
US7346713B2 (en) Methods and apparatus for servicing commands through a memory controller port
US9767054B2 (en) Data transfer control device and memory-containing device
US6272067B1 (en) SRAM synchronized with an optimized clock signal based on a delay and an external clock
US20040034748A1 (en) Memory device containing arbiter performing arbitration for bus access right
KR20010050234A (ko) 메모리(mem)와 결합한 데이터 처리용 디바이스
KR100579419B1 (ko) Ddr sdram 데이터 전송을 위한 amba인터페이스 장치
JP2010140440A (ja) バス調停装置
KR100218109B1 (ko) 영상 기록/재생장치의 동시 기록/재생을 위한 시간코드 처리장치
US20090100220A1 (en) Memory system, control method thereof and computer system
JP2007334600A (ja) 半導体集積回路装置
JPH0764849A (ja) プロセッサの共有メモリ制御装置
JPH0431939A (ja) 外部記憶装置
KR20060103683A (ko) Cpu를 내장한 soc 구조

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

St.27 status event code: A-0-1-A10-A12-nap-PA0109

PA0201 Request for examination

St.27 status event code: A-1-2-D10-D11-exm-PA0201

R17-X000 Change to representative recorded

St.27 status event code: A-3-3-R10-R17-oth-X000

PN2301 Change of applicant

St.27 status event code: A-3-3-R10-R13-asn-PN2301

St.27 status event code: A-3-3-R10-R11-asn-PN2301

PN2301 Change of applicant

St.27 status event code: A-3-3-R10-R13-asn-PN2301

St.27 status event code: A-3-3-R10-R11-asn-PN2301

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

St.27 status event code: A-1-2-D10-D21-exm-PE0902

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

PG1501 Laying open of application

St.27 status event code: A-1-1-Q10-Q12-nap-PG1501

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

St.27 status event code: A-1-2-D10-D22-exm-PE0701

GRNT Written decision to grant
PR0701 Registration of establishment

St.27 status event code: A-2-4-F10-F11-exm-PR0701

PR1002 Payment of registration fee

St.27 status event code: A-2-2-U10-U11-oth-PR1002

Fee payment year number: 1

PG1601 Publication of registration

St.27 status event code: A-4-4-Q10-Q13-nap-PG1601

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 4

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 5

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 6

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000

FPAY Annual fee payment

Payment date: 20130227

Year of fee payment: 7

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 7

FPAY Annual fee payment

Payment date: 20140227

Year of fee payment: 8

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 8

FPAY Annual fee payment

Payment date: 20150226

Year of fee payment: 9

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 9

LAPS Lapse due to unpaid annual fee
PC1903 Unpaid annual fee

St.27 status event code: A-4-4-U10-U13-oth-PC1903

Not in force date: 20160307

Payment event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE

PC1903 Unpaid annual fee

St.27 status event code: N-4-6-H10-H13-oth-PC1903

Ip right cessation event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE

Not in force date: 20160307