KR20120037785A - 부하 균형을 유지하는 시스템 온 칩 및 그것의 부하 균형 유지 방법 - Google Patents

부하 균형을 유지하는 시스템 온 칩 및 그것의 부하 균형 유지 방법 Download PDF

Info

Publication number
KR20120037785A
KR20120037785A KR1020100099450A KR20100099450A KR20120037785A KR 20120037785 A KR20120037785 A KR 20120037785A KR 1020100099450 A KR1020100099450 A KR 1020100099450A KR 20100099450 A KR20100099450 A KR 20100099450A KR 20120037785 A KR20120037785 A KR 20120037785A
Authority
KR
South Korea
Prior art keywords
block
master
busy signal
transmission path
paths
Prior art date
Application number
KR1020100099450A
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 KR1020100099450A priority Critical patent/KR20120037785A/ko
Priority to US13/178,666 priority patent/US20120089758A1/en
Publication of KR20120037785A publication Critical patent/KR20120037785A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network

Abstract

본 발명은 시스템 온 칩에 관한 것이다. 본 발명의 실시 예에 따른 시스템 온 칩은 마스터 IP 블록, 복수의 슬레이브 IP 블록들, 및 상호연결 블록을 포함한다. 상기 복수의 슬레이브 IP 블록들은 상기 마스터 IP 블록의 요청에 응답하여 동작한다. 상기 상호연결 블록은 상기 마스터 IP 블록에서 발생하는 트랜잭션들을 복수의 전달 경로들을 통해 상기 복수의 슬레이브 IP 블록들로 전달한다. 그리고, 상기 상호연결 블록은 상기 복수의 전달 경로들의 부하 정보를 모니터링하고, 상기 부하 정보에 따라 상기 복수의 전달 경로들 중 하나를 선택한다.

Description

부하 균형을 유지하는 시스템 온 칩 및 그것의 부하 균형 유지 방법{SYSTEM ON CHIP KEEPING LOAD BALANCE AND LOAD BALANCING METHOD THEREOF}
본 발명은 시스템 온 칩(System on Chip: SoC)에 관한 것으로, 좀 더 구체적으로 다중 계층(multi-layer) 버스를 지원하는 시스템 온 칩에 관한 것이다.
시스템 온 칩(System on Chip, 이하 SoC라고 칭함)은 여러 가지 기능을 갖는 복잡한 시스템을 단일 반도체 칩에 집적하는 기술이다. 컴퓨터, 통신, 방송 등이 통합되는 컨버전스(convergence) 경향에 따라 주문형 반도체(Application Spcific IC, ASIC) 및 특정용도 표준제품(Application Spcific Standard Product, ASSP)에 대한 수요가 SoC로 옮겨가고 있다. 또한, IT(Information Technology) 기기의 소형화 및 경량화는 SoC 관련 산업을 촉진하고 있다.
SoC는 지능 소자 블록(Intellectual Property block, 이하 IP 블록이라고 칭함)들을 포함한다. IP 블록들은 SoC 내의 특정 기능을 각각 수행한다. 일반적으로, 이러한 IP 블록들은 버스를 통해 연결된다. SoC 내의 IP 블록들의 연결 및 관리를 위한 예시적인 표준 버스 규격으로서 ARM(Advanced RISC Machine)사의 AMBA(Advanced Microcontroller Bus Achitecture)가 적용된다. AMBA의 버스 타입에는 AHB(Advanced High-Performance Bus), APB(Advanced Peripheral Bus), AXI(Advanced eXtensible Interface) 등이 있다.
본 발명의 목적은 적어도 하나의 마스터 IP 블록이 복수의 슬레이브 IP 블록에 분산 접근할 때 부하 균형을 유지하는 시스템 온 칩 및 그것의 부하 균형 유지 방법을 제공하는 데 있다.
본 발명의 실시 예에 따른 시스템 온 칩은 마스터 IP 블록, 복수의 슬레이브 IP 블록들, 및 상호연결 블록을 포함한다. 상기 복수의 슬레이브 IP 블록들은 상기 마스터 IP 블록의 요청에 응답하여 동작한다. 상기 상호연결 블록은 상기 마스터 IP 블록에서 발생하는 트랜잭션들을 복수의 전달 경로들을 통해 상기 복수의 슬레이브 IP 블록들로 전달한다. 그리고, 상기 상호연결 블록은 상기 복수의 전달 경로들의 부하 정보를 모니터링하고, 상기 부하 정보에 따라 상기 복수의 전달 경로들 중 하나를 선택한다.
실시 예에 있어서, 상기 상호연결 블록은, 제 1 모니터링 유닛, 제 2 모니터링 유닛 및 부하 균형 유닛을 포함한다. 상기 제 1 모니터링 유닛은 상기 복수의 전달 경로들 중 제 1 전달 경로의 부하 정보를 모니터링하고, 상기 제 1 전달 경로의 부하 정보에 근거하여 제 1 비지 신호를 발생한다. 상기 제 2 모니터링 유닛은 상기 복수의 전달 경로들 중 제 2 전달 경로의 부하 정보를 모니터링하고, 상기 제 2 전달 경로의 부하 정보에 근거하여 제 2 비지 신호를 발생한다. 상기 부하 균형 유닛은 상기 제 1 및 제 2 비지 신호에 따라 상기 제 1 및 제 2 전달 경로 중 하나를 선택한다.
실시 예에 있어서, 상기 부하 균형 유닛은 상기 제 1 비지 신호가 활성화되는 동안에는 상기 제 2 전달 경로를 선택한다. 그리고, 상기 부하 균형 유닛은 상기 제 2 비지 신호가 활성화되는 동안에는 상기 제 1 전달 경로를 선택한다.
실시 예에 있어서, 상기 부하 균형 유닛은 상기 트랜잭션들에 대한 ID 정보 및 읽기/쓰기 정보를 저장하는 전달 히스토리 레지스터를 포함한다. 그리고, 상기 부하 균형 유닛은 상기 제 1 및 제 2 비지 신호가 모두 활성화되거나 비활성화되는 동안에는 상기 ID 정보 또는 상기 읽기/쓰기 정보에 기반하여 상기 제 1 및 제 2 전달 경로 중 하나를 선택한다.
실시 예에 있어서, 상기 상호연결 블록은 상기 트랜잭션들을 상기 복수의 슬레이브 IP 블록들 중 트랜잭션 어드레스에 근거하여 선택되는 슬레이브 IP 블록에 전송하는 인터리빙 블록을 포함한다.
실시 예에 있어서, 상기 마스터 IP 블록은 듀얼 포트를 통해 상기 트랜잭션들을 출력한다.
본 발명의 다른 실시 예에 따른 시스템 온 칩은 마스터 IP 블록, 복수의 슬레이브 IP 블록들 및 상호 연결 블록을 포함한다. 상기 복수의 슬레이브 IP 블록들은 상기 마스터 IP 블록의 요청에 응답하여 동작한다. 상기 상호연결 블록은 상기 마스터 IP 블록과 상기 복수의 슬레이브 IP 블록들을 연결한다. 그리고, 상기 상호연결 블록은 부하 균형 유닛, 제 1 모니터링 유닛, 제 2 모니터링 유닛 및 인터리빙 블록을 포함한다.
여기서, 상기 부하 균형 유닛은 상기 마스터 IP 블록으로부터 전송되는 트랜잭션들을 제 1 및 제 2 전달 경로 중 제 1 및 제 2 비지 신호에 따라 선택되는 전달 경로로 전달한다. 상기 제 1 모니터링 유닛은 상기 제 1 전달 경로의 부하 정보에 근거하여 상기 제 1 비지 신호를 발생한다. 상기 제 2 모니터링 유닛은 상기 제 2 전달 경로의 부하 정보에 근거하여 상기 제 2 비지 신호를 발생한다. 그리고, 상기 인터리빙 블록은 상기 부하 균형 유닛으로부터 상기 제 1 및 제 2 전달 경로를 통해 전달되는 트랜잭션들을 상기 복수의 슬레이브 IP 블록들 중 트랜잭션 어드레스에 근거하여 선택되는 슬레이브 IP 블록에 전송한다.
실시 예에 있어서, 상기 부하 균형 유닛은 제어 로직 회로 및 인터페이스 모듈을 더 포함한다. 상기 제어 로직은 상기 제 1 및 제 2 비지 신호에 응답하여 제어 신호를 발생한다. 상기 인터페이스 모듈은 상기 마스터 IP 블록으로부터 전송되는 트랜잭션들을 상기 제 1 및 제 2 전달 경로 중 상기 제어 신호에 따라 선택되는 전달 경로로 전달한다.
실시 예에 있어서, 상기 제 1 비지 신호가 활성화되고 상기 제 2 비지 신호가 비활성화되는 동안에는 상기 2 전달 경로가 선택되고, 상기 제 1 비지 신호가 비활성화되고 상기 제 1 비지 신호가 활성화되는 동안에는 상기 1 전달 경로가 선택된다.
실시 예에 있어서, 상기 부하 균형 유닛은 상기 선택되는 전달 경로로 전달되는 트랜잭션들에 대한 ID 정보 및 읽기/쓰기 정보를 저장하는 전달 히스토리 레지스터를 더 포함한다.
실시 예에 있어서, 상기 제어 로직 회로는 상기 제 1 및 제 2 비지 신호가 모두 활성화되거나 비활성화되는 동안에는 상기 ID 정보 또는 상기 읽기/쓰기 정보에 기반하여 상기 제어 신호를 발생한다.
실시 예에 있어서, 상기 부하 균형 유닛은 상기 제 1 및 제 2 전달 경로를 통해 상기 인터페이스 모듈에 상기 마스터 IP 블록의 요청에 대한 응답 순서에 어긋나게 전달되는 트랜잭션들을 저장하는 재정렬 버퍼를 더 포함한다.
실시 예에 있어서, 상기 인터페이스 모듈은 상기 재정렬 버퍼에 저장된 트랜잭션들을 상기 마스터 IP 블록의 요청에 대한 응답 순서에 맞게 상기 마스터 IP 블록에 전송한다.
실시 예에 있어서, 상기 마스터 IP 블록은 듀얼 포트를 통해 트랜잭션들을 상기 인터페이스 모듈에 전송한다.
실시 예에 있어서, 상기 복수의 슬레이브 IP 블록들 각각은 메모리 컨트롤러로서 구성된다.
본 발명의 실시 예에 따른 시스템 온 칩의 부하 균형 유지 방법은 마스터 IP 블록에서 발생하는 트랜잭션들을 제 1 및 제 2 전달 경로를 통해 복수의 슬레이브 IP 블록들로 전달하는 시스템 온 칩의 부하 균형 유지 방법에 관한 것이다. 상기 부하 균형 유지 방법은 상기 제 1 전달 경로의 부하 정보 및 제 2 전달 경로의 부하 정보를 모니터링하는 단계, 상기 제 1 전달 경로의 부하 정보에 근거하여 제 1 비지 신호를 발생하는 단계, 상기 제 2 전달 경로의 부하 정보에 근거하여 제 2 비지 신호를 발생하는 단계, 및 상기 제 1 및 제 2 비지 신호에 따라 상기 제 1 및 제 2 전달 경로 중 하나를 선택하는 단계를 포함한다.
실시 예에 있어서, 상기 제 1 및 제 2 전달 경로 중 하나를 선택하는 단계에서, 상기 제 1 비지 신호가 활성화되고 상기 제 2 비지 신호가 비활성화되는 동안에는 상기 2 전달 경로가 선택되고, 상기 제 1 비지 신호가 비활성화되고 상기 제 1 비지 신호가 활성화되는 동안에는 상기 1 전달 경로가 선택된다.
실시 예에 있어서, 상기 부하 균형 유지 방법은 상기 선택되는 전달 경로로 전달되는 트랜잭션들에 대한 ID 정보 및 읽기/쓰기 정보를 저장하는 단계를 더 포함한다.
실시 예에 있어서, 상기 제 1 및 제 2 전달 경로 중 하나를 선택하는 단계에서, 상기 제 1 및 제 2 비지 신호가 모두 활성화되거나 비활성화되는 동안에는 상기 ID 정보 또는 상기 읽기/쓰기 정보에 기반하여 상기 제 1 및 제 2 전달 경로 중 하나가 선택된다.
본 발명의 실시 예에 의하면, 모니터링되는 부하 정보를 이용하여 트랜잭션 전달 경로들 사이의 부하 균형을 유지함으로써, SoC의 성능 저하를 완화하고 상호연결 블록(interconnect block)의 사용 효율(utilization)을 높일 수 있다.
도 1은 본 발명의 실시 예에 따른 SoC를 간략하게 보여주는 블록도이다.
도 2는 도 1에 도시된 SoC의 제 1 실시 예를 좀더 상세하게 보여주는 블록도이다.
도 3은 도 2에 도시된 부하 균형 유닛을 보여주는 블록도이다.
도 4는 도 2에 도시된 제 1 및 제 2 모니터링 유닛을 보여주는 블록도이다.
도 5는 도 1에 도시된 SoC의 제 2 실시 예를 좀더 상세하게 보여주는 블록도이다.
도 6은 도 5에 도시된 부하 균형 유닛을 보여주는 블록도이다.
도 7 및 8은 본 발명의 실시 예에 따른 SoC의 부하 균형 유지 방법을 설명하기 위한 순서도이다.
도 9는 본 발명의 실시 예에 따른 SoC를 포함하는 메모리 시스템을 보여주는 블록도이다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 실시 예를 첨부된 도면을 참조하여 설명한다.
도 1은 본 발명의 실시 예에 따른 SoC를 간략하게 보여주는 블록도이다. 도 1을 참조하면, SoC(1000)는 복수의 마스터 IP 블록들(1100, 1120, 1140), 복수의 슬레이브 IP 블록들(1200, 1220) 및 상호연결 블록(interconnect block, 1300)을 포함한다. 도면에는 세 개의 마스터 IP 블록들(1100, 1120, 1140)과 두 개의 슬레이브 IP 블록들(1200, 1220)이 도시되었으나, 상호연결 블록(1300)에 연결되는 마스터 및 슬레이브 IP 블록들의 수는 다양하게 변경될 수 있다. 한편, 마스터 IP 블록들(1100, 1120, 1140)과 슬레이브 IP 블록들(1200, 1220)을 서로 연결하기 위한 장치로서 상호연결 블록(1300)은 백본(backbone), 시스템 버스, 네트워크 등으로 다양하게 불릴 수 있다.
마스터 IP 블록들(1100, 1120, 1140)은 중앙 처리 장치(CPU), 마이크로 컨트롤러, 마이크로 프로세서, 디지털 신호처리 프로세서(DSP) 등으로 구현 수 있다. 특히, SoC(1000)가 모바일 장치에 적용되는 경우, 마스터 IP 블록들(1100, 1120, 1140)은 응용프로그램 칩(application chip), 영상처리 프로세서, 오디오 코덱, 통신 모뎀(mobile station modem) 등이 될 수 있다. 마스터 IP 블록들(1100, 1120, 1140)은 상호연결 블록(1300)의 중재를 통해 트랜잭션들을 슬레이브 IP 블록들(1200, 1220)에 전송한다. 여기서, 트랜잭션들은 어드레스 정보, 제어 정보, 데이터 등을 포함한다.
슬레이브 IP 블록들(1200, 1220)은 외부 메모리 장치를 제어하는 메모리 컨트롤러 등으로 구현될 수 있다. 슬레이브 IP 블록들(1200, 1220)은 마스터 IP 블록들(1100, 1120, 1140)의 요청에 응답하여 동작한다.
상호연결 블록(1300)은 마스터 IP 블록들(1100, 1120, 1140)과 슬레이브 IP 블록들(1200, 1220)을 연결한다. 상호연결 블록(1300)은 중재기(arbiter) 및 디코더(decoder)의 기능을 수행한다. 즉, 상호연결 블록(1300)은 마스터 IP 블록들(1100, 1120, 1140)과 슬레이브 IP 블록들(1200, 1220) 사이의 제한된 버스 자원 사용을 중재한다. 그리고, 상호연결 블록(1300)은 마스터 IP 블록들(1100, 1120, 1140)이 접근하려는 슬레이브 IP 블록들(1200, 1220)의 어드레스들을 디코딩한다.
상호연결 블록(1300)은 다중 계층(multi-layer) 버스를 지원한다. 이에 따라, 마스터 IP 블록들(1100, 1120, 1140)과 슬레이브 IP 블록들(1200, 1220) 사이의 트랜잭션 전달 경로들은 다양하게 설정될 수 있다.
본 발명의 실시 예에 있어서, 적어도 하나의 마스터 IP 블록(1100, 1120, 1140)이 상호연결 블록(1300) 내의 서로 다른 전달 경로들을 통해 트랜잭션들을 복수의 슬레이브 IP 블록들(1200, 1220)에 전송할 때, 상호연결 블록(1300)은 각각의 전달 경로의 부하 정보를 모니터링한다. 그리고, 상호연결 블록(1300)은 모니터링 결과에 따라 전달 경로를 선택함으로써 전달 경로들 사이의 부하 균형이 유지될 수 있다.
도 2는 도 1에 도시된 SoC의 제 1 실시 예를 좀더 상세하게 보여주는 블록도이다. 도 2를 참조하면, SoC(2000)는 복수의 마스터 IP 블록들(2100, 2120, 2140), 복수의 슬레이브 IP 블록들(2200, 2220) 및 상호연결 블록(2300)을 포함한다. 이하에서, 도 1에 도시된 SoC(1000)와 중복되는 부분에 대한 설명은 생략하기로 한다.
제 1 실시 예에 있어서, 마스터 IP 블록들(2100, 2120, 2140) 중 적어도 하나의 마스터 IP 블록(2120)은 듀얼 포트(dual port, D_PORT1, D_PORT2)를 통해 트랜잭션들을 출력한다. 이로써, 마스터 IP 블록(2120)은 트랜잭션들의 전송 대역폭을 높일 수 있다. 간결한 설명을 위해, 듀얼 포트(D_PORT1, D_PORT2)를 갖는 마스터 IP 블록(2120)을 제 1 마스터 IP 블록이라 칭한다. 그리고, 그외 마스터 IP 블록들(2100, 2140)을 각각 제 2 및 제 3 마스터 IP 블록이라 칭한다.
상호연결 블록(2300)은 부하 균형 유닛(load balancing unit, 2310), 모니터링 유닛들(monitoring units, 2320, 2330), 인터리빙 유닛(interleaving unit, 2340) 및 로컬 버스들(local buses, 2350, 2360)을 포함한다.
부하 균형 유닛(2310)은 제 1 및 제 2 모니터링 유닛(2320, 2330)으로부터 각각 제공되는 제 1 및 제 2 비지 신호(busy signal, BS1, BS2)에 응답하여 동작한다. 부하 균형 유닛(2310)은 제 1 및 제 2 비지 신호(BS1, BS2) 중 어떤 신호가 활성화되는지에 따라 마스터 IP 블록(2120)의 듀얼 포트(D_PORT1, D_PORT2)로부터 전송되는 트랜잭션들을 제 1 로컬 버스(2340) 또는 제 2 로컬 버스(2360)로 전달한다. 제 1 실시 예에 따른 부하 균형 유닛(2310)은 이하의 도 3을 참조하여 더욱 상세하게 설명될 것이다.
제 1 모니터링 유닛(2320)은 인터리빙 유닛(2340)과 제 1 로컬 버스(2350) 사이의 제 1 부하 정보(LD1)를 모니터링한다. 여기서, 제 1 부하 정보(LD1)는 인터리빙 유닛(2340)과 제 1 로컬 버스(2350) 사이의 트랜잭션들의 전달량을 의미한다. 제 1 모니터링 유닛(2320)은 제 1 부하 정보(LD1)를 정의된 기준 값과 비교하여 제 1 비지 신호(BS1)를 발생한다. 예를 들어, 제 1 부하 정보(LD1)가 기준 값 이상이면, 제 1 비지 신호(BS1)는 활성화된다.
제 2 모니터링 유닛(2330)은 인터리빙 유닛(2340)과 제 2 로컬 버스(2360) 사이의 제 2 부하 정보(LD2)를 모니터링한다. 여기서, 제 2 부하 정보(LD2)는 인터리빙 유닛(2340)과 제 2 로컬 버스(2360) 사이의 트랜잭션들의 전달량을 의미한다. 제 2 모니터링 유닛(2330)은 제 2 부하 정보(LD2)를 정의된 기준 값과 비교하여 제 2 비지 신호(BS2)를 발생한다. 예를 들어, 제 2 부하 정보(LD2)가 기준 값 이상이면, 제 2 비지 신호(BS2)는 활성화된다.
제 1 및 제 2 모니터링 유닛(2320, 2330)은 이하의 도 4를 참조하여 더욱 상세하게 설명될 것이다.
인터리빙 유닛(2340)은 제 1 및 제 2 로컬 버스(2350, 2360)로부터 전달되는 트랜잭션들을 제 1 슬레이브 IP 블록(2200) 또는 제 2 슬레이브 IP 블록(2220)에 전송한다. 이때, 인터리빙 유닛(2340)은 트랜잭션 어드레스의 특정 비트에 따라 제 1 및 제 2 슬레이브 IP 블록(2200, 2220) 중 어느 하나를 선택한다.
예를 들어, 인터리빙 유닛(2340)은 트랜잭션 어드레스 32비트 중 12번째 비트가 0이면 트랜잭션을 제 1 슬레이브 IP 블록(2200)에 전송하고, 트랜잭션 어드레스 32비트 중 12번째 비트가 1이면 트랜잭션을 제 2 슬레이브 IP 블록(2220)에 전송할 수 있다.
한편, 실험을 통해 밝혀진 바에 의하면, 서로 다른 전달 경로를 통해 인터리빙 유닛(2340)에 전달되는 트랜잭션의 양이 불균형을 이루면, 성능 저하가 발생한다. 이를 해결하기 위해, 본 발명의 실시 예에 따른 상호연결 블록(2300)은 각각의 전달 경로에서 모니터링된 부하 정보(LD1, LD2)에 기반하여 트랜잭션들을 비교적 적은 부하의 전달 경로를 통해 전달함으로써 부하 균형을 유지한다.
도 3은 도 2에 도시된 부하 균형 유닛(2310)을 보여주는 블록도이다. 도 3을 참조하면, 듀얼 포트(D_PORT1, D_PORT2)를 갖는 마스터 IP 블록에 연결되는 부하 균형 유닛(2310)이 도시된다. 부하 균형 유닛(2310)은 인터페이스 모듈(interface module, 2311), 제어 로직 회로(control logic cirucuit, 2312), 재정렬 버퍼들(re-order buffers, RB1, RB2) 및 전달 히스토리 레지스터들(transfer history registers, THR1, THR2)를 포함한다.
인터페이스 모듈(2311)은 제어 로직 회로(2312)의 제어 신호(CTRL)에 응답하여 동작한다. 인터페이스 모듈(2311)은 마스터 포트 인터페이스들(master port interfaces, MPI1, MPI2) 및 로컬 버스 인터페이스들(local bus interfaces, LBI1, LBI2)을 포함한다.
제 1 마스터 포트 인터페이스(MPI1)는 제어 신호(CTRL)에 따라 마스터 IP 블록의 제 1 포트(D_PORT1)와 제 1 로컬 버스 인터페이스(LBI1) 또는 제 2 로컬 버스 인터페이스(LBI2)를 연결한다.
제 1 마스터 포트 인터페이스(MPI1)는 제 1 및 제 2 로컬 버스 인터페이스(LBI1, LBI2)로부터 마스터 IP 블록의 요청에 대한 응답 순서에 어긋나게 전달되는 트랜잭션들을 제 1 재정렬 버퍼(RB1)에 저장한다. 그리고, 제 1 마스터 포트 인터페이스(MPI1)는 제 1 재정렬 버퍼(RB1)에 저장된 트랜잭션들을 마스터 IP 블록의 요청에 대한 응답 순서에 맞게 마스터 IP 블록의 제 1 포트(D_PORT1)로 전송한다. 이는 어떠한 마스터 IP 블록들도 요청에 대한 응답을 수신하지 못함으로 인해 작동 불능이 되는 데드락(deadlock) 현상을 방지하기 위함이다.
제 1 마스터 포트 인터페이스(MPI1)는 제 1 및 제 2 로컬 버스 인터페이스(LBI1, LBI2)로 전달되는 트랜잭션들에 대한 ID 정보, 읽기/쓰기 정보 등을 제 1 전달 히스토리 레지스터(THR1)에 저장한다. 여기서, ID 정보는 트랜잭션들이 제 1 및 제 2 로컬 버스 인터페이스(LBI1, LBI2) 중 어디로 전달되었는지 여부를 트랜잭션들의 ID에 따라 구분하여 나타낸다. 그리고, 읽기/쓰기 정보는 트랜잭션들이 제 1 및 제 2 로컬 버스 인터페이스(LBI1, LBI2) 중 어디로 전달되었는지 여부를 트랜잭션들이 읽기 트랜잭션인지 또는 쓰기 트랜잭션인지에 따라 구분하여 나타낸다.
제 2 마스터 포트 인터페이스(MPI2)는 제어 신호(CTRL)에 따라 마스터 IP 블록의 제 2 포트(D_PORT2)와 제 1 로컬 버스 인터페이스(LBI1) 또는 제 2 로컬 버스 인터페이스(LBI2)를 연결한다.
제 2 마스터 포트 인터페이스(MPI2)는 제 1 및 제 2 로컬 버스 인터페이스(LBI1, LBI2)로부터 마스터 IP 블록의 요청에 대한 응답 순서에 어긋나게 전달되는 트랜잭션을 제 2 재정렬 버퍼(RB2)에 저장한다. 그리고, 제 2 마스터 포트 인터페이스(MPI2)는 제 2 재정렬 버퍼(RB2)에 저장된 트랜잭션들을 마스터 IP 블록의 요청에 대한 응답 순서에 맞게 마스터 IP 블록의 제 1 포트(D_PORT2)로 전송한다.
제 2 마스터 포트 인터페이스(MPI2)는 제 1 및 제 2 로컬 버스 인터페이스(LBI1, LBI2)로 전달되는 트랜잭션들에 대한 ID 정보, 읽기/쓰기 정보 등을 제 2 전달 히스토리 레지스터(THR2)에 저장한다. 이하에서, 제 1 마스터 포트 인터페이스(MPI1)와 중복되는 설명은 생략하기로 한다.
제 1 로컬 버스 인터페이스(LBI1)는 제어 신호(CTRL)에 따라 제 1 로컬 버스와 제 1 마스터 포트 인터페이스(MPI1) 또는 제 2 마스터 포트 인터페이스(MPI2)를 연결한다. 제 2 로컬 버스 인터페이스(LBI2)는 제어 신호(CTRL)에 따라 제 2 로컬 버스와 제 1 마스터 포트 인터페이스(MPI1) 또는 제 2 마스터 포트 인터페이스(MPI2)를 연결한다.
제어 로직 회로(2312)는 인터페이스 모듈(2311)을 제어하기 위한 제어 신호(CTRL)를 발생한다. 제어 로직 회로(2312)는 제 1 및 제 2 모니터링 유닛으로부터 각각 제공되는 제 1 및 제 2 비지 신호(BS1, BS2)와 제 1 및 제 2 전달 히스토리 레지스터(THR1, THR2)에 저장된 ID 정보, 읽기/쓰기 정보 등에 기반하여 인터페이스 모듈(2311)을 제어한다.
제어 로직 회로(2312)는 제 1 및 제 2 비지 신호(BS1, BS2) 중 어느 신호가 활성화되는지 여부에 따라 마스터 포트 인터페이스들(MPI1, MPI2)과 로컬 버스 인터페이스들(LBI1, LBI2) 사이의 연결을 제어한다. 예를 들어, 제 1 비지 신호(BS1)가 활성화되는 경우, 제어 로직 회로(2312)는 마스터 포트 인터페이스들(MPI1, MPI2)이 제 2 로컬 버스 인터페이스(LBI2)에 연결되도록 인터페이스 모듈(2311)을 제어한다. 제 2 비지 신호(BS2)가 활성화되는 경우, 제어 로직 회로(2312)는 마스터 포트 인터페이스들(MPI1, MPI2)이 제 1 로컬 버스 인터페이스(LBI1)에 연결되도록 인터페이스 모듈(2311)을 제어한다. 이로써, 마스터 IP 블록의 듀얼 포트(D_PORT1, D_PORT2)로부터 전송되는 트랜잭션들은 비교적 적은 부하의 전달 경로를 통해 전달될 수 있다.
다만, 제 1 및 제 2 비지 신호(BS1, BS2)가 모두 활성화되거나 비활성화되는 경우, 제어 로직 회로(2312)는 제 1 및 제 2 전달 히스토리 레지스터(THR1, THR2)에 저장된 ID 정보 또는 읽기/쓰기 정보에 기반하여 정해진 정책에 따라 인터페이스 모듈(2311)을 제어한다. 이는 이하의 도 7 및 8을 참조하여 더욱 상세하게 설명될 것이다.
도 4는 도 2에 도시된 제 1 및 제 2 모니터링 유닛(2320, 2330)을 보여주는 블록도이다. 도 4를 참조하면, 제 1 모니터링 유닛(2320)은 제 1 비지 신호 발생기(2321) 및 정의된 기준 값을 저장하는 제 1 레지스터(2322)를 포함한다. 제 1 비지 신호 발생기(2321)는 모니터링된 제 1 부하 정보(LD1)를 제 1 레지스터(2322)에 저장된 기준 값과 비교하여 제 1 비지 신호(BS1)를 발생한다. 제 1 비지 신호(BS1)는 부하 균형 유닛(2310)에 제공된다.
제 2 모니터링 유닛(2330)은 제 2 비지 신호 발생기(2331) 및 정의된 기준 값을 저장하는 제 2 레지스터(2332)를 포함한다. 제 2 비지 신호 발생기(2331)는 모니터링된 제 2 부하 정보(LD2)를 제 2 레지스터(2332)에 저장된 기준 값과 비교하여 제 2 비지 신호(BS2)를 발생한다. 제 2 비지 신호(BS2)는 부하 균형 유닛(2310)에 제공된다.
도 5는 도 1에 도시된 SoC의 제 2 실시 예를 좀더 상세하게 보여주는 블록도이다. 도 5를 참조하면, SoC(3000)는 복수의 마스터 IP 블록들(3100, 3120, 3140), 복수의 슬레이브 IP 블록들(3200, 3220) 및 상호연결 블록(3300)을 포함한다. 이하에서, 도 1 및 도 2에 도시된 SoC(1000, 2000)와 중복되는 부분에 대한 설명은 생략하기로 한다.
제 1 실시 예에서와 달리 제 2 실시 예에서는, 상호연결 블록(3300) 내의 부하 균형 유닛(3310)이 적어도 하나의 마스터 IP 블록(3120)의 싱글 포트(single port, S_PORT)에 연결된다. 즉, 부하 균형 유닛(3310)은 전달 경로들 사이의 부하 균형이 되도록 마스터 IP 블록(3120)의 싱글 포트(S_PORT)로부터 전송되는 트랜잭션들을 분배하여 제 1 로컬 버스(3350) 또는 제 2 로컬 버스(3360)로 전달한다. 마스터 IP 블록(3120)의 싱글 포트(S_PORT)에 연결되는 부하 균형 유닛(3310)은 이하의 도 6을 참조하여 더욱 상세하게 설명될 것이다. 그외 제 2 실시 예에 따른 SoC(3000)의 구성 및 동작은 제 1 실시 예에 따른 SoC(2000)의 구성 및 동작과 동일하다.
도 6은 도 5에 도시된 부하 균형 유닛을 보여주는 블록도이다. 도 6을 참조하면, 싱글 포트(S_PORT)를 갖는 마스터 IP 블록에 연결되는 부하 균형 유닛(3310)이 도시된다. 부하 균형 유닛(2310)은 인터페이스 모듈(3311), 제어 로직 회로(3312), 재정렬 버퍼(RB) 및 전달 히스토리 레지스터(THR)를 포함한다.
인터페이스 모듈(3311)은 제어 로직 회로(3312)의 제어 신호(CTRL)에 응답하여 동작한다. 인터페이스 모듈(3311)은 마스터 포트 인터페이스(MPI) 및 로컬 버스 인터페이스들(LBI1, LBI2)을 포함한다.
마스터 포트 인터페이스(MPI)는 제어 신호(CTRL)에 따라 마스터 IP 블록의 싱글 포트(PORT)와 제 1 로컬 버스 인터페이스(LBI1) 또는 제 2 로컬 버스 인터페이스(LBI2)를 연결한다.
마스터 포트 인터페이스(MPI)는 제 1 및 제 2 로컬 버스 인터페이스(LBI1, LBI2)로부터 마스터 IP 블록의 요청에 대한 응답 순서에 어긋나게 전달되는 트랜잭션들들을 재정렬 버퍼(RB)에 저장한다. 그리고, 마스터 포트 인터페이스(MPI)는 재정렬 버퍼(RB)에 저장된 트랜잭션들을 마스터 IP 블록의 요청에 대한 응답 순서에 맞게 마스터 IP 블록의 싱글 포트(S_PORT)로 전송한다. 이는 상술한 바와 같은 데드락 현상을 방지하기 위함이다.
마스터 포트 인터페이스(MPI)는 제 1 및 제 2 로컬 버스 인터페이스(LBI1, LBI2)로 전달되는 트랜잭션들에 대한 ID 정보, 읽기/쓰기 정보 등을 전달 히스토리 레지스터(THR)에 저장한다. 이하에서, 도 3에 도시된 부하 균형 유닛(2310)과 중복되는 설명은 생략하기로 한다.
도 7 및 8은 본 발명의 실시 예에 따른 SoC의 부하 균형 유지 방법을 설명하기 위한 순서도이다. 도 7을 참조하면, 단계 S110에서, 제 1 및 제 2 부하 정보(LD1, LD2)가 모니터링된다. 상술한 바와 같이, 제 1 부하 정보(LD1)는 제 1 부하 정보(LD1)는 인터리빙 유닛과 제 1 로컬 버스 사이(이하, “제 1 전달 경로”라고 칭함)의 트랜잭션들의 전달량을 의미하고, 제 2 부하 정보(LD2)는 인터리빙 유닛과 제 2 로컬 버스 사이(이하, “제 2 전달 경로”라고 칭함)의 트랜잭션들의 전달량을 의미한다. 즉, 제 1 및 제 2 부하 정보(LD1, LD2)는 제 1 및 제 2 전달 경로의 부하 정보를 각각 나타낸다.
단계 S120에서, 제 1 부하 정보(LD1)에 따라 제 1 비지 신호(BS1)가 발생하고, 제 2 부하 정보(LD2)에 따라 제 2 비지 신호(BS2)가 발생한다. 예를 들어, 제 1 및 제 2 부하 정보(LD1, LD2)가 각각 정의된 기준 값 이상이면, 제 1 및 제 2 비지 신호(BS1, BS2)가 활성화된다.
단계 S130에서, 제 1 및 제 2 비지 신호(BS1, BS2)가 모두 활성화되거나 비활성화되는지 여부를 판단한다. 제 1 및 제 2 비지 신호(BS1, BS2)가 모두 활성화되거나 비활성화되는 경우, 단계 S140이 진행된다. 그렇지 않은 경우, 단계 S150이 진행된다.
단계 S140에서, 제 1 및 제 2 비지 신호(BS1, BS2)가 모두 활성화되거나 비활성화되는 경우, 전달 경로는 ID 정보에 기반하여 정해진 정책에 따라 결정된다. 상술한 바와 같이, ID 정보는 마스터 IP 블록으로부터 전송되는 트랜잭션들이 제 1 및 제 2 전달 경로 중 어디로 전달되었는지 여부를 트랜잭션들의 ID에 따라 구분하여 나타낸다. 다만, 초기 동작에서 ID 정보가 생성되기 전이라면, 전달 경로는 임의로 결정될 수 있다. 또는, 전달 경로는 정의된 초기 ID 정보에 근거하여 결정될 수 있다.
이하에서, ID 정보에 기반하여 전달 경로를 결정하기 위한 정책이 예시적으로 설명된다. 간결한 설명을 위해, 제 1 트랜잭션이 이미 제 1 전달 경로로 전달된 상태에서, 제 2 트랜잭션에 대한 전달 경로를 결정한다고 가정한다. 제 1 및 제 2 트랜잭션의 ID가 같으면, 제 1 및 제 2 트랜잭션은 서로 같은 전달 경로로 전달된다. 즉, 제 2 트랜잭션은 제 1 트랜잭션 전달 경로로 전달된다. 반면에, 제 1 및 제 2 트랜잭션의 ID가 다르면, 제 1 및 제 2 트랜잭션은 서로 다른 전달 경로로 전달된다. 즉, 제 2 트랜잭션은 제 2 트랜잭션 전달 경로로 전달된다. 이는 같은 ID를 갖는 트랜잭션들이 서로 다른 전달 경로로 전달되는 경우에 발생할 수 있는 데드락을 방지하기 위함이다.
단계 S150에서, 제 1 및 제 2 비지 신호(BS1, BS2) 중 어느 하나가 활성화되는 경우, 전달 경로는 제 1 및 제 2 비지 신호(BS1, BS2) 중 어느 신호가 활성화되는지 여부에 따라 결정된다. 예를 들어, 제 1 비지 신호(BS1)가 활성화되고 제 2 비지 신호(BS2)가 비활성화되는 동안에는, 트랜잭션들이 제 2 전달 경로로 전달된다. 반면에, 제 1 비지 신호(BS1)가 비활성화되고 제 2 비지 신호(BS2)가 활성화되는 동안에는, 트랜잭션들이 제 1 전달 경로로 전달된다.
도 8을 참조하면, 부하 균형 유지 방법의 다른 실시 예가 설명된다. 도 8의 단계 S210, S220, S230 및 S250은 도 7의 단계 S110, S120, S130 및 S150와 같으므로, 이하에서, 중복되는 설명은 생략하기로 한다.
단계 S240에서, 제 1 및 제 2 비지 신호(BS1, BS2)가 모두 활성화되거나 비활성화되는 경우, 전달 경로는 읽기/쓰기 정보에 기반하여 정해진 정책에 따라 결정된다. 상술한 바와 같이, 읽기/쓰기 정보는 마스터 IP 블록으로부터 전송되는 트랜잭션들이 제 1 및 제 2 전달 경로 중 어디로 전달되었는지 여부를 트랜잭션들이 읽기 트랜잭션인지 또는 쓰기 트랜잭션인지에 따라 구분하여 나타낸다. 다만, 초기 동작에서 읽기/쓰기 정보가 생성되기 전이라면, 전달 경로는 임의로 결정될 수 있다. 또는, 전달 경로는 정의된 초기 읽기/쓰기 정보에 근거하여 결정될 수 있다.
이하에서, 읽기/쓰기 정보에 기반하여 전달 경로를 결정하기 위한 정책이 예시적으로 설명된다. 간결한 설명을 위해, 제 1 트랜잭션이 이미 제 1 전달 경로로 전달된 상태에서, 제 2 트랜잭션에 대한 전달 경로를 결정한다고 가정한다. 제 1 및 제 2 트랜잭션이 모두 읽기 트랜잭션이거나 쓰기 트랜잭션이면, 제 1 및 제 2 트랜잭션은 서로 같은 전달 경로로 전달된다. 즉, 제 2 트랜잭션은 제 1 트랜잭션 전달 경로로 전달된다. 반면에, 제 1 트랜잭션이 읽기(또는 쓰기) 트랜잭션일 때 제 2 트랜잭션이 쓰기(또는 읽기) 트랜잭션이면, 제 1 및 제 2 트랜잭션은 서로 다른 전달 경로로 전달된다. 즉, 제 2 트랜잭션은 제 2 트랜잭션 전달 경로로 전달된다. 이는 같은 전달 경로로 전달되는 트랜잭션들의 특성이 자주 변경됨으로 인해 발생하는 오버헤드(overhead)를 줄이기 위함이다.
도 9는 본 발명의 실시 예에 따른 SoC를 포함하는 메모리 시스템을 보여주는 블록도이다. 도 9를 참조하면, 메모리 시스템(4000)은 SoC(4100) 및 메모리 장치들(4200, 4220)을 포함한다.
SoC(4100)는 복수의 마스터 IP 블록들(4110, 4112, 4114), 복수의 메모리 컨트롤러들(4120, 4122) 및 상호연결 블록(4130)을 포함한다. 여기서, 메모리 컨트롤러들(4120, 4122)은 슬레이브 IP 블록으로서의 기능을 수행한다. 제 1 메모리 컨트롤러(4120)는 제 1 메모리 장치(4200)를 제어하고, 제 2 메모리 컨트롤러(4122)는 제 2 메모리 장치(4220)를 제어한다. 이하에서, 도 1에 도시된 SoC(1000)와 중복되는 설명은 생략하기로 한다.
적어도 하나의 마스터 IP 블록(4110, 4112, 4114)이 상호연결 블록(4130) 내의 서로 다른 전달 경로들을 통해 트랜잭션들을 복수의 메모리 컨트롤러들(4120, 4122)에 전송할 때, 상호연결 블록(4130)은 각각의 전달 경로의 부하 정보를 모니터링한다. 그리고, 상호연결 블록(4130)은 모니터링 결과에 따라 전달 경로를 선택함으로써 전달 경로들 사이의 부하 균형이 유지될 수 있다.
메모리 장치들(4200, 4220)은 플래시 메모리, ROM, PROM, EPROM, EEPROM, MRAM, PRAM, RRAM, FRAM 등과 같은 불휘발성 메모리 장치로서 구현될 수 있다. 또는, 메모리 장치들(4200, 4220)은 SRAM , DRAM, SDRAM 등과 같은 휘발성 메모리 장치로서 구현될 수 있다.
본 발명의 범위 또는 기술적 사상을 벗어나지 않고 본 발명의 구조가 다양하게 수정되거나 변경될 수 있음은 이 분야에 숙련된 자들에게 자명하다. 상술한 내용을 고려하여 볼 때, 만약 본 발명의 수정 및 변경이 아래의 청구항들 및 동등물의 범주 내에 속한다면, 본 발명이 이 발명의 변경 및 수정을 포함하는 것으로 여겨진다.
1000: 시스템 온 칩(SoC) 1100, 1120, 1140: 마스터 IP 블록
1200, 1220: 슬레이브 IP 블록 1300: 상호연결 블록

