KR20170092779A - 가속 시스템 및 그 구동 방법 - Google Patents
가속 시스템 및 그 구동 방법 Download PDFInfo
- Publication number
- KR20170092779A KR20170092779A KR1020160013871A KR20160013871A KR20170092779A KR 20170092779 A KR20170092779 A KR 20170092779A KR 1020160013871 A KR1020160013871 A KR 1020160013871A KR 20160013871 A KR20160013871 A KR 20160013871A KR 20170092779 A KR20170092779 A KR 20170092779A
- Authority
- KR
- South Korea
- Prior art keywords
- results
- selection module
- tasks
- generated
- configuration memory
- Prior art date
Links
- 230000001133 acceleration Effects 0.000 title claims abstract description 32
- 238000000034 method Methods 0.000 title claims abstract description 24
- 238000003672 processing method Methods 0.000 abstract 1
- 101000614028 Vespa velutina Phospholipase A1 verutoxin-1 Proteins 0.000 description 19
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 239000013585 weight reducing agent Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/18—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
- G06F11/183—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3889—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
- G06F9/3891—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute organised in groups of units sharing resources, e.g. clusters
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/845—Systems in which the redundancy can be transformed in increased performance
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Hardware Redundancy (AREA)
- Multimedia (AREA)
- Computing Systems (AREA)
Abstract
본 발명의 일 실시예에 따른 가속 시스템은, 컨피겨레이션 메모리 및 상기 컨피겨레이션 메모리로부터 작업들을 입력받고, 수신된 작업들을 수행하며, 수행된 결과들을 출력하는 프로세싱 엘리멘트 유니트들을 포함하고, 각각의 프로세싱 엘리멘트 유니트는, 그 각각이 상기 작업들 중 하나를 입력받고, n개의 결과들을 생성하는 n(n은 3 이상의 양의 정수)개의 프로세싱 엘리멘트들 및 다수결 방식을 사용하여 상기 생성된 n개의 결과들 중 하나를 선택하여 선택된 결과를 생성하는 선택 모듈을 포함할 수 있다.
Description
본 발명의 실시예는 가속 시스템 및 그 구동 방법에 관한 것이다.
도 1은 본 발명의 일 실시예에 따른 가속 시스템을 설명하기 위한 도면이다. 도 1에서 도시된 가속 시스템은 재구성형 가속기를 포함하고, 재구성형 가속기는 기존의 하드웨어 가속기와 프로세서의 중간에 위치하는 가속기이다. 도 1에서 도시된 가속 시스템은 프로세싱 엘리멘트들(PE)을 포함하고, 요구되는 작업에 따라 프로세싱 엘리멘트들(PE) 사이 구성이 변경될 수 있다. 하드웨어 가속기는 가속을 저전력으로 특정 작업을 빠르게 처리할 수 있지만 정해진 작업만 처리할 수 있다는 단점이 있다. 반면에 프로세서는 프로그램을 수행하면서 다양한 작업을 처리할 수 있지만 속도가 느리고 전력 소모량이 크다는 단점이 있다. 재구성형 가속기는 이 두개의 장점을 모두 취하는 가속기이다. 즉, 재구성을 통해 다양한 작업을 저전력으로 빠르게 처리할 수 있다.
그러나, 재구성형 가속기의 사용 범위가 넓어짐에 따라, 다양한 사양이 요구된다. 예를 들어, 높은 성능이 요구되는 경우도 있고, 낮은 소비 전력이 요구되는 경우도 있으며, 높은 신뢰성이 요구되는 경우도 있다. 이러한 사양들은 처리하는 작업에 따라 달라질 수 있고, 모든 작업에 대해 모든 사양을 만족시키는 것은 쉽지 않다는 문제가 있다.
특히 높은 신뢰성이 요구되는 경우, 재구성형 가속기의 소프트 에러로 인한 신뢰성 저하를 막을 필요가 있다. 소프트 에러란 외부 알파 입자나 중성자에 의해서 트랜지스터에 저장된 비트가 일시적으로 반적되는 현상으로, 이러한 에러는 임베디드 프로레서의 경량화, 소형화, 저전력화와 함께 더욱 증가하는 추세이다. 재구성형 가속기에서 이에 대한 연구는 아직 많이 진행되지 않은 상황이다.
본 발명의 실시예는 처리하는 작업에 따라 다른 수행방법을 적용하여 다양한 요구 사항을 상황에 따라 만족시킬 수 있는 가속 시스템 및 그 구동 방법을 제공하는 것을 그 목적으로 한다.
본 발명의 일 실시예에 따른 가속 시스템은, 컨피겨레이션 메모리 및 상기 컨피겨레이션 메모리로부터 작업들을 입력받고, 수신된 작업들을 수행하며, 수행된 결과들을 출력하는 프로세싱 유니트들을 포함할 수 있고, 각각의 프로세싱 유니트는, 그 각각이 상기 작업들 중 하나를 입력받고, n개의 결과들을 생성하는 n(n은 3 이상의 양의 정수)개의 프로세싱 엘리멘트들 및 다수결 방식을 사용하여 상기 생성된 n개의 결과들 중 하나를 선택하여 선택된 결과를 생성하는 선택 모듈을 포함할 수 있다.
실시예에 따라, 상기 가속 시스템은 상기 선택 모듈들의 동작 여부를 제어하는 제어부를 더 포함할 수 있고, 신뢰성이 요구되는 경우, 상기 제어부는 상기 컨피겨레이션 메모리에 신뢰성 제어 신호를 송신하고 상기 선택 모듈들이 동작하도록 제어할 수 있다.
실시예에 따라, 상기 컨피겨레이션 메모리는 복사부를 포함할 수 있고, 상기 컨피겨레이션 메모리가 상기 신뢰성 제어 신호를 수신하는 경우, 상기 복사부는 복사를 통해 상기 작업들을 생성할 수 있다.
실시예에 따라, 상기 선택 모듈이 동작하는 경우 상기 프로세싱 엘리멘트들은 동일한 작업을 수행할 수 있고, 각각의 프로세싱 유니트는 상기 선택된 결과를 출력할 수 있다.
실시예에 따라, 상기 생성된 n개의 결과들에 대해 다수결 방식으로 하나의 값을 선택할 수 없는 경우, 상기 선택 모듈은 예외 신호를 출력할 수 있다.
실시예에 따라, 상기 선택 모듈이 동작하지 않는 경우 각각의 프로세싱 엘리멘트들은 서로 다른 작업들을 수행할 수 있고, 각각의 프로세싱 유니트는 상기 생성된 n개의 결과들을 출력할 수 있다.
실시예에 따라, 상기 선택 모듈은 상기 생성된 결과들의 중복되는 횟수를 기반으로 가장 많이 중복된 결과를 상기 선택한 결과로 결정하는 보우터 및 상기 보우터로부터의 결과를 저장하는 공유 레지스터를 포함할 수 있다.
또한, 본 발명의 다른 실시예는 가속 시스템의 구동 방법이라는 다른 측면이 있다. 본 발명의 일 실시예에 따른 가속 시스템의 구동 방법은, 선택 모듈의 동작 여부를 결정하는 단계, 작업들을 프로세싱 유니트들에 입력하는 단계, 상기 작업들을 수행하여 결과들을 생성하는 단계 및 상기 생성된 결과들을 기반으로 선택된 결과들을 생성하는 단계를 포함할 수 있고, 상기 생성된 결과들을 기반으로 선택된 결과들을 생성하는 단계는 상기 선택 모듈이 동작하는 경우에만 수행될 수 있다.
실시예에 따라, 상기 생성된 결과들을 기반으로 선택된 결과를 생성하는 단계는, 상기 생성된 결과들의 중복되는 횟수를 연산하는 단계, 상기 중복되는 횟수를 비교하는 단계 및 상기 결과들 중 가장 많이 중복된 결과를 선택된 결과로 결정하는 단계를 포함할 수 있다.
실시예에 따라, 선택 모듈의 동작 여부는 외부로부터의 신뢰성 요구 신호가 수신되었는지 여부를 기반으로 판단될 수 있다.
본 발명의 실시예에 따른 가속 시스템 및 그 구동 방법에 의하면, 처리하는 작업에 따라 다른 수행방법을 적용하여 다양한 요구 사항을 상황에 따라 만족시킬 수 있다.
도 1은 종래의 가속 시스템을 설명하기 위한 도면이다.
도 2은 본 발명의 일 실시예에 따른 가속 시스템을 설명하기 위한 도면이다.
도 3은 도 2의 가속 시스템 중 프로세싱 엘리멘트를 설명하기 위한 도면이다.
도 4는 도 2의 가속 시스템 중 프로세싱 유니트를 설명하기 위한 도면이다.
도 5 내지 도 7은 신뢰성 모드인 경우 도 2의 가속 시스템의 동작을 설명하기 위한 도면이다.
도 8 내지 도 9는 신뢰성 모드가 아닌 경우 도 2의 가속 시스템의 동작을 설명하기 위한 도면이다.
도 10은 본 발명의 일 실시예에 따른 가속 시스템의 구동 방법을 설명하기 위한 도면이다.
도 11은 도 6의 S1500 단계를 설명하기 위한 도면이다.
도 2은 본 발명의 일 실시예에 따른 가속 시스템을 설명하기 위한 도면이다.
도 3은 도 2의 가속 시스템 중 프로세싱 엘리멘트를 설명하기 위한 도면이다.
도 4는 도 2의 가속 시스템 중 프로세싱 유니트를 설명하기 위한 도면이다.
도 5 내지 도 7은 신뢰성 모드인 경우 도 2의 가속 시스템의 동작을 설명하기 위한 도면이다.
도 8 내지 도 9는 신뢰성 모드가 아닌 경우 도 2의 가속 시스템의 동작을 설명하기 위한 도면이다.
도 10은 본 발명의 일 실시예에 따른 가속 시스템의 구동 방법을 설명하기 위한 도면이다.
도 11은 도 6의 S1500 단계를 설명하기 위한 도면이다.
이하 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예들을 상세히 설명한다. 명세서 전체에 걸쳐서 동일한 참조번호들은 실질적으로 동일한 구성요소들을 의미한다. 이하의 설명에서, 본 발명과 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우, 그 상세한 설명을 생략한다. 또한, 이하의 설명에서 사용되는 구성요소 명칭은 명세서 작성의 용이함을 고려하여 선택된 것일 수 있는 것으로서, 실제 제품의 부품 명칭과는 상이할 수 있다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 장치를 사이에 두고 "간접적으로 연결"되어 있는 경우도 포함한다. 명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
도 2은 본 발명의 일 실시예에 따른 가속 시스템을 설명하기 위한 도면이다. 본 발명의 가속 시스템(100)은 프로세싱 유니트들(110), 컨피겨레이션 메모리(120) 및 제어부(130)를 포함한다.
프로세싱 유니트들(Processing element units, 110)은 컨피겨레이션 메모리(120)로부터 작업들을 입력받고, 수신된 작업들을 수행하며, 수행된 결과들을 출력한다. 프로세싱 유니트들(110)은 프로세싱 유니트들(PU-1, PU-2)을 포함할 수 있다. 각각의 프로세싱 유니트의 구조는 동일하므로, 프로세싱 유니트(PU-1)에 대해서만 설명될 것이다.
프로세싱 유니트(PU-1)는 프로세스 엘리멘트들(PE(1-1) 내지 PE(1-3))뿐 아니라 보우터(voter, VT-1) 및 공유 레지스터(SR-1)를 더 포함한다. 고신뢰성이 요구되는 경우 보우터(VT-1) 및 공유 레지스터(SR-1)가 동작할 수 있고 저전력과 고성능이 요구되는 경우 보우터(VT-1) 및 공유 레지스터(SR-1)가 동작하지 않을 수 있다. 프로세싱 유니트(PU-1)의 상세 구조는 이후에 도 4를 참조하여 상세히 설명될 것이다.
프로세싱 유니트(PU-1) 내 각각의 프로세싱 엘리멘트(PE(1-1) 내지 PE(1-3))는 컨피겨레이션 메모리(120)로부터 작업들(CFD) 중 하나를 수신하고, 수신된 작업을 수행하며, 수행된 결과들을 출력한다. 각각의 프로세싱 엘리멘트의 구조는 동일하므로, 프로세싱 엘리멘트(PE(1-1))의 상세한 구조는 이하에서 도 3를 참조하여 설명될 것이다.
컨피겨레이션 메모리(Configuration Memory, 120)는 외부의 메모리로부터 작업들(CFD)을 미리 수신하였다가, 특정 주기(cycle)마다 작업들(CFD)을 프로세싱 엘리멘트들(PE)에 송신한다. 설명의 편의를 위해 프로세싱 엘리멘트들의 개수가 24개이고 선택 모듈들의 개수가 8개라고 가정한다.
높은 성능과 저전력이 요구되어 선택 모듈들이 동작하지 않는 경우, 컨피겨레이션 메모리(120)는 주기마다 24개의 작업들(CFD)을 각각의 프로세싱 엘리멘트에 송신한다. 24개의 프로세싱 엘리멘트들은 서로 다른 작업들의 결과들을 출력하고, 가속 시스템(100)은 24개의 결과들을 외부에 출력한다.
높은 신뢰성이 요구되어 선택 모듈들이 동작하는 경우, 컨피겨레이션 메모리(120)는 주기마다 8개의 작업들(CFD)을 3번씩 반복하여 각각의 프로세싱 엘리멘트에 송신한다. 여기서, 프로세싱 유니트(PU-1) 내 프로세싱 엘리멘트들(PE(1-1), PE(1-2) 및 PE(1-3))은 동일한 작업을 수신하므로 8개의 선택 모듈들은 8개의 결과를 출력한다.
제어부(130)는 프로세싱 유니트들(110) 및 컨피겨레이션 메모리(120)를 제어한다. 또한, 제어부(130)는 선택 모듈들의 동작 여부를 판단한다. 제어부(130)는 외부로부터의 신뢰성 요구 신호(TRS)를 수신하는 경우에만 선택 모듈들이 동작하도록 제어할 수 있다.
도 3은 도 2의 가속 시스템 중 프로세싱 엘리멘트를 설명하기 위한 도면이다. 설명의 편의를 위해, 프로세싱 엘리멘트(PE(1-1))에 대해서만 설명될 것이다.
프로세싱 엘리멘트(PE(1-1))는 기능부(Functional Unit, FU), 레지스터 파일(Register File, RF) 및 출력 레지스터(Output Register, OR)를 포함할 수 있다.
기능부(FU)는 작업들(CFD) 중 작업(CFD(1-1))을 수신하고, 수신된 작업(CFD(1-1))을 수행한다. 선택 모듈들이 동작하지 않는 경우, 기능부(FU)는 프로세싱 엘리멘트(PE(1-1))와 이웃한 프로세싱 엘리멘트들(PE(1-2), PE(2-1) 및 PE(2-2))의 결과들도 수신하여 작업을 수행할 수 있다.
레지스터 파일(RF)은 계산 도중 생기는 중간 값들을 저장할 수 있다. 레지스터 파일(RF)은 이웃한 프로세싱 엘리멘트들(PE(1-2), PE(2-1) 및 PE(2-2))의 결과들도 수신할 수 있고, 저장된 결과를 기능부(FU)로 송신할 수도 있다.
출력 레지스터(OR)는 기능부(FU)에 의해 연산된 결과를 결과(Re(1-1))로 출력한다. 결과(Re(1-1))는 외부로 출력될 수 있다. 또한, 출력 레지스터(OR)는 작업(CFD(1-1))을 저장할 수도 있고, 결과(Re(1-1)) 또는 작업(CFD(1-1))을 레지스터 파일(RF)에 송신할 수도 있다.
도 4는 도 2의 가속 시스템 중 프로세싱 유니트를 설명하기 위한 도면이다. 프로세싱 유니트(PU-1)는 프로세싱 엘리멘트들(PE(1-1) 내지 PE(1-3)) 및 선택 모듈(SM-1)을 포함한다.
프로세싱 엘리멘트들(PE(1-1) 내지 PE(1-3)) 각각은 작업들(CFD) 중 하나를 입력받고, 프로세싱 엘리멘트들(PE(1-1) 내지 PE(1-3))은 3개의 결과를 생성한다. 여기서 하나의 프로세싱 유니트(PU-1)가 3개의 프로세싱 엘리멘트들(PE(1-1) 내지 PE(1-3))을 포함하나, 이는 실시예에 불과하다. n(n은 3 이상의 정수)개를 포함할 수도 있다. 이 때, n개의 프로세싱 엘리멘트들은 n개의 결과를 생성한다.
신뢰성 모드인 경우, 동일한 작업(CFD(1))이 3개의 프로세싱 엘리멘트들(PE(1-1), PE(1-2) 및 PE(1-3))에 입력되고, 3개의 프로세싱 엘리멘트들(PE(1-1), PE(1-2) 및 PE(1-3)) 각각은 별도로 작업을 수행하여 3개의 결과들(Re(1-1), Re(1-2) 및 Re(1-3))을 생성한다.
신뢰성 모드가 아닌 경우, 3개의 서로 다른 작업들(CFD'(1-1), CFD'(1-2) 및 CFD'(1-3))이 3개의 프로세싱 엘리멘트들(PE(1-1), PE(1-2) 및 PE(1-3))에 각각 입력되고, 3개의 프로세싱 엘리멘트들(PE(1-1), PE(1-2) 및 PE(1-3))은 별도로 작업을 수행하여 3개의 결과들(Re'(1-1), Re'(1-2) 및 Re'(1-3))을 생성한다.
선택 모듈(SM-1)은 보우터(VT-1) 및 공유 레지스터(SR-1)를 포함하고, 신뢰성 모드인 경우에만 동작한다. 보우터(VT-1)는 다수결 방식을 사용하여 3개의 프로세싱 엘리멘트들(PE(1-1), PE(1-2) 및 PE(1-3))에서 생성된 결과들(Re(1-1), Re(1-2) 및 Re(1-3)) 중 하나를 선택하여 선택된 결과(Re1)를 생성한다. 예를 들어, 결과들(Re(1-1), Re(1-2))이 같은 값을 가지고 결과(Re(1-3)만 다른 값을 가지는 경우, 보우터(VT-1)에 의해 선택된 결과(Re1)는 결과들(Re(1-1), Re(1-2))과 같은 값을 가진다. 프로세싱 유니트(PU-1)는 결과(Re1)만을 출력한다. 만약 결과들(Re(1-1), Re(1-2) 및 Re(1-3))이 모두 다른 값을 가지는 경우 보우터(VT-1)는 하나의 값을 선택할 수 없다. 이 경우, 선택 모듈(SM-1)은 예외 신호(ES)를 출력한다.
신뢰성 모드가 아닌 경우, 선택 모듈(SM-1)은 동작하지 않는다. 따라서, 프로세싱 유니트(PU-1)는 3개의 결과들(Re'(1-1), Re'(1-2) 및 Re'(1-3))을 그대로 출력한다.
도 5 내지 도 7은 신뢰성 모드인 경우 도 2의 가속 시스템의 동작을 설명하기 위한 도면이다. 이하에서 도 1 내지 도 7을 참조하여 도 2의 가속 시스템의 동작이 설명될 것이다.
도 5는 신뢰성 모드인 경우 제어부와 컨피겨레이션 메모리의 동작을 설명하기 위한 도면이다. 신뢰성이 요구되는 신뢰성 모드인 경우, 제어부(130)는 신뢰성 제어 신호(RCS)를 컨피겨레이션 메모리(120)에 송신하여 선택 모듈(SM-1)이 동작하도록 제어한다. 컨피겨레이션 메모리(120)는 복사부(121)를 포함하고, 신뢰성 제어 신호(RCS)가 수신되는 경우 복사부(121)를 동작하도록 제어한다. 복사부(121)는 하나의 작업을 3개로 복사하여 출력한다. 즉, 작업들(CFD)은 복사부(121)에 의해 복사된 결과이다.
도 6은 선택 모듈이 동작하는 경우 프로세싱 유니트의 동작을 설명하기 위한 도면이다.
컨피겨레이션 메모리(120)는 작업들(CFD(1-1), CFD(1-2) 및 CFD(1-3))을 프로세싱 엘리멘트들(PE(1-1), PE(1-2) 및 PE(1-3))에 각각 송신한다. 다만, 복사부(121)가 동작하므로 작업들(CFD(1-1), CFD(1-2) 및 CFD(1-3))의 실질적인 내용은 동일하다. 따라서, 작업(CFD(1))으로 통칭하여도 무방하다.
프로세싱 엘리멘트들(PE(1-1), PE(1-2) 및 PE(1-3))은 동일한 작업(CFD(1))을 병렬적으로 수행하여 결과들(Re(1-1), Re(1-2) 및 Re(1-3))을 출력한다. 프로세싱 엘리멘트들(PE(1-2) 및 PE(1-3))의 구조는 프로세싱 엘리멘트(PE(1-1))과 동일하다고 가정할 수 있다. 결과들(Re(1-1), Re(1-2) 및 Re(1-3))은 보우터(VT-1)에 입력된다.
보우터(VT-1)은 다수결 방식을 사용하여 입력받은 결과들(Re(1-1), Re(1-2) 및 Re(1-3)) 중 하나를 선택된 결과(Re1)로 출력한다. 프로세싱 엘리멘트들(PE(1-1), PE(1-2) 및 PE(1-3))가 3개인 경우, 보우터(VT-1)은 Triple Modular Redundancy (TMR) 기법을 사용하여 신뢰성을 확보한다. 따라서, 외부로부터의 신뢰성 요구 신호(TRS)가 수신되는 경우에는 보우터(VT-1)가 동작하여 신뢰성이 높아진다. 다만 세 개의 프로세싱 엘리멘트들(PE(1-1), PE(1-2) 및 PE(1-3))이 동일한 작업을 수행하므로 성능이 저하될 수 있다.
공유 레지스터(SR-1)는 보우터(VT-1)로부터의 결과(Re1)를 저장하였다가 외부로 출력한다.
도 7은 선택 모듈이 동작하는 경우 도 5의 복사부의 동작을 설명하기 위한 도면이다. 복사부(121)는 컨피겨레이션 메모리(120) 내 기저장되었던 작업(CFD(1))을 수신하여 3개의 작업들(CFD(1-1), CFD(1-2), CFD(1-3))로 복사한 후, 프로세싱 엘리멘트들(PE(1-1), PE(1-2) 및 PE(1-3))에 각각 송신한다. 즉 선택 모듈(SM-1)이 동작하는 경우, 프로세싱 엘리멘트들(PE(1-1), PE(1-2) 및 PE(1-3))에 동일한 작업(CFD)이 입력된다.
도 8 내지 도 9는 신뢰성 모드가 아닌 경우 도 2의 가속 시스템의 동작을 설명하기 위한 도면이다. 이하에서 도 1 내지 도 4, 도 8 및 도 9를 참조하여 도 2의 가속 시스템의 동작이 설명될 것이다.
도 8은 신뢰성 모드가 아닌 경우 제어부와 컨피겨레이션 메모리의 동작을 설명하기 위한 도면이다. 신뢰성 모드가 아니므로, 제어부(130)는 컨피겨레이션 메모리(120)에 신뢰성 제어 신호(RCS)를 송신하지 않는다. 컨피겨레이션 메모리(120)는 복사부(121)를 동작시키지 않고, 작업들(CFD')을 그대로 출력한다.
도 9는 신뢰성 모드가 아닌 경우 프로세싱 유니트의 동작을 설명하기 위한 도면이다.
컨피겨레이션 메모리(120)는 작업들(CFD'(1-1), CFD'(1-2) 및 CFD'(1-3))을 프로세싱 엘리멘트들(PE(1-1), PE(1-2) 및 PE(1-3))에 각각 송신한다. 다만, 보우터(VT-1)가 동작하지 않으므로 작업들(CFD'(1-1), CFD'(1-2) 및 CFD'(1-3))의 실질적인 내용은 동일하지 않을 수 있다.
프로세싱 엘리멘트들(PE(1-1), PE(1-2) 및 PE(1-3))은 작업들(CFD'(1-1), CFD'(1-2) 및 CFD'(1-3))을 각각 수행하여 결과들(Re'(1-1), Re'(1-2) 및 Re'(1-3))을 출력한다. 프로세싱 엘리멘트들(PE(1-2) 및 PE(1-3))의 구조는 프로세싱 엘리멘트(PE(1-1))과 동일하다고 가정할 수 있다. 결과들(Re'(1-1), Re'(1-2) 및 Re'(1-3))은 보우터(VT-1)를 거치지 않고 외부로 출력된다.
외부로부터의 신뢰성 요구 신호(TRS)가 수신되지 않는 경우에는 보우터(VT-1)이 동작하지 않아 성능이 향상된다. 즉, 컨피겨레이션 메모리(120)는 서로 다른 작업들(CFD'(1-1), CFD'(1-2) 및 CFD'(1-3))을 프로세싱 엘리멘트들(PE(1-1), PE(1-2) 및 PE(1-3))에 송신하고, 프로세싱 엘리멘트들(PE(1-1), PE(1-2) 및 PE(1-3))은 작업들(CFD'(1-1), CFD'(1-2) 및 CFD'(1-3))을 수행하여 서로 다른 결과들(Re(1-1), Re(1-2) 및 Re(1-3))을 출력하며, 결과들(Re'(1-1), Re'(1-2) 및 Re'(1-3))은 보우터(VT-1)를 거치지 않고 외부로 출력된다.
도 10은 본 발명의 일 실시예에 따른 가속 시스템의 구동 방법을 설명하기 위한 도면이다. 이하에서, 도 2 내지 도 10을 참조하여 본 발명의 일 실시예에 따른 가속 시스템의 구동 방법의 일 실시예가 설명될 것이다. 설명의 편의를 위해, 프로세싱 유니트들(110) 중 프로세싱 유니트(PU-1)에 대해서만 설명될 것이다.
S1100 단계에서, 제어부(130)는 선택 모듈(SM-1)의 동작 여부를 결정한다. 외부로부터 신뢰성 요구 신호(TRS)가 수신되는 경우 제어부(130)는 선택 모듈들을 동작하기로 결정하고, 외부로부터의 신뢰성 요구 신호(TRS)가 수신되지 않는 경우에는 제어부(130)는 선택 모듈들을 동작하지 않기로 결정할 수 있다.
S1200 단계에서, 컨피겨레이션 메모리(120)는 작업들(CFD)을 프로세싱 엘리멘트들에 입력한다. 선택 모듈(SM-1)이 동작하는 경우, 3개의 프로세싱 엘리멘트들(PE(1-1), PE(1-2) 및 PE(1-3))이 동일한 작업(CFD(1))을 수신하는 것은 도 6을 참조하여 이미 설명되었다. 선택 모듈(SM-1)이 동작하지 않는 경우, 3개의 프로세싱 엘리멘트들(PE(1-1), PE(1-2) 및 PE(1-3))이 서로 다른 작업들(CFD'(1-1), CFD'(1-2) 및 CFD'(1-3))을 수신하는 것은 도 9를 참조하여 이미 설명되었다.
S1300 단계에서, 프로세싱 엘리멘트들(PE(1-1), PE(1-2) 및 PE(1-3))은 작업들을 수행하여 결과들을 생성한다. 선택 모듈(SM-1)이 동작하는 경우, 3개의 프로세싱 엘리멘트들(PE(1-1), PE(1-2) 및 PE(1-3))이 동일한 작업(CFD(1))을 수행하여 결과들(Re(1-1), Re(1-2) 및 Re(1-3))을 생성하는 것은 도 4을 참조하여 이미 설명되었다. 선택 모듈(SM-1)이 동작하지 않는 경우, 3개의 프로세싱 엘리멘트들(PE(1-1), PE(1-2) 및 PE(1-3))이 서로 다른 작업들(CFD'(1-1), CFD'(1-2) 및 CFD'(1-3))을 수행하여 결과들(Re'(1-1), Re'(1-2) 및 Re'(1-3))을 생성하는 것은 도 9를 참조하여 이미 설명되었다.
S1400 단계에서, 선택 모듈(SM-1)이 동작하는 경우에는 S1500 단계가 수행되고, 선택 모듈(SM-1)이 동작하지 않는 경우에는 S1600 단계가 수행된다. 선택 모듈(SM-1)의 동작 여부는 S1100 단계에서 이미 결정되엇다.
S1500 단계에서, 선택 모듈(SM-1)은 결과들(Re(1-1), Re(1-2) 및 Re(1-3))을 기반으로 다수결 방식으로 선택된 결과(Re1)를 생성한다. 예를 들어, 결과들(Re(1-1), Re(1-2))은 같은 값을 가지고 결과(Re(1-3))만이 다른 값을 가지는 경우, 보우터(VT-1)에 의해 선택된 결과(Re1)는 결과들(Re(1-1), Re(1-2))과 같은 값을 가진다.
S1600 단계에서, 프로세싱 엘리멘트들(PE(1-1), PE(1-2) 및 PE(1-3))에 의해 생성된 결과들(Re'(1-1), Re'(1-2) 및 Re'(1-3))은 외부로 출력된다. 이 내용은 도 9를 참조하여 상세히 설명되었다.
S1700 단계에서, 선택 모듈(SM-1)에 의해 선택된 결과(Re1)가 외부로 출력된다.
도 11은 도 10의 S1500 단계를 설명하기 위한 도면이다. 이하에서, 도 2 내지 도 7 및 도 11을 참조하여 S1500 단계가 설명될 것이다. 설명의 편의를 위해, 도 6과 같이 보우터(VT-1)가 세 개의 프로세싱 엘리멘트들(PE(1-1), PE(1-2) 및 PE(1-3))로부터의 결과들(Re(1-1), Re(1-2) 및 Re(1-3))을 기반으로 선택된 결과(Re1)를 생성한다고 가정할 것이다. 또한, 설명의 편의를 위해 결과들(Re(1-1), Re(1-2))이 같은 값을 가지고 결과(Re(1-3)만 다른 값을 가진다고 가정한다.
S1510 단계에서, 보우터(VT-1)은 결과들의 중복되는 횟수를 연산한다. 결과들(Re(1-1) 및 Re(1-2))에 대해서는 2회라고 연산하고, 결과(Re(1-3))에 대해서는 1회라고 연산한다.
S1520 단계에서, 보우터(VT-1)은 중복되는 횟수를 비교한다. 결과들(Re(1-1) 및 Re(1-2))의 중복되는 횟수는 2회고 결과(Re(1-3))의 중복되는 횟수는 1회이다.
S1530 단계에서, 보우터(VT-1)은 선택된 결과(Re1)를을 그 중복되는 횟수가 가장 많은 결과들(Re(1-1) 및 Re(1-2))로 결정한다.
이상 설명한 내용을 통해 당업자라면 본 발명의 기술사상을 일탈하지 아니하는 범위에서 다양한 변경 및 수정이 가능함을 알 수 있을 것이다. 따라서, 본 발명의 기술적 범위는 명세서의 상세한 설명에 기재된 내용으로 한정되는 것이 아니라 특허 청구의 범위에 의해 정하여져야만 할 것이다.
110: 프로세싱 유니트들
120: 컨피겨레이션 메모리
130: 제어부
PU-1: 프로세싱 유니트
120: 컨피겨레이션 메모리
130: 제어부
PU-1: 프로세싱 유니트
Claims (10)
- 컨피겨레이션 메모리; 및
상기 컨피겨레이션 메모리로부터 작업들을 입력받고, 수신된 작업들을 수행하며, 수행된 결과들을 출력하는 프로세싱 유니트들을 포함하고,
각각의 프로세싱 유니트는,
그 각각이 상기 작업들 중 하나를 입력받고, n개의 결과들을 생성하는 n(n은 3 이상의 양의 정수)개의 프로세싱 엘리멘트들; 및
다수결 방식을 사용하여 상기 생성된 n개의 결과들 중 하나를 선택하여 선택된 결과를 생성하는 선택 모듈을 포함하는 가속 시스템. - 제1항에 있어서,
상기 가속 시스템은 상기 선택 모듈들의 동작 여부를 제어하는 제어부를 더 포함하고,
신뢰성이 요구되는 경우, 상기 제어부는 상기 컨피겨레이션 메모리에 신뢰성 제어 신호를 송신하고 상기 선택 모듈들이 동작하도록 제어하는 가속 시스템. - 제2항에 있어서,
상기 컨피겨레이션 메모리는 복사부를 포함하고,
상기 컨피겨레이션 메모리가 상기 신뢰성 제어 신호를 수신하는 경우, 상기 복사부는 복사를 통해 상기 작업들을 생성하는 가속 시스템. - 제1항에 있어서,
상기 선택 모듈이 동작하는 경우 상기 프로세싱 엘리멘트들은 동일한 작업을 수행하고,
각각의 프로세싱 유니트는 상기 선택된 결과를 출력하는 가속 시스템. - 제1항에 있어서,
상기 생성된 n개의 결과들에 대해 다수결 방식으로 하나의 값을 선택할 수 없는 경우, 상기 선택 모듈은 예외 신호를 출력하는 가속 시스템. - 제1항에 있어서,
상기 선택 모듈이 동작하지 않는 경우 각각의 프로세싱 엘리멘트들은 서로 다른 작업들을 수행하고,
각각의 프로세싱 유니트는 상기 생성된 n개의 결과들을 출력하는 가속 시스템. - 제1항에 있어서,
상기 선택 모듈은 상기 생성된 결과들의 중복되는 횟수를 기반으로 가장 많이 중복된 결과를 상기 선택한 결과로 결정하는 보우터; 및
상기 보우터로부터의 결과를 저장하는 공유 레지스터를 포함하는 가속 시스템. - 선택 모듈의 동작 여부를 결정하는 단계;
작업들을 프로세싱 유니트들에 입력하는 단계;
상기 작업들을 수행하여 결과들을 생성하는 단계; 및
상기 생성된 결과들을 기반으로 선택된 결과들을 생성하는 단계를 포함하고,
상기 생성된 결과들을 기반으로 선택된 결과들을 생성하는 단계는 상기 선택 모듈이 동작하는 경우에만 수행되는 가속 시스템의 구동 방법. - 제8항에 있어서,
상기 생성된 결과들을 기반으로 선택된 결과를 생성하는 단계는,
상기 생성된 결과들의 중복되는 횟수를 연산하는 단계;
상기 중복되는 횟수를 비교하는 단계; 및
상기 결과들 중 가장 많이 중복된 결과를 선택된 결과로 결정하는 단계를 포함하는 가속 시스템의 구동 방법. - 제8항에 있어서,
선택 모듈의 동작 여부는 외부로부터의 신뢰성 요구 신호가 수신되었는지 여부를 기반으로 판단되는 가속 시스템의 구동 방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160013871A KR101929049B1 (ko) | 2016-02-04 | 2016-02-04 | 가속 시스템 및 그 구동 방법 |
US15/045,057 US20170228241A1 (en) | 2016-02-04 | 2016-02-16 | Acceleration system and driving method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160013871A KR101929049B1 (ko) | 2016-02-04 | 2016-02-04 | 가속 시스템 및 그 구동 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20170092779A true KR20170092779A (ko) | 2017-08-14 |
KR101929049B1 KR101929049B1 (ko) | 2019-03-12 |
Family
ID=59497695
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160013871A KR101929049B1 (ko) | 2016-02-04 | 2016-02-04 | 가속 시스템 및 그 구동 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20170228241A1 (ko) |
KR (1) | KR101929049B1 (ko) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100116413A (ko) * | 2009-04-22 | 2010-11-01 | 삼성전자주식회사 | 재구성 가능 프로세서 및 이를 이용한 인터럽트 핸들링 방법 |
JP4847585B2 (ja) * | 2007-06-12 | 2011-12-28 | 富士通株式会社 | コンフィグレーション装置 |
KR20140131832A (ko) * | 2013-05-06 | 2014-11-14 | (주)넥셀 | 프로세싱 장치 및 방법 |
KR20150100042A (ko) * | 2014-02-24 | 2015-09-02 | 한국전자통신연구원 | 3차원 다이 스택 디램에서의 가속 시스템 |
-
2016
- 2016-02-04 KR KR1020160013871A patent/KR101929049B1/ko active IP Right Grant
- 2016-02-16 US US15/045,057 patent/US20170228241A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4847585B2 (ja) * | 2007-06-12 | 2011-12-28 | 富士通株式会社 | コンフィグレーション装置 |
KR20100116413A (ko) * | 2009-04-22 | 2010-11-01 | 삼성전자주식회사 | 재구성 가능 프로세서 및 이를 이용한 인터럽트 핸들링 방법 |
KR20140131832A (ko) * | 2013-05-06 | 2014-11-14 | (주)넥셀 | 프로세싱 장치 및 방법 |
KR20150100042A (ko) * | 2014-02-24 | 2015-09-02 | 한국전자통신연구원 | 3차원 다이 스택 디램에서의 가속 시스템 |
Non-Patent Citations (1)
Title |
---|
이윤혁 외 2명. '다수의 프로세싱 유닛 처리를 위한 범용 메모리 제어기의 구조'. 한국정보통신학회논문지 제15권 제12호, 2011.12, pp.2632-2640. * |
Also Published As
Publication number | Publication date |
---|---|
KR101929049B1 (ko) | 2019-03-12 |
US20170228241A1 (en) | 2017-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8997033B1 (en) | Techniques for generating a single configuration file for multiple partial reconfiguration regions | |
US9665509B2 (en) | Mechanism for inter-processor interrupts in a heterogeneous multiprocessor system | |
US9477511B2 (en) | Task-based modeling for parallel data integration | |
JP5570038B2 (ja) | 連立1次方程式を処理するための装置およびコンピュータ・プログラム | |
US20190050604A1 (en) | On-device bitstream validation | |
US7650585B1 (en) | Implementing a user design in a programmable logic device with single event upset mitigation | |
US20160124865A1 (en) | Dynamic evaluation and adaption of hardware hash functions | |
EP2541773A1 (en) | Reconfigurable logic block | |
US20080301389A1 (en) | Memory-protection method and apparatus | |
KR102560424B1 (ko) | 와이드 데이터 타입들의 비교 | |
KR20180035211A (ko) | 벡터 산술 명령 | |
CN103999050A (zh) | 用于计算用于在连续分布式构建中有效高速缓存的校验和的方法和装置 | |
KR101929049B1 (ko) | 가속 시스템 및 그 구동 방법 | |
US9779061B2 (en) | Iterative refinement apparatus | |
US8436646B1 (en) | Reconfigurable logic block with user RAM | |
US10417078B2 (en) | Deterministic read back and error detection for programmable logic devices | |
JP2011253253A (ja) | コンピュータ試験方法、コンピュータ試験装置およびコンピュータ試験プログラム | |
US20220030074A1 (en) | Method, apparatus and device for generating microservice, and storage medium | |
US10318687B2 (en) | Implementing a constant in FPGA code | |
US20130162036A1 (en) | Complementary Detection of Power Supplies Stability and Notifying Multiple Domains Regardless of Other Power Domains Readiness | |
Beckhoff et al. | Design tools for implementing self-aware and fault-tolerant systems on FPGAs | |
US10068045B1 (en) | Programmable logic device design implementations with multiplexer transformations | |
US10635845B2 (en) | Method and apparatus for improving Boolean satisfiability solver generated based on input design with data qualifier signals | |
EP3759592B1 (en) | Data processing | |
KR20210100076A (ko) | 벡터 술어 요약 생성 |
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 |