KR101781617B1 - System on chip including unified input/output memory management unit - Google Patents

System on chip including unified input/output memory management unit 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
Korean (ko)
Other versions
KR20110120094A (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 KR1020100039616A priority Critical patent/KR101781617B1/en
Priority to US13/095,385 priority patent/US9361239B2/en
Publication of KR20110120094A publication Critical patent/KR20110120094A/en
Application granted granted Critical
Publication of KR101781617B1 publication Critical patent/KR101781617B1/en

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 블록들, 및 상기 메모리와 상기 버스 사이에 연결되고, 상기 필드 값에 따라 상기 버스로부터 전달되는 상기 트랜잭션에 대한 어드레스 변환 여부를 결정하는 통합 입출력 메모리 관리 유닛을 포함한다. 본 발명의 실시 예에 따른 시스템 온 칩에 의하면, 입출력 메모리 관리 유닛의 개수가 감소하여 설계상 복잡도 및 전력소모를 줄일 수 있다.The present invention relates to a system on chip (SoC) including an integrated input / output memory management unit (IOMMU). A system on chip according to an embodiment of the present invention includes a plurality of IP blocks for generating a transaction having a memory, a bus, a field value for distinguishing a virtual address and a physical address and transmitting the transaction to the bus, And an integrated input / output memory management unit for determining whether or not address conversion is to be performed on the transaction transferred from the bus according to the field value. According to the system-on-chip according to the embodiment of the present invention, the number of input / output memory management units is reduced, and the complexity and power consumption can be reduced in design.

Description

통합 입출력 메모리 관리 유닛을 포함하는 시스템 온 칩{SYSTEM ON CHIP INCLUDING UNIFIED INPUT/OUTPUT MEMORY MANAGEMENT UNIT}SYSTEM ON CHIP INCLUDING UNIFIED INPUT / OUTPUT MEMORY MANAGEMENT UNIT < RTI ID = 0.0 >

본 발명은 시스템 온 칩(System on Chip: SoC)에 관한 것으로, 좀 더 구체적으로 입출력 메모리 관리 유닛(Input/Output Memory Management Unit: IOMMU)을 포함하는 시스템 온 칩에 관한 것이다.The present invention relates to a system on chip (SoC), and more particularly, to a system on chip including an 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 관련 산업을 촉진하고 있다.System on Chip (hereinafter referred to as SoC) is a technology for integrating complex systems having various functions into a single semiconductor chip. The demand for application specific ICs (ASICs) and application specific standard products (ASSPs) has been shifting to SoCs due to the convergence tendency of integrating computers, communications, and broadcasting. In addition, miniaturization and light weight of IT (Information Technology) devices are promoting SoC related industries.

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) 기능 등을 포함한다.SoCs include Intellectual Property (IP). The IPs perform specific functions within the SoC, respectively. Typically, these IPs are connected via a bus. An Advanced Microcontroller Bus Architecture (AMBA) of Advanced RISC Machine (ARM) is applied as an exemplary standard bus standard for connection and management of IPs in a SoC. AMBA bus types include Advanced High-Performance Bus (AHB), Advanced Peripheral Bus (APB), and Advanced Extensible Interface (AXI). Of these, AXI is an interface protocol between IPs, including a multiple outstanding address function and a data interleaving function.

다중 아웃스탠딩 어드레스 기능으로 인해, 버스의 어드레스 라인과 데이터 라인을 통해 정보가 제공될 때, 데이터 전송이 완료되기 전에 다음 데이터 전송을 위한 어드레스를 전송할 수 있다. 그리고, 데이터 인터리빙 기능으로 인해, IP들 사이의 데이터 전송 시에 수신 단에서 데이터의 뒤섞임이 지원된다. 따라서, 버스의 대역폭을 더욱 효율적으로 사용할 수 있다. 그리고, 레이턴시(latency) 측면에서 유리하다.Due to the multi-out standing address function, when information is provided via address lines and data lines of the bus, an address for the next data transfer can be transmitted before the data transfer is completed. And, due to the data interleaving function, data intermixing at the receiving end is supported during data transmission between IPs. Therefore, the bandwidth of the bus can be used more efficiently. And it is advantageous in terms of latency.

본 발명의 목적은 복수의 입출력 메모리 관리 유닛(Input/Output Memory Management Unit: IOMMU)을 하나의 입출력 메모리 관리 유닛으로 통합하고, 이를 제어하는 시스템 온 칩(System on Chip: SoC)을 제공하는 데 있다.An object of the present invention is to provide a system on chip (SoC) that integrates a plurality of input / output memory management units (IOMMU) into one input / output memory management unit and controls the same .

본 발명의 실시 예에 따른 시스템 온 칩은 메모리, 버스, 가상 어드레스와 물리 어드레스를 구분하기 위한 필드 값을 갖는 트랜잭션을 생성하여 상기 버스에 전달하는 복수의 IP 블록들, 및 상기 메모리와 상기 버스 사이에 연결되고, 상기 필드 값에 따라 상기 버스로부터 전달되는 상기 트랜잭션에 대한 어드레스 변환 여부를 결정하는 통합 입출력 메모리 관리 유닛을 포함한다.A system on chip according to an embodiment of the present invention includes a plurality of IP blocks for generating a transaction having a memory, a bus, a field value for distinguishing a virtual address and a physical address and transmitting the transaction to the bus, And an integrated input / output memory management unit for determining whether or not address conversion is to be performed on the transaction transferred from the bus according to the field value.

또한, 시스템 온 칩은 상기 필드 값을 설정하기 위한 어드레스 변환 신호를 발생하는 컨트롤러를 더 포함할 수 있다.In addition, the system-on-chip may further include a controller for generating an address conversion signal for setting the field value.

실시 예에 있어서, 상기 필드 값은 기본 값으로 상기 트랜잭션의 어드레스가 물리 어드레스임을 나타내는 값으로 설정되어 있다. 그리고, 상기 필드 값은 상기 어드레스 변환 신호에 응답하여 상기 트랜잭션의 어드레스가 논리 어드레스임을 나타내는 값으로 설정된다.In the embodiment, the field value is set to a value indicating that the address of the transaction is a physical address as a default value. The field value is set to a value indicating that the address of the transaction is a logical address in response to the address translation signal.

실시 예에 있어서, 상기 통합 입출력 메모리 관리 유닛은 상기 필드 값이 상기 트랜잭션의 어드레스가 논리 어드레스임을 나타내는 값으로 설정되어 있으면, 상기 트랜잭션의 어드레스를 물리 어드레스로 변환한다. 반면에, 상기 통합 입출력 메모리 관리 유닛은 상기 필드 값이 상기 트랜잭션의 어드레스가 물리 어드레스임을 나타내는 값으로 설정되어 있으면, 상기 트랜잭션을 바이패스 한다.In the embodiment, the integrated input / output memory management unit converts the address of the transaction into a physical address if the field value is set to a value indicating that the address of the transaction is a logical address. On the other hand, the integrated input / output memory management unit bypasses the transaction if the field value is set to a value indicating that the address of the transaction is a physical address.

실시 예에 있어서, 상기 통합 입출력 메모리 관리 유닛은 상기 트랜잭션에 대한 어드레스 변환 중에 다음 트랜잭션에 대한 어드레스 변환 여부를 판단한다. 그리고, 상기 통합 입출력 메모리 관리 유닛은 상기 필드 값이 상기 다음 트랜잭션의 어드레스가 물리 어드레스임을 나타내는 값으로 설정되어 있으면, 상기 트랜잭션에 대한 어드레스 변환 중에 상기 다음 트랜잭션을 바이패스 한다.In an embodiment, the integrated input / output memory management unit determines whether the address conversion for the next transaction is to be performed during the address conversion for the transaction. And the integrated input / output memory management unit bypasses the next transaction during address conversion for the transaction if the field value is set to a value indicating that the address of the next transaction is a physical address.

