KR101781617B1 - System on chip including unified input/output memory management unit - Google Patents
System on chip including unified input/output memory management unit Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/04—Addressing variable-length words or parts of words
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1081—Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0038—System on Chip
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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: 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
제 1 내지 제 3 IP 블록(111~113)은 제 1 로컬 버스(121) 및 시스템 버스(123)를 통해 트랜잭션을 통합 IOMMU(130)로 전달한다. 제 4 내지 제 6 IP 블록(114~116)은 제 2 로컬 버스(122) 및 시스템 버스(123)를 통해 트랜잭션을 통합 IOMMU(130)로 전달한다.The first to
여기서, 제 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
각각의 IP 블록(111~116)으로부터 전달되는 트랜잭션은 어드레스가 가상 어드레스인지 물리 어드레스인지 여부를 나타내는 필드 값을 포함한다. 이와 같은 가상 어드레스와 물리 어드레스를 구분하는 필드 값은 트랜잭션의 종류에 따라 다르게 지칭될 수 있다. 예를 들면, 쓰기 어드레스 정보에 대한 트랜잭션(이하, 쓰기 어드레스 트랜잭션이라 칭함)에 포함되는 필드 값은 AWUSER라고 지칭된다. 그리고, 읽기 어드레스 정보에 대한 트랜잭션(이하, 읽기 어드레스 트랜잭션이라 칭함)에 포함되는 필드 값은 ARUSER라고 지칭된다.The transaction transmitted from each of the
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
제 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
여기서, 통합 IOMMU(130)는 AWUSER 또는 ARUSER에 따라 어드레스 변환 여부를 결정한다. 통합 IOMMU(130)는 AWUSER 또는 ARUSER가 가상 어드레스임을 나타내는 경우(AWUSER /ARUSER = 1)에는 트랜잭션의 어드레스를 물리 어드레스로 변환한다. 이후, 어드레스 변환을 거친 트랜잭션은 메모리(160)로 전달된다. 반면에, 통합 IOMMU(130)는 AWUSER 또는 ARUSER가 물리 어드레스임을 나타내는 경우(AWUSER /ARUSER = 0)에는 트랜잭션을 바이패스 한다.Here, the
통합 IOMMU(130)는 어드레스 변환을 위해 TLB(Translation Look-aside Buffer)에 저장되어 있는 어드레스 변환 테이블(table)을 참조한다. 만약, 어드레스 변환 테이블이 TLB에 로드(load)되어 있지 않은 경우에는 메모리(160)로부터 어드레스 변환 테이블을 읽어 들인 후에 어드레스 변환을 진행한다.The
통합 IOMMU(130)는 어드레스 변환 중에 다음 트랜잭션의 어드레스 변환 여부를 판단할 수 있다. 만약, 통합 IOMMU(130)는 다음 트랜잭션에 대한 AWUSER 또는 ARUSER가 물리 어드레스임을 나타내는 경우(AWUSER /ARUSER = 0)에는 이전 트랜잭션에 대한 어드레스 변환 중이라도 다음 트랜잭션을 바이패스 할 수 있다.The
IOMMU 컨트롤러(140)는 각각의 IP 블록(111~116)으로부터 전달되는 트랜잭션들의 어드레스가 가상 어드레스인지 물리 어드레스인지에 따라 트랜잭션 내의 AWUSER 또는 ARUSER을 설정하기 위한 어드레스 변환 신호(ATS)를 발생한다. 이때, AWUSER 또는 ARUSER는 어드레스 변환 신호(ATS)에 응답하여 0에서 1로 설정된다. 앞에서 설명한 바와 같이, AWUSER 또는 ARUSER는 기본 값으로서 0으로 설정되어 있으므로, IOMMU 컨트롤러(140)는 트랜잭션들의 어드레스가 논리 어드레스인 경우에만 어드레스 변환 신호(ATS)를 발생한다.The
IOMMU 컨트롤러(140)는 각각의 IP 블록(111~116)에서 출력되는 트랜잭션들의 어드레스가 가상 어드레스인지 물리 어드레스인지 여부를 나타내는 트랜잭션 상태 정보를 저장하기 위한 레지스터(141)를 포함할 수 있다. 여기서, 각각의 IP 블록(111~116)에 대한 트랜잭션 상태 정보는 CPU(150)로부터 제공된다. 따라서, IOMMU 컨트롤러(140)는 레지스터(141)에 저장되어 있는 트랜잭션 상태 정보를 참조하여 어드레스 변환 신호(ATS)의 발생 여부를 결정할 수 있다.The
CPU(150)는 시스템 버스(123)에 연결되고, SoC(100)의 전반적인 동작을 제어한다. CPU(150)는 비록 도시되어 있지 않지만 잘 알려진 바와 같은 레지스터, 메모리 관리 유닛(Memory Management Unit, 이하 MMU라고 칭함) 등을 포함할 수 있다. 여기서, CPU(150)는 ARM(Advanced RISC Machine) 코어(core)를 기반으로 구현될 수 있다.The
메모리(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
메모리(160) 내의 각각의 영역은 물리 어드레스로 지정된다. 따라서, 가상 어드레스를 사용하는 IP 블록들이 메모리(160)에 접근하기 위해서는 IP 블록들의 어드레스가 물리 어드레스로 변환되어야 한다. 이와 관련하여, CPU(150)에서 사용되는 가상 어드레스는 MMU에 의해 어드레스 변환이 이루어진다. 반면에, 제 1 내지 제 6 IP 블록(111~116)에서 사용되는 가상 어드레스는 통합 IOMMU(130)에 의해 어드레스 변환이 이루어진다.Each area in the
도 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
앞에서 설명한 바와 같이, 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
이와 같이, 본 발명의 실시 예에 따른 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
제 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
통합 IOMMU(230)는 제 1 내지 제 6 IP 블록(211~216)에서 사용되는 가상 어드레스를 물리 어드레스로 변환한다. 즉, 통합 IOMMU(230)는 SoC(200)의 버스들(221~223)을 통해 전달되는 트랜잭션들에 대한 어드레스 변환을 수행한다. 이는 제 1 및 제 2 로컬 버스(221, 222)와 시스템 버스(223) 상의 트랜잭션들의 어드레스로서 가상 어드레스와 물리 어드레스가 혼용될 수 있음을 의미한다.The
통합 IOMMU(230)는 트랜잭션들 내의 IP 아이디 필드 값(IP_ID) 및 IOMMU 컨트롤러(240)로부터 제공되는 트랜잭션 상태 정보(SI)를 참조하여 트랜잭션들에 대한 어드레스 변환 여부를 결정한다.The
도 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
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
이와 같은 방법으로, 제 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
다시 도 3을 참조하면, 통합 IOMMU(230)는 전달되는 트랜잭션 내의 IP 아이디 필드 값(IP_ID)에 대응하는 트랜잭션 상태 정보(SI)를 통해 해당 트랜잭션의 어드레스가 가상 어드레스인지 물리 어드레스인지 여부를 판단한다. 통합 IOMMU(230)는 트랜잭션의 어드레스가 가상 어드레스이면 어드레스 변환을 수행한다. 반면에, 통합 IOMMU(230)는 트랜잭션의 어드레스가 물리 어드레스이면 트랜잭션을 바이패스 한다.Referring back to FIG. 3, the
통합 IOMMU(230)는 어드레스 변환을 위해 TLB에 저장되어 있는 어드레스 변환 테이블을 참조한다. 만약, 어드레스 변환 테이블이 TLB에 로드되어 있지 않은 경우에는 메모리(260)로부터 어드레스 변환 테이블을 읽어 들인 후에 어드레스 변환을 진행한다.The
IOMMU 컨트롤러(240)는 각각의 IP 블록(211~216)에서 출력되는 트랜잭션들의 어드레스가 가상 어드레스인지 물리 어드레스인지 여부를 나타내는 트랜잭션 상태 정보(SI)를 저장하기 위한 레지스터(241)를 포함할 수 있다. 여기서, 각각의 IP 블록(211~216)에 대한 트랜잭션 상태 정보(SI)는 CPU(250)로부터 제공된다. IOMMU 컨트롤러(240)는 IP 아이디 필드 값(IP_ID)에 대응하는 트랜잭션 상태 정보(SI)를 통합 IOMMU(230)에 제공한다.The
CPU(250) 및 메모리(260)는 는 도 1을 참조하여 이미 설명되었다. 따라서, 이하에서, 이에 대한 중복되는 설명은 생략한다.The
도 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
이와 같이, 본 발명의 실시 예에 따른 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.
상기 통합 입출력 메모리 관리 유닛은 상기 메모리의 물리 메모리 영역들을 비연속적으로 복수의 가상 어드레스들로 맵핑하는 시스템 온 칩.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.
상기 통합 입출력 메모리 관리 유닛은 상기 필드 값이 상기 트랜잭션의 어드레스가 가상 어드레스임을 나타내는 값으로 설정되어 있으면, 상기 트랜잭션의 어드레스를 물리 어드레스로 변환하는 시스템 온 칩.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.
상기 통합 입출력 메모리 관리 유닛은 상기 필드 값이 상기 트랜잭션의 어드레스가 물리 어드레스임을 나타내는 값으로 설정되어 있으면, 상기 트랜잭션을 바이패스 하는 시스템 온 칩.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.
상기 통합 입출력 메모리 관리 유닛은 상기 트랜잭션에 대한 어드레스 변환 중에 다음 트랜잭션에 대한 어드레스 변환 여부를 판단하는 시스템 온 칩.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.
상기 통합 입출력 메모리 관리 유닛은 상기 필드 값이 상기 다음 트랜잭션의 어드레스가 물리 어드레스임을 나타내는 값으로 설정되어 있으면, 상기 트랜잭션에 대한 어드레스 변환 중에 상기 다음 트랜잭션을 바이패스 하는 시스템 온 칩.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.
상기 필드 값은 기본 값으로 상기 트랜잭션의 어드레스가 물리 어드레스임을 나타내는 값으로 설정되어 있는 시스템 온 칩.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.
상기 필드 값은 상기 어드레스 변환 신호에 기초하여 상기 트랜잭션의 어드레스가 가상 어드레스임을 나타내는 값으로 설정되는 시스템 온 칩.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.
트랜잭션 상태 정보를 제공하는 중앙처리장치를 더 포함하고,
상기 컨트롤러는 상기 트랜잭션 상태 정보에 기초하여 상기 어드레스 변환 신호의 발생 여부를 결정하며, 상기 트랜잭션 상태 정보를 저장하기 위한 레지스터를 포함하는 시스템 온 칩.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.
상기 복수의 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.
상기 통합 입출력 메모리 관리 유닛은 상기 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.
상기 통합 입출력 메모리 관리 유닛은 상기 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.
상기 통합 입출력 메모리 관리 유닛은 상기 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.
상기 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.
상기 통합 입출력 메모리 관리 유닛은 어드레스 변환 테이블을 저장하기 위한 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.
상기 통합 입출력 메모리 관리 유닛은 상기 어드레스 변환 테이블을 참조하여 상기 트랜잭션에 대한 어드레스 변환을 수행하는 시스템 온 칩.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.
상기 통합 입출력 메모리 관리 유닛은 상기 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.
제 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.
상기 제 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.
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)
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)
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)
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 |
-
2010
- 2010-04-28 KR KR1020100039616A patent/KR101781617B1/en active IP Right Grant
-
2011
- 2011-04-27 US US13/095,385 patent/US9361239B2/en active Active
Patent Citations (2)
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 |