KR101531735B1 - 시스템 온 칩(soc), 설계 구조 및 방법 - Google Patents

시스템 온 칩(soc), 설계 구조 및 방법 Download PDF

Info

Publication number
KR101531735B1
KR101531735B1 KR1020107025347A KR20107025347A KR101531735B1 KR 101531735 B1 KR101531735 B1 KR 101531735B1 KR 1020107025347 A KR1020107025347 A KR 1020107025347A KR 20107025347 A KR20107025347 A KR 20107025347A KR 101531735 B1 KR101531735 B1 KR 101531735B1
Authority
KR
South Korea
Prior art keywords
common bus
information
cells
soc
cell
Prior art date
Application number
KR1020107025347A
Other languages
English (en)
Other versions
KR20110015416A (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 KR20110015416A publication Critical patent/KR20110015416A/ko
Application granted granted Critical
Publication of KR101531735B1 publication Critical patent/KR101531735B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Bus Control (AREA)
  • Semiconductor Integrated Circuits (AREA)

Abstract

다수의 기능 코어들의 자동 집적을 가능하게 해주는 시스템 온 칩(SOC) 구조가 개시된다. SOC 구조는 칩 상의 공통 버스에 접속되어 있는 복수의 셀들을 통합한다. 각각의 셀은 기능 코어 및 기능 코어에 접속된 자동 집적 유닛(AIU)을 통합한다. 각각의 AIU는 다른 셀에 있는 AIU에 공통 버스를 통해 자신의 기능 코어에 대한 집적 정보를 전달한다. AIU들 사이의 정보 교환은 집적 유닛 자체에 의해 또는 컨트롤러에 의해 제어된다. 수신된 집적 정보에 기초하여, 각각의 AIU는 집적을 위해 임의의 필요한 구성 조정을 자동으로 행할 수 있다. 또한, 이러한 정보 교환에 기초하여, 기능 코어들은 SOC 동작 동안 필요에 따라 상호작용할 수 있다. 또한, 이러한 SOC 구조를 형성하는 관련 방법 및 이러한 SOC 구조에 대한 설계 구조가 개시된다.

Description

시스템 온 칩(SOC), 설계 구조 및 방법{SYSTEM-ON-CHIP(SOC), DESIGN STRUCTURE AND METHOD}
본 발명의 실시예는 일반적으로 시스템 온 칩(SOC; system-on-chip) 구조에 관한 것이며, 보다 상세하게는, 다수의 IP(intellectual property) 및 기타 코어의 자동 집적(automated integration)을 가능하게 해주는 SOC 구조, SOC 구조에 대한 설계 구조(design structure) 및 SOC 구조를 형성하는 관련 방법에 관한 것이다.
SOC는 공통 시스템 버스를 통해 상호접속되어 있는 다수의 기능 코어들(functional cores) 또는 매크로들(macros)을 통상적으로 통합한 집적 회로이다. 기능 코어는 다양한 써드파티(third party) IP 코어, 로직 코어, 메모리 코어, 프로세서 코어, 더스트 로직 코어(dust logic core) 및/또는 입력/출력 시스템 코어를 포함할 수 있다. 이들 SOC는 코어들의 수와 종류가 증가됨에 따라 점점 더 커지며 밀집되어 가고 있다. 이러한 크기와 밀도 증가의 결과로서 넷리스트(netlist) 생성 및 물리적 설계 동안 많은 기능 코어들을 통합하는 것의 복잡도로 인해 불가피하게 소요시간(TAT; turn around time)이 더 길어지게 된다. 따라서, 당해 기술 분야에서 소요 시간(TAT)을 최소화하도록 넷리스트 생성 및 물리적 설계를 단순화하기 위하여 SOC에서의 기능 코어들의 자동 집적을 가능하게 해주는 SOC 구조 및 이러한 SOC의 형성 방법에 대한 필요성이 존재한다.
본 발명은 다수의 IP 및 기타 코어의 자동 집적을 가능하게 해주는 SOC 구조, SOC 구조에 대한 설계 구조 및 SIC 구조를 형성하는 관련 방법을 제공하고자 한다.
따라서, 본 발명은 제1 양상에서, 공통 버스, 및 상기 공통 버스를 통해 통신하는 복수의 셀들을 포함하고, 각각의 셀은 상기 공통 버스에 접속된 집적 유닛(integration unit) 및 상기 집적 유닛에 접속된 기능 코어(functional core)를 포함하고, 상기 집적 유닛은 상기 공통 버스를 통해 모든 다른 셀들에 상기 기능 코어에 대한 집적 정보를 전달하도록 적응되고, 또한 상기 공통 버스를 통해 상기 모든 다른 셀들로부터의 대응하는 집적 정보를 수신하도록 적응되는 것인 시스템 온 칩(SOC) 구조를 제공한다.
바람직하게, 상기 집적 유닛은 상기 공통 버스와 통신하는 프로세서를 더 포함하고, 상기 프로세서는 상기 대응하는 집적 정보를 분석하고 상기 대응하는 집적 정보에 기초하여 상기 셀의 구성을 조정하도록 적응된다. 바람직하게, 상기 프로세서는 또한 상기 집적 정보를 선택하고 상기 모든 다른 셀들에 상기 집적 정보를 전달할 때를 결정하도록 적응된다. 바람직하게, 상기 집적 유닛은 상기 집적 정보를 저장하기 위한 제1 메모리 디바이스 및 상기 대응하는 집적 정보를 저장하기 위한 제2 메모리 디바이스를 더 포함한다. 바람직하게, 상기 집적 정보는 코어 유형 정보, 코어 구성 정보, 코어 기능 정보 및 코어 사용 정보 중 적어도 하나를 포함한다. 바람직하게, 상기 코어 구성 정보는 통신 프로토콜 정보를 포함한다. 바람직하게, 상기 집적 유닛은 통신 블록을 더 포함하며, 상기 셀들 전부의 모든 집적 유닛의 모든 통신 블록은 본질적으로 동일하고, 지정된 수의 통신 블록 핀을 포함하며, 각각의 통신 블록 핀은 상기 공통 버스를 통해 특정 넷(net)과 연관된 특정 식별자를 갖고, 상기 특정 식별자를 갖는 상기 각각의 통신 블록 핀은, 상이한 집적 유닛에 있으며 동일한 식별자를 갖는 통신 블록 핀이 상기 공통 버스를 통해 동일한 넷에 접속되도록, 상기 공통 버스를 통해 상기 특정 넷에 접속된다.
바람직하게, 상기 기능 코어는 IP 코어, 로직 코어, 메모리 코어, 프로세서 코어, 입력/출력(I/O) 코어 및 더스트 로직 코어 중 하나를 포함한다.
하나의 실시예에서, 시스템 온 칩(SOC) 구조는 공통 버스, 상기 공통 버스를 통해 통신하는 복수의 셀 - 각각의 셀은 상기 공통 버스에 접속된 집적 유닛 및 상기 집적 유닛에 접속된 기능 코어를 포함하고, 상기 집적 유닛은 상기 공통 버스를 통해 모든 다른 셀들에 상기 기능 코어에 대한 집적 정보를 전달하도록 적응되고, 또한 상기 공통 버스를 통해 상기 모든 다른 셀들로부터의 대응하는 집적 정보를 수신하도록 적응됨 - , 및 상기 공통 버스에 접속되며 상기 셀들 각각의 상기 집적 유닛과 통신하는 집적 유닛 컨트롤러를 포함하고, 상기 집적 유닛 컨트롤러는 상기 셀들 사이의 정보의 교환을 규제(regulate)하고 모니터하도록 적응된다. 바람직하게, 상기 집적 유닛은 상기 공통 버스와 통신하는 프로세서를 더 포함하고, 상기 프로세서는 상기 대응하는 집적 정보를 분석하고 상기 대응하는 집적 정보에 기초하여 상기 셀의 구성을 조정하도록 적응된다. 바람직하게, 상기 프로세서는 또한 상기 집적 정보를 선택하도록 적응된다. 바람직하게, 상기 집적 유닛은 상기 집적 정보를 저장하기 위한 제1 메모리 디바이스 및 상기 대응하는 집적 정보를 저장하기 위한 제2 메모리 디바이스를 더 포함한다. 바람직하게, 상기 집적 정보는 코어 유형 정보, 코어 구성 정보, 코어 기능 정보 및 코어 사용 정보 중 적어도 하나를 포함한다. 바람직하게, 상기 코어 구성 정보는 통신 프로토콜 정보를 포함한다. 바람직하게, 상기 집적 유닛은 통신 블록을 더 포함하며, 상기 셀들 전부의 모든 집적 유닛의 모든 통신 블록은 본질적으로 동일하고, 지정된 수의 통신 블록 핀을 포함하며, 각각의 통신 블록 핀은 상기 공통 버스를 통해 특정 넷(net)과 연관된 특정 식별자를 갖고, 상기 특정 식별자를 갖는 상기 각각의 통신 블록 핀은, 상이한 집적 유닛에 있으며 동일한 식별자를 갖는 통신 블록 핀이 상기 공통 버스를 통해 동일한 넷에 접속되도록, 상기 공통 버스를 통해 상기 특정 넷에 접속된다.
제2 양상에서, 시스템 온 칩(SOC) 구조를 형성하는 방법에 있어서, 상기 시스템 온 칩(SOC) 구조에 대하여 복수의 셀들 - 상기 셀들은 각각 집적 유닛 및 상기 집적 유닛에 접속된 기능 코어를 포함함 - 을 선택하고, 각각의 셀에 대하여, 상기 집적 유닛을 공통 버스에 접속시키고, 상기 공통 버스를 통해 상기 집적 유닛에 의해, 상기 공통 버스에 접속된 모든 다른 셀들에 상기 기능 코어에 대한 집적 정보를 전달하고, 상기 공통 버스를 통해 상기 집적 유닛에 의해, 상기 모든 다른 셀들로부터의 대응하는 집적 정보를 수신하는 것을 포함하는 시스템 온 칩 구조의 형성 방법이 제공된다.
본 방법은, 상기 집적 유닛에 의해, 상기 대응하는 집적 정보를 분석하고, 상기 대응하는 집적 정보에 기초하여 상기 셀의 구성을 조정하는 것을 더 포함할 수 있다. 본 방법은, 상기 집적 정보를 전달하기 전에, 상기 집적 유닛에 의해 상기 집적 정보를 선택하는 것을 더 포함할 수 있다. 본 방법은, 상기 집적 유닛에 의해, 상기 모든 다른 셀들에 상기 집적 정보를 전달할 때를 결정하는 것과, 상기 공통 버스에 접속된 집적 유닛 컨트롤러에 의해 상기 셀들 사이의 정보의 교환을 규제하고 모니터하는 것 중 하나를 더 포함할 수 있다. 바람직하게, 상기 집적 유닛은 상기 집적 정보를 저장하는 제1 메모리 디바이스 및 제2 메모리 디바이스를 포함하고, 상기 방법은 상기 대응하는 집적 정보를 수신한 후에, 상기 제2 메모리 디바이스에 상기 대응하는 집적 정보를 저장하는 것을 더 포함한다. 바람직하게, 상기 집적 정보는 코어 유형 정보, 코어 구성 정보, 코어 기능 정보 및 코어 사용 정보 중 적어도 하나를 포함하고, 상기 코어 구성 정보는 통신 프로토콜 정보를 포함한다. 바람직하게, 상기 집적 유닛은 통신 블록을 더 포함하며, 상기 셀들 전부의 모든 집적 유닛의 모든 통신 블록은 본질적으로 동일하고, 지정된 수의 통신 블록 핀을 포함하며, 각각의 통신 블록 핀은 상기 공통 버스를 통해 특정 넷과 연관된 특정 식별자를 갖고, 상기 집적 유닛을 상기 공통 버스에 접속시키는 것은, 상이한 집적 유닛에 있으며 동일한 식별자를 갖는 통신 블록 핀이 상기 공통 버스를 통해 동일한 넷에 접속되도록, 상기 각각의 통신 블록 핀을 상기 특정 넷에 접속시키는 것을 포함한다.
제3 양상에서, 기능 데이터(functional data)를 갖는 데이터 캐리어(data carrier)에 있어서, 상기 기능 데이터는, 컴퓨터 시스템으로 로딩되어 상기 컴퓨터 시스템 상에서 동작될 때, 상기 컴퓨터 시스템이 제2 양상의 방법의 모든 단계들을 수행할 수 있도록 하는 기능 컴퓨터 데이터 구조(functional computer data structure)를 포함하는 것인 데이터 캐리어가 제공된다.
제3 양상은 기계 판독가능한 매체에 구현되는 설계 구조의 형태로 실현될 수 있으며, 상기 설계 구조는 상기 공통 버스를 통해 통신하는 복수의 셀들을 포함하고, 각각의 셀은 상기 공통 버스에 접속된 집적 유닛 및 상기 집적 유닛에 접속된 기능 코어를 포함하고, 상기 집적 유닛은 상기 공통 버스를 통해 모든 다른 셀들에 상기 기능 코어에 대한 집적 정보를 전달하도록 적응되고, 또한 상기 공통 버스를 통해 상기 모든 다른 셀들로부터의 대응하는 집적 정보를 수신하도록 적응된다. 바람직하게, 설계 구조는 넷리스트를 포함한다. 바람직하게, 설계 구조는 집적 회로의 레이아웃 데이터의 교환에 사용되는 데이터 포맷으로서 저장 매체 상에 상주한다.
제4 양상에서, 컴퓨터 시스템으로 로딩되어 실행될 때 상기 컴퓨터 시스템으로 하여금 제2 양상에 따른 방법의 모든 단계들을 수행하도록 하는 컴퓨터 프로그램 코드가 제공된다.
전술한 바에 비추어, 본 명세서에서는 다수의 IP 코어 뿐만 아니라 기타 기능 코어의 자동 집적을 가능하게 해주는 시스템 온 칩(SOC) 구조의 실시예들이 개시된다. SOC 구조 실시예는 칩 상의 공통 시스템 버스에 접속되어 있는 복수의 셀들을 포함한다. 각각의 셀은 기능 코어 및 상기 기능 코어에 접속된 자동 집적 유닛(AIU; automated integration unit)을 통합한다. 각각의 셀의 각각의 AIU는 다른 셀의 AIU에 공통 버스를 통해 자신의 기능 코어에 대한 집적 정보(예를 들어, 코어 유형 정보, 코어 구성 정보, 코어 사용 정보 등)를 전달한다. AIU들 사이의 이러한 집적 정보의 교환은 집적 유닛 자체에 의해 또는 공통 버스에 또한 접속되어 있는 컨트롤러(즉, 아비터)에 의해 제어된다. 수신된 집적 정보에 기초하여, 각각의 AIU는 집적을 위해 임의의 필요한 구성 조정을 자동으로 행할 수 있다. 또한, 이 정보 교환에 기초하여, 기능 코어들은 SOC 동작 동안 필요에 따라 상호작용할 수 있다. 또한, 이러한 SOC 구조를 형성하는 관련 방법 및 이러한 SOC 구조에 대한 설계 구조가 개시된다.
보다 구체적으로, 본 발명의 SOC 구조의 실시예는 전부 공통 버스 및 이 공통 버스에 접속되며 이 공통 버스를 통해 서로 통신하는 복수의 셀들을 포함한다. 각각의 셀들은 기능 코어를 포함할 수 있다. 기능 코어는 예를 들어 IP 코어, 로직 코어, 메모리 코어, 프로세서 코어, 입력/출력(I/O) 코어, 더스트 로직 코어 등을 포함할 수 있다. 또한, 각각의 셀 내에서 기능 코어는 내장된 자동 집적 유닛(AIU)에 접속된다. 각각의 AIU는 공통 버스를 통해 모든 다른 셀들에 자신의 기능 코어에 대한 집적 정보를 전달하도록 적응되고, 또한 공통 버스를 통해 모든 다른 셀들로부터 대응하는 집적 정보를 수신하도록 적응된다. 따라서, AIU는 기능 코어들의 SOC 구조로의 자동 집적을 가능하게 한다.
구체적으로, AIU는 본질적으로 일반적이며(generic), 각각의 AIU가 통신 블록, 프로세서 및 2개의 메모리 인스턴스(memory instance)를 포함한다. 임의의 소정 셀에서, AIU의 통신 블록은 셀과 공통 버스 사이의 접속을 제공한다. 모든 셀 내의 모든 AIU의 모든 통신 블록들은 본질적으로 동일하다. 각각의 통신 블록은 동일하게 지정된 수의 통신 블록 핀을 포함하며, 이들 통신 블록 핀들 각각은 공통 버스를 통해 특정 넷와 자신을 연관시키는 특정 식별자를 갖는다. 각각의 통신 블록 핀은 공통 버스를 통해 자신이 연관되어 있는 그 특정 넷에 접속된다. 따라서, 동일한 식별자를 갖는 임의의 통신 블록 핀들은 상이한 집적 유닛의 상이한 통신 블록에 위치되어 있다 해도 공통 버스를 통해 동일한 넷에 접속된다. 그 결과, 각각의 셀 내에서, 요구되는 넷에 기능 코어가 적절하게 접속됨을 보장하도록 기능 코어 핀들은 적합한 통신 블록 핀에 접속된다.
또한, 임의의 소정 셀에서, AIU의 제1 메모리 디바이스는 자신의 기능 코어에 대한 집적 정보로 사전로딩된다(pre-loaded). 이 집적 정보는, 예를 들어, 코어 유형 정보, 코어 구성 정보(예를 들어, 통신 프로토콜 정보), 코어 기능 정보, 코어 사용 정보 등을 포함할 수 있다. AIU의 제2 메모리 디바이스는 다른 셀로부터 나중에 수신되는 대응하는 집적 정보를 저장한다. AIU 프로세서는 통신 블록을 통하여 공통 버스와 통신하며 또한 2개 메모리 인스턴스에 대한 액세스를 갖는다. 이 프로세서는, 제1 메모리 디바이스로부터, 다른 셀들에 통신 버스를 통해 전달되어야 하는 집적 정보를 선택하도록 적응된다. 또한, 이 프로세서는 다른 셀들로부터 대응하는 집적 정보를 수신하고 그 대응하는 집적 정보를 제2 메모리 디바이스 상에 저장하도록 적응된다. 셀들 사이의 집적 정보의 교환은 AIU에 의해 자가 제어될(self-controlled) 수 있거나, 또는 공통 버스에 또한 접속되어 있는 집적 유닛 컨트롤러(즉, 아비터)에 의해 중앙 제어될 수 있다.
각각의 AIU에서, 프로세서는 또한 다른 셀들로부터 수신된 대응하는 집적 정보를 분석하도록 적응된다. 이 분석에 기초하여, 프로세서는 셀의 구성을 조정할 수 있다. 그 다음, SOC의 기능 동작(functional operation) 동안, SOC 상의 무슨 다른 자원(즉, 다른 기능 코어)이 이용 가능한지 그리고 이들 다른 자원이 어떻게 액세스 및/또는 사용될 수 있는지 결정하기 위하여 AIU 프로세서에 의해 이 대응하는 집적 정보에 액세스될 수 있다. 따라서, 정보의 교환에 기초하여, 상이한 셀들의 기능 코어들은 필요에 따라 상호작용할 수 있다(즉, 자동 집적될 수 있음).
또한 본 명세서에서는 상기 기재한 SOC 구조를 형성하는 방법의 실시예가 개시된다. 본 방법 실시예는 각각의 셀이 기능 코어(예를 들어, IP 코어, 로직 코어, 메모리 코어, 프로세서 코어, 입력/출력(I/O) 코어, 더스트 로직 코어 등) 및 기능 코어에 접속된 자동 집적 유닛(AIU)을 포함하도록 다양한 셀들을 형성하는 것을 포함한다. 다음으로, 본 방법은 SOC 구조에 대하여 복수의 이러한 셀들을 선택하는 것을 포함한다. 각각의 셀에 대하여, 그 다음 AIU는 SOC 상의 공통 버스에 접속된다.
셀 형성 동안, 상기 상세하게 기술한 바와 같은 일반 AIU가 각각의 셀로 통합된다. 각각의 셀이 형성되고 각각의 셀의 각각의 AIU가 공통 버스에 접속되면, AIU들 사이의 정보 교환이 일어날 수 있다. 구체적으로, 본 방법 실시예는, AIU에 의해, 다른 셀들 전부에 전달되어야 하는 그들 각자의 기능 코어들에 관한 집적 정보를 선택하는 것을 포함할 수 있다. 이 집적 정보는 예를 들어 코어 유형 정보, 코어 구성 정보(예를 들어, 통신 프로토콜 정보), 코어 기능 정보, 코어 사용 정보 등을 포함할 수 있다. 그 다음, 하나의 AIU가 공통 버스에 접속되어 있는 모든 다른 셀들에 공통 버스를 통해 선택된 집적 정보를 전달한다. 그의 집적 정보를 브로드캐스트한 후에, 그 하나의 AIU는 모든 다른 셀들로부터 대응하는 집적 정보를 수신하고 그 정보를 자신의 제2 메모리 디바이스 상에 저장할 수 있다. 임의의 하나의 AIU가 정보를 전송하고 있을 때, 모든 다른 AIU들은 브로드캐스트 정보를 수신하여 그들 각자의 제2 메모리 디바이스 상에 저장하는 주시(listening) 모드로 유지된다. 하나의 AIU가 그의 정보를 전송했다면, 모든 집적 정보가 공유될 때까지 또다른 AIU에 의해 프로세스가 반복된다.
이러한 집적 정보의 교환은 AIU에 의해 자가 제어될 수 있거나, 또는 공통 버스에 또한 접속되어 있는 집적 유닛 컨트롤러에 의해 제어될 수 있다. 따라서, 본 방법의 하나의 실시예는, 각각의 AIU에 의해 개별적으로, 모든 다른 셀들에 집적 정보를 전달할 때를 결정하는 것을 포함한다. 본 방법의 또다른 실시예는 공통 버스에 접속되어 있는 집적 유닛 컨트롤러에 의해 셀들 사이의 정보의 교환을 규제하고 모니터하는 것을 포함한다.
정보의 교환이 제어되는 방식에 관계없이, 다른 셀들로부터 대응하는 집적 정보를 수신한 후에, 수신한 AIU는 다른 셀로부터의 대응하는 집적 정보를 그 자신의 제2 메모리 디바이스에 저장할 것이고, 필요에 따라 그에 액세스할 것이다. 예를 들어, 본 방법 실시예는, SOC의 기능 동작 동안 그 셀이 모든 다른 셀들과 통합될 수 있음을 보장하기 위하여, AIU에 의해 그리고 보다 구체적으로 AIU 내의 프로세서에 의해, 수신된 대응하는 집적 정보를 분석하고, 그 정보에 기초하여 셀의 구성을 조정하는 것을 포함할 수 있다. 또한, SOC의 기능 동작 동안, 소정의 셀 내의 AIU는 대응하는 집적 정보에 액세스할 수 있다. 이 정보에 기초하여, AIU는 SOC 상의 무슨 다른 자원(즉, 다른 기능 코어)이 이용 가능한지 그리고 이들 다른 자원이 어떻게 액세스 및/또는 사용될 수 있는지 결정할 수 있다. 따라서, 집적 정보의 교환은 SOC의 기능 동작 동안 상이한 셀들의 기능 코어들이 필요에 따라 상호작용할 수 있게 해준다.
또한 본 명세서에서는 상기 기재한 SOC 구조에 대한 설계 구조의 실시예가 개시된다. 이 설계 구조는 기계 판독가능한 매체에 구현될 수 있으며, 집적 회로의 레이아웃 데이터의 교환에 사용되는 데이터 포맷으로서 저장 매체 상에 상주할 수 있고, 넷리스트를 포함할 수 있다.
본 발명의 실시예들의 이들 및 기타 양상은 다음의 설명 및 첨부 도면과 함께 고려하면 더 잘 이해할 수 있을 것이다. 그러나, 다음의 설명은 본 발명의 실시예와 그의 수많은 구체적인 상세사항을 나타내지만 한정하는 것이 아니라 예시로써 주어진 것임을 이해하여야 한다. 본 발명의 범위로부터 벗어나지 않고서 본 실시예의 범위 내에서 수많은 변경 및 수정이 행해질 수 있고, 실시예는 모든 이러한 변경 및 수정을 포함한다.
본 발명에 따르면, 다수의 IP 및 기타 코어의 자동 집적을 가능하게 해주는 SOC 구조, SOC 구조에 대한 설계 구조 및 SIC 구조를 형성하는 관련 방법을 제공할 수 있다.
이제 본 발명의 바람직한 실시예가 첨부 도면을 참조하여 단지 예로써 기재될 것이다.
도 1은 본 발명의 예시적인 시스템 온 칩(SOC) 구조를 도시하는 개략 블록도이다.
도 2는 도 1의 SOC 구조로 통합될 수 있는 예시적인 셀을 도시하는 개략 블록도이다.
도 3은 본 발명의 방법의 실시예를 도시하는 흐름도이다.
도 4는 도 3의 방법 단계들 중 하나를 도시하는 흐름도이다.
도 5는 반도체 설계, 제조 및/또는 테스트에 사용되는 설계 프로세스를 도시하는 흐름도이다.
상기 언급한 바와 같이, SOC는 공통 시스템 버스를 통해 상호접속되어 있는 다수의 기능 코어들 또는 매크로들을 통상적으로 통합한 집적 회로이다. 기능 코어는 다양한 써드파티 IP 코어, 로직 코어, 메모리 코어, 프로세서 코어, 더스트 로직 코어 및/또는 입력/출력 시스템 코어를 포함할 수 있다. 이들 SOC는 코어들의 수와 종류가 증가됨에 따라 점점 더 커지며 밀집되어 가고 있다. 이러한 크기와 밀도 증가의 결과로서 넷리스트 생성 및 물리적 설계 동안 많은 기능 코어들을 통합하는 것의 복잡도로 인해 불가피하게 소요시간(TAT)이 더 길어지게 된다. 따라서, 당해 기술 분야에서 소요 시간(TAT)을 최소화하도록 넷리스트 생성 및 물리적 설계를 단순화하기 위하여 SOC에서의 기능 코어들의 자동 집적을 가능하게 해주는 구조 및 방법에 대한 필요성이 존재한다.
전술한 바에 비추어, 본 명세서에서는 다수의 IP 코어 뿐만 아니라 기타 기능 코어들의 자동 집적을 가능하게 해주는 시스템 온 칩(SOC) 구조의 실시예가 개시된다. SOC 구조 실시예는 칩 상의 공통 시스템 버스에 접속되어 있는 복수의 셀들을 포함한다. 각각의 셀은 기능 코어 및 기능 코어에 접속된 자동 집적 유닛(AIU)을 통합한다. 각각의 셀의 각각의 AIU는 다른 셀의 AIU에 공통 버스를 통해 자신의 기능 코어에 대한 집적 정보(예를 들어, 코어 유형 정보, 코어 구성 정보, 코어 사용 정보 등)를 전달한다. AIU들 사이의 이러한 집적 정보의 교환은 집적 유닛 자체에 의해 또는 공통 버스에 또한 접속되어 있는 컨트롤러(즉, 아비터)에 의해 제어된다. 수신된 집적 정보에 기초하여, 각각의 AIU는 집적을 위해 임의의 필요한 구성 조정을 자동으로 행할 수 있다. 또한, 이러한 정보 교환에 기초하여, 기능 코어들은 SOC 동작 동안 필요에 따라 상호작용할 수 있다. 또한 이러한 SOC 구조를 형성하는 관련 방법 및 이러한 SOC 구조에 대한 설계 구조가 개시된다.
도 1을 참조하면, 본 발명의 시스템 온 칩(SOC) 구조(100)의 실시예는 전부 공통 버스(150) 및 이 공통 버스(150)에 접속되며 이 공통 버스(150)를 통해 서로 통신하는 복수의 셀들(101)을 포함한다. 공통 버스(150)는 예를 들어 SOC(100)의 기능 동작에 사용되는 동일한 버스(즉, 시스템 버스)일 수 있다.
각각의 셀(101)은 기능 코어(130)(즉, 기능 매크로, 기능 블록 등)를 포함할 수 있다. 기능 코어(130)는 예를 들어 IP 코어, 로직 코어, 메모리 코어, 프로세서 코어, 입력/출력(I/O) 코어, 더스트 로직 코어 등을 포함할 수 있다. 따라서, 종래 기술의 SOC 구조와 같이, SOC 구조(100) 상의 셀들(101)의 조합은 다양한 IP 코어, 로직 코어, 메모리 코어, 프로세서 코어, 더스트 로직 코어 및/또는 입력/출력 시스템 코어를 통합할 수 있다.
그러나, 종래 기술의 SOC 구조와는 달리, 각각의 셀(101) 내에서 기능 코어(130)는 내장된 자동 집적 유닛(AIU)(120)에 접속되어 있다.
각각의 AIU(120)는 공통 버스(150)를 통해 모든 다른 셀(101)에 자신의 기능 코어(130)에 대한 집적 정보를 전달하도록 적응되고, 또한 공통 버스(150)를 통해 모든 다른 셀(101)로부터의 대응하는 집적 정보를 수신하도록 적응된다. 따라서, AIU(120)는 기능 코어(130)의 SOC 구조(100)로의 자동 집적을 가능하게 해준다. 이러한 자동 집적은, 모든 셀(101)이 집적에 필요한 모든 정보를 소유함을 보장하도록, SOC(100)의 초기화시(즉, SOC(100)의 최초 전원 시동), SOC(100)가 전원이 켜질 때마다 그리고/또는 셀(101)에 대해 변경이 행해지거나 또는 SOC(100)에 새로운 셀(101)이 추가될 때마다 일어날 수 있다.
보다 구체적으로, 도 1과 함께 도 2의 예시적인 셀 구조(101a)를 참조하면, 셀(101)로 통합되는 AIU(120)는 본질적으로 일반적이며 각각의 AIU(120)는 통신 블록(126), 프로세서(125), 및 2개의 메모리 인스턴스(121-122)를 포함한다. 소정의 셀(예를 들어, 셀(101a))에서, AIU(120)의 통신 블록(126)은 셀과 통신 버스(150) 사이의 접속을 제공한다. SOC(100)의 모든 셀(101)의 모든 AIU(120)의 모든 통신 블록(126)은 본질적으로 동일하며, 표준 통신 프로토콜(예를 들어, 다중 액세스 유선/무선 버스 프로토콜)을 채용한다. 각각의 통신 블록(126)은 동일한 지정된 수(예를 들어, 500, 1000, 1500 등)의 통신 블록 핀들(127)(즉, 통신 블록 비트)을 포함하며, 이들 통신 블록 핀(127) 각각은 공통 버스(150)를 통해 자신을 특정 넷(157)(즉, 특정 포트)과 연관시키는 특정 식별자(예를 들어, 핀 1, 핀 2 , 핀 3 등)를 갖는다. 각각의 통신 블록 핀(127)은 자신이 연관되어 있는 특정 넷(157)에 공통 버스(150)를 통해 접속된다. 따라서, 동일한 식별자를 갖는 임의의 통신 블록 핀(127)은 상이한 AIU의 상이한 통신 블록에 위치되어 있다 해도 공통 버스(150)를 통해 동일한 넷에 접속된다. 즉, 소정의 셀(예를 들어, 셀(101a))의 기능 코어(130) 구조에 관계없이, 그의 AIU(120)는 임의의 다른 셀(101)의 AIU(120)와 동일한 방식으로 공통 버스(150)에 접속된다. 그러나, 각각의 셀(101) 내에서, 기능 코어 핀(137)(즉, 기능 코어 비트)은 요구되는 넷(157)에 기능 코어(130)가 접속됨을 보장하도록 적합한 통신 블록 핀(127)에 접속되어야 한다.
이들 일반 통신 블록(126)은, 설계자가 SOC(100) 내의 다양한 셀들(101)을 공통 버스(150)에 용이하게 접속시킬 수 있게 함으로써, SOC(100) 제조 동안, 넷리스트 생성 시간을 상당히 감소시킨다. 구체적으로, 상기 설명한 바와 같이, 각각의 셀(101)에서, 실제 기능 코어 핀(137)과 특정 버스 포트 접속(157)이 AIU(120)에 의해 서로 분리되며, 칩 집적자(chip integrator)에 대하여(즉, 설계자, 넷리스트 생성자 등에 대하여) 복잡도를 제한한다. 즉, 넷리스트 생성 동안, 설계자는 모든 셀들(101)을 SOC(100)로 집적하기 위하여 각각의 셀(101)의 각각의 기능 코어(130)에 대하여 필요한 복잡한 기능, 구성 수요, 또는 래퍼 로직(wrapper logic)을 이해해야할 필요가 없다. 일반 통신 블록(126)은 기능 코어들(130)이 매우 일반적인 방식으로 공통 버스(150)에 접속될 수 있게 해준다. SOC(100) 상에서 셀(101)의 공통 버스(150)와의 접속을 기술하는 넷리스트를 생성하는데 있어서, 설계자(들)는 단순히 기능 코어(130)의 핀(137)이 통신 블록 핀(127 X0-Xn)에 접속되어 있으므로 적어도 통신 블록 핀(127 X0-Xn)이 공통 버스를 통해 연관된 포트(157)에 접속되어야 함을 알기만 하면 된다. 설계자(들)는 또한 특정 기능 코어에 대해 제한된 입력을 요할 수 있다는 것을 유의하여야 한다. 예를 들어, 설계자(들)는 소정의 셀(예를 들어, 셀(101a))의 기능 코어(130)가 SOC(100)와의 정확한 소프트웨어 상호작용을 보장하기 위하여 특정 I/O에의 액세스를 필요로 할 수 있다는 것을 알아야 할 수 있다(예를 들어, USB1은 I/O pin1에 접속되어야 하고, USB2는 I/O pin2에 접속되어야 하는 등등, 그리하여 하드웨어 및 비하드웨어 계층은 그들이 통신하고 있는 것들을 암).
임의의 소정 셀(예를 들어, 셀(101a))에서, AIU(120)의 제1 메모리 디바이스(121)(예를 들어, 비휘발성 메모리 디바이스)는 그 셀(101a)을 SOC(100)로 통합시키는데 필요한 모든 정보를 저장한다. 즉, 제1 메모리 디바이스(121)는 집적 정보로 사전 로딩된다. 이 집적 정보는 구체적으로 소정의 셀(101a) 내의 기능 코어에 관한 것이며, 예를 들어 코어 유형 정보(예를 들어, usb, 이더넷, 프로세서, 서데스, 비스트, 램, I/O,...), 코어 구성 정보(예를 들어, 공통 버스(150) 상의 선택된 어드레스 공간 및 비트 카운트와 같은 통신 프로토콜 정보), 코어 기능 정보, 및 코어 사용 정보(예를 들어, 외부 메모리가 필요한지 여부, 외부 메모리가 얼마나 필요한지, 이 외부 메모리에 전달하는데 사용할 어드레스 등)를 포함할 수 있다. AIU(120)의 제2 메모리 디바이스(122)(예를 들어, 또다른 비휘발성 메모리 디바이스)는 다른 셀들(101)로부터 나중에 수신되는 대응하는 집적 정보를 저장한다.
임의의 소정 셀(예를 들어, 셀(101a))의 AIU 프로세서(125)는 통신 블록(126)을 통하여 공통 버스(150)와 통신한다. 프로세서(125)는 또한 2개 메모리 인스턴스(121-122)에 대한 액세스를 갖는다. 이 프로세서(125)는, 제1 메모리 디바이스(121)로부터, 다른 셀들(101)에 공통 버스(150)를 통해 전달되어야 하는 집적 정보를 선택하도록 적응된다. 즉, 프로세서(125) 로직은 무슨 관련 집적 정보(예를 들어, 무슨 유형 정보, 구성 정보, 기능 정보, 사용 정보 등)가 통신 블록(126)을 통하여 공통 버스(150)에 그리고 SOC(100)의 다른 셀들(101)에 전달되어야 하는지 제어한다. 또한, 이 프로세서(125)는 다른 셀들(101)로부터 대응하는 집적 정보를 수신하고 그 대응하는 집적 정보를 제2 메모리 디바이스(122) 상에 저장하도록 적응된다.
셀들(101) 그리고 보다 구체적으로 AIU들(120) 사이의 집적 정보의 교환은 AIU(120)에 의해 자가 제어될 수 있거나, 또는 공통 버스(150)에 또한 접속되어 있는 집적 유닛 컨트롤러(110)(즉, 아비터)에 의해 중앙 제어될 수 있다. 구체적으로, SOC 구조(100)의 하나의 실시예에서, AIU(120)는 완전히 자율적이다. 즉, 각각의 AIU(120) 그리고 보다 구체적으로 각각의 셀(101)의 AIU(120) 내의 프로세서(125)는 자신의 셀로부터 모든 다른 셀들에 집적 정보를 전달할 때를 결정하도록 적응된다. 예를 들어, 프로세서(125)는 공통 버스(150)가 비어 있는지(free) 여부를 결정하도록(즉, 다른 어떠한 AIU(120)도 정보를 현재 전송(즉, 브로드캐스트)하고 있지 않음을 결정하도록) 적응되는 센서(128)(예를 들어, 일부 유형의 캐리어 감지 다중 액세스 루틴)를 포함할 수 있다. 공통 버스(150)가 비어있다면, 프로세서(125)는 그의 셀(101)에 대한 집적 정보를 전송(즉, 브로드캐스트)하기를 시작할 수 있다.
SOC 구조(101)의 또다른 실시예에서, 집적 유닛 컨트롤러(110)(즉, 아비터)는 공통 버스(150)에 접속된다. 이 집적 유닛 컨트롤러(110)는 각각의 셀(101)의 AIU(120)와 통신하고, 셀들(101) 사이의 정보의 교환을 규제 및 모니터하도록 적응된다. 즉, 각각의 셀(101)의 각각의 AIU(120)가 공통 버스(150)를 통해 전달할 때를 랜덤하게 결정하도록 하기보다는, 컨트롤러(110)가 이 결정을 행한다. 컨트롤러(110)는 또한 이러한 전달을 등록하고 추적할 수 있다. 컨트롤러(110)는 또한, SOC(100)의 얼마나 많은 셀(101)이 집적 정보를 전송했는지 브로드캐스트하도록, 늦게 웨이킹된(waking) 셀 또는 신규 셀에 일부 트랜잭션을 놓쳤을 수 있음을 경보하도록 그리고/또는 모든 셀들(101)에 재초기화(re-initialization) 루틴이 개시되어야 함을 신호전달하도록, 적응될 수 있다. 어느 실시예에서든, 하나의 셀(예를 들어, 셀(101a))이 집적 정보를 전송하고 있을 때, 모든 다른 셀들(101)은 주시-저장 상태로 유지된다.
각각의 AIU(120)에서, 프로세서(125)는 또한 다른 셀들(101)로부터 수신되는 대응하는 집적 정보를 분석하도록 적응된다. 이 분석에 기초하여, 기능 SOC 동작 동안 SOC 구조(100) 상의 셀들(101)의 자동 집적을 가능하게 하도록, 프로세서(125)는 셀(101)의 구성 그리고 보다 구체적으로 기능 코어(130)의 구성을 필요에 따라 조정할 수 있다.
예를 들어, 상기 언급한 바와 같이, 하나의 셀(101)이 집적 정보를 전송(즉, 브로드캐스트)할 때, 모든 다른 셀들은 주시-저장 상태로 유지된다. 다른 셀들에 의해 무슨 집적 정보가 수신되는지에 기초하여, 이들은 그에 따라 그 구성을 조정할 것이다. 예를 들어, 단일 셀(예를 들어, 셀(101a))의 AIU(120)가 특정 어드레스 공간에의 요구(claim)를 나타내는 집적 정보를 내보내는 경우, 모든 다른 셀들(101)의 모든 다른 AIU들(120)은 이 정보를 기록한다. 그 다음, 또다른 셀이 공통 버스(150)의 제어를 얻고 자신의 집적 정보를 전송할 때, 셀(101)이 이미 취한 것과는 다른 어드레스 공간을 선택해야 한다. 따라서, 각각의 AIU(120)는 버스를 통해 집적 정보를 전송(즉, 브로드캐스트)할 때 자신의 순서 동안 마스터로서 기능한다.
집적 정보의 교환이 완료되면, 기능 SOC 동작이 개시될 수 있으며, 그 동안 AIU들(120)을 통하여 셀들(101) 사이의 상호작용이 조정된다. 구체적으로, SOC(100)의 기능 동작 동안, 각각의 셀(101)의 프로세서(125)는 SOC(100) 상의 무슨 다른 자원(즉, 다른 기능 코어(130))이 이용 가능한지 그리고 이들 다른 자원이 어떻게 액세스 및/또는 사용될 수 있는지 결정하기 위하여 제2 메모리(122)의 대응하는 집적 정보에 액세스할 수 있다. 이 집적 정보의 교환으로 인해, 넷리스트 형성 또는 물리적 설계 단계 동안 SOC(100) 내에 다른 어떤 것이 존재하는지 종래에 알아야 했던 것이 필요하지 않다. 어떻게 셀들(101)이 거동하고 SOC(100) 내의 다른 셀들(101)과 상호작용(즉, 데이터의 송수신)하는지는 집적 정보의 교환에 기초하여 결정된다.
도 1 및 도 2와 함께 도 3을 참조하면, 본 명세서에서는 또한 상기 기재한 SOC 구조(100)를 형성하는 방법의 실시예가 개시되어 있다. 본 방법 실시예는 각각의 셀(101)이 기능 코어(130)(예를 들어, IP 코어, 로직 코어, 메모리 코어, 프로세서 코어, 입력/출력(I/O) 코어, 더스트 로직 코어 등) 및 기능 코어(130)에 접속된 자동 집적 유닛(AIU)(120)을 포함하도록 다양한 셀들(101)을 형성하는 것을 포함한다(302, 도 2의 예시적인 셀(101a) 참조). 다음으로, 본 방법은 SOC 구조(101)에 대하여 복수의 이들 셀(101)을 선택하는 것을 포함한다(304). 각각의 셀(101)에 대하여, AIU(120)는 그 다음 SOC(100) 상의 공통 버스(150)에 접속된다(306, 도 1 참조). 공통 버스(150)는, 예를 들어 SOC(즉, 시스템 버스)의 기능 동작에 사용되는 동일한 버스일 수 있다.
프로세스 302에서의 셀 형성 동안, 각각의 셀의 AIU(120)는 상기 상세하게 기재한 바와 같이 일반 AIU이어야 한다. 즉, 도 2의 예시적인 셀(101a)에 도시된 바와 같이, 각각의 셀의 각각의 AIU(120)는 통신 블록(126), 프로세서(125), 사전 로딩된 셀 특정(cell-specific) 집적 정보를 저장하는 제1 메모리 디바이스(121) 및 다른 셀들로부터의 대응하는 집적 정보를 나중에 저장하도록 구성되는 제2 메모리 디바이스(122)를 포함하도록 형성되어야 한다. 모든 셀(101)의 모든 AIU(120)의 모든 통신 블록(126)은 본질적으로 동일하여야 한다. 각각의 통신 블록(126)은 동일한 지정된 수의 통신 블록 핀(127)(즉, 통신 블록 비트)을 가져야 하며, 이들 통신 블록 핀(127)의 각각은 공통 시스템 버스(150)를 통해 자신을 특정 넷(157)(즉, 특정 포트)과 연관시키는 특정 식별자를 가져야 한다. 그러면, 기능 코어 핀(137)(즉, 기능 코어 비트)은 적합한 통신 블록 핀(127)에(즉, AIU가 없을 때 접속될 넷과 연관되어 있는 통신 블록 핀에) 접속된다. AIU(120)가 공통 버스(150)에 접속될 때, 각각의 통신 블록 핀(127)은 그와 연관되어 있는 특정 넷(157)에 접속되며, 따라서 기능 코어(130)가 버스(150)를 통해 요구되는 넷(157)에 접속됨을 보장한다.
프로세스 306에서 각각의 셀(101) 그리고 보다 구체적으로 각각의 셀(101)의 각각의 AIU(120)가 공통 버스(150)에 접속되면, 셀들(101) 그리고 보다 구체적으로 AIU들(120) 사이의 통신이 일어날 수 있다(즉, AIU들(120) 사이의 집적 정보의 교환이 공통 버스(150)를 통해 일어날 수 있음)(308). 구체적으로, 본 방법 실시예는, 모든 셀(101)의 AIU(120)에 의해, 모든 다른 셀들(101)에 전달(즉, 전송, 브로드캐스트 등)되어야 하는 자신의 각자의 기능 코어(130)에 관한 집적 정보를 선택하는 것을 포함할 수 있다(310). 이 집적 정보는, 예를 들어 코어 유형 정보, 코어 구성 정보(예를 들어, 통신 프로토콜 정보), 코어 기능 정보, 코어 사용 정보 등을 포함할 수 있다. 그 다음, 하나의 AIU(120)(예를 들어, 셀(101a)의 AIU(120))가 공통 버스(150)에 접속된 모든 다른 셀들(101)에 공통 버스(150)를 통해 그의 선택된 집적 정보를 전달(즉, 전송, 브로드캐스트 등)한다(312). 그의 집적 정보를 전송하기 전이나 후에, 셀(101a)의 그 하나의 AIU(120)는 또한 다른 셀의 모든 AIU(120)로부터의 대응하는 집적 정보를 수신하여 저장할 수 있다. 셀(101a)의 그 하나의 AIU(120)가 그의 정보를 전송했다면, 모든 집적 정보가 공유될 때까지 프로세스는 또다른 AIU에 의해 반복될 수 있다(314). 따라서, 이 프로세스(308) 동안 언제든지 임의의 하나의 AIU가 집적 정보를 전달(즉, 전송, 브로드캐스트 등)하고 있을 수 있고, 모든 다른 것들이 그 집적 정보를 주시(즉, 수신 및 저장)하고 있을 수 있다.
프로세스 308에서 집적 정보의 교환은, 도 1에 도시되어 있는 바와 같이, AIU(120)에 의해 자가 제어될 수 있거나, 또는 공통 버스(150)에 또한 접속되어 있는 집적 유닛 컨트롤러(110)(즉, 아비터)에 의해 제어될 수 있다. 구체적으로, 도 4를 참조하면, 본 방법의 하나의 실시예는, 각각의 AIU에 의해 개별적으로, 모든 다른 셀들에 집적 정보를 전달할 때를 결정하는 것을 포함한다(402-404). 이 결정 프로세스는 먼저, AIU(120)에 의해, 공통 버스가 비어 있는지 여부를 결정하는 것을 포함할 수 있다. 즉, AIU(120)는 전부 공통 버스를 주시하고(402)(예를 들어, 일부 유형의 캐리어 감지 다중 액세스 루틴을 사용하여), 임의의 다른 AIU(120)가 공통 버스(150)를 통해 정보를 전송하고 있는지 여부를 결정한다(즉, 공통 버스(150) 상에 데이터가 있는지 여부를 결정함)(404). 공통 버스(150)가 비어있지 않다면(즉, 또다른 AIU(120)에 의해 데이터가 브로드캐스드되고 있다면), 주시하고 있는 AIU(120)는 임의의 수신된 집적 정보를 그들 각자의 제2 메모리 디바이스(122)에 저장할 것이다(406). 공통 버스(150)가 비어 있다면(즉, 버스(150) 상에 데이터가 없다면), 하나의 셀(예를 들어, 셀(101a))의 AIU(120)는 모든 다른 셀들(101)에 공통 버스(150)를 통해 자신의 기능 코어(130)에 대한 집적 정보를 전송(즉, 전달, 브로드캐스트 등)하기를 시작할 수 있다(408). 모든 AIU(120)가 그들의 집적 정보를 공유할 기회를 가질 때까지 프로세스 402-408은 계속된다. 본 방법의 다른 실시예에서, 프로세스 308에서 셀들(101) 사이의 집적 정보의 교환은 공통 버스(150)에 접속된 집적 유닛 컨트롤러(110)에 의해 중앙 규제 및 모니터된다. 즉, 각각의 셀(101)의 각각의 AIU(120)가 공통 버스(150)를 통해 전달할 때를 자율적으로 그리고 랜덤으로 결정하도록 하기보다는, 컨트롤러(110)가 이 결정을 행한다. 구체적으로, 셀들 사이의 정보의 교환은 중앙 컨트롤러(110)에 의해 등록되고 추적된다. 또한, 이 중앙 컨트롤러(110)에 의해, SOC(100)의 셀들(101)에 집적 정보를 이미 전송한 셀들의 수에 대해 통지될 수 있거나, 이 중앙 컨트롤러(110)에 의해, 늦게 웨이킹된 셀들 또는 신규 셀들에 일부 트랜잭션을 놓쳤을 수 있음이 경보될 수 있거나, 그리고/또는 이 중앙 컨트롤러(110)에 의해, 모든 셀들(101)에 재초기화 루틴이 개시되어야 함이 통지될 수 있다. 어느 실시예에서든, 임의의 하나의 셀이 집적 정보를 전송하고 있을 때, 모든 다른 셀들은 주시-저장 상태로 유지된다.
이들 실시예의 각각에서, 다른 셀들로부터 대응하는 집적 정보를 수신한 후에, 수신 AIU는 그 자신의 제2 메모리 디바이스에 다른 셀들로부터의 대응하는 집적 정보를 저장할 것이고(312), 필요에 따라 그에 액세스할 것이다. 예를 들어, 본 방법 실시예는, AIU(120)에 의해 그리고 보다 구체적으로 AIU(120) 내의 프로세서(125)에 의해, 다른 셀들(101)로부터 수신되어진 임의의 수신된 대응하는 집적 정보를 분석하고, SOC(100)의 기능 동작 동안 모든 셀들(101)이 집적될 수 있음을 보장하기 위하여, 수신된 정보에 기초하여 그들 각자의 셀(101)의 구성을 조정하는 것을 포함할 수 있다(316). 또한, 프로세스 308-316에서 집적 정보의 교환이 완료되고 임의의 구성 조정이 행해졌다면, SOC(100)의 기능 동작이 개시될 수 있다(318). SOC(100)의 기능 동작 동안, SOC(101) 상에서 무슨 다른 자원(즉, 다른 기능 코어)이 이용 가능한지 그리고 이들 다른 자원이 어떻게 액세스 및/또는 사용될 수 있는지 결정하기 위하여, 임의의 소정 셀(예를 들어, 셀(101a))에서 AIU 프로세서(125)에 의해 제2 메모리(122)에 저장되어 있는 대응하는 집적 정보에 액세스될 수 있다. 따라서, 수신된 집적 정보에 기초하여, 상이한 셀들(101)의 기능 코어들(130)이 필요에 따라 상호작용할 수 있다(즉, 자동 집적될 수 있음).
또한 본 명세서에서는 상기 기재한 SOC 구조에 대한 설계 구조의 실시예가 개시된다. 이 설계 구조는 기계 판독가능한 매체로 구현될 수 있고, 집적 회로의 레이아웃 데이터의 교환에 사용되는 데이터 포맷으로서 저장 매체 상에 상주할 수 있고, 넷리스트를 포함할 수 있다. 구체적으로, 도 5는 예를 들어 반도체 설계, 제조 및/또는 테스트에 사용되는 예시적인 설계 플로우(500)의 블록도를 도시한다. 설계 플로우(500)는 설계되고 있는 IC의 유형에 따라 다양할 수 있다. 예를 들어, ASIC(application specific IC)을 구축하기 위한 설계 플로우(500)는 표준 컴포넌트를 설계하기 위한 설계 플로우(500)와 상이할 수 있다. 설계 구조(520)는 바람직하게 설계 프로세스(510)에의 입력이고, IP 프로바이더, 코어 개발자, 또는 기타 설계 회사로부터 나올 수 있거나, 또는 설계 플로우의 오퍼레이터에 의해 또는 기타 소스로부터 생성될 수 있다. 설계 구조(520)는 하드웨어 기술 언어(HDL; hardware-description language)(예를 들어, Verilog, VHDL, C 등) 또는 개략도 형태로 도 1 및 도 2에 도시된 바와 같은 본 발명의 실시예를 포함한다. 설계 구조(520)는 하나 이상의 기계 판독가능한 매체 상에 포함될 수 있다. 예를 들어, 설계 구조(520)는 도 1 및 도 2에 도시된 바와 같은 본 발명의 실시예의 그래픽 표현 또는 텍스트 파일일 수 있다. 설계 프로세스(510)는 도 1 및 도 2에 도시된 바와 같은 본 발명의 실시예를 넷리스트(580)로 통합하며(또는 변환하며), 넷리스트(580)는 예를 들어, 적어도 하나의 기계 판독가능한 매체 상에 기록되며 집적 회로 설계의 다른 요소 및 회로에의 접속을 기술하는 와이어, 트랜지스터, 로직 게이트, 제어 회로, I/O, 모델 등의 리스트이다. 예를 들어, 매체는 CD, 콤팩트 플래시, 기타 플래시 메모리, 인터넷을 통하여 보내질 데이터 패킷, 또는 기타 네트워킹 적합한 수단일 수 있다. 통합은 반복 프로세스일 수 있으며, 회로에 대한 파라미터 및 설계 사양에 따라 넷리스트(580)가 1회 이상 재통합될 수 있다.
설계 프로세스(510)는 다양한 입력, 예를 들어, 소정의 제조 기술(예를 들어, 상이한 기술 노드, 32nm, 45nm, 90nm 등), 설계 사양(540), 특성 데이터(550), 검증 데이터(560), 설계 룰(570), 및 테스트 데이터 파일(585)(테스트 패턴 및 기타 테스트 정보를 포함할 수 있음)에 대하여, 모델, 레이아웃, 및 부호 표현을 포함한, 일반적으로 사용되는 요소, 회로, 및 디바이스 세트를 수용할 수 있는 라이브러리 요소(530)로부터의 입력을 사용하는 것을 포함할 수 있다. 설계 프로세스(510)는 예를 들어 타이밍 분석, 검증, 설계 룰 체크, 배치 및 라우팅 동작 등과 같은 표준 회로 설계 프로세스를 더 포함할 수 있다. 집적 회로 설계 기술 분야에서의 숙련자라면, 본 발명의 범위 및 사상에서 벗어나지 않고서, 설계 프로세스(510)에 사용되는 가능한 전자 설계 자동화 툴 및 애플리케이션의 범위를 알 수 있을 것이다. 본 발명의 설계 구조는 임의의 특정 설계 플로우에 한정되지 않는다.
설계 프로세스(510)는 바람직하게, 도 1 및 도 2에 도시된 바와 같은 본 발명의 실시예를, 임의의 추가적인 집적 회로 설계 또는 데이터(적용 가능한 경우)와 함께 제2 설계 구조(590)로 변환한다. 설계 구조(590)는 집적 회로의 레이아웃 데이터의 교환에 사용되는 데이터 포맷 및/또는 부호 데이터 포맷(예를 들어, GDSⅡ(GSD2), GL1, OASIS, 맵 파일, 또는 이러한 설계 구조를 저장하기 위한 임의의 기타 적합한 포맷)으로 저장 매체 상에 상주한다. 설계 구조(590)는 예를 들어, 부호 데이터, 맵 파일, 테스트 데이터 파일, 설계 컨텐츠 파일, 제조 데이터, 레이아웃 파라미터, 와이어, 금속 레벨, 비아, 형상, 제조 라인을 통한 라우팅을 위한 데이터, 및 도 1 및 도 2에 도시된 바와 같은 본 발명의 실시예를 생산하도록 반도체 제조자에 의해 요구되는 임의의 기타 데이터와 같은 정보를 포함할 수 있다. 그 다음, 설계 구조(590)는 단계 595로 진행될 수 있으며, 여기에서는 예를 들어 설계 구조(590)가 테입아웃(tape-out)으로 진행되고, 제조에 배포되고, 마스크 하우스에 배포되며, 또다른 설계 하우스로 보내지고, 고객에게 다시 보내지는 등의 일이 행해진다.
따라서, 상기에서는 다수의 IP 코어 뿐만 아니라 기타 기능 코어의 자동 집적을 가능하게 해주는 SOC 구조의 실시예가 개시된다. SOC 구조 실시예는 칩 상의 공통 시스템 버스에 접속된 복수의 셀들을 포함한다. 각각의 셀은 기능 코어 및 기능 코어에 접속되어 있는 자동 집적 유닛(AIU)을 통합한다. 각각의 셀의 각각의 AIU는 다른 셀의 AIU에 공통 버스를 통해 자신의 기능 코어에 대한 집적 정보(예를 들어, 코어 유형 정보, 코어 구성 정보, 코어 사용 정보 등)를 전달한다. AIU들 사이의 이러한 집적 정보의 전달은 집적 유닛 자체에 의해 또는 공통 버스에 또한 접속되어 있는 컨트롤러(즉, 아비터)에 의해 제어된다. 수신된 집적 정보에 기초하여, 각각의 AIU는 집적을 위해 임의의 필요한 구성 조정을 자동으로 행할 수 있다. 또한, 이 정보의 교환에 기초하여, 기능 코어들은 SOC 동작 동안 필요에 따라 상호작용할 수 있다. 각각의 셀 내에 AIU를 배치하고 공통 일반 버스 구조를 이용함으로써, 설계자들이 거의 무조건 SOC 내의 다양한 셀들을 접속시킬 수 있도록 하고 시스템 내에서 어떻게 기능할지 결정하는데 셀들 자체에 의존함으로써, 넷리스트 생성 시간이 크게 감소될 수 있다. 또한, 이러한 SOC 구조를 형성하는 관련 방법 및 이러한 SOC 구조에 대한 설계 구조가 개시된다.
100: 시스템 온 칩(SOC) 구조
120: 자동 집적 유닛(AIU)
130: 기능 코어
150: 공통 버스

Claims (10)

  1. 시스템 온 칩(SOC; system-on-chip) 구조에 있어서,
    공통 버스; 및
    상기 공통 버스를 통해 통신하는 복수의 셀들을 포함하고,
    각각의 셀은 상기 공통 버스에 접속된 집적 유닛(integration unit) 및 상기 집적 유닛에 접속된 기능 코어(functional core)를 포함하고,
    상기 집적 유닛은 상기 공통 버스를 통해 모든 다른 셀들에 상기 기능 코어에 대한 집적 정보를 전달하도록 구성되고, 또한 상기 공통 버스를 통해 상기 모든 다른 셀들로부터의 대응하는 집적 정보를 수신하도록 구성되는 것인 시스템 온 칩 구조.
  2. 시스템 온 칩(SOC; system-on-chip) 구조에 있어서,
    공통 버스;
    상기 공통 버스를 통해 통신하는 복수의 셀들 - 각각의 셀은 상기 공통 버스에 접속된 집적 유닛(integration unit) 및 상기 집적 유닛에 접속된 기능 코어(functional core)를 포함하고, 상기 집적 유닛은 상기 공통 버스를 통해 모든 다른 셀들에 상기 기능 코어에 대한 집적 정보를 전달하도록 구성되고, 또한 상기 공통 버스를 통해 상기 모든 다른 셀들로부터의 대응하는 집적 정보를 수신하도록 구성됨 -; 및
    상기 공통 버스에 접속되며 상기 셀들 각각의 상기 집적 유닛과 통신하는 집적 유닛 컨트롤러;를 포함하고, 상기 집적 유닛 컨트롤러는 상기 셀들 사이의 정보의 교환을 규제(regulate)하고 모니터하도록 구성되는 것인 시스템 온 칩 구조.
  3. 시스템 온 칩(SOC) 구조를 형성하는 방법에 있어서,
    상기 시스템 온 칩(SOC) 구조에 대하여 복수의 셀들 - 각각의 셀은 각각 집적 유닛 및 상기 집적 유닛에 접속된 기능 코어를 포함함 - 을 선택하고;
    상기 각각의 셀에 대하여,
    상기 집적 유닛을 공통 버스에 접속시키고;
    상기 공통 버스를 통해 상기 집적 유닛에 의해, 상기 공통 버스에 접속된 모든 다른 셀들에 상기 기능 코어에 대한 집적 정보를 전달하고;
    상기 공통 버스를 통해 상기 집적 유닛에 의해, 상기 모든 다른 셀들로부터의 대응하는 집적 정보를 수신하는 것을 포함하는 시스템 온 칩 구조의 형성 방법.
  4. 제3항에 있어서, 상기 집적 유닛에 의해, 상기 대응하는 집적 정보를 분석하고, 상기 대응하는 집적 정보에 기초하여 상기 각각의 셀의 구성을 조정하는 것을 더 포함하는 시스템 온 칩 구조의 형성 방법.
  5. 제3항에 있어서, 상기 집적 정보를 전달하기 전에, 상기 집적 유닛에 의해 상기 집적 정보를 선택하는 것을 더 포함하는 시스템 온 칩 구조의 형성 방법.
  6. 제3항에 있어서, 상기 집적 유닛은 상기 집적 정보를 저장하는 제1 메모리 디바이스 및 제2 메모리 디바이스를 포함하고,
    상기 방법은, 상기 대응하는 집적 정보를 수신한 후에, 상기 제2 메모리 디바이스에 상기 대응하는 집적 정보를 저장하는 것을 더 포함하는 것인 시스템 온 칩 구조의 형성 방법.
  7. 제3항에 있어서, 상기 집적 유닛은 통신 블록을 더 포함하고,
    상기 셀들 전부의 모든 집적 유닛의 모든 통신 블록은 본질적으로 동일하고, 지정된 수의 통신 블록 핀들을 포함하며 각각의 통신 블록 핀은 상기 공통 버스를 통해 특정 넷(net)과 연관된 특정 식별자를 갖고;
    상기 집적 유닛을 상기 공통 버스에 접속시키는 것은, 상이한 집적 유닛에 있으며 동일한 식별자를 갖는 통신 블록 핀들이 상기 공통 버스를 통해 동일한 넷에 접속되도록 상기 각각의 통신 블록 핀을 상기 특정 넷에 접속시키는 것을 포함하는 것인 시스템 온 칩 구조의 형성 방법.
  8. 시스템 온 칩(SOC) 구조를 형성하는 방법에 있어서,
    상기 시스템 온 칩(SOC) 구조에 대하여 복수의 셀들을 선택하는 단계 - 각각의 셀은 각각 집적 유닛 및 상기 집적 유닛에 접속된 기능 코어를 포함함 -;
    상기 각각의 셀에 대하여,
    상기 집적 유닛을 공통 버스에 접속시키는 단계;
    상기 집적 유닛에 의해, 상기 공통 버스의 이용가능성(availability)을 결정하는 단계;
    상기 공통 버스를 통해 상기 집적 유닛에 의해, 상기 공통 버스가 이용가능할 때 상기 공통 버스에 접속된 모든 다른 셀들에 상기 기능 코어에 대한 집적 정보를 전달하는 단계;
    상기 공통 버스를 통해 상기 집적 유닛에 의해, 상기 모든 다른 셀들로부터의 대응하는 집적 정보를 수신하는 단계;를 포함하는 시스템 온 칩 구조의 형성 방법.
  9. 시스템 온 칩(SOC) 구조를 형성하는 방법에 있어서,
    공통 버스를 제공하는 단계;
    집적 유닛 컨트롤러를 상기 공통 버스에 접속시키는 단계;
    상기 시스템 온 칩(SOC) 구조에 대하여 복수의 셀들을 선택하는 단계 - 각각의 셀은 각각 집적 유닛 및 상기 집적 유닛에 접속된 기능 코어를 포함함 -;
    상기 각각의 셀에 대하여,
    상기 집적 유닛을 공통 버스에 접속시키는 단계;
    상기 공통 버스를 통해 상기 집적 유닛에 의해, 상기 공통 버스에 접속된 모든 다른 셀들에 상기 기능 코어에 대한 집적 정보를 전달하는 단계(communicating) - 상기 전달하는 단계는 상기 집적 유닛 컨트롤러에 의해 규제되고 모니터됨 - ;
    상기 공통 버스를 통해 상기 집적 유닛에 의해, 상기 모든 다른 셀들로부터의 대응하는 집적 정보를 수신하는 단계;를 포함하는 시스템 온 칩 구조의 형성 방법.
  10. 컴퓨터 판독가능 매체에 있어서,
    상기 컴퓨터 판독가능 매체는 컴퓨터 프로그램을 포함하고,
    상기 컴퓨터 프로그램은, 컴퓨터 시스템으로 로딩되어 실행될 때, 상기 컴퓨터 시스템으로 하여금 상기 청구항 제3항 내지 제9항 중 어느 한 항에 따른 방법의 모든 단계들을 수행하도록 하는 컴퓨터 프로그램 코드를 포함하는
    컴퓨터 판독가능 매체.
KR1020107025347A 2008-05-22 2009-05-22 시스템 온 칩(soc), 설계 구조 및 방법 KR101531735B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/125,255 US7904872B2 (en) 2008-05-22 2008-05-22 System-on-chip (SOC), design structure and method
US12/125,255 2008-05-22
PCT/EP2009/056213 WO2009141420A1 (en) 2008-05-22 2009-05-22 System-on-chip (soc), design structure and method

Publications (2)

Publication Number Publication Date
KR20110015416A KR20110015416A (ko) 2011-02-15
KR101531735B1 true KR101531735B1 (ko) 2015-06-25

Family

ID=41016992

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107025347A KR101531735B1 (ko) 2008-05-22 2009-05-22 시스템 온 칩(soc), 설계 구조 및 방법

Country Status (6)

Country Link
US (1) US7904872B2 (ko)
EP (1) EP2283438B1 (ko)
JP (1) JP4731640B1 (ko)
KR (1) KR101531735B1 (ko)
TW (1) TWI451269B (ko)
WO (1) WO2009141420A1 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7904873B2 (en) * 2008-05-22 2011-03-08 International Business Machines Corporation System-on-chip (SOC), design structure and method
TWI411930B (zh) * 2010-07-15 2013-10-11 Faraday Tech Corp 系統階層模擬/驗證系統及其方法
US8397188B1 (en) * 2010-09-21 2013-03-12 Altera Corporation Systems and methods for testing a component by using encapsulation
US8752210B2 (en) 2012-01-10 2014-06-10 International Business Machines Corporation Implementing data theft prevention
US8797059B2 (en) 2012-03-01 2014-08-05 International Business Machines Corporation Implementing carbon nanotube based sensors for cryptographic applications
US8819842B2 (en) * 2012-11-20 2014-08-26 International Business Machines Corporation Implementing conductive microcapsule rupture to generate a tamper event for data theft prevention
US10423552B2 (en) 2013-12-23 2019-09-24 Intel Corporation Integrated component interconnect
KR101839486B1 (ko) * 2016-04-11 2018-03-16 현대오트론 주식회사 차량 제어기용 반도체, 차량 제어기 및 차량 제어기용 반도체 설계 방법
US10067183B2 (en) * 2016-06-21 2018-09-04 International Business Machines Corporation Portion isolation architecture for chip isolation test
CN107543562B (zh) * 2017-08-29 2019-10-15 中国科学院遥感与数字地球研究所 一种基于红外掩星传感器校正切高值的方法
KR102497801B1 (ko) 2019-12-16 2023-02-10 한국전자통신연구원 시스템-온-칩 자동 설계 장치 및 이의 동작 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980079436A (ko) * 1997-03-13 1998-11-25 포맨 제프리 엘 시스템-온-칩 레이아웃 컴파일링 방법 및 시스템
JP2005044361A (ja) * 2003-07-25 2005-02-17 Internatl Business Mach Corp <Ibm> システム・オン・チップ設計のための構成要素としての自己完結型プロセッサ・サブシステム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5420987A (en) * 1993-07-19 1995-05-30 3 Com Corporation Method and apparatus for configuring a selected adapter unit on a common bus in the presence of other adapter units
US5551053A (en) 1994-02-28 1996-08-27 Eaton Corporation System and Method for assigning addresses to I/O devices in a control network and for verifying the assigned address of the devices
GB2368669B (en) * 2000-10-31 2005-06-22 Advanced Risc Mach Ltd Integrated circuit configuration
US6948105B2 (en) * 2001-05-12 2005-09-20 Advantest Corp. Method of evaluating core based system-on-a-chip (SoC) and structure of SoC incorporating same
US20030145290A1 (en) * 2002-01-30 2003-07-31 International Business Machines Corporation System for controlling external models used for verification of system on a chip (SOC) interfaces
US6946984B2 (en) * 2002-04-10 2005-09-20 Systel Development And Industries Ltd. System on chip for digital control of electronic power devices
ITMI20040600A1 (it) * 2004-03-26 2004-06-26 Atmel Corp Sistema dsp su chip a doppio processore a virgola mobile nel dominio complesso
JP2008102681A (ja) * 2006-10-18 2008-05-01 Tokyo Denki Univ Ipコア及び複合ipコア

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980079436A (ko) * 1997-03-13 1998-11-25 포맨 제프리 엘 시스템-온-칩 레이아웃 컴파일링 방법 및 시스템
JP2005044361A (ja) * 2003-07-25 2005-02-17 Internatl Business Mach Corp <Ibm> システム・オン・チップ設計のための構成要素としての自己完結型プロセッサ・サブシステム

Also Published As

Publication number Publication date
KR20110015416A (ko) 2011-02-15
JP2011527097A (ja) 2011-10-20
WO2009141420A1 (en) 2009-11-26
TW200951730A (en) 2009-12-16
EP2283438A1 (en) 2011-02-16
US7904872B2 (en) 2011-03-08
EP2283438B1 (en) 2020-03-04
US20090292828A1 (en) 2009-11-26
TWI451269B (zh) 2014-09-01
JP4731640B1 (ja) 2011-07-27

Similar Documents

Publication Publication Date Title
KR101531735B1 (ko) 시스템 온 칩(soc), 설계 구조 및 방법
US9065722B2 (en) Die-stacked device with partitioned multi-hop network
US6732263B1 (en) Configuring both a programmable logic device and its embedded logic with a single serialized configuration bit stream
CN103354977B (zh) 在集成电路内进行处理器系统的扩展
US8831021B2 (en) System and method for dynamically configurable multi-window divergent protocol bridge
CN106484581B (zh) 空间辐射环境下可编程soc器件单粒子翻转检测系统及方法
JP2002073531A (ja) フィールドプログラマブルゲートアレイ(fpga)におけるマルチマスタ・マルチスレーブシステムバス
US20140118026A1 (en) Techniques and circuitry for configuring and calibrating an integrated circuit
US7904873B2 (en) System-on-chip (SOC), design structure and method
US7930535B1 (en) Method and apparatus for loading configuration data
US10437750B2 (en) Relative data width indication for read responses routed by an interconnect
US11029659B2 (en) Method and apparatus for remote field programmable gate array processing
US10255399B2 (en) Method, apparatus and system for automatically performing end-to-end channel mapping for an interconnect
CN109829230B (zh) Fpga ip核的设计方法
US10235486B2 (en) Method, apparatus and system for automatically deriving parameters for an interconnect
US20230059620A1 (en) eFUSE ONE-TIME PROGRAMMABLE MEMORY WITH INTER INTEGRATED CIRCUIT (I2C) COMMUNICATION AND OPERATION METHOD THEREOF
TW202226032A (zh) 微型晶片網路及微型分區基礎結構
US9081743B2 (en) Communication system and communicaton method
US9442788B2 (en) Bus protocol checker, system on chip including the same, bus protocol checking method
CN115168282B (zh) 总线协议上配置数据处理方法、系统、设备及存储介质
CN103403701B (zh) 具有可编程电路系统和嵌入式处理器系统的集成电路
US20100011138A1 (en) Design structure for automated means for determining internet access on a system on a chip

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
LAPS Lapse due to unpaid annual fee