실시 예에 있어서, 상기 버스는 AXI(Advanced eXtensible Interface) 프로토콜을 사용한다.In an embodiment, the bus uses the Advanced Extensible Interface (AXI) protocol.

본 발명의 다른 실시 예에 따른 시스템 온 칩은 메모리, 버스, 트랜잭션을 생성하여 상기 버스에 전달하는 복수의 IP 블록들, 상기 메모리와 상기 버스 사이에 연결되고, 상기 버스로부터 전달되는 상기 트랜잭션에 대한 어드레스 변환을 수행하는 통합 입출력 메모리 관리 유닛, 및 상기 트랜잭션의 어드레스가 가상 어드레스인지 물리 어드레스인지 여부를 나타내는 트랜잭션 상태 정보를 상기 통합 입출력 메모리 관리 유닛에 제공하는 컨트롤러를 포함한다. 그리고, 상기 트랜잭션은 상기 복수의 IP블록들을 구분하기 위한 IP 아이디 필드 값을 갖는다.A system-on-chip according to another embodiment of the present invention includes a plurality of IP blocks for generating a memory, a bus, and a transaction to transmit to the bus, a plurality of IP blocks connected between the memory and the bus, An integrated input / output memory management unit that performs address conversion, and a controller that provides transaction state information indicating whether the address of the transaction is a virtual address or a physical address to the integrated input / output memory management unit. The transaction has an IP ID field value for identifying the plurality of IP blocks.

실시 예에 있어서, 상기 통합 입출력 메모리 관리 유닛은 상기 IP 아이디 필드 값에 대응하는 트랜잭션 상태 정보를 참조하여 상기 트랜잭션에 대한 어드레스 변환 여부를 결정한다.In the embodiment, the integrated input / output memory management unit determines whether to convert the address for the transaction by referring to the transaction state information corresponding to the IP ID field value.

실시 예에 있어서, 상기 통합 입출력 메모리 관리 유닛은 상기 IP 아이디 필드 값에 대응하는 트랜잭션 상태 정보를 통해 상기 트랜잭션의 어드레스가 가상 어드레스임이 확인되면, 상기 트랜잭션의 어드레스를 물리 어드레스로 변환한다. 반면에, 상기 통합 입출력 메모리 관리 유닛은 상기 IP 아이디 필드 값에 대응하는 트랜잭션 상태 정보를 통해 상기 트랜잭션의 어드레스가 물리 어드레스임이 확인되면, 상기 트랜잭션을 바이패스 한다.In an embodiment, the integrated input / output memory management unit converts an address of the transaction into a physical address when the address of the transaction is confirmed to be a virtual address through transaction state information corresponding to the IP ID field value. On the other hand, the integrated input / output memory management unit bypasses the transaction when the address of the transaction is determined to be a physical address through the transaction state information corresponding to the IP ID field value.

실시 예에 있어서, 상기 IP 아이디 필드 값은 상기 복수의 IP 블록들과 상기 버스 사이의 토폴로지에 의해 정의된다.In an embodiment, the IP ID field value is defined by a topology between the plurality of IP blocks and the bus.

실시 예에 있어서, 상기 통합 입출력 메모리 관리 유닛은 어드레스 변환 테이블을 저장하기 위한 TLB(Translation Look-aside Buffer)를 포함한다. 그리고, 상기 통합 입출력 메모리 관리 유닛은 상기 어드레스 변환 테이블을 참조하여 상기 트랜잭션에 대한 어드레스 변환을 수행한다.In an embodiment, the integrated input / output memory management unit includes a TLB (Translation Look-aside Buffer) for storing an address conversion table. The integrated input / output memory management unit performs address conversion for the transaction with reference to the address conversion table.

또한, 상기 통합 입출력 메모리 관리 유닛은 상기 TLB에 상기 어드레스 변환 테이블이 저장되어 있지 않은 경우에는 상기 메모리로부터 상기 어드레스 변환 테이블을 읽어 들인 후에 상기 트랜잭션에 대한 어드레스 변환을 진행한다.In addition, if the address translation table is not stored in the TLB, the integrated input / output memory management unit reads the address translation table from the memory, and then proceeds to address translation for the transaction.

본 발명의 실시 예에 따른 시스템 온 칩(System on Chip: SoC)에 의하면, 입출력 메모리 관리 유닛(Input/Output Memory Management Unit: IOMMU)의 개수가 감소하여 설계상 복잡도 및 전력소모를 줄일 수 있다.According to the system on chip (SoC) according to the embodiment of the present invention, the number of input / output memory management units (IOMMU) is reduced, thereby reducing the design complexity and power consumption.

도 1은 본 발명의 제 1 실시 예에 따른 SoC를 보여주는 블록도이다.
도 2는 본 발명의 제 1 실시 예에 따른 SoC의 동작을 설명하기 위한 순서도이다.
도 3은 본 발명의 제 2 실시 예에 따른 SoC를 보여주는 블록도이다.
도 4는 본 발명의 제 2 실시 예에 따른 SoC에서 사용되는 IP 아이디 필드 값을 예시적으로 나타내는 표이다.
도 5는 본 발명의 제 2 실시 예에 따른 SoC의 동작을 설명하기 위한 순서도이다.
1 is a block diagram showing an SoC according to a first embodiment of the present invention.
2 is a flowchart illustrating an operation of the SoC according to the first embodiment of the present invention.
3 is a block diagram illustrating an SoC according to a second embodiment of the present invention.
4 is a table illustrating an IP ID field value used in the SoC according to the second embodiment of the present invention.
5 is a flowchart illustrating an operation of the SoC according to the second embodiment of the present invention.

이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 실시 예를 첨부된 도면을 참조하여 설명한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings, so that those skilled in the art can easily carry out the technical idea of the present invention.

본 발명의 실시 예에 따른 시스템 온 칩(System on Chip, 이하 SoC라고 칭함)은 각각의 지능 소자(Intellectual Property, 이하 IP라고 칭함) 블록 단에 위치하는 입출력 메모리 관리 유닛(Input/Output Memory Management Unit, 이하 IOMMU라고 칭함)들을 통합하여 IOMMU를 메모리 단에 구현되는 통합 IOMMU를 포함한다. 이로 인해, 가상 어드레스(virtual arddress)를 물리 어드레스(physical address)로 변환하기 위해 사용되는 로직의 중복을 줄일 수 있다.A system on chip (hereinafter referred to as SoC) according to an embodiment of the present invention includes an Input / Output Memory Management Unit (hereinafter referred to as " IPCU ") located in an intellectual property (Hereinafter referred to as " IOMMU "), and integrates the IOMMU at the memory end. This can reduce the redundancy of the logic used to convert the virtual address to the physical address.

통합 IOMMU가 메모리 단에 구현되어 있으므로 버스(bus) 상의 트랜잭션(transaction)들의 어드레스로서 가상 어드레스(virtual arddress)와 물리 어드레스(physical address)가 혼용된다. 따라서, 통합 IOMMU는 트랜잭션의 어드레스가 가상 어드레스일 경우에만 트랜잭션의 어드레스를 물리 어드레스로 변환한다. 반면에, 통합 IOMMU는 트랜잭션의 어드레스가 물리 어드레스일 경우에는 트랜잭션을 어드레스 변환 없이 바이패스(bypass) 한다.Since the integrated IOMMU is implemented at the memory end, virtual addresses and physical addresses are mixed as the addresses of transactions on the bus. Therefore, the integrated IOMMU converts the address of the transaction into a physical address only when the address of the transaction is a virtual address. On the other hand, the integrated IOMMU bypasses the transaction without address translation if the address of the transaction is a physical address.

도 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 is a block diagram showing an SoC according to a first embodiment of the present invention. 1, an SoC 100 according to a first embodiment of the present invention includes first to sixth IP blocks 111 to 116, first and second local buses 121 and 122, A system bus 123, an integrated IOMMU 130, an IOMMU controller 140, a CPU 150 and a memory 160.

제 1 내지 제 3 IP 블록(111~113)은 제 1 로컬 버스(121) 및 시스템 버스(123)를 통해 트랜잭션을 통합 IOMMU(130)로 전달한다. 제 4 내지 제 6 IP 블록(114~116)은 제 2 로컬 버스(122) 및 시스템 버스(123)를 통해 트랜잭션을 통합 IOMMU(130)로 전달한다.The first to third IP blocks 111 to 113 transfer the transaction to the integrated IOMMU 130 through the first local bus 121 and the system bus 123. The fourth to sixth IP blocks 114 to 116 transfer the transaction to the integrated IOMMU 130 via the second local bus 122 and the system bus 123.

여기서, 제 1 및 제 2 로컬 버스(121, 122) 및 시스템 버스(123)에 적용되는 인터페이스 프로토콜(protocol)은 AXI(Advanced eXtensible Interface)라고 가정한다. 따라서, SoC(100)는 AXI로 인해 다중 아웃스탠딩 어드레스(multiple outstanding address) 기능과 데이터 인터리빙(data interleaving) 기능을 지원한다. 특히, 다중 아웃스탠딩 어드레스 기능으로 인해, 어드레스 정보에 대한 트랜잭션(이하, 어드레스 트랜잭션이라 칭함)과 데이터 정보에 대한 트랜잭션(이하, 데이터 트랜잭션이라 칭함)이 제공될 때, 데이터 트랜잭션의 전송이 완료되기 전에 다음 데이터 트랜잭션의 전송을 위한 어드레스 트랜잭션이 전송될 수 있다.Here, it is assumed that the interface protocol applied to the first and second local buses 121 and 122 and the system bus 123 is AXI (Advanced Extensible Interface). Accordingly, the SoC 100 supports a multiple outstanding address function and a data interleaving function due to AXI. In particular, due to the multi-out standing address function, when a transaction for address information (hereinafter referred to as an address transaction) and a transaction for data information (hereinafter referred to as a data transaction) are provided, An address transaction for the transmission of the next data transaction may be sent.

각각의 IP 블록(111~116)으로부터 전달되는 트랜잭션은 어드레스가 가상 어드레스인지 물리 어드레스인지 여부를 나타내는 필드 값을 포함한다. 이와 같은 가상 어드레스와 물리 어드레스를 구분하는 필드 값은 트랜잭션의 종류에 따라 다르게 지칭될 수 있다. 예를 들면, 쓰기 어드레스 정보에 대한 트랜잭션(이하, 쓰기 어드레스 트랜잭션이라 칭함)에 포함되는 필드 값은 AWUSER라고 지칭된다. 그리고, 읽기 어드레스 정보에 대한 트랜잭션(이하, 읽기 어드레스 트랜잭션이라 칭함)에 포함되는 필드 값은 ARUSER라고 지칭된다.The transaction transmitted from each of the IP blocks 111 to 116 includes a field value indicating whether the address is a virtual address or a physical address. The field value for distinguishing the virtual address and the physical address may be referred to differently depending on the type of the transaction. For example, a field value included in a transaction for write address information (hereinafter referred to as a write address transaction) is referred to as AWUSER. The field value included in the transaction for the read address information (hereinafter referred to as a read address transaction) is referred to as ARUSER.

AWUSER 및 ARUSER는 기본 값으로서 0으로 설정되고, 이는 트랜잭션의 어드레스가 물리 어드레스임을 나타내는 것으로 가정한다. 반면에, AWUSER 및 ARUSER가 1로 설정되면, 트랜잭션의 어드레스가 가상 어드레스임을 나타내는 것으로 가정한다.AWUSER and ARUSER are set to 0 as default values, which assume that the address of the transaction is a physical address. On the other hand, if AWUSER and ARUSER are set to 1, it is assumed that the address of the transaction is a virtual address.

