KR101781617B1 - 통합 입출력 메모리 관리 유닛을 포함하는 시스템 온 칩 - Google Patents

통합 입출력 메모리 관리 유닛을 포함하는 시스템 온 칩 Download PDF

Info

Publication number
KR101781617B1
KR101781617B1 KR1020100039616A KR20100039616A KR101781617B1 KR 101781617 B1 KR101781617 B1 KR 101781617B1 KR 1020100039616 A KR1020100039616 A KR 1020100039616A KR 20100039616 A KR20100039616 A KR 20100039616A KR 101781617 B1 KR101781617 B1 KR 101781617B1
Authority
KR
South Korea
Prior art keywords
transaction
address
bus
field value
management unit
Prior art date
Application number
KR1020100039616A
Other languages
English (en)
Other versions
KR20110120094A (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 KR1020100039616A priority Critical patent/KR101781617B1/ko
Priority to US13/095,385 priority patent/US9361239B2/en
Publication of KR20110120094A publication Critical patent/KR20110120094A/ko
Application granted granted Critical
Publication of KR101781617B1 publication Critical patent/KR101781617B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/04Addressing variable-length words or parts of words
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0038System on Chip
    • 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)
  • Bus Control (AREA)
  • Memory System (AREA)

Abstract

본 발명은 통합 입출력 메모리 관리 유닛(Input/Output Memory Management Unit: IOMMU)을 포함하는 시스템 온 칩(System on Chip: SoC)에 관한 것이다. 본 발명의 실시 예에 따른 시스템 온 칩은 메모리, 버스, 가상 어드레스와 물리 어드레스를 구분하기 위한 필드 값을 갖는 트랜잭션을 생성하여 상기 버스에 전달하는 복수의 IP 블록들, 및 상기 메모리와 상기 버스 사이에 연결되고, 상기 필드 값에 따라 상기 버스로부터 전달되는 상기 트랜잭션에 대한 어드레스 변환 여부를 결정하는 통합 입출력 메모리 관리 유닛을 포함한다. 본 발명의 실시 예에 따른 시스템 온 칩에 의하면, 입출력 메모리 관리 유닛의 개수가 감소하여 설계상 복잡도 및 전력소모를 줄일 수 있다.

Description

통합 입출력 메모리 관리 유닛을 포함하는 시스템 온 칩{SYSTEM ON CHIP INCLUDING UNIFIED INPUT/OUTPUT MEMORY MANAGEMENT UNIT}
본 발명은 시스템 온 칩(System on Chip: SoC)에 관한 것으로, 좀 더 구체적으로 입출력 메모리 관리 유닛(Input/Output Memory Management Unit: IOMMU)을 포함하는 시스템 온 칩에 관한 것이다.
시스템 온 칩(System on Chip, 이하 SoC라고 칭함)은 여러 가지 기능을 갖는 복잡한 시스템을 단일 반도체 칩에 집적하는 기술이다. 컴퓨터, 통신, 방송 등이 통합되는 컨버전스(convergence) 경향에 따라 주문형 반도체(Application Spcific IC, ASIC) 및 특정용도 표준제품(Application Spcific Standard Product, ASSP)에 대한 수요가 SoC로 옮겨가고 있다. 또한, IT(Information Technology) 기기의 소형화 및 경량화는 SoC 관련 산업을 촉진하고 있다.
SoC는 지능 소자(Intellectual Property, 이하 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) 등이 있다. 이들 중 AXI는 IP들 사이의 인터페이스 프로토콜로서, 다중 아웃스탠딩 어드레스(multiple outstanding address) 기능과 데이터 인터리빙(data interleaving) 기능 등을 포함한다.
다중 아웃스탠딩 어드레스 기능으로 인해, 버스의 어드레스 라인과 데이터 라인을 통해 정보가 제공될 때, 데이터 전송이 완료되기 전에 다음 데이터 전송을 위한 어드레스를 전송할 수 있다. 그리고, 데이터 인터리빙 기능으로 인해, IP들 사이의 데이터 전송 시에 수신 단에서 데이터의 뒤섞임이 지원된다. 따라서, 버스의 대역폭을 더욱 효율적으로 사용할 수 있다. 그리고, 레이턴시(latency) 측면에서 유리하다.
본 발명의 목적은 복수의 입출력 메모리 관리 유닛(Input/Output Memory Management Unit: IOMMU)을 하나의 입출력 메모리 관리 유닛으로 통합하고, 이를 제어하는 시스템 온 칩(System on Chip: SoC)을 제공하는 데 있다.
본 발명의 실시 예에 따른 시스템 온 칩은 메모리, 버스, 가상 어드레스와 물리 어드레스를 구분하기 위한 필드 값을 갖는 트랜잭션을 생성하여 상기 버스에 전달하는 복수의 IP 블록들, 및 상기 메모리와 상기 버스 사이에 연결되고, 상기 필드 값에 따라 상기 버스로부터 전달되는 상기 트랜잭션에 대한 어드레스 변환 여부를 결정하는 통합 입출력 메모리 관리 유닛을 포함한다.
또한, 시스템 온 칩은 상기 필드 값을 설정하기 위한 어드레스 변환 신호를 발생하는 컨트롤러를 더 포함할 수 있다.
실시 예에 있어서, 상기 필드 값은 기본 값으로 상기 트랜잭션의 어드레스가 물리 어드레스임을 나타내는 값으로 설정되어 있다. 그리고, 상기 필드 값은 상기 어드레스 변환 신호에 응답하여 상기 트랜잭션의 어드레스가 논리 어드레스임을 나타내는 값으로 설정된다.
실시 예에 있어서, 상기 통합 입출력 메모리 관리 유닛은 상기 필드 값이 상기 트랜잭션의 어드레스가 논리 어드레스임을 나타내는 값으로 설정되어 있으면, 상기 트랜잭션의 어드레스를 물리 어드레스로 변환한다. 반면에, 상기 통합 입출력 메모리 관리 유닛은 상기 필드 값이 상기 트랜잭션의 어드레스가 물리 어드레스임을 나타내는 값으로 설정되어 있으면, 상기 트랜잭션을 바이패스 한다.
실시 예에 있어서, 상기 통합 입출력 메모리 관리 유닛은 상기 트랜잭션에 대한 어드레스 변환 중에 다음 트랜잭션에 대한 어드레스 변환 여부를 판단한다. 그리고, 상기 통합 입출력 메모리 관리 유닛은 상기 필드 값이 상기 다음 트랜잭션의 어드레스가 물리 어드레스임을 나타내는 값으로 설정되어 있으면, 상기 트랜잭션에 대한 어드레스 변환 중에 상기 다음 트랜잭션을 바이패스 한다.
실시 예에 있어서, 상기 버스는 AXI(Advanced eXtensible Interface) 프로토콜을 사용한다.
본 발명의 다른 실시 예에 따른 시스템 온 칩은 메모리, 버스, 트랜잭션을 생성하여 상기 버스에 전달하는 복수의 IP 블록들, 상기 메모리와 상기 버스 사이에 연결되고, 상기 버스로부터 전달되는 상기 트랜잭션에 대한 어드레스 변환을 수행하는 통합 입출력 메모리 관리 유닛, 및 상기 트랜잭션의 어드레스가 가상 어드레스인지 물리 어드레스인지 여부를 나타내는 트랜잭션 상태 정보를 상기 통합 입출력 메모리 관리 유닛에 제공하는 컨트롤러를 포함한다. 그리고, 상기 트랜잭션은 상기 복수의 IP블록들을 구분하기 위한 IP 아이디 필드 값을 갖는다.
실시 예에 있어서, 상기 통합 입출력 메모리 관리 유닛은 상기 IP 아이디 필드 값에 대응하는 트랜잭션 상태 정보를 참조하여 상기 트랜잭션에 대한 어드레스 변환 여부를 결정한다.
실시 예에 있어서, 상기 통합 입출력 메모리 관리 유닛은 상기 IP 아이디 필드 값에 대응하는 트랜잭션 상태 정보를 통해 상기 트랜잭션의 어드레스가 가상 어드레스임이 확인되면, 상기 트랜잭션의 어드레스를 물리 어드레스로 변환한다. 반면에, 상기 통합 입출력 메모리 관리 유닛은 상기 IP 아이디 필드 값에 대응하는 트랜잭션 상태 정보를 통해 상기 트랜잭션의 어드레스가 물리 어드레스임이 확인되면, 상기 트랜잭션을 바이패스 한다.
실시 예에 있어서, 상기 IP 아이디 필드 값은 상기 복수의 IP 블록들과 상기 버스 사이의 토폴로지에 의해 정의된다.
실시 예에 있어서, 상기 통합 입출력 메모리 관리 유닛은 어드레스 변환 테이블을 저장하기 위한 TLB(Translation Look-aside Buffer)를 포함한다. 그리고, 상기 통합 입출력 메모리 관리 유닛은 상기 어드레스 변환 테이블을 참조하여 상기 트랜잭션에 대한 어드레스 변환을 수행한다.
또한, 상기 통합 입출력 메모리 관리 유닛은 상기 TLB에 상기 어드레스 변환 테이블이 저장되어 있지 않은 경우에는 상기 메모리로부터 상기 어드레스 변환 테이블을 읽어 들인 후에 상기 트랜잭션에 대한 어드레스 변환을 진행한다.
본 발명의 실시 예에 따른 시스템 온 칩(System on Chip: SoC)에 의하면, 입출력 메모리 관리 유닛(Input/Output Memory Management Unit: IOMMU)의 개수가 감소하여 설계상 복잡도 및 전력소모를 줄일 수 있다.
도 1은 본 발명의 제 1 실시 예에 따른 SoC를 보여주는 블록도이다.
도 2는 본 발명의 제 1 실시 예에 따른 SoC의 동작을 설명하기 위한 순서도이다.
도 3은 본 발명의 제 2 실시 예에 따른 SoC를 보여주는 블록도이다.
도 4는 본 발명의 제 2 실시 예에 따른 SoC에서 사용되는 IP 아이디 필드 값을 예시적으로 나타내는 표이다.
도 5는 본 발명의 제 2 실시 예에 따른 SoC의 동작을 설명하기 위한 순서도이다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 실시 예를 첨부된 도면을 참조하여 설명한다.
본 발명의 실시 예에 따른 시스템 온 칩(System on Chip, 이하 SoC라고 칭함)은 각각의 지능 소자(Intellectual Property, 이하 IP라고 칭함) 블록 단에 위치하는 입출력 메모리 관리 유닛(Input/Output Memory Management Unit, 이하 IOMMU라고 칭함)들을 통합하여 IOMMU를 메모리 단에 구현되는 통합 IOMMU를 포함한다. 이로 인해, 가상 어드레스(virtual arddress)를 물리 어드레스(physical address)로 변환하기 위해 사용되는 로직의 중복을 줄일 수 있다.
통합 IOMMU가 메모리 단에 구현되어 있으므로 버스(bus) 상의 트랜잭션(transaction)들의 어드레스로서 가상 어드레스(virtual arddress)와 물리 어드레스(physical address)가 혼용된다. 따라서, 통합 IOMMU는 트랜잭션의 어드레스가 가상 어드레스일 경우에만 트랜잭션의 어드레스를 물리 어드레스로 변환한다. 반면에, 통합 IOMMU는 트랜잭션의 어드레스가 물리 어드레스일 경우에는 트랜잭션을 어드레스 변환 없이 바이패스(bypass) 한다.
도 1은 본 발명의 제 1 실시 예에 따른 SoC를 보여주는 블록도이다. 도 1을 참조하면, 본 발명의 제 1 실시 예에 따른 SoC(100)는 제 1 내지 제 6 IP 블록(111~116), 제 1 및 제 2 로컬 버스(local bus, 121, 122) 및 시스템 버스(system bus, 123), 통합 IOMMU(130), IOMMU 컨트롤러(140), CPU(150) 및 메모리(160)를 포함한다.
제 1 내지 제 3 IP 블록(111~113)은 제 1 로컬 버스(121) 및 시스템 버스(123)를 통해 트랜잭션을 통합 IOMMU(130)로 전달한다. 제 4 내지 제 6 IP 블록(114~116)은 제 2 로컬 버스(122) 및 시스템 버스(123)를 통해 트랜잭션을 통합 IOMMU(130)로 전달한다.
여기서, 제 1 및 제 2 로컬 버스(121, 122) 및 시스템 버스(123)에 적용되는 인터페이스 프로토콜(protocol)은 AXI(Advanced eXtensible Interface)라고 가정한다. 따라서, SoC(100)는 AXI로 인해 다중 아웃스탠딩 어드레스(multiple outstanding address) 기능과 데이터 인터리빙(data interleaving) 기능을 지원한다. 특히, 다중 아웃스탠딩 어드레스 기능으로 인해, 어드레스 정보에 대한 트랜잭션(이하, 어드레스 트랜잭션이라 칭함)과 데이터 정보에 대한 트랜잭션(이하, 데이터 트랜잭션이라 칭함)이 제공될 때, 데이터 트랜잭션의 전송이 완료되기 전에 다음 데이터 트랜잭션의 전송을 위한 어드레스 트랜잭션이 전송될 수 있다.
각각의 IP 블록(111~116)으로부터 전달되는 트랜잭션은 어드레스가 가상 어드레스인지 물리 어드레스인지 여부를 나타내는 필드 값을 포함한다. 이와 같은 가상 어드레스와 물리 어드레스를 구분하는 필드 값은 트랜잭션의 종류에 따라 다르게 지칭될 수 있다. 예를 들면, 쓰기 어드레스 정보에 대한 트랜잭션(이하, 쓰기 어드레스 트랜잭션이라 칭함)에 포함되는 필드 값은 AWUSER라고 지칭된다. 그리고, 읽기 어드레스 정보에 대한 트랜잭션(이하, 읽기 어드레스 트랜잭션이라 칭함)에 포함되는 필드 값은 ARUSER라고 지칭된다.
AWUSER 및 ARUSER는 기본 값으로서 0으로 설정되고, 이는 트랜잭션의 어드레스가 물리 어드레스임을 나타내는 것으로 가정한다. 반면에, AWUSER 및 ARUSER가 1로 설정되면, 트랜잭션의 어드레스가 가상 어드레스임을 나타내는 것으로 가정한다.
통합 IOMMU(130)는 제 1 내지 제 6 IP 블록(111~116)에서 사용되는 가상 어드레스를 물리 어드레스로 변환한다. 즉, 통합 IOMMU(130)는 분산되어 있는 (fragmented) 물리 메모리 영역들을 연속적인 가상 어드레스로 맵핑(mapping)한다. 이로 인해, 물리 메모리 영역들이 연속적인 물리 어드레스로 지정되지 않더라도 효율적인 메모리 공간 활용이 가능하다. 따라서, 더욱 넓은 메모리 공간이 각각의 IP 블록에 할당될 수 있다. 참고로, 가상 어드레스는 장치 어드레스(device address) 또는 입출력 어드레스(I/O address)라고 지칭될 수 있다.
제 1 내지 제 3 IP 블록(111~113)의 트랜잭션들은 제 1 로컬 버스(121) 및 시스템 버스(123)를 통해 통합 IOMMU(130)로 전달된다. 그리고, 제 4 내지 제 6 IP 블록(114~116)의 트랜잭션들은 제 2 로컬 버스(122) 및 시스템 버스(123)를 통해 통합 IOMMU(130)로 전달된다. 이후, 통합 IOMMU(130)는 SoC(100)의 버스들(121~123)을 통해 전달되는 트랜잭션들에 대한 어드레스 변환을 수행한다. 이는 제 1 및 제 2 로컬 버스(121, 122)와 시스템 버스(123) 상의 트랜잭션들의 어드레스로서 가상 어드레스와 물리 어드레스가 혼용될 수 있음을 의미한다.
여기서, 통합 IOMMU(130)는 AWUSER 또는 ARUSER에 따라 어드레스 변환 여부를 결정한다. 통합 IOMMU(130)는 AWUSER 또는 ARUSER가 가상 어드레스임을 나타내는 경우(AWUSER /ARUSER = 1)에는 트랜잭션의 어드레스를 물리 어드레스로 변환한다. 이후, 어드레스 변환을 거친 트랜잭션은 메모리(160)로 전달된다. 반면에, 통합 IOMMU(130)는 AWUSER 또는 ARUSER가 물리 어드레스임을 나타내는 경우(AWUSER /ARUSER = 0)에는 트랜잭션을 바이패스 한다.
통합 IOMMU(130)는 어드레스 변환을 위해 TLB(Translation Look-aside Buffer)에 저장되어 있는 어드레스 변환 테이블(table)을 참조한다. 만약, 어드레스 변환 테이블이 TLB에 로드(load)되어 있지 않은 경우에는 메모리(160)로부터 어드레스 변환 테이블을 읽어 들인 후에 어드레스 변환을 진행한다.
통합 IOMMU(130)는 어드레스 변환 중에 다음 트랜잭션의 어드레스 변환 여부를 판단할 수 있다. 만약, 통합 IOMMU(130)는 다음 트랜잭션에 대한 AWUSER 또는 ARUSER가 물리 어드레스임을 나타내는 경우(AWUSER /ARUSER = 0)에는 이전 트랜잭션에 대한 어드레스 변환 중이라도 다음 트랜잭션을 바이패스 할 수 있다.
IOMMU 컨트롤러(140)는 각각의 IP 블록(111~116)으로부터 전달되는 트랜잭션들의 어드레스가 가상 어드레스인지 물리 어드레스인지에 따라 트랜잭션 내의 AWUSER 또는 ARUSER을 설정하기 위한 어드레스 변환 신호(ATS)를 발생한다. 이때, AWUSER 또는 ARUSER는 어드레스 변환 신호(ATS)에 응답하여 0에서 1로 설정된다. 앞에서 설명한 바와 같이, AWUSER 또는 ARUSER는 기본 값으로서 0으로 설정되어 있으므로, IOMMU 컨트롤러(140)는 트랜잭션들의 어드레스가 논리 어드레스인 경우에만 어드레스 변환 신호(ATS)를 발생한다.
IOMMU 컨트롤러(140)는 각각의 IP 블록(111~116)에서 출력되는 트랜잭션들의 어드레스가 가상 어드레스인지 물리 어드레스인지 여부를 나타내는 트랜잭션 상태 정보를 저장하기 위한 레지스터(141)를 포함할 수 있다. 여기서, 각각의 IP 블록(111~116)에 대한 트랜잭션 상태 정보는 CPU(150)로부터 제공된다. 따라서, IOMMU 컨트롤러(140)는 레지스터(141)에 저장되어 있는 트랜잭션 상태 정보를 참조하여 어드레스 변환 신호(ATS)의 발생 여부를 결정할 수 있다.
CPU(150)는 시스템 버스(123)에 연결되고, SoC(100)의 전반적인 동작을 제어한다. CPU(150)는 비록 도시되어 있지 않지만 잘 알려진 바와 같은 레지스터, 메모리 관리 유닛(Memory Management Unit, 이하 MMU라고 칭함) 등을 포함할 수 있다. 여기서, CPU(150)는 ARM(Advanced RISC Machine) 코어(core)를 기반으로 구현될 수 있다.
메모리(160)는 SoC(100)에서 처리되는 데이터를 저장한다. 메모리(160)는 SRAM (Static RAM), DRAM (Dynamic RAM), SDRAM (Synchronous DRAM) 등의 휘발성 메모리를 포함할 수 있다. 또한, 메모리(160)는 ROM (Read Only Memory), PROM (Programmable ROM), EPROM (Electrically Programmable ROM), EEPROM (Electrically Erasable and Programmable ROM), 플래시 메모리, PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FRAM (Ferroelectric RAM) 등의 불휘발성 메모리를 포함할 수 있다.
메모리(160) 내의 각각의 영역은 물리 어드레스로 지정된다. 따라서, 가상 어드레스를 사용하는 IP 블록들이 메모리(160)에 접근하기 위해서는 IP 블록들의 어드레스가 물리 어드레스로 변환되어야 한다. 이와 관련하여, CPU(150)에서 사용되는 가상 어드레스는 MMU에 의해 어드레스 변환이 이루어진다. 반면에, 제 1 내지 제 6 IP 블록(111~116)에서 사용되는 가상 어드레스는 통합 IOMMU(130)에 의해 어드레스 변환이 이루어진다.
도 2는 본 발명의 제 1 실시 예에 따른 SoC의 동작을 설명하기 위한 순서도이다. 도 2를 참조하면, 우선, IP 블록으로부터 트랜잭션이 출력된다.(단계 S110). 이때, IOMMU 컨트롤러(140, 도 1 참조)는 트랜잭션의 어드레스가 가상 어드레스인지 물리 어드레스인지에 따라 어드레스 변환 신호(ATS)의 발생 여부를 결정한다(단계 S120). IOMMU 컨트롤러(140)는 트랜잭션의 어드레스가 가상 어드레스인 경우에는 어드레스 변환 신호(ATS)를 발생한다. 반면에, IOMMU 컨트롤러(140)는 트랜잭션의 어드레스가 물리 어드레스인 경우에는 어드레스 변환 신호(ATS)를 발생하지 않는다.
앞에서 설명한 바와 같이, AWUSER 또는 ARUSER는 기본 값으로서 0으로 설정되어 있다고 가정한다. 트랜잭션 내의 AWUSER 또는 ARUSER는 어드레스 변환 신호(ATS)에 응답하여 0에서 1로 설정된다. 이는 어드레스 변환 신호(ATS)가 발생하지 않으면, AWUSER 또는 ARUSER는 0으로 유지됨을 의미한다.
이후, 트랜잭션은 로컬 및 시스템 버스를 거쳐 통합 IOMMU(130, 도 1 참조)에 전달된다. 통합 IOMMU(130)는 AWUSER 또는 ARUSER가 0인지 1인지 여부를 판단한다. 통합 IOMMU(130)는 AWUSER 또는 ARUSER가 1이면, 트랜잭션의 어드레스를 가상 어드레스에서 물리 어드레스로 변환한다(단계 S150). 반면에, 통합 IOMMU(130)는 AWUSER 또는 ARUSER가 0이면, 트랜잭션을 바이패스 한다(단계 S160).
이와 같이, 본 발명의 실시 예에 따른 SoC는 통합 IOMMU를 메모리 단에 구현하여 어드레스 변환을 위해 사용되는 로직의 중복을 줄일 수 있다. 또한, SoC의 설계상 복잡도 및 전력소모를 줄일 수 있다.
통합 IOMMU가 메모리 단에 구현되어 있으므로 버스 상의 트랜잭션들의 어드레스로서 가상 어드레스와 물리 어드레스가 혼용된다. 트랜잭션들의 어드레스가 가상 어드레스인지 물리 어드레스인지 여부를 나타내는 정보로서 AXI 프로토콜에 의해 정의되는 AWUSER 또는 ARUSER가 이용된다. IOMMU 컨트롤러는 트랜잭션들의 어드레스가 가상 어드레스인지 물리 어드레스인지에 따라 트랜잭션 내의 AWUSER 또는 ARUSER을 설정하기 위한 어드레스 변환 신호를 발생한다. 이후, 통합 IOMMU는 AWUSER 또는 ARUSER를 참조하여 어드레스 변환 여부를 결정한다.
도 3은 본 발명의 제 2 실시 예에 따른 SoC를 보여주는 블록도이다. 도 3을 참조하면, 본 발명의 제 2 실시 예에 따른 SoC(200)는 제 1 내지 제 6 IP 블록(211~216), 제 1 및 제 2 로컬 버스(local bus, 221, 222) 및 시스템 버스(system bus, 223), 통합 IOMMU(230), IOMMU 컨트롤러(240), CPU(250) 및 메모리(260)를 포함한다.
제 1 내지 제 3 IP 블록(211~213)은 제 1 로컬 버스(221) 및 시스템 버스(223)를 통해 트랜잭션을 통합 IOMMU(230)로 전달한다. 제 4 내지 제 6 IP 블록(214~216)은 제 2 로컬 버스(222) 및 시스템 버스(223)를 통해 트랜잭션을 통합 IOMMU(230)로 전달한다. 제 1 내지 6 IP 블록(211~216), 제 1 및 제 2 로컬 버스(221, 222) 및 시스템 버스(223)는 도 1을 참조하여 이미 설명되었다. 따라서, 이하에서, 이에 대한 중복되는 설명은 생략한다.
통합 IOMMU(230)는 제 1 내지 제 6 IP 블록(211~216)에서 사용되는 가상 어드레스를 물리 어드레스로 변환한다. 즉, 통합 IOMMU(230)는 SoC(200)의 버스들(221~223)을 통해 전달되는 트랜잭션들에 대한 어드레스 변환을 수행한다. 이는 제 1 및 제 2 로컬 버스(221, 222)와 시스템 버스(223) 상의 트랜잭션들의 어드레스로서 가상 어드레스와 물리 어드레스가 혼용될 수 있음을 의미한다.
통합 IOMMU(230)는 트랜잭션들 내의 IP 아이디 필드 값(IP_ID) 및 IOMMU 컨트롤러(240)로부터 제공되는 트랜잭션 상태 정보(SI)를 참조하여 트랜잭션들에 대한 어드레스 변환 여부를 결정한다.
도 4는 본 발명의 제 2 실시 예에 따른 SoC에서 사용되는 IP 아이디 필드 값을 예시적으로 나타내는 표이다. 도 3 및 4를 참조하면, IP 아이디 필드 값(IP_ID)은 제 1 내지 제 6 IP 블록(211~216)을 구분하기 위해 서로 다른 값을 갖는다. 즉, IP 아이디 필드 값(IP_ID)을 참조하면 트랜잭션들이 어느 IP에서 전달되었는지를 알 수 있다. 참고로, IP 아이디 필드 값(IP_ID)은 AXI 프로토콜에 의해 정의될 수 있다.
또한, IP 아이디 필드 값(IP_ID)은 IP 블록들(211~216)과 버스들(221~223) 사이의 토폴로지(topology)에 의해 정의될 수 있다. 예를 들면, IP 아이디 필드 값(IP_ID)의 제 1 및 제 2 비트는 시스템 버스(223)에 대한 토폴로지(topology)에 의해 정의될 수 있다. 시스템 버스(223)의 제 1 노드(SN1)를 통해 트랜잭션들을 전달하는 IP 블록을 나타내기 위해 IP 아이디 필드 값(IP_ID)의 제 1 비트는 1로 설정된다. 시스템 버스(223)의 제 2 노드(SN2)를 통해 트랜잭션들을 전달하는 IP 블록을 나타내기 위해 IP 아이디 필드 값(IP_ID)의 제 2 비트는 1로 설정된다.
IP 아이디 필드 값(IP_ID)의 제 3 내지 5 비트는 로컬 버스들(221, 222)에 대한 토폴로지에 의해 정의될 수 있다. 제 1 로컬 버스(221)의 제 1 노드(L1_N1)를 통해 트랜잭션들을 전달하는 IP 블록을 나타내기 위해 IP 아이디 필드 값(IP_ID)의 제 3 비트는 1로 설정된다. 제 1 로컬 버스(221)의 제 2 노드(L1_N2)를 통해 트랜잭션들을 전달하는 IP 블록을 나타내기 위해 IP 아이디 필드 값(IP_ID)의 제 4 비트는 1로 설정된다. 제 1 로컬 버스(221)의 제 3 노드(L1_N3)를 통해 트랜잭션들을 전달하는 IP 블록을 나타내기 위해 IP 아이디 필드 값(IP_ID)의 제 5 비트는 1로 설정된다.
이와 같은 방법으로, 제 2 로컬 버스(222)의 제 1 노드(L2_N1)를 통해 트랜잭션들을 전달하는 IP 블록을 나타내기 위해 IP 아이디 필드 값(IP_ID)의 제 3 비트는 1로 설정된다. 제 2 로컬 버스(222)의 제 2 노드(L2_N2)를 통해 트랜잭션들을 전달하는 IP 블록을 나타내기 위해 IP 아이디 필드 값(IP_ID)의 제 4 비트는 1로 설정된다. 제 2 로컬 버스(222)의 제 3 노드(L2_N3)를 통해 트랜잭션들을 전달하는 IP 블록을 나타내기 위해 IP 아이디 필드 값(IP_ID)의 제 5 비트는 1로 설정된다.
다시 도 3을 참조하면, 통합 IOMMU(230)는 전달되는 트랜잭션 내의 IP 아이디 필드 값(IP_ID)에 대응하는 트랜잭션 상태 정보(SI)를 통해 해당 트랜잭션의 어드레스가 가상 어드레스인지 물리 어드레스인지 여부를 판단한다. 통합 IOMMU(230)는 트랜잭션의 어드레스가 가상 어드레스이면 어드레스 변환을 수행한다. 반면에, 통합 IOMMU(230)는 트랜잭션의 어드레스가 물리 어드레스이면 트랜잭션을 바이패스 한다.
통합 IOMMU(230)는 어드레스 변환을 위해 TLB에 저장되어 있는 어드레스 변환 테이블을 참조한다. 만약, 어드레스 변환 테이블이 TLB에 로드되어 있지 않은 경우에는 메모리(260)로부터 어드레스 변환 테이블을 읽어 들인 후에 어드레스 변환을 진행한다.
IOMMU 컨트롤러(240)는 각각의 IP 블록(211~216)에서 출력되는 트랜잭션들의 어드레스가 가상 어드레스인지 물리 어드레스인지 여부를 나타내는 트랜잭션 상태 정보(SI)를 저장하기 위한 레지스터(241)를 포함할 수 있다. 여기서, 각각의 IP 블록(211~216)에 대한 트랜잭션 상태 정보(SI)는 CPU(250)로부터 제공된다. IOMMU 컨트롤러(240)는 IP 아이디 필드 값(IP_ID)에 대응하는 트랜잭션 상태 정보(SI)를 통합 IOMMU(230)에 제공한다.
CPU(250) 및 메모리(260)는 는 도 1을 참조하여 이미 설명되었다. 따라서, 이하에서, 이에 대한 중복되는 설명은 생략한다.
도 5는 본 발명의 제 2 실시 예에 따른 SoC의 동작을 설명하기 위한 순서도이다. 도 5를 참조하면, 우선, IP 블록으로부터 트랜잭션이 출력된다.(단계 S210). 이때, 통합 IOMMU(230, 도 1 참조)는 트랜잭션 내의 IP 아이디 필드 값(IP_ID)에 대응하는 트랜잭션 상태 정보(SI)를 확인한다(단계 S220). 앞에서 언급한 바와 같이, 트랜잭션 상태 정보(SI)는 IOMMU 컨트롤러(240, 도 1 참조)로부터 제공된다.
통합 IOMMU(230)는 트랜잭션 상태 정보(SI)를 통해 해당 트랜잭션의 어드레스가 가상 어드레스인지 물리 어드레스인지를 판단한다(단계 S230). 이후, 통합 IOMMU(230)는 트랜잭션의 어드레스가 가상 어드레스이면 어드레스 변환을 수행한다(단계 S240). 반면에, 통합 IOMMU(130)는 트랜잭션의 어드레스가 물리 어드레스이면 트랜잭션을 바이패스 한다(단계 S250).
이와 같이, 본 발명의 실시 예에 따른 SoC는 통합 IOMMU를 메모리 단에 구현하여 어드레스 변환을 위해 사용되는 로직의 중복을 줄일 수 있다. 또한, SoC의 설계상 복잡도 및 전력소모를 줄일 수 있다.
통합 IOMMU가 메모리 단에 구현되어 있으므로 버스 상의 트랜잭션들의 어드레스로서 가상 어드레스와 물리 어드레스가 혼용된다. 통합 IOMMU는 IP 아이디 필드 값(IP_ID) 및 이에 대응하는 트랜잭션 상태 정보를 참조하여 어드레스 변환 여부를 결정한다.
본 발명의 범위 또는 기술적 사상을 벗어나지 않고 본 발명의 구조가 다양하게 수정되거나 변경될 수 있음은 이 분야에 숙련된 자들에게 자명하다. 상술한 내용을 고려하여 볼 때, 만약 본 발명의 수정 및 변경이 아래의 청구항들 및 동등물의 범주 내에 속한다면, 본 발명이 이 발명의 변경 및 수정을 포함하는 것으로 여겨진다.
100: 시스템 온 칩(SoC) 111: IP 블록
121, 122: 로컬 버스 123: 시스템 버스
130: 통합 IOMMU 140: IOMMU 컨트롤러
150: CPU 160: 메모리

