KR101703509B1 - 시스템-온-칩의 버스 트래픽 분산을 위한 메모리 시분할 장치 및 방법 - Google Patents

시스템-온-칩의 버스 트래픽 분산을 위한 메모리 시분할 장치 및 방법 Download PDF

Info

Publication number
KR101703509B1
KR101703509B1 KR1020150115538A KR20150115538A KR101703509B1 KR 101703509 B1 KR101703509 B1 KR 101703509B1 KR 1020150115538 A KR1020150115538 A KR 1020150115538A KR 20150115538 A KR20150115538 A KR 20150115538A KR 101703509 B1 KR101703509 B1 KR 101703509B1
Authority
KR
South Korea
Prior art keywords
slave
ports
clock
bus
memory
Prior art date
Application number
KR1020150115538A
Other languages
English (en)
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 KR1020150115538A priority Critical patent/KR101703509B1/ko
Application granted granted Critical
Publication of KR101703509B1 publication Critical patent/KR101703509B1/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/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/368Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
    • G06F13/372Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control using a time-dependent priority, e.g. individually loaded time counters or time slot
    • 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/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System (AREA)

Abstract

본 실시예에 의하면, 버스시스템은 M(M은 자연수)개의 마스터포트(Master Port), N(N은 자연수)개의 슬레이브포트(Slave Port), 버스(Bus), A(A는 자연수)개의 마스터, B(B는 자연수)개의 슬레이브, 내부메모리를 포함한다. 또한, 본 실시예에서 버스시스템은 P(P는 자연수, P≤M)개의 마스터포트 트래픽감시부(Traffic Monitoring Unit), Q(Q는 자연수, Q≤N)개의 슬레이브포트 트래픽감시부, 메모리클록 스케일링부(Scaling Unit)를 개시한다.
본 실시예에 의하면, 저전력 프로세서를 사용하는 시스템-온-칩에서 복수개의 슬레이브포트와 연결된 내부메모리의 메모리클록을 변경함으로써, 버스 트래픽을 분산하는 효과가 있다.

Description

