KR102318741B1 - 병렬 곱셈기의 배치 방법 - Google Patents

병렬 곱셈기의 배치 방법 Download PDF

Info

Publication number
KR102318741B1
KR102318741B1 KR1020150118175A KR20150118175A KR102318741B1 KR 102318741 B1 KR102318741 B1 KR 102318741B1 KR 1020150118175 A KR1020150118175 A KR 1020150118175A KR 20150118175 A KR20150118175 A KR 20150118175A KR 102318741 B1 KR102318741 B1 KR 102318741B1
Authority
KR
South Korea
Prior art keywords
cells
initial input
initial
column
multiplier
Prior art date
Application number
KR1020150118175A
Other languages
English (en)
Other versions
KR20160116286A (ko
Inventor
배성민
김형옥
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to US15/068,931 priority Critical patent/US10002219B2/en
Publication of KR20160116286A publication Critical patent/KR20160116286A/ko
Application granted granted Critical
Publication of KR102318741B1 publication Critical patent/KR102318741B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/53Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

본 발명에 따른 컴퓨터에서 구동되는 배치-라우팅 툴을 사용한 병렬 곱셈기의 배치 방법은, 상기 병렬 곱셈기에 대한 데이터패스 넷리스트를 수신하는 단계, 구조 분석 모듈을 이용하여 상기 데이터패스 넷리스트로부터 초기 입력 셀들 및 초기 출력 셀들의 위치를 추출하는 단계, 상기 배치-라우팅 툴을 이용하여 상기 초기 입력 셀들 및 상기 초기 출력 셀들을 특정 어레이에 맵핑하는 단계, 그리고 상기 배치-라우팅 툴을 이용하여 상기 초기 입력 셀들의 물리적 크기에 기초하여 상기 초기 입력 셀들 및 상기 초기 출력 셀들의 각 열을 정렬하는 단계를 포함하되, 상기 특정 어레이의 크기는 상기 초기 입력 셀들의 수에 따라 결정된다.

Description

병렬 곱셈기의 배치 방법{PLACEMENT METHOD OF PARALLEL MULTIPLIER}
본 발명은 로직 회로의 배치 방법에 관한 것으로, 좀 더 구체적으로는 병렬 곱셈기의 배치 방법에 관한 것이다.
최근 시스템 온 칩은 짧은 설계 일정으로 인하여 고성능 마이크로프로세서와 같이 데이터패스 로직(datapath logic)이 많이 사용되는 설계에도 자동화된 P&R(Place and Routing) 기법을 통해 제작된다. 하지만, 일반적으로 와이어 길이를 최소화하는 배치 알고리즘은 데이터패스의 구조적 특징을 고려할 수 없기 때문에 전력, 성능 및 공간적으로 최적화된 배치 결과를 얻기가 어렵다. 이러한 알고리즘적인 문제를 피하기 위해 일반적으로 구조적인 최적화 작업은 메뉴얼(manual)로 이루어진다. 따라서, 구조적으로 최적화된 결과를 얻을 수는 있지만, 이러한 메뉴얼(manual) 배치 방법은 상당한 시간을 요구하게 된다.
최근 멀티미디어 기능이 강화된 시스템 온 칩은 병렬 곱셈기를 다수 포함하고 있다. 병렬 곱셈기는 피승수 및 승수를 입력받아 병렬적으로 곱셈 연산을 수행한다. 이러한 병렬 곱셈기는 구조적으로 최적화된 배치를 자동으로 수행 가능한 부분을 포함하고 있다.
본 발명의 목적은 병렬 곱셈기에 포함된 부분 곱 생성기 및 최종 곱셈기를 전력, 성능 및 공간적으로 최적화 되도록 구조를 고려하여 배치하는 병렬 곱셈기의 배치 방법을 제공하는 데 있다.
본 발명에 따른 컴퓨터에서 구동되는 배치-라우팅 툴을 사용한 병렬 곱셈기의 배치 방법은, 상기 병렬 곱셈기에 대한 데이터패스 넷리스트를 수신하는 단계, 구조 분석 모듈을 이용하여 상기 데이터패스 넷리스트로부터 초기 입력 셀들 및 초기 출력 셀들의 위치를 추출하는 단계, 상기 배치-라우팅 툴을 이용하여 상기 초기 입력 셀들 및 상기 초기 출력 셀들을 특정 어레이에 맵핑하는 단계, 그리고 상기 배치-라우팅 툴을 이용하여 상기 초기 입력 셀들의 물리적 크기에 기초하여 상기 초기 입력 셀들 및 상기 초기 출력 셀들의 각 열을 정렬하는 단계를 포함하되, 상기 특정 어레이의 크기는 상기 초기 입력 셀들의 수에 따라 결정된다.
본 발명에 따른 컴퓨터에서 구동되는 로직 합성 툴 및 배치-라우팅 툴을 사용한 병렬 곱셈기의 배치 방법은, 상기 로직 합성 툴을 통하여 상기 병렬 곱셈기에 대한 데이터패스 넷리스트를 생성하는 단계, 상기 배치-라우팅 툴에 상기 병렬 곱셈기의 구조에 대한 정보를 입력하는 단계, 상기 병렬 곱셈기에 입력되는 피승수 및 승수를 이용하여 상기 데이터패스 넷리스트로부터 초기 입력 셀들 및 초기 출력 셀들의 위치를 추출하는 단계, 상기 병렬 곱셈기의 구조에 대한 정보을 이용하여 상기 초기 입력 셀들 및 상기 초기 출력 셀들을 특정 어레이에 맵핑하는 단계, 그리고 상기 배치-라우팅 툴을 이용하여 상기 초기 입력 셀들의 물리적 크기에 기초하여 상기 초기 입력 셀들 및 상기 초기 출력 셀들의 각 열을 정렬하는 단계를 포함하되, 상기 특정 어레이의 크기는 상기 초기 입력 셀들의 수에 따라 결정된다.
본 발명의 실시 예에 따르면, 병렬 곱셈기에 포함된 부분 곱 생성기 및 최종 곱셈기를 전력, 성능 및 공간적으로 최적화 되도록 구조를 고려하여 배치하는 병렬 곱셈기의 배치 방법을 제공할 수 있다.
도 1은 본 발명의 실시 예에 따른 병렬 곱셈기 배치 시스템을 보여주는 블록도이다.
도 2는 본 발명의 병렬 곱셈기 배치 방법에 의해 배치되는 병렬 곱셈기를 예시적으로 보여주는 블록도이다.
도 3은 도 2의 부분 곱 생성기 및 최종 덧셈기의 배열을 보여주는 도면이다.
도 4는 본 발명의 실시 예에 따른 병렬 곱셈기 배치 방법을 보여주는 순서도이다.
도 5는 본 발명의 병렬 곱셈기 배치 시스템에 의해 추출되는 초기 입력 셀을 예시적으로 보여주는 도면이다.
도 6은 병렬 곱셈기의 부분 곱 감소 모듈에 포함된 압축 셀들을 예시적으로 보여주는 도면이다.
도 7은 본 발명의 실시 예에 따른 최소 비용 최대 흐름(Min-cost Maximum Flow, MCF) 알고리즘을 예시적으로 보여주는 도면이다.
도 8은 본 발명의 실시 예에 따른 비트-슬라이스 정렬(bit-slice alignment) 알고리즘을 예시적으로 보여주는 도면이다.
도 9는 본 발명의 실시 예에 따른 병렬 곱셈기 배치 방법에 따라 배치된 병렬 곱셈기를 포함하는 논리 회로를 예시적으로 보여주는 도면이다.
본 발명의 이점 및 특징, 그리고 그것을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 통해 설명될 것이다. 그러나 본 발명은 여기에서 설명되는 실시 예들에 한정되지 않고 다른 형태로 구체화될 수도 있다. 단지, 본 실시 예들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여 제공되는 것이다.
도면들에 있어서, 본 발명의 실시 예들은 도시된 특정 형태로 제한되는 것이 아니며 명확성을 기하기 위하여 과장된 것이다. 또한, 명세서 전체에 걸쳐서 동일한 참조 번호로 표시된 부분들은 동일한 구성 요소를 나타낸다.
본 명세서에서 특정한 용어들이 사용되었으나, 이는 본 발명을 설명하기 위한 목적에서 사용된 것이며, 의미 한정이나 특허 청구 범위에 기재된 본 발명의 권리 범위를 제한하기 위하여 사용된 것은 아니다. 본 명세서에서 ‘및/또는’이란 표현은 전후에 나열된 구성요소들 중 적어도 하나를 포함하는 의미로 사용된다. 또한, ‘연결되는/결합되는’이란 표현은 다른 구성요소와 직접적으로 연결되거나 다른 구성요소를 통해 간접적으로 연결되는 것을 포함하는 의미로 사용된다. 본 명세서에서 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 또한, 명세서에서 사용되는 ‘포함한다’ 또는 ‘포함하는’으로 언급된 구성 요소, 단계, 동작 및 소자는 하나 이상의 다른 구성요소, 단계, 동작 및 소자의 존재 또는 추가를 의미한다. 이하, 도면들을 참조하여 본 발명의 실시 예에 대해 상세히 설명하기로 한다.
도 1은 본 발명의 실시 예에 따른 병렬 곱셈기 배치 시스템(100)을 보여주는 블록도이다. 도 1을 참조하면, 병렬 곱셈기 배치 시스템(100)은 CPU(110), 워킹 메모리(130), 입출력 장치(150), 저장 장치(170), 그리고 버스(190)를 포함할 수 있다. 여기서, 병렬 곱셈기 배치 시스템(100)은 병렬 곱셈기를 배치하기 위한 전용 장치로 제공될 수도 있지만, 다양한 배치 툴들이나 설계 툴들을 구동하기 위한 컴퓨터일 수도 있을 것이다.
CPU(110)는 병렬 곱셈기 배치 시스템(100)에서 수행될 소프트웨어(응용 프로그램, 운영 체제, 장치 드라이버들)를 실행한다. CPU(110)는 워킹 메모리(130)에 로드되는 운영 체제(OS, 미도시됨)를 실행할 것이다. CPU(110)는 운영 체제(OS) 기반에서 구동될 다양한 응용 프로그램들(Application Program)이나 배치 툴들을 실행할 것이다. 예를 들면, CPU(110)는 워킹 메모리(130)에 로드되는 데이터패스(Datapath) 생성 툴들이나, 구조 분석 툴들, 배치/라우팅 툴들을 구동할 수 있다. 특히, 본 발명의 배치 툴로 제공되는 구조 분석 모듈(131)이 CPU(110)에 의해서 구동될 것이다. 특히, 구조 분석 모듈(131)은 병렬 곱셈기에 포함된 로직 셀들의 위치 및 구조적 특징들을 추출할 수 있다. 더불어, CPU(110)는 칩에서의 다양한 로직 셀들을 최적의 위치에 배치하기 위한 배치/라우팅 툴(P&R Tool, 132)을 구동할 수 있다.
워킹 메모리(130)에는 운영 체제(OS)나 응용 프로그램들(Application Program)이 로드될 것이다. 병렬 곱셈기 배치 시스템(100)의 부팅시에 저장 장치(170)에 저장된 OS 이미지(미도시됨)가 부팅 시퀀스에 의거하여 워킹 메모리(130)로 로드될 것이다. 운영 체제(OS)에 의해서 병렬 곱셈기 배치 시스템(100)의 제반 입출력 동작들이 지원될 수 있다. 마찬가지로, 사용자의 의하여 선택되거나 기본적인 서비스 제공을 위해서 응용 프로그램들이 워킹 메모리(130)에 로드될 수 있다. 특히, 본 발명의 배치 툴들(131, 132)이 워킹 메모리(130)에 로드될 수 있다.
특히, 배치 툴로서 구조 분석 모듈(131)이나 배치/라우팅 툴(132)도 저장 장치(170)로부터 워킹 메모리(130)에 로드될 것이다. 도시되지 않았지만, 워킹 메모리(130)에는 병렬 곱셈기의 데이터패스 넷리스트(Datapath Netlist)를 생성하는 로직 합성(Logic Synthesis) 툴들이 더 포함될 수 있을 것이다. 워킹 메모리(130)는 SRAM(Static Random Access Memory)이나 DRAM(Dynamic Random Access Memory)과 같은 휘발성 메모리이거나, PRAM, MRAM, ReRAM, FRAM, NOR 플래시 메모리 등의 비휘발성 메모리일 수 있다.
구조 분석 모듈(131)은 병렬 곱셈기의 구조를 분석할 수 있다. 예를 들면, 구조 분석 모듈(131)은 병렬 곱셈기의 데이터패스 넷리스트를 입력받을 수 있다. 구조 분석 모듈(131)은 데이터패스 넷리스트를 통해 병렬 곱셈기에 포함된 로직 셀들의 위치를 추정할 수 있다. 또한, 구조 분석 모듈(131)은 로직 셀들의 물리적 크기를 고려하여 병렬 곱셈기의 구조 정보를 출력할 수 있다. 배치/라우팅 툴(132)은 구조 분석 모듈(131)에 의해 추출된 로직 셀들의 위치 및 구조 정보를 이용하여 병렬 곱셈기의 로직 셀들을 최적의 위치에 배치할 수 있다.
입출력 장치(150)는 사용자 인터페이스 장치들로부터의 사용자 입력 및 출력을 제어한다. 예를 들면, 입출력 장치(150)는 키보드, 마우스, 터치패드와 같은 입력 장치와 모니터 등의 출력 장치를 구비하여 로직 셀들의 구조를 분석하기 위한 구조 배치 정보를 포함하는 템플릿(Templete)을 입력받을 수 있다. 구조 배치 정보는 로직 셀들의 구조적 배치를 유도할 수 있는 특정 셀들, 특정 셀의 위치 및 특정 셀들을 분석할 수 있는 알고리즘 등을 포함할 수 있다. 그리고 입출력 장치(150)는 병렬 곱셈기 배치 시스템(100)의 배치 절차나 배치 결과 등을 표시할 수 있다.
저장 장치(170)는 병렬 곱셈기 배치 시스템(100)의 저장 매체(Storage Medium)로서 제공된다. 저장 장치(170)는 응용 프로그램들(Application Program), 운영 체제 이미지(OS Image) 및 각종 데이터를 저장할 수 있다. 저장 장치(170)는 메모리 카드(MMC, eMMC, SD, MicroSD 등)나 하드디스크 드라이브(HDD)로 제공될 수도 있다. 저장 장치(170)는 대용량의 저장 능력을 가지는 낸드 플래시 메모리(NAND-type Flash memory)를 포함할 수 있다. 또는, 저장 장치(170)는 PRAM, MRAM, ReRAM, FRAM 등의 차세대 불휘발성 메모리나 NOR 플래시 메모리를 포함할 수도 있다.
시스템 버스(190)는 병렬 곱셈기 배치 시스템(100)의 내부에서 네트워크를 제공하기 위한 인터커넥터로 제공될 것이다. 시스템 버스(190)를 통해서 CPU(110), 워킹 메모리(130), 입출력 장치(150), 그리고 저장 장치(170)가 전기적으로 연결되고 상호 데이터를 교환할 수 있다. 하지만, 시스템 버스(190)의 구성은 상술한 설명에만 국한되지 않으며, 효율적인 관리를 위한 중재 수단들을 더 포함할 수 있다.
이상의 설명에 따르면, 병렬 곱셈기 배치 시스템(100)은 입력된 데이터패스 넷리스트를 참조하여 로직 셀들의 위치 및 구조를 분석할 수 있다. 그리고 병렬 곱셈기 배치 시스템(100)은 분석된 위치 및 구조에 따라 병렬 곱셈기의 로직 셀들을 전력, 성능 및 공간을 고려하여 최적의 위치에 배치할 수 있다. 따라서, 병렬 곱셈기는 짧은 시간 안에 디자인되고, 논리 회로(Logic Circuitry) 내에 배치될 수 있다.
도 2는 본 발명의 병렬 곱셈기 배치 방법에 의해 배치되는 병렬 곱셈기를 예시적으로 보여주는 블록도이다. 도 2를 참조하면, 병렬 곱셈기(200)는 부분 곱 생성기(210), 부분 곱 감소 모듈(220) 및 최종 덧셈기(230)를 포함할 수 있다. 병렬 곱셈기(200)는 피승수(Multiplicand) 및 승수(Multiplier)를 입력받아 그 둘을 곱하여 최종 곱(Final Product)을 출력한다. 병렬 곱셈기(200)는 피승수 및 승수의 곱을 병렬적으로 연산할 수 있다.
부분 곱 생성기(210)는 피승수 및 승수의 부분 곱들을 생성한다. 예를 들면, 8 비트(bit)의 피승수와 8 비트(bit)의 승수를 곱하면, 부분 곱 생성기(210)는 64개의 부분 곱을 생성할 수 있다. 즉, 부분 곱 생성기(210)는 64개의 부분 곱을 생성하는 64개의 로직 셀들을 가질 것이다.
부분 곱 감소 모듈(220)은 생성된 부분 곱들을 누적하여 최종 곱을 생성하기 위한 합 비트(Sum-bit)들 및 캐리 비트(Carry-bit)들을 생성한다. 예를 들면, 부분 곱 감소 모듈(220)의 로직 셀들은 3개의 입력을 수신하여 합 비트 및 캐리 비트를 출력하는 왈리스 트리(Wallace tree)를 사용할 수 있다. 3개의 입력은 이전 행(Row)으로부터의 합 비트 및 캐리 비트, 그리고 부분 곱 생성기(210)로부터의 출력들 중 하나를 포함할 수 있다.
최종 덧셈기(230)는 부분 곱 감소 모듈(220)로부터 출력된 합 비트들과 캐리 비트들을 합하여 최종 곱을 출력할 수 있다. 예를 들면, 최종 덧셈기(230)의 로직 셀들은 부분 곱 생성기(210)에 포함된 적어도 하나의 로직 셀과 하나의 열(Column)을 이룰 수 있다.
도 3은 도 2의 부분 곱 생성기(210) 및 최종 덧셈기(230)의 배열을 보여주는 도면이다. 도 3을 참조하면, 부분 곱 생성기(210)는 피승수와 승수의 부분 곱을 계산하는 로직 셀들(a1b1~a8b8)을 포함할 수 있다. 또한, 최종 덧셈기(230)는 합 비트 셀들(Sum1~Sum15) 및 캐리 비트 셀들(Ca1~Ca15)을 포함할 수 있다. 이하에서, 피승수 및 승수는 8비트로 가정한다. 하지만, 피승수 및 승수는 8비트보다 크거나 작을 수 있다. 피승수는 a1~a8의 각 비트를 포함한다. 승수는 b1~b8의 각 비트를 포함한다.
부분 곱 생성기(210)는 로직 셀들(a1b1~a8b8)의 배열을 포함할 수 있다. 예를 들어, 로직 셀들(a1b1~a8b8)은 2차원 평면 상에 마름모와 유사한 평행사변형의 모양으로 배치될 수 있다. 로직 셀들(a1b1~a8b8)은 각 행(Row1~Row8)에 포함될 수 있다. 로직 셀들(a1b1~a8b8)은 각 열(Col1~Col16)에 포함될 수 있다.
부분 곱 감소 모듈(220)은 부분 곱들을 누적하여 합 비트들 및 캐리 비트들을 최종 덧셈기(230)의 합 비트 셀들(Sum1~Sum15) 및 캐리 비트 셀들(Ca1~Ca15)로 전달할 수 있다. 예를 들면, 부분 곱 감소 모듈(220)은 왈리스 트리(Wallace tree)를 사용할 수 있다. 따라서, 도시되지 않았지만, 부분 곱 감소 모듈(220)에 포함된 로직 셀들은 서로 같은 모양과 크기를 가질 수 있다.
최종 덧셈기(130)는 합 비트 셀들(Sum1~Sum15) 및 캐리 비트 셀들(Ca1~Ca15)을 포함할 수 있다. 합 비트 셀들(Sum1~Sum15)은 하나의 행(Row)을 이룰 수 있다. 캐리 비트 셀들(Ca1~Ca15)은 하나의 행(Row)을 이룰 수 있다.
시스템 온 칩(SoC)과 같은 논리 회로(Logical Circuitry)에는 다양한 데이터패스 로직(Datapath Logic)들이 사용되고 있다. 병렬 곱셈기(200)는 데이터패스 로직들 중 하나이다. 또한, 논리 회로는 다수의 병렬 곱셈기(200)를 포함하고 있다. 따라서, 병렬 곱셈기(200)를 전력, 성능 및 공간을 고려하여 빠르게 배치하면, 논리 회로를 설계하는 시간은 단축될 수 있다.
도 4는 본 발명의 실시 예에 따른 병렬 곱셈기 배치 방법을 보여주는 순서도이다. 도 4를 참조하면, 병렬 곱셈기 배치 방법에 따라 병렬 곱셈기(200)는 전력, 성능 및 공간을 고려하여 논리 회로 내에 신속하게 배치될 수 있다.
S110 단계에서, 병렬 곱셈기 배치 시스템(100)은 병렬 곱셈기(200)의 데이터패스 넷리스트를 수신할 수 있다. 예를 들면, 병렬 곱셈기 배치 시스템(100)은 사용자에 의해 작성된 넷리스트 파일을 입력받을 수 있다. 또한, 병렬 곱셈기 배치 시스템(100)은 로직 합성(Logic Synthesis) 툴을 이용하여 넷리스트를 생성할 수 있다. 로직 합성(Logic Synthesis) 툴은 부분 곱 생성기(210)를 생성하는 데 필요한 파라미터들, 수학적 정보, 및 로직 셀들 사이의 관계 정보를 가지고 있다.
S120 단계에서, 병렬 곱셈기 배치 시스템(100)은 초기 입력 셀(Primary Input Cell, PI)들의 행(Row) 및 열(Column)을 결정할 수 있다. 예를 들면, 병렬 곱셈기 배치 시스템(100)은 로직 셀들(a1b1~a8b8) 중 일부를 초기 입력 셀(Primary Input Cell, PI)들로 정의할 수 있다. 초기 입력 셀(PI)은 다른 로직 셀들의 구조적 배치를 유도할 수 있다. 초기 입력 셀(PI)은 피승수 및 승수의 입력들의 네트(net)에 연결된 셀로 정의한다.
초기 입력 셀(PI)을 추출하는 방법은 부분 곱 생성기(210)의 로직 셀의 종류에 따라 달라질 수 있다. 예를 들면, 부분 곱 생성기(210)의 로직 셀은 부스(Booth) 타입 및 비 부스(Non-booth) 타입을 가질 수 있다. 부스 타입의 경우, 초기 입력 셀(PI)은 피승수의 네트(net)만을 이용하여 추출된다. 비 부스 타입의 경우, 초기 입력 셀(PI)는 피승수 및 승수의 네트(net)를 이용하여 추출된다.
이렇게 추출된 초기 입력 셀(PI)은 위치를 추정하게 된다. 예를 들면, 행 추론(Row Inference) 알고리즘을 통해 초기 입력 셀(PI)의 행은 결정될 수 있다. 도 3을 참조하면, 로직 셀들(a1b1~a8b8)의 행은 승수(Multiplier)에 의해 결정될 수 있다. 예시적으로 제 1 행(Row1)에 포함된 로직 셀들(a1b1~a8b1)은 승수(b1)가 곱해진 셀들이다. 제 2 행(Row2)에 포함된 로직 셀들(a1b2~a8b2)은 승수(b2)가 곱해진 셀들이다. 제 3 행(Row3)에 포함된 로직 셀들(a1b3~a8b3)은 승수(b3)가 곱해진 셀들이다. 이와 같이 초기 입력 셀(PI)이 포함된 행의 위치는 승수에 의해 결정될 수 있다.
또한, 열 추론(Column Inference) 알고리즘을 통해 초기 입력 셀(PI)의 열은 결정될 수 있다. 로직 셀들(a1b1~a8b8)의 열은 피승수(Multiplicand) 및 승수(Multiplier)에 의해 결정될 수 있다. 각 열에 포함된 로직 셀들은 피승수의 자릿수와 승수의 자릿수의 합이 동일한 셀들이다. 예시적으로 제 1 열(Col1)에 포함된 로직 셀(a1b1)은 피승수 및 승수의 자릿수 합이 2이다. 제 2 열(Col2)에 포함된 로직 셀들(a2b1, a1b2)은 피승수 및 승수의 자릿수 합이 3이다. 제 3 열(Col3)에 포함된 로직 셀들(a3b1, a2b2, a1b3)은 피승수 및 승수의 자릿수 합이 4이다. 이와 같이 초기 입력 셀(PI)이 포함된 열의 위치는 피승수 및 승수에 의해 결정될 수 있다.
S130 단계에서, 병렬 곱셈기 배치 시스템(100)은 각 열에 포함되는 초기 출력 셀(Primary Output Cell, PO)을 결정할 수 있다. 초기 출력 셀(PO)은 넷리스트에서 합 비트들을 추적하면 구할 수 있다. 예를 들면, 초기 입력 셀의 출력은 부분 곱 감소 모듈(220)에 포함된 압축 셀(Compress Cell)에 연결될 수 있다. 압축 셀은 복수의 입력을 수신하여 합 출력(Sum-out) 및 캐리 출력(Carry-out)을 출력할 수 있다. 여기서 합 출력은 열(Col1~Col16)의 변동없이 초기 출력 셀(PO)까지 연결될 수 있다. 따라서, 초기 입력 셀(PI)에 연결된 부분 곱 감소 모듈(220)의 압축 셀들의 합 출력을 추적하면, 초기 출력 셀(PO)의 열(Col1~Col16)을 결정할 수 있다.
S140 단계에서, 병렬 곱셈기 배치 시스템(100)은 소정의 어레이에 초기 입력 셀(PI)들 및 초기 출력 셀(PO)들을 맵핑할 수 있다. 예를 들면, 병렬 곱셈기 배치 시스템(100)은 초기 입력 셀들 및 초기 출력 셀들을 맵핑하기 위해 소정의 어레이를 생성한다. 소정의 어레이는 논리적으로 병렬 곱셈기(200)의 구조를 가진다. 만약 모든 로직 셀들이 모두 할당되도록 소정의 어레이의 크기를 정한다면 로직 셀들이 맵핑된 어레이의 종횡비(aspect ratio)가 커져서, 병렬 곱셈기(200)의 결과 품질(Quality of Result, QoR)이 감소할 수 있다. 따라서, 병렬 곱셈기 배치 시스템(100)은 초기 입력 셀의 개수에 따라 소정의 어레이의 크기를 결정한다. 예를 들면, 병렬 곱셈기 배치 시스템(100)은 소정의 어레이의 행의 개수를 미리 설정할 수 있다. 병렬 곱셈기 배치 시스템(100)은 각 열에 맵핑될 초기 입력 셀의 개수를 미리 설정된 행의 개수로 나누어 결정될 수 있다. 다만, 이때 미스-맵핑(Mis-mapping)되는 초기 입력 셀이 발생할 수 있다.
본 발명의 병렬 곱셈기 배치 방법은 초기 입력 셀들의 미스-맵핑(Mis-mapping)을 허용한다. 미스-맵핑(Mis-mapping)은 초기 입력 셀들 및 초기 출력 셀들이 추출된 위치가 아닌 다른 곳에 맵핑되는 것을 말한다. 병렬 곱셈기 배치 시스템(100)은 미스-맵핑(Mis-mapping)되는 로직 셀들을 최소화하면서 맵핑되는 로직 셀들의 개수를 최대화하는 최적화 동작을 수행한다.
병렬 곱셈기 배치 시스템(100)은 초기 입력 셀들의 추정된 위치와 실제 맵핑된 위치의 차이의 합을 최소화하도록 최소 비용 최대 흐름(Min-cost Maximum flow, MCF) 알고리즘에 따라 초기 입력 셀들을 맵핑할 수 있다. 하지만, MCF 알고리즘은 로직 셀들 사이의 네트(net) 연결을 고려하지 않는다. 그래서 병렬 곱셈기 배치 시스템(100)은 하프-페리미터 와이어 랭스(Half-Perimeter Wire Length, HPWL) 알고리즘도 함께 수행하여 로직 셀들 사이의 네트(net) 연결도 고려할 수 있다. 병렬 곱셈기 배치 시스템(100)은 MCF 및 HPWL 알고리즘에 서로 다른 가중치를 줄 수 있다.
S150 단계에서, 병렬 곱셈기 배치 시스템(100)은 초기 입력 셀들 및 초기 출력 셀들의 물리적 크기에 기초하여 소정의 어레이의 열들을 정렬할 수 있다. 예를 들면, S140 단계까지는 초기 입력 셀들 및 초기 출력 셀들 각각의 크기는 고려되지 않는다. 하지만, 초기 입력 셀들 및 초기 출력 셀들은 각각 서로 다른 크기를 가질 수 있다. 따라서, S140 단계에서 맵핑된 어레이는 초기 입력 셀들 및 초기 출력 셀들의 크기를 고려하여 다시 정렬될 필요가 있다.
예를 들면, 병렬 곱셈기 배치 시스템(100)은 비트-슬라이스 정렬(Bit-slice Alignment) 알고리즘을 수행할 수 있다. 비트-슬라이스 정렬 알고리즘은 미리 정해진 제한 폭 내에서 미스-정렬(Mis-alignment)이 최소화 되도록 초기 입력 셀들 및 초기 출력 셀들을 조정한다. 미스-정렬(Mis-alignment)은 초기 입력 셀들 및 초기 출력 셀들 각각이 맵핑된 열에서 벗어난 정도를 말한다.
이상에서 본 발명의 실시 예에 따른 병렬 곱셈기 배치 방법이 설명되었다. 병렬 곱셈기 배치 시스템(100)은 데이터패스 넷리스트를 입력받아 초기 입력 셀들 및 초기 출력 셀들을 추출할 수 있다. 병렬 곱셈기 배치 시스템(100)은 초기 입력 셀들 및 초기 출력 셀들을 배치 알고리즘들에 따라 소정의 어레이에 맵핑할 수 있다. 병렬 곱셈기 배치 시스템(100)은 초기 입력 셀들 및 초기 출력 셀들을 배치한 후 나머지 로직 셀들의 배치를 유도할 수 있다. 따라서, 병렬 곱셈기 배치 시스템(100)은 전력, 성능 및 공간을 고려하여 메뉴얼(Manual)적인 방법보다 빠르게 병렬 곱셈기를 배치할 수 있다.
도 5는 본 발명의 병렬 곱셈기 배치 시스템에 의해 추출되는 초기 입력 셀을 예시적으로 보여주는 도면이다. 도 5를 참조하면, 초기 입력 셀은 부스(Booth) 타입 또는 비 부스(Non-booth) 타입을 가질 수 있다. 하지만, 초기 입력 셀의 종류는 이것에 한정되지 않는다. 초기 입력 셀은 다양한 종류의 형태를 가질 수 있다.
병렬 곱셈기 배치 시스템(100)은 초기 입력 셀의 종류에 따라 위치 추정 알고리즘을 다르게 적용할 수 있다. 예를 들어, 비 부스 타입의 초기 입력 셀의 부분 곱 출력(PPij)은 입력들(Xi, Yj)의 조합으로 만들어진다. 여기서 X는 승수이고, Y는 피승수이고, i는 부분 곱의 제 i 번째 행을 표시하고, j는 부분 곱의 제 j 번째 열을 표시한다. 따라서, 비 부스 타입의 경우, 입력들(Xi, Yj)을 통해 바로 초기 입력 셀이 속한 행과 열을 알 수 있다. 예를 들어, 부스 타입의 초기 입력 셀의 부분 곱 출력(PPij)은 입력들(X2i -1, X2i, X2i +1, Yj, Yj - 1)의 조합으로 만들어진다. 부스 타입의 경우, 입력들(X2i -1, X2i, X2i + 1)을 2로 나누고 플로어 동작(Floor Operation)을 수행하여 초기 입력 셀의 행의 위치는 추정된다.
도 6은 병렬 곱셈기의 부분 곱 감소 모듈에 포함된 압축 셀들을 예시적으로 보여주는 도면이다. 도 6을 참조하면, 압축 셀들(221~224) 각각은 3개의 입력을 수신하여 2개의 출력을 전송한다. 예를 들면, 3개의 입력은 이전 행으로부터의 합 출력(SUM) 및 캐리 출력(CA), 그리고 부분 곱 생성기(210)로부터의 출력들 중 하나의 초기 입력 셀 출력(PI)을 포함할 수 있다. 하지만, 압축 셀들(221~224)은 이것에 한정되지 않는다.
도 6에서, 압축 셀들(221, 222)은 제 j 열에 속한다. 압축 셀들(223, 224)은 제 j+1 열에 속한다. 여기서 합 출력(SUM)들은, 열의 변경없이, 하나의 열을 따라서 전송된다. 반면에 캐리 출력(CA)들은 행이 바뀔 때마다 열도 변경된다. 따라서, 병렬 곱셈기 배치 시스템(100)은 초기 입력 셀과 연결된 압축 셀들의 합 비트(SUM)들을 추적하면 초기 입력 셀이 속한 열을 추출할 수 있다.
도 7은 본 발명의 실시 예에 따른 최소 비용 최대 흐름(Min-cost Maximum Flow, MCF) 알고리즘을 예시적으로 보여주는 도면이다. 도 7을 참조하면, 초기 입력 셀(PI cell[j])의 맵핑 방법을 보여준다. 초기 입력 셀(PI cell[j])은 제 j 열에 속하는 것으로 추정된 셀이다. 예를 들면, 각 열(j+1, j, j-1)은 각각의 슬롯(Slot[i+1], Slot[i], Slot[i-1])을 포함할 수 있다. 초기 입력 셀(PI cell[i])은 슬롯들(Slot[i+1], Slot[i], Slot[i-1]) 중 하나에 맵핑될 수 있다. 따라서, 초기 입력 셀(PI cell[i])은 인접한 초기 입력 셀들(PI cell[i+1], PI cell[i-1])과 비교될 수 있다. 각각의 화살표는 초기 입력 셀들(PI cell[i+1], PI cell[i], PI cell[i-1])이 슬롯들(Slot[i+1], Slot[i], Slot[i-1])에 맵핑되는 경우들을 보여준다. 각 경우(①~⑦)에 따라 서로 다른 비용(Cost) 및 흐름 능력(Flow Capacity)을 가질 수 있다. 따라서, 병렬 곱셈기 배치 시스템(100)은 비용(Cost)을 최소화하고 흐름 능력(Flow Capacity)을 최대화하도록 초기 입력 셀(PI cell[i])을 소정의 어레이에 맵핑할 수 있다.
도 7에서는 예시적으로 임의의 하나의 셀(PI cell[j])에 대하여 설명하였지만, 병렬 곱셈기 배치 시스템(100)은 추출된 모든 초기 입력 셀들에 대하여 MCF 알고리즘을 수행할 수 있다. 병렬 곱셈기 배치 시스템(100)은 MCF 알고리즘을 통하여 모든 초기 입력 셀들에 대한 결과 값들의 합이 최소가 되도록 초기 입력 셀들을 소정의 어레이에 맵핑할 수 있다.
도 8은 본 발명의 실시 예에 따른 비트-슬라이스 정렬(bit-slice alignment) 알고리즘을 예시적으로 보여주는 도면이다. 소정의 어레이에 맵핑된 초기 입력 셀들의 크기를 고려하면, 초기 입력 셀들의 모서리는 각 열에서 좌우로 벗어날 수 있다. 그러면 열들의 경계에서 가장 많이 벗어난 셀들의 모서리 사이의 차이를 구할 수 있다. 예를 들면, 제 j+2 열(Col[j+2])과 제 j+1 열(Col[j+1]) 사이에서 최대 모서리 차이(g1)는 셀(C[i-1,j+2])과 셀(C[i,j+1]) 또는 셀(C[i+1,j+1])에 의해 결정될 수 있다. 제 j+1 열(Col[j+1])과 제 j 열(Col[j]) 사이에서 최대 모서리 차이(g2)는 셀(C[i-1,j+1])과 셀(C[i,j])에 의해 결정될 수 있다. 제 j 열(Col[j])과 제 j-1 열(Col[j-1]) 사이에서 최대 모서리 차이(g3)는 셀(C[i,j])과 셀(C[i-1,j-1]) 또는 셀(C[i+1,j-1])에 의해 결정될 수 있다. 제 j-1 열(Col[j-1])과 제 j-2 열(Col[j-2]) 사이에서 최대 모서리 차이(g4)는 셀(C[i+1,j-1])과 셀(C[i,j-2])에 의해 결정될 수 있다. 초기 입력 셀이 맵핑되지 않은 슬롯(Slot)에는 빈 공간 셀(B[i,j+2], B[i+1,j+2])을 할당할 수 있다.
병렬 곱셈기 배치 시스템(100)은 이상과 같이 결정된 최대 모서리 차이들(g1~g4)의 합이 미리 정해진 폭 제한(Width Constraint) 내에서 최소가 되도록 초기 입력 셀들의 위치를 조절할 수 있다. 도 8에서는 예시적으로 3개의 행들과 5개의 열들로 설명하였지만, 병렬 곱셈기 배치 시스템(100)은 동일한 방식으로 맵핑된 초기 입력 셀들에 대하여 비트-슬라이스 정렬(bit-slice alignment) 알고리즘을 수행할 수 있다.
도 9는 본 발명의 실시 예에 따른 병렬 곱셈기 배치 방법에 따라 배치된 병렬 곱셈기를 포함하는 논리 회로를 예시적으로 보여주는 도면이다. 도 9를 참조하면, 논리 회로(1000)는 복수의 로직 셀(Logic Cell)들을 포함할 수 있다. 예를 들면, 논리 회로(1000)는 CPU, GPU, 시스템 온 칩(SoC) 또는 어플리케이션 프로세서(AP) 등을 포함할 수 있다. 로직 셀들을 배치함에 있어서, 본 발명에 따른 병렬 곱셈기 배치 방법에 따라 병렬 곱셈기(200)들이 먼저 배치될 수 있다. 병렬 곱셈기(200)들이 배치된 후, 나머지 로직 셀들은 그 기능에 따라 배치될 수 있다. 따라서, 논리 회로(1000)에서 전력, 성능 및 공간적으로 최적화되도록 로직 셀들이 신속하게 배치될 수 있다.
이상에서와 같이 도면과 명세서에서 실시 예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허 청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서 본 발명의 진정한 기술적 보호 범위는 첨부된 특허 청구범위의 기술적 사상에 의해 정해져야 할 것이다.
100 : 병렬 곱셈기 배치 시스템
130 : 워킹 메모리
131 : 구조 분석 모듈
132 : 배치/라우팅 툴
150 : 입출력 장치
170 : 저장 장치
190 : 시스템 버스
200 : 병렬 곱셈기
210 : 부분 곱 생성기
220 : 부분 곱 감소 모듈
230 : 최종 덧셈기
1000 : 논리 회로

Claims (10)

  1. 컴퓨터에서 구동되는 배치-라우팅 툴을 사용한 병렬 곱셈기의 배치 방법에 있어서:
    상기 병렬 곱셈기에 대한 데이터패스 넷리스트를 수신하는 단계;
    구조 분석 모듈을 이용하여 상기 데이터패스 넷리스트로부터 초기 입력 셀들 및 초기 출력 셀들의 위치를 추출하는 단계;
    상기 배치-라우팅 툴을 이용하여 상기 초기 입력 셀들 및 상기 초기 출력 셀들을 특정 어레이에 맵핑하는 단계; 그리고
    상기 배치-라우팅 툴을 이용하여 상기 초기 입력 셀들의 물리적 크기에 기초하여 상기 초기 입력 셀들 및 상기 초기 출력 셀들의 각 열을 정렬하는 단계를 포함하되,
    상기 특정 어레이의 크기는 상기 초기 입력 셀들의 수에 따라 결정되는 배치 방법.
  2. 제 1 항에 있어서,
    상기 구조 분석 모듈은 상기 병렬 곱셈기에 입력되는 피승수 및 승수를 이용하여 상기 초기 입력 셀들 및 상기 초기 출력 셀들의 위치를 추출하는 배치 방법.
  3. 제 1 항에 있어서,
    상기 초기 입력 셀들이 속하는 행은 상기 병렬 곱셈기에 입력되는 승수를 이용하여 추정되고,
    상기 초기 입력 셀들이 속하는 열은 상기 병렬 곱셈기에 입력되는 상기 승수 및 피승수를 이용하여 추정되는 배치 방법.
  4. 제 1 항에 있어서,
    상기 초기 출력 셀들이 속하는 열은 상기 초기 입력 셀들에 연결되는 압축 셀들의 합 출력을 추적하여 결정되는 배치 방법.
  5. 제 1 항에 있어서,
    상기 특정 어레이에 맵핑하는 단계에서,
    상기 특정 어레이는 복수의 슬롯들을 포함하고,
    상기 배치-라우팅 툴은, 상기 초기 입력 셀들 각각이 상기 복수의 슬롯들 중 하나에 맵핑되었을 경우 최소의 비용과 최대의 흐름 능력을 가지도록, 상기 복수의 슬롯들에 상기 초기 입력 셀들 및 상기 초기 출력 셀들을 맵핑하는 배치 방법.
  6. 제 5 항에 있어서,
    상기 비용은 상기 초기 입력 셀들의 추정된 위치와 실제로 맵핑된 위치 사이의 거리에 따라 결정되는 배치 방법.
  7. 제 5 항에 있어서,
    상기 흐름 능력은 상기 초기 입력 셀들로부터 상기 초기 출력 셀들로 전송되는 시간 당 데이터 양에 비례하는 배치 방법.
  8. 제 5 항에 있어서,
    상기 배치-라우팅 툴은 상기 비용 및 상기 흐름 능력에 서로 다른 가중치를 적용하여 상기 초기 입력 셀들 및 상기 초기 출력 셀들을 상기 특정 어레이에 맵핑하는 배치 방법.
  9. 제 1 항에 있어서,
    상기 각 열을 정렬하는 단계에서, 서로 인접한 제 1 및 제 2 열에 있어서, 상기 제 1 열에 포함된 초기 입력 셀들 중 상기 제 2 열 방향으로 가장 많이 벗어난 제 1 셀의 모서리와 상기 제 2 열에 포함된 초기 입력 셀들 중 상기 제 1 열 방향으로 가장 많이 벗어난 제 2 셀의 모서리 사이의 거리를 최소화하도록, 상기 제 1 열 및 상기 제 2 열에 포함된 초기 입력 셀들을 재배치하는 배치 방법.
  10. 제 1 항에 있어서,
    상기 각 열을 정렬하는 단계에서, 상기 특정 어레이 내의 상기 초기 입력 셀들이 맵핑되지 않은 슬롯에는 특정 크기를 가지는 빈 공간 셀이 맵핑되는 배치 방법.
KR1020150118175A 2015-03-25 2015-08-21 병렬 곱셈기의 배치 방법 KR102318741B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US15/068,931 US10002219B2 (en) 2015-03-25 2016-03-14 Method for placing parallel multiplier

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020150041641 2015-03-25
KR20150041641 2015-03-25

Publications (2)

Publication Number Publication Date
KR20160116286A KR20160116286A (ko) 2016-10-07
KR102318741B1 true KR102318741B1 (ko) 2021-11-01

Family

ID=57145477

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150118175A KR102318741B1 (ko) 2015-03-25 2015-08-21 병렬 곱셈기의 배치 방법

Country Status (1)

Country Link
KR (1) KR102318741B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7797365B2 (en) 2006-06-27 2010-09-14 International Business Machines Corporation Design structure for a booth decoder
US20130135008A1 (en) 2009-12-01 2013-05-30 Trustees Of Princeton University Method and system for a run-time reconfigurable computer architecture

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980026053A (ko) * 1996-10-07 1998-07-15 김광호 곱셈기의 설계 방법
US6029187A (en) * 1997-10-28 2000-02-22 Atmel Corporation Fast regular multiplier architecture

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7797365B2 (en) 2006-06-27 2010-09-14 International Business Machines Corporation Design structure for a booth decoder
US20130135008A1 (en) 2009-12-01 2013-05-30 Trustees Of Princeton University Method and system for a run-time reconfigurable computer architecture

Also Published As

Publication number Publication date
KR20160116286A (ko) 2016-10-07

Similar Documents

Publication Publication Date Title
CN108205701B (zh) 一种执行卷积计算的系统及方法
US10832120B2 (en) Systems and methods for a multi-core optimized recurrent neural network
Chen et al. NTUplace3: An analytical placer for large-scale mixed-size designs with preplaced blocks and density constraints
JP4445970B2 (ja) 有向グラフを使用するシャーディング方法及び装置
Lin et al. An efficient and effective analytical placer for FPGAs
EP3460725A1 (en) Method and apparatus for adapting parameters of neural network
EP2350915A1 (en) Method for solving reservoir simulation matrix equation using parallel multi-level incomplete factorizations
Li et al. Fast fixed-outline 3-D IC floorplanning with TSV co-placement
US20100312997A1 (en) Parallel processing and internal processors
Akbudak et al. Hypergraph partitioning based models and methods for exploiting cache locality in sparse matrix-vector multiplication
US10002219B2 (en) Method for placing parallel multiplier
CN110096823B (zh) 基于二进制编码的数字集成电路布线方法及终端设备
US11106968B1 (en) Circuit arrangements and methods for traversing input feature maps
Akın et al. Understanding the design space of dram-optimized hardware FFT accelerators
Ye et al. Physical planning for on-chip multiprocessor networks and switch fabrics
Sivakumar et al. Optimization of thermal aware multilevel routing for 3D IC
Seyoum et al. Flora: Floorplan optimizer for reconfigurable areas in fpgas
TW201705025A (zh) 產生電源供應網路模型之方法,以及電源供應網路模型分析 方法與裝置
KR102318741B1 (ko) 병렬 곱셈기의 배치 방법
Ouyang et al. Arithmetic unit design using 180nm TSV-based 3D stacking technology
US20230147647A1 (en) Discrete Three-Dimensional Processor
Kim et al. Row-streaming dataflow using a chaining buffer and systolic array+ structure
Lee et al. An efficient task placement method for reconfigurable FPGA systems
US10126361B1 (en) Processing of a circuit design for debugging
Qian et al. 3D-IC signal TSV assignment for thermal and wirelength optimization

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right