Claims (10)

  1. 마스터 IP 블록;
    상기 마스터 IP 블록의 요청에 응답하여 동작하는 복수의 슬레이브 IP 블록들;
    상기 마스터 IP 블록에서 발생하는 트랜잭션들을 복수의 전달 경로들을 통해 상기 복수의 슬레이브 IP 블록들로 전달하는 상호연결 블록을 포함하고,
    상기 상호연결 블록은 상기 복수의 전달 경로들의 부하 정보를 모니터링하고, 상기 부하 정보에 따라 상기 복수의 전달 경로들 중 하나를 선택하는 시스템 온 칩.
  2. 제 1 항에 있어서,
    상기 상호연결 블록은,
    상기 복수의 전달 경로들 중 제 1 전달 경로의 부하 정보를 모니터링하고, 상기 제 1 전달 경로의 부하 정보에 근거하여 제 1 비지 신호를 발생하는 제 1 모니터링 유닛;
    상기 복수의 전달 경로들 중 제 2 전달 경로의 부하 정보를 모니터링하고, 상기 제 2 전달 경로의 부하 정보에 근거하여 제 2 비지 신호를 발생하는 제 2 모니터링 유닛; 및
    상기 제 1 및 제 2 비지 신호에 따라 상기 제 1 및 제 2 전달 경로 중 하나를 선택하는 부하 균형 유닛을 포함하는 시스템 온 칩.
  3. 제 2 항에 있어서,
    상기 부하 균형 유닛은,
    상기 제 1 비지 신호가 활성화되는 동안에는 상기 제 2 전달 경로를 선택하고, 상기 제 2 비지 신호가 활성화되는 동안에는 상기 제 1 전달 경로를 선택하는 시스템 온 칩.
  4. 제 3 항에 있어서,
    상기 부하 균형 유닛은,
    상기 트랜잭션들에 대한 ID 정보 및 읽기/쓰기 정보를 저장하는 전달 히스토리 레지스터를 포함하고,
    상기 제 1 및 제 2 비지 신호가 모두 활성화되거나 비활성화되는 동안에는 상기 ID 정보 또는 상기 읽기/쓰기 정보에 기반하여 상기 제 1 및 제 2 전달 경로 중 하나를 선택하는 시스템 온 칩.
  5. 마스터 IP 블록;
    상기 마스터 IP 블록의 요청에 응답하여 동작하는 복수의 슬레이브 IP 블록들;
    상기 마스터 IP 블록과 상기 복수의 슬레이브 IP 블록들을 연결하는 상호연결 블록을 포함하고,
    상기 상호연결 블록은,
    상기 마스터 IP 블록으로부터 전송되는 트랜잭션들을 제 1 및 제 2 전달 경로 중 제 1 및 제 2 비지 신호에 따라 선택되는 전달 경로로 전달하는 부하 균형 유닛;
    상기 제 1 전달 경로의 부하 정보에 근거하여 상기 제 1 비지 신호를 발생하는 제 1 모니터링 유닛;
    상기 제 2 전달 경로의 부하 정보에 근거하여 상기 제 2 비지 신호를 발생하는 제 2 모니터링 유닛; 및
    상기 부하 균형 유닛으로부터 상기 제 1 및 제 2 전달 경로를 통해 전달되는 트랜잭션들을 상기 복수의 슬레이브 IP 블록들 중 트랜잭션 어드레스에 근거하여 선택되는 슬레이브 IP 블록에 전송하는 인터리빙 블록을 포함하는 시스템 온 칩.
  6. 제 5 항에 있어서,
    상기 부하 균형 유닛은,
    상기 제 1 및 제 2 비지 신호에 응답하여 제어 신호를 발생하는 제어 로직 회로; 및
    상기 마스터 IP 블록으로부터 전송되는 트랜잭션들을 상기 제 1 및 제 2 전달 경로 중 상기 제어 신호에 따라 선택되는 전달 경로로 전달하는 인터페이스 모듈을 더 포함하는 시스템 온 칩.
  7. 제 6 항에 있어서,
    상기 제 1 비지 신호가 활성화되고 상기 제 2 비지 신호가 비활성화되는 동안에는 상기 2 전달 경로가 선택되고,
    상기 제 1 비지 신호가 비활성화되고 상기 제 2 비지 신호가 활성화되는 동안에는 상기 1 전달 경로가 선택되는 시스템 온 칩.
  8. 제 6 항에 있어서,
    상기 부하 균형 유닛은,
    상기 제 1 및 제 2 전달 경로를 통해 상기 인터페이스 모듈에 상기 마스터 IP 블록의 요청에 대한 응답 순서에 어긋나게 전달되는 트랜잭션들을 저장하는 재정렬 버퍼를 더 포함하는 시스템 온 칩.
  9. 마스터 IP 블록에서 발생하는 트랜잭션들을 제 1 및 제 2 전달 경로를 통해 복수의 슬레이브 IP 블록들로 전달하는 시스템 온 칩의 부하 균형 유지 방법에 있어서:
    상기 제 1 전달 경로의 부하 정보 및 제 2 전달 경로의 부하 정보를 모니터링하는 단계;
    상기 제 1 전달 경로의 부하 정보에 근거하여 제 1 비지 신호를 발생하는 단계;
    상기 제 2 전달 경로의 부하 정보에 근거하여 제 2 비지 신호를 발생하는 단계; 및
    상기 제 1 및 제 2 비지 신호에 따라 상기 제 1 및 제 2 전달 경로 중 하나를 선택하는 단계를 포함하는 부하 균형 유지 방법.
  10. 제 9 항에 있어서,
    상기 제 1 및 제 2 전달 경로 중 하나를 선택하는 단계에서,
    상기 제 1 비지 신호가 활성화되고 상기 제 2 비지 신호가 비활성화되는 동안에는 상기 2 전달 경로가 선택되고,
    상기 제 1 비지 신호가 비활성화되고 상기 제 2 비지 신호가 활성화되는 동안에는 상기 1 전달 경로가 선택되는 부하 균형 유지 방법.