통합 IOMMU(130)는 제 1 내지 제 6 IP 블록(111~116)에서 사용되는 가상 어드레스를 물리 어드레스로 변환한다. 즉, 통합 IOMMU(130)는 분산되어 있는 (fragmented) 물리 메모리 영역들을 연속적인 가상 어드레스로 맵핑(mapping)한다. 이로 인해, 물리 메모리 영역들이 연속적인 물리 어드레스로 지정되지 않더라도 효율적인 메모리 공간 활용이 가능하다. 따라서, 더욱 넓은 메모리 공간이 각각의 IP 블록에 할당될 수 있다. 참고로, 가상 어드레스는 장치 어드레스(device address) 또는 입출력 어드레스(I/O address)라고 지칭될 수 있다.The integrated IOMMU 130 converts the virtual addresses used in the first to sixth IP blocks 111 to 116 into physical addresses. That is, the integrated IOMMU 130 maps the fragmented physical memory areas to consecutive virtual addresses. This allows effective memory space utilization even if physical memory areas are not designated as consecutive physical addresses. Thus, a wider memory space can be allocated to each IP block. For reference, a virtual address may be referred to as a device address or an 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) 상의 트랜잭션들의 어드레스로서 가상 어드레스와 물리 어드레스가 혼용될 수 있음을 의미한다.Transactions of the first to third IP blocks 111 to 113 are transferred to the integrated IOMMU 130 via the first local bus 121 and the system bus 123. Transactions of the fourth to sixth IP blocks 114 to 116 are transferred to the integrated IOMMU 130 via the second local bus 122 and the system bus 123. Thereafter, the integrated IOMMU 130 performs address translation for the transactions transmitted through the buses 121 to 123 of the SoC 100. [ This means that the virtual address and the physical address can be mixed as the addresses of the transactions on the first and second local buses 121 and 122 and the system bus 123. [

여기서, 통합 IOMMU(130)는 AWUSER 또는 ARUSER에 따라 어드레스 변환 여부를 결정한다. 통합 IOMMU(130)는 AWUSER 또는 ARUSER가 가상 어드레스임을 나타내는 경우(AWUSER /ARUSER = 1)에는 트랜잭션의 어드레스를 물리 어드레스로 변환한다. 이후, 어드레스 변환을 거친 트랜잭션은 메모리(160)로 전달된다. 반면에, 통합 IOMMU(130)는 AWUSER 또는 ARUSER가 물리 어드레스임을 나타내는 경우(AWUSER /ARUSER = 0)에는 트랜잭션을 바이패스 한다.Here, the integrated IOMMU 130 determines whether or not to perform address conversion according to AWUSER or ARUSER. The integrated IOMMU 130 converts the transaction address into a physical address when AWUSER or ARUSER indicates a virtual address (AWUSER / ARUSER = 1). Thereafter, the addressed transaction is transferred to the memory 160. On the other hand, the integrated IOMMU 130 bypasses the transaction when AWUSER or ARUSER indicates that it is a physical address (AWUSER / ARUSER = 0).

통합 IOMMU(130)는 어드레스 변환을 위해 TLB(Translation Look-aside Buffer)에 저장되어 있는 어드레스 변환 테이블(table)을 참조한다. 만약, 어드레스 변환 테이블이 TLB에 로드(load)되어 있지 않은 경우에는 메모리(160)로부터 어드레스 변환 테이블을 읽어 들인 후에 어드레스 변환을 진행한다.The integrated IOMMU 130 refers to an address translation table stored in a Translation Look-aside Buffer (TLB) for address translation. If the address translation table is not loaded in the TLB, the address translation table is read from the memory 160 before the address translation is performed.

통합 IOMMU(130)는 어드레스 변환 중에 다음 트랜잭션의 어드레스 변환 여부를 판단할 수 있다. 만약, 통합 IOMMU(130)는 다음 트랜잭션에 대한 AWUSER 또는 ARUSER가 물리 어드레스임을 나타내는 경우(AWUSER /ARUSER = 0)에는 이전 트랜잭션에 대한 어드레스 변환 중이라도 다음 트랜잭션을 바이패스 할 수 있다.The integrated IOMMU 130 can determine whether the next transaction is address-converted during the address conversion. If the integrated IOMMU 130 indicates that AWUSER or ARUSER for the next transaction is a physical address (AWUSER / ARUSER = 0), then the next transaction can be bypassed even during address translation for the previous transaction.

IOMMU 컨트롤러(140)는 각각의 IP 블록(111~116)으로부터 전달되는 트랜잭션들의 어드레스가 가상 어드레스인지 물리 어드레스인지에 따라 트랜잭션 내의 AWUSER 또는 ARUSER을 설정하기 위한 어드레스 변환 신호(ATS)를 발생한다. 이때, AWUSER 또는 ARUSER는 어드레스 변환 신호(ATS)에 응답하여 0에서 1로 설정된다. 앞에서 설명한 바와 같이, AWUSER 또는 ARUSER는 기본 값으로서 0으로 설정되어 있으므로, IOMMU 컨트롤러(140)는 트랜잭션들의 어드레스가 논리 어드레스인 경우에만 어드레스 변환 신호(ATS)를 발생한다.The IOMMU controller 140 generates an address conversion signal (ATS) for setting AWUSER or ARUSER in the transaction according to whether the address of the transactions transmitted from each of the IP blocks 111 to 116 is a virtual address or a physical address. At this time, AWUSER or ARUSER is set from 0 to 1 in response to the address conversion signal (ATS). As described above, since the AWUSER or ARUSER is set to 0 as a default value, the IOMMU controller 140 generates the address translation signal (ATS) only when the addresses of the transactions are logical addresses.

IOMMU 컨트롤러(140)는 각각의 IP 블록(111~116)에서 출력되는 트랜잭션들의 어드레스가 가상 어드레스인지 물리 어드레스인지 여부를 나타내는 트랜잭션 상태 정보를 저장하기 위한 레지스터(141)를 포함할 수 있다. 여기서, 각각의 IP 블록(111~116)에 대한 트랜잭션 상태 정보는 CPU(150)로부터 제공된다. 따라서, IOMMU 컨트롤러(140)는 레지스터(141)에 저장되어 있는 트랜잭션 상태 정보를 참조하여 어드레스 변환 신호(ATS)의 발생 여부를 결정할 수 있다.The IOMMU controller 140 may include a register 141 for storing transaction state information indicating whether an address of a transaction output from each of the IP blocks 111 to 116 is a virtual address or a physical address. Here, the transaction status information for each of the IP blocks 111 to 116 is provided from the CPU 150. [ Accordingly, the IOMMU controller 140 can determine whether to generate the address conversion signal (ATS) by referring to the transaction state information stored in the register 141.

CPU(150)는 시스템 버스(123)에 연결되고, SoC(100)의 전반적인 동작을 제어한다. CPU(150)는 비록 도시되어 있지 않지만 잘 알려진 바와 같은 레지스터, 메모리 관리 유닛(Memory Management Unit, 이하 MMU라고 칭함) 등을 포함할 수 있다. 여기서, CPU(150)는 ARM(Advanced RISC Machine) 코어(core)를 기반으로 구현될 수 있다.The CPU 150 is connected to the system bus 123 and controls the overall operation of the SoC 100. The CPU 150 may include a register, a memory management unit (MMU), and the like, although not shown, as is well known. Here, the CPU 150 may be implemented based on an 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) 등의 불휘발성 메모리를 포함할 수 있다.The memory 160 stores data to be processed in the SoC 100. The memory 160 may include volatile memories such as static random access memory (SRAM), dynamic random access memory (DRAM), and synchronous dynamic random access memory (SDRAM). The memory 160 may be implemented as a ROM (Read Only Memory), a PROM (Programmable ROM), an EPROM (Electrically Programmable ROM), an EEPROM (Electrically Erasable and Programmable ROM), a flash memory, a PRAM RAM), RRAM (Resistive RAM), FRAM (Ferroelectric RAM), and the like.

메모리(160) 내의 각각의 영역은 물리 어드레스로 지정된다. 따라서, 가상 어드레스를 사용하는 IP 블록들이 메모리(160)에 접근하기 위해서는 IP 블록들의 어드레스가 물리 어드레스로 변환되어야 한다. 이와 관련하여, CPU(150)에서 사용되는 가상 어드레스는 MMU에 의해 어드레스 변환이 이루어진다. 반면에, 제 1 내지 제 6 IP 블록(111~116)에서 사용되는 가상 어드레스는 통합 IOMMU(130)에 의해 어드레스 변환이 이루어진다.Each area in the memory 160 is designated by a physical address. Accordingly, in order for the IP blocks using the virtual address to access the memory 160, the addresses of the IP blocks must be converted to physical addresses. In this regard, the virtual address used in the CPU 150 is address-converted by the MMU. On the other hand, the virtual addresses used in the first to sixth IP blocks 111 to 116 are address-converted by the integrated IOMMU 130. [

도 2는 본 발명의 제 1 실시 예에 따른 SoC의 동작을 설명하기 위한 순서도이다. 도 2를 참조하면, 우선, IP 블록으로부터 트랜잭션이 출력된다.(단계 S110). 이때, IOMMU 컨트롤러(140, 도 1 참조)는 트랜잭션의 어드레스가 가상 어드레스인지 물리 어드레스인지에 따라 어드레스 변환 신호(ATS)의 발생 여부를 결정한다(단계 S120). IOMMU 컨트롤러(140)는 트랜잭션의 어드레스가 가상 어드레스인 경우에는 어드레스 변환 신호(ATS)를 발생한다. 반면에, IOMMU 컨트롤러(140)는 트랜잭션의 어드레스가 물리 어드레스인 경우에는 어드레스 변환 신호(ATS)를 발생하지 않는다.2 is a flowchart illustrating an operation of the SoC according to the first embodiment of the present invention. Referring to FIG. 2, a transaction is output from an IP block (step S110). At this time, the IOMMU controller 140 (see FIG. 1) determines whether or not the address conversion signal ATS is generated according to whether the transaction address is a virtual address or a physical address (step S120). The IOMMU controller 140 generates an address conversion signal (ATS) when the address of the transaction is a virtual address. On the other hand, the IOMMU controller 140 does not generate the address conversion signal (ATS) when the address of the transaction is a physical address.

앞에서 설명한 바와 같이, AWUSER 또는 ARUSER는 기본 값으로서 0으로 설정되어 있다고 가정한다. 트랜잭션 내의 AWUSER 또는 ARUSER는 어드레스 변환 신호(ATS)에 응답하여 0에서 1로 설정된다. 이는 어드레스 변환 신호(ATS)가 발생하지 않으면, AWUSER 또는 ARUSER는 0으로 유지됨을 의미한다.As described above, it is assumed that AWUSER or ARUSER is set to 0 as a default value. AWUSER or ARUSER in the transaction is set from 0 to 1 in response to the address translation signal (ATS). This means that if no address translation signal (ATS) is generated, AWUSER or ARUSER is held at zero.

이후, 트랜잭션은 로컬 및 시스템 버스를 거쳐 통합 IOMMU(130, 도 1 참조)에 전달된다. 통합 IOMMU(130)는 AWUSER 또는 ARUSER가 0인지 1인지 여부를 판단한다. 통합 IOMMU(130)는 AWUSER 또는 ARUSER가 1이면, 트랜잭션의 어드레스를 가상 어드레스에서 물리 어드레스로 변환한다(단계 S150). 반면에, 통합 IOMMU(130)는 AWUSER 또는 ARUSER가 0이면, 트랜잭션을 바이패스 한다(단계 S160).Thereafter, the transaction is transferred to the integrated IOMMU 130 (see FIG. 1) via the local and system buses. The integrated IOMMU 130 determines whether AWUSER or ARUSER is 0 or 1. If AWUSER or ARUSER is 1, the integrated IOMMU 130 converts the address of the transaction from the virtual address to the physical address (step S150). On the other hand, if the AWUSER or ARUSER is 0, the integrated IOMMU 130 bypasses the transaction (step S160).

이와 같이, 본 발명의 실시 예에 따른 SoC는 통합 IOMMU를 메모리 단에 구현하여 어드레스 변환을 위해 사용되는 로직의 중복을 줄일 수 있다. 또한, SoC의 설계상 복잡도 및 전력소모를 줄일 수 있다.As described above, the SoC according to the embodiment of the present invention implements the integrated IOMMU at the memory end, thereby reducing redundancy of logic used for address conversion. Also, the complexity and power consumption of the SoC can be reduced by design.

통합 IOMMU가 메모리 단에 구현되어 있으므로 버스 상의 트랜잭션들의 어드레스로서 가상 어드레스와 물리 어드레스가 혼용된다. 트랜잭션들의 어드레스가 가상 어드레스인지 물리 어드레스인지 여부를 나타내는 정보로서 AXI 프로토콜에 의해 정의되는 AWUSER 또는 ARUSER가 이용된다. IOMMU 컨트롤러는 트랜잭션들의 어드레스가 가상 어드레스인지 물리 어드레스인지에 따라 트랜잭션 내의 AWUSER 또는 ARUSER을 설정하기 위한 어드레스 변환 신호를 발생한다. 이후, 통합 IOMMU는 AWUSER 또는 ARUSER를 참조하여 어드레스 변환 여부를 결정한다.Since the integrated IOMMU is implemented at the memory end, the virtual and physical addresses are mixed as the addresses of the transactions on the bus. AWUSER or ARUSER defined by the AXI protocol is used as information indicating whether the addresses of the transactions are virtual addresses or physical addresses. The IOMMU controller generates an address translation signal to set the AWUSER or ARUSER in the transaction depending on whether the address of the transactions is a virtual address or a physical address. Then, the integrated IOMMU determines whether the address is converted by referring to AWUSER or 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)를 포함한다.3 is a block diagram illustrating an SoC according to a second embodiment of the present invention. Referring to FIG. 3, the SoC 200 according to the second embodiment of the present invention includes first to sixth IP blocks 211 to 216, first and second local buses 221 and 222, A system bus 223, an integrated IOMMU 230, an IOMMU controller 240, a CPU 250 and a memory 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을 참조하여 이미 설명되었다. 따라서, 이하에서, 이에 대한 중복되는 설명은 생략한다.The first to third IP blocks 211 to 213 transfer the transaction to the integrated IOMMU 230 through the first local bus 221 and the system bus 223. The fourth to sixth IP blocks 214 to 216 transfer the transaction to the integrated IOMMU 230 via the second local bus 222 and the system bus 223. The first to sixth IP blocks 211 to 216, the first and second local buses 221 and 222, and the system bus 223 have already been described with reference to FIG. Therefore, a duplicate description thereof will be omitted below.

통합 IOMMU(230)는 제 1 내지 제 6 IP 블록(211~216)에서 사용되는 가상 어드레스를 물리 어드레스로 변환한다. 즉, 통합 IOMMU(230)는 SoC(200)의 버스들(221~223)을 통해 전달되는 트랜잭션들에 대한 어드레스 변환을 수행한다. 이는 제 1 및 제 2 로컬 버스(221, 222)와 시스템 버스(223) 상의 트랜잭션들의 어드레스로서 가상 어드레스와 물리 어드레스가 혼용될 수 있음을 의미한다.The integrated IOMMU 230 converts the virtual addresses used in the first to sixth IP blocks 211 to 216 into physical addresses. That is, the integrated IOMMU 230 performs address conversion for the transactions transmitted through the buses 221 to 223 of the SoC 200. [ This means that the virtual address and the physical address can be mixed as the addresses of the transactions on the first and second local buses 221 and 222 and the system bus 223.

통합 IOMMU(230)는 트랜잭션들 내의 IP 아이디 필드 값(IP_ID) 및 IOMMU 컨트롤러(240)로부터 제공되는 트랜잭션 상태 정보(SI)를 참조하여 트랜잭션들에 대한 어드레스 변환 여부를 결정한다.The integrated IOMMU 230 determines whether to convert the addresses for transactions by referring to the IP ID field value (IP_ID) in the transactions and the transaction state information (SI) provided from the IOMMU controller 240.

도 4는 본 발명의 제 2 실시 예에 따른 SoC에서 사용되는 IP 아이디 필드 값을 예시적으로 나타내는 표이다. 도 3 및 4를 참조하면, IP 아이디 필드 값(IP_ID)은 제 1 내지 제 6 IP 블록(211~216)을 구분하기 위해 서로 다른 값을 갖는다. 즉, IP 아이디 필드 값(IP_ID)을 참조하면 트랜잭션들이 어느 IP에서 전달되었는지를 알 수 있다. 참고로, IP 아이디 필드 값(IP_ID)은 AXI 프로토콜에 의해 정의될 수 있다.4 is a table illustrating an IP ID field value used in the SoC according to the second embodiment of the present invention. Referring to FIGS. 3 and 4, the IP ID field value IP_ID has a different value for distinguishing the first to sixth IP blocks 211 to 216. That is, referring to the IP ID field value (IP_ID), it is possible to know from which IP the transactions are transferred. For reference, the IP ID field value (IP_ID) can be defined by the AXI protocol.

또한, 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로 설정된다.The IP ID field value IP_ID may be defined by a topology between the IP blocks 211 to 216 and the buses 221 to 223. For example, the first and second bits of the IP ID field value (IP_ID) may be defined by a topology for the system bus 223. The first bit of the IP ID field value IP_ID is set to 1 to indicate the IP block carrying the transactions through the first node SN1 of the system bus 223. [ The second bit of the IP ID field value IP_ID is set to 1 to indicate the IP block carrying the transactions through the second node SN2 of the system bus 223. [

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로 설정된다.The third to fifth bits of the IP ID field value IP_ID may be defined by the topology for the local buses 221 and 222. [ The third bit of the IP ID field value IP_ID is set to 1 to indicate the IP block carrying the transactions through the first node L1_N1 of the first local bus 221. [ The fourth bit of the IP ID field value IP_ID is set to 1 to indicate the IP block carrying the transactions through the second node L1_N2 of the first local bus 221. [ The fifth bit of the IP ID field value IP_ID is set to 1 to indicate the IP block carrying the transactions through the third node L1_N3 of the first local bus 221. [

이와 같은 방법으로, 제 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로 설정된다.In this way, the third bit of the IP ID field value (IP_ID) is set to 1 to indicate the IP block carrying the transactions through the first node (L2_N1) of the second local bus 222. The fourth bit of the IP ID field value IP_ID is set to 1 to indicate the IP block carrying the transactions through the second node L2_N2 of the second local bus 222. [ The fifth bit of the IP ID field value IP_ID is set to 1 to indicate the IP block carrying the transactions through the third node L2_N3 of the second local bus 222. [

다시 도 3을 참조하면, 통합 IOMMU(230)는 전달되는 트랜잭션 내의 IP 아이디 필드 값(IP_ID)에 대응하는 트랜잭션 상태 정보(SI)를 통해 해당 트랜잭션의 어드레스가 가상 어드레스인지 물리 어드레스인지 여부를 판단한다. 통합 IOMMU(230)는 트랜잭션의 어드레스가 가상 어드레스이면 어드레스 변환을 수행한다. 반면에, 통합 IOMMU(230)는 트랜잭션의 어드레스가 물리 어드레스이면 트랜잭션을 바이패스 한다.Referring back to FIG. 3, the integrated IOMMU 230 determines whether the address of the corresponding transaction is a virtual address or a physical address through the transaction state information (SI) corresponding to the IP ID field value (IP_ID) in the transferred transaction . The integrated IOMMU 230 performs address translation if the address of the transaction is a virtual address. On the other hand, the integrated IOMMU 230 bypasses the transaction if the address of the transaction is a physical address.

통합 IOMMU(230)는 어드레스 변환을 위해 TLB에 저장되어 있는 어드레스 변환 테이블을 참조한다. 만약, 어드레스 변환 테이블이 TLB에 로드되어 있지 않은 경우에는 메모리(260)로부터 어드레스 변환 테이블을 읽어 들인 후에 어드레스 변환을 진행한다.The integrated IOMMU 230 refers to the address translation table stored in the TLB for address translation. If the address translation table is not loaded in the TLB, the address translation table is read from the memory 260 before the address translation is performed.

IOMMU 컨트롤러(240)는 각각의 IP 블록(211~216)에서 출력되는 트랜잭션들의 어드레스가 가상 어드레스인지 물리 어드레스인지 여부를 나타내는 트랜잭션 상태 정보(SI)를 저장하기 위한 레지스터(241)를 포함할 수 있다. 여기서, 각각의 IP 블록(211~216)에 대한 트랜잭션 상태 정보(SI)는 CPU(250)로부터 제공된다. IOMMU 컨트롤러(240)는 IP 아이디 필드 값(IP_ID)에 대응하는 트랜잭션 상태 정보(SI)를 통합 IOMMU(230)에 제공한다.The IOMMU controller 240 may include a register 241 for storing transaction state information SI indicating whether the address of the transactions output from each of the IP blocks 211 to 216 is a virtual address or a physical address . Here, the transaction state information SI for each of the IP blocks 211 to 216 is provided from the CPU 250. IOMMU controller 240 provides transaction state information (SI) corresponding to the IP ID field value (IP_ID) to integrated IOMMU 230.

CPU(250) 및 메모리(260)는 는 도 1을 참조하여 이미 설명되었다. 따라서, 이하에서, 이에 대한 중복되는 설명은 생략한다.The CPU 250 and the memory 260 have already been described with reference to Fig. Therefore, a duplicate description thereof will be omitted below.

도 5는 본 발명의 제 2 실시 예에 따른 SoC의 동작을 설명하기 위한 순서도이다. 도 5를 참조하면, 우선, IP 블록으로부터 트랜잭션이 출력된다.(단계 S210). 이때, 통합 IOMMU(230, 도 1 참조)는 트랜잭션 내의 IP 아이디 필드 값(IP_ID)에 대응하는 트랜잭션 상태 정보(SI)를 확인한다(단계 S220). 앞에서 언급한 바와 같이, 트랜잭션 상태 정보(SI)는 IOMMU 컨트롤러(240, 도 1 참조)로부터 제공된다.5 is a flowchart illustrating an operation of the SoC according to the second embodiment of the present invention. Referring to FIG. 5, a transaction is output from an IP block (step S210). At this time, the integrated IOMMU 230 (see FIG. 1) confirms the transaction state information SI corresponding to the IP ID field value (IP_ID) in the transaction (step S220). As mentioned above, the transaction state information SI is provided from the IOMMU controller 240 (see FIG. 1).

통합 IOMMU(230)는 트랜잭션 상태 정보(SI)를 통해 해당 트랜잭션의 어드레스가 가상 어드레스인지 물리 어드레스인지를 판단한다(단계 S230). 이후, 통합 IOMMU(230)는 트랜잭션의 어드레스가 가상 어드레스이면 어드레스 변환을 수행한다(단계 S240). 반면에, 통합 IOMMU(130)는 트랜잭션의 어드레스가 물리 어드레스이면 트랜잭션을 바이패스 한다(단계 S250).The integrated IOMMU 230 determines whether the address of the corresponding transaction is a virtual address or a physical address through the transaction state information SI (step S230). Thereafter, the integrated IOMMU 230 performs address translation if the address of the transaction is a virtual address (step S240). On the other hand, the integrated IOMMU 130 bypasses the transaction if the address of the transaction is a physical address (step S250).

이와 같이, 본 발명의 실시 예에 따른 SoC는 통합 IOMMU를 메모리 단에 구현하여 어드레스 변환을 위해 사용되는 로직의 중복을 줄일 수 있다. 또한, SoC의 설계상 복잡도 및 전력소모를 줄일 수 있다.As described above, the SoC according to the embodiment of the present invention implements the integrated IOMMU at the memory end, thereby reducing redundancy of logic used for address conversion. Also, the complexity and power consumption of the SoC can be reduced by design.

통합 IOMMU가 메모리 단에 구현되어 있으므로 버스 상의 트랜잭션들의 어드레스로서 가상 어드레스와 물리 어드레스가 혼용된다. 통합 IOMMU는 IP 아이디 필드 값(IP_ID) 및 이에 대응하는 트랜잭션 상태 정보를 참조하여 어드레스 변환 여부를 결정한다.Since the integrated IOMMU is implemented at the memory end, the virtual and physical addresses are mixed as the addresses of the transactions on the bus. The integrated IOMMU determines whether to convert the address by referring to the IP ID field value (IP_ID) and the corresponding transaction state information.

본 발명의 범위 또는 기술적 사상을 벗어나지 않고 본 발명의 구조가 다양하게 수정되거나 변경될 수 있음은 이 분야에 숙련된 자들에게 자명하다. 상술한 내용을 고려하여 볼 때, 만약 본 발명의 수정 및 변경이 아래의 청구항들 및 동등물의 범주 내에 속한다면, 본 발명이 이 발명의 변경 및 수정을 포함하는 것으로 여겨진다.It will be apparent to those skilled in the art that the structure of the present invention can be variously modified or changed without departing from the scope or spirit of the present invention. In view of the foregoing, it is intended that the present invention cover the modifications and variations of this invention provided they fall within the scope of the following claims and equivalents.

100: 시스템 온 칩(SoC) 111: IP 블록
121, 122: 로컬 버스 123: 시스템 버스
130: 통합 IOMMU 140: IOMMU 컨트롤러
150: CPU 160: 메모리
100: System on Chip (SoC) 111: IP block
121, 122: local bus 123: system bus
130: Integrated IOMMU 140: IOMMU controller
150: CPU 160: Memory

Claims (20)

중앙 처리 장치;
메모리;
제 1 및 제 2 버스를 포함하는 시스템 버스;
상기 제 1 버스 또는 상기 제 2 버스에 연결되며, IP 아이디 필드 값 및 가상 어드레스와 물리 어드레스를 구분하기 위한 필드 값을 포함하는 트랜잭션을 생성하여 상기 제 1 버스 또는 상기 제 2 버스에 전달하는 복수의 IP 블록들;
상기 메모리와 상기 시스템 버스 사이에 연결되고, 상기 필드 값에 따라 상기 시스템 버스로부터 전달되는 상기 트랜잭션에 대한 어드레스 변환 여부를 결정하는 통합 입출력 메모리 관리 유닛; 그리고
상기 중앙 처리 장치로부터 제공되는 트랜잭션 상태 정보에 기초하여 상기 필드 값을 설정하기 위한 어드레스 변환 신호를 발생하는 컨트롤러를 포함하되,
상기 IP 아이디 필드 값은 상기 트랜잭션이 상기 제 1 버스를 통해 전송되었는지 또는 상기 제 2 버스를 통해 전송되었는지 여부를 표시하고,
상기 트랜잭션 상태 정보는 상기 트랜잭션의 어드레스가 가상 어드레스 혹은 물리 어드레스인지 여부를 표시하는 시스템 온 칩.
A central processing unit;
Memory;
A system bus including first and second buses;
And a second bus connected to the first bus or the second bus for generating a transaction including a field value for distinguishing an IP ID field value and a virtual address from a physical address and transmitting the transaction to the first bus or the second bus IP blocks;
An integrated input / output memory management unit coupled between the memory and the system bus, the integrated input / output memory management unit determining whether address conversion is to be performed on the transaction transferred from the system bus in accordance with the field value; And
And a controller for generating an address conversion signal for setting the field value based on the transaction state information provided from the central processing unit,
Wherein the IP ID field value indicates whether the transaction was transmitted via the first bus or the second bus,
Wherein the transaction state information indicates whether the address of the transaction is a virtual address or a physical address.
제 1 항에 있어서,
상기 통합 입출력 메모리 관리 유닛은 상기 메모리의 물리 메모리 영역들을 비연속적으로 복수의 가상 어드레스들로 맵핑하는 시스템 온 칩.
The method according to claim 1,
Wherein the integrated input / output memory management unit discontinuously maps the physical memory areas of the memory to a plurality of virtual addresses.
제 1 항에 있어서,
상기 통합 입출력 메모리 관리 유닛은 상기 필드 값이 상기 트랜잭션의 어드레스가 가상 어드레스임을 나타내는 값으로 설정되어 있으면, 상기 트랜잭션의 어드레스를 물리 어드레스로 변환하는 시스템 온 칩.
The method according to claim 1,
And the integrated input / output memory management unit converts the address of the transaction into a physical address if the field value is set to a value indicating that the address of the transaction is a virtual address.
제 1 항에 있어서,
상기 통합 입출력 메모리 관리 유닛은 상기 필드 값이 상기 트랜잭션의 어드레스가 물리 어드레스임을 나타내는 값으로 설정되어 있으면, 상기 트랜잭션을 바이패스 하는 시스템 온 칩.
The method according to claim 1,
And the integrated input / output memory management unit bypasses the transaction if the field value is set to a value indicating that the address of the transaction is a physical address.
제 1 항에 있어서,
상기 통합 입출력 메모리 관리 유닛은 상기 트랜잭션에 대한 어드레스 변환 중에 다음 트랜잭션에 대한 어드레스 변환 여부를 판단하는 시스템 온 칩.
The method according to claim 1,
Wherein the integrated input / output memory management unit determines whether address conversion is to be performed for the next transaction during address conversion for the transaction.
제 5 항에 있어서,
상기 통합 입출력 메모리 관리 유닛은 상기 필드 값이 상기 다음 트랜잭션의 어드레스가 물리 어드레스임을 나타내는 값으로 설정되어 있으면, 상기 트랜잭션에 대한 어드레스 변환 중에 상기 다음 트랜잭션을 바이패스 하는 시스템 온 칩.
6. The method of claim 5,
The integrated input / output memory management unit bypasses the next transaction during address translation for the transaction if the field value is set to a value indicating that the address of the next transaction is a physical address.
제 1 항에 있어서,
상기 필드 값은 기본 값으로 상기 트랜잭션의 어드레스가 물리 어드레스임을 나타내는 값으로 설정되어 있는 시스템 온 칩.
The method according to claim 1,
Wherein the field value is set to a value indicating that the address of the transaction is a physical address as a default value.
제 7 항에 있어서,
상기 필드 값은 상기 어드레스 변환 신호에 기초하여 상기 트랜잭션의 어드레스가 가상 어드레스임을 나타내는 값으로 설정되는 시스템 온 칩.
8. The method of claim 7,
Wherein the field value is set to a value indicating that the address of the transaction is a virtual address based on the address translation signal.
제 1 항에 있어서,
트랜잭션 상태 정보를 제공하는 중앙처리장치를 더 포함하고,
상기 컨트롤러는 상기 트랜잭션 상태 정보에 기초하여 상기 어드레스 변환 신호의 발생 여부를 결정하며, 상기 트랜잭션 상태 정보를 저장하기 위한 레지스터를 포함하는 시스템 온 칩.
The method according to claim 1,
Further comprising a central processing unit for providing transaction state information,
Wherein the controller determines whether to generate the address translation signal based on the transaction state information, and includes a register for storing the transaction state information.
제 1 항에 있어서,
상기 복수의 IP 블록들의 메모리 액세스는 상기 통합 입출력 메모리 관리 유닛에 의해 관리되고, 상기 중앙 처리 장치의 메모리 액세스는 상기 중앙 처리 장치 내에 포함된 메모리 관리 유닛에 의해 관리되는 시스템 온 칩.
The method according to claim 1,
Wherein the memory access of the plurality of IP blocks is managed by the integrated input / output memory management unit, and the memory access of the central processing unit is managed by a memory management unit included in the central processing unit.
중앙 처리 장치;
메모리;
제 1 및 제 2 버스를 포함하는 시스템 버스;
상기 제 1 버스 또는 상기 제 2 버스에 연결되며, 트랜잭션을 생성하여 상기 제 1 버스 또는 상기 제 2 버스에 전달하는 복수의 IP 블록들;
상기 메모리와 상기 시스템 버스 사이에 연결되고, 상기 시스템 버스로부터 전달되는 상기 트랜잭션에 대한 어드레스 변환을 수행하는 통합 입출력 메모리 관리 유닛; 및
상기 트랜잭션의 어드레스가 가상 어드레스인지 물리 어드레스인지 여부를 나타내는 트랜잭션 상태 정보를 상기 통합 입출력 메모리 관리 유닛에 제공하는 컨트롤러를 포함하고,
상기 트랜잭션은 상기 트랜잭션이 상기 제 1 버스를 통해 전송되었는지 또는 상기 제 2 버스를 통해 전송되었는지를 표시하는 IP 아이디 필드 값을 포함하고,
상기 트랜잭션 상태 정보는 상기 중앙 처리 장치로부터 제공되어 상기 컨트롤러에 저장되는 시스템 온 칩.
A central processing unit;
Memory;
A system bus including first and second buses;
A plurality of IP blocks connected to the first bus or the second bus, the plurality of IP blocks generating and transmitting a transaction to the first bus or the second bus;
An integrated input / output memory management unit, connected between the memory and the system bus, for performing address translation for the transaction transferred from the system bus; And
And a controller for providing the integrated IO memory management unit with transaction state information indicating whether the address of the transaction is a virtual address or a physical address,
Wherein the transaction comprises an IP ID field value indicating whether the transaction was sent via the first bus or the second bus,
Wherein the transaction state information is provided from the central processing unit and stored in the controller.
제 11 항에 있어서,
상기 통합 입출력 메모리 관리 유닛은 상기 IP 아이디 필드 값에 대응하는 트랜잭션 상태 정보를 참조하여 상기 트랜잭션에 대한 어드레스 변환 여부를 결정하는 시스템 온 칩.
12. The method of claim 11,
Wherein the integrated input / output memory management unit determines whether an address conversion is to be performed on the transaction by referring to the transaction state information corresponding to the IP ID field value.
제 11 항에 있어서,
상기 통합 입출력 메모리 관리 유닛은 상기 IP 아이디 필드 값에 대응하는 트랜잭션 상태 정보를 통해 상기 트랜잭션의 어드레스가 가상 어드레스임이 확인되면, 상기 트랜잭션의 어드레스를 물리 어드레스로 변환하는 시스템 온 칩.
12. The method of claim 11,
Wherein the integrated input / output memory management unit converts an address of the transaction into a physical address when the address of the transaction is determined to be a virtual address through transaction state information corresponding to the IP ID field value.
제 11 항에 있어서,
상기 통합 입출력 메모리 관리 유닛은 상기 IP 아이디 필드 값에 대응하는 트랜잭션 상태 정보를 통해 상기 트랜잭션의 어드레스가 물리 어드레스임이 확인되면, 상기 트랜잭션을 바이패스 하는 시스템 온 칩.
12. The method of claim 11,
Wherein the integrated input / output memory management unit bypasses the transaction when the address of the transaction is determined to be a physical address through the transaction state information corresponding to the IP ID field value.
제 11 항에 있어서,
상기 IP 아이디 필드 값은 상기 복수의 IP 블록들과 상기 시스템 버스 사이의 토폴로지에 의해 정의되는 시스템 온 칩.
12. The method of claim 11,
Wherein the IP ID field value is defined by a topology between the plurality of IP blocks and the system bus.
제 11 항에 있어서,
상기 통합 입출력 메모리 관리 유닛은 어드레스 변환 테이블을 저장하기 위한 TLB(Translation Look-aside Buffer)를 포함하는 시스템 온 칩.
12. The method of claim 11,
Wherein the integrated input / output memory management unit includes a Translation Look-aside Buffer (TLB) for storing an address translation table.
제 16 항에 있어서,
상기 통합 입출력 메모리 관리 유닛은 상기 어드레스 변환 테이블을 참조하여 상기 트랜잭션에 대한 어드레스 변환을 수행하는 시스템 온 칩.
17. The method of claim 16,
And the integrated input / output memory management unit performs address conversion for the transaction with reference to the address conversion table.
제 16 항에 있어서,
상기 통합 입출력 메모리 관리 유닛은 상기 TLB에 상기 어드레스 변환 테이블이 저장되어 있지 않은 경우에는 상기 메모리로부터 상기 어드레스 변환 테이블을 읽어 들인 후에 상기 트랜잭션에 대한 어드레스 변환을 진행하는 시스템 온 칩.
17. The method of claim 16,
And the integrated input / output memory management unit reads the address translation table from the memory if the address translation table is not stored in the TLB, and then proceeds to address translation for the transaction.
메모리 및 복수의 IP 블록들을 포함하는 시스템 온 칩의 트랜잭션 관리 방법에 있어서:
제 1 버스 또는 제 2 버스에 연결되는 상기 복수의 IP 블록들 중 하나로부터 상기 제 1 버스 또는 상기 제 2 버스를 통해 트랜잭션을 출력하는 단계;
상기 트랜잭션이 상기 제 1 버스를 통해 전송되었는지 또는 상기 제 2 버스를 통해 전송되었는지 여부를 표시하는 IP 아이디 필드 값 및 상기 트랜잭션의 어드레스가 가상 어드레스 또는 물리 어드레스 인지 여부를 표시하는 필드 값을 상기 트랜잭션과 함께 제공하는 단계;
중앙 처리 장치로부터 제공되는 트랜잭션 상태 정보에 기초하여 상기 필드 값을 설정하기 위한 어드레스 변환 신호를 제공하는 단계;
상기 어드레스 변환 신호에 기초하여 상기 필드 값을 제 1 값 또는 제 2 값으로 설정하는 단계;
상기 메모리의 입력 단에 연결된 통합 입출력 메모리 관리 유닛을 통해 상기 트랜잭션, 상기 IP 아이디 필드 값 및 상기 필드 값을 수신하는 단계; 그리고
상기 통합 입출력 메모리 관리 유닛에 의해 상기 필드 값에 따라 어드레스 전환 여부를 결정하는 단계를 포함하되,
상기 필드 값이 제 1 값인 경우 상기 통합 입출력 메모리 관리 유닛은 상기 트랜잭션의 어드레스를 전환하고, 상기 필드 값이 제 2 값인 경우 상기 통합 입출력 메모리 관리 유닛은 상기 트랜잭션의 어드레스를 바이패스하고,
상기 트랜잭션 상태 정보는 상기 트랜잭션의 어드레스가 가상 어드레스인지 또는 물리 어드레스인지 여부를 표시하는 트랜잭션 관리 방법.
A system-on-chip transaction management method comprising a memory and a plurality of IP blocks, the method comprising:
Outputting a transaction via the first bus or the second bus from one of the plurality of IP blocks connected to a first bus or a second bus;
An IP ID field value indicating whether the transaction was transmitted via the first bus or the second bus and a field value indicating whether the address of the transaction is a virtual address or a physical address, A step provided together;
Providing an address translation signal for setting the field value based on transaction state information provided from a central processing unit;
Setting the field value to a first value or a second value based on the address conversion signal;
Receiving the transaction, the IP ID field value, and the field value through an integrated IO memory management unit connected to an input end of the memory; And
And determining whether to switch the address according to the field value by the integrated input / output memory management unit,
The integrated input / output memory management unit switches the address of the transaction when the field value is the first value, and bypasses the address of the transaction when the field value is the second value,
Wherein the transaction state information indicates whether the address of the transaction is a virtual address or a physical address.
제 19 항에 있어서,
상기 제 1 값은 상기 트랜잭션의 어드레스가 가상 어드레스임을 표시하고, 상기 제 2 값은 상기 트랜잭션의 어드레스가 물리 어드레스임을 표시하는 트랜잭션 관리 방법.
20. The method of claim 19,
Wherein the first value indicates that the address of the transaction is a virtual address and the second value indicates that the address of the transaction is a physical address.
KR1020100039616A 2010-04-28 2010-04-28 System on chip including unified input/output memory management unit KR101781617B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020100039616A KR101781617B1 (en) 2010-04-28 2010-04-28 System on chip including unified input/output memory management unit
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 (en) 2010-04-28 2010-04-28 System on chip including unified input/output memory management unit

Publications (2)

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

Family

ID=44859237

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100039616A KR101781617B1 (en) 2010-04-28 2010-04-28 System on chip including unified input/output memory management unit

Country Status (2)

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

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102541132B (en) * 2011-12-27 2014-02-05 东南大学 In-chip power conversion control circuit of system chip based on system bus
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 (en) * 2014-08-08 2016-02-17 삼성전자주식회사 Electronic device, On-Chip memory and operating method of the on-chip memory
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 (en) * 2020-04-29 2021-10-29 St Microelectronics Srl PROCEDURE FOR ACCESSING A MEMORY AND CORRESPONDING CIRCUIT
CN112667541B (en) * 2020-12-15 2023-06-02 厦门智多晶科技有限公司 IP dynamic configuration circuit and FPGA
US20220414022A1 (en) * 2021-06-25 2022-12-29 Intel Corporation Apparatus, system, and method for secure memory access control

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 (en) * 2002-07-25 2007-12-26 株式会社日立製作所 Semiconductor integrated circuit
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 (en) 2005-01-05 2007-07-03 광주과학기술원 Intellectual Property Module for System on Chip
KR20060112349A (en) 2005-04-26 2006-11-01 삼성전자주식회사 Bus system and bus data processing method for system on chip
KR100797468B1 (en) 2005-12-14 2008-01-24 엘지전자 주식회사 Apparatus and method for interfacing system bus with IP, and computer-readable recording media for storing computer program
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
KR20110120094A (en) 2011-11-03
US20110271075A1 (en) 2011-11-03
US9361239B2 (en) 2016-06-07

Similar Documents

Publication Publication Date Title
KR101781617B1 (en) System on chip including unified input/output memory management unit
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 (en) Data processing system and method having address translation bypass
CN100472494C (en) System and method for implementing memory mediation of supporting multi-bus multi-type memory device
JP5681782B2 (en) On-die system fabric block control
JP6660374B2 (en) Memory virtualization for programmable logic
US9021169B2 (en) Bus system including ID converter and converting method thereof
US8713233B2 (en) Interconnect, bus system with interconnect and bus system operating method
JP2005050324A (en) Interface conversion system and its method
GB2485701A (en) Using a central interface and a core specific shim to connect a computer bus to a core using an on chip protocol
WO2021120623A1 (en) Data transmission method and apparatus, and related assembly
CN105205025A (en) Chip interconnection method, chips and device
JP2013088879A (en) Information processor
US9697118B1 (en) Memory controller with interleaving and arbitration scheme
US8359419B2 (en) System LSI having plural buses
KR20160046883A (en) Mesh performance improvement using dual voltage data transfer
US10445267B2 (en) Direct memory access (DMA) unit with address alignment
US20190286606A1 (en) Network-on-chip and computer system including the same
KR101690568B1 (en) Network on a chip socket protocol
JP7383645B2 (en) Hardware-based virtual-to-physical address translation for programmable logical masters in systems-on-chip
CN116745754A (en) System and method for accessing remote resource

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