시스템-온-칩의 버스 트래픽 분산을 위한 메모리 시분할 장치 및 방법{Method and Apparatus for Memory Time-Sharing Capable of Distributing Bus Traffic of System-on-Chip}
본 실시예가 속하는 기술 분야는 저전력 프로세서를 사용하는 시스템-온-칩(System-on-Chip)의 버스 트래픽(Bus Traffic)을 분산하는 기술에 관한 것이다.
이 부분에 기술된 내용은 단순히 본 실시예에 대한 배경 정보를 제공할 뿐 종래기술을 구성하는 것은 아니다.
시스템-온-칩(System-on-Chip, SoC)은 다양하게 기능하는 컴포넌트들을 하나의 칩으로 구현한 것이다. 시스템-온-칩은 디지털 회로로 구성되어 있다. 디지털 회로는 논리값을 나타내는 0(Low) 또는 1(High)을 이용하는데, 이는 전기적인 펄스를 발생시켜 구현한다. 뿐만 아니라, 다양한 컴포넌트는 각각 처리속도가 서로 다를 수 있다. 디지털 회로가 제대로 동작하기 위해서는 다양한 컴포넌트의 전기적인 펄스를 동기화(Synchonization)할 필요가 있다. 이를 위해 클록(Clock) 주파수 또는 클록 펄스의 발생주기를 이용한다. 각각의 컴포넌트는 각각의 클록 주파수에 기초하여 동작한다. 그리고 하나의 클록 주파수에 맞춰 각각의 컴포넌트의 동작을 동기화하는 것이다.
도 1은 시스템-온-칩의 일반적인 버스시스템을 개략적으로 나타내는 블록도이다. 다양한 컴포넌트는 크게 마스터와 슬레이브로 나눌 수 있다. 도 1을 참조하면, 버스시스템은 마스터(Master, 110), 슬레이브(Slave, 120), 아비터(130), 디코더(140)를 포함한다.
마스터(110)는 제어신호, 주소, 데이터 등을 슬레이브(120)로 보내어 판독(Read), 기록(Write) 등의 동작을 할 수 있도록 하는 장치이다. 슬레이브(120)는 주소영역을 갖고 주소영역에 판독, 기록 등을 할 수 있는 장치이다. 슬레이브(120)는 자신의 상태를 나타내는 신호를 마스터(110)로 보낸다. 이로 인해, 마스터(110)는 슬레이브(120)의 상태를 알 수 있다. 그 후, 마스터(110)는 슬레이브(120)가 수행할 다음 동작을 명령한다.
아비터(Arbiter, 130)는 복수의 마스터(110) 중에서 하나의 마스터(110)를 선택하는 장치이다. 두 개 이상의 마스터가 하나의 슬레이브에 동시에 판독 또는 기록을 할 수는 없기 때문이다. 따라서, 두 개 이상의 마스터가 하나의 슬레이브를 액세스하는 순서에 관한 우선순위를 정할 필요가 있다.
디코더(Decoder, 140)는 마스터(110)로부터 수신한 주소신호를 이용하여 적절한 슬레이브(120)를 선택하는 장치이다. 슬레이브의 선택을 위해서 디코더(140)는 수신한 주소를 이용할 수 있다. 주소는 비트(Bit)로 이뤄진다. 일부 비트를 이용하여 주소를 지정할 수 있다.
마스터(110)와 슬레이브(120) 간에 제어신호, 주소 또는 데이터 등을 전송하기 위한 통로가 필요하다. 이러한 통로 역할을 하는 것이 버스(Bus)이다.
도 2는 시스템-온-칩의 마스터, 슬레이브 및 버스를 나타내는 블록도이다.
도 2에 도시하는 바와 같이, 시스템-온-칩의 일반적인 버스시스템에서 마스터와 슬레이브는 복수개로 구성될 수 있다. 버스시스템은 복수개의 마스터포트(Master Port, 230~233), 복수개의 슬레이브포트(Slave Port, 240~243), 이들을 연결하는 버스(Bus, 205), 복수개의 마스터포트와 각각 연결된 복수개의 마스터(210~213), 복수개의 슬레이브포트와 각각 연결된 복수개의 슬레이브(220~243)를 포함한다.
버스(205)는 버스클록(Bus Clock) 주파수에 기초하여 동작한다. 일반적으로 버스클록 주파수는 하나의 마스터클록 주파수로 설정된다. 예를 들면, 버스 클록을 CPU의 클록을 기준으로 설정한다.
CPU가 임베디드(Embedded)된 제품에서 성능을 저하시키는 주된 요인은 버스트래픽(Bus Traffic)의 병목현상이다. 특히, 버스트래픽 병목현상은 메인 메모리에 접근(Access)하기 위한 메모리 제어부에서 주로 나타난다.
이를 해결하기 위해 버스클록 주파수를 올리는 방식과 버스 대역폭을 확장하는 방식이 사용될 수 있다. 버스클록 주파수를 올리는 방식은 전체 시스템의 전력 소비가 증가하는 문제점이 발생한다. 그 이유는 전력소비는 주파수에 비례하기 때문이다. 시스템-온-칩은 주로 저전력 프로세서를 이용하는데, 버스클록을 CPU클록에 맞출 경우 전력소비의 증가가 필연적이다. 한편, 버스 대역폭을 확장하는 방식은 하드웨어 설계구조상 제약이 있다.
본 발명의 실시예들은 저전력 프로세서를 사용하는 시스템-온-칩에서 복수개의 슬레이브포트와 연결된 내부메모리의 메모리클록을 변경하여 버스 트래픽을 분산하기 위한 내부메모리 시분할 장치 및 방법을 제공하는 것에 주된 목적이 있다.
본 실시예의 일 측면에 의하면, M(M은 자연수)개의 마스터포트(Master Port)와 N(N은 자연수)개의 슬레이브포트(Slave Port)가 연결된 버스(Bus), 상기 M개의 마스터포트와 각각 연결된 A(A는 자연수)개의 마스터, 상기 N개의 슬레이브포트와 각각 연결된 B(B는 자연수)개의 슬레이브, 및 상기 N개의 슬레이브포트 중에서 정해진 우선순위에 따라 선정된 C(C는 자연수, C≤N)개의 슬레이브포트와 연결된 내부메모리를 포함하되, 상기 A개의 마스터는 상기 B개의 슬레이브가 수행하도록 정해진 동작을 명령하고, 상기 B개의 슬레이브는 상기 A개의 마스터가 내린 명령에 따라 동작을 수행하고, 상기 버스는 버스클록(Bus Clock)에 기초하여 상기 A개의 마스터가 내린 각각의 명령을 상기 B개의 슬레이브에게 전달하고, 상기 내부메모리는 메모리클록(Memory Clock)에 기초하여 데이터를 기록하는 버스시스템을 제공한다.
상기 버스시스템의 실시예는 다음의 특징들을 하나 이상 더 포함할 수 있다.
상기 버스는 M개의 마스터포트를 가로축으로 하고 N개의 슬레이브포트를 세로축으로 하여 매트릭스(Matrix) 형태로 연결될 수 있다.
상기 M개의 마스터포트 중에서 정해진 우선순위에 따라 선정된 P(P는 자연수, P≤M)개의 마스터포트와 연결되고, 상기 N개의 슬레이브포트 중에서 정해진 우선순위에 따라 선정된 Q(Q는 자연수, Q≤N)개의 슬레이브포트와 연결되어, 상기 M개의 마스터포트 및 상기 Q개의 슬레이브포트 중에서 적어도 하나의 포트의 트래픽을 모니터링하는 포트 트래픽감시부(Port Traffic Monitoring Unit)를 포함할 수 있다.
상기 내부메모리에 연결되어 상기 내부메모리의 메모리클록을 변경하는 메모리클록 스케일링부(Scaling Unit)를 포함할 수 있다.
본 실시예의 다른 일 측면에 의하면, M(M은 자연수)개의 마스터포트(Master Port)와 N(N은 자연수)개의 슬레이브포트(Slave Port)가 연결된 버스(Bus), 상기 M개의 마스터포트와 각각 연결된 A(A는 자연수)개의 마스터, 상기 N개의 슬레이브포트와 각각 연결된 B(B는 자연수)개의 슬레이브, 상기 N개의 슬레이브포트 중에서 정해진 우선순위에 따라 선정된 C(C는 자연수, C≤N)개의 슬레이브포트와 연결된 내부메모리 제어부, 상기 내부메모리 제어부와 연결된 멀티플렉서(Multiplexer), 및 상기 멀티플렉서와 연결되어 데이터를 기록하는 메모리유닛을 포함하되, 상기 A개의 마스터는 상기 B개의 슬레이브가 수행하도록 정해진 동작을 명령하고, 상기 B개의 슬레이브는 상기 A개의 마스터가 내린 명령에 따라 동작을 수행하고, 상기 버스는 버스클록(Bus Clock)에 기초하여 상기 A개의 마스터가 내린 각각의 명령을 상기 B개의 슬레이브에게 전달하고, 상기 내부메모리 제어부는 메모리클록(Memory Clock)에 기초하여 상기 A개의 마스터가 내린 명령을 순서에 맞게 제어하고, 상기 멀티플렉서는 멀티플렉서 선택신호를 이용하여 상기 내부메모리 제어부에 연결된 C개의 슬레이브포트 중에서 정해진 우선순위에 따라 하나의 슬레이브포트를 선택하되, 상기 멀티플렉서 선택신호는 선택신호클록에 기초하여 동작하는 메모리 시분할장치를 제공한다.
상기 메모리 시분할장치의 실시예는 다음의 특징을 하나 이상 더 포함할 수 있다.
상기 내부메모리 제어부는 분리된 C개의 어드레스영역(Address Area)을 포함하고, 상기 C개의 어드레스영역과 상기 C개의 슬레이브포트를 각각 연결할 수 있다.
본 실시예의 다른 일 측면에 의하면, M(M은 자연수)개의 마스터포트(Master Port)와 N(N은 자연수)개의 슬레이브포트(Slave Port)가 연결된 버스(Bus), 상기 M개의 마스터포트와 각각 연결된 A(A는 자연수)개의 마스터, 상기 N개의 슬레이브포트와 각각 연결된 B(B는 자연수)개의 슬레이브, 상기 N개의 슬레이브포트 중에서 정해진 우선순위에 따라 선정된 C(C는 자연수, C≤N)개의 슬레이브포트와 연결된 내부메모리 제어부, 상기 N개의 슬레이브포트 중 D(D는 자연수, C+D≤N)개의 시분할을 위한 슬레이브포트 및 상기 내부메모리 제어부와 연결된 C개의 멀티플렉서(Multiplexer), 및 상기 C개의 멀티플렉서와 각각 연결되어 데이터를 기록하는 C개의 메모리유닛을 포함하되, 상기 A개의 마스터는 상기 B개의 슬레이브가 수행하도록 정해진 동작을 명령하고, 상기 B개의 슬레이브는 상기 A개의 마스터가 내린 명령에 따라 동작을 수행하고, 상기 버스는 버스클록(Bus Clock)에 기초하여 상기 A개의 마스터가 내린 각각의 명령을 상기 B개의 슬레이브에게 전달하고, 상기 내부메모리 제어부는 메모리클록(Memory Clock)에 기초하여 상기 A개의 마스터가 내린 명령을 순서에 맞게 제어하고, 상기 C개의 멀티플렉서는 각각의 멀티플렉서 선택신호를 이용하여 상기 내부메모리 제어부에 연결된 C개의 슬레이브포트 중에서 정해진 우선순위에 따라 하나의 슬레이브포트를 선택하되, 상기 멀티플렉서 선택신호는 선택신호클록에 기초하여 동작하는 메모리 시분할장치를 제공한다.
상기 메모리 시분할장치의 실시예는 다음의 특징들을 하나 이상 더 포함할 수 있다.
상기 내부메모리 제어부는 분리된 복수개의 어드레스영역(Address Area)을 포함하고, 상기 복수개의 어드레스영역은 상기 A개의 마스터를 포인트하는 어드레스영역을 갖고, 상기 A개의 마스터를 포인트하는 어드레스영역 각각은 상기 C개의 슬레이브를 포인트하는 어드레스영역을 가질 수 있다.
상기 내부메모리 제어부는 분리된 C개의 어드레스영역(Address Area)을 포함하고, 상기 C개의 어드레스영역은 상기 C개의 슬레이브포트와 각각 연결되고, 상기 C개의 어드레스영역 중 하나의 어드레스영역 및 상기 D개의 시분할을 위한 슬레이브포트는 상기 C개의 멀티플렉서 중 하나의 멀티플렉서의 입력과 연결되고, 상기 C개의 멀티플렉서의 출력은 상기 C개의 메모리유닛과 각각 연결될 수 있다.
본 실시예의 다른 일 측면에 의하면, M(M은 자연수)개의 마스터포트(Master Port)와 N(N은 자연수)개의 슬레이브포트(Slave Port)를 연결하는 버스(Bus), 상기 N개의 슬레이브포트 중에서 C(C는 자연수, C≤N)개의 슬레이브포트와 연결된 메모리를 포함하는 버스시스템이 버스 트래픽을 분산하는 방법에 있어서, 상기 버스를 동작시키는 버스클록(Bus Clock)과 상기 메모리를 동작시키는 메모리클록(Memory Clock)을 설정하는 과정, 상기 C개의 슬레이브포트 중에서 E(E는 자연수, E≤C)개의 슬레이브포트를 우선순위에 따라 선정하는 과정, 상기 E개의 슬레이브포트에 따라 상기 메모리클록을 변경하는 과정, 및 상기 E개의 슬레이브포트를 활성화시키는 과정을 포함하는 버스 트래픽을 분산하는 메모리 시분할방법을 제공한다.
이상에서 설명한 바와 같이 본 발명의 실시예들에 의하면, 시스템-온-칩에서 복수개의 슬레이브포트와 연결된 내부메모리를 시분할한다. 메모리를 시분할하기 위해 메모리클록을 스케일링한다. 이로 인해, 복수개의 슬레이브포트에서 버스 트래픽을 분산할 수 있다.
버스클록 주파수를 증가시키는 방식과 달리, 내부메모리의 메모리클록을 증가시킨다. 클록 주파수가 증가되므로 전체 시스템의 전력소비가 증가한다. 그러나, 버스클록 주파수를 증가시키는 것이 아니므로 전력소비의 증가를 최소화하는 효과가 있다. 시스템-온-칩이 주로 저전력 프로세서를 사용하는 점에 비추어볼 때, 이러한 방식은 전력관리측면에서 유용하다.
복수개의 마스터는 버스를 통하여 슬레이브가 수행할 명령과 데이터를 전송한다. 복수개의 마스터에서 임계경로는 각각 다르다. 여기서 임계경로는 슬레이브가 동작을 수행하도록 하는 명령 및 데이터를 마스터가 전송하는 데 가장 오랜 시간 걸리는 경로를 의미한다. 메모리를 시분할함으로써, 서로 다른 임계경로를 고려하여 상황에 맞게 시간 경로를 단축시킬 수 있다. 이로 인해 회로 변경을 최소화할 수 있고 버스 트래픽 분산은 극대화하는 효과가 있다.
시스템이 버스클록을 느리게 유지해야 하는 경우에도 메모리를 시분할하여 버스 트래픽을 분산할 수 있다.
메모리클록을 가변적으로 스케일링할 수 있다. 이로 인해 메모리에 연결된 슬레이브포트 개수를 가변적으로 변경할 수 있다. 따라서, 불필요한 클록 변경없이 최소한의 클록 변경이 가능하다.
도 1은 시스템-온-칩의 일반적인 버스시스템을 개략적으로 나타내는 블록도이다.
도 2는 시스템-온-칩의 마스터, 슬레이브 및 버스를 나타내는 블록도이다.
도 3은 본 발명의 일 실시예에 따른 버스시스템을 예시한 블록도이다.
도 4 및 도 5는 본 발명의 다른 실시예에 따른 멀티플렉서가 포함된 메모리 시분할장치를 예시한 블록도이다.
도 6 및 도 7은 본 발명의 다른 실시예에 따른 복수개의 멀티플렉서가 포함된 메모리 시분할장치를 예시한 블록도이다.
도 8a는 본 발명의 다른 실시예에 따른 메모리 시분할장치를 예시한 블록도이다.
도 8b는 본 발명의 다른 실시예에 따른 메모리 시분할장치의 내부메모리를 예시한 블록도이다.
도 9는 본 발명의 다른 실시예에 따른 4-웨이 인터리브하는 메모리 어드레스맵을 예시한 도면이다.
도 10a은 본 발명의 다른 실시예에 따른 4-웨이/2-웨이 인터리브하는 메모리 어드레스맵의 4-웨이 모드를 예시한 도면이다.
도 10b는 본 발명의 다른 실시예에 따른 4-웨이/2-웨이 인터리브하는 메모리 어드레스맵의 2-웨이 모드를 예시한 도면이다.
도 11 내지 도 13는 본 발명의 다른 실시예에 따른 메모리 시분할방법을 나타내는 흐름도이다.
이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 명세서 전체에서, 어떤 부분이 어떤 구성요소를 '포함', '구비'한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 '…부', '모듈' 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
첨부된 도면과 함께 이하에 개시될 상세한 설명은 본 발명의 예시적인 실시형태를 설명하고자 하는 것이며, 본 발명이 실시될 수 있는 유일한 실시형태를 나타내고자 하는 것이 아니다.
도 3을 참조하여 본 발명의 일 실시예에 따른 버스시스템을 설명한다. 도 3은 본 발명의 일 실시예에 따른 버스시스템을 예시한 블록도이다.
본 실시예에서 버스시스템은 M(M은 자연수)개의 마스터포트(Master Port), N(N은 자연수)개의 슬레이브포트(Slave Port), 버스(Bus, 305), A(A는 자연수)개의 마스터, B(B는 자연수)개의 슬레이브, 내부메모리(370)를 포함한다. 또한, 본 실시예에서 버스시스템은 포트 트래픽감시부(Port Traffic Monitoring Unit)를 포함할 수 있다. 본 실시예에 따른 버스시스템에 포함된 구성요소는 반드시 이에 한정되는 것은 아니다.
설명의 편의를 위해, 4개의 마스터포트, 4개의 슬레이브포트, 4개의 마스터, 4개의 슬레이브로 구성된 버스시스템을 예로 들어 설명한다. 도 3을 참조하면, 마스터0(310), 마스터1(311), 마스터2(312), 마스터3(313)이 있고, 슬레이브0(320), 슬레이브1(321), 슬레이브2(322), 슬레이브3(323)이 있고, 마스터포트0(330), 마스터포트1(331), 마스터포트2(332), 마스터포트3(333)이 있고, 슬레이브포트0(340), 슬레이브포트1(341), 슬레이브포트2(342), 슬레이브포트3(343)이 있다.
도 3에 도시하는 바와 같이, 마스터0(310)은 마스터포트0(330)에 연결되고, 마스터1(311)은 마스터포트1(331)에 연결되고, 마스터2(312)은 마스터포트2(332)에 연결되고, 마스터3(313)은 마스터포트3(333)에 연결된다. 경우에 따라서는 하나의 마스터와 복수개의 마스터포트가 연결될 수 있고, 복수개의 마스터와 하나의 마스터포트가 연결될 수 있다.
슬레이브0(320)은 슬레이브포트0(340)에 연결되고, 슬레이브1(321)은 슬레이브포트1(341)에 연결되고, 슬레이브2(322)은 슬레이브포트2(342)에 연결되고, 슬레이브3(323)은 슬레이브포트3(343)에 연결된다. 경우에 따라서는 하나의 슬레이브와 복수개의 슬레이브포트가 연결될 수 있고, 복수개의 슬레이브와 하나의 슬레이브포트가 연결될 수도 있다.
마스터포트0(330)는 슬레이브포트0(340)과 연결되고 슬레이브포트1(341)과 연결되고 슬레이브포트2(342)와 연결되고 슬레이브포트3(343)과 연결된다. 마찬가지로 마스터포트1(331), 마스터포트2(332) 또는 마스터포트3(333)은 각각 슬레이브포트0(340)과 연결되고 슬레이브포트1(341)과 연결되고 슬레이브포트2(342)와 연결되고 슬레이브포트3(343)과 연결된다. 즉, 버스(305)는 M개의 마스터포트와 N개의 슬레이브포트를 연결하는 역할을 한다.
버스(305)는 버스클록(Bus Clock) 주파수에 기초하여 동작하고, 일반적으로 하나의 마스터클록 주파수로 설정된다. 메인 마스터가 CPU인 경우 CPU의 클록을 기준으로 설정하기도 한다. 버스와 관련된 버스 인터페이스는 각 구현에 맞도록 다양하게 정의될 수 있다. 대표적인 버스 인터페이스로 AMBA(Advanced Microcontroller Bus Architecture)가 있고 이는 다시 AHB(Advanced High Performance Bus), ASB(Advanced System Bus), APB(Advanced Peripheral Bus)로 나뉜다.
내부메모리(370)는 N개의 슬레이브포트 중에서 정해진 우선순위에 따라 선정된 C(C는 자연수, C≤N)개의 슬레이브포트와 연결될 수 있다. 슬레이브포트를 선택하는 기준이 되는 우선순위는 우선정책(Priority Policy)에 의해 정해질 수 있다. 우선순위는 하드웨어적인 테스트에 따른 통계적인 값에 의해 설정될 수 있다.
슬레이브포트를 선택하는 기준에 대해 추가로 설명하면, 임계경로(Critical Path)를 기준으로 하여 선택할 수 있다. 임계경로는 슬레이브가 동작을 수행하도록 하는 명령 및 데이터를 마스터가 전송하는 데 가장 오랜 시간 걸리는 경로를 의미한다. 복수개의 마스터에서 임계경로는 각각 다르기 때문에 임계경로를 이용하여 슬레이브포트를 선택할 수 있다. 예를 들면, 가장 긴 임계경로를 갖는 마스터0(310)를 슬레이브포트0(340)에 연결한다.
내부메모리(370)는 슬레이브포트0 내지 슬레이브포트3 중에서 선택적으로 연결될 수 있다. 예를 들면, 내부메모리(370)는 슬레이브포트0(340)과 연결될 수도 있고 슬레이브포트1(341)과 연결될 수도 있고 슬레이브포트2(342)와 연결될 수도 있고 슬레이브포트3(343)과 연결될 수도 있다. 복수개의 슬레이브포트와 연결될 수도 있다.
내부메모리(370)는 메모리클록(Memory Clock)에 기초하여 동작한다. 내부메모리(370)는 각 구현에 맞도록 다양한 유형의 메모리가 적용될 수 있다. 예를 들면, 정적 램(SRAM)를 이용할 수 있다.
포트 트래픽감시부(Port Traffic Monitoring Unit, 350)는 M개의 마스터포트 중에서 정해진 우선순위에 따라 선정된 P(P는 자연수, P≤M)개의 마스터포트와 연결되고, N개의 슬레이브포트 중에서 정해진 우선순위에 따라 선정된 Q(Q는 자연수, Q≤N)개의 슬레이브포트와 연결된다. 포트 트래픽감시부는 P개의 마스터포트 및 Q개의 슬레이브포트 중에서 적어도 하나의 포트의 트래픽을 모니터링한다. 포트 트래픽감시부는 명령 신호의 횟수 또는 웨이팅 중 적어도 하나를 이용하여, P개의 마스터포트 및 Q개의 슬레이브포트 중에서 적어도 하나의 포트의 트래픽을 모니터링할 수 있다.
설명의 편의를 위해, 4개의 마스터포트 및 4개의 슬레이브포트를 예로 들어 설명한다. 도 3을 참조하면, 포트 트래픽감시부(350)가 4개의 마스터포트 중에서 4개의 마스터포트를 선택하고, 4개의 슬레이브포트 중에서 4개의 슬레이브포트를 선택하는 경우, 포트 트래픽감시부(350)는 마스터포트0(330)에 연결되고, 마스터포트1(331)에 연결되고, 마스터포트2(332)에 연결되고, 마스터포트3(333)에 연결되고, 슬레이브포트0(340)에 연결되고, 슬레이브포트1(341)에 연결되고, 슬레이브포트2(342)에 연결되고, 슬레이브포트3(343)에 연결된다. 포트 트래픽감시부는 4개의 마스터포트 및 4개의 슬레이브포트에서 전송되고 있는 명령 신호의 횟수 또는 웨이팅 중 적어도 하나를 모니터링한다.
메모리클록 스케일링부(Scaling Unit, 375)는 내부메모리(370)에 연결되어 내부메모리(370)의 메모리클록을 변경하는 기능을 한다. 내부메모리(370)의 메모리클록은 메모리클록 스케일링부(375)에 의해 버스클록의 S(S는 자연수)배수로 설정될 수 있다. 메모리클록이 스케일링할 수 있는 범위는 슬레이브포트의 개수에 의해 결정된다. 예를 들면, 내부메모리(370)와 2개의 슬레이브포트가 연결된 경우 내부메모리(370)의 메모리클록은 버스클록의 1배수 또는 2배수가 될 수 있고, 내부메모리(370)와 3개의 슬레이브포트가 연결된 경우 내부메모리(370)의 메모리클록은 버스클록의 1배수 내지 3배수 중 어느 하나가 될 수 있으며, 내부메모리(370)와 4개의 슬레이브포트가 연결된 경우 내부메모리(370)의 메모리클록은 버스클록의 1배수 내지 4배수 중 어느 하나가 될 수 있다.
메모리 클록변경에 관하여 AHB 인터페이스를 예로 들어 설명한다. AHB 인터페이스는 제어신호, 주소 및 데이터를 동일한 라인에 공유한다. 또한, AHB 인터페이스는 버스트(BURST)전송이 가능하다. 여기서 버스트전송은, 주소를 먼저 전송하고 이어서 데이터를 연속적으로 전송하는 방식이다. 주소를 전송하고 데이터를 전송하고 다시 주소를 전송하고 데이터를 전송하는 통상적인 방식과는 다르다.
AHB 인터페이스는 동작 속도 또는 대역폭이 다른 두 버스간 통신을 제공할 수 있다. 이러한 경우에 AHB 인터페이스의 HTRANS 신호 중에서 바쁨(BUSY)신호가 유용하게 사용될 수 있다. 여기서 BUSY 신호는 마스터가 버스트전송 중간에 데이터를 보낼 수 없어 쉬는 상태를 의미하는 신호이다. BUSY 신호를 이용하면 클록 주파수가 다른 경우에도 회로 변경을 최소화한 설계가 가능하다.
구체적으로 설명하면, BUSY 신호가 없는 경우에는 클록 주파수가 바뀌는 구간마다 데이터 저장 공간을 만들어야 하므로 회로 설계에 불리할 수 있다. BUSY 신호를 이용하면 서로 다른 클록의 버스 간에 회로 설계시 공간적 문제를 해결할 수가 있다. 상대적으로 느린 클록에서 동작하는 버스의 경우, 느린 클록 구간에서 버스트전송모드로 데이터를 보낸다. 한편, 상대적으로 빠른 클록에서 동작하는 버스의 경우, 빠른 클록 구간에서는 데이터를 보내고 클록 차이에 따른 나머지 클록 구간에는 BUSY 상태를 표시하면 되는 것이다.
메모리클록을 스케일링함으로써, 복수개의 슬레이브포트에서 버스 트래픽을 분산할 수 있다. 내부메모리의 메모리클록을 스케일링하면, 버스클록 주파수를 증가시키는 것이 아니므로 전력소비의 증가를 최소화하는 효과가 있다. 시스템-온-칩이 주로 저전력 프로세서를 사용하는 점에 비추어볼 때, 이러한 방식은 전력관리측면에서 유용하다.
메모리클록 스케일링부(375)가 내부메모리(370)의 메모리클록을 변경할 지 여부를 결정하기 위해서, 포트 트래픽감시부가 감시한 포트의 트래픽을 기준할 수 있다.
포트 트래픽감시부는 포트에서 전송되고 있는 명령 신호의 횟수 또는 웨이팅을 모니터링한다. AHB 신호를 예로 들면, H접두사로 시작되고, HCLK, HRESETn, HADDR, HTRANS, HWRITE, HSIZE, HBURST, HPROT, HWDATA, HSELx, HRDATA, HREADY, HRESP 등이 있다. 여기서 x는 x모듈에서 출력되는 신호이다. 예컨대, 마스터 0으로부터 나오는 신호는 0으로 표현된다.
포트 트래픽감시부는 멀티플렉서(미도시)를 이용하여 포트 트래픽감시부와 연결된 P개의 마스터포트 및 Q개의 슬레이브포트 중 적어도 어느 하나의 포트를 선택할 수 있다.
포트 트래픽감시부는 모니터링한 적어도 하나의 포트에서 전송되고 있는 명령 신호의 횟수 또는 웨이팅 값을 모니터링하고, 이를 미리 설정된 값과 비교한다. 비교대상이 되는 미리 설정된 값은 하드웨어적인 테스트에 따른 통계적인 값이다. 예를 들면, 평균, 최대값, 최소값 등이 있을 수 있다. 우선정책에 따라 미리 설정된 값과 같거나, 미리 설정된 값보다 큰 경우에 메모리클록의 변경여부를 결정할 수 있다.
이로 인해, 메모리클록을 가변적으로 스케일링할 수 있다. 따라서, 메모리에 연결된 슬레이브포트의 개수를 가변적으로 변경할 수 있다. 불필요한 클록 변경없이 최소한의 클록 변경이 가능하게 된다.
도 4 및 도 5를 참조하여 본 발명의 다른 실시예에 따른 메모리 시분할장치를 설명한다. 도 4 및 도 5는 본 발명의 다른 실시예에 따른 멀티플렉서가 포함된 메모리 시분할장치를 예시한 블록도이다.
본 실시예에서 메모리 시분할장치는 M(M은 자연수)개의 마스터포트(Master Port), N(N은 자연수)개의 슬레이브포트(Slave Port), 버스(Bus, 405, 505), A(A는 자연수)개의 마스터, B(B는 자연수)개의 슬레이브, 내부메모리 제어부(470, 570), 멀티플렉서(Multiplexer, 480, 580), 메모리유닛(490, 590)을 포함한다. 본 실시예에 따른 메모리 시분할장치에 포함된 구성요소는 반드시 이에 한정되는 것은 아니다.
본 발명의 다른 실시예를 명확하게 설명하기 위하여 본 발명의 일 실시예에서 설명한 내용과 중복되는 내용은 생략하도록 한다.
내부메모리 제어부(470, 570)는 N개의 슬레이브포트 중에서 정해진 우선순위에 따라 선정된 C(C는 자연수, C≤N)개의 슬레이브포트와 연결된다. 내부메모리 제어부(470, 570)는 분리된 어드레스영역(Address Area)을 갖고, 분리된 어드레스영역과 C개의 슬레이브포트를 각각 연결한다. 어드레스는 비트(Bit)로 이뤄진다. 예를 들면, 8비트, 16비트, 32비트 등으로 이루어진 어드레스가 있다. 어드레스영역을 분리하기 위해서 어드레스를 나타내는 비트 중 일부를 이용할 수 있다.
멀티플렉서(Multiplexer, 480, 580)는 복수의 입력 중에서 하나를 선택하여 출력으로 내보내는 기능을 한다. 멀티플렉서(480, 580)는 내부메모리 제어부와 연결되고 멀티플렉서 선택신호에 기초하여 동작한다. 멀티플렉서(480, 580)는 내부메모리 제어부에 연결된 C개의 슬레이브포트 중에서 우선순위를 둔 하나의 슬레이브포트를 선택한다. 슬레이브포트를 선택하는 기준이 되는 우선순위는 우선정책에 의해 정해질 수 있다. 우선정책은 하드웨어적인 테스트에 따른 통계적인 값에 의해 설정될 수 있다. 하나의 슬레이브포트를 선택할 때 임계경로(Critical Path)를 기준으로 하여 선택할 수도 있다. 예를 들면, 가장 긴 임계경로를 갖는 마스터0(410)를 슬레이브포트0(440)에 연결한다.
복수개의 마스터에서 임계경로는 각각 다르다. 여기서 임계경로는 슬레이브가 동작을 수행하도록 하는 명령 및 데이터를 마스터가 전송하는 데 가장 오랜 시간 걸리는 경로를 의미한다. 메모리를 시분할함으로써, 서로 다른 임계경로를 고려하여 상황에 맞게 시간 경로를 단축시킬 수 있다. 이로 인해 회로 변경을 최소화할 수 있고 버스 트래픽 분산은 극대화하는 효과가 있다.
메모리유닛(490, 590)은 판독 또는 기록을 할 수 있는 기억장치에 해당하고, 멀티플렉서(480, 580)와 연결된다. 각각의 메모리유닛(490, 590)의 총량은 T 바이트(Byte)이다.
설명의 편의를 위해, 4개의 슬레이브포트가 있고 내부메모리 제어부(470)에 연결된 슬레이브포트의 개수가 2인 경우를 예로 들어 설명한다. 도 4를 참조하면, 내부메모리 제어부(470)는 4개의 슬레이브포트 중에서 정해진 우선순위에 따라 선정된 2개의 슬레이브포트와 연결된다. 내부메모리 제어부(470)는 멀티플렉서의 입력과 연결되고, 메모리유닛(490)은 멀티플렉서(480)의 출력과 연결된다. 멀티플렉서(480)에서 멀티플렉서 선택신호는 선택신호클록에 기초하여 동작한다. 선택신호클록은 버스클록과 동일하다. 또한, 내부메모리 제어부(470)에서 메모리클록은 버스클록의 2배수가 된다.
설명의 편의를 위해, 4개의 슬레이브포트가 있고 내부메모리 제어부(570)에 연결된 슬레이브포트의 개수가 4인 경우를 예로 들어 설명한다. 도 5를 참조하면, 내부메모리 제어부(570)는 4개의 슬레이브포트와 연결된다. 내부메모리 제어부(570)는 멀티플렉서(580)의 입력과 연결되고, 메모리유닛(590)은 멀티플렉서의 출력과 연결된다. 멀티플렉서(580)에서 멀티플렉서 선택신호는 선택신호클록에 따라 동작한다. 선택신호클록은 버스클록의 2배수가 된다. 또한, 내부메모리 제어부(570)에서 메모리클록은 버스클록의 4배수가 된다.
도 6 및 도 7을 참조하여 본 발명의 다른 실시예에 따른 메모리 시분할장치를 설명한다. 도 6 및 도 7은 본 발명의 다른 실시예에 따른 복수개의 멀티플렉서가 포함된 메모리 시분할장치를 예시한 블록도이다. 메모리 시분할장치는 C(C는 자연수)-웨이 인터리브(Interleaved) 방식이 적용된다. 여기서 인터리브는 기억장치를 동시 액세스 가능한 부분으로 분할하여 데이터의 전송 시간을 고속화하는 방식을 의미한다.
본 실시예에서 메모리 시분할장치는 M(M은 자연수)개의 마스터포트(Master Port), N(N은 자연수)개의 슬레이브포트(Slave Port), 버스(Bus, 605, 705, 805), A(A는 자연수)개의 마스터, B(B는 자연수)개의 슬레이브, 내부메모리 제어부(미도시), C개의 멀티플렉서(Multiplexer), C개의 메모리유닛을 포함한다. 본 실시예에 따른 메모리 시분할장치에 포함된 구성요소는 반드시 이에 한정되는 것은 아니다.
본 발명의 다른 실시예를 명확하게 설명하기 위하여 본 발명의 일 실시예에서 설명한 내용과 중복되는 내용은 생략하도록 한다.
내부메모리 제어부는 메모리클록(Memory Clock)에 기초하여 동작한다. 내부메모리 제어부는 각각 분리된 C개의 어드레스영역(Address Area)을 포함한다. C개의 어드레스영역은 C개의 슬레이브포트와 각각 연결된다. C개의 어드레스영역 중 하나의 어드레스영역 및 D개의 시분할을 위한 슬레이브포트는 C개의 멀티플렉서 중 하나의 멀티플렉서의 입력과 연결된다. C개의 멀티플렉서의 출력은 C개의 메모리유닛과 각각 연결된다. 어드레스는 비트(Bit)로 이뤄진다. 예를 들면, 8비트, 16비트, 32비트 등이 있다. C개의 어드레스영역은 어드레스를 이루는 비트의 일부를 이용하여 분리될 수 있다. C개의 메모리유닛의 총량은 T 바이트이고, C개의 메모리유닛 각각은 T/C 바이트를 갖는다.
C개의 멀티플렉서는 내부메모리 제어부에 연결된 B개의 슬레이브포트 중에서 우선순위를 두어 슬레이브포트를 선택한다. C개의 멀티플렉서는 내부메모리 제어부에 연결된 B개의 슬레이브포트 중에서 임계경로(Critical Path)를 기준하여 슬레이브포트를 선택할 수 있다.
설명의 편의를 위해, N개의 슬레이브포트 중에서 정해진 우선순위에 따라 선정된 4개의 슬레이브포트를 예로 들어 설명한다. N개의 슬레이브포트 중 1개의 시분할을 위한 슬레이브포트 및 내부메모리 제어부와 연결되고 멀티플렉서 선택신호에 기초하여 동작하는 4개의 멀티플렉서가 있다. 내부메모리 제어부는 분리된 4개의 어드레스영역을 포함한다.
도 6을 참조하면, 4개의 어드레스영역은 소정의 우선순위에 기초하여 선정된 4개의 슬레이브포트와 연결된다. 4개의 어드레스영역 중 하나의 어드레스영역 및 1개의 시분할을 위한 슬레이브포트는 4개의 멀티플렉서 중 하나의 멀티플렉서의 입력과 연결되고, 4개의 멀티플렉서의 출력은 4개의 메모리유닛과 각각 연결될 수 있다. 4개의 메모리유닛의 총량은 T 바이트이고, 4개의 메모리유닛 각각은 T/4 바이트를 갖는다.
이러한 경우 멀티플렉서 선택신호는 선택신호클록에 기초하여 동작하고, 선택신호클록은 버스클록과 동일할 수 있다. 또한, 메모리클록은 버스클록의 2배수일 수 있다.
설명의 편의를 위해, N개의 슬레이브포트 중에서 정해진 우선순위에 따라 선정된 2개의 슬레이브포트를 예로 들어 설명한다. N개의 슬레이브포트 중 3개의 시분할을 위한 슬레이브포트 및 내부메모리 제어부와 연결되고 멀티플렉서 선택신호에 기초하여 동작하는 2개의 멀티플렉서가 있다. 내부메모리 제어부는 분리된 2개의 어드레스영역을 포함한다.
도 7을 참조하면, 2개의 어드레스영역은 소정의 우선순위에 기초하여 선정된 2개의 슬레이브포트와 연결된다. 2개의 어드레스영역 중 하나의 어드레스영역 및 3개의 시분할을 위한 슬레이브포트는 2개의 멀티플렉서 중 하나의 멀티플렉서의 입력과 연결되고, 2개의 멀티플렉서의 출력은 2개의 메모리유닛과 각각 연결될 수 있다. 2개의 메모리유닛의 총량은 T 바이트이고, 2개의 메모리유닛 각각은 T/2 바이트를 갖는다.
이러한 경우 멀티플렉서 선택신호는 선택신호클록에 기초하여 동작하고, 선택신호클록은 버스클록의 2배수일 수 있다. 또한, 메모리클록은 버스클록의 4배수일 수 있다.
도 8a 및 도 8b를 참조하여 본 발명의 다른 실시예에 따른 메모리 시분할장치를 설명한다. 도 8a는 본 발명의 다른 실시예에 따른 메모리 시분할장치를 예시한 블록도이고, 도 8b는 본 발명의 다른 실시예에 따른 메모리 시분할장치의 내부메모리를 예시한 블록도이다.
본 실시예에 따른 메모리 시분할장치는 프로세서 기반의 전자장치를 포함하고 반도체 집적 회로에 집적될 수 있다. 이러한 장치들은, 셋톱박스, 엔터테인먼트 유닛, 내비게이션 장치, 통신 장치, 개인용 디지털 정보 단말(PDA), 고정식 위치 데이터 유닛, 이동식 위치 데이터 유닛, 모바일 폰, 셀룰러 폰, 컴퓨터, 휴대용 컴퓨터, 데스크톱 컴퓨터, 모니터, 컴퓨터 모니터, 텔레비젼, 튜너, 라디오, 위성 라디오, 음악 플레이어, 디지털 음악 플레이어, 휴대용 음악 플레이어, 비디오 플레이어, 디지털 비디오 플레이어, 디지털 비디오 디스크(DVD) 플레이어, 및 휴대용 디지털 비디오 플레이어를 포함한다.
본 실시예에 따른 메모리 시분할장치는 주문형 집적 회로(ASIC) 및/또는 필드 프로그램 가능 게이트 어레이(FPGA)를 사용하여 시스템-온-칩(SoC)에 제공될 수 있다.
도 8a에 도시한 바와 같이, 본 실시예에 따른 메모리 시분할장치는 마스터0(810) 내지 마스터M(813), 슬레이브5(825) 내지 슬레이브N(826), 내부메모리(870), 메모리클록 스케일링부(875)를 포함한다. 여기서 마스터0(810) 내지 마스터M(813) 또는 슬레이브5(825) 내지 슬레이브N(826) 각각은 중앙처리부(Central Processing Unit, CPU, 미도시), 입력장치(미도시), 출력장치(미도시), 통신장치(미도시), 또는 디스플레이 장치(미도시) 중에서 어느 하나의 장치일 수 있다.
내부메모리(870)는 슬레이브포트0 내지 슬레이브포트4와 연결된다. 내부메모리(870)는 정적 메모리 및/또는 동적 메모리를 포함할 수 있다. 내부메모리(870)는 프로그램 저장소 및 데이터 저장소를 포함할 수 있다. 예를 들어, 정적 랜덤 액세스 메모리(SRAM), 동적 램(DRAM), 동기적 DRAM(SDRAM), 데이터 더블 레이트(DDR) SDRAM, 데이터 더블 레이트 2(DDR2) SDRAM, 데이터 더블 레이트 3(DDR3) SDRAM, 모바일 DDR(MDDR) SDRAM, 저전력(LP) DDR SDRAM, 및 LP DDR2 SDRAM을 포함한다.
메모리클록 스케일링부(875)는 내부메모리(870)에 연결되고, 내부메모리(870)의 메모리클록을 변경하는 기능을 한다. 메모리클록 스케일링부(875)가 변경하는 메모리클록은 버스클록의 S(S는 자연수)배수가 될 수 있다. 이는 내부메모리(870)에 연결된 복수개의 슬레이브포트와 관련되고, 이에 따라 메모리클록이 변경된다.
시스템이 버스클록을 느리게 유지해야 하는 경우에도 메모리클록을 변경하는 방식으로 메모리를 시분할하여 버스 트래픽을 분산할 수 있다.
도 8a에 도시된 내부메모리에 연결된 5개의 슬레이브포트는, 도 6을 참조하여 설명한 메모리 시분할장치와 도 7을 참조하여 설명한 메모리 시분할장치를 필요에 따라 선택적으로 가변하여 적용할 수 있다.
도 8b에 도시한 바와 같이, 내부메모리(870)는 디멀티플렉서(860~864), 어드레스, 멀티플렉서, 메모리유닛을 포함한다. 디멀티플렉서(860~864)는 복수의 출력선 중에서 하나를 선택한다. 내부메모리(870)는 디멀티플렉서(860~864)를 이용하여 4개로 분할된 메모리유닛(891~894) 또는 2개로 분할된 메모리유닛(895, 896)을 가변적으로 선택하여 사용할 수 있다.
내부메모리를 4개의 메모리유닛(891~894)으로 사용하는 경우, 4개의 메모리유닛(891~894)의 총량은 T 바이트이고, 4개의 메모리유닛(891~894) 각각은 T/4 바이트를 갖는다. 내부메모리를 2개의 메모리유닛(895, 896)으로 사용하는 경우, 2개의 메모리유닛(895, 896)의 총량은 T 바이트이고, 2개의 메모리유닛(895, 896) 각각은 T/2 바이트를 갖는다.
도 8a에서는 슬레이브포트0 내지 슬레이브포트4를 내부메모리에 연결하고 이를 도시하였으나 이는 예시일 뿐, 내부메모리에 연결된 슬레이브포트가 5개로 한정되는 것은 아니다. 예컨대, 7개의 슬레이브포트(슬레이브포트0 내지 슬레이브포트6)를 내부메모리에 연결할 수도 있다.
도 9, 도 10a 및 도 10b를 참조하여 본 발명의 다른 실시예에 따른 메모리 어드레스맵을 설명한다. 도 9는 본 발명의 다른 실시예에 따른 4-웨이 인터리브하는 메모리 어드레스맵을 예시한 도면이고, 도 10a은 본 발명의 다른 실시예에 따른 4-웨이/2-웨이 인터리브하는 메모리 어드레스맵의 4-웨이 모드를 예시한 도면이고, 도 10b는 본 발명의 다른 실시예에 따른 4-웨이/2-웨이 인터리브하는 메모리 어드레스맵의 2-웨이 모드를 예시한 도면이다.
도 9, 도 10a 및 도 10b에 도시하는 바와 같이, 본 실시예에 따른 메모리 어드레스맵은 어드레스를 이루는 비트(Bit)의 일부를 이용하여 복수개의 어드레스영역을 갖는 메모리 어드레스맵을 포함한다. 메모리 어드레스맵은 마스크롬, 내부메모리 등으로 사용하기 위한 메모리 어드레스영역이 할당된다.
복수개의 어드레스영역 중에서 일부는 내부메모리로 사용하기 위한 어드레스영역으로 할당한다. 예를 들면, 0x20000000부터 0x2FFFFFFF까지 256MB(메가바이트)를 내부메모리로 사용하기 위해 어드레스영역을 할당한다. 내부메모리로 사용하기 위한 어드레스영역은 마스터포트를 포인트하는 어드레스영역과 슬레이브포트를 포인트하는 어드레스영역을 갖는다. 여기서 포인트한다는 의미는 메모리의 어드레스 영역 중에서 메모리 크기를 고려하여 사용할 메모리 공간을 할당하는 것이다.
슬레이브포트를 위한 어드레스영역은 4개의 4-웨이 포트 및/또는 2개의 2-웨이 포트를 포인트할 수 있다. 이로 인해 대역폭을 확장하는 것과 같은 효과를 얻을 수 있다. 슬레이브포트를 위한 어드레스영역과 추가적으로 시분할을 위한 슬레이브포트와 함께 연결하여 버스트래픽을 분산할 수 있다.
도 8a 및 도 8b에서 예시한 5개의 슬레이브포트를 내부메모리에 연결한 메모리 시분할장치는 4-웨이 인터리브하는 메모리 어드레스맵과 2-웨이 인터리브하는 메모리 어드레스맵을 가변적으로 선택하여 사용할 수 있다.
도 10a에 예시한 4-웨이/2-웨이 인터리브하는 메모리 어드레스맵의 4-웨이 모드는 도 6을 참조하여 설명한 메모리 시분할장치가 대응된다. 4-웨이/2-웨이 인터리브하는 메모리 어드레스맵의 4-웨이 모드에서 마스터용 어드레스맵은 2개의 어드레스영역이 할당되고, 슬레이브용 어드레스 맵은 4-웨이 포트를 위한 4개의 어드레스영역이 할당된다. 이로 인해 포트 트래픽의 상황에 따라 메모리유닛을 4개로 분할할 수 있게 된다. 5개의 슬레이브포트와 연결된 내부메모리는 메모리 어드레스맵을 4-웨이 모드에서 시분할하여 사용할 수 있다.
도 10b에 예시한 4-웨이/2-웨이 인터리브하는 메모리 어드레스맵의 2-웨이 모드는 도 7을 참조하여 설명한 메모리 시분할장치가 대응된다. 4-웨이/2-웨이 인터리브하는 메모리 어드레스맵의 4-웨이 모드에서 마스터용 어드레스맵은 4개의 어드레스영역이 할당되고, 슬레이브용 어드레스 맵은 2-웨이 포트를 위한 2개의 어드레스영역이 할당된다. 이로 인해 포트 트래픽의 상황에 따라 메모리유닛을 2개로 분할할 수 있게 된다. 5개의 슬레이브포트와 연결된 내부메모리는 메모리 어드레스맵을 2-웨이 모드에서 시분할하여 사용할 수 있다.
도 11 내지 도 13을 참조하여 본 발명의 다른 실시예에 따른 메모리 시분할방법을 설명한다. 도 11 내지 도 13은 본 발명의 다른 실시예에 따른 메모리 시분할방법을 나타내는 흐름도이다.
도 3을 참조하여 설명한 버스시스템이, 버스 트래픽을 분산하기 위해서 내부메모리에 접근하기 위한 슬레이브포트의 개수를 가변적으로 변경하는 과정을 예로 들어 설명하면, 버스시스템은 버스를 동작시키는 버스클록과 메모리를 동작시키는 메모리클록을 설정한다(S1110). 시스템은 메모리클록과 버스클록을 일치시킨 상태로 부팅을 수행한다. 이때 내부메모리에 접근하기 위한 하나의 슬레이브포트를 활성화한 상태이다.
내부메모리에 접근하기 위한 E(E는 자연수, E≤C)개의 슬레이브포트를 설정한다(S1120). 버스 상황에 따라 슬레이브포트의 개수를 조절할 필요가 있기 때문이다.
단순히 내부메모리에 접근하기 위한 슬레이브포트의 개수만 늘리는 것이 아니라 메모리클록을 변경한다(S1130). 다시 말해 메모리클록을 버스클록의 배수로 설정한다. 이로 인해 내부메모리에 접근하기 위한 슬레이브포트를 그 배수에 맞게 활성화시킬 수 있다. E개의 슬레이브포트를 활성화시키다(S1140).
예컨대, 메모리클록을 버스클록의 2배수로 설정하고 내부메모리에 접근하기 위한 하나의 슬레이브포트를 추가적으로 활성화하여 내부메모리에 접근하기 위한 두개의 슬레이브포트를 활성화할 수 있다. 또는, 메모리클록을 버스클록의 3배수로 설정하고 내부메모리에 접근하기 위한 슬레이브포트를 추가적으로 활성화하여 내부메모리에 접근하기 위한 세개의 슬레이브포트를 활성화할 수도 있다. 메모리클록을 변경해야 하는 상황을 예로 들면, 추가적인 애플리케이션이 활성화되는 경우 또는 포트에 과부하가 걸리는 것으로 포트 트래픽감시부에 의해 감지된 경우 등이 있다.
도 6을 참조하여 설명한 4-웨이 인터리브하는 메모리 시분할장치가, 메모리클록을 변경하는 과정을 예로 들어 설명하면, 메모리 시분할장치은 버스를 동작시키는 버스클록과 메모리를 동작시키는 메모리클록을 설정한다(S1210). 메모리 시분할장치는 메모리클록과 버스클록을 일치시킨다. 이때 내부메모리에 접근하기 위한 하나의 슬레이브포트를 활성화한 상태이다. 내부메모리에 접근하기 위한 E(E는 자연수, E≤C)개의 슬레이브포트를 설정한다. 버스 상황에 따라 슬레이브포트의 개수를 조절할 필요가 있기 때문이다.
단순히 메모리에 접근하기 위한 슬레이브포트의 개수만 늘리는 것이 아니라 메모리클록을 변경한다. 메모리클록을 변경해야 하는 상황을 예로 들면, 추가적인 애플리케이션이 활성화되는 경우, 포트에 과부하가 걸리는 것으로 포트 트래픽감시부에 의해 감지된 경우 또는 메모리에 직접 접근이 필요한 경우 등이 있다.
이러한 상황에 따라 메모리클록을 버스클록의 배수로 설정한다. 이로 인해 내부메모리에 접근하기 위한 슬레이브포트를 그 배수에 맞게 활성화시킬 수 있다.
예컨대, 메모리 시분할장치는 메모리클록을 버스클록의 2배수로 설정하고(S1230) 내부메모리에 접근하기 위한 하나의 슬레이브포트를 추가적으로 활성화시키다. 메모리 시분할장치는 메모리를 4-웨이 인터리브한다(S1240). 이때, 내부메모리는 네개의 어드레스영역으로 분리되고, 네개의 분리된 어드레스영역과 네개의 슬레이브포트는 각각 연결되어 있다. 마스터는 메모리에 접근하기 위해 하나의 슬레이브포트를 추가적으로 활성화하지만 분리된 어드레스영역과 각각 연결된 네개의 슬레이브포트를 활성화시키게 된다. 마스터는 메모리 접근을 위한 두개의 슬레이브포트가 보이지만, 실제로는 다섯개의 슬레이브포트가 활성화된 상태이다(S1250). 이로 인해, 버스 대역폭을 확장하는 것과 같은 효과가 발생한다.
도 8을 참조하여 설명한 4-웨이/2웨이 인터리브하는 메모리 시분할장치가, 메모리클록을 변경하는 과정을 예로 들어 설명하면, 메모리 시분할장치은 버스를 동작시키는 버스클록과 메모리를 동작시키는 메모리클록을 설정한다(S1310). 메모리 시분할장치는 메모리클록과 버스클록을 일치시킨다. 이때 내부메모리에 접근하기 위한 하나의 슬레이브포트가 활성화된 상태이다. 내부메모리에 접근하기 위한 E(E는 자연수, E≤C)개의 슬레이브포트를 설정한다(S1320). 버스 상황에 따라 슬레이브포트의 개수를 조절할 필요가 있기 때문이다.
단순히 내부메모리에 접근하기 위한 슬레이브포트의 개수만 늘리는 것이 아니라 메모리클록을 변경한다. 다시 말해 메모리클록을 버스클록의 배수로 설정한다.
메모리클록을 변경해야 하는 상황을 예로 들면, 추가적인 애플리케이션이 활성화되는 경우, 포트에 과부하가 걸리는 것으로 포트 트래픽감시부에 의해 감지된 경우 또는 메모리에 직접 접근이 필요한 경우 등이 있다.
이러한 상황에 따라 메모리클록을 버스클록의 배수로 설정한다. 이로 인해 내부메모리에 접근하기 위한 슬레이브포트를 그 배수에 맞게 활성화시킬 수 있다.
예컨대, 메모리 시분할장치는 메모리클록을 버스클록의 2배수로 설정하고 내부메모리에 접근하기 위한 하나의 슬레이브포트를 추가적으로 활성화시킨다. 메모리 시분할장치는 메모리를 4-웨이 인터리브한다. 이때, 내부메모리는 네개의 어드레스영역으로 분리되고, 네개의 분리된 어드레스영역과 네개의 슬레이브포트는 각각 연결되어 있다. 마스터는 메모리에 접근하기 위해 하나의 슬레이브포트를 추가적으로 활성화하지만 분리된 어드레스영역과 각각 연결된 네개의 슬레이브포트를 활성화시키게 된다. 마스터는 메모리 접근을 위한 두개의 슬레이브포트가 보이지만, 실제로는 다섯개의 슬레이브포트가 활성화된 상태이다. 이로 인해, 버스 대역폭을 확장하는 것과 같은 효과가 발생한다.
또는, 시스템은 메모리클록을 버스클록의 4배수로 설정하고(S1330) 내부메모리에 접근하기 위한 세개의 슬레이브포트를 추가적으로 활성화시킨다. 여기서 추가된 슬레이브포트는 메모리를 시분할하기 위한 것이다. 그리고, 메모리 시분할장치는 메모리를 2-웨이 인터리브한다(S1340). 내부메모리는 두개의 어드레스영역으로 분리되고, 분리된 두개의 어드레스영역과 두개의 슬레이브포트는 각각 연결되어 있다. 마스터는 메모리에 접근하기 위해 하나의 슬레이브포트를 추가적으로 활성화하지만 분리된 어드레스영역과 각각 연결된 두개의 슬레이브포트를 활성화시키게 된다. 마스터는 메모리 접근을 위한 네개의 슬레이브포트가 보이지만, 실제로는 다섯개의 슬레이브포트가 활성화된 상태이다(S1350). 이로 인해, 버스 대역폭을 확장하는 것과 같은 효과가 발생한다.
뿐만 아니라, 실제로는 메모리 접근을 위해 다섯개의 슬레이브포트가 활성화된 상태이므로, 메모리클록을 버스클록의 2배수로 설정한 상태에서 버스클록의 4배수로 설정한 상태로 변경할 수 있다. 반대로 메모리클록을 버스클록의 4배수로 설정한 상태에서 버스클록의 2배수로 설정한 상태로 변경할 수도 있다. 이로 인해, 버스 트래픽 특히 메모리에 접근하기 위한 데이터의 병목 현상을 최소화하는 효과가 발생한다. 본 실시예들에 따른 메모리 시분할방법에 포함된 과정들은 반드시 이에 한정되는 것은 아니다.
도 11에서는 과정 S1110 내지 과정 S1140을 순차적으로 실행하는 것으로 기재하고 있고, 도 12에서는 과정 S1210 내지 과정 S1250을 순차적으로 실행하는 것으로 기재하고 있고, 도 13에서는 과정 S1310 내지 과정 S1350을 순차적으로 실행하는 것으로 기재하고 있으나, 이는 본 발명의 일 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것이다. 다시 말해, 본 발명의 일 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 일 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 도 11 내지 13에 기재된 순서를 변경하여 실행하거나 과정 S1110 내지 과정 S1140 중 하나 이상의 과정을 병렬적으로 실행하거나 과정 S1210 내지 과정 S1250 중 하나 이상의 과정을 병렬적으로 실행하거나 과정 과정 S1310 내지 과정 S1350 중 하나 이상의 과정을 병렬적으로 실행하는 것으로 다양하게 수정 및 변형하여 적용 가능할 것이므로, 도 11 내지 도13은 시계열적인 순서로 한정되는 것은 아니다.
한편, 도 11 내지 도 13에 도시된 흐름도의 각 단계는 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 즉, 컴퓨터가 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등) 및 캐리어 웨이브(예를 들면, 인터넷을 통한 전송)와 같은 저장매체를 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이상의 설명은 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 실시예들은 본 실시예의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
110: 아비터 120: 마스터 130: 슬레이브 140: 디코더
205, 305, 405, 505, 605, 705, 805: 버스
210, 310, 810: 마스터0 220: 슬레이브0
230, 330, 830: 마스터포트0
240, 340, 440, 540, 640, 740, 840: 슬레이브포트0
350: 마스터포트 트래픽감시부0
360: 슬레이브포트 트래픽감시부0
370, 870: 내부메모리
375, 875: 메모리클록 스케일링부
470, 570: 내부메모리 제어부
480, 580: 멀티플렉서 680, 780: 멀티플렉서0
860: 디멀티플렉서0 670, 770: 어드레스0
624, 724: 시분할0 490, 590: 메모리유닛
690, 790: 메모리유닛0

Claims (27)

  1. M(M은 자연수)개의 마스터포트(Master Port)와 N(N은 자연수)개의 슬레이브포트(Slave Port)가 연결된 버스(Bus);
    상기 M개의 마스터포트와 각각 연결된 A(A는 자연수)개의 마스터;
    상기 N개의 슬레이브포트와 각각 연결된 B(B는 자연수)개의 슬레이브; 및
    상기 N개의 슬레이브포트 중에서 정해진 우선순위에 따라 선정된 C(C는 자연수, C≤N)개의 슬레이브포트와 연결된 내부메모리
    를 포함하되,
    상기 A개의 마스터는 상기 B개의 슬레이브가 수행하도록 정해진 동작을 명령하고, 상기 B개의 슬레이브는 상기 A개의 마스터가 내린 명령에 따라 동작을 수행하고, 상기 버스는 버스클록(Bus Clock)에 기초하여 상기 A개의 마스터가 내린 각각의 명령을 상기 B개의 슬레이브에게 전달하고, 상기 내부메모리는 메모리클록(Memory Clock)에 기초하여 데이터를 기록하는 버스시스템.
  2. 제 1 항에 있어서,
    상기 버스는 M개의 마스터포트를 가로축으로 하고 N개의 슬레이브포트를 세로축으로 하여 매트릭스(Matrix) 형태로 연결되는 버스시스템.
  3. 제 1 항에 있어서,
    상기 M개의 마스터포트 중에서 정해진 우선순위에 따라 선정된 P(P는 자연수, P≤M)개의 마스터포트와 연결되고, 상기 N개의 슬레이브포트 중에서 정해진 우선순위에 따라 선정된 Q(Q는 자연수, Q≤N)개의 슬레이브포트와 연결되어, 상기 M개의 마스터포트 및 상기 Q개의 슬레이브포트 중에서 적어도 하나의 포트의 트래픽을 모니터링하는 포트 트래픽감시부(Port Traffic Monitoring Unit)를 추가로 포함하는 버스시스템.
  4. 제 3 항에 있어서,
    상기 포트 트래픽감시부는 명령 신호의 횟수 또는 웨이팅 중 적어도 하나를 이용하여, 상기 P개의 마스터포트 및 상기 Q개의 슬레이브포트 중에서 적어도 하나의 포트의 트래픽을 모니터링하는 버스시스템.
  5. 제 1 항에 있어서,
    상기 내부메모리에 연결되어 상기 내부메모리의 메모리클록을 변경하는 메모리클록 스케일링부(Scaling Unit)를 추가로 포함하는 버스시스템.
  6. 제 5 항에 있어서,
    상기 내부메모리의 메모리클록은 상기 메모리클록 스케일링부에 의해 상기 버스클록의 S(S는 자연수)배수로 변경되는 것을 특징으로 하는 버스시스템.
  7. 제 5 항에 있어서,
    상기 M개의 마스터포트 중에서 정해진 우선순위에 따라 선정된 P(P는 자연수, P≤M)개의 마스터포트와 연결되고, 상기 N개의 슬레이브포트 중에서 정해진 우선순위에 따라 선정된 Q(Q는 자연수, Q≤N)개의 슬레이브포트와 연결되어, 상기 M개의 마스터포트 및 상기 Q개의 슬레이브포트 중에서 적어도 하나의 포트의 트래픽을 모니터링하는 포트 트래픽감시부(Port Traffic Monitoring Unit)를 추가로 포함하되,
    상기 메모리클록 스케일링부가 상기 포트 트래픽감시부가 감시한 포트의 트래픽을 이용하여 상기 메모리클록을 변경하는 버스시스템.
  8. 제 1 항에 있어서,
    상기 버스는 AHB(Advanced High Performance Bus) 인터페이스를 기반으로 하는 버스시스템.
  9. 제 1 항에 있어서,
    상기 내부메모리는 정적 램(SRAM)인 것을 특징으로 하는 버스시스템.
  10. M(M은 자연수)개의 마스터포트(Master Port)와 N(N은 자연수)개의 슬레이브포트(Slave Port)가 연결된 버스(Bus);
    상기 M개의 마스터포트와 각각 연결된 A(A는 자연수)개의 마스터;
    상기 N개의 슬레이브포트와 각각 연결된 B(B는 자연수)개의 슬레이브;
    상기 N개의 슬레이브포트 중에서 정해진 우선순위에 따라 선정된 C(C는 자연수, C≤N)개의 슬레이브포트와 연결된 내부메모리 제어부;
    상기 내부메모리 제어부와 연결된 멀티플렉서(Multiplexer); 및
    상기 멀티플렉서와 연결되어 데이터를 기록하는 메모리유닛
    을 포함하되,
    상기 A개의 마스터는 상기 B개의 슬레이브가 수행하도록 정해진 동작을 명령하고, 상기 B개의 슬레이브는 상기 A개의 마스터가 내린 명령에 따라 동작을 수행하고, 상기 버스는 버스클록(Bus Clock)에 기초하여 상기 A개의 마스터가 내린 각각의 명령을 상기 B개의 슬레이브에게 전달하고, 상기 내부메모리 제어부는 메모리클록(Memory Clock)에 기초하여 상기 A개의 마스터가 내린 명령을 순서에 맞게 제어하고, 상기 멀티플렉서는 멀티플렉서 선택신호를 이용하여 상기 내부메모리 제어부에 연결된 C개의 슬레이브포트 중에서 정해진 우선순위에 따라 하나의 슬레이브포트를 선택하되, 상기 멀티플렉서 선택신호는 선택신호클록에 기초하여 동작하는 메모리 시분할장치.
  11. 제 10 항에 있어서,
    상기 내부메모리 제어부는 분리된 C개의 어드레스영역(Address Area)을 포함하고, 상기 C개의 어드레스영역과 상기 C개의 슬레이브포트를 각각 연결한 메모리 시분할장치.
  12. 제 10 항에 있어서,
    상기 내부메모리 제어부에 연결된 슬레이브포트의 개수는 2개인 것을 특징으로 하는 메모리 시분할장치.
  13. 제 12 항에 있어서,
    상기 선택신호클록은 상기 버스클록과 동일하고, 상기 메모리클록은 상기 버스클록의 2배수인 것을 특징으로 하는 메모리 시분할장치.
  14. 제 10 항에 있어서,
    상기 내부메모리 제어부에 연결된 슬레이브포트는 4개인 것을 특징으로 하는 메모리 시분할장치.
  15. 제 14 항에 있어서,
    상기 선택신호클록은 상기 버스클록의 2배수이고, 상기 메모리클록은 상기 버스클록의 4배수인 것을 특징으로 하는 메모리 시분할장치.
  16. M(M은 자연수)개의 마스터포트(Master Port)와 N(N은 자연수)개의 슬레이브포트(Slave Port)가 연결된 버스(Bus);
    상기 M개의 마스터포트와 각각 연결된 A(A는 자연수)개의 마스터;
    상기 N개의 슬레이브포트와 각각 연결된 B(B는 자연수)개의 슬레이브;
    상기 N개의 슬레이브포트 중에서 정해진 우선순위에 따라 선정된 C(C는 자연수, C≤N)개의 슬레이브포트와 연결된 내부메모리 제어부;
    상기 N개의 슬레이브포트 중 D(D는 자연수, C+D≤N)개의 시분할을 위한 슬레이브포트 및 상기 내부메모리 제어부와 연결된 C개의 멀티플렉서(Multiplexer); 및
    상기 C개의 멀티플렉서와 각각 연결되어 데이터를 기록하는 C개의 메모리유닛
    을 포함하되,
    상기 A개의 마스터는 상기 B개의 슬레이브가 수행하도록 정해진 동작을 명령하고, 상기 B개의 슬레이브는 상기 A개의 마스터가 내린 명령에 따라 동작을 수행하고, 상기 버스는 버스클록(Bus Clock)에 기초하여 상기 A개의 마스터가 내린 각각의 명령을 상기 B개의 슬레이브에게 전달하고, 상기 내부메모리 제어부는 메모리클록(Memory Clock)에 기초하여 상기 A개의 마스터가 내린 명령을 순서에 맞게 제어하고, 상기 C개의 멀티플렉서는 각각의 멀티플렉서 선택신호를 이용하여 상기 내부메모리 제어부에 연결된 C개의 슬레이브포트 중에서 정해진 우선순위에 따라 하나의 슬레이브포트를 선택하되, 상기 멀티플렉서 선택신호는 선택신호클록에 기초하여 동작하는 메모리 시분할장치.
  17. 제 16 항에 있어서,
    상기 내부메모리 제어부는 분리된 복수개의 어드레스영역(Address Area)을 포함하고, 상기 복수개의 어드레스영역은 상기 A개의 마스터를 포인트하는 어드레스영역을 갖고, 상기 A개의 마스터를 포인트하는 어드레스영역 각각은 상기 C개의 슬레이브를 포인트하는 어드레스영역을 갖는 메모리 시분할장치.
  18. 제 16 항에 있어서,
    상기 내부메모리 제어부는 분리된 C개의 어드레스영역(Address Area)을 포함하고,
    상기 C개의 어드레스영역은 상기 C개의 슬레이브포트와 각각 연결되고, 상기 C개의 어드레스영역 중 하나의 어드레스영역 및 상기 D개의 시분할을 위한 슬레이브포트는 상기 C개의 멀티플렉서 중 하나의 멀티플렉서의 입력과 연결되고, 상기 C개의 멀티플렉서의 출력은 상기 C개의 메모리유닛과 각각 연결된 메모리 시분할장치.
  19. 제 18 항에 있어서,
    상기 내부메모리 제어부에 포함된 C개의 어드레스영역이 어드레스를 이루는 비트(Bit)의 일부를 이용하여 분리되는 메모리 시분할장치.
  20. M(M은 자연수)개의 마스터포트(Master Port)와 N(N은 자연수, N≥5)개의 슬레이브포트(Slave Port)가 연결된 버스(Bus);
    상기 M개의 마스터포트와 각각 연결된 A(A는 자연수)개의 마스터;
    상기 N개의 슬레이브포트와 각각 연결된 B(B는 자연수)개의 슬레이브;
    상기 N개의 슬레이브포트 중에서 정해진 우선순위에 따라 선정된 4개의 슬레이브포트와 연결된 내부메모리 제어부;
    상기 N개의 슬레이브포트 중 1개의 시분할을 위한 슬레이브포트 및 상기 내부메모리 제어부와 연결된 4개의 멀티플렉서(Multiplexer); 및
    상기 4개의 멀티플렉서와 각각 연결되어 데이터를 기록하는 4개의 메모리유닛
    을 포함하되,
    상기 A개의 마스터는 상기 B개의 슬레이브가 수행하도록 정해진 동작을 명령하고, 상기 B개의 슬레이브는 상기 A개의 마스터가 내린 명령에 따라 동작을 수행하고, 상기 버스는 버스클록(Bus Clock)에 기초하여 상기 A개의 마스터가 내린 각각의 명령을 상기 B개의 슬레이브에게 전달하고, 상기 내부메모리 제어부는 메모리클록(Memory Clock)에 기초하여 상기 A개의 마스터가 내린 명령을 순서에 맞게 제어하고, 상기 4개의 멀티플렉서는 각각의 멀티플렉서 선택신호를 이용하여 상기 내부메모리 제어부에 연결된 4개의 슬레이브포트 중에서 정해진 우선순위에 따라 하나의 슬레이브포트를 선택하되, 상기 멀티플렉서 선택신호는 선택신호클록에 기초하여 동작하는 메모리 시분할장치.
  21. 제 20 항에 있어서,
    상기 내부메모리 제어부는 분리된 4개의 어드레스영역(Address Area)을 포함하고,
    상기 4개의 어드레스영역은 상기 4개의 슬레이브포트와 각각 연결되고, 상기 4개의 어드레스영역 중 하나의 어드레스영역 및 상기 1개의 시분할을 위한 슬레이브포트는 상기 4개의 멀티플렉서 중 하나의 멀티플렉서의 입력과 연결되고, 상기 4개의 멀티플렉서의 출력은 상기 4개의 메모리유닛과 각각 연결된 메모리 시분할장치.
  22. 제 21 항에 있어서,
    상기 선택신호클록은 상기 버스클록과 동일하고, 상기 메모리클록은 상기 버스클록의 2배수인 것을 특징으로 하는 메모리 시분할장치.
  23. M(M은 자연수)개의 마스터포트(Master Port)와 N(N은 자연수, N≥5)개의 슬레이브포트(Slave Port)가 연결된 버스(Bus);
    상기 M개의 마스터포트와 각각 연결된 A(A는 자연수)개의 마스터;
    상기 N개의 슬레이브포트와 각각 연결된 B(B는 자연수)개의 슬레이브;
    상기 N개의 슬레이브포트 중에서 정해진 우선순위에 따라 선정된 2개의 슬레이브포트와 연결된 내부메모리 제어부;
    상기 N개의 슬레이브포트 중 3개의 시분할을 위한 슬레이브포트 및 상기 내부메모리 제어부와 연결된 2개의 멀티플렉서(Multiplexer); 및
    상기 2개의 멀티플렉서와 각각 연결되어 데이터를 기록하는 2개의 메모리유닛
    을 포함하되,
    상기 A개의 마스터는 상기 B개의 슬레이브가 수행하도록 정해진 동작을 명령하고, 상기 B개의 슬레이브는 상기 A개의 마스터가 내린 명령에 따라 동작을 수행하고, 상기 버스는 버스클록(Bus Clock)에 기초하여 상기 A개의 마스터가 내린 각각의 명령을 상기 B개의 슬레이브에게 전달하고, 상기 내부메모리 제어부는 메모리클록(Memory Clock)에 기초하여 상기 A개의 마스터가 내린 명령을 순서에 맞게 제어하고, 상기 2개의 멀티플렉서는 각각의 멀티플렉서 선택신호를 이용하여 상기 내부메모리 제어부에 연결된 2개의 슬레이브포트 중에서 정해진 우선순위에 따라 하나의 슬레이브포트를 선택하되, 상기 멀티플렉서 선택신호는 선택신호클록에 기초하여 동작하는 메모리 시분할장치.
  24. 제 23 항에 있어서,
    상기 내부메모리 제어부는 분리된 2개의 어드레스영역(Address Area)을 포함하고,
    상기 2개의 어드레스영역은 상기 2개의 슬레이브포트와 각각 연결되고, 상기 2개의 어드레스영역 중 하나의 어드레스영역 및 상기 3개의 시분할을 위한 슬레이브포트는 상기 2개의 멀티플렉서 중 하나의 멀티플렉서의 입력과 연결되고, 상기 2개의 멀티플렉서의 출력은 상기 2개의 메모리유닛과 각각 연결된 메모리 시분할장치.
  25. 제 24 항에 있어서,
    상기 선택신호클록은 상기 버스클록의 2배수이고, 상기 메모리클록은 상기 버스클록의 4배수인 것을 특징으로 하는 메모리 시분할장치.
  26. 삭제
  27. M(M은 자연수)개의 마스터포트(Master Port)와 N(N은 자연수)개의 슬레이브포트(Slave Port)를 연결하는 버스(Bus), 상기 N개의 슬레이브포트 중에서 C(C는 자연수, C≤N)개의 슬레이브포트와 연결된 메모리를 포함하는 버스시스템이 버스 트래픽을 분산하는 방법에 있어서,
    상기 버스를 동작시키는 버스클록(Bus Clock)과 상기 메모리를 동작시키는 메모리클록(Memory Clock)을 설정하는 과정;
    상기 C개의 슬레이브포트 중에서 E(E는 자연수, E≤C)개의 슬레이브포트를 우선순위에 따라 선정하는 과정;
    상기 E개의 슬레이브포트에 따라 상기 메모리클록을 변경하는 과정; 및
    상기 E개의 슬레이브포트를 활성화시키는 과정
    을 포함하는 버스 트래픽을 분산하는 메모리 시분할방법.
KR1020150115538A 2015-08-17 2015-08-17 시스템-온-칩의 버스 트래픽 분산을 위한 메모리 시분할 장치 및 방법 KR101703509B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150115538A KR101703509B1 (ko) 2015-08-17 2015-08-17 시스템-온-칩의 버스 트래픽 분산을 위한 메모리 시분할 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150115538A KR101703509B1 (ko) 2015-08-17 2015-08-17 시스템-온-칩의 버스 트래픽 분산을 위한 메모리 시분할 장치 및 방법

Publications (1)

Publication Number Publication Date
KR101703509B1 true KR101703509B1 (ko) 2017-02-08

Family

ID=58155604

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150115538A KR101703509B1 (ko) 2015-08-17 2015-08-17 시스템-온-칩의 버스 트래픽 분산을 위한 메모리 시분할 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101703509B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040215857A1 (en) * 2003-04-24 2004-10-28 Nec Corporation Multiprocessor system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040215857A1 (en) * 2003-04-24 2004-10-28 Nec Corporation Multiprocessor system

Similar Documents

Publication Publication Date Title
CN109690508B (zh) 带虚拟控制器模式的存储器控制器
US7984246B1 (en) Multicore memory management system
US20130061003A1 (en) Coherence switch for i/o traffic
US20070033317A1 (en) Multiple processor system and method including multiple memory hub modules
US8990490B2 (en) Memory controller with reconfigurable hardware
US8898416B2 (en) Storage allocation management in switches utilizing flow control
US11182110B1 (en) On-chip memory block circuit
US7039737B1 (en) Method and apparatus for resource arbitration
US20170132166A1 (en) Chip interconnection method, chip and device
WO2016095435A1 (zh) 一种多芯片级联的方法、芯片和装置、存储介质
KR20110122516A (ko) 인터커넥트, 그것을 포함하는 버스 시스템 그리고 버스 시스템의 동작 방법
JP6363316B1 (ja) 複数のインターフェースによるメモリ空間へのコンカレントアクセス
KR100706801B1 (ko) 멀티 프로세서 시스템 및 그것의 데이터 전송 방법
KR20230010675A (ko) Dram을 위한 리프레시 관리
US20140164655A1 (en) Folded fifo memory generator
CN105335323A (zh) 一种数据突发的缓存装置和方法
US9202541B2 (en) Semiconductor apparatus configured to reduce data processing performance
US8244994B1 (en) Cooperating memory controllers that share data bus terminals for accessing wide external devices
US8539196B2 (en) Hierarchical organization of large memory blocks
KR101703509B1 (ko) 시스템-온-칩의 버스 트래픽 분산을 위한 메모리 시분할 장치 및 방법
JP5782330B2 (ja) 半導体装置
US10649929B2 (en) Memory time-sharing method and apparatus capable of distributing bus traffic of system-on-chip
WO2021113778A1 (en) Data transfers between a memory and a distributed compute array
CN204515761U (zh) 片上系统
US11934251B2 (en) Data fabric clock switching

Legal Events

Date Code Title Description
A201 Request for examination
GRNT Written decision to grant