KR1020100099450A 2010-10-12 2010-10-12 부하 균형을 유지하는 시스템 온 칩 및 그것의 부하 균형 유지 방법 KR20120037785A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020100099450A KR20120037785A (ko) 2010-10-12 2010-10-12 부하 균형을 유지하는 시스템 온 칩 및 그것의 부하 균형 유지 방법
US13/178,666 US20120089758A1 (en) 2010-10-12 2011-07-08 System On Chip Keeping Load Balance And Load Balancing Method Thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100099450A KR20120037785A (ko) 2010-10-12 2010-10-12 부하 균형을 유지하는 시스템 온 칩 및 그것의 부하 균형 유지 방법

Publications (1)

Publication Number Publication Date
KR20120037785A true KR20120037785A (ko) 2012-04-20

Family

ID=45926008

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100099450A KR20120037785A (ko) 2010-10-12 2010-10-12 부하 균형을 유지하는 시스템 온 칩 및 그것의 부하 균형 유지 방법

Country Status (2)

Country Link
US (1) US20120089758A1 (ko)
KR (1) KR20120037785A (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101841964B1 (ko) * 2011-02-22 2018-05-15 삼성전자주식회사 인터커넥터를 포함하는 시스템 온 칩 및 그것의 제어 방법
US20140068125A1 (en) * 2012-08-30 2014-03-06 Lsi Corporation Memory throughput improvement using address interleaving
US9436623B2 (en) * 2012-09-20 2016-09-06 Intel Corporation Run-time fabric reconfiguration
FR3001311B1 (fr) * 2013-01-21 2016-05-20 Commissariat Energie Atomique Interface reseau d'un soc comportant un controleur de communication ameliore
JP6221467B2 (ja) * 2013-07-29 2017-11-01 株式会社リコー 画像処理装置、制御方法
KR20150106224A (ko) 2014-03-11 2015-09-21 삼성전자주식회사 시스템-온-칩 및 그의 부하 불균형 검출 방법
KR20180062807A (ko) 2016-12-01 2018-06-11 삼성전자주식회사 시스템 인터커넥트 및 이를 포함하는 시스템 온 칩

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4403286A (en) * 1981-03-06 1983-09-06 International Business Machines Corporation Balancing data-processing work loads
US6715023B1 (en) * 1999-09-23 2004-03-30 Altera Corporation PCI bus switch architecture
US6629166B1 (en) * 2000-06-29 2003-09-30 Intel Corporation Methods and systems for efficient connection of I/O devices to a channel-based switched fabric
US7161901B2 (en) * 2001-05-07 2007-01-09 Vitesse Semiconductor Corporation Automatic load balancing in switch fabrics
US7225281B2 (en) * 2001-08-27 2007-05-29 Intel Corporation Multiprocessor infrastructure for providing flexible bandwidth allocation via multiple instantiations of separate data buses, control buses and support mechanisms
US7145903B2 (en) * 2001-09-06 2006-12-05 Meshnetworks, Inc. Multi-master bus architecture for system-on-chip designs
US7126910B1 (en) * 2001-12-13 2006-10-24 Alcatel Load balancing technique for a resilient packet ring
US20030135577A1 (en) * 2001-12-19 2003-07-17 Weber Bret S. Dual porting serial ATA disk drives for fault tolerant applications
US20030123393A1 (en) * 2002-01-03 2003-07-03 Feuerstraeter Mark T. Method and apparatus for priority based flow control in an ethernet architecture
US6823411B2 (en) * 2002-01-30 2004-11-23 International Business Machines Corporation N-way psuedo cross-bar having an arbitration feature using discrete processor local busses
US6851056B2 (en) * 2002-04-18 2005-02-01 International Business Machines Corporation Control function employing a requesting master id and a data address to qualify data access within an integrated system
JP2003318964A (ja) * 2002-04-25 2003-11-07 Fujitsu Ltd パケット転送装置、スケジューラ、データ伝送装置、およびパケット転送方法
US7107365B1 (en) * 2002-06-25 2006-09-12 Cypress Semiconductor Corp. Early detection and grant, an arbitration scheme for single transfers on AMBA advanced high-performance bus
US7380018B2 (en) * 2003-05-15 2008-05-27 Broadcom Corporation Peripheral bus transaction routing using primary and node ID routing information
US20050047405A1 (en) * 2003-08-25 2005-03-03 International Business Machines Corporation Switching device for controlling data packet flow
DE112004002797B4 (de) * 2004-03-19 2015-12-31 Zakrytoe Aktsionernoe Obschestvo "Intel A/O" Ausfallsicherung und Lastausgleich
US7263566B2 (en) * 2004-12-30 2007-08-28 Qualcomm Incorporated Method and apparatus of reducing transfer latency in an SOC interconnect
GB2430053B (en) * 2005-09-08 2010-09-22 Advanced Risc Mach Ltd Accessing external memory from an integrated circuit
JP2009266119A (ja) * 2008-04-28 2009-11-12 Hitachi Ltd ストレージ装置及びデータ転送方法
US7934046B2 (en) * 2008-07-02 2011-04-26 International Business Machines Corporation Access table lookup for bus bridge
US8370551B2 (en) * 2010-01-08 2013-02-05 International Business Machines Corporation Arbitration in crossbar interconnect for low latency
US8312193B2 (en) * 2010-01-08 2012-11-13 International Business Machines Corporation Eager protocol on a cache pipeline dataflow
US8904115B2 (en) * 2010-09-28 2014-12-02 Texas Instruments Incorporated Cache with multiple access pipelines

Also Published As

Publication number Publication date
US20120089758A1 (en) 2012-04-12

Similar Documents

Publication Publication Date Title
EP3754511B1 (en) Multi-protocol support for transactions
US11714763B2 (en) Configuration interface to offload capabilities to a network interface
US7802040B2 (en) Arbitration method reordering transactions to ensure quality of service specified by each transaction
CN100472494C (zh) 支持多总线多类型存储器的内存仲裁实现系统和方法
Starke et al. The cache and memory subsystems of the IBM POWER8 processor
KR20120037785A (ko) 부하 균형을 유지하는 시스템 온 칩 및 그것의 부하 균형 유지 방법
JP4825993B2 (ja) 複数のメモリハブモジュールを含むマルチプロセッサシステムおよびその方法
US5983327A (en) Data path architecture and arbitration scheme for providing access to a shared system resource
US9208110B2 (en) Raw memory transaction support
US7721038B2 (en) System on chip (SOC) system for a multimedia system enabling high-speed transfer of multimedia data and fast control of peripheral devices
US9734115B2 (en) Memory mapping method and memory mapping system
US20140040526A1 (en) Coherent data forwarding when link congestion occurs in a multi-node coherent system
US6715055B1 (en) Apparatus and method for allocating buffer space
EP0991999A1 (en) Method and apparatus for arbitrating access to a shared memory by network ports operating at different data rates
US10698824B1 (en) Scalable coherence management independent of transport protocol
US20070239888A1 (en) Controlling transmission of data
US20230069339A1 (en) Storage device, electronic device including storage device, and operating method of electronic device
US7269682B2 (en) Segmented interconnect for connecting multiple agents in a system
US8370508B2 (en) Method, system and apparatus for main memory access subsystem usage to different partitions in a socket with sub-socket partitioning
US20050177674A1 (en) Configurable embedded processor
US20190227753A1 (en) System, Apparatus And Method For Sharing A Flash Device Among Multiple Masters Of A Computing Platform
US11146495B2 (en) Protocol layer tunneling for a data processing system
US10402348B2 (en) Method and system for using feedback information for selecting a routing bus for a memory transaction
US8867533B2 (en) Multi-tier switch interface unit arbiter
JP2009116702A (ja) 半導体集積回路

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid