KR102398515B1 - 버스간 통신들의 브리징 - Google Patents

버스간 통신들의 브리징 Download PDF

Info

Publication number
KR102398515B1
KR102398515B1 KR1020177003279A KR20177003279A KR102398515B1 KR 102398515 B1 KR102398515 B1 KR 102398515B1 KR 1020177003279 A KR1020177003279 A KR 1020177003279A KR 20177003279 A KR20177003279 A KR 20177003279A KR 102398515 B1 KR102398515 B1 KR 102398515B1
Authority
KR
South Korea
Prior art keywords
bus
address
access request
range
translation information
Prior art date
Application number
KR1020177003279A
Other languages
English (en)
Other versions
KR20170030569A (ko
Inventor
야갈 아르벨
사기르 아마드
사로쉬 아이. 아자드
Original Assignee
자일링크스 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 자일링크스 인코포레이티드 filed Critical 자일링크스 인코포레이티드
Publication of KR20170030569A publication Critical patent/KR20170030569A/ko
Application granted granted Critical
Publication of KR102398515B1 publication Critical patent/KR102398515B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/404Coupling between buses using bus bridges with address mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/145Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Storage Device Security (AREA)
  • Small-Scale Networks (AREA)
  • Bus Control (AREA)

Abstract

제 1 및 제 2 버스들 간의 통신을 브리징하기 위한 접근법들이 개시된다. 어드레스 변환 정보 및 연관된 보안 표시자들은 메모리에 저장된다(202). 제 1 버스로부터의 각각의 액세스 요청은 제 1 요청자 보안 표시자 및 요청된 어드레스를 포함한다. 제 1 버스로부터 제 2 버스로 지향되는 각각의 액세스 요청은, 요청자 보안 표시자 및 요청된 어드레스에 대한 어드레스 변환 정보와 연관된 보안 표시자에 기초하여 거절되거나(214) 또는 변환(210)되어 제 2 버스에 통신된다(212). 제 2 버스로부터 제 1 버스로의 각각의 액세스 요청은 요청된 어드레스를 포함하고, 액세스 요청은 변환되어(226) 요청된 어드레스에 대한 어드레스 변환 정보와 연관된 보안 표시자와 함께 제 1 버스에 통신된다(228).

Description

버스간 통신들의 브리징{BRIDGING INTER-BUS COMMUNICATIONS}
본 개시는 일반적으로 버스들 간의 브리징 통신들에 관한 것이다.
버스는 전자 회로 내의 상이한 디바이스들 간에 데이터를 전달하는 상호연결 서브시스템 또는 회로이다. 버스는 버스를 통해 효과적으로 통신하기 위해 버스에 연결된 각각의 디바이스에 의해 관찰되어야 하는 규칙들 및 연결들의 세트를 정의한다. 버스에 연결될 수 있는 디바이스들의 예들은, 예를 들어, 프로세서들, 메모리들 및 외부 시스템에 대한 브리지들을 포함(그러나 이들로 제한되지 않음)할 수 있다. 포인트-투-포인트 연결과 달리, 버스는 와이어들의 동일한 세트를 통해 여러 주변 장치들을 연결할 수 있다.
다수의 전자 시스템들은 병렬로 다수의 디바이스들 간의 데이터 전달을 용이하게 하기 위해 다수의 버스들을 포함한다. 일부 시스템들에서, 데이터는 하나의 프로토콜을 구현하는 버스로부터 다른 상이한 프로토콜을 구현하는 버스로 전달될 수 있다. 상이한 프로토콜들을 구현하는 버스를 연결하는 것으로부터 호환성 이슈들이 발생할 수 있다. 예를 들어, AMBA(Advanced Microcontroller Bus Architecture)에 대한 AXI(Advanced eXtensible Interface)는 버스에 연결된 안전 및 비-안전 자원들의 소프트웨어-제어 및 하드웨어-강제 격리(hardware-enforced isolation)를 지원한다. PCIe(Peripheral Component Interconnect Express) 버스 아키텍처는 대조적으로 유사한 보안을 제공하지 않는다. 상이한 특징들을 가진 다른 버스들과 관련하여, 버스들을 연결하는 것이 문제가될 수 있다.
일 실시예에서, 제 1 및 제 2 버스들 간의 통신을 브리징하는 방법은 어드레스 변환 정보 및 연관된 보안 표시자들을 메모리에 저장하는 단계를 포함한다. 제 1 버스로부터 수신된 각각의 제 1 액세스 요청은 제 1 요청자 보안 표시자 및 제 1 어드레스를 포함한다. 각각의 제 1 액세스 요청에 응답하여, 방법은 제 1 요청자 보안 표시자가 비-안전 요청자를 표시하고 제 1 어드레스에 대한 어드레스 변환 정보와 연관된 보안 표시자가 안전 어드레스 범위를 표시하는 것에 대한 응답으로, 제 1 액세스 요청을 거절한다. 제 1 요청자 보안 표시자가 안전 요청자를 표시하는 것에 대한 응답으로, 제 1 액세스 요청은 어드레스 변환 정보를 사용하여 제 2 버스에 대한 제 2 액세스 요청으로 변환되고 제 2 액세스 요청은 제 2 버스에 통신된다. 제 2 버스로부터 수신된 각각의 제 3 액세스 요청은 제 3 어드레스를 포함한다. 각각의 제 3 액세스 요청에 대한 응답으로, 방법은 어드레스 변환 정보를 사용하여 제 3 액세스 요청을 제 1 버스에 대한 제 4 액세스 요청으로 변환하고, 제 4 어드레스에 대한 어드레스 변환 정보와 연관된 보안 표시자와 함께, 제 4 액세스 요청을 제 1 버스에 통신한다.
다른 실시예에서, 제 1 및 제 2 버스들 사이의 통신을 위한 브리지 회로는 어드레스 변환 정보 및 연관된 보안 표시자들을 저장하도록 구성 가능한 메모리를 포함한다. 배출 회로는 메모리에 그리고 제 1 및 제 2 버스들에 커플링된다. 배출 회로는 제 1 버스로부터 제 1 액세스 요청들을 수신하도록 구성되며, 각각의 제 1 액세스 요청은 제 1 요청자 보안 표시자 및 제 1 어드레스를 포함한다. 각각의 제 1 액세스 요청에 대해, 배출 회로는, 제 1 요청자 보안 표시자가 비-안전 요청자를 표시하고 제 1 어드레스에 대한 어드레스 변환 정보와 연관된 보안 표시자가 안전 어드레스 범위를 표시하는 것에 대한 응답으로, 제 1 액세스 요청을 거절하도록 구성된다. 배출 회로는, 제 1 요청자 보안 표시자가 안전 요청자를 표시하는 것에 대한 응답으로, 어드레스 변환 정보를 사용하여 제 1 액세스 요청을 제 2 버스에 대한 제 2 액세스 요청으로 변환하고 제 2 액세스 요청을 제 2 버스에 통신한다. 진입 회로는 메모리에 그리고 제 1 및 제 2 버스들에 커플링된다. 진입 회로는 제 2 버스로부터 제 3 액세스 요청들을 수신하도록 구성되며, 각각의 제 3 액세스 요청은 제 3 어드레스를 포함한다. 진입 회로는 추가로, 어드레스 변환 정보를 사용하여 제 3 액세스 요청을 제 1 버스에 대한 제 4 액세스 요청으로 변환하고, 제 4 어드레스에 대한 어드레스 변환 정보와 연관된 보안 표시자와 함께, 제 4 액세스 요청을 제 1 버스에 통신하도록 구성된다.
시스템이 다른 실시예에서 제공된다. 시스템은, 제 1 버스, 제 1 버스에 커플링된 제 1 세트의 마스터 및 슬레이브 회로들, 제 2 버스, 제 1 버스와 제 2 버스 사이에 상호커플링된 브리지 회로 및 제 2 버스에 커플링된 제 2 세트의 마스터 및 슬레이브 회로들을 포함한다. 브리지 회로는, 어드레스 변환 정보 및 연관된 보안 표시자들을 저장하도록 구성 가능한 메모리를 포함한다. 배출 회로는 메모리에 그리고 제 1 및 제 2 버스들에 커플링된다. 배출 회로는 제 1 버스로부터 제 1 액세스 요청들을 수신하도록 구성되며, 각각의 제 1 액세스 요청은 제 1 요청자 보안 표시자 및 제 1 어드레스를 포함한다. 각각의 제 1 액세스 요청에 대해, 배출 회로는, 제 1 요청자 보안 표시자가 비-안전 요청자를 표시하고 제 1 어드레스에 대한 어드레스 변환 정보와 연관된 보안 표시자가 안전 어드레스 범위를 표시하는 것에 대한 응답으로, 제 1 액세스 요청을 거절하도록 구성된다. 배출 회로는, 제 1 요청자 보안 표시자가 안전 요청자를 표시하는 것에 대한 응답으로, 어드레스 변환 정보를 사용하여 제 1 액세스 요청을 제 2 버스에 대한 제 2 액세스 요청으로 변환하고 제 2 액세스 요청을 제 2 버스에 통신한다. 진입 회로는 메모리에 그리고 제 1 및 제 2 버스들에 커플링된다. 진입 회로는 제 2 버스로부터 제 3 액세스 요청들을 수신하도록 구성되며, 각각의 제 3 액세스 요청은 제 3 어드레스를 포함한다. 진입 회로는 추가로, 어드레스 변환 정보를 사용하여 제 3 액세스 요청을 제 1 버스에 대한 제 4 액세스 요청으로 변환하고, 제 4 어드레스에 대한 어드레스 변환 정보와 연관된 보안 표시자와 함께, 제 4 액세스 요청을 제 1 버스에 통신하도록 구성된다.
다른 특징들은 상세한 설명 및 청구범위를 고려하여 인지될 것이다.
방법 및 시스템의 다양한 양상들 및 특징들은 다음의 상세한 설명을 검토하고 도면들을 참조하여 명백해질 것이다.
도 1은 안전 및 비-안전 자원들에 대한 하드웨어-강제 제어를 제공하는 제 1 버스와 제 1 버스의 보안 메커니즘들을 인식하지 않는 제 2 버스 사이에서 통신하기 위한 브리지 회로를 포함하는 시스템을 도시한다.
도 2는 제 1 버스와 제 2 버스 간의 통신을 브리징하기 위한 예시적인 프로세스의 흐름도이다.
도 3은 도 1의 브리징 회로 및 도 2의 프로세스가 구현될 수 있는 프로그래밍 가능 집적 회로(IC)를 도시한다.
이하의 설명에서, 다수의 구체적인 예들이 본원에서 제시된 특정한 예들을 설명하기 위해 기술된다. 그러나 하나 또는 그 초과의 다른 예들 및/또는 이들 예들의 변동들이 이하에 주어진 모든 특정 세부사항들 없이 실시될 수 있다는 것이 당업자에게 자명해져야 한다. 다른 예들에서, 잘 알려진 특징들은 본원의 예들의 설명을 모호하게 하지 않도록 상세히 설명되지 않는다. 예시의 용이함을 위해, 동일한 참조 부호는 상이한 도면들에서 동일한 아이템들을 지칭하도록 사용될 수 있으며; 그러나, 대안적인 예들에서 아이템들은 상이할 수 있다.
개시된 브리지 회로는 제 1 버스의 보안 메커니즘을 구현하지 않는 제 2 버스에 대한 브리징 통신에서 제 1 버스에 의해 구현되는 보안 조치들(security measures)을 수용한다. 하나의 접근법에 따라, 브리지 회로는 어드레스 변환 정보 및 연관된 보안 표시자들을 저장한다. 어드레스 변환 정보는 제 1 버스의 어드레스 공간과 제 2 버스의 어드레스 공간 사이에서 어드레스들을 변환하는데 사용된다. 어드레스 변환 정보와 연관된 보안 표시자들은, 상이한 어드레스 범위들이 상이한 보안 지정들을 가질 수 있도록 구성 가능하다.
제 1 버스로부터 브리지 회로에 의해 수신된 액세스 요청들은 요청된 어드레스를 참조하고 연관된 요청자 보안 표시자를 갖는다. 요청된 어드레스는 제 1 버스의 제 1 어드레스 공간의 주소를 참조하며 요청자 보안 표시자는 요청자의 보안 세팅을 표시한다. 예를 들어, 요청자의 보안 세팅은 안전 또는 비-안전일 수 있다.
브리지 회로는, 요청자가 비-안전임을 요청자 보안 표시자가 표시하는 것 그리고 요청된 어드레스에 대한 어드레스 변환 정보와 연관된 보안 표시자가 안전 어드레스 범위를 표시하는 것에 대한 응답으로, 제 1 버스 상의 요청자로부터 제 2 버스 상의 목적지까지의 액세스 요청을 거절한다. 요청자가 비-안전임을 요청자 보안 표시자가 표시하고 요청된 어드레스 범위가 비-안전임을 표시하면, 브리지 회로는 어드레스 변환 정보를 사용하여 액세스 요청을 제 2 버스에 대한 액세스 요청으로 변환한다. 요청자가 안전임을 요청자 보안 표시자가 표시하면, 브리지 회로는 안전 및 비-안전 어드레스 범위들 둘 다에 대한 어드레스 변환 정보를 사용하여 액세스 요청을 제 2 버스에 대한 액세스 요청으로 변환한다. 변환된 액세스 요청은 제 2 버스에 통신된다.
제 2 버스로부터 브리지 회로에 의해 수신된 액세스 요청들은 요청된 어드레스를 참조하지만, 연관된 요청자 보안 표시자는 없다. 요청된 어드레스는 제 2 버스의 제 2 어드레스 공간의 어드레스를 참조한다. 제 2 버스를 통해 수신된 요청에 대해, 브리지 회로는 어드레스 변환 정보를 사용하여 요청을 제 1 버스에 대한 액세스 요청으로 변환한다. 브리지 회로는 그 후, 어드레스 변환 정보와 연관된 보안 표시자와 함께, 제 1 버스 상에서 변환된 액세스 요청을 통신한다.
도 1은 안전 및 비-안전 자원들 대한 하드웨어-강제 제어를 제공하는 제 1 버스와 제 1 버스의 보안 메커니즘들을 인식하지 않는 제 2 버스 사이에서 통신하기 위한 브리지 회로를 포함하는 시스템(100)을 도시한다. 도시되지는 않았지만, 브리지 및 버스들은 예시된 어드레스 채널들 외에도, 데이터 채널들을 제공한다는 것이 인지될 것이다.
시스템(100)은 제 1 버스(104)에 커플링되는 제 1 세트의 마스터 및 슬레이브 회로들(102), 브리지 회로(106), 버스 제어기(108), 제 2 버스(110) 및 제 2 버스에 커플링되는 제 2 세트의 마스터 및 슬레이브 회로들(112)을 포함한다. 제 1 세트의 마스터 및 슬레이브 회로(102)는 하나 또는 그 초과의 마스터 회로들 및 하나 또는 그 초과의 슬레이브 회로들을 포함할 수 있고, 제 2 세트의 마스터 및 슬레이브 회로(112)는 하나 또는 그 초과의 마스터 회로들 및 하나 또는 그 초과의 슬레이브 회로들을 포함할 수 있다. 마스터 회로들의 예들은 마이크로프로세서, 직접 메모리 액세스(DMA) 회로들 및/또는 디지털 신호 프로세서들(DSP들)을 포함한다. 슬레이브 회로들의 예들은 플래시 메모리 디바이스, 고상 드라이브 또는 하드 디스크 드라이브들을 포함한다. 브리지 회로(106)는 제 1 버스(104) 상의 슬레이브 회로의 예이다.
브리지 회로(106)는 제 1 버스(104)와 제 2 버스(110) 사이에서 요청들을 변환한다. 버스들은 상이한 어드레스 공간, 상이한 물리적 구성들 및 상이한 보안 메커니즘들을 가질 수 있다. 예를 들어, 버스(104)는 AXI 버스와 같은 병렬 버스일 수 있고, 버스(110)는 PCIe와 같은 직렬 버스일 수 있다. AXI 버스는 또한, 안전 및 비-안전 자원들을 격리한다. AXI 버스 상에서, 각각의 디바이스에는 디바이스가 안전인지 또는 비-안전인지를 표시하는 보안 프로파일이 할당될 수 있다. 메모리 액세스 트랜잭션들은 요청자의 보안 레벨을 표시하도록 태깅되고 태그들은 상호연결 시스템 전체에 걸쳐 전파된다. 비-안전 마스터 디바이스들 또는 소프트웨어 작업들은 비-안전 메모리 영역들 또는 슬레이브 디바이스들에 대한 액세스만이 허용된다. 보안 마스터 디바이스들 또는 소프트웨어 작업들은 안전 및 비-안전 메모리 영역들 둘 다에 대한 액세스가 허용된다. AXI 버스 상에서, 트랜잭션 보안은, 보안 표시자(142)와 비견 가능한 AxPROT [1](x는 읽기 채널의 경우 R 그리고 쓰기 채널의 경우 W을 나타냄) 신호의 상태에 의해 표시된다. PCIe 버스 상에서, 트랜잭션들과 함께 송신되는 유사한 보안 정보가 없다.
배출 회로(egress circuit)(122)는 제 1 버스(104) 상의 요청자들(마스터 회로들)로부터의 요청을 제 2 버스(110) 상의 슬레이브 회로들에 적합한 요청들로 변환한다. 진입 회로(124)는 제 2 버스(110) 상의 요청자들로부터의 요청들을 제 1 버스(104) 상의 슬레이브 회로들에 적합한 요청들로 변환한다. 배출 및 진입 변환 회로들은 어드레스 범위 맵들(126)을 사용하여 2개의 어드레스 공간 사이에서 어드레스들을 변환하고 제 1 버스의 보안 메커니즘을 시행한다. 어드레스 범위 맵들은 예를 들어, 하나 또는 그 초과의 이중 포트 메모리들(128)에서 구현될 수 있다. 예시적인 구현에서, 어드레스 범위 맵들(126)은 구성 신호(130)를 통해 구성 가능할 수 있다.
각각의 어드레스 범위 맵은 어드레스들의 각각의 범위를 기술한다. 어드레스 범위 맵 내의 정보는 어드레스 범위의 크기(132), 원격 베이스 어드레스(134), 로컬 베이스 어드레스(136) 및 보안 표시자(138)를 특정한다. 어드레스 범위의 크기는 예를 들어, 범위 내의 어드레싱 가능한 워드들(addressable words)의 수를 표시한다. 원격 베이스 어드레스는 어드레스 범위가 시작하는, 제 2 버스(110)의 어드레스 공간에서의 베이스 어드레스를 표시하고, 로컬 베이스 어드레스는 어드레스 범위가 시작하는, 제 1 버스(104)의 어드레스 공간에서의 베이스 어드레스를 표시한다. 보안 표시자(138)는 어드레스 범위가 안전인지 또는 비-안전인지 여부를 표시한다.
배출 회로는 제 1 버스(104)로부터 액세스 요청들을 수신한다. 본원에서 트랜잭션으로 또한 지칭될 수 있는 각각의 액세스 요청은 요청자 보안 표시자(142) 및 어드레스(144)를 포함한다. 보안 표시자는 요청을 개시한 마스터 회로의 보안 레벨(예를 들어, 안전 또는 비-안전)을 지정하고, 어드레스는 제 1 버스(104)의 어드레스 공간의 어드레스를 참조한다. 액세스 요청에 응답하여, 배출 회로는 요청자 보안 표시자 및 요청된 어드레스와 연관된 보안 표시자에 기초하여 요청이 변환되고 제 2 버스(110)에 통신되는지 여부를 결정한다. 요청자가 안전임을 요청자 보안 표시자가 표시하면, 배출 회로는 제 1 버스로부터의 액세스 요청을 제 2 버스에 대한 액세스 요청으로 변환한다. 특히, 요청된 어드레스는 요청된 어드레스가 속한 어드레스 범위(로컬 베이스 어드레스 <= 요청된 어드레스 <= (로컬 베이스 어드레스 + 크기))를 지정하는 어드레스 맵들(126) 중 하나를 사용하여 변환된다. 배출 회로에 의해 출력된 어드레스(146)는 제 2 버스(110)의 어드레스 공간에서의 어드레스이며: (요청된 어드레스- 로컬 베이스 어드레스) + 원격 베이스 어드레스와 동일하다. 요청자 보안 표시자가 비-안전 요청자를 표시하고, 요청된 어드레스에 대한 어드레스 변환 정보가 비-안전 어드레스 범위를 표시하는 경우, 배출 회로는 위에서 표시된 바와 같이 액세스 요청을 변환한다. 배출 회로는, 요청자가 비-안전임을 표시하는 요청자 보안 표시자 및 요청된 어드레스가 안전 어드레스 범위 내에 있음을 표시하는, 어드레스 범위와 연관된 보안 표시자에 대한 응답으로, 액세스 요청을 거절한다. 거절은 배출 회로로부터의 거절 신호(148)로 표시될 수 있다.
진입 회로(124)는 제 1 버스(104) 상의 디바이스들로 어드레싱되는, 제 2 버스(110) 상의 요청자들로부터의 요청들을 수신하고 프로세싱한다. 제 2 버스로부터의 요청들은 요청된 어드레스(152)를 포함하지만 제 1 버스(104)로부터의 요청들이 그랬던 것처럼 요청자 보안 표시자를 포함하지 않는다. 진입 회로는 어드레스 범위 맵들 중 하나를 사용하여 제 2 버스(110)로부터의 액세스 요청을 제 1 버스(104)에 대한 액세스 요청으로 변환한다. 하나의 어드레스 범위 맵은 (원격베이스 어드레스 <= 요청된 어드레스 <= (원격 베이스 어드레스 + 크기))인 것이다. 진입 회로에 의해 출력된 어드레스(154)는 제 1 버스(104)의 어드레스 공간에서의 어드레스이고 (요청된 어드레스 ― 원격 베이스 어드레스) + 로컬 베이스 어드레스이다. 어드레스(154)와 함께, 진입 회로는 요청된 어드레스에 대한 어드레스 범위와 연관된 보안 표시자(156)를 통신한다. 따라서, 어드레스 범위들과 연관된 보안 표시자들은 액세스 요청들을 제 1 버스(104)에 제출하는 모든 마스터 회로들(112)에 대한 요청자 보안 레벨을 표시한다. 확인응답 및 거절 신호들은 신호 라인(158) 상에서 버스 제어기(108)에 제공된다.
버스 제어기는 브리지 회로(106)와 제 2 버스(110) 사이의 인터페이스를 제공한다. 버스(110)가 PCIe(Peripheral Component Interconnect Express)와 같은 직렬 링크를 제공하는 구현에서, 버스 제어기는 트랜잭션, 링크, 회로들의 물리층들을 포함할 수 있다.
도 2는 제 1 버스와 제 2 버스 간의 통신을 브리징하기 위한 예시적인 프로세스의 흐름도이다. 블록(202)에서, 어드레스 맵은 제 1 및 제 2 버스들 사이에서 요청들을 변환하기 위해 어드레스 변환 정보를 갖도록 구성된다. 각각의 어드레스 범위 맵은 크기, 원격 베이스 어드레스, 로컬 베이스 어드레스 및 어드레스들의 각각의 범위에 대한 보안 표시자를 지정한다.
제 1 버스(보안 조치들을 구현하는 버스)로부터의 액세스 요청들에 대해, 프로세스는 블록(204)으로 진행된다. 블록(204)에서, 액세스 요청 내의 어드레스의 어드레스 범위가 결정된다. 결정 블록(206)은 범위가 안전한 것으로 지정되는지 여부를 결정한다. 범위가 안전하다면, 결정 블록(208)은 액세스 요청을 포함하는 신호에 의해 표시된 바와 같이 요청자가 안전한지 여부를 결정한다. 요청자가 안전하다면, 블록(210)에서, 프로세스는 제 1 버스의 어드레스 공간으로부터 제 2 버스의 어드레스 공간으로 요청의 어드레스를 변환한다. 블록(212)에서, 액세스 요청은 변환된 어드레스로 준비되고 제 2 버스에 통신된다. 요청자가 안전하지 않고 요청된 어드레스가 안전한 것으로 지정된 어드레스 범위 내에 있으면, 결정 블록(208)은, 액세스 요청이 요청자에 대한 신호를 통해 거절되는 블록(214)으로 프로세스를 지향시킨다.
제 2 버스(제 1 버스의 보안 조치들을 구현하지 않는 버스)로부터의 액세스 요청들에 대해, 액세스 요청 내의 어드레스의 어드레스 범위는 블록(220)에서 결정된다. 블록(226)에서, 어드레스 범위 맵은 제 2 버스의 어드레스 공간으로부터의 어드레스를 제 1 버스의 어드레스 공간의 어드레스로 변환하는데 사용된다. 액세스 요청은 변환된 어드레스로 준비되고, 액세스 요청 및 어드레스 범위 맵으로부터의 보안 표시자의 상태는 블록(228)에서 제 1 버스에 통신된다. 액세스 요청을 수신하는 제 1 버스 상의 디바이스는 액세스를 승인할지 또는 요청을 거절할지를 결정할 수 있다.
도 3은 도 1의 브리징 회로 및 도 2의 프로세스가 구현될 수 있는 프로그래밍 가능 집적 회로(IC)를 도시한다. 도 3의 프로그래밍 가능 IC는, 멀티-기가비트 트랜시버들(MGT들)(301), 구성 가능한 로직 블록들(CLB들)(302), 랜덤 액세스 메모리 블록들(BRAM들)(303), 입력/출력 블록들(IOB들)(304), 구성 및 클로킹 로직(CONFIG/CLOCK들)(305), 디지털 신호 프로세싱 블록들(DSP들)(306), 특수 입력/출력 블록들(I/O)(307), 예를 들어, 클록 포트들, 및 디지털 클록 관리자들, 아날로그-디지털 변환기들, 시스템 모니터링 로직 등과 같은 다른 프로그래밍 가능 로직(308)을 포함하는 매우 다수의 상이한 프로그래밍 가능 타일들을 포함하는 FPGA 아키텍처(300)를 예시한다. 일부 FPGA들은 또한 전용 프로세서 블록들(PROC)(310) 및 내부 및 외부 재구성 포트들(도시되지 않음)을 포함한다.
일부 FPGA들에서, 각각의 프로그래밍 가능 타일들은 각각의 인접한 타일들의 대응하는 상호연결 엘리먼트로의 그리고 이로부터의 표준화된 연결들을 갖는 프로그래밍 가능 상호연결 엘리먼트(INT)(311)를 포함한다. 따라서, 함께 취해진 프로그래밍 가능 상호연결 엘리먼트들은 예시된 FPGA에 대한 프로그래밍 가능 상호연결 구조를 구현한다. 프로그래밍 가능 상호연결 엘리먼트(INT)(311)는 또한 도 3의 상부에 포함된 예들에 의해 도시된 바와 같이, 동일한 타일 내의 프로그래밍 가능 로직 엘리먼트로의 그리고 이로부터의 연결들을 포함한다.
예를 들어, CLB(302)는, 단일 프로그래밍 가능 상호연결 엘리먼트(INT)(311)에 추가로, 사용자 로직을 구현하도록 프로그래밍될 수 있는 구성 가능한 로직 엘리먼트(CLE)(312)를 포함할 수 있다. BRAM(303)은 하나 또는 그 초과의 프로그래밍 가능 상호연결 엘리먼트 외에도, BRAM 로직 엘리먼트(BRL)(313)를 포함할 수 있다. 통상적으로, 타일에 포함된 상호연결 엘리먼트들의 수는 타일의 높이에 의존한다. 도시된 실시예에서, BRAM 타일은 5개의 CLB들과 동일한 높이를 갖지만, 다른 수들(예를 들어, 4)이 또한 사용될 수 있다. DSP 타일(306)은 적절한 수의 프로그래밍 가능 상호연결 엘리먼트들 외에도, DSP 로직 엘리먼트(DSPL)(314)를 포함할 수 있다. IOB(304)는 예를 들어, 프로그래밍 가능 상호연결 엘리먼트(INT)(311)의 하나의 인스턴스 외에도, 입력/출력 로직 엘리먼트(IOL)(315)의 2개의 인스턴스를 포함할 수 있다. 당업자에게 명백한 바와 같이, 예를 들어 I/O 로직 엘리먼트(315)에 연결된 실제 I/O 결합 패드들은 다양한 예시된 로직 블록들 위에 적층되는 금속을 이용하여 제조되고, 통상적으로 입/출력 로직 엘리먼트(315)의 영역으로 국한되지 않는다.
도시된 실시예에서, 다이(도 3에 음영지게 도시됨)의 중심 부근의 원주 영역은 구성, 클록 및 다른 제어 로직을 위해 사용된다. 이 열로부터 연장하는 수평 영역들(309)은 FPGA의 폭에 걸쳐 클록들 및 구성 신호들을 분배하는데 사용된다.
도 3에 예시된 아키텍처를 활용하는 일부 FPGA들은, FPGA의 큰 부분을 구성하는 정규 원주 구조(columnar structure)를 방해하는 추가 로직 블록들을 포함한다. 추가 로직 블록들은 프로그래밍 가능 블록들 및/또는 전용 로직일 수 있다. 예를 들어, 도 3에 도시된 프로세서 블록(PROC)(310)은 CLB들 및 BRAM들의 여러 열들에 걸쳐있다.
또한, 도 3은 단지 예시적인 FPGA 아키텍처를 예시하기 위한 것이란 점에 주의한다. 열에서 로직 블록들의 수, 열들의 상대적인 폭, 열들의 수 및 순서, 열들에 포함된 로직 블록들의 타입들, 로직 블록들의 상대적 크기 및 도 3의 상부에 포함된 상호연결/로직 구현들은 순전히 예시적이다. 예를 들어, 실제 FPGA에서, CLB들의 2개 이상의 인접한 열은 통상적으로 CLB가 나타나는 곳마다 포함되어 사용자 로직의 효율적인 구현을 용이하게 한다.
본원에서 설명되는 예시적인 방법은 제 1 및 제 2 버스들 간의 통신을 브리징하는 것에 관한 것이다. 통신을 브리징하기 것에 관련된 일부 이러한 방법은, 어드레스 변환 정보(address translation information) 및 연관된 보안 표시자들을 메모리에 저장하는 단계; 제 1 버스로부터 수신된 각각의 제 1 액세스 요청에 대한 응답으로, ― 각각의 제 1 액세스 요청은 제 1 요청자 보안 표시자 및 제 1 어드레스를 포함함 ― : 제 1 요청자 보안 표시자가 비-안전 요청자를 표시하고 제 1 어드레스에 대한 어드레스 변환 정보와 연관된 보안 표시자가 안전 어드레스 범위를 표시하는 것에 대한 응답으로 제 1 액세스 요청을 거절하는 단계; 및 제 1 요청자 보안 표시자가 안전 요청자를 표시하는 것에 대한 응답으로, 어드레스 변환 정보를 사용하여 제 1 액세스 요청을 제 2 버스에 대한 제 2 액세스 요청으로 변환하고 제 2 액세스 요청을 제 2 버스에 통신하는 단계; 그리고 제 2 버스로부터 수신되고 제 3 어드레스를 포함하는 각각의 제 3 액세스 요청에 대한 응답으로, 어드레스 변환 정보를 이용하여 제 3 액세스 요청을 제 1 버스에 대한 제 4 액세스 요청으로 변환하는 단계; 및 제 4 액세스 요청 및 제 4 어드레스에 대한 어드레스 변환 정보와 연관된 보안 표시자를 제 1 버스에 통신하는 단계를 포함할 수 있다.
일부 이러한 방법에서, 어드레스 변환 정보는 복수의 어드레스 범위 맵들을 포함할 수 있고, 각각의 어드레스 범위 맵은 제 1 버스의 어드레스들의 제 1 범위를 제 2 버스의 어드레스들의 제 2 범위로 맵핑하고, 보안 표시자들 각각은 어드레스 범위 맵들 중 하나와 각각 연관된다.
일부 이러한 방법은, 제 1 요청자 보안 표시자가 비-안전 요청자를 표시하고 제 1 어드레스에 대한 어드레스 변환 정보가 비-안전 어드레스 범위를 표시하는 것에 대한 응답으로, 제 1 액세스 요청을 제 2 버스에 대한 제 2 액세스 요청으로 변환하고 제 2 액세스 요청을 제 2 버스에 통신하는 단계를 더 포함할 수 있다.
일부 이러한 방법은 어드레스 변환 정보가 복수의 어드레스 범위 맵들을 포함한다는 것을 더 포함할 수 있고, 각각의 어드레스 범위 맵은 제 1 버스의 어드레스들의 제 1 범위를 제 2 버스의 어드레스들의 제 2 범위로 맵핑하고, 보안 표시자들 각각은 어드레스 범위 맵들 중 하나와 각각 연관되고; 그리고 각각의 어드레스 범위 맵은 제 1 베이스 어드레스 및 제 2 베이스 어드레스를 지정한다.
일부 이러한 방법은 각각의 어드레스 범위 맵은 크기를 지정한다는 것을 더 포함할 수 있다.
일부 이러한 방법은, 제 1 베이스 어드레스는 제 1 버스의 제 1 어드레스 공간에 있고, 제 2 베이스 어드레스는 제 2 버스의 제 2 어드레스 공간에 있다는 것을 더 포함할 수 있다.
일부 이러한 방법은 보안 표시자가 프로그래밍 가능하다는 것을 더 포함할 수 있다.
본원에서 설명되는 예시적인 장치는 일반적으로 브리지 회로에 관한 것이다. 이러한 장치에서, 제 1 버스와 제 2 버스 사이의 통신들을 위한 브리지 회로는, 어드레스 변환 정보 및 연관된 보안 표시자들을 저장하도록 구성 가능한 메모리; 메모리에 그리고 제 1 및 제 2 버스들에 커플링된 배출(egress) 회로 ― 배출 회로는 제 1 버스로부터 제 1 액세스 요청들을 수신하도록 구성되고, 각각의 제 1 액세스 요청은 제 1 요청자 보안 표시자 및 제 1 어드레스를 포함하고, 각각의 제 1 액세스 요청에 대해, 배출 회로는, 제 1 요청자 보안 표시자가 비-안전 요청자를 표시하고 제 1 어드레스에 대한 어드레스 변환 정보와 연관된 보안 표시자가 안전 어드레스 범위를 표시하는 것에 대한 응답으로, 제 1 액세스 요청을 거절하도록; 그리고 제 1 요청자 보안 표시자가 안전 요청자를 표시하는 것에 대한 응답으로, 어드레스 변환 정보를 사용하여 제 1 액세스 요청을 제 2 버스에 대한 제 2 액세스 요청으로 변환하고 제 2 액세스 요청을 제 2 버스에 통신하도록 구성됨 ― ; 및 메모리에 그리고 제 1 및 제 2 버스들에 커플링된 진입 회로를 포함할 수 있고, 진입 회로는 제 2 버스로부터 제 3 액세스 요청들을 수신하도록 구성되고, 각각의 제 3 액세스 요청은 제 3 어드레스를 포함하고, 진입 회로는 추가로, 어드레스 변환 정보를 이용하여 제 3 액세스 요청을 제 1 버스에 대한 제 4 액세스 요청으로 변환하도록; 그리고 제 4 액세스 요청 및 제 4 어드레스에 대한 어드레스 변환 정보와 연관된 보안 표시자를 제 1 버스에 통신하도록 구성된다.
일부 이러한 장치에서, 어드레스 변환 정보는 복수의 어드레스 범위 맵들을 포함할 수 있고, 각각의 어드레스 범위 맵은 제 1 버스의 어드레스들의 제 1 범위를 제 2 버스의 어드레스들의 제 2 범위로 맵핑하고, 보안 표시자들 각각은 어드레스 범위 맵들 중 하나와 각각 연관된다.
일부 이러한 장치에서, 진입 회로는 추가로, 제 1 요청자 보안 표시자가 비-안전 요청자를 표시하고 제 1 어드레스에 대한 어드레스 변환 정보가 비-안전 어드레스 범위를 표시하는 것에 대한 응답으로, 제 1 액세스 요청을 제 2 버스에 대한 제 2 액세스 요청으로 변환하고 제 2 액세스 요청을 제 2 버스에 통신하도록 구성될 수 있다.
일부 이러한 장치에서, 어드레스 변환 정보는 복수의 어드레스 범위 맵들을 포함할 수 있고, 각각의 어드레스 범위 맵은 제 1 버스의 어드레스들의 제 1 범위를 제 2 버스의 어드레스들의 제 2 범위로 맵핑하고, 보안 표시자들 각각은 어드레스 범위 맵들 중 하나와 각각 연관되고, 각각의 어드레스 범위 맵은 제 1 베이스 어드레스 및 제 2 베이스 어드레스를 지정한다.
일부 이러한 장치에서, 각각의 어드레스 범위 맵은 크기를 지정할 수 있다.
일부 이러한 장치에서, 제 1 베이스 어드레스는 제 1 버스의 제 1 어드레스 공간에 있을 수 있고, 제 2 베이스 어드레스는 제 2 버스의 제 2 어드레스 공간에 있다.
일부 이러한 장치에서, 보안 표시자는 프로그래밍 가능할 수 있다.
시스템이 이제 다른 예로서 제공된다. 이러한 시스템은, 제 1 버스; 제 1 버스에 커플링된 제 1 세트의 마스터 및 슬레이브 회로들; 제 2 버스; 제 1 버스와 제 2 버스 사이에 상호커플링된 브리지 회로; 제 2 버스에 커플링된 제 세트의 마스터 및 슬레이브 회로들을 포함할 수 있고; 브리지 회로는, 제 1 버스와 제 2 버스 사이의 통신들을 위한 브리지 회로는, 어드레스 변환 정보 및 연관된 보안 표시자들을 저장하도록 구성 가능한 메모리; 메모리에 그리고 제 1 및 제 2 버스들에 커플링된 배출(egress) 회로 ― 배출 회로는 제 1 버스로부터 제 1 액세스 요청들을 수신하도록 구성되고, 각각의 제 1 액세스 요청은 제 1 요청자 보안 표시자 및 제 1 어드레스를 포함하고, 각각의 제 1 액세스 요청에 대해, 배출 회로는, 제 1 요청자 보안 표시자가 비-안전 요청자를 표시하고 제 1 어드레스에 대한 어드레스 변환 정보와 연관된 보안 표시자가 안전 어드레스 범위를 표시하는 것에 대한 응답으로, 제 1 액세스 요청을 거절하도록; 그리고 제 1 요청자 보안 표시자가 안전 요청자를 표시하는 것에 대한 응답으로, 어드레스 변환 정보를 사용하여 제 1 액세스 요청을 제 2 버스에 대한 제 2 액세스 요청으로 변환하고 제 2 액세스 요청을 제 2 버스에 통신하도록 구성됨 ― ; 및 메모리에 그리고 제 1 및 제 2 버스들에 커플링된 진입 회로를 포함하고, 진입 회로는 제 2 버스로부터 제 3 액세스 요청들을 수신하도록 구성되고, 각각의 제 3 액세스 요청은 제 3 어드레스를 포함하고, 진입 회로는 추가로, 어드레스 변환 정보를 이용하여 제 3 액세스 요청을 제 1 버스에 대한 제 4 액세스 요청으로 변환하도록; 그리고 제 4 액세스 요청 및 제 4 어드레스에 대한 어드레스 변환 정보와 연관된 보안 표시자를 제 1 버스에 통신하도록 구성된다.
일부 이러한 시스템에서, 어드레스 변환 정보는 복수의 어드레스 범위 맵들을 포함할 수 있고, 각각의 어드레스 범위 맵은 제 1 버스의 어드레스들의 제 1 범위를 제 2 버스의 어드레스들의 제 2 범위로 맵핑하고, 보안 표시자들 각각은 어드레스 범위 맵들 중 하나와 각각 연관된다.
일부 이러한 시스템에서, 진입 회로는 추가로, 제 1 요청자 보안 표시자가 비-안전 요청자를 표시하고 제 1 어드레스에 대한 어드레스 변환 정보가 비-안전 어드레스 범위를 표시하는 것에 대한 응답으로, 제 1 액세스 요청을 제 2 버스에 대한 제 2 액세스 요청으로 변환하고 제 2 액세스 요청을 제 2 버스에 통신하도록 구성될 수 있다.
일부 이러한 시스템에서, 어드레스 변환 정보는 복수의 어드레스 범위 맵들을 포함할 수 있고, 각각의 어드레스 범위 맵은 제 1 버스의 어드레스들의 제 1 범위를 제 2 버스의 어드레스들의 제 2 범위로 맵핑하고, 보안 표시자들 각각은 어드레스 범위 맵들 중 하나와 각각 연관되고; 그리고 각각의 어드레스 범위 맵은 제 1 베이스 어드레스 및 제 2 베이스 어드레스를 지정한다.
일부 이러한 시스템에서, 각각의 어드레스 범위 맵은 크기를 지정할 수 있다.
일부 이러한 시스템에서, 제 1 베이스 어드레스는 제 1 버스의 제 1 어드레스 공간에 있고, 제 2 베이스 어드레스는 제 2 버스의 제 2 어드레스 공간에 있다.
양상들 및 특징들이 일부 경우들에서, 개별 도면들에서 설명될 수 있지만, 하나의 도면으로부터의 특징들은, 그 조합이 명시적으로 도시되지 않거나 조합으로서 명시적으로 설명되지 않더라도 다른 도면의 특징들과 조합될 수 있다는 것이 인지될 것이다.
방법들 및 시스템은 상이한 버스들 간의 통신들을 브리징하기 위한 다양한 시스템들에 적용 가능하게 되는 것으로 간주된다. 다른 양상들 및 특징들은 명세서를 고려하여 당업자들에게 명백하게 될 것이다. 방법들 및 시스템은, 소프트웨어를 실행하도록 구성된 하나 또는 그 초과의 프로세서들로서, 주문형 집적 회로 (ASIC)로서, 또는 프로그래밍 가능 로직 디바이스 상의 로직으로서 구현될 수 있다. 명세서 및 도면들은 단지 예시적인 것으로 고려되도록 의도되며, 본 발명의 진정한 범위는 다음의 청구범위에 의해 표시된다.

Claims (14)

  1. 제 1 버스와 제 2 버스 간의 통신을 브리징(bridging)하는 방법으로서,
    어드레스 변환 정보(address translation information) 및 연관된 보안 표시자들을 공유 메모리에 저장하는 단계;
    상기 제 1 버스로부터 수신된 각각의 제 1 액세스 요청에 대한 응답으로, 상기 공유 메모리에 연결된 배출(egress) 회로를 이용하여, ― 각각의 제 1 액세스 요청은 제 1 요청자 보안 표시자 및 제 1 어드레스를 포함함 ― :
    상기 제 1 요청자 보안 표시자가 비-안전 요청자를 표시하고 상기 제 1 어드레스에 대해 상기 공유 메모리에 저장된 어드레스 변환 정보와 연관된 보안 표시자가 안전 어드레스 범위를 표시하는 것에 대한 응답으로, 상기 제 1 액세스 요청을 거절하는 단계; 및
    상기 제 1 요청자 보안 표시자가 안전 요청자를 표시하는 것에 대한 응답으로, 상기 어드레스 변환 정보를 사용하여 상기 제 1 액세스 요청을 상기 제 2 버스에 대한 제 2 액세스 요청으로 변환하고 상기 제 2 액세스 요청을 상기 제 2 버스에 통신하는 단계; 그리고
    상기 제 2 버스로부터 수신되고 제 3 어드레스를 포함하는 각각의 제 3 액세스 요청에 대한 응답으로, 상기 공유 메모리에 연결된 진입(ingress) 회로를 이용하여,
    상기 공유 메모리에 저장된 어드레스 변환 정보를 이용하여 상기 제 3 액세스 요청을 상기 제 1 버스에 대한 제 4 액세스 요청으로 변환하는 단계; 및
    상기 제 4 액세스 요청 및 상기 제 4 어드레스에 대한 어드레스 변환 정보와 연관된, 상기 공유 메모리에 저장된 보안 표시자를 상기 제 1 버스에 통신하는 단계를 포함하는,
    제 1 버스와 제 2 버스 간의 통신을 브리징하는 방법.
  2. 제 1 항에 있어서,
    상기 어드레스 변환 정보는 복수의 어드레스 범위 맵들을 포함하고, 각각의 어드레스 범위 맵은 상기 제 1 버스의 어드레스들의 제 1 범위를 상기 제 2 버스의 어드레스들의 제 2 범위로 맵핑하고, 상기 보안 표시자들 각각은 상기 어드레스 범위 맵들 중 하나와 각각 연관되는,
    제 1 버스와 제 2 버스 간의 통신을 브리징하는 방법.
  3. 제 1 항에 있어서,
    상기 제 1 요청자 보안 표시자가 비-안전 요청자를 표시하고 상기 제 1 어드레스에 대한 어드레스 변환 정보가 비-안전 어드레스 범위를 표시하는 것에 대한 응답으로, 상기 제 1 액세스 요청을 상기 제 2 버스에 대한 제 2 액세스 요청으로 변환하고 상기 제 2 액세스 요청을 상기 제 2 버스에 통신하는 단계를 더 포함하는,
    제 1 버스와 제 2 버스 간의 통신을 브리징하는 방법.
  4. 제 1 항에 있어서,
    상기 어드레스 변환 정보는 복수의 어드레스 범위 맵들을 포함하고, 각각의 어드레스 범위 맵은 상기 제 1 버스의 어드레스들의 제 1 범위를 상기 제 2 버스의 어드레스들의 제 2 범위로 맵핑하고, 상기 보안 표시자들 각각은 상기 어드레스 범위 맵들 중 하나와 각각 연관되고; 그리고
    각각의 어드레스 범위 맵은 제 1 베이스 어드레스 및 제 2 베이스 어드레스를 지정하는,
    제 1 버스와 제 2 버스 간의 통신을 브리징하는 방법.
  5. 제 4 항에 있어서,
    각각의 어드레스 범위 맵은 크기를 지정하는,
    제 1 버스와 제 2 버스 간의 통신을 브리징하는 방법.
  6. 제 5 항에 있어서,
    상기 제 1 베이스 어드레스는 상기 제 1 버스의 제 1 어드레스 공간에 있고, 제 2 베이스 어드레스는 상기 제 2 버스의 제 2 어드레스 공간에 있는,
    제 1 버스와 제 2 버스 간의 통신을 브리징하는 방법.
  7. 제 1 항 내지 제 6 항 중 어느 한 항에 있어서,
    상기 보안 표시자는 프로그래밍 가능한,
    제 1 버스와 제 2 버스 간의 통신을 브리징하는 방법.
  8. 제 1 버스와 제 2 버스 사이의 통신들을 위한 브리지 회로에 있어서,
    어드레스 변환 정보 및 연관된 보안 표시자들을 저장하도록 구성 가능한 공유 메모리;
    상기 공유 메모리에 그리고 상기 제 1 및 제 2 버스들에 커플링된 배출(egress) 회로 ― 상기 배출 회로는 상기 제 1 버스로부터 제 1 액세스 요청들을 수신하도록 구성되고, 각각의 제 1 액세스 요청은 제 1 요청자 보안 표시자 및 제 1 어드레스를 포함하고, 각각의 제 1 액세스 요청에 대해, 상기 배출 회로는,
    상기 제 1 요청자 보안 표시자가 비-안전 요청자를 표시하고 상기 제 1 어드레스에 대해 상기 공유 메모리에 저장된 어드레스 변환 정보와 연관된 보안 표시자가 안전 어드레스 범위를 표시하는 것에 대한 응답으로, 상기 제 1 액세스 요청을 거절하도록; 그리고
    상기 제 1 요청자 보안 표시자가 안전 요청자를 표시하는 것에 대한 응답으로, 상기 어드레스 변환 정보를 사용하여 상기 제 1 액세스 요청을 상기 제 2 버스에 대한 제 2 액세스 요청으로 변환하고 상기 제 2 액세스 요청을 상기 제 2 버스에 통신하도록 구성됨 ― ; 및
    상기 공유 메모리에 그리고 상기 제 1 및 제 2 버스들에 커플링된 진입(ingress) 회로를 포함하고,
    상기 진입 회로는 상기 제 2 버스로부터 제 3 액세스 요청들을 수신하도록 구성되고, 각각의 제 3 액세스 요청은 제 3 어드레스를 포함하고, 상기 진입 회로는, 추가로,
    상기 공유 메모리에 저장된 어드레스 변환 정보를 이용하여 상기 제 3 액세스 요청을 상기 제 1 버스에 대한 제 4 액세스 요청으로 변환하도록; 그리고
    상기 제 4 액세스 요청 및 상기 제 4 어드레스에 대한 어드레스 변환 정보와 연관된, 상기 공유 메모리에 저장된 보안 표시자를 상기 제 1 버스에 통신하도록 구성되는,
    제 1 버스와 제 2 버스 사이의 통신들을 위한 브리지 회로.
  9. 제 8 항에 있어서,
    상기 어드레스 변환 정보는 복수의 어드레스 범위 맵들을 포함하고, 각각의 어드레스 범위 맵은 상기 제 1 버스의 어드레스들의 제 1 범위를 상기 제 2 버스의 어드레스들의 제 2 범위로 맵핑하고, 상기 보안 표시자들 각각은 상기 어드레스 범위 맵들 중 하나와 각각 연관되는,
    제 1 버스와 제 2 버스 사이의 통신들을 위한 브리지 회로.
  10. 제 8 항에 있어서,
    상기 진입 회로는 추가로, 상기 제 1 요청자 보안 표시자가 비-안전 요청자를 표시하고 상기 제 1 어드레스에 대한 어드레스 변환 정보가 비-안전 어드레스 범위를 표시하는 것에 대한 응답으로, 상기 제 1 액세스 요청을 상기 제 2 버스에 대한 제 2 액세스 요청으로 변환하고 상기 제 2 액세스 요청을 상기 제 2 버스에 통신하도록 구성되는,
    제 1 버스와 제 2 버스 사이의 통신들을 위한 브리지 회로.
  11. 제 8 항에 있어서,
    상기 어드레스 변환 정보는 복수의 어드레스 범위 맵들을 포함하고, 각각의 어드레스 범위 맵은 상기 제 1 버스의 어드레스들의 제 1 범위를 상기 제 2 버스의 어드레스들의 제 2 범위로 맵핑하고, 상기 보안 표시자들 각각은 상기 어드레스 범위 맵들 중 하나와 각각 연관되고; 그리고
    각각의 어드레스 범위 맵은 제 1 베이스 어드레스 및 제 2 베이스 어드레스를 지정하는,
    제 1 버스와 제 2 버스 사이의 통신들을 위한 브리지 회로.
  12. 제 11 항에 있어서,
    각각의 어드레스 범위 맵은 크기를 지정하는,
    제 1 버스와 제 2 버스 사이의 통신들을 위한 브리지 회로.
  13. 제 12 항에 있어서,
    상기 제 1 베이스 어드레스는 상기 제 1 버스의 제 1 어드레스 공간에 있고, 제 2 베이스 어드레스는 상기 제 2 버스의 제 2 어드레스 공간에 있는,
    제 1 버스와 제 2 버스 사이의 통신들을 위한 브리지 회로.
  14. 제 8 항 내지 제 13 항 중 어느 한 항에 있어서,
    상기 보안 표시자는 프로그래밍 가능한,
    제 1 버스와 제 2 버스 사이의 통신들을 위한 브리지 회로.


KR1020177003279A 2014-07-07 2015-07-01 버스간 통신들의 브리징 KR102398515B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/325,238 US9720868B2 (en) 2014-07-07 2014-07-07 Bridging inter-bus communications
US14/325,238 2014-07-07
PCT/US2015/038899 WO2016007358A1 (en) 2014-07-07 2015-07-01 Bridging inter-bus communications

Publications (2)

Publication Number Publication Date
KR20170030569A KR20170030569A (ko) 2017-03-17
KR102398515B1 true KR102398515B1 (ko) 2022-05-13

Family

ID=53682833

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177003279A KR102398515B1 (ko) 2014-07-07 2015-07-01 버스간 통신들의 브리징

Country Status (6)

Country Link
US (1) US9720868B2 (ko)
EP (1) EP3167374B1 (ko)
JP (1) JP6464253B2 (ko)
KR (1) KR102398515B1 (ko)
CN (1) CN106537363B (ko)
WO (1) WO2016007358A1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10657067B1 (en) 2016-09-12 2020-05-19 Xilinx, Inc. Memory management unit with prefetch
FR3061326A1 (fr) * 2016-12-27 2018-06-29 Thales Dispositif et procede pour creer un environnement de confiance dans un systeme distribue
GB201806465D0 (en) 2018-04-20 2018-06-06 Nordic Semiconductor Asa Memory-access controll
US10719452B2 (en) 2018-06-22 2020-07-21 Xilinx, Inc. Hardware-based virtual-to-physical address translation for programmable logic masters in a system on chip
GB201810659D0 (en) * 2018-06-28 2018-08-15 Nordic Semiconductor Asa Secure-Aware Bus System
GB201810653D0 (en) 2018-06-28 2018-08-15 Nordic Semiconductor Asa Secure peripheral interconnect
GB201810662D0 (en) * 2018-06-28 2018-08-15 Nordic Semiconductor Asa Peripheral Access On A Secure-Aware Bus System
FR3089322B1 (fr) * 2018-11-29 2020-12-18 St Microelectronics Rousset Gestion des restrictions d’accès au sein d’un système sur puce
US11281810B1 (en) 2018-12-11 2022-03-22 Xilinx, Inc. Memory access protection in programmable logic device
US11030144B2 (en) * 2018-12-14 2021-06-08 Texas Instruments Incorporated Peripheral component interconnect (PCI) backplane connectivity system on chip (SoC)
CN110688328B (zh) * 2019-09-27 2023-03-14 山东华芯半导体有限公司 一种axi总线分主机映射集的可配置重映射实现方法
US11496418B1 (en) * 2020-08-25 2022-11-08 Xilinx, Inc. Packet-based and time-multiplexed network-on-chip
KR20240044695A (ko) * 2022-09-29 2024-04-05 삼성전자주식회사 전자 장치 및 그 제어 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2460331A (en) 2008-05-30 2009-12-02 Intel Corp Protocol shim for IP core incorporation in a PC

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7603550B2 (en) * 2002-04-18 2009-10-13 Advanced Micro Devices, Inc. Computer system including a secure execution mode-capable CPU and a security services processor connected via a secure communication path
WO2004046924A1 (en) 2002-11-18 2004-06-03 Arm Limited Processor switching between secure and non-secure modes
AU2003900764A0 (en) * 2003-02-20 2003-03-06 Secure Systems Limited Bus bridge security system and method for computers
KR100675850B1 (ko) * 2005-10-12 2007-02-02 삼성전자주식회사 AXI 프로토콜을 적용한 NoC 시스템
US7769929B1 (en) * 2005-10-28 2010-08-03 Altera Corporation Design tool selection and implementation of port adapters
JP4219964B2 (ja) 2006-04-06 2009-02-04 ソニー株式会社 ブリッジ、プロセッサユニット、情報処理装置およびアクセス制御方法
CN101299228B (zh) * 2008-01-26 2010-09-01 青岛大学 一种基于单cpu双总线的安全网络终端
US8489794B2 (en) 2010-03-12 2013-07-16 Lsi Corporation Processor bus bridge for network processors or the like
US20110103391A1 (en) * 2009-10-30 2011-05-05 Smooth-Stone, Inc. C/O Barry Evans System and method for high-performance, low-power data center interconnect fabric
US8575993B2 (en) * 2011-08-17 2013-11-05 Broadcom Corporation Integrated circuit with pre-heating for reduced subthreshold leakage
US8930724B2 (en) * 2011-08-17 2015-01-06 Broadcom Corporation Semiconductor device predictive dynamic thermal management
US8831021B2 (en) * 2011-09-25 2014-09-09 Qualcomm Incorporated System and method for dynamically configurable multi-window divergent protocol bridge
US20130145475A1 (en) * 2011-12-02 2013-06-06 Samsung Electronics Co., Ltd. Method and apparatus for securing touch input
GB2501274B (en) 2012-04-17 2020-05-13 Advanced Risc Mach Ltd Management of data processing security in a secondary processor
US8775757B2 (en) * 2012-09-25 2014-07-08 Apple Inc. Trust zone support in system on a chip having security enclave processor
US9063891B2 (en) 2012-12-19 2015-06-23 Advanced Micro Devices, Inc. Secure computer system for preventing access requests to portions of system memory by peripheral devices and/or processor cores
US9164938B2 (en) * 2013-01-02 2015-10-20 Intel Corporation Method to integrate ARM ecosystem IPs into PCI-based interconnect
GB2522906B (en) * 2014-02-10 2021-07-14 Advanced Risc Mach Ltd Region identifying operation for identifying a region of a memory attribute unit corresponding to a target memory address
GB2531844B (en) * 2014-10-31 2019-06-26 Hewlett Packard Development Co Hardware-protective data processing systems and methods using an application executing in a secure domain

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2460331A (en) 2008-05-30 2009-12-02 Intel Corp Protocol shim for IP core incorporation in a PC

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ARM Security Technology. Building a Secure System using TrustZone Technology.

Also Published As

Publication number Publication date
US20160004656A1 (en) 2016-01-07
JP2017521788A (ja) 2017-08-03
US9720868B2 (en) 2017-08-01
JP6464253B2 (ja) 2019-02-06
CN106537363A (zh) 2017-03-22
EP3167374B1 (en) 2018-09-12
CN106537363B (zh) 2019-03-19
KR20170030569A (ko) 2017-03-17
EP3167374A1 (en) 2017-05-17
WO2016007358A1 (en) 2016-01-14

Similar Documents

Publication Publication Date Title
KR102398515B1 (ko) 버스간 통신들의 브리징
CN112534418B (zh) 通过固定pcie物理传输网络的逻辑传输
US8745303B2 (en) Integrating non-peripheral component interconnect (PCI) resources into a computer system
JP7405822B2 (ja) プログラマブルデバイスのためのコンフィギュラブル・ネットワーク・オン・チップ
US7660922B2 (en) Mechanism to flexibly support multiple device numbers on point-to-point interconnect upstream ports
US7861027B2 (en) Providing a peripheral component interconnect (PCI)-compatible transaction level protocol for a system on a chip (SoC)
US9213866B1 (en) Circuits for and methods of preventing unauthorized access in an integrated circuit
JP7341142B2 (ja) システムオンチップのためのインラインecc機能
US11880333B2 (en) Peripheral component interconnect (PCI) backplane connectivity system on chip (SoC)
US9255968B2 (en) Integrated circuit with a high-speed debug access port
US8725919B1 (en) Device configuration for multiprocessor systems
EP3607450B1 (en) Apparatus and mechanism to bypass pcie address translation by using alternative routing
KR20180063128A (ko) 멀티스테이지 부트 이미지 로딩 및 프로그램가능 로직 디바이스들의 구성
JP2013088879A (ja) 情報処理装置
US20160188472A1 (en) Distributed implementation for cache coherence
TWI750386B (zh) 匯流排系統
JP6193910B2 (ja) インタロックバスとスプリットバスを接続するブリッジ回路を備えたバスシステム
JP7383645B2 (ja) システムオンチップにおけるプログラマブル論理マスタのためのハードウェアベースの仮想-物理アドレス変換
US10013385B2 (en) Programmable validation of transaction requests
KR100475438B1 (ko) 데이터 버스 시스템 및 버스간 크로스 액세스 방법
JP2008071285A (ja) プロセッサ間におけるデータ送受信システム
CN107273312B (zh) 具有工作存储器的计算单元用的存储器直接访问控制装置
Trynosky Serial backplane interface to a shared memory
Narmadha et al. Performance analysis of ADMA on bus based SoC-survey

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