Claims (20)

  1. 중앙 처리 장치;
    메모리;
    제 1 및 제 2 버스를 포함하는 시스템 버스;
    상기 제 1 버스 또는 상기 제 2 버스에 연결되며, IP 아이디 필드 값 및 가상 어드레스와 물리 어드레스를 구분하기 위한 필드 값을 포함하는 트랜잭션을 생성하여 상기 제 1 버스 또는 상기 제 2 버스에 전달하는 복수의 IP 블록들;
    상기 메모리와 상기 시스템 버스 사이에 연결되고, 상기 필드 값에 따라 상기 시스템 버스로부터 전달되는 상기 트랜잭션에 대한 어드레스 변환 여부를 결정하는 통합 입출력 메모리 관리 유닛; 그리고
    상기 중앙 처리 장치로부터 제공되는 트랜잭션 상태 정보에 기초하여 상기 필드 값을 설정하기 위한 어드레스 변환 신호를 발생하는 컨트롤러를 포함하되,
    상기 IP 아이디 필드 값은 상기 트랜잭션이 상기 제 1 버스를 통해 전송되었는지 또는 상기 제 2 버스를 통해 전송되었는지 여부를 표시하고,
    상기 트랜잭션 상태 정보는 상기 트랜잭션의 어드레스가 가상 어드레스 혹은 물리 어드레스인지 여부를 표시하는 시스템 온 칩.
  2. 제 1 항에 있어서,
    상기 통합 입출력 메모리 관리 유닛은 상기 메모리의 물리 메모리 영역들을 비연속적으로 복수의 가상 어드레스들로 맵핑하는 시스템 온 칩.
  3. 제 1 항에 있어서,
    상기 통합 입출력 메모리 관리 유닛은 상기 필드 값이 상기 트랜잭션의 어드레스가 가상 어드레스임을 나타내는 값으로 설정되어 있으면, 상기 트랜잭션의 어드레스를 물리 어드레스로 변환하는 시스템 온 칩.
  4. 제 1 항에 있어서,
    상기 통합 입출력 메모리 관리 유닛은 상기 필드 값이 상기 트랜잭션의 어드레스가 물리 어드레스임을 나타내는 값으로 설정되어 있으면, 상기 트랜잭션을 바이패스 하는 시스템 온 칩.
  5. 제 1 항에 있어서,
    상기 통합 입출력 메모리 관리 유닛은 상기 트랜잭션에 대한 어드레스 변환 중에 다음 트랜잭션에 대한 어드레스 변환 여부를 판단하는 시스템 온 칩.
  6. 제 5 항에 있어서,
    상기 통합 입출력 메모리 관리 유닛은 상기 필드 값이 상기 다음 트랜잭션의 어드레스가 물리 어드레스임을 나타내는 값으로 설정되어 있으면, 상기 트랜잭션에 대한 어드레스 변환 중에 상기 다음 트랜잭션을 바이패스 하는 시스템 온 칩.
  7. 제 1 항에 있어서,
    상기 필드 값은 기본 값으로 상기 트랜잭션의 어드레스가 물리 어드레스임을 나타내는 값으로 설정되어 있는 시스템 온 칩.
  8. 제 7 항에 있어서,
    상기 필드 값은 상기 어드레스 변환 신호에 기초하여 상기 트랜잭션의 어드레스가 가상 어드레스임을 나타내는 값으로 설정되는 시스템 온 칩.
  9. 제 1 항에 있어서,
    트랜잭션 상태 정보를 제공하는 중앙처리장치를 더 포함하고,
    상기 컨트롤러는 상기 트랜잭션 상태 정보에 기초하여 상기 어드레스 변환 신호의 발생 여부를 결정하며, 상기 트랜잭션 상태 정보를 저장하기 위한 레지스터를 포함하는 시스템 온 칩.
  10. 제 1 항에 있어서,
    상기 복수의 IP 블록들의 메모리 액세스는 상기 통합 입출력 메모리 관리 유닛에 의해 관리되고, 상기 중앙 처리 장치의 메모리 액세스는 상기 중앙 처리 장치 내에 포함된 메모리 관리 유닛에 의해 관리되는 시스템 온 칩.
  11. 중앙 처리 장치;
    메모리;
    제 1 및 제 2 버스를 포함하는 시스템 버스;
    상기 제 1 버스 또는 상기 제 2 버스에 연결되며, 트랜잭션을 생성하여 상기 제 1 버스 또는 상기 제 2 버스에 전달하는 복수의 IP 블록들;
    상기 메모리와 상기 시스템 버스 사이에 연결되고, 상기 시스템 버스로부터 전달되는 상기 트랜잭션에 대한 어드레스 변환을 수행하는 통합 입출력 메모리 관리 유닛; 및
    상기 트랜잭션의 어드레스가 가상 어드레스인지 물리 어드레스인지 여부를 나타내는 트랜잭션 상태 정보를 상기 통합 입출력 메모리 관리 유닛에 제공하는 컨트롤러를 포함하고,
    상기 트랜잭션은 상기 트랜잭션이 상기 제 1 버스를 통해 전송되었는지 또는 상기 제 2 버스를 통해 전송되었는지를 표시하는 IP 아이디 필드 값을 포함하고,
    상기 트랜잭션 상태 정보는 상기 중앙 처리 장치로부터 제공되어 상기 컨트롤러에 저장되는 시스템 온 칩.
  12. 제 11 항에 있어서,
    상기 통합 입출력 메모리 관리 유닛은 상기 IP 아이디 필드 값에 대응하는 트랜잭션 상태 정보를 참조하여 상기 트랜잭션에 대한 어드레스 변환 여부를 결정하는 시스템 온 칩.
  13. 제 11 항에 있어서,
    상기 통합 입출력 메모리 관리 유닛은 상기 IP 아이디 필드 값에 대응하는 트랜잭션 상태 정보를 통해 상기 트랜잭션의 어드레스가 가상 어드레스임이 확인되면, 상기 트랜잭션의 어드레스를 물리 어드레스로 변환하는 시스템 온 칩.
  14. 제 11 항에 있어서,
    상기 통합 입출력 메모리 관리 유닛은 상기 IP 아이디 필드 값에 대응하는 트랜잭션 상태 정보를 통해 상기 트랜잭션의 어드레스가 물리 어드레스임이 확인되면, 상기 트랜잭션을 바이패스 하는 시스템 온 칩.
  15. 제 11 항에 있어서,
    상기 IP 아이디 필드 값은 상기 복수의 IP 블록들과 상기 시스템 버스 사이의 토폴로지에 의해 정의되는 시스템 온 칩.
  16. 제 11 항에 있어서,
    상기 통합 입출력 메모리 관리 유닛은 어드레스 변환 테이블을 저장하기 위한 TLB(Translation Look-aside Buffer)를 포함하는 시스템 온 칩.
  17. 제 16 항에 있어서,
    상기 통합 입출력 메모리 관리 유닛은 상기 어드레스 변환 테이블을 참조하여 상기 트랜잭션에 대한 어드레스 변환을 수행하는 시스템 온 칩.
  18. 제 16 항에 있어서,
    상기 통합 입출력 메모리 관리 유닛은 상기 TLB에 상기 어드레스 변환 테이블이 저장되어 있지 않은 경우에는 상기 메모리로부터 상기 어드레스 변환 테이블을 읽어 들인 후에 상기 트랜잭션에 대한 어드레스 변환을 진행하는 시스템 온 칩.
  19. 메모리 및 복수의 IP 블록들을 포함하는 시스템 온 칩의 트랜잭션 관리 방법에 있어서:
    제 1 버스 또는 제 2 버스에 연결되는 상기 복수의 IP 블록들 중 하나로부터 상기 제 1 버스 또는 상기 제 2 버스를 통해 트랜잭션을 출력하는 단계;
    상기 트랜잭션이 상기 제 1 버스를 통해 전송되었는지 또는 상기 제 2 버스를 통해 전송되었는지 여부를 표시하는 IP 아이디 필드 값 및 상기 트랜잭션의 어드레스가 가상 어드레스 또는 물리 어드레스 인지 여부를 표시하는 필드 값을 상기 트랜잭션과 함께 제공하는 단계;
    중앙 처리 장치로부터 제공되는 트랜잭션 상태 정보에 기초하여 상기 필드 값을 설정하기 위한 어드레스 변환 신호를 제공하는 단계;
    상기 어드레스 변환 신호에 기초하여 상기 필드 값을 제 1 값 또는 제 2 값으로 설정하는 단계;
    상기 메모리의 입력 단에 연결된 통합 입출력 메모리 관리 유닛을 통해 상기 트랜잭션, 상기 IP 아이디 필드 값 및 상기 필드 값을 수신하는 단계; 그리고
    상기 통합 입출력 메모리 관리 유닛에 의해 상기 필드 값에 따라 어드레스 전환 여부를 결정하는 단계를 포함하되,
    상기 필드 값이 제 1 값인 경우 상기 통합 입출력 메모리 관리 유닛은 상기 트랜잭션의 어드레스를 전환하고, 상기 필드 값이 제 2 값인 경우 상기 통합 입출력 메모리 관리 유닛은 상기 트랜잭션의 어드레스를 바이패스하고,
    상기 트랜잭션 상태 정보는 상기 트랜잭션의 어드레스가 가상 어드레스인지 또는 물리 어드레스인지 여부를 표시하는 트랜잭션 관리 방법.
  20. 제 19 항에 있어서,
    상기 제 1 값은 상기 트랜잭션의 어드레스가 가상 어드레스임을 표시하고, 상기 제 2 값은 상기 트랜잭션의 어드레스가 물리 어드레스임을 표시하는 트랜잭션 관리 방법.
KR1020100039616A 2010-04-28 2010-04-28 통합 입출력 메모리 관리 유닛을 포함하는 시스템 온 칩 KR101781617B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020100039616A KR101781617B1 (ko) 2010-04-28 2010-04-28 통합 입출력 메모리 관리 유닛을 포함하는 시스템 온 칩
US13/095,385 US9361239B2 (en) 2010-04-28 2011-04-27 System on chip including unified input/output memory management unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100039616A KR101781617B1 (ko) 2010-04-28 2010-04-28 통합 입출력 메모리 관리 유닛을 포함하는 시스템 온 칩

Publications (2)

Publication Number Publication Date
KR20110120094A KR20110120094A (ko) 2011-11-03
KR101781617B1 true KR101781617B1 (ko) 2017-09-25

Family

ID=44859237

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100039616A KR101781617B1 (ko) 2010-04-28 2010-04-28 통합 입출력 메모리 관리 유닛을 포함하는 시스템 온 칩

Country Status (2)

Country Link
US (1) US9361239B2 (ko)
KR (1) KR101781617B1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102541132B (zh) * 2011-12-27 2014-02-05 东南大学 一种基于系统总线的系统芯片片内电源转换控制电路
US9645934B2 (en) * 2013-09-13 2017-05-09 Samsung Electronics Co., Ltd. System-on-chip and address translation method thereof using a translation lookaside buffer and a prefetch buffer
KR20160018204A (ko) * 2014-08-08 2016-02-17 삼성전자주식회사 전자 장치, 온 칩 메모리 장치 및 온 칩 메모리의 운영 방법
US10402355B2 (en) * 2017-02-08 2019-09-03 Texas Instruments Incorporated Apparatus and mechanism to bypass PCIe address translation by using alternative routing
US10380039B2 (en) 2017-04-07 2019-08-13 Intel Corporation Apparatus and method for memory management in a graphics processing environment
IT202000009364A1 (it) * 2020-04-29 2021-10-29 St Microelectronics Srl Procedimento per accedere a una memoria e circuito corrispondente
CN112667541B (zh) * 2020-12-15 2023-06-02 厦门智多晶科技有限公司 一种ip动态配置电路和fpga

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040193833A1 (en) * 2003-03-27 2004-09-30 Kathryn Hampton Physical mode addressing
US20100100934A1 (en) * 2008-10-22 2010-04-22 International Business Machines Corporation Security methodology to prevent user from compromising throughput in a highly threaded network on a chip processor

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4026753B2 (ja) * 2002-07-25 2007-12-26 株式会社日立製作所 半導体集積回路
US7278008B1 (en) * 2004-01-30 2007-10-02 Nvidia Corporation Virtual address translation system with caching of variable-range translation clusters
US7234038B1 (en) * 2004-05-28 2007-06-19 Sun Microsystems, Inc. Page mapping cookies
US7346742B2 (en) * 2004-11-18 2008-03-18 Lsi Logic Corporation Methods and structure for bypassing memory management mapping and translation features
KR100734521B1 (ko) 2005-01-05 2007-07-03 광주과학기술원 시스템 온 칩을 위한 ip 모듈
KR20060112349A (ko) 2005-04-26 2006-11-01 삼성전자주식회사 에스오씨 버스 시스템 및 버스 데이터 처리방법
KR100797468B1 (ko) 2005-12-14 2008-01-24 엘지전자 주식회사 시스템 버스와 아이피간 인터페이싱 장치와 방법 및 컴퓨터프로그램을 저장하는 컴퓨터로 읽을 수 있는 기록 매체
US7739474B2 (en) * 2006-02-07 2010-06-15 International Business Machines Corporation Method and system for unifying memory access for CPU and IO operations
US8205064B2 (en) * 2007-05-11 2012-06-19 Advanced Micro Devices, Inc. Latency hiding for a memory management unit page table lookup
US7934046B2 (en) * 2008-07-02 2011-04-26 International Business Machines Corporation Access table lookup for bus bridge
US8117420B2 (en) * 2008-08-07 2012-02-14 Qualcomm Incorporated Buffer management structure with selective flush
US8275598B2 (en) * 2009-03-02 2012-09-25 International Business Machines Corporation Software table walk during test verification of a simulated densely threaded network on a chip
US8225069B2 (en) * 2009-03-31 2012-07-17 Intel Corporation Control of on-die system fabric blocks
US8769213B2 (en) * 2009-08-24 2014-07-01 Micron Technology, Inc. Multi-port memory and operation

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040193833A1 (en) * 2003-03-27 2004-09-30 Kathryn Hampton Physical mode addressing
US20100100934A1 (en) * 2008-10-22 2010-04-22 International Business Machines Corporation Security methodology to prevent user from compromising throughput in a highly threaded network on a chip processor

Also Published As

Publication number Publication date
US9361239B2 (en) 2016-06-07
KR20110120094A (ko) 2011-11-03
US20110271075A1 (en) 2011-11-03

Similar Documents

Publication Publication Date Title
KR101781617B1 (ko) 통합 입출력 메모리 관리 유닛을 포함하는 시스템 온 칩
EP2568389B1 (en) Coherence switch for i/o traffic
US8917734B1 (en) Method and apparatus for an aggregated non-transparent requester ID translation for a PCIe switch
JP5144542B2 (ja) アドレス変換バイパスを有するデータ処理システム及びその方法
CN100472494C (zh) 支持多总线多类型存储器的内存仲裁实现系统和方法
JP4447892B2 (ja) マルチコア通信モジュールを組み入れたデータ通信システム及び方法
US20050010712A1 (en) Devices and methods for converting remote device formats to host device formats for access to host associated resources
JP5681782B2 (ja) オン・ダイ・システム・ファブリック・ブロックの制御
JP6660374B2 (ja) プログラマブル論理のためのメモリの仮想化
US9021169B2 (en) Bus system including ID converter and converting method thereof
GB2485701A (en) Using a central interface and a core specific shim to connect a computer bus to a core using an on chip protocol
US8713233B2 (en) Interconnect, bus system with interconnect and bus system operating method
WO2021120623A1 (zh) 一种数据传输方法、装置及相关组件
JP2013088879A (ja) 情報処理装置
US9697118B1 (en) Memory controller with interleaving and arbitration scheme
US8359419B2 (en) System LSI having plural buses
KR20160046883A (ko) 듀얼 전압 데이터 전송을 이용한 메시 성능 향상
US10445267B2 (en) Direct memory access (DMA) unit with address alignment
US20190286606A1 (en) Network-on-chip and computer system including the same
KR101690568B1 (ko) 네트워크 온 칩 소켓 프로토콜
CN116745754A (zh) 一种访问远端资源的系统及方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant